devagent-physical-engine 1.9.1__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.
- devagent_physical_engine-2.0.0/PKG-INFO +609 -0
- devagent_physical_engine-2.0.0/README.md +567 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/pyproject.toml +2 -2
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/__init__.py +31 -1
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_cli.py +100 -10
- devagent_physical_engine-2.0.0/src/devagent_physical_engine/commissioning_evidence.py +130 -0
- devagent_physical_engine-2.0.0/src/devagent_physical_engine/commissioning_readiness.py +716 -0
- devagent_physical_engine-2.0.0/src/devagent_physical_engine/engineering_findings.py +547 -0
- devagent_physical_engine-2.0.0/src/devagent_physical_engine/evidence_provider_cli.py +99 -0
- devagent_physical_engine-2.0.0/src/devagent_physical_engine/evidence_provider_gateway.py +515 -0
- devagent_physical_engine-2.0.0/src/devagent_physical_engine/evidence_provider_policy.py +122 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/production_authority.py +152 -14
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/user_cli_v191.py +3 -0
- devagent_physical_engine-2.0.0/src/devagent_physical_engine/verification_scope_authority.py +114 -0
- devagent_physical_engine-2.0.0/src/devagent_physical_engine.egg-info/PKG-INFO +609 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/SOURCES.txt +13 -0
- devagent_physical_engine-2.0.0/tests/test_commissioning_core_v20.py +694 -0
- devagent_physical_engine-2.0.0/tests/test_commissioning_evidence_graph_v20.py +168 -0
- devagent_physical_engine-2.0.0/tests/test_evidence_provider_gateway_v2.py +512 -0
- devagent_physical_engine-2.0.0/tests/test_external_evidence_campaign_authority_v2.py +319 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_industrial_motion_v170.py +2 -2
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_package_metadata_v184.py +2 -2
- devagent_physical_engine-2.0.0/tests/test_production_external_evidence_v11.py +396 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_transfer_place_diagnostic_v172.py +2 -2
- devagent_physical_engine-2.0.0/tests/test_verification_scope_authority_v20.py +120 -0
- devagent_physical_engine-1.9.1/PKG-INFO +0 -884
- devagent_physical_engine-1.9.1/README.md +0 -842
- devagent_physical_engine-1.9.1/src/devagent_physical_engine.egg-info/PKG-INFO +0 -884
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/NOTICE +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/setup.cfg +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/__init__.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/compiler.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/contracts.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/coordinator.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/critic.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/evidence.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/interpreter.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/planner.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/recovery.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/routing.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/runtime.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/semantic.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/agent/structured.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ai_cli.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/cli.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_campaign.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_importer.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_intelligence.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_readiness.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/commercial_repository.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/continuous_clearance.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/controller_runtime_hotfix_v181.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/doctor.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/dynamic_verification_runtime_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/engineering_agent.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/engineering_request.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/evidence_replay.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/evidence_trust.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/execution.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/industrial_motion_hotfix_v170.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/industrial_motion_v170.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/industrial_motion_v182.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/models.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/one_command.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/one_command_runtime.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/one_command_v15.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/one_command_v16.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/operating_envelope.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/__init__.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/benchmark.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/candidates.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/contracts.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/evaluator.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/evidence.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/experience.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/measured.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/optimizer.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/optimization/orchestrator.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/physical_campaign.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/physical_evidence.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/physical_evidence_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/physical_motion.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/planning.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/pose_math.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/preexecution_contract.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/production_grade.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/project.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/__init__.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/anthropic.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/common.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/factory.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/gemini.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_adapters/openai.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_criterion.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/provider_qualification.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/providers.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/qualification.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/qualification_cli.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/qualification_harness.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/reference_workcell.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/report_requirements_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/report_test_execution.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/report_test_execution_strict.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/robot_platform.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/robot_support_v18.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/robots.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/__init__.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/abb_irb1200.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/abb_irb1200_preview.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/acceptance.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/commands.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/continuous_clearance_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/controller_action_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/destination_support_contact_v182.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/doctor.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/fk_pose.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/fk_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/frame_alignment.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/gazebo_cli.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/gazebo_pose.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/gazebo_world.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v170.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v171.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v172.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/industrial_sequence_planner_v182.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/joint_state_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/joint_state_recorder.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/measured_motion.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/moveit_joint_plan_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/moveit_joint_plan_v161_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/moveit_scene.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/moveit_task_planner.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/pilz_sequence_plan_probe_v182.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/preexecution.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/qualification.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/qualification_v10.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/qualification_v11.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/qualification_v12.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/report_test_visualization.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/report_test_visualization_v170.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/ros_gz_pose_service_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/scene_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/state_validity_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_acm_probe_v170.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_acm_semantics_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_lease_v170.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_runner_v161.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/support_contact_v161.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/task_adapter.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/task_adapter_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/task_motion_diagnostics_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/task_visualization.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/tf_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/tool_scene.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/tool_scene_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory_action_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory_feedback_tracking_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory_runtime_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/trajectory_tracking.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/ur5e.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/ur5e_adapter.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/ur5e_v10_adapter.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_carrier_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_entity_replace_probe_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_follow.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_gazebo_follower.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v186.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v187.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v188.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/ros2/workpiece_transport.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/selective_verification.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/selective_verification_v16.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/selective_verification_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/setup_profile.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/sim_real_qualification.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/simulation.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/simulation_platform.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/smooth_motion_hotfix_v162.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/support_contact_hotfix_v161.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/tool_collision.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/trajectory_qualification.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/twin.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/twin_builder.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/twin_codec.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/twin_materialization.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/user_cli.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/user_cli_v15.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/user_cli_v16.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/user_cli_v18.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/verification.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/verification_capabilities_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine/workpiece_lifecycle.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/dependency_links.txt +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/entry_points.txt +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/requires.txt +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/src/devagent_physical_engine.egg-info/top_level.txt +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_abb_irb1200_visual_v18.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_agent_core.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_agent_semantic_hardening.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_ai_cli.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_ai_cli_v07.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_commercial_importer_v1.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_commercial_intelligence_v15.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_commercial_readiness_v1.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_commercial_v1.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_continuous_clearance_v011.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_controller_failure_diagnostics_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_controller_runtime_hotfix_v181.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_core.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_destination_support_contact_v182.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_dynamic_report_batch_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_dynamic_report_contract_end_to_end_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_dynamic_verification_capabilities_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_engineering_request_v07.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_evidence_replay_v12.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_evidence_trust_coverage_v12.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_evidence_trust_transport_v12.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_evidence_trust_v12.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_evidence_viewer_palette_v130.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_explicit_detach_world_reassert_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_fresh_simulation_cli_v191.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_fresh_simulation_service_v191.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_gazebo_cli_v0122.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_golden_abb_runner_v171.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_golden_abb_showcase.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_handoff_authority_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_interpreter_profiles_v08.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_joint_state_metric_authority_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_joint_state_probe_v0125.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_live_provider_qualification.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_loaded_place_stability_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_measured_motion_v10.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_metric_authority_surface_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_motion_handoff_stability_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_moveit_planning_diagnostics_v0125.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_moveit_scene_v0123.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_natural_language_agent_v07.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_one_command_hardening_v13.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_one_command_pose_hardening_v15.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_one_command_regression_v141.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_one_command_v13.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_one_command_v190_injection.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_openai_strict_schema_v0113.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_optimization_v05.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_physical_campaign_v09.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_physical_evidence_v09.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_physical_motion_v09.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_place_preexecution_acm_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_planning_fallback_v012.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_pose_math_v0125.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_preexecution_contract_v10.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_production_authority_v11.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_production_grade_coverage_v11.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_production_grade_v11.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_project_spine_v013.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_provider_and_qualification.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_provider_criterion_v15.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_qualification_cli_lifecycle_v06.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_qualification_harness_v06.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_readme_pypi.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_real_provider_adapters.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_reference_workcell_ros_frames_v0125.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_reference_workcell_v012.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_release_resting_pose_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_release_transaction_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_report_orchestration_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_report_test_contract_coverage_v16.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_report_test_lineage_v16.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_report_test_visual_execution_v16.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_robot_platform_v08.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_ros2_production_receipts_v011.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_ros2_simulation.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_ros_trajectory_v09.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_selective_verification_v14.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_setup_profile.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_sim_real_qualification_v011.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_simulation_platform_v08.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_smooth_motion_hotfix_v162.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_support_contact_acm_semantics_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_support_contact_hotfix_v161.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_tool_collision_v011.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_tool_scene_v0124.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_trajectory_action_contract_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_trajectory_action_probe_v0125.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_trajectory_feedback_tracking_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_trajectory_qualification_v09.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_trajectory_tracking_v0125.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_transfer_controller_policy_v189.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_twin_materialization_v10.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_twin_v08.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_ur5e_adapter_scopes_v09.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_ur5e_v10_adapter_scopes.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_user_cli_interactive_v131.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_user_cli_progress_v131.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_user_cli_report_visual_v16.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_user_cli_selective_v14.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_user_cli_v15.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_user_cli_v15_hotfix_inheritance.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_v052_stabilization.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_v08_catalog_mapping_regression.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_workpiece_attach_semantics_v183.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_workpiece_carrier_v190.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_workpiece_lifecycle_v011.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_workpiece_scene_probe_v185.py +0 -0
- {devagent_physical_engine-1.9.1 → devagent_physical_engine-2.0.0}/tests/test_workpiece_semantic_lifecycle_v186.py +0 -0
- {devagent_physical_engine-1.9.1 → 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
|
+
[](https://pypi.org/project/devagent-physical-engine/)
|
|
46
|
+
[](https://pypi.org/project/devagent-physical-engine/)
|
|
47
|
+
[](#project-status)
|
|
48
|
+
[](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.
|