devagent-ignition 0.1.2__tar.gz → 0.1.3__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 (133) hide show
  1. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/PKG-INFO +2 -1
  2. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/SHA256SUMS.txt +2 -2
  3. devagent_ignition-0.1.3/devagent_spatial/__init__.py +1 -0
  4. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/studio.py +8 -6
  5. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/pyproject.toml +2 -2
  6. devagent_ignition-0.1.2/devagent_spatial/__init__.py +0 -1
  7. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/.gitignore +0 -0
  8. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/README.md +0 -0
  9. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/RELEASE_MANIFEST.json +0 -0
  10. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/SOURCE_PROVENANCE.json +0 -0
  11. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/agent.js +0 -0
  12. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/creator.css +0 -0
  13. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/creator_2d.mjs +0 -0
  14. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/creator_original_r9.mjs +0 -0
  15. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/creator_original_v8.mjs +0 -0
  16. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/creator_r9_diagnostics.mjs +0 -0
  17. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/creator_scene.mjs +0 -0
  18. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/creator_ui.mjs +0 -0
  19. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/customer_documents.js +0 -0
  20. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/equipment_controls.mjs +0 -0
  21. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/facility2d.css +0 -0
  22. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/facility2d_app.mjs +0 -0
  23. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/facility2d_core.mjs +0 -0
  24. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/facility2d_simulation.mjs +0 -0
  25. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/facility2d_viewer.html +0 -0
  26. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/fallback_scene.js +0 -0
  27. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/flow_geometry.mjs +0 -0
  28. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/harness.js +0 -0
  29. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/live_design_review.js +0 -0
  30. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/operations_ui.js +0 -0
  31. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/operator_viewer.html +0 -0
  32. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/project_package.js +0 -0
  33. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/r9_transport.mjs +0 -0
  34. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/runtime_feed.js +0 -0
  35. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/studio.html +0 -0
  36. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/style.css +0 -0
  37. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/test_workspace.html +0 -0
  38. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/three_scene.js +0 -0
  39. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/unified_engineer.js +0 -0
  40. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/v076_fat_ui.js +0 -0
  41. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/v078_command_ui.js +0 -0
  42. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/viewer.html +0 -0
  43. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/assets/viewer.js +0 -0
  44. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/design-system.json +0 -0
  45. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_hmi.py +0 -0
  46. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/agent_harness.py +0 -0
  47. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/agent_runtime.py +0 -0
  48. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/contract_opc_fat.py +0 -0
  49. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/contract_opc_source.py +0 -0
  50. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/control_intents.py +0 -0
  51. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/customer_intake.py +0 -0
  52. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/engineering_expertise.py +0 -0
  53. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/generator.py +0 -0
  54. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/ignition_native.py +0 -0
  55. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/ignition_project.py +0 -0
  56. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/live_lab_binding.py +0 -0
  57. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/model.py +0 -0
  58. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/native_reference.py +0 -0
  59. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/opc_snapshot.py +0 -0
  60. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/operations.py +0 -0
  61. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/operations_capture.py +0 -0
  62. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/operations_lab.py +0 -0
  63. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/original_r9.py +0 -0
  64. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/original_v8.py +0 -0
  65. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/preflight.py +0 -0
  66. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/preview_simulation.py +0 -0
  67. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/project_package.py +0 -0
  68. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/qualification.py +0 -0
  69. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/strict_json.py +0 -0
  70. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/studio_workflow.py +0 -0
  71. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/test_reporting.py +0 -0
  72. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/v076_opc_fat.py +0 -0
  73. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/v078_commands.py +0 -0
  74. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/v078_native_commands.py +0 -0
  75. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/v07_fat.py +0 -0
  76. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/v07_native.py +0 -0
  77. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/devagent_spatial/v083_native.py +0 -0
  78. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/CV101-command-contract-PENDING.json +0 -0
  79. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/cv101_guided.json +0 -0
  80. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/make_examples.py +0 -0
  81. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/single_floor.json +0 -0
  82. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/v0771_training_wizard.json +0 -0
  83. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/warehouse-3floor-standard-2d.json +0 -0
  84. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/warehouse-operations-synthetic.json +0 -0
  85. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/warehouse-v07-lab-bindings-PENDING.json +0 -0
  86. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/warehouse.json +0 -0
  87. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/examples/water.json +0 -0
  88. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-golden/REFERENCE_SHA256.json +0 -0
  89. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-golden/web/app.mjs +0 -0
  90. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-golden/web/index.html +0 -0
  91. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-golden/web/lab_panel.mjs +0 -0
  92. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-golden/web/model.mjs +0 -0
  93. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-golden/web/state_adapter.mjs +0 -0
  94. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-golden/web/styles.css +0 -0
  95. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/README_R9.md +0 -0
  96. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/SHA256SUMS.txt +0 -0
  97. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/SNAPSHOT_SHA256SUMS.txt +0 -0
  98. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/flow_routes.json +0 -0
  99. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/flow_sim.py +0 -0
  100. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/lab_control.py +0 -0
  101. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/app.mjs +0 -0
  102. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/index.html +0 -0
  103. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/lab_panel.mjs +0 -0
  104. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/model.mjs +0 -0
  105. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/state_adapter.mjs +0 -0
  106. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/styles.css +0 -0
  107. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/vendor/LICENSE-three.txt +0 -0
  108. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/vendor/SHA256SUMS.txt +0 -0
  109. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/vendor/addons/controls/OrbitControls.js +0 -0
  110. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/vendor/three.core.js +0 -0
  111. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/r9-original/web/vendor/three.module.js +0 -0
  112. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/README.md +0 -0
  113. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/SHA256SUMS.txt +0 -0
  114. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/model.py +0 -0
  115. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/run_demo.sh +0 -0
  116. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/server.py +0 -0
  117. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/tests/browser_smoke.py +0 -0
  118. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/tests/test_v8.py +0 -0
  119. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/topology.json +0 -0
  120. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/web/app.js +0 -0
  121. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/web/index.html +0 -0
  122. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/web/simulator.html +0 -0
  123. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/web/simulator.js +0 -0
  124. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/reference/v8-original/web/style.css +0 -0
  125. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/sample_customer_inputs/Plant_Equipment_Register.csv +0 -0
  126. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/sample_customer_inputs/Plant_Flow_Requirements.txt +0 -0
  127. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/sample_customer_inputs/Raw_PLC_Tag_Export.csv +0 -0
  128. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/templates/warehouse_connections.csv +0 -0
  129. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/templates/warehouse_equipment.csv +0 -0
  130. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/templates/warehouse_signals.csv +0 -0
  131. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/templates/water_connections.csv +0 -0
  132. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/templates/water_equipment.csv +0 -0
  133. {devagent_ignition-0.1.2 → devagent_ignition-0.1.3}/templates/water_signals.csv +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: devagent-ignition
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: Offline industrial HMI engineering and Ignition Perspective candidate tools (production deployment not qualified)
5
5
  Project-URL: Repository, https://github.com/tomha85/devagent-ignition
6
6
  Project-URL: Documentation, https://github.com/tomha85/devagent-ignition#readme
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3
13
13
  Classifier: Programming Language :: Python :: 3.13
14
14
  Classifier: Topic :: Scientific/Engineering
15
15
  Requires-Python: <3.14,>=3.13
16
+ Requires-Dist: asyncua==2.1.0
16
17
  Description-Content-Type: text/markdown
17
18
 
18
19
  # DevAgent
@@ -99,7 +99,7 @@ d009f79a79ed1278911c81818b97a7dbce72464b599bb00f6116b81e1b1f9b5c assets/v078_co
99
99
  600d23649659fd9b435e6b828a5b191b95cae721784b2eed4d7594b783b56681 assets/viewer.js
100
100
  54ee77ca35589b06bd093204c9e5b28eabb69a8b2158ef1be5897386d3676c3f design-system.json
101
101
  287744606d4ec09533bb0af2ab6c1e059e614a7d87bc8c365d0f1e16c646bff8 devagent_hmi.py
102
- 99da7609fb5fa986dd2ad3fe796bf5cfbac0532718bfa5f59ed5d23147fc2acb devagent_spatial/__init__.py
102
+ b99b3280c5cc291c3eeea856a230239e99bc1853d753ddb15ba5c0f0ee46c056 devagent_spatial/__init__.py
103
103
  a6b1a2a97e2ec31e2de7f4c576b9482f66d3aa7fb356b06f0475bcd221dd8116 devagent_spatial/agent_harness.py
104
104
  a54c22bb64e5ff6b8d720bc44a73d851388f3f55adcba0f5f17098349895f2a4 devagent_spatial/agent_runtime.py
105
105
  f57e58f596ab5395b5a9692158cca43866de32ec9f8d07bdec363a36610e3d2b devagent_spatial/contract_opc_fat.py
@@ -124,7 +124,7 @@ d013f40d6a913126b7466fccfb97617f249e655ce1d5183d8d21e47f81a7e2d4 devagent_spati
124
124
  b63c232a9218a6c7dc350f8510af0ccb9d7af61b6ffbc448918ae0a4beaef07d devagent_spatial/project_package.py
125
125
  74cbfb179c33304851dade43687d6ff7075d72305e696dab7d5de126b0ec253e devagent_spatial/qualification.py
126
126
  05b93e0f13f2e59251bed066975944a3a21f084a6447ea5607c8620c0e489aef devagent_spatial/strict_json.py
127
- ccf490d283ac13b8f03acd50fcecefe8914301e64f4ccd24d5db772c14a46f6c devagent_spatial/studio.py
127
+ 0a452313484154d2faa1d0d1eb5041c6f10db2698fc2b867e0800522c915ecfa devagent_spatial/studio.py
128
128
  7f58410cba0fd20fbeb9be75b0afdad2bb443eb361eb510a9fd78d250145e21e devagent_spatial/studio_workflow.py
129
129
  e8058af1dbe09d877700144b41451440c0fee4602fffcf658b497b34efe9b30b devagent_spatial/test_reporting.py
130
130
  8bf0d6d6ba213e0623c1115e5fa29a6a7eae0e510a4921a63727f447b95dfaf6 devagent_spatial/v076_opc_fat.py
@@ -0,0 +1 @@
1
+ __version__ = '0.1.3'
@@ -265,10 +265,10 @@ class StudioHandler(BaseHTTPRequestHandler):
265
265
  opc_report=re.fullmatch(r'/api/v076-opc/([a-z0-9-]{1,100})/report/([0-9a-f]{12})',path)
266
266
  if opc_report:
267
267
  pid,rid=opc_report.groups()
268
- from .studio_workflow import load_project,LabHold
268
+ from .studio_workflow import load_project,LabHold,project_lab_dir
269
269
  try:
270
270
  load_project(self.server.workspace,pid)
271
- file=self.server.workspace/pid/'reports'/('lab-opc-v076-'+rid+'.json')
271
+ file=project_lab_dir(self.server.workspace,pid)/'opc-fat'/('lab-opc-v076-'+rid+'.json')
272
272
  if not file.is_file() or file.stat().st_size>3_000_000:
273
273
  return self.output(404,{'status':'HOLD','reason':'REPORT_NOT_FOUND'})
274
274
  return self.output(200,strict_loads(file.read_text(encoding='utf8')))
@@ -277,10 +277,10 @@ class StudioHandler(BaseHTTPRequestHandler):
277
277
  cmd_report=re.fullmatch(r'/api/v078-command/([a-z0-9-]{1,100})/report/([0-9a-f]{12})',path)
278
278
  if cmd_report:
279
279
  pid,rid=cmd_report.groups()
280
- from .studio_workflow import load_project,LabHold
280
+ from .studio_workflow import load_project,LabHold,project_lab_dir
281
281
  try:
282
282
  load_project(self.server.workspace,pid)
283
- file=self.server.workspace/pid/'reports'/('lab-command-v078-'+rid+'.json')
283
+ file=project_lab_dir(self.server.workspace,pid)/'command-fat'/('lab-command-v078-'+rid+'.json')
284
284
  if not file.is_file() or file.is_symlink() or file.stat().st_size>400_000:
285
285
  return self.output(404,{'status':'HOLD','reason':'COMMAND_FAT_REPORT_NOT_FOUND'})
286
286
  return self.output(200,strict_loads(file.read_text(encoding='utf8')))
@@ -557,7 +557,8 @@ class StudioHandler(BaseHTTPRequestHandler):
557
557
  model,c,port=4899,confirm=LAB_CONFIRM),timeout=45))
558
558
  rid=secrets.token_hex(6)
559
559
  from .v076_opc_fat import save_new
560
- save_new(self.server.workspace/pid/'reports'/('lab-command-v078-'+rid+'.json'),result)
560
+ from .studio_workflow import project_lab_dir
561
+ save_new(project_lab_dir(self.server.workspace,pid)/'command-fat'/('lab-command-v078-'+rid+'.json'),result)
561
562
  public={'status':result['status'],'cases_checked':result['case_count'],
562
563
  'report_url':f'/api/v078-command/{pid}/report/{rid}',
563
564
  'gateway':'NOT_VERIFIED','physical_plc':'NOT_VERIFIED','production':'HOLD'}
@@ -589,7 +590,8 @@ class StudioHandler(BaseHTTPRequestHandler):
589
590
  import asyncio
590
591
  result=asyncio.run(asyncio.wait_for(run_loopback_fat(model,port=4898),timeout=50))
591
592
  rid=secrets.token_hex(6)
592
- save_new(self.server.workspace/pid/'reports'/('lab-opc-v076-'+rid+'.json'),result)
593
+ from .studio_workflow import project_lab_dir
594
+ save_new(project_lab_dir(self.server.workspace,pid)/'opc-fat'/('lab-opc-v076-'+rid+'.json'),result)
593
595
  result={'status':result['status'],'cases_passed':result['cases_passed'],
594
596
  'cases_planned':result['cases_planned'],
595
597
  'report_url':f'/api/v076-opc/{pid}/report/{rid}',
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "devagent-ignition"
7
- version = "0.1.2"
7
+ version = "0.1.3"
8
8
  description = "Offline industrial HMI engineering and Ignition Perspective candidate tools (production deployment not qualified)"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13,<3.14"
@@ -18,7 +18,7 @@ classifiers = [
18
18
  "Operating System :: POSIX :: Linux",
19
19
  "Topic :: Scientific/Engineering",
20
20
  ]
21
- dependencies = []
21
+ dependencies = ["asyncua==2.1.0"]
22
22
 
23
23
  [project.urls]
24
24
  Repository = "https://github.com/tomha85/devagent-ignition"
@@ -1 +0,0 @@
1
- __version__ = '0.1.2'