agentworkshop 0.7.41 → 0.7.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/B8uy9iRW.js +1 -0
  3. package/.output/public/_nuxt/BGTYYQH-.js +1 -0
  4. package/.output/public/_nuxt/BUmHEJ77.js +2 -0
  5. package/.output/public/_nuxt/BY7YrV_D.js +1 -0
  6. package/.output/public/_nuxt/Bqcgz95s.js +18 -0
  7. package/.output/public/_nuxt/C7UlqPeD.js +1 -0
  8. package/.output/public/_nuxt/CTmDn-YP.js +1 -0
  9. package/.output/public/_nuxt/Cs8pVeVG.js +1 -0
  10. package/.output/public/_nuxt/DKySmNPI.js +14 -0
  11. package/.output/public/_nuxt/Di0NY_ht.js +1 -0
  12. package/.output/public/_nuxt/Du9v6qGB.js +1 -0
  13. package/.output/public/_nuxt/{DGbd-UiG.js → EHlEMRii.js} +1 -1
  14. package/.output/public/_nuxt/Eke1fs-U.js +1 -0
  15. package/.output/public/_nuxt/{DeJykBFf.js → H0BcqZtT.js} +1 -1
  16. package/.output/public/_nuxt/{C4oW1HsE.js → HSYEkkce.js} +1 -1
  17. package/.output/public/_nuxt/{D_OTvQza.js → J9oU00D1.js} +1 -1
  18. package/.output/public/_nuxt/OmpTerminalPanel.BxR5-lvi.css +1 -0
  19. package/.output/public/_nuxt/SSyAPaHc.js +1 -0
  20. package/.output/public/_nuxt/TownView.li4EMQxK.css +1 -0
  21. package/.output/public/_nuxt/VdLk4jLE2.js +1 -0
  22. package/.output/public/_nuxt/_id_.BhsXoEuk.css +1 -0
  23. package/.output/public/_nuxt/_id_.DQyj-WKN.css +1 -0
  24. package/.output/public/_nuxt/{_wsId_.B4WiqkIS.css → _wsId_.CTx-BlfF.css} +1 -1
  25. package/.output/public/_nuxt/aShsv_rG.js +19 -0
  26. package/.output/public/_nuxt/{yF0aYMF1.js → aesgXKSr.js} +3 -3
  27. package/.output/public/_nuxt/agents.B21nUEUX.css +1 -0
  28. package/.output/public/_nuxt/aml.ekTjxFkf.css +1 -0
  29. package/.output/public/_nuxt/builds/latest.json +1 -1
  30. package/.output/public/_nuxt/builds/meta/b5506ef0-f48e-4f14-a6c0-d65e505d0b09.json +1 -0
  31. package/.output/public/_nuxt/channel-templates.DplM1pJ3.css +1 -0
  32. package/.output/public/_nuxt/daq.BdVmoIfe.css +1 -0
  33. package/.output/public/_nuxt/dcw.DCgyzpWV.css +1 -0
  34. package/.output/public/_nuxt/{default.J32SgqFY.css → default.Bh3L2HU8.css} +1 -1
  35. package/.output/public/_nuxt/lHAxdSsj.js +1 -0
  36. package/.output/public/_nuxt/pages.j9rzRocr.css +1 -0
  37. package/.output/public/_nuxt/plugins.DhiZbHU8.css +1 -0
  38. package/.output/public/_nuxt/settings.BRx9rIDg.css +1 -0
  39. package/.output/public/_nuxt/teams.BLlOPB_Z.css +1 -0
  40. package/.output/public/_nuxt/tokens.De8xzszn.css +1 -0
  41. package/.output/public/_nuxt/workshop.D1jFNkrn.css +1 -0
  42. package/.output/server/chunks/_/nitro.mjs +748 -733
  43. package/.output/server/chunks/build/{OmpTerminalPanel-Cu_s4i0A.mjs → OmpTerminalPanel-CVvxpsF7.mjs} +15 -15
  44. package/.output/server/chunks/build/{OmpTerminalPanel-Cu_s4i0A.mjs.map → OmpTerminalPanel-CVvxpsF7.mjs.map} +1 -1
  45. package/.output/server/chunks/build/{TownView--otsnr_7.mjs → TownView-CJ6IsDCc.mjs} +226 -225
  46. package/.output/server/chunks/build/{TownView--otsnr_7.mjs.map → TownView-CJ6IsDCc.mjs.map} +1 -1
  47. package/.output/server/chunks/build/{_id_-Brv-JSvr.mjs → _id_-CVD_H0ir.mjs} +143 -142
  48. package/.output/server/chunks/build/_id_-CVD_H0ir.mjs.map +1 -0
  49. package/.output/server/chunks/build/{_id_-D9pl1OZy.mjs → _id_-CtxMb3qp.mjs} +41 -41
  50. package/.output/server/chunks/build/_id_-CtxMb3qp.mjs.map +1 -0
  51. package/.output/server/chunks/build/{_wsId_-BASfDf0s.mjs → _wsId_-DpY3T-md.mjs} +514 -444
  52. package/.output/server/chunks/build/{_wsId_-BASfDf0s.mjs.map → _wsId_-DpY3T-md.mjs.map} +1 -1
  53. package/.output/server/chunks/build/{agents-CLQqJF2y.mjs → agents-DsCkuXDV.mjs} +49 -46
  54. package/.output/server/chunks/build/agents-DsCkuXDV.mjs.map +1 -0
  55. package/.output/server/chunks/build/{aml-_7FdFL2p.mjs → aml-CT0xKGKI.mjs} +122 -105
  56. package/.output/server/chunks/build/aml-CT0xKGKI.mjs.map +1 -0
  57. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs +117 -0
  58. package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs.map +1 -0
  59. package/.output/server/chunks/build/{channel-templates-p6SZNjlM.mjs → channel-templates-Dla9FbYa.mjs} +49 -37
  60. package/.output/server/chunks/build/channel-templates-Dla9FbYa.mjs.map +1 -0
  61. package/.output/server/chunks/build/{daq-DkMvD8sg.mjs → daq-DWWSKGAV.mjs} +89 -88
  62. package/.output/server/chunks/build/daq-DWWSKGAV.mjs.map +1 -0
  63. package/.output/server/chunks/build/{dcw-C1jgVJkO.mjs → dcw-CT8k17_E.mjs} +44 -43
  64. package/.output/server/chunks/build/dcw-CT8k17_E.mjs.map +1 -0
  65. package/.output/server/chunks/build/{default-BE4r0FZN.mjs → default-D3525UFX.mjs} +16 -15
  66. package/.output/server/chunks/build/{default-BE4r0FZN.mjs.map → default-D3525UFX.mjs.map} +1 -1
  67. package/.output/server/chunks/build/{monitor-C0okQaXz.mjs → monitor-Dh2Kvaq5.mjs} +2 -2
  68. package/.output/server/chunks/build/{monitor-C0okQaXz.mjs.map → monitor-Dh2Kvaq5.mjs.map} +1 -1
  69. package/.output/server/chunks/build/{pages-B0bUWnC6.mjs → pages-BHcSBM2D.mjs} +24 -18
  70. package/.output/server/chunks/build/pages-BHcSBM2D.mjs.map +1 -0
  71. package/.output/server/chunks/build/{plugins-lGlUr1lj.mjs → plugins-BNgIi61W.mjs} +23 -17
  72. package/.output/server/chunks/build/plugins-BNgIi61W.mjs.map +1 -0
  73. package/.output/server/chunks/build/{settings-Ddd1qx2Z.mjs → settings-ipYBDWdn.mjs} +45 -44
  74. package/.output/server/chunks/build/settings-ipYBDWdn.mjs.map +1 -0
  75. package/.output/server/chunks/build/{teams-MEDLZdMn.mjs → teams-5lx-CwFa.mjs} +47 -44
  76. package/.output/server/chunks/build/teams-5lx-CwFa.mjs.map +1 -0
  77. package/.output/server/chunks/build/{tokens-C7fTM5C2.mjs → tokens-q-IDT8Io.mjs} +73 -53
  78. package/.output/server/chunks/build/tokens-q-IDT8Io.mjs.map +1 -0
  79. package/.output/server/chunks/build/{town-CoQdblbZ.mjs → town-QJWB5wng.mjs} +3 -2
  80. package/.output/server/chunks/build/town-QJWB5wng.mjs.map +1 -0
  81. package/.output/server/chunks/build/{workshop-BL5bhfs0.mjs → workshop-BIlCj_ZP.mjs} +45 -45
  82. package/.output/server/chunks/build/workshop-BIlCj_ZP.mjs.map +1 -0
  83. package/.output/server/chunks/routes/renderer.mjs +1 -1
  84. package/.output/server/chunks/virtual/entry.mjs +637 -86
  85. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  86. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  87. package/.output/server/package.json +1 -1
  88. package/README-zh.md +13 -3
  89. package/README.md +13 -3
  90. package/app/components/AppHeader.vue +961 -959
  91. package/app/components/workshop/A2aRpcDebugger.vue +237 -237
  92. package/app/components/workshop/AgentInspectorDrawer.vue +424 -424
  93. package/app/components/workshop/AgentLanesView.vue +998 -998
  94. package/app/components/workshop/ArtifactCard.vue +120 -120
  95. package/app/components/workshop/AssetLibrary.vue +452 -452
  96. package/app/components/workshop/ChannelSessionList.vue +812 -804
  97. package/app/components/workshop/CommandPalette.vue +269 -269
  98. package/app/components/workshop/Composer.vue +827 -827
  99. package/app/components/workshop/DeviceTwinPanel.vue +643 -643
  100. package/app/components/workshop/EventBlock.vue +602 -602
  101. package/app/components/workshop/FileSelectorModal.vue +188 -188
  102. package/app/components/workshop/InspectorPanel.vue +301 -301
  103. package/app/components/workshop/MemoryPanel.vue +364 -364
  104. package/app/components/workshop/MultiChannelView.vue +189 -189
  105. package/app/components/workshop/TaskBoardView.vue +686 -686
  106. package/app/components/workshop/TaskInspectorDrawer.vue +390 -390
  107. package/app/components/workshop/TranscriptTimeline.vue +601 -601
  108. package/app/components/workshop/blocks/ClusterArtifact.vue +61 -61
  109. package/app/components/workshop/blocks/ClusterError.vue +85 -85
  110. package/app/components/workshop/blocks/ClusterLife.vue +87 -87
  111. package/app/components/workshop/blocks/ClusterMember.vue +95 -93
  112. package/app/components/workshop/blocks/ClusterMemory.vue +84 -84
  113. package/app/components/workshop/blocks/ClusterOther.vue +67 -67
  114. package/app/components/workshop/blocks/ClusterStatus.vue +149 -147
  115. package/app/components/workshop/blocks/ClusterTool.vue +158 -158
  116. package/app/components/workshop/terminal/OmpTerminalPanel.vue +1011 -1011
  117. package/app/components/workshop/town/TownView.vue +56 -56
  118. package/app/middleware/locale-cookie.global.ts +22 -0
  119. package/app/pages/aml/index.vue +24 -2
  120. package/app/pages/daq/[id].vue +11 -11
  121. package/app/pages/daq/index.vue +2316 -2316
  122. package/app/pages/dcw/[id].vue +18 -19
  123. package/app/pages/dcw/index.vue +3 -3
  124. package/app/pages/index.vue +987 -981
  125. package/app/pages/plugins/index.vue +317 -311
  126. package/app/pages/settings.vue +1564 -1562
  127. package/app/pages/tokens.vue +15 -15
  128. package/app/pages/workshop/agents.vue +612 -609
  129. package/app/pages/workshop/channel-templates.vue +18 -11
  130. package/app/pages/workshop/index.vue +668 -668
  131. package/app/pages/workshop/teams.vue +743 -740
  132. package/app/pages/workshop/w/[wsId].vue +704 -704
  133. package/app/plugins/locale-restore.client.ts +16 -1
  134. package/app/utils/builtin-catalog.ts +104 -0
  135. package/config.yml +170 -170
  136. package/docs/full-test-plan.md +2 -3
  137. package/i18n/locales/en.ts +293 -35
  138. package/i18n/locales/zh-CN.ts +265 -7
  139. package/package.json +2 -2
  140. package/scripts/_dbg-perms-e2e.mjs +132 -109
  141. package/scripts/_demo-agentteam-capture.mjs +278 -0
  142. package/scripts/_e2e-ui-functional.mjs +371 -0
  143. package/scripts/_i18n-en-cjk-scan.mjs +28 -0
  144. package/scripts/_i18n-en-verify.mjs +107 -0
  145. package/scripts/_i18n-extra-checks.mjs +53 -0
  146. package/scripts/_i18n-scan-hardcoded.mjs +180 -0
  147. package/scripts/_i18n-verify-keys.mjs +50 -0
  148. package/scripts/_loop-biax-campaign.mjs +15 -9
  149. package/scripts/_sweep-button-contrast.mjs +87 -0
  150. package/scripts/ui/record-demo.mjs +557 -0
  151. package/server/plugins-builtin/diag-bridge/index.mjs +608 -661
  152. package/server/plugins-builtin/rag-bridge/index.mjs +57 -133
  153. package/server/services/workshop/daq/drivers.ts +11 -0
  154. package/.output/public/_nuxt/88GOowgO2.js +0 -1
  155. package/.output/public/_nuxt/BN16aRdQ.js +0 -1
  156. package/.output/public/_nuxt/BWVhZntO.js +0 -1
  157. package/.output/public/_nuxt/BXxH0UQE.js +0 -1
  158. package/.output/public/_nuxt/BsROmY89.js +0 -1
  159. package/.output/public/_nuxt/C0ZrS1KL.js +0 -19
  160. package/.output/public/_nuxt/C4s_niy-.js +0 -14
  161. package/.output/public/_nuxt/D6mbFA-a.js +0 -1
  162. package/.output/public/_nuxt/DS8qj8EL.js +0 -1
  163. package/.output/public/_nuxt/DUjW5Yq5.js +0 -1
  164. package/.output/public/_nuxt/Dap5PmTL.js +0 -2
  165. package/.output/public/_nuxt/Dqw1lpr-.js +0 -1
  166. package/.output/public/_nuxt/DvLxILQP.js +0 -1
  167. package/.output/public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css +0 -1
  168. package/.output/public/_nuxt/TownView.f-YOdXRs.css +0 -1
  169. package/.output/public/_nuxt/_id_.D9ymtHB5.css +0 -1
  170. package/.output/public/_nuxt/_id_.jf-_8E_c.css +0 -1
  171. package/.output/public/_nuxt/agents.ZD0rVdHE.css +0 -1
  172. package/.output/public/_nuxt/aml.BN8ZEW4h.css +0 -1
  173. package/.output/public/_nuxt/builds/meta/78a295bb-2072-48a4-8b46-6d545fdae743.json +0 -1
  174. package/.output/public/_nuxt/channel-templates.BOtahzPi.css +0 -1
  175. package/.output/public/_nuxt/daq.DjSgY94l.css +0 -1
  176. package/.output/public/_nuxt/dcw.8Y7FqCVN.css +0 -1
  177. package/.output/public/_nuxt/eqq3wWQF.js +0 -18
  178. package/.output/public/_nuxt/pages.D7aSDlUI.css +0 -1
  179. package/.output/public/_nuxt/plugins.sb4nDGqr.css +0 -1
  180. package/.output/public/_nuxt/qr6R6Ha1.js +0 -1
  181. package/.output/public/_nuxt/settings.BTgR-NiE.css +0 -1
  182. package/.output/public/_nuxt/teams.CxnxKVVs.css +0 -1
  183. package/.output/public/_nuxt/tokens.BFY7qv4f.css +0 -1
  184. package/.output/public/_nuxt/workshop.CR_QzeAN.css +0 -1
  185. package/.output/server/chunks/build/_id_-Brv-JSvr.mjs.map +0 -1
  186. package/.output/server/chunks/build/_id_-D9pl1OZy.mjs.map +0 -1
  187. package/.output/server/chunks/build/agents-CLQqJF2y.mjs.map +0 -1
  188. package/.output/server/chunks/build/aml-_7FdFL2p.mjs.map +0 -1
  189. package/.output/server/chunks/build/channel-templates-p6SZNjlM.mjs.map +0 -1
  190. package/.output/server/chunks/build/daq-DkMvD8sg.mjs.map +0 -1
  191. package/.output/server/chunks/build/dcw-C1jgVJkO.mjs.map +0 -1
  192. package/.output/server/chunks/build/pages-B0bUWnC6.mjs.map +0 -1
  193. package/.output/server/chunks/build/plugins-lGlUr1lj.mjs.map +0 -1
  194. package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs.map +0 -1
  195. package/.output/server/chunks/build/teams-MEDLZdMn.mjs.map +0 -1
  196. package/.output/server/chunks/build/tokens-C7fTM5C2.mjs.map +0 -1
  197. package/.output/server/chunks/build/town-CoQdblbZ.mjs.map +0 -1
  198. package/.output/server/chunks/build/workshop-BL5bhfs0.mjs.map +0 -1
  199. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.continue.json +0 -1
  200. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.json +0 -1
  201. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/054bb4bc4e4217a2ab0b0c6b663747214a9af464f5568ea60e784704e340bb0f.source +0 -153
  202. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/0554197c3d2bac203a1f5c48a5d52495d1336db1bd7aa4f4c19875810363e684.source +0 -153
  203. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/05c203d12a954fffba942e1d626e3f5fec05b18a5aef2bac003b7884a4b77406.source +0 -431
  204. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/145a6e6ba811af35aed31e0cc3211f53706a14980fa069ee9e3c1591139f96f0.source +0 -180
  205. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/1ae0fb281f97899c025e368ca73f41349b01fb5f85b19e08d7ebccff49095ed5.source +0 -112
  206. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/20ee9967aa0541c516db7575bdd4a1a745939bc7016bd10d7635903113edb8ec.source +0 -227
  207. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/233751843aeba9d4c5263f275b8102de00443c06f286918cbd23e0b6729e01aa.source +0 -131
  208. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/263c2e05b425e5c322e60c6475279f963bab3a873eb521b21df7fec935a46597.source +0 -160
  209. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/2ac5eaac28eaaee2178c4b32014df8e732f9dd432a285a872f5b7f31c1395fa4.source +0 -157
  210. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/33a0db0d2d95d2c11d0720090458e5fba1425376f5ceb5b422d1d3471be3226b.source +0 -348
  211. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/359e474ae83db35e4615d3728de6bf694b64d4dce9b536730a3b6518f9c0494a.source +0 -296
  212. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/37a4c3c31c4b70f6b719c53d1e9c4fcba603f31adfdd11bb6ef9f0d094923c56.source +0 -285
  213. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/461feca1c14a695eb8b0f17a6f95fe97eeceabc0510faaea4ba6d25bde147d8d.source +0 -217
  214. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/4cfadbda8591f29d5e1e230dc000e701b756e850441b3900fb596a4d2f6e98c2.source +0 -301
  215. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/50ca2810cf0b248c96948994c0c404531bbad6e553166b6816b3b03bfa0f75d2.source +0 -151
  216. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/52d9e8cb591a9ae86e238c3620a610cd386717bee222c0f37b25b2ac7e523dc4.source +0 -135
  217. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/6c87daafa4c006560a954636a97333f6123153c9d34d96203f7ee3a14e556357.source +0 -156
  218. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/77bc47854b577900621cacf1697f81fa2bc005af129d37614a97a3441c08f99f.source +0 -72
  219. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/7bbb789d3a527817118cf8399ed1861d6a962ade10878fd07223435d333a7089.source +0 -469
  220. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/86b7c1daafc8b60ba9982dde5bf1bcc74265709483c176e71f23ec6fc267451f.source +0 -259
  221. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/8df66d62bd41984d0970e8236882080c5085ac937d07a29779463d6a03b37c76.source +0 -97
  222. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/9962f2d1b3a85137bd40cc835725600b39f89ee02a27c06b2e0402e1eafde115.source +0 -277
  223. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a1090ea066b792cb201739f4994e37bf7c12f52e805239a1eab87f18a537f266.source +0 -171
  224. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a5241091650134d0919897e086a606a3846c8b2b54f8b4c84a8696c145ac3e9e.source +0 -425
  225. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/af19fa4c6e34d5540028be4b17600161283af3a2a2dfc61a3fdc0834436a0c14.source +0 -99
  226. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3713d78e2b2f93905ff6be8d58a8d0a2f42dea322eb67c987fda22ff6a084d5.source +0 -325
  227. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3849943c3aff102d1af815631fc843a2a52c17646a4b04696ece323e483bbec.source +0 -332
  228. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/bac735a3803a6650b7f1eb8f587e6dc5c68ea055000c3c99a11789438b78e837.source +0 -43
  229. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d32c24d61eb8b33c73e5a8fc7e4dc7ef437aed238ee4371c2b00617e6104090a.source +0 -154
  230. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d5170dc9a9879fda04fdf91d8a110d4efb6787ee38dda596d4da899883d36a72.source +0 -531
  231. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/dc59bcd7bb397be63ba2f2c3fec23f3782dcb17d2d75a9981eeced761f33eb32.source +0 -439
  232. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/eb5ff8cf66b92aec7bf6726781d8df74faa2b030c3aaac17d6b00c1fc04c9b32.source +0 -323
  233. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f10615a6fae18436e70d1201b2d44fdae3174a3aa7bb4db97dea1b3ed291d721.source +0 -433
  234. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f36d3e271668bc1260c2823542d22dbf1d0f7041ff16b1ac175bce2256e582ca.source +0 -280
  235. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f94449380af09f31ac352152007146a75cc80bae8d6411ffe57b2c56f933b0ff.source +0 -117
  236. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/fe4dfd81178fd6b648335f6405d9ede71319aebde796008e50db21f8adf44c99.source +0 -160
  237. package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/ffb4e3aa548cfdadabaa44ab599f9b6a3ca6288176a2cc7a4b2fc2a12b5fb848.source +0 -101
  238. package/scripts/.mimosa/hook-status/sess_aeaecb58-8833-4b83-b93c-050467d21e03-d944d71bb3.json +0 -14
  239. package/scripts/_dbg-audit-all-pages.mjs +0 -43
  240. package/scripts/_dbg-daq-frames-e2e.mjs +0 -118
  241. package/scripts/_dbg-daq-rowstyle-verify.mjs +0 -112
  242. package/scripts/_dbg-hitl-timeout-e2e.mjs +0 -93
  243. package/scripts/_dbg-live-line-e2e.mjs +0 -279
  244. package/scripts/_dbg-minimal-omp.mjs +0 -77
  245. package/scripts/_dbg-mode-nav.mjs +0 -173
  246. package/scripts/_dbg-real-scenario-timeline.log +0 -55
  247. package/scripts/_dbg-team-repro.mjs +0 -76
  248. package/scripts/_dbg-town-agents-probe.mjs +0 -60
  249. package/scripts/_dbg-visual-acceptance.mjs +0 -63
  250. package/scripts/_townview_style.css +0 -1185
  251. package/scripts/_townview_template.html +0 -1215
  252. package/server/data/agent-node-bindings.json +0 -554
  253. package/server/data/daq-templates.json +0 -16
  254. package/server/data/daqs.json +0 -7464
  255. package/server/data/dcw-lines.json +0 -1787
  256. package/server/data/dcw-products.json +0 -1626
  257. package/server/data/dcw-recipes.json +0 -4672
  258. package/server/data/dcw-rollback.json +0 -20754
  259. package/server/data/dcw-runs.json +0 -6354
  260. package/server/data/dcw-templates.json +0 -146
  261. package/server/data/dcw-writes.json +0 -15650
  262. package/server/data/dcws.json +0 -9033
  263. package/server/data/device-twins.json +0 -133
  264. package/server/data/line-runs.json +0 -322
  265. package/server/data/scene-layouts.json +0 -277
@@ -209,6 +209,23 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
209
209
  return rt.python.ok ? rt.python.version ?? tt("aml.k1amlx004") : tt("aml.k1amlx005");
210
210
  });
211
211
  const venvText = computed(() => overview.value ? overview.value.runtime.venvReady ? tt("aml.k1amlx007") : tt("aml.k1amlx008") : "--");
212
+ /** 服务端 blocker 是中文数据:已知固定文案映射 i18n,未知(动态 reason)原样透传 */
213
+ const AML_BLOCKER_KEYS = {
214
+ "训练环境(./aml/.venv)尚未创建:请在「运行环境」面板点击「创建训练环境」": "aml.blockerVenv",
215
+ "Python 解释器不可用": "aml.blockerPython"
216
+ };
217
+ const blockerText = computed(() => (env.value?.preflight?.blockers ?? []).map((b) => AML_BLOCKER_KEYS[b] ? tt(AML_BLOCKER_KEYS[b]) : b).join(" / "));
218
+ /** 数据根来源按 amlRootMode 翻译(amlRootSource 是服务端中文标签) */
219
+ const AML_ROOT_SOURCE_KEYS = {
220
+ env: "aml.rootSourceEnv",
221
+ repo: "aml.rootSourceRepo",
222
+ home: "aml.rootSourceHome"
223
+ };
224
+ const rootSourceLabel = computed(() => {
225
+ const mode = env.value?.amlRootMode ?? "";
226
+ const key = AML_ROOT_SOURCE_KEYS[mode];
227
+ return key ? tt(key) : env.value?.amlRootSource ?? "";
228
+ });
212
229
  /** 完整环境状态(GET /env);比 overview.env 多出任务日志与目录明细 */
213
230
  const env = ref(null);
214
231
  const envOpen = ref(false);
@@ -346,187 +363,187 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
346
363
  const predError = ref("");
347
364
  const predResult = ref(null);
348
365
  return (_ctx, _push, _parent, _attrs) => {
349
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-1b416c3a><div class="aw-page-head" data-v-1b416c3a><div data-v-1b416c3a><p class="aw-kicker" data-v-1b416c3a> AGENTWORKSHOP / AML STUDIO </p><h1 data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx001"))}</h1><p class="sub" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx002"))}</p></div><div class="badges mono" data-v-1b416c3a><span class="${ssrRenderClass([{ bad: overview.value != null && !overview.value.runtime.python.ok }, "badge"])}"${ssrRenderAttr("title", overview.value?.runtime.python.reason ?? "")} data-v-1b416c3a>PYTHON · ${ssrInterpolate(pythonText.value)}</span><span class="${ssrRenderClass([{ bad: overview.value != null && !overview.value.runtime.venvReady }, "badge"])}" data-v-1b416c3a>VENV · ${ssrInterpolate(venvText.value)}</span><span class="${ssrRenderClass([{ bad: env.value != null && !env.value.uv.ok }, "badge"])}"${ssrRenderAttr("title", env.value?.uv.reason ?? env.value?.uv.path ?? "")} data-v-1b416c3a>UV · ${ssrInterpolate(uvText.value)}</span></div></div>`);
350
- if (overview.value != null && !overview.value.runtime.python.ok) _push(`<div class="infra-banner" data-v-1b416c3a><span class="i-tabler-alert-triangle" data-v-1b416c3a></span><span class="txt" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx014"))}<b class="mono" data-v-1b416c3a>${ssrInterpolate(overview.value.runtime.python.reason ?? "")}</b></span></div>`);
366
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-3e891789><div class="aw-page-head" data-v-3e891789><div data-v-3e891789><p class="aw-kicker" data-v-3e891789> AGENTWORKSHOP / AML STUDIO </p><h1 data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx001"))}</h1><p class="sub" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx002"))}</p></div><div class="badges mono" data-v-3e891789><span class="${ssrRenderClass([{ bad: overview.value != null && !overview.value.runtime.python.ok }, "badge"])}"${ssrRenderAttr("title", overview.value?.runtime.python.reason ?? "")} data-v-3e891789>PYTHON · ${ssrInterpolate(pythonText.value)}</span><span class="${ssrRenderClass([{ bad: overview.value != null && !overview.value.runtime.venvReady }, "badge"])}" data-v-3e891789>VENV · ${ssrInterpolate(venvText.value)}</span><span class="${ssrRenderClass([{ bad: env.value != null && !env.value.uv.ok }, "badge"])}"${ssrRenderAttr("title", env.value?.uv.reason ?? env.value?.uv.path ?? "")} data-v-3e891789>UV · ${ssrInterpolate(uvText.value)}</span></div></div>`);
367
+ if (overview.value != null && !overview.value.runtime.python.ok) _push(`<div class="infra-banner" data-v-3e891789><span class="i-tabler-alert-triangle" data-v-3e891789></span><span class="txt" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx014"))}<b class="mono" data-v-3e891789>${ssrInterpolate(overview.value.runtime.python.reason ?? "")}</b></span></div>`);
351
368
  else _push(`<!---->`);
352
- if (overview.value) _push(`<section class="aw-tile ov-card" data-v-1b416c3a><div class="ov-row mono" data-v-1b416c3a><span class="${ssrRenderClass([overview.value.runtime.python.ok ? "ok" : "bad", "ov-item"])}" data-v-1b416c3a><span class="${ssrRenderClass(overview.value.runtime.python.ok ? "i-tabler-circle-check" : "i-tabler-alert-triangle")}" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx003"))} · ${ssrInterpolate(pythonText.value)}</span><span class="${ssrRenderClass([{ ok: overview.value.runtime.venvReady }, "ov-item"])}" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx006"))} · ${ssrInterpolate(venvText.value)}</span><span class="ov-item" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx009"))} <b data-v-1b416c3a>${ssrInterpolate(overview.value.runtime.queued)}</b></span><span class="ov-item" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx010"))} <b data-v-1b416c3a>${ssrInterpolate(overview.value.runtime.running)}</b></span><span class="sep" data-v-1b416c3a>·</span><span class="ov-item" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx011"))} <b data-v-1b416c3a>${ssrInterpolate(overview.value.counts.datasets)}</b></span><span class="ov-item" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx012"))} <b data-v-1b416c3a>${ssrInterpolate(overview.value.counts.models)}</b></span><span class="ov-item accent"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx013"))} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx013"))} <b data-v-1b416c3a>${ssrInterpolate(overview.value.counts.productions)}</b></span><button class="mini-btn reload" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button></div></section>`);
353
- else if (overviewError.value) _push(`<p class="err" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx015"))}:${ssrInterpolate(overviewError.value)}</p>`);
369
+ if (overview.value) _push(`<section class="aw-tile ov-card" data-v-3e891789><div class="ov-row mono" data-v-3e891789><span class="${ssrRenderClass([overview.value.runtime.python.ok ? "ok" : "bad", "ov-item"])}" data-v-3e891789><span class="${ssrRenderClass(overview.value.runtime.python.ok ? "i-tabler-circle-check" : "i-tabler-alert-triangle")}" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx003"))} · ${ssrInterpolate(pythonText.value)}</span><span class="${ssrRenderClass([{ ok: overview.value.runtime.venvReady }, "ov-item"])}" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx006"))} · ${ssrInterpolate(venvText.value)}</span><span class="ov-item" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx009"))} <b data-v-3e891789>${ssrInterpolate(overview.value.runtime.queued)}</b></span><span class="ov-item" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx010"))} <b data-v-3e891789>${ssrInterpolate(overview.value.runtime.running)}</b></span><span class="sep" data-v-3e891789>·</span><span class="ov-item" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx011"))} <b data-v-3e891789>${ssrInterpolate(overview.value.counts.datasets)}</b></span><span class="ov-item" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx012"))} <b data-v-3e891789>${ssrInterpolate(overview.value.counts.models)}</b></span><span class="ov-item accent"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx013"))} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx013"))} <b data-v-3e891789>${ssrInterpolate(overview.value.counts.productions)}</b></span><button class="mini-btn reload" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button></div></section>`);
370
+ else if (overviewError.value) _push(`<p class="err" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx015"))}:${ssrInterpolate(overviewError.value)}</p>`);
354
371
  else _push(`<!---->`);
355
372
  if (env.value) {
356
- _push(`<section class="aw-tile zone env-zone" data-v-1b416c3a><div class="zone-head" data-v-1b416c3a><h2 data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx162"))}</h2><div class="zone-actions" data-v-1b416c3a><button class="mini-btn"${ssrIncludeBooleanAttr(envBusy.value) ? " disabled" : ""} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx175"))}</button><button class="mini-btn" data-v-1b416c3a>${ssrInterpolate(envOpen.value ? _ctx.$t("aml.k1amlx181") : _ctx.$t("aml.k1amlx180"))}</button></div></div>`);
357
- if (!env.value.preflight.canRunJobs) _push(`<div class="infra-banner" data-v-1b416c3a><span class="i-tabler-alert-triangle" data-v-1b416c3a></span><span class="txt" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx178"))}:<b class="mono" data-v-1b416c3a>${ssrInterpolate(env.value.preflight.blockers.join(" / "))}</b></span></div>`);
373
+ _push(`<section class="aw-tile zone env-zone" data-v-3e891789><div class="zone-head" data-v-3e891789><h2 data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx162"))}</h2><div class="zone-actions" data-v-3e891789><button class="mini-btn"${ssrIncludeBooleanAttr(envBusy.value) ? " disabled" : ""} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx175"))}</button><button class="mini-btn" data-v-3e891789>${ssrInterpolate(envOpen.value ? _ctx.$t("aml.k1amlx181") : _ctx.$t("aml.k1amlx180"))}</button></div></div>`);
374
+ if (!env.value.preflight.canRunJobs) _push(`<div class="infra-banner" data-v-3e891789><span class="i-tabler-alert-triangle" data-v-3e891789></span><span class="txt" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx178"))}:<b class="mono" data-v-3e891789>${ssrInterpolate(blockerText.value)}</b></span></div>`);
358
375
  else _push(`<!---->`);
359
- _push(`<div class="env-grid" data-v-1b416c3a><div class="${ssrRenderClass([env.value.uv.ok ? "ok" : "bad", "env-card"])}" data-v-1b416c3a><div class="ec-head" data-v-1b416c3a><span class="${ssrRenderClass(env.value.uv.ok ? "i-tabler-circle-check" : "i-tabler-alert-triangle")}" data-v-1b416c3a></span><b data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx163"))}</b><span class="ec-state" data-v-1b416c3a>${ssrInterpolate(uvText.value)}</span></div>`);
376
+ _push(`<div class="env-grid" data-v-3e891789><div class="${ssrRenderClass([env.value.uv.ok ? "ok" : "bad", "env-card"])}" data-v-3e891789><div class="ec-head" data-v-3e891789><span class="${ssrRenderClass(env.value.uv.ok ? "i-tabler-circle-check" : "i-tabler-alert-triangle")}" data-v-3e891789></span><b data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx163"))}</b><span class="ec-state" data-v-3e891789>${ssrInterpolate(uvText.value)}</span></div>`);
360
377
  if (env.value.uv.ok) {
361
- _push(`<p class="ec-detail mono" data-v-1b416c3a>${ssrInterpolate(env.value.uv.path)}`);
378
+ _push(`<p class="ec-detail mono" data-v-3e891789>${ssrInterpolate(env.value.uv.path)}`);
362
379
  if (uvSourceText.value) _push(`<!--[--> · ${ssrInterpolate(uvSourceText.value)}<!--]-->`);
363
380
  else _push(`<!---->`);
364
381
  _push(`</p>`);
365
- } else _push(`<p class="ec-detail" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx177"))}</p>`);
366
- _push(`<div class="ec-actions" data-v-1b416c3a>`);
367
- if (!env.value.uv.ok) _push(`<button class="mini-btn primary"${ssrIncludeBooleanAttr(envBusy.value) ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("aml.k1amlx176"))} data-v-1b416c3a><span class="i-tabler-download" data-v-1b416c3a></span> ${ssrInterpolate(env.value.task?.kind === "install-uv" && env.value.task.status === "running" ? _ctx.$t("aml.k1amlx167") : _ctx.$t("aml.k1amlx166"))}</button>`);
382
+ } else _push(`<p class="ec-detail" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx177"))}</p>`);
383
+ _push(`<div class="ec-actions" data-v-3e891789>`);
384
+ if (!env.value.uv.ok) _push(`<button class="mini-btn primary"${ssrIncludeBooleanAttr(envBusy.value) ? " disabled" : ""}${ssrRenderAttr("title", _ctx.$t("aml.k1amlx176"))} data-v-3e891789><span class="i-tabler-download" data-v-3e891789></span> ${ssrInterpolate(env.value.task?.kind === "install-uv" && env.value.task.status === "running" ? _ctx.$t("aml.k1amlx167") : _ctx.$t("aml.k1amlx166"))}</button>`);
368
385
  else _push(`<!---->`);
369
- _push(`</div></div><div class="${ssrRenderClass([env.value.venv.ready ? "ok" : "bad", "env-card"])}" data-v-1b416c3a><div class="ec-head" data-v-1b416c3a><span class="${ssrRenderClass(env.value.venv.ready ? "i-tabler-circle-check" : "i-tabler-alert-triangle")}" data-v-1b416c3a></span><b data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx168"))}</b><span class="ec-state" data-v-1b416c3a>${ssrInterpolate(env.value.venv.ready ? _ctx.$t("aml.k1amlx007") : _ctx.$t("aml.k1amlx008"))}</span></div><p class="ec-detail mono" data-v-1b416c3a>${ssrInterpolate(env.value.venv.dir)} `);
386
+ _push(`</div></div><div class="${ssrRenderClass([env.value.venv.ready ? "ok" : "bad", "env-card"])}" data-v-3e891789><div class="ec-head" data-v-3e891789><span class="${ssrRenderClass(env.value.venv.ready ? "i-tabler-circle-check" : "i-tabler-alert-triangle")}" data-v-3e891789></span><b data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx168"))}</b><span class="ec-state" data-v-3e891789>${ssrInterpolate(env.value.venv.ready ? _ctx.$t("aml.k1amlx007") : _ctx.$t("aml.k1amlx008"))}</span></div><p class="ec-detail mono" data-v-3e891789>${ssrInterpolate(env.value.venv.dir)} `);
370
387
  if (env.value.venv.ready) _push(`<!--[--> · ${ssrInterpolate(env.value.venv.sizeMb)} MB <!--]-->`);
371
388
  else _push(`<!---->`);
372
- _push(`</p><div class="ec-actions" data-v-1b416c3a><button class="mini-btn primary"${ssrIncludeBooleanAttr(envBusy.value || !env.value.python.ok) ? " disabled" : ""}${ssrRenderAttr("title", env.value.python.ok ? "" : env.value.python.reason ?? "")} data-v-1b416c3a><span class="i-tabler-plus" data-v-1b416c3a></span> ${ssrInterpolate(env.value.task?.kind === "create-venv" && env.value.task.status === "running" ? _ctx.$t("aml.k1amlx170") : _ctx.$t("aml.k1amlx168"))}</button>`);
373
- if (env.value.venv.ready) _push(`<button class="mini-btn"${ssrIncludeBooleanAttr(envBusy.value) ? " disabled" : ""} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx169"))}</button>`);
389
+ _push(`</p><div class="ec-actions" data-v-3e891789><button class="mini-btn primary"${ssrIncludeBooleanAttr(envBusy.value || !env.value.python.ok) ? " disabled" : ""}${ssrRenderAttr("title", env.value.python.ok ? "" : env.value.python.reason ?? "")} data-v-3e891789><span class="i-tabler-plus" data-v-3e891789></span> ${ssrInterpolate(env.value.task?.kind === "create-venv" && env.value.task.status === "running" ? _ctx.$t("aml.k1amlx170") : _ctx.$t("aml.k1amlx168"))}</button>`);
390
+ if (env.value.venv.ready) _push(`<button class="mini-btn"${ssrIncludeBooleanAttr(envBusy.value) ? " disabled" : ""} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx169"))}</button>`);
374
391
  else _push(`<!---->`);
375
- _push(`</div></div><div class="env-card" data-v-1b416c3a><div class="ec-head" data-v-1b416c3a><span class="i-tabler-folder" data-v-1b416c3a></span><b data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx171"))}</b></div><p class="ec-detail mono" data-v-1b416c3a>${ssrInterpolate(env.value.amlRoot)}</p><p class="ec-detail dim" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx201"))}</p><p class="ec-detail" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx174"))}: <b class="mono" data-v-1b416c3a>${ssrInterpolate(env.value.disk.usedMb)} / ${ssrInterpolate(env.value.disk.quotaMb)} MB</b><span class="dim" data-v-1b416c3a> · ${ssrInterpolate(env.value.amlRootSource)}</span></p></div><div class="${ssrRenderClass([inventory.value == null ? "" : inventory.value.ok ? "ok" : "bad", "env-card"])}" data-v-1b416c3a><div class="ec-head" data-v-1b416c3a><span class="${ssrRenderClass(inventory.value?.ok === false ? "i-tabler-alert-triangle" : "i-tabler-database")}" data-v-1b416c3a></span><b data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx182"))}</b>`);
376
- if (inventory.value) _push(`<span class="ec-state" data-v-1b416c3a>${ssrInterpolate(inventory.value.ok ? _ctx.$t("aml.k1amlx183") : _ctx.$t("aml.k1amlx184"))}</span>`);
392
+ _push(`</div></div><div class="env-card" data-v-3e891789><div class="ec-head" data-v-3e891789><span class="i-tabler-folder" data-v-3e891789></span><b data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx171"))}</b></div><p class="ec-detail mono" data-v-3e891789>${ssrInterpolate(env.value.amlRoot)}</p><p class="ec-detail dim" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx201"))}</p><p class="ec-detail" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx174"))}: <b class="mono" data-v-3e891789>${ssrInterpolate(env.value.disk.usedMb)} / ${ssrInterpolate(env.value.disk.quotaMb)} MB</b><span class="dim" data-v-3e891789> · ${ssrInterpolate(rootSourceLabel.value)}</span></p></div><div class="${ssrRenderClass([inventory.value == null ? "" : inventory.value.ok ? "ok" : "bad", "env-card"])}" data-v-3e891789><div class="ec-head" data-v-3e891789><span class="${ssrRenderClass(inventory.value?.ok === false ? "i-tabler-alert-triangle" : "i-tabler-database")}" data-v-3e891789></span><b data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx182"))}</b>`);
393
+ if (inventory.value) _push(`<span class="ec-state" data-v-3e891789>${ssrInterpolate(inventory.value.ok ? _ctx.$t("aml.k1amlx183") : _ctx.$t("aml.k1amlx184"))}</span>`);
377
394
  else _push(`<!---->`);
378
395
  _push(`</div>`);
379
- if (inventory.value) _push(`<p class="ec-detail mono" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx011"))} ${ssrInterpolate(inventory.value.counts.datasets)}/${ssrInterpolate(inventory.value.entities.datasets)} · ${ssrInterpolate(_ctx.$t("aml.k1amlx010"))} ${ssrInterpolate(inventory.value.counts.jobs)}/${ssrInterpolate(inventory.value.entities.jobs)} · ${ssrInterpolate(_ctx.$t("aml.k1amlx012"))} ${ssrInterpolate(inventory.value.counts.models)}/${ssrInterpolate(inventory.value.entities.models)}</p>`);
396
+ if (inventory.value) _push(`<p class="ec-detail mono" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx011"))} ${ssrInterpolate(inventory.value.counts.datasets)}/${ssrInterpolate(inventory.value.entities.datasets)} · ${ssrInterpolate(_ctx.$t("aml.k1amlx010"))} ${ssrInterpolate(inventory.value.counts.jobs)}/${ssrInterpolate(inventory.value.entities.jobs)} · ${ssrInterpolate(_ctx.$t("aml.k1amlx012"))} ${ssrInterpolate(inventory.value.counts.models)}/${ssrInterpolate(inventory.value.entities.models)}</p>`);
380
397
  else _push(`<!---->`);
381
398
  if (inventory.value && inventory.value.issues.length > 0) {
382
- _push(`<ul class="ec-issues mono" data-v-1b416c3a><!--[-->`);
399
+ _push(`<ul class="ec-issues mono" data-v-3e891789><!--[-->`);
383
400
  ssrRenderList(inventory.value.issues.slice(0, 5), (is) => {
384
- _push(`<li${ssrRenderAttr("title", is.detail)} data-v-1b416c3a><span class="tag" data-v-1b416c3a>${ssrInterpolate(is.problem === "entity_missing" ? _ctx.$t("aml.k1amlx185") : is.problem === "orphan_dir" ? _ctx.$t("aml.k1amlx186") : _ctx.$t("aml.k1amlx187"))}</span> ${ssrInterpolate(is.kind)} ${ssrInterpolate(shortId(is.id))}</li>`);
401
+ _push(`<li${ssrRenderAttr("title", is.detail)} data-v-3e891789><span class="tag" data-v-3e891789>${ssrInterpolate(is.problem === "entity_missing" ? _ctx.$t("aml.k1amlx185") : is.problem === "orphan_dir" ? _ctx.$t("aml.k1amlx186") : _ctx.$t("aml.k1amlx187"))}</span> ${ssrInterpolate(is.kind)} ${ssrInterpolate(shortId(is.id))}</li>`);
385
402
  });
386
403
  _push(`<!--]--></ul>`);
387
404
  } else _push(`<!---->`);
388
- _push(`<div class="ec-actions" data-v-1b416c3a>`);
389
- if (inventory.value && inventory.value.issues.some((i) => i.problem === "orphan_dir")) _push(`<button class="mini-btn" data-v-1b416c3a><span class="i-tabler-trash" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx188"))}</button>`);
405
+ _push(`<div class="ec-actions" data-v-3e891789>`);
406
+ if (inventory.value && inventory.value.issues.some((i) => i.problem === "orphan_dir")) _push(`<button class="mini-btn" data-v-3e891789><span class="i-tabler-trash" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx188"))}</button>`);
390
407
  else _push(`<!---->`);
391
408
  _push(`</div></div></div>`);
392
409
  if (env.value.task && envOpen.value) {
393
- _push(`<div class="env-task" data-v-1b416c3a><div class="et-head mono" data-v-1b416c3a><span class="${ssrRenderClass(env.value.task.status === "running" ? "i-tabler-loader-2 spin" : env.value.task.status === "done" ? "i-tabler-circle-check" : "i-tabler-alert-triangle")}" data-v-1b416c3a></span><b data-v-1b416c3a>${ssrInterpolate(env.value.task.kind)}</b><span class="dim" data-v-1b416c3a>${ssrInterpolate(env.value.task.status)}</span>`);
394
- if (env.value.task.status === "running") _push(`<span class="dim" data-v-1b416c3a>· ${ssrInterpolate(_ctx.$t("aml.k1amlx179"))}</span>`);
410
+ _push(`<div class="env-task" data-v-3e891789><div class="et-head mono" data-v-3e891789><span class="${ssrRenderClass(env.value.task.status === "running" ? "i-tabler-loader-2 spin" : env.value.task.status === "done" ? "i-tabler-circle-check" : "i-tabler-alert-triangle")}" data-v-3e891789></span><b data-v-3e891789>${ssrInterpolate(env.value.task.kind)}</b><span class="dim" data-v-3e891789>${ssrInterpolate(env.value.task.status)}</span>`);
411
+ if (env.value.task.status === "running") _push(`<span class="dim" data-v-3e891789>· ${ssrInterpolate(_ctx.$t("aml.k1amlx179"))}</span>`);
395
412
  else _push(`<!---->`);
396
- _push(`</div><pre class="et-log mono" data-v-1b416c3a>${ssrInterpolate(env.value.task.log.slice(-40).join("\n"))}</pre>`);
397
- if (env.value.task.error) _push(`<p class="err" data-v-1b416c3a>${ssrInterpolate(env.value.task.error)}</p>`);
413
+ _push(`</div><pre class="et-log mono" data-v-3e891789>${ssrInterpolate(env.value.task.log.slice(-40).join("\n"))}</pre>`);
414
+ if (env.value.task.error) _push(`<p class="err" data-v-3e891789>${ssrInterpolate(env.value.task.error)}</p>`);
398
415
  else _push(`<!---->`);
399
416
  _push(`</div>`);
400
417
  } else _push(`<!---->`);
401
418
  _push(`</section>`);
402
419
  } else _push(`<!---->`);
403
- _push(`<section class="aw-tile zone" data-v-1b416c3a><div class="zone-head" data-v-1b416c3a><h2 data-v-1b416c3a><span class="i-tabler-database" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx016"))} <b class="mono cnt" data-v-1b416c3a>${ssrInterpolate(datasets.value.length)}</b></h2><div class="zone-actions" data-v-1b416c3a><button class="mini-btn" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button><button class="pill-btn" data-v-1b416c3a><span class="i-tabler-plus" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx018"))}</button></div></div>`);
420
+ _push(`<section class="aw-tile zone" data-v-3e891789><div class="zone-head" data-v-3e891789><h2 data-v-3e891789><span class="i-tabler-database" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx016"))} <b class="mono cnt" data-v-3e891789>${ssrInterpolate(datasets.value.length)}</b></h2><div class="zone-actions" data-v-3e891789><button class="mini-btn" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button><button class="pill-btn" data-v-3e891789><span class="i-tabler-plus" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx018"))}</button></div></div>`);
404
421
  if (datasets.value.length) {
405
- _push(`<div class="tbl-scroll" data-v-1b416c3a><table class="tbl tbl-datasets" data-v-1b416c3a><thead data-v-1b416c3a><tr data-v-1b416c3a><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx020"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx021"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx022"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx023"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx024"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx025"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx026"))}</th></tr></thead><tbody data-v-1b416c3a><!--[-->`);
422
+ _push(`<div class="tbl-scroll" data-v-3e891789><table class="tbl tbl-datasets" data-v-3e891789><thead data-v-3e891789><tr data-v-3e891789><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx020"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx021"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx022"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx023"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx024"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx025"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx026"))}</th></tr></thead><tbody data-v-3e891789><!--[-->`);
406
423
  ssrRenderList(datasets.value, (d) => {
407
- _push(`<!--[--><tr class="${ssrRenderClass([{ open: expandedDs.value === d.id }, "row-main"])}" data-v-1b416c3a><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(fmtTime(d.createdAt))}</td><td class="mono" data-v-1b416c3a>${ssrInterpolate(shortId(d.productId))}</td><td class="mono" data-v-1b416c3a>${ssrInterpolate(shortId(d.recipeId))}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(d.rowCount)}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(d.runIds.length)}</td><td data-v-1b416c3a>${ssrInterpolate(d.createdBy)}<small class="${ssrRenderClass([d.createdByKind, "kind"])}" data-v-1b416c3a>${ssrInterpolate(d.createdByKind === "agent" ? "Agent" : _ctx.$t("aml.k1amlx049"))}</small></td><td class="note-cell" data-v-1b416c3a>`);
408
- if (noteEditing.value === d.id) _push(`<div class="note-edit" data-v-1b416c3a><input${ssrRenderAttr("value", noteDraft.value)}${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx189"))} data-v-1b416c3a><button class="mini-btn" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx191"))}</button><button class="mini-btn" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx202"))}</button></div>`);
409
- else _push(`<span class="note-text" data-v-1b416c3a><span class="note"${ssrRenderAttr("title", d.note)} data-v-1b416c3a>${ssrInterpolate(d.note || "--")}</span><span class="i-tabler-pencil edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx189"))} data-v-1b416c3a></span><span class="i-tabler-trash edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx190"))} data-v-1b416c3a></span></span>`);
424
+ _push(`<!--[--><tr class="${ssrRenderClass([{ open: expandedDs.value === d.id }, "row-main"])}" data-v-3e891789><td class="mono dim" data-v-3e891789>${ssrInterpolate(fmtTime(d.createdAt))}</td><td class="mono" data-v-3e891789>${ssrInterpolate(shortId(d.productId))}</td><td class="mono" data-v-3e891789>${ssrInterpolate(shortId(d.recipeId))}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(d.rowCount)}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(d.runIds.length)}</td><td data-v-3e891789>${ssrInterpolate(d.createdBy)}<small class="${ssrRenderClass([d.createdByKind, "kind"])}" data-v-3e891789>${ssrInterpolate(d.createdByKind === "agent" ? "Agent" : _ctx.$t("aml.k1amlx049"))}</small></td><td class="note-cell" data-v-3e891789>`);
425
+ if (noteEditing.value === d.id) _push(`<div class="note-edit" data-v-3e891789><input${ssrRenderAttr("value", noteDraft.value)}${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx189"))} data-v-3e891789><button class="mini-btn" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx191"))}</button><button class="mini-btn" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx202"))}</button></div>`);
426
+ else _push(`<span class="note-text" data-v-3e891789><span class="note"${ssrRenderAttr("title", d.note)} data-v-3e891789>${ssrInterpolate(d.note || "--")}</span><span class="i-tabler-pencil edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx189"))} data-v-3e891789></span><span class="i-tabler-trash edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx190"))} data-v-3e891789></span></span>`);
410
427
  _push(`</td></tr>`);
411
428
  if (expandedDs.value === d.id) {
412
- _push(`<tr class="detail-row" data-v-1b416c3a><td colspan="7" data-v-1b416c3a>`);
413
- if (dsDetails[d.id]?.loading) _push(`<div class="dim pad" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx030"))}</div>`);
414
- else if (dsDetails[d.id]?.error) _push(`<div class="err pad" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx031"))}:${ssrInterpolate(dsDetails[d.id]?.error)}</div>`);
429
+ _push(`<tr class="detail-row" data-v-3e891789><td colspan="7" data-v-3e891789>`);
430
+ if (dsDetails[d.id]?.loading) _push(`<div class="dim pad" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx030"))}</div>`);
431
+ else if (dsDetails[d.id]?.error) _push(`<div class="err pad" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx031"))}:${ssrInterpolate(dsDetails[d.id]?.error)}</div>`);
415
432
  else if (dsDetails[d.id]?.report) {
416
- _push(`<div class="det-grid" data-v-1b416c3a><div data-v-1b416c3a><p class="det-title" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx027"))}</p><table class="sub-tbl" data-v-1b416c3a><thead data-v-1b416c3a><tr data-v-1b416c3a><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx033"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx034"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx035"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx036"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx037"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx038"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx039"))}</th></tr></thead><tbody data-v-1b416c3a><!--[-->`);
433
+ _push(`<div class="det-grid" data-v-3e891789><div data-v-3e891789><p class="det-title" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx027"))}</p><table class="sub-tbl" data-v-3e891789><thead data-v-3e891789><tr data-v-3e891789><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx033"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx034"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx035"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx036"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx037"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx038"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx039"))}</th></tr></thead><tbody data-v-3e891789><!--[-->`);
417
434
  ssrRenderList(dsDetails[d.id]?.report?.nodeSummaries, (s) => {
418
- _push(`<tr data-v-1b416c3a><td class="mono" data-v-1b416c3a>${ssrInterpolate(s.nodeId)}</td><td data-v-1b416c3a><small class="role-chip" data-v-1b416c3a>${ssrInterpolate(s.role)}</small></td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtPct(s.cleanedRatio))}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtPct(s.missingRatio))}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtNum(s.mean, 3))}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtNum(s.std, 3))}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtNum(s.min, 2))}~${ssrInterpolate(fmtNum(s.max, 2))}</td></tr>`);
435
+ _push(`<tr data-v-3e891789><td class="mono" data-v-3e891789>${ssrInterpolate(s.nodeId)}</td><td data-v-3e891789><small class="role-chip" data-v-3e891789>${ssrInterpolate(s.role)}</small></td><td class="mono num" data-v-3e891789>${ssrInterpolate(fmtPct(s.cleanedRatio))}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(fmtPct(s.missingRatio))}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(fmtNum(s.mean, 3))}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(fmtNum(s.std, 3))}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(fmtNum(s.min, 2))}~${ssrInterpolate(fmtNum(s.max, 2))}</td></tr>`);
419
436
  });
420
- _push(`<!--]--></tbody></table></div><div data-v-1b416c3a><p class="det-title" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx028"))}</p>`);
437
+ _push(`<!--]--></tbody></table></div><div data-v-3e891789><p class="det-title" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx028"))}</p>`);
421
438
  if (dsDetails[d.id]?.report?.lagEstimates.length) {
422
- _push(`<table class="sub-tbl" data-v-1b416c3a><thead data-v-1b416c3a><tr data-v-1b416c3a><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx040"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx041"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx042"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx043"))}</th></tr></thead><tbody data-v-1b416c3a><!--[-->`);
439
+ _push(`<table class="sub-tbl" data-v-3e891789><thead data-v-3e891789><tr data-v-3e891789><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx040"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx041"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx042"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx043"))}</th></tr></thead><tbody data-v-3e891789><!--[-->`);
423
440
  ssrRenderList(dsDetails[d.id]?.report?.lagEstimates, (l) => {
424
- _push(`<tr data-v-1b416c3a><td class="mono" data-v-1b416c3a>${ssrInterpolate(l.controlId)}</td><td class="mono" data-v-1b416c3a>${ssrInterpolate(l.targetId)}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(l.lagSteps)}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtNum(l.corr, 3))}</td></tr>`);
441
+ _push(`<tr data-v-3e891789><td class="mono" data-v-3e891789>${ssrInterpolate(l.controlId)}</td><td class="mono" data-v-3e891789>${ssrInterpolate(l.targetId)}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(l.lagSteps)}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(fmtNum(l.corr, 3))}</td></tr>`);
425
442
  });
426
443
  _push(`<!--]--></tbody></table>`);
427
- } else _push(`<p class="dim" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx032"))}</p>`);
428
- _push(`<p class="det-title" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx029"))}</p><p class="mono dim run-line" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx044"))} <b data-v-1b416c3a>${ssrInterpolate(dsDetails[d.id]?.report?.runsUsed.length ?? 0)}</b> · ${ssrInterpolate(_ctx.$t("aml.k1amlx045"))} <b data-v-1b416c3a>${ssrInterpolate(dsDetails[d.id]?.report?.runsDropped.length ?? 0)}</b> · ${ssrInterpolate(_ctx.$t("aml.k1amlx046"))} <b data-v-1b416c3a>${ssrInterpolate(dsDetails[d.id]?.report?.windowCount.train)}/${ssrInterpolate(dsDetails[d.id]?.report?.windowCount.val)}/${ssrInterpolate(dsDetails[d.id]?.report?.windowCount.test)}</b></p><!--[-->`);
444
+ } else _push(`<p class="dim" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx032"))}</p>`);
445
+ _push(`<p class="det-title" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx029"))}</p><p class="mono dim run-line" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx044"))} <b data-v-3e891789>${ssrInterpolate(dsDetails[d.id]?.report?.runsUsed.length ?? 0)}</b> · ${ssrInterpolate(_ctx.$t("aml.k1amlx045"))} <b data-v-3e891789>${ssrInterpolate(dsDetails[d.id]?.report?.runsDropped.length ?? 0)}</b> · ${ssrInterpolate(_ctx.$t("aml.k1amlx046"))} <b data-v-3e891789>${ssrInterpolate(dsDetails[d.id]?.report?.windowCount.train)}/${ssrInterpolate(dsDetails[d.id]?.report?.windowCount.val)}/${ssrInterpolate(dsDetails[d.id]?.report?.windowCount.test)}</b></p><!--[-->`);
429
446
  ssrRenderList(dsDetails[d.id]?.report?.runsDropped, (r) => {
430
- _push(`<p class="mono drop-line" data-v-1b416c3a> ✗ ${ssrInterpolate(shortId(r.runId))} — ${ssrInterpolate(r.reason)}</p>`);
447
+ _push(`<p class="mono drop-line" data-v-3e891789> ✗ ${ssrInterpolate(shortId(r.runId))} — ${ssrInterpolate(r.reason)}</p>`);
431
448
  });
432
449
  _push(`<!--]--></div></div>`);
433
- } else _push(`<p class="dim pad" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx047"))}</p>`);
450
+ } else _push(`<p class="dim pad" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx047"))}</p>`);
434
451
  _push(`</td></tr>`);
435
452
  } else _push(`<!---->`);
436
453
  _push(`<!--]-->`);
437
454
  });
438
455
  _push(`<!--]--></tbody></table></div>`);
439
- } else _push(`<p class="empty" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx019"))}</p>`);
440
- _push(`</section><section class="aw-tile zone" data-v-1b416c3a><div class="zone-head" data-v-1b416c3a><h2 data-v-1b416c3a><span class="i-tabler-brain" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx074"))} <b class="mono cnt" data-v-1b416c3a>${ssrInterpolate(jobRows.value.length)}</b>`);
441
- if (jobRows.value.some((j) => isActiveStatus(j.status))) _push(`<span class="live-dot"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx091"))} data-v-1b416c3a></span>`);
456
+ } else _push(`<p class="empty" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx019"))}</p>`);
457
+ _push(`</section><section class="aw-tile zone" data-v-3e891789><div class="zone-head" data-v-3e891789><h2 data-v-3e891789><span class="i-tabler-brain" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx074"))} <b class="mono cnt" data-v-3e891789>${ssrInterpolate(jobRows.value.length)}</b>`);
458
+ if (jobRows.value.some((j) => isActiveStatus(j.status))) _push(`<span class="live-dot"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx091"))} data-v-3e891789></span>`);
442
459
  else _push(`<!---->`);
443
- _push(`</h2><button class="mini-btn" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button></div>`);
460
+ _push(`</h2><button class="mini-btn" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button></div>`);
444
461
  if (jobRows.value.length) {
445
- _push(`<div class="tbl-scroll" data-v-1b416c3a><table class="tbl tbl-jobs" data-v-1b416c3a><thead data-v-1b416c3a><tr data-v-1b416c3a><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx076"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx011"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx066"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx077"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx078"))}</th><th class="prog-th" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx079"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx020"))}</th><th class="right" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx127"))}</th></tr></thead><tbody data-v-1b416c3a><!--[-->`);
462
+ _push(`<div class="tbl-scroll" data-v-3e891789><table class="tbl tbl-jobs" data-v-3e891789><thead data-v-3e891789><tr data-v-3e891789><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx076"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx011"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx066"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx077"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx078"))}</th><th class="prog-th" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx079"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx020"))}</th><th class="right" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx127"))}</th></tr></thead><tbody data-v-3e891789><!--[-->`);
446
463
  ssrRenderList(jobRows.value, (j) => {
447
- _push(`<!--[--><tr class="${ssrRenderClass([{ open: expandedJob.value === j.id }, "row-main"])}" data-v-1b416c3a><td class="mono" data-v-1b416c3a>${ssrInterpolate(shortId(j.id))}</td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(shortId(j.datasetId))}</td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(j.purpose)}</td><td data-v-1b416c3a><span class="${ssrRenderClass([j.status, "st-pill"])}" data-v-1b416c3a>${ssrInterpolate(statusLabel(j.status))}</span></td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(j.stage || "--")}</td><td class="prog-cell" data-v-1b416c3a><span class="prog" data-v-1b416c3a><i style="${ssrRenderStyle({ width: `${Math.max(0, Math.min(100, j.progress))}%` })}" class="${ssrRenderClass({
464
+ _push(`<!--[--><tr class="${ssrRenderClass([{ open: expandedJob.value === j.id }, "row-main"])}" data-v-3e891789><td class="mono" data-v-3e891789>${ssrInterpolate(shortId(j.id))}</td><td class="mono dim" data-v-3e891789>${ssrInterpolate(shortId(j.datasetId))}</td><td class="mono dim" data-v-3e891789>${ssrInterpolate(j.purpose)}</td><td data-v-3e891789><span class="${ssrRenderClass([j.status, "st-pill"])}" data-v-3e891789>${ssrInterpolate(statusLabel(j.status))}</span></td><td class="mono dim" data-v-3e891789>${ssrInterpolate(j.stage || "--")}</td><td class="prog-cell" data-v-3e891789><span class="prog" data-v-3e891789><i style="${ssrRenderStyle({ width: `${Math.max(0, Math.min(100, j.progress))}%` })}" class="${ssrRenderClass({
448
465
  done: j.status === "done",
449
466
  bad: j.status === "failed"
450
- })}" data-v-1b416c3a></i></span><span class="mono prog-num" data-v-1b416c3a>${ssrInterpolate(Math.round(j.progress))}%</span></td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(fmtTime(j.createdAt))}</td><td class="right acts" data-v-1b416c3a>`);
451
- if (isActiveStatus(j.status)) _push(`<button class="mini-btn danger"${ssrIncludeBooleanAttr(cancelling.value === j.id) ? " disabled" : ""} data-v-1b416c3a>${ssrInterpolate(confirmCancel.value === j.id ? _ctx.$t("aml.k1amlx094") : cancelling.value === j.id ? _ctx.$t("aml.k1amlx093") : _ctx.$t("aml.k1amlx071"))}</button>`);
467
+ })}" data-v-3e891789></i></span><span class="mono prog-num" data-v-3e891789>${ssrInterpolate(Math.round(j.progress))}%</span></td><td class="mono dim" data-v-3e891789>${ssrInterpolate(fmtTime(j.createdAt))}</td><td class="right acts" data-v-3e891789>`);
468
+ if (isActiveStatus(j.status)) _push(`<button class="mini-btn danger"${ssrIncludeBooleanAttr(cancelling.value === j.id) ? " disabled" : ""} data-v-3e891789>${ssrInterpolate(confirmCancel.value === j.id ? _ctx.$t("aml.k1amlx094") : cancelling.value === j.id ? _ctx.$t("aml.k1amlx093") : _ctx.$t("aml.k1amlx071"))}</button>`);
452
469
  else _push(`<!---->`);
453
- if (canRetry(j.status)) _push(`<button class="mini-btn"${ssrIncludeBooleanAttr(retrying.value === j.id) ? " disabled" : ""} data-v-1b416c3a>${ssrInterpolate(confirmRetry.value === j.id ? _ctx.$t("aml.k1amlx096") : _ctx.$t("aml.k1amlx095"))}</button>`);
470
+ if (canRetry(j.status)) _push(`<button class="mini-btn"${ssrIncludeBooleanAttr(retrying.value === j.id) ? " disabled" : ""} data-v-3e891789>${ssrInterpolate(confirmRetry.value === j.id ? _ctx.$t("aml.k1amlx096") : _ctx.$t("aml.k1amlx095"))}</button>`);
454
471
  else _push(`<!---->`);
455
- if (!isActiveStatus(j.status)) _push(`<span class="i-tabler-trash edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx190"))} data-v-1b416c3a></span>`);
472
+ if (!isActiveStatus(j.status)) _push(`<span class="i-tabler-trash edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx190"))} data-v-3e891789></span>`);
456
473
  else _push(`<!---->`);
457
474
  _push(`</td></tr>`);
458
475
  if (expandedJob.value === j.id) {
459
- _push(`<tr class="detail-row" data-v-1b416c3a><td colspan="8" data-v-1b416c3a>`);
460
- if (jobDetails[j.id]?.loading) _push(`<div class="dim pad" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx030"))}</div>`);
461
- else if (jobDetails[j.id]?.error) _push(`<div class="err pad" data-v-1b416c3a>${ssrInterpolate(jobDetails[j.id]?.error)}</div>`);
476
+ _push(`<tr class="detail-row" data-v-3e891789><td colspan="8" data-v-3e891789>`);
477
+ if (jobDetails[j.id]?.loading) _push(`<div class="dim pad" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx030"))}</div>`);
478
+ else if (jobDetails[j.id]?.error) _push(`<div class="err pad" data-v-3e891789>${ssrInterpolate(jobDetails[j.id]?.error)}</div>`);
462
479
  else {
463
- _push(`<div class="det-grid" data-v-1b416c3a><div data-v-1b416c3a><p class="det-title" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx083"))}</p>`);
480
+ _push(`<div class="det-grid" data-v-3e891789><div data-v-3e891789><p class="det-title" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx083"))}</p>`);
464
481
  if (jobDetails[j.id]?.gates?.checks.length) {
465
- _push(`<table class="sub-tbl" data-v-1b416c3a><thead data-v-1b416c3a><tr data-v-1b416c3a><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx084"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx085"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx086"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx118"))}</th></tr></thead><tbody data-v-1b416c3a><!--[-->`);
482
+ _push(`<table class="sub-tbl" data-v-3e891789><thead data-v-3e891789><tr data-v-3e891789><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx084"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx085"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx086"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx118"))}</th></tr></thead><tbody data-v-3e891789><!--[-->`);
466
483
  ssrRenderList(jobDetails[j.id]?.gates?.checks, (g) => {
467
- _push(`<tr data-v-1b416c3a><td data-v-1b416c3a><b class="mono gate-id" data-v-1b416c3a>${ssrInterpolate(g.id)}</b><small class="dim" data-v-1b416c3a>${ssrInterpolate(g.name)}</small></td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtNum(g.value))}</td><td class="mono num dim" data-v-1b416c3a>${ssrInterpolate(fmtNum(g.threshold))}</td><td data-v-1b416c3a><span class="${ssrRenderClass([g.pass ? "pass" : "fail", "verdict"])}" data-v-1b416c3a>${ssrInterpolate(g.pass ? _ctx.$t("aml.k1amlx087") : _ctx.$t("aml.k1amlx088"))}</span><small class="dim gate-detail" data-v-1b416c3a>${ssrInterpolate(g.detail)}</small></td></tr>`);
484
+ _push(`<tr data-v-3e891789><td data-v-3e891789><b class="mono gate-id" data-v-3e891789>${ssrInterpolate(g.id)}</b><small class="dim" data-v-3e891789>${ssrInterpolate(g.name)}</small></td><td class="mono num" data-v-3e891789>${ssrInterpolate(fmtNum(g.value))}</td><td class="mono num dim" data-v-3e891789>${ssrInterpolate(fmtNum(g.threshold))}</td><td data-v-3e891789><span class="${ssrRenderClass([g.pass ? "pass" : "fail", "verdict"])}" data-v-3e891789>${ssrInterpolate(g.pass ? _ctx.$t("aml.k1amlx087") : _ctx.$t("aml.k1amlx088"))}</span><small class="dim gate-detail" data-v-3e891789>${ssrInterpolate(g.detail)}</small></td></tr>`);
468
485
  });
469
486
  _push(`<!--]--></tbody></table>`);
470
- } else _push(`<p class="dim" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx082"))}</p>`);
487
+ } else _push(`<p class="dim" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx082"))}</p>`);
471
488
  if (jobDetails[j.id]?.metrics?.oneStepTest) {
472
- _push(`<p class="mono dim gate-detail" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx099"))}: ${ssrInterpolate(_ctx.$t("aml.k1amlx116"))} ${ssrInterpolate(fmtNum(jobDetails[j.id]?.metrics?.oneStepTest?.nrmse))} `);
489
+ _push(`<p class="mono dim gate-detail" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx099"))}: ${ssrInterpolate(_ctx.$t("aml.k1amlx116"))} ${ssrInterpolate(fmtNum(jobDetails[j.id]?.metrics?.oneStepTest?.nrmse))} `);
473
490
  if (jobDetails[j.id]?.metrics?.rolloutTest) _push(`<!--[--> · ${ssrInterpolate(_ctx.$t("aml.k1amlx117"))} ${ssrInterpolate(fmtNum(jobDetails[j.id]?.metrics?.rolloutTest?.nrmse))}<!--]-->`);
474
491
  else _push(`<!---->`);
475
492
  _push(`</p>`);
476
493
  } else _push(`<!---->`);
477
- if (j.error) _push(`<p class="err gate-detail" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx092"))}:${ssrInterpolate(j.error)}</p>`);
494
+ if (j.error) _push(`<p class="err gate-detail" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx092"))}:${ssrInterpolate(j.error)}</p>`);
478
495
  else _push(`<!---->`);
479
- _push(`</div><div data-v-1b416c3a><p class="det-title" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx089"))} `);
480
- if (isActiveStatus(j.status)) _push(`<span class="mono live-hint" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx091"))}</span>`);
496
+ _push(`</div><div data-v-3e891789><p class="det-title" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx089"))} `);
497
+ if (isActiveStatus(j.status)) _push(`<span class="mono live-hint" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx091"))}</span>`);
481
498
  else _push(`<!---->`);
482
- _push(`</p><pre class="logs" data-v-1b416c3a>${ssrInterpolate((jobDetails[j.id]?.logs ?? []).join("\n") || _ctx.$t("aml.k1amlx090"))}</pre></div></div>`);
499
+ _push(`</p><pre class="logs" data-v-3e891789>${ssrInterpolate((jobDetails[j.id]?.logs ?? []).join("\n") || _ctx.$t("aml.k1amlx090"))}</pre></div></div>`);
483
500
  }
484
501
  _push(`</td></tr>`);
485
502
  } else _push(`<!---->`);
486
503
  _push(`<!--]-->`);
487
504
  });
488
505
  _push(`<!--]--></tbody></table></div>`);
489
- } else _push(`<p class="empty" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx075"))}</p>`);
490
- _push(`</section><section class="aw-tile zone" data-v-1b416c3a><div class="zone-head" data-v-1b416c3a><h2 data-v-1b416c3a><span class="i-tabler-trophy" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx109"))} <b class="mono cnt" data-v-1b416c3a>${ssrInterpolate(experiments.value.length)}</b></h2><div class="zone-actions" data-v-1b416c3a><select class="inp-sel" data-v-1b416c3a><option value="" data-v-1b416c3a${ssrIncludeBooleanAttr(Array.isArray(expDatasetId.value) ? ssrLooseContain(expDatasetId.value, "") : ssrLooseEqual(expDatasetId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx111"))}</option><!--[-->`);
506
+ } else _push(`<p class="empty" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx075"))}</p>`);
507
+ _push(`</section><section class="aw-tile zone" data-v-3e891789><div class="zone-head" data-v-3e891789><h2 data-v-3e891789><span class="i-tabler-trophy" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx109"))} <b class="mono cnt" data-v-3e891789>${ssrInterpolate(experiments.value.length)}</b></h2><div class="zone-actions" data-v-3e891789><select class="inp-sel" data-v-3e891789><option value="" data-v-3e891789${ssrIncludeBooleanAttr(Array.isArray(expDatasetId.value) ? ssrLooseContain(expDatasetId.value, "") : ssrLooseEqual(expDatasetId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx111"))}</option><!--[-->`);
491
508
  ssrRenderList(datasets.value, (d) => {
492
- _push(`<option${ssrRenderAttr("value", d.id)} data-v-1b416c3a${ssrIncludeBooleanAttr(Array.isArray(expDatasetId.value) ? ssrLooseContain(expDatasetId.value, d.id) : ssrLooseEqual(expDatasetId.value, d.id)) ? " selected" : ""}>${ssrInterpolate(shortId(d.id))} · ${ssrInterpolate(shortId(d.recipeId))}</option>`);
509
+ _push(`<option${ssrRenderAttr("value", d.id)} data-v-3e891789${ssrIncludeBooleanAttr(Array.isArray(expDatasetId.value) ? ssrLooseContain(expDatasetId.value, d.id) : ssrLooseEqual(expDatasetId.value, d.id)) ? " selected" : ""}>${ssrInterpolate(shortId(d.id))} · ${ssrInterpolate(shortId(d.recipeId))}</option>`);
493
510
  });
494
- _push(`<!--]--></select><button class="mini-btn"${ssrIncludeBooleanAttr(!expDatasetId.value) ? " disabled" : ""} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button></div></div>`);
511
+ _push(`<!--]--></select><button class="mini-btn"${ssrIncludeBooleanAttr(!expDatasetId.value) ? " disabled" : ""} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button></div></div>`);
495
512
  if (experiments.value.length) {
496
- _push(`<div class="tbl-scroll" data-v-1b416c3a><table class="tbl tbl-exp" data-v-1b416c3a><thead data-v-1b416c3a><tr data-v-1b416c3a><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx113"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx020"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx114"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx115"))}</th><th class="num"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx121"))} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx116"))}</th><th class="num"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx122"))} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx117"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx118"))}</th></tr></thead><tbody data-v-1b416c3a><!--[-->`);
513
+ _push(`<div class="tbl-scroll" data-v-3e891789><table class="tbl tbl-exp" data-v-3e891789><thead data-v-3e891789><tr data-v-3e891789><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx113"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx020"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx114"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx115"))}</th><th class="num"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx121"))} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx116"))}</th><th class="num"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx122"))} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx117"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx118"))}</th></tr></thead><tbody data-v-3e891789><!--[-->`);
497
514
  ssrRenderList(experiments.value, (e) => {
498
- _push(`<tr class="${ssrRenderClass({ best: e.id === bestExpId.value })}" data-v-1b416c3a><td class="mono" data-v-1b416c3a>`);
499
- if (e.id === bestExpId.value) _push(`<span class="best-tag" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx120"))}</span>`);
515
+ _push(`<tr class="${ssrRenderClass({ best: e.id === bestExpId.value })}" data-v-3e891789><td class="mono" data-v-3e891789>`);
516
+ if (e.id === bestExpId.value) _push(`<span class="best-tag" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx120"))}</span>`);
500
517
  else _push(`<!---->`);
501
- _push(` ${ssrInterpolate(shortId(e.id))}</td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(fmtTime(e.createdAt))}</td><td class="note-cell" data-v-1b416c3a><span class="note"${ssrRenderAttr("title", e.changeNote)} data-v-1b416c3a>${ssrInterpolate(e.changeNote || "--")}</span></td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(e.parentExperimentId ? shortId(e.parentExperimentId) : "--")}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtNum(e.metrics?.oneStepTest?.nrmse))}</td><td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtNum(e.metrics?.rolloutTest?.nrmse))}</td><td data-v-1b416c3a><span class="${ssrRenderClass([e.status, "st-pill"])}" data-v-1b416c3a>${ssrInterpolate(expStatusLabel(e.status))}</span></td></tr>`);
518
+ _push(` ${ssrInterpolate(shortId(e.id))}</td><td class="mono dim" data-v-3e891789>${ssrInterpolate(fmtTime(e.createdAt))}</td><td class="note-cell" data-v-3e891789><span class="note"${ssrRenderAttr("title", e.changeNote)} data-v-3e891789>${ssrInterpolate(e.changeNote || "--")}</span></td><td class="mono dim" data-v-3e891789>${ssrInterpolate(e.parentExperimentId ? shortId(e.parentExperimentId) : "--")}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(fmtNum(e.metrics?.oneStepTest?.nrmse))}</td><td class="mono num" data-v-3e891789>${ssrInterpolate(fmtNum(e.metrics?.rolloutTest?.nrmse))}</td><td data-v-3e891789><span class="${ssrRenderClass([e.status, "st-pill"])}" data-v-3e891789>${ssrInterpolate(expStatusLabel(e.status))}</span></td></tr>`);
502
519
  });
503
520
  _push(`<!--]--></tbody></table></div>`);
504
- } else _push(`<p class="empty" data-v-1b416c3a>${ssrInterpolate(expDatasetId.value ? _ctx.$t("aml.k1amlx112") : _ctx.$t("aml.k1amlx110"))}</p>`);
505
- if (expError.value) _push(`<p class="err pad" data-v-1b416c3a>${ssrInterpolate(expError.value)}</p>`);
521
+ } else _push(`<p class="empty" data-v-3e891789>${ssrInterpolate(expDatasetId.value ? _ctx.$t("aml.k1amlx112") : _ctx.$t("aml.k1amlx110"))}</p>`);
522
+ if (expError.value) _push(`<p class="err pad" data-v-3e891789>${ssrInterpolate(expError.value)}</p>`);
506
523
  else _push(`<!---->`);
507
- _push(`</section><section class="aw-tile zone" data-v-1b416c3a><div class="zone-head" data-v-1b416c3a><h2 data-v-1b416c3a><span class="i-tabler-cube-3d-sphere" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx123"))} <b class="mono cnt" data-v-1b416c3a>${ssrInterpolate(models.value.length)}</b></h2><button class="mini-btn" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button></div>`);
524
+ _push(`</section><section class="aw-tile zone" data-v-3e891789><div class="zone-head" data-v-3e891789><h2 data-v-3e891789><span class="i-tabler-cube-3d-sphere" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx123"))} <b class="mono cnt" data-v-3e891789>${ssrInterpolate(models.value.length)}</b></h2><button class="mini-btn" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx017"))}</button></div>`);
508
525
  if (models.value.length) {
509
- _push(`<div class="tbl-scroll" data-v-1b416c3a><table class="tbl tbl-models" data-v-1b416c3a><thead data-v-1b416c3a><tr data-v-1b416c3a><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx125"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx021"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx022"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx078"))}</th><th${ssrRenderAttr("title", _ctx.$t("aml.k1amlx126"))} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx099"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx020"))}</th><th data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx026"))}</th><th class="right" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx127"))}</th></tr></thead><tbody data-v-1b416c3a><!--[-->`);
526
+ _push(`<div class="tbl-scroll" data-v-3e891789><table class="tbl tbl-models" data-v-3e891789><thead data-v-3e891789><tr data-v-3e891789><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx125"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx021"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx022"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx078"))}</th><th${ssrRenderAttr("title", _ctx.$t("aml.k1amlx126"))} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx099"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx020"))}</th><th data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx026"))}</th><th class="right" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx127"))}</th></tr></thead><tbody data-v-3e891789><!--[-->`);
510
527
  ssrRenderList(models.value, (m) => {
511
- _push(`<tr data-v-1b416c3a><td class="mono" data-v-1b416c3a>${ssrInterpolate(shortId(m.id))}</td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(shortId(m.productId))}</td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(shortId(m.recipeId))}</td><td data-v-1b416c3a><span class="${ssrRenderClass([m.stage, "stage-pill"])}" data-v-1b416c3a>${ssrInterpolate(m.stage)}</span></td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx116"))} ${ssrInterpolate(fmtNum(m.metrics?.oneStepTest?.nrmse))} · ${ssrInterpolate(_ctx.$t("aml.k1amlx117"))} ${ssrInterpolate(fmtNum(m.metrics?.rolloutTest?.nrmse))}</td><td class="mono dim" data-v-1b416c3a>${ssrInterpolate(fmtTime(m.createdAt))}</td><td class="note-cell" data-v-1b416c3a>`);
512
- if (noteEditing.value === m.id) _push(`<div class="note-edit" data-v-1b416c3a><input${ssrRenderAttr("value", noteDraft.value)}${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx189"))} data-v-1b416c3a><button class="mini-btn" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx191"))}</button><button class="mini-btn" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx202"))}</button></div>`);
513
- else _push(`<span class="note-text" data-v-1b416c3a><span class="note"${ssrRenderAttr("title", m.note)} data-v-1b416c3a>${ssrInterpolate(m.note || "--")}</span><span class="i-tabler-pencil edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx189"))} data-v-1b416c3a></span></span>`);
514
- _push(`</td><td class="right acts" data-v-1b416c3a><!--[-->`);
528
+ _push(`<tr data-v-3e891789><td class="mono" data-v-3e891789>${ssrInterpolate(shortId(m.id))}</td><td class="mono dim" data-v-3e891789>${ssrInterpolate(shortId(m.productId))}</td><td class="mono dim" data-v-3e891789>${ssrInterpolate(shortId(m.recipeId))}</td><td data-v-3e891789><span class="${ssrRenderClass([m.stage, "stage-pill"])}" data-v-3e891789>${ssrInterpolate(m.stage)}</span></td><td class="mono dim" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx116"))} ${ssrInterpolate(fmtNum(m.metrics?.oneStepTest?.nrmse))} · ${ssrInterpolate(_ctx.$t("aml.k1amlx117"))} ${ssrInterpolate(fmtNum(m.metrics?.rolloutTest?.nrmse))}</td><td class="mono dim" data-v-3e891789>${ssrInterpolate(fmtTime(m.createdAt))}</td><td class="note-cell" data-v-3e891789>`);
529
+ if (noteEditing.value === m.id) _push(`<div class="note-edit" data-v-3e891789><input${ssrRenderAttr("value", noteDraft.value)}${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx189"))} data-v-3e891789><button class="mini-btn" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx191"))}</button><button class="mini-btn" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx202"))}</button></div>`);
530
+ else _push(`<span class="note-text" data-v-3e891789><span class="note"${ssrRenderAttr("title", m.note)} data-v-3e891789>${ssrInterpolate(m.note || "--")}</span><span class="i-tabler-pencil edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx189"))} data-v-3e891789></span></span>`);
531
+ _push(`</td><td class="right acts" data-v-3e891789><!--[-->`);
515
532
  ssrRenderList(promoteActionOf(m), (a) => {
516
- _push(`<button class="${ssrRenderClass([{ danger: a.to === "retired" }, "mini-btn"])}"${ssrIncludeBooleanAttr(promoting.value === `${m.id}:${a.to}`) ? " disabled" : ""} data-v-1b416c3a>${ssrInterpolate(confirmPromote.value === `${m.id}:${a.to}` ? _ctx.$t("aml.k1amlx131") : _ctx.$t(a.key))}</button>`);
533
+ _push(`<button class="${ssrRenderClass([{ danger: a.to === "retired" }, "mini-btn"])}"${ssrIncludeBooleanAttr(promoting.value === `${m.id}:${a.to}`) ? " disabled" : ""} data-v-3e891789>${ssrInterpolate(confirmPromote.value === `${m.id}:${a.to}` ? _ctx.$t("aml.k1amlx131") : _ctx.$t(a.key))}</button>`);
517
534
  });
518
535
  _push(`<!--]-->`);
519
- if (promoteActionOf(m).length === 0) _push(`<span class="dim" data-v-1b416c3a>--</span>`);
536
+ if (promoteActionOf(m).length === 0) _push(`<span class="dim" data-v-3e891789>--</span>`);
520
537
  else _push(`<!---->`);
521
- _push(`<span class="i-tabler-trash edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx190"))} data-v-1b416c3a></span></td></tr>`);
538
+ _push(`<span class="i-tabler-trash edit-i"${ssrRenderAttr("title", _ctx.$t("aml.k1amlx190"))} data-v-3e891789></span></td></tr>`);
522
539
  });
523
540
  _push(`<!--]--></tbody></table></div>`);
524
- } else _push(`<p class="empty" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx124"))}</p>`);
525
- _push(`</section><section class="aw-tile zone" data-v-1b416c3a><div class="zone-head" data-v-1b416c3a><h2 data-v-1b416c3a><span class="i-tabler-chart-line" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx133"))}</h2>`);
541
+ } else _push(`<p class="empty" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx124"))}</p>`);
542
+ _push(`</section><section class="aw-tile zone" data-v-3e891789><div class="zone-head" data-v-3e891789><h2 data-v-3e891789><span class="i-tabler-chart-line" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx133"))}</h2>`);
526
543
  if (productionModels.value.length) {
527
- _push(`<select class="inp-sel" data-v-1b416c3a><option value="" data-v-1b416c3a${ssrIncludeBooleanAttr(Array.isArray(predModelId.value) ? ssrLooseContain(predModelId.value, "") : ssrLooseEqual(predModelId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx134"))}</option><!--[-->`);
544
+ _push(`<select class="inp-sel" data-v-3e891789><option value="" data-v-3e891789${ssrIncludeBooleanAttr(Array.isArray(predModelId.value) ? ssrLooseContain(predModelId.value, "") : ssrLooseEqual(predModelId.value, "")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx134"))}</option><!--[-->`);
528
545
  ssrRenderList(productionModels.value, (m) => {
529
- _push(`<option${ssrRenderAttr("value", m.id)} data-v-1b416c3a${ssrIncludeBooleanAttr(Array.isArray(predModelId.value) ? ssrLooseContain(predModelId.value, m.id) : ssrLooseEqual(predModelId.value, m.id)) ? " selected" : ""}>${ssrInterpolate(shortId(m.id))} · ${ssrInterpolate(shortId(m.recipeId))}</option>`);
546
+ _push(`<option${ssrRenderAttr("value", m.id)} data-v-3e891789${ssrIncludeBooleanAttr(Array.isArray(predModelId.value) ? ssrLooseContain(predModelId.value, m.id) : ssrLooseEqual(predModelId.value, m.id)) ? " selected" : ""}>${ssrInterpolate(shortId(m.id))} · ${ssrInterpolate(shortId(m.recipeId))}</option>`);
530
547
  });
531
548
  _push(`<!--]--></select>`);
532
549
  } else _push(`<!---->`);
@@ -534,41 +551,41 @@ var index_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
534
551
  if (productionModels.value.length) {
535
552
  _push(`<!--[-->`);
536
553
  if (predModel.value?.ioSpec) {
537
- _push(`<div class="pc-body" data-v-1b416c3a><p class="det-title" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx136"))}</p><div class="io-grid mono" data-v-1b416c3a><span class="io-item" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx140"))} <b data-v-1b416c3a>${ssrInterpolate(predModel.value.ioSpec.historySteps)}</b></span><span class="io-item" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx141"))} <b data-v-1b416c3a>${ssrInterpolate(predModel.value.ioSpec.horizonSteps)}</b></span><span class="io-item" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx142"))} <b data-v-1b416c3a>${ssrInterpolate(predModel.value.ioSpec.beatMs)}ms</b></span><span class="io-item"${ssrRenderAttr("title", predModel.value.ioSpec.allNodes.join(", "))} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx137"))}(${ssrInterpolate(predModel.value.ioSpec.allNodes.length)}) <b data-v-1b416c3a>${ssrInterpolate(predModel.value.ioSpec.allNodes.map((n) => shortId(n)).join(", "))}</b></span><span class="io-item"${ssrRenderAttr("title", predModel.value.ioSpec.controlNodes.join(", "))} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx138"))} <b data-v-1b416c3a>${ssrInterpolate(predModel.value.ioSpec.controlNodes.map((n) => shortId(n)).join(", "))}</b></span><span class="io-item"${ssrRenderAttr("title", predModel.value.ioSpec.targetNodes.join(", "))} data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx139"))} <b data-v-1b416c3a>${ssrInterpolate(predModel.value.ioSpec.targetNodes.map((n) => shortId(n)).join(", "))}</b></span></div><div class="pc-form" data-v-1b416c3a><label class="pc-field" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx143"))}</span><textarea class="inp area" rows="5"${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx144"))} data-v-1b416c3a>${ssrInterpolate(predHistory.value)}</textarea></label><div class="pc-side" data-v-1b416c3a><button class="ghost-btn" data-v-1b416c3a><span class="i-tabler-download" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx145"))}</button><label class="pc-field" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx156"))}</span><textarea class="inp area" rows="3"${ssrRenderAttr("placeholder", "[[…]]")} data-v-1b416c3a>${ssrInterpolate(predControls.value)}</textarea></label><label class="pc-field" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx147"))}</span><input${ssrRenderAttr("value", predSteps.value)} type="number" min="1" class="inp" data-v-1b416c3a></label><button class="pill-btn"${ssrIncludeBooleanAttr(predBusy.value || !predHistory.value.trim()) ? " disabled" : ""} data-v-1b416c3a>${ssrInterpolate(predBusy.value ? _ctx.$t("aml.k1amlx149") : _ctx.$t("aml.k1amlx148"))}</button></div></div><p class="hint dim" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx146"))}</p>`);
538
- if (predError.value) _push(`<p class="err" data-v-1b416c3a>${ssrInterpolate(predError.value)}</p>`);
554
+ _push(`<div class="pc-body" data-v-3e891789><p class="det-title" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx136"))}</p><div class="io-grid mono" data-v-3e891789><span class="io-item" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx140"))} <b data-v-3e891789>${ssrInterpolate(predModel.value.ioSpec.historySteps)}</b></span><span class="io-item" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx141"))} <b data-v-3e891789>${ssrInterpolate(predModel.value.ioSpec.horizonSteps)}</b></span><span class="io-item" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx142"))} <b data-v-3e891789>${ssrInterpolate(predModel.value.ioSpec.beatMs)}ms</b></span><span class="io-item"${ssrRenderAttr("title", predModel.value.ioSpec.allNodes.join(", "))} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx137"))}(${ssrInterpolate(predModel.value.ioSpec.allNodes.length)}) <b data-v-3e891789>${ssrInterpolate(predModel.value.ioSpec.allNodes.map((n) => shortId(n)).join(", "))}</b></span><span class="io-item"${ssrRenderAttr("title", predModel.value.ioSpec.controlNodes.join(", "))} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx138"))} <b data-v-3e891789>${ssrInterpolate(predModel.value.ioSpec.controlNodes.map((n) => shortId(n)).join(", "))}</b></span><span class="io-item"${ssrRenderAttr("title", predModel.value.ioSpec.targetNodes.join(", "))} data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx139"))} <b data-v-3e891789>${ssrInterpolate(predModel.value.ioSpec.targetNodes.map((n) => shortId(n)).join(", "))}</b></span></div><div class="pc-form" data-v-3e891789><label class="pc-field" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx143"))}</span><textarea class="inp area" rows="5"${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx144"))} data-v-3e891789>${ssrInterpolate(predHistory.value)}</textarea></label><div class="pc-side" data-v-3e891789><button class="ghost-btn" data-v-3e891789><span class="i-tabler-download" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx145"))}</button><label class="pc-field" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx156"))}</span><textarea class="inp area" rows="3"${ssrRenderAttr("placeholder", "[[…]]")} data-v-3e891789>${ssrInterpolate(predControls.value)}</textarea></label><label class="pc-field" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx147"))}</span><input${ssrRenderAttr("value", predSteps.value)} type="number" min="1" class="inp" data-v-3e891789></label><button class="pill-btn"${ssrIncludeBooleanAttr(predBusy.value || !predHistory.value.trim()) ? " disabled" : ""} data-v-3e891789>${ssrInterpolate(predBusy.value ? _ctx.$t("aml.k1amlx149") : _ctx.$t("aml.k1amlx148"))}</button></div></div><p class="hint dim" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx146"))}</p>`);
555
+ if (predError.value) _push(`<p class="err" data-v-3e891789>${ssrInterpolate(predError.value)}</p>`);
539
556
  else _push(`<!---->`);
540
557
  if (predResult.value) {
541
- _push(`<!--[--><p class="det-title" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx150"))}</p><table class="sub-tbl" data-v-1b416c3a><thead data-v-1b416c3a><tr data-v-1b416c3a><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx151"))}</th><th class="num" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx152"))}</th><!--[-->`);
558
+ _push(`<!--[--><p class="det-title" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx150"))}</p><table class="sub-tbl" data-v-3e891789><thead data-v-3e891789><tr data-v-3e891789><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx151"))}</th><th class="num" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx152"))}</th><!--[-->`);
542
559
  ssrRenderList(predResult.value.targetNodes, (n, i) => {
543
- _push(`<th class="num" data-v-1b416c3a>${ssrInterpolate(shortId(n))}`);
544
- if (i === 0) _push(`<small class="dim" data-v-1b416c3a> (${ssrInterpolate(_ctx.$t("aml.k1amlx041"))})</small>`);
560
+ _push(`<th class="num" data-v-3e891789>${ssrInterpolate(shortId(n))}`);
561
+ if (i === 0) _push(`<small class="dim" data-v-3e891789> (${ssrInterpolate(_ctx.$t("aml.k1amlx041"))})</small>`);
545
562
  else _push(`<!---->`);
546
563
  _push(`</th>`);
547
564
  });
548
- _push(`<!--]--></tr></thead><tbody data-v-1b416c3a><!--[-->`);
565
+ _push(`<!--]--></tr></thead><tbody data-v-3e891789><!--[-->`);
549
566
  ssrRenderList(predResult.value.forecast, (row, ri) => {
550
- _push(`<tr data-v-1b416c3a><td class="mono num" data-v-1b416c3a>${ssrInterpolate(ri + 1)}</td><td class="mono num dim" data-v-1b416c3a>${ssrInterpolate(fmtNum((ri + 1) * predResult.value.beatMs / 1e3, 1))}</td><!--[-->`);
567
+ _push(`<tr data-v-3e891789><td class="mono num" data-v-3e891789>${ssrInterpolate(ri + 1)}</td><td class="mono num dim" data-v-3e891789>${ssrInterpolate(fmtNum((ri + 1) * predResult.value.beatMs / 1e3, 1))}</td><!--[-->`);
551
568
  ssrRenderList(row, (v, ci) => {
552
- _push(`<td class="mono num" data-v-1b416c3a>${ssrInterpolate(fmtNum(v, 3))}</td>`);
569
+ _push(`<td class="mono num" data-v-3e891789>${ssrInterpolate(fmtNum(v, 3))}</td>`);
553
570
  });
554
571
  _push(`<!--]--></tr>`);
555
572
  });
556
- _push(`<!--]--></tbody></table><p class="mono dim gate-detail" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx155"))}:${ssrInterpolate(predResult.value.assumptions)}</p><!--]-->`);
573
+ _push(`<!--]--></tbody></table><p class="mono dim gate-detail" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx155"))}:${ssrInterpolate(predResult.value.assumptions)}</p><!--]-->`);
557
574
  } else _push(`<!---->`);
558
575
  _push(`</div>`);
559
- } else _push(`<p class="empty" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx134"))}</p>`);
576
+ } else _push(`<p class="empty" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx134"))}</p>`);
560
577
  _push(`<!--]-->`);
561
- } else _push(`<p class="empty" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx135"))}</p>`);
578
+ } else _push(`<p class="empty" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx135"))}</p>`);
562
579
  _push(`</section>`);
563
580
  if (dsFormOpen.value) {
564
- _push(`<div class="modal-mask" data-v-1b416c3a><div class="modal" data-v-1b416c3a><h3 class="m-title" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx050"))}</h3><div class="f-grid" data-v-1b416c3a><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx051"))}<em data-v-1b416c3a>*</em></span><input${ssrRenderAttr("value", dsForm.lineId)} class="inp" placeholder="line-ov-01" data-v-1b416c3a></label><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx052"))}<em data-v-1b416c3a>*</em></span><input${ssrRenderAttr("value", dsForm.productId)} class="inp" data-v-1b416c3a></label><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx053"))}<em data-v-1b416c3a>*</em></span><input${ssrRenderAttr("value", dsForm.recipeId)} class="inp" data-v-1b416c3a></label></div><p class="sec-label" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx054"))}</p><div class="node-rows" data-v-1b416c3a><!--[-->`);
581
+ _push(`<div class="modal-mask" data-v-3e891789><div class="modal" data-v-3e891789><h3 class="m-title" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx050"))}</h3><div class="f-grid" data-v-3e891789><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx051"))}<em data-v-3e891789>*</em></span><input${ssrRenderAttr("value", dsForm.lineId)} class="inp" placeholder="line-ov-01" data-v-3e891789></label><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx052"))}<em data-v-3e891789>*</em></span><input${ssrRenderAttr("value", dsForm.productId)} class="inp" data-v-3e891789></label><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx053"))}<em data-v-3e891789>*</em></span><input${ssrRenderAttr("value", dsForm.recipeId)} class="inp" data-v-3e891789></label></div><p class="sec-label" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx054"))}</p><div class="node-rows" data-v-3e891789><!--[-->`);
565
582
  ssrRenderList(dsNodes, (n, i) => {
566
- _push(`<div class="node-row" data-v-1b416c3a><input${ssrRenderAttr("value", n.nodeId)} class="inp grow"${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx056"))} data-v-1b416c3a><select class="inp sel" data-v-1b416c3a><option value="control" data-v-1b416c3a${ssrIncludeBooleanAttr(Array.isArray(n.role) ? ssrLooseContain(n.role, "control") : ssrLooseEqual(n.role, "control")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx057"))}</option><option value="feature" data-v-1b416c3a${ssrIncludeBooleanAttr(Array.isArray(n.role) ? ssrLooseContain(n.role, "feature") : ssrLooseEqual(n.role, "feature")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx058"))}</option><option value="target" data-v-1b416c3a${ssrIncludeBooleanAttr(Array.isArray(n.role) ? ssrLooseContain(n.role, "target") : ssrLooseEqual(n.role, "target")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx059"))}</option></select><button class="mini-btn danger"${ssrIncludeBooleanAttr(dsNodes.length <= 1) ? " disabled" : ""} data-v-1b416c3a> ✕ </button></div>`);
583
+ _push(`<div class="node-row" data-v-3e891789><input${ssrRenderAttr("value", n.nodeId)} class="inp grow"${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx056"))} data-v-3e891789><select class="inp sel" data-v-3e891789><option value="control" data-v-3e891789${ssrIncludeBooleanAttr(Array.isArray(n.role) ? ssrLooseContain(n.role, "control") : ssrLooseEqual(n.role, "control")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx057"))}</option><option value="feature" data-v-3e891789${ssrIncludeBooleanAttr(Array.isArray(n.role) ? ssrLooseContain(n.role, "feature") : ssrLooseEqual(n.role, "feature")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx058"))}</option><option value="target" data-v-3e891789${ssrIncludeBooleanAttr(Array.isArray(n.role) ? ssrLooseContain(n.role, "target") : ssrLooseEqual(n.role, "target")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx059"))}</option></select><button class="mini-btn danger"${ssrIncludeBooleanAttr(dsNodes.length <= 1) ? " disabled" : ""} data-v-3e891789> ✕ </button></div>`);
567
584
  });
568
- _push(`<!--]--><button class="mini-btn" data-v-1b416c3a><span class="i-tabler-plus" data-v-1b416c3a></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx055"))}</button></div><div class="f-grid" data-v-1b416c3a><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx060"))}</span><input${ssrRenderAttr("value", dsForm.beatMs)} type="number" min="1000" step="500" class="inp" data-v-1b416c3a></label><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx061"))}</span><input${ssrRenderAttr("value", dsForm.historySteps)} type="number" min="1" class="inp" data-v-1b416c3a></label><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx062"))}</span><input${ssrRenderAttr("value", dsForm.horizonSteps)} type="number" min="1" class="inp" data-v-1b416c3a></label><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx063"))}</span><input${ssrRenderAttr("value", dsForm.valRatio)} type="number" min="0" max="0.8" step="0.05" class="inp" data-v-1b416c3a></label><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx064"))}</span><input${ssrRenderAttr("value", dsForm.testRatio)} type="number" min="0" max="0.8" step="0.05" class="inp" data-v-1b416c3a></label><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx065"))}</span><input${ssrRenderAttr("value", dsForm.seed)} type="number" class="inp" data-v-1b416c3a></label><label class="f" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx066"))}</span><select class="inp" data-v-1b416c3a><option value="mpc_surrogate" data-v-1b416c3a${ssrIncludeBooleanAttr(Array.isArray(dsForm.purpose) ? ssrLooseContain(dsForm.purpose, "mpc_surrogate") : ssrLooseEqual(dsForm.purpose, "mpc_surrogate")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx067"))}</option><option value="quality_predict" data-v-1b416c3a${ssrIncludeBooleanAttr(Array.isArray(dsForm.purpose) ? ssrLooseContain(dsForm.purpose, "quality_predict") : ssrLooseEqual(dsForm.purpose, "quality_predict")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx068"))}</option></select></label><label class="f wide" data-v-1b416c3a><span data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx026"))}</span><input${ssrRenderAttr("value", dsForm.note)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx069"))} data-v-1b416c3a></label></div>`);
569
- if (dsFormError.value) _push(`<p class="m-err" data-v-1b416c3a>${ssrInterpolate(dsFormError.value)}</p>`);
585
+ _push(`<!--]--><button class="mini-btn" data-v-3e891789><span class="i-tabler-plus" data-v-3e891789></span> ${ssrInterpolate(_ctx.$t("aml.k1amlx055"))}</button></div><div class="f-grid" data-v-3e891789><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx060"))}</span><input${ssrRenderAttr("value", dsForm.beatMs)} type="number" min="1000" step="500" class="inp" data-v-3e891789></label><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx061"))}</span><input${ssrRenderAttr("value", dsForm.historySteps)} type="number" min="1" class="inp" data-v-3e891789></label><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx062"))}</span><input${ssrRenderAttr("value", dsForm.horizonSteps)} type="number" min="1" class="inp" data-v-3e891789></label><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx063"))}</span><input${ssrRenderAttr("value", dsForm.valRatio)} type="number" min="0" max="0.8" step="0.05" class="inp" data-v-3e891789></label><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx064"))}</span><input${ssrRenderAttr("value", dsForm.testRatio)} type="number" min="0" max="0.8" step="0.05" class="inp" data-v-3e891789></label><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx065"))}</span><input${ssrRenderAttr("value", dsForm.seed)} type="number" class="inp" data-v-3e891789></label><label class="f" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx066"))}</span><select class="inp" data-v-3e891789><option value="mpc_surrogate" data-v-3e891789${ssrIncludeBooleanAttr(Array.isArray(dsForm.purpose) ? ssrLooseContain(dsForm.purpose, "mpc_surrogate") : ssrLooseEqual(dsForm.purpose, "mpc_surrogate")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx067"))}</option><option value="quality_predict" data-v-3e891789${ssrIncludeBooleanAttr(Array.isArray(dsForm.purpose) ? ssrLooseContain(dsForm.purpose, "quality_predict") : ssrLooseEqual(dsForm.purpose, "quality_predict")) ? " selected" : ""}>${ssrInterpolate(_ctx.$t("aml.k1amlx068"))}</option></select></label><label class="f wide" data-v-3e891789><span data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx026"))}</span><input${ssrRenderAttr("value", dsForm.note)} class="inp"${ssrRenderAttr("placeholder", _ctx.$t("aml.k1amlx069"))} data-v-3e891789></label></div>`);
586
+ if (dsFormError.value) _push(`<p class="m-err" data-v-3e891789>${ssrInterpolate(dsFormError.value)}</p>`);
570
587
  else _push(`<!---->`);
571
- _push(`<div class="m-actions" data-v-1b416c3a><button class="ghost-btn" data-v-1b416c3a>${ssrInterpolate(_ctx.$t("aml.k1amlx071"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(dsSaving.value) ? " disabled" : ""} data-v-1b416c3a>${ssrInterpolate(dsSaving.value ? _ctx.$t("aml.k1amlx070") : _ctx.$t("aml.k1amlx072"))}</button></div></div></div>`);
588
+ _push(`<div class="m-actions" data-v-3e891789><button class="ghost-btn" data-v-3e891789>${ssrInterpolate(_ctx.$t("aml.k1amlx071"))}</button><button class="pill-btn"${ssrIncludeBooleanAttr(dsSaving.value) ? " disabled" : ""} data-v-3e891789>${ssrInterpolate(dsSaving.value ? _ctx.$t("aml.k1amlx070") : _ctx.$t("aml.k1amlx072"))}</button></div></div></div>`);
572
589
  } else _push(`<!---->`);
573
590
  _push(`</div>`);
574
591
  };
@@ -582,7 +599,7 @@ index_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
582
599
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/aml/index.vue");
583
600
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
584
601
  };
585
- var aml_default = /*#__PURE__*/ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-1b416c3a"]]);
602
+ var aml_default = /*#__PURE__*/ _plugin_vue_export_helper_default(index_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-3e891789"]]);
586
603
 
587
604
  export { aml_default as default };
588
- //# sourceMappingURL=aml-_7FdFL2p.mjs.map
605
+ //# sourceMappingURL=aml-CT0xKGKI.mjs.map