devagent-physical-engine 1.0.0__tar.gz → 1.1.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-1.1.0/PKG-INFO +281 -0
- devagent_physical_engine-1.1.0/README.md +240 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/pyproject.toml +2 -2
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/__init__.py +23 -1
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/commercial_cli.py +121 -25
- devagent_physical_engine-1.1.0/src/devagent_physical_engine/production_authority.py +241 -0
- devagent_physical_engine-1.1.0/src/devagent_physical_engine/production_grade.py +1073 -0
- devagent_physical_engine-1.1.0/src/devagent_physical_engine.egg-info/PKG-INFO +281 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine.egg-info/SOURCES.txt +5 -0
- devagent_physical_engine-1.1.0/tests/test_production_authority_v11.py +282 -0
- devagent_physical_engine-1.1.0/tests/test_production_grade_coverage_v11.py +379 -0
- devagent_physical_engine-1.1.0/tests/test_production_grade_v11.py +342 -0
- devagent_physical_engine-1.0.0/PKG-INFO +0 -398
- devagent_physical_engine-1.0.0/README.md +0 -357
- devagent_physical_engine-1.0.0/src/devagent_physical_engine.egg-info/PKG-INFO +0 -398
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/NOTICE +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/setup.cfg +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/__init__.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/compiler.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/contracts.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/coordinator.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/critic.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/evidence.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/interpreter.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/planner.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/recovery.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/routing.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/runtime.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/semantic.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/agent/structured.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ai_cli.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/cli.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/commercial.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/commercial_campaign.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/commercial_importer.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/commercial_readiness.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/commercial_repository.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/continuous_clearance.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/doctor.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/engineering_agent.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/engineering_request.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/execution.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/models.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/operating_envelope.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/__init__.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/benchmark.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/candidates.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/contracts.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/evaluator.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/evidence.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/experience.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/measured.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/optimizer.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/optimization/orchestrator.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/physical_campaign.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/physical_evidence.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/physical_motion.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/planning.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/pose_math.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/preexecution_contract.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/project.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/provider_adapters/__init__.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/provider_adapters/anthropic.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/provider_adapters/common.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/provider_adapters/factory.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/provider_adapters/gemini.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/provider_adapters/openai.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/provider_qualification.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/providers.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/qualification.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/qualification_cli.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/qualification_harness.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/reference_workcell.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/robot_platform.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/robots.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/__init__.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/acceptance.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/commands.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/continuous_clearance_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/doctor.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/fk_pose.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/fk_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/frame_alignment.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/gazebo_cli.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/gazebo_pose.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/gazebo_world.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/joint_state_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/joint_state_recorder.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/measured_motion.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/moveit_joint_plan_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/moveit_scene.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/moveit_task_planner.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/preexecution.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/qualification.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/qualification_v10.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/qualification_v11.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/qualification_v12.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/scene_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/state_validity_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/task_adapter.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/task_visualization.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/tf_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/tool_scene.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/tool_scene_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/trajectory.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/trajectory_action_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/trajectory_tracking.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/ur5e.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/ur5e_adapter.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/ur5e_v10_adapter.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/workpiece_follow.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/workpiece_gazebo_follower.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/workpiece_scene.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/setup_profile.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/sim_real_qualification.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/simulation.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/simulation_platform.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/tool_collision.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/trajectory_qualification.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/twin.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/twin_builder.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/twin_materialization.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/verification.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine/workpiece_lifecycle.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine.egg-info/dependency_links.txt +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine.egg-info/entry_points.txt +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine.egg-info/requires.txt +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/src/devagent_physical_engine.egg-info/top_level.txt +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_agent_core.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_agent_semantic_hardening.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_ai_cli.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_ai_cli_v07.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_commercial_importer_v1.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_commercial_readiness_v1.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_commercial_v1.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_continuous_clearance_v011.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_core.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_engineering_request_v07.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_gazebo_cli_v0122.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_interpreter_profiles_v08.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_joint_state_probe_v0125.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_live_provider_qualification.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_measured_motion_v10.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_moveit_planning_diagnostics_v0125.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_moveit_scene_v0123.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_natural_language_agent_v07.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_openai_strict_schema_v0113.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_optimization_v05.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_physical_campaign_v09.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_physical_evidence_v09.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_physical_motion_v09.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_planning_fallback_v012.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_pose_math_v0125.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_preexecution_contract_v10.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_project_spine_v013.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_provider_and_qualification.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_qualification_cli_lifecycle_v06.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_qualification_harness_v06.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_readme_pypi.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_real_provider_adapters.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_reference_workcell_ros_frames_v0125.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_reference_workcell_v012.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_robot_platform_v08.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_ros2_production_receipts_v011.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_ros2_simulation.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_ros_trajectory_v09.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_setup_profile.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_sim_real_qualification_v011.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_simulation_platform_v08.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_tool_collision_v011.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_tool_scene_v0124.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_trajectory_action_probe_v0125.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_trajectory_qualification_v09.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_trajectory_tracking_v0125.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_twin_materialization_v10.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_twin_v08.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_ur5e_adapter_scopes_v09.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_ur5e_v10_adapter_scopes.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_v052_stabilization.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_v08_catalog_mapping_regression.py +0 -0
- {devagent_physical_engine-1.0.0 → devagent_physical_engine-1.1.0}/tests/test_workpiece_lifecycle_v011.py +0 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: devagent-physical-engine
|
|
3
|
+
Version: 1.1.0
|
|
4
|
+
Summary: Production-grade verification-first customer Twin, measured physical evidence, change-impact regression, and FAT evidence runtime for robotics and industrial automation.
|
|
5
|
+
Author: Tom Ha
|
|
6
|
+
License: All Rights Reserved
|
|
7
|
+
Project-URL: Homepage, https://github.com/tomha85/devagent-physical-engine
|
|
8
|
+
Project-URL: Repository, https://github.com/tomha85/devagent-physical-engine
|
|
9
|
+
Project-URL: Issues, https://github.com/tomha85/devagent-physical-engine/issues
|
|
10
|
+
Keywords: robotics,industrial-automation,agentic-ai,ros2,verification,digital-twin,fat-testing,regression
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Requires-Python: >=3.11
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: NOTICE
|
|
23
|
+
Requires-Dist: PyYAML<7,>=6.0
|
|
24
|
+
Provides-Extra: openai
|
|
25
|
+
Requires-Dist: openai<4,>=3.0; extra == "openai"
|
|
26
|
+
Provides-Extra: anthropic
|
|
27
|
+
Requires-Dist: anthropic<2,>=1.0; extra == "anthropic"
|
|
28
|
+
Provides-Extra: gemini
|
|
29
|
+
Requires-Dist: google-genai<3,>=2.0; extra == "gemini"
|
|
30
|
+
Provides-Extra: ai
|
|
31
|
+
Requires-Dist: openai<4,>=3.0; extra == "ai"
|
|
32
|
+
Requires-Dist: anthropic<2,>=1.0; extra == "ai"
|
|
33
|
+
Requires-Dist: google-genai<3,>=2.0; extra == "ai"
|
|
34
|
+
Provides-Extra: dev
|
|
35
|
+
Requires-Dist: build==1.6.0; extra == "dev"
|
|
36
|
+
Requires-Dist: twine==7.0.0; extra == "dev"
|
|
37
|
+
Requires-Dist: coverage[toml]<8,>=7.6; extra == "dev"
|
|
38
|
+
Requires-Dist: ruff<1,>=0.12; extra == "dev"
|
|
39
|
+
Requires-Dist: pip-audit<3,>=2.9; extra == "dev"
|
|
40
|
+
Dynamic: license-file
|
|
41
|
+
|
|
42
|
+
# DevAgent Smart Physical Engine
|
|
43
|
+
|
|
44
|
+
[](https://pypi.org/project/devagent-physical-engine/)
|
|
45
|
+
[](https://pypi.org/project/devagent-physical-engine/)
|
|
46
|
+
[](#project-status)
|
|
47
|
+
|
|
48
|
+
**Verification-first commissioning engineering: customer Twin import, measured physical evidence, deterministic requirement verification, change-impact regression, and FAT evidence for robotics and industrial automation.**
|
|
49
|
+
|
|
50
|
+
> **AI proposes. Deterministic engines validate, compile, verify, measure, and gate promotion. OEM robot controllers, PLCs, safety PLCs, and certified safety systems remain authoritative.**
|
|
51
|
+
|
|
52
|
+
DevAgent is designed to answer a commercial engineering question: **before engineers travel onsite, what can be proven about this robot cell, what failed, what changed, and what evidence supports the conclusion?**
|
|
53
|
+
|
|
54
|
+
## Product workflow
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
CUSTOMER PROJECT / SITE / WORKCELL
|
|
58
|
+
|
|
|
59
|
+
v
|
|
60
|
+
CUSTOMER ASSETS + EXPLICIT TWIN EVIDENCE
|
|
61
|
+
|
|
|
62
|
+
v
|
|
63
|
+
IMMUTABLE TWIN REVISION
|
|
64
|
+
|
|
|
65
|
+
v
|
|
66
|
+
REQUIREMENTS
|
|
67
|
+
|
|
|
68
|
+
v
|
|
69
|
+
VERIFICATION PLAN
|
|
70
|
+
nominal / boundary / pairwise / faults
|
|
71
|
+
|
|
|
72
|
+
v
|
|
73
|
+
MEASURED PHYSICAL EVIDENCE
|
|
74
|
+
cycle / clearance / TCP / tracking / collision
|
|
75
|
+
|
|
|
76
|
+
v
|
|
77
|
+
DETERMINISTIC VERDICTS
|
|
78
|
+
PASS / FAIL / NOT_TESTED
|
|
79
|
+
|
|
|
80
|
+
v
|
|
81
|
+
CHANGE IMPACT + REGRESSION
|
|
82
|
+
|
|
|
83
|
+
v
|
|
84
|
+
FAT REPORT
|
|
85
|
+
Markdown / HTML / JSON
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Unknown facts stay unknown. Unsupported requirements stay `NOT_TESTED`. A CAD/URDF/mesh file does not prove its pose, scale, TCP, calibration, or physics merely because the file exists.
|
|
89
|
+
|
|
90
|
+
## Install
|
|
91
|
+
|
|
92
|
+
Python 3.11+:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
python -m pip install devagent-physical-engine
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Optional AI providers:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
python -m pip install "devagent-physical-engine[openai]"
|
|
102
|
+
python -m pip install "devagent-physical-engine[anthropic]"
|
|
103
|
+
python -m pip install "devagent-physical-engine[gemini]"
|
|
104
|
+
python -m pip install "devagent-physical-engine[ai]"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
`pip install` does not install ROS 2, Gazebo, MoveIt, OEM drivers, or privileged OS packages.
|
|
108
|
+
|
|
109
|
+
## Commercial quick start
|
|
110
|
+
|
|
111
|
+
Create project identity:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
devagent-commercial init warehouse-cnc-04 \
|
|
115
|
+
--name "Warehouse CNC Loading Cell 04" \
|
|
116
|
+
--site atl-01 \
|
|
117
|
+
--workcell cnc-04
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Import customer Twin evidence:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
devagent-commercial import-twin warehouse-cnc-04 ./customer-cell
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Supported inventory includes `.urdf`, `.xacro`, `.srdf`, `.stl`, `.dae`, `.obj`, `.step`, `.stp`, `.iges`, `.igs`, `.yaml`, `.yml`, `.json`, and `.csv`. Assets are SHA-256 fingerprinted using bounded streaming I/O. Physical facts are promoted only through an explicit `devagent-twin.yaml|yml|json` evidence manifest.
|
|
127
|
+
|
|
128
|
+
Import requirements:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
devagent-commercial requirements warehouse-cnc-04 requirements.csv
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Generate a deterministic verification plan:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
devagent-commercial verification-plan warehouse-cnc-04 verification-plan.yaml \
|
|
138
|
+
--revision twin-r0001
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Record measured evidence produced by a simulation/hardware-shadow qualification run:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
devagent-commercial record-measurement warehouse-cnc-04 physical-measurement.json \
|
|
145
|
+
--revision twin-r0001
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Run requirements against the exact Twin and measurement artifact:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
devagent-commercial campaign warehouse-cnc-04 requirements.csv \
|
|
152
|
+
--revision twin-r0001 \
|
|
153
|
+
--measurement art-PHYSICAL
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
After a Twin revision changes, compute conservative impact:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
devagent-commercial impact warehouse-cnc-04 \
|
|
160
|
+
twin-r0001 twin-r0002 requirements.csv
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Compare baseline/current campaigns:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
devagent-commercial regression warehouse-cnc-04 \
|
|
167
|
+
art-BASELINE art-CURRENT \
|
|
168
|
+
--impact art-IMPACT
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Generate customer evidence as Markdown, HTML, or JSON:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
devagent-commercial fat-report warehouse-cnc-04 art-CURRENT \
|
|
175
|
+
--regression art-REGRESSION \
|
|
176
|
+
--output FAT_REPORT.html
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Inspect readiness and evidence:
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
devagent-commercial status warehouse-cnc-04
|
|
183
|
+
devagent-commercial artifacts warehouse-cnc-04
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Default evidence database:
|
|
187
|
+
|
|
188
|
+
```text
|
|
189
|
+
~/.devagent/projects.db
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Deterministic requirement checks
|
|
193
|
+
|
|
194
|
+
Structural/Twin checks:
|
|
195
|
+
|
|
196
|
+
- `planning_allowed`
|
|
197
|
+
- `physics_allowed`
|
|
198
|
+
- `entity_present`
|
|
199
|
+
- `validation_issue_absent`
|
|
200
|
+
- `twin_state`
|
|
201
|
+
|
|
202
|
+
Measured physical checks:
|
|
203
|
+
|
|
204
|
+
- `cycle_time_max_s`
|
|
205
|
+
- `minimum_clearance_m`
|
|
206
|
+
- `final_tcp_error_max_m`
|
|
207
|
+
- `max_tracking_error_rad`
|
|
208
|
+
- `collision_free`
|
|
209
|
+
- `physical_completed`
|
|
210
|
+
|
|
211
|
+
Example:
|
|
212
|
+
|
|
213
|
+
```csv
|
|
214
|
+
requirement_id,text,check,target,expected,severity
|
|
215
|
+
REQ-001,Twin shall be physics ready,physics_allowed,,true,must
|
|
216
|
+
REQ-101,Cycle time shall be <= 8 s,cycle_time_max_s,8.0,,must
|
|
217
|
+
REQ-102,Minimum clearance shall be >= 30 mm,minimum_clearance_m,0.03,,must
|
|
218
|
+
REQ-103,Final TCP error shall be <= 2 mm,final_tcp_error_max_m,0.002,,must
|
|
219
|
+
REQ-104,Trajectory shall be collision free,collision_free,,true,must
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
A physical requirement without exact-Twin measured evidence is `NOT_TESTED`; it cannot be promoted by an LLM.
|
|
223
|
+
|
|
224
|
+
## Evidence trust and readiness
|
|
225
|
+
|
|
226
|
+
DevAgent separates three claims:
|
|
227
|
+
|
|
228
|
+
- `customer_review_ready`: the bounded declared/imported scope and mapped requirements passed.
|
|
229
|
+
- `production_engineering_ready`: mapped physical requirements passed with exact-Twin measurement evidence and explicit run/qualification provenance.
|
|
230
|
+
- `site_qualification` / `real_execution_allowed`: **remain false** in this release.
|
|
231
|
+
|
|
232
|
+
`production_engineering_ready` is engineering evidence readiness, not functional-safety certification or commissioning authorization. Simulation evidence does not override guarding, risk assessment, safety PLC validation, OEM controller validation, site acceptance, or engineer sign-off.
|
|
233
|
+
|
|
234
|
+
The typed Python API can bind `PhysicalMotionPlan` + `MotionExecutionMetrics` directly into project evidence so runtime-owned metrics do not have to be manually retyped into free-form JSON.
|
|
235
|
+
|
|
236
|
+
## Physical simulation
|
|
237
|
+
|
|
238
|
+
The qualified reference direction remains Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic + `gz_ros2_control` + Universal Robots ROS 2 driver + `ur_simulation_gz` + MoveIt 2.
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
devagent-physical setup --profile ur5e-sim --dry-run
|
|
242
|
+
devagent-physical setup --profile ur5e-sim
|
|
243
|
+
devagent-physical ros doctor
|
|
244
|
+
devagent-physical ros qualify-trajectory-runtime
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Hosted Python CI cannot prove a graphical Gazebo/MoveIt/controller stack. Target physical-simulation qualification must run on the exact workstation/adapter stack. Registry entries for ABB, FANUC, KUKA, or other robots do not imply equal physical qualification.
|
|
248
|
+
|
|
249
|
+
## Release quality
|
|
250
|
+
|
|
251
|
+
Every PR/main update runs Python 3.11/3.12/3.13 regression, compilation, Ruff correctness checks, branch coverage, package build, clean wheel install, and runtime dependency audit. Production-grade authority contracts also have a dedicated high-coverage gate.
|
|
252
|
+
|
|
253
|
+
Releases are created only from exact green `main`, rebuilt from the exact tag, clean-installed, accompanied by CycloneDX SBOM + SHA-256 checksums, attached to GitHub Release, and published to PyPI through Trusted Publishing.
|
|
254
|
+
|
|
255
|
+
## Documentation
|
|
256
|
+
|
|
257
|
+
- [Production Grade v1.1](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/PRODUCTION_GRADE_V1_1.md)
|
|
258
|
+
- [Production readiness](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/PRODUCTION_READINESS.md)
|
|
259
|
+
- [Commercial V1](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/COMMERCIAL_V1.md)
|
|
260
|
+
- [Commercial project spine](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/COMMERCIAL_PROJECT_SPINE.md)
|
|
261
|
+
- [Architecture](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ARCHITECTURE.md)
|
|
262
|
+
- [Robot platform and Twin](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ROBOT_PLATFORM_AND_TWIN.md)
|
|
263
|
+
- [Measured physical runtime](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/MEASURED_PHYSICAL_RUNTIME.md)
|
|
264
|
+
- [Qualification](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/QUALIFICATION.md)
|
|
265
|
+
- [Optimization](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/OPTIMIZATION.md)
|
|
266
|
+
- [AI providers](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/AI_PROVIDERS.md)
|
|
267
|
+
- [PyPI release process](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/PYPI_RELEASE.md)
|
|
268
|
+
|
|
269
|
+
## Project status
|
|
270
|
+
|
|
271
|
+
**v1.1.0 — Production/Stable software workflow with measured physical requirement evidence, deterministic verification-plan generation, change-impact regression, and customer FAT Markdown/HTML/JSON reporting.**
|
|
272
|
+
|
|
273
|
+
Production/Stable applies to the bounded software/API/CLI/evidence workflow. Physical qualification remains robot-, adapter-, workstation-, and evidence-specific. Site qualification, functional-safety certification, and production-hardware command authority are not claimed and remain locked by default.
|
|
274
|
+
|
|
275
|
+
## Ownership
|
|
276
|
+
|
|
277
|
+
DevAgent Smart Physical Engine
|
|
278
|
+
Copyright © 2026 Tom Ha
|
|
279
|
+
Original creator: Tom Ha
|
|
280
|
+
Original project: https://github.com/tomha85/devagent-physical-engine
|
|
281
|
+
All rights reserved.
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
# DevAgent Smart Physical Engine
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/devagent-physical-engine/)
|
|
4
|
+
[](https://pypi.org/project/devagent-physical-engine/)
|
|
5
|
+
[](#project-status)
|
|
6
|
+
|
|
7
|
+
**Verification-first commissioning engineering: customer Twin import, measured physical evidence, deterministic requirement verification, change-impact regression, and FAT evidence for robotics and industrial automation.**
|
|
8
|
+
|
|
9
|
+
> **AI proposes. Deterministic engines validate, compile, verify, measure, and gate promotion. OEM robot controllers, PLCs, safety PLCs, and certified safety systems remain authoritative.**
|
|
10
|
+
|
|
11
|
+
DevAgent is designed to answer a commercial engineering question: **before engineers travel onsite, what can be proven about this robot cell, what failed, what changed, and what evidence supports the conclusion?**
|
|
12
|
+
|
|
13
|
+
## Product workflow
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
CUSTOMER PROJECT / SITE / WORKCELL
|
|
17
|
+
|
|
|
18
|
+
v
|
|
19
|
+
CUSTOMER ASSETS + EXPLICIT TWIN EVIDENCE
|
|
20
|
+
|
|
|
21
|
+
v
|
|
22
|
+
IMMUTABLE TWIN REVISION
|
|
23
|
+
|
|
|
24
|
+
v
|
|
25
|
+
REQUIREMENTS
|
|
26
|
+
|
|
|
27
|
+
v
|
|
28
|
+
VERIFICATION PLAN
|
|
29
|
+
nominal / boundary / pairwise / faults
|
|
30
|
+
|
|
|
31
|
+
v
|
|
32
|
+
MEASURED PHYSICAL EVIDENCE
|
|
33
|
+
cycle / clearance / TCP / tracking / collision
|
|
34
|
+
|
|
|
35
|
+
v
|
|
36
|
+
DETERMINISTIC VERDICTS
|
|
37
|
+
PASS / FAIL / NOT_TESTED
|
|
38
|
+
|
|
|
39
|
+
v
|
|
40
|
+
CHANGE IMPACT + REGRESSION
|
|
41
|
+
|
|
|
42
|
+
v
|
|
43
|
+
FAT REPORT
|
|
44
|
+
Markdown / HTML / JSON
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Unknown facts stay unknown. Unsupported requirements stay `NOT_TESTED`. A CAD/URDF/mesh file does not prove its pose, scale, TCP, calibration, or physics merely because the file exists.
|
|
48
|
+
|
|
49
|
+
## Install
|
|
50
|
+
|
|
51
|
+
Python 3.11+:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
python -m pip install devagent-physical-engine
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Optional AI providers:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
python -m pip install "devagent-physical-engine[openai]"
|
|
61
|
+
python -m pip install "devagent-physical-engine[anthropic]"
|
|
62
|
+
python -m pip install "devagent-physical-engine[gemini]"
|
|
63
|
+
python -m pip install "devagent-physical-engine[ai]"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
`pip install` does not install ROS 2, Gazebo, MoveIt, OEM drivers, or privileged OS packages.
|
|
67
|
+
|
|
68
|
+
## Commercial quick start
|
|
69
|
+
|
|
70
|
+
Create project identity:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
devagent-commercial init warehouse-cnc-04 \
|
|
74
|
+
--name "Warehouse CNC Loading Cell 04" \
|
|
75
|
+
--site atl-01 \
|
|
76
|
+
--workcell cnc-04
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Import customer Twin evidence:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
devagent-commercial import-twin warehouse-cnc-04 ./customer-cell
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Supported inventory includes `.urdf`, `.xacro`, `.srdf`, `.stl`, `.dae`, `.obj`, `.step`, `.stp`, `.iges`, `.igs`, `.yaml`, `.yml`, `.json`, and `.csv`. Assets are SHA-256 fingerprinted using bounded streaming I/O. Physical facts are promoted only through an explicit `devagent-twin.yaml|yml|json` evidence manifest.
|
|
86
|
+
|
|
87
|
+
Import requirements:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
devagent-commercial requirements warehouse-cnc-04 requirements.csv
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Generate a deterministic verification plan:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
devagent-commercial verification-plan warehouse-cnc-04 verification-plan.yaml \
|
|
97
|
+
--revision twin-r0001
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Record measured evidence produced by a simulation/hardware-shadow qualification run:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
devagent-commercial record-measurement warehouse-cnc-04 physical-measurement.json \
|
|
104
|
+
--revision twin-r0001
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Run requirements against the exact Twin and measurement artifact:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
devagent-commercial campaign warehouse-cnc-04 requirements.csv \
|
|
111
|
+
--revision twin-r0001 \
|
|
112
|
+
--measurement art-PHYSICAL
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
After a Twin revision changes, compute conservative impact:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
devagent-commercial impact warehouse-cnc-04 \
|
|
119
|
+
twin-r0001 twin-r0002 requirements.csv
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Compare baseline/current campaigns:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
devagent-commercial regression warehouse-cnc-04 \
|
|
126
|
+
art-BASELINE art-CURRENT \
|
|
127
|
+
--impact art-IMPACT
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Generate customer evidence as Markdown, HTML, or JSON:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
devagent-commercial fat-report warehouse-cnc-04 art-CURRENT \
|
|
134
|
+
--regression art-REGRESSION \
|
|
135
|
+
--output FAT_REPORT.html
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Inspect readiness and evidence:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
devagent-commercial status warehouse-cnc-04
|
|
142
|
+
devagent-commercial artifacts warehouse-cnc-04
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Default evidence database:
|
|
146
|
+
|
|
147
|
+
```text
|
|
148
|
+
~/.devagent/projects.db
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Deterministic requirement checks
|
|
152
|
+
|
|
153
|
+
Structural/Twin checks:
|
|
154
|
+
|
|
155
|
+
- `planning_allowed`
|
|
156
|
+
- `physics_allowed`
|
|
157
|
+
- `entity_present`
|
|
158
|
+
- `validation_issue_absent`
|
|
159
|
+
- `twin_state`
|
|
160
|
+
|
|
161
|
+
Measured physical checks:
|
|
162
|
+
|
|
163
|
+
- `cycle_time_max_s`
|
|
164
|
+
- `minimum_clearance_m`
|
|
165
|
+
- `final_tcp_error_max_m`
|
|
166
|
+
- `max_tracking_error_rad`
|
|
167
|
+
- `collision_free`
|
|
168
|
+
- `physical_completed`
|
|
169
|
+
|
|
170
|
+
Example:
|
|
171
|
+
|
|
172
|
+
```csv
|
|
173
|
+
requirement_id,text,check,target,expected,severity
|
|
174
|
+
REQ-001,Twin shall be physics ready,physics_allowed,,true,must
|
|
175
|
+
REQ-101,Cycle time shall be <= 8 s,cycle_time_max_s,8.0,,must
|
|
176
|
+
REQ-102,Minimum clearance shall be >= 30 mm,minimum_clearance_m,0.03,,must
|
|
177
|
+
REQ-103,Final TCP error shall be <= 2 mm,final_tcp_error_max_m,0.002,,must
|
|
178
|
+
REQ-104,Trajectory shall be collision free,collision_free,,true,must
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
A physical requirement without exact-Twin measured evidence is `NOT_TESTED`; it cannot be promoted by an LLM.
|
|
182
|
+
|
|
183
|
+
## Evidence trust and readiness
|
|
184
|
+
|
|
185
|
+
DevAgent separates three claims:
|
|
186
|
+
|
|
187
|
+
- `customer_review_ready`: the bounded declared/imported scope and mapped requirements passed.
|
|
188
|
+
- `production_engineering_ready`: mapped physical requirements passed with exact-Twin measurement evidence and explicit run/qualification provenance.
|
|
189
|
+
- `site_qualification` / `real_execution_allowed`: **remain false** in this release.
|
|
190
|
+
|
|
191
|
+
`production_engineering_ready` is engineering evidence readiness, not functional-safety certification or commissioning authorization. Simulation evidence does not override guarding, risk assessment, safety PLC validation, OEM controller validation, site acceptance, or engineer sign-off.
|
|
192
|
+
|
|
193
|
+
The typed Python API can bind `PhysicalMotionPlan` + `MotionExecutionMetrics` directly into project evidence so runtime-owned metrics do not have to be manually retyped into free-form JSON.
|
|
194
|
+
|
|
195
|
+
## Physical simulation
|
|
196
|
+
|
|
197
|
+
The qualified reference direction remains Ubuntu 24.04 + ROS 2 Jazzy + Gazebo Harmonic + `gz_ros2_control` + Universal Robots ROS 2 driver + `ur_simulation_gz` + MoveIt 2.
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
devagent-physical setup --profile ur5e-sim --dry-run
|
|
201
|
+
devagent-physical setup --profile ur5e-sim
|
|
202
|
+
devagent-physical ros doctor
|
|
203
|
+
devagent-physical ros qualify-trajectory-runtime
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
Hosted Python CI cannot prove a graphical Gazebo/MoveIt/controller stack. Target physical-simulation qualification must run on the exact workstation/adapter stack. Registry entries for ABB, FANUC, KUKA, or other robots do not imply equal physical qualification.
|
|
207
|
+
|
|
208
|
+
## Release quality
|
|
209
|
+
|
|
210
|
+
Every PR/main update runs Python 3.11/3.12/3.13 regression, compilation, Ruff correctness checks, branch coverage, package build, clean wheel install, and runtime dependency audit. Production-grade authority contracts also have a dedicated high-coverage gate.
|
|
211
|
+
|
|
212
|
+
Releases are created only from exact green `main`, rebuilt from the exact tag, clean-installed, accompanied by CycloneDX SBOM + SHA-256 checksums, attached to GitHub Release, and published to PyPI through Trusted Publishing.
|
|
213
|
+
|
|
214
|
+
## Documentation
|
|
215
|
+
|
|
216
|
+
- [Production Grade v1.1](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/PRODUCTION_GRADE_V1_1.md)
|
|
217
|
+
- [Production readiness](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/PRODUCTION_READINESS.md)
|
|
218
|
+
- [Commercial V1](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/COMMERCIAL_V1.md)
|
|
219
|
+
- [Commercial project spine](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/COMMERCIAL_PROJECT_SPINE.md)
|
|
220
|
+
- [Architecture](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ARCHITECTURE.md)
|
|
221
|
+
- [Robot platform and Twin](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/ROBOT_PLATFORM_AND_TWIN.md)
|
|
222
|
+
- [Measured physical runtime](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/MEASURED_PHYSICAL_RUNTIME.md)
|
|
223
|
+
- [Qualification](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/QUALIFICATION.md)
|
|
224
|
+
- [Optimization](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/OPTIMIZATION.md)
|
|
225
|
+
- [AI providers](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/AI_PROVIDERS.md)
|
|
226
|
+
- [PyPI release process](https://github.com/tomha85/devagent-physical-engine/blob/main/docs/PYPI_RELEASE.md)
|
|
227
|
+
|
|
228
|
+
## Project status
|
|
229
|
+
|
|
230
|
+
**v1.1.0 — Production/Stable software workflow with measured physical requirement evidence, deterministic verification-plan generation, change-impact regression, and customer FAT Markdown/HTML/JSON reporting.**
|
|
231
|
+
|
|
232
|
+
Production/Stable applies to the bounded software/API/CLI/evidence workflow. Physical qualification remains robot-, adapter-, workstation-, and evidence-specific. Site qualification, functional-safety certification, and production-hardware command authority are not claimed and remain locked by default.
|
|
233
|
+
|
|
234
|
+
## Ownership
|
|
235
|
+
|
|
236
|
+
DevAgent Smart Physical Engine
|
|
237
|
+
Copyright © 2026 Tom Ha
|
|
238
|
+
Original creator: Tom Ha
|
|
239
|
+
Original project: https://github.com/tomha85/devagent-physical-engine
|
|
240
|
+
All rights reserved.
|
|
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "devagent-physical-engine"
|
|
7
|
-
version = "1.
|
|
8
|
-
description = "
|
|
7
|
+
version = "1.1.0"
|
|
8
|
+
description = "Production-grade verification-first customer Twin, measured physical evidence, change-impact regression, and FAT evidence runtime for robotics and industrial automation."
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
requires-python = ">=3.11"
|
|
11
11
|
dependencies = ["PyYAML>=6.0,<7"]
|
|
@@ -21,6 +21,19 @@ from .models import (
|
|
|
21
21
|
WorldState,
|
|
22
22
|
)
|
|
23
23
|
from .physical_motion import JointTrajectoryPoint, MotionExecutionMetrics, PhysicalMotionPlan
|
|
24
|
+
from .production_authority import (
|
|
25
|
+
PhysicalEvidenceRecorder,
|
|
26
|
+
ProductionCampaignRunner,
|
|
27
|
+
VerificationCaseGenerator,
|
|
28
|
+
)
|
|
29
|
+
from .production_grade import (
|
|
30
|
+
ChangeImpactAnalyzer,
|
|
31
|
+
ProductionFATReportBuilder,
|
|
32
|
+
ProductionProjectStatus,
|
|
33
|
+
ProductionRegressionAnalyzer,
|
|
34
|
+
VerificationCase,
|
|
35
|
+
load_verification_spec,
|
|
36
|
+
)
|
|
24
37
|
from .project import (
|
|
25
38
|
EvidenceArtifactRecord,
|
|
26
39
|
ProjectError,
|
|
@@ -77,6 +90,15 @@ __all__ = [
|
|
|
77
90
|
"CommercialRegressionAnalyzer",
|
|
78
91
|
"FATReportBuilder",
|
|
79
92
|
"CommercialProjectStatus",
|
|
93
|
+
"PhysicalEvidenceRecorder",
|
|
94
|
+
"VerificationCase",
|
|
95
|
+
"VerificationCaseGenerator",
|
|
96
|
+
"ProductionCampaignRunner",
|
|
97
|
+
"ChangeImpactAnalyzer",
|
|
98
|
+
"ProductionRegressionAnalyzer",
|
|
99
|
+
"ProductionFATReportBuilder",
|
|
100
|
+
"ProductionProjectStatus",
|
|
101
|
+
"load_verification_spec",
|
|
80
102
|
]
|
|
81
103
|
|
|
82
|
-
__version__ = "1.
|
|
104
|
+
__version__ = "1.1.0"
|