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.
- 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 +1568 -1043
- 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 -191
- 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 -300
- 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/base-agent.ts +9 -0
- package/server/services/workshop/agents/codex-agent.ts +743 -729
- 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 +18 -12
- package/server/services/workshop/runtime/agent-runtime.ts +32 -3
- 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/291ef3e6-fa6a-4dee-8f46-05da1aeab815.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-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
|
@@ -3,7 +3,7 @@ import http from 'node:http';
|
|
|
3
3
|
import https from 'node:https';
|
|
4
4
|
import { EventEmitter } from 'node:events';
|
|
5
5
|
import { Buffer as Buffer$1 } from 'node:buffer';
|
|
6
|
-
import { promises, existsSync, readFileSync, mkdirSync, writeFileSync, renameSync, readdirSync, statSync, watch as watch$1, copyFileSync, rmSync, cpSync, appendFileSync, accessSync, constants } from 'node:fs';
|
|
6
|
+
import { promises, existsSync, readFileSync, mkdirSync, writeFileSync, renameSync, readdirSync, statSync, watch as watch$1, copyFileSync, rmSync, chmodSync, cpSync, appendFileSync, accessSync, constants } from 'node:fs';
|
|
7
7
|
import { resolve as resolve$1, dirname as dirname$1, join, relative as relative$1, isAbsolute as isAbsolute$1, sep } from 'node:path';
|
|
8
8
|
import { pathToFileURL, fileURLToPath } from 'node:url';
|
|
9
9
|
import { copyFile, mkdir, writeFile as writeFile$1, readFile as readFile$2, rm } from 'node:fs/promises';
|
|
@@ -5107,7 +5107,7 @@ function _expandFromEnv(value) {
|
|
|
5107
5107
|
const _inlineRuntimeConfig = {
|
|
5108
5108
|
"app": {
|
|
5109
5109
|
"baseURL": "/",
|
|
5110
|
-
"buildId": "
|
|
5110
|
+
"buildId": "a66fdef7-dcfd-453b-b1f6-543c7dfd98d5",
|
|
5111
5111
|
"buildAssetsDir": "/_nuxt/",
|
|
5112
5112
|
"cdnURL": ""
|
|
5113
5113
|
},
|
|
@@ -5137,7 +5137,7 @@ const _inlineRuntimeConfig = {
|
|
|
5137
5137
|
"public": {
|
|
5138
5138
|
"appName": "AgentWorkShop",
|
|
5139
5139
|
"appTitle": "AgentWorkShop",
|
|
5140
|
-
"version": "0.7.
|
|
5140
|
+
"version": "0.7.37",
|
|
5141
5141
|
"description": "基于 Nuxt 4 的配置驱动运行范式",
|
|
5142
5142
|
"mode": "dev",
|
|
5143
5143
|
"apiBase": "/api",
|
|
@@ -6363,14 +6363,16 @@ function toQuery(query) {
|
|
|
6363
6363
|
// AgentWorkShop SDK — 服务端插件上下文工厂(宿主调用;插件经 setup(ctx) 获得)
|
|
6364
6364
|
// ------------------------------------------------------------
|
|
6365
6365
|
// ctx 形态(运行时完整变量面):
|
|
6366
|
-
// 身份 ctx.name / ctx.scope('
|
|
6367
|
-
// 钩子 ctx.hooks HookBus(生命周期 + event:*)
|
|
6366
|
+
// 身份 ctx.name / ctx.scope('builtin'|'project'|'user') / ctx.dir / ctx.sdkVersion
|
|
6367
|
+
// 钩子 ctx.hooks HookBus 门面(生命周期 + event:*) [SDK]
|
|
6368
6368
|
// 日志 ctx.logger { debug, info, warn, error } 插件名前缀 [SDK]
|
|
6369
|
-
// 配置 ctx.config { get
|
|
6369
|
+
// 配置 ctx.config { get,all,onChange,defineGroup,defineField,
|
|
6370
|
+
// removeGroup,removeField,groups,fields } [SDK]
|
|
6370
6371
|
// 存储 ctx.kv { get,set,all,bump } 内存态+防抖落盘 [SDK]
|
|
6371
6372
|
// 定时 ctx.timer { setInterval, setTimeout } 服务关闭自动回收 [SDK]
|
|
6372
6373
|
// 清理 ctx.onDispose(fn) / ctx.subscriptions [SDK]
|
|
6373
|
-
// 路由 ctx.route(method, path, handler) →
|
|
6374
|
+
// 路由 ctx.route(method, path, handler) → boolean [SDK]
|
|
6375
|
+
// /api/plugins/<name><path>;鉴权由插件入口 auth 字段声明
|
|
6374
6376
|
// 平台 ctx.api 平台 REST 客户端(lines/daq/dcw/twins/teams…) [SDK]
|
|
6375
6377
|
// 网络 ctx.http { get, post } 带超时 fetch(仅 http/https) [SDK]
|
|
6376
6378
|
// 事件 ctx.events { on(type,fn), off } scene 实时事件 [SDK]
|
|
@@ -6393,6 +6395,10 @@ function safeUrl(raw, timeoutMs = 8000) {
|
|
|
6393
6395
|
*/
|
|
6394
6396
|
function createPluginContext(opts) {
|
|
6395
6397
|
const { name, scope, dir, hooks, config, paths, emitter } = opts;
|
|
6398
|
+
// 宿主回收登记口(host.mjs perPluginDisposables)。**必须转发**:此前这里漏接
|
|
6399
|
+
// opts.onDispose,导致 ctx.onDispose / ctx.timer.* / ctx.subscriptions.add 登记的
|
|
6400
|
+
// 清理永不执行 —— 定时器泄漏 + 退出前 200ms 的 kv 写入丢失,而文档承诺"自动回收"。
|
|
6401
|
+
const hostOnDispose = typeof opts.onDispose === 'function' ? opts.onDispose : null;
|
|
6396
6402
|
// 规范化 logger:宿主实现缺级时兜底 no-op(插件可用全套 debug/info/warn/error)
|
|
6397
6403
|
const logger = {
|
|
6398
6404
|
debug: () => {},
|
|
@@ -6402,6 +6408,8 @@ function createPluginContext(opts) {
|
|
|
6402
6408
|
...(opts.logger ?? {}),
|
|
6403
6409
|
};
|
|
6404
6410
|
const onDispose = (fn) => {
|
|
6411
|
+
if (typeof fn !== 'function') return fn
|
|
6412
|
+
if (hostOnDispose) hostOnDispose(fn);
|
|
6405
6413
|
return fn
|
|
6406
6414
|
};
|
|
6407
6415
|
|
|
@@ -6410,11 +6418,13 @@ function createPluginContext(opts) {
|
|
|
6410
6418
|
setInterval: (fn, ms, ...rest) => {
|
|
6411
6419
|
const id = setInterval(fn, ms, ...rest);
|
|
6412
6420
|
if (typeof id === 'object' && id !== null && 'unref' in id) id.unref?.();
|
|
6421
|
+
onDispose(() => clearInterval(id));
|
|
6413
6422
|
return id
|
|
6414
6423
|
},
|
|
6415
6424
|
setTimeout: (fn, ms, ...rest) => {
|
|
6416
6425
|
const id = setTimeout(fn, ms, ...rest);
|
|
6417
6426
|
if (typeof id === 'object' && id !== null && 'unref' in id) id.unref?.();
|
|
6427
|
+
onDispose(() => clearTimeout(id));
|
|
6418
6428
|
return id
|
|
6419
6429
|
},
|
|
6420
6430
|
};
|
|
@@ -6448,6 +6458,11 @@ function createPluginContext(opts) {
|
|
|
6448
6458
|
clearTimeout(kvFlushTimer);
|
|
6449
6459
|
kvFlushTimer = setTimeout(flushKvNow, 200);
|
|
6450
6460
|
};
|
|
6461
|
+
// 关停兜底:取消挂起防抖并同步落盘(否则进程退出前 200ms 内的 kv.set 全部丢失)
|
|
6462
|
+
onDispose(() => {
|
|
6463
|
+
clearTimeout(kvFlushTimer);
|
|
6464
|
+
flushKvNow();
|
|
6465
|
+
});
|
|
6451
6466
|
|
|
6452
6467
|
const ctx = {
|
|
6453
6468
|
name,
|
|
@@ -6503,16 +6518,19 @@ function createPluginContext(opts) {
|
|
|
6503
6518
|
* visibleLineIds(user) → Set<lineId>|null(全量)
|
|
6504
6519
|
* listGrants(userId) → [{lineId,mode,grantedBy,grantedAt}]
|
|
6505
6520
|
* setGrants(userId, [{lineId,mode}]) → 写授权(需 admin 上下文)
|
|
6506
|
-
* 变更事件:
|
|
6521
|
+
* 变更事件:ctx.events.on('permissions:changed', fn)
|
|
6522
|
+
* ——宿主把平台事件统一加 `event:` 前缀,故订阅要走 ctx.events(它会补前缀),
|
|
6523
|
+
* 直接 ctx.hooks.on('permissions:changed') 永远不触发。 */
|
|
6507
6524
|
permissions: opts.permissions ?? {
|
|
6508
6525
|
lineMode: () => 'none',
|
|
6509
6526
|
visibleLineIds: () => new Set(),
|
|
6510
6527
|
listGrants: () => [],
|
|
6511
6528
|
setGrants: () => { throw new Error('[sdk] ctx.permissions 未由宿主注入') },
|
|
6512
6529
|
},
|
|
6513
|
-
/** 订阅式清理对象({ dispose(){} })集中登记 */
|
|
6530
|
+
/** 订阅式清理对象({ dispose(){} })集中登记(与 ctx.onDispose 同一回收队列) */
|
|
6514
6531
|
subscriptions: {
|
|
6515
6532
|
add: (d) => {
|
|
6533
|
+
onDispose(typeof d === 'function' ? d : (...a) => d.dispose?.(...a));
|
|
6516
6534
|
return d
|
|
6517
6535
|
},
|
|
6518
6536
|
},
|
|
@@ -6733,7 +6751,10 @@ function validatePluginSettings(pluginName, defs, { defaultGroup } = {}) {
|
|
|
6733
6751
|
// client?: './client.mjs', routes?: [{method,path,handler}] }
|
|
6734
6752
|
// —— ctx 由宿主注入,插件运行时零导入依赖(sdk/ 供类型与显式糖)。
|
|
6735
6753
|
//
|
|
6736
|
-
//
|
|
6754
|
+
// 启停状态机:<home>/plugins-state.json { version, updatedAt, disabled: string[] }
|
|
6755
|
+
// ⚠️ home = $AW_HOME 或 ~/.AgentWorkShop —— **不是**配置根。源码检出下两者不同:
|
|
6756
|
+
// configRoot=<repo>/.AgentWorkShop(数据/kv 在这里),home=~/.AgentWorkShop(状态在这里)。
|
|
6757
|
+
// 全局安装两者重合,所以旧注释写"配置根"时看不出问题。
|
|
6737
6758
|
// · 装载时跳过 disabled 插件(manifest 仍可见,enabled:false)
|
|
6738
6759
|
// · 状态文件变化(fs.watch)→ 热重载:全部 dispose/解绑 → 重新装载
|
|
6739
6760
|
// · CLI(aw plugin enable/disable) 与 Web 设置页均只写状态文件,服务自感知
|
|
@@ -6880,7 +6901,8 @@ async function seedRuntimeServices() {
|
|
|
6880
6901
|
servicesExt.register('plugins', async () => pluginManifest());
|
|
6881
6902
|
}
|
|
6882
6903
|
|
|
6883
|
-
// ---- 启停状态(
|
|
6904
|
+
// ---- 启停状态(单一事实源:<home>/plugins-state.json;CLI/Web/宿主三方读写) ----
|
|
6905
|
+
// 入参 homeDir 由 modePaths().homeDir 给出($AW_HOME 优先),**不是配置根**。
|
|
6884
6906
|
function statePathFor(homeDir) {
|
|
6885
6907
|
return join(homeDir, 'plugins-state.json')
|
|
6886
6908
|
}
|
|
@@ -6903,7 +6925,10 @@ function writeDisabledSet(homeDir, disabled) {
|
|
|
6903
6925
|
renameSync(tmp, p);
|
|
6904
6926
|
}
|
|
6905
6927
|
|
|
6906
|
-
/**
|
|
6928
|
+
/** 发现插件入口,三作用域。**同名 builtin 优先**(先扫先占,`seen` 去重),
|
|
6929
|
+
* 即优先级 builtin > project > user —— 与 CLI 指令注册表(cli/core/registry.mjs,
|
|
6930
|
+
* 后扫覆盖 → project > user > builtin)方向相反,勿照搬。
|
|
6931
|
+
* 实现见下方循环顺序 [builtin, project, user] + `if (seen.has(name)) continue`。 */
|
|
6907
6932
|
function discoverPluginDirs(cwd = process.cwd()) {
|
|
6908
6933
|
const { builtinDir, projectDir, userDir } = modePaths(cwd);
|
|
6909
6934
|
const out = [];
|
|
@@ -7102,9 +7127,11 @@ async function loadAllPlugins(host, { config, paths }) {
|
|
|
7102
7127
|
for (const e of groupsCheck.errors) host.logger.warn(`[${def.name}] 分组声明已跳过: ${e}`);
|
|
7103
7128
|
|
|
7104
7129
|
const emitter = {
|
|
7130
|
+
/** @returns {boolean} 注册结果(SDK 契约 `ctx.route(...) → boolean`,勿丢返回值) */
|
|
7105
7131
|
registerRoute: (n, m, p, h) => {
|
|
7106
|
-
host.routes.register(n, m, p, h);
|
|
7107
|
-
rec.routes.push({ method: String(m).toUpperCase(), path: p });
|
|
7132
|
+
const ok = host.routes.register(n, m, p, h);
|
|
7133
|
+
if (ok) rec.routes.push({ method: String(m).toUpperCase(), path: p });
|
|
7134
|
+
return ok
|
|
7108
7135
|
},
|
|
7109
7136
|
};
|
|
7110
7137
|
const perPluginDisposables = [];
|
|
@@ -7409,14 +7436,11 @@ async function doReload(host) {
|
|
|
7409
7436
|
}
|
|
7410
7437
|
}
|
|
7411
7438
|
const prevNames = [...host.plugins.keys()];
|
|
7412
|
-
//
|
|
7439
|
+
// 工具注销延后:先装载新集、后清「本轮未再装载」的旧插件工具。
|
|
7440
|
+
// 原先在装载前就全部注销 → 重载窗口内(秒级~数十秒)所有插件工具"未知工具",
|
|
7441
|
+
// 期间到达的 Agent 工具调用(daq:sample 自动诊断/kb_store 等)被误拒
|
|
7442
|
+
// (实测生产闭环 Stage D 撞窗失败)。同名工具装载时按"后注册者胜"覆盖,无残留。
|
|
7413
7443
|
const ompTools = await Promise.resolve().then(function () { return pluginTools; }).catch(() => null);
|
|
7414
|
-
for (const prev of prevNames) {
|
|
7415
|
-
try {
|
|
7416
|
-
ompTools?.unregisterPluginTools(prev);
|
|
7417
|
-
}
|
|
7418
|
-
catch { /* 注销失败不阻断重载 */ }
|
|
7419
|
-
}
|
|
7420
7444
|
host.plugins.clear();
|
|
7421
7445
|
host.routes = createRouteTable();
|
|
7422
7446
|
host.failures = [];
|
|
@@ -8101,6 +8125,61 @@ function ensureDataDir(cwd = process.cwd(), env = process.env) {
|
|
|
8101
8125
|
}
|
|
8102
8126
|
catch { /* 迁移失败不阻断 */ }
|
|
8103
8127
|
return dir
|
|
8128
|
+
}
|
|
8129
|
+
|
|
8130
|
+
/**
|
|
8131
|
+
* AML 平台数据根(<amlRoot>):**项目目录下的 ./aml**,与配置根(.AgentWorkShop)分离。
|
|
8132
|
+
*
|
|
8133
|
+
* 为什么单独一个根、而不是挂在 <configRoot>/data/aml 下:
|
|
8134
|
+
* - AML 的产物是「可移植的资产」——数据集数组、训练作业工作区、ONNX 模型工件。
|
|
8135
|
+
* 这些需要能被 git/rsync/打包带走、被外部 Python 工具直接读取、被人在资源管理器里
|
|
8136
|
+
* 打开查看;埋在 .AgentWorkShop/data 里(那是运行时状态目录,常被 GC/清理)不合适。
|
|
8137
|
+
* - uv 虚拟环境固定在 <amlRoot>/.venv,与数据集/模型同级,整个 ./aml 可以整体删除重建。
|
|
8138
|
+
*
|
|
8139
|
+
* 解析优先级:
|
|
8140
|
+
* ① AW_AML_DIR 环境变量(显式覆盖;测试隔离与自定义部署用)
|
|
8141
|
+
* ② repo 模式 → <检出根>/aml (cwd 向上找 config.yml + nuxt.config.ts)
|
|
8142
|
+
* ③ home 模式(全局安装) → <配置根>/aml (~/.AgentWorkShop/aml)
|
|
8143
|
+
* ④ 兜底 → <cwd>/aml
|
|
8144
|
+
*
|
|
8145
|
+
* @returns {{ dir: string, mode: 'env'|'repo'|'home'|'cwd', projectRoot: string|null }}
|
|
8146
|
+
*/
|
|
8147
|
+
function resolveAmlRoot({ cwd = process.cwd(), env = process.env } = {}) {
|
|
8148
|
+
if (env.AW_AML_DIR && String(env.AW_AML_DIR).trim()) {
|
|
8149
|
+
return { dir: resolve$1(String(env.AW_AML_DIR).trim()), mode: 'env', projectRoot: null }
|
|
8150
|
+
}
|
|
8151
|
+
if (env.AW_MODE !== 'home') {
|
|
8152
|
+
const repoRoot = findRepoRoot(cwd);
|
|
8153
|
+
if (repoRoot) return { dir: join(repoRoot, 'aml'), mode: 'repo', projectRoot: repoRoot }
|
|
8154
|
+
}
|
|
8155
|
+
const forceHome = env.AW_MODE === 'home';
|
|
8156
|
+
if (forceHome) return { dir: join(awHome(env), 'aml'), mode: 'home', projectRoot: null }
|
|
8157
|
+
// 非检出目录(既无 config.yml+nuxt.config.ts):配置根优先,最后才落 cwd
|
|
8158
|
+
const localRoot = findLocalConfigRoot(cwd);
|
|
8159
|
+
if (localRoot) return { dir: join(localRoot, 'aml'), mode: 'home', projectRoot: null }
|
|
8160
|
+
return { dir: join(resolve$1(cwd), 'aml'), mode: 'cwd', projectRoot: null }
|
|
8161
|
+
}
|
|
8162
|
+
|
|
8163
|
+
/** AML 数据根绝对路径(仅解析,不创建) */
|
|
8164
|
+
function amlDirFor(cwd = process.cwd(), env = process.env) {
|
|
8165
|
+
return resolveAmlRoot({ cwd, env }).dir
|
|
8166
|
+
}
|
|
8167
|
+
|
|
8168
|
+
/**
|
|
8169
|
+
* 确保 AML 数据根存在并落标准子目录骨架:
|
|
8170
|
+
* .venv/ uv 创建的解释器环境
|
|
8171
|
+
* datasets/<id>/ 数据集快照(spec.json/manifest.json/report.json/arrays/)
|
|
8172
|
+
* jobs/<id>/ 训练作业(workspace/run.log/artifacts/)
|
|
8173
|
+
* models/<id>/ 模型工件(model.onnx/io_spec.json)
|
|
8174
|
+
* runtime/ 运行时状态(uv 安装记录/环境探针缓存)
|
|
8175
|
+
* tools/ 项目本地自动安装的 uv 二进制(免管理员、不污染 PATH)
|
|
8176
|
+
*/
|
|
8177
|
+
function ensureAmlDir(cwd = process.cwd(), env = process.env) {
|
|
8178
|
+
const dir = amlDirFor(cwd, env);
|
|
8179
|
+
for (const sub of ['datasets', 'jobs', 'models', 'runtime', 'tools']) {
|
|
8180
|
+
mkdirSync(join(dir, sub), { recursive: true });
|
|
8181
|
+
}
|
|
8182
|
+
return dir
|
|
8104
8183
|
}
|
|
8105
8184
|
|
|
8106
8185
|
// ============================================================
|
|
@@ -8601,7 +8680,10 @@ class LruMap {
|
|
|
8601
8680
|
has(key) { return this.map.has(key) }
|
|
8602
8681
|
|
|
8603
8682
|
get(key) {
|
|
8604
|
-
if (!this.map.has(key)) {
|
|
8683
|
+
if (!this.map.has(key)) {
|
|
8684
|
+
this.misses += 1;
|
|
8685
|
+
return undefined
|
|
8686
|
+
}
|
|
8605
8687
|
// 访问即提升:删了重插(值不变),维持「尾部最新」
|
|
8606
8688
|
const v = this.map.get(key);
|
|
8607
8689
|
this.map.delete(key);
|
|
@@ -11634,16 +11716,49 @@ function loadJsonFile(filePath, fallback) {
|
|
|
11634
11716
|
}
|
|
11635
11717
|
}
|
|
11636
11718
|
|
|
11719
|
+
/**
|
|
11720
|
+
* 紧凑 vs 缩进的切换阈值(顶层元素数)。
|
|
11721
|
+
*
|
|
11722
|
+
* 为什么需要:`null, 2` 缩进对**小文件**是净收益(人可读、diff 友好、成本可忽略),
|
|
11723
|
+
* 但对**大库**是纯税:实测 DCW 回退账本 20000 锚 + 2000 记录 — 缩进 8.57 MB / 23.2 ms,
|
|
11724
|
+
* 紧凑 5.82 MB / 13.2 ms(体积 -32%、CPU -43%)。而它每个 1.5s 防抖窗就要整库重写一次,
|
|
11725
|
+
* 与 PLC 写 sweep 跑在同一个事件循环上 —— 缩进在这里换来的是几十毫秒的阻塞。
|
|
11726
|
+
*
|
|
11727
|
+
* 所以按规模自动选择:小库保持缩进(可读性),大库走紧凑(性能)。
|
|
11728
|
+
* 2000 是实测拐点量级:低于此的库序列化都在亚毫秒,缩进白拿。
|
|
11729
|
+
*/
|
|
11730
|
+
const PRETTY_MAX_ENTRIES = 2000;
|
|
11731
|
+
|
|
11732
|
+
/** 顶层元素数估算(数组取长度;对象取各数组属性长度之和)——用于选择序列化形态 */
|
|
11733
|
+
function entryCount(data) {
|
|
11734
|
+
if (Array.isArray(data)) return data.length
|
|
11735
|
+
if (data && typeof data === 'object') {
|
|
11736
|
+
let n = 0;
|
|
11737
|
+
for (const v of Object.values(data)) if (Array.isArray(v)) n += v.length;
|
|
11738
|
+
return n
|
|
11739
|
+
}
|
|
11740
|
+
return 0
|
|
11741
|
+
}
|
|
11742
|
+
|
|
11743
|
+
/** 按规模选择缩进(小库可读、大库省 CPU/IO) */
|
|
11744
|
+
function serializeJson(data) {
|
|
11745
|
+
return entryCount(data) > PRETTY_MAX_ENTRIES
|
|
11746
|
+
? JSON.stringify(data)
|
|
11747
|
+
: JSON.stringify(data, null, 2)
|
|
11748
|
+
}
|
|
11749
|
+
|
|
11637
11750
|
/**
|
|
11638
11751
|
* 原子落盘:写临时文件 → rename 替换;失败退回直写。
|
|
11752
|
+
* 序列化形态按库规模自动选择(见 serializeJson)。
|
|
11639
11753
|
* @param {string} filePath
|
|
11640
11754
|
* @param {unknown} data
|
|
11641
11755
|
*/
|
|
11642
11756
|
function saveJsonFileAtomic(filePath, data) {
|
|
11643
11757
|
mkdirSync(dirname$1(filePath), { recursive: true });
|
|
11644
11758
|
const tmp = `${filePath}.tmp-${process.pid}`;
|
|
11759
|
+
const payload = serializeJson(data);
|
|
11645
11760
|
try {
|
|
11646
|
-
writeFileSync(tmp,
|
|
11761
|
+
writeFileSync(tmp, payload, 'utf-8');
|
|
11647
11762
|
try {
|
|
11648
11763
|
renameSync(tmp, filePath);
|
|
11649
11764
|
return
|
|
@@ -11655,7 +11770,7 @@ function saveJsonFileAtomic(filePath, data) {
|
|
|
11655
11770
|
catch (tmpErr) {
|
|
11656
11771
|
console.error(`[json-store] 临时文件写入失败(${tmpErr.message}),退回直写`);
|
|
11657
11772
|
}
|
|
11658
|
-
writeFileSync(filePath,
|
|
11773
|
+
writeFileSync(filePath, payload, 'utf-8');
|
|
11659
11774
|
}
|
|
11660
11775
|
|
|
11661
11776
|
var __defProp$C = Object.defineProperty;
|
|
@@ -12079,10 +12194,6 @@ class DaqNodeRuntime {
|
|
|
12079
12194
|
this.lastPublishAt = 0;
|
|
12080
12195
|
this.lastIngestAt = 0;
|
|
12081
12196
|
}
|
|
12082
|
-
/** 仅重置下发游标(全局下发间隔变更时,让新缺省立刻可观测) */
|
|
12083
|
-
republish() {
|
|
12084
|
-
this.lastPublishAt = 0;
|
|
12085
|
-
}
|
|
12086
12197
|
/**
|
|
12087
12198
|
* 是否已到采样时点(网关调度用)。
|
|
12088
12199
|
* 网关每拍派发额度有限,先判到期再占用额度:未到期的节点零成本跳过,
|
|
@@ -12253,16 +12364,6 @@ class DaqNodeRepo {
|
|
|
12253
12364
|
log$u.error("[daq] \u5FEB\u7167\u843D\u76D8\u5931\u8D25:", err);
|
|
12254
12365
|
}
|
|
12255
12366
|
}
|
|
12256
|
-
/** 读数落盘防抖(采样循环每帧调用;5s 合并一次磁盘写) */
|
|
12257
|
-
flushDebounced(ms = 5e3) {
|
|
12258
|
-
var _a, _b;
|
|
12259
|
-
if (this.flushTimer) return;
|
|
12260
|
-
this.flushTimer = setTimeout(() => {
|
|
12261
|
-
this.flushTimer = null;
|
|
12262
|
-
this.flushNow();
|
|
12263
|
-
}, ms);
|
|
12264
|
-
(_b = (_a = this.flushTimer).unref) == null ? void 0 : _b.call(_a);
|
|
12265
|
-
}
|
|
12266
12367
|
}
|
|
12267
12368
|
const g$n = globalThis;
|
|
12268
12369
|
function getDaqNodeRepo() {
|
|
@@ -12669,6 +12770,21 @@ class DaqController {
|
|
|
12669
12770
|
__publicField$y(this, "siblingsCache", new LruMap(500));
|
|
12670
12771
|
/** 遥测 WS 推送(1s/设备节流):孪生状态/遥测事件化直推,前端全量轮询降级为断线兜底 */
|
|
12671
12772
|
__publicField$y(this, "twinPushAt", /* @__PURE__ */ new Map());
|
|
12773
|
+
/**
|
|
12774
|
+
* 帧查询的「内存读穿透」索引 —— 帧先入 frameBuffer 再广播 thumbUrl(contentUrl),
|
|
12775
|
+
* TSDB 为 500ms 防抖异步刷盘,收到 WS 立刻回查会在落库前 404,故查询侧先看 buffer。
|
|
12776
|
+
*
|
|
12777
|
+
* 为什么要有索引:早先 frameContent 直接线性扫 frameBuffer,而 frames() 更糟 ——
|
|
12778
|
+
* 它对每个 pending 行都调一次 framesFromBuffer(),即**在 O(n) 的外层里再套 O(n) 的全扫**
|
|
12779
|
+
* (n = FRAME_BUFFER_CAP = 2000):突发写入后缓冲全满时,单次 REST 查询 ≈ 4×10⁶ 次迭代
|
|
12780
|
+
* + 2000 次多余对象构造,而它和 250ms 采样 sweep 跑在同一个事件循环上。
|
|
12781
|
+
*
|
|
12782
|
+
* 现在:byNode 按节点分桶(范围查询只扫该节点的行),byKey 给出 (nodeId, tsMs) 的 O(1) 命中。
|
|
12783
|
+
* 两个索引与 frameBuffer 严格同生命周期 —— 所有 push/淘汰/flush 都必须经下面的私有方法,
|
|
12784
|
+
* 不允许直接操作 frameBuffer,否则索引会与缓冲漂移(表现为"刚采到的帧查不到")。
|
|
12785
|
+
*/
|
|
12786
|
+
__publicField$y(this, "frameByNode", /* @__PURE__ */ new Map());
|
|
12787
|
+
__publicField$y(this, "frameByKey", /* @__PURE__ */ new Map());
|
|
12672
12788
|
}
|
|
12673
12789
|
// ---------- 生命周期 ----------
|
|
12674
12790
|
ensureLoop() {
|
|
@@ -12857,7 +12973,7 @@ class DaqController {
|
|
|
12857
12973
|
const lineRun = (_b = (_a = getDaqHostPorts()) == null ? void 0 : _a.lineRun.activeRun(node.lineId)) != null ? _b : null;
|
|
12858
12974
|
if (lineRun) (_c = getDaqHostPorts()) == null ? void 0 : _c.lineRun.bumpTaggedSamples(node.lineId);
|
|
12859
12975
|
const metrics = (_d = f.metrics) != null ? _d : {};
|
|
12860
|
-
this.
|
|
12976
|
+
this.pushFrame({
|
|
12861
12977
|
nodeId: node.id,
|
|
12862
12978
|
tsMs,
|
|
12863
12979
|
kind: f.kind,
|
|
@@ -12872,8 +12988,7 @@ class DaqController {
|
|
|
12872
12988
|
metrics
|
|
12873
12989
|
});
|
|
12874
12990
|
if (this.frameBuffer.length > FRAME_BUFFER_CAP) {
|
|
12875
|
-
this.
|
|
12876
|
-
this.tsdbDropped += 1;
|
|
12991
|
+
if (this.evictFrames(FRAME_BUFFER_CAP) > 0) this.tsdbDropped += 1;
|
|
12877
12992
|
}
|
|
12878
12993
|
this.scheduleTsdbFlush();
|
|
12879
12994
|
this.evaluateMetricAlarms(node, tpl, metrics);
|
|
@@ -12963,13 +13078,6 @@ class DaqController {
|
|
|
12963
13078
|
}
|
|
12964
13079
|
this.emitController();
|
|
12965
13080
|
}
|
|
12966
|
-
/** 网关停止:全部节点置 offline */
|
|
12967
|
-
markAllOffline() {
|
|
12968
|
-
for (const n of this.repo.all()) {
|
|
12969
|
-
if (n.enabled) n.state = "offline";
|
|
12970
|
-
}
|
|
12971
|
-
this.emitController();
|
|
12972
|
-
}
|
|
12973
13081
|
/** 运行时注册表对账(仓库为权威:增删节点/启动即对齐;返回新建的运行时) */
|
|
12974
13082
|
syncRuntimes() {
|
|
12975
13083
|
const live = /* @__PURE__ */ new Set();
|
|
@@ -13100,8 +13208,9 @@ class DaqController {
|
|
|
13100
13208
|
}
|
|
13101
13209
|
}
|
|
13102
13210
|
}
|
|
13103
|
-
|
|
13104
|
-
|
|
13211
|
+
let pendingFrames = this.drainFrames();
|
|
13212
|
+
while (pendingFrames.length > 0) {
|
|
13213
|
+
const batch = pendingFrames;
|
|
13105
13214
|
let ok = false;
|
|
13106
13215
|
for (let attempt = 0; attempt < TSDB_WRITE_RETRIES && !ok; attempt++) {
|
|
13107
13216
|
try {
|
|
@@ -13117,6 +13226,7 @@ class DaqController {
|
|
|
13117
13226
|
}
|
|
13118
13227
|
}
|
|
13119
13228
|
}
|
|
13229
|
+
pendingFrames = this.drainFrames();
|
|
13120
13230
|
}
|
|
13121
13231
|
} finally {
|
|
13122
13232
|
this.tsdbWriting = false;
|
|
@@ -13176,10 +13286,6 @@ class DaqController {
|
|
|
13176
13286
|
setBroadcast(fn) {
|
|
13177
13287
|
this.broadcast = fn;
|
|
13178
13288
|
}
|
|
13179
|
-
onlineCount() {
|
|
13180
|
-
if (!this.running) return 0;
|
|
13181
|
-
return this.repo.all().filter((n) => n.enabled).length;
|
|
13182
|
-
}
|
|
13183
13289
|
controllerState() {
|
|
13184
13290
|
const queueLost = g_queueLost();
|
|
13185
13291
|
const nodes = this.repo.all();
|
|
@@ -13227,30 +13333,62 @@ class DaqController {
|
|
|
13227
13333
|
if (!node) throw Object.assign(new Error(`\u6570\u91C7\u8282\u70B9\u4E0D\u5B58\u5728: ${id}`), { status: 404 });
|
|
13228
13334
|
return getTsdb().query(id, opts);
|
|
13229
13335
|
}
|
|
13230
|
-
/**
|
|
13231
|
-
|
|
13232
|
-
|
|
13233
|
-
|
|
13234
|
-
|
|
13235
|
-
|
|
13336
|
+
/** 帧索引键((nodeId, tsMs) 唯一:同一节点同一毫秒只会有一帧) */
|
|
13337
|
+
static frameKey(nodeId, tsMs) {
|
|
13338
|
+
return `${nodeId}@${tsMs}`;
|
|
13339
|
+
}
|
|
13340
|
+
/** 入缓冲 + 同步三处索引 */
|
|
13341
|
+
pushFrame(row) {
|
|
13342
|
+
this.frameBuffer.push(row);
|
|
13343
|
+
const key = DaqController.frameKey(row.nodeId, row.tsMs);
|
|
13344
|
+
this.frameByKey.set(key, row);
|
|
13345
|
+
const bucket = this.frameByNode.get(row.nodeId);
|
|
13346
|
+
if (bucket) bucket.push(row);
|
|
13347
|
+
else this.frameByNode.set(row.nodeId, [row]);
|
|
13348
|
+
}
|
|
13349
|
+
/** 淘汰最旧若干行,并同步清理索引(避免索引持有已淘汰行的强引用 → 内存泄漏) */
|
|
13350
|
+
evictFrames(keepLast) {
|
|
13351
|
+
const excess = this.frameBuffer.length - keepLast;
|
|
13352
|
+
if (excess <= 0) return 0;
|
|
13353
|
+
const dropped = this.frameBuffer.splice(0, excess);
|
|
13354
|
+
for (const row of dropped) {
|
|
13355
|
+
const key = DaqController.frameKey(row.nodeId, row.tsMs);
|
|
13356
|
+
if (this.frameByKey.get(key) === row) this.frameByKey.delete(key);
|
|
13357
|
+
const bucket = this.frameByNode.get(row.nodeId);
|
|
13358
|
+
if (!bucket) continue;
|
|
13359
|
+
const idx = bucket.indexOf(row);
|
|
13360
|
+
if (idx >= 0) bucket.splice(idx, 1);
|
|
13361
|
+
if (bucket.length === 0) this.frameByNode.delete(row.nodeId);
|
|
13362
|
+
}
|
|
13363
|
+
return dropped.length;
|
|
13364
|
+
}
|
|
13365
|
+
/** 取走全部帧(刷盘用)并清空索引 */
|
|
13366
|
+
drainFrames() {
|
|
13367
|
+
if (this.frameBuffer.length === 0) return [];
|
|
13368
|
+
const batch = this.frameBuffer.splice(0, this.frameBuffer.length);
|
|
13369
|
+
this.frameByNode.clear();
|
|
13370
|
+
this.frameByKey.clear();
|
|
13371
|
+
return batch;
|
|
13372
|
+
}
|
|
13373
|
+
/** 单行 → 对外记录(纯映射,不做任何扫描) */
|
|
13374
|
+
static toFrameRecord(r) {
|
|
13236
13375
|
var _a, _b, _c, _d, _e;
|
|
13237
|
-
|
|
13238
|
-
|
|
13239
|
-
|
|
13240
|
-
|
|
13241
|
-
|
|
13242
|
-
|
|
13243
|
-
|
|
13244
|
-
|
|
13245
|
-
|
|
13246
|
-
|
|
13247
|
-
|
|
13248
|
-
|
|
13249
|
-
|
|
13250
|
-
|
|
13251
|
-
|
|
13252
|
-
|
|
13253
|
-
return out;
|
|
13376
|
+
return {
|
|
13377
|
+
at: r.tsMs,
|
|
13378
|
+
kind: r.kind,
|
|
13379
|
+
points: r.kind === "vector" ? DaqController.pointsFromMeta(r.meta) : void 0,
|
|
13380
|
+
metrics: r.metrics,
|
|
13381
|
+
meta: r.meta,
|
|
13382
|
+
deviceBindingId: (_a = r.deviceBindingId) != null ? _a : null,
|
|
13383
|
+
lineId: (_b = r.lineId) != null ? _b : null,
|
|
13384
|
+
productId: (_c = r.productId) != null ? _c : null,
|
|
13385
|
+
recipeId: (_d = r.recipeId) != null ? _d : null,
|
|
13386
|
+
runId: (_e = r.runId) != null ? _e : null
|
|
13387
|
+
};
|
|
13388
|
+
}
|
|
13389
|
+
/** (nodeId, tsMs) 精确命中未刷盘帧;O(1) */
|
|
13390
|
+
bufferedFrameAt(id, tsMs) {
|
|
13391
|
+
return this.frameByKey.get(DaqController.frameKey(id, tsMs));
|
|
13254
13392
|
}
|
|
13255
13393
|
/** 向量点列从 meta.points 还原(与 TSDB adapter 同规则:非数组/空/越界/非数值 → undefined) */
|
|
13256
13394
|
static pointsFromMeta(meta) {
|
|
@@ -13260,21 +13398,17 @@ class DaqController {
|
|
|
13260
13398
|
}
|
|
13261
13399
|
/** 节点帧历史(v2:向量/图像元数据;像素按需经 frameContent 从对象存储取) */
|
|
13262
13400
|
async frames(id, opts) {
|
|
13263
|
-
var _a;
|
|
13401
|
+
var _a, _b, _c, _d;
|
|
13264
13402
|
this.ensureLoop();
|
|
13265
13403
|
await tsdbReady;
|
|
13266
13404
|
const node = this.repo.byId(id);
|
|
13267
13405
|
if (!node) throw Object.assign(new Error(`\u6570\u91C7\u8282\u70B9\u4E0D\u5B58\u5728: ${id}`), { status: 404 });
|
|
13268
13406
|
const rows = await getTsdb().queryFrames(id, opts);
|
|
13269
13407
|
const seen = new Set(rows.map((r) => r.at));
|
|
13270
|
-
const
|
|
13271
|
-
|
|
13272
|
-
|
|
13273
|
-
|
|
13274
|
-
var _a2;
|
|
13275
|
-
return (_a2 = this.framesFromBuffer(id, r.tsMs)[0]) != null ? _a2 : null;
|
|
13276
|
-
}).filter((r) => r != null);
|
|
13277
|
-
return [...rows, ...pending].slice(0, Math.min(Math.max((_a = opts.limit) != null ? _a : 100, 1), 1e3));
|
|
13408
|
+
const toMs = (_a = opts.toMs) != null ? _a : Date.now();
|
|
13409
|
+
const fromMs = (_b = opts.fromMs) != null ? _b : 0;
|
|
13410
|
+
const pending = ((_c = this.frameByNode.get(id)) != null ? _c : []).filter((r) => (opts.kind == null || r.kind === opts.kind) && r.tsMs >= fromMs && r.tsMs <= toMs && !seen.has(r.tsMs)).sort((a, b) => b.tsMs - a.tsMs).map(DaqController.toFrameRecord);
|
|
13411
|
+
return [...rows, ...pending].slice(0, Math.min(Math.max((_d = opts.limit) != null ? _d : 100, 1), 1e3));
|
|
13278
13412
|
}
|
|
13279
13413
|
/** 帧内容(图像主图/缩略图;从对象存储读取后由 REST 流式返回) */
|
|
13280
13414
|
async frameContent(id, tsMs, thumb) {
|
|
@@ -13282,7 +13416,8 @@ class DaqController {
|
|
|
13282
13416
|
await tsdbReady;
|
|
13283
13417
|
const node = this.repo.byId(id);
|
|
13284
13418
|
if (!node) throw Object.assign(new Error(`\u6570\u91C7\u8282\u70B9\u4E0D\u5B58\u5728: ${id}`), { status: 404 });
|
|
13285
|
-
const
|
|
13419
|
+
const buffered = this.bufferedFrameAt(id, tsMs);
|
|
13420
|
+
const rows = buffered ? [DaqController.toFrameRecord(buffered)] : await getTsdb().queryFrames(id, { fromMs: tsMs - 1, toMs: tsMs + 1, limit: 5 });
|
|
13286
13421
|
if (rows.length === 0) rows.push(...await getTsdb().queryFrames(id, { fromMs: tsMs - 1, toMs: tsMs + 1, limit: 5 }));
|
|
13287
13422
|
const row = rows.find((r) => r.at === tsMs);
|
|
13288
13423
|
if (!row || row.kind !== "image") throw Object.assign(new Error(`\u5E27\u4E0D\u5B58\u5728: ${id}@${tsMs}`), { status: 404 });
|
|
@@ -22095,6 +22230,10 @@ function createAmlRepo(db) {
|
|
|
22095
22230
|
},
|
|
22096
22231
|
remove(id) {
|
|
22097
22232
|
db.prepare("DELETE FROM aml_datasets WHERE id = ?").run(id);
|
|
22233
|
+
},
|
|
22234
|
+
/** 元数据局部更新(备注;CRUD 的 U) */
|
|
22235
|
+
updateNote(id, note) {
|
|
22236
|
+
db.prepare("UPDATE aml_datasets SET note = ? WHERE id = ?").run(note, id);
|
|
22098
22237
|
}
|
|
22099
22238
|
},
|
|
22100
22239
|
// ----- jobs -----
|
|
@@ -22145,6 +22284,14 @@ function createAmlRepo(db) {
|
|
|
22145
22284
|
},
|
|
22146
22285
|
requeue(id) {
|
|
22147
22286
|
jobRetryBump.run(id);
|
|
22287
|
+
},
|
|
22288
|
+
remove(id) {
|
|
22289
|
+
db.prepare("DELETE FROM aml_jobs WHERE id = ?").run(id);
|
|
22290
|
+
},
|
|
22291
|
+
/** 删除作业时级联清实验谱系(否则实验行成为悬挂元数据) */
|
|
22292
|
+
removeExperimentsOf(jobId) {
|
|
22293
|
+
const r = db.prepare("DELETE FROM aml_experiments WHERE job_id = ?").run(jobId);
|
|
22294
|
+
return Number(r.changes);
|
|
22148
22295
|
}
|
|
22149
22296
|
},
|
|
22150
22297
|
// ----- experiments -----
|
|
@@ -22238,23 +22385,75 @@ function createAmlRepo(db) {
|
|
|
22238
22385
|
},
|
|
22239
22386
|
markPruned(id) {
|
|
22240
22387
|
modelPrune.run(id);
|
|
22388
|
+
},
|
|
22389
|
+
remove(id) {
|
|
22390
|
+
db.prepare("DELETE FROM aml_models WHERE id = ?").run(id);
|
|
22391
|
+
},
|
|
22392
|
+
updateNote(id, note) {
|
|
22393
|
+
db.prepare("UPDATE aml_models SET note = ? WHERE id = ?").run(note, id);
|
|
22241
22394
|
}
|
|
22242
22395
|
}
|
|
22243
22396
|
};
|
|
22244
22397
|
}
|
|
22245
22398
|
|
|
22246
22399
|
const g$5 = globalThis;
|
|
22247
|
-
|
|
22400
|
+
const README = `# AML \u5E73\u53F0\u6570\u636E\u76EE\u5F55
|
|
22401
|
+
|
|
22402
|
+
\u672C\u76EE\u5F55\u662F AgentWorkShop \u81EA\u52A8\u5EFA\u6A21(AML)\u5E73\u53F0\u7684**\u5168\u90E8\u8D44\u4EA7\u6839**,\u7531\u670D\u52A1\u81EA\u52A8\u521B\u5EFA\u4E0E\u7EF4\u62A4\u3002
|
|
22403
|
+
|
|
22404
|
+
## \u76EE\u5F55\u7EA6\u5B9A
|
|
22405
|
+
|
|
22406
|
+
| \u8DEF\u5F84 | \u5185\u5BB9 | \u53EF\u5426\u624B\u5220 |
|
|
22407
|
+
| --- | --- | --- |
|
|
22408
|
+
| \`.venv/\` | uv \u521B\u5EFA/\u7BA1\u7406\u7684 Python \u73AF\u5883(\u4F9D\u8D56\u9501\u5B9A\u5728\u5E73\u53F0\u7684 requirements.txt) | \u53EF\u5220,\u4E0B\u6B21\u4F9B\u7ED9\u81EA\u52A8\u91CD\u5EFA |
|
|
22409
|
+
| \`datasets/<id>/\` | \u6570\u636E\u96C6\u5B9E\u4F53:\`spec.json\` \u53D6\u6570\u89C4\u683C\u3001\`manifest.json\` \u5217\u5B9A\u4E49\u3001\`report.json\` \u8D28\u91CF\u62A5\u544A\u3001\`arrays/*.f32\` \u5217\u5F0F\u6570\u7EC4 | \u5148\u5220\u5143\u6570\u636E\u884C,\u518D\u5220\u76EE\u5F55 |
|
|
22410
|
+
| \`jobs/<id>/\` | \u8BAD\u7EC3\u4F5C\u4E1A\u5B9E\u4F53:\`job.json\` \u63D0\u4EA4\u5951\u7EA6\u3001\`workspace/\`(train.py + amlkit.py)\u3001\`run.log\`\u3001\`artifacts/\`(\u4EA7\u51FA\u6A21\u578B) | \u540C\u4E0A |
|
|
22411
|
+
| \`models/<id>/\` | \u6A21\u578B\u5B9E\u4F53:\`model.onnx\` + \`io_spec.json\`(\u8F93\u5165\u8F93\u51FA\u5951\u7EA6,\u4E0D\u53EF\u53D8) | \u540C\u4E0A |
|
|
22412
|
+
| \`runtime/\` | \u5E73\u53F0\u8FD0\u884C\u65F6\u72B6\u6001:uv \u5B89\u88C5\u8BB0\u5F55(\`uv.json\`)\u3001\u73AF\u5883\u63A2\u9488\u5FEB\u7167(\`env.json\`) | \u53EF\u5220,\u81EA\u52A8\u91CD\u5EFA |
|
|
22413
|
+
| \`tools/\` | \u5E73\u53F0\u81EA\u52A8\u5B89\u88C5\u7684 uv \u4E8C\u8FDB\u5236(\u514D\u7BA1\u7406\u5458\u3001\u4E0D\u6539\u7CFB\u7EDF PATH) | \u53EF\u5220,\u53EF\u91CD\u65B0\u4E00\u952E\u5B89\u88C5 |
|
|
22414
|
+
|
|
22415
|
+
## \u5143\u6570\u636E\u4E0E\u5B9E\u4F53\u7684\u5173\u7CFB
|
|
22416
|
+
|
|
22417
|
+
\u5E73\u53F0\u7528 SQLite \u56DB\u8868\u4FDD\u5B58**\u5143\u6570\u636E**(\u6570\u636E\u96C6/\u4F5C\u4E1A/\u5B9E\u9A8C/\u6A21\u578B),\u7528\u672C\u76EE\u5F55\u4FDD\u5B58**\u5B9E\u4F53**\u3002
|
|
22418
|
+
\u4E24\u8005\u4EE5 id \u4E00\u4E00\u5BF9\u5E94;REST \u7684 \`/api/workshop/aml/*\` \u63D0\u4F9B\u5143\u6570\u636E CRUD,
|
|
22419
|
+
\u5220\u9664\u5143\u6570\u636E\u65F6\u540C\u6B65\u6E05\u7406\u5BF9\u5E94\u5B9E\u4F53\u76EE\u5F55(\u6709\u5F15\u7528\u7684\u6570\u636E\u96C6\u4F1A\u88AB\u62D2\u7EDD\u5220\u9664)\u3002
|
|
22420
|
+
|
|
22421
|
+
## \u8FC1\u79FB\u5230\u522B\u7684\u673A\u5668
|
|
22422
|
+
|
|
22423
|
+
\u6574\u4E2A \`aml/\` \u76EE\u5F55\u53EF\u76F4\u63A5\u62F7\u8D1D(\u542B \`.venv\` \u4E0E\u6A21\u578B\u5DE5\u4EF6);\u76EE\u6807\u673A\u82E5\u65E0\u540C\u7248\u672C Python,
|
|
22424
|
+
\u5220\u6389 \`.venv/\` \u8BA9\u5E73\u53F0\u6309\u672C\u673A\u89E3\u91CA\u5668\u91CD\u5EFA\u5373\u53EF \u2014\u2014 \u6570\u636E\u96C6\u4E0E\u6A21\u578B\u5DE5\u4EF6\u4E0D\u53D7\u5F71\u54CD\u3002
|
|
22425
|
+
`;
|
|
22426
|
+
const GITIGNORE = `# AML \u8FD0\u884C\u65F6\u8D44\u4EA7:\u4F53\u79EF\u5927\u4E14\u4E0E\u673A\u5668\u7ED1\u5B9A,\u4E0D\u5165\u5E93
|
|
22427
|
+
.venv/
|
|
22428
|
+
tools/
|
|
22429
|
+
runtime/
|
|
22430
|
+
datasets/
|
|
22431
|
+
jobs/
|
|
22432
|
+
models/
|
|
22433
|
+
`;
|
|
22434
|
+
function configureAmlRuntime(db, _dataDir) {
|
|
22248
22435
|
if (g$5.__amlRuntime) return g$5.__amlRuntime;
|
|
22249
|
-
const
|
|
22436
|
+
const resolved = resolveAmlRoot({});
|
|
22437
|
+
const root = ensureAmlDir();
|
|
22250
22438
|
const rt = {
|
|
22251
22439
|
db,
|
|
22252
22440
|
root,
|
|
22441
|
+
rootMode: resolved.mode,
|
|
22442
|
+
projectRoot: resolved.projectRoot,
|
|
22253
22443
|
repo: createAmlRepo(db),
|
|
22254
22444
|
datasetsDir: join(root, "datasets"),
|
|
22255
22445
|
jobsDir: join(root, "jobs"),
|
|
22256
|
-
modelsDir: join(root, "models")
|
|
22446
|
+
modelsDir: join(root, "models"),
|
|
22447
|
+
venvDir: join(root, ".venv"),
|
|
22448
|
+
toolsDir: join(root, "tools"),
|
|
22449
|
+
runtimeDir: join(root, "runtime")
|
|
22257
22450
|
};
|
|
22451
|
+
mkdirSync(rt.venvDir, { recursive: true });
|
|
22452
|
+
try {
|
|
22453
|
+
if (!existsSync(join(root, "README.md"))) writeFileSync(join(root, "README.md"), README);
|
|
22454
|
+
if (!existsSync(join(root, ".gitignore"))) writeFileSync(join(root, ".gitignore"), GITIGNORE);
|
|
22455
|
+
} catch {
|
|
22456
|
+
}
|
|
22258
22457
|
g$5.__amlRuntime = rt;
|
|
22259
22458
|
return rt;
|
|
22260
22459
|
}
|
|
@@ -22264,6 +22463,24 @@ function getAmlRuntime() {
|
|
|
22264
22463
|
}
|
|
22265
22464
|
return g$5.__amlRuntime;
|
|
22266
22465
|
}
|
|
22466
|
+
function amlRootSourceLabel(mode) {
|
|
22467
|
+
switch (mode) {
|
|
22468
|
+
case "env":
|
|
22469
|
+
return "\u73AF\u5883\u53D8\u91CF AW_AML_DIR \u6307\u5B9A";
|
|
22470
|
+
case "repo":
|
|
22471
|
+
return "\u9879\u76EE\u68C0\u51FA\u6839(./aml)";
|
|
22472
|
+
case "home":
|
|
22473
|
+
return "\u7528\u6237\u914D\u7F6E\u6839(~/.AgentWorkShop/aml)";
|
|
22474
|
+
default:
|
|
22475
|
+
return "\u5F53\u524D\u5DE5\u4F5C\u76EE\u5F55(./aml)";
|
|
22476
|
+
}
|
|
22477
|
+
}
|
|
22478
|
+
function isInsideAmlRoot(rt, p) {
|
|
22479
|
+
const norm = (s) => s.replace(/\\/g, "/").replace(/\/+$/, "");
|
|
22480
|
+
const root = norm(rt.root);
|
|
22481
|
+
const target = norm(p);
|
|
22482
|
+
return target === root || target.startsWith(`${root}/`);
|
|
22483
|
+
}
|
|
22267
22484
|
|
|
22268
22485
|
const amlDatasetSpecSchema = z.object({
|
|
22269
22486
|
lineId: z.string().min(1),
|
|
@@ -22802,6 +23019,7 @@ async function buildDataset(spec, by) {
|
|
|
22802
23019
|
beatMs: beat
|
|
22803
23020
|
};
|
|
22804
23021
|
writeFileSync(join(dir, "manifest.json"), JSON.stringify(manifest, null, 2));
|
|
23022
|
+
writeFileSync(join(dir, "spec.json"), JSON.stringify(spec, null, 2));
|
|
22805
23023
|
const nodeSummaries = [];
|
|
22806
23024
|
for (const n of order) {
|
|
22807
23025
|
bucketsPart.train.flatMap(() => []);
|
|
@@ -23059,8 +23277,11 @@ function killHarnessProcess(pid) {
|
|
|
23059
23277
|
}
|
|
23060
23278
|
|
|
23061
23279
|
const log$l = createLogger("aml.py");
|
|
23280
|
+
const UV_INSTALL_TIMEOUT_MS = 10 * 6e4;
|
|
23281
|
+
const VENV_CREATE_TIMEOUT_MS = 5 * 6e4;
|
|
23282
|
+
const PIP_INSTALL_TIMEOUT_MS = 20 * 6e4;
|
|
23062
23283
|
const g$4 = globalThis;
|
|
23063
|
-
function runCapture(cmd, args, timeoutMs) {
|
|
23284
|
+
function runCapture(cmd, args, timeoutMs, onData) {
|
|
23064
23285
|
return new Promise((resolve) => {
|
|
23065
23286
|
var _a, _b;
|
|
23066
23287
|
const child = spawnLineProcess(cmd, args);
|
|
@@ -23073,10 +23294,14 @@ function runCapture(cmd, args, timeoutMs) {
|
|
|
23073
23294
|
[timeout ${timeoutMs}ms]` });
|
|
23074
23295
|
}, timeoutMs);
|
|
23075
23296
|
(_a = child.stdout) == null ? void 0 : _a.on("data", (d) => {
|
|
23076
|
-
|
|
23297
|
+
const s = String(d);
|
|
23298
|
+
out += s;
|
|
23299
|
+
onData == null ? void 0 : onData(s);
|
|
23077
23300
|
});
|
|
23078
23301
|
(_b = child.stderr) == null ? void 0 : _b.on("data", (d) => {
|
|
23079
|
-
|
|
23302
|
+
const s = String(d);
|
|
23303
|
+
err += s;
|
|
23304
|
+
onData == null ? void 0 : onData(s);
|
|
23080
23305
|
});
|
|
23081
23306
|
child.on("error", (e) => {
|
|
23082
23307
|
clearTimeout(timer);
|
|
@@ -23088,21 +23313,152 @@ function runCapture(cmd, args, timeoutMs) {
|
|
|
23088
23313
|
});
|
|
23089
23314
|
});
|
|
23090
23315
|
}
|
|
23316
|
+
function uvBinName() {
|
|
23317
|
+
return process.platform === "win32" ? "uv.exe" : "uv";
|
|
23318
|
+
}
|
|
23319
|
+
function looksLikePath(name) {
|
|
23320
|
+
return name.includes("/") || name.includes("\\") || /^[A-Za-z]:/.test(name);
|
|
23321
|
+
}
|
|
23322
|
+
function readUvRecord(rt) {
|
|
23323
|
+
try {
|
|
23324
|
+
const p = join(rt.runtimeDir, "uv.json");
|
|
23325
|
+
if (!existsSync(p)) return null;
|
|
23326
|
+
const parsed = JSON.parse(readFileSync(p, "utf8"));
|
|
23327
|
+
return parsed && typeof parsed.uvPath === "string" ? parsed : null;
|
|
23328
|
+
} catch {
|
|
23329
|
+
return null;
|
|
23330
|
+
}
|
|
23331
|
+
}
|
|
23332
|
+
function writeUvRecord(rt, rec) {
|
|
23333
|
+
try {
|
|
23334
|
+
mkdirSync(rt.runtimeDir, { recursive: true });
|
|
23335
|
+
writeFileSync(join(rt.runtimeDir, "uv.json"), JSON.stringify(rec, null, 2));
|
|
23336
|
+
} catch (err) {
|
|
23337
|
+
log$l.warn("[aml-uv] \u5B89\u88C5\u8BB0\u5F55\u843D\u76D8\u5931\u8D25:", err == null ? void 0 : err.message);
|
|
23338
|
+
}
|
|
23339
|
+
}
|
|
23340
|
+
function findUvInDir(dir, depth = 3) {
|
|
23341
|
+
if (depth < 0 || !existsSync(dir)) return null;
|
|
23342
|
+
let entries;
|
|
23343
|
+
try {
|
|
23344
|
+
entries = readdirSync(dir);
|
|
23345
|
+
} catch {
|
|
23346
|
+
return null;
|
|
23347
|
+
}
|
|
23348
|
+
const want = uvBinName();
|
|
23349
|
+
for (const e of entries) {
|
|
23350
|
+
if (e === want) {
|
|
23351
|
+
const p = join(dir, e);
|
|
23352
|
+
try {
|
|
23353
|
+
if (statSync(p).isFile()) return p;
|
|
23354
|
+
} catch {
|
|
23355
|
+
}
|
|
23356
|
+
}
|
|
23357
|
+
}
|
|
23358
|
+
for (const e of entries) {
|
|
23359
|
+
if (e === "bin" || e === "Scripts" || e === "tools") {
|
|
23360
|
+
const p = join(dir, e, want);
|
|
23361
|
+
try {
|
|
23362
|
+
if (existsSync(p) && statSync(p).isFile()) return p;
|
|
23363
|
+
} catch {
|
|
23364
|
+
}
|
|
23365
|
+
}
|
|
23366
|
+
}
|
|
23367
|
+
for (const e of entries) {
|
|
23368
|
+
const p = join(dir, e);
|
|
23369
|
+
try {
|
|
23370
|
+
if (!statSync(p).isDirectory()) continue;
|
|
23371
|
+
} catch {
|
|
23372
|
+
continue;
|
|
23373
|
+
}
|
|
23374
|
+
const hit = findUvInDir(p, depth - 1);
|
|
23375
|
+
if (hit) return hit;
|
|
23376
|
+
}
|
|
23377
|
+
return null;
|
|
23378
|
+
}
|
|
23379
|
+
function platformPythonDir() {
|
|
23380
|
+
var _a, _b, _c;
|
|
23381
|
+
const rel = join("server", "services", "workshop", "aml", "python");
|
|
23382
|
+
const fallback = join(process.cwd(), rel);
|
|
23383
|
+
const candidates = [
|
|
23384
|
+
(_a = process.env.AML_PYHOME) != null ? _a : "",
|
|
23385
|
+
fallback,
|
|
23386
|
+
join(process.cwd(), ".output", ".AgentWorkShop", "aml-python"),
|
|
23387
|
+
join((_b = process.env.AW_PACKAGE_ROOT) != null ? _b : process.cwd(), rel),
|
|
23388
|
+
join((_c = process.env.AW_PACKAGE_ROOT) != null ? _c : process.cwd(), ".output", ".AgentWorkShop", "aml-python")
|
|
23389
|
+
];
|
|
23390
|
+
for (const c of candidates) {
|
|
23391
|
+
if (c && existsSync(join(c, "amlkit.py"))) return c;
|
|
23392
|
+
}
|
|
23393
|
+
return fallback;
|
|
23394
|
+
}
|
|
23395
|
+
function venvDir(rt) {
|
|
23396
|
+
return rt.venvDir || join(rt.root, ".venv");
|
|
23397
|
+
}
|
|
23398
|
+
function venvPythonPath(rt) {
|
|
23399
|
+
return process.platform === "win32" ? join(venvDir(rt), "Scripts", "python.exe") : join(venvDir(rt), "bin", "python");
|
|
23400
|
+
}
|
|
23401
|
+
function resetProbeCache() {
|
|
23402
|
+
g$4.__amlPyProbe = void 0;
|
|
23403
|
+
g$4.__amlUvProbe = void 0;
|
|
23404
|
+
g$4.__amlVenvPromise = void 0;
|
|
23405
|
+
}
|
|
23406
|
+
async function probeUvBinary(candidate, source) {
|
|
23407
|
+
var _a;
|
|
23408
|
+
const resolved = (_a = resolveOnPath(candidate)) != null ? _a : looksLikePath(candidate) || existsSync(candidate) ? candidate : void 0;
|
|
23409
|
+
if (!resolved) return null;
|
|
23410
|
+
if (!existsSync(resolved)) return null;
|
|
23411
|
+
const r = await runCapture(resolved, ["--version"], 15e3);
|
|
23412
|
+
if (r.code !== 0) return null;
|
|
23413
|
+
return { ok: true, path: resolved, version: (r.out || r.err).trim().split("\n")[0], source };
|
|
23414
|
+
}
|
|
23415
|
+
async function probeUv(rt) {
|
|
23416
|
+
if (g$4.__amlUvProbe) return g$4.__amlUvProbe;
|
|
23417
|
+
const s = amlSettings();
|
|
23418
|
+
const attempts = [];
|
|
23419
|
+
if (s.python.uvBin) attempts.push([s.python.uvBin, "config"]);
|
|
23420
|
+
const record = rt ? readUvRecord(rt) : null;
|
|
23421
|
+
if (rt) {
|
|
23422
|
+
const projectHit = findUvInDir(rt.toolsDir);
|
|
23423
|
+
if (projectHit) attempts.push([projectHit, "project"]);
|
|
23424
|
+
}
|
|
23425
|
+
if (record == null ? void 0 : record.uvPath) attempts.push([record.uvPath, "state"]);
|
|
23426
|
+
if (!s.python.uvBin) attempts.push(["uv", "path"]);
|
|
23427
|
+
for (const [candidate, source] of attempts) {
|
|
23428
|
+
const hit = await probeUvBinary(candidate, source);
|
|
23429
|
+
if (hit) {
|
|
23430
|
+
g$4.__amlUvProbe = hit;
|
|
23431
|
+
log$l.info(`[aml-uv] \u63A2\u6D4B\u5230 uv ${hit.version} @ ${hit.path} (\u6765\u6E90=${source})`);
|
|
23432
|
+
return hit;
|
|
23433
|
+
}
|
|
23434
|
+
}
|
|
23435
|
+
if (process.platform !== "win32" && !s.python.uvBin) {
|
|
23436
|
+
const r = await runCapture("which", ["uv"], 5e3);
|
|
23437
|
+
const p = r.out.trim().split("\n")[0];
|
|
23438
|
+
if (r.code === 0 && p) {
|
|
23439
|
+
const hit = await probeUvBinary(p, "path");
|
|
23440
|
+
if (hit) {
|
|
23441
|
+
g$4.__amlUvProbe = hit;
|
|
23442
|
+
return hit;
|
|
23443
|
+
}
|
|
23444
|
+
}
|
|
23445
|
+
}
|
|
23446
|
+
const miss = {
|
|
23447
|
+
ok: false,
|
|
23448
|
+
reason: "\u672A\u68C0\u6D4B\u5230 uv\u3002\u53EF\u70B9\u51FB\u300C\u4E00\u952E\u5B89\u88C5 uv\u300D\u7531\u5E73\u53F0\u81EA\u52A8\u5B89\u88C5\u5230 ./aml/tools(\u514D\u7BA1\u7406\u5458\u3001\u4E0D\u6539\u7CFB\u7EDF PATH),\u6216\u5728\u8BBE\u7F6E\u4E2D\u6307\u5B9A aml.python.uvBin\u3002"
|
|
23449
|
+
};
|
|
23450
|
+
g$4.__amlUvProbe = miss;
|
|
23451
|
+
return miss;
|
|
23452
|
+
}
|
|
23091
23453
|
async function probePython() {
|
|
23092
23454
|
var _a;
|
|
23093
23455
|
if (g$4.__amlPyProbe) return g$4.__amlPyProbe;
|
|
23094
23456
|
const s = amlSettings();
|
|
23457
|
+
const rt = safeRuntime();
|
|
23458
|
+
const uv = rt ? await probeUv(rt) : void 0;
|
|
23095
23459
|
const candidates = s.python.pythonBin ? [s.python.pythonBin] : process.platform === "win32" ? ["python", "py"] : ["python3", "python"];
|
|
23096
|
-
let uvPath;
|
|
23097
|
-
const uvName = s.python.uvBin || "uv";
|
|
23098
|
-
const uvResolved = resolveOnPath(uvName);
|
|
23099
|
-
if (uvResolved) uvPath = uvResolved;
|
|
23100
|
-
else if (!s.python.uvBin && process.platform !== "win32") {
|
|
23101
|
-
const r = await runCapture("which", [uvName], 5e3);
|
|
23102
|
-
if (r.code === 0 && r.out.trim()) uvPath = r.out.trim().split("\n")[0];
|
|
23103
|
-
}
|
|
23104
23460
|
for (const name of candidates) {
|
|
23105
|
-
const resolved = (_a = resolveOnPath(name)) != null ? _a :
|
|
23461
|
+
const resolved = (_a = resolveOnPath(name)) != null ? _a : looksLikePath(name) ? name : void 0;
|
|
23106
23462
|
if (!resolved || !existsSync(resolved)) continue;
|
|
23107
23463
|
const probe = await runCapture(resolved, ["--version"], 1e4);
|
|
23108
23464
|
if (probe.code === 0) {
|
|
@@ -23111,83 +23467,180 @@ async function probePython() {
|
|
|
23111
23467
|
ok: true,
|
|
23112
23468
|
pythonPath: resolved,
|
|
23113
23469
|
version,
|
|
23114
|
-
uvPath
|
|
23470
|
+
uvPath: (uv == null ? void 0 : uv.ok) ? uv.path : void 0
|
|
23115
23471
|
};
|
|
23116
23472
|
g$4.__amlPyProbe = result2;
|
|
23117
|
-
log$l.info(`[aml-python] \u63A2\u6D4B\u6210\u529F:${version} @ ${resolved}${
|
|
23473
|
+
log$l.info(`[aml-python] \u63A2\u6D4B\u6210\u529F:${version} @ ${resolved}${(uv == null ? void 0 : uv.ok) ? ` (uv: ${uv.path})` : " (\u65E0 uv,\u5C06\u7528 python -m venv \u515C\u5E95)"}`);
|
|
23118
23474
|
return result2;
|
|
23119
23475
|
}
|
|
23120
23476
|
}
|
|
23121
23477
|
const result = {
|
|
23122
23478
|
ok: false,
|
|
23123
|
-
uvPath,
|
|
23479
|
+
uvPath: (uv == null ? void 0 : uv.ok) ? uv.path : void 0,
|
|
23124
23480
|
reason: "\u672A\u627E\u5230\u53EF\u7528\u7684 Python 3 \u89E3\u91CA\u5668:\u5B89\u88C5 Python 3.10+ \u6216 uv,\u6216\u8BBE\u7F6E aml.python.pythonBin \u6307\u5411\u89E3\u91CA\u5668\u7EDD\u5BF9\u8DEF\u5F84"
|
|
23125
23481
|
};
|
|
23126
23482
|
g$4.__amlPyProbe = result;
|
|
23127
23483
|
return result;
|
|
23128
23484
|
}
|
|
23485
|
+
function safeRuntime() {
|
|
23486
|
+
var _a;
|
|
23487
|
+
try {
|
|
23488
|
+
return (_a = g$4.__amlRuntime) != null ? _a : null;
|
|
23489
|
+
} catch {
|
|
23490
|
+
return null;
|
|
23491
|
+
}
|
|
23492
|
+
}
|
|
23493
|
+
async function installUv(rt, onLog) {
|
|
23494
|
+
var _a;
|
|
23495
|
+
const lines = [];
|
|
23496
|
+
const emit = (s) => {
|
|
23497
|
+
const t = s.trimEnd();
|
|
23498
|
+
if (t) {
|
|
23499
|
+
lines.push(t);
|
|
23500
|
+
onLog == null ? void 0 : onLog(t);
|
|
23501
|
+
}
|
|
23502
|
+
};
|
|
23503
|
+
const existing = await probeUvBinary((_a = findUvInDir(rt.toolsDir)) != null ? _a : "", "project");
|
|
23504
|
+
if ((existing == null ? void 0 : existing.ok) && existing.path) {
|
|
23505
|
+
emit(`\u5DF2\u5B58\u5728\u53EF\u7528 uv:${existing.version} @ ${existing.path}`);
|
|
23506
|
+
return { ok: true, uvPath: existing.path, version: existing.version, method: "existing", log: lines.join("\n") };
|
|
23507
|
+
}
|
|
23508
|
+
mkdirSync(rt.toolsDir, { recursive: true });
|
|
23509
|
+
const errors = [];
|
|
23510
|
+
emit(`[1/2] \u4F7F\u7528\u5B98\u65B9\u5B89\u88C5\u811A\u672C\u5B89\u88C5 uv \u5230 ${rt.toolsDir} \u2026`);
|
|
23511
|
+
const script = await runOfficialInstaller(rt, emit);
|
|
23512
|
+
if (script.ok) {
|
|
23513
|
+
const hit = findUvInDir(rt.toolsDir);
|
|
23514
|
+
if (hit) {
|
|
23515
|
+
const v = await runCapture(hit, ["--version"], 15e3);
|
|
23516
|
+
const version = (v.out || v.err).trim().split("\n")[0];
|
|
23517
|
+
writeUvRecord(rt, { uvPath: hit, version, installedAt: (/* @__PURE__ */ new Date()).toISOString(), installDir: rt.toolsDir, method: "official-script" });
|
|
23518
|
+
resetProbeCache();
|
|
23519
|
+
emit(`\u5B89\u88C5\u6210\u529F:${version} @ ${hit}`);
|
|
23520
|
+
return { ok: true, uvPath: hit, version, method: "official-script", log: lines.join("\n") };
|
|
23521
|
+
}
|
|
23522
|
+
errors.push("\u5B98\u65B9\u811A\u672C\u6267\u884C\u5B8C\u6210\u4F46\u672A\u5728 tools \u76EE\u5F55\u627E\u5230 uv \u53EF\u6267\u884C\u6587\u4EF6");
|
|
23523
|
+
} else {
|
|
23524
|
+
errors.push(script.err);
|
|
23525
|
+
}
|
|
23526
|
+
emit("[2/2] \u56DE\u9000\u65B9\u6848:python -m pip install --target tools uv");
|
|
23527
|
+
const probe = await probePython();
|
|
23528
|
+
if (probe.ok && probe.pythonPath) {
|
|
23529
|
+
const pipArgs = ["-m", "pip", "install", "--upgrade", "--target", rt.toolsDir, "uv"];
|
|
23530
|
+
const idx = amlSettings().python.indexUrl;
|
|
23531
|
+
if (idx) pipArgs.push("--index-url", idx);
|
|
23532
|
+
const r = await runCapture(probe.pythonPath, pipArgs, UV_INSTALL_TIMEOUT_MS, emit);
|
|
23533
|
+
if (r.code === 0) {
|
|
23534
|
+
const hit = findUvInDir(rt.toolsDir);
|
|
23535
|
+
if (hit) {
|
|
23536
|
+
try {
|
|
23537
|
+
chmodSync(hit, 493);
|
|
23538
|
+
} catch {
|
|
23539
|
+
}
|
|
23540
|
+
const v = await runCapture(hit, ["--version"], 15e3);
|
|
23541
|
+
const version = (v.out || v.err).trim().split("\n")[0];
|
|
23542
|
+
writeUvRecord(rt, { uvPath: hit, version, installedAt: (/* @__PURE__ */ new Date()).toISOString(), installDir: rt.toolsDir, method: "pip-target" });
|
|
23543
|
+
resetProbeCache();
|
|
23544
|
+
emit(`\u5B89\u88C5\u6210\u529F:${version} @ ${hit}`);
|
|
23545
|
+
return { ok: true, uvPath: hit, version, method: "pip-target", log: lines.join("\n") };
|
|
23546
|
+
}
|
|
23547
|
+
errors.push("pip \u5B89\u88C5\u6210\u529F\u4F46\u672A\u627E\u5230 uv \u53EF\u6267\u884C\u6587\u4EF6");
|
|
23548
|
+
} else {
|
|
23549
|
+
errors.push(`pip \u5B89\u88C5\u5931\u8D25:${(r.err || r.out).slice(-400)}`);
|
|
23550
|
+
}
|
|
23551
|
+
} else {
|
|
23552
|
+
errors.push(`\u65E0\u53EF\u7528 Python \u89E3\u91CA\u5668:${probe.reason}`);
|
|
23553
|
+
}
|
|
23554
|
+
emit("\u5B89\u88C5\u5931\u8D25\u3002");
|
|
23555
|
+
return { ok: false, method: "none", log: `${lines.join("\n")}
|
|
23556
|
+
|
|
23557
|
+
--- \u5931\u8D25\u539F\u56E0 ---
|
|
23558
|
+
${errors.join("\n")}` };
|
|
23559
|
+
}
|
|
23560
|
+
const PS_QUOTE_ESC = "''";
|
|
23561
|
+
async function runOfficialInstaller(rt, emit) {
|
|
23562
|
+
if (process.platform === "win32") {
|
|
23563
|
+
const ps = [
|
|
23564
|
+
`$env:UV_INSTALL_DIR='${rt.toolsDir.replace(/'/g, PS_QUOTE_ESC)}'`,
|
|
23565
|
+
`$env:UV_NO_MODIFY_PATH='1'`,
|
|
23566
|
+
"irm https://astral.sh/uv/install.ps1 | iex"
|
|
23567
|
+
].join("; ");
|
|
23568
|
+
const r2 = await runCapture("powershell", ["-ExecutionPolicy", "Bypass", "-NoProfile", "-NonInteractive", "-Command", ps], UV_INSTALL_TIMEOUT_MS, emit);
|
|
23569
|
+
return { ok: r2.code === 0, err: `\u5B98\u65B9\u811A\u672C\u5931\u8D25(exit=${r2.code}):${(r2.err || r2.out).slice(-400)}` };
|
|
23570
|
+
}
|
|
23571
|
+
const sh = `curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR='${rt.toolsDir.replace(/'/g, `'\\''`)}' UV_NO_MODIFY_PATH=1 sh`;
|
|
23572
|
+
const r = await runCapture("sh", ["-c", sh], UV_INSTALL_TIMEOUT_MS, emit);
|
|
23573
|
+
return { ok: r.code === 0, err: `\u5B98\u65B9\u811A\u672C\u5931\u8D25(exit=${r.code}):${(r.err || r.out).slice(-400)}` };
|
|
23574
|
+
}
|
|
23129
23575
|
function requirementsHash() {
|
|
23130
23576
|
const reqPath = join(platformPythonDir(), "requirements.txt");
|
|
23131
23577
|
const content = existsSync(reqPath) ? readFileSync(reqPath, "utf8") : "";
|
|
23132
23578
|
const idx = amlSettings().python.indexUrl;
|
|
23133
23579
|
return createHash("sha256").update(content).update(idx).digest("hex").slice(0, 12);
|
|
23134
23580
|
}
|
|
23135
|
-
function
|
|
23136
|
-
|
|
23137
|
-
const fallback = join(process.cwd(), "server", "services", "workshop", "aml", "python");
|
|
23138
|
-
const candidates = [
|
|
23139
|
-
(_a = process.env.AML_PYHOME) != null ? _a : "",
|
|
23140
|
-
fallback,
|
|
23141
|
-
join((_b = process.env.AW_PACKAGE_ROOT) != null ? _b : process.cwd(), "server", "services", "workshop", "aml", "python")
|
|
23142
|
-
];
|
|
23143
|
-
for (const c of candidates) {
|
|
23144
|
-
if (c && existsSync(join(c, "amlkit.py"))) return c;
|
|
23145
|
-
}
|
|
23146
|
-
return fallback;
|
|
23581
|
+
function venvMarkerPath(rt) {
|
|
23582
|
+
return join(venvDir(rt), `.aml-ok-${requirementsHash()}`);
|
|
23147
23583
|
}
|
|
23148
|
-
function
|
|
23149
|
-
return
|
|
23584
|
+
function isVenvReady(rt) {
|
|
23585
|
+
return existsSync(venvMarkerPath(rt)) && existsSync(venvPythonPath(rt));
|
|
23150
23586
|
}
|
|
23151
|
-
function
|
|
23152
|
-
|
|
23153
|
-
|
|
23154
|
-
|
|
23155
|
-
|
|
23156
|
-
|
|
23587
|
+
async function ensureVenv(rt, opts = {}) {
|
|
23588
|
+
if (opts.force) {
|
|
23589
|
+
try {
|
|
23590
|
+
rmSync(venvDir(rt), { recursive: true, force: true });
|
|
23591
|
+
emitLog(opts.onLog, `\u5DF2\u6E05\u7406\u65E7\u73AF\u5883:${venvDir(rt)}`);
|
|
23592
|
+
} catch (err) {
|
|
23593
|
+
throw new AppError(500, "AML_VENV_FAILED", `\u6E05\u7406\u65E7\u73AF\u5883\u5931\u8D25(\u53EF\u80FD\u4ECD\u88AB\u8FDB\u7A0B\u5360\u7528):${err.message}`);
|
|
23594
|
+
}
|
|
23595
|
+
g$4.__amlVenvPromise = void 0;
|
|
23596
|
+
}
|
|
23597
|
+
if (g$4.__amlVenvPromise && !opts.force) return g$4.__amlVenvPromise;
|
|
23598
|
+
const task = (async () => {
|
|
23599
|
+
const vdir = venvDir(rt);
|
|
23600
|
+
const vpy = venvPythonPath(rt);
|
|
23601
|
+
if (isVenvReady(rt)) {
|
|
23602
|
+
emitLog(opts.onLog, `\u73AF\u5883\u5DF2\u5C31\u7EEA(\u6807\u8BB0 ${requirementsHash()}):${vdir}`);
|
|
23603
|
+
return vpy;
|
|
23604
|
+
}
|
|
23157
23605
|
const probe = await probePython();
|
|
23158
23606
|
if (!probe.ok || !probe.pythonPath) {
|
|
23159
23607
|
throw new AppError(503, "AML_PYTHON_MISSING", `\u8BAD\u7EC3\u8FD0\u884C\u65F6\u4E0D\u53EF\u7528:${probe.reason}`);
|
|
23160
23608
|
}
|
|
23161
|
-
const vdir = venvDir(rt);
|
|
23162
|
-
const vpy = venvPythonPath(rt);
|
|
23163
|
-
const marker = join(vdir, `.aml-ok-${requirementsHash()}`);
|
|
23164
|
-
if (existsSync(marker) && existsSync(vpy)) return vpy;
|
|
23165
23609
|
const s = amlSettings();
|
|
23166
23610
|
const idxArgs = s.python.indexUrl ? ["--index-url", s.python.indexUrl] : [];
|
|
23167
23611
|
const reqPath = join(platformPythonDir(), "requirements.txt");
|
|
23168
|
-
|
|
23612
|
+
mkdirSync(rt.root, { recursive: true });
|
|
23613
|
+
emitLog(opts.onLog, `\u5F00\u59CB\u4F9B\u7ED9 Python \u73AF\u5883(\u9996\u6B21\u53EF\u80FD\u9700\u6570\u5206\u949F\u4E0B\u8F7D\u4F9D\u8D56)\u2026`);
|
|
23169
23614
|
if (probe.uvPath) {
|
|
23170
|
-
|
|
23615
|
+
emitLog(opts.onLog, `uv venv ${vdir} --python ${probe.pythonPath}`);
|
|
23616
|
+
const mk = await runCapture(probe.uvPath, ["venv", vdir, "--python", probe.pythonPath], VENV_CREATE_TIMEOUT_MS, opts.onLog);
|
|
23171
23617
|
if (mk.code !== 0) throw new AppError(500, "AML_VENV_FAILED", `uv venv \u5931\u8D25:${mk.err.slice(-400)}`);
|
|
23172
|
-
|
|
23618
|
+
emitLog(opts.onLog, `uv pip install -r requirements.txt`);
|
|
23619
|
+
const inst = await runCapture(probe.uvPath, ["pip", "install", "--python", vpy, "-r", reqPath, ...idxArgs], PIP_INSTALL_TIMEOUT_MS, opts.onLog);
|
|
23173
23620
|
if (inst.code !== 0) throw new AppError(500, "AML_VENV_FAILED", `\u4F9D\u8D56\u5B89\u88C5\u5931\u8D25:${(inst.err || inst.out).slice(-400)}`);
|
|
23174
23621
|
} else {
|
|
23175
|
-
|
|
23622
|
+
emitLog(opts.onLog, `\u672A\u68C0\u6D4B\u5230 uv,\u56DE\u9000 python -m venv(\u8F83\u6162)`);
|
|
23623
|
+
const mk = await runCapture(probe.pythonPath, ["-m", "venv", vdir], VENV_CREATE_TIMEOUT_MS, opts.onLog);
|
|
23176
23624
|
if (mk.code !== 0) throw new AppError(500, "AML_VENV_FAILED", `python -m venv \u5931\u8D25:${mk.err.slice(-400)}`);
|
|
23177
|
-
const inst = await runCapture(vpy, ["-m", "pip", "install", "-r", reqPath, ...idxArgs],
|
|
23625
|
+
const inst = await runCapture(vpy, ["-m", "pip", "install", "-r", reqPath, ...idxArgs], PIP_INSTALL_TIMEOUT_MS, opts.onLog);
|
|
23178
23626
|
if (inst.code !== 0) throw new AppError(500, "AML_VENV_FAILED", `pip install \u5931\u8D25:${(inst.err || inst.out).slice(-400)}`);
|
|
23179
23627
|
}
|
|
23180
|
-
writeFileSync(
|
|
23628
|
+
writeFileSync(venvMarkerPath(rt), (/* @__PURE__ */ new Date()).toISOString());
|
|
23629
|
+
emitLog(opts.onLog, "\u73AF\u5883\u4F9B\u7ED9\u5B8C\u6210\u3002");
|
|
23181
23630
|
log$l.info("[aml-python] venv \u4F9B\u7ED9\u5B8C\u6210");
|
|
23182
23631
|
return vpy;
|
|
23183
23632
|
})();
|
|
23633
|
+
g$4.__amlVenvPromise = task;
|
|
23184
23634
|
try {
|
|
23185
|
-
return await
|
|
23635
|
+
return await task;
|
|
23186
23636
|
} catch (err) {
|
|
23187
23637
|
g$4.__amlVenvPromise = void 0;
|
|
23188
23638
|
throw err;
|
|
23189
23639
|
}
|
|
23190
23640
|
}
|
|
23641
|
+
function emitLog(onLog, line) {
|
|
23642
|
+
onLog == null ? void 0 : onLog(line);
|
|
23643
|
+
}
|
|
23191
23644
|
function jobEnv(rt, jobDir) {
|
|
23192
23645
|
const platformPyDir = platformPythonDir();
|
|
23193
23646
|
const pick = (k) => process.env[k] ? `${k}=${process.env[k]}` : "";
|
|
@@ -23199,6 +23652,8 @@ function jobEnv(rt, jobDir) {
|
|
|
23199
23652
|
return {
|
|
23200
23653
|
...sysEnv,
|
|
23201
23654
|
AML_JOB_DIR: jobDir,
|
|
23655
|
+
// 资产根暴露给训练脚本:模型/数据集实体都在 ./aml 下,脚本按相对路径读取
|
|
23656
|
+
AML_ROOT: rt.root,
|
|
23202
23657
|
PYTHONPATH: platformPyDir,
|
|
23203
23658
|
PYTHONUNBUFFERED: "1",
|
|
23204
23659
|
PYTHONDONTWRITEBYTECODE: "1",
|
|
@@ -23320,6 +23775,10 @@ function registerModelFromJob(jobId, gates, metricsJson) {
|
|
|
23320
23775
|
writeFileSync(join(modelDir, "REGISTERED"), now);
|
|
23321
23776
|
}
|
|
23322
23777
|
const ioSpec = buildIoSpec(dataset.path, job.purpose);
|
|
23778
|
+
try {
|
|
23779
|
+
writeFileSync(join(modelDir, "io_spec.json"), JSON.stringify(ioSpec, null, 2));
|
|
23780
|
+
} catch {
|
|
23781
|
+
}
|
|
23323
23782
|
rt.repo.model.insert({
|
|
23324
23783
|
id: modelId,
|
|
23325
23784
|
experimentId: expId,
|
|
@@ -23942,21 +24401,12 @@ async function runtimeStatus() {
|
|
|
23942
24401
|
const st = state$1();
|
|
23943
24402
|
return {
|
|
23944
24403
|
python: { ok: probe.ok, version: probe.version, reason: probe.reason },
|
|
23945
|
-
venvReady: probe.ok ?
|
|
24404
|
+
venvReady: probe.ok ? isVenvReady(rt) : false,
|
|
24405
|
+
amlRoot: rt.root,
|
|
23946
24406
|
queued: st.queue.length + rt.repo.job.list({ status: "queued" }).length,
|
|
23947
24407
|
running: st.running.size
|
|
23948
24408
|
};
|
|
23949
24409
|
}
|
|
23950
|
-
function venvDirOf(rt) {
|
|
23951
|
-
return join(rt.root, "runtime", "venv");
|
|
23952
|
-
}
|
|
23953
|
-
function requirementsHashOf() {
|
|
23954
|
-
try {
|
|
23955
|
-
return requirementsHash();
|
|
23956
|
-
} catch {
|
|
23957
|
-
return "";
|
|
23958
|
-
}
|
|
23959
|
-
}
|
|
23960
24410
|
|
|
23961
24411
|
const log$j = createLogger("aml.predict");
|
|
23962
24412
|
const g$2 = globalThis;
|
|
@@ -26533,6 +26983,14 @@ class BaseAgentImpl {
|
|
|
26533
26983
|
throw new Error(`${this.harnessId} \u65E0 HITL \u5E94\u7B54\u9762(${kind})`);
|
|
26534
26984
|
}
|
|
26535
26985
|
// ===== run:消息分流(平台语义,全引擎一致) =====
|
|
26986
|
+
/**
|
|
26987
|
+
* 装配期注入工作区(AgentRuntime 构造时调用):使 host 工具在首个 run() 之前
|
|
26988
|
+
* 即可直调 —— 否则 REST agent-tools/invoke 在实例未处理过任何消息时会得到
|
|
26989
|
+
* 「workspace 未就绪」(实测生产闭环 Stage D 的 kb_store 偶发因此失败)。
|
|
26990
|
+
*/
|
|
26991
|
+
attachWorkspace(ws) {
|
|
26992
|
+
if (ws && !this.workspace) this.workspace = ws;
|
|
26993
|
+
}
|
|
26536
26994
|
async *run(request, ctx) {
|
|
26537
26995
|
var _a, _b;
|
|
26538
26996
|
if (!this.workspace) this.workspace = ctx.workspace;
|
|
@@ -28861,12 +29319,11 @@ class OpenCodeAgentImpl extends BaseAgentImpl {
|
|
|
28861
29319
|
});
|
|
28862
29320
|
__publicField$c(this, "config");
|
|
28863
29321
|
__publicField$c(this, "agentInfo", null);
|
|
28864
|
-
|
|
28865
|
-
|
|
28866
|
-
|
|
28867
|
-
|
|
28868
|
-
|
|
28869
|
-
__publicField$c(this, "agentRole", "worker");
|
|
29322
|
+
// 注意:不要在本类重新声明 bridgeCtx / agentRole —— 它们由 BaseAgentImpl 持有。
|
|
29323
|
+
// 子类字段初始化器在 super() **之后**执行,会用一个空的 identity 覆盖基类已装配好的
|
|
29324
|
+
// bridgeCtx(class field 遮蔽),导致 host tool 桥拿到的 agentId 恒为 '' ——
|
|
29325
|
+
// 所有按 agentId 的鉴权(节点绑定/工业工具)都会误判为"未绑定"。
|
|
29326
|
+
// 同理 agentRole 被重置为 'worker',lead 身份传不到桥里。
|
|
28870
29327
|
// 服务进程与 API 面
|
|
28871
29328
|
__publicField$c(this, "child", null);
|
|
28872
29329
|
__publicField$c(this, "baseUrl", "");
|
|
@@ -29873,6 +30330,7 @@ var __defProp$a = Object.defineProperty;
|
|
|
29873
30330
|
var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
29874
30331
|
var __publicField$a = (obj, key, value) => __defNormalProp$a(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
29875
30332
|
const log$d = createLogger("workshop.codex");
|
|
30333
|
+
const CODEX_TURN_STALL_MS = 18e5;
|
|
29876
30334
|
class CodexAgentImpl extends BaseAgentImpl {
|
|
29877
30335
|
constructor(config = {}) {
|
|
29878
30336
|
super({
|
|
@@ -29883,12 +30341,10 @@ class CodexAgentImpl extends BaseAgentImpl {
|
|
|
29883
30341
|
});
|
|
29884
30342
|
__publicField$a(this, "config");
|
|
29885
30343
|
__publicField$a(this, "agentInfo", null);
|
|
29886
|
-
|
|
29887
|
-
|
|
29888
|
-
|
|
29889
|
-
|
|
29890
|
-
});
|
|
29891
|
-
__publicField$a(this, "agentRole", "worker");
|
|
30344
|
+
// 不要重新声明 bridgeCtx / agentRole(由 BaseAgentImpl 持有)。
|
|
30345
|
+
// 子类字段初始化器在 super() 之后执行,会用空 identity 遮蔽基类已装配好的 bridgeCtx,
|
|
30346
|
+
// 使 host tool 桥的 agentId 恒为 '' → 按 agentId 的鉴权全部误判(节点绑定/工业工具)。
|
|
30347
|
+
// 同理 agentRole 会被重置为 'worker',lead 身份丢失。
|
|
29892
30348
|
__publicField$a(this, "client", null);
|
|
29893
30349
|
__publicField$a(this, "clientStarting", null);
|
|
29894
30350
|
__publicField$a(this, "threadId", null);
|
|
@@ -30022,7 +30478,7 @@ class CodexAgentImpl extends BaseAgentImpl {
|
|
|
30022
30478
|
ctxPrefix: await this.contextPrefix(),
|
|
30023
30479
|
manual: systemManual()
|
|
30024
30480
|
});
|
|
30025
|
-
yield* this.streamTurn(prompt, taskId, (_c = this.config.promptTimeoutMs) != null ? _c :
|
|
30481
|
+
yield* this.streamTurn(prompt, taskId, (_c = this.config.promptTimeoutMs) != null ? _c : CODEX_TURN_STALL_MS, ctx.signal);
|
|
30026
30482
|
} finally {
|
|
30027
30483
|
this.toolState.currentTaskId = null;
|
|
30028
30484
|
}
|
|
@@ -30057,7 +30513,7 @@ class CodexAgentImpl extends BaseAgentImpl {
|
|
|
30057
30513
|
fromChannel: typeof ((_g = msg.metadata) == null ? void 0 : _g["x-aw-from-channel"]) === "string" ? String(msg.metadata["x-aw-from-channel"]) : "",
|
|
30058
30514
|
msgText
|
|
30059
30515
|
});
|
|
30060
|
-
yield* this.streamTurn(prompt, void 0, (_h = this.config.promptTimeoutMs) != null ? _h :
|
|
30516
|
+
yield* this.streamTurn(prompt, void 0, (_h = this.config.promptTimeoutMs) != null ? _h : CODEX_TURN_STALL_MS, ctx.signal);
|
|
30061
30517
|
}
|
|
30062
30518
|
// ===== 回合执行 =====
|
|
30063
30519
|
/**
|
|
@@ -30417,11 +30873,16 @@ class CodexAgentImpl extends BaseAgentImpl {
|
|
|
30417
30873
|
* per-agent CODEX_HOME config.toml:注册 MCP 桥(required=true,桥挂了宁可失败)。
|
|
30418
30874
|
* 已有 config.toml(从全局目录种子化复制)→ 追加本段(保留用户的 provider/model
|
|
30419
30875
|
* 配置,自定义网关/密钥不丢失);全新目录 → 独立写入。
|
|
30876
|
+
*
|
|
30877
|
+
* 无条件种子化(不再仅当 effort 配置时才挂桥):MCP 桥是 codex worker 的 host
|
|
30878
|
+
* 工具面(complete_task/ops_log/…)唯一入口;不挂桥的实例模型只能拿自带 shell
|
|
30879
|
+
* 乱翻工作区,永远调不到 complete_task → 任务停滞被看门狗回收
|
|
30880
|
+
* (实测 codex 任务终态 CANCELED、交付物却只落在频道消息里的根因)。
|
|
30420
30881
|
*/
|
|
30421
30882
|
writeCodexHomeConfig() {
|
|
30422
30883
|
var _a, _b, _c;
|
|
30423
30884
|
let home = this.config.codexHome;
|
|
30424
|
-
if (!home
|
|
30885
|
+
if (!home) {
|
|
30425
30886
|
home = join(tmpdir(), `aw-codex-${this.selfAgentId.slice(0, 8)}`);
|
|
30426
30887
|
this.config.codexHome = home;
|
|
30427
30888
|
for (const f of ["auth.json", "config.toml", "cc-switch-model-catalog.json"]) {
|
|
@@ -30432,7 +30893,6 @@ class CodexAgentImpl extends BaseAgentImpl {
|
|
|
30432
30893
|
}
|
|
30433
30894
|
}
|
|
30434
30895
|
}
|
|
30435
|
-
if (!home) return;
|
|
30436
30896
|
try {
|
|
30437
30897
|
mkdirSync(home, { recursive: true });
|
|
30438
30898
|
const configFile = join(home, "config.toml");
|
|
@@ -30492,12 +30952,10 @@ class DshAgentImpl extends BaseAgentImpl {
|
|
|
30492
30952
|
});
|
|
30493
30953
|
__publicField$9(this, "config");
|
|
30494
30954
|
__publicField$9(this, "agentInfo", null);
|
|
30495
|
-
|
|
30496
|
-
|
|
30497
|
-
|
|
30498
|
-
|
|
30499
|
-
});
|
|
30500
|
-
__publicField$9(this, "agentRole", "worker");
|
|
30955
|
+
// 不要重新声明 bridgeCtx / agentRole(由 BaseAgentImpl 持有)。
|
|
30956
|
+
// 子类字段初始化器在 super() 之后执行,会用空 identity 遮蔽基类已装配好的 bridgeCtx,
|
|
30957
|
+
// 使 host tool 桥的 agentId 恒为 '' → 按 agentId 的鉴权全部误判(节点绑定/工业工具)。
|
|
30958
|
+
// 同理 agentRole 会被重置为 'worker',lead 身份丢失。
|
|
30501
30959
|
__publicField$9(this, "client", null);
|
|
30502
30960
|
__publicField$9(this, "clientStarting", null);
|
|
30503
30961
|
__publicField$9(this, "sessionId", null);
|
|
@@ -33016,6 +33474,8 @@ class AgentRuntime {
|
|
|
33016
33474
|
this.role = agent.role;
|
|
33017
33475
|
this.channelId = agent.channelId;
|
|
33018
33476
|
this.name = agent.name;
|
|
33477
|
+
const attach = this.impl.attachWorkspace;
|
|
33478
|
+
if (typeof attach === "function") attach.call(this.impl, deps.workspace);
|
|
33019
33479
|
}
|
|
33020
33480
|
/** 投递消息;idle 时立即唤醒消费 */
|
|
33021
33481
|
enqueue(message) {
|
|
@@ -33334,6 +33794,10 @@ class AgentRuntime {
|
|
|
33334
33794
|
this.deps.bus.emit(event, enrichedSource);
|
|
33335
33795
|
if (event.kind === "delta") continue;
|
|
33336
33796
|
if (event.kind === "error") sawRunError = true;
|
|
33797
|
+
if (event.kind === "error" && taskId && replyText.trim().length >= 40) {
|
|
33798
|
+
const cur = this.deps.taskEngine.get(taskId);
|
|
33799
|
+
if (cur && cur.state === "WORKING") continue;
|
|
33800
|
+
}
|
|
33337
33801
|
if (taskId) await this.deps.taskEngine.applyEvent(taskId, event);
|
|
33338
33802
|
if (event.kind === "message") cap(partsToText(event.message.parts));
|
|
33339
33803
|
else if (event.kind === "status" && event.status.message) cap(partsToText(event.status.message.parts));
|
|
@@ -33363,7 +33827,20 @@ class AgentRuntime {
|
|
|
33363
33827
|
const after = this.deps.taskEngine.get(taskId);
|
|
33364
33828
|
if (after && after.assigneeId === this.agentId && after.state === "WORKING") {
|
|
33365
33829
|
const deliverable = after.artifacts.find((a) => a.name !== "input" && a.parts.some((p) => ("text" in p ? p.text.trim().length : 1) > 0));
|
|
33366
|
-
|
|
33830
|
+
const fallbackText = deliverable ? "" : replyText.trim();
|
|
33831
|
+
if (deliverable || fallbackText) {
|
|
33832
|
+
if (!deliverable) {
|
|
33833
|
+
await this.deps.taskEngine.applyEvent(taskId, {
|
|
33834
|
+
kind: "artifact",
|
|
33835
|
+
artifact: {
|
|
33836
|
+
artifactId: randomUUID$1(),
|
|
33837
|
+
name: "deliverable",
|
|
33838
|
+
parts: [{ text: fallbackText.slice(0, 2e4) }]
|
|
33839
|
+
},
|
|
33840
|
+
lastChunk: true,
|
|
33841
|
+
totalChunks: 1
|
|
33842
|
+
});
|
|
33843
|
+
}
|
|
33367
33844
|
const completed = await this.deps.taskEngine.complete(taskId);
|
|
33368
33845
|
this.emitExternal({
|
|
33369
33846
|
kind: "status",
|
|
@@ -33373,7 +33850,7 @@ class AgentRuntime {
|
|
|
33373
33850
|
messageId: randomUUID$1(),
|
|
33374
33851
|
contextId: this.channelId,
|
|
33375
33852
|
role: "ROLE_AGENT",
|
|
33376
|
-
parts: [{ text: `\u4EFB\u52A1 ${taskId} \u56DE\u5408\u5DF2\u4EA7\u51FA\u4EA4\u4ED8\u7269\u4F46\u672A\u8C03\u7528\u5B8C\u6210\u5DE5\u5177,\u5E73\u53F0\u9690\u5F0F\u6536\u53E3\u4E3A COMPLETED` }]
|
|
33853
|
+
parts: [{ text: `\u4EFB\u52A1 ${taskId} \u56DE\u5408\u5DF2\u4EA7\u51FA\u4EA4\u4ED8\u7269\u4F46\u672A\u8C03\u7528\u5B8C\u6210\u5DE5\u5177,\u5E73\u53F0\u9690\u5F0F\u6536\u53E3\u4E3A COMPLETED${deliverable ? "" : "(\u4EA4\u4ED8\u7269\u53D6\u81EA\u56DE\u5408\u6700\u7EC8\u8F93\u51FA)"}` }]
|
|
33377
33854
|
},
|
|
33378
33855
|
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
33379
33856
|
}
|
|
@@ -33936,7 +34413,7 @@ class SchedulerLoop {
|
|
|
33936
34413
|
}
|
|
33937
34414
|
/** 内置规则引擎兜底(harness 无关) */
|
|
33938
34415
|
ruleEngine(snapshot) {
|
|
33939
|
-
var _a, _b;
|
|
34416
|
+
var _a, _b, _c;
|
|
33940
34417
|
const decisions = [];
|
|
33941
34418
|
const { tasks, members, now } = snapshot;
|
|
33942
34419
|
this.refreshIdle(members, now);
|
|
@@ -34029,7 +34506,11 @@ class SchedulerLoop {
|
|
|
34029
34506
|
} else {
|
|
34030
34507
|
this.notified.delete(task.id);
|
|
34031
34508
|
this.lastProgress.delete(task.id);
|
|
34032
|
-
|
|
34509
|
+
const didWork = task.progress > 0 || ((_c = task.artifacts) != null ? _c : []).some((a) => {
|
|
34510
|
+
var _a2;
|
|
34511
|
+
return a.name !== "input" && ((_a2 = a.parts) != null ? _a2 : []).length > 0;
|
|
34512
|
+
});
|
|
34513
|
+
decisions.push(didWork ? { kind: "complete", taskId: task.id } : { kind: "cancel", taskId: task.id });
|
|
34033
34514
|
}
|
|
34034
34515
|
}
|
|
34035
34516
|
for (const task of tasks) {
|
|
@@ -35366,6 +35847,7 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
|
|
|
35366
35847
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
35367
35848
|
const log$1 = createLogger("workshop.manager");
|
|
35368
35849
|
function instanceToAgentInfo(m) {
|
|
35850
|
+
var _a;
|
|
35369
35851
|
return {
|
|
35370
35852
|
id: m.id,
|
|
35371
35853
|
channelId: m.channelId,
|
|
@@ -35374,7 +35856,11 @@ function instanceToAgentInfo(m) {
|
|
|
35374
35856
|
role: m.role,
|
|
35375
35857
|
config: parseJson(m.configJson, {}),
|
|
35376
35858
|
token: m.token,
|
|
35377
|
-
enabled: m.enabled
|
|
35859
|
+
enabled: m.enabled,
|
|
35860
|
+
/** 来源 Agent 模板 id(手工成员为 null)。
|
|
35861
|
+
* 外部调用方需要它把「模板 → 已部署实例」对上 —— Agent↔节点绑定必须落到实例 id,
|
|
35862
|
+
* 而绑定接口只回一个实例 id;不暴露这个字段时调用方只能靠名字猜(实测踩过)。 */
|
|
35863
|
+
templateId: (_a = m.templateId) != null ? _a : null
|
|
35378
35864
|
};
|
|
35379
35865
|
}
|
|
35380
35866
|
function rowToTask(row) {
|
|
@@ -35785,6 +36271,10 @@ class AgentChannelManager {
|
|
|
35785
36271
|
const lead = this.ensureAgentRuntime(channelId, channel.leadAgentId);
|
|
35786
36272
|
if (!lead) return;
|
|
35787
36273
|
const loop = new SchedulerLoop(cr, lead, {
|
|
36274
|
+
// 停滞窗口默认取 workshop.stall_ms(默认 5 分钟,可经设置调整):
|
|
36275
|
+
// 它决定"多久算停滞"以及"多久之后收口",是运维最需要按现场调的一个值;
|
|
36276
|
+
// 以前写死在 SchedulerLoop 构造默认值里,mock/规则引擎路径上最长要 10 分钟才可见。
|
|
36277
|
+
...Number.isFinite(workshopSettings().stall_ms) ? { stallMs: workshopSettings().stall_ms } : {},
|
|
35788
36278
|
...options,
|
|
35789
36279
|
// 停滞看门狗活性源:agent 最近一次工具 invoke 时刻(工具调用即健康推进)
|
|
35790
36280
|
toolActivityOf: (agentId) => {
|
|
@@ -37301,6 +37791,26 @@ class AgentChannelManager {
|
|
|
37301
37791
|
}
|
|
37302
37792
|
return message;
|
|
37303
37793
|
}
|
|
37794
|
+
/**
|
|
37795
|
+
* 按主键查 Channel 成员实例(跨频道)。
|
|
37796
|
+
* 用途:校验「Agent ↔ 工业节点绑定」的主体 —— 运行时持绑定做鉴权的是**成员实例**,
|
|
37797
|
+
* 不是 Agent 模板;绑到模板 id 上会得到一条永远不生效的静默绑定(实测踩过)。
|
|
37798
|
+
*/
|
|
37799
|
+
findChannelAgentById(channelAgentId) {
|
|
37800
|
+
const row = this.deps.repos.channelAgents.findById(channelAgentId);
|
|
37801
|
+
return row ? { id: row.id, channelId: row.channelId, templateId: row.templateId } : void 0;
|
|
37802
|
+
}
|
|
37803
|
+
/** 某 Agent 模板已部署到哪些频道(用于把"绑错主体"的报错变成可执行提示) */
|
|
37804
|
+
listChannelAgentInstances(templateId) {
|
|
37805
|
+
return this.deps.repos.channelAgents.listByTemplate(templateId).map((r) => {
|
|
37806
|
+
var _a, _b;
|
|
37807
|
+
return {
|
|
37808
|
+
id: r.id,
|
|
37809
|
+
channelId: r.channelId,
|
|
37810
|
+
name: (_b = (_a = this.deps.repos.channels.findById(r.channelId)) == null ? void 0 : _a.name) != null ? _b : r.channelId
|
|
37811
|
+
};
|
|
37812
|
+
});
|
|
37813
|
+
}
|
|
37304
37814
|
/**
|
|
37305
37815
|
* 实时消息(外部/系统注入):priority=immediate → busy 时 steer 注入运行中的 omp 会话。
|
|
37306
37816
|
* 触发器 requireReply=true → 接收方须回执(执行结果+所需内容,in_reply_to 关联)。
|
|
@@ -37822,7 +38332,7 @@ function workshopPlugin(nitroApp) {
|
|
|
37822
38332
|
approvalRequests: createApprovalRequestRepo(db)
|
|
37823
38333
|
});
|
|
37824
38334
|
const deps = { repos, implFactory: createAgentImpl, db };
|
|
37825
|
-
configureAmlRuntime(db
|
|
38335
|
+
configureAmlRuntime(db);
|
|
37826
38336
|
recoverInterruptedJobs();
|
|
37827
38337
|
startAmlRetentionTimer();
|
|
37828
38338
|
const manager = createAgentChannelManager(deps);
|
|
@@ -37874,1314 +38384,1307 @@ workshopPlugin
|
|
|
37874
38384
|
];
|
|
37875
38385
|
|
|
37876
38386
|
const assets = {
|
|
37877
|
-
"/favicon.svg": {
|
|
37878
|
-
"type": "image/svg+xml",
|
|
37879
|
-
"etag": "\"333-aFlSVm0gS1OwJAKmnnSly7X0FJ0\"",
|
|
37880
|
-
"mtime": "2026-08-30T11:59:05.964Z",
|
|
37881
|
-
"size": 819,
|
|
37882
|
-
"path": "../public/favicon.svg"
|
|
37883
|
-
},
|
|
37884
|
-
"/_nuxt/-6OnbLFb.js": {
|
|
37885
|
-
"type": "text/javascript; charset=utf-8",
|
|
37886
|
-
"etag": "\"1343-vdAf4w0aJYo+a7mW3u5aS6nVAXY\"",
|
|
37887
|
-
"mtime": "2026-09-11T08:35:24.374Z",
|
|
37888
|
-
"size": 4931,
|
|
37889
|
-
"path": "../public/_nuxt/-6OnbLFb.js"
|
|
37890
|
-
},
|
|
37891
38387
|
"/_nuxt/36oeS8_R2.js": {
|
|
37892
38388
|
"type": "text/javascript; charset=utf-8",
|
|
37893
38389
|
"etag": "\"d6-9W7EHt23WjRGOYCN8bz9Yy0aMhg\"",
|
|
37894
|
-
"mtime": "2026-09-
|
|
38390
|
+
"mtime": "2026-09-12T03:59:43.216Z",
|
|
37895
38391
|
"size": 214,
|
|
37896
38392
|
"path": "../public/_nuxt/36oeS8_R2.js"
|
|
37897
38393
|
},
|
|
37898
|
-
"/
|
|
37899
|
-
"type": "
|
|
37900
|
-
"etag": "\"
|
|
37901
|
-
"mtime": "2026-
|
|
37902
|
-
"size":
|
|
37903
|
-
"path": "../public/
|
|
38394
|
+
"/favicon.svg": {
|
|
38395
|
+
"type": "image/svg+xml",
|
|
38396
|
+
"etag": "\"333-aFlSVm0gS1OwJAKmnnSly7X0FJ0\"",
|
|
38397
|
+
"mtime": "2026-08-30T11:59:05.964Z",
|
|
38398
|
+
"size": 819,
|
|
38399
|
+
"path": "../public/favicon.svg"
|
|
37904
38400
|
},
|
|
37905
|
-
"/_nuxt/
|
|
38401
|
+
"/_nuxt/45zuyAso.js": {
|
|
37906
38402
|
"type": "text/javascript; charset=utf-8",
|
|
37907
|
-
"etag": "\"
|
|
37908
|
-
"mtime": "2026-09-
|
|
37909
|
-
"size":
|
|
37910
|
-
"path": "../public/_nuxt/
|
|
38403
|
+
"etag": "\"e475-il2QNg4Ih8pW97JlDDn074j4h40\"",
|
|
38404
|
+
"mtime": "2026-09-12T03:59:43.216Z",
|
|
38405
|
+
"size": 58485,
|
|
38406
|
+
"path": "../public/_nuxt/45zuyAso.js"
|
|
37911
38407
|
},
|
|
37912
|
-
"/_nuxt/
|
|
38408
|
+
"/_nuxt/4sIEbgcl.js": {
|
|
37913
38409
|
"type": "text/javascript; charset=utf-8",
|
|
37914
|
-
"etag": "\"
|
|
37915
|
-
"mtime": "2026-09-
|
|
37916
|
-
"size":
|
|
37917
|
-
"path": "../public/_nuxt/
|
|
38410
|
+
"etag": "\"12211-x+AgGtu1FHNowDE8TFro0dX68yU\"",
|
|
38411
|
+
"mtime": "2026-09-12T03:59:43.216Z",
|
|
38412
|
+
"size": 74257,
|
|
38413
|
+
"path": "../public/_nuxt/4sIEbgcl.js"
|
|
37918
38414
|
},
|
|
37919
|
-
"/_nuxt/
|
|
38415
|
+
"/_nuxt/ahgEJu2R.js": {
|
|
37920
38416
|
"type": "text/javascript; charset=utf-8",
|
|
37921
|
-
"etag": "\"
|
|
37922
|
-
"mtime": "2026-09-
|
|
37923
|
-
"size":
|
|
37924
|
-
"path": "../public/_nuxt/
|
|
37925
|
-
},
|
|
37926
|
-
"/_nuxt/aml.WU_bh87J.css": {
|
|
37927
|
-
"type": "text/css; charset=utf-8",
|
|
37928
|
-
"etag": "\"2ba6-KFAbaZ9MCLBfgaOBN48bAVLUIkI\"",
|
|
37929
|
-
"mtime": "2026-09-11T08:35:24.396Z",
|
|
37930
|
-
"size": 11174,
|
|
37931
|
-
"path": "../public/_nuxt/aml.WU_bh87J.css"
|
|
38417
|
+
"etag": "\"680-U+6Xyxt5ZpTg6vsMybB7bBYMY/M\"",
|
|
38418
|
+
"mtime": "2026-09-12T03:59:43.238Z",
|
|
38419
|
+
"size": 1664,
|
|
38420
|
+
"path": "../public/_nuxt/ahgEJu2R.js"
|
|
37932
38421
|
},
|
|
37933
38422
|
"/_nuxt/agents.BV70ioCv.css": {
|
|
37934
38423
|
"type": "text/css; charset=utf-8",
|
|
37935
38424
|
"etag": "\"864-vWJ7ST00xR5cH47IGfSMfZZYzFk\"",
|
|
37936
|
-
"mtime": "2026-09-
|
|
38425
|
+
"mtime": "2026-09-12T03:59:43.242Z",
|
|
37937
38426
|
"size": 2148,
|
|
37938
38427
|
"path": "../public/_nuxt/agents.BV70ioCv.css"
|
|
37939
38428
|
},
|
|
37940
|
-
"/_nuxt/
|
|
37941
|
-
"type": "text/javascript; charset=utf-8",
|
|
37942
|
-
"etag": "\"3d5-itnLaBVfNThToG43nVPq3jMDhq0\"",
|
|
37943
|
-
"mtime": "2026-09-11T08:35:24.376Z",
|
|
37944
|
-
"size": 981,
|
|
37945
|
-
"path": "../public/_nuxt/B7wL3pDk.js"
|
|
37946
|
-
},
|
|
37947
|
-
"/_nuxt/B5S_UyaC.js": {
|
|
38429
|
+
"/_nuxt/aLLjF2K-2.js": {
|
|
37948
38430
|
"type": "text/javascript; charset=utf-8",
|
|
37949
|
-
"etag": "\"
|
|
37950
|
-
"mtime": "2026-09-
|
|
37951
|
-
"size":
|
|
37952
|
-
"path": "../public/_nuxt/
|
|
38431
|
+
"etag": "\"53-W7A73tjZk8gL0O4HA2ZRkaTaF64\"",
|
|
38432
|
+
"mtime": "2026-09-12T03:59:43.237Z",
|
|
38433
|
+
"size": 83,
|
|
38434
|
+
"path": "../public/_nuxt/aLLjF2K-2.js"
|
|
37953
38435
|
},
|
|
37954
|
-
"/_nuxt/
|
|
38436
|
+
"/_nuxt/8NMOXZOV.js": {
|
|
37955
38437
|
"type": "text/javascript; charset=utf-8",
|
|
37956
|
-
"etag": "\"
|
|
37957
|
-
"mtime": "2026-09-
|
|
37958
|
-
"size":
|
|
37959
|
-
"path": "../public/_nuxt/
|
|
38438
|
+
"etag": "\"c0a1-nxEv13/TZOSwXE1Uh5g6ynV5Bao\"",
|
|
38439
|
+
"mtime": "2026-09-12T03:59:43.216Z",
|
|
38440
|
+
"size": 49313,
|
|
38441
|
+
"path": "../public/_nuxt/8NMOXZOV.js"
|
|
37960
38442
|
},
|
|
37961
38443
|
"/_nuxt/BBrRELH32.js": {
|
|
37962
38444
|
"type": "text/javascript; charset=utf-8",
|
|
37963
38445
|
"etag": "\"5bc-jGs6+2LpPidhbmCHZyKfmEWQxCI\"",
|
|
37964
|
-
"mtime": "2026-09-
|
|
38446
|
+
"mtime": "2026-09-12T03:59:43.217Z",
|
|
37965
38447
|
"size": 1468,
|
|
37966
38448
|
"path": "../public/_nuxt/BBrRELH32.js"
|
|
37967
38449
|
},
|
|
37968
|
-
"/_nuxt/
|
|
38450
|
+
"/_nuxt/aml.COEKNNqK.css": {
|
|
38451
|
+
"type": "text/css; charset=utf-8",
|
|
38452
|
+
"etag": "\"370f-qgRKdQJo512yCFP+pajQDl5GKi0\"",
|
|
38453
|
+
"mtime": "2026-09-12T03:59:43.242Z",
|
|
38454
|
+
"size": 14095,
|
|
38455
|
+
"path": "../public/_nuxt/aml.COEKNNqK.css"
|
|
38456
|
+
},
|
|
38457
|
+
"/_nuxt/aWWIh8YL.js": {
|
|
37969
38458
|
"type": "text/javascript; charset=utf-8",
|
|
37970
|
-
"etag": "\"
|
|
37971
|
-
"mtime": "2026-09-
|
|
37972
|
-
"size":
|
|
37973
|
-
"path": "../public/_nuxt/
|
|
38459
|
+
"etag": "\"10b83-nv1ZsQJBS5EehASgX2SOiI/mBpw\"",
|
|
38460
|
+
"mtime": "2026-09-12T03:59:43.238Z",
|
|
38461
|
+
"size": 68483,
|
|
38462
|
+
"path": "../public/_nuxt/aWWIh8YL.js"
|
|
37974
38463
|
},
|
|
37975
|
-
"/_nuxt/
|
|
38464
|
+
"/_nuxt/BDmh31hl.js": {
|
|
37976
38465
|
"type": "text/javascript; charset=utf-8",
|
|
37977
|
-
"etag": "\"
|
|
37978
|
-
"mtime": "2026-09-
|
|
37979
|
-
"size":
|
|
37980
|
-
"path": "../public/_nuxt/
|
|
38466
|
+
"etag": "\"5d4-nK1q0f/en9CHIE67KnsUTLT2CQI\"",
|
|
38467
|
+
"mtime": "2026-09-12T03:59:43.218Z",
|
|
38468
|
+
"size": 1492,
|
|
38469
|
+
"path": "../public/_nuxt/BDmh31hl.js"
|
|
38470
|
+
},
|
|
38471
|
+
"/_nuxt/BCGafdXT.js": {
|
|
38472
|
+
"type": "text/javascript; charset=utf-8",
|
|
38473
|
+
"etag": "\"3ff0-kMClwjRpzrLcxzcqbcd8Q/cCnJg\"",
|
|
38474
|
+
"mtime": "2026-09-12T03:59:43.217Z",
|
|
38475
|
+
"size": 16368,
|
|
38476
|
+
"path": "../public/_nuxt/BCGafdXT.js"
|
|
37981
38477
|
},
|
|
37982
38478
|
"/_nuxt/B7gZokg82.js": {
|
|
37983
38479
|
"type": "text/javascript; charset=utf-8",
|
|
37984
38480
|
"etag": "\"1d5d9-7v10FhVDuY8RpWcfSCPKziAj8s8\"",
|
|
37985
|
-
"mtime": "2026-09-
|
|
38481
|
+
"mtime": "2026-09-12T03:59:43.217Z",
|
|
37986
38482
|
"size": 120281,
|
|
37987
38483
|
"path": "../public/_nuxt/B7gZokg82.js"
|
|
37988
38484
|
},
|
|
37989
|
-
"/_nuxt/
|
|
38485
|
+
"/_nuxt/BDNMzG2s2.js": {
|
|
37990
38486
|
"type": "text/javascript; charset=utf-8",
|
|
37991
|
-
"etag": "\"
|
|
37992
|
-
"mtime": "2026-09-
|
|
37993
|
-
"size":
|
|
37994
|
-
"path": "../public/_nuxt/
|
|
38487
|
+
"etag": "\"54-MasMfSk/A98C3Gn9uIOxtFxkWNw\"",
|
|
38488
|
+
"mtime": "2026-09-12T03:59:43.217Z",
|
|
38489
|
+
"size": 84,
|
|
38490
|
+
"path": "../public/_nuxt/BDNMzG2s2.js"
|
|
37995
38491
|
},
|
|
37996
|
-
"/_nuxt/
|
|
38492
|
+
"/_nuxt/BHA40aHa.js": {
|
|
37997
38493
|
"type": "text/javascript; charset=utf-8",
|
|
37998
|
-
"etag": "\"
|
|
37999
|
-
"mtime": "2026-09-
|
|
38000
|
-
"size":
|
|
38001
|
-
"path": "../public/_nuxt/
|
|
38494
|
+
"etag": "\"1dae-TNCHUupkSTNB3L7XCdP+v3qPTYQ\"",
|
|
38495
|
+
"mtime": "2026-09-12T03:59:43.220Z",
|
|
38496
|
+
"size": 7598,
|
|
38497
|
+
"path": "../public/_nuxt/BHA40aHa.js"
|
|
38002
38498
|
},
|
|
38003
|
-
"/_nuxt/
|
|
38499
|
+
"/_nuxt/BFkgkW8u.js": {
|
|
38004
38500
|
"type": "text/javascript; charset=utf-8",
|
|
38005
|
-
"etag": "\"
|
|
38006
|
-
"mtime": "2026-09-
|
|
38007
|
-
"size":
|
|
38008
|
-
"path": "../public/_nuxt/
|
|
38501
|
+
"etag": "\"a0d1-NSV9xOdq2+TkNG3z1okARkbt/Ew\"",
|
|
38502
|
+
"mtime": "2026-09-12T03:59:43.219Z",
|
|
38503
|
+
"size": 41169,
|
|
38504
|
+
"path": "../public/_nuxt/BFkgkW8u.js"
|
|
38009
38505
|
},
|
|
38010
|
-
"/_nuxt/
|
|
38506
|
+
"/_nuxt/BJHKLJJU.js": {
|
|
38011
38507
|
"type": "text/javascript; charset=utf-8",
|
|
38012
|
-
"etag": "\"
|
|
38013
|
-
"mtime": "2026-09-
|
|
38014
|
-
"size":
|
|
38015
|
-
"path": "../public/_nuxt/
|
|
38508
|
+
"etag": "\"1339-QAcPV/AbfgGywBnf88Wg49sAL0M\"",
|
|
38509
|
+
"mtime": "2026-09-12T03:59:43.220Z",
|
|
38510
|
+
"size": 4921,
|
|
38511
|
+
"path": "../public/_nuxt/BJHKLJJU.js"
|
|
38016
38512
|
},
|
|
38017
|
-
"/_nuxt/
|
|
38513
|
+
"/_nuxt/BG8sCcwx.js": {
|
|
38018
38514
|
"type": "text/javascript; charset=utf-8",
|
|
38019
|
-
"etag": "\"
|
|
38020
|
-
"mtime": "2026-09-
|
|
38021
|
-
"size":
|
|
38022
|
-
"path": "../public/_nuxt/
|
|
38515
|
+
"etag": "\"4190d-RfweN32GXq6RZeMfyyTy4wIr35U\"",
|
|
38516
|
+
"mtime": "2026-09-12T03:59:43.215Z",
|
|
38517
|
+
"size": 268557,
|
|
38518
|
+
"path": "../public/_nuxt/BG8sCcwx.js"
|
|
38023
38519
|
},
|
|
38024
|
-
"/_nuxt/
|
|
38520
|
+
"/_nuxt/BNT8gYU92.js": {
|
|
38025
38521
|
"type": "text/javascript; charset=utf-8",
|
|
38026
|
-
"etag": "\"
|
|
38027
|
-
"mtime": "2026-09-
|
|
38028
|
-
"size":
|
|
38029
|
-
"path": "../public/_nuxt/
|
|
38522
|
+
"etag": "\"5d7c-uoVe6NWOOg3c8AvXRdXBJ9QJC2k\"",
|
|
38523
|
+
"mtime": "2026-09-12T03:59:43.221Z",
|
|
38524
|
+
"size": 23932,
|
|
38525
|
+
"path": "../public/_nuxt/BNT8gYU92.js"
|
|
38030
38526
|
},
|
|
38031
|
-
"/_nuxt/
|
|
38527
|
+
"/_nuxt/BN6iuJEg2.js": {
|
|
38032
38528
|
"type": "text/javascript; charset=utf-8",
|
|
38033
|
-
"etag": "\"
|
|
38034
|
-
"mtime": "2026-09-
|
|
38035
|
-
"size":
|
|
38036
|
-
"path": "../public/_nuxt/
|
|
38529
|
+
"etag": "\"d01-vLMADOVcZ1D0Movw5mYesca16fQ\"",
|
|
38530
|
+
"mtime": "2026-09-12T03:59:43.220Z",
|
|
38531
|
+
"size": 3329,
|
|
38532
|
+
"path": "../public/_nuxt/BN6iuJEg2.js"
|
|
38533
|
+
},
|
|
38534
|
+
"/_nuxt/BU83-NnX.js": {
|
|
38535
|
+
"type": "text/javascript; charset=utf-8",
|
|
38536
|
+
"etag": "\"1bca7-QTUYnyzS2tyJukMLZN6kXIjjcw8\"",
|
|
38537
|
+
"mtime": "2026-09-12T03:59:43.221Z",
|
|
38538
|
+
"size": 113831,
|
|
38539
|
+
"path": "../public/_nuxt/BU83-NnX.js"
|
|
38540
|
+
},
|
|
38541
|
+
"/_nuxt/BrIJiJSN.js": {
|
|
38542
|
+
"type": "text/javascript; charset=utf-8",
|
|
38543
|
+
"etag": "\"50eba-EQGueVrdlEzHO7oTVt2LPxnHgRo\"",
|
|
38544
|
+
"mtime": "2026-09-12T03:59:43.221Z",
|
|
38545
|
+
"size": 331450,
|
|
38546
|
+
"path": "../public/_nuxt/BrIJiJSN.js"
|
|
38037
38547
|
},
|
|
38038
38548
|
"/_nuxt/BFjGV-RV2.js": {
|
|
38039
38549
|
"type": "text/javascript; charset=utf-8",
|
|
38040
38550
|
"etag": "\"a0340-NzvTqyczSJgnuw9pjPQnLX42sAE\"",
|
|
38041
|
-
"mtime": "2026-09-
|
|
38551
|
+
"mtime": "2026-09-12T03:59:43.219Z",
|
|
38042
38552
|
"size": 656192,
|
|
38043
38553
|
"path": "../public/_nuxt/BFjGV-RV2.js"
|
|
38044
38554
|
},
|
|
38045
38555
|
"/_nuxt/BGkumHZ32.js": {
|
|
38046
38556
|
"type": "text/javascript; charset=utf-8",
|
|
38047
38557
|
"etag": "\"14a0a8-FkCiOKvl5+p8em/4UNCrmbDN4qY\"",
|
|
38048
|
-
"mtime": "2026-09-
|
|
38558
|
+
"mtime": "2026-09-12T03:59:43.219Z",
|
|
38049
38559
|
"size": 1351848,
|
|
38050
38560
|
"path": "../public/_nuxt/BGkumHZ32.js"
|
|
38051
38561
|
},
|
|
38052
|
-
"/_nuxt/
|
|
38562
|
+
"/_nuxt/BYhEUx8t.js": {
|
|
38053
38563
|
"type": "text/javascript; charset=utf-8",
|
|
38054
|
-
"etag": "\"
|
|
38055
|
-
"mtime": "2026-09-
|
|
38056
|
-
"size":
|
|
38057
|
-
"path": "../public/_nuxt/
|
|
38564
|
+
"etag": "\"4683-VUVLNcxEYcNaMSm1Cbz/wmeM604\"",
|
|
38565
|
+
"mtime": "2026-09-12T03:59:43.221Z",
|
|
38566
|
+
"size": 18051,
|
|
38567
|
+
"path": "../public/_nuxt/BYhEUx8t.js"
|
|
38058
38568
|
},
|
|
38059
|
-
"/_nuxt/
|
|
38569
|
+
"/_nuxt/C3gwHTz0.js": {
|
|
38060
38570
|
"type": "text/javascript; charset=utf-8",
|
|
38061
|
-
"etag": "\"
|
|
38062
|
-
"mtime": "2026-09-
|
|
38063
|
-
"size":
|
|
38064
|
-
"path": "../public/_nuxt/
|
|
38571
|
+
"etag": "\"c83-Qsb8eOw0ptJIE9g9mNDkYaOA4VM\"",
|
|
38572
|
+
"mtime": "2026-09-12T03:59:43.222Z",
|
|
38573
|
+
"size": 3203,
|
|
38574
|
+
"path": "../public/_nuxt/C3gwHTz0.js"
|
|
38065
38575
|
},
|
|
38066
|
-
"/_nuxt/
|
|
38576
|
+
"/_nuxt/C3J6FYKa.js": {
|
|
38067
38577
|
"type": "text/javascript; charset=utf-8",
|
|
38068
|
-
"etag": "\"
|
|
38069
|
-
"mtime": "2026-09-
|
|
38070
|
-
"size":
|
|
38071
|
-
"path": "../public/_nuxt/
|
|
38578
|
+
"etag": "\"626-QRtMC3g1WIOYAvpDGdpR8kmZ7ps\"",
|
|
38579
|
+
"mtime": "2026-09-12T03:59:43.222Z",
|
|
38580
|
+
"size": 1574,
|
|
38581
|
+
"path": "../public/_nuxt/C3J6FYKa.js"
|
|
38072
38582
|
},
|
|
38073
|
-
"/_nuxt/
|
|
38583
|
+
"/_nuxt/C4DWUZ6d2.js": {
|
|
38074
38584
|
"type": "text/javascript; charset=utf-8",
|
|
38075
|
-
"etag": "\"
|
|
38076
|
-
"mtime": "2026-09-
|
|
38077
|
-
"size":
|
|
38078
|
-
"path": "../public/_nuxt/
|
|
38585
|
+
"etag": "\"92-SI4m48ydIbJ1X/2oxc8lcVNlouc\"",
|
|
38586
|
+
"mtime": "2026-09-12T03:59:43.222Z",
|
|
38587
|
+
"size": 146,
|
|
38588
|
+
"path": "../public/_nuxt/C4DWUZ6d2.js"
|
|
38079
38589
|
},
|
|
38080
|
-
"/_nuxt/
|
|
38590
|
+
"/_nuxt/BzHEilTt.js": {
|
|
38081
38591
|
"type": "text/javascript; charset=utf-8",
|
|
38082
|
-
"etag": "\"
|
|
38083
|
-
"mtime": "2026-09-
|
|
38084
|
-
"size":
|
|
38085
|
-
"path": "../public/_nuxt/
|
|
38592
|
+
"etag": "\"4fa9-va7l3h5q8x+aE2yvqoL1csBP9KI\"",
|
|
38593
|
+
"mtime": "2026-09-12T03:59:43.222Z",
|
|
38594
|
+
"size": 20393,
|
|
38595
|
+
"path": "../public/_nuxt/BzHEilTt.js"
|
|
38086
38596
|
},
|
|
38087
|
-
"/_nuxt/
|
|
38597
|
+
"/_nuxt/C5gUkRwn.js": {
|
|
38088
38598
|
"type": "text/javascript; charset=utf-8",
|
|
38089
|
-
"etag": "\"
|
|
38090
|
-
"mtime": "2026-09-
|
|
38091
|
-
"size":
|
|
38092
|
-
"path": "../public/_nuxt/
|
|
38599
|
+
"etag": "\"4d54-4zd4iq14kAxdjxf8PVzJ8SMRDlU\"",
|
|
38600
|
+
"mtime": "2026-09-12T03:59:43.222Z",
|
|
38601
|
+
"size": 19796,
|
|
38602
|
+
"path": "../public/_nuxt/C5gUkRwn.js"
|
|
38093
38603
|
},
|
|
38094
|
-
"/_nuxt/
|
|
38604
|
+
"/_nuxt/CClOy-Hz2.js": {
|
|
38095
38605
|
"type": "text/javascript; charset=utf-8",
|
|
38096
|
-
"etag": "\"
|
|
38097
|
-
"mtime": "2026-09-
|
|
38098
|
-
"size":
|
|
38099
|
-
"path": "../public/_nuxt/
|
|
38606
|
+
"etag": "\"20d4-RN9mqBdS6ZEpvrVM2lHCRuY3nZY\"",
|
|
38607
|
+
"mtime": "2026-09-12T03:59:43.222Z",
|
|
38608
|
+
"size": 8404,
|
|
38609
|
+
"path": "../public/_nuxt/CClOy-Hz2.js"
|
|
38100
38610
|
},
|
|
38101
|
-
"/_nuxt/
|
|
38611
|
+
"/_nuxt/Cc_9VzD42.js": {
|
|
38102
38612
|
"type": "text/javascript; charset=utf-8",
|
|
38103
|
-
"etag": "\"
|
|
38104
|
-
"mtime": "2026-09-
|
|
38105
|
-
"size":
|
|
38106
|
-
"path": "../public/_nuxt/
|
|
38107
|
-
},
|
|
38108
|
-
"/_nuxt/BuvcLKh1.js": {
|
|
38109
|
-
"type": "text/javascript; charset=utf-8",
|
|
38110
|
-
"etag": "\"10d39-bh25fEPU4z899iPX6fFfY8ACYFU\"",
|
|
38111
|
-
"mtime": "2026-09-11T08:35:24.382Z",
|
|
38112
|
-
"size": 68921,
|
|
38113
|
-
"path": "../public/_nuxt/BuvcLKh1.js"
|
|
38613
|
+
"etag": "\"89e-avARWlfoAeMZaTQr0sXFqaRVGk4\"",
|
|
38614
|
+
"mtime": "2026-09-12T03:59:43.225Z",
|
|
38615
|
+
"size": 2206,
|
|
38616
|
+
"path": "../public/_nuxt/Cc_9VzD42.js"
|
|
38114
38617
|
},
|
|
38115
|
-
"/_nuxt/
|
|
38618
|
+
"/_nuxt/Cbq-mryP.js": {
|
|
38116
38619
|
"type": "text/javascript; charset=utf-8",
|
|
38117
|
-
"etag": "\"
|
|
38118
|
-
"mtime": "2026-09-
|
|
38119
|
-
"size":
|
|
38120
|
-
"path": "../public/_nuxt/
|
|
38620
|
+
"etag": "\"28a9-MWirBiv3ouIxepoJqTpjvo0d20Q\"",
|
|
38621
|
+
"mtime": "2026-09-12T03:59:43.225Z",
|
|
38622
|
+
"size": 10409,
|
|
38623
|
+
"path": "../public/_nuxt/Cbq-mryP.js"
|
|
38121
38624
|
},
|
|
38122
|
-
"/_nuxt/
|
|
38625
|
+
"/_nuxt/CdPzkOMV.js": {
|
|
38123
38626
|
"type": "text/javascript; charset=utf-8",
|
|
38124
|
-
"etag": "\"
|
|
38125
|
-
"mtime": "2026-09-
|
|
38126
|
-
"size":
|
|
38127
|
-
"path": "../public/_nuxt/
|
|
38627
|
+
"etag": "\"623-/ooRHZ1cBLnY/mPYTYuLzxenEjw\"",
|
|
38628
|
+
"mtime": "2026-09-12T03:59:43.225Z",
|
|
38629
|
+
"size": 1571,
|
|
38630
|
+
"path": "../public/_nuxt/CdPzkOMV.js"
|
|
38128
38631
|
},
|
|
38129
|
-
"/_nuxt/
|
|
38632
|
+
"/_nuxt/Cec0Ua3F.js": {
|
|
38130
38633
|
"type": "text/javascript; charset=utf-8",
|
|
38131
|
-
"etag": "\"
|
|
38132
|
-
"mtime": "2026-09-
|
|
38133
|
-
"size":
|
|
38134
|
-
"path": "../public/_nuxt/
|
|
38634
|
+
"etag": "\"1993-GdUyzzzMcfvjHxm7UFrX9akkoI0\"",
|
|
38635
|
+
"mtime": "2026-09-12T03:59:43.226Z",
|
|
38636
|
+
"size": 6547,
|
|
38637
|
+
"path": "../public/_nuxt/Cec0Ua3F.js"
|
|
38135
38638
|
},
|
|
38136
|
-
"/_nuxt/C-
|
|
38137
|
-
"type": "text/
|
|
38138
|
-
"etag": "\"
|
|
38139
|
-
"mtime": "2026-09-
|
|
38140
|
-
"size":
|
|
38141
|
-
"path": "../public/_nuxt/C-
|
|
38639
|
+
"/_nuxt/channel-templates.C-M5nKcC.css": {
|
|
38640
|
+
"type": "text/css; charset=utf-8",
|
|
38641
|
+
"etag": "\"846-tzs5DYP5eAKLaZTF1ToNjvfm6T8\"",
|
|
38642
|
+
"mtime": "2026-09-12T03:59:43.242Z",
|
|
38643
|
+
"size": 2118,
|
|
38644
|
+
"path": "../public/_nuxt/channel-templates.C-M5nKcC.css"
|
|
38142
38645
|
},
|
|
38143
|
-
"/_nuxt/
|
|
38646
|
+
"/_nuxt/CNs_Ozdc2.js": {
|
|
38144
38647
|
"type": "text/javascript; charset=utf-8",
|
|
38145
|
-
"etag": "\"
|
|
38146
|
-
"mtime": "2026-09-
|
|
38147
|
-
"size":
|
|
38148
|
-
"path": "../public/_nuxt/
|
|
38648
|
+
"etag": "\"1b-1MHUJYdBtOvbvPMaiQxDXp3lHyw\"",
|
|
38649
|
+
"mtime": "2026-09-12T03:59:43.223Z",
|
|
38650
|
+
"size": 27,
|
|
38651
|
+
"path": "../public/_nuxt/CNs_Ozdc2.js"
|
|
38149
38652
|
},
|
|
38150
|
-
"/_nuxt/
|
|
38653
|
+
"/_nuxt/CM12FuB42.js": {
|
|
38151
38654
|
"type": "text/javascript; charset=utf-8",
|
|
38152
|
-
"etag": "\"
|
|
38153
|
-
"mtime": "2026-09-
|
|
38154
|
-
"size":
|
|
38155
|
-
"path": "../public/_nuxt/
|
|
38655
|
+
"etag": "\"18b-zv5adDS5UoLhJMpSccvf5MniJLA\"",
|
|
38656
|
+
"mtime": "2026-09-12T03:59:43.223Z",
|
|
38657
|
+
"size": 395,
|
|
38658
|
+
"path": "../public/_nuxt/CM12FuB42.js"
|
|
38156
38659
|
},
|
|
38157
|
-
"/_nuxt/
|
|
38660
|
+
"/_nuxt/CojCTLKD.js": {
|
|
38158
38661
|
"type": "text/javascript; charset=utf-8",
|
|
38159
|
-
"etag": "\"
|
|
38160
|
-
"mtime": "2026-09-
|
|
38161
|
-
"size":
|
|
38162
|
-
"path": "../public/_nuxt/
|
|
38662
|
+
"etag": "\"11c5-6b4j7sZqh+T5P+aLRZ6XhkyJGyo\"",
|
|
38663
|
+
"mtime": "2026-09-12T03:59:43.227Z",
|
|
38664
|
+
"size": 4549,
|
|
38665
|
+
"path": "../public/_nuxt/CojCTLKD.js"
|
|
38163
38666
|
},
|
|
38164
|
-
"/_nuxt/
|
|
38667
|
+
"/_nuxt/CoNpEq5X.js": {
|
|
38165
38668
|
"type": "text/javascript; charset=utf-8",
|
|
38166
|
-
"etag": "\"
|
|
38167
|
-
"mtime": "2026-09-
|
|
38168
|
-
"size":
|
|
38169
|
-
"path": "../public/_nuxt/
|
|
38669
|
+
"etag": "\"2f1-FZU8z3/vTyhXK2ZmBtITplcBXmY\"",
|
|
38670
|
+
"mtime": "2026-09-12T03:59:43.226Z",
|
|
38671
|
+
"size": 753,
|
|
38672
|
+
"path": "../public/_nuxt/CoNpEq5X.js"
|
|
38170
38673
|
},
|
|
38171
|
-
"/_nuxt/
|
|
38674
|
+
"/_nuxt/Crod5z2f.js": {
|
|
38172
38675
|
"type": "text/javascript; charset=utf-8",
|
|
38173
|
-
"etag": "\"
|
|
38174
|
-
"mtime": "2026-09-
|
|
38175
|
-
"size":
|
|
38176
|
-
"path": "../public/_nuxt/
|
|
38676
|
+
"etag": "\"3d5-mS8/hK4dwayfb1YZWtzMVEWPF6g\"",
|
|
38677
|
+
"mtime": "2026-09-12T03:59:43.227Z",
|
|
38678
|
+
"size": 981,
|
|
38679
|
+
"path": "../public/_nuxt/Crod5z2f.js"
|
|
38177
38680
|
},
|
|
38178
|
-
"/_nuxt/
|
|
38681
|
+
"/_nuxt/CSkxz2NX.js": {
|
|
38179
38682
|
"type": "text/javascript; charset=utf-8",
|
|
38180
|
-
"etag": "\"
|
|
38181
|
-
"mtime": "2026-09-
|
|
38182
|
-
"size":
|
|
38183
|
-
"path": "../public/_nuxt/
|
|
38683
|
+
"etag": "\"1334d-Ivbd7+iw6XuJ8M1ljfz5AEuDZrs\"",
|
|
38684
|
+
"mtime": "2026-09-12T03:59:43.223Z",
|
|
38685
|
+
"size": 78669,
|
|
38686
|
+
"path": "../public/_nuxt/CSkxz2NX.js"
|
|
38184
38687
|
},
|
|
38185
|
-
"/_nuxt/
|
|
38688
|
+
"/_nuxt/CWKEp1wx2.js": {
|
|
38186
38689
|
"type": "text/javascript; charset=utf-8",
|
|
38187
|
-
"etag": "\"
|
|
38188
|
-
"mtime": "2026-09-
|
|
38189
|
-
"size":
|
|
38190
|
-
"path": "../public/_nuxt/
|
|
38690
|
+
"etag": "\"555-ED/tuOi0Qdk4aSGksbI58QY+vQ8\"",
|
|
38691
|
+
"mtime": "2026-09-12T03:59:43.223Z",
|
|
38692
|
+
"size": 1365,
|
|
38693
|
+
"path": "../public/_nuxt/CWKEp1wx2.js"
|
|
38191
38694
|
},
|
|
38192
|
-
"/_nuxt/
|
|
38695
|
+
"/_nuxt/CWoJjWmZ.js": {
|
|
38193
38696
|
"type": "text/javascript; charset=utf-8",
|
|
38194
|
-
"etag": "\"
|
|
38195
|
-
"mtime": "2026-09-
|
|
38196
|
-
"size":
|
|
38197
|
-
"path": "../public/_nuxt/
|
|
38198
|
-
},
|
|
38199
|
-
"/_nuxt/channel-templates.C-M5nKcC.css": {
|
|
38200
|
-
"type": "text/css; charset=utf-8",
|
|
38201
|
-
"etag": "\"846-tzs5DYP5eAKLaZTF1ToNjvfm6T8\"",
|
|
38202
|
-
"mtime": "2026-09-11T08:35:24.396Z",
|
|
38203
|
-
"size": 2118,
|
|
38204
|
-
"path": "../public/_nuxt/channel-templates.C-M5nKcC.css"
|
|
38697
|
+
"etag": "\"42-7Ccac6Eptzx/VGBNDzFAvw0P6lU\"",
|
|
38698
|
+
"mtime": "2026-09-12T03:59:43.223Z",
|
|
38699
|
+
"size": 66,
|
|
38700
|
+
"path": "../public/_nuxt/CWoJjWmZ.js"
|
|
38205
38701
|
},
|
|
38206
|
-
"/_nuxt/
|
|
38702
|
+
"/_nuxt/CZiw7sEV.js": {
|
|
38207
38703
|
"type": "text/javascript; charset=utf-8",
|
|
38208
|
-
"etag": "\"
|
|
38209
|
-
"mtime": "2026-09-
|
|
38210
|
-
"size":
|
|
38211
|
-
"path": "../public/_nuxt/
|
|
38704
|
+
"etag": "\"2d3b-ltYRPZ6fvOybrmOvkmkMnVB1IhA\"",
|
|
38705
|
+
"mtime": "2026-09-12T03:59:43.224Z",
|
|
38706
|
+
"size": 11579,
|
|
38707
|
+
"path": "../public/_nuxt/CZiw7sEV.js"
|
|
38212
38708
|
},
|
|
38213
|
-
"/_nuxt/
|
|
38709
|
+
"/_nuxt/CY9LbPCI.js": {
|
|
38214
38710
|
"type": "text/javascript; charset=utf-8",
|
|
38215
|
-
"etag": "\"
|
|
38216
|
-
"mtime": "2026-09-
|
|
38217
|
-
"size":
|
|
38218
|
-
"path": "../public/_nuxt/
|
|
38711
|
+
"etag": "\"3dab-L0ihOqle9YGGkDIZ1n27qT21mAo\"",
|
|
38712
|
+
"mtime": "2026-09-12T03:59:43.224Z",
|
|
38713
|
+
"size": 15787,
|
|
38714
|
+
"path": "../public/_nuxt/CY9LbPCI.js"
|
|
38219
38715
|
},
|
|
38220
|
-
"/_nuxt/
|
|
38716
|
+
"/_nuxt/CYWVXZTS.js": {
|
|
38221
38717
|
"type": "text/javascript; charset=utf-8",
|
|
38222
|
-
"etag": "\"
|
|
38223
|
-
"mtime": "2026-09-
|
|
38224
|
-
"size":
|
|
38225
|
-
"path": "../public/_nuxt/
|
|
38718
|
+
"etag": "\"1fdf-2SN2fQIRzi888CZqLLWMShlF9mc\"",
|
|
38719
|
+
"mtime": "2026-09-12T03:59:43.224Z",
|
|
38720
|
+
"size": 8159,
|
|
38721
|
+
"path": "../public/_nuxt/CYWVXZTS.js"
|
|
38226
38722
|
},
|
|
38227
|
-
"/_nuxt/
|
|
38723
|
+
"/_nuxt/CzlMDL5H.js": {
|
|
38228
38724
|
"type": "text/javascript; charset=utf-8",
|
|
38229
|
-
"etag": "\"
|
|
38230
|
-
"mtime": "2026-09-
|
|
38231
|
-
"size":
|
|
38232
|
-
"path": "../public/_nuxt/
|
|
38725
|
+
"etag": "\"9125-dP1WUSElrGrzZB2/J46sGS1t4MM\"",
|
|
38726
|
+
"mtime": "2026-09-12T03:59:43.227Z",
|
|
38727
|
+
"size": 37157,
|
|
38728
|
+
"path": "../public/_nuxt/CzlMDL5H.js"
|
|
38233
38729
|
},
|
|
38234
|
-
"/_nuxt/
|
|
38730
|
+
"/_nuxt/C_OLzD09.js": {
|
|
38235
38731
|
"type": "text/javascript; charset=utf-8",
|
|
38236
|
-
"etag": "\"
|
|
38237
|
-
"mtime": "2026-09-
|
|
38238
|
-
"size":
|
|
38239
|
-
"path": "../public/_nuxt/
|
|
38732
|
+
"etag": "\"210b-10X0chnaT8E+32rHtx6ZB643xnQ\"",
|
|
38733
|
+
"mtime": "2026-09-12T03:59:43.225Z",
|
|
38734
|
+
"size": 8459,
|
|
38735
|
+
"path": "../public/_nuxt/C_OLzD09.js"
|
|
38240
38736
|
},
|
|
38241
|
-
"/_nuxt/
|
|
38737
|
+
"/_nuxt/D0ZBQrN_2.js": {
|
|
38242
38738
|
"type": "text/javascript; charset=utf-8",
|
|
38243
|
-
"etag": "\"
|
|
38244
|
-
"mtime": "2026-09-
|
|
38245
|
-
"size":
|
|
38246
|
-
"path": "../public/_nuxt/
|
|
38739
|
+
"etag": "\"462-0ouITDqojxoQrlHfAjgz9yuwtnk\"",
|
|
38740
|
+
"mtime": "2026-09-12T03:59:43.227Z",
|
|
38741
|
+
"size": 1122,
|
|
38742
|
+
"path": "../public/_nuxt/D0ZBQrN_2.js"
|
|
38247
38743
|
},
|
|
38248
|
-
"/_nuxt/
|
|
38744
|
+
"/_nuxt/C__m4EhR.js": {
|
|
38249
38745
|
"type": "text/javascript; charset=utf-8",
|
|
38250
|
-
"etag": "\"
|
|
38251
|
-
"mtime": "2026-09-
|
|
38252
|
-
"size":
|
|
38253
|
-
"path": "../public/_nuxt/
|
|
38746
|
+
"etag": "\"496d-b/ZPXL6opL07ctddnDSvbWv3crU\"",
|
|
38747
|
+
"mtime": "2026-09-12T03:59:43.225Z",
|
|
38748
|
+
"size": 18797,
|
|
38749
|
+
"path": "../public/_nuxt/C__m4EhR.js"
|
|
38254
38750
|
},
|
|
38255
|
-
"/_nuxt/
|
|
38751
|
+
"/_nuxt/D6uzXueg.js": {
|
|
38256
38752
|
"type": "text/javascript; charset=utf-8",
|
|
38257
|
-
"etag": "\"
|
|
38258
|
-
"mtime": "2026-09-
|
|
38259
|
-
"size":
|
|
38260
|
-
"path": "../public/_nuxt/
|
|
38753
|
+
"etag": "\"3f2d-Qvezt1XBT/ai/Ii96P6PEqxX730\"",
|
|
38754
|
+
"mtime": "2026-09-12T03:59:43.228Z",
|
|
38755
|
+
"size": 16173,
|
|
38756
|
+
"path": "../public/_nuxt/D6uzXueg.js"
|
|
38261
38757
|
},
|
|
38262
|
-
"/_nuxt/
|
|
38758
|
+
"/_nuxt/D9Oidm5I.js": {
|
|
38263
38759
|
"type": "text/javascript; charset=utf-8",
|
|
38264
|
-
"etag": "\"
|
|
38265
|
-
"mtime": "2026-09-
|
|
38266
|
-
"size":
|
|
38267
|
-
"path": "../public/_nuxt/
|
|
38760
|
+
"etag": "\"29d-vUjiOrV6RvvMjy8bqbIIKVpv2qg\"",
|
|
38761
|
+
"mtime": "2026-09-12T03:59:43.228Z",
|
|
38762
|
+
"size": 669,
|
|
38763
|
+
"path": "../public/_nuxt/D9Oidm5I.js"
|
|
38268
38764
|
},
|
|
38269
|
-
"/_nuxt/
|
|
38765
|
+
"/_nuxt/D1YDxZpZ.js": {
|
|
38270
38766
|
"type": "text/javascript; charset=utf-8",
|
|
38271
|
-
"etag": "\"
|
|
38272
|
-
"mtime": "2026-09-
|
|
38273
|
-
"size":
|
|
38274
|
-
"path": "../public/_nuxt/
|
|
38767
|
+
"etag": "\"373d-vQBJMgqXZqjiLL5JDkPtggsr7/A\"",
|
|
38768
|
+
"mtime": "2026-09-12T03:59:43.227Z",
|
|
38769
|
+
"size": 14141,
|
|
38770
|
+
"path": "../public/_nuxt/D1YDxZpZ.js"
|
|
38275
38771
|
},
|
|
38276
|
-
"/_nuxt/
|
|
38772
|
+
"/_nuxt/DAe0h2MB.js": {
|
|
38277
38773
|
"type": "text/javascript; charset=utf-8",
|
|
38278
|
-
"etag": "\"
|
|
38279
|
-
"mtime": "2026-09-
|
|
38280
|
-
"size":
|
|
38281
|
-
"path": "../public/_nuxt/
|
|
38774
|
+
"etag": "\"472d-sNSO3lgXFkiAXskOa0EXqG2y91Y\"",
|
|
38775
|
+
"mtime": "2026-09-12T03:59:43.229Z",
|
|
38776
|
+
"size": 18221,
|
|
38777
|
+
"path": "../public/_nuxt/DAe0h2MB.js"
|
|
38282
38778
|
},
|
|
38283
|
-
"/_nuxt/
|
|
38779
|
+
"/_nuxt/D20Yamr4.js": {
|
|
38284
38780
|
"type": "text/javascript; charset=utf-8",
|
|
38285
|
-
"etag": "\"
|
|
38286
|
-
"mtime": "2026-09-
|
|
38287
|
-
"size":
|
|
38288
|
-
"path": "../public/_nuxt/
|
|
38781
|
+
"etag": "\"34e0-kHxgtavu/TqtFkh5WIroNe+fqeA\"",
|
|
38782
|
+
"mtime": "2026-09-12T03:59:43.228Z",
|
|
38783
|
+
"size": 13536,
|
|
38784
|
+
"path": "../public/_nuxt/D20Yamr4.js"
|
|
38289
38785
|
},
|
|
38290
|
-
"/_nuxt/
|
|
38291
|
-
"type": "text/
|
|
38292
|
-
"etag": "\"
|
|
38293
|
-
"mtime": "2026-09-
|
|
38294
|
-
"size":
|
|
38295
|
-
"path": "../public/_nuxt/
|
|
38786
|
+
"/_nuxt/dcw.DLYZqEhT.css": {
|
|
38787
|
+
"type": "text/css; charset=utf-8",
|
|
38788
|
+
"etag": "\"226e-H/BNammWITMmwjVcDe3temawvWY\"",
|
|
38789
|
+
"mtime": "2026-09-12T03:59:43.242Z",
|
|
38790
|
+
"size": 8814,
|
|
38791
|
+
"path": "../public/_nuxt/dcw.DLYZqEhT.css"
|
|
38296
38792
|
},
|
|
38297
|
-
"/_nuxt/
|
|
38298
|
-
"type": "text/
|
|
38299
|
-
"etag": "\"
|
|
38300
|
-
"mtime": "2026-09-
|
|
38301
|
-
"size":
|
|
38302
|
-
"path": "../public/_nuxt/
|
|
38793
|
+
"/_nuxt/daq.B3265ZDn.css": {
|
|
38794
|
+
"type": "text/css; charset=utf-8",
|
|
38795
|
+
"etag": "\"5716-d66zshbHGr48GGRyBvY2sfoJdQ0\"",
|
|
38796
|
+
"mtime": "2026-09-12T03:59:43.242Z",
|
|
38797
|
+
"size": 22294,
|
|
38798
|
+
"path": "../public/_nuxt/daq.B3265ZDn.css"
|
|
38303
38799
|
},
|
|
38304
|
-
"/_nuxt/
|
|
38800
|
+
"/_nuxt/DBHNsT1Y.js": {
|
|
38305
38801
|
"type": "text/javascript; charset=utf-8",
|
|
38306
|
-
"etag": "\"
|
|
38307
|
-
"mtime": "2026-09-
|
|
38308
|
-
"size":
|
|
38309
|
-
"path": "../public/_nuxt/
|
|
38802
|
+
"etag": "\"a6ea-PNGgN6dJ9yAlkTn986443/cv5Bg\"",
|
|
38803
|
+
"mtime": "2026-09-12T03:59:43.229Z",
|
|
38804
|
+
"size": 42730,
|
|
38805
|
+
"path": "../public/_nuxt/DBHNsT1Y.js"
|
|
38310
38806
|
},
|
|
38311
|
-
"/_nuxt/
|
|
38807
|
+
"/_nuxt/DdD9mCHM.js": {
|
|
38312
38808
|
"type": "text/javascript; charset=utf-8",
|
|
38313
|
-
"etag": "\"
|
|
38314
|
-
"mtime": "2026-09-
|
|
38315
|
-
"size":
|
|
38316
|
-
"path": "../public/_nuxt/
|
|
38809
|
+
"etag": "\"367e-omWo6yki7BAYCZUeWqjXVB4D12g\"",
|
|
38810
|
+
"mtime": "2026-09-12T03:59:43.232Z",
|
|
38811
|
+
"size": 13950,
|
|
38812
|
+
"path": "../public/_nuxt/DdD9mCHM.js"
|
|
38317
38813
|
},
|
|
38318
|
-
"/_nuxt/
|
|
38814
|
+
"/_nuxt/DDgJcSET.js": {
|
|
38319
38815
|
"type": "text/javascript; charset=utf-8",
|
|
38320
|
-
"etag": "\"
|
|
38321
|
-
"mtime": "2026-09-
|
|
38322
|
-
"size":
|
|
38323
|
-
"path": "../public/_nuxt/
|
|
38816
|
+
"etag": "\"10d2d-J5i2Bh5KGpWiMbirWVsqUXnECEM\"",
|
|
38817
|
+
"mtime": "2026-09-12T03:59:43.230Z",
|
|
38818
|
+
"size": 68909,
|
|
38819
|
+
"path": "../public/_nuxt/DDgJcSET.js"
|
|
38324
38820
|
},
|
|
38325
|
-
"/_nuxt/
|
|
38821
|
+
"/_nuxt/DDShH71m.js": {
|
|
38326
38822
|
"type": "text/javascript; charset=utf-8",
|
|
38327
|
-
"etag": "\"
|
|
38328
|
-
"mtime": "2026-09-
|
|
38329
|
-
"size":
|
|
38330
|
-
"path": "../public/_nuxt/
|
|
38823
|
+
"etag": "\"208b-0HsRaWwHxTBF3c2qeOvAD47ZMqc\"",
|
|
38824
|
+
"mtime": "2026-09-12T03:59:43.229Z",
|
|
38825
|
+
"size": 8331,
|
|
38826
|
+
"path": "../public/_nuxt/DDShH71m.js"
|
|
38331
38827
|
},
|
|
38332
|
-
"/_nuxt/
|
|
38828
|
+
"/_nuxt/DeyBFhKH2.js": {
|
|
38333
38829
|
"type": "text/javascript; charset=utf-8",
|
|
38334
|
-
"etag": "\"
|
|
38335
|
-
"mtime": "2026-09-
|
|
38336
|
-
"size":
|
|
38337
|
-
"path": "../public/_nuxt/
|
|
38338
|
-
},
|
|
38339
|
-
"/_nuxt/dcw.rXH2fc2Z.css": {
|
|
38340
|
-
"type": "text/css; charset=utf-8",
|
|
38341
|
-
"etag": "\"21ff-eCEj1LjsZGqaWA3e7HmSw6eii6c\"",
|
|
38342
|
-
"mtime": "2026-09-11T08:35:24.397Z",
|
|
38343
|
-
"size": 8703,
|
|
38344
|
-
"path": "../public/_nuxt/dcw.rXH2fc2Z.css"
|
|
38830
|
+
"etag": "\"de0-Yj9kKk3gjPDsLBddu+/SWVIcWAs\"",
|
|
38831
|
+
"mtime": "2026-09-12T03:59:43.233Z",
|
|
38832
|
+
"size": 3552,
|
|
38833
|
+
"path": "../public/_nuxt/DeyBFhKH2.js"
|
|
38345
38834
|
},
|
|
38346
|
-
"/_nuxt/
|
|
38835
|
+
"/_nuxt/DeJykBFf.js": {
|
|
38347
38836
|
"type": "text/javascript; charset=utf-8",
|
|
38348
|
-
"etag": "\"
|
|
38349
|
-
"mtime": "2026-09-
|
|
38350
|
-
"size":
|
|
38351
|
-
"path": "../public/_nuxt/
|
|
38352
|
-
},
|
|
38353
|
-
"/_nuxt/daq.Bb6l44-O.css": {
|
|
38354
|
-
"type": "text/css; charset=utf-8",
|
|
38355
|
-
"etag": "\"566b-xIfGRXMPjOr3Vjd3F9p2MkDmMgE\"",
|
|
38356
|
-
"mtime": "2026-09-11T08:35:24.397Z",
|
|
38357
|
-
"size": 22123,
|
|
38358
|
-
"path": "../public/_nuxt/daq.Bb6l44-O.css"
|
|
38837
|
+
"etag": "\"334a-u9bmdQK8w/dApegtnDfx3UMudy0\"",
|
|
38838
|
+
"mtime": "2026-09-12T03:59:43.232Z",
|
|
38839
|
+
"size": 13130,
|
|
38840
|
+
"path": "../public/_nuxt/DeJykBFf.js"
|
|
38359
38841
|
},
|
|
38360
38842
|
"/_nuxt/DeYsUzhr.js": {
|
|
38361
38843
|
"type": "text/javascript; charset=utf-8",
|
|
38362
38844
|
"etag": "\"287-ALaKQkZWM37K7ru31bg511e8ikI\"",
|
|
38363
|
-
"mtime": "2026-09-
|
|
38845
|
+
"mtime": "2026-09-12T03:59:43.233Z",
|
|
38364
38846
|
"size": 647,
|
|
38365
38847
|
"path": "../public/_nuxt/DeYsUzhr.js"
|
|
38366
38848
|
},
|
|
38367
|
-
"/_nuxt/default.
|
|
38849
|
+
"/_nuxt/default.DE_vT238.css": {
|
|
38368
38850
|
"type": "text/css; charset=utf-8",
|
|
38369
|
-
"etag": "\"
|
|
38370
|
-
"mtime": "2026-09-
|
|
38371
|
-
"size":
|
|
38372
|
-
"path": "../public/_nuxt/default.
|
|
38851
|
+
"etag": "\"3383-KOL7cduQcGPwgDzvdpujb8cbadk\"",
|
|
38852
|
+
"mtime": "2026-09-12T03:59:43.243Z",
|
|
38853
|
+
"size": 13187,
|
|
38854
|
+
"path": "../public/_nuxt/default.DE_vT238.css"
|
|
38373
38855
|
},
|
|
38374
|
-
"/_nuxt/
|
|
38856
|
+
"/_nuxt/DIaZ2PTo2.js": {
|
|
38375
38857
|
"type": "text/javascript; charset=utf-8",
|
|
38376
|
-
"etag": "\"
|
|
38377
|
-
"mtime": "2026-09-
|
|
38378
|
-
"size":
|
|
38379
|
-
"path": "../public/_nuxt/
|
|
38380
|
-
},
|
|
38381
|
-
"/_nuxt/DLljr7g0.js": {
|
|
38382
|
-
"type": "text/javascript; charset=utf-8",
|
|
38383
|
-
"etag": "\"e476-VQA4IJLzQzu/XZWihB2Sdw3aL+M\"",
|
|
38384
|
-
"mtime": "2026-09-11T08:35:24.389Z",
|
|
38385
|
-
"size": 58486,
|
|
38386
|
-
"path": "../public/_nuxt/DLljr7g0.js"
|
|
38858
|
+
"etag": "\"b14-0G25NjaOjPL8pUTCqFfHo9IuyOU\"",
|
|
38859
|
+
"mtime": "2026-09-12T03:59:43.230Z",
|
|
38860
|
+
"size": 2836,
|
|
38861
|
+
"path": "../public/_nuxt/DIaZ2PTo2.js"
|
|
38387
38862
|
},
|
|
38388
38863
|
"/_nuxt/DIOBYJe3.js": {
|
|
38389
38864
|
"type": "text/javascript; charset=utf-8",
|
|
38390
38865
|
"etag": "\"4b5-DdWaiyBS+/JejqhLG4Q7/JprP2Q\"",
|
|
38391
|
-
"mtime": "2026-09-
|
|
38866
|
+
"mtime": "2026-09-12T03:59:43.230Z",
|
|
38392
38867
|
"size": 1205,
|
|
38393
38868
|
"path": "../public/_nuxt/DIOBYJe3.js"
|
|
38394
38869
|
},
|
|
38395
|
-
"/_nuxt/
|
|
38870
|
+
"/_nuxt/DkGQ7lnb2.js": {
|
|
38396
38871
|
"type": "text/javascript; charset=utf-8",
|
|
38397
|
-
"etag": "\"
|
|
38398
|
-
"mtime": "2026-09-
|
|
38399
|
-
"size":
|
|
38400
|
-
"path": "../public/_nuxt/
|
|
38872
|
+
"etag": "\"10e-BEf1fw3Luoou0jWXn/VjweK3eFg\"",
|
|
38873
|
+
"mtime": "2026-09-12T03:59:43.234Z",
|
|
38874
|
+
"size": 270,
|
|
38875
|
+
"path": "../public/_nuxt/DkGQ7lnb2.js"
|
|
38401
38876
|
},
|
|
38402
|
-
"/_nuxt/
|
|
38877
|
+
"/_nuxt/DHFrCUxA2.js": {
|
|
38403
38878
|
"type": "text/javascript; charset=utf-8",
|
|
38404
|
-
"etag": "\"
|
|
38405
|
-
"mtime": "2026-09-
|
|
38406
|
-
"size":
|
|
38407
|
-
"path": "../public/_nuxt/
|
|
38879
|
+
"etag": "\"6a25-yH+Kt/gXrDj++gPlxRCMxjita4o\"",
|
|
38880
|
+
"mtime": "2026-09-12T03:59:43.230Z",
|
|
38881
|
+
"size": 27173,
|
|
38882
|
+
"path": "../public/_nuxt/DHFrCUxA2.js"
|
|
38408
38883
|
},
|
|
38409
|
-
"/_nuxt/
|
|
38884
|
+
"/_nuxt/DnUuIR83.js": {
|
|
38410
38885
|
"type": "text/javascript; charset=utf-8",
|
|
38411
|
-
"etag": "\"
|
|
38412
|
-
"mtime": "2026-09-
|
|
38413
|
-
"size":
|
|
38414
|
-
"path": "../public/_nuxt/
|
|
38886
|
+
"etag": "\"25e9-8nbC9HSsBhQz/JBDCkuVLAvVelM\"",
|
|
38887
|
+
"mtime": "2026-09-12T03:59:43.234Z",
|
|
38888
|
+
"size": 9705,
|
|
38889
|
+
"path": "../public/_nuxt/DnUuIR83.js"
|
|
38415
38890
|
},
|
|
38416
|
-
"/_nuxt/
|
|
38891
|
+
"/_nuxt/DmqknNvV.js": {
|
|
38417
38892
|
"type": "text/javascript; charset=utf-8",
|
|
38418
|
-
"etag": "\"
|
|
38419
|
-
"mtime": "2026-09-
|
|
38420
|
-
"size":
|
|
38421
|
-
"path": "../public/_nuxt/
|
|
38893
|
+
"etag": "\"26be4-2hzvX3cIxgA2eSHJiw0fjKz7dsY\"",
|
|
38894
|
+
"mtime": "2026-09-12T03:59:43.234Z",
|
|
38895
|
+
"size": 158692,
|
|
38896
|
+
"path": "../public/_nuxt/DmqknNvV.js"
|
|
38422
38897
|
},
|
|
38423
|
-
"/_nuxt/
|
|
38898
|
+
"/_nuxt/DPnwL14Y.js": {
|
|
38424
38899
|
"type": "text/javascript; charset=utf-8",
|
|
38425
|
-
"etag": "\"
|
|
38426
|
-
"mtime": "2026-09-
|
|
38427
|
-
"size":
|
|
38428
|
-
"path": "../public/_nuxt/
|
|
38900
|
+
"etag": "\"1d26-XSq9sA2ArdeEv8EAehmtwVgJuzE\"",
|
|
38901
|
+
"mtime": "2026-09-12T03:59:43.231Z",
|
|
38902
|
+
"size": 7462,
|
|
38903
|
+
"path": "../public/_nuxt/DPnwL14Y.js"
|
|
38429
38904
|
},
|
|
38430
|
-
"/_nuxt/
|
|
38905
|
+
"/_nuxt/DR12_WCA.js": {
|
|
38431
38906
|
"type": "text/javascript; charset=utf-8",
|
|
38432
|
-
"etag": "\"
|
|
38433
|
-
"mtime": "2026-09-
|
|
38434
|
-
"size":
|
|
38435
|
-
"path": "../public/_nuxt/
|
|
38907
|
+
"etag": "\"7e8c-cnN52Tex5ueiXHiBbehql11WL2w\"",
|
|
38908
|
+
"mtime": "2026-09-12T03:59:43.231Z",
|
|
38909
|
+
"size": 32396,
|
|
38910
|
+
"path": "../public/_nuxt/DR12_WCA.js"
|
|
38436
38911
|
},
|
|
38437
|
-
"/_nuxt/
|
|
38912
|
+
"/_nuxt/DrYV5i68.js": {
|
|
38438
38913
|
"type": "text/javascript; charset=utf-8",
|
|
38439
|
-
"etag": "\"
|
|
38440
|
-
"mtime": "2026-09-
|
|
38441
|
-
"size":
|
|
38442
|
-
"path": "../public/_nuxt/
|
|
38914
|
+
"etag": "\"247c-c3SMdj/FgJdc1JQtOVxTE/w+KWc\"",
|
|
38915
|
+
"mtime": "2026-09-12T03:59:43.235Z",
|
|
38916
|
+
"size": 9340,
|
|
38917
|
+
"path": "../public/_nuxt/DrYV5i68.js"
|
|
38443
38918
|
},
|
|
38444
|
-
"/_nuxt/
|
|
38919
|
+
"/_nuxt/DVsjtsvZ2.js": {
|
|
38445
38920
|
"type": "text/javascript; charset=utf-8",
|
|
38446
|
-
"etag": "\"
|
|
38447
|
-
"mtime": "2026-09-
|
|
38448
|
-
"size":
|
|
38449
|
-
"path": "../public/_nuxt/
|
|
38921
|
+
"etag": "\"5ad7-SJw11mAwm8ecvvMfEtiG2ti53z8\"",
|
|
38922
|
+
"mtime": "2026-09-12T03:59:43.231Z",
|
|
38923
|
+
"size": 23255,
|
|
38924
|
+
"path": "../public/_nuxt/DVsjtsvZ2.js"
|
|
38450
38925
|
},
|
|
38451
|
-
"/_nuxt/
|
|
38926
|
+
"/_nuxt/DtYHUi5Z.js": {
|
|
38452
38927
|
"type": "text/javascript; charset=utf-8",
|
|
38453
|
-
"etag": "\"
|
|
38454
|
-
"mtime": "2026-09-
|
|
38455
|
-
"size":
|
|
38456
|
-
"path": "../public/_nuxt/
|
|
38928
|
+
"etag": "\"2435-K8RPT3nu03HotXRj2dJy+ny1j2A\"",
|
|
38929
|
+
"mtime": "2026-09-12T03:59:43.235Z",
|
|
38930
|
+
"size": 9269,
|
|
38931
|
+
"path": "../public/_nuxt/DtYHUi5Z.js"
|
|
38457
38932
|
},
|
|
38458
|
-
"/_nuxt/
|
|
38933
|
+
"/_nuxt/DZtm4l-P2.js": {
|
|
38459
38934
|
"type": "text/javascript; charset=utf-8",
|
|
38460
|
-
"etag": "\"
|
|
38461
|
-
"mtime": "2026-09-
|
|
38462
|
-
"size":
|
|
38463
|
-
"path": "../public/_nuxt/
|
|
38935
|
+
"etag": "\"1876-xVj/E45RroZBjWvEiBrZZOcvgoI\"",
|
|
38936
|
+
"mtime": "2026-09-12T03:59:43.232Z",
|
|
38937
|
+
"size": 6262,
|
|
38938
|
+
"path": "../public/_nuxt/DZtm4l-P2.js"
|
|
38464
38939
|
},
|
|
38465
|
-
"/_nuxt/
|
|
38940
|
+
"/_nuxt/DzbFpZRk.js": {
|
|
38466
38941
|
"type": "text/javascript; charset=utf-8",
|
|
38467
|
-
"etag": "\"
|
|
38468
|
-
"mtime": "2026-09-
|
|
38469
|
-
"size":
|
|
38470
|
-
"path": "../public/_nuxt/
|
|
38942
|
+
"etag": "\"12d7-yzX3bY+yjWI2Ir8cswaDbLtltvQ\"",
|
|
38943
|
+
"mtime": "2026-09-12T03:59:43.235Z",
|
|
38944
|
+
"size": 4823,
|
|
38945
|
+
"path": "../public/_nuxt/DzbFpZRk.js"
|
|
38471
38946
|
},
|
|
38472
|
-
"/_nuxt/
|
|
38473
|
-
"type": "
|
|
38474
|
-
"etag": "\"
|
|
38475
|
-
"mtime": "2026-09-
|
|
38476
|
-
"size":
|
|
38477
|
-
"path": "../public/_nuxt/
|
|
38947
|
+
"/_nuxt/Dz_Q3Lpw2.js": {
|
|
38948
|
+
"type": "text/javascript; charset=utf-8",
|
|
38949
|
+
"etag": "\"39d2-I7HGf3BtAL6slz4WB2XKvH99HmQ\"",
|
|
38950
|
+
"mtime": "2026-09-12T03:59:43.235Z",
|
|
38951
|
+
"size": 14802,
|
|
38952
|
+
"path": "../public/_nuxt/Dz_Q3Lpw2.js"
|
|
38953
|
+
},
|
|
38954
|
+
"/_nuxt/eb-garamond-cyrillic-400-italic.BZInx2ys.woff": {
|
|
38955
|
+
"type": "font/woff",
|
|
38956
|
+
"etag": "\"3f04-1MKyFKXvChwQTK9MnbAM3SwAP/w\"",
|
|
38957
|
+
"mtime": "2026-09-12T03:59:43.243Z",
|
|
38958
|
+
"size": 16132,
|
|
38959
|
+
"path": "../public/_nuxt/eb-garamond-cyrillic-400-italic.BZInx2ys.woff"
|
|
38478
38960
|
},
|
|
38479
38961
|
"/_nuxt/eb-garamond-cyrillic-400-normal.C0kVTdou.woff": {
|
|
38480
38962
|
"type": "font/woff",
|
|
38481
38963
|
"etag": "\"3c88-Q5XoFKe1rGp1UkdvSR6MtPcFfgQ\"",
|
|
38482
|
-
"mtime": "2026-09-
|
|
38964
|
+
"mtime": "2026-09-12T03:59:43.243Z",
|
|
38483
38965
|
"size": 15496,
|
|
38484
38966
|
"path": "../public/_nuxt/eb-garamond-cyrillic-400-normal.C0kVTdou.woff"
|
|
38485
38967
|
},
|
|
38486
|
-
"/_nuxt/eb-garamond-cyrillic-400-italic.
|
|
38487
|
-
"type": "font/
|
|
38488
|
-
"etag": "\"
|
|
38489
|
-
"mtime": "2026-09-
|
|
38490
|
-
"size":
|
|
38491
|
-
"path": "../public/_nuxt/eb-garamond-cyrillic-400-italic.
|
|
38968
|
+
"/_nuxt/eb-garamond-cyrillic-400-italic.BGIwiowF.woff2": {
|
|
38969
|
+
"type": "font/woff2",
|
|
38970
|
+
"etag": "\"3504-t17DeaJZ5CiTr/7PdWXcRgN9/Yc\"",
|
|
38971
|
+
"mtime": "2026-09-12T03:59:43.243Z",
|
|
38972
|
+
"size": 13572,
|
|
38973
|
+
"path": "../public/_nuxt/eb-garamond-cyrillic-400-italic.BGIwiowF.woff2"
|
|
38492
38974
|
},
|
|
38493
38975
|
"/_nuxt/eb-garamond-cyrillic-400-normal.DDLP67lu.woff2": {
|
|
38494
38976
|
"type": "font/woff2",
|
|
38495
38977
|
"etag": "\"33d4-lVrdxXudnaWAAL0JfU6b+yZGpK0\"",
|
|
38496
|
-
"mtime": "2026-09-
|
|
38978
|
+
"mtime": "2026-09-12T03:59:43.244Z",
|
|
38497
38979
|
"size": 13268,
|
|
38498
38980
|
"path": "../public/_nuxt/eb-garamond-cyrillic-400-normal.DDLP67lu.woff2"
|
|
38499
38981
|
},
|
|
38500
|
-
"/_nuxt/
|
|
38501
|
-
"type": "
|
|
38502
|
-
"etag": "\"
|
|
38503
|
-
"mtime": "2026-09-
|
|
38504
|
-
"size":
|
|
38505
|
-
"path": "../public/_nuxt/
|
|
38982
|
+
"/_nuxt/eb-garamond-cyrillic-ext-400-italic.Bz1w3xqM.woff2": {
|
|
38983
|
+
"type": "font/woff2",
|
|
38984
|
+
"etag": "\"4620-AEmSjSDDFDLAiok0BdjqqFs2mx4\"",
|
|
38985
|
+
"mtime": "2026-09-12T03:59:43.244Z",
|
|
38986
|
+
"size": 17952,
|
|
38987
|
+
"path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-italic.Bz1w3xqM.woff2"
|
|
38506
38988
|
},
|
|
38507
38989
|
"/_nuxt/eb-garamond-cyrillic-ext-400-italic.CYS3phfl.woff": {
|
|
38508
38990
|
"type": "font/woff",
|
|
38509
38991
|
"etag": "\"5698-6bgErOYTElI0Z3Untp+h0Xi0FGs\"",
|
|
38510
|
-
"mtime": "2026-09-
|
|
38992
|
+
"mtime": "2026-09-12T03:59:43.244Z",
|
|
38511
38993
|
"size": 22168,
|
|
38512
38994
|
"path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-italic.CYS3phfl.woff"
|
|
38513
38995
|
},
|
|
38514
|
-
"/_nuxt/eb-garamond-cyrillic-ext-400-
|
|
38515
|
-
"type": "font/
|
|
38516
|
-
"etag": "\"
|
|
38517
|
-
"mtime": "2026-09-
|
|
38518
|
-
"size":
|
|
38519
|
-
"path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-
|
|
38996
|
+
"/_nuxt/eb-garamond-cyrillic-ext-400-normal.DG8lny6_.woff": {
|
|
38997
|
+
"type": "font/woff",
|
|
38998
|
+
"etag": "\"4fcc-Wt58DNvJEH8PhhsEwR/fAuZLZf0\"",
|
|
38999
|
+
"mtime": "2026-09-12T03:59:43.245Z",
|
|
39000
|
+
"size": 20428,
|
|
39001
|
+
"path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-normal.DG8lny6_.woff"
|
|
38520
39002
|
},
|
|
38521
39003
|
"/_nuxt/eb-garamond-cyrillic-ext-400-normal.o8fRvAFQ.woff2": {
|
|
38522
39004
|
"type": "font/woff2",
|
|
38523
39005
|
"etag": "\"419c-BgVrkDzxBAskhVuAe8ZPKrVJ2vk\"",
|
|
38524
|
-
"mtime": "2026-09-
|
|
39006
|
+
"mtime": "2026-09-12T03:59:43.245Z",
|
|
38525
39007
|
"size": 16796,
|
|
38526
39008
|
"path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-normal.o8fRvAFQ.woff2"
|
|
38527
39009
|
},
|
|
38528
|
-
"/_nuxt/eb-garamond-cyrillic-ext-400-normal.DG8lny6_.woff": {
|
|
38529
|
-
"type": "font/woff",
|
|
38530
|
-
"etag": "\"4fcc-Wt58DNvJEH8PhhsEwR/fAuZLZf0\"",
|
|
38531
|
-
"mtime": "2026-09-11T08:35:24.398Z",
|
|
38532
|
-
"size": 20428,
|
|
38533
|
-
"path": "../public/_nuxt/eb-garamond-cyrillic-ext-400-normal.DG8lny6_.woff"
|
|
38534
|
-
},
|
|
38535
39010
|
"/_nuxt/eb-garamond-greek-400-italic.BamGE6QP.woff": {
|
|
38536
39011
|
"type": "font/woff",
|
|
38537
39012
|
"etag": "\"307c-Fmorq8T0Tyl1FByuAGfnIMJMsU0\"",
|
|
38538
|
-
"mtime": "2026-09-
|
|
39013
|
+
"mtime": "2026-09-12T03:59:43.245Z",
|
|
38539
39014
|
"size": 12412,
|
|
38540
39015
|
"path": "../public/_nuxt/eb-garamond-greek-400-italic.BamGE6QP.woff"
|
|
38541
39016
|
},
|
|
38542
39017
|
"/_nuxt/eb-garamond-greek-400-italic.Dqr5KC66.woff2": {
|
|
38543
39018
|
"type": "font/woff2",
|
|
38544
39019
|
"etag": "\"2904-BXAeLh8O+jrT8ujKrV7WtU2zP1c\"",
|
|
38545
|
-
"mtime": "2026-09-
|
|
39020
|
+
"mtime": "2026-09-12T03:59:43.245Z",
|
|
38546
39021
|
"size": 10500,
|
|
38547
39022
|
"path": "../public/_nuxt/eb-garamond-greek-400-italic.Dqr5KC66.woff2"
|
|
38548
39023
|
},
|
|
38549
|
-
"/_nuxt/eb-garamond-greek-400-normal.CVAbzS9p.woff2": {
|
|
38550
|
-
"type": "font/woff2",
|
|
38551
|
-
"etag": "\"2a00-ZNzj8SIiN3t2N23u++WhC6jE8gk\"",
|
|
38552
|
-
"mtime": "2026-09-11T08:35:24.399Z",
|
|
38553
|
-
"size": 10752,
|
|
38554
|
-
"path": "../public/_nuxt/eb-garamond-greek-400-normal.CVAbzS9p.woff2"
|
|
38555
|
-
},
|
|
38556
39024
|
"/_nuxt/eb-garamond-greek-400-normal.d4JlP2QH.woff": {
|
|
38557
39025
|
"type": "font/woff",
|
|
38558
39026
|
"etag": "\"3108-ggShwQ6kE+MAR7EEQafdmWunxHg\"",
|
|
38559
|
-
"mtime": "2026-09-
|
|
39027
|
+
"mtime": "2026-09-12T03:59:43.246Z",
|
|
38560
39028
|
"size": 12552,
|
|
38561
39029
|
"path": "../public/_nuxt/eb-garamond-greek-400-normal.d4JlP2QH.woff"
|
|
38562
39030
|
},
|
|
39031
|
+
"/_nuxt/eb-garamond-greek-400-normal.CVAbzS9p.woff2": {
|
|
39032
|
+
"type": "font/woff2",
|
|
39033
|
+
"etag": "\"2a00-ZNzj8SIiN3t2N23u++WhC6jE8gk\"",
|
|
39034
|
+
"mtime": "2026-09-12T03:59:43.245Z",
|
|
39035
|
+
"size": 10752,
|
|
39036
|
+
"path": "../public/_nuxt/eb-garamond-greek-400-normal.CVAbzS9p.woff2"
|
|
39037
|
+
},
|
|
38563
39038
|
"/_nuxt/eb-garamond-greek-ext-400-italic.BL1XYHtS.woff": {
|
|
38564
39039
|
"type": "font/woff",
|
|
38565
39040
|
"etag": "\"2304-q8ppn7qePqLys53UrEKMrGT8e6E\"",
|
|
38566
|
-
"mtime": "2026-09-
|
|
39041
|
+
"mtime": "2026-09-12T03:59:43.246Z",
|
|
38567
39042
|
"size": 8964,
|
|
38568
39043
|
"path": "../public/_nuxt/eb-garamond-greek-ext-400-italic.BL1XYHtS.woff"
|
|
38569
39044
|
},
|
|
39045
|
+
"/_nuxt/eb-garamond-greek-ext-400-normal.BaZl8BIK.woff": {
|
|
39046
|
+
"type": "font/woff",
|
|
39047
|
+
"etag": "\"20b0-FNV/ZgjupejIrGOsz4+8EYVUXHo\"",
|
|
39048
|
+
"mtime": "2026-09-12T03:59:43.247Z",
|
|
39049
|
+
"size": 8368,
|
|
39050
|
+
"path": "../public/_nuxt/eb-garamond-greek-ext-400-normal.BaZl8BIK.woff"
|
|
39051
|
+
},
|
|
39052
|
+
"/_nuxt/DYr1VMiQ.js": {
|
|
39053
|
+
"type": "text/javascript; charset=utf-8",
|
|
39054
|
+
"etag": "\"14128-u+iLJm1OCFSZy6SZdZC9SpDNZKM\"",
|
|
39055
|
+
"mtime": "2026-09-12T03:59:43.232Z",
|
|
39056
|
+
"size": 82216,
|
|
39057
|
+
"path": "../public/_nuxt/DYr1VMiQ.js"
|
|
39058
|
+
},
|
|
38570
39059
|
"/_nuxt/eb-garamond-greek-ext-400-italic.CHZOQEtG.woff2": {
|
|
38571
39060
|
"type": "font/woff2",
|
|
38572
39061
|
"etag": "\"19d0-ppOK6AfNTXYuDEeeEMQQhOypGW8\"",
|
|
38573
|
-
"mtime": "2026-09-
|
|
39062
|
+
"mtime": "2026-09-12T03:59:43.246Z",
|
|
38574
39063
|
"size": 6608,
|
|
38575
39064
|
"path": "../public/_nuxt/eb-garamond-greek-ext-400-italic.CHZOQEtG.woff2"
|
|
38576
39065
|
},
|
|
38577
|
-
"/_nuxt/
|
|
38578
|
-
"type": "
|
|
38579
|
-
"etag": "\"
|
|
38580
|
-
"mtime": "2026-09-
|
|
38581
|
-
"size":
|
|
38582
|
-
"path": "../public/_nuxt/
|
|
39066
|
+
"/_nuxt/DUrecWPx.js": {
|
|
39067
|
+
"type": "text/javascript; charset=utf-8",
|
|
39068
|
+
"etag": "\"9095e-l1Y5uaqwCSwzDmMZvMC0IgZ+OHM\"",
|
|
39069
|
+
"mtime": "2026-09-12T03:59:43.231Z",
|
|
39070
|
+
"size": 592222,
|
|
39071
|
+
"path": "../public/_nuxt/DUrecWPx.js"
|
|
38583
39072
|
},
|
|
38584
39073
|
"/_nuxt/eb-garamond-greek-ext-400-normal.K8pwR3tn.woff2": {
|
|
38585
39074
|
"type": "font/woff2",
|
|
38586
39075
|
"etag": "\"1940-Y3hsqG2RXMGI9hHTiI+Nv2Q4msM\"",
|
|
38587
|
-
"mtime": "2026-09-
|
|
39076
|
+
"mtime": "2026-09-12T03:59:43.247Z",
|
|
38588
39077
|
"size": 6464,
|
|
38589
39078
|
"path": "../public/_nuxt/eb-garamond-greek-ext-400-normal.K8pwR3tn.woff2"
|
|
38590
39079
|
},
|
|
38591
39080
|
"/_nuxt/eb-garamond-latin-400-italic.CDFyLPXJ.woff": {
|
|
38592
39081
|
"type": "font/woff",
|
|
38593
39082
|
"etag": "\"7890-VX8YYh09367bg28IWSUybEXrsDQ\"",
|
|
38594
|
-
"mtime": "2026-09-
|
|
39083
|
+
"mtime": "2026-09-12T03:59:43.247Z",
|
|
38595
39084
|
"size": 30864,
|
|
38596
39085
|
"path": "../public/_nuxt/eb-garamond-latin-400-italic.CDFyLPXJ.woff"
|
|
38597
39086
|
},
|
|
38598
|
-
"/_nuxt/eb-garamond-latin-400-normal.maQnHeKB.woff": {
|
|
38599
|
-
"type": "font/woff",
|
|
38600
|
-
"etag": "\"6fc0-tKFcVMt7ocp7dmWyG6/kxtP5mKY\"",
|
|
38601
|
-
"mtime": "2026-09-11T08:35:24.400Z",
|
|
38602
|
-
"size": 28608,
|
|
38603
|
-
"path": "../public/_nuxt/eb-garamond-latin-400-normal.maQnHeKB.woff"
|
|
38604
|
-
},
|
|
38605
39087
|
"/_nuxt/eb-garamond-latin-400-italic.DSEbMgZu.woff2": {
|
|
38606
39088
|
"type": "font/woff2",
|
|
38607
39089
|
"etag": "\"632c-iB8RNlBCm9D0APLcMJ/hIPATx+0\"",
|
|
38608
|
-
"mtime": "2026-09-
|
|
39090
|
+
"mtime": "2026-09-12T03:59:43.247Z",
|
|
38609
39091
|
"size": 25388,
|
|
38610
39092
|
"path": "../public/_nuxt/eb-garamond-latin-400-italic.DSEbMgZu.woff2"
|
|
38611
39093
|
},
|
|
38612
39094
|
"/_nuxt/eb-garamond-latin-400-normal.BCNrxLz_.woff2": {
|
|
38613
39095
|
"type": "font/woff2",
|
|
38614
39096
|
"etag": "\"5d0c-w7FmIa34l5RBoJYmvp9lwadEvW4\"",
|
|
38615
|
-
"mtime": "2026-09-
|
|
39097
|
+
"mtime": "2026-09-12T03:59:43.247Z",
|
|
38616
39098
|
"size": 23820,
|
|
38617
39099
|
"path": "../public/_nuxt/eb-garamond-latin-400-normal.BCNrxLz_.woff2"
|
|
38618
39100
|
},
|
|
39101
|
+
"/_nuxt/eb-garamond-latin-400-normal.maQnHeKB.woff": {
|
|
39102
|
+
"type": "font/woff",
|
|
39103
|
+
"etag": "\"6fc0-tKFcVMt7ocp7dmWyG6/kxtP5mKY\"",
|
|
39104
|
+
"mtime": "2026-09-12T03:59:43.248Z",
|
|
39105
|
+
"size": 28608,
|
|
39106
|
+
"path": "../public/_nuxt/eb-garamond-latin-400-normal.maQnHeKB.woff"
|
|
39107
|
+
},
|
|
38619
39108
|
"/_nuxt/eb-garamond-latin-ext-400-italic.DUSsnRSD.woff": {
|
|
38620
39109
|
"type": "font/woff",
|
|
38621
39110
|
"etag": "\"f5b8-o98RIl4uKzIPJHZZpEI+mI17K3c\"",
|
|
38622
|
-
"mtime": "2026-09-
|
|
39111
|
+
"mtime": "2026-09-12T03:59:43.248Z",
|
|
38623
39112
|
"size": 62904,
|
|
38624
39113
|
"path": "../public/_nuxt/eb-garamond-latin-ext-400-italic.DUSsnRSD.woff"
|
|
38625
39114
|
},
|
|
38626
39115
|
"/_nuxt/eb-garamond-latin-ext-400-italic.V7s3nWfX.woff2": {
|
|
38627
39116
|
"type": "font/woff2",
|
|
38628
39117
|
"etag": "\"b19c-7qms9anmdJJsBixQTHSocgV31Qk\"",
|
|
38629
|
-
"mtime": "2026-09-
|
|
39118
|
+
"mtime": "2026-09-12T03:59:43.248Z",
|
|
38630
39119
|
"size": 45468,
|
|
38631
39120
|
"path": "../public/_nuxt/eb-garamond-latin-ext-400-italic.V7s3nWfX.woff2"
|
|
38632
39121
|
},
|
|
38633
39122
|
"/_nuxt/eb-garamond-latin-ext-400-normal.B4EmgUmt.woff": {
|
|
38634
39123
|
"type": "font/woff",
|
|
38635
39124
|
"etag": "\"12b44-jg/K3aZca4XOngCAf1Jh47/0cj8\"",
|
|
38636
|
-
"mtime": "2026-09-
|
|
39125
|
+
"mtime": "2026-09-12T03:59:43.248Z",
|
|
38637
39126
|
"size": 76612,
|
|
38638
39127
|
"path": "../public/_nuxt/eb-garamond-latin-ext-400-normal.B4EmgUmt.woff"
|
|
38639
39128
|
},
|
|
38640
|
-
"/_nuxt/eb-garamond-vietnamese-400-italic.
|
|
38641
|
-
"type": "font/
|
|
38642
|
-
"etag": "\"
|
|
38643
|
-
"mtime": "2026-09-
|
|
38644
|
-
"size":
|
|
38645
|
-
"path": "../public/_nuxt/eb-garamond-vietnamese-400-italic.
|
|
39129
|
+
"/_nuxt/eb-garamond-vietnamese-400-italic.DQ8HKnks.woff2": {
|
|
39130
|
+
"type": "font/woff2",
|
|
39131
|
+
"etag": "\"187c-Wj36AOh9OjwDZT5W3eeao1D/NT4\"",
|
|
39132
|
+
"mtime": "2026-09-12T03:59:43.249Z",
|
|
39133
|
+
"size": 6268,
|
|
39134
|
+
"path": "../public/_nuxt/eb-garamond-vietnamese-400-italic.DQ8HKnks.woff2"
|
|
38646
39135
|
},
|
|
38647
39136
|
"/_nuxt/eb-garamond-latin-ext-400-normal.o4A__6QZ.woff2": {
|
|
38648
39137
|
"type": "font/woff2",
|
|
38649
39138
|
"etag": "\"de84-qKZ/sgxlZLRv1TmEnWR30Cc4wfw\"",
|
|
38650
|
-
"mtime": "2026-09-
|
|
39139
|
+
"mtime": "2026-09-12T03:59:43.249Z",
|
|
38651
39140
|
"size": 56964,
|
|
38652
39141
|
"path": "../public/_nuxt/eb-garamond-latin-ext-400-normal.o4A__6QZ.woff2"
|
|
38653
39142
|
},
|
|
39143
|
+
"/_nuxt/eb-garamond-vietnamese-400-italic.ORtyMVfw.woff": {
|
|
39144
|
+
"type": "font/woff",
|
|
39145
|
+
"etag": "\"1edc-XUugZ4qMSSF4m+TQLER2LLza1t0\"",
|
|
39146
|
+
"mtime": "2026-09-12T03:59:43.250Z",
|
|
39147
|
+
"size": 7900,
|
|
39148
|
+
"path": "../public/_nuxt/eb-garamond-vietnamese-400-italic.ORtyMVfw.woff"
|
|
39149
|
+
},
|
|
38654
39150
|
"/_nuxt/eb-garamond-vietnamese-400-normal.CLvJdMEL.woff2": {
|
|
38655
39151
|
"type": "font/woff2",
|
|
38656
39152
|
"etag": "\"183c-arAHcc3MmJQ6+OtYVThlERUqDQQ\"",
|
|
38657
|
-
"mtime": "2026-09-
|
|
39153
|
+
"mtime": "2026-09-12T03:59:43.250Z",
|
|
38658
39154
|
"size": 6204,
|
|
38659
39155
|
"path": "../public/_nuxt/eb-garamond-vietnamese-400-normal.CLvJdMEL.woff2"
|
|
38660
39156
|
},
|
|
38661
|
-
"/_nuxt/
|
|
38662
|
-
"type": "
|
|
38663
|
-
"etag": "\"
|
|
38664
|
-
"mtime": "2026-09-
|
|
38665
|
-
"size":
|
|
38666
|
-
"path": "../public/_nuxt/
|
|
39157
|
+
"/_nuxt/entry.BB-Eeh-J.css": {
|
|
39158
|
+
"type": "text/css; charset=utf-8",
|
|
39159
|
+
"etag": "\"22c96-XxnjyI/eCOm4bHchDmRm07nGUdw\"",
|
|
39160
|
+
"mtime": "2026-09-12T03:59:43.250Z",
|
|
39161
|
+
"size": 142486,
|
|
39162
|
+
"path": "../public/_nuxt/entry.BB-Eeh-J.css"
|
|
38667
39163
|
},
|
|
38668
39164
|
"/_nuxt/eb-garamond-vietnamese-400-normal.ifvNSiWx.woff": {
|
|
38669
39165
|
"type": "font/woff",
|
|
38670
39166
|
"etag": "\"1e50-PGVIQbsmhTvI1h5aIhavpIQl8z4\"",
|
|
38671
|
-
"mtime": "2026-09-
|
|
39167
|
+
"mtime": "2026-09-12T03:59:43.250Z",
|
|
38672
39168
|
"size": 7760,
|
|
38673
39169
|
"path": "../public/_nuxt/eb-garamond-vietnamese-400-normal.ifvNSiWx.woff"
|
|
38674
39170
|
},
|
|
38675
|
-
"/_nuxt/ekuGmQ7R.js": {
|
|
38676
|
-
"type": "text/javascript; charset=utf-8",
|
|
38677
|
-
"etag": "\"5f2-QOjCRpxYZho41W5eoXY4CpvV16I\"",
|
|
38678
|
-
"mtime": "2026-09-11T08:35:24.393Z",
|
|
38679
|
-
"size": 1522,
|
|
38680
|
-
"path": "../public/_nuxt/ekuGmQ7R.js"
|
|
38681
|
-
},
|
|
38682
|
-
"/_nuxt/G0qIw7Gq2.js": {
|
|
38683
|
-
"type": "text/javascript; charset=utf-8",
|
|
38684
|
-
"etag": "\"462-s/N+VoJiDplj3GORHgaIwAR+Uqk\"",
|
|
38685
|
-
"mtime": "2026-09-11T08:35:24.392Z",
|
|
38686
|
-
"size": 1122,
|
|
38687
|
-
"path": "../public/_nuxt/G0qIw7Gq2.js"
|
|
38688
|
-
},
|
|
38689
|
-
"/_nuxt/FQri3dV3.js": {
|
|
38690
|
-
"type": "text/javascript; charset=utf-8",
|
|
38691
|
-
"etag": "\"9d28-A1mhFeEq6JXP9WiU/lzgX6qqGnM\"",
|
|
38692
|
-
"mtime": "2026-09-11T08:35:24.391Z",
|
|
38693
|
-
"size": 40232,
|
|
38694
|
-
"path": "../public/_nuxt/FQri3dV3.js"
|
|
38695
|
-
},
|
|
38696
39171
|
"/_nuxt/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2": {
|
|
38697
39172
|
"type": "font/woff2",
|
|
38698
39173
|
"etag": "\"1cfc-yYSDXNlt/tTRaj6rJo8ZMqvY7pQ\"",
|
|
38699
|
-
"mtime": "2026-09-
|
|
39174
|
+
"mtime": "2026-09-12T03:59:43.250Z",
|
|
38700
39175
|
"size": 7420,
|
|
38701
39176
|
"path": "../public/_nuxt/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2"
|
|
38702
39177
|
},
|
|
38703
39178
|
"/_nuxt/geist-cyrillic-wght-normal.BEAKL7Jp.woff2": {
|
|
38704
39179
|
"type": "font/woff2",
|
|
38705
39180
|
"etag": "\"3aec-5kpQSZEtAzzU5kdiuro3Zr2YR54\"",
|
|
38706
|
-
"mtime": "2026-09-
|
|
39181
|
+
"mtime": "2026-09-12T03:59:43.251Z",
|
|
38707
39182
|
"size": 15084,
|
|
38708
39183
|
"path": "../public/_nuxt/geist-cyrillic-wght-normal.BEAKL7Jp.woff2"
|
|
38709
39184
|
},
|
|
38710
|
-
"/_nuxt/entry.jFrFAWuA.css": {
|
|
38711
|
-
"type": "text/css; charset=utf-8",
|
|
38712
|
-
"etag": "\"2149f-XybaaWT8IIh+ycY/8Br++oA4uGU\"",
|
|
38713
|
-
"mtime": "2026-09-11T08:35:24.403Z",
|
|
38714
|
-
"size": 136351,
|
|
38715
|
-
"path": "../public/_nuxt/entry.jFrFAWuA.css"
|
|
38716
|
-
},
|
|
38717
39185
|
"/_nuxt/geist-latin-ext-wght-normal.DC-KSUi6.woff2": {
|
|
38718
39186
|
"type": "font/woff2",
|
|
38719
39187
|
"etag": "\"4080-mZu3Z7sOWqglha+kefNbUA9Pp+Q\"",
|
|
38720
|
-
"mtime": "2026-09-
|
|
39188
|
+
"mtime": "2026-09-12T03:59:43.251Z",
|
|
38721
39189
|
"size": 16512,
|
|
38722
39190
|
"path": "../public/_nuxt/geist-latin-ext-wght-normal.DC-KSUi6.woff2"
|
|
38723
39191
|
},
|
|
38724
|
-
"/_nuxt/geist-latin-wght-normal.BgDaEnEv.woff2": {
|
|
38725
|
-
"type": "font/woff2",
|
|
38726
|
-
"etag": "\"72d8-9J+D7/6th5UzRxIgoFX9awJv47A\"",
|
|
38727
|
-
"mtime": "2026-09-11T08:35:24.403Z",
|
|
38728
|
-
"size": 29400,
|
|
38729
|
-
"path": "../public/_nuxt/geist-latin-wght-normal.BgDaEnEv.woff2"
|
|
38730
|
-
},
|
|
38731
39192
|
"/_nuxt/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2": {
|
|
38732
39193
|
"type": "font/woff2",
|
|
38733
39194
|
"etag": "\"1820-nQACIwCsmkduQK2CSMidMhmLR9U\"",
|
|
38734
|
-
"mtime": "2026-09-
|
|
39195
|
+
"mtime": "2026-09-12T03:59:43.251Z",
|
|
38735
39196
|
"size": 6176,
|
|
38736
39197
|
"path": "../public/_nuxt/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2"
|
|
38737
39198
|
},
|
|
39199
|
+
"/_nuxt/geist-latin-wght-normal.BgDaEnEv.woff2": {
|
|
39200
|
+
"type": "font/woff2",
|
|
39201
|
+
"etag": "\"72d8-9J+D7/6th5UzRxIgoFX9awJv47A\"",
|
|
39202
|
+
"mtime": "2026-09-12T03:59:43.251Z",
|
|
39203
|
+
"size": 29400,
|
|
39204
|
+
"path": "../public/_nuxt/geist-latin-wght-normal.BgDaEnEv.woff2"
|
|
39205
|
+
},
|
|
38738
39206
|
"/_nuxt/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2": {
|
|
38739
39207
|
"type": "font/woff2",
|
|
38740
39208
|
"etag": "\"328c-3kQUs7xjzfvJdLvI58iU6DHlynA\"",
|
|
38741
|
-
"mtime": "2026-09-
|
|
39209
|
+
"mtime": "2026-09-12T03:59:43.252Z",
|
|
38742
39210
|
"size": 12940,
|
|
38743
39211
|
"path": "../public/_nuxt/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2"
|
|
38744
39212
|
},
|
|
38745
39213
|
"/_nuxt/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2": {
|
|
38746
39214
|
"type": "font/woff2",
|
|
38747
39215
|
"etag": "\"3968-BV9ZbqWHVAcipAKX5y8la3JkUQs\"",
|
|
38748
|
-
"mtime": "2026-09-
|
|
39216
|
+
"mtime": "2026-09-12T03:59:43.252Z",
|
|
38749
39217
|
"size": 14696,
|
|
38750
39218
|
"path": "../public/_nuxt/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2"
|
|
38751
39219
|
},
|
|
38752
39220
|
"/_nuxt/geist-mono-latin-wght-normal.XN7g48iV.woff2": {
|
|
38753
39221
|
"type": "font/woff2",
|
|
38754
39222
|
"etag": "\"5a58-jDy+14PX7OhwqFZsiKzuRax9xZ8\"",
|
|
38755
|
-
"mtime": "2026-09-
|
|
39223
|
+
"mtime": "2026-09-12T03:59:43.252Z",
|
|
38756
39224
|
"size": 23128,
|
|
38757
39225
|
"path": "../public/_nuxt/geist-mono-latin-wght-normal.XN7g48iV.woff2"
|
|
38758
39226
|
},
|
|
38759
39227
|
"/_nuxt/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2": {
|
|
38760
39228
|
"type": "font/woff2",
|
|
38761
39229
|
"etag": "\"16b4-aZoLOGWoEYW7gmwZamfz5kTfFco\"",
|
|
38762
|
-
"mtime": "2026-09-
|
|
39230
|
+
"mtime": "2026-09-12T03:59:43.252Z",
|
|
38763
39231
|
"size": 5812,
|
|
38764
39232
|
"path": "../public/_nuxt/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2"
|
|
38765
39233
|
},
|
|
38766
39234
|
"/_nuxt/geist-mono-vietnamese-wght-normal.DadHysG0.woff2": {
|
|
38767
39235
|
"type": "font/woff2",
|
|
38768
39236
|
"etag": "\"1e10-mpU2OlFk4DakDO4paRfgJ2LHDsM\"",
|
|
38769
|
-
"mtime": "2026-09-
|
|
39237
|
+
"mtime": "2026-09-12T03:59:43.253Z",
|
|
38770
39238
|
"size": 7696,
|
|
38771
39239
|
"path": "../public/_nuxt/geist-mono-vietnamese-wght-normal.DadHysG0.woff2"
|
|
38772
39240
|
},
|
|
38773
|
-
"/_nuxt/HclGiUj8.js": {
|
|
38774
|
-
"type": "text/javascript; charset=utf-8",
|
|
38775
|
-
"etag": "\"4bb-OjUbx7m0dPDFUkNfZ4BuUs+1sHI\"",
|
|
38776
|
-
"mtime": "2026-09-11T08:35:24.392Z",
|
|
38777
|
-
"size": 1211,
|
|
38778
|
-
"path": "../public/_nuxt/HclGiUj8.js"
|
|
38779
|
-
},
|
|
38780
39241
|
"/_nuxt/geist-vietnamese-wght-normal.6IgcOCM7.woff2": {
|
|
38781
39242
|
"type": "font/woff2",
|
|
38782
39243
|
"etag": "\"1f44-6MZ7/PEEOeDVF0eHI650KpwKQV8\"",
|
|
38783
|
-
"mtime": "2026-09-
|
|
39244
|
+
"mtime": "2026-09-12T03:59:43.253Z",
|
|
38784
39245
|
"size": 8004,
|
|
38785
39246
|
"path": "../public/_nuxt/geist-vietnamese-wght-normal.6IgcOCM7.woff2"
|
|
38786
39247
|
},
|
|
39248
|
+
"/_nuxt/HBLJ-wei.js": {
|
|
39249
|
+
"type": "text/javascript; charset=utf-8",
|
|
39250
|
+
"etag": "\"13a1-fzEUxRt3em5vbto3D3QQ5+jkREo\"",
|
|
39251
|
+
"mtime": "2026-09-12T03:59:43.235Z",
|
|
39252
|
+
"size": 5025,
|
|
39253
|
+
"path": "../public/_nuxt/HBLJ-wei.js"
|
|
39254
|
+
},
|
|
39255
|
+
"/_nuxt/HclGiUj8.js": {
|
|
39256
|
+
"type": "text/javascript; charset=utf-8",
|
|
39257
|
+
"etag": "\"4bb-OjUbx7m0dPDFUkNfZ4BuUs+1sHI\"",
|
|
39258
|
+
"mtime": "2026-09-12T03:59:43.236Z",
|
|
39259
|
+
"size": 1211,
|
|
39260
|
+
"path": "../public/_nuxt/HclGiUj8.js"
|
|
39261
|
+
},
|
|
38787
39262
|
"/_nuxt/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2": {
|
|
38788
39263
|
"type": "font/woff2",
|
|
38789
39264
|
"etag": "\"20a4-mDbzFbXDuciYuRDdYbcJkcocaWU\"",
|
|
38790
|
-
"mtime": "2026-09-
|
|
39265
|
+
"mtime": "2026-09-12T03:59:43.253Z",
|
|
38791
39266
|
"size": 8356,
|
|
38792
39267
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2"
|
|
38793
39268
|
},
|
|
38794
39269
|
"/_nuxt/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff": {
|
|
38795
39270
|
"type": "font/woff",
|
|
38796
39271
|
"etag": "\"1c24-wpeoT2YBcqJ4hbipsoiB1m58w98\"",
|
|
38797
|
-
"mtime": "2026-09-
|
|
39272
|
+
"mtime": "2026-09-12T03:59:43.253Z",
|
|
38798
39273
|
"size": 7204,
|
|
38799
39274
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff"
|
|
38800
39275
|
},
|
|
38801
39276
|
"/_nuxt/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff": {
|
|
38802
39277
|
"type": "font/woff",
|
|
38803
39278
|
"etag": "\"1c28-50yap58S0sLYRB2B8AEk2dq82kg\"",
|
|
38804
|
-
"mtime": "2026-09-
|
|
39279
|
+
"mtime": "2026-09-12T03:59:43.253Z",
|
|
38805
39280
|
"size": 7208,
|
|
38806
39281
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff"
|
|
38807
39282
|
},
|
|
38808
39283
|
"/_nuxt/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2": {
|
|
38809
39284
|
"type": "font/woff2",
|
|
38810
39285
|
"etag": "\"210c-yqAnW+098RkHUvQzwj27Jo9sIUc\"",
|
|
38811
|
-
"mtime": "2026-09-
|
|
39286
|
+
"mtime": "2026-09-12T03:59:43.254Z",
|
|
38812
39287
|
"size": 8460,
|
|
38813
39288
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2"
|
|
38814
39289
|
},
|
|
38815
39290
|
"/_nuxt/ibm-plex-mono-cyrillic-600-normal.CTOM6hUh.woff2": {
|
|
38816
39291
|
"type": "font/woff2",
|
|
38817
39292
|
"etag": "\"2488-WHfw+ZaOHy8HhYaV0AzfKZ8dozA\"",
|
|
38818
|
-
"mtime": "2026-09-
|
|
39293
|
+
"mtime": "2026-09-12T03:59:43.254Z",
|
|
38819
39294
|
"size": 9352,
|
|
38820
39295
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-600-normal.CTOM6hUh.woff2"
|
|
38821
39296
|
},
|
|
38822
39297
|
"/_nuxt/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff": {
|
|
38823
39298
|
"type": "font/woff",
|
|
38824
39299
|
"etag": "\"1c64-t3eBraFEv1B6D+DIfK23+8/F2mA\"",
|
|
38825
|
-
"mtime": "2026-09-
|
|
39300
|
+
"mtime": "2026-09-12T03:59:43.254Z",
|
|
38826
39301
|
"size": 7268,
|
|
38827
39302
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff"
|
|
38828
39303
|
},
|
|
38829
39304
|
"/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2": {
|
|
38830
39305
|
"type": "font/woff2",
|
|
38831
39306
|
"etag": "\"1b00-w57wcK5m30ZZ4sBwsaWzlcI3F7c\"",
|
|
38832
|
-
"mtime": "2026-09-
|
|
39307
|
+
"mtime": "2026-09-12T03:59:43.255Z",
|
|
38833
39308
|
"size": 6912,
|
|
38834
39309
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2"
|
|
38835
39310
|
},
|
|
38836
39311
|
"/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff": {
|
|
38837
39312
|
"type": "font/woff",
|
|
38838
39313
|
"etag": "\"16bc-GBHBT1lClOFRLkxzjkkoZV1QN+Y\"",
|
|
38839
|
-
"mtime": "2026-09-
|
|
39314
|
+
"mtime": "2026-09-12T03:59:43.254Z",
|
|
38840
39315
|
"size": 5820,
|
|
38841
39316
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff"
|
|
38842
39317
|
},
|
|
38843
39318
|
"/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2": {
|
|
38844
39319
|
"type": "font/woff2",
|
|
38845
39320
|
"etag": "\"1b3c-pFin0Xk9XlGLhqdo1+npFJkyQ5Y\"",
|
|
38846
|
-
"mtime": "2026-09-
|
|
39321
|
+
"mtime": "2026-09-12T03:59:43.255Z",
|
|
38847
39322
|
"size": 6972,
|
|
38848
39323
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2"
|
|
38849
39324
|
},
|
|
38850
|
-
"/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff": {
|
|
38851
|
-
"type": "font/woff",
|
|
38852
|
-
"etag": "\"168c-gvDCX7ATl9g9LbPEKlQjJSXhRPw\"",
|
|
38853
|
-
"mtime": "2026-09-11T08:35:24.406Z",
|
|
38854
|
-
"size": 5772,
|
|
38855
|
-
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff"
|
|
38856
|
-
},
|
|
38857
39325
|
"/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff": {
|
|
38858
39326
|
"type": "font/woff",
|
|
38859
39327
|
"etag": "\"16a0-8RgtlGopOkBt2P4jKMMd7hk+D74\"",
|
|
38860
|
-
"mtime": "2026-09-
|
|
39328
|
+
"mtime": "2026-09-12T03:59:43.255Z",
|
|
38861
39329
|
"size": 5792,
|
|
38862
39330
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff"
|
|
38863
39331
|
},
|
|
39332
|
+
"/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff": {
|
|
39333
|
+
"type": "font/woff",
|
|
39334
|
+
"etag": "\"168c-gvDCX7ATl9g9LbPEKlQjJSXhRPw\"",
|
|
39335
|
+
"mtime": "2026-09-12T03:59:43.255Z",
|
|
39336
|
+
"size": 5772,
|
|
39337
|
+
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff"
|
|
39338
|
+
},
|
|
38864
39339
|
"/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2": {
|
|
38865
39340
|
"type": "font/woff2",
|
|
38866
39341
|
"etag": "\"1e0c-R9/TBUX2qLWGlHeC55LoggyLdII\"",
|
|
38867
|
-
"mtime": "2026-09-
|
|
39342
|
+
"mtime": "2026-09-12T03:59:43.256Z",
|
|
38868
39343
|
"size": 7692,
|
|
38869
39344
|
"path": "../public/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2"
|
|
38870
39345
|
},
|
|
38871
39346
|
"/_nuxt/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff": {
|
|
38872
39347
|
"type": "font/woff",
|
|
38873
39348
|
"etag": "\"3358-rWMSbc9cch7FBErQpfnWcshAYFM\"",
|
|
38874
|
-
"mtime": "2026-09-
|
|
39349
|
+
"mtime": "2026-09-12T03:59:43.256Z",
|
|
38875
39350
|
"size": 13144,
|
|
38876
39351
|
"path": "../public/_nuxt/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff"
|
|
38877
39352
|
},
|
|
38878
39353
|
"/_nuxt/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2": {
|
|
38879
39354
|
"type": "font/woff2",
|
|
38880
39355
|
"etag": "\"3974-u4dQDjIEo6fGXWYzx5xchAw76NM\"",
|
|
38881
|
-
"mtime": "2026-09-
|
|
39356
|
+
"mtime": "2026-09-12T03:59:43.256Z",
|
|
38882
39357
|
"size": 14708,
|
|
38883
39358
|
"path": "../public/_nuxt/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2"
|
|
38884
39359
|
},
|
|
38885
39360
|
"/_nuxt/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff": {
|
|
38886
39361
|
"type": "font/woff",
|
|
38887
39362
|
"etag": "\"3364-S8wip5no4QO46BFh3FPzQKpIOec\"",
|
|
38888
|
-
"mtime": "2026-09-
|
|
39363
|
+
"mtime": "2026-09-12T03:59:43.257Z",
|
|
38889
39364
|
"size": 13156,
|
|
38890
39365
|
"path": "../public/_nuxt/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff"
|
|
38891
39366
|
},
|
|
38892
39367
|
"/_nuxt/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2": {
|
|
38893
39368
|
"type": "font/woff2",
|
|
38894
39369
|
"etag": "\"3a28-0y8OBwGsYgQ4QBMagAznF6huTuI\"",
|
|
38895
|
-
"mtime": "2026-09-
|
|
39370
|
+
"mtime": "2026-09-12T03:59:43.257Z",
|
|
38896
39371
|
"size": 14888,
|
|
38897
39372
|
"path": "../public/_nuxt/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2"
|
|
38898
39373
|
},
|
|
38899
39374
|
"/_nuxt/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2": {
|
|
38900
39375
|
"type": "font/woff2",
|
|
38901
39376
|
"etag": "\"3d04-zppco6h02pIBwmMMXLe/qpaIwFI\"",
|
|
38902
|
-
"mtime": "2026-09-
|
|
39377
|
+
"mtime": "2026-09-12T03:59:43.257Z",
|
|
38903
39378
|
"size": 15620,
|
|
38904
39379
|
"path": "../public/_nuxt/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2"
|
|
38905
39380
|
},
|
|
38906
39381
|
"/_nuxt/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff": {
|
|
38907
39382
|
"type": "font/woff",
|
|
38908
39383
|
"etag": "\"3398-D/GHpHo4zls8HLHH2boKeigB6S4\"",
|
|
38909
|
-
"mtime": "2026-09-
|
|
39384
|
+
"mtime": "2026-09-12T03:59:43.257Z",
|
|
38910
39385
|
"size": 13208,
|
|
38911
39386
|
"path": "../public/_nuxt/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff"
|
|
38912
39387
|
},
|
|
38913
39388
|
"/_nuxt/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2": {
|
|
38914
39389
|
"type": "font/woff2",
|
|
38915
39390
|
"etag": "\"3424-SvjO9SK9iRLLL61B4GuQJWQP62I\"",
|
|
38916
|
-
"mtime": "2026-09-
|
|
39391
|
+
"mtime": "2026-09-12T03:59:43.258Z",
|
|
38917
39392
|
"size": 13348,
|
|
38918
39393
|
"path": "../public/_nuxt/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2"
|
|
38919
39394
|
},
|
|
38920
39395
|
"/_nuxt/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff": {
|
|
38921
39396
|
"type": "font/woff",
|
|
38922
39397
|
"etag": "\"2df8-dfJwTWMZxHyGnUuJDGfpU4w2dLs\"",
|
|
38923
|
-
"mtime": "2026-09-
|
|
39398
|
+
"mtime": "2026-09-12T03:59:43.258Z",
|
|
38924
39399
|
"size": 11768,
|
|
38925
39400
|
"path": "../public/_nuxt/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff"
|
|
38926
39401
|
},
|
|
38927
39402
|
"/_nuxt/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2": {
|
|
38928
39403
|
"type": "font/woff2",
|
|
38929
39404
|
"etag": "\"3478-PpQvQo59iHxPLcEUBhJfmFmCPuA\"",
|
|
38930
|
-
"mtime": "2026-09-
|
|
39405
|
+
"mtime": "2026-09-12T03:59:43.258Z",
|
|
38931
39406
|
"size": 13432,
|
|
38932
39407
|
"path": "../public/_nuxt/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2"
|
|
38933
39408
|
},
|
|
38934
39409
|
"/_nuxt/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff": {
|
|
38935
39410
|
"type": "font/woff",
|
|
38936
39411
|
"etag": "\"2df8-73sb1BUyjMsq70ppsdZBHEqWrtE\"",
|
|
38937
|
-
"mtime": "2026-09-
|
|
39412
|
+
"mtime": "2026-09-12T03:59:43.258Z",
|
|
38938
39413
|
"size": 11768,
|
|
38939
39414
|
"path": "../public/_nuxt/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff"
|
|
38940
39415
|
},
|
|
38941
39416
|
"/_nuxt/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2": {
|
|
38942
39417
|
"type": "font/woff2",
|
|
38943
39418
|
"etag": "\"37f8-5XYRqKuMO2rN5QZqfj4VW8r2jSQ\"",
|
|
38944
|
-
"mtime": "2026-09-
|
|
39419
|
+
"mtime": "2026-09-12T03:59:43.259Z",
|
|
38945
39420
|
"size": 14328,
|
|
38946
39421
|
"path": "../public/_nuxt/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2"
|
|
38947
39422
|
},
|
|
38948
39423
|
"/_nuxt/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff": {
|
|
38949
39424
|
"type": "font/woff",
|
|
38950
39425
|
"etag": "\"2e38-fOmVENNzEJaYqxODn6K5NAbrEJk\"",
|
|
38951
|
-
"mtime": "2026-09-
|
|
39426
|
+
"mtime": "2026-09-12T03:59:43.259Z",
|
|
38952
39427
|
"size": 11832,
|
|
38953
39428
|
"path": "../public/_nuxt/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff"
|
|
38954
39429
|
},
|
|
38955
39430
|
"/_nuxt/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2": {
|
|
38956
39431
|
"type": "font/woff2",
|
|
38957
39432
|
"etag": "\"16ec-bIkS18/YaTiWdOzfzp4pFXvLmqQ\"",
|
|
38958
|
-
"mtime": "2026-09-
|
|
39433
|
+
"mtime": "2026-09-12T03:59:43.259Z",
|
|
38959
39434
|
"size": 5868,
|
|
38960
39435
|
"path": "../public/_nuxt/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2"
|
|
38961
39436
|
},
|
|
38962
39437
|
"/_nuxt/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff": {
|
|
38963
39438
|
"type": "font/woff",
|
|
38964
39439
|
"etag": "\"15f4-LdRX2sBB3T5WDAsZLCwBlsMYXPw\"",
|
|
38965
|
-
"mtime": "2026-09-
|
|
39440
|
+
"mtime": "2026-09-12T03:59:43.259Z",
|
|
38966
39441
|
"size": 5620,
|
|
38967
39442
|
"path": "../public/_nuxt/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff"
|
|
38968
39443
|
},
|
|
38969
|
-
"/_nuxt/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2": {
|
|
38970
|
-
"type": "font/woff2",
|
|
38971
|
-
"etag": "\"1798-7VDjg0E2ggd9c0kJDHNRh+Fu5E0\"",
|
|
38972
|
-
"mtime": "2026-09-11T08:35:24.410Z",
|
|
38973
|
-
"size": 6040,
|
|
38974
|
-
"path": "../public/_nuxt/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2"
|
|
38975
|
-
},
|
|
38976
39444
|
"/_nuxt/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff": {
|
|
38977
39445
|
"type": "font/woff",
|
|
38978
39446
|
"etag": "\"15f0-mGuZIt/ndQFiw5uxmCOkhhWSxi4\"",
|
|
38979
|
-
"mtime": "2026-09-
|
|
39447
|
+
"mtime": "2026-09-12T03:59:43.260Z",
|
|
38980
39448
|
"size": 5616,
|
|
38981
39449
|
"path": "../public/_nuxt/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff"
|
|
38982
39450
|
},
|
|
39451
|
+
"/_nuxt/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2": {
|
|
39452
|
+
"type": "font/woff2",
|
|
39453
|
+
"etag": "\"1798-7VDjg0E2ggd9c0kJDHNRh+Fu5E0\"",
|
|
39454
|
+
"mtime": "2026-09-12T03:59:43.260Z",
|
|
39455
|
+
"size": 6040,
|
|
39456
|
+
"path": "../public/_nuxt/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2"
|
|
39457
|
+
},
|
|
38983
39458
|
"/_nuxt/ibm-plex-mono-vietnamese-600-normal.D2EvbN8M.woff2": {
|
|
38984
39459
|
"type": "font/woff2",
|
|
38985
39460
|
"etag": "\"1b14-ylPjcMKGVc4RbTi2G25N0MSlVNo\"",
|
|
38986
|
-
"mtime": "2026-09-
|
|
39461
|
+
"mtime": "2026-09-12T03:59:43.260Z",
|
|
38987
39462
|
"size": 6932,
|
|
38988
39463
|
"path": "../public/_nuxt/ibm-plex-mono-vietnamese-600-normal.D2EvbN8M.woff2"
|
|
38989
39464
|
},
|
|
38990
39465
|
"/_nuxt/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff": {
|
|
38991
39466
|
"type": "font/woff",
|
|
38992
39467
|
"etag": "\"1650-9Pko0qRZ+EoISmnDaTRQ8KRGy/s\"",
|
|
38993
|
-
"mtime": "2026-09-
|
|
39468
|
+
"mtime": "2026-09-12T03:59:43.261Z",
|
|
38994
39469
|
"size": 5712,
|
|
38995
39470
|
"path": "../public/_nuxt/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff"
|
|
38996
39471
|
},
|
|
39472
|
+
"/_nuxt/JCoYF4IJ.js": {
|
|
39473
|
+
"type": "text/javascript; charset=utf-8",
|
|
39474
|
+
"etag": "\"3455-37tXgWnbnb3znRa47oi8vjuTdqc\"",
|
|
39475
|
+
"mtime": "2026-09-12T03:59:43.236Z",
|
|
39476
|
+
"size": 13397,
|
|
39477
|
+
"path": "../public/_nuxt/JCoYF4IJ.js"
|
|
39478
|
+
},
|
|
39479
|
+
"/_nuxt/JTLM-kqr2.js": {
|
|
39480
|
+
"type": "text/javascript; charset=utf-8",
|
|
39481
|
+
"etag": "\"5f5-SCePszT8yZWllH2E7nvCS+dPYsk\"",
|
|
39482
|
+
"mtime": "2026-09-12T03:59:43.236Z",
|
|
39483
|
+
"size": 1525,
|
|
39484
|
+
"path": "../public/_nuxt/JTLM-kqr2.js"
|
|
39485
|
+
},
|
|
38997
39486
|
"/_nuxt/kZl6yT-12.js": {
|
|
38998
39487
|
"type": "text/javascript; charset=utf-8",
|
|
38999
39488
|
"etag": "\"e9-t0VKevMurw+ruGbCV/EgmcM2dww\"",
|
|
39000
|
-
"mtime": "2026-09-
|
|
39489
|
+
"mtime": "2026-09-12T03:59:43.238Z",
|
|
39001
39490
|
"size": 233,
|
|
39002
39491
|
"path": "../public/_nuxt/kZl6yT-12.js"
|
|
39003
39492
|
},
|
|
39004
39493
|
"/_nuxt/lO5tpDZ5.js": {
|
|
39005
39494
|
"type": "text/javascript; charset=utf-8",
|
|
39006
39495
|
"etag": "\"3b-z4jypkmUW9c9v+AALQ28pDyJ80A\"",
|
|
39007
|
-
"mtime": "2026-09-
|
|
39496
|
+
"mtime": "2026-09-12T03:59:43.238Z",
|
|
39008
39497
|
"size": 59,
|
|
39009
39498
|
"path": "../public/_nuxt/lO5tpDZ5.js"
|
|
39010
39499
|
},
|
|
39011
|
-
"/_nuxt/
|
|
39500
|
+
"/_nuxt/jZsY8yYz.js": {
|
|
39501
|
+
"type": "text/javascript; charset=utf-8",
|
|
39502
|
+
"etag": "\"7c7-PL0IO2vGe5m8kLiMxnsrBNzHDKA\"",
|
|
39503
|
+
"mtime": "2026-09-12T03:59:43.238Z",
|
|
39504
|
+
"size": 1991,
|
|
39505
|
+
"path": "../public/_nuxt/jZsY8yYz.js"
|
|
39506
|
+
},
|
|
39507
|
+
"/_nuxt/logs.CqFyMrJw.css": {
|
|
39012
39508
|
"type": "text/css; charset=utf-8",
|
|
39013
|
-
"etag": "\"
|
|
39014
|
-
"mtime": "2026-09-
|
|
39015
|
-
"size":
|
|
39016
|
-
"path": "../public/_nuxt/logs.
|
|
39509
|
+
"etag": "\"14c3-80Yys++VF02i9m0dmRGSlXNvsdM\"",
|
|
39510
|
+
"mtime": "2026-09-12T03:59:43.261Z",
|
|
39511
|
+
"size": 5315,
|
|
39512
|
+
"path": "../public/_nuxt/logs.CqFyMrJw.css"
|
|
39513
|
+
},
|
|
39514
|
+
"/_nuxt/KZQX7xoM.js": {
|
|
39515
|
+
"type": "text/javascript; charset=utf-8",
|
|
39516
|
+
"etag": "\"bc8d-NE8BmFk1U6Qr8oLUgb9logVLDHA\"",
|
|
39517
|
+
"mtime": "2026-09-12T03:59:43.237Z",
|
|
39518
|
+
"size": 48269,
|
|
39519
|
+
"path": "../public/_nuxt/KZQX7xoM.js"
|
|
39017
39520
|
},
|
|
39018
39521
|
"/_nuxt/monitor.B--1dPzs.css": {
|
|
39019
39522
|
"type": "text/css; charset=utf-8",
|
|
39020
39523
|
"etag": "\"578-FjYyH+T9goSVwJOLXNhMi2Hm95Y\"",
|
|
39021
|
-
"mtime": "2026-09-
|
|
39524
|
+
"mtime": "2026-09-12T03:59:43.261Z",
|
|
39022
39525
|
"size": 1400,
|
|
39023
39526
|
"path": "../public/_nuxt/monitor.B--1dPzs.css"
|
|
39024
39527
|
},
|
|
39025
|
-
"/_nuxt/niDwBOZW.js": {
|
|
39026
|
-
"type": "text/javascript; charset=utf-8",
|
|
39027
|
-
"etag": "\"12f1-JlgzqHJQENBszEGLuO9fMyRYm/E\"",
|
|
39028
|
-
"mtime": "2026-09-11T08:35:24.393Z",
|
|
39029
|
-
"size": 4849,
|
|
39030
|
-
"path": "../public/_nuxt/niDwBOZW.js"
|
|
39031
|
-
},
|
|
39032
|
-
"/_nuxt/Lp7Ll94I.js": {
|
|
39033
|
-
"type": "text/javascript; charset=utf-8",
|
|
39034
|
-
"etag": "\"373d-P1v4qPVNCWsXAF8ecwFvPmdvFmE\"",
|
|
39035
|
-
"mtime": "2026-09-11T08:35:24.392Z",
|
|
39036
|
-
"size": 14141,
|
|
39037
|
-
"path": "../public/_nuxt/Lp7Ll94I.js"
|
|
39038
|
-
},
|
|
39039
39528
|
"/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css": {
|
|
39040
39529
|
"type": "text/css; charset=utf-8",
|
|
39041
39530
|
"etag": "\"10d0-uLyus3YRLFfRIoYhlKCERpGIwVE\"",
|
|
39042
|
-
"mtime": "2026-09-
|
|
39531
|
+
"mtime": "2026-09-12T03:59:43.240Z",
|
|
39043
39532
|
"size": 4304,
|
|
39044
39533
|
"path": "../public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css"
|
|
39045
39534
|
},
|
|
39046
|
-
"/_nuxt/
|
|
39047
|
-
"type": "text/javascript; charset=utf-8",
|
|
39048
|
-
"etag": "\"c42-g+2xQOk5SmNd8dk4LSqx7FrSVE0\"",
|
|
39049
|
-
"mtime": "2026-09-11T08:35:24.392Z",
|
|
39050
|
-
"size": 3138,
|
|
39051
|
-
"path": "../public/_nuxt/ORt9oDIy2.js"
|
|
39052
|
-
},
|
|
39053
|
-
"/_nuxt/pages.Cc8GX9T1.css": {
|
|
39535
|
+
"/_nuxt/pages.ooEzrMm9.css": {
|
|
39054
39536
|
"type": "text/css; charset=utf-8",
|
|
39055
|
-
"etag": "\"
|
|
39056
|
-
"mtime": "2026-09-
|
|
39057
|
-
"size":
|
|
39058
|
-
"path": "../public/_nuxt/pages.
|
|
39059
|
-
},
|
|
39060
|
-
"/_nuxt/plugins.wIPyfPn-.css": {
|
|
39061
|
-
"type": "text/css; charset=utf-8",
|
|
39062
|
-
"etag": "\"ab4-v3do8OYxniGhizT0UMHsXehCvL0\"",
|
|
39063
|
-
"mtime": "2026-09-11T08:35:24.411Z",
|
|
39064
|
-
"size": 2740,
|
|
39065
|
-
"path": "../public/_nuxt/plugins.wIPyfPn-.css"
|
|
39537
|
+
"etag": "\"1f8f-b9J2EkJ46q6pDMK7XHEZEMw/z3s\"",
|
|
39538
|
+
"mtime": "2026-09-12T03:59:43.261Z",
|
|
39539
|
+
"size": 8079,
|
|
39540
|
+
"path": "../public/_nuxt/pages.ooEzrMm9.css"
|
|
39066
39541
|
},
|
|
39067
39542
|
"/_nuxt/permissions.B1pjGChZ.css": {
|
|
39068
39543
|
"type": "text/css; charset=utf-8",
|
|
39069
39544
|
"etag": "\"439-4fFWPs3Fv7K/AFrSalCd0HFO3pI\"",
|
|
39070
|
-
"mtime": "2026-09-
|
|
39545
|
+
"mtime": "2026-09-12T03:59:43.261Z",
|
|
39071
39546
|
"size": 1081,
|
|
39072
39547
|
"path": "../public/_nuxt/permissions.B1pjGChZ.css"
|
|
39073
39548
|
},
|
|
39549
|
+
"/_nuxt/plugins.5e5chZ67.css": {
|
|
39550
|
+
"type": "text/css; charset=utf-8",
|
|
39551
|
+
"etag": "\"ab2-6+VhPmyRC3rpgUGjFUB63S7ymbc\"",
|
|
39552
|
+
"mtime": "2026-09-12T03:59:43.262Z",
|
|
39553
|
+
"size": 2738,
|
|
39554
|
+
"path": "../public/_nuxt/plugins.5e5chZ67.css"
|
|
39555
|
+
},
|
|
39556
|
+
"/_nuxt/pdk8jLGT.js": {
|
|
39557
|
+
"type": "text/javascript; charset=utf-8",
|
|
39558
|
+
"etag": "\"1a39-SiPMzso8YXbn1yBHlZHYwIyR4Cw\"",
|
|
39559
|
+
"mtime": "2026-09-12T03:59:43.239Z",
|
|
39560
|
+
"size": 6713,
|
|
39561
|
+
"path": "../public/_nuxt/pdk8jLGT.js"
|
|
39562
|
+
},
|
|
39074
39563
|
"/_nuxt/PluginSlot.DmjNbrcX.css": {
|
|
39075
39564
|
"type": "text/css; charset=utf-8",
|
|
39076
39565
|
"etag": "\"1b1-ASM0+zql/trZXZZxT6JL/MDdPtY\"",
|
|
39077
|
-
"mtime": "2026-09-
|
|
39566
|
+
"mtime": "2026-09-12T03:59:43.240Z",
|
|
39078
39567
|
"size": 433,
|
|
39079
39568
|
"path": "../public/_nuxt/PluginSlot.DmjNbrcX.css"
|
|
39080
39569
|
},
|
|
39081
|
-
"/_nuxt/
|
|
39082
|
-
"type": "text/javascript; charset=utf-8",
|
|
39083
|
-
"etag": "\"761d-n3nYYQYIxdnAu9GaImKE7k1Xy7Y\"",
|
|
39084
|
-
"mtime": "2026-09-11T08:35:24.394Z",
|
|
39085
|
-
"size": 30237,
|
|
39086
|
-
"path": "../public/_nuxt/rqZ-1SoP.js"
|
|
39087
|
-
},
|
|
39088
|
-
"/_nuxt/pMoIO6rr.js": {
|
|
39570
|
+
"/_nuxt/pz2JDAM7.js": {
|
|
39089
39571
|
"type": "text/javascript; charset=utf-8",
|
|
39090
|
-
"etag": "\"
|
|
39091
|
-
"mtime": "2026-09-
|
|
39092
|
-
"size":
|
|
39093
|
-
"path": "../public/_nuxt/
|
|
39572
|
+
"etag": "\"1caea-Rsju6Xu8UELInbAAC8iS80XsDQo\"",
|
|
39573
|
+
"mtime": "2026-09-12T03:59:43.239Z",
|
|
39574
|
+
"size": 117482,
|
|
39575
|
+
"path": "../public/_nuxt/pz2JDAM7.js"
|
|
39094
39576
|
},
|
|
39095
39577
|
"/_nuxt/RYFtK4qZ2.js": {
|
|
39096
39578
|
"type": "text/javascript; charset=utf-8",
|
|
39097
39579
|
"etag": "\"594c-ZHrAodAyz6fWAruZCqluWn052zA\"",
|
|
39098
|
-
"mtime": "2026-09-
|
|
39580
|
+
"mtime": "2026-09-12T03:59:43.237Z",
|
|
39099
39581
|
"size": 22860,
|
|
39100
39582
|
"path": "../public/_nuxt/RYFtK4qZ2.js"
|
|
39101
39583
|
},
|
|
39102
|
-
"/_nuxt/settings.
|
|
39584
|
+
"/_nuxt/settings.Dm3M0RLy.css": {
|
|
39103
39585
|
"type": "text/css; charset=utf-8",
|
|
39104
|
-
"etag": "\"
|
|
39105
|
-
"mtime": "2026-09-
|
|
39106
|
-
"size":
|
|
39107
|
-
"path": "../public/_nuxt/settings.
|
|
39586
|
+
"etag": "\"2175-Bfu2f0XoqMS7xPh3BapUEUv/fps\"",
|
|
39587
|
+
"mtime": "2026-09-12T03:59:43.262Z",
|
|
39588
|
+
"size": 8565,
|
|
39589
|
+
"path": "../public/_nuxt/settings.Dm3M0RLy.css"
|
|
39590
|
+
},
|
|
39591
|
+
"/_nuxt/S_fVQwJK.js": {
|
|
39592
|
+
"type": "text/javascript; charset=utf-8",
|
|
39593
|
+
"etag": "\"9dc0-3l6Kc/MTmlDr92xcFaiueO5zXl8\"",
|
|
39594
|
+
"mtime": "2026-09-12T03:59:43.237Z",
|
|
39595
|
+
"size": 40384,
|
|
39596
|
+
"path": "../public/_nuxt/S_fVQwJK.js"
|
|
39108
39597
|
},
|
|
39109
39598
|
"/_nuxt/teams.BC75EGnR.css": {
|
|
39110
39599
|
"type": "text/css; charset=utf-8",
|
|
39111
39600
|
"etag": "\"a49-L5ibM+Ztp1to2Um0i9mSYODdZw4\"",
|
|
39112
|
-
"mtime": "2026-09-
|
|
39601
|
+
"mtime": "2026-09-12T03:59:43.262Z",
|
|
39113
39602
|
"size": 2633,
|
|
39114
39603
|
"path": "../public/_nuxt/teams.BC75EGnR.css"
|
|
39115
39604
|
},
|
|
39116
39605
|
"/_nuxt/tokens.xRb1fSPU.css": {
|
|
39117
39606
|
"type": "text/css; charset=utf-8",
|
|
39118
39607
|
"etag": "\"991-sd4TNmcKczQa4a+DM+FOOSKkG9A\"",
|
|
39119
|
-
"mtime": "2026-09-
|
|
39608
|
+
"mtime": "2026-09-12T03:59:43.262Z",
|
|
39120
39609
|
"size": 2449,
|
|
39121
39610
|
"path": "../public/_nuxt/tokens.xRb1fSPU.css"
|
|
39122
39611
|
},
|
|
39123
39612
|
"/_nuxt/town.BLrD9-WH.css": {
|
|
39124
39613
|
"type": "text/css; charset=utf-8",
|
|
39125
39614
|
"etag": "\"64-INqlNEwsg1I+Dzc8LaEkJCLno5o\"",
|
|
39126
|
-
"mtime": "2026-09-
|
|
39615
|
+
"mtime": "2026-09-12T03:59:43.263Z",
|
|
39127
39616
|
"size": 100,
|
|
39128
39617
|
"path": "../public/_nuxt/town.BLrD9-WH.css"
|
|
39129
39618
|
},
|
|
39130
|
-
"/_nuxt/town.
|
|
39619
|
+
"/_nuxt/town.DKIAhKnx.css": {
|
|
39131
39620
|
"type": "text/css; charset=utf-8",
|
|
39132
|
-
"etag": "\"
|
|
39133
|
-
"mtime": "2026-09-
|
|
39134
|
-
"size":
|
|
39135
|
-
"path": "../public/_nuxt/town.
|
|
39621
|
+
"etag": "\"3f6-2stsCbObPrmCagrbI7L30H9657A\"",
|
|
39622
|
+
"mtime": "2026-09-12T03:59:43.263Z",
|
|
39623
|
+
"size": 1014,
|
|
39624
|
+
"path": "../public/_nuxt/town.DKIAhKnx.css"
|
|
39136
39625
|
},
|
|
39137
|
-
"/_nuxt/TownView.
|
|
39626
|
+
"/_nuxt/TownView.0oLiQgTC.css": {
|
|
39138
39627
|
"type": "text/css; charset=utf-8",
|
|
39139
|
-
"etag": "\"
|
|
39140
|
-
"mtime": "2026-09-
|
|
39141
|
-
"size":
|
|
39142
|
-
"path": "../public/_nuxt/TownView.
|
|
39628
|
+
"etag": "\"11be0-jasT+CDSVlHGDB2IL1ee1/4PS20\"",
|
|
39629
|
+
"mtime": "2026-09-12T03:59:43.240Z",
|
|
39630
|
+
"size": 72672,
|
|
39631
|
+
"path": "../public/_nuxt/TownView.0oLiQgTC.css"
|
|
39143
39632
|
},
|
|
39144
|
-
"/_nuxt/
|
|
39633
|
+
"/_nuxt/users.CXnP2E08.css": {
|
|
39634
|
+
"type": "text/css; charset=utf-8",
|
|
39635
|
+
"etag": "\"22f-AZpbJXPsElnWYRHZbAWTKPG8Rxw\"",
|
|
39636
|
+
"mtime": "2026-09-12T03:59:43.263Z",
|
|
39637
|
+
"size": 559,
|
|
39638
|
+
"path": "../public/_nuxt/users.CXnP2E08.css"
|
|
39639
|
+
},
|
|
39640
|
+
"/_nuxt/vRTjoWqd.js": {
|
|
39145
39641
|
"type": "text/javascript; charset=utf-8",
|
|
39146
|
-
"etag": "\"
|
|
39147
|
-
"mtime": "2026-09-
|
|
39148
|
-
"size":
|
|
39149
|
-
"path": "../public/_nuxt/
|
|
39642
|
+
"etag": "\"3ee-AsfUZSgw/F0W9cFRTAEVXcLJZiA\"",
|
|
39643
|
+
"mtime": "2026-09-12T03:59:43.239Z",
|
|
39644
|
+
"size": 1006,
|
|
39645
|
+
"path": "../public/_nuxt/vRTjoWqd.js"
|
|
39150
39646
|
},
|
|
39151
|
-
"/_nuxt/workshop.
|
|
39647
|
+
"/_nuxt/workshop.Jk5HxWPE.css": {
|
|
39152
39648
|
"type": "text/css; charset=utf-8",
|
|
39153
|
-
"etag": "\"
|
|
39154
|
-
"mtime": "2026-09-
|
|
39155
|
-
"size":
|
|
39156
|
-
"path": "../public/_nuxt/workshop.
|
|
39649
|
+
"etag": "\"1038-1Xveua8xDfO+3AbczDYlptdvcWQ\"",
|
|
39650
|
+
"mtime": "2026-09-12T03:59:43.263Z",
|
|
39651
|
+
"size": 4152,
|
|
39652
|
+
"path": "../public/_nuxt/workshop.Jk5HxWPE.css"
|
|
39157
39653
|
},
|
|
39158
|
-
"/_nuxt/
|
|
39159
|
-
"type": "text/
|
|
39160
|
-
"etag": "\"
|
|
39161
|
-
"mtime": "2026-09-
|
|
39162
|
-
"size":
|
|
39163
|
-
"path": "../public/_nuxt/
|
|
39654
|
+
"/_nuxt/YnQxK3eG.js": {
|
|
39655
|
+
"type": "text/javascript; charset=utf-8",
|
|
39656
|
+
"etag": "\"56aa-34p36rIty4zhPYsHZGMJ3m4YxOQ\"",
|
|
39657
|
+
"mtime": "2026-09-12T03:59:43.237Z",
|
|
39658
|
+
"size": 22186,
|
|
39659
|
+
"path": "../public/_nuxt/YnQxK3eG.js"
|
|
39164
39660
|
},
|
|
39165
|
-
"/_nuxt/
|
|
39661
|
+
"/_nuxt/zIGh7R49.js": {
|
|
39166
39662
|
"type": "text/javascript; charset=utf-8",
|
|
39167
|
-
"etag": "\"
|
|
39168
|
-
"mtime": "2026-09-
|
|
39169
|
-
"size":
|
|
39170
|
-
"path": "../public/_nuxt/
|
|
39663
|
+
"etag": "\"28a11-UMQ9kZ/56LLLr7SzoahyJK4kF+8\"",
|
|
39664
|
+
"mtime": "2026-09-12T03:59:43.240Z",
|
|
39665
|
+
"size": 166417,
|
|
39666
|
+
"path": "../public/_nuxt/zIGh7R49.js"
|
|
39171
39667
|
},
|
|
39172
|
-
"/_nuxt/
|
|
39668
|
+
"/_nuxt/zq5t1vyX.js": {
|
|
39669
|
+
"type": "text/javascript; charset=utf-8",
|
|
39670
|
+
"etag": "\"60d-NnE9dj7Q2Llc8RcygvdWR36sHQs\"",
|
|
39671
|
+
"mtime": "2026-09-12T03:59:43.240Z",
|
|
39672
|
+
"size": 1549,
|
|
39673
|
+
"path": "../public/_nuxt/zq5t1vyX.js"
|
|
39674
|
+
},
|
|
39675
|
+
"/_nuxt/_id_.D-SYuyZb.css": {
|
|
39173
39676
|
"type": "text/css; charset=utf-8",
|
|
39174
|
-
"etag": "\"
|
|
39175
|
-
"mtime": "2026-09-
|
|
39176
|
-
"size":
|
|
39177
|
-
"path": "../public/_nuxt/_id_.
|
|
39677
|
+
"etag": "\"3d10-ns70o4Kj3LWHCLTavrVybVSFwYM\"",
|
|
39678
|
+
"mtime": "2026-09-12T03:59:43.241Z",
|
|
39679
|
+
"size": 15632,
|
|
39680
|
+
"path": "../public/_nuxt/_id_.D-SYuyZb.css"
|
|
39178
39681
|
},
|
|
39179
|
-
"/_nuxt/_id_.
|
|
39682
|
+
"/_nuxt/_id_.hma_BU6T.css": {
|
|
39180
39683
|
"type": "text/css; charset=utf-8",
|
|
39181
|
-
"etag": "\"
|
|
39182
|
-
"mtime": "2026-09-
|
|
39183
|
-
"size":
|
|
39184
|
-
"path": "../public/_nuxt/_id_.
|
|
39684
|
+
"etag": "\"1611-u2wYUO+6Mf0kDeG7LtcojlL7Wbo\"",
|
|
39685
|
+
"mtime": "2026-09-12T03:59:43.241Z",
|
|
39686
|
+
"size": 5649,
|
|
39687
|
+
"path": "../public/_nuxt/_id_.hma_BU6T.css"
|
|
39185
39688
|
},
|
|
39186
39689
|
"/assets/game/coin.png": {
|
|
39187
39690
|
"type": "image/png",
|
|
@@ -39190,19 +39693,12 @@ const assets = {
|
|
|
39190
39693
|
"size": 6733,
|
|
39191
39694
|
"path": "../public/assets/game/coin.png"
|
|
39192
39695
|
},
|
|
39193
|
-
"/_nuxt/_wsId_.
|
|
39696
|
+
"/_nuxt/_wsId_.B12v3PhY.css": {
|
|
39194
39697
|
"type": "text/css; charset=utf-8",
|
|
39195
|
-
"etag": "\"
|
|
39196
|
-
"mtime": "2026-09-
|
|
39197
|
-
"size":
|
|
39198
|
-
"path": "../public/_nuxt/_wsId_.
|
|
39199
|
-
},
|
|
39200
|
-
"/assets/game/player-sheet.png": {
|
|
39201
|
-
"type": "image/png",
|
|
39202
|
-
"etag": "\"2742-xHFqZq17XtbQVhapFMWJpVb0W5o\"",
|
|
39203
|
-
"mtime": "2026-08-25T12:20:54.514Z",
|
|
39204
|
-
"size": 10050,
|
|
39205
|
-
"path": "../public/assets/game/player-sheet.png"
|
|
39698
|
+
"etag": "\"11002-wG5qYFNHpNeZ8Npb7NaYMOlUJQ0\"",
|
|
39699
|
+
"mtime": "2026-09-12T03:59:43.241Z",
|
|
39700
|
+
"size": 69634,
|
|
39701
|
+
"path": "../public/_nuxt/_wsId_.B12v3PhY.css"
|
|
39206
39702
|
},
|
|
39207
39703
|
"/assets/game/tuxemon-town.json": {
|
|
39208
39704
|
"type": "application/json",
|
|
@@ -39211,6 +39707,13 @@ const assets = {
|
|
|
39211
39707
|
"size": 65221,
|
|
39212
39708
|
"path": "../public/assets/game/tuxemon-town.json"
|
|
39213
39709
|
},
|
|
39710
|
+
"/assets/game/player-sheet.png": {
|
|
39711
|
+
"type": "image/png",
|
|
39712
|
+
"etag": "\"2742-xHFqZq17XtbQVhapFMWJpVb0W5o\"",
|
|
39713
|
+
"mtime": "2026-08-25T12:20:54.514Z",
|
|
39714
|
+
"size": 10050,
|
|
39715
|
+
"path": "../public/assets/game/player-sheet.png"
|
|
39716
|
+
},
|
|
39214
39717
|
"/scene/background/cyber-town-background.svg": {
|
|
39215
39718
|
"type": "image/svg+xml",
|
|
39216
39719
|
"etag": "\"1656-Q8xWIs77K5i5HJYRdMCDYSQhkvs\"",
|
|
@@ -39218,13 +39721,6 @@ const assets = {
|
|
|
39218
39721
|
"size": 5718,
|
|
39219
39722
|
"path": "../public/scene/background/cyber-town-background.svg"
|
|
39220
39723
|
},
|
|
39221
|
-
"/_nuxt/builds/latest.json": {
|
|
39222
|
-
"type": "application/json",
|
|
39223
|
-
"etag": "\"47-Yw50J4RZv7aLI7iEew7AQO4Pnnw\"",
|
|
39224
|
-
"mtime": "2026-09-11T08:35:29.461Z",
|
|
39225
|
-
"size": 71,
|
|
39226
|
-
"path": "../public/_nuxt/builds/latest.json"
|
|
39227
|
-
},
|
|
39228
39724
|
"/assets/game/tuxmon-sample-32px-extruded.png": {
|
|
39229
39725
|
"type": "image/png",
|
|
39230
39726
|
"etag": "\"2ee08-3yTsAqzTx0djGCGVAEgUGQ1/MEg\"",
|
|
@@ -39232,6 +39728,76 @@ const assets = {
|
|
|
39232
39728
|
"size": 192008,
|
|
39233
39729
|
"path": "../public/assets/game/tuxmon-sample-32px-extruded.png"
|
|
39234
39730
|
},
|
|
39731
|
+
"/assets/game/character/bot.png": {
|
|
39732
|
+
"type": "image/png",
|
|
39733
|
+
"etag": "\"36fe-Ke8vj83Dinp8fFaRQQBfBsTGI/8\"",
|
|
39734
|
+
"mtime": "2026-08-25T12:20:54.510Z",
|
|
39735
|
+
"size": 14078,
|
|
39736
|
+
"path": "../public/assets/game/character/bot.png"
|
|
39737
|
+
},
|
|
39738
|
+
"/_nuxt/builds/latest.json": {
|
|
39739
|
+
"type": "application/json",
|
|
39740
|
+
"etag": "\"47-0tOzk3s80CkE6QyDmlCMFBquImg\"",
|
|
39741
|
+
"mtime": "2026-09-12T03:59:50.785Z",
|
|
39742
|
+
"size": 71,
|
|
39743
|
+
"path": "../public/_nuxt/builds/latest.json"
|
|
39744
|
+
},
|
|
39745
|
+
"/assets/game/character/device-3d.glb": {
|
|
39746
|
+
"type": "model/gltf-binary",
|
|
39747
|
+
"etag": "\"4bc8-yAiKZtO+P2bBmqfRvhlxcF0oduE\"",
|
|
39748
|
+
"mtime": "2026-08-25T12:20:54.511Z",
|
|
39749
|
+
"size": 19400,
|
|
39750
|
+
"path": "../public/assets/game/character/device-3d.glb"
|
|
39751
|
+
},
|
|
39752
|
+
"/assets/game/character/hero-3d.glb": {
|
|
39753
|
+
"type": "model/gltf-binary",
|
|
39754
|
+
"etag": "\"8494-Uv+bxnHu3YGJp7Es3lHkob25Y08\"",
|
|
39755
|
+
"mtime": "2026-08-25T12:20:54.511Z",
|
|
39756
|
+
"size": 33940,
|
|
39757
|
+
"path": "../public/assets/game/character/hero-3d.glb"
|
|
39758
|
+
},
|
|
39759
|
+
"/assets/game/character/hero-anime-1.glb": {
|
|
39760
|
+
"type": "model/gltf-binary",
|
|
39761
|
+
"etag": "\"1044c-AUMAdrW4S6OKEsUeAcR5c50fyKs\"",
|
|
39762
|
+
"mtime": "2026-08-26T05:23:14.557Z",
|
|
39763
|
+
"size": 66636,
|
|
39764
|
+
"path": "../public/assets/game/character/hero-anime-1.glb"
|
|
39765
|
+
},
|
|
39766
|
+
"/assets/game/character/hero-anime-2.glb": {
|
|
39767
|
+
"type": "model/gltf-binary",
|
|
39768
|
+
"etag": "\"1058c-J91UapGlsJg/5ODN8k8c7rSNpzw\"",
|
|
39769
|
+
"mtime": "2026-08-26T05:23:14.558Z",
|
|
39770
|
+
"size": 66956,
|
|
39771
|
+
"path": "../public/assets/game/character/hero-anime-2.glb"
|
|
39772
|
+
},
|
|
39773
|
+
"/assets/game/character/hero-anime-3.glb": {
|
|
39774
|
+
"type": "model/gltf-binary",
|
|
39775
|
+
"etag": "\"1057c-jREeKLYoS8AFWzuIOgOSr6CzehU\"",
|
|
39776
|
+
"mtime": "2026-08-26T05:23:14.558Z",
|
|
39777
|
+
"size": 66940,
|
|
39778
|
+
"path": "../public/assets/game/character/hero-anime-3.glb"
|
|
39779
|
+
},
|
|
39780
|
+
"/assets/game/character/hero-anime-4.glb": {
|
|
39781
|
+
"type": "model/gltf-binary",
|
|
39782
|
+
"etag": "\"10544-H4WjfazfTQ6hfF2SkK2BfHU27i8\"",
|
|
39783
|
+
"mtime": "2026-08-26T05:23:14.558Z",
|
|
39784
|
+
"size": 66884,
|
|
39785
|
+
"path": "../public/assets/game/character/hero-anime-4.glb"
|
|
39786
|
+
},
|
|
39787
|
+
"/assets/game/character/knight.png": {
|
|
39788
|
+
"type": "image/png",
|
|
39789
|
+
"etag": "\"3b37-Wyixufl/LcqKO/AeTLuGvzi4goQ\"",
|
|
39790
|
+
"mtime": "2026-08-25T12:20:54.511Z",
|
|
39791
|
+
"size": 15159,
|
|
39792
|
+
"path": "../public/assets/game/character/knight.png"
|
|
39793
|
+
},
|
|
39794
|
+
"/assets/game/character/mage.png": {
|
|
39795
|
+
"type": "image/png",
|
|
39796
|
+
"etag": "\"3832-juipuJuMJceZrarvR4w7OKgQejA\"",
|
|
39797
|
+
"mtime": "2026-08-25T12:20:54.512Z",
|
|
39798
|
+
"size": 14386,
|
|
39799
|
+
"path": "../public/assets/game/character/mage.png"
|
|
39800
|
+
},
|
|
39235
39801
|
"/assets/game/devices/agv.glb": {
|
|
39236
39802
|
"type": "model/gltf-binary",
|
|
39237
39803
|
"etag": "\"b0ec-SGRGNfFN89F7v1GROXKGve7pQqs\"",
|
|
@@ -39267,12 +39833,12 @@ const assets = {
|
|
|
39267
39833
|
"size": 10464,
|
|
39268
39834
|
"path": "../public/assets/game/devices/device-scanner.glb"
|
|
39269
39835
|
},
|
|
39270
|
-
"/assets/game/devices/
|
|
39836
|
+
"/assets/game/devices/power-cabinet.glb": {
|
|
39271
39837
|
"type": "model/gltf-binary",
|
|
39272
|
-
"etag": "\"
|
|
39273
|
-
"mtime": "2026-08-27T07:03:12.
|
|
39274
|
-
"size":
|
|
39275
|
-
"path": "../public/assets/game/devices/
|
|
39838
|
+
"etag": "\"54f0-KsrAxig9JTAY5SGKK3jbdJXB6fk\"",
|
|
39839
|
+
"mtime": "2026-08-27T07:03:12.534Z",
|
|
39840
|
+
"size": 21744,
|
|
39841
|
+
"path": "../public/assets/game/devices/power-cabinet.glb"
|
|
39276
39842
|
},
|
|
39277
39843
|
"/assets/game/devices/mdo.glb": {
|
|
39278
39844
|
"type": "model/gltf-binary",
|
|
@@ -39281,6 +39847,13 @@ const assets = {
|
|
|
39281
39847
|
"size": 78564,
|
|
39282
39848
|
"path": "../public/assets/game/devices/mdo.glb"
|
|
39283
39849
|
},
|
|
39850
|
+
"/assets/game/devices/extruder.glb": {
|
|
39851
|
+
"type": "model/gltf-binary",
|
|
39852
|
+
"etag": "\"18124-H6X1eQmFDn6eONUMGU6lGdQafZ8\"",
|
|
39853
|
+
"mtime": "2026-08-27T07:03:12.506Z",
|
|
39854
|
+
"size": 98596,
|
|
39855
|
+
"path": "../public/assets/game/devices/extruder.glb"
|
|
39856
|
+
},
|
|
39284
39857
|
"/assets/game/devices/pump.glb": {
|
|
39285
39858
|
"type": "model/gltf-binary",
|
|
39286
39859
|
"etag": "\"4bc8-yAiKZtO+P2bBmqfRvhlxcF0oduE\"",
|
|
@@ -39288,13 +39861,6 @@ const assets = {
|
|
|
39288
39861
|
"size": 19400,
|
|
39289
39862
|
"path": "../public/assets/game/devices/pump.glb"
|
|
39290
39863
|
},
|
|
39291
|
-
"/assets/game/character/bot.png": {
|
|
39292
|
-
"type": "image/png",
|
|
39293
|
-
"etag": "\"36fe-Ke8vj83Dinp8fFaRQQBfBsTGI/8\"",
|
|
39294
|
-
"mtime": "2026-08-25T12:20:54.510Z",
|
|
39295
|
-
"size": 14078,
|
|
39296
|
-
"path": "../public/assets/game/character/bot.png"
|
|
39297
|
-
},
|
|
39298
39864
|
"/assets/game/devices/thickness-scanner.glb": {
|
|
39299
39865
|
"type": "model/gltf-binary",
|
|
39300
39866
|
"etag": "\"3480-WMTbMzRrl/6AJPzEIPhRW9xPugA\"",
|
|
@@ -39302,13 +39868,6 @@ const assets = {
|
|
|
39302
39868
|
"size": 13440,
|
|
39303
39869
|
"path": "../public/assets/game/devices/thickness-scanner.glb"
|
|
39304
39870
|
},
|
|
39305
|
-
"/assets/game/devices/power-cabinet.glb": {
|
|
39306
|
-
"type": "model/gltf-binary",
|
|
39307
|
-
"etag": "\"54f0-KsrAxig9JTAY5SGKK3jbdJXB6fk\"",
|
|
39308
|
-
"mtime": "2026-08-27T07:03:12.534Z",
|
|
39309
|
-
"size": 21744,
|
|
39310
|
-
"path": "../public/assets/game/devices/power-cabinet.glb"
|
|
39311
|
-
},
|
|
39312
39871
|
"/assets/game/devices/tdo.glb": {
|
|
39313
39872
|
"type": "model/gltf-binary",
|
|
39314
39873
|
"etag": "\"e10c-GdMX+mG/KrSVBzy4EeAPPjFoTqM\"",
|
|
@@ -39316,13 +39875,6 @@ const assets = {
|
|
|
39316
39875
|
"size": 57612,
|
|
39317
39876
|
"path": "../public/assets/game/devices/tdo.glb"
|
|
39318
39877
|
},
|
|
39319
|
-
"/assets/game/character/device-3d.glb": {
|
|
39320
|
-
"type": "model/gltf-binary",
|
|
39321
|
-
"etag": "\"4bc8-yAiKZtO+P2bBmqfRvhlxcF0oduE\"",
|
|
39322
|
-
"mtime": "2026-08-25T12:20:54.511Z",
|
|
39323
|
-
"size": 19400,
|
|
39324
|
-
"path": "../public/assets/game/character/device-3d.glb"
|
|
39325
|
-
},
|
|
39326
39878
|
"/assets/game/devices/winder.glb": {
|
|
39327
39879
|
"type": "model/gltf-binary",
|
|
39328
39880
|
"etag": "\"9084-N9S2enupsA8WyhEHtkIgQ+RBDV4\"",
|
|
@@ -39330,61 +39882,19 @@ const assets = {
|
|
|
39330
39882
|
"size": 36996,
|
|
39331
39883
|
"path": "../public/assets/game/devices/winder.glb"
|
|
39332
39884
|
},
|
|
39333
|
-
"/assets/game/
|
|
39334
|
-
"type": "model/gltf-binary",
|
|
39335
|
-
"etag": "\"8494-Uv+bxnHu3YGJp7Es3lHkob25Y08\"",
|
|
39336
|
-
"mtime": "2026-08-25T12:20:54.511Z",
|
|
39337
|
-
"size": 33940,
|
|
39338
|
-
"path": "../public/assets/game/character/hero-3d.glb"
|
|
39339
|
-
},
|
|
39340
|
-
"/assets/game/character/hero-anime-1.glb": {
|
|
39341
|
-
"type": "model/gltf-binary",
|
|
39342
|
-
"etag": "\"1044c-AUMAdrW4S6OKEsUeAcR5c50fyKs\"",
|
|
39343
|
-
"mtime": "2026-08-26T05:23:14.557Z",
|
|
39344
|
-
"size": 66636,
|
|
39345
|
-
"path": "../public/assets/game/character/hero-anime-1.glb"
|
|
39346
|
-
},
|
|
39347
|
-
"/assets/game/character/mage.png": {
|
|
39348
|
-
"type": "image/png",
|
|
39349
|
-
"etag": "\"3832-juipuJuMJceZrarvR4w7OKgQejA\"",
|
|
39350
|
-
"mtime": "2026-08-25T12:20:54.512Z",
|
|
39351
|
-
"size": 14386,
|
|
39352
|
-
"path": "../public/assets/game/character/mage.png"
|
|
39353
|
-
},
|
|
39354
|
-
"/assets/game/character/hero-anime-2.glb": {
|
|
39355
|
-
"type": "model/gltf-binary",
|
|
39356
|
-
"etag": "\"1058c-J91UapGlsJg/5ODN8k8c7rSNpzw\"",
|
|
39357
|
-
"mtime": "2026-08-26T05:23:14.558Z",
|
|
39358
|
-
"size": 66956,
|
|
39359
|
-
"path": "../public/assets/game/character/hero-anime-2.glb"
|
|
39360
|
-
},
|
|
39361
|
-
"/assets/game/character/knight.png": {
|
|
39885
|
+
"/assets/game/wuwa/world-middle.png": {
|
|
39362
39886
|
"type": "image/png",
|
|
39363
|
-
"etag": "\"
|
|
39364
|
-
"mtime": "2026-08-25T12:20:54.
|
|
39365
|
-
"size":
|
|
39366
|
-
"path": "../public/assets/game/
|
|
39367
|
-
},
|
|
39368
|
-
"/assets/game/character/hero-anime-4.glb": {
|
|
39369
|
-
"type": "model/gltf-binary",
|
|
39370
|
-
"etag": "\"10544-H4WjfazfTQ6hfF2SkK2BfHU27i8\"",
|
|
39371
|
-
"mtime": "2026-08-26T05:23:14.558Z",
|
|
39372
|
-
"size": 66884,
|
|
39373
|
-
"path": "../public/assets/game/character/hero-anime-4.glb"
|
|
39374
|
-
},
|
|
39375
|
-
"/assets/game/character/hero-anime-3.glb": {
|
|
39376
|
-
"type": "model/gltf-binary",
|
|
39377
|
-
"etag": "\"1057c-jREeKLYoS8AFWzuIOgOSr6CzehU\"",
|
|
39378
|
-
"mtime": "2026-08-26T05:23:14.558Z",
|
|
39379
|
-
"size": 66940,
|
|
39380
|
-
"path": "../public/assets/game/character/hero-anime-3.glb"
|
|
39887
|
+
"etag": "\"16164-Dxu+NdXPnqoPFfWHwQi1oefgNvU\"",
|
|
39888
|
+
"mtime": "2026-08-25T12:20:54.523Z",
|
|
39889
|
+
"size": 90468,
|
|
39890
|
+
"path": "../public/assets/game/wuwa/world-middle.png"
|
|
39381
39891
|
},
|
|
39382
|
-
"/assets/game/wuwa/
|
|
39892
|
+
"/assets/game/wuwa/scene-map.png": {
|
|
39383
39893
|
"type": "image/png",
|
|
39384
|
-
"etag": "\"
|
|
39385
|
-
"mtime": "2026-08-25T12:20:54.
|
|
39386
|
-
"size":
|
|
39387
|
-
"path": "../public/assets/game/wuwa/
|
|
39894
|
+
"etag": "\"682db-bU8mh8SeHPotvuaCc6PZzrWoT+A\"",
|
|
39895
|
+
"mtime": "2026-08-25T12:20:54.521Z",
|
|
39896
|
+
"size": 426715,
|
|
39897
|
+
"path": "../public/assets/game/wuwa/scene-map.png"
|
|
39388
39898
|
},
|
|
39389
39899
|
"/assets/game/wuwa/wu-aura.png": {
|
|
39390
39900
|
"type": "image/png",
|
|
@@ -39393,13 +39903,6 @@ const assets = {
|
|
|
39393
39903
|
"size": 8277,
|
|
39394
39904
|
"path": "../public/assets/game/wuwa/wu-aura.png"
|
|
39395
39905
|
},
|
|
39396
|
-
"/assets/game/wuwa/world-middle.png": {
|
|
39397
|
-
"type": "image/png",
|
|
39398
|
-
"etag": "\"16164-Dxu+NdXPnqoPFfWHwQi1oefgNvU\"",
|
|
39399
|
-
"mtime": "2026-08-25T12:20:54.523Z",
|
|
39400
|
-
"size": 90468,
|
|
39401
|
-
"path": "../public/assets/game/wuwa/world-middle.png"
|
|
39402
|
-
},
|
|
39403
39906
|
"/assets/game/wuwa/wu-lead.png": {
|
|
39404
39907
|
"type": "image/png",
|
|
39405
39908
|
"etag": "\"3b04-agK45Y3g7QDPns/kmkhTGYSTPDM\"",
|
|
@@ -39407,13 +39910,6 @@ const assets = {
|
|
|
39407
39910
|
"size": 15108,
|
|
39408
39911
|
"path": "../public/assets/game/wuwa/wu-lead.png"
|
|
39409
39912
|
},
|
|
39410
|
-
"/assets/game/wuwa/scene-map.png": {
|
|
39411
|
-
"type": "image/png",
|
|
39412
|
-
"etag": "\"682db-bU8mh8SeHPotvuaCc6PZzrWoT+A\"",
|
|
39413
|
-
"mtime": "2026-08-25T12:20:54.521Z",
|
|
39414
|
-
"size": 426715,
|
|
39415
|
-
"path": "../public/assets/game/wuwa/scene-map.png"
|
|
39416
|
-
},
|
|
39417
39913
|
"/assets/game/wuwa/wu-ring.png": {
|
|
39418
39914
|
"type": "image/png",
|
|
39419
39915
|
"etag": "\"65ac-/iIjlPgFNpD98zDsyCJYA8021E4\"",
|
|
@@ -39421,6 +39917,13 @@ const assets = {
|
|
|
39421
39917
|
"size": 26028,
|
|
39422
39918
|
"path": "../public/assets/game/wuwa/wu-ring.png"
|
|
39423
39919
|
},
|
|
39920
|
+
"/assets/game/wuwa/world-far.png": {
|
|
39921
|
+
"type": "image/png",
|
|
39922
|
+
"etag": "\"6b391-DRcUWDyPUwUxDpAWplDh9StwdO0\"",
|
|
39923
|
+
"mtime": "2026-08-25T12:20:54.522Z",
|
|
39924
|
+
"size": 439185,
|
|
39925
|
+
"path": "../public/assets/game/wuwa/world-far.png"
|
|
39926
|
+
},
|
|
39424
39927
|
"/assets/game/wuwa/wu-slash.png": {
|
|
39425
39928
|
"type": "image/png",
|
|
39426
39929
|
"etag": "\"185-fVjcllSJOBMFcBWLIgBzTrzWGaY\"",
|
|
@@ -39428,6 +39931,13 @@ const assets = {
|
|
|
39428
39931
|
"size": 389,
|
|
39429
39932
|
"path": "../public/assets/game/wuwa/wu-slash.png"
|
|
39430
39933
|
},
|
|
39934
|
+
"/assets/game/wuwa/wu-worker-0.png": {
|
|
39935
|
+
"type": "image/png",
|
|
39936
|
+
"etag": "\"3c59-fILvgyTv9TKRgrI9GQlRhaSR96U\"",
|
|
39937
|
+
"mtime": "2026-08-25T12:20:54.528Z",
|
|
39938
|
+
"size": 15449,
|
|
39939
|
+
"path": "../public/assets/game/wuwa/wu-worker-0.png"
|
|
39940
|
+
},
|
|
39431
39941
|
"/assets/game/wuwa/world-near.png": {
|
|
39432
39942
|
"type": "image/png",
|
|
39433
39943
|
"etag": "\"bbcd8-BrybeZP/ZGdD0v5NVC8T/Y4AXyM\"",
|
|
@@ -39435,12 +39945,12 @@ const assets = {
|
|
|
39435
39945
|
"size": 769240,
|
|
39436
39946
|
"path": "../public/assets/game/wuwa/world-near.png"
|
|
39437
39947
|
},
|
|
39438
|
-
"/assets/game/wuwa/wu-worker-
|
|
39948
|
+
"/assets/game/wuwa/wu-worker-1.png": {
|
|
39439
39949
|
"type": "image/png",
|
|
39440
|
-
"etag": "\"
|
|
39441
|
-
"mtime": "2026-08-25T12:20:54.
|
|
39442
|
-
"size":
|
|
39443
|
-
"path": "../public/assets/game/wuwa/wu-worker-
|
|
39950
|
+
"etag": "\"3cc8-0XoRr5qFC7X+vEEX+XrX4cRX+D0\"",
|
|
39951
|
+
"mtime": "2026-08-25T12:20:54.529Z",
|
|
39952
|
+
"size": 15560,
|
|
39953
|
+
"path": "../public/assets/game/wuwa/wu-worker-1.png"
|
|
39444
39954
|
},
|
|
39445
39955
|
"/assets/game/wuwa/wu-worker-2.png": {
|
|
39446
39956
|
"type": "image/png",
|
|
@@ -39449,12 +39959,33 @@ const assets = {
|
|
|
39449
39959
|
"size": 15489,
|
|
39450
39960
|
"path": "../public/assets/game/wuwa/wu-worker-2.png"
|
|
39451
39961
|
},
|
|
39452
|
-
"/assets/game/
|
|
39962
|
+
"/assets/game/npc/boltnu-sheet.png": {
|
|
39453
39963
|
"type": "image/png",
|
|
39454
|
-
"etag": "\"
|
|
39455
|
-
"mtime": "2026-08-25T12:20:54.
|
|
39456
|
-
"size":
|
|
39457
|
-
"path": "../public/assets/game/
|
|
39964
|
+
"etag": "\"a14-8xg90l10OuRoiEEgFXx9PTGJ9rA\"",
|
|
39965
|
+
"mtime": "2026-08-25T12:20:54.513Z",
|
|
39966
|
+
"size": 2580,
|
|
39967
|
+
"path": "../public/assets/game/npc/boltnu-sheet.png"
|
|
39968
|
+
},
|
|
39969
|
+
"/assets/game/npc/fluttaflap-sheet.png": {
|
|
39970
|
+
"type": "image/png",
|
|
39971
|
+
"etag": "\"f65-ivBz79RSNtXu3px7cWEzCwMXdkg\"",
|
|
39972
|
+
"mtime": "2026-08-25T12:20:54.513Z",
|
|
39973
|
+
"size": 3941,
|
|
39974
|
+
"path": "../public/assets/game/npc/fluttaflap-sheet.png"
|
|
39975
|
+
},
|
|
39976
|
+
"/assets/game/npc/rockitten-sheet.png": {
|
|
39977
|
+
"type": "image/png",
|
|
39978
|
+
"etag": "\"786-IY4LCl37+SB6pnPynapoUxsxvOM\"",
|
|
39979
|
+
"mtime": "2026-08-25T12:20:54.513Z",
|
|
39980
|
+
"size": 1926,
|
|
39981
|
+
"path": "../public/assets/game/npc/rockitten-sheet.png"
|
|
39982
|
+
},
|
|
39983
|
+
"/assets/game/npc/tux-sheet.png": {
|
|
39984
|
+
"type": "image/png",
|
|
39985
|
+
"etag": "\"912-kf4+Q7EukO60VT6vlziy5RrzuUo\"",
|
|
39986
|
+
"mtime": "2026-08-25T12:20:54.513Z",
|
|
39987
|
+
"size": 2322,
|
|
39988
|
+
"path": "../public/assets/game/npc/tux-sheet.png"
|
|
39458
39989
|
},
|
|
39459
39990
|
"/assets/game/player/misa-back-walk.000.png": {
|
|
39460
39991
|
"type": "image/png",
|
|
@@ -39477,6 +40008,13 @@ const assets = {
|
|
|
39477
40008
|
"size": 343,
|
|
39478
40009
|
"path": "../public/assets/game/player/misa-back-walk.002.png"
|
|
39479
40010
|
},
|
|
40011
|
+
"/assets/game/player/misa-back-walk.003.png": {
|
|
40012
|
+
"type": "image/png",
|
|
40013
|
+
"etag": "\"15c-L+/hkHDyiQ9FJs5w93pxALzvWEg\"",
|
|
40014
|
+
"mtime": "2026-08-25T12:20:54.514Z",
|
|
40015
|
+
"size": 348,
|
|
40016
|
+
"path": "../public/assets/game/player/misa-back-walk.003.png"
|
|
40017
|
+
},
|
|
39480
40018
|
"/assets/game/player/misa-back.png": {
|
|
39481
40019
|
"type": "image/png",
|
|
39482
40020
|
"etag": "\"15c-KwI7aIn2tc/RPUJViRtdOGKZre4\"",
|
|
@@ -39491,13 +40029,6 @@ const assets = {
|
|
|
39491
40029
|
"size": 338,
|
|
39492
40030
|
"path": "../public/assets/game/player/misa-front-walk.000.png"
|
|
39493
40031
|
},
|
|
39494
|
-
"/assets/game/player/misa-back-walk.003.png": {
|
|
39495
|
-
"type": "image/png",
|
|
39496
|
-
"etag": "\"15c-L+/hkHDyiQ9FJs5w93pxALzvWEg\"",
|
|
39497
|
-
"mtime": "2026-08-25T12:20:54.514Z",
|
|
39498
|
-
"size": 348,
|
|
39499
|
-
"path": "../public/assets/game/player/misa-back-walk.003.png"
|
|
39500
|
-
},
|
|
39501
40032
|
"/assets/game/player/misa-front-walk.001.png": {
|
|
39502
40033
|
"type": "image/png",
|
|
39503
40034
|
"etag": "\"155-r/wKRG+amQ/2TvYolFC2UPXHdC4\"",
|
|
@@ -39526,13 +40057,6 @@ const assets = {
|
|
|
39526
40057
|
"size": 341,
|
|
39527
40058
|
"path": "../public/assets/game/player/misa-front.png"
|
|
39528
40059
|
},
|
|
39529
|
-
"/assets/game/player/misa-left-walk.001.png": {
|
|
39530
|
-
"type": "image/png",
|
|
39531
|
-
"etag": "\"13f-kvFuR3pXnfcL/C63pYoL58iuFOk\"",
|
|
39532
|
-
"mtime": "2026-08-25T12:20:54.516Z",
|
|
39533
|
-
"size": 319,
|
|
39534
|
-
"path": "../public/assets/game/player/misa-left-walk.001.png"
|
|
39535
|
-
},
|
|
39536
40060
|
"/assets/game/player/misa-left-walk.002.png": {
|
|
39537
40061
|
"type": "image/png",
|
|
39538
40062
|
"etag": "\"13e-ZO/OghsjeAi+tGQq5r7slwZn0zg\"",
|
|
@@ -39547,6 +40071,13 @@ const assets = {
|
|
|
39547
40071
|
"size": 319,
|
|
39548
40072
|
"path": "../public/assets/game/player/misa-left-walk.000.png"
|
|
39549
40073
|
},
|
|
40074
|
+
"/assets/game/player/misa-left-walk.001.png": {
|
|
40075
|
+
"type": "image/png",
|
|
40076
|
+
"etag": "\"13f-kvFuR3pXnfcL/C63pYoL58iuFOk\"",
|
|
40077
|
+
"mtime": "2026-08-25T12:20:54.516Z",
|
|
40078
|
+
"size": 319,
|
|
40079
|
+
"path": "../public/assets/game/player/misa-left-walk.001.png"
|
|
40080
|
+
},
|
|
39550
40081
|
"/assets/game/player/misa-left-walk.003.png": {
|
|
39551
40082
|
"type": "image/png",
|
|
39552
40083
|
"etag": "\"13f-1/+5Oh6upY4V8FkyK62tdXeFc7o\"",
|
|
@@ -39596,40 +40127,12 @@ const assets = {
|
|
|
39596
40127
|
"size": 302,
|
|
39597
40128
|
"path": "../public/assets/game/player/misa-right.png"
|
|
39598
40129
|
},
|
|
39599
|
-
"/
|
|
39600
|
-
"type": "image/png",
|
|
39601
|
-
"etag": "\"a14-8xg90l10OuRoiEEgFXx9PTGJ9rA\"",
|
|
39602
|
-
"mtime": "2026-08-25T12:20:54.513Z",
|
|
39603
|
-
"size": 2580,
|
|
39604
|
-
"path": "../public/assets/game/npc/boltnu-sheet.png"
|
|
39605
|
-
},
|
|
39606
|
-
"/assets/game/npc/fluttaflap-sheet.png": {
|
|
39607
|
-
"type": "image/png",
|
|
39608
|
-
"etag": "\"f65-ivBz79RSNtXu3px7cWEzCwMXdkg\"",
|
|
39609
|
-
"mtime": "2026-08-25T12:20:54.513Z",
|
|
39610
|
-
"size": 3941,
|
|
39611
|
-
"path": "../public/assets/game/npc/fluttaflap-sheet.png"
|
|
39612
|
-
},
|
|
39613
|
-
"/assets/game/npc/rockitten-sheet.png": {
|
|
39614
|
-
"type": "image/png",
|
|
39615
|
-
"etag": "\"786-IY4LCl37+SB6pnPynapoUxsxvOM\"",
|
|
39616
|
-
"mtime": "2026-08-25T12:20:54.513Z",
|
|
39617
|
-
"size": 1926,
|
|
39618
|
-
"path": "../public/assets/game/npc/rockitten-sheet.png"
|
|
39619
|
-
},
|
|
39620
|
-
"/_nuxt/builds/meta/291ef3e6-fa6a-4dee-8f46-05da1aeab815.json": {
|
|
40130
|
+
"/_nuxt/builds/meta/a66fdef7-dcfd-453b-b1f6-543c7dfd98d5.json": {
|
|
39621
40131
|
"type": "application/json",
|
|
39622
|
-
"etag": "\"58-
|
|
39623
|
-
"mtime": "2026-09-
|
|
40132
|
+
"etag": "\"58-QuM6hqsTD8xmSILeeMXx6uTHY5A\"",
|
|
40133
|
+
"mtime": "2026-09-12T03:59:50.786Z",
|
|
39624
40134
|
"size": 88,
|
|
39625
|
-
"path": "../public/_nuxt/builds/meta/
|
|
39626
|
-
},
|
|
39627
|
-
"/assets/game/npc/tux-sheet.png": {
|
|
39628
|
-
"type": "image/png",
|
|
39629
|
-
"etag": "\"912-kf4+Q7EukO60VT6vlziy5RrzuUo\"",
|
|
39630
|
-
"mtime": "2026-08-25T12:20:54.513Z",
|
|
39631
|
-
"size": 2322,
|
|
39632
|
-
"path": "../public/assets/game/npc/tux-sheet.png"
|
|
40135
|
+
"path": "../public/_nuxt/builds/meta/a66fdef7-dcfd-453b-b1f6-543c7dfd98d5.json"
|
|
39633
40136
|
},
|
|
39634
40137
|
"/assets/game/character/yangyang-walk.glb": {
|
|
39635
40138
|
"type": "model/gltf-binary",
|
|
@@ -39926,21 +40429,32 @@ const _lazy_OK7iTh = () => import('../routes/api/workshop/agents/_id_.patch.mjs'
|
|
|
39926
40429
|
const _lazy_Ib89Gv = () => import('../routes/api/workshop/index.get.mjs');
|
|
39927
40430
|
const _lazy_jGcf0C = () => import('../routes/api/workshop/index.post.mjs');
|
|
39928
40431
|
const _lazy_fESV0_ = () => import('../routes/api/workshop/agents/subscribe.post.mjs');
|
|
40432
|
+
const _lazy_nO_s5_ = () => import('../routes/api/workshop/aml/datasets/_id_.delete.mjs');
|
|
39929
40433
|
const _lazy_tV0TAv = () => import('../routes/api/workshop/aml/datasets/_id_.get.mjs');
|
|
40434
|
+
const _lazy_L8VYQ_ = () => import('../routes/api/workshop/aml/datasets/_id_.patch.mjs');
|
|
39930
40435
|
const _lazy_X7krQs = () => import('../routes/api/workshop/aml/datasets/_id/preview.get.mjs');
|
|
39931
40436
|
const _lazy_3J0Xcs = () => import('../routes/api/workshop/aml/index.get.mjs');
|
|
39932
40437
|
const _lazy_fxhSeB = () => import('../routes/api/workshop/aml/index.post.mjs');
|
|
39933
|
-
const
|
|
40438
|
+
const _lazy_KqY6Ut = () => import('../routes/api/workshop/aml/index2.get.mjs');
|
|
40439
|
+
const _lazy_DuVwH7 = () => import('../routes/api/workshop/aml/entities/prune.post.mjs');
|
|
40440
|
+
const _lazy_sTjAeo = () => import('../routes/api/workshop/aml/index3.get.mjs');
|
|
40441
|
+
const _lazy_qhdgDb = () => import('../routes/api/workshop/aml/env/recheck.post.mjs');
|
|
40442
|
+
const _lazy_p9v5He = () => import('../routes/api/workshop/aml/env/uv.post.mjs');
|
|
40443
|
+
const _lazy_pPdn3t = () => import('../routes/api/workshop/aml/env/venv.post.mjs');
|
|
40444
|
+
const _lazy_OhQ1TJ = () => import('../routes/api/workshop/aml/index4.get.mjs');
|
|
39934
40445
|
const _lazy_fEDefo = () => import('../routes/api/workshop/index2.get.mjs');
|
|
40446
|
+
const _lazy_w4VKE0 = () => import('../routes/api/workshop/aml/jobs/_id_.delete.mjs');
|
|
39935
40447
|
const _lazy_wnp00i = () => import('../routes/api/workshop/aml/jobs/_id_.get.mjs');
|
|
39936
40448
|
const _lazy_i_nokq = () => import('../routes/api/workshop/aml/jobs/_id/cancel.post.mjs');
|
|
39937
40449
|
const _lazy_sKQYLY = () => import('../routes/api/workshop/aml/jobs/_id/logs.get.mjs');
|
|
39938
40450
|
const _lazy_dJdojE = () => import('../routes/api/workshop/aml/jobs/_id/retry.post.mjs');
|
|
39939
|
-
const _lazy_giSCA5 = () => import('../routes/api/workshop/aml/
|
|
40451
|
+
const _lazy_giSCA5 = () => import('../routes/api/workshop/aml/index5.get.mjs');
|
|
39940
40452
|
const _lazy_FDpvz_ = () => import('../routes/api/workshop/aml/index2.post.mjs');
|
|
40453
|
+
const _lazy_MCHjBO = () => import('../routes/api/workshop/aml/models/_id_.delete.mjs');
|
|
40454
|
+
const _lazy_FFXs4U = () => import('../routes/api/workshop/aml/models/_id_.patch.mjs');
|
|
39941
40455
|
const _lazy_gykCLA = () => import('../routes/api/workshop/aml/models/_id/predict.post.mjs');
|
|
39942
40456
|
const _lazy_iC7aQp = () => import('../routes/api/workshop/aml/models/_id/promote.post.mjs');
|
|
39943
|
-
const _lazy_rROxR2 = () => import('../routes/api/workshop/aml/
|
|
40457
|
+
const _lazy_rROxR2 = () => import('../routes/api/workshop/aml/index6.get.mjs');
|
|
39944
40458
|
const _lazy_oKzzOL = () => import('../routes/api/workshop/approvals/_id/decide.post.mjs');
|
|
39945
40459
|
const _lazy_N57pWC = () => import('../routes/api/workshop/index3.get.mjs');
|
|
39946
40460
|
const _lazy_N7zTgE = () => import('../routes/api/workshop/assets/character/_id_.delete.mjs');
|
|
@@ -40162,18 +40676,29 @@ const handlers = [
|
|
|
40162
40676
|
{ route: '/api/workshop/agents', handler: _lazy_Ib89Gv, lazy: true, middleware: false, method: "get" },
|
|
40163
40677
|
{ route: '/api/workshop/agents', handler: _lazy_jGcf0C, lazy: true, middleware: false, method: "post" },
|
|
40164
40678
|
{ route: '/api/workshop/agents/subscribe', handler: _lazy_fESV0_, lazy: true, middleware: false, method: "post" },
|
|
40679
|
+
{ route: '/api/workshop/aml/datasets/:id', handler: _lazy_nO_s5_, lazy: true, middleware: false, method: "delete" },
|
|
40165
40680
|
{ route: '/api/workshop/aml/datasets/:id', handler: _lazy_tV0TAv, lazy: true, middleware: false, method: "get" },
|
|
40681
|
+
{ route: '/api/workshop/aml/datasets/:id', handler: _lazy_L8VYQ_, lazy: true, middleware: false, method: "patch" },
|
|
40166
40682
|
{ route: '/api/workshop/aml/datasets/:id/preview', handler: _lazy_X7krQs, lazy: true, middleware: false, method: "get" },
|
|
40167
40683
|
{ route: '/api/workshop/aml/datasets', handler: _lazy_3J0Xcs, lazy: true, middleware: false, method: "get" },
|
|
40168
40684
|
{ route: '/api/workshop/aml/datasets', handler: _lazy_fxhSeB, lazy: true, middleware: false, method: "post" },
|
|
40685
|
+
{ route: '/api/workshop/aml/entities', handler: _lazy_KqY6Ut, lazy: true, middleware: false, method: "get" },
|
|
40686
|
+
{ route: '/api/workshop/aml/entities/prune', handler: _lazy_DuVwH7, lazy: true, middleware: false, method: "post" },
|
|
40687
|
+
{ route: '/api/workshop/aml/env', handler: _lazy_sTjAeo, lazy: true, middleware: false, method: "get" },
|
|
40688
|
+
{ route: '/api/workshop/aml/env/recheck', handler: _lazy_qhdgDb, lazy: true, middleware: false, method: "post" },
|
|
40689
|
+
{ route: '/api/workshop/aml/env/uv', handler: _lazy_p9v5He, lazy: true, middleware: false, method: "post" },
|
|
40690
|
+
{ route: '/api/workshop/aml/env/venv', handler: _lazy_pPdn3t, lazy: true, middleware: false, method: "post" },
|
|
40169
40691
|
{ route: '/api/workshop/aml/experiments', handler: _lazy_OhQ1TJ, lazy: true, middleware: false, method: "get" },
|
|
40170
40692
|
{ route: '/api/workshop/aml', handler: _lazy_fEDefo, lazy: true, middleware: false, method: "get" },
|
|
40693
|
+
{ route: '/api/workshop/aml/jobs/:id', handler: _lazy_w4VKE0, lazy: true, middleware: false, method: "delete" },
|
|
40171
40694
|
{ route: '/api/workshop/aml/jobs/:id', handler: _lazy_wnp00i, lazy: true, middleware: false, method: "get" },
|
|
40172
40695
|
{ route: '/api/workshop/aml/jobs/:id/cancel', handler: _lazy_i_nokq, lazy: true, middleware: false, method: "post" },
|
|
40173
40696
|
{ route: '/api/workshop/aml/jobs/:id/logs', handler: _lazy_sKQYLY, lazy: true, middleware: false, method: "get" },
|
|
40174
40697
|
{ route: '/api/workshop/aml/jobs/:id/retry', handler: _lazy_dJdojE, lazy: true, middleware: false, method: "post" },
|
|
40175
40698
|
{ route: '/api/workshop/aml/jobs', handler: _lazy_giSCA5, lazy: true, middleware: false, method: "get" },
|
|
40176
40699
|
{ route: '/api/workshop/aml/jobs', handler: _lazy_FDpvz_, lazy: true, middleware: false, method: "post" },
|
|
40700
|
+
{ route: '/api/workshop/aml/models/:id', handler: _lazy_MCHjBO, lazy: true, middleware: false, method: "delete" },
|
|
40701
|
+
{ route: '/api/workshop/aml/models/:id', handler: _lazy_FFXs4U, lazy: true, middleware: false, method: "patch" },
|
|
40177
40702
|
{ route: '/api/workshop/aml/models/:id/predict', handler: _lazy_gykCLA, lazy: true, middleware: false, method: "post" },
|
|
40178
40703
|
{ route: '/api/workshop/aml/models/:id/promote', handler: _lazy_iC7aQp, lazy: true, middleware: false, method: "post" },
|
|
40179
40704
|
{ route: '/api/workshop/aml/models', handler: _lazy_rROxR2, lazy: true, middleware: false, method: "get" },
|
|
@@ -40735,5 +41260,5 @@ function setupGracefulShutdown(listener, nitroApp) {
|
|
|
40735
41260
|
});
|
|
40736
41261
|
}
|
|
40737
41262
|
|
|
40738
|
-
export { getDcwController as $, getSystemConfigService as A, defineWebSocketHandler as B, respondTerminalUi as C, abortTerminal as D, sendTerminalInput as E, resolveUserByToken as F, findLiveTerminalPidByAgent as G, terminalSessionSnapshot as H, subscribeTerminal as I, listHarnessProcesses as J, AppError as K, createEventStream as L, userService as M, readValidatedBody as N, zValidator as O, getValidatedQuery as P, extractBearerToken as Q, userRepository as R, getRequestHeader as S, setResponseStatus as T, parseJson as U, getToolApprovals as V, audit as W, getAgentNodeBindingRepo as X, ErrorCodes as Y, lineMode as Z, getDaqController as _, trapUnhandledNodeErrors as a,
|
|
41263
|
+
export { getDcwController as $, getSystemConfigService as A, defineWebSocketHandler as B, respondTerminalUi as C, abortTerminal as D, sendTerminalInput as E, resolveUserByToken as F, findLiveTerminalPidByAgent as G, terminalSessionSnapshot as H, subscribeTerminal as I, listHarnessProcesses as J, AppError as K, createEventStream as L, userService as M, readValidatedBody as N, zValidator as O, getValidatedQuery as P, extractBearerToken as Q, userRepository as R, getRequestHeader as S, setResponseStatus as T, parseJson as U, getToolApprovals as V, audit as W, getAgentNodeBindingRepo as X, ErrorCodes as Y, lineMode as Z, getDaqController as _, trapUnhandledNodeErrors as a, harnessMetas as a$, visibleLineIds as a0, getHeader as a1, getAmlRuntime as a2, requireLineMode as a3, recordOps as a4, isInsideAmlRoot as a5, createLogger as a6, loadManifest as a7, filterByLine as a8, parseDatasetSpec as a9, notifyToolChange as aA, listTerminalSessions as aB, broadcastSceneEvent as aC, bindDaqHostPorts as aD, bindDaqBroadcast as aE, bumpTaggedSamples as aF, getDcwLineRepo as aG, getDcwRecipeRepo as aH, getAllActiveLineRuns as aI, getActiveLineRun as aJ, deviceScenePayload as aK, daqRuntimeSettings as aL, tsdbReady as aM, getDaqQueue as aN, listDaqTemplates as aO, daqInfraStatus as aP, daqInfraConfig as aQ, getDaqTemplateRegistry as aR, normalizeDriverKind as aS, bindDcwBroadcast as aT, gateDangerous as aU, getRecipeRollBackManager as aV, isPrivilegedRole as aW, listDcwTemplates as aX, emitLineLifecycle as aY, getDcwTemplateRegistry as aZ, checkAllHarnessAvailability as a_, buildDataset as aa, probeUv as ab, probePython as ac, isVenvReady as ad, venvDir as ae, requirementsHash as af, venvPythonPath as ag, amlRootSourceLabel as ah, resetProbeCache as ai, installUv as aj, ensureVenv as ak, amlSettings as al, runtimeStatus as am, cancelJob as an, jobLogsTail as ao, retryJob as ap, submitJob as aq, predictWithModel as ar, verifyModelArtifact as as, transitionModel as at, loadJsonFile as au, saveJsonFileAtomic as av, ensureDataDir as aw, readMultipartFormData as ax, ensureLeadSchedulerLoop as ay, getChannelPluginsRepo as az, useNitroApp as b, StdioJsonRpcClient as b0, spawnLineProcess as b1, getHitlRegistry as b2, notifyGrantsChanged as b3, setPluginEnabled as b4, reloadPluginHost as b5, publishSceneLayoutEvent as b6, encodePath as b7, buildAssetsURL as b8, publicAssetsURL as b9, ws$1 as bA, channelPlugins_repo as bB, defineRenderHandler as ba, getRouteRules as bb, relative as bc, joinURL as bd, getResponseStatusText as be, getResponseStatus as bf, createHooks as bg, sanitizeStatusCode as bh, klona as bi, isEqual as bj, setCookie as bk, getCookie as bl, deleteCookie as bm, $fetch as bn, baseURL as bo, defu as bp, getRequestProtocol as bq, appendResponseHeader as br, DAQ_TEMPLATES as bs, DCW_TEMPLATES as bt, daqKeyFromRef as bu, DAQ_DRIVERS as bv, DCW_DRIVERS as bw, DAQ_TEMPLATE_ICONS as bx, DCW_LINE_COLORS as by, host as bz, defineApiHandler as c, destr as d, useServerConfig as e, getDeviceTwinRepo as f, getWorkshopManager as g, defineEventHandler as h, readRawBody as i, getRequestURL as j, getRequestHeaders as k, getOps as l, setResponseHeader as m, createError$1 as n, readBody as o, getPluginHost as p, getRouterParam as q, randomUUID as r, setupGracefulShutdown as s, toNodeListener as t, useRuntimeConfig as u, readClientScript as v, setHeader as w, pluginI18nBundle as x, pluginManifest as y, getQuery as z };
|
|
40739
41264
|
//# sourceMappingURL=nitro.mjs.map
|