codd-dev 2.87.0__tar.gz → 2.88.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.87.0 → codd_dev-2.88.0}/PKG-INFO +1 -1
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/__init__.py +1 -1
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/e2e_harness.py +6 -1
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/implementer.py +38 -4
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/regex_strategies.py +93 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair_slice.py +36 -20
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/vb_marker_authenticity.py +17 -1
- {codd_dev-2.87.0 → codd_dev-2.88.0}/pyproject.toml +1 -1
- {codd_dev-2.87.0 → codd_dev-2.88.0}/.gitignore +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/LICENSE +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/README.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/bench_fixture/README.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/__main__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/_git_helper.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/action_outcome.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/ai_invoke.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/ai_patch.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/artifact_contract.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/artifact_ids.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/artifacts/catalog.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/ask_user_question_adapter.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/assembler.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/bridge.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/brownfield/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/brownfield/pipeline.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/capability_completeness.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/claude_cli.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/cli.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/clustering.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/coherence_adapters.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/coherence_engine.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/confidence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/config.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/config_schema.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/contracts.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/contracts_registry/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/contracts_registry/__main__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/contracts_registry/certify.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/contracts_registry/generate_matrix.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/contracts_registry/registry.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/coverage_auditor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/coverage_execution_coherence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/coverage_metrics.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/auto_repair.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/builder.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/_one_to_many_detection.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/artifact_contract_check.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/ci_health.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/dependency_freshness.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/depends_on_consistency.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/deployment_completeness.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/edge_validity.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/environment_coverage.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/implementation_coverage.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/node_completeness.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/opt_out.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/task_completion.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/transitive_closure.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/ui_coherence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/checks/user_journey_coherence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/coverage_axes.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/cli.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/csharp.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/elixir.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/generic.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/iot.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/java.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/kotlin.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/mobile.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/ruby.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/rust.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/scala.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/swift.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/defaults/web.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/extractor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/impact.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dag/runner.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/defaults.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/defaults.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/dependency_lock_coherence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deploy_targets/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deploy_targets/app_service.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deploy_targets/base.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deploy_targets/docker_compose.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployer.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/checks/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/extractor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/ai_command.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/ai_command_factory.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/codex_app_server.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/llm_consideration.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/schema/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/schema/prisma.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/target/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/target/docker_compose.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/curl.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/playwright.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/pytest_http.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/vitest.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/design_md.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/diff/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/diff/apply.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/diff/engine.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/diff/persistence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/diff/templates/diff_prompt.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/discovery.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/drift.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/e2e_contract_coherence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/e2e_extractor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/e2e_generator.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/e2e_runner.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/apply.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/engine.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/finding.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/formatters/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/formatters/base.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/formatters/interactive.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/formatters/json_fmt.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/formatters/md.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/lexicon_loader.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/persistence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/env_refs.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/extract_ai.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/extract_paths.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/extractor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/candidate_selector.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/design_updater.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/impl_propagation.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/interactive_prompt.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/phenomenon_fixer.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/phenomenon_parser.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/risk_classifier.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/templates/clarification_question.txt +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/templates/design_update.txt +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/templates/impl_update.txt +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/templates/phenomenon_parse.txt +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/templates/risk_assessment.txt +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fix/templates_loader.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fixer.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fixup_drift.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fixup_drift_strategies/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/frontmatter.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/generator.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/git_evidence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/graph.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/greenfield/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/greenfield/pipeline.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/hitl_session.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/hooks/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/hooks/pre-commit +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/hooks/recipes/codex_hook.sh +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/iac_nfr.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/implement_oracle.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/implement_oracle_scope.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/implement_oracle_types.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/implementer/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/implementer/chunked_runner.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/implementer/typecheck_loop.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/import_coherence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/inheritance.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/init/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/init/lexicon_suggest.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/init/llm_lexicon_suggester.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/init/stack_detector.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/knowledge_fetcher.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/adapters/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/adapters/implement_oracle.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/adapters/oracle_go.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/adapters/oracle_python.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/adapters/oracle_typescript.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/adapters/runner_report.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/builtin_adapters.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/compat.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/contract.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/loader.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/oracle_executor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/path_planner.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/profile.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/profiles/go.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/profiles/python.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/profiles/typescript.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/registry.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/verify_executor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/languages/verify_plan.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon_cli/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon_cli/formatters/html.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon_cli/formatters/md.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon_cli/inspector.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon_cli/manager.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon_cli/reporter.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/lexicon_cli/threshold.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/approval.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/best_practice_augmenter.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/criteria_expander.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/design_doc_extractor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/impl_step_deriver.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/means_catalog_loader.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/parser.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/plan_deriver.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/prompt_builder.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/strategy_validator.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/templates/meta_instruction.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/templates/plan_derive_meta.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/mcp_server.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/measure.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/operational_e2e_audit.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/operations_derive.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/_shared.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/api_specs.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/extractor_registry.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/filesystem_routes.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/iac.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/python_ast.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/schemas.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/tests_builddeps.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/parsing/treesitter.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/planner.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/policy.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/preflight/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/preflight/defaults/cli.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/preflight/defaults/generic.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/preflight/defaults/iot.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/preflight/defaults/mobile.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/preflight/defaults/web.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/project_types.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/propagate.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/propagation_common.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/propagator.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/reconciliation_ledger.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/reference_resolution.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/registry.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/approval_repair.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/auto_scope_guard.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/engine.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/git_patcher.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/history.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/llm_repair_engine.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/loop.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/primary_picker.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/proof_breaks.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/repair_result.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/repairability_classifier.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/schema.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/templates/analyze_meta.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/templates/propose_meta.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/templates/repairability_meta.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/test_failure_attribution.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/repair/verify_runner.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/require.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/require_plugins.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/require_propagate.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/required_artifacts/defaults/generic.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/required_artifacts/defaults/web.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/required_artifacts_deriver.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/requirement_completeness/defaults/generic.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/requirement_completeness_auditor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/requirement_reconciliation.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/requirements_meta.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/restoration_report.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/restore.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/routes_extractor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/runtime_smoke/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/runtime_smoke/checks.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/runtime_smoke/config.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/runtime_smoke/report.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/runtime_smoke/runner.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/scanner.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/schema_refs.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/screen_flow_validator.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/screen_transition_extractor.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/screen_transitions/defaults.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/skills_cli/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/skills_cli/discovery.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/skills_cli/manager.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/skills_cli/paths.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/adapters/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/adapters/_base.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/adapters/nextjs.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/adapters/playwright.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/compose.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/loader.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/lock.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/obligations.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/profile.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/profiles/addons/playwright.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/profiles/addons/prisma.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/project.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/registry.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/stack/resolve.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/surface_reconciliation.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/synth.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/codd.yaml.tmpl +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/conventions.yaml.tmpl +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/doc_links.yaml.tmpl +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/extracted/system-context.md.j2 +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/gitignore.tmpl +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/lexicon_questions.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/lexicon_schema.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/templates/overrides.yaml.tmpl +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/test_detection.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/test_import_coherence.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/traceability.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/validator.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/vb_rerun_scope.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/verifiable_behavior_audit.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/watch/__init__.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/watch/events.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/watch/propagation_log.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/watch/propagation_pipeline.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/watch/test_runner.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/watch/watcher.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd/wiring.py +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/codd_plugins/stack_map.yaml +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/docs/cookbook/cdp_browser/README.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/docs/cookbook/presentation_aggregation/README.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/docs/requirements/README.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/dogfood/README.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/dogfood/fixtures/flat_py_app/README.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/examples/README.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-assemble/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-evolve/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-generate/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-greenfield/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-impact/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-init/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-propagate/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-restore/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-scan/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.0}/skills/codd-validate/SKILL.md +0 -0
- {codd_dev-2.87.0 → codd_dev-2.88.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.88.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
|
|
@@ -40,6 +40,7 @@ from collections.abc import Mapping
|
|
|
40
40
|
from dataclasses import dataclass
|
|
41
41
|
from typing import Any, Literal
|
|
42
42
|
|
|
43
|
+
from codd.parsing.regex_strategies import language_extensions
|
|
43
44
|
from codd.project_types import ProjectCapabilities
|
|
44
45
|
|
|
45
46
|
|
|
@@ -234,7 +235,11 @@ def resolve_e2e_harness(
|
|
|
234
235
|
"""
|
|
235
236
|
|
|
236
237
|
lang = (project_language or "").strip().lower()
|
|
237
|
-
|
|
238
|
+
# "host language is Python" is driven from the language's declared source
|
|
239
|
+
# extensions (registry DATA: ``regex_strategies.language_extensions`` is
|
|
240
|
+
# canonical-keyed — it does NOT resolve aliases — so this is byte-identical
|
|
241
|
+
# to the former ``lang == "python"``), not a language-name branch in core.
|
|
242
|
+
is_python = ".py" in language_extensions(lang)
|
|
238
243
|
modality = capabilities.e2e_modality
|
|
239
244
|
|
|
240
245
|
if modality == "cli":
|
|
@@ -747,7 +747,10 @@ def _confusable_code_error(relative_path: str, content: str, *, language: str) -
|
|
|
747
747
|
deterministic, no LLM calls.
|
|
748
748
|
"""
|
|
749
749
|
suffix = PurePosixPath(relative_path).suffix.lower()
|
|
750
|
-
|
|
750
|
+
# "is this a Python payload" is driven from the language's declared
|
|
751
|
+
# extensions (DATA), not a ``language == "python"`` branch: a .py suffix, or
|
|
752
|
+
# an extensionless payload whose language declares .py as a source extension.
|
|
753
|
+
is_python = suffix == ".py" or (suffix == "" and ".py" in _implementation_language_extensions(language))
|
|
751
754
|
if not is_python:
|
|
752
755
|
return None
|
|
753
756
|
findings = _confusable_findings(content)
|
|
@@ -1754,7 +1757,7 @@ def _candidate_generated_paths(spec: ImplementSpec, language: Any, design_conten
|
|
|
1754
1757
|
candidates.append(PurePosixPath(output_path) / f"index{default_extension}")
|
|
1755
1758
|
|
|
1756
1759
|
normalized_language = _normalize_implementation_language(language)
|
|
1757
|
-
if normalized_language
|
|
1760
|
+
if _ui_variant_extension(normalized_language) is not None and _spec_looks_ui_facing(spec, design_content):
|
|
1758
1761
|
extensions = _implementation_language_extensions(normalized_language)
|
|
1759
1762
|
if len(extensions) > 1:
|
|
1760
1763
|
for output_path in spec.output_paths:
|
|
@@ -1883,7 +1886,7 @@ def _build_implementation_prompt(
|
|
|
1883
1886
|
else:
|
|
1884
1887
|
framework_guidance = f"- Use idiomatic {language_name} patterns for the target project."
|
|
1885
1888
|
|
|
1886
|
-
if language
|
|
1889
|
+
if _ui_variant_extension(language) is not None and len(preferred_extensions) > 1:
|
|
1887
1890
|
jsx_extension = preferred_extensions[1]
|
|
1888
1891
|
extension_guidance = (
|
|
1889
1892
|
f"- If the work needs JSX-style UI components, emit {jsx_extension} files. "
|
|
@@ -2581,10 +2584,41 @@ def _implementation_language_extensions(language: Any) -> tuple[str, ...]:
|
|
|
2581
2584
|
return LANGUAGE_EXT_MAP.get(normalized, LANGUAGE_EXT_MAP["typescript"])
|
|
2582
2585
|
|
|
2583
2586
|
|
|
2587
|
+
#: Registry DATA (Contract Kernel Cut Condition A — implementer.py): the SECOND
|
|
2588
|
+
#: extension some language families carry is a JSX/UI-COMPONENT variant
|
|
2589
|
+
#: (TypeScript's ``.tsx``, JavaScript's ``.jsx``) rather than just "another file
|
|
2590
|
+
#: type" (e.g. C++'s ``.cc``/``.h``). Only a family whose alt extension is a UI
|
|
2591
|
+
#: variant should route UI-facing work to ``extensions[1]``. This is a
|
|
2592
|
+
#: language→capability DATA table (the analogue of a profile/registry entry — a
|
|
2593
|
+
#: declared capability, NOT a core ``language in (...)`` branch); core code asks
|
|
2594
|
+
#: ``_ui_variant_extension(language) is not None`` (a capability flag), never a
|
|
2595
|
+
#: language name. Byte-identical to the former ``in {"typescript","javascript"}``
|
|
2596
|
+
#: guards: those two families are exactly the ones whose ``extensions[1]`` is the
|
|
2597
|
+
#: UI/JSX variant.
|
|
2598
|
+
_UI_VARIANT_EXTENSION_BY_LANGUAGE: dict[str, str] = {
|
|
2599
|
+
"typescript": ".tsx",
|
|
2600
|
+
"javascript": ".jsx",
|
|
2601
|
+
}
|
|
2602
|
+
|
|
2603
|
+
|
|
2604
|
+
def _ui_variant_extension(language: Any) -> str | None:
|
|
2605
|
+
"""The language's JSX/UI-component variant extension, or ``None`` (data lookup).
|
|
2606
|
+
|
|
2607
|
+
A capability flag in DATA form: a language family declares whether it has a
|
|
2608
|
+
dedicated UI-component extension (``.tsx``/``.jsx``). ``None`` means the
|
|
2609
|
+
family has no UI variant (its ``extensions[1]``, if any, is just another file
|
|
2610
|
+
type), so UI-facing routing must NOT use the alternate extension. Replaces
|
|
2611
|
+
the former ``language in {"typescript","javascript"}`` dispatch.
|
|
2612
|
+
"""
|
|
2613
|
+
normalized = _normalize_implementation_language(language)
|
|
2614
|
+
return _UI_VARIANT_EXTENSION_BY_LANGUAGE.get(normalized)
|
|
2615
|
+
|
|
2616
|
+
|
|
2584
2617
|
def _default_generated_extension(language: Any, content: str | None = None) -> str:
|
|
2585
2618
|
normalized = _normalize_implementation_language(language)
|
|
2586
2619
|
extensions = _implementation_language_extensions(normalized)
|
|
2587
|
-
|
|
2620
|
+
ui_variant = _ui_variant_extension(normalized)
|
|
2621
|
+
if ui_variant is not None and len(extensions) > 1 and content and _looks_like_tsx(content):
|
|
2588
2622
|
return extensions[1]
|
|
2589
2623
|
return extensions[0]
|
|
2590
2624
|
|
|
@@ -529,6 +529,99 @@ def strategy_for(language: str) -> RegexLanguageStrategy:
|
|
|
529
529
|
return _STRATEGIES.get((language or "").lower(), GENERIC_STRATEGY)
|
|
530
530
|
|
|
531
531
|
|
|
532
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
533
|
+
# Repair-slice analyzer registry DATA (Contract Kernel Cut Condition A —
|
|
534
|
+
# repair_slice.py de-literalization). ``codd/repair_slice.py``'s function
|
|
535
|
+
# line-range + raises analyzer used to branch on ``language in
|
|
536
|
+
# ("typescript","javascript")`` (tree-sitter func node-type set) and
|
|
537
|
+
# ``language == "python"`` (regex def-vs-function pattern + group index, and the
|
|
538
|
+
# python-only raises regex). Those per-language facts live HERE as registry DATA
|
|
539
|
+
# (the analogue of a profile/adapter — an analyzer impl legitimately names its
|
|
540
|
+
# own language), so the core analyzer dispatches by a data lookup, NOT a
|
|
541
|
+
# language-name branch. Byte-identical to the former inline ladders; the
|
|
542
|
+
# ``tests/languages/test_contract_kernel_cut_a_parity.py`` oracle pins this.
|
|
543
|
+
#
|
|
544
|
+
# Repair-slice extraction (like all extraction) is ANALYSIS input for patch
|
|
545
|
+
# context, never a green/red GATE verdict — so an unknown language degrading to
|
|
546
|
+
# the GENERIC profile (empty func-node set, the function-keyword regex, no raises)
|
|
547
|
+
# is legitimate best-effort analysis, not a false-green.
|
|
548
|
+
# ─────────────────────────────────────────────────────────────────────────────
|
|
549
|
+
|
|
550
|
+
|
|
551
|
+
@dataclass(frozen=True)
|
|
552
|
+
class RepairSliceLanguageProfile:
|
|
553
|
+
"""Per-language repair-slice analyzer DATA (one language; not dispatch).
|
|
554
|
+
|
|
555
|
+
* ``function_node_types`` — the tree-sitter named-node types that are a
|
|
556
|
+
function/method definition for this language (walked for line ranges).
|
|
557
|
+
* ``line_range_pattern`` — the regex (with ``re.MULTILINE``) that matches a
|
|
558
|
+
function definition in the regex FALLBACK path.
|
|
559
|
+
* ``line_range_name_group`` — which regex group holds the function name.
|
|
560
|
+
* ``raises_def_pattern`` / ``raises_stmt_pattern`` — the regex pair for the
|
|
561
|
+
regex-fallback raises analyzer; ``None`` (the GENERIC default) means this
|
|
562
|
+
language contributes NO raises in the fallback (byte-identical to the
|
|
563
|
+
former ``if language != "python": return {}``).
|
|
564
|
+
"""
|
|
565
|
+
|
|
566
|
+
function_node_types: frozenset[str] = frozenset({"function_definition"})
|
|
567
|
+
line_range_pattern: re.Pattern[str] = field(
|
|
568
|
+
default_factory=lambda: re.compile(
|
|
569
|
+
r"^\s*(?:export\s+)?(?:async\s+)?function\s+(\w+)\s*\(", re.MULTILINE
|
|
570
|
+
)
|
|
571
|
+
)
|
|
572
|
+
line_range_name_group: int = 1
|
|
573
|
+
raises_def_pattern: re.Pattern[str] | None = None
|
|
574
|
+
raises_stmt_pattern: re.Pattern[str] | None = None
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
#: The python repair-slice profile: tree-sitter walks only ``function_definition``
|
|
578
|
+
#: (methods are ``function_definition`` inside a class in the python grammar); the
|
|
579
|
+
#: regex fallback uses the ``def`` pattern with the NAME in group 2; and python is
|
|
580
|
+
#: the ONLY language with a regex raises analyzer.
|
|
581
|
+
_REPAIR_PYTHON = RepairSliceLanguageProfile(
|
|
582
|
+
function_node_types=frozenset({"function_definition"}),
|
|
583
|
+
line_range_pattern=re.compile(r"^(\s*)(?:async\s+)?def\s+(\w+)\s*\(", re.MULTILINE),
|
|
584
|
+
line_range_name_group=2,
|
|
585
|
+
raises_def_pattern=re.compile(r"\s*(?:async\s+)?def\s+(\w+)\s*\("),
|
|
586
|
+
raises_stmt_pattern=re.compile(r"\s+raise\s+(\w+)"),
|
|
587
|
+
)
|
|
588
|
+
|
|
589
|
+
#: The ts/js repair-slice profile: tree-sitter additionally walks
|
|
590
|
+
#: ``method_definition`` + ``function_declaration`` (the former ``language in
|
|
591
|
+
#: ("typescript","javascript")`` set); the regex fallback uses the
|
|
592
|
+
#: ``function`` pattern with the NAME in group 1; no regex raises analyzer.
|
|
593
|
+
_REPAIR_TS_JS = RepairSliceLanguageProfile(
|
|
594
|
+
function_node_types=frozenset(
|
|
595
|
+
{"function_definition", "method_definition", "function_declaration"}
|
|
596
|
+
),
|
|
597
|
+
line_range_pattern=re.compile(
|
|
598
|
+
r"^\s*(?:export\s+)?(?:async\s+)?function\s+(\w+)\s*\(", re.MULTILINE
|
|
599
|
+
),
|
|
600
|
+
line_range_name_group=1,
|
|
601
|
+
)
|
|
602
|
+
|
|
603
|
+
#: The GENERIC repair-slice profile for any other/unknown language — byte-identical
|
|
604
|
+
#: to the former ``else`` branches: tree-sitter walks only ``function_definition``;
|
|
605
|
+
#: the regex fallback uses the ``function`` pattern with the name in group 1; and
|
|
606
|
+
#: no raises (the former ``if language != "python": return {}``).
|
|
607
|
+
GENERIC_REPAIR_PROFILE = RepairSliceLanguageProfile()
|
|
608
|
+
|
|
609
|
+
_REPAIR_PROFILES: dict[str, RepairSliceLanguageProfile] = {
|
|
610
|
+
"python": _REPAIR_PYTHON,
|
|
611
|
+
"typescript": _REPAIR_TS_JS,
|
|
612
|
+
"javascript": _REPAIR_TS_JS,
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
|
|
616
|
+
def repair_slice_profile_for(language: str) -> RepairSliceLanguageProfile:
|
|
617
|
+
"""Repair-slice analyzer profile for *language* (registry-data lookup).
|
|
618
|
+
|
|
619
|
+
Unknown languages resolve to :data:`GENERIC_REPAIR_PROFILE` (the former
|
|
620
|
+
non-python / non-ts-js ``else`` behavior); analysis input, never a gate.
|
|
621
|
+
"""
|
|
622
|
+
return _REPAIR_PROFILES.get((language or "").lower(), GENERIC_REPAIR_PROFILE)
|
|
623
|
+
|
|
624
|
+
|
|
532
625
|
def language_extensions(language: str) -> set[str]:
|
|
533
626
|
"""Source-file extensions for *language* (registry-data lookup)."""
|
|
534
627
|
return set(strategy_for(language).extensions)
|
|
@@ -60,9 +60,8 @@ def extract_function_line_ranges(
|
|
|
60
60
|
ext = get_extractor(language)
|
|
61
61
|
if not isinstance(ext, TreeSitterExtractor):
|
|
62
62
|
return _extract_line_ranges_regex(content, language)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
return _walk_functions_for_ranges(tree.root_node, content, language)
|
|
63
|
+
root = ext._parse(content)
|
|
64
|
+
return _walk_functions_for_ranges(root, content, language)
|
|
66
65
|
except Exception:
|
|
67
66
|
return _extract_line_ranges_regex(content, language)
|
|
68
67
|
|
|
@@ -72,12 +71,14 @@ def _walk_functions_for_ranges(
|
|
|
72
71
|
) -> dict[str, tuple[int, int]]:
|
|
73
72
|
"""Walk AST to find all function definitions with their line ranges."""
|
|
74
73
|
from codd.parsing import _iter_named_nodes, _field_text
|
|
74
|
+
from codd.parsing.regex_strategies import repair_slice_profile_for
|
|
75
75
|
content_bytes = content.encode("utf-8", errors="ignore")
|
|
76
76
|
ranges: dict[str, tuple[int, int]] = {}
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
# The set of tree-sitter function/method node types for this language is
|
|
79
|
+
# registry DATA (the analogue of a profile/adapter), not a language-name
|
|
80
|
+
# branch in core. ts/js add method_definition + function_declaration.
|
|
81
|
+
func_types = repair_slice_profile_for(language).function_node_types
|
|
81
82
|
|
|
82
83
|
for node in _iter_named_nodes(root):
|
|
83
84
|
if node.type not in func_types:
|
|
@@ -105,18 +106,24 @@ def _parent_class_name(content_bytes: bytes, node: Any) -> str:
|
|
|
105
106
|
|
|
106
107
|
|
|
107
108
|
def _extract_line_ranges_regex(content: str, language: str) -> dict[str, tuple[int, int]]:
|
|
108
|
-
"""Fallback: regex-based line range extraction.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
109
|
+
"""Fallback: regex-based line range extraction.
|
|
110
|
+
|
|
111
|
+
The def-vs-function regex and the name-capture group are registry DATA per
|
|
112
|
+
language (python uses ``def`` with name in group 2; every other language uses
|
|
113
|
+
``function`` with name in group 1), so this core fallback dispatches by a
|
|
114
|
+
data lookup, not a ``language == "python"`` branch.
|
|
115
|
+
"""
|
|
116
|
+
from codd.parsing.regex_strategies import repair_slice_profile_for
|
|
117
|
+
profile = repair_slice_profile_for(language)
|
|
118
|
+
pattern = profile.line_range_pattern
|
|
119
|
+
name_group = profile.line_range_name_group
|
|
114
120
|
|
|
121
|
+
ranges: dict[str, tuple[int, int]] = {}
|
|
115
122
|
lines = content.split("\n")
|
|
116
123
|
matches = list(pattern.finditer(content))
|
|
117
124
|
for i, m in enumerate(matches):
|
|
118
125
|
line_no = content[:m.start()].count("\n") + 1
|
|
119
|
-
name = m.group(
|
|
126
|
+
name = m.group(name_group)
|
|
120
127
|
# Estimate end: next function or end of file
|
|
121
128
|
if i + 1 < len(matches):
|
|
122
129
|
end_line = content[:matches[i + 1].start()].count("\n")
|
|
@@ -137,9 +144,8 @@ def extract_raises(content: str, file_path: str, language: str) -> dict[str, lis
|
|
|
137
144
|
ext = get_extractor(language)
|
|
138
145
|
if not isinstance(ext, TreeSitterExtractor):
|
|
139
146
|
return _extract_raises_regex(content, language)
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
return _walk_raises(tree.root_node, content, language)
|
|
147
|
+
root = ext._parse(content)
|
|
148
|
+
return _walk_raises(root, content, language)
|
|
143
149
|
except Exception:
|
|
144
150
|
return _extract_raises_regex(content, language)
|
|
145
151
|
|
|
@@ -193,17 +199,27 @@ def _enclosing_function(content_bytes: bytes, node: Any) -> str:
|
|
|
193
199
|
|
|
194
200
|
|
|
195
201
|
def _extract_raises_regex(content: str, language: str) -> dict[str, list[str]]:
|
|
196
|
-
"""Fallback regex for raises extraction.
|
|
202
|
+
"""Fallback regex for raises extraction.
|
|
203
|
+
|
|
204
|
+
The def/raise regex pair is registry DATA per language; a language without a
|
|
205
|
+
declared raises analyzer (every language except python today) yields no
|
|
206
|
+
raises — a data lookup, not a ``language != "python"`` branch.
|
|
207
|
+
"""
|
|
208
|
+
from codd.parsing.regex_strategies import repair_slice_profile_for
|
|
209
|
+
profile = repair_slice_profile_for(language)
|
|
210
|
+
def_pattern = profile.raises_def_pattern
|
|
211
|
+
stmt_pattern = profile.raises_stmt_pattern
|
|
212
|
+
|
|
197
213
|
result: dict[str, list[str]] = {}
|
|
198
|
-
if
|
|
214
|
+
if def_pattern is None or stmt_pattern is None:
|
|
199
215
|
return result
|
|
200
216
|
current_func = ""
|
|
201
217
|
for line in content.split("\n"):
|
|
202
|
-
m =
|
|
218
|
+
m = def_pattern.match(line)
|
|
203
219
|
if m:
|
|
204
220
|
current_func = m.group(1)
|
|
205
221
|
if current_func:
|
|
206
|
-
rm =
|
|
222
|
+
rm = stmt_pattern.match(line)
|
|
207
223
|
if rm:
|
|
208
224
|
exc = rm.group(1)
|
|
209
225
|
result.setdefault(current_func, [])
|
|
@@ -1235,6 +1235,18 @@ def _python_body_assigned_names(body_text: str) -> set[str]:
|
|
|
1235
1235
|
return names
|
|
1236
1236
|
|
|
1237
1237
|
|
|
1238
|
+
#: Poetry MANIFEST-FORMAT reserved keys that appear under
|
|
1239
|
+
#: ``[tool.poetry.dependencies]`` but are NOT third-party packages. Poetry stores
|
|
1240
|
+
#: the interpreter version constraint as a pseudo-dependency named ``python``
|
|
1241
|
+
#: (``python = "^3.11"``); it is the interpreter pin, not a distribution to
|
|
1242
|
+
#: import. This is a poetry FILE-FORMAT fact (the analogue of registry/profile
|
|
1243
|
+
#: DATA), NOT a target-language gate dispatch — the surrounding parser is already
|
|
1244
|
+
#: unconditionally Python-specific. Excluding it keeps the third-party set exact;
|
|
1245
|
+
#: membership here is byte-identical to the former inline ``k.lower() != "python"``
|
|
1246
|
+
#: filter (Contract Kernel Cut Condition A — vb_marker_authenticity.py).
|
|
1247
|
+
_POETRY_RESERVED_NON_DEPENDENCY_KEYS = frozenset({"python"})
|
|
1248
|
+
|
|
1249
|
+
|
|
1238
1250
|
def _python_manifest_top_dependencies(project_root: Path | None) -> frozenset[str]:
|
|
1239
1251
|
"""Declared third-party dependency names from ``pyproject.toml`` (PEP 621 +
|
|
1240
1252
|
poetry), normalized for top-module matching. Empty when absent/unparseable —
|
|
@@ -1268,7 +1280,11 @@ def _python_manifest_top_dependencies(project_root: Path | None) -> frozenset[st
|
|
|
1268
1280
|
if isinstance(poetry, dict):
|
|
1269
1281
|
pdeps = poetry.get("dependencies", {})
|
|
1270
1282
|
if isinstance(pdeps, dict):
|
|
1271
|
-
reqs.extend(
|
|
1283
|
+
reqs.extend(
|
|
1284
|
+
k
|
|
1285
|
+
for k in pdeps
|
|
1286
|
+
if isinstance(k, str) and k.lower() not in _POETRY_RESERVED_NON_DEPENDENCY_KEYS
|
|
1287
|
+
)
|
|
1272
1288
|
names: set[str] = set()
|
|
1273
1289
|
for req in reqs:
|
|
1274
1290
|
m = re.match(r"\s*([A-Za-z0-9._-]+)", req)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/defaults/runtime_capability_inference.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codd_dev-2.87.0 → codd_dev-2.88.0}/codd/deployment/providers/verification/assertion_handlers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|