agentworkshop 0.7.51 → 0.7.53
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/.AgentWorkShop/prompts/host-tools.json +2097 -1955
- package/.output/.AgentWorkShop/prompts/host-tools.json +2097 -1955
- package/.output/.AgentWorkShop/schema.json +2 -0
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{D0ldVwl-.js → 77DRSnQv.js} +1 -1
- package/.output/public/_nuxt/8oRmGaAV.js +1 -0
- package/.output/public/_nuxt/{BPou3U7b.js → BLnLjzka.js} +1 -1
- package/.output/public/_nuxt/{CFQyYMEn2.js → BSdJTnk12.js} +1 -1
- package/.output/public/_nuxt/{C4lagVdN2.js → BUD1CNvB2.js} +1 -1
- package/.output/public/_nuxt/BXR3tgEk.js +1 -0
- package/.output/public/_nuxt/{B9QzrmgE.js → BhlRInVa.js} +1 -1
- package/.output/public/_nuxt/{DhFv8S2Z.js → BkfA3BbD.js} +1 -1
- package/.output/public/_nuxt/{ChGuLxwW2.js → BpcQDwKM2.js} +1 -1
- package/.output/public/_nuxt/{DQMbdg4t.js → BwlGxRxA.js} +1 -1
- package/.output/public/_nuxt/{Bt2ZL5332.js → C4sQKuhk2.js} +1 -1
- package/.output/public/_nuxt/{zh-S_7rN2.js → CBUIODly2.js} +1 -1
- package/.output/public/_nuxt/CR-ILcRu2.js +1 -0
- package/.output/public/_nuxt/CZLnEnbE.js +14 -0
- package/.output/public/_nuxt/{jRTz0hjN2.js → Chxx-DIE2.js} +1 -1
- package/.output/public/_nuxt/{BGAaKBeo2.js → CjwxhpwR2.js} +1 -1
- package/.output/public/_nuxt/{D89BUtx6.js → CvGYm7w8.js} +1 -1
- package/.output/public/_nuxt/{B9BmiUil.js → DAGuPgXa.js} +1 -1
- package/.output/public/_nuxt/{DefDtlKK.js → DE6H1HdJ.js} +1 -1
- package/.output/public/_nuxt/{DzfVS8N72.js → DFhyhDGa2.js} +1 -1
- package/.output/public/_nuxt/{BXx9AxdF2.js → DSqMyLCV2.js} +1 -1
- package/.output/public/_nuxt/{asmJ99nX2.js → DV5joWTn2.js} +1 -1
- package/.output/public/_nuxt/{DClNt1uS.js → DVOR2pWg.js} +1 -1
- package/.output/public/_nuxt/DWsgRq2c.js +1 -0
- package/.output/public/_nuxt/{CU-mhG0-.js → DZDi8inD.js} +1 -1
- package/.output/public/_nuxt/{DMYYS5sK.js → Dep0Hc9w.js} +1 -1
- package/.output/public/_nuxt/{JAM4aNC_.js → DffgG8vT.js} +1 -1
- package/.output/public/_nuxt/{CFQSjB1h.js → DlCktWDT.js} +1 -1
- package/.output/public/_nuxt/{CP0I2l-6.js → DmzmgYHb.js} +1 -1
- package/.output/public/_nuxt/PluginSlot.CGH0vb95.css +1 -0
- package/.output/public/_nuxt/{lWYQbIR3.js → WmMwIS4y.js} +1 -1
- package/.output/public/_nuxt/{_id_.DamiFT0Q.css → _id_.rdGx-UDx.css} +1 -1
- package/.output/public/_nuxt/{BgEDwFMf.js → _kUzq9VF.js} +1 -1
- package/.output/public/_nuxt/_wsId_.XjmieZaJ.css +1 -0
- package/.output/public/_nuxt/{B7jlMWsz.js → aV6YPjg0.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/5ccc21c2-aba0-4b63-9a13-410e0569e345.json +1 -0
- package/.output/public/_nuxt/channel-templates.DkNZg-lF.css +1 -0
- package/.output/public/_nuxt/{default.CXb_zoN6.css → default.CyLpQD1C.css} +1 -1
- package/.output/public/_nuxt/o9rJf00k.js +1 -0
- package/.output/public/_nuxt/sl1EEoCr2.js +21 -0
- package/.output/public/robots.txt +3 -0
- package/.output/server/chunks/_/binding-authz.mjs +1 -1
- package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
- package/.output/server/chunks/_/entity.mjs +1 -1
- package/.output/server/chunks/_/host-bindings.mjs +1 -1
- package/.output/server/chunks/_/nitro.mjs +2268 -1501
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
- package/.output/server/chunks/build/{PluginSlot-D2WUZgbp.mjs → PluginSlot-CT4YaNrB.mjs} +5 -5
- package/.output/server/chunks/build/{PluginSlot-D2WUZgbp.mjs.map → PluginSlot-CT4YaNrB.mjs.map} +1 -1
- package/.output/server/chunks/build/TownView-fP9BiALv.mjs +1 -1
- package/.output/server/chunks/build/{_id_-BUpQSlzo.mjs → _id_-CK-QFrDV.mjs} +55 -51
- package/.output/server/chunks/build/_id_-CK-QFrDV.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-DPy2BXRd.mjs → _wsId_-DdqXzycE.mjs} +320 -202
- package/.output/server/chunks/build/{_wsId_-DPy2BXRd.mjs.map → _wsId_-DdqXzycE.mjs.map} +1 -1
- package/.output/server/chunks/build/{agents-CDLcboCv.mjs → agents-DqICy4AL.mjs} +6 -6
- package/.output/server/chunks/build/{agents-CDLcboCv.mjs.map → agents-DqICy4AL.mjs.map} +1 -1
- package/.output/server/chunks/build/{channel-templates-DjEsj0_v.mjs → channel-templates-gdCLajKy.mjs} +114 -25
- package/.output/server/chunks/build/channel-templates-gdCLajKy.mjs.map +1 -0
- package/.output/server/chunks/build/daq-N69AOtgw.mjs +1 -1
- package/.output/server/chunks/build/dcw-CN9d3Rs7.mjs +1 -1
- package/.output/server/chunks/build/{default-DCf9tn1i.mjs → default-CXUe4HL7.mjs} +65 -62
- package/.output/server/chunks/build/{default-DCf9tn1i.mjs.map → default-CXUe4HL7.mjs.map} +1 -1
- package/.output/server/chunks/build/{pages-rZKH72eC.mjs → pages-CRMeXrxG.mjs} +3 -3
- package/.output/server/chunks/build/{pages-rZKH72eC.mjs.map → pages-CRMeXrxG.mjs.map} +1 -1
- package/.output/server/chunks/build/{plugins-DSka7-vS.mjs → plugins-NAS9MQ5r.mjs} +2 -2
- package/.output/server/chunks/build/{plugins-DSka7-vS.mjs.map → plugins-NAS9MQ5r.mjs.map} +1 -1
- package/.output/server/chunks/build/{schedules-lo4bfgVt.mjs → schedules-D8vYHgQ5.mjs} +2 -2
- package/.output/server/chunks/build/{schedules-lo4bfgVt.mjs.map → schedules-D8vYHgQ5.mjs.map} +1 -1
- package/.output/server/chunks/build/{settings-CAJWvul5.mjs → settings-B7HA-sdb.mjs} +3 -3
- package/.output/server/chunks/build/{settings-CAJWvul5.mjs.map → settings-B7HA-sdb.mjs.map} +1 -1
- package/.output/server/chunks/build/{teams-DBBvIToa.mjs → teams-wM-MdLv9.mjs} +8 -8
- package/.output/server/chunks/build/{teams-DBBvIToa.mjs.map → teams-wM-MdLv9.mjs.map} +1 -1
- package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
- package/.output/server/chunks/build/{useAgentHarnessOptions-D6SJ_uUr.mjs → useAgentHarnessOptions-BnFCh23W.mjs} +2 -2
- package/.output/server/chunks/build/{useAgentHarnessOptions-D6SJ_uUr.mjs.map → useAgentHarnessOptions-BnFCh23W.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAgentTemplateActions-CdG4g_PF.mjs → useAgentTemplateActions-DsBRUQni.mjs} +2 -2
- package/.output/server/chunks/build/{useAgentTemplateActions-CdG4g_PF.mjs.map → useAgentTemplateActions-DsBRUQni.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAgentTemplateForm-a5y-N5sB.mjs → useAgentTemplateForm-DzQ_t2Ue.mjs} +2 -2
- package/.output/server/chunks/build/{useAgentTemplateForm-a5y-N5sB.mjs.map → useAgentTemplateForm-DzQ_t2Ue.mjs.map} +1 -1
- package/.output/server/chunks/build/{useAgentTemplatesCatalog-pBVcUuN3.mjs → useAgentTemplatesCatalog-Q7LgG1Af.mjs} +2 -2
- package/.output/server/chunks/build/{useAgentTemplatesCatalog-pBVcUuN3.mjs.map → useAgentTemplatesCatalog-Q7LgG1Af.mjs.map} +1 -1
- package/.output/server/chunks/build/useDaqAddNode-kW7uTSMQ.mjs +1 -1
- package/.output/server/chunks/build/useDaqDetailNode-D_vhG0jF.mjs +1 -1
- package/.output/server/chunks/build/useDaqDetailParams-JfqHvTxr.mjs +1 -1
- package/.output/server/chunks/build/useDaqFilters-BUQtZ82a.mjs +1 -1
- package/.output/server/chunks/build/useDaqStream-wOxZcMDA.mjs +1 -1
- package/.output/server/chunks/build/useDaqTemplates-BqQRdrIm.mjs +1 -1
- package/.output/server/chunks/build/{useDashboardData-Do_Vsepa.mjs → useDashboardData-DWJ6vHjm.mjs} +2 -2
- package/.output/server/chunks/build/{useDashboardData-Do_Vsepa.mjs.map → useDashboardData-DWJ6vHjm.mjs.map} +1 -1
- package/.output/server/chunks/build/useDcwAddNode-C1HDP3yG.mjs +1 -1
- package/.output/server/chunks/build/useDcwStream-D04kCV3J.mjs +1 -1
- package/.output/server/chunks/build/{useTeamActions-C4n-taBk.mjs → useTeamActions-BOLQkYxg.mjs} +2 -2
- package/.output/server/chunks/build/{useTeamActions-C4n-taBk.mjs.map → useTeamActions-BOLQkYxg.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamAddMemberDialog-Cp_z3nMa.mjs → useTeamAddMemberDialog-BCgrLPxI.mjs} +2 -2
- package/.output/server/chunks/build/{useTeamAddMemberDialog-Cp_z3nMa.mjs.map → useTeamAddMemberDialog-BCgrLPxI.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamCreateDialog-C8LKUoe2.mjs → useTeamCreateDialog-CJk40LqS.mjs} +2 -2
- package/.output/server/chunks/build/{useTeamCreateDialog-C8LKUoe2.mjs.map → useTeamCreateDialog-CJk40LqS.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamDeployDialog-wdBVsNWY.mjs → useTeamDeployDialog-49hdUXQP.mjs} +2 -2
- package/.output/server/chunks/build/{useTeamDeployDialog-wdBVsNWY.mjs.map → useTeamDeployDialog-49hdUXQP.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamPluginDialog-CIk8G8nI.mjs → useTeamPluginDialog-Dh-QOoiU.mjs} +2 -2
- package/.output/server/chunks/build/{useTeamPluginDialog-CIk8G8nI.mjs.map → useTeamPluginDialog-Dh-QOoiU.mjs.map} +1 -1
- package/.output/server/chunks/build/{useTeamsCatalog-D6TULzmS.mjs → useTeamsCatalog-HBSyKt5P.mjs} +2 -2
- package/.output/server/chunks/build/{useTeamsCatalog-D6TULzmS.mjs.map → useTeamsCatalog-HBSyKt5P.mjs.map} +1 -1
- package/.output/server/chunks/build/{useWorkshopApi-B1B9vd4m.mjs → useWorkshopApi-C9sTYu1F.mjs} +13 -2
- package/.output/server/chunks/build/useWorkshopApi-C9sTYu1F.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkshopWs-Bm80bLn7.mjs.map +1 -1
- package/.output/server/chunks/routes/api/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/index.post.mjs +14 -3
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +43 -14
- package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -1
- package/.output/server/chunks/routes/api/metrics.mjs +2 -0
- package/.output/server/chunks/routes/api/metrics.mjs.map +1 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -1
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/backup/list.get.mjs +47 -0
- package/.output/server/chunks/routes/api/system/backup/list.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/backup/run.post.mjs +35 -0
- package/.output/server/chunks/routes/api/system/backup/run.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/config-groups/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/system/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/system/index.patch.mjs +15 -4
- package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/system/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +1 -1
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs +1 -1
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +15 -3
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/timezone.get.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +14 -3
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +14 -3
- package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/users/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/users/login.post.mjs +3 -2
- package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/logout.post.mjs +1 -1
- package/.output/server/chunks/routes/api/users/me.get.mjs +1 -1
- package/.output/server/chunks/routes/api/users/register.post.mjs +4 -1
- package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +19 -15
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs +54 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/grant.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs +51 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/revoke.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id/preview.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/entities/prune.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/recheck.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/uv.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/env/venv.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index3.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index4.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index6.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/index7.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/cancel.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/logs.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id/retry.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/jobs/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/predict.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id/promote.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/models/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id/train.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/training-plans/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/twin/providers.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +10 -4
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +37 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/twin-profile.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +4 -4
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/bindings.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +6 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.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/products/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs +3 -3
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/revert.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/index.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +14 -2
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +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.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +3 -3
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/notifications/read.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id/runs.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/schedules/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id/index2.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +4 -1
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +2 -2
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/virtual/entry.mjs +350 -52
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +7 -3
- package/README.md +11 -5
- package/app/components/app-header/HitlBell.vue +9 -9
- package/app/components/dcw/DcwAddNodeModal.vue +3 -3
- package/app/components/dcw/DcwNodesTable.vue +4 -4
- package/app/components/dcw/DcwRecipeEditModal.vue +2 -2
- package/app/components/workshop/ChatMemberPanel.vue +39 -38
- package/app/components/workshop/ChatTimeline.vue +33 -24
- package/app/components/workshop/Composer.vue +7 -7
- package/app/components/workshop/NotificationCenter.vue +22 -13
- package/app/components/workshop/PluginSlot.vue +1 -1
- package/app/components/workshop/TaskInspectorDrawer.vue +5 -5
- package/app/components/workshop/blocks/ClusterTool.vue +1 -1
- package/app/components/workshop/composer/ComposerToolbar.vue +2 -2
- package/app/components/workshop/composer/MentionMenu.vue +1 -1
- package/app/components/workshop/composer/ReplyChip.vue +2 -2
- package/app/components/workshop/composer/StatusChip.vue +7 -7
- package/app/components/workshop/console/LineOperationsPanel.vue +15 -14
- package/app/components/workshop/lanes/LaneHeader.vue +5 -3
- package/app/components/workshop/session-list/ChannelSettingsModal.vue +43 -1
- package/app/composables/useCodeCopy.ts +16 -2
- package/app/composables/workshop/useWorkshopApi.ts +11 -2
- package/app/pages/workshop/channel-templates.vue +43 -4
- package/app/stores/workshop/notifications.ts +43 -17
- package/config.yml +1 -1
- package/docs/cli.en.md +3 -3
- package/docs/cli.md +2 -2
- package/docs/plugins.en.md +1 -1
- package/docs/plugins.md +1 -1
- package/docs/sdk.en.md +1 -1
- package/docs/sdk.md +1 -1
- package/i18n/dicts/_en.json +1551 -1557
- package/i18n/dicts/_en2.json +300 -300
- package/i18n/dicts/_en4.json +114 -115
- package/i18n/dicts/agentLanesView.json +61 -57
- package/i18n/dicts/appHeader.json +17 -7
- package/i18n/dicts/channelSessionList.json +51 -48
- package/i18n/dicts/chat.json +79 -0
- package/i18n/dicts/clusterTool.json +4 -3
- package/i18n/dicts/composer.json +38 -38
- package/i18n/dicts/ctpl.json +37 -32
- package/i18n/dicts/dcwDetail.json +219 -209
- package/i18n/dicts/lineOps.json +14 -0
- package/i18n/dicts/multiChannelView.json +13 -13
- package/i18n/dicts/notifications.json +13 -0
- package/i18n/dicts/taskInspectorDrawer.json +25 -19
- package/i18n/locales/en.ts +157 -8
- package/i18n/locales/zh-CN.ts +157 -8
- package/package.json +1 -1
- package/public/robots.txt +3 -0
- package/scripts/_audit/kb-team-mock-e2e.mjs +146 -0
- package/scripts/_audit/kb-team-omp-e2e.mjs +229 -0
- package/server/api/mcp/workshop.ts +8 -1
- package/server/api/metrics.ts +4 -1
- package/server/api/plugins/[name]/[...path].ts +4 -3
- package/server/api/system/backup/list.get.ts +32 -0
- package/server/api/system/backup/run.post.ts +21 -0
- package/server/api/system/settings/index.patch.ts +12 -2
- package/server/api/system/settings/reset.post.ts +11 -2
- package/server/api/users/[id].delete.ts +9 -2
- package/server/api/users/[id].put.ts +9 -2
- package/server/api/users/index.post.ts +9 -2
- package/server/api/users/login.post.ts +3 -3
- package/server/api/users/register.post.ts +11 -1
- package/server/api/workshop/a2a/[agentId]/rpc/index.post.ts +23 -13
- package/server/api/workshop/agent-tools/bindings/grant.post.ts +45 -0
- package/server/api/workshop/agent-tools/bindings/revoke.post.ts +42 -0
- package/server/api/workshop/channel-templates/[id]/instantiate.post.ts +8 -1
- package/server/api/workshop/channels/[id]/line.put.ts +30 -0
- package/server/api/workshop/dcw/line/query.get.ts +6 -0
- package/server/api/workshop/dcw/recipes/[id]/revert.post.ts +3 -2
- package/server/api/workshop/fs/dirs.get.ts +19 -1
- package/server/api/workshop/ops-logs/index.get.ts +3 -2
- package/server/api/workshop/users/register.post.ts +7 -0
- package/server/mcp/workshop-server.ts +36 -13
- package/server/middleware/00-security-headers.ts +38 -0
- package/server/middleware/01-rate-guard.ts +101 -0
- package/server/plugins/backup.ts +56 -1
- package/server/plugins-builtin/diag-bridge/host/plugin.mjs +18 -11
- package/server/repositories/user.repository.ts +10 -5
- package/server/services/user.service.ts +24 -1
- package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +7 -2
- package/server/services/workshop/agents/host-tool-bridge/tools/industrial.ts +4 -2
- package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +15 -2
- package/server/services/workshop/agents/host-tool-bridge/tools/team-delegation.ts +104 -0
- package/server/services/workshop/agents/industrial/index.ts +1 -1
- package/server/services/workshop/agents/industrial/ops-tools.ts +168 -26
- package/server/services/workshop/agents/node-bindings.repo.ts +10 -1
- package/server/services/workshop/agents/node-delegation.ts +150 -0
- package/server/services/workshop/agents/tool-classes.ts +4 -0
- package/server/services/workshop/aml/dataset-builder.ts +4 -2
- package/server/services/workshop/aml/job-orchestrator/process.ts +1 -0
- package/server/services/workshop/aml/job-orchestrator/shared.ts +2 -0
- package/server/services/workshop/aml/job-orchestrator/start-job.ts +5 -2
- package/server/services/workshop/db/channel.repo.ts +11 -1
- package/server/services/workshop/db/database/migrations.ts +2 -0
- package/server/services/workshop/db/database/rows.ts +2 -0
- package/server/services/workshop/db/database/seed.ts +30 -0
- package/server/services/workshop/dcw/dcw-controller/recipes.ts +60 -4
- package/server/services/workshop/dcw/dcw-controller/write.ts +35 -6
- package/server/services/workshop/dcw/dcw-recipe.repo.ts +4 -3
- package/server/services/workshop/dcw/param-map.repo.ts +3 -0
- package/server/services/workshop/plugins/host/init.mjs +9 -1
- package/server/services/workshop/plugins/host/load.mjs +2 -2
- package/server/services/workshop/runtime/manager/admin-channel.ts +27 -1
- package/server/services/workshop/runtime/manager/channel-templates.ts +27 -2
- package/server/services/workshop/runtime/manager/runtime-wiring.ts +17 -1
- package/server/services/workshop/runtime/manager/types.ts +2 -0
- package/shared/config/schema.json +2 -0
- package/.output/public/_nuxt/8FXd9As6.js +0 -1
- package/.output/public/_nuxt/BOmDHp5L.js +0 -14
- package/.output/public/_nuxt/BWU1pvLL.js +0 -1
- package/.output/public/_nuxt/CdIsmU5a2.js +0 -21
- package/.output/public/_nuxt/D0SNhlnt.js +0 -1
- package/.output/public/_nuxt/DnH9SRMW2.js +0 -1
- package/.output/public/_nuxt/ON2x-t6n.js +0 -1
- package/.output/public/_nuxt/PluginSlot.DmjNbrcX.css +0 -1
- package/.output/public/_nuxt/_wsId_.DkrQkT6r.css +0 -1
- package/.output/public/_nuxt/builds/meta/912eb5bb-670e-4cc8-b21d-7fc097723466.json +0 -1
- package/.output/public/_nuxt/channel-templates.DplM1pJ3.css +0 -1
- package/.output/server/chunks/build/_id_-BUpQSlzo.mjs.map +0 -1
- package/.output/server/chunks/build/channel-templates-DjEsj0_v.mjs.map +0 -1
- package/.output/server/chunks/build/useWorkshopApi-B1B9vd4m.mjs.map +0 -1
- package/scripts/.chk-tok +0 -1
- package/scripts/.retrain-body.json +0 -1
- package/scripts/.retrain3-body.json +0 -1
- package/scripts/.rt-tok +0 -1
- package/scripts/.rt3-tok +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{v as e}from"./CavpkQb0.js";import{P as t,R as n,et as r}from"./ByMj6e7s.js";import{i}from"./S799kNo8.js";import{t as a}from"./RAqsw632.js";import{t as o}from"./36oeS8_R.js";import{t as s}from"./CI2yXRr42.js";import{n as c}from"./Bfe2qOYs.js";import{t as l}from"./Ch1P2mIf.js";import{t as u}from"./JgheoP3e.js";var d=50,f=10,p=2e3,m=i(`workshop.notifications`,()=>{let t=e([]),n=e(0),r=e(null),i=e(new Set),a=e(!1),o=e(null),u=e(0),m=e(!1),h=null;function g(e=5e3){m.value=!0,h&&clearTimeout(h),h=setTimeout(()=>{m.value=!1,h=null},e)}function _(){m.value=!1,h&&=(clearTimeout(h),null)}function v(e){if(!e)return;let t=i.value;if(t.has(e)||t.add(e),t.size>p){let e=[...t].slice(-Math.floor(p/2));i.value=new Set(e)}}function y(e){let n=t.value,r=0;for(;r<n.length&&n[r].createdAt>=e.createdAt;)r++;n.splice(r,0,e)}function b(e,r={}){if(!e?.id)return!1;let a=t.value.findIndex(t=>t.id===e.id);return a>=0?(t.value[a]={...t.value[a],...e},!1):e.eventId&&i.value.has(e.eventId)?!1:(v(e.eventId),y(e),e.readAt||(n.value+=1),x(e),r.live&&(o.value=e,u.value+=1),!0)}function x(e){let t=r.value;(!t||e.createdAt>t.createdAt||e.createdAt===t.createdAt&&e.id>t.id)&&(r.value={createdAt:e.createdAt,id:e.id})}function S(e){if(e.type===`notification.created`){b(e.payload,{live:!m.value});return}e.type===`notification.read`&&C(e.payload)}function C(e){let r=e.readAt||c();for(let n of t.value)n.readAt||e.id&&n.id!==e.id||!e.id&&e.channelId&&n.channelId!==e.channelId||(n.readAt=r);n.value=t.value.filter(e=>!e.readAt).length}async function w(e){let t=s().token,n={limit:String(d)};e&&(n.cursor=`${e.createdAt}|${e.id}`);let r=Object.entries(n).map(([e,t])=>`${e}=${encodeURIComponent(t)}`).join(`&`),i=await l(`/api/workshop/notifications?${r}`,{headers:t?{authorization:`Bearer ${t}`}:{}});if(i.code!==0||!i.data)throw Error(i.message??`通知拉取失败`);return i.data}async function T(){if(!(typeof window>`u`||!s().token))try{let e=await w(null);t.value=[...e.notifications??[]];for(let e of t.value)v(e.eventId);n.value=e.unreadCount??t.value.filter(e=>!e.readAt).length;let i=t.value[0];r.value=i?{createdAt:i.createdAt,id:i.id}:null,a.value=!0}catch{}}async function E(){if(typeof window>`u`||!s().token)return 0;if(!a.value)return await T(),0;let e=0;try{for(let t=0;t<f;t+=1){let t=await w(r.value),i=t.notifications??[];for(let t of i)b(t)&&(e+=1);if(t.nextCursor&&(r.value=t.nextCursor),n.value=t.unreadCount??n.value,i.length<d||!t.nextCursor)return e}return e}catch{return e}}function D(e){e&&(!r.value||e.createdAt>r.value.createdAt||e.createdAt===r.value.createdAt&&e.id>r.value.id)&&(r.value=e)}async function O(e){let r=s().token,i=await l(`/api/workshop/notifications/read`,{method:`POST`,body:{...e},headers:r?{authorization:`Bearer ${r}`}:{}});if(i.code!==0||!i.data)throw Error(i.message??`标记已读失败`);let a=c();for(let n of t.value)n.readAt||e.id&&n.id!==e.id||!e.id&&!e.all&&e.channelId&&n.channelId!==e.channelId||(n.readAt=a);return n.value=i.data.unreadCount??t.value.filter(e=>!e.readAt).length,i.data.count??0}function k(){t.value=[],n.value=0,r.value=null,i.value=new Set,a.value=!1,o.value=null,_()}return{items:t,unreadCount:n,cursor:r,seenEventIds:i,loaded:a,liveItem:o,liveSeq:u,replaying:m,beginReplay:g,endReplay:_,applyEnvelope:S,applyRead:C,upsertNotification:b,loadSnapshot:T,backfill:E,applyReplayCursor:D,markRead:O,clear:k}}),h=45e3,g=9e4,_=i(`workshop.connection`,{state:()=>({state:`closed`,cursors:{},lastDataAt:0,pendingReplay:!1,lastError:``,retryCount:0})}),v=class{onEvent;onStateChange;onPendingReplay;onDataRecovered;ws=null;retry=0;closedByUser=!1;subscribed=new Set;refCounts=new Map;lastSeqByChannel=new Map;lastFrameAt=0;lastDataAt=0;userToken=``;constructor(e,t,n=()=>{},r=()=>{}){this.onEvent=e,this.onStateChange=t,this.onPendingReplay=n,this.onDataRecovered=r}updateCursor(e,t){Number.isFinite(t)&&this.lastSeqByChannel.set(e,t)}url(){return typeof location>`u`?`ws://localhost/api/workshop/ws`:`${location.protocol===`https:`?`wss`:`ws`}://${location.host}/api/workshop/ws${this.userToken?`?token=${encodeURIComponent(this.userToken)}`:``}`}connect(){if(typeof window>`u`)return;this.onStateChange(`connecting`,this.retry);let e=new WebSocket(this.url());this.ws=e,this.lastFrameAt=Date.now(),this.lastDataAt=Date.now(),e.onopen=()=>{this.retry=0,this.onStateChange(`open`,0);for(let e of this.subscribed)this.sendSub(e,this.lastSeqByChannel.get(e))},e.onmessage=e=>{this.lastFrameAt=Date.now();try{let t=JSON.parse(e.data);t.type!==`pong`&&(this.lastDataAt=Date.now(),this.onDataRecovered()),this.onEvent(t)}catch{}},e.onclose=()=>{if(this.ws=null,this.closedByUser){this.onStateChange(`closed`,0);return}this.onStateChange(`closed`,this.retry),this.subscribed.size>0&&this.onPendingReplay();let e=Math.min(1e3*2**this.retry,1e4);this.retry+=1,setTimeout(()=>{this.closedByUser||this.connect()},e)},e.onerror=()=>{}}checkStale(){let e=this.ws;!e||e.readyState!==WebSocket.OPEN||(Date.now()-this.lastFrameAt>h||Date.now()-this.lastDataAt>g)&&e.close()}sendSub(e,t){let n={type:`sub`,channelId:e,token:this.userToken};typeof t==`number`&&(n.lastSeq=t),this.ws?.send(JSON.stringify(n))}subscribe(e,t){let n=this.refCounts.get(e)??0;this.refCounts.set(e,n+1),!(n>0)&&(this.subscribed.add(e),typeof t==`number`&&this.lastSeqByChannel.set(e,t),this.ws?.readyState===WebSocket.OPEN?this.sendSub(e,this.lastSeqByChannel.get(e)):this.ws||this.connect())}ensureConnected(){typeof window>`u`||this.ws||this.connect()}unsubscribe(e){let t=this.refCounts.get(e)??0;t<=1?(this.refCounts.delete(e),this.subscribed.delete(e),this.ws?.readyState===WebSocket.OPEN&&this.ws?.send(JSON.stringify({type:`unsub`,channelId:e}))):this.refCounts.set(e,t-1)}refCount(e){return this.refCounts.get(e)??0}ping(){try{this.ws?.send(JSON.stringify({type:`ping`}))}catch{try{this.ws?.close()}catch{}}}close(){this.closedByUser=!0,this.ws?.close()}},y={silent:0,status:1,attention:2,terminal:3};function b(e){switch(e.type){case`error`:return`attention`;case`a2a.artifact`:case`agent.message`:return`terminal`;case`task.status`:{let t=String(e.payload.state??``);return t===`COMPLETED`||t===`FAILED`||t===`CANCELED`?`terminal`:t===`WAITING`?`attention`:`status`}case`a2a.message`:return(e.payload.metadata??{})[`x-aw-require-reply`]===`true`?`attention`:`status`;case`agent.delta`:case`agent.status.message`:case`task.progress`:case`memory.saved`:return`silent`;default:return`status`}}function x(e){let t=`silent`;for(let n of e){let e=b(n);y[e]>y[t]&&(t=e)}return t}var S=5e3,C=[`agent.delta`],w={all:null,messages:[`agent.message`,`agent.delta`,`agent.status.message`,`a2a.message`],tasks:[`task.status`,`task.progress`,`a2a.artifact`],team:[`agent.member`,`task.status`],errors:[`error`],key:null};function T(e,t,n,r){if(e.type===`channel.snapshot`)return!1;if(t===`key`){let t=b(e);return t===`attention`||t===`terminal`}return n&&!n.includes(e.type)?!1:r&&e.type!==`task.status`&&e.type!==`task.progress`?e.agentId===r||e.type===`a2a.message`&&e.payload.metadata?.[`x-aw-target-agent`]===r:!0}function E(e,t,n,r){return e.filter(e=>T(e,t,n,r))}var D=Object.freeze([]),O=new Map;function k(e,t){let n=0,r=e.length;for(;n<r;){let i=n+r>>>1;(e[i]?.seq??0)>t?r=i:n=i+1}return n}var A=()=>({lastSeq:0,items:[],consumed:new Set,byAgent:new Map});function j(e,t){let n=t.agentId;if(!n)return;let r=e.byAgent.get(n);r?r.push(t):e.byAgent.set(n,[t])}function M(e,t){for(let n of t){let t=e.byAgent.get(n.agentId??``);if(!t)continue;let r=t.indexOf(n);r>=0&&t.splice(r,1),t.length===0&&e.byAgent.delete(n.agentId??``)}}function N(e){e.byAgent.clear();for(let t of e.items)j(e,t)}function P(e,t,n){let r=0;for(let i of t)typeof i.seq!=`number`||i.seq>n||e.consumed.has(i.seq)||(e.items.push(i),e.consumed.add(i.seq),r+=1);if(r>0){e.items.sort((e,t)=>e.seq-t.seq);let t=e.items.length-S;t>0&&e.items.splice(0,t),N(e)}return r}var F=i(`workshop.events`,{state:()=>({rings:{},filters:{},focusAgents:{},laneLoaded:{}}),getters:{ring(e){return t=>e.rings[t]??A()},timeline(e){return t=>{let n=e.rings[t];if(!n)return D;let r=e.filters[t]??`all`,i=e.focusAgents[t]??null,a=n.items,o=w[r],s=a.length>0?a[a.length-1]?.seq??0:-1,c=O.get(t);if(!c||c.filter!==r||c.focus!==i||a.length===0&&c.result.length>0||c.lastSeq>s){let e=E(a,r,o,i);return O.set(t,{filter:r,focus:i,lastSeq:s,result:e}),e}let l=a[0]?.seq??0,u=c.result;if(u.length>0&&(u[0]?.seq??0)<l){let e=0;for(;e<u.length&&(u[e]?.seq??0)<l;)e++;u.splice(0,e)}if(s>c.lastSeq){let e=k(a,c.lastSeq);for(let t=e;t<a.length;t++){let e=a[t];T(e,r,o,i)&&u.push(e)}c.lastSeq=s}return u}},agentEvents(e){return(t,n)=>n?e.rings[t]?.byAgent.get(n)??D:D},lastSeq(e){return t=>e.rings[t]?.lastSeq??0}},actions:{ingest(e){if(!e.channelId)return;let t=this.rings[e.channelId]??A();if(e.type===`channel.snapshot`){this.rings[e.channelId]={lastSeq:e.seq,items:[],consumed:new Set([e.seq]),byAgent:new Map};return}if(typeof e.seq==`number`&&e.seq>t.lastSeq){if(t.consumed.add(e.seq),e.type===`agent.delta`){let n=t.items[t.items.length-1];if(n&&n.type===`agent.delta`&&n.agentId===e.agentId&&(n.taskId??null)===(e.taskId??null)&&n){let r=n.payload.delta;n.payload.delta=r+e.payload.delta,t.lastSeq=e.seq,this.rings[e.channelId]=t;return}}t.items.push(e),j(t,e),t.items.length>S&&M(t,t.items.splice(0,t.items.length-S)),t.lastSeq=e.seq,t.consumed.size>2e4&&(t.consumed=new Set(t.items.map(e=>e.seq))),this.rings[e.channelId]=t}},setFilter(e,t){this.filters[e]=t},async loadHistory(e,t=200){if(typeof window>`u`)return;let n=this.rings[e]??A();try{let r=await l(`/api/workshop/channels/${e}/events`,{params:{limit:t,excludeTypes:C.join(`,`)},headers:{authorization:`Bearer ${s().token}`}});if(r.code!==0||!r.data?.items?.length)return;P(n,r.data.items,n.lastSeq),this.rings[e]=n}catch{}},async loadEarlier(e,t=200){if(typeof window>`u`)return!1;let n=this.rings[e];if(!n)return!1;let r=n.items.length>0?n.items[0]?.seq??0:n.lastSeq;if(r<=1)return!1;try{let i=await l(`/api/workshop/channels/${e}/events`,{params:{limit:t,beforeSeq:Math.max(1,r-1),excludeTypes:C.join(`,`)},headers:{authorization:`Bearer ${s().token}`}});if(i.code!==0||!i.data?.items?.length)return!1;let a=P(n,i.data.items,n.lastSeq);return a>0&&(this.rings[e]=n),a>0&&i.data.items.length>=t}catch{return!1}},async loadLaneHistory(e,t,n=200){if(typeof window>`u`||this.laneLoaded[e]?.has(t))return;(this.laneLoaded[e]??=new Set).add(t);for(let t=0;t<20&&this.lastSeq(e)===0;t++)await new Promise(e=>setTimeout(e,150));if(this.lastSeq(e)===0){this.laneLoaded[e]?.delete(t);return}let r=this.rings[e];try{let i=await l(`/api/workshop/channels/${e}/events`,{params:{limit:n,agentId:t,excludeTypes:C.join(`,`)},headers:{authorization:`Bearer ${s().token}`}});i.code===0&&i.data?.items?.length&&(P(r,i.data.items,r.lastSeq),this.rings[e]=r)}catch{this.laneLoaded[e]?.delete(t)}},async loadLaneEarlier(e,t,n=200){if(typeof window>`u`)return!1;let r=this.rings[e];if(!r)return!1;let i=0;for(let e of r.items)if(e.agentId===t){i=e.seq;break}if(i<=1)return!1;try{let a=await l(`/api/workshop/channels/${e}/events`,{params:{limit:n,agentId:t,beforeSeq:i-1,excludeTypes:C.join(`,`)},headers:{authorization:`Bearer ${s().token}`}});if(a.code!==0||!a.data?.items?.length)return!1;let o=P(r,a.data.items,r.lastSeq);return o>0&&(this.rings[e]=r),o>0&&a.data.items.length>=n}catch{return!1}},setFocusAgent(e,t){this.focusAgents[e]=t},clear(e){Reflect.deleteProperty(this.rings,e),Reflect.deleteProperty(this.laneLoaded,e)}}});function I(e){return e===`COMPLETED`||e===`FAILED`||e===`CANCELED`}function L(){return{activeRootId:null,queuedRoots:[],completedRoots:0,activeRootCount:0,queuedRootCount:0}}function R(e){let t=e.filter(e=>!e.parentId&&e.rootQueueSeq!=null).sort((e,t)=>(e.rootQueueSeq??0)-(t.rootQueueSeq??0)||String(e.createdAt).localeCompare(String(t.createdAt))),n=t.filter(e=>!I(e.state));return{activeRootId:n[0]?.id??null,queuedRoots:n.slice(1).map((e,t)=>({taskId:e.id,title:e.title,position:t+2,state:e.state,createdAt:e.createdAt})),completedRoots:t.length-n.length,activeRootCount:+(n.length>0),queuedRootCount:Math.max(0,n.length-1)}}var z=i(`workshop.entities`,{state:()=>({channels:{},agents:{},tasks:{},rootQueues:{},refreshing:{},refreshingAgents:{}}),getters:{agentById(e){return(t,n)=>e.agents[t]?.find(e=>e.agentId===n)},agentName(e){return(t,n)=>n?e.agents[t]?.find(e=>e.agentId===n)?.name??n.slice(0,8):`system`},taskTitle(e){return(t,n)=>n?e.tasks[t]?.find(e=>e.id===n)?.title??n.slice(0,8):``},rootTasks(e){return t=>(e.tasks[t]??[]).filter(e=>!e.parentId)},taskById(e){return(t,n)=>e.tasks[t]?.find(e=>e.id===n)},busyCount(e){return t=>(e.agents[t]??[]).filter(e=>e.state===`busy`).length},rootQueue(e){return t=>e.rootQueues[t]??L()},activeRootId(e){return t=>e.rootQueues[t]?.activeRootId??(e.tasks[t]??[]).filter(e=>!e.parentId&&!I(e.state))[0]?.id??null}},actions:{applySnapshot(e){let{channelId:t}=e;this.channels[t]={...e.channel,loadedAt:Date.now()},this.agents[t]=e.agents.map(e=>({...e,modelRef:e.config?.modelRef??e.modelRef??null})),this.tasks[t]=e.tasks.map(e=>this.toTaskView(e)),this.rootQueues[t]=e.rootQueue??R(e.tasks)},applyEvent(e){let t=e.channelId;switch(e.type){case`agent.status`:{let n=this.agents[t]??[],r=e.payload,i={agentId:r.agentId,state:r.state,currentTaskId:r.currentTaskId??null,currentTaskTitle:r.currentTaskTitle??null,currentTaskProgress:r.currentTaskProgress??null,queued:r.queued??r.queuedCount??0,completed:r.completed??r.completedCount??0,...r.context===void 0?{}:{context:r.context},...r.supervision?{supervision:r.supervision}:{},...r.continuity?{continuity:r.continuity}:{}},a=n.findIndex(e=>e.agentId===i.agentId);if(a>=0)n[a]={...n[a],...i};else{let e={agentId:i.agentId,state:i.state,currentTaskId:i.currentTaskId??null,queued:i.queued,completed:i.completed,name:i.agentId.slice(0,8),role:`worker`,harness:`-`,...r.supervision?{supervision:r.supervision}:{},...r.continuity?{continuity:r.continuity}:{}};n.push(e),this.refreshAgents(t)}this.agents[t]=[...n];break}case`agent.member`:{let n=e.payload,r=this.agents[t]??[],i=r.findIndex(e=>e.agentId===n.agentId);if(n.op===`added`)i<0&&r.push({agentId:n.agentId,name:n.name,role:n.role,harness:n.harness,enabled:n.enabled,config:n.config,modelRef:n.config?.modelRef??null,state:`idle`,currentTaskId:null,queued:0,completed:0});else if(n.op===`updated`){if(i>=0){let e=r[i],t=n.config??e.config;r[i]={...e,name:n.name??e.name,role:n.role??e.role,harness:n.harness??e.harness,enabled:n.enabled??e.enabled,config:t,modelRef:t?.modelRef??e.modelRef??null}}}else n.op===`removed`&&i>=0&&r.splice(i,1);this.agents[t]=[...r];break}case`task.status`:{let n=e.payload,r=this.tasks[t]??[],i=r.findIndex(e=>e.id===n.taskId);if(i>=0){let e=r[i];r[i]={...e,state:n.state,assigneeId:n.assigneeId??e.assigneeId,title:n.title??e.title,parentId:n.parentId??e.parentId,rootQueueSeq:n.rootQueueSeq??e.rootQueueSeq,progress:Math.max(e.progress,n.progress??0),routeReason:n.routeReason??e.routeReason,closeReason:n.closeReason??e.closeReason,deadlineAt:n.deadlineAt??e.deadlineAt,retryCount:n.retryCount??e.retryCount,createdAt:n.createdAt??e.createdAt,artifacts:Math.max(e.artifacts,n.artifacts??0)}}else{let e={id:n.taskId,title:n.title??n.taskId.slice(0,8),state:n.state,progress:n.progress??0,assigneeId:n.assigneeId??``,artifacts:n.artifacts??0};n.parentId&&(e.parentId=n.parentId),n.rootQueueSeq!=null&&(e.rootQueueSeq=n.rootQueueSeq),n.routeReason&&(e.routeReason=n.routeReason),n.closeReason&&(e.closeReason=n.closeReason),n.deadlineAt&&(e.deadlineAt=n.deadlineAt),n.retryCount!=null&&(e.retryCount=n.retryCount),n.createdAt&&(e.createdAt=n.createdAt),r.push(e),n.title===void 0&&this.refreshTasks(t)}this.tasks[t]=[...r];break}case`task.progress`:{let n=e.payload,r=this.tasks[t]??[],i=r.findIndex(e=>e.id===n.taskId),a=i>=0?r[i]:void 0;a&&(r[i]={...a,progress:n.progress}),this.tasks[t]=[...r];break}case`root.queue`:this.rootQueues[t]=e.payload;break;case`a2a.artifact`:{let n=e.payload;if(!n.taskId)break;let r=this.tasks[t]??[],i=r.findIndex(e=>e.id===n.taskId),a=i>=0?r[i]:void 0;a&&(r[i]={...a,artifacts:a.artifacts+1}),this.tasks[t]=[...r];break}}},toTaskView(e){return{id:e.id,parentId:e.parentId,rootQueueSeq:e.rootQueueSeq,title:e.title,state:e.state,progress:e.progress,assigneeId:e.assigneeId,artifacts:e.artifacts.length,routeReason:e.routeReason,sourceChatMessageId:e.sourceChatMessageId,sourceChatDeliveryId:e.sourceChatDeliveryId,retryCount:e.retryCount,closeReason:e.closeReason,deadlineAt:e.deadlineAt,createdAt:e.createdAt,updatedAt:e.updatedAt}},refreshChannel(e,t){this.applySnapshot(t)},refreshAgents(e){this.refreshingAgents[e]||(this.refreshingAgents[e]=!0,l(`/api/workshop/channels/${e}/agents`,{headers:{authorization:`Bearer ${s().token}`}}).then(t=>{let n=t.data??[],r=[...this.agents[e]??[]];for(let e of n){let t=r.findIndex(t=>t.agentId===e.id);t>=0?r[t]={...r[t],name:e.name,role:e.role,harness:e.harness,config:e.config}:r.push({agentId:e.id,name:e.name,role:e.role,harness:e.harness,config:e.config,state:`idle`,currentTaskId:null,queued:0,completed:0})}this.agents[e]=r}).catch(()=>{}).finally(()=>{this.refreshingAgents[e]=!1}))},refreshTasks(e){this.refreshing[e]||(this.refreshing[e]=!0,l(`/api/workshop/channels/${e}/tasks`,{headers:{authorization:`Bearer ${s().token}`}}).then(t=>{let n=t.data??[],r=this.tasks[e]??[],i=new Map(r.map(e=>[e.id,e])),a=new Set(n.map(e=>e.id)),o=n.map(e=>{let t=i.get(e.id),n=this.toTaskView(e);return t&&t.progress>n.progress?{...n,progress:t.progress}:n});for(let e of r)a.has(e.id)||o.push(e);this.tasks[e]=o}).catch(()=>{}).finally(()=>{this.refreshing[e]=!1}))}}}),B=e=>`${e.kind}:${e.id}`;function V(e){let t=e??{},n=t.data?.code??t.response?.data?.code,r=Number(t.statusCode??t.status??t.response?.status??0);return{ok:!1,code:n==null?r===409?`ALREADY_RESOLVED`:r===403?`APPROVAL_FORBIDDEN`:r?`HTTP_${r}`:``:String(n),message:u(e)}}var H=i(`workshop.hitl`,{state:()=>({items:[],snapshotLoaded:!1,answering:null}),getters:{count:e=>e.items.length,byAgent:e=>{let t=new Map;for(let n of e.items){let e=t.get(n.agentId)??[];e.push(n),t.set(n.agentId,e)}return t},byKey:e=>(t,n)=>e.items.find(e=>e.kind===t&&e.id===n)},actions:{applyEnvelope(e){if(e.type===`hitl.request`){let t=e.payload,n=B(t),r=this.items.findIndex(e=>B(e)===n);r>=0?this.items[r]=t:this.items.push(t)}else if(e.type===`hitl.resolved`){let t=e.payload;this.items=this.items.filter(e=>B(e)!==B(t))}},async loadSnapshot(){if(typeof window>`u`)return;let e=s().token;if(e)try{let t=await l(`/api/workshop/hitl/pending`,{headers:{authorization:`Bearer ${e}`}});t.code===0&&t.data&&(this.items=t.data.items,this.snapshotLoaded=!0)}catch{}},async answer(e,t){let n=B(e);if(this.answering)return{ok:!1,code:`BUSY`,message:`已有应答提交中`};this.answering=n;let r=s().token;try{let i=await l(`/api/workshop/hitl/respond`,{method:`POST`,body:{kind:e.kind,id:e.id,...t},headers:r?{authorization:`Bearer ${r}`}:{}});return i.code===0?(this.items=this.items.filter(e=>B(e)!==n),await this.loadSnapshot(),{ok:!0,code:``,message:i.message??`ok`}):(await this.loadSnapshot(),{ok:!1,code:String(i.code??``),message:i.message??`应答失败`})}catch(e){let t=V(e);return(t.code===`ALREADY_RESOLVED`||t.code===`APPROVAL_FORBIDDEN`||t.code===`NOT_RESPONDABLE`)&&await this.loadSnapshot(),t}finally{this.answering=null}},invalidate(){this.snapshotLoaded=!1},clear(){this.items=[],this.snapshotLoaded=!1,this.answering=null}}});function U(e){let t=e??{},n=t.response?.data?.code??t.data?.code;return n==null?``:String(n)}function W(e){let t=e??{},n=t.response?.data?.message??t.data?.message;return typeof n==`string`&&n.trim()?n.trim():u(e)}function G(e,t){let n=e.length;for(let r=e.length-1;r>=0;r--){if(e[r].createdAt<=t.createdAt){n=r+1;break}n=r}e.splice(n,0,t)}var K=i(`workshop.chat`,()=>{let t=e({}),n=e({}),r=e({}),i=e({}),a=e({}),o=e(new Set),u=e({}),d=e({}),f=e(null);function p(e){return t.value[e]??=[]}function m(e,t){let n=t||e.channelId;if(!n||!e?.id)return!1;let r=p(n),i=r.findIndex(t=>t.id===e.id);return i>=0?(r[i]={...r[i],...e},!1):(G(r,e),!0)}function h(e){let t=e.channelId;if(!t||!e.deliveryId)return;let n=i.value[t]??={};n[e.deliveryId]={...n[e.deliveryId],...e}}function g(e){switch(e.type){case`chat.message`:m(e.payload,e.channelId||void 0);break;case`chat.delivery.status`:h(e.payload);break;case`chat.member`:{let t=e.payload,r=e.channelId;if(!r||!t?.userId)break;let i=n.value[r]??=[],a=i.findIndex(e=>e.userId===t.userId),o={userId:t.userId,displayName:t.displayName??null,role:t.role,status:t.status,joinedAt:t.joinedAt,leftAt:t.leftAt??null};a>=0?i[a]=o:i.push(o);break}case`chat.settings`:{let t=e.payload,n=t?.id||e.channelId;n&&(r.value[n]=t);break}}}function _(e,t,i){if(e){t?.channel&&(r.value[e]=t.channel),Array.isArray(t?.members)&&(n.value[e]=t.members.map(e=>({...e})));for(let n of t?.chatMessages??[])m(n,e);t?.permissions?a.value[e]=t.permissions:i!==void 0&&(a.value[e]=i??null),o.value.add(e)}}async function v(e,t={}){let n=s().token,r=t.query?`?${Object.entries(t.query).filter(([,e])=>e!==void 0&&e!==``).map(([e,t])=>`${e}=${encodeURIComponent(String(t))}`).join(`&`)}`:``,i=await l(`${e}${r}`,{method:t.method??`GET`,body:t.body,headers:n?{authorization:`Bearer ${n}`}:{}});if(i.code!==0||i.data==null)throw Error(i.message??`群聊请求失败`);return i.data}async function y(e,t={}){if(typeof window>`u`||!e)return!1;let n=t.limit??50;d.value[e]=!0;try{let r=await v(`/api/workshop/channels/${e}/chat/messages`,{query:{before:t.before,limit:n}});for(let t of r.messages??[])m(t,e);r.permissions&&(a.value[e]=r.permissions),o.value.add(e);let i=(r.messages?.length??0)>=n;return u.value[e]=i,i}finally{d.value[e]=!1}}async function b(e){if(!(typeof window>`u`||!e))try{let t=await v(`/api/workshop/channels/${e}/members`);n.value[e]=t.members??[],t.permissions&&(a.value[e]=t.permissions)}catch{}}async function x(e){if(typeof window>`u`||!e)return null;try{let t=await v(`/api/workshop/channels/${e}/chat/permissions`);return t.channel&&(r.value[e]=t.channel),a.value[e]=t.permissions,t.permissions}catch{return a.value[e]=null,null}}async function S(e){let t=await v(`/api/workshop/channels/${e.channelId}/chat/messages`,{method:`POST`,body:{text:e.text,mentions:e.mentions??[],replyToId:e.replyToId??null,clientMessageId:e.clientMessageId}});t.message&&m(t.message,e.channelId);for(let n of t.deliveries??[])h({deliveryId:n.deliveryId,chatMessageId:t.message?.id??``,channelId:e.channelId,targetAgentId:n.agentId,mailboxMessageId:null,status:n.status,updatedAt:c()});return t}async function C(e){let t=await v(`/api/workshop/channels/${e}/members/join`,{method:`POST`,body:{}});return t.permissions&&(a.value[e]=t.permissions),await Promise.all([b(e).catch(()=>{}),y(e).catch(()=>{})]),t.status}async function w(e){await v(`/api/workshop/channels/${e}/members/leave`,{method:`POST`,body:{}}),await x(e)}async function T(e,t){await v(`/api/workshop/channels/${e}/members/${encodeURIComponent(t)}`,{method:`DELETE`}),await b(e)}async function E(e,t){await v(`/api/workshop/channels/${e}/members/${encodeURIComponent(t)}/approve`,{method:`POST`,body:{}}),await b(e)}async function D(e,t){let n=r.value[e]?.version,i=await v(`/api/workshop/channels/${e}`,{method:`PATCH`,body:{...t,version:n}}),a=r.value[e];r.value[e]={id:i.id??e,name:i.name??a?.name??``,description:i.description??a?.description??``,visibility:i.visibility??a?.visibility??`private`,joinPolicy:i.joinPolicy??a?.joinPolicy??`owner_approve`,approvalPolicy:i.approvalPolicy??a?.approvalPolicy??`owner_only`,chatEnabled:i.chatEnabled??a?.chatEnabled??0,version:i.version??a?.version??0,legacy:i.ownerUserId===void 0?a?.legacy??!1:i.ownerUserId===null},await x(e)}function O(e){f.value=e}function k(){f.value=null}function A(e){let t=i.value[e];return t?Object.values(t):[]}function j(e,t){return A(e).filter(e=>e.chatMessageId===t)}function M(e){Reflect.deleteProperty(t.value,e),Reflect.deleteProperty(n.value,e),Reflect.deleteProperty(i.value,e),o.value.delete(e)}return{messages:t,members:n,settings:r,deliveries:i,permissions:a,loadedChannels:o,hasMoreHistory:u,loadingHistory:d,replyTarget:f,applyEnvelope:g,applySnapshot:_,loadHistory:y,loadMembers:b,loadPermissions:x,send:S,join:C,leave:w,removeMember:T,approveMember:E,updateSettings:D,setReplyTarget:O,clearReplyTarget:k,deliveriesOf:j,deliveriesOfChannel:A,clear:M}}),q=globalThis;q.__workshopWsHeartbeat??=null,q.__workshopWsHeartbeatUsers??=0,q.__workshopWsNotifHosts??=0,q.__workshopWsNotifSubscribed??=!1;function J(e,t){if(!e.channelId||typeof e.seq!=`number`||e.seq<=0||e.type===`channel.snapshot`)return!1;let n=t.get(e.channelId)??0;return e.seq<=n||(t.set(e.channelId,e.seq),!1)}function Y(){let e=_(),i=s(),c=o(),l=q.__workshopWs??null,u=new Map;if(!l){let t=new v(n=>{let r=F(),i=z(),a=K(),o=H(),s=m();if(!J(n,u)){if(n.channelId&&typeof n.seq==`number`&&n.seq>0&&(e.pendingReplay&&=!1),n.type===`channel.snapshot`&&n.channelId){u.set(n.channelId,typeof n.seq==`number`?n.seq:0),e.pendingReplay=!1,r.ingest(n),i.applyEvent(n),i.applySnapshot(n.payload);let t=n.payload;a.applySnapshot(n.channelId,t.chat??null,t.permissions),r.loadHistory(n.channelId)}else r.ingest(n),i.applyEvent(n),typeof n.type==`string`&&n.type.startsWith(`chat.`)&&a.applyEnvelope(n);(n.type===`hitl.request`||n.type===`hitl.resolved`)&&o.applyEnvelope(n),(n.type===`notification.created`||n.type===`notification.read`)&&s.applyEnvelope(n),n.type===`notification.snapshot`&&(s.applyReplayCursor(n.payload?.nextCursor??null),s.endReplay()),typeof n.seq==`number`&&n.seq>0&&n.channelId&&(e.cursors[n.channelId]=n.seq,t.updateCursor(n.channelId,n.seq)),c.emit(n)}},(t,n)=>{e.state=t,e.retryCount=n,t===`open`&&m().backfill()},()=>{e.pendingReplay=!0},()=>{e.lastDataAt=Date.now();let t=m();q.__workshopWsNotifSubscribed&&f(),t.backfill()});l=t,q.__workshopWs=l}let d=e=>{let t=l?.ws;if(!(!t||t.readyState!==WebSocket.OPEN))try{t.send(JSON.stringify(e))}catch{}},f=()=>{let e=m(),t=e.cursor;e.beginReplay(),d(t?{type:`subNotifications`,cursor:t}:{type:`subNotifications`})};return r(()=>i.token,e=>{let t=m();l instanceof v&&(l.userToken=e),e?((q.__workshopWsNotifHosts??0)>0&&(q.__workshopWsNotifSubscribed=!0,f()),t.loadSnapshot()):(q.__workshopWsNotifSubscribed&&(q.__workshopWsNotifSubscribed=!1,d({type:`unsubNotifications`})),t.clear())},{immediate:!0}),n(()=>{q.__workshopWsHeartbeatUsers=(q.__workshopWsHeartbeatUsers??0)+1,!q.__workshopWsHeartbeat&&(q.__workshopWsHeartbeat=a(()=>{l?.ping(),l?.checkStale()},15e3))}),t(()=>{let e=(q.__workshopWsHeartbeatUsers??1)-1;q.__workshopWsHeartbeatUsers=e>0?e:0,e<=0&&q.__workshopWsHeartbeat&&(clearInterval(q.__workshopWsHeartbeat),q.__workshopWsHeartbeat=null)}),{subscribe:e=>{let t=F().lastSeq(e);l?.subscribe(e,t>0?t:void 0)},unsubscribe:e=>{l&&(l.unsubscribe(e),l.refCount(e)===0&&F().clear(e))},ensureConnected:()=>{l?.ensureConnected()},hostNotifications:()=>{let e=m();q.__workshopWsNotifHosts=(q.__workshopWsNotifHosts??0)+1,!q.__workshopWsNotifSubscribed&&i.token&&(q.__workshopWsNotifSubscribed=!0,f(),e.loadSnapshot());let t=!1;return()=>{if(t)return;t=!0;let e=(q.__workshopWsNotifHosts??1)-1;q.__workshopWsNotifHosts=e>0?e:0,e<=0&&(q.__workshopWsNotifSubscribed=!1,i.token&&d({type:`unsubNotifications`}))}},conn:e}}export{H as a,x as c,K as i,_ as l,U as n,z as o,W as r,F as s,Y as t,m as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{N as e,dt as t,ft as n,g as r,mt as i,u as a}from"./CavpkQb0.js";import{Q as o,S as s,V as c,W as l,b as u,f as d,h as f,i as p,k as m,m as h,nt as g,p as _,rt as v,y}from"./ByMj6e7s.js";import{c as b,d as x,o as S,s as C}from"./Dqz5HiXa.js";import{t as ee}from"./Cmp8PMrA.js";import{n as w}from"./Cnrmlixo.js";import{t as T}from"./DzBbYWrw2.js";import{t as E}from"./BDNMzG2s2.js";import{t as D}from"./Bfe2qOYs.js";import{r as te}from"./Du9v6qGB2.js";import{i as O,r as k,t as A}from"./DsGf2IV82.js";import{t as j}from"./UN3nSFjj2.js";import{t as ne}from"./BDmNbZ252.js";import{t as re}from"./2_DkYoqD2.js";import{t as ie}from"./Chphw5IA2.js";import{t as ae}from"./9zrLAN2o2.js";import{t as oe}from"./H2rNs1O82.js";import{t as se}from"./BdM_Qr752.js";import{t as ce}from"./zsRclU9w2.js";var le={class:`aw-page-head`},ue={class:`aw-kicker`},de={class:`sub`},fe={class:`badges mono`},pe={class:`badge`},me={class:`badge`},he={class:`badge`},ge=Object.assign(E(s({__name:`DcwDetailHead`,props:{line:{},lineId:{},nodesCount:{},productsCount:{},recipesCount:{}},setup(e){return(t,r)=>(c(),f(`div`,le,[d(`div`,null,[d(`p`,ue,[d(`span`,{class:`line-chip`,style:n({background:e.line?.color??`#3aa0ff`})},null,4),y(`AGENTWORKSHOP / LINE / `+i(e.line?.name??e.lineId),1)]),d(`h1`,null,i(e.line?.name??t.$t(`dcwDetail.k1b2snna151`))+` · `+i(t.$t(`dcwDetail.k1l0iow1137`)),1),d(`p`,de,i(e.line?.description||t.$t(`dcwDetail.kzcbfki152`)),1)]),d(`div`,fe,[d(`span`,pe,i(t.$t(`dcwDetail.k45uio082`))+` `+i(e.nodesCount),1),d(`span`,me,i(t.$t(`dcwDetail.k3waz1025`))+` `+i(e.productsCount),1),d(`span`,he,i(t.$t(`dcwDetail.k48grv027`))+` `+i(e.recipesCount),1)])]))}}),[[`__scopeId`,`data-v-2c59e7e0`]]),{__name:`DcwDetailHead`}),_e={class:`aw-tile ctrl-card`},ve={class:`ctrl-left`},ye=[`title`],be={class:`ctrl-right`},xe={class:`ctrl-metrics mono`},Se=[`title`],Ce=[`title`],we=[`title`],Te=Object.assign(E(s({__name:`DcwGatewayBar`,props:{running:{type:Boolean},nodesOnline:{},nodesTotal:{},writesTotal:{},writesFailed:{}},emits:[`toggle`,`open-templates`,`open-add`],setup(e,{emit:n}){let r=n;return(n,a)=>(c(),f(`section`,_e,[d(`div`,ve,[d(`button`,{class:t([`aw-pill`,{running:e.running}]),title:n.$t(`dcwDetail.k1snap154`),onClick:a[0]||=t=>r(`toggle`,e.running?`pause`:`resume`)},[d(`span`,{class:t(e.running?`i-tabler-player-pause`:`i-tabler-player-play`)},null,2),y(` `+i(e.running?n.$t(`dcwDetail.kplrsg153`):n.$t(`dcwDetail.knxgni9169`)),1)],10,ye)]),d(`div`,be,[d(`span`,xe,[d(`span`,null,i(n.$t(`dcwDetail.k45uio082`))+` `+i(e.nodesOnline)+`/`+i(e.nodesTotal),1),a[3]||=d(`span`,{class:`sep`},`·`,-1),d(`span`,{title:n.$t(`dcwDetail.kd3ygmn001`)},i(n.$t(`dcwDetail.k3wtib138`))+` `+i(e.writesTotal),9,Se),a[4]||=d(`span`,{class:`sep`},`·`,-1),d(`span`,{class:t({warn:e.writesFailed>0}),title:n.$t(`dcwDetail.kd3znl0002`)},i(n.$t(`dcwDetail.k3yit7139`))+` `+i(e.writesFailed),11,Ce)]),d(`button`,{class:`aw-pill outline`,title:n.$t(`dcwDetail.kc4ixly003`),onClick:a[1]||=e=>r(`open-templates`)},[a[5]||=d(`span`,{class:`i-tabler-template`},null,-1),y(` `+i(n.$t(`dcwDetail.k1972dx9020`)),1)],8,we),d(`button`,{class:`aw-pill add-btn`,onClick:a[2]||=e=>r(`open-add`)},[a[6]||=d(`span`,{class:`i-tabler-plus`},null,-1),y(` `+i(n.$t(`dcwDetail.k1976uns021`)),1)])])]))}}),[[`__scopeId`,`data-v-e18f9fc9`]]),{__name:`DcwGatewayBar`}),M={key:0,class:`aw-tile adopt-card`},Ee={class:`adopt-title`},N={class:`adopt-list`},De=[`onClick`],Oe=[`onClick`],ke=Object.assign(E(s({__name:`DcwAdoptCard`,props:{unassignedNodes:{},unassignedProducts:{}},emits:[`adopt-node`,`adopt-product`],setup(e,{emit:t}){let n=t;return(t,r)=>e.unassignedNodes.length||e.unassignedProducts.length?(c(),f(`section`,M,[d(`b`,Ee,i(t.$t(`dcwDetail.kaebkky022`)),1),d(`div`,N,[(c(!0),f(p,null,l(e.unassignedNodes,e=>(c(),f(`span`,{key:e.id,class:`adopt-chip`},[y(i(e.name)+` `,1),d(`button`,{class:`mini-btn`,onClick:t=>n(`adopt-node`,e.id)},i(t.$t(`dcwDetail.kyjp9fg023`)),9,De)]))),128)),(c(!0),f(p,null,l(e.unassignedProducts,e=>(c(),f(`span`,{key:e.id,class:`adopt-chip`},[y(i(e.name)+`(`+i(t.$t(`dcwDetail.k3km252140`)),1),d(`button`,{class:`mini-btn`,onClick:t=>n(`adopt-product`,e.id)},i(t.$t(`dcwDetail.kyjp9fg023`)),9,Oe)]))),128))])])):h(``,!0)}}),[[`__scopeId`,`data-v-6ad055a2`]]),{__name:`DcwAdoptCard`}),Ae={class:`aw-tile line-card`},je={class:`line-status`},Me={class:`line-info`},Ne={key:0,class:`mono dim`},Pe={key:1,class:`dim`},Fe={class:`line-ctl`},P={class:`ctl-sel`},Ie={value:``},Le=[`value`],Re={class:`ctl-sel`},F=[`disabled`],I={value:``},ze=[`value`,`disabled`],Be=[`disabled`,`title`],Ve=[`disabled`],He={key:0,class:`banner bad`,style:{"margin-top":`10px`}},Ue={key:1,class:`banner good`,style:{"margin-top":`10px`}},We=Object.assign(E(s({__name:`DcwLineRunCard`,props:m({ls:{},lineProducts:{},lineRecipes:{},lineBusy:{type:Boolean},lineMsg:{},lineErr:{}},{productId:{required:!0},productIdModifiers:{},recipeId:{required:!0},recipeIdModifiers:{}}),emits:m([`start`,`stop`],[`update:productId`,`update:recipeId`]),setup(e,{emit:n}){let r=n,a=o(e,`productId`),s=o(e,`recipeId`);return(n,o)=>(c(),f(`section`,Ae,[d(`div`,je,[d(`span`,{class:t([`line-dot`,{on:e.ls.active}])},null,2),d(`div`,Me,[d(`b`,null,i(e.ls.active?n.$t(`dcwDetail.k1pxrhx0154`):n.$t(`dcwDetail.k1b2hxmx170`)),1),e.ls.active?(c(),f(`small`,Ne,i(e.ls.productName)+` · `+i(e.ls.recipeName)+` · `+i(n.$t(`dcwDetail.k400lb075`))+` `+i(e.ls.runId)+` · `+i(n.$t(`dcwDetail.k3zkt2166`))+` `+i(e.ls.startedAt?.slice(11,19))+` `+i(n.$t(`dcwDetail.k69vag8168`))+` `+i(e.ls.taggedSamples)+` `+i(n.$t(`dcwDetail.k4118o085`)),1)):(c(),f(`small`,Pe,i(n.$t(`dcwDetail.k19pof14024`)),1))])]),d(`div`,Fe,[d(`label`,P,[d(`span`,null,i(n.$t(`dcwDetail.k3waz1025`)),1),v(d(`select`,{"onUpdate:modelValue":o[0]||=e=>a.value=e,class:`inp`,onChange:o[1]||=e=>s.value=``},[d(`option`,Ie,i(n.$t(`dcwDetail.kuisodh026`)),1),(c(!0),f(p,null,l(e.lineProducts,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Le))),128))],544),[[C,a.value]])]),d(`label`,Re,[d(`span`,null,i(n.$t(`dcwDetail.k48grv027`)),1),v(d(`select`,{"onUpdate:modelValue":o[2]||=e=>s.value=e,class:`inp`,disabled:!a.value},[d(`option`,I,i(n.$t(`dcwDetail.kutxzsz028`)),1),(c(!0),f(p,null,l(e.lineRecipes,e=>(c(),f(`option`,{key:e.id,value:e.id,disabled:e.params.length===0},i(e.name)+i(e.params.length===0?n.$t(`dcwDetail.k1hicmch155`):n.$t(`dcwDetail.k1lzfi4g180`,{p0:e.params.length})),9,ze))),128))],8,F),[[C,s.value]])]),e.ls.active?(c(),f(`button`,{key:1,class:`pill-btn stop`,disabled:e.lineBusy,onClick:o[4]||=e=>r(`stop`)},i(n.$t(`dcwDetail.k1xyhd2y030`)),9,Ve)):(c(),f(`button`,{key:0,class:`pill-btn`,disabled:e.lineBusy||!s.value,title:s.value?n.$t(`dcwDetail.startTip`):n.$t(`dcwDetail.startNeedRecipe`),onClick:o[3]||=e=>r(`start`)},i(n.$t(`dcwDetail.kfb8vml029`)),9,Be))]),e.lineErr?(c(),f(`p`,He,i(e.lineErr),1)):h(``,!0),e.lineMsg?(c(),f(`p`,Ue,i(e.lineMsg),1)):h(``,!0)]))}}),[[`__scopeId`,`data-v-7ef9dbe9`]]),{__name:`DcwLineRunCard`}),Ge={class:`modal`},L={class:`m-title`},Ke={class:`dim mono`},R={class:`dim tpl-hint`},qe={class:`tpl-chips`},Je=[`title`],z={class:`mono`},Ye={class:`sec-label`},B={class:`f-grid tpl-form`},Xe={class:`f`},Ze=[`placeholder`],Qe={class:`f`},$e=[`placeholder`],et={class:`f`},V=[`placeholder`],tt={class:`f`},nt=[`placeholder`],rt={class:`f`},it=[`placeholder`],H={class:`f`},at=[`placeholder`],ot={class:`f`},st={class:`f`},ct=[`value`],lt={class:`f`},ut=[`placeholder`],dt={key:0,class:`banner good`,style:{"margin-top":`10px`}},ft={key:1,class:`m-err`},pt={class:`m-actions`},U=[`disabled`],mt=Object.assign(E(s({__name:`DcwDetailTemplateModal`,props:m({templates:{},tplIcons:{},builtinCount:{},customCount:{},tplSaving:{type:Boolean},tplError:{},tplOk:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:m([`submit`,`close`],[`update:open`,`update:form`]),setup(n,{emit:r}){let a=r,{t:s}=w(),u=o(n,`open`),m=o(n,`form`);return(r,o)=>u.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:o[11]||=x(e=>u.value=!1,[`self`])},[d(`div`,Ge,[d(`h3`,L,[y(i(r.$t(`dcwDetail.k1x4vam0031`))+` `,1),d(`small`,Ke,i(r.$t(`dcwDetail.k3x23c141`))+` `+i(n.builtinCount)+` · `+i(r.$t(`dcwDetail.k3t616a142`))+` `+i(n.customCount),1)]),d(`p`,R,i(r.$t(`dcwDetail.ke1iyud032`)),1),d(`div`,qe,[(c(!0),f(p,null,l(n.templates,n=>(c(),f(`span`,{key:n.key,class:`tpl-chip`,title:`${n.code} · ${n.min}~${n.max} ${n.unit}${n.semantics?` · ${n.semantics}`:``}`},[y(i((`catalogTplName`in r?r.catalogTplName:e(te))(e(s),n))+` `,1),d(`small`,z,i(n.min)+`~`+i(n.max)+i(n.unit),1),d(`em`,{class:t([`tpl-tag`,{builtin:n.builtin}])},i(n.builtin?r.$t(`dcwDetail.k3x23c141`):r.$t(`dcwDetail.k3t616a142`)),3)],8,Je))),128))]),d(`p`,Ye,i(r.$t(`dcwDetail.k169eb4s033`)),1),d(`div`,B,[d(`label`,Xe,[d(`span`,null,[y(i(r.$t(`dcwDetail.k1f55q76034`)),1),o[12]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[0]||=e=>m.value.name=e,class:`inp`,placeholder:r.$t(`dcwDetail.k1tooi3o004`)},null,8,Ze),[[b,m.value.name]])]),d(`label`,Qe,[d(`span`,null,i(r.$t(`dcwDetail.k1bqk219035`)),1),v(d(`input`,{"onUpdate:modelValue":o[1]||=e=>m.value.ch=e,class:`inp`,placeholder:r.$t(`dcwDetail.k698qz0005`)},null,8,$e),[[b,m.value.ch]])]),d(`label`,et,[d(`span`,null,i(r.$t(`dcwDetail.k1ayxrqb036`)),1),v(d(`input`,{"onUpdate:modelValue":o[2]||=e=>m.value.code=e,class:`inp`,placeholder:r.$t(`dcwDetail.codePh`)},null,8,V),[[b,m.value.code]])]),d(`label`,tt,[d(`span`,null,[y(i(r.$t(`dcwDetail.k3x4ef037`)),1),o[13]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[3]||=e=>m.value.unit=e,class:`inp`,placeholder:r.$t(`dcwDetail.unitPh`)},null,8,nt),[[b,m.value.unit]])]),d(`label`,rt,[d(`span`,null,[y(i(r.$t(`dcwDetail.k1l9jv5m038`)),1),o[14]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[4]||=e=>m.value.min=e,type:`number`,class:`inp`,placeholder:r.$t(`dcwDetail.kxz9174006`)},null,8,it),[[b,m.value.min,void 0,{number:!0}]])]),d(`label`,H,[d(`span`,null,[y(i(r.$t(`dcwDetail.k1l9jv4p039`)),1),o[15]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[5]||=e=>m.value.max=e,type:`number`,class:`inp`,placeholder:r.$t(`dcwDetail.kxz9167007`)},null,8,at),[[b,m.value.max,void 0,{number:!0}]])]),d(`label`,ot,[d(`span`,null,i(r.$t(`dcwDetail.k3mxmcx040`)),1),v(d(`input`,{"onUpdate:modelValue":o[6]||=e=>m.value.decimals=e,type:`number`,min:`0`,max:`4`,class:`inp`},null,512),[[b,m.value.decimals,void 0,{number:!0}]])]),d(`label`,st,[d(`span`,null,i(r.$t(`dcwDetail.k3xx56041`)),1),v(d(`select`,{"onUpdate:modelValue":o[7]||=e=>m.value.icon=e,class:`inp`},[(c(!0),f(p,null,l(n.tplIcons,e=>(c(),f(`option`,{key:e.key,value:e.key},i(e.label),9,ct))),128))],512),[[C,m.value.icon]])])]),d(`label`,lt,[d(`span`,null,i(r.$t(`dcwDetail.knjmyfr042`)),1),v(d(`textarea`,{"onUpdate:modelValue":o[8]||=e=>m.value.semantics=e,class:`inp`,rows:`2`,placeholder:r.$t(`dcwDetail.k1qdnfzc008`)},null,8,ut),[[b,m.value.semantics]])]),n.tplOk?(c(),f(`p`,dt,i(n.tplOk),1)):h(``,!0),n.tplError?(c(),f(`p`,ft,i(n.tplError),1)):h(``,!0),d(`div`,pt,[d(`button`,{class:`aw-pill outline`,onClick:o[9]||=e=>u.value=!1},i(r.$t(`dcwDetail.k3x62t043`)),1),d(`button`,{class:`pill-btn`,disabled:n.tplSaving||!m.value.name.trim()||m.value.unit.trim()===``||m.value.min===``||m.value.max===``,onClick:o[10]||=e=>a(`submit`)},i(n.tplSaving?r.$t(`dcwDetail.k1bg4759156`):r.$t(`dcwDetail.k1bg9nga171`)),9,U)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-f19aa086`]]),{__name:`DcwDetailTemplateModal`}),ht={class:`modal`},gt={class:`m-title`},_t={class:`seg-row`},vt={class:`f-grid`},yt={class:`f`},W=[`value`],G={class:`f`},K=[`placeholder`],q={class:`f`},J=[`placeholder`],Y={class:`f`},X=[`placeholder`],Z={class:`f`},bt=[`placeholder`],xt={class:`f`},St={class:`f-grid cal-form`},Ct={class:`f`},wt={value:`none`},Tt={value:`linear`},Et={class:`f`},Dt={style:{display:`flex`,gap:`6px`}},Ot=[`disabled`,`title`],kt=[`disabled`,`title`],At={class:`f-grid`},jt={class:`f`},Q=[`value`],Mt={key:0,class:`f-grid driver-form`},Nt={key:0,style:{color:`var(--tone-danger-dot)`,"font-style":`normal`}},Pt=[`onUpdate:modelValue`],$=[`value`],Ft=[`onUpdate:modelValue`,`type`,`placeholder`],It={key:2,class:`hint`},Lt={class:`test-row`},Rt=[`disabled`],zt={class:`f`},Bt=[`placeholder`],Vt={key:1,class:`m-err`},Ht={class:`m-actions`},Ut=[`disabled`],Wt=Object.assign(E(s({__name:`DcwAddNodeModal`,props:m({templates:{},driverCatalog:{},addFields:{},addTesting:{type:Boolean},addTest:{},addSaving:{type:Boolean},addError:{}},{open:{type:Boolean,required:!0},openModifiers:{},scenario:{required:!0},scenarioModifiers:{},template:{required:!0},templateModifiers:{},driver:{required:!0},driverModifiers:{},name:{required:!0},nameModifiers:{},hold:{required:!0},holdModifiers:{},read:{required:!0},readModifiers:{},writeLock:{required:!0},writeLockModifiers:{},stepLimit:{required:!0},stepLimitModifiers:{},cfg:{required:!0},cfgModifiers:{},transform:{required:!0},transformModifiers:{},semantics:{required:!0},semanticsModifiers:{}}),emits:m([`test`,`submit`],[`update:open`,`update:scenario`,`update:template`,`update:driver`,`update:name`,`update:hold`,`update:read`,`update:writeLock`,`update:stepLimit`,`update:cfg`,`update:transform`,`update:semantics`]),setup(n,{emit:r}){let a=r,{t:s}=w(),u=o(n,`open`),m=o(n,`scenario`),g=o(n,`template`),_=o(n,`driver`),ee=o(n,`name`),T=o(n,`hold`),E=o(n,`read`),D=o(n,`writeLock`),O=o(n,`stepLimit`),k=o(n,`cfg`),A=o(n,`transform`),j=o(n,`semantics`);return(r,o)=>u.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:o[16]||=x(e=>u.value=!1,[`self`])},[d(`div`,ht,[d(`h3`,gt,i(r.$t(`dcwDetail.k1976uns021`)),1),d(`div`,_t,[d(`button`,{class:t([`seg`,{on:m.value===`mock`}]),onClick:o[0]||=e=>m.value=`mock`},i(r.$t(`dcwDetail.mockPlc`)),3),d(`button`,{class:t([`seg`,{on:m.value===`real`}]),onClick:o[1]||=e=>m.value=`real`},i(r.$t(`dcwDetail.kyj8fen044`)),3)]),d(`div`,vt,[d(`label`,yt,[d(`span`,null,i(r.$t(`dcwDetail.k1ejzwqp045`)),1),v(d(`select`,{"onUpdate:modelValue":o[2]||=e=>g.value=e,class:`inp`},[(c(!0),f(p,null,l(n.templates,t=>(c(),f(`option`,{key:t.key,value:t.key},i((`catalogTplName`in r?r.catalogTplName:e(te))(e(s),t))+` · `+i(t.ch)+`(`+i(t.min)+`~`+i(t.max)+` `+i(t.unit)+`)`+i(t.builtin?``:r.$t(`dcwDetail.kr45rk9157`)),9,W))),128))],512),[[C,g.value]])]),d(`label`,G,[d(`span`,null,i(r.$t(`dcwDetail.k1ce2k1y046`)),1),v(d(`input`,{"onUpdate:modelValue":o[3]||=e=>ee.value=e,class:`inp`,placeholder:r.$t(`dcwDetail.kgpxzy3009`)},null,8,K),[[b,ee.value]])]),d(`label`,q,[d(`span`,null,i(r.$t(`dcwDetail.k1vyb8im047`)),1),v(d(`input`,{"onUpdate:modelValue":o[4]||=e=>T.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:r.$t(`dcwDetail.kb1srz0010`)},null,8,J),[[b,T.value,void 0,{number:!0}]])]),d(`label`,Y,[d(`span`,null,i(r.$t(`dcwDetail.k9r7d4e016`)),1),v(d(`input`,{"onUpdate:modelValue":o[5]||=e=>E.value=e,type:`number`,min:`0`,max:`3600000`,step:`500`,class:`inp`,placeholder:r.$t(`dcwDetail.k9r7d4e017`)},null,8,X),[[b,E.value,void 0,{number:!0}]])]),d(`label`,Z,[d(`span`,null,i(r.$t(`dcwDetail.writeLockLabel`)),1),v(d(`input`,{"onUpdate:modelValue":o[6]||=e=>D.value=e,type:`number`,min:`0`,max:`3600`,step:`1`,class:`inp`,placeholder:r.$t(`dcwDetail.writeLockHint`)},null,8,bt),[[b,D.value,void 0,{number:!0}]])]),d(`label`,xt,[o[17]||=d(`span`,null,[y(`探索阶段单步上限 `),d(`em`,null,`(工程量)`)],-1),v(d(`input`,{"onUpdate:modelValue":o[7]||=e=>O.value=e,type:`number`,min:`0`,step:`any`,class:`inp`,placeholder:`留空:按节点量程 2% 默认值`},null,512),[[b,O.value,void 0,{number:!0}]]),o[18]||=d(`small`,{class:`field-hint`},`Agent 每次写入的最大变化量;无有限值时探索写入会被拒绝。`,-1)])]),d(`div`,St,[d(`label`,Ct,[d(`span`,null,i(r.$t(`dcwDetail.kiune1f048`)),1),v(d(`select`,{"onUpdate:modelValue":o[8]||=e=>A.value.kind=e,class:`inp`},[d(`option`,wt,i(r.$t(`dcwDetail.kkzy0k049`)),1),d(`option`,Tt,i(r.$t(`dcwDetail.linearCalOpt`)),1)],512),[[C,A.value.kind]])]),d(`label`,Et,[o[19]||=d(`span`,null,`scale / offset`,-1),d(`div`,Dt,[v(d(`input`,{"onUpdate:modelValue":o[9]||=e=>A.value.scale=e,type:`number`,step:`0.1`,class:`inp`,disabled:A.value.kind!==`linear`,title:r.$t(`dcwDetail.calScaleTip`)},null,8,Ot),[[b,A.value.scale,void 0,{number:!0}]]),v(d(`input`,{"onUpdate:modelValue":o[10]||=e=>A.value.offset=e,type:`number`,step:`0.1`,class:`inp`,disabled:A.value.kind!==`linear`,title:r.$t(`dcwDetail.calOffsetTip`)},null,8,kt),[[b,A.value.offset,void 0,{number:!0}]])])])]),m.value===`real`?(c(),f(p,{key:0},[d(`div`,At,[d(`label`,jt,[d(`span`,null,i(r.$t(`dcwDetail.k1kt87rx050`)),1),v(d(`select`,{"onUpdate:modelValue":o[11]||=e=>_.value=e,class:`inp`},[(c(!0),f(p,null,l(n.driverCatalog.filter(e=>e.status!==`builtin`),e=>(c(),f(`option`,{key:e.kind,value:e.kind},i(e.label)+i(e.plugin?` ⌁`:``),9,Q))),128))],512),[[C,_.value]])])]),n.addFields.length?(c(),f(`div`,Mt,[(c(!0),f(p,null,l(n.addFields,e=>(c(),f(`label`,{key:e.key,class:`f`},[d(`span`,null,[y(i(e.label),1),e.required?(c(),f(`em`,Nt,`*`)):h(``,!0)]),e.type===`select`?v((c(),f(`select`,{key:0,"onUpdate:modelValue":t=>k.value[e.key]=t,class:`inp`},[(c(!0),f(p,null,l(e.options,e=>(c(),f(`option`,{key:e.value,value:e.value},i(e.label),9,$))),128))],8,Pt)),[[C,k.value[e.key]]]):v((c(),f(`input`,{key:1,"onUpdate:modelValue":t=>k.value[e.key]=t,type:e.type===`number`?`number`:`text`,placeholder:e.placeholder,class:`inp`},null,8,Ft)),[[S,k.value[e.key]]]),e.hint?(c(),f(`small`,It,i(e.hint),1)):h(``,!0)]))),128))])):h(``,!0),d(`div`,Lt,[d(`button`,{class:`pill-btn outline`,disabled:n.addTesting,onClick:o[12]||=e=>a(`test`)},i(n.addTesting?r.$t(`dcwDetail.k1fsh720158`):r.$t(`dcwDetail.k1fstglk172`)),9,Rt),n.addTest?(c(),f(`span`,{key:0,class:t([`test-result`,n.addTest.ok?`good`:`bad`])},i(n.addTest.ok?`✓`:`✗`)+` `+i(n.addTest.message),3)):h(``,!0)])],64)):h(``,!0),d(`label`,zt,[d(`span`,null,i(r.$t(`dcwDetail.k1hgizn7051`)),1),v(d(`textarea`,{"onUpdate:modelValue":o[13]||=e=>j.value=e,class:`inp`,rows:`2`,placeholder:r.$t(`dcwDetail.k12bnyt9011`)},null,8,Bt),[[b,j.value]])]),n.addError?(c(),f(`p`,Vt,i(n.addError),1)):h(``,!0),d(`div`,Ht,[d(`button`,{class:`aw-pill outline`,onClick:o[14]||=e=>u.value=!1},i(r.$t(`dcwDetail.k3xdnn052`)),1),d(`button`,{class:`aw-pill`,disabled:n.addSaving,onClick:o[15]||=e=>a(`submit`)},i(n.addSaving?r.$t(`dcwDetail.k1bg4759156`):r.$t(`dcwDetail.k1bge46t173`)),9,Ut)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-5f50614a`]]),{__name:`DcwAddNodeModal`}),Gt={class:`aw-tile table-card`},Kt={class:`nodes-table`},qt={class:`right`},Jt={class:`mono dim`},Yt={class:`mono ch`},Xt=[`disabled`,`title`,`onClick`],Zt={key:0,class:`st-pill paused`},Qt={class:`mono val`},$t={key:0,class:`dim`},en={class:`mono val`},tn=[`title`],nn={key:0,class:`dim`},rn=[`disabled`,`title`,`onClick`],an={class:`write-row`},on=[`onUpdate:modelValue`,`placeholder`,`min`,`max`,`step`,`disabled`,`title`],sn=[`disabled`,`title`,`onClick`],cn={class:`mono dim`},ln={class:`mono`},un=[`title`],dn=[`title`],fn={class:`step-limit-cell`},pn=[`value`,`onInput`],mn=[`disabled`,`onClick`],hn={class:`dim`},gn={class:`right`},_n=[`onClick`],vn={key:0},yn={colspan:`10`},bn={class:`pane-empty`,style:{"min-height":`120px`}},xn={class:`pe-sub`},Sn=Object.assign(E(s({__name:`DcwNodesTable`,props:m({lineNodes:{},stateLabel:{},togglingId:{},readingId:{},writingId:{},stepPatchingId:{},loaded:{type:Boolean},error:{},dcwTemplateRefCh:{type:Function},nodeDeviceNames:{type:Function}},{setInputs:{required:!0},setInputsModifiers:{}}),emits:m([`toggle`,`read`,`write`,`patch-step-limit`,`remove`],[`update:setInputs`]),setup(e,{emit:n}){let a=n,s=o(e,`setInputs`),u=r({});function m(e){return u[e.id]??e.stepLimit}function x(e){let t=u[e.id]===void 0?e.stepLimit:u[e.id];a(`patch-step-limit`,e.id,t===``||t==null?null:Number(t))}return(n,r)=>{let o=T;return c(),_(o,{spinning:!e.loaded&&!e.error},{default:g(()=>[d(`section`,Gt,[d(`table`,Kt,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(n.$t(`dcwDetail.k1e2dtkt053`)),1),d(`th`,null,i(n.$t(`dcwDetail.k403cy054`)),1),d(`th`,null,i(n.$t(`dcwDetail.k42w8s055`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1deqh0d056`)),1),d(`th`,null,i(n.$t(`dcwDetail.k9r7d4e018`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1k79ec9057`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1dexou6058`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1b1nnaa059`)),1),d(`th`,null,i(n.$t(`dcwDetail.k1i8rtqt060`)),1),r[0]||=d(`th`,null,`探索步长`,-1),d(`th`,qt,i(n.$t(`dcwDetail.k40aa6061`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l(e.lineNodes,o=>(c(),f(`tr`,{key:o.id,class:t({"node-paused":!o.enabled})},[d(`td`,null,[d(`span`,Jt,i(o.id.slice(0,8)),1),d(`b`,null,i(o.name),1),d(`small`,Yt,i(e.dcwTemplateRefCh(o.templateRef)),1)]),d(`td`,null,[d(`button`,{class:t([`ctrl-toggle`,{on:o.enabled}]),disabled:e.togglingId===o.id,title:o.enabled?n.$t(`dcwDetail.pauseCtrlTip`):n.$t(`dcwDetail.enableCtrlTip`),onClick:e=>a(`toggle`,o.id,!o.enabled)},[r[1]||=d(`span`,{class:`ct-dot`},null,-1),y(` `+i(o.enabled?n.$t(`dcwDetail.k3o3ib3159`):n.$t(`dcwDetail.k3n93ed062`)),1)],10,Xt)]),d(`td`,null,[o.enabled?(c(),f(`span`,{key:1,class:t([`st-pill`,o.state])},i(e.stateLabel[o.state]??o.state),3)):(c(),f(`span`,Zt,i(n.$t(`dcwDetail.k3n93ed062`)),1))]),d(`td`,Qt,[y(i(o.value==null?`--`:o.value.toFixed(o.decimals))+` `,1),d(`small`,null,i(o.unit),1),o.lastAckAt?(c(),f(`small`,$t,` · `+i(o.lastAckAt.slice(11,19)),1)):h(``,!0)]),d(`td`,en,[d(`span`,{title:o.lastReadError??n.$t(`dcwDetail.k9r7d4e019`),class:t({"read-stale":o.lastReadError})},i(o.readValue==null?`--`:o.readValue.toFixed(o.decimals)),11,tn),d(`small`,null,i(o.unit),1),o.lastReadAt?(c(),f(`small`,nn,` · `+i(o.lastReadAt.slice(11,19)),1)):h(``,!0),d(`button`,{class:`mini-btn read-btn`,disabled:e.readingId===o.id,title:n.$t(`dcwDetail.k9r7d4e020`),onClick:e=>a(`read`,o.id)},i(e.readingId===o.id?`···`:n.$t(`dcwDetail.k9r7d4e021`)),9,rn)]),d(`td`,null,[d(`div`,an,[v(d(`input`,{"onUpdate:modelValue":e=>s.value[o.id]=e,type:`number`,class:`inp write-inp mono`,placeholder:`${o.min}~${o.max}`,min:o.min,max:o.max,step:10**-o.decimals,disabled:!o.enabled,title:o.enabled?``:n.$t(`dcwDetail.pausedTip`)},null,8,on),[[b,s.value[o.id],void 0,{number:!0}]]),d(`button`,{class:`mini-btn write-btn`,disabled:!o.enabled||e.writingId===o.id||s.value[o.id]==null||s.value[o.id]===``,title:o.enabled?n.$t(`dcwDetail.writeTip`):n.$t(`dcwDetail.pausedTip`),onClick:e=>a(`write`,o.id,Number(s.value[o.id]))},i(e.writingId===o.id?n.$t(`dcwDetail.k3l3h80123`):n.$t(`dcwDetail.k3w6td174`)),9,sn)])]),d(`td`,cn,i(o.min)+` ~ `+i(o.max)+` `+i(o.unit),1),d(`td`,ln,[y(i(o.holdIntervalMs==null?n.$t(`dcwDetail.k3zul4160`):`${o.holdIntervalMs}ms`)+` `,1),d(`small`,{class:`dim`,title:n.$t(`dcwDetail.k9r7d4e016`)},`· `+i(o.readIntervalMs===0?n.$t(`dcwDetail.k9r7d4e022`):o.readIntervalMs==null?n.$t(`dcwDetail.k9r7d4e023`):`${o.readIntervalMs}ms`),9,un),d(`small`,{class:`dim`,title:n.$t(`dcwDetail.writeLockHint`)},`· `+i(o.writeLockSeconds===0?`0s`:`${o.writeLockSeconds}s`),9,dn)]),d(`td`,null,i(e.nodeDeviceNames(o)),1),d(`td`,null,[d(`div`,fn,[d(`input`,{value:m(o)??``,type:`number`,min:`0`,step:`any`,class:`inp step-inp mono`,placeholder:`2% default`,title:`在线控制单步最大变化量;留空将关闭探索写入`,onInput:e=>u[o.id]=e.target.value===``?``:Number(e.target.value)},null,40,pn),d(`button`,{class:`mini-btn step-btn`,disabled:e.stepPatchingId===o.id,onClick:e=>x(o)},i(e.stepPatchingId===o.id?`…`:`保存`),9,mn)]),d(`small`,hn,`当前 Δ≤`+i(o.stepLimit??`未配置`)+` `+i(o.unit),1)]),d(`td`,gn,[d(`button`,{class:`mini-btn danger`,onClick:e=>a(`remove`,o.id)},i(n.$t(`dcwDetail.k3xakp063`)),9,_n)])],2))),128)),e.loaded&&e.lineNodes.length===0?(c(),f(`tr`,vn,[d(`td`,yn,[d(`div`,bn,[d(`p`,xn,i(n.$t(`dcwDetail.k1wtecyw064`)),1)])])])):h(``,!0)])])])]),_:1},8,[`spinning`])}}}),[[`__scopeId`,`data-v-210b303d`]]),{__name:`DcwNodesTable`}),Cn={class:`modal`},wn={class:`m-title`},Tn={class:`sec-label`},En={class:`nodes-table`},Dn={class:`mono dim`},On={class:`mono`},kn={class:`mono`},An={class:`mono dim`},jn={class:`mono dim`},Mn={key:0},Nn={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},Pn={class:`sec-label`},Fn={class:`nodes-table`},In={class:`mono`},Ln={class:`mono dim`},Rn={class:`mono dim`},zn={key:0},Bn={colspan:`6`,class:`dim`,style:{"text-align":`center`,padding:`12px`}},Vn={class:`m-actions`},Hn=Object.assign(E(s({__name:`DcwRunDataModal`,props:{runDataView:{}},emits:[`close`],setup(e,{emit:n}){let r=n;return(n,a)=>e.runDataView?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:a[1]||=x(e=>r(`close`),[`self`])},[d(`div`,Cn,[d(`h3`,wn,i(n.$t(`dcwDetail.k11lq94k145`))+` `+i(e.runDataView.data.run.recipeName)+`(`+i(e.runDataView.runId)+`) `,1),d(`p`,Tn,i(n.$t(`dcwDetail.k1me41w8080`)),1),d(`table`,En,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(n.$t(`dcwDetail.k48hde081`)),1),d(`th`,null,i(n.$t(`dcwDetail.k45uio082`)),1),d(`th`,null,i(n.$t(`dcwDetail.k40t11083`)),1),d(`th`,null,i(n.$t(`dcwDetail.k3xuaw084`)),1),a[2]||=d(`th`,null,`min ~ max`,-1),d(`th`,null,i(n.$t(`dcwDetail.k4118o085`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l(e.runDataView.data.daq,e=>(c(),f(`tr`,{key:e.nodeId},[d(`td`,null,[y(i(e.ch),1),d(`small`,Dn,i(e.unit),1)]),d(`td`,null,i(e.nodeName),1),d(`td`,On,i(e.latest),1),d(`td`,kn,i(e.avg),1),d(`td`,An,i(e.min)+` ~ `+i(e.max),1),d(`td`,jn,i(e.cnt),1)]))),128)),e.runDataView.data.daq.length===0?(c(),f(`tr`,Mn,[d(`td`,Nn,i(n.$t(`dcwDetail.kd457ry086`)),1)])):h(``,!0)])]),d(`p`,Pn,i(n.$t(`dcwDetail.k12b7cxs087`)),1),d(`table`,Fn,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(n.$t(`dcwDetail.k3xbjr088`)),1),d(`th`,null,i(n.$t(`dcwDetail.k45uio082`)),1),d(`th`,null,i(n.$t(`dcwDetail.k3ncbsh089`)),1),d(`th`,null,i(n.$t(`dcwDetail.k3lh3mz090`)),1),d(`th`,null,i(n.$t(`dcwDetail.k454pg091`)),1),d(`th`,null,i(n.$t(`dcwDetail.k40ieu092`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l(e.runDataView.data.writes,(e,r)=>(c(),f(`tr`,{key:r},[d(`td`,null,i(e.param),1),d(`td`,null,i(e.nodeName),1),d(`td`,In,i(e.eng),1),d(`td`,Ln,i(e.raw),1),d(`td`,null,[d(`span`,{class:t([`st-pill`,e.ok?`ok`:`alarm`])},i(e.ok?`ACK`:n.$t(`dcwDetail.k3yit7139`)),3)]),d(`td`,Rn,i(e.at.slice(5,19)),1)]))),128)),e.runDataView.data.writes.length===0?(c(),f(`tr`,zn,[d(`td`,Bn,i(n.$t(`dcwDetail.knzcp8i093`)),1)])):h(``,!0)])]),d(`div`,Vn,[d(`button`,{class:`aw-pill outline`,onClick:a[0]||=e=>r(`close`)},i(n.$t(`dcwDetail.k3x62t043`)),1)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-23fad435`]]),{__name:`DcwRunDataModal`}),Un={class:`aw-tile recipe-card`},Wn={class:`recipe-hd`},Gn={class:`panel-tag mono`},Kn={class:`recipe-sub`},qn={key:0,class:`product-row`},Jn=[`title`,`onClick`],Yn=[`title`,`onClick`],Xn={key:1,class:`dim`,style:{margin:`6px 0 12px`,"font-size":`12px`}},Zn={class:`recipe-grid`},Qn={class:`recipe-name`},$n=[`title`],er={class:`dim`},tr={class:`mono dim`},nr={key:0,class:`dim desc`},rr={class:`recipe-params mono`},ir=[`title`],ar={key:0,class:`chip-step-tag`},or={key:1,class:`chip-stale-tag`},sr=[`title`],cr={key:0,class:`chip-stale-tag`},lr={class:`recipe-actions`},ur=[`onClick`],dr=[`onClick`],fr=[`onClick`],pr={key:0,class:`mono`},mr=[`onClick`],hr={key:0,class:`pane-empty`,style:{"grid-column":`1 / -1`}},gr={key:2,class:`banner good`},_r=[`disabled`],vr={key:3,class:`runs`},yr={class:`sec-label`},br={class:`nodes-table`},xr={class:`right`},Sr={class:`mono`},Cr={class:`mono dim`},wr={class:`right`},Tr=[`disabled`,`onClick`],Er=[`onClick`],Dr=Object.assign(E(s({__name:`DcwRecipePanel`,props:m({lineProducts:{},visibleRecipes:{},lineRuns:{},applyResult:{},runDataView:{},runDataLoading:{type:Boolean},productName:{type:Function},paramStatus:{type:Function},paramNodeName:{type:Function},daqWindowStatus:{type:Function},daqNodeCh:{type:Function}},{filterProductId:{required:!0},filterProductIdModifiers:{}}),emits:m([`create`,`open-product`,`apply`,`edit`,`history`,`remove-recipe`,`remove-product`,`view-run`,`close-run`,`close-run-data`],[`update:filterProductId`]),setup(n,{emit:r}){let a=r,{t:s}=w(),m=o(n,`filterProductId`);return(r,o)=>{let g=Hn;return c(),f(`section`,Un,[d(`div`,Wn,[d(`h3`,null,i(r.$t(`dcwDetail.k1j8w3hd065`)),1),d(`span`,Gn,i(n.lineProducts.length)+` `+i(r.$t(`dcwDetail.k1av3wgs143`))+` `+i(n.visibleRecipes.length)+` `+i(r.$t(`dcwDetail.k48grv027`)),1),d(`button`,{class:`pill-btn`,style:{"margin-left":`auto`},onClick:o[0]||=e=>a(`create`)},i(r.$t(`dcwDetail.k1akm6dc066`)),1),d(`button`,{class:`mini-btn`,onClick:o[1]||=e=>a(`open-product`)},i(r.$t(`dcwDetail.k1aka0ki067`)),1)]),d(`p`,Kn,i(r.$t(`dcwDetail.k6bl2q8068`)),1),n.lineProducts.length?(c(),f(`div`,qn,[d(`button`,{class:t([`prod-chip`,{on:m.value===``}]),onClick:o[2]||=e=>m.value=``},i(r.$t(`dcwDetail.k3x4t1069`)),3),(c(!0),f(p,null,l(n.lineProducts,e=>(c(),f(`button`,{key:e.id,class:t([`prod-chip`,{on:m.value===e.id}]),title:e.description,onClick:t=>m.value=e.id},[y(i(e.name)+` `,1),d(`span`,{class:`prod-del`,title:r.$t(`dcwDetail.k1bpfjgx012`),onClick:x(t=>a(`remove-product`,e.id),[`stop`])},`×`,8,Yn)],10,Jn))),128))])):(c(),f(`p`,Xn,i(r.$t(`dcwDetail.knov3zg070`)),1)),d(`div`,Zn,[(c(!0),f(p,null,l(n.visibleRecipes,o=>(c(),f(`div`,{key:o.id,class:`recipe-item`},[d(`div`,Qn,[d(`b`,null,i(o.name),1),o.version?(c(),f(`span`,{key:0,class:`param-chip mono`,title:e(s)(`dcwDetail.histTitle`)},`v`+i(o.version),9,$n)):h(``,!0),d(`small`,er,i(n.productName(o.productId)),1),d(`small`,tr,i(o.id),1)]),o.description?(c(),f(`p`,nr,i(o.description),1)):h(``,!0),d(`div`,rr,[(c(!0),f(p,null,l(o.params,(e,r)=>(c(),f(`span`,{key:r,class:t([`param-chip`,{stale:n.paramStatus(e.nodeId,o.lineId)}]),title:n.paramStatus(e.nodeId,o.lineId)?.label??``},[y(i(n.paramNodeName(e.nodeId))+` = `+i(e.value),1),e.stepLimit==null?h(``,!0):(c(),f(`span`,ar,`Δ≤`+i(e.stepLimit),1)),n.paramStatus(e.nodeId,o.lineId)?(c(),f(`span`,or,i(n.paramStatus(e.nodeId,o.lineId).label),1)):h(``,!0)],10,ir))),128)),(c(!0),f(p,null,l(o.daqWindows,(e,a)=>(c(),f(`span`,{key:`w-${a}`,class:t([`param-chip daqwin`,{stale:n.daqWindowStatus(e.nodeId,o.lineId)}]),title:n.daqWindowStatus(e.nodeId,o.lineId)?.label??r.$t(`dcwDetail.k1l11api013`)},[y(` ◎ `+i(n.daqNodeCh(e.nodeId))+` ∈ [`+i(e.min??`-∞`)+`, `+i(e.max??`+∞`)+`]`,1),n.daqWindowStatus(e.nodeId,o.lineId)?(c(),f(`span`,cr,i(n.daqWindowStatus(e.nodeId,o.lineId).label),1)):h(``,!0)],10,sr))),128))]),d(`div`,lr,[d(`button`,{class:`pill-btn`,onClick:e=>a(`apply`,o.id)},i(r.$t(`dcwDetail.k1497qvr071`)),9,ur),d(`button`,{class:`mini-btn`,onClick:e=>a(`edit`,o.id)},i(r.$t(`dcwDetail.k45eb0072`)),9,dr),d(`button`,{class:`mini-btn`,onClick:e=>a(`history`,o.id)},[y(i(e(s)(`dcwDetail.histBtn`)),1),o.version?(c(),f(`span`,pr,`·v`+i(o.version),1)):h(``,!0)],8,fr),d(`button`,{class:`mini-btn danger`,onClick:e=>a(`remove-recipe`,o.id)},i(r.$t(`dcwDetail.k3xakp063`)),9,mr)])]))),128)),n.visibleRecipes.length===0?(c(),f(`div`,hr,i(r.$t(`dcwDetail.keko1xy073`)),1)):h(``,!0)]),n.applyResult?(c(),f(`div`,gr,[y(i(r.$t(`dcwDetail.k1l3hrvp144`))+` `+i(n.applyResult.runId)+` `+i(r.$t(`dcwDetail.k1g3lh2v167`))+i(n.applyResult.ok)+`/`+i(n.applyResult.total)+` `+i(r.$t(`dcwDetail.k1bqci06149`))+` `,1),d(`button`,{class:`mini-btn`,style:{"margin-left":`10px`},disabled:n.runDataLoading,onClick:o[3]||=e=>a(`view-run`,n.applyResult.runId)},i(n.runDataLoading?r.$t(`dcwDetail.k1br0ij9161`):r.$t(`dcwDetail.kxwei5175`)),9,_r)])):h(``,!0),n.lineRuns.length?(c(),f(`div`,vr,[d(`p`,yr,i(r.$t(`dcwDetail.k1rjer8d074`)),1),d(`table`,br,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(r.$t(`dcwDetail.k400lb075`)),1),d(`th`,null,i(r.$t(`dcwDetail.k48grv027`)),1),d(`th`,null,i(r.$t(`dcwDetail.k4497j076`)),1),d(`th`,null,i(r.$t(`dcwDetail.k1bqhtmu077`)),1),d(`th`,xr,i(r.$t(`dcwDetail.k40aa6061`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l([...n.lineRuns].reverse().slice(0,8),e=>(c(),f(`tr`,{key:e.id},[d(`td`,Sr,i(e.id),1),d(`td`,null,i(e.recipeName),1),d(`td`,Cr,i(e.startedAt.slice(5,19))+` ~ `+i(e.endedAt?e.endedAt.slice(5,19):r.$t(`dcwDetail.k3vpfg9162`)),1),d(`td`,null,[d(`span`,{class:t([`st-pill`,e.results.every(e=>e.ok)?`ok`:`warn`])},i(e.results.filter(e=>e.ok).length)+`/`+i(e.results.length),3)]),d(`td`,wr,[d(`button`,{class:`mini-btn`,disabled:n.runDataLoading,onClick:t=>a(`view-run`,e.id)},i(r.$t(`dcwDetail.k1dzwrdp078`)),9,Tr),e.endedAt?h(``,!0):(c(),f(`button`,{key:0,class:`mini-btn`,onClick:t=>a(`close-run`,e.id)},i(r.$t(`dcwDetail.k1blr7y7079`)),9,Er))])]))),128))])])])):h(``,!0),u(g,{"run-data-view":n.runDataView,onClose:o[4]||=e=>a(`close-run-data`)},null,8,[`run-data-view`])])}}}),[[`__scopeId`,`data-v-6242bc54`]]),{__name:`DcwRecipePanel`}),Or={class:`modal`},kr={class:`m-title`},Ar={class:`f-grid`},jr={class:`f`},Mr=[`value`],Nr={class:`f`},Pr=[`placeholder`],Fr={class:`f`},Ir=[`placeholder`],Lr={class:`sec-label`},Rr={class:`f`},zr=[`onUpdate:modelValue`],Br=[`value`],Vr={key:0,class:`row-stale`},Hr={class:`f`},Ur=[`onUpdate:modelValue`],Wr={class:`f`},Gr=[`onUpdate:modelValue`,`placeholder`],Kr={class:`f`},qr=[`onUpdate:modelValue`,`placeholder`],Jr={class:`f`},Yr=[`onUpdate:modelValue`],Xr=[`onClick`],Zr={class:`sec-label`},Qr={class:`f`},$r=[`onUpdate:modelValue`],ei=[`value`],ti={class:`f`},ni=[`onUpdate:modelValue`],ri={class:`f`},ii=[`onUpdate:modelValue`],ai=[`onClick`],oi=[`disabled`,`title`],si={key:0,class:`m-note`},ci={key:1,class:`m-err`},li={class:`m-actions`},ui=[`disabled`],di=Object.assign(E(s({__name:`DcwRecipeEditModal`,props:m({lineProducts:{},lineNodes:{},lineDaqNodes:{},lineId:{},recipeEditing:{},recipeSaving:{type:Boolean},recipeError:{},recipeStaleNote:{},dcwTemplateRefCh:{type:Function},nodeMin:{type:Function},nodeMax:{type:Function},paramStatus:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:m([`submit`,`close`],[`update:open`,`update:form`]),setup(t,{emit:n}){let r=n,a=o(t,`open`),s=o(t,`form`);return(n,o)=>a.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:o[7]||=x(e=>a.value=!1,[`self`])},[d(`div`,Or,[d(`h3`,kr,i(t.recipeEditing?n.$t(`dcwDetail.k1iiwk0i163`):n.$t(`dcwDetail.k1efq0r9176`)),1),d(`div`,Ar,[d(`label`,jr,[d(`span`,null,[y(i(n.$t(`dcwDetail.k1dw4fzf094`)),1),o[8]||=d(`em`,null,`*`,-1)]),v(d(`select`,{"onUpdate:modelValue":o[0]||=e=>s.value.productId=e,class:`inp`},[(c(!0),f(p,null,l(t.lineProducts,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Mr))),128))],512),[[C,s.value.productId]])]),d(`label`,Nr,[d(`span`,null,[y(i(n.$t(`dcwDetail.k1l3f8so095`)),1),o[9]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[1]||=e=>s.value.name=e,class:`inp`,placeholder:n.$t(`dcwDetail.k12c11vm014`)},null,8,Pr),[[b,s.value.name]])]),d(`label`,Fr,[d(`span`,null,i(n.$t(`dcwDetail.k40gkk096`)),1),v(d(`input`,{"onUpdate:modelValue":o[2]||=e=>s.value.description=e,class:`inp`,placeholder:n.$t(`dcwDetail.k1hxx8hy015`)},null,8,Ir),[[b,s.value.description]])])]),d(`p`,Lr,i(n.$t(`dcwDetail.ka1kfgh097`)),1),(c(!0),f(p,null,l(s.value.params,(e,r)=>(c(),f(`div`,{key:r,class:`param-row`},[d(`label`,Rr,[d(`span`,null,i(n.$t(`dcwDetail.k1e2dtkt053`)),1),v(d(`select`,{"onUpdate:modelValue":t=>e.nodeId=t,class:`inp`},[(c(!0),f(p,null,l(t.lineNodes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name)+`(`+i(t.dcwTemplateRefCh(e.templateRef))+` · `+i(e.min)+`~`+i(e.max)+` `+i(e.unit)+`) `,9,Br))),128))],8,zr),[[C,e.nodeId]]),t.paramStatus(e.nodeId,t.lineId)?(c(),f(`span`,Vr,i(t.paramStatus(e.nodeId,t.lineId).label),1)):h(``,!0)]),d(`label`,Hr,[d(`span`,null,[y(i(n.$t(`dcwDetail.k3renp2098`)),1),o[10]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":t=>e.value=t,type:`number`,class:`inp`,step:.1},null,8,Ur),[[b,e.value,void 0,{number:!0}]])]),d(`label`,Wr,[d(`span`,null,i(n.$t(`dcwDetail.k134rw3b146`))+i(t.nodeMin(e.nodeId)??`-`)+`)`,1),v(d(`input`,{"onUpdate:modelValue":t=>e.min=t,type:`number`,class:`inp`,step:.1,placeholder:n.$t(`dcwDetail.k5vew9z016`)},null,8,Gr),[[b,e.min,void 0,{number:!0}]])]),d(`label`,Kr,[d(`span`,null,i(n.$t(`dcwDetail.khrv911147`))+i(t.nodeMax(e.nodeId)??`-`)+`)`,1),v(d(`input`,{"onUpdate:modelValue":t=>e.max=t,type:`number`,class:`inp`,step:.1,placeholder:n.$t(`dcwDetail.kzoh5pr017`)},null,8,qr),[[b,e.max,void 0,{number:!0}]])]),d(`label`,Jr,[o[11]||=d(`span`,null,`Recipe 单步上限 Δ≤`,-1),v(d(`input`,{"onUpdate:modelValue":t=>e.stepLimit=t,type:`number`,min:`0`,class:`inp`,step:`any`,placeholder:`跟随节点默认`},null,8,Yr),[[b,e.stepLimit,void 0,{number:!0}]])]),d(`button`,{class:`mini-btn danger param-del`,onClick:e=>s.value.params.splice(r,1)},i(n.$t(`dcwDetail.k44idg099`)),9,Xr)]))),128)),d(`button`,{class:`mini-btn`,onClick:o[3]||=n=>s.value.params.push(e(O)(t.lineNodes[0]?.id??``))},i(n.$t(`dcwDetail.k1broh7h100`)),1),d(`p`,Zr,i(n.$t(`dcwDetail.k1h5gues101`)),1),(c(!0),f(p,null,l(s.value.daqWindows,(e,r)=>(c(),f(`div`,{key:`dw-${r}`,class:`param-row`},[d(`label`,Qr,[d(`span`,null,i(n.$t(`dcwDetail.k1empnnb102`)),1),v(d(`select`,{"onUpdate:modelValue":t=>e.nodeId=t,class:`inp`},[(c(!0),f(p,null,l(t.lineDaqNodes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name)+`(`+i(e.min)+`~`+i(e.max)+` `+i(e.unit)+`) `,9,ei))),128))],8,$r),[[C,e.nodeId]])]),d(`label`,ti,[d(`span`,null,i(n.$t(`dcwDetail.kqm08ap103`)),1),v(d(`input`,{"onUpdate:modelValue":t=>e.min=t,type:`number`,class:`inp`,step:.1},null,8,ni),[[b,e.min,void 0,{number:!0}]])]),d(`label`,ri,[d(`span`,null,i(n.$t(`dcwDetail.kpypf8g104`)),1),v(d(`input`,{"onUpdate:modelValue":t=>e.max=t,type:`number`,class:`inp`,step:.1},null,8,ii),[[b,e.max,void 0,{number:!0}]])]),d(`button`,{class:`mini-btn danger param-del`,onClick:e=>s.value.daqWindows.splice(r,1)},i(n.$t(`dcwDetail.k44idg099`)),9,ai)]))),128)),d(`button`,{class:`mini-btn`,disabled:t.lineDaqNodes.length===0,title:t.lineDaqNodes.length===0?n.$t(`dcwDetail.noDaqTip`):``,onClick:o[4]||=n=>s.value.daqWindows.push(e(k)(t.lineDaqNodes[0]?.id??``))},i(n.$t(`dcwDetail.kv1de1p105`)),9,oi),t.recipeStaleNote?(c(),f(`p`,si,i(t.recipeStaleNote),1)):h(``,!0),t.recipeError?(c(),f(`p`,ci,i(t.recipeError),1)):h(``,!0),d(`div`,li,[d(`button`,{class:`aw-pill outline`,onClick:o[5]||=e=>a.value=!1},i(n.$t(`dcwDetail.k3xdnn052`)),1),d(`button`,{class:`pill-btn`,disabled:t.recipeSaving,onClick:o[6]||=e=>r(`submit`)},i(t.recipeSaving?n.$t(`dcwDetail.k1b38d59164`):n.$t(`dcwDetail.k1b3kwg0177`)),9,ui)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-4a17b36f`]]),{__name:`DcwRecipeEditModal`}),fi={class:`modal`,style:{"max-width":`760px`}},pi={class:`modal-head`},mi={key:0,class:`dim`,style:{"margin-left":`8px`,"font-size":`12px`}},hi={key:0,class:`banner good`,style:{margin:`6px 0`}},gi={key:1,class:`dim`},_i={key:2,class:`pane-empty`},vi={class:`ver-head`},yi={class:`mono ver-v`},bi={class:`mono dim`},xi={class:`ver-actor`},Si=[`onClick`],Ci={key:0,class:`ver-desc`},wi={class:`ver-diff mono`},Ti=Object.assign(E(s({__name:`DcwRecipeHistoryModal`,props:m({verRecipe:{},verRows:{},verLoading:{type:Boolean},verMsg:{},paramNodeName:{type:Function}},{open:{type:Boolean,required:!0},openModifiers:{}}),emits:m([`revert`,`close`],[`update:open`]),setup(n,{emit:r}){let a=n,s=r,{t:u}=w(),m=o(n,`open`),g=e=>e===`agent`?`Agent`:u(e===`system`?`dcwDetail.srcSystem`:`dcwDetail.srcUser`);function _(e,t){if(t===0)return u(`dcwDetail.histInit`);let n=a.verRows[t-1],r=e.params.map(e=>({p:e,old:n.params.find(t=>t.nodeId===e.nodeId)})).filter(({p:e,old:t})=>!t||t.value!==e.value).map(({p:e,old:t})=>`${a.paramNodeName(e.nodeId)}: ${t?.value??u(`dcwDetail.histAdded`)} → ${e.value}`);return r.length>0?r.join(`;`):u(`dcwDetail.histNoChange`)}return(r,a)=>m.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:a[1]||=x(e=>m.value=!1,[`self`])},[d(`div`,fi,[d(`div`,pi,[d(`h3`,null,[y(i(e(u)(`dcwDetail.histTitle`)),1),n.verRecipe?(c(),f(`span`,mi,i(n.verRecipe.name)+` · v`+i(n.verRecipe.version),1)):h(``,!0)]),d(`button`,{class:`mini-btn`,onClick:a[0]||=e=>m.value=!1},` ✕ `)]),n.verMsg?(c(),f(`p`,hi,i(n.verMsg),1)):h(``,!0),n.verLoading?(c(),f(`p`,gi,i(e(u)(`dcwDetail.histLoading`)),1)):n.verRows.length===0?(c(),f(`div`,_i,i(e(u)(`dcwDetail.histEmpty`)),1)):(c(!0),f(p,{key:3},l(n.verRows,(n,r)=>(c(),f(`div`,{key:n.version,class:t([`ver-row`,{cur:n.current}])},[d(`div`,vi,[d(`span`,yi,`v`+i(n.version),1),d(`span`,{class:t([`ver-src`,n.by??(n.current?`cur`:``)])},i(n.current?e(u)(`dcwDetail.histCurrent`):g(n.by)),3),d(`span`,bi,i(n.at.slice(0,19).replace(`T`,` `)),1),d(`span`,xi,i(n.actorName||`—`),1),n.current?h(``,!0):(c(),f(`button`,{key:0,class:`mini-btn`,onClick:e=>s(`revert`,n.version)},i(e(u)(`dcwDetail.revertTo`)),9,Si))]),n.description?(c(),f(`p`,Ci,i(n.description),1)):h(``,!0),d(`p`,wi,i(_(n,r)),1)],2))),128))])])):h(``,!0)}}),[[`__scopeId`,`data-v-322135bb`]]),{__name:`DcwRecipeHistoryModal`}),Ei={class:`aw-tile query-card`},Di={class:`sec-label`},Oi={class:`q-grid`},ki={class:`f`},Ai={value:``},ji=[`value`],Mi={class:`f`},Ni=[`disabled`],Pi={value:``},Fi=[`value`],Ii={class:`f`},Li={value:``},Ri=[`value`],zi={class:`f`},Bi={value:``},Vi=[`value`],Hi={class:`f`},Ui={class:`f`},Wi={class:`f q-actions`},Gi=[`disabled`],Ki={key:0,class:`banner bad`,style:{"margin-top":`8px`}},qi={key:1,class:`q-result`},Ji={class:`nodes-table`},Yi={class:`mono dim`},Xi={class:`mono`},Zi={class:`mono`},Qi={class:`mono`},$i={class:`mono dim`},ea=Object.assign(E(s({__name:`DcwQueryCard`,props:m({lineProducts:{},visibleRecipes:{},lineDaqNodes:{},daqParamKeys:{},queryBusy:{type:Boolean},queryError:{},queryResult:{}},{query:{required:!0},queryModifiers:{}}),emits:m([`run`],[`update:query`]),setup(t,{emit:n}){let r=n,a=o(t,`query`);function s(e){let t=e?.value??e?.avg;return t==null?`--`:String(Math.round(t*1e3)/1e3)}return(n,o)=>(c(),f(`section`,Ei,[d(`p`,Di,i(n.$t(`dcwDetail.k1us3jse106`)),1),d(`div`,Oi,[d(`label`,ki,[d(`span`,null,i(n.$t(`dcwDetail.k3waz1025`)),1),v(d(`select`,{"onUpdate:modelValue":o[0]||=e=>a.value.productId=e,class:`inp`,onChange:o[1]||=e=>a.value.recipeId=``},[d(`option`,Ai,i(n.$t(`dcwDetail.k1bkl1jx107`)),1),(c(!0),f(p,null,l(t.lineProducts,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,ji))),128))],544),[[C,a.value.productId]])]),d(`label`,Mi,[d(`span`,null,i(n.$t(`dcwDetail.k48grv027`)),1),v(d(`select`,{"onUpdate:modelValue":o[2]||=e=>a.value.recipeId=e,class:`inp`,disabled:!a.value.productId},[d(`option`,Pi,i(n.$t(`dcwDetail.k1bkx7cr108`)),1),(c(!0),f(p,null,l(t.visibleRecipes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Fi))),128))],8,Ni),[[C,a.value.recipeId]])]),d(`label`,Ii,[d(`span`,null,i(n.$t(`dcwDetail.k1demcae109`)),1),v(d(`select`,{"onUpdate:modelValue":o[3]||=e=>a.value.paramKey=e,class:`inp`},[d(`option`,Li,i(n.$t(`dcwDetail.k1bkx7ya110`)),1),(c(!0),f(p,null,l(t.daqParamKeys,e=>(c(),f(`option`,{key:e,value:e},i(e),9,Ri))),128))],512),[[C,a.value.paramKey]])]),d(`label`,zi,[d(`span`,null,i(n.$t(`dcwDetail.k45uio082`)),1),v(d(`select`,{"onUpdate:modelValue":o[4]||=e=>a.value.nodeId=e,class:`inp`},[d(`option`,Bi,i(n.$t(`dcwDetail.k1bkul3k111`)),1),(c(!0),f(p,null,l(t.lineDaqNodes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Vi))),128))],512),[[C,a.value.nodeId]])]),d(`label`,Hi,[d(`span`,null,i(n.$t(`dcwDetail.kx2ojn0112`)),1),v(d(`input`,{"onUpdate:modelValue":o[5]||=e=>a.value.lastMin=e,type:`number`,min:`1`,max:`10080`,class:`inp`},null,512),[[b,a.value.lastMin,void 0,{number:!0}]])]),d(`label`,Ui,[d(`span`,null,i(n.$t(`dcwDetail.kjvnvn4113`)),1),v(d(`input`,{"onUpdate:modelValue":o[6]||=e=>a.value.bucketMs=e,type:`number`,min:`1000`,step:`500`,class:`inp`},null,512),[[b,a.value.bucketMs,void 0,{number:!0}]])]),d(`div`,Wi,[d(`button`,{class:`pill-btn`,disabled:t.queryBusy,onClick:o[7]||=e=>r(`run`)},i(t.queryBusy?n.$t(`dcwDetail.k1eyx09r165`):n.$t(`dcwDetail.k416ek178`)),9,Gi)])]),t.queryError?(c(),f(`p`,Ki,i(t.queryError),1)):h(``,!0),t.queryResult?(c(),f(`div`,qi,[d(`table`,Ji,[d(`thead`,null,[d(`tr`,null,[d(`th`,null,i(n.$t(`dcwDetail.k48hde081`)),1),d(`th`,null,i(n.$t(`dcwDetail.k45uio082`)),1),d(`th`,null,i(n.$t(`dcwDetail.k42kcu114`)),1),d(`th`,null,i(n.$t(`dcwDetail.k49ujb115`)),1),d(`th`,null,i(n.$t(`dcwDetail.k40pvw116`)),1),d(`th`,null,i(n.$t(`dcwDetail.k3xho3117`)),1)])]),d(`tbody`,null,[(c(!0),f(p,null,l(t.queryResult.channels,t=>(c(),f(`tr`,{key:t.nodeId},[d(`td`,null,[y(i(t.ch),1),d(`small`,Yi,i(t.unit),1)]),d(`td`,null,i(t.nodeName),1),d(`td`,Xi,i(t.points.length),1),d(`td`,Zi,i(s(t.points[0])),1),d(`td`,Qi,i(s(t.points[t.points.length-1])),1),d(`td`,$i,i(e(D)(new Date(t.points[0]?.at??0).toISOString(),!1))+` ~ `+i(e(D)(new Date(t.points[t.points.length-1]?.at??0).toISOString(),!1)),1)]))),128))])])])):h(``,!0)]))}}),[[`__scopeId`,`data-v-ee60c0a5`]]),{__name:`DcwQueryCard`}),ta={class:`aw-tile table-card`},na={class:`sec-label`},ra={class:`nodes-table`},ia={class:`mono dim`},aa={class:`mono`},oa={class:`mono dim`},sa={class:`dim`},ca=Object.assign(E(s({__name:`DcwWriteHistoryCard`,props:{lineHistory:{}},setup(e){return(n,r)=>(c(),f(`section`,ta,[d(`p`,na,i(n.$t(`dcwDetail.kw7ym9b148`))+` `+i(e.lineHistory.length)+` `+i(n.$t(`dcwDetail.k40bfz150`)),1),d(`table`,ra,[d(`tbody`,null,[(c(!0),f(p,null,l(e.lineHistory.slice(0,12),e=>(c(),f(`tr`,{key:e.id},[d(`td`,ia,i(e.at.slice(5,19)),1),d(`td`,null,i(e.param),1),d(`td`,null,i(e.nodeName),1),d(`td`,aa,i(e.eng),1),d(`td`,oa,` raw `+i(e.raw??`-`),1),d(`td`,null,[d(`span`,{class:t([`st-pill`,e.ok?`ok`:`alarm`])},i(e.ok?`ACK`:n.$t(`dcwDetail.k3yit7139`)),3)]),d(`td`,sa,i(e.recipeRunId?n.$t(`dcwDetail.k6vgks7181`,{p0:e.recipeRunId}):n.$t(`dcwDetail.manualTag`)),1)]))),128))])])]))}}),[[`__scopeId`,`data-v-1ca86a1c`]]),{__name:`DcwWriteHistoryCard`}),la={class:`modal`},ua={class:`m-title`},da={class:`f-grid`},fa={class:`f`},pa=[`placeholder`],ma={class:`f`},ha=[`placeholder`],ga={key:0,class:`m-err`},_a={class:`m-actions`},va=[`disabled`],ya=Object.assign(E(s({__name:`DcwProductCreateModal`,props:m({productSaving:{type:Boolean},productError:{}},{open:{type:Boolean,required:!0},openModifiers:{},form:{required:!0},formModifiers:{}}),emits:m([`submit`,`close`],[`update:open`,`update:form`]),setup(e,{emit:t}){let n=t,r=o(e,`open`),a=o(e,`form`);return(t,o)=>r.value?(c(),f(`div`,{key:0,class:`modal-mask`,onClick:o[4]||=x(e=>r.value=!1,[`self`])},[d(`div`,la,[d(`h3`,ua,i(t.$t(`dcwDetail.k1efduyf118`)),1),d(`div`,da,[d(`label`,fa,[d(`span`,null,[y(i(t.$t(`dcwDetail.k1avjrl6119`)),1),o[5]||=d(`em`,null,`*`,-1)]),v(d(`input`,{"onUpdate:modelValue":o[0]||=e=>a.value.name=e,class:`inp`,placeholder:t.$t(`dcwDetail.k12c11vm014`)},null,8,pa),[[b,a.value.name]])]),d(`label`,ma,[d(`span`,null,i(t.$t(`dcwDetail.k40gkk096`)),1),v(d(`input`,{"onUpdate:modelValue":o[1]||=e=>a.value.description=e,class:`inp`,placeholder:t.$t(`dcwDetail.k1hxx8hy015`)},null,8,ha),[[b,a.value.description]])])]),e.productError?(c(),f(`p`,ga,i(e.productError),1)):h(``,!0),d(`div`,_a,[d(`button`,{class:`aw-pill outline`,onClick:o[2]||=e=>r.value=!1},i(t.$t(`dcwDetail.k3xdnn052`)),1),d(`button`,{class:`pill-btn`,disabled:e.productSaving,onClick:o[3]||=e=>n(`submit`)},i(e.productSaving?t.$t(`dcwDetail.k1bg4759156`):t.$t(`dcwDetail.k1bg4kn6179`)),9,va)])])])):h(``,!0)}}),[[`__scopeId`,`data-v-aa17ef24`]]),{__name:`DcwProductCreateModal`}),ba={class:`aw-tile ledger-card`},xa={class:`ledger-head`},Sa={value:``},Ca=[`value`],wa={class:`ledger-tri`},Ta={class:`tri-cell`},Ea={class:`mono`},Da={class:`tri-cell`},Oa={class:`mono`},ka={class:`tri-cell`},Aa={class:`mono`},ja={class:`ledger-cols`},Ma={class:`ledger-col`},Na={class:`sec-t`},Pa={class:`ledger-list mono`},Fa={class:`ledger-col`},Ia={class:`sec-t`},La={class:`ledger-list`},Ra={class:`mono`},za=Object.assign(E(s({__name:`DcwLedgerCard`,props:m({lineNodes:{},ledger:{}},{nodeId:{required:!0},nodeIdModifiers:{}}),emits:m([`load`,`rollback`],[`update:nodeId`]),setup(e,{emit:n}){let r=n,a=o(e,`nodeId`);return(n,o)=>(c(),f(`section`,ba,[d(`div`,xa,[d(`b`,null,i(n.$t(`dcwDetail.k1ledgt001`)),1),v(d(`select`,{"onUpdate:modelValue":o[0]||=e=>a.value=e,class:`inp`,onChange:o[1]||=e=>r(`load`)},[d(`option`,Sa,i(n.$t(`dcwDetail.k1ledgs001`)),1),(c(!0),f(p,null,l(e.lineNodes,e=>(c(),f(`option`,{key:e.id,value:e.id},i(e.name),9,Ca))),128))],544),[[C,a.value]])]),e.ledger?(c(),f(p,{key:0},[d(`div`,wa,[d(`div`,Ta,[d(`small`,null,i(n.$t(`dcwDetail.k1ledgv001`)),1),d(`b`,Ea,i(e.ledger.current??`--`),1)]),d(`div`,Da,[d(`small`,null,i(n.$t(`dcwDetail.k1ledgv002`)),1),d(`b`,Oa,i(e.ledger.recipeTarget??`--`),1)]),d(`div`,ka,[d(`small`,null,i(n.$t(`dcwDetail.k1ledgv003`)),1),d(`b`,Aa,i(e.ledger.lastGood??`--`),1)]),d(`button`,{class:`mini-btn`,onClick:o[2]||=e=>r(`load`)},i(n.$t(`dcwDetail.k1ledga001`)),1),d(`button`,{class:`mini-btn danger`,onClick:o[3]||=e=>r(`rollback`)},i(n.$t(`dcwDetail.k1ledga002`)),1)]),d(`div`,ja,[d(`div`,Ma,[d(`small`,Na,i(n.$t(`dcwDetail.k1ledgh001`)),1),d(`ul`,Pa,[(c(!0),f(p,null,l(e.ledger.journal,e=>(c(),f(`li`,{key:e.id},i(e.at.slice(5,16).replace(`T`,` `))+` [`+i(e.source)+`] `+i(e.prevValue??`?`)+` → `+i(e.newValue),1))),128))])]),d(`div`,Fa,[d(`small`,Ia,i(n.$t(`dcwDetail.k1ledgr001`)),1),d(`ul`,La,[(c(!0),f(p,null,l(e.ledger.records,e=>(c(),f(`li`,{key:e.id,class:`ledger-rec`},[d(`span`,{class:t([`rec-st`,e.status])},i(e.status),3),d(`span`,Ra,i(e.params[0]?.from??`?`)+` → `+i(e.params[0]?.to),1),d(`small`,null,i(e.judge?`${e.judge.verdict}(${e.judge.by})`:e.status===`open`?`open`:e.closedBy??``),1)]))),128))])])])],64)):h(``,!0)]))}}),[[`__scopeId`,`data-v-15a6bb00`]]),{__name:`DcwLedgerCard`}),Ba={key:0,class:`page`},Va={class:`banner bad`},Ha={key:1,class:`page`},Ua={key:2,class:`err`},Wa=E(s({__name:`[id]`,setup(n){let r=ne(),o=ce(),s=ie(),l=ae(r),p=oe(r,l),m=A(r,p,l,o),v=se(r),b=j(r),x=re(b),{dcw:S,line:C,lineId:w,ls:T,lineNodes:E,lineProducts:D,lineRecipesAll:te,lineRuns:O,lineHistory:k,unassignedNodes:le,unassignedProducts:ue,stateLabel:de,dcwTemplateRefCh:fe,nodeMin:pe,nodeMax:me,lineDaqNodes:he,daqNodeCh:_e,adoptNode:ve,adoptProduct:ye,productName:be,paramStatus:xe,paramNodeName:Se,daqWindowStatus:Ce,nodeDeviceNames:we}=r,{setInputs:M,writingId:Ee,writeError:N,writeOk:De,readingId:Oe,togglingId:Ae,stepPatchingId:je,doWrite:Me,doRead:Ne,toggleControl:Pe,patchStepLimit:Fe}=o,{ledgerNodeId:P,ledger:Ie,loadLedger:Le,rollbackLedgerNode:Re}=s,{lineProductId:F,lineRecipeId:I,lineBusy:ze,lineMsg:Be,lineErr:Ve,lineRecipes:He,doLineStart:Ue,doLineStop:Ge}=l,{filterProductId:L,visibleRecipes:Ke,productOpen:R,productSaving:qe,productError:Je,productForm:z,doCreateProduct:Ye}=p,{verOpen:B,verRecipe:Xe,verRows:Ze,verLoading:Qe,verMsg:$e,doRevert:et,recipeOpen:V,recipeEditing:tt,recipeSaving:nt,recipeError:rt,recipeStaleNote:it,recipeForm:H,applyResult:at,runDataView:ot,runDataLoading:st,openRecipeCreate:ct,openRecipeEdit:lt,openRecipeHistory:ut,saveRecipe:dt,doApplyRecipe:ft,doViewRun:pt}=m,{query:U,queryBusy:ht,queryError:gt,queryResult:_t,doQuery:vt,daqParamKeys:yt}=v,{addOpen:W,addScenario:G,addTemplate:K,addDriver:q,addName:J,addHold:Y,addRead:X,addWriteLock:Z,addStepLimit:bt,addCfg:xt,addTransform:St,addSemantics:Ct,addTesting:wt,addTest:Tt,addSaving:Et,addError:Dt,addFields:Ot,driverCatalog:kt,doTestConnection:At,doAddNode:jt}=b,{tplOpen:Q,tplSaving:Mt,tplError:Nt,tplOk:Pt,tplForm:$,tplIcons:Ft,builtinCount:It,customCount:Lt,openTplModal:Rt,doCreateTemplate:zt}=x;return(n,r)=>{let o=ee,s=ge,l=Te,p=ke,m=We,v=mt,b=Wt,x=Sn,A=Dr,j=di,ne=Ti,re=ea,ie=ca,ae=ya,oe=za;return e(S).loaded&&!e(C)?(c(),f(`div`,Ba,[d(`p`,Va,i(n.$t(`dcwDetail.k19337yp018`)),1),u(o,{class:`pill-btn`,to:`/dcw`},{default:g(()=>[y(i(n.$t(`dcwDetail.kllwu1c019`)),1)]),_:1})])):(c(),f(`div`,Ha,[u(s,{line:e(C),"line-id":e(w),"nodes-count":e(E).length,"products-count":e(D).length,"recipes-count":e(te).length},null,8,[`line`,`line-id`,`nodes-count`,`products-count`,`recipes-count`]),u(l,{running:e(S).controller.running,"nodes-online":e(S).controller.nodesOnline,"nodes-total":e(S).controller.nodesTotal,"writes-total":e(S).controller.writesTotal,"writes-failed":e(S).controller.writesFailed,onToggle:e(S).startStop,onOpenTemplates:e(Rt),onOpenAdd:r[0]||=e=>W.value=!0},null,8,[`running`,`nodes-online`,`nodes-total`,`writes-total`,`writes-failed`,`onToggle`,`onOpenTemplates`]),e(N)||e(De)?(c(),f(`p`,{key:0,class:t([`banner`,e(N)?`bad`:`good`])},i(e(N)||e(De)),3)):h(``,!0),u(p,{"unassigned-nodes":e(le),"unassigned-products":e(ue),onAdoptNode:e(ve),onAdoptProduct:e(ye)},null,8,[`unassigned-nodes`,`unassigned-products`,`onAdoptNode`,`onAdoptProduct`]),u(m,{"product-id":e(F),"onUpdate:productId":r[1]||=e=>a(F)?F.value=e:null,"recipe-id":e(I),"onUpdate:recipeId":r[2]||=e=>a(I)?I.value=e:null,ls:e(T),"line-products":e(D),"line-recipes":e(He),"line-busy":e(ze),"line-msg":e(Be),"line-err":e(Ve),onStart:e(Ue),onStop:e(Ge)},null,8,[`product-id`,`recipe-id`,`ls`,`line-products`,`line-recipes`,`line-busy`,`line-msg`,`line-err`,`onStart`,`onStop`]),u(v,{open:e(Q),"onUpdate:open":r[3]||=e=>a(Q)?Q.value=e:null,form:e($),"onUpdate:form":r[4]||=e=>a($)?$.value=e:null,templates:e(S).templates,"tpl-icons":e(Ft),"builtin-count":e(It),"custom-count":e(Lt),"tpl-saving":e(Mt),"tpl-error":e(Nt),"tpl-ok":e(Pt),onSubmit:e(zt),onClose:r[5]||=e=>Q.value=!1},null,8,[`open`,`form`,`templates`,`tpl-icons`,`builtin-count`,`custom-count`,`tpl-saving`,`tpl-error`,`tpl-ok`,`onSubmit`]),u(b,{open:e(W),"onUpdate:open":r[6]||=e=>a(W)?W.value=e:null,scenario:e(G),"onUpdate:scenario":r[7]||=e=>a(G)?G.value=e:null,template:e(K),"onUpdate:template":r[8]||=e=>a(K)?K.value=e:null,driver:e(q),"onUpdate:driver":r[9]||=e=>a(q)?q.value=e:null,name:e(J),"onUpdate:name":r[10]||=e=>a(J)?J.value=e:null,hold:e(Y),"onUpdate:hold":r[11]||=e=>a(Y)?Y.value=e:null,read:e(X),"onUpdate:read":r[12]||=e=>a(X)?X.value=e:null,"write-lock":e(Z),"onUpdate:writeLock":r[13]||=e=>a(Z)?Z.value=e:null,"step-limit":e(bt),"onUpdate:stepLimit":r[14]||=e=>a(bt)?bt.value=e:null,cfg:e(xt),"onUpdate:cfg":r[15]||=e=>a(xt)?xt.value=e:null,transform:e(St),"onUpdate:transform":r[16]||=e=>a(St)?St.value=e:null,semantics:e(Ct),"onUpdate:semantics":r[17]||=e=>a(Ct)?Ct.value=e:null,templates:e(S).templates,"driver-catalog":e(kt),"add-fields":e(Ot),"add-testing":e(wt),"add-test":e(Tt),"add-saving":e(Et),"add-error":e(Dt),onTest:e(At),onSubmit:e(jt)},null,8,[`open`,`scenario`,`template`,`driver`,`name`,`hold`,`read`,`write-lock`,`step-limit`,`cfg`,`transform`,`semantics`,`templates`,`driver-catalog`,`add-fields`,`add-testing`,`add-test`,`add-saving`,`add-error`,`onTest`,`onSubmit`]),u(x,{"set-inputs":e(M),"onUpdate:setInputs":r[18]||=e=>a(M)?M.value=e:null,"line-nodes":e(E),"state-label":e(de),"toggling-id":e(Ae),"reading-id":e(Oe),"writing-id":e(Ee),"step-patching-id":e(je),loaded:e(S).loaded,error:e(S).error,"dcw-template-ref-ch":e(fe),"node-device-names":e(we),onToggle:e(Pe),onRead:e(Ne),onWrite:e(Me),onPatchStepLimit:e(Fe),onRemove:e(S).removeNode},null,8,[`set-inputs`,`line-nodes`,`state-label`,`toggling-id`,`reading-id`,`writing-id`,`step-patching-id`,`loaded`,`error`,`dcw-template-ref-ch`,`node-device-names`,`onToggle`,`onRead`,`onWrite`,`onPatchStepLimit`,`onRemove`]),u(A,{"filter-product-id":e(L),"onUpdate:filterProductId":r[19]||=e=>a(L)?L.value=e:null,"line-products":e(D),"visible-recipes":e(Ke),"line-runs":e(O),"apply-result":e(at),"run-data-view":e(ot),"run-data-loading":e(st),"product-name":e(be),"param-status":e(xe),"param-node-name":e(Se),"daq-window-status":e(Ce),"daq-node-ch":e(_e),onCreate:e(ct),onOpenProduct:r[20]||=e=>R.value=!0,onApply:e(ft),onEdit:e(lt),onHistory:e(ut),onRemoveRecipe:e(S).removeRecipe,onRemoveProduct:e(S).removeProduct,onViewRun:e(pt),onCloseRun:e(S).closeRun,onCloseRunData:r[21]||=e=>ot.value=null},null,8,[`filter-product-id`,`line-products`,`visible-recipes`,`line-runs`,`apply-result`,`run-data-view`,`run-data-loading`,`product-name`,`param-status`,`param-node-name`,`daq-window-status`,`daq-node-ch`,`onCreate`,`onApply`,`onEdit`,`onHistory`,`onRemoveRecipe`,`onRemoveProduct`,`onViewRun`,`onCloseRun`]),u(j,{open:e(V),"onUpdate:open":r[22]||=e=>a(V)?V.value=e:null,form:e(H),"onUpdate:form":r[23]||=e=>a(H)?H.value=e:null,"line-products":e(D),"line-nodes":e(E),"line-daq-nodes":e(he),"line-id":e(w),"recipe-editing":e(tt),"recipe-saving":e(nt),"recipe-error":e(rt),"recipe-stale-note":e(it),"dcw-template-ref-ch":e(fe),"node-min":e(pe),"node-max":e(me),"param-status":e(xe),onSubmit:e(dt),onClose:r[24]||=e=>V.value=!1},null,8,[`open`,`form`,`line-products`,`line-nodes`,`line-daq-nodes`,`line-id`,`recipe-editing`,`recipe-saving`,`recipe-error`,`recipe-stale-note`,`dcw-template-ref-ch`,`node-min`,`node-max`,`param-status`,`onSubmit`]),u(ne,{open:e(B),"onUpdate:open":r[25]||=e=>a(B)?B.value=e:null,"ver-recipe":e(Xe),"ver-rows":e(Ze),"ver-loading":e(Qe),"ver-msg":e($e),"param-node-name":e(Se),onRevert:e(et),onClose:r[26]||=e=>B.value=!1},null,8,[`open`,`ver-recipe`,`ver-rows`,`ver-loading`,`ver-msg`,`param-node-name`,`onRevert`]),u(re,{query:e(U),"onUpdate:query":r[27]||=e=>a(U)?U.value=e:null,"line-products":e(D),"visible-recipes":e(Ke),"line-daq-nodes":e(he),"daq-param-keys":e(yt),"query-busy":e(ht),"query-error":e(gt),"query-result":e(_t),onRun:e(vt)},null,8,[`query`,`line-products`,`visible-recipes`,`line-daq-nodes`,`daq-param-keys`,`query-busy`,`query-error`,`query-result`,`onRun`]),e(k).length?(c(),_(ie,{key:1,"line-history":e(k)},null,8,[`line-history`])):h(``,!0),u(ae,{open:e(R),"onUpdate:open":r[28]||=e=>a(R)?R.value=e:null,form:e(z),"onUpdate:form":r[29]||=e=>a(z)?z.value=e:null,"product-saving":e(qe),"product-error":e(Je),onSubmit:e(Ye),onClose:r[30]||=e=>R.value=!1},null,8,[`open`,`form`,`product-saving`,`product-error`,`onSubmit`]),e(S).error?(c(),f(`p`,Ua,[y(i(e(S).error)+`(`,1),u(o,{to:`/workshop`},{default:g(()=>[y(i(n.$t(`dcwDetail.k1bhhheq120`)),1)]),_:1}),r[32]||=y(`) `,-1)])):h(``,!0),u(oe,{"node-id":e(P),"onUpdate:nodeId":r[31]||=e=>a(P)?P.value=e:null,"line-nodes":e(E),ledger:e(Ie),onLoad:e(Le),onRollback:e(Re)},null,8,[`node-id`,`line-nodes`,`ledger`,`onLoad`,`onRollback`])]))}}}),[[`__scopeId`,`data-v-9f15f2af`]]);export{Wa as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{N as e,S as t,dt as n,ft as r,mt as i,v as a}from"./CavpkQb0.js";import{D as o,G as s,H as c,P as l,R as u,S as d,V as f,W as p,b as m,d as h,et as g,f as _,h as v,i as y,m as b,nt as x,p as S,rt as C,tt as w,v as T,y as E}from"./ByMj6e7s.js";import{d as D,l as O,n as k,t as A,u as j}from"./Dqz5HiXa.js";import{d as M,p as N}from"./Br3AySNQ.js";import{n as P,r as ee,t as F}from"./BgnhB8r5.js";import{i as I,t as L}from"./S799kNo8.js";import{n as R}from"./Cnrmlixo.js";import{t as z}from"./DJyNDnag.js";import{Ct as B,Mt as te,Tt as ne,d as re,jt as V,n as H,rt as ie,t as U,u as ae}from"./C2YYOgMe.js";import{C as oe,t as se}from"./Bub2P5me.js";import{a as W,c as ce,j as le}from"./wDPc4SSR.js";import{t as ue}from"./eutnXI4F.js";import{a as de,i as fe,n as pe,r as me,t as he}from"./bt__BP-I.js";import{t as ge}from"./lO5tpDZ52.js";import{n as _e}from"./CtPNnATm2.js";import{t as ve}from"./B9rIcCX12.js";import{t as G}from"./CwLQAKay2.js";import{t as ye}from"./Sjjmp5OD2.js";import{t as K}from"./CI2yXRr42.js";import{t as q}from"./BDNMzG2s2.js";import{t as J}from"./DlUQa0wn.js";import{t as be}from"./Bfe2qOYs.js";import{a as xe,i as Se,l as Ce,t as we,u as Te}from"./D0SNhlnt.js";import{t as Ee}from"./C_sjV3Ee.js";var De=e=>{let{componentCls:t,colorBgContainer:n,colorBgBody:r,colorText:i}=e;return{[`${t}-sider-light`]:{background:n,[`${t}-sider-trigger`]:{color:i,background:n},[`${t}-sider-zero-width-trigger`]:{color:i,background:n,border:`1px solid ${r}`,borderInlineStart:0}}}},Oe=e=>{let{antCls:t,componentCls:n,colorText:r,colorTextLightSolid:i,colorBgHeader:a,colorBgBody:o,colorBgTrigger:s,layoutHeaderHeight:c,layoutHeaderPaddingInline:l,layoutHeaderColor:u,layoutFooterPadding:d,layoutTriggerHeight:f,layoutZeroTriggerSize:p,motionDurationMid:m,motionDurationSlow:h,fontSize:g,borderRadius:_}=e;return{[n]:V(V({display:`flex`,flex:`auto`,flexDirection:`column`,color:r,minHeight:0,background:o,"&, *":{boxSizing:`border-box`},[`&${n}-has-sider`]:{flexDirection:`row`,[`> ${n}, > ${n}-content`]:{width:0}},[`${n}-header, &${n}-footer`]:{flex:`0 0 auto`},[`${n}-header`]:{height:c,paddingInline:l,color:u,lineHeight:`${c}px`,background:a,[`${t}-menu`]:{lineHeight:`inherit`}},[`${n}-footer`]:{padding:d,color:r,fontSize:g,background:o},[`${n}-content`]:{flex:`auto`,minHeight:0},[`${n}-sider`]:{position:`relative`,minWidth:0,background:a,transition:`all ${m}, background 0s`,"&-children":{height:`100%`,marginTop:-.1,paddingTop:.1,[`${t}-menu${t}-menu-inline-collapsed`]:{width:`auto`}},"&-has-trigger":{paddingBottom:f},"&-right":{order:1},"&-trigger":{position:`fixed`,bottom:0,zIndex:1,height:f,color:i,lineHeight:`${f}px`,textAlign:`center`,background:s,cursor:`pointer`,transition:`all ${m}`},"&-zero-width":{"> *":{overflow:`hidden`},"&-trigger":{position:`absolute`,top:c,insetInlineEnd:-p,zIndex:1,width:p,height:p,color:i,fontSize:e.fontSizeXL,display:`flex`,alignItems:`center`,justifyContent:`center`,background:a,borderStartStartRadius:0,borderStartEndRadius:_,borderEndEndRadius:_,borderEndStartRadius:0,cursor:`pointer`,transition:`background ${h} ease`,"&::after":{position:`absolute`,inset:0,background:`transparent`,transition:`all ${h}`,content:`""`},"&:hover::after":{background:`rgba(255, 255, 255, 0.2)`},"&-right":{insetInlineStart:-p,borderStartStartRadius:_,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:_}}}}},De(e)),{"&-rtl":{direction:`rtl`}})}},ke=re(`Layout`,e=>{let{colorText:t,controlHeightSM:n,controlHeight:r,controlHeightLG:i,marginXXS:a}=e,o=i*1.25;return[Oe(ae(e,{layoutHeaderHeight:r*2,layoutHeaderPaddingInline:o,layoutHeaderColor:t,layoutFooterPadding:`${n}px ${o}px`,layoutTriggerHeight:i+a*2,layoutZeroTriggerSize:i}))]},e=>{let{colorBgLayout:t}=e;return{colorBgHeader:`#001529`,colorBgBody:t,colorBgTrigger:`#002140`}}),Ae=()=>({prefixCls:String,hasSider:{type:Boolean,default:void 0},tagName:String});function Y(e){let{suffixCls:t,tagName:n,name:r}=e;return e=>d({compatConfig:{MODE:3},name:r,props:Ae(),setup(r,i){let{slots:a}=i,{prefixCls:o}=H(t,r);return()=>{let t=V(V({},r),{prefixCls:o.value,tagName:n});return m(e,t,a)}}})}var je=d({compatConfig:{MODE:3},props:Ae(),setup(e,t){let{slots:n}=t;return()=>m(e.tagName,{class:e.prefixCls},n)}}),Me=d({compatConfig:{MODE:3},inheritAttrs:!1,props:Ae(),setup(e,t){let{slots:n,attrs:r}=t,{prefixCls:i,direction:o}=H(``,e),[s,l]=ke(i),u=a([]);c(de,{addSider:e=>{u.value=[...u.value,e]},removeSider:e=>{u.value=u.value.filter(t=>t!==e)}});let d=h(()=>{let{prefixCls:t,hasSider:n}=e;return{[l.value]:!0,[`${t}`]:!0,[`${t}-has-sider`]:typeof n==`boolean`?n:u.value.length>0,[`${t}-rtl`]:o.value===`rtl`}});return()=>{let{tagName:t}=e;return s(m(t,V(V({},r),{class:[d.value,r.class]}),n))}}}),Ne=Y({suffixCls:`layout`,tagName:`section`,name:`ALayout`})(Me),X=Y({suffixCls:`layout-header`,tagName:`header`,name:`ALayoutHeader`})(je),Z=Y({suffixCls:`layout-footer`,tagName:`footer`,name:`ALayoutFooter`})(je),Q=Y({suffixCls:`layout-content`,tagName:`main`,name:`ALayoutContent`})(je),Pe={icon:{tag:`svg`,attrs:{viewBox:`0 0 1024 1024`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z`}}]},name:`bars`,theme:`outlined`};function Fe(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:Object(arguments[t]),r=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){Ie(e,t,n[t])})}return e}function Ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Le=function(e,t){var n=Fe({},e,t.attrs);return m(le,Fe({},n,{icon:Pe}),null)};Le.displayName=`BarsOutlined`,Le.inheritAttrs=!1;var Re={xs:`479.98px`,sm:`575.98px`,md:`767.98px`,lg:`991.98px`,xl:`1199.98px`,xxl:`1599.98px`,xxxl:`1999.98px`},ze=()=>({prefixCls:String,collapsible:{type:Boolean,default:void 0},collapsed:{type:Boolean,default:void 0},defaultCollapsed:{type:Boolean,default:void 0},reverseArrow:{type:Boolean,default:void 0},zeroWidthTriggerStyle:{type:Object,default:void 0},trigger:U.any,width:U.oneOfType([U.number,U.string]),collapsedWidth:U.oneOfType([U.number,U.string]),breakpoint:U.oneOf(ie(`xs`,`sm`,`md`,`lg`,`xl`,`xxl`,`xxxl`)),theme:U.oneOf(ie(`light`,`dark`)).def(`dark`),onBreakpoint:Function,onCollapse:Function}),Be=(()=>{let e=0;return function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:``;return e+=1,`${t}${e}`}})(),$=d({compatConfig:{MODE:3},name:`ALayoutSider`,inheritAttrs:!1,props:B(ze(),{collapsible:!1,defaultCollapsed:!1,reverseArrow:!1,width:200,collapsedWidth:80}),emits:[`breakpoint`,`update:collapsed`,`collapse`],setup(e,n){let{emit:r,attrs:i,slots:a}=n,{prefixCls:s}=H(`layout-sider`,e),d=o(de,void 0),f=t(!!(e.collapsed===void 0?e.defaultCollapsed:e.collapsed)),p=t(!1);g(()=>e.collapsed,()=>{f.value=!!e.collapsed}),c(fe,f);let h=(t,n)=>{e.collapsed===void 0&&(f.value=t),r(`update:collapsed`,t),r(`collapse`,t,n)},_=t(e=>{p.value=e.matches,r(`breakpoint`,e.matches),f.value!==e.matches&&h(e.matches,`responsive`)}),v;function y(e){return _.value(e)}let b=Be(`ant-sider-`);d&&d.addSider(b),u(()=>{g(()=>e.breakpoint,()=>{try{v?.removeEventListener(`change`,y)}catch{v?.removeListener(y)}if(typeof window<`u`){let{matchMedia:t}=window;if(t&&e.breakpoint&&e.breakpoint in Re){v=t(`(max-width: ${Re[e.breakpoint]})`);try{v.addEventListener(`change`,y)}catch{v.addListener(y)}y(v)}}},{immediate:!0})}),l(()=>{try{v?.removeEventListener(`change`,y)}catch{v?.removeListener(y)}d&&d.removeSider(b)});let x=()=>{h(!f.value,`clickTrigger`)};return()=>{let t=s.value,{collapsedWidth:n,width:r,reverseArrow:o,zeroWidthTriggerStyle:c,trigger:l=a.trigger?.call(a),collapsible:u,theme:d}=e,h=f.value?n:r,g=ge(h)?`${h}px`:String(h),_=parseFloat(String(n||0))===0?m(`span`,{onClick:x,class:ne(`${t}-zero-width-trigger`,`${t}-zero-width-trigger-${o?`right`:`left`}`),style:c},[l||m(Le,null,null)]):null,v={expanded:m(o?_e:ve,null,null),collapsed:m(o?ve:_e,null,null)}[f.value?`collapsed`:`expanded`],y=l===null?null:_||m(`div`,{class:`${t}-trigger`,onClick:x,style:{width:g}},[l||v]),b=[i.style,{flex:`0 0 ${g}`,maxWidth:g,minWidth:g,width:g}],S=ne(t,`${t}-${d}`,{[`${t}-collapsed`]:!!f.value,[`${t}-has-trigger`]:u&&l!==null&&!_,[`${t}-below`]:!!p.value,[`${t}-zero-width`]:parseFloat(g)===0},i.class);return m(`aside`,te(te({},i),{},{class:S,style:b}),[m(`div`,{class:`${t}-children`},[a.default?.call(a)]),u||p.value&&_?y:null])}}}),Ve=X,He=Z,Ue=$,We=Q,Ge=V(Ne,{Header:X,Footer:Z,Content:Q,Sider:$,install:e=>(e.component(Ne.name,Ne),e.component(X.name,X),e.component(Z.name,Z),e.component($.name,$),e.component(Q.name,Q),e)}),Ke=[`width`,`height`],qe=Object.assign(d({__name:`AwLogo`,props:{size:{default:32}},setup(e){return(t,n)=>(f(),v(`svg`,{width:e.size,height:e.size,viewBox:`0 0 64 64`,fill:`none`,"aria-hidden":`true`},[...n[0]||=[T(`<defs><linearGradient id="aw-logo-gradient" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#35e0a0"></stop><stop offset="1" stop-color="#41c8f4"></stop></linearGradient></defs><path d="M32 4 L56 18 V46 L32 60 L8 46 V18 Z" stroke="url(#aw-logo-gradient)" stroke-width="4" stroke-linejoin="round"></path><path d="M32 15 L46.7 23.5 V40.5 L32 49 L17.3 40.5 V23.5 Z" stroke="#41c8f4" stroke-opacity="0.45" stroke-width="1.8" stroke-dasharray="4 3"></path><path d="M32 23 L25 38 M32 23 L39 38 M25 38 L39 38" stroke="#35e0a0" stroke-width="1.8" stroke-opacity="0.75"></path><circle cx="32" cy="23" r="3.4" fill="#35e0a0"></circle><circle cx="25" cy="38" r="3.4" fill="#41c8f4"></circle><circle cx="39" cy="38" r="3.4" fill="#41c8f4"></circle>`,7)]],8,Ke))}}),{__name:`AwLogo`}),Je={class:`logo`},Ye={class:`logo-mark`,"aria-hidden":`true`},Xe={class:`logo-text`},Ze={class:`logo-title`},Qe={class:`app-menu`},$e={class:`menu-group-label`},et={class:`menu-group-text`},tt={class:`menu-group-sep`,"aria-hidden":`true`},nt=[`title`,`onClick`],rt={class:`sider-footer`},it={class:`footer-line`},at=Object.assign(q(d({__name:`AppSidebar`,setup(t){let r=K(),{t:o}=R(),s=N(),c=F(),d=P(),S=a(!1),T=h(()=>[{id:`console`,label:o(`menu.groups.console`),items:[{key:`/`,icon:`i-tabler-layout-dashboard`,label:o(`menu.dashboard`),motion:`im-pop`},{key:`/workshop`,icon:`i-tabler-box`,label:o(`menu.workshop`),motion:`im-pop`},{key:`/town`,icon:`i-tabler-map-2`,label:o(`menu.town`),motion:`im-pop`},{key:`/daq`,icon:`i-tabler-activity`,label:o(`menu.daq`),motion:`im-pop`},{key:`/dcw`,icon:`i-tabler-settings-automation`,label:o(`menu.dcw`),motion:`im-pop`},{key:`/aml`,icon:`i-tabler-flask`,label:o(`menu.aml`),motion:`im-pop`}]},{id:`ops`,label:o(`menu.groups.ops`),items:[{key:`/operations`,icon:`i-tabler-stream`,label:o(`menu.operations`),motion:`im-pop`},{key:`/monitor`,icon:`i-tabler-cpu`,label:o(`menu.monitor`),motion:`im-pulse`},{key:`/logs`,icon:`i-tabler-list-details`,label:o(`menu.logs`),motion:`im-pop`}]},{id:`system`,label:o(`menu.groups.system`),items:[{key:`/tokens`,icon:`i-tabler-key`,label:o(`menu.tokens`),motion:`im-nudge-up`},{key:`/users`,icon:`i-tabler-users-group`,label:o(`menu.users`),motion:`im-pop`},{key:`/permissions`,icon:`i-tabler-shield-lock`,label:o(`menu.permissions`),motion:`im-pop`,adminOnly:!0},{key:`/plugins`,icon:`i-tabler-puzzle`,label:o(`menu.plugins`),motion:`im-pop`},{key:`/settings`,icon:`i-tabler-settings`,label:o(`menu.settings`),motion:`im-rotate`}]}].map(e=>({...e,items:e.items.filter(e=>!e.adminOnly||S.value&&r.isAdmin)})).filter(e=>e.items.length>0)),E=e=>e===`/`?s.path===`/`:s.path.startsWith(e),D=e=>{k.value&&d.closeMobileNav(),E(e)||M(e)},{isDrawer:k,isTablet:j}=J();u(()=>{S.value=!0});let ee=h(()=>S.value?k.value?`drawer`:j.value?`rail`:`full`:void 0),I=h(()=>k.value?!1:j.value?!0:d.sidebarCollapsed),L=h(()=>!I.value),z=h(()=>k.value&&d.mobileNavOpen);g(()=>s.path,()=>{d.mobileNavOpen&&d.closeMobileNav()}),w(()=>{typeof document>`u`||(document.body.classList.toggle(`nav-drawer`,k.value),document.body.classList.toggle(`nav-drawer-open`,z.value))}),l(()=>{typeof document>`u`||document.body.classList.remove(`nav-drawer`,`nav-drawer-open`)}),g(z,e=>{typeof document>`u`||(document.body.style.overflow=e?`hidden`:``)});let B=e=>{e.key===`Escape`&&z.value&&d.closeMobileNav()};return u(()=>window.addEventListener(`keydown`,B)),l(()=>{window.removeEventListener(`keydown`,B),typeof document<`u`&&(document.body.style.overflow=``)}),(t,r)=>{let a=qe,o=Ue;return f(),v(y,null,[m(o,{collapsed:e(I),trigger:null,collapsible:``,width:228,"collapsed-width":64,class:`app-sider`,"data-nav-mode":e(ee),"aria-hidden":e(k)&&!e(z)?`true`:void 0},{default:x(()=>[_(`div`,Je,[_(`div`,Ye,[m(a,{size:30})]),m(A,{name:`slide-fade`},{default:x(()=>[C(_(`div`,Xe,[_(`span`,Ze,i(e(c).name),1),r[1]||=_(`span`,{class:`logo-sub`},`digital twin`,-1)],512),[[O,e(L)]])]),_:1})]),_(`nav`,Qe,[(f(!0),v(y,null,p(e(T),t=>(f(),v(`div`,{key:t.id,class:`menu-group`},[C(_(`div`,$e,[_(`span`,et,i(t.label),1),r[2]||=_(`span`,{class:`menu-group-rule`,"aria-hidden":`true`},null,-1)],512),[[O,e(L)]]),C(_(`div`,tt,null,512),[[O,!e(L)]]),(f(!0),v(y,null,p(t.items,t=>(f(),v(`button`,{key:t.key,type:`button`,class:n([`menu-item im`,{active:E(t.key)}]),title:e(L)?void 0:t.label,onClick:e=>D(t.key)},[_(`span`,{class:n([`menu-icon`,[t.icon,t.motion]])},null,2),C(_(`span`,{class:`menu-label`},i(t.label),513),[[O,e(L)]])],10,nt))),128))]))),128))]),C(_(`div`,rt,[r[4]||=_(`div`,{class:`footer-rule`},null,-1),_(`div`,it,[_(`span`,null,`v`+i(e(c).version),1),r[3]||=_(`span`,{class:`sep`},`/`,-1),_(`span`,null,i(e(c).mode),1)])],512),[[O,e(L)]])]),_:1},8,[`collapsed`,`data-nav-mode`,`aria-hidden`]),e(z)?(f(),v(`div`,{key:0,class:`nav-scrim`,"aria-hidden":`true`,onClick:r[0]||=t=>e(d).closeMobileNav()})):b(``,!0)],64)}}}),[[`__scopeId`,`data-v-9bace048`]]),{__name:`AppSidebar`}),ot={key:0,class:`nc-count`},st={class:`nc-menu`},ct={class:`nc-menu-title`},lt={class:`nc-unread`},ut={class:`nc-list`},dt=[`onClick`],ft={class:`nc-item-body`},pt={class:`nc-item-top`},mt={class:`nc-item-type`},ht={class:`nc-item-time`},gt={class:`nc-item-title`},_t={key:0,class:`nc-item-text`},vt={key:0,class:`nc-dot`,"aria-hidden":`true`},yt={key:0,class:`nc-empty`},bt=Object.assign(q(d({__name:`NotificationCenter`,setup(t){let r=Te(),o=Ee(),{hostNotifications:s}=we(),c=a(!1),d=a(null);u(async()=>{d.value=s(),r.loaded?await r.backfill():await r.loadSnapshot()}),l(()=>{d.value?.(),d.value=null}),g(()=>r.liveSeq,()=>{let e=r.liveItem;e&&W.info({content:`${e.title}${e.body?` · ${e.body.slice(0,60)}`:``}`,duration:6,onClick:()=>void w(e)})});let m={mention:{label:`@ 提及`,icon:`i-tabler-at`,tone:`mention`},agent_reply:{label:`Agent 回复`,icon:`i-tabler-robot`,tone:`reply`},hitl_request:{label:`待审批`,icon:`i-tabler-alert-triangle`,tone:`hitl`},hitl_resolved:{label:`审批结果`,icon:`i-tabler-circle-check`,tone:`ok`},member:{label:`成员变更`,icon:`i-tabler-user-plus`,tone:`info`}},C=h(()=>r.unreadCount>99?`99+`:String(r.unreadCount));async function w(e){if(c.value=!1,!e.readAt)try{await r.markRead({id:e.id})}catch{}if(e.hitlKind||e.hitlId||e.type===`hitl_request`){await M({path:`/monitor`,query:{agentId:String(e.payload?.agentId??``),channelId:e.channelId??``}});return}if(!e.channelId)return;if(!o.loaded)try{await o.load()}catch{}let t=o.workspaces.find(t=>t.channelIds.includes(e.channelId));if(!t){await M(`/workshop`);return}o.setActiveChannel(t.id,e.channelId),await M({path:`/workshop/w/${t.id}`,query:{view:`chat`}})}let T=a(!1);async function E(){if(!T.value){T.value=!0;try{await r.markRead({all:!0})}catch(e){W.error(e instanceof Error?e.message:`标记已读失败`)}finally{T.value=!1}}}return(t,a)=>{let o=G;return f(),S(o,{open:c.value,"onUpdate:open":a[0]||=e=>c.value=e,placement:`bottomRight`,trigger:[`click`]},{overlay:x(()=>[_(`div`,st,[_(`div`,ct,[a[2]||=_(`span`,null,`我的通知`,-1),_(`span`,lt,i(e(r).unreadCount)+` 未读`,1),e(r).unreadCount>0?(f(),v(`button`,{key:0,type:`button`,class:`nc-markall`,onClick:D(E,[`stop`])},` 全部已读 `)):b(``,!0)]),_(`div`,ut,[(f(!0),v(y,null,p(e(r).items,t=>(f(),v(`button`,{key:t.id,type:`button`,class:n([`nc-item`,{unread:!t.readAt}]),onClick:e=>w(t)},[_(`span`,{class:n([`nc-item-icon`,[m[t.type]?.icon,m[t.type]?.tone]])},null,2),_(`span`,ft,[_(`span`,pt,[_(`span`,mt,i(m[t.type]?.label??t.type),1),_(`span`,ht,i(e(be)(t.createdAt,!1)),1)]),_(`span`,gt,i(t.title),1),t.body?(f(),v(`span`,_t,i(t.body),1)):b(``,!0)]),t.readAt?b(``,!0):(f(),v(`span`,vt))],10,dt))),128)),e(r).items.length===0?(f(),v(`div`,yt,` 暂无通知 —— 被 @ 、收到 Agent 回复或审批请求时会出现在这里 `)):b(``,!0)])])]),default:x(()=>[_(`button`,{class:n([`icon-btn nc-bell`,{unread:e(r).unreadCount>0}]),title:`我的通知(@ 提及 / Agent 回复 / 审批)`},[a[1]||=_(`span`,{class:`i-tabler-bell`},null,-1),e(r).unreadCount>0?(f(),v(`span`,ot,i(C.value),1)):b(``,!0)],2)]),_:1},8,[`open`])}}}),[[`__scopeId`,`data-v-d5946b75`]]),{__name:`WorkshopNotificationCenter`}),xt=I(`app.routeTrail`,()=>{let e=a([]);function t(t){if(!t||t.startsWith(`/api`))return;let n=e.value.filter(e=>e.path!==t);e.value=[...n,{path:t,at:Date.now()}].slice(-8)}function n(t){let n=e.value.findIndex(e=>e.path===t);return n>=0&&(e.value=e.value.filter(e=>e.path!==t)),n}function r(){e.value=[]}return{waypoints:e,visit:t,remove:n,clear:r}},{persist:{pick:[`waypoints`],storage:ee.localStorage()}});function St(){let{t:e}=R(),t=Ee(),n={"/":{key:`menu.dashboard`,icon:`i-tabler-layout-dashboard`},"/workshop":{key:`menu.workshop`,icon:`i-tabler-box`},"/workshop/agents":{key:`meta.agents`,icon:`i-tabler-users`},"/workshop/teams":{key:`meta.teams`,icon:`i-tabler-users-group`},"/workshop/channel-templates":{key:`meta.ctpl`,icon:`i-tabler-layout-grid-add`},"/town":{key:`menu.town`,icon:`i-tabler-map-2`},"/tokens":{key:`menu.tokens`,icon:`i-tabler-key`},"/daq":{key:`menu.daq`,icon:`i-tabler-activity`},"/dcw":{key:`menu.dcw`,icon:`i-tabler-settings-automation`},"/aml":{key:`menu.aml`,icon:`i-tabler-flask`},"/logs":{key:`menu.logs`,icon:`i-tabler-list-details`},"/permissions":{key:`menu.permissions`,icon:`i-tabler-shield-lock`},"/plugins":{key:`menu.plugins`,icon:`i-tabler-puzzle`},"/users":{key:`menu.users`,icon:`i-tabler-users-group`},"/monitor":{key:`menu.monitor`,icon:`i-tabler-cpu`},"/settings":{key:`menu.settings`,icon:`i-tabler-settings`}};return{metaFor:r=>{let i=n[r];if(i)return{title:e(i.key),icon:i.icon};let a=r.match(/^\/workshop\/w\/([^/]+)$/);if(a){let n=a[1];return{title:t.workspaces.find(e=>e.id===n)?.name??`${e(`header.workspace`)} ${n.slice(0,6)}`,icon:`i-tabler-console`}}let o=r.split(`/`).filter(Boolean).pop()??`·`;return{title:o.charAt(0).toUpperCase()+o.slice(1),icon:`i-tabler-point`}}}}var Ct=[`aria-label`],wt=[`title`,`onClick`,`onKeydown`],Tt={class:`node-title`},Et=[`aria-label`,`title`,`onClick`],Dt=Object.assign(q(d({__name:`TrailNav`,props:{hydrated:{type:Boolean}},setup(t){let r=N(),{t:a}=R(),o=xt(),{metaFor:s}=St(),c=e=>{e!==r.path&&M(e)},l=e=>{let t=o.remove(e);if(e!==r.path)return;let n=o.waypoints,i=n[Math.min(Math.max(t-1,0),Math.max(n.length-1,0))]?.path??`/`;M(i)};return(u,d)=>(f(),v(`nav`,{class:`trail`,"aria-label":e(a)(`header.trail`)},[m(k,{name:`stamp`,tag:`div`,class:`trail-row`},{default:x(()=>[t.hydrated?(f(!0),v(y,{key:0},p(e(o).waypoints,(t,a)=>(f(),v(y,{key:t.path},[a>0?(f(),v(`span`,{key:`link-${t.path}`,class:`trail-link`,"aria-hidden":`true`})):b(``,!0),_(`div`,{class:n([`trail-node`,{active:t.path===e(r).path}]),role:`button`,tabindex:`0`,title:e(s)(t.path).title,onClick:e=>c(t.path),onKeydown:j(D(e=>c(t.path),[`prevent`]),[`enter`])},[_(`span`,{class:n([`node-icon`,e(s)(t.path).icon])},null,2),_(`span`,Tt,i(e(s)(t.path).title),1),_(`button`,{class:`node-close`,"aria-label":u.$t(`appHeader.kzwjv99001`,{p0:e(s)(t.path).title}),title:u.$t(`appHeader.kzwjv99001`,{p0:e(s)(t.path).title}),onClick:D(e=>l(t.path),[`stop`])},[...d[0]||=[_(`span`,{class:`i-tabler-x`},null,-1)]],8,Et)],42,wt)],64))),128)):b(``,!0)]),_:1})],8,Ct))}}),[[`__scopeId`,`data-v-9570d879`]]),{__name:`AppHeaderTrailNav`});function Ot(){let{t:e}=R(),t=xe(),n=Se(),r=[`omp-dialog`,`dcw-approval`,`codex-approval`,`opencode-permission`,`dsh-permission`,`claude-permission`,`qwen-permission`,`hermes-permission`],i=t=>{switch(t){case`omp-dialog`:return e(`appHeader.hitlKindOmp`);case`dcw-approval`:return e(`appHeader.hitlKindDcw`);case`codex-approval`:return e(`appHeader.hitlKindCodex`);case`opencode-permission`:return e(`appHeader.hitlKindOpencode`);case`dsh-permission`:return e(`appHeader.hitlKindDsh`);case`claude-permission`:return`claude 权限`;case`qwen-permission`:return`qwen 权限`;case`hermes-permission`:return`hermes 权限`;default:return t}},o=e=>{M({path:`/monitor`,query:{agentId:e.agentId,channelId:e.channelId}})},s=e=>e.channelId in n.permissions,c=e=>{let t=n.permissions[e.channelId];return t?t.canApprove||t.isAdmin?!0:n.settings[e.channelId]?.legacy===!0:!1},l=e=>e.requestType?e.requestType:e.questions&&e.questions.length>0||e.method===`input`||e.method===`editor`||e.method===`select`?`question`:`approval`,u=e=>l(e)===`question`,d=e=>e.kind===`opencode-permission`&&(e.options?.length??0)>0,f=a({}),p=a({}),m=a({}),h=e=>`${e.kind}:${e.id}`,g=(e,t)=>`${h(e)}:${t}`,_=(e,t,n)=>t.multiSelect?(p.value[g(e,t.id)]??[]).includes(n):f.value[g(e,t.id)]===n,v=(e,t,n)=>{let r=g(e,t.id);if(t.multiSelect){let e=p.value[r]??[];p.value={...p.value,[r]:e.includes(n)?e.filter(e=>e!==n):[...e,n]}}else f.value={...f.value,[r]:n}},y=(e,t)=>{let n=g(e,t.id),r=t.multiSelect?p.value[n]??[]:[f.value[n]??``].filter(Boolean),i=(m.value[n]??``).trim();return[...r.filter(Boolean),i].filter(Boolean).join(`、`)},b=`__plain`,x=e=>{if(e.questions&&e.questions.length>0)return e.questions;let t=e.options?.map(e=>({label:e}));return[{id:b,question:e.message||e.detail||e.title,options:t,multiSelect:!1,freeText:!(t&&t.length>0)}]},S=async(e,n)=>{let r=await t.answer(e,n);if(r.ok){W.success(`已提交`);return}r.code===`ALREADY_RESOLVED`?W.warning(`已被他人处理`):r.code===`APPROVAL_FORBIDDEN`?W.warning(r.message||`无审批权限(该 Channel 策略不允许你决策)`):W.error(r.message)};return{HITL_KINDS:r,hitlKindLabel:i,hitlGo:o,permsKnown:s,canAnswer:c,requestTypeOf:l,isQuestion:u,isNativeOptionApproval:d,qSingle:f,qMulti:p,qFree:m,itemKey:h,slotOf:g,isChosen:_,chooseOption:v,answerOf:y,PLAIN_QID:b,questionsOf:x,answer:S,submitQuestion:async e=>{let t=x(e),n=t.findIndex(t=>!y(e,t).trim());if(n>=0){W.warning(`请先填写第 ${n+1} 题(${t[n].question||`未命名问题`})的答案`);return}await S(e,{answers:t.map((t,n)=>({id:t.id||String(n),answer:y(e,t)}))})},submitApproval:async(e,t)=>{await S(e,{confirmed:t})},submitNativeOption:async(e,t)=>{await S(e,{response:t})},submitCancel:async e=>{await S(e,{cancelled:!0})},policyLabel:e=>e.policy===`any_member`?`任一成员可决策`:e.policy?`仅 owner 可决策`:``}}var kt=[`title`],At={class:`hitl-count`},jt={class:`hitl-menu`},Mt={class:`hitl-menu-title`},Nt=[`onClick`],Pt={class:`hitl-item-top`},Ft={class:`hitl-item-agent`},It={class:`hitl-item-kind`},Lt=[`data-type`],Rt={class:`hitl-item-title`},zt={key:0,class:`hitl-item-detail`},Bt={key:1,class:`hitl-item-detail`},Vt={key:2,class:`hitl-item-policy`},Ht={key:0,class:`hitl-answer-note`},Ut={key:1,class:`hitl-answer-note`},Wt={key:2,class:`hitl-answer-note`},Gt={key:3,class:`hitl-answer`},Kt={key:0,class:`hitl-q-title`},qt={key:1,class:`hitl-q-desc`},Jt={key:2,class:`hitl-opts`},Yt=[`title`,`onClick`],Xt={class:`hitl-btns`},Zt={key:0,class:`hitl-opts`},Qt=[`onClick`],$t={class:`hitl-btns`},en=Object.assign(q(d({__name:`HitlBell`,setup(t){let{t:r}=R(),a=xe(),{HITL_KINDS:o,hitlKindLabel:s,hitlGo:c,permsKnown:l,canAnswer:u,requestTypeOf:d,isQuestion:h,isNativeOptionApproval:g,qFree:C,slotOf:w,isChosen:T,chooseOption:D,questionsOf:O,submitQuestion:k,submitNativeOption:A,submitApproval:j,submitCancel:M,policyLabel:N}=Ot();return(t,P)=>{let ee=se,F=ce,I=G;return e(a).count>0?(f(),S(I,{key:0,placement:`bottomRight`},{overlay:x(()=>[_(`div`,jt,[_(`div`,Mt,i(e(r)(`appHeader.hitlBadge`))+` · `+i(e(a).count),1),(f(!0),v(y,null,p(e(a).items,t=>(f(),v(`div`,{key:`${t.kind}:${t.id}`,class:`hitl-item`},[_(`button`,{type:`button`,class:`hitl-item-head`,onClick:n=>e(c)(t)},[_(`span`,Pt,[_(`span`,Ft,i(t.agentName),1),_(`span`,It,i(e(s)(t.kind)),1),t.requestType||e(h)(t)?(f(),v(`span`,{key:0,class:`hitl-item-reqtype`,"data-type":e(d)(t)},i(e(h)(t)?`提问`:`审批`),9,Lt)):b(``,!0)]),_(`span`,Rt,i(t.title),1),t.detail?(f(),v(`span`,zt,i(t.detail),1)):b(``,!0),t.message?(f(),v(`span`,Bt,i(t.message),1)):b(``,!0),t.policy?(f(),v(`span`,Vt,[P[1]||=_(`span`,{class:`i-tabler-shield-lock`},null,-1),E(` 策略:`+i(e(N)(t)),1)])):b(``,!0)],8,Nt),e(o).includes(t.kind)?e(l)(t)?e(u)(t)?(f(),v(`div`,Gt,[e(h)(t)?(f(),v(y,{key:0},[(f(!0),v(y,null,p(e(O)(t),(r,a)=>(f(),v(`div`,{key:`${t.kind}:${t.id}:${r.id}:${a}`,class:`hitl-q`},[t.questions&&t.questions.length>1?(f(),v(`div`,Kt,i(a+1)+`. `+i(r.header||r.question),1)):b(``,!0),r.header&&r.question?(f(),v(`div`,qt,i(r.question),1)):b(``,!0),r.options&&r.options.length>0?(f(),v(`div`,Jt,[(f(!0),v(y,null,p(r.options,a=>(f(),v(`button`,{key:a.label,type:`button`,class:n([`hitl-opt`,{on:e(T)(t,r,a.label)}]),title:a.description||a.label,onClick:n=>e(D)(t,r,a.label)},i(a.label),11,Yt))),128))])):b(``,!0),!(r.options&&r.options.length>0)||r.freeText?(f(),S(ee,{key:3,value:e(C)[e(w)(t,r.id)],"onUpdate:value":n=>e(C)[e(w)(t,r.id)]=n,rows:2,placeholder:r.options&&r.options.length>0?`补充说明(可选)`:`输入答案`},null,8,[`value`,`onUpdate:value`,`placeholder`])):b(``,!0)]))),128)),_(`div`,Xt,[m(F,{size:`small`,type:`primary`,loading:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(k)(t)},{default:x(()=>[...P[2]||=[E(` 提交答案 `,-1)]]),_:1},8,[`loading`,`onClick`]),m(F,{size:`small`,disabled:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(M)(t)},{default:x(()=>[...P[3]||=[E(` 取消请求 `,-1)]]),_:1},8,[`disabled`,`onClick`])])],64)):(f(),v(y,{key:1},[e(g)(t)?(f(),v(`div`,Zt,[(f(!0),v(y,null,p(t.options,n=>(f(),v(`button`,{key:n,type:`button`,class:`hitl-opt`,onClick:r=>e(A)(t,n)},i(n),9,Qt))),128))])):b(``,!0),_(`div`,$t,[m(F,{size:`small`,type:`primary`,loading:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(j)(t,!0)},{default:x(()=>[E(i(e(r)(`appHeader.hitlApprove`)),1)]),_:1},8,[`loading`,`onClick`]),m(F,{size:`small`,danger:``,disabled:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(j)(t,!1)},{default:x(()=>[E(i(e(r)(`appHeader.hitlReject`)),1)]),_:1},8,[`disabled`,`onClick`]),m(F,{size:`small`,disabled:e(a).answering===`${t.kind}:${t.id}`,onClick:n=>e(M)(t)},{default:x(()=>[...P[4]||=[E(` 取消 `,-1)]]),_:1},8,[`disabled`,`onClick`])])],64))])):(f(),v(`div`,Wt,` 无审批权限`+i(t.policy?`(${e(N)(t)})`:``),1)):(f(),v(`div`,Ut,` 读取审批权限… `)):(f(),v(`div`,Ht,` 该类型待办需在对应引擎界面处理 `))]))),128))])]),default:x(()=>[_(`button`,{class:`icon-btn hitl-bell`,title:e(r)(`appHeader.hitlBadge`)},[P[0]||=_(`span`,{class:`i-tabler-bell-ringing`},null,-1),_(`span`,At,i(e(a).count),1)],8,kt)]),_:1})):b(``,!0)}}}),[[`__scopeId`,`data-v-1fdcc40f`]]),{__name:`AppHeaderHitlBell`}),tn=[`title`],nn=Object.assign(q(d({__name:`HeaderTools`,props:{hydrated:{type:Boolean}},setup(t){let{t:r,locale:i,locales:o,setLocale:s}=R(),c=P(),{isMobile:l}=J(),u=h(()=>o.value.map(e=>({label:l.value?e.code.split(`-`)[0].toUpperCase():e.name,value:e.code}))),d=e=>{e!=null&&(L(`aw.locale`,{maxAge:31536e3}).value=String(e),localStorage.setItem(`aw.locale`,String(e)),s(String(e)),window.location.reload())},p=Ce(),g=h(()=>p.state!==`closed`||p.lastDataAt>0),S=h(()=>p.state===`open`?p.pendingReplay?`syncing`:`live`:p.state===`connecting`?`syncing`:`down`),C=h(()=>p.state===`open`?p.pendingReplay?r(`appHeader.kwsdot0002`):r(`appHeader.kwsdot0001`):p.state===`connecting`?r(`appHeader.kwsdot0003`):r(`appHeader.kwsdot0004`)),w=a(!1);function T(){document.fullscreenElement?(document.exitFullscreen(),w.value=!1):(document.documentElement.requestFullscreen(),w.value=!0)}return(a,o)=>{let s=oe,l=ue;return f(),v(y,null,[t.hydrated&&e(g)?(f(),v(`span`,{key:0,class:n([`ws-dot`,e(S)]),title:e(C)},null,10,tn)):b(``,!0),m(s,{title:e(r)(`header.fullscreen`)},{default:x(()=>[_(`button`,{class:`icon-btn hdr-fullscreen`,onClick:T},[_(`span`,{class:n([`i-tabler-arrows-maximize`,{hidden:e(w)}])},null,2),_(`span`,{class:n([`i-tabler-arrows-minimize`,{hidden:!e(w)}])},null,2)])]),_:1},8,[`title`]),m(l,{id:`hdr-locale`,value:e(i),size:`middle`,options:e(u),class:`lang-select`,onChange:d},null,8,[`value`,`options`]),m(s,{title:e(c).isDark?e(r)(`common.light`):e(r)(`common.dark`)},{default:x(()=>[_(`button`,{class:`icon-btn`,onClick:o[0]||=t=>e(c).toggleDark()},[_(`span`,{class:n([`i-tabler-sun-high`,{hidden:e(c).isDark}])},null,2),_(`span`,{class:n([`i-tabler-moon-stars`,{hidden:!e(c).isDark}])},null,2)])]),_:1},8,[`title`])],64)}}}),[[`__scopeId`,`data-v-d647eb55`]]),{__name:`AppHeaderTools`}),rn={class:`user-chip`},an={class:`user-initial aw-avatar`},on={class:`user-meta`},sn={class:`user-name`},cn={class:`user-role`},ln=Object.assign(q(d({__name:`UserChip`,setup(t){let{t:r}=R(),a=K(),o=h(()=>(a.user?.name??`?`).trim().charAt(0).toUpperCase()),s=h(()=>a.user?.name??r(`header.guest`)),c=h(()=>a.isLoggedIn?a.user?.role??`user`:`anonymous`),l=h(()=>{let e=[{key:`tokens`,icon:`i-tabler-key`,label:r(`menu.tokens`)},{key:`settings`,icon:`i-tabler-adjustments`,label:r(`menu.settings`)}];return a.isLoggedIn&&(e.push({key:`d-logout`,label:``,divider:!0}),e.push({key:`logout`,icon:`i-tabler-logout`,label:r(`header.logout`),danger:!0})),e}),u=async({key:e})=>{e===`settings`?M(`/settings`):e===`tokens`?M(`/tokens`):e===`logout`&&(await a.logout(),M(`/workshop`))};return(t,r)=>{let a=z,d=pe,h=me,g=he,b=G;return f(),S(b,null,{overlay:x(()=>[m(g,{onClick:u},{default:x(()=>[(f(!0),v(y,null,p(e(l),e=>(f(),v(y,{key:e.key},[e.divider?(f(),S(d,{key:0})):(f(),S(h,{key:e.key,danger:e.danger},{default:x(()=>[_(`span`,{class:n([e.icon,`mr-2`])},null,2),E(` `+i(e.label),1)]),_:2},1032,[`danger`]))],64))),128))]),_:1})]),default:x(()=>[_(`div`,rn,[m(a,null,{fallback:x(()=>[...r[0]||=[_(`span`,{class:`user-initial aw-avatar`},`·`,-1),_(`span`,{class:`user-meta`},[_(`span`,{class:`user-name`},`·`),_(`span`,{class:`user-role`},`·`)],-1)]]),default:x(()=>[_(`span`,an,i(e(o)),1),_(`span`,on,[_(`span`,sn,i(e(s)),1),_(`span`,cn,i(e(c)),1)])]),_:1})])]),_:1})}}}),[[`__scopeId`,`data-v-c89d85c4`]]),{__name:`AppHeaderUserChip`}),un={class:`header-left`},dn=[`aria-label`,`aria-expanded`],fn={class:`mobile-title`},pn={class:`header-right`},mn=Object.assign(q(d({__name:`AppHeader`,setup(t){let{t:r}=R(),o=P(),s=N(),c=xt(),d=K(),{metaFor:p}=St(),v=xe(),y=Se(),b=we(),C=()=>{d.isLoggedIn&&b.ensureConnected()};g(()=>d.token,e=>{e?(C(),v.loadSnapshot()):v.clear()},{immediate:!0}),g(()=>v.items.map(e=>e.channelId).join(`|`),e=>{for(let t of new Set(e.split(`|`).filter(Boolean)))t in y.permissions||y.loadPermissions(t)},{immediate:!0});let{isDrawer:w}=J(),T=h(()=>w.value?o.mobileNavOpen?r(`header.closeNav`):r(`header.openNav`):o.sidebarCollapsed?r(`header.expand`):r(`header.collapse`)),E=()=>{w.value?o.toggleMobileNav():o.toggleSidebar()},D=h(()=>p(s.path).title),O=a(!1),k=a(!1),A=null;return g(()=>s.path,()=>{c.visit(s.path),k.value=!1,requestAnimationFrame(()=>{k.value=!0,A&&clearTimeout(A),A=setTimeout(()=>{k.value=!1},620)})},{immediate:!1}),u(()=>{O.value=!0,c.visit(s.path)}),l(()=>{A&&clearTimeout(A)}),(t,r)=>{let a=bt,s=z,c=Ve;return f(),S(c,{class:`app-header app-header-glass`},{default:x(()=>[_(`div`,un,[_(`button`,{class:`collapse-btn`,"aria-label":e(T),"aria-expanded":e(w)?e(o).mobileNavOpen:!e(o).sidebarCollapsed,onClick:r[0]||=e=>E()},[...r[1]||=[_(`span`,{class:`i-tabler-menu-2`},null,-1)]],8,dn),_(`span`,fn,i(e(D)),1),r[2]||=_(`span`,{class:`rail-mark i-tabler-route`},null,-1),m(Dt,{hydrated:e(O)},null,8,[`hydrated`])]),_(`div`,pn,[m(s,null,{default:x(()=>[m(a)]),_:1}),m(s,null,{default:x(()=>[m(en)]),_:1}),m(nn,{hydrated:e(O)},null,8,[`hydrated`]),m(ln)]),_(`span`,{class:n([`plotter-line`,{run:e(k)}]),"aria-hidden":`true`},null,2)]),_:1})}}}),[[`__scopeId`,`data-v-21aed131`]]),{__name:`AppHeader`}),hn={class:`footer-title aw-serif-accent`},gn={class:`footer-corner`},_n=q(d({__name:`default`,setup(t){let{token:n}=ye.useToken(),a=F();return(t,o)=>{let c=at,l=mn,u=We,d=He,p=Ge;return f(),S(p,{class:`app-layout`,"has-sider":``},{default:x(()=>[m(c),m(p,{class:`app-main`,style:r({background:`transparent`,"--app-bg-container":e(n)?.colorBgContainer,"--app-bg-layout":e(n)?.colorBgLayout,"--app-text":e(n)?.colorText,"--app-text-secondary":e(n)?.colorTextSecondary,"--app-border":e(n)?.colorBorderSecondary,"--app-fill":e(n)?.colorFillQuaternary,"--app-header-h":`56px`,"--app-footer-h":`46px`})},{default:x(()=>[m(l),m(u,{class:`app-content`},{default:x(()=>[s(t.$slots,`default`,{},void 0,!0)]),_:3}),m(d,{class:`app-footer`,style:r({color:e(n)?.colorTextSecondary})},{default:x(()=>[_(`span`,hn,i(e(a).title),1),o[4]||=_(`span`,{class:`sep`},`/`,-1),_(`span`,null,`mode=`+i(e(a).mode),1),_(`span`,gn,[_(`span`,null,`v`+i(e(a).version),1),o[0]||=_(`span`,{class:`sep`},`·`,-1),o[1]||=_(`a`,{class:`footer-link`,href:`https://github.com/kingdol666/AgentWorkShop`,target:`_blank`,rel:`noopener`},`GitHub`,-1),o[2]||=_(`span`,{class:`sep`},`·`,-1),o[3]||=_(`a`,{class:`footer-link`,href:`https://kingdol666.github.io/AgentWorkShop/`,target:`_blank`,rel:`noopener`},`Docs`,-1)])]),_:1},8,[`style`])]),_:3},8,[`style`]),o[5]||=_(`span`,{class:`aw-noise`,"aria-hidden":`true`},null,-1)]),_:3})}}}),[[`__scopeId`,`data-v-e4abc244`]]);export{_n as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.plugin-slot[data-v-f86b8e9c]{flex-direction:column;gap:12px;display:flex}.plugin-slot-panel[data-v-f86b8e9c]:empty{display:none}.plugin-slot-panel[data-v-f86b8e9c]{border:1px solid color-mix(in srgb, var(--ink) 14%, transparent);background:color-mix(in srgb, var(--ink) 3%, transparent);border-radius:10px;padding:12px 14px}.plugin-slot-title[data-v-f86b8e9c]{color:var(--ink-soft);margin-bottom:8px;font-size:13px;font-weight:600}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.mh-ava[data-v-85570eca]{width:34px;height:34px;font-size:14px}.mh-body[data-v-85570eca]{flex-direction:column;gap:2px;min-width:0;display:flex}.mh-name[data-v-85570eca]{color:var(--ink);align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.mh-dot[data-v-85570eca]{border-radius:50%;flex:none;width:7px;height:7px}.mh-role[data-v-85570eca]{color:var(--ink-faint);font-size:11.5px}.mh-task[data-v-85570eca]{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.mh-hint[data-v-85570eca]{color:var(--ink-faint);margin-top:3px;font-size:10.5px}.pane-splitter[data-v-4f787ef8]{z-index:5;cursor:col-resize;touch-action:none;outline:none;flex:0 0 9px;position:relative}.pane-splitter[data-v-4f787ef8]:before{content:"";width:1px;transition:background var(--transition-fast);background:0 0;position:absolute;top:0;bottom:0;left:4px}.pane-splitter.divider[data-v-4f787ef8]:before{background:var(--line)}.pane-splitter.dragging[data-v-4f787ef8]:before,.pane-splitter[data-v-4f787ef8]:focus-visible:before,.pane-splitter[data-v-4f787ef8]:hover:before{background:var(--ink)}.pane-splitter.bare[data-v-4f787ef8]:before{left:2px}.pane-splitter.bare.dragging[data-v-4f787ef8]:before,.pane-splitter.bare[data-v-4f787ef8]:hover:before{background:color-mix(in srgb, var(--ink) 35%, transparent)}.grip[data-v-4f787ef8]{background:var(--ink);border-radius:var(--radius-pill);opacity:0;width:2px;height:18px;transition:opacity var(--transition-fast);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pane-splitter.dragging .grip[data-v-4f787ef8],.pane-splitter:focus-visible .grip[data-v-4f787ef8],.pane-splitter:hover .grip[data-v-4f787ef8]{opacity:.45}.pane-splitter.dragging .grip[data-v-4f787ef8]{opacity:.85}.topbar[data-v-c0ff781a]{background:var(--paper-raised);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 14px;font-size:13px;display:flex}.left[data-v-c0ff781a],.right[data-v-c0ff781a]{align-items:center;gap:8px;min-width:0;display:flex}.topbar-mark[data-v-c0ff781a]{color:var(--ink-faint);font-size:15px}.ws-name[data-v-c0ff781a]{max-width:260px;font-family:var(--font-display);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:17px;font-weight:400;overflow:hidden}.chan-chip[data-v-c0ff781a]{max-width:200px;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line-strong);border-radius:var(--radius-pill);align-items:center;gap:3px;padding:1px 10px;font-size:12px;display:inline-flex;overflow:hidden}.chan-hash[data-v-c0ff781a]{font-family:var(--font-display);color:var(--ink-faint)}.view-switch[data-v-c0ff781a]{margin-left:8px}.dot[data-v-c0ff781a]{border-radius:50%;width:8px;height:8px}.ws-state[data-v-c0ff781a]{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);border-radius:var(--radius-chip);padding:1px 6px;font-size:10px}.ws-state[data-state=open][data-v-c0ff781a]{color:var(--tone-success-dot);border-color:color-mix(in srgb, var(--tone-success-dot) 45%, transparent)}.ws-state[data-state=connecting][data-v-c0ff781a]{color:var(--tone-warning-dot);border-color:color-mix(in srgb, var(--tone-warning-dot) 45%, transparent)}.ws-state[data-state=closed][data-v-c0ff781a]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 45%, transparent)}.seq[data-v-c0ff781a]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:10px}.pane-toggle[data-v-c0ff781a]{width:26px;height:26px;color:var(--ink-soft);cursor:pointer;border-radius:var(--radius-panel-sm);transition:color var(--transition-fast), background var(--transition-fast), opacity var(--transition-fast);background:0 0;border:0;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.pane-toggle[data-v-c0ff781a]:hover{color:var(--ink);background:var(--paper-deep)}.pane-toggle.off[data-v-c0ff781a]{opacity:.4}.pane-toggle.off[data-v-c0ff781a]:hover{opacity:1}@media (width<=1023.98px){.topbar[data-v-c0ff781a]{flex-wrap:wrap;gap:6px 8px;padding:8px 10px}.topbar .left[data-v-c0ff781a]{row-gap:8px}.ws-name[data-v-c0ff781a]{max-width:40vw;font-size:15px}.chan-chip[data-v-c0ff781a]{max-width:34vw;font-size:12px}.view-switch[data-v-c0ff781a]{flex:100%;margin-left:0}.seq[data-v-c0ff781a],.ws-state[data-v-c0ff781a]{font-size:11.5px}.pane-toggle[data-v-c0ff781a]{width:40px;height:40px;font-size:18px}.toggle-left-desk[data-v-c0ff781a],.toggle-right-desk[data-v-c0ff781a]{display:none}}.toggle-left-narrow[data-v-c0ff781a]{display:none}@media (width<=1023.98px){.toggle-left-narrow[data-v-c0ff781a]{display:inline-flex}}.fs[data-v-eed7eab9]{flex-direction:column;gap:8px;display:flex}.addr[data-v-eed7eab9]{font-family:var(--font-mono);background:color-mix(in srgb, currentColor 5%, transparent);border-radius:var(--radius-chip);padding:4px 8px;font-size:12px}.crumbs[data-v-eed7eab9] a{color:var(--color-primary)}.manual[data-v-eed7eab9]{max-width:100%}.list[data-v-eed7eab9]{border:1px solid color-mix(in srgb, currentColor 10%, transparent);border-radius:var(--radius-chip);height:280px;overflow-y:auto}.row[data-v-eed7eab9]{cursor:pointer;align-items:center;gap:8px;padding:4px 10px;font-size:12px;display:flex}.row[data-v-eed7eab9]:hover{background:color-mix(in srgb, currentColor 8%, transparent)}.row.up[data-v-eed7eab9]{opacity:.7}.icon[data-v-eed7eab9]{flex:none}.name[data-v-eed7eab9]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty[data-v-eed7eab9]{opacity:.4;text-align:center;padding:24px;font-size:12px}.hint[data-v-eed7eab9]{opacity:.55;font-size:11px}.ws-hint[data-v-400a3f48]{color:var(--ink-faint);font-size:11px}.ch-plugin-list[data-v-3ff76d4f]{flex-direction:column;gap:6px;width:100%;display:flex}.ch-plugin-row[data-v-3ff76d4f]{border:1px solid var(--border,#80808040);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:4px 8px;display:flex}.ch-plugin-main[data-v-3ff76d4f]{align-items:baseline;gap:8px;min-width:0;display:flex}.ch-plugin-desc[data-v-3ff76d4f]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ws-hint[data-v-3ff76d4f],.ws-hint[data-v-f6a8bae6]{color:var(--ink-faint);font-size:11px}.channel-list[data-v-140079b6]{flex-direction:column;min-height:100%;padding:12px 10px 8px;display:flex}.list-head[data-v-140079b6]{justify-content:space-between;align-items:center;padding:0 8px 8px;display:flex}.title[data-v-140079b6]{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:16px}.head-actions[data-v-140079b6]{gap:2px;display:inline-flex}.head-op[data-v-140079b6]{width:24px;height:24px;color:var(--ink-faint);cursor:pointer;border-radius:var(--radius-chip);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:0;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.head-op[data-v-140079b6]:hover{color:var(--ink);background:var(--paper-deep)}.empty[data-v-140079b6]{color:var(--ink-faint);padding:14px 10px;font-size:12px}.channel-item[data-v-140079b6]{cursor:pointer;border-radius:var(--radius-panel-sm);transition:background var(--transition-fast);margin:1px 0;padding:7px 9px}.channel-item[data-v-140079b6]:hover{background:var(--paper-deep)}.channel-item.active[data-v-140079b6]{background:var(--paper-deep);box-shadow:inset 2px 0 0 var(--accent)}.row1[data-v-140079b6]{color:var(--ink-soft);align-items:center;gap:7px;font-size:13px;display:flex}.channel-item.active .row1[data-v-140079b6]{color:var(--ink);font-weight:500}.dot[data-v-140079b6]{background:var(--tone-neutral-dot);opacity:.55;border-radius:50%;flex:none;width:7px;height:7px}.dot.live[data-v-140079b6]{background:var(--tone-success-dot);opacity:1}.ch-name[data-v-140079b6]{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.sched-tag[data-v-140079b6]{color:var(--accent,var(--ink-soft));border:1px solid color-mix(in srgb, var(--accent,var(--ink-soft)) 45%, transparent);border-radius:var(--radius-chip);flex:none;align-items:center;gap:2px;padding:0 5px;font-size:10px;line-height:16px;display:inline-flex}.sched-n[data-v-140079b6]{font-family:var(--font-mono);font-size:9.5px}.op[data-v-140079b6]{width:20px;height:20px;color:var(--ink-faint);cursor:pointer;border-radius:var(--radius-chip);opacity:.55;transition:opacity var(--transition-fast), color var(--transition-fast), background var(--transition-fast);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;font-size:13px;display:inline-flex}.channel-item.active .op[data-v-140079b6],.channel-item:hover .op[data-v-140079b6]{opacity:.9}.op[data-v-140079b6]:hover{opacity:1;color:var(--ink);background:var(--paper-deep)}.op[data-v-140079b6]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.row2[data-v-140079b6]{color:var(--ink-faint);padding-left:14px;font-size:11px}.meta.syncing[data-v-140079b6]{opacity:.6;font-style:italic}.row2.ws[data-v-140079b6]{max-width:100%;font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;color:var(--ink-faint);text-align:left;cursor:copy;border-radius:var(--radius-chip);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:0;align-items:center;gap:4px;padding:0 2px 0 14px;font-size:11px;display:flex;overflow:hidden}.row2.ws[data-v-140079b6]:hover{color:var(--ink-soft);background:color-mix(in srgb, currentColor 6%, transparent)}.row2.ws[data-v-140079b6]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.mount-template[data-v-140079b6]{border-top:1px solid var(--line);margin-top:10px;padding:12px 6px 6px}.select[data-v-140079b6]{width:100%}.tpl-hint[data-v-140079b6]{color:var(--ink-faint);padding:5px 2px 0;font-size:10.5px}.ws-hint[data-v-140079b6]{color:var(--ink-faint);font-size:11px}.live-bar[data-v-8f6c62e6]{background:var(--paper);border-top:1px solid var(--line);flex:none;align-items:center;gap:6px;min-height:50px;padding:7px 8px;display:flex;position:relative}.live-idle[data-v-8f6c62e6]{align-items:center;gap:8px;padding-left:6px;display:flex}.idle-dot[data-v-8f6c62e6]{background:var(--ink-fainter);border-radius:50%;flex:none;width:7px;height:7px}.idle-text[data-v-8f6c62e6]{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.live-main[data-v-8f6c62e6]{font-family:var(--font-body);color:var(--ink-soft);text-align:left;cursor:pointer;border-radius:var(--radius-panel-sm);transition:background var(--transition-fast);background:0 0;border:0;flex:1;align-items:center;gap:9px;padding:4px 6px;display:flex}.live-main[data-v-8f6c62e6]:hover{background:var(--paper-deep)}.live-ava[data-v-8f6c62e6]{flex:none;line-height:0;position:relative}.live-avatar[data-v-8f6c62e6]{width:22px;height:22px;font-size:10px}.live-avatar-sm[data-v-8f6c62e6]{width:20px;height:20px;font-size:9.5px}.live-pip[data-v-8f6c62e6]{background:var(--tone-live-dot);border:1.5px solid var(--paper);border-radius:50%;width:9px;height:9px;position:absolute;bottom:-2px;right:-2px}.live-pip[data-v-8f6c62e6]:after{content:"";background-color:inherit;border-radius:50%;animation:1.9s cubic-bezier(0,0,.2,1) infinite lb-ping-8f6c62e6;position:absolute;inset:0}.live-text[data-v-8f6c62e6]{flex-direction:column;gap:1px;min-width:0;display:flex}.live-name[data-v-8f6c62e6]{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.live-detail[data-v-8f6c62e6]{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.live-more[data-v-8f6c62e6]{color:var(--ink-faint);cursor:pointer;background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-pill);transition:background var(--transition-fast), color var(--transition-fast);flex:none;padding:2px 8px;font-size:11px;font-weight:600}.live-more[data-v-8f6c62e6]:hover{color:var(--ink);background:var(--paper-deep)}.live-backdrop[data-v-8f6c62e6]{z-index:40;position:fixed;inset:0}.live-pop[data-v-8f6c62e6]{z-index:41;background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-panel-sm);max-height:280px;box-shadow:var(--shadow-float);padding:6px;position:absolute;bottom:calc(100% + 6px);left:8px;right:8px;overflow:auto}.live-pop-title[data-v-8f6c62e6]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:4px 8px 6px;font-size:10px;font-weight:600}.live-pop-item[data-v-8f6c62e6]{width:100%;font-family:var(--font-body);color:var(--ink-soft);text-align:left;cursor:pointer;border-radius:var(--radius-panel-sm);background:0 0;border:0;align-items:center;gap:9px;padding:7px 8px;display:flex}.live-pop-item[data-v-8f6c62e6]:hover{background:var(--paper-deep)}.live-pop-text[data-v-8f6c62e6]{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.live-pop-name[data-v-8f6c62e6]{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.live-pop-detail[data-v-8f6c62e6]{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.pop-dot[data-v-8f6c62e6]{background:var(--tone-live-dot);border-radius:50%;flex:none;width:8px;height:8px}@keyframes lb-ping-8f6c62e6{0%{opacity:.55;transform:scale(1)}70%,to{opacity:0;transform:scale(2.4)}}@media (prefers-reduced-motion:reduce){.live-pip[data-v-8f6c62e6]:after{opacity:0;animation:none}}@media (width<=1023.98px){.live-main[data-v-8f6c62e6]{min-height:44px}.live-more[data-v-8f6c62e6]{min-height:40px;padding:0 10px;font-size:12px}.idle-text[data-v-8f6c62e6],.live-detail[data-v-8f6c62e6],.live-pop-detail[data-v-8f6c62e6],.live-pop-title[data-v-8f6c62e6]{font-size:11.5px}.live-pop-item[data-v-8f6c62e6]{min-height:44px}.live-avatar-sm[data-v-8f6c62e6]{width:24px;height:24px;font-size:11px}.live-pop[data-v-8f6c62e6]{max-height:46dvh}}.left-pane[data-v-8a7594a2]{background:var(--paper);flex-direction:column;flex:none;min-height:0;display:flex;overflow:hidden}.left-scroll[data-v-8a7594a2]{flex:auto;min-height:0;overflow:hidden auto}@media (width<=1023.98px){.left-pane[data-v-8a7594a2]{z-index:30;border-right:1px solid var(--line);width:min(86vw,320px);box-shadow:var(--shadow-float);animation:.18s cubic-bezier(.22,1,.36,1) pane-in-8a7594a2;position:absolute;top:0;bottom:0;left:0}}@media (prefers-reduced-motion:reduce){.left-pane[data-v-8a7594a2]{animation:none}}@keyframes pane-in-8a7594a2{0%{opacity:.5;transform:translate(-16px)}to{opacity:1;transform:none}}.agent-avatar[data-v-37c7e436]{width:30px;min-width:30px;height:30px;font-family:var(--font-body);color:var(--ink);background:var(--paper-deep);border:0;border-radius:50%;justify-content:center;align-items:center;margin-top:0;padding:0;font-size:12px;font-weight:600;display:flex;position:relative}.agent-avatar.clickable[data-v-37c7e436]{cursor:pointer;transition:transform var(--transition-fast) var(--im-spring), box-shadow var(--transition-fast)}.agent-avatar.clickable[data-v-37c7e436]:hover{box-shadow:0 0 0 var(--radius-chip) transparent, 0 3px 10px #0c0a0929;transform:scale(1.06)}.agent-avatar.is-agent[data-v-37c7e436]{color:var(--on-av);background:var(--av,var(--av-fallback))}.agent-avatar.is-human[data-v-37c7e436]{color:var(--ink-soft);background:var(--paper-deep);box-shadow:inset 0 0 0 1px var(--line-strong)}.agent-avatar .system-icon[data-v-37c7e436]{font-size:15px;line-height:1}.av-status[data-v-37c7e436]{background:var(--ink-fainter);border:1.5px solid var(--paper-raised);border-radius:50%;width:8px;height:8px;position:absolute;bottom:-2px;right:-2px}.av-status.busy[data-v-37c7e436]{background:var(--tone-live-dot);animation:1.9s ease-in-out infinite av-breathe-37c7e436}.av-status.stopped[data-v-37c7e436]{background:var(--tone-danger-dot)}@keyframes av-breathe-37c7e436{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.av-status.busy[data-v-37c7e436]{opacity:.9;animation:none}}.block-head[data-v-e966c298]{min-height:20px;font-family:var(--font-body);align-items:center;gap:8px;padding-bottom:1px;display:flex;position:relative}.agent-name[data-v-e966c298]{max-width:220px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.role-label[data-v-e966c298]{font-family:var(--font-body);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.tier-attention[data-v-e966c298]{color:var(--tone-warning-dot);background:color-mix(in srgb, var(--tone-warning-dot) 13%, transparent);border-radius:var(--radius-chip);align-items:center;gap:3px;padding:0 5px;font-size:10px;display:inline-flex}.kind-chip[data-v-e966c298]{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-faint);align-items:center;padding:0 2px;font-size:10px;line-height:14px;display:inline-flex}.head-right[data-v-e966c298]{font-variant-numeric:tabular-nums;color:var(--ink-faint);flex:auto;justify-content:flex-end;align-items:center;gap:6px;font-size:9.5px;display:flex}.folded[data-v-e966c298]{color:var(--ink-faint);background:color-mix(in srgb, var(--ink) 7%, transparent);border-radius:var(--radius-chip);padding:0 4px}.merged[data-v-e966c298]{background:color-mix(in srgb, var(--ink) 7%, transparent);border-radius:var(--radius-chip);padding:0 4px}.time[data-v-e966c298]{width:60px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;flex:none;font-size:9.5px}.running-chip[data-v-e966c298]{color:var(--ink-faint);align-items:center;gap:4px;display:inline-flex}.running-chip .running-dot[data-v-e966c298]{background:var(--tone-live-dot);border-radius:50%;width:6px;height:6px;animation:1.9s ease-in-out infinite av-breathe-e966c298}@keyframes av-breathe-e966c298{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.running-chip .running-dot[data-v-e966c298]{opacity:.9;animation:none}}.eb-toolbar[data-v-e966c298]{z-index:5;opacity:0;pointer-events:none;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-chip);transition:opacity var(--transition-fast);gap:2px;padding:1px;display:inline-flex;position:absolute;top:-4px;right:56px}.eb-tool[data-v-e966c298]{width:22px;height:22px;color:var(--ink-faint);cursor:pointer;border-radius:var(--radius-chip);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:12px;display:inline-flex}.eb-tool[data-v-e966c298]:hover{color:var(--ink);background:var(--paper-deep)}.stream-bubble[data-v-d381d8b3]{padding:0;position:relative}.stream-text[data-v-d381d8b3]{color:var(--ink);word-break:break-word;overflow-wrap:anywhere;background:var(--bubble-bg);border:1px solid var(--bubble-line);border-radius:var(--radius-bubble);box-shadow:var(--bubble-shadow);transition:border-color var(--transition-fast);margin:2px 2px 8px 0;padding:9px 13px 10px;font-size:13px;line-height:1.7}.stream-text[data-v-d381d8b3]:hover{border-color:var(--line-strong)}.prose[data-v-d381d8b3] p{margin:0 0 7px}.prose[data-v-d381d8b3] p:last-child{margin-bottom:0}.prose[data-v-d381d8b3] h3,.prose[data-v-d381d8b3] h4,.prose[data-v-d381d8b3] h5{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:12px 0 5px;font-size:15px;font-weight:600;line-height:1.35}.prose[data-v-d381d8b3] h3:first-child,.prose[data-v-d381d8b3] h4:first-child,.prose[data-v-d381d8b3] h5:first-child{margin-top:3px}.prose[data-v-d381d8b3] ul{margin:3px 0 8px;padding-left:20px;list-style:outside}.prose[data-v-d381d8b3] ul ul{margin:2px 0 4px;list-style:circle}.prose[data-v-d381d8b3] li{margin:2px 0;padding-left:1px}.prose[data-v-d381d8b3] li::marker{color:var(--ink-faint)}.prose[data-v-d381d8b3] code{font-family:var(--font-mono);background:var(--paper-deep);border-radius:var(--radius-chip);padding:1px 5px;font-size:11.5px}.prose[data-v-d381d8b3] blockquote{color:var(--ink-soft);border-left:3px solid var(--line-strong);border-radius:0 var(--radius-chip) var(--radius-chip) 0;background:color-mix(in srgb, var(--paper) 55%, transparent);margin:7px 0;padding:4px 4px 4px 12px}.prose[data-v-d381d8b3] b{font-weight:650}.prose[data-v-d381d8b3] a{color:var(--tone-info-dot);text-underline-offset:2px;text-decoration:underline}.prose[data-v-d381d8b3] .code-block{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);margin:7px 0;overflow:hidden}.prose[data-v-d381d8b3] .code-head{border-bottom:1px solid var(--divider-hair);justify-content:space-between;align-items:center;padding:4px 6px 4px 10px;display:flex}.prose[data-v-d381d8b3] .code-lang{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:9.5px}.prose[data-v-d381d8b3] .code-copy{font-family:var(--font-mono);color:var(--ink-soft);cursor:pointer;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-chip);transition:color var(--transition-fast), border-color var(--transition-fast);padding:1px 8px;font-size:10px}.prose[data-v-d381d8b3] .code-copy:hover{color:var(--ink);border-color:var(--line-strong)}.prose[data-v-d381d8b3] .code-block pre{margin:0;padding:8px 10px;overflow-x:auto}.prose[data-v-d381d8b3] .code-block code{background:0 0;border-radius:0;padding:0;font-size:11px;line-height:1.55}.cursor[data-v-d381d8b3]{color:var(--accent);animation:.9s step-end infinite blink-d381d8b3;display:inline-block}@keyframes blink-d381d8b3{50%{opacity:0}}.stream-pending[data-v-d381d8b3]{align-items:center;gap:4px;padding:6px 0;display:flex}.pending-dot[data-v-d381d8b3]{background:var(--ink-faint);border-radius:50%;width:4px;height:4px;animation:1.1s ease-in-out infinite pulse-d381d8b3}.pending-dot[data-v-d381d8b3]:nth-child(2){animation-delay:.18s}.pending-dot[data-v-d381d8b3]:nth-child(3){animation-delay:.36s}@keyframes pulse-d381d8b3{0%,to{opacity:.25}50%{opacity:1}}.stream-covered[data-v-d381d8b3]{opacity:.5;color:var(--ink-soft);align-items:center;gap:6px;padding:1px 0;font-size:11px;display:flex}.tool-cluster[data-v-43cd8a58]{padding:1px 0 5px 2px;position:relative}.tool-line[data-v-43cd8a58]{min-width:0;font-family:var(--font-body);align-items:baseline;gap:8px;padding:1.5px 0;font-size:12px;line-height:1.6;display:flex}.tool-time[data-v-43cd8a58]{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-faint);flex:0 0 34px;font-size:9.5px}.tool-node[data-v-43cd8a58]{border:1.5px solid var(--line-strong);background:var(--paper-raised);border-radius:2.5px;flex:0 0 7px;align-self:center;width:7px;height:7px}.tool-icon[data-v-43cd8a58]{opacity:.75;flex:none;font-size:13px;line-height:1.5}.tool-name[data-v-43cd8a58]{font-family:var(--font-mono);flex:none;font-size:11.5px;font-weight:500}.tool-args[data-v-43cd8a58]{min-width:0;max-width:min(52ch,100%);font-family:var(--font-mono);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;opacity:.85;font-size:11px;overflow:hidden}.tool-line.host .tool-node[data-v-43cd8a58]{border-color:var(--ink);background:color-mix(in srgb, var(--ink) 14%, var(--paper-raised))}.tool-line.host .tool-icon[data-v-43cd8a58],.tool-line.host .tool-name[data-v-43cd8a58]{color:var(--ink);font-weight:600}.tool-line.host .tool-icon[data-v-43cd8a58]{opacity:1}.tool-line.industrial .tool-node[data-v-43cd8a58]{background:color-mix(in srgb, #c98922 22%, var(--paper-raised));border-color:#c98922}.tool-line.industrial .tool-icon[data-v-43cd8a58],.tool-line.industrial .tool-name[data-v-43cd8a58]{color:#c98922;font-weight:700}.tool-line.industrial .tool-icon[data-v-43cd8a58]{opacity:1}.tool-line.industrial .tool-args[data-v-43cd8a58]{color:color-mix(in srgb, #c98922 62%, var(--ink-soft));opacity:1}.tool-kind[data-v-43cd8a58]{letter-spacing:.1em;color:var(--ink-faint);border:1px solid var(--line);border-radius:var(--radius-pill);background:0 0;flex:none;align-self:center;padding:0 5px;font-size:8.5px;line-height:14px}.tool-kind.industrial[data-v-43cd8a58]{color:#c98922;border-color:color-mix(in srgb, #c98922 55%, var(--line));background:#c989221a}.tool-line:hover .tool-args[data-v-43cd8a58]{opacity:1}.more-btn[data-v-43cd8a58]{font-family:var(--font-mono);color:var(--ink-faint);cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-pill);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);background:0 0;margin-top:5px;margin-left:49px;padding:1px 10px;font-size:10px}.more-btn[data-v-43cd8a58]:hover{color:var(--ink);background:var(--hover-tint);border-color:var(--ink-fainter)}.status-cluster[data-v-dd6205eb]{padding:1px 0 4px 2px}.st-toggle[data-v-dd6205eb]{width:100%;min-width:0;font-family:var(--font-mono);text-align:left;cursor:pointer;border-radius:var(--radius-chip);background:0 0;border:0;align-items:baseline;gap:7px;padding:2px 4px 2px 0;font-size:10.5px;display:flex}.st-toggle[data-v-dd6205eb]:hover{background:color-mix(in srgb, var(--ink) 4%, transparent)}.chev[data-v-dd6205eb]{color:var(--ink-faint);flex:none;font-size:10px;line-height:15px;transition:transform .12s}.chev.open[data-v-dd6205eb]{transform:rotate(90deg)}.st-label[data-v-dd6205eb]{letter-spacing:.06em;color:var(--ink-faint);flex:none}.st-count[data-v-dd6205eb]{color:var(--ink-soft);background:color-mix(in srgb, var(--ink) 8%, transparent);border-radius:var(--radius-chip);flex:none;align-self:center;padding:0 4px;font-size:10px;line-height:13px}.st-preview[data-v-dd6205eb]{min-width:0;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;opacity:.75;font-style:italic;overflow:hidden}.st-detail[data-v-dd6205eb]{background:color-mix(in srgb, var(--ink) 3.5%, transparent);border-left:2px solid color-mix(in srgb, var(--ink) 14%, transparent);border-radius:0 3px 3px 0;max-height:320px;margin:2px 0 2px 16px;padding:4px 8px;overflow-y:auto}.st-line[data-v-dd6205eb]{align-items:baseline;gap:6px;display:flex}.st-line+.st-line[data-v-dd6205eb]{margin-top:4px}.st-mark[data-v-dd6205eb]{color:var(--ink-faint);flex:none}.st-text[data-v-dd6205eb]{min-width:0;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;margin:0;font-size:10.5px;line-height:1.5}.life-cluster[data-v-f7b93a69]{font-family:var(--font-mono);opacity:.88;align-items:center;gap:8px;padding:2px 0 3px 2px;font-size:11px;display:flex}.life-dot[data-v-f7b93a69]{background:var(--line-strong);border-radius:50%;width:7px;height:7px}.life-dot[data-state=busy][data-v-f7b93a69]{background:var(--accent-cobalt)}.life-dot[data-state=idle][data-v-f7b93a69]{background:var(--accent-moss)}.life-row[data-v-f7b93a69]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.life-state[data-v-f7b93a69]{text-transform:uppercase;letter-spacing:.1em;font-size:9.5px;font-weight:500}.life-task[data-v-f7b93a69]{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.life-meta[data-v-f7b93a69]{opacity:.6;font-size:10px}.life-count[data-v-f7b93a69]{opacity:.45;font-size:9.5px}.route-cluster[data-v-ef9dc289]{padding:1px 0 5px}.chat-row[data-v-ef9dc289]{background:var(--bubble-bg);border:1px solid var(--bubble-line);border-radius:var(--radius-bubble);box-shadow:var(--bubble-shadow);transition:border-color var(--transition-fast), background var(--transition-fast);margin-bottom:6px;padding:7px 12px 8px}.chat-row[data-v-ef9dc289]:hover{border-color:var(--line-strong)}.chat-row[data-v-ef9dc289]:last-of-type{margin-bottom:0}.chat-meta[data-v-ef9dc289]{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:4px;display:flex}.who-pill[data-v-ef9dc289]{font-family:var(--font-body);color:var(--mention-ink);cursor:pointer;background:var(--mention);border-radius:var(--radius-pill);transition:background var(--transition-fast);border:0;align-items:center;gap:5px;padding:1px 8px 1px 3px;font-size:11.5px;font-weight:600;display:inline-flex}.who-pill[data-v-ef9dc289]:hover{background:color-mix(in srgb, var(--mention) 70%, var(--g-peach))}.who-ava[data-v-ef9dc289]{width:18px;height:18px;font-size:10px}.to-arrow[data-v-ef9dc289],.who-broadcast[data-v-ef9dc289]{color:var(--ink-faint);font-size:11px}.human-chip[data-v-ef9dc289]{color:var(--ink-soft);background:var(--paper-deep);border-radius:var(--radius-chip);align-items:center;gap:5px;padding:0 7px;font-size:11.5px;font-weight:600;display:inline-flex}.route-badge[data-v-ef9dc289]{color:var(--ink-soft);background:color-mix(in srgb, var(--ink) 4.5%, transparent);border:1px solid var(--line);border-radius:var(--radius-chip);align-items:center;gap:4px;padding:0 6px;font-size:9.5px;display:inline-flex}.route-badge[data-tone=assign][data-v-ef9dc289],.route-badge[data-tone=immediate][data-v-ef9dc289],.route-badge[data-tone=notice][data-v-ef9dc289],.route-badge[data-tone=peer][data-v-ef9dc289]{color:var(--ink-soft);border-color:var(--line);background:0 0}.route-badge[data-tone=assign][data-v-ef9dc289]{color:var(--ink-soft)}.route-badge.receipt[data-v-ef9dc289]{color:var(--tone-warning-dot);background:color-mix(in srgb, var(--tone-warning-dot) 12%, transparent);border-color:#0000}.route-badge.reply-link[data-v-ef9dc289]{color:var(--ink-faint);background:color-mix(in srgb, var(--ink) 6%, transparent);font-size:9.5px}.chat-time[data-v-ef9dc289]{color:var(--ink-faint);margin-left:auto;font-size:9.5px}.chat-body[data-v-ef9dc289]{color:var(--ink);white-space:normal;word-break:break-word;padding:1px 0 0 2px;font-size:13px;line-height:1.7}.prose[data-v-ef9dc289] p{margin:0 0 6px}.prose[data-v-ef9dc289] p:last-child{margin-bottom:0}.prose[data-v-ef9dc289] code{font-family:var(--font-mono);background:var(--paper-deep);border-radius:var(--radius-chip);padding:.5px 4px;font-size:11px}.prose[data-v-ef9dc289] pre{max-width:100%;font-family:var(--font-mono);background:var(--paper-deep);border-radius:var(--radius-chip);margin:4px 0;padding:6px 9px;font-size:11px;overflow-x:auto}.prose[data-v-ef9dc289] b{font-weight:600}.more-btn[data-v-ef9dc289]{font-family:var(--font-mono);color:var(--ink-faint);cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-chip);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);background:0 0;margin-top:4px;padding:1px 10px;font-size:10px}.more-btn[data-v-ef9dc289]:hover{color:var(--ink);background:var(--hover-tint);border-color:var(--ink-fainter)}.task-cluster[data-v-cdaa9d8e]{flex-wrap:wrap;align-items:center;gap:7px;padding:3px 0 4px 2px;font-size:12px;display:flex}.state-chip[data-v-cdaa9d8e]{font-family:var(--font-body);color:var(--ink);border-radius:var(--radius-pill);align-items:center;gap:5px;padding:1px 7px;font-size:10px;display:inline-flex}.state-chip .state-code[data-v-cdaa9d8e]{font-family:var(--font-mono);letter-spacing:.05em;opacity:.55;font-size:8.5px}.state-dot[data-v-cdaa9d8e]{border-radius:50%;width:5px;height:5px}.task-tag[data-v-cdaa9d8e]{margin:0!important}.chain-arrow[data-v-cdaa9d8e]{opacity:.4;font-size:10px}.task-title[data-v-cdaa9d8e]{font-weight:600}.task-assignee[data-v-cdaa9d8e]{font-family:var(--font-mono);opacity:.6;font-size:10.5px}.progress[data-v-cdaa9d8e]{flex:0 0 180px;margin:0!important}.artifact-card[data-v-64e0e27f]{background:color-mix(in srgb, currentColor 4%, transparent);border-left:2px solid var(--ink-faint);border-radius:var(--radius-chip);margin:2px 0;padding:4px 8px}.artifact-card.deliverable[data-v-64e0e27f]{border-left-color:var(--tone-warning-dot)}.artifact-head[data-v-64e0e27f]{opacity:.85;align-items:center;gap:6px;font-size:11px;display:flex}.name[data-v-64e0e27f]{font-weight:600}.op[data-v-64e0e27f]{opacity:.7;font-size:11px}.artifact-body[data-v-64e0e27f]{white-space:pre-wrap;word-break:break-word;margin:4px 0 0;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12px}.artifact-body.json[data-v-64e0e27f]{color:var(--tone-info-dot)}.artifact-cluster[data-v-305e2e30]{padding:2px 0 6px 2px}.dup-note[data-v-305e2e30]{font-family:var(--font-mono);color:var(--ink-faint);align-items:center;gap:6px;font-size:10px;display:flex}.artifact-cluster[data-v-305e2e30]>.artifact-card{margin-top:4px}.member-cluster[data-v-98712ab3]{padding:1px 0 5px 2px}.member-line[data-v-98712ab3]{font-family:var(--font-mono);color:var(--ink-soft);align-items:center;gap:7px;font-size:10.5px;line-height:20px;display:flex}.line-text[data-v-98712ab3]{overflow-wrap:anywhere;word-break:break-word}.more-btn[data-v-98712ab3]{font-family:var(--font-mono);color:var(--ink-faint);cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-chip);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);background:0 0;margin-top:4px;padding:1px 10px;font-size:10px}.more-btn[data-v-98712ab3]:hover{color:var(--ink);background:var(--hover-tint);border-color:var(--ink-fainter)}.memory-cluster[data-v-455b8e4b]{padding:1px 0 5px 2px}.memory-line[data-v-455b8e4b]{font-family:var(--font-mono);align-items:center;gap:7px;font-size:10.5px;line-height:20px;display:flex}.mem-scope[data-v-455b8e4b]{letter-spacing:.08em;color:var(--ink-soft);background:color-mix(in srgb, var(--ink) 5%, transparent);border:1px solid var(--line);border-radius:var(--radius-chip);padding:0 5px;font-size:8.5px}.mem-title[data-v-455b8e4b]{overflow-wrap:anywhere;word-break:break-word}.more-btn[data-v-455b8e4b]{font-family:var(--font-mono);color:var(--ink-faint);cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-chip);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);background:0 0;margin-top:4px;padding:1px 10px;font-size:10px}.more-btn[data-v-455b8e4b]:hover{color:var(--ink);background:var(--hover-tint);border-color:var(--ink-fainter)}.error-cluster[data-v-13861835]{padding:2px 0 5px 2px}.error-line[data-v-13861835]{font-family:var(--font-mono);color:var(--tone-danger-dot);align-items:center;gap:7px;padding:1px 6px;font-size:10.5px;line-height:20px;display:flex}.error-line[data-v-13861835]:first-child{background:var(--tone-danger-bg);border-radius:var(--radius-chip)}.error-code[data-v-13861835]{background:color-mix(in srgb, var(--tone-danger-dot) 14%, transparent);border-radius:var(--radius-chip);padding:0 5px;font-size:10px}.error-text[data-v-13861835]{overflow-wrap:anywhere;word-break:break-word}.more-btn[data-v-13861835]{font-family:var(--font-mono);color:var(--ink-faint);cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-chip);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);background:0 0;margin-top:4px;padding:1px 10px;font-size:10px}.more-btn[data-v-13861835]:hover{color:var(--ink);background:var(--hover-tint);border-color:var(--ink-fainter)}.other-cluster[data-v-ca60ab9f]{padding:1px 0 5px 2px}.other-row[data-v-ca60ab9f]{font-family:var(--font-mono);opacity:.65;align-items:center;gap:7px;font-size:10.5px;line-height:20px;display:flex}.more-btn[data-v-ca60ab9f]{font-family:var(--font-mono);color:var(--ink-faint);cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-chip);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);background:0 0;margin-top:4px;padding:1px 10px;font-size:10px}.more-btn[data-v-ca60ab9f]:hover{color:var(--ink);background:var(--hover-tint);border-color:var(--ink-fainter)}.event-block[data-v-e91d0927]{-moz-column-gap:11px;grid-template-columns:30px minmax(0,1fr);column-gap:11px;margin:0;padding:5px 10px 4px 12px;transition:background .15s;display:grid;position:relative}.event-block[data-v-e91d0927]:hover{background:var(--hover-tint);border-radius:4px}.event-block.enter[data-v-e91d0927]{animation:block-in-e91d0927 .32s var(--ease-out-quart) backwards;animation-delay:var(--d,0s)}@media (prefers-reduced-motion:reduce){.event-block.enter[data-v-e91d0927]{animation:none}}.event-block.turn-start[data-v-e91d0927]{border-top:1px solid var(--line);margin-top:13px;padding-top:9px}.event-block.turn-start.compact[data-v-e91d0927]{border-top:0;margin-top:0;padding-top:5px}.event-block[data-kind=stream][data-v-e91d0927]:not([data-settled=true]){background:color-mix(in srgb, var(--ink) 2.5%, transparent);border-radius:4px}.event-block[data-tier=attention][data-v-e91d0927]{box-shadow:inset 2px 0 0 color-mix(in srgb, var(--tone-warning-dot) 55%, transparent)}.event-block[data-kind=error][data-v-e91d0927]{box-shadow:inset 2px 0 0 color-mix(in srgb, var(--tone-danger-dot) 70%, transparent)}.event-block[data-covered=true][data-v-e91d0927]{opacity:.72}.event-block[data-tier=terminal][data-v-e91d0927] .agent-name{font-weight:700}.event-block[data-tier=silent][data-v-e91d0927]{opacity:.88}.event-block[data-tier=silent][data-v-e91d0927]:hover{opacity:1}@keyframes block-in-e91d0927{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.event-block.compact .agent-avatar[data-v-e91d0927]{visibility:hidden;height:0;margin-top:0}.event-block.compact[data-v-e91d0927]{padding-top:2px;padding-bottom:2px}.event-block.compact+.event-block.compact[data-v-e91d0927]{margin-top:-2px}.eb-main[data-v-e91d0927]{min-width:0}.ghost-time[data-v-e91d0927]{z-index:2;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-faint);pointer-events:none;opacity:0;background:var(--paper-raised);border-radius:var(--radius-chip);transition:opacity var(--transition-fast);padding:0 5px;font-size:10px;position:absolute;top:3px;right:10px}.event-block.compact:hover .ghost-time[data-v-e91d0927]{opacity:1}.event-block[data-v-e91d0927]:hover .eb-toolbar{opacity:1;pointer-events:auto}.eb-body[data-v-e91d0927]{margin-top:1px;padding-left:2px!important}.event-block[data-operation=dcw][data-v-e91d0927]{background:#c9892217;border-radius:5px;box-shadow:inset 3px 0 #c98922}.event-block[data-operation=daq][data-v-e91d0927]{background:#159f9a12;border-radius:5px;box-shadow:inset 3px 0 #159f9a}.event-block[data-operation=aml][data-v-e91d0927]{background:#7657ad12;border-radius:5px;box-shadow:inset 3px 0 #7657ad}.event-block[data-operation=twin][data-v-e91d0927]{background:#3978b812;border-radius:5px;box-shadow:inset 3px 0 #3978b8}.event-block[data-operation=safety][data-v-e91d0927]{background:#c34d4d1a;border-radius:5px;box-shadow:inset 3px 0 #c34d4d}.event-block[data-operation-severity=critical][data-v-e91d0927] .eb-head{color:var(--tone-danger-dot)}.earlier-btn[data-v-4f4c87fd]{font-family:var(--font-body);color:var(--ink-faint);cursor:pointer;background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-pill);transition:background var(--transition-fast), color var(--transition-fast);margin:0 auto 10px;padding:4px 14px;font-size:11px;display:block}.earlier-btn[data-v-4f4c87fd]:hover:not(:disabled){color:var(--ink);background:var(--paper-deep)}.earlier-btn[data-v-4f4c87fd]:disabled{opacity:.5;cursor:default}.earlier-done[data-v-4f4c87fd]{font-family:var(--font-mono);text-align:center;color:var(--ink-faint);margin-bottom:8px;font-size:9.5px}@media (width<=1023.98px){.earlier-done[data-v-4f4c87fd]{font-size:11.5px}.earlier-btn[data-v-4f4c87fd]{min-height:40px}}.empty[data-v-011a7f39]{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:72px 16px;display:flex}.empty-icon[data-v-011a7f39]{color:var(--ink-faint);font-size:28px}.empty-title[data-v-011a7f39]{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink-soft);margin:0;font-size:22px;font-weight:400}.empty-hint[data-v-011a7f39]{color:var(--ink-faint);margin:0;font-size:12px}.skel-stack[data-v-011a7f39]{flex-direction:column;gap:18px;padding:26px 6px;display:flex}.skel-row[data-v-011a7f39]{animation:.4s cubic-bezier(.22,.68,.36,1) backwards aw-rise;animation-delay:var(--d,0s);grid-template-columns:26px minmax(0,1fr);gap:10px;display:grid}.skel-ava[data-v-011a7f39]{border-radius:50%;width:26px;height:26px}.skel-lines[data-v-011a7f39]{flex-direction:column;gap:6px;display:flex}.skel-line[data-v-011a7f39]{height:11px}.skel-line.name[data-v-011a7f39]{width:120px;height:13px}.skel-line.w70[data-v-011a7f39]{width:70%}.skel-line.w45[data-v-011a7f39]{width:45%}@media (prefers-reduced-motion:reduce){.skel-row[data-v-011a7f39]{animation:none}}@media (width<=1023.98px){.empty-hint[data-v-011a7f39]{font-size:13px}}.filter-bar[data-v-fbefd061]{background:var(--paper-raised);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:6px 16px;display:flex}.count[data-v-fbefd061]{font-size:11px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-faint)}.sync-chip[data-v-fbefd061]{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-faint);background:var(--paper-deep);border-radius:var(--radius-pill);align-items:center;gap:5px;margin-left:auto;padding:1px 8px;font-size:9.5px;display:inline-flex}.sync-chip[data-state=syncing][data-v-fbefd061]{color:var(--tone-warning-dot)}.sync-chip[data-state=open] .sync-dot[data-v-fbefd061]{color:var(--tone-success-dot);font-size:7px}.sync-pulse[data-v-fbefd061]{background:var(--tone-warning-dot);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite sync-breath-fbefd061}@keyframes sync-breath-fbefd061{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.sync-pulse[data-v-fbefd061]{opacity:.8;animation:none}}@media (width<=1023.98px){.filter-bar[data-v-fbefd061]{flex-wrap:wrap;gap:8px;padding:6px 10px}.filter-bar[data-v-fbefd061] .ant-segmented{flex:100%}.count[data-v-fbefd061],.sync-chip[data-v-fbefd061]{font-size:11.5px}}.transcript[data-v-4365608b]{background:var(--paper);flex-direction:column;height:100%;min-height:0;display:flex}.jump-latest[data-v-4365608b]{z-index:5;float:right;font-family:var(--font-body);color:var(--on-accent);cursor:pointer;background:var(--accent);border-radius:var(--radius-pill);box-shadow:var(--shadow-float);transition:opacity var(--transition-fast), transform var(--transition-fast);border:none;align-items:center;gap:5px;margin-right:14px;padding:5px 12px;font-size:11px;display:inline-flex;position:sticky;bottom:12px}.jump-latest[data-v-4365608b]:hover{opacity:.92}.jump-latest[data-v-4365608b]:active{transform:translateY(1px)}.scroller[data-v-4365608b]{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.column[data-v-4365608b]{max-width:900px;margin:0 auto;padding:10px 4px 24px;animation:.28s ease-out column-in-4365608b}@keyframes column-in-4365608b{0%{opacity:0}to{opacity:1}}@media (width<=1023.98px){.column[data-v-4365608b]{padding:8px 8px 22px}.column[data-v-4365608b] .code-block,.column[data-v-4365608b] .st-text,.column[data-v-4365608b] pre,.column[data-v-4365608b] table{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.column[data-v-4365608b] canvas,.column[data-v-4365608b] img,.column[data-v-4365608b] video{max-width:100%;height:auto}.jump-latest[data-v-4365608b]{min-height:40px;padding:8px 14px;font-size:12px}}.chat-timeline[data-v-b705073e]{background:var(--paper);flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.ct-head[data-v-b705073e]{color:var(--ink-faint);background:var(--paper-raised);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:flex}.ct-icon[data-v-b705073e]{font-size:14px}.ct-title[data-v-b705073e]{color:var(--ink);font-size:13px;font-weight:600}.ct-count[data-v-b705073e]{font-family:var(--font-mono);font-size:10.5px}.ct-spacer[data-v-b705073e]{flex:auto}.ct-jump[data-v-b705073e]{color:var(--ink-soft);cursor:pointer;background:var(--paper-deep);border-radius:var(--radius-pill);align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.ct-jump[data-v-b705073e]:hover{color:var(--ink)}.ct-scroll[data-v-b705073e]{flex:auto;min-height:0;padding:10px 14px 16px;overflow-y:auto}.ct-earlier[data-v-b705073e]{font-family:var(--font-body);color:var(--ink-faint);cursor:pointer;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-pill);margin:0 auto 10px;padding:4px 12px;font-size:12px;display:block}.ct-earlier[data-v-b705073e]:hover{color:var(--ink);border-color:var(--line-strong)}.ct-earlier[data-v-b705073e]:disabled{opacity:.5;cursor:default}.ct-empty[data-v-b705073e]{color:var(--ink-faint);text-align:center;padding:48px 16px;font-size:13px}.ct-empty-icon[data-v-b705073e]{font-size:26px}.ct-empty-sub[data-v-b705073e]{max-width:460px;color:var(--ink-fainter);margin:6px auto 0;font-size:11.5px;line-height:1.6}.ct-row[data-v-b705073e]{border-radius:var(--radius-panel-sm);transition:background var(--transition-fast);gap:10px;padding:6px 6px 7px;display:flex}.ct-row[data-v-b705073e]:hover{background:var(--paper-deep)}.ct-row.system[data-v-b705073e]{opacity:.75}.ct-ava[data-v-b705073e]{width:26px;height:26px;margin-top:1px;font-size:11px}.ct-body[data-v-b705073e]{flex:auto;min-width:0}.ct-meta[data-v-b705073e]{align-items:baseline;gap:7px;min-width:0;display:flex}.ct-sender[data-v-b705073e]{color:var(--ink);font-size:12.5px;font-weight:600}.ct-role[data-v-b705073e]{letter-spacing:.06em;color:var(--ink-faint);text-transform:uppercase;border:1px solid var(--line);border-radius:var(--radius-chip);align-items:center;gap:3px;padding:0 5px;font-size:9.5px;display:inline-flex}.ct-role.user[data-v-b705073e]{color:var(--ink-soft)}.ct-role.agent[data-v-b705073e]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 35%, transparent)}.ct-time[data-v-b705073e]{font-family:var(--font-mono);color:var(--ink-fainter);font-size:10px}.ct-reply-btn[data-v-b705073e]{font-family:var(--font-body);color:var(--ink-faint);cursor:pointer;border-radius:var(--radius-chip);opacity:0;transition:opacity var(--transition-fast), color var(--transition-fast);background:0 0;border:0;margin-left:auto;padding:1px 6px;font-size:11px}.ct-row:hover .ct-reply-btn[data-v-b705073e]{opacity:1}.ct-reply-btn[data-v-b705073e]:hover{color:var(--ink);background:var(--paper-raised)}.ct-replyto[data-v-b705073e]{color:var(--ink-faint);background:var(--paper-deep);border-left:2px solid var(--ink-fainter);border-radius:var(--radius-chip);align-items:center;gap:5px;margin:3px 0 0;padding:1px 7px;font-size:11px;display:inline-flex}.ct-replyto b[data-v-b705073e]{color:var(--ink-soft)}.ct-operation-badge[data-v-b705073e]{font:10px var(--font-mono);border-radius:var(--radius-chip);align-items:center;gap:5px;margin:3px 0 4px;padding:3px 7px;display:inline-flex}.ct-operation-badge.dcw[data-v-b705073e]{color:#a56d17;background:#c989221c}.ct-operation-badge.daq[data-v-b705073e]{color:#148681;background:#159f9a1a}.ct-operation-badge.aml[data-v-b705073e]{color:#7657ad;background:#7657ad1a}.ct-operation-badge.twin[data-v-b705073e]{color:#3978b8;background:#3978b81a}.ct-operation-badge.safety[data-v-b705073e]{color:var(--tone-danger-dot);background:var(--tone-danger-bg)}.ct-row[data-operation=dcw][data-v-b705073e]{background:#c989220a}.ct-row[data-operation=daq][data-v-b705073e]{background:#159f9a08}.ct-row[data-operation=aml][data-v-b705073e]{background:#7657ad08}.ct-row[data-operation=twin][data-v-b705073e]{background:#3978b808}.ct-row[data-operation=safety][data-v-b705073e]{background:color-mix(in srgb, var(--tone-danger-dot) 5%, transparent)}.ct-text[data-v-b705073e]{color:var(--ink);overflow-wrap:anywhere;word-break:break-word;margin-top:2px;font-size:13.5px;line-height:1.6}.ct-mentions[data-v-b705073e]{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.ct-mention-chip[data-v-b705073e]{border-radius:var(--radius-chip);align-items:center;gap:4px;padding:1px 7px;font-size:11.5px;font-weight:600;display:inline-flex}.ct-mention-chip.agent[data-v-b705073e]{color:var(--mention-ink,var(--ink));cursor:pointer;background:var(--mention,var(--paper-deep))}.ct-mention-chip.user[data-v-b705073e]{color:var(--ink-soft);cursor:default;background:var(--paper-deep);border:1px solid var(--line)}.ct-deliveries[data-v-b705073e]{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.ct-delivery[data-v-b705073e]{border-radius:var(--radius-chip);background:var(--paper-deep);align-items:center;gap:4px;padding:1px 7px;font-size:10.5px;display:inline-flex}.ct-delivery .cd-dot[data-v-b705073e]{background:currentColor;border-radius:50%;width:5px;height:5px}.ct-delivery[data-tone=pending][data-v-b705073e]{color:var(--tone-warning-dot)}.ct-delivery[data-tone=delivered][data-v-b705073e]{color:var(--tone-info-dot)}.ct-delivery[data-tone=consumed][data-v-b705073e]{color:var(--tone-success-dot)}.ct-delivery[data-tone=failed][data-v-b705073e]{color:var(--tone-danger-dot)}.ct-delivery[data-tone=cancelled][data-v-b705073e]{color:var(--ink-faint)}.ct-source[data-v-b705073e]{font-family:var(--font-mono);color:var(--ink-fainter);align-items:center;gap:5px;margin-top:3px;font-size:10px;display:flex}@media (width<=1023.98px){.ct-sender[data-v-b705073e]{font-size:13.5px}.ct-text[data-v-b705073e]{font-size:15px}.ct-reply-btn[data-v-b705073e]{opacity:1;min-height:32px}}.lane-empty[data-v-e020dd8e]{color:var(--ink-faint);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:28px 8px;font-size:11.5px;display:flex}.lane-empty-icon[data-v-e020dd8e]{color:var(--ink-faint);font-size:16px;animation:1.2s linear infinite lane-sync-spin-e020dd8e}@keyframes lane-sync-spin-e020dd8e{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.lane-empty-icon[data-v-e020dd8e]{animation:none}}.lane-earlier[data-v-e020dd8e]{font-family:var(--font-mono);color:var(--ink-faint);cursor:pointer;border:1px solid var(--line-strong);border-radius:var(--radius-chip);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);background:0 0;margin:2px auto 8px;padding:2px 12px;font-size:10px;display:block}.lane-earlier[data-v-e020dd8e]:hover:not(:disabled){color:var(--ink);background:var(--hover-tint);border-color:var(--ink-fainter)}.lane-earlier[data-v-e020dd8e]:disabled{cursor:default;opacity:.55}.toolbar[data-v-5f5d46d5]{background:var(--paper-raised);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:8px 14px 6px;display:flex}.team-summary[data-v-5f5d46d5]{flex:auto;align-items:baseline;gap:7px;min-width:0;display:flex}.ts-label[data-v-5f5d46d5]{letter-spacing:.08em;color:var(--ink-faint);flex:none;font-size:11px}.ts-count[data-v-5f5d46d5]{color:var(--ink);flex:none;font-size:15px;font-weight:700;line-height:1}.ts-unit[data-v-5f5d46d5]{color:var(--ink-faint);flex:none;font-size:11px}.ts-detail[data-v-5f5d46d5]{min-width:0;font-size:11px;font-family:var(--font-mono);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}@media (width<=1023.98px){.toolbar[data-v-5f5d46d5]{flex-wrap:wrap;gap:8px;padding:8px 10px 6px}.ts-detail[data-v-5f5d46d5],.ts-label[data-v-5f5d46d5],.ts-unit[data-v-5f5d46d5]{font-size:11.5px}}.lane-head[data-v-1dfd80fa]{border-bottom:1px solid var(--line);flex-direction:column;flex:none;gap:8px;padding:10px 12px 9px;font-size:13px;display:flex}.head-top[data-v-1dfd80fa]{align-items:center;gap:7px;min-width:0;display:flex}.lane-ava[data-v-1dfd80fa]{width:26px;height:26px;color:var(--on-av);border-radius:var(--radius-panel-sm);flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex;position:relative}.lane-ava>span[data-v-1dfd80fa]:first-child{background:var(--av,var(--av-fallback));border-radius:var(--radius-panel-sm);justify-content:center;align-items:center;width:100%;height:100%;display:inline-flex}.lane-state[data-v-1dfd80fa]{background:var(--ink-fainter);border:1.5px solid var(--paper-raised);border-radius:50%;width:8px;height:8px;position:absolute;bottom:-2px;right:-2px}.lane-state.busy[data-v-1dfd80fa]{background:var(--tone-live-dot);animation:1.9s ease-in-out infinite lane-breathe-1dfd80fa}.lane-state.stopped[data-v-1dfd80fa]{background:var(--tone-danger-dot)}@keyframes lane-breathe-1dfd80fa{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.lane-state.busy[data-v-1dfd80fa]{opacity:.9;animation:none}}.lane-name[data-v-1dfd80fa]{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:13.5px;font-weight:700;overflow:hidden}.lane-chip[data-v-1dfd80fa]{letter-spacing:.04em;color:var(--ink-faint);border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:0 0;flex:none;padding:0 6px;font-size:9.5px;line-height:15px}.lane-role[data-v-1dfd80fa]{letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-pill);flex:none;padding:0 7px;font-size:9.5px;line-height:16px}.lane-role.lead[data-v-1dfd80fa]{color:var(--on-accent);background:var(--accent)}.lane-role.worker[data-v-1dfd80fa]{color:var(--ink-soft);border:1px solid var(--line-strong)}.term-badge[data-v-1dfd80fa]{font-family:var(--font-mono);color:var(--ink-faint);border:1px solid var(--line-strong);border-radius:var(--radius-pill);flex:none;align-items:center;gap:4px;padding:0 6px;font-size:10px;line-height:15px;display:inline-flex}.term-badge .term-dot[data-v-1dfd80fa]{border-radius:50%;width:5px;height:5px}.cont-badge[data-v-1dfd80fa],.sup-badge[data-v-1dfd80fa]{max-width:140px;font-family:var(--font-mono);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line-strong);border-radius:var(--radius-pill);flex:none;align-items:center;padding:0 6px;font-size:9.5px;line-height:15px;display:inline-flex;overflow:hidden}.cont-badge.restart[data-v-1dfd80fa]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 40%, transparent)}.sup-badge.watchdog[data-v-1dfd80fa]{color:var(--tone-warn-dot,var(--tone-info-dot));border-color:color-mix(in srgb, var(--tone-info-dot) 40%, transparent)}.sup-badge.decision[data-v-1dfd80fa]{color:var(--ink-soft)}.sup-badge.running[data-v-1dfd80fa]{color:var(--tone-live-dot);border-color:color-mix(in srgb, var(--tone-live-dot) 40%, transparent)}.head-sub[data-v-1dfd80fa]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.lane-meta[data-v-1dfd80fa]{min-width:0;font-size:10.5px;font-family:var(--font-mono);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.lane-progress[data-v-1dfd80fa]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 10%, transparent);border-radius:var(--radius-pill);align-items:center;margin-left:4px;padding:0 5px;display:inline-flex}.lane-actions[data-v-1dfd80fa]{background:var(--hover-tint);border-radius:var(--radius-chip);flex:none;align-items:center;gap:5px;padding:2px;display:flex}.lane-actions .ant-btn[data-v-1dfd80fa]{opacity:.78;font-size:12px;transition:opacity .15s}.lane-head:hover .lane-actions .ant-btn[data-v-1dfd80fa]{opacity:1}.actions-divider[data-v-1dfd80fa]{background:color-mix(in srgb, currentColor 16%, transparent);flex:none;width:1px;height:14px;margin-inline:2px}.lane-term[data-v-1dfd80fa]{padding-inline:7px}.lane-edit[data-v-1dfd80fa],.lane-remove[data-v-1dfd80fa],.lane-stop[data-v-1dfd80fa]{padding-inline:5px}.term-label[data-v-1dfd80fa]{margin-inline-start:5px;display:none}@container (width>=380px){.term-label[data-v-1dfd80fa]{display:inline}}@container (width<=300px){.lane-chip[data-v-1dfd80fa]{display:none}}@container (width<=260px){.term-badge[data-v-1dfd80fa]{display:none}}@media (width<=1023.98px){.lane-meta[data-v-1dfd80fa]{font-size:11.5px}.lane-name[data-v-1dfd80fa]{font-size:14px}.lane-chip[data-v-1dfd80fa],.lane-role[data-v-1dfd80fa],.term-badge[data-v-1dfd80fa]{font-size:11.5px;line-height:18px}.lane-actions .ant-btn[data-v-1dfd80fa]{min-width:40px;min-height:40px}}.member-form[data-v-663bdd51]{margin-top:8px}.mode-switch[data-v-663bdd51]{margin-top:4px}.mode-hint[data-v-663bdd51]{opacity:.6;background:color-mix(in srgb, currentColor 5%, transparent);border-radius:var(--radius-chip);padding:6px 8px;font-size:11px}.member-form[data-v-f91b0d8a]{margin-top:8px}.lanes-wrap[data-v-84590903]{background:var(--paper);flex-direction:column;flex:auto;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;display:flex;overflow:hidden}.lanes[data-v-84590903]{overscroll-behavior:contain;flex:auto;gap:10px;width:100%;min-width:0;min-height:0;padding:8px 12px 12px;display:flex;overflow:auto hidden}.lane[data-v-84590903]{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-panel);min-width:240px;box-shadow:var(--shadow-card);flex-direction:column;flex:none;display:flex;container-type:inline-size}.lane-body[data-v-84590903]{overscroll-behavior:contain;background:var(--paper);flex:auto;min-height:0;padding:8px 4px 16px;overflow-y:auto}.empty[data-v-84590903]{color:var(--ink-faint);text-align:center;flex-direction:column;flex:auto;justify-content:center;align-items:center;gap:6px;padding:32px 12px;font-size:12px;display:flex}.empty-icon[data-v-84590903]{color:var(--ink-faint);font-size:22px}.empty-title[data-v-84590903]{color:var(--ink-soft);margin:0;font-size:13px}.empty-hint[data-v-84590903]{color:var(--ink-faint);margin:0;font-size:11px}@media (width<=1023.98px){.empty-hint[data-v-84590903]{font-size:11.5px}.lanes[data-v-84590903]{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:8px}.lane[data-v-84590903]{scroll-snap-align:center;flex:0 0 88%;min-width:0}.empty-title[data-v-84590903]{font-size:13px}}.card.task[data-v-30e23482]{cursor:pointer;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-panel);margin-bottom:8px;padding:10px 12px;transition:transform .12s,border-color .12s,opacity .12s;position:relative}.card.task[data-v-30e23482]:hover{border-color:var(--line-strong);transform:translateY(-1px)}.card.task.dragging[data-v-30e23482]{opacity:.45;cursor:grabbing}.tk-chan[data-v-30e23482]{color:var(--ink-faint);gap:8px;font-size:11.5px;display:flex}.tk-num[data-v-30e23482]{font-variant-numeric:tabular-nums;color:var(--ink-faint)}.tk-title[data-v-30e23482]{color:var(--ink);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:3px 0 6px;font-size:13px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.tk-route[data-v-30e23482]{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-size:11px;overflow:hidden}.tk-foot[data-v-30e23482]{justify-content:flex-end;display:flex}.st-pill-btn[data-v-30e23482]{cursor:pointer;background:0 0;border:0;padding:0}.st-pill[data-v-30e23482]{border:1px solid var(--line-strong);border-radius:var(--radius-pill);align-items:center;gap:4px;padding:1px 9px;font-size:11px;font-weight:600;display:inline-flex}.st-pill-btn:hover .st-pill[data-v-30e23482]{background:var(--hover-tint)}@media (width<=1023.98px){.st-pill[data-v-30e23482],.tk-route[data-v-30e23482]{font-size:11.5px}.st-pill-btn[data-v-30e23482]{min-height:40px}}.task-col[data-v-4b0c885a]{background:var(--paper-deep);border-radius:var(--radius-panel);flex-direction:column;flex:0 0 300px;min-width:280px;min-height:0;padding:2px 8px 8px;display:flex}.task-col.drop-over[data-v-4b0c885a]{background:var(--tone-info-bg);outline:2px dashed color-mix(in srgb, var(--tone-info-dot) 65%, transparent);outline-offset:-2px}.task-col.no-drop[data-v-4b0c885a]{opacity:.6}.task-col.drag-origin[data-v-4b0c885a]{opacity:.85}.sec[data-v-4b0c885a]{align-items:center;gap:7px;padding:10px 6px 8px;display:flex}.sec-title[data-v-4b0c885a]{letter-spacing:.06em;color:var(--ink-soft);font-size:12px;font-weight:600}.sec-cnt[data-v-4b0c885a]{font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:11px}.st-dot[data-v-4b0c885a]{border-radius:50%;flex:none;width:8px;height:8px}.task-col-body[data-v-4b0c885a]{overscroll-behavior:contain;flex:auto;min-height:0;padding:0 2px;overflow-y:auto}.col-empty[data-v-4b0c885a]{color:var(--ink-faint);text-align:center;border:1.5px dashed var(--line-strong);border-radius:var(--radius-panel);padding:14px 8px;font-size:11.5px}@media (width<=1023.98px){.sec-cnt[data-v-4b0c885a]{font-size:11.5px}.task-col[data-v-4b0c885a]{scroll-snap-align:center;flex:0 0 86%;min-width:0}}.task-list[data-v-fc8a2835]{overscroll-behavior:contain;flex:auto;min-height:0;padding:10px 16px 18px;overflow-y:auto}.list-sec[data-v-fc8a2835]{padding:8px 2px 6px}.list-row[data-v-fc8a2835]{cursor:pointer;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-panel);align-items:center;gap:12px;margin-bottom:4px;padding:9px 12px;transition:border-color .12s;display:flex}.list-row[data-v-fc8a2835]:hover{border-color:var(--line-strong)}.list-row .grow[data-v-fc8a2835]{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13.5px;overflow:hidden}.lnum[data-v-fc8a2835]{color:var(--ink-faint);font-size:12px}.meta[data-v-fc8a2835]{font-family:var(--font-mono);color:var(--ink-faint);font-size:11px}.sec[data-v-fc8a2835]{align-items:center;gap:7px;padding:10px 6px 8px;display:flex}.sec-title[data-v-fc8a2835]{letter-spacing:.06em;color:var(--ink-soft);font-size:12px;font-weight:600}.sec-cnt[data-v-fc8a2835]{font-variant-numeric:tabular-nums;color:var(--ink-faint);font-size:11px}.st-dot[data-v-fc8a2835]{border-radius:50%;flex:none;width:8px;height:8px}.st-pill[data-v-fc8a2835]{border:1px solid var(--line-strong);border-radius:var(--radius-pill);align-items:center;gap:4px;padding:1px 9px;font-size:11px;font-weight:600;display:inline-flex}@media (width<=1023.98px){.meta[data-v-fc8a2835],.sec-cnt[data-v-fc8a2835],.st-pill[data-v-fc8a2835]{font-size:11.5px}.list-row[data-v-fc8a2835]{flex-wrap:wrap;row-gap:4px;min-height:44px}.list-row .grow[data-v-fc8a2835]{flex:60%}}.menu-backdrop[data-v-d1d85578]{z-index:60;position:fixed;inset:0}.st-menu[data-v-d1d85578]{z-index:61;background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-panel-sm);min-width:128px;box-shadow:var(--shadow-float);padding:4px;position:fixed}.st-menu button[data-v-d1d85578]{width:100%;font-family:var(--font-body);color:var(--ink-soft);text-align:left;cursor:pointer;border-radius:var(--radius-chip);background:0 0;border:0;align-items:center;gap:7px;padding:6px 9px;font-size:12.5px;display:flex}.st-menu button[data-v-d1d85578]:hover{background:var(--paper-deep);color:var(--ink)}.st-menu button.danger[data-v-d1d85578]{color:var(--tone-danger-dot)}@media (width<=1023.98px){.st-menu button[data-v-d1d85578]{min-height:44px}}.board-shell[data-v-c4d89219]{flex-direction:column;flex:auto;min-height:0;animation:.2s cubic-bezier(.22,1,.36,1) view-in-c4d89219;display:flex}@keyframes view-in-c4d89219{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.board-shell[data-v-c4d89219]{animation:none}}.toolbar[data-v-c4d89219]{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:12px;padding:10px 16px;display:flex}.count[data-v-c4d89219]{color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.root-pill[data-v-c4d89219]{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line);border-radius:999px;max-width:min(42vw,360px);padding:4px 8px;font-size:10.5px;font-weight:600;overflow:hidden}.root-pill.active[data-v-c4d89219]{color:var(--ink);background:color-mix(in srgb, var(--accent) 12%, transparent)}.root-pill.queued[data-v-c4d89219]{color:var(--ink-faint);background:var(--surface-strong)}.root-pill.done[data-v-c4d89219]{color:var(--ink-faint);background:0 0}.root-pos[data-v-c4d89219]{opacity:.75;margin-left:4px;font-weight:500}.board[data-v-c4d89219]{overscroll-behavior:contain;flex:auto;align-items:stretch;gap:12px;min-height:0;padding:12px 14px 14px;display:flex;overflow-x:auto}@media (width<=1023.98px){.toolbar[data-v-c4d89219]{flex-wrap:wrap;gap:8px;padding:10px}.count[data-v-c4d89219]{font-size:11.5px}.board[data-v-c4d89219]{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:10px}}.split[data-v-072db8c2]{overscroll-behavior:contain;gap:8px;height:100%;min-height:0;padding:8px;display:flex;overflow-x:auto}.col[data-v-072db8c2]{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-panel-sm);flex-direction:column;flex:none;min-width:300px;display:flex}.col-head[data-v-072db8c2]{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 10px;display:flex}.col-name[data-v-072db8c2]{font-size:13px;font-weight:700}.col-meta[data-v-072db8c2]{font-size:11px;font-family:var(--font-mono);color:var(--ink-faint);text-align:right;flex:auto}.col-body[data-v-072db8c2]{overscroll-behavior:contain;min-height:0;font-family:var(--font-mono);flex:auto;font-size:11px;overflow-y:auto}.mini-event[data-v-072db8c2]{gap:6px;padding:2px 8px;line-height:1.6;display:flex}.mini-event.clickable[data-v-072db8c2]{cursor:pointer}.mini-event.clickable[data-v-072db8c2]:hover{background:var(--hover-tint)}.me-time[data-v-072db8c2],.me-agent[data-v-072db8c2]{color:var(--ink-faint);flex:none}.me-text[data-v-072db8c2]{text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.col-empty[data-v-072db8c2],.empty[data-v-072db8c2]{color:var(--ink-faint);text-align:center;padding:24px 8px;font-size:12px}.memory-panel[data-v-a93513da]{font-size:12px}.toolbar[data-v-a93513da]{align-items:center;gap:6px;margin-bottom:6px;display:flex}.agent-select[data-v-a93513da]{flex:auto;min-width:90px}.token-state[data-v-a93513da]{font-family:var(--font-mono);border-radius:var(--radius-chip);background:color-mix(in srgb, currentColor 8%, transparent);flex:none;padding:0 5px;font-size:10px}.token-state[data-ok=true][data-v-a93513da]{color:var(--tone-success-dot)}.token-state[data-ok=false][data-v-a93513da]{color:var(--tone-warning-dot)}.token[data-v-a93513da]{margin-bottom:6px}.search-bar[data-v-a93513da]{gap:6px;margin-bottom:6px;display:flex}.scope[data-v-a93513da]{width:90px}.search-results[data-v-a93513da]{margin-bottom:8px}.hit[data-v-a93513da]{font-family:var(--font-mono);align-items:center;gap:6px;padding:2px 4px;font-size:11px;display:flex}.src[data-v-a93513da]{color:var(--tone-info-dot);background:var(--tone-info-bg);border-radius:var(--radius-chip);padding:0 4px}.src[data-source=shared][data-v-a93513da]{color:var(--tone-retry-dot);background:var(--tone-retry-bg)}.score[data-v-a93513da]{opacity:.5}.hit-title[data-v-a93513da]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list-head[data-v-a93513da]{opacity:.7;justify-content:space-between;align-items:center;padding:4px 0;font-weight:600;display:flex}.row[data-v-a93513da]{border-bottom:1px dashed color-mix(in srgb, currentColor 10%, transparent);padding:4px 0}.row-head[data-v-a93513da]{align-items:center;gap:6px;display:flex}.kind[data-v-a93513da]{margin-inline-end:0;font-size:10px}.row-importance[data-v-a93513da]{font-family:var(--font-mono);opacity:.5;font-size:10px}.row-title[data-v-a93513da]{font-size:12px;font-weight:600}.row-meta[data-v-a93513da]{font-family:var(--font-mono);color:var(--ink-faint);gap:8px;margin:2px 0 1px;font-size:9.5px;display:flex}.row-vis[data-v-a93513da]{text-transform:uppercase;letter-spacing:.03em}.row-content[data-v-a93513da]{opacity:.65;word-break:break-all;font-size:11px}.empty[data-v-a93513da]{opacity:.4;padding:8px 0}.stats[data-v-23e4d795]{flex-direction:column;gap:10px;font-size:12px;display:flex}.kpis[data-v-23e4d795]{gap:8px;display:flex}.kpi[data-v-23e4d795]{text-align:center;border:1px solid color-mix(in srgb, currentColor 10%, transparent);border-radius:var(--radius-panel-sm);flex:1 1 0;padding:8px}.kpi-num[data-v-23e4d795]{font-size:16px;font-weight:700;font-family:var(--font-mono)}.kpi-label[data-v-23e4d795]{opacity:.55;margin-top:2px;font-size:11px}.chart[data-v-23e4d795]{border:1px solid color-mix(in srgb, currentColor 10%, transparent);border-radius:var(--radius-panel-sm);height:140px}.app-chart[data-v-23e4d795]{height:100%}.types-title[data-v-23e4d795]{opacity:.7;padding:4px 0;font-weight:600}.type-row[data-v-23e4d795]{font-family:var(--font-mono);align-items:center;gap:6px;padding:1px 0;font-size:11px;display:flex}.t-name[data-v-23e4d795]{text-overflow:ellipsis;white-space:nowrap;flex:0 0 150px;overflow:hidden}.t-bar-wrap[data-v-23e4d795]{background:color-mix(in srgb, currentColor 8%, transparent);border-radius:var(--radius-pill);flex:auto;height:8px;overflow:hidden}.t-bar[data-v-23e4d795]{background:var(--color-primary);height:100%}.t-n[data-v-23e4d795]{text-align:right;opacity:.6;flex:0 0 36px}.empty[data-v-23e4d795]{opacity:.4;padding:8px 0}.inspector[data-v-38b7c15b]{height:100%;padding:0 8px;overflow-y:auto}.tabs[data-v-38b7c15b]{height:100%}.tabs[data-v-38b7c15b] .ant-tabs-content-holder{overflow-y:auto}.tabs[data-v-38b7c15b] .ant-tabs-nav{margin-bottom:8px}.member[data-v-38b7c15b]{cursor:pointer;align-items:center;gap:9px;margin:3px 0;padding:8px 10px;display:flex}.member[data-v-38b7c15b]:hover{border-color:var(--line-strong)}.dot[data-v-38b7c15b]{border-radius:50%;flex:none;width:8px;height:8px}.member-info[data-v-38b7c15b]{flex:auto;min-width:0}.member-name[data-v-38b7c15b]{align-items:center;gap:7px;font-size:13px;display:flex}.name-text[data-v-38b7c15b]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.role-chip[data-v-38b7c15b]{letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius-pill);flex:none;padding:0 7px;font-size:9.5px;line-height:16px}.role-chip.lead[data-v-38b7c15b]{color:var(--on-accent);background:var(--accent)}.role-chip.worker[data-v-38b7c15b]{color:var(--ink-soft);border:1px solid var(--line-strong)}.member-meta[data-v-38b7c15b]{font-size:11px;font-family:var(--font-mono);color:var(--ink-faint)}.prog[data-v-38b7c15b]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 10%, transparent);border-radius:var(--radius-pill);padding:0 5px}.member-cap[data-v-38b7c15b]{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-faint);margin-top:2px;font-size:10px}.ct[data-v-38b7c15b]{opacity:.8}.task[data-v-38b7c15b]{cursor:pointer;margin:3px 0;padding:8px 10px}.task[data-v-38b7c15b]:hover{border-color:var(--line-strong)}.task-head[data-v-38b7c15b]{align-items:center;gap:6px;display:flex}.state-chip[data-v-38b7c15b]{letter-spacing:.04em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:0 0;flex:none;padding:1px 7px;font-size:9.5px;line-height:15px}.task-title[data-v-38b7c15b]{text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:13px;overflow:hidden}.task-meta[data-v-38b7c15b]{font-size:11px;font-family:var(--font-mono);color:var(--ink-faint)}.empty[data-v-38b7c15b]{color:var(--ink-faint);padding:16px 8px;font-size:12px}@media (width<=1023.98px){.inspector[data-v-38b7c15b]{width:100%;padding:0 10px}.tabs[data-v-38b7c15b] .ant-tabs-tab{min-height:44px}.member[data-v-38b7c15b],.task[data-v-38b7c15b]{min-height:44px;padding:10px}.member-cap[data-v-38b7c15b],.member-meta[data-v-38b7c15b],.role-chip[data-v-38b7c15b],.state-chip[data-v-38b7c15b],.task-meta[data-v-38b7c15b]{font-size:11.5px}.role-chip[data-v-38b7c15b],.state-chip[data-v-38b7c15b]{line-height:18px}.empty[data-v-38b7c15b]{font-size:13px}}.center-pane[data-v-d18673eb]{background:var(--paper);flex:auto;min-width:0;max-width:100%;min-height:0;display:flex;overflow:hidden}.center-pane[data-v-d18673eb]>*{min-width:0;max-width:100%}.member-panel[data-v-76f98421]{background:var(--paper-raised);flex-direction:column;min-height:0;display:flex}.mp-head[data-v-76f98421]{color:var(--ink-faint);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:7px;padding:7px 12px;font-size:12px;display:flex}.mp-icon[data-v-76f98421]{font-size:14px}.mp-title[data-v-76f98421]{color:var(--ink);font-size:12.5px;font-weight:600}.mp-count[data-v-76f98421]{font-family:var(--font-mono);background:var(--paper-deep);border-radius:var(--radius-chip);padding:0 5px;font-size:10px}.mp-spacer[data-v-76f98421]{flex:auto}.mp-refresh[data-v-76f98421]{color:var(--ink-faint);cursor:pointer;background:0 0;border:0;align-items:center;padding:2px 4px;font-size:13px;display:inline-flex}.mp-refresh[data-v-76f98421]:hover{color:var(--ink)}.mp-scroll[data-v-76f98421]{flex:auto;min-height:0;padding:8px 10px 10px;overflow-y:auto}.mp-actions[data-v-76f98421]{margin-bottom:8px}.mp-hint[data-v-76f98421]{color:var(--ink-faint);background:var(--paper-deep);border-radius:var(--radius-chip);align-items:center;gap:5px;padding:5px 8px;font-size:11.5px;line-height:1.5;display:flex}.mp-hint.pending[data-v-76f98421]{color:var(--tone-warning-dot)}.mp-error[data-v-76f98421]{color:var(--tone-danger-dot);background:color-mix(in srgb, var(--tone-danger-dot) 8%, transparent);border-radius:var(--radius-chip);align-items:center;gap:4px;margin:6px 0;padding:5px 8px;font-size:11.5px;line-height:1.5;display:flex}.mp-list[data-v-76f98421]{flex-direction:column;display:flex}.mp-row[data-v-76f98421]{border-radius:var(--radius-panel-sm);align-items:center;gap:8px;padding:5px 6px;display:flex}.mp-row[data-v-76f98421]:hover{background:var(--paper-deep)}.mp-row.left[data-v-76f98421],.mp-row.removed[data-v-76f98421]{opacity:.55}.mp-ava[data-v-76f98421]{width:24px;height:24px;font-size:11px}.mp-info[data-v-76f98421]{flex:auto;min-width:0}.mp-name-line[data-v-76f98421]{align-items:baseline;gap:5px;min-width:0;display:flex}.mp-name[data-v-76f98421]{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.mp-role.owner[data-v-76f98421]{font-family:var(--font-mono);letter-spacing:.08em;color:var(--tone-warning-dot);border:1px solid color-mix(in srgb, var(--tone-warning-dot) 40%, transparent);border-radius:var(--radius-chip);flex:none;padding:0 5px;font-size:9px}.mp-sub[data-v-76f98421]{color:var(--ink-fainter);align-items:center;gap:6px;font-size:10.5px;display:flex}.mp-status[data-status=active][data-v-76f98421]{color:var(--tone-success-dot)}.mp-status[data-status=pending][data-v-76f98421]{color:var(--tone-warning-dot)}.mp-status[data-status=removed][data-v-76f98421]{color:var(--tone-danger-dot)}.mp-joined[data-v-76f98421]{font-family:var(--font-mono)}.mp-row-actions[data-v-76f98421]{flex:none;gap:4px;display:flex}.mp-settings[data-v-76f98421]{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.mp-sec-title[data-v-76f98421]{letter-spacing:.04em;color:var(--ink-soft);align-items:baseline;gap:6px;margin-bottom:6px;font-size:11px;font-weight:600;display:flex}.mp-ver[data-v-76f98421]{font-family:var(--font-mono);color:var(--ink-fainter);font-size:9.5px}.mp-field[data-v-76f98421]{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:6px;margin-bottom:5px;font-size:11.5px;display:flex}.mp-field[data-v-76f98421] .ant-select{min-width:132px}.mp-field.switch[data-v-76f98421]{margin-bottom:8px}.line-ops-panel[data-v-e241fe8f]{min-height:0;color:var(--ink);background:linear-gradient(145deg, color-mix(in srgb, var(--paper-raised) 92%, #0e2630), var(--paper-raised));border-bottom:1px solid var(--line-strong);flex-direction:column;padding:14px 14px 10px;display:flex}.lop-head[data-v-e241fe8f]{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.lop-kicker[data-v-e241fe8f]{font:10px var(--font-mono);letter-spacing:.11em;color:var(--ink-faint);align-items:center;gap:6px;display:flex}.lop-live[data-v-e241fe8f]{background:#25b39d;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #25b39d26}.lop-head h3[data-v-e241fe8f]{letter-spacing:-.02em;margin:5px 0 0;font-size:17px}.lop-phase[data-v-e241fe8f]{font:10px var(--font-mono);color:var(--ink-soft);background:color-mix(in srgb, var(--ink) 5%, transparent);border:1px solid var(--line-strong);border-radius:999px;align-items:center;gap:5px;padding:5px 8px;display:inline-flex}.lop-phase.attention[data-v-e241fe8f]{color:#b8791e;background:#b8791e17;border-color:#b8791e59}.lop-phase.critical[data-v-e241fe8f]{color:var(--tone-danger-dot)}.lop-summary[data-v-e241fe8f]{grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:10px;display:grid}.lop-stat[data-v-e241fe8f]{background:color-mix(in srgb, var(--paper-deep) 80%, transparent);border:1px solid var(--line);border-radius:7px;min-width:0;padding:7px 7px 6px}.lop-stat small[data-v-e241fe8f],.lop-stat span[data-v-e241fe8f]{font:9px var(--font-mono);color:var(--ink-faint);display:block}.lop-stat b[data-v-e241fe8f]{font:17px var(--font-mono);color:var(--ink);margin:1px 0;display:block}.lop-stat.dcw b[data-v-e241fe8f]{color:#b8791e}.lop-stat.daq b[data-v-e241fe8f]{color:#158f8a}.lop-stat.aml b[data-v-e241fe8f]{color:#7657ad}.lop-stat.safety b[data-v-e241fe8f]{color:var(--tone-danger-dot)}.lop-filters[data-v-e241fe8f]{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}.lop-filters button[data-v-e241fe8f]{color:var(--ink-faint);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;padding:4px 7px;font-size:10px}.lop-filters button[data-v-e241fe8f]:hover{color:var(--ink);background:var(--hover-tint)}.lop-filters button.on[data-v-e241fe8f]{color:var(--ink);background:var(--paper-deep);border-color:var(--line-strong)}.lop-timeline[data-v-e241fe8f]{min-height:0;max-height:274px;padding-right:2px;overflow:auto}.lop-event[data-v-e241fe8f]{border-left:2px solid var(--line-strong);background:color-mix(in srgb, var(--paper-deep) 42%, transparent);border-radius:5px;grid-template-columns:22px minmax(0,1fr);gap:7px;margin:3px 0;padding:7px 6px;display:grid}.lop-event.dcw[data-v-e241fe8f]{border-left-color:#c98922}.lop-event.daq[data-v-e241fe8f]{border-left-color:#159f9a}.lop-event.aml[data-v-e241fe8f]{border-left-color:#7657ad}.lop-event.twin[data-v-e241fe8f]{border-left-color:#3978b8}.lop-event.safety[data-v-e241fe8f]{border-left-color:var(--tone-danger-dot)}.lop-event.critical[data-v-e241fe8f]{background:color-mix(in srgb, var(--tone-danger-dot) 8%, transparent)}.lop-event-icon[data-v-e241fe8f]{width:20px;height:20px;color:var(--ink-faint);place-items:center;font-size:13px;display:grid}.lop-event.dcw .lop-event-icon[data-v-e241fe8f]{color:#b8791e}.lop-event.daq .lop-event-icon[data-v-e241fe8f]{color:#159f9a}.lop-event.aml .lop-event-icon[data-v-e241fe8f]{color:#7657ad}.lop-event.twin .lop-event-icon[data-v-e241fe8f]{color:#3978b8}.lop-event.safety .lop-event-icon[data-v-e241fe8f]{color:var(--tone-danger-dot)}.lop-event-top[data-v-e241fe8f]{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.lop-event-top strong[data-v-e241fe8f]{font-size:11px}.lop-event-top time[data-v-e241fe8f]{font:9px var(--font-mono);color:var(--ink-faint);flex:none}.lop-event p[data-v-e241fe8f]{color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin:2px 0;font-size:10.5px;line-height:1.35;overflow:hidden}.lop-event small[data-v-e241fe8f]{font:9px var(--font-mono);color:var(--ink-faint)}.lop-empty[data-v-e241fe8f]{min-height:70px;color:var(--ink-faint);justify-content:center;align-items:center;gap:7px;font-size:11px;display:flex}@media (width<=1023.98px){.lop-timeline[data-v-e241fe8f]{max-height:220px}}.right-pane[data-v-b681c4ce]{background:var(--paper);flex-direction:column;flex:none;min-height:0;display:flex;overflow:hidden}.right-main[data-v-b681c4ce]{flex:auto;min-height:0}.right-chat[data-v-b681c4ce]{border-top:1px solid var(--line);flex:none;min-height:0;max-height:46%;overflow:hidden}.right-pane.empty[data-v-b681c4ce]{opacity:.35}.pane-loading[data-v-b681c4ce]{height:100%;color:var(--ink-faint);justify-content:center;align-items:center;font-size:12px;display:flex}@media (width<=1023.98px){.pane-loading[data-v-b681c4ce]{font-size:13px}}.composer-bar[data-v-29be197e]{justify-content:space-between;align-items:center;gap:12px;min-height:30px;margin-top:6px;display:flex}.cb-left[data-v-29be197e]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cb-right[data-v-29be197e]{flex:none;align-items:center;gap:8px;display:flex}.chip-toggle[data-v-29be197e]{font-family:var(--font-body);color:var(--ink-faint);cursor:pointer;background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-pill);transition:color var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);align-items:center;gap:5px;padding:3px 10px;font-size:12px;display:inline-flex}.chip-toggle[data-v-29be197e]:hover{color:var(--ink)}.chip-toggle.on[data-v-29be197e]{color:var(--ink);background:var(--paper-deep);border-color:var(--ink);font-weight:600}.send-btn[data-v-29be197e]{width:32px;height:32px;color:var(--on-accent);cursor:pointer;background:var(--accent);border-radius:var(--radius-pill);transition:background var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);border:0;justify-content:center;align-items:center;padding:0;font-size:15px;display:flex}.send-btn[data-v-29be197e]:hover:not(:disabled){background:var(--accent-strong)}.send-btn[data-v-29be197e]:active:not(:disabled){transform:scale(.96)}.send-btn[data-v-29be197e]:disabled{opacity:.3;cursor:default}.loop-number[data-v-29be197e],.loop-number.iterations[data-v-29be197e]{width:104px}.target[data-v-29be197e]{width:138px}@media (width<=1023.98px){.composer-bar[data-v-29be197e]{flex-wrap:wrap;gap:8px;margin-top:8px}.cb-left[data-v-29be197e]{flex:100%;row-gap:8px}.cb-right[data-v-29be197e]{flex:100%}.send-btn[data-v-29be197e]{width:100%;height:44px;font-size:18px}.aw-seg button[data-v-29be197e]{min-height:40px;padding:0 12px}.chip-toggle[data-v-29be197e]{min-height:40px}.target[data-v-29be197e]{flex:130px;width:auto}.composer-bar[data-v-29be197e] .ant-select-selector{align-items:center;min-height:40px}.loop-number[data-v-29be197e],.loop-number.iterations[data-v-29be197e]{flex:96px;width:auto}.composer-bar[data-v-29be197e] .ant-input-number{min-height:40px}}.mention-menu[data-v-a42e4a1c]{z-index:20;background:var(--paper-raised);border:1px solid var(--line-strong);border-radius:var(--radius-panel);max-height:264px;box-shadow:var(--shadow-float);margin-bottom:8px;position:absolute;bottom:100%;left:12px;right:12px;overflow:auto}.mention-opt[data-v-a42e4a1c]{width:100%;font-family:var(--font-body);color:var(--ink-soft);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:7px 12px;font-size:13px;display:flex}.mention-opt.sel[data-v-a42e4a1c],.mention-opt[data-v-a42e4a1c]:hover{background:var(--paper-deep)}.mention-ava[data-v-a42e4a1c]{width:20px;height:20px;font-size:10px}.mention-ava.is-user[data-v-a42e4a1c]{color:var(--on-accent);background:var(--ink-faint)}.mention-name[data-v-a42e4a1c]{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);flex:1;overflow:hidden}.mention-role[data-v-a42e4a1c]{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em;flex:none;font-size:10.5px}.mention-title[data-v-a42e4a1c]{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:5px 12px 4px;font-size:10px;font-weight:600}.mention-state[data-v-a42e4a1c]{background:var(--ink-fainter);opacity:.7;border-radius:50%;flex:none;width:7px;height:7px}.mention-state.busy[data-v-a42e4a1c]{background:var(--tone-live-dot);opacity:1}@media (width<=1023.98px){.mention-role[data-v-a42e4a1c],.mention-title[data-v-a42e4a1c]{font-size:11.5px}.mention-opt[data-v-a42e4a1c]{min-height:44px}}.reply-chip[data-v-59520bd3]{color:var(--ink-soft);background:var(--paper-deep);border-left:2px solid var(--ink-fainter);border-radius:var(--radius-chip);align-items:center;gap:6px;margin:2px 0 4px;padding:3px 8px;font-size:11.5px;display:flex}.reply-label b[data-v-59520bd3]{color:var(--ink)}.reply-excerpt[data-v-59520bd3]{max-width:46%;color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.reply-cancel[data-v-59520bd3]{color:var(--ink-faint);cursor:pointer;background:0 0;border:0;align-items:center;padding:0 2px;font-size:12px;display:inline-flex}.reply-cancel[data-v-59520bd3]:hover{color:var(--ink)}.composer-status-chip[data-v-2cc33deb]{width:max-content;max-width:100%;color:var(--ink-faint);background:var(--paper-deep);border-radius:var(--radius-chip);align-items:center;gap:6px;margin:0 0 4px 2px;padding:2px 8px;font-size:11.5px;display:flex}.chip-key[data-v-2cc33deb]{color:var(--ink-soft);font-weight:600}.chip-target[data-v-2cc33deb]{color:var(--ink);font-weight:600}.chip-hint[data-v-2cc33deb]{color:var(--ink-faint);margin-left:auto;padding-left:8px}.reach-chip[data-v-2cc33deb]{border-radius:var(--radius-chip);align-items:center;gap:5px;padding:0 6px;font-size:10.5px;display:inline-flex}.reach-chip .reach-dot[data-v-2cc33deb]{background:currentColor;border-radius:50%;width:5px;height:5px}.reach-chip[data-tone=ok][data-v-2cc33deb]{color:var(--tone-success-dot);background:color-mix(in srgb, var(--tone-success-dot) 10%, transparent)}.reach-chip[data-tone=info][data-v-2cc33deb]{color:var(--tone-info-dot);background:color-mix(in srgb, var(--tone-info-dot) 10%, transparent)}.reach-chip[data-tone=warn][data-v-2cc33deb]{color:var(--tone-warning-dot);background:color-mix(in srgb, var(--tone-warning-dot) 13%, transparent)}@media (width<=1023.98px){.composer-status-chip[data-v-2cc33deb]{flex-wrap:wrap;row-gap:2px;width:auto;font-size:11.5px;line-height:1.45}.chip-hint[data-v-2cc33deb]{flex:100%;margin-left:0;padding-left:0}.reach-chip[data-v-2cc33deb]{font-size:11.5px}}.composer[data-v-685c0ff5]{background:var(--paper-raised);border-top:1px solid var(--line);padding:10px 16px 12px;position:relative;overflow:hidden}.composer-box[data-v-685c0ff5]{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-panel);max-width:900px;box-shadow:inset 0 1px 0 #ffffff4d, var(--bubble-shadow);transition:border-color var(--transition-slow), box-shadow var(--transition-slow);margin:0 auto;padding:8px 12px;position:relative}.composer-box[data-v-685c0ff5]:focus-within{border-color:var(--ink-fainter);box-shadow:inset 0 0 0 .5px color-mix(in srgb, var(--ink) 18%, transparent),0 6px 22px #0c0a090d}.composer-block-hint[data-v-685c0ff5]{color:var(--tone-warning-dot);align-items:center;gap:6px;margin:0 0 4px 2px;font-size:11.5px;display:flex}.composer-input[data-v-685c0ff5]{width:100%;min-height:26px;max-height:160px;font-family:var(--font-body);color:var(--ink);resize:none;background:0 0;border:0;outline:none;padding:3px 2px;font-size:13.5px;line-height:1.5;display:block;overflow-y:auto}.composer-input[data-v-685c0ff5]::placeholder{color:var(--ink-faint)}@media (width<=1023.98px){.composer[data-v-685c0ff5]{padding:8px 10px calc(10px + env(safe-area-inset-bottom))}.composer-box[data-v-685c0ff5]{padding:8px 10px}.composer-input[data-v-685c0ff5]{min-height:42px;max-height:30dvh;font-size:16px}}.drawer-resizer[data-v-fbf23e4d]{z-index:8;position:absolute;inset:0 auto 0 0}.head[data-v-fbf23e4d]{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding-bottom:8px;display:flex}.dot[data-v-fbf23e4d]{border-radius:50%;width:9px;height:9px}.state-text[data-v-fbf23e4d]{font-family:var(--font-mono);font-size:12px}.role-chip[data-v-fbf23e4d]{letter-spacing:.04em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-pill);flex:none;padding:0 7px;font-size:9.5px;line-height:16px}.queue-meta[data-v-fbf23e4d]{color:var(--ink-faint);flex:auto;font-size:11px}.current-task[data-v-fbf23e4d]{color:var(--tone-info-dot);border-bottom:1px dashed var(--divider-hair);padding:6px 0;font-size:12px}.agent-drawer[data-v-fbf23e4d] .ant-drawer-body{flex-direction:column;padding-bottom:0;display:flex}.drawer-tabs[data-v-fbf23e4d]{flex-direction:column;flex:auto;min-height:0;display:flex}.drawer-tabs[data-v-fbf23e4d] .ant-tabs-content-holder{overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.stream[data-v-fbf23e4d]{font-size:12px}.empty[data-v-fbf23e4d]{color:var(--ink-faint);padding:12px 4px;font-size:12px}.queue-group[data-v-fbf23e4d]{margin-bottom:10px}.group-title[data-v-fbf23e4d]{color:var(--ink-soft);padding:4px 0;font-size:12px;font-weight:600}.queue-task[data-v-fbf23e4d]{border-radius:var(--radius-panel-sm);align-items:center;gap:6px;padding:4px 6px;display:flex}.queue-task[data-v-fbf23e4d]:hover{background:var(--hover-tint)}.state-chip[data-v-fbf23e4d]{letter-spacing:.03em;color:var(--ink-soft);border:1px solid var(--line-strong);border-radius:var(--radius-pill);flex:none;padding:1px 6px;font-size:10px;line-height:15px}.qt-title[data-v-fbf23e4d]{text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:12px;overflow:hidden}.qt-meta[data-v-fbf23e4d]{font-family:var(--font-mono);color:var(--ink-faint);font-size:11px}.footer[data-v-fbf23e4d]{background:var(--paper-raised);border-top:1px solid var(--line);border-radius:0 0 var(--radius-panel) var(--radius-panel);flex:none;margin:8px -24px 0;padding:8px 24px 12px}.member-ops[data-v-fbf23e4d]{align-items:center;gap:8px;margin-bottom:8px;font-size:11px;display:flex}.op-label[data-v-fbf23e4d]{color:var(--ink-faint)}.send-ops[data-v-fbf23e4d]{align-items:center;gap:8px;margin-top:6px;display:flex}.drawer-resizer[data-v-25f7d667]{z-index:8;position:absolute;inset:0 auto 0 0}.head[data-v-25f7d667]{border-bottom:1px solid color-mix(in srgb, currentColor 10%, transparent);align-items:center;gap:8px;padding-bottom:8px;display:flex}.meta[data-v-25f7d667]{font-size:12px;font-family:var(--font-mono);opacity:.6}.spacer[data-v-25f7d667]{flex:auto}.guardrail-strip[data-v-25f7d667]{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.guardrail-chip[data-v-25f7d667]{font-family:var(--font-mono);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-pill);align-items:center;gap:5px;padding:4px 8px;font-size:10.5px;display:inline-flex}.guardrail-chip.deadline[data-v-25f7d667]{color:var(--tone-warning-dot);border-color:color-mix(in srgb, var(--tone-warning-dot) 40%, var(--line))}.guardrail-chip.reason[data-v-25f7d667]{color:var(--tone-danger-dot);border-color:color-mix(in srgb, var(--tone-danger-dot) 40%, var(--line))}.guardrail-chip.tree[data-v-25f7d667]{color:var(--tone-info-dot);border-color:color-mix(in srgb, var(--tone-info-dot) 35%, var(--line))}.desc[data-v-25f7d667]{margin-top:8px}.failure-reason[data-v-25f7d667]{background:#ff6b6b17;border:1px solid #ff6b6b59;border-radius:8px;align-items:baseline;gap:8px;margin-top:10px;padding:8px 10px;display:flex}.fr-label[data-v-25f7d667]{color:#ff8080;flex:none;font-size:11px;font-weight:700}.fr-text[data-v-25f7d667]{color:var(--tone-danger-dot,#ff8080);white-space:pre-wrap;word-break:break-all;font-size:12px;line-height:1.55}.route-reason[data-v-25f7d667]{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--radius-chip);align-items:baseline;gap:8px;margin-top:6px;padding:8px 10px;font-size:12px;display:flex}.route-label[data-v-25f7d667]{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);flex:none;font-size:10px}.route-text[data-v-25f7d667]{color:var(--ink-soft)}.tl-row[data-v-25f7d667]{font-size:12px;font-family:var(--font-mono);align-items:center;gap:8px;padding:3px 0;display:flex}.tl-time[data-v-25f7d667]{opacity:.45}.state[data-v-25f7d667]{margin-inline-end:0;font-size:10px}.tl-progress[data-v-25f7d667]{opacity:.7}.child-row[data-v-25f7d667]{border-radius:var(--radius-chip);align-items:center;gap:6px;padding:4px 6px;display:flex}.child-row[data-v-25f7d667]:hover{background:color-mix(in srgb, currentColor 8%, transparent)}.child-title[data-v-25f7d667]{text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:12px;overflow:hidden}.child-meta[data-v-25f7d667]{opacity:.5;font-size:11px}.empty[data-v-25f7d667]{opacity:.4;padding:12px 4px;font-size:12px}.raw[data-v-25f7d667]{max-height:300px;font-size:11px;overflow:auto}.drawer-resizer[data-v-32b791de]{z-index:8;position:absolute;inset:0 auto 0 0}.dbg[data-v-32b791de]{flex-direction:column;gap:8px;font-size:12px;display:flex}.row[data-v-32b791de]{gap:8px;display:flex}.agent[data-v-32b791de]{flex:55%}.method[data-v-32b791de]{flex:45%}.params[data-v-32b791de]{font-family:var(--font-mono)}.ops[data-v-32b791de]{justify-content:flex-end}.output[data-v-32b791de]{min-height:240px;font-size:11px;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;background:color-mix(in srgb, currentColor 5%, transparent);border-radius:var(--radius-panel-sm);padding:10px;overflow:auto}.palette-mask[data-v-4f838eaf]{z-index:1100;background:var(--scrim,#0c0a0966);justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.palette[data-v-4f838eaf]{background:var(--glass-bg);width:560px;max-width:92vw;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-line);border-radius:var(--radius-panel);box-shadow:var(--glass-highlight), var(--shadow-float);flex-direction:column;display:flex;overflow:hidden}.palette-search[data-v-4f838eaf]{color:var(--ink-faint);border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:13px 16px;display:flex}.ps-icon[data-v-4f838eaf]{flex:none;font-size:15px}.palette-input[data-v-4f838eaf]{min-width:0;font-family:var(--font-body);color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:14px}.palette-input[data-v-4f838eaf]::placeholder{color:var(--ink-faint)}.palette-list[data-v-4f838eaf]{max-height:320px;padding:6px;overflow-y:auto}.palette-item[data-v-4f838eaf]{width:100%;font-family:var(--font-body);color:var(--ink-soft);text-align:left;cursor:pointer;border-radius:var(--radius-panel-sm);background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;display:flex}.palette-item.selected[data-v-4f838eaf]{color:var(--ink);background:var(--paper-deep)}.pi-label[data-v-4f838eaf]{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.pi-hint[data-v-4f838eaf]{font-family:var(--font-mono);color:var(--ink-faint);background:var(--paper-deep);border-radius:var(--radius-pill);flex:none;padding:2px 8px;font-size:10.5px}.palette-item.selected .pi-hint[data-v-4f838eaf]{background:var(--paper-raised)}.palette-empty[data-v-4f838eaf]{color:var(--ink-faint);text-align:center;padding:18px;font-size:13px}.palette-foot[data-v-4f838eaf],.palette-frost[data-v-4f838eaf]{color:var(--ink-faint);border-top:1px solid var(--line);background:var(--frost-bg);align-items:center;gap:8px;padding:9px 16px;font-size:11px;display:flex}.palette-foot kbd[data-v-4f838eaf]{font-family:var(--font-body);color:var(--ink-soft);background:var(--paper-deep);border:1px solid var(--line-strong);border-radius:var(--radius-chip);padding:1px 5px;font-size:10px}.composer-pane[data-v-d754c741]{flex:none}.harness[data-v-18e1cc65]{height:calc(100dvh - var(--app-header-h,56px) - var(--app-footer-h,46px) - 16px);border:1px solid var(--line);border-radius:var(--radius-shell);background:var(--paper-raised);min-height:0;box-shadow:var(--shadow-card);flex-direction:column;margin:0;display:flex;overflow:hidden}.main[data-v-18e1cc65]{flex:auto;min-height:0;display:flex}@media (width<=1023.98px){.harness[data-v-18e1cc65]{height:calc(100dvh - var(--app-header-h,56px) - var(--app-footer-h,46px) - 8px)}.main[data-v-18e1cc65]{position:relative}.drawer-scrim[data-v-18e1cc65]{z-index:25;background:color-mix(in srgb, var(--ink) 34%, transparent);position:absolute;inset:0}.pane-splitter[data-v-18e1cc65]{display:none}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"id":"912eb5bb-670e-4cc8-b21d-7fc097723466","timestamp":1790571208142,"prerendered":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page[data-v-2c33b698]{padding:4px}.head[data-v-2c33b698]{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}h2[data-v-2c33b698]{margin:0 0 4px}.sub[data-v-2c33b698]{opacity:.55;margin:0;font-size:12px}.toolbar[data-v-2c33b698]{align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-note[data-v-2c33b698]{color:var(--ink-faint);align-items:center;gap:5px;font-size:11px;display:inline-flex}.grid[data-v-2c33b698]{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.card[data-v-2c33b698]{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-panel);transition:border-color var(--transition-fast);flex-direction:column;gap:8px;padding:14px;display:flex}.card[data-v-2c33b698]:hover{border-color:var(--line-strong)}.card-head[data-v-2c33b698]{align-items:center;gap:8px;display:flex}.name[data-v-2c33b698]{text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:15px;font-weight:600;overflow:hidden}.vis-tag[data-v-2c33b698]{margin-right:2px}.owner[data-v-2c33b698]{color:var(--ink-faint);font-size:11px}.desc[data-v-2c33b698]{color:var(--ink-soft);margin:0;font-size:12px}.member-line[data-v-2c33b698]{align-items:center;gap:6px;font-size:12px;display:flex}.lead-name[data-v-2c33b698]{font-weight:500}.count[data-v-2c33b698]{font-family:var(--font-mono);color:var(--ink-faint);font-size:11px}.scenario[data-v-2c33b698]{font-family:var(--font-mono);color:var(--ink-faint);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:10.5px;line-height:1.5;display:-webkit-box;overflow:hidden}.card-foot[data-v-2c33b698]{align-items:center;gap:6px;margin-top:2px;display:flex}.ws[data-v-2c33b698]{max-width:60%;font-family:var(--font-mono);color:var(--ink-faint);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;font-size:10.5px;display:inline-flex;overflow:hidden}.spacer[data-v-2c33b698]{flex:auto}.card.placeholder[data-v-2c33b698]{opacity:.55;cursor:pointer;border-style:dashed;justify-content:center;align-items:center;min-height:160px;font-size:13px}.big[data-v-2c33b698]{font-size:28px}@media (width<=900px){.head[data-v-2c33b698]{flex-direction:column;align-items:stretch;gap:12px}.head>div[data-v-2c33b698]{min-width:0}.head h2[data-v-2c33b698]{font-size:21px;line-height:1.25}.head[data-v-2c33b698] .ant-space{flex-direction:column;align-items:stretch;gap:8px;width:100%;display:flex}.head[data-v-2c33b698] .ant-space-item{width:100%}.head[data-v-2c33b698] .ant-btn{width:100%;min-height:40px}.toolbar[data-v-2c33b698]{flex-wrap:wrap;gap:8px}.toolbar[data-v-2c33b698] .ant-segmented{flex:100%;min-width:0}.admin-note[data-v-2c33b698]{flex:100%;min-width:0;font-size:11.5px;line-height:1.5}.grid[data-v-2c33b698]{grid-template-columns:1fr}.card-head[data-v-2c33b698],.member-line[data-v-2c33b698],.card-foot[data-v-2c33b698]{flex-wrap:wrap}.ws[data-v-2c33b698]{max-width:100%}}@media (width<=640px){.page[data-v-2c33b698]{padding:0}.head h2[data-v-2c33b698]{font-size:19px}.sub[data-v-2c33b698]{font-size:11.5px;line-height:1.5}.scenario[data-v-2c33b698]{font-size:11.5px}}
|