devagent-physical-engine 1.7.0__tar.gz → 1.7.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 (239) hide show
  1. devagent_physical_engine-1.7.1/PKG-INFO +560 -0
  2. devagent_physical_engine-1.7.1/README.md +519 -0
  3. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/pyproject.toml +3 -2
  4. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/__init__.py +1 -1
  5. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/industrial_motion_hotfix_v170.py +11 -5
  6. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/industrial_motion_v170.py +45 -2
  7. devagent_physical_engine-1.7.1/src/devagent_physical_engine/one_command_v16.py +89 -0
  8. devagent_physical_engine-1.7.1/src/devagent_physical_engine/ros2/industrial_sequence_planner_v171.py +112 -0
  9. devagent_physical_engine-1.7.1/src/devagent_physical_engine.egg-info/PKG-INFO +560 -0
  10. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine.egg-info/SOURCES.txt +2 -0
  11. devagent_physical_engine-1.7.1/tests/test_golden_abb_runner_v171.py +44 -0
  12. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_golden_abb_showcase.py +1 -4
  13. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_industrial_motion_v170.py +55 -4
  14. devagent_physical_engine-1.7.0/PKG-INFO +0 -670
  15. devagent_physical_engine-1.7.0/README.md +0 -629
  16. devagent_physical_engine-1.7.0/src/devagent_physical_engine/one_command_v16.py +0 -28
  17. devagent_physical_engine-1.7.0/src/devagent_physical_engine.egg-info/PKG-INFO +0 -670
  18. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/NOTICE +0 -0
  19. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/setup.cfg +0 -0
  20. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/__init__.py +0 -0
  21. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/compiler.py +0 -0
  22. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/contracts.py +0 -0
  23. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/coordinator.py +0 -0
  24. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/critic.py +0 -0
  25. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/evidence.py +0 -0
  26. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/interpreter.py +0 -0
  27. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/planner.py +0 -0
  28. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/recovery.py +0 -0
  29. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/routing.py +0 -0
  30. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/runtime.py +0 -0
  31. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/semantic.py +0 -0
  32. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/agent/structured.py +0 -0
  33. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ai_cli.py +0 -0
  34. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/cli.py +0 -0
  35. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/commercial.py +0 -0
  36. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/commercial_campaign.py +0 -0
  37. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/commercial_cli.py +0 -0
  38. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/commercial_importer.py +0 -0
  39. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/commercial_intelligence.py +0 -0
  40. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/commercial_readiness.py +0 -0
  41. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/commercial_repository.py +0 -0
  42. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/continuous_clearance.py +0 -0
  43. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/doctor.py +0 -0
  44. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/engineering_agent.py +0 -0
  45. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/engineering_request.py +0 -0
  46. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/evidence_replay.py +0 -0
  47. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/evidence_trust.py +0 -0
  48. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/execution.py +0 -0
  49. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/models.py +0 -0
  50. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/one_command.py +0 -0
  51. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/one_command_runtime.py +0 -0
  52. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/one_command_v15.py +0 -0
  53. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/operating_envelope.py +0 -0
  54. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/__init__.py +0 -0
  55. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/benchmark.py +0 -0
  56. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/candidates.py +0 -0
  57. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/contracts.py +0 -0
  58. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/evaluator.py +0 -0
  59. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/evidence.py +0 -0
  60. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/experience.py +0 -0
  61. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/measured.py +0 -0
  62. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/optimizer.py +0 -0
  63. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/optimization/orchestrator.py +0 -0
  64. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/physical_campaign.py +0 -0
  65. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/physical_evidence.py +0 -0
  66. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/physical_motion.py +0 -0
  67. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/planning.py +0 -0
  68. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/pose_math.py +0 -0
  69. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/preexecution_contract.py +0 -0
  70. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/production_authority.py +0 -0
  71. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/production_grade.py +0 -0
  72. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/project.py +0 -0
  73. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/provider_adapters/__init__.py +0 -0
  74. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/provider_adapters/anthropic.py +0 -0
  75. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/provider_adapters/common.py +0 -0
  76. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/provider_adapters/factory.py +0 -0
  77. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/provider_adapters/gemini.py +0 -0
  78. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/provider_adapters/openai.py +0 -0
  79. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/provider_criterion.py +0 -0
  80. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/provider_qualification.py +0 -0
  81. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/providers.py +0 -0
  82. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/qualification.py +0 -0
  83. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/qualification_cli.py +0 -0
  84. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/qualification_harness.py +0 -0
  85. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/reference_workcell.py +0 -0
  86. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/report_test_execution.py +0 -0
  87. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/report_test_execution_strict.py +0 -0
  88. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/robot_platform.py +0 -0
  89. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/robots.py +0 -0
  90. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/__init__.py +0 -0
  91. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/acceptance.py +0 -0
  92. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/commands.py +0 -0
  93. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/continuous_clearance_probe.py +0 -0
  94. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/doctor.py +0 -0
  95. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/fk_pose.py +0 -0
  96. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/fk_probe.py +0 -0
  97. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/frame_alignment.py +0 -0
  98. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/gazebo_cli.py +0 -0
  99. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/gazebo_pose.py +0 -0
  100. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/gazebo_world.py +0 -0
  101. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v170.py +0 -0
  102. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/joint_state_probe.py +0 -0
  103. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/joint_state_recorder.py +0 -0
  104. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/measured_motion.py +0 -0
  105. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/moveit_joint_plan_probe.py +0 -0
  106. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/moveit_joint_plan_v161_probe.py +0 -0
  107. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/moveit_scene.py +0 -0
  108. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/moveit_task_planner.py +0 -0
  109. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe.py +0 -0
  110. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/preexecution.py +0 -0
  111. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/qualification.py +0 -0
  112. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/qualification_v10.py +0 -0
  113. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/qualification_v11.py +0 -0
  114. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/qualification_v12.py +0 -0
  115. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/report_test_visualization.py +0 -0
  116. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/report_test_visualization_v170.py +0 -0
  117. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/scene_probe.py +0 -0
  118. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/state_validity_probe.py +0 -0
  119. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/support_contact_acm_probe_v170.py +0 -0
  120. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/support_contact_lease_v170.py +0 -0
  121. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/support_contact_runner_v161.py +0 -0
  122. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/support_contact_v161.py +0 -0
  123. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/task_adapter.py +0 -0
  124. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/task_visualization.py +0 -0
  125. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/tf_probe.py +0 -0
  126. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/tool_scene.py +0 -0
  127. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/tool_scene_probe.py +0 -0
  128. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/trajectory.py +0 -0
  129. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/trajectory_action_probe.py +0 -0
  130. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/trajectory_tracking.py +0 -0
  131. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/ur5e.py +0 -0
  132. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/ur5e_adapter.py +0 -0
  133. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/ur5e_v10_adapter.py +0 -0
  134. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/workpiece_follow.py +0 -0
  135. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/workpiece_gazebo_follower.py +0 -0
  136. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/workpiece_scene.py +0 -0
  137. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/ros2/workpiece_scene_probe.py +0 -0
  138. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/selective_verification.py +0 -0
  139. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/selective_verification_v16.py +0 -0
  140. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/setup_profile.py +0 -0
  141. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/sim_real_qualification.py +0 -0
  142. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/simulation.py +0 -0
  143. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/simulation_platform.py +0 -0
  144. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/smooth_motion_hotfix_v162.py +0 -0
  145. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/support_contact_hotfix_v161.py +0 -0
  146. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/tool_collision.py +0 -0
  147. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/trajectory_qualification.py +0 -0
  148. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/twin.py +0 -0
  149. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/twin_builder.py +0 -0
  150. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/twin_codec.py +0 -0
  151. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/twin_materialization.py +0 -0
  152. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/user_cli.py +0 -0
  153. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/user_cli_v15.py +0 -0
  154. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/user_cli_v16.py +0 -0
  155. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/verification.py +0 -0
  156. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine/workpiece_lifecycle.py +0 -0
  157. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine.egg-info/dependency_links.txt +0 -0
  158. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine.egg-info/entry_points.txt +0 -0
  159. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine.egg-info/requires.txt +0 -0
  160. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/src/devagent_physical_engine.egg-info/top_level.txt +0 -0
  161. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_agent_core.py +0 -0
  162. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_agent_semantic_hardening.py +0 -0
  163. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_ai_cli.py +0 -0
  164. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_ai_cli_v07.py +0 -0
  165. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_commercial_importer_v1.py +0 -0
  166. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_commercial_intelligence_v15.py +0 -0
  167. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_commercial_readiness_v1.py +0 -0
  168. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_commercial_v1.py +0 -0
  169. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_continuous_clearance_v011.py +0 -0
  170. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_core.py +0 -0
  171. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_engineering_request_v07.py +0 -0
  172. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_evidence_replay_v12.py +0 -0
  173. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_evidence_trust_coverage_v12.py +0 -0
  174. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_evidence_trust_transport_v12.py +0 -0
  175. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_evidence_trust_v12.py +0 -0
  176. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_evidence_viewer_palette_v130.py +0 -0
  177. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_gazebo_cli_v0122.py +0 -0
  178. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_interpreter_profiles_v08.py +0 -0
  179. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_joint_state_probe_v0125.py +0 -0
  180. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_live_provider_qualification.py +0 -0
  181. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_measured_motion_v10.py +0 -0
  182. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_moveit_planning_diagnostics_v0125.py +0 -0
  183. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_moveit_scene_v0123.py +0 -0
  184. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_natural_language_agent_v07.py +0 -0
  185. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_one_command_hardening_v13.py +0 -0
  186. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_one_command_pose_hardening_v15.py +0 -0
  187. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_one_command_regression_v141.py +0 -0
  188. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_one_command_v13.py +0 -0
  189. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_openai_strict_schema_v0113.py +0 -0
  190. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_optimization_v05.py +0 -0
  191. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_physical_campaign_v09.py +0 -0
  192. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_physical_evidence_v09.py +0 -0
  193. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_physical_motion_v09.py +0 -0
  194. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_planning_fallback_v012.py +0 -0
  195. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_pose_math_v0125.py +0 -0
  196. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_preexecution_contract_v10.py +0 -0
  197. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_production_authority_v11.py +0 -0
  198. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_production_grade_coverage_v11.py +0 -0
  199. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_production_grade_v11.py +0 -0
  200. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_project_spine_v013.py +0 -0
  201. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_provider_and_qualification.py +0 -0
  202. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_provider_criterion_v15.py +0 -0
  203. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_qualification_cli_lifecycle_v06.py +0 -0
  204. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_qualification_harness_v06.py +0 -0
  205. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_readme_pypi.py +0 -0
  206. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_real_provider_adapters.py +0 -0
  207. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_reference_workcell_ros_frames_v0125.py +0 -0
  208. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_reference_workcell_v012.py +0 -0
  209. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_report_test_contract_coverage_v16.py +0 -0
  210. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_report_test_lineage_v16.py +0 -0
  211. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_report_test_visual_execution_v16.py +0 -0
  212. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_robot_platform_v08.py +0 -0
  213. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_ros2_production_receipts_v011.py +0 -0
  214. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_ros2_simulation.py +0 -0
  215. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_ros_trajectory_v09.py +0 -0
  216. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_selective_verification_v14.py +0 -0
  217. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_setup_profile.py +0 -0
  218. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_sim_real_qualification_v011.py +0 -0
  219. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_simulation_platform_v08.py +0 -0
  220. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_smooth_motion_hotfix_v162.py +0 -0
  221. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_support_contact_hotfix_v161.py +0 -0
  222. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_tool_collision_v011.py +0 -0
  223. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_tool_scene_v0124.py +0 -0
  224. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_trajectory_action_probe_v0125.py +0 -0
  225. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_trajectory_qualification_v09.py +0 -0
  226. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_trajectory_tracking_v0125.py +0 -0
  227. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_twin_materialization_v10.py +0 -0
  228. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_twin_v08.py +0 -0
  229. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_ur5e_adapter_scopes_v09.py +0 -0
  230. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_ur5e_v10_adapter_scopes.py +0 -0
  231. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_user_cli_interactive_v131.py +0 -0
  232. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_user_cli_progress_v131.py +0 -0
  233. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_user_cli_report_visual_v16.py +0 -0
  234. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_user_cli_selective_v14.py +0 -0
  235. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_user_cli_v15.py +0 -0
  236. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_user_cli_v15_hotfix_inheritance.py +0 -0
  237. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_v052_stabilization.py +0 -0
  238. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_v08_catalog_mapping_regression.py +0 -0
  239. {devagent_physical_engine-1.7.0 → devagent_physical_engine-1.7.1}/tests/test_workpiece_lifecycle_v011.py +0 -0
@@ -0,0 +1,560 @@
1
+ Metadata-Version: 2.4
2
+ Name: devagent-physical-engine
3
+ Version: 1.7.1
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, 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.1
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.1
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
+ ## Qualified visual-execution scope
308
+
309
+ The packaged visual executor remains intentionally narrow:
310
+
311
+ ```text
312
+ robot: UR5e
313
+ operation: load
314
+ case scope: one nominal mapped physical report case
315
+ runtime: Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz
316
+ ```
317
+
318
+ Unsupported customer Twins, unqualified robot profiles, boundary/fault cases outside the qualified scope, ambiguous case mappings, or incomplete lineage fail closed.
319
+
320
+ 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.
321
+
322
+ ## Interactive engineering session
323
+
324
+ Use `--interactive`, or `--open` from a real terminal, to keep a bounded prompt:
325
+
326
+ ```text
327
+ status
328
+ tests
329
+ test SELECTOR
330
+ simulate [SELECTOR]
331
+ rerun [SELECTOR]
332
+ rerun failed
333
+ rerun blocked
334
+ rerun affected
335
+ replay
336
+ report
337
+ log
338
+ help
339
+ quit
340
+ ```
341
+
342
+ Selectors can be requirement IDs, test IDs, or bounded groups:
343
+
344
+ ```text
345
+ REQ-PERF-001
346
+ TEST-PERF-001
347
+ failed
348
+ blocked
349
+ affected
350
+ all
351
+ ```
352
+
353
+ `test SELECTOR` evaluates deterministic/evidence checks without commanding the simulator.
354
+
355
+ `simulate TEST-X` requests qualified execution of the selected mapped physical report case.
356
+
357
+ `replay` reconstructs persisted evidence identity; it never commands Gazebo, MoveIt, a robot, PLC, or safety PLC.
358
+
359
+ ## Customer input
360
+
361
+ A customer folder can contain the engineering material the team already has:
362
+
363
+ ```text
364
+ ACME_CNC_CELL_TEST/
365
+ ├── project.yaml
366
+ ├── requirements.xlsx
367
+ ├── devagent-twin.yaml
368
+ ├── robot.urdf
369
+ ├── robot.urdf.xacro
370
+ ├── robot.srdf
371
+ ├── tcp.yaml
372
+ ├── calibration.yaml
373
+ ├── layout/
374
+ │ ├── cell_layout.yaml
375
+ │ └── meshes/
376
+ ├── robot_program/
377
+ │ └── mission.yaml
378
+ └── expected/
379
+ └── expected_findings.json
380
+ ```
381
+
382
+ Important rule:
383
+
384
+ ```text
385
+ file discovered != engineering fact proven
386
+ ```
387
+
388
+ DevAgent fingerprints and classifies files, but filenames do not prove poses, TCPs, calibrations, collision geometry, safety behavior, or physical performance.
389
+
390
+ The root `expected/` folder is test-oracle material and is never promoted as engineering authority.
391
+
392
+ If critical information is missing or ambiguous, DevAgent writes questions into the project results instead of guessing.
393
+
394
+ ## Results and evidence
395
+
396
+ Typical output:
397
+
398
+ ```text
399
+ customer-project/
400
+ └── devagent-results/
401
+ ├── RUN.log
402
+ ├── SUMMARY.json
403
+ ├── INTAKE.json
404
+ ├── QUESTIONS.md
405
+ ├── normalized/
406
+ │ ├── requirements.csv
407
+ │ └── devagent-twin.yaml
408
+ ├── report-test-visualization/
409
+ ├── FAT_REPORT.html
410
+ └── EVIDENCE.html
411
+ ```
412
+
413
+ `EVIDENCE.html` is read-only engineering evidence. `RUN.log` is a human debug/progress trace and does not replace immutable evidence artifacts.
414
+
415
+ Repeat runs compare the immediately previous campaign with the current campaign before a new FAT artifact is finalized.
416
+
417
+ ## Physical simulation setup
418
+
419
+ `pip install` does not install ROS 2, Gazebo, MoveIt, OEM drivers, or privileged operating-system packages.
420
+
421
+ Reference stack:
422
+
423
+ ```text
424
+ Ubuntu 24.04
425
+ ROS 2 Jazzy
426
+ Gazebo Harmonic
427
+ gz_ros2_control
428
+ Universal Robots ROS 2 driver
429
+ ur_simulation_gz
430
+ MoveIt 2 + Pilz Industrial Motion Planner
431
+ ```
432
+
433
+ Preview setup:
434
+
435
+ ```bash
436
+ devagent-physical setup --profile ur5e-sim --dry-run
437
+ ```
438
+
439
+ Apply explicitly:
440
+
441
+ ```bash
442
+ devagent-physical setup --profile ur5e-sim --yes
443
+ ```
444
+
445
+ Check runtime:
446
+
447
+ ```bash
448
+ devagent-physical ros doctor
449
+ ```
450
+
451
+ 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.
452
+
453
+ ## Optional AI providers
454
+
455
+ AI is optional and advisory.
456
+
457
+ ```bash
458
+ python -m pip install "devagent-physical-engine[openai]"
459
+ python -m pip install "devagent-physical-engine[anthropic]"
460
+ python -m pip install "devagent-physical-engine[gemini]"
461
+ python -m pip install "devagent-physical-engine[ai]"
462
+ ```
463
+
464
+ Typical credentials:
465
+
466
+ ```bash
467
+ export OPENAI_API_KEY="..."
468
+ export ANTHROPIC_API_KEY="..."
469
+ export GEMINI_API_KEY="..."
470
+ ```
471
+
472
+ Provider-backed interpretation cannot grant physical truth, site qualification, functional-safety certification, or real-execution authority.
473
+
474
+ ## Installed CLIs
475
+
476
+ ```text
477
+ devagent one-command customer verification + interactive report testing
478
+ devagent-commercial commercial/evidence workflow
479
+ devagent-physical deterministic core + ROS/qualification tools
480
+ devagent-physical-ai optional provider-backed engineering front end
481
+ ```
482
+
483
+ ## Simple Mode exit codes
484
+
485
+ | Exit | Meaning |
486
+ | ---: | --- |
487
+ | `0` | bounded full verification is release-ready |
488
+ | `10` | customer input or operational contract failure |
489
+ | `30` | more engineering information is required |
490
+ | `31` | requested simulation is blocked/unqualified |
491
+ | `32` | verification completed but full release readiness is false |
492
+
493
+ # Project status
494
+
495
+ **v1.7.1 — Production/Stable software workflow**
496
+
497
+ v1.7.1 retains the v1.7 industrial Pilz PTP/LIN execution architecture and adds fail-closed adaptive blend selection for geometry-specific Pilz sequence failures. It also retains the cross-vendor profile gate so non-UR5e customer Twins cannot enter the UR5e-only qualified visual executor.
498
+
499
+ Production-oriented software capabilities include:
500
+
501
+ ```text
502
+ one-command customer intake
503
+ XLSX requirement normalization
504
+ validated Requirement → Criterion mapping
505
+ optional provider-backed advisory criterion proposals
506
+ requirement-driven nominal / boundary / fault case generation
507
+ immutable project/Twin lineage
508
+ exact Requirement → Mapping → Verification Plan → Case provenance
509
+ qualified report-test visual execution contract
510
+ industrial Pilz PTP / LIN planning
511
+ adaptive bounded blend selection
512
+ lift-only support-contact ACM lease + exact restore
513
+ Gazebo/MoveIt selected-case visualization
514
+ typed physical measurement binding
515
+ deterministic campaigns
516
+ repeat-run regression
517
+ professional FAT / Evidence Viewer
518
+ interactive selective verification
519
+ Evidence Bundle + replay
520
+ change impact + regression
521
+ provider-neutral optional AI front end
522
+ ```
523
+
524
+ 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.
525
+
526
+ ## Documentation
527
+
528
+ One-command verification:
529
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ONE_COMMAND_VERIFY_V13.md
530
+
531
+ Report-test visual execution foundation:
532
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/REPORT_TEST_VISUAL_EXECUTION_V16.md
533
+
534
+ Evidence Trust / replay / viewer:
535
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/EVIDENCE_TRUST_V12.md
536
+
537
+ Measured physical runtime:
538
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/MEASURED_PHYSICAL_RUNTIME.md
539
+
540
+ Commercial project spine:
541
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/COMMERCIAL_PROJECT_SPINE.md
542
+
543
+ Architecture:
544
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ARCHITECTURE.md
545
+
546
+ Canonical Twin runtime:
547
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/CANONICAL_TWIN_RUNTIME.md
548
+
549
+ Laptop acceptance:
550
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/LAPTOP_ACCEPTANCE.md
551
+
552
+ ## Ownership
553
+
554
+ DevAgent Smart Physical Engine
555
+ Copyright © 2026 Tom Ha
556
+ Original creator: Tom Ha
557
+ Original project: https://github.com/tomha85/devagent-physical-engine
558
+ All rights reserved.
559
+
560
+ See repository `LICENSE`, `NOTICE`, and `COPYRIGHT` for complete ownership and usage terms.