devagent-ignition 0.1.5__tar.gz → 0.1.7__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 (134) hide show
  1. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/PKG-INFO +1 -1
  2. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/SHA256SUMS.txt +98 -95
  3. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/operations_ui.js +10 -2
  4. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/three_scene.js +32 -29
  5. devagent_ignition-0.1.7/devagent_spatial/__init__.py +1 -0
  6. devagent_ignition-0.1.7/devagent_spatial/industrial_templates.py +161 -0
  7. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/model.py +30 -3
  8. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/preview_simulation.py +7 -0
  9. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/pyproject.toml +1 -1
  10. devagent_ignition-0.1.5/devagent_spatial/__init__.py +0 -1
  11. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/.gitignore +0 -0
  12. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/README.md +0 -0
  13. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/RELEASE_MANIFEST.json +0 -0
  14. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/SOURCE_PROVENANCE.json +0 -0
  15. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/agent.js +0 -0
  16. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/creator.css +0 -0
  17. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/creator_2d.mjs +0 -0
  18. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/creator_original_r9.mjs +0 -0
  19. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/creator_original_v8.mjs +0 -0
  20. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/creator_r9_diagnostics.mjs +0 -0
  21. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/creator_scene.mjs +0 -0
  22. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/creator_ui.mjs +0 -0
  23. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/customer_documents.js +0 -0
  24. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/equipment_controls.mjs +0 -0
  25. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/facility2d.css +0 -0
  26. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/facility2d_app.mjs +0 -0
  27. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/facility2d_core.mjs +0 -0
  28. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/facility2d_simulation.mjs +0 -0
  29. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/facility2d_viewer.html +0 -0
  30. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/fallback_scene.js +0 -0
  31. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/flow_geometry.mjs +0 -0
  32. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/harness.js +0 -0
  33. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/live_design_review.js +0 -0
  34. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/operator_viewer.html +0 -0
  35. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/project_package.js +0 -0
  36. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/r9_transport.mjs +0 -0
  37. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/runtime_feed.js +0 -0
  38. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/studio.html +0 -0
  39. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/style.css +0 -0
  40. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/test_workspace.html +0 -0
  41. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/unified_engineer.js +0 -0
  42. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/v076_fat_ui.js +0 -0
  43. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/v078_command_ui.js +0 -0
  44. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/viewer.html +0 -0
  45. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/assets/viewer.js +0 -0
  46. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/design-system.json +0 -0
  47. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_hmi.py +0 -0
  48. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/agent_harness.py +0 -0
  49. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/agent_runtime.py +0 -0
  50. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/contract_opc_fat.py +0 -0
  51. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/contract_opc_source.py +0 -0
  52. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/control_intents.py +0 -0
  53. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/customer_intake.py +0 -0
  54. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/engineering_expertise.py +0 -0
  55. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/generator.py +0 -0
  56. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/ignition_native.py +0 -0
  57. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/ignition_project.py +0 -0
  58. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/live_lab_binding.py +0 -0
  59. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/native_reference.py +0 -0
  60. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/opc_snapshot.py +0 -0
  61. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/operations.py +0 -0
  62. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/operations_capture.py +0 -0
  63. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/operations_lab.py +0 -0
  64. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/original_r9.py +0 -0
  65. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/original_v8.py +0 -0
  66. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/preflight.py +0 -0
  67. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/project_package.py +0 -0
  68. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/qualification.py +0 -0
  69. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/strict_json.py +0 -0
  70. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/studio.py +0 -0
  71. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/studio_workflow.py +0 -0
  72. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/test_reporting.py +0 -0
  73. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/v076_opc_fat.py +0 -0
  74. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/v078_commands.py +0 -0
  75. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/v078_native_commands.py +0 -0
  76. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/v07_fat.py +0 -0
  77. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/v07_native.py +0 -0
  78. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/devagent_spatial/v083_native.py +0 -0
  79. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/CV101-command-contract-PENDING.json +0 -0
  80. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/cv101_guided.json +0 -0
  81. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/make_examples.py +0 -0
  82. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/single_floor.json +0 -0
  83. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/v0771_training_wizard.json +0 -0
  84. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/warehouse-3floor-standard-2d.json +0 -0
  85. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/warehouse-operations-synthetic.json +0 -0
  86. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/warehouse-v07-lab-bindings-PENDING.json +0 -0
  87. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/warehouse.json +0 -0
  88. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/examples/water.json +0 -0
  89. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-golden/REFERENCE_SHA256.json +0 -0
  90. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-golden/web/app.mjs +0 -0
  91. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-golden/web/index.html +0 -0
  92. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-golden/web/lab_panel.mjs +0 -0
  93. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-golden/web/model.mjs +0 -0
  94. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-golden/web/state_adapter.mjs +0 -0
  95. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-golden/web/styles.css +0 -0
  96. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/README_R9.md +0 -0
  97. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/SHA256SUMS.txt +0 -0
  98. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/SNAPSHOT_SHA256SUMS.txt +0 -0
  99. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/flow_routes.json +0 -0
  100. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/flow_sim.py +0 -0
  101. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/lab_control.py +0 -0
  102. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/app.mjs +0 -0
  103. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/index.html +0 -0
  104. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/lab_panel.mjs +0 -0
  105. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/model.mjs +0 -0
  106. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/state_adapter.mjs +0 -0
  107. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/styles.css +0 -0
  108. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/vendor/LICENSE-three.txt +0 -0
  109. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/vendor/SHA256SUMS.txt +0 -0
  110. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/vendor/addons/controls/OrbitControls.js +0 -0
  111. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/vendor/three.core.js +0 -0
  112. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/r9-original/web/vendor/three.module.js +0 -0
  113. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/README.md +0 -0
  114. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/SHA256SUMS.txt +0 -0
  115. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/model.py +0 -0
  116. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/run_demo.sh +0 -0
  117. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/server.py +0 -0
  118. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/tests/browser_smoke.py +0 -0
  119. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/tests/test_v8.py +0 -0
  120. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/topology.json +0 -0
  121. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/web/app.js +0 -0
  122. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/web/index.html +0 -0
  123. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/web/simulator.html +0 -0
  124. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/web/simulator.js +0 -0
  125. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/reference/v8-original/web/style.css +0 -0
  126. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/sample_customer_inputs/Plant_Equipment_Register.csv +0 -0
  127. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/sample_customer_inputs/Plant_Flow_Requirements.txt +0 -0
  128. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/sample_customer_inputs/Raw_PLC_Tag_Export.csv +0 -0
  129. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/templates/warehouse_connections.csv +0 -0
  130. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/templates/warehouse_equipment.csv +0 -0
  131. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/templates/warehouse_signals.csv +0 -0
  132. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/templates/water_connections.csv +0 -0
  133. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/templates/water_equipment.csv +0 -0
  134. {devagent_ignition-0.1.5 → devagent_ignition-0.1.7}/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.5
3
+ Version: 0.1.7
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
@@ -1,89 +1,26 @@
1
1
  5b3fbd0a7775c164ceb4a1eab30f1b65edad37fefe01b16cddde879f43f36ab4 .github/workflows/offline-ci.yml
2
2
  3be9b9699b8b6ef7f51aa4fd65572f62e3d6be2bd43f7491c0652aa03dc4cd17 .gitignore
3
3
  6df5fa1d1f8ac4d504c53131c9d09772c0855da6e3133871c1e905cd7a1721d4 AGENT_V05.md
4
- 537958bdc016deb7d31485bc724c31de6ac3a2b2ea84038f095a5e00368f75b2 AUDIT_STATUS.md
5
- 51cbb050c4ed37e430df06c243aa9a9607fc43a2877d242fbcf9db15cdb7823a CURRENT_RELEASE.md
6
- 7ca0cdaea16239fc543fa63a5079fe40e4192c5281dc88085c5959ea5f350359 DESIGN_STANDARD_V1.md
7
- b7567b5a10fa8ca798b0cb19d6aaf7824ea970d1f207901480bd96748c35b7d5 FLEXIBLE_INPUTS.md
8
- d8c8db9f135e27d64fa13b4db47e72dbe873d0fb8362b873d98a535a51f95109 GITHUB_SOURCE_STATUS.md
9
- 67c900bc55c5735377e39cce59da90585f0d0b30f30954c107bde7d9b624292a NATIVE_IGNITION_HANDOFF.md
10
- 735b8438b1bed28a93277a46b6df3d733d27319b783af92c4e4b5bfd2398a2cb PRETEST_RELEASE_GATES.md
11
- 21e6c3d78ee6debed766de3ef21efd5d1297edb4657cfe4736ff867fbc86ecfb PRODUCTION_ACCEPTANCE.md
12
- fd39e40e7c60a03197db9ef1d30be2e1589737b7834721aca2e762e788363b39 R9_GOLDEN_INTEGRATION_V053.md
13
- c76608effd51179bedc15c3a27f9e9a66137c6b5b85292e388dec23701a09177 README.md
14
- ac481bfb3f9427626dc242370319d4e88e7871e5ec22518d3c3bd99333c286f2 RELEASE_MANIFEST.json
15
- 4c9e54a61e61f3eb3e07163e55ded539c54edf86471f2a853b7cd3c6c8b7c98c SOURCE_PROVENANCE.json
16
- 476fa8b39bdea31ffccfa6f456de8faa7c3c2ed0ca9341f4bb425bf51d48fdc0 SPATIAL_RENDERING_V042.md
17
- dbc7c6a68dbbfed1763a5dfc6ca093b4b8d4a121a64f46944750721804c40d3c V041_OPERATOR_STYLE.md
18
- 26dbb2c4e7795e5da2c42daf770512ad1d9bd6d2b1f6d2de13ad74add0592a4b V04_NATIVE_PROJECT.md
19
- 84e03c93963680a3359387c53e455c1d49d2a3475a4b1b7822344a311c3e926f V051_OPENAI_CONNECTOR_FIX.md
20
- a4f2e18f466f6dc046e4ae36d62b2e8221e7d6bec436b688b60b8f0b5e4d9592 V052R1_VIEWER_HOTFIX.md
21
- d6ded0c54f2c880b5f62ae66f7d1f40a5617c78854998c48689da4627938d80c V054_ASSEMBLY_VERIFICATION.md
22
- f95c08b96146ae60af27bd67dbd847c3e545e856a234ae0085190c235cfe262b V055_R9_DEPTH_UI_REVIEW.md
23
- 53d8316d5a0021d25cf5ae17f280cf90a185f9c40d9e2df0946760d4eb22e443 V056_OPERATIONS_QUALIFICATION.md
24
- bcdfd634104125eac9c6442ed7ff61b75e5455b5b02279b59367a128033d5a91 V057R1_STUDIO_RESUME_HOTFIX.md
25
- 4d49e9a7951359f2774e7166537bcddd15398e384d90c1b7cdfa0e50b4b02b13 V057R2_COMPACT_NOTIFICATION_BELL.md
26
- e6e1aa5e8b1dd12d555e5a00c69dc05fabcc5f320be1766a7145a925274e3b33 V057R3_SIMPLIFIED_STUDIO.md
27
- d8d31bd44877e945af35baba06c677125953221dac8f2150be7984c6ad214d87 V057_SEPARATE_STUDIO_TEST_WORKSPACE.md
28
- 42251451af3159e8eb309b412310f938fcf9d8a3d104494fcf6d3971ed3e6e9d V060_RUNTIME_INTEGRATION_AND_PRODUCTION_GATES.md
29
- cb165aed1ddcc6e49c315ee5d798b2aa664c825c5c78daac2b0e629b025e1f57 V061_OPERATOR_ONLY_RELEASE_GATES.md
30
- 6b08b1ec62e6cf351c3dedd7a75c73d9bc8c73eab5309d5cf02310e182bdeec5 V062_R9_OPERATOR_CONTROLS.md
31
- f218af9cb95ff131fbafa0a7f9bfdfddd2b5ae9b0dac3eb706cee4caf1ce1029 V063_SIMPLE_STUDIO_SIMULATION.md
32
- 132be5470fb1e988b2cc8f1054fdbf1e0e78bb7326ffaa0134d6dcbdf7c382b7 V064_INSPECTOR_AND_PACING.md
33
- 54e12bf193b9933b5232996cd6be3c9d86c62bd6796890e11a730ee1f222ba9c V065_INDUSTRIAL_EXPERT_ENGINE.md
34
- f86acb547285bff0ca2a202b916f128346065b6d7f6065cee96556ca7d56c7f2 V065_SIMULATOR_CONTROLS_AND_VIRTUAL_PORTS.md
35
- b6112887812c766cafc063fbf96c6ff8e17bb112c0ac4bc780545f24beea36f8 V072_MODERN_CREATOR_QUICKSTART.md
36
- 4810f59fb6171f397db66fe0fea141e0dd0f35a76f46236eccfe6763f4945031 V072_QUALIFICATION.json
37
- 425e3d50a5678f7b75869129c2906f11975d906231dbddc50b5c9ad8fadbe45c V073_AGENT_HARNESS_QUICKSTART.md
38
- 9faa1a0903cbe9a85520b5bbe4f178fbe50f803287a1a681cc8f0884467fe8a4 V073_QUALIFICATION.json
39
- 4ddf02d994967100c28df7d988ef0d9d007419972221c6a045c0f4fccdb44819 V074_AI_FIRST_QUICKSTART.md
40
- dd98cea8c98fd48478a6b9d1e0f656305cb39e18f92188ac5239ec97debb563e V074_QUALIFICATION.json
41
- 6b8e7d1d0bcaeafaf02a55f727286002b5a92a0cefbfc98df59ae4bea677b4ed V0751_COMPACT_AI_HEADER.md
42
- cb369e93a63d9217dcb5fefb7125975ffb60ccd5390f29e90219fba61de0dc7f V0751_QUALIFICATION.json
43
- 85082e659c9c38016a85c195eae645d47849c863488639eae78f4ad34ced4833 V0752_STANDARD_2D_QUICKSTART.md
44
- e0eb6ed77880dc292e5da3467c09b974b7dcecbf870de03fe2c13a28a71d66b2 V075_QUALIFICATION.json
45
- 904645ab6ddf245de7d0a2b679d99f42b44aae1f37137c9cdf493b0973fb9e44 V075_UNIFIED_AI_CREATOR.md
46
- 751282929f40fddce2475872a2c988bfcca39bf670345651942533791d36f7fd V0761_AI_BUTTON_FIX_README.md
47
- facb9d5c68a6ca90103f4d9381037aee32d5cea2d2c9b53d6ea19e7271a1df70 V076_ISOLATED_OPC_FAT_QUICKSTART.md
48
- 176f9a7a867b738f7e0770e24491a610e35e43c5df091bd0077494e610b7389f V076_QUALIFICATION.json
49
- 5b51e867ac22e07b3bb2f2400204d6b35826e76bd7b8e213314c8ea06ca75ab1 V0771_AI_CANDIDATE_DIAGNOSTICS.md
50
- 2602cc748072e79b6bcdd8fbebb2c8cf8f268056afb52aa6d5501ad5b8111d86 V0772_CUSTOMER_DOCUMENTS_QUICKSTART.md
51
- fc12b928060ddabb72020bb6b990c60fd11ebecf474a660e383fbc676c36aaf6 V0773_COMPONENT_CONTROLS_QUICKSTART.md
52
- e6113bbe46f4e7723fe8a9149f74c9316882848f48d35561f2fc2855a28bf1ab V0773_QUALIFICATION.json
53
- 38610bb77b63e521035e89e12508fa82a10c3f020c0a2d49c8fb408e889b7b3b V077_TRANSPORT_CONTINUITY_README.md
54
- 5635f94dae457b63d1fc7b3045cbac5b57fab5bef91a488e84d734e1bed4568c V078_DEVICE_COMMAND_LAB_QUICKSTART.md
55
- fe2a50b5c4fa0541591009dcdb18a873720778ca7c09f7cc6bd174052dedaa4d V078_QUALIFICATION.json
56
- 8bad19bb19d84186944ce015711cdf605d10ce54910befe684ca888719dc85ce V0791_FULL_HMI_REVIEW_QUICKSTART.md
57
- 8a157a8fa996449af5f127769cac51074eefc3ad08655b6e7ca4b21fdf17d1ab V0792_2D_PER_FLOOR_AND_PACKAGE_IMPORT.md
58
- 0c10ff193c5195ada5b36baae5f6faf345bd050ef70d6016efe5051592cb85e1 V0792_QUALIFICATION.json
59
- 934319012c8be44340ff879ed5f04166e02bb171d8ffb152ff29031bb5d07bf7 V079_COMPACT_DESIGN_REVIEW_QUICKSTART.md
60
- 6a62c24f9016b1edea1b943e708b4aa4b35559edaf93bcd14ed980ac46da08b7 V079_QUALIFICATION.json
61
- 95ade3daab7d29513dde72a4a8f57553ede907947a3d4b3db2c2b89b2f78fec7 V07_NATIVE_IGNITION_AND_FAT.md
62
- 0110fa2f2052cfa9bdbadc324bfc23531cb2d7cf2077c5abc15f48d67e6b1f94 V080_CUSTOMER_CONTRACT_FAT_AND_2D_SIM.md
63
- de891bb9904734a5ca180ce11d8272cf69c3573b6e76a3bee5ae64a60805d535 V080_DGX_OPC_HANDSHAKE_ROOT_CAUSE_AND_FIX.md
64
- 5bed06ec6578f2b58273475744d7b4875daab4543cee322a31ea86da15cccfb0 V080_PERSISTENT_CONTRACT_OPC_GATEWAY_SOURCE.md
65
- a32bc47a4035493d1d17bfe64560a2952cf5f6edf71fc5e9b95ce05f49107194 V081_STAGE1_ORIGINAL_V8_AND_RESET.md
66
- 14b4759a0193522128b93f178dfeacdf416fe2735ab73e419c4d3035febadce1 V082_R9_FOUR_SPIRALS_SOURCE_BACKED_CANDIDATE.md
67
4
  274442e3c2e14438d1719ef6363ab22fc4c8a50d17f4a17b59c1a0a7c310a4a5 assets/agent.js
68
- 6d7b5a8fe8c4750d74e4dc1a1e0c2593039368e8c53313e4909c46950f83229c assets/creator.css
69
5
  e9e09b528ea4afb0a90f17fe43ea9d655d1337780ca8e2a5583be349221b6f93 assets/creator_2d.mjs
70
6
  3168c007af62b8b24c593c86c88ee4106f3bbe520fdf4357aee7844edfed3047 assets/creator_original_r9.mjs
71
7
  33ac8c5baf1daf6cc9da440a79bf1d8fd5c2368ee2c8a31587bb4fc759dc16d1 assets/creator_original_v8.mjs
72
8
  e325163494807da9be068ec40ffdb52db99ecdf2c2c27b678b80df4462bddaa6 assets/creator_r9_diagnostics.mjs
73
9
  e5c3e55b219713cf159077c6427b28cd45db001ea89c498ec4591e9f1e0160a6 assets/creator_scene.mjs
74
10
  95ef2058af5edec14de68d98c482f0178e13b1b575fe1b0555576413df453ef9 assets/creator_ui.mjs
11
+ 6d7b5a8fe8c4750d74e4dc1a1e0c2593039368e8c53313e4909c46950f83229c assets/creator.css
75
12
  0f8d78fd0d36c0e2c969a0fea85679022464b3eec93cb44c38e7557110edda62 assets/customer_documents.js
76
13
  8e3000467299839f7a753f9f0a59a08c9a89ebb68bbbc016618020973a6f7b12 assets/equipment_controls.mjs
77
- fe3d3dcae31517414f68484dfbfc7afd108ae26642ac16f538b1d22f9dc7d77b assets/facility2d.css
78
14
  ab40cbec071f2182e9e1cc7fbd546b943615d508ae229de1dc9916dd639d166e assets/facility2d_app.mjs
79
15
  6178d1fd4ab72929c8e21e3c1628ebd27d7433516db15d46e89a0842ccbca1aa assets/facility2d_core.mjs
80
16
  52a449f297195a99b1e750d30fb8ce5594c85ab6b3727f2e1ad5356ba6aae51a assets/facility2d_simulation.mjs
81
17
  24b787d084064c4aa08aeee31f694a9b71a3d6d68da61e7bd0a2116a82a84a4a assets/facility2d_viewer.html
18
+ fe3d3dcae31517414f68484dfbfc7afd108ae26642ac16f538b1d22f9dc7d77b assets/facility2d.css
82
19
  ea11d9fe8c7702a73abf22a6d681db30bda2db80d481732dfa0ac824e87a1ce3 assets/fallback_scene.js
83
20
  a250a3277aec5347eafbb498222038e7063f8d56fe0b0e797426777f9a77d92d assets/flow_geometry.mjs
84
21
  29bd6b4e87460f13491f0c1830b656d894136411e9018e111b8c6230b9530264 assets/harness.js
85
22
  9c5cb2f70186e5b450cb8c0635d40e82ccdd4373279b19156b16e45f8280051b assets/live_design_review.js
86
- 8111d6adc9083db4621bef2068827039ebff43080a7af428bd3c0ec48d61e36c assets/operations_ui.js
23
+ a667ad3df90a11a0ba0fa0f7711c054a88e8ac2b0109fd9862ad73ce0284acd7 assets/operations_ui.js
87
24
  cd369a2d284b50177ee947adac54a47b035e288bcbda5c47486e2cf6720e42c5 assets/operator_viewer.html
88
25
  651aba65c955883581268e7aa9e07b25fe3a77a2a5140338a624aa32feaba21d assets/project_package.js
89
26
  8e5d8505ac3c84df822ff90c9d04083ce6dece4e51448a84e72dfaddda47bac0 assets/r9_transport.mjs
@@ -91,15 +28,18 @@ c6b47941a2ffe72d297d329899b252f898904a0f37c1592689eeb81e0815147c assets/runtime
91
28
  6f0dcc9f218455b708552daa0536b2afb2d68b4095a1a6956f2147c329a6ff2f assets/studio.html
92
29
  c9f87624386bbe84ab7d71f93708f00f91a69e0d9693738cfee51913e5831fdf assets/style.css
93
30
  fd0d07ddec872de25c4e485573d5aa5b0c7a2c3137a93e65c6406b637fad7ad7 assets/test_workspace.html
94
- 4377c0980f62a4c9605c9a040424d8c5904bd8312aa204b0697a493cccd074ee assets/three_scene.js
31
+ 061444f56a0b201a9089fc174507608c965302ab830a7af0da102ba9849a6b71 assets/three_scene.js
95
32
  af23f86ef51e18dfc94355e77fe9fb52570db14466d05d6dadededf17458fe25 assets/unified_engineer.js
96
33
  531c378fe3aae0c1d0686da48d7a4eba371ca7641b343b952dc8448f1cf65dc1 assets/v076_fat_ui.js
97
34
  d009f79a79ed1278911c81818b97a7dbce72464b599bb00f6116b81e1b1f9b5c assets/v078_command_ui.js
98
35
  9d95941755b73fc16aaa0ef8af0550ee64f15d60d6f3792eb00d82844a48a75b assets/viewer.html
99
36
  600d23649659fd9b435e6b828a5b191b95cae721784b2eed4d7594b783b56681 assets/viewer.js
37
+ 537958bdc016deb7d31485bc724c31de6ac3a2b2ea84038f095a5e00368f75b2 AUDIT_STATUS.md
38
+ 51cbb050c4ed37e430df06c243aa9a9607fc43a2877d242fbcf9db15cdb7823a CURRENT_RELEASE.md
39
+ 7ca0cdaea16239fc543fa63a5079fe40e4192c5281dc88085c5959ea5f350359 DESIGN_STANDARD_V1.md
100
40
  54ee77ca35589b06bd093204c9e5b28eabb69a8b2158ef1be5897386d3676c3f design-system.json
101
41
  287744606d4ec09533bb0af2ab6c1e059e614a7d87bc8c365d0f1e16c646bff8 devagent_hmi.py
102
- 0d08971ea4370b6f5fffefb27bb6953033e7213ae5f4cd33314e362d8638f331 devagent_spatial/__init__.py
42
+ 9856341b0c2e37e6b733cc3ddff9ac912e86648beff5235d8cb7c969636c9be2 devagent_spatial/__init__.py
103
43
  a6b1a2a97e2ec31e2de7f4c576b9482f66d3aa7fb356b06f0475bcd221dd8116 devagent_spatial/agent_harness.py
104
44
  a54c22bb64e5ff6b8d720bc44a73d851388f3f55adcba0f5f17098349895f2a4 devagent_spatial/agent_runtime.py
105
45
  f57e58f596ab5395b5a9692158cca43866de32ec9f8d07bdec363a36610e3d2b devagent_spatial/contract_opc_fat.py
@@ -110,30 +50,32 @@ ed4ecac3f66f1125b6af58714ab786e30e149d6110ebc25cc46fc241e94de39b devagent_spati
110
50
  6929040b700b292b1f0ecb6340f9e2dd4378c3f9bffd02e34bd92b06a7415754 devagent_spatial/generator.py
111
51
  aaf9f671ccc950c5fdca0c99380a7a6191b0f9b31b31c7a48b3bc6826847808c devagent_spatial/ignition_native.py
112
52
  9d40bfef7028aee2beae02420d36ae288b38380caf0d761b990c67d1e4c37683 devagent_spatial/ignition_project.py
53
+ a6bf1fc83cdbd9a72ae5e9a10ae720682ae3e1b34b00a5a8f9148396a5e1b560 devagent_spatial/industrial_templates.py
113
54
  ad94f2d37437ffc9423b78faa99d418bc2696a2804351adc848e0eacaa3fc1c3 devagent_spatial/live_lab_binding.py
114
- 7b0ee190fee41846123400b588ca9886a9e2ac2a62760b669c33454cb11f9456 devagent_spatial/model.py
55
+ 5bab2411fe0fc10d3749cdd11ccdd9724018398a6f71dd220ba46c36367e93c0 devagent_spatial/model.py
115
56
  08f25a636ac26e5101ac1a6fbd52d8d4ac20be39d4ec75758b24fe3a070bc51f devagent_spatial/native_reference.py
116
57
  8ea7291ca8642d3e533f54b53fc95a93625c69aa8473c54a9bd0040b1bd50132 devagent_spatial/opc_snapshot.py
117
- ebd830479075a41dc9aad9b6937b128aeb57eec99ae5f83a5323fc910dacf485 devagent_spatial/operations.py
118
58
  cae72ca33644c7715faf49da021b221ff0a9c494803ba2893cc0fb66a6c19462 devagent_spatial/operations_capture.py
119
59
  518764a440bdc552f709ec8f4388e97e7da0fae8dbc3115dca3ecd843c2cbd83 devagent_spatial/operations_lab.py
60
+ ebd830479075a41dc9aad9b6937b128aeb57eec99ae5f83a5323fc910dacf485 devagent_spatial/operations.py
120
61
  d013f40d6a913126b7466fccfb97617f249e655ce1d5183d8d21e47f81a7e2d4 devagent_spatial/original_r9.py
121
62
  16a779d62303d739e7cfe3fb885004e774aa84b57a8ca6cb39d43c4ae356ef53 devagent_spatial/original_v8.py
122
63
  3f8560455c11c3196c306c26ad1d5cc1f0754ebfc9182ad256cbfffed3178731 devagent_spatial/preflight.py
123
- 724bb194a3d80297eb57f5839049d52de03c2c1fbe4a5a47f150acaa144e2264 devagent_spatial/preview_simulation.py
64
+ 1e9e47344073b6a5871a5e006d9f657d0694500467d3819380f204c4d105295f devagent_spatial/preview_simulation.py
124
65
  b63c232a9218a6c7dc350f8510af0ccb9d7af61b6ffbc448918ae0a4beaef07d devagent_spatial/project_package.py
125
66
  74cbfb179c33304851dade43687d6ff7075d72305e696dab7d5de126b0ec253e devagent_spatial/qualification.py
126
67
  05b93e0f13f2e59251bed066975944a3a21f084a6447ea5607c8620c0e489aef devagent_spatial/strict_json.py
127
- 050f4c23b07ae54367626777a50c771233bae60c0217f3f74c5c6f08d6c5348e devagent_spatial/studio.py
128
68
  7f58410cba0fd20fbeb9be75b0afdad2bb443eb361eb510a9fd78d250145e21e devagent_spatial/studio_workflow.py
69
+ 050f4c23b07ae54367626777a50c771233bae60c0217f3f74c5c6f08d6c5348e devagent_spatial/studio.py
129
70
  e8058af1dbe09d877700144b41451440c0fee4602fffcf658b497b34efe9b30b devagent_spatial/test_reporting.py
71
+ 4269e8b41f06982b99ac6f0d6d7a2a027e3bb24456f5752c1f6fb8f879f72ae2 devagent_spatial/v07_fat.py
72
+ e4ac1d8be03b49f76ab9f2fa1d261696049b6bf919e1ccda569efe80b86c81e7 devagent_spatial/v07_native.py
130
73
  4a712465d91b0c93a4d0d13569dc6fb96b5d7ec7cef7da3d643fc56768c257b1 devagent_spatial/v076_opc_fat.py
131
74
  ae48eeebcc0e1df2a93bca41d6344c17c66b19ef8b492f6af41d7cdd554b863f devagent_spatial/v078_commands.py
132
75
  ba2b1147d1871266c6150e229a35fc4132ab492860d2fae40ccc8a31f1424db6 devagent_spatial/v078_native_commands.py
133
- 4269e8b41f06982b99ac6f0d6d7a2a027e3bb24456f5752c1f6fb8f879f72ae2 devagent_spatial/v07_fat.py
134
- e4ac1d8be03b49f76ab9f2fa1d261696049b6bf919e1ccda569efe80b86c81e7 devagent_spatial/v07_native.py
135
- 16cf336bb7487fa6bdc9ff4de943a2113b327faa9913b3655bfd00a6d3d7ff93 examples/CV101-command-contract-PENDING.json
76
+ c9de44c9e09b8be5121c1d4fcf5c592b576ee8f5fc1572d7f65999ad9a9aae54 devagent_spatial/v083_native.py
136
77
  b022b6b748e71fdacce23c643c534c7e2b4a9174d73b9976e4d2ca305a767788 examples/cv101_guided.json
78
+ 16cf336bb7487fa6bdc9ff4de943a2113b327faa9913b3655bfd00a6d3d7ff93 examples/CV101-command-contract-PENDING.json
137
79
  0b12d7b195bd0e5be68a7083c546e2d48aa007d004d93c89e726c02c95b03846 examples/make_examples.py
138
80
  dce834215f41fd92e2f21ceead8fb91a2e4d06021dc4bf68c3834c86cb3c05a3 examples/single_floor.json
139
81
  86daf6613f6469fee73a979b6cc5c6fd1effe142b135101d39b1b37720bc6f06 examples/v0771_training_wizard.json
@@ -142,6 +84,13 @@ c201c04018b3a613efd75f2d0e7e37483a27172dc74c58cbd695856e8baae763 examples/wareh
142
84
  48d4f99050ed3a90984d5fd22a529740978dd8f4c9ad53e5b44fa295a518a5b9 examples/warehouse-v07-lab-bindings-PENDING.json
143
85
  e0f29495e42ed3e5d3b9e2819cfc46f2a962705d1e52e96c6c9f7809dbff3b52 examples/warehouse.json
144
86
  d2ff1a69937e87bfa779f55dbb3c36203ad788eecb81c246fa5aa29e07c066c1 examples/water.json
87
+ b7567b5a10fa8ca798b0cb19d6aaf7824ea970d1f207901480bd96748c35b7d5 FLEXIBLE_INPUTS.md
88
+ d8c8db9f135e27d64fa13b4db47e72dbe873d0fb8362b873d98a535a51f95109 GITHUB_SOURCE_STATUS.md
89
+ 67c900bc55c5735377e39cce59da90585f0d0b30f30954c107bde7d9b624292a NATIVE_IGNITION_HANDOFF.md
90
+ 735b8438b1bed28a93277a46b6df3d733d27319b783af92c4e4b5bfd2398a2cb PRETEST_RELEASE_GATES.md
91
+ 21e6c3d78ee6debed766de3ef21efd5d1297edb4657cfe4736ff867fbc86ecfb PRODUCTION_ACCEPTANCE.md
92
+ fd39e40e7c60a03197db9ef1d30be2e1589737b7834721aca2e762e788363b39 R9_GOLDEN_INTEGRATION_V053.md
93
+ c76608effd51179bedc15c3a27f9e9a66137c6b5b85292e388dec23701a09177 README.md
145
94
  369f0a3a780be05b6b68d6138987f05b71c1e3f02713e7233a37b8828c9d89b5 reference/r9-golden/REFERENCE_SHA256.json
146
95
  37420914698d4a6a226bb9626c3f1026f8a0944b5a88aa54a2ed522fe1432bb9 reference/r9-golden/web/app.mjs
147
96
  212cde99aa34845193e6d39be9d3efd9a87270b4a5ee69122bfeb1a4e0782585 reference/r9-golden/web/index.html
@@ -149,28 +98,28 @@ a97d5ac3b8c50b91d05d697339d5975ccd3ae30c3aba2297102a5b5e99cf8d6f reference/r9-g
149
98
  29ee90ae0bea2378f85d09cdd3cd473921a3c3406743194674ef57a40810ae79 reference/r9-golden/web/model.mjs
150
99
  44bb0ab807abe60e0ac20ca1669210016937049441f7cd79a6530afcab54c76c reference/r9-golden/web/state_adapter.mjs
151
100
  0f0132241ccb61d629085355bf8db87c4e57fc23b74bdc45fc0f1eb10ee86288 reference/r9-golden/web/styles.css
152
- 987ff142862da9407ed802dc818d932641d8d5183727ff10a1bd9bf73991617b reference/r9-original/README_R9.md
153
- 11fe32a0556061b41365accd552f79c9a3dad195550308f8f40d55e5b7415ac0 reference/r9-original/SHA256SUMS.txt
154
- c1712712ab5e35f913b27f906e23deca2cbaba9b8737d705975a648a4b49592c reference/r9-original/SNAPSHOT_SHA256SUMS.txt
155
101
  952fce63b132316ceb7765e8c6f3129474631f16f49bb159ffcc683fd1d7672d reference/r9-original/flow_routes.json
156
102
  f120e40886ebd46bfc5707f15ada3b94497a8f157312bd93a2effed92b1950d8 reference/r9-original/flow_sim.py
157
103
  18fe1341abc617f94d4a349b81471d6612acfdda232eafa0fc4d44fd0dd7d34b reference/r9-original/lab_control.py
104
+ 987ff142862da9407ed802dc818d932641d8d5183727ff10a1bd9bf73991617b reference/r9-original/README_R9.md
105
+ 11fe32a0556061b41365accd552f79c9a3dad195550308f8f40d55e5b7415ac0 reference/r9-original/SHA256SUMS.txt
106
+ c1712712ab5e35f913b27f906e23deca2cbaba9b8737d705975a648a4b49592c reference/r9-original/SNAPSHOT_SHA256SUMS.txt
158
107
  37420914698d4a6a226bb9626c3f1026f8a0944b5a88aa54a2ed522fe1432bb9 reference/r9-original/web/app.mjs
159
108
  212cde99aa34845193e6d39be9d3efd9a87270b4a5ee69122bfeb1a4e0782585 reference/r9-original/web/index.html
160
109
  a97d5ac3b8c50b91d05d697339d5975ccd3ae30c3aba2297102a5b5e99cf8d6f reference/r9-original/web/lab_panel.mjs
161
110
  29ee90ae0bea2378f85d09cdd3cd473921a3c3406743194674ef57a40810ae79 reference/r9-original/web/model.mjs
162
111
  44bb0ab807abe60e0ac20ca1669210016937049441f7cd79a6530afcab54c76c reference/r9-original/web/state_adapter.mjs
163
112
  0f0132241ccb61d629085355bf8db87c4e57fc23b74bdc45fc0f1eb10ee86288 reference/r9-original/web/styles.css
113
+ b97879c748170baadeb3fb84cea1ffdf4674e283dc06042f34e2acb95a76042c reference/r9-original/web/vendor/addons/controls/OrbitControls.js
164
114
  bfe119ea4fd413f5f7ca3fcd63adb0c4a073ed39daa2fe7d3e6b769e21272601 reference/r9-original/web/vendor/LICENSE-three.txt
165
115
  e0aa993c7afb4a910446158012f7e4ea077763489986d6c47824802bc2426871 reference/r9-original/web/vendor/SHA256SUMS.txt
166
- b97879c748170baadeb3fb84cea1ffdf4674e283dc06042f34e2acb95a76042c reference/r9-original/web/vendor/addons/controls/OrbitControls.js
167
116
  eb077d2417f61d3e6d9264c317cabc4ea35769ed6b0ab533067292a550784c20 reference/r9-original/web/vendor/three.core.js
168
117
  c8211c69345d2e9949dc7a8ac969380497aa0600a5a8ac6a459c8cd02dd9cb8a reference/r9-original/web/vendor/three.module.js
169
- dd4032360e10c1597d839a6e84f3c528cd4b64e12b67f271744cd532cb8ca373 reference/v8-original/README.md
170
- e33c098d594caad10b8f0300f955ebd3d3958bdc430f9934fac6ed178fa56258 reference/v8-original/SHA256SUMS.txt
171
118
  7ce53dbea176e3f9b9f356695ffea855e9d6e33fbb7dfbf7b659dd484b05a51d reference/v8-original/model.py
119
+ dd4032360e10c1597d839a6e84f3c528cd4b64e12b67f271744cd532cb8ca373 reference/v8-original/README.md
172
120
  373a34f1e93621d6da71d4aa57d0923a4ccc5274db9f50bfd0bb03170ebedc9a reference/v8-original/run_demo.sh
173
121
  41392a8b9665e93baa667e94e7fdc5d82c7c485d8655112e9b73695f47d04685 reference/v8-original/server.py
122
+ e33c098d594caad10b8f0300f955ebd3d3958bdc430f9934fac6ed178fa56258 reference/v8-original/SHA256SUMS.txt
174
123
  e1c8342d7142433a953b0e14ee0e9b24877cb6b16f26dd251b4001b223e9cc94 reference/v8-original/tests/browser_smoke.py
175
124
  75f13679facb939577f4e22bcdf2abf83f74177f703aec056a5160778ed8a976 reference/v8-original/tests/test_v8.py
176
125
  1137cce6b83c594ff1be3eaaeddc210a78b6f5b7fe2dbeaf7151f228964edbbf reference/v8-original/topology.json
@@ -179,12 +128,19 @@ b82fe00959c43f39fc658ae8c89fb03fc2b61649d4abc30471d37ebcbb1a151c reference/v8-o
179
128
  ab2d98a3a6944913e1d5ce35ab9f16dc12d6007f9a0ca4728b3f63fcc2ad0966 reference/v8-original/web/simulator.html
180
129
  2758752d746b768aecd3b8a1c2a99ec898507379513683f18847f0d82522299e reference/v8-original/web/simulator.js
181
130
  e14b737638102bd95492cb94851bc40ea6502f574fc3f2c0c8be6dba5086faa3 reference/v8-original/web/style.css
131
+ ac481bfb3f9427626dc242370319d4e88e7871e5ec22518d3c3bd99333c286f2 RELEASE_MANIFEST.json
182
132
  9c15089adf81045eb0bea8142a67b9352c1cf845bf174ec3e341084aa5dbabca requirements-document-intake-optional.txt
183
133
  aee665abec0e698aa6d05dd519be34a15f5db4d8be90588e88df629f4db54f92 requirements-opc-lab.txt
184
134
  8a4bf8c56e1b3a1573d37239593b8a6b6030fbedc381aa12bc246cd53210a6d4 sample_customer_inputs/Plant_Equipment_Register.csv
185
135
  d69cabd6de76992ca6e0abaa2c16cafe70b75c71a2599835be59d7548304abdf sample_customer_inputs/Plant_Flow_Requirements.txt
186
136
  f2cf20ef6218a6753d1545fe838a7a48865b7907e52f44e6049bb425484f4f1c sample_customer_inputs/Raw_PLC_Tag_Export.csv
137
+ bb1926e7f7ed86d704906a9a8b5d61a3877efedb067d8900d6a9e19f5aa9566c scripts/diagnose_ignition_resources.py
138
+ 5d578e21ed109485049db6a07a2483aff9ef5aa0ffd59cf266285d26c5e1774b scripts/InspectIgnitionProject.java
187
139
  287f344cf26c46e45caae045f6e7859369b01a142b2e03584351a3986a20b4ed scripts/publish_v0792_from_dgx.sh
140
+ e5b427f11a8d4e01c780bc8f3f6984d1a36ea027b7e31a2ac8298feea02fdf97 scripts/verify_ignition_perspective_runtime.py
141
+ ab5ff2abea4ef456c7137fbe9faebd1f0b8dd17d0a203c1518eea6233483e789 scripts/VerifyIgnitionExpressions.java
142
+ 4c9e54a61e61f3eb3e07163e55ded539c54edf86471f2a853b7cd3c6c8b7c98c SOURCE_PROVENANCE.json
143
+ 476fa8b39bdea31ffccfa6f456de8faa7c3c2ed0ca9341f4bb425bf51d48fdc0 SPATIAL_RENDERING_V042.md
188
144
  69001c9e8805a85fbd2b25b776dd213835f4ee504d7ab8f268804773f23510d9 start.sh
189
145
  27caf36b2405e9dc6f7540bb375f4cfbe082dd18ea18416bfb099bd860910df9 templates/warehouse_connections.csv
190
146
  06a66d5259d06424d16cbaf9ae784e1e0a77ec67194b66aa4bb6d0df807753c9 templates/warehouse_equipment.csv
@@ -192,6 +148,7 @@ bc9455d53b66a390588faa1a99799343276435bbd594f9581dee589afcf16dfb templates/ware
192
148
  8887e18c869b2abf63f96fbd645496e7ff23a462217d843bbd904dc0ef441bc8 templates/water_connections.csv
193
149
  d7a2f27eb5437840c650d899b3d91fe3fbaee7fc62580598c566315d5cd1c308 templates/water_equipment.csv
194
150
  1d862a7d69141d0030b0a9660f2b6c078ee015a32fbb5c706346b43646796086 templates/water_signals.csv
151
+ 9741528393657d6693298174537b5d5d71abd538aa2c270b11bcd8cb0eecc9a6 tests/browser_creator_reset_races.py
195
152
  324d6f9b87f6f15e82500e71de2aa84abb7aaae428aa9427699d60ed4ae40568 tests/browser_creator_v081_stage1.py
196
153
  3275e1e9c00d84557a0ad9c7966b1a27f887b7217b9e5a2f128b146bd8bfcf20 tests/browser_creator_v082_r9.py
197
154
  fddc3a3fe64ace90b70df96f8ca6b01a67bda107eaeb9585dd6a6de9387cd1b9 tests/browser_smoke_optional.py
@@ -204,11 +161,13 @@ b009ba2cb868ea4095db7b3e9167976bda36db9838989a62e678d1aad72ee9f8 tests/test_age
204
161
  2e1ba68e65997568f3a46392cb196c5a1817475c226c10d00b6f8670b27c6098 tests/test_creator_codex_v081_stage1.py
205
162
  2fc73d9b284da9e8d262c63d50cf0410fe0dfc7a164e9945cf64ea42c4b7f29c tests/test_creator_v082_original_r9.py
206
163
  9a2cb6cd2bc20e0e4951f8a653da557da4ed83b22daf55a8a62a16f8306b6521 tests/test_design_lock_v043.py
164
+ 1afbb48ef333484714f360c7a73124f55eb8eba2ccbd53170fa6baf632391b11 tests/test_docks_drive_relation_contract.py
207
165
  d2720d9fa7a7e6e4d94bed62df6e9fb820edb5742d290d5b6484589dd902f244 tests/test_engine.py
208
166
  efd6b4d33d4af91f8a7e0f87198c5b1da3ca0abe69d517e774493b5c93a0396e tests/test_flexible_inputs_v021.py
209
167
  1ae0456b27443d3a6fab106fd365d0b9019f726a11c137f3ebb7f51381dfcb34 tests/test_flow_module_http_v052r1.py
210
168
  fb8be9dc38f35ba234e56399b87f58cb4b11cdc8501a0158b7dbeda9888b89de tests/test_http_v02.py
211
169
  95467e2b5c85866e37a845c98fed31c5e95f32f2b8ea5ad5c57ba6f807e127a4 tests/test_ignition_project_v04.py
170
+ 634ad5d10d3a7265c9212dac03750b2829360fcfa7d4ffb0c66c402535b61676 tests/test_industrial_templates_v1.py
212
171
  323f1c11f2f9751f51147030125e7fdcd0fc927630cf0759545fe06cb3ee6079 tests/test_native_candidate_v03.py
213
172
  f36c6b166eb315fc5e8f6dafaa3e76781daa6c1cef668de37080be15b2cf7cc9 tests/test_opc_snapshot_v02.py
214
173
  65c00782ba9dbd45cedb33b5365726cb1b1b8d7d7958e3abe7f8109eda3ad1ba tests/test_openai_compat_v051.py
@@ -229,42 +188,86 @@ d4a22d0c411a2de9d4371243f91d301006edc4d2537eba1c89e8b8203e2bfca2 tests/test_spa
229
188
  0609190ea2508762ec51ed2704577881e48c34ca58d7df5ba5d3faa68262712d tests/test_v063_synthetic_parcel_preview.py
230
189
  d3e04c8b40c4ee9d63f7847ba97369321435d865120e3ea1867609d667d14dea tests/test_v064_inspector_pacing.py
231
190
  d58ac59fa0a423d9d1c7d0a8cec677600797e367a620549de8456a1d4762cd30 tests/test_v065_industrial_expert.py
191
+ 9099599b8d4d10c914b988f584f4542a12263edddbc94932cad18ecd211f658c tests/test_v07_native.py
232
192
  3c9165f73b49e401b9c9cb80d7ccc673d09e9582da313f1ce59845eff81638b7 tests/test_v071_guided_creator.py
233
193
  4c70036bb829d0bb5875d1570f308f7e0458b625044853cf2fcb22da3068c6ab tests/test_v072_modern_creator_ui.py
234
194
  723f6b9c3f1dad651fe079cd0754bba101f0ea8b6e4b59b840f34e34864f2930 tests/test_v073_agent_harness.py
235
- cb50f73a69d81a776ebacd0368a4cd8f706353e1195a66f7cef71b1aaa490904 tests/test_v0741_visible_ai_connection.py
236
195
  7dda46fcf71837cf5641f6ce9f41f2f93b67f4381d5acb4056357450704be65f tests/test_v074_ai_first_creator.py
196
+ cb50f73a69d81a776ebacd0368a4cd8f706353e1195a66f7cef71b1aaa490904 tests/test_v0741_visible_ai_connection.py
197
+ 99fbf6e62e09ebf5e0720e6a2fe623398108fb208c4bd3452f68bee12d2b2471 tests/test_v075_unified_pipeline.py
237
198
  7a9bd46f33c1dab77526d15d4b81bcd9b63ab0d428c955cecffb41abf6f17790 tests/test_v0751_compact_ai_header.py
238
199
  73042ad909160835fee56d995719088e66621055694a50b634d9dd1624060b52 tests/test_v0752_2d_facility.py
239
- 99fbf6e62e09ebf5e0720e6a2fe623398108fb208c4bd3452f68bee12d2b2471 tests/test_v075_unified_pipeline.py
240
- 8ae5a6488c9d27da4dbc3f5bcf2aea7725f182af1b7fa4aa304ca746649bbfa6 tests/test_v0761_unified_ai_asset.py
241
200
  b59ee063e1d4f95c61ed7913508a1505e177824dda3e67d0a3b22019623ae1dd tests/test_v076_isolated_opc_fat.py
242
201
  9e01ec764864af4f5d9e3a1b664d65ee27d0017281667e60edc8786ad7436b56 tests/test_v076_opc_fat_http.py
202
+ 8ae5a6488c9d27da4dbc3f5bcf2aea7725f182af1b7fa4aa304ca746649bbfa6 tests/test_v0761_unified_ai_asset.py
203
+ ceae3985df5aab1451f15eb8d13b4a55a3fd4dd2bd3bc8066f883a45394c4a02 tests/test_v077_transport_continuity.py
243
204
  f0a9c6355daa88a96392da3753988d46fcea74589be860a499dc1a5b56e64b26 tests/test_v0771_compact_ai_proposals.py
244
205
  ef1e80fb905f5fccb7c2de19607e33aac9391cff9216a43873699a96415326f0 tests/test_v0772_document_intake.py
245
206
  230d4fff277b5f53f0b070b7e596b2b832dc47d16a7629a57a826174e91c861c tests/test_v0773_component_drilldown.py
246
- ceae3985df5aab1451f15eb8d13b4a55a3fd4dd2bd3bc8066f883a45394c4a02 tests/test_v077_transport_continuity.py
247
207
  f6db1b9dc37de289cf77a45881be38a2f3edc9acd1084acf78488b7591653940 tests/test_v078_command_http.py
248
208
  e3579cdca7da504635db3b6fc82ee9ef5d53e8755474e6f904702bd59e10c6fa tests/test_v078_device_commands.py
209
+ 378d64c39abf83232dd312e97b0b5b7b2cd340ab277d4e0cc97d152c4798bbd9 tests/test_v079_compact_live_review.py
249
210
  3d99391b37b2a6e273bd751c372b472709444ba3d3ddeb3aa49673b1df01907e tests/test_v0791_full_hmi_review.py
250
211
  3030cdeb0e448f7ac986560335db69af5d05f0a13e2b7247bf67bc3048feff2f tests/test_v0792_multifloor_package.py
251
212
  0077fa51aa3c70654873e2eccfc8f3ce44135b46e741b7f90052784ba20c77c0 tests/test_v0793_same_origin_hmi_frame.py
252
213
  b380069dfcb24d8013638b2d88bdffaf16e5baaf9a597dc4cb2bb3b63c62eda8 tests/test_v0795_precise_operator_controls.py
253
- 378d64c39abf83232dd312e97b0b5b7b2cd340ab277d4e0cc97d152c4798bbd9 tests/test_v079_compact_live_review.py
254
- 9099599b8d4d10c914b988f584f4542a12263edddbc94932cad18ecd211f658c tests/test_v07_native.py
255
214
  1f3ec3fa79732c888c134b8e3583ba9b6c8b014ae99ea6f9c519619c0bf2f54b tests/test_v080_ai_customer_http_e2e.py
256
215
  d5c786d178083b23b02a818a881321bc2ac49c3281362964496e865272cdc615 tests/test_v080_customer_contract_fat.py
257
216
  ffea00447beacdc98c3896fb82b20a95afd5833a7b45d99e5425c88540a7198f tests/test_v080_persistent_opc_source.py
217
+ 290ced70f6ad21ddd6c6be6aa9352888029abc58a7473f82d9daf5e6b5c0c5b9 tests/test_v083_native.py
218
+ f95ef02249f2fd91d62085f1a8eabf0dbfd40c9d3b7c018830a03a1257727101 tests/test_v083_runtime_verifier.py
258
219
  09a9b29d166bc670cf171b84f9124e4c5b41566eb12552d9db0c6e2459771fa9 tests/test_visual_assembly_v054.py
220
+ 26dbb2c4e7795e5da2c42daf770512ad1d9bd6d2b1f6d2de13ad74add0592a4b V04_NATIVE_PROJECT.md
221
+ dbc7c6a68dbbfed1763a5dfc6ca093b4b8d4a121a64f46944750721804c40d3c V041_OPERATOR_STYLE.md
222
+ 84e03c93963680a3359387c53e455c1d49d2a3475a4b1b7822344a311c3e926f V051_OPENAI_CONNECTOR_FIX.md
223
+ a4f2e18f466f6dc046e4ae36d62b2e8221e7d6bec436b688b60b8f0b5e4d9592 V052R1_VIEWER_HOTFIX.md
224
+ d6ded0c54f2c880b5f62ae66f7d1f40a5617c78854998c48689da4627938d80c V054_ASSEMBLY_VERIFICATION.md
225
+ f95c08b96146ae60af27bd67dbd847c3e545e856a234ae0085190c235cfe262b V055_R9_DEPTH_UI_REVIEW.md
226
+ 53d8316d5a0021d25cf5ae17f280cf90a185f9c40d9e2df0946760d4eb22e443 V056_OPERATIONS_QUALIFICATION.md
227
+ d8d31bd44877e945af35baba06c677125953221dac8f2150be7984c6ad214d87 V057_SEPARATE_STUDIO_TEST_WORKSPACE.md
228
+ bcdfd634104125eac9c6442ed7ff61b75e5455b5b02279b59367a128033d5a91 V057R1_STUDIO_RESUME_HOTFIX.md
229
+ 4d49e9a7951359f2774e7166537bcddd15398e384d90c1b7cdfa0e50b4b02b13 V057R2_COMPACT_NOTIFICATION_BELL.md
230
+ e6e1aa5e8b1dd12d555e5a00c69dc05fabcc5f320be1766a7145a925274e3b33 V057R3_SIMPLIFIED_STUDIO.md
231
+ 42251451af3159e8eb309b412310f938fcf9d8a3d104494fcf6d3971ed3e6e9d V060_RUNTIME_INTEGRATION_AND_PRODUCTION_GATES.md
232
+ cb165aed1ddcc6e49c315ee5d798b2aa664c825c5c78daac2b0e629b025e1f57 V061_OPERATOR_ONLY_RELEASE_GATES.md
233
+ 6b08b1ec62e6cf351c3dedd7a75c73d9bc8c73eab5309d5cf02310e182bdeec5 V062_R9_OPERATOR_CONTROLS.md
234
+ f218af9cb95ff131fbafa0a7f9bfdfddd2b5ae9b0dac3eb706cee4caf1ce1029 V063_SIMPLE_STUDIO_SIMULATION.md
235
+ 132be5470fb1e988b2cc8f1054fdbf1e0e78bb7326ffaa0134d6dcbdf7c382b7 V064_INSPECTOR_AND_PACING.md
236
+ 54e12bf193b9933b5232996cd6be3c9d86c62bd6796890e11a730ee1f222ba9c V065_INDUSTRIAL_EXPERT_ENGINE.md
237
+ f86acb547285bff0ca2a202b916f128346065b6d7f6065cee96556ca7d56c7f2 V065_SIMULATOR_CONTROLS_AND_VIRTUAL_PORTS.md
238
+ 95ade3daab7d29513dde72a4a8f57553ede907947a3d4b3db2c2b89b2f78fec7 V07_NATIVE_IGNITION_AND_FAT.md
239
+ b6112887812c766cafc063fbf96c6ff8e17bb112c0ac4bc780545f24beea36f8 V072_MODERN_CREATOR_QUICKSTART.md
240
+ 4810f59fb6171f397db66fe0fea141e0dd0f35a76f46236eccfe6763f4945031 V072_QUALIFICATION.json
241
+ 425e3d50a5678f7b75869129c2906f11975d906231dbddc50b5c9ad8fadbe45c V073_AGENT_HARNESS_QUICKSTART.md
242
+ 9faa1a0903cbe9a85520b5bbe4f178fbe50f803287a1a681cc8f0884467fe8a4 V073_QUALIFICATION.json
243
+ 4ddf02d994967100c28df7d988ef0d9d007419972221c6a045c0f4fccdb44819 V074_AI_FIRST_QUICKSTART.md
244
+ dd98cea8c98fd48478a6b9d1e0f656305cb39e18f92188ac5239ec97debb563e V074_QUALIFICATION.json
245
+ e0eb6ed77880dc292e5da3467c09b974b7dcecbf870de03fe2c13a28a71d66b2 V075_QUALIFICATION.json
246
+ 904645ab6ddf245de7d0a2b679d99f42b44aae1f37137c9cdf493b0973fb9e44 V075_UNIFIED_AI_CREATOR.md
247
+ 6b8e7d1d0bcaeafaf02a55f727286002b5a92a0cefbfc98df59ae4bea677b4ed V0751_COMPACT_AI_HEADER.md
248
+ cb369e93a63d9217dcb5fefb7125975ffb60ccd5390f29e90219fba61de0dc7f V0751_QUALIFICATION.json
249
+ 85082e659c9c38016a85c195eae645d47849c863488639eae78f4ad34ced4833 V0752_STANDARD_2D_QUICKSTART.md
250
+ facb9d5c68a6ca90103f4d9381037aee32d5cea2d2c9b53d6ea19e7271a1df70 V076_ISOLATED_OPC_FAT_QUICKSTART.md
251
+ 176f9a7a867b738f7e0770e24491a610e35e43c5df091bd0077494e610b7389f V076_QUALIFICATION.json
252
+ 751282929f40fddce2475872a2c988bfcca39bf670345651942533791d36f7fd V0761_AI_BUTTON_FIX_README.md
253
+ 38610bb77b63e521035e89e12508fa82a10c3f020c0a2d49c8fb408e889b7b3b V077_TRANSPORT_CONTINUITY_README.md
254
+ 5b51e867ac22e07b3bb2f2400204d6b35826e76bd7b8e213314c8ea06ca75ab1 V0771_AI_CANDIDATE_DIAGNOSTICS.md
255
+ 2602cc748072e79b6bcdd8fbebb2c8cf8f268056afb52aa6d5501ad5b8111d86 V0772_CUSTOMER_DOCUMENTS_QUICKSTART.md
256
+ fc12b928060ddabb72020bb6b990c60fd11ebecf474a660e383fbc676c36aaf6 V0773_COMPONENT_CONTROLS_QUICKSTART.md
257
+ e6113bbe46f4e7723fe8a9149f74c9316882848f48d35561f2fc2855a28bf1ab V0773_QUALIFICATION.json
258
+ 5635f94dae457b63d1fc7b3045cbac5b57fab5bef91a488e84d734e1bed4568c V078_DEVICE_COMMAND_LAB_QUICKSTART.md
259
+ fe2a50b5c4fa0541591009dcdb18a873720778ca7c09f7cc6bd174052dedaa4d V078_QUALIFICATION.json
260
+ 934319012c8be44340ff879ed5f04166e02bb171d8ffb152ff29031bb5d07bf7 V079_COMPACT_DESIGN_REVIEW_QUICKSTART.md
261
+ 6a62c24f9016b1edea1b943e708b4aa4b35559edaf93bcd14ed980ac46da08b7 V079_QUALIFICATION.json
262
+ 8bad19bb19d84186944ce015711cdf605d10ce54910befe684ca888719dc85ce V0791_FULL_HMI_REVIEW_QUICKSTART.md
263
+ 8a157a8fa996449af5f127769cac51074eefc3ad08655b6e7ca4b21fdf17d1ab V0792_2D_PER_FLOOR_AND_PACKAGE_IMPORT.md
264
+ 0c10ff193c5195ada5b36baae5f6faf345bd050ef70d6016efe5051592cb85e1 V0792_QUALIFICATION.json
265
+ 0110fa2f2052cfa9bdbadc324bfc23531cb2d7cf2077c5abc15f48d67e6b1f94 V080_CUSTOMER_CONTRACT_FAT_AND_2D_SIM.md
266
+ de891bb9904734a5ca180ce11d8272cf69c3573b6e76a3bee5ae64a60805d535 V080_DGX_OPC_HANDSHAKE_ROOT_CAUSE_AND_FIX.md
267
+ 5bed06ec6578f2b58273475744d7b4875daab4543cee322a31ea86da15cccfb0 V080_PERSISTENT_CONTRACT_OPC_GATEWAY_SOURCE.md
268
+ a32bc47a4035493d1d17bfe64560a2952cf5f6edf71fc5e9b95ce05f49107194 V081_STAGE1_ORIGINAL_V8_AND_RESET.md
269
+ 14b4759a0193522128b93f178dfeacdf416fe2735ab73e419c4d3035febadce1 V082_R9_FOUR_SPIRALS_SOURCE_BACKED_CANDIDATE.md
259
270
  5ee467ced2e0b62d82375220f5d4c4e8a565abb3164cc72015b93cc8ffc763cc V083_NATIVE_IMPORT_MILESTONE.md
260
271
  aa52b15fb1cdace22d77ef3c20837b7bc4c5518661c6fcbdd88ea8bf7e128951 V083_NATIVE_RUNTIME_AND_DEPLOYMENT.md
261
272
  ad6400ab0a13bafc63cd8157ac3f5a1d38722ad4682aa4154eb2f4015a8fab15 V083_PRECOMMIT_REVIEW.md
262
273
  105e25a9ad0e0e2a45788c91c1296e8b50fc54ac2b2107f1df3348980eb3745b V083_QUALIFICATION.json
263
- c9de44c9e09b8be5121c1d4fcf5c592b576ee8f5fc1572d7f65999ad9a9aae54 devagent_spatial/v083_native.py
264
- 5d578e21ed109485049db6a07a2483aff9ef5aa0ffd59cf266285d26c5e1774b scripts/InspectIgnitionProject.java
265
- ab5ff2abea4ef456c7137fbe9faebd1f0b8dd17d0a203c1518eea6233483e789 scripts/VerifyIgnitionExpressions.java
266
- bb1926e7f7ed86d704906a9a8b5d61a3877efedb067d8900d6a9e19f5aa9566c scripts/diagnose_ignition_resources.py
267
- e5b427f11a8d4e01c780bc8f3f6984d1a36ea027b7e31a2ac8298feea02fdf97 scripts/verify_ignition_perspective_runtime.py
268
- 9741528393657d6693298174537b5d5d71abd538aa2c270b11bcd8cb0eecc9a6 tests/browser_creator_reset_races.py
269
- 290ced70f6ad21ddd6c6be6aa9352888029abc58a7473f82d9daf5e6b5c0c5b9 tests/test_v083_native.py
270
- f95ef02249f2fd91d62085f1a8eabf0dbfd40c9d3b7c018830a03a1257727101 tests/test_v083_runtime_verifier.py
@@ -257,7 +257,7 @@ export function installOperations({model,selectAsset,scene,policy}) {
257
257
  }
258
258
  validateReceipt(result.receipt);
259
259
  if(result.receipt.origin!=='ISOLATED_LAB_OPC_READ_ONLY')throw Error('LAB_RECEIPT_ORIGIN_HOLD');
260
- receipt=result.receipt;labLive=true;syntheticMode=false;virtualPE.clear();equipmentStates.clear();scene()?.syntheticPorts?.(new Map());simAcknowledged=false;simFaultAsset=null;frameNumber=receipt.frames.length-1;scene()?.parcels?.([]);render();
260
+ receipt=result.receipt;labLive=true;syntheticMode=false;virtualPE.clear();equipmentStates.clear();scene()?.syntheticPorts?.(new Map());scene()?.syntheticPhotoeyes?.(new Map());simAcknowledged=false;simFaultAsset=null;frameNumber=receipt.frames.length-1;scene()?.parcels?.([]);render();
261
261
  if($('ops-upload'))$('ops-upload').disabled=true;
262
262
  },
263
263
  applySyntheticReading:result=>{
@@ -273,6 +273,14 @@ export function installOperations({model,selectAsset,scene,policy}) {
273
273
  const transport=new Set(model.equipment.filter(e=>['conveyor','sorter','spiral','junction'].includes(e.kind)).map(e=>e.id));
274
274
  if(result.virtual_pe.length>transport.size||new Set(result.virtual_pe.map(x=>x.asset_id)).size!==result.virtual_pe.length||
275
275
  result.virtual_pe.some(x=>!transport.has(x.asset_id)||typeof x.pe_in!=='boolean'||typeof x.pe_out!=='boolean'))throw Error('VIRTUAL_PE_UNDECLARED_ASSET');
276
+ const sensors=new Set(model.equipment.filter(e=>e.kind==='photoeye').map(e=>e.id));
277
+ if(result.virtual_sensors_source!=='NEAREST_ROUTE_STATION_SYNTHETIC_ONLY_NOT_PHYSICAL_MAPPING'||
278
+ !Array.isArray(result.virtual_sensors)||
279
+ result.virtual_sensors.length>sensors.size||
280
+ new Set(result.virtual_sensors.map(x=>x.asset_id)).size!==result.virtual_sensors.length||
281
+ result.virtual_sensors.some(x=>!sensors.has(x.asset_id)||typeof x.blocked!=='boolean'))
282
+ throw Error('INVALID_SYNTHETIC_SENSOR_STATES');
283
+ scene()?.syntheticPhotoeyes?.(new Map(result.virtual_sensors.map(x=>[x.asset_id,x.blocked])));
276
284
  virtualPE=new Map(result.virtual_pe.map(x=>[x.asset_id,x]));
277
285
  if(result.equipment_states_source!=='SYNTHETIC_PREVIEW_NOT_PLC'||!Array.isArray(result.equipment_states)||
278
286
  result.equipment_states.length!==model.equipment.length||
@@ -289,7 +297,7 @@ export function installOperations({model,selectAsset,scene,policy}) {
289
297
  scene()?.parcels?.(result.parcels);render();
290
298
  },
291
299
  sourceUnavailable:()=>{
292
- receipt=null;labLive=false;syntheticMode=false;virtualPE.clear();equipmentStates.clear();scene()?.syntheticPorts?.(new Map());simAcknowledged=false;simFaultAsset=null;frameNumber=0;
300
+ receipt=null;labLive=false;syntheticMode=false;virtualPE.clear();equipmentStates.clear();scene()?.syntheticPorts?.(new Map());scene()?.syntheticPhotoeyes?.(new Map());simAcknowledged=false;simFaultAsset=null;frameNumber=0;
293
301
  scene()?.parcels?.([]);
294
302
  if($('ops-upload'))$('ops-upload').disabled=true;
295
303
  scene()?.alarms?.([]);scene()?.operatingStates?.([]);
@@ -35,7 +35,7 @@ export async function startThree(model,host,onSelect){
35
35
  const rim=new T.DirectionalLight(0x3cc0c0,1.05);rim.position.set(-10,10,-22);scene.add(rim);
36
36
  const warm=new T.PointLight(0xf1d294,28,65);warm.position.set(7,18,-7);scene.add(warm); // R9 key light; decorative only
37
37
  // Conceptual industrial materials, not operating-status colors.
38
- const col={conveyor:0x467e94,spiral:0x4c92a5,sorter:0x4a91a3,motor:0x6a879d,vfd:0x53748e,photoeye:0x43b7ad,scanner:0xbdaa6f,tank:0x668c9e,pump:0x6e91ab,valve:0xcaa86a,robot:0x82acb7,junction:0x467e94,room:0x365e78,other:0x628ca0};
38
+ const col={conveyor:0x467e94,spiral:0x4c92a5,sorter:0x4a91a3,motor:0x6a879d,vfd:0x53748e,photoeye:0x43b7ad,scanner:0xbdaa6f,tank:0x668c9e,pump:0x6e91ab,valve:0xcaa86a,robot:0x82acb7,junction:0x467e94,room:0x365e78,dock_door:0x688fa0,dock_leveler:0x7e95a2,other:0x628ca0};
39
39
  const mats={
40
40
  frame:new T.MeshStandardMaterial({color:0x627e8d,metalness:.63,roughness:.41}),
41
41
  trim:new T.MeshStandardMaterial({color:0xa5c1ca,metalness:.68,roughness:.32}),
@@ -47,12 +47,12 @@ export async function startThree(model,host,onSelect){
47
47
  highlight:new T.MeshStandardMaterial({color:0xd6b66e,metalness:.54,roughness:.42}),
48
48
  };
49
49
  const mat=(c,metal=.48,rough=.48,opacity=1)=>new T.MeshStandardMaterial({color:c,metalness:metal,roughness:rough,transparent:opacity<1,opacity,side:T.DoubleSide});
50
- const assets=new Map(),pickables=[],floors=new Map();
50
+ const assets=new Map(),pickables=[],floors=new Map(),sensorLamps=new Map();
51
51
  const boxGeometry=new T.BoxGeometry(1,1,1);
52
52
  function box(g,x,y,z,dx,dy,dz,m){const o=new T.Mesh(boxGeometry,m);o.position.set(x,y,z);o.scale.set(Math.max(.03,dx),Math.max(.03,dy),Math.max(.03,dz));o.castShadow=true;o.receiveShadow=true;g.add(o);return o;}
53
53
  function cylinder(g,x,y,z,rad,height,m,segments=20){const o=new T.Mesh(new T.CylinderGeometry(rad,rad,height,segments),m);o.position.set(x,y,z);o.castShadow=true;o.receiveShadow=true;g.add(o);return o;}
54
54
  function rail(g,sx,y,z){box(g,0,y,z,sx,.12,.10,mats.trim);box(g,0,y+.12,z,sx,.065,.08,mats.frame);}
55
- function label(text){const cv=document.createElement('canvas');cv.width=384;cv.height=90;const ctx=cv.getContext('2d');ctx.fillStyle='rgba(7,24,37,.94)';ctx.fillRect(2,4,380,82);ctx.strokeStyle='#7494a4';ctx.lineWidth=2;ctx.strokeRect(2,4,380,82);ctx.fillStyle='#e1f7ff';ctx.font='bold 37px system-ui';ctx.textAlign='center';ctx.textBaseline='middle';ctx.fillText(text.slice(0,20),192,46);const tex=new T.CanvasTexture(cv);tex.colorSpace=T.SRGBColorSpace;const sprite=new T.Sprite(new T.SpriteMaterial({map:tex,transparent:true,depthWrite:false}));sprite.scale.set(3.0,.72,1);return sprite;}
55
+ function label(text){const cv=document.createElement('canvas');cv.width=384;cv.height=90;const ctx=cv.getContext('2d');ctx.fillStyle='rgba(3,17,29,.99)';ctx.fillRect(2,4,380,82);ctx.strokeStyle='#b2d9ee';ctx.lineWidth=2;ctx.strokeRect(2,4,380,82);ctx.fillStyle='#ffffff';ctx.font='800 44px system-ui';ctx.textAlign='center';ctx.textBaseline='middle';ctx.fillText(text.slice(0,20),192,46);const tex=new T.CanvasTexture(cv);tex.colorSpace=T.SRGBColorSpace;const sprite=new T.Sprite(new T.SpriteMaterial({map:tex,transparent:true,depthWrite:false}));sprite.scale.set(3.45,.78,1);return sprite;}
56
56
  function line(a,b,color=palette.edge){const geom=new T.BufferGeometry().setFromPoints([a,b]);const obj=new T.Line(geom,new T.LineDashedMaterial({color,dashSize:.26,gapSize:.16,opacity:.74,transparent:true}));obj.computeLineDistances();return obj;}
57
57
  const floorNs=[...new Set(model.equipment.map(e=>e.floor))].sort((a,b)=>a-b);
58
58
  const facility=commonFacilityBounds(model);
@@ -169,13 +169,27 @@ export async function startThree(model,host,onSelect){
169
169
  box(g,0,1.24,0,.09,.09,1.28,mats.trim);
170
170
  box(g,0,1.14,-.54,.28,.20,.22,mat(base));
171
171
  box(g,0,1.14,.54,.28,.20,.22,mats.dark);
172
- box(g,0,1.14,-.42,.10,.08,.08,mats.cyan);
172
+ const lampMaterial=new T.MeshStandardMaterial({color:0x436d80,emissive:0x10222c,emissiveIntensity:.4,metalness:.1,roughness:.5});
173
+ const lamp=box(g,0,1.14,-.42,.10,.08,.08,lampMaterial);
174
+ sensorLamps.set(e.id,lamp);
173
175
  } else if(kind==='scanner'){
174
176
  // Overhead scan tunnel: crossbeam, reader head and guarded stanchions.
175
177
  for(const side of [-1,1])box(g,0,.8,side*.72,.12,1.6,.12,mats.frame);
176
178
  box(g,0,1.62,0,.16,.18,1.63,mats.trim);
177
179
  box(g,0,1.62,0,.42,.23,.49,mat(base));
178
180
  box(g,0,1.48,.13,.22,.06,.27,mats.dark);
181
+ } else if(kind==='dock_door'){
182
+ // Distinct receiving/shipping dock opening; architectural concept only.
183
+ box(g,0,2.3,0,3.15,4.5,.20,mats.frame);
184
+ box(g,0,2.2,.15,2.75,3.9,.09,mats.dark);
185
+ for(let y=.55;y<3.95;y+=.64)box(g,0,y,.24,2.60,.055,.06,mats.trim);
186
+ box(g,-1.5,2.25,.20,.15,4.4,.20,mats.highlight);
187
+ box(g,1.5,2.25,.20,.15,4.4,.20,mats.highlight);
188
+ } else if(kind==='dock_leveler'){
189
+ // Loading ramp is a separate model, not a material handling connection.
190
+ box(g,0,.16,0,2.7,.18,2.35,mats.frame);
191
+ const ramp=box(g,.08,.28,.35,2.30,.075,1.8,mats.highlight);
192
+ ramp.rotation.x=-.08;
179
193
  } else if(kind==='vfd'||kind==='motor'){
180
194
  box(g,0,Math.max(.4,sy*.5),0,sx,Math.max(.7,sy),sz,mat(base,.55,.52));
181
195
  box(g,0,sy*.61,sz*.53,sx*.77,sy*.44,.075,mats.dark);
@@ -343,30 +357,19 @@ export async function startThree(model,host,onSelect){
343
357
 
344
358
  // Synthetic PE indicators are separate overlays, never recolor hardware or
345
359
  // represent a commissioned physical photoeye-to-conveyor association.
346
- const syntheticPortMarkers=new Map();
347
- function syntheticPorts(ports){
348
- for(const arr of syntheticPortMarkers.values())for(const o of arr){
349
- scene.remove(o);o.geometry.dispose();o.material.dispose();
350
- }
351
- syntheticPortMarkers.clear();
352
- if(!(ports instanceof Map))return;
353
- for(const [id,state] of ports){
354
- const e=model.equipment.find(x=>x.id===id);
355
- if(!e||!assets.has(id)||!state||
356
- typeof state.pe_in!=='boolean'||typeof state.pe_out!=='boolean')continue;
357
- const marks=[];
358
- for(const [out,blocked] of [[false,state.pe_in],[true,state.pe_out]]){
359
- const material=new T.MeshBasicMaterial({color:blocked?0xffc04d:0x3cbb8c,
360
- transparent:true,opacity:.95,depthTest:false});
361
- const marker=new T.Mesh(new T.SphereGeometry(.22,12,8),material);
362
- const sign=out?1:-1;
363
- marker.position.set(e.position.x+sign*Math.max(.35,e.dimensions.x*.34),
364
- e.position.y+1.8,e.position.z);
365
- marker.visible=visibleFloor==='all'||String(e.floor)===visibleFloor;
366
- marker.userData.syntheticOnly=true;
367
- scene.add(marker);marks.push(marker);
368
- }
369
- syntheticPortMarkers.set(id,marks);
360
+ // PE IN/OUT are shown in Equipment Inspector only. Never add oversized
361
+ // spheres to the R9 scene: they obscure conveyors and photoeye labels.
362
+ // Retain a no-op adapter so the synthetic read-only feed remains compatible.
363
+ function syntheticPorts(_ports){}
364
+ function syntheticPhotoeyes(states){
365
+ const blocked=states instanceof Map?states:new Map();
366
+ for(const [id,lamp] of sensorLamps){
367
+ const v=blocked.get(id),m=lamp.material;
368
+ // Unknown is visually neutral; an active indicator is never PLC evidence.
369
+ const col=v===true?0xffad38:v===false?0x2fc999:0x436d80;
370
+ m.color.setHex(col);
371
+ m.emissive.setHex(v===true?0x9a4103:v===false?0x0b593b:0x10222c);
372
+ m.emissiveIntensity=(v===null||v===undefined)?0.35:0.8;
370
373
  }
371
374
  }
372
375
  function alarms(entries){
@@ -466,5 +469,5 @@ export async function startThree(model,host,onSelect){
466
469
  renderer.render(scene,camera);requestAnimationFrame(frame);
467
470
  }requestAnimationFrame(frame);
468
471
  window.addEventListener('pagehide',()=>{active=false;obs.disconnect();renderer.dispose();},{once:true});
469
- return {select:selected,floor,view,focus,overview,alarms,operatingStates,syntheticPorts,parcels,mount:id=>sensorMounts[id]||null};
472
+ return {select:selected,floor,view,focus,overview,alarms,operatingStates,syntheticPorts,syntheticPhotoeyes,parcels,mount:id=>sensorMounts[id]||null};
470
473
  }
@@ -0,0 +1 @@
1
+ __version__ = '0.1.7'