devagent-physical-engine 1.7.0__tar.gz → 1.7.2__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 (241) hide show
  1. devagent_physical_engine-1.7.2/PKG-INFO +584 -0
  2. devagent_physical_engine-1.7.2/README.md +543 -0
  3. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/pyproject.toml +4 -2
  4. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/__init__.py +1 -1
  5. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/industrial_motion_hotfix_v170.py +12 -5
  6. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/industrial_motion_v170.py +45 -2
  7. devagent_physical_engine-1.7.2/src/devagent_physical_engine/one_command_v16.py +89 -0
  8. devagent_physical_engine-1.7.2/src/devagent_physical_engine/ros2/industrial_sequence_planner_v171.py +112 -0
  9. devagent_physical_engine-1.7.2/src/devagent_physical_engine/ros2/industrial_sequence_planner_v172.py +239 -0
  10. devagent_physical_engine-1.7.2/src/devagent_physical_engine.egg-info/PKG-INFO +584 -0
  11. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine.egg-info/SOURCES.txt +4 -0
  12. devagent_physical_engine-1.7.2/tests/test_golden_abb_runner_v171.py +44 -0
  13. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_golden_abb_showcase.py +1 -4
  14. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_industrial_motion_v170.py +55 -4
  15. devagent_physical_engine-1.7.2/tests/test_transfer_place_diagnostic_v172.py +162 -0
  16. devagent_physical_engine-1.7.0/PKG-INFO +0 -670
  17. devagent_physical_engine-1.7.0/README.md +0 -629
  18. devagent_physical_engine-1.7.0/src/devagent_physical_engine/one_command_v16.py +0 -28
  19. devagent_physical_engine-1.7.0/src/devagent_physical_engine.egg-info/PKG-INFO +0 -670
  20. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/NOTICE +0 -0
  21. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/setup.cfg +0 -0
  22. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/__init__.py +0 -0
  23. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/compiler.py +0 -0
  24. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/contracts.py +0 -0
  25. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/coordinator.py +0 -0
  26. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/critic.py +0 -0
  27. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/evidence.py +0 -0
  28. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/interpreter.py +0 -0
  29. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/planner.py +0 -0
  30. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/recovery.py +0 -0
  31. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/routing.py +0 -0
  32. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/runtime.py +0 -0
  33. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/semantic.py +0 -0
  34. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/agent/structured.py +0 -0
  35. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ai_cli.py +0 -0
  36. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/cli.py +0 -0
  37. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/commercial.py +0 -0
  38. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/commercial_campaign.py +0 -0
  39. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/commercial_cli.py +0 -0
  40. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/commercial_importer.py +0 -0
  41. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/commercial_intelligence.py +0 -0
  42. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/commercial_readiness.py +0 -0
  43. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/commercial_repository.py +0 -0
  44. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/continuous_clearance.py +0 -0
  45. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/doctor.py +0 -0
  46. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/engineering_agent.py +0 -0
  47. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/engineering_request.py +0 -0
  48. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/evidence_replay.py +0 -0
  49. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/evidence_trust.py +0 -0
  50. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/execution.py +0 -0
  51. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/models.py +0 -0
  52. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/one_command.py +0 -0
  53. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/one_command_runtime.py +0 -0
  54. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/one_command_v15.py +0 -0
  55. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/operating_envelope.py +0 -0
  56. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/__init__.py +0 -0
  57. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/benchmark.py +0 -0
  58. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/candidates.py +0 -0
  59. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/contracts.py +0 -0
  60. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/evaluator.py +0 -0
  61. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/evidence.py +0 -0
  62. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/experience.py +0 -0
  63. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/measured.py +0 -0
  64. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/optimizer.py +0 -0
  65. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/optimization/orchestrator.py +0 -0
  66. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/physical_campaign.py +0 -0
  67. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/physical_evidence.py +0 -0
  68. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/physical_motion.py +0 -0
  69. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/planning.py +0 -0
  70. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/pose_math.py +0 -0
  71. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/preexecution_contract.py +0 -0
  72. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/production_authority.py +0 -0
  73. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/production_grade.py +0 -0
  74. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/project.py +0 -0
  75. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/provider_adapters/__init__.py +0 -0
  76. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/provider_adapters/anthropic.py +0 -0
  77. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/provider_adapters/common.py +0 -0
  78. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/provider_adapters/factory.py +0 -0
  79. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/provider_adapters/gemini.py +0 -0
  80. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/provider_adapters/openai.py +0 -0
  81. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/provider_criterion.py +0 -0
  82. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/provider_qualification.py +0 -0
  83. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/providers.py +0 -0
  84. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/qualification.py +0 -0
  85. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/qualification_cli.py +0 -0
  86. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/qualification_harness.py +0 -0
  87. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/reference_workcell.py +0 -0
  88. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/report_test_execution.py +0 -0
  89. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/report_test_execution_strict.py +0 -0
  90. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/robot_platform.py +0 -0
  91. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/robots.py +0 -0
  92. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/__init__.py +0 -0
  93. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/acceptance.py +0 -0
  94. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/commands.py +0 -0
  95. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/continuous_clearance_probe.py +0 -0
  96. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/doctor.py +0 -0
  97. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/fk_pose.py +0 -0
  98. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/fk_probe.py +0 -0
  99. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/frame_alignment.py +0 -0
  100. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/gazebo_cli.py +0 -0
  101. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/gazebo_pose.py +0 -0
  102. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/gazebo_world.py +0 -0
  103. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v170.py +0 -0
  104. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/joint_state_probe.py +0 -0
  105. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/joint_state_recorder.py +0 -0
  106. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/measured_motion.py +0 -0
  107. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/moveit_joint_plan_probe.py +0 -0
  108. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/moveit_joint_plan_v161_probe.py +0 -0
  109. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/moveit_scene.py +0 -0
  110. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/moveit_task_planner.py +0 -0
  111. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe.py +0 -0
  112. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/preexecution.py +0 -0
  113. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/qualification.py +0 -0
  114. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/qualification_v10.py +0 -0
  115. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/qualification_v11.py +0 -0
  116. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/qualification_v12.py +0 -0
  117. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/report_test_visualization.py +0 -0
  118. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/report_test_visualization_v170.py +0 -0
  119. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/scene_probe.py +0 -0
  120. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/state_validity_probe.py +0 -0
  121. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/support_contact_acm_probe_v170.py +0 -0
  122. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/support_contact_lease_v170.py +0 -0
  123. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/support_contact_runner_v161.py +0 -0
  124. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/support_contact_v161.py +0 -0
  125. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/task_adapter.py +0 -0
  126. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/task_visualization.py +0 -0
  127. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/tf_probe.py +0 -0
  128. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/tool_scene.py +0 -0
  129. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/tool_scene_probe.py +0 -0
  130. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/trajectory.py +0 -0
  131. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/trajectory_action_probe.py +0 -0
  132. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/trajectory_tracking.py +0 -0
  133. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/ur5e.py +0 -0
  134. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/ur5e_adapter.py +0 -0
  135. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/ur5e_v10_adapter.py +0 -0
  136. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/workpiece_follow.py +0 -0
  137. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/workpiece_gazebo_follower.py +0 -0
  138. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/workpiece_scene.py +0 -0
  139. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/ros2/workpiece_scene_probe.py +0 -0
  140. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/selective_verification.py +0 -0
  141. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/selective_verification_v16.py +0 -0
  142. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/setup_profile.py +0 -0
  143. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/sim_real_qualification.py +0 -0
  144. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/simulation.py +0 -0
  145. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/simulation_platform.py +0 -0
  146. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/smooth_motion_hotfix_v162.py +0 -0
  147. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/support_contact_hotfix_v161.py +0 -0
  148. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/tool_collision.py +0 -0
  149. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/trajectory_qualification.py +0 -0
  150. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/twin.py +0 -0
  151. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/twin_builder.py +0 -0
  152. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/twin_codec.py +0 -0
  153. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/twin_materialization.py +0 -0
  154. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/user_cli.py +0 -0
  155. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/user_cli_v15.py +0 -0
  156. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/user_cli_v16.py +0 -0
  157. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/verification.py +0 -0
  158. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine/workpiece_lifecycle.py +0 -0
  159. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine.egg-info/dependency_links.txt +0 -0
  160. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine.egg-info/entry_points.txt +0 -0
  161. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine.egg-info/requires.txt +0 -0
  162. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/src/devagent_physical_engine.egg-info/top_level.txt +0 -0
  163. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_agent_core.py +0 -0
  164. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_agent_semantic_hardening.py +0 -0
  165. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_ai_cli.py +0 -0
  166. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_ai_cli_v07.py +0 -0
  167. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_commercial_importer_v1.py +0 -0
  168. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_commercial_intelligence_v15.py +0 -0
  169. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_commercial_readiness_v1.py +0 -0
  170. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_commercial_v1.py +0 -0
  171. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_continuous_clearance_v011.py +0 -0
  172. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_core.py +0 -0
  173. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_engineering_request_v07.py +0 -0
  174. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_evidence_replay_v12.py +0 -0
  175. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_evidence_trust_coverage_v12.py +0 -0
  176. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_evidence_trust_transport_v12.py +0 -0
  177. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_evidence_trust_v12.py +0 -0
  178. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_evidence_viewer_palette_v130.py +0 -0
  179. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_gazebo_cli_v0122.py +0 -0
  180. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_interpreter_profiles_v08.py +0 -0
  181. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_joint_state_probe_v0125.py +0 -0
  182. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_live_provider_qualification.py +0 -0
  183. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_measured_motion_v10.py +0 -0
  184. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_moveit_planning_diagnostics_v0125.py +0 -0
  185. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_moveit_scene_v0123.py +0 -0
  186. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_natural_language_agent_v07.py +0 -0
  187. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_one_command_hardening_v13.py +0 -0
  188. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_one_command_pose_hardening_v15.py +0 -0
  189. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_one_command_regression_v141.py +0 -0
  190. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_one_command_v13.py +0 -0
  191. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_openai_strict_schema_v0113.py +0 -0
  192. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_optimization_v05.py +0 -0
  193. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_physical_campaign_v09.py +0 -0
  194. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_physical_evidence_v09.py +0 -0
  195. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_physical_motion_v09.py +0 -0
  196. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_planning_fallback_v012.py +0 -0
  197. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_pose_math_v0125.py +0 -0
  198. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_preexecution_contract_v10.py +0 -0
  199. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_production_authority_v11.py +0 -0
  200. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_production_grade_coverage_v11.py +0 -0
  201. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_production_grade_v11.py +0 -0
  202. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_project_spine_v013.py +0 -0
  203. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_provider_and_qualification.py +0 -0
  204. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_provider_criterion_v15.py +0 -0
  205. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_qualification_cli_lifecycle_v06.py +0 -0
  206. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_qualification_harness_v06.py +0 -0
  207. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_readme_pypi.py +0 -0
  208. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_real_provider_adapters.py +0 -0
  209. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_reference_workcell_ros_frames_v0125.py +0 -0
  210. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_reference_workcell_v012.py +0 -0
  211. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_report_test_contract_coverage_v16.py +0 -0
  212. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_report_test_lineage_v16.py +0 -0
  213. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_report_test_visual_execution_v16.py +0 -0
  214. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_robot_platform_v08.py +0 -0
  215. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_ros2_production_receipts_v011.py +0 -0
  216. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_ros2_simulation.py +0 -0
  217. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_ros_trajectory_v09.py +0 -0
  218. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_selective_verification_v14.py +0 -0
  219. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_setup_profile.py +0 -0
  220. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_sim_real_qualification_v011.py +0 -0
  221. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_simulation_platform_v08.py +0 -0
  222. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_smooth_motion_hotfix_v162.py +0 -0
  223. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_support_contact_hotfix_v161.py +0 -0
  224. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_tool_collision_v011.py +0 -0
  225. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_tool_scene_v0124.py +0 -0
  226. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_trajectory_action_probe_v0125.py +0 -0
  227. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_trajectory_qualification_v09.py +0 -0
  228. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_trajectory_tracking_v0125.py +0 -0
  229. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_twin_materialization_v10.py +0 -0
  230. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_twin_v08.py +0 -0
  231. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_ur5e_adapter_scopes_v09.py +0 -0
  232. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_ur5e_v10_adapter_scopes.py +0 -0
  233. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_user_cli_interactive_v131.py +0 -0
  234. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_user_cli_progress_v131.py +0 -0
  235. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_user_cli_report_visual_v16.py +0 -0
  236. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_user_cli_selective_v14.py +0 -0
  237. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_user_cli_v15.py +0 -0
  238. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_user_cli_v15_hotfix_inheritance.py +0 -0
  239. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_v052_stabilization.py +0 -0
  240. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_v08_catalog_mapping_regression.py +0 -0
  241. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.2}/tests/test_workpiece_lifecycle_v011.py +0 -0
@@ -0,0 +1,584 @@
1
+ Metadata-Version: 2.4
2
+ Name: devagent-physical-engine
3
+ Version: 1.7.2
4
+ Summary: Production-grade verification-first robotics evidence runtime with one-command customer intake, validated requirement mapping, adaptive industrial Pilz PTP/LIN report-test Gazebo execution, transfer/place segment diagnostics, requirement-driven test generation, selective verification, deterministic Twin lineage, measured physical verification, replay inspection, regression, and FAT evidence.
5
+ Author: Tom Ha
6
+ License: All Rights Reserved
7
+ Project-URL: Homepage, https://github.com/tomha85/devagent-physical-engine
8
+ Project-URL: Repository, https://github.com/tomha85/devagent-physical-engine
9
+ Project-URL: Issues, https://github.com/tomha85/devagent-physical-engine/issues
10
+ Keywords: robotics,industrial-automation,agentic-ai,ros2,gazebo,moveit,pilz,verification,selective-testing,digital-twin,fat-testing,regression,evidence,replay
11
+ Classifier: Development Status :: 5 - Production/Stable
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Requires-Python: >=3.11
21
+ Description-Content-Type: text/markdown
22
+ License-File: NOTICE
23
+ Requires-Dist: PyYAML<7,>=6.0
24
+ Provides-Extra: openai
25
+ Requires-Dist: openai<4,>=3.0; extra == "openai"
26
+ Provides-Extra: anthropic
27
+ Requires-Dist: anthropic<2,>=1.0; extra == "anthropic"
28
+ Provides-Extra: gemini
29
+ Requires-Dist: google-genai<3,>=2.0; extra == "gemini"
30
+ Provides-Extra: ai
31
+ Requires-Dist: openai<4,>=3.0; extra == "ai"
32
+ Requires-Dist: anthropic<2,>=1.0; extra == "ai"
33
+ Requires-Dist: google-genai<3,>=2.0; extra == "ai"
34
+ Provides-Extra: dev
35
+ Requires-Dist: build==1.6.0; extra == "dev"
36
+ Requires-Dist: twine==7.0.0; extra == "dev"
37
+ Requires-Dist: coverage[toml]<8,>=7.6; extra == "dev"
38
+ Requires-Dist: ruff<1,>=0.12; extra == "dev"
39
+ Requires-Dist: pip-audit<3,>=2.9; extra == "dev"
40
+ Dynamic: license-file
41
+
42
+ # DevAgent Smart Physical Engine
43
+
44
+ [![PyPI](https://img.shields.io/pypi/v/devagent-physical-engine.svg)](https://pypi.org/project/devagent-physical-engine/)
45
+ [![Python](https://img.shields.io/pypi/pyversions/devagent-physical-engine.svg)](https://pypi.org/project/devagent-physical-engine/)
46
+ [![Status: Production/Stable](https://img.shields.io/badge/status-production%2Fstable-blue.svg)](#project-status)
47
+
48
+ **Verification-first commissioning engineering for robotics and industrial automation.**
49
+
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.
51
+
52
+ ```text
53
+ customer engineering files
54
+
55
+ intake + SHA-256 inventory
56
+
57
+ validated Requirement → Criterion mapping
58
+
59
+ immutable Digital Twin revision
60
+
61
+ requirement-driven nominal / boundary / fault cases
62
+
63
+ qualified exact-Twin simulation when supported
64
+
65
+ measured evidence
66
+
67
+ PASS / FAIL / NOT_TESTED
68
+
69
+ regression + FAT report + Evidence Viewer
70
+ ```
71
+
72
+ > **AI proposes. Deterministic engines validate, compile, verify, measure, and gate promotion. OEM robot controllers, PLCs, safety PLCs, and certified safety systems remain authoritative.**
73
+
74
+ ## Quick start
75
+
76
+ Python 3.11+ is required.
77
+
78
+ ```bash
79
+ python -m pip install --upgrade devagent-physical-engine==1.7.2
80
+ ```
81
+
82
+ Verify the installed package:
83
+
84
+ ```bash
85
+ python -c "import devagent_physical_engine as d; print(d.__version__)"
86
+ ```
87
+
88
+ Expected:
89
+
90
+ ```text
91
+ 1.7.2
92
+ ```
93
+
94
+ Run the normal customer workflow:
95
+
96
+ ```bash
97
+ devagent verify ./customer-project
98
+ ```
99
+
100
+ Request simulation:
101
+
102
+ ```bash
103
+ devagent verify ./customer-project --simulate
104
+ ```
105
+
106
+ Open the Evidence Viewer and keep the engineering terminal active:
107
+
108
+ ```bash
109
+ devagent verify ./customer-project --simulate --open
110
+ ```
111
+
112
+ For machine-readable CI output:
113
+
114
+ ```bash
115
+ devagent verify ./customer-project --json
116
+ ```
117
+
118
+ Default locations:
119
+
120
+ ```text
121
+ Evidence database: ~/.devagent/projects.db
122
+ Results: <customer-project>/devagent-results/
123
+ ```
124
+
125
+ ## What DevAgent proves
126
+
127
+ DevAgent separates planning, execution, measurement, verdicts, and authority.
128
+
129
+ ```text
130
+ requirement
131
+
132
+ verification criterion
133
+
134
+ verification case
135
+
136
+ exact Twin revision/hash
137
+
138
+ qualified simulation when available
139
+
140
+ measured evidence
141
+
142
+ PASS / FAIL / NOT_TESTED
143
+ ```
144
+
145
+ A generated plan is not physical proof. A replay is not a new execution. A simulation result does not grant site qualification or real-robot authority.
146
+
147
+ Current hard boundaries remain:
148
+
149
+ ```text
150
+ site_qualification = false
151
+ real_execution_allowed = false
152
+ ```
153
+
154
+ unless separately proven by an appropriate qualified process.
155
+
156
+ ## v1.6 report-test visual execution foundation
157
+
158
+ v1.6 connected report tests to the exact stored Twin instead of a separate demo scene.
159
+
160
+ A supported physical report test follows:
161
+
162
+ ```text
163
+ Requirement
164
+ → stable Test ID
165
+ → immutable Requirement → Case mapping
166
+ → exact Verification Plan ID/hash
167
+ → exact Case ID
168
+ → exact Twin revision/hash
169
+ → qualified Gazebo/MoveIt execution
170
+ → typed physical_measurement artifact
171
+ → deterministic verdict
172
+ ```
173
+
174
+ Interactive example:
175
+
176
+ ```text
177
+ devagent> tests
178
+ devagent> simulate TEST-PERF-001
179
+ ```
180
+
181
+ Measured physical criteria include:
182
+
183
+ ```text
184
+ cycle_time_max_s
185
+ minimum_clearance_m
186
+ final_tcp_error_max_m
187
+ max_tracking_error_rad
188
+ collision_free
189
+ physical_completed
190
+ ```
191
+
192
+ Structural/Twin criteria include:
193
+
194
+ ```text
195
+ planning_allowed
196
+ physics_allowed
197
+ entity_present
198
+ validation_issue_absent
199
+ twin_state
200
+ ```
201
+
202
+ A requirement without deterministic evidence remains `NOT_TESTED`; it is never auto-passed from prose or AI interpretation.
203
+
204
+ ## v1.6.1 support-contact lift hotfix
205
+
206
+ The packaged UR5e reference load starts with the workpiece resting on its source support. During attached-object lift departure, DevAgent preserves the complete live MoveIt Allowed Collision Matrix and temporarily enables exactly the attached-workpiece ↔ source-support pair.
207
+
208
+ That allowance is scoped only to lift departure. Transfer/place keep normal collision checking. DevAgent does not globally disable collision checking or replace the live matrix with an unsafe sparse matrix.
209
+
210
+ ## v1.6.2 slower measured visual execution
211
+
212
+ The packaged visual task uses conservative MoveIt scaling so motion is inspectable while remaining real trajectory execution:
213
+
214
+ ```text
215
+ velocity scale: 12%
216
+ acceleration scale: 8%
217
+ ```
218
+
219
+ The joint-state recorder also rejects duplicate/backward ROS timestamps instead of manufacturing synthetic time. Collision, endpoint, tracking, Twin-lineage, and authority checks remain fail-closed.
220
+
221
+ ## v1.7 industrial PTP/LIN execution
222
+
223
+ v1.7 moves the qualified UR5e report test to the MoveIt Pilz Industrial Motion Planner rather than hand-building interpolation.
224
+
225
+ The bounded task sequence is:
226
+
227
+ ```text
228
+ HOME
229
+ ↓ PTP
230
+ PRE_PICK
231
+ ↓ LIN
232
+ PICK
233
+ ↓ grasp hard boundary
234
+ LIFT
235
+ ↓ LIN support departure hard boundary
236
+ TRANSFER
237
+ ↓ PTP
238
+ PLACE
239
+ ↓ LIN release hard boundary
240
+ RETRACT
241
+ ↓ LIN
242
+ HOME
243
+ ↓ PTP
244
+ ```
245
+
246
+ Execution groups:
247
+
248
+ ```text
249
+ approach_pick PTP → LIN
250
+ lift_departure LIN
251
+ transfer_place PTP → LIN
252
+ retreat_home LIN → PTP
253
+ ```
254
+
255
+ Conservative limits:
256
+
257
+ ```text
258
+ PTP velocity scale: 10%
259
+ PTP acceleration scale: 6%
260
+ LIN velocity scale: 6%
261
+ LIN acceleration scale: 4%
262
+ requested blend radius: 12 mm
263
+ workpiece follow target: 60 Hz
264
+ ```
265
+
266
+ MoveIt/Pilz owns geometry, timestamps, collision checking, velocity/acceleration time parameterization, and the returned `RobotTrajectory`. DevAgent does not fake smoothness with teleports or sleeps.
267
+
268
+ ## v1.7.1 adaptive Pilz blend hotfix
269
+
270
+ A real ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz target-stack run showed:
271
+
272
+ ```text
273
+ approach_pick PASS
274
+ lift_departure PASS
275
+ transfer_place Pilz FAILURE(99999)
276
+ execution NOT STARTED
277
+ ```
278
+
279
+ Pilz can reject a sequence when a requested blend sphere is not feasible for that specific geometry. v1.7.1 therefore keeps the same PTP/LIN targets, attached/world scene contract, collision policy, velocity/acceleration limits, and execution authority while retrying only the internal blend radius:
280
+
281
+ ```text
282
+ 12 mm
283
+ ↓ if Pilz returns pilz_sequence_planning_failed
284
+ 6 mm
285
+
286
+ 3 mm
287
+
288
+ 0 mm
289
+ ```
290
+
291
+ Every candidate is still planned and collision-checked by MoveIt/Pilz. DevAgent selects the largest candidate Pilz actually accepts. If the zero-blend candidate fails, execution remains blocked.
292
+
293
+ The fallback is intentionally narrow:
294
+
295
+ ```text
296
+ no target modification
297
+ no planner-type substitution
298
+ no collision disable
299
+ no speed increase
300
+ no hand-built interpolation
301
+ no fake PASS
302
+ no fallback to an unqualified simulator or robot
303
+ ```
304
+
305
+ The selected blend radii and every planning attempt receipt remain attached to motion metadata for auditability.
306
+
307
+ ## v1.7.2 transfer/place diagnostic hotfix
308
+
309
+ A target-stack qualification run proved that `transfer_place` still returned Pilz `FAILURE(99999)` for every v1.7.1 blend candidate, including zero blend. v1.7.2 therefore does not keep guessing at blend values. When that exact bounded failure occurs, DevAgent remains fail-closed and runs two independent **plan-only** probes against the same attached-workpiece PlanningScene:
310
+
311
+ ```text
312
+ lift target
313
+
314
+ transfer PTP probe
315
+ ↓ independent start at transfer target
316
+ place LIN probe
317
+ ```
318
+
319
+ The result is classified deterministically as one of:
320
+
321
+ ```text
322
+ pilz_transfer_segment_planning_failed
323
+ pilz_place_segment_planning_failed
324
+ pilz_transfer_and_place_segment_planning_failed
325
+ pilz_transfer_place_sequence_composition_failed
326
+ ```
327
+
328
+ Each probe writes its own request/receipt plus a `transfer-place-diagnostic.json` summary. These probes never execute motion and never relax targets, planner types, collision policy, attached-workpiece scene state, velocity/acceleration limits, Twin lineage, or real-execution authority. Their purpose is to identify the exact target-stack defect before changing physical execution semantics.
329
+
330
+ ## Qualified visual-execution scope
331
+
332
+ The packaged visual executor remains intentionally narrow:
333
+
334
+ ```text
335
+ robot: UR5e
336
+ operation: load
337
+ case scope: one nominal mapped physical report case
338
+ runtime: Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz
339
+ ```
340
+
341
+ Unsupported customer Twins, unqualified robot profiles, boundary/fault cases outside the qualified scope, ambiguous case mappings, or incomplete lineage fail closed.
342
+
343
+ Cross-vendor projects such as ABB may still be imported, normalized, structurally evaluated, and reported, but they do not silently enter the UR5e-only physical executor.
344
+
345
+ ## Interactive engineering session
346
+
347
+ Use `--interactive`, or `--open` from a real terminal, to keep a bounded prompt:
348
+
349
+ ```text
350
+ status
351
+ tests
352
+ test SELECTOR
353
+ simulate [SELECTOR]
354
+ rerun [SELECTOR]
355
+ rerun failed
356
+ rerun blocked
357
+ rerun affected
358
+ replay
359
+ report
360
+ log
361
+ help
362
+ quit
363
+ ```
364
+
365
+ Selectors can be requirement IDs, test IDs, or bounded groups:
366
+
367
+ ```text
368
+ REQ-PERF-001
369
+ TEST-PERF-001
370
+ failed
371
+ blocked
372
+ affected
373
+ all
374
+ ```
375
+
376
+ `test SELECTOR` evaluates deterministic/evidence checks without commanding the simulator.
377
+
378
+ `simulate TEST-X` requests qualified execution of the selected mapped physical report case.
379
+
380
+ `replay` reconstructs persisted evidence identity; it never commands Gazebo, MoveIt, a robot, PLC, or safety PLC.
381
+
382
+ ## Customer input
383
+
384
+ A customer folder can contain the engineering material the team already has:
385
+
386
+ ```text
387
+ ACME_CNC_CELL_TEST/
388
+ ├── project.yaml
389
+ ├── requirements.xlsx
390
+ ├── devagent-twin.yaml
391
+ ├── robot.urdf
392
+ ├── robot.urdf.xacro
393
+ ├── robot.srdf
394
+ ├── tcp.yaml
395
+ ├── calibration.yaml
396
+ ├── layout/
397
+ │ ├── cell_layout.yaml
398
+ │ └── meshes/
399
+ ├── robot_program/
400
+ │ └── mission.yaml
401
+ └── expected/
402
+ └── expected_findings.json
403
+ ```
404
+
405
+ Important rule:
406
+
407
+ ```text
408
+ file discovered != engineering fact proven
409
+ ```
410
+
411
+ DevAgent fingerprints and classifies files, but filenames do not prove poses, TCPs, calibrations, collision geometry, safety behavior, or physical performance.
412
+
413
+ The root `expected/` folder is test-oracle material and is never promoted as engineering authority.
414
+
415
+ If critical information is missing or ambiguous, DevAgent writes questions into the project results instead of guessing.
416
+
417
+ ## Results and evidence
418
+
419
+ Typical output:
420
+
421
+ ```text
422
+ customer-project/
423
+ └── devagent-results/
424
+ ├── RUN.log
425
+ ├── SUMMARY.json
426
+ ├── INTAKE.json
427
+ ├── QUESTIONS.md
428
+ ├── normalized/
429
+ │ ├── requirements.csv
430
+ │ └── devagent-twin.yaml
431
+ ├── report-test-visualization/
432
+ ├── FAT_REPORT.html
433
+ └── EVIDENCE.html
434
+ ```
435
+
436
+ `EVIDENCE.html` is read-only engineering evidence. `RUN.log` is a human debug/progress trace and does not replace immutable evidence artifacts.
437
+
438
+ Repeat runs compare the immediately previous campaign with the current campaign before a new FAT artifact is finalized.
439
+
440
+ ## Physical simulation setup
441
+
442
+ `pip install` does not install ROS 2, Gazebo, MoveIt, OEM drivers, or privileged operating-system packages.
443
+
444
+ Reference stack:
445
+
446
+ ```text
447
+ Ubuntu 24.04
448
+ ROS 2 Jazzy
449
+ Gazebo Harmonic
450
+ gz_ros2_control
451
+ Universal Robots ROS 2 driver
452
+ ur_simulation_gz
453
+ MoveIt 2 + Pilz Industrial Motion Planner
454
+ ```
455
+
456
+ Preview setup:
457
+
458
+ ```bash
459
+ devagent-physical setup --profile ur5e-sim --dry-run
460
+ ```
461
+
462
+ Apply explicitly:
463
+
464
+ ```bash
465
+ devagent-physical setup --profile ur5e-sim --yes
466
+ ```
467
+
468
+ Check runtime:
469
+
470
+ ```bash
471
+ devagent-physical ros doctor
472
+ ```
473
+
474
+ Hosted CI validates deterministic software contracts. It does not pretend to execute a graphical ROS/Gazebo/MoveIt target stack. Target-stack acceptance must run on the intended workstation.
475
+
476
+ ## Optional AI providers
477
+
478
+ AI is optional and advisory.
479
+
480
+ ```bash
481
+ python -m pip install "devagent-physical-engine[openai]"
482
+ python -m pip install "devagent-physical-engine[anthropic]"
483
+ python -m pip install "devagent-physical-engine[gemini]"
484
+ python -m pip install "devagent-physical-engine[ai]"
485
+ ```
486
+
487
+ Typical credentials:
488
+
489
+ ```bash
490
+ export OPENAI_API_KEY="..."
491
+ export ANTHROPIC_API_KEY="..."
492
+ export GEMINI_API_KEY="..."
493
+ ```
494
+
495
+ Provider-backed interpretation cannot grant physical truth, site qualification, functional-safety certification, or real-execution authority.
496
+
497
+ ## Installed CLIs
498
+
499
+ ```text
500
+ devagent one-command customer verification + interactive report testing
501
+ devagent-commercial commercial/evidence workflow
502
+ devagent-physical deterministic core + ROS/qualification tools
503
+ devagent-physical-ai optional provider-backed engineering front end
504
+ ```
505
+
506
+ ## Simple Mode exit codes
507
+
508
+ | Exit | Meaning |
509
+ | ---: | --- |
510
+ | `0` | bounded full verification is release-ready |
511
+ | `10` | customer input or operational contract failure |
512
+ | `30` | more engineering information is required |
513
+ | `31` | requested simulation is blocked/unqualified |
514
+ | `32` | verification completed but full release readiness is false |
515
+
516
+ # Project status
517
+
518
+ **v1.7.2 — Production/Stable software workflow**
519
+
520
+ v1.7.2 retains the v1.7 industrial Pilz PTP/LIN execution architecture and v1.7.1 bounded adaptive-blend fallback. If transfer/place still fails at zero blend, v1.7.2 now proves the transfer PTP and place LIN segments independently and records a deterministic diagnostic result while keeping execution blocked. It also retains the cross-vendor profile gate so non-UR5e customer Twins cannot enter the UR5e-only qualified visual executor.
521
+
522
+ Production-oriented software capabilities include:
523
+
524
+ ```text
525
+ one-command customer intake
526
+ XLSX requirement normalization
527
+ validated Requirement → Criterion mapping
528
+ optional provider-backed advisory criterion proposals
529
+ requirement-driven nominal / boundary / fault case generation
530
+ immutable project/Twin lineage
531
+ exact Requirement → Mapping → Verification Plan → Case provenance
532
+ qualified report-test visual execution contract
533
+ industrial Pilz PTP / LIN planning
534
+ adaptive bounded blend selection
535
+ plan-only transfer/place segment diagnostics
536
+ lift-only support-contact ACM lease + exact restore
537
+ Gazebo/MoveIt selected-case visualization
538
+ typed physical measurement binding
539
+ deterministic campaigns
540
+ repeat-run regression
541
+ professional FAT / Evidence Viewer
542
+ interactive selective verification
543
+ Evidence Bundle + replay
544
+ change impact + regression
545
+ provider-neutral optional AI front end
546
+ ```
547
+
548
+ 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.
549
+
550
+ ## Documentation
551
+
552
+ One-command verification:
553
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ONE_COMMAND_VERIFY_V13.md
554
+
555
+ Report-test visual execution foundation:
556
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/REPORT_TEST_VISUAL_EXECUTION_V16.md
557
+
558
+ Evidence Trust / replay / viewer:
559
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/EVIDENCE_TRUST_V12.md
560
+
561
+ Measured physical runtime:
562
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/MEASURED_PHYSICAL_RUNTIME.md
563
+
564
+ Commercial project spine:
565
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/COMMERCIAL_PROJECT_SPINE.md
566
+
567
+ Architecture:
568
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ARCHITECTURE.md
569
+
570
+ Canonical Twin runtime:
571
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/CANONICAL_TWIN_RUNTIME.md
572
+
573
+ Laptop acceptance:
574
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/LAPTOP_ACCEPTANCE.md
575
+
576
+ ## Ownership
577
+
578
+ DevAgent Smart Physical Engine
579
+ Copyright © 2026 Tom Ha
580
+ Original creator: Tom Ha
581
+ Original project: https://github.com/tomha85/devagent-physical-engine
582
+ All rights reserved.
583
+
584
+ See repository `LICENSE`, `NOTICE`, and `COPYRIGHT` for complete ownership and usage terms.