codd-dev 2.2.0__tar.gz → 2.4.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.2.0 → codd_dev-2.4.0}/PKG-INFO +1 -1
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/builder.py +36 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/extractor.py +145 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/stack_map.yaml +18 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/pyproject.toml +1 -1
- {codd_dev-2.2.0 → codd_dev-2.4.0}/.gitignore +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/LICENSE +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/README.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/__main__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/_git_helper.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/ask_user_question_adapter.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/assembler.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/bridge.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/brownfield/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/brownfield/pipeline.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/cli.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/clustering.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/coherence_adapters.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/coherence_engine.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/config.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/contracts.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/coverage_auditor.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/coverage_metrics.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/depends_on_consistency.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/deployment_completeness.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/edge_validity.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/environment_coverage.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/implementation_coverage.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/node_completeness.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/task_completion.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/transitive_closure.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/checks/user_journey_coherence.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/coverage_axes.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/cli.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/cpp_embedded.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/csharp.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/elixir.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/generic.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/iot.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/java.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/kotlin.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/mobile.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/ruby.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/rust.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/scala.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/swift.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/test_frameworks.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/defaults/web.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/extractor.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/dag/runner.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/defaults.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deploy_targets/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deploy_targets/app_service.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deploy_targets/base.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deploy_targets/docker_compose.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployer.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/checks/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/defaults/deploy_targets.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/defaults/runtime_capability_inference.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/defaults/schema_providers.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/defaults/verification_templates.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/ai_command.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/llm_consideration.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/schema/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/schema/prisma.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/target/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/target/docker_compose.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/assertion_handlers.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/cdp_browser.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/cdp_engines.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/cdp_launchers.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/cdp_wire.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/curl.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/form_strategies.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/means_catalog.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/playwright.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/design_md.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/diff/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/diff/apply.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/diff/engine.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/diff/persistence.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/diff/templates/diff_prompt.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/drift.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/e2e_extractor.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/e2e_generator.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/e2e_runner.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/apply.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/engine.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/finding.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/formatters/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/formatters/base.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/formatters/interactive.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/formatters/json_fmt.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/formatters/md.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/lexicon_loader.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/persistence.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/elicit/templates/elicit_prompt_L0.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/env_refs.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/extract_ai.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/extractor.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/fixer.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/fixup_drift.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/fixup_drift_strategies/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/fixup_drift_strategies/design_token_drift.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/fixup_drift_strategies/lexicon_violation.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/fixup_drift_strategies/url_drift.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/generator.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/graph.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/hitl_session.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/hooks/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/hooks/pre-commit +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/hooks/recipes/claude_settings_example.json +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/hooks/recipes/codex_hook.sh +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/hooks/recipes/git_post_commit.sh +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/hooks/recipes/git_pre_commit.sh +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/implementer/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/implementer/chunked_runner.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/implementer/typecheck_loop.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/implementer.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/inheritance.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/init/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/init/lexicon_suggest.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/init/stack_detector.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/knowledge_fetcher.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon_cli/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon_cli/formatters/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon_cli/formatters/html.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon_cli/formatters/json_fmt.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon_cli/formatters/md.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon_cli/inspector.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon_cli/manager.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon_cli/reporter.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/lexicon_cli/threshold.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/approval.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/best_practice_augmenter.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/criteria_expander.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/design_doc_extractor.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/impl_step_deriver.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/means_catalog_loader.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/parser.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/plan_deriver.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/prompt_builder.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/strategy_validator.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/templates/best_practice_augment_meta.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/templates/criteria_expand_meta.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/templates/design_doc_extract_meta.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/templates/impl_step_derive_meta.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/templates/implementation_step_catalog.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/templates/meta_instruction.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/templates/plan_derive_meta.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/llm/templates/verification_means_catalog.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/mcp_server.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/measure.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/parsing.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/planner.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/policy.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/preflight/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/preflight/defaults/cli.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/preflight/defaults/iot.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/preflight/defaults/mobile.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/preflight/defaults/web.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/propagate.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/propagator.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/registry.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/approval_repair.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/engine.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/git_patcher.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/history.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/llm_repair_engine.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/loop.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/primary_picker.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/proof_breaks.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/repair_result.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/repairability_classifier.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/schema.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/templates/analyze_meta.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/templates/propose_meta.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/templates/repair_strategy_meta.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/templates/repairability_meta.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair/verify_runner.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/repair_slice.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/require.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/require_plugins.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/require_propagate.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/required_artifacts/defaults/cli.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/required_artifacts/defaults/iot.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/required_artifacts/defaults/mobile.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/required_artifacts/defaults/web.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/required_artifacts_deriver.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/requirement_completeness/defaults/cli.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/requirement_completeness/defaults/iot.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/requirement_completeness/defaults/mobile.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/requirement_completeness/defaults/web.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/requirement_completeness_auditor.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/restore.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/routes_extractor.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/scanner.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/schema_refs.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/screen_flow_validator.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/screen_transition_extractor.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/screen_transitions/defaults.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/synth.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/codd.yaml.tmpl +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/conventions.yaml.tmpl +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/data_dependencies.yaml.tmpl +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/doc_links.yaml.tmpl +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/extract_ai_prompt_baseline.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/extracted/api-contract.md.j2 +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/extracted/architecture-overview.md.j2 +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/extracted/module-detail.md.j2 +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/extracted/schema-design.md.j2 +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/extracted/system-context.md.j2 +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/gitignore.tmpl +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/lexicon_questions.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/lexicon_schema.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/templates/overrides.yaml.tmpl +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/traceability.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/validator.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/watch/__init__.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/watch/events.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/watch/propagation_log.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/watch/propagation_pipeline.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/watch/test_runner.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/watch/watcher.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd/wiring.py +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ai_governance_eu_act/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ai_governance_eu_act/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ai_governance_eu_act/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ai_governance_eu_act/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ai_governance_eu_act/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ai_governance_eu_act/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/api_rest_openapi/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/api_rest_openapi/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/api_rest_openapi/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/api_rest_openapi/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/api_rest_openapi/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/api_rest_openapi/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/babok/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/babok/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/babok/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/babok/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/babok/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_event_cloudevents/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_event_cloudevents/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_event_cloudevents/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_event_cloudevents/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_event_cloudevents/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_event_cloudevents/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_graphql/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_graphql/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_graphql/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_graphql/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_graphql/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_graphql/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_grpc_proto/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_grpc_proto/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_grpc_proto/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_grpc_proto/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_grpc_proto/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/backend_grpc_proto/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_hipaa/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_hipaa/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_hipaa/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_hipaa/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_hipaa/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_hipaa/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_iso27001/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_iso27001/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_iso27001/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_iso27001/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_iso27001/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_iso27001/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_pci_dss_4/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_pci_dss_4/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_pci_dss_4/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_pci_dss_4/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_pci_dss_4/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/compliance_pci_dss_4/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_eventsourcing_es_cqrs/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_governance_appi_gdpr/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_governance_appi_gdpr/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_governance_appi_gdpr/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_governance_appi_gdpr/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_governance_appi_gdpr/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_governance_appi_gdpr/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_nosql_jsonschema/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_nosql_jsonschema/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_nosql_jsonschema/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_nosql_jsonschema/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_nosql_jsonschema/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_nosql_jsonschema/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_relational_iso_sql/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_relational_iso_sql/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_relational_iso_sql/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_relational_iso_sql/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_relational_iso_sql/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/data_relational_iso_sql/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_a11y_native/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_a11y_native/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_a11y_native/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_a11y_native/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_a11y_native/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_a11y_native/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_android_material3/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_android_material3/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_android_material3/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_android_material3/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_android_material3/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_android_material3/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_ios_hig/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_ios_hig/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_ios_hig/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_ios_hig/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_ios_hig/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/mobile_ios_hig/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_cicd_pipeline/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_cicd_pipeline/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_cicd_pipeline/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_cicd_pipeline/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_cicd_pipeline/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_cicd_pipeline/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_iac_terraform/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_iac_terraform/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_iac_terraform/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_iac_terraform/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_iac_terraform/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_iac_terraform/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_kubernetes/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_kubernetes/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_kubernetes/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_kubernetes/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_kubernetes/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_kubernetes/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_observability_otel/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_observability_otel/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_observability_otel/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_observability_otel/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_observability_otel/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/ops_observability_otel/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_iso25010/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_iso25010/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_iso25010/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_iso25010/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_iso25010/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_iso25010/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_test_iso29119/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_test_iso29119/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_test_iso29119/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_test_iso29119/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_test_iso29119/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/process_test_iso29119/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_a11y_wcag22_aa/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_authn_webauthn/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_authn_webauthn/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_authn_webauthn/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_authn_webauthn/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_authn_webauthn/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_authn_webauthn/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_browser_compat/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_browser_compat/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_browser_compat/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_browser_compat/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_browser_compat/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_browser_compat/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_forms_html5/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_forms_html5/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_forms_html5/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_forms_html5/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_forms_html5/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_forms_html5/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_performance_core_web_vitals/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_performance_core_web_vitals/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_performance_core_web_vitals/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_performance_core_web_vitals/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_performance_core_web_vitals/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_performance_core_web_vitals/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_pwa_manifest/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_pwa_manifest/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_pwa_manifest/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_pwa_manifest/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_pwa_manifest/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_pwa_manifest/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_responsive/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_responsive/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_responsive/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_responsive/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_responsive/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_responsive/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_security_owasp/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_security_owasp/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_security_owasp/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_security_owasp/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_security_owasp/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_security_owasp/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_seo_schemaorg/coverage_matrix.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_seo_schemaorg/elicit_extend.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_seo_schemaorg/lexicon.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_seo_schemaorg/manifest.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_seo_schemaorg/recommended_kinds.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/codd_plugins/lexicons/web_seo_schemaorg/severity_rules.yaml +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/docs/cookbook/cdp_browser/README.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.0}/docs/requirements/README.md +0 -0
- {codd_dev-2.2.0 → codd_dev-2.4.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.4.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
|
|
@@ -610,6 +610,42 @@ def _add_deployment_graph(
|
|
|
610
610
|
)
|
|
611
611
|
verification_tests = extract_verification_tests(project_root, project_config, design_docs)
|
|
612
612
|
|
|
613
|
+
from codd.deployment.extractor import (
|
|
614
|
+
auto_runtime_states_for_impl,
|
|
615
|
+
discover_deployment_impl_candidates,
|
|
616
|
+
)
|
|
617
|
+
|
|
618
|
+
capability_patterns = _capability_patterns(project_config)
|
|
619
|
+
auto_impl_paths: list[Path] = []
|
|
620
|
+
for impl_path in discover_deployment_impl_candidates(project_root, deployment_docs):
|
|
621
|
+
rel_id = impl_path.relative_to(project_root).as_posix()
|
|
622
|
+
if rel_id in dag.nodes:
|
|
623
|
+
continue
|
|
624
|
+
_add_node_once(
|
|
625
|
+
dag,
|
|
626
|
+
Node(
|
|
627
|
+
id=rel_id,
|
|
628
|
+
kind="impl_file",
|
|
629
|
+
path=rel_id,
|
|
630
|
+
attributes={
|
|
631
|
+
"language": _language_for_path(impl_path),
|
|
632
|
+
"imports": [],
|
|
633
|
+
"runtime_evidence": _runtime_evidence_for_file(impl_path, rel_id, capability_patterns),
|
|
634
|
+
"auto_registered_for_deployment": True,
|
|
635
|
+
},
|
|
636
|
+
),
|
|
637
|
+
)
|
|
638
|
+
impl_nodes[rel_id] = impl_path.resolve()
|
|
639
|
+
auto_impl_paths.append(impl_path)
|
|
640
|
+
|
|
641
|
+
if auto_impl_paths:
|
|
642
|
+
existing_state_ids = {state.identifier for state in runtime_states}
|
|
643
|
+
for runtime_state in auto_runtime_states_for_impl(auto_impl_paths, project_root):
|
|
644
|
+
if runtime_state.identifier in existing_state_ids:
|
|
645
|
+
continue
|
|
646
|
+
runtime_states.append(runtime_state)
|
|
647
|
+
existing_state_ids.add(runtime_state.identifier)
|
|
648
|
+
|
|
613
649
|
for deployment_doc in deployment_docs:
|
|
614
650
|
_add_node_once(
|
|
615
651
|
dag,
|
|
@@ -31,6 +31,17 @@ SMOKE_TEST_PATTERNS = ("tests/smoke/*.test.ts", "tests/smoke/*.spec.ts", "tests/
|
|
|
31
31
|
E2E_TEST_PATTERNS = ("tests/e2e/*.spec.ts", "tests/e2e/*.test.ts")
|
|
32
32
|
RUNTIME_CAPABILITY_INFERENCE_DEFAULTS = Path(__file__).parent / "defaults" / "runtime_capability_inference.yaml"
|
|
33
33
|
|
|
34
|
+
DEPLOYMENT_SECTION_IMPL_PATTERNS: dict[str, tuple[str, ...]] = {
|
|
35
|
+
"migrate": ("prisma/migrations/**/*", "schema.prisma", "**/migrations/**/*.sql"),
|
|
36
|
+
"seed": ("prisma/seed.ts", "prisma/seed.js", "scripts/seed.ts", "scripts/seed.js"),
|
|
37
|
+
"build": ("Dockerfile", "Containerfile", "package.json"),
|
|
38
|
+
"start": (
|
|
39
|
+
"main.ts", "main.js", "server.ts", "server.js",
|
|
40
|
+
"app.ts", "app.js", "index.ts", "index.js",
|
|
41
|
+
"src/main.ts", "src/main.js", "src/server.ts", "src/server.js",
|
|
42
|
+
),
|
|
43
|
+
}
|
|
44
|
+
|
|
34
45
|
|
|
35
46
|
def extract_deployment_nodes(project_root: Path, codd_config: dict[str, Any] | None = None) -> dict[str, list]:
|
|
36
47
|
"""Extract deployment document, runtime state, and verification test nodes."""
|
|
@@ -181,6 +192,129 @@ def extract_verification_tests(
|
|
|
181
192
|
return [tests[key] for key in sorted(tests)]
|
|
182
193
|
|
|
183
194
|
|
|
195
|
+
_DEPLOYMENT_BINDINGS_CACHE: list[dict[str, Any]] | None = None
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
def load_deployment_bindings() -> list[dict[str, Any]]:
|
|
199
|
+
"""Load impl_pattern → runtime_state bindings from codd_plugins/stack_map.yaml.
|
|
200
|
+
|
|
201
|
+
Returns a list of dicts with normalized keys (compiled `impl_re`,
|
|
202
|
+
`runtime_state_kind`, `runtime_state_target`). The mapping itself lives
|
|
203
|
+
in the plug-in YAML so CoDD core stays free of stack-specific filenames.
|
|
204
|
+
"""
|
|
205
|
+
global _DEPLOYMENT_BINDINGS_CACHE
|
|
206
|
+
if _DEPLOYMENT_BINDINGS_CACHE is not None:
|
|
207
|
+
return _DEPLOYMENT_BINDINGS_CACHE
|
|
208
|
+
|
|
209
|
+
candidates = [
|
|
210
|
+
Path(__file__).resolve().parents[2] / "codd_plugins" / "stack_map.yaml",
|
|
211
|
+
Path.cwd() / "codd_plugins" / "stack_map.yaml",
|
|
212
|
+
]
|
|
213
|
+
payload: dict[str, Any] | None = None
|
|
214
|
+
for candidate in candidates:
|
|
215
|
+
if candidate.is_file():
|
|
216
|
+
payload = yaml.safe_load(candidate.read_text(encoding="utf-8")) or {}
|
|
217
|
+
break
|
|
218
|
+
|
|
219
|
+
bindings: list[dict[str, Any]] = []
|
|
220
|
+
raw_bindings = (payload or {}).get("deployment_bindings", [])
|
|
221
|
+
if isinstance(raw_bindings, list):
|
|
222
|
+
for entry in raw_bindings:
|
|
223
|
+
if not isinstance(entry, dict):
|
|
224
|
+
continue
|
|
225
|
+
pattern = str(entry.get("impl_pattern", "")).strip()
|
|
226
|
+
kind_str = str(entry.get("runtime_state_kind", "")).strip()
|
|
227
|
+
target = str(entry.get("runtime_state_target", "")).strip()
|
|
228
|
+
if not pattern or not kind_str or not target:
|
|
229
|
+
continue
|
|
230
|
+
try:
|
|
231
|
+
kind = RuntimeStateKind(kind_str)
|
|
232
|
+
except ValueError:
|
|
233
|
+
continue
|
|
234
|
+
try:
|
|
235
|
+
impl_re = re.compile(pattern)
|
|
236
|
+
except re.error:
|
|
237
|
+
continue
|
|
238
|
+
bindings.append({
|
|
239
|
+
"impl_re": impl_re,
|
|
240
|
+
"runtime_state_kind": kind,
|
|
241
|
+
"runtime_state_target": target,
|
|
242
|
+
})
|
|
243
|
+
_DEPLOYMENT_BINDINGS_CACHE = bindings
|
|
244
|
+
return bindings
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def reset_deployment_bindings_cache() -> None:
|
|
248
|
+
"""Clear the cached bindings (used by tests)."""
|
|
249
|
+
global _DEPLOYMENT_BINDINGS_CACHE
|
|
250
|
+
_DEPLOYMENT_BINDINGS_CACHE = None
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def auto_runtime_states_for_impl(impl_paths: list[Path], project_root: Path) -> list[RuntimeStateNode]:
|
|
254
|
+
"""Generate runtime_state nodes for auto-discovered impl artifacts.
|
|
255
|
+
|
|
256
|
+
For each impl path, the first matching deployment binding produces one
|
|
257
|
+
RuntimeStateNode keyed `runtime:<kind>:<target>`. Duplicates (same
|
|
258
|
+
identifier) are coalesced.
|
|
259
|
+
"""
|
|
260
|
+
bindings = load_deployment_bindings()
|
|
261
|
+
if not bindings:
|
|
262
|
+
return []
|
|
263
|
+
seen: dict[str, RuntimeStateNode] = {}
|
|
264
|
+
root = Path(project_root)
|
|
265
|
+
for path in impl_paths:
|
|
266
|
+
rel = path.relative_to(root).as_posix() if path.is_absolute() else str(path)
|
|
267
|
+
for binding in bindings:
|
|
268
|
+
if not binding["impl_re"].search(rel):
|
|
269
|
+
continue
|
|
270
|
+
target = binding["runtime_state_target"]
|
|
271
|
+
kind = binding["runtime_state_kind"]
|
|
272
|
+
identifier = f"runtime:{kind.value}:{target}"
|
|
273
|
+
if identifier in seen:
|
|
274
|
+
break
|
|
275
|
+
seen[identifier] = RuntimeStateNode(
|
|
276
|
+
identifier=identifier,
|
|
277
|
+
kind=kind,
|
|
278
|
+
target=target,
|
|
279
|
+
expected_value=None,
|
|
280
|
+
actual_check_command=None,
|
|
281
|
+
capabilities_provided=[],
|
|
282
|
+
)
|
|
283
|
+
break
|
|
284
|
+
return list(seen.values())
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
def discover_deployment_impl_candidates(
|
|
288
|
+
project_root: Path,
|
|
289
|
+
deployment_docs: list[DeploymentDocNode],
|
|
290
|
+
) -> list[Path]:
|
|
291
|
+
"""Return existing standard impl artifacts referenced by deployment doc sections.
|
|
292
|
+
|
|
293
|
+
Walks each deployment document's sections and matches keywords against
|
|
294
|
+
DEPLOYMENT_SECTION_IMPL_PATTERNS, then keeps the patterns that resolve to a
|
|
295
|
+
real file under ``project_root``. The mapping itself stays inside the
|
|
296
|
+
deployment plug-in so DAG core code can remain free of stack-specific
|
|
297
|
+
filenames; this helper just runs an existence check.
|
|
298
|
+
"""
|
|
299
|
+
|
|
300
|
+
root = Path(project_root)
|
|
301
|
+
seen: dict[str, Path] = {}
|
|
302
|
+
for doc in deployment_docs:
|
|
303
|
+
for section in doc.sections or []:
|
|
304
|
+
normalized = str(section).lower()
|
|
305
|
+
for keyword, patterns in DEPLOYMENT_SECTION_IMPL_PATTERNS.items():
|
|
306
|
+
if keyword not in normalized:
|
|
307
|
+
continue
|
|
308
|
+
for pattern in patterns:
|
|
309
|
+
for path in root.glob(pattern):
|
|
310
|
+
if not path.is_file():
|
|
311
|
+
continue
|
|
312
|
+
rel = path.relative_to(root).as_posix()
|
|
313
|
+
if rel not in seen:
|
|
314
|
+
seen[rel] = path
|
|
315
|
+
return list(seen.values())
|
|
316
|
+
|
|
317
|
+
|
|
184
318
|
def infer_deployment_edges(
|
|
185
319
|
project_root: Path,
|
|
186
320
|
deployment_docs: list[DeploymentDocNode],
|
|
@@ -527,6 +661,10 @@ def _runtime_kind_for_impl(impl_id: str) -> RuntimeStateKind | None:
|
|
|
527
661
|
return RuntimeStateKind.DB_SEED
|
|
528
662
|
if name in {"main.ts", "main.js", "server.ts", "server.js", "app.ts", "app.js", "index.ts", "index.js"}:
|
|
529
663
|
return RuntimeStateKind.SERVER_RUNNING
|
|
664
|
+
|
|
665
|
+
for binding in load_deployment_bindings():
|
|
666
|
+
if binding["impl_re"].search(impl_id):
|
|
667
|
+
return binding["runtime_state_kind"]
|
|
530
668
|
return None
|
|
531
669
|
|
|
532
670
|
|
|
@@ -544,6 +682,13 @@ def _verification_matches_runtime(
|
|
|
544
682
|
return _mentions_any(target, ("schema", "migration", "migrate", "database", "db"))
|
|
545
683
|
if runtime_state.kind is RuntimeStateKind.SERVER_RUNNING:
|
|
546
684
|
return _mentions_any(target, ("health", "server", "start", "running", "home"))
|
|
685
|
+
if runtime_state.kind is RuntimeStateKind.FILE_PRESENT:
|
|
686
|
+
return _mentions_any(
|
|
687
|
+
target,
|
|
688
|
+
("build", "image", "container", "deploy", "compose", "smoke", "artifact"),
|
|
689
|
+
)
|
|
690
|
+
if runtime_state.kind is RuntimeStateKind.ENV_VAR_SET:
|
|
691
|
+
return _mentions_any(target, ("env", "config", "secret"))
|
|
547
692
|
return False
|
|
548
693
|
|
|
549
694
|
|
|
@@ -76,3 +76,21 @@ stack_map:
|
|
|
76
76
|
suggested_lexicons:
|
|
77
77
|
- babok
|
|
78
78
|
|
|
79
|
+
# Deployment artifact bindings — used by the deployment plug-in to wire
|
|
80
|
+
# auto-discovered impl_file nodes (cmd_448) to runtime_state nodes
|
|
81
|
+
# (cmd_450). Keys: impl_pattern (regex against impl_id), runtime_state_kind
|
|
82
|
+
# (one of RuntimeStateKind values), runtime_state_target (string label used
|
|
83
|
+
# to form `runtime:<kind>:<target>` and to match verification tests).
|
|
84
|
+
# Adding entries does not require core code changes; CoDD core loads this
|
|
85
|
+
# block as data.
|
|
86
|
+
deployment_bindings:
|
|
87
|
+
- impl_pattern: "(^|/)Dockerfile$|(^|/)Containerfile$"
|
|
88
|
+
runtime_state_kind: file_present
|
|
89
|
+
runtime_state_target: build_artifact
|
|
90
|
+
- impl_pattern: "(^|/)docker-compose(\\.production|\\.staging)?\\.ya?ml$|(^|/)compose\\.ya?ml$"
|
|
91
|
+
runtime_state_kind: file_present
|
|
92
|
+
runtime_state_target: container_compose
|
|
93
|
+
- impl_pattern: "(^|/)package\\.json$"
|
|
94
|
+
runtime_state_kind: file_present
|
|
95
|
+
runtime_state_target: build_artifact
|
|
96
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.2.0 → codd_dev-2.4.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
|
{codd_dev-2.2.0 → codd_dev-2.4.0}/codd/deployment/providers/verification/assertion_handlers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|