agentworkshop 0.7.49 → 0.7.51
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.
- package/.AgentWorkShop/prompts/host-tools.json +409 -6
- package/.output/.AgentWorkShop/aml-python/__pycache__/aml_eval.cpython-312.pyc +0 -0
- package/.output/.AgentWorkShop/aml-python/__pycache__/amlkit.cpython-312.pyc +0 -0
- package/.output/.AgentWorkShop/aml-python/__pycache__/train-example.cpython-312.pyc +0 -0
- package/.output/.AgentWorkShop/aml-python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
- package/.output/.AgentWorkShop/aml-python/aml_eval.py +39 -6
- package/.output/.AgentWorkShop/aml-python/amlkit.py +222 -3
- package/.output/.AgentWorkShop/aml-python/train-hybrid-example.py +278 -32
- package/.output/.AgentWorkShop/prompts/host-tools.json +409 -6
- package/.output/.AgentWorkShop/schema.json +135 -133
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/2_DkYoqD2.js +1 -0
- package/.output/public/_nuxt/8FXd9As6.js +1 -0
- package/.output/public/_nuxt/{d-w5jR8R.js → B3zB6K6m.js} +1 -1
- package/.output/public/_nuxt/{OXtV_ukR.js → B4ujjkUI.js} +1 -1
- package/.output/public/_nuxt/B9BmiUil.js +2 -0
- package/.output/public/_nuxt/B9QzrmgE.js +1 -0
- package/.output/public/_nuxt/BE7BrEw6.js +1 -0
- package/.output/public/_nuxt/{Cu8c3oMN2.js → BFZIll912.js} +1 -1
- package/.output/public/_nuxt/{ChtjzEpK2.js → BGAaKBeo2.js} +1 -1
- package/.output/public/_nuxt/BOmDHp5L.js +14 -0
- package/.output/public/_nuxt/BPou3U7b.js +1 -0
- package/.output/public/_nuxt/{CiTQY_n32.js → BXx9AxdF2.js} +1 -1
- package/.output/public/_nuxt/Bfe2qOYs.js +1 -0
- package/.output/public/_nuxt/BgEDwFMf.js +1 -0
- package/.output/public/_nuxt/BgnhB8r5.js +1 -0
- package/.output/public/_nuxt/Bhe953zV2.js +1 -0
- package/.output/public/_nuxt/{BITZvQBK.js → Bpkm4W5P.js} +1 -1
- package/.output/public/_nuxt/C4lagVdN2.js +1 -0
- package/.output/public/_nuxt/C5cf3T4d.js +1 -0
- package/.output/public/_nuxt/CBIoheY42.js +1 -0
- package/.output/public/_nuxt/{CN1CDAwe.js → CFQSjB1h.js} +1 -1
- package/.output/public/_nuxt/CFQyYMEn2.js +1 -0
- package/.output/public/_nuxt/CHrErv1E.js +1 -0
- package/.output/public/_nuxt/{fxWyOzyp2.js → CI2yXRr42.js} +1 -1
- package/.output/public/_nuxt/CIduggmC.js +1 -0
- package/.output/public/_nuxt/CU-mhG0-.js +1 -0
- package/.output/public/_nuxt/CXzfXC5M.js +1 -0
- package/.output/public/_nuxt/{H6pPjo0l.js → C_sjV3Ee.js} +1 -1
- package/.output/public/_nuxt/Ccps4cxo.js +1 -0
- package/.output/public/_nuxt/{CPmNRTBk2.js → CdIsmU5a2.js} +10 -10
- package/.output/public/_nuxt/{BS9P_Ies2.js → ChGuLxwW2.js} +1 -1
- package/.output/public/_nuxt/{Ck5oMvUk.js → Cn6ihm8j.js} +1 -1
- package/.output/public/_nuxt/{CWzp2R6G.js → D-Xyb3DA.js} +1 -1
- package/.output/public/_nuxt/D0SNhlnt.js +1 -0
- package/.output/public/_nuxt/D0ldVwl-.js +1 -0
- package/.output/public/_nuxt/DClNt1uS.js +1 -0
- package/.output/public/_nuxt/{CTVfcnjU.js → DQMbdg4t.js} +2 -2
- package/.output/public/_nuxt/{DHSDk8Bq2.js → DTxfFIvL2.js} +1 -1
- package/.output/public/_nuxt/DVKXGuMz2.js +1 -0
- package/.output/public/_nuxt/{CLySL7mW.js → Da0h_6VA.js} +1 -1
- package/.output/public/_nuxt/{PixDfCSm.js → DefDtlKK.js} +1 -1
- package/.output/public/_nuxt/DjefmmJu.js +1 -0
- package/.output/public/_nuxt/DnH9SRMW2.js +1 -0
- package/.output/public/_nuxt/{BmiMC_BC.js → DppqsiPC.js} +1 -1
- package/.output/public/_nuxt/Drq9iy6V.js +1 -0
- package/.output/public/_nuxt/DsGf2IV82.js +1 -0
- package/.output/public/_nuxt/{DoKpLEqc.js → DzfVS8N72.js} +1 -1
- package/.output/public/_nuxt/{DRpFsrno.js → I1cI6sPJ2.js} +1 -1
- package/.output/public/_nuxt/IU-UGkCJ2.js +1 -0
- package/.output/public/_nuxt/KXjvpIk2.js +1 -0
- package/.output/public/_nuxt/NJn94js_.js +1 -0
- package/.output/public/_nuxt/ON2x-t6n.js +1 -0
- package/.output/public/_nuxt/S799kNo8.js +1 -0
- package/.output/public/_nuxt/{uI9Ki_XZ.js → S9rLP7_v.js} +1 -1
- package/.output/public/_nuxt/UN3nSFjj2.js +1 -0
- package/.output/public/_nuxt/WVTVkqef.js +1 -0
- package/.output/public/_nuxt/{C_VAXV7I2.js → Yv9YItEX2.js} +1 -1
- package/.output/public/_nuxt/_id_.DamiFT0Q.css +1 -0
- package/.output/public/_nuxt/{_id_.BTrFUIHX.css → _id_.DpRe1PRh.css} +1 -1
- package/.output/public/_nuxt/_wsId_.DkrQkT6r.css +1 -0
- package/.output/public/_nuxt/aml.-czpKIs8.css +1 -0
- package/.output/public/_nuxt/asmJ99nX2.js +47 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/912eb5bb-670e-4cc8-b21d-7fc097723466.json +1 -0
- package/.output/public/_nuxt/{default.uao9U50c.css → default.CXb_zoN6.css} +1 -1
- package/.output/public/_nuxt/{entry.6DEjPWvR.css → entry.JdEG3KJg.css} +1 -1
- package/.output/public/_nuxt/jRTz0hjN2.js +1 -0
- package/.output/public/_nuxt/{DLPuRMeG.js → k5K6Jj6g.js} +1 -1
- package/.output/public/_nuxt/operations.B8X9uWK6.css +1 -0
- package/.output/public/_nuxt/{settings.Bo5EYkLI.css → settings.O26Dw1iT.css} +1 -1
- package/.output/public/_nuxt/{BACBBVdw.js → tKxYgsf-.js} +1 -1
- package/.output/public/_nuxt/{Cm_PTn9t2.js → vXrNItas2.js} +1 -1
- package/.output/public/_nuxt/{Cr518Gh02.js → zsRclU9w2.js} +1 -1
- package/.output/server/chunks/_/LeftOutlined.mjs +1 -1
- package/.output/server/chunks/_/SearchOutlined.mjs +1 -1
- package/.output/server/chunks/_/binding-authz.mjs +1 -1
- package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
- package/.output/server/chunks/_/entity.mjs +1 -1
- package/.output/server/chunks/_/host-bindings.mjs +1 -1
- package/.output/server/chunks/_/nitro.mjs +26245 -21135
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
- package/.output/server/chunks/build/Checkbox-4EdGAAl_.mjs +1 -1
- package/.output/server/chunks/build/FormItemContext-4ORSzhWv.mjs +1 -1
- package/.output/server/chunks/build/{OmpTerminalPanel-EQHrOJbw.mjs → OmpTerminalPanel-mk31gVzA.mjs} +3 -3
- package/.output/server/chunks/build/{OmpTerminalPanel-EQHrOJbw.mjs.map → OmpTerminalPanel-mk31gVzA.mjs.map} +1 -1
- package/.output/server/chunks/build/{PluginSlot-BP_qedpQ.mjs → PluginSlot-D2WUZgbp.mjs} +2 -2
- package/.output/server/chunks/build/{PluginSlot-BP_qedpQ.mjs.map → PluginSlot-D2WUZgbp.mjs.map} +1 -1
- package/.output/server/chunks/build/{TownView-BAR8CPIZ.mjs → TownView-fP9BiALv.mjs} +6 -6
- package/.output/server/chunks/build/{TownView-BAR8CPIZ.mjs.map → TownView-fP9BiALv.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-DgMpjM3_.mjs → _id_-BUpQSlzo.mjs} +142 -106
- package/.output/server/chunks/build/_id_-BUpQSlzo.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-Dv3BQbYV.mjs → _id_-CDlur81q.mjs} +25 -24
- package/.output/server/chunks/build/_id_-CDlur81q.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-BKJvFmyf.mjs → _wsId_-DPy2BXRd.mjs} +547 -158
- package/.output/server/chunks/build/_wsId_-DPy2BXRd.mjs.map +1 -0
- package/.output/server/chunks/build/{agents-B2GLPmn2.mjs → agents-CDLcboCv.mjs} +12 -12
- package/.output/server/chunks/build/{agents-B2GLPmn2.mjs.map → agents-CDLcboCv.mjs.map} +1 -1
- package/.output/server/chunks/build/{aml-DdWicH3t.mjs → aml-DsgtDLWF.mjs} +28 -27
- package/.output/server/chunks/build/aml-DsgtDLWF.mjs.map +1 -0
- package/.output/server/chunks/build/api-BY6ji7RC.mjs +6 -6
- package/.output/server/chunks/build/card-CUSocE9p.mjs +1 -1
- package/.output/server/chunks/build/{channel-templates-RPOtkgRf.mjs → channel-templates-DjEsj0_v.mjs} +8 -8
- package/.output/server/chunks/build/{channel-templates-RPOtkgRf.mjs.map → channel-templates-DjEsj0_v.mjs.map} +1 -1
- package/.output/server/chunks/build/checkbox-C4AKj81e.mjs +1 -1
- package/.output/server/chunks/build/constants-HPHJvjne.mjs +6 -6
- package/.output/server/chunks/build/{daq-CPtsh0e7.mjs → daq-N69AOtgw.mjs} +12 -11
- package/.output/server/chunks/build/daq-N69AOtgw.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-ry5Gyw6Y.mjs → dcw-CN9d3Rs7.mjs} +10 -10
- package/.output/server/chunks/build/{dcw-ry5Gyw6Y.mjs.map → dcw-CN9d3Rs7.mjs.map} +1 -1
- package/.output/server/chunks/build/{default-DxOE1eB0.mjs → default-DCf9tn1i.mjs} +38 -30
- package/.output/server/chunks/build/{default-DxOE1eB0.mjs.map → default-DCf9tn1i.mjs.map} +1 -1
- package/.output/server/chunks/build/descriptions-CFaUq4y4.mjs +1 -1
- package/.output/server/chunks/build/drawer-Cfh9_zft.mjs +1 -1
- package/.output/server/chunks/build/dropdown-KdKWCS5K.mjs +1 -1
- package/.output/server/chunks/build/form-uSlNqIAV.mjs +1 -1
- package/.output/server/chunks/build/input-Cr_KFj4T.mjs +1 -1
- package/.output/server/chunks/build/input-number-BRVnxeiA.mjs +1 -1
- package/.output/server/chunks/build/{logs-CeaiO3y9.mjs → logs-BcAjU1Ps.mjs} +12 -11
- package/.output/server/chunks/build/logs-BcAjU1Ps.mjs.map +1 -0
- package/.output/server/chunks/build/menu-BgkRSSx7.mjs +1 -1
- package/.output/server/chunks/build/{monitor-DnuXEIi5.mjs → monitor-DX_K0WMq.mjs} +13 -13
- package/.output/server/chunks/build/{monitor-DnuXEIi5.mjs.map → monitor-DX_K0WMq.mjs.map} +1 -1
- package/.output/server/chunks/build/operations-OFHYXwh4.mjs +282 -0
- package/.output/server/chunks/build/operations-OFHYXwh4.mjs.map +1 -0
- package/.output/server/chunks/build/{pages-Bn90ijKD.mjs → pages-rZKH72eC.mjs} +10 -11
- package/.output/server/chunks/build/pages-rZKH72eC.mjs.map +1 -0
- package/.output/server/chunks/build/{permissions-DL70W1YD.mjs → permissions-BvmodvsO.mjs} +8 -8
- package/.output/server/chunks/build/{permissions-DL70W1YD.mjs.map → permissions-BvmodvsO.mjs.map} +1 -1
- package/.output/server/chunks/build/{plugins-DrsZo--K.mjs → plugins-DSka7-vS.mjs} +9 -9
- package/.output/server/chunks/build/{plugins-DrsZo--K.mjs.map → plugins-DSka7-vS.mjs.map} +1 -1
- package/.output/server/chunks/build/popconfirm-Ox-_2V8A.mjs +1 -1
- package/.output/server/chunks/build/{schedules-VLzNcjnW.mjs → schedules-lo4bfgVt.mjs} +8 -8
- package/.output/server/chunks/build/{schedules-VLzNcjnW.mjs.map → schedules-lo4bfgVt.mjs.map} +1 -1
- package/.output/server/chunks/build/segmented-C61yLHvo.mjs +1 -1
- package/.output/server/chunks/build/select-rdBWytVK.mjs +1 -1
- package/.output/server/chunks/build/{settings-DVAUVMsX.mjs → settings-CAJWvul5.mjs} +32 -13
- package/.output/server/chunks/build/settings-CAJWvul5.mjs.map +1 -0
- package/.output/server/chunks/build/space-B2uhHJG8.mjs +1 -1
- package/.output/server/chunks/build/spin-C2cuvGth.mjs +1 -1
- package/.output/server/chunks/build/switch-DZAUIbIN.mjs +1 -1
- package/.output/server/chunks/build/table-DOFAvY-v.mjs +1 -1
- package/.output/server/chunks/build/tabs-DTeIuZeP.mjs +1 -1
- package/.output/server/chunks/build/tag-CHLGvNM6.mjs +1 -1
- package/.output/server/chunks/build/{teams-Mc07PYO8.mjs → teams-DBBvIToa.mjs} +14 -14
- package/.output/server/chunks/build/{teams-Mc07PYO8.mjs.map → teams-DBBvIToa.mjs.map} +1 -1
- package/.output/server/chunks/build/{tokens-DiwD5qni.mjs → tokens-CloWk4x_.mjs} +12 -12
- package/.output/server/chunks/build/{tokens-DiwD5qni.mjs.map → tokens-CloWk4x_.mjs.map} +1 -1
- package/.output/server/chunks/build/{town-D8VmTCmN.mjs → town-BMlctE4m.mjs} +12 -12
- package/.output/server/chunks/build/{town-D8VmTCmN.mjs.map → town-BMlctE4m.mjs.map} +1 -1
- package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
- package/.output/server/chunks/build/{useAgentHarnessOptions-CPn5dzKe.mjs → useAgentHarnessOptions-D6SJ_uUr.mjs} +7 -7
- package/.output/server/chunks/build/{useAgentHarnessOptions-CPn5dzKe.mjs.map → useAgentHarnessOptions-D6SJ_uUr.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAgentTemplateActions-DQWzVnZ0.mjs → useAgentTemplateActions-CdG4g_PF.mjs} +7 -7
- package/.output/server/chunks/build/{useAgentTemplateActions-DQWzVnZ0.mjs.map → useAgentTemplateActions-CdG4g_PF.mjs.map} +1 -1
- package/.output/server/chunks/build/useAgentTemplateDialogState-CZzpu5og.mjs +6 -6
- package/.output/server/chunks/build/{useAgentTemplateForm-vqyiRPtt.mjs → useAgentTemplateForm-a5y-N5sB.mjs} +7 -7
- package/.output/server/chunks/build/{useAgentTemplateForm-vqyiRPtt.mjs.map → useAgentTemplateForm-a5y-N5sB.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAgentTemplatesCatalog-DcQbsOik.mjs → useAgentTemplatesCatalog-pBVcUuN3.mjs} +7 -7
- package/.output/server/chunks/build/{useAgentTemplatesCatalog-DcQbsOik.mjs.map → useAgentTemplatesCatalog-pBVcUuN3.mjs.map} +1 -1
- package/.output/server/chunks/build/useAmlDatasets-BM0lZu40.mjs +6 -6
- package/.output/server/chunks/build/{useAmlEntities-BjXWvFd_.mjs → useAmlEntities-BDQ8TmLL.mjs} +7 -7
- package/.output/server/chunks/build/{useAmlEntities-BjXWvFd_.mjs.map → useAmlEntities-BDQ8TmLL.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlEnv-BB7p6x_w.mjs → useAmlEnv-DgTVwpqi.mjs} +7 -7
- package/.output/server/chunks/build/{useAmlEnv-BB7p6x_w.mjs.map → useAmlEnv-DgTVwpqi.mjs.map} +1 -1
- package/.output/server/chunks/build/useAmlExperiments-BtyW32PO.mjs +6 -6
- package/.output/server/chunks/build/{useAmlFormat-WrKuRfw2.mjs → useAmlFormat-C2sl3MGB.mjs} +7 -7
- package/.output/server/chunks/build/{useAmlFormat-WrKuRfw2.mjs.map → useAmlFormat-C2sl3MGB.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlJobs-DBuLvWMF.mjs → useAmlJobs-fk-H5Rp5.mjs} +10 -9
- package/.output/server/chunks/build/useAmlJobs-fk-H5Rp5.mjs.map +1 -0
- package/.output/server/chunks/build/{useAmlModels-VurmkBYe.mjs → useAmlModels-hgyVHoAq.mjs} +7 -7
- package/.output/server/chunks/build/{useAmlModels-VurmkBYe.mjs.map → useAmlModels-hgyVHoAq.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlNotes-BUdj3X6Y.mjs → useAmlNotes-BjbYNADm.mjs} +7 -7
- package/.output/server/chunks/build/{useAmlNotes-BUdj3X6Y.mjs.map → useAmlNotes-BjbYNADm.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAmlPredict-DFy-Do10.mjs → useAmlPredict-U24-SZNA.mjs} +7 -7
- package/.output/server/chunks/build/{useAmlPredict-DFy-Do10.mjs.map → useAmlPredict-U24-SZNA.mjs.map} +1 -1
- package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs +7 -7
- package/.output/server/chunks/build/useDaqDetailBinding-cpBz4hSL.mjs +6 -6
- package/.output/server/chunks/build/useDaqDetailFrames-BZGtKKXW.mjs +6 -6
- package/.output/server/chunks/build/{useDaqDetailHistory-C4_hVeqZ.mjs → useDaqDetailHistory-DtSTfyMi.mjs} +7 -7
- package/.output/server/chunks/build/{useDaqDetailHistory-C4_hVeqZ.mjs.map → useDaqDetailHistory-DtSTfyMi.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDaqDetailNode-Bwid_iA8.mjs → useDaqDetailNode-D_vhG0jF.mjs} +8 -8
- package/.output/server/chunks/build/{useDaqDetailNode-Bwid_iA8.mjs.map → useDaqDetailNode-D_vhG0jF.mjs.map} +1 -1
- package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs +7 -7
- package/.output/server/chunks/build/{useDaqFilters-C13836p-.mjs → useDaqFilters-BUQtZ82a.mjs} +8 -8
- package/.output/server/chunks/build/{useDaqFilters-C13836p-.mjs.map → useDaqFilters-BUQtZ82a.mjs.map} +1 -1
- package/.output/server/chunks/build/useDaqNodeWindow-1DWj2H5G.mjs +6 -6
- package/.output/server/chunks/build/useDaqOptimizations-Ct-TSXxy.mjs +6 -6
- package/.output/server/chunks/build/useDaqStream-wOxZcMDA.mjs +1 -1
- package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs +7 -7
- package/.output/server/chunks/build/{useDashboardCharts-DZysNDUX.mjs → useDashboardCharts-D45083s_.mjs} +7 -7
- package/.output/server/chunks/build/{useDashboardCharts-DZysNDUX.mjs.map → useDashboardCharts-D45083s_.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDashboardData-Ny_wtbo6.mjs → useDashboardData-Do_Vsepa.mjs} +8 -8
- package/.output/server/chunks/build/{useDashboardData-Ny_wtbo6.mjs.map → useDashboardData-Do_Vsepa.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDcwAddNode-C8nE7geh.mjs → useDcwAddNode-C1HDP3yG.mjs} +12 -9
- package/.output/server/chunks/build/useDcwAddNode-C1HDP3yG.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwCards-ETEsHvVy.mjs +6 -6
- package/.output/server/chunks/build/{useDcwDetailScope-BNrpDzbO.mjs → useDcwDetailScope-QTr1G6Oe.mjs} +7 -7
- package/.output/server/chunks/build/{useDcwDetailScope-BNrpDzbO.mjs.map → useDcwDetailScope-QTr1G6Oe.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDcwDetailTemplates-IcKAJ37Y.mjs → useDcwDetailTemplates-Djt-0Vse.mjs} +7 -7
- package/.output/server/chunks/build/{useDcwDetailTemplates-IcKAJ37Y.mjs.map → useDcwDetailTemplates-Djt-0Vse.mjs.map} +1 -1
- package/.output/server/chunks/build/useDcwFilter-FfVlDdyS.mjs +6 -6
- package/.output/server/chunks/build/useDcwLedger-BLoMmcu1.mjs +6 -6
- package/.output/server/chunks/build/useDcwLineMutations-BMC5BTWU.mjs +6 -6
- package/.output/server/chunks/build/{useDcwLineRun-Bpxk4mse.mjs → useDcwLineRun-74gN_s6T.mjs} +7 -7
- package/.output/server/chunks/build/{useDcwLineRun-Bpxk4mse.mjs.map → useDcwLineRun-74gN_s6T.mjs.map} +1 -1
- package/.output/server/chunks/build/useDcwProducts-D-zrMaeV.mjs +6 -6
- package/.output/server/chunks/build/{useDcwQuery-1lYHOaU6.mjs → useDcwQuery-7tX4QYmv.mjs} +7 -7
- package/.output/server/chunks/build/{useDcwQuery-1lYHOaU6.mjs.map → useDcwQuery-7tX4QYmv.mjs.map} +1 -1
- package/.output/server/chunks/build/useDcwQuickActions-C-tgcXIr.mjs +6 -6
- package/.output/server/chunks/build/{useDcwRecipes-BzGOymqz.mjs → useDcwRecipes-FVk5gDLV.mjs} +23 -15
- package/.output/server/chunks/build/useDcwRecipes-FVk5gDLV.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwStream-D04kCV3J.mjs +1 -1
- package/.output/server/chunks/build/{useDcwTemplates-Dsjw9u6U.mjs → useDcwTemplates-LDZffy4u.mjs} +7 -7
- package/.output/server/chunks/build/{useDcwTemplates-Dsjw9u6U.mjs.map → useDcwTemplates-LDZffy4u.mjs.map} +1 -1
- package/.output/server/chunks/build/{useDcwWrites-3RxwN36I.mjs → useDcwWrites-B22mwliK.mjs} +25 -8
- package/.output/server/chunks/build/useDcwWrites-B22mwliK.mjs.map +1 -0
- package/.output/server/chunks/build/useLocalTime-DZ2RAtVs.mjs +49 -0
- package/.output/server/chunks/build/useLocalTime-DZ2RAtVs.mjs.map +1 -0
- package/.output/server/chunks/build/{useLogsFormat-BlwLpyzy.mjs → useLogsFormat-B-o4MHy7.mjs} +7 -7
- package/.output/server/chunks/build/{useLogsFormat-BlwLpyzy.mjs.map → useLogsFormat-B-o4MHy7.mjs.map} +1 -1
- package/.output/server/chunks/build/{useLogsManual-Deev2Cjk.mjs → useLogsManual-COfCyUtj.mjs} +7 -7
- package/.output/server/chunks/build/{useLogsManual-Deev2Cjk.mjs.map → useLogsManual-COfCyUtj.mjs.map} +1 -1
- package/.output/server/chunks/build/useLogsQuery-CRAm2hmS.mjs +6 -6
- package/.output/server/chunks/build/useLogsScope-ClNijVj4.mjs +6 -6
- package/.output/server/chunks/build/{useMonitorColumns-ylxrUNTK.mjs → useMonitorColumns-DhYvkLDq.mjs} +7 -7
- package/.output/server/chunks/build/{useMonitorColumns-ylxrUNTK.mjs.map → useMonitorColumns-DhYvkLDq.mjs.map} +1 -1
- package/.output/server/chunks/build/{useMonitorData-CEpKXoD4.mjs → useMonitorData-guVjMDtR.mjs} +9 -8
- package/.output/server/chunks/build/useMonitorData-guVjMDtR.mjs.map +1 -0
- package/.output/server/chunks/build/{useMonitorFormat-_7zLapf3.mjs → useMonitorFormat-C7lhZe4g.mjs} +13 -12
- package/.output/server/chunks/build/useMonitorFormat-C7lhZe4g.mjs.map +1 -0
- package/.output/server/chunks/build/useMonitorTerminal-Dj4QwRNW.mjs +6 -6
- package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs +191 -0
- package/.output/server/chunks/build/useOperationsFeed-CeXeHqUK.mjs.map +1 -0
- package/.output/server/chunks/build/{useTeamActions-D6sxdpkP.mjs → useTeamActions-C4n-taBk.mjs} +7 -7
- package/.output/server/chunks/build/{useTeamActions-D6sxdpkP.mjs.map → useTeamActions-C4n-taBk.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamAddMemberDialog-Q-ntQ6Vo.mjs → useTeamAddMemberDialog-Cp_z3nMa.mjs} +7 -7
- package/.output/server/chunks/build/{useTeamAddMemberDialog-Q-ntQ6Vo.mjs.map → useTeamAddMemberDialog-Cp_z3nMa.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamCreateDialog-D7OMfDTM.mjs → useTeamCreateDialog-C8LKUoe2.mjs} +7 -7
- package/.output/server/chunks/build/{useTeamCreateDialog-D7OMfDTM.mjs.map → useTeamCreateDialog-C8LKUoe2.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamDeployDialog-vBRqjiut.mjs → useTeamDeployDialog-wdBVsNWY.mjs} +7 -7
- package/.output/server/chunks/build/{useTeamDeployDialog-vBRqjiut.mjs.map → useTeamDeployDialog-wdBVsNWY.mjs.map} +1 -1
- package/.output/server/chunks/build/useTeamDialogState-CFRUQxAf.mjs +6 -6
- package/.output/server/chunks/build/{useTeamPluginDialog-B8kxewpZ.mjs → useTeamPluginDialog-CIk8G8nI.mjs} +7 -7
- package/.output/server/chunks/build/{useTeamPluginDialog-B8kxewpZ.mjs.map → useTeamPluginDialog-CIk8G8nI.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamsCatalog-xRhk7ezA.mjs → useTeamsCatalog-D6TULzmS.mjs} +7 -7
- package/.output/server/chunks/build/{useTeamsCatalog-xRhk7ezA.mjs.map → useTeamsCatalog-D6TULzmS.mjs.map} +1 -1
- package/.output/server/chunks/build/useTokenClipboard-CwQpoFeP.mjs +6 -6
- package/.output/server/chunks/build/{useTokenCreate-DpDcF1Vx.mjs → useTokenCreate-DkYvEQUD.mjs} +7 -7
- package/.output/server/chunks/build/{useTokenCreate-DpDcF1Vx.mjs.map → useTokenCreate-DkYvEQUD.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTokenRename-BRejFrtc.mjs → useTokenRename-DOCP4aeI.mjs} +7 -7
- package/.output/server/chunks/build/{useTokenRename-BRejFrtc.mjs.map → useTokenRename-DOCP4aeI.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTokenReveal-DER2afAS.mjs → useTokenReveal-CybwwflV.mjs} +7 -7
- package/.output/server/chunks/build/{useTokenReveal-DER2afAS.mjs.map → useTokenReveal-CybwwflV.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTokensList-DHt65IOY.mjs → useTokensList-BLiMvrc4.mjs} +7 -7
- package/.output/server/chunks/build/{useTokensList-DHt65IOY.mjs.map → useTokensList-BLiMvrc4.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkbenchAuth-B2j-zILO.mjs → useWorkbenchAuth-DqjBX-6w.mjs} +7 -7
- package/.output/server/chunks/build/{useWorkbenchAuth-B2j-zILO.mjs.map → useWorkbenchAuth-DqjBX-6w.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkbenchWorkspaces-B_2mOxN6.mjs → useWorkbenchWorkspaces-DgiSCzsX.mjs} +10 -9
- package/.output/server/chunks/build/useWorkbenchWorkspaces-DgiSCzsX.mjs.map +1 -0
- package/.output/server/chunks/build/{useWorkshopWs-B-Es2Xg3.mjs → useWorkshopWs-Bm80bLn7.mjs} +8 -7
- package/.output/server/chunks/build/useWorkshopWs-Bm80bLn7.mjs.map +1 -0
- package/.output/server/chunks/build/{useWorkspaceAuth-tQ1ORWXo.mjs → useWorkspaceAuth-Dlvj9csD.mjs} +8 -8
- package/.output/server/chunks/build/{useWorkspaceAuth-tQ1ORWXo.mjs.map → useWorkspaceAuth-Dlvj9csD.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkspaceChannels-BwB6TAWY.mjs → useWorkspaceChannels-D61Al2dr.mjs} +11 -10
- package/.output/server/chunks/build/useWorkspaceChannels-D61Al2dr.mjs.map +1 -0
- package/.output/server/chunks/build/{useWorkspacePanels-CuAmDpT5.mjs → useWorkspacePanels-CTwREmq0.mjs} +8 -8
- package/.output/server/chunks/build/{useWorkspacePanels-CuAmDpT5.mjs.map → useWorkspacePanels-CTwREmq0.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkspaceShell-CcQ4JlqO.mjs → useWorkspaceShell-BCypjjjE.mjs} +7 -7
- package/.output/server/chunks/build/{useWorkspaceShell-CcQ4JlqO.mjs.map → useWorkspaceShell-BCypjjjE.mjs.map} +1 -1
- package/.output/server/chunks/build/{users-De2HygNt.mjs → users-CCf5PgRs.mjs} +8 -8
- package/.output/server/chunks/build/{users-De2HygNt.mjs.map → users-CCf5PgRs.mjs.map} +1 -1
- package/.output/server/chunks/build/{workshop-CmgpTwyf.mjs → workshop-FQ4YzooB.mjs} +13 -12
- package/.output/server/chunks/build/workshop-FQ4YzooB.mjs.map +1 -0
- package/.output/server/chunks/build/{workspaces-DVIEk1Bl.mjs → workspaces-CmW0cpOt.mjs} +1 -1
- package/.output/server/chunks/build/{workspaces-DVIEk1Bl.mjs.map → workspaces-CmW0cpOt.mjs.map} +1 -1
- package/.output/server/chunks/routes/api/health.get.mjs +6 -6
- package/.output/server/chunks/routes/api/index.get.mjs +7 -7
- package/.output/server/chunks/routes/api/index.post.mjs +7 -7
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +6 -6
- package/.output/server/chunks/routes/api/metrics.mjs +6 -6
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +6 -6
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +6 -6
- package/.output/server/chunks/routes/api/plugins/i18n.get.mjs +6 -6
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +6 -6
- package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/system/config.get.mjs +6 -6
- package/.output/server/chunks/routes/api/system/index.get.mjs +6 -6
- package/.output/server/chunks/routes/api/system/index.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/system/index.post.mjs +6 -6
- package/.output/server/chunks/routes/api/system/index2.get.mjs +6 -6
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +6 -6
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +6 -6
- package/.output/server/chunks/routes/api/system/monitor.get.mjs +6 -6
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs +6 -6
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +6 -6
- package/.output/server/chunks/routes/api/system/timezone.get.mjs +36 -0
- package/.output/server/chunks/routes/api/system/timezone.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +7 -7
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +7 -7
- package/.output/server/chunks/routes/api/users/index.get.mjs +7 -7
- package/.output/server/chunks/routes/api/users/index.post.mjs +7 -7
- package/.output/server/chunks/routes/api/users/login.post.mjs +7 -7
- package/.output/server/chunks/routes/api/users/logout.post.mjs +7 -7
- package/.output/server/chunks/routes/api/users/me.get.mjs +7 -7
- package/.output/server/chunks/routes/api/users/register.post.mjs +7 -7
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs +7 -7
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +7 -7
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +5 -5
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +10 -7
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +7 -8
- package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +7 -8
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +7 -8
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +20 -7
- package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +7 -8
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +49 -0
- package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +35 -0
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +35 -0
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +44 -0
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +46 -0
- package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +5 -5
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +5 -5
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +5 -5
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/caller.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +16 -10
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/messages/_messageId/read.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/permissions.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/channels/_id/index6.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId/approve.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/_userId_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/join.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/members/leave.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +51 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +71 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +9 -9
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +5 -5
- package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index11.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index12.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index13.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index14.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +7 -8
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/index9.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/schedules/_id/run.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/tasks/_id/reassign.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/tasks/_id/update.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +7 -7
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +6 -6
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +6 -6
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/virtual/entry.mjs +645 -525
- package/.output/server/chunks/virtual/entry.mjs.map +1 -1
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/index.mjs +6 -6
- package/.output/server/package.json +1 -1
- package/README-zh.md +829 -813
- package/README.md +839 -823
- package/app/components/AppSidebar.vue +1 -0
- package/app/components/aml/AmlModelsTable.vue +180 -173
- package/app/components/daq/DaqDetailFramesTile.vue +140 -139
- package/app/components/daq/DaqDetailHistoryCard.vue +129 -128
- package/app/components/dcw/DcwAddNodeModal.vue +342 -328
- package/app/components/dcw/DcwNodesTable.vue +290 -253
- package/app/components/dcw/DcwQueryCard.vue +252 -251
- package/app/components/dcw/DcwRecipeEditModal.vue +297 -285
- package/app/components/dcw/DcwRecipePanel.vue +371 -367
- package/app/components/operations/OperationsFilterCard.vue +164 -0
- package/app/components/operations/OperationsPageHead.vue +47 -0
- package/app/components/operations/OperationsTimeline.vue +215 -0
- package/app/components/settings/RuntimeFieldRow.vue +207 -189
- package/app/components/workshop/ChatTimeline.vue +596 -569
- package/app/components/workshop/EventBlock.vue +224 -214
- package/app/components/workshop/blocks/ClusterTool.vue +20 -2
- package/app/components/workshop/console/LineOperationsPanel.vue +179 -0
- package/app/components/workshop/console/RightPane.vue +6 -0
- package/app/composables/workshop/event-blocks/constants.ts +48 -2
- package/app/composables/workshop/operation-events.ts +151 -0
- package/app/composables/workshop/useAmlStream.ts +137 -136
- package/app/composables/workshop/useLocalTime.ts +81 -37
- package/app/config/schema.ts +3 -0
- package/app/pages/aml/styles.css +422 -420
- package/app/pages/aml/types.ts +195 -189
- package/app/pages/dcw/[id].vue +300 -297
- package/app/pages/dcw/composables/useDcwAddNode.ts +124 -121
- package/app/pages/dcw/composables/useDcwRecipes.ts +242 -239
- package/app/pages/dcw/composables/useDcwWrites.ts +100 -81
- package/app/pages/monitor/composables/useMonitorData.ts +125 -124
- package/app/pages/monitor/composables/useMonitorFormat.ts +41 -39
- package/app/pages/operations/composables/useOperationsFeed.ts +137 -0
- package/app/pages/operations.vue +61 -0
- package/app/stores/runtime-config.ts +1 -1
- package/app/stores/workshop/chat.ts +434 -434
- package/app/stores/workshop/notifications.ts +288 -288
- package/app/utils/dcw-recipe-form.ts +26 -0
- package/cli/aw.mjs +3 -2
- package/cli/commands/mcp.mjs +154 -0
- package/cli/core/context.mjs +5 -0
- package/config.yml +180 -176
- package/docs/aml.md +112 -111
- package/docs/cli.en.md +447 -445
- package/docs/cli.md +412 -410
- package/docs/mcp.en.md +27 -0
- package/docs/mcp.md +108 -0
- package/docs/plugins.en.md +621 -567
- package/docs/plugins.md +610 -560
- package/docs/sdk.en.md +964 -922
- package/docs/sdk.md +900 -861
- package/i18n/dicts/aml.json +207 -205
- package/i18n/locales/en.ts +37 -0
- package/i18n/locales/zh-CN.ts +37 -0
- package/mcp/aw-mcp-server.mjs +796 -0
- package/mcp/discovery.mjs +227 -0
- package/nuxt.config.ts +2 -0
- package/package.json +181 -172
- package/scripts/.chk-tok +1 -0
- package/scripts/.retrain-body.json +1 -0
- package/scripts/.retrain3-body.json +1 -0
- package/scripts/.rt-tok +1 -0
- package/scripts/.rt3-tok +1 -0
- package/scripts/_audit/.tmp/audit-data/dcw-params.json +15 -0
- package/scripts/_audit/.tmp/audit-data/dcws.json +30 -0
- package/scripts/_audit/aw-mcp-live-e2e.mjs +293 -0
- package/scripts/_audit/dcw-controller-e2e.ts +25 -18
- package/scripts/_audit/dcw-rollback-ledger.ts +4 -1
- package/scripts/_audit/feature-audit-e2e.mjs +339 -0
- package/scripts/_audit/full-e2e-adopt.mjs +238 -0
- package/scripts/_audit/full-e2e-close-loop.mjs +134 -0
- package/scripts/_audit/full-e2e-retrain.mjs +320 -0
- package/scripts/_audit/full-e2e-supplement.mjs +192 -0
- package/scripts/_audit/full-e2e-ui-final.mjs +111 -0
- package/scripts/_audit/full-e2e-ui-mount.mjs +111 -0
- package/scripts/_audit/full-feature-e2e-20260927.mjs +627 -0
- package/scripts/_audit/kb-diag-complete.mjs +261 -0
- package/scripts/_audit/kb-diag-complete2.mjs +271 -0
- package/scripts/_audit/kb-diag-loop-e2e.mjs +357 -0
- package/scripts/_audit/kb-diag-loop-mock.mjs +416 -0
- package/scripts/_audit/kb-diag-loop-v2.mjs +314 -0
- package/scripts/_audit/recipe-save-e2e.mjs +365 -0
- package/scripts/_audit/run.mjs +21 -0
- package/scripts/_audit/runtime-dir-e2e.mjs +393 -0
- package/scripts/_audit/skills-guided-e2e.mjs +316 -0
- package/scripts/_audit/stability-soak.mjs +252 -0
- package/scripts/_aw0748-failclosed-probe.mjs +1 -1
- package/scripts/_aw0748-mock-closedloop.mjs +12 -0
- package/scripts/_aw0748-mock-dispatch-diag.mjs +66 -0
- package/scripts/_dbg-configroot-audit.mjs +86 -84
- package/scripts/_dbg-daq-intervals-func.mjs +115 -94
- package/scripts/_dbg-optloop-ui-shots.mjs +52 -0
- package/scripts/_dbg-param-map-e2e.ts +7 -1
- package/scripts/_dbg-perms-e2e.mjs +11 -1
- package/scripts/_dbg-protocol-matrix.mjs +3 -1
- package/scripts/_dbg-render-regression.mjs +67 -25
- package/scripts/_lib-aml-python-run.mjs +17 -0
- package/scripts/_lint-reflow.mjs +105 -0
- package/scripts/_probe-model-channel-link.cjs +25 -0
- package/scripts/acceptance-aml-hybrid-e2e.ts +396 -0
- package/scripts/acceptance-aml-hybrid-twin.ts +3 -3
- package/scripts/acceptance-aml-model-identity.ts +137 -0
- package/scripts/dev-guard.mjs +4 -2
- package/scripts/dev-protocol-simulators.mjs +3 -2
- package/scripts/e2e-aml-decoupled.mjs +162 -0
- package/scripts/e2e-closedloop/scenarios-accounts.mjs +2 -0
- package/scripts/e2e-closedloop/scenarios-authz.mjs +12 -6
- package/scripts/e2e-closedloop/scenarios-daq-dcw.mjs +4 -1
- package/scripts/e2e-timezone-settings.mjs +57 -0
- package/scripts/live-aml-mockomp.mjs +304 -0
- package/scripts/live-aml-optloop-resume.mjs +322 -0
- package/scripts/live-aml-optloop.mjs +545 -0
- package/scripts/live-aml-stage9.mjs +169 -0
- package/scripts/live-aml-two-goals.mjs +315 -0
- package/scripts/live-optloop-two-modes.mjs +857 -0
- package/scripts/start.mjs +3 -1
- package/scripts/test-aw-skills.mjs +102 -0
- package/scripts/test-twin-plugin-sdk.mjs +30 -0
- package/sdk/context.mjs +305 -0
- package/sdk/index.d.mts +149 -0
- package/sdk/index.mjs +5 -2
- package/server/api/system/timezone.get.ts +20 -0
- package/server/api/workshop/agent-tools/bindings/[id].patch.ts +28 -23
- package/server/api/workshop/aml/jobs/index.post.ts +74 -44
- package/server/api/workshop/aml/training-plans/[id]/train.post.ts +18 -0
- package/server/api/workshop/aml/training-plans/[id].delete.ts +18 -0
- package/server/api/workshop/aml/training-plans/[id].patch.ts +30 -0
- package/server/api/workshop/aml/training-plans/index.get.ts +9 -0
- package/server/api/workshop/aml/training-plans/index.post.ts +43 -0
- package/server/api/workshop/aml/twin/providers.get.ts +33 -0
- package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +8 -2
- package/server/api/workshop/channels/[id]/twin-profile.get.ts +45 -0
- package/server/api/workshop/channels/[id]/twin-profile.patch.ts +72 -0
- package/server/plugins/00-local-time.ts +13 -10
- package/server/plugins/aml-twin-worker.ts +32 -0
- package/server/plugins/aw-plugins.ts +16 -0
- package/server/plugins/workshop.ts +21 -0
- package/server/plugins-builtin/twin-injection-default/index.mjs +23 -0
- package/server/services/system-config/helpers.ts +42 -41
- package/server/services/system-config/recompute.ts +68 -66
- package/server/services/workshop/agents/host-tool-bridge/catalog.ts +50 -18
- package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +51 -5
- package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +19 -6
- package/server/services/workshop/agents/industrial/aml-dataset-tools.ts +276 -276
- package/server/services/workshop/agents/industrial/aml-job-tools.ts +549 -363
- package/server/services/workshop/agents/industrial/audit-query.ts +30 -0
- package/server/services/workshop/agents/industrial/dcw-judge-tools.ts +9 -13
- package/server/services/workshop/agents/industrial/dcw-tools.ts +208 -213
- package/server/services/workshop/agents/industrial/index.ts +3 -2
- package/server/services/workshop/agents/industrial/manual-approval.ts +45 -0
- package/server/services/workshop/agents/industrial/ops-tools.ts +370 -382
- package/server/services/workshop/agents/industrial/optimization-tools.ts +148 -0
- package/server/services/workshop/agents/industrial/param-tools.ts +169 -172
- package/server/services/workshop/agents/industrial/twin-tools.ts +618 -61
- package/server/services/workshop/agents/industrial-context.ts +4 -2
- package/server/services/workshop/agents/node-bindings.repo.ts +35 -2
- package/server/services/workshop/agents/tool-classes.ts +28 -0
- package/server/services/workshop/aml/aml.repo.ts +412 -386
- package/server/services/workshop/aml/job-orchestrator/stages.ts +108 -96
- package/server/services/workshop/aml/job-orchestrator/start-job.ts +29 -5
- package/server/services/workshop/aml/job-orchestrator/submit.ts +36 -1
- package/server/services/workshop/aml/model-registry.ts +265 -175
- package/server/services/workshop/aml/predictor.ts +336 -262
- package/server/services/workshop/aml/python/__pycache__/aml_eval.cpython-312.pyc +0 -0
- package/server/services/workshop/aml/python/__pycache__/amlkit.cpython-312.pyc +0 -0
- package/server/services/workshop/aml/python/__pycache__/train-example.cpython-312.pyc +0 -0
- package/server/services/workshop/aml/python/__pycache__/train-hybrid-example.cpython-312.pyc +0 -0
- package/server/services/workshop/aml/python/aml_eval.py +39 -6
- package/server/services/workshop/aml/python/amlkit.py +222 -3
- package/server/services/workshop/aml/python/train-hybrid-example.py +278 -32
- package/server/services/workshop/aml/runtime.ts +4 -3
- package/server/services/workshop/aml/twin/acceptance.ts +26 -0
- package/server/services/workshop/aml/twin/binding-snapshot.ts +603 -0
- package/server/services/workshop/aml/twin/calibration-worker.ts +150 -0
- package/server/services/workshop/aml/twin/channel-profile.ts +80 -7
- package/server/services/workshop/aml/twin/contracts.ts +3 -0
- package/server/services/workshop/aml/twin/declarative-provider.ts +108 -0
- package/server/services/workshop/aml/twin/feature-flags.ts +63 -0
- package/server/services/workshop/aml/twin/hybrid-provider.ts +86 -0
- package/server/services/workshop/aml/twin/model-backed-provider.ts +332 -0
- package/server/services/workshop/aml/twin/physics-spec-draft.ts +185 -0
- package/server/services/workshop/aml/twin/physics-spec.ts +338 -0
- package/server/services/workshop/aml/twin/prompt-composer.ts +143 -0
- package/server/services/workshop/aml/twin/provider-contracts.ts +98 -34
- package/server/services/workshop/aml/twin/provider-health.ts +69 -8
- package/server/services/workshop/aml/twin/provider-loader.ts +76 -45
- package/server/services/workshop/aml/twin/provider-registry.ts +670 -49
- package/server/services/workshop/aml/twin/repo.ts +63 -4
- package/server/services/workshop/aml/twin/scene-builder.ts +118 -0
- package/server/services/workshop/aml/twin/scene-lifecycle.ts +60 -0
- package/server/services/workshop/aml/twin/snapshot-service.ts +395 -22
- package/server/services/workshop/aml/twin/training-plans.ts +260 -0
- package/server/services/workshop/aml/twin/trial-service.ts +97 -13
- package/server/services/workshop/aml/twin/write-guard.ts +20 -0
- package/server/services/workshop/daq/daq-controller/state.ts +8 -5
- package/server/services/workshop/daq/drivers/registry.ts +116 -144
- package/server/services/workshop/db/database/migrations.ts +40 -0
- package/server/services/workshop/db/database/open.ts +4 -1
- package/server/services/workshop/db/database/schema.ts +68 -1
- package/server/services/workshop/db/database/seed.ts +22 -0
- package/server/services/workshop/db/readonly.ts +30 -0
- package/server/services/workshop/dcw/dcw-controller/crud.ts +162 -152
- package/server/services/workshop/dcw/dcw-controller/helpers.ts +61 -57
- package/server/services/workshop/dcw/dcw-controller/types.ts +61 -57
- package/server/services/workshop/dcw/dcw-controller/write-audit.ts +49 -0
- package/server/services/workshop/dcw/dcw-controller/write.ts +137 -147
- package/server/services/workshop/dcw/dcw-node.ts +18 -2
- package/server/services/workshop/dcw/dcw-recipe.repo.ts +5 -0
- package/server/services/workshop/dcw/dcw-runtime.ts +9 -3
- package/server/services/workshop/dcw/drivers/index.ts +2 -1
- package/server/services/workshop/dcw/drivers/modbus-rtu.ts +85 -93
- package/server/services/workshop/dcw/drivers/modbus.ts +131 -139
- package/server/services/workshop/dcw/drivers/opcua.ts +103 -110
- package/server/services/workshop/dcw/drivers/registry.ts +25 -45
- package/server/services/workshop/dcw/drivers/shared.ts +24 -6
- package/server/services/workshop/dcw/param-limits.ts +193 -142
- package/server/services/workshop/dcw/param-map.repo.ts +318 -305
- package/server/services/workshop/plugin-driver-registry.ts +108 -0
- package/server/services/workshop/runtime/manager/admin-channel.ts +13 -0
- package/server/services/workshop/runtime/manager/channel-templates.ts +29 -2
- package/server/services/workshop/runtime/manager/runtime-wiring.ts +8 -0
- package/server/services/workshop/runtime/permission-scope.ts +79 -81
- package/server/services/workshop/runtime/schedule-runtime.ts +33 -6
- package/server/utils/errors.ts +8 -0
- package/shared/config/engine.mjs +5 -0
- package/shared/config/home.mjs +15 -20
- package/shared/config/schema.json +135 -133
- package/shared/dcw-protocol/line.ts +133 -131
- package/shared/dcw-protocol/recipe.ts +311 -301
- package/shared/local-time.mjs +116 -36
- package/.output/public/_nuxt/-hB4kEmt.js +0 -1
- package/.output/public/_nuxt/74x7BOWv2.js +0 -1
- package/.output/public/_nuxt/9c5GOgbu.js +0 -1
- package/.output/public/_nuxt/BHwG4yNs.js +0 -1
- package/.output/public/_nuxt/BIOq3xqe2.js +0 -1
- package/.output/public/_nuxt/BL_dbd2v2.js +0 -1
- package/.output/public/_nuxt/BNnnYEYh2.js +0 -1
- package/.output/public/_nuxt/BxYTM0hb.js +0 -1
- package/.output/public/_nuxt/C3twEwTh2.js +0 -1
- package/.output/public/_nuxt/CGZVhYJ4.js +0 -1
- package/.output/public/_nuxt/CJRDL4EG.js +0 -1
- package/.output/public/_nuxt/CKQPwwZa2.js +0 -1
- package/.output/public/_nuxt/CeWnOF3O.js +0 -1
- package/.output/public/_nuxt/ChoLwR-s.js +0 -1
- package/.output/public/_nuxt/DGw8juu_.js +0 -2
- package/.output/public/_nuxt/DJdDFnjG2.js +0 -1
- package/.output/public/_nuxt/DXIaadqv.js +0 -1
- package/.output/public/_nuxt/D_7AzAWe.js +0 -1
- package/.output/public/_nuxt/DdvQ7LRI.js +0 -14
- package/.output/public/_nuxt/DeYsUzhr.js +0 -1
- package/.output/public/_nuxt/DkLCjrCk2.js +0 -47
- package/.output/public/_nuxt/DpqA8D8_.js +0 -1
- package/.output/public/_nuxt/DqtgGFEc.js +0 -1
- package/.output/public/_nuxt/Dy3oXKdn2.js +0 -1
- package/.output/public/_nuxt/PLGqdko0.js +0 -1
- package/.output/public/_nuxt/U8oQxruK.js +0 -1
- package/.output/public/_nuxt/WleoCtUX.js +0 -1
- package/.output/public/_nuxt/ZvXovq7N2.js +0 -1
- package/.output/public/_nuxt/_id_.Bossmhv1.css +0 -1
- package/.output/public/_nuxt/_wsId_.D-u-dbP9.css +0 -1
- package/.output/public/_nuxt/aml.Bi5X6_oi.css +0 -1
- package/.output/public/_nuxt/builds/meta/0530cee1-fff5-4025-a6f4-5708b6534608.json +0 -1
- package/.output/public/_nuxt/cDcDztgb2.js +0 -1
- package/.output/public/_nuxt/e7BBCLxr.js +0 -1
- package/.output/public/_nuxt/hkMGMTqt.js +0 -1
- package/.output/public/_nuxt/ikAUnxx3.js +0 -1
- package/.output/public/_nuxt/y9kob70X.js +0 -1
- package/.output/server/chunks/_/env-manager.mjs +0 -162
- package/.output/server/chunks/_/env-manager.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-DgMpjM3_.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-Dv3BQbYV.mjs.map +0 -1
- package/.output/server/chunks/build/_wsId_-BKJvFmyf.mjs.map +0 -1
- package/.output/server/chunks/build/aml-DdWicH3t.mjs.map +0 -1
- package/.output/server/chunks/build/client-only-qNA2OVV_.mjs +0 -43
- package/.output/server/chunks/build/client-only-qNA2OVV_.mjs.map +0 -1
- package/.output/server/chunks/build/daq-CPtsh0e7.mjs.map +0 -1
- package/.output/server/chunks/build/logs-CeaiO3y9.mjs.map +0 -1
- package/.output/server/chunks/build/pages-Bn90ijKD.mjs.map +0 -1
- package/.output/server/chunks/build/settings-DVAUVMsX.mjs.map +0 -1
- package/.output/server/chunks/build/useAmlJobs-DBuLvWMF.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwAddNode-C8nE7geh.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwRecipes-BzGOymqz.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwWrites-3RxwN36I.mjs.map +0 -1
- package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +0 -35
- package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs.map +0 -1
- package/.output/server/chunks/build/useMonitorData-CEpKXoD4.mjs.map +0 -1
- package/.output/server/chunks/build/useMonitorFormat-_7zLapf3.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkbenchWorkspaces-B_2mOxN6.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkshopWs-B-Es2Xg3.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkspaceChannels-BwB6TAWY.mjs.map +0 -1
- package/.output/server/chunks/build/workshop-CmgpTwyf.mjs.map +0 -1
- /package/.output/public/_nuxt/{B2x8SKRO.js → B2x8SKRO2.js} +0 -0
- /package/.output/public/_nuxt/{BzvHUfRR2.js → BzvHUfRR.js} +0 -0
- /package/.output/public/_nuxt/{DPUXbTg92.js → DPUXbTg9.js} +0 -0
- /package/.output/public/_nuxt/{DdNujZN5.js → DdNujZN52.js} +0 -0
- /package/.output/public/_nuxt/{DlUQa0wn2.js → DlUQa0wn.js} +0 -0
- /package/.output/public/_nuxt/{Du9v6qGB.js → Du9v6qGB2.js} +0 -0
- /package/.output/public/_nuxt/{TOWR4WpO.js → TOWR4WpO2.js} +0 -0
- /package/.output/public/_nuxt/{cBI0JqsV2.js → cBI0JqsV.js} +0 -0
- /package/.output/public/_nuxt/{zh-S_7rN.js → zh-S_7rN2.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page[data-v-6556153b]{padding:4px}h1[data-v-6556153b]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-6556153b]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-6556153b]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-6556153b]{opacity:.55}.err[data-v-6556153b]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-6556153b]{padding:10px 12px}.badges[data-v-6556153b]{gap:8px;display:flex}.badge[data-v-6556153b]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-6556153b]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-6556153b]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-6556153b]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-6556153b]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-6556153b]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-6556153b]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-6556153b]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-6556153b]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-6556153b]{color:var(--tone-success-dot)}.ov-item.bad[data-v-6556153b]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-6556153b]{color:var(--accent)}.ov-row .sep[data-v-6556153b]{opacity:.4}.ov-row .reload[data-v-6556153b]{margin-left:auto}.zone[data-v-6556153b]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-6556153b]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-6556153b]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-6556153b]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-6556153b]{align-items:center;gap:8px;display:flex}.env-grid[data-v-6556153b]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-6556153b]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-6556153b]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-6556153b]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-6556153b]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-6556153b]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-6556153b]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-6556153b]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-6556153b]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-6556153b]{color:var(--ink-faint)}.env-card .ec-actions[data-v-6556153b]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-6556153b]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-6556153b]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-6556153b]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-6556153b]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-6556153b]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-6556153b]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-6556153b]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-6556153b]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-6556153b{to{transform:rotate(1turn)}}.spin[data-v-6556153b]{animation:1s linear infinite amlSpin-6556153b;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-6556153b]{animation:none}}.note-edit[data-v-6556153b]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-6556153b]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-6556153b]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-6556153b]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-6556153b]:hover{opacity:1}.live-dot[data-v-6556153b]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-6556153b]{animation:1.8s ease-in-out infinite amlPulse-6556153b}}@keyframes amlPulse-6556153b{50%{opacity:.4}}.tbl[data-v-6556153b]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-6556153b],.tbl th[data-v-6556153b]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-6556153b]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-6556153b],.tbl .right[data-v-6556153b]{text-align:right}.tbl .acts[data-v-6556153b]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-6556153b]{margin-left:6px}.row-main[data-v-6556153b]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-6556153b]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-6556153b]{border-bottom-color:#0000}.note-cell[data-v-6556153b]{max-width:260px}.note[data-v-6556153b]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-6556153b]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-6556153b]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-6556153b]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-6556153b]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-6556153b]{grid-template-columns:1fr}}.det-title[data-v-6556153b]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-6556153b]:first-child{margin-top:10px}.sub-tbl[data-v-6556153b]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-6556153b],.sub-tbl th[data-v-6556153b]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-6556153b]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-6556153b]{text-align:right}.role-chip[data-v-6556153b]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-6556153b]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-6556153b]{color:var(--ink)}.drop-line[data-v-6556153b]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-6556153b]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-6556153b],.st-pill.queued[data-v-6556153b]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-6556153b],.st-pill.running[data-v-6556153b],.st-pill.training[data-v-6556153b]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-6556153b],.st-pill.gates_passed[data-v-6556153b]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-6556153b],.st-pill.gates_failed[data-v-6556153b],.st-pill.timeout[data-v-6556153b]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-6556153b],.st-pill.interrupted[data-v-6556153b]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-6556153b]{min-width:140px}.prog-cell[data-v-6556153b]{white-space:nowrap}.prog[data-v-6556153b]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-6556153b]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-6556153b]{background:var(--tone-success-dot)}.prog i.bad[data-v-6556153b]{background:var(--tone-danger-dot)}.prog-num[data-v-6556153b]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-6556153b]{font-weight:700}.gate-detail[data-v-6556153b]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-6556153b]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-6556153b]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-6556153b]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-6556153b]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-6556153b]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-6556153b]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-6556153b]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-6556153b]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-6556153b]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-6556153b]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-6556153b]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-6556153b]{opacity:.55;border-style:dashed}.inp-sel[data-v-6556153b]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-6556153b]{margin-top:4px}.io-grid[data-v-6556153b]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-6556153b]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-6556153b]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-6556153b]{grid-template-columns:1fr}}.pc-field[data-v-6556153b]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-6556153b]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-6556153b]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-6556153b]{margin-top:auto}.inp[data-v-6556153b]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-6556153b]{resize:vertical;line-height:1.5}.inp[data-v-6556153b]:focus{border-color:var(--accent);outline:none}.hint[data-v-6556153b]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-6556153b]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-6556153b]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-6556153b]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-6556153b]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-6556153b]{grid-template-columns:1fr}}.f[data-v-6556153b]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-6556153b]{grid-column:1/-1}.f em[data-v-6556153b]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-6556153b]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-6556153b]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-6556153b]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-6556153b]{flex:auto}.node-row .sel[data-v-6556153b]{flex:0 0 220px}.m-err[data-v-6556153b]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-6556153b]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-6556153b]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-6556153b]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-6556153b]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-6556153b]{min-width:720px}.tbl-jobs[data-v-6556153b]{min-width:860px}.tbl-exp[data-v-6556153b]{min-width:700px}.tbl-models[data-v-6556153b]{min-width:780px}.tbl td[data-v-6556153b],.tbl th[data-v-6556153b]{white-space:nowrap}.tbl tbody>tr>td[data-v-6556153b]:first-child,.tbl thead>tr>th[data-v-6556153b]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-6556153b]:first-child{z-index:3}.detail-row>td[data-v-6556153b]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-6556153b],.inp-sel[data-v-6556153b],.mini-btn[data-v-6556153b],.note-edit input[data-v-6556153b],.pill-btn[data-v-6556153b]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-6556153b]{margin-left:8px}.note-cell[data-v-6556153b]{max-width:200px}.note-edit[data-v-6556153b]{flex-wrap:wrap}.zone[data-v-6556153b]{padding:12px 12px 14px}.f-grid[data-v-6556153b],.det-grid[data-v-6556153b]{grid-template-columns:1fr}.m-actions[data-v-6556153b],.mx-actions[data-v-6556153b]{flex-wrap:wrap}.modal[data-v-6556153b]{padding:16px}.node-row[data-v-6556153b]{flex-wrap:wrap}.node-row .sel[data-v-6556153b]{flex:100%}.modal-mask[data-v-6556153b]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-6556153b]{gap:8px}.zone-head h2[data-v-6556153b]{font-size:14px}.zone-actions[data-v-6556153b]{flex-wrap:wrap}.ov-card[data-v-6556153b]{padding:10px 12px}}.page[data-v-b2590880]{padding:4px}h1[data-v-b2590880]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-b2590880]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-b2590880]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-b2590880]{opacity:.55}.err[data-v-b2590880]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-b2590880]{padding:10px 12px}.badges[data-v-b2590880]{gap:8px;display:flex}.badge[data-v-b2590880]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-b2590880]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-b2590880]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-b2590880]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-b2590880]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-b2590880]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-b2590880]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-b2590880]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-b2590880]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-b2590880]{color:var(--tone-success-dot)}.ov-item.bad[data-v-b2590880]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-b2590880]{color:var(--accent)}.ov-row .sep[data-v-b2590880]{opacity:.4}.ov-row .reload[data-v-b2590880]{margin-left:auto}.zone[data-v-b2590880]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-b2590880]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-b2590880]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-b2590880]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-b2590880]{align-items:center;gap:8px;display:flex}.env-grid[data-v-b2590880]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-b2590880]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-b2590880]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-b2590880]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-b2590880]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-b2590880]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-b2590880]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-b2590880]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-b2590880]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-b2590880]{color:var(--ink-faint)}.env-card .ec-actions[data-v-b2590880]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-b2590880]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-b2590880]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-b2590880]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-b2590880]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-b2590880]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-b2590880]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-b2590880]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-b2590880]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-b2590880{to{transform:rotate(1turn)}}.spin[data-v-b2590880]{animation:1s linear infinite amlSpin-b2590880;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-b2590880]{animation:none}}.note-edit[data-v-b2590880]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-b2590880]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-b2590880]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-b2590880]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-b2590880]:hover{opacity:1}.live-dot[data-v-b2590880]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-b2590880]{animation:1.8s ease-in-out infinite amlPulse-b2590880}}@keyframes amlPulse-b2590880{50%{opacity:.4}}.tbl[data-v-b2590880]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-b2590880],.tbl th[data-v-b2590880]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-b2590880]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-b2590880],.tbl .right[data-v-b2590880]{text-align:right}.tbl .acts[data-v-b2590880]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-b2590880]{margin-left:6px}.row-main[data-v-b2590880]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-b2590880]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-b2590880]{border-bottom-color:#0000}.note-cell[data-v-b2590880]{max-width:260px}.note[data-v-b2590880]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-b2590880]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-b2590880]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-b2590880]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-b2590880]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-b2590880]{grid-template-columns:1fr}}.det-title[data-v-b2590880]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-b2590880]:first-child{margin-top:10px}.sub-tbl[data-v-b2590880]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-b2590880],.sub-tbl th[data-v-b2590880]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-b2590880]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-b2590880]{text-align:right}.role-chip[data-v-b2590880]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-b2590880]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-b2590880]{color:var(--ink)}.drop-line[data-v-b2590880]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-b2590880]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-b2590880],.st-pill.queued[data-v-b2590880]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-b2590880],.st-pill.running[data-v-b2590880],.st-pill.training[data-v-b2590880]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-b2590880],.st-pill.gates_passed[data-v-b2590880]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-b2590880],.st-pill.gates_failed[data-v-b2590880],.st-pill.timeout[data-v-b2590880]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-b2590880],.st-pill.interrupted[data-v-b2590880]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-b2590880]{min-width:140px}.prog-cell[data-v-b2590880]{white-space:nowrap}.prog[data-v-b2590880]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-b2590880]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-b2590880]{background:var(--tone-success-dot)}.prog i.bad[data-v-b2590880]{background:var(--tone-danger-dot)}.prog-num[data-v-b2590880]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-b2590880]{font-weight:700}.gate-detail[data-v-b2590880]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-b2590880]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-b2590880]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-b2590880]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-b2590880]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-b2590880]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-b2590880]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-b2590880]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-b2590880]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-b2590880]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-b2590880]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-b2590880]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-b2590880]{opacity:.55;border-style:dashed}.inp-sel[data-v-b2590880]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-b2590880]{margin-top:4px}.io-grid[data-v-b2590880]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-b2590880]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-b2590880]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-b2590880]{grid-template-columns:1fr}}.pc-field[data-v-b2590880]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-b2590880]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-b2590880]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-b2590880]{margin-top:auto}.inp[data-v-b2590880]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-b2590880]{resize:vertical;line-height:1.5}.inp[data-v-b2590880]:focus{border-color:var(--accent);outline:none}.hint[data-v-b2590880]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-b2590880]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-b2590880]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-b2590880]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-b2590880]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-b2590880]{grid-template-columns:1fr}}.f[data-v-b2590880]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-b2590880]{grid-column:1/-1}.f em[data-v-b2590880]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-b2590880]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-b2590880]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-b2590880]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-b2590880]{flex:auto}.node-row .sel[data-v-b2590880]{flex:0 0 220px}.m-err[data-v-b2590880]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-b2590880]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-b2590880]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-b2590880]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-b2590880]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-b2590880]{min-width:720px}.tbl-jobs[data-v-b2590880]{min-width:860px}.tbl-exp[data-v-b2590880]{min-width:700px}.tbl-models[data-v-b2590880]{min-width:780px}.tbl td[data-v-b2590880],.tbl th[data-v-b2590880]{white-space:nowrap}.tbl tbody>tr>td[data-v-b2590880]:first-child,.tbl thead>tr>th[data-v-b2590880]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-b2590880]:first-child{z-index:3}.detail-row>td[data-v-b2590880]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-b2590880],.inp-sel[data-v-b2590880],.mini-btn[data-v-b2590880],.note-edit input[data-v-b2590880],.pill-btn[data-v-b2590880]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-b2590880]{margin-left:8px}.note-cell[data-v-b2590880]{max-width:200px}.note-edit[data-v-b2590880]{flex-wrap:wrap}.zone[data-v-b2590880]{padding:12px 12px 14px}.f-grid[data-v-b2590880],.det-grid[data-v-b2590880]{grid-template-columns:1fr}.m-actions[data-v-b2590880],.mx-actions[data-v-b2590880]{flex-wrap:wrap}.modal[data-v-b2590880]{padding:16px}.node-row[data-v-b2590880]{flex-wrap:wrap}.node-row .sel[data-v-b2590880]{flex:100%}.modal-mask[data-v-b2590880]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-b2590880]{gap:8px}.zone-head h2[data-v-b2590880]{font-size:14px}.zone-actions[data-v-b2590880]{flex-wrap:wrap}.ov-card[data-v-b2590880]{padding:10px 12px}}.page[data-v-77db0a40]{padding:4px}h1[data-v-77db0a40]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-77db0a40]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-77db0a40]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-77db0a40]{opacity:.55}.err[data-v-77db0a40]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-77db0a40]{padding:10px 12px}.badges[data-v-77db0a40]{gap:8px;display:flex}.badge[data-v-77db0a40]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-77db0a40]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-77db0a40]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-77db0a40]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-77db0a40]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-77db0a40]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-77db0a40]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-77db0a40]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-77db0a40]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-77db0a40]{color:var(--tone-success-dot)}.ov-item.bad[data-v-77db0a40]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-77db0a40]{color:var(--accent)}.ov-row .sep[data-v-77db0a40]{opacity:.4}.ov-row .reload[data-v-77db0a40]{margin-left:auto}.zone[data-v-77db0a40]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-77db0a40]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-77db0a40]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-77db0a40]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-77db0a40]{align-items:center;gap:8px;display:flex}.env-grid[data-v-77db0a40]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-77db0a40]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-77db0a40]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-77db0a40]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-77db0a40]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-77db0a40]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-77db0a40]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-77db0a40]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-77db0a40]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-77db0a40]{color:var(--ink-faint)}.env-card .ec-actions[data-v-77db0a40]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-77db0a40]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-77db0a40]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-77db0a40]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-77db0a40]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-77db0a40]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-77db0a40]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-77db0a40]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-77db0a40]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-77db0a40{to{transform:rotate(1turn)}}.spin[data-v-77db0a40]{animation:1s linear infinite amlSpin-77db0a40;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-77db0a40]{animation:none}}.note-edit[data-v-77db0a40]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-77db0a40]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-77db0a40]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-77db0a40]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-77db0a40]:hover{opacity:1}.live-dot[data-v-77db0a40]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-77db0a40]{animation:1.8s ease-in-out infinite amlPulse-77db0a40}}@keyframes amlPulse-77db0a40{50%{opacity:.4}}.tbl[data-v-77db0a40]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-77db0a40],.tbl th[data-v-77db0a40]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-77db0a40]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-77db0a40],.tbl .right[data-v-77db0a40]{text-align:right}.tbl .acts[data-v-77db0a40]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-77db0a40]{margin-left:6px}.row-main[data-v-77db0a40]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-77db0a40]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-77db0a40]{border-bottom-color:#0000}.note-cell[data-v-77db0a40]{max-width:260px}.note[data-v-77db0a40]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-77db0a40]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-77db0a40]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-77db0a40]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-77db0a40]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-77db0a40]{grid-template-columns:1fr}}.det-title[data-v-77db0a40]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-77db0a40]:first-child{margin-top:10px}.sub-tbl[data-v-77db0a40]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-77db0a40],.sub-tbl th[data-v-77db0a40]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-77db0a40]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-77db0a40]{text-align:right}.role-chip[data-v-77db0a40]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-77db0a40]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-77db0a40]{color:var(--ink)}.drop-line[data-v-77db0a40]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-77db0a40]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-77db0a40],.st-pill.queued[data-v-77db0a40]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-77db0a40],.st-pill.running[data-v-77db0a40],.st-pill.training[data-v-77db0a40]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-77db0a40],.st-pill.gates_passed[data-v-77db0a40]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-77db0a40],.st-pill.gates_failed[data-v-77db0a40],.st-pill.timeout[data-v-77db0a40]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-77db0a40],.st-pill.interrupted[data-v-77db0a40]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-77db0a40]{min-width:140px}.prog-cell[data-v-77db0a40]{white-space:nowrap}.prog[data-v-77db0a40]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-77db0a40]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-77db0a40]{background:var(--tone-success-dot)}.prog i.bad[data-v-77db0a40]{background:var(--tone-danger-dot)}.prog-num[data-v-77db0a40]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-77db0a40]{font-weight:700}.gate-detail[data-v-77db0a40]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-77db0a40]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-77db0a40]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-77db0a40]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-77db0a40]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-77db0a40]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-77db0a40]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-77db0a40]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-77db0a40]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-77db0a40]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-77db0a40]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-77db0a40]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-77db0a40]{opacity:.55;border-style:dashed}.inp-sel[data-v-77db0a40]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-77db0a40]{margin-top:4px}.io-grid[data-v-77db0a40]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-77db0a40]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-77db0a40]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-77db0a40]{grid-template-columns:1fr}}.pc-field[data-v-77db0a40]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-77db0a40]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-77db0a40]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-77db0a40]{margin-top:auto}.inp[data-v-77db0a40]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-77db0a40]{resize:vertical;line-height:1.5}.inp[data-v-77db0a40]:focus{border-color:var(--accent);outline:none}.hint[data-v-77db0a40]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-77db0a40]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-77db0a40]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-77db0a40]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-77db0a40]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-77db0a40]{grid-template-columns:1fr}}.f[data-v-77db0a40]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-77db0a40]{grid-column:1/-1}.f em[data-v-77db0a40]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-77db0a40]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-77db0a40]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-77db0a40]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-77db0a40]{flex:auto}.node-row .sel[data-v-77db0a40]{flex:0 0 220px}.m-err[data-v-77db0a40]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-77db0a40]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-77db0a40]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-77db0a40]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-77db0a40]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-77db0a40]{min-width:720px}.tbl-jobs[data-v-77db0a40]{min-width:860px}.tbl-exp[data-v-77db0a40]{min-width:700px}.tbl-models[data-v-77db0a40]{min-width:780px}.tbl td[data-v-77db0a40],.tbl th[data-v-77db0a40]{white-space:nowrap}.tbl tbody>tr>td[data-v-77db0a40]:first-child,.tbl thead>tr>th[data-v-77db0a40]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-77db0a40]:first-child{z-index:3}.detail-row>td[data-v-77db0a40]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-77db0a40],.inp-sel[data-v-77db0a40],.mini-btn[data-v-77db0a40],.note-edit input[data-v-77db0a40],.pill-btn[data-v-77db0a40]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-77db0a40]{margin-left:8px}.note-cell[data-v-77db0a40]{max-width:200px}.note-edit[data-v-77db0a40]{flex-wrap:wrap}.zone[data-v-77db0a40]{padding:12px 12px 14px}.f-grid[data-v-77db0a40],.det-grid[data-v-77db0a40]{grid-template-columns:1fr}.m-actions[data-v-77db0a40],.mx-actions[data-v-77db0a40]{flex-wrap:wrap}.modal[data-v-77db0a40]{padding:16px}.node-row[data-v-77db0a40]{flex-wrap:wrap}.node-row .sel[data-v-77db0a40]{flex:100%}.modal-mask[data-v-77db0a40]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-77db0a40]{gap:8px}.zone-head h2[data-v-77db0a40]{font-size:14px}.zone-actions[data-v-77db0a40]{flex-wrap:wrap}.ov-card[data-v-77db0a40]{padding:10px 12px}}.page[data-v-c33b3744]{padding:4px}h1[data-v-c33b3744]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-c33b3744]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-c33b3744]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-c33b3744]{opacity:.55}.err[data-v-c33b3744]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-c33b3744]{padding:10px 12px}.badges[data-v-c33b3744]{gap:8px;display:flex}.badge[data-v-c33b3744]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-c33b3744]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-c33b3744]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-c33b3744]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-c33b3744]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-c33b3744]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-c33b3744]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-c33b3744]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-c33b3744]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-c33b3744]{color:var(--tone-success-dot)}.ov-item.bad[data-v-c33b3744]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-c33b3744]{color:var(--accent)}.ov-row .sep[data-v-c33b3744]{opacity:.4}.ov-row .reload[data-v-c33b3744]{margin-left:auto}.zone[data-v-c33b3744]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-c33b3744]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-c33b3744]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-c33b3744]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-c33b3744]{align-items:center;gap:8px;display:flex}.env-grid[data-v-c33b3744]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-c33b3744]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-c33b3744]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-c33b3744]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-c33b3744]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-c33b3744]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-c33b3744]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-c33b3744]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-c33b3744]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-c33b3744]{color:var(--ink-faint)}.env-card .ec-actions[data-v-c33b3744]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-c33b3744]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-c33b3744]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-c33b3744]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-c33b3744]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-c33b3744]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-c33b3744]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-c33b3744]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-c33b3744]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-c33b3744{to{transform:rotate(1turn)}}.spin[data-v-c33b3744]{animation:1s linear infinite amlSpin-c33b3744;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-c33b3744]{animation:none}}.note-edit[data-v-c33b3744]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-c33b3744]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-c33b3744]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-c33b3744]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-c33b3744]:hover{opacity:1}.live-dot[data-v-c33b3744]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-c33b3744]{animation:1.8s ease-in-out infinite amlPulse-c33b3744}}@keyframes amlPulse-c33b3744{50%{opacity:.4}}.tbl[data-v-c33b3744]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-c33b3744],.tbl th[data-v-c33b3744]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-c33b3744]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-c33b3744],.tbl .right[data-v-c33b3744]{text-align:right}.tbl .acts[data-v-c33b3744]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-c33b3744]{margin-left:6px}.row-main[data-v-c33b3744]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-c33b3744]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-c33b3744]{border-bottom-color:#0000}.note-cell[data-v-c33b3744]{max-width:260px}.note[data-v-c33b3744]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-c33b3744]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-c33b3744]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-c33b3744]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-c33b3744]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-c33b3744]{grid-template-columns:1fr}}.det-title[data-v-c33b3744]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-c33b3744]:first-child{margin-top:10px}.sub-tbl[data-v-c33b3744]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-c33b3744],.sub-tbl th[data-v-c33b3744]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-c33b3744]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-c33b3744]{text-align:right}.role-chip[data-v-c33b3744]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-c33b3744]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-c33b3744]{color:var(--ink)}.drop-line[data-v-c33b3744]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-c33b3744]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-c33b3744],.st-pill.queued[data-v-c33b3744]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-c33b3744],.st-pill.running[data-v-c33b3744],.st-pill.training[data-v-c33b3744]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-c33b3744],.st-pill.gates_passed[data-v-c33b3744]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-c33b3744],.st-pill.gates_failed[data-v-c33b3744],.st-pill.timeout[data-v-c33b3744]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-c33b3744],.st-pill.interrupted[data-v-c33b3744]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-c33b3744]{min-width:140px}.prog-cell[data-v-c33b3744]{white-space:nowrap}.prog[data-v-c33b3744]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-c33b3744]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-c33b3744]{background:var(--tone-success-dot)}.prog i.bad[data-v-c33b3744]{background:var(--tone-danger-dot)}.prog-num[data-v-c33b3744]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-c33b3744]{font-weight:700}.gate-detail[data-v-c33b3744]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-c33b3744]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-c33b3744]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-c33b3744]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-c33b3744]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-c33b3744]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-c33b3744]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-c33b3744]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-c33b3744]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-c33b3744]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-c33b3744]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-c33b3744]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-c33b3744]{opacity:.55;border-style:dashed}.inp-sel[data-v-c33b3744]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-c33b3744]{margin-top:4px}.io-grid[data-v-c33b3744]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-c33b3744]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-c33b3744]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-c33b3744]{grid-template-columns:1fr}}.pc-field[data-v-c33b3744]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-c33b3744]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-c33b3744]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-c33b3744]{margin-top:auto}.inp[data-v-c33b3744]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-c33b3744]{resize:vertical;line-height:1.5}.inp[data-v-c33b3744]:focus{border-color:var(--accent);outline:none}.hint[data-v-c33b3744]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-c33b3744]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-c33b3744]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-c33b3744]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-c33b3744]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-c33b3744]{grid-template-columns:1fr}}.f[data-v-c33b3744]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-c33b3744]{grid-column:1/-1}.f em[data-v-c33b3744]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-c33b3744]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-c33b3744]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-c33b3744]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-c33b3744]{flex:auto}.node-row .sel[data-v-c33b3744]{flex:0 0 220px}.m-err[data-v-c33b3744]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-c33b3744]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-c33b3744]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-c33b3744]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-c33b3744]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-c33b3744]{min-width:720px}.tbl-jobs[data-v-c33b3744]{min-width:860px}.tbl-exp[data-v-c33b3744]{min-width:700px}.tbl-models[data-v-c33b3744]{min-width:780px}.tbl td[data-v-c33b3744],.tbl th[data-v-c33b3744]{white-space:nowrap}.tbl tbody>tr>td[data-v-c33b3744]:first-child,.tbl thead>tr>th[data-v-c33b3744]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-c33b3744]:first-child{z-index:3}.detail-row>td[data-v-c33b3744]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-c33b3744],.inp-sel[data-v-c33b3744],.mini-btn[data-v-c33b3744],.note-edit input[data-v-c33b3744],.pill-btn[data-v-c33b3744]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-c33b3744]{margin-left:8px}.note-cell[data-v-c33b3744]{max-width:200px}.note-edit[data-v-c33b3744]{flex-wrap:wrap}.zone[data-v-c33b3744]{padding:12px 12px 14px}.f-grid[data-v-c33b3744],.det-grid[data-v-c33b3744]{grid-template-columns:1fr}.m-actions[data-v-c33b3744],.mx-actions[data-v-c33b3744]{flex-wrap:wrap}.modal[data-v-c33b3744]{padding:16px}.node-row[data-v-c33b3744]{flex-wrap:wrap}.node-row .sel[data-v-c33b3744]{flex:100%}.modal-mask[data-v-c33b3744]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-c33b3744]{gap:8px}.zone-head h2[data-v-c33b3744]{font-size:14px}.zone-actions[data-v-c33b3744]{flex-wrap:wrap}.ov-card[data-v-c33b3744]{padding:10px 12px}}.page[data-v-ff727fc7]{padding:4px}h1[data-v-ff727fc7]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-ff727fc7]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-ff727fc7]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-ff727fc7]{opacity:.55}.err[data-v-ff727fc7]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-ff727fc7]{padding:10px 12px}.badges[data-v-ff727fc7]{gap:8px;display:flex}.badge[data-v-ff727fc7]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-ff727fc7]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-ff727fc7]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-ff727fc7]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-ff727fc7]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-ff727fc7]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-ff727fc7]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-ff727fc7]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-ff727fc7]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-ff727fc7]{color:var(--tone-success-dot)}.ov-item.bad[data-v-ff727fc7]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-ff727fc7]{color:var(--accent)}.ov-row .sep[data-v-ff727fc7]{opacity:.4}.ov-row .reload[data-v-ff727fc7]{margin-left:auto}.zone[data-v-ff727fc7]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-ff727fc7]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-ff727fc7]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-ff727fc7]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-ff727fc7]{align-items:center;gap:8px;display:flex}.env-grid[data-v-ff727fc7]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-ff727fc7]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-ff727fc7]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-ff727fc7]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-ff727fc7]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-ff727fc7]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-ff727fc7]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-ff727fc7]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-ff727fc7]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-ff727fc7]{color:var(--ink-faint)}.env-card .ec-actions[data-v-ff727fc7]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-ff727fc7]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-ff727fc7]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-ff727fc7]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-ff727fc7]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-ff727fc7]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-ff727fc7]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-ff727fc7]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-ff727fc7]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-ff727fc7{to{transform:rotate(1turn)}}.spin[data-v-ff727fc7]{animation:1s linear infinite amlSpin-ff727fc7;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-ff727fc7]{animation:none}}.note-edit[data-v-ff727fc7]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-ff727fc7]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-ff727fc7]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-ff727fc7]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-ff727fc7]:hover{opacity:1}.live-dot[data-v-ff727fc7]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-ff727fc7]{animation:1.8s ease-in-out infinite amlPulse-ff727fc7}}@keyframes amlPulse-ff727fc7{50%{opacity:.4}}.tbl[data-v-ff727fc7]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-ff727fc7],.tbl th[data-v-ff727fc7]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-ff727fc7]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-ff727fc7],.tbl .right[data-v-ff727fc7]{text-align:right}.tbl .acts[data-v-ff727fc7]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-ff727fc7]{margin-left:6px}.row-main[data-v-ff727fc7]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-ff727fc7]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-ff727fc7]{border-bottom-color:#0000}.note-cell[data-v-ff727fc7]{max-width:260px}.note[data-v-ff727fc7]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-ff727fc7]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-ff727fc7]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-ff727fc7]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-ff727fc7]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-ff727fc7]{grid-template-columns:1fr}}.det-title[data-v-ff727fc7]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-ff727fc7]:first-child{margin-top:10px}.sub-tbl[data-v-ff727fc7]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-ff727fc7],.sub-tbl th[data-v-ff727fc7]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-ff727fc7]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-ff727fc7]{text-align:right}.role-chip[data-v-ff727fc7]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-ff727fc7]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-ff727fc7]{color:var(--ink)}.drop-line[data-v-ff727fc7]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-ff727fc7]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-ff727fc7],.st-pill.queued[data-v-ff727fc7]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-ff727fc7],.st-pill.running[data-v-ff727fc7],.st-pill.training[data-v-ff727fc7]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-ff727fc7],.st-pill.gates_passed[data-v-ff727fc7]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-ff727fc7],.st-pill.gates_failed[data-v-ff727fc7],.st-pill.timeout[data-v-ff727fc7]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-ff727fc7],.st-pill.interrupted[data-v-ff727fc7]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-ff727fc7]{min-width:140px}.prog-cell[data-v-ff727fc7]{white-space:nowrap}.prog[data-v-ff727fc7]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-ff727fc7]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-ff727fc7]{background:var(--tone-success-dot)}.prog i.bad[data-v-ff727fc7]{background:var(--tone-danger-dot)}.prog-num[data-v-ff727fc7]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-ff727fc7]{font-weight:700}.gate-detail[data-v-ff727fc7]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-ff727fc7]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-ff727fc7]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-ff727fc7]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-ff727fc7]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-ff727fc7]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-ff727fc7]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-ff727fc7]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-ff727fc7]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-ff727fc7]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-ff727fc7]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-ff727fc7]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-ff727fc7]{opacity:.55;border-style:dashed}.inp-sel[data-v-ff727fc7]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-ff727fc7]{margin-top:4px}.io-grid[data-v-ff727fc7]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-ff727fc7]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-ff727fc7]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-ff727fc7]{grid-template-columns:1fr}}.pc-field[data-v-ff727fc7]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-ff727fc7]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-ff727fc7]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-ff727fc7]{margin-top:auto}.inp[data-v-ff727fc7]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-ff727fc7]{resize:vertical;line-height:1.5}.inp[data-v-ff727fc7]:focus{border-color:var(--accent);outline:none}.hint[data-v-ff727fc7]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-ff727fc7]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-ff727fc7]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-ff727fc7]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-ff727fc7]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-ff727fc7]{grid-template-columns:1fr}}.f[data-v-ff727fc7]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-ff727fc7]{grid-column:1/-1}.f em[data-v-ff727fc7]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-ff727fc7]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-ff727fc7]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-ff727fc7]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-ff727fc7]{flex:auto}.node-row .sel[data-v-ff727fc7]{flex:0 0 220px}.m-err[data-v-ff727fc7]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-ff727fc7]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-ff727fc7]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-ff727fc7]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-ff727fc7]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-ff727fc7]{min-width:720px}.tbl-jobs[data-v-ff727fc7]{min-width:860px}.tbl-exp[data-v-ff727fc7]{min-width:700px}.tbl-models[data-v-ff727fc7]{min-width:780px}.tbl td[data-v-ff727fc7],.tbl th[data-v-ff727fc7]{white-space:nowrap}.tbl tbody>tr>td[data-v-ff727fc7]:first-child,.tbl thead>tr>th[data-v-ff727fc7]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-ff727fc7]:first-child{z-index:3}.detail-row>td[data-v-ff727fc7]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-ff727fc7],.inp-sel[data-v-ff727fc7],.mini-btn[data-v-ff727fc7],.note-edit input[data-v-ff727fc7],.pill-btn[data-v-ff727fc7]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-ff727fc7]{margin-left:8px}.note-cell[data-v-ff727fc7]{max-width:200px}.note-edit[data-v-ff727fc7]{flex-wrap:wrap}.zone[data-v-ff727fc7]{padding:12px 12px 14px}.f-grid[data-v-ff727fc7],.det-grid[data-v-ff727fc7]{grid-template-columns:1fr}.m-actions[data-v-ff727fc7],.mx-actions[data-v-ff727fc7]{flex-wrap:wrap}.modal[data-v-ff727fc7]{padding:16px}.node-row[data-v-ff727fc7]{flex-wrap:wrap}.node-row .sel[data-v-ff727fc7]{flex:100%}.modal-mask[data-v-ff727fc7]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-ff727fc7]{gap:8px}.zone-head h2[data-v-ff727fc7]{font-size:14px}.zone-actions[data-v-ff727fc7]{flex-wrap:wrap}.ov-card[data-v-ff727fc7]{padding:10px 12px}}.page[data-v-89544017]{padding:4px}h1[data-v-89544017]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-89544017]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-89544017]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-89544017]{opacity:.55}.err[data-v-89544017]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-89544017]{padding:10px 12px}.badges[data-v-89544017]{gap:8px;display:flex}.badge[data-v-89544017]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-89544017]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-89544017]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-89544017]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-89544017]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-89544017]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-89544017]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-89544017]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-89544017]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-89544017]{color:var(--tone-success-dot)}.ov-item.bad[data-v-89544017]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-89544017]{color:var(--accent)}.ov-row .sep[data-v-89544017]{opacity:.4}.ov-row .reload[data-v-89544017]{margin-left:auto}.zone[data-v-89544017]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-89544017]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-89544017]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-89544017]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-89544017]{align-items:center;gap:8px;display:flex}.env-grid[data-v-89544017]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-89544017]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-89544017]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-89544017]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-89544017]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-89544017]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-89544017]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-89544017]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-89544017]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-89544017]{color:var(--ink-faint)}.env-card .ec-actions[data-v-89544017]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-89544017]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-89544017]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-89544017]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-89544017]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-89544017]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-89544017]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-89544017]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-89544017]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-89544017{to{transform:rotate(1turn)}}.spin[data-v-89544017]{animation:1s linear infinite amlSpin-89544017;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-89544017]{animation:none}}.note-edit[data-v-89544017]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-89544017]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-89544017]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-89544017]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-89544017]:hover{opacity:1}.live-dot[data-v-89544017]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-89544017]{animation:1.8s ease-in-out infinite amlPulse-89544017}}@keyframes amlPulse-89544017{50%{opacity:.4}}.tbl[data-v-89544017]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-89544017],.tbl th[data-v-89544017]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-89544017]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-89544017],.tbl .right[data-v-89544017]{text-align:right}.tbl .acts[data-v-89544017]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-89544017]{margin-left:6px}.row-main[data-v-89544017]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-89544017]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-89544017]{border-bottom-color:#0000}.note-cell[data-v-89544017]{max-width:260px}.note[data-v-89544017]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-89544017]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-89544017]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-89544017]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-89544017]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-89544017]{grid-template-columns:1fr}}.det-title[data-v-89544017]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-89544017]:first-child{margin-top:10px}.sub-tbl[data-v-89544017]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-89544017],.sub-tbl th[data-v-89544017]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-89544017]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-89544017]{text-align:right}.role-chip[data-v-89544017]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-89544017]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-89544017]{color:var(--ink)}.drop-line[data-v-89544017]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-89544017]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-89544017],.st-pill.queued[data-v-89544017]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-89544017],.st-pill.running[data-v-89544017],.st-pill.training[data-v-89544017]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-89544017],.st-pill.gates_passed[data-v-89544017]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-89544017],.st-pill.gates_failed[data-v-89544017],.st-pill.timeout[data-v-89544017]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-89544017],.st-pill.interrupted[data-v-89544017]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-89544017]{min-width:140px}.prog-cell[data-v-89544017]{white-space:nowrap}.prog[data-v-89544017]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-89544017]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-89544017]{background:var(--tone-success-dot)}.prog i.bad[data-v-89544017]{background:var(--tone-danger-dot)}.prog-num[data-v-89544017]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-89544017]{font-weight:700}.gate-detail[data-v-89544017]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-89544017]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-89544017]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-89544017]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-89544017]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-89544017]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-89544017]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-89544017]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-89544017]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-89544017]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-89544017]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-89544017]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-89544017]{opacity:.55;border-style:dashed}.inp-sel[data-v-89544017]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-89544017]{margin-top:4px}.io-grid[data-v-89544017]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-89544017]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-89544017]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-89544017]{grid-template-columns:1fr}}.pc-field[data-v-89544017]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-89544017]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-89544017]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-89544017]{margin-top:auto}.inp[data-v-89544017]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-89544017]{resize:vertical;line-height:1.5}.inp[data-v-89544017]:focus{border-color:var(--accent);outline:none}.hint[data-v-89544017]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-89544017]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-89544017]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-89544017]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-89544017]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-89544017]{grid-template-columns:1fr}}.f[data-v-89544017]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-89544017]{grid-column:1/-1}.f em[data-v-89544017]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-89544017]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-89544017]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-89544017]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-89544017]{flex:auto}.node-row .sel[data-v-89544017]{flex:0 0 220px}.m-err[data-v-89544017]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-89544017]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-89544017]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-89544017]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-89544017]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-89544017]{min-width:720px}.tbl-jobs[data-v-89544017]{min-width:860px}.tbl-exp[data-v-89544017]{min-width:700px}.tbl-models[data-v-89544017]{min-width:780px}.tbl td[data-v-89544017],.tbl th[data-v-89544017]{white-space:nowrap}.tbl tbody>tr>td[data-v-89544017]:first-child,.tbl thead>tr>th[data-v-89544017]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-89544017]:first-child{z-index:3}.detail-row>td[data-v-89544017]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-89544017],.inp-sel[data-v-89544017],.mini-btn[data-v-89544017],.note-edit input[data-v-89544017],.pill-btn[data-v-89544017]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-89544017]{margin-left:8px}.note-cell[data-v-89544017]{max-width:200px}.note-edit[data-v-89544017]{flex-wrap:wrap}.zone[data-v-89544017]{padding:12px 12px 14px}.f-grid[data-v-89544017],.det-grid[data-v-89544017]{grid-template-columns:1fr}.m-actions[data-v-89544017],.mx-actions[data-v-89544017]{flex-wrap:wrap}.modal[data-v-89544017]{padding:16px}.node-row[data-v-89544017]{flex-wrap:wrap}.node-row .sel[data-v-89544017]{flex:100%}.modal-mask[data-v-89544017]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-89544017]{gap:8px}.zone-head h2[data-v-89544017]{font-size:14px}.zone-actions[data-v-89544017]{flex-wrap:wrap}.ov-card[data-v-89544017]{padding:10px 12px}}.page[data-v-5b7fda0b]{padding:4px}h1[data-v-5b7fda0b]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-5b7fda0b]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-5b7fda0b]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-5b7fda0b]{opacity:.55}.err[data-v-5b7fda0b]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-5b7fda0b]{padding:10px 12px}.badges[data-v-5b7fda0b]{gap:8px;display:flex}.badge[data-v-5b7fda0b]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-5b7fda0b]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-5b7fda0b]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-5b7fda0b]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-5b7fda0b]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-5b7fda0b]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-5b7fda0b]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-5b7fda0b]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-5b7fda0b]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-5b7fda0b]{color:var(--tone-success-dot)}.ov-item.bad[data-v-5b7fda0b]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-5b7fda0b]{color:var(--accent)}.ov-row .sep[data-v-5b7fda0b]{opacity:.4}.ov-row .reload[data-v-5b7fda0b]{margin-left:auto}.zone[data-v-5b7fda0b]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-5b7fda0b]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-5b7fda0b]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-5b7fda0b]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-5b7fda0b]{align-items:center;gap:8px;display:flex}.env-grid[data-v-5b7fda0b]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-5b7fda0b]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-5b7fda0b]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-5b7fda0b]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-5b7fda0b]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-5b7fda0b]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-5b7fda0b]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-5b7fda0b]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-5b7fda0b]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-5b7fda0b]{color:var(--ink-faint)}.env-card .ec-actions[data-v-5b7fda0b]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-5b7fda0b]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-5b7fda0b]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-5b7fda0b]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-5b7fda0b]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-5b7fda0b]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-5b7fda0b]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-5b7fda0b]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-5b7fda0b]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-5b7fda0b{to{transform:rotate(1turn)}}.spin[data-v-5b7fda0b]{animation:1s linear infinite amlSpin-5b7fda0b;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-5b7fda0b]{animation:none}}.note-edit[data-v-5b7fda0b]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-5b7fda0b]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-5b7fda0b]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-5b7fda0b]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-5b7fda0b]:hover{opacity:1}.live-dot[data-v-5b7fda0b]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-5b7fda0b]{animation:1.8s ease-in-out infinite amlPulse-5b7fda0b}}@keyframes amlPulse-5b7fda0b{50%{opacity:.4}}.tbl[data-v-5b7fda0b]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-5b7fda0b],.tbl th[data-v-5b7fda0b]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-5b7fda0b]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-5b7fda0b],.tbl .right[data-v-5b7fda0b]{text-align:right}.tbl .acts[data-v-5b7fda0b]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-5b7fda0b]{margin-left:6px}.row-main[data-v-5b7fda0b]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-5b7fda0b]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-5b7fda0b]{border-bottom-color:#0000}.note-cell[data-v-5b7fda0b]{max-width:260px}.note[data-v-5b7fda0b]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-5b7fda0b]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-5b7fda0b]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-5b7fda0b]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-5b7fda0b]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-5b7fda0b]{grid-template-columns:1fr}}.det-title[data-v-5b7fda0b]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-5b7fda0b]:first-child{margin-top:10px}.sub-tbl[data-v-5b7fda0b]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-5b7fda0b],.sub-tbl th[data-v-5b7fda0b]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-5b7fda0b]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-5b7fda0b]{text-align:right}.role-chip[data-v-5b7fda0b]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-5b7fda0b]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-5b7fda0b]{color:var(--ink)}.drop-line[data-v-5b7fda0b]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-5b7fda0b]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-5b7fda0b],.st-pill.queued[data-v-5b7fda0b]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-5b7fda0b],.st-pill.running[data-v-5b7fda0b],.st-pill.training[data-v-5b7fda0b]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-5b7fda0b],.st-pill.gates_passed[data-v-5b7fda0b]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-5b7fda0b],.st-pill.gates_failed[data-v-5b7fda0b],.st-pill.timeout[data-v-5b7fda0b]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-5b7fda0b],.st-pill.interrupted[data-v-5b7fda0b]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-5b7fda0b]{min-width:140px}.prog-cell[data-v-5b7fda0b]{white-space:nowrap}.prog[data-v-5b7fda0b]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-5b7fda0b]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-5b7fda0b]{background:var(--tone-success-dot)}.prog i.bad[data-v-5b7fda0b]{background:var(--tone-danger-dot)}.prog-num[data-v-5b7fda0b]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-5b7fda0b]{font-weight:700}.gate-detail[data-v-5b7fda0b]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-5b7fda0b]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-5b7fda0b]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-5b7fda0b]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-5b7fda0b]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-5b7fda0b]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-5b7fda0b]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-5b7fda0b]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-5b7fda0b]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-5b7fda0b]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-5b7fda0b]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-5b7fda0b]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-5b7fda0b]{opacity:.55;border-style:dashed}.inp-sel[data-v-5b7fda0b]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-5b7fda0b]{margin-top:4px}.io-grid[data-v-5b7fda0b]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-5b7fda0b]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-5b7fda0b]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-5b7fda0b]{grid-template-columns:1fr}}.pc-field[data-v-5b7fda0b]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-5b7fda0b]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-5b7fda0b]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-5b7fda0b]{margin-top:auto}.inp[data-v-5b7fda0b]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-5b7fda0b]{resize:vertical;line-height:1.5}.inp[data-v-5b7fda0b]:focus{border-color:var(--accent);outline:none}.hint[data-v-5b7fda0b]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-5b7fda0b]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-5b7fda0b]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-5b7fda0b]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-5b7fda0b]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-5b7fda0b]{grid-template-columns:1fr}}.f[data-v-5b7fda0b]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-5b7fda0b]{grid-column:1/-1}.f em[data-v-5b7fda0b]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-5b7fda0b]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-5b7fda0b]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-5b7fda0b]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-5b7fda0b]{flex:auto}.node-row .sel[data-v-5b7fda0b]{flex:0 0 220px}.m-err[data-v-5b7fda0b]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-5b7fda0b]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-5b7fda0b]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-5b7fda0b]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-5b7fda0b]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-5b7fda0b]{min-width:720px}.tbl-jobs[data-v-5b7fda0b]{min-width:860px}.tbl-exp[data-v-5b7fda0b]{min-width:700px}.tbl-models[data-v-5b7fda0b]{min-width:780px}.tbl td[data-v-5b7fda0b],.tbl th[data-v-5b7fda0b]{white-space:nowrap}.tbl tbody>tr>td[data-v-5b7fda0b]:first-child,.tbl thead>tr>th[data-v-5b7fda0b]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-5b7fda0b]:first-child{z-index:3}.detail-row>td[data-v-5b7fda0b]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-5b7fda0b],.inp-sel[data-v-5b7fda0b],.mini-btn[data-v-5b7fda0b],.note-edit input[data-v-5b7fda0b],.pill-btn[data-v-5b7fda0b]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-5b7fda0b]{margin-left:8px}.note-cell[data-v-5b7fda0b]{max-width:200px}.note-edit[data-v-5b7fda0b]{flex-wrap:wrap}.zone[data-v-5b7fda0b]{padding:12px 12px 14px}.f-grid[data-v-5b7fda0b],.det-grid[data-v-5b7fda0b]{grid-template-columns:1fr}.m-actions[data-v-5b7fda0b],.mx-actions[data-v-5b7fda0b]{flex-wrap:wrap}.modal[data-v-5b7fda0b]{padding:16px}.node-row[data-v-5b7fda0b]{flex-wrap:wrap}.node-row .sel[data-v-5b7fda0b]{flex:100%}.modal-mask[data-v-5b7fda0b]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-5b7fda0b]{gap:8px}.zone-head h2[data-v-5b7fda0b]{font-size:14px}.zone-actions[data-v-5b7fda0b]{flex-wrap:wrap}.ov-card[data-v-5b7fda0b]{padding:10px 12px}}.page[data-v-53f56418]{padding:4px}h1[data-v-53f56418]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-53f56418]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-53f56418]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-53f56418]{opacity:.55}.err[data-v-53f56418]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-53f56418]{padding:10px 12px}.badges[data-v-53f56418]{gap:8px;display:flex}.badge[data-v-53f56418]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-53f56418]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-53f56418]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-53f56418]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-53f56418]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-53f56418]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-53f56418]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-53f56418]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-53f56418]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-53f56418]{color:var(--tone-success-dot)}.ov-item.bad[data-v-53f56418]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-53f56418]{color:var(--accent)}.ov-row .sep[data-v-53f56418]{opacity:.4}.ov-row .reload[data-v-53f56418]{margin-left:auto}.zone[data-v-53f56418]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-53f56418]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-53f56418]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-53f56418]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-53f56418]{align-items:center;gap:8px;display:flex}.env-grid[data-v-53f56418]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-53f56418]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-53f56418]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-53f56418]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-53f56418]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-53f56418]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-53f56418]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-53f56418]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-53f56418]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-53f56418]{color:var(--ink-faint)}.env-card .ec-actions[data-v-53f56418]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-53f56418]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-53f56418]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-53f56418]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-53f56418]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-53f56418]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-53f56418]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-53f56418]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-53f56418]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-53f56418{to{transform:rotate(1turn)}}.spin[data-v-53f56418]{animation:1s linear infinite amlSpin-53f56418;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-53f56418]{animation:none}}.note-edit[data-v-53f56418]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-53f56418]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-53f56418]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-53f56418]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-53f56418]:hover{opacity:1}.live-dot[data-v-53f56418]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-53f56418]{animation:1.8s ease-in-out infinite amlPulse-53f56418}}@keyframes amlPulse-53f56418{50%{opacity:.4}}.tbl[data-v-53f56418]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-53f56418],.tbl th[data-v-53f56418]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-53f56418]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-53f56418],.tbl .right[data-v-53f56418]{text-align:right}.tbl .acts[data-v-53f56418]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-53f56418]{margin-left:6px}.row-main[data-v-53f56418]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-53f56418]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-53f56418]{border-bottom-color:#0000}.note-cell[data-v-53f56418]{max-width:260px}.note[data-v-53f56418]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-53f56418]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-53f56418]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-53f56418]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-53f56418]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-53f56418]{grid-template-columns:1fr}}.det-title[data-v-53f56418]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-53f56418]:first-child{margin-top:10px}.sub-tbl[data-v-53f56418]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-53f56418],.sub-tbl th[data-v-53f56418]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-53f56418]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-53f56418]{text-align:right}.role-chip[data-v-53f56418]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-53f56418]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-53f56418]{color:var(--ink)}.drop-line[data-v-53f56418]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-53f56418]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-53f56418],.st-pill.queued[data-v-53f56418]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-53f56418],.st-pill.running[data-v-53f56418],.st-pill.training[data-v-53f56418]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-53f56418],.st-pill.gates_passed[data-v-53f56418]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-53f56418],.st-pill.gates_failed[data-v-53f56418],.st-pill.timeout[data-v-53f56418]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-53f56418],.st-pill.interrupted[data-v-53f56418]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-53f56418]{min-width:140px}.prog-cell[data-v-53f56418]{white-space:nowrap}.prog[data-v-53f56418]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-53f56418]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-53f56418]{background:var(--tone-success-dot)}.prog i.bad[data-v-53f56418]{background:var(--tone-danger-dot)}.prog-num[data-v-53f56418]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-53f56418]{font-weight:700}.gate-detail[data-v-53f56418]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-53f56418]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-53f56418]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-53f56418]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-53f56418]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-53f56418]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-53f56418]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-53f56418]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-53f56418]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-53f56418]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-53f56418]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-53f56418]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-53f56418]{opacity:.55;border-style:dashed}.inp-sel[data-v-53f56418]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-53f56418]{margin-top:4px}.io-grid[data-v-53f56418]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-53f56418]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-53f56418]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-53f56418]{grid-template-columns:1fr}}.pc-field[data-v-53f56418]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-53f56418]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-53f56418]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-53f56418]{margin-top:auto}.inp[data-v-53f56418]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-53f56418]{resize:vertical;line-height:1.5}.inp[data-v-53f56418]:focus{border-color:var(--accent);outline:none}.hint[data-v-53f56418]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-53f56418]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-53f56418]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-53f56418]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-53f56418]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-53f56418]{grid-template-columns:1fr}}.f[data-v-53f56418]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-53f56418]{grid-column:1/-1}.f em[data-v-53f56418]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-53f56418]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-53f56418]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-53f56418]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-53f56418]{flex:auto}.node-row .sel[data-v-53f56418]{flex:0 0 220px}.m-err[data-v-53f56418]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-53f56418]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-53f56418]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-53f56418]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-53f56418]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-53f56418]{min-width:720px}.tbl-jobs[data-v-53f56418]{min-width:860px}.tbl-exp[data-v-53f56418]{min-width:700px}.tbl-models[data-v-53f56418]{min-width:780px}.tbl td[data-v-53f56418],.tbl th[data-v-53f56418]{white-space:nowrap}.tbl tbody>tr>td[data-v-53f56418]:first-child,.tbl thead>tr>th[data-v-53f56418]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-53f56418]:first-child{z-index:3}.detail-row>td[data-v-53f56418]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-53f56418],.inp-sel[data-v-53f56418],.mini-btn[data-v-53f56418],.note-edit input[data-v-53f56418],.pill-btn[data-v-53f56418]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-53f56418]{margin-left:8px}.note-cell[data-v-53f56418]{max-width:200px}.note-edit[data-v-53f56418]{flex-wrap:wrap}.zone[data-v-53f56418]{padding:12px 12px 14px}.f-grid[data-v-53f56418],.det-grid[data-v-53f56418]{grid-template-columns:1fr}.m-actions[data-v-53f56418],.mx-actions[data-v-53f56418]{flex-wrap:wrap}.modal[data-v-53f56418]{padding:16px}.node-row[data-v-53f56418]{flex-wrap:wrap}.node-row .sel[data-v-53f56418]{flex:100%}.modal-mask[data-v-53f56418]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-53f56418]{gap:8px}.zone-head h2[data-v-53f56418]{font-size:14px}.zone-actions[data-v-53f56418]{flex-wrap:wrap}.ov-card[data-v-53f56418]{padding:10px 12px}}.page[data-v-57c9a30a]{padding:4px}h1[data-v-57c9a30a]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-57c9a30a]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-57c9a30a]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-57c9a30a]{opacity:.55}.err[data-v-57c9a30a]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-57c9a30a]{padding:10px 12px}.badges[data-v-57c9a30a]{gap:8px;display:flex}.badge[data-v-57c9a30a]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-57c9a30a]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-57c9a30a]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-57c9a30a]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-57c9a30a]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-57c9a30a]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-57c9a30a]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-57c9a30a]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-57c9a30a]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-57c9a30a]{color:var(--tone-success-dot)}.ov-item.bad[data-v-57c9a30a]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-57c9a30a]{color:var(--accent)}.ov-row .sep[data-v-57c9a30a]{opacity:.4}.ov-row .reload[data-v-57c9a30a]{margin-left:auto}.zone[data-v-57c9a30a]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-57c9a30a]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-57c9a30a]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-57c9a30a]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-57c9a30a]{align-items:center;gap:8px;display:flex}.env-grid[data-v-57c9a30a]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-57c9a30a]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-57c9a30a]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-57c9a30a]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-57c9a30a]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-57c9a30a]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-57c9a30a]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-57c9a30a]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-57c9a30a]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-57c9a30a]{color:var(--ink-faint)}.env-card .ec-actions[data-v-57c9a30a]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-57c9a30a]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-57c9a30a]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-57c9a30a]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-57c9a30a]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-57c9a30a]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-57c9a30a]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-57c9a30a]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-57c9a30a]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-57c9a30a{to{transform:rotate(1turn)}}.spin[data-v-57c9a30a]{animation:1s linear infinite amlSpin-57c9a30a;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-57c9a30a]{animation:none}}.note-edit[data-v-57c9a30a]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-57c9a30a]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-57c9a30a]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-57c9a30a]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-57c9a30a]:hover{opacity:1}.live-dot[data-v-57c9a30a]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-57c9a30a]{animation:1.8s ease-in-out infinite amlPulse-57c9a30a}}@keyframes amlPulse-57c9a30a{50%{opacity:.4}}.tbl[data-v-57c9a30a]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-57c9a30a],.tbl th[data-v-57c9a30a]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-57c9a30a]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-57c9a30a],.tbl .right[data-v-57c9a30a]{text-align:right}.tbl .acts[data-v-57c9a30a]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-57c9a30a]{margin-left:6px}.row-main[data-v-57c9a30a]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-57c9a30a]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-57c9a30a]{border-bottom-color:#0000}.note-cell[data-v-57c9a30a]{max-width:260px}.note[data-v-57c9a30a]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-57c9a30a]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-57c9a30a]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-57c9a30a]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-57c9a30a]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-57c9a30a]{grid-template-columns:1fr}}.det-title[data-v-57c9a30a]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-57c9a30a]:first-child{margin-top:10px}.sub-tbl[data-v-57c9a30a]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-57c9a30a],.sub-tbl th[data-v-57c9a30a]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-57c9a30a]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-57c9a30a]{text-align:right}.role-chip[data-v-57c9a30a]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-57c9a30a]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-57c9a30a]{color:var(--ink)}.drop-line[data-v-57c9a30a]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-57c9a30a]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-57c9a30a],.st-pill.queued[data-v-57c9a30a]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-57c9a30a],.st-pill.running[data-v-57c9a30a],.st-pill.training[data-v-57c9a30a]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-57c9a30a],.st-pill.gates_passed[data-v-57c9a30a]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-57c9a30a],.st-pill.gates_failed[data-v-57c9a30a],.st-pill.timeout[data-v-57c9a30a]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-57c9a30a],.st-pill.interrupted[data-v-57c9a30a]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-57c9a30a]{min-width:140px}.prog-cell[data-v-57c9a30a]{white-space:nowrap}.prog[data-v-57c9a30a]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-57c9a30a]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-57c9a30a]{background:var(--tone-success-dot)}.prog i.bad[data-v-57c9a30a]{background:var(--tone-danger-dot)}.prog-num[data-v-57c9a30a]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-57c9a30a]{font-weight:700}.gate-detail[data-v-57c9a30a]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-57c9a30a]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-57c9a30a]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-57c9a30a]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-57c9a30a]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-57c9a30a]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-57c9a30a]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-57c9a30a]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-57c9a30a]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-57c9a30a]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-57c9a30a]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-57c9a30a]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-57c9a30a]{opacity:.55;border-style:dashed}.inp-sel[data-v-57c9a30a]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-57c9a30a]{margin-top:4px}.io-grid[data-v-57c9a30a]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-57c9a30a]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-57c9a30a]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-57c9a30a]{grid-template-columns:1fr}}.pc-field[data-v-57c9a30a]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-57c9a30a]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-57c9a30a]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-57c9a30a]{margin-top:auto}.inp[data-v-57c9a30a]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-57c9a30a]{resize:vertical;line-height:1.5}.inp[data-v-57c9a30a]:focus{border-color:var(--accent);outline:none}.hint[data-v-57c9a30a]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-57c9a30a]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-57c9a30a]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-57c9a30a]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-57c9a30a]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-57c9a30a]{grid-template-columns:1fr}}.f[data-v-57c9a30a]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-57c9a30a]{grid-column:1/-1}.f em[data-v-57c9a30a]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-57c9a30a]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-57c9a30a]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-57c9a30a]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-57c9a30a]{flex:auto}.node-row .sel[data-v-57c9a30a]{flex:0 0 220px}.m-err[data-v-57c9a30a]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-57c9a30a]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-57c9a30a]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-57c9a30a]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-57c9a30a]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-57c9a30a]{min-width:720px}.tbl-jobs[data-v-57c9a30a]{min-width:860px}.tbl-exp[data-v-57c9a30a]{min-width:700px}.tbl-models[data-v-57c9a30a]{min-width:780px}.tbl td[data-v-57c9a30a],.tbl th[data-v-57c9a30a]{white-space:nowrap}.tbl tbody>tr>td[data-v-57c9a30a]:first-child,.tbl thead>tr>th[data-v-57c9a30a]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-57c9a30a]:first-child{z-index:3}.detail-row>td[data-v-57c9a30a]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-57c9a30a],.inp-sel[data-v-57c9a30a],.mini-btn[data-v-57c9a30a],.note-edit input[data-v-57c9a30a],.pill-btn[data-v-57c9a30a]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-57c9a30a]{margin-left:8px}.note-cell[data-v-57c9a30a]{max-width:200px}.note-edit[data-v-57c9a30a]{flex-wrap:wrap}.zone[data-v-57c9a30a]{padding:12px 12px 14px}.f-grid[data-v-57c9a30a],.det-grid[data-v-57c9a30a]{grid-template-columns:1fr}.m-actions[data-v-57c9a30a],.mx-actions[data-v-57c9a30a]{flex-wrap:wrap}.modal[data-v-57c9a30a]{padding:16px}.node-row[data-v-57c9a30a]{flex-wrap:wrap}.node-row .sel[data-v-57c9a30a]{flex:100%}.modal-mask[data-v-57c9a30a]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-57c9a30a]{gap:8px}.zone-head h2[data-v-57c9a30a]{font-size:14px}.zone-actions[data-v-57c9a30a]{flex-wrap:wrap}.ov-card[data-v-57c9a30a]{padding:10px 12px}}.page[data-v-5ac31f7e]{padding:4px}h1[data-v-5ac31f7e]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-5ac31f7e]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-5ac31f7e]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-5ac31f7e]{opacity:.55}.err[data-v-5ac31f7e]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-5ac31f7e]{padding:10px 12px}.badges[data-v-5ac31f7e]{gap:8px;display:flex}.badge[data-v-5ac31f7e]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-5ac31f7e]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-5ac31f7e]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-5ac31f7e]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-5ac31f7e]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-5ac31f7e]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-5ac31f7e]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-5ac31f7e]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-5ac31f7e]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-5ac31f7e]{color:var(--tone-success-dot)}.ov-item.bad[data-v-5ac31f7e]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-5ac31f7e]{color:var(--accent)}.ov-row .sep[data-v-5ac31f7e]{opacity:.4}.ov-row .reload[data-v-5ac31f7e]{margin-left:auto}.zone[data-v-5ac31f7e]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-5ac31f7e]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-5ac31f7e]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-5ac31f7e]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-5ac31f7e]{align-items:center;gap:8px;display:flex}.env-grid[data-v-5ac31f7e]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-5ac31f7e]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-5ac31f7e]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-5ac31f7e]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-5ac31f7e]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-5ac31f7e]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-5ac31f7e]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-5ac31f7e]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-5ac31f7e]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-5ac31f7e]{color:var(--ink-faint)}.env-card .ec-actions[data-v-5ac31f7e]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-5ac31f7e]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-5ac31f7e]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-5ac31f7e]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-5ac31f7e]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-5ac31f7e]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-5ac31f7e]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-5ac31f7e]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-5ac31f7e]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-5ac31f7e{to{transform:rotate(1turn)}}.spin[data-v-5ac31f7e]{animation:1s linear infinite amlSpin-5ac31f7e;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-5ac31f7e]{animation:none}}.note-edit[data-v-5ac31f7e]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-5ac31f7e]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-5ac31f7e]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-5ac31f7e]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-5ac31f7e]:hover{opacity:1}.live-dot[data-v-5ac31f7e]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-5ac31f7e]{animation:1.8s ease-in-out infinite amlPulse-5ac31f7e}}@keyframes amlPulse-5ac31f7e{50%{opacity:.4}}.tbl[data-v-5ac31f7e]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-5ac31f7e],.tbl th[data-v-5ac31f7e]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-5ac31f7e]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-5ac31f7e],.tbl .right[data-v-5ac31f7e]{text-align:right}.tbl .acts[data-v-5ac31f7e]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-5ac31f7e]{margin-left:6px}.row-main[data-v-5ac31f7e]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-5ac31f7e]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-5ac31f7e]{border-bottom-color:#0000}.note-cell[data-v-5ac31f7e]{max-width:260px}.note[data-v-5ac31f7e]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-5ac31f7e]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-5ac31f7e]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-5ac31f7e]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-5ac31f7e]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-5ac31f7e]{grid-template-columns:1fr}}.det-title[data-v-5ac31f7e]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-5ac31f7e]:first-child{margin-top:10px}.sub-tbl[data-v-5ac31f7e]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-5ac31f7e],.sub-tbl th[data-v-5ac31f7e]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-5ac31f7e]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-5ac31f7e]{text-align:right}.role-chip[data-v-5ac31f7e]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-5ac31f7e]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-5ac31f7e]{color:var(--ink)}.drop-line[data-v-5ac31f7e]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-5ac31f7e]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-5ac31f7e],.st-pill.queued[data-v-5ac31f7e]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-5ac31f7e],.st-pill.running[data-v-5ac31f7e],.st-pill.training[data-v-5ac31f7e]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-5ac31f7e],.st-pill.gates_passed[data-v-5ac31f7e]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-5ac31f7e],.st-pill.gates_failed[data-v-5ac31f7e],.st-pill.timeout[data-v-5ac31f7e]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-5ac31f7e],.st-pill.interrupted[data-v-5ac31f7e]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-5ac31f7e]{min-width:140px}.prog-cell[data-v-5ac31f7e]{white-space:nowrap}.prog[data-v-5ac31f7e]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-5ac31f7e]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-5ac31f7e]{background:var(--tone-success-dot)}.prog i.bad[data-v-5ac31f7e]{background:var(--tone-danger-dot)}.prog-num[data-v-5ac31f7e]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-5ac31f7e]{font-weight:700}.gate-detail[data-v-5ac31f7e]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-5ac31f7e]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-5ac31f7e]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-5ac31f7e]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-5ac31f7e]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-5ac31f7e]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-5ac31f7e]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-5ac31f7e]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-5ac31f7e]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-5ac31f7e]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-5ac31f7e]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-5ac31f7e]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-5ac31f7e]{opacity:.55;border-style:dashed}.inp-sel[data-v-5ac31f7e]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-5ac31f7e]{margin-top:4px}.io-grid[data-v-5ac31f7e]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-5ac31f7e]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-5ac31f7e]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-5ac31f7e]{grid-template-columns:1fr}}.pc-field[data-v-5ac31f7e]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-5ac31f7e]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-5ac31f7e]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-5ac31f7e]{margin-top:auto}.inp[data-v-5ac31f7e]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-5ac31f7e]{resize:vertical;line-height:1.5}.inp[data-v-5ac31f7e]:focus{border-color:var(--accent);outline:none}.hint[data-v-5ac31f7e]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-5ac31f7e]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-5ac31f7e]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-5ac31f7e]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-5ac31f7e]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-5ac31f7e]{grid-template-columns:1fr}}.f[data-v-5ac31f7e]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-5ac31f7e]{grid-column:1/-1}.f em[data-v-5ac31f7e]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-5ac31f7e]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-5ac31f7e]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-5ac31f7e]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-5ac31f7e]{flex:auto}.node-row .sel[data-v-5ac31f7e]{flex:0 0 220px}.m-err[data-v-5ac31f7e]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-5ac31f7e]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-5ac31f7e]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-5ac31f7e]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-5ac31f7e]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-5ac31f7e]{min-width:720px}.tbl-jobs[data-v-5ac31f7e]{min-width:860px}.tbl-exp[data-v-5ac31f7e]{min-width:700px}.tbl-models[data-v-5ac31f7e]{min-width:780px}.tbl td[data-v-5ac31f7e],.tbl th[data-v-5ac31f7e]{white-space:nowrap}.tbl tbody>tr>td[data-v-5ac31f7e]:first-child,.tbl thead>tr>th[data-v-5ac31f7e]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-5ac31f7e]:first-child{z-index:3}.detail-row>td[data-v-5ac31f7e]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-5ac31f7e],.inp-sel[data-v-5ac31f7e],.mini-btn[data-v-5ac31f7e],.note-edit input[data-v-5ac31f7e],.pill-btn[data-v-5ac31f7e]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-5ac31f7e]{margin-left:8px}.note-cell[data-v-5ac31f7e]{max-width:200px}.note-edit[data-v-5ac31f7e]{flex-wrap:wrap}.zone[data-v-5ac31f7e]{padding:12px 12px 14px}.f-grid[data-v-5ac31f7e],.det-grid[data-v-5ac31f7e]{grid-template-columns:1fr}.m-actions[data-v-5ac31f7e],.mx-actions[data-v-5ac31f7e]{flex-wrap:wrap}.modal[data-v-5ac31f7e]{padding:16px}.node-row[data-v-5ac31f7e]{flex-wrap:wrap}.node-row .sel[data-v-5ac31f7e]{flex:100%}.modal-mask[data-v-5ac31f7e]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-5ac31f7e]{gap:8px}.zone-head h2[data-v-5ac31f7e]{font-size:14px}.zone-actions[data-v-5ac31f7e]{flex-wrap:wrap}.ov-card[data-v-5ac31f7e]{padding:10px 12px}}.page[data-v-68be5b34]{padding:4px}h1[data-v-68be5b34]{letter-spacing:-.015em;margin:2px 0 4px;font-size:30px;font-weight:400}.sub[data-v-68be5b34]{opacity:.6;margin:0;font-size:12.5px}.mono[data-v-68be5b34]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.dim[data-v-68be5b34]{opacity:.55}.err[data-v-68be5b34]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.pad[data-v-68be5b34]{padding:10px 12px}.badges[data-v-68be5b34]{gap:8px;display:flex}.badge[data-v-68be5b34]{letter-spacing:.05em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:3px 10px;font-size:11.5px}.badge.bad[data-v-68be5b34]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.infra-banner[data-v-68be5b34]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-panel-sm,10px);align-items:flex-start;gap:10px;margin-bottom:14px;padding:10px 14px;display:flex}.infra-banner>span[data-v-68be5b34]:first-child{flex:none;margin-top:2px}.infra-banner .txt[data-v-68be5b34]{flex:auto;font-size:12.5px;line-height:1.5}.ov-card[data-v-68be5b34]{margin-bottom:14px;padding:10px 18px}.ov-row[data-v-68be5b34]{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.ov-item[data-v-68be5b34]{align-items:center;gap:5px;display:inline-flex}.ov-item b[data-v-68be5b34]{color:var(--ink);font-weight:700}.ov-item.ok[data-v-68be5b34]{color:var(--tone-success-dot)}.ov-item.bad[data-v-68be5b34]{color:var(--tone-danger-dot)}.ov-item.accent b[data-v-68be5b34]{color:var(--accent)}.ov-row .sep[data-v-68be5b34]{opacity:.4}.ov-row .reload[data-v-68be5b34]{margin-left:auto}.zone[data-v-68be5b34]{margin-bottom:14px;padding:12px 18px 14px}.zone-head[data-v-68be5b34]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;margin-bottom:10px;display:flex}.zone-head h2[data-v-68be5b34]{letter-spacing:.01em;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:inline-flex}.zone-head h2 .cnt[data-v-68be5b34]{color:var(--ink-faint);font-size:11.5px;font-weight:400}.zone-actions[data-v-68be5b34]{align-items:center;gap:8px;display:flex}.env-grid[data-v-68be5b34]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;display:grid}.env-card[data-v-68be5b34]{background:var(--surface-sunken,color-mix(in srgb, var(--ink) 3%, transparent));border:1px solid var(--divider-hair);border-radius:var(--radius-chip);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.env-card.ok[data-v-68be5b34]{border-color:color-mix(in srgb, var(--tone-success-dot) 35%, transparent)}.env-card.bad[data-v-68be5b34]{border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, transparent)}.env-card .ec-head[data-v-68be5b34]{align-items:center;gap:6px;font-size:12.5px;display:flex}.env-card .ec-head .ec-state[data-v-68be5b34]{color:var(--ink-faint);margin-left:auto;font-size:11.5px}.env-card.ok .ec-head>span[data-v-68be5b34]:first-child{color:var(--tone-success-dot)}.env-card.bad .ec-head>span[data-v-68be5b34]:first-child{color:var(--tone-warning-dot)}.env-card .ec-detail[data-v-68be5b34]{color:var(--ink-soft);overflow-wrap:anywhere;margin:0;font-size:11.5px;line-height:1.55}.env-card .ec-detail.dim[data-v-68be5b34]{color:var(--ink-faint)}.env-card .ec-actions[data-v-68be5b34]{flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px;display:flex}.env-card .ec-issues[data-v-68be5b34]{max-height:96px;margin:0;padding:0;font-size:11.5px;list-style:none;overflow-y:auto}.env-card .ec-issues li[data-v-68be5b34]{color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;display:flex}.env-card .ec-issues .tag[data-v-68be5b34]{color:var(--tone-warning-dot);background:var(--tone-warning-bg);border-radius:3px;flex:none;padding:0 5px;font-size:11.5px}.env-task[data-v-68be5b34]{border-top:1px solid var(--divider-hair);margin-top:10px;padding-top:10px}.env-task .et-head[data-v-68be5b34]{align-items:center;gap:8px;font-size:12px;display:flex}.env-task .et-head .dim[data-v-68be5b34]{color:var(--ink-faint);font-weight:400}.env-task .et-log[data-v-68be5b34]{white-space:pre-wrap;background:var(--surface-sunken,color-mix(in srgb, var(--ink) 4%, transparent));border-radius:var(--radius-chip);max-height:220px;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.5;overflow:auto}.mini-btn.primary[data-v-68be5b34]{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}@keyframes amlSpin-68be5b34{to{transform:rotate(1turn)}}.spin[data-v-68be5b34]{animation:1s linear infinite amlSpin-68be5b34;display:inline-block}@media (prefers-reduced-motion:reduce){.spin[data-v-68be5b34]{animation:none}}.note-edit[data-v-68be5b34]{align-items:center;gap:6px;display:flex}.note-edit input[data-v-68be5b34]{min-width:120px;color:var(--ink);border:1px solid var(--line-strong);background:0 0;border-radius:4px;padding:3px 6px;font-size:12px}.note-text[data-v-68be5b34]{align-items:center;gap:6px;display:inline-flex}.note-text .edit-i[data-v-68be5b34]{cursor:pointer;opacity:.5}.note-text .edit-i[data-v-68be5b34]:hover{opacity:1}.live-dot[data-v-68be5b34]{background:var(--tone-success-dot);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--tone-success-dot) 60%, transparent);border-radius:50%}@media (prefers-reduced-motion:no-preference){.live-dot[data-v-68be5b34]{animation:1.8s ease-in-out infinite amlPulse-68be5b34}}@keyframes amlPulse-68be5b34{50%{opacity:.4}}.tbl[data-v-68be5b34]{border-collapse:collapse;width:100%;font-size:12.5px}.tbl td[data-v-68be5b34],.tbl th[data-v-68be5b34]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:8px 10px}.tbl th[data-v-68be5b34]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600}.tbl .num[data-v-68be5b34],.tbl .right[data-v-68be5b34]{text-align:right}.tbl .acts[data-v-68be5b34]{white-space:nowrap}.tbl .acts .mini-btn+.mini-btn[data-v-68be5b34]{margin-left:6px}.row-main[data-v-68be5b34]{cursor:pointer}@media (prefers-reduced-motion:no-preference){.row-main[data-v-68be5b34]:hover{background:var(--hover-tint)}}.row-main.open td[data-v-68be5b34]{border-bottom-color:#0000}.note-cell[data-v-68be5b34]{max-width:260px}.note[data-v-68be5b34]{text-overflow:ellipsis;white-space:nowrap;width:100%;display:inline-block;overflow:hidden}.kind[data-v-68be5b34]{border:1px solid var(--line);color:var(--ink-faint);border-radius:99px;margin-left:6px;padding:1px 6px;font-size:11.5px}.kind.agent[data-v-68be5b34]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.detail-row td[data-v-68be5b34]{background:var(--frost-bg);padding:0 12px 12px}.det-grid[data-v-68be5b34]{grid-template-columns:minmax(340px,3fr) minmax(280px,2fr);gap:10px 22px;display:grid}@media (width<=1100px){.det-grid[data-v-68be5b34]{grid-template-columns:1fr}}.det-title[data-v-68be5b34]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:10px 0 6px;font-size:11.5px;font-weight:600}.det-title[data-v-68be5b34]:first-child{margin-top:10px}.sub-tbl[data-v-68be5b34]{border-collapse:collapse;width:100%;font-size:12px}.sub-tbl td[data-v-68be5b34],.sub-tbl th[data-v-68be5b34]{text-align:left;border-bottom:1px solid var(--divider-hair);padding:5px 8px}.sub-tbl th[data-v-68be5b34]{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-size:11.5px}.sub-tbl .num[data-v-68be5b34]{text-align:right}.role-chip[data-v-68be5b34]{font-family:var(--font-mono);background:var(--paper-deep);color:var(--ink-soft);border-radius:5px;padding:1px 6px;font-size:11.5px}.run-line[data-v-68be5b34]{overflow-wrap:anywhere;margin:4px 0;font-size:11.5px}.run-line b[data-v-68be5b34]{color:var(--ink)}.drop-line[data-v-68be5b34]{color:var(--tone-danger-dot);overflow-wrap:anywhere;margin:2px 0;font-size:11.5px}.st-pill[data-v-68be5b34]{font-family:var(--font-mono);letter-spacing:.04em;border-radius:var(--radius-pill);padding:3px 9px;font-size:11.5px;display:inline-block}.st-pill.provisioning[data-v-68be5b34],.st-pill.queued[data-v-68be5b34]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.st-pill.evaluating[data-v-68be5b34],.st-pill.running[data-v-68be5b34],.st-pill.training[data-v-68be5b34]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 12%, transparent)}.st-pill.done[data-v-68be5b34],.st-pill.gates_passed[data-v-68be5b34]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.st-pill.failed[data-v-68be5b34],.st-pill.gates_failed[data-v-68be5b34],.st-pill.timeout[data-v-68be5b34]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.st-pill.cancelled[data-v-68be5b34],.st-pill.interrupted[data-v-68be5b34]{color:var(--tone-neutral-dot);background:var(--tone-neutral-bg)}.prog-th[data-v-68be5b34]{min-width:140px}.prog-cell[data-v-68be5b34]{white-space:nowrap}.prog[data-v-68be5b34]{vertical-align:middle;background:var(--paper-deep);border-radius:3px;width:96px;height:6px;display:inline-block;overflow:hidden}.prog i[data-v-68be5b34]{background:var(--tone-info-dot);border-radius:3px;height:100%;transition:width .4s;display:block}.prog i.done[data-v-68be5b34]{background:var(--tone-success-dot)}.prog i.bad[data-v-68be5b34]{background:var(--tone-danger-dot)}.prog-num[data-v-68be5b34]{color:var(--ink-soft);margin-left:7px;font-size:11.5px}.gate-id[data-v-68be5b34]{font-weight:700}.gate-detail[data-v-68be5b34]{margin-top:3px;font-size:11px;display:block}.verdict[data-v-68be5b34]{border-radius:99px;padding:1px 7px;font-size:11.5px}.verdict.pass[data-v-68be5b34]{color:var(--tone-success-dot);background:var(--tone-success-bg)}.verdict.fail[data-v-68be5b34]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.live-hint[data-v-68be5b34]{letter-spacing:0;color:var(--tone-info-dot);text-transform:none;margin-left:8px;font-size:11.5px;font-weight:400}.logs[data-v-68be5b34]{max-height:260px;font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--divider-hair);white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:9px 11px;font-size:11px;line-height:1.55;overflow-y:auto}tr.best[data-v-68be5b34]{background:color-mix(in srgb, var(--accent) 9%, transparent)}tr.best td[data-v-68be5b34]:first-child{box-shadow:inset 3px 0 0 var(--accent)}.best-tag[data-v-68be5b34]{color:var(--on-accent);background:var(--accent);border-radius:99px;margin-right:6px;padding:1px 7px;font-size:11.5px}.stage-pill[data-v-68be5b34]{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-soft);padding:3px 9px;font-size:11.5px;display:inline-block}.stage-pill.shadow[data-v-68be5b34]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 45%, transparent)}.stage-pill.production[data-v-68be5b34]{color:var(--tone-success-dot);background:var(--tone-success-bg);border-color:#0000}.stage-pill.retired[data-v-68be5b34]{opacity:.55;border-style:dashed}.inp-sel[data-v-68be5b34]{color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:5px 10px;font-size:12px}.pc-body[data-v-68be5b34]{margin-top:4px}.io-grid[data-v-68be5b34]{color:var(--ink-soft);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:11.5px;display:flex}.io-item b[data-v-68be5b34]{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.pc-form[data-v-68be5b34]{grid-template-columns:minmax(300px,3fr) minmax(220px,2fr);gap:12px 18px;display:grid}@media (width<=1100px){.pc-form[data-v-68be5b34]{grid-template-columns:1fr}}.pc-field[data-v-68be5b34]{color:var(--ink-soft);flex-direction:column;gap:5px;margin-top:8px;font-size:12px;display:flex}.pc-side[data-v-68be5b34]{flex-direction:column;align-items:stretch;gap:8px;display:flex}.pc-side .ghost-btn[data-v-68be5b34]{align-self:flex-start;margin-top:8px}.pc-side .pill-btn[data-v-68be5b34]{margin-top:auto}.inp[data-v-68be5b34]{font-family:var(--font-mono);color:var(--ink);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:6px 10px;font-size:12px}.inp.area[data-v-68be5b34]{resize:vertical;line-height:1.5}.inp[data-v-68be5b34]:focus{border-color:var(--accent);outline:none}.hint[data-v-68be5b34]{margin:8px 0 0;font-size:11.5px;line-height:1.6}.modal-mask[data-v-68be5b34]{z-index:60;background:color-mix(in srgb, var(--ink) 45%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal[data-v-68be5b34]{background:var(--paper);border:1px solid var(--line-strong);border-radius:14px;width:min(760px,100%);max-height:84vh;padding:18px 22px 16px;overflow-y:auto;box-shadow:0 18px 48px #00000040}.m-title[data-v-68be5b34]{margin:0 0 12px;font-size:16px;font-weight:600}.f-grid[data-v-68be5b34]{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin-bottom:10px;display:grid}@media (width<=720px){.f-grid[data-v-68be5b34]{grid-template-columns:1fr}}.f[data-v-68be5b34]{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12px;display:flex}.f.wide[data-v-68be5b34]{grid-column:1/-1}.f em[data-v-68be5b34]{color:var(--tone-danger-dot);margin-left:2px;font-style:normal}.sec-label[data-v-68be5b34]{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:12px 0 8px;font-size:11px;font-weight:600}.node-rows[data-v-68be5b34]{flex-direction:column;gap:7px;margin-bottom:12px;display:flex}.node-row[data-v-68be5b34]{align-items:center;gap:8px;display:flex}.node-row .grow[data-v-68be5b34]{flex:auto}.node-row .sel[data-v-68be5b34]{flex:0 0 220px}.m-err[data-v-68be5b34]{color:var(--tone-danger-dot);margin:6px 0;font-size:12.5px}.m-actions[data-v-68be5b34]{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.empty[data-v-68be5b34]{color:var(--ink-faint);text-align:center;margin:6px 0;padding:18px 0;font-size:12.5px}.tbl-scroll[data-v-68be5b34]{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}@media (width<=900px){.tbl-scroll[data-v-68be5b34]{scrollbar-width:thin;overflow-x:auto}.tbl-datasets[data-v-68be5b34]{min-width:720px}.tbl-jobs[data-v-68be5b34]{min-width:860px}.tbl-exp[data-v-68be5b34]{min-width:700px}.tbl-models[data-v-68be5b34]{min-width:780px}.tbl td[data-v-68be5b34],.tbl th[data-v-68be5b34]{white-space:nowrap}.tbl tbody>tr>td[data-v-68be5b34]:first-child,.tbl thead>tr>th[data-v-68be5b34]:first-child{z-index:2;background:var(--paper-raised);box-shadow:1px 0 0 var(--line);position:sticky;left:0}.tbl thead>tr>th[data-v-68be5b34]:first-child{z-index:3}.detail-row>td[data-v-68be5b34]:first-child{box-shadow:none;background:var(--frost-bg);position:static}.inp[data-v-68be5b34],.inp-sel[data-v-68be5b34],.mini-btn[data-v-68be5b34],.note-edit input[data-v-68be5b34],.pill-btn[data-v-68be5b34]{min-height:40px}.tbl .acts .mini-btn+.mini-btn[data-v-68be5b34]{margin-left:8px}.note-cell[data-v-68be5b34]{max-width:200px}.note-edit[data-v-68be5b34]{flex-wrap:wrap}.zone[data-v-68be5b34]{padding:12px 12px 14px}.f-grid[data-v-68be5b34],.det-grid[data-v-68be5b34]{grid-template-columns:1fr}.m-actions[data-v-68be5b34],.mx-actions[data-v-68be5b34]{flex-wrap:wrap}.modal[data-v-68be5b34]{padding:16px}.node-row[data-v-68be5b34]{flex-wrap:wrap}.node-row .sel[data-v-68be5b34]{flex:100%}.modal-mask[data-v-68be5b34]{padding:4vh 10px 12px}}@media (width<=640px){.zone-head[data-v-68be5b34]{gap:8px}.zone-head h2[data-v-68be5b34]{font-size:14px}.zone-actions[data-v-68be5b34]{flex-wrap:wrap}.ov-card[data-v-68be5b34]{padding:10px 12px}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"0530cee1-fff5-4025-a6f4-5708b6534608","timestamp":1790329249025,"prerendered":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{N as e,dt as t,ft as n,mt as r,u 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 g,rt as _,y as v}from"./ByMj6e7s.js";import{c as y,d as b,o as ee,s as x}from"./Dqz5HiXa.js";import{t as te}from"./Cmp8PMrA.js";import{n as S}from"./Cnrmlixo.js";import{t as C}from"./DzBbYWrw2.js";import{t as w}from"./BDNMzG2s2.js";import{r as T}from"./Du9v6qGB.js";import{t as E}from"./Dy3oXKdn2.js";import{t as D}from"./BDmNbZ252.js";import{t as O}from"./74x7BOWv2.js";import{t as k}from"./Chphw5IA2.js";import{t as A}from"./9zrLAN2o2.js";import{t as ne}from"./H2rNs1O82.js";import{t as re}from"./BdM_Qr752.js";import{t as ie}from"./C3twEwTh2.js";import{t as ae}from"./Cr518Gh02.js";var j={class:`aw-page-head`},oe={class:`aw-kicker`},se={class:`sub`},ce={class:`badges mono`},le={class:`badge`},ue={class:`badge`},de={class:`badge`},fe=Object.assign(w(o({__name:`DcwDetailHead`,props:{line:{},lineId:{},nodesCount:{},productsCount:{},recipesCount:{}},setup(e){return(t,i)=>(s(),d(`div`,j,[u(`div`,null,[u(`p`,oe,[u(`span`,{class:`line-chip`,style:n({background:e.line?.color??`#3aa0ff`})},null,4),v(`AGENTWORKSHOP / LINE / `+r(e.line?.name??e.lineId),1)]),u(`h1`,null,r(e.line?.name??t.$t(`dcwDetail.k1b2snna151`))+` · `+r(t.$t(`dcwDetail.k1l0iow1137`)),1),u(`p`,se,r(e.line?.description||t.$t(`dcwDetail.kzcbfki152`)),1)]),u(`div`,ce,[u(`span`,le,r(t.$t(`dcwDetail.k45uio082`))+` `+r(e.nodesCount),1),u(`span`,ue,r(t.$t(`dcwDetail.k3waz1025`))+` `+r(e.productsCount),1),u(`span`,de,r(t.$t(`dcwDetail.k48grv027`))+` `+r(e.recipesCount),1)])]))}}),[[`__scopeId`,`data-v-2c59e7e0`]]),{__name:`DcwDetailHead`}),pe={class:`aw-tile ctrl-card`},me={class:`ctrl-left`},he=[`title`],ge={class:`ctrl-right`},_e={class:`ctrl-metrics mono`},ve=[`title`],ye=[`title`],be=[`title`],xe=Object.assign(w(o({__name:`DcwGatewayBar`,props:{running:{type:Boolean},nodesOnline:{},nodesTotal:{},writesTotal:{},writesFailed:{}},emits:[`toggle`,`open-templates`,`open-add`],setup(e,{emit:n}){let i=n;return(n,a)=>(s(),d(`section`,pe,[u(`div`,me,[u(`button`,{class:t([`aw-pill`,{running:e.running}]),title:n.$t(`dcwDetail.k1snap154`),onClick:a[0]||=t=>i(`toggle`,e.running?`pause`:`resume`)},[u(`span`,{class:t(e.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),v(` `+r(e.running?n.$t(`dcwDetail.kplrsg153`):n.$t(`dcwDetail.knxgni9169`)),1)],10,he)]),u(`div`,ge,[u(`span`,_e,[u(`span`,null,r(n.$t(`dcwDetail.k45uio082`))+` `+r(e.nodesOnline)+`/`+r(e.nodesTotal),1),a[3]||=u(`span`,{class:`sep`},`·`,-1),u(`span`,{title:n.$t(`dcwDetail.kd3ygmn001`)},r(n.$t(`dcwDetail.k3wtib138`))+` `+r(e.writesTotal),9,ve),a[4]||=u(`span`,{class:`sep`},`·`,-1),u(`span`,{class:t({warn:e.writesFailed>0}),title:n.$t(`dcwDetail.kd3znl0002`)},r(n.$t(`dcwDetail.k3yit7139`))+` `+r(e.writesFailed),11,ye)]),u(`button`,{class:`aw-pill outline`,title:n.$t(`dcwDetail.kc4ixly003`),onClick:a[1]||=e=>i(`open-templates`)},[a[5]||=u(`span`,{class:`i-tabler-template`},null,-1),v(` `+r(n.$t(`dcwDetail.k1972dx9020`)),1)],8,be),u(`button`,{class:`aw-pill add-btn`,onClick:a[2]||=e=>i(`open-add`)},[a[6]||=u(`span`,{class:`i-tabler-plus`},null,-1),v(` `+r(n.$t(`dcwDetail.k1976uns021`)),1)])])]))}}),[[`__scopeId`,`data-v-e18f9fc9`]]),{__name:`DcwGatewayBar`}),Se={key:0,class:`aw-tile adopt-card`},Ce={class:`adopt-title`},we={class:`adopt-list`},Te=[`onClick`],M=[`onClick`],Ee=Object.assign(w(o({__name:`DcwAdoptCard`,props:{unassignedNodes:{},unassignedProducts:{}},emits:[`adopt-node`,`adopt-product`],setup(e,{emit:t}){let n=t;return(t,i)=>e.unassignedNodes.length||e.unassignedProducts.length?(s(),d(`section`,Se,[u(`b`,Ce,r(t.$t(`dcwDetail.kaebkky022`)),1),u(`div`,we,[(s(!0),d(f,null,c(e.unassignedNodes,e=>(s(),d(`span`,{key:e.id,class:`adopt-chip`},[v(r(e.name)+` `,1),u(`button`,{class:`mini-btn`,onClick:t=>n(`adopt-node`,e.id)},r(t.$t(`dcwDetail.kyjp9fg023`)),9,Te)]))),128)),(s(!0),d(f,null,c(e.unassignedProducts,e=>(s(),d(`span`,{key:e.id,class:`adopt-chip`},[v(r(e.name)+`(`+r(t.$t(`dcwDetail.k3km252140`)),1),u(`button`,{class:`mini-btn`,onClick:t=>n(`adopt-product`,e.id)},r(t.$t(`dcwDetail.kyjp9fg023`)),9,M)]))),128))])])):m(``,!0)}}),[[`__scopeId`,`data-v-6ad055a2`]]),{__name:`DcwAdoptCard`}),De={class:`aw-tile line-card`},N={class:`line-status`},Oe={class:`line-info`},ke={key:0,class:`mono dim`},Ae={key:1,class:`dim`},je={class:`line-ctl`},Me={class:`ctl-sel`},Ne={value:``},P=[`value`],Pe={class:`ctl-sel`},Fe=[`disabled`],Ie={value:``},F=[`value`,`disabled`],I=[`disabled`,`title`],Le=[`disabled`],Re={key:0,class:`banner bad`,style:{"margin-top":`10px`}},ze={key:1,class:`banner good`,style:{"margin-top":`10px`}},Be=Object.assign(w(o({__name:`DcwLineRunCard`,props:p({ls:{},lineProducts:{},lineRecipes:{},lineBusy:{type:Boolean},lineMsg:{},lineErr:{}},{productId:{required:!0},productIdModifiers:{},recipeId:{required:!0},recipeIdModifiers:{}}),emits:p([`start`,`stop`],[`update:productId`,`update:recipeId`]),setup(e,{emit:n}){let i=n,o=a(e,`productId`),l=a(e,`recipeId`);return(n,a)=>(s(),d(`section`,De,[u(`div`,N,[u(`span`,{class:t([`line-dot`,{on:e.ls.active}])},null,2),u(`div`,Oe,[u(`b`,null,r(e.ls.active?n.$t(`dcwDetail.k1pxrhx0154`):n.$t(`dcwDetail.k1b2hxmx170`)),1),e.ls.active?(s(),d(`small`,ke,r(e.ls.productName)+` · `+r(e.ls.recipeName)+` · `+r(n.$t(`dcwDetail.k400lb075`))+` `+r(e.ls.runId)+` · `+r(n.$t(`dcwDetail.k3zkt2166`))+` `+r(e.ls.startedAt?.slice(11,19))+` `+r(n.$t(`dcwDetail.k69vag8168`))+` `+r(e.ls.taggedSamples)+` `+r(n.$t(`dcwDetail.k4118o085`)),1)):(s(),d(`small`,Ae,r(n.$t(`dcwDetail.k19pof14024`)),1))])]),u(`div`,je,[u(`label`,Me,[u(`span`,null,r(n.$t(`dcwDetail.k3waz1025`)),1),_(u(`select`,{"onUpdate:modelValue":a[0]||=e=>o.value=e,class:`inp`,onChange:a[1]||=e=>l.value=``},[u(`option`,Ne,r(n.$t(`dcwDetail.kuisodh026`)),1),(s(!0),d(f,null,c(e.lineProducts,e=>(s(),d(`option`,{key:e.id,value:e.id},r(e.name),9,P))),128))],544),[[x,o.value]])]),u(`label`,Pe,[u(`span`,null,r(n.$t(`dcwDetail.k48grv027`)),1),_(u(`select`,{"onUpdate:modelValue":a[2]||=e=>l.value=e,class:`inp`,disabled:!o.value},[u(`option`,Ie,r(n.$t(`dcwDetail.kutxzsz028`)),1),(s(!0),d(f,null,c(e.lineRecipes,e=>(s(),d(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},r(e.name)+r(e.params.length===0?n.$t(`dcwDetail.k1hicmch155`):n.$t(`dcwDetail.k1lzfi4g180`,{p0:e.params.length})),9,F))),128))],8,Fe),[[x,l.value]])]),e.ls.active?(s(),d(`button`,{key:1,class:`pill-btn stop`,disabled:e.lineBusy,onClick:a[4]||=e=>i(`stop`)},r(n.$t(`dcwDetail.k1xyhd2y030`)),9,Le)):(s(),d(`button`,{key:0,class:`pill-btn`,disabled:e.lineBusy||!l.value,title:l.value?n.$t(`dcwDetail.startTip`):n.$t(`dcwDetail.startNeedRecipe`),onClick:a[3]||=e=>i(`start`)},r(n.$t(`dcwDetail.kfb8vml029`)),9,I))]),e.lineErr?(s(),d(`p`,Re,r(e.lineErr),1)):m(``,!0),e.lineMsg?(s(),d(`p`,ze,r(e.lineMsg),1)):m(``,!0)]))}}),[[`__scopeId`,`data-v-7ef9dbe9`]]),{__name:`DcwLineRunCard`}),Ve={class:`modal`},He={class:`m-title`},Ue={class:`dim mono`},L={class:`dim tpl-hint`},We={class:`tpl-chips`},R=[`title`],Ge={class:`mono`},Ke={class:`sec-label`},z={class:`f-grid tpl-form`},qe={class:`f`},B=[`placeholder`],Je={class:`f`},Ye=[`placeholder`],Xe={class:`f`},Ze=[`placeholder`],Qe={class:`f`},V=[`placeholder`],$e={class:`f`},et=[`placeholder`],tt={class:`f`},nt=[`placeholder`],H={class:`f`},rt={class:`f`},it=[`value`],at={class:`f`},ot=[`placeholder`],st={key:0,class:`banner good`,style:{"margin-top":`10px`}},ct={key:1,class:`m-err`},lt={class:`m-actions`},ut=[`disabled`],dt=Object.assign(w(o({__name:`DcwDetailTemplateModal`,props:p({templates:{},tplIcons:{},builtinCount:{},customCount:{},tplSaving:{type:Boolean},tplError:{},tplOk:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:p([`submit`,`close`],[`update:open`,`update:form`]),setup(n,{emit:i}){let o=i,{t:l}=S(),p=a(n,`open`),h=a(n,`form`);return(i,a)=>p.value?(s(),d(`div`,{key:0,class:`modal-mask`,onClick:a[11]||=b(e=>p.value=!1,[`self`])},[u(`div`,Ve,[u(`h3`,He,[v(r(i.$t(`dcwDetail.k1x4vam0031`))+` `,1),u(`small`,Ue,r(i.$t(`dcwDetail.k3x23c141`))+` `+r(n.builtinCount)+` · `+r(i.$t(`dcwDetail.k3t616a142`))+` `+r(n.customCount),1)]),u(`p`,L,r(i.$t(`dcwDetail.ke1iyud032`)),1),u(`div`,We,[(s(!0),d(f,null,c(n.templates,n=>(s(),d(`span`,{key:n.key,class:`tpl-chip`,title:`${n.code} · ${n.min}~${n.max} ${n.unit}${n.semantics?` · ${n.semantics}`:``}`},[v(r((`catalogTplName`in i?i.catalogTplName:e(T))(e(l),n))+` `,1),u(`small`,Ge,r(n.min)+`~`+r(n.max)+r(n.unit),1),u(`em`,{class:t([`tpl-tag`,{builtin:n.builtin}])},r(n.builtin?i.$t(`dcwDetail.k3x23c141`):i.$t(`dcwDetail.k3t616a142`)),3)],8,R))),128))]),u(`p`,Ke,r(i.$t(`dcwDetail.k169eb4s033`)),1),u(`div`,z,[u(`label`,qe,[u(`span`,null,[v(r(i.$t(`dcwDetail.k1f55q76034`)),1),a[12]||=u(`em`,null,`*`,-1)]),_(u(`input`,{"onUpdate:modelValue":a[0]||=e=>h.value.name=e,class:`inp`,placeholder:i.$t(`dcwDetail.k1tooi3o004`)},null,8,B),[[y,h.value.name]])]),u(`label`,Je,[u(`span`,null,r(i.$t(`dcwDetail.k1bqk219035`)),1),_(u(`input`,{"onUpdate:modelValue":a[1]||=e=>h.value.ch=e,class:`inp`,placeholder:i.$t(`dcwDetail.k698qz0005`)},null,8,Ye),[[y,h.value.ch]])]),u(`label`,Xe,[u(`span`,null,r(i.$t(`dcwDetail.k1ayxrqb036`)),1),_(u(`input`,{"onUpdate:modelValue":a[2]||=e=>h.value.code=e,class:`inp`,placeholder:i.$t(`dcwDetail.codePh`)},null,8,Ze),[[y,h.value.code]])]),u(`label`,Qe,[u(`span`,null,[v(r(i.$t(`dcwDetail.k3x4ef037`)),1),a[13]||=u(`em`,null,`*`,-1)]),_(u(`input`,{"onUpdate:modelValue":a[3]||=e=>h.value.unit=e,class:`inp`,placeholder:i.$t(`dcwDetail.unitPh`)},null,8,V),[[y,h.value.unit]])]),u(`label`,$e,[u(`span`,null,[v(r(i.$t(`dcwDetail.k1l9jv5m038`)),1),a[14]||=u(`em`,null,`*`,-1)]),_(u(`input`,{"onUpdate:modelValue":a[4]||=e=>h.value.min=e,type:`number`,class:`inp`,placeholder:i.$t(`dcwDetail.kxz9174006`)},null,8,et),[[y,h.value.min,void 0,{number:!0}]])]),u(`label`,tt,[u(`span`,null,[v(r(i.$t(`dcwDetail.k1l9jv4p039`)),1),a[15]||=u(`em`,null,`*`,-1)]),_(u(`input`,{"onUpdate:modelValue":a[5]||=e=>h.value.max=e,type:`number`,class:`inp`,placeholder:i.$t(`dcwDetail.kxz9167007`)},null,8,nt),[[y,h.value.max,void 0,{number:!0}]])]),u(`label`,H,[u(`span`,null,r(i.$t(`dcwDetail.k3mxmcx040`)),1),_(u(`input`,{"onUpdate:modelValue":a[6]||=e=>h.value.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[y,h.value.decimals,void 0,{number:!0}]])]),u(`label`,rt,[u(`span`,null,r(i.$t(`dcwDetail.k3xx56041`)),1),_(u(`select`,{"onUpdate:modelValue":a[7]||=e=>h.value.icon=e,class:`inp`},[(s(!0),d(f,null,c(n.tplIcons,e=>(s(),d(`option`,{key:e.key,value:e.key},r(e.label),9,it))),128))],512),[[x,h.value.icon]])])]),u(`label`,at,[u(`span`,null,r(i.$t(`dcwDetail.knjmyfr042`)),1),_(u(`textarea`,{"onUpdate:modelValue":a[8]||=e=>h.value.semantics=e,class:`inp`,rows:`2`,placeholder:i.$t(`dcwDetail.k1qdnfzc008`)},null,8,ot),[[y,h.value.semantics]])]),n.tplOk?(s(),d(`p`,st,r(n.tplOk),1)):m(``,!0),n.tplError?(s(),d(`p`,ct,r(n.tplError),1)):m(``,!0),u(`div`,lt,[u(`button`,{class:`aw-pill outline`,onClick:a[9]||=e=>p.value=!1},r(i.$t(`dcwDetail.k3x62t043`)),1),u(`button`,{class:`pill-btn`,disabled:n.tplSaving||!h.value.name.trim()||h.value.unit.trim()===``||h.value.min===``||h.value.max===``,onClick:a[10]||=e=>o(`submit`)},r(n.tplSaving?i.$t(`dcwDetail.k1bg4759156`):i.$t(`dcwDetail.k1bg9nga171`)),9,ut)])])])):m(``,!0)}}),[[`__scopeId`,`data-v-f19aa086`]]),{__name:`DcwDetailTemplateModal`}),ft={class:`modal`},U={class:`m-title`},pt={class:`seg-row`},mt={class:`f-grid`},ht={class:`f`},gt=[`value`],_t={class:`f`},W=[`placeholder`],G={class:`f`},K=[`placeholder`],q={class:`f`},J=[`placeholder`],Y={class:`f`},X=[`placeholder`],Z={class:`f-grid cal-form`},Q={class:`f`},vt={value:`none`},yt={value:`linear`},bt={class:`f`},xt={style:{display:`flex`,gap:`6px`}},St=[`disabled`,`title`],Ct=[`disabled`,`title`],wt={class:`f-grid`},Tt={class:`f`},Et=[`value`],Dt={key:0,class:`f-grid driver-form`},$={key:0,style:{color:`var(--tone-danger-dot)`,"font-style":`normal`}},Ot=[`onUpdate:modelValue`],kt=[`value`],At=[`onUpdate:modelValue`,`type`,`placeholder`],jt={key:2,class:`hint`},Mt={class:`test-row`},Nt=[`disabled`],Pt={class:`f`},Ft=[`placeholder`],It={key:1,class:`m-err`},Lt={class:`m-actions`},Rt=[`disabled`],zt=Object.assign(w(o({__name:`DcwAddNodeModal`,props:p({templates:{},driverCatalog:{},addFields:{},addTesting:{type:Boolean},addTest:{},addSaving:{type:Boolean},addError:{}},{open:{type:Boolean,required:!0},openModifiers:{},scenario:{required:!0},scenarioModifiers:{},template:{required:!0},templateModifiers:{},driver:{required:!0},driverModifiers:{},name:{required:!0},nameModifiers:{},hold:{required:!0},holdModifiers:{},read:{required:!0},readModifiers:{},writeLock:{required:!0},writeLockModifiers:{},cfg:{required:!0},cfgModifiers:{},transform:{required:!0},transformModifiers:{},semantics:{required:!0},semanticsModifiers:{}}),emits:p([`test`,`submit`],[`update:open`,`update:scenario`,`update:template`,`update:driver`,`update:name`,`update:hold`,`update:read`,`update:writeLock`,`update:cfg`,`update:transform`,`update:semantics`]),setup(n,{emit:i}){let o=i,{t:l}=S(),p=a(n,`open`),h=a(n,`scenario`),g=a(n,`template`),te=a(n,`driver`),C=a(n,`name`),w=a(n,`hold`),E=a(n,`read`),D=a(n,`writeLock`),O=a(n,`cfg`),k=a(n,`transform`),A=a(n,`semantics`);return(i,a)=>p.value?(s(),d(`div`,{key:0,class:`modal-mask`,onClick:a[15]||=b(e=>p.value=!1,[`self`])},[u(`div`,ft,[u(`h3`,U,r(i.$t(`dcwDetail.k1976uns021`)),1),u(`div`,pt,[u(`button`,{class:t([`seg`,{on:h.value===`mock`}]),onClick:a[0]||=e=>h.value=`mock`},r(i.$t(`dcwDetail.mockPlc`)),3),u(`button`,{class:t([`seg`,{on:h.value===`real`}]),onClick:a[1]||=e=>h.value=`real`},r(i.$t(`dcwDetail.kyj8fen044`)),3)]),u(`div`,mt,[u(`label`,ht,[u(`span`,null,r(i.$t(`dcwDetail.k1ejzwqp045`)),1),_(u(`select`,{"onUpdate:modelValue":a[2]||=e=>g.value=e,class:`inp`},[(s(!0),d(f,null,c(n.templates,t=>(s(),d(`option`,{key:t.key,value:t.key},r((`catalogTplName`in i?i.catalogTplName:e(T))(e(l),t))+` · `+r(t.ch)+`(`+r(t.min)+`~`+r(t.max)+` `+r(t.unit)+`)`+r(t.builtin?``:i.$t(`dcwDetail.kr45rk9157`)),9,gt))),128))],512),[[x,g.value]])]),u(`label`,_t,[u(`span`,null,r(i.$t(`dcwDetail.k1ce2k1y046`)),1),_(u(`input`,{"onUpdate:modelValue":a[3]||=e=>C.value=e,class:`inp`,placeholder:i.$t(`dcwDetail.kgpxzy3009`)},null,8,W),[[y,C.value]])]),u(`label`,G,[u(`span`,null,r(i.$t(`dcwDetail.k1vyb8im047`)),1),_(u(`input`,{"onUpdate:modelValue":a[4]||=e=>w.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:i.$t(`dcwDetail.kb1srz0010`)},null,8,K),[[y,w.value,void 0,{number:!0}]])]),u(`label`,q,[u(`span`,null,r(i.$t(`dcwDetail.k9r7d4e016`)),1),_(u(`input`,{"onUpdate:modelValue":a[5]||=e=>E.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:i.$t(`dcwDetail.k9r7d4e017`)},null,8,J),[[y,E.value,void 0,{number:!0}]])]),u(`label`,Y,[u(`span`,null,r(i.$t(`dcwDetail.writeLockLabel`)),1),_(u(`input`,{"onUpdate:modelValue":a[6]||=e=>D.value=e,type:`number`,min:`0`,max:`3600`,step:`1`,class:`inp`,placeholder:i.$t(`dcwDetail.writeLockHint`)},null,8,X),[[y,D.value,void 0,{number:!0}]])])]),u(`div`,Z,[u(`label`,Q,[u(`span`,null,r(i.$t(`dcwDetail.kiune1f048`)),1),_(u(`select`,{"onUpdate:modelValue":a[7]||=e=>k.value.kind=e,class:`inp`},[u(`option`,vt,r(i.$t(`dcwDetail.kkzy0k049`)),1),u(`option`,yt,r(i.$t(`dcwDetail.linearCalOpt`)),1)],512),[[x,k.value.kind]])]),u(`label`,bt,[a[16]||=u(`span`,null,`scale / offset`,-1),u(`div`,xt,[_(u(`input`,{"onUpdate:modelValue":a[8]||=e=>k.value.scale=e,type:`number`,step:`0.1`,class:`inp`,disabled:k.value.kind!==`linear`,title:i.$t(`dcwDetail.calScaleTip`)},null,8,St),[[y,k.value.scale,void 0,{number:!0}]]),_(u(`input`,{"onUpdate:modelValue":a[9]||=e=>k.value.offset=e,type:`number`,step:`0.1`,class:`inp`,disabled:k.value.kind!==`linear`,title:i.$t(`dcwDetail.calOffsetTip`)},null,8,Ct),[[y,k.value.offset,void 0,{number:!0}]])])])]),h.value===`real`?(s(),d(f,{key:0},[u(`div`,wt,[u(`label`,Tt,[u(`span`,null,r(i.$t(`dcwDetail.k1kt87rx050`)),1),_(u(`select`,{"onUpdate:modelValue":a[10]||=e=>te.value=e,class:`inp`},[(s(!0),d(f,null,c(n.driverCatalog.filter(e=>e.status!==`builtin`),e=>(s(),d(`option`,{key:e.kind,value:e.kind},r(e.label)+r(e.plugin?` ⌁`:``),9,Et))),128))],512),[[x,te.value]])])]),n.addFields.length?(s(),d(`div`,Dt,[(s(!0),d(f,null,c(n.addFields,e=>(s(),d(`label`,{key:e.key,class:`f`},[u(`span`,null,[v(r(e.label),1),e.required?(s(),d(`em`,$,`*`)):m(``,!0)]),e.type===`select`?_((s(),d(`select`,{key:0,"onUpdate:modelValue":t=>O.value[e.key]=t,class:`inp`},[(s(!0),d(f,null,c(e.options,e=>(s(),d(`option`,{key:e.value,value:e.value},r(e.label),9,kt))),128))],8,Ot)),[[x,O.value[e.key]]]):_((s(),d(`input`,{key:1,"onUpdate:modelValue":t=>O.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,At)),[[ee,O.value[e.key]]]),e.hint?(s(),d(`small`,jt,r(e.hint),1)):m(``,!0)]))),128))])):m(``,!0),u(`div`,Mt,[u(`button`,{class:`pill-btn outline`,disabled:n.addTesting,onClick:a[11]||=e=>o(`test`)},r(n.addTesting?i.$t(`dcwDetail.k1fsh720158`):i.$t(`dcwDetail.k1fstglk172`)),9,Nt),n.addTest?(s(),d(`span`,{key:0,class:t([`test-result`,n.addTest.ok?`good`:`bad`])},r(n.addTest.ok?`✓`:`✗`)+` `+r(n.addTest.message),3)):m(``,!0)])],64)):m(``,!0),u(`label`,Pt,[u(`span`,null,r(i.$t(`dcwDetail.k1hgizn7051`)),1),_(u(`textarea`,{"onUpdate:modelValue":a[12]||=e=>A.value=e,class:`inp`,rows:`2`,placeholder:i.$t(`dcwDetail.k12bnyt9011`)},null,8,Ft),[[y,A.value]])]),n.addError?(s(),d(`p`,It,r(n.addError),1)):m(``,!0),u(`div`,Lt,[u(`button`,{class:`aw-pill outline`,onClick:a[13]||=e=>p.value=!1},r(i.$t(`dcwDetail.k3xdnn052`)),1),u(`button`,{class:`aw-pill`,disabled:n.addSaving,onClick:a[14]||=e=>o(`submit`)},r(n.addSaving?i.$t(`dcwDetail.k1bg4759156`):i.$t(`dcwDetail.k1bge46t173`)),9,Rt)])])])):m(``,!0)}}),[[`__scopeId`,`data-v-bb8a6efc`]]),{__name:`DcwAddNodeModal`}),Bt={class:`aw-tile table-card`},Vt={class:`nodes-table`},Ht={class:`right`},Ut={class:`mono dim`},Wt={class:`mono ch`},Gt=[`disabled`,`title`,`onClick`],Kt={key:0,class:`st-pill paused`},qt={class:`mono val`},Jt={key:0,class:`dim`},Yt={class:`mono val`},Xt=[`title`],Zt={key:0,class:`dim`},Qt=[`disabled`,`title`,`onClick`],$t={class:`write-row`},en=[`onUpdate:modelValue`,`placeholder`,`min`,`max`,`step`,`disabled`,`title`],tn=[`disabled`,`title`,`onClick`],nn={class:`mono dim`},rn={class:`mono`},an=[`title`],on=[`title`],sn={class:`right`},cn=[`onClick`],ln={key:0},un={colspan:`9`},dn={class:`pane-empty`,style:{"min-height":`120px`}},fn={class:`pe-sub`},pn=Object.assign(w(o({__name:`DcwNodesTable`,props:p({lineNodes:{},stateLabel:{},togglingId:{},readingId:{},writingId:{},loaded:{type:Boolean},error:{},dcwTemplateRefCh:{type:Function},nodeDeviceNames:{type:Function}},{setInputs:{required:!0},setInputsModifiers:{}}),emits:p([`toggle`,`read`,`write`,`remove`],[`update:setInputs`]),setup(e,{emit:n}){let i=n,o=a(e,`setInputs`);return(n,a)=>{let l=C;return s(),g(l,{spinning:!e.loaded&&!e.error},{default:h(()=>[u(`section`,Bt,[u(`table`,Vt,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,r(n.$t(`dcwDetail.k1e2dtkt053`)),1),u(`th`,null,r(n.$t(`dcwDetail.k403cy054`)),1),u(`th`,null,r(n.$t(`dcwDetail.k42w8s055`)),1),u(`th`,null,r(n.$t(`dcwDetail.k1deqh0d056`)),1),u(`th`,null,r(n.$t(`dcwDetail.k9r7d4e018`)),1),u(`th`,null,r(n.$t(`dcwDetail.k1k79ec9057`)),1),u(`th`,null,r(n.$t(`dcwDetail.k1dexou6058`)),1),u(`th`,null,r(n.$t(`dcwDetail.k1b1nnaa059`)),1),u(`th`,null,r(n.$t(`dcwDetail.k1i8rtqt060`)),1),u(`th`,Ht,r(n.$t(`dcwDetail.k40aa6061`)),1)])]),u(`tbody`,null,[(s(!0),d(f,null,c(e.lineNodes,c=>(s(),d(`tr`,{key:c.id,class:t({"node-paused":!c.enabled})},[u(`td`,null,[u(`span`,Ut,r(c.id.slice(0,8)),1),u(`b`,null,r(c.name),1),u(`small`,Wt,r(e.dcwTemplateRefCh(c.templateRef)),1)]),u(`td`,null,[u(`button`,{class:t([`ctrl-toggle`,{on:c.enabled}]),disabled:e.togglingId===c.id,title:c.enabled?n.$t(`dcwDetail.pauseCtrlTip`):n.$t(`dcwDetail.enableCtrlTip`),onClick:e=>i(`toggle`,c.id,!c.enabled)},[a[0]||=u(`span`,{class:`ct-dot`},null,-1),v(` `+r(c.enabled?n.$t(`dcwDetail.k3o3ib3159`):n.$t(`dcwDetail.k3n93ed062`)),1)],10,Gt)]),u(`td`,null,[c.enabled?(s(),d(`span`,{key:1,class:t([`st-pill`,c.state])},r(e.stateLabel[c.state]??c.state),3)):(s(),d(`span`,Kt,r(n.$t(`dcwDetail.k3n93ed062`)),1))]),u(`td`,qt,[v(r(c.value==null?`--`:c.value.toFixed(c.decimals))+` `,1),u(`small`,null,r(c.unit),1),c.lastAckAt?(s(),d(`small`,Jt,` · `+r(c.lastAckAt.slice(11,19)),1)):m(``,!0)]),u(`td`,Yt,[u(`span`,{title:c.lastReadError??n.$t(`dcwDetail.k9r7d4e019`),class:t({"read-stale":c.lastReadError})},r(c.readValue==null?`--`:c.readValue.toFixed(c.decimals)),11,Xt),u(`small`,null,r(c.unit),1),c.lastReadAt?(s(),d(`small`,Zt,` · `+r(c.lastReadAt.slice(11,19)),1)):m(``,!0),u(`button`,{class:`mini-btn read-btn`,disabled:e.readingId===c.id,title:n.$t(`dcwDetail.k9r7d4e020`),onClick:e=>i(`read`,c.id)},r(e.readingId===c.id?`···`:n.$t(`dcwDetail.k9r7d4e021`)),9,Qt)]),u(`td`,null,[u(`div`,$t,[_(u(`input`,{"onUpdate:modelValue":e=>o.value[c.id]=e,type:`number`,class:`inp write-inp mono`,placeholder:`${c.min}~${c.max}`,min:c.min,max:c.max,step:10**-c.decimals,disabled:!c.enabled,title:c.enabled?``:n.$t(`dcwDetail.pausedTip`)},null,8,en),[[y,o.value[c.id],void 0,{number:!0}]]),u(`button`,{class:`mini-btn write-btn`,disabled:!c.enabled||e.writingId===c.id||o.value[c.id]==null||o.value[c.id]===``,title:c.enabled?n.$t(`dcwDetail.writeTip`):n.$t(`dcwDetail.pausedTip`),onClick:e=>i(`write`,c.id,Number(o.value[c.id]))},r(e.writingId===c.id?n.$t(`dcwDetail.k3l3h80123`):n.$t(`dcwDetail.k3w6td174`)),9,tn)])]),u(`td`,nn,r(c.min)+` ~ `+r(c.max)+` `+r(c.unit),1),u(`td`,rn,[v(r(c.holdIntervalMs==null?n.$t(`dcwDetail.k3zul4160`):`${c.holdIntervalMs}ms`)+` `,1),u(`small`,{class:`dim`,title:n.$t(`dcwDetail.k9r7d4e016`)},`· `+r(c.readIntervalMs===0?n.$t(`dcwDetail.k9r7d4e022`):c.readIntervalMs==null?n.$t(`dcwDetail.k9r7d4e023`):`${c.readIntervalMs}ms`),9,an),u(`small`,{class:`dim`,title:n.$t(`dcwDetail.writeLockHint`)},`· `+r(c.writeLockSeconds===0?`0s`:`${c.writeLockSeconds}s`),9,on)]),u(`td`,null,r(e.nodeDeviceNames(c)),1),u(`td`,sn,[u(`button`,{class:`mini-btn danger`,onClick:e=>i(`remove`,c.id)},r(n.$t(`dcwDetail.k3xakp063`)),9,cn)])],2))),128)),e.loaded&&e.lineNodes.length===0?(s(),d(`tr`,ln,[u(`td`,un,[u(`div`,dn,[u(`p`,fn,r(n.$t(`dcwDetail.k1wtecyw064`)),1)])])])):m(``,!0)])])])]),_:1},8,[`spinning`])}}}),[[`__scopeId`,`data-v-c3bdf494`]]),{__name:`DcwNodesTable`}),mn={class:`modal`},hn={class:`m-title`},gn={class:`sec-label`},_n={class:`nodes-table`},vn={class:`mono dim`},yn={class:`mono`},bn={class:`mono`},xn={class:`mono dim`},Sn={class:`mono dim`},Cn={key:0},wn={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},Tn={class:`sec-label`},En={class:`nodes-table`},Dn={class:`mono`},On={class:`mono dim`},kn={class:`mono dim`},An={key:0},jn={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},Mn={class:`m-actions`},Nn=Object.assign(w(o({__name:`DcwRunDataModal`,props:{runDataView:{}},emits:[`close`],setup(e,{emit:n}){let i=n;return(n,a)=>e.runDataView?(s(),d(`div`,{key:0,class:`modal-mask`,onClick:a[1]||=b(e=>i(`close`),[`self`])},[u(`div`,mn,[u(`h3`,hn,r(n.$t(`dcwDetail.k11lq94k145`))+` `+r(e.runDataView.data.run.recipeName)+`(`+r(e.runDataView.runId)+`) `,1),u(`p`,gn,r(n.$t(`dcwDetail.k1me41w8080`)),1),u(`table`,_n,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,r(n.$t(`dcwDetail.k48hde081`)),1),u(`th`,null,r(n.$t(`dcwDetail.k45uio082`)),1),u(`th`,null,r(n.$t(`dcwDetail.k40t11083`)),1),u(`th`,null,r(n.$t(`dcwDetail.k3xuaw084`)),1),a[2]||=u(`th`,null,`min ~ max`,-1),u(`th`,null,r(n.$t(`dcwDetail.k4118o085`)),1)])]),u(`tbody`,null,[(s(!0),d(f,null,c(e.runDataView.data.daq,e=>(s(),d(`tr`,{key:e.nodeId},[u(`td`,null,[v(r(e.ch),1),u(`small`,vn,r(e.unit),1)]),u(`td`,null,r(e.nodeName),1),u(`td`,yn,r(e.latest),1),u(`td`,bn,r(e.avg),1),u(`td`,xn,r(e.min)+` ~ `+r(e.max),1),u(`td`,Sn,r(e.cnt),1)]))),128)),e.runDataView.data.daq.length===0?(s(),d(`tr`,Cn,[u(`td`,wn,r(n.$t(`dcwDetail.kd457ry086`)),1)])):m(``,!0)])]),u(`p`,Tn,r(n.$t(`dcwDetail.k12b7cxs087`)),1),u(`table`,En,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,r(n.$t(`dcwDetail.k3xbjr088`)),1),u(`th`,null,r(n.$t(`dcwDetail.k45uio082`)),1),u(`th`,null,r(n.$t(`dcwDetail.k3ncbsh089`)),1),u(`th`,null,r(n.$t(`dcwDetail.k3lh3mz090`)),1),u(`th`,null,r(n.$t(`dcwDetail.k454pg091`)),1),u(`th`,null,r(n.$t(`dcwDetail.k40ieu092`)),1)])]),u(`tbody`,null,[(s(!0),d(f,null,c(e.runDataView.data.writes,(e,i)=>(s(),d(`tr`,{key:i},[u(`td`,null,r(e.param),1),u(`td`,null,r(e.nodeName),1),u(`td`,Dn,r(e.eng),1),u(`td`,On,r(e.raw),1),u(`td`,null,[u(`span`,{class:t([`st-pill`,e.ok?`ok`:`alarm`])},r(e.ok?`ACK`:n.$t(`dcwDetail.k3yit7139`)),3)]),u(`td`,kn,r(e.at.slice(5,19)),1)]))),128)),e.runDataView.data.writes.length===0?(s(),d(`tr`,An,[u(`td`,jn,r(n.$t(`dcwDetail.knzcp8i093`)),1)])):m(``,!0)])]),u(`div`,Mn,[u(`button`,{class:`aw-pill outline`,onClick:a[0]||=e=>i(`close`)},r(n.$t(`dcwDetail.k3x62t043`)),1)])])])):m(``,!0)}}),[[`__scopeId`,`data-v-23fad435`]]),{__name:`DcwRunDataModal`}),Pn={class:`aw-tile recipe-card`},Fn={class:`recipe-hd`},In={class:`panel-tag mono`},Ln={class:`recipe-sub`},Rn={key:0,class:`product-row`},zn=[`title`,`onClick`],Bn=[`title`,`onClick`],Vn={key:1,class:`dim`,style:{margin:`6px 0 12px`,"font-size":`12px`}},Hn={class:`recipe-grid`},Un={class:`recipe-name`},Wn=[`title`],Gn={class:`dim`},Kn={class:`mono dim`},qn={key:0,class:`dim desc`},Jn={class:`recipe-params mono`},Yn=[`title`],Xn={key:0,class:`chip-stale-tag`},Zn=[`title`],Qn={key:0,class:`chip-stale-tag`},$n={class:`recipe-actions`},er=[`onClick`],tr=[`onClick`],nr=[`onClick`],rr={key:0,class:`mono`},ir=[`onClick`],ar={key:0,class:`pane-empty`,style:{"grid-column":`1 / -1`}},or={key:2,class:`banner good`},sr=[`disabled`],cr={key:3,class:`runs`},lr={class:`sec-label`},ur={class:`nodes-table`},dr={class:`right`},fr={class:`mono`},pr={class:`mono dim`},mr={class:`right`},hr=[`disabled`,`onClick`],gr=[`onClick`],_r=Object.assign(w(o({__name:`DcwRecipePanel`,props:p({lineProducts:{},visibleRecipes:{},lineRuns:{},applyResult:{},runDataView:{},runDataLoading:{type:Boolean},productName:{type:Function},paramStatus:{type:Function},paramNodeName:{type:Function},daqWindowStatus:{type:Function},daqNodeCh:{type:Function}},{filterProductId:{required:!0},filterProductIdModifiers:{}}),emits:p([`create`,`open-product`,`apply`,`edit`,`history`,`remove-recipe`,`remove-product`,`view-run`,`close-run`,`close-run-data`],[`update:filterProductId`]),setup(n,{emit:i}){let o=i,{t:p}=S(),h=a(n,`filterProductId`);return(i,a)=>{let g=Nn;return s(),d(`section`,Pn,[u(`div`,Fn,[u(`h3`,null,r(i.$t(`dcwDetail.k1j8w3hd065`)),1),u(`span`,In,r(n.lineProducts.length)+` `+r(i.$t(`dcwDetail.k1av3wgs143`))+` `+r(n.visibleRecipes.length)+` `+r(i.$t(`dcwDetail.k48grv027`)),1),u(`button`,{class:`pill-btn`,style:{"margin-left":`auto`},onClick:a[0]||=e=>o(`create`)},r(i.$t(`dcwDetail.k1akm6dc066`)),1),u(`button`,{class:`mini-btn`,onClick:a[1]||=e=>o(`open-product`)},r(i.$t(`dcwDetail.k1aka0ki067`)),1)]),u(`p`,Ln,r(i.$t(`dcwDetail.k6bl2q8068`)),1),n.lineProducts.length?(s(),d(`div`,Rn,[u(`button`,{class:t([`prod-chip`,{on:h.value===``}]),onClick:a[2]||=e=>h.value=``},r(i.$t(`dcwDetail.k3x4t1069`)),3),(s(!0),d(f,null,c(n.lineProducts,e=>(s(),d(`button`,{key:e.id,class:t([`prod-chip`,{on:h.value===e.id}]),title:e.description,onClick:t=>h.value=e.id},[v(r(e.name)+` `,1),u(`span`,{class:`prod-del`,title:i.$t(`dcwDetail.k1bpfjgx012`),onClick:b(t=>o(`remove-product`,e.id),[`stop`])},`×`,8,Bn)],10,zn))),128))])):(s(),d(`p`,Vn,r(i.$t(`dcwDetail.knov3zg070`)),1)),u(`div`,Hn,[(s(!0),d(f,null,c(n.visibleRecipes,a=>(s(),d(`div`,{key:a.id,class:`recipe-item`},[u(`div`,Un,[u(`b`,null,r(a.name),1),a.version?(s(),d(`span`,{key:0,class:`param-chip mono`,title:e(p)(`dcwDetail.histTitle`)},`v`+r(a.version),9,Wn)):m(``,!0),u(`small`,Gn,r(n.productName(a.productId)),1),u(`small`,Kn,r(a.id),1)]),a.description?(s(),d(`p`,qn,r(a.description),1)):m(``,!0),u(`div`,Jn,[(s(!0),d(f,null,c(a.params,(e,i)=>(s(),d(`span`,{key:i,class:t([`param-chip`,{stale:n.paramStatus(e.nodeId,a.lineId)}]),title:n.paramStatus(e.nodeId,a.lineId)?.label??``},[v(r(n.paramNodeName(e.nodeId))+` = `+r(e.value),1),n.paramStatus(e.nodeId,a.lineId)?(s(),d(`span`,Xn,r(n.paramStatus(e.nodeId,a.lineId).label),1)):m(``,!0)],10,Yn))),128)),(s(!0),d(f,null,c(a.daqWindows,(e,o)=>(s(),d(`span`,{key:`w-${o}`,class:t([`param-chip daqwin`,{stale:n.daqWindowStatus(e.nodeId,a.lineId)}]),title:n.daqWindowStatus(e.nodeId,a.lineId)?.label??i.$t(`dcwDetail.k1l11api013`)},[v(` ◎ `+r(n.daqNodeCh(e.nodeId))+` ∈ [`+r(e.min??`-∞`)+`, `+r(e.max??`+∞`)+`]`,1),n.daqWindowStatus(e.nodeId,a.lineId)?(s(),d(`span`,Qn,r(n.daqWindowStatus(e.nodeId,a.lineId).label),1)):m(``,!0)],10,Zn))),128))]),u(`div`,$n,[u(`button`,{class:`pill-btn`,onClick:e=>o(`apply`,a.id)},r(i.$t(`dcwDetail.k1497qvr071`)),9,er),u(`button`,{class:`mini-btn`,onClick:e=>o(`edit`,a.id)},r(i.$t(`dcwDetail.k45eb0072`)),9,tr),u(`button`,{class:`mini-btn`,onClick:e=>o(`history`,a.id)},[v(r(e(p)(`dcwDetail.histBtn`)),1),a.version?(s(),d(`span`,rr,`·v`+r(a.version),1)):m(``,!0)],8,nr),u(`button`,{class:`mini-btn danger`,onClick:e=>o(`remove-recipe`,a.id)},r(i.$t(`dcwDetail.k3xakp063`)),9,ir)])]))),128)),n.visibleRecipes.length===0?(s(),d(`div`,ar,r(i.$t(`dcwDetail.keko1xy073`)),1)):m(``,!0)]),n.applyResult?(s(),d(`div`,or,[v(r(i.$t(`dcwDetail.k1l3hrvp144`))+` `+r(n.applyResult.runId)+` `+r(i.$t(`dcwDetail.k1g3lh2v167`))+r(n.applyResult.ok)+`/`+r(n.applyResult.total)+` `+r(i.$t(`dcwDetail.k1bqci06149`))+` `,1),u(`button`,{class:`mini-btn`,style:{"margin-left":`10px`},disabled:n.runDataLoading,onClick:a[3]||=e=>o(`view-run`,n.applyResult.runId)},r(n.runDataLoading?i.$t(`dcwDetail.k1br0ij9161`):i.$t(`dcwDetail.kxwei5175`)),9,sr)])):m(``,!0),n.lineRuns.length?(s(),d(`div`,cr,[u(`p`,lr,r(i.$t(`dcwDetail.k1rjer8d074`)),1),u(`table`,ur,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,r(i.$t(`dcwDetail.k400lb075`)),1),u(`th`,null,r(i.$t(`dcwDetail.k48grv027`)),1),u(`th`,null,r(i.$t(`dcwDetail.k4497j076`)),1),u(`th`,null,r(i.$t(`dcwDetail.k1bqhtmu077`)),1),u(`th`,dr,r(i.$t(`dcwDetail.k40aa6061`)),1)])]),u(`tbody`,null,[(s(!0),d(f,null,c([...n.lineRuns].reverse().slice(0,8),e=>(s(),d(`tr`,{key:e.id},[u(`td`,fr,r(e.id),1),u(`td`,null,r(e.recipeName),1),u(`td`,pr,r(e.startedAt.slice(5,19))+` ~ `+r(e.endedAt?e.endedAt.slice(5,19):i.$t(`dcwDetail.k3vpfg9162`)),1),u(`td`,null,[u(`span`,{class:t([`st-pill`,e.results.every(e=>e.ok)?`ok`:`warn`])},r(e.results.filter(e=>e.ok).length)+`/`+r(e.results.length),3)]),u(`td`,mr,[u(`button`,{class:`mini-btn`,disabled:n.runDataLoading,onClick:t=>o(`view-run`,e.id)},r(i.$t(`dcwDetail.k1dzwrdp078`)),9,hr),e.endedAt?m(``,!0):(s(),d(`button`,{key:0,class:`mini-btn`,onClick:t=>o(`close-run`,e.id)},r(i.$t(`dcwDetail.k1blr7y7079`)),9,gr))])]))),128))])])])):m(``,!0),l(g,{"run-data-view":n.runDataView,onClose:a[4]||=e=>o(`close-run-data`)},null,8,[`run-data-view`])])}}}),[[`__scopeId`,`data-v-a0cf197b`]]),{__name:`DcwRecipePanel`}),vr={class:`modal`},yr={class:`m-title`},br={class:`f-grid`},xr={class:`f`},Sr=[`value`],Cr={class:`f`},wr=[`placeholder`],Tr={class:`f`},Er=[`placeholder`],Dr={class:`sec-label`},Or={class:`f`},kr=[`onUpdate:modelValue`],Ar=[`value`],jr={key:0,class:`row-stale`},Mr={class:`f`},Nr=[`onUpdate:modelValue`],Pr={class:`f`},Fr=[`onUpdate:modelValue`,`placeholder`],Ir={class:`f`},Lr=[`onUpdate:modelValue`,`placeholder`],Rr=[`onClick`],zr={class:`sec-label`},Br={class:`f`},Vr=[`onUpdate:modelValue`],Hr=[`value`],Ur={class:`f`},Wr=[`onUpdate:modelValue`],Gr={class:`f`},Kr=[`onUpdate:modelValue`],qr=[`onClick`],Jr=[`disabled`,`title`],Yr={key:0,class:`m-note`},Xr={key:1,class:`m-err`},Zr={class:`m-actions`},Qr=[`disabled`],$r=Object.assign(w(o({__name:`DcwRecipeEditModal`,props:p({lineProducts:{},lineNodes:{},lineDaqNodes:{},lineId:{},recipeEditing:{},recipeSaving:{type:Boolean},recipeError:{},recipeStaleNote:{},dcwTemplateRefCh:{type:Function},nodeMin:{type:Function},nodeMax:{type:Function},paramStatus:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:p([`submit`,`close`],[`update:open`,`update:form`]),setup(e,{emit:t}){let n=t,i=a(e,`open`),o=a(e,`form`);return(t,a)=>i.value?(s(),d(`div`,{key:0,class:`modal-mask`,onClick:a[7]||=b(e=>i.value=!1,[`self`])},[u(`div`,vr,[u(`h3`,yr,r(e.recipeEditing?t.$t(`dcwDetail.k1iiwk0i163`):t.$t(`dcwDetail.k1efq0r9176`)),1),u(`div`,br,[u(`label`,xr,[u(`span`,null,[v(r(t.$t(`dcwDetail.k1dw4fzf094`)),1),a[8]||=u(`em`,null,`*`,-1)]),_(u(`select`,{"onUpdate:modelValue":a[0]||=e=>o.value.productId=e,class:`inp`},[(s(!0),d(f,null,c(e.lineProducts,e=>(s(),d(`option`,{key:e.id,value:e.id},r(e.name),9,Sr))),128))],512),[[x,o.value.productId]])]),u(`label`,Cr,[u(`span`,null,[v(r(t.$t(`dcwDetail.k1l3f8so095`)),1),a[9]||=u(`em`,null,`*`,-1)]),_(u(`input`,{"onUpdate:modelValue":a[1]||=e=>o.value.name=e,class:`inp`,placeholder:t.$t(`dcwDetail.k12c11vm014`)},null,8,wr),[[y,o.value.name]])]),u(`label`,Tr,[u(`span`,null,r(t.$t(`dcwDetail.k40gkk096`)),1),_(u(`input`,{"onUpdate:modelValue":a[2]||=e=>o.value.description=e,class:`inp`,placeholder:t.$t(`dcwDetail.k1hxx8hy015`)},null,8,Er),[[y,o.value.description]])])]),u(`p`,Dr,r(t.$t(`dcwDetail.ka1kfgh097`)),1),(s(!0),d(f,null,c(o.value.params,(n,i)=>(s(),d(`div`,{key:i,class:`param-row`},[u(`label`,Or,[u(`span`,null,r(t.$t(`dcwDetail.k1e2dtkt053`)),1),_(u(`select`,{"onUpdate:modelValue":e=>n.nodeId=e,class:`inp`},[(s(!0),d(f,null,c(e.lineNodes,t=>(s(),d(`option`,{key:t.id,value:t.id},r(t.name)+`(`+r(e.dcwTemplateRefCh(t.templateRef))+` · `+r(t.min)+`~`+r(t.max)+` `+r(t.unit)+`) `,9,Ar))),128))],8,kr),[[x,n.nodeId]]),e.paramStatus(n.nodeId,e.lineId)?(s(),d(`span`,jr,r(e.paramStatus(n.nodeId,e.lineId).label),1)):m(``,!0)]),u(`label`,Mr,[u(`span`,null,[v(r(t.$t(`dcwDetail.k3renp2098`)),1),a[10]||=u(`em`,null,`*`,-1)]),_(u(`input`,{"onUpdate:modelValue":e=>n.value=e,type:`number`,class:`inp`,step:.1},null,8,Nr),[[y,n.value,void 0,{number:!0}]])]),u(`label`,Pr,[u(`span`,null,r(t.$t(`dcwDetail.k134rw3b146`))+r(e.nodeMin(n.nodeId)??`-`)+`)`,1),_(u(`input`,{"onUpdate:modelValue":e=>n.min=e,type:`number`,class:`inp`,step:.1,placeholder:t.$t(`dcwDetail.k5vew9z016`)},null,8,Fr),[[y,n.min,void 0,{number:!0}]])]),u(`label`,Ir,[u(`span`,null,r(t.$t(`dcwDetail.khrv911147`))+r(e.nodeMax(n.nodeId)??`-`)+`)`,1),_(u(`input`,{"onUpdate:modelValue":e=>n.max=e,type:`number`,class:`inp`,step:.1,placeholder:t.$t(`dcwDetail.kzoh5pr017`)},null,8,Lr),[[y,n.max,void 0,{number:!0}]])]),u(`button`,{class:`mini-btn danger param-del`,onClick:e=>o.value.params.splice(i,1)},r(t.$t(`dcwDetail.k44idg099`)),9,Rr)]))),128)),u(`button`,{class:`mini-btn`,onClick:a[3]||=t=>o.value.params.push({nodeId:e.lineNodes[0]?.id??``,value:``,min:``,max:``})},r(t.$t(`dcwDetail.k1broh7h100`)),1),u(`p`,zr,r(t.$t(`dcwDetail.k1h5gues101`)),1),(s(!0),d(f,null,c(o.value.daqWindows,(n,i)=>(s(),d(`div`,{key:`dw-${i}`,class:`param-row`},[u(`label`,Br,[u(`span`,null,r(t.$t(`dcwDetail.k1empnnb102`)),1),_(u(`select`,{"onUpdate:modelValue":e=>n.nodeId=e,class:`inp`},[(s(!0),d(f,null,c(e.lineDaqNodes,e=>(s(),d(`option`,{key:e.id,value:e.id},r(e.name)+`(`+r(e.min)+`~`+r(e.max)+` `+r(e.unit)+`) `,9,Hr))),128))],8,Vr),[[x,n.nodeId]])]),u(`label`,Ur,[u(`span`,null,r(t.$t(`dcwDetail.kqm08ap103`)),1),_(u(`input`,{"onUpdate:modelValue":e=>n.min=e,type:`number`,class:`inp`,step:.1},null,8,Wr),[[y,n.min,void 0,{number:!0}]])]),u(`label`,Gr,[u(`span`,null,r(t.$t(`dcwDetail.kpypf8g104`)),1),_(u(`input`,{"onUpdate:modelValue":e=>n.max=e,type:`number`,class:`inp`,step:.1},null,8,Kr),[[y,n.max,void 0,{number:!0}]])]),u(`button`,{class:`mini-btn danger param-del`,onClick:e=>o.value.daqWindows.splice(i,1)},r(t.$t(`dcwDetail.k44idg099`)),9,qr)]))),128)),u(`button`,{class:`mini-btn`,disabled:e.lineDaqNodes.length===0,title:e.lineDaqNodes.length===0?t.$t(`dcwDetail.noDaqTip`):``,onClick:a[4]||=t=>o.value.daqWindows.push({nodeId:e.lineDaqNodes[0]?.id??``,min:``,max:``})},r(t.$t(`dcwDetail.kv1de1p105`)),9,Jr),e.recipeStaleNote?(s(),d(`p`,Yr,r(e.recipeStaleNote),1)):m(``,!0),e.recipeError?(s(),d(`p`,Xr,r(e.recipeError),1)):m(``,!0),u(`div`,Zr,[u(`button`,{class:`aw-pill outline`,onClick:a[5]||=e=>i.value=!1},r(t.$t(`dcwDetail.k3xdnn052`)),1),u(`button`,{class:`pill-btn`,disabled:e.recipeSaving,onClick:a[6]||=e=>n(`submit`)},r(e.recipeSaving?t.$t(`dcwDetail.k1b38d59164`):t.$t(`dcwDetail.k1b3kwg0177`)),9,Qr)])])])):m(``,!0)}}),[[`__scopeId`,`data-v-1896aa5e`]]),{__name:`DcwRecipeEditModal`}),ei={class:`modal`,style:{"max-width":`760px`}},ti={class:`modal-head`},ni={key:0,class:`dim`,style:{"margin-left":`8px`,"font-size":`12px`}},ri={key:0,class:`banner good`,style:{margin:`6px 0`}},ii={key:1,class:`dim`},ai={key:2,class:`pane-empty`},oi={class:`ver-head`},si={class:`mono ver-v`},ci={class:`mono dim`},li={class:`ver-actor`},ui=[`onClick`],di={key:0,class:`ver-desc`},fi={class:`ver-diff mono`},pi=Object.assign(w(o({__name:`DcwRecipeHistoryModal`,props:p({verRecipe:{},verRows:{},verLoading:{type:Boolean},verMsg:{},paramNodeName:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:p([`revert`,`close`],[`update:open`]),setup(n,{emit:i}){let o=n,l=i,{t:p}=S(),h=a(n,`open`),g=e=>e===`agent`?`Agent`:p(e===`system`?`dcwDetail.srcSystem`:`dcwDetail.srcUser`);function _(e,t){if(t===0)return p(`dcwDetail.histInit`);let n=o.verRows[t-1],r=e.params.map(e=>({p:e,old:n.params.find(t=>t.nodeId===e.nodeId)})).filter(({p:e,old:t})=>!t||t.value!==e.value).map(({p:e,old:t})=>`${o.paramNodeName(e.nodeId)}: ${t?.value??p(`dcwDetail.histAdded`)} → ${e.value}`);return r.length>0?r.join(`;`):p(`dcwDetail.histNoChange`)}return(i,a)=>h.value?(s(),d(`div`,{key:0,class:`modal-mask`,onClick:a[1]||=b(e=>h.value=!1,[`self`])},[u(`div`,ei,[u(`div`,ti,[u(`h3`,null,[v(r(e(p)(`dcwDetail.histTitle`)),1),n.verRecipe?(s(),d(`span`,ni,r(n.verRecipe.name)+` · v`+r(n.verRecipe.version),1)):m(``,!0)]),u(`button`,{class:`mini-btn`,onClick:a[0]||=e=>h.value=!1},` ✕ `)]),n.verMsg?(s(),d(`p`,ri,r(n.verMsg),1)):m(``,!0),n.verLoading?(s(),d(`p`,ii,r(e(p)(`dcwDetail.histLoading`)),1)):n.verRows.length===0?(s(),d(`div`,ai,r(e(p)(`dcwDetail.histEmpty`)),1)):(s(!0),d(f,{key:3},c(n.verRows,(n,i)=>(s(),d(`div`,{key:n.version,class:t([`ver-row`,{cur:n.current}])},[u(`div`,oi,[u(`span`,si,`v`+r(n.version),1),u(`span`,{class:t([`ver-src`,n.by??(n.current?`cur`:``)])},r(n.current?e(p)(`dcwDetail.histCurrent`):g(n.by)),3),u(`span`,ci,r(n.at.slice(0,19).replace(`T`,` `)),1),u(`span`,li,r(n.actorName||`—`),1),n.current?m(``,!0):(s(),d(`button`,{key:0,class:`mini-btn`,onClick:e=>l(`revert`,n.version)},r(e(p)(`dcwDetail.revertTo`)),9,ui))]),n.description?(s(),d(`p`,di,r(n.description),1)):m(``,!0),u(`p`,fi,r(_(n,i)),1)],2))),128))])])):m(``,!0)}}),[[`__scopeId`,`data-v-322135bb`]]),{__name:`DcwRecipeHistoryModal`}),mi={class:`aw-tile query-card`},hi={class:`sec-label`},gi={class:`q-grid`},_i={class:`f`},vi={value:``},yi=[`value`],bi={class:`f`},xi=[`disabled`],Si={value:``},Ci=[`value`],wi={class:`f`},Ti={value:``},Ei=[`value`],Di={class:`f`},Oi={value:``},ki=[`value`],Ai={class:`f`},ji={class:`f`},Mi={class:`f q-actions`},Ni=[`disabled`],Pi={key:0,class:`banner bad`,style:{"margin-top":`8px`}},Fi={key:1,class:`q-result`},Ii={class:`nodes-table`},Li={class:`mono dim`},Ri={class:`mono`},zi={class:`mono`},Bi={class:`mono`},Vi={class:`mono dim`},Hi=Object.assign(w(o({__name:`DcwQueryCard`,props:p({lineProducts:{},visibleRecipes:{},lineDaqNodes:{},daqParamKeys:{},queryBusy:{type:Boolean},queryError:{},queryResult:{}},{query:{required:!0},queryModifiers:{}}),emits:p([`run`],[`update:query`]),setup(e,{emit:t}){let n=t,i=a(e,`query`);function o(e){let t=e?.value??e?.avg;return t==null?`--`:String(Math.round(t*1e3)/1e3)}return(t,a)=>(s(),d(`section`,mi,[u(`p`,hi,r(t.$t(`dcwDetail.k1us3jse106`)),1),u(`div`,gi,[u(`label`,_i,[u(`span`,null,r(t.$t(`dcwDetail.k3waz1025`)),1),_(u(`select`,{"onUpdate:modelValue":a[0]||=e=>i.value.productId=e,class:`inp`,onChange:a[1]||=e=>i.value.recipeId=``},[u(`option`,vi,r(t.$t(`dcwDetail.k1bkl1jx107`)),1),(s(!0),d(f,null,c(e.lineProducts,e=>(s(),d(`option`,{key:e.id,value:e.id},r(e.name),9,yi))),128))],544),[[x,i.value.productId]])]),u(`label`,bi,[u(`span`,null,r(t.$t(`dcwDetail.k48grv027`)),1),_(u(`select`,{"onUpdate:modelValue":a[2]||=e=>i.value.recipeId=e,class:`inp`,disabled:!i.value.productId},[u(`option`,Si,r(t.$t(`dcwDetail.k1bkx7cr108`)),1),(s(!0),d(f,null,c(e.visibleRecipes,e=>(s(),d(`option`,{key:e.id,value:e.id},r(e.name),9,Ci))),128))],8,xi),[[x,i.value.recipeId]])]),u(`label`,wi,[u(`span`,null,r(t.$t(`dcwDetail.k1demcae109`)),1),_(u(`select`,{"onUpdate:modelValue":a[3]||=e=>i.value.paramKey=e,class:`inp`},[u(`option`,Ti,r(t.$t(`dcwDetail.k1bkx7ya110`)),1),(s(!0),d(f,null,c(e.daqParamKeys,e=>(s(),d(`option`,{key:e,value:e},r(e),9,Ei))),128))],512),[[x,i.value.paramKey]])]),u(`label`,Di,[u(`span`,null,r(t.$t(`dcwDetail.k45uio082`)),1),_(u(`select`,{"onUpdate:modelValue":a[4]||=e=>i.value.nodeId=e,class:`inp`},[u(`option`,Oi,r(t.$t(`dcwDetail.k1bkul3k111`)),1),(s(!0),d(f,null,c(e.lineDaqNodes,e=>(s(),d(`option`,{key:e.id,value:e.id},r(e.name),9,ki))),128))],512),[[x,i.value.nodeId]])]),u(`label`,Ai,[u(`span`,null,r(t.$t(`dcwDetail.kx2ojn0112`)),1),_(u(`input`,{"onUpdate:modelValue":a[5]||=e=>i.value.lastMin=e,type:`number`,min:`1`,max:`10080`,class:`inp`},null,512),[[y,i.value.lastMin,void 0,{number:!0}]])]),u(`label`,ji,[u(`span`,null,r(t.$t(`dcwDetail.kjvnvn4113`)),1),_(u(`input`,{"onUpdate:modelValue":a[6]||=e=>i.value.bucketMs=e,type:`number`,min:`1000`,step:`500`,class:`inp`},null,512),[[y,i.value.bucketMs,void 0,{number:!0}]])]),u(`div`,Mi,[u(`button`,{class:`pill-btn`,disabled:e.queryBusy,onClick:a[7]||=e=>n(`run`)},r(e.queryBusy?t.$t(`dcwDetail.k1eyx09r165`):t.$t(`dcwDetail.k416ek178`)),9,Ni)])]),e.queryError?(s(),d(`p`,Pi,r(e.queryError),1)):m(``,!0),e.queryResult?(s(),d(`div`,Fi,[u(`table`,Ii,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,r(t.$t(`dcwDetail.k48hde081`)),1),u(`th`,null,r(t.$t(`dcwDetail.k45uio082`)),1),u(`th`,null,r(t.$t(`dcwDetail.k42kcu114`)),1),u(`th`,null,r(t.$t(`dcwDetail.k49ujb115`)),1),u(`th`,null,r(t.$t(`dcwDetail.k40pvw116`)),1),u(`th`,null,r(t.$t(`dcwDetail.k3xho3117`)),1)])]),u(`tbody`,null,[(s(!0),d(f,null,c(e.queryResult.channels,e=>(s(),d(`tr`,{key:e.nodeId},[u(`td`,null,[v(r(e.ch),1),u(`small`,Li,r(e.unit),1)]),u(`td`,null,r(e.nodeName),1),u(`td`,Ri,r(e.points.length),1),u(`td`,zi,r(o(e.points[0])),1),u(`td`,Bi,r(o(e.points[e.points.length-1])),1),u(`td`,Vi,r(new Date(e.points[0]?.at??0).toLocaleTimeString())+` ~ `+r(new Date(e.points[e.points.length-1]?.at??0).toLocaleTimeString()),1)]))),128))])])])):m(``,!0)]))}}),[[`__scopeId`,`data-v-49f143ca`]]),{__name:`DcwQueryCard`}),Ui={class:`aw-tile table-card`},Wi={class:`sec-label`},Gi={class:`nodes-table`},Ki={class:`mono dim`},qi={class:`mono`},Ji={class:`mono dim`},Yi={class:`dim`},Xi=Object.assign(w(o({__name:`DcwWriteHistoryCard`,props:{lineHistory:{}},setup(e){return(n,i)=>(s(),d(`section`,Ui,[u(`p`,Wi,r(n.$t(`dcwDetail.kw7ym9b148`))+` `+r(e.lineHistory.length)+` `+r(n.$t(`dcwDetail.k40bfz150`)),1),u(`table`,Gi,[u(`tbody`,null,[(s(!0),d(f,null,c(e.lineHistory.slice(0,12),e=>(s(),d(`tr`,{key:e.id},[u(`td`,Ki,r(e.at.slice(5,19)),1),u(`td`,null,r(e.param),1),u(`td`,null,r(e.nodeName),1),u(`td`,qi,r(e.eng),1),u(`td`,Ji,` raw `+r(e.raw??`-`),1),u(`td`,null,[u(`span`,{class:t([`st-pill`,e.ok?`ok`:`alarm`])},r(e.ok?`ACK`:n.$t(`dcwDetail.k3yit7139`)),3)]),u(`td`,Yi,r(e.recipeRunId?n.$t(`dcwDetail.k6vgks7181`,{p0:e.recipeRunId}):n.$t(`dcwDetail.manualTag`)),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-1ca86a1c`]]),{__name:`DcwWriteHistoryCard`}),Zi={class:`modal`},Qi={class:`m-title`},$i={class:`f-grid`},ea={class:`f`},ta=[`placeholder`],na={class:`f`},ra=[`placeholder`],ia={key:0,class:`m-err`},aa={class:`m-actions`},oa=[`disabled`],sa=Object.assign(w(o({__name:`DcwProductCreateModal`,props:p({productSaving:{type:Boolean},productError:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:p([`submit`,`close`],[`update:open`,`update:form`]),setup(e,{emit:t}){let n=t,i=a(e,`open`),o=a(e,`form`);return(t,a)=>i.value?(s(),d(`div`,{key:0,class:`modal-mask`,onClick:a[4]||=b(e=>i.value=!1,[`self`])},[u(`div`,Zi,[u(`h3`,Qi,r(t.$t(`dcwDetail.k1efduyf118`)),1),u(`div`,$i,[u(`label`,ea,[u(`span`,null,[v(r(t.$t(`dcwDetail.k1avjrl6119`)),1),a[5]||=u(`em`,null,`*`,-1)]),_(u(`input`,{"onUpdate:modelValue":a[0]||=e=>o.value.name=e,class:`inp`,placeholder:t.$t(`dcwDetail.k12c11vm014`)},null,8,ta),[[y,o.value.name]])]),u(`label`,na,[u(`span`,null,r(t.$t(`dcwDetail.k40gkk096`)),1),_(u(`input`,{"onUpdate:modelValue":a[1]||=e=>o.value.description=e,class:`inp`,placeholder:t.$t(`dcwDetail.k1hxx8hy015`)},null,8,ra),[[y,o.value.description]])])]),e.productError?(s(),d(`p`,ia,r(e.productError),1)):m(``,!0),u(`div`,aa,[u(`button`,{class:`aw-pill outline`,onClick:a[2]||=e=>i.value=!1},r(t.$t(`dcwDetail.k3xdnn052`)),1),u(`button`,{class:`pill-btn`,disabled:e.productSaving,onClick:a[3]||=e=>n(`submit`)},r(e.productSaving?t.$t(`dcwDetail.k1bg4759156`):t.$t(`dcwDetail.k1bg4kn6179`)),9,oa)])])])):m(``,!0)}}),[[`__scopeId`,`data-v-aa17ef24`]]),{__name:`DcwProductCreateModal`}),ca={class:`aw-tile ledger-card`},la={class:`ledger-head`},ua={value:``},da=[`value`],fa={class:`ledger-tri`},pa={class:`tri-cell`},ma={class:`mono`},ha={class:`tri-cell`},ga={class:`mono`},_a={class:`tri-cell`},va={class:`mono`},ya={class:`ledger-cols`},ba={class:`ledger-col`},xa={class:`sec-t`},Sa={class:`ledger-list mono`},Ca={class:`ledger-col`},wa={class:`sec-t`},Ta={class:`ledger-list`},Ea={class:`mono`},Da=Object.assign(w(o({__name:`DcwLedgerCard`,props:p({lineNodes:{},ledger:{}},{nodeId:{required:!0},nodeIdModifiers:{}}),emits:p([`load`,`rollback`],[`update:nodeId`]),setup(e,{emit:n}){let i=n,o=a(e,`nodeId`);return(n,a)=>(s(),d(`section`,ca,[u(`div`,la,[u(`b`,null,r(n.$t(`dcwDetail.k1ledgt001`)),1),_(u(`select`,{"onUpdate:modelValue":a[0]||=e=>o.value=e,class:`inp`,onChange:a[1]||=e=>i(`load`)},[u(`option`,ua,r(n.$t(`dcwDetail.k1ledgs001`)),1),(s(!0),d(f,null,c(e.lineNodes,e=>(s(),d(`option`,{key:e.id,value:e.id},r(e.name),9,da))),128))],544),[[x,o.value]])]),e.ledger?(s(),d(f,{key:0},[u(`div`,fa,[u(`div`,pa,[u(`small`,null,r(n.$t(`dcwDetail.k1ledgv001`)),1),u(`b`,ma,r(e.ledger.current??`--`),1)]),u(`div`,ha,[u(`small`,null,r(n.$t(`dcwDetail.k1ledgv002`)),1),u(`b`,ga,r(e.ledger.recipeTarget??`--`),1)]),u(`div`,_a,[u(`small`,null,r(n.$t(`dcwDetail.k1ledgv003`)),1),u(`b`,va,r(e.ledger.lastGood??`--`),1)]),u(`button`,{class:`mini-btn`,onClick:a[2]||=e=>i(`load`)},r(n.$t(`dcwDetail.k1ledga001`)),1),u(`button`,{class:`mini-btn danger`,onClick:a[3]||=e=>i(`rollback`)},r(n.$t(`dcwDetail.k1ledga002`)),1)]),u(`div`,ya,[u(`div`,ba,[u(`small`,xa,r(n.$t(`dcwDetail.k1ledgh001`)),1),u(`ul`,Sa,[(s(!0),d(f,null,c(e.ledger.journal,e=>(s(),d(`li`,{key:e.id},r(e.at.slice(5,16).replace(`T`,` `))+` [`+r(e.source)+`] `+r(e.prevValue??`?`)+` → `+r(e.newValue),1))),128))])]),u(`div`,Ca,[u(`small`,wa,r(n.$t(`dcwDetail.k1ledgr001`)),1),u(`ul`,Ta,[(s(!0),d(f,null,c(e.ledger.records,e=>(s(),d(`li`,{key:e.id,class:`ledger-rec`},[u(`span`,{class:t([`rec-st`,e.status])},r(e.status),3),u(`span`,Ea,r(e.params[0]?.from??`?`)+` → `+r(e.params[0]?.to),1),u(`small`,null,r(e.judge?`${e.judge.verdict}(${e.judge.by})`:e.status===`open`?`open`:e.closedBy??``),1)]))),128))])])])],64)):m(``,!0)]))}}),[[`__scopeId`,`data-v-15a6bb00`]]),{__name:`DcwLedgerCard`}),Oa={key:0,class:`page`},ka={class:`banner bad`},Aa={key:1,class:`page`},ja={key:2,class:`err`},Ma=w(o({__name:`[id]`,setup(n){let a=D(),o=ae(),c=k(),f=A(a),p=ne(a,f),_=ie(a,p,f,o),y=re(a),b=E(a),ee=O(b),{dcw:x,line:S,lineId:C,ls:w,lineNodes:T,lineProducts:j,lineRecipesAll:oe,lineRuns:se,lineHistory:ce,unassignedNodes:le,unassignedProducts:ue,stateLabel:de,dcwTemplateRefCh:pe,nodeMin:me,nodeMax:he,lineDaqNodes:ge,daqNodeCh:_e,adoptNode:ve,adoptProduct:ye,productName:be,paramStatus:Se,paramNodeName:Ce,daqWindowStatus:we,nodeDeviceNames:Te}=a,{setInputs:M,writingId:De,writeError:N,writeOk:Oe,readingId:ke,togglingId:Ae,doWrite:je,doRead:Me,toggleControl:Ne}=o,{ledgerNodeId:P,ledger:Pe,loadLedger:Fe,rollbackLedgerNode:Ie}=c,{lineProductId:F,lineRecipeId:I,lineBusy:Le,lineMsg:Re,lineErr:ze,lineRecipes:Ve,doLineStart:He,doLineStop:Ue}=f,{filterProductId:L,visibleRecipes:We,productOpen:R,productSaving:Ge,productError:Ke,productForm:z,doCreateProduct:qe}=p,{verOpen:B,verRecipe:Je,verRows:Ye,verLoading:Xe,verMsg:Ze,doRevert:Qe,recipeOpen:V,recipeEditing:$e,recipeSaving:et,recipeError:tt,recipeStaleNote:nt,recipeForm:H,applyResult:rt,runDataView:it,runDataLoading:at,openRecipeCreate:ot,openRecipeEdit:st,openRecipeHistory:ct,saveRecipe:lt,doApplyRecipe:ut,doViewRun:ft}=_,{query:U,queryBusy:pt,queryError:mt,queryResult:ht,doQuery:gt,daqParamKeys:_t}=y,{addOpen:W,addScenario:G,addTemplate:K,addDriver:q,addName:J,addHold:Y,addRead:X,addWriteLock:Z,addCfg:Q,addTransform:vt,addSemantics:yt,addTesting:bt,addTest:xt,addSaving:St,addError:Ct,addFields:wt,driverCatalog:Tt,doTestConnection:Et,doAddNode:Dt}=b,{tplOpen:$,tplSaving:Ot,tplError:kt,tplOk:At,tplForm:jt,tplIcons:Mt,builtinCount:Nt,customCount:Pt,openTplModal:Ft,doCreateTemplate:It}=ee;return(n,a)=>{let o=te,c=fe,f=xe,p=Ee,_=Be,y=dt,b=zt,ee=pn,E=_r,D=$r,O=pi,k=Hi,A=Xi,ne=sa,re=Da;return e(x).loaded&&!e(S)?(s(),d(`div`,Oa,[u(`p`,ka,r(n.$t(`dcwDetail.k19337yp018`)),1),l(o,{class:`pill-btn`,to:`/dcw`},{default:h(()=>[v(r(n.$t(`dcwDetail.kllwu1c019`)),1)]),_:1})])):(s(),d(`div`,Aa,[l(c,{line:e(S),"line-id":e(C),"nodes-count":e(T).length,"products-count":e(j).length,"recipes-count":e(oe).length},null,8,[`line`,`line-id`,`nodes-count`,`products-count`,`recipes-count`]),l(f,{running:e(x).controller.running,"nodes-online":e(x).controller.nodesOnline,"nodes-total":e(x).controller.nodesTotal,"writes-total":e(x).controller.writesTotal,"writes-failed":e(x).controller.writesFailed,onToggle:e(x).startStop,onOpenTemplates:e(Ft),onOpenAdd:a[0]||=e=>W.value=!0},null,8,[`running`,`nodes-online`,`nodes-total`,`writes-total`,`writes-failed`,`onToggle`,`onOpenTemplates`]),e(N)||e(Oe)?(s(),d(`p`,{key:0,class:t([`banner`,e(N)?`bad`:`good`])},r(e(N)||e(Oe)),3)):m(``,!0),l(p,{"unassigned-nodes":e(le),"unassigned-products":e(ue),onAdoptNode:e(ve),onAdoptProduct:e(ye)},null,8,[`unassigned-nodes`,`unassigned-products`,`onAdoptNode`,`onAdoptProduct`]),l(_,{"product-id":e(F),"onUpdate:productId":a[1]||=e=>i(F)?F.value=e:null,"recipe-id":e(I),"onUpdate:recipeId":a[2]||=e=>i(I)?I.value=e:null,ls:e(w),"line-products":e(j),"line-recipes":e(Ve),"line-busy":e(Le),"line-msg":e(Re),"line-err":e(ze),onStart:e(He),onStop:e(Ue)},null,8,[`product-id`,`recipe-id`,`ls`,`line-products`,`line-recipes`,`line-busy`,`line-msg`,`line-err`,`onStart`,`onStop`]),l(y,{open:e($),"onUpdate:open":a[3]||=e=>i($)?$.value=e:null,form:e(jt),"onUpdate:form":a[4]||=e=>i(jt)?jt.value=e:null,templates:e(x).templates,"tpl-icons":e(Mt),"builtin-count":e(Nt),"custom-count":e(Pt),"tpl-saving":e(Ot),"tpl-error":e(kt),"tpl-ok":e(At),onSubmit:e(It),onClose:a[5]||=e=>$.value=!1},null,8,[`open`,`form`,`templates`,`tpl-icons`,`builtin-count`,`custom-count`,`tpl-saving`,`tpl-error`,`tpl-ok`,`onSubmit`]),l(b,{open:e(W),"onUpdate:open":a[6]||=e=>i(W)?W.value=e:null,scenario:e(G),"onUpdate:scenario":a[7]||=e=>i(G)?G.value=e:null,template:e(K),"onUpdate:template":a[8]||=e=>i(K)?K.value=e:null,driver:e(q),"onUpdate:driver":a[9]||=e=>i(q)?q.value=e:null,name:e(J),"onUpdate:name":a[10]||=e=>i(J)?J.value=e:null,hold:e(Y),"onUpdate:hold":a[11]||=e=>i(Y)?Y.value=e:null,read:e(X),"onUpdate:read":a[12]||=e=>i(X)?X.value=e:null,"write-lock":e(Z),"onUpdate:writeLock":a[13]||=e=>i(Z)?Z.value=e:null,cfg:e(Q),"onUpdate:cfg":a[14]||=e=>i(Q)?Q.value=e:null,transform:e(vt),"onUpdate:transform":a[15]||=e=>i(vt)?vt.value=e:null,semantics:e(yt),"onUpdate:semantics":a[16]||=e=>i(yt)?yt.value=e:null,templates:e(x).templates,"driver-catalog":e(Tt),"add-fields":e(wt),"add-testing":e(bt),"add-test":e(xt),"add-saving":e(St),"add-error":e(Ct),onTest:e(Et),onSubmit:e(Dt)},null,8,[`open`,`scenario`,`template`,`driver`,`name`,`hold`,`read`,`write-lock`,`cfg`,`transform`,`semantics`,`templates`,`driver-catalog`,`add-fields`,`add-testing`,`add-test`,`add-saving`,`add-error`,`onTest`,`onSubmit`]),l(ee,{"set-inputs":e(M),"onUpdate:setInputs":a[17]||=e=>i(M)?M.value=e:null,"line-nodes":e(T),"state-label":e(de),"toggling-id":e(Ae),"reading-id":e(ke),"writing-id":e(De),loaded:e(x).loaded,error:e(x).error,"dcw-template-ref-ch":e(pe),"node-device-names":e(Te),onToggle:e(Ne),onRead:e(Me),onWrite:e(je),onRemove:e(x).removeNode},null,8,[`set-inputs`,`line-nodes`,`state-label`,`toggling-id`,`reading-id`,`writing-id`,`loaded`,`error`,`dcw-template-ref-ch`,`node-device-names`,`onToggle`,`onRead`,`onWrite`,`onRemove`]),l(E,{"filter-product-id":e(L),"onUpdate:filterProductId":a[18]||=e=>i(L)?L.value=e:null,"line-products":e(j),"visible-recipes":e(We),"line-runs":e(se),"apply-result":e(rt),"run-data-view":e(it),"run-data-loading":e(at),"product-name":e(be),"param-status":e(Se),"param-node-name":e(Ce),"daq-window-status":e(we),"daq-node-ch":e(_e),onCreate:e(ot),onOpenProduct:a[19]||=e=>R.value=!0,onApply:e(ut),onEdit:e(st),onHistory:e(ct),onRemoveRecipe:e(x).removeRecipe,onRemoveProduct:e(x).removeProduct,onViewRun:e(ft),onCloseRun:e(x).closeRun,onCloseRunData:a[20]||=e=>it.value=null},null,8,[`filter-product-id`,`line-products`,`visible-recipes`,`line-runs`,`apply-result`,`run-data-view`,`run-data-loading`,`product-name`,`param-status`,`param-node-name`,`daq-window-status`,`daq-node-ch`,`onCreate`,`onApply`,`onEdit`,`onHistory`,`onRemoveRecipe`,`onRemoveProduct`,`onViewRun`,`onCloseRun`]),l(D,{open:e(V),"onUpdate:open":a[21]||=e=>i(V)?V.value=e:null,form:e(H),"onUpdate:form":a[22]||=e=>i(H)?H.value=e:null,"line-products":e(j),"line-nodes":e(T),"line-daq-nodes":e(ge),"line-id":e(C),"recipe-editing":e($e),"recipe-saving":e(et),"recipe-error":e(tt),"recipe-stale-note":e(nt),"dcw-template-ref-ch":e(pe),"node-min":e(me),"node-max":e(he),"param-status":e(Se),onSubmit:e(lt),onClose:a[23]||=e=>V.value=!1},null,8,[`open`,`form`,`line-products`,`line-nodes`,`line-daq-nodes`,`line-id`,`recipe-editing`,`recipe-saving`,`recipe-error`,`recipe-stale-note`,`dcw-template-ref-ch`,`node-min`,`node-max`,`param-status`,`onSubmit`]),l(O,{open:e(B),"onUpdate:open":a[24]||=e=>i(B)?B.value=e:null,"ver-recipe":e(Je),"ver-rows":e(Ye),"ver-loading":e(Xe),"ver-msg":e(Ze),"param-node-name":e(Ce),onRevert:e(Qe),onClose:a[25]||=e=>B.value=!1},null,8,[`open`,`ver-recipe`,`ver-rows`,`ver-loading`,`ver-msg`,`param-node-name`,`onRevert`]),l(k,{query:e(U),"onUpdate:query":a[26]||=e=>i(U)?U.value=e:null,"line-products":e(j),"visible-recipes":e(We),"line-daq-nodes":e(ge),"daq-param-keys":e(_t),"query-busy":e(pt),"query-error":e(mt),"query-result":e(ht),onRun:e(gt)},null,8,[`query`,`line-products`,`visible-recipes`,`line-daq-nodes`,`daq-param-keys`,`query-busy`,`query-error`,`query-result`,`onRun`]),e(ce).length?(s(),g(A,{key:1,"line-history":e(ce)},null,8,[`line-history`])):m(``,!0),l(ne,{open:e(R),"onUpdate:open":a[27]||=e=>i(R)?R.value=e:null,form:e(z),"onUpdate:form":a[28]||=e=>i(z)?z.value=e:null,"product-saving":e(Ge),"product-error":e(Ke),onSubmit:e(qe),onClose:a[29]||=e=>R.value=!1},null,8,[`open`,`form`,`product-saving`,`product-error`,`onSubmit`]),e(x).error?(s(),d(`p`,ja,[v(r(e(x).error)+`(`,1),l(o,{to:`/workshop`},{default:h(()=>[v(r(n.$t(`dcwDetail.k1bhhheq120`)),1)]),_:1}),a[31]||=v(`) `,-1)])):m(``,!0),l(re,{"node-id":e(P),"onUpdate:nodeId":a[30]||=e=>i(P)?P.value=e:null,"line-nodes":e(T),ledger:e(Pe),onLoad:e(Fe),onRollback:e(Ie)},null,8,[`node-id`,`line-nodes`,`ledger`,`onLoad`,`onRollback`])]))}}}),[[`__scopeId`,`data-v-6186fc46`]]);export{Ma as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{dt as e,mt as t,v as n}from"./CavpkQb0.js";import{R as r,S as i,V as a,W as o,b as s,d as c,f as l,h as u,i as d,m as f,nt as p,p as m,y as h}from"./ByMj6e7s.js";import{d as ee}from"./Dqz5HiXa.js";import{n as g}from"./Cnrmlixo.js";import{a as _,c as te}from"./wDPc4SSR.js";import{t as ne}from"./Bwc6lt2X.js";import{t as re}from"./Dq0emNZi2.js";import{t as ie}from"./DqtnqNgL2.js";import{t as v}from"./fxWyOzyp2.js";import{t as y}from"./BDNMzG2s2.js";import{t as b}from"./Ch1P2mIf.js";import{t as x}from"./JgheoP3e.js";import{t as S}from"./Du9v6qGB.js";import{t as C}from"./Bt2ZL5332.js";var ae={class:`plugins-page`},oe={class:`aw-page-head`},se={class:`pg-sub`},w={class:`pg-stats`},T={class:`stat`},E={class:`stat`},D={class:`stat`},O={key:1,class:`pg-empty`},k={class:`pg-empty-t`},A={class:`pg-grid aw-stagger`},j=[`onClick`],M={class:`card-head`},N={class:`card-name`},P={class:`card-ver`},F={class:`card-desc`},I={class:`card-tags`},L={key:0,class:`tag client`},R={key:0,class:`card-routes`},z={class:`detail`},B={class:`scope-hint`},ce={key:0},V={key:1,style:{color:`#ff6b6b`}},H={key:0,class:`dim`},U=y(i({__name:`index`,setup(i){let{t:y}=g(),U=e=>{let t=S[e.name];return t?y(t):e.description},W=v(),G=n([]),K=n([]),q=n(!1),J=n(``),Y=n(!1),X=n(null);function Z(){let e=W.token;return e?{authorization:`Bearer ${e}`}:{}}async function Q(){q.value=!0;try{let e=await b(`/api/workshop/plugins`,{headers:Z()});G.value=e.plugins??[],K.value=e.failures??[]}catch(e){_.error(x(e,y(`plugins.loadFail`)))}finally{q.value=!1}}async function le(e){J.value=e.name;try{let t=await b(`/api/workshop/plugins/${e.name}/${e.enabled?`disable`:`enable`}`,{method:`POST`,headers:Z()});if(t.code!==0||!t.data)throw Error(y(`plugins.enableFail`));e.enabled=t.data.enabled,_.success(`${e.name} · ${t.data.enabled?y(`plugins.enabled`):y(`plugins.disabled`)}`),setTimeout(Q,800)}catch(e){_.error(x(e,y(`plugins.enableFail`)))}finally{J.value=``}}let ue=c(()=>G.value.filter(e=>e.enabled).length),de=c(()=>G.value.filter(e=>e.hasClient).length);function $(e){return y(e===`project`?`plugins.scopeProject`:`plugins.scopeUser`)}function fe(e){X.value=e,Y.value=!0}return r(Q),(n,r)=>{let i=te,c=ne,g=C,_=ie,v=re;return a(),u(`div`,ae,[l(`header`,oe,[l(`div`,null,[r[2]||=l(`p`,{class:`aw-kicker`},` agentworkshop / plugins `,-1),l(`h1`,null,t(n.$t(`plugins.title`)),1),l(`p`,se,t(n.$t(`plugins.subtitle`)),1)]),l(`div`,w,[l(`span`,T,[h(t(n.$t(`plugins.enabled`))+` `,1),l(`b`,null,t(ue.value),1)]),l(`span`,E,[h(t(n.$t(`plugins.hasClient`))+` `,1),l(`b`,null,t(de.value),1)]),l(`span`,D,[h(t(n.$t(`plugins.routes`))+` `,1),l(`b`,null,t(G.value.reduce((e,t)=>e+t.routes.length,0)),1)]),s(i,{size:`small`,loading:q.value,onClick:Q},{default:p(()=>[h(t(n.$t(`plugins.refresh`)),1)]),_:1},8,[`loading`])])]),K.value.length?(a(),m(c,{key:0,type:`error`,"show-icon":``,class:`pg-failures`,message:n.$t(`plugins.loadFailures`,{n:K.value.length})},{description:p(()=>[(a(!0),u(d,null,o(K.value,e=>(a(),u(`div`,{key:e.source,class:`fail-line`},t(e.source)+` — `+t(e.error),1))),128))]),_:1},8,[`message`])):f(``,!0),!G.value.length&&!q.value?(a(),u(`div`,O,[r[3]||=l(`span`,{class:`i-tabler-puzzle pg-empty-ico`},null,-1),l(`p`,k,t(n.$t(`plugins.empty`)),1)])):f(``,!0),G.value.length?(a(),m(g,{key:2,"slot-name":`plugins.page`})):f(``,!0),l(`div`,A,[(a(!0),u(d,null,o(G.value,i=>(a(),u(`article`,{key:`${i.scope}:${i.name}`,class:e([`pg-card aw-liftable`,{"is-off":!i.enabled}]),onClick:e=>fe(i)},[l(`div`,M,[l(`span`,N,t(i.name),1),l(`span`,P,t(i.version),1),s(_,{checked:i.enabled,loading:J.value===i.name,size:`small`,onClick:r[0]||=ee(()=>{},[`stop`]),onChange:e=>le(i)},null,8,[`checked`,`loading`,`onChange`])]),l(`p`,F,t(U(i)||`—`),1),l(`div`,I,[l(`span`,{class:e([`tag`,i.scope])},t($(i.scope)),3),l(`span`,{class:e([`tag`,i.enabled?`on`:`off`])},t(i.enabled?n.$t(`plugins.enabled`):n.$t(`plugins.disabled`)),3),i.hasClient?(a(),u(`span`,L,t(n.$t(`plugins.hasClient`)),1)):f(``,!0)]),i.routes.length?(a(),u(`div`,R,[(a(!0),u(d,null,o(i.routes,e=>(a(),u(`code`,{key:e.method+e.path},t(e.method)+` `+t(e.path),1))),128))])):f(``,!0)],10,j))),128))]),s(v,{open:Y.value,"onUpdate:open":r[1]||=e=>Y.value=e,title:X.value?.name,width:`460`},{default:p(()=>[X.value?(a(),u(d,{key:0},[l(`dl`,z,[r[4]||=l(`dt`,null,`version`,-1),l(`dd`,null,t(X.value.version),1),r[5]||=l(`dt`,null,`scope`,-1),l(`dd`,null,t($(X.value.scope)),1),l(`dd`,B,t(X.value.scope===`project`?n.$t(`plugins.scopeBuiltinHint`):n.$t(`plugins.scopeUserHint`)),1),r[6]||=l(`dt`,null,`enabled`,-1),l(`dd`,null,t(X.value.enabled),1),r[7]||=l(`dt`,null,`client`,-1),l(`dd`,null,t(X.value.hasClient?`✓`:`—`),1),X.value.error?(a(),u(`dt`,ce,` error `)):f(``,!0),X.value.error?(a(),u(`dd`,V,t(X.value.error),1)):f(``,!0)]),l(`h4`,null,t(n.$t(`plugins.routes`)),1),(a(!0),u(d,null,o(X.value.routes,e=>(a(),u(`code`,{key:e.method+e.path,class:`detail-route`},t(e.method)+` /api/plugins/`+t(X.value.name)+t(e.path),1))),128)),X.value.routes.length?f(``,!0):(a(),u(`p`,H,` — `))],64)):f(``,!0)]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-8c3d83e2`]]);export{U as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./DK3Fl9T5.js";import{n as t}from"./Cnrmlixo.js";var n=e({useAgentStateLabels:()=>i,useMonitorFormat:()=>r});function r(){return{shortId:e=>e&&e.length>8?`${e.slice(0,8)}…`:e??`-`,uptimeText:e=>{let t=Math.floor(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`},startedAtText:e=>new Date(e).toLocaleTimeString()}}function i(){let{t:e}=t();return{stateColor:{idle:`success`,busy:`processing`,stopped:`error`},stateText:{idle:e(`monitor.stateIdle`),busy:e(`monitor.stateBusy`),stopped:e(`monitor.stateStopped`)}}}export{r as n,n as r,i as t};
|
|
@@ -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"./36oeS8_R.js";import{a as o}from"./wDPc4SSR.js";import{t as s}from"./JgheoP3e.js";import{t as c}from"./Z-Z6EhXs.js";import{t as l}from"./BqYVLAcm.js";function u(){let e=n(new Map),t=n(null),r=n(null),i=n(null);function o(t){let n=e.value.get(t.jobId),r=new Map(e.value);r.set(t.jobId,{jobId:t.jobId,datasetId:t.datasetId||n?.datasetId||``,lineId:t.lineId??n?.lineId??``,status:t.status,stage:t.stage,progress:t.progress,purpose:t.purpose??n?.purpose,note:t.note,at:new Date().toISOString()}),e.value=r}function s(e){if(e.type===`aml.job`){let n=e.payload;if(!n?.jobId)return;t.value=n,o(n)}else if(e.type===`aml.dataset`){let t=e.payload;if(!t?.datasetId)return;r.value=t}else if(e.type===`aml.model`){let t=e.payload;if(!t?.modelId)return;i.value=t}}let c=0,l=null;function u(){c=Math.max(0,c-1),c===0&&l&&(l(),l=null)}function d(){c++,l||=a().subscribe(s);let e=!1;return()=>{e||(e=!0,u())}}function f(){u()}return{jobs:e,lastJob:t,lastDataset:r,lastModel:i,ensure:d,dispose:f}}var d=`__amlStream`;function f(){let e=globalThis;return e[d]||(e[d]=u()),e[d]}var p=e({useAmlJobs:()=>m});function m(){let{t:e}=i(),{shortId:a}=l(),u=f(),d=n([]);async function p(){try{let e=await c(`/jobs`);d.value=e.jobs}catch{}}let m=r(()=>d.value.map(e=>{let t=u.jobs.value.get(e.id);return t?{...e,status:t.status||e.status,stage:t.stage||e.stage,progress:t.progress??e.progress,live:!0}:e})),h=t({}),g=n(``);async function _(e){return(await c(`/jobs/${e}/logs?lines=120`)).logs}async function v(e){if(g.value=g.value===e?``:e,g.value&&!h[e]){h[e]={loading:!0,error:``,metrics:null,gates:null,logs:[]};try{let[t,n]=await Promise.all([c(`/jobs/${e}`),_(e)]);h[e]={loading:!1,error:``,metrics:t.metrics,gates:t.gates,logs:n}}catch(t){h[e]={loading:!1,error:s(t),metrics:null,gates:null,logs:[]}}}}async function y(e){let t=h[e];if(t)try{t.logs=await _(e)}catch{}}let b=n(``),x=n(``);async function S(t){if(b.value!==t){b.value=t;return}b.value=``,x.value=t;try{await c(`/jobs/${t}/cancel`,{method:`POST`,body:JSON.stringify({})}),o.success(e(`aml.k1amlx097`,{p0:a(t)})),await p()}catch(e){o.error(s(e))}finally{x.value=``}}let C=n(``),w=n(``);async function T(t){if(C.value!==t){C.value=t;return}C.value=``,w.value=t;try{await c(`/jobs/${t}/retry`,{method:`POST`,body:JSON.stringify({})}),o.success(e(`aml.k1amlx098`,{p0:a(t)})),await p()}catch(e){o.error(s(e))}finally{w.value=``}}return{jobs:d,jobRows:m,jobDetails:h,expandedJob:g,confirmCancel:b,cancelling:x,confirmRetry:C,retrying:w,loadJobs:p,toggleJob:v,refreshJobLogs:y,onCancelJob:S,onRetryJob:T}}export{p as n,f as r,m as t};
|