devagent-ai 0.8.7__tar.gz → 0.8.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. devagent_ai-0.8.13/PKG-INFO +310 -0
  2. devagent_ai-0.8.13/PYPI_README.md +274 -0
  3. devagent_ai-0.8.7/devagent_ai.egg-info/PKG-INFO → devagent_ai-0.8.13/README.md +549 -51
  4. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/__init__.py +1 -1
  5. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/entrypoint.py +12 -0
  6. devagent_ai-0.8.13/devagent/live/__init__.py +374 -0
  7. devagent_ai-0.8.13/devagent/live/_commercial_realtime_impl.py +1151 -0
  8. devagent_ai-0.8.13/devagent/live/advanced_assistant.py +603 -0
  9. devagent_ai-0.8.13/devagent/live/advanced_semantics.py +567 -0
  10. devagent_ai-0.8.13/devagent/live/agent_integration.py +482 -0
  11. devagent_ai-0.8.13/devagent/live/assist_cli.py +476 -0
  12. devagent_ai-0.8.13/devagent/live/assist_production_cli.py +91 -0
  13. devagent_ai-0.8.13/devagent/live/assistant.py +458 -0
  14. devagent_ai-0.8.13/devagent/live/certificate_material.py +174 -0
  15. devagent_ai-0.8.13/devagent/live/cli.py +747 -0
  16. devagent_ai-0.8.13/devagent/live/cli_security.py +182 -0
  17. devagent_ai-0.8.13/devagent/live/commercial_assistant.py +102 -0
  18. devagent_ai-0.8.13/devagent/live/commercial_readiness.py +539 -0
  19. devagent_ai-0.8.13/devagent/live/commercial_realtime.py +24 -0
  20. devagent_ai-0.8.13/devagent/live/commission.py +595 -0
  21. devagent_ai-0.8.13/devagent/live/connection_guidance.py +404 -0
  22. devagent_ai-0.8.13/devagent/live/control_guard.py +59 -0
  23. devagent_ai-0.8.13/devagent/live/diagnosis.py +663 -0
  24. devagent_ai-0.8.13/devagent/live/diagnosis_guard.py +91 -0
  25. devagent_ai-0.8.13/devagent/live/doctor.py +334 -0
  26. devagent_ai-0.8.13/devagent/live/engineering_context.py +394 -0
  27. devagent_ai-0.8.13/devagent/live/errors.py +17 -0
  28. devagent_ai-0.8.13/devagent/live/history.py +605 -0
  29. devagent_ai-0.8.13/devagent/live/manager.py +387 -0
  30. devagent_ai-0.8.13/devagent/live/models.py +70 -0
  31. devagent_ai-0.8.13/devagent/live/opcua_client.py +950 -0
  32. devagent_ai-0.8.13/devagent/live/plan.py +386 -0
  33. devagent_ai-0.8.13/devagent/live/production_integration.py +418 -0
  34. devagent_ai-0.8.13/devagent/live/production_realtime.py +325 -0
  35. devagent_ai-0.8.13/devagent/live/project_folder.py +344 -0
  36. devagent_ai-0.8.13/devagent/live/qa.py +460 -0
  37. devagent_ai-0.8.13/devagent/live/qualification.py +644 -0
  38. devagent_ai-0.8.13/devagent/live/question_resolution.py +46 -0
  39. devagent_ai-0.8.13/devagent/live/readiness.py +515 -0
  40. devagent_ai-0.8.13/devagent/live/realtime_assistant.py +595 -0
  41. devagent_ai-0.8.13/devagent/live/realtime_manager.py +619 -0
  42. devagent_ai-0.8.13/devagent/live/reconciled_evidence.py +158 -0
  43. devagent_ai-0.8.13/devagent/live/recursive_assistant.py +565 -0
  44. devagent_ai-0.8.13/devagent/live/recursive_diagnosis.py +515 -0
  45. devagent_ai-0.8.13/devagent/live/runtime_environment.py +60 -0
  46. devagent_ai-0.8.13/devagent/live/security.py +332 -0
  47. devagent_ai-0.8.13/devagent/live/semantic_assistant.py +477 -0
  48. devagent_ai-0.8.13/devagent/live/semantic_intent.py +296 -0
  49. devagent_ai-0.8.13/devagent/live/sim_cli.py +107 -0
  50. devagent_ai-0.8.13/devagent/live/simulator.py +439 -0
  51. devagent_ai-0.8.13/devagent/live/simulator_scenarios.py +180 -0
  52. devagent_ai-0.8.13/devagent/live/soak.py +445 -0
  53. devagent_ai-0.8.13/devagent/live/stateful_assistant.py +103 -0
  54. devagent_ai-0.8.13/devagent/live/stateful_context.py +496 -0
  55. devagent_ai-0.8.13/devagent/live/system_health.py +635 -0
  56. devagent_ai-0.8.13/devagent/live/tag_reconciliation.py +710 -0
  57. devagent_ai-0.8.13/devagent/live/vendor_qualification.py +297 -0
  58. devagent_ai-0.8.13/devagent/live/workflow.py +296 -0
  59. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/__init__.py +49 -1
  60. devagent_ai-0.8.13/devagent/plc/plc_dispatch.py +66 -0
  61. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/professional_report_install_v14.py +5 -0
  62. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/professional_report_v14.py +107 -6
  63. devagent_ai-0.8.13/devagent/plc/report_contract_console_v1.py +75 -0
  64. devagent_ai-0.8.13/devagent/plc/report_contract_v1.py +188 -0
  65. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_stateful_runtime.py +1 -1
  66. devagent_ai-0.8.13/devagent/plc/schneider_call_graph_v3.py +1660 -0
  67. devagent_ai-0.8.13/devagent/plc/schneider_cli_install_v1.py +97 -0
  68. devagent_ai-0.8.13/devagent/plc/schneider_closeout_v9.py +800 -0
  69. devagent_ai-0.8.13/devagent/plc/schneider_control_expert_v1.py +836 -0
  70. devagent_ai-0.8.13/devagent/plc/schneider_fault_recovery_v7.py +1037 -0
  71. devagent_ai-0.8.13/devagent/plc/schneider_graphical_v4.py +1329 -0
  72. devagent_ai-0.8.13/devagent/plc/schneider_graphical_writer_hardening_v4.py +87 -0
  73. devagent_ai-0.8.13/devagent/plc/schneider_identity_hardening_v8.py +220 -0
  74. devagent_ai-0.8.13/devagent/plc/schneider_identity_types_v8.py +932 -0
  75. devagent_ai-0.8.13/devagent/plc/schneider_integration_v1.py +405 -0
  76. devagent_ai-0.8.13/devagent/plc/schneider_interlock_permissive_hardening_v6.py +99 -0
  77. devagent_ai-0.8.13/devagent/plc/schneider_interlock_permissive_v6.py +1204 -0
  78. devagent_ai-0.8.13/devagent/plc/schneider_production_readiness.py +448 -0
  79. devagent_ai-0.8.13/devagent/plc/schneider_real_export_audit_hardening_v9.py +113 -0
  80. devagent_ai-0.8.13/devagent/plc/schneider_real_st_actions_v10.py +391 -0
  81. devagent_ai-0.8.13/devagent/plc/schneider_real_st_gap_analysis.py +256 -0
  82. devagent_ai-0.8.13/devagent/plc/schneider_regression_hardening_v9.py +207 -0
  83. devagent_ai-0.8.13/devagent/plc/schneider_report_install_v1.py +152 -0
  84. devagent_ai-0.8.13/devagent/plc/schneider_st_control_flow_v2.py +858 -0
  85. devagent_ai-0.8.13/devagent/plc/schneider_state_machine_hardening_v5.py +300 -0
  86. devagent_ai-0.8.13/devagent/plc/schneider_state_machine_v5.py +1492 -0
  87. devagent_ai-0.8.13/devagent/plc/schneider_tag_merge_v1.py +47 -0
  88. devagent_ai-0.8.13/devagent/plc/schneider_v5_bindings_v1.py +118 -0
  89. devagent_ai-0.8.13/devagent/plc/schneider_v8_compat_hardening.py +146 -0
  90. devagent_ai-0.8.13/devagent/plc/schneider_v9_hardening.py +69 -0
  91. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/signature_trust.py +1 -0
  92. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/top_engineering_risks_v1.py +15 -6
  93. devagent_ai-0.8.13/devagent_ai.egg-info/PKG-INFO +310 -0
  94. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent_ai.egg-info/SOURCES.txt +188 -0
  95. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent_ai.egg-info/requires.txt +4 -0
  96. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/pyproject.toml +4 -3
  97. devagent_ai-0.8.13/tests/test_live_advanced_contract_v1.py +53 -0
  98. devagent_ai-0.8.13/tests/test_live_advanced_hardening_v1.py +84 -0
  99. devagent_ai-0.8.13/tests/test_live_advanced_review_fixes_v1.py +137 -0
  100. devagent_ai-0.8.13/tests/test_live_advanced_rll_v1.py +81 -0
  101. devagent_ai-0.8.13/tests/test_live_advanced_scoped_tag_v1.py +60 -0
  102. devagent_ai-0.8.13/tests/test_live_advanced_semantics_v1.py +280 -0
  103. devagent_ai-0.8.13/tests/test_live_agent_integration.py +374 -0
  104. devagent_ai-0.8.13/tests/test_live_assist_cli_v1.py +117 -0
  105. devagent_ai-0.8.13/tests/test_live_certificate_format_compat.py +335 -0
  106. devagent_ai-0.8.13/tests/test_live_commercial_cli_v1.py +141 -0
  107. devagent_ai-0.8.13/tests/test_live_commercial_readiness_v1.py +227 -0
  108. devagent_ai-0.8.13/tests/test_live_commission_command.py +162 -0
  109. devagent_ai-0.8.13/tests/test_live_commission_config.py +319 -0
  110. devagent_ai-0.8.13/tests/test_live_commission_security_profiles.py +81 -0
  111. devagent_ai-0.8.13/tests/test_live_commission_summary_redaction.py +59 -0
  112. devagent_ai-0.8.13/tests/test_live_commissioning_qa_v1.py +414 -0
  113. devagent_ai-0.8.13/tests/test_live_commissioning_workflow.py +425 -0
  114. devagent_ai-0.8.13/tests/test_live_connection_guidance.py +257 -0
  115. devagent_ai-0.8.13/tests/test_live_control_guard_v1.py +63 -0
  116. devagent_ai-0.8.13/tests/test_live_conversation_final_review_guards_v2.py +123 -0
  117. devagent_ai-0.8.13/tests/test_live_diagnosis_guard_v1.py +105 -0
  118. devagent_ai-0.8.13/tests/test_live_doctor_soak_runtime_v1.py +174 -0
  119. devagent_ai-0.8.13/tests/test_live_entrypoint.py +21 -0
  120. devagent_ai-0.8.13/tests/test_live_history_question_defaults_v1.py +19 -0
  121. devagent_ai-0.8.13/tests/test_live_insecure_username_profile.py +102 -0
  122. devagent_ai-0.8.13/tests/test_live_manager.py +390 -0
  123. devagent_ai-0.8.13/tests/test_live_models.py +34 -0
  124. devagent_ai-0.8.13/tests/test_live_multi_plc_integration.py +96 -0
  125. devagent_ai-0.8.13/tests/test_live_opcua.py +207 -0
  126. devagent_ai-0.8.13/tests/test_live_opcua_certificate_format_integration.py +212 -0
  127. devagent_ai-0.8.13/tests/test_live_opcua_profile_runtime_integration.py +233 -0
  128. devagent_ai-0.8.13/tests/test_live_opcua_security_integration.py +207 -0
  129. devagent_ai-0.8.13/tests/test_live_opcua_trust_store_integration.py +234 -0
  130. devagent_ai-0.8.13/tests/test_live_pkcs12_server_pin.py +104 -0
  131. devagent_ai-0.8.13/tests/test_live_plan_command.py +153 -0
  132. devagent_ai-0.8.13/tests/test_live_plan_generator.py +255 -0
  133. devagent_ai-0.8.13/tests/test_live_probe_guidance_integration.py +39 -0
  134. devagent_ai-0.8.13/tests/test_live_probe_status_output.py +71 -0
  135. devagent_ai-0.8.13/tests/test_live_production_integration.py +274 -0
  136. devagent_ai-0.8.13/tests/test_live_production_readiness.py +173 -0
  137. devagent_ai-0.8.13/tests/test_live_production_readiness_command.py +132 -0
  138. devagent_ai-0.8.13/tests/test_live_project_folder_example_v1.py +20 -0
  139. devagent_ai-0.8.13/tests/test_live_project_folder_intake_v1.py +124 -0
  140. devagent_ai-0.8.13/tests/test_live_realistic_agent_matrix_v1.py +121 -0
  141. devagent_ai-0.8.13/tests/test_live_realistic_agent_qa_v1.py +122 -0
  142. devagent_ai-0.8.13/tests/test_live_realtime_conversation_context_v1.py +432 -0
  143. devagent_ai-0.8.13/tests/test_live_realtime_evidence_integrity_integration_v2.py +144 -0
  144. devagent_ai-0.8.13/tests/test_live_realtime_evidence_integrity_regressions_v2.py +276 -0
  145. devagent_ai-0.8.13/tests/test_live_realtime_evidence_integrity_v2.py +324 -0
  146. devagent_ai-0.8.13/tests/test_live_realtime_evidence_v1.py +484 -0
  147. devagent_ai-0.8.13/tests/test_live_realtime_final_review_regressions_v2.py +360 -0
  148. devagent_ai-0.8.13/tests/test_live_realtime_race_hardening_v1.py +255 -0
  149. devagent_ai-0.8.13/tests/test_live_realtime_reconfiguration_integrity_v2.py +85 -0
  150. devagent_ai-0.8.13/tests/test_live_realtime_revalidation_v1.py +258 -0
  151. devagent_ai-0.8.13/tests/test_live_reconciled_evidence.py +204 -0
  152. devagent_ai-0.8.13/tests/test_live_reconciled_evidence_scope.py +108 -0
  153. devagent_ai-0.8.13/tests/test_live_reconnect_unit.py +321 -0
  154. devagent_ai-0.8.13/tests/test_live_recursive_assistant_contract_v1.py +78 -0
  155. devagent_ai-0.8.13/tests/test_live_recursive_diagnosis_v1.py +252 -0
  156. devagent_ai-0.8.13/tests/test_live_release_qualification.py +192 -0
  157. devagent_ai-0.8.13/tests/test_live_release_qualification_command.py +72 -0
  158. devagent_ai-0.8.13/tests/test_live_release_qualification_hardening.py +64 -0
  159. devagent_ai-0.8.13/tests/test_live_review_hardening_v1.py +96 -0
  160. devagent_ai-0.8.13/tests/test_live_security.py +458 -0
  161. devagent_ai-0.8.13/tests/test_live_security_backward_compat.py +29 -0
  162. devagent_ai-0.8.13/tests/test_live_security_exception_chain.py +79 -0
  163. devagent_ai-0.8.13/tests/test_live_semantic_intent_router_v2.py +289 -0
  164. devagent_ai-0.8.13/tests/test_live_semantic_intent_router_v2_p1_regressions.py +452 -0
  165. devagent_ai-0.8.13/tests/test_live_semantic_router_observability_v1.py +33 -0
  166. devagent_ai-0.8.13/tests/test_live_server_hostname_validation.py +67 -0
  167. devagent_ai-0.8.13/tests/test_live_sim_matrix_cli_v1.py +27 -0
  168. devagent_ai-0.8.13/tests/test_live_simulator_demo_project_v1.py +52 -0
  169. devagent_ai-0.8.13/tests/test_live_simulator_scenarios_v1.py +128 -0
  170. devagent_ai-0.8.13/tests/test_live_simulator_security_unit.py +44 -0
  171. devagent_ai-0.8.13/tests/test_live_stateful_failclosed_v1.py +39 -0
  172. devagent_ai-0.8.13/tests/test_live_stateful_history_v1.py +269 -0
  173. devagent_ai-0.8.13/tests/test_live_stateful_missing_rungs_v1.py +16 -0
  174. devagent_ai-0.8.13/tests/test_live_system_health_fail_closed_v1.py +122 -0
  175. devagent_ai-0.8.13/tests/test_live_system_health_v1.py +315 -0
  176. devagent_ai-0.8.13/tests/test_live_system_master_overview_v1.py +134 -0
  177. devagent_ai-0.8.13/tests/test_live_system_master_routing_v1.py +110 -0
  178. devagent_ai-0.8.13/tests/test_live_system_master_simulator_integration_v1.py +109 -0
  179. devagent_ai-0.8.13/tests/test_live_tag_reconciliation.py +399 -0
  180. devagent_ai-0.8.13/tests/test_live_trust_store.py +267 -0
  181. devagent_ai-0.8.13/tests/test_live_vendor_soak_v1.py +178 -0
  182. devagent_ai-0.8.13/tests/test_live_workflow_public_api.py +30 -0
  183. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_cli_live_progress.py +40 -0
  184. devagent_ai-0.8.13/tests/test_plc_report_contract_v1.py +169 -0
  185. devagent_ai-0.8.13/tests/test_plc_schneider_core.py +143 -0
  186. devagent_ai-0.8.13/tests/test_plc_schneider_production.py +122 -0
  187. devagent_ai-0.8.13/tests/test_plc_schneider_production_readiness.py +268 -0
  188. devagent_ai-0.8.13/tests/test_plc_schneider_production_readiness_hardening.py +102 -0
  189. devagent_ai-0.8.13/tests/test_plc_schneider_real_st_actions_v10.py +146 -0
  190. devagent_ai-0.8.13/tests/test_plc_schneider_real_st_gap_analysis.py +84 -0
  191. devagent_ai-0.8.13/tests/test_plc_schneider_regression_hardening.py +147 -0
  192. devagent_ai-0.8.13/tests/test_plc_schneider_v2.py +314 -0
  193. devagent_ai-0.8.13/tests/test_plc_schneider_v3.py +315 -0
  194. devagent_ai-0.8.13/tests/test_plc_schneider_v4.py +292 -0
  195. devagent_ai-0.8.13/tests/test_plc_schneider_v4_writer_hardening.py +91 -0
  196. devagent_ai-0.8.13/tests/test_plc_schneider_v5.py +374 -0
  197. devagent_ai-0.8.13/tests/test_plc_schneider_v5_hardening.py +249 -0
  198. devagent_ai-0.8.13/tests/test_plc_schneider_v6.py +362 -0
  199. devagent_ai-0.8.13/tests/test_plc_schneider_v6_hardening.py +52 -0
  200. devagent_ai-0.8.13/tests/test_plc_schneider_v7.py +319 -0
  201. devagent_ai-0.8.13/tests/test_plc_schneider_v8.py +281 -0
  202. devagent_ai-0.8.13/tests/test_plc_schneider_v8_downstream_hardening.py +71 -0
  203. devagent_ai-0.8.13/tests/test_plc_schneider_v9.py +201 -0
  204. devagent_ai-0.8.13/tests/test_plc_schneider_v9_hardening.py +137 -0
  205. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_production_v040.py +28 -7
  206. devagent_ai-0.8.7/PKG-INFO +0 -756
  207. devagent_ai-0.8.7/README.md +0 -723
  208. devagent_ai-0.8.7/devagent/plc/plc_dispatch.py +0 -41
  209. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/LICENSE +0 -0
  210. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/NOTICE +0 -0
  211. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/agent/__init__.py +0 -0
  212. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/agent/llm.py +0 -0
  213. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/agent/loop.py +0 -0
  214. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/agent/memory.py +0 -0
  215. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/agent/prompts.py +0 -0
  216. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/agent/tools.py +0 -0
  217. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/__main__.py +0 -0
  218. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/artifacts.py +0 -0
  219. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/automations.py +0 -0
  220. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/autonomy.py +0 -0
  221. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/browser.py +0 -0
  222. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/cli.py +0 -0
  223. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/config.py +0 -0
  224. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/discovery.py +0 -0
  225. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/evaluation.py +0 -0
  226. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/memory.py +0 -0
  227. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/models.py +0 -0
  228. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/orchestrator.py +0 -0
  229. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/agent_harness_install_v15.py +0 -0
  230. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/agent_harness_v15.py +0 -0
  231. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/analysis.py +0 -0
  232. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/cli.py +0 -0
  233. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/execution_trust.py +0 -0
  234. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/fat_procedure_v12.py +0 -0
  235. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/four_contract_v13.py +0 -0
  236. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/inspect_cli.py +0 -0
  237. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/models.py +0 -0
  238. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production.py +0 -0
  239. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_ai.py +0 -0
  240. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_evidence.py +0 -0
  241. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_models.py +0 -0
  242. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_readiness.py +0 -0
  243. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_readiness_v5.py +0 -0
  244. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_regression.py +0 -0
  245. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_report.py +0 -0
  246. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_review.py +0 -0
  247. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_utils.py +0 -0
  248. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_v5.py +0 -0
  249. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/production_verification.py +0 -0
  250. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/release_policy.py +0 -0
  251. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/report.py +0 -0
  252. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/report_clarity_install_v16.py +0 -0
  253. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/report_levels.py +0 -0
  254. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/requirements.py +0 -0
  255. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_action_requirements.py +0 -0
  256. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_alias_hardening.py +0 -0
  257. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_branch_coverage_v16.py +0 -0
  258. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_closeout.py +0 -0
  259. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_closeout_gate_hardening.py +0 -0
  260. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_compare.py +0 -0
  261. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_compare_hardening.py +0 -0
  262. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_compare_reachability_hardening.py +0 -0
  263. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_core_review_v12.py +0 -0
  264. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_echo.py +0 -0
  265. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_echo_gate.py +0 -0
  266. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_entrypoint_hardening.py +0 -0
  267. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_general_actions.py +0 -0
  268. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_l5x.py +0 -0
  269. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_motion_runtime_v11.py +0 -0
  270. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_regression_case_compat_v12.py +0 -0
  271. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_regression_evidence_hardening.py +0 -0
  272. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_requirement_hardening.py +0 -0
  273. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_risk_hardening.py +0 -0
  274. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_semantic_capabilities.py +0 -0
  275. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_st_case_v11.py +0 -0
  276. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_st_v10.py +0 -0
  277. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_standard_catalog.py +0 -0
  278. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_state_machine_v11.py +0 -0
  279. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_structure.py +0 -0
  280. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_system_service_install_v17.py +0 -0
  281. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_system_service_report_install_v17.py +0 -0
  282. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_system_service_v17.py +0 -0
  283. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/rockwell_v10_semantics.py +0 -0
  284. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/safe_analysis.py +0 -0
  285. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/semantic_coverage.py +0 -0
  286. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/semantic_coverage_report.py +0 -0
  287. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_call_graph_v3.py +0 -0
  288. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_cli_install_v1.py +0 -0
  289. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_closeout_v9.py +0 -0
  290. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_flgnet_extended_hardening_v4.py +0 -0
  291. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_flgnet_extended_v4.py +0 -0
  292. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_flgnet_hardening_v4.py +0 -0
  293. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_flgnet_v4.py +0 -0
  294. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_identity_types_v8.py +0 -0
  295. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_integration_v1.py +0 -0
  296. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_interlock_permissive_v6.py +0 -0
  297. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_recovery_v7.py +0 -0
  298. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_scl_control_flow_hardening_v2.py +0 -0
  299. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_scl_control_flow_v2.py +0 -0
  300. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_state_machine_hardening_v5.py +0 -0
  301. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_state_machine_v5.py +0 -0
  302. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_tia_v1.py +0 -0
  303. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_v5_bindings_v1.py +0 -0
  304. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_v6_v7_token_hardening.py +0 -0
  305. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/siemens_v8_v9_compat_hardening.py +0 -0
  306. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/trusted_snapshot.py +0 -0
  307. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/v2_guardrails.py +0 -0
  308. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/plc/v2_semantics.py +0 -0
  309. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/provider_benchmark.py +0 -0
  310. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/providers.py +0 -0
  311. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/qualification.py +0 -0
  312. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/realworld.py +0 -0
  313. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/report.py +0 -0
  314. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/retrieval.py +0 -0
  315. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/routing.py +0 -0
  316. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/runtime.py +0 -0
  317. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/safety.py +0 -0
  318. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/skills.py +0 -0
  319. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/source_control.py +0 -0
  320. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/state_machine.py +0 -0
  321. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/tasking.py +0 -0
  322. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/technical_review.py +0 -0
  323. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/workspace.py +0 -0
  324. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent/worktree.py +0 -0
  325. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent_ai.egg-info/dependency_links.txt +0 -0
  326. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent_ai.egg-info/entry_points.txt +0 -0
  327. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/devagent_ai.egg-info/top_level.txt +0 -0
  328. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/setup.cfg +0 -0
  329. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_acceptance_contract.py +0 -0
  330. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_benchmark_catalog.py +0 -0
  331. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_browser_verification.py +0 -0
  332. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_capability_discovery.py +0 -0
  333. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_cli.py +0 -0
  334. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_cli_progress.py +0 -0
  335. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_developer_review_report.py +0 -0
  336. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_discovery_memory.py +0 -0
  337. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_e2e_fake_provider.py +0 -0
  338. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_evaluation_harness.py +0 -0
  339. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_evaluation_matrix.py +0 -0
  340. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_evaluation_regression_evidence.py +0 -0
  341. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_functional_qualification.py +0 -0
  342. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_huge_monorepo_v070.py +0 -0
  343. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_migration_e2e_v070.py +0 -0
  344. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_model_routing.py +0 -0
  345. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_multilang_technical_review.py +0 -0
  346. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_multistack_devagent_e2e.py +0 -0
  347. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_multistack_qualification.py +0 -0
  348. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_packaging_metadata.py +0 -0
  349. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plan_verification_normalization.py +0 -0
  350. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_agent_harness_trace_v15.py +0 -0
  351. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_agent_harness_v15.py +0 -0
  352. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_execution_trust.py +0 -0
  353. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_four_contract_v13.py +0 -0
  354. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_product_contract_v12.py +0 -0
  355. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_production.py +0 -0
  356. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_production_v5.py +0 -0
  357. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_release_policy.py +0 -0
  358. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_report_levels.py +0 -0
  359. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_boolean_alias_proof.py +0 -0
  360. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_canonical_risks.py +0 -0
  361. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_closeout_v9.py +0 -0
  362. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_closeout_v9_guardrails.py +0 -0
  363. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_closeout_v9_review_regressions.py +0 -0
  364. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_compare_v8.py +0 -0
  365. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_compare_v8_aliases.py +0 -0
  366. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_compare_v8_hardening.py +0 -0
  367. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_compare_v8_identity_assertions.py +0 -0
  368. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_compare_v8_review_regressions.py +0 -0
  369. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_echo_cli_v6.py +0 -0
  370. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_echo_v6.py +0 -0
  371. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_hardening.py +0 -0
  372. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_semantics_v7.py +0 -0
  373. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v1.py +0 -0
  374. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v10_action_requirements.py +0 -0
  375. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v10_arbitrary_project_qualification.py +0 -0
  376. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v10_echo_compatibility.py +0 -0
  377. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v10_general_actions.py +0 -0
  378. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v10_general_semantics.py +0 -0
  379. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v10_inspect_cli.py +0 -0
  380. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v10_semantic_coverage.py +0 -0
  381. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v10_st_safe_functions.py +0 -0
  382. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v10_stateful_runtime.py +0 -0
  383. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v11_reporting.py +0 -0
  384. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v11_st_motion.py +0 -0
  385. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v11_state_machine.py +0 -0
  386. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v16_semantic_hardening.py +0 -0
  387. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v17_system_service_fat.py +0 -0
  388. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v17_system_service_generic.py +0 -0
  389. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v2.py +0 -0
  390. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v9_entry_edgecases.py +0 -0
  391. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v9_final_codex.py +0 -0
  392. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v9_merge_gates.py +0 -0
  393. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_rockwell_v9_reachable_writers.py +0 -0
  394. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_siemens_v1.py +0 -0
  395. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_siemens_v2.py +0 -0
  396. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_siemens_v3_call_graph.py +0 -0
  397. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_siemens_v4_extended.py +0 -0
  398. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_siemens_v4_flgnet.py +0 -0
  399. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_siemens_v5_state_machine.py +0 -0
  400. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_siemens_v6_v7.py +0 -0
  401. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_siemens_v8_v9.py +0 -0
  402. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_signature_trust.py +0 -0
  403. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_top_engineering_risks.py +0 -0
  404. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_v5_security_floor.py +0 -0
  405. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_plc_v5_toctou.py +0 -0
  406. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_preservation_contradiction.py +0 -0
  407. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_production_hardening.py +0 -0
  408. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_realworld_benchmark.py +0 -0
  409. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_requirement_compiler_v082.py +0 -0
  410. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_requirement_intelligence_v083.py +0 -0
  411. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_retrieval.py +0 -0
  412. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_runtime_sandbox.py +0 -0
  413. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_safety_workspace.py +0 -0
  414. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_source_control_publish.py +0 -0
  415. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_structural_devagent_e2e_v070.py +0 -0
  416. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_structural_operations.py +0 -0
  417. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_structured_provider_contract.py +0 -0
  418. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_tasking_state.py +0 -0
  419. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_v070_engineering_breadth.py +0 -0
  420. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_v080_autonomy.py +0 -0
  421. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_v080_provider_benchmark.py +0 -0
  422. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_v080_skills_automations.py +0 -0
  423. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_workspace_environment.py +0 -0
  424. {devagent_ai-0.8.7 → devagent_ai-0.8.13}/tests/test_worktree.py +0 -0
@@ -0,0 +1,310 @@
1
+ Metadata-Version: 2.4
2
+ Name: devagent-ai
3
+ Version: 0.8.13
4
+ Summary: Evidence-driven local autonomous software engineering agent
5
+ Author: Tom Ha
6
+ Maintainer: Tom Ha
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/tomha85/devagent
9
+ Project-URL: Repository, https://github.com/tomha85/devagent
10
+ Project-URL: Issues, https://github.com/tomha85/devagent/issues
11
+ Project-URL: Changelog, https://github.com/tomha85/devagent/blob/main/CHANGELOG.md
12
+ Project-URL: Sponsor, https://github.com/sponsors/tomha85
13
+ Keywords: ai,agent,developer-tools,software-engineering,verification,local-first
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3 :: Only
20
+ Classifier: Topic :: Software Development :: Quality Assurance
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ License-File: NOTICE
25
+ Requires-Dist: openai>=1.40.0
26
+ Requires-Dist: anthropic>=0.34.0
27
+ Requires-Dist: cryptography>=42.0.0
28
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11"
29
+ Provides-Extra: live
30
+ Requires-Dist: asyncua<3,>=2.0; extra == "live"
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest>=8.0; extra == "dev"
33
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
34
+ Requires-Dist: asyncua<3,>=2.0; extra == "dev"
35
+ Dynamic: license-file
36
+
37
+ # DevAgent
38
+
39
+ [![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://www.python.org/)
40
+ [![Status: Beta](https://img.shields.io/badge/status-beta-blue.svg)](https://github.com/tomha85/devagent#project-status)
41
+ [![Sponsor DevAgent](https://img.shields.io/badge/Sponsor-DevAgent-EA4AAA?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/tomha85)
42
+
43
+ **An evidence-driven engineering agent for software engineering, offline PLC engineering/FAT review, and read-only onsite commissioning.**
44
+
45
+ > **From requirement to evidence-backed engineering decisions.**
46
+
47
+ DevAgent is free during public beta. If it saves you engineering time, consider [supporting continued development](https://github.com/sponsors/tomha85).
48
+
49
+ - **Project:** https://github.com/tomha85/devagent
50
+ - **Documentation:** https://github.com/tomha85/devagent#readme
51
+ - **Issues:** https://github.com/tomha85/devagent/issues
52
+
53
+ ## General Architecture
54
+
55
+ DevAgent has **three sibling product branches** under one evidence-driven core. Each branch owns a distinct engineering responsibility, input model, safety boundary, and qualification path.
56
+
57
+ ```text
58
+ DevAgent Core
59
+ Evidence-Driven Engineering Platform
60
+ |
61
+ +-------------------+-------------------+
62
+ | | |
63
+ v v v
64
+ Software Engineering DevAgent PLC DevAgent Live
65
+ Product Branch #1 Product Branch #2 Product Branch #3
66
+ | | |
67
+ Local / GitHub repo PLC export Engineering context
68
+ | Siemens + OPC UA endpoint(s)
69
+ | Rockwell |
70
+ | Schneider v
71
+ | | Reconcile / Trust
72
+ v v Freshness / History
73
+ Understand / Plan Canonical PLC |
74
+ Modify / Test / Review Engineering Model v
75
+ | | Deterministic
76
+ v v Commissioning Diagnosis
77
+ Engineering Report Analyze / Verify |
78
+ + Safe Branch FAT / Release Readiness v
79
+ Evidence / Explanation
80
+ + Next Safe Check
81
+ ```
82
+
83
+ | Product branch | Primary input | Authority |
84
+ | --- | --- | --- |
85
+ | **Software Engineering** | Local / GitHub repository | Understand, modify, verify, review, report, publish a safe branch |
86
+ | **DevAgent PLC** | Exported PLC engineering artifacts | Offline engineering review, requirements, FAT, evidence, release readiness |
87
+ | **DevAgent Live** | Read-only engineering context + OPC UA runtime | Onsite commissioning diagnosis, runtime evidence, history, Q&A - **no PLC control** |
88
+
89
+ ### Read-only PLC to Live integration contract
90
+
91
+ DevAgent Live is **not a child of DevAgent PLC**. Stable PLC engineering context can cross into Live through a bounded read-only adapter contract. FAT and release-readiness authority stays with DevAgent PLC; OPC UA sessions, runtime trust/history, diagnosis, and commissioning Q&A stay with DevAgent Live.
92
+
93
+ ```text
94
+ Canonical PLC Engineering Model
95
+ |
96
+ | READ-ONLY ENGINEERING CONTEXT
97
+ v
98
+ DevAgent Live Adapter <----- OPC UA Runtime Evidence
99
+ |
100
+ v
101
+ Engineering <-> Runtime Join
102
+ |
103
+ v
104
+ Commissioning Diagnosis
105
+ ```
106
+
107
+ The read-only engineering-context path does **not** transfer FAT authority, release-readiness authority, or PLC control authority to DevAgent Live.
108
+
109
+ For the expanded architecture, see:
110
+ https://github.com/tomha85/devagent/blob/main/docs/general-architecture.md
111
+
112
+ ## Why DevAgent?
113
+
114
+ Many AI engineering tools optimize first for generation. DevAgent is built around a different question:
115
+
116
+ **Can this engineering claim be supported by evidence on the exact analyzed revision, PLC export, or trusted runtime state?**
117
+
118
+ Core principles include:
119
+
120
+ - evidence before modification;
121
+ - explicit acceptance contracts;
122
+ - false-`VERIFIED` resistance;
123
+ - minimal-change discipline;
124
+ - backups before edits;
125
+ - repository-native verification;
126
+ - independent review;
127
+ - bring-your-own-model support;
128
+ - deterministic publication rules;
129
+ - a strict read-only commissioning boundary for DevAgent Live.
130
+
131
+ ## Install
132
+
133
+ Standard package:
134
+
135
+ ```bash
136
+ python -m pip install devagent-ai
137
+ ```
138
+
139
+ With OPC UA runtime support for DevAgent Live:
140
+
141
+ ```bash
142
+ python -m pip install "devagent-ai[live]"
143
+ ```
144
+
145
+ Or with pipx:
146
+
147
+ ```bash
148
+ pipx install devagent-ai
149
+ ```
150
+
151
+ The PyPI distribution is `devagent-ai`; the Python package and CLI command are both `devagent`.
152
+
153
+ ## Software Engineering
154
+
155
+ Run DevAgent from a repository and describe the engineering outcome:
156
+
157
+ ```bash
158
+ cd my-repo
159
+ devagent "Fix the websocket reconnect bug and add regression tests"
160
+ ```
161
+
162
+ A normal software-engineering path is:
163
+
164
+ ```text
165
+ DISCOVER / UNDERSTAND
166
+ |
167
+ v
168
+ COMPILE ACCEPTANCE CONTRACT
169
+ |
170
+ v
171
+ BASELINE / PLAN / GATHER CONTEXT
172
+ |
173
+ v
174
+ IMPLEMENT MINIMAL PATCH
175
+ |
176
+ v
177
+ TARGETED + BROAD VERIFICATION
178
+ |
179
+ v
180
+ INDEPENDENT REVIEW
181
+ |
182
+ v
183
+ FINAL CURRENT-REVISION VERIFICATION
184
+ |
185
+ v
186
+ FULL ENGINEERING REPORT
187
+ |
188
+ v
189
+ VERIFIED ONLY: COMMIT + FAST-FORWARD PUSH SAFE BRANCH
190
+ ```
191
+
192
+ DevAgent runtime does not create pull requests, merge, rebase, force-push, or deploy.
193
+
194
+ ## DevAgent PLC
195
+
196
+ DevAgent PLC performs offline/pre-site engineering review for supported exports from:
197
+
198
+ - **Rockwell Studio 5000 / Logix Designer** - full-project `.L5X`;
199
+ - **Siemens TIA Portal** - supported exported source/XML engineering artifacts;
200
+ - **Schneider Electric EcoStruxure Control Expert / Unity Pro** - supported XML exchange exports, with `.XEF` preferred.
201
+
202
+ Example:
203
+
204
+ ```bash
205
+ devagent plc ./exports/Line1_Controller.L5X \
206
+ --requirements ./requirements/line1.md \
207
+ --ai \
208
+ --output-dir ./plc-review/line1-current
209
+ ```
210
+
211
+ The PLC workflow can provide engineering review, requirements verification, risk detection, FAT planning, regression analysis, recommendations, evidence, and release-readiness reporting. Static analysis does not pretend to replace simulator, HIL, field wiring, process physics, or real-controller execution when those are required.
212
+
213
+ Full PLC guide:
214
+ https://github.com/tomha85/devagent/blob/main/docs/plc-engineer-guide.md
215
+
216
+ ## DevAgent Live
217
+
218
+ DevAgent Live is the separate **read-only onsite commissioning** branch. It can combine supported engineering context with trusted OPC UA runtime evidence to diagnose blockers and explain the next evidence-backed check.
219
+
220
+ ```text
221
+ Supported PLC engineering context
222
+ +
223
+ OPC UA runtime endpoint
224
+ |
225
+ v
226
+ DevAgent Live
227
+ |
228
+ v
229
+ reconcile engineering <-> runtime
230
+ |
231
+ v
232
+ deterministic diagnosis + evidence
233
+ ```
234
+
235
+ Example:
236
+
237
+ ```bash
238
+ devagent live assist \
239
+ --project-folder /path/to/customer-line1 \
240
+ --primary-project plc/Line1.L5X \
241
+ --endpoint opc.tcp://192.168.10.20:4840/ \
242
+ --history-seconds 900 \
243
+ --ai \
244
+ --provider openai \
245
+ --model YOUR_OPENAI_MODEL
246
+ ```
247
+
248
+ ### READ ONLY safety boundary
249
+
250
+ ```text
251
+ READ ONLY
252
+ no write
253
+ no force
254
+ no reset
255
+ no bypass
256
+ no upload / download
257
+ no mode change
258
+ no start / stop control
259
+ ```
260
+
261
+ The LLM may interpret or explain evidence. It cannot turn model confidence into PLC truth or authorize machine control.
262
+
263
+ Live documentation:
264
+ https://github.com/tomha85/devagent/tree/main/docs/live
265
+
266
+ ## Bring Your Own Model
267
+
268
+ DevAgent supports OpenAI, Anthropic/Claude, xAI/Grok, Google Gemini, and OpenAI-compatible endpoints behind the same deterministic engineering harness.
269
+
270
+ Example:
271
+
272
+ ```bash
273
+ devagent setup --provider openai --model YOUR_MODEL
274
+ export OPENAI_API_KEY=...
275
+ devagent doctor --live
276
+ ```
277
+
278
+ Provider choice can affect reasoning quality, latency, cost, and privacy characteristics. It does not change DevAgent's deterministic acceptance, verification, safety, reporting, or publication rules.
279
+
280
+ ## Outcome Contract
281
+
282
+ DevAgent reports bounded engineering outcomes:
283
+
284
+ - **`VERIFIED`** - required criteria are supported by admissible evidence and final verification/review passes on the current revision;
285
+ - **`PARTIALLY_VERIFIED`** - meaningful evidence exists but complete proof is unavailable;
286
+ - **`BLOCKED`** - DevAgent cannot safely understand, implement, or verify the request.
287
+
288
+ A conservative result is preferred over a false `VERIFIED`.
289
+
290
+ ## Project Status
291
+
292
+ DevAgent is beta software. Qualification claims are tied to explicit test catalogs, pinned revisions, fixtures/external oracles where applicable, and the environments actually exercised. They are not universal-correctness or market-superiority claims.
293
+
294
+ For the current implementation status, qualification details, limitations, examples, and complete documentation, see the main repository README:
295
+ https://github.com/tomha85/devagent#readme
296
+
297
+ ## Support
298
+
299
+ DevAgent is currently free during public beta.
300
+
301
+ If DevAgent saves you engineering time, you can support continued development through GitHub Sponsors:
302
+ https://github.com/sponsors/tomha85
303
+
304
+ ## License
305
+
306
+ DevAgent is open source under the MIT License.
307
+
308
+ Copyright (c) 2026 Tom Ha
309
+
310
+ Original repository: https://github.com/tomha85/devagent
@@ -0,0 +1,274 @@
1
+ # DevAgent
2
+
3
+ [![Python 3.10+](https://img.shields.io/badge/Python-3.10%2B-blue.svg)](https://www.python.org/)
4
+ [![Status: Beta](https://img.shields.io/badge/status-beta-blue.svg)](https://github.com/tomha85/devagent#project-status)
5
+ [![Sponsor DevAgent](https://img.shields.io/badge/Sponsor-DevAgent-EA4AAA?logo=githubsponsors&logoColor=white)](https://github.com/sponsors/tomha85)
6
+
7
+ **An evidence-driven engineering agent for software engineering, offline PLC engineering/FAT review, and read-only onsite commissioning.**
8
+
9
+ > **From requirement to evidence-backed engineering decisions.**
10
+
11
+ DevAgent is free during public beta. If it saves you engineering time, consider [supporting continued development](https://github.com/sponsors/tomha85).
12
+
13
+ - **Project:** https://github.com/tomha85/devagent
14
+ - **Documentation:** https://github.com/tomha85/devagent#readme
15
+ - **Issues:** https://github.com/tomha85/devagent/issues
16
+
17
+ ## General Architecture
18
+
19
+ DevAgent has **three sibling product branches** under one evidence-driven core. Each branch owns a distinct engineering responsibility, input model, safety boundary, and qualification path.
20
+
21
+ ```text
22
+ DevAgent Core
23
+ Evidence-Driven Engineering Platform
24
+ |
25
+ +-------------------+-------------------+
26
+ | | |
27
+ v v v
28
+ Software Engineering DevAgent PLC DevAgent Live
29
+ Product Branch #1 Product Branch #2 Product Branch #3
30
+ | | |
31
+ Local / GitHub repo PLC export Engineering context
32
+ | Siemens + OPC UA endpoint(s)
33
+ | Rockwell |
34
+ | Schneider v
35
+ | | Reconcile / Trust
36
+ v v Freshness / History
37
+ Understand / Plan Canonical PLC |
38
+ Modify / Test / Review Engineering Model v
39
+ | | Deterministic
40
+ v v Commissioning Diagnosis
41
+ Engineering Report Analyze / Verify |
42
+ + Safe Branch FAT / Release Readiness v
43
+ Evidence / Explanation
44
+ + Next Safe Check
45
+ ```
46
+
47
+ | Product branch | Primary input | Authority |
48
+ | --- | --- | --- |
49
+ | **Software Engineering** | Local / GitHub repository | Understand, modify, verify, review, report, publish a safe branch |
50
+ | **DevAgent PLC** | Exported PLC engineering artifacts | Offline engineering review, requirements, FAT, evidence, release readiness |
51
+ | **DevAgent Live** | Read-only engineering context + OPC UA runtime | Onsite commissioning diagnosis, runtime evidence, history, Q&A - **no PLC control** |
52
+
53
+ ### Read-only PLC to Live integration contract
54
+
55
+ DevAgent Live is **not a child of DevAgent PLC**. Stable PLC engineering context can cross into Live through a bounded read-only adapter contract. FAT and release-readiness authority stays with DevAgent PLC; OPC UA sessions, runtime trust/history, diagnosis, and commissioning Q&A stay with DevAgent Live.
56
+
57
+ ```text
58
+ Canonical PLC Engineering Model
59
+ |
60
+ | READ-ONLY ENGINEERING CONTEXT
61
+ v
62
+ DevAgent Live Adapter <----- OPC UA Runtime Evidence
63
+ |
64
+ v
65
+ Engineering <-> Runtime Join
66
+ |
67
+ v
68
+ Commissioning Diagnosis
69
+ ```
70
+
71
+ The read-only engineering-context path does **not** transfer FAT authority, release-readiness authority, or PLC control authority to DevAgent Live.
72
+
73
+ For the expanded architecture, see:
74
+ https://github.com/tomha85/devagent/blob/main/docs/general-architecture.md
75
+
76
+ ## Why DevAgent?
77
+
78
+ Many AI engineering tools optimize first for generation. DevAgent is built around a different question:
79
+
80
+ **Can this engineering claim be supported by evidence on the exact analyzed revision, PLC export, or trusted runtime state?**
81
+
82
+ Core principles include:
83
+
84
+ - evidence before modification;
85
+ - explicit acceptance contracts;
86
+ - false-`VERIFIED` resistance;
87
+ - minimal-change discipline;
88
+ - backups before edits;
89
+ - repository-native verification;
90
+ - independent review;
91
+ - bring-your-own-model support;
92
+ - deterministic publication rules;
93
+ - a strict read-only commissioning boundary for DevAgent Live.
94
+
95
+ ## Install
96
+
97
+ Standard package:
98
+
99
+ ```bash
100
+ python -m pip install devagent-ai
101
+ ```
102
+
103
+ With OPC UA runtime support for DevAgent Live:
104
+
105
+ ```bash
106
+ python -m pip install "devagent-ai[live]"
107
+ ```
108
+
109
+ Or with pipx:
110
+
111
+ ```bash
112
+ pipx install devagent-ai
113
+ ```
114
+
115
+ The PyPI distribution is `devagent-ai`; the Python package and CLI command are both `devagent`.
116
+
117
+ ## Software Engineering
118
+
119
+ Run DevAgent from a repository and describe the engineering outcome:
120
+
121
+ ```bash
122
+ cd my-repo
123
+ devagent "Fix the websocket reconnect bug and add regression tests"
124
+ ```
125
+
126
+ A normal software-engineering path is:
127
+
128
+ ```text
129
+ DISCOVER / UNDERSTAND
130
+ |
131
+ v
132
+ COMPILE ACCEPTANCE CONTRACT
133
+ |
134
+ v
135
+ BASELINE / PLAN / GATHER CONTEXT
136
+ |
137
+ v
138
+ IMPLEMENT MINIMAL PATCH
139
+ |
140
+ v
141
+ TARGETED + BROAD VERIFICATION
142
+ |
143
+ v
144
+ INDEPENDENT REVIEW
145
+ |
146
+ v
147
+ FINAL CURRENT-REVISION VERIFICATION
148
+ |
149
+ v
150
+ FULL ENGINEERING REPORT
151
+ |
152
+ v
153
+ VERIFIED ONLY: COMMIT + FAST-FORWARD PUSH SAFE BRANCH
154
+ ```
155
+
156
+ DevAgent runtime does not create pull requests, merge, rebase, force-push, or deploy.
157
+
158
+ ## DevAgent PLC
159
+
160
+ DevAgent PLC performs offline/pre-site engineering review for supported exports from:
161
+
162
+ - **Rockwell Studio 5000 / Logix Designer** - full-project `.L5X`;
163
+ - **Siemens TIA Portal** - supported exported source/XML engineering artifacts;
164
+ - **Schneider Electric EcoStruxure Control Expert / Unity Pro** - supported XML exchange exports, with `.XEF` preferred.
165
+
166
+ Example:
167
+
168
+ ```bash
169
+ devagent plc ./exports/Line1_Controller.L5X \
170
+ --requirements ./requirements/line1.md \
171
+ --ai \
172
+ --output-dir ./plc-review/line1-current
173
+ ```
174
+
175
+ The PLC workflow can provide engineering review, requirements verification, risk detection, FAT planning, regression analysis, recommendations, evidence, and release-readiness reporting. Static analysis does not pretend to replace simulator, HIL, field wiring, process physics, or real-controller execution when those are required.
176
+
177
+ Full PLC guide:
178
+ https://github.com/tomha85/devagent/blob/main/docs/plc-engineer-guide.md
179
+
180
+ ## DevAgent Live
181
+
182
+ DevAgent Live is the separate **read-only onsite commissioning** branch. It can combine supported engineering context with trusted OPC UA runtime evidence to diagnose blockers and explain the next evidence-backed check.
183
+
184
+ ```text
185
+ Supported PLC engineering context
186
+ +
187
+ OPC UA runtime endpoint
188
+ |
189
+ v
190
+ DevAgent Live
191
+ |
192
+ v
193
+ reconcile engineering <-> runtime
194
+ |
195
+ v
196
+ deterministic diagnosis + evidence
197
+ ```
198
+
199
+ Example:
200
+
201
+ ```bash
202
+ devagent live assist \
203
+ --project-folder /path/to/customer-line1 \
204
+ --primary-project plc/Line1.L5X \
205
+ --endpoint opc.tcp://192.168.10.20:4840/ \
206
+ --history-seconds 900 \
207
+ --ai \
208
+ --provider openai \
209
+ --model YOUR_OPENAI_MODEL
210
+ ```
211
+
212
+ ### READ ONLY safety boundary
213
+
214
+ ```text
215
+ READ ONLY
216
+ no write
217
+ no force
218
+ no reset
219
+ no bypass
220
+ no upload / download
221
+ no mode change
222
+ no start / stop control
223
+ ```
224
+
225
+ The LLM may interpret or explain evidence. It cannot turn model confidence into PLC truth or authorize machine control.
226
+
227
+ Live documentation:
228
+ https://github.com/tomha85/devagent/tree/main/docs/live
229
+
230
+ ## Bring Your Own Model
231
+
232
+ DevAgent supports OpenAI, Anthropic/Claude, xAI/Grok, Google Gemini, and OpenAI-compatible endpoints behind the same deterministic engineering harness.
233
+
234
+ Example:
235
+
236
+ ```bash
237
+ devagent setup --provider openai --model YOUR_MODEL
238
+ export OPENAI_API_KEY=...
239
+ devagent doctor --live
240
+ ```
241
+
242
+ Provider choice can affect reasoning quality, latency, cost, and privacy characteristics. It does not change DevAgent's deterministic acceptance, verification, safety, reporting, or publication rules.
243
+
244
+ ## Outcome Contract
245
+
246
+ DevAgent reports bounded engineering outcomes:
247
+
248
+ - **`VERIFIED`** - required criteria are supported by admissible evidence and final verification/review passes on the current revision;
249
+ - **`PARTIALLY_VERIFIED`** - meaningful evidence exists but complete proof is unavailable;
250
+ - **`BLOCKED`** - DevAgent cannot safely understand, implement, or verify the request.
251
+
252
+ A conservative result is preferred over a false `VERIFIED`.
253
+
254
+ ## Project Status
255
+
256
+ DevAgent is beta software. Qualification claims are tied to explicit test catalogs, pinned revisions, fixtures/external oracles where applicable, and the environments actually exercised. They are not universal-correctness or market-superiority claims.
257
+
258
+ For the current implementation status, qualification details, limitations, examples, and complete documentation, see the main repository README:
259
+ https://github.com/tomha85/devagent#readme
260
+
261
+ ## Support
262
+
263
+ DevAgent is currently free during public beta.
264
+
265
+ If DevAgent saves you engineering time, you can support continued development through GitHub Sponsors:
266
+ https://github.com/sponsors/tomha85
267
+
268
+ ## License
269
+
270
+ DevAgent is open source under the MIT License.
271
+
272
+ Copyright (c) 2026 Tom Ha
273
+
274
+ Original repository: https://github.com/tomha85/devagent