redeploy 0.2.72__tar.gz → 0.2.74__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.
- {redeploy-0.2.72/redeploy.egg-info → redeploy-0.2.74}/PKG-INFO +40 -7
- redeploy-0.2.72/PKG-INFO → redeploy-0.2.74/README.md +38 -35
- {redeploy-0.2.72 → redeploy-0.2.74}/pyproject.toml +3 -1
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/__init__.py +1 -1
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/plan_apply.py +2 -2
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/heal/runner.py +4 -0
- redeploy-0.2.72/README.md → redeploy-0.2.74/redeploy.egg-info/PKG-INFO +68 -6
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_hardware_rules.py +3 -1
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/analyze/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/analyze/checkers/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/analyze/preflight_schema.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/analyze/spec_analyzer.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/exceptions.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/executor.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/handlers.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/progress.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/rollback.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/state.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/state_apply.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/utils/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/apply/utils/run_container_build.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/audit.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/extractor.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/generators/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/generators/docker_compose.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/generators/migration.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/sources/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/sources/compose.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/sources/hardware.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/sources/infra.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/blueprint/sources/migration.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/audit.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/blueprint.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/bump_fix.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/detect.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/device_map.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/device_map_renderers.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/devices.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/diagnose.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/diff.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/exec_.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/export.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/gh_workflow.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/hardware.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/import_.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/init.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/inspect.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/lint.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/mcp_cmd.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/patterns.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/plugin.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/probe.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/prompt_cmd.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/push.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/state.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/status.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/target.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/version/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/version/commands.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/version/helpers.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/version/monorepo.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/version/release.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/version/scanner.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/version/utils/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/version/utils/changelog_config.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/version/utils/git_config.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/commands/workflow.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/core.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/display.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli/query.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/cli.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/config_apply/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/config_apply/applier.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/config_apply/handlers/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/config_apply/handlers/display.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/config_apply/loader.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/data_sync.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/detect/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/detect/builtin/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/detect/detector.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/detect/hardware.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/detect/hardware_rules.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/detect/probes.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/detect/remote.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/detect/templates.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/detect/workflow.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/discovery.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl/loader.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl/parser.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl_python/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl_python/context.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl_python/decorators.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl_python/docker_steps.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl_python/exceptions.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl_python/runner.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/dsl_python/steps.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/fleet.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/config_txt.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/data/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/data/hyperpixel.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/data/official.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/data/waveshare.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/fixes.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/kiosk/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/kiosk/autostart.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/kiosk/browsers.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/kiosk/compositors.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/kiosk/output_profiles.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/panels.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/hardware/raspi_config.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/heal/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/heal/decider.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/heal/hint_provider.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/heal/log_writer.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/heal/loop_detector.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/heal.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/iac/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/iac/base.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/iac/config_hints.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/iac/docker_compose.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/iac/parsers/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/iac/parsers/compose.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/iac/registry.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/integrations/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/integrations/op3_bridge.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/markpact/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/markpact/compiler.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/markpact/models.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/markpact/parser.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/mcp_server.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/blueprint.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/devices.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/enums.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/hardware.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/infra.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/manifest.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/persisted.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/pipeline.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/plan.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/models/spec.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/observe.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/parse.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/patterns.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/plan/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/plan/planner.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/plugins/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/plugins/builtin/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/plugins/builtin/browser_reload.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/plugins/builtin/hardware_diagnostic.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/plugins/builtin/notify.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/plugins/builtin/process_control.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/plugins/builtin/systemd_reload.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/schema.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/spec_loader.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/ssh.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/docker.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/generic.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/hardware.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/k3s.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/kiosk.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/podman.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/process.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/scm.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/steps/transfer.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_analyze.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_audit.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_cli.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_data_sync.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_discovery.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_dsl.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_examples.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_executor.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_fleet.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_git_integration.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_heal.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_heal_decider.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_hooks.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_iac.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_iac_compose_contract.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_iac_docker_compose_contract.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_manifest.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_markpact_compiler.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_markpact_parser.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_models.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_observe.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_parse.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_patterns.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_planner_edge.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_plugins.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_probes.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_public_api.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_resume.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_security_hardening.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_spec_loader.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_ssh.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_steps_registry.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_templates.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_verify.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_version.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_version_changelog.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_version_cli.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_version_manifest.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_version_sources.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/tests/test_workflow.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/verify.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/bump.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/changelog.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/commits.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/diff.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/git_integration.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/git_transaction.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/manifest.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/sources/__init__.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/sources/base.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/sources/json_.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/sources/plain.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/sources/regex.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/sources/toml_.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/sources/yaml_.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version/transaction.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy/version.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy.egg-info/SOURCES.txt +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy.egg-info/dependency_links.txt +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy.egg-info/entry_points.txt +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy.egg-info/requires.txt +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/redeploy.egg-info/top_level.txt +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/setup.cfg +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_blueprint_sources.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_blueprint_sources_compose.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_cli_gh_workflow.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_cli_query.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_example_argocd_flux_plugin.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_example_gitops_ci_plugin.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_example_helm_kustomize_plugin.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_hardware_config.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_hardware_kiosk.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_heal_decider.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_heal_loop_detector.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_iac.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_iac_config_hints.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_iac_plugin_loading.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_import_plugin_template.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_parse.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_prompt_llm.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_redeploy.py +0 -0
- {redeploy-0.2.72 → redeploy-0.2.74}/tests/test_steps_kiosk.py +0 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: redeploy
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.74
|
|
4
4
|
Summary: Infrastructure migration toolkit: detect → plan → apply
|
|
5
|
+
License: Apache-2.0
|
|
5
6
|
Requires-Python: >=3.11
|
|
6
7
|
Description-Content-Type: text/markdown
|
|
7
8
|
Requires-Dist: pydantic>=2.0
|
|
@@ -32,17 +33,17 @@ Requires-Dist: mcp>=1.0; extra == "mcp"
|
|
|
32
33
|
|
|
33
34
|
## AI Cost Tracking
|
|
34
35
|
|
|
35
|
-
     
|
|
37
|
+
  
|
|
37
38
|
|
|
38
|
-
- 🤖 **LLM usage:** $7.5000 (
|
|
39
|
-
- 👤 **Human dev:** ~$
|
|
39
|
+
- 🤖 **LLM usage:** $7.5000 (95 commits)
|
|
40
|
+
- 👤 **Human dev:** ~$3998 (40.0h @ $100/h, 30min dedup)
|
|
40
41
|
|
|
41
|
-
Generated on 2026-04-
|
|
42
|
+
Generated on 2026-04-30 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
42
43
|
|
|
43
44
|
---
|
|
44
45
|
|
|
45
|
-
    
|
|
46
47
|
|
|
47
48
|
Infrastructure migration and device deploy toolkit — VPS, Raspberry Pi kiosk, Podman Quadlet, k3s.
|
|
48
49
|
|
|
@@ -1109,6 +1110,38 @@ redeploy blueprint show blueprint.yaml --apply-config blueprint.yaml
|
|
|
1109
1110
|
redeploy blueprint show blueprint.yaml --query "hardware.drm_outputs[0].transform"
|
|
1110
1111
|
```
|
|
1111
1112
|
|
|
1113
|
+
## Dependencies
|
|
1114
|
+
|
|
1115
|
+
Core runtime dependencies:
|
|
1116
|
+
|
|
1117
|
+
| Package | Purpose |
|
|
1118
|
+
|---------|---------|
|
|
1119
|
+
| `pydantic>=2.0` | Data validation and settings |
|
|
1120
|
+
| `pyyaml>=6.0` | YAML parsing/serialization |
|
|
1121
|
+
| `markdown-it-py>=3.0` | Markdown parsing (markpact specs) |
|
|
1122
|
+
| `click>=8.0` | CLI framework |
|
|
1123
|
+
| `loguru>=0.7` | Structured logging |
|
|
1124
|
+
| `paramiko>=3.0` | SSH client |
|
|
1125
|
+
| `httpx>=0.25` | HTTP client |
|
|
1126
|
+
| `rich>=13.0` | Terminal UI |
|
|
1127
|
+
| `jmespath>=1.0` | JSON/YAML query expressions |
|
|
1128
|
+
| `goal>=2.1.0` | Goal tracking |
|
|
1129
|
+
| `costs>=0.1.20` | AI cost tracking |
|
|
1130
|
+
| `pfix>=0.1.60` | Self-healing Python |
|
|
1131
|
+
|
|
1132
|
+
Optional dependencies:
|
|
1133
|
+
|
|
1134
|
+
| Package | Purpose |
|
|
1135
|
+
|---------|---------|
|
|
1136
|
+
| `op3>=0.1.8` | OP3 support |
|
|
1137
|
+
| `mcp>=1.0` | MCP server mode |
|
|
1138
|
+
|
|
1139
|
+
### Internal Modules
|
|
1140
|
+
|
|
1141
|
+
- **`markpact`** — Markdown-native deployment spec format (markpact:config, markpact:steps)
|
|
1142
|
+
- **`goal`** — Migration goal tracking and validation
|
|
1143
|
+
- **`costs`** — AI cost tracking and reporting
|
|
1144
|
+
|
|
1112
1145
|
## License
|
|
1113
1146
|
|
|
1114
1147
|
Licensed under Apache-2.0.
|
|
@@ -1,48 +1,19 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: redeploy
|
|
3
|
-
Version: 0.2.72
|
|
4
|
-
Summary: Infrastructure migration toolkit: detect → plan → apply
|
|
5
|
-
Requires-Python: >=3.11
|
|
6
|
-
Description-Content-Type: text/markdown
|
|
7
|
-
Requires-Dist: pydantic>=2.0
|
|
8
|
-
Requires-Dist: pyyaml>=6.0
|
|
9
|
-
Requires-Dist: markdown-it-py>=3.0
|
|
10
|
-
Requires-Dist: click>=8.0
|
|
11
|
-
Requires-Dist: loguru>=0.7
|
|
12
|
-
Requires-Dist: paramiko>=3.0
|
|
13
|
-
Requires-Dist: httpx>=0.25
|
|
14
|
-
Requires-Dist: rich>=13.0
|
|
15
|
-
Requires-Dist: jmespath>=1.0
|
|
16
|
-
Requires-Dist: goal>=2.1.0
|
|
17
|
-
Requires-Dist: costs>=0.1.20
|
|
18
|
-
Requires-Dist: pfix>=0.1.60
|
|
19
|
-
Provides-Extra: dev
|
|
20
|
-
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
21
|
-
Requires-Dist: ruff>=0.4; extra == "dev"
|
|
22
|
-
Requires-Dist: goal>=2.1.0; extra == "dev"
|
|
23
|
-
Requires-Dist: costs>=0.1.20; extra == "dev"
|
|
24
|
-
Requires-Dist: pfix>=0.1.60; extra == "dev"
|
|
25
|
-
Provides-Extra: op3
|
|
26
|
-
Requires-Dist: op3>=0.1.8; extra == "op3"
|
|
27
|
-
Provides-Extra: mcp
|
|
28
|
-
Requires-Dist: mcp>=1.0; extra == "mcp"
|
|
29
|
-
|
|
30
1
|
# redeploy
|
|
31
2
|
|
|
32
3
|
|
|
33
4
|
## AI Cost Tracking
|
|
34
5
|
|
|
35
|
-
     
|
|
7
|
+
  
|
|
37
8
|
|
|
38
|
-
- 🤖 **LLM usage:** $7.5000 (
|
|
39
|
-
- 👤 **Human dev:** ~$
|
|
9
|
+
- 🤖 **LLM usage:** $7.5000 (95 commits)
|
|
10
|
+
- 👤 **Human dev:** ~$3998 (40.0h @ $100/h, 30min dedup)
|
|
40
11
|
|
|
41
|
-
Generated on 2026-04-
|
|
12
|
+
Generated on 2026-04-30 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
42
13
|
|
|
43
14
|
---
|
|
44
15
|
|
|
45
|
-
    
|
|
46
17
|
|
|
47
18
|
Infrastructure migration and device deploy toolkit — VPS, Raspberry Pi kiosk, Podman Quadlet, k3s.
|
|
48
19
|
|
|
@@ -1109,6 +1080,38 @@ redeploy blueprint show blueprint.yaml --apply-config blueprint.yaml
|
|
|
1109
1080
|
redeploy blueprint show blueprint.yaml --query "hardware.drm_outputs[0].transform"
|
|
1110
1081
|
```
|
|
1111
1082
|
|
|
1083
|
+
## Dependencies
|
|
1084
|
+
|
|
1085
|
+
Core runtime dependencies:
|
|
1086
|
+
|
|
1087
|
+
| Package | Purpose |
|
|
1088
|
+
|---------|---------|
|
|
1089
|
+
| `pydantic>=2.0` | Data validation and settings |
|
|
1090
|
+
| `pyyaml>=6.0` | YAML parsing/serialization |
|
|
1091
|
+
| `markdown-it-py>=3.0` | Markdown parsing (markpact specs) |
|
|
1092
|
+
| `click>=8.0` | CLI framework |
|
|
1093
|
+
| `loguru>=0.7` | Structured logging |
|
|
1094
|
+
| `paramiko>=3.0` | SSH client |
|
|
1095
|
+
| `httpx>=0.25` | HTTP client |
|
|
1096
|
+
| `rich>=13.0` | Terminal UI |
|
|
1097
|
+
| `jmespath>=1.0` | JSON/YAML query expressions |
|
|
1098
|
+
| `goal>=2.1.0` | Goal tracking |
|
|
1099
|
+
| `costs>=0.1.20` | AI cost tracking |
|
|
1100
|
+
| `pfix>=0.1.60` | Self-healing Python |
|
|
1101
|
+
|
|
1102
|
+
Optional dependencies:
|
|
1103
|
+
|
|
1104
|
+
| Package | Purpose |
|
|
1105
|
+
|---------|---------|
|
|
1106
|
+
| `op3>=0.1.8` | OP3 support |
|
|
1107
|
+
| `mcp>=1.0` | MCP server mode |
|
|
1108
|
+
|
|
1109
|
+
### Internal Modules
|
|
1110
|
+
|
|
1111
|
+
- **`markpact`** — Markdown-native deployment spec format (markpact:config, markpact:steps)
|
|
1112
|
+
- **`goal`** — Migration goal tracking and validation
|
|
1113
|
+
- **`costs`** — AI cost tracking and reporting
|
|
1114
|
+
|
|
1112
1115
|
## License
|
|
1113
1116
|
|
|
1114
1117
|
Licensed under Apache-2.0.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "redeploy"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.74"
|
|
8
8
|
description = "Infrastructure migration toolkit: detect → plan → apply"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
@@ -36,6 +36,8 @@ dev = ["pytest>=8.0", "ruff>=0.4",
|
|
|
36
36
|
op3 = ["op3>=0.1.8"]
|
|
37
37
|
mcp = ["mcp>=1.0"]
|
|
38
38
|
|
|
39
|
+
[project.license]
|
|
40
|
+
text = "Apache-2.0"
|
|
39
41
|
[tool.ruff]
|
|
40
42
|
line-length = 100
|
|
41
43
|
|
|
@@ -7,7 +7,7 @@ Public API (stable from 0.2.0, semver guaranteed)::
|
|
|
7
7
|
|
|
8
8
|
Everything not listed in ``__all__`` is internal and may change without notice.
|
|
9
9
|
"""
|
|
10
|
-
__version__ = "0.2.
|
|
10
|
+
__version__ = "0.2.74"
|
|
11
11
|
|
|
12
12
|
# ── Core models ───────────────────────────────────────────────────────────────
|
|
13
13
|
from .models import ( # noqa: F401
|
|
@@ -268,8 +268,8 @@ def migrate(ctx, host, app, domain, target, strategy, target_version,
|
|
|
268
268
|
)
|
|
269
269
|
@click.option("--no-state", is_flag=True, help="Disable checkpoint persistence for this run.")
|
|
270
270
|
@click.option(
|
|
271
|
-
"--heal/--no-heal", default=
|
|
272
|
-
help="Self-healing: on failure, collect diagnostics and ask LLM to fix the spec, then retry (default:
|
|
271
|
+
"--heal/--no-heal", default=False,
|
|
272
|
+
help="Self-healing: on failure, collect diagnostics and ask LLM to fix the spec, then retry (default: off)."
|
|
273
273
|
)
|
|
274
274
|
@click.option(
|
|
275
275
|
"--fix", "fix_hint", default=None, metavar="TEXT",
|
|
@@ -140,6 +140,10 @@ class HealRunner:
|
|
|
140
140
|
)
|
|
141
141
|
spec_text = self.spec_path.read_text()
|
|
142
142
|
log_dir = self.spec_path.parent / ".redeploy" / "logs"
|
|
143
|
+
repair_log_path = self.spec_path.parent / "REPAIR_LOG.md"
|
|
144
|
+
self.console.print(
|
|
145
|
+
f" [dim]logs: {repair_log_path} | LLM logs: {log_dir}[/dim]"
|
|
146
|
+
)
|
|
143
147
|
llm_response = ask_llm(
|
|
144
148
|
failed_step, step_output, diag, spec_text,
|
|
145
149
|
fix_hint=self.fix_hint, log_dir=log_dir,
|
|
@@ -1,19 +1,49 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: redeploy
|
|
3
|
+
Version: 0.2.74
|
|
4
|
+
Summary: Infrastructure migration toolkit: detect → plan → apply
|
|
5
|
+
License: Apache-2.0
|
|
6
|
+
Requires-Python: >=3.11
|
|
7
|
+
Description-Content-Type: text/markdown
|
|
8
|
+
Requires-Dist: pydantic>=2.0
|
|
9
|
+
Requires-Dist: pyyaml>=6.0
|
|
10
|
+
Requires-Dist: markdown-it-py>=3.0
|
|
11
|
+
Requires-Dist: click>=8.0
|
|
12
|
+
Requires-Dist: loguru>=0.7
|
|
13
|
+
Requires-Dist: paramiko>=3.0
|
|
14
|
+
Requires-Dist: httpx>=0.25
|
|
15
|
+
Requires-Dist: rich>=13.0
|
|
16
|
+
Requires-Dist: jmespath>=1.0
|
|
17
|
+
Requires-Dist: goal>=2.1.0
|
|
18
|
+
Requires-Dist: costs>=0.1.20
|
|
19
|
+
Requires-Dist: pfix>=0.1.60
|
|
20
|
+
Provides-Extra: dev
|
|
21
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
22
|
+
Requires-Dist: ruff>=0.4; extra == "dev"
|
|
23
|
+
Requires-Dist: goal>=2.1.0; extra == "dev"
|
|
24
|
+
Requires-Dist: costs>=0.1.20; extra == "dev"
|
|
25
|
+
Requires-Dist: pfix>=0.1.60; extra == "dev"
|
|
26
|
+
Provides-Extra: op3
|
|
27
|
+
Requires-Dist: op3>=0.1.8; extra == "op3"
|
|
28
|
+
Provides-Extra: mcp
|
|
29
|
+
Requires-Dist: mcp>=1.0; extra == "mcp"
|
|
30
|
+
|
|
1
31
|
# redeploy
|
|
2
32
|
|
|
3
33
|
|
|
4
34
|
## AI Cost Tracking
|
|
5
35
|
|
|
6
|
-
     
|
|
37
|
+
  
|
|
8
38
|
|
|
9
|
-
- 🤖 **LLM usage:** $7.5000 (
|
|
10
|
-
- 👤 **Human dev:** ~$
|
|
39
|
+
- 🤖 **LLM usage:** $7.5000 (95 commits)
|
|
40
|
+
- 👤 **Human dev:** ~$3998 (40.0h @ $100/h, 30min dedup)
|
|
11
41
|
|
|
12
|
-
Generated on 2026-04-
|
|
42
|
+
Generated on 2026-04-30 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
13
43
|
|
|
14
44
|
---
|
|
15
45
|
|
|
16
|
-
    
|
|
17
47
|
|
|
18
48
|
Infrastructure migration and device deploy toolkit — VPS, Raspberry Pi kiosk, Podman Quadlet, k3s.
|
|
19
49
|
|
|
@@ -1080,6 +1110,38 @@ redeploy blueprint show blueprint.yaml --apply-config blueprint.yaml
|
|
|
1080
1110
|
redeploy blueprint show blueprint.yaml --query "hardware.drm_outputs[0].transform"
|
|
1081
1111
|
```
|
|
1082
1112
|
|
|
1113
|
+
## Dependencies
|
|
1114
|
+
|
|
1115
|
+
Core runtime dependencies:
|
|
1116
|
+
|
|
1117
|
+
| Package | Purpose |
|
|
1118
|
+
|---------|---------|
|
|
1119
|
+
| `pydantic>=2.0` | Data validation and settings |
|
|
1120
|
+
| `pyyaml>=6.0` | YAML parsing/serialization |
|
|
1121
|
+
| `markdown-it-py>=3.0` | Markdown parsing (markpact specs) |
|
|
1122
|
+
| `click>=8.0` | CLI framework |
|
|
1123
|
+
| `loguru>=0.7` | Structured logging |
|
|
1124
|
+
| `paramiko>=3.0` | SSH client |
|
|
1125
|
+
| `httpx>=0.25` | HTTP client |
|
|
1126
|
+
| `rich>=13.0` | Terminal UI |
|
|
1127
|
+
| `jmespath>=1.0` | JSON/YAML query expressions |
|
|
1128
|
+
| `goal>=2.1.0` | Goal tracking |
|
|
1129
|
+
| `costs>=0.1.20` | AI cost tracking |
|
|
1130
|
+
| `pfix>=0.1.60` | Self-healing Python |
|
|
1131
|
+
|
|
1132
|
+
Optional dependencies:
|
|
1133
|
+
|
|
1134
|
+
| Package | Purpose |
|
|
1135
|
+
|---------|---------|
|
|
1136
|
+
| `op3>=0.1.8` | OP3 support |
|
|
1137
|
+
| `mcp>=1.0` | MCP server mode |
|
|
1138
|
+
|
|
1139
|
+
### Internal Modules
|
|
1140
|
+
|
|
1141
|
+
- **`markpact`** — Markdown-native deployment spec format (markpact:config, markpact:steps)
|
|
1142
|
+
- **`goal`** — Migration goal tracking and validation
|
|
1143
|
+
- **`costs`** — AI cost tracking and reporting
|
|
1144
|
+
|
|
1083
1145
|
## License
|
|
1084
1146
|
|
|
1085
1147
|
Licensed under Apache-2.0.
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"""Unit tests for redeploy.detect.hardware_rules."""
|
|
2
2
|
import pytest
|
|
3
3
|
from redeploy.models import BacklightInfo, DrmOutput, HardwareInfo, I2CBusInfo
|
|
4
|
-
from redeploy.detect.hardware_rules import analyze
|
|
4
|
+
from redeploy.detect.hardware_rules import analyze, _OP3_AVAILABLE
|
|
5
|
+
|
|
6
|
+
pytestmark = pytest.mark.skipif(not _OP3_AVAILABLE, reason="op3 not installed")
|
|
5
7
|
|
|
6
8
|
|
|
7
9
|
def _hw(**kwargs) -> HardwareInfo:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|