agentworkshop 0.7.7 → 0.7.9
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 +1 -1
- package/.output/.AgentWorkShop/prompts/host-tools.json +1 -1
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/-6OnbLFb.js +1 -0
- package/.output/public/_nuxt/{BUxYN2mw.js → -nb2uqVg.js} +1 -1
- package/.output/public/_nuxt/{DM8DS9MA.js → 6PZPfFcO.js} +1 -1
- package/.output/public/_nuxt/91DZTUMJ.js +1 -0
- package/.output/public/_nuxt/B0HpdCKS.js +1 -0
- package/.output/public/_nuxt/B1g8pJmr.js +2 -0
- package/.output/public/_nuxt/B1kA8LhC.js +14 -0
- package/.output/public/_nuxt/{uBbDCfTz.js → B5S_UyaC.js} +1 -1
- package/.output/public/_nuxt/{DZk24ego.js → B7wL3pDk.js} +1 -1
- package/.output/public/_nuxt/B9MUiDFl.js +1 -0
- package/.output/public/_nuxt/B9dLFSYI.js +1 -0
- package/.output/public/_nuxt/BC8s1Guv.js +1 -0
- package/.output/public/_nuxt/{BSXx2vqR.js → BCJFMBQ6.js} +1 -1
- package/.output/public/_nuxt/{BYL0Rjqj.js → BDASpD_i.js} +3 -3
- package/.output/public/_nuxt/{VnIWJ0ts.js → BN_PdN3J.js} +1 -1
- package/.output/public/_nuxt/BUPj10t4.js +1 -0
- package/.output/public/_nuxt/BZGNTgTQ2.js +1 -0
- package/.output/public/_nuxt/{NIM0Wglj2.js → BaMkWl5i2.js} +1 -1
- package/.output/public/_nuxt/BmHvC_OU.js +1 -0
- package/.output/public/_nuxt/{BkfchkK62.js → Bp5luxkg2.js} +1 -1
- package/.output/public/_nuxt/{ZugRk0CM2.js → BuktKVqK2.js} +1 -1
- package/.output/public/_nuxt/By8BpbKH.js +1 -0
- package/.output/public/_nuxt/{pRQri7vQ2.js → BytVi9VX2.js} +1 -1
- package/.output/public/_nuxt/{D5KJ7_0V.js → C3tCneTM.js} +1 -1
- package/.output/public/_nuxt/{CblLEiCZ.js → C9cU_Ujd.js} +3 -3
- package/.output/public/_nuxt/{BJ-fxrSw.js → CBciOiTQ.js} +1 -1
- package/.output/public/_nuxt/CFn4vHwD.js +1 -0
- package/.output/public/_nuxt/{DCXIGxzT.js → CKfhtOt7.js} +2 -2
- package/.output/public/_nuxt/CUMdhxg9.js +1 -0
- package/.output/public/_nuxt/{ChEKFMxj.js → CUXCQXjG.js} +1 -1
- package/.output/public/_nuxt/CfVAr2nf.js +1 -0
- package/.output/public/_nuxt/{CvbHIGQY2.js → CgvGu2IO.js} +1 -1
- package/.output/public/_nuxt/CjDQPXfv.js +1 -0
- package/.output/public/_nuxt/{B4Fia4FB.js → CmHzfVc5.js} +1 -1
- package/.output/public/_nuxt/{Do88WZG2.js → Cn3J3NXR.js} +1 -1
- package/.output/public/_nuxt/{DNzaswei.js → Cst47G4-.js} +1 -1
- package/.output/public/_nuxt/{DYZBdSSg2.js → Ct68Z0232.js} +1 -1
- package/.output/public/_nuxt/{BsMpJf7S.js → D-Ca4BGY.js} +6 -6
- package/.output/public/_nuxt/D0Szyn_D.js +1 -0
- package/.output/public/_nuxt/{CsCpu2Zh.js → D1z7i2UP.js} +1 -1
- package/.output/public/_nuxt/{Du-eSpo2.js → D3VJ3lex.js} +1 -1
- package/.output/public/_nuxt/D8CqF0yy.js +1 -0
- package/.output/public/_nuxt/D8EfUxO2.js +1 -0
- package/.output/public/_nuxt/D8wyHvcz2.js +1 -0
- package/.output/public/_nuxt/{zwdqvGN_.js → DDdEnkdw.js} +1 -1
- package/.output/public/_nuxt/DM4CNkXz.js +1 -0
- package/.output/public/_nuxt/DN5RuZ8k.js +18 -0
- package/.output/public/_nuxt/DXRZPxGs.js +1 -0
- package/.output/public/_nuxt/{C2iWjzEC2.js → DoLasgPj2.js} +1 -1
- package/.output/public/_nuxt/{DRq09ZmT.js → DpojD719.js} +1 -1
- package/.output/public/_nuxt/Dqj2h40U.js +1 -0
- package/.output/public/_nuxt/{BCipft_k2.js → DsUUYP292.js} +1 -1
- package/.output/public/_nuxt/DtBu71ev.js +32 -0
- package/.output/public/_nuxt/{fQUs58kX2.js → DvgKXPgu2.js} +1 -1
- package/.output/public/_nuxt/{C_gFA2H_2.js → DxrgFxIr2.js} +1 -1
- package/.output/public/_nuxt/Dy-mxvXY2.js +1 -0
- package/.output/public/_nuxt/G0qIw7Gq2.js +1 -0
- package/.output/public/_nuxt/{DCEyMaN-.js → MyA0Oeqd.js} +3 -3
- package/.output/public/_nuxt/{tRBT-plo.js → OV6PBW2z.js} +1 -1
- package/.output/public/_nuxt/TownView.BHLKAjEu.css +1 -0
- package/.output/public/_nuxt/VLI2Zy4t.js +5 -0
- package/.output/public/_nuxt/_id_.DIxEKj88.css +1 -0
- package/.output/public/_nuxt/_id_.DTvjd6VN.css +1 -0
- package/.output/public/_nuxt/{_wsId_.COUzMXpP.css → _wsId_.BFyCuUwS.css} +1 -1
- package/.output/public/_nuxt/agents.CEbox5-D.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/92d6bd39-dbc5-46d5-90d8-8387f36715fa.json +1 -0
- package/.output/public/_nuxt/channel-templates.De5ZvrGz.css +1 -0
- package/.output/public/_nuxt/daq.6IrhVVfy.css +1 -0
- package/.output/public/_nuxt/dcw.DcDjwvqv.css +1 -0
- package/.output/public/_nuxt/{default.V3_hUJq1.css → default.BR3e5fPY.css} +1 -1
- package/.output/public/_nuxt/{entry.DvlXlPwx.css → entry.5qf6EqfN.css} +1 -1
- package/.output/public/_nuxt/{Cyk3du4K2.js → kZV5TQvh2.js} +1 -1
- package/.output/public/_nuxt/logs.BO-BSyjm.css +1 -0
- package/.output/public/_nuxt/{D4qXvjuV.js → niDwBOZW.js} +2 -2
- package/.output/public/_nuxt/pKv_VWR4.js +1 -0
- package/.output/public/_nuxt/plugins.Clsky_kl.css +1 -0
- package/.output/public/_nuxt/rqZ-1SoP.js +2 -0
- package/.output/public/_nuxt/teams.CUMnbQGf.css +1 -0
- package/.output/public/_nuxt/tokens.BPLe9ioQ.css +1 -0
- package/.output/public/_nuxt/{C8dxXc6K.js → u7KWCGSb.js} +1 -1
- package/.output/public/_nuxt/{Bi6AiCuP.js → vJ4FPb-_.js} +1 -1
- package/.output/public/_nuxt/wirVyscc.js +1 -0
- package/.output/public/_nuxt/workshop.BIdoGfoC.css +1 -0
- package/.output/server/chunks/_/nitro.mjs +2042 -1967
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/build/{TownView-B5KifIaT.mjs → TownView-D8DSdO3H.mjs} +182 -181
- package/.output/server/chunks/build/{TownView-B5KifIaT.mjs.map → TownView-D8DSdO3H.mjs.map} +1 -1
- package/.output/server/chunks/build/{_id_-Ct4Jhvl1.mjs → _id_-BV4FfiYd.mjs} +37 -36
- package/.output/server/chunks/build/_id_-BV4FfiYd.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-C-ewLgfl.mjs → _id_-TP9hvnBM.mjs} +126 -125
- package/.output/server/chunks/build/_id_-TP9hvnBM.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-CanI_6Su.mjs → _wsId_-Mm9sQSz2.mjs} +125 -124
- package/.output/server/chunks/build/{_wsId_-CanI_6Su.mjs.map → _wsId_-Mm9sQSz2.mjs.map} +1 -1
- package/.output/server/chunks/build/{agents-DSOptxXA.mjs → agents-To3a5xcZ.mjs} +16 -15
- package/.output/server/chunks/build/agents-To3a5xcZ.mjs.map +1 -0
- package/.output/server/chunks/build/api-error-dul30BYQ.mjs +47 -0
- package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +1 -0
- package/.output/server/chunks/build/{channel-templates-BK0KuPOd.mjs → channel-templates-DRsP-qxl.mjs} +23 -22
- package/.output/server/chunks/build/channel-templates-DRsP-qxl.mjs.map +1 -0
- package/.output/server/chunks/build/{daq-D9RA_uze.mjs → daq-_hCEaYLd.mjs} +112 -111
- package/.output/server/chunks/build/daq-_hCEaYLd.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-BTM5YU-B.mjs → dcw-C7pJ4Y0p.mjs} +47 -46
- package/.output/server/chunks/build/dcw-C7pJ4Y0p.mjs.map +1 -0
- package/.output/server/chunks/build/{default-BfWGTlbj.mjs → default-Dnjs36e8.mjs} +16 -15
- package/.output/server/chunks/build/{default-BfWGTlbj.mjs.map → default-Dnjs36e8.mjs.map} +1 -1
- package/.output/server/chunks/build/{logs-Dyk0I2I9.mjs → logs-C039TFW1.mjs} +38 -37
- package/.output/server/chunks/build/logs-C039TFW1.mjs.map +1 -0
- package/.output/server/chunks/build/{pages-DR2bzczM.mjs → pages-C_VSGSGo.mjs} +5 -4
- package/.output/server/chunks/build/pages-C_VSGSGo.mjs.map +1 -0
- package/.output/server/chunks/build/{plugins-DnOBIWGg.mjs → plugins-4FMWkN8d.mjs} +25 -22
- package/.output/server/chunks/build/plugins-4FMWkN8d.mjs.map +1 -0
- package/.output/server/chunks/build/table-Cswq-l2r.mjs +1 -1
- package/.output/server/chunks/build/{teams-BhSKBBBM.mjs → teams-DA1lkf1n.mjs} +19 -18
- package/.output/server/chunks/build/teams-DA1lkf1n.mjs.map +1 -0
- package/.output/server/chunks/build/{tokens-D_eyxmcv.mjs → tokens-DKMvvk3e.mjs} +18 -17
- package/.output/server/chunks/build/tokens-DKMvvk3e.mjs.map +1 -0
- package/.output/server/chunks/build/{town-DPtOPRRO.mjs → town-D0thZ7PK.mjs} +6 -5
- package/.output/server/chunks/build/town-D0thZ7PK.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqStream-hwkhJHFU.mjs → useDaqStream-BVTRw8_H.mjs} +5 -4
- package/.output/server/chunks/build/useDaqStream-BVTRw8_H.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwStream-Bdew_yrr.mjs → useDcwStream-DNsivqI_.mjs} +5 -4
- package/.output/server/chunks/build/useDcwStream-DNsivqI_.mjs.map +1 -0
- package/.output/server/chunks/build/{useDeviceTwins-C6EBg9oN.mjs → useDeviceTwins-WeIom7A6.mjs} +4 -3
- package/.output/server/chunks/build/useDeviceTwins-WeIom7A6.mjs.map +1 -0
- package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +1 -1
- package/.output/server/chunks/build/{useOpsLog-DdCqKVVG.mjs → useOpsLog-DcKnPO43.mjs} +5 -4
- package/.output/server/chunks/build/useOpsLog-DcKnPO43.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs +1 -1
- package/.output/server/chunks/build/{workshop-iCzNRifn.mjs → workshop-BhWnJMWs.mjs} +50 -43
- package/.output/server/chunks/build/workshop-BhWnJMWs.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs +25 -0
- package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +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/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/index4.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/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/products/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/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/index4.get.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/index6.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +3 -3
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +3 -3
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs +2 -2
- package/.output/server/chunks/virtual/entry.mjs +57 -23
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +27 -7
- package/README.md +455 -435
- package/app/components/AppHeader.vue +1 -1
- package/app/components/workshop/A2aRpcDebugger.vue +1 -1
- package/app/components/workshop/AgentInspectorDrawer.vue +3 -3
- package/app/components/workshop/AgentLanesView.vue +6 -6
- package/app/components/workshop/AssetLibrary.vue +2 -2
- package/app/components/workshop/ChannelSessionList.vue +5 -5
- package/app/components/workshop/Composer.vue +1 -1
- package/app/components/workshop/DeviceTwinPanel.vue +2 -2
- package/app/components/workshop/TaskBoardView.vue +1 -1
- package/app/components/workshop/TaskInspectorDrawer.vue +2 -2
- package/app/components/workshop/town/TownView.vue +23 -23
- package/app/composables/workshop/apiClient.ts +1 -1
- package/app/composables/workshop/useCharacterAssets.ts +1 -1
- package/app/composables/workshop/useDaqStream.ts +1 -1
- package/app/composables/workshop/useDcwStream.ts +1 -1
- package/app/composables/workshop/useDeviceTwins.ts +1 -1
- package/app/composables/workshop/useOpsLog.ts +2 -2
- package/app/composables/workshop/useSceneLayouts.ts +1 -1
- package/app/pages/daq/[id].vue +1 -1
- package/app/pages/daq/index.vue +8 -8
- package/app/pages/dcw/[id].vue +13 -13
- package/app/pages/dcw/index.vue +7 -7
- package/app/pages/logs/index.vue +1 -1
- package/app/pages/plugins/index.vue +14 -6
- package/app/pages/tokens.vue +3 -3
- package/app/pages/workshop/agents.vue +2 -2
- package/app/pages/workshop/channel-templates.vue +3 -3
- package/app/pages/workshop/index.vue +29 -10
- package/app/pages/workshop/teams.vue +3 -3
- package/app/utils/api-error.ts +75 -0
- package/cli/commands/plugin.mjs +2 -2
- package/config.yml +11 -1
- package/i18n/dicts/settings.json +4 -0
- package/i18n/locales/en.ts +20 -3
- package/i18n/locales/zh-CN.ts +20 -3
- package/package.json +1 -1
- package/scripts/_dbg-codex-handshake.ts +30 -0
- package/scripts/_dbg-codex-sandbox.ts +58 -0
- package/scripts/_dbg-codex-turn.ts +65 -0
- package/scripts/_dbg-interval-config.mjs +156 -0
- package/scripts/_dbg-plugins-e2e.mjs +101 -0
- package/scripts/_dbg-repo-setup-verify.mjs +31 -0
- package/scripts/_dbg-setup-e2e.mjs +88 -0
- package/scripts/e2e-harness-provider-task.mjs +126 -0
- package/server/api/users/setup-status.get.ts +8 -0
- package/server/api/workshop/daq/[id]/samples.get.ts +4 -2
- package/server/api/workshop/plugins/[name]/disable.post.ts +5 -3
- package/server/api/workshop/plugins/[name]/enable.post.ts +5 -3
- package/server/data/daqs.json +138 -42
- package/server/data/dcw-lines.json +28 -0
- package/server/data/dcw-products.json +140 -0
- package/server/data/dcw-recipes.json +506 -0
- package/server/data/dcw-rollback.json +226 -6
- package/server/data/dcw-runs.json +1807 -1690
- package/server/data/dcw-writes.json +240 -0
- package/server/data/dcws.json +673 -173
- package/server/data/line-runs.json +26 -6
- package/server/plugins/security.ts +46 -50
- package/server/repositories/user.repository.ts +384 -414
- package/server/services/system-config.ts +7 -0
- package/server/services/user.service.ts +8 -3
- package/server/services/workshop/agents/adapters/line-spawn.ts +6 -3
- package/server/services/workshop/agents/host-tool-bridge.ts +21 -1
- package/server/services/workshop/agents/industrial-tools.ts +5 -3
- package/server/services/workshop/daq/daq-controller.ts +34 -6
- package/server/services/workshop/daq/daq-node.ts +3 -3
- package/server/services/workshop/daq/daq-runtime.ts +4 -3
- package/server/services/workshop/daq/storage/sqlite.adapter.ts +10 -5
- package/server/services/workshop/dcw/dcw-controller.ts +4 -2
- package/server/services/workshop/plugins/host.mjs +2 -1
- package/server/services/workshop/settings.ts +33 -0
- package/shared/config/schema.json +4 -0
- package/.output/public/_nuxt/2LwEn9gX.js +0 -2
- package/.output/public/_nuxt/3612gD2V.js +0 -32
- package/.output/public/_nuxt/8eIQAVlb.js +0 -1
- package/.output/public/_nuxt/Ah9qOv1m.js +0 -1
- package/.output/public/_nuxt/B7aqqzkY.js +0 -1
- package/.output/public/_nuxt/BH0Z05CS.js +0 -1
- package/.output/public/_nuxt/BJvGPTpC.js +0 -1
- package/.output/public/_nuxt/BVZjSVs2.js +0 -1
- package/.output/public/_nuxt/BVzDoF8t.js +0 -1
- package/.output/public/_nuxt/BjVLsC3M.js +0 -1
- package/.output/public/_nuxt/BnVoQ74r.js +0 -1
- package/.output/public/_nuxt/Bnp4vIAf.js +0 -1
- package/.output/public/_nuxt/Bt_HDizI.js +0 -5
- package/.output/public/_nuxt/Bu-P92Pe.js +0 -18
- package/.output/public/_nuxt/ButLXkjo.js +0 -2
- package/.output/public/_nuxt/By-LNp3k.js +0 -1
- package/.output/public/_nuxt/C-GarxYC.js +0 -1
- package/.output/public/_nuxt/CGdPdJPP.js +0 -1
- package/.output/public/_nuxt/CQiKcuoG.js +0 -14
- package/.output/public/_nuxt/CRGlf1Gb.js +0 -1
- package/.output/public/_nuxt/CS8R0_J3.js +0 -1
- package/.output/public/_nuxt/CUxV8Bw_.js +0 -1
- package/.output/public/_nuxt/Cd15nPnG2.js +0 -1
- package/.output/public/_nuxt/DNJSkm3Q.js +0 -1
- package/.output/public/_nuxt/DXK1U43I.js +0 -1
- package/.output/public/_nuxt/Dk6pq9JB2.js +0 -1
- package/.output/public/_nuxt/GP2wXyuY.js +0 -1
- package/.output/public/_nuxt/PQLnLxYe.js +0 -1
- package/.output/public/_nuxt/TownView.Bt33bo1M.css +0 -1
- package/.output/public/_nuxt/_id_.BzKMZnLe.css +0 -1
- package/.output/public/_nuxt/_id_.CbpDAWRh.css +0 -1
- package/.output/public/_nuxt/agents.BlejnOOC.css +0 -1
- package/.output/public/_nuxt/builds/meta/14df171d-89cb-43ec-ad6f-9df72d6da7f5.json +0 -1
- package/.output/public/_nuxt/channel-templates.lkqEYlWY.css +0 -1
- package/.output/public/_nuxt/daq.zZ8GR433.css +0 -1
- package/.output/public/_nuxt/dcw.C46dGiF_.css +0 -1
- package/.output/public/_nuxt/eHGLpQSg2.js +0 -1
- package/.output/public/_nuxt/logs.DaIsHWZE.css +0 -1
- package/.output/public/_nuxt/p7wSGMtc.js +0 -1
- package/.output/public/_nuxt/plugins.FTm0PcEe.css +0 -1
- package/.output/public/_nuxt/teams.B8JNbUZg.css +0 -1
- package/.output/public/_nuxt/tokens.CWOTXM-Z.css +0 -1
- package/.output/public/_nuxt/ubPfs9mQ.js +0 -1
- package/.output/public/_nuxt/workshop.B98sHiJq.css +0 -1
- package/.output/server/chunks/build/_id_-C-ewLgfl.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-Ct4Jhvl1.mjs.map +0 -1
- package/.output/server/chunks/build/agents-DSOptxXA.mjs.map +0 -1
- package/.output/server/chunks/build/channel-templates-BK0KuPOd.mjs.map +0 -1
- package/.output/server/chunks/build/daq-D9RA_uze.mjs.map +0 -1
- package/.output/server/chunks/build/dcw-BTM5YU-B.mjs.map +0 -1
- package/.output/server/chunks/build/logs-Dyk0I2I9.mjs.map +0 -1
- package/.output/server/chunks/build/pages-DR2bzczM.mjs.map +0 -1
- package/.output/server/chunks/build/plugins-DnOBIWGg.mjs.map +0 -1
- package/.output/server/chunks/build/teams-BhSKBBBM.mjs.map +0 -1
- package/.output/server/chunks/build/tokens-D_eyxmcv.mjs.map +0 -1
- package/.output/server/chunks/build/town-DPtOPRRO.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqStream-hwkhJHFU.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs.map +0 -1
- package/.output/server/chunks/build/useDeviceTwins-C6EBg9oN.mjs.map +0 -1
- package/.output/server/chunks/build/useOpsLog-DdCqKVVG.mjs.map +0 -1
- package/.output/server/chunks/build/workshop-iCzNRifn.mjs.map +0 -1
|
@@ -53,7 +53,7 @@ const hitlAnswer = async (item: AepHitlItem, confirmed: boolean): Promise<void>
|
|
|
53
53
|
await hitl.loadSnapshot()
|
|
54
54
|
}
|
|
55
55
|
catch (e) {
|
|
56
|
-
message.error(
|
|
56
|
+
message.error(apiErrorMessage(e))
|
|
57
57
|
}
|
|
58
58
|
finally {
|
|
59
59
|
hitlAnswering.value = null
|
|
@@ -54,7 +54,7 @@ const toggleEnabled = async (checked: string | number | boolean): Promise<void>
|
|
|
54
54
|
message.success(checked === true ? t('agentInspectorDrawer.k3n5z7y016') : t('agentInspectorDrawer.k1dst50d017'))
|
|
55
55
|
}
|
|
56
56
|
catch (e) {
|
|
57
|
-
message.error(
|
|
57
|
+
message.error(apiErrorMessage(e))
|
|
58
58
|
}
|
|
59
59
|
finally {
|
|
60
60
|
toggling.value = false
|
|
@@ -73,7 +73,7 @@ const removeMember = async (): Promise<void> => {
|
|
|
73
73
|
emit('removed', props.agentId)
|
|
74
74
|
}
|
|
75
75
|
catch (e) {
|
|
76
|
-
message.error(
|
|
76
|
+
message.error(apiErrorMessage(e))
|
|
77
77
|
}
|
|
78
78
|
finally {
|
|
79
79
|
removing.value = false
|
|
@@ -129,7 +129,7 @@ const send = async (): Promise<void> => {
|
|
|
129
129
|
sendText.value = ''
|
|
130
130
|
}
|
|
131
131
|
catch (e) {
|
|
132
|
-
message.error(
|
|
132
|
+
message.error(apiErrorMessage(e))
|
|
133
133
|
}
|
|
134
134
|
finally {
|
|
135
135
|
sending.value = false
|
|
@@ -115,7 +115,7 @@ const submitEditMember = async (): Promise<void> => {
|
|
|
115
115
|
editModalOpen.value = false
|
|
116
116
|
}
|
|
117
117
|
catch (err) {
|
|
118
|
-
message.error(t('agentLanesView.k3jmrw1045', { p0:
|
|
118
|
+
message.error(t('agentLanesView.k3jmrw1045', { p0: apiErrorMessage(err) }))
|
|
119
119
|
}
|
|
120
120
|
finally {
|
|
121
121
|
editSubmitting.value = false
|
|
@@ -155,7 +155,7 @@ const submitMember = async (): Promise<void> => {
|
|
|
155
155
|
memberModalOpen.value = false
|
|
156
156
|
}
|
|
157
157
|
catch (err) {
|
|
158
|
-
message.error(t('agentLanesView.k1j97j74047', { p0:
|
|
158
|
+
message.error(t('agentLanesView.k1j97j74047', { p0: apiErrorMessage(err) }))
|
|
159
159
|
}
|
|
160
160
|
finally {
|
|
161
161
|
memberSubmitting.value = false
|
|
@@ -181,7 +181,7 @@ const submitMember = async (): Promise<void> => {
|
|
|
181
181
|
memberModalOpen.value = false
|
|
182
182
|
}
|
|
183
183
|
catch (err) {
|
|
184
|
-
const text =
|
|
184
|
+
const text = apiErrorMessage(err)
|
|
185
185
|
message.error(`模板克隆失败${text.includes('LEAD_EXISTS') ? '(已有 lead,不能再添加 lead)' : `: ${text}`}`)
|
|
186
186
|
}
|
|
187
187
|
finally {
|
|
@@ -202,7 +202,7 @@ const submitMember = async (): Promise<void> => {
|
|
|
202
202
|
memberModalOpen.value = false
|
|
203
203
|
}
|
|
204
204
|
catch (err) {
|
|
205
|
-
const text =
|
|
205
|
+
const text = apiErrorMessage(err)
|
|
206
206
|
message.error(`编组部署失败${text.includes('LEAD_EXISTS') ? '(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)' : `: ${text}`}`)
|
|
207
207
|
}
|
|
208
208
|
finally {
|
|
@@ -218,7 +218,7 @@ const removeMember = async (agentId: string, name: string): Promise<void> => {
|
|
|
218
218
|
message.success(t('agentLanesView.k1n3o03a052', { p0: name }))
|
|
219
219
|
}
|
|
220
220
|
catch (err) {
|
|
221
|
-
message.error(t('agentLanesView.k13dsp10053', { p0:
|
|
221
|
+
message.error(t('agentLanesView.k13dsp10053', { p0: apiErrorMessage(err) }))
|
|
222
222
|
}
|
|
223
223
|
finally {
|
|
224
224
|
removing.value = null
|
|
@@ -234,7 +234,7 @@ const stopMember = async (agentId: string, name: string): Promise<void> => {
|
|
|
234
234
|
message.success(t('agentLanesView.kcpbv47054', { p0: name }))
|
|
235
235
|
}
|
|
236
236
|
catch (err) {
|
|
237
|
-
message.error(t('agentLanesView.k139ec5j055', { p0:
|
|
237
|
+
message.error(t('agentLanesView.k139ec5j055', { p0: apiErrorMessage(err) }))
|
|
238
238
|
}
|
|
239
239
|
finally {
|
|
240
240
|
stopping.value = null
|
|
@@ -71,7 +71,7 @@ async function doUpload(): Promise<void> {
|
|
|
71
71
|
uploadError.value = t('assetLibrary.k8nv3or016', { p0: model.name })
|
|
72
72
|
}
|
|
73
73
|
catch (err) {
|
|
74
|
-
uploadError.value =
|
|
74
|
+
uploadError.value = apiErrorMessage(err)
|
|
75
75
|
}
|
|
76
76
|
finally {
|
|
77
77
|
uploading.value = false
|
|
@@ -89,7 +89,7 @@ async function doRemove(id: string): Promise<void> {
|
|
|
89
89
|
deleteMsg.value = t('assetLibrary.k8n918k013')
|
|
90
90
|
}
|
|
91
91
|
catch (err) {
|
|
92
|
-
deleteMsg.value =
|
|
92
|
+
deleteMsg.value = apiErrorMessage(err)
|
|
93
93
|
}
|
|
94
94
|
finally {
|
|
95
95
|
deletingId.value = ''
|
|
@@ -105,7 +105,7 @@ const createAndMount = async (): Promise<void> => {
|
|
|
105
105
|
message.success(t('channelSessionList.kn89jvs028'))
|
|
106
106
|
}
|
|
107
107
|
catch (e) {
|
|
108
|
-
message.error(t('channelSessionList.k1x2th9e041', { p0:
|
|
108
|
+
message.error(t('channelSessionList.k1x2th9e041', { p0: apiErrorMessage(e) }))
|
|
109
109
|
}
|
|
110
110
|
finally {
|
|
111
111
|
mountSubmitting.value = false
|
|
@@ -127,7 +127,7 @@ const mountFromTemplate = async (): Promise<void> => {
|
|
|
127
127
|
}
|
|
128
128
|
catch (e) {
|
|
129
129
|
const err = e as { data?: { message?: string }, message?: string }
|
|
130
|
-
message.error(err
|
|
130
|
+
message.error(apiErrorMessage(err, t('channelSessionList.k97xi7u029')))
|
|
131
131
|
}
|
|
132
132
|
finally {
|
|
133
133
|
templateMounting.value = false
|
|
@@ -136,7 +136,7 @@ const mountFromTemplate = async (): Promise<void> => {
|
|
|
136
136
|
|
|
137
137
|
const unmount = (channelId: string): void => {
|
|
138
138
|
wsStore.unmountChannel(props.wsId, channelId)
|
|
139
|
-
.catch((e: { data?: { message?: string }, message?: string }) => { message.error(e
|
|
139
|
+
.catch((e: { data?: { message?: string }, message?: string }) => { message.error(apiErrorMessage(e, t('channelSessionList.k1hgfvdc030'))) })
|
|
140
140
|
}
|
|
141
141
|
|
|
142
142
|
// ===== Channel 实例设置(场景/工作目录热更新)+ 保存为模板 =====
|
|
@@ -224,7 +224,7 @@ const saveSettings = async (): Promise<void> => {
|
|
|
224
224
|
void refreshChannels()
|
|
225
225
|
}
|
|
226
226
|
catch (e) {
|
|
227
|
-
message.error(
|
|
227
|
+
message.error(apiErrorMessage(e))
|
|
228
228
|
}
|
|
229
229
|
finally {
|
|
230
230
|
settingsSaving.value = false
|
|
@@ -259,7 +259,7 @@ const saveAsTemplate = async (): Promise<void> => {
|
|
|
259
259
|
void refreshChannels()
|
|
260
260
|
}
|
|
261
261
|
catch (e) {
|
|
262
|
-
message.error(
|
|
262
|
+
message.error(apiErrorMessage(e))
|
|
263
263
|
}
|
|
264
264
|
finally {
|
|
265
265
|
saveTplSubmitting.value = false
|
|
@@ -77,7 +77,7 @@ async function removeTwin(t: { id: string, name: string }): Promise<void> {
|
|
|
77
77
|
await twins.remove(t.id)
|
|
78
78
|
}
|
|
79
79
|
catch (err) {
|
|
80
|
-
ctrlMsg.value =
|
|
80
|
+
ctrlMsg.value = apiErrorMessage(err)
|
|
81
81
|
}
|
|
82
82
|
finally {
|
|
83
83
|
busyId.value = ''
|
|
@@ -118,7 +118,7 @@ function doDcwWrite(r: DcwLiveRow): void {
|
|
|
118
118
|
void dcw.write(r.id, v).then((out) => {
|
|
119
119
|
if (!out.ok) dcwErrs[r.id] = out.message
|
|
120
120
|
}).catch((err: unknown) => {
|
|
121
|
-
dcwErrs[r.id] =
|
|
121
|
+
dcwErrs[r.id] = apiErrorMessage(err)
|
|
122
122
|
}).finally(() => {
|
|
123
123
|
dcwBusy.value = ''
|
|
124
124
|
})
|
|
@@ -150,7 +150,7 @@ const applyMove = async (taskId: string, action: 'cancel' | 'retry'): Promise<vo
|
|
|
150
150
|
revert.set(taskId, prev)
|
|
151
151
|
optimistic.value = revert
|
|
152
152
|
const err = e as { data?: { message?: string }, message?: string }
|
|
153
|
-
message.error(err
|
|
153
|
+
message.error(apiErrorMessage(err, t('taskBoardView.k1e7zwuc015')))
|
|
154
154
|
}
|
|
155
155
|
finally {
|
|
156
156
|
acting.value.delete(taskId)
|
|
@@ -72,7 +72,7 @@ const cancel = async (): Promise<void> => {
|
|
|
72
72
|
void load()
|
|
73
73
|
}
|
|
74
74
|
catch (e) {
|
|
75
|
-
message.error(
|
|
75
|
+
message.error(apiErrorMessage(e))
|
|
76
76
|
}
|
|
77
77
|
finally {
|
|
78
78
|
cancelling.value = false
|
|
@@ -90,7 +90,7 @@ const retry = async (): Promise<void> => {
|
|
|
90
90
|
void load()
|
|
91
91
|
}
|
|
92
92
|
catch (e) {
|
|
93
|
-
message.error(
|
|
93
|
+
message.error(apiErrorMessage(e))
|
|
94
94
|
}
|
|
95
95
|
finally {
|
|
96
96
|
retrying.value = false
|
|
@@ -190,7 +190,7 @@ async function saveChannelLayout(): Promise<void> {
|
|
|
190
190
|
}
|
|
191
191
|
catch (err) {
|
|
192
192
|
saveState.value = { state: 'error', at: Date.now() }
|
|
193
|
-
errorText.value =
|
|
193
|
+
errorText.value = apiErrorMessage(err)
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
/** 从场景移除频道(其 Agent 一并撤出) */
|
|
@@ -202,7 +202,7 @@ async function removeChannelFromScene(): Promise<void> {
|
|
|
202
202
|
onSelectChannel(null)
|
|
203
203
|
}
|
|
204
204
|
catch (err) {
|
|
205
|
-
errorText.value =
|
|
205
|
+
errorText.value = apiErrorMessage(err)
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
/** 边界编辑输入 → 场景即时生效(草稿) */
|
|
@@ -332,7 +332,7 @@ function onObjNameCommit(): void {
|
|
|
332
332
|
if (!name) return
|
|
333
333
|
scene3dRef.value?.renameDevice(id, name)
|
|
334
334
|
void deviceTwins.update(id, { name }).catch((err) => {
|
|
335
|
-
errorText.value =
|
|
335
|
+
errorText.value = apiErrorMessage(err)
|
|
336
336
|
})
|
|
337
337
|
}
|
|
338
338
|
/** 角色独立换模型(选中角色 → character 模型下拉即时换装 + 持久化) */
|
|
@@ -353,7 +353,7 @@ async function bindAgentModel(modelRef: string): Promise<void> {
|
|
|
353
353
|
scene3dRef.value?.swapAgentModel(agentId, modelRef)
|
|
354
354
|
}
|
|
355
355
|
catch (err) {
|
|
356
|
-
errorText.value =
|
|
356
|
+
errorText.value = apiErrorMessage(err)
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
359
|
/** 设备独立换模型(下拉选择设备模型 → 重挂 + 落库,广播后其他客户端同步) */
|
|
@@ -365,7 +365,7 @@ async function bindDeviceModel(modelRef: string): Promise<void> {
|
|
|
365
365
|
await deviceTwins.update(sel.id, { modelRef })
|
|
366
366
|
}
|
|
367
367
|
catch (err) {
|
|
368
|
-
errorText.value =
|
|
368
|
+
errorText.value = apiErrorMessage(err)
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
371
|
/** 删除选中设备实例(移除孪生 + 场景节点);两步确认:首击布防 3s,再击执行 */
|
|
@@ -384,7 +384,7 @@ function removeSelectedDevice(): void {
|
|
|
384
384
|
void scene3dRef.value?.removeDevice(sel.id)
|
|
385
385
|
.then(() => closeScale())
|
|
386
386
|
.catch((err: unknown) => {
|
|
387
|
-
errorText.value =
|
|
387
|
+
errorText.value = apiErrorMessage(err)
|
|
388
388
|
})
|
|
389
389
|
}
|
|
390
390
|
|
|
@@ -403,7 +403,7 @@ async function bindMemberModel(agentId: string, modelRef: string): Promise<void>
|
|
|
403
403
|
scene3dRef.value?.swapAgentModel(agentId, modelRef)
|
|
404
404
|
}
|
|
405
405
|
catch (err) {
|
|
406
|
-
errorText.value =
|
|
406
|
+
errorText.value = apiErrorMessage(err)
|
|
407
407
|
}
|
|
408
408
|
}
|
|
409
409
|
/** 频道管理面板 tab 切换 */
|
|
@@ -620,7 +620,7 @@ async function boot3D(): Promise<void> {
|
|
|
620
620
|
scene.hydrate(buildTownInput(), Object.values(sceneLayouts.layouts), sceneTwinPool.value)
|
|
621
621
|
syncChannelDock()
|
|
622
622
|
}).catch((err) => {
|
|
623
|
-
errorText.value = t('townView.k1hmf2ut192', { p0:
|
|
623
|
+
errorText.value = t('townView.k1hmf2ut192', { p0: apiErrorMessage(err) })
|
|
624
624
|
window.setTimeout(() => {
|
|
625
625
|
void sceneLayouts.load()
|
|
626
626
|
}, 2500)
|
|
@@ -734,7 +734,7 @@ function wireCommon(scene: CommonTownScene): void {
|
|
|
734
734
|
scene.handleTownEvent(e)
|
|
735
735
|
}
|
|
736
736
|
catch (err) {
|
|
737
|
-
errorText.value =
|
|
737
|
+
errorText.value = apiErrorMessage(err)
|
|
738
738
|
}
|
|
739
739
|
})
|
|
740
740
|
;(sceneRef as unknown as { _off?: () => void })._off = off
|
|
@@ -945,7 +945,7 @@ function bindSceneInput3D(scene: TownScene3D): void {
|
|
|
945
945
|
if (near) bindDaq(daqNodeId, near.id)
|
|
946
946
|
}
|
|
947
947
|
}).catch((err: unknown) => {
|
|
948
|
-
errorText.value =
|
|
948
|
+
errorText.value = apiErrorMessage(err)
|
|
949
949
|
})
|
|
950
950
|
}
|
|
951
951
|
return
|
|
@@ -961,13 +961,13 @@ function bindSceneInput3D(scene: TownScene3D): void {
|
|
|
961
961
|
const near = nearestDeviceTwin(world.x, world.z, 95)
|
|
962
962
|
if (near) {
|
|
963
963
|
void dcw.bindNode(dcwNodeId, near.id).catch((err: unknown) => {
|
|
964
|
-
errorText.value =
|
|
964
|
+
errorText.value = apiErrorMessage(err)
|
|
965
965
|
})
|
|
966
966
|
}
|
|
967
967
|
}
|
|
968
968
|
if (sceneRef.value) syncSceneDevices(sceneRef.value)
|
|
969
969
|
}).catch((err: unknown) => {
|
|
970
|
-
errorText.value =
|
|
970
|
+
errorText.value = apiErrorMessage(err)
|
|
971
971
|
})
|
|
972
972
|
}
|
|
973
973
|
return
|
|
@@ -1439,7 +1439,7 @@ async function createDaqFromTemplate(tpl: DaqTemplate): Promise<void> {
|
|
|
1439
1439
|
treeOpen.value[`daq:${tpl.id}`] = true
|
|
1440
1440
|
}
|
|
1441
1441
|
catch (err: unknown) {
|
|
1442
|
-
errorText.value =
|
|
1442
|
+
errorText.value = apiErrorMessage(err)
|
|
1443
1443
|
}
|
|
1444
1444
|
}
|
|
1445
1445
|
async function createDcwFromTemplate(tpl: { id: string }): Promise<void> {
|
|
@@ -1448,7 +1448,7 @@ async function createDcwFromTemplate(tpl: { id: string }): Promise<void> {
|
|
|
1448
1448
|
treeOpen.value[`dcw:${tpl.id}`] = true
|
|
1449
1449
|
}
|
|
1450
1450
|
catch (err: unknown) {
|
|
1451
|
-
errorText.value =
|
|
1451
|
+
errorText.value = apiErrorMessage(err)
|
|
1452
1452
|
}
|
|
1453
1453
|
}
|
|
1454
1454
|
/** 节点叶子拖拽(编辑模式):载荷 = server 节点 id,投放走 PATCH 落位。
|
|
@@ -1765,12 +1765,12 @@ const daqOfDevice = (deviceId: string): string[] =>
|
|
|
1765
1765
|
deviceId ? daq.nodes.filter(n => n.deviceBindingId === deviceId).map(n => n.id) : []
|
|
1766
1766
|
function bindDaq(daqId: string, deviceId: string): void {
|
|
1767
1767
|
void daq.bindNode(daqId, deviceId).catch((err: unknown) => {
|
|
1768
|
-
errorText.value =
|
|
1768
|
+
errorText.value = apiErrorMessage(err)
|
|
1769
1769
|
})
|
|
1770
1770
|
}
|
|
1771
1771
|
function unbindDaq(daqId: string): void {
|
|
1772
1772
|
void daq.bindNode(daqId, null).catch((err: unknown) => {
|
|
1773
|
-
errorText.value =
|
|
1773
|
+
errorText.value = apiErrorMessage(err)
|
|
1774
1774
|
})
|
|
1775
1775
|
}
|
|
1776
1776
|
|
|
@@ -2031,7 +2031,7 @@ function doDcwWrite(node: DcwNodeView): void {
|
|
|
2031
2031
|
void dcw.write(node.id, Number(raw)).then((out) => {
|
|
2032
2032
|
if (!out.ok) dcwWriteErrs[node.id] = out.message
|
|
2033
2033
|
}).catch((err: unknown) => {
|
|
2034
|
-
dcwWriteErrs[node.id] =
|
|
2034
|
+
dcwWriteErrs[node.id] = apiErrorMessage(err)
|
|
2035
2035
|
})
|
|
2036
2036
|
}
|
|
2037
2037
|
|
|
@@ -2063,14 +2063,14 @@ function bindDcwChoice(nodeId: string): void {
|
|
|
2063
2063
|
const devId = selected.value?.kind === 'device' ? selected.value.id : ''
|
|
2064
2064
|
if (!devId) return
|
|
2065
2065
|
void dcw.bindNode(nodeId, devId).catch((err: unknown) => {
|
|
2066
|
-
errorText.value =
|
|
2066
|
+
errorText.value = apiErrorMessage(err)
|
|
2067
2067
|
})
|
|
2068
2068
|
dcwBindPopOpen.value = false
|
|
2069
2069
|
}
|
|
2070
2070
|
|
|
2071
2071
|
function unbindDcw(dcwId: string): void {
|
|
2072
2072
|
void dcw.bindNode(dcwId, null).catch((err: unknown) => {
|
|
2073
|
-
errorText.value =
|
|
2073
|
+
errorText.value = apiErrorMessage(err)
|
|
2074
2074
|
})
|
|
2075
2075
|
}
|
|
2076
2076
|
|
|
@@ -2096,7 +2096,7 @@ function bindSelectedDcw(): void {
|
|
|
2096
2096
|
const n = selectedDcwNode.value
|
|
2097
2097
|
if (!n || !dcwBindPick.value) return
|
|
2098
2098
|
void dcw.bindNode(n.id, dcwBindPick.value).catch((err: unknown) => {
|
|
2099
|
-
errorText.value =
|
|
2099
|
+
errorText.value = apiErrorMessage(err)
|
|
2100
2100
|
})
|
|
2101
2101
|
dcwBindPick.value = ''
|
|
2102
2102
|
}
|
|
@@ -2104,7 +2104,7 @@ function unbindSelectedDcw(): void {
|
|
|
2104
2104
|
const n = selectedDcwNode.value
|
|
2105
2105
|
if (!n) return
|
|
2106
2106
|
void dcw.bindNode(n.id, null).catch((err: unknown) => {
|
|
2107
|
-
errorText.value =
|
|
2107
|
+
errorText.value = apiErrorMessage(err)
|
|
2108
2108
|
})
|
|
2109
2109
|
}
|
|
2110
2110
|
function doWriteSelectedDcw(): void {
|
|
@@ -2140,14 +2140,14 @@ function onDaqIntervalCommit(): void {
|
|
|
2140
2140
|
const n = selectedDaqNode.value
|
|
2141
2141
|
if (!n || daqIntervalDraft.value == null) return
|
|
2142
2142
|
void daq.patchNode(n.id, { intervalMs: Math.max(120, Math.min(60_000, Math.round(daqIntervalDraft.value))) }).catch((err: unknown) => {
|
|
2143
|
-
errorText.value =
|
|
2143
|
+
errorText.value = apiErrorMessage(err)
|
|
2144
2144
|
})
|
|
2145
2145
|
}
|
|
2146
2146
|
function onDaqThresholdCommit(key: 'min' | 'max' | 'warnLow' | 'warnHigh', raw: string): void {
|
|
2147
2147
|
const v = Number(raw)
|
|
2148
2148
|
if (!Number.isFinite(v)) return
|
|
2149
2149
|
void daq.patchNode(selectedDaqNode.value!.id, { [key]: key.startsWith('warn') ? v : v }).catch((err: unknown) => {
|
|
2150
|
-
errorText.value =
|
|
2150
|
+
errorText.value = apiErrorMessage(err)
|
|
2151
2151
|
})
|
|
2152
2152
|
}
|
|
2153
2153
|
|
|
@@ -84,7 +84,7 @@ export async function apiFetch<T>(opts: { base: string, path?: string, init?: Re
|
|
|
84
84
|
catch (err) {
|
|
85
85
|
const apiErr = err instanceof ApiError
|
|
86
86
|
? err
|
|
87
|
-
: new ApiError('INTERNAL_ERROR', 0,
|
|
87
|
+
: new ApiError('INTERNAL_ERROR', 0, apiErrorMessage(err))
|
|
88
88
|
const retryable = idempotent && (apiErr.code === 'NETWORK' || apiErr.status >= 500)
|
|
89
89
|
lastError = apiErr
|
|
90
90
|
if (!retryable || attempt === attempts - 1) throw apiErr
|
|
@@ -83,7 +83,7 @@ function createStore(): DeviceTwinStore {
|
|
|
83
83
|
catch (err) {
|
|
84
84
|
// 失败不再静默清空:保留旧数据 + 置错误态(apiFetch 归一化网络/HTTP/业务错误)
|
|
85
85
|
store.loaded = false
|
|
86
|
-
store.error =
|
|
86
|
+
store.error = apiErrorMessage(err)
|
|
87
87
|
}
|
|
88
88
|
finally {
|
|
89
89
|
store.__loading = null
|
|
@@ -117,7 +117,7 @@ const createStore = () => {
|
|
|
117
117
|
results.splice(0, results.length, ...(data.logs ?? []))
|
|
118
118
|
}
|
|
119
119
|
catch (err) {
|
|
120
|
-
error.list =
|
|
120
|
+
error.list = apiErrorMessage(err)
|
|
121
121
|
}
|
|
122
122
|
finally {
|
|
123
123
|
loading.list = false
|
|
@@ -132,7 +132,7 @@ const createStore = () => {
|
|
|
132
132
|
await api('', { method: 'POST', body: JSON.stringify(input) })
|
|
133
133
|
}
|
|
134
134
|
catch (err) {
|
|
135
|
-
error.post =
|
|
135
|
+
error.post = apiErrorMessage(err)
|
|
136
136
|
throw err
|
|
137
137
|
}
|
|
138
138
|
finally {
|
package/app/pages/daq/[id].vue
CHANGED
|
@@ -154,7 +154,7 @@ async function doTest(): Promise<void> {
|
|
|
154
154
|
testResult.value = await daq.testNode(nodeId.value)
|
|
155
155
|
}
|
|
156
156
|
catch (err) {
|
|
157
|
-
testResult.value = { ok: false, message:
|
|
157
|
+
testResult.value = { ok: false, message: apiErrorMessage(err) }
|
|
158
158
|
}
|
|
159
159
|
finally {
|
|
160
160
|
testing.value = false
|
package/app/pages/daq/index.vue
CHANGED
|
@@ -36,7 +36,7 @@ async function setNodeLine(id: string, e: Event): Promise<void> {
|
|
|
36
36
|
if (n) n.lineId = lineId
|
|
37
37
|
}
|
|
38
38
|
catch (err) {
|
|
39
|
-
message.error(
|
|
39
|
+
message.error(apiErrorMessage(err))
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
|
|
@@ -47,7 +47,7 @@ async function setNodeDevice(id: string, e: Event): Promise<void> {
|
|
|
47
47
|
await daq.bindNode(id, deviceId || null)
|
|
48
48
|
}
|
|
49
49
|
catch (err) {
|
|
50
|
-
message.error(
|
|
50
|
+
message.error(apiErrorMessage(err))
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -61,7 +61,7 @@ async function toggleNodeEnabled(n: { id: string, enabled: boolean, state: strin
|
|
|
61
61
|
message.success(next ? tt('daq.k1nodestart147') : tt('daq.k1nodestop146'))
|
|
62
62
|
}
|
|
63
63
|
catch (err) {
|
|
64
|
-
message.error(
|
|
64
|
+
message.error(apiErrorMessage(err))
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
@@ -135,7 +135,7 @@ async function ackOne(id: string): Promise<void> {
|
|
|
135
135
|
message.success(tt('daq.k1acked144'))
|
|
136
136
|
}
|
|
137
137
|
catch (err) {
|
|
138
|
-
message.error(
|
|
138
|
+
message.error(apiErrorMessage(err))
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
|
|
@@ -459,7 +459,7 @@ async function doTestConnection(): Promise<void> {
|
|
|
459
459
|
addTest.value = await daq.testDriver(addDriver.value, addCfg.value)
|
|
460
460
|
}
|
|
461
461
|
catch (err) {
|
|
462
|
-
addTest.value = { ok: false, message:
|
|
462
|
+
addTest.value = { ok: false, message: apiErrorMessage(err) }
|
|
463
463
|
}
|
|
464
464
|
finally {
|
|
465
465
|
addTesting.value = false
|
|
@@ -504,7 +504,7 @@ async function doAddNode(): Promise<void> {
|
|
|
504
504
|
addTest.value = null
|
|
505
505
|
}
|
|
506
506
|
catch (err) {
|
|
507
|
-
addError.value =
|
|
507
|
+
addError.value = apiErrorMessage(err)
|
|
508
508
|
}
|
|
509
509
|
finally {
|
|
510
510
|
addSaving.value = false
|
|
@@ -592,7 +592,7 @@ async function saveTpl(): Promise<void> {
|
|
|
592
592
|
resetTplForm()
|
|
593
593
|
}
|
|
594
594
|
catch (err) {
|
|
595
|
-
tplError.value =
|
|
595
|
+
tplError.value = apiErrorMessage(err)
|
|
596
596
|
}
|
|
597
597
|
finally {
|
|
598
598
|
tplSaving.value = false
|
|
@@ -609,7 +609,7 @@ async function askDelTpl(t: DaqTemplateDef): Promise<void> {
|
|
|
609
609
|
await daq.removeTemplate(t.key)
|
|
610
610
|
}
|
|
611
611
|
catch (err) {
|
|
612
|
-
tplError.value =
|
|
612
|
+
tplError.value = apiErrorMessage(err)
|
|
613
613
|
}
|
|
614
614
|
finally {
|
|
615
615
|
confirmingDel.value = ''
|