devagent-physical-engine 1.8.9__tar.gz → 1.9.1__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.
- {devagent_physical_engine-1.8.9/src/devagent_physical_engine.egg-info → devagent_physical_engine-1.9.1}/PKG-INFO +151 -23
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/README.md +149 -22
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/pyproject.toml +4 -3
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/__init__.py +1 -1
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/dynamic_verification_runtime_v190.py +242 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/industrial_motion_hotfix_v170.py +31 -6
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/industrial_motion_v182.py +26 -4
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/one_command_v16.py +147 -0
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/physical_evidence_v190.py +138 -0
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/report_requirements_v190.py +279 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/report_test_execution.py +26 -10
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/report_test_execution_strict.py +12 -19
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/task_adapter.py +101 -4
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/ros2/task_adapter_v190.py +166 -0
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/ros2/task_motion_diagnostics_v190.py +22 -0
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/ros2/trajectory_runtime_v190.py +78 -0
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/ros2/workpiece_carrier_v190.py +330 -0
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/ros2/workpiece_entity_replace_probe_v190.py +149 -0
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/selective_verification_v16.py +562 -0
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/selective_verification_v190.py +835 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/user_cli_v16.py +97 -47
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/user_cli_v191.py +194 -0
- devagent_physical_engine-1.9.1/src/devagent_physical_engine/verification_capabilities_v190.py +348 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1/src/devagent_physical_engine.egg-info}/PKG-INFO +151 -23
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine.egg-info/SOURCES.txt +25 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine.egg-info/entry_points.txt +1 -1
- devagent_physical_engine-1.9.1/tests/test_controller_failure_diagnostics_v190.py +101 -0
- devagent_physical_engine-1.9.1/tests/test_dynamic_report_batch_v190.py +92 -0
- devagent_physical_engine-1.9.1/tests/test_dynamic_report_contract_end_to_end_v190.py +210 -0
- devagent_physical_engine-1.9.1/tests/test_dynamic_verification_capabilities_v190.py +111 -0
- devagent_physical_engine-1.9.1/tests/test_fresh_simulation_cli_v191.py +99 -0
- devagent_physical_engine-1.9.1/tests/test_fresh_simulation_service_v191.py +90 -0
- devagent_physical_engine-1.9.1/tests/test_handoff_authority_v190.py +88 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_industrial_motion_v170.py +2 -21
- devagent_physical_engine-1.9.1/tests/test_joint_state_metric_authority_v190.py +106 -0
- devagent_physical_engine-1.9.1/tests/test_loaded_place_stability_v190.py +44 -0
- devagent_physical_engine-1.9.1/tests/test_metric_authority_surface_v190.py +131 -0
- devagent_physical_engine-1.9.1/tests/test_motion_handoff_stability_v190.py +138 -0
- devagent_physical_engine-1.9.1/tests/test_one_command_v190_injection.py +41 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_package_metadata_v184.py +2 -2
- devagent_physical_engine-1.9.1/tests/test_report_orchestration_v190.py +373 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_report_test_visual_execution_v16.py +96 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_transfer_place_diagnostic_v172.py +2 -2
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_user_cli_report_visual_v16.py +67 -14
- devagent_physical_engine-1.9.1/tests/test_workpiece_carrier_v190.py +92 -0
- devagent_physical_engine-1.8.9/src/devagent_physical_engine/one_command_v16.py +0 -97
- devagent_physical_engine-1.8.9/src/devagent_physical_engine/selective_verification_v16.py +0 -128
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/NOTICE +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/setup.cfg +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/__init__.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/compiler.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/contracts.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/coordinator.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/critic.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/evidence.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/interpreter.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/planner.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/recovery.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/routing.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/runtime.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/semantic.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/agent/structured.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ai_cli.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/cli.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/commercial.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/commercial_campaign.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/commercial_cli.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/commercial_importer.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/commercial_intelligence.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/commercial_readiness.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/commercial_repository.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/continuous_clearance.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/controller_runtime_hotfix_v181.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/doctor.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/engineering_agent.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/engineering_request.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/evidence_replay.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/evidence_trust.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/execution.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/industrial_motion_v170.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/models.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/one_command.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/one_command_runtime.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/one_command_v15.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/operating_envelope.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/__init__.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/benchmark.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/candidates.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/contracts.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/evaluator.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/evidence.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/experience.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/measured.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/optimizer.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/optimization/orchestrator.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/physical_campaign.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/physical_evidence.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/physical_motion.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/planning.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/pose_math.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/preexecution_contract.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/production_authority.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/production_grade.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/project.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/provider_adapters/__init__.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/provider_adapters/anthropic.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/provider_adapters/common.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/provider_adapters/factory.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/provider_adapters/gemini.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/provider_adapters/openai.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/provider_criterion.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/provider_qualification.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/providers.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/qualification.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/qualification_cli.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/qualification_harness.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/reference_workcell.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/robot_platform.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/robot_support_v18.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/robots.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/__init__.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/abb_irb1200.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/abb_irb1200_preview.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/acceptance.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/commands.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/continuous_clearance_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/controller_action_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/destination_support_contact_v182.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/doctor.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/fk_pose.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/fk_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/frame_alignment.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/gazebo_cli.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/gazebo_pose.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/gazebo_world.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v170.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v171.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v172.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v182.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/joint_state_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/joint_state_recorder.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/measured_motion.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/moveit_joint_plan_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/moveit_joint_plan_v161_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/moveit_scene.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/moveit_task_planner.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe_v182.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/preexecution.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/qualification.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/qualification_v10.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/qualification_v11.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/qualification_v12.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/report_test_visualization.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/report_test_visualization_v170.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/ros_gz_pose_service_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/scene_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/state_validity_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/support_contact_acm_probe_v170.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/support_contact_acm_semantics_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/support_contact_lease_v170.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/support_contact_runner_v161.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/support_contact_v161.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/task_visualization.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/tf_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/tool_scene.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/tool_scene_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/trajectory.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/trajectory_action_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/trajectory_feedback_tracking_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/trajectory_tracking.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/ur5e.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/ur5e_adapter.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/ur5e_v10_adapter.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/workpiece_follow.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/workpiece_gazebo_follower.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/workpiece_scene.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/workpiece_scene_probe.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v186.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v187.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v188.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/ros2/workpiece_transport.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/selective_verification.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/setup_profile.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/sim_real_qualification.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/simulation.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/simulation_platform.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/smooth_motion_hotfix_v162.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/support_contact_hotfix_v161.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/tool_collision.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/trajectory_qualification.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/twin.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/twin_builder.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/twin_codec.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/twin_materialization.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/user_cli.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/user_cli_v15.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/user_cli_v18.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/verification.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine/workpiece_lifecycle.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine.egg-info/dependency_links.txt +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine.egg-info/requires.txt +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/src/devagent_physical_engine.egg-info/top_level.txt +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_abb_irb1200_visual_v18.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_agent_core.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_agent_semantic_hardening.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_ai_cli.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_ai_cli_v07.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_commercial_importer_v1.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_commercial_intelligence_v15.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_commercial_readiness_v1.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_commercial_v1.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_continuous_clearance_v011.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_controller_runtime_hotfix_v181.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_core.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_destination_support_contact_v182.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_engineering_request_v07.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_evidence_replay_v12.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_evidence_trust_coverage_v12.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_evidence_trust_transport_v12.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_evidence_trust_v12.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_evidence_viewer_palette_v130.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_explicit_detach_world_reassert_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_gazebo_cli_v0122.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_golden_abb_runner_v171.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_golden_abb_showcase.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_interpreter_profiles_v08.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_joint_state_probe_v0125.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_live_provider_qualification.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_measured_motion_v10.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_moveit_planning_diagnostics_v0125.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_moveit_scene_v0123.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_natural_language_agent_v07.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_one_command_hardening_v13.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_one_command_pose_hardening_v15.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_one_command_regression_v141.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_one_command_v13.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_openai_strict_schema_v0113.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_optimization_v05.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_physical_campaign_v09.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_physical_evidence_v09.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_physical_motion_v09.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_place_preexecution_acm_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_planning_fallback_v012.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_pose_math_v0125.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_preexecution_contract_v10.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_production_authority_v11.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_production_grade_coverage_v11.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_production_grade_v11.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_project_spine_v013.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_provider_and_qualification.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_provider_criterion_v15.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_qualification_cli_lifecycle_v06.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_qualification_harness_v06.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_readme_pypi.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_real_provider_adapters.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_reference_workcell_ros_frames_v0125.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_reference_workcell_v012.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_release_resting_pose_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_release_transaction_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_report_test_contract_coverage_v16.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_report_test_lineage_v16.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_robot_platform_v08.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_ros2_production_receipts_v011.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_ros2_simulation.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_ros_trajectory_v09.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_selective_verification_v14.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_setup_profile.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_sim_real_qualification_v011.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_simulation_platform_v08.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_smooth_motion_hotfix_v162.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_support_contact_acm_semantics_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_support_contact_hotfix_v161.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_tool_collision_v011.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_tool_scene_v0124.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_trajectory_action_contract_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_trajectory_action_probe_v0125.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_trajectory_feedback_tracking_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_trajectory_qualification_v09.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_trajectory_tracking_v0125.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_transfer_controller_policy_v189.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_twin_materialization_v10.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_twin_v08.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_ur5e_adapter_scopes_v09.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_ur5e_v10_adapter_scopes.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_user_cli_interactive_v131.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_user_cli_progress_v131.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_user_cli_selective_v14.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_user_cli_v15.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_user_cli_v15_hotfix_inheritance.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_v052_stabilization.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_v08_catalog_mapping_regression.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_workpiece_attach_semantics_v183.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_workpiece_lifecycle_v011.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_workpiece_scene_probe_v185.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_workpiece_semantic_lifecycle_v186.py +0 -0
- {devagent_physical_engine-1.8.9 → devagent_physical_engine-1.9.1}/tests/test_workpiece_transport_v189.py +0 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devagent-physical-engine
|
|
3
|
-
Version: 1.
|
|
4
|
-
Summary: Verification-first robotics commissioning runtime with
|
|
3
|
+
Version: 1.9.1
|
|
4
|
+
Summary: Verification-first robotics commissioning runtime with declarative customer report tests, case-centric evidence reuse, qualified UR5e Gazebo/MoveIt execution, exact-Twin lineage, selective verification, regression, replay, and FAT reporting.
|
|
5
5
|
Author: Tom Ha
|
|
6
6
|
License: All Rights Reserved
|
|
7
7
|
Project-URL: Homepage, https://github.com/tomha85/devagent-physical-engine
|
|
8
8
|
Project-URL: Repository, https://github.com/tomha85/devagent-physical-engine
|
|
9
9
|
Project-URL: Issues, https://github.com/tomha85/devagent-physical-engine/issues
|
|
10
|
+
Project-URL: Sponsor, https://github.com/sponsors/tomha85
|
|
10
11
|
Keywords: robotics,industrial-automation,agentic-ai,ros2,gazebo,moveit,pilz,verification,selective-testing,digital-twin,fat-testing,regression,evidence,replay
|
|
11
12
|
Classifier: Development Status :: 5 - Production/Stable
|
|
12
13
|
Classifier: Intended Audience :: Developers
|
|
@@ -44,23 +45,56 @@ Dynamic: license-file
|
|
|
44
45
|
[](https://pypi.org/project/devagent-physical-engine/)
|
|
45
46
|
[](https://pypi.org/project/devagent-physical-engine/)
|
|
46
47
|
[](#project-status)
|
|
48
|
+
[](https://github.com/sponsors/tomha85)
|
|
47
49
|
|
|
48
50
|
**Verification-first commissioning engineering for robotics and industrial automation.**
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
> ❤️ **DevAgent Smart Physical Engine is independently developed.** If it saves your team engineering time, consider [sponsoring continued development](https://github.com/sponsors/tomha85).
|
|
53
|
+
|
|
54
|
+
## Engine in action
|
|
55
|
+
|
|
56
|
+
<p align="center">
|
|
57
|
+
<img src="docs/assets/readme/Screenshot%20from%202026-09-02%2015-14-21.png" width="100%" alt="DevAgent Smart Physical Engine exact-Twin UR5e workcell running in Gazebo Harmonic">
|
|
58
|
+
</p>
|
|
59
|
+
|
|
60
|
+
<p align="center">
|
|
61
|
+
<b>Exact-Twin simulation in Gazebo Harmonic</b><br>
|
|
62
|
+
<sub>Real DevAgent engine run with the bounded UR5e workcell, customer-cell entities, physics, and simulation state visible.</sub>
|
|
63
|
+
</p>
|
|
64
|
+
|
|
65
|
+
<table>
|
|
66
|
+
<tr>
|
|
67
|
+
<td width="50%" align="center">
|
|
68
|
+
<img src="docs/assets/readme/Screenshot%20from%202026-09-02%2015-15-17.png" width="100%" alt="DevAgent Smart Physical Engine robot task execution in Gazebo">
|
|
69
|
+
<br><b>Robot task execution</b><br>
|
|
70
|
+
<sub>Gazebo view during the bounded pick–transport–place workflow.</sub>
|
|
71
|
+
</td>
|
|
72
|
+
<td width="50%" align="center">
|
|
73
|
+
<img src="docs/assets/readme/Screenshot%20from%202026-09-02%2015-14-32.png" width="100%" alt="DevAgent Smart Physical Engine MoveIt motion planning scene in RViz">
|
|
74
|
+
<br><b>MoveIt motion planning</b><br>
|
|
75
|
+
<sub>RViz planning-scene view used alongside the qualified ROS 2 / MoveIt execution path.</sub>
|
|
76
|
+
</td>
|
|
77
|
+
</tr>
|
|
78
|
+
</table>
|
|
79
|
+
|
|
80
|
+
<p align="center"><sub><b>Real engine screenshots — not product renders.</b> ROS 2 Jazzy · Gazebo Harmonic · MoveIt 2 · Pilz · UR5e exact-Twin verification.</sub></p>
|
|
81
|
+
|
|
82
|
+
DevAgent turns a customer engineering folder into a bounded verification workflow with immutable Digital Twin lineage, declarative customer report tests, deterministic requirement verdicts, requirement-driven physical cases, exact-Twin measured simulation evidence, regression analysis, FAT reporting, replay inspection, and selective retesting.
|
|
51
83
|
|
|
52
84
|
```text
|
|
53
85
|
customer engineering files
|
|
54
86
|
↓
|
|
55
87
|
intake + SHA-256 inventory
|
|
56
88
|
↓
|
|
57
|
-
|
|
89
|
+
customer report test IDs + declarative verification contracts
|
|
58
90
|
↓
|
|
59
91
|
immutable Digital Twin revision
|
|
60
92
|
↓
|
|
61
93
|
requirement-driven nominal / boundary / fault cases
|
|
62
94
|
↓
|
|
63
|
-
|
|
95
|
+
reuse exact qualified case evidence when available
|
|
96
|
+
↓
|
|
97
|
+
execute each missing qualified physical case once
|
|
64
98
|
↓
|
|
65
99
|
measured evidence
|
|
66
100
|
↓
|
|
@@ -76,7 +110,7 @@ regression + FAT report + Evidence Viewer
|
|
|
76
110
|
Python 3.11+ is required.
|
|
77
111
|
|
|
78
112
|
```bash
|
|
79
|
-
python -m pip install --upgrade devagent-physical-engine==1.
|
|
113
|
+
python -m pip install --upgrade devagent-physical-engine==1.9.1
|
|
80
114
|
```
|
|
81
115
|
|
|
82
116
|
Verify the installed package:
|
|
@@ -88,7 +122,7 @@ python -c "import devagent_physical_engine as d; print(d.__version__)"
|
|
|
88
122
|
Expected:
|
|
89
123
|
|
|
90
124
|
```text
|
|
91
|
-
1.
|
|
125
|
+
1.9.1
|
|
92
126
|
```
|
|
93
127
|
|
|
94
128
|
Run the normal customer workflow:
|
|
@@ -140,15 +174,15 @@ Results: <customer-project>/devagent-results/
|
|
|
140
174
|
DevAgent separates planning, execution, measurement, verdicts, and authority.
|
|
141
175
|
|
|
142
176
|
```text
|
|
143
|
-
requirement
|
|
177
|
+
report test / requirement
|
|
144
178
|
↓
|
|
145
|
-
verification
|
|
179
|
+
declarative verification capability
|
|
146
180
|
↓
|
|
147
|
-
verification case
|
|
181
|
+
verification case when physical execution is required
|
|
148
182
|
↓
|
|
149
183
|
exact Twin revision/hash
|
|
150
184
|
↓
|
|
151
|
-
qualified simulation when available
|
|
185
|
+
qualified evidence reuse or qualified simulation when available
|
|
152
186
|
↓
|
|
153
187
|
measured evidence
|
|
154
188
|
↓
|
|
@@ -475,6 +509,75 @@ MoveIt DETACH is deterministic. DevAgent removes attachment ownership while the
|
|
|
475
509
|
|
|
476
510
|
This qualification is intentionally bounded to the packaged UR5e nominal report-test scope. It does not grant arbitrary customer-cell qualification, site qualification, functional-safety certification, or autonomous real-robot execution authority.
|
|
477
511
|
|
|
512
|
+
## v1.9.0 dynamic customer report verification
|
|
513
|
+
|
|
514
|
+
v1.9.0 changes report orchestration from test-name-driven behavior to declarative verification capabilities while preserving the target-proven v1.8.9 physical runtime.
|
|
515
|
+
|
|
516
|
+
Customer test IDs are opaque. A report row can declare its verification behavior with fields such as:
|
|
517
|
+
|
|
518
|
+
```text
|
|
519
|
+
test_id
|
|
520
|
+
verification_mode
|
|
521
|
+
metric
|
|
522
|
+
comparator
|
|
523
|
+
target / expected
|
|
524
|
+
evidence_authority
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
For example, `FAT-CUSTOM-947` can request the physical metric `max_workpiece_tilt_deg <= 3.0` without adding a `TEST-FAT-CUSTOM-947` code branch.
|
|
528
|
+
|
|
529
|
+
Interactive execution is case-centric:
|
|
530
|
+
|
|
531
|
+
```text
|
|
532
|
+
devagent> simulate FAT-CUSTOM-947
|
|
533
|
+
→ resolve the exact report contract
|
|
534
|
+
→ resolve Requirement → Mapping → Plan → Case lineage
|
|
535
|
+
→ reuse exact qualified case evidence first
|
|
536
|
+
→ execute the mapped physical case only when evidence is missing
|
|
537
|
+
→ evaluate the requested metric generically
|
|
538
|
+
|
|
539
|
+
devagent> simulate all
|
|
540
|
+
→ evaluate deterministic report rows without simulation
|
|
541
|
+
→ deduplicate physical case identities
|
|
542
|
+
→ reuse existing qualified measurements
|
|
543
|
+
→ execute each missing unique qualified physical case once
|
|
544
|
+
→ share each measurement across compatible report rows
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
A requested metric that the qualified adapter does not measure remains `NOT_TESTED`. DevAgent does not fabricate the value and does not repeatedly rerun the robot merely because the metric is unavailable.
|
|
548
|
+
|
|
549
|
+
The typed physical evidence path now permits bounded finite numeric/boolean customer metrics while retaining stricter semantic consistency validation for known safety metrics. This expands the report schema, not simulator authority: a qualified adapter must actually produce the requested measurement.
|
|
550
|
+
|
|
551
|
+
Hosted regression includes an arbitrary customer report test using `FAT-CUSTOM-947` and `max_workpiece_tilt_deg`, proving preservation through intake, campaign creation, case mapping, selective simulation, verdict evaluation, and later `simulate all` evidence reuse.
|
|
552
|
+
|
|
553
|
+
Full release notes: https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_0.md
|
|
554
|
+
|
|
555
|
+
## v1.9.1 repeatable fresh physical simulation
|
|
556
|
+
|
|
557
|
+
v1.9.1 makes evidence reuse and operator-requested fresh execution explicit without changing physical authority boundaries.
|
|
558
|
+
|
|
559
|
+
```text
|
|
560
|
+
devagent> simulate TEST-PERF-001
|
|
561
|
+
→ reuse exact qualified case evidence when available
|
|
562
|
+
→ execute only when the mapped case evidence is missing
|
|
563
|
+
|
|
564
|
+
devagent> simulate --fresh TEST-PERF-001
|
|
565
|
+
→ force a new execution of the selected unique physical case
|
|
566
|
+
→ append a new immutable measurement artifact
|
|
567
|
+
|
|
568
|
+
devagent> simulate --fresh all
|
|
569
|
+
→ force every unique mapped physical case once
|
|
570
|
+
→ still deduplicate shared case IDs across report criteria
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
`rerun TEST-X`, `rerun failed`, `rerun blocked`, `rerun affected`, and `rerun all` use the same fresh-execution contract for physical selectors. Deterministic selectors remain evidence-only and never command Gazebo.
|
|
574
|
+
|
|
575
|
+
Interactive verification now owns its Gazebo/MoveIt lifecycle. After an executed verification case captures its evidence, that verification-owned stack is closed so the next fresh command starts from a clean runtime instead of competing with a stale simulator in the same ROS domain. Persistent visualization is a separate intent and remains available through `devagent robot visualize`.
|
|
576
|
+
|
|
577
|
+
The lifecycle change does not relax MoveIt preexecution, canonical start-state compatibility, FollowJointTrajectory result handling, controller-feedback tracking, Twin lineage, site qualification, or real-robot execution locks.
|
|
578
|
+
|
|
579
|
+
Full release notes: https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_1.md
|
|
580
|
+
|
|
478
581
|
## Qualified visual-execution scope
|
|
479
582
|
|
|
480
583
|
Measured report-test execution remains intentionally narrow:
|
|
@@ -482,7 +585,7 @@ Measured report-test execution remains intentionally narrow:
|
|
|
482
585
|
```text
|
|
483
586
|
robot: UR5e
|
|
484
587
|
operation: load
|
|
485
|
-
case scope:
|
|
588
|
+
case scope: qualified mapped physical report cases within the packaged authority
|
|
486
589
|
runtime: Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz
|
|
487
590
|
```
|
|
488
591
|
|
|
@@ -498,11 +601,15 @@ Use `--interactive`, or `--open` from a real terminal, to keep a bounded prompt:
|
|
|
498
601
|
status
|
|
499
602
|
tests
|
|
500
603
|
test SELECTOR
|
|
501
|
-
simulate
|
|
502
|
-
|
|
604
|
+
simulate SELECTOR
|
|
605
|
+
simulate all
|
|
606
|
+
simulate --fresh SELECTOR
|
|
607
|
+
simulate --fresh all
|
|
608
|
+
rerun SELECTOR
|
|
503
609
|
rerun failed
|
|
504
610
|
rerun blocked
|
|
505
611
|
rerun affected
|
|
612
|
+
rerun all
|
|
506
613
|
replay
|
|
507
614
|
report
|
|
508
615
|
log
|
|
@@ -510,20 +617,24 @@ help
|
|
|
510
617
|
quit
|
|
511
618
|
```
|
|
512
619
|
|
|
513
|
-
Selectors can be requirement IDs, test IDs, or bounded groups:
|
|
620
|
+
Selectors can be customer-defined requirement IDs, customer-defined test IDs, or bounded groups:
|
|
514
621
|
|
|
515
622
|
```text
|
|
516
|
-
REQ-
|
|
517
|
-
|
|
623
|
+
CUSTOM-REQ-77
|
|
624
|
+
FAT-CUSTOM-947
|
|
518
625
|
failed
|
|
519
626
|
blocked
|
|
520
627
|
affected
|
|
521
628
|
all
|
|
522
629
|
```
|
|
523
630
|
|
|
524
|
-
`test SELECTOR` evaluates
|
|
631
|
+
`test SELECTOR` evaluates the selected criterion from existing qualified evidence without commanding the simulator.
|
|
525
632
|
|
|
526
|
-
`simulate TEST-X`
|
|
633
|
+
`simulate TEST-X` executes or reuses only the physical case required by that report row.
|
|
634
|
+
|
|
635
|
+
`simulate all` creates a report-wide capability execution plan, evaluates deterministic rows directly, deduplicates physical cases, reuses exact qualified evidence first, and executes only missing unique qualified cases.
|
|
636
|
+
|
|
637
|
+
`simulate --fresh TEST-X` and `rerun TEST-X` explicitly request a new physical execution; fresh report-wide execution still deduplicates physical case IDs.
|
|
527
638
|
|
|
528
639
|
`replay` reconstructs persisted evidence identity; it never commands Gazebo, MoveIt, a robot, PLC, or safety PLC.
|
|
529
640
|
|
|
@@ -675,20 +786,31 @@ devagent-physical-ai optional provider-backed engineering front end
|
|
|
675
786
|
|
|
676
787
|
# Project status
|
|
677
788
|
|
|
678
|
-
**v1.
|
|
789
|
+
**v1.9.1 — Production/Stable software workflow; repeatable fresh physical simulation with owned verification lifecycle**
|
|
790
|
+
|
|
791
|
+
v1.9.1 preserves v1.9.0's declarative customer report verification and case-centric evidence reuse, while adding explicit fresh physical execution and deterministic simulator lifecycle ownership. Normal `simulate` remains evidence-first; `simulate --fresh ...` and physical `rerun ...` force new execution, and report-wide fresh runs still execute each unique mapped case only once.
|
|
679
792
|
|
|
680
|
-
|
|
793
|
+
The physical qualification claim remains grounded in the target-proven bounded UR5e nominal report lifecycle. v1.9.1 does not expand that claim to arbitrary customer cells and does not grant site qualification, functional-safety certification, or autonomous real-robot execution authority.
|
|
681
794
|
|
|
682
795
|
Production-oriented software capabilities include:
|
|
683
796
|
|
|
684
797
|
```text
|
|
685
798
|
one-command customer intake
|
|
686
|
-
XLSX requirement normalization
|
|
799
|
+
XLSX/CSV/YAML/JSON requirement normalization
|
|
800
|
+
opaque customer-defined report test IDs
|
|
801
|
+
declarative verification mode / metric / comparator / target / evidence authority
|
|
802
|
+
generic finite numeric/boolean physical metrics with bounded validation
|
|
687
803
|
validated Requirement → Criterion mapping
|
|
688
804
|
optional provider-backed advisory criterion proposals
|
|
689
805
|
requirement-driven nominal / boundary / fault case generation
|
|
690
806
|
immutable project/Twin lineage
|
|
691
807
|
exact Requirement → Mapping → Verification Plan → Case provenance
|
|
808
|
+
case-centric qualified evidence reuse
|
|
809
|
+
explicit fresh physical execution
|
|
810
|
+
verification-owned simulator lifecycle cleanup
|
|
811
|
+
report-wide physical-case deduplication
|
|
812
|
+
mixed deterministic + physical `simulate all` orchestration
|
|
813
|
+
truthful NOT_TESTED for unavailable/unsupported evidence
|
|
692
814
|
truthful robot support tiers
|
|
693
815
|
qualified UR5e report-test visual execution contract
|
|
694
816
|
direct UR5e controller-manager/action readiness binding
|
|
@@ -717,10 +839,16 @@ change impact + regression
|
|
|
717
839
|
provider-neutral optional AI front end
|
|
718
840
|
```
|
|
719
841
|
|
|
720
|
-
Production/Stable describes the bounded software workflow. The target-proven UR5e claim
|
|
842
|
+
Production/Stable describes the bounded software workflow. The target-proven UR5e claim remains limited to the qualified packaged nominal report path and exact acceptance environment. It does not claim arbitrary customer cells are physically qualified, site-qualified, functionally safe, or authorized for autonomous real execution.
|
|
721
843
|
|
|
722
844
|
## Documentation
|
|
723
845
|
|
|
846
|
+
v1.9.1 release notes:
|
|
847
|
+
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_1.md
|
|
848
|
+
|
|
849
|
+
v1.9.0 release notes:
|
|
850
|
+
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_0.md
|
|
851
|
+
|
|
724
852
|
One-command verification:
|
|
725
853
|
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ONE_COMMAND_VERIFY_V13.md
|
|
726
854
|
|
|
@@ -3,23 +3,56 @@
|
|
|
3
3
|
[](https://pypi.org/project/devagent-physical-engine/)
|
|
4
4
|
[](https://pypi.org/project/devagent-physical-engine/)
|
|
5
5
|
[](#project-status)
|
|
6
|
+
[](https://github.com/sponsors/tomha85)
|
|
6
7
|
|
|
7
8
|
**Verification-first commissioning engineering for robotics and industrial automation.**
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
> ❤️ **DevAgent Smart Physical Engine is independently developed.** If it saves your team engineering time, consider [sponsoring continued development](https://github.com/sponsors/tomha85).
|
|
11
|
+
|
|
12
|
+
## Engine in action
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<img src="docs/assets/readme/Screenshot%20from%202026-09-02%2015-14-21.png" width="100%" alt="DevAgent Smart Physical Engine exact-Twin UR5e workcell running in Gazebo Harmonic">
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p align="center">
|
|
19
|
+
<b>Exact-Twin simulation in Gazebo Harmonic</b><br>
|
|
20
|
+
<sub>Real DevAgent engine run with the bounded UR5e workcell, customer-cell entities, physics, and simulation state visible.</sub>
|
|
21
|
+
</p>
|
|
22
|
+
|
|
23
|
+
<table>
|
|
24
|
+
<tr>
|
|
25
|
+
<td width="50%" align="center">
|
|
26
|
+
<img src="docs/assets/readme/Screenshot%20from%202026-09-02%2015-15-17.png" width="100%" alt="DevAgent Smart Physical Engine robot task execution in Gazebo">
|
|
27
|
+
<br><b>Robot task execution</b><br>
|
|
28
|
+
<sub>Gazebo view during the bounded pick–transport–place workflow.</sub>
|
|
29
|
+
</td>
|
|
30
|
+
<td width="50%" align="center">
|
|
31
|
+
<img src="docs/assets/readme/Screenshot%20from%202026-09-02%2015-14-32.png" width="100%" alt="DevAgent Smart Physical Engine MoveIt motion planning scene in RViz">
|
|
32
|
+
<br><b>MoveIt motion planning</b><br>
|
|
33
|
+
<sub>RViz planning-scene view used alongside the qualified ROS 2 / MoveIt execution path.</sub>
|
|
34
|
+
</td>
|
|
35
|
+
</tr>
|
|
36
|
+
</table>
|
|
37
|
+
|
|
38
|
+
<p align="center"><sub><b>Real engine screenshots — not product renders.</b> ROS 2 Jazzy · Gazebo Harmonic · MoveIt 2 · Pilz · UR5e exact-Twin verification.</sub></p>
|
|
39
|
+
|
|
40
|
+
DevAgent turns a customer engineering folder into a bounded verification workflow with immutable Digital Twin lineage, declarative customer report tests, deterministic requirement verdicts, requirement-driven physical cases, exact-Twin measured simulation evidence, regression analysis, FAT reporting, replay inspection, and selective retesting.
|
|
10
41
|
|
|
11
42
|
```text
|
|
12
43
|
customer engineering files
|
|
13
44
|
↓
|
|
14
45
|
intake + SHA-256 inventory
|
|
15
46
|
↓
|
|
16
|
-
|
|
47
|
+
customer report test IDs + declarative verification contracts
|
|
17
48
|
↓
|
|
18
49
|
immutable Digital Twin revision
|
|
19
50
|
↓
|
|
20
51
|
requirement-driven nominal / boundary / fault cases
|
|
21
52
|
↓
|
|
22
|
-
|
|
53
|
+
reuse exact qualified case evidence when available
|
|
54
|
+
↓
|
|
55
|
+
execute each missing qualified physical case once
|
|
23
56
|
↓
|
|
24
57
|
measured evidence
|
|
25
58
|
↓
|
|
@@ -35,7 +68,7 @@ regression + FAT report + Evidence Viewer
|
|
|
35
68
|
Python 3.11+ is required.
|
|
36
69
|
|
|
37
70
|
```bash
|
|
38
|
-
python -m pip install --upgrade devagent-physical-engine==1.
|
|
71
|
+
python -m pip install --upgrade devagent-physical-engine==1.9.1
|
|
39
72
|
```
|
|
40
73
|
|
|
41
74
|
Verify the installed package:
|
|
@@ -47,7 +80,7 @@ python -c "import devagent_physical_engine as d; print(d.__version__)"
|
|
|
47
80
|
Expected:
|
|
48
81
|
|
|
49
82
|
```text
|
|
50
|
-
1.
|
|
83
|
+
1.9.1
|
|
51
84
|
```
|
|
52
85
|
|
|
53
86
|
Run the normal customer workflow:
|
|
@@ -99,15 +132,15 @@ Results: <customer-project>/devagent-results/
|
|
|
99
132
|
DevAgent separates planning, execution, measurement, verdicts, and authority.
|
|
100
133
|
|
|
101
134
|
```text
|
|
102
|
-
requirement
|
|
135
|
+
report test / requirement
|
|
103
136
|
↓
|
|
104
|
-
verification
|
|
137
|
+
declarative verification capability
|
|
105
138
|
↓
|
|
106
|
-
verification case
|
|
139
|
+
verification case when physical execution is required
|
|
107
140
|
↓
|
|
108
141
|
exact Twin revision/hash
|
|
109
142
|
↓
|
|
110
|
-
qualified simulation when available
|
|
143
|
+
qualified evidence reuse or qualified simulation when available
|
|
111
144
|
↓
|
|
112
145
|
measured evidence
|
|
113
146
|
↓
|
|
@@ -434,6 +467,75 @@ MoveIt DETACH is deterministic. DevAgent removes attachment ownership while the
|
|
|
434
467
|
|
|
435
468
|
This qualification is intentionally bounded to the packaged UR5e nominal report-test scope. It does not grant arbitrary customer-cell qualification, site qualification, functional-safety certification, or autonomous real-robot execution authority.
|
|
436
469
|
|
|
470
|
+
## v1.9.0 dynamic customer report verification
|
|
471
|
+
|
|
472
|
+
v1.9.0 changes report orchestration from test-name-driven behavior to declarative verification capabilities while preserving the target-proven v1.8.9 physical runtime.
|
|
473
|
+
|
|
474
|
+
Customer test IDs are opaque. A report row can declare its verification behavior with fields such as:
|
|
475
|
+
|
|
476
|
+
```text
|
|
477
|
+
test_id
|
|
478
|
+
verification_mode
|
|
479
|
+
metric
|
|
480
|
+
comparator
|
|
481
|
+
target / expected
|
|
482
|
+
evidence_authority
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
For example, `FAT-CUSTOM-947` can request the physical metric `max_workpiece_tilt_deg <= 3.0` without adding a `TEST-FAT-CUSTOM-947` code branch.
|
|
486
|
+
|
|
487
|
+
Interactive execution is case-centric:
|
|
488
|
+
|
|
489
|
+
```text
|
|
490
|
+
devagent> simulate FAT-CUSTOM-947
|
|
491
|
+
→ resolve the exact report contract
|
|
492
|
+
→ resolve Requirement → Mapping → Plan → Case lineage
|
|
493
|
+
→ reuse exact qualified case evidence first
|
|
494
|
+
→ execute the mapped physical case only when evidence is missing
|
|
495
|
+
→ evaluate the requested metric generically
|
|
496
|
+
|
|
497
|
+
devagent> simulate all
|
|
498
|
+
→ evaluate deterministic report rows without simulation
|
|
499
|
+
→ deduplicate physical case identities
|
|
500
|
+
→ reuse existing qualified measurements
|
|
501
|
+
→ execute each missing unique qualified physical case once
|
|
502
|
+
→ share each measurement across compatible report rows
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
A requested metric that the qualified adapter does not measure remains `NOT_TESTED`. DevAgent does not fabricate the value and does not repeatedly rerun the robot merely because the metric is unavailable.
|
|
506
|
+
|
|
507
|
+
The typed physical evidence path now permits bounded finite numeric/boolean customer metrics while retaining stricter semantic consistency validation for known safety metrics. This expands the report schema, not simulator authority: a qualified adapter must actually produce the requested measurement.
|
|
508
|
+
|
|
509
|
+
Hosted regression includes an arbitrary customer report test using `FAT-CUSTOM-947` and `max_workpiece_tilt_deg`, proving preservation through intake, campaign creation, case mapping, selective simulation, verdict evaluation, and later `simulate all` evidence reuse.
|
|
510
|
+
|
|
511
|
+
Full release notes: https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_0.md
|
|
512
|
+
|
|
513
|
+
## v1.9.1 repeatable fresh physical simulation
|
|
514
|
+
|
|
515
|
+
v1.9.1 makes evidence reuse and operator-requested fresh execution explicit without changing physical authority boundaries.
|
|
516
|
+
|
|
517
|
+
```text
|
|
518
|
+
devagent> simulate TEST-PERF-001
|
|
519
|
+
→ reuse exact qualified case evidence when available
|
|
520
|
+
→ execute only when the mapped case evidence is missing
|
|
521
|
+
|
|
522
|
+
devagent> simulate --fresh TEST-PERF-001
|
|
523
|
+
→ force a new execution of the selected unique physical case
|
|
524
|
+
→ append a new immutable measurement artifact
|
|
525
|
+
|
|
526
|
+
devagent> simulate --fresh all
|
|
527
|
+
→ force every unique mapped physical case once
|
|
528
|
+
→ still deduplicate shared case IDs across report criteria
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
`rerun TEST-X`, `rerun failed`, `rerun blocked`, `rerun affected`, and `rerun all` use the same fresh-execution contract for physical selectors. Deterministic selectors remain evidence-only and never command Gazebo.
|
|
532
|
+
|
|
533
|
+
Interactive verification now owns its Gazebo/MoveIt lifecycle. After an executed verification case captures its evidence, that verification-owned stack is closed so the next fresh command starts from a clean runtime instead of competing with a stale simulator in the same ROS domain. Persistent visualization is a separate intent and remains available through `devagent robot visualize`.
|
|
534
|
+
|
|
535
|
+
The lifecycle change does not relax MoveIt preexecution, canonical start-state compatibility, FollowJointTrajectory result handling, controller-feedback tracking, Twin lineage, site qualification, or real-robot execution locks.
|
|
536
|
+
|
|
537
|
+
Full release notes: https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_1.md
|
|
538
|
+
|
|
437
539
|
## Qualified visual-execution scope
|
|
438
540
|
|
|
439
541
|
Measured report-test execution remains intentionally narrow:
|
|
@@ -441,7 +543,7 @@ Measured report-test execution remains intentionally narrow:
|
|
|
441
543
|
```text
|
|
442
544
|
robot: UR5e
|
|
443
545
|
operation: load
|
|
444
|
-
case scope:
|
|
546
|
+
case scope: qualified mapped physical report cases within the packaged authority
|
|
445
547
|
runtime: Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz
|
|
446
548
|
```
|
|
447
549
|
|
|
@@ -457,11 +559,15 @@ Use `--interactive`, or `--open` from a real terminal, to keep a bounded prompt:
|
|
|
457
559
|
status
|
|
458
560
|
tests
|
|
459
561
|
test SELECTOR
|
|
460
|
-
simulate
|
|
461
|
-
|
|
562
|
+
simulate SELECTOR
|
|
563
|
+
simulate all
|
|
564
|
+
simulate --fresh SELECTOR
|
|
565
|
+
simulate --fresh all
|
|
566
|
+
rerun SELECTOR
|
|
462
567
|
rerun failed
|
|
463
568
|
rerun blocked
|
|
464
569
|
rerun affected
|
|
570
|
+
rerun all
|
|
465
571
|
replay
|
|
466
572
|
report
|
|
467
573
|
log
|
|
@@ -469,20 +575,24 @@ help
|
|
|
469
575
|
quit
|
|
470
576
|
```
|
|
471
577
|
|
|
472
|
-
Selectors can be requirement IDs, test IDs, or bounded groups:
|
|
578
|
+
Selectors can be customer-defined requirement IDs, customer-defined test IDs, or bounded groups:
|
|
473
579
|
|
|
474
580
|
```text
|
|
475
|
-
REQ-
|
|
476
|
-
|
|
581
|
+
CUSTOM-REQ-77
|
|
582
|
+
FAT-CUSTOM-947
|
|
477
583
|
failed
|
|
478
584
|
blocked
|
|
479
585
|
affected
|
|
480
586
|
all
|
|
481
587
|
```
|
|
482
588
|
|
|
483
|
-
`test SELECTOR` evaluates
|
|
589
|
+
`test SELECTOR` evaluates the selected criterion from existing qualified evidence without commanding the simulator.
|
|
484
590
|
|
|
485
|
-
`simulate TEST-X`
|
|
591
|
+
`simulate TEST-X` executes or reuses only the physical case required by that report row.
|
|
592
|
+
|
|
593
|
+
`simulate all` creates a report-wide capability execution plan, evaluates deterministic rows directly, deduplicates physical cases, reuses exact qualified evidence first, and executes only missing unique qualified cases.
|
|
594
|
+
|
|
595
|
+
`simulate --fresh TEST-X` and `rerun TEST-X` explicitly request a new physical execution; fresh report-wide execution still deduplicates physical case IDs.
|
|
486
596
|
|
|
487
597
|
`replay` reconstructs persisted evidence identity; it never commands Gazebo, MoveIt, a robot, PLC, or safety PLC.
|
|
488
598
|
|
|
@@ -634,20 +744,31 @@ devagent-physical-ai optional provider-backed engineering front end
|
|
|
634
744
|
|
|
635
745
|
# Project status
|
|
636
746
|
|
|
637
|
-
**v1.
|
|
747
|
+
**v1.9.1 — Production/Stable software workflow; repeatable fresh physical simulation with owned verification lifecycle**
|
|
748
|
+
|
|
749
|
+
v1.9.1 preserves v1.9.0's declarative customer report verification and case-centric evidence reuse, while adding explicit fresh physical execution and deterministic simulator lifecycle ownership. Normal `simulate` remains evidence-first; `simulate --fresh ...` and physical `rerun ...` force new execution, and report-wide fresh runs still execute each unique mapped case only once.
|
|
638
750
|
|
|
639
|
-
|
|
751
|
+
The physical qualification claim remains grounded in the target-proven bounded UR5e nominal report lifecycle. v1.9.1 does not expand that claim to arbitrary customer cells and does not grant site qualification, functional-safety certification, or autonomous real-robot execution authority.
|
|
640
752
|
|
|
641
753
|
Production-oriented software capabilities include:
|
|
642
754
|
|
|
643
755
|
```text
|
|
644
756
|
one-command customer intake
|
|
645
|
-
XLSX requirement normalization
|
|
757
|
+
XLSX/CSV/YAML/JSON requirement normalization
|
|
758
|
+
opaque customer-defined report test IDs
|
|
759
|
+
declarative verification mode / metric / comparator / target / evidence authority
|
|
760
|
+
generic finite numeric/boolean physical metrics with bounded validation
|
|
646
761
|
validated Requirement → Criterion mapping
|
|
647
762
|
optional provider-backed advisory criterion proposals
|
|
648
763
|
requirement-driven nominal / boundary / fault case generation
|
|
649
764
|
immutable project/Twin lineage
|
|
650
765
|
exact Requirement → Mapping → Verification Plan → Case provenance
|
|
766
|
+
case-centric qualified evidence reuse
|
|
767
|
+
explicit fresh physical execution
|
|
768
|
+
verification-owned simulator lifecycle cleanup
|
|
769
|
+
report-wide physical-case deduplication
|
|
770
|
+
mixed deterministic + physical `simulate all` orchestration
|
|
771
|
+
truthful NOT_TESTED for unavailable/unsupported evidence
|
|
651
772
|
truthful robot support tiers
|
|
652
773
|
qualified UR5e report-test visual execution contract
|
|
653
774
|
direct UR5e controller-manager/action readiness binding
|
|
@@ -676,10 +797,16 @@ change impact + regression
|
|
|
676
797
|
provider-neutral optional AI front end
|
|
677
798
|
```
|
|
678
799
|
|
|
679
|
-
Production/Stable describes the bounded software workflow. The target-proven UR5e claim
|
|
800
|
+
Production/Stable describes the bounded software workflow. The target-proven UR5e claim remains limited to the qualified packaged nominal report path and exact acceptance environment. It does not claim arbitrary customer cells are physically qualified, site-qualified, functionally safe, or authorized for autonomous real execution.
|
|
680
801
|
|
|
681
802
|
## Documentation
|
|
682
803
|
|
|
804
|
+
v1.9.1 release notes:
|
|
805
|
+
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_1.md
|
|
806
|
+
|
|
807
|
+
v1.9.0 release notes:
|
|
808
|
+
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_0.md
|
|
809
|
+
|
|
683
810
|
One-command verification:
|
|
684
811
|
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ONE_COMMAND_VERIFY_V13.md
|
|
685
812
|
|
|
@@ -712,4 +839,4 @@ Original creator: Tom Ha
|
|
|
712
839
|
Original project: https://github.com/tomha85/devagent-physical-engine
|
|
713
840
|
All rights reserved.
|
|
714
841
|
|
|
715
|
-
See repository `LICENSE`, `NOTICE`, and `COPYRIGHT` for complete ownership and usage terms.
|
|
842
|
+
See repository `LICENSE`, `NOTICE`, and `COPYRIGHT` for complete ownership and usage terms.
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "devagent-physical-engine"
|
|
7
|
-
version = "1.
|
|
8
|
-
description = "Verification-first robotics commissioning runtime with
|
|
7
|
+
version = "1.9.1"
|
|
8
|
+
description = "Verification-first robotics commissioning runtime with declarative customer report tests, case-centric evidence reuse, qualified UR5e Gazebo/MoveIt execution, exact-Twin lineage, selective verification, regression, replay, and FAT reporting."
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
requires-python = ">=3.11"
|
|
11
11
|
dependencies = ["PyYAML>=6.0,<7"]
|
|
@@ -45,9 +45,10 @@ dev = [
|
|
|
45
45
|
Homepage = "https://github.com/tomha85/devagent-physical-engine"
|
|
46
46
|
Repository = "https://github.com/tomha85/devagent-physical-engine"
|
|
47
47
|
Issues = "https://github.com/tomha85/devagent-physical-engine/issues"
|
|
48
|
+
Sponsor = "https://github.com/sponsors/tomha85"
|
|
48
49
|
|
|
49
50
|
[project.scripts]
|
|
50
|
-
devagent = "devagent_physical_engine.
|
|
51
|
+
devagent = "devagent_physical_engine.user_cli_v191:main"
|
|
51
52
|
devagent-physical = "devagent_physical_engine.cli:main"
|
|
52
53
|
devagent-physical-ai = "devagent_physical_engine.ai_cli:main"
|
|
53
54
|
devagent-commercial = "devagent_physical_engine.commercial_cli:main"
|