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.
Files changed (299) hide show
  1. {devagent_physical_engine-1.8.8/src/devagent_physical_engine.egg-info → devagent_physical_engine-1.9.0}/PKG-INFO +146 -22
  2. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/README.md +144 -21
  3. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/pyproject.toml +4 -2
  4. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/__init__.py +1 -1
  5. devagent_physical_engine-1.9.0/src/devagent_physical_engine/dynamic_verification_runtime_v190.py +242 -0
  6. devagent_physical_engine-1.9.0/src/devagent_physical_engine/industrial_motion_hotfix_v170.py +102 -0
  7. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/industrial_motion_v182.py +26 -4
  8. devagent_physical_engine-1.9.0/src/devagent_physical_engine/one_command_v16.py +147 -0
  9. devagent_physical_engine-1.9.0/src/devagent_physical_engine/physical_evidence_v190.py +138 -0
  10. devagent_physical_engine-1.9.0/src/devagent_physical_engine/report_requirements_v190.py +279 -0
  11. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/report_test_execution.py +26 -10
  12. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/report_test_execution_strict.py +12 -19
  13. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/doctor.py +2 -0
  14. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/gazebo_pose.py +169 -0
  15. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/preexecution.py +171 -39
  16. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/report_test_visualization_v170.py +262 -35
  17. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/ros_gz_pose_service_probe.py +42 -0
  18. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/state_validity_probe.py +76 -8
  19. {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
  20. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/support_contact_acm_semantics_v189.py +195 -0
  21. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/task_adapter.py +381 -0
  22. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/task_adapter_v190.py +166 -0
  23. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/task_motion_diagnostics_v190.py +22 -0
  24. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/trajectory.py +25 -1
  25. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/trajectory_action_probe.py +83 -23
  26. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/trajectory_feedback_tracking_v189.py +174 -0
  27. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/trajectory_runtime_v190.py +78 -0
  28. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/workpiece_carrier_v190.py +330 -0
  29. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/workpiece_entity_replace_probe_v190.py +149 -0
  30. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_follow.py +71 -26
  31. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_gazebo_follower.py +110 -109
  32. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene.py +153 -26
  33. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/workpiece_scene_probe_v189.py +371 -0
  34. devagent_physical_engine-1.9.0/src/devagent_physical_engine/ros2/workpiece_transport.py +143 -0
  35. devagent_physical_engine-1.9.0/src/devagent_physical_engine/selective_verification_v16.py +562 -0
  36. devagent_physical_engine-1.9.0/src/devagent_physical_engine/selective_verification_v190.py +835 -0
  37. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/setup_profile.py +5 -5
  38. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/user_cli_v16.py +97 -47
  39. devagent_physical_engine-1.9.0/src/devagent_physical_engine/verification_capabilities_v190.py +348 -0
  40. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0/src/devagent_physical_engine.egg-info}/PKG-INFO +146 -22
  41. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/SOURCES.txt +37 -1
  42. devagent_physical_engine-1.9.0/tests/test_controller_failure_diagnostics_v190.py +101 -0
  43. devagent_physical_engine-1.9.0/tests/test_dynamic_report_batch_v190.py +92 -0
  44. devagent_physical_engine-1.9.0/tests/test_dynamic_report_contract_end_to_end_v190.py +210 -0
  45. devagent_physical_engine-1.9.0/tests/test_dynamic_verification_capabilities_v190.py +111 -0
  46. devagent_physical_engine-1.9.0/tests/test_explicit_detach_world_reassert_v189.py +113 -0
  47. devagent_physical_engine-1.9.0/tests/test_handoff_authority_v190.py +88 -0
  48. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_industrial_motion_v170.py +2 -21
  49. devagent_physical_engine-1.9.0/tests/test_joint_state_metric_authority_v190.py +106 -0
  50. devagent_physical_engine-1.9.0/tests/test_loaded_place_stability_v190.py +44 -0
  51. devagent_physical_engine-1.9.0/tests/test_metric_authority_surface_v190.py +131 -0
  52. devagent_physical_engine-1.9.0/tests/test_motion_handoff_stability_v190.py +138 -0
  53. devagent_physical_engine-1.9.0/tests/test_one_command_v190_injection.py +41 -0
  54. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_package_metadata_v184.py +2 -2
  55. devagent_physical_engine-1.9.0/tests/test_place_preexecution_acm_v189.py +228 -0
  56. devagent_physical_engine-1.9.0/tests/test_release_resting_pose_v189.py +143 -0
  57. devagent_physical_engine-1.9.0/tests/test_release_transaction_v189.py +68 -0
  58. devagent_physical_engine-1.9.0/tests/test_report_orchestration_v190.py +373 -0
  59. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_report_test_visual_execution_v16.py +96 -0
  60. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ros2_production_receipts_v011.py +14 -1
  61. devagent_physical_engine-1.9.0/tests/test_support_contact_acm_semantics_v189.py +138 -0
  62. devagent_physical_engine-1.9.0/tests/test_trajectory_action_contract_v189.py +80 -0
  63. devagent_physical_engine-1.9.0/tests/test_trajectory_feedback_tracking_v189.py +222 -0
  64. devagent_physical_engine-1.9.0/tests/test_transfer_controller_policy_v189.py +83 -0
  65. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_transfer_place_diagnostic_v172.py +2 -2
  66. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_report_visual_v16.py +67 -14
  67. devagent_physical_engine-1.9.0/tests/test_workpiece_carrier_v190.py +92 -0
  68. devagent_physical_engine-1.9.0/tests/test_workpiece_semantic_lifecycle_v186.py +469 -0
  69. devagent_physical_engine-1.9.0/tests/test_workpiece_transport_v189.py +195 -0
  70. devagent_physical_engine-1.8.8/src/devagent_physical_engine/industrial_motion_hotfix_v170.py +0 -64
  71. devagent_physical_engine-1.8.8/src/devagent_physical_engine/one_command_v16.py +0 -97
  72. devagent_physical_engine-1.8.8/src/devagent_physical_engine/ros2/gazebo_pose.py +0 -104
  73. devagent_physical_engine-1.8.8/src/devagent_physical_engine/ros2/task_adapter.py +0 -160
  74. devagent_physical_engine-1.8.8/src/devagent_physical_engine/selective_verification_v16.py +0 -128
  75. devagent_physical_engine-1.8.8/tests/test_workpiece_semantic_lifecycle_v186.py +0 -220
  76. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/NOTICE +0 -0
  77. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/setup.cfg +0 -0
  78. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/__init__.py +0 -0
  79. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/compiler.py +0 -0
  80. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/contracts.py +0 -0
  81. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/coordinator.py +0 -0
  82. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/critic.py +0 -0
  83. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/evidence.py +0 -0
  84. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/interpreter.py +0 -0
  85. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/planner.py +0 -0
  86. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/recovery.py +0 -0
  87. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/routing.py +0 -0
  88. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/runtime.py +0 -0
  89. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/semantic.py +0 -0
  90. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/agent/structured.py +0 -0
  91. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ai_cli.py +0 -0
  92. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/cli.py +0 -0
  93. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial.py +0 -0
  94. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_campaign.py +0 -0
  95. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_cli.py +0 -0
  96. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_importer.py +0 -0
  97. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_intelligence.py +0 -0
  98. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_readiness.py +0 -0
  99. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/commercial_repository.py +0 -0
  100. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/continuous_clearance.py +0 -0
  101. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/controller_runtime_hotfix_v181.py +0 -0
  102. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/doctor.py +0 -0
  103. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/engineering_agent.py +0 -0
  104. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/engineering_request.py +0 -0
  105. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/evidence_replay.py +0 -0
  106. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/evidence_trust.py +0 -0
  107. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/execution.py +0 -0
  108. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/industrial_motion_v170.py +0 -0
  109. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/models.py +0 -0
  110. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/one_command.py +0 -0
  111. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/one_command_runtime.py +0 -0
  112. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/one_command_v15.py +0 -0
  113. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/operating_envelope.py +0 -0
  114. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/__init__.py +0 -0
  115. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/benchmark.py +0 -0
  116. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/candidates.py +0 -0
  117. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/contracts.py +0 -0
  118. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/evaluator.py +0 -0
  119. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/evidence.py +0 -0
  120. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/experience.py +0 -0
  121. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/measured.py +0 -0
  122. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/optimizer.py +0 -0
  123. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/optimization/orchestrator.py +0 -0
  124. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/physical_campaign.py +0 -0
  125. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/physical_evidence.py +0 -0
  126. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/physical_motion.py +0 -0
  127. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/planning.py +0 -0
  128. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/pose_math.py +0 -0
  129. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/preexecution_contract.py +0 -0
  130. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/production_authority.py +0 -0
  131. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/production_grade.py +0 -0
  132. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/project.py +0 -0
  133. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/__init__.py +0 -0
  134. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/anthropic.py +0 -0
  135. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/common.py +0 -0
  136. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/factory.py +0 -0
  137. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/gemini.py +0 -0
  138. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_adapters/openai.py +0 -0
  139. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_criterion.py +0 -0
  140. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/provider_qualification.py +0 -0
  141. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/providers.py +0 -0
  142. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/qualification.py +0 -0
  143. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/qualification_cli.py +0 -0
  144. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/qualification_harness.py +0 -0
  145. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/reference_workcell.py +0 -0
  146. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/robot_platform.py +0 -0
  147. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/robot_support_v18.py +0 -0
  148. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/robots.py +0 -0
  149. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/__init__.py +0 -0
  150. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/abb_irb1200.py +0 -0
  151. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/abb_irb1200_preview.py +0 -0
  152. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/acceptance.py +0 -0
  153. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/commands.py +0 -0
  154. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/continuous_clearance_probe.py +0 -0
  155. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/controller_action_probe.py +0 -0
  156. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/destination_support_contact_v182.py +0 -0
  157. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/fk_pose.py +0 -0
  158. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/fk_probe.py +0 -0
  159. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/frame_alignment.py +0 -0
  160. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/gazebo_cli.py +0 -0
  161. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/gazebo_world.py +0 -0
  162. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v170.py +0 -0
  163. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v171.py +0 -0
  164. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v172.py +0 -0
  165. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v182.py +0 -0
  166. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/joint_state_probe.py +0 -0
  167. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/joint_state_recorder.py +0 -0
  168. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/measured_motion.py +0 -0
  169. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/moveit_joint_plan_probe.py +0 -0
  170. {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
  171. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/moveit_scene.py +0 -0
  172. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/moveit_task_planner.py +0 -0
  173. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe.py +0 -0
  174. {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
  175. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/qualification.py +0 -0
  176. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/qualification_v10.py +0 -0
  177. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/qualification_v11.py +0 -0
  178. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/qualification_v12.py +0 -0
  179. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/report_test_visualization.py +0 -0
  180. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/scene_probe.py +0 -0
  181. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/support_contact_lease_v170.py +0 -0
  182. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/support_contact_runner_v161.py +0 -0
  183. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/support_contact_v161.py +0 -0
  184. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/task_visualization.py +0 -0
  185. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/tf_probe.py +0 -0
  186. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/tool_scene.py +0 -0
  187. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/tool_scene_probe.py +0 -0
  188. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/trajectory_tracking.py +0 -0
  189. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/ur5e.py +0 -0
  190. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/ur5e_adapter.py +0 -0
  191. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/ur5e_v10_adapter.py +0 -0
  192. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe.py +0 -0
  193. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v186.py +0 -0
  194. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v187.py +0 -0
  195. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v188.py +0 -0
  196. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/selective_verification.py +0 -0
  197. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/sim_real_qualification.py +0 -0
  198. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/simulation.py +0 -0
  199. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/simulation_platform.py +0 -0
  200. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/smooth_motion_hotfix_v162.py +0 -0
  201. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/support_contact_hotfix_v161.py +0 -0
  202. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/tool_collision.py +0 -0
  203. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/trajectory_qualification.py +0 -0
  204. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/twin.py +0 -0
  205. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/twin_builder.py +0 -0
  206. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/twin_codec.py +0 -0
  207. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/twin_materialization.py +0 -0
  208. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/user_cli.py +0 -0
  209. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/user_cli_v15.py +0 -0
  210. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/user_cli_v18.py +0 -0
  211. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/verification.py +0 -0
  212. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine/workpiece_lifecycle.py +0 -0
  213. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/dependency_links.txt +0 -0
  214. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/entry_points.txt +0 -0
  215. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/requires.txt +0 -0
  216. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/src/devagent_physical_engine.egg-info/top_level.txt +0 -0
  217. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_abb_irb1200_visual_v18.py +0 -0
  218. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_agent_core.py +0 -0
  219. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_agent_semantic_hardening.py +0 -0
  220. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ai_cli.py +0 -0
  221. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ai_cli_v07.py +0 -0
  222. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_commercial_importer_v1.py +0 -0
  223. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_commercial_intelligence_v15.py +0 -0
  224. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_commercial_readiness_v1.py +0 -0
  225. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_commercial_v1.py +0 -0
  226. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_continuous_clearance_v011.py +0 -0
  227. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_controller_runtime_hotfix_v181.py +0 -0
  228. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_core.py +0 -0
  229. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_destination_support_contact_v182.py +0 -0
  230. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_engineering_request_v07.py +0 -0
  231. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_replay_v12.py +0 -0
  232. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_trust_coverage_v12.py +0 -0
  233. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_trust_transport_v12.py +0 -0
  234. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_trust_v12.py +0 -0
  235. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_evidence_viewer_palette_v130.py +0 -0
  236. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_gazebo_cli_v0122.py +0 -0
  237. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_golden_abb_runner_v171.py +0 -0
  238. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_golden_abb_showcase.py +0 -0
  239. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_interpreter_profiles_v08.py +0 -0
  240. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_joint_state_probe_v0125.py +0 -0
  241. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_live_provider_qualification.py +0 -0
  242. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_measured_motion_v10.py +0 -0
  243. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_moveit_planning_diagnostics_v0125.py +0 -0
  244. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_moveit_scene_v0123.py +0 -0
  245. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_natural_language_agent_v07.py +0 -0
  246. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_one_command_hardening_v13.py +0 -0
  247. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_one_command_pose_hardening_v15.py +0 -0
  248. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_one_command_regression_v141.py +0 -0
  249. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_one_command_v13.py +0 -0
  250. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_openai_strict_schema_v0113.py +0 -0
  251. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_optimization_v05.py +0 -0
  252. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_physical_campaign_v09.py +0 -0
  253. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_physical_evidence_v09.py +0 -0
  254. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_physical_motion_v09.py +0 -0
  255. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_planning_fallback_v012.py +0 -0
  256. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_pose_math_v0125.py +0 -0
  257. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_preexecution_contract_v10.py +0 -0
  258. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_production_authority_v11.py +0 -0
  259. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_production_grade_coverage_v11.py +0 -0
  260. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_production_grade_v11.py +0 -0
  261. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_project_spine_v013.py +0 -0
  262. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_provider_and_qualification.py +0 -0
  263. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_provider_criterion_v15.py +0 -0
  264. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_qualification_cli_lifecycle_v06.py +0 -0
  265. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_qualification_harness_v06.py +0 -0
  266. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_readme_pypi.py +0 -0
  267. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_real_provider_adapters.py +0 -0
  268. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_reference_workcell_ros_frames_v0125.py +0 -0
  269. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_reference_workcell_v012.py +0 -0
  270. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_report_test_contract_coverage_v16.py +0 -0
  271. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_report_test_lineage_v16.py +0 -0
  272. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_robot_platform_v08.py +0 -0
  273. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ros2_simulation.py +0 -0
  274. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ros_trajectory_v09.py +0 -0
  275. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_selective_verification_v14.py +0 -0
  276. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_setup_profile.py +0 -0
  277. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_sim_real_qualification_v011.py +0 -0
  278. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_simulation_platform_v08.py +0 -0
  279. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_smooth_motion_hotfix_v162.py +0 -0
  280. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_support_contact_hotfix_v161.py +0 -0
  281. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_tool_collision_v011.py +0 -0
  282. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_tool_scene_v0124.py +0 -0
  283. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_trajectory_action_probe_v0125.py +0 -0
  284. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_trajectory_qualification_v09.py +0 -0
  285. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_trajectory_tracking_v0125.py +0 -0
  286. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_twin_materialization_v10.py +0 -0
  287. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_twin_v08.py +0 -0
  288. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ur5e_adapter_scopes_v09.py +0 -0
  289. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_ur5e_v10_adapter_scopes.py +0 -0
  290. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_interactive_v131.py +0 -0
  291. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_progress_v131.py +0 -0
  292. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_selective_v14.py +0 -0
  293. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_v15.py +0 -0
  294. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_user_cli_v15_hotfix_inheritance.py +0 -0
  295. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_v052_stabilization.py +0 -0
  296. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_v08_catalog_mapping_regression.py +0 -0
  297. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_workpiece_attach_semantics_v183.py +0 -0
  298. {devagent_physical_engine-1.8.8 → devagent_physical_engine-1.9.0}/tests/test_workpiece_lifecycle_v011.py +0 -0
  299. {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.8.8
4
- Summary: Verification-first robotics commissioning runtime with exact-Twin evidence, qualified UR5e Gazebo/MoveIt report execution, truthful robot support tiers, selective verification, replay, regression, and FAT reporting.
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
  [![PyPI](https://img.shields.io/pypi/v/devagent-physical-engine.svg)](https://pypi.org/project/devagent-physical-engine/)
45
46
  [![Python](https://img.shields.io/pypi/pyversions/devagent-physical-engine.svg)](https://pypi.org/project/devagent-physical-engine/)
46
47
  [![Status: Production/Stable](https://img.shields.io/badge/status-production%2Fstable-blue.svg)](#project-status)
48
+ [![Sponsor DevAgent Physical Engine](https://img.shields.io/badge/Sponsor-DevAgent%20Physical%20Engine-EA4AAA?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/tomha85)
47
49
 
48
50
  **Verification-first commissioning engineering for robotics and industrial automation.**
49
51
 
50
- DevAgent turns a customer engineering folder into a bounded verification workflow with immutable Digital Twin lineage, deterministic requirement verdicts, requirement-driven test cases, exact-Twin measured simulation evidence, regression analysis, FAT reporting, replay inspection, and selective retesting.
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
- validated Requirement Criterion mapping
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
- qualified exact-Twin simulation when supported
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.8.8
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.8.8
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 criterion
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: one nominal mapped physical report case
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-PERF-001
490
- TEST-PERF-001
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 deterministic/evidence checks without commanding the simulator.
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 TEST-X` requests qualified execution of the selected mapped physical report case.
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.8.8 — Production/Stable software workflow**
757
+ **v1.9.0 — Production/Stable software workflow; dynamic customer report verification with target-proven qualified UR5e physical baseline**
652
758
 
653
- v1.8.8 retains the v1.8.6 semantic lifecycle and the target-candidate improvements layered after it, while making the package/version identity explicit. The current GRASP path adds ROS-octet-safe diagnostics and a synchronous canonical-world reassert/readback gate before attachment. This release is intended to make the next workstation qualification run reproducible and attributable to one exact installable artifact.
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
  [![PyPI](https://img.shields.io/pypi/v/devagent-physical-engine.svg)](https://pypi.org/project/devagent-physical-engine/)
4
4
  [![Python](https://img.shields.io/pypi/pyversions/devagent-physical-engine.svg)](https://pypi.org/project/devagent-physical-engine/)
5
5
  [![Status: Production/Stable](https://img.shields.io/badge/status-production%2Fstable-blue.svg)](#project-status)
6
+ [![Sponsor DevAgent Physical Engine](https://img.shields.io/badge/Sponsor-DevAgent%20Physical%20Engine-EA4AAA?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/tomha85)
6
7
 
7
8
  **Verification-first commissioning engineering for robotics and industrial automation.**
8
9
 
9
- DevAgent turns a customer engineering folder into a bounded verification workflow with immutable Digital Twin lineage, deterministic requirement verdicts, requirement-driven test cases, exact-Twin measured simulation evidence, regression analysis, FAT reporting, replay inspection, and selective retesting.
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
- validated Requirement Criterion mapping
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
- qualified exact-Twin simulation when supported
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.8.8
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.8.8
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 criterion
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: one nominal mapped physical report case
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-PERF-001
449
- TEST-PERF-001
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 deterministic/evidence checks without commanding the simulator.
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 TEST-X` requests qualified execution of the selected mapped physical report case.
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.8.8 — Production/Stable software workflow**
715
+ **v1.9.0 — Production/Stable software workflow; dynamic customer report verification with target-proven qualified UR5e physical baseline**
611
716
 
612
- v1.8.8 retains the v1.8.6 semantic lifecycle and the target-candidate improvements layered after it, while making the package/version identity explicit. The current GRASP path adds ROS-octet-safe diagnostics and a synchronous canonical-world reassert/readback gate before attachment. This release is intended to make the next workstation qualification run reproducible and attributable to one exact installable artifact.
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.8"
8
- description = "Verification-first robotics commissioning runtime with exact-Twin evidence, qualified UR5e Gazebo/MoveIt report execution, truthful robot support tiers, selective verification, replay, regression, and FAT reporting."
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",
@@ -219,4 +219,4 @@ install_industrial_motion_v170()
219
219
  install_controller_runtime_hotfix_v181()
220
220
  install_one_command_runtime()
221
221
 
222
- __version__ = "1.8.8"
222
+ __version__ = "1.9.0"