devagent-physical-engine 1.4.0__tar.gz → 1.5.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.4.0/src/devagent_physical_engine.egg-info → devagent_physical_engine-1.5.0}/PKG-INFO +76 -17
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/README.md +74 -15
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/pyproject.toml +3 -3
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/__init__.py +43 -3
- devagent_physical_engine-1.5.0/src/devagent_physical_engine/commercial_intelligence.py +518 -0
- devagent_physical_engine-1.5.0/src/devagent_physical_engine/one_command_runtime.py +114 -0
- devagent_physical_engine-1.5.0/src/devagent_physical_engine/one_command_v15.py +722 -0
- devagent_physical_engine-1.5.0/src/devagent_physical_engine/provider_criterion.py +169 -0
- devagent_physical_engine-1.5.0/src/devagent_physical_engine/user_cli_v15.py +144 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0/src/devagent_physical_engine.egg-info}/PKG-INFO +76 -17
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine.egg-info/SOURCES.txt +11 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine.egg-info/entry_points.txt +1 -1
- devagent_physical_engine-1.5.0/tests/test_commercial_intelligence_v15.py +333 -0
- devagent_physical_engine-1.5.0/tests/test_one_command_pose_hardening_v15.py +127 -0
- devagent_physical_engine-1.5.0/tests/test_one_command_regression_v141.py +141 -0
- devagent_physical_engine-1.5.0/tests/test_provider_criterion_v15.py +157 -0
- devagent_physical_engine-1.5.0/tests/test_user_cli_v15.py +118 -0
- devagent_physical_engine-1.5.0/tests/test_user_cli_v15_hotfix_inheritance.py +39 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/NOTICE +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/setup.cfg +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/__init__.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/compiler.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/contracts.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/coordinator.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/critic.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/evidence.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/interpreter.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/planner.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/recovery.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/routing.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/runtime.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/semantic.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/agent/structured.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ai_cli.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/cli.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/commercial.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/commercial_campaign.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/commercial_cli.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/commercial_importer.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/commercial_readiness.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/commercial_repository.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/continuous_clearance.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/doctor.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/engineering_agent.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/engineering_request.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/evidence_replay.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/evidence_trust.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/execution.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/models.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/one_command.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/operating_envelope.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/__init__.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/benchmark.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/candidates.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/contracts.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/evaluator.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/evidence.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/experience.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/measured.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/optimizer.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/optimization/orchestrator.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/physical_campaign.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/physical_evidence.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/physical_motion.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/planning.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/pose_math.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/preexecution_contract.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/production_authority.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/production_grade.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/project.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/provider_adapters/__init__.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/provider_adapters/anthropic.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/provider_adapters/common.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/provider_adapters/factory.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/provider_adapters/gemini.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/provider_adapters/openai.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/provider_qualification.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/providers.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/qualification.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/qualification_cli.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/qualification_harness.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/reference_workcell.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/robot_platform.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/robots.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/__init__.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/acceptance.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/commands.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/continuous_clearance_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/doctor.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/fk_pose.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/fk_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/frame_alignment.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/gazebo_cli.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/gazebo_pose.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/gazebo_world.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/joint_state_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/joint_state_recorder.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/measured_motion.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/moveit_joint_plan_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/moveit_scene.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/moveit_task_planner.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/preexecution.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/qualification.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/qualification_v10.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/qualification_v11.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/qualification_v12.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/scene_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/state_validity_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/task_adapter.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/task_visualization.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/tf_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/tool_scene.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/tool_scene_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/trajectory.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/trajectory_action_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/trajectory_tracking.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/ur5e.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/ur5e_adapter.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/ur5e_v10_adapter.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/workpiece_follow.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/workpiece_gazebo_follower.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/workpiece_scene.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/ros2/workpiece_scene_probe.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/selective_verification.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/setup_profile.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/sim_real_qualification.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/simulation.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/simulation_platform.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/tool_collision.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/trajectory_qualification.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/twin.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/twin_builder.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/twin_materialization.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/user_cli.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/verification.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine/workpiece_lifecycle.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine.egg-info/dependency_links.txt +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine.egg-info/requires.txt +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/src/devagent_physical_engine.egg-info/top_level.txt +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_agent_core.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_agent_semantic_hardening.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_ai_cli.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_ai_cli_v07.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_commercial_importer_v1.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_commercial_readiness_v1.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_commercial_v1.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_continuous_clearance_v011.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_core.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_engineering_request_v07.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_evidence_replay_v12.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_evidence_trust_coverage_v12.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_evidence_trust_transport_v12.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_evidence_trust_v12.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_evidence_viewer_palette_v130.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_gazebo_cli_v0122.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_interpreter_profiles_v08.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_joint_state_probe_v0125.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_live_provider_qualification.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_measured_motion_v10.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_moveit_planning_diagnostics_v0125.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_moveit_scene_v0123.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_natural_language_agent_v07.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_one_command_hardening_v13.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_one_command_v13.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_openai_strict_schema_v0113.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_optimization_v05.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_physical_campaign_v09.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_physical_evidence_v09.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_physical_motion_v09.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_planning_fallback_v012.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_pose_math_v0125.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_preexecution_contract_v10.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_production_authority_v11.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_production_grade_coverage_v11.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_production_grade_v11.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_project_spine_v013.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_provider_and_qualification.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_qualification_cli_lifecycle_v06.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_qualification_harness_v06.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_readme_pypi.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_real_provider_adapters.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_reference_workcell_ros_frames_v0125.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_reference_workcell_v012.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_robot_platform_v08.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_ros2_production_receipts_v011.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_ros2_simulation.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_ros_trajectory_v09.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_selective_verification_v14.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_setup_profile.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_sim_real_qualification_v011.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_simulation_platform_v08.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_tool_collision_v011.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_tool_scene_v0124.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_trajectory_action_probe_v0125.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_trajectory_qualification_v09.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_trajectory_tracking_v0125.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_twin_materialization_v10.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_twin_v08.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_ur5e_adapter_scopes_v09.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_ur5e_v10_adapter_scopes.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_user_cli_interactive_v131.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_user_cli_progress_v131.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_user_cli_selective_v14.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_v052_stabilization.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_v08_catalog_mapping_regression.py +0 -0
- {devagent_physical_engine-1.4.0 → devagent_physical_engine-1.5.0}/tests/test_workpiece_lifecycle_v011.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devagent-physical-engine
|
|
3
|
-
Version: 1.
|
|
4
|
-
Summary: Production-grade verification-first robotics evidence runtime with one-command customer intake, selective verification
|
|
3
|
+
Version: 1.5.0
|
|
4
|
+
Summary: Production-grade verification-first robotics evidence runtime with one-command customer intake, validated requirement mapping, requirement-driven test generation, selective verification, deterministic Twin lineage, measured physical verification, replay inspection, regression, and FAT evidence.
|
|
5
5
|
Author: Tom Ha
|
|
6
6
|
License: All Rights Reserved
|
|
7
7
|
Project-URL: Homepage, https://github.com/tomha85/devagent-physical-engine
|
|
@@ -58,15 +58,17 @@ requirements + explicit engineering facts
|
|
|
58
58
|
↓
|
|
59
59
|
immutable Digital Twin revision
|
|
60
60
|
↓
|
|
61
|
-
|
|
61
|
+
validated Requirement → Criterion mapping
|
|
62
|
+
↓
|
|
63
|
+
requirement-driven nominal / boundary / fault cases
|
|
62
64
|
↓
|
|
63
65
|
measured evidence when a qualified execution path exists
|
|
64
66
|
↓
|
|
65
67
|
PASS / FAIL / NOT_TESTED
|
|
66
68
|
↓
|
|
67
|
-
FAT report + Evidence Viewer
|
|
69
|
+
regression + FAT report + Evidence Viewer
|
|
68
70
|
↓
|
|
69
|
-
selective retest / replay
|
|
71
|
+
selective retest / replay
|
|
70
72
|
```
|
|
71
73
|
|
|
72
74
|
> **AI proposes. Deterministic engines validate, compile, verify, measure, and gate promotion. OEM robot controllers, PLCs, safety PLCs, and certified safety systems remain authoritative.**
|
|
@@ -80,7 +82,7 @@ DevAgent is designed to answer: **What can be proven about this cell, what faile
|
|
|
80
82
|
Python 3.11+ is required.
|
|
81
83
|
|
|
82
84
|
```bash
|
|
83
|
-
python -m pip install --upgrade devagent-physical-engine==1.
|
|
85
|
+
python -m pip install --upgrade devagent-physical-engine==1.5.0
|
|
84
86
|
```
|
|
85
87
|
|
|
86
88
|
Verify the package:
|
|
@@ -92,7 +94,7 @@ python -c "import devagent_physical_engine as d; print(d.__version__)"
|
|
|
92
94
|
Expected:
|
|
93
95
|
|
|
94
96
|
```text
|
|
95
|
-
1.
|
|
97
|
+
1.5.0
|
|
96
98
|
```
|
|
97
99
|
|
|
98
100
|
Run the normal customer workflow:
|
|
@@ -119,7 +121,7 @@ For machine-readable CI output:
|
|
|
119
121
|
devagent verify ./customer-project --json
|
|
120
122
|
```
|
|
121
123
|
|
|
122
|
-
Simple Mode automatically handles project identity, customer-file inventory, supported XLSX requirement normalization, bounded Twin normalization, deterministic campaign generation, FAT generation, and evidence rendering. The user does not need to manually manage artifact IDs for the normal workflow.
|
|
124
|
+
Simple Mode automatically handles project identity, customer-file inventory, supported XLSX requirement normalization, bounded Twin normalization, validated requirement mapping, requirement-driven test generation, deterministic campaign generation, regression/FAT generation, and evidence rendering. The user does not need to manually manage artifact IDs for the normal workflow.
|
|
123
125
|
|
|
124
126
|
Default locations:
|
|
125
127
|
|
|
@@ -175,23 +177,25 @@ Update the original customer engineering information and rerun the same command.
|
|
|
175
177
|
|
|
176
178
|
# What the terminal shows
|
|
177
179
|
|
|
178
|
-
Human Simple Mode keeps the terminal as the primary progress surface:
|
|
180
|
+
Human Simple Mode keeps the terminal as the primary progress surface. v1.5 distinguishes generated/recorded artifacts from executed evidence:
|
|
179
181
|
|
|
180
182
|
```text
|
|
181
183
|
[DevAgent + 0.00s] START RUNNING source=ACME_CNC_CELL_TEST
|
|
182
184
|
[DevAgent + 0.00s] INTAKE RUNNING scanning and classifying customer engineering files
|
|
183
|
-
[DevAgent + 0.42s] REQUIREMENTS
|
|
185
|
+
[DevAgent + 0.42s] REQUIREMENTS MAPPED mapped=8/17 unmapped=9
|
|
184
186
|
[DevAgent + 0.61s] TWIN NORMALIZED customer Twin draft normalized
|
|
185
187
|
[DevAgent + 0.85s] PROJECT READY project_id=acme-cell
|
|
186
|
-
[DevAgent + 0.91s] PLAN
|
|
188
|
+
[DevAgent + 0.91s] PLAN GENERATED physical_cases=7 mapped_checks=8/17
|
|
187
189
|
[DevAgent + 1.02s] SIMULATION BLOCKED imported_customer_twin_execution_adapter_not_yet_qualified
|
|
188
|
-
[DevAgent + 1.11s] CAMPAIGN
|
|
189
|
-
[DevAgent + 1.18s] FAT
|
|
190
|
-
[DevAgent + 1.24s] EVIDENCE
|
|
190
|
+
[DevAgent + 1.11s] CAMPAIGN RECORDED tests=8/17 verdict=INCONCLUSIVE
|
|
191
|
+
[DevAgent + 1.18s] FAT GENERATED decision=INCONCLUSIVE
|
|
192
|
+
[DevAgent + 1.24s] EVIDENCE GENERATED scope=MODEL_ONLY
|
|
191
193
|
[DevAgent + 1.25s] COMPLETE DONE state=verification_incomplete release_ready=False real_execution_allowed=False
|
|
192
194
|
[DevAgent + 1.25s] REPORT OPENING new tab requested; terminal remains active
|
|
193
195
|
```
|
|
194
196
|
|
|
197
|
+
When a separately qualified exact-Twin simulation executor provides validated physical measurements, evidence scope can advance to `SIMULATION_MEASURED`. A generated plan or AI proposal alone never does that.
|
|
198
|
+
|
|
195
199
|
Progress is also persisted to:
|
|
196
200
|
|
|
197
201
|
```text
|
|
@@ -204,6 +208,56 @@ Use `--no-progress` to suppress human progress. `--json` remains machine-clean a
|
|
|
204
208
|
|
|
205
209
|
---
|
|
206
210
|
|
|
211
|
+
# v1.5 commercial intelligence
|
|
212
|
+
|
|
213
|
+
v1.5 adds a bounded Commercial Intelligence layer above the existing deterministic authority model.
|
|
214
|
+
|
|
215
|
+
The new requirement path is:
|
|
216
|
+
|
|
217
|
+
```text
|
|
218
|
+
customer requirement prose / explicit check
|
|
219
|
+
↓
|
|
220
|
+
deterministic semantic proposal and optional provider-backed proposal
|
|
221
|
+
↓
|
|
222
|
+
RequirementCriterionValidator
|
|
223
|
+
↓
|
|
224
|
+
accepted executable criterion OR engineer confirmation required
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
High-confidence deterministic mappings include explicit cycle-time limits, minimum clearance, TCP error, tracking error, no-collision language, and physical completion language. Numeric units are normalized before becoming executable criteria.
|
|
228
|
+
|
|
229
|
+
Provider-backed OpenAI / Anthropic / Gemini proposals are advisory. A provider proposal cannot create physical truth, site qualification, or real-execution authority. Unsupported, low-confidence, malformed, or non-corroborated proposals remain unaccepted and require confirmation.
|
|
230
|
+
|
|
231
|
+
Requirement-driven case generation can derive bounded variations and fault cases from explicit engineering requirements, including payload boundaries, TCP offset boundaries, missing-workpiece faults, and grasp-verification failures. Requirement → Case mapping is persisted as immutable evidence.
|
|
232
|
+
|
|
233
|
+
The full commercial orchestration order is intentionally:
|
|
234
|
+
|
|
235
|
+
```text
|
|
236
|
+
requirements
|
|
237
|
+
↓
|
|
238
|
+
validated criteria
|
|
239
|
+
↓
|
|
240
|
+
verification cases
|
|
241
|
+
↓
|
|
242
|
+
exact Twin
|
|
243
|
+
↓
|
|
244
|
+
qualified simulation if available
|
|
245
|
+
↓
|
|
246
|
+
typed physical measurement
|
|
247
|
+
↓
|
|
248
|
+
campaign verdicts
|
|
249
|
+
↓
|
|
250
|
+
repeat-run regression
|
|
251
|
+
↓
|
|
252
|
+
FAT + evidence bundle
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
A `QualifiedSimulationExecutor` must persist exact-Twin typed measurement evidence. One-Command revalidates the returned artifact before measurement is allowed to influence requirement verdicts. If no qualified arbitrary-customer execution adapter exists, simulation stays blocked and physical requirements stay `NOT_TESTED`.
|
|
256
|
+
|
|
257
|
+
Repeat runs on the same project can automatically compare the previous and current campaign and record regression evidence before generating the new FAT artifact.
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
207
261
|
# Interactive engineering session
|
|
208
262
|
|
|
209
263
|
With `--open` in a real TTY, or with explicit `--interactive`, DevAgent keeps a bounded engineering prompt after the full verification run:
|
|
@@ -720,18 +774,23 @@ Existing certified controllers execute.
|
|
|
720
774
|
|
|
721
775
|
# Project status
|
|
722
776
|
|
|
723
|
-
**v1.
|
|
777
|
+
**v1.5.0 — Production/Stable software workflow**
|
|
724
778
|
|
|
725
|
-
v1.
|
|
779
|
+
v1.5.0 adds validated Requirement → Criterion intelligence, requirement-driven boundary/fault case generation, qualified simulation measurement binding contracts, clearer customer-facing progress semantics, and automatic repeat-run regression orchestration while preserving fail-closed authority.
|
|
726
780
|
|
|
727
781
|
Production-oriented software capabilities include:
|
|
728
782
|
|
|
729
783
|
```text
|
|
730
784
|
one-command customer intake
|
|
731
785
|
XLSX requirement normalization
|
|
786
|
+
validated Requirement → Criterion mapping
|
|
787
|
+
optional provider-backed criterion proposals with deterministic validation
|
|
788
|
+
requirement-driven nominal / boundary / fault case generation
|
|
732
789
|
immutable project/Twin lineage
|
|
733
790
|
deterministic full campaigns
|
|
791
|
+
qualified simulation measurement binding contract
|
|
734
792
|
measured evidence binding
|
|
793
|
+
repeat-run regression orchestration
|
|
735
794
|
professional FAT/Evidence Viewer
|
|
736
795
|
terminal progress + RUN.log
|
|
737
796
|
interactive engineering session
|
|
@@ -745,7 +804,7 @@ change impact + regression
|
|
|
745
804
|
provider-neutral optional AI front end
|
|
746
805
|
```
|
|
747
806
|
|
|
748
|
-
Quality gates include Python 3.11/3.12/3.13 regression, package clean-install, dependency audit, global branch coverage, One-Command coverage, **Selective Verification coverage**, Production Authority coverage, and Evidence Trust/Replay coverage.
|
|
807
|
+
Quality gates include Python 3.11/3.12/3.13 regression, package clean-install, dependency audit, global branch coverage, One-Command coverage, **Commercial Intelligence coverage**, **Selective Verification coverage**, Production Authority coverage, and Evidence Trust/Replay coverage.
|
|
749
808
|
|
|
750
809
|
Production/Stable describes the bounded software workflow. It does not claim arbitrary customer cells are physically qualified, site-qualified, or safe for autonomous real execution.
|
|
751
810
|
|
|
@@ -17,15 +17,17 @@ requirements + explicit engineering facts
|
|
|
17
17
|
↓
|
|
18
18
|
immutable Digital Twin revision
|
|
19
19
|
↓
|
|
20
|
-
|
|
20
|
+
validated Requirement → Criterion mapping
|
|
21
|
+
↓
|
|
22
|
+
requirement-driven nominal / boundary / fault cases
|
|
21
23
|
↓
|
|
22
24
|
measured evidence when a qualified execution path exists
|
|
23
25
|
↓
|
|
24
26
|
PASS / FAIL / NOT_TESTED
|
|
25
27
|
↓
|
|
26
|
-
FAT report + Evidence Viewer
|
|
28
|
+
regression + FAT report + Evidence Viewer
|
|
27
29
|
↓
|
|
28
|
-
selective retest / replay
|
|
30
|
+
selective retest / replay
|
|
29
31
|
```
|
|
30
32
|
|
|
31
33
|
> **AI proposes. Deterministic engines validate, compile, verify, measure, and gate promotion. OEM robot controllers, PLCs, safety PLCs, and certified safety systems remain authoritative.**
|
|
@@ -39,7 +41,7 @@ DevAgent is designed to answer: **What can be proven about this cell, what faile
|
|
|
39
41
|
Python 3.11+ is required.
|
|
40
42
|
|
|
41
43
|
```bash
|
|
42
|
-
python -m pip install --upgrade devagent-physical-engine==1.
|
|
44
|
+
python -m pip install --upgrade devagent-physical-engine==1.5.0
|
|
43
45
|
```
|
|
44
46
|
|
|
45
47
|
Verify the package:
|
|
@@ -51,7 +53,7 @@ python -c "import devagent_physical_engine as d; print(d.__version__)"
|
|
|
51
53
|
Expected:
|
|
52
54
|
|
|
53
55
|
```text
|
|
54
|
-
1.
|
|
56
|
+
1.5.0
|
|
55
57
|
```
|
|
56
58
|
|
|
57
59
|
Run the normal customer workflow:
|
|
@@ -78,7 +80,7 @@ For machine-readable CI output:
|
|
|
78
80
|
devagent verify ./customer-project --json
|
|
79
81
|
```
|
|
80
82
|
|
|
81
|
-
Simple Mode automatically handles project identity, customer-file inventory, supported XLSX requirement normalization, bounded Twin normalization, deterministic campaign generation, FAT generation, and evidence rendering. The user does not need to manually manage artifact IDs for the normal workflow.
|
|
83
|
+
Simple Mode automatically handles project identity, customer-file inventory, supported XLSX requirement normalization, bounded Twin normalization, validated requirement mapping, requirement-driven test generation, deterministic campaign generation, regression/FAT generation, and evidence rendering. The user does not need to manually manage artifact IDs for the normal workflow.
|
|
82
84
|
|
|
83
85
|
Default locations:
|
|
84
86
|
|
|
@@ -134,23 +136,25 @@ Update the original customer engineering information and rerun the same command.
|
|
|
134
136
|
|
|
135
137
|
# What the terminal shows
|
|
136
138
|
|
|
137
|
-
Human Simple Mode keeps the terminal as the primary progress surface:
|
|
139
|
+
Human Simple Mode keeps the terminal as the primary progress surface. v1.5 distinguishes generated/recorded artifacts from executed evidence:
|
|
138
140
|
|
|
139
141
|
```text
|
|
140
142
|
[DevAgent + 0.00s] START RUNNING source=ACME_CNC_CELL_TEST
|
|
141
143
|
[DevAgent + 0.00s] INTAKE RUNNING scanning and classifying customer engineering files
|
|
142
|
-
[DevAgent + 0.42s] REQUIREMENTS
|
|
144
|
+
[DevAgent + 0.42s] REQUIREMENTS MAPPED mapped=8/17 unmapped=9
|
|
143
145
|
[DevAgent + 0.61s] TWIN NORMALIZED customer Twin draft normalized
|
|
144
146
|
[DevAgent + 0.85s] PROJECT READY project_id=acme-cell
|
|
145
|
-
[DevAgent + 0.91s] PLAN
|
|
147
|
+
[DevAgent + 0.91s] PLAN GENERATED physical_cases=7 mapped_checks=8/17
|
|
146
148
|
[DevAgent + 1.02s] SIMULATION BLOCKED imported_customer_twin_execution_adapter_not_yet_qualified
|
|
147
|
-
[DevAgent + 1.11s] CAMPAIGN
|
|
148
|
-
[DevAgent + 1.18s] FAT
|
|
149
|
-
[DevAgent + 1.24s] EVIDENCE
|
|
149
|
+
[DevAgent + 1.11s] CAMPAIGN RECORDED tests=8/17 verdict=INCONCLUSIVE
|
|
150
|
+
[DevAgent + 1.18s] FAT GENERATED decision=INCONCLUSIVE
|
|
151
|
+
[DevAgent + 1.24s] EVIDENCE GENERATED scope=MODEL_ONLY
|
|
150
152
|
[DevAgent + 1.25s] COMPLETE DONE state=verification_incomplete release_ready=False real_execution_allowed=False
|
|
151
153
|
[DevAgent + 1.25s] REPORT OPENING new tab requested; terminal remains active
|
|
152
154
|
```
|
|
153
155
|
|
|
156
|
+
When a separately qualified exact-Twin simulation executor provides validated physical measurements, evidence scope can advance to `SIMULATION_MEASURED`. A generated plan or AI proposal alone never does that.
|
|
157
|
+
|
|
154
158
|
Progress is also persisted to:
|
|
155
159
|
|
|
156
160
|
```text
|
|
@@ -163,6 +167,56 @@ Use `--no-progress` to suppress human progress. `--json` remains machine-clean a
|
|
|
163
167
|
|
|
164
168
|
---
|
|
165
169
|
|
|
170
|
+
# v1.5 commercial intelligence
|
|
171
|
+
|
|
172
|
+
v1.5 adds a bounded Commercial Intelligence layer above the existing deterministic authority model.
|
|
173
|
+
|
|
174
|
+
The new requirement path is:
|
|
175
|
+
|
|
176
|
+
```text
|
|
177
|
+
customer requirement prose / explicit check
|
|
178
|
+
↓
|
|
179
|
+
deterministic semantic proposal and optional provider-backed proposal
|
|
180
|
+
↓
|
|
181
|
+
RequirementCriterionValidator
|
|
182
|
+
↓
|
|
183
|
+
accepted executable criterion OR engineer confirmation required
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
High-confidence deterministic mappings include explicit cycle-time limits, minimum clearance, TCP error, tracking error, no-collision language, and physical completion language. Numeric units are normalized before becoming executable criteria.
|
|
187
|
+
|
|
188
|
+
Provider-backed OpenAI / Anthropic / Gemini proposals are advisory. A provider proposal cannot create physical truth, site qualification, or real-execution authority. Unsupported, low-confidence, malformed, or non-corroborated proposals remain unaccepted and require confirmation.
|
|
189
|
+
|
|
190
|
+
Requirement-driven case generation can derive bounded variations and fault cases from explicit engineering requirements, including payload boundaries, TCP offset boundaries, missing-workpiece faults, and grasp-verification failures. Requirement → Case mapping is persisted as immutable evidence.
|
|
191
|
+
|
|
192
|
+
The full commercial orchestration order is intentionally:
|
|
193
|
+
|
|
194
|
+
```text
|
|
195
|
+
requirements
|
|
196
|
+
↓
|
|
197
|
+
validated criteria
|
|
198
|
+
↓
|
|
199
|
+
verification cases
|
|
200
|
+
↓
|
|
201
|
+
exact Twin
|
|
202
|
+
↓
|
|
203
|
+
qualified simulation if available
|
|
204
|
+
↓
|
|
205
|
+
typed physical measurement
|
|
206
|
+
↓
|
|
207
|
+
campaign verdicts
|
|
208
|
+
↓
|
|
209
|
+
repeat-run regression
|
|
210
|
+
↓
|
|
211
|
+
FAT + evidence bundle
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
A `QualifiedSimulationExecutor` must persist exact-Twin typed measurement evidence. One-Command revalidates the returned artifact before measurement is allowed to influence requirement verdicts. If no qualified arbitrary-customer execution adapter exists, simulation stays blocked and physical requirements stay `NOT_TESTED`.
|
|
215
|
+
|
|
216
|
+
Repeat runs on the same project can automatically compare the previous and current campaign and record regression evidence before generating the new FAT artifact.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
166
220
|
# Interactive engineering session
|
|
167
221
|
|
|
168
222
|
With `--open` in a real TTY, or with explicit `--interactive`, DevAgent keeps a bounded engineering prompt after the full verification run:
|
|
@@ -679,18 +733,23 @@ Existing certified controllers execute.
|
|
|
679
733
|
|
|
680
734
|
# Project status
|
|
681
735
|
|
|
682
|
-
**v1.
|
|
736
|
+
**v1.5.0 — Production/Stable software workflow**
|
|
683
737
|
|
|
684
|
-
v1.
|
|
738
|
+
v1.5.0 adds validated Requirement → Criterion intelligence, requirement-driven boundary/fault case generation, qualified simulation measurement binding contracts, clearer customer-facing progress semantics, and automatic repeat-run regression orchestration while preserving fail-closed authority.
|
|
685
739
|
|
|
686
740
|
Production-oriented software capabilities include:
|
|
687
741
|
|
|
688
742
|
```text
|
|
689
743
|
one-command customer intake
|
|
690
744
|
XLSX requirement normalization
|
|
745
|
+
validated Requirement → Criterion mapping
|
|
746
|
+
optional provider-backed criterion proposals with deterministic validation
|
|
747
|
+
requirement-driven nominal / boundary / fault case generation
|
|
691
748
|
immutable project/Twin lineage
|
|
692
749
|
deterministic full campaigns
|
|
750
|
+
qualified simulation measurement binding contract
|
|
693
751
|
measured evidence binding
|
|
752
|
+
repeat-run regression orchestration
|
|
694
753
|
professional FAT/Evidence Viewer
|
|
695
754
|
terminal progress + RUN.log
|
|
696
755
|
interactive engineering session
|
|
@@ -704,7 +763,7 @@ change impact + regression
|
|
|
704
763
|
provider-neutral optional AI front end
|
|
705
764
|
```
|
|
706
765
|
|
|
707
|
-
Quality gates include Python 3.11/3.12/3.13 regression, package clean-install, dependency audit, global branch coverage, One-Command coverage, **Selective Verification coverage**, Production Authority coverage, and Evidence Trust/Replay coverage.
|
|
766
|
+
Quality gates include Python 3.11/3.12/3.13 regression, package clean-install, dependency audit, global branch coverage, One-Command coverage, **Commercial Intelligence coverage**, **Selective Verification coverage**, Production Authority coverage, and Evidence Trust/Replay coverage.
|
|
708
767
|
|
|
709
768
|
Production/Stable describes the bounded software workflow. It does not claim arbitrary customer cells are physically qualified, site-qualified, or safe for autonomous real execution.
|
|
710
769
|
|
|
@@ -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 = "Production-grade verification-first robotics evidence runtime with one-command customer intake, selective verification
|
|
7
|
+
version = "1.5.0"
|
|
8
|
+
description = "Production-grade verification-first robotics evidence runtime with one-command customer intake, validated requirement mapping, requirement-driven test generation, selective verification, deterministic Twin lineage, measured physical verification, replay inspection, regression, and FAT evidence."
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
requires-python = ">=3.11"
|
|
11
11
|
dependencies = ["PyYAML>=6.0,<7"]
|
|
@@ -47,7 +47,7 @@ Repository = "https://github.com/tomha85/devagent-physical-engine"
|
|
|
47
47
|
Issues = "https://github.com/tomha85/devagent-physical-engine/issues"
|
|
48
48
|
|
|
49
49
|
[project.scripts]
|
|
50
|
-
devagent = "devagent_physical_engine.
|
|
50
|
+
devagent = "devagent_physical_engine.user_cli_v15:main"
|
|
51
51
|
devagent-physical = "devagent_physical_engine.cli:main"
|
|
52
52
|
devagent-physical-ai = "devagent_physical_engine.ai_cli:main"
|
|
53
53
|
devagent-commercial = "devagent_physical_engine.commercial_cli:main"
|
|
@@ -9,6 +9,21 @@ from .commercial import (
|
|
|
9
9
|
)
|
|
10
10
|
from .commercial_campaign import CommercialCampaignRunner, record_requirement_set
|
|
11
11
|
from .commercial_importer import CustomerTwinImporter
|
|
12
|
+
from .commercial_intelligence import (
|
|
13
|
+
COMMERCIAL_INTELLIGENCE_SCHEMA_VERSION,
|
|
14
|
+
CommercialIntelligenceRecorder,
|
|
15
|
+
CriterionProposal,
|
|
16
|
+
CriterionProposalProvider,
|
|
17
|
+
DeterministicSemanticCriterionProposer,
|
|
18
|
+
MappingIssue,
|
|
19
|
+
QualifiedSimulationExecutor,
|
|
20
|
+
RequirementCasePlan,
|
|
21
|
+
RequirementCriterionMapper,
|
|
22
|
+
RequirementCriterionValidator,
|
|
23
|
+
RequirementDrivenCasePlanner,
|
|
24
|
+
RequirementMappingResult,
|
|
25
|
+
SimulationExecutionReceipt,
|
|
26
|
+
)
|
|
12
27
|
from .commercial_readiness import CommercialProjectStatus, FATReportBuilder
|
|
13
28
|
from .commercial_repository import CommercialProjectRepository
|
|
14
29
|
from .evidence_replay import ReplayInspectionService
|
|
@@ -33,9 +48,9 @@ from .one_command import (
|
|
|
33
48
|
IntakeFile,
|
|
34
49
|
IntakeQuestion,
|
|
35
50
|
OneCommandError,
|
|
36
|
-
OneCommandVerifier,
|
|
37
|
-
SimpleVerifyResult,
|
|
38
51
|
)
|
|
52
|
+
from .one_command_runtime import install_one_command_runtime
|
|
53
|
+
from .one_command_v15 import OneCommandVerifier, SimpleVerifyResult
|
|
39
54
|
from .physical_motion import JointTrajectoryPoint, MotionExecutionMetrics, PhysicalMotionPlan
|
|
40
55
|
from .production_authority import (
|
|
41
56
|
PhysicalEvidenceRecorder,
|
|
@@ -59,6 +74,12 @@ from .project import (
|
|
|
59
74
|
SQLiteProjectRepository,
|
|
60
75
|
TwinRevisionRecord,
|
|
61
76
|
)
|
|
77
|
+
from .provider_criterion import (
|
|
78
|
+
PROVIDER_CRITERION_SCHEMA_VERSION,
|
|
79
|
+
ProviderCriterionConfig,
|
|
80
|
+
ProviderCriterionProposer,
|
|
81
|
+
StructuredCriterionProvider,
|
|
82
|
+
)
|
|
62
83
|
from .robot_platform import (
|
|
63
84
|
BUILTIN_ROBOT_PROFILES,
|
|
64
85
|
QualificationState,
|
|
@@ -138,6 +159,23 @@ __all__ = [
|
|
|
138
159
|
"OneCommandError",
|
|
139
160
|
"OneCommandVerifier",
|
|
140
161
|
"SimpleVerifyResult",
|
|
162
|
+
"COMMERCIAL_INTELLIGENCE_SCHEMA_VERSION",
|
|
163
|
+
"CommercialIntelligenceRecorder",
|
|
164
|
+
"CriterionProposal",
|
|
165
|
+
"CriterionProposalProvider",
|
|
166
|
+
"DeterministicSemanticCriterionProposer",
|
|
167
|
+
"MappingIssue",
|
|
168
|
+
"QualifiedSimulationExecutor",
|
|
169
|
+
"RequirementCasePlan",
|
|
170
|
+
"RequirementCriterionMapper",
|
|
171
|
+
"RequirementCriterionValidator",
|
|
172
|
+
"RequirementDrivenCasePlanner",
|
|
173
|
+
"RequirementMappingResult",
|
|
174
|
+
"SimulationExecutionReceipt",
|
|
175
|
+
"PROVIDER_CRITERION_SCHEMA_VERSION",
|
|
176
|
+
"ProviderCriterionConfig",
|
|
177
|
+
"ProviderCriterionProposer",
|
|
178
|
+
"StructuredCriterionProvider",
|
|
141
179
|
"SELECTIVE_VERIFICATION_SCHEMA_VERSION",
|
|
142
180
|
"RequirementTestResolver",
|
|
143
181
|
"ResolvedVerificationSelection",
|
|
@@ -149,4 +187,6 @@ __all__ = [
|
|
|
149
187
|
"VerificationTestMappingRecorder",
|
|
150
188
|
]
|
|
151
189
|
|
|
152
|
-
|
|
190
|
+
install_one_command_runtime()
|
|
191
|
+
|
|
192
|
+
__version__ = "1.5.0"
|