agentworkshop 0.7.53 → 0.7.54

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 (961) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +87 -0
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +87 -0
  3. package/.output/.AgentWorkShop/schema.json +2 -1
  4. package/.output/nitro.json +1 -1
  5. package/.output/public/_nuxt/{9zrLAN2o2.js → BJhsCisg2.js} +1 -1
  6. package/.output/public/_nuxt/BOhcoxIu.js +2 -0
  7. package/.output/public/_nuxt/{BdM_Qr752.js → BP8TgWo02.js} +1 -1
  8. package/.output/public/_nuxt/{bg2adfck.js → BPqXOlYX.js} +1 -1
  9. package/.output/public/_nuxt/{Crbir9cT.js → BQOn0q6Y.js} +1 -1
  10. package/.output/public/_nuxt/{BLnLjzka.js → BQy0Yy7S.js} +1 -1
  11. package/.output/public/_nuxt/BTVyPFng2.js +1 -0
  12. package/.output/public/_nuxt/{qOlYoGLf.js → BWowAAJb.js} +1 -1
  13. package/.output/public/_nuxt/{BwlGxRxA.js → BZtgVXC5.js} +1 -1
  14. package/.output/public/_nuxt/BcX4fktE.js +1 -0
  15. package/.output/public/_nuxt/{B_LcD7qE2.js → BdF9OAZq2.js} +1 -1
  16. package/.output/public/_nuxt/{IU-UGkCJ2.js → BhcbvVOa2.js} +1 -1
  17. package/.output/public/_nuxt/{CBDX7p73.js → BjWbbMHs.js} +1 -1
  18. package/.output/public/_nuxt/{YaroNkJZ2.js → BmTzcKJg2.js} +1 -1
  19. package/.output/public/_nuxt/BnoyYd0Z2.js +1 -0
  20. package/.output/public/_nuxt/{Bl5dYv4m.js → BqYO-UfR.js} +1 -1
  21. package/.output/public/_nuxt/Btv3HXrq.js +1 -0
  22. package/.output/public/_nuxt/{BGKUW7ra.js → Btx8wL4-.js} +1 -1
  23. package/.output/public/_nuxt/{CBIoheY42.js → BuXaEtBG2.js} +1 -1
  24. package/.output/public/_nuxt/{DSqMyLCV2.js → BxWvUgMz2.js} +1 -1
  25. package/.output/public/_nuxt/{1g9IT9Qh2.js → BxoaZc_U2.js} +1 -1
  26. package/.output/public/_nuxt/C-LU6xv_.js +1 -0
  27. package/.output/public/_nuxt/{BcQXL8pb.js → C-y_g11k.js} +1 -1
  28. package/.output/public/_nuxt/C7_F68I7.js +1 -0
  29. package/.output/public/_nuxt/CFjveTJh.js +1 -0
  30. package/.output/public/_nuxt/{BQXCMsXk.js → CMWyj56j.js} +1 -1
  31. package/.output/public/_nuxt/{C4WhK2wq.js → COQM2L1M.js} +1 -1
  32. package/.output/public/_nuxt/{CjwxhpwR2.js → CV61ysvv.js} +1 -1
  33. package/.output/public/_nuxt/{sl1EEoCr2.js → Ca3iDJwu2.js} +5 -5
  34. package/.output/public/_nuxt/{BiOSWsjD.js → Cg8Pgbeu.js} +1 -1
  35. package/.output/public/_nuxt/{BSdJTnk12.js → Ch9KdZWb2.js} +1 -1
  36. package/.output/public/_nuxt/{B1RT9NTO2.js → ChN5v-i22.js} +1 -1
  37. package/.output/public/_nuxt/{DE6H1HdJ.js → Cpm5JYv4.js} +1 -1
  38. package/.output/public/_nuxt/{DsGf2IV82.js → CtXOpljm2.js} +1 -1
  39. package/.output/public/_nuxt/{EhhQmlBV2.js → D2Sm-GTk2.js} +1 -1
  40. package/.output/public/_nuxt/{DCtk3qqr.js → D8xUsQGt.js} +1 -1
  41. package/.output/public/_nuxt/{CQabB0oy.js → D9TpiWjt.js} +1 -1
  42. package/.output/public/_nuxt/DB4ma-iU2.js +1 -0
  43. package/.output/public/_nuxt/{BDmNbZ252.js → DCPhrNWR2.js} +1 -1
  44. package/.output/public/_nuxt/{BE7BrEw6.js → DNZmwhSD.js} +1 -1
  45. package/.output/public/_nuxt/{CMXcOb6W.js → DO9xaI9a.js} +1 -1
  46. package/.output/public/_nuxt/{H2rNs1O82.js → DUribplv2.js} +1 -1
  47. package/.output/public/_nuxt/DZuXfuXS.js +14 -0
  48. package/.output/public/_nuxt/{Ccps4cxo.js → D_hCLbi9.js} +1 -1
  49. package/.output/public/_nuxt/{DlCktWDT.js → Db4_F1T2.js} +1 -1
  50. package/.output/public/_nuxt/{Bhe953zV2.js → DioKmYyB2.js} +1 -1
  51. package/.output/public/_nuxt/{77DRSnQv.js → Dk6Zf3-L.js} +1 -1
  52. package/.output/public/_nuxt/{Dbe9TFc9.js → DlX0nqUe.js} +1 -1
  53. package/.output/public/_nuxt/{Chphw5IA2.js → Dm_iKz8k2.js} +1 -1
  54. package/.output/public/_nuxt/{NJn94js_.js → DnAn2LgG.js} +1 -1
  55. package/.output/public/_nuxt/DuPM4HXw.js +1 -0
  56. package/.output/public/_nuxt/{DNoEoo8t.js → Dz2SLIde.js} +1 -1
  57. package/.output/public/_nuxt/DzwIZ81f.js +1 -0
  58. package/.output/public/_nuxt/{DD6Z0yPN2.js → MbT4wXb62.js} +1 -1
  59. package/.output/public/_nuxt/{BpcQDwKM2.js → PY2GW_3N2.js} +1 -1
  60. package/.output/public/_nuxt/{2_DkYoqD2.js → QHo9mN-M2.js} +1 -1
  61. package/.output/public/_nuxt/{TownView.BvlfuLtP.css → TownView.Xt1yygrh.css} +1 -1
  62. package/.output/public/_nuxt/_id_.DZbVLNnu.css +1 -0
  63. package/.output/public/_nuxt/a4X3ARNm2.js +1 -0
  64. package/.output/public/_nuxt/builds/latest.json +1 -1
  65. package/.output/public/_nuxt/builds/meta/af879435-fc74-4017-ade0-3b92c1ab35bb.json +1 -0
  66. package/.output/public/_nuxt/cY_5jwFz2.js +1 -0
  67. package/.output/public/_nuxt/dVw8IHY62.js +1 -0
  68. package/.output/public/_nuxt/{LwIFGLgF.js → deBcbALe2.js} +1 -1
  69. package/.output/public/_nuxt/{BzvHUfRR.js → nT-bgxvf.js} +1 -1
  70. package/.output/public/_nuxt/tq3HbWr9.js +1 -0
  71. package/.output/public/_nuxt/{BH3obZJ42.js → uY58gQqR2.js} +1 -1
  72. package/.output/public/_nuxt/{ZuQtOnfI.js → vPfDYgvR.js} +1 -1
  73. package/.output/public/_nuxt/{zsRclU9w2.js → xX7ccjDl2.js} +1 -1
  74. package/.output/server/chunks/_/nitro.mjs +2652 -1422
  75. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  76. package/.output/server/chunks/build/OmpTerminalPanel-mk31gVzA.mjs +1 -1
  77. package/.output/server/chunks/build/{TownView-fP9BiALv.mjs → TownView-Bf5VFYFj.mjs} +26 -19
  78. package/.output/server/chunks/build/TownView-Bf5VFYFj.mjs.map +1 -0
  79. package/.output/server/chunks/build/{_id_-CK-QFrDV.mjs → _id_-CuUmVPRg.mjs} +192 -82
  80. package/.output/server/chunks/build/_id_-CuUmVPRg.mjs.map +1 -0
  81. package/.output/server/chunks/build/{_id_-CDlur81q.mjs → _id_-WF20tjqT.mjs} +12 -11
  82. package/.output/server/chunks/build/_id_-WF20tjqT.mjs.map +1 -0
  83. package/.output/server/chunks/build/{_wsId_-DdqXzycE.mjs → _wsId_-BUIKB68b.mjs} +13 -10
  84. package/.output/server/chunks/build/{_wsId_-DdqXzycE.mjs.map → _wsId_-BUIKB68b.mjs.map} +1 -1
  85. package/.output/server/chunks/build/agents-DqICy4AL.mjs +2 -1
  86. package/.output/server/chunks/build/agents-DqICy4AL.mjs.map +1 -1
  87. package/.output/server/chunks/build/{aml-DsgtDLWF.mjs → aml-C55iuLn-.mjs} +15 -13
  88. package/.output/server/chunks/build/aml-C55iuLn-.mjs.map +1 -0
  89. package/.output/server/chunks/build/{api-BY6ji7RC.mjs → api-B4Om0mEc.mjs} +4 -3
  90. package/.output/server/chunks/build/api-B4Om0mEc.mjs.map +1 -0
  91. package/.output/server/chunks/build/{apiClient-D281qrK2.mjs → apiClient-BvXtNzC8.mjs} +2 -2
  92. package/.output/server/chunks/build/apiClient-BvXtNzC8.mjs.map +1 -0
  93. package/.output/server/chunks/build/channel-templates-gdCLajKy.mjs +3 -2
  94. package/.output/server/chunks/build/channel-templates-gdCLajKy.mjs.map +1 -1
  95. package/.output/server/chunks/build/constants-HPHJvjne.mjs +2 -1
  96. package/.output/server/chunks/build/constants-HPHJvjne.mjs.map +1 -1
  97. package/.output/server/chunks/build/{daq-N69AOtgw.mjs → daq-D0kLscVr.mjs} +15 -13
  98. package/.output/server/chunks/build/daq-D0kLscVr.mjs.map +1 -0
  99. package/.output/server/chunks/build/{dcw-CN9d3Rs7.mjs → dcw-DuhEyu7S.mjs} +11 -10
  100. package/.output/server/chunks/build/dcw-DuhEyu7S.mjs.map +1 -0
  101. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs +20 -0
  102. package/.output/server/chunks/build/dcw-driver-badge-Df5wL_ZA.mjs.map +1 -0
  103. package/.output/server/chunks/build/{default-CXUe4HL7.mjs → default-aFGiNebw.mjs} +6 -4
  104. package/.output/server/chunks/build/{default-CXUe4HL7.mjs.map → default-aFGiNebw.mjs.map} +1 -1
  105. package/.output/server/chunks/build/hitl-ePh3G3ue.mjs +132 -0
  106. package/.output/server/chunks/build/hitl-ePh3G3ue.mjs.map +1 -0
  107. package/.output/server/chunks/build/{logs-BcAjU1Ps.mjs → logs-BlOalbsZ.mjs} +11 -9
  108. package/.output/server/chunks/build/logs-BlOalbsZ.mjs.map +1 -0
  109. package/.output/server/chunks/build/monitor-DX_K0WMq.mjs +3 -2
  110. package/.output/server/chunks/build/{operations-OFHYXwh4.mjs → operations-BD6LK-Yz.mjs} +10 -8
  111. package/.output/server/chunks/build/operations-BD6LK-Yz.mjs.map +1 -0
  112. package/.output/server/chunks/build/{pages-CRMeXrxG.mjs → pages-DloBBvU5.mjs} +7 -6
  113. package/.output/server/chunks/build/pages-DloBBvU5.mjs.map +1 -0
  114. package/.output/server/chunks/build/permissions-BvmodvsO.mjs +3 -2
  115. package/.output/server/chunks/build/permissions-BvmodvsO.mjs.map +1 -1
  116. package/.output/server/chunks/build/plugins-NAS9MQ5r.mjs +3 -2
  117. package/.output/server/chunks/build/plugins-NAS9MQ5r.mjs.map +1 -1
  118. package/.output/server/chunks/build/schedules-D8vYHgQ5.mjs +2 -1
  119. package/.output/server/chunks/build/settings-B7HA-sdb.mjs +3 -2
  120. package/.output/server/chunks/build/settings-B7HA-sdb.mjs.map +1 -1
  121. package/.output/server/chunks/build/teams-wM-MdLv9.mjs +2 -1
  122. package/.output/server/chunks/build/teams-wM-MdLv9.mjs.map +1 -1
  123. package/.output/server/chunks/build/tokens-CloWk4x_.mjs +3 -2
  124. package/.output/server/chunks/build/tokens-CloWk4x_.mjs.map +1 -1
  125. package/.output/server/chunks/build/{town-BMlctE4m.mjs → town-B2gBu_ZE.mjs} +12 -9
  126. package/.output/server/chunks/build/town-B2gBu_ZE.mjs.map +1 -0
  127. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  128. package/.output/server/chunks/build/useAgentHarnessOptions-BnFCh23W.mjs +2 -1
  129. package/.output/server/chunks/build/useAgentHarnessOptions-BnFCh23W.mjs.map +1 -1
  130. package/.output/server/chunks/build/useAgentTemplateActions-DsBRUQni.mjs +2 -1
  131. package/.output/server/chunks/build/useAgentTemplateActions-DsBRUQni.mjs.map +1 -1
  132. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +2 -1
  133. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs.map +1 -1
  134. package/.output/server/chunks/build/useAgentTemplateForm-DzQ_t2Ue.mjs +2 -1
  135. package/.output/server/chunks/build/useAgentTemplateForm-DzQ_t2Ue.mjs.map +1 -1
  136. package/.output/server/chunks/build/useAgentTemplatesCatalog-Q7LgG1Af.mjs +3 -2
  137. package/.output/server/chunks/build/useAgentTemplatesCatalog-Q7LgG1Af.mjs.map +1 -1
  138. package/.output/server/chunks/build/{useAmlDatasets-BM0lZu40.mjs → useAmlDatasets-DeoE1idn.mjs} +5 -4
  139. package/.output/server/chunks/build/useAmlDatasets-DeoE1idn.mjs.map +1 -0
  140. package/.output/server/chunks/build/{useAmlEntities-BDQ8TmLL.mjs → useAmlEntities-BMLHU_39.mjs} +5 -4
  141. package/.output/server/chunks/build/useAmlEntities-BMLHU_39.mjs.map +1 -0
  142. package/.output/server/chunks/build/{useAmlEnv-DgTVwpqi.mjs → useAmlEnv-DdlyVzPu.mjs} +5 -4
  143. package/.output/server/chunks/build/useAmlEnv-DdlyVzPu.mjs.map +1 -0
  144. package/.output/server/chunks/build/{useAmlExperiments-BtyW32PO.mjs → useAmlExperiments-Dloi834i.mjs} +5 -4
  145. package/.output/server/chunks/build/useAmlExperiments-Dloi834i.mjs.map +1 -0
  146. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs +2 -1
  147. package/.output/server/chunks/build/useAmlFormat-C2sl3MGB.mjs.map +1 -1
  148. package/.output/server/chunks/build/{useAmlJobs-fk-H5Rp5.mjs → useAmlJobs--a_1ovew.mjs} +5 -4
  149. package/.output/server/chunks/build/useAmlJobs--a_1ovew.mjs.map +1 -0
  150. package/.output/server/chunks/build/{useAmlModels-hgyVHoAq.mjs → useAmlModels-D7MuOWOy.mjs} +5 -4
  151. package/.output/server/chunks/build/useAmlModels-D7MuOWOy.mjs.map +1 -0
  152. package/.output/server/chunks/build/{useAmlNotes-BjbYNADm.mjs → useAmlNotes-CTZe-GI0.mjs} +5 -4
  153. package/.output/server/chunks/build/useAmlNotes-CTZe-GI0.mjs.map +1 -0
  154. package/.output/server/chunks/build/{useAmlPredict-U24-SZNA.mjs → useAmlPredict-BToRrVRV.mjs} +5 -4
  155. package/.output/server/chunks/build/useAmlPredict-BToRrVRV.mjs.map +1 -0
  156. package/.output/server/chunks/build/{useDaqAddNode-kW7uTSMQ.mjs → useDaqAddNode-CaOCbe4-.mjs} +6 -5
  157. package/.output/server/chunks/build/useDaqAddNode-CaOCbe4-.mjs.map +1 -0
  158. package/.output/server/chunks/build/{useDaqDetailBinding-cpBz4hSL.mjs → useDaqDetailBinding-C7AbGIdP.mjs} +6 -5
  159. package/.output/server/chunks/build/useDaqDetailBinding-C7AbGIdP.mjs.map +1 -0
  160. package/.output/server/chunks/build/{useDaqDetailFrames-BZGtKKXW.mjs → useDaqDetailFrames-CmAEdbAL.mjs} +5 -4
  161. package/.output/server/chunks/build/useDaqDetailFrames-CmAEdbAL.mjs.map +1 -0
  162. package/.output/server/chunks/build/{useDaqDetailHistory-DtSTfyMi.mjs → useDaqDetailHistory-pfi6zXWU.mjs} +5 -4
  163. package/.output/server/chunks/build/useDaqDetailHistory-pfi6zXWU.mjs.map +1 -0
  164. package/.output/server/chunks/build/{useDaqDetailNode-D_vhG0jF.mjs → useDaqDetailNode-qT7MjqJ7.mjs} +8 -7
  165. package/.output/server/chunks/build/useDaqDetailNode-qT7MjqJ7.mjs.map +1 -0
  166. package/.output/server/chunks/build/{useDaqDetailParams-JfqHvTxr.mjs → useDaqDetailParams-CrTMDs-2.mjs} +6 -5
  167. package/.output/server/chunks/build/useDaqDetailParams-CrTMDs-2.mjs.map +1 -0
  168. package/.output/server/chunks/build/{useDaqFilters-BUQtZ82a.mjs → useDaqFilters-CMysN13f.mjs} +8 -7
  169. package/.output/server/chunks/build/useDaqFilters-CMysN13f.mjs.map +1 -0
  170. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +2 -1
  171. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs.map +1 -1
  172. package/.output/server/chunks/build/{useDaqOptimizations-Ct-TSXxy.mjs → useDaqOptimizations-Coq5lsfM.mjs} +5 -4
  173. package/.output/server/chunks/build/useDaqOptimizations-Coq5lsfM.mjs.map +1 -0
  174. package/.output/server/chunks/build/{useDaqStream-wOxZcMDA.mjs → useDaqStream-DhzdoyIR.mjs} +3 -3
  175. package/.output/server/chunks/build/{useDaqStream-wOxZcMDA.mjs.map → useDaqStream-DhzdoyIR.mjs.map} +1 -1
  176. package/.output/server/chunks/build/{useDaqTemplates-BqQRdrIm.mjs → useDaqTemplates-C7GzQmdJ.mjs} +6 -5
  177. package/.output/server/chunks/build/useDaqTemplates-C7GzQmdJ.mjs.map +1 -0
  178. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs +2 -1
  179. package/.output/server/chunks/build/useDashboardCharts-D45083s_.mjs.map +1 -1
  180. package/.output/server/chunks/build/{useDashboardData-DWJ6vHjm.mjs → useDashboardData-DgJcGJaF.mjs} +6 -5
  181. package/.output/server/chunks/build/useDashboardData-DgJcGJaF.mjs.map +1 -0
  182. package/.output/server/chunks/build/{useDcwAddNode-C1HDP3yG.mjs → useDcwAddNode-C9DbEKHi.mjs} +38 -5
  183. package/.output/server/chunks/build/useDcwAddNode-C9DbEKHi.mjs.map +1 -0
  184. package/.output/server/chunks/build/{useDcwCards-ETEsHvVy.mjs → useDcwCards-VDoMYG7l.mjs} +5 -4
  185. package/.output/server/chunks/build/useDcwCards-VDoMYG7l.mjs.map +1 -0
  186. package/.output/server/chunks/build/{useDcwDetailScope-QTr1G6Oe.mjs → useDcwDetailScope-CL97tJdJ.mjs} +7 -6
  187. package/.output/server/chunks/build/useDcwDetailScope-CL97tJdJ.mjs.map +1 -0
  188. package/.output/server/chunks/build/{useDcwDetailTemplates-Djt-0Vse.mjs → useDcwDetailTemplates-OLmjMSGD.mjs} +5 -4
  189. package/.output/server/chunks/build/useDcwDetailTemplates-OLmjMSGD.mjs.map +1 -0
  190. package/.output/server/chunks/build/{useDcwFilter-FfVlDdyS.mjs → useDcwFilter-Bs9C6-h_.mjs} +5 -4
  191. package/.output/server/chunks/build/useDcwFilter-Bs9C6-h_.mjs.map +1 -0
  192. package/.output/server/chunks/build/{useDcwLedger-BLoMmcu1.mjs → useDcwLedger-Bbf_iFOY.mjs} +5 -4
  193. package/.output/server/chunks/build/useDcwLedger-Bbf_iFOY.mjs.map +1 -0
  194. package/.output/server/chunks/build/{useDcwLineMutations-BMC5BTWU.mjs → useDcwLineMutations-Bhtuqw7J.mjs} +5 -4
  195. package/.output/server/chunks/build/useDcwLineMutations-Bhtuqw7J.mjs.map +1 -0
  196. package/.output/server/chunks/build/{useDcwLineRun-74gN_s6T.mjs → useDcwLineRun-CGqZSnG4.mjs} +5 -4
  197. package/.output/server/chunks/build/useDcwLineRun-CGqZSnG4.mjs.map +1 -0
  198. package/.output/server/chunks/build/useDcwParamApprovals-BBwdFsKv.mjs +119 -0
  199. package/.output/server/chunks/build/useDcwParamApprovals-BBwdFsKv.mjs.map +1 -0
  200. package/.output/server/chunks/build/{useDcwProducts-D-zrMaeV.mjs → useDcwProducts-BoBkJqpv.mjs} +5 -4
  201. package/.output/server/chunks/build/useDcwProducts-BoBkJqpv.mjs.map +1 -0
  202. package/.output/server/chunks/build/{useDcwQuery-7tX4QYmv.mjs → useDcwQuery-DP7b2qb6.mjs} +5 -4
  203. package/.output/server/chunks/build/useDcwQuery-DP7b2qb6.mjs.map +1 -0
  204. package/.output/server/chunks/build/{useDcwQuickActions-C-tgcXIr.mjs → useDcwQuickActions-DHRiA9KN.mjs} +5 -4
  205. package/.output/server/chunks/build/useDcwQuickActions-DHRiA9KN.mjs.map +1 -0
  206. package/.output/server/chunks/build/{useDcwRecipes-FVk5gDLV.mjs → useDcwRecipes-CIMeH2oF.mjs} +5 -4
  207. package/.output/server/chunks/build/useDcwRecipes-CIMeH2oF.mjs.map +1 -0
  208. package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs → useDcwStream-B9ugUWRq.mjs} +10 -3
  209. package/.output/server/chunks/build/{useDcwStream-D04kCV3J.mjs.map → useDcwStream-B9ugUWRq.mjs.map} +1 -1
  210. package/.output/server/chunks/build/{useDcwTemplates-LDZffy4u.mjs → useDcwTemplates-M_-qjV8E.mjs} +5 -4
  211. package/.output/server/chunks/build/useDcwTemplates-M_-qjV8E.mjs.map +1 -0
  212. package/.output/server/chunks/build/{useDcwWrites-B22mwliK.mjs → useDcwWrites-D94dAzqr.mjs} +5 -4
  213. package/.output/server/chunks/build/useDcwWrites-D94dAzqr.mjs.map +1 -0
  214. package/.output/server/chunks/build/{useDeviceTwins-CbVad1M3.mjs → useDeviceTwins-BqwVJaZg.mjs} +2 -2
  215. package/.output/server/chunks/build/{useDeviceTwins-CbVad1M3.mjs.map → useDeviceTwins-BqwVJaZg.mjs.map} +1 -1
  216. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs +2 -1
  217. package/.output/server/chunks/build/useLogsFormat-B-o4MHy7.mjs.map +1 -1
  218. package/.output/server/chunks/build/{useLogsManual-COfCyUtj.mjs → useLogsManual-CMjD62nt.mjs} +5 -4
  219. package/.output/server/chunks/build/useLogsManual-CMjD62nt.mjs.map +1 -0
  220. package/.output/server/chunks/build/{useLogsQuery-CRAm2hmS.mjs → useLogsQuery-2x1mKxT1.mjs} +5 -4
  221. package/.output/server/chunks/build/useLogsQuery-2x1mKxT1.mjs.map +1 -0
  222. package/.output/server/chunks/build/{useLogsScope-ClNijVj4.mjs → useLogsScope-04cUJCU-.mjs} +5 -4
  223. package/.output/server/chunks/build/useLogsScope-04cUJCU-.mjs.map +1 -0
  224. package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs +3 -2
  225. package/.output/server/chunks/build/useMonitorColumns-DhYvkLDq.mjs.map +1 -1
  226. package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs +3 -2
  227. package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs.map +1 -1
  228. package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs +2 -1
  229. package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs.map +1 -1
  230. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +2 -1
  231. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs.map +1 -1
  232. package/.output/server/chunks/build/{useOperationsFeed-CeXeHqUK.mjs → useOperationsFeed-DsA2ym7M.mjs} +5 -4
  233. package/.output/server/chunks/build/useOperationsFeed-DsA2ym7M.mjs.map +1 -0
  234. package/.output/server/chunks/build/{useOpsLog-CgnNG7_n.mjs → useOpsLog-SnWPuRtK.mjs} +2 -2
  235. package/.output/server/chunks/build/{useOpsLog-CgnNG7_n.mjs.map → useOpsLog-SnWPuRtK.mjs.map} +1 -1
  236. package/.output/server/chunks/build/useTeamActions-BOLQkYxg.mjs +2 -1
  237. package/.output/server/chunks/build/useTeamActions-BOLQkYxg.mjs.map +1 -1
  238. package/.output/server/chunks/build/useTeamAddMemberDialog-BCgrLPxI.mjs +2 -1
  239. package/.output/server/chunks/build/useTeamAddMemberDialog-BCgrLPxI.mjs.map +1 -1
  240. package/.output/server/chunks/build/useTeamCreateDialog-CJk40LqS.mjs +2 -1
  241. package/.output/server/chunks/build/useTeamCreateDialog-CJk40LqS.mjs.map +1 -1
  242. package/.output/server/chunks/build/useTeamDeployDialog-49hdUXQP.mjs +2 -1
  243. package/.output/server/chunks/build/useTeamDeployDialog-49hdUXQP.mjs.map +1 -1
  244. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +2 -1
  245. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs.map +1 -1
  246. package/.output/server/chunks/build/useTeamPluginDialog-Dh-QOoiU.mjs +2 -1
  247. package/.output/server/chunks/build/useTeamPluginDialog-Dh-QOoiU.mjs.map +1 -1
  248. package/.output/server/chunks/build/useTeamsCatalog-HBSyKt5P.mjs +3 -2
  249. package/.output/server/chunks/build/useTeamsCatalog-HBSyKt5P.mjs.map +1 -1
  250. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +2 -1
  251. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs.map +1 -1
  252. package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs +3 -2
  253. package/.output/server/chunks/build/useTokenCreate-DkYvEQUD.mjs.map +1 -1
  254. package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs +3 -2
  255. package/.output/server/chunks/build/useTokenRename-DOCP4aeI.mjs.map +1 -1
  256. package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs +3 -2
  257. package/.output/server/chunks/build/useTokenReveal-CybwwflV.mjs.map +1 -1
  258. package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs +3 -2
  259. package/.output/server/chunks/build/useTokensList-BLiMvrc4.mjs.map +1 -1
  260. package/.output/server/chunks/build/useWorkbenchAuth-DqjBX-6w.mjs +3 -2
  261. package/.output/server/chunks/build/useWorkbenchAuth-DqjBX-6w.mjs.map +1 -1
  262. package/.output/server/chunks/build/{useWorkbenchWorkspaces-DgiSCzsX.mjs → useWorkbenchWorkspaces-GQVU9BLv.mjs} +6 -4
  263. package/.output/server/chunks/build/useWorkbenchWorkspaces-GQVU9BLv.mjs.map +1 -0
  264. package/.output/server/chunks/build/useWorkshopApi-C9sTYu1F.mjs +1 -1
  265. package/.output/server/chunks/build/{useWorkshopWs-Bm80bLn7.mjs → useWorkshopWs-CgeCsaYJ.mjs} +4 -128
  266. package/.output/server/chunks/build/useWorkshopWs-CgeCsaYJ.mjs.map +1 -0
  267. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs +3 -2
  268. package/.output/server/chunks/build/useWorkspaceAuth-Dlvj9csD.mjs.map +1 -1
  269. package/.output/server/chunks/build/{useWorkspaceChannels-D61Al2dr.mjs → useWorkspaceChannels-B13vROC1.mjs} +5 -3
  270. package/.output/server/chunks/build/useWorkspaceChannels-B13vROC1.mjs.map +1 -0
  271. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs +2 -1
  272. package/.output/server/chunks/build/useWorkspacePanels-CTwREmq0.mjs.map +1 -1
  273. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs +2 -1
  274. package/.output/server/chunks/build/useWorkspaceShell-BCypjjjE.mjs.map +1 -1
  275. package/.output/server/chunks/build/users-CCf5PgRs.mjs +3 -2
  276. package/.output/server/chunks/build/users-CCf5PgRs.mjs.map +1 -1
  277. package/.output/server/chunks/build/{workshop-FQ4YzooB.mjs → workshop-BDqWzJtr.mjs} +6 -4
  278. package/.output/server/chunks/build/workshop-BDqWzJtr.mjs.map +1 -0
  279. package/.output/server/chunks/build/workspaces-CmW0cpOt.mjs +1 -1
  280. package/.output/server/chunks/routes/api/health.get.mjs +2 -1
  281. package/.output/server/chunks/routes/api/health.get.mjs.map +1 -1
  282. package/.output/server/chunks/routes/api/index.get.mjs +2 -1
  283. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  284. package/.output/server/chunks/routes/api/index.post.mjs +2 -1
  285. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  286. package/.output/server/chunks/routes/api/mcp/workshop.mjs +3 -2
  287. package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
  288. package/.output/server/chunks/routes/api/metrics.mjs +2 -1
  289. package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
  290. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +2 -1
  291. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
  292. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +2 -1
  293. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -1
  294. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +2 -1
  295. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs.map +1 -1
  296. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +2 -1
  297. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -1
  298. package/.output/server/chunks/routes/api/system/backup/list.get.mjs +2 -1
  299. package/.output/server/chunks/routes/api/system/backup/list.get.mjs.map +1 -1
  300. package/.output/server/chunks/routes/api/system/backup/run.post.mjs +4 -3
  301. package/.output/server/chunks/routes/api/system/backup/run.post.mjs.map +1 -1
  302. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +2 -1
  303. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs.map +1 -1
  304. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +2 -1
  305. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
  306. package/.output/server/chunks/routes/api/system/config.get.mjs +2 -1
  307. package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -1
  308. package/.output/server/chunks/routes/api/system/index.get.mjs +2 -1
  309. package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -1
  310. package/.output/server/chunks/routes/api/system/index.patch.mjs +2 -1
  311. package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
  312. package/.output/server/chunks/routes/api/system/index.post.mjs +2 -1
  313. package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/system/index2.get.mjs +2 -1
  315. package/.output/server/chunks/routes/api/system/index2.get.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +2 -1
  317. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -1
  318. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +2 -1
  319. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -1
  320. package/.output/server/chunks/routes/api/system/monitor.get.mjs +2 -1
  321. package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -1
  322. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +2 -1
  323. package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
  324. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +2 -1
  325. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
  326. package/.output/server/chunks/routes/api/system/timezone.get.mjs +2 -1
  327. package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -1
  328. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +2 -1
  329. package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
  330. package/.output/server/chunks/routes/api/users/_id_.get.mjs +2 -1
  331. package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/users/_id_.put.mjs +2 -1
  333. package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
  334. package/.output/server/chunks/routes/api/users/index.get.mjs +2 -1
  335. package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -1
  336. package/.output/server/chunks/routes/api/users/index.post.mjs +2 -1
  337. package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -1
  338. package/.output/server/chunks/routes/api/users/login.post.mjs +2 -1
  339. package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/users/logout.post.mjs +2 -1
  341. package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/users/me.get.mjs +2 -1
  343. package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -1
  344. package/.output/server/chunks/routes/api/users/register.post.mjs +2 -1
  345. package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
  346. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +2 -1
  347. package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +2 -1
  349. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +2 -1
  351. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +2 -1
  353. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -1
  354. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +2 -1
  355. package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -1
  356. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +2 -1
  357. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -1
  358. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +2 -1
  359. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
  360. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +2 -1
  361. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -1
  362. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +2 -1
  363. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -1
  364. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +2 -1
  365. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -1
  366. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +2 -1
  367. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  368. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs +2 -1
  369. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs.map +1 -1
  370. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs +2 -1
  371. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs.map +1 -1
  372. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +2 -1
  373. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -1
  374. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +2 -1
  375. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  376. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +2 -1
  377. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -1
  378. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +2 -1
  379. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  380. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +2 -1
  381. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -1
  382. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +2 -1
  383. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -1
  384. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +2 -1
  385. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -1
  386. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +2 -1
  387. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
  388. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +2 -1
  389. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -1
  390. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +2 -1
  391. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs.map +1 -1
  392. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +2 -1
  393. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +2 -1
  395. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
  396. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +2 -1
  397. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs.map +1 -1
  398. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +2 -1
  399. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs.map +1 -1
  400. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +2 -1
  401. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
  402. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +2 -1
  403. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
  404. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +2 -1
  405. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
  406. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +2 -1
  407. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs.map +1 -1
  408. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +2 -1
  409. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs.map +1 -1
  410. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +2 -1
  411. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -1
  412. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +2 -1
  413. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
  414. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +2 -1
  415. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
  416. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +2 -1
  417. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -1
  418. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +2 -1
  419. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -1
  420. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +2 -1
  421. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs.map +1 -1
  422. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +2 -1
  423. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs.map +1 -1
  424. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +2 -1
  425. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -1
  426. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +2 -1
  427. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs.map +1 -1
  428. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +2 -1
  429. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs.map +1 -1
  430. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +2 -1
  431. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs.map +1 -1
  432. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +2 -1
  433. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs.map +1 -1
  434. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +2 -1
  435. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs.map +1 -1
  436. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +2 -1
  437. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs.map +1 -1
  438. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +2 -1
  439. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs.map +1 -1
  440. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +2 -1
  441. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs.map +1 -1
  442. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +2 -1
  443. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs.map +1 -1
  444. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +2 -1
  445. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -1
  446. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +2 -1
  447. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -1
  448. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +2 -1
  449. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -1
  450. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +2 -1
  451. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -1
  452. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +2 -1
  453. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -1
  454. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +2 -1
  455. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -1
  456. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +2 -1
  457. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -1
  458. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +2 -1
  459. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -1
  460. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -1
  461. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -1
  462. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +2 -1
  463. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -1
  464. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -1
  465. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -1
  466. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +2 -1
  467. package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -1
  468. package/.output/server/chunks/routes/api/workshop/caller.mjs +2 -1
  469. package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -1
  470. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +3 -2
  471. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  472. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +2 -1
  473. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -1
  474. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +2 -1
  475. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -1
  476. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +2 -1
  477. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
  478. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +2 -1
  479. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -1
  480. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -1
  481. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -1
  482. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +2 -1
  483. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -1
  484. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +2 -1
  485. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -1
  486. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +2 -1
  487. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -1
  488. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +2 -1
  489. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -1
  490. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +2 -1
  491. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -1
  492. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +2 -1
  493. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -1
  494. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +2 -1
  495. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -1
  496. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +2 -1
  497. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -1
  498. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +2 -1
  499. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -1
  500. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +2 -1
  501. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  502. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +2 -1
  503. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs.map +1 -1
  504. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +2 -1
  505. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs.map +1 -1
  506. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +2 -1
  507. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs.map +1 -1
  508. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +2 -1
  509. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs.map +1 -1
  510. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +2 -1
  511. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -1
  512. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +2 -1
  513. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  514. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -1
  515. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
  516. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +2 -1
  517. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs.map +1 -1
  518. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +2 -1
  519. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -1
  520. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +2 -1
  521. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -1
  522. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +2 -1
  523. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -1
  524. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +2 -1
  525. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +2 -1
  527. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -1
  528. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +2 -1
  529. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -1
  530. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +2 -1
  531. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs.map +1 -1
  532. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +2 -1
  533. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs.map +1 -1
  534. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +2 -1
  535. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs.map +1 -1
  536. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +2 -1
  537. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs.map +1 -1
  538. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +2 -1
  539. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs.map +1 -1
  540. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +2 -1
  541. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs.map +1 -1
  542. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +2 -1
  543. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs.map +1 -1
  544. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +2 -1
  545. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -1
  546. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +2 -1
  547. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -1
  548. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -1
  549. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -1
  550. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +2 -1
  551. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -1
  552. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +2 -1
  553. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs.map +1 -1
  554. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +2 -1
  555. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -1
  556. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -1
  557. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  558. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +2 -1
  559. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  560. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +2 -1
  561. package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -1
  562. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +5 -4
  563. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  564. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -1
  565. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  566. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +2 -1
  567. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs.map +1 -1
  568. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +2 -1
  569. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  570. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +2 -1
  571. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
  572. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +2 -1
  573. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  574. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -1
  575. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -1
  576. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -1
  577. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -1
  578. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +2 -1
  579. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  580. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -1
  581. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  582. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -1
  583. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  584. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -1
  585. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  586. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -1
  587. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
  588. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -1
  589. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  590. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -1
  591. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -1
  592. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -1
  593. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
  594. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -1
  595. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
  596. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -1
  597. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  598. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -1
  599. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  600. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +2 -1
  601. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs.map +1 -1
  602. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -1
  603. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  604. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -1
  605. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
  606. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -1
  607. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  608. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -1
  609. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  610. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -1
  611. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
  612. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -1
  613. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  614. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -1
  615. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -1
  616. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -1
  617. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  618. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -1
  619. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  620. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -1
  621. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  622. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -1
  623. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  624. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -1
  625. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  626. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -1
  627. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
  628. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -1
  629. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  630. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -1
  631. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
  632. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -1
  633. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  634. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +3 -2
  635. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -1
  636. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +2 -1
  637. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -1
  638. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -1
  639. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -1
  640. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -1
  641. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  642. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -1
  643. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  644. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -1
  645. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  646. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -1
  647. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -1
  648. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -1
  649. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -1
  650. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +36 -0
  651. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs.map +1 -0
  652. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -1
  653. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -1
  654. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -1
  655. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -1
  656. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -1
  657. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  658. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -1
  659. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  660. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +2 -1
  661. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
  662. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +2 -1
  663. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -1
  664. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +3 -2
  665. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -1
  666. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +3 -2
  667. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -1
  668. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -1
  669. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -1
  670. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -1
  671. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -1
  672. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -1
  673. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -1
  674. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -1
  675. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -1
  676. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +2 -1
  677. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -1
  678. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -1
  679. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -1
  680. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +2 -1
  681. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
  682. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -1
  683. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  684. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +2 -1
  685. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs.map +1 -1
  686. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -1
  687. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  688. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -1
  689. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  690. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -1
  691. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -1
  692. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +3 -2
  693. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -1
  694. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +3 -2
  695. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -1
  696. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -1
  697. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  698. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +2 -1
  699. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -1
  700. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +2 -1
  701. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -1
  702. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -1
  703. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -1
  704. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -1
  705. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -1
  706. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +3 -2
  707. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -1
  708. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +3 -2
  709. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -1
  710. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +3 -2
  711. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
  712. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +3 -2
  713. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs.map +1 -1
  714. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +3 -2
  715. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  716. package/.output/server/chunks/routes/api/workshop/index.get.mjs +2 -1
  717. package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -1
  718. package/.output/server/chunks/routes/api/workshop/index.post.mjs +2 -1
  719. package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
  720. package/.output/server/chunks/routes/api/workshop/index.put.mjs +3 -2
  721. package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -1
  722. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +2 -1
  723. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  724. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +2 -1
  725. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -1
  726. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +2 -1
  727. package/.output/server/chunks/routes/api/workshop/index12.get.mjs.map +1 -1
  728. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +2 -1
  729. package/.output/server/chunks/routes/api/workshop/index13.get.mjs.map +1 -1
  730. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +2 -1
  731. package/.output/server/chunks/routes/api/workshop/index14.get.mjs.map +1 -1
  732. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +2 -1
  733. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  734. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +2 -1
  735. package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
  736. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +2 -1
  737. package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -1
  738. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -1
  739. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  740. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -1
  741. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  742. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -1
  743. package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
  744. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +2 -1
  745. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  746. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -1
  747. package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
  748. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +2 -1
  749. package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
  750. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -1
  751. package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
  752. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +2 -1
  753. package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -1
  754. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +2 -1
  755. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  756. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +2 -1
  757. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  758. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +2 -1
  759. package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
  760. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +2 -1
  761. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  762. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +2 -1
  763. package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -1
  764. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +2 -1
  765. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -1
  766. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +2 -1
  767. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -1
  768. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +2 -1
  769. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -1
  770. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +2 -1
  771. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs.map +1 -1
  772. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +3 -2
  773. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
  774. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +3 -2
  775. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
  776. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +2 -1
  777. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -1
  778. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +2 -1
  779. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -1
  780. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +3 -2
  781. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -1
  782. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +3 -2
  783. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -1
  784. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +2 -1
  785. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -1
  786. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +2 -1
  787. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs.map +1 -1
  788. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +2 -1
  789. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs.map +1 -1
  790. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +2 -1
  791. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs.map +1 -1
  792. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +2 -1
  793. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs.map +1 -1
  794. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +2 -1
  795. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs.map +1 -1
  796. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +2 -1
  797. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -1
  798. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +2 -1
  799. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -1
  800. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +2 -1
  801. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -1
  802. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +2 -1
  803. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs.map +1 -1
  804. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +2 -1
  805. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -1
  806. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +2 -1
  807. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -1
  808. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +2 -1
  809. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs.map +1 -1
  810. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +2 -1
  811. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -1
  812. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +2 -1
  813. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -1
  814. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -1
  815. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -1
  816. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +2 -1
  817. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -1
  818. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +2 -1
  819. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -1
  820. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +2 -1
  821. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs.map +1 -1
  822. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +2 -1
  823. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs.map +1 -1
  824. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +2 -1
  825. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -1
  826. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +2 -1
  827. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -1
  828. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +2 -1
  829. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -1
  830. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +2 -1
  831. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -1
  832. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +2 -1
  833. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -1
  834. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +2 -1
  835. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
  836. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +3 -2
  837. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -1
  838. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +2 -1
  839. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -1
  840. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +2 -1
  841. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -1
  842. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +2 -1
  843. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -1
  844. package/.output/server/chunks/routes/renderer.mjs +2 -2
  845. package/.output/server/chunks/virtual/entry.mjs +90 -57
  846. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  847. package/.output/server/index.mjs +2 -1
  848. package/.output/server/index.mjs.map +1 -1
  849. package/.output/server/package.json +1 -1
  850. package/README-zh.md +3 -3
  851. package/README.md +5 -5
  852. package/app/components/dcw/DcwAddNodeModal.vue +54 -4
  853. package/app/components/dcw/DcwNodesTable.vue +15 -0
  854. package/app/components/dcw/DcwParamApprovalCard.vue +110 -0
  855. package/app/components/dcw/DcwRecipeEditModal.vue +10 -1
  856. package/app/components/workshop/town/components/TownAgentBindings.vue +10 -1
  857. package/app/composables/workshop/useDcwStream.ts +4 -0
  858. package/app/pages/dcw/[id].vue +19 -1
  859. package/app/pages/dcw/composables/useDcwAddNode.ts +35 -1
  860. package/app/pages/dcw/composables/useDcwParamApprovals.ts +119 -0
  861. package/app/utils/dcw-driver-badge.ts +16 -0
  862. package/docs/cli.en.md +1 -1
  863. package/i18n/locales/en.ts +14 -0
  864. package/i18n/locales/zh-CN.ts +14 -0
  865. package/package.json +1 -1
  866. package/scripts/_dbg-protocol-matrix.mjs +8 -1
  867. package/server/api/workshop/dcw/mes-test-read.post.ts +24 -0
  868. package/server/plugins/workshop.ts +4 -0
  869. package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +7 -3
  870. package/server/services/workshop/agents/industrial/index.ts +2 -0
  871. package/server/services/workshop/agents/industrial/mes-tools.ts +135 -0
  872. package/server/services/workshop/agents/industrial/ops-tools.ts +79 -8
  873. package/server/services/workshop/agents/industrial-context.ts +19 -0
  874. package/server/services/workshop/agents/tool-classes.ts +10 -0
  875. package/server/services/workshop/db/database/schema.ts +32 -0
  876. package/server/services/workshop/db/schema.sql +32 -0
  877. package/server/services/workshop/dcw/dcw-controller/recipes.ts +9 -6
  878. package/server/services/workshop/dcw/dcw-recipe.repo.ts +8 -2
  879. package/server/services/workshop/dcw/drivers/mes-rest.ts +543 -0
  880. package/server/services/workshop/dcw/drivers/registry.ts +2 -0
  881. package/server/services/workshop/dcw/drivers/shared.ts +30 -0
  882. package/server/services/workshop/mes/mes-controller.ts +410 -0
  883. package/server/services/workshop/mes/mes-datasets.ts +441 -0
  884. package/server/services/workshop/runtime/manager/state.ts +11 -0
  885. package/server/services/workshop/runtime/scheduler-loop/tick.ts +5 -1
  886. package/server/services/workshop/runtime/task-engine/helpers.ts +3 -1
  887. package/shared/config/schema.json +2 -1
  888. package/shared/daq-protocol.ts +2 -1
  889. package/shared/dcw-protocol/catalog.ts +25 -1
  890. package/.output/public/_nuxt/BUD1CNvB2.js +0 -1
  891. package/.output/public/_nuxt/BhlRInVa.js +0 -1
  892. package/.output/public/_nuxt/CR-ILcRu2.js +0 -1
  893. package/.output/public/_nuxt/CZLnEnbE.js +0 -14
  894. package/.output/public/_nuxt/Chxx-DIE2.js +0 -1
  895. package/.output/public/_nuxt/D6lZftfy.js +0 -1
  896. package/.output/public/_nuxt/DAGuPgXa.js +0 -2
  897. package/.output/public/_nuxt/DWsgRq2c.js +0 -1
  898. package/.output/public/_nuxt/DxagrjB8.js +0 -1
  899. package/.output/public/_nuxt/UN3nSFjj2.js +0 -1
  900. package/.output/public/_nuxt/Z-Z6EhXs.js +0 -1
  901. package/.output/public/_nuxt/_id_.rdGx-UDx.css +0 -1
  902. package/.output/public/_nuxt/_kUzq9VF.js +0 -1
  903. package/.output/public/_nuxt/builds/meta/5ccc21c2-aba0-4b63-9a13-410e0569e345.json +0 -1
  904. package/.output/public/_nuxt/o9rJf00k.js +0 -1
  905. package/.output/server/chunks/build/TownView-fP9BiALv.mjs.map +0 -1
  906. package/.output/server/chunks/build/_id_-CDlur81q.mjs.map +0 -1
  907. package/.output/server/chunks/build/_id_-CK-QFrDV.mjs.map +0 -1
  908. package/.output/server/chunks/build/aml-DsgtDLWF.mjs.map +0 -1
  909. package/.output/server/chunks/build/api-BY6ji7RC.mjs.map +0 -1
  910. package/.output/server/chunks/build/apiClient-D281qrK2.mjs.map +0 -1
  911. package/.output/server/chunks/build/daq-N69AOtgw.mjs.map +0 -1
  912. package/.output/server/chunks/build/dcw-CN9d3Rs7.mjs.map +0 -1
  913. package/.output/server/chunks/build/logs-BcAjU1Ps.mjs.map +0 -1
  914. package/.output/server/chunks/build/operations-OFHYXwh4.mjs.map +0 -1
  915. package/.output/server/chunks/build/pages-CRMeXrxG.mjs.map +0 -1
  916. package/.output/server/chunks/build/town-BMlctE4m.mjs.map +0 -1
  917. package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs.map +0 -1
  918. package/.output/server/chunks/build/useAmlEntities-BDQ8TmLL.mjs.map +0 -1
  919. package/.output/server/chunks/build/useAmlEnv-DgTVwpqi.mjs.map +0 -1
  920. package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs.map +0 -1
  921. package/.output/server/chunks/build/useAmlJobs-fk-H5Rp5.mjs.map +0 -1
  922. package/.output/server/chunks/build/useAmlModels-hgyVHoAq.mjs.map +0 -1
  923. package/.output/server/chunks/build/useAmlNotes-BjbYNADm.mjs.map +0 -1
  924. package/.output/server/chunks/build/useAmlPredict-U24-SZNA.mjs.map +0 -1
  925. package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs.map +0 -1
  926. package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs.map +0 -1
  927. package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs.map +0 -1
  928. package/.output/server/chunks/build/useDaqDetailHistory-DtSTfyMi.mjs.map +0 -1
  929. package/.output/server/chunks/build/useDaqDetailNode-D_vhG0jF.mjs.map +0 -1
  930. package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs.map +0 -1
  931. package/.output/server/chunks/build/useDaqFilters-BUQtZ82a.mjs.map +0 -1
  932. package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs.map +0 -1
  933. package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs.map +0 -1
  934. package/.output/server/chunks/build/useDashboardData-DWJ6vHjm.mjs.map +0 -1
  935. package/.output/server/chunks/build/useDcwAddNode-C1HDP3yG.mjs.map +0 -1
  936. package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs.map +0 -1
  937. package/.output/server/chunks/build/useDcwDetailScope-QTr1G6Oe.mjs.map +0 -1
  938. package/.output/server/chunks/build/useDcwDetailTemplates-Djt-0Vse.mjs.map +0 -1
  939. package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs.map +0 -1
  940. package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs.map +0 -1
  941. package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs.map +0 -1
  942. package/.output/server/chunks/build/useDcwLineRun-74gN_s6T.mjs.map +0 -1
  943. package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs.map +0 -1
  944. package/.output/server/chunks/build/useDcwQuery-7tX4QYmv.mjs.map +0 -1
  945. package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs.map +0 -1
  946. package/.output/server/chunks/build/useDcwRecipes-FVk5gDLV.mjs.map +0 -1
  947. package/.output/server/chunks/build/useDcwTemplates-LDZffy4u.mjs.map +0 -1
  948. package/.output/server/chunks/build/useDcwWrites-B22mwliK.mjs.map +0 -1
  949. package/.output/server/chunks/build/useLogsManual-COfCyUtj.mjs.map +0 -1
  950. package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs.map +0 -1
  951. package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs.map +0 -1
  952. package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs.map +0 -1
  953. package/.output/server/chunks/build/useWorkbenchWorkspaces-DgiSCzsX.mjs.map +0 -1
  954. package/.output/server/chunks/build/useWorkshopWs-Bm80bLn7.mjs.map +0 -1
  955. package/.output/server/chunks/build/useWorkspaceChannels-D61Al2dr.mjs.map +0 -1
  956. package/.output/server/chunks/build/workshop-FQ4YzooB.mjs.map +0 -1
  957. /package/.output/public/_nuxt/{C4sQKuhk2.js → C4sQKuhk.js} +0 -0
  958. /package/.output/public/_nuxt/{Dep0Hc9w.js → Dep0Hc9w2.js} +0 -0
  959. /package/.output/public/_nuxt/{DmzmgYHb.js → DmzmgYHb2.js} +0 -0
  960. /package/.output/public/_nuxt/{BvRk9kiK2.js → DybRo6-H.js} +0 -0
  961. /package/.output/public/_nuxt/{aV6YPjg0.js → aV6YPjg02.js} +0 -0
@@ -0,0 +1 @@
1
+ import{N as e,dt as t,ft as n,g as r,mt as i,u as a}from"./CavpkQb0.js";import{Q as o,S as s,V as c,W as l,b as u,d,f,h as p,i as m,k as h,m as g,nt as _,p as v,rt as y,y as b}from"./ByMj6e7s.js";import{c as x,d as S,o as C,s as w}from"./Dqz5HiXa.js";import{t as ee}from"./Cmp8PMrA.js";import{n as T}from"./Cnrmlixo.js";import{t as E}from"./DzBbYWrw2.js";import{t as D}from"./BDNMzG2s2.js";import{t as O}from"./Bfe2qOYs.js";import{r as te}from"./Du9v6qGB2.js";import{t as k}from"./dVw8IHY62.js";import{i as A,r as j,t as M}from"./CtXOpljm2.js";import{t as N}from"./a4X3ARNm2.js";import{t as P}from"./DCPhrNWR2.js";import{t as ne}from"./QHo9mN-M2.js";import{t as re}from"./Dm_iKz8k2.js";import{t as ie}from"./BJhsCisg2.js";import{t as ae}from"./cY_5jwFz2.js";import{t as oe}from"./DUribplv2.js";import{t as se}from"./BP8TgWo02.js";import{t as ce}from"./xX7ccjDl2.js";var le={class:`aw-page-head`},ue={class:`aw-kicker`},de={class:`sub`},fe={class:`badges mono`},pe={class:`badge`},me={class:`badge`},he={class:`badge`},ge=Object.assign(D(s({__name:`DcwDetailHead`,props:{line:{},lineId:{},nodesCount:{},productsCount:{},recipesCount:{}},setup(e){return(t,r)=>(c(),p(`div`,le,[f(`div`,null,[f(`p`,ue,[f(`span`,{class:`line-chip`,style:n({background:e.line?.color??`#3aa0ff`})},null,4),b(`AGENTWORKSHOP / LINE / `+i(e.line?.name??e.lineId),1)]),f(`h1`,null,i(e.line?.name??t.$t(`dcwDetail.k1b2snna151`))+` · `+i(t.$t(`dcwDetail.k1l0iow1137`)),1),f(`p`,de,i(e.line?.description||t.$t(`dcwDetail.kzcbfki152`)),1)]),f(`div`,fe,[f(`span`,pe,i(t.$t(`dcwDetail.k45uio082`))+` `+i(e.nodesCount),1),f(`span`,me,i(t.$t(`dcwDetail.k3waz1025`))+` `+i(e.productsCount),1),f(`span`,he,i(t.$t(`dcwDetail.k48grv027`))+` `+i(e.recipesCount),1)])]))}}),[[`__scopeId`,`data-v-2c59e7e0`]]),{__name:`DcwDetailHead`}),_e={class:`aw-tile ctrl-card`},ve={class:`ctrl-left`},ye=[`title`],be={class:`ctrl-right`},xe={class:`ctrl-metrics mono`},Se=[`title`],Ce=[`title`],F=[`title`],we=Object.assign(D(s({__name:`DcwGatewayBar`,props:{running:{type:Boolean},nodesOnline:{},nodesTotal:{},writesTotal:{},writesFailed:{}},emits:[`toggle`,`open-templates`,`open-add`],setup(e,{emit:n}){let r=n;return(n,a)=>(c(),p(`section`,_e,[f(`div`,ve,[f(`button`,{class:t([`aw-pill`,{running:e.running}]),title:n.$t(`dcwDetail.k1snap154`),onClick:a[0]||=t=>r(`toggle`,e.running?`pause`:`resume`)},[f(`span`,{class:t(e.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),b(` `+i(e.running?n.$t(`dcwDetail.kplrsg153`):n.$t(`dcwDetail.knxgni9169`)),1)],10,ye)]),f(`div`,be,[f(`span`,xe,[f(`span`,null,i(n.$t(`dcwDetail.k45uio082`))+` `+i(e.nodesOnline)+`/`+i(e.nodesTotal),1),a[3]||=f(`span`,{class:`sep`},`·`,-1),f(`span`,{title:n.$t(`dcwDetail.kd3ygmn001`)},i(n.$t(`dcwDetail.k3wtib138`))+` `+i(e.writesTotal),9,Se),a[4]||=f(`span`,{class:`sep`},`·`,-1),f(`span`,{class:t({warn:e.writesFailed>0}),title:n.$t(`dcwDetail.kd3znl0002`)},i(n.$t(`dcwDetail.k3yit7139`))+` `+i(e.writesFailed),11,Ce)]),f(`button`,{class:`aw-pill outline`,title:n.$t(`dcwDetail.kc4ixly003`),onClick:a[1]||=e=>r(`open-templates`)},[a[5]||=f(`span`,{class:`i-tabler-template`},null,-1),b(` `+i(n.$t(`dcwDetail.k1972dx9020`)),1)],8,F),f(`button`,{class:`aw-pill add-btn`,onClick:a[2]||=e=>r(`open-add`)},[a[6]||=f(`span`,{class:`i-tabler-plus`},null,-1),b(` `+i(n.$t(`dcwDetail.k1976uns021`)),1)])])]))}}),[[`__scopeId`,`data-v-e18f9fc9`]]),{__name:`DcwGatewayBar`}),Te={key:0,class:`aw-tile adopt-card`},I={class:`adopt-title`},Ee={class:`adopt-list`},De=[`onClick`],Oe=[`onClick`],ke=Object.assign(D(s({__name:`DcwAdoptCard`,props:{unassignedNodes:{},unassignedProducts:{}},emits:[`adopt-node`,`adopt-product`],setup(e,{emit:t}){let n=t;return(t,r)=>e.unassignedNodes.length||e.unassignedProducts.length?(c(),p(`section`,Te,[f(`b`,I,i(t.$t(`dcwDetail.kaebkky022`)),1),f(`div`,Ee,[(c(!0),p(m,null,l(e.unassignedNodes,e=>(c(),p(`span`,{key:e.id,class:`adopt-chip`},[b(i(e.name)+` `,1),f(`button`,{class:`mini-btn`,onClick:t=>n(`adopt-node`,e.id)},i(t.$t(`dcwDetail.kyjp9fg023`)),9,De)]))),128)),(c(!0),p(m,null,l(e.unassignedProducts,e=>(c(),p(`span`,{key:e.id,class:`adopt-chip`},[b(i(e.name)+`(`+i(t.$t(`dcwDetail.k3km252140`)),1),f(`button`,{class:`mini-btn`,onClick:t=>n(`adopt-product`,e.id)},i(t.$t(`dcwDetail.kyjp9fg023`)),9,Oe)]))),128))])])):g(``,!0)}}),[[`__scopeId`,`data-v-6ad055a2`]]),{__name:`DcwAdoptCard`}),Ae={class:`aw-tile line-card`},je={class:`line-status`},Me={class:`line-info`},Ne={key:0,class:`mono dim`},Pe={key:1,class:`dim`},L={class:`line-ctl`},Fe={class:`ctl-sel`},Ie={value:``},Le=[`value`],R={class:`ctl-sel`},z=[`disabled`],Re={value:``},ze=[`value`,`disabled`],Be=[`disabled`,`title`],Ve=[`disabled`],He={key:0,class:`banner bad`,style:{"margin-top":`10px`}},Ue={key:1,class:`banner good`,style:{"margin-top":`10px`}},We=Object.assign(D(s({__name:`DcwLineRunCard`,props:h({ls:{},lineProducts:{},lineRecipes:{},lineBusy:{type:Boolean},lineMsg:{},lineErr:{}},{productId:{required:!0},productIdModifiers:{},recipeId:{required:!0},recipeIdModifiers:{}}),emits:h([`start`,`stop`],[`update:productId`,`update:recipeId`]),setup(e,{emit:n}){let r=n,a=o(e,`productId`),s=o(e,`recipeId`);return(n,o)=>(c(),p(`section`,Ae,[f(`div`,je,[f(`span`,{class:t([`line-dot`,{on:e.ls.active}])},null,2),f(`div`,Me,[f(`b`,null,i(e.ls.active?n.$t(`dcwDetail.k1pxrhx0154`):n.$t(`dcwDetail.k1b2hxmx170`)),1),e.ls.active?(c(),p(`small`,Ne,i(e.ls.productName)+` · `+i(e.ls.recipeName)+` · `+i(n.$t(`dcwDetail.k400lb075`))+` `+i(e.ls.runId)+` · `+i(n.$t(`dcwDetail.k3zkt2166`))+` `+i(e.ls.startedAt?.slice(11,19))+` `+i(n.$t(`dcwDetail.k69vag8168`))+` `+i(e.ls.taggedSamples)+` `+i(n.$t(`dcwDetail.k4118o085`)),1)):(c(),p(`small`,Pe,i(n.$t(`dcwDetail.k19pof14024`)),1))])]),f(`div`,L,[f(`label`,Fe,[f(`span`,null,i(n.$t(`dcwDetail.k3waz1025`)),1),y(f(`select`,{"onUpdate:modelValue":o[0]||=e=>a.value=e,class:`inp`,onChange:o[1]||=e=>s.value=``},[f(`option`,Ie,i(n.$t(`dcwDetail.kuisodh026`)),1),(c(!0),p(m,null,l(e.lineProducts,e=>(c(),p(`option`,{key:e.id,value:e.id},i(e.name),9,Le))),128))],544),[[w,a.value]])]),f(`label`,R,[f(`span`,null,i(n.$t(`dcwDetail.k48grv027`)),1),y(f(`select`,{"onUpdate:modelValue":o[2]||=e=>s.value=e,class:`inp`,disabled:!a.value},[f(`option`,Re,i(n.$t(`dcwDetail.kutxzsz028`)),1),(c(!0),p(m,null,l(e.lineRecipes,e=>(c(),p(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},i(e.name)+i(e.params.length===0?n.$t(`dcwDetail.k1hicmch155`):n.$t(`dcwDetail.k1lzfi4g180`,{p0:e.params.length})),9,ze))),128))],8,z),[[w,s.value]])]),e.ls.active?(c(),p(`button`,{key:1,class:`pill-btn stop`,disabled:e.lineBusy,onClick:o[4]||=e=>r(`stop`)},i(n.$t(`dcwDetail.k1xyhd2y030`)),9,Ve)):(c(),p(`button`,{key:0,class:`pill-btn`,disabled:e.lineBusy||!s.value,title:s.value?n.$t(`dcwDetail.startTip`):n.$t(`dcwDetail.startNeedRecipe`),onClick:o[3]||=e=>r(`start`)},i(n.$t(`dcwDetail.kfb8vml029`)),9,Be))]),e.lineErr?(c(),p(`p`,He,i(e.lineErr),1)):g(``,!0),e.lineMsg?(c(),p(`p`,Ue,i(e.lineMsg),1)):g(``,!0)]))}}),[[`__scopeId`,`data-v-7ef9dbe9`]]),{__name:`DcwLineRunCard`}),B={class:`modal`},Ge={class:`m-title`},V={class:`dim mono`},Ke={class:`dim tpl-hint`},qe={class:`tpl-chips`},H=[`title`],Je={class:`mono`},U={class:`sec-label`},Ye={class:`f-grid tpl-form`},Xe={class:`f`},Ze=[`placeholder`],Qe={class:`f`},$e=[`placeholder`],W={class:`f`},et=[`placeholder`],tt={class:`f`},nt=[`placeholder`],rt={class:`f`},G=[`placeholder`],it={class:`f`},at=[`placeholder`],ot={class:`f`},st={class:`f`},ct=[`value`],lt={class:`f`},ut=[`placeholder`],dt={key:0,class:`banner good`,style:{"margin-top":`10px`}},ft={key:1,class:`m-err`},K={class:`m-actions`},pt=[`disabled`],mt=Object.assign(D(s({__name:`DcwDetailTemplateModal`,props:h({templates:{},tplIcons:{},builtinCount:{},customCount:{},tplSaving:{type:Boolean},tplError:{},tplOk:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:h([`submit`,`close`],[`update:open`,`update:form`]),setup(n,{emit:r}){let a=r,{t:s}=T(),u=o(n,`open`),d=o(n,`form`);return(r,o)=>u.value?(c(),p(`div`,{key:0,class:`modal-mask`,onClick:o[11]||=S(e=>u.value=!1,[`self`])},[f(`div`,B,[f(`h3`,Ge,[b(i(r.$t(`dcwDetail.k1x4vam0031`))+` `,1),f(`small`,V,i(r.$t(`dcwDetail.k3x23c141`))+` `+i(n.builtinCount)+` · `+i(r.$t(`dcwDetail.k3t616a142`))+` `+i(n.customCount),1)]),f(`p`,Ke,i(r.$t(`dcwDetail.ke1iyud032`)),1),f(`div`,qe,[(c(!0),p(m,null,l(n.templates,n=>(c(),p(`span`,{key:n.key,class:`tpl-chip`,title:`${n.code} · ${n.min}~${n.max} ${n.unit}${n.semantics?` · ${n.semantics}`:``}`},[b(i((`catalogTplName`in r?r.catalogTplName:e(te))(e(s),n))+` `,1),f(`small`,Je,i(n.min)+`~`+i(n.max)+i(n.unit),1),f(`em`,{class:t([`tpl-tag`,{builtin:n.builtin}])},i(n.builtin?r.$t(`dcwDetail.k3x23c141`):r.$t(`dcwDetail.k3t616a142`)),3)],8,H))),128))]),f(`p`,U,i(r.$t(`dcwDetail.k169eb4s033`)),1),f(`div`,Ye,[f(`label`,Xe,[f(`span`,null,[b(i(r.$t(`dcwDetail.k1f55q76034`)),1),o[12]||=f(`em`,null,`*`,-1)]),y(f(`input`,{"onUpdate:modelValue":o[0]||=e=>d.value.name=e,class:`inp`,placeholder:r.$t(`dcwDetail.k1tooi3o004`)},null,8,Ze),[[x,d.value.name]])]),f(`label`,Qe,[f(`span`,null,i(r.$t(`dcwDetail.k1bqk219035`)),1),y(f(`input`,{"onUpdate:modelValue":o[1]||=e=>d.value.ch=e,class:`inp`,placeholder:r.$t(`dcwDetail.k698qz0005`)},null,8,$e),[[x,d.value.ch]])]),f(`label`,W,[f(`span`,null,i(r.$t(`dcwDetail.k1ayxrqb036`)),1),y(f(`input`,{"onUpdate:modelValue":o[2]||=e=>d.value.code=e,class:`inp`,placeholder:r.$t(`dcwDetail.codePh`)},null,8,et),[[x,d.value.code]])]),f(`label`,tt,[f(`span`,null,[b(i(r.$t(`dcwDetail.k3x4ef037`)),1),o[13]||=f(`em`,null,`*`,-1)]),y(f(`input`,{"onUpdate:modelValue":o[3]||=e=>d.value.unit=e,class:`inp`,placeholder:r.$t(`dcwDetail.unitPh`)},null,8,nt),[[x,d.value.unit]])]),f(`label`,rt,[f(`span`,null,[b(i(r.$t(`dcwDetail.k1l9jv5m038`)),1),o[14]||=f(`em`,null,`*`,-1)]),y(f(`input`,{"onUpdate:modelValue":o[4]||=e=>d.value.min=e,type:`number`,class:`inp`,placeholder:r.$t(`dcwDetail.kxz9174006`)},null,8,G),[[x,d.value.min,void 0,{number:!0}]])]),f(`label`,it,[f(`span`,null,[b(i(r.$t(`dcwDetail.k1l9jv4p039`)),1),o[15]||=f(`em`,null,`*`,-1)]),y(f(`input`,{"onUpdate:modelValue":o[5]||=e=>d.value.max=e,type:`number`,class:`inp`,placeholder:r.$t(`dcwDetail.kxz9167007`)},null,8,at),[[x,d.value.max,void 0,{number:!0}]])]),f(`label`,ot,[f(`span`,null,i(r.$t(`dcwDetail.k3mxmcx040`)),1),y(f(`input`,{"onUpdate:modelValue":o[6]||=e=>d.value.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[x,d.value.decimals,void 0,{number:!0}]])]),f(`label`,st,[f(`span`,null,i(r.$t(`dcwDetail.k3xx56041`)),1),y(f(`select`,{"onUpdate:modelValue":o[7]||=e=>d.value.icon=e,class:`inp`},[(c(!0),p(m,null,l(n.tplIcons,e=>(c(),p(`option`,{key:e.key,value:e.key},i(e.label),9,ct))),128))],512),[[w,d.value.icon]])])]),f(`label`,lt,[f(`span`,null,i(r.$t(`dcwDetail.knjmyfr042`)),1),y(f(`textarea`,{"onUpdate:modelValue":o[8]||=e=>d.value.semantics=e,class:`inp`,rows:`2`,placeholder:r.$t(`dcwDetail.k1qdnfzc008`)},null,8,ut),[[x,d.value.semantics]])]),n.tplOk?(c(),p(`p`,dt,i(n.tplOk),1)):g(``,!0),n.tplError?(c(),p(`p`,ft,i(n.tplError),1)):g(``,!0),f(`div`,K,[f(`button`,{class:`aw-pill outline`,onClick:o[9]||=e=>u.value=!1},i(r.$t(`dcwDetail.k3x62t043`)),1),f(`button`,{class:`pill-btn`,disabled:n.tplSaving||!d.value.name.trim()||d.value.unit.trim()===``||d.value.min===``||d.value.max===``,onClick:o[10]||=e=>a(`submit`)},i(n.tplSaving?r.$t(`dcwDetail.k1bg4759156`):r.$t(`dcwDetail.k1bg9nga171`)),9,pt)])])])):g(``,!0)}}),[[`__scopeId`,`data-v-f19aa086`]]),{__name:`DcwDetailTemplateModal`}),ht={class:`modal`},gt={class:`m-title`},_t={class:`seg-row`},vt={class:`f-grid`},q={class:`f`},J=[`value`],Y={class:`f`},X=[`placeholder`],Z={class:`f`},yt=[`placeholder`],bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct=[`placeholder`],wt={class:`f`},Tt=[`placeholder`],Et={class:`field-hint`},Dt={class:`f-grid cal-form`},Ot={class:`f`},kt={value:`none`},At={value:`linear`},jt={class:`f`},Mt={style:{display:`flex`,gap:`6px`}},Nt=[`disabled`,`title`],Pt=[`disabled`,`title`],Ft={class:`f-grid`},It={class:`f`},Q=[`value`],Lt={key:0,class:`f-grid driver-form`},Rt={key:0,style:{color:`var(--tone-danger-dot)`,"font-style":`normal`}},zt=[`onUpdate:modelValue`,`placeholder`],Bt=[`onUpdate:modelValue`],Vt=[`value`],Ht=[`onUpdate:modelValue`,`type`,`placeholder`],Ut={key:3,class:`hint`},Wt={class:`test-row`},Gt=[`disabled`],Kt={key:1,class:`test-row`},$=[`disabled`],qt={class:`f`},Jt=[`placeholder`],Yt={key:1,class:`m-err`},Xt={class:`m-actions`},Zt=[`disabled`],Qt=Object.assign(D(s({__name:`DcwAddNodeModal`,props:h({templates:{},driverCatalog:{},addFields:{},addTesting:{type:Boolean},addTest:{},addMesTesting:{type:Boolean},addMesResult:{},addSaving:{type:Boolean},addError:{}},{open:{type:Boolean,required:!0},openModifiers:{},scenario:{required:!0},scenarioModifiers:{},template:{required:!0},templateModifiers:{},driver:{required:!0},driverModifiers:{},name:{required:!0},nameModifiers:{},hold:{required:!0},holdModifiers:{},read:{required:!0},readModifiers:{},writeLock:{required:!0},writeLockModifiers:{},stepLimit:{required:!0},stepLimitModifiers:{},cfg:{required:!0},cfgModifiers:{},transform:{required:!0},transformModifiers:{},semantics:{required:!0},semanticsModifiers:{}}),emits:h([`test`,`mes-test`,`submit`],[`update:open`,`update:scenario`,`update:template`,`update:driver`,`update:name`,`update:hold`,`update:read`,`update:writeLock`,`update:stepLimit`,`update:cfg`,`update:transform`,`update:semantics`]),setup(n,{emit:r}){let a=n,s=r,{t:u}=T(),h=o(n,`open`),_=o(n,`scenario`),v=o(n,`template`),ee=o(n,`driver`),E=o(n,`name`),D=o(n,`hold`),O=o(n,`read`),k=o(n,`writeLock`),A=o(n,`stepLimit`),j=o(n,`cfg`),M=o(n,`transform`),N=o(n,`semantics`),P=e=>e.type===`text`,ne=d(()=>ee.value===`mes-rest`),re=d(()=>{let e=a.addMesResult;return e?e.ok?`${e.eng==null?`--`:String(e.eng)}${e.latencyMs==null?``:` · ${e.latencyMs}ms`}`:e.message:``});return(r,a)=>h.value?(c(),p(`div`,{key:0,class:`modal-mask`,onClick:a[17]||=S(e=>h.value=!1,[`self`])},[f(`div`,ht,[f(`h3`,gt,i(r.$t(`dcwDetail.k1976uns021`)),1),f(`div`,_t,[f(`button`,{class:t([`seg`,{on:_.value===`mock`}]),onClick:a[0]||=e=>_.value=`mock`},i(r.$t(`dcwDetail.mockPlc`)),3),f(`button`,{class:t([`seg`,{on:_.value===`real`}]),onClick:a[1]||=e=>_.value=`real`},i(r.$t(`dcwDetail.kyj8fen044`)),3)]),f(`div`,vt,[f(`label`,q,[f(`span`,null,i(r.$t(`dcwDetail.k1ejzwqp045`)),1),y(f(`select`,{"onUpdate:modelValue":a[2]||=e=>v.value=e,class:`inp`},[(c(!0),p(m,null,l(n.templates,t=>(c(),p(`option`,{key:t.key,value:t.key},i((`catalogTplName`in r?r.catalogTplName:e(te))(e(u),t))+` · `+i(t.ch)+`(`+i(t.min)+`~`+i(t.max)+` `+i(t.unit)+`)`+i(t.builtin?``:r.$t(`dcwDetail.kr45rk9157`)),9,J))),128))],512),[[w,v.value]])]),f(`label`,Y,[f(`span`,null,i(r.$t(`dcwDetail.k1ce2k1y046`)),1),y(f(`input`,{"onUpdate:modelValue":a[3]||=e=>E.value=e,class:`inp`,placeholder:r.$t(`dcwDetail.kgpxzy3009`)},null,8,X),[[x,E.value]])]),f(`label`,Z,[f(`span`,null,i(r.$t(`dcwDetail.k1vyb8im047`)),1),y(f(`input`,{"onUpdate:modelValue":a[4]||=e=>D.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:r.$t(`dcwDetail.kb1srz0010`)},null,8,yt),[[x,D.value,void 0,{number:!0}]])]),f(`label`,bt,[f(`span`,null,i(r.$t(`dcwDetail.k9r7d4e016`)),1),y(f(`input`,{"onUpdate:modelValue":a[5]||=e=>O.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:r.$t(`dcwDetail.k9r7d4e017`)},null,8,xt),[[x,O.value,void 0,{number:!0}]])]),f(`label`,St,[f(`span`,null,i(r.$t(`dcwDetail.writeLockLabel`)),1),y(f(`input`,{"onUpdate:modelValue":a[6]||=e=>k.value=e,type:`number`,min:`0`,max:`3600`,step:`1`,class:`inp`,placeholder:r.$t(`dcwDetail.writeLockHint`)},null,8,Ct),[[x,k.value,void 0,{number:!0}]])]),f(`label`,wt,[f(`span`,null,[b(i(r.$t(`dcwDetail.stepLimitLabel`))+` `,1),f(`em`,null,`(`+i(r.$t(`dcwDetail.stepLimitUnit`))+`)`,1)]),y(f(`input`,{"onUpdate:modelValue":a[7]||=e=>A.value=e,type:`number`,min:`0`,step:`any`,class:`inp`,placeholder:r.$t(`dcwDetail.stepLimitPlaceholder`)},null,8,Tt),[[x,A.value,void 0,{number:!0}]]),f(`small`,Et,i(r.$t(`dcwDetail.stepLimitHint`)),1)])]),f(`div`,Dt,[f(`label`,Ot,[f(`span`,null,i(r.$t(`dcwDetail.kiune1f048`)),1),y(f(`select`,{"onUpdate:modelValue":a[8]||=e=>M.value.kind=e,class:`inp`},[f(`option`,kt,i(r.$t(`dcwDetail.kkzy0k049`)),1),f(`option`,At,i(r.$t(`dcwDetail.linearCalOpt`)),1)],512),[[w,M.value.kind]])]),f(`label`,jt,[a[18]||=f(`span`,null,`scale / offset`,-1),f(`div`,Mt,[y(f(`input`,{"onUpdate:modelValue":a[9]||=e=>M.value.scale=e,type:`number`,step:`0.1`,class:`inp`,disabled:M.value.kind!==`linear`,title:r.$t(`dcwDetail.calScaleTip`)},null,8,Nt),[[x,M.value.scale,void 0,{number:!0}]]),y(f(`input`,{"onUpdate:modelValue":a[10]||=e=>M.value.offset=e,type:`number`,step:`0.1`,class:`inp`,disabled:M.value.kind!==`linear`,title:r.$t(`dcwDetail.calOffsetTip`)},null,8,Pt),[[x,M.value.offset,void 0,{number:!0}]])])])]),_.value===`real`?(c(),p(m,{key:0},[f(`div`,Ft,[f(`label`,It,[f(`span`,null,i(r.$t(`dcwDetail.k1kt87rx050`)),1),y(f(`select`,{"onUpdate:modelValue":a[11]||=e=>ee.value=e,class:`inp`},[(c(!0),p(m,null,l(n.driverCatalog.filter(e=>e.status!==`builtin`),e=>(c(),p(`option`,{key:e.kind,value:e.kind},i(e.label)+i(e.plugin?` ⌁`:``),9,Q))),128))],512),[[w,ee.value]])])]),n.addFields.length?(c(),p(`div`,Lt,[(c(!0),p(m,null,l(n.addFields,e=>(c(),p(`label`,{key:e.key,class:t([`f`,{"map-field":P(e)}])},[f(`span`,null,[b(i(e.label),1),e.required?(c(),p(`em`,Rt,`*`)):g(``,!0)]),P(e)?y((c(),p(`textarea`,{key:0,"onUpdate:modelValue":t=>j.value[e.key]=t,class:`inp cfg-map mono`,rows:`6`,placeholder:e.placeholder},null,8,zt)),[[x,j.value[e.key]]]):e.type===`select`?y((c(),p(`select`,{key:1,"onUpdate:modelValue":t=>j.value[e.key]=t,class:`inp`},[(c(!0),p(m,null,l(e.options,e=>(c(),p(`option`,{key:e.value,value:e.value},i(e.label),9,Vt))),128))],8,Bt)),[[w,j.value[e.key]]]):y((c(),p(`input`,{key:2,"onUpdate:modelValue":t=>j.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,Ht)),[[C,j.value[e.key]]]),e.hint?(c(),p(`small`,Ut,i(e.hint),1)):g(``,!0)],2))),128))])):g(``,!0),f(`div`,Wt,[f(`button`,{class:`pill-btn outline`,disabled:n.addTesting,onClick:a[12]||=e=>s(`test`)},i(n.addTesting?r.$t(`dcwDetail.k1fsh720158`):r.$t(`dcwDetail.k1fstglk172`)),9,Gt),n.addTest?(c(),p(`span`,{key:0,class:t([`test-result`,n.addTest.ok?`good`:`bad`])},i(n.addTest.ok?`✓`:`✗`)+` `+i(n.addTest.message),3)):g(``,!0)]),ne.value?(c(),p(`div`,Kt,[f(`button`,{class:`mini-btn`,disabled:n.addMesTesting,onClick:a[13]||=e=>s(`mes-test`)},i(n.addMesTesting?r.$t(`dcwDetail.mesTesting`):r.$t(`dcwDetail.mesTestBtn`)),9,$),n.addMesResult?(c(),p(`span`,{key:0,class:t([`test-result`,n.addMesResult.ok?`good`:`bad`])},i(n.addMesResult.ok?`✓`:`✗`)+` `+i(re.value),3)):g(``,!0)])):g(``,!0)],64)):g(``,!0),f(`label`,qt,[f(`span`,null,i(r.$t(`dcwDetail.k1hgizn7051`)),1),y(f(`textarea`,{"onUpdate:modelValue":a[14]||=e=>N.value=e,class:`inp`,rows:`2`,placeholder:r.$t(`dcwDetail.k12bnyt9011`)},null,8,Jt),[[x,N.value]])]),n.addError?(c(),p(`p`,Yt,i(n.addError),1)):g(``,!0),f(`div`,Xt,[f(`button`,{class:`aw-pill outline`,onClick:a[15]||=e=>h.value=!1},i(r.$t(`dcwDetail.k3xdnn052`)),1),f(`button`,{class:`aw-pill`,disabled:n.addSaving,onClick:a[16]||=e=>s(`submit`)},i(n.addSaving?r.$t(`dcwDetail.k1bg4759156`):r.$t(`dcwDetail.k1bge46t173`)),9,Zt)])])])):g(``,!0)}}),[[`__scopeId`,`data-v-4980f785`]]),{__name:`DcwAddNodeModal`}),$t={class:`aw-tile ap-card`},en={class:`ap-head`},tn={class:`ap-count mono`},nn={class:`ap-rule`},rn={class:`ap-main`},an={class:`ap-line`},on={class:`ap-node`},sn={class:`ap-detail`},cn={class:`ap-meta`},ln={class:`mono`},un=[`onUpdate:modelValue`,`placeholder`],dn={class:`ap-actions`},fn=[`disabled`,`onClick`],pn=[`disabled`,`onClick`],mn=Object.assign(D(s({__name:`DcwParamApprovalCard`,props:h({items:{},decidingId:{},remainingSec:{type:Function},agentName:{type:Function},nodeName:{type:Function}},{comments:{required:!0},commentsModifiers:{}}),emits:h([`decide`],[`update:comments`]),setup(e,{emit:n}){let r=n,a=o(e,`comments`);return(n,o)=>(c(),p(`section`,$t,[f(`div`,en,[f(`b`,null,i(n.$t(`dcwDetail.apTitle`)),1),f(`span`,tn,i(e.items.length),1),f(`small`,nn,i(n.$t(`dcwDetail.apRule`)),1)]),(c(!0),p(m,null,l(e.items,o=>(c(),p(`div`,{key:o.id,class:`ap-row`},[f(`div`,rn,[f(`div`,an,[f(`span`,on,i(e.nodeName(o)),1),f(`span`,sn,i(o.detail),1)]),f(`small`,cn,[f(`span`,ln,i(n.$t(`dcwDetail.apInitiator`))+` `+i(e.agentName(o)),1),f(`span`,{class:t([`ap-ttl mono`,{urgent:e.remainingSec(o)<=30}])},`⏱ `+i(e.remainingSec(o))+`s `+i(n.$t(`dcwDetail.apTimeout`)),3)])]),y(f(`input`,{"onUpdate:modelValue":e=>a.value[o.id]=e,class:`inp ap-comment`,placeholder:n.$t(`dcwDetail.apCommentPh`)},null,8,un),[[x,a.value[o.id]]]),f(`div`,dn,[f(`button`,{class:`mini-btn ap-ok`,disabled:e.decidingId===o.id,onClick:e=>r(`decide`,o.id,!0)},i(n.$t(`dcwDetail.apApprove`)),9,fn),f(`button`,{class:`mini-btn danger`,disabled:e.decidingId===o.id,onClick:e=>r(`decide`,o.id,!1)},i(n.$t(`dcwDetail.apReject`)),9,pn)])]))),128))]))}}),[[`__scopeId`,`data-v-cd2bb0c2`]]),{__name:`DcwParamApprovalCard`}),hn={class:`aw-tile table-card`},gn={class:`nodes-table`},_n={class:`right`},vn={class:`mono dim`},yn={key:0,class:`drv-badge`},bn={class:`mono ch`},xn=[`disabled`,`title`,`onClick`],Sn={key:0,class:`st-pill paused`},Cn={class:`mono val`},wn={key:0,class:`dim`},Tn={class:`mono val`},En=[`title`],Dn={key:0,class:`dim`},On=[`disabled`,`title`,`onClick`],kn={class:`write-row`},An=[`onUpdate:modelValue`,`placeholder`,`min`,`max`,`step`,`disabled`,`title`],jn=[`disabled`,`title`,`onClick`],Mn={class:`mono dim`},Nn={class:`mono`},Pn=[`title`],Fn=[`title`],In={class:`step-limit-cell`},Ln=[`value`,`title`,`onInput`],Rn=[`disabled`,`onClick`],zn={class:`dim`},Bn={class:`right`},Vn=[`onClick`],Hn={key:0},Un={colspan:`10`},Wn={class:`pane-empty`,style:{"min-height":`120px`}},Gn={class:`pe-sub`},Kn=Object.assign(D(s({__name:`DcwNodesTable`,props:h({lineNodes:{},stateLabel:{},togglingId:{},readingId:{},writingId:{},stepPatchingId:{},loaded:{type:Boolean},error:{},dcwTemplateRefCh:{type:Function},nodeDeviceNames:{type:Function}},{setInputs:{required:!0},setInputsModifiers:{}}),emits:h([`toggle`,`read`,`write`,`patch-step-limit`,`remove`],[`update:setInputs`]),setup(e,{emit:n}){let a=n,{t:s}=T();function u(e){let t=k(e);return t?s(t):``}let d=o(e,`setInputs`),h=r({});function S(e){return h[e.id]??e.stepLimit}function C(e){let t=h[e.id]===void 0?e.stepLimit:h[e.id];a(`patch-step-limit`,e.id,t===``||t==null?null:Number(t))}return(n,r)=>{let o=E;return c(),v(o,{spinning:!e.loaded&&!e.error},{default:_(()=>[f(`section`,hn,[f(`table`,gn,[f(`thead`,null,[f(`tr`,null,[f(`th`,null,i(n.$t(`dcwDetail.k1e2dtkt053`)),1),f(`th`,null,i(n.$t(`dcwDetail.k403cy054`)),1),f(`th`,null,i(n.$t(`dcwDetail.k42w8s055`)),1),f(`th`,null,i(n.$t(`dcwDetail.k1deqh0d056`)),1),f(`th`,null,i(n.$t(`dcwDetail.k9r7d4e018`)),1),f(`th`,null,i(n.$t(`dcwDetail.k1k79ec9057`)),1),f(`th`,null,i(n.$t(`dcwDetail.k1dexou6058`)),1),f(`th`,null,i(n.$t(`dcwDetail.k1b1nnaa059`)),1),f(`th`,null,i(n.$t(`dcwDetail.k1i8rtqt060`)),1),f(`th`,null,i(n.$t(`dcwDetail.thStepLimit`)),1),f(`th`,_n,i(n.$t(`dcwDetail.k40aa6061`)),1)])]),f(`tbody`,null,[(c(!0),p(m,null,l(e.lineNodes,o=>(c(),p(`tr`,{key:o.id,class:t({"node-paused":!o.enabled})},[f(`td`,null,[f(`span`,vn,i(o.id.slice(0,8)),1),f(`b`,null,i(o.name),1),u(o.driver)?(c(),p(`span`,yn,i(u(o.driver)),1)):g(``,!0),f(`small`,bn,i(e.dcwTemplateRefCh(o.templateRef)),1)]),f(`td`,null,[f(`button`,{class:t([`ctrl-toggle`,{on:o.enabled}]),disabled:e.togglingId===o.id,title:o.enabled?n.$t(`dcwDetail.pauseCtrlTip`):n.$t(`dcwDetail.enableCtrlTip`),onClick:e=>a(`toggle`,o.id,!o.enabled)},[r[0]||=f(`span`,{class:`ct-dot`},null,-1),b(` `+i(o.enabled?n.$t(`dcwDetail.k3o3ib3159`):n.$t(`dcwDetail.k3n93ed062`)),1)],10,xn)]),f(`td`,null,[o.enabled?(c(),p(`span`,{key:1,class:t([`st-pill`,o.state])},i(e.stateLabel[o.state]??o.state),3)):(c(),p(`span`,Sn,i(n.$t(`dcwDetail.k3n93ed062`)),1))]),f(`td`,Cn,[b(i(o.value==null?`--`:o.value.toFixed(o.decimals))+` `,1),f(`small`,null,i(o.unit),1),o.lastAckAt?(c(),p(`small`,wn,` · `+i(o.lastAckAt.slice(11,19)),1)):g(``,!0)]),f(`td`,Tn,[f(`span`,{title:o.lastReadError??n.$t(`dcwDetail.k9r7d4e019`),class:t({"read-stale":o.lastReadError})},i(o.readValue==null?`--`:o.readValue.toFixed(o.decimals)),11,En),f(`small`,null,i(o.unit),1),o.lastReadAt?(c(),p(`small`,Dn,` · `+i(o.lastReadAt.slice(11,19)),1)):g(``,!0),f(`button`,{class:`mini-btn read-btn`,disabled:e.readingId===o.id,title:n.$t(`dcwDetail.k9r7d4e020`),onClick:e=>a(`read`,o.id)},i(e.readingId===o.id?`···`:n.$t(`dcwDetail.k9r7d4e021`)),9,On)]),f(`td`,null,[f(`div`,kn,[y(f(`input`,{"onUpdate:modelValue":e=>d.value[o.id]=e,type:`number`,class:`inp write-inp mono`,placeholder:`${o.min}~${o.max}`,min:o.min,max:o.max,step:10**-o.decimals,disabled:!o.enabled,title:o.enabled?``:n.$t(`dcwDetail.pausedTip`)},null,8,An),[[x,d.value[o.id],void 0,{number:!0}]]),f(`button`,{class:`mini-btn write-btn`,disabled:!o.enabled||e.writingId===o.id||d.value[o.id]==null||d.value[o.id]===``,title:o.enabled?n.$t(`dcwDetail.writeTip`):n.$t(`dcwDetail.pausedTip`),onClick:e=>a(`write`,o.id,Number(d.value[o.id]))},i(e.writingId===o.id?n.$t(`dcwDetail.k3l3h80123`):n.$t(`dcwDetail.k3w6td174`)),9,jn)])]),f(`td`,Mn,i(o.min)+` ~ `+i(o.max)+` `+i(o.unit),1),f(`td`,Nn,[b(i(o.holdIntervalMs==null?n.$t(`dcwDetail.k3zul4160`):`${o.holdIntervalMs}ms`)+` `,1),f(`small`,{class:`dim`,title:n.$t(`dcwDetail.k9r7d4e016`)},`· `+i(o.readIntervalMs===0?n.$t(`dcwDetail.k9r7d4e022`):o.readIntervalMs==null?n.$t(`dcwDetail.k9r7d4e023`):`${o.readIntervalMs}ms`),9,Pn),f(`small`,{class:`dim`,title:n.$t(`dcwDetail.writeLockHint`)},`· `+i(o.writeLockSeconds===0?`0s`:`${o.writeLockSeconds}s`),9,Fn)]),f(`td`,null,i(e.nodeDeviceNames(o)),1),f(`td`,null,[f(`div`,In,[f(`input`,{value:S(o)??``,type:`number`,min:`0`,step:`any`,class:`inp step-inp mono`,placeholder:`2% default`,title:n.$t(`dcwDetail.stepInputTitle`),onInput:e=>h[o.id]=e.target.value===``?``:Number(e.target.value)},null,40,Ln),f(`button`,{class:`mini-btn step-btn`,disabled:e.stepPatchingId===o.id,onClick:e=>C(o)},i(e.stepPatchingId===o.id?`…`:n.$t(`common.save`)),9,Rn)]),f(`small`,zn,i(n.$t(`dcwDetail.stepCurrent`,{p0:o.stepLimit??n.$t(`dcwDetail.stepUnset`)}))+` `+i(o.unit),1)]),f(`td`,Bn,[f(`button`,{class:`mini-btn danger`,onClick:e=>a(`remove`,o.id)},i(n.$t(`dcwDetail.k3xakp063`)),9,Vn)])],2))),128)),e.loaded&&e.lineNodes.length===0?(c(),p(`tr`,Hn,[f(`td`,Un,[f(`div`,Wn,[f(`p`,Gn,i(n.$t(`dcwDetail.k1wtecyw064`)),1)])])])):g(``,!0)])])])]),_:1},8,[`spinning`])}}}),[[`__scopeId`,`data-v-50a1386c`]]),{__name:`DcwNodesTable`}),qn={class:`modal`},Jn={class:`m-title`},Yn={class:`sec-label`},Xn={class:`nodes-table`},Zn={class:`mono dim`},Qn={class:`mono`},$n={class:`mono`},er={class:`mono dim`},tr={class:`mono dim`},nr={key:0},rr={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},ir={class:`sec-label`},ar={class:`nodes-table`},or={class:`mono`},sr={class:`mono dim`},cr={class:`mono dim`},lr={key:0},ur={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},dr={class:`m-actions`},fr=Object.assign(D(s({__name:`DcwRunDataModal`,props:{runDataView:{}},emits:[`close`],setup(e,{emit:n}){let r=n;return(n,a)=>e.runDataView?(c(),p(`div`,{key:0,class:`modal-mask`,onClick:a[1]||=S(e=>r(`close`),[`self`])},[f(`div`,qn,[f(`h3`,Jn,i(n.$t(`dcwDetail.k11lq94k145`))+` `+i(e.runDataView.data.run.recipeName)+`(`+i(e.runDataView.runId)+`) `,1),f(`p`,Yn,i(n.$t(`dcwDetail.k1me41w8080`)),1),f(`table`,Xn,[f(`thead`,null,[f(`tr`,null,[f(`th`,null,i(n.$t(`dcwDetail.k48hde081`)),1),f(`th`,null,i(n.$t(`dcwDetail.k45uio082`)),1),f(`th`,null,i(n.$t(`dcwDetail.k40t11083`)),1),f(`th`,null,i(n.$t(`dcwDetail.k3xuaw084`)),1),a[2]||=f(`th`,null,`min ~ max`,-1),f(`th`,null,i(n.$t(`dcwDetail.k4118o085`)),1)])]),f(`tbody`,null,[(c(!0),p(m,null,l(e.runDataView.data.daq,e=>(c(),p(`tr`,{key:e.nodeId},[f(`td`,null,[b(i(e.ch),1),f(`small`,Zn,i(e.unit),1)]),f(`td`,null,i(e.nodeName),1),f(`td`,Qn,i(e.latest),1),f(`td`,$n,i(e.avg),1),f(`td`,er,i(e.min)+` ~ `+i(e.max),1),f(`td`,tr,i(e.cnt),1)]))),128)),e.runDataView.data.daq.length===0?(c(),p(`tr`,nr,[f(`td`,rr,i(n.$t(`dcwDetail.kd457ry086`)),1)])):g(``,!0)])]),f(`p`,ir,i(n.$t(`dcwDetail.k12b7cxs087`)),1),f(`table`,ar,[f(`thead`,null,[f(`tr`,null,[f(`th`,null,i(n.$t(`dcwDetail.k3xbjr088`)),1),f(`th`,null,i(n.$t(`dcwDetail.k45uio082`)),1),f(`th`,null,i(n.$t(`dcwDetail.k3ncbsh089`)),1),f(`th`,null,i(n.$t(`dcwDetail.k3lh3mz090`)),1),f(`th`,null,i(n.$t(`dcwDetail.k454pg091`)),1),f(`th`,null,i(n.$t(`dcwDetail.k40ieu092`)),1)])]),f(`tbody`,null,[(c(!0),p(m,null,l(e.runDataView.data.writes,(e,r)=>(c(),p(`tr`,{key:r},[f(`td`,null,i(e.param),1),f(`td`,null,i(e.nodeName),1),f(`td`,or,i(e.eng),1),f(`td`,sr,i(e.raw),1),f(`td`,null,[f(`span`,{class:t([`st-pill`,e.ok?`ok`:`alarm`])},i(e.ok?`ACK`:n.$t(`dcwDetail.k3yit7139`)),3)]),f(`td`,cr,i(e.at.slice(5,19)),1)]))),128)),e.runDataView.data.writes.length===0?(c(),p(`tr`,lr,[f(`td`,ur,i(n.$t(`dcwDetail.knzcp8i093`)),1)])):g(``,!0)])]),f(`div`,dr,[f(`button`,{class:`aw-pill outline`,onClick:a[0]||=e=>r(`close`)},i(n.$t(`dcwDetail.k3x62t043`)),1)])])])):g(``,!0)}}),[[`__scopeId`,`data-v-23fad435`]]),{__name:`DcwRunDataModal`}),pr={class:`aw-tile recipe-card`},mr={class:`recipe-hd`},hr={class:`panel-tag mono`},gr={class:`recipe-sub`},_r={key:0,class:`product-row`},vr=[`title`,`onClick`],yr=[`title`,`onClick`],br={key:1,class:`dim`,style:{margin:`6px 0 12px`,"font-size":`12px`}},xr={class:`recipe-grid`},Sr={class:`recipe-name`},Cr=[`title`],wr={class:`dim`},Tr={class:`mono dim`},Er={key:0,class:`dim desc`},Dr={class:`recipe-params mono`},Or=[`title`],kr={key:0,class:`chip-step-tag`},Ar={key:1,class:`chip-stale-tag`},jr=[`title`],Mr={key:0,class:`chip-stale-tag`},Nr={class:`recipe-actions`},Pr=[`onClick`],Fr=[`onClick`],Ir=[`onClick`],Lr={key:0,class:`mono`},Rr=[`onClick`],zr={key:0,class:`pane-empty`,style:{"grid-column":`1 / -1`}},Br={key:2,class:`banner good`},Vr=[`disabled`],Hr={key:3,class:`runs`},Ur={class:`sec-label`},Wr={class:`nodes-table`},Gr={class:`right`},Kr={class:`mono`},qr={class:`mono dim`},Jr={class:`right`},Yr=[`disabled`,`onClick`],Xr=[`onClick`],Zr=Object.assign(D(s({__name:`DcwRecipePanel`,props:h({lineProducts:{},visibleRecipes:{},lineRuns:{},applyResult:{},runDataView:{},runDataLoading:{type:Boolean},productName:{type:Function},paramStatus:{type:Function},paramNodeName:{type:Function},daqWindowStatus:{type:Function},daqNodeCh:{type:Function}},{filterProductId:{required:!0},filterProductIdModifiers:{}}),emits:h([`create`,`open-product`,`apply`,`edit`,`history`,`remove-recipe`,`remove-product`,`view-run`,`close-run`,`close-run-data`],[`update:filterProductId`]),setup(n,{emit:r}){let a=r,{t:s}=T(),d=o(n,`filterProductId`);return(r,o)=>{let h=fr;return c(),p(`section`,pr,[f(`div`,mr,[f(`h3`,null,i(r.$t(`dcwDetail.k1j8w3hd065`)),1),f(`span`,hr,i(n.lineProducts.length)+` `+i(r.$t(`dcwDetail.k1av3wgs143`))+` `+i(n.visibleRecipes.length)+` `+i(r.$t(`dcwDetail.k48grv027`)),1),f(`button`,{class:`pill-btn`,style:{"margin-left":`auto`},onClick:o[0]||=e=>a(`create`)},i(r.$t(`dcwDetail.k1akm6dc066`)),1),f(`button`,{class:`mini-btn`,onClick:o[1]||=e=>a(`open-product`)},i(r.$t(`dcwDetail.k1aka0ki067`)),1)]),f(`p`,gr,i(r.$t(`dcwDetail.k6bl2q8068`)),1),n.lineProducts.length?(c(),p(`div`,_r,[f(`button`,{class:t([`prod-chip`,{on:d.value===``}]),onClick:o[2]||=e=>d.value=``},i(r.$t(`dcwDetail.k3x4t1069`)),3),(c(!0),p(m,null,l(n.lineProducts,e=>(c(),p(`button`,{key:e.id,class:t([`prod-chip`,{on:d.value===e.id}]),title:e.description,onClick:t=>d.value=e.id},[b(i(e.name)+` `,1),f(`span`,{class:`prod-del`,title:r.$t(`dcwDetail.k1bpfjgx012`),onClick:S(t=>a(`remove-product`,e.id),[`stop`])},`×`,8,yr)],10,vr))),128))])):(c(),p(`p`,br,i(r.$t(`dcwDetail.knov3zg070`)),1)),f(`div`,xr,[(c(!0),p(m,null,l(n.visibleRecipes,o=>(c(),p(`div`,{key:o.id,class:`recipe-item`},[f(`div`,Sr,[f(`b`,null,i(o.name),1),o.version?(c(),p(`span`,{key:0,class:`param-chip mono`,title:e(s)(`dcwDetail.histTitle`)},`v`+i(o.version),9,Cr)):g(``,!0),f(`small`,wr,i(n.productName(o.productId)),1),f(`small`,Tr,i(o.id),1)]),o.description?(c(),p(`p`,Er,i(o.description),1)):g(``,!0),f(`div`,Dr,[(c(!0),p(m,null,l(o.params,(e,r)=>(c(),p(`span`,{key:r,class:t([`param-chip`,{stale:n.paramStatus(e.nodeId,o.lineId)}]),title:n.paramStatus(e.nodeId,o.lineId)?.label??``},[b(i(n.paramNodeName(e.nodeId))+` = `+i(e.value),1),e.stepLimit==null?g(``,!0):(c(),p(`span`,kr,`Δ≤`+i(e.stepLimit),1)),n.paramStatus(e.nodeId,o.lineId)?(c(),p(`span`,Ar,i(n.paramStatus(e.nodeId,o.lineId).label),1)):g(``,!0)],10,Or))),128)),(c(!0),p(m,null,l(o.daqWindows,(e,a)=>(c(),p(`span`,{key:`w-${a}`,class:t([`param-chip daqwin`,{stale:n.daqWindowStatus(e.nodeId,o.lineId)}]),title:n.daqWindowStatus(e.nodeId,o.lineId)?.label??r.$t(`dcwDetail.k1l11api013`)},[b(` ◎ `+i(n.daqNodeCh(e.nodeId))+` ∈ [`+i(e.min??`-∞`)+`, `+i(e.max??`+∞`)+`]`,1),n.daqWindowStatus(e.nodeId,o.lineId)?(c(),p(`span`,Mr,i(n.daqWindowStatus(e.nodeId,o.lineId).label),1)):g(``,!0)],10,jr))),128))]),f(`div`,Nr,[f(`button`,{class:`pill-btn`,onClick:e=>a(`apply`,o.id)},i(r.$t(`dcwDetail.k1497qvr071`)),9,Pr),f(`button`,{class:`mini-btn`,onClick:e=>a(`edit`,o.id)},i(r.$t(`dcwDetail.k45eb0072`)),9,Fr),f(`button`,{class:`mini-btn`,onClick:e=>a(`history`,o.id)},[b(i(e(s)(`dcwDetail.histBtn`)),1),o.version?(c(),p(`span`,Lr,`·v`+i(o.version),1)):g(``,!0)],8,Ir),f(`button`,{class:`mini-btn danger`,onClick:e=>a(`remove-recipe`,o.id)},i(r.$t(`dcwDetail.k3xakp063`)),9,Rr)])]))),128)),n.visibleRecipes.length===0?(c(),p(`div`,zr,i(r.$t(`dcwDetail.keko1xy073`)),1)):g(``,!0)]),n.applyResult?(c(),p(`div`,Br,[b(i(r.$t(`dcwDetail.k1l3hrvp144`))+` `+i(n.applyResult.runId)+` `+i(r.$t(`dcwDetail.k1g3lh2v167`))+i(n.applyResult.ok)+`/`+i(n.applyResult.total)+` `+i(r.$t(`dcwDetail.k1bqci06149`))+` `,1),f(`button`,{class:`mini-btn`,style:{"margin-left":`10px`},disabled:n.runDataLoading,onClick:o[3]||=e=>a(`view-run`,n.applyResult.runId)},i(n.runDataLoading?r.$t(`dcwDetail.k1br0ij9161`):r.$t(`dcwDetail.kxwei5175`)),9,Vr)])):g(``,!0),n.lineRuns.length?(c(),p(`div`,Hr,[f(`p`,Ur,i(r.$t(`dcwDetail.k1rjer8d074`)),1),f(`table`,Wr,[f(`thead`,null,[f(`tr`,null,[f(`th`,null,i(r.$t(`dcwDetail.k400lb075`)),1),f(`th`,null,i(r.$t(`dcwDetail.k48grv027`)),1),f(`th`,null,i(r.$t(`dcwDetail.k4497j076`)),1),f(`th`,null,i(r.$t(`dcwDetail.k1bqhtmu077`)),1),f(`th`,Gr,i(r.$t(`dcwDetail.k40aa6061`)),1)])]),f(`tbody`,null,[(c(!0),p(m,null,l([...n.lineRuns].reverse().slice(0,8),e=>(c(),p(`tr`,{key:e.id},[f(`td`,Kr,i(e.id),1),f(`td`,null,i(e.recipeName),1),f(`td`,qr,i(e.startedAt.slice(5,19))+` ~ `+i(e.endedAt?e.endedAt.slice(5,19):r.$t(`dcwDetail.k3vpfg9162`)),1),f(`td`,null,[f(`span`,{class:t([`st-pill`,e.results.every(e=>e.ok)?`ok`:`warn`])},i(e.results.filter(e=>e.ok).length)+`/`+i(e.results.length),3)]),f(`td`,Jr,[f(`button`,{class:`mini-btn`,disabled:n.runDataLoading,onClick:t=>a(`view-run`,e.id)},i(r.$t(`dcwDetail.k1dzwrdp078`)),9,Yr),e.endedAt?g(``,!0):(c(),p(`button`,{key:0,class:`mini-btn`,onClick:t=>a(`close-run`,e.id)},i(r.$t(`dcwDetail.k1blr7y7079`)),9,Xr))])]))),128))])])])):g(``,!0),u(h,{"run-data-view":n.runDataView,onClose:o[4]||=e=>a(`close-run-data`)},null,8,[`run-data-view`])])}}}),[[`__scopeId`,`data-v-6242bc54`]]),{__name:`DcwRecipePanel`}),Qr={class:`modal`},$r={class:`m-title`},ei={class:`f-grid`},ti={class:`f`},ni=[`value`],ri={class:`f`},ii=[`placeholder`],ai={class:`f`},oi=[`placeholder`],si={class:`sec-label`},ci={class:`f`},li=[`onUpdate:modelValue`],ui=[`value`],di={key:0,class:`row-stale`},fi={class:`f`},pi=[`onUpdate:modelValue`],mi={class:`f`},hi=[`onUpdate:modelValue`,`placeholder`],gi={class:`f`},_i=[`onUpdate:modelValue`,`placeholder`],vi={class:`f`},yi=[`onUpdate:modelValue`,`placeholder`],bi=[`onClick`],xi={class:`sec-label`},Si={class:`f`},Ci=[`onUpdate:modelValue`],wi=[`value`],Ti={class:`f`},Ei=[`onUpdate:modelValue`],Di={class:`f`},Oi=[`onUpdate:modelValue`],ki=[`onClick`],Ai=[`disabled`,`title`],ji={key:0,class:`m-note`},Mi={key:1,class:`m-err`},Ni={class:`m-actions`},Pi=[`disabled`],Fi=Object.assign(D(s({__name:`DcwRecipeEditModal`,props:h({lineProducts:{},lineNodes:{},lineDaqNodes:{},lineId:{},recipeEditing:{},recipeSaving:{type:Boolean},recipeError:{},recipeStaleNote:{},dcwTemplateRefCh:{type:Function},nodeMin:{type:Function},nodeMax:{type:Function},paramStatus:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:h([`submit`,`close`],[`update:open`,`update:form`]),setup(t,{emit:n}){let r=n,a=o(t,`open`),s=o(t,`form`),{t:u}=T();function d(e){let t=k(e);return t?` · ${u(t)}`:``}return(n,o)=>a.value?(c(),p(`div`,{key:0,class:`modal-mask`,onClick:o[7]||=S(e=>a.value=!1,[`self`])},[f(`div`,Qr,[f(`h3`,$r,i(t.recipeEditing?n.$t(`dcwDetail.k1iiwk0i163`):n.$t(`dcwDetail.k1efq0r9176`)),1),f(`div`,ei,[f(`label`,ti,[f(`span`,null,[b(i(n.$t(`dcwDetail.k1dw4fzf094`)),1),o[8]||=f(`em`,null,`*`,-1)]),y(f(`select`,{"onUpdate:modelValue":o[0]||=e=>s.value.productId=e,class:`inp`},[(c(!0),p(m,null,l(t.lineProducts,e=>(c(),p(`option`,{key:e.id,value:e.id},i(e.name),9,ni))),128))],512),[[w,s.value.productId]])]),f(`label`,ri,[f(`span`,null,[b(i(n.$t(`dcwDetail.k1l3f8so095`)),1),o[9]||=f(`em`,null,`*`,-1)]),y(f(`input`,{"onUpdate:modelValue":o[1]||=e=>s.value.name=e,class:`inp`,placeholder:n.$t(`dcwDetail.k12c11vm014`)},null,8,ii),[[x,s.value.name]])]),f(`label`,ai,[f(`span`,null,i(n.$t(`dcwDetail.k40gkk096`)),1),y(f(`input`,{"onUpdate:modelValue":o[2]||=e=>s.value.description=e,class:`inp`,placeholder:n.$t(`dcwDetail.k1hxx8hy015`)},null,8,oi),[[x,s.value.description]])])]),f(`p`,si,i(n.$t(`dcwDetail.ka1kfgh097`)),1),(c(!0),p(m,null,l(s.value.params,(e,r)=>(c(),p(`div`,{key:r,class:`param-row`},[f(`label`,ci,[f(`span`,null,i(n.$t(`dcwDetail.k1e2dtkt053`)),1),y(f(`select`,{"onUpdate:modelValue":t=>e.nodeId=t,class:`inp`},[(c(!0),p(m,null,l(t.lineNodes,e=>(c(),p(`option`,{key:e.id,value:e.id},i(e.name)+i(d(e.driver))+`(`+i(t.dcwTemplateRefCh(e.templateRef))+` · `+i(e.min)+`~`+i(e.max)+` `+i(e.unit)+`) `,9,ui))),128))],8,li),[[w,e.nodeId]]),t.paramStatus(e.nodeId,t.lineId)?(c(),p(`span`,di,i(t.paramStatus(e.nodeId,t.lineId).label),1)):g(``,!0)]),f(`label`,fi,[f(`span`,null,[b(i(n.$t(`dcwDetail.k3renp2098`)),1),o[10]||=f(`em`,null,`*`,-1)]),y(f(`input`,{"onUpdate:modelValue":t=>e.value=t,type:`number`,class:`inp`,step:.1},null,8,pi),[[x,e.value,void 0,{number:!0}]])]),f(`label`,mi,[f(`span`,null,i(n.$t(`dcwDetail.k134rw3b146`))+i(t.nodeMin(e.nodeId)??`-`)+`)`,1),y(f(`input`,{"onUpdate:modelValue":t=>e.min=t,type:`number`,class:`inp`,step:.1,placeholder:n.$t(`dcwDetail.k5vew9z016`)},null,8,hi),[[x,e.min,void 0,{number:!0}]])]),f(`label`,gi,[f(`span`,null,i(n.$t(`dcwDetail.khrv911147`))+i(t.nodeMax(e.nodeId)??`-`)+`)`,1),y(f(`input`,{"onUpdate:modelValue":t=>e.max=t,type:`number`,class:`inp`,step:.1,placeholder:n.$t(`dcwDetail.kzoh5pr017`)},null,8,_i),[[x,e.max,void 0,{number:!0}]])]),f(`label`,vi,[f(`span`,null,i(n.$t(`dcwDetail.recipeStepLimitLabel`)),1),y(f(`input`,{"onUpdate:modelValue":t=>e.stepLimit=t,type:`number`,min:`0`,class:`inp`,step:`any`,placeholder:n.$t(`dcwDetail.recipeStepLimitPlaceholder`)},null,8,yi),[[x,e.stepLimit,void 0,{number:!0}]])]),f(`button`,{class:`mini-btn danger param-del`,onClick:e=>s.value.params.splice(r,1)},i(n.$t(`dcwDetail.k44idg099`)),9,bi)]))),128)),f(`button`,{class:`mini-btn`,onClick:o[3]||=n=>s.value.params.push(e(A)(t.lineNodes[0]?.id??``))},i(n.$t(`dcwDetail.k1broh7h100`)),1),f(`p`,xi,i(n.$t(`dcwDetail.k1h5gues101`)),1),(c(!0),p(m,null,l(s.value.daqWindows,(e,r)=>(c(),p(`div`,{key:`dw-${r}`,class:`param-row`},[f(`label`,Si,[f(`span`,null,i(n.$t(`dcwDetail.k1empnnb102`)),1),y(f(`select`,{"onUpdate:modelValue":t=>e.nodeId=t,class:`inp`},[(c(!0),p(m,null,l(t.lineDaqNodes,e=>(c(),p(`option`,{key:e.id,value:e.id},i(e.name)+`(`+i(e.min)+`~`+i(e.max)+` `+i(e.unit)+`) `,9,wi))),128))],8,Ci),[[w,e.nodeId]])]),f(`label`,Ti,[f(`span`,null,i(n.$t(`dcwDetail.kqm08ap103`)),1),y(f(`input`,{"onUpdate:modelValue":t=>e.min=t,type:`number`,class:`inp`,step:.1},null,8,Ei),[[x,e.min,void 0,{number:!0}]])]),f(`label`,Di,[f(`span`,null,i(n.$t(`dcwDetail.kpypf8g104`)),1),y(f(`input`,{"onUpdate:modelValue":t=>e.max=t,type:`number`,class:`inp`,step:.1},null,8,Oi),[[x,e.max,void 0,{number:!0}]])]),f(`button`,{class:`mini-btn danger param-del`,onClick:e=>s.value.daqWindows.splice(r,1)},i(n.$t(`dcwDetail.k44idg099`)),9,ki)]))),128)),f(`button`,{class:`mini-btn`,disabled:t.lineDaqNodes.length===0,title:t.lineDaqNodes.length===0?n.$t(`dcwDetail.noDaqTip`):``,onClick:o[4]||=n=>s.value.daqWindows.push(e(j)(t.lineDaqNodes[0]?.id??``))},i(n.$t(`dcwDetail.kv1de1p105`)),9,Ai),t.recipeStaleNote?(c(),p(`p`,ji,i(t.recipeStaleNote),1)):g(``,!0),t.recipeError?(c(),p(`p`,Mi,i(t.recipeError),1)):g(``,!0),f(`div`,Ni,[f(`button`,{class:`aw-pill outline`,onClick:o[5]||=e=>a.value=!1},i(n.$t(`dcwDetail.k3xdnn052`)),1),f(`button`,{class:`pill-btn`,disabled:t.recipeSaving,onClick:o[6]||=e=>r(`submit`)},i(t.recipeSaving?n.$t(`dcwDetail.k1b38d59164`):n.$t(`dcwDetail.k1b3kwg0177`)),9,Pi)])])])):g(``,!0)}}),[[`__scopeId`,`data-v-6a4fb369`]]),{__name:`DcwRecipeEditModal`}),Ii={class:`modal`,style:{"max-width":`760px`}},Li={class:`modal-head`},Ri={key:0,class:`dim`,style:{"margin-left":`8px`,"font-size":`12px`}},zi={key:0,class:`banner good`,style:{margin:`6px 0`}},Bi={key:1,class:`dim`},Vi={key:2,class:`pane-empty`},Hi={class:`ver-head`},Ui={class:`mono ver-v`},Wi={class:`mono dim`},Gi={class:`ver-actor`},Ki=[`onClick`],qi={key:0,class:`ver-desc`},Ji={class:`ver-diff mono`},Yi=Object.assign(D(s({__name:`DcwRecipeHistoryModal`,props:h({verRecipe:{},verRows:{},verLoading:{type:Boolean},verMsg:{},paramNodeName:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:h([`revert`,`close`],[`update:open`]),setup(n,{emit:r}){let a=n,s=r,{t:u}=T(),d=o(n,`open`),h=e=>e===`agent`?`Agent`:u(e===`system`?`dcwDetail.srcSystem`:`dcwDetail.srcUser`);function _(e,t){if(t===0)return u(`dcwDetail.histInit`);let n=a.verRows[t-1],r=e.params.map(e=>({p:e,old:n.params.find(t=>t.nodeId===e.nodeId)})).filter(({p:e,old:t})=>!t||t.value!==e.value).map(({p:e,old:t})=>`${a.paramNodeName(e.nodeId)}: ${t?.value??u(`dcwDetail.histAdded`)} → ${e.value}`);return r.length>0?r.join(`;`):u(`dcwDetail.histNoChange`)}return(r,a)=>d.value?(c(),p(`div`,{key:0,class:`modal-mask`,onClick:a[1]||=S(e=>d.value=!1,[`self`])},[f(`div`,Ii,[f(`div`,Li,[f(`h3`,null,[b(i(e(u)(`dcwDetail.histTitle`)),1),n.verRecipe?(c(),p(`span`,Ri,i(n.verRecipe.name)+` · v`+i(n.verRecipe.version),1)):g(``,!0)]),f(`button`,{class:`mini-btn`,onClick:a[0]||=e=>d.value=!1},` ✕ `)]),n.verMsg?(c(),p(`p`,zi,i(n.verMsg),1)):g(``,!0),n.verLoading?(c(),p(`p`,Bi,i(e(u)(`dcwDetail.histLoading`)),1)):n.verRows.length===0?(c(),p(`div`,Vi,i(e(u)(`dcwDetail.histEmpty`)),1)):(c(!0),p(m,{key:3},l(n.verRows,(n,r)=>(c(),p(`div`,{key:n.version,class:t([`ver-row`,{cur:n.current}])},[f(`div`,Hi,[f(`span`,Ui,`v`+i(n.version),1),f(`span`,{class:t([`ver-src`,n.by??(n.current?`cur`:``)])},i(n.current?e(u)(`dcwDetail.histCurrent`):h(n.by)),3),f(`span`,Wi,i(n.at.slice(0,19).replace(`T`,` `)),1),f(`span`,Gi,i(n.actorName||`—`),1),n.current?g(``,!0):(c(),p(`button`,{key:0,class:`mini-btn`,onClick:e=>s(`revert`,n.version)},i(e(u)(`dcwDetail.revertTo`)),9,Ki))]),n.description?(c(),p(`p`,qi,i(n.description),1)):g(``,!0),f(`p`,Ji,i(_(n,r)),1)],2))),128))])])):g(``,!0)}}),[[`__scopeId`,`data-v-322135bb`]]),{__name:`DcwRecipeHistoryModal`}),Xi={class:`aw-tile query-card`},Zi={class:`sec-label`},Qi={class:`q-grid`},$i={class:`f`},ea={value:``},ta=[`value`],na={class:`f`},ra=[`disabled`],ia={value:``},aa=[`value`],oa={class:`f`},sa={value:``},ca=[`value`],la={class:`f`},ua={value:``},da=[`value`],fa={class:`f`},pa={class:`f`},ma={class:`f q-actions`},ha=[`disabled`],ga={key:0,class:`banner bad`,style:{"margin-top":`8px`}},_a={key:1,class:`q-result`},va={class:`nodes-table`},ya={class:`mono dim`},ba={class:`mono`},xa={class:`mono`},Sa={class:`mono`},Ca={class:`mono dim`},wa=Object.assign(D(s({__name:`DcwQueryCard`,props:h({lineProducts:{},visibleRecipes:{},lineDaqNodes:{},daqParamKeys:{},queryBusy:{type:Boolean},queryError:{},queryResult:{}},{query:{required:!0},queryModifiers:{}}),emits:h([`run`],[`update:query`]),setup(t,{emit:n}){let r=n,a=o(t,`query`);function s(e){let t=e?.value??e?.avg;return t==null?`--`:String(Math.round(t*1e3)/1e3)}return(n,o)=>(c(),p(`section`,Xi,[f(`p`,Zi,i(n.$t(`dcwDetail.k1us3jse106`)),1),f(`div`,Qi,[f(`label`,$i,[f(`span`,null,i(n.$t(`dcwDetail.k3waz1025`)),1),y(f(`select`,{"onUpdate:modelValue":o[0]||=e=>a.value.productId=e,class:`inp`,onChange:o[1]||=e=>a.value.recipeId=``},[f(`option`,ea,i(n.$t(`dcwDetail.k1bkl1jx107`)),1),(c(!0),p(m,null,l(t.lineProducts,e=>(c(),p(`option`,{key:e.id,value:e.id},i(e.name),9,ta))),128))],544),[[w,a.value.productId]])]),f(`label`,na,[f(`span`,null,i(n.$t(`dcwDetail.k48grv027`)),1),y(f(`select`,{"onUpdate:modelValue":o[2]||=e=>a.value.recipeId=e,class:`inp`,disabled:!a.value.productId},[f(`option`,ia,i(n.$t(`dcwDetail.k1bkx7cr108`)),1),(c(!0),p(m,null,l(t.visibleRecipes,e=>(c(),p(`option`,{key:e.id,value:e.id},i(e.name),9,aa))),128))],8,ra),[[w,a.value.recipeId]])]),f(`label`,oa,[f(`span`,null,i(n.$t(`dcwDetail.k1demcae109`)),1),y(f(`select`,{"onUpdate:modelValue":o[3]||=e=>a.value.paramKey=e,class:`inp`},[f(`option`,sa,i(n.$t(`dcwDetail.k1bkx7ya110`)),1),(c(!0),p(m,null,l(t.daqParamKeys,e=>(c(),p(`option`,{key:e,value:e},i(e),9,ca))),128))],512),[[w,a.value.paramKey]])]),f(`label`,la,[f(`span`,null,i(n.$t(`dcwDetail.k45uio082`)),1),y(f(`select`,{"onUpdate:modelValue":o[4]||=e=>a.value.nodeId=e,class:`inp`},[f(`option`,ua,i(n.$t(`dcwDetail.k1bkul3k111`)),1),(c(!0),p(m,null,l(t.lineDaqNodes,e=>(c(),p(`option`,{key:e.id,value:e.id},i(e.name),9,da))),128))],512),[[w,a.value.nodeId]])]),f(`label`,fa,[f(`span`,null,i(n.$t(`dcwDetail.kx2ojn0112`)),1),y(f(`input`,{"onUpdate:modelValue":o[5]||=e=>a.value.lastMin=e,type:`number`,min:`1`,max:`10080`,class:`inp`},null,512),[[x,a.value.lastMin,void 0,{number:!0}]])]),f(`label`,pa,[f(`span`,null,i(n.$t(`dcwDetail.kjvnvn4113`)),1),y(f(`input`,{"onUpdate:modelValue":o[6]||=e=>a.value.bucketMs=e,type:`number`,min:`1000`,step:`500`,class:`inp`},null,512),[[x,a.value.bucketMs,void 0,{number:!0}]])]),f(`div`,ma,[f(`button`,{class:`pill-btn`,disabled:t.queryBusy,onClick:o[7]||=e=>r(`run`)},i(t.queryBusy?n.$t(`dcwDetail.k1eyx09r165`):n.$t(`dcwDetail.k416ek178`)),9,ha)])]),t.queryError?(c(),p(`p`,ga,i(t.queryError),1)):g(``,!0),t.queryResult?(c(),p(`div`,_a,[f(`table`,va,[f(`thead`,null,[f(`tr`,null,[f(`th`,null,i(n.$t(`dcwDetail.k48hde081`)),1),f(`th`,null,i(n.$t(`dcwDetail.k45uio082`)),1),f(`th`,null,i(n.$t(`dcwDetail.k42kcu114`)),1),f(`th`,null,i(n.$t(`dcwDetail.k49ujb115`)),1),f(`th`,null,i(n.$t(`dcwDetail.k40pvw116`)),1),f(`th`,null,i(n.$t(`dcwDetail.k3xho3117`)),1)])]),f(`tbody`,null,[(c(!0),p(m,null,l(t.queryResult.channels,t=>(c(),p(`tr`,{key:t.nodeId},[f(`td`,null,[b(i(t.ch),1),f(`small`,ya,i(t.unit),1)]),f(`td`,null,i(t.nodeName),1),f(`td`,ba,i(t.points.length),1),f(`td`,xa,i(s(t.points[0])),1),f(`td`,Sa,i(s(t.points[t.points.length-1])),1),f(`td`,Ca,i(e(O)(new Date(t.points[0]?.at??0).toISOString(),!1))+` ~ `+i(e(O)(new Date(t.points[t.points.length-1]?.at??0).toISOString(),!1)),1)]))),128))])])])):g(``,!0)]))}}),[[`__scopeId`,`data-v-ee60c0a5`]]),{__name:`DcwQueryCard`}),Ta={class:`aw-tile table-card`},Ea={class:`sec-label`},Da={class:`nodes-table`},Oa={class:`mono dim`},ka={class:`mono`},Aa={class:`mono dim`},ja={class:`dim`},Ma=Object.assign(D(s({__name:`DcwWriteHistoryCard`,props:{lineHistory:{}},setup(e){return(n,r)=>(c(),p(`section`,Ta,[f(`p`,Ea,i(n.$t(`dcwDetail.kw7ym9b148`))+` `+i(e.lineHistory.length)+` `+i(n.$t(`dcwDetail.k40bfz150`)),1),f(`table`,Da,[f(`tbody`,null,[(c(!0),p(m,null,l(e.lineHistory.slice(0,12),e=>(c(),p(`tr`,{key:e.id},[f(`td`,Oa,i(e.at.slice(5,19)),1),f(`td`,null,i(e.param),1),f(`td`,null,i(e.nodeName),1),f(`td`,ka,i(e.eng),1),f(`td`,Aa,` raw `+i(e.raw??`-`),1),f(`td`,null,[f(`span`,{class:t([`st-pill`,e.ok?`ok`:`alarm`])},i(e.ok?`ACK`:n.$t(`dcwDetail.k3yit7139`)),3)]),f(`td`,ja,i(e.recipeRunId?n.$t(`dcwDetail.k6vgks7181`,{p0:e.recipeRunId}):n.$t(`dcwDetail.manualTag`)),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-1ca86a1c`]]),{__name:`DcwWriteHistoryCard`}),Na={class:`modal`},Pa={class:`m-title`},Fa={class:`f-grid`},Ia={class:`f`},La=[`placeholder`],Ra={class:`f`},za=[`placeholder`],Ba={key:0,class:`m-err`},Va={class:`m-actions`},Ha=[`disabled`],Ua=Object.assign(D(s({__name:`DcwProductCreateModal`,props:h({productSaving:{type:Boolean},productError:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:h([`submit`,`close`],[`update:open`,`update:form`]),setup(e,{emit:t}){let n=t,r=o(e,`open`),a=o(e,`form`);return(t,o)=>r.value?(c(),p(`div`,{key:0,class:`modal-mask`,onClick:o[4]||=S(e=>r.value=!1,[`self`])},[f(`div`,Na,[f(`h3`,Pa,i(t.$t(`dcwDetail.k1efduyf118`)),1),f(`div`,Fa,[f(`label`,Ia,[f(`span`,null,[b(i(t.$t(`dcwDetail.k1avjrl6119`)),1),o[5]||=f(`em`,null,`*`,-1)]),y(f(`input`,{"onUpdate:modelValue":o[0]||=e=>a.value.name=e,class:`inp`,placeholder:t.$t(`dcwDetail.k12c11vm014`)},null,8,La),[[x,a.value.name]])]),f(`label`,Ra,[f(`span`,null,i(t.$t(`dcwDetail.k40gkk096`)),1),y(f(`input`,{"onUpdate:modelValue":o[1]||=e=>a.value.description=e,class:`inp`,placeholder:t.$t(`dcwDetail.k1hxx8hy015`)},null,8,za),[[x,a.value.description]])])]),e.productError?(c(),p(`p`,Ba,i(e.productError),1)):g(``,!0),f(`div`,Va,[f(`button`,{class:`aw-pill outline`,onClick:o[2]||=e=>r.value=!1},i(t.$t(`dcwDetail.k3xdnn052`)),1),f(`button`,{class:`pill-btn`,disabled:e.productSaving,onClick:o[3]||=e=>n(`submit`)},i(e.productSaving?t.$t(`dcwDetail.k1bg4759156`):t.$t(`dcwDetail.k1bg4kn6179`)),9,Ha)])])])):g(``,!0)}}),[[`__scopeId`,`data-v-aa17ef24`]]),{__name:`DcwProductCreateModal`}),Wa={class:`aw-tile ledger-card`},Ga={class:`ledger-head`},Ka={value:``},qa=[`value`],Ja={class:`ledger-tri`},Ya={class:`tri-cell`},Xa={class:`mono`},Za={class:`tri-cell`},Qa={class:`mono`},$a={class:`tri-cell`},eo={class:`mono`},to={class:`ledger-cols`},no={class:`ledger-col`},ro={class:`sec-t`},io={class:`ledger-list mono`},ao={class:`ledger-col`},oo={class:`sec-t`},so={class:`ledger-list`},co={class:`mono`},lo=Object.assign(D(s({__name:`DcwLedgerCard`,props:h({lineNodes:{},ledger:{}},{nodeId:{required:!0},nodeIdModifiers:{}}),emits:h([`load`,`rollback`],[`update:nodeId`]),setup(e,{emit:n}){let r=n,a=o(e,`nodeId`);return(n,o)=>(c(),p(`section`,Wa,[f(`div`,Ga,[f(`b`,null,i(n.$t(`dcwDetail.k1ledgt001`)),1),y(f(`select`,{"onUpdate:modelValue":o[0]||=e=>a.value=e,class:`inp`,onChange:o[1]||=e=>r(`load`)},[f(`option`,Ka,i(n.$t(`dcwDetail.k1ledgs001`)),1),(c(!0),p(m,null,l(e.lineNodes,e=>(c(),p(`option`,{key:e.id,value:e.id},i(e.name),9,qa))),128))],544),[[w,a.value]])]),e.ledger?(c(),p(m,{key:0},[f(`div`,Ja,[f(`div`,Ya,[f(`small`,null,i(n.$t(`dcwDetail.k1ledgv001`)),1),f(`b`,Xa,i(e.ledger.current??`--`),1)]),f(`div`,Za,[f(`small`,null,i(n.$t(`dcwDetail.k1ledgv002`)),1),f(`b`,Qa,i(e.ledger.recipeTarget??`--`),1)]),f(`div`,$a,[f(`small`,null,i(n.$t(`dcwDetail.k1ledgv003`)),1),f(`b`,eo,i(e.ledger.lastGood??`--`),1)]),f(`button`,{class:`mini-btn`,onClick:o[2]||=e=>r(`load`)},i(n.$t(`dcwDetail.k1ledga001`)),1),f(`button`,{class:`mini-btn danger`,onClick:o[3]||=e=>r(`rollback`)},i(n.$t(`dcwDetail.k1ledga002`)),1)]),f(`div`,to,[f(`div`,no,[f(`small`,ro,i(n.$t(`dcwDetail.k1ledgh001`)),1),f(`ul`,io,[(c(!0),p(m,null,l(e.ledger.journal,e=>(c(),p(`li`,{key:e.id},i(e.at.slice(5,16).replace(`T`,` `))+` [`+i(e.source)+`] `+i(e.prevValue??`?`)+` → `+i(e.newValue),1))),128))])]),f(`div`,ao,[f(`small`,oo,i(n.$t(`dcwDetail.k1ledgr001`)),1),f(`ul`,so,[(c(!0),p(m,null,l(e.ledger.records,e=>(c(),p(`li`,{key:e.id,class:`ledger-rec`},[f(`span`,{class:t([`rec-st`,e.status])},i(e.status),3),f(`span`,co,i(e.params[0]?.from??`?`)+` → `+i(e.params[0]?.to),1),f(`small`,null,i(e.judge?`${e.judge.verdict}(${e.judge.by})`:e.status===`open`?`open`:e.closedBy??``),1)]))),128))])])])],64)):g(``,!0)]))}}),[[`__scopeId`,`data-v-15a6bb00`]]),{__name:`DcwLedgerCard`}),uo={key:0,class:`page`},fo={class:`banner bad`},po={key:1,class:`page`},mo={key:3,class:`err`},ho=D(s({__name:`[id]`,setup(n){let r=P(),o=ce(),s=re(),l=ie(r),d=oe(r,l),m=M(r,d,l,o),h=se(r),y=N(r),x=ne(y),S=ae(r),{dcw:C,line:w,lineId:T,ls:E,lineNodes:D,lineProducts:O,lineRecipesAll:te,lineRuns:k,lineHistory:A,unassignedNodes:j,unassignedProducts:le,stateLabel:ue,dcwTemplateRefCh:de,nodeMin:fe,nodeMax:pe,lineDaqNodes:me,daqNodeCh:he,adoptNode:_e,adoptProduct:ve,productName:ye,paramStatus:be,paramNodeName:xe,daqWindowStatus:Se,nodeDeviceNames:Ce}=r,{setInputs:F,writingId:Te,writeError:I,writeOk:Ee,readingId:De,togglingId:Oe,stepPatchingId:Ae,doWrite:je,doRead:Me,toggleControl:Ne,patchStepLimit:Pe}=o,{ledgerNodeId:L,ledger:Fe,loadLedger:Ie,rollbackLedgerNode:Le}=s,{lineProductId:R,lineRecipeId:z,lineBusy:Re,lineMsg:ze,lineErr:Be,lineRecipes:Ve,doLineStart:He,doLineStop:Ue}=l,{filterProductId:B,visibleRecipes:Ge,productOpen:V,productSaving:Ke,productError:qe,productForm:H,doCreateProduct:Je}=d,{verOpen:U,verRecipe:Ye,verRows:Xe,verLoading:Ze,verMsg:Qe,doRevert:$e,recipeOpen:W,recipeEditing:et,recipeSaving:tt,recipeError:nt,recipeStaleNote:rt,recipeForm:G,applyResult:it,runDataView:at,runDataLoading:ot,openRecipeCreate:st,openRecipeEdit:ct,openRecipeHistory:lt,saveRecipe:ut,doApplyRecipe:dt,doViewRun:ft}=m,{query:K,queryBusy:pt,queryError:ht,queryResult:gt,doQuery:_t,daqParamKeys:vt}=h,{addOpen:q,addScenario:J,addTemplate:Y,addDriver:X,addName:Z,addHold:yt,addRead:bt,addWriteLock:xt,addStepLimit:St,addCfg:Ct,addTransform:wt,addSemantics:Tt,addTesting:Et,addTest:Dt,addMesTesting:Ot,addMesResult:kt,addSaving:At,addError:jt,addFields:Mt,driverCatalog:Nt,doTestConnection:Pt,doMesTestRead:Ft,doAddNode:It}=y,{tplOpen:Q,tplSaving:Lt,tplError:Rt,tplOk:zt,tplForm:Bt,tplIcons:Vt,builtinCount:Ht,customCount:Ut,openTplModal:Wt,doCreateTemplate:Gt}=x,{approvalItems:Kt,approvalComments:$,approvalDecidingId:qt,approvalRemainingSec:Jt,approvalAgentName:Yt,approvalNodeName:Xt,decideApproval:Zt}=S;return(n,r)=>{let o=ee,s=ge,l=we,d=ke,m=We,h=mt,y=Qt,x=mn,S=Kn,M=Zr,N=Fi,P=Yi,ne=wa,re=Ma,ie=Ua,ae=lo;return e(C).loaded&&!e(w)?(c(),p(`div`,uo,[f(`p`,fo,i(n.$t(`dcwDetail.k19337yp018`)),1),u(o,{class:`pill-btn`,to:`/dcw`},{default:_(()=>[b(i(n.$t(`dcwDetail.kllwu1c019`)),1)]),_:1})])):(c(),p(`div`,po,[u(s,{line:e(w),"line-id":e(T),"nodes-count":e(D).length,"products-count":e(O).length,"recipes-count":e(te).length},null,8,[`line`,`line-id`,`nodes-count`,`products-count`,`recipes-count`]),u(l,{running:e(C).controller.running,"nodes-online":e(C).controller.nodesOnline,"nodes-total":e(C).controller.nodesTotal,"writes-total":e(C).controller.writesTotal,"writes-failed":e(C).controller.writesFailed,onToggle:e(C).startStop,onOpenTemplates:e(Wt),onOpenAdd:r[0]||=e=>q.value=!0},null,8,[`running`,`nodes-online`,`nodes-total`,`writes-total`,`writes-failed`,`onToggle`,`onOpenTemplates`]),e(I)||e(Ee)?(c(),p(`p`,{key:0,class:t([`banner`,e(I)?`bad`:`good`])},i(e(I)||e(Ee)),3)):g(``,!0),u(d,{"unassigned-nodes":e(j),"unassigned-products":e(le),onAdoptNode:e(_e),onAdoptProduct:e(ve)},null,8,[`unassigned-nodes`,`unassigned-products`,`onAdoptNode`,`onAdoptProduct`]),u(m,{"product-id":e(R),"onUpdate:productId":r[1]||=e=>a(R)?R.value=e:null,"recipe-id":e(z),"onUpdate:recipeId":r[2]||=e=>a(z)?z.value=e:null,ls:e(E),"line-products":e(O),"line-recipes":e(Ve),"line-busy":e(Re),"line-msg":e(ze),"line-err":e(Be),onStart:e(He),onStop:e(Ue)},null,8,[`product-id`,`recipe-id`,`ls`,`line-products`,`line-recipes`,`line-busy`,`line-msg`,`line-err`,`onStart`,`onStop`]),u(h,{open:e(Q),"onUpdate:open":r[3]||=e=>a(Q)?Q.value=e:null,form:e(Bt),"onUpdate:form":r[4]||=e=>a(Bt)?Bt.value=e:null,templates:e(C).templates,"tpl-icons":e(Vt),"builtin-count":e(Ht),"custom-count":e(Ut),"tpl-saving":e(Lt),"tpl-error":e(Rt),"tpl-ok":e(zt),onSubmit:e(Gt),onClose:r[5]||=e=>Q.value=!1},null,8,[`open`,`form`,`templates`,`tpl-icons`,`builtin-count`,`custom-count`,`tpl-saving`,`tpl-error`,`tpl-ok`,`onSubmit`]),u(y,{open:e(q),"onUpdate:open":r[6]||=e=>a(q)?q.value=e:null,scenario:e(J),"onUpdate:scenario":r[7]||=e=>a(J)?J.value=e:null,template:e(Y),"onUpdate:template":r[8]||=e=>a(Y)?Y.value=e:null,driver:e(X),"onUpdate:driver":r[9]||=e=>a(X)?X.value=e:null,name:e(Z),"onUpdate:name":r[10]||=e=>a(Z)?Z.value=e:null,hold:e(yt),"onUpdate:hold":r[11]||=e=>a(yt)?yt.value=e:null,read:e(bt),"onUpdate:read":r[12]||=e=>a(bt)?bt.value=e:null,"write-lock":e(xt),"onUpdate:writeLock":r[13]||=e=>a(xt)?xt.value=e:null,"step-limit":e(St),"onUpdate:stepLimit":r[14]||=e=>a(St)?St.value=e:null,cfg:e(Ct),"onUpdate:cfg":r[15]||=e=>a(Ct)?Ct.value=e:null,transform:e(wt),"onUpdate:transform":r[16]||=e=>a(wt)?wt.value=e:null,semantics:e(Tt),"onUpdate:semantics":r[17]||=e=>a(Tt)?Tt.value=e:null,templates:e(C).templates,"driver-catalog":e(Nt),"add-fields":e(Mt),"add-testing":e(Et),"add-test":e(Dt),"add-mes-testing":e(Ot),"add-mes-result":e(kt),"add-saving":e(At),"add-error":e(jt),onTest:e(Pt),onMesTest:e(Ft),onSubmit:e(It)},null,8,[`open`,`scenario`,`template`,`driver`,`name`,`hold`,`read`,`write-lock`,`step-limit`,`cfg`,`transform`,`semantics`,`templates`,`driver-catalog`,`add-fields`,`add-testing`,`add-test`,`add-mes-testing`,`add-mes-result`,`add-saving`,`add-error`,`onTest`,`onMesTest`,`onSubmit`]),e(Kt).length?(c(),v(x,{key:1,comments:e($),"onUpdate:comments":r[18]||=e=>a($)?$.value=e:null,items:e(Kt),"deciding-id":e(qt),"remaining-sec":e(Jt),"agent-name":e(Yt),"node-name":e(Xt),onDecide:e(Zt)},null,8,[`comments`,`items`,`deciding-id`,`remaining-sec`,`agent-name`,`node-name`,`onDecide`])):g(``,!0),u(S,{"set-inputs":e(F),"onUpdate:setInputs":r[19]||=e=>a(F)?F.value=e:null,"line-nodes":e(D),"state-label":e(ue),"toggling-id":e(Oe),"reading-id":e(De),"writing-id":e(Te),"step-patching-id":e(Ae),loaded:e(C).loaded,error:e(C).error,"dcw-template-ref-ch":e(de),"node-device-names":e(Ce),onToggle:e(Ne),onRead:e(Me),onWrite:e(je),onPatchStepLimit:e(Pe),onRemove:e(C).removeNode},null,8,[`set-inputs`,`line-nodes`,`state-label`,`toggling-id`,`reading-id`,`writing-id`,`step-patching-id`,`loaded`,`error`,`dcw-template-ref-ch`,`node-device-names`,`onToggle`,`onRead`,`onWrite`,`onPatchStepLimit`,`onRemove`]),u(M,{"filter-product-id":e(B),"onUpdate:filterProductId":r[20]||=e=>a(B)?B.value=e:null,"line-products":e(O),"visible-recipes":e(Ge),"line-runs":e(k),"apply-result":e(it),"run-data-view":e(at),"run-data-loading":e(ot),"product-name":e(ye),"param-status":e(be),"param-node-name":e(xe),"daq-window-status":e(Se),"daq-node-ch":e(he),onCreate:e(st),onOpenProduct:r[21]||=e=>V.value=!0,onApply:e(dt),onEdit:e(ct),onHistory:e(lt),onRemoveRecipe:e(C).removeRecipe,onRemoveProduct:e(C).removeProduct,onViewRun:e(ft),onCloseRun:e(C).closeRun,onCloseRunData:r[22]||=e=>at.value=null},null,8,[`filter-product-id`,`line-products`,`visible-recipes`,`line-runs`,`apply-result`,`run-data-view`,`run-data-loading`,`product-name`,`param-status`,`param-node-name`,`daq-window-status`,`daq-node-ch`,`onCreate`,`onApply`,`onEdit`,`onHistory`,`onRemoveRecipe`,`onRemoveProduct`,`onViewRun`,`onCloseRun`]),u(N,{open:e(W),"onUpdate:open":r[23]||=e=>a(W)?W.value=e:null,form:e(G),"onUpdate:form":r[24]||=e=>a(G)?G.value=e:null,"line-products":e(O),"line-nodes":e(D),"line-daq-nodes":e(me),"line-id":e(T),"recipe-editing":e(et),"recipe-saving":e(tt),"recipe-error":e(nt),"recipe-stale-note":e(rt),"dcw-template-ref-ch":e(de),"node-min":e(fe),"node-max":e(pe),"param-status":e(be),onSubmit:e(ut),onClose:r[25]||=e=>W.value=!1},null,8,[`open`,`form`,`line-products`,`line-nodes`,`line-daq-nodes`,`line-id`,`recipe-editing`,`recipe-saving`,`recipe-error`,`recipe-stale-note`,`dcw-template-ref-ch`,`node-min`,`node-max`,`param-status`,`onSubmit`]),u(P,{open:e(U),"onUpdate:open":r[26]||=e=>a(U)?U.value=e:null,"ver-recipe":e(Ye),"ver-rows":e(Xe),"ver-loading":e(Ze),"ver-msg":e(Qe),"param-node-name":e(xe),onRevert:e($e),onClose:r[27]||=e=>U.value=!1},null,8,[`open`,`ver-recipe`,`ver-rows`,`ver-loading`,`ver-msg`,`param-node-name`,`onRevert`]),u(ne,{query:e(K),"onUpdate:query":r[28]||=e=>a(K)?K.value=e:null,"line-products":e(O),"visible-recipes":e(Ge),"line-daq-nodes":e(me),"daq-param-keys":e(vt),"query-busy":e(pt),"query-error":e(ht),"query-result":e(gt),onRun:e(_t)},null,8,[`query`,`line-products`,`visible-recipes`,`line-daq-nodes`,`daq-param-keys`,`query-busy`,`query-error`,`query-result`,`onRun`]),e(A).length?(c(),v(re,{key:2,"line-history":e(A)},null,8,[`line-history`])):g(``,!0),u(ie,{open:e(V),"onUpdate:open":r[29]||=e=>a(V)?V.value=e:null,form:e(H),"onUpdate:form":r[30]||=e=>a(H)?H.value=e:null,"product-saving":e(Ke),"product-error":e(qe),onSubmit:e(Je),onClose:r[31]||=e=>V.value=!1},null,8,[`open`,`form`,`product-saving`,`product-error`,`onSubmit`]),e(C).error?(c(),p(`p`,mo,[b(i(e(C).error)+`(`,1),u(o,{to:`/workshop`},{default:_(()=>[b(i(n.$t(`dcwDetail.k1bhhheq120`)),1)]),_:1}),r[33]||=b(`) `,-1)])):g(``,!0),u(ae,{"node-id":e(L),"onUpdate:nodeId":r[32]||=e=>a(L)?L.value=e:null,"line-nodes":e(D),ledger:e(Fe),onLoad:e(Ie),onRollback:e(Le)},null,8,[`node-id`,`line-nodes`,`ledger`,`onLoad`,`onRollback`])]))}}}),[[`__scopeId`,`data-v-3bc28b19`]]);export{ho as default};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./ByMj6e7s.js";import{t as r}from"./Bl5dYv4m.js";import{t as i}from"./D6lZftfy.js";var a=e({useDaqDetailBinding:()=>o});function o(e,a){let o=r(),s=i(),c=t(``),l=n(()=>(a.value?.deviceIds??(a.value?.deviceBindingId?[a.value.deviceBindingId]:[])).map(e=>s.twins.find(t=>t.id===e)?.name??`${e.slice(0,8)}…`).join(` / `));function u(){o.bindNode(e.value,a.value?.deviceBindingId?null:c.value||null)}return{bindDeviceId:c,boundDeviceName:l,onBindToggle:u,availableDevices:n(()=>s.twins.filter(e=>e.kind!==`daq`&&e.id!==a.value?.id))}}export{a as n,o as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{d as n}from"./ByMj6e7s.js";import{t as r}from"./BqYO-UfR.js";import{t as i}from"./DzwIZ81f.js";var a=e({useDaqDetailBinding:()=>o});function o(e,a){let o=r(),s=i(),c=t(``),l=n(()=>(a.value?.deviceIds??(a.value?.deviceBindingId?[a.value.deviceBindingId]:[])).map(e=>s.twins.find(t=>t.id===e)?.name??`${e.slice(0,8)}…`).join(` / `));function u(){o.bindNode(e.value,a.value?.deviceBindingId?null:c.value||null)}return{bindDeviceId:c,boundDeviceName:l,onBindToggle:u,availableDevices:n(()=>s.twins.filter(e=>e.kind!==`daq`&&e.id!==a.value?.id))}}export{a as n,o as t};
@@ -1,3 +1,3 @@
1
- import{N as e,dt as t,ft as n,g as r,mt as i,u as a,v as o}from"./CavpkQb0.js";import{P as s,Q as c,R as l,S as u,V as d,W as f,b as p,et as m,f as h,h as g,i as _,k as v,m as y,p as b,rt as x,y as S}from"./ByMj6e7s.js";import{c as C,d as w,s as T,u as E}from"./Dqz5HiXa.js";import{n as D}from"./DkpmSnHX.js";import{n as ee}from"./Cnrmlixo.js";import{t as te}from"./RAqsw632.js";import{a as ne}from"./wDPc4SSR.js";import{t as O}from"./BDNMzG2s2.js";import{t as re}from"./DWsgRq2c.js";import{t as ie}from"./JgheoP3e.js";import{t as ae}from"./Z-Z6EhXs.js";import{t as oe}from"./DCtk3qqr.js";import{t as se}from"./BiOSWsjD.js";import{c as ce,l as le,u as k}from"./B6Olw0Op.js";import{t as ue}from"./BQXCMsXk.js";import{t as de}from"./BGKUW7ra.js";import{t as A}from"./BqYVLAcm.js";import{r as fe,t as pe}from"./BE7BrEw6.js";import{t as me}from"./CQabB0oy.js";import{t as he}from"./DNoEoo8t.js";import{t as j}from"./ZuQtOnfI.js";import{t as ge}from"./CNs_Ozdc.js";import{t as _e}from"./B8cnjDtt.js";var ve={class:`aw-page-head`},M={class:`sub`},N={class:`badges mono`},ye=[`title`],P=[`title`],be=Object.assign(O(u({__name:`AmlPageHeader`,props:{overview:{},env:{},pythonText:{},venvText:{},uvText:{}},setup(e){return(n,r)=>(d(),g(`div`,ve,[h(`div`,null,[r[0]||=h(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / AML STUDIO `,-1),h(`h1`,null,i(n.$t(`aml.k1amlx001`)),1),h(`p`,M,i(n.$t(`aml.k1amlx002`)),1)]),h(`div`,N,[h(`span`,{class:t([`badge`,{bad:e.overview!=null&&!e.overview.runtime.python.ok}]),title:e.overview?.runtime.python.reason??``},`PYTHON · `+i(e.pythonText),11,ye),h(`span`,{class:t([`badge`,{bad:e.overview!=null&&!e.overview.runtime.venvReady}])},`VENV · `+i(e.venvText),3),h(`span`,{class:t([`badge`,{bad:e.env!=null&&!e.env.uv.ok}]),title:e.env?.uv.reason??e.env?.uv.path??``},`UV · `+i(e.uvText),11,P)])]))}}),[[`__scopeId`,`data-v-6556153b`]]),{__name:`AmlPageHeader`}),F={key:0,class:`infra-banner`},I={class:`txt`},xe={class:`mono`},Se=Object.assign(O(u({__name:`AmlInfraBanner`,props:{overview:{}},setup(e){return(t,n)=>e.overview!=null&&!e.overview.runtime.python.ok?(d(),g(`div`,F,[n[0]||=h(`span`,{class:`i-tabler-alert-triangle`},null,-1),h(`span`,I,[S(i(t.$t(`aml.k1amlx014`)),1),h(`b`,xe,i(e.overview.runtime.python.reason??``),1)])])):y(``,!0)}}),[[`__scopeId`,`data-v-b2590880`]]),{__name:`AmlInfraBanner`}),Ce={key:0,class:`aw-tile ov-card`},we={class:`ov-row mono`},Te={class:`ov-item`},L={class:`ov-item`},Ee={class:`ov-item`},De={class:`ov-item`},Oe=[`title`],R={key:1,class:`err`},ke=Object.assign(O(u({__name:`AmlOverviewBar`,props:{overview:{},overviewError:{},pythonText:{},venvText:{}},emits:[`reload`],setup(e){return(n,r)=>e.overview?(d(),g(`section`,Ce,[h(`div`,we,[h(`span`,{class:t([`ov-item`,e.overview.runtime.python.ok?`ok`:`bad`])},[h(`span`,{class:t(e.overview.runtime.python.ok?`i-tabler-circle-check`:`i-tabler-alert-triangle`)},null,2),S(` `+i(n.$t(`aml.k1amlx003`))+` · `+i(e.pythonText),1)],2),h(`span`,{class:t([`ov-item`,{ok:e.overview.runtime.venvReady}])},i(n.$t(`aml.k1amlx006`))+` · `+i(e.venvText),3),h(`span`,Te,[S(i(n.$t(`aml.k1amlx009`))+` `,1),h(`b`,null,i(e.overview.runtime.queued),1)]),h(`span`,L,[S(i(n.$t(`aml.k1amlx010`))+` `,1),h(`b`,null,i(e.overview.runtime.running),1)]),r[1]||=h(`span`,{class:`sep`},`·`,-1),h(`span`,Ee,[S(i(n.$t(`aml.k1amlx011`))+` `,1),h(`b`,null,i(e.overview.counts.datasets),1)]),h(`span`,De,[S(i(n.$t(`aml.k1amlx012`))+` `,1),h(`b`,null,i(e.overview.counts.models),1)]),h(`span`,{class:`ov-item accent`,title:n.$t(`aml.k1amlx013`)},[S(i(n.$t(`aml.k1amlx013`))+` `,1),h(`b`,null,i(e.overview.counts.productions),1)],8,Oe),h(`button`,{class:`mini-btn reload`,onClick:r[0]||=e=>n.$emit(`reload`)},i(n.$t(`aml.k1amlx017`)),1)])])):e.overviewError?(d(),g(`p`,R,i(n.$t(`aml.k1amlx015`))+`:`+i(e.overviewError),1)):y(``,!0)}}),[[`__scopeId`,`data-v-77db0a40`]]),{__name:`AmlOverviewBar`}),z={class:`aw-tile zone env-zone`},B={class:`zone-head`},Ae={class:`zone-actions`},je=[`disabled`],V={key:0,class:`infra-banner`},H={class:`txt`},Me={class:`mono`},Ne={class:`env-grid`},U={class:`ec-head`},Pe={class:`ec-state`},W={key:0,class:`ec-detail mono`},G={key:1,class:`ec-detail`},K={class:`ec-actions`},q=[`disabled`,`title`],J={class:`ec-head`},Y={class:`ec-state`},X={class:`ec-detail mono`},Fe={class:`ec-actions`},Z=[`disabled`,`title`],Ie=[`disabled`],Q={class:`env-card`},$={class:`ec-head`},Le={class:`ec-detail mono`},Re={class:`ec-detail dim`},ze={class:`ec-detail`},Be={class:`mono`},Ve={class:`dim`},He={class:`ec-head`},Ue={key:0,class:`ec-state`},We={key:0,class:`ec-detail mono`},Ge={key:1,class:`ec-issues mono`},Ke=[`title`],qe={class:`tag`},Je={class:`ec-actions`},Ye={key:1,class:`env-task`},Xe={class:`et-head mono`},Ze={class:`dim`},Qe={key:0,class:`dim`},$e={class:`et-log mono`},et={key:0,class:`err`},tt=Object.assign(O(u({__name:`AmlEnvPanel`,props:{env:{},inventory:{},envBusy:{type:Boolean},uvText:{},uvSourceText:{},blockerText:{},rootSourceLabel:{}},emits:[`recheck`,`installUv`,`createVenv`,`prune`],setup(n){let r=o(!1),{shortId:a}=A();return(o,s)=>(d(),g(`section`,z,[h(`div`,B,[h(`h2`,null,i(o.$t(`aml.k1amlx162`)),1),h(`div`,Ae,[h(`button`,{class:`mini-btn`,disabled:n.envBusy,onClick:s[0]||=e=>o.$emit(`recheck`)},i(o.$t(`aml.k1amlx175`)),9,je),h(`button`,{class:`mini-btn`,onClick:s[1]||=e=>r.value=!r.value},i(r.value?o.$t(`aml.k1amlx181`):o.$t(`aml.k1amlx180`)),1)])]),n.env.preflight.canRunJobs?y(``,!0):(d(),g(`div`,V,[s[6]||=h(`span`,{class:`i-tabler-alert-triangle`},null,-1),h(`span`,H,[S(i(o.$t(`aml.k1amlx178`))+`:`,1),h(`b`,Me,i(n.blockerText),1)])])),h(`div`,Ne,[h(`div`,{class:t([`env-card`,n.env.uv.ok?`ok`:`bad`])},[h(`div`,U,[h(`span`,{class:t(n.env.uv.ok?`i-tabler-circle-check`:`i-tabler-alert-triangle`)},null,2),h(`b`,null,i(o.$t(`aml.k1amlx163`)),1),h(`span`,Pe,i(n.uvText),1)]),n.env.uv.ok?(d(),g(`p`,W,[S(i(n.env.uv.path),1),n.uvSourceText?(d(),g(_,{key:0},[S(` · `+i(n.uvSourceText),1)],64)):y(``,!0)])):(d(),g(`p`,G,i(o.$t(`aml.k1amlx177`)),1)),h(`div`,K,[n.env.uv.ok?y(``,!0):(d(),g(`button`,{key:0,class:`mini-btn primary`,disabled:n.envBusy,title:o.$t(`aml.k1amlx176`),onClick:s[2]||=e=>o.$emit(`installUv`)},[s[7]||=h(`span`,{class:`i-tabler-download`},null,-1),S(` `+i(n.env.task?.kind===`install-uv`&&n.env.task.status===`running`?o.$t(`aml.k1amlx167`):o.$t(`aml.k1amlx166`)),1)],8,q))])],2),h(`div`,{class:t([`env-card`,n.env.venv.ready?`ok`:`bad`])},[h(`div`,J,[h(`span`,{class:t(n.env.venv.ready?`i-tabler-circle-check`:`i-tabler-alert-triangle`)},null,2),h(`b`,null,i(o.$t(`aml.k1amlx168`)),1),h(`span`,Y,i(n.env.venv.ready?o.$t(`aml.k1amlx007`):o.$t(`aml.k1amlx008`)),1)]),h(`p`,X,[S(i(n.env.venv.dir)+` `,1),n.env.venv.ready?(d(),g(_,{key:0},[S(` · `+i(n.env.venv.sizeMb)+` MB `,1)],64)):y(``,!0)]),h(`div`,Fe,[h(`button`,{class:`mini-btn primary`,disabled:n.envBusy||!n.env.python.ok,title:n.env.python.ok?``:n.env.python.reason??``,onClick:s[3]||=e=>o.$emit(`createVenv`,!1)},[s[8]||=h(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(n.env.task?.kind===`create-venv`&&n.env.task.status===`running`?o.$t(`aml.k1amlx170`):o.$t(`aml.k1amlx168`)),1)],8,Z),n.env.venv.ready?(d(),g(`button`,{key:0,class:`mini-btn`,disabled:n.envBusy,onClick:s[4]||=e=>o.$emit(`createVenv`,!0)},i(o.$t(`aml.k1amlx169`)),9,Ie)):y(``,!0)])],2),h(`div`,Q,[h(`div`,$,[s[9]||=h(`span`,{class:`i-tabler-folder`},null,-1),h(`b`,null,i(o.$t(`aml.k1amlx171`)),1)]),h(`p`,Le,i(n.env.amlRoot),1),h(`p`,Re,i(o.$t(`aml.k1amlx201`)),1),h(`p`,ze,[S(i(o.$t(`aml.k1amlx174`))+`: `,1),h(`b`,Be,i(n.env.disk.usedMb)+` / `+i(n.env.disk.quotaMb)+` MB`,1),h(`span`,Ve,` · `+i(n.rootSourceLabel),1)])]),h(`div`,{class:t([`env-card`,n.inventory==null?``:n.inventory.ok?`ok`:`bad`])},[h(`div`,He,[h(`span`,{class:t(n.inventory?.ok===!1?`i-tabler-alert-triangle`:`i-tabler-database`)},null,2),h(`b`,null,i(o.$t(`aml.k1amlx182`)),1),n.inventory?(d(),g(`span`,Ue,i(n.inventory.ok?o.$t(`aml.k1amlx183`):o.$t(`aml.k1amlx184`)),1)):y(``,!0)]),n.inventory?(d(),g(`p`,We,i(o.$t(`aml.k1amlx011`))+` `+i(n.inventory.counts.datasets)+`/`+i(n.inventory.entities.datasets)+` · `+i(o.$t(`aml.k1amlx010`))+` `+i(n.inventory.counts.jobs)+`/`+i(n.inventory.entities.jobs)+` · `+i(o.$t(`aml.k1amlx012`))+` `+i(n.inventory.counts.models)+`/`+i(n.inventory.entities.models),1)):y(``,!0),n.inventory&&n.inventory.issues.length>0?(d(),g(`ul`,Ge,[(d(!0),g(_,null,f(n.inventory.issues.slice(0,5),t=>(d(),g(`li`,{key:`${t.kind}:${t.id}:${t.problem}`,title:t.detail},[h(`span`,qe,i(t.problem===`entity_missing`?o.$t(`aml.k1amlx185`):t.problem===`orphan_dir`?o.$t(`aml.k1amlx186`):o.$t(`aml.k1amlx187`)),1),S(` `+i(t.kind)+` `+i(e(a)(t.id)),1)],8,Ke))),128))])):y(``,!0),h(`div`,Je,[n.inventory&&n.inventory.issues.some(e=>e.problem===`orphan_dir`)?(d(),g(`button`,{key:0,class:`mini-btn`,onClick:s[5]||=e=>o.$emit(`prune`)},[s[10]||=h(`span`,{class:`i-tabler-trash`},null,-1),S(` `+i(o.$t(`aml.k1amlx188`)),1)])):y(``,!0)])],2)]),n.env.task&&r.value?(d(),g(`div`,Ye,[h(`div`,Xe,[h(`span`,{class:t(n.env.task.status===`running`?`i-tabler-loader-2 spin`:n.env.task.status===`done`?`i-tabler-circle-check`:`i-tabler-alert-triangle`)},null,2),h(`b`,null,i(n.env.task.kind),1),h(`span`,Ze,i(n.env.task.status),1),n.env.task.status===`running`?(d(),g(`span`,Qe,`· `+i(o.$t(`aml.k1amlx179`)),1)):y(``,!0)]),h(`pre`,$e,i(n.env.task.log.slice(-40).join(`
1
+ import{N as e,dt as t,ft as n,g as r,mt as i,u as a,v as o}from"./CavpkQb0.js";import{P as s,Q as c,R as l,S as u,V as d,W as f,b as p,et as m,f as h,h as g,i as _,k as v,m as y,p as b,rt as x,y as S}from"./ByMj6e7s.js";import{c as C,d as w,s as T,u as E}from"./Dqz5HiXa.js";import{n as D}from"./DkpmSnHX.js";import{n as ee}from"./Cnrmlixo.js";import{t as te}from"./RAqsw632.js";import{a as ne}from"./wDPc4SSR.js";import{t as O}from"./BDNMzG2s2.js";import{t as re}from"./DuPM4HXw.js";import{t as ie}from"./JgheoP3e.js";import{t as ae}from"./C-LU6xv_.js";import{t as oe}from"./D8xUsQGt.js";import{t as se}from"./Cg8Pgbeu.js";import{c as ce,l as le,u as k}from"./B6Olw0Op.js";import{t as ue}from"./CMWyj56j.js";import{t as de}from"./Btx8wL4-.js";import{t as A}from"./BqYVLAcm.js";import{r as fe,t as pe}from"./DNZmwhSD.js";import{t as me}from"./D9TpiWjt.js";import{t as he}from"./Dz2SLIde.js";import{t as j}from"./vPfDYgvR.js";import{t as ge}from"./CNs_Ozdc.js";import{t as _e}from"./B8cnjDtt.js";var ve={class:`aw-page-head`},M={class:`sub`},N={class:`badges mono`},ye=[`title`],P=[`title`],be=Object.assign(O(u({__name:`AmlPageHeader`,props:{overview:{},env:{},pythonText:{},venvText:{},uvText:{}},setup(e){return(n,r)=>(d(),g(`div`,ve,[h(`div`,null,[r[0]||=h(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / AML STUDIO `,-1),h(`h1`,null,i(n.$t(`aml.k1amlx001`)),1),h(`p`,M,i(n.$t(`aml.k1amlx002`)),1)]),h(`div`,N,[h(`span`,{class:t([`badge`,{bad:e.overview!=null&&!e.overview.runtime.python.ok}]),title:e.overview?.runtime.python.reason??``},`PYTHON · `+i(e.pythonText),11,ye),h(`span`,{class:t([`badge`,{bad:e.overview!=null&&!e.overview.runtime.venvReady}])},`VENV · `+i(e.venvText),3),h(`span`,{class:t([`badge`,{bad:e.env!=null&&!e.env.uv.ok}]),title:e.env?.uv.reason??e.env?.uv.path??``},`UV · `+i(e.uvText),11,P)])]))}}),[[`__scopeId`,`data-v-6556153b`]]),{__name:`AmlPageHeader`}),F={key:0,class:`infra-banner`},I={class:`txt`},xe={class:`mono`},Se=Object.assign(O(u({__name:`AmlInfraBanner`,props:{overview:{}},setup(e){return(t,n)=>e.overview!=null&&!e.overview.runtime.python.ok?(d(),g(`div`,F,[n[0]||=h(`span`,{class:`i-tabler-alert-triangle`},null,-1),h(`span`,I,[S(i(t.$t(`aml.k1amlx014`)),1),h(`b`,xe,i(e.overview.runtime.python.reason??``),1)])])):y(``,!0)}}),[[`__scopeId`,`data-v-b2590880`]]),{__name:`AmlInfraBanner`}),Ce={key:0,class:`aw-tile ov-card`},we={class:`ov-row mono`},Te={class:`ov-item`},L={class:`ov-item`},Ee={class:`ov-item`},De={class:`ov-item`},Oe=[`title`],R={key:1,class:`err`},ke=Object.assign(O(u({__name:`AmlOverviewBar`,props:{overview:{},overviewError:{},pythonText:{},venvText:{}},emits:[`reload`],setup(e){return(n,r)=>e.overview?(d(),g(`section`,Ce,[h(`div`,we,[h(`span`,{class:t([`ov-item`,e.overview.runtime.python.ok?`ok`:`bad`])},[h(`span`,{class:t(e.overview.runtime.python.ok?`i-tabler-circle-check`:`i-tabler-alert-triangle`)},null,2),S(` `+i(n.$t(`aml.k1amlx003`))+` · `+i(e.pythonText),1)],2),h(`span`,{class:t([`ov-item`,{ok:e.overview.runtime.venvReady}])},i(n.$t(`aml.k1amlx006`))+` · `+i(e.venvText),3),h(`span`,Te,[S(i(n.$t(`aml.k1amlx009`))+` `,1),h(`b`,null,i(e.overview.runtime.queued),1)]),h(`span`,L,[S(i(n.$t(`aml.k1amlx010`))+` `,1),h(`b`,null,i(e.overview.runtime.running),1)]),r[1]||=h(`span`,{class:`sep`},`·`,-1),h(`span`,Ee,[S(i(n.$t(`aml.k1amlx011`))+` `,1),h(`b`,null,i(e.overview.counts.datasets),1)]),h(`span`,De,[S(i(n.$t(`aml.k1amlx012`))+` `,1),h(`b`,null,i(e.overview.counts.models),1)]),h(`span`,{class:`ov-item accent`,title:n.$t(`aml.k1amlx013`)},[S(i(n.$t(`aml.k1amlx013`))+` `,1),h(`b`,null,i(e.overview.counts.productions),1)],8,Oe),h(`button`,{class:`mini-btn reload`,onClick:r[0]||=e=>n.$emit(`reload`)},i(n.$t(`aml.k1amlx017`)),1)])])):e.overviewError?(d(),g(`p`,R,i(n.$t(`aml.k1amlx015`))+`:`+i(e.overviewError),1)):y(``,!0)}}),[[`__scopeId`,`data-v-77db0a40`]]),{__name:`AmlOverviewBar`}),z={class:`aw-tile zone env-zone`},B={class:`zone-head`},Ae={class:`zone-actions`},je=[`disabled`],V={key:0,class:`infra-banner`},H={class:`txt`},Me={class:`mono`},Ne={class:`env-grid`},U={class:`ec-head`},Pe={class:`ec-state`},W={key:0,class:`ec-detail mono`},G={key:1,class:`ec-detail`},K={class:`ec-actions`},q=[`disabled`,`title`],J={class:`ec-head`},Y={class:`ec-state`},X={class:`ec-detail mono`},Fe={class:`ec-actions`},Z=[`disabled`,`title`],Ie=[`disabled`],Q={class:`env-card`},$={class:`ec-head`},Le={class:`ec-detail mono`},Re={class:`ec-detail dim`},ze={class:`ec-detail`},Be={class:`mono`},Ve={class:`dim`},He={class:`ec-head`},Ue={key:0,class:`ec-state`},We={key:0,class:`ec-detail mono`},Ge={key:1,class:`ec-issues mono`},Ke=[`title`],qe={class:`tag`},Je={class:`ec-actions`},Ye={key:1,class:`env-task`},Xe={class:`et-head mono`},Ze={class:`dim`},Qe={key:0,class:`dim`},$e={class:`et-log mono`},et={key:0,class:`err`},tt=Object.assign(O(u({__name:`AmlEnvPanel`,props:{env:{},inventory:{},envBusy:{type:Boolean},uvText:{},uvSourceText:{},blockerText:{},rootSourceLabel:{}},emits:[`recheck`,`installUv`,`createVenv`,`prune`],setup(n){let r=o(!1),{shortId:a}=A();return(o,s)=>(d(),g(`section`,z,[h(`div`,B,[h(`h2`,null,i(o.$t(`aml.k1amlx162`)),1),h(`div`,Ae,[h(`button`,{class:`mini-btn`,disabled:n.envBusy,onClick:s[0]||=e=>o.$emit(`recheck`)},i(o.$t(`aml.k1amlx175`)),9,je),h(`button`,{class:`mini-btn`,onClick:s[1]||=e=>r.value=!r.value},i(r.value?o.$t(`aml.k1amlx181`):o.$t(`aml.k1amlx180`)),1)])]),n.env.preflight.canRunJobs?y(``,!0):(d(),g(`div`,V,[s[6]||=h(`span`,{class:`i-tabler-alert-triangle`},null,-1),h(`span`,H,[S(i(o.$t(`aml.k1amlx178`))+`:`,1),h(`b`,Me,i(n.blockerText),1)])])),h(`div`,Ne,[h(`div`,{class:t([`env-card`,n.env.uv.ok?`ok`:`bad`])},[h(`div`,U,[h(`span`,{class:t(n.env.uv.ok?`i-tabler-circle-check`:`i-tabler-alert-triangle`)},null,2),h(`b`,null,i(o.$t(`aml.k1amlx163`)),1),h(`span`,Pe,i(n.uvText),1)]),n.env.uv.ok?(d(),g(`p`,W,[S(i(n.env.uv.path),1),n.uvSourceText?(d(),g(_,{key:0},[S(` · `+i(n.uvSourceText),1)],64)):y(``,!0)])):(d(),g(`p`,G,i(o.$t(`aml.k1amlx177`)),1)),h(`div`,K,[n.env.uv.ok?y(``,!0):(d(),g(`button`,{key:0,class:`mini-btn primary`,disabled:n.envBusy,title:o.$t(`aml.k1amlx176`),onClick:s[2]||=e=>o.$emit(`installUv`)},[s[7]||=h(`span`,{class:`i-tabler-download`},null,-1),S(` `+i(n.env.task?.kind===`install-uv`&&n.env.task.status===`running`?o.$t(`aml.k1amlx167`):o.$t(`aml.k1amlx166`)),1)],8,q))])],2),h(`div`,{class:t([`env-card`,n.env.venv.ready?`ok`:`bad`])},[h(`div`,J,[h(`span`,{class:t(n.env.venv.ready?`i-tabler-circle-check`:`i-tabler-alert-triangle`)},null,2),h(`b`,null,i(o.$t(`aml.k1amlx168`)),1),h(`span`,Y,i(n.env.venv.ready?o.$t(`aml.k1amlx007`):o.$t(`aml.k1amlx008`)),1)]),h(`p`,X,[S(i(n.env.venv.dir)+` `,1),n.env.venv.ready?(d(),g(_,{key:0},[S(` · `+i(n.env.venv.sizeMb)+` MB `,1)],64)):y(``,!0)]),h(`div`,Fe,[h(`button`,{class:`mini-btn primary`,disabled:n.envBusy||!n.env.python.ok,title:n.env.python.ok?``:n.env.python.reason??``,onClick:s[3]||=e=>o.$emit(`createVenv`,!1)},[s[8]||=h(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(n.env.task?.kind===`create-venv`&&n.env.task.status===`running`?o.$t(`aml.k1amlx170`):o.$t(`aml.k1amlx168`)),1)],8,Z),n.env.venv.ready?(d(),g(`button`,{key:0,class:`mini-btn`,disabled:n.envBusy,onClick:s[4]||=e=>o.$emit(`createVenv`,!0)},i(o.$t(`aml.k1amlx169`)),9,Ie)):y(``,!0)])],2),h(`div`,Q,[h(`div`,$,[s[9]||=h(`span`,{class:`i-tabler-folder`},null,-1),h(`b`,null,i(o.$t(`aml.k1amlx171`)),1)]),h(`p`,Le,i(n.env.amlRoot),1),h(`p`,Re,i(o.$t(`aml.k1amlx201`)),1),h(`p`,ze,[S(i(o.$t(`aml.k1amlx174`))+`: `,1),h(`b`,Be,i(n.env.disk.usedMb)+` / `+i(n.env.disk.quotaMb)+` MB`,1),h(`span`,Ve,` · `+i(n.rootSourceLabel),1)])]),h(`div`,{class:t([`env-card`,n.inventory==null?``:n.inventory.ok?`ok`:`bad`])},[h(`div`,He,[h(`span`,{class:t(n.inventory?.ok===!1?`i-tabler-alert-triangle`:`i-tabler-database`)},null,2),h(`b`,null,i(o.$t(`aml.k1amlx182`)),1),n.inventory?(d(),g(`span`,Ue,i(n.inventory.ok?o.$t(`aml.k1amlx183`):o.$t(`aml.k1amlx184`)),1)):y(``,!0)]),n.inventory?(d(),g(`p`,We,i(o.$t(`aml.k1amlx011`))+` `+i(n.inventory.counts.datasets)+`/`+i(n.inventory.entities.datasets)+` · `+i(o.$t(`aml.k1amlx010`))+` `+i(n.inventory.counts.jobs)+`/`+i(n.inventory.entities.jobs)+` · `+i(o.$t(`aml.k1amlx012`))+` `+i(n.inventory.counts.models)+`/`+i(n.inventory.entities.models),1)):y(``,!0),n.inventory&&n.inventory.issues.length>0?(d(),g(`ul`,Ge,[(d(!0),g(_,null,f(n.inventory.issues.slice(0,5),t=>(d(),g(`li`,{key:`${t.kind}:${t.id}:${t.problem}`,title:t.detail},[h(`span`,qe,i(t.problem===`entity_missing`?o.$t(`aml.k1amlx185`):t.problem===`orphan_dir`?o.$t(`aml.k1amlx186`):o.$t(`aml.k1amlx187`)),1),S(` `+i(t.kind)+` `+i(e(a)(t.id)),1)],8,Ke))),128))])):y(``,!0),h(`div`,Je,[n.inventory&&n.inventory.issues.some(e=>e.problem===`orphan_dir`)?(d(),g(`button`,{key:0,class:`mini-btn`,onClick:s[5]||=e=>o.$emit(`prune`)},[s[10]||=h(`span`,{class:`i-tabler-trash`},null,-1),S(` `+i(o.$t(`aml.k1amlx188`)),1)])):y(``,!0)])],2)]),n.env.task&&r.value?(d(),g(`div`,Ye,[h(`div`,Xe,[h(`span`,{class:t(n.env.task.status===`running`?`i-tabler-loader-2 spin`:n.env.task.status===`done`?`i-tabler-circle-check`:`i-tabler-alert-triangle`)},null,2),h(`b`,null,i(n.env.task.kind),1),h(`span`,Ze,i(n.env.task.status),1),n.env.task.status===`running`?(d(),g(`span`,Qe,`· `+i(o.$t(`aml.k1amlx179`)),1)):y(``,!0)]),h(`pre`,$e,i(n.env.task.log.slice(-40).join(`
2
2
  `)),1),n.env.task.error?(d(),g(`p`,et,i(n.env.task.error),1)):y(``,!0)])):y(``,!0)]))}}),[[`__scopeId`,`data-v-c33b3744`]]),{__name:`AmlEnvPanel`}),nt={class:`aw-tile zone`},rt={class:`zone-head`},it={class:`mono cnt`},at={class:`zone-actions`},ot={key:0,class:`tbl-scroll`},st={class:`tbl tbl-datasets`},ct={class:`num`},lt={class:`num`},ut=[`onClick`],dt={class:`mono dim`},ft={class:`mono`},pt={class:`mono`},mt={class:`mono num`},ht={class:`mono num`},gt={key:0,class:`note-edit`},_t=[`placeholder`,`onKeyup`],vt=[`onClick`],yt={key:1,class:`note-text`},bt=[`title`],xt=[`title`,`onClick`],St=[`title`,`onClick`],Ct={key:0,class:`detail-row`},wt={colspan:`7`},Tt={key:0,class:`dim pad`},Et={key:1,class:`err pad`},Dt={key:2,class:`det-grid`},Ot={class:`det-title`},kt={class:`sub-tbl`},At={class:`num`},jt={class:`num`},Mt={class:`num`},Nt={class:`num`},Pt={class:`num`},Ft={class:`mono`},It={class:`role-chip`},Lt={class:`mono num`},Rt={class:`mono num`},zt={class:`mono num`},Bt={class:`mono num`},Vt={class:`mono num`},Ht={class:`det-title`},Ut={key:0,class:`sub-tbl`},Wt={class:`num`},Gt={class:`num`},Kt={class:`mono`},qt={class:`mono`},Jt={class:`mono num`},Yt={class:`mono num`},Xt={key:1,class:`dim`},Zt={class:`det-title`},Qt={class:`mono dim run-line`},$t={key:3,class:`dim pad`},en={key:1,class:`empty`},tn=Object.assign(O(u({__name:`AmlDatasetTable`,props:v({datasets:{},expandedDs:{},dsDetails:{},noteEditing:{}},{noteDraft:{required:!0},noteDraftModifiers:{}}),emits:v([`toggle`,`reload`,`create`,`editNote`,`saveNote`,`cancelNote`,`remove`],[`update:noteDraft`]),setup(n){let r=c(n,`noteDraft`),{fmtTime:a,fmtNum:o,fmtPct:s,shortId:l}=A();return(c,u)=>(d(),g(`section`,nt,[h(`div`,rt,[h(`h2`,null,[u[6]||=h(`span`,{class:`i-tabler-database`},null,-1),S(` `+i(c.$t(`aml.k1amlx016`))+` `,1),h(`b`,it,i(n.datasets.length),1)]),h(`div`,at,[h(`button`,{class:`mini-btn`,onClick:u[0]||=e=>c.$emit(`reload`)},i(c.$t(`aml.k1amlx017`)),1),h(`button`,{class:`pill-btn`,onClick:u[1]||=e=>c.$emit(`create`)},[u[7]||=h(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(c.$t(`aml.k1amlx018`)),1)])])]),n.datasets.length?(d(),g(`div`,ot,[h(`table`,st,[h(`thead`,null,[h(`tr`,null,[h(`th`,null,i(c.$t(`aml.k1amlx020`)),1),h(`th`,null,i(c.$t(`aml.k1amlx021`)),1),h(`th`,null,i(c.$t(`aml.k1amlx022`)),1),h(`th`,ct,i(c.$t(`aml.k1amlx023`)),1),h(`th`,lt,i(c.$t(`aml.k1amlx024`)),1),h(`th`,null,i(c.$t(`aml.k1amlx025`)),1),h(`th`,null,i(c.$t(`aml.k1amlx026`)),1)])]),h(`tbody`,null,[(d(!0),g(_,null,f(n.datasets,p=>(d(),g(_,{key:p.id},[h(`tr`,{class:t([`row-main`,{open:n.expandedDs===p.id}]),onClick:e=>c.$emit(`toggle`,p.id)},[h(`td`,dt,i(e(a)(p.createdAt)),1),h(`td`,ft,i(e(l)(p.productId)),1),h(`td`,pt,i(e(l)(p.recipeId)),1),h(`td`,mt,i(p.rowCount),1),h(`td`,ht,i(p.runIds.length),1),h(`td`,null,[S(i(p.createdBy),1),h(`small`,{class:t([`kind`,p.createdByKind])},i(p.createdByKind===`agent`?`Agent`:c.$t(`aml.k1amlx049`)),3)]),h(`td`,{class:`note-cell`,onClick:u[5]||=w(()=>{},[`stop`])},[n.noteEditing===p.id?(d(),g(`div`,gt,[x(h(`input`,{"onUpdate:modelValue":u[2]||=e=>r.value=e,placeholder:c.$t(`aml.k1amlx189`),onKeyup:[E(e=>c.$emit(`saveNote`,p.id),[`enter`]),u[3]||=E(e=>c.$emit(`cancelNote`),[`esc`])]},null,40,_t),[[C,r.value]]),h(`button`,{class:`mini-btn`,onClick:e=>c.$emit(`saveNote`,p.id)},i(c.$t(`aml.k1amlx191`)),9,vt),h(`button`,{class:`mini-btn`,onClick:u[4]||=e=>c.$emit(`cancelNote`)},i(c.$t(`aml.k1amlx202`)),1)])):(d(),g(`span`,yt,[h(`span`,{class:`note`,title:p.note},i(p.note||`--`),9,bt),h(`span`,{class:`i-tabler-pencil edit-i`,title:c.$t(`aml.k1amlx189`),onClick:e=>c.$emit(`editNote`,p.id,p.note)},null,8,xt),h(`span`,{class:`i-tabler-trash edit-i`,title:c.$t(`aml.k1amlx190`),onClick:e=>c.$emit(`remove`,p.id,c.$t(`aml.k1amlx198`))},null,8,St)]))])],10,ut),n.expandedDs===p.id?(d(),g(`tr`,Ct,[h(`td`,wt,[n.dsDetails[p.id]?.loading?(d(),g(`div`,Tt,i(c.$t(`aml.k1amlx030`)),1)):n.dsDetails[p.id]?.error?(d(),g(`div`,Et,i(c.$t(`aml.k1amlx031`))+`:`+i(n.dsDetails[p.id]?.error),1)):n.dsDetails[p.id]?.report?(d(),g(`div`,Dt,[h(`div`,null,[h(`p`,Ot,i(c.$t(`aml.k1amlx027`)),1),h(`table`,kt,[h(`thead`,null,[h(`tr`,null,[h(`th`,null,i(c.$t(`aml.k1amlx033`)),1),h(`th`,null,i(c.$t(`aml.k1amlx034`)),1),h(`th`,At,i(c.$t(`aml.k1amlx035`)),1),h(`th`,jt,i(c.$t(`aml.k1amlx036`)),1),h(`th`,Mt,i(c.$t(`aml.k1amlx037`)),1),h(`th`,Nt,i(c.$t(`aml.k1amlx038`)),1),h(`th`,Pt,i(c.$t(`aml.k1amlx039`)),1)])]),h(`tbody`,null,[(d(!0),g(_,null,f(n.dsDetails[p.id]?.report?.nodeSummaries,t=>(d(),g(`tr`,{key:t.nodeId},[h(`td`,Ft,i(t.nodeId),1),h(`td`,null,[h(`small`,It,i(t.role),1)]),h(`td`,Lt,i(e(s)(t.cleanedRatio)),1),h(`td`,Rt,i(e(s)(t.missingRatio)),1),h(`td`,zt,i(e(o)(t.mean,3)),1),h(`td`,Bt,i(e(o)(t.std,3)),1),h(`td`,Vt,i(e(o)(t.min,2))+`~`+i(e(o)(t.max,2)),1)]))),128))])])]),h(`div`,null,[h(`p`,Ht,i(c.$t(`aml.k1amlx028`)),1),n.dsDetails[p.id]?.report?.lagEstimates.length?(d(),g(`table`,Ut,[h(`thead`,null,[h(`tr`,null,[h(`th`,null,i(c.$t(`aml.k1amlx040`)),1),h(`th`,null,i(c.$t(`aml.k1amlx041`)),1),h(`th`,Wt,i(c.$t(`aml.k1amlx042`)),1),h(`th`,Gt,i(c.$t(`aml.k1amlx043`)),1)])]),h(`tbody`,null,[(d(!0),g(_,null,f(n.dsDetails[p.id]?.report?.lagEstimates,t=>(d(),g(`tr`,{key:`${t.controlId}->${t.targetId}`},[h(`td`,Kt,i(t.controlId),1),h(`td`,qt,i(t.targetId),1),h(`td`,Jt,i(t.lagSteps),1),h(`td`,Yt,i(e(o)(t.corr,3)),1)]))),128))])])):(d(),g(`p`,Xt,i(c.$t(`aml.k1amlx032`)),1)),h(`p`,Zt,i(c.$t(`aml.k1amlx029`)),1),h(`p`,Qt,[S(i(c.$t(`aml.k1amlx044`))+` `,1),h(`b`,null,i(n.dsDetails[p.id]?.report?.runsUsed.length??0),1),S(` · `+i(c.$t(`aml.k1amlx045`))+` `,1),h(`b`,null,i(n.dsDetails[p.id]?.report?.runsDropped.length??0),1),S(` · `+i(c.$t(`aml.k1amlx046`))+` `,1),h(`b`,null,i(n.dsDetails[p.id]?.report?.windowCount.train)+`/`+i(n.dsDetails[p.id]?.report?.windowCount.val)+`/`+i(n.dsDetails[p.id]?.report?.windowCount.test),1)]),(d(!0),g(_,null,f(n.dsDetails[p.id]?.report?.runsDropped,t=>(d(),g(`p`,{key:t.runId,class:`mono drop-line`},` ✗ `+i(e(l)(t.runId))+` — `+i(t.reason),1))),128))])])):(d(),g(`p`,$t,i(c.$t(`aml.k1amlx047`)),1))])])):y(``,!0)],64))),128))])])])):(d(),g(`p`,en,i(c.$t(`aml.k1amlx019`)),1))]))}}),[[`__scopeId`,`data-v-ff727fc7`]]),{__name:`AmlDatasetTable`}),nn={class:`aw-tile zone`},rn={class:`zone-head`},an={class:`mono cnt`},on=[`title`],sn={key:0,class:`tbl-scroll`},cn={class:`tbl tbl-jobs`},ln={class:`prog-th`},un={class:`right`},dn=[`onClick`],fn={class:`mono`},pn={class:`mono dim`},mn={class:`mono dim`},hn={class:`mono dim`},gn={class:`prog-cell`},_n={class:`prog`},vn={class:`mono prog-num`},yn={class:`mono dim`},bn={class:`right acts`},xn=[`disabled`,`onClick`],Sn=[`disabled`,`onClick`],Cn=[`title`,`onClick`],wn={key:0,class:`detail-row`},Tn={colspan:`8`},En={key:0,class:`dim pad`},Dn={key:1,class:`err pad`},On={key:2,class:`det-grid`},kn={class:`det-title`},An={key:0,class:`sub-tbl`},jn={class:`num`},Mn={class:`num`},Nn={class:`mono gate-id`},Pn={class:`dim`},Fn={class:`mono num`},In={class:`mono num dim`},Ln={class:`dim gate-detail`},Rn={key:1,class:`dim`},zn={key:2,class:`mono dim gate-detail`},Bn={key:3,class:`err gate-detail`},Vn={class:`det-title`},Hn={key:0,class:`mono live-hint`},Un={class:`logs`},Wn={key:1,class:`empty`},Gn=Object.assign(O(u({__name:`AmlJobsTable`,props:{jobRows:{},expandedJob:{},jobDetails:{},confirmCancel:{},cancelling:{},confirmRetry:{},retrying:{}},emits:[`toggle`,`reload`,`cancel`,`retry`,`remove`],setup(r){let{fmtTime:a,fmtNum:o,shortId:s,statusLabel:c,isActiveStatus:l,canRetry:u}=A();return(p,m)=>(d(),g(`section`,nn,[h(`div`,rn,[h(`h2`,null,[m[1]||=h(`span`,{class:`i-tabler-brain`},null,-1),S(` `+i(p.$t(`aml.k1amlx074`))+` `,1),h(`b`,an,i(r.jobRows.length),1),r.jobRows.some(t=>e(l)(t.status))?(d(),g(`span`,{key:0,class:`live-dot`,title:p.$t(`aml.k1amlx091`)},null,8,on)):y(``,!0)]),h(`button`,{class:`mini-btn`,onClick:m[0]||=e=>p.$emit(`reload`)},i(p.$t(`aml.k1amlx017`)),1)]),r.jobRows.length?(d(),g(`div`,sn,[h(`table`,cn,[h(`thead`,null,[h(`tr`,null,[h(`th`,null,i(p.$t(`aml.k1amlx076`)),1),h(`th`,null,i(p.$t(`aml.k1amlx011`)),1),h(`th`,null,i(p.$t(`aml.k1amlx066`)),1),h(`th`,null,i(p.$t(`aml.k1amlx077`)),1),h(`th`,null,i(p.$t(`aml.k1amlx078`)),1),h(`th`,ln,i(p.$t(`aml.k1amlx079`)),1),h(`th`,null,i(p.$t(`aml.k1amlx020`)),1),h(`th`,un,i(p.$t(`aml.k1amlx127`)),1)])]),h(`tbody`,null,[(d(!0),g(_,null,f(r.jobRows,m=>(d(),g(_,{key:m.id},[h(`tr`,{class:t([`row-main`,{open:r.expandedJob===m.id}]),onClick:e=>p.$emit(`toggle`,m.id)},[h(`td`,fn,i(e(s)(m.id)),1),h(`td`,pn,i(e(s)(m.datasetId)),1),h(`td`,mn,i(m.purpose),1),h(`td`,null,[h(`span`,{class:t([`st-pill`,m.status])},i(e(c)(m.status)),3)]),h(`td`,hn,i(m.stage||`--`),1),h(`td`,gn,[h(`span`,_n,[h(`i`,{style:n({width:`${Math.max(0,Math.min(100,m.progress))}%`}),class:t({done:m.status===`done`,bad:m.status===`failed`})},null,6)]),h(`span`,vn,i(Math.round(m.progress))+`%`,1)]),h(`td`,yn,i(e(a)(m.createdAt)),1),h(`td`,bn,[e(l)(m.status)?(d(),g(`button`,{key:0,class:`mini-btn danger`,disabled:r.cancelling===m.id,onClick:w(e=>p.$emit(`cancel`,m.id),[`stop`])},i(r.confirmCancel===m.id?p.$t(`aml.k1amlx094`):r.cancelling===m.id?p.$t(`aml.k1amlx093`):p.$t(`aml.k1amlx071`)),9,xn)):y(``,!0),e(u)(m.status)?(d(),g(`button`,{key:1,class:`mini-btn`,disabled:r.retrying===m.id,onClick:w(e=>p.$emit(`retry`,m.id),[`stop`])},i(r.confirmRetry===m.id?p.$t(`aml.k1amlx096`):p.$t(`aml.k1amlx095`)),9,Sn)):y(``,!0),e(l)(m.status)?y(``,!0):(d(),g(`span`,{key:2,class:`i-tabler-trash edit-i`,title:p.$t(`aml.k1amlx190`),onClick:w(e=>p.$emit(`remove`,m.id,p.$t(`aml.k1amlx200`)),[`stop`])},null,8,Cn))])],10,dn),r.expandedJob===m.id?(d(),g(`tr`,wn,[h(`td`,Tn,[r.jobDetails[m.id]?.loading?(d(),g(`div`,En,i(p.$t(`aml.k1amlx030`)),1)):r.jobDetails[m.id]?.error?(d(),g(`div`,Dn,i(r.jobDetails[m.id]?.error),1)):(d(),g(`div`,On,[h(`div`,null,[h(`p`,kn,i(p.$t(`aml.k1amlx083`)),1),r.jobDetails[m.id]?.gates?.checks.length?(d(),g(`table`,An,[h(`thead`,null,[h(`tr`,null,[h(`th`,null,i(p.$t(`aml.k1amlx084`)),1),h(`th`,jn,i(p.$t(`aml.k1amlx085`)),1),h(`th`,Mn,i(p.$t(`aml.k1amlx086`)),1),h(`th`,null,i(p.$t(`aml.k1amlx118`)),1)])]),h(`tbody`,null,[(d(!0),g(_,null,f(r.jobDetails[m.id]?.gates?.checks,n=>(d(),g(`tr`,{key:n.id},[h(`td`,null,[h(`b`,Nn,i(n.id),1),h(`small`,Pn,i(n.name),1)]),h(`td`,Fn,i(e(o)(n.value)),1),h(`td`,In,i(e(o)(n.threshold)),1),h(`td`,null,[h(`span`,{class:t([`verdict`,n.pass?`pass`:`fail`])},i(n.pass?p.$t(`aml.k1amlx087`):p.$t(`aml.k1amlx088`)),3),h(`small`,Ln,i(n.detail),1)])]))),128))])])):(d(),g(`p`,Rn,i(p.$t(`aml.k1amlx082`)),1)),r.jobDetails[m.id]?.metrics?.oneStepTest?(d(),g(`p`,zn,[S(i(p.$t(`aml.k1amlx099`))+`: `+i(p.$t(`aml.k1amlx116`))+` `+i(e(o)(r.jobDetails[m.id]?.metrics?.oneStepTest?.nrmse))+` `,1),r.jobDetails[m.id]?.metrics?.rolloutTest?(d(),g(_,{key:0},[S(` · `+i(p.$t(`aml.k1amlx117`))+` `+i(e(o)(r.jobDetails[m.id]?.metrics?.rolloutTest?.nrmse)),1)],64)):y(``,!0)])):y(``,!0),m.error?(d(),g(`p`,Bn,i(p.$t(`aml.k1amlx092`))+`:`+i(m.error),1)):y(``,!0)]),h(`div`,null,[h(`p`,Vn,[S(i(p.$t(`aml.k1amlx089`))+` `,1),e(l)(m.status)?(d(),g(`span`,Hn,i(p.$t(`aml.k1amlx091`)),1)):y(``,!0)]),h(`pre`,Un,i((r.jobDetails[m.id]?.logs??[]).join(`
3
3
  `)||p.$t(`aml.k1amlx090`)),1)])]))])])):y(``,!0)],64))),128))])])])):(d(),g(`p`,Wn,i(p.$t(`aml.k1amlx075`)),1))]))}}),[[`__scopeId`,`data-v-89544017`]]),{__name:`AmlJobsTable`}),Kn={class:`aw-tile zone`},qn={class:`zone-head`},Jn={class:`mono cnt`},Yn={class:`zone-actions`},Xn={value:``},Zn=[`value`],Qn=[`disabled`],$n={key:0,class:`tbl-scroll`},er={class:`tbl tbl-exp`},tr=[`title`],nr=[`title`],rr={class:`mono`},ir={key:0,class:`best-tag`},ar={class:`mono dim`},or={class:`note-cell`},sr=[`title`],cr={class:`mono dim`},lr={class:`mono num`},ur={class:`mono num`},dr={key:1,class:`empty`},fr={key:2,class:`err pad`},pr=Object.assign(O(u({__name:`AmlExperimentsTable`,props:v({datasets:{},experiments:{},bestExpId:{},expError:{}},{expDatasetId:{required:!0},expDatasetIdModifiers:{}}),emits:v([`reload`],[`update:expDatasetId`]),setup(n){let r=c(n,`expDatasetId`),{fmtTime:a,fmtNum:o,shortId:s,expStatusLabel:l}=A();return(c,u)=>(d(),g(`section`,Kn,[h(`div`,qn,[h(`h2`,null,[u[3]||=h(`span`,{class:`i-tabler-trophy`},null,-1),S(` `+i(c.$t(`aml.k1amlx109`))+` `,1),h(`b`,Jn,i(n.experiments.length),1)]),h(`div`,Yn,[x(h(`select`,{"onUpdate:modelValue":u[0]||=e=>r.value=e,class:`inp-sel`,onChange:u[1]||=e=>c.$emit(`reload`)},[h(`option`,Xn,i(c.$t(`aml.k1amlx111`)),1),(d(!0),g(_,null,f(n.datasets,t=>(d(),g(`option`,{key:t.id,value:t.id},i(e(s)(t.id))+` · `+i(e(s)(t.recipeId)),9,Zn))),128))],544),[[T,r.value]]),h(`button`,{class:`mini-btn`,disabled:!r.value,onClick:u[2]||=e=>c.$emit(`reload`)},i(c.$t(`aml.k1amlx017`)),9,Qn)])]),n.experiments.length?(d(),g(`div`,$n,[h(`table`,er,[h(`thead`,null,[h(`tr`,null,[h(`th`,null,i(c.$t(`aml.k1amlx113`)),1),h(`th`,null,i(c.$t(`aml.k1amlx020`)),1),h(`th`,null,i(c.$t(`aml.k1amlx114`)),1),h(`th`,null,i(c.$t(`aml.k1amlx115`)),1),h(`th`,{class:`num`,title:c.$t(`aml.k1amlx121`)},i(c.$t(`aml.k1amlx116`)),9,tr),h(`th`,{class:`num`,title:c.$t(`aml.k1amlx122`)},i(c.$t(`aml.k1amlx117`)),9,nr),h(`th`,null,i(c.$t(`aml.k1amlx118`)),1)])]),h(`tbody`,null,[(d(!0),g(_,null,f(n.experiments,r=>(d(),g(`tr`,{key:r.id,class:t({best:r.id===n.bestExpId})},[h(`td`,rr,[r.id===n.bestExpId?(d(),g(`span`,ir,i(c.$t(`aml.k1amlx120`)),1)):y(``,!0),S(` `+i(e(s)(r.id)),1)]),h(`td`,ar,i(e(a)(r.createdAt)),1),h(`td`,or,[h(`span`,{class:`note`,title:r.changeNote},i(r.changeNote||`--`),9,sr)]),h(`td`,cr,i(r.parentExperimentId?e(s)(r.parentExperimentId):`--`),1),h(`td`,lr,i(e(o)(r.metrics?.oneStepTest?.nrmse)),1),h(`td`,ur,i(e(o)(r.metrics?.rolloutTest?.nrmse)),1),h(`td`,null,[h(`span`,{class:t([`st-pill`,r.status])},i(e(l)(r.status)),3)])],2))),128))])])])):(d(),g(`p`,dr,i(r.value?c.$t(`aml.k1amlx112`):c.$t(`aml.k1amlx110`)),1)),n.expError?(d(),g(`p`,fr,i(n.expError),1)):y(``,!0)]))}}),[[`__scopeId`,`data-v-5b7fda0b`]]),{__name:`AmlExperimentsTable`}),mr={class:`aw-tile zone`},hr={class:`zone-head`},gr={class:`mono cnt`},_r={key:0,class:`tbl-scroll`},vr={class:`tbl tbl-models`},yr=[`title`],br={class:`right`},xr={class:`mono`},Sr=[`title`],Cr={class:`label-text`},wr={class:`mono dim`},Tr={class:`mono dim`},Er={class:`mono dim`},Dr={class:`mono dim`},Or={key:0,class:`note-edit`},kr=[`placeholder`,`onKeyup`],Ar=[`onClick`],jr={key:1,class:`note-text`},Mr=[`title`],Nr=[`title`,`onClick`],Pr={class:`right acts`},Fr=[`disabled`,`onClick`],Ir={key:0,class:`dim`},Lr=[`title`,`onClick`],Rr={key:1,class:`empty`},zr=Object.assign(O(u({__name:`AmlModelsTable`,props:v({models:{},noteEditing:{},confirmPromote:{},promoting:{}},{noteDraft:{required:!0},noteDraftModifiers:{}}),emits:v([`reload`,`editNote`,`saveNote`,`cancelNote`,`promote`,`remove`],[`update:noteDraft`]),setup(n){let r=c(n,`noteDraft`),{fmtTime:a,fmtNum:o,shortId:s}=A();return(c,l)=>(d(),g(`section`,mr,[h(`div`,hr,[h(`h2`,null,[l[5]||=h(`span`,{class:`i-tabler-cube-3d-sphere`},null,-1),S(` `+i(c.$t(`aml.k1amlx123`))+` `,1),h(`b`,gr,i(n.models.length),1)]),h(`button`,{class:`mini-btn`,onClick:l[0]||=e=>c.$emit(`reload`)},i(c.$t(`aml.k1amlx017`)),1)]),n.models.length?(d(),g(`div`,_r,[h(`table`,vr,[h(`thead`,null,[h(`tr`,null,[h(`th`,null,i(c.$t(`aml.k1amlx125`)),1),h(`th`,null,i(c.$t(`aml.k1amlx204`)),1),h(`th`,null,i(c.$t(`aml.k1amlx021`)),1),h(`th`,null,i(c.$t(`aml.k1amlx022`)),1),h(`th`,null,i(c.$t(`aml.k1amlx078`)),1),h(`th`,{title:c.$t(`aml.k1amlx126`)},i(c.$t(`aml.k1amlx099`)),9,yr),h(`th`,null,i(c.$t(`aml.k1amlx020`)),1),h(`th`,null,i(c.$t(`aml.k1amlx026`)),1),h(`th`,br,i(c.$t(`aml.k1amlx127`)),1)])]),h(`tbody`,null,[(d(!0),g(_,null,f(n.models,u=>(d(),g(`tr`,{key:u.id},[h(`td`,xr,i(e(s)(u.id)),1),h(`td`,{class:`label-cell`,title:u.description||u.label},[h(`span`,Cr,i(u.label||`--`),1)],8,Sr),h(`td`,wr,i(e(s)(u.productId)),1),h(`td`,Tr,i(e(s)(u.recipeId)),1),h(`td`,null,[h(`span`,{class:t([`stage-pill`,u.stage])},i(u.stage),3)]),h(`td`,Er,i(c.$t(`aml.k1amlx116`))+` `+i(e(o)(u.metrics?.oneStepTest?.nrmse))+` · `+i(c.$t(`aml.k1amlx117`))+` `+i(e(o)(u.metrics?.rolloutTest?.nrmse)),1),h(`td`,Dr,i(e(a)(u.createdAt)),1),h(`td`,{class:`note-cell`,onClick:l[4]||=w(()=>{},[`stop`])},[n.noteEditing===u.id?(d(),g(`div`,Or,[x(h(`input`,{"onUpdate:modelValue":l[1]||=e=>r.value=e,placeholder:c.$t(`aml.k1amlx189`),onKeyup:[E(e=>c.$emit(`saveNote`,u.id),[`enter`]),l[2]||=E(e=>c.$emit(`cancelNote`),[`esc`])]},null,40,kr),[[C,r.value]]),h(`button`,{class:`mini-btn`,onClick:e=>c.$emit(`saveNote`,u.id)},i(c.$t(`aml.k1amlx191`)),9,Ar),h(`button`,{class:`mini-btn`,onClick:l[3]||=e=>c.$emit(`cancelNote`)},i(c.$t(`aml.k1amlx202`)),1)])):(d(),g(`span`,jr,[h(`span`,{class:`note`,title:u.note},i(u.note||`--`),9,Mr),h(`span`,{class:`i-tabler-pencil edit-i`,title:c.$t(`aml.k1amlx189`),onClick:e=>c.$emit(`editNote`,u.id,u.note)},null,8,Nr)]))]),h(`td`,Pr,[(d(!0),g(_,null,f(e(k)(u),e=>(d(),g(`button`,{key:e.to,class:t([`mini-btn`,{danger:e.to===`retired`}]),disabled:n.promoting===`${u.id}:${e.to}`,onClick:t=>c.$emit(`promote`,u,e.to)},i(n.confirmPromote===`${u.id}:${e.to}`?c.$t(`aml.k1amlx131`):c.$t(e.key)),11,Fr))),128)),e(k)(u).length===0?(d(),g(`span`,Ir,`--`)):y(``,!0),h(`span`,{class:`i-tabler-trash edit-i`,title:c.$t(`aml.k1amlx190`),onClick:e=>c.$emit(`remove`,u.id,c.$t(`aml.k1amlx199`))},null,8,Lr)])]))),128))])])])):(d(),g(`p`,Rr,i(c.$t(`aml.k1amlx124`)),1))]))}}),[[`__scopeId`,`data-v-e42319a9`]]),{__name:`AmlModelsTable`}),Br={class:`aw-tile zone`},Vr={class:`zone-head`},Hr={value:``},Ur=[`value`],Wr={key:0,class:`pc-body`},Gr={class:`det-title`},Kr={class:`io-grid mono`},qr={class:`io-item`},Jr={class:`io-item`},Yr={class:`io-item`},Xr=[`title`],Zr=[`title`],Qr=[`title`],$r={class:`pc-form`},ei={class:`pc-field`},ti=[`placeholder`],ni={class:`pc-side`},ri={class:`pc-field`},ii={class:`pc-field`},ai=[`disabled`],oi={class:`hint dim`},si={key:0,class:`err`},ci={class:`det-title`},li={class:`sub-tbl`},ui={class:`num`},di={class:`num`},fi={key:0,class:`dim`},pi={class:`mono num`},mi={class:`mono num dim`},hi={class:`mono dim gate-detail`},gi={key:1,class:`empty`},_i={key:1,class:`empty`},vi=Object.assign(O(u({__name:`AmlPredictConsole`,props:{models:{}},setup(t){let n=t,{productionModels:r,predModelId:o,predModel:s,predHistory:c,predControls:l,predSteps:u,predBusy:p,predError:m,predResult:v,onPullLatest:b,doPredict:w}=j(()=>n.models),{fmtNum:E,shortId:D}=A();return(t,n)=>(d(),g(`section`,Br,[h(`div`,Vr,[h(`h2`,null,[n[6]||=h(`span`,{class:`i-tabler-chart-line`},null,-1),S(` `+i(t.$t(`aml.k1amlx133`)),1)]),e(r).length?x((d(),g(`select`,{key:0,"onUpdate:modelValue":n[0]||=e=>a(o)?o.value=e:null,class:`inp-sel`},[h(`option`,Hr,i(t.$t(`aml.k1amlx134`)),1),(d(!0),g(_,null,f(e(r),t=>(d(),g(`option`,{key:t.id,value:t.id},i(e(D)(t.id))+` · `+i(e(D)(t.recipeId)),9,Ur))),128))],512)),[[T,e(o)]]):y(``,!0)]),e(r).length?(d(),g(_,{key:0},[e(s)?.ioSpec?(d(),g(`div`,Wr,[h(`p`,Gr,i(t.$t(`aml.k1amlx136`)),1),h(`div`,Kr,[h(`span`,qr,[S(i(t.$t(`aml.k1amlx140`))+` `,1),h(`b`,null,i(e(s).ioSpec.historySteps),1)]),h(`span`,Jr,[S(i(t.$t(`aml.k1amlx141`))+` `,1),h(`b`,null,i(e(s).ioSpec.horizonSteps),1)]),h(`span`,Yr,[S(i(t.$t(`aml.k1amlx142`))+` `,1),h(`b`,null,i(e(s).ioSpec.beatMs)+`ms`,1)]),h(`span`,{class:`io-item`,title:e(s).ioSpec.allNodes.join(`, `)},[S(i(t.$t(`aml.k1amlx137`))+`(`+i(e(s).ioSpec.allNodes.length)+`) `,1),h(`b`,null,i(e(s).ioSpec.allNodes.map(t=>e(D)(t)).join(`, `)),1)],8,Xr),h(`span`,{class:`io-item`,title:e(s).ioSpec.controlNodes.join(`, `)},[S(i(t.$t(`aml.k1amlx138`))+` `,1),h(`b`,null,i(e(s).ioSpec.controlNodes.map(t=>e(D)(t)).join(`, `)),1)],8,Zr),h(`span`,{class:`io-item`,title:e(s).ioSpec.targetNodes.join(`, `)},[S(i(t.$t(`aml.k1amlx139`))+` `,1),h(`b`,null,i(e(s).ioSpec.targetNodes.map(t=>e(D)(t)).join(`, `)),1)],8,Qr)]),h(`div`,$r,[h(`label`,ei,[h(`span`,null,i(t.$t(`aml.k1amlx143`)),1),x(h(`textarea`,{"onUpdate:modelValue":n[1]||=e=>a(c)?c.value=e:null,class:`inp area`,rows:`5`,placeholder:t.$t(`aml.k1amlx144`)},null,8,ti),[[C,e(c)]])]),h(`div`,ni,[h(`button`,{class:`ghost-btn`,onClick:n[2]||=(...t)=>e(b)&&e(b)(...t)},[n[7]||=h(`span`,{class:`i-tabler-download`},null,-1),S(` `+i(t.$t(`aml.k1amlx145`)),1)]),h(`label`,ri,[h(`span`,null,i(t.$t(`aml.k1amlx156`)),1),x(h(`textarea`,{"onUpdate:modelValue":n[3]||=e=>a(l)?l.value=e:null,class:`inp area`,rows:`3`,placeholder:`[[…]]`},null,512),[[C,e(l)]])]),h(`label`,ii,[h(`span`,null,i(t.$t(`aml.k1amlx147`)),1),x(h(`input`,{"onUpdate:modelValue":n[4]||=e=>a(u)?u.value=e:null,type:`number`,min:`1`,class:`inp`},null,512),[[C,e(u),void 0,{number:!0}]])]),h(`button`,{class:`pill-btn`,disabled:e(p)||!e(c).trim(),onClick:n[5]||=(...t)=>e(w)&&e(w)(...t)},i(e(p)?t.$t(`aml.k1amlx149`):t.$t(`aml.k1amlx148`)),9,ai)])]),h(`p`,oi,i(t.$t(`aml.k1amlx146`)),1),e(m)?(d(),g(`p`,si,i(e(m)),1)):y(``,!0),e(v)?(d(),g(_,{key:1},[h(`p`,ci,i(t.$t(`aml.k1amlx150`)),1),h(`table`,li,[h(`thead`,null,[h(`tr`,null,[h(`th`,ui,i(t.$t(`aml.k1amlx151`)),1),h(`th`,di,i(t.$t(`aml.k1amlx152`)),1),(d(!0),g(_,null,f(e(v).targetNodes,(n,r)=>(d(),g(`th`,{key:n,class:`num`},[S(i(e(D)(n)),1),r===0?(d(),g(`small`,fi,` (`+i(t.$t(`aml.k1amlx041`))+`)`,1)):y(``,!0)]))),128))])]),h(`tbody`,null,[(d(!0),g(_,null,f(e(v).forecast,(t,n)=>(d(),g(`tr`,{key:n},[h(`td`,pi,i(n+1),1),h(`td`,mi,i(e(E)((n+1)*e(v).beatMs/1e3,1)),1),(d(!0),g(_,null,f(t,(t,n)=>(d(),g(`td`,{key:n,class:`mono num`},i(e(E)(t,3)),1))),128))]))),128))])]),h(`p`,hi,i(t.$t(`aml.k1amlx155`))+`:`+i(e(v).assumptions),1)],64)):y(``,!0)])):(d(),g(`p`,gi,i(t.$t(`aml.k1amlx134`)),1))],64)):(d(),g(`p`,_i,i(t.$t(`aml.k1amlx135`)),1))]))}}),[[`__scopeId`,`data-v-57c9a30a`]]),{__name:`AmlPredictConsole`}),yi={class:`modal`},bi={class:`m-title`},xi={class:`f-grid`},Si={class:`f`},Ci={class:`f`},wi={class:`f`},Ti={class:`sec-label`},Ei={class:`node-rows`},Di=[`onUpdate:modelValue`,`placeholder`],Oi=[`onUpdate:modelValue`],ki={value:`control`},Ai={value:`feature`},ji={value:`target`},Mi=[`disabled`,`onClick`],Ni={class:`f-grid`},Pi={class:`f`},Fi={class:`f`},Ii={class:`f`},Li={class:`f`},Ri={class:`f`},zi={class:`f`},Bi={class:`f`},Vi={value:`mpc_surrogate`},Hi={value:`quality_predict`},Ui={class:`f wide`},Wi=[`placeholder`],Gi={key:0,class:`m-err`},Ki={class:`m-actions`},qi=[`disabled`],Ji=Object.assign(O(u({__name:`AmlDatasetFormModal`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:v([`created`],[`update:open`]),setup(e,{emit:t}){let n=t,a=c(e,`open`),{t:s}=ee(),{shortId:l}=A(),u=o(!1),p=o(``),v=r({lineId:``,productId:``,recipeId:``,beatMs:5e3,historySteps:60,horizonSteps:30,valRatio:.15,testRatio:.15,seed:7,purpose:`mpc_surrogate`,note:``}),b=r([{nodeId:``,role:`control`},{nodeId:``,role:`target`}]);m(a,e=>{e&&(p.value=``)});function E(){b.push({nodeId:``,role:`feature`})}function D(e){b.splice(e,1)}async function te(){p.value=``;let e=b.filter(e=>e.nodeId.trim()).map(e=>({nodeId:e.nodeId.trim(),role:e.role}));if(!v.lineId.trim()||!v.productId.trim()||!v.recipeId.trim()){p.value=s(`aml.k1amlx161`);return}if(e.length<2||!e.some(e=>e.role===`target`)){p.value=s(`aml.k1amlx054`);return}u.value=!0;try{let t=await ae(`/datasets`,{method:`POST`,body:JSON.stringify({lineId:v.lineId.trim(),productId:v.productId.trim(),recipeId:v.recipeId.trim(),nodes:e,beatMs:Number(v.beatMs),window:{historySteps:Number(v.historySteps),horizonSteps:Number(v.horizonSteps)},split:{valRatio:Number(v.valRatio),testRatio:Number(v.testRatio),seed:Number(v.seed)},purpose:v.purpose,note:v.note.trim()||void 0})});ne.success(s(`aml.k1amlx073`,{p0:l(t.dataset.id),p1:t.dataset.rowCount})),a.value=!1,n(`created`)}catch(e){p.value=ie(e)}finally{u.value=!1}}return(e,t)=>a.value?(d(),g(`div`,{key:0,class:`modal-mask`,onClick:t[12]||=w(e=>a.value=!1,[`self`])},[h(`div`,yi,[h(`h3`,bi,i(e.$t(`aml.k1amlx050`)),1),h(`div`,xi,[h(`label`,Si,[h(`span`,null,[S(i(e.$t(`aml.k1amlx051`)),1),t[13]||=h(`em`,null,`*`,-1)]),x(h(`input`,{"onUpdate:modelValue":t[0]||=e=>v.lineId=e,class:`inp`,placeholder:`line-ov-01`},null,512),[[C,v.lineId]])]),h(`label`,Ci,[h(`span`,null,[S(i(e.$t(`aml.k1amlx052`)),1),t[14]||=h(`em`,null,`*`,-1)]),x(h(`input`,{"onUpdate:modelValue":t[1]||=e=>v.productId=e,class:`inp`},null,512),[[C,v.productId]])]),h(`label`,wi,[h(`span`,null,[S(i(e.$t(`aml.k1amlx053`)),1),t[15]||=h(`em`,null,`*`,-1)]),x(h(`input`,{"onUpdate:modelValue":t[2]||=e=>v.recipeId=e,class:`inp`},null,512),[[C,v.recipeId]])])]),h(`p`,Ti,i(e.$t(`aml.k1amlx054`)),1),h(`div`,Ei,[(d(!0),g(_,null,f(b,(t,n)=>(d(),g(`div`,{key:n,class:`node-row`},[x(h(`input`,{"onUpdate:modelValue":e=>t.nodeId=e,class:`inp grow`,placeholder:e.$t(`aml.k1amlx056`)},null,8,Di),[[C,t.nodeId]]),x(h(`select`,{"onUpdate:modelValue":e=>t.role=e,class:`inp sel`},[h(`option`,ki,i(e.$t(`aml.k1amlx057`)),1),h(`option`,Ai,i(e.$t(`aml.k1amlx058`)),1),h(`option`,ji,i(e.$t(`aml.k1amlx059`)),1)],8,Oi),[[T,t.role]]),h(`button`,{class:`mini-btn danger`,disabled:b.length<=1,onClick:e=>D(n)},` ✕ `,8,Mi)]))),128)),h(`button`,{class:`mini-btn`,onClick:E},[t[16]||=h(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(e.$t(`aml.k1amlx055`)),1)])]),h(`div`,Ni,[h(`label`,Pi,[h(`span`,null,i(e.$t(`aml.k1amlx060`)),1),x(h(`input`,{"onUpdate:modelValue":t[3]||=e=>v.beatMs=e,type:`number`,min:`1000`,step:`500`,class:`inp`},null,512),[[C,v.beatMs,void 0,{number:!0}]])]),h(`label`,Fi,[h(`span`,null,i(e.$t(`aml.k1amlx061`)),1),x(h(`input`,{"onUpdate:modelValue":t[4]||=e=>v.historySteps=e,type:`number`,min:`1`,class:`inp`},null,512),[[C,v.historySteps,void 0,{number:!0}]])]),h(`label`,Ii,[h(`span`,null,i(e.$t(`aml.k1amlx062`)),1),x(h(`input`,{"onUpdate:modelValue":t[5]||=e=>v.horizonSteps=e,type:`number`,min:`1`,class:`inp`},null,512),[[C,v.horizonSteps,void 0,{number:!0}]])]),h(`label`,Li,[h(`span`,null,i(e.$t(`aml.k1amlx063`)),1),x(h(`input`,{"onUpdate:modelValue":t[6]||=e=>v.valRatio=e,type:`number`,min:`0`,max:`0.8`,step:`0.05`,class:`inp`},null,512),[[C,v.valRatio,void 0,{number:!0}]])]),h(`label`,Ri,[h(`span`,null,i(e.$t(`aml.k1amlx064`)),1),x(h(`input`,{"onUpdate:modelValue":t[7]||=e=>v.testRatio=e,type:`number`,min:`0`,max:`0.8`,step:`0.05`,class:`inp`},null,512),[[C,v.testRatio,void 0,{number:!0}]])]),h(`label`,zi,[h(`span`,null,i(e.$t(`aml.k1amlx065`)),1),x(h(`input`,{"onUpdate:modelValue":t[8]||=e=>v.seed=e,type:`number`,class:`inp`},null,512),[[C,v.seed,void 0,{number:!0}]])]),h(`label`,Bi,[h(`span`,null,i(e.$t(`aml.k1amlx066`)),1),x(h(`select`,{"onUpdate:modelValue":t[9]||=e=>v.purpose=e,class:`inp`},[h(`option`,Vi,i(e.$t(`aml.k1amlx067`)),1),h(`option`,Hi,i(e.$t(`aml.k1amlx068`)),1)],512),[[T,v.purpose]])]),h(`label`,Ui,[h(`span`,null,i(e.$t(`aml.k1amlx026`)),1),x(h(`input`,{"onUpdate:modelValue":t[10]||=e=>v.note=e,class:`inp`,placeholder:e.$t(`aml.k1amlx069`)},null,8,Wi),[[C,v.note]])])]),p.value?(d(),g(`p`,Gi,i(p.value),1)):y(``,!0),h(`div`,Ki,[h(`button`,{class:`ghost-btn`,onClick:t[11]||=e=>a.value=!1},i(e.$t(`aml.k1amlx071`)),1),h(`button`,{class:`pill-btn`,disabled:u.value,onClick:te},i(u.value?e.$t(`aml.k1amlx070`):e.$t(`aml.k1amlx072`)),9,qi)])])])):y(``,!0)}}),[[`__scopeId`,`data-v-5ac31f7e`]]),{__name:`AmlDatasetFormModal`}),Yi={class:`page`},Xi=O(u({__name:`index`,setup(t){let{t:n}=ee();ge({layout:`default`}),D({title:()=>n(`aml.k1amlx160`)});let{overview:r,overviewError:i,env:c,envBusy:u,inventory:f,pythonText:h,venvText:_,uvText:v,uvSourceText:x,blockerText:S,rootSourceLabel:C,loadOverview:w,loadEnv:T,loadInventory:E,startEnvPoll:ne,stopEnvPoll:O,installUv:ie,createVenv:ae,recheckEnv:k,pruneOrphans:A}=ue(),{datasets:j,expandedDs:ve,dsDetails:M,loadDatasets:N,toggleDs:ye}=oe(),{jobRows:P,jobDetails:F,expandedJob:I,confirmCancel:xe,cancelling:Ce,confirmRetry:we,retrying:Te,loadJobs:L,toggleJob:Ee,refreshJobLogs:De,onCancelJob:Oe,onRetryJob:R}=pe(),{expDatasetId:z,experiments:B,expError:Ae,bestExpId:je,loadExperiments:V}=de(),{models:H,confirmPromote:Me,promoting:Ne,loadModels:U,onPromote:Pe}=me({reloadOverview:w}),{noteEditing:W,noteDraft:G,startEditNote:K,cancelEditNote:q,saveNote:J}=he({reloadDatasets:N,reloadModels:U}),{removeEntity:Y}=se({reloadDatasets:N,reloadModels:U,reloadJobs:L,reloadOverview:w,reloadInventory:E}),X=o(!1);function Fe(){w(),T(),E(),N(),L(),U()}let Z=fe(),Ie=re(),Q=null,$=null;return l(()=>{Ie.ensureConnected(),Q=Z.ensure(),w(),T(),E(),N(),L(),U(),(c.value?.task?.status??r.value?.env?.task?.status)===`running`&&(u.value=!0,ne()),_e(()=>{w(),L()},8e3,{bgMs:3e4}),$=te(()=>{let e=I.value;if(!e||document.hidden)return;let t=P.value.find(t=>t.id===e);t&&ce(t.status)&&De(e)},5e3)}),s(()=>{Q?.(),$&&clearInterval($),O()}),m(()=>Z.lastJob.value,e=>{e&&le(e.status)&&L()}),m(()=>Z.lastModel.value,()=>{U()}),m(()=>Z.lastDataset.value,()=>{N()}),(t,n)=>(d(),g(`div`,Yi,[p(be,{overview:e(r),env:e(c),"python-text":e(h),"venv-text":e(_),"uv-text":e(v)},null,8,[`overview`,`env`,`python-text`,`venv-text`,`uv-text`]),p(Se,{overview:e(r)},null,8,[`overview`]),p(ke,{overview:e(r),"overview-error":e(i),"python-text":e(h),"venv-text":e(_),onReload:Fe},null,8,[`overview`,`overview-error`,`python-text`,`venv-text`]),e(c)?(d(),b(tt,{key:0,env:e(c),inventory:e(f),"env-busy":e(u),"uv-text":e(v),"uv-source-text":e(x),"blocker-text":e(S),"root-source-label":e(C),onRecheck:e(k),onInstallUv:e(ie),onCreateVenv:e(ae),onPrune:e(A)},null,8,[`env`,`inventory`,`env-busy`,`uv-text`,`uv-source-text`,`blocker-text`,`root-source-label`,`onRecheck`,`onInstallUv`,`onCreateVenv`,`onPrune`])):y(``,!0),p(tn,{"note-draft":e(G),"onUpdate:noteDraft":n[0]||=e=>a(G)?G.value=e:null,datasets:e(j),"expanded-ds":e(ve),"ds-details":e(M),"note-editing":e(W),onToggle:e(ye),onReload:e(N),onCreate:n[1]||=e=>X.value=!0,onEditNote:e(K),onSaveNote:n[2]||=t=>e(J)(`datasets`,t),onCancelNote:e(q),onRemove:n[3]||=(t,n)=>e(Y)(`datasets`,t,n)},null,8,[`note-draft`,`datasets`,`expanded-ds`,`ds-details`,`note-editing`,`onToggle`,`onReload`,`onEditNote`,`onCancelNote`]),p(Gn,{"job-rows":e(P),"expanded-job":e(I),"job-details":e(F),"confirm-cancel":e(xe),cancelling:e(Ce),"confirm-retry":e(we),retrying:e(Te),onToggle:e(Ee),onReload:e(L),onCancel:e(Oe),onRetry:e(R),onRemove:n[4]||=(t,n)=>e(Y)(`jobs`,t,n)},null,8,[`job-rows`,`expanded-job`,`job-details`,`confirm-cancel`,`cancelling`,`confirm-retry`,`retrying`,`onToggle`,`onReload`,`onCancel`,`onRetry`]),p(pr,{"exp-dataset-id":e(z),"onUpdate:expDatasetId":n[5]||=e=>a(z)?z.value=e:null,datasets:e(j),experiments:e(B),"best-exp-id":e(je),"exp-error":e(Ae),onReload:e(V)},null,8,[`exp-dataset-id`,`datasets`,`experiments`,`best-exp-id`,`exp-error`,`onReload`]),p(zr,{"note-draft":e(G),"onUpdate:noteDraft":n[6]||=e=>a(G)?G.value=e:null,models:e(H),"note-editing":e(W),"confirm-promote":e(Me),promoting:e(Ne),onReload:e(U),onEditNote:e(K),onSaveNote:n[7]||=t=>e(J)(`models`,t),onCancelNote:e(q),onPromote:e(Pe),onRemove:n[8]||=(t,n)=>e(Y)(`models`,t,n)},null,8,[`note-draft`,`models`,`note-editing`,`confirm-promote`,`promoting`,`onReload`,`onEditNote`,`onCancelNote`,`onPromote`]),p(vi,{models:e(H)},null,8,[`models`]),p(Ji,{open:X.value,"onUpdate:open":n[9]||=e=>X.value=e,onCreated:e(N)},null,8,[`open`,`onCreated`])]))}}),[[`__scopeId`,`data-v-68be5b34`]]);export{Xi as default};
@@ -0,0 +1 @@
1
+ import{N as e,S as t,dt as n,ft as r,mt as i,v as a}from"./CavpkQb0.js";import{D as o,G as s,H as c,P as l,R as u,S as d,V as f,W as p,b as m,d as h,et as g,f as _,h as v,i as y,m as b,nt as x,p as S,rt as C,tt as w,v as T,y as E}from"./ByMj6e7s.js";import{d as D,l as O,n as k,t as A,u as j}from"./Dqz5HiXa.js";import{d as M,p as N}from"./Br3AySNQ.js";import{n as P,r as ee,t as F}from"./BgnhB8r5.js";import{i as I,t as L}from"./S799kNo8.js";import{n as R}from"./Cnrmlixo.js";import{t as z}from"./DJyNDnag.js";import{Ct as B,Mt as te,Tt as ne,d as re,jt as V,n as H,rt as ie,t as U,u as ae}from"./C2YYOgMe.js";import{C as oe,t as se}from"./Bub2P5me.js";import{a as W,c as ce,j as le}from"./wDPc4SSR.js";import{t as ue}from"./eutnXI4F.js";import{a as de,i as fe,n as pe,r as me,t as he}from"./bt__BP-I.js";import{t as ge}from"./lO5tpDZ52.js";import{n as _e}from"./CtPNnATm2.js";import{t as ve}from"./B9rIcCX12.js";import{t as G}from"./CwLQAKay2.js";import{t as ye}from"./Sjjmp5OD2.js";import{t as K}from"./CI2yXRr42.js";import{t as q}from"./BDNMzG2s2.js";import{t as J}from"./DlUQa0wn.js";import{t as be}from"./Bfe2qOYs.js";import{c as xe,i as Se,l as Ce,t as we}from"./DuPM4HXw.js";import{t as Te}from"./C_sjV3Ee.js";import{t as Ee}from"./tq3HbWr9.js";var De=e=>{let{componentCls:t,colorBgContainer:n,colorBgBody:r,colorText:i}=e;return{[`${t}-sider-light`]:{background:n,[`${t}-sider-trigger`]:{color:i,background:n},[`${t}-sider-zero-width-trigger`]:{color:i,background:n,border:`1px solid ${r}`,borderInlineStart:0}}}},Oe=e=>{let{antCls:t,componentCls:n,colorText:r,colorTextLightSolid:i,colorBgHeader:a,colorBgBody:o,colorBgTrigger:s,layoutHeaderHeight:c,layoutHeaderPaddingInline:l,layoutHeaderColor:u,layoutFooterPadding:d,layoutTriggerHeight:f,layoutZeroTriggerSize:p,motionDurationMid:m,motionDurationSlow:h,fontSize:g,borderRadius:_}=e;return{[n]:V(V({display:`flex`,flex:`auto`,flexDirection:`column`,color:r,minHeight:0,background:o,"&, *":{boxSizing:`border-box`},[`&${n}-has-sider`]:{flexDirection:`row`,[`> ${n}, > ${n}-content`]:{width:0}},[`${n}-header, &${n}-footer`]:{flex:`0 0 auto`},[`${n}-header`]:{height:c,paddingInline:l,color:u,lineHeight:`${c}px`,background:a,[`${t}-menu`]:{lineHeight:`inherit`}},[`${n}-footer`]:{padding:d,color:r,fontSize:g,background:o},[`${n}-content`]:{flex:`auto`,minHeight:0},[`${n}-sider`]:{position:`relative`,minWidth:0,background:a,transition:`all ${m}, background 0s`,"&-children":{height:`100%`,marginTop:-.1,paddingTop:.1,[`${t}-menu${t}-menu-inline-collapsed`]:{width:`auto`}},"&-has-trigger":{paddingBottom:f},"&-right":{order:1},"&-trigger":{position:`fixed`,bottom:0,zIndex:1,height:f,color:i,lineHeight:`${f}px`,textAlign:`center`,background:s,cursor:`pointer`,transition:`all ${m}`},"&-zero-width":{"> *":{overflow:`hidden`},"&-trigger":{position:`absolute`,top:c,insetInlineEnd:-p,zIndex:1,width:p,height:p,color:i,fontSize:e.fontSizeXL,display:`flex`,alignItems:`center`,justifyContent:`center`,background:a,borderStartStartRadius:0,borderStartEndRadius:_,borderEndEndRadius:_,borderEndStartRadius:0,cursor:`pointer`,transition:`background ${h} ease`,"&::after":{position:`absolute`,inset:0,background:`transparent`,transition:`all ${h}`,content:`""`},"&:hover::after":{background:`rgba(255, 255, 255, 0.2)`},"&-right":{insetInlineStart:-p,borderStartStartRadius:_,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:_}}}}},De(e)),{"&-rtl":{direction:`rtl`}})}},ke=re(`Layout`,e=>{let{colorText:t,controlHeightSM:n,controlHeight:r,controlHeightLG:i,marginXXS:a}=e,o=i*1.25;return[Oe(ae(e,{layoutHeaderHeight:r*2,layoutHeaderPaddingInline:o,layoutHeaderColor:t,layoutFooterPadding:`${n}px ${o}px`,layoutTriggerHeight:i+a*2,layoutZeroTriggerSize:i}))]},e=>{let{colorBgLayout:t}=e;return{colorBgHeader:`#001529`,colorBgBody:t,colorBgTrigger:`#002140`}}),Ae=()=>({prefixCls:String,hasSider:{type:Boolean,default:void 0},tagName:String});function Y(e){let{suffixCls:t,tagName:n,name:r}=e;return e=>d({compatConfig:{MODE:3},name:r,props:Ae(),setup(r,i){let{slots:a}=i,{prefixCls:o}=H(t,r);return()=>{let t=V(V({},r),{prefixCls:o.value,tagName:n});return m(e,t,a)}}})}var je=d({compatConfig:{MODE:3},props:Ae(),setup(e,t){let{slots:n}=t;return()=>m(e.tagName,{class:e.prefixCls},n)}}),Me=d({compatConfig:{MODE:3},inheritAttrs:!1,props:Ae(),setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:o}=H(``,e),[s,l]=ke(i),u=a([]);c(de,{addSider:e=>{u.value=[...u.value,e]},removeSider:e=>{u.value=u.value.filter(t=>t!==e)}});let d=h(()=>{let{prefixCls:t,hasSider:n}=e;return{[l.value]:!0,[`${t}`]:!0,[`${t}-has-sider`]:typeof n==`boolean`?n:u.value.length>0,[`${t}-rtl`]:o.value===`rtl`}});return()=>{let{tagName:t}=e;return s(m(t,V(V({},r),{class:[d.value,r.class]}),n))}}}),Ne=Y({suffixCls:`layout`,tagName:`section`,name:`ALayout`})(Me),X=Y({suffixCls:`layout-header`,tagName:`header`,name:`ALayoutHeader`})(je),Z=Y({suffixCls:`layout-footer`,tagName:`footer`,name:`ALayoutFooter`})(je),Q=Y({suffixCls:`layout-content`,tagName:`main`,name:`ALayoutContent`})(je),Pe={icon:{tag:`svg`,attrs:{viewBox:`0 0 1024 1024`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z`}}]},name:`bars`,theme:`outlined`};function Fe(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:Object(arguments[t]),r=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){Ie(e,t,n[t])})}return e}function Ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Le=function(e,t){var n=Fe({},e,t.attrs);return m(le,Fe({},n,{icon:Pe}),null)};Le.displayName=`BarsOutlined`,Le.inheritAttrs=!1;var Re={xs:`479.98px`,sm:`575.98px`,md:`767.98px`,lg:`991.98px`,xl:`1199.98px`,xxl:`1599.98px`,xxxl:`1999.98px`},ze=()=>({prefixCls:String,collapsible:{type:Boolean,default:void 0},collapsed:{type:Boolean,default:void 0},defaultCollapsed:{type:Boolean,default:void 0},reverseArrow:{type:Boolean,default:void 0},zeroWidthTriggerStyle:{type:Object,default:void 0},trigger:U.any,width:U.oneOfType([U.number,U.string]),collapsedWidth:U.oneOfType([U.number,U.string]),breakpoint:U.oneOf(ie(`xs`,`sm`,`md`,`lg`,`xl`,`xxl`,`xxxl`)),theme:U.oneOf(ie(`light`,`dark`)).def(`dark`),onBreakpoint:Function,onCollapse:Function}),Be=(()=>{let e=0;return function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``;return e+=1,`${t}${e}`}})(),$=d({compatConfig:{MODE:3},name:`ALayoutSider`,inheritAttrs:!1,props:B(ze(),{collapsible:!1,defaultCollapsed:!1,reverseArrow:!1,width:200,collapsedWidth:80}),emits:[`breakpoint`,`update:collapsed`,`collapse`],setup(e,n){let{emit:r,attrs:i,slots:a}=n,{prefixCls:s}=H(`layout-sider`,e),d=o(de,void 0),f=t(!!(e.collapsed===void 0?e.defaultCollapsed:e.collapsed)),p=t(!1);g(()=>e.collapsed,()=>{f.value=!!e.collapsed}),c(fe,f);let h=(t,n)=>{e.collapsed===void 0&&(f.value=t),r(`update:collapsed`,t),r(`collapse`,t,n)},_=t(e=>{p.value=e.matches,r(`breakpoint`,e.matches),f.value!==e.matches&&h(e.matches,`responsive`)}),v;function y(e){return _.value(e)}let b=Be(`ant-sider-`);d&&d.addSider(b),u(()=>{g(()=>e.breakpoint,()=>{try{v?.removeEventListener(`change`,y)}catch{v?.removeListener(y)}if(typeof window<`u`){let{matchMedia:t}=window;if(t&&e.breakpoint&&e.breakpoint in Re){v=t(`(max-width: ${Re[e.breakpoint]})`);try{v.addEventListener(`change`,y)}catch{v.addListener(y)}y(v)}}},{immediate:!0})}),l(()=>{try{v?.removeEventListener(`change`,y)}catch{v?.removeListener(y)}d&&d.removeSider(b)});let x=()=>{h(!f.value,`clickTrigger`)};return()=>{let t=s.value,{collapsedWidth:n,width:r,reverseArrow:o,zeroWidthTriggerStyle:c,trigger:l=a.trigger?.call(a),collapsible:u,theme:d}=e,h=f.value?n:r,g=ge(h)?`${h}px`:String(h),_=parseFloat(String(n||0))===0?m(`span`,{onClick:x,class:ne(`${t}-zero-width-trigger`,`${t}-zero-width-trigger-${o?`right`:`left`}`),style:c},[l||m(Le,null,null)]):null,v={expanded:m(o?_e:ve,null,null),collapsed:m(o?ve:_e,null,null)}[f.value?`collapsed`:`expanded`],y=l===null?null:_||m(`div`,{class:`${t}-trigger`,onClick:x,style:{width:g}},[l||v]),b=[i.style,{flex:`0 0 ${g}`,maxWidth:g,minWidth:g,width:g}],S=ne(t,`${t}-${d}`,{[`${t}-collapsed`]:!!f.value,[`${t}-has-trigger`]:u&&l!==null&&!_,[`${t}-below`]:!!p.value,[`${t}-zero-width`]:parseFloat(g)===0},i.class);return m(`aside`,te(te({},i),{},{class:S,style:b}),[m(`div`,{class:`${t}-children`},[a.default?.call(a)]),u||p.value&&_?y:null])}}}),Ve=X,He=Z,Ue=$,We=Q,Ge=V(Ne,{Header:X,Footer:Z,Content:Q,Sider:$,install:e=>(e.component(Ne.name,Ne),e.component(X.name,X),e.component(Z.name,Z),e.component($.name,$),e.component(Q.name,Q),e)}),Ke=[`width`,`height`],qe=Object.assign(d({__name:`AwLogo`,props:{size:{default:32}},setup(e){return(t,n)=>(f(),v(`svg`,{width:e.size,height:e.size,viewBox:`0 0 64 64`,fill:`none`,"aria-hidden":`true`},[...n[0]||=[T(`<defs><linearGradient id="aw-logo-gradient" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#35e0a0"></stop><stop offset="1" stop-color="#41c8f4"></stop></linearGradient></defs><path d="M32 4 L56 18 V46 L32 60 L8 46 V18 Z" stroke="url(#aw-logo-gradient)" stroke-width="4" stroke-linejoin="round"></path><path d="M32 15 L46.7 23.5 V40.5 L32 49 L17.3 40.5 V23.5 Z" stroke="#41c8f4" stroke-opacity="0.45" stroke-width="1.8" stroke-dasharray="4 3"></path><path d="M32 23 L25 38 M32 23 L39 38 M25 38 L39 38" stroke="#35e0a0" stroke-width="1.8" stroke-opacity="0.75"></path><circle cx="32" cy="23" r="3.4" fill="#35e0a0"></circle><circle cx="25" cy="38" r="3.4" fill="#41c8f4"></circle><circle cx="39" cy="38" r="3.4" fill="#41c8f4"></circle>`,7)]],8,Ke))}}),{__name:`AwLogo`}),Je={class:`logo`},Ye={class:`logo-mark`,"aria-hidden":`true`},Xe={class:`logo-text`},Ze={class:`logo-title`},Qe={class:`app-menu`},$e={class:`menu-group-label`},et={class:`menu-group-text`},tt={class:`menu-group-sep`,"aria-hidden":`true`},nt=[`title`,`onClick`],rt={class:`sider-footer`},it={class:`footer-line`},at=Object.assign(q(d({__name:`AppSidebar`,setup(t){let r=K(),{t:o}=R(),s=N(),c=F(),d=P(),S=a(!1),T=h(()=>[{id:`console`,label:o(`menu.groups.console`),items:[{key:`/`,icon:`i-tabler-layout-dashboard`,label:o(`menu.dashboard`),motion:`im-pop`},{key:`/workshop`,icon:`i-tabler-box`,label:o(`menu.workshop`),motion:`im-pop`},{key:`/town`,icon:`i-tabler-map-2`,label:o(`menu.town`),motion:`im-pop`},{key:`/daq`,icon:`i-tabler-activity`,label:o(`menu.daq`),motion:`im-pop`},{key:`/dcw`,icon:`i-tabler-settings-automation`,label:o(`menu.dcw`),motion:`im-pop`},{key:`/aml`,icon:`i-tabler-flask`,label:o(`menu.aml`),motion:`im-pop`}]},{id:`ops`,label:o(`menu.groups.ops`),items:[{key:`/operations`,icon:`i-tabler-stream`,label:o(`menu.operations`),motion:`im-pop`},{key:`/monitor`,icon:`i-tabler-cpu`,label:o(`menu.monitor`),motion:`im-pulse`},{key:`/logs`,icon:`i-tabler-list-details`,label:o(`menu.logs`),motion:`im-pop`}]},{id:`system`,label:o(`menu.groups.system`),items:[{key:`/tokens`,icon:`i-tabler-key`,label:o(`menu.tokens`),motion:`im-nudge-up`},{key:`/users`,icon:`i-tabler-users-group`,label:o(`menu.users`),motion:`im-pop`},{key:`/permissions`,icon:`i-tabler-shield-lock`,label:o(`menu.permissions`),motion:`im-pop`,adminOnly:!0},{key:`/plugins`,icon:`i-tabler-puzzle`,label:o(`menu.plugins`),motion:`im-pop`},{key:`/settings`,icon:`i-tabler-settings`,label:o(`menu.settings`),motion:`im-rotate`}]}].map(e=>({...e,items:e.items.filter(e=>!e.adminOnly||S.value&&r.isAdmin)})).filter(e=>e.items.length>0)),E=e=>e===`/`?s.path===`/`:s.path.startsWith(e),D=e=>{k.value&&d.closeMobileNav(),E(e)||M(e)},{isDrawer:k,isTablet:j}=J();u(()=>{S.value=!0});let ee=h(()=>S.value?k.value?`drawer`:j.value?`rail`:`full`:void 0),I=h(()=>k.value?!1:j.value?!0:d.sidebarCollapsed),L=h(()=>!I.value),z=h(()=>k.value&&d.mobileNavOpen);g(()=>s.path,()=>{d.mobileNavOpen&&d.closeMobileNav()}),w(()=>{typeof document>`u`||(document.body.classList.toggle(`nav-drawer`,k.value),document.body.classList.toggle(`nav-drawer-open`,z.value))}),l(()=>{typeof document>`u`||document.body.classList.remove(`nav-drawer`,`nav-drawer-open`)}),g(z,e=>{typeof document>`u`||(document.body.style.overflow=e?`hidden`:``)});let B=e=>{e.key===`Escape`&&z.value&&d.closeMobileNav()};return u(()=>window.addEventListener(`keydown`,B)),l(()=>{window.removeEventListener(`keydown`,B),typeof document<`u`&&(document.body.style.overflow=``)}),(t,r)=>{let a=qe,o=Ue;return f(),v(y,null,[m(o,{collapsed:e(I),trigger:null,collapsible:``,width:228,"collapsed-width":64,class:`app-sider`,"data-nav-mode":e(ee),"aria-hidden":e(k)&&!e(z)?`true`:void 0},{default:x(()=>[_(`div`,Je,[_(`div`,Ye,[m(a,{size:30})]),m(A,{name:`slide-fade`},{default:x(()=>[C(_(`div`,Xe,[_(`span`,Ze,i(e(c).name),1),r[1]||=_(`span`,{class:`logo-sub`},`digital twin`,-1)],512),[[O,e(L)]])]),_:1})]),_(`nav`,Qe,[(f(!0),v(y,null,p(e(T),t=>(f(),v(`div`,{key:t.id,class:`menu-group`},[C(_(`div`,$e,[_(`span`,et,i(t.label),1),r[2]||=_(`span`,{class:`menu-group-rule`,"aria-hidden":`true`},null,-1)],512),[[O,e(L)]]),C(_(`div`,tt,null,512),[[O,!e(L)]]),(f(!0),v(y,null,p(t.items,t=>(f(),v(`button`,{key:t.key,type:`button`,class:n([`menu-item im`,{active:E(t.key)}]),title:e(L)?void 0:t.label,onClick:e=>D(t.key)},[_(`span`,{class:n([`menu-icon`,[t.icon,t.motion]])},null,2),C(_(`span`,{class:`menu-label`},i(t.label),513),[[O,e(L)]])],10,nt))),128))]))),128))]),C(_(`div`,rt,[r[4]||=_(`div`,{class:`footer-rule`},null,-1),_(`div`,it,[_(`span`,null,`v`+i(e(c).version),1),r[3]||=_(`span`,{class:`sep`},`/`,-1),_(`span`,null,i(e(c).mode),1)])],512),[[O,e(L)]])]),_:1},8,[`collapsed`,`data-nav-mode`,`aria-hidden`]),e(z)?(f(),v(`div`,{key:0,class:`nav-scrim`,"aria-hidden":`true`,onClick:r[0]||=t=>e(d).closeMobileNav()})):b(``,!0)],64)}}}),[[`__scopeId`,`data-v-9bace048`]]),{__name:`AppSidebar`}),ot=[`title`],st={key:0,class:`nc-count`},ct={class:`nc-menu`},lt={class:`nc-menu-title`},ut={class:`nc-unread`},dt={class:`nc-list`},ft=[`onClick`],pt={class:`nc-item-body`},mt={class:`nc-item-top`},ht={class:`nc-item-type`},gt={class:`nc-item-time`},_t={class:`nc-item-title`},vt={key:0,class:`nc-item-text`},yt={key:0,class:`nc-dot`,"aria-hidden":`true`},bt={key:0,class:`nc-empty`},xt=Object.assign(q(d({__name:`NotificationCenter`,setup(t){let r=Ce(),o=Te(),{hostNotifications:s}=we(),{t:c}=R(),d=a(!1),m=a(null);u(async()=>{m.value=s(),r.loaded?await r.backfill():await r.loadSnapshot()}),l(()=>{m.value?.(),m.value=null}),g(()=>r.liveSeq,()=>{let e=r.liveItem;e&&W.info({content:`${e.title}${e.body?` · ${e.body.slice(0,60)}`:``}`,duration:6,onClick:()=>void E(e)})});let C={mention:{icon:`i-tabler-at`,tone:`mention`},agent_reply:{icon:`i-tabler-robot`,tone:`reply`},hitl_request:{icon:`i-tabler-alert-triangle`,tone:`hitl`},hitl_resolved:{icon:`i-tabler-circle-check`,tone:`ok`},member:{icon:`i-tabler-user-plus`,tone:`info`}},w=h(()=>({mention:c(`notifications.typeMention`),agent_reply:c(`notifications.typeAgentReply`),hitl_request:c(`notifications.typeHitlRequest`),hitl_resolved:c(`notifications.typeHitlResolved`),member:c(`notifications.typeMember`)})),T=h(()=>r.unreadCount>99?`99+`:String(r.unreadCount));async function E(e){if(d.value=!1,!e.readAt)try{await r.markRead({id:e.id})}catch{}if(e.hitlKind||e.hitlId||e.type===`hitl_request`){await M({path:`/monitor`,query:{agentId:String(e.payload?.agentId??``),channelId:e.channelId??``}});return}if(!e.channelId)return;if(!o.loaded)try{await o.load()}catch{}let t=o.workspaces.find(t=>t.channelIds.includes(e.channelId));if(!t){await M(`/workshop`);return}o.setActiveChannel(t.id,e.channelId),await M({path:`/workshop/w/${t.id}`,query:{view:`chat`}})}let O=a(!1);async function k(){if(!O.value){O.value=!0;try{await r.markRead({all:!0})}catch(e){W.error(e instanceof Error?e.message:c(`notifications.markReadFailed`))}finally{O.value=!1}}}return(t,a)=>{let o=G;return f(),S(o,{open:d.value,"onUpdate:open":a[0]||=e=>d.value=e,placement:`bottomRight`,trigger:[`click`]},{overlay:x(()=>[_(`div`,ct,[_(`div`,lt,[_(`span`,null,i(t.$t(`notifications.title`)),1),_(`span`,ut,i(t.$t(`notifications.unreadCount`,{p0:e(r).unreadCount})),1),e(r).unreadCount>0?(f(),v(`button`,{key:0,type:`button`,class:`nc-markall`,onClick:D(k,[`stop`])},i(t.$t(`notifications.markAllRead`)),1)):b(``,!0)]),_(`div`,dt,[(f(!0),v(y,null,p(e(r).items,t=>(f(),v(`button`,{key:t.id,type:`button`,class:n([`nc-item`,{unread:!t.readAt}]),onClick:e=>E(t)},[_(`span`,{class:n([`nc-item-icon`,[C[t.type]?.icon,C[t.type]?.tone]])},null,2),_(`span`,pt,[_(`span`,mt,[_(`span`,ht,i(w.value[t.type]??t.type),1),_(`span`,gt,i(e(be)(t.createdAt,!1)),1)]),_(`span`,_t,i(t.title),1),t.body?(f(),v(`span`,vt,i(t.body),1)):b(``,!0)]),t.readAt?b(``,!0):(f(),v(`span`,yt))],10,ft))),128)),e(r).items.length===0?(f(),v(`div`,bt,i(t.$t(`notifications.empty`)),1)):b(``,!0)])])]),default:x(()=>[_(`button`,{class:n([`icon-btn nc-bell`,{unread:e(r).unreadCount>0}]),title:t.$t(`notifications.bellTitle`)},[a[1]||=_(`span`,{class:`i-tabler-bell`},null,-1),e(r).unreadCount>0?(f(),v(`span`,st,i(T.value),1)):b(``,!0)],10,ot)]),_:1},8,[`open`])}}}),[[`__scopeId`,`data-v-21c11450`]]),{__name:`WorkshopNotificationCenter`}),St=I(`app.routeTrail`,()=>{let e=a([]);function t(t){if(!t||t.startsWith(`/api`))return;let n=e.value.filter(e=>e.path!==t);e.value=[...n,{path:t,at:Date.now()}].slice(-8)}function n(t){let n=e.value.findIndex(e=>e.path===t);return n>=0&&(e.value=e.value.filter(e=>e.path!==t)),n}function r(){e.value=[]}return{waypoints:e,visit:t,remove:n,clear:r}},{persist:{pick:[`waypoints`],storage:ee.localStorage()}});function Ct(){let{t:e}=R(),t=Te(),n={"/":{key:`menu.dashboard`,icon:`i-tabler-layout-dashboard`},"/workshop":{key:`menu.workshop`,icon:`i-tabler-box`},"/workshop/agents":{key:`meta.agents`,icon:`i-tabler-users`},"/workshop/teams":{key:`meta.teams`,icon:`i-tabler-users-group`},"/workshop/channel-templates":{key:`meta.ctpl`,icon:`i-tabler-layout-grid-add`},"/town":{key:`menu.town`,icon:`i-tabler-map-2`},"/tokens":{key:`menu.tokens`,icon:`i-tabler-key`},"/daq":{key:`menu.daq`,icon:`i-tabler-activity`},"/dcw":{key:`menu.dcw`,icon:`i-tabler-settings-automation`},"/aml":{key:`menu.aml`,icon:`i-tabler-flask`},"/logs":{key:`menu.logs`,icon:`i-tabler-list-details`},"/permissions":{key:`menu.permissions`,icon:`i-tabler-shield-lock`},"/plugins":{key:`menu.plugins`,icon:`i-tabler-puzzle`},"/users":{key:`menu.users`,icon:`i-tabler-users-group`},"/monitor":{key:`menu.monitor`,icon:`i-tabler-cpu`},"/settings":{key:`menu.settings`,icon:`i-tabler-settings`}};return{metaFor:r=>{let i=n[r];if(i)return{title:e(i.key),icon:i.icon};let a=r.match(/^\/workshop\/w\/([^/]+)$/);if(a){let n=a[1];return{title:t.workspaces.find(e=>e.id===n)?.name??`${e(`header.workspace`)} ${n.slice(0,6)}`,icon:`i-tabler-console`}}let o=r.split(`/`).filter(Boolean).pop()??`·`;return{title:o.charAt(0).toUpperCase()+o.slice(1),icon:`i-tabler-point`}}}}var wt=[`aria-label`],Tt=[`title`,`onClick`,`onKeydown`],Et={class:`node-title`},Dt=[`aria-label`,`title`,`onClick`],Ot=Object.assign(q(d({__name:`TrailNav`,props:{hydrated:{type:Boolean}},setup(t){let r=N(),{t:a}=R(),o=St(),{metaFor:s}=Ct(),c=e=>{e!==r.path&&M(e)},l=e=>{let t=o.remove(e);if(e!==r.path)return;let n=o.waypoints,i=n[Math.min(Math.max(t-1,0),Math.max(n.length-1,0))]?.path??`/`;M(i)};return(u,d)=>(f(),v(`nav`,{class:`trail`,"aria-label":e(a)(`header.trail`)},[m(k,{name:`stamp`,tag:`div`,class:`trail-row`},{default:x(()=>[t.hydrated?(f(!0),v(y,{key:0},p(e(o).waypoints,(t,a)=>(f(),v(y,{key:t.path},[a>0?(f(),v(`span`,{key:`link-${t.path}`,class:`trail-link`,"aria-hidden":`true`})):b(``,!0),_(`div`,{class:n([`trail-node`,{active:t.path===e(r).path}]),role:`button`,tabindex:`0`,title:e(s)(t.path).title,onClick:e=>c(t.path),onKeydown:j(D(e=>c(t.path),[`prevent`]),[`enter`])},[_(`span`,{class:n([`node-icon`,e(s)(t.path).icon])},null,2),_(`span`,Et,i(e(s)(t.path).title),1),_(`button`,{class:`node-close`,"aria-label":u.$t(`appHeader.kzwjv99001`,{p0:e(s)(t.path).title}),title:u.$t(`appHeader.kzwjv99001`,{p0:e(s)(t.path).title}),onClick:D(e=>l(t.path),[`stop`])},[...d[0]||=[_(`span`,{class:`i-tabler-x`},null,-1)]],8,Dt)],42,Tt)],64))),128)):b(``,!0)]),_:1})],8,wt))}}),[[`__scopeId`,`data-v-9570d879`]]),{__name:`AppHeaderTrailNav`});function kt(){let{t:e}=R(),t=Ee(),n=Se(),r=[`omp-dialog`,`dcw-approval`,`codex-approval`,`opencode-permission`,`dsh-permission`,`claude-permission`,`qwen-permission`,`hermes-permission`],i=t=>{switch(t){case`omp-dialog`:return e(`appHeader.hitlKindOmp`);case`dcw-approval`:return e(`appHeader.hitlKindDcw`);case`codex-approval`:return e(`appHeader.hitlKindCodex`);case`opencode-permission`:return e(`appHeader.hitlKindOpencode`);case`dsh-permission`:return e(`appHeader.hitlKindDsh`);case`claude-permission`:return`claude 权限`;case`qwen-permission`:return`qwen 权限`;case`hermes-permission`:return`hermes 权限`;default:return t}},o=e=>{M({path:`/monitor`,query:{agentId:e.agentId,channelId:e.channelId}})},s=e=>e.channelId in n.permissions,c=e=>{let t=n.permissions[e.channelId];return t?t.canApprove||t.isAdmin?!0:n.settings[e.channelId]?.legacy===!0:!1},l=e=>e.requestType?e.requestType:e.questions&&e.questions.length>0||e.method===`input`||e.method===`editor`||e.method===`select`?`question`:`approval`,u=e=>l(e)===`question`,d=e=>e.kind===`opencode-permission`&&(e.options?.length??0)>0,f=a({}),p=a({}),m=a({}),h=e=>`${e.kind}:${e.id}`,g=(e,t)=>`${h(e)}:${t}`,_=(e,t,n)=>t.multiSelect?(p.value[g(e,t.id)]??[]).includes(n):f.value[g(e,t.id)]===n,v=(e,t,n)=>{let r=g(e,t.id);if(t.multiSelect){let e=p.value[r]??[];p.value={...p.value,[r]:e.includes(n)?e.filter(e=>e!==n):[...e,n]}}else f.value={...f.value,[r]:n}},y=(e,t)=>{let n=g(e,t.id),r=t.multiSelect?p.value[n]??[]:[f.value[n]??``].filter(Boolean),i=(m.value[n]??``).trim();return[...r.filter(Boolean),i].filter(Boolean).join(`、`)},b=`__plain`,x=e=>{if(e.questions&&e.questions.length>0)return e.questions;let t=e.options?.map(e=>({label:e}));return[{id:b,question:e.message||e.detail||e.title,options:t,multiSelect:!1,freeText:!(t&&t.length>0)}]},S=async(e,n)=>{let r=await t.answer(e,n);if(r.ok){W.success(`已提交`);return}r.code===`ALREADY_RESOLVED`?W.warning(`已被他人处理`):r.code===`APPROVAL_FORBIDDEN`?W.warning(r.message||`无审批权限(该 Channel 策略不允许你决策)`):W.error(r.message)};return{HITL_KINDS:r,hitlKindLabel:i,hitlGo:o,permsKnown:s,canAnswer:c,requestTypeOf:l,isQuestion:u,isNativeOptionApproval:d,qSingle:f,qMulti:p,qFree:m,itemKey:h,slotOf:g,isChosen:_,chooseOption:v,answerOf:y,PLAIN_QID:b,questionsOf:x,answer:S,submitQuestion:async e=>{let t=x(e),n=t.findIndex(t=>!y(e,t).trim());if(n>=0){W.warning(`请先填写第 ${n+1} 题(${t[n].question||`未命名问题`})的答案`);return}await S(e,{answers:t.map((t,n)=>({id:t.id||String(n),answer:y(e,t)}))})},submitApproval:async(e,t)=>{await S(e,{confirmed:t})},submitNativeOption:async(e,t)=>{await S(e,{response:t})},submitCancel:async e=>{await S(e,{cancelled:!0})},policyLabel:e=>e.policy===`any_member`?`任一成员可决策`:e.policy?`仅 owner 可决策`:``}}var At=[`title`],jt={class:`hitl-count`},Mt={class:`hitl-menu`},Nt={class:`hitl-menu-title`},Pt=[`onClick`],Ft={class:`hitl-item-top`},It={class:`hitl-item-agent`},Lt={class:`hitl-item-kind`},Rt=[`data-type`],zt={class:`hitl-item-title`},Bt={key:0,class:`hitl-item-detail`},Vt={key:1,class:`hitl-item-detail`},Ht={key:2,class:`hitl-item-policy`},Ut={key:0,class:`hitl-answer-note`},Wt={key:1,class:`hitl-answer-note`},Gt={key:2,class:`hitl-answer-note`},Kt={key:3,class:`hitl-answer`},qt={key:0,class:`hitl-q-title`},Jt={key:1,class:`hitl-q-desc`},Yt={key:2,class:`hitl-opts`},Xt=[`title`,`onClick`],Zt={class:`hitl-btns`},Qt={key:0,class:`hitl-opts`},$t=[`onClick`],en={class:`hitl-btns`},tn=Object.assign(q(d({__name:`HitlBell`,setup(t){let{t:r}=R(),a=Ee(),{HITL_KINDS:o,hitlKindLabel:s,hitlGo:c,permsKnown:l,canAnswer:u,requestTypeOf:d,isQuestion:h,isNativeOptionApproval:g,qFree:C,slotOf:w,isChosen:T,chooseOption:D,questionsOf:O,submitQuestion:k,submitNativeOption:A,submitApproval:j,submitCancel:M,policyLabel:N}=kt();return(t,P)=>{let ee=se,F=ce,I=G;return e(a).count>0?(f(),S(I,{key:0,placement:`bottomRight`},{overlay:x(()=>[_(`div`,Mt,[_(`div`,Nt,i(e(r)(`appHeader.hitlBadge`))+` · `+i(e(a).count),1),(f(!0),v(y,null,p(e(a).items,t=>(f(),v(`div`,{key:`${t.kind}:${t.id}`,class:`hitl-item`},[_(`button`,{type:`button`,class:`hitl-item-head`,onClick:n=>e(c)(t)},[_(`span`,Ft,[_(`span`,It,i(t.agentName),1),_(`span`,Lt,i(e(s)(t.kind)),1),t.requestType||e(h)(t)?(f(),v(`span`,{key:0,class:`hitl-item-reqtype`,"data-type":e(d)(t)},i(e(h)(t)?e(r)(`appHeader.hitlReqQuestion`):e(r)(`appHeader.hitlReqApproval`)),9,Rt)):b(``,!0)]),_(`span`,zt,i(t.title),1),t.detail?(f(),v(`span`,Bt,i(t.detail),1)):b(``,!0),t.message?(f(),v(`span`,Vt,i(t.message),1)):b(``,!0),t.policy?(f(),v(`span`,Ht,[P[1]||=_(`span`,{class:`i-tabler-shield-lock`},null,-1),E(` `+i(e(r)(`appHeader.hitlPolicy`,{p0:e(N)(t)})),1)])):b(``,!0)],8,Pt),e(o).includes(t.kind)?e(l)(t)?e(u)(t)?(f(),v(`div`,Kt,[e(h)(t)?(f(),v(y,{key:0},[(f(!0),v(y,null,p(e(O)(t),(a,o)=>(f(),v(`div`,{key:`${t.kind}:${t.id}:${a.id}:${o}`,class:`hitl-q`},[t.questions&&t.questions.length>1?(f(),v(`div`,qt,i(o+1)+`. `+i(a.header||a.question),1)):b(``,!0),a.header&&a.question?(f(),v(`div`,Jt,i(a.question),1)):b(``,!0),a.options&&a.options.length>0?(f(),v(`div`,Yt,[(f(!0),v(y,null,p(a.options,r=>(f(),v(`button`,{key:r.label,type:`button`,class:n([`hitl-opt`,{on:e(T)(t,a,r.label)}]),title:r.description||r.label,onClick:n=>e(D)(t,a,r.label)},i(r.label),11,Xt))),128))])):b(``,!0),!(a.options&&a.options.length>0)||a.freeText?(f(),S(ee,{key:3,value:e(C)[e(w)(t,a.id)],"onUpdate:value":n=>e(C)[e(w)(t,a.id)]=n,rows:2,placeholder:a.options&&a.options.length>0?e(r)(`appHeader.hitlSupplementPlaceholder`):e(r)(`appHeader.hitlAnswerPlaceholder`)},null,8,[`value`,`onUpdate:value`,`placeholder`])):b(``,!0)]))),128)),_(`div`,Zt,[m(F,{size:`small`,type:`primary`,loading:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(k)(t)},{default:x(()=>[E(i(e(r)(`appHeader.hitlSubmitAnswer`)),1)]),_:1},8,[`loading`,`onClick`]),m(F,{size:`small`,disabled:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(M)(t)},{default:x(()=>[E(i(e(r)(`appHeader.hitlCancelRequest`)),1)]),_:1},8,[`disabled`,`onClick`])])],64)):(f(),v(y,{key:1},[e(g)(t)?(f(),v(`div`,Qt,[(f(!0),v(y,null,p(t.options,n=>(f(),v(`button`,{key:n,type:`button`,class:`hitl-opt`,onClick:r=>e(A)(t,n)},i(n),9,$t))),128))])):b(``,!0),_(`div`,en,[m(F,{size:`small`,type:`primary`,loading:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(j)(t,!0)},{default:x(()=>[E(i(e(r)(`appHeader.hitlApprove`)),1)]),_:1},8,[`loading`,`onClick`]),m(F,{size:`small`,danger:``,disabled:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(j)(t,!1)},{default:x(()=>[E(i(e(r)(`appHeader.hitlReject`)),1)]),_:1},8,[`disabled`,`onClick`]),m(F,{size:`small`,disabled:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(M)(t)},{default:x(()=>[E(i(e(r)(`common.cancel`)),1)]),_:1},8,[`disabled`,`onClick`])])],64))])):(f(),v(`div`,Gt,i(e(r)(`appHeader.hitlNoPerm`))+i(t.policy?`(${e(N)(t)})`:``),1)):(f(),v(`div`,Wt,i(e(r)(`appHeader.hitlPermsLoading`)),1)):(f(),v(`div`,Ut,i(e(r)(`appHeader.hitlEngineNote`)),1))]))),128))])]),default:x(()=>[_(`button`,{class:`icon-btn hitl-bell`,title:e(r)(`appHeader.hitlBadge`)},[P[0]||=_(`span`,{class:`i-tabler-bell-ringing`},null,-1),_(`span`,jt,i(e(a).count),1)],8,At)]),_:1})):b(``,!0)}}}),[[`__scopeId`,`data-v-5a73f3c7`]]),{__name:`AppHeaderHitlBell`}),nn=[`title`],rn=Object.assign(q(d({__name:`HeaderTools`,props:{hydrated:{type:Boolean}},setup(t){let{t:r,locale:i,locales:o,setLocale:s}=R(),c=P(),{isMobile:l}=J(),u=h(()=>o.value.map(e=>({label:l.value?e.code.split(`-`)[0].toUpperCase():e.name,value:e.code}))),d=e=>{e!=null&&(L(`aw.locale`,{maxAge:31536e3}).value=String(e),localStorage.setItem(`aw.locale`,String(e)),s(String(e)),window.location.reload())},p=xe(),g=h(()=>p.state!==`closed`||p.lastDataAt>0),S=h(()=>p.state===`open`?p.pendingReplay?`syncing`:`live`:p.state===`connecting`?`syncing`:`down`),C=h(()=>p.state===`open`?p.pendingReplay?r(`appHeader.kwsdot0002`):r(`appHeader.kwsdot0001`):p.state===`connecting`?r(`appHeader.kwsdot0003`):r(`appHeader.kwsdot0004`)),w=a(!1);function T(){document.fullscreenElement?(document.exitFullscreen(),w.value=!1):(document.documentElement.requestFullscreen(),w.value=!0)}return(a,o)=>{let s=oe,l=ue;return f(),v(y,null,[t.hydrated&&e(g)?(f(),v(`span`,{key:0,class:n([`ws-dot`,e(S)]),title:e(C)},null,10,nn)):b(``,!0),m(s,{title:e(r)(`header.fullscreen`)},{default:x(()=>[_(`button`,{class:`icon-btn hdr-fullscreen`,onClick:T},[_(`span`,{class:n([`i-tabler-arrows-maximize`,{hidden:e(w)}])},null,2),_(`span`,{class:n([`i-tabler-arrows-minimize`,{hidden:!e(w)}])},null,2)])]),_:1},8,[`title`]),m(l,{id:`hdr-locale`,value:e(i),size:`middle`,options:e(u),class:`lang-select`,onChange:d},null,8,[`value`,`options`]),m(s,{title:e(c).isDark?e(r)(`common.light`):e(r)(`common.dark`)},{default:x(()=>[_(`button`,{class:`icon-btn`,onClick:o[0]||=t=>e(c).toggleDark()},[_(`span`,{class:n([`i-tabler-sun-high`,{hidden:e(c).isDark}])},null,2),_(`span`,{class:n([`i-tabler-moon-stars`,{hidden:!e(c).isDark}])},null,2)])]),_:1},8,[`title`])],64)}}}),[[`__scopeId`,`data-v-d647eb55`]]),{__name:`AppHeaderTools`}),an={class:`user-chip`},on={class:`user-initial aw-avatar`},sn={class:`user-meta`},cn={class:`user-name`},ln={class:`user-role`},un=Object.assign(q(d({__name:`UserChip`,setup(t){let{t:r}=R(),a=K(),o=h(()=>(a.user?.name??`?`).trim().charAt(0).toUpperCase()),s=h(()=>a.user?.name??r(`header.guest`)),c=h(()=>a.isLoggedIn?a.user?.role??`user`:`anonymous`),l=h(()=>{let e=[{key:`tokens`,icon:`i-tabler-key`,label:r(`menu.tokens`)},{key:`settings`,icon:`i-tabler-adjustments`,label:r(`menu.settings`)}];return a.isLoggedIn&&(e.push({key:`d-logout`,label:``,divider:!0}),e.push({key:`logout`,icon:`i-tabler-logout`,label:r(`header.logout`),danger:!0})),e}),u=async({key:e})=>{e===`settings`?M(`/settings`):e===`tokens`?M(`/tokens`):e===`logout`&&(await a.logout(),M(`/workshop`))};return(t,r)=>{let a=z,d=pe,h=me,g=he,b=G;return f(),S(b,null,{overlay:x(()=>[m(g,{onClick:u},{default:x(()=>[(f(!0),v(y,null,p(e(l),e=>(f(),v(y,{key:e.key},[e.divider?(f(),S(d,{key:0})):(f(),S(h,{key:e.key,danger:e.danger},{default:x(()=>[_(`span`,{class:n([e.icon,`mr-2`])},null,2),E(` `+i(e.label),1)]),_:2},1032,[`danger`]))],64))),128))]),_:1})]),default:x(()=>[_(`div`,an,[m(a,null,{fallback:x(()=>[...r[0]||=[_(`span`,{class:`user-initial aw-avatar`},`·`,-1),_(`span`,{class:`user-meta`},[_(`span`,{class:`user-name`},`·`),_(`span`,{class:`user-role`},`·`)],-1)]]),default:x(()=>[_(`span`,on,i(e(o)),1),_(`span`,sn,[_(`span`,cn,i(e(s)),1),_(`span`,ln,i(e(c)),1)])]),_:1})])]),_:1})}}}),[[`__scopeId`,`data-v-c89d85c4`]]),{__name:`AppHeaderUserChip`}),dn={class:`header-left`},fn=[`aria-label`,`aria-expanded`],pn={class:`mobile-title`},mn={class:`header-right`},hn=Object.assign(q(d({__name:`AppHeader`,setup(t){let{t:r}=R(),o=P(),s=N(),c=St(),d=K(),{metaFor:p}=Ct(),v=Ee(),y=Se(),b=we(),C=()=>{d.isLoggedIn&&b.ensureConnected()};g(()=>d.token,e=>{e?(C(),v.loadSnapshot()):v.clear()},{immediate:!0}),g(()=>v.items.map(e=>e.channelId).join(`|`),e=>{for(let t of new Set(e.split(`|`).filter(Boolean)))t in y.permissions||y.loadPermissions(t)},{immediate:!0});let{isDrawer:w}=J(),T=h(()=>w.value?o.mobileNavOpen?r(`header.closeNav`):r(`header.openNav`):o.sidebarCollapsed?r(`header.expand`):r(`header.collapse`)),E=()=>{w.value?o.toggleMobileNav():o.toggleSidebar()},D=h(()=>p(s.path).title),O=a(!1),k=a(!1),A=null;return g(()=>s.path,()=>{c.visit(s.path),k.value=!1,requestAnimationFrame(()=>{k.value=!0,A&&clearTimeout(A),A=setTimeout(()=>{k.value=!1},620)})},{immediate:!1}),u(()=>{O.value=!0,c.visit(s.path)}),l(()=>{A&&clearTimeout(A)}),(t,r)=>{let a=xt,s=z,c=Ve;return f(),S(c,{class:`app-header app-header-glass`},{default:x(()=>[_(`div`,dn,[_(`button`,{class:`collapse-btn`,"aria-label":e(T),"aria-expanded":e(w)?e(o).mobileNavOpen:!e(o).sidebarCollapsed,onClick:r[0]||=e=>E()},[...r[1]||=[_(`span`,{class:`i-tabler-menu-2`},null,-1)]],8,fn),_(`span`,pn,i(e(D)),1),r[2]||=_(`span`,{class:`rail-mark i-tabler-route`},null,-1),m(Ot,{hydrated:e(O)},null,8,[`hydrated`])]),_(`div`,mn,[m(s,null,{default:x(()=>[m(a)]),_:1}),m(s,null,{default:x(()=>[m(tn)]),_:1}),m(rn,{hydrated:e(O)},null,8,[`hydrated`]),m(un)]),_(`span`,{class:n([`plotter-line`,{run:e(k)}]),"aria-hidden":`true`},null,2)]),_:1})}}}),[[`__scopeId`,`data-v-21aed131`]]),{__name:`AppHeader`}),gn={class:`footer-title aw-serif-accent`},_n={class:`footer-corner`},vn=q(d({__name:`default`,setup(t){let{token:n}=ye.useToken(),a=F();return(t,o)=>{let c=at,l=hn,u=We,d=He,p=Ge;return f(),S(p,{class:`app-layout`,"has-sider":``},{default:x(()=>[m(c),m(p,{class:`app-main`,style:r({background:`transparent`,"--app-bg-container":e(n)?.colorBgContainer,"--app-bg-layout":e(n)?.colorBgLayout,"--app-text":e(n)?.colorText,"--app-text-secondary":e(n)?.colorTextSecondary,"--app-border":e(n)?.colorBorderSecondary,"--app-fill":e(n)?.colorFillQuaternary,"--app-header-h":`56px`,"--app-footer-h":`46px`})},{default:x(()=>[m(l),m(u,{class:`app-content`},{default:x(()=>[s(t.$slots,`default`,{},void 0,!0)]),_:3}),m(d,{class:`app-footer`,style:r({color:e(n)?.colorTextSecondary})},{default:x(()=>[_(`span`,gn,i(e(a).title),1),o[4]||=_(`span`,{class:`sep`},`/`,-1),_(`span`,null,`mode=`+i(e(a).mode),1),_(`span`,_n,[_(`span`,null,`v`+i(e(a).version),1),o[0]||=_(`span`,{class:`sep`},`·`,-1),o[1]||=_(`a`,{class:`footer-link`,href:`https://github.com/kingdol666/AgentWorkShop`,target:`_blank`,rel:`noopener`},`GitHub`,-1),o[2]||=_(`span`,{class:`sep`},`·`,-1),o[3]||=_(`a`,{class:`footer-link`,href:`https://kingdol666.github.io/AgentWorkShop/`,target:`_blank`,rel:`noopener`},`Docs`,-1)])]),_:1},8,[`style`])]),_:3},8,[`style`]),o[5]||=_(`span`,{class:`aw-noise`,"aria-hidden":`true`},null,-1)]),_:3})}}}),[[`__scopeId`,`data-v-e4abc244`]]);export{vn as default};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{d as t}from"./ByMj6e7s.js";import{t as n}from"./DxagrjB8.js";var r=e({useDcwCards:()=>i});function i(){let e=n(),r=t(()=>e.lines.map(t=>({line:t,nodes:e.nodes.filter(e=>e.lineId===t.id).length,products:e.products.filter(e=>e.lineId===t.id).length,recipes:e.recipes.filter(e=>e.lineId===t.id).length}))),i=t(()=>e.nodes.filter(e=>!e.lineId).length+e.products.filter(e=>!e.lineId).length);function a(t){return e.recipes.filter(e=>e.lineId===t)}return{cards:r,unassignedCount:i,recipesOf:a}}export{r as n,i as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{d as t}from"./ByMj6e7s.js";import{t as n}from"./CFjveTJh.js";var r=e({useDcwCards:()=>i});function i(){let e=n(),r=t(()=>e.lines.map(t=>({line:t,nodes:e.nodes.filter(e=>e.lineId===t.id).length,products:e.products.filter(e=>e.lineId===t.id).length,recipes:e.recipes.filter(e=>e.lineId===t.id).length}))),i=t(()=>e.nodes.filter(e=>!e.lineId).length+e.products.filter(e=>!e.lineId).length);function a(t){return e.recipes.filter(e=>e.lineId===t)}return{cards:r,unassignedCount:i,recipesOf:a}}export{r as n,i as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r,et as i}from"./ByMj6e7s.js";import{n as a}from"./Cnrmlixo.js";import{a as o,n as s,t as c}from"./Bl5dYv4m.js";import{t as l}from"./DxagrjB8.js";import{t as u}from"./D6lZftfy.js";import{r as d}from"./Du9v6qGB2.js";var f=e({useDaqControllerForm:()=>h,useDaqDriverCatalog:()=>m,useDaqFilters:()=>p});function p(){let e=c(),n=l(),s=u(),{t:f}=a(),p=t({lineId:``,deviceId:``,template:``,driver:``,lineRun:``,state:``,time:``,search:``}),m=r(()=>!!(p.lineId||p.deviceId||p.template||p.driver||p.lineRun||p.state||p.time||p.search.trim()));function h(){p.lineId=``,p.deviceId=``,p.template=``,p.driver=``,p.lineRun=``,p.state=``,p.time=``,p.search=``}let g=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.templateRef,(t.get(n.templateRef)??0)+1);return[...t.entries()].map(([e,t])=>({ref:e,count:t,label:k(e)}))}),_=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.driver,(t.get(n.driver)??0)+1);return[...t.entries()].map(([t,n])=>({kind:t,count:n,label:e.meta.drivers.find(e=>e.kind===t)?.label??t}))});function v(e){if(!e.lastAt)return`never`;let t=Date.now()-Date.parse(e.lastAt);return t<=3e5?`live`:t<=36e5?`hour`:t<=864e5?`day`:`old`}function y(e){return!p.time||v(e)===p.time}function b(e){let t=p.search.trim().toLowerCase();return!t||e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)}function x(t){if(!t.lastAt)return!0;let n=t.intervalMs??e.controller.defaultIntervalMs;return Date.now()-Date.parse(t.lastAt)>Math.max(n*4,12e3)}function S(t){return t.enabled?t.lineId?n.lineStateOf(t.lineId).active?!e.controller.running||x(t)?`offline`:t.state:`idle`:`unassigned`:`disabled`}function C(e){if(!p.lineRun)return!0;let t=!!e.lineId&&n.lineStateOf(e.lineId).active;return p.lineRun===`on`?t:!t}let w=new Map;i(()=>s.twins,e=>{for(let t of e)w.set(t.id,t.name)},{immediate:!0,deep:!0});let T=r(()=>{let t=new Map;for(let n of e.nodes)for(let e of n.deviceIds??(n.deviceBindingId?[n.deviceBindingId]:[]))t.set(e,(t.get(e)??0)+1);return s.twins.filter(e=>t.has(e.id)).map(e=>({id:e.id,name:w.get(e.id)??e.name,count:t.get(e.id)}))}),E=r(()=>e.nodes.filter(e=>{if(p.lineId&&(p.lineId===`none`?e.lineId:(e.lineId??``)!==p.lineId))return!1;let t=e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]);return!(p.deviceId&&(p.deviceId===`none`?t.length>0:!t.includes(p.deviceId))||p.template&&e.templateRef!==p.template||p.driver&&e.driver!==p.driver||!C(e)||p.state&&S(e)!==p.state||!y(e)||!b(e))})),D=r(()=>n.lines.find(e=>e.id===p.lineId)??null),O=r(()=>D.value?n.lineStateOf(D.value.id):null);function k(t){let n=e.templates.find(e=>e.key===o(t));return n?`${d(f,n)} · ${n.ch}`:t||`-`}return{filters:p,hasFilters:m,clearFilters:h,templateOptions:g,driverOptions:_,boundDevices:T,filteredNodes:E,filteredLine:D,filteredLineState:O,timeBucketOf:v,rowStateOf:S,lineRunMatch:C,staleOf:x,daqTemplateRefCh:k}}function m(){let e=c();return{driverCatalog:r(()=>e.meta.drivers.length?e.meta.drivers:s.map(e=>({...e}))),driverReady:t=>e.meta.drivers.find(e=>e.kind===t)?.status!==`planned`&&e.meta.driverAvailable?.[t]!==!1}}function h(){let e=c(),t=n(!1);async function r(){t.value=!0;try{await e.reconnectInfra()}catch{}finally{t.value=!1}}return{reconnecting:t,doReconnect:r}}export{f as i,m as n,p as r,h as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r,et as i}from"./ByMj6e7s.js";import{n as a}from"./Cnrmlixo.js";import{a as o,n as s,t as c}from"./BqYO-UfR.js";import{t as l}from"./CFjveTJh.js";import{t as u}from"./DzwIZ81f.js";import{r as d}from"./Du9v6qGB2.js";var f=e({useDaqControllerForm:()=>h,useDaqDriverCatalog:()=>m,useDaqFilters:()=>p});function p(){let e=c(),n=l(),s=u(),{t:f}=a(),p=t({lineId:``,deviceId:``,template:``,driver:``,lineRun:``,state:``,time:``,search:``}),m=r(()=>!!(p.lineId||p.deviceId||p.template||p.driver||p.lineRun||p.state||p.time||p.search.trim()));function h(){p.lineId=``,p.deviceId=``,p.template=``,p.driver=``,p.lineRun=``,p.state=``,p.time=``,p.search=``}let g=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.templateRef,(t.get(n.templateRef)??0)+1);return[...t.entries()].map(([e,t])=>({ref:e,count:t,label:k(e)}))}),_=r(()=>{let t=new Map;for(let n of e.nodes)t.set(n.driver,(t.get(n.driver)??0)+1);return[...t.entries()].map(([t,n])=>({kind:t,count:n,label:e.meta.drivers.find(e=>e.kind===t)?.label??t}))});function v(e){if(!e.lastAt)return`never`;let t=Date.now()-Date.parse(e.lastAt);return t<=3e5?`live`:t<=36e5?`hour`:t<=864e5?`day`:`old`}function y(e){return!p.time||v(e)===p.time}function b(e){let t=p.search.trim().toLowerCase();return!t||e.name.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)}function x(t){if(!t.lastAt)return!0;let n=t.intervalMs??e.controller.defaultIntervalMs;return Date.now()-Date.parse(t.lastAt)>Math.max(n*4,12e3)}function S(t){return t.enabled?t.lineId?n.lineStateOf(t.lineId).active?!e.controller.running||x(t)?`offline`:t.state:`idle`:`unassigned`:`disabled`}function C(e){if(!p.lineRun)return!0;let t=!!e.lineId&&n.lineStateOf(e.lineId).active;return p.lineRun===`on`?t:!t}let w=new Map;i(()=>s.twins,e=>{for(let t of e)w.set(t.id,t.name)},{immediate:!0,deep:!0});let T=r(()=>{let t=new Map;for(let n of e.nodes)for(let e of n.deviceIds??(n.deviceBindingId?[n.deviceBindingId]:[]))t.set(e,(t.get(e)??0)+1);return s.twins.filter(e=>t.has(e.id)).map(e=>({id:e.id,name:w.get(e.id)??e.name,count:t.get(e.id)}))}),E=r(()=>e.nodes.filter(e=>{if(p.lineId&&(p.lineId===`none`?e.lineId:(e.lineId??``)!==p.lineId))return!1;let t=e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]);return!(p.deviceId&&(p.deviceId===`none`?t.length>0:!t.includes(p.deviceId))||p.template&&e.templateRef!==p.template||p.driver&&e.driver!==p.driver||!C(e)||p.state&&S(e)!==p.state||!y(e)||!b(e))})),D=r(()=>n.lines.find(e=>e.id===p.lineId)??null),O=r(()=>D.value?n.lineStateOf(D.value.id):null);function k(t){let n=e.templates.find(e=>e.key===o(t));return n?`${d(f,n)} · ${n.ch}`:t||`-`}return{filters:p,hasFilters:m,clearFilters:h,templateOptions:g,driverOptions:_,boundDevices:T,filteredNodes:E,filteredLine:D,filteredLineState:O,timeBucketOf:v,rowStateOf:S,lineRunMatch:C,staleOf:x,daqTemplateRefCh:k}}function m(){let e=c();return{driverCatalog:r(()=>e.meta.drivers.length?e.meta.drivers:s.map(e=>({...e}))),driverReady:t=>e.meta.drivers.find(e=>e.kind===t)?.status!==`planned`&&e.meta.driverAvailable?.[t]!==!1}}function h(){let e=c(),t=n(!1);async function r(){t.value=!0;try{await e.reconnectInfra()}catch{}finally{t.value=!1}}return{reconnecting:t,doReconnect:r}}export{f as i,m as n,p as r,h as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{t}from"./DxagrjB8.js";var n=e({useLogsScope:()=>r});function r(){let e=t();function n(t){return e.products.filter(e=>!t||e.lineId===t)}function r(t,n){return e.recipes.filter(e=>(!t||e.lineId===t)&&(!n||e.productId===n))}function i(t){return e.lines.find(e=>e.id===t)?.name??``}function a(t){return e.products.find(e=>e.id===t)?.name??``}function o(t){return e.recipes.find(e=>e.id===t)?.name??``}return{lines:e.lines,productsOfLine:n,recipesOfScope:r,lineName:i,productName:a,recipeName:o}}export{n,r as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{t}from"./CFjveTJh.js";var n=e({useLogsScope:()=>r});function r(){let e=t();function n(t){return e.products.filter(e=>!t||e.lineId===t)}function r(t,n){return e.recipes.filter(e=>(!t||e.lineId===t)&&(!n||e.productId===n))}function i(t){return e.lines.find(e=>e.id===t)?.name??``}function a(t){return e.products.find(e=>e.id===t)?.name??``}function o(t){return e.recipes.find(e=>e.id===t)?.name??``}return{lines:e.lines,productsOfLine:n,recipesOfScope:r,lineName:i,productName:a,recipeName:o}}export{n,r as t};
@@ -1 +1 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{t as r}from"./JgheoP3e.js";import{t as i}from"./DxagrjB8.js";var a=e({useDcwQuickActions:()=>o});function o(e){let a=i(),o=n(``),s=n(``),c=t({});async function l(t){o.value=t.line.id,s.value=``;try{let n=c[t.line.id]??``;if(!n)throw Error(e(`dcw.k188cswn039`));await a.startLine(t.line.id,n)}catch(e){s.value=r(e)}finally{o.value=``}}async function u(e){o.value=e.line.id,s.value=``;try{await a.stopLine(e.line.id)}catch(e){s.value=r(e)}finally{o.value=``}}return{quickBusy:o,quickErr:s,quickPick:c,quickStart:l,quickStop:u}}export{a as n,o as t};
1
+ import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{t as r}from"./JgheoP3e.js";import{t as i}from"./CFjveTJh.js";var a=e({useDcwQuickActions:()=>o});function o(e){let a=i(),o=n(``),s=n(``),c=t({});async function l(t){o.value=t.line.id,s.value=``;try{let n=c[t.line.id]??``;if(!n)throw Error(e(`dcw.k188cswn039`));await a.startLine(t.line.id,n)}catch(e){s.value=r(e)}finally{o.value=``}}async function u(e){o.value=e.line.id,s.value=``;try{await a.stopLine(e.line.id)}catch(e){s.value=r(e)}finally{o.value=``}}return{quickBusy:o,quickErr:s,quickPick:c,quickStart:l,quickStop:u}}export{a as n,o as t};
@@ -0,0 +1 @@
1
+ import{N as e,dt as t,ft as n,mt as r,u as i}from"./CavpkQb0.js";import{P as a,Q as o,R as s,S as c,V as l,W as u,b as d,d as f,et as p,f as m,h,i as g,k as _,m as v,nt as y,p as b,rt as x,y as S}from"./ByMj6e7s.js";import{c as C,d as w,o as T,s as E}from"./Dqz5HiXa.js";import{n as D}from"./DkpmSnHX.js";import{t as O}from"./Cmp8PMrA.js";import{n as k}from"./Cnrmlixo.js";import{a as A}from"./wDPc4SSR.js";import{t as j}from"./DzBbYWrw2.js";import{t as M}from"./BDNMzG2s2.js";import{t as ee}from"./DuPM4HXw.js";import{t as N}from"./JgheoP3e.js";import{t as P}from"./CNs_Ozdc.js";import{t as F}from"./B8cnjDtt.js";import{a as te,t as I}from"./BqYO-UfR.js";import{t as L}from"./CFjveTJh.js";import{t as ne}from"./DzwIZ81f.js";import{t as R}from"./deBcbALe2.js";import{n as re,r as z,t as ie}from"./BhcbvVOa2.js";import{t as ae}from"./csitHKnE2.js";import{t as oe}from"./BxoaZc_U2.js";import{n as B,t as se}from"./DioKmYyB2.js";import{t as ce}from"./ChN5v-i22.js";var V={class:`txt`},H={class:`mono`},U={key:1,class:`infra-banner`},W={class:`txt`},le=Object.assign(c({__name:`DaqLineBanner`,props:{loaded:{type:Boolean},filteredLine:{},filteredLineState:{},anyLineActive:{type:Boolean}},setup(e){return(n,i)=>{let a=O;return e.loaded&&e.filteredLine&&e.filteredLineState?(l(),h(`div`,{key:0,class:t([`infra-banner`,{good:e.filteredLineState.active}])},[m(`span`,{class:t(e.filteredLineState.active?`i-tabler-circle-check`:`i-tabler-info-circle`)},null,2),m(`span`,V,[e.filteredLineState.active?(l(),h(g,{key:0},[S(r(n.$t(`daq.k3ktxbr085`))+r(e.filteredLine.name)+`」`+r(n.$t(`daq.k15lvw0o105`)),1),m(`b`,null,r(e.filteredLineState.productName),1),i[0]||=S(` · Recipe:`,-1),m(`b`,null,r(e.filteredLineState.recipeName),1),m(`small`,H,r(n.$t(`daq.k400lb086`))+` `+r(e.filteredLineState.runId?.slice(0,8))+` · `+r(n.$t(`daq.k3zkt2106`))+` `+r(e.filteredLineState.startedAt?.slice(11,19))+` `+r(n.$t(`daq.k69vag8108`))+` `+r(e.filteredLineState.taggedSamples)+` `+r(n.$t(`daq.k4118o092`)),1)],64)):(l(),h(g,{key:1},[S(r(n.$t(`daq.k3ktxbr085`))+r(e.filteredLine.name)+`」`+r(n.$t(`daq.k12uge2o107`)),1)],64))]),d(a,{class:`pill-btn`,to:`/dcw/${e.filteredLine.id}`},{default:y(()=>[S(r(e.filteredLineState.active?n.$t(`daq.k1ukoy0v093`):n.$t(`daq.k1cg78i8109`)),1)]),_:1},8,[`to`])],2)):e.loaded&&!e.anyLineActive?(l(),h(`div`,U,[i[1]||=m(`span`,{class:`i-tabler-info-circle`},null,-1),m(`span`,W,[S(r(n.$t(`daq.k19onw5w013`)),1),d(a,{to:`/dcw`},{default:y(()=>[S(r(n.$t(`daq.k1b2tk5c014`)),1)]),_:1}),S(r(n.$t(`daq.k1u9wnlg015`)),1)])])):v(``,!0)}}}),{__name:`DaqLineBanner`}),G={key:0,class:`infra-banner`},K={class:`txt`},q=[`disabled`],ue=Object.assign(c({__name:`DaqInfraBanner`,props:{infra:{},reconnecting:{type:Boolean}},emits:[`reconnect`],setup(e,{emit:t}){let n=t;return(t,i)=>e.infra?.degraded?(l(),h(`div`,G,[i[1]||=m(`span`,{class:`i-tabler-alert-triangle`},null,-1),m(`span`,K,r(e.infra.warning),1),m(`button`,{class:`pill-btn`,disabled:e.reconnecting,onClick:i[0]||=e=>n(`reconnect`)},r(e.reconnecting?t.$t(`daq.k1ld43ur094`):t.$t(`daq.kzg9805110`)),9,q)])):v(``,!0)}}),{__name:`DaqInfraBanner`}),de={key:0,class:`alarm-bar`},fe={class:`bar-label`},pe={class:`mono`},J={class:`alarm-scroll`},me=[`title`],he={class:`mono dim`},Y={class:`mono`},ge={key:0,class:`esc mono`},X=[`onClick`],_e=Object.assign(c({__name:`DaqAlarmBar`,props:{alarms:{}},emits:[`ack`],setup(e,{emit:t}){let n=t;return(t,i)=>e.alarms.length?(l(),h(`div`,de,[m(`span`,fe,[i[0]||=m(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),S(` `+r(t.$t(`daq.k1alarm141`))+` `,1),m(`b`,pe,r(e.alarms.length),1)]),m(`div`,J,[(l(!0),h(g,null,u(e.alarms,e=>(l(),h(`span`,{key:e.id,class:`alarm-item`,title:t.$t(`daq.k1esc143`,{p0:e.escalation})},[m(`b`,null,r(e.nodeName),1),m(`span`,he,r(e.metric),1),m(`span`,Y,r(e.value)+` `+r(e.rule===`lt-min`?`<`:`>`)+` `+r(e.threshold),1),e.escalation>0?(l(),h(`small`,ge,`+`+r(e.escalation),1)):v(``,!0),m(`button`,{class:`mini-btn ack`,onClick:t=>n(`ack`,e.id)},r(t.$t(`daq.k1ack142`)),9,X)],8,me))),128))])])):v(``,!0)}}),{__name:`DaqAlarmBar`}),Z={class:`aw-tile ctrl-card`},ve={class:`ctrl-row`},Q={class:`ctrl-left`},ye=[`title`],be={class:`cycle mono`},xe=[`title`],Se={class:`ctrl-right`},Ce={class:`ctrl-metrics mono`},we=[`title`],Te=[`title`],Ee=[`title`],De=[`title`],Oe={class:`line-strip`},ke={class:`strip-label`},Ae={class:`mono`},je={class:`strip-scroll`},Me={key:0,class:`lp-run`},Ne={key:1,class:`lp-idle`},Pe={class:`lp-idle`},Fe=Object.assign(c({__name:`DaqControlCard`,props:_({meta:{},lines:{},lineStateOf:{type:Function}},{controller:{required:!0},controllerModifiers:{}}),emits:_([`action`,`config`,`open-add`,`open-templates`],[`update:controller`]),setup(e,{emit:i}){let a=i,s=o(e,`controller`);return(i,o)=>{let c=O;return l(),h(`section`,Z,[m(`div`,ve,[m(`div`,Q,[m(`button`,{class:t([`aw-pill`,{running:s.value.running}]),title:i.$t(`daq.k1snap145`),onClick:o[0]||=e=>a(`action`,s.value.running?`pause`:`resume`)},[m(`span`,{class:t(s.value.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),S(` `+r(s.value.running?i.$t(`daq.kpui00095`):i.$t(`daq.knxpdpt111`)),1)],10,ye),m(`label`,be,[S(r(i.$t(`daq.k1ifahxj016`))+` `,1),x(m(`input`,{"onUpdate:modelValue":o[1]||=e=>s.value.defaultIntervalMs=e,type:`number`,min:`200`,max:`60000`,step:`100`,onChange:o[2]||=e=>a(`config`,s.value.defaultIntervalMs,s.value.defaultPublishIntervalMs)},null,544),[[C,s.value.defaultIntervalMs,void 0,{number:!0}]]),o[7]||=S(`ms `,-1)]),m(`label`,{class:`cycle mono`,title:i.$t(`daq.k1e8lcoo001`)},[S(r(i.$t(`daq.k1if98n0017`))+` `,1),x(m(`input`,{"onUpdate:modelValue":o[3]||=e=>s.value.defaultPublishIntervalMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,onChange:o[4]||=e=>a(`config`,s.value.defaultIntervalMs,s.value.defaultPublishIntervalMs)},null,544),[[C,s.value.defaultPublishIntervalMs,void 0,{number:!0}]]),o[8]||=S(`ms `,-1)],8,xe)]),m(`div`,Se,[m(`span`,Ce,[m(`span`,null,r(i.$t(`daq.k45uio067`))+` `+r(s.value.nodesOnline)+`/`+r(s.value.nodesTotal),1),o[9]||=m(`span`,{class:`sep`},`·`,-1),m(`span`,{title:i.$t(`daq.k1yztsu4002`)},r(i.$t(`daq.k3xagp087`))+` `+r(e.meta.produced),9,we),o[10]||=m(`span`,{class:`sep`},`·`,-1),m(`span`,{title:i.$t(`daq.ko09iha003`)},r(i.$t(`daq.k427eu088`))+` `+r(e.meta.consumed),9,Te),o[11]||=m(`span`,{class:`sep`},`·`,-1),m(`span`,{class:t({warn:(e.meta.dropped??0)>0}),title:i.$t(`daq.k1droptip135`)},r(i.$t(`daq.k3w8go089`))+` `+r(e.meta.dropped),11,Ee),o[12]||=m(`span`,{class:`sep`},`·`,-1),m(`span`,{title:i.$t(`daq.kj1jbmw004`)},r(i.$t(`daq.k3wusd090`))+` `+r(e.meta.samplesStored),9,De)]),m(`button`,{class:`aw-pill outline add-btn`,onClick:o[5]||=e=>a(`open-templates`)},[o[13]||=m(`span`,{class:`i-tabler-adjustments-horizontal`},null,-1),S(` `+r(i.$t(`daq.k1f5cv0s018`)),1)]),m(`button`,{class:`aw-pill add-btn`,onClick:o[6]||=e=>a(`open-add`)},[o[14]||=m(`span`,{class:`i-tabler-plus`},null,-1),S(` `+r(i.$t(`daq.k1fn0ukb019`)),1)])])]),m(`div`,Oe,[m(`span`,ke,[o[15]||=m(`span`,{class:`i-tabler-route`},null,-1),S(` `+r(i.$t(`daq.k1b2o3b6020`)),1),m(`small`,Ae,r(e.lines.length),1)]),m(`div`,je,[(l(!0),h(g,null,u(e.lines,a=>(l(),b(c,{key:a.id,class:t([`line-pill`,{on:e.lineStateOf(a.id).active}]),style:n({"--lc":a.color}),to:`/dcw/${a.id}`,title:e.lineStateOf(a.id).active?i.$t(`daq.k3v957u120`,{p0:a.name,p1:e.lineStateOf(a.id).productName,p2:e.lineStateOf(a.id).recipeName}):i.$t(`daq.k1x7jnru121`,{p0:a.name})},{default:y(()=>[o[16]||=m(`span`,{class:`lp-dot`},null,-1),m(`b`,null,r(a.name),1),e.lineStateOf(a.id).active?(l(),h(`small`,Me,r(e.lineStateOf(a.id).recipeName??i.$t(`daq.k3vp67i096`)),1)):(l(),h(`small`,Ne,r(i.$t(`daq.k3zgkk021`)),1))]),_:2},1032,[`class`,`style`,`to`,`title`]))),128)),e.lines.length===0?(l(),b(c,{key:0,class:`line-pill`,to:`/dcw`},{default:y(()=>[o[17]||=m(`span`,{class:`lp-dot`},null,-1),m(`b`,null,r(i.$t(`daq.k1el12b1022`)),1),m(`small`,Pe,r(i.$t(`daq.k8jxxe8023`)),1)]),_:1})):v(``,!0)])])])}}}),{__name:`DaqControlCard`}),Ie={class:`modal`},Le={class:`m-title`},Re={class:`seg-row`},ze={class:`f-grid`},Be={class:`f`},Ve=[`value`],He={class:`f`},Ue=[`placeholder`],We={key:0,class:`f`},Ge=[`placeholder`],Ke={class:`f-grid`},qe={class:`f`},Je=[`value`],Ye={key:0,class:`f-grid driver-form`},Xe={key:0},Ze=[`onUpdate:modelValue`],Qe=[`value`],$e=[`onUpdate:modelValue`,`type`,`placeholder`],et={key:2,class:`hint`},tt={class:`test-row`},nt=[`disabled`],rt={key:1,class:`m-err`},it={class:`m-actions`},at=[`disabled`,`title`],ot=Object.assign(c({__name:`DaqAddNodeModal`,props:_({templates:{},driverCatalog:{},driverReady:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:_([`test`,`submit`,`close`],[`update:open`,`update:form`]),setup(e,{emit:n}){let i=n,a=o(e,`open`),s=o(e,`form`);return(n,o)=>a.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:o[9]||=w(e=>i(`close`),[`self`])},[m(`div`,Ie,[m(`h3`,Le,r(n.$t(`daq.k19rioqa024`)),1),m(`div`,Re,[m(`button`,{class:t([`seg`,{on:s.value.scenario===`mock`}]),onClick:o[0]||=e=>s.value.scenario=`mock`},r(n.$t(`daq.k1p5c1un025`)),3),m(`button`,{class:t([`seg`,{on:s.value.scenario===`real`}]),onClick:o[1]||=e=>s.value.scenario=`real`},r(n.$t(`daq.k1cbcp3o026`)),3)]),m(`div`,ze,[m(`label`,Be,[m(`span`,null,r(n.$t(`daq.k1fsgerc027`)),1),x(m(`select`,{"onUpdate:modelValue":o[2]||=e=>s.value.template=e,class:`inp`},[(l(!0),h(g,null,u(e.templates,e=>(l(),h(`option`,{key:e.key,value:e.key},r(e.name)+` · `+r(e.ch)+`(`+r(e.min)+`~`+r(e.max)+` `+r(e.unit)+`)`+r(e.builtin?``:n.$t(`daq.kr45rk9097`)),9,Ve))),128))],512),[[E,s.value.template]])]),m(`label`,He,[m(`span`,null,r(n.$t(`daq.k1ce2k1y028`)),1),x(m(`input`,{"onUpdate:modelValue":o[3]||=e=>s.value.name=e,class:`inp`,placeholder:n.$t(`daq.kgpxzy3005`)},null,8,Ue),[[C,s.value.name]])]),s.value.scenario===`real`?(l(),h(`label`,We,[m(`span`,null,r(n.$t(`daq.k13mfsfc029`)),1),x(m(`input`,{"onUpdate:modelValue":o[4]||=e=>s.value.interval=e,type:`number`,min:`1000`,max:`60000`,step:`500`,class:`inp`,placeholder:n.$t(`daq.k1eg1000a136`)},null,8,Ge),[[C,s.value.interval,void 0,{number:!0}]])])):v(``,!0)]),s.value.scenario===`real`?(l(),h(g,{key:0},[m(`div`,Ke,[m(`label`,qe,[m(`span`,null,r(n.$t(`daq.k1kt87rx030`)),1),x(m(`select`,{"onUpdate:modelValue":o[5]||=e=>s.value.driver=e,class:`inp`},[(l(!0),h(g,null,u(e.driverCatalog.filter(e=>e.status!==`planned`),t=>(l(),h(`option`,{key:t.kind,value:t.kind},r(t.label)+r(t.plugin?` ⌁`:``)+r(e.driverReady(t.kind)?``:n.$t(`daq.kjbqphp098`)),9,Je))),128))],512),[[E,s.value.driver]])])]),s.value.fields.length?(l(),h(`div`,Ye,[(l(!0),h(g,null,u(s.value.fields,e=>(l(),h(`label`,{key:e.key,class:`f`},[m(`span`,null,[S(r(e.label),1),e.required?(l(),h(`em`,Xe,`*`)):v(``,!0)]),e.type===`select`?x((l(),h(`select`,{key:0,"onUpdate:modelValue":t=>s.value.cfg[e.key]=t,class:`inp`},[(l(!0),h(g,null,u(e.options,e=>(l(),h(`option`,{key:e.value,value:e.value},r(e.label),9,Qe))),128))],8,Ze)),[[E,s.value.cfg[e.key]]]):x((l(),h(`input`,{key:1,"onUpdate:modelValue":t=>s.value.cfg[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,$e)),[[T,s.value.cfg[e.key]]]),e.hint?(l(),h(`small`,et,r(e.hint),1)):v(``,!0)]))),128))])):v(``,!0),m(`div`,tt,[m(`button`,{class:`pill-btn`,disabled:s.value.testing,onClick:o[6]||=e=>i(`test`)},r(s.value.testing?n.$t(`daq.k1fsh720099`):n.$t(`daq.k1fstglk112`)),9,nt),s.value.test?(l(),h(`span`,{key:0,class:t([`test-result`,s.value.test.ok?`ok`:`bad`])},[S(r(s.value.test.ok?`✓`:`✗`)+` `+r(s.value.test.message),1),s.value.test.latencyMs==null?v(``,!0):(l(),h(g,{key:0},[S(`(`+r(s.value.test.latencyMs)+`ms)`,1)],64))],2)):v(``,!0)])],64)):v(``,!0),s.value.error?(l(),h(`p`,rt,r(s.value.error),1)):v(``,!0),m(`div`,it,[m(`button`,{class:`aw-pill outline`,onClick:o[7]||=e=>i(`close`)},r(n.$t(`daq.k3xdnn031`)),1),m(`button`,{class:`aw-pill`,disabled:s.value.saving||s.value.scenario===`real`&&s.value.test!=null&&!s.value.test.ok,title:s.value.scenario===`real`&&!(s.value.test&&s.value.test.ok)?n.$t(`daq.k1needtst137`):``,onClick:o[8]||=e=>i(`submit`)},r(s.value.saving?n.$t(`daq.k1bg4759100`):s.value.scenario===`real`?n.$t(`daq.k7pxjxo113`):n.$t(`daq.k1bge46t118`)),9,at)])])])):v(``,!0)}}),{__name:`DaqAddNodeModal`}),st={class:`modal`},ct={class:`m-title`},lt={class:`sec-label`},ut={class:`tpl-table`},dt={class:`mono dim`},ft={class:`mono range`},pt={class:`right actions`},mt=[`onClick`],ht=[`onClick`],gt={key:0},_t={colspan:`3`,class:`empty`},vt={class:`sec-label`},yt={class:`f-grid`},bt={class:`f`},xt=[`placeholder`],St={class:`f`},Ct=[`placeholder`],wt={class:`f`},Tt=[`placeholder`],Et={class:`f`},Dt=[`placeholder`],Ot={class:`f`},kt={class:`f`},At={class:`f`},jt={class:`f`},Mt=[`value`],Nt={class:`f`},Pt={class:`hint`},Ft={class:`f`},It={class:`hint`},Lt={key:0,class:`m-err`},Rt={class:`m-actions`},zt=[`disabled`],Bt={class:`sec-label`},Vt={class:`tpl-table`},Ht={class:`mono dim`},Ut={class:`mono range`},Wt={class:`right actions`},Gt=[`onClick`],Kt=Object.assign(c({__name:`DaqTemplateModal`,props:_({customTpls:{},builtinTpls:{},iconChoices:{},iconLabels:{},editing:{},saving:{type:Boolean},error:{},confirmingDel:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:_([`edit`,`copy`,`remove`,`reset`,`save`,`close`],[`update:open`,`update:form`]),setup(e,{emit:t}){let n=t,i=o(e,`open`),a=o(e,`form`);return(t,o)=>i.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:o[12]||=w(e=>n(`close`),[`self`])},[m(`div`,st,[m(`h3`,ct,r(t.$t(`daq.k11mv96s032`)),1),m(`p`,lt,r(t.$t(`daq.ktji4ky033`)),1),m(`table`,ut,[m(`tbody`,null,[(l(!0),h(g,null,u(e.customTpls,i=>(l(),h(`tr`,{key:i.key},[m(`td`,null,[m(`b`,null,r(i.name),1),m(`small`,dt,r(i.code),1)]),m(`td`,ft,r(i.min)+`~`+r(i.max)+` `+r(i.unit)+` · `+r(i.decimals)+` `+r(t.$t(`daq.k48oi091`)),1),m(`td`,pt,[m(`button`,{class:`mini-btn`,onClick:e=>n(`edit`,i)},r(t.$t(`daq.k45eb0034`)),9,mt),m(`button`,{class:`mini-btn danger`,onClick:e=>n(`remove`,i)},r(e.confirmingDel===i.key?t.$t(`daq.k1hhheu3101`):t.$t(`daq.k3xakp114`)),9,ht)])]))),128)),e.customTpls.length?v(``,!0):(l(),h(`tr`,gt,[m(`td`,_t,r(t.$t(`daq.kztvzbo035`)),1)]))])]),m(`p`,vt,r(e.editing?t.$t(`daq.k1iiph0s102`):t.$t(`daq.k1efixrj115`)),1),m(`div`,yt,[m(`label`,bt,[m(`span`,null,[S(r(t.$t(`daq.k3xhia036`)),1),o[13]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[0]||=e=>a.value.name=e,class:`inp`,placeholder:t.$t(`daq.k5opd2t006`)},null,8,xt),[[C,a.value.name]])]),m(`label`,St,[m(`span`,null,[S(r(t.$t(`daq.k3x4ef037`)),1),o[14]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[1]||=e=>a.value.unit=e,class:`inp`,placeholder:t.$t(`daq.unitPh`)},null,8,Ct),[[C,a.value.unit]])]),m(`label`,wt,[m(`span`,null,r(t.$t(`daq.k1l477m0038`)),1),x(m(`input`,{"onUpdate:modelValue":o[2]||=e=>a.value.ch=e,class:`inp`,placeholder:t.$t(`daq.kk8o4tl007`)},null,8,Tt),[[C,a.value.ch]])]),m(`label`,Et,[m(`span`,null,r(t.$t(`daq.k1ayxrqb039`)),1),x(m(`input`,{"onUpdate:modelValue":o[3]||=e=>a.value.code=e,class:`inp`,placeholder:t.$t(`daq.kzn3l7l008`)},null,8,Dt),[[C,a.value.code]])]),m(`label`,Ot,[m(`span`,null,[S(r(t.$t(`daq.k1l9jv5m040`)),1),o[15]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[4]||=e=>a.value.min=e,type:`number`,class:`inp`},null,512),[[C,a.value.min,void 0,{number:!0}]])]),m(`label`,kt,[m(`span`,null,[S(r(t.$t(`daq.k1l9jv4p041`)),1),o[16]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[5]||=e=>a.value.max=e,type:`number`,class:`inp`},null,512),[[C,a.value.max,void 0,{number:!0}]])]),m(`label`,At,[m(`span`,null,r(t.$t(`daq.k3mxmcx042`)),1),x(m(`input`,{"onUpdate:modelValue":o[6]||=e=>a.value.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[C,a.value.decimals,void 0,{number:!0}]])]),m(`label`,jt,[m(`span`,null,r(t.$t(`daq.k3xx56043`)),1),x(m(`select`,{"onUpdate:modelValue":o[7]||=e=>a.value.icon=e,class:`inp`},[(l(!0),h(g,null,u(e.iconChoices,t=>(l(),h(`option`,{key:t,value:t},r(e.iconLabels[t]),9,Mt))),128))],512),[[E,a.value.icon]])]),m(`label`,Nt,[m(`span`,null,r(t.$t(`daq.k1f4eknv044`)),1),x(m(`input`,{"onUpdate:modelValue":o[8]||=e=>a.value.base=e,type:`number`,class:`inp`},null,512),[[C,a.value.base,void 0,{number:!0}]]),m(`small`,Pt,r(t.$t(`daq.kytd15s045`)),1)]),m(`label`,Ft,[m(`span`,null,r(t.$t(`daq.k1f4ifpo046`)),1),x(m(`input`,{"onUpdate:modelValue":o[9]||=e=>a.value.amp=e,type:`number`,class:`inp`},null,512),[[C,a.value.amp,void 0,{number:!0}]]),m(`small`,It,r(t.$t(`daq.ksp2aji047`)),1)])]),e.error?(l(),h(`p`,Lt,r(e.error),1)):v(``,!0),m(`div`,Rt,[m(`button`,{class:`aw-pill outline`,onClick:o[10]||=e=>n(`reset`)},r(t.$t(`daq.k48p40048`)),1),m(`button`,{class:`pill-btn`,disabled:e.saving,onClick:o[11]||=e=>n(`save`)},r(e.saving?t.$t(`daq.k1b38d59103`):e.editing?t.$t(`daq.k1b39281116`):t.$t(`daq.k1b3dtga119`)),9,zt)]),m(`p`,Bt,r(t.$t(`daq.k1w8s84s049`)),1),m(`table`,Vt,[m(`tbody`,null,[(l(!0),h(g,null,u(e.builtinTpls,e=>(l(),h(`tr`,{key:e.key},[m(`td`,null,[m(`b`,null,r(e.name),1),m(`small`,Ht,r(e.code),1)]),m(`td`,Ut,r(e.min)+`~`+r(e.max)+` `+r(e.unit)+` · `+r(e.decimals)+` `+r(t.$t(`daq.k48oi091`)),1),m(`td`,Wt,[m(`button`,{class:`mini-btn`,onClick:t=>n(`copy`,e)},r(t.$t(`daq.k3y694050`)),9,Gt)])]))),128))])])])])):v(``,!0)}}),{__name:`DaqTemplateModal`}),qt={class:`aw-tile opt-card`},Jt={class:`opt-count mono`},Yt={class:`opt-filters`},Xt=[`value`],Zt={value:``},Qt=[`value`],$t=[`value`],en={value:``},tn=[`value`],nn={key:0,class:`opt-empty`},rn={class:`opt-list`},an={class:`opt-line1`},on={class:`opt-node`},sn={class:`mono opt-params`},cn={class:`mono opt-time`},ln=[`disabled`,`onClick`],un=[`onClick`],dn={class:`opt-line2 mono`},fn={key:1,class:`opt-open-hint`},pn={key:2,class:`opt-agg`},mn={key:3,class:`opt-agg`},hn={key:0,class:`opt-series`},gn={class:`opt-spark`,viewBox:`0 0 240 36`,preserveAspectRatio:`none`},_n=[`points`],vn={class:`mono`},yn={key:0,class:`opt-empty`},bn=Object.assign(c({__name:`DaqOptPanel`,props:{optimizations:{},lines:{},open:{type:Boolean},mounted:{type:Boolean},filterLine:{},filterRecipe:{},recipeOptions:{},seriesOf:{},seriesLoading:{},statusKey:{type:Function},seriesPath:{type:Function},fmtPoint:{type:Function}},emits:[`toggle`,`selectLine`,`selectRecipe`,`line-change`,`filter`,`series`,`rollback`],setup(e,{emit:n}){let i=n;function a(e){i(`selectLine`,e.target.value),i(`line-change`)}function o(e){i(`selectRecipe`,e.target.value),i(`filter`)}return(n,s)=>(l(),h(`section`,qt,[m(`button`,{class:`opt-head`,onClick:s[0]||=e=>i(`toggle`)},[s[2]||=m(`span`,{class:`i-tabler-flask`},null,-1),m(`b`,null,r(n.$t(`daq.k1optt001`)),1),m(`span`,Jt,r(e.optimizations.length),1),m(`span`,{class:t([`opt-chevron`,{open:e.open}])},null,2)]),m(`div`,{class:t([`opt-body`,{open:e.open}])},[e.mounted?(l(),h(g,{key:0},[m(`div`,Yt,[m(`select`,{value:e.filterLine,class:`inp-sel`,onChange:a},[m(`option`,Zt,r(n.$t(`daq.k1optf001`)),1),(l(!0),h(g,null,u(e.lines,e=>(l(),h(`option`,{key:e.id,value:e.id},r(e.name),9,Qt))),128))],40,Xt),m(`select`,{value:e.filterRecipe,class:`inp-sel`,onChange:o},[m(`option`,en,r(n.$t(`daq.k1optf004`)),1),(l(!0),h(g,null,u(e.recipeOptions,e=>(l(),h(`option`,{key:e.id,value:e.id},r(e.name),9,tn))),128))],40,$t),m(`button`,{class:`mini-act`,onClick:s[1]||=e=>i(`filter`)},r(n.$t(`daq.k1optf002`)),1)]),e.optimizations.length===0?(l(),h(`p`,nn,r(n.$t(`daq.k1opte001`)),1)):v(``,!0),m(`ul`,rn,[(l(!0),h(g,null,u(e.optimizations.slice(0,30),a=>(l(),h(`li`,{key:a.id,class:t([`opt-row`,a.status])},[m(`div`,an,[m(`span`,{class:t([`opt-status`,a.status])},r(n.$t(e.statusKey(a.status))),3),m(`b`,on,r(a.nodeName),1),m(`span`,sn,r(a.params[0]?.from??`?`)+` → `+r(a.params[0]?.to),1),m(`span`,cn,r(a.setAt.slice(5,16).replace(`T`,` `)),1),e.seriesOf[a.id]?v(``,!0):(l(),h(`button`,{key:0,class:`mini-act`,disabled:e.seriesLoading===a.id,onClick:e=>i(`series`,a.id)},r(n.$t(`daq.k1opta001`)),9,ln)),a.status===`open`?(l(),h(`button`,{key:1,class:`mini-act danger`,onClick:e=>i(`rollback`,a.id)},r(n.$t(`daq.k1opta002`)),9,un)):v(``,!0)]),m(`div`,dn,[a.judge?(l(),h(`span`,{key:0,class:t([`opt-judge`,a.judge.verdict])},r(a.judge.verdict)+`(`+r(a.judge.by)+`): `+r(a.judge.reason.slice(0,70)),3)):a.status===`open`?(l(),h(`span`,fn,r(n.$t(`daq.k1opto001`)),1)):v(``,!0),a.aggPending?(l(),h(`span`,pn,r(n.$t(`daq.k1optw001`)),1)):a.windowAgg&&a.windowAgg.channels.length?(l(),h(`span`,mn,[(l(!0),h(g,null,u(a.windowAgg.channels,t=>(l(),h(g,{key:t.daqNodeId},[S(r(t.ch)+` `+r(e.fmtPoint(t.min))+`~`+r(e.fmtPoint(t.max))+`(`+r(n.$t(`daq.k1optw002`))+r(t.breaches<0?`-`:t.breaches)+`) `,1)],64))),128))])):v(``,!0)]),e.seriesOf[a.id]?(l(),h(`div`,hn,[(l(!0),h(g,null,u(e.seriesOf[a.id]?.channels??[],t=>(l(),h(`div`,{key:t.nodeId,class:`opt-ch`},[(l(),h(`svg`,gn,[m(`polyline`,{points:e.seriesPath(t.points)},null,8,_n)])),m(`span`,vn,r(t.ch)+` `+r(e.fmtPoint(t.points.at(-1)?.value??t.points.at(-1)?.avg))+r(t.unit),1)]))),128)),(e.seriesOf[a.id]?.channels.length??0)===0?(l(),h(`p`,yn,r(n.$t(`daq.k1opte002`)),1)):v(``,!0)])):v(``,!0)],2))),128))])],64)):v(``,!0)],2)]))}}),{__name:`DaqOptPanel`}),xn={class:`mono dim`},Sn={class:`mono ch`},Cn=[`title`],wn=[`title`],Tn={class:`trend-cell`},En=[`title`],Dn=[`y1`,`y2`],On=[`y1`,`y2`],kn=[`points`],An=[`y1`,`y2`],jn={class:`mono`},Mn={class:`mono`},Nn=[`title`],Pn=[`value`,`title`],Fn={value:``},In=[`value`],Ln=[`title`],Rn={key:1,class:`run-pill na`},zn={class:`prod-cell`},Bn=[`title`],Vn=[`title`],Hn={key:1,class:`dim`},Un={class:`dev-binds`},Wn=[`title`],Gn=[`onClick`],Kn=[`title`],qn={value:``},Jn=[`value`,`disabled`],Yn={class:`right`},Xn=[`title`],Zn=120,$=26,Qn=Object.assign(M(c({__name:`DaqNodeRow`,props:{n:{}},setup(n){let i=n,{t:a}=k(),o=I(),s=L(),c=ne();function p(e){if(!e.lastAt)return!0;let t=e.intervalMs??o.controller.defaultIntervalMs;return Date.now()-Date.parse(e.lastAt)>Math.max(t*4,12e3)}function _(e){return e.enabled?e.lineId?s.lineStateOf(e.lineId).active?!o.controller.running||p(e)?`offline`:e.state:`idle`:`unassigned`:`disabled`}function b(e){let t=_(e);return t===`ok`||t===`warn`||t===`alarm`}function x(e){if(!e.lineId)return null;let t=s.lineStateOf(e.lineId);return!t.active||!t.recipeId?null:s.recipes.find(e=>e.id===t.recipeId)?.daqWindows?.find(t=>t.nodeId===e.id)??null}function C(e){let t=x(e);return!t||e.value==null?!1:t.min!=null&&e.value<t.min||t.max!=null&&e.value>t.max}function w(e){let t=x(e);return t&&(t.min!=null||t.max!=null)?{min:t.min,max:t.max}:e.warnLow!=null||e.warnHigh!=null?{min:e.warnLow,max:e.warnHigh}:{min:null,max:null}}function T(e){let t=e.filter(Number.isFinite);if(t.length<2)return``;let n=Math.min(...t),r=Math.max(...t)-n||1;return t.map((e,i)=>`${(i/(t.length-1)*Zn).toFixed(1)},${($-(e-n)/r*24-1).toFixed(1)}`).join(` `)}function E(e,t){if(t==null||!Number.isFinite(t))return null;let n=e.filter(Number.isFinite);if(n.length<2)return null;let r=Math.min(...n,t),i=Math.max(...n,t)-r||1;return Number(($-(t-r)/i*24-1).toFixed(1))}function D(e){let t=_(e),n=a(`daq.k44c2n065`);if(t===`offline`)return e.lastError?{key:t,label:n,tip:e.lastError}:{key:t,label:n,tip:o.controller.running?a(`daq.k1staled129`,{p0:Math.round(Math.max((e.intervalMs??o.controller.defaultIntervalMs)*4,12e3)/1e3)}):a(`daq.k1gateoff140`)};let r={ok:a(`daq.k41k5c062`),warn:a(`daq.k49z8v063`),alarm:a(`daq.k3xmid064`),offline:n,idle:a(`daq.k3ozyqz117`),disabled:a(`daq.k1disabl130`),unassigned:a(`daq.k3ootr6053`)};if(t===`idle`)return{key:t,label:r.idle,tip:a(`daq.k1idlehin139`)};if((t===`ok`||t===`warn`||t===`alarm`)&&C(e)){let t=x(e);return{key:`alarm`,label:a(`daq.k1l3pt51104`),tip:a(`daq.k1hrrqa1122`,{p0:t?.min??`-∞`,p1:t?.max??`+∞`,p2:``})}}return{key:t,label:r[t],tip:``}}function j(e){let t=o.templates.find(t=>t.key===te(e));return t?`${t.name} · ${t.ch}`:e||`-`}let M=e=>e==null?a(`daq.k9vnp9h124`,{p0:o.controller.defaultIntervalMs}):`${e}ms`,ee=e=>e==null?a(`daq.k9vnp9h124`,{p0:o.controller.defaultPublishIntervalMs}):e===0?a(`daq.k41mvv078`):`${e}ms`,P=e=>o.meta.drivers.find(t=>t.kind===e)?.status===`planned`,F=e=>e.deviceIds??(e.deviceBindingId?[e.deviceBindingId]:[]),R=e=>c.twins.find(t=>t.id===e)?.name??e,re=f(()=>c.twins.filter(e=>e.kind!==`daq`&&!(e.modelRef??``).startsWith(`daq-`)&&!(e.modelRef??``).startsWith(`dcw-`))),z=f(()=>{let e=i.n,t=w(e),n=e.lineId?s.lineStateOf(e.lineId):null;return{tpl:j(e.templateRef),pill:D(e),alarm:C(e),live:b(e),trend:T(e.hist),limMin:E(e.hist,t.min),limMax:E(e.hist,t.max),interval:M(e.intervalMs),publish:ee(e.publishIntervalMs),lineActive:!!n?.active,lineProduct:n?.productName??``,lineRecipe:n?.recipeName??``}});async function ie(){let e=i.n,t=!e.enabled;try{await o.patchNode(e.id,{enabled:t}),e.enabled=t,t||(e.state=`offline`),A.success(a(t?`daq.k1nodestart147`:`daq.k1nodestop146`))}catch(e){A.error(N(e))}}async function ae(e){let t=e.target.value;try{await o.patchNode(i.n.id,{lineId:t});let e=i.n;e.lineId=t}catch(e){A.error(N(e))}}async function oe(e){let t=e.target.value;if(!t)return;let n=i.n;if(!n.deviceIds?.includes(t)){try{await o.setNodeBindings(n.id,[...n.deviceIds??[],t])}catch(e){A.error(N(e))}e.target.value=``}}async function B(e){let t=i.n;try{await o.setNodeBindings(t.id,(t.deviceIds??[]).filter(t=>t!==e))}catch(e){A.error(N(e))}}return(i,a)=>{let o=O;return l(),h(`tr`,{class:t({"row-recipe-alarm":z.value.alarm})},[m(`td`,null,[m(`span`,xn,r(n.n.id.slice(0,8)),1),m(`b`,null,r(n.n.name),1),m(`small`,Sn,r(z.value.tpl),1)]),m(`td`,null,[m(`span`,{class:t([`st-pill`,[z.value.pill.key]]),title:z.value.pill.tip},r(z.value.pill.label),11,Cn)]),m(`td`,{class:t([`mono val`,{stale:!z.value.live,"val-alarm":n.n.state===`alarm`||z.value.alarm}]),title:z.value.live?void 0:z.value.pill.tip},[S(r(n.n.value==null?`--`:n.n.value.toFixed(n.n.decimals))+` `,1),m(`small`,null,r(n.n.unit),1)],10,wn),m(`td`,Tn,[(l(),h(`svg`,{class:`trend`,viewBox:`0 0 120 26`,preserveAspectRatio:`none`,title:i.$t(`daq.k1trnd002`)},[z.value.limMin==null?v(``,!0):(l(),h(`line`,{key:0,class:`lim`,x1:`0`,y1:z.value.limMin,x2:`120`,y2:z.value.limMin},null,8,Dn)),z.value.limMax==null?v(``,!0):(l(),h(`line`,{key:1,class:`lim max`,x1:`0`,y1:z.value.limMax,x2:`120`,y2:z.value.limMax},null,8,On)),z.value.trend?(l(),h(`polyline`,{key:2,class:t([`trace`,{alarm:n.n.state===`alarm`||z.value.alarm}]),points:z.value.trend},null,10,kn)):(l(),h(`line`,{key:3,class:`trace-idle`,x1:`0`,y1:$/2,x2:`120`,y2:$/2},null,8,An))],8,En))]),m(`td`,jn,r(z.value.interval),1),m(`td`,Mn,r(z.value.publish),1),m(`td`,null,[m(`span`,{class:t([`drv-tag`,{planned:P(n.n.driver)}]),title:P(n.n.driver)?i.$t(`daq.k1plndrv138`):``},r(n.n.driver),11,Nn)]),m(`td`,null,[m(`select`,{class:`line-sel`,value:n.n.lineId,title:i.$t(`daq.k3q23v3010`),onChange:ae},[m(`option`,Fn,r(i.$t(`daq.k3ootr6053`)),1),(l(!0),h(g,null,u(e(s).lines,e=>(l(),h(`option`,{key:e.id,value:e.id},r(e.name),9,In))),128))],40,Pn)]),m(`td`,null,[n.n.lineId?(l(),h(`span`,{key:0,class:t([`run-pill`,{on:z.value.lineActive}]),title:i.$t(`daq.k1runtipc131`)},[a[0]||=m(`span`,{class:`rp-dot`},null,-1),S(` `+r(z.value.lineActive?i.$t(`daq.k3vp67i096`):i.$t(`daq.k3ozyqz117`)),1)],10,Ln)):(l(),h(`span`,Rn,r(i.$t(`daq.k3ootr6053`)),1))]),m(`td`,zn,[n.n.lineId&&z.value.lineActive?(l(),h(g,{key:0},[m(`b`,{title:i.$t(`daq.k1prdrtip132`)},r(z.value.lineProduct||`--`),9,Bn),m(`small`,{class:`mono`,title:i.$t(`daq.k1prdrtip132`)},r(z.value.lineRecipe||`--`),9,Vn)],64)):(l(),h(`span`,Hn,`--`))]),m(`td`,null,[m(`div`,Un,[(l(!0),h(g,null,u(F(n.n),e=>(l(),h(`span`,{key:e,class:`dev-bind-chip`,title:i.$t(`daq.k2bindtip137`)},[S(r(R(e))+` `,1),m(`span`,{class:`dev-unbind`,title:`unbind`,onClick:t=>B(e)},`✕`,8,Gn)],8,Wn))),128)),m(`select`,{class:`line-sel dev-add`,value:``,title:i.$t(`daq.k2bindtip137`),onChange:oe},[m(`option`,qn,r(i.$t(`daq.k3own4q056`)),1),(l(!0),h(g,null,u(re.value,e=>(l(),h(`option`,{key:e.id,value:e.id,disabled:(n.n.deviceIds??[]).includes(e.id)},r(R(e.id)),9,Jn))),128))],40,Kn)])]),m(`td`,Yn,[m(`button`,{class:t([`node-toggle`,{off:!n.n.enabled}]),title:n.n.enabled?i.$t(`daq.k1nodestop146`):i.$t(`daq.k1nodestart147`),onClick:ie},[m(`span`,{class:t(n.n.enabled?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),S(` `+r(n.n.enabled?i.$t(`daq.k1nodestop146`):i.$t(`daq.k1nodestart147`)),1)],10,Xn),d(o,{class:`console-link`,to:`/daq/${n.n.id}`},{default:y(()=>[a[1]||=m(`span`,{class:`i-tabler-dashboard`},null,-1),S(` `+r(i.$t(`daq.k3o3jg2074`)),1)]),_:1},8,[`to`])])],2)}}}),[[`__scopeId`,`data-v-4b6f87e1`]]),{__name:`WorkshopDaqNodeRow`}),$n={class:`aw-tile table-card`},er={class:`tbl-toolbar`},tr={class:`filters`},nr={class:`flt`},rr={value:``},ir=[`value`],ar={value:`none`},or={class:`flt`},sr={value:``},cr=[`value`],lr={value:`none`},ur=[`title`],dr={value:``},fr={value:`on`},pr={value:`off`},mr={class:`flt`},hr={value:``},gr={value:`ok`},_r={value:`warn`},vr={value:`alarm`},yr={value:`offline`},br={class:`flt`},xr={value:``},Sr=[`value`],Cr={class:`flt`},wr={value:``},Tr=[`value`],Er=[`title`],Dr={value:``},Or={value:`live`},kr={value:`hour`},Ar={value:`day`},jr={value:`old`},Mr={value:`never`},Nr={class:`flt`},Pr=[`placeholder`],Fr={class:`count mono`},Ir={class:`ops-panels`},Lr={class:`panel-head`},Rr={class:`panel-body`},zr={key:0,class:`panel-empty`},Br={class:`mono dim`},Vr={class:`mono`},Hr={key:0,class:`esc mono`},Ur=[`onClick`],Wr={class:`ops-panel event-panel`},Gr={class:`panel-head`},Kr={class:`panel-body`},qr={key:0,class:`panel-empty`},Jr={class:`mono dim t`},Yr=[`title`],Xr=[`title`],Zr=[`title`],Qr={class:`right`},$r={key:0,class:`vs-pad`,"aria-hidden":`true`},ei={key:1,class:`vs-pad`,"aria-hidden":`true`},ti={key:2},ni={colspan:`11`},ri={class:`pane-empty`,style:{"min-height":`120px`}},ii={class:`pe-sub`},ai={key:3},oi={colspan:`11`},si={class:`pane-empty`,style:{"min-height":`90px`}},ci={class:`pe-sub`},li=Object.assign(c({__name:`DaqNodePanel`,props:_({hasFilters:{type:Boolean},lines:{},boundDevices:{},templateOptions:{},driverOptions:{},filteredCount:{},totalCount:{},opsRecent:{},opsKindLabel:{type:Function},opsTime:{type:Function},alarms:{},visibleNodes:{},padTopPx:{},padBottomPx:{},loading:{type:Boolean},loaded:{type:Boolean},error:{}},{filters:{required:!0},filtersModifiers:{},tableEl:{required:!0},tableElModifiers:{}}),emits:_([`clear-filters`,`ack`],[`update:filters`,`update:tableEl`]),setup(e,{emit:i}){let a=i,s=o(e,`filters`),c=o(e,`tableEl`);return(i,o)=>{let f=O,p=Qn,_=j;return l(),b(_,{spinning:e.loading},{default:y(()=>[m(`section`,$n,[m(`div`,er,[m(`div`,tr,[m(`label`,nr,[m(`span`,null,r(i.$t(`daq.k3wj9n051`)),1),x(m(`select`,{"onUpdate:modelValue":o[0]||=e=>s.value.lineId=e,class:`inp-sel`},[m(`option`,rr,r(i.$t(`daq.k1bkl9uj052`)),1),(l(!0),h(g,null,u(e.lines,e=>(l(),h(`option`,{key:e.id,value:e.id},r(e.name),9,ir))),128)),m(`option`,ar,r(i.$t(`daq.k3ootr6053`)),1)],512),[[E,s.value.lineId]])]),m(`label`,or,[m(`span`,null,r(i.$t(`daq.k1i8rtqt054`)),1),x(m(`select`,{"onUpdate:modelValue":o[1]||=e=>s.value.deviceId=e,class:`inp-sel`},[m(`option`,sr,r(i.$t(`daq.k1bkw4m2055`)),1),(l(!0),h(g,null,u(e.boundDevices,e=>(l(),h(`option`,{key:e.id,value:e.id},r(e.name)+`(`+r(e.count)+`) `,9,cr))),128)),m(`option`,lr,r(i.$t(`daq.k3own4q056`)),1)],512),[[E,s.value.deviceId]])]),m(`label`,{class:`flt`,title:i.$t(`daq.khb8mru009`)},[m(`span`,null,r(i.$t(`daq.k1b2tkyv057`)),1),x(m(`select`,{"onUpdate:modelValue":o[2]||=e=>s.value.lineRun=e,class:`inp-sel`},[m(`option`,dr,r(i.$t(`daq.k3x4t1058`)),1),m(`option`,fr,r(i.$t(`daq.k1nxm3p7059`)),1),m(`option`,pr,r(i.$t(`daq.k1ulx34e060`)),1)],512),[[E,s.value.lineRun]])],8,ur),m(`label`,mr,[m(`span`,null,r(i.$t(`daq.k1iwdfef061`)),1),x(m(`select`,{"onUpdate:modelValue":o[3]||=e=>s.value.state=e,class:`inp-sel`},[m(`option`,hr,r(i.$t(`daq.k3x4t1058`)),1),m(`option`,gr,r(i.$t(`daq.k41k5c062`)),1),m(`option`,_r,r(i.$t(`daq.k49z8v063`)),1),m(`option`,vr,r(i.$t(`daq.k3xmid064`)),1),m(`option`,yr,r(i.$t(`daq.k44c2n065`)),1)],512),[[E,s.value.state]])]),m(`label`,br,[m(`span`,null,r(i.$t(`daq.k1flttpl010`)),1),x(m(`select`,{"onUpdate:modelValue":o[4]||=e=>s.value.template=e,class:`inp-sel`},[m(`option`,xr,r(i.$t(`daq.k1flttpl011`)),1),(l(!0),h(g,null,u(e.templateOptions,e=>(l(),h(`option`,{key:e.ref,value:e.ref},r(e.label)+`(`+r(e.count)+`) `,9,Sr))),128))],512),[[E,s.value.template]])]),m(`label`,Cr,[m(`span`,null,r(i.$t(`daq.k1fltdrv012`)),1),x(m(`select`,{"onUpdate:modelValue":o[5]||=e=>s.value.driver=e,class:`inp-sel`},[m(`option`,wr,r(i.$t(`daq.k1fltdrv013`)),1),(l(!0),h(g,null,u(e.driverOptions,e=>(l(),h(`option`,{key:e.kind,value:e.kind},r(e.label)+`(`+r(e.count)+`) `,9,Tr))),128))],512),[[E,s.value.driver]])]),m(`label`,{class:`flt`,title:i.$t(`daq.k1flttim014`)},[m(`span`,null,r(i.$t(`daq.k1flttim015`)),1),x(m(`select`,{"onUpdate:modelValue":o[6]||=e=>s.value.time=e,class:`inp-sel`},[m(`option`,Dr,r(i.$t(`daq.k1flttim016`)),1),m(`option`,Or,r(i.$t(`daq.k1timlv017`)),1),m(`option`,kr,r(i.$t(`daq.k1timhr018`)),1),m(`option`,Ar,r(i.$t(`daq.k1timdy019`)),1),m(`option`,jr,r(i.$t(`daq.k1timld020`)),1),m(`option`,Mr,r(i.$t(`daq.k1timnv021`)),1)],512),[[E,s.value.time]])],8,Er),m(`label`,Nr,[m(`span`,null,r(i.$t(`daq.k1fltsrc022`)),1),x(m(`input`,{"onUpdate:modelValue":o[7]||=e=>s.value.search=e,class:`inp-sel flt-search`,type:`search`,placeholder:i.$t(`daq.k1fltsph023`)},null,8,Pr),[[C,s.value.search]])]),e.hasFilters?(l(),h(`button`,{key:0,class:`mini-btn clear-btn`,onClick:o[8]||=e=>a(`clear-filters`)},r(i.$t(`daq.k1fygck2066`)),1)):v(``,!0)]),m(`span`,Fr,r(e.filteredCount)+` / `+r(e.totalCount)+` `+r(i.$t(`daq.k45uio067`)),1)]),m(`div`,Ir,[m(`div`,{class:t([`ops-panel alarm-panel`,{live:e.alarms.length>0}])},[m(`div`,Lr,[o[9]||=m(`span`,{class:`i-tabler-bell-ringing bell`},null,-1),m(`b`,null,r(i.$t(`daq.k1alarm141`)),1),m(`span`,{class:t([`mono cnt`,{hot:e.alarms.length>0}])},r(e.alarms.length),3)]),m(`div`,Rr,[e.alarms.length===0?(l(),h(`p`,zr,r(i.$t(`daq.k1evt001`)),1)):(l(!0),h(g,{key:1},u(e.alarms,e=>(l(),h(`div`,{key:e.id,class:`alarm-row`},[o[10]||=m(`span`,{class:`i-tabler-alert-triangle tri`},null,-1),m(`b`,null,r(e.nodeName),1),m(`span`,Br,r(e.metric),1),m(`span`,Vr,r(e.value)+` `+r(e.rule===`lt-min`?`<`:`>`)+` `+r(e.threshold),1),e.escalation>0?(l(),h(`small`,Hr,`+`+r(e.escalation),1)):v(``,!0),m(`button`,{class:`mini-btn ack`,onClick:t=>a(`ack`,e.id)},r(i.$t(`daq.k1ack142`)),9,Ur)]))),128))])],2),m(`div`,Wr,[m(`div`,Gr,[o[12]||=m(`span`,{class:`i-tabler-activity`},null,-1),m(`b`,null,r(i.$t(`daq.k1evt002`)),1),d(f,{class:`panel-link`,to:`/logs`},{default:y(()=>[S(r(i.$t(`daq.k1evt003`)),1),o[11]||=m(`span`,{class:`i-tabler-arrow-right`},null,-1)]),_:1})]),m(`div`,Kr,[e.opsRecent.length===0?(l(),h(`p`,qr,r(i.$t(`daq.k1evt004`)),1)):(l(!0),h(g,{key:1},u(e.opsRecent,(n,a)=>(l(),h(`div`,{key:`${n.at}:${n.actor}:${n.action}:${a}`,class:`evt-row`},[m(`span`,Jr,r(e.opsTime(n.at)),1),m(`span`,{class:t([`src-badge`,n.actorKind])},r(n.actorKind===`agent`?`Agent`:n.actorKind===`user`?i.$t(`logs.src.user`):i.$t(`logs.src.system`)),3),m(`span`,{class:t([`kind-chip`,n.kind])},r(e.opsKindLabel(n.kind)),3),m(`span`,{class:`txt`,title:n.summary},r(n.summary),9,Yr)]))),128))])])]),m(`table`,{ref_key:`tableEl`,ref:c,class:`nodes-table`},[m(`thead`,null,[m(`tr`,null,[m(`th`,null,r(i.$t(`daq.k45uio067`)),1),m(`th`,null,r(i.$t(`daq.k42w8s068`)),1),m(`th`,null,r(i.$t(`daq.k3mv305069`)),1),m(`th`,null,r(i.$t(`daq.k1trnd001`)),1),m(`th`,null,r(i.$t(`daq.k1l6g2ga070`)),1),m(`th`,null,r(i.$t(`daq.k3zi0nf071`)),1),m(`th`,null,r(i.$t(`daq.k4a0la072`)),1),m(`th`,null,r(i.$t(`daq.k3wj9n051`)),1),m(`th`,{title:i.$t(`daq.k1runtipc131`)},r(i.$t(`daq.k1b2tkyv057`)),9,Xr),m(`th`,{title:i.$t(`daq.k1prdrtip132`)},r(i.$t(`daq.k1prodrc128`)),9,Zr),m(`th`,null,r(i.$t(`daq.k1i8rtqt054`)),1),m(`th`,Qr,r(i.$t(`daq.k40aa6073`)),1)])]),m(`tbody`,null,[e.padTopPx>0?(l(),h(`tr`,$r,[m(`td`,{colspan:11,style:n({height:e.padTopPx+`px`})},null,4)])):v(``,!0),(l(!0),h(g,null,u(e.visibleNodes,e=>(l(),b(p,{key:e.id,n:e},null,8,[`n`]))),128)),e.padBottomPx>0?(l(),h(`tr`,ei,[m(`td`,{colspan:11,style:n({height:e.padBottomPx+`px`})},null,4)])):v(``,!0),e.loaded&&e.totalCount===0?(l(),h(`tr`,ti,[m(`td`,ni,[m(`div`,ri,[m(`p`,ii,r(i.$t(`daq.kvhjyc3075`)),1)])])])):e.loaded&&e.filteredCount===0?(l(),h(`tr`,ai,[m(`td`,oi,[m(`div`,si,[m(`p`,ci,r(i.$t(`daq.k1w20qew076`)),1)])])])):v(``,!0)])],512)])]),_:1},8,[`spinning`])}}}),{__name:`DaqNodePanel`}),ui={class:`page`},di={class:`aw-page-head`},fi={class:`sub`},pi={class:`badges mono`},mi=[`title`],hi=[`title`],gi={key:0,class:`err`},_i=c({__name:`index`,setup(t){let{t:n}=k();P({layout:`default`}),D({title:()=>n(`titles.daq`)});let o=I(),c=L(),u=ee(),g=f(()=>c.lines.some(e=>c.lineStateOf(e.id).active)),_=ce();function b(e){return{write:n(`logs.kind.write`),manual:n(`logs.kind.manual`),alarm:n(`logs.kind.alarm`),line:n(`logs.kind.line`),recipe:n(`logs.kind.recipe`),rollback:n(`logs.kind.rollback`),daq:n(`logs.kind.daq`),system:n(`logs.kind.system`)}[e]??(e||n(`logs.kind.system`))}function x(e){let t=new Date(e);return Number.isFinite(t.getTime())?`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}`:``}async function C(e){try{await o.ackAlarm(e),A.success(n(`daq.k1acked144`))}catch(e){A.error(N(e))}}let w=null;s(()=>{u.ensureConnected(),w=o.ensureWsFeed(),_.ensureLive(),o.load(),o.fetchAlarms(),c.load(),G.load(),c.loadOptimizations(),F(()=>{o.load(),o.fetchAlarms()},5e3,{bgMs:3e4}),F(()=>{c.load()},15e3,{bgMs:6e4})}),a(()=>{w?.()});let{filters:T,hasFilters:E,clearFilters:j,templateOptions:M,driverOptions:te,boundDevices:V,filteredNodes:H,filteredLine:U,filteredLineState:W}=z(),G=ne(),{driverCatalog:K,driverReady:q}=re(),{reconnecting:de,doReconnect:fe}=ie();function pe(e,t){o.controllerAction(`config`,e,t)}let{nodesTableRef:J,visibleNodes:me,padTopPx:he,padBottomPx:Y,resetToTop:ge}=ae(H);p(()=>H.value.length,()=>{ge()});let X=R(K,n),Z=B(n),ve=se(n),Q=oe();return(t,n)=>{let a=le,s=ue,u=_e,f=Fe,p=ot,w=Kt,D=bn,k=li,A=O;return l(),h(`div`,ui,[m(`div`,di,[m(`div`,null,[n[13]||=m(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / DAQ CONSOLE `,-1),m(`h1`,null,r(t.$t(`daq.k1emg364011`)),1),m(`p`,fi,r(t.$t(`daq.k1wmg2bz012`)),1)]),m(`div`,pi,[m(`span`,{class:`badge`,title:t.$t(`daq.k1tsdbtip133`)},`TSDB · `+r(e(o).meta.tsdb),9,mi),m(`span`,{class:`badge`,title:t.$t(`daq.k1queuet134`)},`QUEUE · `+r(e(o).meta.queue),9,hi)])]),d(a,{loaded:e(o).loaded,"filtered-line":e(U),"filtered-line-state":e(W),"any-line-active":g.value},null,8,[`loaded`,`filtered-line`,`filtered-line-state`,`any-line-active`]),d(s,{infra:e(o).meta.infra,reconnecting:e(de),onReconnect:e(fe)},null,8,[`infra`,`reconnecting`,`onReconnect`]),d(u,{alarms:e(o).alarms,onAck:C},null,8,[`alarms`]),d(f,{controller:e(o).controller,"onUpdate:controller":n[0]||=t=>e(o).controller=t,meta:e(o).meta,lines:e(c).lines,"line-state-of":t=>e(c).lineStateOf(t),onAction:n[1]||=t=>e(o).controllerAction(t),onConfig:pe,onOpenAdd:n[2]||=t=>e(X).open.value=!0,onOpenTemplates:n[3]||=t=>{e(Z).tplOpen.value=!0,e(Z).resetTplForm()}},null,8,[`controller`,`meta`,`lines`,`line-state-of`]),d(p,{open:e(X).open.value,"onUpdate:open":n[4]||=t=>e(X).open.value=t,form:e(X).form,"onUpdate:form":n[5]||=t=>e(X).form=t,templates:e(o).templates,"driver-catalog":e(K),"driver-ready":e(q),onTest:e(X).doTestConnection,onSubmit:e(X).doAddNode,onClose:n[6]||=t=>e(X).open.value=!1},null,8,[`open`,`form`,`templates`,`driver-catalog`,`driver-ready`,`onTest`,`onSubmit`]),d(w,{open:e(Z).tplOpen.value,"onUpdate:open":n[7]||=t=>e(Z).tplOpen.value=t,form:e(Z).tplForm.value,"onUpdate:form":n[8]||=t=>e(Z).tplForm.value=t,"custom-tpls":e(Z).customTpls.value,"builtin-tpls":e(Z).builtinTpls.value,"icon-choices":e(Z).iconChoices,"icon-labels":e(ve),editing:e(Z).tplEditing.value,saving:e(Z).tplSaving.value,error:e(Z).tplError.value,"confirming-del":e(Z).confirmingDel.value,onEdit:e(Z).editTpl,onCopy:e(Z).copyTpl,onRemove:e(Z).askDelTpl,onReset:e(Z).resetTplForm,onSave:e(Z).saveTpl},null,8,[`open`,`form`,`custom-tpls`,`builtin-tpls`,`icon-choices`,`icon-labels`,`editing`,`saving`,`error`,`confirming-del`,`onEdit`,`onCopy`,`onRemove`,`onReset`,`onSave`]),d(D,{optimizations:e(c).optimizations,lines:e(c).lines,open:e(Q).optOpen.value,mounted:e(Q).optMounted.value,"filter-line":e(Q).optFilterLine.value,"filter-recipe":e(Q).optFilterRecipe.value,"recipe-options":e(Q).optRecipeOptions.value,"series-of":e(Q).optSeriesOf.value,"series-loading":e(Q).optSeriesLoading.value,"status-key":e(Q).optStatusKey,"series-path":e(Q).seriesPath,"fmt-point":e(Q).fmtPoint,onToggle:e(Q).toggleOptPanel,onSelectLine:n[9]||=t=>e(Q).optFilterLine.value=t,onSelectRecipe:n[10]||=t=>e(Q).optFilterRecipe.value=t,onLineChange:e(Q).onOptLineChange,onFilter:e(Q).filterOpts,onSeries:e(Q).showOptSeries,onRollback:e(Q).rollbackRecord},null,8,[`optimizations`,`lines`,`open`,`mounted`,`filter-line`,`filter-recipe`,`recipe-options`,`series-of`,`series-loading`,`status-key`,`series-path`,`fmt-point`,`onToggle`,`onLineChange`,`onFilter`,`onSeries`,`onRollback`]),d(k,{"table-el":e(J),"onUpdate:tableEl":n[11]||=e=>i(J)?J.value=e:null,filters:e(T),"onUpdate:filters":n[12]||=e=>i(T)?T.value=e:null,"has-filters":e(E),lines:e(c).lines,"bound-devices":e(V),"template-options":e(M),"driver-options":e(te),"filtered-count":e(H).length,"total-count":e(o).nodes.length,"ops-recent":e(_).recent,"ops-kind-label":b,"ops-time":x,alarms:e(o).alarms,"visible-nodes":e(me),"pad-top-px":e(he),"pad-bottom-px":e(Y),loading:!e(o).loaded&&!e(o).error,loaded:e(o).loaded,error:e(o).error,onClearFilters:e(j),onAck:C},null,8,[`table-el`,`filters`,`has-filters`,`lines`,`bound-devices`,`template-options`,`driver-options`,`filtered-count`,`total-count`,`ops-recent`,`alarms`,`visible-nodes`,`pad-top-px`,`pad-bottom-px`,`loading`,`loaded`,`error`,`onClearFilters`]),e(o).error?(l(),h(`p`,gi,[S(r(e(o).error)+`(`,1),d(A,{to:`/workshop`},{default:y(()=>[S(r(t.$t(`daq.k1bhhheq077`)),1)]),_:1}),n[14]||=S(`) `,-1)])):v(``,!0)])}}});export{_i as default};
@@ -1 +1 @@
1
- import{g as e}from"./CavpkQb0.js";import{t}from"./36oeS8_R.js";import{t as n}from"./JgheoP3e.js";import{t as r}from"./Crbir9cT.js";var i=[`thermo`,`pressure`,`tension`,`encoder`,`camera`,`gateway`],a=[{key:`temp-tc`,name:`温度传感器`,code:`TEMP · TC`,ch:`熔体/箱体温度`,unit:`℃`,base:168,amp:3.2,min:150,max:185,decimals:1,icon:`thermo`,telemetryKey:`temperature`,semantics:`熔体/箱体温度:热工艺核心被控量,热惯性大(变化平缓)。判读:与设定值偏差 ±2℃ 内为稳态;持续单边漂移 = 加热/散热失衡;骤升骤降多为扰动或传感器异常。`},{key:`pressure-tx`,name:`压力变送器`,code:`PRESSURE · TX`,ch:`熔体压力`,unit:`MPa`,base:.82,amp:.05,min:.6,max:1.2,decimals:2,icon:`pressure`,telemetryKey:`pressure`,semantics:`熔体压力:挤出负荷的「血压计」。判读:与温度负相关(温度升→熔体黏度降→压力降);压力突升常见于滤网堵塞或出料受阻。`},{key:`tension-cell`,name:`张力传感器`,code:`TENSION · CELL`,ch:`膜张力`,unit:`kN`,base:21.4,amp:.9,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力:成膜质量直接指标。判读:张力波动与速度/温度设定强耦合,评估张力前先确认速度稳定。`},{key:`line-encoder`,name:`速度编码器`,code:`LINE · ENCODER`,ch:`产线速度`,unit:`m/min`,base:318,amp:7,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度:产能直接观测量。判读:实际速度对设定值的跟随滞后反映传动惯量;速度波动会传导至张力与厚度。`},{key:`vision-cam`,name:`视觉检测相机`,code:`VISION · CAM`,ch:`表面缺陷率`,unit:`‰`,base:.42,amp:.09,min:.1,max:.9,decimals:2,icon:`camera`},{key:`power-meter`,name:`电参采集器`,code:`POWER · METER`,ch:`运行功率`,unit:`kW`,base:45.2,amp:2.6,min:38,max:55,decimals:1,icon:`gateway`},{key:`thickness-scan`,name:`测厚扫描仪`,code:`THK · SCAN`,ch:`厚度轮廓`,unit:`mm`,base:.52,amp:.018,min:.4,max:.65,decimals:3,icon:`tension`,signalKind:`vector`,vector:{points:64,min:.4,max:.65},sink:{processors:[{name:`resample`,args:{n:64}},{name:`derive-metric`,args:{name:`avg`,op:`avg`}},{name:`derive-metric`,args:{name:`max`,op:`max`}}]},metrics:[{key:`max`,label:`最大厚度`,unit:`mm`,alarmHigh:.62},{key:`avg`,label:`平均厚度`,unit:`mm`,warnLow:.47,warnHigh:.57}],semantics:`测厚仪横向扫描轮廓:多点厚度分布。判读:平均值漂移=工艺整体偏移;单点尖峰=局部缺陷(夹杂/气泡);max 越硬限=超差,须联动分切剔除。`},{key:`ccd-image`,name:`CCD 视觉相机`,code:`CCD · IMG`,ch:`表面图像`,unit:`灰度`,base:128,amp:0,min:0,max:255,decimals:0,icon:`camera`,signalKind:`image`,sink:{processors:[{name:`thumbnail`,args:{width:256}},{name:`quality-gate`}]},metrics:[{key:`brightness`,label:`平均亮度`,unit:`gray`,alarmLow:30,alarmHigh:230}],semantics:`CCD 图像帧:像素数据入对象存储,Timescale 仅存元数据与派生指标。判读:brightness 过低=曝光不足/镜头遮挡,过高=过曝;缺陷识别算法经插件处理器扩展。`}],o=e=>e.startsWith(`daq-`)?e.slice(4):e,s=[{kind:`mock`,label:`Mock 模拟源`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`opcua`,label:`OPC UA(PLC/MES)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.Tag1`,hint:`要采集的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`},{key:`certificateFile`,label:`客户端证书路径(可选)`,type:`string`,placeholder:`certs/client_cert.pem`,hint:`Sign/SignAndEncrypt 时的 PEM 证书;留空自动生成自签`},{key:`privateKeyFile`,label:`私钥路径(可选)`,type:`string`,placeholder:`certs/client_key.pem`,hint:`与证书配对的 PEM 私钥`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP(设备本身走 RS-485)`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`mqtt`,label:`MQTT(网关/边缘采集)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20 或 mqtt.example.com`,hint:`MQTT Broker(EMQX/Mosquitto/Aliyun IoT)地址`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 标准端口 1883(TLS 8883)`},{key:`topic`,label:`主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/temp`,hint:`设备上报数值的主题;支持 +/# 通配`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.temperature`,hint:`payload 为 JSON 时按路径取数值,如 data.temp;纯数字报文留空`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(轮询)`,status:`real`,configFields:[{key:`url`,label:`接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/sensor`,hint:`返回数值或 JSON 的 HTTP 接口`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.value`,hint:`响应为 JSON 时按路径取数值,如 data.value;纯文本留空`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]},{kind:`s7`,label:`S7(西门子 PLC)`,status:`planned`,configFields:[]}],c=60,l=30,u=(e,t)=>r({base:`/api/workshop/daq`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0}),d=()=>{let r=e([]),i=new Map,o=e([]),d=e({running:!0,defaultIntervalMs:1e3,defaultPublishIntervalMs:0,queryDisplayIntervalMs:5e3,nodesTotal:0,nodesOnline:0}),f=e({tsdb:`…`,queue:`…`,drivers:s.map(e=>({kind:e.kind,label:e.label,status:e.status,configFields:e.configFields})),driverAvailable:{},infra:void 0,produced:0,consumed:0,dropped:0,samplesStored:0}),p=e(a.map(e=>({...e}))),m=e({});function h(){i.clear();for(let e of r)i.set(e.id,e)}function g(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):(r.push({...e,hist:[]}),i.set(e.id,r[r.length-1]))}let _=[],v=null;function y(){v=null;let e=_;if(_=[],!e.length)return;let t=new Map;for(let n of e){t.set(n.nodeId,n);let e=i.get(n.nodeId);e&&(e.hist.push(n.value),e.hist.length>c&&e.hist.splice(0,e.hist.length-c))}for(let e of t.values()){let t=i.get(e.nodeId);t&&(t.value=e.value,t.state=e.state,t.lastAt=e.at)}}function b(e){_.push(e),v||=setTimeout(y,500)}function x(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1),i.delete(e.node.id),Reflect.deleteProperty(m,e.node.id);return}g(e.node)}}function S(e){p.splice(0,p.length,...e.map(e=>({...e})))}function C(e){if(!e.template)return;let t=p.findIndex(t=>t.key===e.template.key);if(e.op===`removed`){t>=0&&p.splice(t,1);return}t>=0?p[t]={...e.template}:p.push({...e.template})}function w(e){let t=Date.parse(e.at),n=m[e.nodeId]??(m[e.nodeId]=[]);n.some(e=>e.at===t)||(n.unshift({at:t,kind:e.kind,points:e.preview,metrics:e.metrics??{},thumbUrl:e.thumbUrl,contentUrl:e.thumbUrl?e.thumbUrl.replace(`thumb=1`,`thumb=0`):void 0}),n.length>l&&n.splice(l));let r=i.get(e.nodeId);r&&(r.value=e.metrics?.avg??r.value,e.state&&(r.state=e.state),r.lastAt=e.at)}let T=0,E=null;function D(){T++,T===1&&(E=t().subscribe(O));let e=!1;return()=>{e||(e=!0,--T===0&&(E?.(),E=null))}}function O(e){if(e.type===`daq.reading`)b(e.payload);else if(e.type===`daq.frame`)w(e.payload);else if(e.type===`daq.node.changed`)x(e.payload);else if(e.type===`daq.controller`)Object.assign(d,e.payload);else if(e.type===`daq.template.changed`)C(e.payload);else if(e.type===`daq.alarm`){let t=e.payload;o.some(e=>e.id===t.id)||o.unshift(t)}else if(e.type===`daq.alarm.changed`){let t=e.payload;if(t.ackedAt){let e=o.findIndex(e=>e.id===t.id);e>=0&&o.splice(e,1)}}}async function k(){try{let e=await u(``),t=new Map(r.map(e=>[e.id,e])),n=[];for(let r of e.nodes){let e=t.get(r.id);e?(Object.assign(e,r),n.push(e),t.delete(r.id)):n.push({...r,hist:[]})}r.splice(0,r.length,...n),h();for(let e of Object.keys(m))i.has(e)||Reflect.deleteProperty(m,e);Object.assign(d,e.controller),Object.assign(f,e.meta??{}),f.driverAvailable=e.driverAvailable??{},e.drivers?.length&&(f.drivers=e.drivers),f.infra=e.infra,e.templates?.length&&S(e.templates),q.loaded=!0,q.error=``}catch(e){q.error=n(e)}}async function A(e,t){let n=await u(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return g(n.node),n.node}async function j(e,t){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}async function M(e,t,n){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify({posX:t,posZ:n})})}async function N(e){await u(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1),i.delete(e),Reflect.deleteProperty(m,e)}async function P(e,t){g((await u(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)}async function F(e,t){g((await u(`/${e}/bindings`,{method:`PUT`,body:JSON.stringify({deviceIds:t})})).node)}async function I(e,t){return(await u(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})})).test}async function L(e){return(await u(`/${e}/test`,{method:`POST`})).test}async function R(){try{let e=await u(`/alarms?scope=open&limit=50`);o.splice(0,o.length,...e.alarms??[])}catch{}}async function z(e){await u(`/alarms/${e}/ack`,{method:`POST`}),await R()}async function B(){let e=await u(`/infra/reconnect`,{method:`POST`});return f.infra=e.infra,await k(),e.infra}async function V(e,t,n){let r=await u(`/controller`,{method:`POST`,body:JSON.stringify({action:e,defaultIntervalMs:t,defaultPublishIntervalMs:n})});Object.assign(d,r.controller)}async function H(e,t={}){let n=new URLSearchParams;return t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.bucketMs!=null&&n.set(`bucketMs`,String(t.bucketMs)),t.limit!=null&&n.set(`limit`,String(t.limit)),(await u(`/${e}/samples?${n.toString()}`)).points??[]}async function U(e,t={}){let n=new URLSearchParams;t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.kind&&n.set(`kind`,t.kind),t.limit!=null&&n.set(`limit`,String(t.limit));let r=await u(`/${e}/frames?${n.toString()}`);return m[e]=r.frames??[],m[e]}async function W(e){let t=await u(`/templates`,{method:`POST`,body:JSON.stringify(e)});return C({op:`added`,template:t.template}),t.template}async function G(e,t){let n=await u(`/templates/${e}`,{method:`PATCH`,body:JSON.stringify(t)});return C({op:`updated`,template:n.template}),n.template}async function K(e){await u(`/templates/${e}`,{method:`DELETE`}),C({op:`removed`,template:{key:e}})}let q=e({nodes:r,controller:d,meta:f,templates:p,loaded:!1,error:``,ensureWsFeed:D,load:k,createFromTemplate:A,createTemplate:W,updateTemplate:G,removeTemplate:K,testDriver:I,testNode:L,reconnectInfra:B,patchNode:j,saveTransform:M,removeNode:N,bindNode:P,setNodeBindings:F,controllerAction:V,alarms:o,fetchAlarms:R,ackAlarm:z,nodeById:e=>i.get(e)??r.find(t=>t.id===e),samplesOf:H,fetchFrames:U,frames:m,framesOf:e=>m[e]??[],templateOf:e=>p.find(t=>t.key===e||`daq-${t.key}`===e),ofDevice:e=>e?r.filter(t=>t.deviceBindingId===e):[]});return q},f=`__daqStream`;function p(){let e=globalThis;return e[f]||(e[f]=d()),e[f]}export{o as a,i,s as n,a as r,p as t};
1
+ import{g as e}from"./CavpkQb0.js";import{t}from"./36oeS8_R.js";import{t as n}from"./JgheoP3e.js";import{n as r}from"./BQOn0q6Y.js";var i=[`thermo`,`pressure`,`tension`,`encoder`,`camera`,`gateway`],a=[{key:`temp-tc`,name:`温度传感器`,code:`TEMP · TC`,ch:`熔体/箱体温度`,unit:`℃`,base:168,amp:3.2,min:150,max:185,decimals:1,icon:`thermo`,telemetryKey:`temperature`,semantics:`熔体/箱体温度:热工艺核心被控量,热惯性大(变化平缓)。判读:与设定值偏差 ±2℃ 内为稳态;持续单边漂移 = 加热/散热失衡;骤升骤降多为扰动或传感器异常。`},{key:`pressure-tx`,name:`压力变送器`,code:`PRESSURE · TX`,ch:`熔体压力`,unit:`MPa`,base:.82,amp:.05,min:.6,max:1.2,decimals:2,icon:`pressure`,telemetryKey:`pressure`,semantics:`熔体压力:挤出负荷的「血压计」。判读:与温度负相关(温度升→熔体黏度降→压力降);压力突升常见于滤网堵塞或出料受阻。`},{key:`tension-cell`,name:`张力传感器`,code:`TENSION · CELL`,ch:`膜张力`,unit:`kN`,base:21.4,amp:.9,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力:成膜质量直接指标。判读:张力波动与速度/温度设定强耦合,评估张力前先确认速度稳定。`},{key:`line-encoder`,name:`速度编码器`,code:`LINE · ENCODER`,ch:`产线速度`,unit:`m/min`,base:318,amp:7,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度:产能直接观测量。判读:实际速度对设定值的跟随滞后反映传动惯量;速度波动会传导至张力与厚度。`},{key:`vision-cam`,name:`视觉检测相机`,code:`VISION · CAM`,ch:`表面缺陷率`,unit:`‰`,base:.42,amp:.09,min:.1,max:.9,decimals:2,icon:`camera`},{key:`power-meter`,name:`电参采集器`,code:`POWER · METER`,ch:`运行功率`,unit:`kW`,base:45.2,amp:2.6,min:38,max:55,decimals:1,icon:`gateway`},{key:`thickness-scan`,name:`测厚扫描仪`,code:`THK · SCAN`,ch:`厚度轮廓`,unit:`mm`,base:.52,amp:.018,min:.4,max:.65,decimals:3,icon:`tension`,signalKind:`vector`,vector:{points:64,min:.4,max:.65},sink:{processors:[{name:`resample`,args:{n:64}},{name:`derive-metric`,args:{name:`avg`,op:`avg`}},{name:`derive-metric`,args:{name:`max`,op:`max`}}]},metrics:[{key:`max`,label:`最大厚度`,unit:`mm`,alarmHigh:.62},{key:`avg`,label:`平均厚度`,unit:`mm`,warnLow:.47,warnHigh:.57}],semantics:`测厚仪横向扫描轮廓:多点厚度分布。判读:平均值漂移=工艺整体偏移;单点尖峰=局部缺陷(夹杂/气泡);max 越硬限=超差,须联动分切剔除。`},{key:`ccd-image`,name:`CCD 视觉相机`,code:`CCD · IMG`,ch:`表面图像`,unit:`灰度`,base:128,amp:0,min:0,max:255,decimals:0,icon:`camera`,signalKind:`image`,sink:{processors:[{name:`thumbnail`,args:{width:256}},{name:`quality-gate`}]},metrics:[{key:`brightness`,label:`平均亮度`,unit:`gray`,alarmLow:30,alarmHigh:230}],semantics:`CCD 图像帧:像素数据入对象存储,Timescale 仅存元数据与派生指标。判读:brightness 过低=曝光不足/镜头遮挡,过高=过曝;缺陷识别算法经插件处理器扩展。`}],o=e=>e.startsWith(`daq-`)?e.slice(4):e,s=[{kind:`mock`,label:`Mock 模拟源`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`opcua`,label:`OPC UA(PLC/MES)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.Tag1`,hint:`要采集的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`},{key:`certificateFile`,label:`客户端证书路径(可选)`,type:`string`,placeholder:`certs/client_cert.pem`,hint:`Sign/SignAndEncrypt 时的 PEM 证书;留空自动生成自签`},{key:`privateKeyFile`,label:`私钥路径(可选)`,type:`string`,placeholder:`certs/client_key.pem`,hint:`与证书配对的 PEM 私钥`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP(设备本身走 RS-485)`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`寄存器地址`,type:`number`,required:!0,placeholder:`40001`,hint:`4xxxx=保持寄存器(地址-40001 为协议偏移);3xxxx=输入寄存器`},{key:`registerType`,label:`寄存器区`,type:`select`,default:`holding`,options:[{value:`holding`,label:`保持寄存器(4x)`},{value:`input`,label:`输入寄存器(3x)`}]},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`scale`,label:`缩放系数`,type:`number`,default:1,hint:`原始值 × scale = 工程量(如 0.1)`},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]}]},{kind:`mqtt`,label:`MQTT(网关/边缘采集)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20 或 mqtt.example.com`,hint:`MQTT Broker(EMQX/Mosquitto/Aliyun IoT)地址`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 标准端口 1883(TLS 8883)`},{key:`topic`,label:`主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/temp`,hint:`设备上报数值的主题;支持 +/# 通配`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.temperature`,hint:`payload 为 JSON 时按路径取数值,如 data.temp;纯数字报文留空`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(轮询)`,status:`real`,configFields:[{key:`url`,label:`接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/sensor`,hint:`返回数值或 JSON 的 HTTP 接口`},{key:`jsonPath`,label:`取值路径(可选)`,type:`string`,placeholder:`data.value`,hint:`响应为 JSON 时按路径取数值,如 data.value;纯文本留空`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]},{kind:`s7`,label:`S7(西门子 PLC)`,status:`planned`,configFields:[]}],c=60,l=30,u=(e,t)=>r({base:`/api/workshop/daq`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0}),d=()=>{let r=e([]),i=new Map,o=e([]),d=e({running:!0,defaultIntervalMs:1e3,defaultPublishIntervalMs:0,queryDisplayIntervalMs:5e3,nodesTotal:0,nodesOnline:0}),f=e({tsdb:`…`,queue:`…`,drivers:s.map(e=>({kind:e.kind,label:e.label,status:e.status,configFields:e.configFields})),driverAvailable:{},infra:void 0,produced:0,consumed:0,dropped:0,samplesStored:0}),p=e(a.map(e=>({...e}))),m=e({});function h(){i.clear();for(let e of r)i.set(e.id,e)}function g(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):(r.push({...e,hist:[]}),i.set(e.id,r[r.length-1]))}let _=[],v=null;function y(){v=null;let e=_;if(_=[],!e.length)return;let t=new Map;for(let n of e){t.set(n.nodeId,n);let e=i.get(n.nodeId);e&&(e.hist.push(n.value),e.hist.length>c&&e.hist.splice(0,e.hist.length-c))}for(let e of t.values()){let t=i.get(e.nodeId);t&&(t.value=e.value,t.state=e.state,t.lastAt=e.at)}}function b(e){_.push(e),v||=setTimeout(y,500)}function x(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1),i.delete(e.node.id),Reflect.deleteProperty(m,e.node.id);return}g(e.node)}}function S(e){p.splice(0,p.length,...e.map(e=>({...e})))}function C(e){if(!e.template)return;let t=p.findIndex(t=>t.key===e.template.key);if(e.op===`removed`){t>=0&&p.splice(t,1);return}t>=0?p[t]={...e.template}:p.push({...e.template})}function w(e){let t=Date.parse(e.at),n=m[e.nodeId]??(m[e.nodeId]=[]);n.some(e=>e.at===t)||(n.unshift({at:t,kind:e.kind,points:e.preview,metrics:e.metrics??{},thumbUrl:e.thumbUrl,contentUrl:e.thumbUrl?e.thumbUrl.replace(`thumb=1`,`thumb=0`):void 0}),n.length>l&&n.splice(l));let r=i.get(e.nodeId);r&&(r.value=e.metrics?.avg??r.value,e.state&&(r.state=e.state),r.lastAt=e.at)}let T=0,E=null;function D(){T++,T===1&&(E=t().subscribe(O));let e=!1;return()=>{e||(e=!0,--T===0&&(E?.(),E=null))}}function O(e){if(e.type===`daq.reading`)b(e.payload);else if(e.type===`daq.frame`)w(e.payload);else if(e.type===`daq.node.changed`)x(e.payload);else if(e.type===`daq.controller`)Object.assign(d,e.payload);else if(e.type===`daq.template.changed`)C(e.payload);else if(e.type===`daq.alarm`){let t=e.payload;o.some(e=>e.id===t.id)||o.unshift(t)}else if(e.type===`daq.alarm.changed`){let t=e.payload;if(t.ackedAt){let e=o.findIndex(e=>e.id===t.id);e>=0&&o.splice(e,1)}}}async function k(){try{let e=await u(``),t=new Map(r.map(e=>[e.id,e])),n=[];for(let r of e.nodes){let e=t.get(r.id);e?(Object.assign(e,r),n.push(e),t.delete(r.id)):n.push({...r,hist:[]})}r.splice(0,r.length,...n),h();for(let e of Object.keys(m))i.has(e)||Reflect.deleteProperty(m,e);Object.assign(d,e.controller),Object.assign(f,e.meta??{}),f.driverAvailable=e.driverAvailable??{},e.drivers?.length&&(f.drivers=e.drivers),f.infra=e.infra,e.templates?.length&&S(e.templates),q.loaded=!0,q.error=``}catch(e){q.error=n(e)}}async function A(e,t){let n=await u(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return g(n.node),n.node}async function j(e,t){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})}async function M(e,t,n){await u(`/${e}`,{method:`PATCH`,body:JSON.stringify({posX:t,posZ:n})})}async function N(e){await u(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1),i.delete(e),Reflect.deleteProperty(m,e)}async function P(e,t){g((await u(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)}async function F(e,t){g((await u(`/${e}/bindings`,{method:`PUT`,body:JSON.stringify({deviceIds:t})})).node)}async function I(e,t){return(await u(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})})).test}async function L(e){return(await u(`/${e}/test`,{method:`POST`})).test}async function R(){try{let e=await u(`/alarms?scope=open&limit=50`);o.splice(0,o.length,...e.alarms??[])}catch{}}async function z(e){await u(`/alarms/${e}/ack`,{method:`POST`}),await R()}async function B(){let e=await u(`/infra/reconnect`,{method:`POST`});return f.infra=e.infra,await k(),e.infra}async function V(e,t,n){let r=await u(`/controller`,{method:`POST`,body:JSON.stringify({action:e,defaultIntervalMs:t,defaultPublishIntervalMs:n})});Object.assign(d,r.controller)}async function H(e,t={}){let n=new URLSearchParams;return t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.bucketMs!=null&&n.set(`bucketMs`,String(t.bucketMs)),t.limit!=null&&n.set(`limit`,String(t.limit)),(await u(`/${e}/samples?${n.toString()}`)).points??[]}async function U(e,t={}){let n=new URLSearchParams;t.fromMs!=null&&n.set(`from`,String(t.fromMs)),t.toMs!=null&&n.set(`to`,String(t.toMs)),t.kind&&n.set(`kind`,t.kind),t.limit!=null&&n.set(`limit`,String(t.limit));let r=await u(`/${e}/frames?${n.toString()}`);return m[e]=r.frames??[],m[e]}async function W(e){let t=await u(`/templates`,{method:`POST`,body:JSON.stringify(e)});return C({op:`added`,template:t.template}),t.template}async function G(e,t){let n=await u(`/templates/${e}`,{method:`PATCH`,body:JSON.stringify(t)});return C({op:`updated`,template:n.template}),n.template}async function K(e){await u(`/templates/${e}`,{method:`DELETE`}),C({op:`removed`,template:{key:e}})}let q=e({nodes:r,controller:d,meta:f,templates:p,loaded:!1,error:``,ensureWsFeed:D,load:k,createFromTemplate:A,createTemplate:W,updateTemplate:G,removeTemplate:K,testDriver:I,testNode:L,reconnectInfra:B,patchNode:j,saveTransform:M,removeNode:N,bindNode:P,setNodeBindings:F,controllerAction:V,alarms:o,fetchAlarms:R,ackAlarm:z,nodeById:e=>i.get(e)??r.find(t=>t.id===e),samplesOf:H,fetchFrames:U,frames:m,framesOf:e=>m[e]??[],templateOf:e=>p.find(t=>t.key===e||`daq-${t.key}`===e),ofDevice:e=>e?r.filter(t=>t.deviceBindingId===e):[]});return q},f=`__daqStream`;function p(){let e=globalThis;return e[f]||(e[f]=d()),e[f]}export{o as a,i,s as n,a as r,p as t};