agentworkshop 0.7.49 → 0.7.50

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 (883) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +409 -6
  2. package/.output/.AgentWorkShop/aml-python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  3. package/.output/.AgentWorkShop/aml-python/__pycache__/amlkit.cpython-312.pyc +0 -0
  4. package/.output/.AgentWorkShop/aml-python/__pycache__/train-example.cpython-312.pyc +0 -0
  5. package/.output/.AgentWorkShop/aml-python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  6. package/.output/.AgentWorkShop/aml-python/aml_eval.py +39 -6
  7. package/.output/.AgentWorkShop/aml-python/amlkit.py +222 -3
  8. package/.output/.AgentWorkShop/aml-python/train-hybrid-example.py +278 -32
  9. package/.output/.AgentWorkShop/prompts/host-tools.json +409 -6
  10. package/.output/.AgentWorkShop/schema.json +135 -133
  11. package/.output/nitro.json +1 -1
  12. package/.output/public/_nuxt/2_DkYoqD2.js +1 -0
  13. package/.output/public/_nuxt/8FXd9As6.js +1 -0
  14. package/.output/public/_nuxt/{d-w5jR8R.js → B3zB6K6m.js} +1 -1
  15. package/.output/public/_nuxt/{OXtV_ukR.js → B4ujjkUI.js} +1 -1
  16. package/.output/public/_nuxt/B9BmiUil.js +2 -0
  17. package/.output/public/_nuxt/B9QzrmgE.js +1 -0
  18. package/.output/public/_nuxt/BE7BrEw6.js +1 -0
  19. package/.output/public/_nuxt/{Cu8c3oMN2.js → BFZIll912.js} +1 -1
  20. package/.output/public/_nuxt/{ChtjzEpK2.js → BGAaKBeo2.js} +1 -1
  21. package/.output/public/_nuxt/BOmDHp5L.js +14 -0
  22. package/.output/public/_nuxt/BPou3U7b.js +1 -0
  23. package/.output/public/_nuxt/{CiTQY_n32.js → BXx9AxdF2.js} +1 -1
  24. package/.output/public/_nuxt/Bfe2qOYs.js +1 -0
  25. package/.output/public/_nuxt/BgEDwFMf.js +1 -0
  26. package/.output/public/_nuxt/BgnhB8r5.js +1 -0
  27. package/.output/public/_nuxt/Bhe953zV2.js +1 -0
  28. package/.output/public/_nuxt/{BITZvQBK.js → Bpkm4W5P.js} +1 -1
  29. package/.output/public/_nuxt/C4lagVdN2.js +1 -0
  30. package/.output/public/_nuxt/C5cf3T4d.js +1 -0
  31. package/.output/public/_nuxt/CBIoheY42.js +1 -0
  32. package/.output/public/_nuxt/{CN1CDAwe.js → CFQSjB1h.js} +1 -1
  33. package/.output/public/_nuxt/CFQyYMEn2.js +1 -0
  34. package/.output/public/_nuxt/CHrErv1E.js +1 -0
  35. package/.output/public/_nuxt/{fxWyOzyp2.js → CI2yXRr42.js} +1 -1
  36. package/.output/public/_nuxt/CIduggmC.js +1 -0
  37. package/.output/public/_nuxt/CU-mhG0-.js +1 -0
  38. package/.output/public/_nuxt/CXzfXC5M.js +1 -0
  39. package/.output/public/_nuxt/{H6pPjo0l.js → C_sjV3Ee.js} +1 -1
  40. package/.output/public/_nuxt/Ccps4cxo.js +1 -0
  41. package/.output/public/_nuxt/{CPmNRTBk2.js → CdIsmU5a2.js} +10 -10
  42. package/.output/public/_nuxt/{BS9P_Ies2.js → ChGuLxwW2.js} +1 -1
  43. package/.output/public/_nuxt/{Ck5oMvUk.js → Cn6ihm8j.js} +1 -1
  44. package/.output/public/_nuxt/{CWzp2R6G.js → D-Xyb3DA.js} +1 -1
  45. package/.output/public/_nuxt/D0SNhlnt.js +1 -0
  46. package/.output/public/_nuxt/D0ldVwl-.js +1 -0
  47. package/.output/public/_nuxt/DClNt1uS.js +1 -0
  48. package/.output/public/_nuxt/{CTVfcnjU.js → DQMbdg4t.js} +2 -2
  49. package/.output/public/_nuxt/{DHSDk8Bq2.js → DTxfFIvL2.js} +1 -1
  50. package/.output/public/_nuxt/DVKXGuMz2.js +1 -0
  51. package/.output/public/_nuxt/{CLySL7mW.js → Da0h_6VA.js} +1 -1
  52. package/.output/public/_nuxt/{PixDfCSm.js → DefDtlKK.js} +1 -1
  53. package/.output/public/_nuxt/DjefmmJu.js +1 -0
  54. package/.output/public/_nuxt/DnH9SRMW2.js +1 -0
  55. package/.output/public/_nuxt/{BmiMC_BC.js → DppqsiPC.js} +1 -1
  56. package/.output/public/_nuxt/Drq9iy6V.js +1 -0
  57. package/.output/public/_nuxt/DsGf2IV82.js +1 -0
  58. package/.output/public/_nuxt/{DoKpLEqc.js → DzfVS8N72.js} +1 -1
  59. package/.output/public/_nuxt/{DRpFsrno.js → I1cI6sPJ2.js} +1 -1
  60. package/.output/public/_nuxt/IU-UGkCJ2.js +1 -0
  61. package/.output/public/_nuxt/KXjvpIk2.js +1 -0
  62. package/.output/public/_nuxt/NJn94js_.js +1 -0
  63. package/.output/public/_nuxt/ON2x-t6n.js +1 -0
  64. package/.output/public/_nuxt/S799kNo8.js +1 -0
  65. package/.output/public/_nuxt/{uI9Ki_XZ.js → S9rLP7_v.js} +1 -1
  66. package/.output/public/_nuxt/UN3nSFjj2.js +1 -0
  67. package/.output/public/_nuxt/WVTVkqef.js +1 -0
  68. package/.output/public/_nuxt/{C_VAXV7I2.js → Yv9YItEX2.js} +1 -1
  69. package/.output/public/_nuxt/_id_.DamiFT0Q.css +1 -0
  70. package/.output/public/_nuxt/{_id_.BTrFUIHX.css → _id_.DpRe1PRh.css} +1 -1
  71. package/.output/public/_nuxt/_wsId_.DkrQkT6r.css +1 -0
  72. package/.output/public/_nuxt/aml.-czpKIs8.css +1 -0
  73. package/.output/public/_nuxt/asmJ99nX2.js +47 -0
  74. package/.output/public/_nuxt/builds/latest.json +1 -1
  75. package/.output/public/_nuxt/builds/meta/08ba670b-7512-426b-a0ae-b10cbeb1c985.json +1 -0
  76. package/.output/public/_nuxt/{default.uao9U50c.css → default.CXb_zoN6.css} +1 -1
  77. package/.output/public/_nuxt/{entry.6DEjPWvR.css → entry.JdEG3KJg.css} +1 -1
  78. package/.output/public/_nuxt/jRTz0hjN2.js +1 -0
  79. package/.output/public/_nuxt/{DLPuRMeG.js → k5K6Jj6g.js} +1 -1
  80. package/.output/public/_nuxt/operations.B8X9uWK6.css +1 -0
  81. package/.output/public/_nuxt/{settings.Bo5EYkLI.css → settings.O26Dw1iT.css} +1 -1
  82. package/.output/public/_nuxt/{BACBBVdw.js → tKxYgsf-.js} +1 -1
  83. package/.output/public/_nuxt/{Cm_PTn9t2.js → vXrNItas2.js} +1 -1
  84. package/.output/public/_nuxt/{Cr518Gh02.js → zsRclU9w2.js} +1 -1
  85. package/.output/server/chunks/_/LeftOutlined.mjs +1 -1
  86. package/.output/server/chunks/_/SearchOutlined.mjs +1 -1
  87. package/.output/server/chunks/_/binding-authz.mjs +1 -1
  88. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  89. package/.output/server/chunks/_/entity.mjs +1 -1
  90. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  91. package/.output/server/chunks/_/nitro.mjs +26134 -21024
  92. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  93. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  94. package/.output/server/chunks/build/Checkbox-4EdGAAl_.mjs +1 -1
  95. package/.output/server/chunks/build/FormItemContext-4ORSzhWv.mjs +1 -1
  96. package/.output/server/chunks/build/{OmpTerminalPanel-EQHrOJbw.mjs → OmpTerminalPanel-mk31gVzA.mjs} +3 -3
  97. package/.output/server/chunks/build/{OmpTerminalPanel-EQHrOJbw.mjs.map → OmpTerminalPanel-mk31gVzA.mjs.map} +1 -1
  98. package/.output/server/chunks/build/{PluginSlot-BP_qedpQ.mjs → PluginSlot-D2WUZgbp.mjs} +2 -2
  99. package/.output/server/chunks/build/{PluginSlot-BP_qedpQ.mjs.map → PluginSlot-D2WUZgbp.mjs.map} +1 -1
  100. package/.output/server/chunks/build/{TownView-BAR8CPIZ.mjs → TownView-fP9BiALv.mjs} +6 -6
  101. package/.output/server/chunks/build/{TownView-BAR8CPIZ.mjs.map → TownView-fP9BiALv.mjs.map} +1 -1
  102. package/.output/server/chunks/build/{_id_-DgMpjM3_.mjs → _id_-BUpQSlzo.mjs} +142 -106
  103. package/.output/server/chunks/build/_id_-BUpQSlzo.mjs.map +1 -0
  104. package/.output/server/chunks/build/{_id_-Dv3BQbYV.mjs → _id_-CDlur81q.mjs} +25 -24
  105. package/.output/server/chunks/build/_id_-CDlur81q.mjs.map +1 -0
  106. package/.output/server/chunks/build/{_wsId_-BKJvFmyf.mjs → _wsId_-DPy2BXRd.mjs} +547 -158
  107. package/.output/server/chunks/build/_wsId_-DPy2BXRd.mjs.map +1 -0
  108. package/.output/server/chunks/build/{agents-B2GLPmn2.mjs → agents-CDLcboCv.mjs} +12 -12
  109. package/.output/server/chunks/build/{agents-B2GLPmn2.mjs.map → agents-CDLcboCv.mjs.map} +1 -1
  110. package/.output/server/chunks/build/{aml-DdWicH3t.mjs → aml-DsgtDLWF.mjs} +28 -27
  111. package/.output/server/chunks/build/aml-DsgtDLWF.mjs.map +1 -0
  112. package/.output/server/chunks/build/api-BY6ji7RC.mjs +6 -6
  113. package/.output/server/chunks/build/card-CUSocE9p.mjs +1 -1
  114. package/.output/server/chunks/build/{channel-templates-RPOtkgRf.mjs → channel-templates-DjEsj0_v.mjs} +8 -8
  115. package/.output/server/chunks/build/{channel-templates-RPOtkgRf.mjs.map → channel-templates-DjEsj0_v.mjs.map} +1 -1
  116. package/.output/server/chunks/build/checkbox-C4AKj81e.mjs +1 -1
  117. package/.output/server/chunks/build/constants-HPHJvjne.mjs +6 -6
  118. package/.output/server/chunks/build/{daq-CPtsh0e7.mjs → daq-N69AOtgw.mjs} +12 -11
  119. package/.output/server/chunks/build/daq-N69AOtgw.mjs.map +1 -0
  120. package/.output/server/chunks/build/{dcw-ry5Gyw6Y.mjs → dcw-CN9d3Rs7.mjs} +10 -10
  121. package/.output/server/chunks/build/{dcw-ry5Gyw6Y.mjs.map → dcw-CN9d3Rs7.mjs.map} +1 -1
  122. package/.output/server/chunks/build/{default-DxOE1eB0.mjs → default-DCf9tn1i.mjs} +38 -30
  123. package/.output/server/chunks/build/{default-DxOE1eB0.mjs.map → default-DCf9tn1i.mjs.map} +1 -1
  124. package/.output/server/chunks/build/descriptions-CFaUq4y4.mjs +1 -1
  125. package/.output/server/chunks/build/drawer-Cfh9_zft.mjs +1 -1
  126. package/.output/server/chunks/build/dropdown-KdKWCS5K.mjs +1 -1
  127. package/.output/server/chunks/build/form-uSlNqIAV.mjs +1 -1
  128. package/.output/server/chunks/build/input-Cr_KFj4T.mjs +1 -1
  129. package/.output/server/chunks/build/input-number-BRVnxeiA.mjs +1 -1
  130. package/.output/server/chunks/build/{logs-CeaiO3y9.mjs → logs-BcAjU1Ps.mjs} +12 -11
  131. package/.output/server/chunks/build/logs-BcAjU1Ps.mjs.map +1 -0
  132. package/.output/server/chunks/build/menu-BgkRSSx7.mjs +1 -1
  133. package/.output/server/chunks/build/{monitor-DnuXEIi5.mjs → monitor-DX_K0WMq.mjs} +13 -13
  134. package/.output/server/chunks/build/{monitor-DnuXEIi5.mjs.map → monitor-DX_K0WMq.mjs.map} +1 -1
  135. package/.output/server/chunks/build/operations-OFHYXwh4.mjs +282 -0
  136. package/.output/server/chunks/build/operations-OFHYXwh4.mjs.map +1 -0
  137. package/.output/server/chunks/build/{pages-Bn90ijKD.mjs → pages-rZKH72eC.mjs} +10 -11
  138. package/.output/server/chunks/build/pages-rZKH72eC.mjs.map +1 -0
  139. package/.output/server/chunks/build/{permissions-DL70W1YD.mjs → permissions-BvmodvsO.mjs} +8 -8
  140. package/.output/server/chunks/build/{permissions-DL70W1YD.mjs.map → permissions-BvmodvsO.mjs.map} +1 -1
  141. package/.output/server/chunks/build/{plugins-DrsZo--K.mjs → plugins-DSka7-vS.mjs} +9 -9
  142. package/.output/server/chunks/build/{plugins-DrsZo--K.mjs.map → plugins-DSka7-vS.mjs.map} +1 -1
  143. package/.output/server/chunks/build/popconfirm-Ox-_2V8A.mjs +1 -1
  144. package/.output/server/chunks/build/{schedules-VLzNcjnW.mjs → schedules-lo4bfgVt.mjs} +8 -8
  145. package/.output/server/chunks/build/{schedules-VLzNcjnW.mjs.map → schedules-lo4bfgVt.mjs.map} +1 -1
  146. package/.output/server/chunks/build/segmented-C61yLHvo.mjs +1 -1
  147. package/.output/server/chunks/build/select-rdBWytVK.mjs +1 -1
  148. package/.output/server/chunks/build/{settings-DVAUVMsX.mjs → settings-CAJWvul5.mjs} +32 -13
  149. package/.output/server/chunks/build/settings-CAJWvul5.mjs.map +1 -0
  150. package/.output/server/chunks/build/space-B2uhHJG8.mjs +1 -1
  151. package/.output/server/chunks/build/spin-C2cuvGth.mjs +1 -1
  152. package/.output/server/chunks/build/switch-DZAUIbIN.mjs +1 -1
  153. package/.output/server/chunks/build/table-DOFAvY-v.mjs +1 -1
  154. package/.output/server/chunks/build/tabs-DTeIuZeP.mjs +1 -1
  155. package/.output/server/chunks/build/tag-CHLGvNM6.mjs +1 -1
  156. package/.output/server/chunks/build/{teams-Mc07PYO8.mjs → teams-DBBvIToa.mjs} +14 -14
  157. package/.output/server/chunks/build/{teams-Mc07PYO8.mjs.map → teams-DBBvIToa.mjs.map} +1 -1
  158. package/.output/server/chunks/build/{tokens-DiwD5qni.mjs → tokens-CloWk4x_.mjs} +12 -12
  159. package/.output/server/chunks/build/{tokens-DiwD5qni.mjs.map → tokens-CloWk4x_.mjs.map} +1 -1
  160. package/.output/server/chunks/build/{town-D8VmTCmN.mjs → town-BMlctE4m.mjs} +12 -12
  161. package/.output/server/chunks/build/{town-D8VmTCmN.mjs.map → town-BMlctE4m.mjs.map} +1 -1
  162. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  163. package/.output/server/chunks/build/{useAgentHarnessOptions-CPn5dzKe.mjs → useAgentHarnessOptions-D6SJ_uUr.mjs} +7 -7
  164. package/.output/server/chunks/build/{useAgentHarnessOptions-CPn5dzKe.mjs.map → useAgentHarnessOptions-D6SJ_uUr.mjs.map} +1 -1
  165. package/.output/server/chunks/build/{useAgentTemplateActions-DQWzVnZ0.mjs → useAgentTemplateActions-CdG4g_PF.mjs} +7 -7
  166. package/.output/server/chunks/build/{useAgentTemplateActions-DQWzVnZ0.mjs.map → useAgentTemplateActions-CdG4g_PF.mjs.map} +1 -1
  167. package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +6 -6
  168. package/.output/server/chunks/build/{useAgentTemplateForm-vqyiRPtt.mjs → useAgentTemplateForm-a5y-N5sB.mjs} +7 -7
  169. package/.output/server/chunks/build/{useAgentTemplateForm-vqyiRPtt.mjs.map → useAgentTemplateForm-a5y-N5sB.mjs.map} +1 -1
  170. package/.output/server/chunks/build/{useAgentTemplatesCatalog-DcQbsOik.mjs → useAgentTemplatesCatalog-pBVcUuN3.mjs} +7 -7
  171. package/.output/server/chunks/build/{useAgentTemplatesCatalog-DcQbsOik.mjs.map → useAgentTemplatesCatalog-pBVcUuN3.mjs.map} +1 -1
  172. package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs +6 -6
  173. package/.output/server/chunks/build/{useAmlEntities-BjXWvFd_.mjs → useAmlEntities-BDQ8TmLL.mjs} +7 -7
  174. package/.output/server/chunks/build/{useAmlEntities-BjXWvFd_.mjs.map → useAmlEntities-BDQ8TmLL.mjs.map} +1 -1
  175. package/.output/server/chunks/build/{useAmlEnv-BB7p6x_w.mjs → useAmlEnv-DgTVwpqi.mjs} +7 -7
  176. package/.output/server/chunks/build/{useAmlEnv-BB7p6x_w.mjs.map → useAmlEnv-DgTVwpqi.mjs.map} +1 -1
  177. package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs +6 -6
  178. package/.output/server/chunks/build/{useAmlFormat-WrKuRfw2.mjs → useAmlFormat-C2sl3MGB.mjs} +7 -7
  179. package/.output/server/chunks/build/{useAmlFormat-WrKuRfw2.mjs.map → useAmlFormat-C2sl3MGB.mjs.map} +1 -1
  180. package/.output/server/chunks/build/{useAmlJobs-DBuLvWMF.mjs → useAmlJobs-fk-H5Rp5.mjs} +10 -9
  181. package/.output/server/chunks/build/useAmlJobs-fk-H5Rp5.mjs.map +1 -0
  182. package/.output/server/chunks/build/{useAmlModels-VurmkBYe.mjs → useAmlModels-hgyVHoAq.mjs} +7 -7
  183. package/.output/server/chunks/build/{useAmlModels-VurmkBYe.mjs.map → useAmlModels-hgyVHoAq.mjs.map} +1 -1
  184. package/.output/server/chunks/build/{useAmlNotes-BUdj3X6Y.mjs → useAmlNotes-BjbYNADm.mjs} +7 -7
  185. package/.output/server/chunks/build/{useAmlNotes-BUdj3X6Y.mjs.map → useAmlNotes-BjbYNADm.mjs.map} +1 -1
  186. package/.output/server/chunks/build/{useAmlPredict-DFy-Do10.mjs → useAmlPredict-U24-SZNA.mjs} +7 -7
  187. package/.output/server/chunks/build/{useAmlPredict-DFy-Do10.mjs.map → useAmlPredict-U24-SZNA.mjs.map} +1 -1
  188. package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs +7 -7
  189. package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs +6 -6
  190. package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs +6 -6
  191. package/.output/server/chunks/build/{useDaqDetailHistory-C4_hVeqZ.mjs → useDaqDetailHistory-DtSTfyMi.mjs} +7 -7
  192. package/.output/server/chunks/build/{useDaqDetailHistory-C4_hVeqZ.mjs.map → useDaqDetailHistory-DtSTfyMi.mjs.map} +1 -1
  193. package/.output/server/chunks/build/{useDaqDetailNode-Bwid_iA8.mjs → useDaqDetailNode-D_vhG0jF.mjs} +8 -8
  194. package/.output/server/chunks/build/{useDaqDetailNode-Bwid_iA8.mjs.map → useDaqDetailNode-D_vhG0jF.mjs.map} +1 -1
  195. package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs +7 -7
  196. package/.output/server/chunks/build/{useDaqFilters-C13836p-.mjs → useDaqFilters-BUQtZ82a.mjs} +8 -8
  197. package/.output/server/chunks/build/{useDaqFilters-C13836p-.mjs.map → useDaqFilters-BUQtZ82a.mjs.map} +1 -1
  198. package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +6 -6
  199. package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs +6 -6
  200. package/.output/server/chunks/build/useDaqStream-wOxZcMDA.mjs +1 -1
  201. package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs +7 -7
  202. package/.output/server/chunks/build/{useDashboardCharts-DZysNDUX.mjs → useDashboardCharts-D45083s_.mjs} +7 -7
  203. package/.output/server/chunks/build/{useDashboardCharts-DZysNDUX.mjs.map → useDashboardCharts-D45083s_.mjs.map} +1 -1
  204. package/.output/server/chunks/build/{useDashboardData-Ny_wtbo6.mjs → useDashboardData-Do_Vsepa.mjs} +8 -8
  205. package/.output/server/chunks/build/{useDashboardData-Ny_wtbo6.mjs.map → useDashboardData-Do_Vsepa.mjs.map} +1 -1
  206. package/.output/server/chunks/build/{useDcwAddNode-C8nE7geh.mjs → useDcwAddNode-C1HDP3yG.mjs} +12 -9
  207. package/.output/server/chunks/build/useDcwAddNode-C1HDP3yG.mjs.map +1 -0
  208. package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs +6 -6
  209. package/.output/server/chunks/build/{useDcwDetailScope-BNrpDzbO.mjs → useDcwDetailScope-QTr1G6Oe.mjs} +7 -7
  210. package/.output/server/chunks/build/{useDcwDetailScope-BNrpDzbO.mjs.map → useDcwDetailScope-QTr1G6Oe.mjs.map} +1 -1
  211. package/.output/server/chunks/build/{useDcwDetailTemplates-IcKAJ37Y.mjs → useDcwDetailTemplates-Djt-0Vse.mjs} +7 -7
  212. package/.output/server/chunks/build/{useDcwDetailTemplates-IcKAJ37Y.mjs.map → useDcwDetailTemplates-Djt-0Vse.mjs.map} +1 -1
  213. package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs +6 -6
  214. package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs +6 -6
  215. package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs +6 -6
  216. package/.output/server/chunks/build/{useDcwLineRun-Bpxk4mse.mjs → useDcwLineRun-74gN_s6T.mjs} +7 -7
  217. package/.output/server/chunks/build/{useDcwLineRun-Bpxk4mse.mjs.map → useDcwLineRun-74gN_s6T.mjs.map} +1 -1
  218. package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs +6 -6
  219. package/.output/server/chunks/build/{useDcwQuery-1lYHOaU6.mjs → useDcwQuery-7tX4QYmv.mjs} +7 -7
  220. package/.output/server/chunks/build/{useDcwQuery-1lYHOaU6.mjs.map → useDcwQuery-7tX4QYmv.mjs.map} +1 -1
  221. package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs +6 -6
  222. package/.output/server/chunks/build/{useDcwRecipes-BzGOymqz.mjs → useDcwRecipes-FVk5gDLV.mjs} +23 -15
  223. package/.output/server/chunks/build/useDcwRecipes-FVk5gDLV.mjs.map +1 -0
  224. package/.output/server/chunks/build/useDcwStream-D04kCV3J.mjs +1 -1
  225. package/.output/server/chunks/build/{useDcwTemplates-Dsjw9u6U.mjs → useDcwTemplates-LDZffy4u.mjs} +7 -7
  226. package/.output/server/chunks/build/{useDcwTemplates-Dsjw9u6U.mjs.map → useDcwTemplates-LDZffy4u.mjs.map} +1 -1
  227. package/.output/server/chunks/build/{useDcwWrites-3RxwN36I.mjs → useDcwWrites-B22mwliK.mjs} +25 -8
  228. package/.output/server/chunks/build/useDcwWrites-B22mwliK.mjs.map +1 -0
  229. package/.output/server/chunks/build/useLocalTime-DZ2RAtVs.mjs +49 -0
  230. package/.output/server/chunks/build/useLocalTime-DZ2RAtVs.mjs.map +1 -0
  231. package/.output/server/chunks/build/{useLogsFormat-BlwLpyzy.mjs → useLogsFormat-B-o4MHy7.mjs} +7 -7
  232. package/.output/server/chunks/build/{useLogsFormat-BlwLpyzy.mjs.map → useLogsFormat-B-o4MHy7.mjs.map} +1 -1
  233. package/.output/server/chunks/build/{useLogsManual-Deev2Cjk.mjs → useLogsManual-COfCyUtj.mjs} +7 -7
  234. package/.output/server/chunks/build/{useLogsManual-Deev2Cjk.mjs.map → useLogsManual-COfCyUtj.mjs.map} +1 -1
  235. package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs +6 -6
  236. package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs +6 -6
  237. package/.output/server/chunks/build/{useMonitorColumns-ylxrUNTK.mjs → useMonitorColumns-DhYvkLDq.mjs} +7 -7
  238. package/.output/server/chunks/build/{useMonitorColumns-ylxrUNTK.mjs.map → useMonitorColumns-DhYvkLDq.mjs.map} +1 -1
  239. package/.output/server/chunks/build/{useMonitorData-CEpKXoD4.mjs → useMonitorData-guVjMDtR.mjs} +9 -8
  240. package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs.map +1 -0
  241. package/.output/server/chunks/build/{useMonitorFormat-_7zLapf3.mjs → useMonitorFormat-C7lhZe4g.mjs} +13 -12
  242. package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs.map +1 -0
  243. package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +6 -6
  244. package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs +191 -0
  245. package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs.map +1 -0
  246. package/.output/server/chunks/build/{useTeamActions-D6sxdpkP.mjs → useTeamActions-C4n-taBk.mjs} +7 -7
  247. package/.output/server/chunks/build/{useTeamActions-D6sxdpkP.mjs.map → useTeamActions-C4n-taBk.mjs.map} +1 -1
  248. package/.output/server/chunks/build/{useTeamAddMemberDialog-Q-ntQ6Vo.mjs → useTeamAddMemberDialog-Cp_z3nMa.mjs} +7 -7
  249. package/.output/server/chunks/build/{useTeamAddMemberDialog-Q-ntQ6Vo.mjs.map → useTeamAddMemberDialog-Cp_z3nMa.mjs.map} +1 -1
  250. package/.output/server/chunks/build/{useTeamCreateDialog-D7OMfDTM.mjs → useTeamCreateDialog-C8LKUoe2.mjs} +7 -7
  251. package/.output/server/chunks/build/{useTeamCreateDialog-D7OMfDTM.mjs.map → useTeamCreateDialog-C8LKUoe2.mjs.map} +1 -1
  252. package/.output/server/chunks/build/{useTeamDeployDialog-vBRqjiut.mjs → useTeamDeployDialog-wdBVsNWY.mjs} +7 -7
  253. package/.output/server/chunks/build/{useTeamDeployDialog-vBRqjiut.mjs.map → useTeamDeployDialog-wdBVsNWY.mjs.map} +1 -1
  254. package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +6 -6
  255. package/.output/server/chunks/build/{useTeamPluginDialog-B8kxewpZ.mjs → useTeamPluginDialog-CIk8G8nI.mjs} +7 -7
  256. package/.output/server/chunks/build/{useTeamPluginDialog-B8kxewpZ.mjs.map → useTeamPluginDialog-CIk8G8nI.mjs.map} +1 -1
  257. package/.output/server/chunks/build/{useTeamsCatalog-xRhk7ezA.mjs → useTeamsCatalog-D6TULzmS.mjs} +7 -7
  258. package/.output/server/chunks/build/{useTeamsCatalog-xRhk7ezA.mjs.map → useTeamsCatalog-D6TULzmS.mjs.map} +1 -1
  259. package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +6 -6
  260. package/.output/server/chunks/build/{useTokenCreate-DpDcF1Vx.mjs → useTokenCreate-DkYvEQUD.mjs} +7 -7
  261. package/.output/server/chunks/build/{useTokenCreate-DpDcF1Vx.mjs.map → useTokenCreate-DkYvEQUD.mjs.map} +1 -1
  262. package/.output/server/chunks/build/{useTokenRename-BRejFrtc.mjs → useTokenRename-DOCP4aeI.mjs} +7 -7
  263. package/.output/server/chunks/build/{useTokenRename-BRejFrtc.mjs.map → useTokenRename-DOCP4aeI.mjs.map} +1 -1
  264. package/.output/server/chunks/build/{useTokenReveal-DER2afAS.mjs → useTokenReveal-CybwwflV.mjs} +7 -7
  265. package/.output/server/chunks/build/{useTokenReveal-DER2afAS.mjs.map → useTokenReveal-CybwwflV.mjs.map} +1 -1
  266. package/.output/server/chunks/build/{useTokensList-DHt65IOY.mjs → useTokensList-BLiMvrc4.mjs} +7 -7
  267. package/.output/server/chunks/build/{useTokensList-DHt65IOY.mjs.map → useTokensList-BLiMvrc4.mjs.map} +1 -1
  268. package/.output/server/chunks/build/{useWorkbenchAuth-B2j-zILO.mjs → useWorkbenchAuth-DqjBX-6w.mjs} +7 -7
  269. package/.output/server/chunks/build/{useWorkbenchAuth-B2j-zILO.mjs.map → useWorkbenchAuth-DqjBX-6w.mjs.map} +1 -1
  270. package/.output/server/chunks/build/{useWorkbenchWorkspaces-B_2mOxN6.mjs → useWorkbenchWorkspaces-DgiSCzsX.mjs} +10 -9
  271. package/.output/server/chunks/build/useWorkbenchWorkspaces-DgiSCzsX.mjs.map +1 -0
  272. package/.output/server/chunks/build/{useWorkshopWs-B-Es2Xg3.mjs → useWorkshopWs-Bm80bLn7.mjs} +8 -7
  273. package/.output/server/chunks/build/useWorkshopWs-Bm80bLn7.mjs.map +1 -0
  274. package/.output/server/chunks/build/{useWorkspaceAuth-tQ1ORWXo.mjs → useWorkspaceAuth-Dlvj9csD.mjs} +8 -8
  275. package/.output/server/chunks/build/{useWorkspaceAuth-tQ1ORWXo.mjs.map → useWorkspaceAuth-Dlvj9csD.mjs.map} +1 -1
  276. package/.output/server/chunks/build/{useWorkspaceChannels-BwB6TAWY.mjs → useWorkspaceChannels-D61Al2dr.mjs} +11 -10
  277. package/.output/server/chunks/build/useWorkspaceChannels-D61Al2dr.mjs.map +1 -0
  278. package/.output/server/chunks/build/{useWorkspacePanels-CuAmDpT5.mjs → useWorkspacePanels-CTwREmq0.mjs} +8 -8
  279. package/.output/server/chunks/build/{useWorkspacePanels-CuAmDpT5.mjs.map → useWorkspacePanels-CTwREmq0.mjs.map} +1 -1
  280. package/.output/server/chunks/build/{useWorkspaceShell-CcQ4JlqO.mjs → useWorkspaceShell-BCypjjjE.mjs} +7 -7
  281. package/.output/server/chunks/build/{useWorkspaceShell-CcQ4JlqO.mjs.map → useWorkspaceShell-BCypjjjE.mjs.map} +1 -1
  282. package/.output/server/chunks/build/{users-De2HygNt.mjs → users-CCf5PgRs.mjs} +8 -8
  283. package/.output/server/chunks/build/{users-De2HygNt.mjs.map → users-CCf5PgRs.mjs.map} +1 -1
  284. package/.output/server/chunks/build/{workshop-CmgpTwyf.mjs → workshop-FQ4YzooB.mjs} +13 -12
  285. package/.output/server/chunks/build/workshop-FQ4YzooB.mjs.map +1 -0
  286. package/.output/server/chunks/build/{workspaces-DVIEk1Bl.mjs → workspaces-CmW0cpOt.mjs} +1 -1
  287. package/.output/server/chunks/build/{workspaces-DVIEk1Bl.mjs.map → workspaces-CmW0cpOt.mjs.map} +1 -1
  288. package/.output/server/chunks/routes/api/health.get.mjs +6 -6
  289. package/.output/server/chunks/routes/api/index.get.mjs +7 -7
  290. package/.output/server/chunks/routes/api/index.post.mjs +7 -7
  291. package/.output/server/chunks/routes/api/mcp/workshop.mjs +6 -6
  292. package/.output/server/chunks/routes/api/metrics.mjs +6 -6
  293. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +6 -6
  294. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +6 -6
  295. package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +6 -6
  296. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +6 -6
  297. package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +6 -6
  298. package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +6 -6
  299. package/.output/server/chunks/routes/api/system/config.get.mjs +6 -6
  300. package/.output/server/chunks/routes/api/system/index.get.mjs +6 -6
  301. package/.output/server/chunks/routes/api/system/index.patch.mjs +6 -6
  302. package/.output/server/chunks/routes/api/system/index.post.mjs +6 -6
  303. package/.output/server/chunks/routes/api/system/index2.get.mjs +6 -6
  304. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +6 -6
  305. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +6 -6
  306. package/.output/server/chunks/routes/api/system/monitor.get.mjs +6 -6
  307. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +6 -6
  308. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +6 -6
  309. package/.output/server/chunks/routes/api/system/timezone.get.mjs +36 -0
  310. package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -0
  311. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +7 -7
  312. package/.output/server/chunks/routes/api/users/_id_.get.mjs +7 -7
  313. package/.output/server/chunks/routes/api/users/_id_.put.mjs +7 -7
  314. package/.output/server/chunks/routes/api/users/index.get.mjs +7 -7
  315. package/.output/server/chunks/routes/api/users/index.post.mjs +7 -7
  316. package/.output/server/chunks/routes/api/users/login.post.mjs +7 -7
  317. package/.output/server/chunks/routes/api/users/logout.post.mjs +7 -7
  318. package/.output/server/chunks/routes/api/users/me.get.mjs +7 -7
  319. package/.output/server/chunks/routes/api/users/register.post.mjs +7 -7
  320. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +7 -7
  321. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +7 -7
  322. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +7 -7
  323. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +7 -7
  324. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +6 -6
  325. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +7 -7
  326. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +5 -5
  327. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +6 -6
  328. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +7 -7
  329. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +7 -7
  330. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +10 -7
  331. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
  332. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +7 -7
  333. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +7 -7
  334. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +7 -7
  335. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +7 -7
  336. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +7 -7
  337. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +6 -6
  338. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +6 -6
  339. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +6 -6
  340. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +6 -6
  341. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +6 -6
  342. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +7 -7
  343. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +7 -7
  344. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +7 -7
  345. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +7 -7
  346. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +7 -8
  347. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
  348. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +7 -8
  349. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
  350. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +7 -8
  351. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +7 -7
  353. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +7 -7
  354. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +6 -6
  355. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +20 -7
  356. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
  357. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +7 -8
  358. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
  359. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +49 -0
  360. package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -0
  361. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +7 -7
  362. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +7 -7
  363. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +7 -7
  364. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +28 -0
  365. package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -0
  366. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +7 -7
  367. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +7 -7
  368. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +7 -7
  369. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +7 -7
  370. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +7 -7
  371. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +7 -7
  372. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +7 -7
  373. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +7 -7
  374. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +7 -7
  375. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +35 -0
  376. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -0
  377. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +35 -0
  378. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -0
  379. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +44 -0
  380. package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -0
  381. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +46 -0
  382. package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -0
  383. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +7 -7
  384. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +5 -5
  385. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +5 -5
  386. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +6 -6
  387. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +6 -6
  388. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +5 -5
  389. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +6 -6
  390. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +6 -6
  391. package/.output/server/chunks/routes/api/workshop/caller.mjs +7 -7
  392. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +16 -10
  393. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
  394. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +6 -6
  395. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +6 -6
  396. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +6 -6
  397. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +6 -6
  398. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +7 -7
  399. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +6 -6
  400. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +6 -6
  401. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +6 -6
  402. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +6 -6
  403. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +6 -6
  404. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +6 -6
  405. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +6 -6
  406. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +6 -6
  407. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +6 -6
  408. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +6 -6
  409. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +6 -6
  410. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +6 -6
  411. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +6 -6
  412. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +6 -6
  413. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +6 -6
  414. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +6 -6
  415. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +6 -6
  416. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +7 -7
  417. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +6 -6
  418. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +6 -6
  419. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +6 -6
  420. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +6 -6
  421. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +6 -6
  422. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +6 -6
  423. package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +7 -7
  424. package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +6 -6
  425. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +6 -6
  426. package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +6 -6
  427. package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +6 -6
  428. package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +6 -6
  429. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +6 -6
  430. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +6 -6
  431. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +7 -7
  432. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +51 -0
  433. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -0
  434. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +71 -0
  435. package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs.map +1 -0
  436. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +6 -6
  437. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +7 -7
  438. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +6 -6
  439. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +6 -6
  440. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +9 -9
  441. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +7 -7
  442. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +7 -7
  443. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +7 -7
  444. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +7 -7
  445. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +7 -7
  446. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +7 -7
  447. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +7 -7
  448. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +7 -7
  449. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +7 -7
  450. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +7 -7
  451. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +7 -7
  452. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +7 -7
  453. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +7 -7
  454. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +7 -7
  455. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +7 -7
  456. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +7 -7
  457. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +7 -7
  458. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +7 -7
  459. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +7 -7
  460. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +7 -7
  461. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +7 -7
  462. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +7 -7
  463. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +7 -7
  464. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +7 -7
  465. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +7 -7
  466. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +7 -7
  467. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +7 -7
  468. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +7 -7
  469. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +7 -7
  470. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +7 -7
  471. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +7 -7
  472. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +7 -7
  473. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +7 -7
  474. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +7 -7
  475. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +7 -7
  476. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +7 -7
  477. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +7 -7
  478. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +7 -7
  479. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +7 -7
  480. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +7 -7
  481. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +7 -7
  482. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +7 -7
  483. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +7 -7
  484. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +7 -7
  485. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +7 -7
  486. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +7 -7
  487. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +7 -7
  488. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +7 -7
  489. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +7 -7
  490. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +7 -7
  491. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +7 -7
  492. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +7 -7
  493. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +7 -7
  494. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +7 -7
  495. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +7 -7
  496. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +7 -7
  497. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +7 -7
  498. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +7 -7
  499. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +7 -7
  500. package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +7 -7
  501. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +7 -7
  502. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +7 -7
  503. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +7 -7
  504. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +7 -7
  505. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +7 -7
  506. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +7 -7
  507. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +7 -7
  508. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +7 -7
  509. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +7 -7
  510. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +7 -7
  511. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +5 -5
  512. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +7 -7
  513. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +7 -7
  514. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +7 -7
  515. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +7 -7
  516. package/.output/server/chunks/routes/api/workshop/index.get.mjs +6 -6
  517. package/.output/server/chunks/routes/api/workshop/index.post.mjs +6 -6
  518. package/.output/server/chunks/routes/api/workshop/index.put.mjs +7 -7
  519. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +7 -7
  520. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +6 -6
  521. package/.output/server/chunks/routes/api/workshop/index12.get.mjs +6 -6
  522. package/.output/server/chunks/routes/api/workshop/index13.get.mjs +6 -6
  523. package/.output/server/chunks/routes/api/workshop/index14.get.mjs +6 -6
  524. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +7 -8
  525. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  526. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +6 -6
  527. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +6 -6
  528. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +7 -7
  529. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +6 -6
  530. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +7 -7
  531. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +7 -7
  532. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +7 -7
  533. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +7 -7
  534. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +7 -7
  535. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +7 -7
  536. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +6 -6
  537. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +6 -6
  538. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +6 -6
  539. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +6 -6
  540. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +6 -6
  541. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +6 -6
  542. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +6 -6
  543. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +6 -6
  544. package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +6 -6
  545. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +7 -7
  546. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +7 -7
  547. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +6 -6
  548. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +6 -6
  549. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +7 -7
  550. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +7 -7
  551. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +6 -6
  552. package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +6 -6
  553. package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +6 -6
  554. package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +6 -6
  555. package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +6 -6
  556. package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +6 -6
  557. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +6 -6
  558. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +6 -6
  559. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +6 -6
  560. package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +6 -6
  561. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +6 -6
  562. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +6 -6
  563. package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +6 -6
  564. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +6 -6
  565. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +6 -6
  566. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +6 -6
  567. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +6 -6
  568. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +6 -6
  569. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +7 -7
  570. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +7 -7
  571. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +6 -6
  572. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +6 -6
  573. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +6 -6
  574. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +6 -6
  575. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +6 -6
  576. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +6 -6
  577. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +7 -7
  578. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +6 -6
  579. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +6 -6
  580. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +6 -6
  581. package/.output/server/chunks/routes/renderer.mjs +2 -2
  582. package/.output/server/chunks/virtual/entry.mjs +645 -525
  583. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  584. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  585. package/.output/server/index.mjs +6 -6
  586. package/.output/server/package.json +1 -1
  587. package/README-zh.md +33 -17
  588. package/README.md +32 -16
  589. package/app/components/AppSidebar.vue +1 -0
  590. package/app/components/aml/AmlModelsTable.vue +180 -173
  591. package/app/components/daq/DaqDetailFramesTile.vue +140 -139
  592. package/app/components/daq/DaqDetailHistoryCard.vue +129 -128
  593. package/app/components/dcw/DcwAddNodeModal.vue +342 -328
  594. package/app/components/dcw/DcwNodesTable.vue +290 -253
  595. package/app/components/dcw/DcwQueryCard.vue +252 -251
  596. package/app/components/dcw/DcwRecipeEditModal.vue +297 -285
  597. package/app/components/dcw/DcwRecipePanel.vue +371 -367
  598. package/app/components/operations/OperationsFilterCard.vue +164 -0
  599. package/app/components/operations/OperationsPageHead.vue +47 -0
  600. package/app/components/operations/OperationsTimeline.vue +215 -0
  601. package/app/components/settings/RuntimeFieldRow.vue +207 -189
  602. package/app/components/workshop/ChatTimeline.vue +596 -569
  603. package/app/components/workshop/EventBlock.vue +224 -214
  604. package/app/components/workshop/blocks/ClusterTool.vue +20 -2
  605. package/app/components/workshop/console/LineOperationsPanel.vue +179 -0
  606. package/app/components/workshop/console/RightPane.vue +6 -0
  607. package/app/composables/workshop/event-blocks/constants.ts +48 -2
  608. package/app/composables/workshop/operation-events.ts +151 -0
  609. package/app/composables/workshop/useAmlStream.ts +137 -136
  610. package/app/composables/workshop/useLocalTime.ts +81 -37
  611. package/app/config/schema.ts +3 -0
  612. package/app/pages/aml/styles.css +422 -420
  613. package/app/pages/aml/types.ts +195 -189
  614. package/app/pages/dcw/[id].vue +300 -297
  615. package/app/pages/dcw/composables/useDcwAddNode.ts +124 -121
  616. package/app/pages/dcw/composables/useDcwRecipes.ts +242 -239
  617. package/app/pages/dcw/composables/useDcwWrites.ts +100 -81
  618. package/app/pages/monitor/composables/useMonitorData.ts +125 -124
  619. package/app/pages/monitor/composables/useMonitorFormat.ts +41 -39
  620. package/app/pages/operations/composables/useOperationsFeed.ts +137 -0
  621. package/app/pages/operations.vue +61 -0
  622. package/app/stores/runtime-config.ts +1 -1
  623. package/app/stores/workshop/chat.ts +434 -434
  624. package/app/stores/workshop/notifications.ts +288 -288
  625. package/app/utils/dcw-recipe-form.ts +26 -0
  626. package/cli/aw.mjs +3 -2
  627. package/cli/commands/mcp.mjs +154 -0
  628. package/cli/core/context.mjs +5 -0
  629. package/config.yml +180 -176
  630. package/docs/aml.md +112 -111
  631. package/docs/cli.en.md +13 -11
  632. package/docs/cli.md +12 -10
  633. package/docs/plugins.en.md +621 -567
  634. package/docs/plugins.md +610 -560
  635. package/docs/sdk.en.md +964 -922
  636. package/docs/sdk.md +900 -861
  637. package/i18n/dicts/aml.json +207 -205
  638. package/i18n/locales/en.ts +37 -0
  639. package/i18n/locales/zh-CN.ts +37 -0
  640. package/nuxt.config.ts +2 -0
  641. package/package.json +178 -172
  642. package/scripts/.chk-tok +1 -0
  643. package/scripts/.retrain-body.json +1 -0
  644. package/scripts/.retrain3-body.json +1 -0
  645. package/scripts/.rt-tok +1 -0
  646. package/scripts/.rt3-tok +1 -0
  647. package/scripts/_audit/.tmp/audit-data/dcw-params.json +15 -0
  648. package/scripts/_audit/.tmp/audit-data/dcws.json +30 -0
  649. package/scripts/_audit/aw-mcp-live-e2e.mjs +293 -0
  650. package/scripts/_audit/dcw-controller-e2e.ts +25 -18
  651. package/scripts/_audit/dcw-rollback-ledger.ts +4 -1
  652. package/scripts/_audit/feature-audit-e2e.mjs +339 -0
  653. package/scripts/_audit/full-e2e-adopt.mjs +238 -0
  654. package/scripts/_audit/full-e2e-close-loop.mjs +134 -0
  655. package/scripts/_audit/full-e2e-retrain.mjs +320 -0
  656. package/scripts/_audit/full-e2e-supplement.mjs +192 -0
  657. package/scripts/_audit/full-e2e-ui-final.mjs +111 -0
  658. package/scripts/_audit/full-e2e-ui-mount.mjs +111 -0
  659. package/scripts/_audit/full-feature-e2e-20260927.mjs +627 -0
  660. package/scripts/_audit/kb-diag-complete.mjs +261 -0
  661. package/scripts/_audit/kb-diag-complete2.mjs +271 -0
  662. package/scripts/_audit/kb-diag-loop-e2e.mjs +357 -0
  663. package/scripts/_audit/kb-diag-loop-mock.mjs +416 -0
  664. package/scripts/_audit/kb-diag-loop-v2.mjs +314 -0
  665. package/scripts/_audit/recipe-save-e2e.mjs +365 -0
  666. package/scripts/_audit/run.mjs +21 -0
  667. package/scripts/_audit/runtime-dir-e2e.mjs +393 -0
  668. package/scripts/_audit/skills-guided-e2e.mjs +316 -0
  669. package/scripts/_audit/stability-soak.mjs +252 -0
  670. package/scripts/_aw0748-failclosed-probe.mjs +1 -1
  671. package/scripts/_aw0748-mock-closedloop.mjs +12 -0
  672. package/scripts/_aw0748-mock-dispatch-diag.mjs +66 -0
  673. package/scripts/_dbg-configroot-audit.mjs +86 -84
  674. package/scripts/_dbg-daq-intervals-func.mjs +115 -94
  675. package/scripts/_dbg-optloop-ui-shots.mjs +52 -0
  676. package/scripts/_dbg-param-map-e2e.ts +7 -1
  677. package/scripts/_dbg-perms-e2e.mjs +11 -1
  678. package/scripts/_dbg-protocol-matrix.mjs +3 -1
  679. package/scripts/_dbg-render-regression.mjs +67 -25
  680. package/scripts/_lib-aml-python-run.mjs +17 -0
  681. package/scripts/_lint-reflow.mjs +105 -0
  682. package/scripts/_probe-model-channel-link.cjs +25 -0
  683. package/scripts/acceptance-aml-hybrid-e2e.ts +396 -0
  684. package/scripts/acceptance-aml-hybrid-twin.ts +3 -3
  685. package/scripts/acceptance-aml-model-identity.ts +137 -0
  686. package/scripts/dev-guard.mjs +4 -2
  687. package/scripts/dev-protocol-simulators.mjs +3 -2
  688. package/scripts/e2e-aml-decoupled.mjs +162 -0
  689. package/scripts/e2e-closedloop/scenarios-accounts.mjs +2 -0
  690. package/scripts/e2e-closedloop/scenarios-authz.mjs +12 -6
  691. package/scripts/e2e-closedloop/scenarios-daq-dcw.mjs +4 -1
  692. package/scripts/e2e-timezone-settings.mjs +57 -0
  693. package/scripts/live-aml-mockomp.mjs +304 -0
  694. package/scripts/live-aml-optloop-resume.mjs +322 -0
  695. package/scripts/live-aml-optloop.mjs +545 -0
  696. package/scripts/live-aml-stage9.mjs +169 -0
  697. package/scripts/live-aml-two-goals.mjs +315 -0
  698. package/scripts/live-optloop-two-modes.mjs +857 -0
  699. package/scripts/start.mjs +3 -1
  700. package/scripts/test-aw-skills.mjs +102 -0
  701. package/scripts/test-twin-plugin-sdk.mjs +30 -0
  702. package/sdk/context.mjs +305 -0
  703. package/sdk/index.d.mts +149 -0
  704. package/sdk/index.mjs +5 -2
  705. package/server/api/system/timezone.get.ts +20 -0
  706. package/server/api/workshop/agent-tools/bindings/[id].patch.ts +28 -23
  707. package/server/api/workshop/aml/jobs/index.post.ts +74 -44
  708. package/server/api/workshop/aml/training-plans/[id]/train.post.ts +18 -0
  709. package/server/api/workshop/aml/training-plans/[id].delete.ts +18 -0
  710. package/server/api/workshop/aml/training-plans/[id].patch.ts +30 -0
  711. package/server/api/workshop/aml/training-plans/index.get.ts +9 -0
  712. package/server/api/workshop/aml/training-plans/index.post.ts +43 -0
  713. package/server/api/workshop/aml/twin/providers.get.ts +33 -0
  714. package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +8 -2
  715. package/server/api/workshop/channels/[id]/twin-profile.get.ts +45 -0
  716. package/server/api/workshop/channels/[id]/twin-profile.patch.ts +72 -0
  717. package/server/plugins/00-local-time.ts +13 -10
  718. package/server/plugins/aml-twin-worker.ts +32 -0
  719. package/server/plugins/aw-plugins.ts +16 -0
  720. package/server/plugins/workshop.ts +21 -0
  721. package/server/plugins-builtin/twin-injection-default/index.mjs +23 -0
  722. package/server/services/system-config/helpers.ts +42 -41
  723. package/server/services/system-config/recompute.ts +68 -66
  724. package/server/services/workshop/agents/host-tool-bridge/catalog.ts +50 -18
  725. package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +51 -5
  726. package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +19 -6
  727. package/server/services/workshop/agents/industrial/aml-dataset-tools.ts +276 -276
  728. package/server/services/workshop/agents/industrial/aml-job-tools.ts +549 -363
  729. package/server/services/workshop/agents/industrial/audit-query.ts +30 -0
  730. package/server/services/workshop/agents/industrial/dcw-judge-tools.ts +9 -13
  731. package/server/services/workshop/agents/industrial/dcw-tools.ts +208 -213
  732. package/server/services/workshop/agents/industrial/index.ts +3 -2
  733. package/server/services/workshop/agents/industrial/manual-approval.ts +45 -0
  734. package/server/services/workshop/agents/industrial/ops-tools.ts +370 -382
  735. package/server/services/workshop/agents/industrial/optimization-tools.ts +148 -0
  736. package/server/services/workshop/agents/industrial/param-tools.ts +169 -172
  737. package/server/services/workshop/agents/industrial/twin-tools.ts +618 -61
  738. package/server/services/workshop/agents/industrial-context.ts +4 -2
  739. package/server/services/workshop/agents/node-bindings.repo.ts +35 -2
  740. package/server/services/workshop/agents/tool-classes.ts +28 -0
  741. package/server/services/workshop/aml/aml.repo.ts +412 -386
  742. package/server/services/workshop/aml/job-orchestrator/stages.ts +108 -96
  743. package/server/services/workshop/aml/job-orchestrator/start-job.ts +29 -5
  744. package/server/services/workshop/aml/job-orchestrator/submit.ts +36 -1
  745. package/server/services/workshop/aml/model-registry.ts +265 -175
  746. package/server/services/workshop/aml/predictor.ts +336 -262
  747. package/server/services/workshop/aml/python/__pycache__/aml_eval.cpython-312.pyc +0 -0
  748. package/server/services/workshop/aml/python/__pycache__/amlkit.cpython-312.pyc +0 -0
  749. package/server/services/workshop/aml/python/__pycache__/train-example.cpython-312.pyc +0 -0
  750. package/server/services/workshop/aml/python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
  751. package/server/services/workshop/aml/python/aml_eval.py +39 -6
  752. package/server/services/workshop/aml/python/amlkit.py +222 -3
  753. package/server/services/workshop/aml/python/train-hybrid-example.py +278 -32
  754. package/server/services/workshop/aml/runtime.ts +4 -3
  755. package/server/services/workshop/aml/twin/acceptance.ts +26 -0
  756. package/server/services/workshop/aml/twin/binding-snapshot.ts +603 -0
  757. package/server/services/workshop/aml/twin/calibration-worker.ts +150 -0
  758. package/server/services/workshop/aml/twin/channel-profile.ts +80 -7
  759. package/server/services/workshop/aml/twin/contracts.ts +3 -0
  760. package/server/services/workshop/aml/twin/declarative-provider.ts +108 -0
  761. package/server/services/workshop/aml/twin/feature-flags.ts +63 -0
  762. package/server/services/workshop/aml/twin/hybrid-provider.ts +86 -0
  763. package/server/services/workshop/aml/twin/model-backed-provider.ts +332 -0
  764. package/server/services/workshop/aml/twin/physics-spec-draft.ts +185 -0
  765. package/server/services/workshop/aml/twin/physics-spec.ts +338 -0
  766. package/server/services/workshop/aml/twin/prompt-composer.ts +143 -0
  767. package/server/services/workshop/aml/twin/provider-contracts.ts +98 -34
  768. package/server/services/workshop/aml/twin/provider-health.ts +69 -8
  769. package/server/services/workshop/aml/twin/provider-loader.ts +76 -45
  770. package/server/services/workshop/aml/twin/provider-registry.ts +670 -49
  771. package/server/services/workshop/aml/twin/repo.ts +63 -4
  772. package/server/services/workshop/aml/twin/scene-builder.ts +118 -0
  773. package/server/services/workshop/aml/twin/scene-lifecycle.ts +60 -0
  774. package/server/services/workshop/aml/twin/snapshot-service.ts +395 -22
  775. package/server/services/workshop/aml/twin/training-plans.ts +260 -0
  776. package/server/services/workshop/aml/twin/trial-service.ts +97 -13
  777. package/server/services/workshop/aml/twin/write-guard.ts +20 -0
  778. package/server/services/workshop/daq/daq-controller/state.ts +8 -5
  779. package/server/services/workshop/daq/drivers/registry.ts +116 -144
  780. package/server/services/workshop/db/database/migrations.ts +40 -0
  781. package/server/services/workshop/db/database/open.ts +4 -1
  782. package/server/services/workshop/db/database/schema.ts +68 -1
  783. package/server/services/workshop/db/database/seed.ts +22 -0
  784. package/server/services/workshop/db/readonly.ts +30 -0
  785. package/server/services/workshop/dcw/dcw-controller/crud.ts +162 -152
  786. package/server/services/workshop/dcw/dcw-controller/helpers.ts +61 -57
  787. package/server/services/workshop/dcw/dcw-controller/types.ts +61 -57
  788. package/server/services/workshop/dcw/dcw-controller/write-audit.ts +49 -0
  789. package/server/services/workshop/dcw/dcw-controller/write.ts +137 -147
  790. package/server/services/workshop/dcw/dcw-node.ts +18 -2
  791. package/server/services/workshop/dcw/dcw-recipe.repo.ts +5 -0
  792. package/server/services/workshop/dcw/dcw-runtime.ts +9 -3
  793. package/server/services/workshop/dcw/drivers/index.ts +2 -1
  794. package/server/services/workshop/dcw/drivers/modbus-rtu.ts +85 -93
  795. package/server/services/workshop/dcw/drivers/modbus.ts +131 -139
  796. package/server/services/workshop/dcw/drivers/opcua.ts +103 -110
  797. package/server/services/workshop/dcw/drivers/registry.ts +25 -45
  798. package/server/services/workshop/dcw/drivers/shared.ts +24 -6
  799. package/server/services/workshop/dcw/param-limits.ts +193 -142
  800. package/server/services/workshop/dcw/param-map.repo.ts +318 -305
  801. package/server/services/workshop/plugin-driver-registry.ts +108 -0
  802. package/server/services/workshop/runtime/manager/admin-channel.ts +13 -0
  803. package/server/services/workshop/runtime/manager/channel-templates.ts +29 -2
  804. package/server/services/workshop/runtime/manager/runtime-wiring.ts +8 -0
  805. package/server/services/workshop/runtime/permission-scope.ts +79 -81
  806. package/server/services/workshop/runtime/schedule-runtime.ts +33 -6
  807. package/server/utils/errors.ts +8 -0
  808. package/shared/config/engine.mjs +5 -0
  809. package/shared/config/home.mjs +15 -20
  810. package/shared/config/schema.json +135 -133
  811. package/shared/dcw-protocol/line.ts +133 -131
  812. package/shared/dcw-protocol/recipe.ts +311 -301
  813. package/shared/local-time.mjs +116 -36
  814. package/.output/public/_nuxt/-hB4kEmt.js +0 -1
  815. package/.output/public/_nuxt/74x7BOWv2.js +0 -1
  816. package/.output/public/_nuxt/9c5GOgbu.js +0 -1
  817. package/.output/public/_nuxt/BHwG4yNs.js +0 -1
  818. package/.output/public/_nuxt/BIOq3xqe2.js +0 -1
  819. package/.output/public/_nuxt/BL_dbd2v2.js +0 -1
  820. package/.output/public/_nuxt/BNnnYEYh2.js +0 -1
  821. package/.output/public/_nuxt/BxYTM0hb.js +0 -1
  822. package/.output/public/_nuxt/C3twEwTh2.js +0 -1
  823. package/.output/public/_nuxt/CGZVhYJ4.js +0 -1
  824. package/.output/public/_nuxt/CJRDL4EG.js +0 -1
  825. package/.output/public/_nuxt/CKQPwwZa2.js +0 -1
  826. package/.output/public/_nuxt/CeWnOF3O.js +0 -1
  827. package/.output/public/_nuxt/ChoLwR-s.js +0 -1
  828. package/.output/public/_nuxt/DGw8juu_.js +0 -2
  829. package/.output/public/_nuxt/DJdDFnjG2.js +0 -1
  830. package/.output/public/_nuxt/DXIaadqv.js +0 -1
  831. package/.output/public/_nuxt/D_7AzAWe.js +0 -1
  832. package/.output/public/_nuxt/DdvQ7LRI.js +0 -14
  833. package/.output/public/_nuxt/DeYsUzhr.js +0 -1
  834. package/.output/public/_nuxt/DkLCjrCk2.js +0 -47
  835. package/.output/public/_nuxt/DpqA8D8_.js +0 -1
  836. package/.output/public/_nuxt/DqtgGFEc.js +0 -1
  837. package/.output/public/_nuxt/Dy3oXKdn2.js +0 -1
  838. package/.output/public/_nuxt/PLGqdko0.js +0 -1
  839. package/.output/public/_nuxt/U8oQxruK.js +0 -1
  840. package/.output/public/_nuxt/WleoCtUX.js +0 -1
  841. package/.output/public/_nuxt/ZvXovq7N2.js +0 -1
  842. package/.output/public/_nuxt/_id_.Bossmhv1.css +0 -1
  843. package/.output/public/_nuxt/_wsId_.D-u-dbP9.css +0 -1
  844. package/.output/public/_nuxt/aml.Bi5X6_oi.css +0 -1
  845. package/.output/public/_nuxt/builds/meta/0530cee1-fff5-4025-a6f4-5708b6534608.json +0 -1
  846. package/.output/public/_nuxt/cDcDztgb2.js +0 -1
  847. package/.output/public/_nuxt/e7BBCLxr.js +0 -1
  848. package/.output/public/_nuxt/hkMGMTqt.js +0 -1
  849. package/.output/public/_nuxt/ikAUnxx3.js +0 -1
  850. package/.output/public/_nuxt/y9kob70X.js +0 -1
  851. package/.output/server/chunks/_/env-manager.mjs +0 -162
  852. package/.output/server/chunks/_/env-manager.mjs.map +0 -1
  853. package/.output/server/chunks/build/_id_-DgMpjM3_.mjs.map +0 -1
  854. package/.output/server/chunks/build/_id_-Dv3BQbYV.mjs.map +0 -1
  855. package/.output/server/chunks/build/_wsId_-BKJvFmyf.mjs.map +0 -1
  856. package/.output/server/chunks/build/aml-DdWicH3t.mjs.map +0 -1
  857. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs +0 -43
  858. package/.output/server/chunks/build/client-only-qNA2OVV_.mjs.map +0 -1
  859. package/.output/server/chunks/build/daq-CPtsh0e7.mjs.map +0 -1
  860. package/.output/server/chunks/build/logs-CeaiO3y9.mjs.map +0 -1
  861. package/.output/server/chunks/build/pages-Bn90ijKD.mjs.map +0 -1
  862. package/.output/server/chunks/build/settings-DVAUVMsX.mjs.map +0 -1
  863. package/.output/server/chunks/build/useAmlJobs-DBuLvWMF.mjs.map +0 -1
  864. package/.output/server/chunks/build/useDcwAddNode-C8nE7geh.mjs.map +0 -1
  865. package/.output/server/chunks/build/useDcwRecipes-BzGOymqz.mjs.map +0 -1
  866. package/.output/server/chunks/build/useDcwWrites-3RxwN36I.mjs.map +0 -1
  867. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +0 -35
  868. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs.map +0 -1
  869. package/.output/server/chunks/build/useMonitorData-CEpKXoD4.mjs.map +0 -1
  870. package/.output/server/chunks/build/useMonitorFormat-_7zLapf3.mjs.map +0 -1
  871. package/.output/server/chunks/build/useWorkbenchWorkspaces-B_2mOxN6.mjs.map +0 -1
  872. package/.output/server/chunks/build/useWorkshopWs-B-Es2Xg3.mjs.map +0 -1
  873. package/.output/server/chunks/build/useWorkspaceChannels-BwB6TAWY.mjs.map +0 -1
  874. package/.output/server/chunks/build/workshop-CmgpTwyf.mjs.map +0 -1
  875. /package/.output/public/_nuxt/{B2x8SKRO.js → B2x8SKRO2.js} +0 -0
  876. /package/.output/public/_nuxt/{BzvHUfRR2.js → BzvHUfRR.js} +0 -0
  877. /package/.output/public/_nuxt/{DPUXbTg92.js → DPUXbTg9.js} +0 -0
  878. /package/.output/public/_nuxt/{DdNujZN5.js → DdNujZN52.js} +0 -0
  879. /package/.output/public/_nuxt/{DlUQa0wn2.js → DlUQa0wn.js} +0 -0
  880. /package/.output/public/_nuxt/{Du9v6qGB.js → Du9v6qGB2.js} +0 -0
  881. /package/.output/public/_nuxt/{TOWR4WpO.js → TOWR4WpO2.js} +0 -0
  882. /package/.output/public/_nuxt/{cBI0JqsV2.js → cBI0JqsV.js} +0 -0
  883. /package/.output/public/_nuxt/{zh-S_7rN.js → zh-S_7rN2.js} +0 -0
@@ -1,36 +1,116 @@
1
- /**
2
- * 本地时间呈现(单点收口):全项目 ISO 时间输出统一为本地系统时区(如北京时间 +08:00)。
3
- *
4
- * 背景:Node `Date.toISOString()` 恒输出 UTC(`Z` 后缀)。本项目所有时间字段
5
- * (日志 t / DB createdAt / WS 帧 at / Agent 记录)此前均为 UTC 字符串,用户要求
6
- * 全部以本地系统时间呈现。
7
- *
8
- * 机制:installLocalIso() 把 Date.prototype.toISOString 改写为输出
9
- * `YYYY-MM-DDTHH:mm:ss.sss±HH:MM`(本地偏移)。性质:
10
- * - 同一绝对时刻(仅表示形式变化),Date.parse/new Date(str) 完全兼容;
11
- * - 偏移后缀恒定(无 DST 时区如 +08:00),字符串字典序排序与时间序一致;
12
- * - 覆盖显式调用与 JSON.stringify(Date)(toJSON 默认走 toISOString)。
13
- * - 时区动态取自系统(getTimezoneOffset),跟随宿主,不硬编码。
14
- *
15
- * 幂等:重复安装跳过;原始实现保留在 __origToISOString 供诊断。
16
- */
17
- export function installLocalIso() {
18
- const proto = Date.prototype
19
- if (proto.__origToISOString) return
20
- const orig = proto.toISOString
21
- proto.__origToISOString = orig
22
- const pad = (n, w) => String(n).padStart(w, '0')
23
- proto.toISOString = function () {
24
- const t = this.getTime()
25
- if (Number.isNaN(t)) throw new RangeError('Invalid time value')
26
- // getTimezoneOffset:UTC 比本地慢的分钟数(UTC+8 → -480);取负得本地相对 UTC 偏移
27
- const offMin = -this.getTimezoneOffset()
28
- const sign = offMin >= 0 ? '+' : '-'
29
- const abs = Math.abs(offMin)
30
- // 平移后用 UTC getter 读出本地分量(整分偏移,毫秒不变)
31
- const shifted = new Date(t + offMin * 60_000)
32
- return `${pad(shifted.getUTCFullYear(), 4)}-${pad(shifted.getUTCMonth() + 1, 2)}-${pad(shifted.getUTCDate(), 2)}`
33
- + `T${pad(shifted.getUTCHours(), 2)}:${pad(shifted.getUTCMinutes(), 2)}:${pad(shifted.getUTCSeconds(), 2)}`
34
- + `.${pad(this.getMilliseconds(), 3)}${sign}${pad(Math.floor(abs / 60), 2)}:${pad(abs % 60, 2)}`
35
- }
36
- }
1
+ /**
2
+ * 配置时区时间底座(单一事实来源)。
3
+ * 人读时间/文本记录按系统 IANA 时区输出带偏移 ISO;DAQ/Timescale 等机器时间轴
4
+ * 仍使用 epoch/timestamptz。installLocalIso() 保留旧 API 名称,但读取 globalThis
5
+ * 上的可热更新配置,确保 Nitro bundle 中多个模块副本共享同一时区。
6
+ */
7
+ export const DEFAULT_TIME_ZONE = 'Asia/Shanghai'
8
+ const TIME_ZONE_KEY = '__awConfiguredTimeZone'
9
+
10
+ function configuredTimeZoneValue() {
11
+ const g = globalThis
12
+ return typeof g[TIME_ZONE_KEY] === 'string' ? g[TIME_ZONE_KEY] : DEFAULT_TIME_ZONE
13
+ }
14
+
15
+ export function isValidTimeZone(value) {
16
+ if (typeof value !== 'string' || !value.trim()) return false
17
+ try {
18
+ new Intl.DateTimeFormat('en-US', { timeZone: value }).format()
19
+ return true
20
+ }
21
+ catch {
22
+ return false
23
+ }
24
+ }
25
+
26
+ export function supportedTimeZones() {
27
+ let values = []
28
+ try {
29
+ if (typeof Intl.supportedValuesOf === 'function') values = Intl.supportedValuesOf('timeZone')
30
+ }
31
+ catch {
32
+ values = []
33
+ }
34
+ const fallback = [
35
+ 'UTC', 'Asia/Shanghai', 'Asia/Tokyo', 'Asia/Singapore', 'Asia/Seoul',
36
+ 'Europe/London', 'Europe/Paris', 'Europe/Berlin', 'America/Los_Angeles',
37
+ 'America/Denver', 'America/Chicago', 'America/New_York', 'Australia/Sydney',
38
+ ]
39
+ return [...new Set([DEFAULT_TIME_ZONE, 'UTC', ...values, ...fallback])].filter(isValidTimeZone).sort()
40
+ }
41
+
42
+ export function getConfiguredTimeZone() {
43
+ return configuredTimeZoneValue()
44
+ }
45
+
46
+ export function setConfiguredTimeZone(value) {
47
+ if (!isValidTimeZone(value)) throw new RangeError(`Invalid IANA time zone: ${value}`)
48
+ globalThis[TIME_ZONE_KEY] = value
49
+ return value
50
+ }
51
+
52
+ function pad(value, width) {
53
+ return String(value).padStart(width, '0')
54
+ }
55
+
56
+ function dateParts(date, timeZone) {
57
+ const d = date instanceof Date ? date : new Date(date)
58
+ if (Number.isNaN(d.getTime())) throw new RangeError('Invalid time value')
59
+ const parts = new Intl.DateTimeFormat('en-CA', {
60
+ timeZone,
61
+ calendar: 'iso8601',
62
+ numberingSystem: 'latn',
63
+ year: 'numeric', month: '2-digit', day: '2-digit',
64
+ hour: '2-digit', minute: '2-digit', second: '2-digit',
65
+ hourCycle: 'h23',
66
+ }).formatToParts(d)
67
+ const values = Object.fromEntries(parts.filter(p => p.type !== 'literal').map(p => [p.type, p.value]))
68
+ const offsetText = new Intl.DateTimeFormat('en-US', {
69
+ timeZone,
70
+ timeZoneName: 'longOffset',
71
+ hour: '2-digit', minute: '2-digit', hourCycle: 'h23',
72
+ }).formatToParts(d).find(p => p.type === 'timeZoneName')?.value ?? 'GMT'
73
+ const match = offsetText.match(/^GMT([+-])(\d{2}):(\d{2})$/)
74
+ const offsetMinutes = match
75
+ ? (match[1] === '+' ? 1 : -1) * (Number(match[2]) * 60 + Number(match[3]))
76
+ : 0
77
+ return {
78
+ year: Number(values.year), month: Number(values.month), day: Number(values.day),
79
+ hour: Number(values.hour), minute: Number(values.minute), second: Number(values.second),
80
+ millisecond: d.getMilliseconds(), offsetMinutes,
81
+ }
82
+ }
83
+
84
+ export function formatIsoInTimeZone(date, timeZone = configuredTimeZoneValue()) {
85
+ if (!isValidTimeZone(timeZone)) throw new RangeError(`Invalid IANA time zone: ${timeZone}`)
86
+ const parts = dateParts(date, timeZone)
87
+ const sign = parts.offsetMinutes >= 0 ? '+' : '-'
88
+ const absolute = Math.abs(parts.offsetMinutes)
89
+ return `${pad(parts.year, 4)}-${pad(parts.month, 2)}-${pad(parts.day, 2)}`
90
+ + `T${pad(parts.hour, 2)}:${pad(parts.minute, 2)}:${pad(parts.second, 2)}`
91
+ + `.${pad(parts.millisecond, 3)}${sign}${pad(Math.floor(absolute / 60), 2)}:${pad(absolute % 60, 2)}`
92
+ }
93
+
94
+ export function formatPartsInTimeZone(date, timeZone = configuredTimeZoneValue()) {
95
+ if (!isValidTimeZone(timeZone)) throw new RangeError(`Invalid IANA time zone: ${timeZone}`)
96
+ return dateParts(date, timeZone)
97
+ }
98
+
99
+ export function configuredTimeZoneOffset(date = new Date(), timeZone = configuredTimeZoneValue()) {
100
+ return dateParts(date, timeZone).offsetMinutes
101
+ }
102
+
103
+ /** 兼容旧入口:重复安装不覆盖原始实现;后续 setter 影响所有新调用。 */
104
+ export function installLocalIso() {
105
+ const proto = Date.prototype
106
+ if (proto.__origToISOString) return
107
+ const orig = proto.toISOString
108
+ proto.__origToISOString = orig
109
+ proto.toISOString = function () {
110
+ return formatIsoInTimeZone(this, configuredTimeZoneValue())
111
+ }
112
+ }
113
+
114
+ export function nowConfiguredIso() {
115
+ return formatIsoInTimeZone(new Date(), configuredTimeZoneValue())
116
+ }
@@ -1 +0,0 @@
1
- import{N as e,dt as t,g as n,mt as r,u as i,v as a}from"./CavpkQb0.js";import{S as o,V as s,W as ee,b as c,d as l,f as u,h as d,i as f,m as p,nt as m,p as h,y as g}from"./ByMj6e7s.js";import{d as te}from"./Br3AySNQ.js";import{n as _}from"./DkpmSnHX.js";import{n as v}from"./Cnrmlixo.js";import{t as ne}from"./Bub2P5me.js";import{a as y,c as re,n as ie}from"./wDPc4SSR.js";import{n as ae,t as oe}from"./DLPuRMeG.js";import{t as se}from"./eutnXI4F.js";import{t as ce}from"./CAaSPBqk.js";import{i as le,n as ue,t as de}from"./BmiMC_BC.js";import{t as fe}from"./B2x8SKRO.js";import{t as pe}from"./CPeZNE4S2.js";import{t as me}from"./DzBbYWrw2.js";import{t as he}from"./DqtnqNgL2.js";import{t as ge}from"./CfLUvgr32.js";import{t as b}from"./fxWyOzyp2.js";import{t as x}from"./BDNMzG2s2.js";import{t as S}from"./JgheoP3e.js";import{t as C}from"./CNs_Ozdc.js";import{t as w}from"./BWU1pvLL.js";import{i as T,n as E}from"./Du9v6qGB.js";var _e={class:`page`},D={class:`head`},O={class:`sub`},k={class:`toolbar`},A={key:0,class:`admin-note`},j={class:`grid`},M={class:`card-head`},N={class:`name`},P={class:`owner`},F={key:0,class:`desc`},I={class:`member-line`},ve={class:`lead-name`},ye={key:0,class:`count`},L={key:1,class:`count`},be=[`title`],xe={class:`card-foot`},Se=[`title`],R=x(o({__name:`channel-templates`,setup(o){let{t:x}=v(),R=e=>E[e.id]?.desc?x(E[e.id].desc):e.description,z=e=>E[e.id]?.scenario?x(E[e.id].scenario):e.scenarioPrompt;C({layout:`default`});let B=w(),V=b(),H=a([]),U=a([]),W=a(!1),G=async()=>{W.value=!0;try{let[e,t]=await Promise.all([B.listChannelTemplates(),B.listTemplates()]);H.value=e?.data??[],U.value=t?.data??[]}finally{W.value=!1}};G();let K=a(`all`),q=l(()=>{let e=V.user?.id;switch(K.value){case`mine`:return H.value.filter(t=>t.ownerUserId===e);case`public`:return H.value.filter(e=>e.visibility===`public`);case`builtin`:return H.value.filter(e=>e.isBuiltin);default:return H.value}}),J=e=>!e.isBuiltin&&(e.ownerUserId===V.user?.id||V.isAdmin),Y=e=>e.isBuiltin?{text:x(`ctpl.k3x23c021`),color:`default`,icon:`i-tabler-lock`}:e.visibility===`public`?{text:x(`ctpl.k3wv1t022`),color:`green`}:{text:x(`ctpl.k447jj023`),color:`default`},Ce=e=>`templateId`in e?T(x,U.value.find(t=>t.id===e.templateId)??{id:e.templateId,name:e.templateId.slice(0,8)}):e.inline.name,X=a(!1),Z=n({name:``,description:``,scenarioPrompt:``,workspace:``,visibility:`private`,leadId:``,memberIds:[]}),Q=()=>{Z.name=``,Z.description=``,Z.scenarioPrompt=``,Z.workspace=``,Z.visibility=`private`,Z.leadId=``,Z.memberIds=[],X.value=!0},we=async()=>{if(!Z.name.trim()){y.warning(x(`ctpl.k1i0ji0y024`));return}let e=Z.leadId?U.value.find(e=>e.id===Z.leadId):void 0,t=Z.memberIds.filter(e=>e!==Z.leadId).map(e=>({templateId:e,role:`worker`}));try{await B.createChannelTemplate({name:Z.name.trim(),description:Z.description||void 0,scenarioPrompt:Z.scenarioPrompt||void 0,workspace:Z.workspace||void 0,lead:e?{name:e.name,harness:e.harness,config:e.config}:null,members:t,visibility:Z.visibility}),y.success(x(`ctpl.kyppebc025`)),X.value=!1,G()}catch(e){y.error(S(e))}},Te=async(e,t)=>{try{await B.updateChannelTemplate(e.id,{visibility:t?`public`:`private`}),y.success(x(t?`ctpl.kkziya3026`:`ctpl.k1xxabaf027`)),G()}catch(e){y.error(S(e))}},$=a(null),Ee=async e=>{$.value=e.id;try{let t=(await B.instantiateChannelTemplate(e.id))?.data;y.success(x(`ctpl.kefkfnl030`,{p0:e.name,p1:t?.agentCount??0}))}catch(e){y.error(S(e))}finally{$.value=null}},De=async e=>{await B.deleteChannelTemplate(e.id),y.success(x(`ctpl.k1oxfuqj028`)),G()};return _({title:()=>x(`titles.ctpl`)}),(n,a)=>{let o=re,l=pe,_=ge,v=de,y=he,b=fe,S=me,C=ce,w=ae,E=se,B=ne,G=ue,Oe=le,ke=oe,Ae=ie;return s(),d(`div`,_e,[u(`div`,D,[u(`div`,null,[u(`h2`,null,`Channel `+r(n.$t(`ctpl.k1f54iqd029`)),1),u(`p`,O,r(n.$t(`ctpl.k18gglgp011`)),1)]),c(l,null,{default:m(()=>[c(o,{onClick:a[0]||=t=>(`navigateTo`in n?n.navigateTo:e(te))(`/workshop`)},{default:m(()=>[g(r(n.$t(`ctpl.krpx6qa012`)),1)]),_:1}),c(o,{type:`primary`,onClick:Q},{default:m(()=>[g(r(n.$t(`ctpl.k1efixrj013`)),1)]),_:1})]),_:1})]),u(`div`,k,[c(_,{value:e(K),"onUpdate:value":a[1]||=e=>i(K)?K.value=e:null,size:`small`,options:[{value:`all`,label:n.$t(`chips.chipAll`,{n:e(H).length})},{value:`mine`,label:n.$t(`chips.mine`)},{value:`public`,label:n.$t(`chips.public`)},{value:`builtin`,label:n.$t(`chips.builtin`)}]},null,8,[`value`,`options`]),e(V).isAdmin?(s(),d(`span`,A,[a[10]||=u(`span`,{class:`i-tabler-shield-check`},null,-1),g(` `+r(n.$t(`ctpl.ka1gpdj014`)),1)])):p(``,!0)]),c(S,{spinning:e(W)},{default:m(()=>[u(`div`,j,[(s(!0),d(f,null,ee(e(q),i=>(s(),d(`div`,{key:i.id,class:`card`},[u(`div`,M,[u(`span`,N,r((`seedName`in n?n.seedName:e(T))(e(x),i)),1),c(v,{color:Y(i).color,class:`vis-tag`},{default:m(()=>[Y(i).icon?(s(),d(`span`,{key:0,class:t(Y(i).icon)},null,2)):p(``,!0),g(r(Y(i).text),1)]),_:2},1032,[`color`]),!i.isBuiltin&&J(i)?(s(),h(y,{key:0,checked:i.visibility===`public`,size:`small`,"checked-children":n.$t(`ctpl.visPublic`),"un-checked-children":n.$t(`ctpl.visPrivate`),onChange:e=>Te(i,e===!0)},null,8,[`checked`,`checked-children`,`un-checked-children`,`onChange`])):p(``,!0),u(`span`,P,r(i.ownerName??`-`),1)]),i.description?(s(),d(`p`,F,r(R(i)),1)):p(``,!0),u(`div`,I,[a[12]||=u(`span`,{class:`i-tabler-users-group`},null,-1),i.lead||i.members.length>0?(s(),d(f,{key:0},[c(v,{color:`gold`},{default:m(()=>[...a[11]||=[g(` lead `,-1)]]),_:1}),u(`span`,ve,r(i.lead?.name??Ce(i.members.find(e=>e.role===`lead`)??i.members[0])),1),i.members.filter(e=>e.role!==`lead`).length>0?(s(),d(`span`,ye,`+ `+r(i.members.filter(e=>e.role!==`lead`).length)+` worker`,1)):p(``,!0)],64)):(s(),d(`span`,L,r(n.$t(`ctpl.k3rx4ps015`)),1))]),i.scenarioPrompt?(s(),d(`div`,{key:1,class:`scenario`,title:i.scenarioPrompt},r(z(i).slice(0,90))+r(z(i).length>90?`…`:``),9,be)):p(``,!0),u(`div`,xe,[i.workspace?(s(),d(`span`,{key:0,class:`ws`,title:i.workspace},[a[13]||=u(`span`,{class:`i-tabler-folder`},null,-1),g(` `+r(i.workspace),1)],8,Se)):p(``,!0),a[14]||=u(`span`,{class:`spacer`},null,-1),J(i)?(s(),h(b,{key:1,title:n.$t(`ctpl.k117jag9001`),onConfirm:e=>De(i)},{default:m(()=>[c(o,{size:`small`,type:`text`,danger:``},{default:m(()=>[g(r(n.$t(`ctpl.k3xakp016`)),1)]),_:1})]),_:1},8,[`title`,`onConfirm`])):p(``,!0),c(o,{size:`small`,type:`primary`,ghost:``,loading:e($)===i.id,title:n.$t(`ctpl.knjomku002`),onClick:e=>Ee(i)},{default:m(()=>[g(r(n.$t(`ctpl.k3mr1fo017`)),1)]),_:1},8,[`loading`,`title`,`onClick`])])]))),128)),e(q).length===0?(s(),d(`div`,{key:0,class:`card placeholder`,onClick:Q},[a[15]||=u(`span`,{class:`i-tabler-layout-grid-add big`},null,-1),u(`span`,null,r(n.$t(`ctpl.k19fglby018`)),1)])):p(``,!0)])]),_:1},8,[`spinning`]),c(Ae,{open:e(X),"onUpdate:open":a[9]||=e=>i(X)?X.value=e:null,title:n.$t(`ctpl.newTplTitle`),"ok-text":n.$t(`common.create`),"cancel-text":n.$t(`common.cancel`),onOk:we},{default:m(()=>[c(ke,{layout:`vertical`},{default:m(()=>[c(w,{label:n.$t(`ctpl.k1f55q76003`)},{default:m(()=>[c(C,{value:e(Z).name,"onUpdate:value":a[2]||=t=>e(Z).name=t},null,8,[`value`])]),_:1},8,[`label`]),c(w,{label:n.$t(`ctpl.k40gkk004`)},{default:m(()=>[c(C,{value:e(Z).description,"onUpdate:value":a[3]||=t=>e(Z).description=t},null,8,[`value`])]),_:1},8,[`label`]),c(w,{label:n.$t(`ctpl.leadTplLabel`)},{default:m(()=>[c(E,{value:e(Z).leadId,"onUpdate:value":a[4]||=t=>e(Z).leadId=t,"allow-clear":``,placeholder:n.$t(`ctpl.k1ju32o7005`),options:e(U).map(e=>({value:e.id,label:`${e.name}(${e.harness})`}))},null,8,[`value`,`placeholder`,`options`])]),_:1},8,[`label`]),c(w,{label:n.$t(`ctpl.k5uq1js006`)},{default:m(()=>[c(E,{value:e(Z).memberIds,"onUpdate:value":a[5]||=t=>e(Z).memberIds=t,mode:`multiple`,placeholder:n.$t(`ctpl.kqmdkc9007`),options:e(U).filter(t=>t.id!==e(Z).leadId).map(e=>({value:e.id,label:`${e.name}(${e.harness})`}))},null,8,[`value`,`placeholder`,`options`])]),_:1},8,[`label`]),c(w,{label:n.$t(`ctpl.k1q87yho008`)},{default:m(()=>[c(B,{value:e(Z).scenarioPrompt,"onUpdate:value":a[6]||=t=>e(Z).scenarioPrompt=t,rows:3},null,8,[`value`])]),_:1},8,[`label`]),c(w,{label:n.$t(`ctpl.kk4u5cr009`)},{default:m(()=>[c(C,{value:e(Z).workspace,"onUpdate:value":a[7]||=t=>e(Z).workspace=t,placeholder:`data/workspaces/<channelId>`},null,8,[`value`])]),_:1},8,[`label`]),c(w,{label:n.$t(`ctpl.k3lrqn0010`)},{default:m(()=>[c(Oe,{value:e(Z).visibility,"onUpdate:value":a[8]||=t=>e(Z).visibility=t},{default:m(()=>[c(G,{value:`private`},{default:m(()=>[g(r(n.$t(`ctpl.k17jfge3019`)),1)]),_:1}),c(G,{value:`public`},{default:m(()=>[g(r(n.$t(`ctpl.k191u0u5020`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`open`,`title`,`ok-text`,`cancel-text`])])}}}),[[`__scopeId`,`data-v-2c33b698`]]);export{R as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{d as r}from"./ByMj6e7s.js";import{n as i}from"./Cnrmlixo.js";import{t as a}from"./JgheoP3e.js";import{t as o}from"./DxagrjB8.js";import{r as s}from"./Du9v6qGB.js";var c=e({useDcwDetailTemplates:()=>l});function l(e){let{t:c}=i(),l=o(),u=n(!1),d=n(!1),f=n(``),p=n(``);function m(){u.value=!0,f.value=``,p.value=``}let h=t({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),g=[{key:`thermo`,label:c(`dcwDetail.k422b8126`)},{key:`pressure`,label:c(`dcwDetail.k3x6ff127`)},{key:`tension`,label:c(`dcwDetail.k3z9xc128`)},{key:`encoder`,label:c(`dcwDetail.kjb3vhs129`)},{key:`camera`,label:c(`dcwDetail.k47atw130`)},{key:`gateway`,label:c(`dcwDetail.k48c07131`)}];async function _(){d.value=!0,f.value=``,p.value=``;try{if(!h.name.trim())throw Error(c(`dcwDetail.k6ugbw2132`));if(h.unit.trim()===``)throw Error(c(`dcwDetail.kx3pg59133`));if(h.min===``||h.max===``)throw Error(c(`dcwDetail.k13awowo134`));let t=await l.createTemplate({name:h.name.trim(),ch:h.ch.trim()||h.name.trim(),code:h.code.trim()||`CUSTOM`,unit:h.unit.trim(),min:Number(h.min),max:Number(h.max),decimals:Number(h.decimals)||0,icon:h.icon,semantics:h.semantics.trim()||void 0});e.addTemplate.value=t.key,p.value=c(`dcwDetail.ky4e1tr185`,{p0:s(c,t)}),h.name=``,h.ch=``,h.code=``,h.unit=``,h.min=``,h.max=``,h.semantics=``}catch(e){f.value=a(e)}finally{d.value=!1}}return{tplOpen:u,tplSaving:d,tplError:f,tplOk:p,tplForm:h,tplIcons:g,builtinCount:r(()=>l.templates.filter(e=>e.builtin).length),customCount:r(()=>l.templates.filter(e=>!e.builtin).length),openTplModal:m,doCreateTemplate:_}}export{c as n,l as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{v as t}from"./CavpkQb0.js";import{P as n,R as r,et as i}from"./ByMj6e7s.js";import{n as a}from"./Cnrmlixo.js";import{t as o}from"./RAqsw632.js";import{a as s}from"./wDPc4SSR.js";import{t as c}from"./fxWyOzyp2.js";import{t as l}from"./Ch1P2mIf.js";var u=e({useMonitorData:()=>d});function d(e={}){let{t:u}=a(),d=c(),f=t(null),p=t(!1),m=t(!0),h=t(``),g=async()=>{if(d.token){p.value=!0;try{let e=await l(`/api/system/monitor`,{headers:{authorization:`Bearer ${d.token}`}});f.value=e.data,h.value=new Date().toLocaleTimeString()}catch(e){s.error(e instanceof Error?e.message:u(`monitor.loadFailed`))}finally{p.value=!1}}},_=null,v=()=>{_&&=(clearInterval(_),null),m.value&&d.token&&(_=o(()=>void g(),5e3))};i(m,()=>v()),i(()=>d.token,()=>{d.token?g():f.value=null,v()}),r(()=>{d.token&&g().then(()=>e.onInitialPoll?.()),v()}),n(()=>{_&&clearInterval(_)});let y=t(!1);return{snapshot:f,loading:p,autoRefresh:m,lastUpdated:h,terminating:y,poll:g,doTerminateAgent:async e=>{y.value=!0;try{let t=await l(`/api/system/monitor/terminate`,{method:`POST`,headers:{authorization:`Bearer ${d.token}`},body:{channelId:e.channelId,agentId:e.agentId}});s.success(t.code===0?`${e.name} ${u(`monitor.terminated`)}`:t.message??u(`monitor.failed`)),await g()}catch(e){s.error(e instanceof Error?e.message:u(`monitor.failed`))}finally{y.value=!1}},doTerminatePid:async e=>{y.value=!0;try{let t=await l(`/api/system/monitor/terminate`,{method:`POST`,headers:{authorization:`Bearer ${d.token}`},body:{pid:e.pid}});s.success(t.code===0?`PID ${e.pid} ${u(`monitor.terminated`)}`:t.message??u(`monitor.failed`)),await g()}catch(e){s.error(e instanceof Error?e.message:u(`monitor.failed`))}finally{y.value=!1}}}}export{u as n,d as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./BMMoqi94.js";import{N as t,dt as n,ft as r,g as i,mt as a,u as o,v as s}from"./CavpkQb0.js";import{D as c,H 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,y as w}from"./ByMj6e7s.js";import{c as T,d as E,l as D,u as O}from"./Dqz5HiXa.js";import{t as k}from"./DpqA8D8_.js";import{n as A,t as j}from"./y9kob70X.js";import{n as M}from"./Cnrmlixo.js";import{a as N}from"./wDPc4SSR.js";import{t as P}from"./eutnXI4F.js";import{t as F}from"./CAaSPBqk.js";import{t as ee}from"./Bwc6lt2X.js";import{t as I}from"./CzlUIbK32.js";import{t as te}from"./C_VAXV7I2.js";import{n as L,t as ne}from"./ZvXovq7N2.js";import{t as re}from"./CD9lpEz22.js";import{t as ie}from"./DzBbYWrw2.js";import{t as ae}from"./DqtnqNgL2.js";import{t as R}from"./fxWyOzyp2.js";import{t as z}from"./DHSDk8Bq2.js";import{t as B}from"./BDNMzG2s2.js";import{t as V}from"./JgheoP3e.js";import{t as H}from"./BWU1pvLL.js";import{t as U}from"./Bt2ZL5332.js";var W={class:`section-title`},G={class:`section-desc`},K={class:`set-row`},q={class:`set-text`},J={class:`set-title`},oe={class:`set-sub`},se={class:`color-swatches`},ce=[`title`,`onClick`],le={class:`swatch-label`},ue={key:0,class:`i-tabler-check swatch-check`},de={class:`toggle-row`},fe={class:`set-text`},pe={class:`set-title`},me={class:`set-sub`},he=[`aria-checked`],ge={class:`toggle-row`},_e={class:`set-text`},ve={class:`set-title`},ye={class:`set-sub`},be=Object.assign(B(d({__name:`AppearancePane`,props:{activeTab:{}},setup(i){let o=A(),s=e().public,{t:c,locale:l,locales:u,setLocale:d}=M(),g=String(s.primaryColor),x=[{value:g,label:c(`settings.accentInk`)},{value:`#c9963f`,label:c(`settings.accentStone`)},{value:`#44615a`,label:c(`settings.accentMoss`)},{value:`#3f6094`,label:c(`settings.accentSlate`)},{value:`#6b5aa0`,label:c(`settings.accentPlum`)},{value:`#9c5744`,label:c(`settings.accentClay`)}],S=h(()=>o.accent??g);function T(e){o.setAccent(e===g?null:e),N.success(c(`settings.accentApplied`))}function E(){o.setAccent(null),N.success(c(`settings.accentReset`))}let O=h(()=>u.value.map(e=>({label:e.name,value:e.code}))),j=e=>{e!=null&&(k(`aw.locale`,{maxAge:31536e3}).value=String(e),localStorage.setItem(`aw.locale`,String(e)),d(String(e)),window.location.reload())};return(e,s)=>{let u=P;return C((f(),v(`div`,null,[_(`h3`,W,a(t(c)(`settings.theme`)),1),_(`p`,G,a(t(c)(`settings.appearanceDesc`)),1),_(`div`,K,[_(`div`,q,[_(`div`,J,a(t(c)(`settings.primaryColor`)),1),_(`div`,oe,a(t(c)(`settings.accentDesc`)),1)])]),_(`div`,se,[(f(),v(y,null,p(x,e=>_(`button`,{key:e.value,class:n([`swatch`,{on:t(S).toLowerCase()===e.value.toLowerCase()}]),style:r({"--sw":e.value}),title:e.label,onClick:t=>T(e.value)},[s[1]||=_(`span`,{class:`swatch-dot`},null,-1),_(`span`,le,a(e.label),1),t(S).toLowerCase()===e.value.toLowerCase()?(f(),v(`span`,ue)):b(``,!0)],14,ce)),64))]),_(`button`,{class:`aw-pill outline reset-btn`,onClick:E},[s[2]||=_(`span`,{class:`i-tabler-rotate`},null,-1),w(` `+a(t(c)(`settings.accentResetAction`)),1)]),_(`div`,de,[_(`div`,fe,[_(`div`,pe,a(t(o).isDark?t(c)(`common.dark`):t(c)(`common.light`)),1),_(`div`,me,a(t(c)(`settings.darkDesc`)),1)]),_(`button`,{class:n([`switch`,{on:t(o).isDark}]),role:`switch`,"aria-checked":t(o).isDark,onClick:s[0]||=e=>t(o).toggleDark()},[...s[3]||=[_(`span`,{class:`knob`},null,-1)]],10,he)]),_(`div`,ge,[_(`div`,_e,[_(`div`,ve,a(t(c)(`header.language`)),1),_(`div`,ye,a(t(c)(`settings.languageDesc`)),1)]),m(u,{value:t(l),options:t(O),style:{width:`140px`},onChange:j},null,8,[`value`,`options`])])],512)),[[D,i.activeTab===`appearance`]])}}}),[[`__scopeId`,`data-v-79352bd2`]]),{__name:`SettingsAppearancePane`});function xe(){let{t:e}=M(),t=z(),n=s({}),r=s(new Set),i=s(!1),a=s(null);function o(){n.value={...t.effective},r.value=new Set}g(()=>t.loaded,e=>{e&&o()},{immediate:!0}),g(()=>t.effective,()=>{r.value.size===0&&o()},{deep:!0});function c(e){r.value.add(e),a.value=null}async function l(){if(r.value.size){i.value=!0,a.value=null;try{let i={};for(let e of r.value)i[e]=n.value[e];let s=await t.patch(i);o();let c=s.restartRequired??[];a.value=c.length?{type:`warning`,text:e(`settings.runtime.restartNotice`,{keys:c.join(`, `)})}:{type:`success`,text:e(`settings.runtime.savedLive`)}}catch(e){let t=e;a.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}finally{i.value=!1}}}async function u(i){try{await t.patch({[i]:null}),r.value.delete(i),n.value[i]=t.effective[i],a.value={type:`success`,text:e(`settings.runtime.keyReset`,{key:i})}}catch(e){let t=e;a.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}async function d(){try{await t.resetAll(),o(),a.value={type:`success`,text:e(`settings.runtime.resetAllDone`)}}catch(e){let t=e;a.value={type:`error`,text:t?.response?.data?.message||t?.message||String(e)}}}return{draft:n,dirtyKeys:r,savingRuntime:i,runtimeNotice:a,syncRuntimeDraft:o,markDirty:c,saveRuntime:l,resetRuntimeKey:u,resetAllRuntime:d}}var Y=Symbol(`aw.settings.runtimeConfigDraft`);function Se(){let e=xe();return l(Y,e),e}function Ce(){let e=c(Y);if(!e)throw Error(`[settings] useRuntimeConfigDraftContext: 缺少 provideRuntimeConfigDraft()`);return e}function we(){let{t:e}=M(),t=R(),n=z(),r={server:`settings.runtime.groupServer`,app:`settings.runtime.groupApp`,api:`settings.runtime.groupApi`,theme:`settings.runtime.groupTheme`,i18n:`settings.runtime.groupI18n`,security:`settings.runtime.groupSecurity`,daq:`settings.runtime.groupDaq`,memory:`settings.runtime.groupMemory`,omp:`settings.runtime.groupOmp`,harness:`settings.runtime.groupHarness`,dcw:`settings.runtime.groupDcw`,workshop:`settings.runtime.groupWorkshop`,backup:`settings.runtime.groupBackup`,retention:`settings.runtime.groupRetention`,log:`settings.runtime.groupLog`,plugins:`settings.runtime.groupPlugins`};function a(t){if(t.labelKey&&e(t.labelKey)!==t.labelKey)return e(t.labelKey);if(t.label&&t.label!==t.id)return t.label;let n=r[t.id];return n?e(n):t.label||t.id}function o(t){return t.source===`plugin`?t.plugin?`${e(`settings.groups.srcPlugin`)}: ${t.plugin}`:e(`settings.groups.srcPlugin`):t.source===`user`?e(`settings.groups.srcUser`):e(`settings.groups.srcBuiltin`)}function c(e){return e===`runtime`?`src-runtime`:e===`env`?`src-env`:`src-yaml`}function l(t){let n=t.labelKey;return n&&e(n)!==n?e(n):t.label}let d=`aw.settings.groups.collapsed`,f=s({});function p(){try{f.value=JSON.parse(localStorage.getItem(d)??`{}`)??{}}catch{f.value={}}}function m(){try{localStorage.setItem(d,JSON.stringify(f.value))}catch{}}function g(e){let t=f.value[e.id];return t===void 0?e.collapsed:t}function _(e){e.collapsible&&(f.value={...f.value,[e.id]:!g(e)},m())}function v(){let e=n.groups.filter(e=>e.collapsible),t=e.some(e=>!g(e)),r={...f.value};for(let n of e)r[n.id]=t;f.value=r,m()}let y=h(()=>n.groups.filter(e=>e.collapsible).some(e=>!g(e))),b=h(()=>t.isAdmin),x=s(!1),S=i({label:``,description:``,collapsed:!1}),C=s(``),w=s(``),T=s(``);async function E(){if(S.label.trim()){C.value=`create`;try{await n.createGroup({label:S.label.trim(),description:S.description.trim(),collapsed:S.collapsed}),x.value=!1,S.label=``,S.description=``,S.collapsed=!1,N.success(e(`settings.groups.created`))}catch(t){N.error(V(t,e(`settings.groups.createFail`)))}finally{C.value=``}}}function D(e){w.value=e.id,T.value=e.label}async function O(t){let r=T.value.trim();if(w.value=``,r){C.value=t;try{await n.updateGroup(t,{label:r}),N.success(e(`settings.groups.renamed`))}catch(t){N.error(V(t,e(`settings.groups.updateFail`)))}finally{C.value=``}}}async function k(t,r){let i=[...n.groups],a=i.findIndex(e=>e.id===t),o=a+r;if(a<0||o<0||o>=i.length)return;let s=i[a],c=i[o];C.value=t;try{let e=[...i];e.splice(a,1),e.splice(o,0,s);let t=(o+1)*10,r=(a+1)*10;await n.updateGroup(s.id,{order:t}),await n.updateGroup(c.id,{order:r})}catch(t){N.error(V(t,e(`settings.groups.updateFail`)))}finally{C.value=``}}async function A(t){C.value=t.id;try{await n.updateGroup(t.id,{collapsed:!t.collapsed})}catch(t){N.error(V(t,e(`settings.groups.updateFail`)))}finally{C.value=``}}async function j(t){let r=t.fieldCount??0;if(r>0){N.warning(e(`settings.groups.deleteHasFields`,{p0:a(t),p1:r}));return}C.value=t.id;try{await n.deleteGroup(t.id),N.success(e(`settings.groups.deleted`))}catch(t){N.error(V(t,e(`settings.groups.deleteFail`)))}finally{C.value=``}}return u(p),{groupLabel:a,groupSourceBadge:o,sourceClass:c,itemLabel:l,groupCollapsed:f,loadCollapsePref:p,saveCollapsePref:m,isCollapsed:g,toggleGroup:_,toggleAllGroups:v,allExpanded:y,isAdmin:b,groupFormOpen:x,groupForm:S,groupBusy:C,renamingId:w,renameDraft:T,submitGroupForm:E,startRename:D,commitRename:O,moveGroup:k,setGroupDefaultCollapsed:A,removeGroup:j}}var X=Symbol(`aw.settings.groups`);function Te(){let e=we();return l(X,e),e}function Z(){let e=c(X);if(!e)throw Error(`[settings] useSettingsGroupsContext: 缺少 provideSettingsGroups()`);return e}var Ee={class:`rt-row`},De={class:`rt-main`},Oe={class:`rt-title`},ke={class:`rt-sub`},Ae={class:`rt-ctrl`},je={key:3,class:`rt-color`},Me=[`value`],Ne=[`title`],Pe=Object.assign(B(d({__name:`RuntimeFieldRow`,props:{item:{}},setup(e){let{t:r}=M(),i=z(),{draft:o,markDirty:s,resetRuntimeKey:c}=Ce(),{itemLabel:l,sourceClass:u}=Z();return(d,p)=>{let h=re,g=ae,y=P,b=F;return f(),v(`div`,Ee,[_(`div`,De,[_(`div`,Oe,[w(a(t(l)(e.item))+` `,1),_(`span`,{class:n([`rt-tag`,t(u)(t(i).sourceOf(e.item.key))])},a(t(i).sourceOf(e.item.key)),3),_(`span`,{class:n([`rt-tag`,e.item.applies])},a(e.item.applies===`live`?t(r)(`settings.runtime.live`):t(r)(`settings.runtime.restart`)),3)]),_(`div`,ke,a(e.item.description),1)]),_(`div`,Ae,[e.item.type===`number`?(f(),S(h,{key:0,value:t(o)[e.item.key],"onUpdate:value":p[0]||=n=>t(o)[e.item.key]=n,min:e.item.min,max:e.item.max,onChange:p[1]||=n=>t(s)(e.item.key)},null,8,[`value`,`min`,`max`])):e.item.type===`boolean`?(f(),S(g,{key:1,checked:t(o)[e.item.key],"onUpdate:checked":p[2]||=n=>t(o)[e.item.key]=n,onChange:p[3]||=n=>t(s)(e.item.key)},null,8,[`checked`])):e.item.type===`select`?(f(),S(y,{key:2,value:t(o)[e.item.key],"onUpdate:value":p[4]||=n=>t(o)[e.item.key]=n,style:{width:`160px`},options:(e.item.options??[]).map(e=>({label:e,value:e})),onChange:p[5]||=n=>t(s)(e.item.key)},null,8,[`value`,`options`])):e.item.type===`color`?(f(),v(`span`,je,[_(`input`,{type:`color`,value:String(t(o)[e.item.key]??`#35e0a0`),onInput:p[6]||=n=>{t(o)[e.item.key]=n.target.value,t(s)(e.item.key)}},null,40,Me),m(b,{value:String(t(o)[e.item.key]??``),style:{width:`110px`},class:`aw-mono`,onChange:p[7]||=n=>{t(o)[e.item.key]=n.target.value,t(s)(e.item.key)}},null,8,[`value`])])):(f(),S(b,{key:4,value:t(o)[e.item.key],"onUpdate:value":p[8]||=n=>t(o)[e.item.key]=n,style:{width:`220px`},onChange:p[9]||=n=>t(s)(e.item.key)},null,8,[`value`])),_(`button`,{class:`aw-pill outline rt-reset`,title:t(r)(`settings.runtime.resetKey`),onClick:p[10]||=n=>t(c)(e.item.key)},[...p[11]||=[_(`span`,{class:`i-tabler-rotate`},null,-1)]],8,Ne)])])}}}),[[`__scopeId`,`data-v-0a47f4cb`]]),{__name:`SettingsRuntimeFieldRow`}),Fe=[`role`,`tabindex`],Ie={key:3,class:`rt-group-title`},Le={class:`rt-group-badge`},Re={class:`rt-group-fields`},ze={key:4,class:`rt-group-desc`},Be=[`disabled`,`title`],Ve=[`disabled`,`title`],He=[`disabled`,`title`],Ue=[`disabled`,`title`],We=[`disabled`,`title`],Ge={class:`rt-group-body`},Ke={key:0,class:`rt-group-empty`},qe=Object.assign(B(d({__name:`RuntimeGroupSection`,props:{group:{}},setup(e){let{t:r}=M(),i=z(),{groupLabel:s,groupSourceBadge:c,isCollapsed:l,toggleGroup:u,renamingId:d,renameDraft:m,commitRename:h,startRename:g,isAdmin:x,groupBusy:w,moveGroup:k,setGroupDefaultCollapsed:A,removeGroup:j}=Z();return(M,N)=>(f(),v(`section`,{class:n([`rt-group`,{collapsed:t(l)(e.group),"grp-plugin":e.group.source===`plugin`}])},[_(`header`,{class:`rt-group-head`,role:e.group.collapsible?`button`:void 0,tabindex:e.group.collapsible?0:void 0,onClick:N[11]||=n=>t(u)(e.group),onKeydown:[N[12]||=O(E(n=>t(u)(e.group),[`prevent`]),[`enter`]),N[13]||=O(E(n=>t(u)(e.group),[`prevent`]),[`space`])]},[e.group.collapsible?(f(),v(`span`,{key:0,class:n([`rt-caret`,t(l)(e.group)?`i-tabler-chevron-right`:`i-tabler-chevron-down`])},null,2)):b(``,!0),e.group.icon?(f(),v(`span`,{key:1,class:n([`rt-group-icon`,e.group.icon])},null,2)):b(``,!0),t(d)===e.group.id?(f(),v(y,{key:2},[C(_(`input`,{"onUpdate:modelValue":N[0]||=e=>o(m)?m.value=e:null,class:`rt-rename aw-mono`,onClick:N[1]||=E(()=>{},[`stop`]),onKeydown:[N[2]||=O(E(n=>t(h)(e.group.id),[`prevent`]),[`enter`]),N[3]||=O(E(e=>d.value=``,[`prevent`]),[`esc`])]},null,544),[[T,t(m)]]),_(`button`,{class:`mini-btn`,onClick:N[4]||=E(n=>t(h)(e.group.id),[`stop`])},a(t(r)(`settings.groups.ok`)),1)],64)):(f(),v(`h4`,Ie,a(t(s)(e.group)),1)),_(`span`,Le,a(t(c)(e.group)),1),_(`span`,Re,a(t(r)(`settings.groups.fields`,{p0:e.group.fieldCount??0})),1),e.group.description?(f(),v(`span`,ze,a(e.group.description),1)):b(``,!0),t(x)&&e.group.source!==`plugin`?(f(),v(`span`,{key:5,class:`rt-group-ops`,onClick:N[10]||=E(()=>{},[`stop`])},[_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.moveUp`),onClick:N[5]||=n=>t(k)(e.group.id,-1)},[...N[14]||=[_(`span`,{class:`i-tabler-arrow-up`},null,-1)]],8,Be),_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.moveDown`),onClick:N[6]||=n=>t(k)(e.group.id,1)},[...N[15]||=[_(`span`,{class:`i-tabler-arrow-down`},null,-1)]],8,Ve),_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.rename`),onClick:N[7]||=n=>t(g)(e.group)},[...N[16]||=[_(`span`,{class:`i-tabler-pencil`},null,-1)]],8,He),_(`button`,{class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.defaultCollapsed`),onClick:N[8]||=n=>t(A)(e.group)},[_(`span`,{class:n(e.group.collapsed?`i-tabler-chevrons-down`:`i-tabler-chevrons-up`)},null,2)],8,Ue),e.group.source===`user`?(f(),v(`button`,{key:0,class:`mini-btn`,disabled:t(w)===e.group.id,title:t(r)(`settings.groups.delete`),onClick:N[9]||=n=>t(j)(e.group)},[...N[17]||=[_(`span`,{class:`i-tabler-trash`},null,-1)]],8,We)):b(``,!0)])):b(``,!0)],40,Fe),C(_(`div`,Ge,[e.group.fieldCount??0?b(``,!0):(f(),v(`p`,Ke,a(t(r)(`settings.groups.emptyHint`)),1)),(f(!0),v(y,null,p(t(i).fieldsOf(e.group.id),e=>(f(),S(Pe,{key:e.key,item:e},null,8,[`item`]))),128))],512),[[D,!t(l)(e.group)]])],2))}}),[[`__scopeId`,`data-v-2f40d8db`]]),{__name:`SettingsRuntimeGroupSection`});function Je(e){let{t}=M(),n=R(),r=H(),i=s([]),a=s(!1),o=s(!1),c=s(new Set),l=s({}),u=e=>(e.routes??[]).some(e=>String(e.path||``).endsWith(`/health`));async function d(){a.value=!0;try{let e=await r.listPlugins(),t=e?.plugins??e?.data?.plugins??[];i.value=Array.isArray(t)?t:[],o.value=!0}catch(e){N.error(V(e,t(`plugins.loadFail`)))}finally{a.value=!1}}async function f(e,n){if(!c.value.has(e.name)){c.value.add(e.name);try{n?await r.enablePlugin(e.name):await r.disablePlugin(e.name),e.enabled=n,N.success(t(n?`plugins.enabled`:`plugins.disabled`))}catch(e){N.error(V(e,t(`plugins.adminRequired`)))}finally{c.value.delete(e.name)}}}async function p(e){if(u(e)){l.value={...l.value,[e.name]:`checking`};try{let t=await r.pluginHealth(e.name);l.value={...l.value,[e.name]:m(e.name,t)}}catch(n){l.value={...l.value,[e.name]:{ok:!1,reason:V(n,t(`plugins.loadFail`))}}}}}function m(e,t){if(e===`rag-bridge`){let e=t.backend,n=t.web,r=!!e?.ok&&!!n?.ok,i=e?.ok?n?.error||n?.status||`web`:e?.error||e?.status||`backend`;return r?{ok:!0}:{ok:!1,reason:i}}if(e===`diag-bridge`){let e=t.remote;return e?.status===`ok`?{ok:!0}:{ok:!1,reason:e?.status||`remote`}}return{ok:!0}}function h(e){return l.value[e]===`checking`}function _(e){let t=l.value[e];return t&&t!==`checking`?t:null}function v(e){return c.value.has(e)}return g(e,e=>{e===`runtime`&&!o.value&&!a.value&&n.isLoggedIn&&d()},{immediate:!0}),{plugins:i,pluginsLoading:a,pluginsLoaded:o,togglingPlugins:c,healthMap:l,hasHealthRoute:u,loadPlugins:d,togglePlugin:f,checkPluginHealth:p,judgePluginHealth:m,isCheckingHealth:h,healthOf:_,isToggling:v}}var Q=Symbol(`aw.settings.pluginAdmin`);function Ye(e){let t=Je(e);return l(Q,t),t}function Xe(){let e=c(Q);if(!e)throw Error(`[settings] usePluginAdminContext: 缺少 providePluginAdmin()`);return e}var Ze={key:0,class:`identity-note`},Qe={class:`plugin-main`},$e={class:`rt-title`},et={class:`aw-mono`},tt={key:0,class:`rt-tag`},nt={key:1,class:`rt-tag src-runtime`},rt={key:2,class:`rt-tag restart`},it={class:`rt-sub`},at={class:`rt-ctrl`},ot={key:0,class:`plugin-health faint`},st=[`onClick`],ct=[`aria-checked`,`disabled`,`onClick`],lt={key:0,class:`identity-note`},ut=Object.assign(B(d({__name:`PluginsSection`,setup(e){let{t:r}=M(),i=R(),{plugins:o,pluginsLoading:s,hasHealthRoute:c,checkPluginHealth:l,isCheckingHealth:u,healthOf:d,isToggling:m,togglePlugin:h}=Xe();return(e,g)=>{let C=ie;return t(i).isLoggedIn?(f(),S(C,{key:1,spinning:t(s)},{default:x(()=>[(f(!0),v(y,null,p(t(o),e=>(f(),v(`div`,{key:e.name,class:n([`plugin-row`,{off:e.enabled===!1}])},[_(`div`,Qe,[_(`div`,$e,[_(`span`,et,a(e.name),1),e.version?(f(),v(`span`,tt,`v`+a(e.version),1)):b(``,!0),e.builtin?(f(),v(`span`,nt,a(t(r)(`plugins.builtin`)),1)):b(``,!0),e.error?(f(),v(`span`,rt,a(e.error),1)):b(``,!0)]),_(`div`,it,a(e.description||`—`),1)]),_(`div`,at,[t(u)(e.name)?(f(),v(`span`,ot,[g[0]||=_(`span`,{class:`i-tabler-loader-2 spin`},null,-1),w(` `+a(t(r)(`plugins.healthChecking`)),1)])):t(d)(e.name)?(f(),v(`span`,{key:1,class:n([`plugin-health`,t(d)(e.name).ok?`ok`:`bad`])},[_(`span`,{class:n(t(d)(e.name).ok?`i-tabler-circle-check`:`i-tabler-alert-circle`)},null,2),w(` `+a(t(d)(e.name).ok?t(r)(`plugins.healthOk`):`${t(r)(`plugins.healthBad`)}: ${t(d)(e.name).reason??``}`),1)],2)):b(``,!0),t(c)(e)?(f(),v(`button`,{key:2,class:`aw-pill outline rt-reset`,onClick:n=>t(l)(e)},[g[1]||=_(`span`,{class:`i-tabler-heartbeat`},null,-1),w(` `+a(t(r)(`plugins.healthCheck`)),1)],8,st)):b(``,!0),_(`button`,{class:n([`switch`,{on:e.enabled!==!1}]),role:`switch`,"aria-checked":e.enabled!==!1,disabled:t(m)(e.name),onClick:n=>t(h)(e,e.enabled===!1)},[...g[2]||=[_(`span`,{class:`knob`},null,-1)]],10,ct)])],2))),128)),t(o).length===0&&!t(s)?(f(),v(`div`,lt,a(t(r)(`plugins.empty`)),1)):b(``,!0)]),_:1},8,[`spinning`])):(f(),v(`div`,Ze,a(t(r)(`plugins.needLogin`)),1))}}}),[[`__scopeId`,`data-v-c4c10ede`]]),{__name:`SettingsPluginsSection`}),dt={class:`section-title`},ft={class:`section-desc`},pt={class:`rt-groups-bar`},mt=[`title`],ht={class:`rt-groups-count`},gt={key:1,class:`rt-group-form`},_t=[`disabled`],vt={class:`rt-actions`},yt=[`disabled`],bt={class:`rt-path aw-mono`},xt={class:`rt-group-title plugin-group-title`},St={class:`section-desc`},Ct=Object.assign(B(d({__name:`RuntimePane`,props:{activeTab:{}},setup(e){let r=e,{t:i}=M(),o=z(),{runtimeNotice:s,dirtyKeys:c,savingRuntime:l,saveRuntime:u,resetAllRuntime:d}=Se(),{allExpanded:g,groupFormOpen:T,groupForm:E,groupBusy:O,isAdmin:k,submitGroupForm:A,toggleAllGroups:j}=Te(),{plugins:N}=Ye(h(()=>r.activeTab));return(r,h)=>{let M=ee,P=F,I=te,L=U;return C((f(),v(`div`,null,[_(`h3`,dt,a(t(i)(`settings.runtimeTab`)),1),_(`p`,ft,a(t(i)(`settings.runtime.desc`)),1),t(s)?(f(),S(M,{key:0,type:t(s).type,"show-icon":``,class:`rt-notice`,message:t(s).text},null,8,[`type`,`message`])):b(``,!0),_(`div`,pt,[_(`button`,{class:`aw-pill outline rt-groups-toggle`,title:t(i)(`settings.groups.toggleAll`),onClick:h[0]||=(...e)=>t(j)&&t(j)(...e)},[_(`span`,{class:n(t(g)?`i-tabler-chevrons-up`:`i-tabler-chevrons-down`)},null,2),w(` `+a(t(g)?t(i)(`settings.groups.collapseAll`):t(i)(`settings.groups.expandAll`)),1)],8,mt),_(`span`,ht,a(t(i)(`settings.groups.count`,{p0:t(o).groups.length})),1),t(k)?(f(),v(`button`,{key:0,class:`aw-pill outline rt-groups-add`,onClick:h[1]||=e=>T.value=!t(T)},[h[9]||=_(`span`,{class:`i-tabler-plus`},null,-1),w(` `+a(t(i)(`settings.groups.newGroup`)),1)])):b(``,!0)]),t(k)&&t(T)?(f(),v(`div`,gt,[m(P,{value:t(E).label,"onUpdate:value":h[2]||=e=>t(E).label=e,placeholder:t(i)(`settings.groups.namePlaceholder`),style:{width:`220px`},onPressEnter:t(A)},null,8,[`value`,`placeholder`,`onPressEnter`]),m(P,{value:t(E).description,"onUpdate:value":h[3]||=e=>t(E).description=e,placeholder:t(i)(`settings.groups.descPlaceholder`),style:{width:`320px`},onPressEnter:t(A)},null,8,[`value`,`placeholder`,`onPressEnter`]),m(I,{checked:t(E).collapsed,"onUpdate:checked":h[4]||=e=>t(E).collapsed=e},{default:x(()=>[w(a(t(i)(`settings.groups.defaultCollapsed`)),1)]),_:1},8,[`checked`]),_(`button`,{class:`aw-pill primary`,disabled:!t(E).label.trim()||t(O)===`create`,onClick:h[5]||=(...e)=>t(A)&&t(A)(...e)},a(t(O)===`create`?`…`:t(i)(`settings.groups.create`)),9,_t),_(`button`,{class:`aw-pill outline`,onClick:h[6]||=e=>T.value=!1},a(t(i)(`settings.groups.cancel`)),1)])):b(``,!0),(f(!0),v(y,null,p(t(o).groups,e=>(f(),S(qe,{key:e.id,group:e},null,8,[`group`]))),128)),_(`div`,vt,[_(`button`,{class:`aw-pill primary`,disabled:!t(c).size||t(l),onClick:h[7]||=(...e)=>t(u)&&t(u)(...e)},[h[10]||=_(`span`,{class:`i-tabler-device-floppy`},null,-1),w(` `+a(t(l)?`…`:t(i)(`settings.runtime.save`)),1)],8,yt),_(`button`,{class:`aw-pill outline`,onClick:h[8]||=(...e)=>t(d)&&t(d)(...e)},a(t(i)(`settings.runtime.resetAll`)),1),_(`span`,bt,a(t(o).settingsPath),1)]),_(`h4`,xt,a(t(i)(`plugins.title`)),1),_(`p`,St,a(t(i)(`plugins.desc`)),1),m(ut),t(N).length?(f(),S(L,{key:2,"slot-name":`settings.plugins`})):b(``,!0)],512)),[[D,e.activeTab===`runtime`]])}}}),[[`__scopeId`,`data-v-6a6f35be`]]),{__name:`SettingsRuntimePane`}),wt={class:`section-title`},Tt={class:`section-desc`},Et={class:`aw-mono`},$={class:`identity-note`},Dt=Object.assign(B(d({__name:`SystemPane`,props:{activeTab:{}},setup(n){let{t:r,locale:i}=M(),o=j(),s=e().public,c=R(),l=String(s.primaryColor),u=h(()=>[{label:r(`home.fields.name`),value:o.name},{label:r(`home.fields.version`),value:`v${o.version}`},{label:r(`home.fields.mode`),value:o.mode},{label:r(`home.fields.apiBase`),value:`${o.apiBase} (${s.apiTimeout}ms)`},{label:r(`home.fields.primary`),value:l},{label:`i18n`,value:i.value}]);return(e,i)=>{let o=L,s=ne;return C((f(),v(`div`,null,[_(`h3`,wt,a(t(r)(`settings.systemTab`)),1),_(`p`,Tt,a(t(r)(`settings.systemDesc`)),1),m(s,{bordered:``,column:1,size:`small`},{default:x(()=>[(f(!0),v(y,null,p(t(u),e=>(f(),S(o,{key:e.label,label:e.label},{default:x(()=>[_(`span`,Et,a(e.value),1)]),_:2},1032,[`label`]))),128))]),_:1}),_(`p`,$,a(t(c).isLoggedIn?`${t(r)(`settings.identity`)}: ${t(c).user?.name} (${t(c).user?.role})`:t(r)(`settings.identityGuest`)),1)],512)),[[D,n.activeTab===`system`]])}}}),[[`__scopeId`,`data-v-4d2a2989`]]),{__name:`SettingsSystemPane`}),Ot={class:`settings-page`},kt={class:`aw-page-head`},At={class:`aw-kicker`},jt={class:`aw-stamp`},Mt={class:`settings-layout`},Nt={class:`settings-nav`},Pt=[`onClick`],Ft={class:`settings-body`},It=B(d({__name:`settings`,setup(e){let{t:r}=M(),i=j(),o=s(`appearance`),c=h(()=>[{key:`appearance`,icon:`i-tabler-palette`,label:r(`settings.theme`)},{key:`runtime`,icon:`i-tabler-settings`,label:r(`settings.runtimeTab`)},{key:`system`,icon:`i-tabler-server-2`,label:r(`settings.systemTab`)}]);return(e,s)=>{let l=I;return f(),v(`div`,Ot,[_(`div`,kt,[_(`div`,null,[_(`p`,At,a(t(r)(`menu.system`))+` / settings `,1),_(`h1`,null,a(t(r)(`settings.title`)),1)]),_(`span`,jt,`v`+a(t(i).version),1)]),m(l,{bordered:!1,class:`settings-card`},{default:x(()=>[_(`div`,Mt,[_(`div`,Nt,[(f(!0),v(y,null,p(t(c),e=>(f(),v(`button`,{key:e.key,class:n([`nav-item`,{active:t(o)===e.key}]),onClick:t=>o.value=e.key},[_(`span`,{class:n(e.icon)},null,2),_(`span`,null,a(e.label),1)],10,Pt))),128))]),_(`div`,Ft,[m(be,{"active-tab":t(o)},null,8,[`active-tab`]),m(Ct,{"active-tab":t(o)},null,8,[`active-tab`]),m(Dt,{"active-tab":t(o)},null,8,[`active-tab`])])])]),_:1})])}}}),[[`__scopeId`,`data-v-672ae7d7`]]);export{It as default};
@@ -1 +0,0 @@
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"./JgheoP3e.js";import{i,t as a}from"./Bl5dYv4m.js";import{r as o}from"./Du9v6qGB.js";var s=e({useDaqTemplateIconLabels:()=>c,useDaqTemplates:()=>l});function c(e){return{thermo:e(`daq.k422b8079`),pressure:e(`daq.k3x6ff080`),tension:e(`daq.k3z9xc081`),encoder:e(`daq.k3subk4082`),camera:e(`daq.k47atw083`),gateway:e(`daq.kz7yhbj084`)}}function l(e){let s=a(),c=t(!1),l=t(null),u=t(!1),d=t(``),f=t(``),p=t({name:``,ch:``,code:``,unit:``,min:0,max:100,base:50,amp:2,decimals:2,icon:`thermo`}),m=n(()=>s.templates.filter(e=>!e.builtin)),h=n(()=>s.templates.filter(e=>e.builtin));function g(t,n=!1){p.value.name=n?e(`daq.k2hbo3c126`,{p0:o(e,t)}):o(e,t),p.value.ch=t.ch,p.value.code=t.code,p.value.unit=t.unit,p.value.min=t.min,p.value.max=t.max,p.value.base=t.base,p.value.amp=t.amp,p.value.decimals=t.decimals,p.value.icon=t.icon}function _(){l.value=null,d.value=``,f.value=``,g({key:``,name:``,code:``,ch:``,unit:``,base:50,amp:2,min:0,max:100,decimals:2,icon:`thermo`})}function v(e){l.value=e.key,d.value=``,g(e)}function y(e){l.value=null,d.value=``,g(e,!0)}async function b(){u.value=!0,d.value=``;try{let e=e=>{let t=Number(e);return e===``||e==null||!Number.isFinite(t)?void 0:t},t=p.value,n={name:t.name.trim(),ch:t.ch.trim()||void 0,code:t.code.trim()||void 0,unit:t.unit.trim(),min:e(t.min),max:e(t.max),base:e(t.base),amp:e(t.amp),decimals:e(t.decimals),icon:t.icon};l.value?await s.updateTemplate(l.value,n):await s.createTemplate(n),_()}catch(e){d.value=r(e)}finally{u.value=!1}}async function x(e){if(f.value!==e.key){f.value=e.key;return}try{await s.removeTemplate(e.key)}catch(e){d.value=r(e)}finally{f.value=``}}return{tplOpen:c,tplEditing:l,tplSaving:u,tplError:d,confirmingDel:f,tplForm:p,iconChoices:i,customTpls:m,builtinTpls:h,resetTplForm:_,editTpl:v,copyTpl:y,saveTpl:b,askDelTpl:x}}export{l as n,s as r,c as t};
@@ -1 +0,0 @@
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"./DqtgGFEc.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"./Bl5dYv4m.js";import{t as L}from"./DxagrjB8.js";import{t as ne}from"./D6lZftfy.js";import{t as R}from"./LwIFGLgF.js";import{n as re,r as z,t as ie}from"./ChoLwR-s.js";import{t as ae}from"./csitHKnE2.js";import{t as oe}from"./1g9IT9Qh2.js";import{n as B,t as se}from"./BIOq3xqe2.js";import{t as ce}from"./B1RT9NTO2.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 +0,0 @@
1
- import{N as e,dt as t,mt as n,u as r}from"./CavpkQb0.js";import{Q as i,S as a,V as o,W as s,b as c,f as l,h as u,i as d,k as f,m as p,nt as m,p as h,y as g}from"./ByMj6e7s.js";import{d as _,u as v}from"./Dqz5HiXa.js";import{d as y}from"./Br3AySNQ.js";import{n as b}from"./DkpmSnHX.js";import{n as x}from"./Cnrmlixo.js";import{c as S,n as C}from"./wDPc4SSR.js";import{n as w,t as T}from"./CAaSPBqk.js";import{n as E,t as D}from"./B_9_BM9G.js";import{t as O}from"./CzlUIbK32.js";import{t as k}from"./CPeZNE4S2.js";import{t as A}from"./DzBbYWrw2.js";import{t as j}from"./BDNMzG2s2.js";import{t as M}from"./CNs_Ozdc.js";import{t as N}from"./DRpFsrno.js";import{t as P}from"./CiTQY_n32.js";var F={class:`auth-gate aw-orbs`},I={class:`sub`},L={class:`hint`},R={class:`hint`},z=Object.assign(j(a({__name:`AuthGate`,props:f({loading:{type:Boolean},needsSetup:{type:Boolean}},{activeTab:{required:!0},activeTabModifiers:{},name:{required:!0},nameModifiers:{},email:{required:!0},emailModifiers:{},password:{required:!0},passwordModifiers:{},tokenInput:{required:!0},tokenInputModifiers:{}}),emits:f([`register`,`login`,`loginWithToken`],[`update:activeTab`,`update:name`,`update:email`,`update:password`,`update:tokenInput`]),setup(e,{emit:t}){let r=t,a=i(e,`activeTab`),s=i(e,`name`),d=i(e,`email`),f=i(e,`password`),_=i(e,`tokenInput`),y=e=>{a.value=e};return(t,i)=>{let b=T,x=w,C=S,A=k,j=E,M=D,N=O;return o(),u(`div`,F,[c(N,{class:`auth-card`},{default:m(()=>[i[13]||=l(`p`,{class:`aw-kicker`},` agentworkshop / sign in `,-1),l(`h2`,null,n(e.needsSetup?t.$t(`wsHome.setupTitle`):t.$t(`wsHome.kr0vzqu008`)),1),l(`p`,I,n(e.needsSetup?t.$t(`wsHome.setupSub`):t.$t(`wsHome.normalSub`)),1),c(M,{"active-key":a.value,"onUpdate:activeKey":y},{default:m(()=>[e.needsSetup?p(``,!0):(o(),h(j,{key:`login`,tab:t.$t(`wsHome.tabLogin`)},{default:m(()=>[c(A,{direction:`vertical`,style:{width:`100%`}},{default:m(()=>[c(b,{value:d.value,"onUpdate:value":i[0]||=e=>d.value=e,type:`email`,placeholder:t.$t(`wsHome.k48h2c001`),onKeydown:i[1]||=v(e=>r(`login`),[`enter`])},null,8,[`value`,`placeholder`]),c(x,{value:f.value,"onUpdate:value":i[2]||=e=>f.value=e,placeholder:t.$t(`wsHome.k3yvgs002`),onKeydown:i[3]||=v(e=>r(`login`),[`enter`])},null,8,[`value`,`placeholder`]),c(C,{type:`primary`,block:``,loading:e.loading,onClick:i[4]||=e=>r(`login`)},{default:m(()=>[g(n(t.$t(`wsHome.k43kol009`)),1)]),_:1},8,[`loading`]),l(`p`,L,n(t.$t(`wsHome.k17x74cj010`)),1)]),_:1})]),_:1},8,[`tab`])),c(j,{key:`register`,tab:e.needsSetup?t.$t(`wsHome.tabRegAdmin`):t.$t(`wsHome.tabRegUser`)},{default:m(()=>[c(A,{direction:`vertical`,style:{width:`100%`}},{default:m(()=>[c(b,{value:s.value,"onUpdate:value":i[5]||=e=>s.value=e,placeholder:t.$t(`wsHome.kwgbai9003`)},null,8,[`value`,`placeholder`]),c(b,{value:d.value,"onUpdate:value":i[6]||=e=>d.value=e,type:`email`,placeholder:t.$t(`wsHome.kizjkbo004`)},null,8,[`value`,`placeholder`]),c(x,{value:f.value,"onUpdate:value":i[7]||=e=>f.value=e,placeholder:t.$t(`wsHome.kh3cqfn005`),onKeydown:i[8]||=v(e=>r(`register`),[`enter`])},null,8,[`value`,`placeholder`]),c(C,{type:`primary`,block:``,loading:e.loading,onClick:i[9]||=e=>r(`register`)},{default:m(()=>[g(n(e.needsSetup?t.$t(`wsHome.setupCta`):t.$t(`wsHome.k1so6a0v011`)),1)]),_:1},8,[`loading`]),l(`p`,R,n(t.$t(`wsHome.k1r0a4u3012`)),1)]),_:1})]),_:1},8,[`tab`]),e.needsSetup?p(``,!0):(o(),h(j,{key:`token`,tab:t.$t(`wsHome.tabToken`)},{default:m(()=>[c(A,{direction:`vertical`,style:{width:`100%`}},{default:m(()=>[c(x,{value:_.value,"onUpdate:value":i[10]||=e=>_.value=e,placeholder:t.$t(`wsHome.k15qunld006`),onKeydown:i[11]||=v(e=>r(`loginWithToken`),[`enter`])},null,8,[`value`,`placeholder`]),c(C,{type:`primary`,block:``,loading:e.loading,onClick:i[12]||=e=>r(`loginWithToken`)},{default:m(()=>[g(n(t.$t(`wsHome.k43kol009`)),1)]),_:1},8,[`loading`])]),_:1})]),_:1},8,[`tab`]))]),_:1},8,[`active-key`])]),_:1})])}}}),[[`__scopeId`,`data-v-d865d89f`]]),{__name:`WorkshopWorkbenchAuthGate`}),ee=Object.assign(a({__name:`CreateWorkspaceModal`,props:f({loading:{type:Boolean}},{open:{type:Boolean,required:!0},openModifiers:{},name:{required:!0},nameModifiers:{}}),emits:f([`ok`],[`update:open`,`update:name`]),setup(e,{emit:t}){let n=t,r=i(e,`open`),a=i(e,`name`);return(t,i)=>{let s=T,l=C;return o(),h(l,{open:r.value,"onUpdate:open":i[2]||=e=>r.value=e,title:t.$t(`wsHome.newWs`),"confirm-loading":e.loading,"ok-text":t.$t(`wsHome.createEnterOk`),"cancel-text":t.$t(`common.cancel`),onOk:i[3]||=e=>n(`ok`)},{default:m(()=>[c(s,{value:a.value,"onUpdate:value":i[0]||=e=>a.value=e,placeholder:t.$t(`wsHome.ksmpk8l007`),onKeydown:i[1]||=v(e=>n(`ok`),[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`open`,`title`,`confirm-loading`,`ok-text`,`cancel-text`])}}}),{__name:`WorkshopWorkbenchCreateWorkspaceModal`}),B={class:`aw-page-head`},V={class:`sub`},H={class:`head-acts`},U={class:`lib-links`},W=Object.assign(j(a({__name:`WorkbenchHead`,props:{userName:{}},emits:[`logout`,`newWorkspace`],setup(t,{emit:r}){let i=r;return(r,a)=>(o(),u(`div`,B,[l(`div`,null,[a[7]||=l(`p`,{class:`aw-kicker`},` workshop / overview `,-1),l(`h1`,null,`Workshop `+n(r.$t(`wsHome.k3n4m5c025`)),1),l(`p`,V,n(t.userName)+` `+n(r.$t(`wsHome.ke16e53026`)),1)]),l(`div`,H,[l(`div`,U,[l(`button`,{type:`button`,class:`lib-link`,onClick:a[0]||=t=>(`navigateTo`in r?r.navigateTo:e(y))(`/workshop/agents`)},n(r.$t(`wsHome.k3pa5h4013`)),1),l(`button`,{type:`button`,class:`lib-link`,onClick:a[1]||=t=>(`navigateTo`in r?r.navigateTo:e(y))(`/workshop/teams`)},n(r.$t(`wsHome.k3svl8y014`)),1),l(`button`,{type:`button`,class:`lib-link`,onClick:a[2]||=t=>(`navigateTo`in r?r.navigateTo:e(y))(`/workshop/channel-templates`)},` Channel `+n(r.$t(`wsHome.k41ds5027`)),1),l(`button`,{type:`button`,class:`lib-link`,onClick:a[3]||=t=>(`navigateTo`in r?r.navigateTo:e(y))(`/workshop/schedules`)},n(r.$t(`titles.schedules`)),1),l(`button`,{type:`button`,class:`lib-link`,onClick:a[4]||=t=>(`navigateTo`in r?r.navigateTo:e(y))(`/tokens`)},` API Token `),l(`button`,{type:`button`,class:`lib-link`,onClick:a[5]||=e=>i(`logout`)},n(r.$t(`wsHome.k484e7015`)),1)]),l(`button`,{class:`aw-pill im`,onClick:a[6]||=e=>i(`newWorkspace`)},[a[8]||=l(`span`,{class:`i-tabler-plus im-pop`},null,-1),g(` `+n(r.$t(`wsHome.newWs`)),1)])])]))}}),[[`__scopeId`,`data-v-3d87eadd`]]),{__name:`WorkshopWorkbenchHead`}),G={class:`card`},K={class:`card-head`},q={class:`name`},J={class:`card-body`},Y={class:`ch-name`},X={class:`ch-meta`},Z={key:0,class:`empty`},Q={class:`card-foot`},te=[`title`],$=Object.assign(j(a({__name:`WorkspaceCard`,props:{workspace:{},channels:{}},emits:[`open`,`remove`],setup(e,{emit:r}){let i=r;return(r,a)=>(o(),u(`div`,G,[l(`div`,K,[a[3]||=l(`span`,{class:`card-mark`},[l(`span`,{class:`i-tabler-box`})],-1),l(`span`,q,n(e.workspace.name),1)]),l(`div`,J,[(o(!0),u(d,null,s(e.channels,s=>(o(),u(`div`,{key:s.id,class:`ch-row`,onClick:a[0]||=t=>i(`open`,e.workspace.id)},[l(`span`,{class:t([`dot`,{live:s.activeTasks>0}])},null,2),l(`span`,Y,n(s.name),1),l(`span`,X,[s.synced?(o(),u(d,{key:0},[g(n(s.agents)+` `+n(r.$t(`wsHome.k1ggoa45028`))+` `+n(s.busy)+` / `+n(r.$t(`wsHome.k3wcox029`))+` `+n(s.activeTasks),1)],64)):(o(),u(d,{key:1},[g(n(r.$t(`wsHome.k1bst7s9016`)),1)],64))])]))),128)),e.workspace.channelIds.length===0?(o(),u(`div`,Z,n(r.$t(`wsHome.k1ylgrbc017`)),1)):p(``,!0)]),l(`div`,Q,[l(`button`,{class:`aw-pill outline im`,onClick:a[1]||=t=>i(`open`,e.workspace.id)},[a[4]||=l(`span`,{class:`i-tabler-arrow-right im-pop`},null,-1),g(` `+n(r.$t(`wsHome.kr1uwwi018`)),1)]),l(`button`,{class:`aw-ghost im`,title:r.$t(`wsHome.delWs`),onClick:a[2]||=_(t=>i(`remove`,e.workspace.id),[`stop`])},[...a[5]||=[l(`span`,{class:`i-tabler-trash im-shake`},null,-1)]],8,te)])]))}}),[[`__scopeId`,`data-v-9ddc0bdd`]]),{__name:`WorkshopWorkbenchWorkspaceCard`}),ne={class:`aw-empty-title`},re={class:`aw-empty-sub`},ie={class:`pill-btn ws-empty-cta`},ae=Object.assign(j(a({__name:`WorkspaceEmpty`,emits:[`create`],setup(e,{emit:t}){let r=t;return(e,t)=>(o(),u(`button`,{class:`ws-empty`,onClick:t[0]||=e=>r(`create`)},[t[2]||=l(`span`,{class:`i-tabler-layout-2 ws-empty-ico`},null,-1),l(`span`,ne,n(e.$t(`wsHome.emptyTitle`)),1),l(`span`,re,n(e.$t(`wsHome.emptySub`)),1),l(`span`,ie,[t[1]||=l(`span`,{class:`i-tabler-plus`},null,-1),g(` `+n(e.$t(`wsHome.emptyCta`)),1)])]))}}),[[`__scopeId`,`data-v-2cf5663d`]]),{__name:`WorkshopWorkbenchWorkspaceEmpty`}),oe={class:`page`},se={class:`grid`},ce=j(a({__name:`index`,setup(t){let{t:n}=x();M({layout:`default`});let{userStore:i,authTab:a,authName:f,authEmail:g,authPassword:_,authTokenInput:v,authLoading:S,needsSetup:C,doRegister:w,doLogin:T,doLoginWithToken:E,doLogout:D}=N(),{wsStore:O,ready:k,createOpen:j,createName:F,createLoading:I,create:L,remove:R,channelSummary:B}=P(),V=e=>{y(`/workshop/w/${e}`)};return b({title:()=>n(`titles.workshop`)}),(t,n)=>{let y=A;return o(),u(`div`,oe,[e(i).isLoggedIn?(o(),u(d,{key:1},[c(W,{"user-name":e(i).user?.name,onLogout:e(D),onNewWorkspace:n[5]||=e=>j.value=!0},null,8,[`user-name`,`onLogout`]),c(y,{spinning:!e(k)},{default:m(()=>[l(`div`,se,[(o(!0),u(d,null,s(e(O).workspaces,t=>(o(),h($,{key:t.id,workspace:t,channels:e(B)(t.channelIds),onOpen:V,onRemove:e(R)},null,8,[`workspace`,`channels`,`onRemove`]))),128)),e(O).workspaces.length===0&&e(k)?(o(),h(ae,{key:0,onCreate:n[6]||=e=>j.value=!0})):p(``,!0)])]),_:1},8,[`spinning`]),c(ee,{open:e(j),"onUpdate:open":n[7]||=e=>r(j)?j.value=e:null,name:e(F),"onUpdate:name":n[8]||=e=>r(F)?F.value=e:null,loading:e(I),onOk:e(L)},null,8,[`open`,`name`,`loading`,`onOk`])],64)):(o(),h(z,{key:0,"active-tab":e(a),"onUpdate:activeTab":n[0]||=e=>r(a)?a.value=e:null,name:e(f),"onUpdate:name":n[1]||=e=>r(f)?f.value=e:null,email:e(g),"onUpdate:email":n[2]||=e=>r(g)?g.value=e:null,password:e(_),"onUpdate:password":n[3]||=e=>r(_)?_.value=e:null,"token-input":e(v),"onUpdate:tokenInput":n[4]||=e=>r(v)?v.value=e:null,loading:e(S),"needs-setup":e(C),onRegister:e(w),onLogin:e(T),onLoginWithToken:e(E)},null,8,[`active-tab`,`name`,`email`,`password`,`token-input`,`loading`,`needs-setup`,`onRegister`,`onLogin`,`onLoginWithToken`]))])}}}),[[`__scopeId`,`data-v-9064698b`]]);export{ce as default};
@@ -1 +0,0 @@
1
- import{N as e,dt as t,mt as n,u as r}from"./CavpkQb0.js";import{Q as i,S as a,V as o,b as s,f as c,h as l,i as u,k as d,m as f,nt as p,p as m,y as h}from"./ByMj6e7s.js";import{u as g}from"./Dqz5HiXa.js";import{d as _}from"./Br3AySNQ.js";import{n as v}from"./DkpmSnHX.js";import{n as y}from"./Cnrmlixo.js";import{c as b,n as x}from"./wDPc4SSR.js";import{t as S}from"./CLySL7mW.js";import{t as C}from"./CAaSPBqk.js";import{t as w}from"./BmiMC_BC.js";import{t as T}from"./B2x8SKRO.js";import{t as E}from"./CzlUIbK32.js";import{t as D}from"./CPeZNE4S2.js";import{t as O}from"./DzBbYWrw2.js";import{t as k}from"./fxWyOzyp2.js";import{t as A}from"./BDNMzG2s2.js";import{t as j}from"./CNs_Ozdc.js";import{t as M}from"./CWzp2R6G.js";import{t as N}from"./OXtV_ukR.js";import{t as P}from"./Ck5oMvUk.js";import{n as F,t as I}from"./BITZvQBK.js";var L={class:`auth-gate`},R={class:`sub`},z=Object.assign(A(a({__name:`TokensAuthGate`,setup(t){return(t,r)=>{let i=b,a=E;return o(),l(`div`,L,[s(a,{class:`auth-card`},{default:p(()=>[c(`h2`,null,n(t.$t(`tokens.k1k6z0r8003`)),1),c(`p`,R,n(t.$t(`tokens.k1gjnree004`)),1),s(i,{type:`primary`,block:``,onClick:r[0]||=n=>(`navigateTo`in t?t.navigateTo:e(_))(`/workshop`)},{default:p(()=>[h(n(t.$t(`tokens.k1bhhheq005`)),1)]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-c5837c3a`]]),{__name:`TokensAuthGate`}),B={class:`aw-page-head`},V={class:`sub`},H=Object.assign(A(a({__name:`TokensPageHead`,props:{userName:{},hasCurrentToken:{type:Boolean}},emits:[`issue`],setup(e,{emit:t}){let r=t;function i(){r(`issue`)}return(t,r)=>{let a=w,u=b,d=D;return o(),l(`div`,B,[c(`div`,null,[r[0]||=c(`p`,{class:`aw-kicker`},` agentworkshop / api tokens `,-1),r[1]||=c(`h1`,null,`API Token`,-1),c(`p`,V,n(e.userName)+` · `+n(t.$t(`tokens.k1upppaw026`)),1)]),s(d,{class:`head-actions`},{default:p(()=>[e.hasCurrentToken?(o(),m(a,{key:0,color:`green`},{default:p(()=>[h(n(t.$t(`tokens.khcxmsc006`)),1)]),_:1})):f(``,!0),s(u,{type:`primary`,onClick:i},{default:p(()=>[r[2]||=c(`span`,{class:`i-tabler-plus`},null,-1),h(` `+n(t.$t(`chips.issue`)),1)]),_:1})]),_:1})])}}}),[[`__scopeId`,`data-v-89df18b9`]]),{__name:`TokensPageHead`}),U={class:`font-medium`},W={key:1,class:`tok-cell`},G=[`title`],K=Object.assign(A(a({__name:`TokensTable`,props:{rows:{},loading:{type:Boolean},currentTokenId:{},revealedPlain:{},revealingId:{},copyId:{}},emits:[`rename`,`revoke`,`reveal`,`copy`],setup(e,{emit:r}){let i=e,a=r,{t:d}=y(),g=e=>I(i.revealedPlain,e),_=e=>g(e.id)?i.revealedPlain[e.id]:e.preview??`ut-${`•`.repeat(14)}`,v=e=>e?e.replace(`T`,` `).slice(0,19):`-`,x=[{title:d(`tokens.k41416002`),key:`label`,dataIndex:`label`},{title:`Token`,key:`token`,width:360},{title:d(`tokens.k1bg95gk023`),key:`createdAt`,dataIndex:`createdAt`,width:170},{title:d(`tokens.k1euotul024`),key:`lastUsedAt`,dataIndex:`lastUsedAt`,width:200},{title:d(`tokens.k40aa6025`),key:`action`,width:170}];return(r,i)=>{let d=w,y=D,C=b,k=T,A=S,j=O,M=E;return o(),m(M,{bordered:!1,class:`table-card`},{default:p(()=>[s(j,{spinning:e.loading},{default:p(()=>[s(A,{columns:x,"data-source":e.rows,pagination:!1,"row-key":`id`},{bodyCell:p(({column:b,record:x})=>[b.key===`label`?(o(),m(y,{key:0},{default:p(()=>[i[0]||=c(`span`,{class:`i-tabler-key text-primary`},null,-1),c(`span`,U,n(x.label||r.$t(`tokens.kj3mklm028`)),1),x.id===e.currentTokenId?(o(),m(d,{key:0,color:`green`},{default:p(()=>[h(n(r.$t(`tokens.k1defr98007`)),1)]),_:1})):f(``,!0)]),_:2},1024)):b.key===`token`?(o(),l(`div`,W,[c(`code`,{class:t([`tok-val`,{revealed:g(x.id)}]),title:g(x.id)?r.$t(`tokens.maskBackTip`):r.$t(`tokens.maskPreview`)},n(_(x)),11,G),x.hasPlain?(o(),m(C,{key:0,type:`text`,size:`small`,class:`tok-op`,loading:e.revealingId===x.id,title:g(x.id)?r.$t(`tokens.maskBack`):r.$t(`tokens.revealPlain`),onClick:e=>a(`reveal`,x)},{default:p(()=>[c(`span`,{class:t(g(x.id)?`i-tabler-eye-off`:`i-tabler-eye`)},null,2)]),_:2},1032,[`loading`,`title`,`onClick`])):f(``,!0),x.hasPlain?(o(),m(C,{key:1,type:`text`,size:`small`,class:t([`tok-op`,{ok:e.copyId===x.id}]),title:e.copyId===x.id?r.$t(`tokens.copied`):r.$t(`tokens.copyPlain`),onClick:e=>a(`copy`,x)},{default:p(()=>[c(`span`,{class:t(e.copyId===x.id?`i-tabler-check`:`i-tabler-copy`)},null,2)]),_:2},1032,[`class`,`title`,`onClick`])):f(``,!0)])):b.key===`createdAt`?(o(),l(u,{key:2},[h(n(v(x.createdAt)),1)],64)):b.key===`lastUsedAt`?(o(),l(u,{key:3},[h(n(v(x.lastUsedAt)),1)],64)):b.key===`action`?(o(),m(y,{key:4},{default:p(()=>[s(C,{type:`link`,size:`small`,onClick:e=>a(`rename`,x)},{default:p(()=>[i[1]||=c(`span`,{class:`i-tabler-edit`},null,-1),h(` `+n(r.$t(`tokens.k3vrpcs009`)),1)]),_:1},8,[`onClick`]),s(k,{title:x.id===e.currentTokenId?r.$t(`tokens.revokeCurrentWarn`):r.$t(`tokens.revokeWarn`),"ok-text":r.$t(`common.revoke`),"cancel-text":r.$t(`common.cancel`),onConfirm:e=>a(`revoke`,x)},{default:p(()=>[s(C,{type:`text`,size:`small`,class:`tok-revoke`},{default:p(()=>[i[2]||=c(`span`,{class:`i-tabler-trash`},null,-1),h(` `+n(r.$t(`tokens.k3xmrz010`)),1)]),_:1})]),_:1},8,[`title`,`ok-text`,`cancel-text`,`onConfirm`])]),_:2},1024)):f(``,!0)]),_:1},8,[`data-source`])]),_:1},8,[`spinning`])]),_:1})}}}),[[`__scopeId`,`data-v-be049dc0`]]),{__name:`TokensTable`}),q=Object.assign(a({__name:`TokenCreateModal`,props:d({loading:{type:Boolean}},{open:{type:Boolean,required:!0},openModifiers:{},label:{required:!0},labelModifiers:{}}),emits:d([`submit`],[`update:open`,`update:label`]),setup(e,{emit:t}){let n=t,r=i(e,`open`),a=i(e,`label`);function c(){n(`submit`)}return(t,n)=>{let i=C,l=x;return o(),m(l,{open:r.value,"onUpdate:open":n[1]||=e=>r.value=e,title:t.$t(`chips.issueTitle`),"confirm-loading":e.loading,"ok-text":t.$t(`common.create`),"cancel-text":t.$t(`common.cancel`),onOk:c},{default:p(()=>[s(i,{value:a.value,"onUpdate:value":n[0]||=e=>a.value=e,placeholder:t.$t(`tokens.k1hlqknl001`),onKeydown:g(c,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`open`,`title`,`confirm-loading`,`ok-text`,`cancel-text`])}}}),{__name:`TokensTokenCreateModal`}),J={class:`once-banner`},Y={class:`raw-row`},X={class:`raw`},Z=[`title`],Q=[`title`],$={class:`once-meta`},ee=Object.assign(A(a({__name:`TokenOnceModal`,props:{open:{type:Boolean},raw:{},masked:{},revealed:{type:Boolean},copied:{type:Boolean},label:{}},emits:[`toggle`,`copy`,`dismiss`],setup(e,{emit:r}){let i=r;function a(){i(`toggle`)}function l(){i(`copy`)}function u(){i(`dismiss`)}return(r,i)=>{let d=b,f=x;return o(),m(f,{open:e.open,title:r.$t(`tokens.createdTitle`),footer:null,"mask-closable":!1,onCancel:u,onAfterClose:u},{default:p(()=>[c(`div`,J,[i[0]||=c(`span`,{class:`i-tabler-circle-check`},null,-1),c(`span`,null,n(r.$t(`tokens.k12149oy011`)),1)]),c(`div`,Y,[c(`code`,X,n(e.revealed?e.raw:e.masked),1),c(`button`,{class:`raw-op`,title:e.revealed?r.$t(`tokens.hidePlain`):r.$t(`tokens.showPlain`),onClick:a},[c(`span`,{class:t(e.revealed?`i-tabler-eye-off`:`i-tabler-eye`)},null,2)],8,Z),c(`button`,{class:t([`raw-op`,{ok:e.copied}]),title:e.copied?r.$t(`tokens.copied`):r.$t(`tokens.copy`),onClick:l},[c(`span`,{class:t(e.copied?`i-tabler-check`:`i-tabler-copy`)},null,2)],10,Q)]),c(`div`,$,[c(`span`,null,n(r.$t(`tokens.k3p0p44027`))+n(e.label||r.$t(`tokens.kj3mklm028`)),1),c(`span`,null,n(r.$t(`tokens.usage`)),1)]),s(d,{type:`primary`,block:``,onClick:u},{default:p(()=>[h(n(r.$t(`tokens.k1s5f5zd012`)),1)]),_:1})]),_:1},8,[`open`,`title`])}}}),[[`__scopeId`,`data-v-90307f67`]]),{__name:`TokensTokenOnceModal`}),te=Object.assign(a({__name:`TokenRenameModal`,props:d({loading:{type:Boolean}},{open:{type:Boolean,required:!0},openModifiers:{},label:{required:!0},labelModifiers:{}}),emits:d([`submit`],[`update:open`,`update:label`]),setup(e,{emit:t}){let n=t,r=i(e,`open`),a=i(e,`label`);function c(){n(`submit`)}return(t,n)=>{let i=C,l=x;return o(),m(l,{open:r.value,"onUpdate:open":n[1]||=e=>r.value=e,title:t.$t(`tokens.renameTitle`),"confirm-loading":e.loading,"ok-text":t.$t(`common.save`),"cancel-text":t.$t(`common.cancel`),onOk:c},{default:p(()=>[s(i,{value:a.value,"onUpdate:value":n[0]||=e=>a.value=e,placeholder:t.$t(`tokens.k41416002`),onKeydown:g(c,[`enter`])},null,8,[`value`,`placeholder`])]),_:1},8,[`open`,`title`,`confirm-loading`,`ok-text`,`cancel-text`])}}}),{__name:`TokensTokenRenameModal`}),ne={class:`page`},re=A(a({__name:`tokens`,setup(t){let{t:n}=y();j({layout:`default`});let i=k(),{tokens:a,loading:c,load:d,doRevoke:f}=M(),{revealedPlain:p,revealingId:h,copyId:g,toggleRowReveal:_,copyRow:b}=F(),{createOpen:x,createLabel:S,createLoading:C,createdRaw:w,lastCreatedLabel:T,masked:E,revealed:D,copied:O,doCreate:A,toggleReveal:I,copyCreated:L,dismissCreated:R}=N({onCreated:d}),{renameOpen:B,renameLabel:V,renameLoading:U,openRename:W,doRename:G}=P({onRenamed:d});return v({title:()=>n(`titles.tokens`)}),(t,n)=>(o(),l(`div`,ne,[e(i).isLoggedIn?(o(),l(u,{key:1},[s(H,{"user-name":e(i).user?.name,"has-current-token":!!e(i).user?.tokenId,onIssue:n[0]||=e=>x.value=!0},null,8,[`user-name`,`has-current-token`]),s(K,{rows:e(a),loading:e(c),"current-token-id":e(i).user?.tokenId,"revealed-plain":e(p),"revealing-id":e(h),"copy-id":e(g),onRename:e(W),onRevoke:e(f),onReveal:e(_),onCopy:e(b)},null,8,[`rows`,`loading`,`current-token-id`,`revealed-plain`,`revealing-id`,`copy-id`,`onRename`,`onRevoke`,`onReveal`,`onCopy`]),s(q,{open:e(x),"onUpdate:open":n[1]||=e=>r(x)?x.value=e:null,label:e(S),"onUpdate:label":n[2]||=e=>r(S)?S.value=e:null,loading:e(C),onSubmit:e(A)},null,8,[`open`,`label`,`loading`,`onSubmit`]),s(ee,{open:e(w)!==``,raw:e(w),masked:e(E),revealed:e(D),copied:e(O),label:e(T),onToggle:e(I),onCopy:e(L),onDismiss:e(R)},null,8,[`open`,`raw`,`masked`,`revealed`,`copied`,`label`,`onToggle`,`onCopy`,`onDismiss`]),s(te,{open:e(B),"onUpdate:open":n[3]||=e=>r(B)?B.value=e:null,label:e(V),"onUpdate:label":n[4]||=e=>r(V)?V.value=e:null,loading:e(U),onSubmit:e(G)},null,8,[`open`,`label`,`loading`,`onSubmit`])],64)):(o(),m(z,{key:0}))]))}}),[[`__scopeId`,`data-v-3e16224b`]]);export{re as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./DK3Fl9T5.js";import{g as t,v as n}from"./CavpkQb0.js";import{n as r}from"./Cnrmlixo.js";import{t as i}from"./JgheoP3e.js";import{t as a}from"./DxagrjB8.js";var o=e({useDcwRecipes:()=>s});function s(e,o,s,c){let{t:l}=r(),u=a(),{lineNodes:d,lineProducts:f}=e,{filterProductId:p}=o,{lineProductId:m}=s,{writeError:h}=c,g=n(!1),_=n(null),v=n([]),y=n(!1),b=n(``);async function x(e){_.value=u.recipes.find(t=>t.id===e)??null,g.value=!0,b.value=``,y.value=!0;try{v.value=await u.recipeVersions(e)}catch(e){b.value=i(e)}finally{y.value=!1}}let S=e=>e===`agent`?`Agent`:l(e===`system`?`dcwDetail.srcSystem`:`dcwDetail.srcUser`);function C(e,t){if(t===0)return l(`dcwDetail.histInit`);let n=v.value[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})=>`${u.nodes.find(t=>t.id===e.nodeId)?.name??e.nodeId}: ${t?.value??l(`dcwDetail.histAdded`)} → ${e.value}`);return r.length>0?r.join(`;`):l(`dcwDetail.histNoChange`)}async function w(e){if(_.value){b.value=``;try{let t=await u.revertRecipe(_.value.id,{version:e,reason:l(`dcwDetail.revertReasonUi`)});b.value=l(`dcwDetail.revertOk`,{p0:t.version??0}),v.value=await u.recipeVersions(_.value.id)}catch(e){b.value=i(e)}}}let T=n(!1),E=n(null),D=n(!1),O=n(``),k=n(``),A=t({productId:``,name:``,description:``,params:[],daqWindows:[]}),j=n(null),M=n(null),N=n(!1);function P(){E.value=null,O.value=``,A.productId=p.value||m.value||f.value[0]?.id||``,A.name=``,A.description=``,A.params=[{nodeId:d.value[0]?.id??``,value:``,min:``,max:``}],A.daqWindows=[],T.value=!0}function F(e){let t=u.recipes.find(t=>t.id===e);if(!t)return;E.value=e,O.value=``;let n=t.params.filter(e=>u.nodes.some(t=>t.id===e.nodeId)),r=t.params.length-n.length;k.value=r>0?l(`dcwDetail.staleDropped`,{p0:r}):``,A.productId=t.productId,A.name=t.name,A.description=t.description,A.params=n.map(e=>({nodeId:e.nodeId,value:e.value,min:e.min??``,max:e.max??``})),A.daqWindows=(t.daqWindows??[]).map(e=>({nodeId:e.nodeId,min:e.min??``,max:e.max??``})),T.value=!0}async function I(){D.value=!0,O.value=``;try{let e={productId:A.productId,name:A.name.trim(),description:A.description.trim(),params:A.params.filter(e=>e.nodeId&&e.value!==``&&Number.isFinite(Number(e.value))).map(e=>({nodeId:e.nodeId,value:Number(e.value),...e.min!==``&&Number.isFinite(Number(e.min))?{min:Number(e.min)}:{},...e.max!==``&&Number.isFinite(Number(e.max))?{max:Number(e.max)}:{}})),daqWindows:A.daqWindows.filter(e=>e.nodeId&&(e.min!==``||e.max!==``)).map(e=>({nodeId:e.nodeId,...e.min!==``&&Number.isFinite(Number(e.min))?{min:Number(e.min)}:{},...e.max!==``&&Number.isFinite(Number(e.max))?{max:Number(e.max)}:{}}))};E.value?await u.updateRecipe(E.value,e):await u.createRecipe(e),T.value=!1}catch(e){O.value=i(e)}finally{D.value=!1}}async function L(e){j.value=null,h.value=``;try{let t=await u.applyRecipe(e),n=t.results.filter(e=>e.ok).length;j.value={runId:t.id,ok:n,total:t.results.length},n<t.results.length&&(h.value=l(`dcwDetail.ks7szkt188`,{p0:t.results.filter(e=>!e.ok).map(e=>e.message).join(`;`)}))}catch(e){h.value=i(e)}}async function R(e){N.value=!0;try{let t=await u.runData(e);M.value={runId:e,data:t}}catch(e){h.value=i(e)}finally{N.value=!1}}return{verOpen:g,verRecipe:_,verRows:v,verLoading:y,verMsg:b,verSrcLabel:S,verDiff:C,openRecipeHistory:x,doRevert:w,recipeOpen:T,recipeEditing:E,recipeSaving:D,recipeError:O,recipeStaleNote:k,recipeForm:A,applyResult:j,runDataView:M,runDataLoading:N,openRecipeCreate:P,openRecipeEdit:F,saveRecipe:I,doApplyRecipe:L,doViewRun:R}}export{o as n,s as t};
@@ -1 +0,0 @@
1
- import{G as e,S as t,V as n,h as r}from"./ByMj6e7s.js";import{t as i}from"./DlUQa0wn2.js";var a={class:`town-layout`},o=t({__name:`town`,setup(t){return i(),(t,i)=>(n(),r(`div`,a,[e(t.$slots,`default`)]))}});export{o as default};
@@ -1 +0,0 @@
1
- import{N as e,dt as t,mt as n,u as r,v as i}from"./CavpkQb0.js";import{Q as a,S as o,V as s,W as c,b as l,f as u,h as d,i as f,k as p,m,nt as h,p as ee,rt as g,y as _}from"./ByMj6e7s.js";import{c as v,d as y,o as b,s as x}from"./Dqz5HiXa.js";import{t as S}from"./Cmp8PMrA.js";import{n as C}from"./Cnrmlixo.js";import{t as w}from"./BDNMzG2s2.js";import{t as T}from"./CNs_Ozdc.js";import{r as E}from"./CMXcOb6W.js";import{t as D}from"./qOlYoGLf.js";import{t as O}from"./C4WhK2wq.js";import{t as k}from"./BcQXL8pb.js";import{t as A}from"./bg2adfck.js";var j={class:`col-live`},M={class:`aw-tile value-card`},N={class:`aw-kicker`},P={class:`big-val mono`},F={class:`facts mono`},te=Object.assign(w(o({__name:`DaqDetailLiveCard`,props:p({node:{},tpl:{},boundDeviceName:{},defaultIntervalMs:{},defaultPublishMs:{},driverPlanned:{type:Function}},{canvasEl:{required:!0},canvasElModifiers:{}}),emits:[`update:canvasEl`],setup(e){let t=e,{t:r}=C(),i=a(e,`canvasEl`);function o(e){return e==null?r(`daqDetail.k9vnp9h053`,{p0:t.defaultPublishMs}):e===0?r(`daqDetail.k1m1zwux030`):`${e}ms`}return(t,r)=>(s(),d(`section`,j,[u(`div`,M,[u(`p`,N,n(t.$t(`daqDetail.k1fx2vik032`))+` `+n(e.tpl?.ch??`-`),1),u(`div`,P,[_(n(e.node.value==null?`--`:e.node.value.toFixed(e.node.decimals)),1),u(`small`,null,n(e.node.unit),1)]),u(`canvas`,{ref_key:`canvasEl`,ref:i,class:`live-canvas`},null,512),u(`dl`,F,[u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k4a0la003`)),1),u(`dd`,null,n(e.node.driver)+n(e.driverPlanned(e.node.driver)?t.$t(`daqDetail.kz8zr9v035`):``),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k3xg3w004`)),1),u(`dd`,null,n(e.node.intervalMs??t.$t(`daqDetail.k9vnp9h053`,{p0:e.defaultIntervalMs})),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k3w6td005`)),1),u(`dd`,null,n(o(e.node.publishIntervalMs)),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k3x5tpx006`)),1),u(`dd`,null,n(e.node.warnLow??`-∞`)+` ~ `+n(e.node.warnHigh??`+∞`),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k1hjj0jf007`)),1),u(`dd`,null,n(e.node.min)+` ~ `+n(e.node.max),1)]),u(`div`,null,[u(`dt`,null,n(t.$t(`daqDetail.k1i8rtqt008`)),1),u(`dd`,null,n(e.boundDeviceName||t.$t(`daqDetail.k3own4q036`)),1)])])])]))}}),[[`__scopeId`,`data-v-9907b94c`]]),{__name:`DaqDetailLiveCard`}),I={class:`col-form aw-tile pad`},L={class:`sec`},R={class:`field`},z={class:`field`},B={value:``},V=[`value`],H={class:`field`},U=[`value`,`disabled`],W={class:`field row`},G=[`disabled`],K={class:`field row`},q=[`title`],J=[`disabled`,`title`],Y=[`disabled`,`title`],X={class:`field row`},Z=[`disabled`],Q={class:`field`},ne={class:`field`},re={class:`field-row`},ie={class:`field`},ae={class:`field`},oe={class:`field`},se={class:`field`},ce=[`disabled`],le={class:`sec mt`},ue={class:`driver-grid`},de={key:0},fe=[`onUpdate:modelValue`],pe=[`value`],me=[`onUpdate:modelValue`,`type`,`placeholder`],he={class:`test-row`},ge=[`disabled`],_e={class:`sec mt`},ve={class:`bind-row`},ye={value:``},be=[`value`],xe=Object.assign(w(o({__name:`DaqDetailParamForm`,props:p({lines:{},driverCatalog:{},driverFields:{},saving:{type:Boolean},testing:{type:Boolean},testResult:{},boundDeviceName:{},availableDevices:{}},{form:{required:!0},formModifiers:{},driverCfg:{required:!0},driverCfgModifiers:{},bindDeviceId:{required:!0},bindDeviceIdModifiers:{}}),emits:p([`save`,`test`,`bind-toggle`],[`update:form`,`update:driverCfg`,`update:bindDeviceId`]),setup(e,{emit:r}){let i=r,o=a(e,`form`),l=a(e,`driverCfg`),p=a(e,`bindDeviceId`);return(r,a)=>(s(),d(`section`,I,[u(`h3`,L,n(r.$t(`daqDetail.kd9d69j009`)),1),u(`form`,{class:`form-grid`,onSubmit:a[17]||=y(e=>i(`save`),[`prevent`])},[u(`label`,R,[u(`span`,null,n(r.$t(`daqDetail.k1iw7tbf010`)),1),u(`button`,{type:`button`,class:t([`toggle`,{on:o.value.enabled}]),onClick:a[0]||=e=>o.value.enabled=!o.value.enabled},n(o.value.enabled?r.$t(`daqDetail.k3w3j8f037`):r.$t(`daqDetail.k3n5aaj045`)),3)]),u(`label`,z,[u(`span`,null,n(r.$t(`daqDetail.k12k23od011`)),1),g(u(`select`,{"onUpdate:modelValue":a[1]||=e=>o.value.lineId=e,class:`input`},[u(`option`,B,n(r.$t(`daqDetail.k3ootr6012`)),1),(s(!0),d(f,null,c(e.lines,e=>(s(),d(`option`,{key:e.id,value:e.id},n(e.name),9,V))),128))],512),[[x,o.value.lineId]])]),u(`label`,H,[u(`span`,null,n(r.$t(`daqDetail.k1l6smxo013`)),1),g(u(`select`,{"onUpdate:modelValue":a[2]||=e=>o.value.driver=e,class:`input`},[(s(!0),d(f,null,c(e.driverCatalog,e=>(s(),d(`option`,{key:e.kind,value:e.kind,disabled:e.status===`planned`},n(e.label)+n(e.plugin?` ⌁`:``)+n(e.status===`planned`?r.$t(`daqDetail.kz8zr9v035`):``),9,U))),128))],512),[[x,o.value.driver]])]),u(`label`,W,[u(`button`,{type:`button`,class:t([`toggle slim`,{on:o.value.followGlobal}]),onClick:a[3]||=e=>o.value.followGlobal=!o.value.followGlobal},n(o.value.followGlobal?r.$t(`daqDetail.k1k2ueyq038`):r.$t(`daqDetail.k1cgi8fy046`)),3),g(u(`input`,{"onUpdate:modelValue":a[4]||=e=>o.value.intervalMs=e,type:`number`,min:`1000`,max:`60000`,step:`500`,class:`input`,disabled:o.value.followGlobal},null,8,G),[[v,o.value.intervalMs,void 0,{number:!0}]]),a[21]||=u(`small`,null,`ms`,-1)]),u(`label`,K,[u(`button`,{type:`button`,class:t([`toggle slim`,{on:o.value.calKind===`linear`}]),title:r.$t(`daqDetail.calDecoderTip`),onClick:a[5]||=e=>o.value.calKind=o.value.calKind===`linear`?`none`:`linear`},n(o.value.calKind===`linear`?r.$t(`daqDetail.k1eru4r1039`):r.$t(`daqDetail.k3oktae047`)),11,q),g(u(`input`,{"onUpdate:modelValue":a[6]||=e=>o.value.calScale=e,type:`number`,step:`0.1`,class:`input`,disabled:o.value.calKind!==`linear`,title:r.$t(`daqDetail.calScaleTip`)},null,8,J),[[v,o.value.calScale,void 0,{number:!0}]]),g(u(`input`,{"onUpdate:modelValue":a[7]||=e=>o.value.calOffset=e,type:`number`,step:`0.1`,class:`input`,disabled:o.value.calKind!==`linear`,title:r.$t(`daqDetail.calOffsetTip`)},null,8,Y),[[v,o.value.calOffset,void 0,{number:!0}]]),a[22]||=u(`small`,null,`decoder`,-1)]),u(`label`,X,[u(`button`,{type:`button`,class:t([`toggle slim`,{on:o.value.publishFollow}]),onClick:a[8]||=e=>o.value.publishFollow=!o.value.publishFollow},n(o.value.publishFollow?r.$t(`daqDetail.k1k2t5o7040`):r.$t(`daqDetail.k1cggz5f048`)),3),u(`span`,{class:t([`toggle slim`,{on:o.value.publishEveryFrame}]),style:{cursor:`pointer`},onClick:a[9]||=e=>o.value.publishEveryFrame=!o.value.publishEveryFrame},n(o.value.publishEveryFrame?r.$t(`daqDetail.k41mvv041`):r.$t(`daqDetail.k3n42dj049`)),3),g(u(`input`,{"onUpdate:modelValue":a[10]||=e=>o.value.publishMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,class:`input`,disabled:o.value.publishFollow||o.value.publishEveryFrame},null,8,Z),[[v,o.value.publishMs,void 0,{number:!0}]]),a[23]||=u(`small`,null,`ms`,-1)]),u(`label`,Q,[u(`span`,null,n(r.$t(`daqDetail.k3x4ef014`)),1),g(u(`input`,{"onUpdate:modelValue":a[11]||=e=>o.value.unit=e,class:`input`},null,512),[[v,o.value.unit]])]),u(`label`,ne,[u(`span`,null,n(r.$t(`daqDetail.k3mxmcx015`)),1),g(u(`input`,{"onUpdate:modelValue":a[12]||=e=>o.value.decimals=e,type:`number`,min:`0`,max:`6`,class:`input`},null,512),[[v,o.value.decimals,void 0,{number:!0}]])]),u(`div`,re,[u(`label`,ie,[u(`span`,null,n(r.$t(`daqDetail.k1l9jv5m016`)),1),g(u(`input`,{"onUpdate:modelValue":a[13]||=e=>o.value.min=e,type:`number`,step:`any`,class:`input`},null,512),[[v,o.value.min,void 0,{number:!0}]])]),u(`label`,ae,[u(`span`,null,n(r.$t(`daqDetail.k1md63hm017`)),1),g(u(`input`,{"onUpdate:modelValue":a[14]||=e=>o.value.warnLow=e,type:`number`,step:`any`,class:`input`},null,512),[[v,o.value.warnLow,void 0,{number:!0}]])]),u(`label`,oe,[u(`span`,null,n(r.$t(`daqDetail.k1md63gp018`)),1),g(u(`input`,{"onUpdate:modelValue":a[15]||=e=>o.value.warnHigh=e,type:`number`,step:`any`,class:`input`},null,512),[[v,o.value.warnHigh,void 0,{number:!0}]])]),u(`label`,se,[u(`span`,null,n(r.$t(`daqDetail.k1l9jv4p019`)),1),g(u(`input`,{"onUpdate:modelValue":a[16]||=e=>o.value.max=e,type:`number`,step:`any`,class:`input`},null,512),[[v,o.value.max,void 0,{number:!0}]])])]),u(`button`,{class:`aw-pill`,type:`submit`,disabled:e.saving},n(e.saving?r.$t(`daqDetail.k1as0g50042`):r.$t(`daqDetail.ksn9cgo050`)),9,ce)],32),e.driverFields.length?(s(),d(f,{key:0},[u(`h3`,le,n(r.$t(`daqDetail.k1p9gioa033`))+` `+n(e.driverCatalog.find(e=>e.kind===o.value.driver)?.label),1),u(`div`,ue,[(s(!0),d(f,null,c(e.driverFields,e=>(s(),d(`label`,{key:e.key,class:`field`},[u(`span`,null,[_(n(e.label),1),e.required?(s(),d(`em`,de,`*`)):m(``,!0)]),e.type===`select`?g((s(),d(`select`,{key:0,"onUpdate:modelValue":t=>l.value[e.key]=t,class:`input`},[(s(!0),d(f,null,c(e.options,e=>(s(),d(`option`,{key:e.value,value:e.value},n(e.label),9,pe))),128))],8,fe)),[[x,l.value[e.key]]]):g((s(),d(`input`,{key:1,"onUpdate:modelValue":t=>l.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`input`},null,8,me)),[[b,l.value[e.key]]])]))),128))]),u(`div`,he,[u(`button`,{class:`pill-btn`,disabled:e.testing,onClick:a[18]||=e=>i(`test`)},n(e.testing?r.$t(`daqDetail.k1fsh720043`):r.$t(`daqDetail.k1fstglk051`)),9,ge),e.testResult?(s(),d(`span`,{key:0,class:t([`test-out mono`,e.testResult.ok?`ok`:`bad`])},n(e.testResult.ok?`✓`:`✗`)+` `+n(e.testResult.message),3)):m(``,!0)])],64)):m(``,!0),u(`h3`,_e,n(r.$t(`daqDetail.k1ie6qju020`)),1),u(`div`,ve,[g(u(`select`,{"onUpdate:modelValue":a[19]||=e=>p.value=e,class:`input grow`},[u(`option`,ye,n(r.$t(`daqDetail.kjobzu3021`)),1),(s(!0),d(f,null,c(e.availableDevices,e=>(s(),d(`option`,{key:e.id,value:e.id},n(e.name),9,be))),128))],512),[[x,p.value]]),u(`button`,{class:`pill-btn`,onClick:a[20]||=e=>i(`bind-toggle`)},n(e.boundDeviceName?r.$t(`daqDetail.k479eh044`):r.$t(`daqDetail.k452a8052`)),1)])]))}}),[[`__scopeId`,`data-v-31c02365`]]),{__name:`DaqDetailParamForm`}),Se={class:`col-hist aw-tile pad`},Ce={class:`hist-hd`},we={class:`sec`},Te={class:`hist-ctl mono`},Ee=[`value`],De=[`title`],Oe=[`placeholder`],ke={class:`raw-table mono`},Ae=Object.assign(w(o({__name:`DaqDetailHistoryCard`,props:p({tsdb:{},buckets:{},historyPoints:{},decimals:{},minQueryMs:{},defaultQueryMs:{}},{bucketMs:{required:!0},bucketMsModifiers:{},refreshOverrideMs:{required:!0},refreshOverrideMsModifiers:{},canvasEl:{required:!0},canvasElModifiers:{}}),emits:p([`reload`],[`update:bucketMs`,`update:refreshOverrideMs`,`update:canvasEl`]),setup(e,{emit:t}){let r=t,i=a(e,`bucketMs`),o=a(e,`refreshOverrideMs`),l=a(e,`canvasEl`);return(t,a)=>(s(),d(`section`,Se,[u(`div`,Ce,[u(`h3`,we,n(t.$t(`daqDetail.k1i535i5034`))+n(e.tsdb)+`) `,1),u(`div`,Te,[g(u(`select`,{"onUpdate:modelValue":a[0]||=e=>i.value=e,class:`input`},[(s(!0),d(f,null,c(e.buckets,e=>(s(),d(`option`,{key:e.ms,value:e.ms},n(e.label),9,Ee))),128))],512),[[x,i.value,void 0,{number:!0}]]),u(`label`,{class:`refresh-ctl`,title:t.$t(`daqDetail.k1rfrshint001`,{p0:e.minQueryMs})},[a[3]||=u(`span`,{class:`i-tabler-refresh`},null,-1),g(u(`input`,{"onUpdate:modelValue":a[1]||=e=>o.value=e,type:`number`,min:0,max:`600000`,step:`500`,placeholder:String(e.defaultQueryMs)},null,8,Oe),[[v,o.value,void 0,{number:!0}]]),a[4]||=_(`ms `,-1)],8,De),u(`button`,{class:`pill-btn`,onClick:a[2]||=e=>r(`reload`)},n(t.$t(`daqDetail.k3x1jg022`)),1)])]),u(`canvas`,{ref_key:`canvasEl`,ref:l,class:`hist-canvas`},null,512),u(`table`,ke,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,n(t.$t(`daqDetail.k40vsf023`)),1),u(`th`,null,n(t.$t(`daqDetail.k48v5024`)),1),u(`th`,null,n(t.$t(`daqDetail.k4bza025`)),1)])]),u(`tbody`,null,[(s(!0),d(f,null,c(e.historyPoints.filter(e=>e.value!=null).slice(-12).reverse(),(t,r)=>(s(),d(`tr`,{key:r},[u(`td`,null,n(new Date(t.at).toLocaleTimeString(`zh-CN`,{hour12:!1})),1),u(`td`,null,n(t.value.toFixed(e.decimals??2)),1),u(`td`,null,n(t.state),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-a8ca3b3b`]]),{__name:`DaqDetailHistoryCard`}),je={class:`aw-tile pad frames-tile`},Me={class:`hist-hd`},Ne={class:`sec`},Pe={class:`mono frames-n`},Fe=[`viewBox`],Ie=[`points`],Le={class:`raw-table mono`},Re={key:0,class:`gal`},ze=[`title`,`onClick`],Be=[`src`],Ve={class:`mono`},$={key:1,class:`frames-empty`},He=[`src`],Ue=Object.assign(w(o({__name:`DaqDetailFramesTile`,props:{signalKind:{},frames:{},vecPath:{}},emits:[`reload`],setup(t,{emit:r}){let a=r,o=i(null),l=e=>new Date(e).toLocaleTimeString(`zh-CN`,{hour12:!1}),p=e=>Object.entries(e.metrics??{}).slice(0,3).map(([e,t])=>`${e}=${t}`).join(` `);return(r,i)=>(s(),d(`section`,je,[u(`div`,Me,[u(`h3`,Ne,[_(n(t.signalKind===`image`?r.$t(`daqDetail.kfrm0001`):r.$t(`daqDetail.kfrm0002`))+` `,1),u(`span`,Pe,n(t.frames.length),1)]),u(`button`,{class:`pill-btn`,onClick:i[0]||=e=>a(`reload`)},n(r.$t(`daqDetail.k3x1jg022`)),1)]),t.signalKind===`vector`?(s(),d(f,{key:0},[(s(),d(`svg`,{class:`vec-svg`,viewBox:`0 0 ${e(320)} ${e(84)}`,preserveAspectRatio:`none`},[u(`polyline`,{points:t.vecPath,fill:`none`,stroke:`var(--accent)`,"stroke-width":`1.5`},null,8,Ie)],8,Fe)),u(`table`,Le,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,n(r.$t(`daqDetail.k40vsf023`)),1),u(`th`,null,n(r.$t(`daqDetail.kfrm0004`)),1),u(`th`,null,n(r.$t(`daqDetail.kfrm0005`)),1)])]),u(`tbody`,null,[(s(!0),d(f,null,c(t.frames.filter(e=>e.kind===`vector`).slice(0,12),e=>(s(),d(`tr`,{key:e.at},[u(`td`,null,n(l(e.at)),1),u(`td`,null,n(e.points?.length??0),1),u(`td`,null,n(p(e)),1)]))),128))])])],64)):(s(),d(f,{key:1},[t.frames.length?(s(),d(`div`,Re,[(s(!0),d(f,null,c(t.frames,e=>(s(),d(`figure`,{key:e.at,class:`gal-item`,title:r.$t(`daqDetail.kfrm0006`),onClick:t=>o.value=e},[u(`img`,{src:e.thumbUrl,loading:`lazy`,alt:`daq frame`},null,8,Be),u(`figcaption`,Ve,n(l(e.at))+` · `+n(p(e)),1)],8,ze))),128))])):(s(),d(`p`,$,n(r.$t(`daqDetail.kfrm0003`)),1)),o.value?(s(),d(`div`,{key:2,class:`gal-full`,onClick:i[1]||=e=>o.value=null},[u(`img`,{src:o.value.contentUrl??o.value.thumbUrl,alt:`daq frame full`},null,8,He)])):m(``,!0)],64))]))}}),[[`__scopeId`,`data-v-c9f869de`]]),{__name:`DaqDetailFramesTile`}),We={class:`page`},Ge={class:`aw-kicker`},Ke={class:`aw-page-head`},qe={key:0,class:`err`},Je={key:1,class:`grid`},Ye=w(o({__name:`[id]`,setup(i){T({layout:`default`});let{daq:a,dcw:o,nodeId:c,node:f,tpl:p,signalKind:g,isFrameNode:v,stateLabel:y,effectiveState:b,driverPlanned:x}=k(),{form:C,driverCatalog:w,driverCfg:j,driverFields:M,testing:N,testResult:P,saving:F,doTest:I,saveParams:L}=A(c,f),{bindDeviceId:R,boundDeviceName:z,onBindToggle:B,availableDevices:V}=D(c,f),{historyPoints:H,bucketMs:U,BUCKETS:W,loadHistory:G,chartCanvas:K,liveCanvas:q,refreshOverrideMs:J}=O(c,f),{frames:Y,loadFrames:X,vecPath:Z}=E(c,v);return(i,T)=>{let E=S,D=te,O=xe,k=Ae,A=Ue;return s(),d(`div`,We,[u(`p`,Ge,[l(E,{to:`/daq`,class:`back`},{default:h(()=>[_(n(i.$t(`daqDetail.k1emg364001`)),1)]),_:1}),_(` / NODE `+n(e(c).slice(0,8).toUpperCase()),1)]),u(`div`,Ke,[u(`h1`,null,n(e(f)?.name??e(c)),1),u(`span`,{class:t([`st-pill`,[e(b)()]])},n(e(y)[e(b)()]),3)]),!e(f)&&e(a).error?(s(),d(`p`,qe,[_(n(e(a).error)+`(`,1),l(E,{to:`/workshop`},{default:h(()=>[_(n(i.$t(`daqDetail.k1bhhheq002`)),1)]),_:1}),T[7]||=_(`) `,-1)])):m(``,!0),e(f)?(s(),d(`div`,Je,[l(D,{"canvas-el":e(q),"onUpdate:canvasEl":T[0]||=e=>r(q)?q.value=e:null,node:e(f),tpl:e(p),"bound-device-name":e(z),"default-interval-ms":e(a).controller.defaultIntervalMs,"default-publish-ms":e(a).controller.defaultPublishIntervalMs,"driver-planned":e(x)},null,8,[`canvas-el`,`node`,`tpl`,`bound-device-name`,`default-interval-ms`,`default-publish-ms`,`driver-planned`]),l(O,{form:e(C),"onUpdate:form":T[1]||=e=>r(C)?C.value=e:null,"driver-cfg":e(j),"onUpdate:driverCfg":T[2]||=e=>r(j)?j.value=e:null,"bind-device-id":e(R),"onUpdate:bindDeviceId":T[3]||=e=>r(R)?R.value=e:null,lines:e(o).lines,"driver-catalog":e(w),"driver-fields":e(M),saving:e(F),testing:e(N),"test-result":e(P),"bound-device-name":e(z),"available-devices":e(V),onSave:e(L),onTest:e(I),onBindToggle:e(B)},null,8,[`form`,`driver-cfg`,`bind-device-id`,`lines`,`driver-catalog`,`driver-fields`,`saving`,`testing`,`test-result`,`bound-device-name`,`available-devices`,`onSave`,`onTest`,`onBindToggle`]),l(k,{"bucket-ms":e(U),"onUpdate:bucketMs":T[4]||=e=>r(U)?U.value=e:null,"refresh-override-ms":e(J),"onUpdate:refreshOverrideMs":T[5]||=e=>r(J)?J.value=e:null,"canvas-el":e(K),"onUpdate:canvasEl":T[6]||=e=>r(K)?K.value=e:null,tsdb:e(a).meta.tsdb,buckets:e(W),"history-points":e(H),decimals:e(f).decimals,"min-query-ms":e(a).controller.minQueryDisplayIntervalMs??500,"default-query-ms":e(a).controller.queryDisplayIntervalMs??5e3,onReload:e(G)},null,8,[`bucket-ms`,`refresh-override-ms`,`canvas-el`,`tsdb`,`buckets`,`history-points`,`decimals`,`min-query-ms`,`default-query-ms`,`onReload`])])):m(``,!0),e(v)?(s(),ee(A,{key:2,"signal-kind":e(g),frames:e(Y),"vec-path":e(Z),onReload:e(X)},null,8,[`signal-kind`,`frames`,`vec-path`,`onReload`])):m(``,!0)])}}}),[[`__scopeId`,`data-v-9fb58f3e`]]);export{Ye as default};
@@ -1 +0,0 @@
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{Q 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,s as T,t as E}from"./Dqz5HiXa.js";import{t as D}from"./Cmp8PMrA.js";import{n as O}from"./Cnrmlixo.js";import{t as k}from"./DxagrjB8.js";import{r as A}from"./Du9v6qGB.js";import{t as j}from"./B_LcD7qE2.js";import{t as M}from"./DD6Z0yPN2.js";import{t as N}from"./BH3obZJ42.js";import{t as ee}from"./YaroNkJZ2.js";import{t as P}from"./EhhQmlBV2.js";var F=[`#3aa0ff`,`#f4c542`,`#35e0a0`,`#41c8f4`,`#b58cff`,`#ff8a5c`],I={class:`lc-head`},L={class:`lc-name`},te=[`title`],R=[`title`],z={key:0,class:`lc-run mono`},B={class:`lc-stats mono`},V={class:`lc-ctl`},H=[`disabled`,`title`],U={value:``},W=[`value`,`disabled`],G=[`disabled`],K=[`disabled`],ne=Object.assign(c({__name:`DcwLineCard`,props:_({card:{},state:{},recipes:{},quickBusy:{}},{pick:{},pickModifiers:{}}),emits:_([`edit`,`remove`,`start`,`stop`],[`update:pick`]),setup(e,{emit:r}){let a=r,o=s(e,`pick`);return(r,s)=>{let c=D;return l(),h(`div`,{class:t([`line-card aw-liftable`,{idle:!e.state.active}]),style:n({"--lc":e.card.line.color})},[m(`div`,I,[s[7]||=m(`span`,{class:`lc-dot`},null,-1),m(`b`,L,i(e.card.line.name),1),m(`span`,{class:t([`lc-state`,{on:e.state.active}])},i(e.state.active?r.$t(`dcw.k1eox1el055`):r.$t(`dcw.k149r6y7059`)),3),m(`button`,{class:`lc-act`,title:r.$t(`common.edit`),onClick:s[0]||=t=>a(`edit`,e.card)},[...s[5]||=[m(`span`,{class:`i-tabler-pencil`},null,-1)]],8,te),m(`button`,{class:`lc-act danger`,title:r.$t(`dcw.k3xakp026`),onClick:s[1]||=t=>a(`remove`,e.card)},[...s[6]||=[m(`span`,{class:`i-tabler-trash`},null,-1)]],8,R)]),e.state.active?(l(),h(`small`,z,i(e.state.productName)+` · `+i(e.state.recipeName)+` · `+i(r.$t(`dcw.k3zz0f052`))+` `+i(e.state.taggedSamples),1)):(l(),h(`small`,{key:1,class:t([`lc-run dim`,{ph:!e.card.line.description}])},i(e.card.line.description||r.$t(`dcw.k18moyq1056`)),3)),m(`div`,B,[m(`span`,null,[S(i(r.$t(`dcw.k45uio011`))+` `,1),m(`b`,null,i(e.card.nodes),1)]),m(`span`,null,[S(i(r.$t(`dcw.k3waz1012`))+` `,1),m(`b`,null,i(e.card.products),1)]),m(`span`,null,[S(i(r.$t(`dcw.k48grv013`))+` `,1),m(`b`,null,i(e.card.recipes),1)])]),m(`div`,V,[e.state.active?(l(),h(`button`,{key:1,class:`pill-btn stop`,disabled:e.quickBusy===e.card.line.id,onClick:s[4]||=t=>a(`stop`,e.card)},i(r.$t(`dcw.k148rclf015`)),9,K)):(l(),h(g,{key:0},[x(m(`select`,{"onUpdate:modelValue":s[2]||=e=>o.value=e,class:`inp`,disabled:e.recipes.length===0,title:r.$t(`dcw.k1dhaby4003`)},[m(`option`,U,i(e.recipes.length?r.$t(`dcw.kutxzsz057`):r.$t(`dcw.k1elczt9060`)),1),(l(!0),h(g,null,u(e.recipes,e=>(l(),h(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},i(e.name)+`(`+i(e.params.length)+`) `,9,W))),128))],8,H),[[T,o.value]]),m(`button`,{class:`pill-btn`,disabled:e.quickBusy===e.card.line.id||!o.value,onClick:s[3]||=t=>a(`start`,e.card)},i(r.$t(`dcw.k149b4vg014`)),9,G)],64))]),d(c,{class:`lc-manage`,to:`/dcw/${e.card.line.id}`},{default:y(()=>[S(i(r.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6)}}}),{__name:`DcwLineCard`}),q={class:`modal`},J={class:`m-title`},Y={class:`f`},X=[`placeholder`],re={class:`f`},Z=[`placeholder`],Q={class:`f`},ie={class:`color-row`},ae=[`onClick`],$={class:`dim`},oe={key:0,class:`m-err`},se={class:`m-actions`},ce=[`disabled`],le=Object.assign(c({__name:`DcwCreateLineModal`,props:_({saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:o}){let c=o,d=s(a,`open`),f=r({name:``,description:``,color:``});p(d,e=>{e&&(f.name=``,f.description=``,f.color=``)});function _(){c(`submit`,{name:f.name.trim(),description:f.description.trim(),color:f.color||void 0})}return(r,o)=>(l(),b(E,{name:`modal`},{default:y(()=>[d.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:o[3]||=w(e=>c(`close`),[`self`])},[m(`div`,q,[m(`h3`,J,i(r.$t(`dcw.k1efe391017`)),1),m(`label`,Y,[m(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[4]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[0]||=e=>f.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,X),[[C,f.name]])]),m(`label`,re,[m(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),x(m(`input`,{"onUpdate:modelValue":o[1]||=e=>f.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,Z),[[C,f.description]])]),m(`div`,Q,[m(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),m(`div`,ie,[(l(!0),h(g,null,u(e(F),e=>(l(),h(`button`,{key:e,class:t([`color-dot`,{on:f.color===e}]),style:n({background:e}),onClick:t=>f.color=f.color===e?``:e},null,14,ae))),128)),m(`small`,$,i(f.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),a.error?(l(),h(`p`,oe,i(a.error),1)):v(``,!0),m(`div`,se,[m(`button`,{class:`mini-btn`,onClick:o[2]||=e=>c(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),m(`button`,{class:`pill-btn`,disabled:a.saving||!f.name.trim(),onClick:_},i(r.$t(`dcw.k3wzi2023`)),9,ce)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwCreateLineModal`}),ue={class:`modal`},de={class:`m-title`},fe={class:`f`},pe=[`placeholder`],me={class:`f`},he=[`placeholder`],ge={class:`f`},_e={class:`color-row`},ve=[`onClick`],ye={class:`dim`},be={key:0,class:`m-err`},xe={class:`m-actions`},Se=[`disabled`],Ce=Object.assign(c({__name:`DcwEditLineModal`,props:_({card:{},saving:{type:Boolean},error:{},nextColor:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`submit`,`close`],[`update:open`]),setup(a,{emit:o}){let c=a,d=o,f=s(a,`open`),_=r({name:``,description:``,color:``});p(()=>c.card,e=>{e&&(_.name=e.line.name,_.description=e.line.description,_.color=e.line.color)});function T(){c.card&&d(`submit`,c.card.line.id,{name:_.name.trim(),description:_.description.trim(),color:_.color||void 0})}return(r,o)=>(l(),b(E,{name:`modal`},{default:y(()=>[f.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:o[3]||=w(e=>d(`close`),[`self`])},[m(`div`,ue,[m(`h3`,de,i(r.$t(`dcw.k5tq8wc071`)),1),m(`label`,fe,[m(`span`,null,[S(i(r.$t(`dcw.k1b2ioko019`)),1),o[4]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":o[0]||=e=>_.name=e,class:`inp`,placeholder:r.$t(`dcw.kru37i3004`)},null,8,pe),[[C,_.name]])]),m(`label`,me,[m(`span`,null,i(r.$t(`dcw.k24dxcd020`)),1),x(m(`input`,{"onUpdate:modelValue":o[1]||=e=>_.description=e,class:`inp`,placeholder:r.$t(`dcw.k1f2nwsp005`)},null,8,he),[[C,_.description]])]),m(`div`,ge,[m(`span`,null,i(r.$t(`dcw.k1x7nubr021`)),1),m(`div`,_e,[(l(!0),h(g,null,u(e(F),e=>(l(),h(`button`,{key:e,class:t([`color-dot`,{on:_.color===e}]),style:n({background:e}),onClick:t=>_.color=_.color===e?``:e},null,14,ve))),128)),m(`small`,ye,i(_.color||r.$t(`dcw.k1qidbpy061`,{p0:a.nextColor})),1)])]),a.error?(l(),h(`p`,be,i(a.error),1)):v(``,!0),m(`div`,xe,[m(`button`,{class:`mini-btn`,onClick:o[2]||=e=>d(`close`)},i(r.$t(`dcw.k3xdnn022`)),1),m(`button`,{class:`pill-btn`,disabled:a.saving||!_.name.trim(),onClick:T},i(r.$t(`common.save`)),9,Se)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwEditLineModal`}),we={class:`modal`},Te={class:`m-title danger-title`},Ee={class:`del-summary`},De={class:`del-purge`},Oe=[`checked`],ke={key:0,class:`m-err`},Ae={class:`m-actions`},je=[`disabled`],Me=Object.assign(c({__name:`DcwDeleteLineModal`,props:_({card:{},purge:{type:Boolean},busy:{type:Boolean},error:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:_([`update:purge`,`close`,`confirm`],[`update:open`]),setup(e,{emit:t}){let n=t,r=s(e,`open`);return(t,a)=>(l(),b(E,{name:`modal`},{default:y(()=>[r.value&&e.card?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:a[3]||=w(e=>n(`close`),[`self`])},[m(`div`,we,[m(`h3`,Te,[a[4]||=m(`span`,{class:`i-tabler-alert-triangle`},null,-1),S(` `+i(t.$t(`dcw.k7xq2mfd063`,{p0:e.card.line.name})),1)]),m(`p`,Ee,i(e.purge?t.$t(`dcw.k4r7nbd073`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes}):t.$t(`dcw.k1gp649b062`,{p0:e.card.line.name,p1:e.card.nodes,p2:e.card.products,p3:e.card.recipes})),1),m(`label`,De,[m(`input`,{checked:e.purge,type:`checkbox`,onChange:a[0]||=e=>n(`update:purge`,e.target.checked)},null,40,Oe),m(`span`,null,i(t.$t(`dcw.k9m2vxa072`)),1)]),e.error?(l(),h(`p`,ke,i(e.error),1)):v(``,!0),m(`div`,Ae,[m(`button`,{class:`mini-btn`,onClick:a[1]||=e=>n(`close`)},i(t.$t(`dcw.k3xdnn022`)),1),m(`button`,{class:`pill-btn danger`,disabled:e.busy,onClick:a[2]||=e=>n(`confirm`)},i(t.$t(`dcw.k3xakp026`)),9,je)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwDeleteLineModal`}),Ne={class:`modal wide`},Pe={class:`m-title`},Fe={class:`dim mono`},Ie={class:`dim tpl-hint`},Le={class:`tpl-list`},Re=[`title`],ze={class:`mono dim`},Be={key:0,class:`tpl-sem`},Ve=[`onClick`],He={class:`sec-label`},Ue={class:`tpl-form`},We={class:`f`},Ge=[`placeholder`],Ke={class:`f`},qe=[`placeholder`],Je={class:`f`},Ye=[`placeholder`],Xe={class:`f`},Ze=[`placeholder`],Qe={class:`f`},$e={class:`f`},et={class:`f`},tt={class:`f`},nt=[`value`],rt={class:`f`},it=[`placeholder`],at={key:0,class:`m-err`},ot={class:`m-actions`},st=[`disabled`],ct=Object.assign(c({__name:`DcwTemplateModal`,props:{open:{type:Boolean,required:!0},openModifiers:{}},emits:[`update:open`],setup(n){let a=k(),{t:o}=O(),{tplError:c,clearTplError:d,doCreateTemplate:_,doRemoveTemplate:D,builtinCount:j}=P(),M=s(n,`open`),N=r({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),ee=[{key:`thermo`,label:o(`dcw.k422b8040`)},{key:`pressure`,label:o(`dcw.k3x6ff041`)},{key:`tension`,label:o(`dcw.k3z9xc042`)},{key:`encoder`,label:o(`dcw.kjb3vhs043`)},{key:`camera`,label:o(`dcw.k47atw044`)},{key:`gateway`,label:o(`dcw.k48c07045`)}],F=e=>A(o,e);async function I(){if(!N.name.trim()){c.value=o(`dcw.k6ugbw2046`);return}if(N.min===``||N.max===``){c.value=o(`dcw.k13awowo047`);return}await _({name:N.name.trim(),ch:N.ch.trim()||N.name.trim(),code:N.code.trim()||`CUSTOM`,unit:N.unit.trim()||`-`,min:Number(N.min),max:Number(N.max),decimals:Number(N.decimals)||0,icon:N.icon,semantics:N.semantics.trim()||void 0}),!c.value&&(N.name=``,N.ch=``,N.code=``,N.unit=``,N.min=``,N.max=``)}let L=f(()=>a.templates.length-j.value);return p(M,e=>{e&&d()}),(n,r)=>(l(),b(E,{name:`modal`},{default:y(()=>[M.value?(l(),h(`div`,{key:0,class:`modal-mask`,onClick:r[10]||=w(e=>M.value=!1,[`self`])},[m(`div`,Ne,[m(`h3`,Pe,[S(i(n.$t(`dcw.k11oadmx024`))+` `,1),m(`small`,Fe,i(n.$t(`dcw.k3x23c054`))+` `+i(e(j))+` · `+i(n.$t(`dcw.k3t616a058`))+` `+i(L.value),1)]),m(`p`,Ie,i(n.$t(`dcw.k2hlav5025`)),1),m(`div`,Le,[(l(!0),h(g,null,u(e(a).templates,r=>(l(),h(`div`,{key:r.key,class:`tpl-row`,title:r.semantics??``},[m(`b`,null,i(F(r)),1),m(`small`,ze,i(r.code)+` · `+i(r.min)+`~`+i(r.max)+` `+i(r.unit),1),r.semantics?(l(),h(`small`,Be,i(r.semantics.slice(0,40))+i(r.semantics.length>40?`…`:``),1)):v(``,!0),m(`span`,{class:t([`tpl-tag`,{builtin:r.builtin}])},i(r.builtin?n.$t(`dcw.k3x23c054`):n.$t(`dcw.k3t616a058`)),3),r.builtin?v(``,!0):(l(),h(`button`,{key:1,class:`mini-btn danger`,onClick:t=>e(D)(r.key)},i(n.$t(`dcw.k3xakp026`)),9,Ve))],8,Re))),128))]),m(`p`,He,i(n.$t(`dcw.k169eb4s027`)),1),m(`div`,Ue,[m(`label`,We,[m(`span`,null,[S(i(n.$t(`dcw.k3xhia028`)),1),r[11]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":r[0]||=e=>N.name=e,class:`inp`,placeholder:n.$t(`dcw.k1tooi3o006`)},null,8,Ge),[[C,N.name]])]),m(`label`,Ke,[m(`span`,null,i(n.$t(`dcw.k1bqk219029`)),1),x(m(`input`,{"onUpdate:modelValue":r[1]||=e=>N.ch=e,class:`inp`,placeholder:n.$t(`dcw.k698qz0007`)},null,8,qe),[[C,N.ch]])]),m(`label`,Je,[m(`span`,null,i(n.$t(`dcw.k1ayxrqb030`)),1),x(m(`input`,{"onUpdate:modelValue":r[2]||=e=>N.code=e,class:`inp`,placeholder:n.$t(`dcw.codePh`)},null,8,Ye),[[C,N.code]])]),m(`label`,Xe,[m(`span`,null,i(n.$t(`dcw.k3x4ef031`)),1),x(m(`input`,{"onUpdate:modelValue":r[3]||=e=>N.unit=e,class:`inp`,placeholder:n.$t(`dcw.unitPh`)},null,8,Ze),[[C,N.unit]])]),m(`label`,Qe,[m(`span`,null,[S(i(n.$t(`dcw.k1l9jv5m032`)),1),r[12]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":r[4]||=e=>N.min=e,type:`number`,class:`inp`},null,512),[[C,N.min,void 0,{number:!0}]])]),m(`label`,$e,[m(`span`,null,[S(i(n.$t(`dcw.k1l9jv4p033`)),1),r[13]||=m(`em`,null,`*`,-1)]),x(m(`input`,{"onUpdate:modelValue":r[5]||=e=>N.max=e,type:`number`,class:`inp`},null,512),[[C,N.max,void 0,{number:!0}]])]),m(`label`,et,[m(`span`,null,i(n.$t(`dcw.k3mxmcx034`)),1),x(m(`input`,{"onUpdate:modelValue":r[6]||=e=>N.decimals=e,type:`number`,class:`inp`},null,512),[[C,N.decimals,void 0,{number:!0}]])]),m(`label`,tt,[m(`span`,null,i(n.$t(`dcw.k3xx56035`)),1),x(m(`select`,{"onUpdate:modelValue":r[7]||=e=>N.icon=e,class:`inp`},[(l(),h(g,null,u(ee,e=>m(`option`,{key:e.key,value:e.key},i(e.label),9,nt)),64))],512),[[T,N.icon]])])]),m(`label`,rt,[m(`span`,null,i(n.$t(`dcw.k1b6qorg036`)),1),x(m(`textarea`,{"onUpdate:modelValue":r[8]||=e=>N.semantics=e,class:`inp`,rows:`3`,placeholder:n.$t(`dcw.k1qdnfzc008`)},null,8,it),[[C,N.semantics]])]),e(c)?(l(),h(`p`,at,i(e(c)),1)):v(``,!0),m(`div`,ot,[m(`button`,{class:`mini-btn`,onClick:r[9]||=e=>M.value=!1},i(n.$t(`dcw.k3x62t037`)),1),m(`button`,{class:`pill-btn`,disabled:!N.name.trim()||N.min===``||N.max===``,onClick:I},i(n.$t(`dcw.k1bg9nga038`)),9,st)])])])):v(``,!0)]),_:1}))}}),{__name:`DcwTemplateModal`}),lt={class:`page`},ut={class:`aw-page-head`},dt={class:`sub`},ft={class:`badges mono`},pt=[`title`],mt={class:`badge`},ht={key:0,class:`banner bad`},gt={class:`fleet-filter`},_t={class:`aw-seg`},vt=[`placeholder`],yt={class:`line-grid aw-stagger`},bt={key:1,class:`banner`},xt={key:2,class:`banner`},St={key:3,class:`banner bad`},Ct=c({__name:`index`,setup(n){let{t:r}=O(),s=k();s.load();let{cards:c,unassignedCount:p,recipesOf:_}=j(),{filterState:y,searchText:w,runningCount:T,shownCards:E}=M(c),D=f(()=>F[s.lines.length%F.length]??`#3aa0ff`),{createOpen:A,createSaving:P,createError:I,openCreate:L,doCreateLine:te,editOpen:R,editSaving:z,editError:B,editTarget:V,openEdit:H,doEditLine:U,delOpen:W,delBusy:G,delErr:K,delPurge:q,delCard:J,openDelete:Y,doDeleteLine:X}=N(),{quickBusy:re,quickErr:Z,quickPick:Q,quickStart:ie,quickStop:ae}=ee(r),$=o(!1);return(n,r)=>{let o=ne,f=le,O=Ce,k=Me,j=ct;return l(),h(`div`,lt,[m(`div`,ut,[m(`div`,null,[r[14]||=m(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),m(`h1`,null,i(n.$t(`dcw.k1b2tk5c009`)),1),m(`p`,dt,i(n.$t(`dcw.k5q0aqi010`)),1)]),m(`div`,ft,[e(p)?(l(),h(`span`,{key:0,class:`badge warn-badge`,title:n.$t(`dcw.k1i5a9vw001`)},i(n.$t(`dcw.k3ootr6049`))+` `+i(e(p)),9,pt)):v(``,!0),m(`span`,mt,i(n.$t(`dcw.k3wj9n050`))+` `+i(e(s).lines.length),1),m(`button`,{class:`badge tpl-btn`,onClick:r[0]||=e=>$.value=!0},i(n.$t(`dcw.k11nndsp051`))+` `+i(e(s).templates.length),1)])]),e(Z)?(l(),h(`p`,ht,i(e(Z)),1)):v(``,!0),m(`div`,gt,[m(`div`,_t,[m(`button`,{class:t({on:e(y)===`all`}),onClick:r[1]||=e=>y.value=`all`},i(n.$t(`common.all`))+` `+i(e(c).length),3),m(`button`,{class:t({on:e(y)===`running`}),onClick:r[2]||=e=>y.value=`running`},i(n.$t(`dcw.k1eox1el055`))+` `+i(e(T)),3),m(`button`,{class:t({on:e(y)===`idle`}),onClick:r[3]||=e=>y.value=`idle`},i(n.$t(`dcw.k149r6y7059`))+` `+i(e(c).length-e(T)),3)]),x(m(`input`,{"onUpdate:modelValue":r[4]||=e=>a(w)?w.value=e:null,class:`inp fleet-search`,type:`search`,placeholder:n.$t(`dcw.filterSearchPh`)},null,8,vt),[[C,e(w)]])]),m(`div`,yt,[(l(!0),h(g,null,u(e(E),t=>(l(),b(o,{key:t.line.id,pick:e(Q)[t.line.id],"onUpdate:pick":n=>e(Q)[t.line.id]=n,card:t,state:e(s).lineStateOf(t.line.id),recipes:e(_)(t.line.id),"quick-busy":e(re),onEdit:e(H),onRemove:e(Y),onStart:e(ie),onStop:e(ae)},null,8,[`pick`,`onUpdate:pick`,`card`,`state`,`recipes`,`quick-busy`,`onEdit`,`onRemove`,`onStart`,`onStop`]))),128)),m(`button`,{class:`line-card new-card`,onClick:r[5]||=(...t)=>e(L)&&e(L)(...t)},[r[15]||=m(`span`,{class:`i-tabler-plus`},null,-1),S(` `+i(n.$t(`dcw.k1efe391017`))+` `,1),m(`small`,null,i(n.$t(`dcw.k19dlbli053`)),1)])]),e(s).loaded&&e(s).lines.length===0?(l(),h(`p`,bt,i(n.$t(`dcw.k1sk85vs018`)),1)):e(s).loaded&&e(E).length===0?(l(),h(`p`,xt,i(n.$t(`dcw.filterEmpty`)),1)):v(``,!0),d(f,{open:e(A),"onUpdate:open":r[6]||=e=>a(A)?A.value=e:null,saving:e(P),error:e(I),"next-color":D.value,onSubmit:e(te),onClose:r[7]||=e=>A.value=!1},null,8,[`open`,`saving`,`error`,`next-color`,`onSubmit`]),d(O,{open:e(R),"onUpdate:open":r[8]||=e=>a(R)?R.value=e:null,card:e(V),saving:e(z),error:e(B),"next-color":D.value,onSubmit:e(U),onClose:r[9]||=e=>R.value=!1},null,8,[`open`,`card`,`saving`,`error`,`next-color`,`onSubmit`]),d(k,{open:e(W),"onUpdate:open":r[10]||=e=>a(W)?W.value=e:null,purge:e(q),"onUpdate:purge":r[11]||=e=>a(q)?q.value=e:null,card:e(J),busy:e(G),error:e(K),onConfirm:e(X),onClose:r[12]||=e=>W.value=!1},null,8,[`open`,`purge`,`card`,`busy`,`error`,`onConfirm`]),d(j,{open:$.value,"onUpdate:open":r[13]||=e=>$.value=e},null,8,[`open`]),e(s).error?(l(),h(`p`,St,i(e(s).error),1)):v(``,!0)])}}});export{Ct as default};
@@ -1 +0,0 @@
1
- import{N as e,dt as t,g as n,mt as r,u as i}from"./CavpkQb0.js";import{Q as a,R as o,S as s,V as c,W as l,b as u,d,et as f,f as p,h as m,i as h,k as g,m as _,p as v,rt as y,s as b,y as x}from"./ByMj6e7s.js";import{c as S,d as C,s as w,u as T}from"./Dqz5HiXa.js";import{t as E}from"./BDNMzG2s2.js";import{t as D}from"./DqtgGFEc.js";import{t as O}from"./DxagrjB8.js";import{t as k}from"./B1RT9NTO2.js";import{t as A}from"./DPUXbTg92.js";import{t as j}from"./BzvHUfRR2.js";import{n as M,t as ee}from"./Dbe9TFc9.js";import{t as N}from"./CBDX7p73.js";var te={class:`aw-page-head`},P={class:`sub`},F={class:`head-actions`},I=[`title`],L={class:`live-txt mono`},R=Object.assign(E(s({__name:`LogsPageHead`,props:{recentCount:{}},emits:[`manual`],setup(e){return(t,n)=>(c(),m(`header`,te,[p(`div`,null,[n[1]||=p(`p`,{class:`aw-kicker`},` agentworkshop / audit log `,-1),p(`h1`,null,r(t.$t(`logs.title`)),1),p(`p`,P,r(t.$t(`logs.sub`)),1)]),p(`div`,F,[p(`span`,{class:`live-dot`,title:t.$t(`logs.liveHint`)},null,8,I),p(`span`,L,r(t.$t(`logs.live`))+` `+r(e.recentCount),1),p(`button`,{class:`pill-btn`,onClick:n[0]||=e=>t.$emit(`manual`)},[n[2]||=p(`span`,{class:`i-tabler-plus`},null,-1),x(` `+r(t.$t(`logs.manual`)),1)])])]))}}),[[`__scopeId`,`data-v-a3122ccd`]]),{__name:`LogsPageHead`}),z={class:`filter-card`},B={class:`flt`},V={value:``},H=[`value`],U={class:`flt`},W={value:``},G=[`value`],K={class:`flt`},q={value:``},J=[`value`],Y={class:`flt`},X={value:``},Z={value:`user`},Q={value:`system`},ne={class:`flt`},re={value:``},ie=[`value`],ae={class:`flt flt-grow`},oe=[`placeholder`],se=[`disabled`],ce=Object.assign(E(s({__name:`LogsFilterCard`,props:g({hasFilter:{type:Boolean},loading:{type:Boolean}},{lineId:{required:!0},lineIdModifiers:{},productId:{required:!0},productIdModifiers:{},recipeId:{required:!0},recipeIdModifiers:{},actorKind:{required:!0},actorKindModifiers:{},kind:{required:!0},kindModifiers:{},text:{required:!0},textModifiers:{}}),emits:g([`query`,`reset`],[`update:lineId`,`update:productId`,`update:recipeId`,`update:actorKind`,`update:kind`,`update:text`]),setup(t){let n=a(t,`lineId`),i=a(t,`productId`),o=a(t,`recipeId`),s=a(t,`actorKind`),u=a(t,`kind`),f=a(t,`text`),{lines:g,productsOfLine:v,recipesOfScope:b}=N(),C=d(()=>v(n.value)),E=d(()=>b(n.value,i.value));function D(){i.value=``,o.value=``}function O(){o.value=``}return(a,d)=>(c(),m(`section`,z,[p(`label`,B,[p(`span`,null,r(a.$t(`logs.fLine`)),1),y(p(`select`,{"onUpdate:modelValue":d[0]||=e=>n.value=e,class:`inp-sel`,onChange:D},[p(`option`,V,r(a.$t(`logs.all`)),1),(c(!0),m(h,null,l(e(g),e=>(c(),m(`option`,{key:e.id,value:e.id},r(e.name),9,H))),128))],544),[[w,n.value]])]),p(`label`,U,[p(`span`,null,r(a.$t(`logs.fProduct`)),1),y(p(`select`,{"onUpdate:modelValue":d[1]||=e=>i.value=e,class:`inp-sel`,onChange:O},[p(`option`,W,r(a.$t(`logs.all`)),1),(c(!0),m(h,null,l(C.value,e=>(c(),m(`option`,{key:e.id,value:e.id},r(e.name),9,G))),128))],544),[[w,i.value]])]),p(`label`,K,[d[9]||=p(`span`,null,`Recipe`,-1),y(p(`select`,{"onUpdate:modelValue":d[2]||=e=>o.value=e,class:`inp-sel`},[p(`option`,q,r(a.$t(`logs.all`)),1),(c(!0),m(h,null,l(E.value,e=>(c(),m(`option`,{key:e.id,value:e.id},r(e.name),9,J))),128))],512),[[w,o.value]])]),p(`label`,Y,[p(`span`,null,r(a.$t(`logs.fSource`)),1),y(p(`select`,{"onUpdate:modelValue":d[3]||=e=>s.value=e,class:`inp-sel`},[p(`option`,X,r(a.$t(`logs.all`)),1),p(`option`,Z,r(a.$t(`logs.src.user`)),1),d[10]||=p(`option`,{value:`agent`},` Agent `,-1),p(`option`,Q,r(a.$t(`logs.src.system`)),1)],512),[[w,s.value]])]),p(`label`,ne,[p(`span`,null,r(a.$t(`logs.fKind`)),1),y(p(`select`,{"onUpdate:modelValue":d[4]||=e=>u.value=e,class:`inp-sel`},[p(`option`,re,r(a.$t(`logs.all`)),1),(c(!0),m(h,null,l(e(ee),e=>(c(),m(`option`,{key:e,value:e},r(a.$t(`logs.kind.${e}`)),9,ie))),128))],512),[[w,u.value]])]),p(`label`,ae,[p(`span`,null,r(a.$t(`logs.fKeyword`)),1),y(p(`input`,{"onUpdate:modelValue":d[5]||=e=>f.value=e,class:`inp-sel`,type:`search`,placeholder:a.$t(`logs.fKeywordPh`),onKeydown:d[6]||=T(e=>a.$emit(`query`),[`enter`])},null,40,oe),[[S,f.value]])]),p(`button`,{class:`pill-btn`,disabled:t.loading,onClick:d[7]||=e=>a.$emit(`query`)},[d[11]||=p(`span`,{class:`i-tabler-search`},null,-1),x(` `+r(a.$t(`logs.query`)),1)],8,se),t.hasFilter?(c(),m(`button`,{key:0,class:`mini-btn`,onClick:d[8]||=e=>a.$emit(`reset`)},r(a.$t(`logs.reset`)),1)):_(``,!0)]))}}),[[`__scopeId`,`data-v-4ba5c3b6`]]),{__name:`LogsFilterCard`}),le={class:`table-card`},ue={key:0,class:`err`},de={class:`log-table`},fe={class:`th-time`},pe={class:`th-src`},me={class:`th-kind`},he={class:`th-scope`},ge={class:`th-detail`},_e={class:`mono dim`},ve={class:`actor`},ye={class:`summary`},be={class:`mono dim action`},xe={class:`scope`},Se=[`title`],Ce=[`title`],we={key:2,class:`scope-chip`,title:`Recipe`},Te={key:3,class:`dim`},Ee={class:`detail-cell`},De=[`onClick`],Oe={key:1,class:`dim`},ke={key:0,class:`log-detail-row`},Ae={colspan:`7`,class:`detail-td`},je={class:`detail-box mono`},Me={class:`log-empty-row`},Ne={key:0,colspan:`7`,class:`empty`},Pe=Object.assign(E(s({__name:`LogsEventTable`,props:{rows:{},expandedId:{},loading:{type:Boolean},error:{}},emits:[`toggle`],setup(n){let{hasDetail:i,pretty:a,fmtTime:o,srcLabel:s,kindLabel:u}=A(),{lineName:d,productName:f,recipeName:g}=N();return(v,y)=>(c(),m(`section`,le,[n.error?(c(),m(`p`,ue,r(n.error),1)):_(``,!0),p(`table`,de,[p(`thead`,null,[p(`tr`,null,[p(`th`,fe,r(v.$t(`logs.thTime`)),1),p(`th`,pe,r(v.$t(`logs.fSource`)),1),p(`th`,null,r(v.$t(`logs.thActor`)),1),p(`th`,me,r(v.$t(`logs.fKind`)),1),p(`th`,null,r(v.$t(`logs.thSummary`)),1),p(`th`,he,r(v.$t(`logs.thScope`)),1),p(`th`,ge,r(v.$t(`logs.thDetail`)),1)])]),p(`tbody`,null,[(c(!0),m(h,null,l(n.rows,l=>(c(),m(h,{key:l.id},[p(`tr`,null,[p(`td`,_e,r(e(o)(l.at)),1),p(`td`,null,[p(`span`,{class:t([`src-badge`,l.actorKind])},r(e(s)(l.actorKind)),3)]),p(`td`,ve,r(l.actorName||l.actor||`—`),1),p(`td`,null,[p(`span`,{class:t([`kind-chip`,l.kind])},r(e(u)(l.kind)),3)]),p(`td`,ye,[x(r(l.summary)+` `,1),p(`small`,be,r(l.action),1)]),p(`td`,xe,[e(d)(l.lineId)?(c(),m(`span`,{key:0,class:`scope-chip`,title:v.$t(`logs.fLine`)},r(e(d)(l.lineId)),9,Se)):_(``,!0),e(f)(l.productId)?(c(),m(`span`,{key:1,class:`scope-chip`,title:v.$t(`logs.fProduct`)},r(e(f)(l.productId)),9,Ce)):_(``,!0),e(g)(l.recipeId)?(c(),m(`span`,we,r(e(g)(l.recipeId)),1)):_(``,!0),!l.lineId&&!l.productId&&!l.recipeId?(c(),m(`span`,Te,`—`)):_(``,!0)]),p(`td`,Ee,[e(i)(l)?(c(),m(`button`,{key:0,class:`mini-btn`,onClick:e=>v.$emit(`toggle`,l)},r(n.expandedId===l.id?v.$t(`logs.fold`):v.$t(`logs.expand`)),9,De)):(c(),m(`span`,Oe,r(v.$t(`logs.noDetail`)),1))])]),n.expandedId===l.id?(c(),m(`tr`,ke,[p(`td`,Ae,[p(`pre`,je,r(e(a)(l.detailJson)),1)])])):_(``,!0)],64))),128)),p(`tr`,Me,[n.rows.length===0?(c(),m(`td`,Ne,[n.loading?(c(),m(h,{key:0},[x(r(v.$t(`logs.loading`)),1)],64)):(c(),m(h,{key:1},[x(r(v.$t(`logs.empty`)),1)],64))])):_(``,!0)])])])]))}}),[[`__scopeId`,`data-v-bca21be9`]]),{__name:`LogsEventTable`}),Fe={class:`modal`},Ie={class:`m-title`},Le={class:`m-f`},Re=[`placeholder`],ze={class:`m-f`},Be=[`placeholder`],Ve={class:`m-grid`},$={class:`m-f`},He={value:``},Ue=[`value`],We={class:`m-f`},Ge={value:``},Ke=[`value`],qe={class:`m-f`},Je={value:``},Ye=[`value`],Xe={key:0,class:`err`},Ze={class:`m-actions`},Qe=[`disabled`],$e=Object.assign(E(s({__name:`LogsManualModal`,props:g({scope:{},posting:{type:Boolean},error:{}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:g([`submit`],[`update:open`]),setup(t,{emit:i}){let o=t,s=i,u=a(t,`open`),g=n({summary:``,detail:``,lineId:``,productId:``,recipeId:``}),{lines:x,productsOfLine:T,recipesOfScope:E}=N(),D=d(()=>T(o.scope.lineId)),O=d(()=>E(o.scope.lineId,o.scope.productId));f(u,e=>{e&&(g.summary=``,g.detail=``,g.lineId=o.scope.lineId,g.productId=o.scope.productId,g.recipeId=o.scope.recipeId)});function k(){u.value=!1}function A(){g.productId=``,g.recipeId=``}function j(){g.recipeId=``}function M(){s(`submit`,{...g})}return(n,i)=>(c(),v(b,{to:`body`},[u.value?(c(),m(`div`,{key:0,class:`modal-mask`,onClick:C(k,[`self`])},[p(`div`,Fe,[p(`h3`,Ie,r(n.$t(`logs.manual`)),1),p(`label`,Le,[p(`span`,null,r(n.$t(`logs.mSummary`))+` *`,1),y(p(`textarea`,{"onUpdate:modelValue":i[0]||=e=>g.summary=e,rows:`3`,placeholder:n.$t(`logs.mSummaryPh`)},null,8,Re),[[S,g.summary]])]),p(`label`,ze,[p(`span`,null,r(n.$t(`logs.mDetail`)),1),y(p(`textarea`,{"onUpdate:modelValue":i[1]||=e=>g.detail=e,rows:`2`,placeholder:n.$t(`logs.mDetailPh`)},null,8,Be),[[S,g.detail]])]),p(`div`,Ve,[p(`label`,$,[p(`span`,null,r(n.$t(`logs.fLine`)),1),y(p(`select`,{"onUpdate:modelValue":i[2]||=e=>g.lineId=e,class:`inp-sel`,onChange:A},[p(`option`,He,r(n.$t(`logs.all`)),1),(c(!0),m(h,null,l(e(x),e=>(c(),m(`option`,{key:e.id,value:e.id},r(e.name),9,Ue))),128))],544),[[w,g.lineId]])]),p(`label`,We,[p(`span`,null,r(n.$t(`logs.fProduct`)),1),y(p(`select`,{"onUpdate:modelValue":i[3]||=e=>g.productId=e,class:`inp-sel`,onChange:j},[p(`option`,Ge,r(n.$t(`logs.all`)),1),(c(!0),m(h,null,l(D.value,e=>(c(),m(`option`,{key:e.id,value:e.id},r(e.name),9,Ke))),128))],544),[[w,g.productId]])]),p(`label`,qe,[i[5]||=p(`span`,null,`Recipe`,-1),y(p(`select`,{"onUpdate:modelValue":i[4]||=e=>g.recipeId=e,class:`inp-sel`},[p(`option`,Je,r(n.$t(`logs.all`)),1),(c(!0),m(h,null,l(O.value,e=>(c(),m(`option`,{key:e.id,value:e.id},r(e.name),9,Ye))),128))],512),[[w,g.recipeId]])])]),t.error?(c(),m(`p`,Xe,r(t.error),1)):_(``,!0),p(`div`,Ze,[p(`button`,{class:`ghost-btn`,onClick:k},r(n.$t(`common.cancel`)),1),p(`button`,{class:`pill-btn`,disabled:t.posting||!g.summary.trim(),onClick:M},r(n.$t(`logs.mSubmit`)),9,Qe)])])])):_(``,!0)]))}}),[[`__scopeId`,`data-v-6f293889`]]),{__name:`LogsManualModal`}),et={class:`page`},tt=E(s({name:`OpsLogsPage`,setup(t){let n=O(),r=D(),a=k(),{q:s,hasFilter:l,expandedId:f,doQuery:p,resetFilters:h,toggleRow:g}=M(),{manualOpen:_,openManual:v,submitManual:y}=j({onPosted:p}),b=d(()=>({lineId:s.lineId,productId:s.productId,recipeId:s.recipeId}));return o(()=>{r.ensureConnected(),a.ensureLive(),n.load(),p()}),(t,n)=>(c(),m(`div`,et,[u(R,{"recent-count":e(a).recent.length,onManual:e(v)},null,8,[`recent-count`,`onManual`]),u(ce,{"line-id":e(s).lineId,"onUpdate:lineId":n[0]||=t=>e(s).lineId=t,"product-id":e(s).productId,"onUpdate:productId":n[1]||=t=>e(s).productId=t,"recipe-id":e(s).recipeId,"onUpdate:recipeId":n[2]||=t=>e(s).recipeId=t,"actor-kind":e(s).actorKind,"onUpdate:actorKind":n[3]||=t=>e(s).actorKind=t,kind:e(s).kind,"onUpdate:kind":n[4]||=t=>e(s).kind=t,text:e(s).text,"onUpdate:text":n[5]||=t=>e(s).text=t,"has-filter":e(l),loading:e(a).loading.list,onQuery:e(p),onReset:e(h)},null,8,[`line-id`,`product-id`,`recipe-id`,`actor-kind`,`kind`,`text`,`has-filter`,`loading`,`onQuery`,`onReset`]),u(Pe,{rows:e(a).results,"expanded-id":e(f),loading:e(a).loading.list,error:e(a).error.list,onToggle:e(g)},null,8,[`rows`,`expanded-id`,`loading`,`error`,`onToggle`]),u($e,{open:e(_),"onUpdate:open":n[6]||=e=>i(_)?_.value=e:null,scope:b.value,posting:e(a).loading.posting,error:e(a).error.post,onSubmit:e(y)},null,8,[`open`,`scope`,`posting`,`error`,`onSubmit`])]))}}),[[`__scopeId`,`data-v-41e93017`]]);export{tt as default};
@@ -1 +0,0 @@
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"./Du9v6qGB.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};