codd-dev 3.7.3__tar.gz → 3.7.4__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-3.7.3 → codd_dev-3.7.4}/PKG-INFO +1 -1
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/__init__.py +1 -1
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/builder.py +163 -3
- codd_dev-3.7.4/codd/dag/defaults/cpp_embedded.yaml +2 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/extractor.py +6 -1
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/regex_strategies.py +169 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/pyproject.toml +1 -1
- codd_dev-3.7.3/codd/dag/defaults/cpp_embedded.yaml +0 -2
- {codd_dev-3.7.3 → codd_dev-3.7.4}/.gitignore +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/LICENSE +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/README.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/bench_fixture/README.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/__main__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/_git_helper.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/action_outcome.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/ai_invoke.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/ai_patch.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/artifact_contract.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/artifact_ids.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/artifacts/catalog.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/ask_user_question_adapter.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/assembler.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/bridge.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/brownfield/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/brownfield/pipeline.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/capability_completeness.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/claude_cli.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/cli.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/clustering.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/coherence_adapters.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/coherence_engine.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/confidence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/config.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/config_schema.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/contracts.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/contracts_registry/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/contracts_registry/__main__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/contracts_registry/certify.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/contracts_registry/generate_matrix.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/contracts_registry/registry.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/coverage_auditor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/coverage_execution_coherence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/coverage_metrics.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/auto_repair.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/_one_to_many_detection.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/artifact_contract_check.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/cardinality_coverage.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/ci_health.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/dependency_freshness.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/depends_on_consistency.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/deployment_completeness.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/edge_validity.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/environment_coverage.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/extraction_diagnostics.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/implementation_coverage.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/negative_space.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/node_completeness.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/opt_out.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/resource_flow_coherence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/semantic_contract_conflict.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/stale_evidence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/task_completion.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/transitive_closure.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/ui_coherence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/checks/user_journey_coherence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/coverage_axes.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/cli.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/csharp.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/elixir.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/generic.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/iot.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/java.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/kotlin.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/mobile.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/ruby.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/rust.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/scala.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/swift.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/test_frameworks.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/defaults/web.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/extractor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/impact.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/materiality.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/metadata_access.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/result_status.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dag/runner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/defaults.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/defaults.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/dependency_lock_coherence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deploy_targets/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deploy_targets/app_service.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deploy_targets/base.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deploy_targets/docker_compose.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployer.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/checks/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/defaults/deploy_targets.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/defaults/schema_providers.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/defaults/verification_templates.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/extractor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/ai_command.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/ai_command_factory.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/codex_app_server.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/llm_consideration.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/schema/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/schema/prisma.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/target/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/target/docker_compose.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/cdp_browser.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/cdp_engines.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/cdp_wire.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/curl.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/form_strategies.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/means_catalog.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/playwright.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/pytest_http.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/deployment/providers/verification/vitest.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/design_md.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/diff/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/diff/apply.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/diff/engine.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/diff/persistence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/diff/templates/diff_prompt.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/discovery.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/drift.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/e2e_contract_coherence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/e2e_extractor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/e2e_generator.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/e2e_harness.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/e2e_runner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/apply.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/engine.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/finding.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/formatters/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/formatters/base.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/formatters/interactive.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/formatters/json_fmt.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/formatters/md.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/gap_to_ask.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/lexicon_loader.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/persistence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/promote.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/routing.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/env_refs.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/extract_ai.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/extract_paths.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/candidate_selector.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/design_updater.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/impact_planner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/impl_propagation.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/interactive_prompt.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/phenomenon_fixer.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/phenomenon_parser.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/risk_classifier.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/templates/clarification_question.txt +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/templates/design_update.txt +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/templates/impl_update.txt +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/templates/phenomenon_parse.txt +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/templates/risk_assessment.txt +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fix/templates_loader.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fixer.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fixup_drift.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fixup_drift_strategies/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/fixup_drift_strategies/url_drift.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/frontmatter.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/generator.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/git_evidence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/graph.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/greenfield/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/greenfield/pipeline.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/hitl_session.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/hooks/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/hooks/pre-commit +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/hooks/recipes/claude_requirements_nudge.json +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/hooks/recipes/claude_settings_example.json +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/hooks/recipes/codex_hook.sh +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/hooks/recipes/git_post_commit.sh +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/hooks/recipes/git_pre_commit.sh +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/iac_nfr.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/implement_oracle.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/implement_oracle_scope.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/implement_oracle_types.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/implementer/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/implementer/chunked_runner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/implementer/typecheck_loop.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/implementer.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/import_coherence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/inheritance.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/init/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/init/lexicon_suggest.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/init/llm_lexicon_suggester.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/init/stack_detector.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/knowledge_fetcher.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/adapters/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/adapters/implement_oracle.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/adapters/oracle_go.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/adapters/oracle_python.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/adapters/oracle_typescript.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/adapters/runner_report.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/builtin_adapters.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/compat.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/contract.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/loader.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/oracle_executor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/path_planner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/profile.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/profiles/go.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/profiles/python.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/profiles/typescript.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/registry.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/verify_executor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/languages/verify_plan.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon_cli/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon_cli/formatters/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon_cli/formatters/html.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon_cli/formatters/md.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon_cli/inspector.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon_cli/manager.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon_cli/reporter.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/lexicon_cli/threshold.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/approval.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/best_practice_augmenter.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/criteria_expander.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/design_doc_extractor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/impl_step_deriver.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/means_catalog_loader.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/parser.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/plan_deriver.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/prompt_builder.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/strategy_validator.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/templates/best_practice_augment_meta.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/templates/criteria_expand_meta.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/templates/design_doc_extract_meta.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/templates/impl_step_derive_meta.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/templates/meta_instruction.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/templates/plan_derive_meta.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/llm/templates/verification_means_catalog.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/mcp_server.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/measure.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/operational_e2e_audit.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/operations_derive.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/_shared.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/api_specs.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/extractor_registry.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/filesystem_routes.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/iac.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/python_ast.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/schemas.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/tests_builddeps.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/parsing/treesitter.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/path_safety.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/planner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/policy.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/preflight/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/preflight/defaults/cli.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/preflight/defaults/generic.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/preflight/defaults/iot.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/preflight/defaults/mobile.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/preflight/defaults/web.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/project_types.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/propagate.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/propagation_common.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/propagator.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/reconciliation_ledger.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/reference_resolution.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/registry.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/approval_repair.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/auto_scope_guard.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/engine.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/git_patcher.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/history.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/llm_repair_engine.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/loop.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/primary_picker.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/proof_breaks.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/repair_result.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/repairability_classifier.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/schema.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/templates/analyze_meta.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/templates/propose_meta.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/templates/repair_strategy_meta.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/templates/repairability_meta.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/test_failure_attribution.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair/verify_runner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/repair_slice.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/require.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/require_plugins.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/require_propagate.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/required_artifacts/defaults/cli.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/required_artifacts/defaults/generic.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/required_artifacts/defaults/iot.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/required_artifacts/defaults/mobile.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/required_artifacts/defaults/web.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/required_artifacts_deriver.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/requirement_completeness/defaults/cli.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/requirement_completeness/defaults/generic.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/requirement_completeness/defaults/iot.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/requirement_completeness/defaults/web.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/requirement_completeness_auditor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/requirement_reconciliation.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/requirements_meta.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/restoration_report.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/restore.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/routes_extractor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/runtime_smoke/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/runtime_smoke/checks.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/runtime_smoke/config.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/runtime_smoke/report.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/runtime_smoke/runner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/scanner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/schema_refs.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/screen_flow_validator.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/screen_transition_extractor.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/screen_transitions/defaults.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/skills_cli/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/skills_cli/discovery.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/skills_cli/manager.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/skills_cli/paths.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/adapters/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/adapters/_base.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/adapters/nextjs.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/adapters/playwright.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/adapters/prisma.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/command_authenticity.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/command_override.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/command_plan.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/compose.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/loader.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/lock.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/obligations.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/profile.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/profiles/addons/playwright.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/profiles/addons/prisma.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/profiles/frameworks/nextjs.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/project.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/registry.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/replacement_proof.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/stack/resolve.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/surface_reconciliation.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/synth.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/codd.yaml.tmpl +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/conventions.yaml.tmpl +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/data_dependencies.yaml.tmpl +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/doc_links.yaml.tmpl +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/extract_ai_prompt_baseline.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/extracted/api-contract.md.j2 +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/extracted/module-detail.md.j2 +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/extracted/schema-design.md.j2 +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/extracted/system-context.md.j2 +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/gitignore.tmpl +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/lexicon_questions.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/lexicon_schema.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/templates/overrides.yaml.tmpl +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/test_detection.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/test_import_coherence.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/traceability.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/validator.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/vb_marker_authenticity.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/vb_rerun_scope.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/verifiable_behavior_audit.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/watch/__init__.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/watch/events.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/watch/propagation_log.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/watch/propagation_pipeline.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/watch/test_runner.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/watch/watcher.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd/wiring.py +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rate_limiting_caching/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rate_limiting_caching/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rate_limiting_caching/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rate_limiting_caching/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rate_limiting_caching/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rate_limiting_caching/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_aggregation_policies/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_aggregation_policies/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_aggregation_policies/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_aggregation_policies/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_aggregation_policies/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_aggregation_policies/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ddd_domain_driven_design/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ddd_domain_driven_design/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ddd_domain_driven_design/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ddd_domain_driven_design/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ddd_domain_driven_design/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ddd_domain_driven_design/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/dora_sre_metrics/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/dora_sre_metrics/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/dora_sre_metrics/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/dora_sre_metrics/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/dora_sre_metrics/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/dora_sre_metrics/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/i18n_unicode_cldr/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/i18n_unicode_cldr/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/i18n_unicode_cldr/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/i18n_unicode_cldr/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/i18n_unicode_cldr/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/i18n_unicode_cldr/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ml_model_cards/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ml_model_cards/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ml_model_cards/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ml_model_cards/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ml_model_cards/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ml_model_cards/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_security_masvs/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_security_masvs/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_security_masvs/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_security_masvs/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_security_masvs/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/mobile_security_masvs/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/twelve_factor_app/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/twelve_factor_app/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/twelve_factor_app/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/twelve_factor_app/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/twelve_factor_app/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/twelve_factor_app/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/codd_plugins/stack_map.yaml +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/docs/cookbook/cdp_browser/README.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/docs/cookbook/presentation_aggregation/README.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/docs/requirements/README.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/examples/README.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-assemble/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-evolve/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-generate/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-greenfield/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-impact/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-init/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-propagate/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-restore/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-scan/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/skills/codd-validate/SKILL.md +0 -0
- {codd_dev-3.7.3 → codd_dev-3.7.4}/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: 3.7.
|
|
3
|
+
Version: 3.7.4
|
|
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
|
|
@@ -924,6 +924,19 @@ def _resolve_import_target(
|
|
|
924
924
|
return resolved
|
|
925
925
|
return None
|
|
926
926
|
|
|
927
|
+
# C++ ``#include`` specifiers are dispatched by the IMPORTING file's C/C++
|
|
928
|
+
# suffix (DATA, not a ``language ==`` core branch). Resolution is PATH-based
|
|
929
|
+
# (the specifier already carries its extension, e.g. ``fmt/core.h``), the key
|
|
930
|
+
# divergence from Java's FQN→path synthesis: a quote-form include resolves
|
|
931
|
+
# relative-to-file first, then via include roots; an angle-form include is
|
|
932
|
+
# system/STL and produces no edge.
|
|
933
|
+
if file_path.suffix in _CPP_SOURCE_SUFFIXES:
|
|
934
|
+
for candidate in _cpp_include_candidates(import_ref, file_path, path_to_node):
|
|
935
|
+
resolved = _resolve_file_candidate(candidate, path_to_node)
|
|
936
|
+
if resolved:
|
|
937
|
+
return resolved
|
|
938
|
+
return None
|
|
939
|
+
|
|
927
940
|
candidates: list[Path] = []
|
|
928
941
|
if _is_js_relative_specifier(import_ref):
|
|
929
942
|
# JS/TS relative: ``./foo`` / ``../foo`` — resolve against the file dir
|
|
@@ -1107,6 +1120,105 @@ def _sorted_java_dir_files(package_dir: Path) -> list[Path]:
|
|
|
1107
1120
|
)
|
|
1108
1121
|
|
|
1109
1122
|
|
|
1123
|
+
#: C/C++ source/header suffixes whose ``#include`` directives carry the intra-tree
|
|
1124
|
+
#: dependency graph. Used to suffix-dispatch the PATH-based resolver branch (DATA,
|
|
1125
|
+
#: not a ``language ==`` core gate). Kept in sync with the ``.h``/``.cc``/… keys of
|
|
1126
|
+
#: ``_SUFFIX_SPECIFIER_EXTRACTORS``.
|
|
1127
|
+
_CPP_SOURCE_SUFFIXES = frozenset({".h", ".hpp", ".hh", ".cc", ".cpp", ".cxx"})
|
|
1128
|
+
|
|
1129
|
+
#: Conventional C/C++ include-root directory names. A quote-form include such as
|
|
1130
|
+
#: ``"fmt/core.h"`` that is not relative to the including file is probed under
|
|
1131
|
+
#: these roots (``include`` covers fmt's ``include/fmt/*.h`` layout). Harvested
|
|
1132
|
+
#: header-node parent dirs are added at resolution time so unconventional roots
|
|
1133
|
+
#: still resolve from DATA.
|
|
1134
|
+
_CPP_INCLUDE_ROOTS = ("include", "src", "inc")
|
|
1135
|
+
|
|
1136
|
+
|
|
1137
|
+
def _cpp_include_candidates(
|
|
1138
|
+
import_ref: str,
|
|
1139
|
+
file_path: Path,
|
|
1140
|
+
path_to_node: dict[Path, str],
|
|
1141
|
+
) -> list[Path]:
|
|
1142
|
+
"""Map a C++ ``#include`` specifier to filesystem candidates (PATH-based).
|
|
1143
|
+
|
|
1144
|
+
The specifier is marker-prefixed by ``_extract_cpp_include_specifiers``:
|
|
1145
|
+
|
|
1146
|
+
* ``angle:vector`` (``#include <vector>``) → system/STL: NO candidates, so no
|
|
1147
|
+
edge forms (mirrors Java ``java.*`` producing no edge).
|
|
1148
|
+
* ``quote:fmt/core.h`` (``#include "fmt/core.h"``) → local header. The path
|
|
1149
|
+
ALREADY has its extension, so there is NO suffix synthesis (the divergence
|
|
1150
|
+
from Java's FQN→path mapping). Resolution order:
|
|
1151
|
+
1. relative to the including file's directory (``file.parent / spec``);
|
|
1152
|
+
2. each conventional include root (``include``/``src``/``inc``) under the
|
|
1153
|
+
project tree, located by walking up from the including file;
|
|
1154
|
+
3. the parent directory of every header node already in the file-set
|
|
1155
|
+
(harvested from DATA), so unconventional include roots still resolve.
|
|
1156
|
+
|
|
1157
|
+
``_resolve_file_candidate`` matches exact node paths first, so a fully-pathed
|
|
1158
|
+
candidate (``…/include/fmt/core.h``) resolves directly to its node.
|
|
1159
|
+
"""
|
|
1160
|
+
if import_ref.startswith(_CPP_ANGLE_SPECIFIER):
|
|
1161
|
+
return []
|
|
1162
|
+
if import_ref.startswith(_CPP_QUOTE_SPECIFIER):
|
|
1163
|
+
spec = import_ref[len(_CPP_QUOTE_SPECIFIER):]
|
|
1164
|
+
else:
|
|
1165
|
+
# Defensive: an unmarked specifier (e.g. a future extractor) is treated
|
|
1166
|
+
# as a quote-form local include.
|
|
1167
|
+
spec = import_ref
|
|
1168
|
+
spec = spec.strip()
|
|
1169
|
+
if not spec:
|
|
1170
|
+
return []
|
|
1171
|
+
|
|
1172
|
+
rel = Path(spec)
|
|
1173
|
+
candidates: list[Path] = []
|
|
1174
|
+
# 1. Relative to the including file's own directory (quote-form's primary
|
|
1175
|
+
# rule — ``#include "lib/b.h"`` next to ``a.cc``).
|
|
1176
|
+
candidates.append((file_path.parent / rel).resolve())
|
|
1177
|
+
|
|
1178
|
+
# 2. Conventional include roots discovered by walking up the including file's
|
|
1179
|
+
# ancestors (so ``include/fmt/core.h`` resolves from ``src/format.cc``).
|
|
1180
|
+
seen: set[Path] = set()
|
|
1181
|
+
for ancestor in [file_path.parent, *file_path.parents]:
|
|
1182
|
+
for root_name in _CPP_INCLUDE_ROOTS:
|
|
1183
|
+
root = ancestor / root_name
|
|
1184
|
+
key = root.resolve()
|
|
1185
|
+
if key in seen:
|
|
1186
|
+
continue
|
|
1187
|
+
seen.add(key)
|
|
1188
|
+
candidates.append((root / rel).resolve())
|
|
1189
|
+
|
|
1190
|
+
# 3. Harvest header-node parent directories from the file-set (DATA), so an
|
|
1191
|
+
# unconventional include root still resolves the trailing path segment(s).
|
|
1192
|
+
for header_dir in _cpp_header_root_dirs(path_to_node):
|
|
1193
|
+
candidates.append((header_dir / rel).resolve())
|
|
1194
|
+
|
|
1195
|
+
return candidates
|
|
1196
|
+
|
|
1197
|
+
|
|
1198
|
+
def _cpp_header_root_dirs(path_to_node: dict[Path, str]) -> list[Path]:
|
|
1199
|
+
"""Candidate include roots harvested from header nodes in the file-set.
|
|
1200
|
+
|
|
1201
|
+
For a header node ``…/include/fmt/core.h`` whose include path is ``fmt/core.h``
|
|
1202
|
+
the include ROOT is ``…/include``. We cannot know the split a priori, so we
|
|
1203
|
+
offer each header's parent AND grandparent dirs as roots; the joined
|
|
1204
|
+
candidate only resolves when it matches a real node path, so over-offering is
|
|
1205
|
+
harmless (no false edges).
|
|
1206
|
+
"""
|
|
1207
|
+
roots: dict[str, Path] = {}
|
|
1208
|
+
for node_path in path_to_node:
|
|
1209
|
+
if node_path.suffix not in _CPP_HEADER_SUFFIXES:
|
|
1210
|
+
continue
|
|
1211
|
+
for ancestor in (node_path.parent, node_path.parent.parent):
|
|
1212
|
+
resolved = ancestor.resolve()
|
|
1213
|
+
roots[str(resolved)] = resolved
|
|
1214
|
+
return sorted(roots.values(), key=lambda path: len(path.parts), reverse=True)
|
|
1215
|
+
|
|
1216
|
+
|
|
1217
|
+
#: C/C++ header suffixes (subset of ``_CPP_SOURCE_SUFFIXES``) used to harvest
|
|
1218
|
+
#: include-root directories from the node file-set.
|
|
1219
|
+
_CPP_HEADER_SUFFIXES = frozenset({".h", ".hpp", ".hh"})
|
|
1220
|
+
|
|
1221
|
+
|
|
1110
1222
|
def _infer_test_targets(
|
|
1111
1223
|
test_path: Path,
|
|
1112
1224
|
project_root: Path,
|
|
@@ -1197,14 +1309,59 @@ def _extract_java_import_specifiers(file_path: Path) -> list[str]:
|
|
|
1197
1309
|
return fallback
|
|
1198
1310
|
|
|
1199
1311
|
|
|
1312
|
+
# C++ ``#include`` directives. The DAG resolver needs to know quote-form
|
|
1313
|
+
# (``"…"`` — local, relative-first) vs angle-form (``<…>`` — system/STL, no
|
|
1314
|
+
# edge), so the extractor preserves that distinction by prefixing a marker:
|
|
1315
|
+
# ``"fmt/core.h"`` → ``quote:fmt/core.h``
|
|
1316
|
+
# ``<vector>`` → ``angle:vector``
|
|
1317
|
+
# Built-in regex (NOT routed through the registry): tree-sitter-cpp is not
|
|
1318
|
+
# installed, and ``RegexExtractor.extract_import_specifiers`` returns ``[]`` for
|
|
1319
|
+
# C++, so a self-contained regex is the source of these specifiers. The marker
|
|
1320
|
+
# is stripped by the resolver's ``.suffix``-dispatched C++ branch.
|
|
1321
|
+
_CPP_QUOTE_SPECIFIER = "quote:"
|
|
1322
|
+
_CPP_ANGLE_SPECIFIER = "angle:"
|
|
1323
|
+
_CPP_INCLUDE_RE = re.compile(
|
|
1324
|
+
r'^\s*#\s*include\s*(?:"([^"]+)"|<([^>]+)>)',
|
|
1325
|
+
re.MULTILINE,
|
|
1326
|
+
)
|
|
1327
|
+
|
|
1328
|
+
|
|
1329
|
+
def _extract_cpp_include_specifiers(file_path: Path) -> list[str]:
|
|
1330
|
+
"""Return raw C++ ``#include`` specifiers (quote/angle-marked) for the DAG.
|
|
1331
|
+
|
|
1332
|
+
Mirrors ``_extract_java_import_specifiers`` in role (suffix-dispatched raw
|
|
1333
|
+
specifier extraction) but uses a built-in regex because tree-sitter-cpp is
|
|
1334
|
+
absent. The quote/angle form is carried as a marker prefix so the
|
|
1335
|
+
PATH-based resolver can apply the right rule: quote-form resolves
|
|
1336
|
+
relative-to-file then via include roots; angle-form is system/STL and forms
|
|
1337
|
+
no edge (analogous to Java ``java.*`` producing no edge).
|
|
1338
|
+
"""
|
|
1339
|
+
|
|
1340
|
+
content = file_path.read_text(encoding="utf-8", errors="ignore")
|
|
1341
|
+
specifiers: list[str] = []
|
|
1342
|
+
for quote_target, angle_target in _CPP_INCLUDE_RE.findall(content):
|
|
1343
|
+
if quote_target:
|
|
1344
|
+
specifiers.append(f"{_CPP_QUOTE_SPECIFIER}{quote_target}")
|
|
1345
|
+
elif angle_target:
|
|
1346
|
+
specifiers.append(f"{_CPP_ANGLE_SPECIFIER}{angle_target}")
|
|
1347
|
+
return specifiers
|
|
1348
|
+
|
|
1349
|
+
|
|
1200
1350
|
#: Suffix → raw-specifier extractor (DATA dispatch). A source file whose language
|
|
1201
1351
|
#: carries its intra-tree dependency graph in DOTTED specifiers (Python modules,
|
|
1202
|
-
#: Java FQNs) resolves edges from these,
|
|
1203
|
-
#: ``extract_imports`` seam (JS/TS
|
|
1204
|
-
#: language here is pure data — no
|
|
1352
|
+
#: Java FQNs) or ``#include`` directives (C/C++) resolves edges from these,
|
|
1353
|
+
#: instead of the builder's quoted-string ``extract_imports`` seam (JS/TS
|
|
1354
|
+
#: ``from '…'`` / ``require('…')``). Adding a language here is pure data — no
|
|
1355
|
+
#: core ``if language ==`` branch.
|
|
1205
1356
|
_SUFFIX_SPECIFIER_EXTRACTORS: dict[str, "Callable[[Path], list[str]]"] = {
|
|
1206
1357
|
".py": _extract_python_import_specifiers,
|
|
1207
1358
|
".java": _extract_java_import_specifiers,
|
|
1359
|
+
".h": _extract_cpp_include_specifiers,
|
|
1360
|
+
".hpp": _extract_cpp_include_specifiers,
|
|
1361
|
+
".hh": _extract_cpp_include_specifiers,
|
|
1362
|
+
".cc": _extract_cpp_include_specifiers,
|
|
1363
|
+
".cpp": _extract_cpp_include_specifiers,
|
|
1364
|
+
".cxx": _extract_cpp_include_specifiers,
|
|
1208
1365
|
}
|
|
1209
1366
|
|
|
1210
1367
|
|
|
@@ -1949,8 +2106,11 @@ def _language_for_path(path: Path) -> str:
|
|
|
1949
2106
|
".cs": "csharp",
|
|
1950
2107
|
".c": "c",
|
|
1951
2108
|
".cpp": "cpp",
|
|
2109
|
+
".cc": "cpp",
|
|
2110
|
+
".cxx": "cpp",
|
|
1952
2111
|
".h": "cpp",
|
|
1953
2112
|
".hpp": "cpp",
|
|
2113
|
+
".hh": "cpp",
|
|
1954
2114
|
".kt": "kotlin",
|
|
1955
2115
|
".kts": "kotlin",
|
|
1956
2116
|
".swift": "swift",
|
|
@@ -305,6 +305,11 @@ def _detect_language(project_root: Path, exclude_patterns: list[str]) -> str:
|
|
|
305
305
|
".py": "python", ".ts": "typescript", ".tsx": "typescript",
|
|
306
306
|
".js": "javascript", ".jsx": "javascript",
|
|
307
307
|
".java": "java", ".go": "go",
|
|
308
|
+
# C++ (incl. the common .cc/.cxx/.hh/.hpp variants). Listed as DATA so a
|
|
309
|
+
# header-heavy project like fmt (15 headers + .cc sources) is detected as
|
|
310
|
+
# ``cpp`` instead of vacuously falling back to ``python``.
|
|
311
|
+
".cc": "cpp", ".cpp": "cpp", ".cxx": "cpp",
|
|
312
|
+
".h": "cpp", ".hpp": "cpp", ".hh": "cpp",
|
|
308
313
|
}
|
|
309
314
|
|
|
310
315
|
for root, dirs, files in os.walk(project_root):
|
|
@@ -340,7 +345,7 @@ def _detect_source_dirs(project_root: Path, language: str) -> list[str]:
|
|
|
340
345
|
# not also pick up ``src/test/<lang>`` (which _detect_test_dirs claims).
|
|
341
346
|
return jvm_source
|
|
342
347
|
|
|
343
|
-
candidates = ["src", "lib", "app", "pkg", "cmd", "internal"]
|
|
348
|
+
candidates = ["src", "lib", "app", "pkg", "cmd", "internal", "include"]
|
|
344
349
|
found = []
|
|
345
350
|
|
|
346
351
|
for c in candidates:
|
|
@@ -231,6 +231,83 @@ def _symbols_go(content: str, rel_path: str) -> "list[Symbol]":
|
|
|
231
231
|
return symbols
|
|
232
232
|
|
|
233
233
|
|
|
234
|
+
#: C++ type-declaration keyword → emitted symbol kind. ``struct`` keeps its own
|
|
235
|
+
#: kind (distinct from ``class``) since it is meaningful in C++; ``enum`` (incl.
|
|
236
|
+
#: ``enum class``) and ``namespace`` map to their literal kinds.
|
|
237
|
+
_CPP_TYPE_KEYWORD_KINDS = (
|
|
238
|
+
(re.compile(r'^\s*(?:template\s*<[^>]*>\s*)?class\s+(\w+)'), "class"),
|
|
239
|
+
(re.compile(r'^\s*(?:template\s*<[^>]*>\s*)?struct\s+(\w+)'), "struct"),
|
|
240
|
+
(re.compile(r'^\s*enum\s+(?:class\s+|struct\s+)?(\w+)'), "enum"),
|
|
241
|
+
(re.compile(r'^\s*namespace\s+(\w+)'), "namespace"),
|
|
242
|
+
)
|
|
243
|
+
|
|
244
|
+
#: A free-function definition/declaration line. Deliberately conservative: a
|
|
245
|
+
#: return type (one or more type tokens, optional ``*``/``&``) followed by a name
|
|
246
|
+
#: and a parameter list. Excludes control-flow keywords so ``if (...)`` /
|
|
247
|
+
#: ``while (...)`` / ``for (...)`` / ``switch (...)`` never read as functions.
|
|
248
|
+
_CPP_FUNCTION_RE = re.compile(
|
|
249
|
+
r'^\s*(?:[\w:]+[\w:<>,\s\*&]*?\s+[\*&]?)(\w+)\s*\([^;{]*\)\s*(?:const\s*)?[{;]'
|
|
250
|
+
)
|
|
251
|
+
_CPP_CONTROL_KEYWORDS = frozenset({
|
|
252
|
+
"if", "for", "while", "switch", "return", "else", "do", "catch", "sizeof",
|
|
253
|
+
})
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
def _symbols_cpp(content: str, rel_path: str) -> "list[Symbol]":
|
|
257
|
+
symbols: list = []
|
|
258
|
+
for i, line in enumerate(content.splitlines(), 1):
|
|
259
|
+
matched_type = False
|
|
260
|
+
for pattern, kind in _CPP_TYPE_KEYWORD_KINDS:
|
|
261
|
+
m = pattern.match(line)
|
|
262
|
+
if m:
|
|
263
|
+
symbols.append(_symbol(m.group(1), kind, rel_path, i))
|
|
264
|
+
matched_type = True
|
|
265
|
+
break
|
|
266
|
+
if matched_type:
|
|
267
|
+
continue
|
|
268
|
+
m = _CPP_FUNCTION_RE.match(line)
|
|
269
|
+
if m and m.group(1) not in _CPP_CONTROL_KEYWORDS:
|
|
270
|
+
symbols.append(_symbol(m.group(1), "function", rel_path, i))
|
|
271
|
+
return symbols
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
#: C++ ``#include`` directive: quote-form (``"…"`` — local/first-party) vs
|
|
275
|
+
#: angle-form (``<…>`` — system/STL). Mirrors ``builder._CPP_INCLUDE_RE`` so the
|
|
276
|
+
#: scan-path parser and the DAG builder agree on a C++ project's include graph.
|
|
277
|
+
_CPP_INCLUDE_RE = re.compile(r'^\s*#\s*include\s*(?:"([^"]+)"|<([^>]+)>)')
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
def _imports_cpp(content, project_root, src_dir, file_path):
|
|
281
|
+
"""Classify C++ includes: quote-form ``internal`` vs angle-form ``external``.
|
|
282
|
+
|
|
283
|
+
The regex sibling of the DAG builder's include extraction (there is no
|
|
284
|
+
tree-sitter-cpp binding). Quote-form ``#include "demo/core.h"`` is a
|
|
285
|
+
first-party include (kept as ``internal`` with the raw line, bucketed by the
|
|
286
|
+
include path's first segment); angle-form ``#include <vector>`` is system/STL
|
|
287
|
+
(``external``, keyed by the bare header token). Returns the
|
|
288
|
+
``(internal, external)`` shape every ``extract_imports`` strategy yields.
|
|
289
|
+
"""
|
|
290
|
+
internal: dict[str, list[str]] = {}
|
|
291
|
+
external: set[str] = set()
|
|
292
|
+
|
|
293
|
+
for line in content.splitlines():
|
|
294
|
+
m = _CPP_INCLUDE_RE.match(line)
|
|
295
|
+
if not m:
|
|
296
|
+
continue
|
|
297
|
+
quote_target, angle_target = m.group(1), m.group(2)
|
|
298
|
+
if quote_target:
|
|
299
|
+
# Bucket by the first path segment (``demo`` for ``demo/core.h``); the
|
|
300
|
+
# DAG builder owns the precise path→file resolution for edges.
|
|
301
|
+
bucket = quote_target.split("/", 1)[0] or "root"
|
|
302
|
+
internal.setdefault(bucket, []).append(line.strip())
|
|
303
|
+
elif angle_target:
|
|
304
|
+
# ``<sys/types.h>`` keys on the bare top token; bare ``<vector>`` on
|
|
305
|
+
# itself. Either way it is a system/STL external.
|
|
306
|
+
external.add(angle_target)
|
|
307
|
+
|
|
308
|
+
return internal, external
|
|
309
|
+
|
|
310
|
+
|
|
234
311
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
235
312
|
# Import extraction (verbatim bodies of the old _extract_imports ladder).
|
|
236
313
|
# stdlib subtraction is applied by RegexLanguageStrategy.imports().
|
|
@@ -499,6 +576,20 @@ _GO = RegexLanguageStrategy(
|
|
|
499
576
|
guess_test_target=None,
|
|
500
577
|
)
|
|
501
578
|
|
|
579
|
+
_CPP = RegexLanguageStrategy(
|
|
580
|
+
name="cpp",
|
|
581
|
+
extensions=frozenset({".c", ".cc", ".cpp", ".cxx", ".h", ".hpp", ".hh"}),
|
|
582
|
+
# stdlib stays EMPTY: ``_imports_cpp`` already classifies angle-form includes
|
|
583
|
+
# (the STL/system headers) into ``external`` itself; there is no name-set to
|
|
584
|
+
# subtract (C++ system headers are arbitrary tokens, not a fixed list).
|
|
585
|
+
entry_points=("main.cc", "main.cpp", "main.cxx"),
|
|
586
|
+
extract_symbols=_symbols_cpp,
|
|
587
|
+
extract_imports=_imports_cpp,
|
|
588
|
+
detect_code_patterns=None,
|
|
589
|
+
file_to_module=_file_to_module_first_part,
|
|
590
|
+
guess_test_target=None,
|
|
591
|
+
)
|
|
592
|
+
|
|
502
593
|
#: The generic fallback for an unknown language — best-effort no-op analysis,
|
|
503
594
|
#: matching the implicit ``else`` of every old ladder (empty symbols/imports,
|
|
504
595
|
#: no patterns, first-path-part module name, no test-target, no extensions).
|
|
@@ -513,6 +604,7 @@ _STRATEGIES: dict[str, RegexLanguageStrategy] = {
|
|
|
513
604
|
"javascript": _JAVASCRIPT,
|
|
514
605
|
"java": _JAVA,
|
|
515
606
|
"go": _GO,
|
|
607
|
+
"cpp": _CPP,
|
|
516
608
|
}
|
|
517
609
|
|
|
518
610
|
|
|
@@ -623,6 +715,82 @@ def _ceg_targets_java(
|
|
|
623
715
|
return targets
|
|
624
716
|
|
|
625
717
|
|
|
718
|
+
#: C/C++ include-root directory names probed when a quote-form include is not
|
|
719
|
+
#: relative to the including file (mirrors ``builder._CPP_INCLUDE_ROOTS``).
|
|
720
|
+
_CPP_INCLUDE_ROOTS = ("include", "src", "inc")
|
|
721
|
+
_CPP_INCLUDE_LINE_RE = re.compile(r'#\s*include\s*"([^"]+)"')
|
|
722
|
+
|
|
723
|
+
|
|
724
|
+
def _ceg_targets_cpp(
|
|
725
|
+
internal: dict, project_root: Path, file_path: Path
|
|
726
|
+
) -> "list[CegImportTarget]":
|
|
727
|
+
"""C++ quote-form includes → PATH-resolved ``file:`` CEG nodes.
|
|
728
|
+
|
|
729
|
+
Modeled on ``_ceg_targets_ts_js`` (path-resolved ``file:`` nodes), NOT the
|
|
730
|
+
Java module-node resolver — C++ resolution is PATH-based. A quote-form
|
|
731
|
+
include already carries its extension, so there is no suffix synthesis: the
|
|
732
|
+
path is resolved relative to the including file first, then under the
|
|
733
|
+
conventional include roots, and emitted as a ``file:`` node keyed by the
|
|
734
|
+
in-tree relative path. Angle-form includes never reach ``internal`` (they are
|
|
735
|
+
classified ``external`` by ``_imports_cpp``), so only first-party headers
|
|
736
|
+
become nodes.
|
|
737
|
+
"""
|
|
738
|
+
targets: list[CegImportTarget] = []
|
|
739
|
+
seen: set[str] = set()
|
|
740
|
+
for include_lines in internal.values():
|
|
741
|
+
for line in include_lines:
|
|
742
|
+
match = _CPP_INCLUDE_LINE_RE.search(line)
|
|
743
|
+
if not match:
|
|
744
|
+
continue
|
|
745
|
+
spec = match.group(1)
|
|
746
|
+
resolved = _resolve_cpp_include_path(spec, project_root, file_path)
|
|
747
|
+
if resolved is None or resolved in seen:
|
|
748
|
+
continue
|
|
749
|
+
seen.add(resolved)
|
|
750
|
+
targets.append(
|
|
751
|
+
CegImportTarget(
|
|
752
|
+
target_id=f"file:{resolved}",
|
|
753
|
+
node_type="file",
|
|
754
|
+
node_kwargs={"path": resolved},
|
|
755
|
+
evidence_method="cpp_include",
|
|
756
|
+
confidence=0.95,
|
|
757
|
+
)
|
|
758
|
+
)
|
|
759
|
+
return targets
|
|
760
|
+
|
|
761
|
+
|
|
762
|
+
def _resolve_cpp_include_path(
|
|
763
|
+
spec: str, project_root: Path, file_path: Path
|
|
764
|
+
) -> str | None:
|
|
765
|
+
"""Resolve a quote-form include path to an in-tree posix path, or ``None``.
|
|
766
|
+
|
|
767
|
+
Tries (1) relative to the including file's directory, then (2) each
|
|
768
|
+
conventional include root walked up from the file. Returns the
|
|
769
|
+
project-relative posix path of the first candidate that exists on disk and
|
|
770
|
+
lies inside the project tree (so an out-of-tree ``../`` escape yields no
|
|
771
|
+
node → no false edge).
|
|
772
|
+
"""
|
|
773
|
+
rel = Path(spec)
|
|
774
|
+
candidates = [(file_path.parent / rel)]
|
|
775
|
+
seen_roots: set[Path] = set()
|
|
776
|
+
for ancestor in [file_path.parent, *file_path.parents]:
|
|
777
|
+
for root_name in _CPP_INCLUDE_ROOTS:
|
|
778
|
+
root = (ancestor / root_name).resolve()
|
|
779
|
+
if root in seen_roots:
|
|
780
|
+
continue
|
|
781
|
+
seen_roots.add(root)
|
|
782
|
+
candidates.append(ancestor / root_name / rel)
|
|
783
|
+
for candidate in candidates:
|
|
784
|
+
resolved = candidate.resolve()
|
|
785
|
+
if not resolved.is_file():
|
|
786
|
+
continue
|
|
787
|
+
try:
|
|
788
|
+
return resolved.relative_to(project_root.resolve()).as_posix()
|
|
789
|
+
except ValueError:
|
|
790
|
+
continue
|
|
791
|
+
return None
|
|
792
|
+
|
|
793
|
+
|
|
626
794
|
#: Per-language scanner CEG-import resolvers (registry DATA). Languages without
|
|
627
795
|
#: an entry contribute NO import edges, byte-identical to the former scanner
|
|
628
796
|
#: block that only handled python and typescript/javascript.
|
|
@@ -633,6 +801,7 @@ _CEG_IMPORT_RESOLVERS: dict[
|
|
|
633
801
|
"javascript": _ceg_targets_ts_js,
|
|
634
802
|
"python": _ceg_targets_python,
|
|
635
803
|
"java": _ceg_targets_java,
|
|
804
|
+
"cpp": _ceg_targets_cpp,
|
|
636
805
|
}
|
|
637
806
|
|
|
638
807
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|