devagent-physical-engine 1.8.9__tar.gz → 1.9.1__tar.gz

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