devagent-physical-engine 1.9.0__tar.gz → 2.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. devagent_physical_engine-2.0.0/PKG-INFO +609 -0
  2. devagent_physical_engine-2.0.0/README.md +567 -0
  3. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/pyproject.toml +3 -3
  4. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/__init__.py +31 -1
  5. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_cli.py +100 -10
  6. devagent_physical_engine-2.0.0/src/devagent_physical_engine/commissioning_evidence.py +130 -0
  7. devagent_physical_engine-2.0.0/src/devagent_physical_engine/commissioning_readiness.py +716 -0
  8. devagent_physical_engine-2.0.0/src/devagent_physical_engine/engineering_findings.py +547 -0
  9. devagent_physical_engine-2.0.0/src/devagent_physical_engine/evidence_provider_cli.py +99 -0
  10. devagent_physical_engine-2.0.0/src/devagent_physical_engine/evidence_provider_gateway.py +515 -0
  11. devagent_physical_engine-2.0.0/src/devagent_physical_engine/evidence_provider_policy.py +122 -0
  12. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/production_authority.py +152 -14
  13. devagent_physical_engine-2.0.0/src/devagent_physical_engine/user_cli_v191.py +197 -0
  14. devagent_physical_engine-2.0.0/src/devagent_physical_engine/verification_scope_authority.py +114 -0
  15. devagent_physical_engine-2.0.0/src/devagent_physical_engine.egg-info/PKG-INFO +609 -0
  16. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/SOURCES.txt +16 -0
  17. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/entry_points.txt +1 -1
  18. devagent_physical_engine-2.0.0/tests/test_commissioning_core_v20.py +694 -0
  19. devagent_physical_engine-2.0.0/tests/test_commissioning_evidence_graph_v20.py +168 -0
  20. devagent_physical_engine-2.0.0/tests/test_evidence_provider_gateway_v2.py +512 -0
  21. devagent_physical_engine-2.0.0/tests/test_external_evidence_campaign_authority_v2.py +319 -0
  22. devagent_physical_engine-2.0.0/tests/test_fresh_simulation_cli_v191.py +99 -0
  23. devagent_physical_engine-2.0.0/tests/test_fresh_simulation_service_v191.py +90 -0
  24. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_industrial_motion_v170.py +2 -2
  25. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_package_metadata_v184.py +2 -2
  26. devagent_physical_engine-2.0.0/tests/test_production_external_evidence_v11.py +396 -0
  27. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_transfer_place_diagnostic_v172.py +2 -2
  28. devagent_physical_engine-2.0.0/tests/test_verification_scope_authority_v20.py +120 -0
  29. devagent_physical_engine-1.9.0/PKG-INFO +0 -847
  30. devagent_physical_engine-1.9.0/README.md +0 -805
  31. devagent_physical_engine-1.9.0/src/devagent_physical_engine.egg-info/PKG-INFO +0 -847
  32. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/NOTICE +0 -0
  33. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/setup.cfg +0 -0
  34. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/__init__.py +0 -0
  35. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/compiler.py +0 -0
  36. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/contracts.py +0 -0
  37. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/coordinator.py +0 -0
  38. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/critic.py +0 -0
  39. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/evidence.py +0 -0
  40. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/interpreter.py +0 -0
  41. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/planner.py +0 -0
  42. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/recovery.py +0 -0
  43. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/routing.py +0 -0
  44. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/runtime.py +0 -0
  45. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/semantic.py +0 -0
  46. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/structured.py +0 -0
  47. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ai_cli.py +0 -0
  48. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/cli.py +0 -0
  49. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial.py +0 -0
  50. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_campaign.py +0 -0
  51. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_importer.py +0 -0
  52. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_intelligence.py +0 -0
  53. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_readiness.py +0 -0
  54. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_repository.py +0 -0
  55. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/continuous_clearance.py +0 -0
  56. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/controller_runtime_hotfix_v181.py +0 -0
  57. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/doctor.py +0 -0
  58. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/dynamic_verification_runtime_v190.py +0 -0
  59. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/engineering_agent.py +0 -0
  60. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/engineering_request.py +0 -0
  61. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/evidence_replay.py +0 -0
  62. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/evidence_trust.py +0 -0
  63. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/execution.py +0 -0
  64. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/industrial_motion_hotfix_v170.py +0 -0
  65. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/industrial_motion_v170.py +0 -0
  66. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/industrial_motion_v182.py +0 -0
  67. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/models.py +0 -0
  68. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/one_command.py +0 -0
  69. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/one_command_runtime.py +0 -0
  70. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/one_command_v15.py +0 -0
  71. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/one_command_v16.py +0 -0
  72. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/operating_envelope.py +0 -0
  73. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/__init__.py +0 -0
  74. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/benchmark.py +0 -0
  75. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/candidates.py +0 -0
  76. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/contracts.py +0 -0
  77. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/evaluator.py +0 -0
  78. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/evidence.py +0 -0
  79. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/experience.py +0 -0
  80. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/measured.py +0 -0
  81. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/optimizer.py +0 -0
  82. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/orchestrator.py +0 -0
  83. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/physical_campaign.py +0 -0
  84. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/physical_evidence.py +0 -0
  85. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/physical_evidence_v190.py +0 -0
  86. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/physical_motion.py +0 -0
  87. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/planning.py +0 -0
  88. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/pose_math.py +0 -0
  89. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/preexecution_contract.py +0 -0
  90. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/production_grade.py +0 -0
  91. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/project.py +0 -0
  92. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/__init__.py +0 -0
  93. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/anthropic.py +0 -0
  94. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/common.py +0 -0
  95. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/factory.py +0 -0
  96. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/gemini.py +0 -0
  97. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/openai.py +0 -0
  98. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_criterion.py +0 -0
  99. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_qualification.py +0 -0
  100. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/providers.py +0 -0
  101. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/qualification.py +0 -0
  102. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/qualification_cli.py +0 -0
  103. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/qualification_harness.py +0 -0
  104. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/reference_workcell.py +0 -0
  105. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/report_requirements_v190.py +0 -0
  106. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/report_test_execution.py +0 -0
  107. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/report_test_execution_strict.py +0 -0
  108. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/robot_platform.py +0 -0
  109. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/robot_support_v18.py +0 -0
  110. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/robots.py +0 -0
  111. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/__init__.py +0 -0
  112. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/abb_irb1200.py +0 -0
  113. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/abb_irb1200_preview.py +0 -0
  114. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/acceptance.py +0 -0
  115. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/commands.py +0 -0
  116. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/continuous_clearance_probe.py +0 -0
  117. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/controller_action_probe.py +0 -0
  118. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/destination_support_contact_v182.py +0 -0
  119. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/doctor.py +0 -0
  120. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/fk_pose.py +0 -0
  121. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/fk_probe.py +0 -0
  122. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/frame_alignment.py +0 -0
  123. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/gazebo_cli.py +0 -0
  124. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/gazebo_pose.py +0 -0
  125. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/gazebo_world.py +0 -0
  126. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v170.py +0 -0
  127. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v171.py +0 -0
  128. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v172.py +0 -0
  129. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v182.py +0 -0
  130. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/joint_state_probe.py +0 -0
  131. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/joint_state_recorder.py +0 -0
  132. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/measured_motion.py +0 -0
  133. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/moveit_joint_plan_probe.py +0 -0
  134. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/moveit_joint_plan_v161_probe.py +0 -0
  135. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/moveit_scene.py +0 -0
  136. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/moveit_task_planner.py +0 -0
  137. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe.py +0 -0
  138. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe_v182.py +0 -0
  139. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/preexecution.py +0 -0
  140. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/qualification.py +0 -0
  141. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/qualification_v10.py +0 -0
  142. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/qualification_v11.py +0 -0
  143. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/qualification_v12.py +0 -0
  144. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/report_test_visualization.py +0 -0
  145. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/report_test_visualization_v170.py +0 -0
  146. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/ros_gz_pose_service_probe.py +0 -0
  147. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/scene_probe.py +0 -0
  148. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/state_validity_probe.py +0 -0
  149. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_acm_probe_v170.py +0 -0
  150. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_acm_semantics_v189.py +0 -0
  151. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_lease_v170.py +0 -0
  152. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_runner_v161.py +0 -0
  153. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_v161.py +0 -0
  154. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/task_adapter.py +0 -0
  155. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/task_adapter_v190.py +0 -0
  156. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/task_motion_diagnostics_v190.py +0 -0
  157. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/task_visualization.py +0 -0
  158. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/tf_probe.py +0 -0
  159. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/tool_scene.py +0 -0
  160. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/tool_scene_probe.py +0 -0
  161. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory.py +0 -0
  162. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory_action_probe.py +0 -0
  163. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory_feedback_tracking_v189.py +0 -0
  164. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory_runtime_v190.py +0 -0
  165. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory_tracking.py +0 -0
  166. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/ur5e.py +0 -0
  167. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/ur5e_adapter.py +0 -0
  168. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/ur5e_v10_adapter.py +0 -0
  169. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_carrier_v190.py +0 -0
  170. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_entity_replace_probe_v190.py +0 -0
  171. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_follow.py +0 -0
  172. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_gazebo_follower.py +0 -0
  173. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene.py +0 -0
  174. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe.py +0 -0
  175. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v186.py +0 -0
  176. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v187.py +0 -0
  177. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v188.py +0 -0
  178. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v189.py +0 -0
  179. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_transport.py +0 -0
  180. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/selective_verification.py +0 -0
  181. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/selective_verification_v16.py +0 -0
  182. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/selective_verification_v190.py +0 -0
  183. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/setup_profile.py +0 -0
  184. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/sim_real_qualification.py +0 -0
  185. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/simulation.py +0 -0
  186. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/simulation_platform.py +0 -0
  187. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/smooth_motion_hotfix_v162.py +0 -0
  188. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/support_contact_hotfix_v161.py +0 -0
  189. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/tool_collision.py +0 -0
  190. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/trajectory_qualification.py +0 -0
  191. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/twin.py +0 -0
  192. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/twin_builder.py +0 -0
  193. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/twin_codec.py +0 -0
  194. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/twin_materialization.py +0 -0
  195. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/user_cli.py +0 -0
  196. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/user_cli_v15.py +0 -0
  197. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/user_cli_v16.py +0 -0
  198. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/user_cli_v18.py +0 -0
  199. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/verification.py +0 -0
  200. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/verification_capabilities_v190.py +0 -0
  201. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/workpiece_lifecycle.py +0 -0
  202. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/dependency_links.txt +0 -0
  203. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/requires.txt +0 -0
  204. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/top_level.txt +0 -0
  205. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_abb_irb1200_visual_v18.py +0 -0
  206. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_agent_core.py +0 -0
  207. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_agent_semantic_hardening.py +0 -0
  208. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_ai_cli.py +0 -0
  209. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_ai_cli_v07.py +0 -0
  210. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_commercial_importer_v1.py +0 -0
  211. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_commercial_intelligence_v15.py +0 -0
  212. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_commercial_readiness_v1.py +0 -0
  213. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_commercial_v1.py +0 -0
  214. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_continuous_clearance_v011.py +0 -0
  215. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_controller_failure_diagnostics_v190.py +0 -0
  216. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_controller_runtime_hotfix_v181.py +0 -0
  217. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_core.py +0 -0
  218. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_destination_support_contact_v182.py +0 -0
  219. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_dynamic_report_batch_v190.py +0 -0
  220. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_dynamic_report_contract_end_to_end_v190.py +0 -0
  221. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_dynamic_verification_capabilities_v190.py +0 -0
  222. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_engineering_request_v07.py +0 -0
  223. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_evidence_replay_v12.py +0 -0
  224. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_evidence_trust_coverage_v12.py +0 -0
  225. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_evidence_trust_transport_v12.py +0 -0
  226. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_evidence_trust_v12.py +0 -0
  227. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_evidence_viewer_palette_v130.py +0 -0
  228. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_explicit_detach_world_reassert_v189.py +0 -0
  229. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_gazebo_cli_v0122.py +0 -0
  230. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_golden_abb_runner_v171.py +0 -0
  231. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_golden_abb_showcase.py +0 -0
  232. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_handoff_authority_v190.py +0 -0
  233. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_interpreter_profiles_v08.py +0 -0
  234. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_joint_state_metric_authority_v190.py +0 -0
  235. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_joint_state_probe_v0125.py +0 -0
  236. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_live_provider_qualification.py +0 -0
  237. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_loaded_place_stability_v190.py +0 -0
  238. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_measured_motion_v10.py +0 -0
  239. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_metric_authority_surface_v190.py +0 -0
  240. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_motion_handoff_stability_v190.py +0 -0
  241. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_moveit_planning_diagnostics_v0125.py +0 -0
  242. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_moveit_scene_v0123.py +0 -0
  243. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_natural_language_agent_v07.py +0 -0
  244. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_one_command_hardening_v13.py +0 -0
  245. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_one_command_pose_hardening_v15.py +0 -0
  246. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_one_command_regression_v141.py +0 -0
  247. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_one_command_v13.py +0 -0
  248. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_one_command_v190_injection.py +0 -0
  249. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_openai_strict_schema_v0113.py +0 -0
  250. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_optimization_v05.py +0 -0
  251. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_physical_campaign_v09.py +0 -0
  252. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_physical_evidence_v09.py +0 -0
  253. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_physical_motion_v09.py +0 -0
  254. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_place_preexecution_acm_v189.py +0 -0
  255. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_planning_fallback_v012.py +0 -0
  256. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_pose_math_v0125.py +0 -0
  257. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_preexecution_contract_v10.py +0 -0
  258. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_production_authority_v11.py +0 -0
  259. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_production_grade_coverage_v11.py +0 -0
  260. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_production_grade_v11.py +0 -0
  261. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_project_spine_v013.py +0 -0
  262. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_provider_and_qualification.py +0 -0
  263. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_provider_criterion_v15.py +0 -0
  264. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_qualification_cli_lifecycle_v06.py +0 -0
  265. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_qualification_harness_v06.py +0 -0
  266. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_readme_pypi.py +0 -0
  267. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_real_provider_adapters.py +0 -0
  268. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_reference_workcell_ros_frames_v0125.py +0 -0
  269. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_reference_workcell_v012.py +0 -0
  270. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_release_resting_pose_v189.py +0 -0
  271. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_release_transaction_v189.py +0 -0
  272. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_report_orchestration_v190.py +0 -0
  273. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_report_test_contract_coverage_v16.py +0 -0
  274. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_report_test_lineage_v16.py +0 -0
  275. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_report_test_visual_execution_v16.py +0 -0
  276. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_robot_platform_v08.py +0 -0
  277. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_ros2_production_receipts_v011.py +0 -0
  278. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_ros2_simulation.py +0 -0
  279. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_ros_trajectory_v09.py +0 -0
  280. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_selective_verification_v14.py +0 -0
  281. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_setup_profile.py +0 -0
  282. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_sim_real_qualification_v011.py +0 -0
  283. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_simulation_platform_v08.py +0 -0
  284. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_smooth_motion_hotfix_v162.py +0 -0
  285. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_support_contact_acm_semantics_v189.py +0 -0
  286. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_support_contact_hotfix_v161.py +0 -0
  287. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_tool_collision_v011.py +0 -0
  288. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_tool_scene_v0124.py +0 -0
  289. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_trajectory_action_contract_v189.py +0 -0
  290. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_trajectory_action_probe_v0125.py +0 -0
  291. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_trajectory_feedback_tracking_v189.py +0 -0
  292. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_trajectory_qualification_v09.py +0 -0
  293. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_trajectory_tracking_v0125.py +0 -0
  294. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_transfer_controller_policy_v189.py +0 -0
  295. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_twin_materialization_v10.py +0 -0
  296. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_twin_v08.py +0 -0
  297. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_ur5e_adapter_scopes_v09.py +0 -0
  298. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_ur5e_v10_adapter_scopes.py +0 -0
  299. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_user_cli_interactive_v131.py +0 -0
  300. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_user_cli_progress_v131.py +0 -0
  301. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_user_cli_report_visual_v16.py +0 -0
  302. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_user_cli_selective_v14.py +0 -0
  303. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_user_cli_v15.py +0 -0
  304. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_user_cli_v15_hotfix_inheritance.py +0 -0
  305. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_v052_stabilization.py +0 -0
  306. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_v08_catalog_mapping_regression.py +0 -0
  307. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_workpiece_attach_semantics_v183.py +0 -0
  308. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_workpiece_carrier_v190.py +0 -0
  309. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_workpiece_lifecycle_v011.py +0 -0
  310. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_workpiece_scene_probe_v185.py +0 -0
  311. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_workpiece_semantic_lifecycle_v186.py +0 -0
  312. {devagent_physical_engine-1.9.0 → devagent_physical_engine-2.0.0}/tests/test_workpiece_transport_v189.py +0 -0
@@ -0,0 +1,609 @@
1
+ Metadata-Version: 2.4
2
+ Name: devagent-physical-engine
3
+ Version: 2.0.0
4
+ Summary: Verification-first robotics commissioning control plane with immutable engineering findings, deterministic pre-site readiness, evidence authority, exact-Twin lineage, selective simulation, regression, replay, and FAT reporting.
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
+ Project-URL: Sponsor, https://github.com/sponsors/tomha85
11
+ Keywords: robotics,industrial-automation,agentic-ai,ros2,gazebo,moveit,pilz,verification,selective-testing,digital-twin,fat-testing,regression,evidence,replay
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Requires-Python: >=3.11
22
+ Description-Content-Type: text/markdown
23
+ License-File: NOTICE
24
+ Requires-Dist: PyYAML<7,>=6.0
25
+ Provides-Extra: openai
26
+ Requires-Dist: openai<4,>=3.0; extra == "openai"
27
+ Provides-Extra: anthropic
28
+ Requires-Dist: anthropic<2,>=1.0; extra == "anthropic"
29
+ Provides-Extra: gemini
30
+ Requires-Dist: google-genai<3,>=2.0; extra == "gemini"
31
+ Provides-Extra: ai
32
+ Requires-Dist: openai<4,>=3.0; extra == "ai"
33
+ Requires-Dist: anthropic<2,>=1.0; extra == "ai"
34
+ Requires-Dist: google-genai<3,>=2.0; extra == "ai"
35
+ Provides-Extra: dev
36
+ Requires-Dist: build==1.6.0; extra == "dev"
37
+ Requires-Dist: twine==7.0.0; extra == "dev"
38
+ Requires-Dist: coverage[toml]<8,>=7.6; extra == "dev"
39
+ Requires-Dist: ruff<1,>=0.12; extra == "dev"
40
+ Requires-Dist: pip-audit<3,>=2.9; extra == "dev"
41
+ Dynamic: license-file
42
+
43
+ # DevAgent Smart Physical Engine
44
+
45
+ [![PyPI](https://img.shields.io/pypi/v/devagent-physical-engine.svg)](https://pypi.org/project/devagent-physical-engine/)
46
+ [![Python](https://img.shields.io/pypi/pyversions/devagent-physical-engine.svg)](https://pypi.org/project/devagent-physical-engine/)
47
+ [![Status: Production/Stable](https://img.shields.io/badge/status-production%2Fstable-blue.svg)](#project-status)
48
+ [![Sponsor DevAgent Physical Engine](https://img.shields.io/badge/Sponsor-DevAgent%20Physical%20Engine-EA4AAA?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/tomha85)
49
+
50
+ **Verification-first commissioning engineering for robotics and industrial automation.**
51
+
52
+ DevAgent turns customer engineering inputs into a bounded, evidence-driven pre-site commissioning workflow. AI may help interpret and propose; deterministic engines validate, compile, execute qualified verification, measure evidence, detect regression, and gate promotion.
53
+
54
+ > **OEM robot controllers, PLCs, safety PLCs, certified safety systems, and qualified site processes remain authoritative. DevAgent does not convert simulation into site qualification or functional-safety certification.**
55
+
56
+ ## Engine in action
57
+
58
+ <p align="center">
59
+ <img src="docs/assets/readme/Screenshot%20from%202026-09-02%2015-14-21.png" width="100%" alt="DevAgent Smart Physical Engine exact-Twin UR5e workcell running in Gazebo Harmonic">
60
+ </p>
61
+
62
+ <p align="center">
63
+ <b>Exact-Twin simulation in Gazebo Harmonic</b><br>
64
+ <sub>Real DevAgent engine run with the bounded UR5e workcell, customer-cell entities, physics, and simulation state visible.</sub>
65
+ </p>
66
+
67
+ <table>
68
+ <tr>
69
+ <td width="50%" align="center">
70
+ <img src="docs/assets/readme/Screenshot%20from%202026-09-02%2015-15-17.png" width="100%" alt="DevAgent Smart Physical Engine robot task execution in Gazebo">
71
+ <br><b>Robot task execution</b><br>
72
+ <sub>Gazebo view during the bounded pick–transport–place workflow.</sub>
73
+ </td>
74
+ <td width="50%" align="center">
75
+ <img src="docs/assets/readme/Screenshot%20from%202026-09-02%2015-14-32.png" width="100%" alt="DevAgent Smart Physical Engine MoveIt motion planning scene in RViz">
76
+ <br><b>MoveIt motion planning</b><br>
77
+ <sub>RViz planning-scene view used alongside the qualified ROS 2 / MoveIt execution path.</sub>
78
+ </td>
79
+ </tr>
80
+ </table>
81
+
82
+ <p align="center"><sub><b>Real engine screenshots — not product renders.</b> ROS 2 Jazzy · Gazebo Harmonic · MoveIt 2 · Pilz · UR5e exact-Twin verification.</sub></p>
83
+
84
+ ## v2.0 commissioning verification flow
85
+
86
+ ```text
87
+ Customer engineering files
88
+
89
+ Immutable project + Twin revision
90
+
91
+ Engineering review
92
+
93
+ Requirements + findings + risks + changes
94
+
95
+ Deterministic criterion mapping
96
+
97
+ Requirement-driven verification plan
98
+
99
+ Verification-scope authority
100
+
101
+ Deterministic checks + qualified physical evidence
102
+
103
+ Evidence Graph
104
+
105
+ PASS / FAIL / NOT_TESTED
106
+
107
+ Change Impact + Regression
108
+
109
+ FAT Report + Evidence Bundle
110
+
111
+ Immutable pre-site commissioning decision
112
+ ```
113
+
114
+ The final bounded decision is one of:
115
+
116
+ ```text
117
+ READY_FOR_PRE_SITE_COMMISSIONING
118
+ NOT_READY_FOR_PRE_SITE_COMMISSIONING
119
+ ```
120
+
121
+ That decision means the declared pre-site engineering scope has complete, current evidence according to DevAgent's installed authority contracts. It does **not** mean the real site is commissioned.
122
+
123
+ ## Quick start
124
+
125
+ Python 3.11+ is required.
126
+
127
+ ```bash
128
+ python -m pip install --upgrade devagent-physical-engine==2.0.0
129
+ ```
130
+
131
+ Verify the installed package:
132
+
133
+ ```bash
134
+ python -c "import devagent_physical_engine as d; print(d.__version__)"
135
+ ```
136
+
137
+ Expected:
138
+
139
+ ```text
140
+ 2.0.0
141
+ ```
142
+
143
+ Run the normal customer workflow:
144
+
145
+ ```bash
146
+ devagent verify ./customer-project
147
+ ```
148
+
149
+ Request qualified simulation where available:
150
+
151
+ ```bash
152
+ devagent verify ./customer-project --simulate
153
+ ```
154
+
155
+ Open the Evidence Viewer and keep the engineering terminal active:
156
+
157
+ ```bash
158
+ devagent verify ./customer-project --simulate --open
159
+ ```
160
+
161
+ Machine-readable CI output:
162
+
163
+ ```bash
164
+ devagent verify ./customer-project --json
165
+ ```
166
+
167
+ Default locations:
168
+
169
+ ```text
170
+ Evidence database: ~/.devagent/projects.db
171
+ Results: <customer-project>/devagent-results/
172
+ ```
173
+
174
+ ## Commercial commissioning workflow
175
+
176
+ The normal end-to-end customer path is `devagent verify`. It performs requirement normalization, deterministic mapping, requirement-driven case planning/mapping, verification orchestration, evidence recording, regression, and reporting within the qualified scope.
177
+
178
+ `devagent-commercial` is the lower-level immutable project/evidence/control-plane interface. It is useful for explicit artifact operations, CI, audit, and commissioning-readiness inspection.
179
+
180
+ Example low-level operations:
181
+
182
+ ```bash
183
+ devagent-commercial --db ~/.devagent/projects.db init CELL-01 \
184
+ --name "Customer Cell" \
185
+ --site SITE-01 \
186
+ --workcell CNC-LOAD
187
+
188
+ devagent-commercial --db ~/.devagent/projects.db import-twin CELL-01 ./customer-project
189
+
190
+ devagent-commercial --db ~/.devagent/projects.db requirements CELL-01 requirements.yaml
191
+
192
+ devagent-commercial --db ~/.devagent/projects.db engineering-review CELL-01 <requirement-set-artifact-id>
193
+
194
+ devagent-commercial --db ~/.devagent/projects.db verification-plan CELL-01 verification.yaml
195
+
196
+ devagent-commercial --db ~/.devagent/projects.db campaign CELL-01 requirements.yaml \
197
+ --measurement <physical-measurement-artifact-id>
198
+
199
+ devagent-commercial --db ~/.devagent/projects.db fat-report CELL-01 <campaign-artifact-id>
200
+
201
+ devagent-commercial --db ~/.devagent/projects.db evidence-bundle CELL-01 <campaign-artifact-id>
202
+
203
+ devagent-commercial --db ~/.devagent/projects.db commissioning-readiness CELL-01
204
+
205
+ devagent-commercial --db ~/.devagent/projects.db commissioning-status CELL-01
206
+ ```
207
+
208
+ `verification-plan` records an explicit deterministic plan from the supplied spec. It does **not** invent a requirement→case mapping. Final commissioning readiness requires exact current requirement-to-case lineage; the one-command workflow records that mapping, and low-level/custom integrations must record equivalent immutable lineage instead of bypassing the gate.
209
+
210
+ Use `finding-disposition` to record an immutable engineering disposition. A blocking finding cannot be resolved without current-Twin evidence.
211
+
212
+ ## What DevAgent proves
213
+
214
+ DevAgent separates planning, execution, measurement, verdicts, and authority.
215
+
216
+ ```text
217
+ Requirement / report test
218
+
219
+ Declarative verification capability
220
+
221
+ Exact Twin revision/hash
222
+
223
+ Exact verification plan + case mapping
224
+
225
+ Qualified evidence reuse or qualified execution
226
+
227
+ Measured evidence
228
+
229
+ Deterministic verdict
230
+
231
+ PASS / FAIL / NOT_TESTED
232
+ ```
233
+
234
+ A generated plan is not physical proof. A replay is not a new execution. An AI response is not engineering evidence. A simulation result does not grant site qualification.
235
+
236
+ ## Engineering findings and risk authority
237
+
238
+ v2.0 records first-class immutable artifacts for:
239
+
240
+ ```text
241
+ engineering_finding
242
+ engineering_review
243
+ engineering_finding_disposition
244
+ ```
245
+
246
+ High and critical findings are structurally blocking. AI or a human reviewer may propose findings, but findings do not create PASS authority.
247
+
248
+ A blocking finding may be marked resolved only when the disposition references evidence bound to the current Twin scope. Acknowledged, deferred, or accepted-risk records remain explicit and do not silently promote readiness.
249
+
250
+ ## Verification-scope authority
251
+
252
+ A verification plan is not trusted merely because it belongs to the same Twin.
253
+
254
+ `VerificationScopeAuthority` deterministically reconstructs the expected test space from the exact current campaign requirements and compares the stored plan and requirement-to-case mapping with that expected scope.
255
+
256
+ If a requirement change alters payload, boundary, or fault coverage but an old plan/map is reused, readiness fails closed.
257
+
258
+ ## Physical evidence authority
259
+
260
+ ### Internal simulation / hardware-shadow evidence
261
+
262
+ A standalone measurement JSON cannot grant final readiness merely by claiming `gazebo_moveit`, a run ID, and a qualification reference.
263
+
264
+ Internal evidence must preserve an exact immutable chain:
265
+
266
+ ```text
267
+ physical_measurement
268
+
269
+ runtime_measurement_binding
270
+
271
+ physical_motion_plan
272
+
273
+ exact Twin + run + qualification lineage
274
+ ```
275
+
276
+ ### External simulator evidence
277
+
278
+ External evidence is imported as candidate evidence and is independently gated by installed provider policy.
279
+
280
+ Built-in provider identities include:
281
+
282
+ ```text
283
+ ABB RobotStudio
284
+ FANUC ROBOGUIDE
285
+ KUKA.Sim
286
+ Visual Components
287
+ RoboDK
288
+ Siemens Process Simulate
289
+ ```
290
+
291
+ These identities do not imply qualification. A provider remains candidate-only unless a code-reviewed policy explicitly qualifies its version/export schema and binds exact source provenance, candidate evidence, Twin hash, metrics, and qualification reference.
292
+
293
+ ## Whole-project staleness
294
+
295
+ Each pre-site decision records a deterministic readiness-state snapshot hash.
296
+
297
+ A previous READY result becomes stale when readiness-relevant state changes, including:
298
+
299
+ ```text
300
+ Twin revision
301
+ requirement set
302
+ engineering review
303
+ finding / disposition
304
+ verification plan
305
+ requirement-case mapping
306
+ physical measurement / runtime binding
307
+ campaign
308
+ change impact
309
+ regression
310
+ FAT report
311
+ evidence bundle
312
+ ```
313
+
314
+ This also catches same-Twin changes. `commissioning-status` verifies both the decision hash and the current project-state snapshot before reporting READY.
315
+
316
+ ## Evidence Graph and replay
317
+
318
+ The read-only Evidence Graph links requirements, Twin revisions, campaigns, findings, dispositions, measurements, motion plans, regressions, FAT reports, evidence bundles, and final readiness decisions.
319
+
320
+ ```bash
321
+ devagent-commercial --db ~/.devagent/projects.db evidence-graph CELL-01
322
+ ```
323
+
324
+ Write a self-contained viewer:
325
+
326
+ ```bash
327
+ devagent-commercial --db ~/.devagent/projects.db evidence-viewer CELL-01 \
328
+ --output ./EVIDENCE.html
329
+ ```
330
+
331
+ Replay reconstructs persisted evidence identity. It never commands Gazebo, MoveIt, a robot, PLC, or safety PLC.
332
+
333
+ ## Interactive engineering session
334
+
335
+ Use `--interactive`, or `--open` from a real terminal, to keep a bounded prompt:
336
+
337
+ ```text
338
+ status
339
+ tests
340
+ test SELECTOR
341
+ simulate SELECTOR
342
+ simulate all
343
+ simulate --fresh SELECTOR
344
+ simulate --fresh all
345
+ rerun SELECTOR
346
+ rerun failed
347
+ rerun blocked
348
+ rerun affected
349
+ rerun all
350
+ replay
351
+ report
352
+ log
353
+ help
354
+ quit
355
+ ```
356
+
357
+ `test SELECTOR` evaluates existing evidence without commanding the simulator.
358
+
359
+ `simulate TEST-X` reuses exact qualified evidence when available and executes only when the mapped physical case is missing.
360
+
361
+ `simulate --fresh TEST-X` and physical `rerun ...` explicitly request new execution and append new immutable evidence.
362
+
363
+ Report-wide fresh execution still deduplicates shared physical case IDs.
364
+
365
+ ## Qualified visual-execution scope
366
+
367
+ Measured report-test execution remains intentionally narrow:
368
+
369
+ ```text
370
+ robot: UR5e
371
+ operation: load
372
+ case scope: qualified mapped physical report cases within the packaged authority
373
+ runtime: Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic + MoveIt/Pilz
374
+ ```
375
+
376
+ The target-proven UR5e path retains controller-manager/action readiness binding, canonical Twin/PlanningScene verification, conservative Pilz PTP/LIN motion, workpiece attach/carry/release semantics, controller-feedback tracking evidence, and post-release settle verification.
377
+
378
+ Unsupported customer Twins, unqualified robot profiles, boundary/fault cases outside the qualified scope, ambiguous case mappings, or incomplete lineage fail closed.
379
+
380
+ ABB IRB1200 remains a separate experimental visual simulation path. FANUC/KUKA and other robot/vendor paths retain their truthful support tiers until separately qualified.
381
+
382
+ Inspect robot support:
383
+
384
+ ```bash
385
+ devagent robots
386
+ devagent robot doctor abb_irb1200
387
+ devagent robot visualize abb_irb1200
388
+ ```
389
+
390
+ ## Customer input
391
+
392
+ A customer folder can contain the engineering material the team already has:
393
+
394
+ ```text
395
+ ACME_CNC_CELL_TEST/
396
+ ├── project.yaml
397
+ ├── requirements.xlsx
398
+ ├── devagent-twin.yaml
399
+ ├── robot.urdf
400
+ ├── robot.urdf.xacro
401
+ ├── robot.srdf
402
+ ├── tcp.yaml
403
+ ├── calibration.yaml
404
+ ├── layout/
405
+ │ ├── cell_layout.yaml
406
+ │ └── meshes/
407
+ ├── robot_program/
408
+ │ └── mission.yaml
409
+ └── expected/
410
+ └── expected_findings.json
411
+ ```
412
+
413
+ Important rule:
414
+
415
+ ```text
416
+ file discovered != engineering fact proven
417
+ ```
418
+
419
+ DevAgent fingerprints and classifies files, but filenames do not prove poses, TCPs, calibrations, collision geometry, safety behavior, or physical performance.
420
+
421
+ If critical information is missing or ambiguous, DevAgent asks for information instead of inventing engineering facts.
422
+
423
+ ## Results and evidence
424
+
425
+ Typical output:
426
+
427
+ ```text
428
+ customer-project/
429
+ └── devagent-results/
430
+ ├── RUN.log
431
+ ├── SUMMARY.json
432
+ ├── INTAKE.json
433
+ ├── QUESTIONS.md
434
+ ├── normalized/
435
+ │ ├── requirements.csv
436
+ │ └── devagent-twin.yaml
437
+ ├── report-test-visualization/
438
+ ├── FAT_REPORT.html
439
+ └── EVIDENCE.html
440
+ ```
441
+
442
+ `EVIDENCE.html` is read-only engineering evidence. `RUN.log` is a human progress/debug trace and does not replace immutable evidence artifacts.
443
+
444
+ ## Physical simulation setup
445
+
446
+ `pip install` does not install ROS 2, Gazebo, MoveIt, OEM drivers, or privileged operating-system packages.
447
+
448
+ Reference stack:
449
+
450
+ ```text
451
+ Ubuntu 24.04
452
+ ROS 2 Jazzy
453
+ Gazebo Harmonic
454
+ gz_ros2_control
455
+ MoveIt 2
456
+ ```
457
+
458
+ UR5e measured report-test execution additionally uses the Universal Robots ROS 2 driver, `ur_simulation_gz`, and Pilz Industrial Motion Planner.
459
+
460
+ Preview UR5e setup:
461
+
462
+ ```bash
463
+ devagent-physical setup --profile ur5e-sim --dry-run
464
+ ```
465
+
466
+ Apply explicitly:
467
+
468
+ ```bash
469
+ devagent-physical setup --profile ur5e-sim --yes
470
+ ```
471
+
472
+ Check runtime prerequisites:
473
+
474
+ ```bash
475
+ devagent-physical ros doctor
476
+ devagent robot doctor abb_irb1200
477
+ ```
478
+
479
+ 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.
480
+
481
+ ## Optional AI providers
482
+
483
+ AI is optional and advisory.
484
+
485
+ ```bash
486
+ python -m pip install "devagent-physical-engine[openai]"
487
+ python -m pip install "devagent-physical-engine[anthropic]"
488
+ python -m pip install "devagent-physical-engine[gemini]"
489
+ python -m pip install "devagent-physical-engine[ai]"
490
+ ```
491
+
492
+ Typical credentials:
493
+
494
+ ```bash
495
+ export OPENAI_API_KEY="..."
496
+ export ANTHROPIC_API_KEY="..."
497
+ export GEMINI_API_KEY="..."
498
+ ```
499
+
500
+ Provider-backed interpretation cannot grant physical truth, site qualification, functional-safety certification, or real-execution authority.
501
+
502
+ ## Installed CLIs
503
+
504
+ ```text
505
+ devagent one-command verification, interactive report testing, robot support/visualization
506
+ devagent-commercial project, evidence, findings, FAT, regression, commissioning-readiness workflow
507
+ devagent-physical deterministic core + ROS/qualification tools
508
+ devagent-physical-ai optional provider-backed engineering front end
509
+ ```
510
+
511
+ ## Simple Mode exit codes
512
+
513
+ | Exit | Meaning |
514
+ | ---: | --- |
515
+ | `0` | bounded full verification is release-ready |
516
+ | `10` | customer input or operational contract failure |
517
+ | `30` | more engineering information is required |
518
+ | `31` | requested simulation is blocked/unqualified |
519
+ | `32` | verification completed but full release readiness is false |
520
+
521
+ # Project status
522
+
523
+ **v2.0.0 — Production/Stable software workflow; commissioning verification control plane with fail-closed pre-site readiness**
524
+
525
+ v2.0.0 adds immutable engineering findings/dispositions, deterministic verification-scope authority, stronger internal/external evidence authority, commissioning-aware Evidence Graph lineage, whole-project staleness detection, and an immutable pre-site commissioning readiness decision.
526
+
527
+ Production-oriented software capabilities include:
528
+
529
+ ```text
530
+ one-command customer intake
531
+ XLSX/CSV/YAML/JSON requirement normalization
532
+ immutable project/Twin lineage
533
+ engineering review + first-class risk findings
534
+ evidence-backed finding dispositions
535
+ validated Requirement → Criterion mapping
536
+ optional provider-backed advisory criterion proposals
537
+ requirement-driven nominal / boundary / fault case generation
538
+ verification-scope authority against current requirements
539
+ exact Requirement → Mapping → Verification Plan → Case provenance
540
+ case-centric qualified evidence reuse
541
+ explicit fresh physical execution
542
+ verification-owned simulator lifecycle cleanup
543
+ mixed deterministic + physical report orchestration
544
+ truthful PASS / FAIL / NOT_TESTED
545
+ runtime-bound internal physical evidence authority
546
+ policy-bound external simulator evidence authority
547
+ commissioning-aware Evidence Graph
548
+ whole-project readiness staleness detection
549
+ change impact + regression
550
+ professional FAT report
551
+ Evidence Bundle + replay
552
+ immutable READY / NOT_READY pre-site commissioning decision
553
+ provider-neutral optional AI front end
554
+ ```
555
+
556
+ Production/Stable describes the bounded software workflow. The target-proven UR5e claim remains limited to the qualified packaged scope and acceptance environment. v2.0.0 does not claim arbitrary customer cells are physically qualified, site-qualified, functionally safe, commissioned, or authorized for autonomous real execution.
557
+
558
+ Current hard authority boundaries remain:
559
+
560
+ ```text
561
+ site_qualification = false
562
+ functional_safety_certification = false
563
+ commissioning_completed = false
564
+ real_execution_allowed = false
565
+ ```
566
+
567
+ unless separately proven by an appropriate qualified process.
568
+
569
+ ## Documentation
570
+
571
+ v2.0.0 release notes:
572
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V2_0_0.md
573
+
574
+ v1.9.1 release notes:
575
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_1.md
576
+
577
+ v1.9.0 release notes:
578
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/RELEASE_NOTES_V1_9_0.md
579
+
580
+ One-command verification:
581
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ONE_COMMAND_VERIFY_V13.md
582
+
583
+ Evidence Trust / replay / viewer:
584
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/EVIDENCE_TRUST_V12.md
585
+
586
+ Measured physical runtime:
587
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/MEASURED_PHYSICAL_RUNTIME.md
588
+
589
+ Commercial project spine:
590
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/COMMERCIAL_PROJECT_SPINE.md
591
+
592
+ Architecture:
593
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ARCHITECTURE.md
594
+
595
+ Canonical Twin runtime:
596
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/CANONICAL_TWIN_RUNTIME.md
597
+
598
+ Laptop acceptance:
599
+ https://github.com/tomha85/devagent-physical-engine/blob/main/docs/LAPTOP_ACCEPTANCE.md
600
+
601
+ ## Ownership
602
+
603
+ DevAgent Smart Physical Engine
604
+ Copyright © 2026 Tom Ha
605
+ Original creator: Tom Ha
606
+ Original project: https://github.com/tomha85/devagent-physical-engine
607
+ All rights reserved.
608
+
609
+ See repository `LICENSE`, `NOTICE`, and `COPYRIGHT` for complete ownership and usage terms.