agentworkshop 0.7.34 → 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.
- package/.output/.AgentWorkShop/aml-python/aml_eval.py +171 -0
- package/.output/.AgentWorkShop/aml-python/amlkit.py +120 -0
- package/.output/.AgentWorkShop/aml-python/requirements.txt +7 -0
- package/.output/.AgentWorkShop/aml-python/train-example.py +92 -0
- package/.output/.AgentWorkShop/schema.json +2 -1
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{DLljr7g0.js → 45zuyAso.js} +1 -1
- package/.output/public/_nuxt/4sIEbgcl.js +42 -0
- package/.output/public/_nuxt/8NMOXZOV.js +1 -0
- package/.output/public/_nuxt/BCGafdXT.js +2 -0
- package/.output/public/_nuxt/BDNMzG2s2.js +1 -0
- package/.output/public/_nuxt/{C-mDhyEd.js → BDmh31hl.js} +1 -1
- package/.output/public/_nuxt/BFkgkW8u.js +4 -0
- package/.output/public/_nuxt/BG8sCcwx.js +14 -0
- package/.output/public/_nuxt/{D8CqF0yy.js → BHA40aHa.js} +1 -1
- package/.output/public/_nuxt/BJHKLJJU.js +1 -0
- package/.output/public/_nuxt/{DoTdlVVe2.js → BN6iuJEg2.js} +1 -1
- package/.output/public/_nuxt/BNT8gYU92.js +4 -0
- package/.output/public/_nuxt/BU83-NnX.js +106 -0
- package/.output/public/_nuxt/BYhEUx8t.js +17 -0
- package/.output/public/_nuxt/BzHEilTt.js +1 -0
- package/.output/public/_nuxt/{Ct-WOVr4.js → C3J6FYKa.js} +1 -1
- package/.output/public/_nuxt/C3gwHTz0.js +1 -0
- package/.output/public/_nuxt/C4DWUZ6d2.js +1 -0
- package/.output/public/_nuxt/C5gUkRwn.js +1 -0
- package/.output/public/_nuxt/CClOy-Hz2.js +1 -0
- package/.output/public/_nuxt/{CUXCQXjG.js → CM12FuB42.js} +1 -1
- package/.output/public/_nuxt/{BSCpFtzG.js → CSkxz2NX.js} +1 -1
- package/.output/public/_nuxt/CWoJjWmZ.js +1 -0
- package/.output/public/_nuxt/CY9LbPCI.js +1 -0
- package/.output/public/_nuxt/CYWVXZTS.js +7 -0
- package/.output/public/_nuxt/CZiw7sEV.js +1 -0
- package/.output/public/_nuxt/C_OLzD09.js +1 -0
- package/.output/public/_nuxt/C__m4EhR.js +1 -0
- package/.output/public/_nuxt/Cbq-mryP.js +1 -0
- package/.output/public/_nuxt/{C4OAdbVK2.js → Cc_9VzD42.js} +1 -1
- package/.output/public/_nuxt/{BASN8nZ0.js → CdPzkOMV.js} +1 -1
- package/.output/public/_nuxt/Cec0Ua3F.js +1 -0
- package/.output/public/_nuxt/{DYKVPzN-.js → CoNpEq5X.js} +1 -1
- package/.output/public/_nuxt/CojCTLKD.js +1 -0
- package/.output/public/_nuxt/{B7wL3pDk.js → Crod5z2f.js} +1 -1
- package/.output/public/_nuxt/CzlMDL5H.js +13 -0
- package/.output/public/_nuxt/{G0qIw7Gq2.js → D0ZBQrN_2.js} +1 -1
- package/.output/public/_nuxt/{Lp7Ll94I.js → D1YDxZpZ.js} +1 -1
- package/.output/public/_nuxt/{Bc0AmjfT.js → D20Yamr4.js} +1 -1
- package/.output/public/_nuxt/D6uzXueg.js +2 -0
- package/.output/public/_nuxt/D9Oidm5I.js +1 -0
- package/.output/public/_nuxt/DAe0h2MB.js +1 -0
- package/.output/public/_nuxt/DBHNsT1Y.js +23 -0
- package/.output/public/_nuxt/DDShH71m.js +1 -0
- package/.output/public/_nuxt/DDgJcSET.js +19 -0
- package/.output/public/_nuxt/DHFrCUxA2.js +13 -0
- package/.output/public/_nuxt/{BcrN7QEl2.js → DIaZ2PTo2.js} +1 -1
- package/.output/public/_nuxt/DPnwL14Y.js +1 -0
- package/.output/public/_nuxt/DR12_WCA.js +3 -0
- package/.output/public/_nuxt/{B9nXmjSB.js → DUrecWPx.js} +4 -4
- package/.output/public/_nuxt/DVsjtsvZ2.js +1 -0
- package/.output/public/_nuxt/DYr1VMiQ.js +6 -0
- package/.output/public/_nuxt/DZtm4l-P2.js +1 -0
- package/.output/public/_nuxt/DdD9mCHM.js +1 -0
- package/.output/public/_nuxt/DeJykBFf.js +9 -0
- package/.output/public/_nuxt/{DoMxCWN52.js → DeyBFhKH2.js} +1 -1
- package/.output/public/_nuxt/DkGQ7lnb2.js +1 -0
- package/.output/public/_nuxt/DmqknNvV.js +18 -0
- package/.output/public/_nuxt/DnUuIR83.js +1 -0
- package/.output/public/_nuxt/DrYV5i68.js +1 -0
- package/.output/public/_nuxt/{B5S_UyaC.js → DtYHUi5Z.js} +1 -1
- package/.output/public/_nuxt/Dz_Q3Lpw2.js +1 -0
- package/.output/public/_nuxt/DzbFpZRk.js +3 -0
- package/.output/public/_nuxt/HBLJ-wei.js +1 -0
- package/.output/public/_nuxt/JCoYF4IJ.js +31 -0
- package/.output/public/_nuxt/JTLM-kqr2.js +1 -0
- package/.output/public/_nuxt/{BeIfu4N3.js → KZQX7xoM.js} +2 -2
- package/.output/public/_nuxt/S_fVQwJK.js +1 -0
- package/.output/public/_nuxt/TownView.0oLiQgTC.css +1 -0
- package/.output/public/_nuxt/YnQxK3eG.js +1 -0
- package/.output/public/_nuxt/_id_.D-SYuyZb.css +1 -0
- package/.output/public/_nuxt/_id_.hma_BU6T.css +1 -0
- package/.output/public/_nuxt/_wsId_.B12v3PhY.css +1 -0
- package/.output/public/_nuxt/aLLjF2K-2.js +1 -0
- package/.output/public/_nuxt/aWWIh8YL.js +24 -0
- package/.output/public/_nuxt/ahgEJu2R.js +1 -0
- package/.output/public/_nuxt/aml.COEKNNqK.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/a66fdef7-dcfd-453b-b1f6-543c7dfd98d5.json +1 -0
- package/.output/public/_nuxt/daq.B3265ZDn.css +1 -0
- package/.output/public/_nuxt/dcw.DLYZqEhT.css +1 -0
- package/.output/public/_nuxt/default.DE_vT238.css +1 -0
- package/.output/public/_nuxt/entry.BB-Eeh-J.css +1 -0
- package/.output/public/_nuxt/jZsY8yYz.js +1 -0
- package/.output/public/_nuxt/logs.CqFyMrJw.css +1 -0
- package/.output/public/_nuxt/pages.ooEzrMm9.css +1 -0
- package/.output/public/_nuxt/pdk8jLGT.js +1 -0
- package/.output/public/_nuxt/plugins.5e5chZ67.css +1 -0
- package/.output/public/_nuxt/pz2JDAM7.js +2 -0
- package/.output/public/_nuxt/settings.Dm3M0RLy.css +1 -0
- package/.output/public/_nuxt/town.DKIAhKnx.css +1 -0
- package/.output/public/_nuxt/users.CXnP2E08.css +1 -0
- package/.output/public/_nuxt/vRTjoWqd.js +1 -0
- package/.output/public/_nuxt/workshop.Jk5HxWPE.css +1 -0
- package/.output/public/_nuxt/zIGh7R49.js +75 -0
- package/.output/public/_nuxt/zq5t1vyX.js +1 -0
- package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
- package/.output/server/chunks/_/entity.mjs +174 -0
- package/.output/server/chunks/_/entity.mjs.map +1 -0
- package/.output/server/chunks/_/env-manager.mjs +162 -0
- package/.output/server/chunks/_/env-manager.mjs.map +1 -0
- package/.output/server/chunks/_/host-bindings.mjs +1 -1
- package/.output/server/chunks/_/nitro.mjs +1523 -1027
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
- package/.output/server/chunks/build/{TownView-BdHnAilw.mjs → TownView-jVazYOjN.mjs} +141 -141
- package/.output/server/chunks/build/{TownView-BdHnAilw.mjs.map → TownView-jVazYOjN.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-Cb845FHR.mjs → _id_-CfVosNg3.mjs} +136 -136
- package/.output/server/chunks/build/{_id_-Cb845FHR.mjs.map → _id_-CfVosNg3.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-fadFPl2i.mjs → _id_-Hwr4rZpr.mjs} +32 -32
- package/.output/server/chunks/build/{_id_-fadFPl2i.mjs.map → _id_-Hwr4rZpr.mjs.map} +1 -1
- package/.output/server/chunks/build/{_wsId_-CTZswnm5.mjs → _wsId_-BVg3bB77.mjs} +175 -165
- package/.output/server/chunks/build/{_wsId_-CTZswnm5.mjs.map → _wsId_-BVg3bB77.mjs.map} +1 -1
- package/.output/server/chunks/build/aml-BCSJCdX7.mjs +588 -0
- package/.output/server/chunks/build/aml-BCSJCdX7.mjs.map +1 -0
- package/.output/server/chunks/build/{daq-BvihjQyW.mjs → daq-C03Uu5UE.mjs} +108 -106
- package/.output/server/chunks/build/daq-C03Uu5UE.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-Ks2vJ4PF.mjs → dcw-6vEYVeje.mjs} +44 -44
- package/.output/server/chunks/build/{dcw-Ks2vJ4PF.mjs.map → dcw-6vEYVeje.mjs.map} +1 -1
- package/.output/server/chunks/build/{default-GgHt4O2R.mjs → default-hseyOqBT.mjs} +30 -27
- package/.output/server/chunks/build/{default-GgHt4O2R.mjs.map → default-hseyOqBT.mjs.map} +1 -1
- package/.output/server/chunks/build/{logs-CYBhkQwh.mjs → logs-B-xhuqln.mjs} +35 -35
- package/.output/server/chunks/build/{logs-CYBhkQwh.mjs.map → logs-B-xhuqln.mjs.map} +1 -1
- package/.output/server/chunks/build/{pages-C-6BRtv8.mjs → pages-BO7yZsXA.mjs} +18 -27
- package/.output/server/chunks/build/pages-BO7yZsXA.mjs.map +1 -0
- package/.output/server/chunks/build/{plugins-dZRegC7m.mjs → plugins-CUWmMdyt.mjs} +17 -17
- package/.output/server/chunks/build/{plugins-dZRegC7m.mjs.map → plugins-CUWmMdyt.mjs.map} +1 -1
- package/.output/server/chunks/build/{settings-CgDLkP3s.mjs → settings-DoQ2Oq3P.mjs} +43 -43
- package/.output/server/chunks/build/{settings-CgDLkP3s.mjs.map → settings-DoQ2Oq3P.mjs.map} +1 -1
- package/.output/server/chunks/build/{town-DJ-V5G9U.mjs → town-BOl6hs9B.mjs} +7 -7
- package/.output/server/chunks/build/{town-DJ-V5G9U.mjs.map → town-BOl6hs9B.mjs.map} +1 -1
- package/.output/server/chunks/build/useDaqStream-CIBaiGAl.mjs +1 -1
- package/.output/server/chunks/build/useDcwStream-CBbiYnWe.mjs +1 -1
- package/.output/server/chunks/build/{useWorkshopWs-CprkZEdq.mjs → useWorkshopWs-C_I7q9As.mjs} +110 -32
- package/.output/server/chunks/build/{useWorkshopWs-CprkZEdq.mjs.map → useWorkshopWs-C_I7q9As.mjs.map} +1 -1
- package/.output/server/chunks/build/{users-4nzxTjFT.mjs → users-fohSmF-J.mjs} +6 -6
- package/.output/server/chunks/build/{users-4nzxTjFT.mjs.map → users-fohSmF-J.mjs.map} +1 -1
- package/.output/server/chunks/build/{workshop-81xhz368.mjs → workshop-DX5-ldc4.mjs} +15 -15
- package/.output/server/chunks/build/{workshop-81xhz368.mjs.map → workshop-DX5-ldc4.mjs.map} +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +21 -8
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +58 -0
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +27 -6
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +49 -0
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +45 -0
- package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +40 -0
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +42 -0
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs +4 -22
- package/.output/server/chunks/routes/api/workshop/aml/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +4 -16
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +19 -34
- package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +41 -0
- package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +62 -0
- package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +63 -0
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +54 -0
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +46 -0
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +4 -4
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +12 -1
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -2
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/virtual/entry.mjs +103 -17
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +578 -507
- package/README.md +125 -51
- package/app/assets/css/main.css +329 -22
- package/app/components/AppHeader.vue +5 -4
- package/app/components/AppSidebar.vue +5 -4
- package/app/components/AwChart.vue +17 -0
- package/app/components/workshop/AgentLanesView.vue +2 -2
- package/app/components/workshop/ChannelSessionList.vue +3 -3
- package/app/components/workshop/CommandPalette.vue +1 -2
- package/app/components/workshop/Composer.vue +4 -4
- package/app/components/workshop/DaqNodeRow.vue +20 -1
- package/app/components/workshop/EventBlock.vue +3 -3
- package/app/components/workshop/MentionHoverCard.vue +1 -1
- package/app/components/workshop/MultiChannelView.vue +1 -1
- package/app/components/workshop/TaskBoardView.vue +5 -5
- package/app/components/workshop/TranscriptTimeline.vue +3 -3
- package/app/components/workshop/blocks/ClusterRoute.vue +3 -3
- package/app/components/workshop/blocks/ClusterStream.vue +1 -1
- package/app/components/workshop/blocks/ClusterTool.vue +1 -1
- package/app/components/workshop/lanes/LaneBlocks.vue +5 -2
- package/app/components/workshop/town/TownView.vue +0 -7
- package/app/composables/workshop/useClusteredBlocks.ts +22 -3
- package/app/composables/workshop/useEscClose.ts +44 -0
- package/app/config/index.ts +2 -1
- package/app/layouts/default.vue +25 -8
- package/app/pages/aml/index.vue +626 -4
- package/app/pages/daq/[id].vue +1 -1
- package/app/pages/daq/index.vue +10 -12
- package/app/pages/dcw/[id].vue +2 -2
- package/app/pages/dcw/index.vue +7 -11
- package/app/pages/index.vue +24 -6
- package/app/pages/logs/index.vue +2 -6
- package/app/pages/plugins/index.vue +1 -1
- package/app/pages/settings.vue +2 -2
- package/app/pages/town.vue +0 -2
- package/app/pages/users.vue +1 -1
- package/app/pages/workshop/index.vue +2 -2
- package/app/plugins/esc-close.client.ts +31 -0
- package/app/stores/workshop/events.ts +186 -36
- package/bin/aw.mjs +7 -2
- package/cli/aw.mjs +19 -34
- package/cli/commands/build.mjs +18 -1
- package/cli/commands/config.mjs +2 -0
- package/cli/commands/plugin.mjs +45 -18
- package/cli/commands/register.mjs +6 -2
- package/cli/commands/status.mjs +2 -1
- package/cli/commands/update.mjs +1 -1
- package/cli/commands/version.mjs +1 -1
- package/cli/core/args.mjs +76 -4
- package/cli/core/help.mjs +3 -1
- package/cli/core/meta.mjs +38 -0
- package/cli/core/post-build.mjs +96 -0
- package/cli/core/registry.mjs +6 -3
- package/config.yml +28 -26
- package/docs/aml.md +99 -0
- package/docs/cli.en.md +445 -0
- package/docs/cli.md +410 -220
- package/docs/full-test-plan.md +174 -0
- package/docs/multi-harness-architecture.md +248 -0
- package/docs/plugins.en.md +534 -0
- package/docs/plugins.md +531 -179
- package/docs/sdk.en.md +922 -0
- package/docs/sdk.md +725 -129
- package/i18n/dicts/aml.json +43 -1
- package/i18n/locales/en.ts +1928 -1885
- package/i18n/locales/zh-CN.ts +1928 -1885
- package/nuxt.config.ts +27 -2
- package/package.json +164 -153
- package/scripts/.mimosa/hook-status/sess_aeaecb58-8833-4b83-b93c-050467d21e03-d944d71bb3.json +14 -0
- package/scripts/_audit/aml-layout-diag.mjs +83 -0
- package/scripts/_audit/bump-version.mjs +51 -0
- package/scripts/_audit/channel-inspect.mjs +49 -0
- package/scripts/_audit/cleanup-apply.mjs +89 -0
- package/scripts/_audit/cleanup-plan.mjs +82 -0
- package/scripts/_audit/contrast-check.mjs +43 -0
- package/scripts/_audit/dcw-unrecorded-write.ts +1 -1
- package/scripts/_audit/design-shots.mjs +145 -0
- package/scripts/_audit/docs-font-probe.mjs +68 -0
- package/scripts/_audit/docs-probe.mjs +107 -0
- package/scripts/_audit/docs-shots.mjs +171 -0
- package/scripts/_audit/docs-v3-verify.mjs +255 -0
- package/scripts/_audit/docs-vue-lint.mjs +81 -0
- package/scripts/_audit/docs-vue-lint2.mjs +91 -0
- package/scripts/_audit/exp-cost-scaling.mjs +4 -1
- package/scripts/_audit/exp-envelope-and-png.mjs +2 -1
- package/scripts/_audit/exp-sweep-fairness.mjs +4 -2
- package/scripts/_audit/fix-settings-count.mjs +57 -0
- package/scripts/_audit/glass-verify.mjs +155 -0
- package/scripts/_audit/hydration-diff.mjs +104 -0
- package/scripts/_audit/hydration-head.mjs +36 -0
- package/scripts/_audit/hydration-probe.mjs +59 -0
- package/scripts/_audit/lead-matrix-test.mjs +172 -0
- package/scripts/_audit/plc-agent-task.mjs +74 -0
- package/scripts/_audit/plc-clean-scenario.mjs +434 -0
- package/scripts/_audit/plc-clean-shots.mjs +161 -0
- package/scripts/_audit/plc-fc10-probe.mjs +30 -0
- package/scripts/_audit/probe-binding.mjs +114 -103
- package/scripts/_audit/review-fix-verify.mjs +158 -0
- package/scripts/_audit/seed-demo.mjs +165 -0
- package/scripts/_audit/town-focus-shot.mjs +129 -0
- package/scripts/_audit/town-reposition.mjs +85 -0
- package/scripts/_audit/ts-resolve-hook.mjs +57 -22
- package/scripts/_audit/verify-cleanup.mjs +67 -0
- package/scripts/_audit/verify-release-pack.mjs +82 -0
- package/scripts/_audit/watchdog-recovery-test.mjs +127 -0
- package/scripts/_dbg-audit-all-pages.mjs +43 -43
- package/scripts/_dbg-configroot-audit.mjs +84 -84
- package/scripts/_dbg-daq-intervals-func.mjs +94 -94
- package/scripts/_dbg-daq-rowstyle-verify.mjs +112 -112
- package/scripts/_dbg-groups-ui-verify.mjs +122 -122
- package/scripts/_dbg-harness-e2e.mjs +92 -92
- package/scripts/_dbg-harness-ui-e2e.py +97 -97
- package/scripts/_dbg-hitl-timeout-e2e.mjs +93 -93
- package/scripts/_dbg-multiharness-live-e2e.mjs +254 -254
- package/scripts/_dbg-opslog-agent-e2e.mjs +194 -194
- package/scripts/_dbg-opt-team-e2e.mjs +133 -133
- package/scripts/_dbg-recipe-e2e.mjs +176 -176
- package/scripts/_dbg-recipe-stale-e2e.mjs +135 -135
- package/scripts/_dbg-render-perf.mjs +142 -142
- package/scripts/_dbg-render-regression.mjs +130 -130
- package/scripts/_dbg-town-smoke.mjs +54 -54
- package/scripts/aw-start-smoke.mjs +27 -8
- package/scripts/check-docs-sync.mjs +367 -0
- package/scripts/e2e-full-closedloop.mjs +36 -18
- package/scripts/production-closed-loop-e2e.mjs +300 -303
- package/scripts/test-cli-exit.mjs +129 -21
- package/scripts/test-daq-frame-race.mjs +144 -96
- package/scripts/test-events-index.mjs +176 -0
- package/scripts/test-lru.mjs +34 -11
- package/scripts/test-memory-month-query.mjs +11 -3
- package/scripts/test-plugin-hardening.mjs +7 -2
- package/scripts/test-plugin-lifecycle.mjs +173 -0
- package/scripts/test-rollback-index.mjs +76 -18
- package/scripts/test-sdk-surface.mjs +6 -3
- package/sdk/client.mjs +16 -7
- package/sdk/context.mjs +21 -9
- package/sdk/examples/line-sentinel/client.mjs +13 -6
- package/sdk/examples/line-sentinel/index.mjs +5 -2
- package/sdk/examples/ops-notifier/client.mjs +3 -1
- package/sdk/examples/sample-insight/client.mjs +4 -2
- package/sdk/index.d.mts +133 -16
- package/sdk/index.mjs +3 -2
- package/sdk/lifecycle.mjs +8 -3
- package/server/api/workshop/agent-tools/bindings/index.post.ts +22 -7
- package/server/api/workshop/aml/datasets/[id].delete.ts +39 -0
- package/server/api/workshop/aml/datasets/[id].get.ts +31 -9
- package/server/api/workshop/aml/datasets/[id].patch.ts +30 -0
- package/server/api/workshop/aml/entities/index.get.ts +13 -0
- package/server/api/workshop/aml/entities/prune.post.ts +28 -0
- package/server/api/workshop/aml/env/index.get.ts +13 -0
- package/server/api/workshop/aml/env/recheck.post.ts +14 -0
- package/server/api/workshop/aml/env/uv.post.ts +21 -0
- package/server/api/workshop/aml/env/venv.post.ts +24 -0
- package/server/api/workshop/aml/index.get.ts +14 -1
- package/server/api/workshop/aml/jobs/[id].delete.ts +44 -0
- package/server/api/workshop/aml/models/[id].delete.ts +35 -0
- package/server/api/workshop/aml/models/[id].patch.ts +30 -0
- package/server/services/workshop/agents/agent-interface.ts +3 -0
- package/server/services/workshop/agents/codex-agent.ts +4 -7
- package/server/services/workshop/agents/dsh-agent.ts +4 -7
- package/server/services/workshop/agents/opencode-agent.ts +5 -7
- package/server/services/workshop/aml/aml.repo.ts +18 -0
- package/server/services/workshop/aml/dataset-builder.ts +4 -0
- package/server/services/workshop/aml/entity.ts +365 -0
- package/server/services/workshop/aml/env-manager.ts +242 -0
- package/server/services/workshop/aml/job-orchestrator.ts +4 -15
- package/server/services/workshop/aml/model-registry.ts +6 -0
- package/server/services/workshop/aml/python-runtime.ts +396 -62
- package/server/services/workshop/aml/runtime.ts +95 -4
- package/server/services/workshop/daq/bus/mqtt.adapter.ts +3 -1
- package/server/services/workshop/daq/daq-controller.ts +95 -47
- package/server/services/workshop/daq/daq-node.repo.ts +0 -10
- package/server/services/workshop/daq/daq-runtime.ts +0 -5
- package/server/services/workshop/json-store.mjs +35 -2
- package/server/services/workshop/plugins/host.mjs +14 -5
- package/server/services/workshop/runtime/manager.ts +28 -1
- package/server/services/workshop/runtime/scheduler-loop.ts +10 -1
- package/server/services/workshop/settings.ts +2 -0
- package/shared/config/home.mjs +58 -0
- package/shared/config/schema.json +2 -1
- package/shared/lru.mjs +4 -1
- package/.output/public/_nuxt/-6OnbLFb.js +0 -1
- package/.output/public/_nuxt/-nb2uqVg.js +0 -1
- package/.output/public/_nuxt/4bHdIqEg.js +0 -18
- package/.output/public/_nuxt/6PZPfFcO.js +0 -17
- package/.output/public/_nuxt/BBBtwOpo.js +0 -9
- package/.output/public/_nuxt/BBwMH_hG.js +0 -7
- package/.output/public/_nuxt/BDUjyaF4.js +0 -42
- package/.output/public/_nuxt/BNXfwXpE.js +0 -1
- package/.output/public/_nuxt/BN_PdN3J.js +0 -24
- package/.output/public/_nuxt/BSSUlJnx2.js +0 -1
- package/.output/public/_nuxt/BWSE6hR6.js +0 -1
- package/.output/public/_nuxt/BZGNTgTQ2.js +0 -1
- package/.output/public/_nuxt/BZv4RFYN.js +0 -1
- package/.output/public/_nuxt/BcmbLh2z2.js +0 -1
- package/.output/public/_nuxt/BfGc7TJp.js +0 -1
- package/.output/public/_nuxt/BgTB6h_q.js +0 -2
- package/.output/public/_nuxt/BkLJA9J5.js +0 -1
- package/.output/public/_nuxt/Bp5luxkg2.js +0 -1
- package/.output/public/_nuxt/BuCHayqN.js +0 -1
- package/.output/public/_nuxt/BuvcLKh1.js +0 -19
- package/.output/public/_nuxt/C3tCneTM.js +0 -1
- package/.output/public/_nuxt/C77oC8yC2.js +0 -7
- package/.output/public/_nuxt/C9f8QMp12.js +0 -1
- package/.output/public/_nuxt/CKfhtOt7.js +0 -13
- package/.output/public/_nuxt/CQvmN-Mi.js +0 -1
- package/.output/public/_nuxt/CUDrOuW7.js +0 -1
- package/.output/public/_nuxt/CZcC-gpk.js +0 -1
- package/.output/public/_nuxt/CbzsPO5H.js +0 -1
- package/.output/public/_nuxt/CdSOrh2c.js +0 -1
- package/.output/public/_nuxt/Cgx818r-.js +0 -1
- package/.output/public/_nuxt/Cjm7VogC.js +0 -1
- package/.output/public/_nuxt/Cm5mDxzH.js +0 -1
- package/.output/public/_nuxt/CmHzfVc5.js +0 -3
- package/.output/public/_nuxt/Cn3J3NXR.js +0 -23
- package/.output/public/_nuxt/Cno6kYiO2.js +0 -1
- package/.output/public/_nuxt/Cp6z0RN7.js +0 -1
- package/.output/public/_nuxt/CwqIxJGj.js +0 -2
- package/.output/public/_nuxt/D-Ca4BGY.js +0 -70
- package/.output/public/_nuxt/D0fhp-Ga.js +0 -75
- package/.output/public/_nuxt/D1z7i2UP.js +0 -31
- package/.output/public/_nuxt/DIaTPH1M.js +0 -1
- package/.output/public/_nuxt/DTYBfjRY.js +0 -1
- package/.output/public/_nuxt/DXRZPxGs.js +0 -1
- package/.output/public/_nuxt/DZzGarBE2.js +0 -13
- package/.output/public/_nuxt/DaMCzQhv.js +0 -1
- package/.output/public/_nuxt/DoLasgPj2.js +0 -1
- package/.output/public/_nuxt/DpojD719.js +0 -1
- package/.output/public/_nuxt/DsVcWfyR.js +0 -1
- package/.output/public/_nuxt/DtBu71ev.js +0 -32
- package/.output/public/_nuxt/Dy-mxvXY2.js +0 -1
- package/.output/public/_nuxt/DzuC31-i.js +0 -2
- package/.output/public/_nuxt/FQri3dV3.js +0 -1
- package/.output/public/_nuxt/ORt9oDIy2.js +0 -1
- package/.output/public/_nuxt/TownView.CtskuMXS.css +0 -1
- package/.output/public/_nuxt/VLI2Zy4t.js +0 -5
- package/.output/public/_nuxt/_id_.MbzdFygI.css +0 -1
- package/.output/public/_nuxt/_id_.hRYo-EAB.css +0 -1
- package/.output/public/_nuxt/_wsId_.gXMEOYgX.css +0 -1
- package/.output/public/_nuxt/aml.WU_bh87J.css +0 -1
- package/.output/public/_nuxt/arUY5dyq2.js +0 -4
- package/.output/public/_nuxt/builds/meta/adc365b6-f636-4a2b-9527-79819c1e874b.json +0 -1
- package/.output/public/_nuxt/daq.Bb6l44-O.css +0 -1
- package/.output/public/_nuxt/dcw.rXH2fc2Z.css +0 -1
- package/.output/public/_nuxt/default.jNT73_hq.css +0 -1
- package/.output/public/_nuxt/ekuGmQ7R.js +0 -1
- package/.output/public/_nuxt/entry.jFrFAWuA.css +0 -1
- package/.output/public/_nuxt/logs.DMOM-iHe.css +0 -1
- package/.output/public/_nuxt/niDwBOZW.js +0 -3
- package/.output/public/_nuxt/pMoIO6rr.js +0 -14
- package/.output/public/_nuxt/pages.Cc8GX9T1.css +0 -1
- package/.output/public/_nuxt/plugins.wIPyfPn-.css +0 -1
- package/.output/public/_nuxt/rqZ-1SoP.js +0 -2
- package/.output/public/_nuxt/settings.BCm4NZIc.css +0 -1
- package/.output/public/_nuxt/town.C_DsNW0J.css +0 -1
- package/.output/public/_nuxt/users.DuAt_Zwf.css +0 -1
- package/.output/public/_nuxt/vJ4FPb-_.js +0 -1
- package/.output/public/_nuxt/workshop.BJg84pOK.css +0 -1
- package/.output/server/chunks/build/aml-uBNIppIf.mjs +0 -508
- package/.output/server/chunks/build/aml-uBNIppIf.mjs.map +0 -1
- package/.output/server/chunks/build/daq-BvihjQyW.mjs.map +0 -1
- package/.output/server/chunks/build/pages-C-6BRtv8.mjs.map +0 -1
- package/scripts/_audit/.tmp/audit-data/dcws.json +0 -28
- package/scripts/_audit/.tmp/dcw-writes.json +0 -15650
- package/scripts/_audit/.tmp/dcws.json +0 -9033
- package/scripts/_audit/.tmp/pollution-backup/dcw-rollback.polluted.json +0 -470006
- package/scripts/_audit/.tmp/pollution-backup/dcws.polluted.json +0 -9085
- package/scripts/_audit/.tmp/probe-cwd.txt +0 -1
- package/scripts/_audit/awhome/commands/README.md +0 -3
- package/scripts/_audit/awhome/commands/hello.mjs +0 -12
- package/scripts/_audit/diag-cwd.ts +0 -20
- package/scripts/_audit/diag-cwd2.ts +0 -19
- package/scripts/_audit/hello.mjs +0 -12
- package/scripts/_audit/ndjson-partial-line-repro.mjs +0 -77
- package/scripts/_audit/opencode-await-ternary-repro.mjs +0 -20
- package/scripts/_audit/part-frag.txt +0 -84
- package/scripts/_audit/part-head.txt +0 -45
- package/scripts/_audit/probe-child.mjs +0 -17
- package/scripts/_audit/probe-envelope.mjs +0 -49
- package/scripts/_audit/probe-packlist.mjs +0 -67
- package/scripts/_audit/probe-routes.mjs +0 -47
- package/scripts/_audit/probe-routes2.mjs +0 -38
- package/scripts/_audit/probe.ts +0 -9
- package/scripts/_audit/probe2.ts +0 -6
- package/scripts/_audit/probe3.ts +0 -3
- package/scripts/_audit/probe4.ts +0 -3
- package/scripts/_audit/proj/.AgentWorkShop/commands/echoargs.mjs +0 -13
- package/scripts/_audit/proj/config.yml +0 -1
- package/scripts/_audit/run.mjs +0 -30
- package/scripts/_audit/tsconfig.probe.json +0 -24
- package/scripts/_audit/typecheck-out.txt +0 -466
- package/scripts/_daq-realtime-probe.mjs +0 -68
- package/scripts/_daq-warn-probe.mjs +0 -50
- package/scripts/_dbg-acc-1-setup.mjs +0 -57
- package/scripts/_dbg-acc-2-diag.mjs +0 -14
- package/scripts/_dbg-acc-2-intervals.mjs +0 -81
- package/scripts/_dbg-acc-3-daq.mjs +0 -48
- package/scripts/_dbg-acc-4-team.mjs +0 -92
- package/scripts/_dbg-acc-5-visual.mjs +0 -63
- package/scripts/_dbg-acc-5b-ws-town.mjs +0 -18
- package/scripts/_dbg-acc-5c-town.mjs +0 -12
- package/scripts/_dbg-acc-6-i18n.mjs +0 -19
- package/scripts/_dbg-agent-tools-audit.mjs +0 -154
- package/scripts/_dbg-agent-workflow-audit.mjs +0 -177
- package/scripts/_dbg-agents-dropdown-shot.py +0 -33
- package/scripts/_dbg-anim-verify.mjs +0 -81
- package/scripts/_dbg-app-shot.mjs +0 -48
- package/scripts/_dbg-autoframe.mjs +0 -103
- package/scripts/_dbg-availability-probe.ts +0 -11
- package/scripts/_dbg-beacon-final.mjs +0 -181
- package/scripts/_dbg-bind-bidi-e2e.mjs +0 -239
- package/scripts/_dbg-callout-near.mjs +0 -108
- package/scripts/_dbg-catalog-smoke.ts +0 -20
- package/scripts/_dbg-cf-line-shot.mjs +0 -18
- package/scripts/_dbg-chan-focus.mjs +0 -49
- package/scripts/_dbg-channel-plugin-ui.mjs +0 -94
- package/scripts/_dbg-cleanup.mjs +0 -31
- package/scripts/_dbg-closedloop-ui-shot.mjs +0 -61
- package/scripts/_dbg-codex-handshake.ts +0 -30
- package/scripts/_dbg-codex-probe.mjs +0 -58
- package/scripts/_dbg-codex-sandbox.ts +0 -58
- package/scripts/_dbg-codex-turn.ts +0 -65
- package/scripts/_dbg-collab-scenario-e2e.mjs +0 -185
- package/scripts/_dbg-config-smoke.ts +0 -28
- package/scripts/_dbg-console-audit.mjs +0 -61
- package/scripts/_dbg-console-probe.mjs +0 -23
- package/scripts/_dbg-context-inject-audit.mjs +0 -231
- package/scripts/_dbg-cpu-profile.mjs +0 -53
- package/scripts/_dbg-crash-recovery.mjs +0 -143
- package/scripts/_dbg-crop-shot.mjs +0 -16
- package/scripts/_dbg-cross-channel-e2e.mjs +0 -157
- package/scripts/_dbg-cross-team-visibility-e2e.mjs +0 -129
- package/scripts/_dbg-crush-probe.sh +0 -21
- package/scripts/_dbg-crush-spawn-probe.ts +0 -22
- package/scripts/_dbg-daq-acc-probe.mjs +0 -24
- package/scripts/_dbg-daq-attrib.mjs +0 -34
- package/scripts/_dbg-daq-bind-audit.mjs +0 -119
- package/scripts/_dbg-daq-cadence.mjs +0 -104
- package/scripts/_dbg-daq-debug.mjs +0 -22
- package/scripts/_dbg-daq-diag.mjs +0 -33
- package/scripts/_dbg-daq-e2e.mjs +0 -171
- package/scripts/_dbg-daq-film.mjs +0 -136
- package/scripts/_dbg-daq-filter-e2e.mjs +0 -109
- package/scripts/_dbg-daq-filter-e2e2.mjs +0 -62
- package/scripts/_dbg-daq-final-regression.mjs +0 -78
- package/scripts/_dbg-daq-frame-alarm.mjs +0 -49
- package/scripts/_dbg-daq-frame-ui.mjs +0 -62
- package/scripts/_dbg-daq-frame-ws.mjs +0 -72
- package/scripts/_dbg-daq-full-check.mjs +0 -179
- package/scripts/_dbg-daq-line-note-verify.mjs +0 -61
- package/scripts/_dbg-daq-linebanner-audit.mjs +0 -107
- package/scripts/_dbg-daq-pages-shot.mjs +0 -37
- package/scripts/_dbg-daq-perf.mjs +0 -61
- package/scripts/_dbg-daq-probe.mjs +0 -27
- package/scripts/_dbg-daq-recipe-e2e.mjs +0 -30
- package/scripts/_dbg-daq-redesign-shot.mjs +0 -88
- package/scripts/_dbg-daq-rows-probe.mjs +0 -26
- package/scripts/_dbg-daq-rowstate-e2e.mjs +0 -152
- package/scripts/_dbg-daq-rowstate-shot.mjs +0 -45
- package/scripts/_dbg-daq-rowstate-shot2.mjs +0 -38
- package/scripts/_dbg-daq-tpl.mjs +0 -144
- package/scripts/_dbg-dash-console-check.mjs +0 -49
- package/scripts/_dbg-dash-deep-probe.mjs +0 -61
- package/scripts/_dbg-dash-hitpoint.mjs +0 -44
- package/scripts/_dbg-dash-live-shot.mjs +0 -36
- package/scripts/_dbg-dash-shot.mjs +0 -21
- package/scripts/_dbg-dashboard-shot.mjs +0 -35
- package/scripts/_dbg-dcw-audit.mjs +0 -126
- package/scripts/_dbg-dcw-card-e2e.mjs +0 -108
- package/scripts/_dbg-dcw-channel-ui.mjs +0 -144
- package/scripts/_dbg-dcw-examples.mjs +0 -81
- package/scripts/_dbg-dcw-light-shot.mjs +0 -19
- package/scripts/_dbg-dcw-line-audit.mjs +0 -107
- package/scripts/_dbg-dcw-pause-tpl-audit.mjs +0 -161
- package/scripts/_dbg-dcw-pause-ui.mjs +0 -175
- package/scripts/_dbg-dcw-read-toolface.ts +0 -13
- package/scripts/_dbg-dcw-read-ui.mjs +0 -74
- package/scripts/_dbg-dcw-scene.mjs +0 -72
- package/scripts/_dbg-dcw-shot2.mjs +0 -14
- package/scripts/_dbg-dcw-twin-e2e.mjs +0 -192
- package/scripts/_dbg-diag-mock-loop.mjs +0 -89
- package/scripts/_dbg-diag-watch.mjs +0 -95
- package/scripts/_dbg-docs-site-shot.mjs +0 -32
- package/scripts/_dbg-dsh-probe.mjs +0 -31
- package/scripts/_dbg-dt-interact.mjs +0 -193
- package/scripts/_dbg-error-probe.mjs +0 -54
- package/scripts/_dbg-filter-light-verify.mjs +0 -54
- package/scripts/_dbg-final-acceptance-2.mjs +0 -72
- package/scripts/_dbg-final-acceptance.mjs +0 -192
- package/scripts/_dbg-final-agent-e2e.mjs +0 -151
- package/scripts/_dbg-final-features.mjs +0 -155
- package/scripts/_dbg-final-fixups.mjs +0 -62
- package/scripts/_dbg-final-full-e2e.mjs +0 -218
- package/scripts/_dbg-final-line-e2e.mjs +0 -173
- package/scripts/_dbg-final-shots.mjs +0 -32
- package/scripts/_dbg-final-t6-hitl.mjs +0 -38
- package/scripts/_dbg-final-visual.mjs +0 -29
- package/scripts/_dbg-fix-unused-imports.py +0 -41
- package/scripts/_dbg-focus-range.mjs +0 -115
- package/scripts/_dbg-fresh-scene-e2e.mjs +0 -125
- package/scripts/_dbg-fullchain-e2e.mjs +0 -178
- package/scripts/_dbg-gate-debug.mjs +0 -37
- package/scripts/_dbg-gif-encode.mjs +0 -111
- package/scripts/_dbg-gizmo.mjs +0 -95
- package/scripts/_dbg-glass-probe.mjs +0 -57
- package/scripts/_dbg-glass-shot.mjs +0 -50
- package/scripts/_dbg-glass-sweep.mjs +0 -25
- package/scripts/_dbg-glb-probe.mjs +0 -43
- package/scripts/_dbg-goose-probe.mjs +0 -33
- package/scripts/_dbg-goose-probe.sh +0 -10
- package/scripts/_dbg-hardening-probe.mjs +0 -90
- package/scripts/_dbg-harness-cancel-repro.mjs +0 -81
- package/scripts/_dbg-harness-ui-dbg.py +0 -49
- package/scripts/_dbg-harness-ui-shot.py +0 -109
- package/scripts/_dbg-hero-btn-probe.mjs +0 -21
- package/scripts/_dbg-hidden-check.mjs +0 -21
- package/scripts/_dbg-hmi-audit.mjs +0 -164
- package/scripts/_dbg-home-repro.mjs +0 -24
- package/scripts/_dbg-home-stack.mjs +0 -13
- package/scripts/_dbg-host.mjs +0 -16
- package/scripts/_dbg-huashu-survey.mjs +0 -31
- package/scripts/_dbg-huashu-survey2.mjs +0 -35
- package/scripts/_dbg-huashu-verify.mjs +0 -25
- package/scripts/_dbg-huashu-verify2.mjs +0 -26
- package/scripts/_dbg-hydration-detail.mjs +0 -18
- package/scripts/_dbg-i18n-debug.mjs +0 -27
- package/scripts/_dbg-i18n-debug2.mjs +0 -26
- package/scripts/_dbg-i18n-final.mjs +0 -42
- package/scripts/_dbg-i18n-scan.mjs +0 -38
- package/scripts/_dbg-infra-lifecycle.mjs +0 -44
- package/scripts/_dbg-interval-config.mjs +0 -156
- package/scripts/_dbg-interval-scenario.mjs +0 -126
- package/scripts/_dbg-kicker-check.mjs +0 -11
- package/scripts/_dbg-line-aura-shots.mjs +0 -54
- package/scripts/_dbg-line-control-e2e.mjs +0 -120
- package/scripts/_dbg-line-gate-audit.mjs +0 -108
- package/scripts/_dbg-line-live-e2e.mjs +0 -144
- package/scripts/_dbg-line-repo-test.ts +0 -10
- package/scripts/_dbg-line-scenario-e2e.mjs +0 -256
- package/scripts/_dbg-line-spawn.ts +0 -31
- package/scripts/_dbg-live-engine-probe.mjs +0 -80
- package/scripts/_dbg-login-debug.py +0 -23
- package/scripts/_dbg-login-e2e.mjs +0 -26
- package/scripts/_dbg-logs-ui-e2e.py +0 -126
- package/scripts/_dbg-mcp-bridge-probe.mjs +0 -147
- package/scripts/_dbg-modbus-latency.mjs +0 -22
- package/scripts/_dbg-mqtt-chain-e2e.mjs +0 -90
- package/scripts/_dbg-mqtt-publisher.mjs +0 -17
- package/scripts/_dbg-nav-rpg.mjs +0 -84
- package/scripts/_dbg-nav-shot.mjs +0 -28
- package/scripts/_dbg-nav.mjs +0 -27
- package/scripts/_dbg-oneshot-impl-probe.ts +0 -67
- package/scripts/_dbg-opencode-sse.mjs +0 -101
- package/scripts/_dbg-opencode-start.ts +0 -57
- package/scripts/_dbg-opslog-e2e.mjs +0 -121
- package/scripts/_dbg-opslog-shots.mjs +0 -62
- package/scripts/_dbg-optimization-e2e.mjs +0 -94
- package/scripts/_dbg-orbit.mjs +0 -58
- package/scripts/_dbg-overview-probe.sh +0 -31
- package/scripts/_dbg-panesplitter-fix-check.mjs +0 -62
- package/scripts/_dbg-perms-visual.mjs +0 -36
- package/scripts/_dbg-pg-tcp-probe.cjs +0 -27
- package/scripts/_dbg-phase-e3-monitor.mjs +0 -25
- package/scripts/_dbg-pi-spawn-probe.ts +0 -33
- package/scripts/_dbg-plc-agent-loop.ts +0 -102
- package/scripts/_dbg-plc-e2e.mjs +0 -171
- package/scripts/_dbg-plugin-agent-read.ts +0 -56
- package/scripts/_dbg-plugin-config-ui.mjs +0 -111
- package/scripts/_dbg-plugin-matrix.mjs +0 -212
- package/scripts/_dbg-plugin-panels-ui.mjs +0 -54
- package/scripts/_dbg-plugin-sink-rest.mjs +0 -70
- package/scripts/_dbg-plugin-sink-ui.mjs +0 -81
- package/scripts/_dbg-plugin-tools-inject.ts +0 -80
- package/scripts/_dbg-plugin-ui-wizard.mjs +0 -125
- package/scripts/_dbg-plugin-verify-e2e.mjs +0 -123
- package/scripts/_dbg-plugins-e2e.mjs +0 -101
- package/scripts/_dbg-pop-clamp-verify.mjs +0 -77
- package/scripts/_dbg-preset-e2e.mjs +0 -116
- package/scripts/_dbg-preview-console.mjs +0 -28
- package/scripts/_dbg-preview-minrepro.mjs +0 -156
- package/scripts/_dbg-preview-pixels.mjs +0 -93
- package/scripts/_dbg-prompts-hotreload-test.ts +0 -76
- package/scripts/_dbg-prompts-resolve-test.ts +0 -39
- package/scripts/_dbg-quality-pages-e2e.mjs +0 -84
- package/scripts/_dbg-query-cancel.ts +0 -12
- package/scripts/_dbg-qwen-acp-probe.mjs +0 -30
- package/scripts/_dbg-qwen-capture.mjs +0 -21
- package/scripts/_dbg-rail-tree-e2e.mjs +0 -183
- package/scripts/_dbg-real-driver-e2e.mjs +0 -55
- package/scripts/_dbg-redesign-shots.mjs +0 -34
- package/scripts/_dbg-registry-smoke.ts +0 -14
- package/scripts/_dbg-release-smoke.mjs +0 -104
- package/scripts/_dbg-repo-setup-verify.mjs +0 -31
- package/scripts/_dbg-resolve-probe.ts +0 -6
- package/scripts/_dbg-restart-persist.mjs +0 -41
- package/scripts/_dbg-retention-test.ts +0 -25
- package/scripts/_dbg-rollback-mgr-audit.mjs +0 -169
- package/scripts/_dbg-rpg.mjs +0 -71
- package/scripts/_dbg-sc001-dispatch.mjs +0 -63
- package/scripts/_dbg-scenario-final-shot.mjs +0 -24
- package/scripts/_dbg-scenario-phase-e2.mjs +0 -75
- package/scripts/_dbg-scenario-phase-e3.mjs +0 -96
- package/scripts/_dbg-scenario-phase1.mjs +0 -90
- package/scripts/_dbg-scenario-phase2.mjs +0 -105
- package/scripts/_dbg-scenario-phase3-monitor.mjs +0 -48
- package/scripts/_dbg-scenario-phase3.mjs +0 -111
- package/scripts/_dbg-scene-polish-shot.mjs +0 -118
- package/scripts/_dbg-selring-probe.mjs +0 -47
- package/scripts/_dbg-settings-draft-probe.mjs +0 -39
- package/scripts/_dbg-settings-probe.mjs +0 -33
- package/scripts/_dbg-setup-e2e.mjs +0 -88
- package/scripts/_dbg-sideinfo.mjs +0 -101
- package/scripts/_dbg-sim-keeper.mjs +0 -100
- package/scripts/_dbg-splitter.mjs +0 -88
- package/scripts/_dbg-swatch-check.mjs +0 -10
- package/scripts/_dbg-task-cancel-probe.mjs +0 -66
- package/scripts/_dbg-team-drill.mjs +0 -173
- package/scripts/_dbg-town-alarm-e2e.mjs +0 -40
- package/scripts/_dbg-town-beauty-shots.mjs +0 -54
- package/scripts/_dbg-town-daq-shot.mjs +0 -26
- package/scripts/_dbg-town-full-e2e.mjs +0 -104
- package/scripts/_dbg-town-gate.mjs +0 -44
- package/scripts/_dbg-town-ins-probe.mjs +0 -37
- package/scripts/_dbg-town-perf.mjs +0 -50
- package/scripts/_dbg-town-polish-shots.mjs +0 -82
- package/scripts/_dbg-town-realtime.mjs +0 -42
- package/scripts/_dbg-town-shot.py +0 -25
- package/scripts/_dbg-town-shot3.mjs +0 -17
- package/scripts/_dbg-town-truth.mjs +0 -37
- package/scripts/_dbg-town-truth2.mjs +0 -27
- package/scripts/_dbg-transform-audit.mjs +0 -98
- package/scripts/_dbg-trend-expand-test.mjs +0 -38
- package/scripts/_dbg-twindaq-focus.mjs +0 -81
- package/scripts/_dbg-ui-polish-shot.mjs +0 -43
- package/scripts/_dbg-ui-polish-verify1.mjs +0 -92
- package/scripts/_dbg-ui-polish-verify2.mjs +0 -50
- package/scripts/_dbg-ui-polish-verify3.mjs +0 -51
- package/scripts/_dbg-ui-polish-verify4.mjs +0 -50
- package/scripts/_dbg-ui-shot.mjs +0 -26
- package/scripts/_dbg-ui-shots.mjs +0 -28
- package/scripts/_dbg-ui-survey.py +0 -52
- package/scripts/_dbg-unify-shot.mjs +0 -43
- package/scripts/_dbg-uplink-probe.mjs +0 -36
- package/scripts/_dbg-wizard-preview-shot.mjs +0 -58
- package/scripts/_dbg-wizard-ui-e2e.mjs +0 -93
- package/scripts/_dbg-ws-probe.mjs +0 -86
- package/scripts/_dbg-ws-shot2.mjs +0 -23
- package/scripts/_dbg-wsdot-sanity.mjs +0 -25
- package/scripts/_dev-stack.mjs +0 -46
- package/scripts/_http-driver-probe.mjs +0 -30
- package/scripts/_mqtt-driver-probe.mjs +0 -30
- package/scripts/_newdriver-rest-probe.mjs +0 -100
- package/scripts/_node-state-probe.mjs +0 -5
- package/scripts/_opcua-driver-probe.mjs +0 -31
- package/scripts/_rtu-debug.mjs +0 -41
- package/scripts/_rtu-direct.mjs +0 -6
- package/scripts/_rtu-driver-probe.mjs +0 -53
- package/scripts/_spike-pitui.mjs +0 -116
- package/scripts/_tmp-args-probe.mjs +0 -20
- package/scripts/_tmp-cyc-entry.mjs +0 -8
- package/scripts/_tmp-cyc-main.mjs +0 -5
- package/scripts/_tmp-cyc-mod.mjs +0 -2
- package/scripts/_tmp-cycle-a.mjs +0 -6
- package/scripts/_tmp-cycle-b.mjs +0 -2
- package/scripts/_tmp-cycle-probe.mjs +0 -4
- package/scripts/_tmp-entry-variant.mjs +0 -2
- package/scripts/_tmp-help-probe.mjs +0 -19
- package/scripts/_tmp-help-probe2.mjs +0 -2
- package/scripts/_tmp-trace-preload.mjs +0 -1
- package/scripts/_wizard-shots.mjs +0 -90
- package/scripts/acceptance-suite.py +0 -207
- package/scripts/aml-agent-bridge.ts +0 -230
- package/scripts/aml-industrial-loop.ts +0 -232
- package/scripts/build-film-devices.mjs +0 -227
- package/scripts/collab-live-test.py +0 -177
- package/scripts/debug-mcp-http.ts +0 -64
- package/scripts/demo-lead-worker.ts +0 -256
- package/scripts/demo-modes.ts +0 -415
- package/scripts/demo-omp-channel.ts +0 -135
- package/scripts/design-preflight.mjs +0 -223
- package/scripts/design-verify-templates.mjs +0 -110
- package/scripts/design-verify.mjs +0 -170
- package/scripts/dev-window.cmd +0 -6
- package/scripts/device-line-restore.mjs +0 -34
- package/scripts/diag-lead-status.ts +0 -101
- package/scripts/e2e-a2a-steer-live.mjs +0 -193
- package/scripts/e2e-dual-drive-comm.ts +0 -259
- package/scripts/e2e-full-scenario.ts +0 -321
- package/scripts/e2e-harness-consistency.ts +0 -204
- package/scripts/e2e-harness-provider-task.mjs +0 -126
- package/scripts/e2e-line-live.mjs +0 -144
- package/scripts/e2e-memory-persistence.ts +0 -320
- package/scripts/e2e-omp-modes.ts +0 -274
- package/scripts/e2e-omp-realtime.ts +0 -258
- package/scripts/e2e-plc-scenario.mjs +0 -292
- package/scripts/e2e-real-scenario.mjs +0 -466
- package/scripts/e2e-tab-close.mjs +0 -136
- package/scripts/e2e-token-ui.mjs +0 -149
- package/scripts/final-soup-run.py +0 -192
- package/scripts/final-soup-watch.py +0 -83
- package/scripts/i18n-codemod.mjs +0 -173
- package/scripts/i18n-fix-en.py +0 -28
- package/scripts/i18n-fix-en2.py +0 -31
- package/scripts/i18n-merge.mjs +0 -191
- package/scripts/migrate-local-time.mjs +0 -123
- package/scripts/omp-real-test.py +0 -328
- package/scripts/team-plugins-api-smoke.mjs +0 -149
- package/scripts/test-a2a-relay.mjs +0 -222
- package/scripts/test-aml-integration.ts +0 -159
- package/scripts/test-aml-job.ts +0 -174
- package/scripts/test-aml-unit.ts +0 -184
- package/scripts/test-api-client.ts +0 -108
- package/scripts/test-api-suite.mjs +0 -271
- package/scripts/test-block-consumption.mjs +0 -194
- package/scripts/test-cmd-render.mjs +0 -218
- package/scripts/test-collab-omp.mjs +0 -192
- package/scripts/test-config-precedence.ts +0 -124
- package/scripts/test-context-governor.ts +0 -176
- package/scripts/test-daq-frames.ts +0 -180
- package/scripts/test-daq-minio.ts +0 -77
- package/scripts/test-dedup-logic.ts +0 -132
- package/scripts/test-e2e-collaboration.ts +0 -262
- package/scripts/test-e2e-monitor.ts +0 -192
- package/scripts/test-event-history.ts +0 -112
- package/scripts/test-exec-modes.ts +0 -316
- package/scripts/test-fifo-realtime.mjs +0 -193
- package/scripts/test-final-e2e.mjs +0 -290
- package/scripts/test-goal-summary.ts +0 -202
- package/scripts/test-harness-liveness.ts +0 -109
- package/scripts/test-harness-terminal.ts +0 -164
- package/scripts/test-header-trail.mjs +0 -95
- package/scripts/test-hitl.ts +0 -360
- package/scripts/test-koda-restyle.mjs +0 -105
- package/scripts/test-lane-raw.ts +0 -67
- package/scripts/test-lanes-history-render.mjs +0 -138
- package/scripts/test-loop-omp.mjs +0 -154
- package/scripts/test-mdlite.ts +0 -53
- package/scripts/test-memory-brief-chronicle.ts +0 -180
- package/scripts/test-memory-rrf-mmr.ts +0 -114
- package/scripts/test-mock-collab.mjs +0 -226
- package/scripts/test-modern-render.mjs +0 -174
- package/scripts/test-omp-terminal.mjs +0 -187
- package/scripts/test-plugin-ext.ts +0 -173
- package/scripts/test-prompts-loader.ts +0 -56
- package/scripts/test-real-scenario.mjs +0 -290
- package/scripts/test-stream-render.ts +0 -37
- package/scripts/test-task-drawer.mjs +0 -204
- package/scripts/test-task-invariants.mjs +0 -169
- package/scripts/test-town-3d.mjs +0 -121
- package/scripts/test-town-layout.mjs +0 -200
- package/scripts/test-town-page.mjs +0 -136
- package/scripts/test-town-scene-math.ts +0 -169
- package/scripts/test-town-twin.mjs +0 -121
- package/scripts/test-town-upload.mjs +0 -89
- package/scripts/test-town-user-flow.mjs +0 -619
- package/scripts/test-town-world.mjs +0 -76
- package/scripts/test-town-wuwa.mjs +0 -198
- package/scripts/test-user-isolation.mjs +0 -193
- package/scripts/test-workshop-entries.ts +0 -370
- package/scripts/test-workspace-api.ts +0 -329
- package/scripts/test-ws-aep.mjs +0 -187
- package/scripts/test-ws-protocol.ts +0 -134
- package/scripts/town-demo-seed.mjs +0 -75
- package/scripts/town-scene-clear.mjs +0 -56
- package/scripts/verify-exec-modes-report.ts +0 -248
- package/scripts/verify-lead-mail.ts +0 -188
- package/scripts/verify-page-smoke.mjs +0 -87
- package/scripts/ws-test.mjs +0 -176
- package/scripts/ws-test.py +0 -4
package/app/assets/css/main.css
CHANGED
|
@@ -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-
|
|
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-
|
|
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-
|
|
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(--
|
|
1385
|
-
outline-offset:
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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:
|
|
444
|
-
backdrop-filter: var(--
|
|
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
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
714
|
+
color: var(--ink-faint);
|
|
715
715
|
}
|
|
716
716
|
|
|
717
717
|
/* 成员状态点:busy = 暖橙脉冲,idle = 静灰 */
|