devagent-physical-engine 1.8.8__tar.gz → 1.9.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {devagent_physical_engine-1.8.8/src/devagent_physical_engine.egg-info → devagent_physical_engine-1.9.0}/PKG-INFO +146 -22
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/README.md +144 -21
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/pyproject.toml +4 -2
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/__init__.py +1 -1
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/dynamic_verification_runtime_v190.py +242 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/industrial_motion_hotfix_v170.py +102 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/industrial_motion_v182.py +26 -4
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/one_command_v16.py +147 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/physical_evidence_v190.py +138 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/report_requirements_v190.py +279 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/report_test_execution.py +26 -10
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/report_test_execution_strict.py +12 -19
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/doctor.py +2 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/gazebo_pose.py +169 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/preexecution.py +171 -39
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/report_test_visualization_v170.py +262 -35
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/ros_gz_pose_service_probe.py +42 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/state_validity_probe.py +76 -8
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/support_contact_acm_probe_v170.py +71 -14
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/support_contact_acm_semantics_v189.py +195 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/task_adapter.py +381 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/task_adapter_v190.py +166 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/task_motion_diagnostics_v190.py +22 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/trajectory.py +25 -1
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/trajectory_action_probe.py +83 -23
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/trajectory_feedback_tracking_v189.py +174 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/trajectory_runtime_v190.py +78 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/workpiece_carrier_v190.py +330 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/workpiece_entity_replace_probe_v190.py +149 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_follow.py +71 -26
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_gazebo_follower.py +110 -109
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene.py +153 -26
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/workpiece_scene_probe_v189.py +371 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/workpiece_transport.py +143 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/selective_verification_v16.py +562 -0
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/selective_verification_v190.py +835 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/setup_profile.py +5 -5
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/user_cli_v16.py +97 -47
- devagent_physical_engine-1.9.0/src/devagent_physical_engine/verification_capabilities_v190.py +348 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0/src/devagent_physical_engine.egg-info}/PKG-INFO +146 -22
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/SOURCES.txt +37 -1
- devagent_physical_engine-1.9.0/tests/test_controller_failure_diagnostics_v190.py +101 -0
- devagent_physical_engine-1.9.0/tests/test_dynamic_report_batch_v190.py +92 -0
- devagent_physical_engine-1.9.0/tests/test_dynamic_report_contract_end_to_end_v190.py +210 -0
- devagent_physical_engine-1.9.0/tests/test_dynamic_verification_capabilities_v190.py +111 -0
- devagent_physical_engine-1.9.0/tests/test_explicit_detach_world_reassert_v189.py +113 -0
- devagent_physical_engine-1.9.0/tests/test_handoff_authority_v190.py +88 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_industrial_motion_v170.py +2 -21
- devagent_physical_engine-1.9.0/tests/test_joint_state_metric_authority_v190.py +106 -0
- devagent_physical_engine-1.9.0/tests/test_loaded_place_stability_v190.py +44 -0
- devagent_physical_engine-1.9.0/tests/test_metric_authority_surface_v190.py +131 -0
- devagent_physical_engine-1.9.0/tests/test_motion_handoff_stability_v190.py +138 -0
- devagent_physical_engine-1.9.0/tests/test_one_command_v190_injection.py +41 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_package_metadata_v184.py +2 -2
- devagent_physical_engine-1.9.0/tests/test_place_preexecution_acm_v189.py +228 -0
- devagent_physical_engine-1.9.0/tests/test_release_resting_pose_v189.py +143 -0
- devagent_physical_engine-1.9.0/tests/test_release_transaction_v189.py +68 -0
- devagent_physical_engine-1.9.0/tests/test_report_orchestration_v190.py +373 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_report_test_visual_execution_v16.py +96 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ros2_production_receipts_v011.py +14 -1
- devagent_physical_engine-1.9.0/tests/test_support_contact_acm_semantics_v189.py +138 -0
- devagent_physical_engine-1.9.0/tests/test_trajectory_action_contract_v189.py +80 -0
- devagent_physical_engine-1.9.0/tests/test_trajectory_feedback_tracking_v189.py +222 -0
- devagent_physical_engine-1.9.0/tests/test_transfer_controller_policy_v189.py +83 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_transfer_place_diagnostic_v172.py +2 -2
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_report_visual_v16.py +67 -14
- devagent_physical_engine-1.9.0/tests/test_workpiece_carrier_v190.py +92 -0
- devagent_physical_engine-1.9.0/tests/test_workpiece_semantic_lifecycle_v186.py +469 -0
- devagent_physical_engine-1.9.0/tests/test_workpiece_transport_v189.py +195 -0
- devagent_physical_engine-1.8.8/src/devagent_physical_engine/industrial_motion_hotfix_v170.py +0 -64
- devagent_physical_engine-1.8.8/src/devagent_physical_engine/one_command_v16.py +0 -97
- devagent_physical_engine-1.8.8/src/devagent_physical_engine/ros2/gazebo_pose.py +0 -104
- devagent_physical_engine-1.8.8/src/devagent_physical_engine/ros2/task_adapter.py +0 -160
- devagent_physical_engine-1.8.8/src/devagent_physical_engine/selective_verification_v16.py +0 -128
- devagent_physical_engine-1.8.8/tests/test_workpiece_semantic_lifecycle_v186.py +0 -220
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/NOTICE +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/setup.cfg +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/__init__.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/compiler.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/contracts.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/coordinator.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/critic.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/evidence.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/interpreter.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/planner.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/recovery.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/routing.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/runtime.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/semantic.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/structured.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ai_cli.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/cli.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_campaign.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_cli.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_importer.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_intelligence.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_readiness.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_repository.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/continuous_clearance.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/controller_runtime_hotfix_v181.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/doctor.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/engineering_agent.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/engineering_request.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/evidence_replay.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/evidence_trust.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/execution.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/industrial_motion_v170.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/models.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/one_command.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/one_command_runtime.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/one_command_v15.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/operating_envelope.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/__init__.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/benchmark.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/candidates.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/contracts.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/evaluator.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/evidence.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/experience.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/measured.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/optimizer.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/orchestrator.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/physical_campaign.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/physical_evidence.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/physical_motion.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/planning.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/pose_math.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/preexecution_contract.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/production_authority.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/production_grade.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/project.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/__init__.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/anthropic.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/common.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/factory.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/gemini.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/openai.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_criterion.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_qualification.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/providers.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/qualification.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/qualification_cli.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/qualification_harness.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/reference_workcell.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/robot_platform.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/robot_support_v18.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/robots.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/__init__.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/abb_irb1200.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/abb_irb1200_preview.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/acceptance.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/commands.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/continuous_clearance_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/controller_action_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/destination_support_contact_v182.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/fk_pose.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/fk_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/frame_alignment.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/gazebo_cli.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/gazebo_world.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v170.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v171.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v172.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v182.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/joint_state_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/joint_state_recorder.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/measured_motion.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/moveit_joint_plan_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/moveit_joint_plan_v161_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/moveit_scene.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/moveit_task_planner.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe_v182.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/qualification.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/qualification_v10.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/qualification_v11.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/qualification_v12.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/report_test_visualization.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/scene_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/support_contact_lease_v170.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/support_contact_runner_v161.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/support_contact_v161.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/task_visualization.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/tf_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/tool_scene.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/tool_scene_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/trajectory_tracking.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/ur5e.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/ur5e_adapter.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/ur5e_v10_adapter.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v186.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v187.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v188.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/selective_verification.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/sim_real_qualification.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/simulation.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/simulation_platform.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/smooth_motion_hotfix_v162.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/support_contact_hotfix_v161.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/tool_collision.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/trajectory_qualification.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/twin.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/twin_builder.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/twin_codec.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/twin_materialization.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/user_cli.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/user_cli_v15.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/user_cli_v18.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/verification.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/workpiece_lifecycle.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/dependency_links.txt +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/entry_points.txt +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/requires.txt +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/top_level.txt +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_abb_irb1200_visual_v18.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_agent_core.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_agent_semantic_hardening.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ai_cli.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ai_cli_v07.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_commercial_importer_v1.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_commercial_intelligence_v15.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_commercial_readiness_v1.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_commercial_v1.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_continuous_clearance_v011.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_controller_runtime_hotfix_v181.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_core.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_destination_support_contact_v182.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_engineering_request_v07.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_replay_v12.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_trust_coverage_v12.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_trust_transport_v12.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_trust_v12.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_viewer_palette_v130.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_gazebo_cli_v0122.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_golden_abb_runner_v171.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_golden_abb_showcase.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_interpreter_profiles_v08.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_joint_state_probe_v0125.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_live_provider_qualification.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_measured_motion_v10.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_moveit_planning_diagnostics_v0125.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_moveit_scene_v0123.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_natural_language_agent_v07.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_one_command_hardening_v13.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_one_command_pose_hardening_v15.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_one_command_regression_v141.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_one_command_v13.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_openai_strict_schema_v0113.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_optimization_v05.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_physical_campaign_v09.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_physical_evidence_v09.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_physical_motion_v09.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_planning_fallback_v012.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_pose_math_v0125.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_preexecution_contract_v10.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_production_authority_v11.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_production_grade_coverage_v11.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_production_grade_v11.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_project_spine_v013.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_provider_and_qualification.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_provider_criterion_v15.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_qualification_cli_lifecycle_v06.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_qualification_harness_v06.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_readme_pypi.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_real_provider_adapters.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_reference_workcell_ros_frames_v0125.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_reference_workcell_v012.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_report_test_contract_coverage_v16.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_report_test_lineage_v16.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_robot_platform_v08.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ros2_simulation.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ros_trajectory_v09.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_selective_verification_v14.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_setup_profile.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_sim_real_qualification_v011.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_simulation_platform_v08.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_smooth_motion_hotfix_v162.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_support_contact_hotfix_v161.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_tool_collision_v011.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_tool_scene_v0124.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_trajectory_action_probe_v0125.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_trajectory_qualification_v09.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_trajectory_tracking_v0125.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_twin_materialization_v10.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_twin_v08.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ur5e_adapter_scopes_v09.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ur5e_v10_adapter_scopes.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_interactive_v131.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_progress_v131.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_selective_v14.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_v15.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_v15_hotfix_inheritance.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_v052_stabilization.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_v08_catalog_mapping_regression.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_workpiece_attach_semantics_v183.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_workpiece_lifecycle_v011.py +0 -0
- {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_workpiece_scene_probe_v185.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.0
|
|
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.0
|
|
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.0
|
|
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
|
↓
|
|
@@ -448,6 +482,76 @@ The lifecycle receipt records the pre/post primitive type representation, canoni
|
|
|
448
482
|
|
|
449
483
|
Hosted CI qualifies the software/build/install contract. The ROS/Gazebo/MoveIt workstation still requires a fresh target acceptance run of the released 1.8.8 artifact before this specific workpiece path can be called physically qualified.
|
|
450
484
|
|
|
485
|
+
## v1.8.9 target-proven complete Pick–Transport–Place lifecycle
|
|
486
|
+
|
|
487
|
+
v1.8.9 completes and target-proves the qualified UR5e nominal `pick_transport_place` report path on the intended ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz workstation. The acceptance run completed `approach_pick → grasp → lift_departure → transfer_departure → transfer_place → release → retreat_home → verify` and returned `SELECTIVE PASSED` for `TEST-PERF-001`.
|
|
488
|
+
|
|
489
|
+
The release fixes the lifecycle by separating engineering authorities instead of weakening checks:
|
|
490
|
+
|
|
491
|
+
```text
|
|
492
|
+
OEM / ros2_control controller
|
|
493
|
+
→ owns its configured FollowJointTrajectory execution tolerance
|
|
494
|
+
|
|
495
|
+
DevAgent
|
|
496
|
+
→ independently records desired-vs-actual controller feedback
|
|
497
|
+
→ preserves the 0.03 rad commissioning tracking gate
|
|
498
|
+
→ verifies exact Twin/MoveIt scene semantics
|
|
499
|
+
→ verifies carried workpiece pose before release
|
|
500
|
+
→ verifies Gazebo post-release resting pose within 5 mm / 1°
|
|
501
|
+
→ synchronizes MoveIt to the actual Gazebo-released pose before retreat
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
The qualified place verifier now evaluates the same exact workpiece↔destination-support contact contract used by the planner instead of checking the place path against inconsistent global ACM semantics. Controller feedback cadence is diagnostic evidence rather than an invented minimum-rate execution contract.
|
|
505
|
+
|
|
506
|
+
Release is a measured two-authority handoff: while the carrier owns the object, the tool/grasp-derived carried pose is authoritative; after the carrier stops, Gazebo physics owns the released object and the Twin resting pose is the verification target. DevAgent records every settle sample in `release-settle-trace.json` and does not teleport the object into tolerance.
|
|
507
|
+
|
|
508
|
+
MoveIt DETACH is deterministic. DevAgent removes attachment ownership while the robot is stationary, explicitly ADD/overwrites the world collision object with exact verified geometry at the actual Gazebo-settled pose, then requires full scene readback and semantic verification before retreat is permitted. A stale implicit MoveIt detach pose remains a hard failure.
|
|
509
|
+
|
|
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.
|
|
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
|
+
|
|
451
555
|
## Qualified visual-execution scope
|
|
452
556
|
|
|
453
557
|
Measured report-test execution remains intentionally narrow:
|
|
@@ -455,7 +559,7 @@ Measured report-test execution remains intentionally narrow:
|
|
|
455
559
|
```text
|
|
456
560
|
robot: UR5e
|
|
457
561
|
operation: load
|
|
458
|
-
case scope:
|
|
562
|
+
case scope: qualified mapped physical report cases within the packaged authority
|
|
459
563
|
runtime: Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz
|
|
460
564
|
```
|
|
461
565
|
|
|
@@ -483,20 +587,22 @@ help
|
|
|
483
587
|
quit
|
|
484
588
|
```
|
|
485
589
|
|
|
486
|
-
Selectors can be requirement IDs, test IDs, or bounded groups:
|
|
590
|
+
Selectors can be customer-defined requirement IDs, customer-defined test IDs, or bounded groups:
|
|
487
591
|
|
|
488
592
|
```text
|
|
489
|
-
REQ-
|
|
490
|
-
|
|
593
|
+
CUSTOM-REQ-77
|
|
594
|
+
FAT-CUSTOM-947
|
|
491
595
|
failed
|
|
492
596
|
blocked
|
|
493
597
|
affected
|
|
494
598
|
all
|
|
495
599
|
```
|
|
496
600
|
|
|
497
|
-
`test SELECTOR` evaluates
|
|
601
|
+
`test SELECTOR` evaluates the selected criterion from existing qualified evidence without commanding the simulator.
|
|
602
|
+
|
|
603
|
+
`simulate TEST-X` executes or reuses only the physical case required by that report row.
|
|
498
604
|
|
|
499
|
-
`simulate
|
|
605
|
+
`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.
|
|
500
606
|
|
|
501
607
|
`replay` reconstructs persisted evidence identity; it never commands Gazebo, MoveIt, a robot, PLC, or safety PLC.
|
|
502
608
|
|
|
@@ -648,26 +754,41 @@ devagent-physical-ai optional provider-backed engineering front end
|
|
|
648
754
|
|
|
649
755
|
# Project status
|
|
650
756
|
|
|
651
|
-
**v1.
|
|
757
|
+
**v1.9.0 — Production/Stable software workflow; dynamic customer report verification with target-proven qualified UR5e physical baseline**
|
|
652
758
|
|
|
653
|
-
v1.
|
|
759
|
+
v1.9.0 adds data-driven report verification on top of the target-proven v1.8.9 physical runtime. Customer test IDs are opaque, report behavior is routed from declarative capability fields, arbitrary finite typed physical metrics can flow through evidence when a qualified adapter measures them, and report-wide simulation deduplicates physical cases so one qualified case measurement can satisfy multiple compatible KPIs without repeated robot motion.
|
|
760
|
+
|
|
761
|
+
The physical qualification claim itself remains grounded in the v1.8.9 target acceptance: the exact candidate completed the bounded UR5e nominal report lifecycle on the intended workstation with exact Twin readback, Pilz preflight, verified GRASP, scoped support contact, Gazebo carry, transfer/place, physical release/settle, explicit MoveIt detach/world reassert, retreat, and final verification.
|
|
654
762
|
|
|
655
763
|
Production-oriented software capabilities include:
|
|
656
764
|
|
|
657
765
|
```text
|
|
658
766
|
one-command customer intake
|
|
659
|
-
XLSX requirement normalization
|
|
767
|
+
XLSX/CSV/YAML/JSON requirement normalization
|
|
768
|
+
opaque customer-defined report test IDs
|
|
769
|
+
declarative verification mode / metric / comparator / target / evidence authority
|
|
770
|
+
generic finite numeric/boolean physical metrics with bounded validation
|
|
660
771
|
validated Requirement → Criterion mapping
|
|
661
772
|
optional provider-backed advisory criterion proposals
|
|
662
773
|
requirement-driven nominal / boundary / fault case generation
|
|
663
774
|
immutable project/Twin lineage
|
|
664
775
|
exact Requirement → Mapping → Verification Plan → Case provenance
|
|
776
|
+
case-centric qualified evidence reuse
|
|
777
|
+
report-wide physical-case deduplication
|
|
778
|
+
mixed deterministic + physical `simulate all` orchestration
|
|
779
|
+
truthful NOT_TESTED for unavailable/unsupported evidence
|
|
665
780
|
truthful robot support tiers
|
|
666
781
|
qualified UR5e report-test visual execution contract
|
|
667
782
|
direct UR5e controller-manager/action readiness binding
|
|
783
|
+
controller-native execution tolerance + independent DevAgent tracking evidence
|
|
668
784
|
canonical MoveIt workpiece lifecycle with world-integrity gate
|
|
669
785
|
semantic workpiece pose/geometry verification with persistent diagnostics
|
|
670
|
-
scoped destination-support place contact
|
|
786
|
+
scoped destination-support place contact with matching preexecution semantics
|
|
787
|
+
persistent ROS↔Gazebo workpiece carrier
|
|
788
|
+
separate carried-pose and released-resting-pose authorities
|
|
789
|
+
read-only Gazebo post-release settle verification at 5 mm / 1°
|
|
790
|
+
deterministic two-phase MoveIt detach/world reassert at measured Gazebo pose
|
|
791
|
+
release-settle trace evidence
|
|
671
792
|
experimental exact ABB IRB1200 Gazebo/MoveIt/RViz preview
|
|
672
793
|
industrial Pilz PTP / LIN planning
|
|
673
794
|
adaptive bounded blend selection
|
|
@@ -684,10 +805,13 @@ change impact + regression
|
|
|
684
805
|
provider-neutral optional AI front end
|
|
685
806
|
```
|
|
686
807
|
|
|
687
|
-
Production/Stable describes the bounded software workflow. It does not claim arbitrary customer cells are physically qualified, site-qualified, functionally safe, or authorized for autonomous real execution.
|
|
808
|
+
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.
|
|
688
809
|
|
|
689
810
|
## Documentation
|
|
690
811
|
|
|
812
|
+
v1.9.0 release notes:
|
|
813
|
+
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_0.md
|
|
814
|
+
|
|
691
815
|
One-command verification:
|
|
692
816
|
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ONE_COMMAND_VERIFY_V13.md
|
|
693
817
|
|
|
@@ -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.0
|
|
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.0
|
|
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
|
↓
|
|
@@ -407,6 +440,76 @@ The lifecycle receipt records the pre/post primitive type representation, canoni
|
|
|
407
440
|
|
|
408
441
|
Hosted CI qualifies the software/build/install contract. The ROS/Gazebo/MoveIt workstation still requires a fresh target acceptance run of the released 1.8.8 artifact before this specific workpiece path can be called physically qualified.
|
|
409
442
|
|
|
443
|
+
## v1.8.9 target-proven complete Pick–Transport–Place lifecycle
|
|
444
|
+
|
|
445
|
+
v1.8.9 completes and target-proves the qualified UR5e nominal `pick_transport_place` report path on the intended ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz workstation. The acceptance run completed `approach_pick → grasp → lift_departure → transfer_departure → transfer_place → release → retreat_home → verify` and returned `SELECTIVE PASSED` for `TEST-PERF-001`.
|
|
446
|
+
|
|
447
|
+
The release fixes the lifecycle by separating engineering authorities instead of weakening checks:
|
|
448
|
+
|
|
449
|
+
```text
|
|
450
|
+
OEM / ros2_control controller
|
|
451
|
+
→ owns its configured FollowJointTrajectory execution tolerance
|
|
452
|
+
|
|
453
|
+
DevAgent
|
|
454
|
+
→ independently records desired-vs-actual controller feedback
|
|
455
|
+
→ preserves the 0.03 rad commissioning tracking gate
|
|
456
|
+
→ verifies exact Twin/MoveIt scene semantics
|
|
457
|
+
→ verifies carried workpiece pose before release
|
|
458
|
+
→ verifies Gazebo post-release resting pose within 5 mm / 1°
|
|
459
|
+
→ synchronizes MoveIt to the actual Gazebo-released pose before retreat
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
The qualified place verifier now evaluates the same exact workpiece↔destination-support contact contract used by the planner instead of checking the place path against inconsistent global ACM semantics. Controller feedback cadence is diagnostic evidence rather than an invented minimum-rate execution contract.
|
|
463
|
+
|
|
464
|
+
Release is a measured two-authority handoff: while the carrier owns the object, the tool/grasp-derived carried pose is authoritative; after the carrier stops, Gazebo physics owns the released object and the Twin resting pose is the verification target. DevAgent records every settle sample in `release-settle-trace.json` and does not teleport the object into tolerance.
|
|
465
|
+
|
|
466
|
+
MoveIt DETACH is deterministic. DevAgent removes attachment ownership while the robot is stationary, explicitly ADD/overwrites the world collision object with exact verified geometry at the actual Gazebo-settled pose, then requires full scene readback and semantic verification before retreat is permitted. A stale implicit MoveIt detach pose remains a hard failure.
|
|
467
|
+
|
|
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.
|
|
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
|
+
|
|
410
513
|
## Qualified visual-execution scope
|
|
411
514
|
|
|
412
515
|
Measured report-test execution remains intentionally narrow:
|
|
@@ -414,7 +517,7 @@ Measured report-test execution remains intentionally narrow:
|
|
|
414
517
|
```text
|
|
415
518
|
robot: UR5e
|
|
416
519
|
operation: load
|
|
417
|
-
case scope:
|
|
520
|
+
case scope: qualified mapped physical report cases within the packaged authority
|
|
418
521
|
runtime: Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz
|
|
419
522
|
```
|
|
420
523
|
|
|
@@ -442,20 +545,22 @@ help
|
|
|
442
545
|
quit
|
|
443
546
|
```
|
|
444
547
|
|
|
445
|
-
Selectors can be requirement IDs, test IDs, or bounded groups:
|
|
548
|
+
Selectors can be customer-defined requirement IDs, customer-defined test IDs, or bounded groups:
|
|
446
549
|
|
|
447
550
|
```text
|
|
448
|
-
REQ-
|
|
449
|
-
|
|
551
|
+
CUSTOM-REQ-77
|
|
552
|
+
FAT-CUSTOM-947
|
|
450
553
|
failed
|
|
451
554
|
blocked
|
|
452
555
|
affected
|
|
453
556
|
all
|
|
454
557
|
```
|
|
455
558
|
|
|
456
|
-
`test SELECTOR` evaluates
|
|
559
|
+
`test SELECTOR` evaluates the selected criterion from existing qualified evidence without commanding the simulator.
|
|
560
|
+
|
|
561
|
+
`simulate TEST-X` executes or reuses only the physical case required by that report row.
|
|
457
562
|
|
|
458
|
-
`simulate
|
|
563
|
+
`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.
|
|
459
564
|
|
|
460
565
|
`replay` reconstructs persisted evidence identity; it never commands Gazebo, MoveIt, a robot, PLC, or safety PLC.
|
|
461
566
|
|
|
@@ -607,26 +712,41 @@ devagent-physical-ai optional provider-backed engineering front end
|
|
|
607
712
|
|
|
608
713
|
# Project status
|
|
609
714
|
|
|
610
|
-
**v1.
|
|
715
|
+
**v1.9.0 — Production/Stable software workflow; dynamic customer report verification with target-proven qualified UR5e physical baseline**
|
|
611
716
|
|
|
612
|
-
v1.
|
|
717
|
+
v1.9.0 adds data-driven report verification on top of the target-proven v1.8.9 physical runtime. Customer test IDs are opaque, report behavior is routed from declarative capability fields, arbitrary finite typed physical metrics can flow through evidence when a qualified adapter measures them, and report-wide simulation deduplicates physical cases so one qualified case measurement can satisfy multiple compatible KPIs without repeated robot motion.
|
|
718
|
+
|
|
719
|
+
The physical qualification claim itself remains grounded in the v1.8.9 target acceptance: the exact candidate completed the bounded UR5e nominal report lifecycle on the intended workstation with exact Twin readback, Pilz preflight, verified GRASP, scoped support contact, Gazebo carry, transfer/place, physical release/settle, explicit MoveIt detach/world reassert, retreat, and final verification.
|
|
613
720
|
|
|
614
721
|
Production-oriented software capabilities include:
|
|
615
722
|
|
|
616
723
|
```text
|
|
617
724
|
one-command customer intake
|
|
618
|
-
XLSX requirement normalization
|
|
725
|
+
XLSX/CSV/YAML/JSON requirement normalization
|
|
726
|
+
opaque customer-defined report test IDs
|
|
727
|
+
declarative verification mode / metric / comparator / target / evidence authority
|
|
728
|
+
generic finite numeric/boolean physical metrics with bounded validation
|
|
619
729
|
validated Requirement → Criterion mapping
|
|
620
730
|
optional provider-backed advisory criterion proposals
|
|
621
731
|
requirement-driven nominal / boundary / fault case generation
|
|
622
732
|
immutable project/Twin lineage
|
|
623
733
|
exact Requirement → Mapping → Verification Plan → Case provenance
|
|
734
|
+
case-centric qualified evidence reuse
|
|
735
|
+
report-wide physical-case deduplication
|
|
736
|
+
mixed deterministic + physical `simulate all` orchestration
|
|
737
|
+
truthful NOT_TESTED for unavailable/unsupported evidence
|
|
624
738
|
truthful robot support tiers
|
|
625
739
|
qualified UR5e report-test visual execution contract
|
|
626
740
|
direct UR5e controller-manager/action readiness binding
|
|
741
|
+
controller-native execution tolerance + independent DevAgent tracking evidence
|
|
627
742
|
canonical MoveIt workpiece lifecycle with world-integrity gate
|
|
628
743
|
semantic workpiece pose/geometry verification with persistent diagnostics
|
|
629
|
-
scoped destination-support place contact
|
|
744
|
+
scoped destination-support place contact with matching preexecution semantics
|
|
745
|
+
persistent ROS↔Gazebo workpiece carrier
|
|
746
|
+
separate carried-pose and released-resting-pose authorities
|
|
747
|
+
read-only Gazebo post-release settle verification at 5 mm / 1°
|
|
748
|
+
deterministic two-phase MoveIt detach/world reassert at measured Gazebo pose
|
|
749
|
+
release-settle trace evidence
|
|
630
750
|
experimental exact ABB IRB1200 Gazebo/MoveIt/RViz preview
|
|
631
751
|
industrial Pilz PTP / LIN planning
|
|
632
752
|
adaptive bounded blend selection
|
|
@@ -643,10 +763,13 @@ change impact + regression
|
|
|
643
763
|
provider-neutral optional AI front end
|
|
644
764
|
```
|
|
645
765
|
|
|
646
|
-
Production/Stable describes the bounded software workflow. It does not claim arbitrary customer cells are physically qualified, site-qualified, functionally safe, or authorized for autonomous real execution.
|
|
766
|
+
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.
|
|
647
767
|
|
|
648
768
|
## Documentation
|
|
649
769
|
|
|
770
|
+
v1.9.0 release notes:
|
|
771
|
+
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_0.md
|
|
772
|
+
|
|
650
773
|
One-command verification:
|
|
651
774
|
https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ONE_COMMAND_VERIFY_V13.md
|
|
652
775
|
|
|
@@ -679,4 +802,4 @@ Original creator: Tom Ha
|
|
|
679
802
|
Original project: https://github.com/tomha85/devagent-physical-engine
|
|
680
803
|
All rights reserved.
|
|
681
804
|
|
|
682
|
-
See repository `LICENSE`, `NOTICE`, and `COPYRIGHT` for complete ownership and usage terms.
|
|
805
|
+
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.0"
|
|
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,6 +45,7 @@ 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
51
|
devagent = "devagent_physical_engine.user_cli_v18:main"
|
|
@@ -68,6 +69,7 @@ omit = [
|
|
|
68
69
|
"src/devagent_physical_engine/ros2/workpiece_scene_probe_v186.py",
|
|
69
70
|
"src/devagent_physical_engine/ros2/workpiece_scene_probe_v187.py",
|
|
70
71
|
"src/devagent_physical_engine/ros2/workpiece_scene_probe_v188.py",
|
|
72
|
+
"src/devagent_physical_engine/ros2/workpiece_scene_probe_v189.py",
|
|
71
73
|
"src/devagent_physical_engine/ros2/qualification*.py",
|
|
72
74
|
"src/devagent_physical_engine/ros2/joint_state_recorder.py",
|
|
73
75
|
"src/devagent_physical_engine/ros2/ur5e_adapter.py",
|