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
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 多 Harness + 自定义 LLM provider 简单任务 E2E(一个 Channel,四种引擎)。
|
|
3
|
+
* NO_PROXY='127.0.0.1,localhost' node scripts/e2e-harness-provider-task.mjs [--base http://127.0.0.1:3001]
|
|
4
|
+
*
|
|
5
|
+
* P1 provider 目录:四引擎目录均含 glm-5.3-flash(可选)
|
|
6
|
+
* P2 同 Channel 四 harness worker(omp=zhipu-coding-plan / codex=cc-switch /
|
|
7
|
+
* opencode=zhipuai-coding-plan / dsh=ustc;模型均 glm-5.3-flash)
|
|
8
|
+
* P3 简单任务×4:真实 LLM 回合执行并 complete_task → 全部 COMPLETED(可用)
|
|
9
|
+
*/
|
|
10
|
+
const BASE = (() => {
|
|
11
|
+
const i = process.argv.indexOf('--base')
|
|
12
|
+
return i > 0 ? process.argv[i + 1] : 'http://127.0.0.1:3001'
|
|
13
|
+
})()
|
|
14
|
+
const TAG = Date.now().toString(36)
|
|
15
|
+
let failures = 0
|
|
16
|
+
let passed = 0
|
|
17
|
+
const results = []
|
|
18
|
+
const check = (id, name, ok, detail = '') => {
|
|
19
|
+
console.log(` ${ok ? 'PASS' : 'FAIL'} ${id} ${name}${detail ? ` — ${detail}` : ''}`)
|
|
20
|
+
results.push({ id, name, ok, detail })
|
|
21
|
+
ok ? passed++ : failures++
|
|
22
|
+
}
|
|
23
|
+
const sleep = ms => new Promise(r => setTimeout(r, ms))
|
|
24
|
+
const api = async (method, path, { body, token } = {}, attempt = 0) => {
|
|
25
|
+
try {
|
|
26
|
+
const res = await fetch(`${BASE}${path}`, {
|
|
27
|
+
method,
|
|
28
|
+
headers: { 'content-type': 'application/json', ...(token ? { authorization: `Bearer ${token}` } : {}) },
|
|
29
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
30
|
+
})
|
|
31
|
+
return { status: res.status, ...(await res.json().catch(() => ({}))) }
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
if (attempt < 10) {
|
|
35
|
+
await sleep(3000)
|
|
36
|
+
return api(method, path, { body, token }, attempt + 1)
|
|
37
|
+
}
|
|
38
|
+
throw err
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const ENGINES = [
|
|
43
|
+
{ key: 'omp', harness: 'omp', cfg: { provider: 'zhipu-coding-plan', model: 'glm-5.3-flash' } },
|
|
44
|
+
{ key: 'codex', harness: 'codex', cfg: { model: 'glm-5.3-flash', approvalPolicy: 'never' } },
|
|
45
|
+
{ key: 'dsh', harness: 'dsh', cfg: { provider: 'ustc', model: 'glm-5.3-flash' } },
|
|
46
|
+
{ key: 'opencode', harness: 'opencode', cfg: { model: 'zhipuai-coding-plan/glm-5.3-flash' } },
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
async function main() {
|
|
50
|
+
console.log(`\n━━━ 多 Harness + provider 简单任务 E2E @ ${BASE} (tag=${TAG}) ━━━`)
|
|
51
|
+
const reg = await api('POST', '/api/users/register', { body: { email: `hp-${TAG}@test.local`, password: 'Passw0rd!123', name: `hp-${TAG}` } })
|
|
52
|
+
const token = reg.data?.token
|
|
53
|
+
if (!token) throw new Error('注册失败')
|
|
54
|
+
const auth = { token }
|
|
55
|
+
|
|
56
|
+
// ── P1 provider 目录(可选性) ──
|
|
57
|
+
for (const e of ENGINES) {
|
|
58
|
+
const r = await api('GET', `/api/workshop/harnesses/${e.harness}/providers`, auth)
|
|
59
|
+
const provs = r.data?.catalog?.providers ?? []
|
|
60
|
+
const has = provs.some(p => p.models.some(m => m.id === 'glm-5.3-flash'))
|
|
61
|
+
check(`P1.${e.key}`, `${e.harness} 目录含 glm-5.3-flash(可选)`, has, provs.map(p => p.id).join(',').slice(0, 60))
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// ── P2 同 Channel 组建(不同 harness worker + 自定义 provider/model) ──
|
|
65
|
+
const ch = (await api('POST', '/api/workshop/channels', {
|
|
66
|
+
body: {
|
|
67
|
+
name: `harness-mix-${TAG}`,
|
|
68
|
+
leadAgent: { name: `lead-${TAG}`, harness: 'mock', config: { delayMs: 60 } },
|
|
69
|
+
}, ...auth,
|
|
70
|
+
})).data
|
|
71
|
+
const channelId = ch?.channelId
|
|
72
|
+
check('P2.1', 'Channel 创建(mock lead)', Boolean(channelId))
|
|
73
|
+
const workers = {}
|
|
74
|
+
for (const e of ENGINES) {
|
|
75
|
+
const c = await api('POST', '/api/workshop/agents', {
|
|
76
|
+
body: { name: `${e.key}-${TAG}`, harness: e.harness, config: { ...e.cfg, systemPromptPrefix: '你是测试执行员:严格按任务完成,完成后立即调用 complete_task。' } }, ...auth,
|
|
77
|
+
})
|
|
78
|
+
workers[e.key] = c.data
|
|
79
|
+
check(`P2.${e.key}-tpl`, `${e.harness} 模板(provider=${e.cfg.provider ?? 'default'},model=${e.cfg.model})`, Boolean(c.data?.id))
|
|
80
|
+
const join = await api('POST', `/api/workshop/channels/${channelId}/agents`, { body: { agentId: c.data.id, role: 'worker' }, ...auth })
|
|
81
|
+
if (join.code !== 0) check(`P2.${e.key}-join`, `${e.key} 入队`, false, join.message ?? '')
|
|
82
|
+
}
|
|
83
|
+
const members = (await api('GET', `/api/workshop/channels/${channelId}/agents`, auth)).data ?? []
|
|
84
|
+
check('P2.join', '四引擎 worker 全部入队(5 成员)', members.length >= 5, `members=${members.length}`)
|
|
85
|
+
|
|
86
|
+
// ── P3 简单任务×4(真实 LLM 回合) ──
|
|
87
|
+
const tasks = {}
|
|
88
|
+
for (const e of ENGINES) {
|
|
89
|
+
const t = await api('POST', `/api/workshop/channels/${channelId}/tasks`, {
|
|
90
|
+
body: {
|
|
91
|
+
title: `smoke-${e.key}-${TAG}`,
|
|
92
|
+
parts: [{ text: '请直接汇报「 Harness 冒烟测试完成」六个字所在的环境时间,然后立即调用 complete_task。不要执行任何其它操作。' }],
|
|
93
|
+
assigneeId: workers[e.key].id,
|
|
94
|
+
}, ...auth,
|
|
95
|
+
})
|
|
96
|
+
tasks[e.key] = t.data?.task?.id ?? t.data?.id
|
|
97
|
+
}
|
|
98
|
+
check('P3.1', '四路简单任务下发', Object.values(tasks).every(Boolean))
|
|
99
|
+
|
|
100
|
+
const states = {}
|
|
101
|
+
const deadline = Date.now() + 16 * 60_000
|
|
102
|
+
while (Date.now() < deadline && Object.keys(states).length < 4) {
|
|
103
|
+
const list = await api('GET', `/api/workshop/channels/${channelId}/tasks`, auth)
|
|
104
|
+
for (const [k, id] of Object.entries(tasks)) {
|
|
105
|
+
if (states[k]) continue
|
|
106
|
+
const me = (list.data ?? []).find(x => x.id === id)
|
|
107
|
+
if (me && ['COMPLETED', 'FAILED', 'CANCELED'].includes(me.state)) states[k] = me.state
|
|
108
|
+
}
|
|
109
|
+
await sleep(6000)
|
|
110
|
+
}
|
|
111
|
+
for (const e of ENGINES) {
|
|
112
|
+
check(`P3.${e.key}`, `${e.harness}(glm-5.3-flash) 简单任务 COMPLETED`, states[e.key] === 'COMPLETED', `state=${states[e.key] ?? 'RUNNING'}`)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// ── 清理 ──
|
|
116
|
+
await api('DELETE', `/api/workshop/channels/${channelId}?purge=1`, auth).catch(() => {})
|
|
117
|
+
|
|
118
|
+
console.log(`\n━━━ 多 Harness provider E2E: ${passed} passed / ${failures} failed ━━━`)
|
|
119
|
+
if (failures) for (const r of results.filter(x => !x.ok)) console.log(` ${r.id} ${r.name} — ${r.detail}`)
|
|
120
|
+
process.exit(failures === 0 ? 0 : 1)
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
main().catch((err) => {
|
|
124
|
+
console.error('FATAL', err)
|
|
125
|
+
process.exit(1)
|
|
126
|
+
})
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { userRepository } from '../../repositories/user.repository'
|
|
2
|
+
import { defineApiHandler } from '../../utils/response'
|
|
3
|
+
|
|
4
|
+
/** GET /api/users/setup-status —— 公开:系统是否处于初始化状态。
|
|
5
|
+
* true = 无活跃管理员 → 登录门呈现"注册管理员"表单,首个注册账号自动成为 admin */
|
|
6
|
+
export default defineApiHandler(async () => {
|
|
7
|
+
return { needsSetup: !userRepository.hasActiveAdmin() }
|
|
8
|
+
})
|
|
@@ -6,15 +6,17 @@ import { getQuery, getRouterParam } from 'h3'
|
|
|
6
6
|
import { resolveUser } from '@/server/api/workshop/caller'
|
|
7
7
|
import { defineApiHandler } from '@/server/utils/response'
|
|
8
8
|
import { getDaqController } from '@/server/services/workshop/daq/daq-controller'
|
|
9
|
+
import { daqRuntimeSettings } from '@/server/services/workshop/settings'
|
|
9
10
|
|
|
10
11
|
export default defineApiHandler(async (event) => {
|
|
11
12
|
resolveUser(event)
|
|
12
13
|
const id = getRouterParam(event, 'id') ?? ''
|
|
13
14
|
const q = getQuery(event)
|
|
14
15
|
const num = (k: string): number | undefined => (q[k] != null && !Number.isNaN(Number(q[k])) ? Number(q[k]) : undefined)
|
|
15
|
-
// 时间间隔参数(bucketMs)
|
|
16
|
+
// 时间间隔参数(bucketMs):缺省与下限来自 daq.query.*(live 配置,热重载)
|
|
17
|
+
const { defaultBucketMs, minBucketMs } = daqRuntimeSettings().query
|
|
16
18
|
const rawBucket = num('bucketMs')
|
|
17
|
-
const bucketMs = rawBucket == null ?
|
|
19
|
+
const bucketMs = rawBucket == null ? defaultBucketMs : Math.max(minBucketMs, Math.min(3_600_000, Math.round(rawBucket)))
|
|
18
20
|
const points = await getDaqController().samples(id, {
|
|
19
21
|
fromMs: num('from'),
|
|
20
22
|
toMs: num('to'),
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* POST /api/workshop/plugins/:name/disable —— 停用插件(admin;热重载生效)。
|
|
3
|
+
* 统一信封:经 defineApiHandler,错误(AppError)带人话 message 供前端直出。
|
|
3
4
|
*/
|
|
4
|
-
import { defineEventHandler, createError } from 'h3'
|
|
5
5
|
import { resolveUser, requireAdmin } from '@/server/api/workshop/caller'
|
|
6
|
+
import { AppError, ErrorCodes } from '@/server/utils/errors'
|
|
6
7
|
import { pluginManifest, reloadPluginHost, setPluginEnabled } from '@/server/services/workshop/plugins/host.mjs'
|
|
8
|
+
import { defineApiHandler } from '@/server/utils/response'
|
|
7
9
|
|
|
8
|
-
export default
|
|
10
|
+
export default defineApiHandler(async (event) => {
|
|
9
11
|
const user = resolveUser(event)
|
|
10
12
|
requireAdmin(event)
|
|
11
13
|
const name = String(event.context.params?.name ?? '')
|
|
12
14
|
if (!pluginManifest().some(p => p.name === name)) {
|
|
13
|
-
throw
|
|
15
|
+
throw new AppError(404, ErrorCodes.NOT_FOUND, `插件不存在: ${name}`)
|
|
14
16
|
}
|
|
15
17
|
setPluginEnabled(name, false)
|
|
16
18
|
await reloadPluginHost()
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* POST /api/workshop/plugins/:name/enable —— 启用插件(admin;热重载生效)。
|
|
3
|
+
* 统一信封:经 defineApiHandler,错误(AppError)带人话 message 供前端直出。
|
|
3
4
|
*/
|
|
4
|
-
import { defineEventHandler, createError } from 'h3'
|
|
5
5
|
import { resolveUser, requireAdmin } from '@/server/api/workshop/caller'
|
|
6
|
+
import { AppError, ErrorCodes } from '@/server/utils/errors'
|
|
6
7
|
import { pluginManifest, reloadPluginHost, setPluginEnabled } from '@/server/services/workshop/plugins/host.mjs'
|
|
8
|
+
import { defineApiHandler } from '@/server/utils/response'
|
|
7
9
|
|
|
8
|
-
export default
|
|
10
|
+
export default defineApiHandler(async (event) => {
|
|
9
11
|
const user = resolveUser(event)
|
|
10
12
|
requireAdmin(event)
|
|
11
13
|
const name = String(event.context.params?.name ?? '')
|
|
12
14
|
if (!pluginManifest().some(p => p.name === name)) {
|
|
13
|
-
throw
|
|
15
|
+
throw new AppError(404, ErrorCodes.NOT_FOUND, `插件不存在: ${name}`)
|
|
14
16
|
}
|
|
15
17
|
setPluginEnabled(name, true)
|
|
16
18
|
await reloadPluginHost()
|
package/server/data/daqs.json
CHANGED
|
@@ -64,9 +64,9 @@
|
|
|
64
64
|
"posX": 1695,
|
|
65
65
|
"posZ": 1135,
|
|
66
66
|
"lineId": "ln-af002514",
|
|
67
|
-
"value":
|
|
67
|
+
"value": 166.4,
|
|
68
68
|
"state": "ok",
|
|
69
|
-
"lastAt": "2026-09-
|
|
69
|
+
"lastAt": "2026-09-06T02:40:31.943+08:00",
|
|
70
70
|
"createdAt": "2026-08-27T12:39:08.110Z"
|
|
71
71
|
},
|
|
72
72
|
{
|
|
@@ -308,9 +308,9 @@
|
|
|
308
308
|
"deviceBindingId": null,
|
|
309
309
|
"driverConfig": {},
|
|
310
310
|
"lineId": "ln-af002514",
|
|
311
|
-
"value":
|
|
311
|
+
"value": 313,
|
|
312
312
|
"state": "ok",
|
|
313
|
-
"lastAt": "2026-09-
|
|
313
|
+
"lastAt": "2026-09-06T02:40:31.943+08:00",
|
|
314
314
|
"createdAt": "2026-08-28T09:37:38.518Z"
|
|
315
315
|
},
|
|
316
316
|
{
|
|
@@ -330,9 +330,9 @@
|
|
|
330
330
|
"deviceBindingId": null,
|
|
331
331
|
"driverConfig": {},
|
|
332
332
|
"lineId": "ln-af002514",
|
|
333
|
-
"value":
|
|
333
|
+
"value": 168.6,
|
|
334
334
|
"state": "ok",
|
|
335
|
-
"lastAt": "2026-09-
|
|
335
|
+
"lastAt": "2026-09-06T02:40:31.943+08:00",
|
|
336
336
|
"createdAt": "2026-08-29T03:30:57.463Z"
|
|
337
337
|
},
|
|
338
338
|
{
|
|
@@ -1012,9 +1012,9 @@
|
|
|
1012
1012
|
"posX": 2395,
|
|
1013
1013
|
"posZ": 1135,
|
|
1014
1014
|
"lineId": "ln-af002514",
|
|
1015
|
-
"value":
|
|
1015
|
+
"value": 173.5,
|
|
1016
1016
|
"state": "ok",
|
|
1017
|
-
"lastAt": "2026-09-
|
|
1017
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
1018
1018
|
"createdAt": "2026-08-31T04:07:19.038Z"
|
|
1019
1019
|
},
|
|
1020
1020
|
{
|
|
@@ -3026,9 +3026,9 @@
|
|
|
3026
3026
|
"posX": 120,
|
|
3027
3027
|
"posZ": 120,
|
|
3028
3028
|
"lineId": "ln-af002514",
|
|
3029
|
-
"value": 0.
|
|
3029
|
+
"value": 0.9963,
|
|
3030
3030
|
"state": "ok",
|
|
3031
|
-
"lastAt": "2026-09-
|
|
3031
|
+
"lastAt": "2026-09-06T02:40:31.943+08:00",
|
|
3032
3032
|
"createdAt": "2026-09-03T10:17:59.182Z"
|
|
3033
3033
|
},
|
|
3034
3034
|
{
|
|
@@ -3050,9 +3050,9 @@
|
|
|
3050
3050
|
"posX": 120,
|
|
3051
3051
|
"posZ": 120,
|
|
3052
3052
|
"lineId": "ln-af002514",
|
|
3053
|
-
"value": 0.
|
|
3053
|
+
"value": 0.9759,
|
|
3054
3054
|
"state": "ok",
|
|
3055
|
-
"lastAt": "2026-09-
|
|
3055
|
+
"lastAt": "2026-09-06T02:40:31.943+08:00",
|
|
3056
3056
|
"createdAt": "2026-09-03T11:18:01.401Z"
|
|
3057
3057
|
},
|
|
3058
3058
|
{
|
|
@@ -3072,9 +3072,9 @@
|
|
|
3072
3072
|
"deviceBindingId": "dev-mthzr991-ujuad",
|
|
3073
3073
|
"driverConfig": {},
|
|
3074
3074
|
"lineId": "ln-af002514",
|
|
3075
|
-
"value": 0.
|
|
3075
|
+
"value": 0.9978,
|
|
3076
3076
|
"state": "ok",
|
|
3077
|
-
"lastAt": "2026-09-
|
|
3077
|
+
"lastAt": "2026-09-06T02:40:31.943+08:00",
|
|
3078
3078
|
"createdAt": "2026-09-03T11:34:59.332Z"
|
|
3079
3079
|
},
|
|
3080
3080
|
{
|
|
@@ -3214,9 +3214,9 @@
|
|
|
3214
3214
|
"deviceBindingId": null,
|
|
3215
3215
|
"driverConfig": {},
|
|
3216
3216
|
"lineId": "ln-1b318320",
|
|
3217
|
-
"value":
|
|
3217
|
+
"value": 167.5,
|
|
3218
3218
|
"state": "ok",
|
|
3219
|
-
"lastAt": "2026-09-
|
|
3219
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
3220
3220
|
"createdAt": "2026-09-04T05:08:10.069Z"
|
|
3221
3221
|
},
|
|
3222
3222
|
{
|
|
@@ -3749,9 +3749,9 @@
|
|
|
3749
3749
|
"jsonPath": "data.temp"
|
|
3750
3750
|
},
|
|
3751
3751
|
"lineId": "ln-6a34fbc7",
|
|
3752
|
-
"value": 59,
|
|
3752
|
+
"value": 59.5,
|
|
3753
3753
|
"state": "alarm",
|
|
3754
|
-
"lastAt": "2026-09-
|
|
3754
|
+
"lastAt": "2026-09-06T02:40:33.777+08:00",
|
|
3755
3755
|
"createdAt": "2026-09-05T05:47:00.640Z"
|
|
3756
3756
|
},
|
|
3757
3757
|
{
|
|
@@ -3774,9 +3774,9 @@
|
|
|
3774
3774
|
"jsonPath": "data.value"
|
|
3775
3775
|
},
|
|
3776
3776
|
"lineId": "ln-6a34fbc7",
|
|
3777
|
-
"value": 42.
|
|
3777
|
+
"value": 42.4,
|
|
3778
3778
|
"state": "alarm",
|
|
3779
|
-
"lastAt": "2026-09-
|
|
3779
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
3780
3780
|
"createdAt": "2026-09-05T05:47:00.697Z"
|
|
3781
3781
|
},
|
|
3782
3782
|
{
|
|
@@ -3804,9 +3804,9 @@
|
|
|
3804
3804
|
"byteOrder": "big"
|
|
3805
3805
|
},
|
|
3806
3806
|
"lineId": "ln-6a34fbc7",
|
|
3807
|
-
"value": 0.
|
|
3807
|
+
"value": 0.95,
|
|
3808
3808
|
"state": "ok",
|
|
3809
|
-
"lastAt": "2026-09-
|
|
3809
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
3810
3810
|
"createdAt": "2026-09-05T05:47:00.821Z"
|
|
3811
3811
|
},
|
|
3812
3812
|
{
|
|
@@ -3835,7 +3835,7 @@
|
|
|
3835
3835
|
"lineId": "ln-6a34fbc7",
|
|
3836
3836
|
"value": 66,
|
|
3837
3837
|
"state": "alarm",
|
|
3838
|
-
"lastAt": "2026-09-
|
|
3838
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
3839
3839
|
"createdAt": "2026-09-05T05:47:00.864Z"
|
|
3840
3840
|
},
|
|
3841
3841
|
{
|
|
@@ -3858,9 +3858,9 @@
|
|
|
3858
3858
|
"nodeId": "ns=2;s=AW.Temp"
|
|
3859
3859
|
},
|
|
3860
3860
|
"lineId": "ln-6a34fbc7",
|
|
3861
|
-
"value": 182.
|
|
3861
|
+
"value": 182.7,
|
|
3862
3862
|
"state": "warn",
|
|
3863
|
-
"lastAt": "2026-09-
|
|
3863
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
3864
3864
|
"createdAt": "2026-09-05T05:47:03.624Z"
|
|
3865
3865
|
},
|
|
3866
3866
|
{
|
|
@@ -3888,9 +3888,9 @@
|
|
|
3888
3888
|
"byteOrder": "big"
|
|
3889
3889
|
},
|
|
3890
3890
|
"lineId": "ln-6a34fbc7",
|
|
3891
|
-
"value":
|
|
3891
|
+
"value": 0.2,
|
|
3892
3892
|
"state": "alarm",
|
|
3893
|
-
"lastAt": "2026-09-
|
|
3893
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
3894
3894
|
"createdAt": "2026-09-05T05:47:03.680Z"
|
|
3895
3895
|
},
|
|
3896
3896
|
{
|
|
@@ -3959,9 +3959,9 @@
|
|
|
3959
3959
|
"jsonPath": "data.temp"
|
|
3960
3960
|
},
|
|
3961
3961
|
"lineId": "ln-419463e0",
|
|
3962
|
-
"value": 59,
|
|
3962
|
+
"value": 59.5,
|
|
3963
3963
|
"state": "alarm",
|
|
3964
|
-
"lastAt": "2026-09-
|
|
3964
|
+
"lastAt": "2026-09-06T02:40:33.777+08:00",
|
|
3965
3965
|
"createdAt": "2026-09-05T06:09:13.444Z"
|
|
3966
3966
|
},
|
|
3967
3967
|
{
|
|
@@ -3984,9 +3984,9 @@
|
|
|
3984
3984
|
"jsonPath": "data.value"
|
|
3985
3985
|
},
|
|
3986
3986
|
"lineId": "ln-419463e0",
|
|
3987
|
-
"value":
|
|
3987
|
+
"value": 43,
|
|
3988
3988
|
"state": "alarm",
|
|
3989
|
-
"lastAt": "2026-09-
|
|
3989
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
3990
3990
|
"createdAt": "2026-09-05T06:09:13.490Z"
|
|
3991
3991
|
},
|
|
3992
3992
|
{
|
|
@@ -4014,9 +4014,9 @@
|
|
|
4014
4014
|
"byteOrder": "big"
|
|
4015
4015
|
},
|
|
4016
4016
|
"lineId": "ln-419463e0",
|
|
4017
|
-
"value": 0.
|
|
4017
|
+
"value": 0.95,
|
|
4018
4018
|
"state": "ok",
|
|
4019
|
-
"lastAt": "2026-09-
|
|
4019
|
+
"lastAt": "2026-09-06T02:40:33.777+08:00",
|
|
4020
4020
|
"createdAt": "2026-09-05T06:09:13.540Z"
|
|
4021
4021
|
},
|
|
4022
4022
|
{
|
|
@@ -4045,7 +4045,7 @@
|
|
|
4045
4045
|
"lineId": "ln-419463e0",
|
|
4046
4046
|
"value": 66,
|
|
4047
4047
|
"state": "alarm",
|
|
4048
|
-
"lastAt": "2026-09-
|
|
4048
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
4049
4049
|
"createdAt": "2026-09-05T06:09:13.567Z"
|
|
4050
4050
|
},
|
|
4051
4051
|
{
|
|
@@ -4068,9 +4068,9 @@
|
|
|
4068
4068
|
"nodeId": "ns=2;s=AW.Temp"
|
|
4069
4069
|
},
|
|
4070
4070
|
"lineId": "ln-419463e0",
|
|
4071
|
-
"value": 182.
|
|
4071
|
+
"value": 182.7,
|
|
4072
4072
|
"state": "warn",
|
|
4073
|
-
"lastAt": "2026-09-
|
|
4073
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
4074
4074
|
"createdAt": "2026-09-05T06:09:14.128Z"
|
|
4075
4075
|
},
|
|
4076
4076
|
{
|
|
@@ -4098,9 +4098,9 @@
|
|
|
4098
4098
|
"byteOrder": "big"
|
|
4099
4099
|
},
|
|
4100
4100
|
"lineId": "ln-419463e0",
|
|
4101
|
-
"value":
|
|
4101
|
+
"value": 0.2,
|
|
4102
4102
|
"state": "alarm",
|
|
4103
|
-
"lastAt": "2026-09-
|
|
4103
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
4104
4104
|
"createdAt": "2026-09-05T06:09:14.173Z"
|
|
4105
4105
|
},
|
|
4106
4106
|
{
|
|
@@ -4350,9 +4350,9 @@
|
|
|
4350
4350
|
"byteOrder": "big"
|
|
4351
4351
|
},
|
|
4352
4352
|
"lineId": "ln-3548f325",
|
|
4353
|
-
"value":
|
|
4353
|
+
"value": 0.3,
|
|
4354
4354
|
"state": "alarm",
|
|
4355
|
-
"lastAt": "2026-09-
|
|
4355
|
+
"lastAt": "2026-09-06T02:40:32.727+08:00",
|
|
4356
4356
|
"createdAt": "2026-09-05T07:23:51.869Z"
|
|
4357
4357
|
},
|
|
4358
4358
|
{
|
|
@@ -4564,9 +4564,105 @@
|
|
|
4564
4564
|
"deviceBindingId": null,
|
|
4565
4565
|
"driverConfig": {},
|
|
4566
4566
|
"lineId": "ln-871ac52d",
|
|
4567
|
-
"value": 43.
|
|
4567
|
+
"value": 43.41,
|
|
4568
4568
|
"state": "ok",
|
|
4569
|
-
"lastAt": "2026-09-
|
|
4569
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
4570
4570
|
"createdAt": "2026-09-05T09:47:55.620Z"
|
|
4571
|
+
},
|
|
4572
|
+
{
|
|
4573
|
+
"id": "dn-12f70c3b",
|
|
4574
|
+
"templateRef": "daq-temp-tc",
|
|
4575
|
+
"name": "MQTT温度-mtokh78a",
|
|
4576
|
+
"driver": "mqtt",
|
|
4577
|
+
"enabled": true,
|
|
4578
|
+
"intervalMs": 1000,
|
|
4579
|
+
"publishIntervalMs": 0,
|
|
4580
|
+
"unit": "℃",
|
|
4581
|
+
"decimals": 1,
|
|
4582
|
+
"min": 150,
|
|
4583
|
+
"max": 185,
|
|
4584
|
+
"warnLow": 152.8,
|
|
4585
|
+
"warnHigh": 182.2,
|
|
4586
|
+
"deviceBindingId": null,
|
|
4587
|
+
"driverConfig": {
|
|
4588
|
+
"host": "127.0.0.1",
|
|
4589
|
+
"port": 18830,
|
|
4590
|
+
"topic": "aw/sim/temp",
|
|
4591
|
+
"jsonPath": "data.temp"
|
|
4592
|
+
},
|
|
4593
|
+
"lineId": "ln-23810e78",
|
|
4594
|
+
"value": null,
|
|
4595
|
+
"state": "offline",
|
|
4596
|
+
"lastAt": null,
|
|
4597
|
+
"createdAt": "2026-09-05T23:58:31.357+08:00"
|
|
4598
|
+
},
|
|
4599
|
+
{
|
|
4600
|
+
"id": "dn-e0cd4d25",
|
|
4601
|
+
"templateRef": "daq-temp-tc",
|
|
4602
|
+
"name": "HTTP流量-mtokh78a",
|
|
4603
|
+
"driver": "http",
|
|
4604
|
+
"enabled": true,
|
|
4605
|
+
"intervalMs": 1000,
|
|
4606
|
+
"publishIntervalMs": 0,
|
|
4607
|
+
"unit": "℃",
|
|
4608
|
+
"decimals": 1,
|
|
4609
|
+
"min": 150,
|
|
4610
|
+
"max": 185,
|
|
4611
|
+
"warnLow": 152.8,
|
|
4612
|
+
"warnHigh": 182.2,
|
|
4613
|
+
"deviceBindingId": null,
|
|
4614
|
+
"driverConfig": {
|
|
4615
|
+
"url": "http://127.0.0.1:1889/api/value",
|
|
4616
|
+
"jsonPath": "data.value"
|
|
4617
|
+
},
|
|
4618
|
+
"lineId": "ln-23810e78",
|
|
4619
|
+
"value": null,
|
|
4620
|
+
"state": "offline",
|
|
4621
|
+
"lastAt": null,
|
|
4622
|
+
"createdAt": "2026-09-05T23:58:31.450+08:00"
|
|
4623
|
+
},
|
|
4624
|
+
{
|
|
4625
|
+
"id": "dn-8d0da4c4",
|
|
4626
|
+
"templateRef": "daq-temp-tc",
|
|
4627
|
+
"name": "lx8-daq",
|
|
4628
|
+
"driver": "mock",
|
|
4629
|
+
"enabled": true,
|
|
4630
|
+
"intervalMs": 1000,
|
|
4631
|
+
"publishIntervalMs": 0,
|
|
4632
|
+
"unit": "℃",
|
|
4633
|
+
"decimals": 1,
|
|
4634
|
+
"min": 150,
|
|
4635
|
+
"max": 185,
|
|
4636
|
+
"warnLow": 152.8,
|
|
4637
|
+
"warnHigh": 182.2,
|
|
4638
|
+
"deviceBindingId": null,
|
|
4639
|
+
"driverConfig": {},
|
|
4640
|
+
"lineId": "ln-1acc1a0c",
|
|
4641
|
+
"value": 168.4,
|
|
4642
|
+
"state": "ok",
|
|
4643
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
4644
|
+
"createdAt": "2026-09-06T02:22:23.148+08:00"
|
|
4645
|
+
},
|
|
4646
|
+
{
|
|
4647
|
+
"id": "dn-36c860c8",
|
|
4648
|
+
"templateRef": "daq-temp-tc",
|
|
4649
|
+
"name": "lx8-daq",
|
|
4650
|
+
"driver": "mock",
|
|
4651
|
+
"enabled": true,
|
|
4652
|
+
"intervalMs": 1000,
|
|
4653
|
+
"publishIntervalMs": 0,
|
|
4654
|
+
"unit": "℃",
|
|
4655
|
+
"decimals": 1,
|
|
4656
|
+
"min": 150,
|
|
4657
|
+
"max": 185,
|
|
4658
|
+
"warnLow": 152.8,
|
|
4659
|
+
"warnHigh": 182.2,
|
|
4660
|
+
"deviceBindingId": null,
|
|
4661
|
+
"driverConfig": {},
|
|
4662
|
+
"lineId": "ln-917490c1",
|
|
4663
|
+
"value": 167,
|
|
4664
|
+
"state": "ok",
|
|
4665
|
+
"lastAt": "2026-09-06T02:40:33.514+08:00",
|
|
4666
|
+
"createdAt": "2026-09-06T02:24:50.532+08:00"
|
|
4571
4667
|
}
|
|
4572
4668
|
]
|
|
@@ -1363,5 +1363,33 @@
|
|
|
1363
1363
|
"color": "#35e0a0",
|
|
1364
1364
|
"description": "",
|
|
1365
1365
|
"createdAt": "2026-09-05T18:55:51.023+08:00"
|
|
1366
|
+
},
|
|
1367
|
+
{
|
|
1368
|
+
"id": "ln-23810e78",
|
|
1369
|
+
"name": "全协议产线-mtokh78a",
|
|
1370
|
+
"color": "#41c8f4",
|
|
1371
|
+
"description": "",
|
|
1372
|
+
"createdAt": "2026-09-05T23:58:29.513+08:00"
|
|
1373
|
+
},
|
|
1374
|
+
{
|
|
1375
|
+
"id": "ln-ea2ec4af",
|
|
1376
|
+
"name": "lx7",
|
|
1377
|
+
"color": "#b58cff",
|
|
1378
|
+
"description": "",
|
|
1379
|
+
"createdAt": "2026-09-06T02:21:55.267+08:00"
|
|
1380
|
+
},
|
|
1381
|
+
{
|
|
1382
|
+
"id": "ln-1acc1a0c",
|
|
1383
|
+
"name": "lx8",
|
|
1384
|
+
"color": "#ff8a5c",
|
|
1385
|
+
"description": "",
|
|
1386
|
+
"createdAt": "2026-09-06T02:22:23.135+08:00"
|
|
1387
|
+
},
|
|
1388
|
+
{
|
|
1389
|
+
"id": "ln-917490c1",
|
|
1390
|
+
"name": "lx8-mtopq0r1",
|
|
1391
|
+
"color": "#3aa0ff",
|
|
1392
|
+
"description": "",
|
|
1393
|
+
"createdAt": "2026-09-06T02:24:50.518+08:00"
|
|
1366
1394
|
}
|
|
1367
1395
|
]
|