agentworkshop 0.7.40 → 0.7.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/B8uy9iRW.js +1 -0
- package/.output/public/_nuxt/BGTYYQH-.js +1 -0
- package/.output/public/_nuxt/BUmHEJ77.js +2 -0
- package/.output/public/_nuxt/BY7YrV_D.js +1 -0
- package/.output/public/_nuxt/Bqcgz95s.js +18 -0
- package/.output/public/_nuxt/C7UlqPeD.js +1 -0
- package/.output/public/_nuxt/CTmDn-YP.js +1 -0
- package/.output/public/_nuxt/Cs8pVeVG.js +1 -0
- package/.output/public/_nuxt/{DcsCcxp4.js → D98NH8kG.js} +1 -1
- package/.output/public/_nuxt/DKySmNPI.js +14 -0
- package/.output/public/_nuxt/Di0NY_ht.js +1 -0
- package/.output/public/_nuxt/Du9v6qGB.js +1 -0
- package/.output/public/_nuxt/{C_iYD-EB.js → EHlEMRii.js} +1 -1
- package/.output/public/_nuxt/Eke1fs-U.js +1 -0
- package/.output/public/_nuxt/{DeJykBFf.js → H0BcqZtT.js} +1 -1
- package/.output/public/_nuxt/{C4oW1HsE.js → HSYEkkce.js} +1 -1
- package/.output/public/_nuxt/{DZshyNLa.js → IREZ1eC2.js} +1 -1
- package/.output/public/_nuxt/{D_OTvQza.js → J9oU00D1.js} +1 -1
- package/.output/public/_nuxt/OmpTerminalPanel.BxR5-lvi.css +1 -0
- package/.output/public/_nuxt/SSyAPaHc.js +1 -0
- package/.output/public/_nuxt/TownView.li4EMQxK.css +1 -0
- package/.output/public/_nuxt/VdLk4jLE2.js +1 -0
- package/.output/public/_nuxt/_id_.BhsXoEuk.css +1 -0
- package/.output/public/_nuxt/_id_.DQyj-WKN.css +1 -0
- package/.output/public/_nuxt/{_wsId_.B4WiqkIS.css → _wsId_.CTx-BlfF.css} +1 -1
- package/.output/public/_nuxt/aShsv_rG.js +19 -0
- package/.output/public/_nuxt/{yF0aYMF1.js → aesgXKSr.js} +3 -3
- package/.output/public/_nuxt/agents.B21nUEUX.css +1 -0
- package/.output/public/_nuxt/aml.ekTjxFkf.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/b5506ef0-f48e-4f14-a6c0-d65e505d0b09.json +1 -0
- package/.output/public/_nuxt/ca4TJ3Op.js +1 -0
- package/.output/public/_nuxt/channel-templates.DplM1pJ3.css +1 -0
- package/.output/public/_nuxt/daq.BdVmoIfe.css +1 -0
- package/.output/public/_nuxt/dcw.DCgyzpWV.css +1 -0
- package/.output/public/_nuxt/{default.J32SgqFY.css → default.Bh3L2HU8.css} +1 -1
- package/.output/public/_nuxt/lHAxdSsj.js +1 -0
- package/.output/public/_nuxt/pages.j9rzRocr.css +1 -0
- package/.output/public/_nuxt/plugins.DhiZbHU8.css +1 -0
- package/.output/public/_nuxt/settings.BRx9rIDg.css +1 -0
- package/.output/public/_nuxt/teams.BLlOPB_Z.css +1 -0
- package/.output/public/_nuxt/tokens.De8xzszn.css +1 -0
- package/.output/public/_nuxt/workshop.D1jFNkrn.css +1 -0
- package/.output/server/chunks/_/nitro.mjs +1058 -830
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/build/{OmpTerminalPanel-Cu_s4i0A.mjs → OmpTerminalPanel-CVvxpsF7.mjs} +15 -15
- package/.output/server/chunks/build/{OmpTerminalPanel-Cu_s4i0A.mjs.map → OmpTerminalPanel-CVvxpsF7.mjs.map} +1 -1
- package/.output/server/chunks/build/{TownView-BuLAsmpR.mjs → TownView-CJ6IsDCc.mjs} +229 -228
- package/.output/server/chunks/build/{TownView-BuLAsmpR.mjs.map → TownView-CJ6IsDCc.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-BU1wfOID.mjs → _id_-CVD_H0ir.mjs} +149 -147
- package/.output/server/chunks/build/_id_-CVD_H0ir.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-BYsEua57.mjs → _id_-CtxMb3qp.mjs} +47 -46
- package/.output/server/chunks/build/_id_-CtxMb3qp.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-BxlDcJHg.mjs → _wsId_-DpY3T-md.mjs} +516 -446
- package/.output/server/chunks/build/{_wsId_-BxlDcJHg.mjs.map → _wsId_-DpY3T-md.mjs.map} +1 -1
- package/.output/server/chunks/build/{agents-CLQqJF2y.mjs → agents-DsCkuXDV.mjs} +49 -46
- package/.output/server/chunks/build/agents-DsCkuXDV.mjs.map +1 -0
- package/.output/server/chunks/build/{aml-_7FdFL2p.mjs → aml-CT0xKGKI.mjs} +122 -105
- package/.output/server/chunks/build/aml-CT0xKGKI.mjs.map +1 -0
- package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs +117 -0
- package/.output/server/chunks/build/builtin-catalog-edpDcgfL.mjs.map +1 -0
- package/.output/server/chunks/build/{channel-templates-p6SZNjlM.mjs → channel-templates-Dla9FbYa.mjs} +49 -37
- package/.output/server/chunks/build/channel-templates-Dla9FbYa.mjs.map +1 -0
- package/.output/server/chunks/build/{daq-cgyjKmJu.mjs → daq-DWWSKGAV.mjs} +95 -93
- package/.output/server/chunks/build/daq-DWWSKGAV.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-CoTxBlAZ.mjs → dcw-CT8k17_E.mjs} +46 -45
- package/.output/server/chunks/build/dcw-CT8k17_E.mjs.map +1 -0
- package/.output/server/chunks/build/{default-BE4r0FZN.mjs → default-D3525UFX.mjs} +16 -15
- package/.output/server/chunks/build/{default-BE4r0FZN.mjs.map → default-D3525UFX.mjs.map} +1 -1
- package/.output/server/chunks/build/{logs-BSOeZwwI.mjs → logs--dByNyhw.mjs} +2 -2
- package/.output/server/chunks/build/{logs-BSOeZwwI.mjs.map → logs--dByNyhw.mjs.map} +1 -1
- package/.output/server/chunks/build/{monitor-C0okQaXz.mjs → monitor-Dh2Kvaq5.mjs} +2 -2
- package/.output/server/chunks/build/{monitor-C0okQaXz.mjs.map → monitor-Dh2Kvaq5.mjs.map} +1 -1
- package/.output/server/chunks/build/{pages-DFxjn9Xa.mjs → pages-BHcSBM2D.mjs} +26 -20
- package/.output/server/chunks/build/pages-BHcSBM2D.mjs.map +1 -0
- package/.output/server/chunks/build/{plugins-lGlUr1lj.mjs → plugins-BNgIi61W.mjs} +23 -17
- package/.output/server/chunks/build/plugins-BNgIi61W.mjs.map +1 -0
- package/.output/server/chunks/build/{settings-Ddd1qx2Z.mjs → settings-ipYBDWdn.mjs} +45 -44
- package/.output/server/chunks/build/settings-ipYBDWdn.mjs.map +1 -0
- package/.output/server/chunks/build/{teams-MEDLZdMn.mjs → teams-5lx-CwFa.mjs} +47 -44
- package/.output/server/chunks/build/teams-5lx-CwFa.mjs.map +1 -0
- package/.output/server/chunks/build/{tokens-C7fTM5C2.mjs → tokens-q-IDT8Io.mjs} +73 -53
- package/.output/server/chunks/build/tokens-q-IDT8Io.mjs.map +1 -0
- package/.output/server/chunks/build/{town-qMPql9Se.mjs → town-QJWB5wng.mjs} +5 -4
- package/.output/server/chunks/build/town-QJWB5wng.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqStream-CIBaiGAl.mjs → useDaqStream-DfCFpb3p.mjs} +9 -3
- package/.output/server/chunks/build/useDaqStream-DfCFpb3p.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwStream-CBbiYnWe.mjs → useDcwStream-UPiX-3iO.mjs} +11 -2
- package/.output/server/chunks/build/useDcwStream-UPiX-3iO.mjs.map +1 -0
- package/.output/server/chunks/build/{workshop-BL5bhfs0.mjs → workshop-BIlCj_ZP.mjs} +45 -45
- package/.output/server/chunks/build/workshop-BIlCj_ZP.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +3 -3
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.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/params/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.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/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/index5.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +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/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/virtual/entry.mjs +639 -88
- package/.output/server/chunks/virtual/entry.mjs.map +1 -1
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +16 -6
- package/README.md +17 -7
- package/app/components/AppHeader.vue +961 -959
- package/app/components/workshop/A2aRpcDebugger.vue +237 -237
- package/app/components/workshop/AgentInspectorDrawer.vue +424 -424
- package/app/components/workshop/AgentLanesView.vue +998 -998
- package/app/components/workshop/ArtifactCard.vue +120 -120
- package/app/components/workshop/AssetLibrary.vue +452 -452
- package/app/components/workshop/ChannelSessionList.vue +812 -804
- package/app/components/workshop/CommandPalette.vue +269 -269
- package/app/components/workshop/Composer.vue +827 -827
- package/app/components/workshop/DeviceTwinPanel.vue +643 -643
- package/app/components/workshop/EventBlock.vue +602 -602
- package/app/components/workshop/FileSelectorModal.vue +188 -188
- package/app/components/workshop/InspectorPanel.vue +301 -301
- package/app/components/workshop/MemoryPanel.vue +364 -364
- package/app/components/workshop/MultiChannelView.vue +189 -189
- package/app/components/workshop/TaskBoardView.vue +686 -686
- package/app/components/workshop/TaskInspectorDrawer.vue +390 -390
- package/app/components/workshop/TranscriptTimeline.vue +601 -601
- package/app/components/workshop/blocks/ClusterArtifact.vue +61 -61
- package/app/components/workshop/blocks/ClusterError.vue +85 -85
- package/app/components/workshop/blocks/ClusterLife.vue +87 -87
- package/app/components/workshop/blocks/ClusterMember.vue +95 -93
- package/app/components/workshop/blocks/ClusterMemory.vue +84 -84
- package/app/components/workshop/blocks/ClusterOther.vue +67 -67
- package/app/components/workshop/blocks/ClusterStatus.vue +149 -147
- package/app/components/workshop/blocks/ClusterTool.vue +158 -158
- package/app/components/workshop/terminal/OmpTerminalPanel.vue +1011 -1011
- package/app/components/workshop/town/TownView.vue +56 -56
- package/app/composables/workshop/useDaqStream.ts +7 -4
- package/app/composables/workshop/useDcwStream.ts +8 -2
- package/app/middleware/locale-cookie.global.ts +22 -0
- package/app/pages/aml/index.vue +24 -2
- package/app/pages/daq/[id].vue +20 -16
- package/app/pages/daq/index.vue +2310 -2307
- package/app/pages/dcw/[id].vue +26 -23
- package/app/pages/dcw/index.vue +3 -3
- package/app/pages/index.vue +987 -981
- package/app/pages/plugins/index.vue +317 -311
- package/app/pages/settings.vue +1564 -1562
- package/app/pages/tokens.vue +15 -15
- package/app/pages/workshop/agents.vue +612 -609
- package/app/pages/workshop/channel-templates.vue +18 -11
- package/app/pages/workshop/index.vue +668 -668
- package/app/pages/workshop/teams.vue +743 -740
- package/app/pages/workshop/w/[wsId].vue +704 -704
- package/app/plugins/locale-restore.client.ts +16 -1
- package/app/utils/builtin-catalog.ts +104 -0
- package/config.yml +170 -170
- package/docs/cli.en.md +2 -2
- package/docs/cli.md +2 -2
- package/docs/full-test-plan.md +2 -3
- package/docs/plugins.en.md +33 -1
- package/docs/plugins.md +29 -1
- package/docs/sdk.en.md +1 -1
- package/docs/sdk.md +1 -1
- package/i18n/locales/en.ts +293 -35
- package/i18n/locales/zh-CN.ts +265 -7
- package/package.json +4 -3
- package/scripts/_dbg-perms-e2e.mjs +132 -109
- package/scripts/_demo-agentteam-capture.mjs +278 -0
- package/scripts/_e2e-ui-functional.mjs +371 -0
- package/scripts/_i18n-en-cjk-scan.mjs +28 -0
- package/scripts/_i18n-en-verify.mjs +107 -0
- package/scripts/_i18n-extra-checks.mjs +53 -0
- package/scripts/_i18n-scan-hardcoded.mjs +180 -0
- package/scripts/_i18n-verify-keys.mjs +50 -0
- package/scripts/_loop-biax-campaign.mjs +130 -0
- package/scripts/_sweep-button-contrast.mjs +87 -0
- package/scripts/test-serial-bridge.mjs +418 -0
- package/scripts/ui/e2e-interactive.mjs +328 -0
- package/scripts/ui/record-demo.mjs +557 -0
- package/scripts/ui/seed-industrial-demo.mjs +171 -0
- package/server/api/workshop/daq/index.get.ts +3 -1
- package/server/api/workshop/dcw/index.get.ts +3 -0
- package/server/plugins/aw-plugins.ts +9 -7
- package/server/plugins-builtin/diag-bridge/index.mjs +608 -661
- package/server/plugins-builtin/rag-bridge/index.mjs +57 -133
- package/server/plugins-builtin/serial-bridge/client.mjs +210 -0
- package/server/plugins-builtin/serial-bridge/drivers.mjs +409 -0
- package/server/plugins-builtin/serial-bridge/i18n.json +62 -0
- package/server/plugins-builtin/serial-bridge/index.mjs +247 -0
- package/server/plugins-builtin/serial-bridge/lib.mjs +208 -0
- package/server/plugins-builtin/serial-bridge/rtu.mjs +168 -0
- package/server/services/workshop/daq/daq-controller.ts +7 -2
- package/server/services/workshop/daq/drivers.ts +89 -3
- package/server/services/workshop/dcw/dcw-controller.ts +5 -1
- package/server/services/workshop/dcw/drivers.ts +85 -2
- package/server/services/workshop/dcw/plugin-bridge.ts +45 -0
- package/server/services/workshop/plugins/host.mjs +30 -0
- package/shared/daq-protocol.ts +15 -0
- package/.output/public/_nuxt/88GOowgO2.js +0 -1
- package/.output/public/_nuxt/BOt2SP4z.js +0 -1
- package/.output/public/_nuxt/BP-NyKVG.js +0 -18
- package/.output/public/_nuxt/BXxH0UQE.js +0 -1
- package/.output/public/_nuxt/BsROmY89.js +0 -1
- package/.output/public/_nuxt/ClILjvWH.js +0 -1
- package/.output/public/_nuxt/CzOCSGLe.js +0 -1
- package/.output/public/_nuxt/D8qvkfyY.js +0 -1
- package/.output/public/_nuxt/DCn7QZ5N.js +0 -2
- package/.output/public/_nuxt/DS8qj8EL.js +0 -1
- package/.output/public/_nuxt/DUjW5Yq5.js +0 -1
- package/.output/public/_nuxt/Dihnimlk.js +0 -19
- package/.output/public/_nuxt/Dqw1lpr-.js +0 -1
- package/.output/public/_nuxt/Dr9v6C0f.js +0 -14
- package/.output/public/_nuxt/Du9ZJtnj.js +0 -1
- package/.output/public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css +0 -1
- package/.output/public/_nuxt/TownView.f-YOdXRs.css +0 -1
- package/.output/public/_nuxt/_id_.CM4bIgKY.css +0 -1
- package/.output/public/_nuxt/_id_.bNV69Dtf.css +0 -1
- package/.output/public/_nuxt/agents.ZD0rVdHE.css +0 -1
- package/.output/public/_nuxt/aml.BN8ZEW4h.css +0 -1
- package/.output/public/_nuxt/builds/meta/f4707884-7cf4-4a31-80d2-e3d72b73745f.json +0 -1
- package/.output/public/_nuxt/channel-templates.BOtahzPi.css +0 -1
- package/.output/public/_nuxt/daq.B0D3dPAc.css +0 -1
- package/.output/public/_nuxt/dcw.8Y7FqCVN.css +0 -1
- package/.output/public/_nuxt/pages.D7aSDlUI.css +0 -1
- package/.output/public/_nuxt/plugins.sb4nDGqr.css +0 -1
- package/.output/public/_nuxt/qr6R6Ha1.js +0 -1
- package/.output/public/_nuxt/settings.BTgR-NiE.css +0 -1
- package/.output/public/_nuxt/teams.CxnxKVVs.css +0 -1
- package/.output/public/_nuxt/tokens.BFY7qv4f.css +0 -1
- package/.output/public/_nuxt/workshop.CR_QzeAN.css +0 -1
- package/.output/server/chunks/build/_id_-BU1wfOID.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-BYsEua57.mjs.map +0 -1
- package/.output/server/chunks/build/agents-CLQqJF2y.mjs.map +0 -1
- package/.output/server/chunks/build/aml-_7FdFL2p.mjs.map +0 -1
- package/.output/server/chunks/build/channel-templates-p6SZNjlM.mjs.map +0 -1
- package/.output/server/chunks/build/daq-cgyjKmJu.mjs.map +0 -1
- package/.output/server/chunks/build/dcw-CoTxBlAZ.mjs.map +0 -1
- package/.output/server/chunks/build/pages-DFxjn9Xa.mjs.map +0 -1
- package/.output/server/chunks/build/plugins-lGlUr1lj.mjs.map +0 -1
- package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs.map +0 -1
- package/.output/server/chunks/build/teams-MEDLZdMn.mjs.map +0 -1
- package/.output/server/chunks/build/tokens-C7fTM5C2.mjs.map +0 -1
- package/.output/server/chunks/build/town-qMPql9Se.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqStream-CIBaiGAl.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwStream-CBbiYnWe.mjs.map +0 -1
- package/.output/server/chunks/build/workshop-BL5bhfs0.mjs.map +0 -1
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.continue.json +0 -1
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.json +0 -1
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/054bb4bc4e4217a2ab0b0c6b663747214a9af464f5568ea60e784704e340bb0f.source +0 -153
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/0554197c3d2bac203a1f5c48a5d52495d1336db1bd7aa4f4c19875810363e684.source +0 -153
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/05c203d12a954fffba942e1d626e3f5fec05b18a5aef2bac003b7884a4b77406.source +0 -431
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/145a6e6ba811af35aed31e0cc3211f53706a14980fa069ee9e3c1591139f96f0.source +0 -180
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/1ae0fb281f97899c025e368ca73f41349b01fb5f85b19e08d7ebccff49095ed5.source +0 -112
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/20ee9967aa0541c516db7575bdd4a1a745939bc7016bd10d7635903113edb8ec.source +0 -227
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/233751843aeba9d4c5263f275b8102de00443c06f286918cbd23e0b6729e01aa.source +0 -131
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/263c2e05b425e5c322e60c6475279f963bab3a873eb521b21df7fec935a46597.source +0 -160
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/2ac5eaac28eaaee2178c4b32014df8e732f9dd432a285a872f5b7f31c1395fa4.source +0 -157
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/33a0db0d2d95d2c11d0720090458e5fba1425376f5ceb5b422d1d3471be3226b.source +0 -348
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/359e474ae83db35e4615d3728de6bf694b64d4dce9b536730a3b6518f9c0494a.source +0 -296
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/37a4c3c31c4b70f6b719c53d1e9c4fcba603f31adfdd11bb6ef9f0d094923c56.source +0 -285
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/461feca1c14a695eb8b0f17a6f95fe97eeceabc0510faaea4ba6d25bde147d8d.source +0 -217
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/4cfadbda8591f29d5e1e230dc000e701b756e850441b3900fb596a4d2f6e98c2.source +0 -301
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/50ca2810cf0b248c96948994c0c404531bbad6e553166b6816b3b03bfa0f75d2.source +0 -151
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/52d9e8cb591a9ae86e238c3620a610cd386717bee222c0f37b25b2ac7e523dc4.source +0 -135
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/6c87daafa4c006560a954636a97333f6123153c9d34d96203f7ee3a14e556357.source +0 -156
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/77bc47854b577900621cacf1697f81fa2bc005af129d37614a97a3441c08f99f.source +0 -72
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/7bbb789d3a527817118cf8399ed1861d6a962ade10878fd07223435d333a7089.source +0 -469
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/86b7c1daafc8b60ba9982dde5bf1bcc74265709483c176e71f23ec6fc267451f.source +0 -259
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/8df66d62bd41984d0970e8236882080c5085ac937d07a29779463d6a03b37c76.source +0 -97
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/9962f2d1b3a85137bd40cc835725600b39f89ee02a27c06b2e0402e1eafde115.source +0 -277
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a1090ea066b792cb201739f4994e37bf7c12f52e805239a1eab87f18a537f266.source +0 -171
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/a5241091650134d0919897e086a606a3846c8b2b54f8b4c84a8696c145ac3e9e.source +0 -425
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/af19fa4c6e34d5540028be4b17600161283af3a2a2dfc61a3fdc0834436a0c14.source +0 -99
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3713d78e2b2f93905ff6be8d58a8d0a2f42dea322eb67c987fda22ff6a084d5.source +0 -325
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/b3849943c3aff102d1af815631fc843a2a52c17646a4b04696ece323e483bbec.source +0 -332
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/bac735a3803a6650b7f1eb8f587e6dc5c68ea055000c3c99a11789438b78e837.source +0 -43
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d32c24d61eb8b33c73e5a8fc7e4dc7ef437aed238ee4371c2b00617e6104090a.source +0 -154
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/d5170dc9a9879fda04fdf91d8a110d4efb6787ee38dda596d4da899883d36a72.source +0 -531
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/dc59bcd7bb397be63ba2f2c3fec23f3782dcb17d2d75a9981eeced761f33eb32.source +0 -439
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/eb5ff8cf66b92aec7bf6726781d8df74faa2b030c3aaac17d6b00c1fc04c9b32.source +0 -323
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f10615a6fae18436e70d1201b2d44fdae3174a3aa7bb4db97dea1b3ed291d721.source +0 -433
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f36d3e271668bc1260c2823542d22dbf1d0f7041ff16b1ac175bce2256e582ca.source +0 -280
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/f94449380af09f31ac352152007146a75cc80bae8d6411ffe57b2c56f933b0ff.source +0 -117
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/fe4dfd81178fd6b648335f6405d9ede71319aebde796008e50db21f8adf44c99.source +0 -160
- package/scripts/.mimosa/hook-state/sess_aeaecb58-8833-4b83-b93c-050467d21e03.mtxwtxme-61028-1f4519fbc4.baseline/ffb4e3aa548cfdadabaa44ab599f9b6a3ca6288176a2cc7a4b2fc2a12b5fb848.source +0 -101
- package/scripts/.mimosa/hook-status/sess_aeaecb58-8833-4b83-b93c-050467d21e03-d944d71bb3.json +0 -14
- package/scripts/_dbg-audit-all-pages.mjs +0 -43
- package/scripts/_dbg-daq-frames-e2e.mjs +0 -118
- package/scripts/_dbg-daq-rowstyle-verify.mjs +0 -112
- package/scripts/_dbg-hitl-timeout-e2e.mjs +0 -93
- package/scripts/_dbg-live-line-e2e.mjs +0 -279
- package/scripts/_dbg-minimal-omp.mjs +0 -77
- package/scripts/_dbg-mode-nav.mjs +0 -173
- package/scripts/_dbg-real-scenario-timeline.log +0 -55
- package/scripts/_dbg-team-repro.mjs +0 -76
- package/scripts/_dbg-town-agents-probe.mjs +0 -60
- package/scripts/_dbg-visual-acceptance.mjs +0 -63
- package/scripts/_townview_style.css +0 -1185
- package/scripts/_townview_template.html +0 -1215
- package/server/data/agent-node-bindings.json +0 -554
- package/server/data/daq-templates.json +0 -16
- package/server/data/daqs.json +0 -7464
- package/server/data/dcw-lines.json +0 -1787
- package/server/data/dcw-products.json +0 -1626
- package/server/data/dcw-recipes.json +0 -4672
- package/server/data/dcw-rollback.json +0 -20754
- package/server/data/dcw-runs.json +0 -6354
- package/server/data/dcw-templates.json +0 -146
- package/server/data/dcw-writes.json +0 -15650
- package/server/data/dcws.json +0 -9033
- package/server/data/device-twins.json +0 -133
- package/server/data/line-runs.json +0 -322
- package/server/data/scene-layouts.json +0 -277
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import{H as e,O as t,a as n,c as r,k as i,m as a,mt as o,n as s,ut as c}from"./BU83-NnX.js";import{$ as l,B as u,D as d,H as f,Ht as p,J as m,K as h,P as g,R as _,S as v,Ut as y,V as b,Vt as x,W as S,Z as C,b as w,ct as T,d as E,dt as D,f as O,h as k,ht as A,i as j,j as M,k as N,m as P,nt as ee,p as F,pt as I,s as L,tt as R,u as z,ut as B,v as V,xt as H,y as U,yt as W,z as G}from"./CSkxz2NX.js";import{d as K,f as te,l as q,t as J,u as ne}from"./D6uzXueg.js";import{d as re,p as ie}from"./BJHKLJJU.js";import{n as ae}from"./DtYHUi5Z.js";import{n as Y}from"./KZQX7xoM.js";import{t as oe}from"./D9Oidm5I.js";import{t as se}from"./CWoJjWmZ.js";import{$ as ce,At as X,E as le,J as ue,O as de,Q as fe,St as pe,X as me,Z as he,at as ge,ct as _e,d as ve,et as ye,h as be,it as xe,j as Se,jt as Z,m as Ce,n as we,pt as Te,t as Ee,tt as De,u as Oe,wt as ke}from"./4sIEbgcl.js";import{Y as Ae,c as je,i as Me}from"./DYr1VMiQ.js";import{n as Ne,r as Pe,t as Fe}from"./DDgJcSET.js";import{a as Ie,i as Le,t as Re}from"./aWWIh8YL.js";import{a as ze,i as Be,n as Ve,r as He,t as Ue}from"./DBHNsT1Y.js";import{i as We,n as Ge,r as Ke,t as qe}from"./BCGafdXT.js";import{t as Je}from"./CzlMDL5H.js";import{n as Ye,r as Xe,t as Ze}from"./DR12_WCA.js";import{t as Qe}from"./pdk8jLGT.js";import{t as $e}from"./lO5tpDZ5.js";import{t as et}from"./JCoYF4IJ.js";import{t as tt}from"./jZsY8yYz.js";import{t as nt}from"./CYWVXZTS2.js";import{n as rt,r as it,t as at}from"./DHFrCUxA2.js";import{t as ot}from"./Dz_Q3Lpw2.js";import{t as st}from"./DZtm4l-P2.js";import{t as ct}from"./CClOy-Hz2.js";import{t as lt}from"./DIaZ2PTo2.js";import{t as Q}from"./BDNMzG2s2.js";import{t as ut}from"./DGIuvyRN2.js";import{t as dt}from"./CssgYAAL2.js";import{t as $}from"./D0ZBQrN_2.js";import{a as ft,c as pt,d as mt,f as ht,i as gt,l as _t,m as vt,n as yt,o as bt,r as xt,s as St,t as Ct,u as wt}from"./BC9wjTJK2.js";import{t as Tt}from"./BN6iuJEg2.js";import{t as Et}from"./CNs_Ozdc2.js";import{t as Dt}from"./DeYsUzhr.js";import{t as Ot}from"./DeJykBFf.js";import{n as kt,t as At}from"./DCn7QZ5N.js";function jt(e){let{prefixCls:t,value:n,current:r,offset:i=0}=e,a;return i&&(a={position:`absolute`,top:`${i}00%`,left:0}),w(`p`,{style:a,class:ke(`${t}-only-unit`,{current:r})},[n])}function Mt(e,t,n){let r=e,i=0;for(;(r+10)%10!==t;)r+=n,i+=n;return i}var Nt=v({compatConfig:{MODE:3},name:`SingleNumber`,props:{prefixCls:String,value:String,count:Number},setup(e){let t=E(()=>Number(e.value)),n=E(()=>Math.abs(e.count)),r=D({prevValue:t.value,prevCount:n.value}),i=()=>{r.prevValue=t.value,r.prevCount=n.value},a=I();return l(t,()=>{clearTimeout(a.value),a.value=setTimeout(()=>{i()},1e3)},{flush:`post`}),G(()=>{clearTimeout(a.value)}),()=>{let a,o={},s=t.value;if(r.prevValue===s||Number.isNaN(s)||Number.isNaN(r.prevValue))a=[jt(X(X({},e),{current:!0}))],o={transition:`none`};else{a=[];let t=s+10,i=[];for(let e=s;e<=t;e+=1)i.push(e);let c=i.findIndex(e=>e%10===r.prevValue);a=i.map((t,n)=>{let r=t%10;return jt(X(X({},e),{value:r,offset:n-c,current:n===c}))});let l=r.prevCount<n.value?1:-1;o={transform:`translateY(${-Mt(r.prevValue,s,l)}00%)`}}return w(`span`,{class:`${e.prefixCls}-only`,style:o,onTransitionend:()=>i()},[a])}}}),Pt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Ft={prefixCls:String,count:Ee.any,component:String,title:Ee.any,show:Boolean},It=v({compatConfig:{MODE:3},name:`ScrollNumber`,inheritAttrs:!1,props:Ft,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i}=we(`scroll-number`,e);return()=>{let t=X(X({},e),n),{prefixCls:a,count:o,title:s,show:l,component:u=`sup`,class:d,style:f}=t,p=Pt(t,[`prefixCls`,`count`,`title`,`show`,`component`,`class`,`style`]),m=X(X({},p),{style:f,"data-show":e.show,class:ke(i.value,d),title:s}),h=o;if(o&&Number(o)%1==0){let e=String(o).split(``);h=e.map((t,n)=>w(Nt,{prefixCls:i.value,count:Number(o),value:t,key:e.length-n},null))}f&&f.borderColor&&(m.style=X(X({},f),{boxShadow:`0 0 0 1px ${f.borderColor} inset`}));let g=ge(r.default?.call(r));return g&&g.length?c(g,{class:ke(`${i.value}-custom-component`)},!1):w(u,m,{default:()=>[h]})}}}),Lt=new de(`antStatusProcessing`,{"0%":{transform:`scale(0.8)`,opacity:.5},"100%":{transform:`scale(2.4)`,opacity:0}}),Rt=new de(`antZoomBadgeIn`,{"0%":{transform:`scale(0) translate(50%, -50%)`,opacity:0},"100%":{transform:`scale(1) translate(50%, -50%)`}}),zt=new de(`antZoomBadgeOut`,{"0%":{transform:`scale(1) translate(50%, -50%)`},"100%":{transform:`scale(0) translate(50%, -50%)`,opacity:0}}),Bt=new de(`antNoWrapperZoomBadgeIn`,{"0%":{transform:`scale(0)`,opacity:0},"100%":{transform:`scale(1)`}}),Vt=new de(`antNoWrapperZoomBadgeOut`,{"0%":{transform:`scale(1)`},"100%":{transform:`scale(0)`,opacity:0}}),Ht=new de(`antBadgeLoadingCircle`,{"0%":{transformOrigin:`50%`},"100%":{transform:`translate(50%, -50%) rotate(360deg)`,transformOrigin:`50%`}}),Ut=e=>{let{componentCls:t,iconCls:n,antCls:r,badgeFontHeight:i,badgeShadowSize:a,badgeHeightSm:o,motionDurationSlow:s,badgeStatusSize:c,marginXS:l,badgeRibbonOffset:u}=e,d=`${r}-scroll-number`,f=`${r}-ribbon`,p=`${r}-ribbon-wrapper`,m=Ae(e,(e,n)=>{let{darkColor:r}=n;return{[`&${t} ${t}-color-${e}`]:{background:r,[`&:not(${t}-count)`]:{color:r}}}}),h=Ae(e,(e,t)=>{let{darkColor:n}=t;return{[`&${f}-color-${e}`]:{background:n,color:n}}});return{[t]:X(X(X(X({},be(e)),{position:`relative`,display:`inline-block`,width:`fit-content`,lineHeight:1,[`${t}-count`]:{zIndex:e.badgeZIndex,minWidth:e.badgeHeight,height:e.badgeHeight,color:e.badgeTextColor,fontWeight:e.badgeFontWeight,fontSize:e.badgeFontSize,lineHeight:`${e.badgeHeight}px`,whiteSpace:`nowrap`,textAlign:`center`,background:e.badgeColor,borderRadius:e.badgeHeight/2,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`,transition:`background ${e.motionDurationMid}`,a:{color:e.badgeTextColor},"a:hover":{color:e.badgeTextColor},"a:hover &":{background:e.badgeColorHover}},[`${t}-count-sm`]:{minWidth:o,height:o,fontSize:e.badgeFontSizeSm,lineHeight:`${o}px`,borderRadius:o/2},[`${t}-multiple-words`]:{padding:`0 ${e.paddingXS}px`},[`${t}-dot`]:{zIndex:e.badgeZIndex,width:e.badgeDotSize,minWidth:e.badgeDotSize,height:e.badgeDotSize,background:e.badgeColor,borderRadius:`100%`,boxShadow:`0 0 0 ${a}px ${e.badgeShadowColor}`},[`${t}-dot${d}`]:{transition:`background ${s}`},[`${t}-count, ${t}-dot, ${d}-custom-component`]:{position:`absolute`,top:0,insetInlineEnd:0,transform:`translate(50%, -50%)`,transformOrigin:`100% 0%`,[`&${n}-spin`]:{animationName:Ht,animationDuration:`1s`,animationIterationCount:`infinite`,animationTimingFunction:`linear`}},[`&${t}-status`]:{lineHeight:`inherit`,verticalAlign:`baseline`,[`${t}-status-dot`]:{position:`relative`,top:-1,display:`inline-block`,width:c,height:c,verticalAlign:`middle`,borderRadius:`50%`},[`${t}-status-success`]:{backgroundColor:e.colorSuccess},[`${t}-status-processing`]:{overflow:`visible`,color:e.colorPrimary,backgroundColor:e.colorPrimary,"&::after":{position:`absolute`,top:0,insetInlineStart:0,width:`100%`,height:`100%`,borderWidth:a,borderStyle:`solid`,borderColor:`inherit`,borderRadius:`50%`,animationName:Lt,animationDuration:e.badgeProcessingDuration,animationIterationCount:`infinite`,animationTimingFunction:`ease-in-out`,content:`""`}},[`${t}-status-default`]:{backgroundColor:e.colorTextPlaceholder},[`${t}-status-error`]:{backgroundColor:e.colorError},[`${t}-status-warning`]:{backgroundColor:e.colorWarning},[`${t}-status-text`]:{marginInlineStart:l,color:e.colorText,fontSize:e.fontSize}}}),m),{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Rt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`${t}-zoom-leave`]:{animationName:zt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack,animationFillMode:`both`},[`&${t}-not-a-wrapper`]:{[`${t}-zoom-appear, ${t}-zoom-enter`]:{animationName:Bt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`${t}-zoom-leave`]:{animationName:Vt,animationDuration:e.motionDurationSlow,animationTimingFunction:e.motionEaseOutBack},[`&:not(${t}-status)`]:{verticalAlign:`middle`},[`${d}-custom-component, ${t}-count`]:{transform:`none`},[`${d}-custom-component, ${d}`]:{position:`relative`,top:`auto`,display:`block`,transformOrigin:`50% 50%`}},[`${d}`]:{overflow:`hidden`,[`${d}-only`]:{position:`relative`,display:`inline-block`,height:e.badgeHeight,transition:`all ${e.motionDurationSlow} ${e.motionEaseOutBack}`,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`,[`> p${d}-only-unit`]:{height:e.badgeHeight,margin:0,WebkitTransformStyle:`preserve-3d`,WebkitBackfaceVisibility:`hidden`}},[`${d}-symbol`]:{verticalAlign:`top`}},"&-rtl":{direction:`rtl`,[`${t}-count, ${t}-dot, ${d}-custom-component`]:{transform:`translate(-50%, -50%)`}}}),[`${p}`]:{position:`relative`},[`${f}`]:X(X(X(X({},be(e)),{position:`absolute`,top:l,padding:`0 ${e.paddingXS}px`,color:e.colorPrimary,lineHeight:`${i}px`,whiteSpace:`nowrap`,backgroundColor:e.colorPrimary,borderRadius:e.borderRadiusSM,[`${f}-text`]:{color:e.colorTextLightSolid},[`${f}-corner`]:{position:`absolute`,top:`100%`,width:u,height:u,color:`currentcolor`,border:`${u/2}px solid`,transform:e.badgeRibbonCornerTransform,transformOrigin:`top`,filter:e.badgeRibbonCornerFilter}}),h),{[`&${f}-placement-end`]:{insetInlineEnd:-u,borderEndEndRadius:0,[`${f}-corner`]:{insetInlineEnd:0,borderInlineEndColor:`transparent`,borderBlockEndColor:`transparent`}},[`&${f}-placement-start`]:{insetInlineStart:-u,borderEndStartRadius:0,[`${f}-corner`]:{insetInlineStart:0,borderBlockEndColor:`transparent`,borderInlineStartColor:`transparent`}},"&-rtl":{direction:`rtl`}})}},Wt=ve(`Badge`,e=>{let{fontSize:t,lineHeight:n,fontSizeSM:r,lineWidth:i,marginXS:a,colorBorderBg:o}=e,s=Math.round(t*n),c=i,l=s-2*c,u=e.colorBgContainer,d=r,f=e.colorError,p=e.colorErrorHover,m=t,h=r/2,g=r,_=r/2;return[Ut(Oe(e,{badgeFontHeight:s,badgeShadowSize:c,badgeZIndex:`auto`,badgeHeight:l,badgeTextColor:u,badgeFontWeight:`normal`,badgeFontSize:d,badgeColor:f,badgeColorHover:p,badgeShadowColor:o,badgeHeightSm:m,badgeDotSize:h,badgeFontSizeSm:g,badgeStatusSize:_,badgeProcessingDuration:`1.2s`,badgeRibbonOffset:a,badgeRibbonCornerTransform:`scaleY(0.75)`,badgeRibbonCornerFilter:`brightness(75%)`}))]}),Gt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Kt=v({compatConfig:{MODE:3},name:`ABadgeRibbon`,inheritAttrs:!1,props:{prefix:String,color:{type:String},text:Ee.any,placement:{type:String,default:`end`}},slots:Object,setup(e,t){let{attrs:n,slots:r}=t,{prefixCls:i,direction:a}=we(`ribbon`,e),[o,s]=Wt(i),c=E(()=>je(e.color,!1)),l=E(()=>[i.value,`${i.value}-placement-${e.placement}`,{[`${i.value}-rtl`]:a.value===`rtl`,[`${i.value}-color-${e.color}`]:c.value}]);return()=>{let{class:t,style:a}=n,u=Gt(n,[`class`,`style`]),d={},f={};return e.color&&!c.value&&(d.background=e.color,f.color=e.color),o(w(`div`,Z({class:`${i.value}-wrapper ${s.value}`},u),[r.default?.call(r),w(`div`,{class:[l.value,t,s.value],style:X(X({},d),a)},[w(`span`,{class:`${i.value}-text`},[e.text||r.text?.call(r)]),w(`div`,{class:`${i.value}-corner`,style:f},null)])]))}}}),qt=v({compatConfig:{MODE:3},name:`ABadge`,Ribbon:Kt,inheritAttrs:!1,props:{count:Ee.any.def(null),showZero:{type:Boolean,default:void 0},overflowCount:{type:Number,default:99},dot:{type:Boolean,default:void 0},prefixCls:String,scrollNumberPrefixCls:String,status:{type:String},size:{type:String,default:`default`},color:String,text:Ee.any,offset:Array,numberStyle:{type:Object,default:void 0},title:String},slots:Object,setup(t,n){let{slots:r,attrs:i}=n,{prefixCls:a,direction:o}=we(`badge`,t),[s,u]=Wt(a),d=E(()=>t.count>t.overflowCount?`${t.overflowCount}+`:t.count),f=E(()=>d.value===`0`||d.value===0),p=E(()=>t.count===null||f.value&&!t.showZero),m=E(()=>(t.status!==null&&t.status!==void 0||t.color!==null&&t.color!==void 0)&&p.value),h=E(()=>t.dot&&!f.value),g=E(()=>h.value?``:d.value),_=E(()=>(g.value===null||g.value===void 0||g.value===``||f.value&&!t.showZero)&&!h.value),v=I(t.count),y=I(g.value),b=I(h.value);l([()=>t.count,g,h],()=>{_.value||(v.value=t.count,y.value=g.value,b.value=h.value)},{immediate:!0});let x=E(()=>je(t.color,!1)),S=E(()=>({[`${a.value}-status-dot`]:m.value,[`${a.value}-status-${t.status}`]:!!t.status,[`${a.value}-color-${t.color}`]:x.value})),C=E(()=>t.color&&!x.value?{background:t.color,color:t.color}:{}),T=E(()=>({[`${a.value}-dot`]:b.value,[`${a.value}-count`]:!b.value,[`${a.value}-count-sm`]:t.size===`small`,[`${a.value}-multiple-words`]:!b.value&&y.value&&y.value.toString().length>1,[`${a.value}-status-${t.status}`]:!!t.status,[`${a.value}-color-${t.color}`]:x.value}));return()=>{let{offset:n,title:l,color:d}=t,f=i.style,p=Te(r,t,`text`),h=a.value,g=v.value,b=_e(r.default?.call(r));b=b.length?b:null;let E=!!(!_.value||r.count),D=(()=>{if(!n)return X({},f);let e={marginTop:$e(n[1])?`${n[1]}px`:n[1]};return o.value===`rtl`?e.left=`${parseInt(n[0],10)}px`:e.right=`${-parseInt(n[0],10)}px`,X(X({},e),f)})(),O=l??(typeof g==`string`||typeof g==`number`?g:void 0),k=E||!p?null:w(`span`,{class:`${h}-status-text`},[p]),A=typeof g==`object`||g===void 0&&r.count?c(g??r.count?.call(r),{style:D},!1):null,j=ke(h,{[`${h}-status`]:m.value,[`${h}-not-a-wrapper`]:!b,[`${h}-rtl`]:o.value===`rtl`},i.class,u.value);if(!b&&m.value){let e=D.color;return s(w(`span`,Z(Z({},i),{},{class:j,style:D}),[w(`span`,{class:S.value,style:C.value},null),w(`span`,{style:{color:e},class:`${h}-status-text`},[p])]))}let M=e(b?`${h}-zoom`:``,{appear:!1}),N=X(X({},D),t.numberStyle);return d&&!x.value&&(N||={},N.background=d),s(w(`span`,Z(Z({},i),{},{class:j}),[b,w(J,M,{default:()=>[ee(w(It,{prefixCls:t.scrollNumberPrefixCls,show:E,class:T.value,count:y.value,title:O,style:N,key:`scrollNumber`},{default:()=>[A]}),[[ne,E]])]}),k]))}}});qt.install=function(e){return e.component(qt.name,qt),e.component(Kt.name,Kt),e};var Jt=qt,Yt=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Xt=v({compatConfig:{MODE:3},name:`ABreadcrumbItem`,inheritAttrs:!1,__ANT_BREADCRUMB_ITEM:!0,props:{prefixCls:String,href:String,separator:Ee.any,dropdownProps:ce(),overlay:Ee.any,onClick:he()},slots:Object,setup(e,t){let{slots:n,attrs:r,emit:i}=t,{prefixCls:a}=we(`breadcrumb`,e),o=(t,r)=>{let i=Te(n,e,`overlay`);return i?w(et,Z(Z({},e.dropdownProps),{},{overlay:i,placement:`bottom`}),{default:()=>[w(`span`,{class:`${r}-overlay-link`},[t,w(Ie,null,null)])]}):t},s=e=>{i(`click`,e)};return()=>{let t=Te(n,e,`separator`)??`/`,i=Te(n,e),{class:c,style:l}=r,u=Yt(r,[`class`,`style`]),d;return d=e.href===void 0?w(`span`,Z({class:`${a.value}-link`,onClick:s},u),[i]):w(`a`,Z({class:`${a.value}-link`,onClick:s},u),[i]),d=o(d,a.value),i==null?null:w(`li`,{class:c,style:l},[d,t&&w(`span`,{class:`${a.value}-separator`},[t])])}}}),Zt=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:X(X({},be(e)),{color:e.breadcrumbBaseColor,fontSize:e.breadcrumbFontSize,[n]:{fontSize:e.breadcrumbIconFontSize},ol:{display:`flex`,flexWrap:`wrap`,margin:0,padding:0,listStyle:`none`},a:X({color:e.breadcrumbLinkColor,transition:`color ${e.motionDurationMid}`,padding:`0 ${e.paddingXXS}px`,borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,marginInline:-e.marginXXS,"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover}},Ce(e)),"li:last-child":{color:e.breadcrumbLastItemColor,[`& > ${t}-separator`]:{display:`none`}},[`${t}-separator`]:{marginInline:e.breadcrumbSeparatorMargin,color:e.breadcrumbSeparatorColor},[`${t}-link`]:{[`
|
|
2
|
-
> ${n} + span,
|
|
3
|
-
> ${n} + a
|
|
4
|
-
`]:{marginInlineStart:e.marginXXS}},[`${t}-overlay-link`]:{borderRadius:e.borderRadiusSM,height:e.lineHeight*e.fontSize,display:`inline-block`,padding:`0 ${e.paddingXXS}px`,marginInline:-e.marginXXS,[`> ${n}`]:{marginInlineStart:e.marginXXS,fontSize:e.fontSizeIcon},"&:hover":{color:e.breadcrumbLinkColorHover,backgroundColor:e.colorBgTextHover,a:{color:e.breadcrumbLinkColorHover}},a:{"&:hover":{backgroundColor:`transparent`}}},[`&${e.componentCls}-rtl`]:{direction:`rtl`}})}},Qt=ve(`Breadcrumb`,e=>[Zt(Oe(e,{breadcrumbBaseColor:e.colorTextDescription,breadcrumbFontSize:e.fontSize,breadcrumbIconFontSize:e.fontSize,breadcrumbLinkColor:e.colorTextDescription,breadcrumbLinkColorHover:e.colorText,breadcrumbLastItemColor:e.colorText,breadcrumbSeparatorMargin:e.marginXS,breadcrumbSeparatorColor:e.colorTextDescription}))]),$t=()=>({prefixCls:String,routes:{type:Array},params:Ee.any,separator:Ee.any,itemRender:{type:Function}});function en(e,t){if(!e.breadcrumbName)return null;let n=Object.keys(t).join(`|`);return e.breadcrumbName.replace(RegExp(`:(${n})`,`g`),(e,n)=>t[n]||e)}function tn(e){let{route:t,params:n,routes:r,paths:i}=e,a=r.indexOf(t)===r.length-1,o=en(t,n);return a?w(`span`,null,[o]):w(`a`,{href:`#/${i.join(`/`)}`},[o])}var nn=v({compatConfig:{MODE:3},name:`ABreadcrumb`,inheritAttrs:!1,props:$t(),slots:Object,setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:a}=we(`breadcrumb`,e),[o,s]=Qt(i),c=(e,t)=>(e=(e||``).replace(/^\//,``),Object.keys(t).forEach(n=>{e=e.replace(`:${n}`,t[n])}),e),l=(e,t,n)=>{let r=[...e],i=c(t||``,n);return i&&r.push(i),r},u=e=>{let{routes:t=[],params:n={},separator:r,itemRender:i=tn}=e,a=[];return t.map(e=>{let o=c(e.path,n);o&&a.push(o);let s=[...a],u=null;e.children&&e.children.length&&(u=w(Je,{items:e.children.map(e=>({key:e.path||e.breadcrumbName,label:i({route:e,params:n,routes:t,paths:l(s,e.path,n)})}))},null));let d={separator:r};return u&&(d.overlay=u),w(Xt,Z(Z({},d),{},{key:o||e.breadcrumbName}),{default:()=>[i({route:e,params:n,routes:t,paths:s})]})})};return()=>{let t,{routes:c,params:l={}}=e,d=_e(Te(n,e)),f=Te(n,e,`separator`)??`/`,p=e.itemRender||n.itemRender||tn;c&&c.length>0?t=u({routes:c,params:l,separator:f,itemRender:p}):d.length&&(t=d.map((e,t)=>(Se(typeof e.type==`object`&&(e.type.__ANT_BREADCRUMB_ITEM||e.type.__ANT_BREADCRUMB_SEPARATOR),`Breadcrumb`,`Only accepts Breadcrumb.Item and Breadcrumb.Separator as it's children`),z(e,{separator:f,key:t}))));let m={[i.value]:!0,[`${i.value}-rtl`]:a.value===`rtl`,[`${r.class}`]:!!r.class,[s.value]:!0};return o(w(`nav`,Z(Z({},r),{},{class:m}),[w(`ol`,null,[t])]))}}}),rn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},an=v({compatConfig:{MODE:3},name:`ABreadcrumbSeparator`,__ANT_BREADCRUMB_SEPARATOR:!0,inheritAttrs:!1,props:{prefixCls:String},setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i}=we(`breadcrumb`,e);return()=>{let{separator:e,class:t}=r,a=rn(r,[`separator`,`class`]),o=_e(n.default?.call(n));return w(`span`,Z({class:[`${i.value}-separator`,t]},a),[o.length>0?o:`/`])}}});nn.Item=Xt,nn.Separator=an,nn.install=function(e){return e.component(nn.name,nn),e.component(Xt.name,Xt),e.component(an.name,an),e};var on=nn,sn=[`normal`,`exception`,`active`,`success`],cn=()=>({prefixCls:String,type:De(),percent:Number,format:fe(),status:De(),showInfo:me(),strokeWidth:Number,strokeLinecap:De(),strokeColor:ue(),trailColor:String,width:Number,success:ce(),gapDegree:Number,gapPosition:De(),size:ye([String,Number,Array]),steps:Number,successPercent:Number,title:String,progressStatus:De()});function ln(e){return!e||e<0?0:e>100?100:e}function un(e){let{success:t,successPercent:n}=e,r=n;return t&&`progress`in t&&(o(!1,`Progress`,"`success.progress` is deprecated. Please use `success.percent` instead."),r=t.progress),t&&`percent`in t&&(r=t.percent),r}function dn(e){let{percent:t,success:n,successPercent:r}=e,i=ln(un({success:n,successPercent:r}));return[i,ln(ln(t)-i)]}function fn(e){let{success:t={},strokeColor:n}=e,{strokeColor:r}=t;return[r||le.green,n||null]}var pn=(e,t,n)=>{let r=-1,i=-1;if(t===`step`){let t=n.steps,a=n.strokeWidth;typeof e==`string`||e===void 0?(r=e===`small`?2:14,i=a??8):typeof e==`number`?[r,i]=[e,e]:[r=14,i=8]=e,r*=t}else if(t===`line`){let t=n?.strokeWidth;typeof e==`string`||e===void 0?i=t||(e===`small`?6:8):typeof e==`number`?[r,i]=[e,e]:[r=-1,i=8]=e}else(t===`circle`||t===`dashboard`)&&(typeof e==`string`||e===void 0?[r,i]=e===`small`?[60,60]:[120,120]:typeof e==`number`?[r,i]=[e,e]:(r=e[0]??e[1]??120,i=e[0]??e[1]??120));return{width:r,height:i}},mn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},hn=()=>X(X({},cn()),{strokeColor:ue(),direction:De()}),gn=e=>{let t=[];return Object.keys(e).forEach(n=>{let r=parseFloat(n.replace(/%/g,``));isNaN(r)||t.push({key:r,value:e[n]})}),t=t.sort((e,t)=>e.key-t.key),t.map(e=>{let{key:t,value:n}=e;return`${n} ${t}%`}).join(`, `)},_n=(e,t)=>{let{from:n=le.blue,to:r=le.blue,direction:i=t===`rtl`?`to left`:`to right`}=e,a=mn(e,[`from`,`to`,`direction`]);return Object.keys(a).length===0?{backgroundImage:`linear-gradient(${i}, ${n}, ${r})`}:{backgroundImage:`linear-gradient(${i}, ${gn(a)})`}},vn=v({compatConfig:{MODE:3},name:`ProgressLine`,inheritAttrs:!1,props:hn(),setup(e,t){let{slots:n,attrs:r}=t,i=E(()=>{let{strokeColor:t,direction:n}=e;return t&&typeof t!=`string`?_n(t,n):{backgroundColor:t}}),a=E(()=>e.strokeLinecap===`square`||e.strokeLinecap===`butt`?0:void 0),o=E(()=>e.trailColor?{backgroundColor:e.trailColor}:void 0),s=E(()=>e.size??[-1,e.strokeWidth||(e.size===`small`?6:8)]),c=E(()=>pn(s.value,`line`,{strokeWidth:e.strokeWidth})),l=E(()=>{let{percent:t}=e;return X({width:`${ln(t)}%`,height:`${c.value.height}px`,borderRadius:a.value},i.value)}),u=E(()=>un(e)),d=E(()=>{let{success:t}=e;return{width:`${ln(u.value)}%`,height:`${c.value.height}px`,borderRadius:a.value,backgroundColor:t?.strokeColor}}),f={width:c.value.width<0?`100%`:c.value.width,height:`${c.value.height}px`};return()=>w(j,null,[w(`div`,Z(Z({},r),{},{class:[`${e.prefixCls}-outer`,r.class],style:[r.style,f]}),[w(`div`,{class:`${e.prefixCls}-inner`,style:o.value},[w(`div`,{class:`${e.prefixCls}-bg`,style:l.value},null),u.value===void 0?null:w(`div`,{class:`${e.prefixCls}-success-bg`,style:d.value},null)])]),n.default?.call(n)])}}),yn={percent:0,prefixCls:`vc-progress`,strokeColor:`#2db7f5`,strokeLinecap:`round`,strokeWidth:1,trailColor:`#D9D9D9`,trailWidth:1},bn=e=>{let t=I(null);return u(()=>{let n=Date.now(),r=!1;e.value.forEach(e=>{let i=e?.$el||e;if(!i)return;r=!0;let a=i.style;a.transitionDuration=`.3s, .3s, .3s, .06s`,t.value&&n-t.value<100&&(a.transitionDuration=`0s, 0s`)}),r&&(t.value=Date.now())}),e},xn={gapDegree:Number,gapPosition:{type:String},percent:{type:[Array,Number]},prefixCls:String,strokeColor:{type:[Object,String,Array]},strokeLinecap:{type:String},strokeWidth:Number,trailColor:String,trailWidth:Number,transition:String},Sn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Cn=0;function wn(e){return+e.replace(`%`,``)}function Tn(e){return Array.isArray(e)?e:[e]}function En(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5?arguments[5]:void 0,o=50-r/2,s=0,c=-o,l=0,u=-2*o;switch(a){case`left`:s=-o,c=0,l=2*o,u=0;break;case`right`:s=o,c=0,l=-2*o,u=0;break;case`bottom`:c=o,u=2*o}let d=`M 50,50 m ${s},${c}
|
|
5
|
-
a ${o},${o} 0 1 1 ${l},${-u}
|
|
6
|
-
a ${o},${o} 0 1 1 ${-l},${u}`,f=Math.PI*2*o;return{pathString:d,pathStyle:{stroke:n,strokeDasharray:`${t/100*(f-i)}px ${f}px`,strokeDashoffset:`-${i/2+e/100*(f-i)}px`,transition:`stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s`}}}var Dn=v({compatConfig:{MODE:3},name:`VCCircle`,props:pe(xn,yn),setup(e){Cn+=1;let t=I(Cn),n=E(()=>Tn(e.percent)),r=E(()=>Tn(e.strokeColor)),[i,a]=Xe();bn(a);let o=()=>{let{prefixCls:a,strokeWidth:o,strokeLinecap:s,gapDegree:c,gapPosition:l}=e,u=0;return n.value.map((e,n)=>{let d=r.value[n]||r.value[r.value.length-1],f=Object.prototype.toString.call(d)===`[object Object]`?`url(#${a}-gradient-${t.value})`:``,{pathString:p,pathStyle:m}=En(u,e,d,o,c,l);u+=e;let h={key:n,d:p,stroke:f,"stroke-linecap":s,"stroke-width":o,opacity:e===0?0:1,"fill-opacity":`0`,class:`${a}-circle-path`,style:m};return w(`path`,Z({ref:i(n)},h),null)})};return()=>{let{prefixCls:n,strokeWidth:i,trailWidth:a,gapDegree:s,gapPosition:c,trailColor:l,strokeLinecap:u,strokeColor:d}=e,f=Sn(e,[`prefixCls`,`strokeWidth`,`trailWidth`,`gapDegree`,`gapPosition`,`trailColor`,`strokeLinecap`,`strokeColor`]),{pathString:p,pathStyle:m}=En(0,100,l,i,s,c);delete f.percent;let h=r.value.find(e=>Object.prototype.toString.call(e)===`[object Object]`),g={d:p,stroke:l,"stroke-linecap":u,"stroke-width":a||i,"fill-opacity":`0`,class:`${n}-circle-trail`,style:m};return w(`svg`,Z({class:`${n}-circle`,viewBox:`0 0 100 100`},f),[h&&w(`defs`,null,[w(`linearGradient`,{id:`${n}-gradient-${t.value}`,x1:`100%`,y1:`0%`,x2:`0%`,y2:`0%`},[Object.keys(h).sort((e,t)=>wn(e)-wn(t)).map((e,t)=>w(`stop`,{key:t,offset:e,"stop-color":h[e]},null))])]),w(`path`,g,null),o().reverse()])}}}),On=()=>X(X({},cn()),{strokeColor:ue()}),kn=3,An=e=>kn/e*100,jn=v({compatConfig:{MODE:3},name:`ProgressCircle`,inheritAttrs:!1,props:pe(On(),{trailColor:null}),setup(e,t){let{slots:n,attrs:r}=t,i=E(()=>e.width??120),a=E(()=>e.size??[i.value,i.value]),o=E(()=>pn(a.value,`circle`)),s=E(()=>{if(e.gapDegree||e.gapDegree===0)return e.gapDegree;if(e.type===`dashboard`)return 75}),c=E(()=>({width:`${o.value.width}px`,height:`${o.value.height}px`,fontSize:`${o.value.width*.15+6}px`})),l=E(()=>e.strokeWidth??Math.max(An(o.value.width),6)),u=E(()=>e.gapPosition||e.type===`dashboard`&&`bottom`||void 0),d=E(()=>dn(e)),f=E(()=>Object.prototype.toString.call(e.strokeColor)===`[object Object]`),p=E(()=>fn({success:e.success,strokeColor:e.strokeColor})),m=E(()=>({[`${e.prefixCls}-inner`]:!0,[`${e.prefixCls}-circle-gradient`]:f.value}));return()=>{let t=w(Dn,{percent:d.value,strokeWidth:l.value,trailWidth:l.value,strokeColor:p.value,strokeLinecap:e.strokeLinecap,trailColor:e.trailColor,prefixCls:e.prefixCls,gapDegree:s.value,gapPosition:u.value},null);return w(`div`,Z(Z({},r),{},{class:[m.value,r.class],style:[r.style,c.value]}),[o.value.width<=20?w(Me,null,{default:()=>[w(`span`,null,[t])],title:n.default}):w(j,null,[t,n.default?.call(n)])])}}}),Mn=v({compatConfig:{MODE:3},name:`Steps`,props:X(X({},cn()),{steps:Number,strokeColor:ye(),trailColor:String}),setup(e,t){let{slots:n}=t,r=E(()=>Math.round(e.steps*((e.percent||0)/100))),i=E(()=>e.size??[e.size===`small`?2:14,e.strokeWidth||8]),a=E(()=>pn(i.value,`step`,{steps:e.steps,strokeWidth:e.strokeWidth||8})),o=E(()=>{let{steps:t,strokeColor:n,trailColor:i,prefixCls:o}=e,s=[];for(let e=0;e<t;e+=1){let c=Array.isArray(n)?n[e]:n,l={[`${o}-steps-item`]:!0,[`${o}-steps-item-active`]:e<=r.value-1};s.push(w(`div`,{key:e,class:l,style:{backgroundColor:e<=r.value-1?c:i,width:`${a.value.width/t}px`,height:`${a.value.height}px`}},null))}return s});return()=>w(`div`,{class:`${e.prefixCls}-steps-outer`},[o.value,n.default?.call(n)])}}),Nn=new de(`antProgressActive`,{"0%":{transform:`translateX(-100%) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(-100%) scaleX(0)`,opacity:.5},to:{transform:`translateX(0) scaleX(1)`,opacity:0}}),Pn=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:X(X({},be(e)),{display:`inline-block`,"&-rtl":{direction:`rtl`},"&-line":{position:`relative`,width:`100%`,fontSize:e.fontSize,marginInlineEnd:e.marginXS,marginBottom:e.marginXS},[`${t}-outer`]:{display:`inline-block`,width:`100%`},[`&${t}-show-info`]:{[`${t}-outer`]:{marginInlineEnd:`calc(-2em - ${e.marginXS}px)`,paddingInlineEnd:`calc(2em + ${e.paddingXS}px)`}},[`${t}-inner`]:{position:`relative`,display:`inline-block`,width:`100%`,overflow:`hidden`,verticalAlign:`middle`,backgroundColor:e.progressRemainingColor,borderRadius:e.progressLineRadius},[`${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorInfo}},[`${t}-success-bg, ${t}-bg`]:{position:`relative`,backgroundColor:e.colorInfo,borderRadius:e.progressLineRadius,transition:`all ${e.motionDurationSlow} ${e.motionEaseInOutCirc}`},[`${t}-success-bg`]:{position:`absolute`,insetBlockStart:0,insetInlineStart:0,backgroundColor:e.colorSuccess},[`${t}-text`]:{display:`inline-block`,width:`2em`,marginInlineStart:e.marginXS,color:e.progressInfoTextColor,lineHeight:1,whiteSpace:`nowrap`,textAlign:`start`,verticalAlign:`middle`,wordBreak:`normal`,[n]:{fontSize:e.fontSize}},[`&${t}-status-active`]:{[`${t}-bg::before`]:{position:`absolute`,inset:0,backgroundColor:e.colorBgContainer,borderRadius:e.progressLineRadius,opacity:0,animationName:Nn,animationDuration:e.progressActiveMotionDuration,animationTimingFunction:e.motionEaseOutQuint,animationIterationCount:`infinite`,content:`""`}},[`&${t}-status-exception`]:{[`${t}-bg`]:{backgroundColor:e.colorError},[`${t}-text`]:{color:e.colorError}},[`&${t}-status-exception ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorError}},[`&${t}-status-success`]:{[`${t}-bg`]:{backgroundColor:e.colorSuccess},[`${t}-text`]:{color:e.colorSuccess}},[`&${t}-status-success ${t}-inner:not(${t}-circle-gradient)`]:{[`${t}-circle-path`]:{stroke:e.colorSuccess}}})}},Fn=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-circle-trail`]:{stroke:e.progressRemainingColor},[`&${t}-circle ${t}-inner`]:{position:`relative`,lineHeight:1,backgroundColor:`transparent`},[`&${t}-circle ${t}-text`]:{position:`absolute`,insetBlockStart:`50%`,insetInlineStart:0,width:`100%`,margin:0,padding:0,color:e.colorText,lineHeight:1,whiteSpace:`normal`,textAlign:`center`,transform:`translateY(-50%)`,[n]:{fontSize:`${e.fontSize/e.fontSizeSM}em`}},[`${t}-circle&-status-exception`]:{[`${t}-text`]:{color:e.colorError}},[`${t}-circle&-status-success`]:{[`${t}-text`]:{color:e.colorSuccess}}},[`${t}-inline-circle`]:{lineHeight:1,[`${t}-inner`]:{verticalAlign:`bottom`}}}},In=e=>{let{componentCls:t}=e;return{[t]:{[`${t}-steps`]:{display:`inline-block`,"&-outer":{display:`flex`,flexDirection:`row`,alignItems:`center`},"&-item":{flexShrink:0,minWidth:e.progressStepMinWidth,marginInlineEnd:e.progressStepMarginInlineEnd,backgroundColor:e.progressRemainingColor,transition:`all ${e.motionDurationSlow}`,"&-active":{backgroundColor:e.colorInfo}}}}}},Ln=e=>{let{componentCls:t,iconCls:n}=e;return{[t]:{[`${t}-small&-line, ${t}-small&-line ${t}-text ${n}`]:{fontSize:e.fontSizeSM}}}},Rn=ve(`Progress`,e=>{let t=e.marginXXS/2,n=Oe(e,{progressLineRadius:100,progressInfoTextColor:e.colorText,progressDefaultColor:e.colorInfo,progressRemainingColor:e.colorFillSecondary,progressStepMarginInlineEnd:t,progressStepMinWidth:t,progressActiveMotionDuration:`2.4s`});return[Pn(n),Fn(n),In(n),Ln(n)]}),zn=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Bn=v({compatConfig:{MODE:3},name:`AProgress`,inheritAttrs:!1,props:pe(cn(),{type:`line`,percent:0,showInfo:!0,trailColor:null,size:`default`,strokeLinecap:`round`}),slots:Object,setup(e,n){let{slots:r,attrs:o}=n,{prefixCls:s,direction:c}=we(`progress`,e),[l,u]=Rn(s),d=E(()=>Array.isArray(e.strokeColor)?e.strokeColor[0]:e.strokeColor),f=E(()=>{let{percent:t=0}=e,n=un(e);return parseInt(n===void 0?t.toString():n.toString(),10)}),p=E(()=>{let{status:t}=e;return!sn.includes(t)&&f.value>=100?`success`:t||`normal`}),m=E(()=>{let{type:t,showInfo:n,size:r}=e,i=s.value;return{[i]:!0,[`${i}-inline-circle`]:t===`circle`&&pn(r,`circle`).width<=20,[`${i}-${t===`dashboard`&&`circle`||t}`]:!0,[`${i}-status-${p.value}`]:!0,[`${i}-show-info`]:n,[`${i}-${r}`]:r,[`${i}-rtl`]:c.value===`rtl`,[u.value]:!0}}),h=E(()=>typeof e.strokeColor==`string`||Array.isArray(e.strokeColor)?e.strokeColor:void 0),g=()=>{let{showInfo:n,format:o,type:c,percent:l,title:u}=e,d=un(e);if(!n)return null;let f,m=o||r?.format||(e=>`${e}%`),h=c===`line`;return o||r?.format||p.value!==`exception`&&p.value!==`success`?f=m(ln(l),ln(d)):p.value===`exception`?f=w(h?t:i,null,null):p.value===`success`&&(f=w(h?a:Le,null,null)),w(`span`,{class:`${s.value}-text`,title:u===void 0&&typeof f==`string`?f:void 0},[f])};return()=>{let{type:t,steps:n,title:r}=e,{class:i}=o,a=zn(o,[`class`]),u=g(),f;return t===`line`?f=n?w(Mn,Z(Z({},e),{},{strokeColor:h.value,prefixCls:s.value,steps:n}),{default:()=>[u]}):w(vn,Z(Z({},e),{},{strokeColor:d.value,prefixCls:s.value,direction:c.value}),{default:()=>[u]}):(t===`circle`||t===`dashboard`)&&(f=w(jn,Z(Z({},e),{},{prefixCls:s.value,strokeColor:d.value,progressStatus:p.value}),{default:()=>[u]})),l(w(`div`,Z(Z({role:`progressbar`},a),{},{class:[m.value,i],title:r}),[f]))}}}),Vn=xe(Bn),Hn={class:`mh-body`},Un={class:`mh-name`},Wn={class:`mh-role`},Gn={key:0,class:`mh-task`},Kn={class:`mh-hint`},qn=Object.assign(Q(v({__name:`MentionHoverCard`,setup(e){let t=yt(),n=I(null),r=null,i=e=>{for(let[n,r]of Object.entries(t.agents)){let t=r.find(t=>t.agentId===e);if(t)return{agent:t,channelId:n}}return null},a=e=>e.target.closest?.(`.md-mention, .who-pill`)??null,o=e=>{let t=a(e);if(!t)return;let o=t.dataset.agentId;o&&(r&&clearTimeout(r),r=setTimeout(()=>{let t=i(o);if(!t)return;let r=Math.min(e.clientX+14,Math.max(window.innerWidth-280,8)),a=Math.min(e.clientY+16,Math.max(window.innerHeight-170,8));n.value={x:r,y:a,...t}},350))},s=e=>{a(e)&&(r&&clearTimeout(r),n.value=null)};_(()=>{document.addEventListener(`mouseover`,o),document.addEventListener(`mouseout`,s)}),g(()=>{r&&clearTimeout(r),document.removeEventListener(`mouseover`,o),document.removeEventListener(`mouseout`,s)});let c=e=>e===`busy`?`var(--tone-live-dot)`:`var(--ink-fainter)`;return(e,r)=>(b(),F(L,{to:`body`},[n.value?(b(),k(`div`,{key:0,class:`mh-card`,style:p({left:`${n.value.x}px`,top:`${n.value.y}px`})},[O(`span`,{class:`aw-avatar is-agent mh-ava`,style:p({"--av":H(St)(n.value.agent.agentId)})},y(n.value.agent.name.trim().charAt(0).toUpperCase()),5),O(`div`,Hn,[O(`div`,Un,[O(`span`,{class:`mh-dot`,style:p({background:c(n.value.agent.state)})},null,4),U(` `+y(n.value.agent.name),1)]),O(`div`,Wn,y(n.value.agent.role)+` / `+y(n.value.agent.harness)+` / `+y(n.value.agent.state),1),n.value.agent.currentTaskId?(b(),k(`div`,Gn,y(e.$t(`mentionHoverCard.k3o5eky002`))+y(H(t).taskTitle(n.value.channelId,n.value.agent.currentTaskId)),1)):P(``,!0),O(`div`,Kn,y(e.$t(`mentionHoverCard.k1t89ag4001`)),1)])],4)):P(``,!0)]))}}),[[`__scopeId`,`data-v-85570eca`]]),{__name:`WorkshopMentionHoverCard`}),Jn={class:`fs`},Yn={class:`addr`},Xn=[`onClick`],Zn={class:`list`},Qn={class:`name`},$n=[`onClick`],er={class:`icon`},tr={class:`name`},nr={key:1,class:`empty`},rr={class:`hint`},ir=Object.assign(Q(v({__name:`FileSelectorModal`,props:{open:{type:Boolean},initialPath:{},title:{}},emits:[`update:open`,`select`],setup(e,{emit:t}){let{t:r}=Y(),i=e,a=t,o=lt(),c=I(``),u=I(null),d=I([]),f=I(!1),p=I(``),m=async e=>{f.value=!0;try{let t=await(await fetch(`/api/workshop/fs/dirs${e?`?path=${encodeURIComponent(e)}`:``}`,{headers:{authorization:`Bearer ${o.token}`}})).json();if(t.code!==0){n.warning(t.message??r(`fileSelectorModal.kz99pgv004`));return}c.value=t.data.cwd,u.value=t.data.parent,d.value=t.data.dirs??[],p.value=t.data.cwd}finally{f.value=!1}};l(()=>i.open,e=>{e&&m(i.initialPath||c.value||void 0)});let h=E(()=>{let e=c.value.includes(`\\`)?`\\`:`/`,t=c.value.split(e).filter(Boolean),n=[],r=``;for(let i of t)r=r?r+e+i:i.endsWith(`:`)?i+e:e+i,n.push({label:i,path:r});return n}),g=e=>void m(e),_=()=>{let e=p.value.trim();e&&m(e)},v=()=>{c.value&&(a(`select`,c.value),a(`update:open`,!1))},x=()=>a(`update:open`,!1);return(t,n)=>{let r=Xt,i=on,a=Be,o=st,c=s;return b(),F(c,{open:e.open,title:e.title??`选择工作目录`,width:640,"ok-text":`选择此目录`,"cancel-text":`取消`,"confirm-loading":H(f),onOk:v,onCancel:x},{default:R(()=>[O(`div`,Jn,[O(`div`,Yn,[w(i,{class:`crumbs`},{default:R(()=>[(b(!0),k(j,null,S(H(h),(e,t)=>(b(),F(r,{key:e.path+t},{default:R(()=>[O(`a`,{onClick:te(t=>g(e.path),[`prevent`])},y(e.label),9,Xn)]),_:2},1024))),128))]),_:1})]),w(a,{value:H(p),"onUpdate:value":n[0]||=e=>T(p)?p.value=e:null,size:`small`,class:`manual`,placeholder:`输入绝对路径跳转(如 D:\\\\projects\\\\my-app)`,"enter-button":`跳转`,onSearch:_},null,8,[`value`]),w(o,{spinning:H(f)},{default:R(()=>[O(`div`,Zn,[H(u)?(b(),k(`div`,{key:0,class:`row up`,onClick:n[1]||=e=>g(H(u))},[n[2]||=O(`span`,{class:`icon`},`⬆`,-1),O(`span`,Qn,y(t.$t(`fileSelectorModal.kvwnnvn001`)),1)])):P(``,!0),(b(!0),k(j,null,S(H(d),e=>(b(),k(`div`,{key:e.path,class:`row`,onClick:t=>g(e.path),onDblclick:v},[O(`span`,er,y(e.hasChildren?`📂`:`📁`),1),O(`span`,tr,y(e.name),1)],40,$n))),128)),!H(f)&&H(d).length===0?(b(),k(`div`,nr,y(t.$t(`fileSelectorModal.k268o2o002`)),1)):P(``,!0)])]),_:1},8,[`spinning`]),O(`div`,rr,y(t.$t(`fileSelectorModal.k1rt80dq003`)),1)])]),_:1},8,[`open`,`title`,`confirm-loading`])}}}),[[`__scopeId`,`data-v-c35e0bdd`]]),{__name:`WorkshopFileSelectorModal`}),ar={class:`channel-list`},or={class:`list-head`},sr={class:`head-actions`},cr={key:0,class:`empty`},lr=[`onClick`],ur={class:`row1`},dr={class:`ch-name`},fr=[`title`,`aria-label`,`onClick`],pr=[`aria-label`,`onClick`],mr={class:`row2`},hr={key:0,class:`meta syncing`},gr={key:1,class:`meta`},_r=[`title`,`onClick`],vr={class:`mount-template`},yr={class:`tpl-hint`},br={class:`ws-hint`},xr={class:`ws-hint`},Sr={class:`ws-hint`},Cr={key:0,class:`ch-plugin-list`},wr={class:`ch-plugin-main`},Tr={class:`aw-mono`},Er={key:0,class:`ws-hint`},Dr={key:1,class:`ws-hint ch-plugin-desc`},Or={key:0,class:`ws-hint`},kr={key:1,class:`ws-hint`},Ar={class:`ws-hint`},jr={class:`ws-hint`},Mr=Object.assign(Q(v({__name:`ChannelSessionList`,props:{wsId:{}},setup(e){let{t}=Y(),i=e,a=dt(),o=yt(),c=Tt(),l=E(()=>a.workspaces.find(e=>e.id===i.wsId)),u=I([]),d=I([]),f=async()=>{if(typeof window>`u`)return;let[e,t]=await Promise.all([c.listChannels(),c.listChannelTemplates().catch(()=>null)]);u.value=e?.data??[],d.value=t?.data??[]};f();let p=E(()=>(l.value?.channelIds??[]).map(e=>({id:e,meta:u.value.find(t=>t.id===e),entity:o.channels[e]})).map(({id:e,meta:t,entity:n})=>({id:e,name:n?.name??t?.name??e.slice(0,8),synced:n!==void 0,busy:o.busyCount(e),agents:o.agents[e]?.length??0,activeTasks:(o.tasks[e]??[]).filter(e=>![`COMPLETED`,`CANCELED`,`FAILED`].includes(e.state)).length,workspace:t?.workspace??``}))),m=e=>{a.setActiveChannel(i.wsId,e)},h=async e=>{try{await navigator.clipboard.writeText(e),n.success(t(`channelSessionList.kud74vg040`,{p0:e}))}catch{n.error(t(`channelSessionList.krij3gg026`))}},g=e=>e.replace(/[\\/]+$/,``).split(/[\\/]/).pop()??e,_=/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/i,v=e=>{let t=g(e);return _.test(t)?``:t},C=I(!1),A=D({name:``,description:``,workspace:``,scenarioPrompt:``}),M=I(!1),N=I(!1),ee=async()=>{if(!A.name.trim()){n.warning(`Channel 名称必填`);return}M.value=!0;try{let e=(await c.createChannel({name:A.name.trim(),description:A.description||void 0,scenarioPrompt:A.scenarioPrompt.trim()||void 0,workspace:A.workspace.trim()||void 0}))?.data?.channelId;if(!e)throw Error(t(`channelSessionList.k1bg6shc027`));await a.mountChannel(i.wsId,e),C.value=!1,A.name=``,A.description=``,A.workspace=``,A.scenarioPrompt=``,f(),n.success(t(`channelSessionList.kn89jvs028`))}catch(e){n.error(t(`channelSessionList.k1x2th9e041`,{p0:$(e)}))}finally{M.value=!1}},L=I(),z=I(!1),B=async()=>{if(L.value){z.value=!0;try{let e=(await c.mountChannelTemplate(i.wsId,L.value))?.data;n.success(t(`channelSessionList.kai50qc042`,{p0:e?.agentCount??0})),L.value=void 0,f()}catch(e){let r=e;n.error($(r,t(`channelSessionList.k97xi7u029`)))}finally{z.value=!1}}},V=e=>{a.unmountChannel(i.wsId,e).catch(e=>{n.error($(e,t(`channelSessionList.k1hgfvdc030`)))})},W=I(!1),G=I(``),K=D({name:``,scenarioPrompt:``,workspace:``}),q=D({harness:`omp`,provider:``,model:``,effort:``,enabled:!1}),J=I([]),ne=I(`levels`),ie=I(!1),ae=E(()=>J.value.map(e=>({value:e.id,label:e.id}))),se=E(()=>(J.value.find(e=>e.id===q.provider)?.models??[]).map(e=>({value:e.id,label:e.id}))),ce=E(()=>{let e=J.value.find(e=>e.id===q.provider)?.models.find(e=>e.id===q.model);return(e?.efforts??[]).map(t=>({value:t,label:t+(e?.defaultEffort===t?`(默认)`:``)}))}),X=async e=>{ie.value=!0,J.value=[];try{let t=(await c.listHarnessProviders(e))?.data?.catalog;J.value=t?.providers??[],ne.value=t?.effortMode??`unsupported`}catch{}finally{ie.value=!1}},le=async()=>{q.provider=``,q.model=``,q.effort=``,await X(q.harness)},ue=()=>{q.model=``,q.effort=``},de=()=>{q.effort=``},fe=I(!1),pe=I(!1),me=e=>{let t=u.value.find(t=>t.id===e);G.value=e,K.name=t?.name??``,K.scenarioPrompt=t?.scenarioPrompt??``,K.workspace=t?.workspace??``;let n=null;try{let e=t;n=e?.llmJson?JSON.parse(e.llmJson):null}catch{n=null}q.enabled=!!n?.model,q.harness=`omp`,q.provider=n?.provider??``,q.model=n?.model??``,q.effort=n?.effort??``,W.value=!0,q.enabled&&X(q.harness),ve(e)},he=I([]),ge=I(`default`),_e=I(null),ve=async e=>{try{let t=(await c.listChannelPlugins(e))?.data??{};he.value=t.plugins??[],ge.value=t.source===`explicit`?`explicit`:`default`}catch{}},ye=async(e,r)=>{if(!_e.value){_e.value=e.name;try{let i=he.value.map(t=>({name:t.name,enabled:t.name===e.name?r:t.enabled})),a=(await c.putChannelPlugins(G.value,{plugins:i}))?.data??{};he.value=a.plugins??i.map(e=>({...e})),ge.value=a.source===`explicit`?`explicit`:`default`,n.success(t(`channelSessionList.k1plugon044`))}catch(e){n.error($(e))}finally{_e.value=null}}},be=async()=>{fe.value=!0;try{await c.patchChannel(G.value,{scenarioPrompt:K.scenarioPrompt,workspace:K.workspace.trim()||void 0,llm:q.enabled&&q.model?{...q.provider?{provider:q.provider}:{},model:q.model,...q.effort?{effort:q.effort}:{}}:null}),n.success(t(`channelSessionList.kvsxlu6031`)),W.value=!1,f()}catch(e){n.error($(e))}finally{fe.value=!1}},xe=I(!1),Se=D({name:``,description:``,visibility:`private`}),Z=I(!1),Ce=()=>{Se.name=t(`channelSessionList.k2hfym5043`,{p0:K.name||`channel`}),Se.description=``,Se.visibility=`private`,xe.value=!0},we=async()=>{if(!Se.name.trim()){n.warning(t(`channelSessionList.k1i0ji0y032`));return}Z.value=!0;try{await c.captureChannelTemplate({channelId:G.value,name:Se.name.trim(),description:Se.description||void 0,visibility:Se.visibility}),n.success(t(`channelSessionList.kjpguxw033`)),xe.value=!1,f()}catch(e){n.error($(e))}finally{Z.value=!1}};return(e,n)=>{let i=oe,a=Re,o=Ue,c=Pe,u=He,f=r,g=ze,_=Ne,E=s,D=ct,I=tt,G=Ge,J=We,Y=ir;return b(),k(`div`,ar,[O(`div`,or,[n[30]||=O(`span`,{class:`title`},`Channels`,-1),O(`span`,sr,[O(`button`,{class:`head-op im`,type:`button`,title:`Channel 模板中心`,onClick:n[0]||=t=>(`navigateTo`in e?e.navigateTo:H(re))(`/workshop/channel-templates`)},[...n[28]||=[O(`span`,{class:`i-tabler-layout-grid-add im-pop`},null,-1)]]),O(`button`,{class:`head-op im`,type:`button`,title:`新建 Channel`,onClick:n[1]||=e=>C.value=!0},[...n[29]||=[O(`span`,{class:`i-tabler-plus im-pop`},null,-1)]])])]),w(i,null,{default:R(()=>[H(p).length===0?(b(),k(`div`,cr,y(e.$t(`channelSessionList.kkv789s014`)),1)):P(``,!0),(b(!0),k(j,null,S(H(p),t=>(b(),k(`div`,{key:t.id,class:x([`channel-item`,{active:H(l)?.activeChannelId===t.id}]),onClick:e=>m(t.id)},[O(`div`,ur,[O(`span`,{class:x([`dot`,{live:t.activeTasks>0}])},null,2),O(`span`,dr,y(t.name),1),O(`button`,{class:`op im`,type:`button`,title:e.$t(`channelSessionList.kne35ug001`),"aria-label":e.$t(`channelSessionList.kjmldih035`,{p0:t.name}),onClick:te(e=>me(t.id),[`stop`])},[...n[31]||=[O(`span`,{class:`i-tabler-settings2 im-pop`},null,-1)]],8,fr),O(`button`,{class:`op im`,type:`button`,title:`移出 workspace`,"aria-label":e.$t(`channelSessionList.k1yurooi036`,{p0:t.name}),onClick:te(e=>V(t.id),[`stop`])},[...n[32]||=[O(`span`,{class:`i-tabler-x im-pop`},null,-1)]],8,pr)]),O(`div`,mr,[t.synced?(b(),k(`span`,gr,y(t.agents)+` `+y(e.$t(`channelSessionList.k1ggoa45025`))+` `+y(t.busy)+` / `+y(e.$t(`channelSessionList.k3wcox034`))+` `+y(t.activeTasks),1)):(b(),k(`span`,hr,y(e.$t(`channelSessionList.k1bst7s9015`)),1))]),v(t.workspace)?(b(),k(`button`,{key:0,class:`row2 ws im`,type:`button`,title:e.$t(`channelSessionList.kfe4pzq037`,{p0:t.workspace}),onClick:te(e=>h(t.workspace),[`stop`])},[n[33]||=O(`span`,{class:`i-tabler-folder`},null,-1),U(` `+y(v(t.workspace)),1)],8,_r)):P(``,!0)],10,lr))),128))]),_:1}),O(`div`,vr,[w(a,{value:H(L),"onUpdate:value":n[2]||=e=>T(L)?L.value=e:null,size:`small`,placeholder:`从 Channel 模板挂载`,class:`select`,loading:H(z),options:H(d).map(t=>({value:t.id,label:e.$t(`channelSessionList.k1oes209038`,{p0:t.isBuiltin?`内置 · `:t.visibility===`public`?`公开 · `:``,p1:t.name,p2:+!!t.lead+t.members.length})})),onChange:B},null,8,[`value`,`loading`,`options`]),O(`div`,yr,y(e.$t(`channelSessionList.k18ppu31016`)),1)]),w(E,{open:H(C),"onUpdate:open":n[8]||=e=>T(C)?C.value=e:null,title:e.$t(`channelSessionList.k1qjyl6l002`),"confirm-loading":H(M),"ok-text":`创建`,"cancel-text":`取消`,onOk:ee},{default:R(()=>[w(_,{layout:`vertical`},{default:R(()=>[w(c,{label:`Channel 名称`},{default:R(()=>[w(o,{value:H(A).name,"onUpdate:value":n[3]||=e=>H(A).name=e},null,8,[`value`])]),_:1}),w(c,{label:e.$t(`channelSessionList.k40gkk003`)},{default:R(()=>[w(o,{value:H(A).description,"onUpdate:value":n[4]||=e=>H(A).description=e},null,8,[`value`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.k1wj4f38004`)},{extra:R(()=>[O(`span`,br,y(e.$t(`channelSessionList.k1u3zsr5017`)),1)]),default:R(()=>[w(u,{value:H(A).scenarioPrompt,"onUpdate:value":n[5]||=e=>H(A).scenarioPrompt=e,rows:4,placeholder:e.$t(`channelSessionList.k1098zie005`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.kmgv4h5006`)},{extra:R(()=>[O(`span`,xr,y(e.$t(`channelSessionList.kucq30k019`)),1)]),default:R(()=>[w(g,{compact:``},{default:R(()=>[w(o,{value:H(A).workspace,"onUpdate:value":n[6]||=e=>H(A).workspace=e,style:{width:`70%`},placeholder:`留空 = data/workspaces/<channelId>`,"allow-clear":``,onPressEnter:ee},null,8,[`value`]),w(f,{style:{width:`30%`},onClick:n[7]||=e=>N.value=!0},{default:R(()=>[U(y(e.$t(`channelSessionList.k3pz0ma018`)),1)]),_:1})]),_:1})]),_:1},8,[`label`]),w(c,null,{default:R(()=>[O(`span`,Sr,y(e.$t(`channelSessionList.k1ful761020`)),1)]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),w(E,{open:H(W),"onUpdate:open":n[19]||=e=>T(W)?W.value=e:null,title:e.$t(`channelSessionList.k1pmemvt039`,{p0:H(K).name}),"confirm-loading":H(fe),"ok-text":`保存`,"cancel-text":`取消`,onOk:be},{default:R(()=>[w(_,{layout:`vertical`},{default:R(()=>[w(c,{label:e.$t(`channelSessionList.k1i8q46x007`)},{default:R(()=>[w(u,{value:H(K).scenarioPrompt,"onUpdate:value":n[9]||=e=>H(K).scenarioPrompt=e,rows:4,placeholder:e.$t(`channelSessionList.ku3ugac008`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.k67dzev009`)},{default:R(()=>[w(g,{compact:``},{default:R(()=>[w(o,{value:H(K).workspace,"onUpdate:value":n[10]||=e=>H(K).workspace=e,style:{width:`70%`},placeholder:`data/workspaces/<channelId>`,"allow-clear":``},null,8,[`value`]),w(f,{style:{width:`30%`},onClick:n[11]||=e=>pe.value=!0},{default:R(()=>[U(y(e.$t(`channelSessionList.k3pz0ma018`)),1)]),_:1})]),_:1})]),_:1},8,[`label`]),w(c,{label:`默认模型(可选;留空用各 Harness 默认)`},{default:R(()=>[w(I,null,{default:R(()=>[w(D,{checked:H(q).enabled,"onUpdate:checked":n[12]||=e=>H(q).enabled=e,size:`small`,onChange:n[13]||=e=>{e&&X(H(q).harness)}},null,8,[`checked`]),w(a,{value:H(q).harness,"onUpdate:value":n[14]||=e=>H(q).harness=e,style:{width:`130px`},options:[{value:`omp`,label:`omp`},{value:`codex`,label:`codex`},{value:`opencode`,label:`opencode`},{value:`dsh`,label:`dsh`}],disabled:!H(q).enabled,onChange:le},null,8,[`value`,`disabled`]),w(a,{value:H(q).provider,"onUpdate:value":n[15]||=e=>H(q).provider=e,style:{width:`170px`},placeholder:H(ie)?`目录加载中…`:`provider`,options:H(ae),disabled:!H(q).enabled||H(ie),"show-search":``,onChange:ue},null,8,[`value`,`placeholder`,`options`,`disabled`]),w(a,{value:H(q).model,"onUpdate:value":n[16]||=e=>H(q).model=e,style:{width:`210px`},placeholder:`model`,options:H(se),disabled:!H(q).enabled||!H(q).provider,"show-search":``,onChange:de},null,8,[`value`,`options`,`disabled`]),H(ne)===`levels`?(b(),F(a,{key:0,value:H(q).effort,"onUpdate:value":n[17]||=e=>H(q).effort=e,style:{width:`130px`},placeholder:`effort(可选)`,options:H(ce),disabled:!H(q).enabled||!H(q).model,"allow-clear":``},null,8,[`value`,`options`,`disabled`])):H(ne)===`freetext`?(b(),F(o,{key:1,value:H(q).effort,"onUpdate:value":n[18]||=e=>H(q).effort=e,style:{width:`130px`},placeholder:`variant(可选)`,disabled:!H(q).enabled||!H(q).model,"allow-clear":``},null,8,[`value`,`disabled`])):P(``,!0)]),_:1})]),_:1}),w(c,{label:H(t)(`channelSessionList.k1pluglbl045`)},{default:R(()=>[H(he).length?(b(),k(`div`,Cr,[(b(!0),k(j,null,S(H(he),e=>(b(),k(`div`,{key:e.name,class:`ch-plugin-row`},[O(`div`,wr,[O(`span`,Tr,y(e.name),1),e.builtin?(b(),k(`span`,Er,`内置`)):P(``,!0),e.description?(b(),k(`span`,Dr,y(e.description),1)):P(``,!0)]),w(D,{checked:e.enabled,size:`small`,loading:H(_e)===e.name,onChange:t=>ye(e,!!t)},null,8,[`checked`,`loading`,`onChange`])]))),128)),H(ge)===`explicit`?P(``,!0):(b(),k(`span`,Or,y(H(t)(`channelSessionList.k1plugsrc046`)),1))])):(b(),k(`span`,kr,`—`))]),_:1},8,[`label`]),w(c,null,{default:R(()=>[w(f,{size:`small`,onClick:Ce},{default:R(()=>[n[34]||=O(`span`,{class:`i-tabler-template`},null,-1),U(` `+y(e.$t(`channelSessionList.k6kpql010`)),1)]),_:1}),O(`span`,Ar,y(e.$t(`channelSessionList.k1x6kznr021`)),1)]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),w(E,{open:H(xe),"onUpdate:open":n[23]||=e=>T(xe)?xe.value=e:null,title:e.$t(`channelSessionList.k6kpql010`),"confirm-loading":H(Z),"ok-text":`保存模板`,"cancel-text":`取消`,onOk:we},{default:R(()=>[w(_,{layout:`vertical`},{default:R(()=>[w(c,{label:e.$t(`channelSessionList.k1f55q76011`)},{default:R(()=>[w(o,{value:H(Se).name,"onUpdate:value":n[20]||=e=>H(Se).name=e},null,8,[`value`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.k40gkk003`)},{default:R(()=>[w(o,{value:H(Se).description,"onUpdate:value":n[21]||=e=>H(Se).description=e},null,8,[`value`])]),_:1},8,[`label`]),w(c,{label:e.$t(`channelSessionList.k3lrqn0012`)},{default:R(()=>[w(J,{value:H(Se).visibility,"onUpdate:value":n[22]||=e=>H(Se).visibility=e},{default:R(()=>[w(G,{value:`private`},{default:R(()=>[U(y(e.$t(`channelSessionList.k1otvrfv022`)),1)]),_:1}),w(G,{value:`public`},{default:R(()=>[U(y(e.$t(`channelSessionList.k1cc399s023`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),w(c,null,{default:R(()=>[O(`span`,jr,y(e.$t(`channelSessionList.kl9btf7024`)),1)]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),w(Y,{open:H(N),"onUpdate:open":n[24]||=e=>T(N)?N.value=e:null,title:e.$t(`channelSessionList.kbdp56k013`),"initial-path":H(A).workspace||void 0,onSelect:n[25]||=e=>{H(A).workspace=e}},null,8,[`open`,`title`,`initial-path`]),w(Y,{open:H(pe),"onUpdate:open":n[26]||=e=>T(pe)?pe.value=e:null,title:e.$t(`channelSessionList.kbdp56k013`),"initial-path":H(K).workspace||void 0,onSelect:n[27]||=e=>{H(K).workspace=e}},null,8,[`open`,`title`,`initial-path`])])}}}),[[`__scopeId`,`data-v-749e05c3`]]),{__name:`WorkshopChannelSessionList`}),Nr={class:`live-bar`},Pr={key:0,class:`live-idle`},Fr={class:`idle-text`},Ir=[`title`],Lr={class:`live-ava`},Rr={class:`live-text`},zr={class:`live-name`},Br={class:`live-detail`},Vr=[`aria-expanded`,`title`],Hr={class:`live-pop`},Ur={class:`live-pop-title`},Wr=[`onClick`],Gr={class:`live-pop-text`},Kr={class:`live-pop-name`},qr={class:`live-pop-detail`},Jr=Object.assign(Q(v({__name:`LiveAgentBar`,props:{wsId:{}},emits:[`openAgent`],setup(e,{emit:t}){let{t:n}=Y(),r=e,i=t,a=dt(),o=yt(),s=E(()=>a.workspaces.find(e=>e.id===r.wsId)),c=E(()=>{let e=[];for(let t of s.value?.channelIds??[])for(let r of o.agents[t]??[])r.state===`busy`&&e.push({...r,channelId:t,taskLabel:r.currentTaskId?o.taskTitle(t,r.currentTaskId):r.queued?n(`liveAgentBar.k68d2a2006`,{p0:r.queued}):n(`liveAgentBar.k3o5tz9005`)});return e}),l=I(!1),u=e=>e.trim().charAt(0).toUpperCase(),d=e=>{l.value=!1,i(`openAgent`,{channelId:e.channelId,agentId:e.agentId})};return(e,t)=>(b(),k(`div`,Nr,[H(c).length===0?(b(),k(`div`,Pr,[t[3]||=O(`span`,{class:`idle-dot`,"aria-hidden":`true`},null,-1),O(`span`,Fr,y(e.$t(`liveAgentBar.kr4bxgp001`)),1)])):(b(),k(j,{key:1},[O(`button`,{type:`button`,class:`live-main`,title:e.$t(`liveAgentBar.kh66fan003`,{p0:H(c)[0].name}),onClick:t[0]||=e=>d(H(c)[0])},[O(`span`,Lr,[O(`span`,{class:`aw-avatar is-agent live-avatar`,style:p({"--av":H(St)(H(c)[0].agentId)})},y(u(H(c)[0].name)),5),t[4]||=O(`span`,{class:`live-pip`,"aria-hidden":`true`},null,-1)]),O(`span`,Rr,[O(`span`,zr,y(H(c)[0].name),1),O(`span`,Br,y(H(c)[0].taskLabel),1)])],8,Ir),H(c).length>1?(b(),k(`button`,{key:0,type:`button`,class:`live-more`,"aria-haspopup":`true`,"aria-expanded":H(l),title:e.$t(`liveAgentBar.k1a39d92004`,{p0:H(c).length-1}),onClick:t[1]||=e=>l.value=!H(l)},` +`+y(H(c).length-1),9,Vr)):P(``,!0),H(l)&&H(c).length>1?(b(),k(j,{key:1},[O(`div`,{class:`live-backdrop`,onClick:t[2]||=e=>l.value=!1}),O(`div`,Hr,[O(`div`,Ur,y(e.$t(`liveAgentBar.k1sf0ymy002`))+` `+y(H(c).length),1),(b(!0),k(j,null,S(H(c),e=>(b(),k(`button`,{key:e.agentId,type:`button`,class:`live-pop-item`,onClick:t=>d(e)},[O(`span`,{class:`aw-avatar is-agent live-avatar-sm`,style:p({"--av":H(St)(e.agentId)})},y(u(e.name)),5),O(`span`,Gr,[O(`span`,Kr,y(e.name),1),O(`span`,qr,y(e.taskLabel),1)]),t[5]||=O(`span`,{class:`pop-dot`,"aria-hidden":`true`},null,-1)],8,Wr))),128))])],64)):P(``,!0)],64))]))}}),[[`__scopeId`,`data-v-8f6c62e6`]]),{__name:`WorkshopLiveAgentBar`}),Yr=[`aria-label`],Xr=Object.assign(Q(v({__name:`PaneSplitter`,props:{label:{default:``},variant:{default:`divider`}},emits:[`resize`,`reset`],setup(e,{emit:t}){let{t:n}=Y(),r=e,i=E(()=>r.label||n(`paneSplitter.kejk1i9001`)),a=t,o=I(!1),s=0,c=e=>{e.button===0&&(o.value=!0,s=e.clientX,document.body.classList.add(`aw-pane-dragging`),e.currentTarget.setPointerCapture(e.pointerId))},l=e=>{if(!o.value)return;let t=e.clientX-s;s=e.clientX,t!==0&&a(`resize`,t)},u=e=>{if(o.value){o.value=!1,document.body.classList.remove(`aw-pane-dragging`);try{e.currentTarget.releasePointerCapture(e.pointerId)}catch{}}},d=e=>{let t=e.shiftKey?48:12;e.key===`ArrowLeft`?(a(`resize`,-t),e.preventDefault()):e.key===`ArrowRight`&&(a(`resize`,t),e.preventDefault())};return(t,n)=>(b(),k(`div`,{class:x([`pane-splitter`,[e.variant,{dragging:H(o)}]]),role:`separator`,"aria-orientation":`vertical`,"aria-label":H(i),tabindex:`0`,onPointerdown:c,onPointermove:l,onPointerup:u,onPointercancel:u,onDblclick:n[0]||=e=>a(`reset`),onKeydown:d},[...n[1]||=[O(`span`,{class:`grip`},null,-1)]],42,Yr))}}),[[`__scopeId`,`data-v-4f787ef8`]]),{__name:`WorkshopPaneSplitter`}),Zr=I(null);function Qr(){return{quoteText:Zr,quote:e=>{Zr.value=e}}}var $r={key:0,class:`stream-covered`},ei={class:`stream-text prose`},ti=[`innerHTML`],ni={key:0,class:`cursor`},ri={key:2,class:`stream-pending`},ii=Object.assign(Q(v({__name:`ClusterStream`,props:{block:{}},setup(e){let t=e,n=yt(),r=d(`aw:open-agent`,()=>{}),i=E(()=>t.block.events[0]?.channelId??``),a=E(()=>(n.agents[i.value]??[]).map(e=>({agentId:e.agentId,name:e.name}))),o=e=>{let t=e.target.closest(`.md-mention`);if(!t)return;let n=t.dataset.agentId;n&&r({channelId:i.value,agentId:n})},s=E(()=>_t(t.block)),c=E(()=>wt(t.block)),u=I(0),f=null,p=()=>{f!==null&&(cancelAnimationFrame(f),f=null)},m=()=>{let e=s.value.length;if(u.value>=e){f=null;return}let t=e-u.value,n=Math.max(24,Math.min(1024,Math.ceil(t/16)));u.value=Math.min(e,u.value+n),f=requestAnimationFrame(m)},h=()=>{f===null&&(f=requestAnimationFrame(m))},v=()=>typeof document<`u`&&document.hidden;l([s,()=>t.block.settled],([e,t])=>{if(!e){u.value=0;return}if(t||e.length-u.value>4e3||v()){p(),u.value=e.length;return}u.value>e.length&&(u.value=e.length),u.value<e.length&&h()},{immediate:!0});let S=()=>{document.hidden||u.value<s.value.length&&(p(),h())};_(()=>{document.addEventListener(`visibilitychange`,S),t.block.settled||v()?u.value=s.value.length:(u.value=Math.min(u.value,s.value.length),h())}),g(()=>{p(),document.removeEventListener(`visibilitychange`,S)});let C=E(()=>ht(s.value.length,u.value,c.value)),w=E(()=>mt(s.value.slice(0,u.value),a.value));return(t,n)=>e.block.coveredBy?(b(),k(`div`,$r,[n[0]||=O(`span`,{class:`i-tabler-corner-right-up`},null,-1),O(`span`,null,y(t.$t(`clusterStream.kpk9wff001`)),1)])):s.value?(b(),k(`div`,{key:1,class:x([`stream-bubble`,{settled:e.block.settled}]),onClick:o},[O(`div`,ei,[O(`span`,{innerHTML:w.value},null,8,ti),C.value?(b(),k(`span`,ni,`▋`)):P(``,!0)])],2)):c.value?(b(),k(`div`,ri,[...n[1]||=[O(`span`,{class:`pending-dot`},null,-1),O(`span`,{class:`pending-dot`},null,-1),O(`span`,{class:`pending-dot`},null,-1)]])):P(``,!0)}}),[[`__scopeId`,`data-v-d381d8b3`]]),{__name:`WorkshopBlocksClusterStream`}),ai={class:`tool-cluster`},oi={class:`tool-time aw-mono`},si={class:`tool-name`},ci=[`title`],li={key:1,class:`tool-kind`},ui=4,di=Object.assign(Q(v({__name:`ClusterTool`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>{let t=String(e.payload.text??``).match(/^🔧\s*(\S+?)(?:\(([\s\S]*)\))?$/),n=t?.[1]??`tool`,r=t?.[2]??``;return{seq:e.seq,time:Dt(e.at),name:n,args:r,meta:bt[n]??{icon:`i-tabler-tool`,kind:`native`}}})),r=I(!1),i=E(()=>r.value?n.value:n.value.slice(0,ui)),a=E(()=>n.value.length>ui);return(e,t)=>(b(),k(`div`,ai,[(b(!0),k(j,null,S(i.value,e=>(b(),k(`div`,{key:e.seq,class:x([`tool-line`,e.meta.kind])},[O(`time`,oi,y(e.time),1),t[1]||=O(`span`,{class:`tool-node`},null,-1),O(`span`,{class:x([`tool-icon`,e.meta.icon])},null,2),O(`span`,si,y(e.name),1),e.args?(b(),k(`span`,{key:0,class:`tool-args`,title:e.args},y(e.args),9,ci)):P(``,!0),e.meta.kind===`host`?(b(),k(`span`,li,`harness`)):P(``,!0)],2))),128)),a.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>r.value=!r.value},y(r.value?e.$t(`clusterTool.k40p82001`):`展开全部 ${n.value.length} 个调用`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-ac0502fc`]]),{__name:`WorkshopBlocksClusterTool`}),fi={class:`status-cluster`},pi=[`aria-expanded`],mi={class:`st-label`},hi={class:`st-count`},gi={key:0,class:`st-preview`},_i={key:0,class:`st-detail`},vi={class:`st-text`},yi=Object.assign(Q(v({__name:`ClusterStatus`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>({seq:e.seq,text:String(e.payload.text??``)}))),r=E(()=>{let e=n.value[n.value.length-1];if(!e)return`(空)`;let t=(e.text.split(`
|
|
7
|
-
`).find(e=>e.trim().length>0)??``).replace(/\s+/g,` `).trim();return t.length>120?`${t.slice(0,120)}…`:t||`(空)`}),i=I(!1),a=()=>{i.value=!i.value};return(e,t)=>(b(),k(`div`,fi,[O(`button`,{class:`st-toggle`,"aria-expanded":i.value,onClick:a},[O(`span`,{class:x([`chev`,{open:i.value}])},`▸`,2),O(`span`,mi,y(e.$t(`clusterStatus.k1fpy8te001`)),1),O(`span`,hi,y(n.value.length),1),i.value?P(``,!0):(b(),k(`span`,gi,y(r.value),1))],8,pi),i.value?(b(),k(`div`,_i,[(b(!0),k(j,null,S(n.value,e=>(b(),k(`div`,{key:e.seq,class:`st-line`},[t[0]||=O(`span`,{class:`st-mark`},`·`,-1),O(`pre`,vi,y(e.text),1)]))),128))])):P(``,!0)]))}}),[[`__scopeId`,`data-v-0a42e8bb`]]),{__name:`WorkshopBlocksClusterStatus`}),bi={class:`life-cluster`},xi=[`data-state`],Si={key:1,class:`life-row`},Ci={class:`life-state`},wi=[`title`],Ti={class:`life-meta`},Ei={key:1,class:`life-count`},Di={key:2,class:`life-row`},Oi=Object.assign(Q(v({__name:`ClusterLife`,props:{block:{}},setup(e){let t=e,n=yt(),r=E(()=>{let e=t.block.events[t.block.events.length-1];if(!e||e.type!==`agent.status`)return null;let n=e.payload;return{state:n.state,currentTaskId:n.currentTaskId??null,queued:n.queued??0,completed:n.completed??0,transitions:t.block.events.length,channelId:e.channelId}}),i=E(()=>{let e=r.value;if(!e?.currentTaskId)return``;let t=n.taskTitle(e.channelId,e.currentTaskId);return t&&t!==e.currentTaskId?t:e.currentTaskId.slice(0,12)});return(e,t)=>(b(),k(`div`,bi,[r.value?(b(),k(`span`,{key:0,class:`life-dot`,"data-state":r.value.state},null,8,xi)):P(``,!0),r.value?(b(),k(`div`,Si,[O(`span`,Ci,y(r.value.state),1),i.value?(b(),k(`span`,{key:0,class:`life-task`,title:r.value.currentTaskId??``},`「`+y(i.value)+`」`,9,wi)):P(``,!0),O(`span`,Ti,y(e.$t(`clusterLife.k498bf002`))+` `+y(r.value.queued)+` · 完成 `+y(r.value.completed),1),r.value.transitions>1?(b(),k(`span`,Ei,y(r.value.transitions)+` `+y(e.$t(`clusterLife.k3pi5z1003`)),1)):P(``,!0)])):(b(),k(`span`,Di,y(e.$t(`clusterLife.k1xthifv001`)),1))]))}}),[[`__scopeId`,`data-v-effa619b`]]),{__name:`WorkshopBlocksClusterLife`}),ki={class:`chat-meta`},Ai=[`title`],ji=[`data-agent-id`,`title`],Mi={key:2,class:`to-arrow`,"aria-hidden":`true`},Ni=[`data-agent-id`,`title`],Pi={key:4,class:`who-broadcast`},Fi=[`data-tone`],Ii=[`title`],Li=[`title`],Ri={class:`chat-time aw-mono`},zi=[`innerHTML`],Bi=4,Vi=Object.assign(Q(v({__name:`ClusterRoute`,props:{block:{}},setup(e){let{t}=Y(),n=e,r=yt(),i=d(`aw:open-agent`,()=>{}),a=E(()=>n.block.events.map((e,n)=>{let r=e.payload.metadata??{},i=typeof r[`x-aw-from-agent`]==`string`?r[`x-aw-from-agent`]:``,a=typeof r[`x-aw-from-label`]==`string`?r[`x-aw-from-label`]:``,o=typeof r[`x-aw-target-agent`]==`string`?r[`x-aw-target-agent`]:``,s=r[`x-aw-msg-priority`]===`immediate`?`immediate`:`task`,c=typeof r[`x-aw-task-kind`]==`string`?r[`x-aw-task-kind`]:``,l=c===`assign`?{icon:`i-tabler-send`,label:t(`clusterRoute.k1ax44eo005`),tone:`assign`}:c===`cancel`?{icon:`i-tabler-circle-x`,label:t(`clusterRoute.k1bsct42006`),tone:`notice`}:c===`child-completed`?{icon:`i-tabler-circle-check`,label:t(`clusterRoute.k1ax087h007`),tone:`notice`}:s===`immediate`?{icon:`i-tabler-bolt`,label:t(`clusterRoute.k1cxjc4m008`),tone:`immediate`}:{icon:`i-tabler-message`,label:t(`clusterRoute.k1bka5dz009`),tone:`peer`},u=e.payload.parts??[],d=r[`x-aw-in-reply-to`];return{seq:e.seq,i:n,channelId:e.channelId,from:i,fromLabel:a,to:o,kind:l,text:u.map(e=>e.text??``).join(`
|
|
8
|
-
`).trim(),time:Dt(e.at),requireReply:r[`x-aw-require-reply`]===`true`,inReplyTo:typeof d==`string`?d:``}})),o=E(()=>n.block.events[0]?.channelId??``),s=E(()=>(r.agents[o.value]??[]).map(e=>({agentId:e.agentId,name:e.name}))),c=e=>e?r.agentName(o.value,e):``,l=e=>e.trim().charAt(0).toUpperCase(),u=E(()=>a.value.map(e=>mt(e.text,s.value))),f=e=>{let t=e.target.closest(`.md-mention, .who-pill`);if(!t)return;let n=t.dataset.agentId;n&&i({channelId:o.value,agentId:n})},m=I(!1),h=E(()=>m.value?a.value:a.value.slice(0,Bi)),g=E(()=>m.value?u.value:u.value.slice(0,Bi)),_=E(()=>a.value.length>Bi);return(e,t)=>(b(),k(`div`,{class:`route-cluster`,onClick:f},[(b(!0),k(j,null,S(h.value,(n,r)=>(b(),k(`div`,{key:n.seq,class:`chat-row`},[O(`div`,ki,[n.fromLabel&&!n.from?(b(),k(`span`,{key:0,class:`human-chip`,title:e.$t(`clusterRoute.k12448jn010`,{p0:n.fromLabel})},[t[1]||=O(`span`,{class:`i-tabler-user`},null,-1),U(` `+y(n.fromLabel),1)],8,Ai)):P(``,!0),n.from?(b(),k(`button`,{key:1,type:`button`,class:`who-pill from`,"data-agent-id":n.from,title:e.$t(`clusterRoute.khsfl59011`,{p0:c(n.from)})},[O(`span`,{class:`aw-avatar is-agent who-ava`,style:p({"--av":H(St)(n.from)})},y(l(c(n.from))),5),U(` @`+y(c(n.from)),1)],8,ji)):P(``,!0),n.to?(b(),k(`span`,Mi,`→`)):P(``,!0),n.to?(b(),k(`button`,{key:3,type:`button`,class:`who-pill`,"data-agent-id":n.to,title:e.$t(`clusterRoute.khsfl59011`,{p0:c(n.to)})},` @`+y(c(n.to)),9,Ni)):(b(),k(`span`,Pi,y(e.$t(`clusterRoute.kyza1ya002`)),1)),O(`span`,{class:`route-badge`,"data-tone":n.kind.tone},[O(`span`,{class:x(n.kind.icon)},null,2),U(y(n.kind.label),1)],8,Fi),n.requireReply?(b(),k(`span`,{key:5,class:`route-badge receipt`,title:e.$t(`clusterRoute.kfbpe32001`)},[t[2]||=O(`span`,{class:`i-tabler-message-reply`},null,-1),U(y(e.$t(`clusterRoute.k3wn89c003`)),1)],8,Ii)):P(``,!0),n.inReplyTo?(b(),k(`span`,{key:6,class:`route-badge reply-link aw-mono`,title:e.$t(`clusterRoute.k94hqp2012`,{p0:n.inReplyTo})},`↩ `+y(n.inReplyTo.slice(0,8)),9,Li)):P(``,!0),O(`span`,Ri,y(n.time),1)]),n.text?(b(),k(`div`,{key:0,class:`chat-body prose`,innerHTML:g.value[r]},null,8,zi)):P(``,!0)]))),128)),_.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>m.value=!m.value},y(m.value?e.$t(`clusterRoute.k40p82004`):e.$t(`clusterRoute.k13ewgum013`,{p0:a.value.length})),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-173b8491`]]),{__name:`WorkshopBlocksClusterRoute`}),Hi={class:`task-cluster`},Ui={key:0,class:`chain-arrow`},Wi=[`data-state`,`title`],Gi={class:`state-code`},Ki={class:`task-title`},qi={key:0,class:`task-assignee`},Ji=Object.assign(Q(v({__name:`ClusterTask`,props:{block:{}},setup(e){let{t}=Y(),n=e,r=yt(),i=E(()=>n.block.events[0]?.channelId??``),a=E(()=>{let e=[];for(let t of n.block.events){if(t.type!==`task.status`)continue;let n=String(t.payload.state);e[e.length-1]!==n&&e.push(n)}return e}),o=E(()=>{let e=n.block.events.find(e=>e.type===`task.status`||e.type===`task.progress`),t=e?String(e.payload.taskId??``):``;return r.taskTitle(i.value,t)}),s=E(()=>{let e=n.block.events.find(e=>e.type===`task.status`&&e.payload.assigneeId);return e?r.agentName(i.value,e.payload.assigneeId):``}),c=E(()=>{let e=0;for(let t of n.block.events)t.type===`task.progress`&&(e=Math.max(e,t.payload.progress));return e}),l=E(()=>{let e=-1;for(let t of n.block.events)t.type===`task.progress`&&(e=Math.max(e,t.payload.progress));return e>=0}),u={SUBMITTED:{bg:`var(--tone-neutral-bg)`,dot:`var(--tone-neutral-dot)`},ASSIGNED:{bg:`var(--tone-info-bg)`,dot:`var(--tone-info-dot)`},WORKING:{bg:`var(--tone-info-bg)`,dot:`var(--tone-info-dot)`},WAITING:{bg:`var(--tone-warning-bg)`,dot:`var(--tone-warning-dot)`},COMPLETED:{bg:`var(--tone-success-bg)`,dot:`var(--tone-success-dot)`},FAILED:{bg:`var(--tone-danger-bg)`,dot:`var(--tone-danger-dot)`},CANCELED:{bg:`var(--tone-neutral-bg)`,dot:`var(--tone-neutral-dot)`}},d=e=>u[e]??u.SUBMITTED,f={SUBMITTED:t(`clusterTask.k3n8lhn001`),ASSIGNED:t(`clusterTask.k3n8mf0002`),WORKING:t(`clusterTask.k3o5tz9003`),WAITING:t(`clusterTask.k1hpsvap004`),COMPLETED:t(`clusterTask.k10w8u89005`),FAILED:t(`clusterTask.k4u7566006`),CANCELED:t(`clusterTask.k3n5vg5007`)},m=e=>f[e]??e;return(e,t)=>{let n=Vn;return b(),k(`div`,Hi,[(b(!0),k(j,null,S(a.value,(t,n)=>(b(),k(j,{key:t},[n>0?(b(),k(`span`,Ui,`→`)):P(``,!0),O(`span`,{class:`state-chip`,style:p({background:d(t).bg}),"data-state":t,title:e.$t(`clusterTask.kfwdcd4008`,{p0:t})},[O(`span`,{class:`state-dot`,style:p({background:d(t).dot})},null,4),U(y(m(t)),1),O(`span`,Gi,y(t),1)],12,Wi)],64))),128)),O(`span`,Ki,y(o.value),1),s.value?(b(),k(`span`,qi,`→ `+y(s.value),1)):P(``,!0),l.value?(b(),F(n,{key:1,percent:c.value,size:`small`,class:`progress`,"show-info":!0},null,8,[`percent`])):P(``,!0)])}}}),[[`__scopeId`,`data-v-cdaa9d8e`]]),{__name:`WorkshopBlocksClusterTask`}),Yi={class:`artifact-head`},Xi={class:`tag`},Zi={class:`name`},Qi=Object.assign(Q(v({__name:`ArtifactCard`,props:{artifact:{}},setup(e){let t=e,n=E(()=>t.artifact.parts.map(e=>e.text??``).join(`
|
|
9
|
-
`).trim()),i=E(()=>{let e=n.value;if(!e)return!1;try{return JSON.parse(e),!0}catch{return!1}}),a=E(()=>t.artifact.name===`deliverable`||t.artifact.name===`summary`||t.artifact.name===`result`||t.artifact.name===`goal-summary`),o=E(()=>{switch(t.artifact.name){case`deliverable`:return`i-tabler-package`;case`summary`:return`i-tabler-list-check`;case`result`:return`i-tabler-circle-check`;case`output`:return`i-tabler-file-text`;case`input`:return`i-tabler-inbox`;case`goal-summary`:return`i-tabler-flag`;default:return`i-tabler-receipt-2`}}),s=I(!1),c=E(()=>{let e=n.value;return e.length>200&&!s.value?`${e.slice(0,200)}…`:e}),l=I(!1),u=async()=>{try{await navigator.clipboard.writeText(n.value),l.value=!0,setTimeout(()=>{l.value=!1},1500)}catch{}};return(t,n)=>{let d=r;return b(),k(`div`,{class:x([`artifact-card`,{deliverable:H(a)}])},[O(`div`,Yi,[O(`span`,Xi,[O(`span`,{class:x(H(o))},null,2)]),O(`span`,Zi,y(e.artifact.name??`artifact`),1),w(d,{size:`small`,type:`text`,class:`op`,onClick:n[0]||=e=>s.value=!H(s)},{default:R(()=>[U(y(H(s)?t.$t(`artifactCard.k40p82001`):t.$t(`artifactCard.k3yu62003`)),1)]),_:1}),w(d,{size:`small`,type:`text`,class:`op`,onClick:u},{default:R(()=>[U(y(H(l)?t.$t(`artifactCard.k3n6o1m002`):t.$t(`artifactCard.k3y694004`)),1)]),_:1})]),O(`pre`,{class:x([`artifact-body`,{json:H(i)}])},y(H(c)||`(空)`),3)],2)}}}),[[`__scopeId`,`data-v-1699711f`]]),{__name:`WorkshopArtifactCard`}),$i={class:`artifact-cluster`},ea={key:0,class:`dup-note`},ta=Object.assign(Q(v({__name:`ClusterArtifact`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.filter(e=>e.type===`a2a.artifact`).map(e=>e.payload.artifact)),r=E(()=>!t.block.dupStream),i=I(t.block.dupStream);return(t,a)=>{let o=Qi;return b(),k(`div`,$i,[e.block.dupStream?(b(),k(`div`,ea,[a[1]||=O(`span`,{class:`i-tabler-copy`},null,-1),O(`span`,null,y(t.$t(`clusterArtifact.kyh87lw001`)),1),O(`button`,{class:`mini-btn`,onClick:a[0]||=e=>i.value=!i.value},y(i.value?t.$t(`clusterArtifact.k49les002`):`查看`),1)])):P(``,!0),r.value||i.value?(b(!0),k(j,{key:1},S(n.value,(e,t)=>(b(),F(o,{key:t,artifact:e},null,8,[`artifact`]))),128)):P(``,!0)])}}}),[[`__scopeId`,`data-v-8e7bf1b1`]]),{__name:`WorkshopBlocksClusterArtifact`}),na={class:`member-cluster`},ra=[`data-op`],ia={class:`line-text`},aa=8,oa=Object.assign(Q(v({__name:`ClusterMember`,props:{block:{}},setup(e){let t=e,n=yt(),r=E(()=>t.block.events[0]?.channelId??``),i=E(()=>t.block.events.map(e=>{let t=e.payload,i=t.by===`user`?`用户`:`lead ${n.agentName(r.value,t.by.replace(/^lead:/,``))}`,a=`${t.name}(${t.role}/${t.harness})`,o={added:`新增成员 ${a}`,updated:t.enabled===0?`禁用成员 ${a}`:`更新成员 ${a}`,removed:`移除成员 ${a}`};return{seq:e.seq,text:`${i}${o[t.op]}${t.reason?`,理由:${t.reason}`:``}`,op:t.op}})),a=I(!1),o=E(()=>a.value?i.value:i.value.slice(0,aa)),s=E(()=>i.value.length>aa);return(e,t)=>(b(),k(`div`,na,[(b(!0),k(j,null,S(o.value,e=>(b(),k(`div`,{key:e.seq,class:`member-line`,"data-op":e.op},[t[1]||=O(`span`,{class:`i-tabler-users`},null,-1),O(`span`,ia,y(e.text),1)],8,ra))),128)),s.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>a.value=!a.value},y(a.value?e.$t(`clusterMember.k40p82001`):`全部 ${i.value.length} 条`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-0647f285`]]),{__name:`WorkshopBlocksClusterMember`}),sa={class:`memory-cluster`},ca=[`data-scope`],la={class:`mem-title`},ua=8,da=Object.assign(Q(v({__name:`ClusterMemory`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>({seq:e.seq,scope:String(e.payload.scope),title:String(e.payload.title)}))),r=I(!1),i=E(()=>r.value?n.value:n.value.slice(0,ua)),a=E(()=>n.value.length>ua);return(e,t)=>(b(),k(`div`,sa,[(b(!0),k(j,null,S(i.value,e=>(b(),k(`div`,{key:e.seq,class:`memory-line`},[t[1]||=O(`span`,{class:`i-tabler-bookmark`},null,-1),O(`span`,{class:`mem-scope`,"data-scope":e.scope},y(e.scope),9,ca),O(`span`,la,y(e.title),1)]))),128)),a.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>r.value=!r.value},y(r.value?e.$t(`clusterMemory.k40p82001`):`全部 ${n.value.length} 条`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-9ba9f01b`]]),{__name:`WorkshopBlocksClusterMemory`}),fa={class:`error-cluster`},pa={key:0,class:`error-code`},ma={class:`error-text`},ha=3,ga=Object.assign(Q(v({__name:`ClusterError`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>({seq:e.seq,code:String(e.payload.code??``),text:String(e.payload.message??``)}))),r=I(!1),i=E(()=>r.value?n.value:n.value.slice(0,ha)),a=E(()=>n.value.length>ha);return(e,t)=>(b(),k(`div`,fa,[(b(!0),k(j,null,S(i.value,e=>(b(),k(`div`,{key:e.seq,class:`error-line`},[t[1]||=O(`span`,{class:`i-tabler-alert-triangle`},null,-1),e.code?(b(),k(`span`,pa,y(e.code),1)):P(``,!0),O(`span`,ma,y(e.text),1)]))),128)),a.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>r.value=!r.value},y(r.value?e.$t(`clusterError.k40p82001`):`全部 ${n.value.length} 条`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-25c85ac6`]]),{__name:`WorkshopBlocksClusterError`}),_a={class:`other-cluster`},va={class:`other-type`},ya=6,ba=Object.assign(Q(v({__name:`ClusterOther`,props:{block:{}},setup(e){let t=e,n=E(()=>t.block.events.map(e=>({seq:e.seq,type:e.type}))),r=I(!1),i=E(()=>r.value?n.value:n.value.slice(0,ya)),a=E(()=>n.value.length>ya);return(e,t)=>(b(),k(`div`,_a,[(b(!0),k(j,null,S(i.value,e=>(b(),k(`div`,{key:e.seq,class:`other-row`},[t[1]||=O(`span`,{class:`i-tabler-dots`},null,-1),O(`span`,va,y(e.type),1)]))),128)),a.value?(b(),k(`button`,{key:0,class:`more-btn`,onClick:t[0]||=e=>r.value=!r.value},y(r.value?e.$t(`clusterOther.k40p82001`):`全部 ${n.value.length} 条`),1)):P(``,!0)]))}}),[[`__scopeId`,`data-v-5f033e18`]]),{__name:`WorkshopBlocksClusterOther`}),xa=[`data-kind`,`data-tier`,`data-settled`,`data-covered`,`data-seq`,`data-events`,`data-folded`],Sa=[`title`],Ca={key:0,class:`i-tabler-user system-icon`},wa={key:1,class:`i-tabler-cpu system-icon`},Ta=[`title`],Ea={class:`eb-main`},Da={class:`block-head`},Oa={class:`agent-name`},ka={key:0,class:`role-label`},Aa=[`title`],ja={class:`head-right`},Ma={key:0,class:`running-chip`},Na=[`title`],Pa={key:2,class:`merged`},Fa={class:`kind-chip`},Ia={class:`time`},La={key:2,class:`eb-toolbar`},Ra=[`title`],za=[`title`],Ba={key:0,class:`ghost-time`},Va=Object.assign(Q(v({__name:`EventBlock`,props:{block:{},turnStart:{type:Boolean},compact:{type:Boolean},enterStage:{}},setup(e){let t=e,n=yt(),{quote:r}=Qr(),i=E(()=>t.block.events[0]?.channelId??``),a=E(()=>Dt(t.block.firstAt)),o=E(()=>{let e=t.block.agentId;return e?n.agentName(i.value,e):`system`}),s=E(()=>{if(t.block.agentId)return null;let e=t.block.events[0];if(!e||e.type!==`a2a.message`)return null;let n=(e.payload.metadata??{})[`x-aw-from-label`];return typeof n==`string`&&n?n:null}),c=E(()=>{let e=t.block.agentId;return e?(n.agentName(i.value,e)||e).charAt(0).toUpperCase():``}),l=E(()=>t.block.agentId?St(t.block.agentId):void 0),u=E(()=>ft[t.block.kind]),f=d(`aw:open-agent`,()=>{}),h=()=>{t.block.agentId&&f({channelId:i.value,agentId:t.block.agentId})},g=E(()=>{let e=t.block.agentId;if(!e)return``;let r=(n.agents[i.value]??[]).find(t=>t.agentId===e);if(!r)return`agent`;let a=r.role===`lead`?`lead`:`worker`,o=r.harness??``;return o?`${a} · ${o}`:a}),_=E(()=>pt(t.block.events)),v=E(()=>{let e=t.block.agentId;return e?(n.agents[i.value]??[]).find(t=>t.agentId===e)?.state??null:null}),S=E(()=>t.block.kind===`stream`&&!t.block.settled&&v.value===`busy`),C=E(()=>t.block.events[0]?.seq??0),w={stream:ii,tool:di,status:yi,life:Oi,route:Vi,task:Ji,artifact:ta,member:oa,memory:da,error:ga,other:ba},T=E(()=>w[t.block.kind]??ba),D=E(()=>t.block.kind===`stream`?_t(t.block).trim()||null:t.block.kind===`route`&&t.block.events.map(e=>(e.payload.parts??[]).map(e=>e.text??``).join(`
|
|
10
|
-
`).trim()).filter(Boolean).join(`
|
|
11
|
-
`)||null),A=I(!1),M=async()=>{let e=D.value;if(e)try{await navigator.clipboard.writeText(e),A.value=!0,setTimeout(()=>{A.value=!1},1400)}catch{}},N=()=>{let e=D.value;e&&r(e)};return(t,n)=>(b(),k(`section`,{class:x([`event-block`,{"turn-start":e.turnStart,compact:e.compact,enter:e.enterStage?.enter}]),style:p(e.enterStage?.enter?{"--d":`${e.enterStage.delay}ms`}:void 0),"data-kind":e.block.kind,"data-tier":_.value,"data-settled":e.block.settled?`true`:`false`,"data-covered":e.block.coveredBy?`true`:`false`,"data-seq":C.value,"data-events":e.block.events.length,"data-folded":e.block.folded},[O(`button`,{type:`button`,class:x([`agent-avatar`,{"is-agent":!!e.block.agentId,"is-human":!!s.value,clickable:!!e.block.agentId}]),title:s.value??`${o.value}${g.value?` · ${g.value}`:``}`,style:p(l.value?{"--av":l.value}:void 0),onClick:h},[s.value?(b(),k(`span`,Ca)):e.block.agentId?(b(),k(j,{key:2},[U(y(c.value),1)],64)):(b(),k(`span`,wa)),e.block.agentId&&v.value?(b(),k(`span`,{key:3,class:x([`av-status`,v.value]),title:v.value===`busy`?`运行中`:v.value===`stopped`?`已停止`:`空闲`},null,10,Ta)):P(``,!0)],14,Sa),O(`div`,Ea,[ee(O(`header`,Da,[O(`span`,Oa,y(s.value??o.value),1),g.value?(b(),k(`span`,ka,y(g.value),1)):P(``,!0),_.value===`attention`?(b(),k(`span`,{key:1,class:`tier-attention`,title:t.$t(`eventBlock.kc918hn001`)},[n[0]||=O(`span`,{class:`i-tabler-alert-circle`},null,-1),U(y(t.$t(`eventBlock.k3wmcv4004`)),1)],8,Aa)):P(``,!0),O(`span`,ja,[S.value?(b(),k(`span`,Ma,[n[1]||=O(`span`,{class:`running-dot`},null,-1),U(y(t.$t(`eventBlock.k3vp67i005`)),1)])):P(``,!0),e.block.folded>0?(b(),k(`span`,{key:1,class:`folded`,title:t.$t(`eventBlock.kcugdph002`)},y(t.$t(`eventBlock.k3xk4t006`))+` `+y(e.block.folded),9,Na)):P(``,!0),e.block.events.length>1?(b(),k(`span`,Pa,`×`+y(e.block.events.length),1)):P(``,!0),O(`span`,Fa,y(u.value.label),1),O(`span`,Ia,y(a.value),1)]),D.value?(b(),k(`span`,La,[O(`button`,{type:`button`,class:`eb-tool`,title:H(A)?`已复制`:`复制全文`,onClick:M},[O(`span`,{class:x(H(A)?`i-tabler-check`:`i-tabler-copy`)},null,2)],8,Ra),O(`button`,{type:`button`,class:`eb-tool`,title:t.$t(`eventBlock.kknq700003`),onClick:N},[...n[2]||=[O(`span`,{class:`i-tabler-quote`},null,-1)]],8,za)])):P(``,!0)],512),[[ne,!e.compact]]),e.compact?(b(),k(`span`,Ba,y(a.value.slice(0,5)),1)):P(``,!0),(b(),F(m(T.value),{block:e.block,class:`eb-body`},null,8,[`block`]))])],14,xa))}}),[[`__scopeId`,`data-v-e836bc26`]]),{__name:`WorkshopEventBlock`}),Ha=160,Ua=Object.freeze([]),Wa=8,Ga=new Set([`agent.message`,`a2a.artifact`,`error`,`task.status`,`a2a.message`,`agent.member`,`agent.status`]);function Ka(e,t={}){let n=xt(),r=new gt,i=A(r.blocks),a=E(()=>W(e)??``),o=E(()=>n.filters[a.value]??`all`),s=E(()=>n.focusAgents[a.value]??null),c=E(()=>W(t.resetKey)),u=E(()=>t.predicate??null),d=E(()=>W(t.agentId)??``),f=E(()=>t.raw?a.value?t.agentId?n.agentEvents(a.value,d.value):n.ring(a.value).items:Ua:a.value?n.timeline(a.value):Ua),p=E(()=>(c.value,t.agentId?f.value:u.value?f.value.filter(u.value):f.value)),m=null,h=!1,g=e=>{if(e.length===0)return e;let t=e.length-1;return e.filter((e,n)=>{if(e.kind!==`stream`)return!0;let r=_t(e).trim();return!(!r&&!e.overrideText||n===t&&!e.settled&&r.length<Wa)})},_=()=>{m!=null&&(clearTimeout(m),m=null),i.value=g(r.blocks)},v=e=>{if(e||h){h=!1,_();return}m??=setTimeout(_,Ha)};return B(()=>{m!=null&&clearTimeout(m)}),t.raw?l([a,u,c,d],()=>{r.reset(),h=!0},{immediate:!0}):l([a,o,s,u,c],()=>{r.reset(),h=!0},{immediate:!0}),l(p,e=>{let t=e[e.length-1],n=t!=null&&Ga.has(t.type);r.sync(e),v(n)},{immediate:!0}),{blocks:i,totalEvents:E(()=>p.value.length),clusterer:r}}var qa=!1;function Ja(){qa||typeof document>`u`||(qa=!0,document.addEventListener(`click`,e=>{let t=e.target?.closest?.(`.code-copy`);if(!(t instanceof HTMLElement))return;let n=t.closest(`.code-block`)?.querySelector(`pre code`)?.textContent??``,r=()=>{let e=t.textContent;t.textContent=`已复制`,setTimeout(()=>{t.textContent=e??`复制`},1400)};navigator.clipboard?.writeText?navigator.clipboard.writeText(n).then(r,r):r()}))}var Ya={class:`transcript`},Xa={class:`filter-bar`},Za={class:`count`},Qa=[`data-state`,`title`],$a={key:0,class:`sync-pulse`},eo={key:1,class:`i-tabler-point-filled sync-dot`},to=[`title`],no=[`disabled`],ro={key:1,class:`earlier-done`},io={key:2,class:`skel-stack`},ao={key:3,class:`empty`},oo={key:0,class:`i-tabler-refresh empty-icon`},so={key:1,class:`i-tabler-message-dots empty-icon`},co={class:`empty-title`},lo={class:`empty-hint`},uo={key:4,class:`empty filtered`},fo={class:`empty-title`},po={class:`empty-hint`},mo={key:0,class:`date-divider`},ho={class:`date-divider-label`},go=Object.assign(Q(v({__name:`TranscriptTimeline`,props:{channelId:{}},setup(e){let{t}=Y(),n=e,r=xt(),{conn:i}=Ct();Ja();let a=I(null),o=I(!0),s=E(()=>i.state===`connecting`&&r.ring(n.channelId).items.length===0),c=E({get:()=>r.filters[n.channelId]??`all`,set:e=>r.setFilter(n.channelId,e)}),{blocks:u,totalEvents:d}=Ka(()=>n.channelId),f=I(!1),m=I(!1),h=E(()=>r.ring(n.channelId).items.length),v=E(()=>!m.value&&h.value>0),x=async()=>{if(f.value||m.value)return;f.value=!0;let e=a.value,t=e?{top:e.scrollTop,height:e.scrollHeight}:null;try{await r.loadEarlier(n.channelId)||(m.value=!0),e&&t&&(await M(),e.scrollTop=e.scrollHeight-t.height+t.top)}catch{}finally{f.value=!1}},C=()=>{let e=a.value;e&&(o.value=e.scrollHeight-e.scrollTop-e.clientHeight<120)},D=I(!1),A=(e,t)=>new Promise(n=>{if(window.matchMedia(`(prefers-reduced-motion: reduce)`).matches){e.scrollTop=e.scrollHeight,n();return}let r=e.scrollTop,i=e.scrollHeight-e.clientHeight-r,a=performance.now(),o=s=>{let c=Math.min(1,(s-a)/t),l=1-(1-c)**3;e.scrollTop=r+i*l,c<1?requestAnimationFrame(o):n()};requestAnimationFrame(o)}),N=async()=>{o.value=!0;let e=a.value;if(e){D.value=!0;try{await A(e,800)}finally{D.value=!1}}},ee=I(new Map),F=0,L=0,R=Date.now();l(u,(e,t)=>{let n=new Set((t??[]).map(e=>e.id)),r=e.filter(e=>!n.has(e.id)),i=new Map,a=r.length===0||r.length>Math.max(8,Math.ceil(e.length*.4))||Date.now()-R<1500;if(!a){let e=Date.now();e-F>600&&(F=e,L=0)}for(let t of e){let e=!n.has(t.id)&&!a?Math.min(L++,7)*60:-1;i.set(t.id,{enter:e>=0,delay:Math.max(0,e)})}ee.value=i},{immediate:!0});let z=async()=>{if(!o.value)return;await M();let e=a.value;e&&(e.scrollTop=e.scrollHeight)};l(()=>u.value.length,()=>{z()}),l(()=>r.lastSeq(n.channelId),()=>{z()});let B=I(null),W=null;_(()=>{let e=a.value,t=B.value;if(!e||!t||typeof ResizeObserver>`u`)return;let n=new ResizeObserver(()=>{o.value&&(e.scrollTop=e.scrollHeight)});n.observe(t),W=n}),g(()=>{W?.disconnect(),W=null});let G=E(()=>i.pendingReplay||i.state===`connecting`),K=E(()=>{if(!i.lastDataAt)return``;let e=Math.max(0,Math.round((Date.now()-i.lastDataAt)/1e3));return e<5?t(`transcriptTimeline.k3wwxl026`):t(`transcriptTimeline.k2gyl6l027`,{p0:e})}),te=[{value:`all`,label:t(`transcriptTimeline.k3x4t1012`)},{value:`key`,label:t(`transcriptTimeline.k3x5xi013`)},{value:`messages`,label:t(`transcriptTimeline.k41ykc014`)},{value:`tasks`,label:t(`transcriptTimeline.k3wcox015`)},{value:`team`,label:t(`transcriptTimeline.k3y5ja016`)},{value:`errors`,label:t(`transcriptTimeline.k49d2l017`)}],q=e=>{let t=new Date(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()},J=e=>{let n=new Date(e),r=new Date,i=new Date;i.setDate(r.getDate()-1);let a=(e,t)=>e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate();if(a(n,r))return t(`transcriptTimeline.k3wcqg018`);if(a(n,i))return t(`transcriptTimeline.k40l1y019`);let o=n.getFullYear()===r.getFullYear()?``:t(`transcriptTimeline.k2hda35028`,{p0:n.getFullYear()});return t(`transcriptTimeline.kbs29zx029`,{p0:o,p1:n.getMonth()+1,p2:n.getDate()})},ne=E(()=>{let e=[],t=null;for(let n of u.value){let r=q(n.firstAt);e.push({divider:t===null||r!==t?J(n.firstAt):null}),t=r}return e});return(e,t)=>{let n=Fe,r=Va;return b(),k(`div`,Ya,[O(`div`,Xa,[w(n,{value:H(c),"onUpdate:value":t[0]||=e=>T(c)?c.value=e:null,size:`small`,options:te},null,8,[`value`]),O(`span`,Za,y(H(d))+` `+y(e.$t(`transcriptTimeline.k1atjpx1005`))+` `+y(H(u).length)+` `+y(e.$t(`transcriptTimeline.k4a9o007`)),1),O(`span`,{class:`sync-chip`,"data-state":H(G)?`syncing`:H(i).state,title:H(G)?`连接中断,重连后将自动对齐缺失事件`:e.$t(`transcriptTimeline.kglov3b025`,{p0:H(K)||`无`})},[H(G)?(b(),k(`span`,$a)):H(i).state===`open`?(b(),k(`span`,eo)):P(``,!0),U(` `+y(H(G)?e.$t(`transcriptTimeline.k3lmtk3008`):H(i).state===`open`?H(K)||e.$t(`transcriptTimeline.k3y2p8020`):e.$t(`transcriptTimeline.k44c2n024`)),1)],8,Qa)]),O(`div`,{ref_key:`scroller`,ref:a,class:`scroller`,onScroll:C},[!H(o)&&!H(D)?(b(),k(`button`,{key:0,class:`jump-latest`,title:e.$t(`transcriptTimeline.kqu93z8001`),onClick:N},[t[1]||=O(`span`,{class:`i-tabler-arrow-down`},null,-1),U(` `+y(e.$t(`transcriptTimeline.k40t11002`)),1)],8,to)):P(``,!0),O(`div`,{ref_key:`columnEl`,ref:B,class:`column`},[H(v)?(b(),k(`button`,{key:0,class:`earlier-btn`,disabled:H(f),onClick:x},y(H(f)?e.$t(`transcriptTimeline.k1br0ij9009`):e.$t(`transcriptTimeline.kywgd38021`)),9,no)):P(``,!0),H(m)&&H(h)>0?(b(),k(`div`,ro,y(e.$t(`transcriptTimeline.k1kbaden003`)),1)):P(``,!0),H(s)?(b(),k(`div`,io,[(b(),k(j,null,S(3,e=>O(`div`,{key:e,class:`skel-row`,style:p({"--d":`${(e-1)*.12}s`})},[...t[2]||=[V(`<span class="aw-skel skel-ava" data-v-2b1e0a0e></span><div class="skel-lines" data-v-2b1e0a0e><span class="aw-skel skel-line name" data-v-2b1e0a0e></span><span class="aw-skel skel-line w70" data-v-2b1e0a0e></span><span class="aw-skel skel-line w45" data-v-2b1e0a0e></span></div>`,2)]],4)),64))])):H(u).length===0&&H(d)===0?(b(),k(`div`,ao,[H(G)||H(i).state!==`open`?(b(),k(`span`,oo)):(b(),k(`span`,so)),O(`p`,co,y(H(G)||H(i).state!==`open`?e.$t(`transcriptTimeline.klnne6o010`):e.$t(`transcriptTimeline.k126izdm022`)),1),O(`p`,lo,y(H(G)||H(i).state!==`open`?e.$t(`transcriptTimeline.k1iuqpxj011`):e.$t(`transcriptTimeline.kuyjpmi023`)),1)])):H(u).length===0?(b(),k(`div`,uo,[t[3]||=O(`span`,{class:`i-tabler-filter-off empty-icon`},null,-1),O(`p`,fo,y(e.$t(`transcriptTimeline.ktuo1zg004`)),1),O(`p`,po,` 「`+y(te.find(e=>e.value===H(c))?.label??H(c))+`」`+y(e.$t(`transcriptTimeline.kapxgq4006`)),1)])):P(``,!0),(b(!0),k(j,null,S(H(u),(e,t)=>(b(),k(j,{key:e.id},[H(ne)[t]?.divider?(b(),k(`div`,mo,[O(`span`,ho,y(H(ne)[t].divider),1)])):P(``,!0),w(r,{block:e,"turn-start":t>0&&H(u)[t-1].agentId!==e.agentId,compact:t>0&&H(u)[t-1].agentId===e.agentId,"enter-stage":H(ee).get(e.id)},null,8,[`block`,`turn-start`,`compact`,`enter-stage`])],64))),128))],512)],544)])}}}),[[`__scopeId`,`data-v-2b1e0a0e`]]),{__name:`WorkshopTranscriptTimeline`}),_o={key:0,class:`lane-empty`},vo={key:1,class:`lane-empty`},yo=[`disabled`],bo=Object.assign(Q(v({__name:`LaneBlocks`,props:{channelId:{},agentId:{}},setup(e){let t=e,n=xt(),{blocks:r}=Ka(()=>t.channelId,{agentId:()=>t.agentId,predicate:e=>e.agentId===t.agentId,resetKey:()=>t.agentId,raw:!0}),i=I(!0);_(()=>{n.loadLaneHistory(t.channelId,t.agentId).finally(()=>{i.value=!1})});let a=I(!1),o=I(!1),s=E(()=>r.value.length>0),c=E(()=>!o.value&&s.value),l=async()=>{if(!(a.value||o.value)){a.value=!0;try{await n.loadLaneEarlier(t.channelId,t.agentId)||(o.value=!0)}catch{}finally{a.value=!1}}};return(e,t)=>{let n=Va;return H(r).length===0&&H(i)?(b(),k(`div`,_o,[t[0]||=O(`span`,{class:`i-tabler-refresh lane-empty-icon`},null,-1),U(` `+y(e.$t(`laneBlocks.k1otw1r3001`)),1)])):H(r).length===0?(b(),k(`div`,vo,y(e.$t(`laneBlocks.k1el0s5k002`)),1)):(b(),k(j,{key:2},[H(c)?(b(),k(`button`,{key:0,type:`button`,class:`lane-earlier`,disabled:H(a),onClick:l},y(H(a)?e.$t(`laneBlocks.k1br0ij9003`):e.$t(`laneBlocks.k1br5dtr004`)),9,yo)):P(``,!0),(b(!0),k(j,null,S(H(r),e=>(b(),F(n,{key:e.id,block:e},null,8,[`block`]))),128))],64))}}}),[[`__scopeId`,`data-v-e020dd8e`]]),{__name:`WorkshopLanesLaneBlocks`}),xo={class:`lanes-wrap`},So={class:`toolbar`},Co={class:`team-summary`},wo={class:`ts-label`},To={class:`ts-count`},Eo={class:`ts-unit`},Do={class:`ts-detail`},Oo={class:`lanes`},ko={key:0,class:`empty`},Ao={class:`empty-title`},jo={class:`empty-title`},Mo={class:`empty-hint`},No={class:`lane-head`},Po={class:`head-top`},Fo={class:`lane-ava`},Io=[`title`],Lo=[`title`],Ro=[`title`],zo={class:`head-sub`},Bo={class:`lane-meta`},Vo={key:0,class:`lane-progress`},Ho={class:`lane-actions`},Uo={class:`term-label`},Wo={class:`lane-body`},Go={class:`mode-hint`},Ko={class:`mode-hint`},qo={class:`ws-hint`},Jo=320,Yo=Object.assign(Q(v({__name:`AgentLanesView`,props:{channelId:{}},setup(e){let{t}=Y(),i=e,a=yt(),o=Tt(),c=E(()=>a.agents[i.channelId]??[]),l=kt(`aw.harness.laneW`,{}),u=e=>l.value[e]??Jo,d=(e,t)=>{l.value={...l.value,[e]:Math.min(720,Math.max(240,u(e)+t))}},f=e=>{let t={...l.value};Reflect.deleteProperty(t,e),l.value=t},m=e=>e.trim().charAt(0).toUpperCase()||`?`,h=e=>St(e),v={processing:`var(--tone-live-dot)`,warning:`var(--tone-warning-dot)`,success:`var(--tone-success-dot)`},C=I(!1),A=I(!1),M=I(`create`),N=D({name:``,harness:`omp`,role:`worker`,systemPrompt:``}),ee=I([]),L=I([]),z=I(``),B=I(``),V=async()=>{try{let[e,t]=await Promise.all([o.listTemplates(),o.listTeams()]);ee.value=(e.data??[]).map(e=>({id:e.id,name:e.name,harness:e.harness,enabled:e.enabled})),L.value=(t.data??[]).map(e=>({id:e.id,name:e.name,memberCount:e.members.length,hasLead:e.members.some(e=>e.role===`lead`)}))}catch{}},W=I(!1),G=I(!1),K=D({agentId:``,name:``,role:`worker`,harness:``,systemPrompt:``}),te=e=>{K.agentId=e.agentId,K.name=e.name,K.role=e.role===`lead`?`lead`:`worker`,K.harness=e.harness,K.systemPrompt=typeof e.config?.systemPromptPrefix==`string`?e.config.systemPromptPrefix:``,W.value=!0},q=async()=>{let e=K.name.trim();if(!e){n.warning(t(`agentLanesView.ky6jqt4032`));return}G.value=!0;try{await o.updateChannelAgent(i.channelId,K.agentId,{name:e,config:{...a.agents[i.channelId]?.find(e=>e.agentId===K.agentId)?.config??{},systemPromptPrefix:K.systemPrompt.trim()},reason:t(`agentLanesView.kfvflle033`)}),n.success(t(`agentLanesView.k21xjz2044`,{p0:e})),W.value=!1}catch(e){n.error(t(`agentLanesView.k3jmrw1045`,{p0:$(e)}))}finally{G.value=!1}},J=()=>{N.name=``,N.harness=`omp`,N.role=`worker`,N.systemPrompt=``,M.value=`create`,z.value=``,B.value=``,C.value=!0,V()},ne=async()=>{if(M.value===`create`){let e=N.name.trim();if(!e){n.warning(t(`agentLanesView.ky6jqt4032`));return}A.value=!0;try{await o.addChannelAgent(i.channelId,{name:e,harness:N.harness,role:N.role,config:N.systemPrompt.trim()?{systemPromptPrefix:N.systemPrompt.trim()}:void 0}),n.success(t(`agentLanesView.k1g5ykr3046`,{p0:e})),C.value=!1}catch(e){n.error(t(`agentLanesView.k1j97j74047`,{p0:$(e)}))}finally{A.value=!1}return}if(M.value===`template`){if(!z.value){n.warning(t(`agentLanesView.k13xo8sz034`));return}A.value=!0;try{let e=ee.value.find(e=>e.id===z.value);await o.addChannelAgent(i.channelId,{agentId:z.value,role:N.role,config:N.systemPrompt.trim()?{systemPromptPrefix:N.systemPrompt.trim()}:void 0}),n.success(t(`agentLanesView.kk3uwzo048`,{p0:N.role,p1:e?.name??``})),C.value=!1}catch(e){let t=$(e);n.error(`模板克隆失败${t.includes(`LEAD_EXISTS`)?`(已有 lead,不能再添加 lead)`:`: ${t}`}`)}finally{A.value=!1}return}if(!B.value){n.warning(t(`agentLanesView.k1tjd5ab035`));return}A.value=!0;try{let e=L.value.find(e=>e.id===B.value);await o.deployTeam(B.value,i.channelId),n.success(t(`agentLanesView.k1gslqf9050`,{p0:e?.name??``,p1:e?.memberCount??0})),C.value=!1}catch(e){let t=$(e);n.error(`编组部署失败${t.includes(`LEAD_EXISTS`)?`(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)`:`: ${t}`}`)}finally{A.value=!1}},re=I(null),ie=async(e,r)=>{re.value=e;try{await o.removeChannelAgent(i.channelId,e),n.success(t(`agentLanesView.k1n3o03a052`,{p0:r}))}catch(e){n.error(t(`agentLanesView.k13dsp10053`,{p0:$(e)}))}finally{re.value=null}},ae=I(null),oe=async(e,r)=>{ae.value=e;try{await o.stopChannelAgent(i.channelId,e),n.success(t(`agentLanesView.kcpbv47054`,{p0:r}))}catch(e){n.error(t(`agentLanesView.k139ec5j055`,{p0:$(e)}))}finally{ae.value=null}},ce=I([]),X=E(()=>{let e=new Map;for(let t of ce.value)!t.alive||!t.agentId||e.set(t.agentId,t);return e}),le=e=>e?e.streaming?{text:`streaming`,color:`processing`}:e.running?{text:`turn`,color:`warning`}:{text:`idle`,color:`success`}:null,ue=null,de=async()=>{try{let e=await o.listChannelTerminals(i.channelId);ce.value=e.data??[]}catch{}},fe=I(!1),pe=I(null),me=I(``),he=e=>{pe.value=e.agentId,me.value=`${e.name} · ${e.role}`,fe.value=!0};return _(()=>{de(),ue=se(()=>void de(),5e3)}),g(()=>{ue&&clearInterval(ue)}),(t,n)=>{let i=r,o=Qe,l=Xr,g=Ke,_=We,E=Ue,D=Pe,I=Ge,V=He,Y=Ne,se=Re,ce=s,ue=qe,de=tt;return b(),k(`div`,xo,[O(`div`,So,[O(`div`,Co,[O(`span`,wo,y(t.$t(`agentLanesView.k3y5ja016`)),1),O(`span`,To,y(H(c).length),1),O(`span`,Eo,y(t.$t(`agentLanesView.k3ll6sa017`)),1),O(`span`,Do,`lead `+y(H(c).filter(e=>e.role===`lead`).length)+` · worker `+y(H(c).filter(e=>e.role===`worker`).length),1)]),w(i,{size:`small`,type:`primary`,ghost:``,onClick:J},{default:R(()=>[n[14]||=O(`span`,{class:`i-tabler-user-plus`},null,-1),O(`span`,null,y(t.$t(`agentLanesView.k1fmutgo018`)),1)]),_:1})]),O(`div`,Oo,[H(c).length===0?(b(),k(`div`,ko,[H(a).channels[e.channelId]?(b(),k(j,{key:1},[n[16]||=O(`span`,{class:`i-tabler-users-group empty-icon`},null,-1),O(`p`,jo,y(t.$t(`agentLanesView.k122h4pc020`)),1),O(`p`,Mo,y(t.$t(`agentLanesView.k7cr2h8021`)),1)],64)):(b(),k(j,{key:0},[n[15]||=O(`span`,{class:`i-tabler-refresh empty-icon`},null,-1),O(`p`,Ao,y(t.$t(`agentLanesView.k1woev5v019`)),1)],64))])):P(``,!0),(b(!0),k(j,null,S(H(c),r=>(b(),k(j,{key:r.agentId},[O(`div`,{class:`lane`,style:p({flexBasis:`${u(r.agentId)}px`})},[O(`div`,No,[O(`div`,Po,[O(`span`,Fo,[O(`span`,{style:p({"--av":h(r.agentId)})},y(m(r.name)),5),O(`span`,{class:x([`lane-state`,r.state])},null,2)]),O(`span`,{class:`lane-name`,title:r.name},y(r.name),9,Io),r.config?.systemPromptPrefix?(b(),k(`span`,{key:0,class:`lane-chip`,title:t.$t(`agentLanesView.k107s4am001`)},y(t.$t(`agentLanesView.k3xycu022`)),9,Lo)):P(``,!0),O(`span`,{class:x([`lane-role`,r.role])},y(r.role),3),le(H(X).get(r.agentId))?(b(),k(`span`,{key:1,class:`term-badge`,title:t.$t(`agentLanesView.k1wn2vmt036`,{p0:H(X).get(r.agentId)?.pid})},[O(`span`,{class:`term-dot`,style:p({background:v[le(H(X).get(r.agentId)).color]??`var(--tone-neutral-dot)`})},null,4),U(` `+y(le(H(X).get(r.agentId)).text),1)],8,Ro)):P(``,!0)]),O(`div`,zo,[O(`span`,Bo,[r.state===`busy`&&r.currentTaskTitle?(b(),k(j,{key:0},[U(y(r.currentTaskTitle)+` `,1),r.currentTaskProgress==null?P(``,!0):(b(),k(`span`,Vo,y(r.currentTaskProgress)+`%`,1))],64)):(b(),k(j,{key:1},[U(y(r.state)+` · Q`+y(r.queued??0),1)],64))]),O(`div`,Ho,[r.harness===`omp`?(b(),F(i,{key:0,size:`small`,type:`primary`,ghost:``,class:`lane-term`,title:t.$t(`agentLanesView.k1884q17002`),onClick:e=>he(r)},{default:R(()=>[n[17]||=O(`span`,{class:`i-tabler-terminal-2`},null,-1),O(`span`,Uo,y(t.$t(`agentLanesView.k4588s023`)),1)]),_:1},8,[`title`,`onClick`])):P(``,!0),w(i,{size:`small`,type:`text`,class:`lane-edit`,title:t.$t(`agentLanesView.k1pgd3tf003`),onClick:e=>te(r)},{default:R(()=>[...n[18]||=[O(`span`,{class:`i-tabler-edit`},null,-1)]]),_:1},8,[`title`,`onClick`]),n[21]||=O(`span`,{class:`actions-divider`},null,-1),w(o,{title:t.$t(`agentLanesView.k1l029kf037`,{p0:r.name}),"ok-text":`停止`,"cancel-text":`取消`,onConfirm:e=>oe(r.agentId,r.name)},{default:R(()=>[w(i,{size:`small`,type:`text`,class:`lane-stop`,loading:H(ae)===r.agentId,title:`HITL 停止该 Agent 运行时`},{default:R(()=>[...n[19]||=[O(`span`,{class:`i-tabler-player-stop`},null,-1)]]),_:1},8,[`loading`])]),_:2},1032,[`title`,`onConfirm`]),w(o,{title:t.$t(`agentLanesView.kt3n27m038`,{p0:r.name}),"ok-text":`移除`,"cancel-text":`取消`,onConfirm:e=>ie(r.agentId,r.name)},{default:R(()=>[w(i,{size:`small`,type:`text`,danger:``,class:`lane-remove`,loading:H(re)===r.agentId},{default:R(()=>[...n[20]||=[O(`span`,{class:`i-tabler-x`},null,-1)]]),_:1},8,[`loading`])]),_:2},1032,[`title`,`onConfirm`])])])]),O(`div`,Wo,[w(bo,{"channel-id":e.channelId,"agent-id":r.agentId},null,8,[`channel-id`,`agent-id`])])],4),w(l,{label:t.$t(`agentLanesView.k7xt1y6039`,{p0:r.name}),onResize:e=>d(r.agentId,e),onReset:e=>f(r.agentId)},null,8,[`label`,`onResize`,`onReset`])],64))),128))]),w(ce,{open:H(C),"onUpdate:open":n[9]||=e=>T(C)?C.value=e:null,title:t.$t(`agentLanesView.k17kcn55004`),"confirm-loading":H(A),"ok-text":`添加`,"cancel-text":`取消`,onOk:ne},{default:R(()=>[w(_,{value:H(M),"onUpdate:value":n[0]||=e=>T(M)?M.value=e:null,class:`mode-switch`},{default:R(()=>[w(g,{value:`create`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1b7cwvy024`)),1)]),_:1}),w(g,{value:`template`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1ndey1w025`)),1)]),_:1}),w(g,{value:`team`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1l5qyux026`)),1)]),_:1})]),_:1},8,[`value`]),H(M)===`create`?(b(),F(Y,{key:0,layout:`vertical`,class:`member-form`},{default:R(()=>[w(D,{label:t.$t(`agentLanesView.k3nufdm005`)},{default:R(()=>[w(E,{value:H(N).name,"onUpdate:value":n[1]||=e=>H(N).name=e,placeholder:`如 db-migrator / test-writer`,onPressEnter:ne},null,8,[`value`])]),_:1},8,[`label`]),w(D,{label:`harness`},{default:R(()=>[w(_,{value:H(N).harness,"onUpdate:value":n[2]||=e=>H(N).harness=e},{default:R(()=>[w(I,{value:`omp`},{default:R(()=>[...n[22]||=[U(` omp(完整 LLM agent) `,-1)]]),_:1}),w(I,{value:`mock`},{default:R(()=>[U(y(t.$t(`agentLanesView.kqg6783027`)),1)]),_:1}),w(I,{value:`claude`},{default:R(()=>[...n[23]||=[U(` claude `,-1)]]),_:1})]),_:1},8,[`value`])]),_:1}),w(D,{label:t.$t(`agentLanesView.k479op006`)},{default:R(()=>[w(_,{value:H(N).role,"onUpdate:value":n[3]||=e=>H(N).role=e},{default:R(()=>[w(I,{value:`worker`},{default:R(()=>[...n[24]||=[U(` worker `,-1)]]),_:1}),w(I,{value:`lead`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1weovo028`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),w(D,{label:t.$t(`agentLanesView.kaogfp007`)},{default:R(()=>[w(V,{value:H(N).systemPrompt,"onUpdate:value":n[4]||=e=>H(N).systemPrompt=e,rows:3,placeholder:t.$t(`agentLanesView.kbqn6w5008`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`])]),_:1})):H(M)===`template`?(b(),F(Y,{key:1,layout:`vertical`,class:`member-form`},{default:R(()=>[w(D,{label:`选择 Agent 模板(克隆 name/harness/config 为独立实例)`},{default:R(()=>[w(se,{value:H(z),"onUpdate:value":n[5]||=e=>T(z)?z.value=e:null,placeholder:t.$t(`agentLanesView.kung925009`),options:H(ee).map(e=>({value:e.id,label:`${e.name}(${e.harness})${e.enabled===0?` · 已停用`:``}`}))},null,8,[`value`,`placeholder`,`options`])]),_:1}),w(D,{label:t.$t(`agentLanesView.k1bl78fu010`)},{default:R(()=>[w(_,{value:H(N).role,"onUpdate:value":n[6]||=e=>H(N).role=e},{default:R(()=>[w(I,{value:`worker`},{default:R(()=>[...n[25]||=[U(` worker `,-1)]]),_:1}),w(I,{value:`lead`},{default:R(()=>[U(y(t.$t(`agentLanesView.k1weovo028`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),w(D,{label:t.$t(`agentLanesView.k1vhvbz7011`)},{default:R(()=>[w(V,{value:H(N).systemPrompt,"onUpdate:value":n[7]||=e=>H(N).systemPrompt=e,rows:3,placeholder:t.$t(`agentLanesView.k7ft6ig012`)},null,8,[`value`,`placeholder`])]),_:1},8,[`label`]),O(`div`,Go,y(t.$t(`agentLanesView.knybb6r029`)),1)]),_:1})):(b(),F(Y,{key:2,layout:`vertical`,class:`member-form`},{default:R(()=>[w(D,{label:t.$t(`agentLanesView.k29om9b013`)},{default:R(()=>[w(se,{value:H(B),"onUpdate:value":n[8]||=e=>T(B)?B.value=e:null,placeholder:t.$t(`agentLanesView.kur1otz014`),options:H(L).map(e=>({value:e.id,label:t.$t(`agentLanesView.k1qcmxyu040`,{p0:e.name,p1:e.memberCount,p2:e.hasLead?`,含 lead`:``})}))},null,8,[`value`,`placeholder`,`options`])]),_:1},8,[`label`]),O(`div`,Ko,y(t.$t(`agentLanesView.k1qqnq5030`)),1)]),_:1}))]),_:1},8,[`open`,`title`,`confirm-loading`]),w(ce,{open:H(W),"onUpdate:open":n[12]||=e=>T(W)?W.value=e:null,title:t.$t(`agentLanesView.k19j5rho041`,{p0:H(K).name||``}),"confirm-loading":H(G),"ok-text":`保存`,"cancel-text":`取消`,onOk:q},{default:R(()=>[w(Y,{layout:`vertical`,class:`member-form`},{default:R(()=>[w(D,{label:t.$t(`agentLanesView.k3nufdm005`)},{default:R(()=>[w(E,{value:H(K).name,"onUpdate:value":n[10]||=e=>H(K).name=e},null,8,[`value`])]),_:1},8,[`label`]),w(D,{label:`角色 / harness`},{default:R(()=>[w(de,null,{default:R(()=>[w(ue,{color:H(K).role===`lead`?`purple`:`blue`},{default:R(()=>[U(y(H(K).role),1)]),_:1},8,[`color`]),w(ue,null,{default:R(()=>[U(y(H(K).harness),1)]),_:1})]),_:1})]),_:1}),w(D,{label:`场景系统提示词(systemPromptPrefix)`},{extra:R(()=>[O(`span`,qo,y(t.$t(`agentLanesView.k1rw1rd2031`)),1)]),default:R(()=>[w(V,{value:H(K).systemPrompt,"onUpdate:value":n[11]||=e=>H(K).systemPrompt=e,rows:6,placeholder:t.$t(`agentLanesView.k10ti81i015`)},null,8,[`value`,`placeholder`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),w(Ot,{open:H(fe),"onUpdate:open":n[13]||=e=>T(fe)?fe.value=e:null,"agent-id":H(pe),"channel-id":e.channelId,pid:null,subtitle:H(me)},null,8,[`open`,`agent-id`,`channel-id`,`subtitle`])])}}}),[[`__scopeId`,`data-v-f68d6ffb`]]),{__name:`WorkshopAgentLanesView`}),Xo={class:`board-shell`},Zo={class:`toolbar`},Qo={class:`aw-seg`},$o={class:`count`},es={key:0,class:`pane-empty`},ts={class:`pe-title`},ns={class:`aw-serif-accent-italic`},rs={class:`pe-sub`},is={key:1,class:`board`},as=[`onDragover`,`onDragleave`,`onDrop`],os={class:`sec`},ss={class:`sec-title`},cs={class:`sec-cnt`},ls={class:`task-col-body`},us=[`onDragstart`,`onClick`],ds={class:`tk-chan`},fs={key:0,class:`tk-num`},ps={key:1,class:`tk-num`},ms={class:`tk-title`},hs=[`title`],gs={class:`tk-foot`},_s=[`onClick`],vs={key:0,class:`col-empty`},ys={key:2,class:`task-list`},bs={key:0,class:`list-sec sec`},xs={class:`sec-title`},Ss={class:`sec-cnt`},Cs=[`onClick`],ws={class:`grow`},Ts={class:`lnum`},Es={class:`meta`},Ds=[`onClick`],Os=Object.assign(Q(v({__name:`TaskBoardView`,props:{channelId:{}},emits:[`openTask`],setup(e,{emit:t}){let{t:r}=Y(),i=e,a=t,o=yt(),s=Tt(),c=E(()=>o.tasks[i.channelId]??[]),l=E(()=>o.channels[i.channelId]!==void 0||o.tasks[i.channelId]!==void 0),u=I(new Map),d=E(()=>c.value.map(e=>u.value.has(e.id)?{...e,state:u.value.get(e.id)}:e)),f=[{key:`todo`,title:r(`taskBoardView.k3nf71d008`),states:[`SUBMITTED`,`ASSIGNED`],dot:`var(--tone-neutral-dot)`,moveAction:`retry`},{key:`doing`,title:r(`taskBoardView.k3o5tz9009`),states:[`WORKING`],dot:`var(--tone-info-dot)`,moveAction:null},{key:`waiting`,title:r(`taskBoardView.k1hpx9p1010`),states:[`WAITING`],dot:`var(--tone-warning-dot)`,moveAction:null},{key:`done`,title:r(`taskBoardView.k3n77g3011`),states:[`COMPLETED`],dot:`var(--tone-success-dot)`,moveAction:null},{key:`bad`,title:r(`taskBoardView.k1veotws012`),states:[`FAILED`,`CANCELED`],dot:`var(--tone-danger-dot)`,moveAction:`cancel`}],m=E(()=>f.map(e=>({...e,items:d.value.filter(t=>e.states.includes(t.state))}))),h=e=>o.agentById(i.channelId,e)?.name??e.slice(0,6),g=e=>d.value.filter(t=>t.parentId===e).length,_=e=>e.state,v=I(localStorage.getItem(`aw.tasks.boardLayout`)===`list`?`list`:`board`),C=e=>{v.value=e,localStorage.setItem(`aw.tasks.boardLayout`,e)},w=I(null),T=I(null),D=I(null),A=e=>d.value.find(t=>t.id===e),M=(e,t)=>{if(!t.moveAction)return!1;let n=A(e);return!n||t.states.includes(n.state)?!1:t.moveAction===`retry`?[`FAILED`,`CANCELED`].includes(n.state):[`SUBMITTED`,`ASSIGNED`,`WORKING`,`WAITING`,`FAILED`].includes(n.state)},N=(e,t,n)=>{w.value=t.id,T.value=n,e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,t.id))},ee=(e,t)=>{!w.value||!M(w.value,t)||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`))},L=e=>{D.value===e&&(D.value=null)},R=(e,t)=>{D.value=t.key,ee(e,t)},z=()=>{w.value=null,T.value=null,D.value=null},B=e=>({"drop-over":D.value===e.key&&!!w.value&&M(w.value,e),"no-drop":!!w.value&&D.value===e.key&&!M(w.value,e),"drag-origin":T.value===e.key}),V=async(e,t)=>{e.preventDefault();let n=w.value;D.value=null,w.value=null,T.value=null,!(!n||!M(n,t))&&await G(n,t.moveAction)},W=I(new Set),G=async(e,t)=>{if(W.value.has(e))return;let i=A(e);if(!i)return;W.value.add(e);let a=i.state,o=t===`cancel`?`CANCELED`:`ASSIGNED`,c=new Map(u.value);c.set(e,o),u.value=c;try{await(t===`cancel`?s.cancelTask(e):s.retryTask(e)),n.success(r(t===`cancel`?`taskBoardView.k189y4q013`:`taskBoardView.kv1l1j3014`))}catch(t){let i=new Map(u.value);i.set(e,a),u.value=i;let o=t;n.error($(o,r(`taskBoardView.k1e7zwuc015`)))}finally{W.value.delete(e),setTimeout(()=>{let t=new Map(u.value);t.delete(e),u.value=t},4e3)}},K=I(null),q=(e,t)=>{let n=Math.min(e.clientX,Math.max(window.innerWidth-156,8)),r=Math.min(e.clientY,Math.max(window.innerHeight-160,8));K.value={task:t,x:n,y:r}},J=()=>{K.value=null},ne=E(()=>{let e=K.value?.task;if(!e)return[];let t=[];return[`SUBMITTED`,`ASSIGNED`,`WORKING`,`WAITING`,`FAILED`].includes(e.state)&&t.push({key:`cancel`,label:r(`taskBoardView.k1bs0t9b016`),danger:!0}),[`FAILED`,`CANCELED`].includes(e.state)&&t.push({key:`retry`,label:r(`taskBoardView.k1lclwk6017`)}),t.push({key:`detail`,label:r(`taskBoardView.k1dx9ysj018`)}),t}),re=async e=>{let t=K.value?.task;J(),t&&(e===`detail`?a(`openTask`,t.id):await G(t.id,e))};return(e,t)=>{let n=Vn;return b(),k(`div`,Xo,[O(`div`,Zo,[O(`div`,Qo,[O(`button`,{type:`button`,class:x({on:H(v)===`board`}),onClick:t[0]||=e=>C(`board`)},y(e.$t(`taskBoardView.k43pyn001`)),3),O(`button`,{type:`button`,class:x({on:H(v)===`list`}),onClick:t[1]||=e=>C(`list`)},y(e.$t(`taskBoardView.k3x7l0002`)),3)]),O(`span`,$o,y(H(d).length)+` `+y(e.$t(`taskBoardView.k168w1ze004`)),1)]),H(d).length===0?(b(),k(`div`,es,[O(`span`,{class:x(H(l)?`pe-icon i-tabler-list-check`:`pe-icon i-tabler-refresh`)},null,2),O(`div`,ts,[U(y(H(l)?e.$t(`taskBoardView.k3vkhhj006`):e.$t(`taskBoardView.k1f9c17l019`))+` `,1),O(`span`,ns,y(e.$t(`taskBoardView.k3wcox003`)),1)]),O(`div`,rs,y(H(l)?`在下方 Composer 提交首个任务(首行标题,支持 goal / loop / pipeline 模式)`:`任务快照对齐后自动呈现`),1)])):H(v)===`board`?(b(),k(`div`,is,[(b(!0),k(j,null,S(H(m),r=>(b(),k(`div`,{key:r.key,class:x([`task-col`,B(r)]),onDragover:e=>R(e,r),onDragleave:e=>L(r.key),onDrop:e=>V(e,r)},[O(`div`,os,[O(`span`,{class:`st-dot`,style:p({background:r.dot})},null,4),O(`span`,ss,y(r.title),1),O(`span`,cs,y(r.items.length),1)]),O(`div`,ls,[(b(!0),k(j,null,S(r.items,i=>(b(),k(`div`,{key:i.id,class:x([`card task`,{dragging:H(w)===i.id}]),draggable:`true`,onDragstart:e=>N(e,i,r.key),onDragend:z,onClick:e=>a(`openTask`,i.id)},[O(`div`,ds,[O(`span`,null,`#`+y(h(i.assigneeId)),1),g(i.id)?(b(),k(`span`,fs,y(e.$t(`taskBoardView.k4b1x005`))+` `+y(g(i.id)),1)):P(``,!0),i.artifacts?(b(),k(`span`,ps,[t[2]||=O(`span`,{class:`i-tabler-package`},null,-1),U(` `+y(i.artifacts),1)])):P(``,!0)]),O(`div`,ms,y(i.title),1),i.routeReason?(b(),k(`div`,{key:0,class:`tk-route`,title:e.$t(`taskBoardView.k8m7hm6020`,{p0:i.routeReason})},` ↳ `+y(i.routeReason),9,hs)):P(``,!0),i.state===`WORKING`&&i.progress>0?(b(),F(n,{key:1,percent:i.progress,size:`small`,"show-info":!1},null,8,[`percent`])):P(``,!0),O(`div`,gs,[O(`button`,{type:`button`,class:`st-pill-btn`,onClick:te(e=>q(e,i),[`stop`])},[O(`span`,{class:`st-pill`,style:p({color:r.dot,borderColor:r.dot})},y(r.title),5)],8,_s)])],42,us))),128)),r.items.length===0?(b(),k(`div`,vs,y(r.moveAction?e.$t(`taskBoardView.k13pad50007`):`-`),1)):P(``,!0)])],42,as))),128))])):(b(),k(`div`,ys,[(b(!0),k(j,null,S(H(m),e=>(b(),k(j,{key:e.key},[e.items.length?(b(),k(`div`,bs,[O(`span`,{class:`st-dot`,style:p({background:e.dot})},null,4),O(`span`,xs,y(e.title),1),O(`span`,Ss,y(e.items.length),1)])):P(``,!0),(b(!0),k(j,null,S(e.items,t=>(b(),k(`div`,{key:t.id,class:`list-row`,onClick:e=>a(`openTask`,t.id)},[O(`span`,ws,y(t.title),1),O(`span`,Ts,`#`+y(h(t.assigneeId)),1),O(`span`,Es,y(t.id.slice(0,8)),1),O(`span`,{class:`st-pill`,style:p({color:e.dot,borderColor:e.dot})},y(_(t)),5)],8,Cs))),128))],64))),128))])),H(K)?(b(),k(j,{key:3},[O(`div`,{class:`menu-backdrop`,onClick:J,onScroll:J},null,32),O(`div`,{class:`st-menu`,style:p({left:`${H(K).x}px`,top:`${H(K).y}px`})},[(b(!0),k(j,null,S(H(ne),e=>(b(),k(`button`,{key:e.key,type:`button`,class:x({danger:e.danger}),onClick:t=>re(e.key)},[O(`span`,{class:x(e.key===`cancel`?`i-tabler-circle-off`:e.key===`retry`?`i-tabler-rotate`:`i-tabler-external-link`)},null,2),U(` `+y(e.label),1)],10,Ds))),128))],4)],64)):P(``,!0)])}}}),[[`__scopeId`,`data-v-e4b51f68`]]),{__name:`WorkshopTaskBoardView`}),ks={class:`split`},As={key:0,class:`empty`},js={class:`col-head`},Ms={class:`col-name`},Ns={class:`col-meta`},Ps={class:`col-body`},Fs={key:0,class:`col-empty`},Is=[`onClick`],Ls={class:`me-time`},Rs={class:`me-agent`},zs={class:`me-text`},Bs=360,Vs=Object.assign(Q(v({__name:`MultiChannelView`,props:{wsId:{}},emits:[`openTask`],setup(e,{emit:t}){let{t:n}=Y(),r=e,i=t,a=kt(`aw.harness.mcColW`,{}),o=e=>a.value[e]??Bs,s=(e,t)=>{a.value={...a.value,[e]:Math.min(760,Math.max(300,o(e)+t))}},c=e=>{let t={...a.value};Reflect.deleteProperty(t,e),a.value=t},l=dt(),u=yt(),d=xt(),f=E(()=>(l.workspaces.find(e=>e.id===r.wsId)?.channelIds??[]).map(e=>{let t=u.agents[e]??[],n=u.tasks[e]??[];return{id:e,name:u.channels[e]?.name??e.slice(0,8),synced:u.channels[e]!==void 0,busy:t.filter(e=>e.state===`busy`).length,agents:t.length,activeTasks:n.filter(e=>![`COMPLETED`,`CANCELED`,`FAILED`].includes(e.state)).length,seq:d.lastSeq(e),items:d.ring(e).items.slice(-120)}})),m=e=>{let t=e.payload;switch(e.type){case`task.status`:return`${String(t.state)} ${String(t.taskId??``).slice(0,6)}`;case`task.progress`:return`${String(t.progress??``)}%`;case`agent.delta`:return`…${String(t.delta??``).slice(-24)}`;case`agent.message`:return`${String(t.parts?.[0]?.text??``).slice(0,40)}`;case`a2a.message`:return`文本 ${String(t.parts?.[0]?.text??``).slice(0,40)}`;case`a2a.artifact`:return`交付 ${String(t.artifact?.name??``)}`;case`memory.saved`:return n(`multiChannelView.kfvue7n009`,{p0:String(t.title??``)});case`agent.member`:return n(`multiChannelView.khq39oe010`,{p0:String(t.op??``),p1:String(t.name??``)});case`agent.status`:return`${String(t.state)}`;case`error`:return n(`multiChannelView.k16wopr9011`,{p0:String(t.code??``)});default:return e.type}};return(e,t)=>{let n=Xr;return b(),k(`div`,ks,[H(f).length===0?(b(),k(`div`,As,y(e.$t(`multiChannelView.k1bfi9ms001`)),1)):P(``,!0),(b(!0),k(j,null,S(H(f),t=>(b(),k(j,{key:t.id},[O(`div`,{class:`col`,style:p({flexBasis:`${o(t.id)}px`})},[O(`div`,js,[O(`span`,Ms,y(t.name),1),O(`span`,Ns,[t.synced?(b(),k(j,{key:0},[U(y(t.agents)+`a / `+y(e.$t(`multiChannelView.k4by6003`))+y(t.busy)+` / `+y(e.$t(`multiChannelView.k3wcox005`))+y(t.activeTasks)+` / seq`+y(t.seq),1)],64)):(b(),k(j,{key:1},[U(y(e.$t(`multiChannelView.k1bst7s9002`)),1)],64))])]),O(`div`,Ps,[t.items.length===0?(b(),k(`div`,Fs,y(t.synced?e.$t(`multiChannelView.k1el0s5k004`):e.$t(`multiChannelView.k1bst7s9002`)),1)):P(``,!0),(b(!0),k(j,null,S(t.items,e=>(b(),k(`div`,{key:`${t.id}-${e.seq}`,class:x([`mini-event`,{clickable:e.type===`task.status`}]),onClick:t=>e.type===`task.status`&&i(`openTask`,e.payload.taskId)},[O(`span`,Ls,y(H(Dt)(e.at)),1),O(`span`,Rs,y(e.agentId?.slice(0,4)??`sys`),1),O(`span`,zs,y(m(e)),1)],10,Is))),128))])],4),w(n,{label:e.$t(`multiChannelView.kvfx0mh006`,{p0:t.name}),onResize:e=>s(t.id,e),onReset:e=>c(t.id)},null,8,[`label`,`onResize`,`onReset`])],64))),128))])}}}),[[`__scopeId`,`data-v-51168f05`]]),{__name:`WorkshopMultiChannelView`}),Hs={class:`memory-panel`},Us={class:`toolbar`},Ws=[`data-ok`],Gs={class:`search-bar`},Ks={key:1,class:`search-results`},qs=[`title`],Js=[`data-source`],Ys={class:`score`},Xs={class:`hit-title`},Zs={class:`list-head`},Qs={class:`row-head`},$s={class:`row-importance`},ec={class:`row-title`},tc={class:`row-content`},nc={key:0,class:`empty`},rc=Object.assign(Q(v({__name:`MemoryPanel`,props:{channelId:{},agentId:{}},setup(e){let{t}=Y(),i=e,a=yt(),o=Tt(),c=I(`shared`),u=I(i.agentId??``);l(()=>i.agentId,e=>{e&&(u.value=e)});let d=I({}),f=I(``),p=E(()=>f.value.trim()||d.value[u.value]||``),m=E(()=>p.value.length>0),h=async()=>{try{let e=await o.listChannelAgents(i.channelId),t={};for(let n of e.data??[])n.token&&(t[n.id]=n.token);if(d.value=t,!u.value){let t=(e.data??[]).find(e=>e.role===`lead`);t&&(u.value=t.id)}}catch{}};_(()=>void h()),l(()=>i.channelId,()=>{d.value={},u.value=i.agentId??``,h()});let g=E(()=>{let e={};return p.value&&(e.authorization=`Bearer ${p.value}`),e}),v=E(()=>a.agents[i.channelId]??[]),x=I([]),C=I(!1),A=async()=>{C.value=!0;try{let e=c.value===`shared`?`/api/workshop/channels/${i.channelId}/memories`:`/api/workshop/channels/${i.channelId}/agents/${u.value}/memories`,r=await(await fetch(e,{headers:g.value})).json();x.value=r.code===0?r.data:[],r.code!==0&&n.warning(r.message??t(`memoryPanel.k186sctu014`))}finally{C.value=!1}};l([c,u,p],()=>{p.value&&(c.value===`shared`||u.value)&&A()});let M=I(``),N=I(`auto`),ee=I([]),L=I(!1),z=async()=>{if(!M.value.trim()||!u.value||!p.value){n.warning(t(`memoryPanel.k1eh0fbo015`));return}L.value=!0;try{let e=await(await fetch(`/api/workshop/channels/${i.channelId}/agents/${u.value}/memories/search`,{method:`POST`,headers:{"content-type":`application/json`,...g.value},body:JSON.stringify({query:M.value,scope:N.value,limit:8})})).json();ee.value=e.code===0?e.data:[]}finally{L.value=!1}},B=I(!1),V=D({title:``,content:``,scope:`shared`,importance:.8,dedupKey:``}),W=async()=>{if(!V.title||!V.content||!u.value||!p.value){n.warning(t(`memoryPanel.k1dpj734016`));return}let e=await(await fetch(`/api/workshop/channels/${i.channelId}/agents/${u.value}/memories`,{method:`POST`,headers:{"content-type":`application/json`,...g.value},body:JSON.stringify({...V,dedupKey:V.dedupKey||void 0})})).json();e.code===0?(n.success(t(`memoryPanel.k3n5bat017`)),B.value=!1,V.title=``,V.content=``,A()):n.error(e.message??t(`memoryPanel.k1bb5i1l018`))};return(t,n)=>{let i=Ke,a=We,o=Re,l=Me,d=Ve,p=Be,h=r,g=tt,_=qe,E=st,D=Ge,I=Pe,G=Ue,K=He,te=at,q=Ne,J=s;return b(),k(`div`,Hs,[O(`div`,Us,[w(a,{value:H(c),"onUpdate:value":n[0]||=e=>T(c)?c.value=e:null,size:`small`,"button-style":`solid`},{default:R(()=>[w(i,{value:`shared`},{default:R(()=>[U(y(t.$t(`memoryPanel.k3l2hmp005`)),1)]),_:1}),w(i,{value:`private`},{default:R(()=>[U(y(t.$t(`memoryPanel.k3rve9a006`)),1)]),_:1})]),_:1},8,[`value`]),e.agentId?P(``,!0):(b(),F(o,{key:0,value:H(u),"onUpdate:value":n[1]||=e=>T(u)?u.value=e:null,size:`small`,placeholder:t.$t(`memoryPanel.k1du3379001`),class:`agent-select`,options:H(v).map(e=>({value:e.agentId,label:e.name}))},null,8,[`value`,`placeholder`,`options`])),w(l,{title:H(m)?`成员 token 已自动装配`:`自动装配失败,可手动填入成员 token`},{default:R(()=>[O(`span`,{class:`token-state`,"data-ok":H(m)},[n[12]||=O(`span`,{class:`i-tabler-key`},null,-1),U(y(H(m)?`auto`:t.$t(`memoryPanel.k3zul4013`)),1)],8,Ws)]),_:1},8,[`title`])]),H(m)?P(``,!0):(b(),F(d,{key:0,value:H(f),"onUpdate:value":n[2]||=e=>T(f)?f.value=e:null,size:`small`,placeholder:`Bearer token(成员身份,兜底手填)`,class:`token`},null,8,[`value`])),O(`div`,Gs,[w(p,{value:H(M),"onUpdate:value":n[3]||=e=>T(M)?M.value=e:null,size:`small`,placeholder:`混合检索记忆(FTS+向量,与 agent search_memory 同源)…`,loading:H(L),onSearch:z},null,8,[`value`,`loading`]),w(o,{value:H(N),"onUpdate:value":n[4]||=e=>T(N)?N.value=e:null,size:`small`,class:`scope`,options:[{value:`auto`,label:`auto`},{value:`private`,label:`private`},{value:`shared`,label:`shared`}]},null,8,[`value`])]),H(ee).length?(b(),k(`div`,Ks,[(b(!0),k(j,null,S(H(ee),e=>(b(),k(`div`,{key:e.id,class:`hit`,title:e.content.slice(0,200)},[O(`span`,{class:`src`,"data-source":e.source},y(e.source),9,Js),O(`span`,Ys,y(e.score),1),O(`span`,Xs,y(e.title),1)],8,qs))),128))])):P(``,!0),O(`div`,Zs,[O(`span`,null,y(t.$t(`memoryPanel.k1k7okbe007`)),1),w(g,{size:`small`},{default:R(()=>[w(h,{size:`small`,type:`text`,onClick:A},{default:R(()=>[U(y(t.$t(`memoryPanel.k3x1jg008`)),1)]),_:1}),w(h,{size:`small`,type:`text`,onClick:n[5]||=e=>B.value=!0},{default:R(()=>[U(y(t.$t(`memoryPanel.k3wtib009`)),1)]),_:1})]),_:1})]),w(E,{spinning:H(C)},{default:R(()=>[(b(!0),k(j,null,S(H(x),e=>(b(),k(`div`,{key:e.id,class:`row`},[O(`div`,Qs,[w(_,{class:`kind`},{default:R(()=>[U(y(e.kind),1)]),_:2},1024),O(`span`,$s,y(e.importance.toFixed(2)),1),O(`span`,ec,y(e.title),1)]),O(`div`,tc,y(e.content.slice(0,140))+y(e.content.length>140?`…`:``),1)]))),128)),H(x).length===0&&!H(C)?(b(),k(`div`,nc,` (`+y(t.$t(`memoryPanel.k43rxk011`)),1)):P(``,!0)]),_:1},8,[`spinning`]),w(J,{open:H(B),"onUpdate:open":n[11]||=e=>T(B)?B.value=e:null,title:t.$t(`memoryPanel.k1bbee8p002`),"ok-text":`写入`,"cancel-text":`取消`,onOk:W},{default:R(()=>[w(q,{layout:`vertical`},{default:R(()=>[w(I,{label:`scope`},{default:R(()=>[w(a,{value:H(V).scope,"onUpdate:value":n[6]||=e=>H(V).scope=e},{default:R(()=>[w(D,{value:`shared`},{default:R(()=>[U(y(t.$t(`memoryPanel.kemjjvq010`)),1)]),_:1}),w(D,{value:`private`},{default:R(()=>[U(` private(`+y(t.$t(`memoryPanel.k3onh9w012`)),1)]),_:1})]),_:1},8,[`value`])]),_:1}),w(I,{label:t.$t(`memoryPanel.k419s4003`)},{default:R(()=>[w(G,{value:H(V).title,"onUpdate:value":n[7]||=e=>H(V).title=e},null,8,[`value`])]),_:1},8,[`label`]),w(I,{label:t.$t(`memoryPanel.k3wv1f004`)},{default:R(()=>[w(K,{value:H(V).content,"onUpdate:value":n[8]||=e=>H(V).content=e,rows:4},null,8,[`value`])]),_:1},8,[`label`]),w(I,{label:`importance(0-1)`},{default:R(()=>[w(te,{value:H(V).importance,"onUpdate:value":n[9]||=e=>H(V).importance=e,min:0,max:1,step:.1},null,8,[`value`])]),_:1}),w(I,{label:`dedupKey(可选,幂等)`},{default:R(()=>[w(G,{value:H(V).dedupKey,"onUpdate:value":n[10]||=e=>H(V).dedupKey=e},null,8,[`value`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-25b1b7cc`]]),{__name:`WorkshopMemoryPanel`}),ic={class:`stats`},ac={class:`kpis`},oc={class:`kpi`},sc={class:`kpi-num`},cc={class:`kpi-label`},lc={class:`kpi`},uc={class:`kpi-num`},dc={class:`kpi-label`},fc={class:`kpi`},pc={class:`kpi-num`},mc={class:`kpi-label`},hc={class:`chart`},gc={class:`types`},_c={class:`types-title`},vc={class:`t-name`},yc={class:`t-bar-wrap`},bc={class:`t-n`},xc={key:0,class:`empty`},Sc=60,Cc=Object.assign(Q(v({__name:`StatsPanel`,props:{channelId:{}},setup(e){let t=e,n=xt(),r=vt(),i=E(()=>{let e=n.ring(t.channelId).items,r=Date.now(),i=Array(Sc).fill(0);for(let t of e){let e=Date.parse(t.at);if(Number.isNaN(e))continue;let n=Math.floor((r-e)/1e3),a=n>=0&&n<Sc?59-n:-1;a>=0&&(i[a]=(i[a]??0)+1)}return i}),a=E(()=>{let e=new Map;for(let r of n.ring(t.channelId).items)e.set(r.type,(e.get(r.type)??0)+1);return[...e.entries()].sort((e,t)=>t[1]-e[1])}),o=E(()=>({grid:{left:36,right:8,top:12,bottom:20},xAxis:{type:`category`,data:i.value.map((e,t)=>String(t-Sc+1))},yAxis:{type:`value`,minInterval:1},tooltip:{trigger:`axis`},series:[{type:`line`,data:i.value,smooth:!0,showSymbol:!1,areaStyle:{opacity:.15},lineStyle:{width:1.5}}]})),s=E(()=>n.ring(t.channelId).items.length),c=E(()=>i.value.slice(-10).reduce((e,t)=>e+t,0)/10);return(t,i)=>{let l=h(`app-chart`);return b(),k(`div`,ic,[O(`div`,ac,[O(`div`,oc,[O(`div`,sc,y(H(s)),1),O(`div`,cc,y(t.$t(`statsPanel.k1i88c0b001`)),1)]),O(`div`,lc,[O(`div`,uc,y(H(c).toFixed(1))+`/s `,1),O(`div`,dc,y(t.$t(`statsPanel.kfplawo002`)),1)]),O(`div`,fc,[O(`div`,pc,y(H(n).lastSeq(e.channelId)),1),O(`div`,mc,` seq / `+y(H(r).state),1)])]),O(`div`,hc,[w(l,{option:H(o),class:`app-chart`,autoresize:``},null,8,[`option`])]),O(`div`,gc,[O(`div`,_c,y(t.$t(`statsPanel.kzcd51003`)),1),(b(!0),k(j,null,S(H(a),([e,t])=>(b(),k(`div`,{key:e,class:`type-row`},[O(`span`,vc,y(e),1),O(`div`,yc,[O(`div`,{class:`t-bar`,style:p({width:`${Math.round(t/(H(a)[0]?.[1]??1)*100)}%`})},null,4)]),O(`span`,bc,y(t),1)]))),128)),H(a).length===0?(b(),k(`div`,xc,y(t.$t(`statsPanel.k1pevwxl004`)),1)):P(``,!0)])])}}}),[[`__scopeId`,`data-v-23e4d795`]]),{__name:`WorkshopStatsPanel`}),wc={class:`inspector`},Tc=[`onClick`,`onKeydown`],Ec={class:`member-info`},Dc={class:`member-name`},Oc={class:`name-text`},kc={class:`member-meta`},Ac={key:0,class:`prog`},jc={class:`member-cap`},Mc={key:0,class:`empty`},Nc=[`onClick`,`onKeydown`],Pc={class:`task-head`},Fc={class:`state-chip aw-mono`},Ic={class:`task-title`},Lc={class:`task-meta`},Rc={key:0},zc={key:1},Bc={key:0,class:`empty`},Vc=Object.assign(Q(v({__name:`InspectorPanel`,props:{channelId:{}},emits:[`openAgent`,`openTask`],setup(e,{emit:t}){let{t:n}=Y(),r=e,i=t,a=yt(),o=I(`members`),s=E(()=>a.agents[r.channelId]??[]),c=E(()=>a.tasks[r.channelId]??[]),l=E(()=>c.value.filter(e=>!e.parentId)),u=E(()=>a.channels[r.channelId]!==void 0),d=E(()=>{let e=new Map;for(let t of c.value){if(t.state!==`COMPLETED`&&t.state!==`FAILED`)continue;let n=e.get(t.assigneeId)??{total:0,completed:0,failed:0,durationSum:0};n.total+=1,t.state===`COMPLETED`?(n.completed+=1,t.updatedAt&&t.createdAt&&(n.durationSum+=Math.max(0,new Date(t.updatedAt).getTime()-new Date(t.createdAt).getTime()))):n.failed+=1,e.set(t.assigneeId,n)}return e}),f=e=>{let t=d.value.get(e);if(!t||t.total===0)return n(`inspectorPanel.k1el1plr007`);let r=Math.round(t.completed/t.total*100),i=t.completed>0?Math.round(t.durationSum/t.completed/1e3):0;return n(`inspectorPanel.k12oip5c010`,{p0:r,p1:i,p2:t.failed})},m=e=>c.value.filter(t=>t.parentId===e).length,h={idle:`var(--tone-success-dot)`,busy:`var(--tone-info-dot)`,stopped:`var(--tone-neutral-dot)`};return(t,n)=>{let r=Ye,a=Vn,c=rc,d=Cc,g=Ze;return b(),k(`div`,wc,[w(g,{"active-key":H(o),"onUpdate:activeKey":n[0]||=e=>T(o)?o.value=e:null,size:`small`,class:`tabs`},{default:R(()=>[w(r,{key:`members`,tab:`成员`},{default:R(()=>[(b(!0),k(j,null,S(H(s),e=>(b(),k(`div`,{key:e.agentId,class:`member aw-tile`,role:`button`,tabindex:`0`,onClick:t=>i(`openAgent`,e.agentId),onKeydown:K(t=>i(`openAgent`,e.agentId),[`enter`])},[O(`span`,{class:`dot`,style:p({background:h[e.state]??`var(--tone-neutral-dot)`})},null,4),O(`div`,Ec,[O(`div`,Dc,[O(`span`,Oc,y(e.name),1),O(`span`,{class:x([`role-chip`,e.role])},y(e.role),3)]),O(`div`,kc,[e.state===`busy`&&e.currentTaskTitle?(b(),k(j,{key:0},[U(y(e.currentTaskTitle)+` `,1),e.currentTaskProgress==null?P(``,!0):(b(),k(`span`,Ac,y(e.currentTaskProgress)+`%`,1))],64)):(b(),k(j,{key:1},[U(y(e.state)+` `,1),e.queued?(b(),k(j,{key:0},[U(` · `+y(t.$t(`inspectorPanel.k498bf001`))+` `+y(e.queued),1)],64)):P(``,!0),e.completed?(b(),k(j,{key:1},[U(` · `+y(t.$t(`inspectorPanel.k3ypnl002`))+` `+y(e.completed),1)],64)):P(``,!0)],64))]),O(`div`,jc,y(f(e.agentId)),1)])],40,Tc))),128)),H(s).length===0?(b(),k(`div`,Mc,y(H(u)?t.$t(`inspectorPanel.k1el4cgf005`):t.$t(`inspectorPanel.k1tqitzl008`)),1)):P(``,!0)]),_:1}),w(r,{key:`tasks`,tab:`任务`},{default:R(()=>[(b(!0),k(j,null,S(H(l),e=>(b(),k(`div`,{key:e.id,class:`task aw-tile`,role:`button`,tabindex:`0`,onClick:t=>i(`openTask`,e.id),onKeydown:K(t=>i(`openTask`,e.id),[`enter`])},[O(`div`,Pc,[O(`span`,Fc,y(e.state),1),O(`span`,Ic,y(e.title),1)]),O(`div`,Lc,[U(y(e.id.slice(0,8))+` · `+y(e.progress)+`% `,1),m(e.id)?(b(),k(`span`,Rc,`· `+y(t.$t(`inspectorPanel.k3mp44x003`))+` `+y(m(e.id)),1)):P(``,!0),e.artifacts?(b(),k(`span`,zc,`· `+y(t.$t(`inspectorPanel.k3w9q9004`))+` `+y(e.artifacts),1)):P(``,!0)]),e.state===`WORKING`?(b(),F(a,{key:0,percent:e.progress,size:`small`,"show-info":!1},null,8,[`percent`])):P(``,!0)],40,Nc))),128)),H(l).length===0?(b(),k(`div`,Bc,y(H(u)?t.$t(`inspectorPanel.k1el0vqb006`):t.$t(`inspectorPanel.kks0y5h009`)),1)):P(``,!0)]),_:1}),w(r,{key:`memory`,tab:`记忆`},{default:R(()=>[w(c,{"channel-id":e.channelId},null,8,[`channel-id`])]),_:1}),w(r,{key:`stats`,tab:`统计`},{default:R(()=>[w(d,{"channel-id":e.channelId},null,8,[`channel-id`])]),_:1})]),_:1},8,[`active-key`])])}}}),[[`__scopeId`,`data-v-b3dfa7e4`]]),{__name:`WorkshopInspectorPanel`}),Hc={class:`composer`},Uc={class:`composer-box`},Wc={key:0,class:`mention-menu`},Gc={class:`mention-title`},Kc=[`onMousedown`,`onMouseenter`],qc={class:`mention-name`},Jc={class:`mention-role`},Yc=[`title`],Xc={class:`composer-status-chip`},Zc={class:`chip-key`},Qc={key:0},$c=[`title`],el=[`data-tone`,`title`],tl={class:`chip-hint`},nl={class:`chip-key`},rl={key:0},il=[`data-tone`,`title`],al=[`placeholder`],ol={class:`composer-bar`},sl={class:`cb-left`},cl={class:`aw-seg`},ll={class:`aw-seg`},ul=[`onClick`],dl={class:`aw-seg`},fl=[`title`],pl=[`title`],ml={class:`cb-right`},hl=[`disabled`],gl=Object.assign(Q(v({__name:`Composer`,props:{channelId:{}},emits:[`submitted`],setup(e,{emit:t}){let{t:r}=Y(),i=e,a=t,o=Tt(),s=yt(),c=lt(),u=I(`task`),d=I(``),{quoteText:f}=Qr(),m=I(null);l(f,e=>{if(!e)return;let t=e.trim().split(`
|
|
12
|
-
`).map(e=>`> ${e}`).join(`
|
|
13
|
-
`);d.value=d.value?`${d.value}\n\n${t}\n\n`:`${t}\n\n`,f.value=null,M(()=>m.value?.focus())});let h=I(`goal`),g=I(60),_=I(null),v=E({get:()=>g.value??void 0,set:e=>{g.value=e??null}}),C=E({get:()=>_.value??void 0,set:e=>{_.value=e??null}}),D=I(!1),A=E(()=>s.agents[i.channelId]??[]),N=E(()=>A.value),F=E(()=>A.value.find(e=>e.role===`lead`)?.agentId??A.value[0]?.agentId??``),L=I(``);l([A,F],([e])=>{e.length!==0&&(!L.value||!e.some(e=>e.agentId===L.value))&&(L.value=F.value||(e[0]?.agentId??``))},{immediate:!0});let R=I(`immediate`),z=I(!1),B=()=>{L.value=F.value},V=I(!1),W=I(``),G=I(0),K=()=>{let e=document.activeElement,t=e?.value??d.value,n=e?.selectionStart??t.length,r=t.slice(0,n),i=/(^|\s)@([^\s@]*)$/.exec(r);if(!i){V.value=!1;return}W.value=i[2]??``,V.value=J.value.length>0,G.value=0},J=E(()=>{let e=W.value.toLowerCase();return N.value.filter(t=>!e||t.name.toLowerCase().includes(e)).slice(0,6)}),ne=e=>{let t=J.value[e];if(!t)return;let n=document.activeElement,r=n?.value??d.value,i=n?.selectionStart??r.length,a=r.slice(0,i),o=/(^|\s)@([^\s@]*)$/.exec(a),s=o?i-(o[2]?.length??0):i,c=`${r.slice(0,s)}${t.name} ${r.slice(i)}`;d.value=c,L.value=t.agentId,V.value=!1,M(()=>{let e=s+t.name.length+1;n?.setSelectionRange(e,e),n?.focus()})},re=e=>V.value?e.key===`ArrowDown`?(e.preventDefault(),G.value=Math.min(G.value+1,J.value.length-1),!0):e.key===`ArrowUp`?(e.preventDefault(),G.value=Math.max(G.value-1,0),!0):e.key===`Enter`||e.key===`Tab`?(e.preventDefault(),ne(G.value),!0):e.key===`Escape`&&(V.value=!1,!0):!1,ie=()=>{let[e,...t]=d.value.trim().split(`
|
|
14
|
-
`);return{title:(e??``).slice(0,120),description:t.join(`
|
|
15
|
-
`).trim()||void 0}},ae=async()=>{let e=d.value.trim();if(e){D.value=!0;try{if(u.value===`task`){let{title:e,description:t}=ie();if(!e){n.warning(r(`composer.kqdhdlq014`));return}let a=g.value,s=_.value;if(h.value===`loop`){if(a===null||!Number.isFinite(a)||a<1||a>86400){n.warning(`loop 间隔需设置为 1 到 86400 秒`);return}if(s!==null&&(!Number.isInteger(s)||s<1||s>1e4)){n.warning(r(`composer.k1l36qf9015`));return}}await o.submitTask(i.channelId,{title:e,description:t,mode:h.value,...h.value===`loop`?{modeConfig:{intervalMs:Math.round(a*1e3),...s===null?{}:{maxIterations:Math.floor(s)}}}:{},assigneeId:L.value||void 0,fromLabel:c.user?.name??void 0,parts:[{text:d.value.trim()}]});let l=ce.value||`lead`;n.success(r(`composer.k1d2idgj035`,{p0:l,p1:h.value}))}else{if(!L.value){n.warning(r(`composer.k1bw65is016`));return}await o.injectMessage(i.channelId,{toAgentId:L.value,text:e,priority:R.value,requireReply:z.value,fromLabel:c.user?.name??void 0}),n.success(r(`composer.k1wk4bf036`,{p0:ce.value,p1:R.value===`immediate`?r(`composer.k1cxjc4m034`):r(`composer.k40g8m009`)}))}d.value=``,B(),a(`submitted`)}catch(e){n.error($(e))}finally{D.value=!1}}},oe=e=>{e.isComposing||re(e)||e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),ae())};l(d,async()=>{await M();let e=m.value;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,160)}px`)});let se=E(()=>N.value.find(e=>e.agentId===L.value)),ce=E(()=>se.value?.name??``),X=E(()=>!!F.value&&L.value===F.value),le=E(()=>{if(!se.value)return null;let e=se.value.state;return u.value===`task`?e===`busy`?{tone:`info`,text:r(`composer.k1ww0ftm017`),title:r(`composer.k9eq10w018`)}:e===`stopped`?{tone:`warn`,text:r(`composer.kbhz1rp019`),title:r(`composer.kophjf5020`)}:{tone:`ok`,text:r(`composer.k4qgtiw021`),title:r(`composer.kfmjwas022`)}:e===`busy`?{tone:`info`,text:R.value===`immediate`?r(`composer.kwg68t0023`):r(`composer.k7w1etd024`),title:r(`composer.k9m6p7u025`)}:e===`stopped`?{tone:`warn`,text:r(`composer.kj1ngpo026`),title:r(`composer.kmf7lcc027`)}:{tone:`ok`,text:r(`composer.k1tet5df028`),title:r(`composer.kn600in029`)}}),ue=E(()=>u.value===`task`?r(`composer.k2h5jwc030`):r(`composer.k15mwzt7031`));return(e,t)=>{let n=Re,r=at;return b(),k(`div`,Hc,[O(`div`,Uc,[H(V)?(b(),k(`div`,Wc,[O(`div`,Gc,y(e.$t(`composer.k1bxvc46004`)),1),(b(!0),k(j,null,S(H(J),(e,t)=>(b(),k(`button`,{key:e.agentId,type:`button`,class:x([`mention-opt`,{sel:t===H(G)}]),onMousedown:te(e=>ne(t),[`prevent`]),onMouseenter:e=>G.value=t},[O(`span`,{class:`aw-avatar is-agent mention-ava`,style:p({"--av":H(St)(e.agentId)})},y(e.name.charAt(0).toUpperCase()),5),O(`span`,qc,`@`+y(e.name),1),O(`span`,Jc,y(e.role),1),O(`span`,{class:x([`mention-state`,e.state]),title:e.state},null,10,Yc)],42,Kc))),128))])):P(``,!0),O(`div`,Xc,[H(u)===`task`?(b(),k(j,{key:0},[O(`span`,Zc,y(e.$t(`composer.k3wcox005`)),1),O(`span`,null,y(H(h)),1),H(h)===`loop`?(b(),k(`span`,Qc,y(e.$t(`composer.k49kr1011`))+` `+y(H(g)??`-`)+`s `,1)):P(``,!0),O(`span`,{class:`chip-target`,title:H(X)?`未 @ 指定:任务自动路由 lead 调度;@ 某成员可直发`:e.$t(`composer.kl3604i033`,{p0:H(ce)})},`→ `+y(H(ce)?`@${H(ce)}`:`lead`)+y(H(X)?e.$t(`composer.k2z7yuw012`):e.$t(`composer.k2z0fsx032`)),9,$c),H(le)?(b(),k(`span`,{key:1,class:`reach-chip`,"data-tone":H(le).tone,title:H(le).title},[t[10]||=O(`span`,{class:`reach-dot`,"aria-hidden":`true`},null,-1),U(y(H(le).text),1)],8,el)):P(``,!0),O(`span`,tl,y(e.$t(`composer.k17u6q77006`)),1)],64)):(b(),k(j,{key:1},[O(`span`,nl,y(e.$t(`composer.k41ykc007`)),1),H(ce)?(b(),k(`span`,rl,`@`+y(H(ce))+y(H(X)?e.$t(`composer.k2z7yuw012`):``),1)):P(``,!0),O(`span`,null,y(H(R)===`immediate`?e.$t(`composer.k1bosqfv013`):e.$t(`composer.k40g8m009`)),1),H(le)?(b(),k(`span`,{key:1,class:`reach-chip`,"data-tone":H(le).tone,title:H(le).title},[t[11]||=O(`span`,{class:`reach-dot`,"aria-hidden":`true`},null,-1),U(y(H(le).text),1)],8,il)):P(``,!0),t[12]||=O(`span`,{class:`chip-hint`},`输入 @ 提及成员 · ⌘/Ctrl+Enter 发送`,-1)],64))]),ee(O(`textarea`,{ref_key:`taEl`,ref:m,"onUpdate:modelValue":t[0]||=e=>T(d)?d.value=e:null,class:`composer-input`,rows:`1`,placeholder:H(ue),onInput:K,onKeydown:oe,onBlur:t[1]||=e=>V.value=!1},null,40,al),[[q,H(d)]]),O(`div`,ol,[O(`div`,sl,[O(`div`,cl,[O(`button`,{type:`button`,class:x({on:H(u)===`task`}),onClick:t[2]||=e=>u.value=`task`},y(e.$t(`composer.k3wcox005`)),3),O(`button`,{type:`button`,class:x({on:H(u)===`message`}),onClick:t[3]||=e=>u.value=`message`},y(e.$t(`composer.k41ykc007`)),3)]),w(n,{value:H(L),"onUpdate:value":t[4]||=e=>T(L)?L.value=e:null,size:`small`,class:`target`,options:H(N).map(e=>({value:e.agentId,label:`@ ${e.name}${e.role===`lead`?` · lead`:``}`}))},null,8,[`value`,`options`]),H(u)===`task`?(b(),k(j,{key:0},[O(`div`,ll,[(b(),k(j,null,S([`goal`,`loop`,`pipeline`],e=>O(`button`,{key:e,type:`button`,class:x({on:H(h)===e}),onClick:t=>h.value=e},y(e),11,ul)),64))]),H(h)===`loop`?(b(),k(j,{key:0},[w(r,{value:H(v),"onUpdate:value":t[5]||=e=>T(v)?v.value=e:null,size:`small`,min:1,max:86400,step:1,precision:0,"addon-after":`秒`,class:`loop-number`},null,8,[`value`]),w(r,{value:H(C),"onUpdate:value":t[6]||=e=>T(C)?C.value=e:null,size:`small`,min:1,max:1e4,step:1,precision:0,placeholder:e.$t(`composer.k1b38y2b001`),class:`loop-number iterations`},null,8,[`value`,`placeholder`])],64)):P(``,!0)],64)):(b(),k(j,{key:1},[O(`div`,dl,[O(`button`,{type:`button`,class:x({on:H(R)===`immediate`}),title:e.$t(`composer.k1jqqvhe002`),onClick:t[7]||=e=>R.value=`immediate`},y(e.$t(`composer.k3x9n2008`)),11,fl),O(`button`,{type:`button`,class:x({on:H(R)===`task`}),onClick:t[8]||=e=>R.value=`task`},y(e.$t(`composer.k40g8m009`)),3)]),O(`button`,{type:`button`,class:x([`chip-toggle`,{on:H(z)}]),title:e.$t(`composer.k195594v003`),onClick:t[9]||=e=>z.value=!H(z)},[t[13]||=O(`span`,{class:`i-tabler-mail-forward`},null,-1),U(` `+y(e.$t(`composer.k3xv7u010`)),1)],10,pl)],64))]),O(`div`,ml,[O(`button`,{type:`button`,class:`send-btn im`,disabled:H(D)||!H(d).trim(),title:`发送(⌘/Ctrl+Enter)`,onClick:ae},[...t[14]||=[O(`span`,{class:`i-tabler-send im-nudge-up`},null,-1)]],8,hl)])])])])}}}),[[`__scopeId`,`data-v-bddcd471`]]),{__name:`WorkshopComposer`}),_l={class:`head`},vl={class:`state-text`},yl={class:`role-chip`},bl={class:`queue-meta`},xl={key:0,class:`current-task`},Sl={class:`stream`},Cl={key:0,class:`empty`},wl={class:`group-title`},Tl={class:`state-chip aw-mono`},El={class:`qt-title`},Dl={class:`qt-meta`},Ol={key:0,class:`empty`},kl={class:`footer`},Al={key:0,class:`member-ops`},jl={class:`op-label`},Ml={class:`send-box`},Nl={class:`send-ops`},Pl=520,Fl=Object.assign(Q(v({__name:`AgentInspectorDrawer`,props:N({channelId:{},agentId:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:N([`removed`],[`update:open`]),setup(e,{emit:t}){let{t:i}=Y(),a=e,o=C(e,`open`),s=t,c=kt(`aw.drawer.agentW`,Pl),l=e=>{c.value=Math.min(900,Math.max(360,c.value-e))},u=yt(),d=xt(),f=Tt(),m=E(()=>a.agentId?u.agentById(a.channelId,a.agentId):void 0),h=I(`stream`),g=I(!1),_=async e=>{if(a.agentId){g.value=!0;try{await f.updateChannelAgent(a.channelId,a.agentId,{enabled:+(e===!0),reason:i(e===!0?`agentInspectorDrawer.kgjqkq9014`:`agentInspectorDrawer.kpkjhbz015`)}),n.success(i(e===!0?`agentInspectorDrawer.k3n5z7y016`:`agentInspectorDrawer.k1dst50d017`))}catch(e){n.error($(e))}finally{g.value=!1}}},v=I(!1),x=async()=>{if(a.agentId){v.value=!0;try{await f.removeChannelAgent(a.channelId,a.agentId),n.success(i(`agentInspectorDrawer.kane5dq018`)),o.value=!1,s(`removed`,a.agentId)}catch(e){n.error($(e))}finally{v.value=!1}}},{blocks:D}=Ka(()=>a.channelId,{predicate:e=>e.agentId===a.agentId,resetKey:()=>a.agentId,raw:!0}),A=E(()=>{let e=u.tasks[a.channelId]??[],t=a.agentId?e.filter(e=>e.assigneeId===a.agentId):[];return{working:t.filter(e=>[`WORKING`,`ASSIGNED`].includes(e.state)),queued:t.filter(e=>e.state===`SUBMITTED`),done:t.filter(e=>[`COMPLETED`,`FAILED`,`CANCELED`].includes(e.state))}}),M=E(()=>m.value?.currentTaskId?u.taskTitle(a.channelId,m.value.currentTaskId):``),N=E(()=>a.agentId&&(d.focusAgents[a.channelId]??null)===a.agentId),ee=()=>{a.agentId&&(d.setFocusAgent(a.channelId,N.value?null:a.agentId),n.success(N.value?i(`agentInspectorDrawer.k1p055kl019`):i(`agentInspectorDrawer.ky2fhkf020`)))},L=I(``),z=I(`immediate`),B=I(!1),V=I(!1),W=async()=>{if(!(!a.agentId||!L.value.trim())){V.value=!0;try{await f.injectMessage(a.channelId,{toAgentId:a.agentId,text:L.value.trim(),priority:z.value,requireReply:B.value}),n.success(i(`agentInspectorDrawer.k1y2jrsr021`)),L.value=``}catch(e){n.error($(e))}finally{V.value=!1}}},G={idle:`var(--tone-success-dot)`,busy:`var(--tone-info-dot)`,stopped:`var(--tone-neutral-dot)`};return(t,n)=>{let i=Xr,a=r,s=Va,u=Ye,d=Jt,f=rc,C=Ze,E=ct,I=Qe,q=He,J=Fe,ne=nt,re=ot;return b(),F(re,{open:o.value,"onUpdate:open":n[5]||=e=>o.value=e,placement:`right`,width:H(c),title:H(m)?`${H(m).name}(${H(m).role})`:`Agent`,class:`agent-drawer aw-resizable-drawer`},{default:R(()=>[w(i,{variant:`bare`,class:`drawer-resizer`,label:t.$t(`agentInspectorDrawer.k6hcbxi001`),onResize:l,onReset:n[0]||=e=>c.value=Pl},null,8,[`label`]),H(m)?(b(),k(j,{key:0},[O(`div`,_l,[O(`span`,{class:`dot`,style:p({background:G[H(m).state]??`var(--tone-neutral-dot)`})},null,4),O(`span`,vl,y(H(m).state),1),O(`span`,yl,y(H(m).harness),1),O(`span`,bl,y(t.$t(`agentInspectorDrawer.k498bf010`))+y(H(m).queued??0)+` · `+y(t.$t(`agentInspectorDrawer.k3ypnl022`))+y(H(m).completed??0),1),w(a,{size:`small`,type:H(N)?`primary`:`default`,onClick:ee},{default:R(()=>[U(y(H(N)?t.$t(`agentInspectorDrawer.k1bs9x43013`):t.$t(`agentInspectorDrawer.k16t80ax023`)),1)]),_:1},8,[`type`])]),H(M)?(b(),k(`div`,xl,y(t.$t(`agentInspectorDrawer.kk653nv011`))+y(H(M))+`」 `,1)):P(``,!0),w(C,{"active-key":H(h),"onUpdate:activeKey":n[1]||=e=>T(h)?h.value=e:null,size:`small`,class:`drawer-tabs`},{default:R(()=>[w(u,{key:`stream`,tab:`独立输出流`},{default:R(()=>[O(`div`,Sl,[H(D).length===0?(b(),k(`div`,Cl,y(t.$t(`agentInspectorDrawer.k1frr9es004`)),1)):P(``,!0),(b(!0),k(j,null,S(H(D),e=>(b(),F(s,{key:e.id,block:e},null,8,[`block`]))),128))])]),_:1}),w(u,{key:`queue`},{tab:R(()=>[U(y(t.$t(`agentInspectorDrawer.k1axbijb005`))+` `,1),w(d,{count:H(A).working.length,"number-style":{backgroundColor:`var(--tone-info-dot)`},size:`small`},null,8,[`count`])]),default:R(()=>[(b(!0),k(j,null,S([[`执行中`,H(A).working],[`待执行`,H(A).queued],[`已完成`,H(A).done]],e=>(b(),k(`div`,{key:e[0],class:`queue-group`},[O(`div`,wl,y(e[0])+`(`+y(e[1].length)+`) `,1),(b(!0),k(j,null,S(e[1],e=>(b(),k(`div`,{key:e.id,class:`queue-task`},[O(`span`,Tl,y(e.state),1),O(`span`,El,y(e.title),1),O(`span`,Dl,y(e.progress)+`%`,1)]))),128)),e[1].length===0?(b(),k(`div`,Ol,` (`+y(t.$t(`agentInspectorDrawer.k43rxk012`)),1)):P(``,!0)]))),128))]),_:1}),w(u,{key:`memory`,tab:`记忆`},{default:R(()=>[w(f,{"channel-id":e.channelId,"agent-id":e.agentId??void 0},null,8,[`channel-id`,`agent-id`])]),_:1})]),_:1},8,[`active-key`]),O(`div`,kl,[H(m).role===`worker`?(b(),k(`div`,Al,[O(`span`,jl,y(t.$t(`agentInspectorDrawer.kas9m5q006`)),1),w(E,{checked:(H(m).enabled??1)===1,loading:H(g),"checked-children":`启用`,"un-checked-children":`停用`,size:`small`,onChange:_},null,8,[`checked`,`loading`]),w(I,{title:t.$t(`agentInspectorDrawer.k1ofh789002`),"ok-text":`移除`,"cancel-text":`取消`,onConfirm:x},{default:R(()=>[w(a,{size:`small`,danger:``,type:`text`,loading:H(v)},{default:R(()=>[U(y(t.$t(`agentInspectorDrawer.k1hrtylo007`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])])):P(``,!0),O(`div`,Ml,[w(q,{value:H(L),"onUpdate:value":n[2]||=e=>T(L)?L.value=e:null,"auto-size":{minRows:1,maxRows:3},placeholder:t.$t(`agentInspectorDrawer.kwsotdg003`),onKeydown:K(te(W,[`ctrl`,`prevent`]),[`enter`])},null,8,[`value`,`placeholder`,`onKeydown`]),O(`div`,Nl,[w(J,{value:H(z),"onUpdate:value":n[3]||=e=>T(z)?z.value=e:null,size:`small`,options:[{value:`immediate`,label:`即时`},{value:`task`,label:`排队`}]},null,8,[`value`]),w(ne,{checked:H(B),"onUpdate:checked":n[4]||=e=>T(B)?B.value=e:null},{default:R(()=>[U(y(t.$t(`agentInspectorDrawer.k1jxt8vh008`)),1)]),_:1},8,[`checked`]),w(a,{type:`primary`,size:`small`,loading:H(V),onClick:W},{default:R(()=>[U(y(t.$t(`agentInspectorDrawer.k3xkc7009`)),1)]),_:1},8,[`loading`])])])])],64)):P(``,!0)]),_:1},8,[`open`,`width`,`title`])}}}),[[`__scopeId`,`data-v-69681b3a`]]),{__name:`WorkshopAgentInspectorDrawer`}),Il={class:`head`},Ll={class:`meta`},Rl={class:`meta`},zl={key:0,class:`failure-reason`},Bl={class:`fr-text`},Vl={key:2,class:`route-reason`},Hl={class:`route-label`},Ul={class:`route-text`},Wl={key:0,class:`empty`},Gl={class:`tl-time`},Kl={key:1,class:`tl-progress`},ql={key:0,class:`empty`},Jl={key:0,class:`empty`},Yl={class:`child-title`},Xl={class:`child-meta`},Zl={class:`raw`},Ql=560,$l=Object.assign(Q(v({__name:`TaskInspectorDrawer`,props:N({channelId:{},taskId:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:[`update:open`],setup(e){let{t}=Y(),i=e,a=C(e,`open`),o=kt(`aw.drawer.taskW`,Ql),s=e=>{o.value=Math.min(960,Math.max(380,o.value-e))},c=yt(),u=xt(),d=Tt(),f=I(null),p=I(!1),m=async()=>{if(i.taskId){p.value=!0;try{let e=await d.getTask(i.taskId);f.value=e.data??null}finally{p.value=!1}}};l(()=>[a.value,i.taskId],()=>{a.value&&i.taskId&&m()});let h=E(()=>i.taskId?c.taskById(i.channelId,i.taskId):void 0),g=E(()=>i.taskId?(c.tasks[i.channelId]??[]).filter(e=>e.parentId===i.taskId):[]),_=E(()=>i.taskId?u.ring(i.channelId).items.filter(e=>e.taskId===i.taskId&&(e.type===`task.status`||e.type===`task.progress`)):[]),v=I(!1),x=async()=>{if(i.taskId){v.value=!0;try{await d.cancelTask(i.taskId),n.success(t(`taskInspectorDrawer.k1xj595a013`)),m()}catch(e){n.error($(e))}finally{v.value=!1}}},T=I(!1),D=async()=>{if(i.taskId){T.value=!0;try{await d.retryTask(i.taskId),n.success(t(`taskInspectorDrawer.ke7bh8u014`)),m()}catch(e){n.error($(e))}finally{T.value=!1}}},A=e=>c.agentById(i.channelId,e)?.name??e.slice(0,8),M=E(()=>{let e=f.value;if(!e||e.state!==`FAILED`)return``;let t=e.history??[];for(let e=t.length-1;e>=0;e--){let n=(t[e]?.parts??[]).map(e=>e.text??``).join(` `).trim();if(n)return n.slice(0,500)}return e.description?.trim()??``}),N={SUBMITTED:`default`,ASSIGNED:`processing`,WORKING:`processing`,WAITING:`warning`,COMPLETED:`success`,FAILED:`error`,CANCELED:`default`};return(e,t)=>{let n=Xr,i=qe,c=r,l=Qe,u=it,d=rt,m=Ye,C=Qi,E=Ze,ee=st,I=ot;return b(),F(I,{open:a.value,"onUpdate:open":t[1]||=e=>a.value=e,placement:`right`,width:H(o),title:H(f)?.title??H(h)?.title??`任务详情`,class:`aw-resizable-drawer`},{default:R(()=>[w(n,{variant:`bare`,class:`drawer-resizer`,label:e.$t(`taskInspectorDrawer.k6hcbxi001`),onResize:s,onReset:t[0]||=e=>o.value=Ql},null,8,[`label`]),w(ee,{spinning:H(p)},{default:R(()=>[H(f)||H(h)?(b(),k(j,{key:0},[O(`div`,Il,[w(i,{color:N[H(h)?.state??H(f)?.state??``]??`default`},{default:R(()=>[U(y(H(h)?.state??H(f)?.state),1)]),_:1},8,[`color`]),O(`span`,Ll,y(e.$t(`taskInspectorDrawer.k3o48o4010`))+y(A(H(h)?.assigneeId??H(f)?.assigneeId??``)),1),O(`span`,Rl,y(H(h)?.progress??H(f)?.progress??0)+`%`,1),t[2]||=O(`div`,{class:`spacer`},null,-1),(H(h)?.state??H(f)?.state)===`FAILED`?(b(),F(l,{key:0,title:e.$t(`taskInspectorDrawer.kns2a6x002`),onConfirm:D},{default:R(()=>[w(c,{size:`small`,loading:H(T)},{default:R(()=>[U(y(e.$t(`taskInspectorDrawer.k1lcgf2b005`)),1)]),_:1},8,[`loading`])]),_:1},8,[`title`])):P(``,!0),w(l,{title:e.$t(`taskInspectorDrawer.k1a7jqb9003`),onConfirm:x},{default:R(()=>[w(c,{danger:``,size:`small`,loading:H(v),disabled:[`COMPLETED`,`CANCELED`,`FAILED`].includes(H(h)?.state??H(f)?.state??``)},{default:R(()=>[U(y(e.$t(`taskInspectorDrawer.k1bs0t9b006`)),1)]),_:1},8,[`loading`,`disabled`])]),_:1},8,[`title`])]),(H(h)?.state??H(f)?.state)===`FAILED`&&H(M)?(b(),k(`div`,zl,[t[3]||=O(`span`,{class:`fr-label`},`失败原因`,-1),O(`span`,Bl,y(H(M)),1)])):P(``,!0),H(f)?.description?(b(),F(d,{key:1,column:1,size:`small`,class:`desc`},{default:R(()=>[w(u,{label:e.$t(`taskInspectorDrawer.k40gkk004`)},{default:R(()=>[U(y(H(f).description),1)]),_:1},8,[`label`])]),_:1})):P(``,!0),H(f)?.routeReason?(b(),k(`div`,Vl,[O(`span`,Hl,y(e.$t(`taskInspectorDrawer.k1knph8c007`)),1),O(`span`,Ul,y(H(f).routeReason),1)])):P(``,!0),w(E,{size:`small`,"default-active-key":`timeline`},{default:R(()=>[w(m,{key:`timeline`,tab:`状态时间线`},{default:R(()=>[H(_).length===0?(b(),k(`div`,Wl,y(e.$t(`taskInspectorDrawer.kr3vr2x008`)),1)):P(``,!0),(b(!0),k(j,null,S(H(_),t=>(b(),k(`div`,{key:`${t.seq}-${t.type}`,class:`tl-row`},[O(`span`,Gl,y(H(Dt)(t.at)),1),t.type===`task.status`?(b(),F(i,{key:0,color:N[t.payload.state]??`default`,class:`state`},{default:R(()=>[U(y(t.payload.state),1)]),_:2},1032,[`color`])):(b(),k(`span`,Kl,y(e.$t(`taskInspectorDrawer.k485ye011`))+` `+y(t.payload.progress)+`%`,1))]))),128))]),_:1}),w(m,{key:`artifacts`,tab:e.$t(`taskInspectorDrawer.kkp77tf015`,{p0:H(f)?.artifacts.length??0})},{default:R(()=>[H(f)?.artifacts.length?P(``,!0):(b(),k(`div`,ql,` (`+y(e.$t(`taskInspectorDrawer.k401n2012`)),1)),(b(!0),k(j,null,S(H(f)?.artifacts??[],e=>(b(),F(C,{key:e.artifactId,artifact:e},null,8,[`artifact`]))),128))]),_:1},8,[`tab`]),w(m,{key:`children`,tab:e.$t(`taskInspectorDrawer.khnua62016`,{p0:H(g).length})},{default:R(()=>[H(g).length===0?(b(),k(`div`,Jl,y(e.$t(`taskInspectorDrawer.k1kmqn5u009`)),1)):P(``,!0),(b(!0),k(j,null,S(H(g),e=>(b(),k(`div`,{key:e.id,class:`child-row`},[w(i,{color:N[e.state]??`default`,class:`state`},{default:R(()=>[U(y(e.state),1)]),_:2},1032,[`color`]),O(`span`,Yl,y(e.title),1),O(`span`,Xl,y(A(e.assigneeId))+` · `+y(e.progress)+`%`,1)]))),128))]),_:1},8,[`tab`]),w(m,{key:`raw`,tab:e.$t(`taskInspectorDrawer.kxj74io017`,{p0:H(f)?.artifacts.reduce((e,t)=>e+t.parts.length,0)??0})},{default:R(()=>[O(`pre`,Zl,y(JSON.stringify(H(f)?.artifacts,null,2)?.slice(0,4e3)),1)]),_:1},8,[`tab`])]),_:1})],64)):P(``,!0)]),_:1},8,[`spinning`])]),_:1},8,[`open`,`width`,`title`])}}}),[[`__scopeId`,`data-v-4130ad00`]]),{__name:`WorkshopTaskInspectorDrawer`}),eu={class:`dbg`},tu={class:`row`},nu={class:`row`},ru={class:`row ops`},iu={class:`output`},au=600,ou=Object.assign(Q(v({__name:`A2aRpcDebugger`,props:N({channelId:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:[`update:open`],setup(e){let{t}=Y(),i=e,a=C(e,`open`),o=kt(`aw.drawer.a2aW`,au),s=e=>{o.value=Math.min(1040,Math.max(420,o.value-e))},c=yt(),u=E(()=>c.agents[i.channelId]??[]),d=I(``);l(u,e=>{!d.value&&e.length>0&&(d.value=e[0]?.agentId??``)},{immediate:!0});let f=I(`tasks/list`),p=[{value:`tasks/list`,label:`tasks/list`},{value:`tasks/get`,label:`tasks/get`},{value:`tasks/send`,label:`tasks/send`},{value:`tasks/sendSubscribe`,label:`tasks/sendSubscribe(SSE 流)`,sse:!0},{value:`message/send`,label:`message/send(需 token)`},{value:`agent/getCard`,label:`agent/getCard`}],m=I(`{}`),h=I(``),g=I(!1),_=I(``),v=()=>{switch(f.value){case`tasks/send`:case`tasks/sendSubscribe`:return{message:{role:`ROLE_USER`,parts:[{text:t(`a2aRpcDebugger.kq00d3v005`)}]}};case`tasks/get`:return{taskId:`<taskId>`};case`message/send`:return{message:{role:`ROLE_USER`,parts:[{text:t(`a2aRpcDebugger.k1kgwib8006`)}]}};default:return{}}},x=e=>{_.value+=`${e}\n`},S=async e=>{let n=await fetch(`/api/workshop/a2a/${d.value}/rpc`,{method:`POST`,headers:{"content-type":`application/json`,accept:`text/event-stream`,...h.value?{authorization:`Bearer ${h.value}`}:{}},body:JSON.stringify(e)});if(x(`▶ HTTP ${n.status} ${n.headers.get(`content-type`)??``}`),!n.body){x(await n.text());return}let r=n.body.getReader(),i=new TextDecoder,a=``;for(;;){let{done:e,value:t}=await r.read();if(e)break;a+=i.decode(t,{stream:!0});let n=a.split(`
|
|
16
|
-
|
|
17
|
-
`);a=n.pop()??``;for(let e of n){let t=e.split(`
|
|
18
|
-
`).find(e=>e.startsWith(`data:`));t&&x(`◀ ${t.slice(5).trim().slice(0,400)}`)}}x(t(`a2aRpcDebugger.k1e1hi4u007`))},D=async()=>{if(!d.value){n.warning(t(`a2aRpcDebugger.k1vryfv008`));return}let e;try{e=JSON.parse(m.value||`{}`)}catch{n.error(`params 不是合法 JSON`);return}g.value=!0,_.value=``;let r={jsonrpc:`2.0`,id:Date.now(),method:f.value,params:e};try{if(f.value===`tasks/sendSubscribe`)await S(r);else{let e=await fetch(`/api/workshop/a2a/${d.value}/rpc`,{method:`POST`,headers:{"content-type":`application/json`,...h.value?{authorization:`Bearer ${h.value}`}:{}},body:JSON.stringify(r)}),t=await e.text();x(`▶ POST /a2a/${d.value.slice(0,8)}/rpc ${f.value} → HTTP ${e.status}`),x(t.slice(0,4e3))}}catch(e){x(`✖ ${$(e)}`)}finally{g.value=!1}};return(e,t)=>{let n=Xr,i=Re,c=Ve,l=He,x=r,S=ot;return b(),F(S,{open:a.value,"onUpdate:open":t[6]||=e=>a.value=e,placement:`right`,width:H(o),title:`A2A RPC / SSE 调试器`,class:`aw-resizable-drawer`},{default:R(()=>[w(n,{variant:`bare`,class:`drawer-resizer`,label:e.$t(`a2aRpcDebugger.k6hcbxi001`),onResize:s,onReset:t[0]||=e=>o.value=au},null,8,[`label`]),O(`div`,eu,[O(`div`,tu,[w(i,{value:H(d),"onUpdate:value":t[1]||=e=>T(d)?d.value=e:null,class:`agent`,placeholder:e.$t(`a2aRpcDebugger.k34cz76002`),options:H(u).map(e=>({value:e.agentId,label:`${e.name}(${e.role})`}))},null,8,[`value`,`placeholder`,`options`]),w(i,{value:H(f),"onUpdate:value":t[2]||=e=>T(f)?f.value=e:null,class:`method`,options:p},null,8,[`value`])]),w(c,{value:H(h),"onUpdate:value":t[3]||=e=>T(h)?h.value=e:null,size:`small`,placeholder:`Bearer token(message/send 需要;留空匿名)`,class:`token`},null,8,[`value`]),O(`div`,nu,[w(l,{value:H(m),"onUpdate:value":t[4]||=e=>T(m)?m.value=e:null,rows:6,class:`params`},null,8,[`value`])]),O(`div`,ru,[w(x,{size:`small`,onClick:t[5]||=e=>m.value=JSON.stringify(v(),null,2)},{default:R(()=>[U(y(e.$t(`a2aRpcDebugger.k1bqe2pj003`)),1)]),_:1}),w(x,{type:`primary`,size:`small`,loading:H(g),onClick:D},{default:R(()=>[U(y(e.$t(`a2aRpcDebugger.k405w8004`)),1)]),_:1},8,[`loading`])]),O(`pre`,iu,y(H(_)||`(输出;sendSubscribe 将逐条渲染 SSE 事件)`),1)])]),_:1},8,[`open`,`width`])}}}),[[`__scopeId`,`data-v-56f080d0`]]),{__name:`WorkshopA2aRpcDebugger`}),su={class:`palette`},cu={class:`palette-search`},lu=[`placeholder`],uu={class:`palette-list`},du=[`onClick`,`onMousemove`],fu={class:`pi-label`},pu={key:0,class:`pi-hint`},mu={key:0,class:`palette-empty`},hu={class:`palette-foot`},gu=Object.assign(Q(v({__name:`CommandPalette`,props:N({wsId:{}},{open:{type:Boolean,default:!1},openModifiers:{}}),emits:N([`setView`,`openA2aDebug`,`compose`],[`update:open`]),setup(e,{emit:t}){let{t:n}=Y(),r=e,i=C(e,`open`),a=dt(),o=yt(),s=xt(),c=t,u=I(``),d=I(0),f=E(()=>{let e=[{key:`nav-home`,label:n(`commandPalette.kmxxk3u006`),hint:`/workshop`,run:()=>re(`/workshop`)},{key:`nav-agents`,label:n(`commandPalette.k4s8e5q007`),hint:`/workshop/agents`,run:()=>re(`/workshop/agents`)},{key:`nav-teams`,label:`前往:AgentTeam 编组库`,hint:`/workshop/teams`,run:()=>re(`/workshop/teams`)},{key:`nav-channel-templates`,label:n(`commandPalette.k1ezz11x008`),hint:`/workshop/channel-templates`,run:()=>re(`/workshop/channel-templates`)},{key:`view-timeline`,label:n(`commandPalette.k143z9bg009`),run:()=>{c(`setView`,`timeline`)}},{key:`view-lanes`,label:`视图:Agent lanes`,run:()=>{c(`setView`,`lanes`)}},{key:`view-board`,label:n(`commandPalette.k13ztmim010`),run:()=>{c(`setView`,`board`)}},{key:`view-split`,label:n(`commandPalette.k21cpnp011`),run:()=>{c(`setView`,`split`)}},{key:`act-compose`,label:n(`commandPalette.k1tm54il012`),hint:`⌘I`,run:()=>{c(`compose`)}},{key:`act-a2a`,label:`动作:A2A RPC/SSE 调试器`,run:()=>{c(`openA2aDebug`)}}];for(let t of a.workspaces.find(e=>e.id===r.wsId)?.channelIds??[]){let i=o.channels[t]?.name??t.slice(0,8);e.push({key:`ch-${t}`,label:n(`commandPalette.k1nz14ux013`,{p0:i}),hint:t.slice(0,8),run:()=>a.setActiveChannel(r.wsId,t)})}let t=a.workspaces.find(e=>e.id===r.wsId)?.activeChannelId;if(t){let r=s.filters[t]??`all`;for(let i of[`all`,`messages`,`tasks`,`errors`])i!==r&&e.push({key:`filter-${i}`,label:n(`commandPalette.k1d8xtez014`,{p0:i}),run:()=>s.setFilter(t,i)})}return e}),p=E(()=>{let e=u.value.trim().toLowerCase();return e?f.value.filter(t=>t.label.toLowerCase().includes(e)||(t.hint??``).toLowerCase().includes(e)):f.value});l(p,()=>{d.value=0});let m=e=>{let t=e??p.value[d.value];t&&(t.run(),i.value=!1,u.value=``)},h=e=>{e.key===`ArrowDown`?(e.preventDefault(),d.value=Math.min(d.value+1,p.value.length-1)):e.key===`ArrowUp`?(e.preventDefault(),d.value=Math.max(d.value-1,0)):e.key===`Enter`?(e.preventDefault(),m()):e.key===`Escape`&&(i.value=!1)},v=e=>{(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`k`&&(e.preventDefault(),i.value=!i.value,u.value=``)};return _(()=>window.addEventListener(`keydown`,v)),g(()=>window.removeEventListener(`keydown`,v)),(e,t)=>(b(),F(L,{to:`body`},[i.value?(b(),k(`div`,{key:0,class:`palette-mask`,onClick:t[1]||=te(e=>i.value=!1,[`self`])},[O(`div`,su,[O(`div`,cu,[t[2]||=O(`span`,{class:`i-tabler-search ps-icon`},null,-1),ee(O(`input`,{"onUpdate:modelValue":t[0]||=e=>T(u)?u.value=e:null,class:`palette-input`,placeholder:e.$t(`commandPalette.k1nn6i83001`),autofocus:``,onKeydown:h},null,40,lu),[[q,H(u)]])]),O(`div`,uu,[(b(!0),k(j,null,S(H(p),(e,t)=>(b(),k(`button`,{key:e.key,type:`button`,class:x([`palette-item`,{selected:t===H(d)}]),onClick:t=>m(e),onMousemove:e=>d.value=t},[O(`span`,fu,y(e.label),1),e.hint?(b(),k(`span`,pu,y(e.hint),1)):P(``,!0)],42,du))),128)),H(p).length===0?(b(),k(`div`,mu,y(e.$t(`commandPalette.ktup4q4002`)),1)):P(``,!0)]),O(`div`,hu,[t[3]||=O(`kbd`,null,`↑↓`,-1),U(` `+y(e.$t(`commandPalette.k1kvl0fa003`))+` `,1),t[4]||=O(`kbd`,null,`↵`,-1),U(` `+y(e.$t(`commandPalette.k1e3ualj004`))+` `,1),t[5]||=O(`kbd`,null,`esc`,-1),U(` `+y(e.$t(`commandPalette.k3x62t005`)),1)])])])):P(``,!0)]))}}),[[`__scopeId`,`data-v-b72e120a`]]),{__name:`WorkshopCommandPalette`}),_u={class:`harness`},vu={class:`topbar`},yu={class:`ws-name`},bu=[`title`],xu={class:`right`},Su=[`title`],Cu=[`title`],wu=[`title`],Tu=[`data-state`],Eu={class:`seq`},Du={class:`main`},Ou={class:`left-scroll`},ku={class:`center-pane`},Au={key:1,class:`pane-empty`},ju={class:`pe-title`},Mu={class:`pe-sub`},Nu={key:1,class:`pane-loading`},Pu=248,Fu=300,Iu=Q(v({__name:`[wsId]`,setup(e){let{t}=Y();Et({layout:`default`});let n=ie(),r=E(()=>String(n.params.wsId)),i=lt(),a=dt(),o=I(!1);_(()=>{if(!i.isLoggedIn){re(`/workshop`);return}o.value=!0,a.loaded||a.load().catch(()=>{})});let s=yt(),{subscribe:c,unsubscribe:u,conn:d}=Ct(),{isDesktop:m}=ut(),h=E(()=>a.workspaces.find(e=>e.id===r.value)),v=E(()=>{let e=h.value;if(!e)return;let t=e.channelIds,n=e.activeChannelId;return n&&t.includes(n)?n:t[0]});l(()=>[r.value,h.value?.channelIds.join(`,`)??``],()=>{let e=new Set(h.value?.channelIds??[]);for(let t of e)c(t)},{immediate:!0}),l(()=>h.value?.channelIds.join(`,`)??``,(e,t)=>{if(t===void 0)return;let n=new Set(h.value?.channelIds??[]);for(let e of t.split(`,`).filter(Boolean))n.has(e)||u(e)}),g(()=>{for(let e of h.value?.channelIds??[])u(e)});let S=E(()=>d.state===`open`?`var(--tone-success-dot)`:d.state===`connecting`?`var(--tone-warning-dot)`:`var(--tone-danger-dot)`),C=E(()=>v.value?d.cursors[v.value]??0:0),D={1:`timeline`,2:`lanes`,3:`board`,4:`split`,5:`town`},A=new Set([`timeline`,`lanes`,`board`,`split`,`town`]),M=n.query.view,N=I(typeof M==`string`&&A.has(M)?M:`timeline`),ee=E(()=>{let e=[{value:`timeline`,label:t(`wsView.k3otu32010`)},{value:`lanes`,label:`Agent lanes`},{value:`board`,label:t(`wsView.k3ko7a8011`)},{value:`split`,label:t(`wsView.k3xbmo012`)},{value:`town`,label:t(`wsView.k1cz0pbw013`)}];return z.value?[...e,{value:`inspector`,label:`检查器`}]:e}),L=e=>{if(e.key===`Escape`&&z.value&&B.value){B.value=!1;return}if(e.metaKey||e.ctrlKey||e.altKey)return;let t=e.target;if(t&&(t.tagName===`INPUT`||t.tagName===`TEXTAREA`||t.isContentEditable))return;let n=D[e.key];!n||!v.value||(e.preventDefault(),N.value=n)};_(()=>window.addEventListener(`keydown`,L)),g(()=>window.removeEventListener(`keydown`,L));let R=I(!1);_(()=>{R.value=!0});let z=E(()=>R.value&&!m.value),B=I(!0),V=I(!0),W=e=>{B.value=e,V.value=e,e&&N.value===`inspector`&&(N.value=`timeline`)};_(()=>{m.value||W(!1)}),l(m,e=>W(e)),l(v,(e,t)=>{t!==void 0&&e!==t&&z.value&&(B.value=!1)});let G=kt(`aw.harness.leftW`,Pu),K=kt(`aw.harness.rightW`,Fu),te=e=>{G.value=Math.min(460,Math.max(220,G.value+e))},q=e=>{K.value=Math.min(560,Math.max(240,K.value-e))};te(0),q(0);let J=I(!1),ne=I(null),oe=e=>{ne.value=e,J.value=!0},se=e=>{a.setActiveChannel(r.value,e.channelId),oe(e.agentId)};f(`aw:open-agent`,se);let ce=I(!1),X=I(null),le=e=>{X.value=e,ce.value=!0},ue=I(!1),de=I(!1),fe=I(null),pe=()=>{fe.value?.querySelector(`textarea`)?.focus()};return ae({title:()=>`${h.value?.name??`Workspace`} · AgentWorkShop`}),(e,t)=>{let n=qn,i=Fe,o=Mr,c=Jr,l=Xr,u=go,f=Yo,m=Os,g=Vs,_=At,E=Vc,D=gl,A=Fl,M=$l,I=ou,R=gu;return b(),k(`div`,_u,[w(n),O(`div`,vu,[O(`div`,{class:`left`,tabindex:`-1`,onKeydown:L},[t[16]||=O(`span`,{class:`topbar-mark i-tabler-box`},null,-1),O(`span`,yu,y(H(h)?.name??`未知 Workspace`),1),H(v)?(b(),k(`span`,{key:0,class:`chan-chip`,title:H(v)},[t[15]||=O(`span`,{class:`chan-hash`},`#`,-1),U(y(H(s).channels[H(v)]?.name??H(v).slice(0,8)),1)],8,bu)):P(``,!0),H(v)?(b(),F(i,{key:1,value:H(N),"onUpdate:value":t[0]||=e=>T(N)?N.value=e:null,size:`small`,options:H(ee),class:`view-switch`,title:e.$t(`wsView.kqwckjr001`),onKeydown:L},null,8,[`value`,`options`,`title`])):P(``,!0)],32),O(`div`,xu,[H(z)?(b(),k(`button`,{key:0,class:x([`pane-toggle im toggle-left-narrow`,{off:!H(B)}]),title:`频道会话列表`,onClick:t[1]||=e=>B.value=!H(B)},[...t[17]||=[O(`span`,{class:`i-tabler-list-details im-pop`},null,-1)]],2)):P(``,!0),O(`button`,{class:x([`pane-toggle im toggle-left-desk`,{off:!H(B)}]),title:e.$t(`wsView.k1tsy2e4002`),onClick:t[2]||=e=>B.value=!H(B)},[...t[18]||=[O(`span`,{class:`i-tabler-layout-sidebar-left-collapse im-pop`},null,-1)]],10,Su),O(`button`,{class:x([`pane-toggle im toggle-right-desk`,{off:!H(V)}]),title:e.$t(`wsView.k1tx0ppf003`),onClick:t[3]||=e=>V.value=!H(V)},[...t[19]||=[O(`span`,{class:`i-tabler-layout-sidebar-right-collapse im-pop`},null,-1)]],10,Cu),O(`button`,{class:`pane-toggle im`,title:`A2A RPC/SSE 调试器`,onClick:t[4]||=e=>de.value=!0},[...t[20]||=[O(`span`,{class:`i-tabler-terminal-2 im-pop`},null,-1)]]),O(`button`,{class:`pane-toggle im`,title:e.$t(`wsView.k1cvg8sb004`),onClick:t[5]||=e=>ue.value=!0},[...t[21]||=[O(`span`,{class:`i-tabler-command im-pop`},null,-1)]],8,wu),O(`span`,{class:`dot`,style:p({background:H(S)})},null,4),O(`span`,{class:`ws-state`,"data-state":H(d).state},y(H(d).state),9,Tu),O(`span`,Eu,`seq `+y(H(C)),1)])]),O(`div`,Du,[H(z)&&H(B)?(b(),k(`div`,{key:0,class:`drawer-scrim`,onClick:t[6]||=e=>B.value=!1})):P(``,!0),H(B)?(b(),k(`div`,{key:1,class:`left-pane`,style:p({flexBasis:H(z)?`auto`:`${H(G)}px`})},[O(`div`,Ou,[w(o,{"ws-id":H(r)},null,8,[`ws-id`])]),w(c,{"ws-id":H(r),onOpenAgent:se},null,8,[`ws-id`])],4)):P(``,!0),H(B)&&!H(z)?(b(),F(l,{key:2,label:e.$t(`wsView.k1fkfvra005`),onResize:te,onReset:t[7]||=e=>G.value=Pu},null,8,[`label`])):P(``,!0),O(`div`,ku,[H(v)?(b(),k(j,{key:0},[H(N)===`timeline`?(b(),F(u,{key:0,"channel-id":H(v)},null,8,[`channel-id`])):H(N)===`lanes`?(b(),F(f,{key:1,"channel-id":H(v)},null,8,[`channel-id`])):H(N)===`board`?(b(),F(m,{key:2,"channel-id":H(v),onOpenTask:le},null,8,[`channel-id`])):H(N)===`split`?(b(),F(g,{key:3,"ws-id":H(r),onOpenTask:le},null,8,[`ws-id`])):H(N)===`town`?(b(),F(_,{key:4,"channel-id":H(v)},null,8,[`channel-id`])):H(N)===`inspector`&&H(z)?(b(),F(E,{key:5,"channel-id":H(v),onOpenAgent:oe,onOpenTask:le},null,8,[`channel-id`])):P(``,!0)],64)):(b(),k(`div`,Au,[t[23]||=O(`span`,{class:`pe-icon i-tabler-messages`},null,-1),O(`div`,ju,[U(y(e.$t(`wsView.klzbtyp007`))+` `,1),t[22]||=O(`span`,{class:`aw-serif-accent-italic`},`Channel`,-1),U(` `+y(e.$t(`wsView.k3zaj4008`)),1)]),O(`div`,Mu,y(e.$t(`wsView.k1us0cxy009`)),1)]))]),H(V)&&!H(z)?(b(),F(l,{key:3,label:e.$t(`wsView.kwqb0st006`),onResize:q,onReset:t[8]||=e=>K.value=Fu},null,8,[`label`])):P(``,!0),H(V)&&!H(z)?(b(),k(`div`,{key:4,class:x([`right-pane`,{empty:H(a).loaded&&!H(v)}]),style:p({flexBasis:`${H(K)}px`})},[H(v)?(b(),F(E,{key:0,"channel-id":H(v),onOpenAgent:oe,onOpenTask:le},null,8,[`channel-id`])):H(a).loaded?P(``,!0):(b(),k(`div`,Nu,` 正在加载 Workspace… `))],6)):P(``,!0)]),H(v)?(b(),k(`div`,{key:0,ref_key:`composerBox`,ref:fe,class:`composer-pane`},[w(D,{"channel-id":H(v)},null,8,[`channel-id`]),w(A,{open:H(J),"onUpdate:open":t[9]||=e=>T(J)?J.value=e:null,"channel-id":H(v)??``,"agent-id":H(ne)},null,8,[`open`,`channel-id`,`agent-id`]),w(M,{open:H(ce),"onUpdate:open":t[10]||=e=>T(ce)?ce.value=e:null,"channel-id":H(v)??``,"task-id":H(X)},null,8,[`open`,`channel-id`,`task-id`]),w(I,{open:H(de),"onUpdate:open":t[11]||=e=>T(de)?de.value=e:null,"channel-id":H(v)??``},null,8,[`open`,`channel-id`]),w(R,{open:H(ue),"onUpdate:open":t[12]||=e=>T(ue)?ue.value=e:null,"ws-id":H(r),onSetView:t[13]||=e=>N.value=e,onOpenA2aDebug:t[14]||=e=>de.value=!0,onCompose:pe},null,8,[`open`,`ws-id`])],512)):P(``,!0)])}}}),[[`__scopeId`,`data-v-634670bb`]]);export{Iu as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t}from"./BU83-NnX.js";import{R as n,S as r,Ut as i,V as a,Vt as o,W as s,b as c,d as l,f as u,h as d,i as f,m as p,p as m,pt as h,tt as g,y as _}from"./CSkxz2NX.js";import{f as v}from"./D6uzXueg.js";import{s as y}from"./YnQxK3eG.js";import{n as b}from"./KZQX7xoM.js";import{t as ee}from"./DzbFpZRk.js";import{t as te}from"./Dz_Q3Lpw2.js";import{t as ne}from"./CClOy-Hz2.js";import{t as re}from"./DIaZ2PTo2.js";import{t as x}from"./BDNMzG2s2.js";import{t as S}from"./D0ZBQrN_2.js";import{t as C}from"./zq5t1vyX.js";var w={class:`plugins-page`},T={class:`aw-page-head`},ie={class:`pg-sub`},ae={class:`pg-stats`},oe={class:`stat`},E={class:`stat`},D={class:`stat`},O={key:1,class:`pg-empty`},k={class:`pg-empty-t`},A={class:`pg-grid aw-stagger`},j=[`onClick`],M={class:`card-head`},N={class:`card-name`},P={class:`card-ver`},F={class:`card-desc`},I={class:`card-tags`},L={key:0,class:`tag client`},R={key:0,class:`card-routes`},z={class:`detail`},B={class:`scope-hint`},V={key:0},H={key:1,style:{color:`#ff6b6b`}},U={key:0,class:`dim`},W=x(r({__name:`index`,setup(r){let{t:x}=b(),W=re(),G=h([]),K=h([]),q=h(!1),J=h(``),Y=h(!1),X=h(null);function Z(){let e=W.token;return e?{authorization:`Bearer ${e}`}:{}}async function Q(){q.value=!0;try{let e=await y(`/api/workshop/plugins`,{headers:Z()});G.value=e.plugins??[],K.value=e.failures??[]}catch(t){e.error(S(t,x(`plugins.loadFail`)))}finally{q.value=!1}}async function se(t){J.value=t.name;try{let n=await y(`/api/workshop/plugins/${t.name}/${t.enabled?`disable`:`enable`}`,{method:`POST`,headers:Z()});if(n.code!==0||!n.data)throw Error(x(`plugins.enableFail`));t.enabled=n.data.enabled,e.success(`${t.name} · ${n.data.enabled?x(`plugins.enabled`):x(`plugins.disabled`)}`),setTimeout(Q,800)}catch(t){e.error(S(t,x(`plugins.enableFail`)))}finally{J.value=``}}let ce=l(()=>G.value.filter(e=>e.enabled).length),le=l(()=>G.value.filter(e=>e.hasClient).length);function $(e){return x(e===`project`?`plugins.scopeProject`:`plugins.scopeUser`)}function ue(e){X.value=e,Y.value=!0}return n(Q),(e,n)=>{let r=t,l=ee,h=C,y=ne,b=te;return a(),d(`div`,w,[u(`header`,T,[u(`div`,null,[n[2]||=u(`p`,{class:`aw-kicker`},` agentworkshop / plugins `,-1),u(`h1`,null,i(e.$t(`plugins.title`)),1),u(`p`,ie,i(e.$t(`plugins.subtitle`)),1)]),u(`div`,ae,[u(`span`,oe,[_(i(e.$t(`plugins.enabled`))+` `,1),u(`b`,null,i(ce.value),1)]),u(`span`,E,[_(i(e.$t(`plugins.hasClient`))+` `,1),u(`b`,null,i(le.value),1)]),u(`span`,D,[_(i(e.$t(`plugins.routes`))+` `,1),u(`b`,null,i(G.value.reduce((e,t)=>e+t.routes.length,0)),1)]),c(r,{size:`small`,loading:q.value,onClick:Q},{default:g(()=>[_(i(e.$t(`plugins.refresh`)),1)]),_:1},8,[`loading`])])]),K.value.length?(a(),m(l,{key:0,type:`error`,"show-icon":``,class:`pg-failures`,message:e.$t(`plugins.loadFailures`,{n:K.value.length})},{description:g(()=>[(a(!0),d(f,null,s(K.value,e=>(a(),d(`div`,{key:e.source,class:`fail-line`},i(e.source)+` — `+i(e.error),1))),128))]),_:1},8,[`message`])):p(``,!0),!G.value.length&&!q.value?(a(),d(`div`,O,[n[3]||=u(`span`,{class:`i-tabler-puzzle pg-empty-ico`},null,-1),u(`p`,k,i(e.$t(`plugins.empty`)),1)])):p(``,!0),G.value.length?(a(),m(h,{key:2,"slot-name":`plugins.page`})):p(``,!0),u(`div`,A,[(a(!0),d(f,null,s(G.value,t=>(a(),d(`article`,{key:`${t.scope}:${t.name}`,class:o([`pg-card aw-liftable`,{"is-off":!t.enabled}]),onClick:e=>ue(t)},[u(`div`,M,[u(`span`,N,i(t.name),1),u(`span`,P,i(t.version),1),c(y,{checked:t.enabled,loading:J.value===t.name,size:`small`,onClick:n[0]||=v(()=>{},[`stop`]),onChange:e=>se(t)},null,8,[`checked`,`loading`,`onChange`])]),u(`p`,F,i(t.description||`—`),1),u(`div`,I,[u(`span`,{class:o([`tag`,t.scope])},i($(t.scope)),3),u(`span`,{class:o([`tag`,t.enabled?`on`:`off`])},i(t.enabled?e.$t(`plugins.enabled`):e.$t(`plugins.disabled`)),3),t.hasClient?(a(),d(`span`,L,i(e.$t(`plugins.hasClient`)),1)):p(``,!0)]),t.routes.length?(a(),d(`div`,R,[(a(!0),d(f,null,s(t.routes,e=>(a(),d(`code`,{key:e.method+e.path},i(e.method)+` `+i(e.path),1))),128))])):p(``,!0)],10,j))),128))]),c(b,{open:Y.value,"onUpdate:open":n[1]||=e=>Y.value=e,title:X.value?.name,width:`460`},{default:g(()=>[X.value?(a(),d(f,{key:0},[u(`dl`,z,[n[4]||=u(`dt`,null,`version`,-1),u(`dd`,null,i(X.value.version),1),n[5]||=u(`dt`,null,`scope`,-1),u(`dd`,null,i($(X.value.scope)),1),u(`dd`,B,i(X.value.scope===`project`?e.$t(`plugins.scopeBuiltinHint`):e.$t(`plugins.scopeUserHint`)),1),n[6]||=u(`dt`,null,`enabled`,-1),u(`dd`,null,i(X.value.enabled),1),n[7]||=u(`dt`,null,`client`,-1),u(`dd`,null,i(X.value.hasClient?`✓`:`—`),1),X.value.error?(a(),d(`dt`,V,` error `)):p(``,!0),X.value.error?(a(),d(`dd`,H,i(X.value.error),1)):p(``,!0)]),u(`h4`,null,i(e.$t(`plugins.routes`)),1),(a(!0),d(f,null,s(X.value.routes,e=>(a(),d(`code`,{key:e.method+e.path,class:`detail-route`},i(e.method)+` /api/plugins/`+i(X.value.name)+i(e.path),1))),128)),X.value.routes.length?p(``,!0):(a(),d(`p`,U,` — `))],64)):p(``,!0)]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-91571e48`]]);export{W as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,c as t,n}from"./BU83-NnX.js";import{S as r,Ut as i,V as a,Vt as ee,W as o,b as s,ct as c,d as l,dt as te,f as u,h as d,i as f,m as p,p as m,pt as h,tt as g,xt as _,y as v}from"./CSkxz2NX.js";import{d as ne}from"./BJHKLJJU.js";import{n as y}from"./DtYHUi5Z.js";import{n as b}from"./KZQX7xoM.js";import{n as re,r as ie,t as ae}from"./DDgJcSET.js";import{t as oe}from"./aWWIh8YL.js";import{t as se}from"./DBHNsT1Y.js";import{i as ce,n as le,t as ue}from"./BCGafdXT.js";import{r as de,t as fe}from"./CzlMDL5H.js";import{t as pe}from"./jZsY8yYz.js";import{n as me,t as he}from"./CYWVXZTS2.js";import{t as ge}from"./C4DWUZ6d2.js";import{t as _e}from"./DZtm4l-P2.js";import{t as ve}from"./CClOy-Hz2.js";import{t as x}from"./DIaZ2PTo2.js";import{t as S}from"./BDNMzG2s2.js";import{t as C}from"./D0ZBQrN_2.js";import{t as ye}from"./BN6iuJEg2.js";import{t as be}from"./CNs_Ozdc2.js";var xe={class:`page`},Se={class:`head`},Ce={class:`sub`},we={class:`toolbar`},Te={key:0,class:`admin-note`},Ee={class:`grid`},De={class:`card-head`},Oe={class:`name`},ke={class:`owner`},Ae={class:`members`},je={class:`member-name`},Me={class:`member-harness`},Ne=[`onClick`],Pe={class:`aw-mono`},Fe={key:0,class:`plug-builtin-tag`},Ie={class:`plug-hint`},Le={class:`plug-source`},Re={class:`plug-text`},ze={class:`plug-name`},Be={class:`aw-mono`},Ve={key:0,class:`plug-builtin-tag`},He={class:`plug-desc`},Ue={key:0,class:`plug-hint`},w=S(r({__name:`teams`,setup(r){let{t:S}=b();be({layout:`default`});let w=ye(),T=x(),E=h([]),D=h([]),We=h([]),O=h(!1),k=async()=>{O.value=!0;try{let[e,t,n]=await Promise.all([w.listTeams(),w.listTemplates(),w.listChannels()]);E.value=e?.data??[],D.value=t?.data??[],We.value=n?.data??[]}finally{O.value=!1}};k();let A=h({});(async()=>{try{let e=(await w.listHarnesses())?.data?.harnesses;if(Array.isArray(e)){let t={};for(let n of e)t[n.id]=n.available!==!1;A.value=t}}catch{}})();let Ge=e=>A.value[e.harness]===!1,Ke=l(()=>D.value.map(e=>{let t=Ge(e);return{value:e.id,label:t?`${e.name}(${e.harness} · ${S(`agents.notInstalled`)})`:`${e.name}(${e.harness})`,disabled:t}})),j=h(`all`),qe=l(()=>{let e=T.user?.id;switch(j.value){case`mine`:return E.value.filter(t=>t.ownerUserId===e);case`public`:return E.value.filter(e=>e.visibility===`public`);case`builtin`:return E.value.filter(e=>e.isBuiltin);default:return E.value}}),M=e=>!e.isBuiltin&&(e.ownerUserId===T.user?.id||T.isAdmin),N=e=>e.isBuiltin?{text:S(`teams.k3x23c018`),color:`default`,icon:`i-tabler-lock`}:e.visibility===`public`?{text:S(`teams.k3wv1t019`),color:`green`}:{text:S(`teams.k447jj020`),color:`default`},P=h(!1),F=te({name:``,description:``,visibility:`private`}),I=h([]),L=h({});(async()=>{try{let e=await w.listPlugins(),t=e?.plugins??e?.data?.plugins??[],n=(Array.isArray(t)?t:[]).filter(e=>e.enabled!==!1);I.value=n;let r={};for(let e of n)r[e.name]=!0;L.value=r}catch{}})();let R=l({get:()=>Object.entries(L.value).filter(([,e])=>e).map(([e])=>e),set:e=>{let t={};for(let n of I.value)t[n.name]=e.includes(n.name);L.value=t}}),Je=async()=>{if(!F.name.trim()){e.warning(S(`teams.k1bvcdo2021`));return}let t=Object.entries(L.value).map(([e,t])=>({name:e,enabled:t}));await w.createTeam({name:F.name.trim(),description:F.description||void 0,visibility:F.visibility,plugins:t}),e.success(S(`teams.k3n5hak022`)),P.value=!1,F.name=``,F.description=``,F.visibility=`private`,L.value=Object.fromEntries(Object.entries(L.value).map(([e])=>[e,!0])),k()},Ye=async(t,n)=>{try{await w.updateTeam(t.id,{visibility:n?`public`:`private`}),e.success(S(n?`teams.k1globhp023`:`teams.k1xxabaf024`)),k()}catch(t){e.error(C(t))}},z=h(!1),B=h(null),V=h(``),H=h(`worker`),Xe=e=>{B.value=e,V.value=``,H.value=`worker`,z.value=!0},Ze=async()=>{if(!B.value||!V.value){e.warning(S(`teams.k1kw4rtj025`));return}try{await w.addTeamMember(B.value.id,{agentId:V.value,role:H.value}),e.success(S(`teams.k3n5hzw026`)),z.value=!1,k()}catch(t){e.error(C(t))}},Qe=async(e,t)=>{await w.removeTeamMember(e.id,t),k()},U=h(!1),W=h(null),G=h(``),K=h(!1),$e=e=>{W.value=e,G.value=``,U.value=!0},et=async()=>{if(!W.value||!G.value){e.warning(`选择目标 Channel`);return}K.value=!0;try{let t=(await w.deployTeam(W.value.id,G.value))?.data?.agents?.length??0;e.success(S(`teams.kh90glh031`,{p0:t})),U.value=!1}catch(t){e.error(C(t))}finally{K.value=!1}},tt=async t=>{await w.deleteTeam(t.id),e.success(S(`teams.k1oxjrxx027`)),k()},q=h(!1),J=h(null),Y=h([]),X=h(`default`),Z=h(!1),Q=h(null),nt=e=>{J.value=e,Y.value=[],X.value=`default`,q.value=!0,$(e)},$=async t=>{Z.value=!0;try{let e=(await w.listTeamPlugins(t.id))?.data??{};Y.value=e.plugins??[],X.value=e.source===`explicit`?`explicit`:`default`}catch(t){e.error(C(t))}finally{Z.value=!1}},rt=async(t,n)=>{if(!J.value||Q.value)return;let r=J.value.id;Q.value=t.name;try{let i=Y.value.map(e=>({name:e.name,enabled:e.name===t.name?n:e.enabled})),a=(await w.putTeamPlugins(r,{plugins:i}))?.data??{};Y.value=a.plugins??i.map(e=>({...e})),X.value=a.source===`explicit`?`explicit`:`default`,e.success(S(`teams.k1plugon043`))}catch(t){e.error(C(t))}finally{Q.value=null}};return y({title:()=>S(`titles.teams`)}),(e,r)=>{let l=t,te=pe,h=ae,y=ue,b=ve,x=de,S=fe,C=ge,ye=_e,be=se,w=ie,D=le,k=ce,A=he,Ge=me,L=re,$=n,it=oe;return a(),d(`div`,xe,[u(`div`,Se,[u(`div`,null,[u(`h2`,null,`AgentTeam `+i(e.$t(`teams.k3svl8y028`)),1),u(`p`,Ce,i(e.$t(`teams.k12gl4wn008`)),1)]),s(te,null,{default:g(()=>[s(l,{onClick:r[0]||=t=>(`navigateTo`in e?e.navigateTo:_(ne))(`/workshop`)},{default:g(()=>[v(i(e.$t(`teams.krpx6qa009`)),1)]),_:1}),s(l,{type:`primary`,onClick:r[1]||=e=>P.value=!0},{default:g(()=>[v(i(e.$t(`teams.k1efmuyx002`)),1)]),_:1})]),_:1})]),u(`div`,we,[s(h,{value:_(j),"onUpdate:value":r[2]||=e=>c(j)?j.value=e:null,size:`small`,options:[{value:`all`,label:e.$t(`chips.chipAll`,{n:_(E).length})},{value:`mine`,label:e.$t(`chips.mine`)},{value:`public`,label:e.$t(`chips.public`)},{value:`builtin`,label:e.$t(`chips.builtin`)}]},null,8,[`value`,`options`]),_(T).isAdmin?(a(),d(`span`,Te,[r[15]||=u(`span`,{class:`i-tabler-shield-check`},null,-1),v(` `+i(e.$t(`teams.k1bpgi8h010`)),1)])):p(``,!0)]),s(ye,{spinning:_(O)},{default:g(()=>[u(`div`,Ee,[(a(!0),d(f,null,o(_(qe),t=>(a(),d(`div`,{key:t.id,class:`card`},[u(`div`,De,[u(`span`,Oe,i(t.name),1),s(y,{color:N(t).color,class:`vis-tag`},{default:g(()=>[N(t).icon?(a(),d(`span`,{key:0,class:ee(N(t).icon)},null,2)):p(``,!0),v(i(N(t).text),1)]),_:2},1032,[`color`]),!t.isBuiltin&&M(t)?(a(),m(b,{key:0,checked:t.visibility===`public`,size:`small`,title:t.visibility===`public`?`点击转为私有`:`点击公开(全员可部署)`,onChange:e=>Ye(t,e===!0)},null,8,[`checked`,`title`,`onChange`])):p(``,!0),u(`span`,ke,i(t.ownerName??`-`),1),M(t)?(a(),m(C,{key:1},{overlay:g(()=>[s(S,null,{default:g(()=>[s(x,{onClick:e=>$e(t)},{default:g(()=>[...r[16]||=[v(` 部署到 Channel… `,-1)]]),_:1},8,[`onClick`]),s(x,{onClick:e=>nt(t)},{default:g(()=>[v(i(e.$t(`teams.k1plugon047`)),1)]),_:1},8,[`onClick`]),s(x,{danger:``,onClick:e=>tt(t)},{default:g(()=>[v(i(e.$t(`teams.k1bpojhf011`)),1)]),_:1},8,[`onClick`])]),_:2},1024)]),default:g(()=>[r[17]||=u(`span`,{class:`i-tabler-dots op`},null,-1)]),_:2},1024)):(a(),m(l,{key:2,class:`deploy-btn`,size:`small`,type:`default`,title:e.$t(`teams.kxheuf1001`),onClick:e=>$e(t)},{default:g(()=>[v(i(e.$t(`teams.k48ja7012`)),1)]),_:1},8,[`title`,`onClick`]))]),u(`div`,Ae,[(a(!0),d(f,null,o(t.members,e=>(a(),d(`div`,{key:e.templateId,class:`member`},[s(y,{color:e.role===`lead`?`gold`:`blue`,class:`role`},{default:g(()=>[v(i(e.role),1)]),_:2},1032,[`color`]),u(`span`,je,i(e.name),1),u(`span`,Me,i(e.harness),1),M(t)?(a(),d(`span`,{key:0,class:`i-tabler-x rm`,onClick:n=>Qe(t,e.templateId)},null,8,Ne)):p(``,!0)]))),128)),M(t)?(a(),m(l,{key:0,size:`small`,type:`dashed`,block:``,onClick:e=>Xe(t)},{default:g(()=>[v(i(e.$t(`teams.krt2oib013`)),1)]),_:1},8,[`onClick`])):p(``,!0)])]))),128)),_(qe).length===0?(a(),d(`div`,{key:0,class:`card placeholder`,onClick:r[3]||=e=>P.value=!0},[r[18]||=u(`span`,{class:`i-tabler-plus big`},null,-1),u(`span`,null,i(e.$t(`teams.k6cbbgf014`)),1)])):p(``,!0)])]),_:1},8,[`spinning`]),s($,{open:_(P),"onUpdate:open":r[8]||=e=>c(P)?P.value=e:null,title:e.$t(`teams.k1efmuyx002`),"ok-text":`创建`,"cancel-text":`取消`,onOk:Je},{default:g(()=>[s(L,{layout:`vertical`},{default:g(()=>[s(w,{label:e.$t(`teams.k3xhia003`)},{default:g(()=>[s(be,{value:_(F).name,"onUpdate:value":r[4]||=e=>_(F).name=e},null,8,[`value`])]),_:1},8,[`label`]),s(w,{label:e.$t(`teams.k40gkk004`)},{default:g(()=>[s(be,{value:_(F).description,"onUpdate:value":r[5]||=e=>_(F).description=e},null,8,[`value`])]),_:1},8,[`label`]),s(w,{label:e.$t(`teams.k3lrqn0005`)},{default:g(()=>[s(k,{value:_(F).visibility,"onUpdate:value":r[6]||=e=>_(F).visibility=e},{default:g(()=>[s(D,{value:`private`},{default:g(()=>[v(i(e.$t(`teams.k17jfge3015`)),1)]),_:1}),s(D,{value:`public`},{default:g(()=>[v(i(e.$t(`teams.k1h2lq0o016`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`]),_(I).length?(a(),m(w,{key:0,label:e.$t(`teams.k1plugon041`)},{default:g(()=>[s(Ge,{value:_(R),"onUpdate:value":r[7]||=e=>c(R)?R.value=e:null,class:`plug-create-group`},{default:g(()=>[(a(!0),d(f,null,o(_(I),t=>(a(),m(A,{key:t.name,value:t.name},{default:g(()=>[u(`span`,Pe,i(t.name),1),t.builtin?(a(),d(`span`,Fe,i(e.$t(`teams.k3x23c018`)),1)):p(``,!0)]),_:2},1032,[`value`]))),128))]),_:1},8,[`value`]),u(`div`,Ie,i(e.$t(`teams.k1plugon042`)),1)]),_:1},8,[`label`])):p(``,!0)]),_:1})]),_:1},8,[`open`,`title`]),s($,{open:_(z),"onUpdate:open":r[11]||=e=>c(z)?z.value=e:null,title:e.$t(`teams.k6ljhyv029`,{p0:_(B)?.name??``}),"ok-text":`加入`,"cancel-text":`取消`,onOk:Ze},{default:g(()=>[s(L,{layout:`vertical`},{default:g(()=>[s(w,{label:e.$t(`teams.k41ds5006`)},{default:g(()=>[s(it,{value:_(V),"onUpdate:value":r[9]||=e=>c(V)?V.value=e:null,options:_(Ke)},null,8,[`value`,`options`])]),_:1},8,[`label`]),s(w,{label:e.$t(`teams.k479op007`)},{default:g(()=>[s(k,{value:_(H),"onUpdate:value":r[10]||=e=>c(H)?H.value=e:null},{default:g(()=>[s(D,{value:`worker`},{default:g(()=>[...r[19]||=[v(` worker `,-1)]]),_:1}),s(D,{value:`lead`},{default:g(()=>[v(i(e.$t(`teams.keowzlv017`)),1)]),_:1})]),_:1},8,[`value`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`open`,`title`]),s($,{open:_(U),"onUpdate:open":r[13]||=e=>c(U)?U.value=e:null,title:e.$t(`teams.k1c0o6oe030`,{p0:_(W)?.name??``}),"confirm-loading":_(K),"ok-text":`部署`,"cancel-text":`取消`,onOk:et},{default:g(()=>[s(L,{layout:`vertical`},{default:g(()=>[s(w,{label:`目标 Channel(须无 lead 冲突)`},{default:g(()=>[s(it,{value:_(G),"onUpdate:value":r[12]||=e=>c(G)?G.value=e:null,options:_(We).map(e=>({value:e.id,label:e.name}))},null,8,[`value`,`options`])]),_:1})]),_:1})]),_:1},8,[`open`,`title`,`confirm-loading`]),s($,{open:_(q),"onUpdate:open":r[14]||=e=>c(q)?q.value=e:null,title:e.$t(`teams.k1plugon040`,{p0:_(J)?.name??``}),footer:null},{default:g(()=>[s(ye,{spinning:_(Z)},{default:g(()=>[u(`p`,Le,[_(X)===`explicit`?(a(),d(f,{key:0},[v(i(e.$t(`teams.k1plugon045`)),1)],64)):(a(),d(f,{key:1},[v(i(e.$t(`teams.k1plugon044`)),1)],64))]),(a(!0),d(f,null,o(_(Y),t=>(a(),d(`div`,{key:t.name,class:`plug-row`},[u(`div`,Re,[u(`div`,ze,[u(`span`,Be,i(t.name),1),t.builtin?(a(),d(`span`,Ve,i(e.$t(`teams.k3x23c018`)),1)):p(``,!0)]),u(`div`,He,i(t.description||`—`),1)]),s(b,{checked:t.enabled,size:`small`,loading:_(Q)===t.name,onChange:e=>rt(t,e===!0)},null,8,[`checked`,`loading`,`onChange`])]))),128)),_(Y).length===0&&!_(Z)?(a(),d(`div`,Ue,i(e.$t(`teams.k1plugon046`)),1)):p(``,!0)]),_:1},8,[`spinning`])]),_:1},8,[`open`,`title`])])}}}),[[`__scopeId`,`data-v-5a420f71`]]);export{w as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$ as e,P as t,R as n,S as r,Ut as i,V as a,Vt as o,W as s,b as c,d as l,dt as ee,f as u,h as d,i as f,m as p,nt as m,pt as h,tt as te,xt as g,y as _}from"./CSkxz2NX.js";import{c as v,f as ne,l as y,s as re}from"./D6uzXueg.js";import{a as ie}from"./C__m4EhR.js";import{t as ae}from"./BHA40aHa.js";import{n as oe}from"./KZQX7xoM.js";import{t as se}from"./CWoJjWmZ.js";import{t as b}from"./BDNMzG2s2.js";import{t as ce}from"./D0ZBQrN_2.js";import{t as le}from"./CNs_Ozdc2.js";import{a as ue,n as x,t as de}from"./DcsCcxp4.js";import{t as fe}from"./D8qvkfyY.js";import{t as pe}from"./C3J6FYKa.js";var me={class:`page`},he={class:`aw-kicker`},ge={class:`aw-page-head`},_e={key:0,class:`err`},ve={key:1,class:`grid`},ye={class:`col-live`},be={class:`aw-tile value-card`},xe={class:`aw-kicker`},Se={class:`big-val mono`},Ce={class:`facts mono`},we={class:`col-form aw-tile pad`},Te={class:`sec`},Ee={class:`field`},De={class:`field`},Oe={value:``},ke=[`value`],Ae={class:`field`},je=[`value`,`disabled`],Me={class:`field row`},Ne=[`disabled`],Pe={class:`field row`},Fe=[`disabled`],Ie=[`disabled`],Le={class:`field row`},Re=[`disabled`],ze={class:`field`},Be={class:`field`},Ve={class:`field-row`},He={class:`field`},Ue={class:`field`},We={class:`field`},Ge={class:`field`},Ke=[`disabled`],qe={class:`sec mt`},Je={class:`driver-grid`},Ye={key:0},Xe=[`onUpdate:modelValue`],Ze=[`value`],Qe=[`onUpdate:modelValue`,`type`,`placeholder`],$e={class:`test-row`},et=[`disabled`],tt={class:`sec mt`},nt={class:`bind-row`},rt={value:``},it=[`value`],at={class:`col-hist aw-tile pad`},ot={class:`hist-hd`},st={class:`sec`},ct={class:`hist-ctl mono`},lt=[`value`],ut=[`title`],dt=[`placeholder`],ft={class:`raw-table mono`},pt={key:2,class:`aw-tile pad frames-tile`},mt={class:`hist-hd`},ht={class:`sec`},gt={class:`mono frames-n`},_t=[`viewBox`],vt=[`points`],yt={class:`raw-table mono`},bt={key:0,class:`gal`},xt=[`title`,`onClick`],St=[`src`],Ct={class:`mono`},wt={key:1,class:`frames-empty`},Tt=[`src`],S=320,Et=84,Dt=`#35e0a0`,Ot=`rgba(120,135,160,0.18)`,kt=`rgba(140,155,175,0.8)`,At=b(r({__name:`[id]`,setup(r){let{t:b}=oe();le({layout:`default`});let At=ie(),C=l(()=>String(At.params.id??``)),w=de(),jt=fe();jt.load();let T=pe(),E=l(()=>w.nodeById(C.value)??null),D=l(()=>{let e=E.value?ue(E.value.templateRef):``;return w.templates.find(t=>t.key===e)??null}),Mt={ok:b(`daqDetail.k41k5c026`),warn:b(`daqDetail.k49z8v027`),alarm:b(`daqDetail.k3xmid028`),offline:b(`daqDetail.k44c2n029`)},O=()=>{let e=E.value;return!e||!w.controller.running||!e.enabled?`offline`:e.state},Nt=null;n(()=>{Nt=w.ensureWsFeed(),w.load(),T.load(),A.value&&M()}),t(()=>Nt?.());let k=l(()=>D.value?.signalKind??`scalar`),A=l(()=>k.value!==`scalar`),j=l(()=>w.framesOf(C.value));async function M(){C.value&&await w.fetchFrames(C.value,{limit:24}).catch(()=>{})}e(C,()=>{A.value&&M()});let Pt=e=>new Date(e).toLocaleTimeString(`zh-CN`,{hour12:!1}),Ft=e=>Object.entries(e.metrics??{}).slice(0,3).map(([e,t])=>`${e}=${t}`).join(` `),It=l(()=>j.value.find(e=>e.kind===`vector`&&e.points?.length)),Lt=l(()=>{let e=It.value?.points??[];if(e.length<2)return``;let t=Math.min(...e),n=Math.max(...e)-t||1;return e.map((r,i)=>`${(i/(e.length-1)*S).toFixed(1)},${(78-(r-t)/n*72).toFixed(1)}`).join(` `)}),N=h(null);function Rt(e){return e==null?b(`daqDetail.k9vnp9h053`,{p0:w.controller.defaultPublishIntervalMs}):e===0?b(`daqDetail.k1m1zwux030`):`${e}ms`}let P=ee({enabled:!0,driver:`mock`,lineId:``,followGlobal:!0,intervalMs:5e3,calKind:`none`,calScale:1,calOffset:0,publishFollow:!0,publishEveryFrame:!1,publishMs:1e3,unit:``,decimals:1,min:0,max:100,warnLow:null,warnHigh:null});e(E,e=>{e&&(P.enabled=e.enabled,P.lineId=e.lineId??``,P.driver=e.driver,P.followGlobal=e.intervalMs==null,P.intervalMs=e.intervalMs??w.controller.defaultIntervalMs,P.publishFollow=e.publishIntervalMs==null,P.publishEveryFrame=e.publishIntervalMs===0,P.publishMs=e.publishIntervalMs==null?w.controller.defaultPublishIntervalMs:e.publishIntervalMs,P.unit=e.unit,P.decimals=e.decimals,P.min=e.min,P.max=e.max,P.warnLow=e.warnLow,P.warnHigh=e.warnHigh)},{immediate:!0});let F=h({}),I=l(()=>x.find(e=>e.kind===P.driver)?.configFields??[]);e(E,e=>{e&&(F.value={...e.driverConfig})},{immediate:!0}),e(()=>P.driver,()=>{if(I.value.length&&Object.keys(F.value).length===0){let e={};for(let t of I.value)t.default!==void 0&&(e[t.key]=t.default);F.value=e}},{immediate:!0});let L=h(!1),R=h(null);async function zt(){L.value=!0,R.value=null;try{await w.patchNode(C.value,{driver:P.driver,driverConfig:{...F.value}}),R.value=await w.testNode(C.value)}catch(e){R.value={ok:!1,message:ce(e)}}finally{L.value=!1}}let z=h(!1);async function Bt(){let e=E.value;if(!(!e||z.value)){z.value=!0;try{await w.patchNode(e.id,{enabled:P.enabled,driver:P.driver,lineId:P.lineId,driverConfig:{...F.value},intervalMs:P.followGlobal?null:Math.max(1e3,Math.min(6e4,Math.round(P.intervalMs))),publishIntervalMs:P.publishFollow?null:P.publishEveryFrame?0:Math.max(0,Math.min(6e4,Math.round(P.publishMs))),unit:P.unit,decimals:Math.max(0,Math.min(6,Math.round(P.decimals))),min:P.min,max:P.max,warnLow:P.warnLow,warnHigh:P.warnHigh})}finally{z.value=!1}}}function Vt(e){return w.meta.drivers.find(t=>t.kind===e)?.status===`planned`}let B=h(``),Ht=l(()=>(E.value?.deviceIds??(E.value?.deviceBindingId?[E.value.deviceBindingId]:[])).map(e=>T.twins.find(t=>t.id===e)?.name??`${e.slice(0,8)}…`).join(` / `));function Ut(){w.bindNode(C.value,E.value?.deviceBindingId?null:B.value||null)}let Wt=l(()=>T.twins.filter(e=>e.kind!==`daq`&&e.id!==E.value?.id)),V=h([]),H=h(15e3),U=h(!1),Gt=[{label:`1s 桶`,ms:1e3},{label:`5s 桶`,ms:5e3},{label:`15s 桶(默认)`,ms:15e3},{label:`30s 桶`,ms:3e4},{label:`1min 桶`,ms:6e4}];async function W(){if(C.value){U.value=!0;try{let e=await w.samplesOf(C.value,{toMs:Date.now(),bucketMs:H.value||void 0,limit:400});V.value=[...e].reverse()}finally{U.value=!1,qt()}}}let Kt=h(null);function qt(){let e=Kt.value;if(!e)return;let t=Math.min(window.devicePixelRatio||1,2),n=e.clientWidth,r=e.clientHeight;(e.width!==n*t||e.height!==r*t)&&(e.width=n*t,e.height=r*t);let i=e.getContext(`2d`);if(!i)return;i.setTransform(t,0,0,t,0,0),i.clearRect(0,0,n,r);for(let e=1;e<4;e++)i.strokeStyle=Ot,i.beginPath(),i.moveTo(0,r/4*e),i.lineTo(n,r/4*e),i.stroke();let a=V.value;if(a.length<2)return;let o=1/0,s=-1/0;for(let e of a){let t=e.value??e.avg??e.min??0;o=Math.min(o,t),s=Math.max(s,t)}let c=Math.max(s-o,1e-9);i.strokeStyle=kt,i.font=`10px monospace`,i.fillStyle=kt,i.fillText(s.toFixed(2),4,11),i.fillText(o.toFixed(2),4,r-4),i.strokeStyle=Dt,i.lineWidth=1.6,i.beginPath(),a.forEach((e,t)=>{let s=t/(a.length-1)*n,l=r-((e.value??e.avg??0)-o)/c*(r-16)-8;t===0?i.moveTo(s,l):i.lineTo(s,l)}),i.stroke()}let G=h(null),K=null,q=``;function J(){let e=G.value,t=E.value;if(!e||!t||t.hist.length<2)return;let n=`${t.hist.length}:${t.hist[t.hist.length-1]}:${t.hist[0]}`;if(n===q)return;q=n;let r=Math.min(window.devicePixelRatio||1,2),i=e.clientWidth,a=e.clientHeight;(e.width!==i*r||e.height!==a*r)&&(e.width=i*r,e.height=a*r);let o=e.getContext(`2d`);if(!o)return;o.setTransform(r,0,0,r,0,0),o.clearRect(0,0,i,a);let s=Math.max(...t.hist),c=Math.min(...t.hist),l=Math.max(s-c,1e-9);o.strokeStyle=`rgba(65,200,244,0.9)`,o.lineWidth=1.5,o.beginPath(),t.hist.forEach((e,n)=>{let r=n/(t.hist.length-1)*i,s=a-(e-c)/l*(a-6)-3;n===0?o.moveTo(r,s):o.lineTo(r,s)}),o.stroke()}let Y=null,X=!1;function Jt(){X=document.hidden,X||(J(),Q.value&&W())}let Z=h(0),Q=l(()=>{let e=w.controller.minQueryDisplayIntervalMs??500,t=Z.value>0?Z.value:w.controller.queryDisplayIntervalMs??0;return t>0?Math.max(e,t):0}),$=null;function Yt(){$&&=(clearInterval($),null);let e=Q.value;e&&($=se(()=>{document.hidden||U.value||W()},e))}return n(()=>{W(),K=se(()=>{X||J()},800),document.addEventListener(`visibilitychange`,Jt),typeof ResizeObserver<`u`&&(Y=new ResizeObserver(()=>{q=``,J(),qt()}),G.value&&Y.observe(G.value)),Yt()}),t(()=>{K&&clearInterval(K),$&&clearInterval($),document.removeEventListener(`visibilitychange`,Jt),Y?.disconnect(),Y=null}),e(H,()=>void W()),e(Q,()=>Yt()),(e,t)=>{let n=ae;return a(),d(`div`,me,[u(`p`,he,[c(n,{to:`/daq`,class:`back`},{default:te(()=>[_(i(e.$t(`daqDetail.k1emg364001`)),1)]),_:1}),_(` / NODE `+i(C.value.slice(0,8).toUpperCase()),1)]),u(`div`,ge,[u(`h1`,null,i(E.value?.name??C.value),1),u(`span`,{class:o([`st-pill`,[O()]])},i(Mt[O()]),3)]),!E.value&&g(w).error?(a(),d(`p`,_e,[_(i(g(w).error)+`(`,1),c(n,{to:`/workshop`},{default:te(()=>[_(i(e.$t(`daqDetail.k1bhhheq002`)),1)]),_:1}),t[21]||=_(`) `,-1)])):p(``,!0),E.value?(a(),d(`div`,ve,[u(`section`,ye,[u(`div`,be,[u(`p`,xe,i(e.$t(`daqDetail.k1fx2vik032`))+` `+i(D.value?.ch??`-`),1),u(`div`,Se,[_(i(E.value.value==null?`--`:E.value.value.toFixed(E.value.decimals)),1),u(`small`,null,i(E.value.unit),1)]),u(`canvas`,{ref_key:`liveCanvas`,ref:G,class:`live-canvas`},null,512),u(`dl`,Ce,[u(`div`,null,[u(`dt`,null,i(e.$t(`daqDetail.k4a0la003`)),1),u(`dd`,null,i(E.value.driver)+i(Vt(E.value.driver)?e.$t(`daqDetail.kz8zr9v035`):``),1)]),u(`div`,null,[u(`dt`,null,i(e.$t(`daqDetail.k3xg3w004`)),1),u(`dd`,null,i(E.value.intervalMs??e.$t(`daqDetail.k9vnp9h053`,{p0:g(w).controller.defaultIntervalMs})),1)]),u(`div`,null,[u(`dt`,null,i(e.$t(`daqDetail.k3w6td005`)),1),u(`dd`,null,i(Rt(E.value.publishIntervalMs)),1)]),u(`div`,null,[u(`dt`,null,i(e.$t(`daqDetail.k3x5tpx006`)),1),u(`dd`,null,i(E.value.warnLow??`-∞`)+` ~ `+i(E.value.warnHigh??`+∞`),1)]),u(`div`,null,[u(`dt`,null,i(e.$t(`daqDetail.k1hjj0jf007`)),1),u(`dd`,null,i(E.value.min)+` ~ `+i(E.value.max),1)]),u(`div`,null,[u(`dt`,null,i(e.$t(`daqDetail.k1i8rtqt008`)),1),u(`dd`,null,i(Ht.value||e.$t(`daqDetail.k3own4q036`)),1)])])])]),u(`section`,we,[u(`h3`,Te,i(e.$t(`daqDetail.kd9d69j009`)),1),u(`form`,{class:`form-grid`,onSubmit:ne(Bt,[`prevent`])},[u(`label`,Ee,[u(`span`,null,i(e.$t(`daqDetail.k1iw7tbf010`)),1),u(`button`,{type:`button`,class:o([`toggle`,{on:P.enabled}]),onClick:t[0]||=e=>P.enabled=!P.enabled},i(P.enabled?e.$t(`daqDetail.k3w3j8f037`):e.$t(`daqDetail.k3n5aaj045`)),3)]),u(`label`,De,[u(`span`,null,i(e.$t(`daqDetail.k12k23od011`)),1),m(u(`select`,{"onUpdate:modelValue":t[1]||=e=>P.lineId=e,class:`input`},[u(`option`,Oe,i(e.$t(`daqDetail.k3ootr6012`)),1),(a(!0),d(f,null,s(g(jt).lines,e=>(a(),d(`option`,{key:e.id,value:e.id},i(e.name),9,ke))),128))],512),[[v,P.lineId]])]),u(`label`,Ae,[u(`span`,null,i(e.$t(`daqDetail.k1l6smxo013`)),1),m(u(`select`,{"onUpdate:modelValue":t[2]||=e=>P.driver=e,class:`input`},[(a(!0),d(f,null,s(g(x),t=>(a(),d(`option`,{key:t.kind,value:t.kind,disabled:t.status===`planned`},i(t.label)+i(t.status===`planned`?e.$t(`daqDetail.kz8zr9v035`):``),9,je))),128))],512),[[v,P.driver]])]),u(`label`,Me,[u(`button`,{type:`button`,class:o([`toggle slim`,{on:P.followGlobal}]),onClick:t[3]||=e=>P.followGlobal=!P.followGlobal},i(P.followGlobal?e.$t(`daqDetail.k1k2ueyq038`):e.$t(`daqDetail.k1cgi8fy046`)),3),m(u(`input`,{"onUpdate:modelValue":t[4]||=e=>P.intervalMs=e,type:`number`,min:`1000`,max:`60000`,step:`500`,class:`input`,disabled:P.followGlobal},null,8,Ne),[[y,P.intervalMs,void 0,{number:!0}]]),t[22]||=u(`small`,null,`ms`,-1)]),u(`label`,Pe,[u(`button`,{type:`button`,class:o([`toggle slim`,{on:P.calKind===`linear`}]),title:`采集标定 decoder:物理值 = scale × PLC采集值 + offset`,onClick:t[5]||=e=>P.calKind=P.calKind===`linear`?`none`:`linear`},i(P.calKind===`linear`?e.$t(`daqDetail.k1eru4r1039`):e.$t(`daqDetail.k3oktae047`)),3),m(u(`input`,{"onUpdate:modelValue":t[6]||=e=>P.calScale=e,type:`number`,step:`0.1`,class:`input`,disabled:P.calKind!==`linear`,title:`decode 斜率(≠0)`},null,8,Fe),[[y,P.calScale,void 0,{number:!0}]]),m(u(`input`,{"onUpdate:modelValue":t[7]||=e=>P.calOffset=e,type:`number`,step:`0.1`,class:`input`,disabled:P.calKind!==`linear`,title:`decode 截距`},null,8,Ie),[[y,P.calOffset,void 0,{number:!0}]]),t[23]||=u(`small`,null,`decoder`,-1)]),u(`label`,Le,[u(`button`,{type:`button`,class:o([`toggle slim`,{on:P.publishFollow}]),onClick:t[8]||=e=>P.publishFollow=!P.publishFollow},i(P.publishFollow?e.$t(`daqDetail.k1k2t5o7040`):e.$t(`daqDetail.k1cggz5f048`)),3),u(`span`,{class:o([`toggle slim`,{on:P.publishEveryFrame}]),style:{cursor:`pointer`},onClick:t[9]||=e=>P.publishEveryFrame=!P.publishEveryFrame},i(P.publishEveryFrame?e.$t(`daqDetail.k41mvv041`):e.$t(`daqDetail.k3n42dj049`)),3),m(u(`input`,{"onUpdate:modelValue":t[10]||=e=>P.publishMs=e,type:`number`,min:`0`,max:`60000`,step:`100`,class:`input`,disabled:P.publishFollow||P.publishEveryFrame},null,8,Re),[[y,P.publishMs,void 0,{number:!0}]]),t[24]||=u(`small`,null,`ms`,-1)]),u(`label`,ze,[u(`span`,null,i(e.$t(`daqDetail.k3x4ef014`)),1),m(u(`input`,{"onUpdate:modelValue":t[11]||=e=>P.unit=e,class:`input`},null,512),[[y,P.unit]])]),u(`label`,Be,[u(`span`,null,i(e.$t(`daqDetail.k3mxmcx015`)),1),m(u(`input`,{"onUpdate:modelValue":t[12]||=e=>P.decimals=e,type:`number`,min:`0`,max:`6`,class:`input`},null,512),[[y,P.decimals,void 0,{number:!0}]])]),u(`div`,Ve,[u(`label`,He,[u(`span`,null,i(e.$t(`daqDetail.k1l9jv5m016`)),1),m(u(`input`,{"onUpdate:modelValue":t[13]||=e=>P.min=e,type:`number`,step:`any`,class:`input`},null,512),[[y,P.min,void 0,{number:!0}]])]),u(`label`,Ue,[u(`span`,null,i(e.$t(`daqDetail.k1md63hm017`)),1),m(u(`input`,{"onUpdate:modelValue":t[14]||=e=>P.warnLow=e,type:`number`,step:`any`,class:`input`},null,512),[[y,P.warnLow,void 0,{number:!0}]])]),u(`label`,We,[u(`span`,null,i(e.$t(`daqDetail.k1md63gp018`)),1),m(u(`input`,{"onUpdate:modelValue":t[15]||=e=>P.warnHigh=e,type:`number`,step:`any`,class:`input`},null,512),[[y,P.warnHigh,void 0,{number:!0}]])]),u(`label`,Ge,[u(`span`,null,i(e.$t(`daqDetail.k1l9jv4p019`)),1),m(u(`input`,{"onUpdate:modelValue":t[16]||=e=>P.max=e,type:`number`,step:`any`,class:`input`},null,512),[[y,P.max,void 0,{number:!0}]])])]),u(`button`,{class:`aw-pill`,type:`submit`,disabled:z.value},i(z.value?e.$t(`daqDetail.k1as0g50042`):e.$t(`daqDetail.ksn9cgo050`)),9,Ke)],32),I.value.length?(a(),d(f,{key:0},[u(`h3`,qe,i(e.$t(`daqDetail.k1p9gioa033`))+` `+i(g(x).find(e=>e.kind===P.driver)?.label),1),u(`div`,Je,[(a(!0),d(f,null,s(I.value,e=>(a(),d(`label`,{key:e.key,class:`field`},[u(`span`,null,[_(i(e.label),1),e.required?(a(),d(`em`,Ye,`*`)):p(``,!0)]),e.type===`select`?m((a(),d(`select`,{key:0,"onUpdate:modelValue":t=>F.value[e.key]=t,class:`input`},[(a(!0),d(f,null,s(e.options,e=>(a(),d(`option`,{key:e.value,value:e.value},i(e.label),9,Ze))),128))],8,Xe)),[[v,F.value[e.key]]]):m((a(),d(`input`,{key:1,"onUpdate:modelValue":t=>F.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`input`},null,8,Qe)),[[re,F.value[e.key]]])]))),128))]),u(`div`,$e,[u(`button`,{class:`pill-btn`,disabled:L.value,onClick:zt},i(L.value?e.$t(`daqDetail.k1fsh720043`):e.$t(`daqDetail.k1fstglk051`)),9,et),R.value?(a(),d(`span`,{key:0,class:o([`test-out mono`,R.value.ok?`ok`:`bad`])},i(R.value.ok?`✓`:`✗`)+` `+i(R.value.message),3)):p(``,!0)])],64)):p(``,!0),u(`h3`,tt,i(e.$t(`daqDetail.k1ie6qju020`)),1),u(`div`,nt,[m(u(`select`,{"onUpdate:modelValue":t[17]||=e=>B.value=e,class:`input grow`},[u(`option`,rt,i(e.$t(`daqDetail.kjobzu3021`)),1),(a(!0),d(f,null,s(Wt.value,e=>(a(),d(`option`,{key:e.id,value:e.id},i(e.name),9,it))),128))],512),[[v,B.value]]),u(`button`,{class:`pill-btn`,onClick:Ut},i(Ht.value?e.$t(`daqDetail.k479eh044`):e.$t(`daqDetail.k452a8052`)),1)])]),u(`section`,at,[u(`div`,ot,[u(`h3`,st,i(e.$t(`daqDetail.k1i535i5034`))+i(g(w).meta.tsdb)+`) `,1),u(`div`,ct,[m(u(`select`,{"onUpdate:modelValue":t[18]||=e=>H.value=e,class:`input`},[(a(),d(f,null,s(Gt,e=>u(`option`,{key:e.ms,value:e.ms},i(e.label),9,lt)),64))],512),[[v,H.value,void 0,{number:!0}]]),u(`label`,{class:`refresh-ctl`,title:e.$t(`daqDetail.k1rfrshint001`,{p0:g(w).controller.minQueryDisplayIntervalMs??500})},[t[25]||=u(`span`,{class:`i-tabler-refresh`},null,-1),m(u(`input`,{"onUpdate:modelValue":t[19]||=e=>Z.value=e,type:`number`,min:0,max:`600000`,step:`500`,placeholder:String(g(w).controller.queryDisplayIntervalMs??5e3)},null,8,dt),[[y,Z.value,void 0,{number:!0}]]),t[26]||=_(`ms `,-1)],8,ut),u(`button`,{class:`pill-btn`,onClick:W},i(e.$t(`daqDetail.k3x1jg022`)),1)])]),u(`canvas`,{ref_key:`chartCanvas`,ref:Kt,class:`hist-canvas`},null,512),u(`table`,ft,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,i(e.$t(`daqDetail.k40vsf023`)),1),u(`th`,null,i(e.$t(`daqDetail.k48v5024`)),1),u(`th`,null,i(e.$t(`daqDetail.k4bza025`)),1)])]),u(`tbody`,null,[(a(!0),d(f,null,s(V.value.filter(e=>e.value!=null).slice(-12).reverse(),(e,t)=>(a(),d(`tr`,{key:t},[u(`td`,null,i(new Date(e.at).toLocaleTimeString(`zh-CN`,{hour12:!1})),1),u(`td`,null,i(e.value.toFixed(E.value?.decimals??2)),1),u(`td`,null,i(e.state),1)]))),128))])])])])):p(``,!0),A.value?(a(),d(`section`,pt,[u(`div`,mt,[u(`h3`,ht,[_(i(k.value===`image`?e.$t(`daqDetail.kfrm0001`):e.$t(`daqDetail.kfrm0002`))+` `,1),u(`span`,gt,i(j.value.length),1)]),u(`button`,{class:`pill-btn`,onClick:M},i(e.$t(`daqDetail.k3x1jg022`)),1)]),k.value===`vector`?(a(),d(f,{key:0},[(a(),d(`svg`,{class:`vec-svg`,viewBox:`0 0 ${S} ${Et}`,preserveAspectRatio:`none`},[u(`polyline`,{points:Lt.value,fill:`none`,stroke:`var(--accent)`,"stroke-width":`1.5`},null,8,vt)],8,_t)),u(`table`,yt,[u(`thead`,null,[u(`tr`,null,[u(`th`,null,i(e.$t(`daqDetail.k40vsf023`)),1),u(`th`,null,i(e.$t(`daqDetail.kfrm0004`)),1),u(`th`,null,i(e.$t(`daqDetail.kfrm0005`)),1)])]),u(`tbody`,null,[(a(!0),d(f,null,s(j.value.filter(e=>e.kind===`vector`).slice(0,12),e=>(a(),d(`tr`,{key:e.at},[u(`td`,null,i(Pt(e.at)),1),u(`td`,null,i(e.points?.length??0),1),u(`td`,null,i(Ft(e)),1)]))),128))])])],64)):(a(),d(f,{key:1},[j.value.length?(a(),d(`div`,bt,[(a(!0),d(f,null,s(j.value,t=>(a(),d(`figure`,{key:t.at,class:`gal-item`,title:e.$t(`daqDetail.kfrm0006`),onClick:e=>N.value=t},[u(`img`,{src:t.thumbUrl,loading:`lazy`,alt:`daq frame`},null,8,St),u(`figcaption`,Ct,i(Pt(t.at))+` · `+i(Ft(t)),1)],8,xt))),128))])):(a(),d(`p`,wt,i(e.$t(`daqDetail.kfrm0003`)),1)),N.value?(a(),d(`div`,{key:2,class:`gal-full`,onClick:t[20]||=e=>N.value=null},[u(`img`,{src:N.value.contentUrl??N.value.thumbUrl,alt:`daq frame full`},null,8,Tt)])):p(``,!0)],64))])):p(``,!0)])}}}),[[`__scopeId`,`data-v-680686c6`]]);export{At as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ht as e,S as t,Ut as n,V as r,Vt as i,W as a,b as o,d as s,dt as c,f as l,h as u,i as d,m as f,nt as p,pt as m,tt as h,xt as g,y as _}from"./CSkxz2NX.js";import{c as v,f as y,l as b,o as ee,t as x}from"./D6uzXueg.js";import{t as te}from"./BHA40aHa.js";import{n as ne}from"./KZQX7xoM.js";import{t as S}from"./BDNMzG2s2.js";import{t as C}from"./D0ZBQrN_2.js";import{r as w,t as re}from"./D8qvkfyY.js";var ie={class:`page`},ae={class:`aw-page-head`},oe={class:`sub`},se={class:`badges mono`},ce=[`title`],le={class:`badge`},ue={key:0,class:`banner bad`},de={class:`fleet-filter`},fe={class:`aw-seg`},pe=[`placeholder`],me={class:`line-grid aw-stagger`},he={class:`lc-head`},ge={class:`lc-name`},_e=[`title`,`onClick`],ve=[`title`,`onClick`],ye={key:0,class:`lc-run mono`},be={class:`lc-stats mono`},xe={class:`lc-ctl`},Se=[`onUpdate:modelValue`,`disabled`,`title`],Ce={value:``},we=[`value`,`disabled`],Te=[`disabled`,`onClick`],Ee=[`disabled`,`onClick`],De={key:1,class:`banner`},Oe={key:2,class:`banner`},ke={class:`modal`},Ae={class:`m-title`},je={class:`f`},Me=[`placeholder`],Ne={class:`f`},Pe=[`placeholder`],Fe={class:`f`},Ie={class:`color-row`},Le=[`onClick`],Re={class:`dim`},ze={key:0,class:`m-err`},Be={class:`m-actions`},Ve=[`disabled`],He={class:`modal`},Ue={class:`m-title`},We={class:`f`},Ge=[`placeholder`],Ke={class:`f`},qe=[`placeholder`],Je={class:`f`},Ye={class:`color-row`},Xe=[`onClick`],Ze={class:`dim`},Qe={key:0,class:`m-err`},$e={class:`m-actions`},et=[`disabled`],tt={class:`modal`},nt={class:`m-title danger-title`},rt={class:`del-summary`},it={class:`del-purge`},at={key:0,class:`m-err`},ot={class:`m-actions`},st=[`disabled`],ct={class:`modal wide`},lt={class:`m-title`},ut={class:`dim mono`},dt={class:`dim tpl-hint`},ft={class:`tpl-list`},pt=[`title`],mt={class:`mono dim`},ht={key:0,class:`tpl-sem`},gt=[`onClick`],_t={class:`sec-label`},vt={class:`tpl-form`},yt={class:`f`},bt=[`placeholder`],xt={class:`f`},St=[`placeholder`],Ct={class:`f`},wt={class:`f`},Tt={class:`f`},Et={class:`f`},Dt={class:`f`},Ot={class:`f`},kt=[`value`],At={class:`f`},jt=[`placeholder`],Mt={key:0,class:`m-err`},Nt={class:`m-actions`},Pt=[`disabled`],Ft={key:3,class:`banner bad`},T=S(t({__name:`index`,setup(t){let{t:S}=ne(),T=re();T.load();let E=s(()=>T.lines.map(e=>({line:e,nodes:T.nodes.filter(t=>t.lineId===e.id).length,products:T.products.filter(t=>t.lineId===e.id).length,recipes:T.recipes.filter(t=>t.lineId===e.id).length}))),D=s(()=>T.nodes.filter(e=>!e.lineId).length+T.products.filter(e=>!e.lineId).length),O=m(`all`),k=m(``),A=s(()=>E.value.filter(e=>T.lineStateOf(e.line.id).active).length),j=s(()=>E.value.filter(e=>{let t=T.lineStateOf(e.line.id).active;if(O.value===`running`&&!t||O.value===`idle`&&t)return!1;let n=k.value.trim().toLowerCase();return!(n&&!e.line.name.toLowerCase().includes(n)&&!(e.line.description??``).toLowerCase().includes(n))})),M=m(!1),N=m(!1),P=m(``),F=c({name:``,description:``,color:``}),I=s(()=>w[T.lines.length%w.length]??`#3aa0ff`);function It(){F.name=``,F.description=``,F.color=``,P.value=``,M.value=!0}async function Lt(){N.value=!0,P.value=``;try{await T.createLine({name:F.name.trim(),description:F.description.trim(),color:F.color||void 0}),M.value=!1}catch(e){P.value=C(e)}finally{N.value=!1}}let L=m(``),R=m(``),z=c({});async function Rt(e){L.value=e.line.id,R.value=``;try{let t=z[e.line.id]??``;if(!t)throw Error(S(`dcw.k188cswn039`));await T.startLine(e.line.id,t)}catch(e){R.value=C(e)}finally{L.value=``}}async function zt(e){L.value=e.line.id,R.value=``;try{await T.stopLine(e.line.id)}catch(e){R.value=C(e)}finally{L.value=``}}function B(e){return T.recipes.filter(t=>t.lineId===e)}let V=m(!1),H=m(!1),U=m(``),W=m(!0),G=m(null);function Bt(e){G.value=e,W.value=!0,U.value=``,V.value=!0}async function Vt(){if(G.value){H.value=!0,U.value=``;try{await T.removeLine(G.value.line.id,W.value),V.value=!1}catch(e){U.value=C(e)}finally{H.value=!1}}}let K=m(!1),q=m(!1),J=m(``),Y=c({id:``,name:``,description:``,color:``});function Ht(e){Y.id=e.line.id,Y.name=e.line.name,Y.description=e.line.description,Y.color=e.line.color,J.value=``,K.value=!0}async function Ut(){q.value=!0,J.value=``;try{await T.updateLine(Y.id,{name:Y.name.trim(),description:Y.description.trim(),color:Y.color||void 0}),K.value=!1}catch(e){J.value=C(e)}finally{q.value=!1}}let X=m(!1),Z=m(``),Q=c({name:``,ch:``,code:``,unit:``,min:``,max:``,decimals:1,icon:`gateway`,semantics:``}),Wt=[{key:`thermo`,label:S(`dcw.k422b8040`)},{key:`pressure`,label:S(`dcw.k3x6ff041`)},{key:`tension`,label:S(`dcw.k3z9xc042`)},{key:`encoder`,label:S(`dcw.kjb3vhs043`)},{key:`camera`,label:S(`dcw.k47atw044`)},{key:`gateway`,label:S(`dcw.k48c07045`)}];async function Gt(){Z.value=``;try{if(!Q.name.trim())throw Error(S(`dcw.k6ugbw2046`));if(Q.min===``||Q.max===``)throw Error(S(`dcw.k13awowo047`));await T.createTemplate({name:Q.name.trim(),ch:Q.ch.trim()||Q.name.trim(),code:Q.code.trim()||`CUSTOM`,unit:Q.unit.trim()||`-`,min:Number(Q.min),max:Number(Q.max),decimals:Number(Q.decimals)||0,icon:Q.icon,semantics:Q.semantics.trim()||void 0}),Q.name=``,Q.ch=``,Q.code=``,Q.unit=``,Q.min=``,Q.max=``}catch(e){Z.value=C(e)}}async function Kt(e){Z.value=``;try{await fetch(`/api/workshop/dcw/templates/${e}`,{method:`DELETE`,headers:{authorization:`Bearer ${document.cookie.match(/(?:^|;\s*)token=([^;]+)/)?.[1]??``}`}}).then(async e=>{let t=await e.json().catch(()=>({}));if(t?.code!==0)throw Error(t?.message??S(`dcw.k1bphrb3048`))});let t=T.templates.findIndex(t=>t.key===e);t>=0&&T.templates.splice(t,1)}catch(e){Z.value=C(e)}}let $=s(()=>T.templates.filter(e=>e.builtin).length);return(t,s)=>{let c=te;return r(),u(`div`,ie,[l(`div`,ae,[l(`div`,null,[s[27]||=l(`p`,{class:`aw-kicker`},` AGENTWORKSHOP / LINE OPERATIONS `,-1),l(`h1`,null,n(t.$t(`dcw.k1b2tk5c009`)),1),l(`p`,oe,n(t.$t(`dcw.k5q0aqi010`)),1)]),l(`div`,se,[D.value?(r(),u(`span`,{key:0,class:`badge warn-badge`,title:t.$t(`dcw.k1i5a9vw001`)},n(t.$t(`dcw.k3ootr6049`))+` `+n(D.value),9,ce)):f(``,!0),l(`span`,le,n(t.$t(`dcw.k3wj9n050`))+` `+n(g(T).lines.length),1),l(`button`,{class:`badge tpl-btn`,onClick:s[0]||=e=>X.value=!0},n(t.$t(`dcw.k11nndsp051`))+` `+n(g(T).templates.length),1)])]),R.value?(r(),u(`p`,ue,n(R.value),1)):f(``,!0),l(`div`,de,[l(`div`,fe,[l(`button`,{class:i({on:O.value===`all`}),onClick:s[1]||=e=>O.value=`all`},n(t.$t(`common.all`))+` `+n(E.value.length),3),l(`button`,{class:i({on:O.value===`running`}),onClick:s[2]||=e=>O.value=`running`},n(t.$t(`dcw.k1eox1el055`))+` `+n(A.value),3),l(`button`,{class:i({on:O.value===`idle`}),onClick:s[3]||=e=>O.value=`idle`},n(t.$t(`dcw.k149r6y7059`))+` `+n(E.value.length-A.value),3)]),p(l(`input`,{"onUpdate:modelValue":s[4]||=e=>k.value=e,class:`inp fleet-search`,type:`search`,placeholder:t.$t(`dcw.filterSearchPh`)},null,8,pe),[[b,k.value]])]),l(`div`,me,[(r(!0),u(d,null,a(j.value,f=>(r(),u(`div`,{key:f.line.id,class:i([`line-card aw-liftable`,{idle:!g(T).lineStateOf(f.line.id).active}]),style:e({"--lc":f.line.color})},[l(`div`,he,[s[30]||=l(`span`,{class:`lc-dot`},null,-1),l(`b`,ge,n(f.line.name),1),l(`span`,{class:i([`lc-state`,{on:g(T).lineStateOf(f.line.id).active}])},n(g(T).lineStateOf(f.line.id).active?t.$t(`dcw.k1eox1el055`):t.$t(`dcw.k149r6y7059`)),3),l(`button`,{class:`lc-act`,title:t.$t(`common.edit`),onClick:e=>Ht(f)},[...s[28]||=[l(`span`,{class:`i-tabler-pencil`},null,-1)]],8,_e),l(`button`,{class:`lc-act danger`,title:t.$t(`dcw.k3xakp026`),onClick:e=>Bt(f)},[...s[29]||=[l(`span`,{class:`i-tabler-trash`},null,-1)]],8,ve)]),g(T).lineStateOf(f.line.id).active?(r(),u(`small`,ye,n(g(T).lineStateOf(f.line.id).productName)+` · `+n(g(T).lineStateOf(f.line.id).recipeName)+` · `+n(t.$t(`dcw.k3zz0f052`))+` `+n(g(T).lineStateOf(f.line.id).taggedSamples),1)):(r(),u(`small`,{key:1,class:i([`lc-run dim`,{ph:!f.line.description}])},n(f.line.description||t.$t(`dcw.k18moyq1056`)),3)),l(`div`,be,[l(`span`,null,[_(n(t.$t(`dcw.k45uio011`))+` `,1),l(`b`,null,n(f.nodes),1)]),l(`span`,null,[_(n(t.$t(`dcw.k3waz1012`))+` `,1),l(`b`,null,n(f.products),1)]),l(`span`,null,[_(n(t.$t(`dcw.k48grv013`))+` `,1),l(`b`,null,n(f.recipes),1)])]),l(`div`,xe,[g(T).lineStateOf(f.line.id).active?(r(),u(`button`,{key:1,class:`pill-btn stop`,disabled:L.value===f.line.id,onClick:e=>zt(f)},n(t.$t(`dcw.k148rclf015`)),9,Ee)):(r(),u(d,{key:0},[p(l(`select`,{"onUpdate:modelValue":e=>z[f.line.id]=e,class:`inp`,disabled:B(f.line.id).length===0,title:t.$t(`dcw.k1dhaby4003`)},[l(`option`,Ce,n(B(f.line.id).length?t.$t(`dcw.kutxzsz057`):t.$t(`dcw.k1elczt9060`)),1),(r(!0),u(d,null,a(B(f.line.id),e=>(r(),u(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},n(e.name)+`(`+n(e.params.length)+`) `,9,we))),128))],8,Se),[[v,z[f.line.id]]]),l(`button`,{class:`pill-btn`,disabled:L.value===f.line.id||!z[f.line.id],onClick:e=>Rt(f)},n(t.$t(`dcw.k149b4vg014`)),9,Te)],64))]),o(c,{class:`lc-manage`,to:`/dcw/${f.line.id}`},{default:h(()=>[_(n(t.$t(`dcw.k1fwqw5g016`)),1)]),_:1},8,[`to`])],6))),128)),l(`button`,{class:`line-card new-card`,onClick:It},[s[31]||=l(`span`,{class:`i-tabler-plus`},null,-1),_(` `+n(t.$t(`dcw.k1efe391017`))+` `,1),l(`small`,null,n(t.$t(`dcw.k19dlbli053`)),1)])]),g(T).loaded&&g(T).lines.length===0?(r(),u(`p`,De,n(t.$t(`dcw.k1sk85vs018`)),1)):g(T).loaded&&j.value.length===0?(r(),u(`p`,Oe,n(t.$t(`dcw.filterEmpty`)),1)):f(``,!0),o(x,{name:`modal`},{default:h(()=>[M.value?(r(),u(`div`,{key:0,class:`modal-mask`,onClick:s[8]||=y(e=>M.value=!1,[`self`])},[l(`div`,ke,[l(`h3`,Ae,n(t.$t(`dcw.k1efe391017`)),1),l(`label`,je,[l(`span`,null,[_(n(t.$t(`dcw.k1b2ioko019`)),1),s[32]||=l(`em`,null,`*`,-1)]),p(l(`input`,{"onUpdate:modelValue":s[5]||=e=>F.name=e,class:`inp`,placeholder:t.$t(`dcw.kru37i3004`)},null,8,Me),[[b,F.name]])]),l(`label`,Ne,[l(`span`,null,n(t.$t(`dcw.k24dxcd020`)),1),p(l(`input`,{"onUpdate:modelValue":s[6]||=e=>F.description=e,class:`inp`,placeholder:t.$t(`dcw.k1f2nwsp005`)},null,8,Pe),[[b,F.description]])]),l(`div`,Fe,[l(`span`,null,n(t.$t(`dcw.k1x7nubr021`)),1),l(`div`,Ie,[(r(!0),u(d,null,a(g(w),t=>(r(),u(`button`,{key:t,class:i([`color-dot`,{on:F.color===t}]),style:e({background:t}),onClick:e=>F.color=F.color===t?``:t},null,14,Le))),128)),l(`small`,Re,n(F.color||t.$t(`dcw.k1qidbpy061`,{p0:I.value})),1)])]),P.value?(r(),u(`p`,ze,n(P.value),1)):f(``,!0),l(`div`,Be,[l(`button`,{class:`mini-btn`,onClick:s[7]||=e=>M.value=!1},n(t.$t(`dcw.k3xdnn022`)),1),l(`button`,{class:`pill-btn`,disabled:N.value||!F.name.trim(),onClick:Lt},n(t.$t(`dcw.k3wzi2023`)),9,Ve)])])])):f(``,!0)]),_:1}),o(x,{name:`modal`},{default:h(()=>[K.value?(r(),u(`div`,{key:0,class:`modal-mask`,onClick:s[12]||=y(e=>K.value=!1,[`self`])},[l(`div`,He,[l(`h3`,Ue,n(t.$t(`dcw.k5tq8wc071`)),1),l(`label`,We,[l(`span`,null,[_(n(t.$t(`dcw.k1b2ioko019`)),1),s[33]||=l(`em`,null,`*`,-1)]),p(l(`input`,{"onUpdate:modelValue":s[9]||=e=>Y.name=e,class:`inp`,placeholder:t.$t(`dcw.kru37i3004`)},null,8,Ge),[[b,Y.name]])]),l(`label`,Ke,[l(`span`,null,n(t.$t(`dcw.k24dxcd020`)),1),p(l(`input`,{"onUpdate:modelValue":s[10]||=e=>Y.description=e,class:`inp`,placeholder:t.$t(`dcw.k1f2nwsp005`)},null,8,qe),[[b,Y.description]])]),l(`div`,Je,[l(`span`,null,n(t.$t(`dcw.k1x7nubr021`)),1),l(`div`,Ye,[(r(!0),u(d,null,a(g(w),t=>(r(),u(`button`,{key:t,class:i([`color-dot`,{on:Y.color===t}]),style:e({background:t}),onClick:e=>Y.color=Y.color===t?``:t},null,14,Xe))),128)),l(`small`,Ze,n(Y.color||t.$t(`dcw.k1qidbpy061`,{p0:I.value})),1)])]),J.value?(r(),u(`p`,Qe,n(J.value),1)):f(``,!0),l(`div`,$e,[l(`button`,{class:`mini-btn`,onClick:s[11]||=e=>K.value=!1},n(t.$t(`dcw.k3xdnn022`)),1),l(`button`,{class:`pill-btn`,disabled:q.value||!Y.name.trim(),onClick:Ut},n(t.$t(`common.save`)),9,et)])])])):f(``,!0)]),_:1}),o(x,{name:`modal`},{default:h(()=>[V.value&&G.value?(r(),u(`div`,{key:0,class:`modal-mask`,onClick:s[15]||=y(e=>V.value=!1,[`self`])},[l(`div`,tt,[l(`h3`,nt,[s[34]||=l(`span`,{class:`i-tabler-alert-triangle`},null,-1),_(` `+n(t.$t(`dcw.k7xq2mfd063`,{p0:G.value.line.name})),1)]),l(`p`,rt,n(W.value?t.$t(`dcw.k4r7nbd073`,{p0:G.value.line.name,p1:G.value.nodes,p2:G.value.products,p3:G.value.recipes}):t.$t(`dcw.k1gp649b062`,{p0:G.value.line.name,p1:G.value.nodes,p2:G.value.products,p3:G.value.recipes})),1),l(`label`,it,[p(l(`input`,{"onUpdate:modelValue":s[13]||=e=>W.value=e,type:`checkbox`},null,512),[[ee,W.value]]),l(`span`,null,n(t.$t(`dcw.k9m2vxa072`)),1)]),U.value?(r(),u(`p`,at,n(U.value),1)):f(``,!0),l(`div`,ot,[l(`button`,{class:`mini-btn`,onClick:s[14]||=e=>V.value=!1},n(t.$t(`dcw.k3xdnn022`)),1),l(`button`,{class:`pill-btn danger`,disabled:H.value,onClick:Vt},n(t.$t(`dcw.k3xakp026`)),9,st)])])])):f(``,!0)]),_:1}),o(x,{name:`modal`},{default:h(()=>[X.value?(r(),u(`div`,{key:0,class:`modal-mask`,onClick:s[26]||=y(e=>X.value=!1,[`self`])},[l(`div`,ct,[l(`h3`,lt,[_(n(t.$t(`dcw.k11oadmx024`))+` `,1),l(`small`,ut,n(t.$t(`dcw.k3x23c054`))+` `+n($.value)+` · `+n(t.$t(`dcw.k3t616a058`))+` `+n(g(T).templates.length-$.value),1)]),l(`p`,dt,n(t.$t(`dcw.k2hlav5025`)),1),l(`div`,ft,[(r(!0),u(d,null,a(g(T).templates,e=>(r(),u(`div`,{key:e.key,class:`tpl-row`,title:e.semantics??``},[l(`b`,null,n(e.name),1),l(`small`,mt,n(e.code)+` · `+n(e.min)+`~`+n(e.max)+` `+n(e.unit),1),e.semantics?(r(),u(`small`,ht,n(e.semantics.slice(0,40))+n(e.semantics.length>40?`…`:``),1)):f(``,!0),l(`span`,{class:i([`tpl-tag`,{builtin:e.builtin}])},n(e.builtin?t.$t(`dcw.k3x23c054`):t.$t(`dcw.k3t616a058`)),3),e.builtin?f(``,!0):(r(),u(`button`,{key:1,class:`mini-btn danger`,onClick:t=>Kt(e.key)},n(t.$t(`dcw.k3xakp026`)),9,gt))],8,pt))),128))]),l(`p`,_t,n(t.$t(`dcw.k169eb4s027`)),1),l(`div`,vt,[l(`label`,yt,[l(`span`,null,[_(n(t.$t(`dcw.k3xhia028`)),1),s[35]||=l(`em`,null,`*`,-1)]),p(l(`input`,{"onUpdate:modelValue":s[16]||=e=>Q.name=e,class:`inp`,placeholder:t.$t(`dcw.k1tooi3o006`)},null,8,bt),[[b,Q.name]])]),l(`label`,xt,[l(`span`,null,n(t.$t(`dcw.k1bqk219029`)),1),p(l(`input`,{"onUpdate:modelValue":s[17]||=e=>Q.ch=e,class:`inp`,placeholder:t.$t(`dcw.k698qz0007`)},null,8,St),[[b,Q.ch]])]),l(`label`,Ct,[l(`span`,null,n(t.$t(`dcw.k1ayxrqb030`)),1),p(l(`input`,{"onUpdate:modelValue":s[18]||=e=>Q.code=e,class:`inp`,placeholder:`如 MOTOR · I`},null,512),[[b,Q.code]])]),l(`label`,wt,[l(`span`,null,n(t.$t(`dcw.k3x4ef031`)),1),p(l(`input`,{"onUpdate:modelValue":s[19]||=e=>Q.unit=e,class:`inp`,placeholder:`如 A`},null,512),[[b,Q.unit]])]),l(`label`,Tt,[l(`span`,null,[_(n(t.$t(`dcw.k1l9jv5m032`)),1),s[36]||=l(`em`,null,`*`,-1)]),p(l(`input`,{"onUpdate:modelValue":s[20]||=e=>Q.min=e,type:`number`,class:`inp`},null,512),[[b,Q.min,void 0,{number:!0}]])]),l(`label`,Et,[l(`span`,null,[_(n(t.$t(`dcw.k1l9jv4p033`)),1),s[37]||=l(`em`,null,`*`,-1)]),p(l(`input`,{"onUpdate:modelValue":s[21]||=e=>Q.max=e,type:`number`,class:`inp`},null,512),[[b,Q.max,void 0,{number:!0}]])]),l(`label`,Dt,[l(`span`,null,n(t.$t(`dcw.k3mxmcx034`)),1),p(l(`input`,{"onUpdate:modelValue":s[22]||=e=>Q.decimals=e,type:`number`,class:`inp`},null,512),[[b,Q.decimals,void 0,{number:!0}]])]),l(`label`,Ot,[l(`span`,null,n(t.$t(`dcw.k3xx56035`)),1),p(l(`select`,{"onUpdate:modelValue":s[23]||=e=>Q.icon=e,class:`inp`},[(r(),u(d,null,a(Wt,e=>l(`option`,{key:e.key,value:e.key},n(e.label),9,kt)),64))],512),[[v,Q.icon]])])]),l(`label`,At,[l(`span`,null,n(t.$t(`dcw.k1b6qorg036`)),1),p(l(`textarea`,{"onUpdate:modelValue":s[24]||=e=>Q.semantics=e,class:`inp`,rows:`3`,placeholder:t.$t(`dcw.k1qdnfzc008`)},null,8,jt),[[b,Q.semantics]])]),Z.value?(r(),u(`p`,Mt,n(Z.value),1)):f(``,!0),l(`div`,Nt,[l(`button`,{class:`mini-btn`,onClick:s[25]||=e=>X.value=!1},n(t.$t(`dcw.k3x62t037`)),1),l(`button`,{class:`pill-btn`,disabled:!Q.name.trim()||Q.min===``||Q.max===``,onClick:Gt},n(t.$t(`dcw.k1bg9nga038`)),9,Pt)])])])):f(``,!0)]),_:1}),g(T).error?(r(),u(`p`,Ft,n(g(T).error),1)):f(``,!0)])}}}),[[`__scopeId`,`data-v-7ef81432`]]);export{T as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{dt as e}from"./CSkxz2NX.js";import{t}from"./36oeS8_R.js";import{t as n}from"./D0ZBQrN_2.js";import{t as r}from"./BDmh31hl.js";var i=[{key:`temp-sp`,name:`温度设定器`,code:`TEMP · SP`,ch:`烘箱温度设定`,unit:`℃`,min:150,max:200,decimals:1,icon:`thermo`,semantics:`烘箱/熔体温度设定:升高使热塑温度上升(成膜更均匀但能耗高、过热降解风险),降低则偏冷易厚度不均。调整后需等待热惯性(数十秒级)再评估效果。`},{key:`speed-sp`,name:`速度设定器`,code:`LINE · SP`,ch:`产线速度设定`,unit:`m/min`,min:280,max:360,decimals:0,icon:`encoder`,semantics:`产线速度设定:升速提高产能但缩短物料受热时间(温度补偿需联动),降速利于精细工艺。速度变化会同步影响张力与厚度分布。`},{key:`tension-sp`,name:`张力设定器`,code:`TENSION · SP`,ch:`膜张力设定`,unit:`kN`,min:18,max:26,decimals:1,icon:`tension`,semantics:`膜张力设定:张力过大易断膜/拉伸变形,过小则跑偏起皱。调整需平缓,并与速度联动观察。`},{key:`pressure-sp`,name:`压力设定器`,code:`PRESSURE · SP`,ch:`熔体压力设定`,unit:`MPa`,min:.6,max:1.2,decimals:2,icon:`pressure`,semantics:`熔体压力设定:反映挤出/泵送负荷,压力偏高提示阻力大或温度偏低,偏低可能是料位不足。调整需小幅步进。`}],a=[{kind:`mock`,label:`Mock 模拟 PLC`,status:`builtin`,configFields:[]},{kind:`modbus-tcp`,label:`Modbus TCP(PLC/网关 写保持寄存器)`,status:`real`,configFields:[{key:`host`,label:`设备地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.10`,hint:`PLC 或 Modbus 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`Modbus TCP 标准端口 502`},{key:`unitId`,label:`单元号(unitId)`,type:`number`,default:1,hint:`从站地址,常见 1`},{key:`register`,label:`写寄存器地址`,type:`number`,required:!0,placeholder:`40021`,hint:`4xxxx=保持寄存器(写);回读同址校验`},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]},{key:`engMin`,label:`工程量程下限`,type:`number`,hint:`线性换算:eng ∈ [engMin, engMax] ↔ raw ∈ [rawMin, rawMax];float32 且未填原始量程时 raw=eng`},{key:`engMax`,label:`工程量程上限`,type:`number`},{key:`rawMin`,label:`原始值下限`,type:`number`,hint:`如 int16 用 0~2000 表示 0.1 分辨率`},{key:`rawMax`,label:`原始值上限`,type:`number`}]},{kind:`opcua`,label:`OPC UA(PLC/MES 写节点值)`,status:`real`,configFields:[{key:`endpoint`,label:`端点(endpoint)`,type:`string`,required:!0,placeholder:`opc.tcp://192.168.1.10:4840`,hint:`OPC UA 服务器地址`},{key:`nodeId`,label:`节点 ID(NodeId)`,type:`string`,required:!0,placeholder:`ns=2;s=Channel1.Device1.SetTemp`,hint:`要写入的变量节点`},{key:`securityMode`,label:`安全策略`,type:`select`,default:`None`,options:[{value:`None`,label:`None(无加密,内网常用)`},{value:`Sign`,label:`Sign(签名)`},{value:`SignAndEncrypt`,label:`SignAndEncrypt(签名+加密)`}]},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`modbus-rtu`,label:`Modbus RTU over TCP(串口网关 写保持寄存器)`,status:`real`,configFields:[{key:`host`,label:`网关地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.50`,hint:`串口服务器/RTU 转 TCP 网关 IP`},{key:`port`,label:`端口`,type:`number`,default:502,hint:`网关透传端口(常见 502 / 8899 / 26)`},{key:`unitId`,label:`从站地址(unitId)`,type:`number`,default:1,hint:`RS-485 总线上的从站地址`},{key:`register`,label:`写寄存器地址`,type:`number`,required:!0,placeholder:`40021`,hint:`4xxxx=保持寄存器(写);回读同址校验`},{key:`dataType`,label:`数据类型`,type:`select`,default:`float32`,options:[{value:`int16`,label:`int16(1 寄存器)`},{value:`uint16`,label:`uint16(1 寄存器)`},{value:`int32`,label:`int32(2 寄存器)`},{value:`uint32`,label:`uint32(2 寄存器)`},{value:`float32`,label:`float32(2 寄存器,常用)`}]},{key:`byteOrder`,label:`字节序`,type:`select`,default:`big`,options:[{value:`big`,label:`大端(AB CD)`},{value:`little`,label:`小端(CD AB)`},{value:`wordSwap`,label:`字交换(CD AB / 交换单字)`}]},{key:`engMin`,label:`工程量程下限`,type:`number`,hint:`线性换算:eng ∈ [engMin, engMax] ↔ raw ∈ [rawMin, rawMax];float32 且未填原始量程时 raw=eng`},{key:`engMax`,label:`工程量程上限`,type:`number`},{key:`rawMin`,label:`原始值下限`,type:`number`},{key:`rawMax`,label:`原始值上限`,type:`number`}]},{kind:`mqtt`,label:`MQTT(发布设定值到 Broker)`,status:`real`,configFields:[{key:`host`,label:`Broker 地址(host)`,type:`string`,required:!0,placeholder:`192.168.1.20`,hint:`MQTT Broker 地址(与边缘网关约定同一 Broker)`},{key:`port`,label:`端口`,type:`number`,default:1883,hint:`MQTT TCP 端口 1883`},{key:`topic`,label:`下发主题(topic)`,type:`string`,required:!0,placeholder:`factory/line1/setpoint`,hint:`网关订阅的控制主题(勿与采集主题相同)`},{key:`jsonKey`,label:`JSON 键(可选)`,type:`string`,placeholder:`setpoint`,hint:`留空 = 纯数字报文;填写 = {"键":值} JSON 报文`},{key:`qos`,label:`QoS`,type:`number`,default:1,hint:`0=至多一次 1=至少一次(推荐)`},{key:`username`,label:`用户名(可选)`,type:`string`},{key:`password`,label:`密码(可选)`,type:`string`}]},{kind:`http`,label:`HTTP/REST(POST 设定值)`,status:`real`,configFields:[{key:`url`,label:`写接口地址(URL)`,type:`string`,required:!0,placeholder:`http://192.168.1.30/api/setpoint`,hint:`接收设定值的 HTTP 接口(POST JSON)`},{key:`bodyKey`,label:`JSON 键(可选)`,type:`string`,placeholder:`setpoint`,hint:`留空 = {"value": 设定值};填写 = {"键": 设定值}`},{key:`headersJSON`,label:`请求头(可选)`,type:`string`,placeholder:`{"Authorization":"Bearer xxx"}`,hint:`JSON 对象形式的 HTTP 头`}]}],o=[`#3aa0ff`,`#f4c542`,`#35e0a0`,`#41c8f4`,`#b58cff`,`#ff8a5c`],s=(e,t)=>r({base:`/api/workshop/dcw`,path:e,init:t,retries:(t?.method??`GET`).toUpperCase()===`GET`?2:0});function c(){let r=e([]),a=new Map,o=e({running:!0,nodesTotal:0,nodesOnline:0,writesTotal:0,writesFailed:0}),c=e(i.map(e=>({...e}))),l=e([]),u=e([]),d=e([]),f=e([]),p=e([]),m=e({}),h=e([]);function g(e){let t=r.findIndex(t=>t.id===e.id);t>=0?r[t]=Object.assign(r[t],e):(r.push(e),a.set(e.id,r[r.length-1]))}function _(e){if(e.node){if(e.op===`removed`){let t=r.findIndex(t=>t.id===e.node.id);t>=0&&r.splice(t,1),a.delete(e.node.id);return}g(e.node)}}let v=0,y=null;function b(){v++,v===1&&(y=t().subscribe(x));let e=!1;return()=>{e||(e=!0,--v===0&&(y?.(),y=null))}}function x(e){if(e.type===`dcw.written`){let t=e.payload,n=a.get(t.nodeId);n&&(n.value=t.value,n.state=t.ok?`ok`:`error`,n.lastWriteAt=t.at,t.ok&&(n.lastAckAt=t.at)),d.unshift({id:`${t.nodeId}-${t.at}`,nodeId:t.nodeId,nodeName:n?.name??t.nodeId,param:``,eng:t.value,raw:t.raw,ok:t.ok,message:t.message,recipeRunId:t.recipeRunId,at:t.at}),d.length>60&&d.splice(60)}else if(e.type===`dcw.read`){let t=e.payload,n=a.get(t.nodeId);n&&(t.ok&&(n.readValue=t.value),n.lastReadAt=t.at,n.lastReadError=t.ok?null:t.message)}else if(e.type===`dcw.node.changed`)_(e.payload);else if(e.type===`dcw.controller`)Object.assign(o,e.payload);else if(e.type===`dcw.optimization.changed`){let t=e.payload.record,n=h.findIndex(e=>e.id===t.id);n>=0?h[n]=t:h.unshift(t),h.length>200&&(h.length=200)}}async function S(){try{let e=await s(``);r.splice(0,r.length,...e.nodes),a.clear();for(let e of r)a.set(e.id,e);Object.assign(o,e.controller),e.templates?.length&&c.splice(0,c.length,...e.templates.map(e=>({...e}))),l.splice(0,l.length,...e.recipes??[]),u.splice(0,u.length,...e.runs??[]),d.splice(0,d.length,...e.history??[]),f.splice(0,f.length,...e.products??[]),p.splice(0,p.length,...e.lines??[]);for(let e of Object.keys(m))Reflect.deleteProperty(m,e);for(let t of e.lineStates??[])m[t.lineId]=t;C.loaded=!0,C.error=``}catch(e){C.error=n(e)}}let C=e({nodes:r,controller:o,templates:c,recipes:l,runs:u,history:d,products:f,lines:p,lineStates:m,optimizations:h,loaded:!1,error:``,ensureWsFeed:b,load:S,loadOptimizations:async e=>{let t=new URLSearchParams;e?.lineId&&t.set(`lineId`,e.lineId),e?.recipeId&&t.set(`recipeId`,e.recipeId),e?.nodeId&&t.set(`nodeId`,e.nodeId),e?.status&&t.set(`status`,e.status),t.set(`limit`,String(e?.limit??100));let n=await s(`/optimizations?${t.toString()}`);h.splice(0,h.length,...n.records)},fetchLedger:async e=>(await s(`/${e}/param-ledger`)).ledger,optimizationSeries:async(e,t)=>s(`/optimizations/${e}/series${t?`?windowMs=${t}`:``}`),judgeOptimization:async(e,t,n)=>{await s(`/optimizations/${e}/judge`,{method:`POST`,body:JSON.stringify({verdict:t,reason:n})})},rollbackOptimization:async e=>{await s(`/optimizations/${e}/rollback`,{method:`POST`,body:JSON.stringify({})})},rollbackNode:async(e,t)=>{await s(`/journal/node/${e}/rollback`,{method:`POST`,body:JSON.stringify({to:t})})},markGood:async(e,t)=>{await s(`/recipes/${e}/mark-good`,{method:`POST`,body:JSON.stringify({runId:t})})},rollbackRecipeGood:async e=>{await s(`/recipes/${e}/rollback-good`,{method:`POST`,body:JSON.stringify({})})},createFromTemplate:async(e,t)=>{let n=await s(``,{method:`POST`,body:JSON.stringify({templateRef:e,...t})});return g(n.node),n.node},patchNode:async(e,t)=>{await s(`/${e}`,{method:`PATCH`,body:JSON.stringify(t)})},removeNode:async e=>{await s(`/${e}`,{method:`DELETE`});let t=r.findIndex(t=>t.id===e);t>=0&&r.splice(t,1),a.delete(e)},bindNode:async(e,t)=>{g((await s(`/${e}/bind`,{method:`POST`,body:JSON.stringify({deviceId:t})})).node)},write:async(e,t)=>s(`/${e}/write`,{method:`POST`,body:JSON.stringify({value:t})}).then(e=>e.outcome),readNode:async e=>s(`/${e}/read`,{method:`POST`,body:JSON.stringify({})}).then(e=>e.read),testDriver:async(e,t)=>s(`/test-driver`,{method:`POST`,body:JSON.stringify({driver:e,driverConfig:t})}).then(e=>e.test),testNode:async e=>s(`/${e}/test`,{method:`POST`}).then(e=>e.test),startStop:async e=>{let t=await s(`/controller`,{method:`POST`,body:JSON.stringify({action:e})});Object.assign(o,t.controller)},createTemplate:async e=>{let t=await s(`/templates`,{method:`POST`,body:JSON.stringify(e)});return c.push(t.template),t.template},createRecipe:async e=>{let t=await s(`/recipes`,{method:`POST`,body:JSON.stringify(e)});return l.push(t.recipe),t.recipe},updateRecipe:async(e,t)=>{let n=await s(`/recipes/${e}`,{method:`PATCH`,body:JSON.stringify(t)}),r=l.findIndex(t=>t.id===e);return r>=0&&(l[r]=n.recipe),n.recipe},removeRecipe:async e=>{await s(`/recipes/${e}`,{method:`DELETE`});let t=l.findIndex(t=>t.id===e);t>=0&&l.splice(t,1)},applyRecipe:async e=>{let t=await s(`/recipes/${e}/apply`,{method:`POST`});return u.push(t.run),t.run},recipeVersions:async e=>(await s(`/recipes/${e}/versions`)).versions??[],revertRecipe:async(e,t)=>{let n=await s(`/recipes/${e}/revert`,{method:`POST`,body:JSON.stringify(t)}),r=l.findIndex(t=>t.id===e);return r>=0&&(l[r]=n.recipe),n.recipe},closeRun:async e=>{let t=await s(`/runs/${e}/close`,{method:`POST`}),n=u.findIndex(t=>t.id===e);return n>=0&&(u[n]=t.run),t.run},runData:e=>s(`/runs/${e}/data`),nodeById:e=>a.get(e)??r.find(t=>t.id===e),createProduct:async e=>{let t=await s(`/products`,{method:`POST`,body:JSON.stringify(e)});return f.push(t.product),t.product},updateProduct:async(e,t)=>s(`/products/${e}`,{method:`PATCH`,body:JSON.stringify(t)}).then(e=>(w(),e.product)),removeProduct:async e=>{await s(`/products/${e}`,{method:`DELETE`});let t=f.findIndex(t=>t.id===e);t>=0&&f.splice(t,1)},createLine:async e=>{let t=await s(`/lines`,{method:`POST`,body:JSON.stringify(e)});return p.push(t.line),t.line},updateLine:async(e,t)=>{let n=await s(`/lines/${e}`,{method:`PATCH`,body:JSON.stringify(t)}),r=p.findIndex(t=>t.id===e);r>=0&&(p[r]=n.line)},removeLine:async(e,t=!1)=>{await s(`/lines/${e}${t?`?purge=1`:``}`,{method:`DELETE`});let n=p.findIndex(t=>t.id===e);n>=0&&p.splice(n,1),Reflect.deleteProperty(m,e),await S()},startLine:async(e,t)=>{let n=await s(`/lines/${e}/start`,{method:`POST`,body:JSON.stringify({recipeId:t})});m[e]=n.line},stopLine:async e=>{let t=await s(`/lines/${e}/stop`,{method:`POST`});m[e]=t.line},lineStateOf:e=>m[e]??{lineId:e,active:!1,runId:null,recipeId:null,recipeName:null,productId:null,productName:null,startedAt:null,taggedSamples:0},queryLine:e=>{let t=new URLSearchParams;return e.lineId&&t.set(`lineId`,e.lineId),e.productId&&t.set(`productId`,e.productId),e.recipeId&&t.set(`recipeId`,e.recipeId),e.paramKey&&t.set(`paramKey`,e.paramKey),e.nodeId&&t.set(`nodeId`,e.nodeId),e.fromMs!=null&&t.set(`from`,String(e.fromMs)),e.toMs!=null&&t.set(`to`,String(e.toMs)),e.bucketMs!=null&&t.set(`bucketMs`,String(e.bucketMs)),e.limit!=null&&t.set(`limit`,String(e.limit)),s(`/line/query?${t.toString()}`)}});async function w(){try{let e=await s(``);f.splice(0,f.length,...e.products??[]),l.splice(0,l.length,...e.recipes??[])}catch{}}return C}var l=`__dcwStream`;function u(){let e=globalThis;return e[l]||(e[l]=c()),e[l]}export{a as n,o as r,u as t};
|