agentworkshop 0.7.33 → 0.7.37

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 (945) hide show
  1. package/.output/.AgentWorkShop/aml-python/aml_eval.py +171 -0
  2. package/.output/.AgentWorkShop/aml-python/amlkit.py +120 -0
  3. package/.output/.AgentWorkShop/aml-python/requirements.txt +7 -0
  4. package/.output/.AgentWorkShop/aml-python/train-example.py +92 -0
  5. package/.output/.AgentWorkShop/schema.json +2 -1
  6. package/.output/nitro.json +1 -1
  7. package/.output/public/_nuxt/{DLljr7g0.js → 45zuyAso.js} +1 -1
  8. package/.output/public/_nuxt/4sIEbgcl.js +42 -0
  9. package/.output/public/_nuxt/8NMOXZOV.js +1 -0
  10. package/.output/public/_nuxt/BCGafdXT.js +2 -0
  11. package/.output/public/_nuxt/BDNMzG2s2.js +1 -0
  12. package/.output/public/_nuxt/{C-mDhyEd.js → BDmh31hl.js} +1 -1
  13. package/.output/public/_nuxt/BFkgkW8u.js +4 -0
  14. package/.output/public/_nuxt/BG8sCcwx.js +14 -0
  15. package/.output/public/_nuxt/{D8CqF0yy.js → BHA40aHa.js} +1 -1
  16. package/.output/public/_nuxt/BJHKLJJU.js +1 -0
  17. package/.output/public/_nuxt/{DoTdlVVe2.js → BN6iuJEg2.js} +1 -1
  18. package/.output/public/_nuxt/BNT8gYU92.js +4 -0
  19. package/.output/public/_nuxt/BU83-NnX.js +106 -0
  20. package/.output/public/_nuxt/BYhEUx8t.js +17 -0
  21. package/.output/public/_nuxt/BzHEilTt.js +1 -0
  22. package/.output/public/_nuxt/{Ct-WOVr4.js → C3J6FYKa.js} +1 -1
  23. package/.output/public/_nuxt/C3gwHTz0.js +1 -0
  24. package/.output/public/_nuxt/C4DWUZ6d2.js +1 -0
  25. package/.output/public/_nuxt/C5gUkRwn.js +1 -0
  26. package/.output/public/_nuxt/CClOy-Hz2.js +1 -0
  27. package/.output/public/_nuxt/{CUXCQXjG.js → CM12FuB42.js} +1 -1
  28. package/.output/public/_nuxt/{BSCpFtzG.js → CSkxz2NX.js} +1 -1
  29. package/.output/public/_nuxt/CWoJjWmZ.js +1 -0
  30. package/.output/public/_nuxt/CY9LbPCI.js +1 -0
  31. package/.output/public/_nuxt/CYWVXZTS.js +7 -0
  32. package/.output/public/_nuxt/CZiw7sEV.js +1 -0
  33. package/.output/public/_nuxt/C_OLzD09.js +1 -0
  34. package/.output/public/_nuxt/C__m4EhR.js +1 -0
  35. package/.output/public/_nuxt/Cbq-mryP.js +1 -0
  36. package/.output/public/_nuxt/{C4OAdbVK2.js → Cc_9VzD42.js} +1 -1
  37. package/.output/public/_nuxt/{BASN8nZ0.js → CdPzkOMV.js} +1 -1
  38. package/.output/public/_nuxt/Cec0Ua3F.js +1 -0
  39. package/.output/public/_nuxt/{DYKVPzN-.js → CoNpEq5X.js} +1 -1
  40. package/.output/public/_nuxt/CojCTLKD.js +1 -0
  41. package/.output/public/_nuxt/{B7wL3pDk.js → Crod5z2f.js} +1 -1
  42. package/.output/public/_nuxt/CzlMDL5H.js +13 -0
  43. package/.output/public/_nuxt/{G0qIw7Gq2.js → D0ZBQrN_2.js} +1 -1
  44. package/.output/public/_nuxt/{Lp7Ll94I.js → D1YDxZpZ.js} +1 -1
  45. package/.output/public/_nuxt/{Bc0AmjfT.js → D20Yamr4.js} +1 -1
  46. package/.output/public/_nuxt/D6uzXueg.js +2 -0
  47. package/.output/public/_nuxt/D9Oidm5I.js +1 -0
  48. package/.output/public/_nuxt/DAe0h2MB.js +1 -0
  49. package/.output/public/_nuxt/DBHNsT1Y.js +23 -0
  50. package/.output/public/_nuxt/DDShH71m.js +1 -0
  51. package/.output/public/_nuxt/DDgJcSET.js +19 -0
  52. package/.output/public/_nuxt/DHFrCUxA2.js +13 -0
  53. package/.output/public/_nuxt/{BcrN7QEl2.js → DIaZ2PTo2.js} +1 -1
  54. package/.output/public/_nuxt/DPnwL14Y.js +1 -0
  55. package/.output/public/_nuxt/DR12_WCA.js +3 -0
  56. package/.output/public/_nuxt/{B9nXmjSB.js → DUrecWPx.js} +4 -4
  57. package/.output/public/_nuxt/DVsjtsvZ2.js +1 -0
  58. package/.output/public/_nuxt/DYr1VMiQ.js +6 -0
  59. package/.output/public/_nuxt/DZtm4l-P2.js +1 -0
  60. package/.output/public/_nuxt/DdD9mCHM.js +1 -0
  61. package/.output/public/_nuxt/DeJykBFf.js +9 -0
  62. package/.output/public/_nuxt/{DoMxCWN52.js → DeyBFhKH2.js} +1 -1
  63. package/.output/public/_nuxt/DkGQ7lnb2.js +1 -0
  64. package/.output/public/_nuxt/DmqknNvV.js +18 -0
  65. package/.output/public/_nuxt/DnUuIR83.js +1 -0
  66. package/.output/public/_nuxt/DrYV5i68.js +1 -0
  67. package/.output/public/_nuxt/{B5S_UyaC.js → DtYHUi5Z.js} +1 -1
  68. package/.output/public/_nuxt/Dz_Q3Lpw2.js +1 -0
  69. package/.output/public/_nuxt/DzbFpZRk.js +3 -0
  70. package/.output/public/_nuxt/HBLJ-wei.js +1 -0
  71. package/.output/public/_nuxt/JCoYF4IJ.js +31 -0
  72. package/.output/public/_nuxt/JTLM-kqr2.js +1 -0
  73. package/.output/public/_nuxt/{BeIfu4N3.js → KZQX7xoM.js} +2 -2
  74. package/.output/public/_nuxt/S_fVQwJK.js +1 -0
  75. package/.output/public/_nuxt/TownView.0oLiQgTC.css +1 -0
  76. package/.output/public/_nuxt/YnQxK3eG.js +1 -0
  77. package/.output/public/_nuxt/_id_.D-SYuyZb.css +1 -0
  78. package/.output/public/_nuxt/_id_.hma_BU6T.css +1 -0
  79. package/.output/public/_nuxt/_wsId_.B12v3PhY.css +1 -0
  80. package/.output/public/_nuxt/aLLjF2K-2.js +1 -0
  81. package/.output/public/_nuxt/aWWIh8YL.js +24 -0
  82. package/.output/public/_nuxt/ahgEJu2R.js +1 -0
  83. package/.output/public/_nuxt/aml.COEKNNqK.css +1 -0
  84. package/.output/public/_nuxt/builds/latest.json +1 -1
  85. package/.output/public/_nuxt/builds/meta/a66fdef7-dcfd-453b-b1f6-543c7dfd98d5.json +1 -0
  86. package/.output/public/_nuxt/daq.B3265ZDn.css +1 -0
  87. package/.output/public/_nuxt/dcw.DLYZqEhT.css +1 -0
  88. package/.output/public/_nuxt/default.DE_vT238.css +1 -0
  89. package/.output/public/_nuxt/entry.BB-Eeh-J.css +1 -0
  90. package/.output/public/_nuxt/jZsY8yYz.js +1 -0
  91. package/.output/public/_nuxt/logs.CqFyMrJw.css +1 -0
  92. package/.output/public/_nuxt/pages.ooEzrMm9.css +1 -0
  93. package/.output/public/_nuxt/pdk8jLGT.js +1 -0
  94. package/.output/public/_nuxt/plugins.5e5chZ67.css +1 -0
  95. package/.output/public/_nuxt/pz2JDAM7.js +2 -0
  96. package/.output/public/_nuxt/settings.Dm3M0RLy.css +1 -0
  97. package/.output/public/_nuxt/town.DKIAhKnx.css +1 -0
  98. package/.output/public/_nuxt/users.CXnP2E08.css +1 -0
  99. package/.output/public/_nuxt/vRTjoWqd.js +1 -0
  100. package/.output/public/_nuxt/workshop.Jk5HxWPE.css +1 -0
  101. package/.output/public/_nuxt/zIGh7R49.js +75 -0
  102. package/.output/public/_nuxt/zq5t1vyX.js +1 -0
  103. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  104. package/.output/server/chunks/_/entity.mjs +174 -0
  105. package/.output/server/chunks/_/entity.mjs.map +1 -0
  106. package/.output/server/chunks/_/env-manager.mjs +162 -0
  107. package/.output/server/chunks/_/env-manager.mjs.map +1 -0
  108. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  109. package/.output/server/chunks/_/nitro.mjs +1568 -1043
  110. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  111. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  112. package/.output/server/chunks/build/{TownView-BdHnAilw.mjs → TownView-jVazYOjN.mjs} +141 -141
  113. package/.output/server/chunks/build/{TownView-BdHnAilw.mjs.map → TownView-jVazYOjN.mjs.map} +1 -1
  114. package/.output/server/chunks/build/{_id_-Cb845FHR.mjs → _id_-CfVosNg3.mjs} +136 -136
  115. package/.output/server/chunks/build/{_id_-Cb845FHR.mjs.map → _id_-CfVosNg3.mjs.map} +1 -1
  116. package/.output/server/chunks/build/{_id_-fadFPl2i.mjs → _id_-Hwr4rZpr.mjs} +32 -32
  117. package/.output/server/chunks/build/{_id_-fadFPl2i.mjs.map → _id_-Hwr4rZpr.mjs.map} +1 -1
  118. package/.output/server/chunks/build/{_wsId_-CTZswnm5.mjs → _wsId_-BVg3bB77.mjs} +175 -165
  119. package/.output/server/chunks/build/{_wsId_-CTZswnm5.mjs.map → _wsId_-BVg3bB77.mjs.map} +1 -1
  120. package/.output/server/chunks/build/aml-BCSJCdX7.mjs +588 -0
  121. package/.output/server/chunks/build/aml-BCSJCdX7.mjs.map +1 -0
  122. package/.output/server/chunks/build/{daq-BvihjQyW.mjs → daq-C03Uu5UE.mjs} +108 -106
  123. package/.output/server/chunks/build/daq-C03Uu5UE.mjs.map +1 -0
  124. package/.output/server/chunks/build/{dcw-Ks2vJ4PF.mjs → dcw-6vEYVeje.mjs} +44 -44
  125. package/.output/server/chunks/build/{dcw-Ks2vJ4PF.mjs.map → dcw-6vEYVeje.mjs.map} +1 -1
  126. package/.output/server/chunks/build/{default-GgHt4O2R.mjs → default-hseyOqBT.mjs} +30 -27
  127. package/.output/server/chunks/build/{default-GgHt4O2R.mjs.map → default-hseyOqBT.mjs.map} +1 -1
  128. package/.output/server/chunks/build/{logs-CYBhkQwh.mjs → logs-B-xhuqln.mjs} +35 -35
  129. package/.output/server/chunks/build/{logs-CYBhkQwh.mjs.map → logs-B-xhuqln.mjs.map} +1 -1
  130. package/.output/server/chunks/build/{pages-C-6BRtv8.mjs → pages-BO7yZsXA.mjs} +18 -27
  131. package/.output/server/chunks/build/pages-BO7yZsXA.mjs.map +1 -0
  132. package/.output/server/chunks/build/{plugins-dZRegC7m.mjs → plugins-CUWmMdyt.mjs} +17 -17
  133. package/.output/server/chunks/build/{plugins-dZRegC7m.mjs.map → plugins-CUWmMdyt.mjs.map} +1 -1
  134. package/.output/server/chunks/build/{settings-CgDLkP3s.mjs → settings-DoQ2Oq3P.mjs} +43 -43
  135. package/.output/server/chunks/build/{settings-CgDLkP3s.mjs.map → settings-DoQ2Oq3P.mjs.map} +1 -1
  136. package/.output/server/chunks/build/{town-DJ-V5G9U.mjs → town-BOl6hs9B.mjs} +7 -7
  137. package/.output/server/chunks/build/{town-DJ-V5G9U.mjs.map → town-BOl6hs9B.mjs.map} +1 -1
  138. package/.output/server/chunks/build/useDaqStream-CIBaiGAl.mjs +1 -1
  139. package/.output/server/chunks/build/useDcwStream-CBbiYnWe.mjs +1 -1
  140. package/.output/server/chunks/build/{useWorkshopWs-CprkZEdq.mjs → useWorkshopWs-C_I7q9As.mjs} +110 -32
  141. package/.output/server/chunks/build/{useWorkshopWs-CprkZEdq.mjs.map → useWorkshopWs-C_I7q9As.mjs.map} +1 -1
  142. package/.output/server/chunks/build/{users-4nzxTjFT.mjs → users-fohSmF-J.mjs} +6 -6
  143. package/.output/server/chunks/build/{users-4nzxTjFT.mjs.map → users-fohSmF-J.mjs.map} +1 -1
  144. package/.output/server/chunks/build/{workshop-81xhz368.mjs → workshop-DX5-ldc4.mjs} +15 -15
  145. package/.output/server/chunks/build/{workshop-81xhz368.mjs.map → workshop-DX5-ldc4.mjs.map} +1 -1
  146. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +21 -8
  147. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  148. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +1 -1
  149. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +58 -0
  150. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs.map +1 -0
  151. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +27 -6
  152. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
  153. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +49 -0
  154. package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs.map +1 -0
  155. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +45 -0
  156. package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs.map +1 -0
  157. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +30 -0
  158. package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -0
  159. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +40 -0
  160. package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -0
  161. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +42 -0
  162. package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -0
  163. package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +1 -1
  164. package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +1 -1
  165. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +4 -22
  166. package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -1
  167. package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +1 -1
  168. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +4 -16
  169. package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
  170. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +19 -34
  171. package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -1
  172. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +41 -0
  173. package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs.map +1 -0
  174. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +62 -0
  175. package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs.map +1 -0
  176. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +1 -1
  177. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +1 -1
  178. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +1 -1
  179. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +63 -0
  180. package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs.map +1 -0
  181. package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +1 -1
  182. package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +1 -1
  183. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +54 -0
  184. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs.map +1 -0
  185. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +46 -0
  186. package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs.map +1 -0
  187. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -1
  188. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -1
  189. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +2 -2
  190. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +1 -1
  191. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -1
  192. package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +1 -1
  193. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -1
  194. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +1 -1
  195. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +1 -1
  196. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +4 -4
  197. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +1 -1
  198. package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +1 -1
  199. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
  200. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +1 -1
  201. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +1 -1
  202. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +1 -1
  203. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +1 -1
  204. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -1
  205. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -1
  206. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
  207. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
  208. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
  209. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -1
  210. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
  211. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
  212. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -1
  213. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +1 -1
  214. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
  215. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
  216. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
  217. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -1
  218. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
  219. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -1
  220. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
  221. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
  222. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
  223. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -1
  224. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
  225. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +1 -1
  226. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
  227. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
  228. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
  229. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
  230. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
  231. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
  232. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
  233. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
  234. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
  235. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -1
  236. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -1
  237. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
  238. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
  239. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
  240. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
  241. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
  242. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -1
  243. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -1
  244. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
  245. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
  246. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  247. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  248. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -1
  249. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -1
  250. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +1 -1
  251. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  252. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  253. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  254. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  255. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  256. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +12 -1
  257. package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
  258. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
  259. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -1
  260. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -1
  261. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
  262. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
  263. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +1 -1
  264. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  265. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  266. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  267. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  268. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -1
  269. package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +1 -1
  270. package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +1 -1
  271. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -2
  272. package/.output/server/chunks/routes/renderer.mjs +2 -2
  273. package/.output/server/chunks/virtual/entry.mjs +103 -17
  274. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  275. package/.output/server/package.json +1 -1
  276. package/README-zh.md +578 -507
  277. package/README.md +125 -51
  278. package/app/assets/css/main.css +329 -22
  279. package/app/components/AppHeader.vue +5 -4
  280. package/app/components/AppSidebar.vue +5 -4
  281. package/app/components/AwChart.vue +17 -0
  282. package/app/components/workshop/AgentLanesView.vue +2 -2
  283. package/app/components/workshop/ChannelSessionList.vue +3 -3
  284. package/app/components/workshop/CommandPalette.vue +1 -2
  285. package/app/components/workshop/Composer.vue +4 -4
  286. package/app/components/workshop/DaqNodeRow.vue +20 -1
  287. package/app/components/workshop/EventBlock.vue +3 -3
  288. package/app/components/workshop/MentionHoverCard.vue +1 -1
  289. package/app/components/workshop/MultiChannelView.vue +1 -1
  290. package/app/components/workshop/TaskBoardView.vue +5 -5
  291. package/app/components/workshop/TranscriptTimeline.vue +3 -3
  292. package/app/components/workshop/blocks/ClusterRoute.vue +3 -3
  293. package/app/components/workshop/blocks/ClusterStream.vue +1 -1
  294. package/app/components/workshop/blocks/ClusterTool.vue +1 -1
  295. package/app/components/workshop/lanes/LaneBlocks.vue +5 -2
  296. package/app/components/workshop/town/TownView.vue +0 -7
  297. package/app/composables/workshop/useClusteredBlocks.ts +22 -3
  298. package/app/composables/workshop/useEscClose.ts +44 -0
  299. package/app/config/index.ts +2 -1
  300. package/app/layouts/default.vue +25 -8
  301. package/app/pages/aml/index.vue +626 -4
  302. package/app/pages/daq/[id].vue +1 -1
  303. package/app/pages/daq/index.vue +10 -12
  304. package/app/pages/dcw/[id].vue +2 -2
  305. package/app/pages/dcw/index.vue +7 -11
  306. package/app/pages/index.vue +24 -6
  307. package/app/pages/logs/index.vue +2 -6
  308. package/app/pages/plugins/index.vue +1 -1
  309. package/app/pages/settings.vue +2 -2
  310. package/app/pages/town.vue +0 -2
  311. package/app/pages/users.vue +1 -1
  312. package/app/pages/workshop/index.vue +2 -2
  313. package/app/plugins/esc-close.client.ts +31 -0
  314. package/app/stores/workshop/events.ts +186 -36
  315. package/bin/aw.mjs +7 -2
  316. package/cli/aw.mjs +19 -34
  317. package/cli/commands/build.mjs +18 -1
  318. package/cli/commands/config.mjs +2 -0
  319. package/cli/commands/plugin.mjs +45 -18
  320. package/cli/commands/register.mjs +6 -2
  321. package/cli/commands/status.mjs +2 -1
  322. package/cli/commands/update.mjs +1 -1
  323. package/cli/commands/version.mjs +1 -1
  324. package/cli/core/args.mjs +76 -4
  325. package/cli/core/help.mjs +3 -1
  326. package/cli/core/meta.mjs +38 -0
  327. package/cli/core/post-build.mjs +96 -0
  328. package/cli/core/registry.mjs +6 -3
  329. package/config.yml +28 -26
  330. package/docs/aml.md +99 -0
  331. package/docs/cli.en.md +445 -0
  332. package/docs/cli.md +410 -220
  333. package/docs/full-test-plan.md +174 -0
  334. package/docs/multi-harness-architecture.md +248 -0
  335. package/docs/plugins.en.md +534 -0
  336. package/docs/plugins.md +531 -179
  337. package/docs/sdk.en.md +922 -0
  338. package/docs/sdk.md +725 -129
  339. package/i18n/dicts/aml.json +43 -1
  340. package/i18n/locales/en.ts +1928 -1885
  341. package/i18n/locales/zh-CN.ts +1928 -1885
  342. package/nuxt.config.ts +27 -2
  343. package/package.json +164 -153
  344. package/scripts/.mimosa/hook-status/sess_aeaecb58-8833-4b83-b93c-050467d21e03-d944d71bb3.json +14 -0
  345. package/scripts/_audit/aml-layout-diag.mjs +83 -0
  346. package/scripts/_audit/bump-version.mjs +51 -0
  347. package/scripts/_audit/channel-inspect.mjs +49 -0
  348. package/scripts/_audit/cleanup-apply.mjs +89 -0
  349. package/scripts/_audit/cleanup-plan.mjs +82 -0
  350. package/scripts/_audit/contrast-check.mjs +43 -0
  351. package/scripts/_audit/dcw-unrecorded-write.ts +1 -1
  352. package/scripts/_audit/design-shots.mjs +145 -0
  353. package/scripts/_audit/docs-font-probe.mjs +68 -0
  354. package/scripts/_audit/docs-probe.mjs +107 -0
  355. package/scripts/_audit/docs-shots.mjs +171 -0
  356. package/scripts/_audit/docs-v3-verify.mjs +255 -0
  357. package/scripts/_audit/docs-vue-lint.mjs +81 -0
  358. package/scripts/_audit/docs-vue-lint2.mjs +91 -0
  359. package/scripts/_audit/exp-cost-scaling.mjs +4 -1
  360. package/scripts/_audit/exp-envelope-and-png.mjs +2 -1
  361. package/scripts/_audit/exp-sweep-fairness.mjs +4 -2
  362. package/scripts/_audit/fix-settings-count.mjs +57 -0
  363. package/scripts/_audit/glass-verify.mjs +155 -0
  364. package/scripts/_audit/hydration-diff.mjs +104 -0
  365. package/scripts/_audit/hydration-head.mjs +36 -0
  366. package/scripts/_audit/hydration-probe.mjs +59 -0
  367. package/scripts/_audit/lead-matrix-test.mjs +172 -0
  368. package/scripts/_audit/plc-agent-task.mjs +74 -0
  369. package/scripts/_audit/plc-clean-scenario.mjs +434 -0
  370. package/scripts/_audit/plc-clean-shots.mjs +161 -0
  371. package/scripts/_audit/plc-fc10-probe.mjs +30 -0
  372. package/scripts/_audit/probe-binding.mjs +114 -103
  373. package/scripts/_audit/review-fix-verify.mjs +158 -0
  374. package/scripts/_audit/seed-demo.mjs +165 -0
  375. package/scripts/_audit/town-focus-shot.mjs +129 -0
  376. package/scripts/_audit/town-reposition.mjs +85 -0
  377. package/scripts/_audit/ts-resolve-hook.mjs +57 -22
  378. package/scripts/_audit/verify-cleanup.mjs +67 -0
  379. package/scripts/_audit/verify-release-pack.mjs +82 -0
  380. package/scripts/_audit/watchdog-recovery-test.mjs +127 -0
  381. package/scripts/_dbg-audit-all-pages.mjs +43 -43
  382. package/scripts/_dbg-configroot-audit.mjs +84 -84
  383. package/scripts/_dbg-daq-intervals-func.mjs +94 -94
  384. package/scripts/_dbg-daq-rowstyle-verify.mjs +112 -112
  385. package/scripts/_dbg-groups-ui-verify.mjs +122 -122
  386. package/scripts/_dbg-harness-e2e.mjs +92 -92
  387. package/scripts/_dbg-harness-ui-e2e.py +97 -97
  388. package/scripts/_dbg-hitl-timeout-e2e.mjs +93 -93
  389. package/scripts/_dbg-multiharness-live-e2e.mjs +254 -254
  390. package/scripts/_dbg-opslog-agent-e2e.mjs +194 -191
  391. package/scripts/_dbg-opt-team-e2e.mjs +133 -133
  392. package/scripts/_dbg-recipe-e2e.mjs +176 -176
  393. package/scripts/_dbg-recipe-stale-e2e.mjs +135 -135
  394. package/scripts/_dbg-render-perf.mjs +142 -142
  395. package/scripts/_dbg-render-regression.mjs +130 -130
  396. package/scripts/_dbg-town-smoke.mjs +54 -54
  397. package/scripts/aw-start-smoke.mjs +27 -8
  398. package/scripts/check-docs-sync.mjs +367 -0
  399. package/scripts/e2e-full-closedloop.mjs +36 -18
  400. package/scripts/production-closed-loop-e2e.mjs +300 -300
  401. package/scripts/test-cli-exit.mjs +129 -21
  402. package/scripts/test-daq-frame-race.mjs +144 -96
  403. package/scripts/test-events-index.mjs +176 -0
  404. package/scripts/test-lru.mjs +34 -11
  405. package/scripts/test-memory-month-query.mjs +11 -3
  406. package/scripts/test-plugin-hardening.mjs +7 -2
  407. package/scripts/test-plugin-lifecycle.mjs +173 -0
  408. package/scripts/test-rollback-index.mjs +76 -18
  409. package/scripts/test-sdk-surface.mjs +6 -3
  410. package/sdk/client.mjs +16 -7
  411. package/sdk/context.mjs +21 -9
  412. package/sdk/examples/line-sentinel/client.mjs +13 -6
  413. package/sdk/examples/line-sentinel/index.mjs +5 -2
  414. package/sdk/examples/ops-notifier/client.mjs +3 -1
  415. package/sdk/examples/sample-insight/client.mjs +4 -2
  416. package/sdk/index.d.mts +133 -16
  417. package/sdk/index.mjs +3 -2
  418. package/sdk/lifecycle.mjs +8 -3
  419. package/server/api/workshop/agent-tools/bindings/index.post.ts +22 -7
  420. package/server/api/workshop/aml/datasets/[id].delete.ts +39 -0
  421. package/server/api/workshop/aml/datasets/[id].get.ts +31 -9
  422. package/server/api/workshop/aml/datasets/[id].patch.ts +30 -0
  423. package/server/api/workshop/aml/entities/index.get.ts +13 -0
  424. package/server/api/workshop/aml/entities/prune.post.ts +28 -0
  425. package/server/api/workshop/aml/env/index.get.ts +13 -0
  426. package/server/api/workshop/aml/env/recheck.post.ts +14 -0
  427. package/server/api/workshop/aml/env/uv.post.ts +21 -0
  428. package/server/api/workshop/aml/env/venv.post.ts +24 -0
  429. package/server/api/workshop/aml/index.get.ts +14 -1
  430. package/server/api/workshop/aml/jobs/[id].delete.ts +44 -0
  431. package/server/api/workshop/aml/models/[id].delete.ts +35 -0
  432. package/server/api/workshop/aml/models/[id].patch.ts +30 -0
  433. package/server/services/workshop/agents/agent-interface.ts +3 -0
  434. package/server/services/workshop/agents/base-agent.ts +9 -0
  435. package/server/services/workshop/agents/codex-agent.ts +743 -729
  436. package/server/services/workshop/agents/dsh-agent.ts +4 -7
  437. package/server/services/workshop/agents/opencode-agent.ts +5 -7
  438. package/server/services/workshop/aml/aml.repo.ts +18 -0
  439. package/server/services/workshop/aml/dataset-builder.ts +4 -0
  440. package/server/services/workshop/aml/entity.ts +365 -0
  441. package/server/services/workshop/aml/env-manager.ts +242 -0
  442. package/server/services/workshop/aml/job-orchestrator.ts +4 -15
  443. package/server/services/workshop/aml/model-registry.ts +6 -0
  444. package/server/services/workshop/aml/python-runtime.ts +396 -62
  445. package/server/services/workshop/aml/runtime.ts +95 -4
  446. package/server/services/workshop/daq/bus/mqtt.adapter.ts +3 -1
  447. package/server/services/workshop/daq/daq-controller.ts +95 -47
  448. package/server/services/workshop/daq/daq-node.repo.ts +0 -10
  449. package/server/services/workshop/daq/daq-runtime.ts +0 -5
  450. package/server/services/workshop/json-store.mjs +35 -2
  451. package/server/services/workshop/plugins/host.mjs +18 -12
  452. package/server/services/workshop/runtime/agent-runtime.ts +32 -3
  453. package/server/services/workshop/runtime/manager.ts +28 -1
  454. package/server/services/workshop/runtime/scheduler-loop.ts +10 -1
  455. package/server/services/workshop/settings.ts +2 -0
  456. package/shared/config/home.mjs +58 -0
  457. package/shared/config/schema.json +2 -1
  458. package/shared/lru.mjs +4 -1
  459. package/.output/public/_nuxt/-6OnbLFb.js +0 -1
  460. package/.output/public/_nuxt/-nb2uqVg.js +0 -1
  461. package/.output/public/_nuxt/4bHdIqEg.js +0 -18
  462. package/.output/public/_nuxt/6PZPfFcO.js +0 -17
  463. package/.output/public/_nuxt/BBBtwOpo.js +0 -9
  464. package/.output/public/_nuxt/BBwMH_hG.js +0 -7
  465. package/.output/public/_nuxt/BDUjyaF4.js +0 -42
  466. package/.output/public/_nuxt/BNXfwXpE.js +0 -1
  467. package/.output/public/_nuxt/BN_PdN3J.js +0 -24
  468. package/.output/public/_nuxt/BSSUlJnx2.js +0 -1
  469. package/.output/public/_nuxt/BWSE6hR6.js +0 -1
  470. package/.output/public/_nuxt/BZGNTgTQ2.js +0 -1
  471. package/.output/public/_nuxt/BZv4RFYN.js +0 -1
  472. package/.output/public/_nuxt/BcmbLh2z2.js +0 -1
  473. package/.output/public/_nuxt/BfGc7TJp.js +0 -1
  474. package/.output/public/_nuxt/BgTB6h_q.js +0 -2
  475. package/.output/public/_nuxt/BkLJA9J5.js +0 -1
  476. package/.output/public/_nuxt/Bp5luxkg2.js +0 -1
  477. package/.output/public/_nuxt/BuCHayqN.js +0 -1
  478. package/.output/public/_nuxt/BuvcLKh1.js +0 -19
  479. package/.output/public/_nuxt/C3tCneTM.js +0 -1
  480. package/.output/public/_nuxt/C77oC8yC2.js +0 -7
  481. package/.output/public/_nuxt/C9f8QMp12.js +0 -1
  482. package/.output/public/_nuxt/CKfhtOt7.js +0 -13
  483. package/.output/public/_nuxt/CQvmN-Mi.js +0 -1
  484. package/.output/public/_nuxt/CUDrOuW7.js +0 -1
  485. package/.output/public/_nuxt/CZcC-gpk.js +0 -1
  486. package/.output/public/_nuxt/CbzsPO5H.js +0 -1
  487. package/.output/public/_nuxt/CdSOrh2c.js +0 -1
  488. package/.output/public/_nuxt/Cgx818r-.js +0 -1
  489. package/.output/public/_nuxt/Cjm7VogC.js +0 -1
  490. package/.output/public/_nuxt/Cm5mDxzH.js +0 -1
  491. package/.output/public/_nuxt/CmHzfVc5.js +0 -3
  492. package/.output/public/_nuxt/Cn3J3NXR.js +0 -23
  493. package/.output/public/_nuxt/Cno6kYiO2.js +0 -1
  494. package/.output/public/_nuxt/Cp6z0RN7.js +0 -1
  495. package/.output/public/_nuxt/CwqIxJGj.js +0 -2
  496. package/.output/public/_nuxt/D-Ca4BGY.js +0 -70
  497. package/.output/public/_nuxt/D0fhp-Ga.js +0 -75
  498. package/.output/public/_nuxt/D1z7i2UP.js +0 -31
  499. package/.output/public/_nuxt/DIaTPH1M.js +0 -1
  500. package/.output/public/_nuxt/DTYBfjRY.js +0 -1
  501. package/.output/public/_nuxt/DXRZPxGs.js +0 -1
  502. package/.output/public/_nuxt/DZzGarBE2.js +0 -13
  503. package/.output/public/_nuxt/DaMCzQhv.js +0 -1
  504. package/.output/public/_nuxt/DoLasgPj2.js +0 -1
  505. package/.output/public/_nuxt/DpojD719.js +0 -1
  506. package/.output/public/_nuxt/DsVcWfyR.js +0 -1
  507. package/.output/public/_nuxt/DtBu71ev.js +0 -32
  508. package/.output/public/_nuxt/Dy-mxvXY2.js +0 -1
  509. package/.output/public/_nuxt/DzuC31-i.js +0 -2
  510. package/.output/public/_nuxt/FQri3dV3.js +0 -1
  511. package/.output/public/_nuxt/ORt9oDIy2.js +0 -1
  512. package/.output/public/_nuxt/TownView.CtskuMXS.css +0 -1
  513. package/.output/public/_nuxt/VLI2Zy4t.js +0 -5
  514. package/.output/public/_nuxt/_id_.MbzdFygI.css +0 -1
  515. package/.output/public/_nuxt/_id_.hRYo-EAB.css +0 -1
  516. package/.output/public/_nuxt/_wsId_.gXMEOYgX.css +0 -1
  517. package/.output/public/_nuxt/aml.WU_bh87J.css +0 -1
  518. package/.output/public/_nuxt/arUY5dyq2.js +0 -4
  519. package/.output/public/_nuxt/builds/meta/291ef3e6-fa6a-4dee-8f46-05da1aeab815.json +0 -1
  520. package/.output/public/_nuxt/daq.Bb6l44-O.css +0 -1
  521. package/.output/public/_nuxt/dcw.rXH2fc2Z.css +0 -1
  522. package/.output/public/_nuxt/default.jNT73_hq.css +0 -1
  523. package/.output/public/_nuxt/ekuGmQ7R.js +0 -1
  524. package/.output/public/_nuxt/entry.jFrFAWuA.css +0 -1
  525. package/.output/public/_nuxt/logs.DMOM-iHe.css +0 -1
  526. package/.output/public/_nuxt/niDwBOZW.js +0 -3
  527. package/.output/public/_nuxt/pMoIO6rr.js +0 -14
  528. package/.output/public/_nuxt/pages.Cc8GX9T1.css +0 -1
  529. package/.output/public/_nuxt/plugins.wIPyfPn-.css +0 -1
  530. package/.output/public/_nuxt/rqZ-1SoP.js +0 -2
  531. package/.output/public/_nuxt/settings.BCm4NZIc.css +0 -1
  532. package/.output/public/_nuxt/town.C_DsNW0J.css +0 -1
  533. package/.output/public/_nuxt/users.DuAt_Zwf.css +0 -1
  534. package/.output/public/_nuxt/vJ4FPb-_.js +0 -1
  535. package/.output/public/_nuxt/workshop.BJg84pOK.css +0 -1
  536. package/.output/server/chunks/build/aml-uBNIppIf.mjs +0 -508
  537. package/.output/server/chunks/build/aml-uBNIppIf.mjs.map +0 -1
  538. package/.output/server/chunks/build/daq-BvihjQyW.mjs.map +0 -1
  539. package/.output/server/chunks/build/pages-C-6BRtv8.mjs.map +0 -1
  540. package/scripts/_audit/.tmp/audit-data/dcws.json +0 -28
  541. package/scripts/_audit/.tmp/dcw-writes.json +0 -15650
  542. package/scripts/_audit/.tmp/dcws.json +0 -9033
  543. package/scripts/_audit/.tmp/pollution-backup/dcw-rollback.polluted.json +0 -470006
  544. package/scripts/_audit/.tmp/pollution-backup/dcws.polluted.json +0 -9085
  545. package/scripts/_audit/.tmp/probe-cwd.txt +0 -1
  546. package/scripts/_audit/awhome/commands/README.md +0 -3
  547. package/scripts/_audit/awhome/commands/hello.mjs +0 -12
  548. package/scripts/_audit/diag-cwd.ts +0 -20
  549. package/scripts/_audit/diag-cwd2.ts +0 -19
  550. package/scripts/_audit/hello.mjs +0 -12
  551. package/scripts/_audit/ndjson-partial-line-repro.mjs +0 -77
  552. package/scripts/_audit/opencode-await-ternary-repro.mjs +0 -20
  553. package/scripts/_audit/part-frag.txt +0 -84
  554. package/scripts/_audit/part-head.txt +0 -45
  555. package/scripts/_audit/probe-child.mjs +0 -17
  556. package/scripts/_audit/probe-envelope.mjs +0 -49
  557. package/scripts/_audit/probe-packlist.mjs +0 -67
  558. package/scripts/_audit/probe-routes.mjs +0 -47
  559. package/scripts/_audit/probe-routes2.mjs +0 -38
  560. package/scripts/_audit/probe.ts +0 -9
  561. package/scripts/_audit/probe2.ts +0 -6
  562. package/scripts/_audit/probe3.ts +0 -3
  563. package/scripts/_audit/probe4.ts +0 -3
  564. package/scripts/_audit/proj/.AgentWorkShop/commands/echoargs.mjs +0 -13
  565. package/scripts/_audit/proj/config.yml +0 -1
  566. package/scripts/_audit/run.mjs +0 -30
  567. package/scripts/_audit/tsconfig.probe.json +0 -24
  568. package/scripts/_audit/typecheck-out.txt +0 -466
  569. package/scripts/_daq-realtime-probe.mjs +0 -68
  570. package/scripts/_daq-warn-probe.mjs +0 -50
  571. package/scripts/_dbg-acc-1-setup.mjs +0 -57
  572. package/scripts/_dbg-acc-2-diag.mjs +0 -14
  573. package/scripts/_dbg-acc-2-intervals.mjs +0 -81
  574. package/scripts/_dbg-acc-3-daq.mjs +0 -48
  575. package/scripts/_dbg-acc-4-team.mjs +0 -92
  576. package/scripts/_dbg-acc-5-visual.mjs +0 -63
  577. package/scripts/_dbg-acc-5b-ws-town.mjs +0 -18
  578. package/scripts/_dbg-acc-5c-town.mjs +0 -12
  579. package/scripts/_dbg-acc-6-i18n.mjs +0 -19
  580. package/scripts/_dbg-agent-tools-audit.mjs +0 -154
  581. package/scripts/_dbg-agent-workflow-audit.mjs +0 -177
  582. package/scripts/_dbg-agents-dropdown-shot.py +0 -33
  583. package/scripts/_dbg-anim-verify.mjs +0 -81
  584. package/scripts/_dbg-app-shot.mjs +0 -48
  585. package/scripts/_dbg-autoframe.mjs +0 -103
  586. package/scripts/_dbg-availability-probe.ts +0 -11
  587. package/scripts/_dbg-beacon-final.mjs +0 -181
  588. package/scripts/_dbg-bind-bidi-e2e.mjs +0 -239
  589. package/scripts/_dbg-callout-near.mjs +0 -108
  590. package/scripts/_dbg-catalog-smoke.ts +0 -20
  591. package/scripts/_dbg-cf-line-shot.mjs +0 -18
  592. package/scripts/_dbg-chan-focus.mjs +0 -49
  593. package/scripts/_dbg-channel-plugin-ui.mjs +0 -94
  594. package/scripts/_dbg-cleanup.mjs +0 -31
  595. package/scripts/_dbg-closedloop-ui-shot.mjs +0 -61
  596. package/scripts/_dbg-codex-handshake.ts +0 -30
  597. package/scripts/_dbg-codex-probe.mjs +0 -58
  598. package/scripts/_dbg-codex-sandbox.ts +0 -58
  599. package/scripts/_dbg-codex-turn.ts +0 -65
  600. package/scripts/_dbg-collab-scenario-e2e.mjs +0 -185
  601. package/scripts/_dbg-config-smoke.ts +0 -28
  602. package/scripts/_dbg-console-audit.mjs +0 -61
  603. package/scripts/_dbg-console-probe.mjs +0 -23
  604. package/scripts/_dbg-context-inject-audit.mjs +0 -231
  605. package/scripts/_dbg-cpu-profile.mjs +0 -53
  606. package/scripts/_dbg-crash-recovery.mjs +0 -143
  607. package/scripts/_dbg-crop-shot.mjs +0 -16
  608. package/scripts/_dbg-cross-channel-e2e.mjs +0 -157
  609. package/scripts/_dbg-cross-team-visibility-e2e.mjs +0 -129
  610. package/scripts/_dbg-crush-probe.sh +0 -21
  611. package/scripts/_dbg-crush-spawn-probe.ts +0 -22
  612. package/scripts/_dbg-daq-acc-probe.mjs +0 -24
  613. package/scripts/_dbg-daq-attrib.mjs +0 -34
  614. package/scripts/_dbg-daq-bind-audit.mjs +0 -119
  615. package/scripts/_dbg-daq-cadence.mjs +0 -104
  616. package/scripts/_dbg-daq-debug.mjs +0 -22
  617. package/scripts/_dbg-daq-diag.mjs +0 -33
  618. package/scripts/_dbg-daq-e2e.mjs +0 -171
  619. package/scripts/_dbg-daq-film.mjs +0 -136
  620. package/scripts/_dbg-daq-filter-e2e.mjs +0 -109
  621. package/scripts/_dbg-daq-filter-e2e2.mjs +0 -62
  622. package/scripts/_dbg-daq-final-regression.mjs +0 -78
  623. package/scripts/_dbg-daq-frame-alarm.mjs +0 -49
  624. package/scripts/_dbg-daq-frame-ui.mjs +0 -62
  625. package/scripts/_dbg-daq-frame-ws.mjs +0 -72
  626. package/scripts/_dbg-daq-full-check.mjs +0 -179
  627. package/scripts/_dbg-daq-line-note-verify.mjs +0 -61
  628. package/scripts/_dbg-daq-linebanner-audit.mjs +0 -107
  629. package/scripts/_dbg-daq-pages-shot.mjs +0 -37
  630. package/scripts/_dbg-daq-perf.mjs +0 -61
  631. package/scripts/_dbg-daq-probe.mjs +0 -27
  632. package/scripts/_dbg-daq-recipe-e2e.mjs +0 -30
  633. package/scripts/_dbg-daq-redesign-shot.mjs +0 -88
  634. package/scripts/_dbg-daq-rows-probe.mjs +0 -26
  635. package/scripts/_dbg-daq-rowstate-e2e.mjs +0 -152
  636. package/scripts/_dbg-daq-rowstate-shot.mjs +0 -45
  637. package/scripts/_dbg-daq-rowstate-shot2.mjs +0 -38
  638. package/scripts/_dbg-daq-tpl.mjs +0 -144
  639. package/scripts/_dbg-dash-console-check.mjs +0 -49
  640. package/scripts/_dbg-dash-deep-probe.mjs +0 -61
  641. package/scripts/_dbg-dash-hitpoint.mjs +0 -44
  642. package/scripts/_dbg-dash-live-shot.mjs +0 -36
  643. package/scripts/_dbg-dash-shot.mjs +0 -21
  644. package/scripts/_dbg-dashboard-shot.mjs +0 -35
  645. package/scripts/_dbg-dcw-audit.mjs +0 -126
  646. package/scripts/_dbg-dcw-card-e2e.mjs +0 -108
  647. package/scripts/_dbg-dcw-channel-ui.mjs +0 -144
  648. package/scripts/_dbg-dcw-examples.mjs +0 -81
  649. package/scripts/_dbg-dcw-light-shot.mjs +0 -19
  650. package/scripts/_dbg-dcw-line-audit.mjs +0 -107
  651. package/scripts/_dbg-dcw-pause-tpl-audit.mjs +0 -161
  652. package/scripts/_dbg-dcw-pause-ui.mjs +0 -175
  653. package/scripts/_dbg-dcw-read-toolface.ts +0 -13
  654. package/scripts/_dbg-dcw-read-ui.mjs +0 -74
  655. package/scripts/_dbg-dcw-scene.mjs +0 -72
  656. package/scripts/_dbg-dcw-shot2.mjs +0 -14
  657. package/scripts/_dbg-dcw-twin-e2e.mjs +0 -192
  658. package/scripts/_dbg-diag-mock-loop.mjs +0 -89
  659. package/scripts/_dbg-diag-watch.mjs +0 -95
  660. package/scripts/_dbg-docs-site-shot.mjs +0 -32
  661. package/scripts/_dbg-dsh-probe.mjs +0 -31
  662. package/scripts/_dbg-dt-interact.mjs +0 -193
  663. package/scripts/_dbg-error-probe.mjs +0 -54
  664. package/scripts/_dbg-filter-light-verify.mjs +0 -54
  665. package/scripts/_dbg-final-acceptance-2.mjs +0 -72
  666. package/scripts/_dbg-final-acceptance.mjs +0 -192
  667. package/scripts/_dbg-final-agent-e2e.mjs +0 -151
  668. package/scripts/_dbg-final-features.mjs +0 -155
  669. package/scripts/_dbg-final-fixups.mjs +0 -62
  670. package/scripts/_dbg-final-full-e2e.mjs +0 -218
  671. package/scripts/_dbg-final-line-e2e.mjs +0 -173
  672. package/scripts/_dbg-final-shots.mjs +0 -32
  673. package/scripts/_dbg-final-t6-hitl.mjs +0 -38
  674. package/scripts/_dbg-final-visual.mjs +0 -29
  675. package/scripts/_dbg-fix-unused-imports.py +0 -41
  676. package/scripts/_dbg-focus-range.mjs +0 -115
  677. package/scripts/_dbg-fresh-scene-e2e.mjs +0 -125
  678. package/scripts/_dbg-fullchain-e2e.mjs +0 -178
  679. package/scripts/_dbg-gate-debug.mjs +0 -37
  680. package/scripts/_dbg-gif-encode.mjs +0 -111
  681. package/scripts/_dbg-gizmo.mjs +0 -95
  682. package/scripts/_dbg-glass-probe.mjs +0 -57
  683. package/scripts/_dbg-glass-shot.mjs +0 -50
  684. package/scripts/_dbg-glass-sweep.mjs +0 -25
  685. package/scripts/_dbg-glb-probe.mjs +0 -43
  686. package/scripts/_dbg-goose-probe.mjs +0 -33
  687. package/scripts/_dbg-goose-probe.sh +0 -10
  688. package/scripts/_dbg-hardening-probe.mjs +0 -90
  689. package/scripts/_dbg-harness-ui-dbg.py +0 -49
  690. package/scripts/_dbg-harness-ui-shot.py +0 -109
  691. package/scripts/_dbg-hero-btn-probe.mjs +0 -21
  692. package/scripts/_dbg-hidden-check.mjs +0 -21
  693. package/scripts/_dbg-hmi-audit.mjs +0 -164
  694. package/scripts/_dbg-home-repro.mjs +0 -24
  695. package/scripts/_dbg-home-stack.mjs +0 -13
  696. package/scripts/_dbg-host.mjs +0 -16
  697. package/scripts/_dbg-huashu-survey.mjs +0 -31
  698. package/scripts/_dbg-huashu-survey2.mjs +0 -35
  699. package/scripts/_dbg-huashu-verify.mjs +0 -25
  700. package/scripts/_dbg-huashu-verify2.mjs +0 -26
  701. package/scripts/_dbg-hydration-detail.mjs +0 -18
  702. package/scripts/_dbg-i18n-debug.mjs +0 -27
  703. package/scripts/_dbg-i18n-debug2.mjs +0 -26
  704. package/scripts/_dbg-i18n-final.mjs +0 -42
  705. package/scripts/_dbg-i18n-scan.mjs +0 -38
  706. package/scripts/_dbg-infra-lifecycle.mjs +0 -44
  707. package/scripts/_dbg-interval-config.mjs +0 -156
  708. package/scripts/_dbg-interval-scenario.mjs +0 -126
  709. package/scripts/_dbg-kicker-check.mjs +0 -11
  710. package/scripts/_dbg-line-aura-shots.mjs +0 -54
  711. package/scripts/_dbg-line-control-e2e.mjs +0 -120
  712. package/scripts/_dbg-line-gate-audit.mjs +0 -108
  713. package/scripts/_dbg-line-live-e2e.mjs +0 -144
  714. package/scripts/_dbg-line-repo-test.ts +0 -10
  715. package/scripts/_dbg-line-scenario-e2e.mjs +0 -256
  716. package/scripts/_dbg-line-spawn.ts +0 -31
  717. package/scripts/_dbg-live-engine-probe.mjs +0 -80
  718. package/scripts/_dbg-login-debug.py +0 -23
  719. package/scripts/_dbg-login-e2e.mjs +0 -26
  720. package/scripts/_dbg-logs-ui-e2e.py +0 -126
  721. package/scripts/_dbg-mcp-bridge-probe.mjs +0 -147
  722. package/scripts/_dbg-modbus-latency.mjs +0 -22
  723. package/scripts/_dbg-mqtt-chain-e2e.mjs +0 -90
  724. package/scripts/_dbg-mqtt-publisher.mjs +0 -17
  725. package/scripts/_dbg-nav-rpg.mjs +0 -84
  726. package/scripts/_dbg-nav-shot.mjs +0 -28
  727. package/scripts/_dbg-nav.mjs +0 -27
  728. package/scripts/_dbg-oneshot-impl-probe.ts +0 -67
  729. package/scripts/_dbg-opencode-sse.mjs +0 -101
  730. package/scripts/_dbg-opencode-start.ts +0 -57
  731. package/scripts/_dbg-opslog-e2e.mjs +0 -121
  732. package/scripts/_dbg-opslog-shots.mjs +0 -62
  733. package/scripts/_dbg-optimization-e2e.mjs +0 -94
  734. package/scripts/_dbg-orbit.mjs +0 -58
  735. package/scripts/_dbg-overview-probe.sh +0 -31
  736. package/scripts/_dbg-panesplitter-fix-check.mjs +0 -62
  737. package/scripts/_dbg-perms-visual.mjs +0 -36
  738. package/scripts/_dbg-pg-tcp-probe.cjs +0 -27
  739. package/scripts/_dbg-phase-e3-monitor.mjs +0 -25
  740. package/scripts/_dbg-pi-spawn-probe.ts +0 -33
  741. package/scripts/_dbg-plc-agent-loop.ts +0 -102
  742. package/scripts/_dbg-plc-e2e.mjs +0 -171
  743. package/scripts/_dbg-plugin-agent-read.ts +0 -56
  744. package/scripts/_dbg-plugin-config-ui.mjs +0 -111
  745. package/scripts/_dbg-plugin-matrix.mjs +0 -212
  746. package/scripts/_dbg-plugin-panels-ui.mjs +0 -54
  747. package/scripts/_dbg-plugin-sink-rest.mjs +0 -70
  748. package/scripts/_dbg-plugin-sink-ui.mjs +0 -81
  749. package/scripts/_dbg-plugin-tools-inject.ts +0 -80
  750. package/scripts/_dbg-plugin-ui-wizard.mjs +0 -125
  751. package/scripts/_dbg-plugin-verify-e2e.mjs +0 -123
  752. package/scripts/_dbg-plugins-e2e.mjs +0 -101
  753. package/scripts/_dbg-pop-clamp-verify.mjs +0 -77
  754. package/scripts/_dbg-preset-e2e.mjs +0 -116
  755. package/scripts/_dbg-preview-console.mjs +0 -28
  756. package/scripts/_dbg-preview-minrepro.mjs +0 -156
  757. package/scripts/_dbg-preview-pixels.mjs +0 -93
  758. package/scripts/_dbg-prompts-hotreload-test.ts +0 -76
  759. package/scripts/_dbg-prompts-resolve-test.ts +0 -39
  760. package/scripts/_dbg-quality-pages-e2e.mjs +0 -84
  761. package/scripts/_dbg-query-cancel.ts +0 -12
  762. package/scripts/_dbg-qwen-acp-probe.mjs +0 -30
  763. package/scripts/_dbg-qwen-capture.mjs +0 -21
  764. package/scripts/_dbg-rail-tree-e2e.mjs +0 -183
  765. package/scripts/_dbg-real-driver-e2e.mjs +0 -55
  766. package/scripts/_dbg-redesign-shots.mjs +0 -34
  767. package/scripts/_dbg-registry-smoke.ts +0 -14
  768. package/scripts/_dbg-release-smoke.mjs +0 -104
  769. package/scripts/_dbg-repo-setup-verify.mjs +0 -31
  770. package/scripts/_dbg-resolve-probe.ts +0 -6
  771. package/scripts/_dbg-restart-persist.mjs +0 -41
  772. package/scripts/_dbg-retention-test.ts +0 -25
  773. package/scripts/_dbg-rollback-mgr-audit.mjs +0 -169
  774. package/scripts/_dbg-rpg.mjs +0 -71
  775. package/scripts/_dbg-sc001-dispatch.mjs +0 -63
  776. package/scripts/_dbg-scenario-final-shot.mjs +0 -24
  777. package/scripts/_dbg-scenario-phase-e2.mjs +0 -75
  778. package/scripts/_dbg-scenario-phase-e3.mjs +0 -96
  779. package/scripts/_dbg-scenario-phase1.mjs +0 -90
  780. package/scripts/_dbg-scenario-phase2.mjs +0 -105
  781. package/scripts/_dbg-scenario-phase3-monitor.mjs +0 -48
  782. package/scripts/_dbg-scenario-phase3.mjs +0 -111
  783. package/scripts/_dbg-scene-polish-shot.mjs +0 -118
  784. package/scripts/_dbg-selring-probe.mjs +0 -47
  785. package/scripts/_dbg-settings-draft-probe.mjs +0 -39
  786. package/scripts/_dbg-settings-probe.mjs +0 -33
  787. package/scripts/_dbg-setup-e2e.mjs +0 -88
  788. package/scripts/_dbg-sideinfo.mjs +0 -101
  789. package/scripts/_dbg-sim-keeper.mjs +0 -100
  790. package/scripts/_dbg-splitter.mjs +0 -88
  791. package/scripts/_dbg-swatch-check.mjs +0 -10
  792. package/scripts/_dbg-task-cancel-probe.mjs +0 -66
  793. package/scripts/_dbg-team-drill.mjs +0 -173
  794. package/scripts/_dbg-town-alarm-e2e.mjs +0 -40
  795. package/scripts/_dbg-town-beauty-shots.mjs +0 -54
  796. package/scripts/_dbg-town-daq-shot.mjs +0 -26
  797. package/scripts/_dbg-town-full-e2e.mjs +0 -104
  798. package/scripts/_dbg-town-gate.mjs +0 -44
  799. package/scripts/_dbg-town-ins-probe.mjs +0 -37
  800. package/scripts/_dbg-town-perf.mjs +0 -50
  801. package/scripts/_dbg-town-polish-shots.mjs +0 -82
  802. package/scripts/_dbg-town-realtime.mjs +0 -42
  803. package/scripts/_dbg-town-shot.py +0 -25
  804. package/scripts/_dbg-town-shot3.mjs +0 -17
  805. package/scripts/_dbg-town-truth.mjs +0 -37
  806. package/scripts/_dbg-town-truth2.mjs +0 -27
  807. package/scripts/_dbg-transform-audit.mjs +0 -98
  808. package/scripts/_dbg-trend-expand-test.mjs +0 -38
  809. package/scripts/_dbg-twindaq-focus.mjs +0 -81
  810. package/scripts/_dbg-ui-polish-shot.mjs +0 -43
  811. package/scripts/_dbg-ui-polish-verify1.mjs +0 -92
  812. package/scripts/_dbg-ui-polish-verify2.mjs +0 -50
  813. package/scripts/_dbg-ui-polish-verify3.mjs +0 -51
  814. package/scripts/_dbg-ui-polish-verify4.mjs +0 -50
  815. package/scripts/_dbg-ui-shot.mjs +0 -26
  816. package/scripts/_dbg-ui-shots.mjs +0 -28
  817. package/scripts/_dbg-ui-survey.py +0 -52
  818. package/scripts/_dbg-unify-shot.mjs +0 -43
  819. package/scripts/_dbg-uplink-probe.mjs +0 -36
  820. package/scripts/_dbg-wizard-preview-shot.mjs +0 -58
  821. package/scripts/_dbg-wizard-ui-e2e.mjs +0 -93
  822. package/scripts/_dbg-ws-probe.mjs +0 -86
  823. package/scripts/_dbg-ws-shot2.mjs +0 -23
  824. package/scripts/_dbg-wsdot-sanity.mjs +0 -25
  825. package/scripts/_dev-stack.mjs +0 -46
  826. package/scripts/_http-driver-probe.mjs +0 -30
  827. package/scripts/_mqtt-driver-probe.mjs +0 -30
  828. package/scripts/_newdriver-rest-probe.mjs +0 -100
  829. package/scripts/_node-state-probe.mjs +0 -5
  830. package/scripts/_opcua-driver-probe.mjs +0 -31
  831. package/scripts/_rtu-debug.mjs +0 -41
  832. package/scripts/_rtu-direct.mjs +0 -6
  833. package/scripts/_rtu-driver-probe.mjs +0 -53
  834. package/scripts/_spike-pitui.mjs +0 -116
  835. package/scripts/_tmp-args-probe.mjs +0 -20
  836. package/scripts/_tmp-cyc-entry.mjs +0 -8
  837. package/scripts/_tmp-cyc-main.mjs +0 -5
  838. package/scripts/_tmp-cyc-mod.mjs +0 -2
  839. package/scripts/_tmp-cycle-a.mjs +0 -6
  840. package/scripts/_tmp-cycle-b.mjs +0 -2
  841. package/scripts/_tmp-cycle-probe.mjs +0 -4
  842. package/scripts/_tmp-entry-variant.mjs +0 -2
  843. package/scripts/_tmp-help-probe.mjs +0 -19
  844. package/scripts/_tmp-help-probe2.mjs +0 -2
  845. package/scripts/_tmp-trace-preload.mjs +0 -1
  846. package/scripts/_wizard-shots.mjs +0 -90
  847. package/scripts/acceptance-suite.py +0 -207
  848. package/scripts/aml-agent-bridge.ts +0 -230
  849. package/scripts/aml-industrial-loop.ts +0 -232
  850. package/scripts/build-film-devices.mjs +0 -227
  851. package/scripts/collab-live-test.py +0 -177
  852. package/scripts/debug-mcp-http.ts +0 -64
  853. package/scripts/demo-lead-worker.ts +0 -256
  854. package/scripts/demo-modes.ts +0 -415
  855. package/scripts/demo-omp-channel.ts +0 -135
  856. package/scripts/design-preflight.mjs +0 -223
  857. package/scripts/design-verify-templates.mjs +0 -110
  858. package/scripts/design-verify.mjs +0 -170
  859. package/scripts/dev-window.cmd +0 -6
  860. package/scripts/device-line-restore.mjs +0 -34
  861. package/scripts/diag-lead-status.ts +0 -101
  862. package/scripts/e2e-a2a-steer-live.mjs +0 -193
  863. package/scripts/e2e-dual-drive-comm.ts +0 -259
  864. package/scripts/e2e-full-scenario.ts +0 -321
  865. package/scripts/e2e-harness-consistency.ts +0 -204
  866. package/scripts/e2e-harness-provider-task.mjs +0 -126
  867. package/scripts/e2e-line-live.mjs +0 -144
  868. package/scripts/e2e-memory-persistence.ts +0 -320
  869. package/scripts/e2e-omp-modes.ts +0 -274
  870. package/scripts/e2e-omp-realtime.ts +0 -258
  871. package/scripts/e2e-plc-scenario.mjs +0 -292
  872. package/scripts/e2e-real-scenario.mjs +0 -466
  873. package/scripts/e2e-tab-close.mjs +0 -136
  874. package/scripts/e2e-token-ui.mjs +0 -149
  875. package/scripts/final-soup-run.py +0 -192
  876. package/scripts/final-soup-watch.py +0 -83
  877. package/scripts/i18n-codemod.mjs +0 -173
  878. package/scripts/i18n-fix-en.py +0 -28
  879. package/scripts/i18n-fix-en2.py +0 -31
  880. package/scripts/i18n-merge.mjs +0 -191
  881. package/scripts/migrate-local-time.mjs +0 -123
  882. package/scripts/omp-real-test.py +0 -328
  883. package/scripts/team-plugins-api-smoke.mjs +0 -149
  884. package/scripts/test-a2a-relay.mjs +0 -222
  885. package/scripts/test-aml-integration.ts +0 -159
  886. package/scripts/test-aml-job.ts +0 -174
  887. package/scripts/test-aml-unit.ts +0 -184
  888. package/scripts/test-api-client.ts +0 -108
  889. package/scripts/test-api-suite.mjs +0 -271
  890. package/scripts/test-block-consumption.mjs +0 -194
  891. package/scripts/test-cmd-render.mjs +0 -218
  892. package/scripts/test-collab-omp.mjs +0 -192
  893. package/scripts/test-config-precedence.ts +0 -124
  894. package/scripts/test-context-governor.ts +0 -176
  895. package/scripts/test-daq-frames.ts +0 -180
  896. package/scripts/test-daq-minio.ts +0 -77
  897. package/scripts/test-dedup-logic.ts +0 -132
  898. package/scripts/test-e2e-collaboration.ts +0 -262
  899. package/scripts/test-e2e-monitor.ts +0 -192
  900. package/scripts/test-event-history.ts +0 -112
  901. package/scripts/test-exec-modes.ts +0 -316
  902. package/scripts/test-fifo-realtime.mjs +0 -193
  903. package/scripts/test-final-e2e.mjs +0 -290
  904. package/scripts/test-goal-summary.ts +0 -202
  905. package/scripts/test-harness-liveness.ts +0 -109
  906. package/scripts/test-harness-terminal.ts +0 -164
  907. package/scripts/test-header-trail.mjs +0 -95
  908. package/scripts/test-hitl.ts +0 -360
  909. package/scripts/test-koda-restyle.mjs +0 -105
  910. package/scripts/test-lane-raw.ts +0 -67
  911. package/scripts/test-lanes-history-render.mjs +0 -138
  912. package/scripts/test-loop-omp.mjs +0 -154
  913. package/scripts/test-mdlite.ts +0 -53
  914. package/scripts/test-memory-brief-chronicle.ts +0 -180
  915. package/scripts/test-memory-rrf-mmr.ts +0 -114
  916. package/scripts/test-mock-collab.mjs +0 -226
  917. package/scripts/test-modern-render.mjs +0 -174
  918. package/scripts/test-omp-terminal.mjs +0 -187
  919. package/scripts/test-plugin-ext.ts +0 -173
  920. package/scripts/test-prompts-loader.ts +0 -56
  921. package/scripts/test-real-scenario.mjs +0 -290
  922. package/scripts/test-stream-render.ts +0 -37
  923. package/scripts/test-task-drawer.mjs +0 -204
  924. package/scripts/test-task-invariants.mjs +0 -169
  925. package/scripts/test-town-3d.mjs +0 -121
  926. package/scripts/test-town-layout.mjs +0 -200
  927. package/scripts/test-town-page.mjs +0 -136
  928. package/scripts/test-town-scene-math.ts +0 -169
  929. package/scripts/test-town-twin.mjs +0 -121
  930. package/scripts/test-town-upload.mjs +0 -89
  931. package/scripts/test-town-user-flow.mjs +0 -619
  932. package/scripts/test-town-world.mjs +0 -76
  933. package/scripts/test-town-wuwa.mjs +0 -198
  934. package/scripts/test-user-isolation.mjs +0 -193
  935. package/scripts/test-workshop-entries.ts +0 -370
  936. package/scripts/test-workspace-api.ts +0 -329
  937. package/scripts/test-ws-aep.mjs +0 -187
  938. package/scripts/test-ws-protocol.ts +0 -134
  939. package/scripts/town-demo-seed.mjs +0 -75
  940. package/scripts/town-scene-clear.mjs +0 -56
  941. package/scripts/verify-exec-modes-report.ts +0 -248
  942. package/scripts/verify-lead-mail.ts +0 -188
  943. package/scripts/verify-page-smoke.mjs +0 -87
  944. package/scripts/ws-test.mjs +0 -176
  945. package/scripts/ws-test.py +0 -4
@@ -34,9 +34,16 @@
34
34
  /* 油墨与纸张(亮:暖纸 —— editorial light;画布与油墨同为暖族,禁冷灰) */
35
35
  --ink: #0c0a09;
36
36
  --ink-soft: #4b463f;
37
+ /* 文字最淡一档(实测 5.0:1 @暖纸 / 5.45:1 @raised,达 AA) */
37
38
  --ink-faint: #6f6860;
39
+ /* ⚠️ --ink-fainter 是**纯装饰**令牌(分隔发丝线/刻度点/装饰底),
40
+ * **不得用作 color** —— 它的对比度(亮 2.53:1 / 暗 3.37:1)不达 WCAG AA 的 4.5:1。
41
+ * 全站文字用法已收敛到 --ink-faint;此处保留令牌是因为"装饰线就该淡",
42
+ * 把发丝线拉到 4.5:1 会让界面布满抢眼的线条(装饰变噪音)。 */
38
43
  --ink-fainter: #a29a90;
39
44
  --paper: #f6f4f1;
45
+ /* 键盘焦点环:画在元素外侧(outline-offset:2px),对比度取决于环绕背景 → 5.78:1 @暖纸 */
46
+ --focus-ring: #3f6094;
40
47
  --paper-raised: #fffefc;
41
48
  --paper-deep: #efebe5;
42
49
  --paper-tint: #e6e1d9;
@@ -141,6 +148,48 @@
141
148
  --aurora-c: rgb(200 184 224 / 12%);
142
149
  --aurora-veil: transparent;
143
150
 
151
+ /* ── v4 · 材质阶梯(Instrument Glass —— 对齐 macOS NSVisualEffectView 的三档语义)。
152
+ * 为什么分档:玻璃的"高级感"来自**同一屏上有明确的材质层级**,而不是每块都糊一样厚的模糊。
153
+ * 壳层最透(能看见背后的极光在流动)→ 面板中等(不启用 backdrop,见下)→ 浮层最实(要压住内容)。
154
+ * chrome = 侧栏/顶栏/页脚(常驻,占屏比小,值得付模糊成本)
155
+ * panel = 内容面板(数量多 × 面积大 → **不付 backdrop 成本**,靠半透底 + 折射边获得同一观感)
156
+ * float = 模态/抽屉/下拉/气泡(数量少,必须"浮起来") */
157
+ /* 不透明度经过**实测反推**(不是拍脑袋):玻璃是否"看得出来"取决于背后极光能透多少。
158
+ * 62% 时开/关玻璃的渲染差异只有 Δ亮度≈11(亮阶)/ ≈0.5(暗阶,几乎无感)→ 等于白做。
159
+ * 降到 44% 后极光清晰可见,同时文字对比度仍达标(极光本身是低饱和 9-14% alpha,
160
+ * 复合底色仍贴近纸面,--ink-faint 仍 ≈5:1)。 */
161
+ --mat-chrome-bg: color-mix(in srgb, var(--paper-raised) 44%, transparent);
162
+ --mat-panel-bg: color-mix(in srgb, var(--paper-raised) 78%, transparent);
163
+ --mat-float-bg: color-mix(in srgb, var(--paper-raised) 88%, transparent);
164
+
165
+ /* 振动(vibrancy):macOS 的毛玻璃不是"模糊",是"模糊 + 提饱和 + 提亮"。
166
+ * 只 blur 不 saturate 会发灰发脏 —— 这是廉价毛玻璃与系统级毛玻璃的分水岭。 */
167
+ --vibrancy-chrome: blur(30px) saturate(1.9) brightness(1.06);
168
+ --vibrancy-float: blur(26px) saturate(1.7) brightness(1.04);
169
+ --aurora-blur-legacy: blur(22px) saturate(1.1);
170
+
171
+ /* 玻璃物理三件套:顶部镜面高光 / 底部环境遮蔽 / 边缘折射发丝线。
172
+ * 只有高光没有遮蔽 = 塑料片;两者都有 = 有厚度的玻璃。 */
173
+ --glass-specular:
174
+ inset 0 1px 0 color-mix(in srgb, white 68%, transparent),
175
+ inset 0 -1px 0 color-mix(in srgb, var(--ink) 7%, transparent);
176
+ --glass-specular-soft:
177
+ inset 0 1px 0 color-mix(in srgb, white 52%, transparent),
178
+ inset 0 -1px 0 color-mix(in srgb, var(--ink) 5%, transparent);
179
+
180
+ /* 分层投影(接触层 + 环境层):单层大模糊投影是"网页感",两层叠加才是"物件感" */
181
+ --shadow-lift-1: 0 1px 2px rgb(12 10 9 / 5%), 0 4px 12px rgb(12 10 9 / 5%);
182
+ --shadow-lift-2: 0 2px 4px rgb(12 10 9 / 6%), 0 12px 32px rgb(12 10 9 / 10%);
183
+ --shadow-lift-3: 0 4px 8px rgb(12 10 9 / 7%), 0 24px 60px rgb(12 10 9 / 14%);
184
+
185
+ /* 弹簧动效:macOS 的交互反馈是弹簧不是缓动曲线。
186
+ * 前缀用 cubic-bezier 兜底(所有浏览器),linear() 版本给出真实过冲与回弹。 */
187
+ --spring-snap: cubic-bezier(0.34, 1.56, 0.64, 1);
188
+ --spring-soft: cubic-bezier(0.32, 0.72, 0, 1);
189
+ --spring-glide: cubic-bezier(0.22, 1, 0.36, 1);
190
+ /* 按压反馈位移(按钮按下去的"物理量";0.97 是 macOS 控件的量级) */
191
+ --press-scale: 0.972;
192
+
144
193
  /* 全局噪点(抵消数字平面的冷感;固定 pointer-events-none 覆盖,不进滚动容器) */
145
194
  --noise-opacity: 0.028;
146
195
 
@@ -160,7 +209,10 @@ html.dark {
160
209
  --ink: #e8eef8;
161
210
  --ink-soft: #b9c6d8;
162
211
  --ink-faint: #8fa0b5;
212
+ /* 与亮阶同规约:--ink-fainter 仅作装饰,不得用作 color(原 3.37:1 不达 AA) */
163
213
  --ink-fainter: #5f6e84;
214
+ /* 键盘焦点环:暗阶背景是深海军蓝,取高亮蓝保证可辨(8.68:1) */
215
+ --focus-ring: #6fb3ff;
164
216
  --paper: #070b13;
165
217
  --paper-raised: #0d1420;
166
218
  --paper-deep: #0a111d;
@@ -227,6 +279,28 @@ html.dark {
227
279
  --tick-c-fine: rgb(184 199 216 / 16%);
228
280
  --bench-edge: inset 0 1px 0 rgb(255 255 255 / 7%);
229
281
  --bench-top-rule: linear-gradient(90deg, var(--accent) 0 34px, rgb(232 238 248 / 18%) 34px, transparent 100%);
282
+
283
+ /* ── v4 · 材质阶梯(暗阶):同样按实测反推 —— 46% 时玻璃几乎不可见(Δ亮度≈0.5),
284
+ * 降到 32% 让深海军蓝画布上的极光真正透出来;文字层仍用 --ink-faint(7.0:1)保底。 */
285
+ --mat-chrome-bg: color-mix(in srgb, var(--paper-raised) 32%, transparent);
286
+ --mat-panel-bg: color-mix(in srgb, var(--paper-raised) 66%, transparent);
287
+ --mat-float-bg: color-mix(in srgb, var(--paper-raised) 82%, transparent);
288
+
289
+ /* 暗阶振动:不明亮化(brightness>1 会把深海军蓝洗成灰),改提饱和 + 极轻提亮 */
290
+ --vibrancy-chrome: blur(30px) saturate(1.8) brightness(1.06);
291
+ --vibrancy-float: blur(26px) saturate(1.5) brightness(1.02);
292
+
293
+ --glass-specular:
294
+ inset 0 1px 0 rgb(255 255 255 / 13%),
295
+ inset 0 -1px 0 rgb(0 0 0 / 26%);
296
+ --glass-specular-soft:
297
+ inset 0 1px 0 rgb(255 255 255 / 9%),
298
+ inset 0 -1px 0 rgb(0 0 0 / 20%);
299
+
300
+ /* 深色下投影要更黑更实才看得出层次 */
301
+ --shadow-lift-1: 0 1px 2px rgb(0 0 0 / 34%), 0 4px 12px rgb(0 0 0 / 26%);
302
+ --shadow-lift-2: 0 2px 4px rgb(0 0 0 / 40%), 0 12px 32px rgb(0 0 0 / 38%);
303
+ --shadow-lift-3: 0 4px 8px rgb(0 0 0 / 46%), 0 24px 60px rgb(0 0 0 / 46%);
230
304
  }
231
305
 
232
306
  /* 暗色选区:数据青底 + 墨字(替换亮色蜜桃纸;同一控制室语言) */
@@ -444,7 +518,7 @@ ul.task-list {
444
518
  }
445
519
 
446
520
  .task-item.done .task-text {
447
- color: var(--ink-fainter);
521
+ color: var(--ink-faint);
448
522
  text-decoration: line-through;
449
523
  }
450
524
 
@@ -802,7 +876,6 @@ ul.task-list {
802
876
  .aw-glass {
803
877
  background: var(--glass-bg);
804
878
  backdrop-filter: var(--glass-blur);
805
- -webkit-backdrop-filter: var(--glass-blur);
806
879
  border: 1px solid var(--glass-line);
807
880
  box-shadow: var(--glass-highlight), var(--shadow-float);
808
881
  border-radius: var(--radius-panel);
@@ -812,7 +885,6 @@ ul.task-list {
812
885
  .aw-frost {
813
886
  background: var(--frost-bg);
814
887
  backdrop-filter: var(--frost-blur);
815
- -webkit-backdrop-filter: var(--frost-blur);
816
888
  border: 1px solid var(--glass-line);
817
889
  border-radius: var(--radius-panel-sm);
818
890
  }
@@ -833,7 +905,6 @@ ul.task-list {
833
905
  .aw-frost {
834
906
  background: var(--paper-raised);
835
907
  backdrop-filter: none;
836
- -webkit-backdrop-filter: none;
837
908
  }
838
909
  }
839
910
 
@@ -843,7 +914,6 @@ ul.task-list {
843
914
  position: relative;
844
915
  background: var(--surface-glass);
845
916
  backdrop-filter: var(--aurora-blur);
846
- -webkit-backdrop-filter: var(--aurora-blur);
847
917
  border: 1px solid var(--glass-line);
848
918
  border-radius: var(--radius-panel-sm);
849
919
  box-shadow: var(--glass-edge);
@@ -864,7 +934,6 @@ ul.task-list {
864
934
  .aw-tile {
865
935
  background: var(--paper-raised);
866
936
  backdrop-filter: none;
867
- -webkit-backdrop-filter: none;
868
937
  }
869
938
  }
870
939
 
@@ -989,7 +1058,7 @@ ul.task-list {
989
1058
 
990
1059
  .pane-empty .pe-icon {
991
1060
  font-size: 28px;
992
- color: var(--ink-fainter);
1061
+ color: var(--ink-faint);
993
1062
  }
994
1063
 
995
1064
  .pane-empty .pe-title {
@@ -1040,7 +1109,7 @@ ul.task-list {
1040
1109
  font-weight: 600;
1041
1110
  letter-spacing: 0.04em;
1042
1111
  text-transform: uppercase;
1043
- color: var(--ink-fainter);
1112
+ color: var(--ink-faint);
1044
1113
  background: var(--paper-raised);
1045
1114
  }
1046
1115
 
@@ -1164,7 +1233,6 @@ ul.task-list {
1164
1233
  .ant-card {
1165
1234
  background: var(--surface-glass);
1166
1235
  backdrop-filter: var(--aurora-blur);
1167
- -webkit-backdrop-filter: var(--aurora-blur);
1168
1236
  border-color: var(--glass-line) !important;
1169
1237
  border-radius: var(--radius-panel) !important;
1170
1238
  box-shadow: var(--glass-edge);
@@ -1294,7 +1362,6 @@ ul.task-list {
1294
1362
  border-radius: var(--radius-panel) !important;
1295
1363
  background: var(--glass-bg);
1296
1364
  backdrop-filter: var(--glass-blur);
1297
- -webkit-backdrop-filter: var(--glass-blur);
1298
1365
  border: 1px solid var(--glass-line);
1299
1366
  }
1300
1367
 
@@ -1379,11 +1446,14 @@ ul.task-list {
1379
1446
  * 交互基线:focus-visible / 动效收敛
1380
1447
  * ============================================================ */
1381
1448
 
1382
- /* 键盘焦点:墨色描边(仅键盘导航时出现) */
1449
+ /* 键盘焦点:墨色描边(仅键盘导航时出现)
1450
+ * ⚠️ 这里**不能**设 border-radius —— 本选择器与 .aw-pill 同特异度(0,1,0)且位置更靠后,
1451
+ * 早先写的 `border-radius: 1px` 会在聚焦时把 9999px 的药丸压成方角(形状锁被破坏)。
1452
+ * 焦点环画在元素**外侧**(outline-offset),因此对比度取决于环绕背景而非按钮自身底色;
1453
+ * 用独立的 --focus-ring(而非 --accent):墨色药丸 + 墨色环 = 环不可见。 */
1383
1454
  :focus-visible {
1384
- outline: 2px solid var(--accent);
1385
- outline-offset: 1px;
1386
- border-radius: 1px;
1455
+ outline: 2px solid var(--focus-ring);
1456
+ outline-offset: 2px;
1387
1457
  }
1388
1458
 
1389
1459
  /* 面板拖拽调宽进行中(PaneSplitter 挂载):禁文本选中/统一列宽光标,防拖动误触 */
@@ -1681,7 +1751,7 @@ ul.task-list {
1681
1751
  font-size: var(--fs-micro);
1682
1752
  letter-spacing: var(--track-micro);
1683
1753
  text-transform: uppercase;
1684
- color: var(--ink-fainter);
1754
+ color: var(--ink-faint);
1685
1755
  }
1686
1756
 
1687
1757
  /* ── 仪表面板(aw-bench):全站面板统一形态 ── */
@@ -1690,7 +1760,6 @@ ul.task-list {
1690
1760
  padding: var(--pad-panel);
1691
1761
  background: var(--surface-glass);
1692
1762
  backdrop-filter: var(--aurora-blur);
1693
- -webkit-backdrop-filter: var(--aurora-blur);
1694
1763
  border: 1px solid var(--glass-line);
1695
1764
  border-radius: var(--radius-panel);
1696
1765
  box-shadow: var(--bench-edge);
@@ -1729,7 +1798,6 @@ ul.task-list {
1729
1798
  .aw-gauge-band {
1730
1799
  background: var(--paper-raised);
1731
1800
  backdrop-filter: none;
1732
- -webkit-backdrop-filter: none;
1733
1801
  }
1734
1802
  }
1735
1803
 
@@ -1748,7 +1816,7 @@ ul.task-list {
1748
1816
  font-size: var(--fs-micro);
1749
1817
  letter-spacing: var(--track-micro);
1750
1818
  text-transform: uppercase;
1751
- color: var(--ink-fainter);
1819
+ color: var(--ink-faint);
1752
1820
  }
1753
1821
 
1754
1822
  .aw-bench-title {
@@ -1769,7 +1837,7 @@ ul.task-list {
1769
1837
  font-family: var(--font-mono);
1770
1838
  font-size: var(--fs-micro);
1771
1839
  letter-spacing: 0.05em;
1772
- color: var(--ink-fainter);
1840
+ color: var(--ink-faint);
1773
1841
  white-space: nowrap;
1774
1842
  }
1775
1843
 
@@ -1811,7 +1879,6 @@ ul.task-list {
1811
1879
  overflow: hidden;
1812
1880
  background: var(--surface-glass);
1813
1881
  backdrop-filter: var(--aurora-blur);
1814
- -webkit-backdrop-filter: var(--aurora-blur);
1815
1882
  border: 1px solid var(--glass-line);
1816
1883
  border-radius: var(--radius-panel);
1817
1884
  box-shadow: var(--bench-edge);
@@ -1860,7 +1927,7 @@ ul.task-list {
1860
1927
  font-weight: 500;
1861
1928
  letter-spacing: var(--track-micro);
1862
1929
  text-transform: uppercase;
1863
- color: var(--ink-fainter);
1930
+ color: var(--ink-faint);
1864
1931
  text-overflow: ellipsis;
1865
1932
  white-space: nowrap;
1866
1933
  }
@@ -1921,7 +1988,7 @@ ul.task-list {
1921
1988
  font-size: var(--fs-micro);
1922
1989
  font-weight: 400;
1923
1990
  letter-spacing: 0.05em;
1924
- color: var(--ink-fainter);
1991
+ color: var(--ink-faint);
1925
1992
  }
1926
1993
 
1927
1994
  .aw-row-val {
@@ -1963,3 +2030,243 @@ html.dark .aw-bench--marked::after {
1963
2030
  .aw-gauge-band { animation: none; }
1964
2031
  }
1965
2032
 
2033
+ /* ============================================================
2034
+ * v4 · Instrument Glass —— 材质落地 + 玻璃物理 + 弹簧动效
2035
+ * ------------------------------------------------------------
2036
+ * 视觉母题(form 来自内容的哪里):这是一间**产线控制室**,屏上每块面板都是仪表。
2037
+ * 因此玻璃不是"iOS 磨砂贴纸",而是**仪表玻璃罩**:壳层是观察窗(能看见背后的极光在流动),
2038
+ * 面板是有厚度的玻璃面板(顶缘镜面高光 + 底缘环境遮蔽 + 发丝折射边),浮层是压在台面上的玻璃板。
2039
+ * 与既有 aw-bench / 量程刻度 / 读数码同源,不是新贴一层装饰。
2040
+ *
2041
+ * 三条纪律(决定"高级"还是"廉价"):
2042
+ * ① 振动 = 模糊 + 提饱和 + 提亮。只 blur 不 saturate 会发灰发脏。
2043
+ * ② 玻璃要有物理:只有高光没有遮蔽 = 塑料片;只有模糊没有边缘 = 糊。
2044
+ * ③ **backdrop-filter 只给壳层与浮层**。面板数量多 × 面积大,逐个付模糊成本会拖垮滚动 ——
2045
+ * 面板用半透底 + 折射边拿到同一观感(背后是平滑极光,肉眼几乎无差),这是刻意的性能取舍。
2046
+ * ============================================================ */
2047
+
2048
+ /* ── 壳层材质:侧栏 / 顶栏 / 页脚(常驻观察窗;最透 + 最强振动)── */
2049
+ .aw-chrome-glass {
2050
+ background: var(--mat-chrome-bg);
2051
+ backdrop-filter: var(--vibrancy-chrome);
2052
+ box-shadow: var(--glass-specular);
2053
+ }
2054
+
2055
+ /* ── 面板材质:内容面板(不付 backdrop 成本)──
2056
+ * aw-bench 原本逐个 backdrop-filter,面板一多就是成片的合成层;
2057
+ * 这里收回为半透底 + 折射边 —— 观感一致,滚动成本显著下降。 */
2058
+ .aw-bench,
2059
+ .aw-gauge-band {
2060
+ background: var(--mat-panel-bg);
2061
+ backdrop-filter: none;
2062
+ box-shadow: var(--glass-specular-soft);
2063
+ }
2064
+
2065
+ html.dark .aw-bench,
2066
+ html.dark .aw-gauge-band {
2067
+ box-shadow: var(--glass-specular-soft);
2068
+ }
2069
+
2070
+ /* ── 浮层材质:模态 / 抽屉 / 下拉 / 气泡(数量少,必须"浮起来")──
2071
+ * 内缘折射 + 分层投影 + 最强振动;这是全站唯一允许"厚玻璃"的地方。 */
2072
+ .ant-modal-content,
2073
+ .ant-drawer-content,
2074
+ .ant-dropdown-menu,
2075
+ .ant-select-dropdown,
2076
+ .ant-picker-dropdown,
2077
+ .ant-popover-inner,
2078
+ .ant-tooltip-inner,
2079
+ .ant-message-notice-content,
2080
+ .ant-notification-notice {
2081
+ background: var(--mat-float-bg) !important;
2082
+ backdrop-filter: var(--vibrancy-float);
2083
+ border: 1px solid var(--glass-line);
2084
+ box-shadow: var(--glass-specular), var(--shadow-lift-2) !important;
2085
+ }
2086
+
2087
+ /* 模态是全站最高一层:投影再厚一档 */
2088
+ .ant-modal-content {
2089
+ box-shadow: var(--glass-specular), var(--shadow-lift-3) !important;
2090
+ }
2091
+
2092
+ .ant-modal-mask,
2093
+ .ant-drawer-mask {
2094
+ background: color-mix(in srgb, var(--scrim) 78%, transparent) !important;
2095
+ backdrop-filter: blur(3px);
2096
+ }
2097
+
2098
+ /* 浮层里的分隔线别用实色,否则把玻璃"切"成两块 */
2099
+ .ant-dropdown-menu-item-divider,
2100
+ .ant-popover-inner .ant-popover-title {
2101
+ border-color: var(--glass-line) !important;
2102
+ }
2103
+
2104
+ /* ── 玻璃物理:可复用的折射边工具类(给自定义浮层/卡片用)── */
2105
+ .aw-glass-chrome { background: var(--mat-chrome-bg); box-shadow: var(--glass-specular); }
2106
+ .aw-glass-panel { background: var(--mat-panel-bg); box-shadow: var(--glass-specular-soft); }
2107
+ .aw-glass-float { background: var(--mat-float-bg); box-shadow: var(--glass-specular), var(--shadow-lift-2); }
2108
+
2109
+ /* ── 弹簧交互:按压反馈(全站按钮/药丸/卡片可点区)──
2110
+ * 瞬时压下(60ms)+ 弹簧回弹(320ms)。位移只有 2.8%,但这是"控件有物理"的关键信号 ——
2111
+ * 缺了它,再好看的静态界面点起来都像网页。 */
2112
+ @media (hover: hover) and (prefers-reduced-motion: no-preference) {
2113
+ .aw-pill,
2114
+ .aw-btn,
2115
+ .aw-mini-btn,
2116
+ .ant-btn,
2117
+ .ant-pagination-item,
2118
+ .ant-tag,
2119
+ .aw-liftable,
2120
+ .row-main {
2121
+ transition:
2122
+ transform 320ms var(--spring-snap),
2123
+ box-shadow var(--transition-base),
2124
+ background var(--transition-fast),
2125
+ border-color var(--transition-fast);
2126
+ }
2127
+
2128
+ .aw-pill:active:not(:disabled),
2129
+ .aw-btn:active:not(:disabled),
2130
+ .aw-mini-btn:active:not(:disabled),
2131
+ .ant-btn:active:not(:disabled),
2132
+ .ant-pagination-item:active,
2133
+ .aw-liftable:active {
2134
+ transform: scale(var(--press-scale));
2135
+ transition-duration: 60ms;
2136
+ transition-timing-function: ease-out;
2137
+ }
2138
+
2139
+ /* 悬停抬升:接触层 + 环境层双投影,不是单层大模糊 */
2140
+ .aw-liftable:hover,
2141
+ .row-main:hover {
2142
+ box-shadow: var(--shadow-lift-1);
2143
+ }
2144
+ }
2145
+
2146
+ /* ── 路由过渡 v2(page-glide):macOS 窗口式的"连续性",不是硬切淡入 ──
2147
+ * 出:轻微下沉 + 收缩(80ms);进:从 0.985 浮起 → 清晰(180ms 弹簧收尾)。
2148
+ * 幅度刻意极小(位移 3px / 缩放 1.5%)—— 可感知但不抢戏,这是"顺手"与"浮夸"的分界。
2149
+ * ⚠️ 刻意**不做 filter:blur()**:整页模糊会让每帧重绘整棵子树(daq/aml 这类长页面直接掉帧),
2150
+ * 而 scale+opacity 是纯合成层操作(0 重绘)。观感差异极小,代价差一个数量级。 */
2151
+ .page-fade-enter-active {
2152
+ transition:
2153
+ opacity 180ms var(--spring-glide),
2154
+ transform 260ms var(--spring-soft);
2155
+ }
2156
+
2157
+ .page-fade-leave-active {
2158
+ transition:
2159
+ opacity 80ms ease-in,
2160
+ transform 80ms ease-in;
2161
+ }
2162
+
2163
+ .page-fade-enter-from {
2164
+ opacity: 0;
2165
+ transform: translate3d(0, 3px, 0) scale(0.985);
2166
+ }
2167
+
2168
+ .page-fade-leave-to {
2169
+ opacity: 0;
2170
+ transform: translate3d(0, -2px, 0) scale(0.992);
2171
+ }
2172
+
2173
+ @media (prefers-reduced-motion: reduce) {
2174
+ .page-fade-enter-active,
2175
+ .page-fade-leave-active {
2176
+ transition: opacity 120ms ease;
2177
+ }
2178
+
2179
+ .page-fade-enter-from,
2180
+ .page-fade-leave-to {
2181
+ transform: none;
2182
+ filter: none;
2183
+ }
2184
+ }
2185
+
2186
+ /* ── View Transitions(渐进增强):支持该 API 的浏览器走真正的跨路由共享形变 ──
2187
+ * 与上面的 Vue 过渡共存:不支持时自动退回 page-fade,不产生双重动画。 */
2188
+ @view-transition {
2189
+ navigation: auto;
2190
+ }
2191
+
2192
+ ::view-transition-old(root) {
2193
+ animation: aw-vt-out 140ms ease-in both;
2194
+ }
2195
+
2196
+ ::view-transition-new(root) {
2197
+ animation: aw-vt-in 260ms var(--spring-soft) both;
2198
+ }
2199
+
2200
+ @keyframes aw-vt-out {
2201
+ to { opacity: 0; transform: scale(0.992); }
2202
+ }
2203
+
2204
+ @keyframes aw-vt-in {
2205
+ from { opacity: 0; transform: scale(0.988) translateY(4px); }
2206
+ }
2207
+
2208
+ @media (prefers-reduced-motion: reduce) {
2209
+ ::view-transition-old(root),
2210
+ ::view-transition-new(root) { animation: none; }
2211
+ }
2212
+
2213
+ /* ── 列表/卡片进场编排:把既有 stagger 的曲线换成弹簧,并补齐到 16 子项 ── */
2214
+ @media (prefers-reduced-motion: no-preference) {
2215
+ .aw-stagger > * {
2216
+ animation: aw-rise 0.46s var(--spring-soft) backwards;
2217
+ }
2218
+
2219
+ .aw-stagger > :nth-child(1) { animation-delay: 0ms; }
2220
+ .aw-stagger > :nth-child(2) { animation-delay: 26ms; }
2221
+ .aw-stagger > :nth-child(3) { animation-delay: 52ms; }
2222
+ .aw-stagger > :nth-child(4) { animation-delay: 78ms; }
2223
+ .aw-stagger > :nth-child(5) { animation-delay: 104ms; }
2224
+ .aw-stagger > :nth-child(6) { animation-delay: 130ms; }
2225
+ .aw-stagger > :nth-child(7) { animation-delay: 152ms; }
2226
+ .aw-stagger > :nth-child(8) { animation-delay: 174ms; }
2227
+ .aw-stagger > :nth-child(9) { animation-delay: 196ms; }
2228
+ .aw-stagger > :nth-child(10) { animation-delay: 218ms; }
2229
+ .aw-stagger > :nth-child(11) { animation-delay: 238ms; }
2230
+ .aw-stagger > :nth-child(12) { animation-delay: 258ms; }
2231
+ .aw-stagger > :nth-child(n+13) { animation-delay: 276ms; }
2232
+ }
2233
+
2234
+ /* ── 数字滚动/读数码的"仪器感"微动:值变化时短暂提亮(不位移,避免表格跳动)── */
2235
+ @media (prefers-reduced-motion: no-preference) {
2236
+ .aw-readout.is-tick {
2237
+ animation: aw-readout-tick 560ms var(--spring-glide);
2238
+ }
2239
+ }
2240
+
2241
+ @keyframes aw-readout-tick {
2242
+ 0% { color: var(--accent); }
2243
+ 100% { color: inherit; }
2244
+ }
2245
+
2246
+ /* ── 降级:用户要求降低透明度时,所有材质一律回退为实色(无障碍硬要求)── */
2247
+ @media (prefers-reduced-transparency: reduce) {
2248
+ .aw-chrome-glass,
2249
+ .aw-glass-chrome {
2250
+ background: var(--paper-raised);
2251
+ backdrop-filter: none;
2252
+ }
2253
+
2254
+ .aw-glass-panel,
2255
+ .aw-glass-float,
2256
+ .ant-modal-content,
2257
+ .ant-drawer-content,
2258
+ .ant-dropdown-menu,
2259
+ .ant-select-dropdown,
2260
+ .ant-popover-inner,
2261
+ .ant-tooltip-inner {
2262
+ background: var(--paper-raised) !important;
2263
+ backdrop-filter: none;
2264
+ }
2265
+
2266
+ .ant-modal-mask,
2267
+ .ant-drawer-mask {
2268
+ backdrop-filter: none;
2269
+ }
2270
+ }
2271
+
2272
+
@@ -435,15 +435,16 @@ const onAvatarMenu: MenuProps['onClick'] = async ({ key }) => {
435
435
  transition: background 0.3s ease, border-color 0.3s ease;
436
436
  }
437
437
 
438
- /* 顶栏玻璃:透出极光画布;下缘发丝线 + 微暗渐变保对比 */
438
+ /* 顶栏玻璃:透出极光画布;下缘发丝线 + 微暗渐变保对比
439
+ * v4:与侧栏同属壳层材质(同一观察窗),底部内阴影替代原先的顶部渐变 —— 玻璃的"厚度"来自遮蔽而非压暗 */
439
440
  .app-header-glass {
440
441
  position: sticky;
441
442
  top: 0;
442
443
  z-index: 30;
443
- background: linear-gradient(180deg, var(--frost-bg), color-mix(in srgb, var(--frost-bg) 72%, transparent));
444
- backdrop-filter: var(--aurora-blur);
445
- -webkit-backdrop-filter: var(--aurora-blur);
444
+ background: var(--mat-chrome-bg);
445
+ backdrop-filter: var(--vibrancy-chrome);
446
446
  border-bottom: 1px solid var(--glass-line);
447
+ box-shadow: var(--glass-specular);
447
448
  }
448
449
 
449
450
  .header-left,
@@ -164,10 +164,11 @@ const go = (key: string) => {
164
164
  top: 0;
165
165
  height: 100vh;
166
166
  overflow: hidden auto;
167
- background: var(--frost-bg);
168
- backdrop-filter: var(--aurora-blur);
169
- -webkit-backdrop-filter: var(--aurora-blur);
167
+ /* v4 壳层材质:最透的一档 + 强振动(能看见背后的极光在缓慢流动) */
168
+ background: var(--mat-chrome-bg);
169
+ backdrop-filter: var(--vibrancy-chrome);
170
170
  border-right: 1px solid var(--glass-line);
171
+ box-shadow: var(--glass-specular);
171
172
  z-index: 20;
172
173
  }
173
174
 
@@ -374,7 +375,7 @@ const go = (key: string) => {
374
375
  }
375
376
 
376
377
  .footer-line .sep {
377
- color: var(--ink-fainter);
378
+ color: var(--ink-faint);
378
379
  }
379
380
 
380
381
  .slide-fade-enter-active,
@@ -46,12 +46,29 @@ const merged = computed<EChartsOption>(() => ({
46
46
  color: EDITORIAL_PALETTE,
47
47
  ...props.option,
48
48
  }))
49
+
50
+ /**
51
+ * 更新语义 —— 决定"改数据"是增量合并还是整图重建。
52
+ *
53
+ * 问题:本组件的 merged 每次求值都是**新对象**,而 vue-echarts 7 把「引用变了」直接判为
54
+ * 全量替换(`notMerge: option !== oldOption`)。于是每次读数合批(≈2 次/秒)都会丢弃并重建
55
+ * series/axis/legend —— 当前数据量下只是 1-3ms,但代价随点数线性放大,且白白丢掉 ECharts
56
+ * 的过渡动画(重建 = 从零开始画,不是数据平滑移动)。
57
+ *
58
+ * 修法:
59
+ * - `notMerge: false` → 走增量合并,数据变化有过渡、组件实例复用;
60
+ * - `replaceMerge: ['series']` → 单独对 series 做「替换式合并」,补上 notMerge:false 的短板:
61
+ * series 数量**减少**时(如筛选后趋势线变少),旧 series 必须被移除,否则会残留幽灵曲线;
62
+ * - `lazyUpdate: true` → 同一 tick 内多次 setOption 合并到下一帧渲染,避免重复绘制。
63
+ */
64
+ const updateOptions = { notMerge: false, replaceMerge: ['series'], lazyUpdate: true } as const
49
65
  </script>
50
66
 
51
67
  <template>
52
68
  <VChart
53
69
  v-bind="$attrs"
54
70
  :option="merged"
71
+ :update-options="updateOptions"
55
72
  autoresize
56
73
  />
57
74
  </template>
@@ -923,7 +923,7 @@ onBeforeUnmount(() => {
923
923
  }
924
924
  .empty-icon {
925
925
  font-size: 22px;
926
- color: var(--ink-fainter);
926
+ color: var(--ink-faint);
927
927
  }
928
928
  .empty-title {
929
929
  margin: 0;
@@ -933,7 +933,7 @@ onBeforeUnmount(() => {
933
933
  .empty-hint {
934
934
  margin: 0;
935
935
  font-size: 11px;
936
- color: var(--ink-fainter);
936
+ color: var(--ink-faint);
937
937
  }
938
938
  .member-form { margin-top: 8px; }
939
939
  .mode-switch { margin-top: 4px; }
@@ -755,7 +755,7 @@ const saveAsTemplate = async (): Promise<void> => {
755
755
  height: 20px;
756
756
  padding: 0;
757
757
  font-size: 13px;
758
- color: var(--ink-fainter);
758
+ color: var(--ink-faint);
759
759
  cursor: pointer;
760
760
  background: transparent;
761
761
  border: 0;
@@ -781,7 +781,7 @@ const saveAsTemplate = async (): Promise<void> => {
781
781
  font-size: 11px;
782
782
  text-overflow: ellipsis;
783
783
  white-space: nowrap;
784
- color: var(--ink-fainter);
784
+ color: var(--ink-faint);
785
785
  text-align: left;
786
786
  cursor: copy; /* 点击复制完整路径(title 提示) */
787
787
  background: transparent;
@@ -796,7 +796,7 @@ const saveAsTemplate = async (): Promise<void> => {
796
796
  .tpl-hint {
797
797
  padding: 5px 2px 0;
798
798
  font-size: 10.5px;
799
- color: var(--ink-fainter);
799
+ color: var(--ink-faint);
800
800
  }
801
801
  .ws-hint { font-size: 11px; color: var(--ink-faint); }
802
802
  </style>
@@ -186,7 +186,6 @@ onBeforeUnmount(() => window.removeEventListener('keydown', onGlobalKey))
186
186
  overflow: hidden;
187
187
  background: var(--glass-bg);
188
188
  backdrop-filter: var(--glass-blur);
189
- -webkit-backdrop-filter: var(--glass-blur);
190
189
  border: 1px solid var(--glass-line);
191
190
  border-radius: var(--radius-panel);
192
191
  box-shadow: var(--glass-highlight), var(--shadow-float);
@@ -210,7 +209,7 @@ onBeforeUnmount(() => window.removeEventListener('keydown', onGlobalKey))
210
209
  border: none;
211
210
  outline: none;
212
211
  }
213
- .palette-input::placeholder { color: var(--ink-fainter); }
212
+ .palette-input::placeholder { color: var(--ink-faint); }
214
213
  .palette-list {
215
214
  max-height: 320px;
216
215
  overflow-y: auto;
@@ -549,7 +549,7 @@ const placeholder = computed(() =>
549
549
  .chip-hint {
550
550
  margin-left: auto;
551
551
  padding-left: 8px;
552
- color: var(--ink-fainter);
552
+ color: var(--ink-faint);
553
553
  }
554
554
 
555
555
  /* 可达性提示 chip:ok 绿 / info 蓝 / warn 琥珀 —— 状态不只靠颜色(附文字) */
@@ -587,7 +587,7 @@ const placeholder = computed(() =>
587
587
  border: 0;
588
588
  outline: none;
589
589
  }
590
- .composer-input::placeholder { color: var(--ink-fainter); }
590
+ .composer-input::placeholder { color: var(--ink-faint); }
591
591
 
592
592
  .composer-bar {
593
593
  display: flex;
@@ -700,7 +700,7 @@ const placeholder = computed(() =>
700
700
  .mention-role {
701
701
  flex: none;
702
702
  font-size: 10.5px;
703
- color: var(--ink-fainter);
703
+ color: var(--ink-faint);
704
704
  text-transform: uppercase;
705
705
  letter-spacing: 0.05em;
706
706
  }
@@ -711,7 +711,7 @@ const placeholder = computed(() =>
711
711
  font-weight: 600;
712
712
  letter-spacing: 0.06em;
713
713
  text-transform: uppercase;
714
- color: var(--ink-fainter);
714
+ color: var(--ink-faint);
715
715
  }
716
716
 
717
717
  /* 成员状态点:busy = 暖橙脉冲,idle = 静灰 */