redeploy 0.2.73__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.73 → redeploy-0.2.74}/PKG-INFO +8 -7
- {redeploy-0.2.73 → redeploy-0.2.74}/README.md +6 -6
- {redeploy-0.2.73 → redeploy-0.2.74}/pyproject.toml +3 -1
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/__init__.py +1 -1
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/plan_apply.py +2 -2
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/heal/runner.py +4 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy.egg-info/PKG-INFO +8 -7
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_hardware_rules.py +3 -1
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/analyze/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/analyze/checkers/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/analyze/preflight_schema.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/analyze/spec_analyzer.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/exceptions.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/executor.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/handlers.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/progress.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/rollback.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/state.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/state_apply.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/utils/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/apply/utils/run_container_build.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/audit.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/extractor.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/generators/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/generators/docker_compose.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/generators/migration.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/sources/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/sources/compose.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/sources/hardware.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/sources/infra.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/blueprint/sources/migration.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/audit.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/blueprint.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/bump_fix.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/detect.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/device_map.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/device_map_renderers.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/devices.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/diagnose.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/diff.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/exec_.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/export.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/gh_workflow.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/hardware.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/import_.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/init.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/inspect.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/lint.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/mcp_cmd.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/patterns.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/plugin.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/probe.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/prompt_cmd.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/push.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/state.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/status.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/target.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/version/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/version/commands.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/version/helpers.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/version/monorepo.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/version/release.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/version/scanner.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/version/utils/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/version/utils/changelog_config.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/version/utils/git_config.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/commands/workflow.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/core.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/display.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli/query.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/cli.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/config_apply/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/config_apply/applier.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/config_apply/handlers/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/config_apply/handlers/display.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/config_apply/loader.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/data_sync.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/detect/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/detect/builtin/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/detect/detector.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/detect/hardware.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/detect/hardware_rules.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/detect/probes.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/detect/remote.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/detect/templates.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/detect/workflow.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/discovery.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl/loader.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl/parser.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl_python/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl_python/context.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl_python/decorators.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl_python/docker_steps.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl_python/exceptions.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl_python/runner.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/dsl_python/steps.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/fleet.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/config_txt.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/data/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/data/hyperpixel.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/data/official.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/data/waveshare.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/fixes.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/kiosk/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/kiosk/autostart.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/kiosk/browsers.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/kiosk/compositors.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/kiosk/output_profiles.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/panels.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/hardware/raspi_config.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/heal/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/heal/decider.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/heal/hint_provider.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/heal/log_writer.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/heal/loop_detector.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/heal.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/iac/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/iac/base.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/iac/config_hints.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/iac/docker_compose.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/iac/parsers/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/iac/parsers/compose.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/iac/registry.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/integrations/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/integrations/op3_bridge.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/markpact/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/markpact/compiler.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/markpact/models.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/markpact/parser.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/mcp_server.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/blueprint.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/devices.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/enums.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/hardware.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/infra.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/manifest.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/persisted.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/pipeline.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/plan.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/models/spec.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/observe.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/parse.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/patterns.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/plan/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/plan/planner.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/plugins/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/plugins/builtin/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/plugins/builtin/browser_reload.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/plugins/builtin/hardware_diagnostic.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/plugins/builtin/notify.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/plugins/builtin/process_control.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/plugins/builtin/systemd_reload.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/schema.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/spec_loader.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/ssh.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/docker.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/generic.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/hardware.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/k3s.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/kiosk.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/podman.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/process.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/scm.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/steps/transfer.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_analyze.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_audit.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_cli.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_data_sync.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_discovery.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_dsl.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_examples.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_executor.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_fleet.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_git_integration.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_heal.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_heal_decider.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_hooks.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_iac.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_iac_compose_contract.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_iac_docker_compose_contract.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_manifest.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_markpact_compiler.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_markpact_parser.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_models.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_observe.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_parse.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_patterns.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_planner_edge.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_plugins.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_probes.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_public_api.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_resume.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_security_hardening.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_spec_loader.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_ssh.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_steps_registry.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_templates.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_verify.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_version.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_version_changelog.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_version_cli.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_version_manifest.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_version_sources.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/tests/test_workflow.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/verify.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/bump.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/changelog.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/commits.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/diff.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/git_integration.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/git_transaction.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/manifest.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/sources/__init__.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/sources/base.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/sources/json_.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/sources/plain.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/sources/regex.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/sources/toml_.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/sources/yaml_.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version/transaction.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy/version.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy.egg-info/SOURCES.txt +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy.egg-info/dependency_links.txt +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy.egg-info/entry_points.txt +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy.egg-info/requires.txt +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/redeploy.egg-info/top_level.txt +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/setup.cfg +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_blueprint_sources.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_blueprint_sources_compose.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_cli_gh_workflow.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_cli_query.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_example_argocd_flux_plugin.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_example_gitops_ci_plugin.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_example_helm_kustomize_plugin.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_hardware_config.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_hardware_kiosk.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_heal_decider.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_heal_loop_detector.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_iac.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_iac_config_hints.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_iac_plugin_loading.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_import_plugin_template.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_parse.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_prompt_llm.py +0 -0
- {redeploy-0.2.73 → redeploy-0.2.74}/tests/test_redeploy.py +0 -0
- {redeploy-0.2.73 → 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
|
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
|
|
4
4
|
## AI Cost Tracking
|
|
5
5
|
|
|
6
|
-
     
|
|
7
|
+
  
|
|
8
8
|
|
|
9
|
-
- 🤖 **LLM usage:** $7.5000 (
|
|
10
|
-
- 👤 **Human dev:** ~$
|
|
9
|
+
- 🤖 **LLM usage:** $7.5000 (95 commits)
|
|
10
|
+
- 👤 **Human dev:** ~$3998 (40.0h @ $100/h, 30min dedup)
|
|
11
11
|
|
|
12
|
-
Generated on 2026-04-
|
|
12
|
+
Generated on 2026-04-30 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
-
    
|
|
17
17
|
|
|
18
18
|
Infrastructure migration and device deploy toolkit — VPS, Raspberry Pi kiosk, Podman Quadlet, k3s.
|
|
19
19
|
|
|
@@ -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,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
|
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|