agentworkshop 0.7.39 → 0.7.41
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 +55 -0
- package/.output/.AgentWorkShop/prompts/host-tools.json +55 -0
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/88GOowgO2.js +1 -0
- package/.output/public/_nuxt/{BNT8gYU92.js → BC9wjTJK2.js} +2 -2
- package/.output/public/_nuxt/{CY9LbPCI.js → BN16aRdQ.js} +1 -1
- package/.output/public/_nuxt/BWVhZntO.js +1 -0
- package/.output/public/_nuxt/{HBLJ-wei.js → BXxH0UQE.js} +1 -1
- package/.output/public/_nuxt/{zIGh7R49.js → BneN7fbu.js} +1 -1
- package/.output/public/_nuxt/BsROmY89.js +1 -0
- package/.output/public/_nuxt/{DUrecWPx.js → C0ZrS1KL.js} +2 -2
- package/.output/public/_nuxt/{C_OLzD09.js → C4oW1HsE.js} +1 -1
- package/.output/public/_nuxt/{CUDwzgLV.js → C4s_niy-.js} +9 -9
- package/.output/public/_nuxt/CFxtLwjp.js +1 -0
- package/.output/public/_nuxt/{Cec0Ua3F.js → CS50LB_l.js} +1 -1
- package/.output/public/_nuxt/CssgYAAL2.js +1 -0
- package/.output/public/_nuxt/D6mbFA-a.js +1 -0
- package/.output/public/_nuxt/D98NH8kG.js +1 -0
- package/.output/public/_nuxt/DGIuvyRN2.js +1 -0
- package/.output/public/_nuxt/DGbd-UiG.js +1 -0
- package/.output/public/_nuxt/{CojCTLKD.js → DGj-WEBg.js} +1 -1
- package/.output/public/_nuxt/{DDShH71m.js → DS8qj8EL.js} +1 -1
- package/.output/public/_nuxt/DTFCy6h-.js +1 -0
- package/.output/public/_nuxt/{DrYV5i68.js → DUjW5Yq5.js} +1 -1
- package/.output/public/_nuxt/{45zuyAso.js → D_OTvQza.js} +1 -1
- package/.output/public/_nuxt/Dap5PmTL.js +2 -0
- package/.output/public/_nuxt/Dqw1lpr-.js +1 -0
- package/.output/public/_nuxt/DvLxILQP.js +1 -0
- package/.output/public/_nuxt/IREZ1eC2.js +1 -0
- package/.output/public/_nuxt/TownView.f-YOdXRs.css +1 -0
- package/.output/public/_nuxt/_id_.D9ymtHB5.css +1 -0
- package/.output/public/_nuxt/_id_.jf-_8E_c.css +1 -0
- package/.output/public/_nuxt/_wsId_.B4WiqkIS.css +1 -0
- package/.output/public/_nuxt/agents.ZD0rVdHE.css +1 -0
- package/.output/public/_nuxt/aml.BN8ZEW4h.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/78a295bb-2072-48a4-8b46-6d545fdae743.json +1 -0
- package/.output/public/_nuxt/ca4TJ3Op.js +1 -0
- package/.output/public/_nuxt/channel-templates.BOtahzPi.css +1 -0
- package/.output/public/_nuxt/daq.DjSgY94l.css +1 -0
- package/.output/public/_nuxt/dcw.8Y7FqCVN.css +1 -0
- package/.output/public/_nuxt/default.J32SgqFY.css +1 -0
- package/.output/public/_nuxt/entry.bdm0tv6M.css +1 -0
- package/.output/public/_nuxt/eqq3wWQF.js +18 -0
- package/.output/public/_nuxt/logs.BpKzmKsh.css +1 -0
- package/.output/public/_nuxt/monitor.D9pe7qN6.css +1 -0
- package/.output/public/_nuxt/pages.D7aSDlUI.css +1 -0
- package/.output/public/_nuxt/permissions.DwTVlFe6.css +1 -0
- package/.output/public/_nuxt/plugins.sb4nDGqr.css +1 -0
- package/.output/public/_nuxt/{Cbq-mryP.js → qr6R6Ha1.js} +1 -1
- package/.output/public/_nuxt/settings.BTgR-NiE.css +1 -0
- package/.output/public/_nuxt/teams.CxnxKVVs.css +1 -0
- package/.output/public/_nuxt/tokens.BFY7qv4f.css +1 -0
- package/.output/public/_nuxt/{town.DKIAhKnx.css → town.BBXZmeoP.css} +1 -1
- package/.output/public/_nuxt/users.DLgZ1D0h.css +1 -0
- package/.output/public/_nuxt/workshop.CR_QzeAN.css +1 -0
- package/.output/public/_nuxt/{BzHEilTt.js → xh3_vYcu.js} +1 -1
- package/.output/public/_nuxt/yF0aYMF1.js +4 -0
- package/.output/server/chunks/_/entity.mjs.map +1 -1
- package/.output/server/chunks/_/nitro.mjs +2355 -1362
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/build/{TownView-jVazYOjN.mjs → TownView--otsnr_7.mjs} +290 -208
- package/.output/server/chunks/build/TownView--otsnr_7.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-CfVosNg3.mjs → _id_-Brv-JSvr.mjs} +142 -141
- package/.output/server/chunks/build/_id_-Brv-JSvr.mjs.map +1 -0
- package/.output/server/chunks/build/{_id_-Hwr4rZpr.mjs → _id_-D9pl1OZy.mjs} +38 -36
- package/.output/server/chunks/build/_id_-D9pl1OZy.mjs.map +1 -0
- package/.output/server/chunks/build/{_wsId_-BVg3bB77.mjs → _wsId_-BASfDf0s.mjs} +295 -261
- package/.output/server/chunks/build/{_wsId_-BVg3bB77.mjs.map → _wsId_-BASfDf0s.mjs.map} +1 -1
- package/.output/server/chunks/build/{agents-Bvin73QY.mjs → agents-CLQqJF2y.mjs} +21 -27
- package/.output/server/chunks/build/agents-CLQqJF2y.mjs.map +1 -0
- package/.output/server/chunks/build/{aml-BCSJCdX7.mjs → aml-_7FdFL2p.mjs} +109 -109
- package/.output/server/chunks/build/{aml-BCSJCdX7.mjs.map → aml-_7FdFL2p.mjs.map} +1 -1
- package/.output/server/chunks/build/api-error-dul30BYQ.mjs.map +1 -1
- package/.output/server/chunks/build/{channel-templates-BTq8570n.mjs → channel-templates-p6SZNjlM.mjs} +19 -19
- package/.output/server/chunks/build/{channel-templates-BTq8570n.mjs.map → channel-templates-p6SZNjlM.mjs.map} +1 -1
- package/.output/server/chunks/build/{daq-C03Uu5UE.mjs → daq-DkMvD8sg.mjs} +193 -126
- package/.output/server/chunks/build/daq-DkMvD8sg.mjs.map +1 -0
- package/.output/server/chunks/build/{dcw-6vEYVeje.mjs → dcw-C1jgVJkO.mjs} +46 -46
- package/.output/server/chunks/build/{dcw-6vEYVeje.mjs.map → dcw-C1jgVJkO.mjs.map} +1 -1
- package/.output/server/chunks/build/{default-CZmZFpqH.mjs → default-BE4r0FZN.mjs} +152 -58
- package/.output/server/chunks/build/{default-CZmZFpqH.mjs.map → default-BE4r0FZN.mjs.map} +1 -1
- package/.output/server/chunks/build/{logs-B-xhuqln.mjs → logs--dByNyhw.mjs} +35 -35
- package/.output/server/chunks/build/{logs-B-xhuqln.mjs.map → logs--dByNyhw.mjs.map} +1 -1
- package/.output/server/chunks/build/{monitor-CyfDt4nR.mjs → monitor-C0okQaXz.mjs} +33 -33
- package/.output/server/chunks/build/{monitor-CyfDt4nR.mjs.map → monitor-C0okQaXz.mjs.map} +1 -1
- package/.output/server/chunks/build/{pages-BO7yZsXA.mjs → pages-B0bUWnC6.mjs} +35 -19
- package/.output/server/chunks/build/pages-B0bUWnC6.mjs.map +1 -0
- package/.output/server/chunks/build/{permissions-B52oOmaO.mjs → permissions-68SsNjex.mjs} +12 -12
- package/.output/server/chunks/build/{permissions-B52oOmaO.mjs.map → permissions-68SsNjex.mjs.map} +1 -1
- package/.output/server/chunks/build/{plugins-CUWmMdyt.mjs → plugins-lGlUr1lj.mjs} +17 -17
- package/.output/server/chunks/build/{plugins-CUWmMdyt.mjs.map → plugins-lGlUr1lj.mjs.map} +1 -1
- package/.output/server/chunks/build/{settings-DoQ2Oq3P.mjs → settings-Ddd1qx2Z.mjs} +50 -47
- package/.output/server/chunks/build/settings-Ddd1qx2Z.mjs.map +1 -0
- package/.output/server/chunks/build/{teams-2kz3CusY.mjs → teams-MEDLZdMn.mjs} +38 -34
- package/.output/server/chunks/build/teams-MEDLZdMn.mjs.map +1 -0
- package/.output/server/chunks/build/{tokens-BbWLqtVz.mjs → tokens-C7fTM5C2.mjs} +14 -14
- package/.output/server/chunks/build/{tokens-BbWLqtVz.mjs.map → tokens-C7fTM5C2.mjs.map} +1 -1
- package/.output/server/chunks/build/{town-BOl6hs9B.mjs → town-CoQdblbZ.mjs} +38 -12
- package/.output/server/chunks/build/town-CoQdblbZ.mjs.map +1 -0
- package/.output/server/chunks/build/{useDaqStream-CIBaiGAl.mjs → useDaqStream-DfCFpb3p.mjs} +9 -3
- package/.output/server/chunks/build/useDaqStream-DfCFpb3p.mjs.map +1 -0
- package/.output/server/chunks/build/{useDcwStream-CBbiYnWe.mjs → useDcwStream-UPiX-3iO.mjs} +11 -2
- package/.output/server/chunks/build/useDcwStream-UPiX-3iO.mjs.map +1 -0
- package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs +49 -0
- package/.output/server/chunks/build/useResponsive-BKDMGTHs.mjs.map +1 -0
- package/.output/server/chunks/build/{users-fohSmF-J.mjs → users-Cfd5-l2-.mjs} +6 -6
- package/.output/server/chunks/build/{users-fohSmF-J.mjs.map → users-Cfd5-l2-.mjs.map} +1 -1
- package/.output/server/chunks/build/{workshop-DX5-ldc4.mjs → workshop-BL5bhfs0.mjs} +15 -15
- package/.output/server/chunks/build/{workshop-DX5-ldc4.mjs.map → workshop-BL5bhfs0.mjs.map} +1 -1
- package/.output/server/chunks/build/{workspaces-BuydxM-3.mjs → workspaces-Bgz5Ekwp.mjs} +18 -3
- package/.output/server/chunks/build/workspaces-Bgz5Ekwp.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/config-groups/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +6 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/aml/datasets/_id_.get.mjs.map +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 +3 -3
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +3 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +8 -6
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +5 -5
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +14 -4
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +4 -4
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +4 -3
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +31 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -0
- 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_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +32 -0
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +34 -0
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +34 -0
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +5 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs +3 -3
- package/.output/server/chunks/virtual/entry.mjs +51 -25
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +203 -39
- package/README.md +739 -591
- package/app/app.vue +9 -3
- package/app/assets/css/main.css +517 -7
- package/app/components/AppHeader.vue +98 -7
- package/app/components/AppSidebar.vue +117 -11
- package/app/components/AwChart.vue +2 -1
- package/app/components/workshop/AgentInspectorDrawer.vue +6 -6
- package/app/components/workshop/AgentLanesView.vue +52 -1
- package/app/components/workshop/AssetLibrary.vue +4 -2
- package/app/components/workshop/ChannelSessionList.vue +4 -2
- package/app/components/workshop/Composer.vue +96 -0
- package/app/components/workshop/DaqNodeRow.vue +19 -0
- package/app/components/workshop/DaqTemplateIcon.vue +33 -0
- package/app/components/workshop/DeviceTwinPanel.vue +37 -35
- package/app/components/workshop/EventBlock.vue +3 -3
- package/app/components/workshop/InspectorPanel.vue +47 -11
- package/app/components/workshop/LiveAgentBar.vue +34 -0
- package/app/components/workshop/TaskBoardView.vue +83 -33
- package/app/components/workshop/TranscriptTimeline.vue +56 -0
- package/app/components/workshop/blocks/ClusterError.vue +1 -1
- package/app/components/workshop/blocks/ClusterRoute.vue +3 -1
- package/app/components/workshop/blocks/ClusterStatus.vue +2 -2
- package/app/components/workshop/blocks/ClusterStream.vue +8 -2
- package/app/components/workshop/town/ModelPreview3D.vue +1 -1
- package/app/components/workshop/town/TownView.vue +507 -82
- package/app/composables/useResponsive.ts +88 -0
- package/app/composables/useRouteMeta.ts +3 -0
- package/app/composables/workshop/useDaqStream.ts +7 -4
- package/app/composables/workshop/useDcwStream.ts +8 -2
- package/app/composables/workshop/useVisibleInterval.ts +2 -2
- package/app/composables/workshop/useWorkshopApi.ts +1 -1
- package/app/layouts/default.vue +46 -2
- package/app/pages/aml/index.vue +712 -616
- package/app/pages/daq/[id].vue +12 -7
- package/app/pages/daq/index.vue +216 -13
- package/app/pages/dcw/[id].vue +117 -32
- package/app/pages/dcw/index.vue +83 -23
- package/app/pages/index.vue +35 -1
- package/app/pages/logs/index.vue +147 -13
- package/app/pages/monitor.vue +56 -12
- package/app/pages/permissions/index.vue +34 -0
- package/app/pages/plugins/index.vue +35 -4
- package/app/pages/settings.vue +90 -21
- package/app/pages/tokens.vue +23 -0
- package/app/pages/town.vue +50 -5
- package/app/pages/users.vue +23 -0
- package/app/pages/workshop/agents.vue +92 -2
- package/app/pages/workshop/channel-templates.vue +53 -0
- package/app/pages/workshop/index.vue +14 -0
- package/app/pages/workshop/teams.vue +66 -6
- package/app/pages/workshop/w/[wsId].vue +202 -14
- package/app/plugins/aw-plugins.client.ts +13 -8
- package/app/stores/app.ts +33 -1
- package/app/stores/workshop/user.ts +1 -1
- package/app/stores/workshop/workspaces.ts +18 -2
- package/app/utils/api-error.ts +1 -1
- package/cli/commands/build.mjs +8 -1
- package/docker-compose.yml +6 -0
- package/docs/cli.en.md +2 -2
- package/docs/cli.md +2 -2
- package/docs/plugins.en.md +33 -1
- package/docs/plugins.md +29 -1
- package/docs/sdk.en.md +1 -1
- package/docs/sdk.md +1 -1
- package/i18n/locales/en.ts +2 -0
- package/i18n/locales/zh-CN.ts +2 -0
- package/nuxt.config.ts +31 -0
- package/package.json +11 -2
- package/scripts/_dbg-param-map-e2e.ts +242 -0
- package/scripts/_dbg-param-map-rest-smoke.mjs +73 -0
- package/scripts/_dbg-param-real-scenario.mjs +153 -0
- package/scripts/_loop-biax-campaign.mjs +124 -0
- package/scripts/api-live-e2e.mjs +40 -8
- package/scripts/capture-walkthrough.mjs +232 -0
- package/scripts/render-walkthrough-figure.mjs +46 -0
- package/scripts/seed-walkthrough-fixture.mjs +143 -0
- package/scripts/test-plugin-hardening.mjs +8 -0
- package/scripts/test-serial-bridge.mjs +418 -0
- package/scripts/ui/admin-shots.mjs +46 -0
- package/scripts/ui/audit-layout.mjs +301 -0
- package/scripts/ui/bump-microfont.mjs +39 -0
- package/scripts/ui/e2e-interactive.mjs +328 -0
- package/scripts/ui/lib.mjs +198 -0
- package/scripts/ui/linkcheck2.mjs +37 -0
- package/scripts/ui/live-render-check.mjs +72 -0
- package/scripts/ui/md-lint.mjs +80 -0
- package/scripts/ui/perf-audit.mjs +132 -0
- package/scripts/ui/readme-assets.mjs +30 -0
- package/scripts/ui/readme-shots.mjs +42 -0
- package/scripts/ui/record.mjs +225 -0
- package/scripts/ui/seed-admin.mjs +68 -0
- package/scripts/ui/seed-demo.mjs +83 -0
- package/scripts/ui/seed-industrial-demo.mjs +171 -0
- package/scripts/ui/shot-hero.mjs +25 -0
- package/scripts/ui/shots.mjs +75 -0
- package/scripts/ui/sim-ui-shot.mjs +16 -0
- package/scripts/ui/verify-nav.mjs +51 -0
- package/scripts/ui/verify-responsive.mjs +285 -0
- package/server/api/system/config-groups/[id].patch.ts +1 -1
- package/server/api/system/config-groups/index.post.ts +1 -1
- package/server/api/system/settings/events.get.ts +1 -1
- package/server/api/system/settings/index.patch.ts +1 -1
- package/server/api/workshop/agent-tools/invoke.post.ts +16 -2
- package/server/api/workshop/aml/datasets/[id].get.ts +8 -1
- package/server/api/workshop/daq/index.get.ts +3 -1
- package/server/api/workshop/daq/infra/reconnect.post.ts +1 -1
- package/server/api/workshop/daq/templates/[key].delete.ts +1 -0
- package/server/api/workshop/daq/templates/[key].patch.ts +1 -0
- package/server/api/workshop/daq/templates/index.post.ts +1 -0
- package/server/api/workshop/dcw/[id]/write.post.ts +10 -2
- package/server/api/workshop/dcw/[id].delete.ts +5 -2
- package/server/api/workshop/dcw/index.get.ts +5 -0
- package/server/api/workshop/dcw/lines/[id].patch.ts +1 -1
- package/server/api/workshop/dcw/params/[id]/read.post.ts +17 -0
- package/server/api/workshop/dcw/params/[id]/write.post.ts +21 -0
- package/server/api/workshop/dcw/params/[id].delete.ts +19 -0
- package/server/api/workshop/dcw/params/[id].patch.ts +23 -0
- package/server/api/workshop/dcw/params/index.get.ts +27 -0
- package/server/api/workshop/dcw/params/index.post.ts +25 -0
- package/server/api/workshop/permissions/index.get.ts +3 -1
- package/server/plugins/aw-plugins.ts +23 -10
- package/server/plugins/dev-stability-guard.ts +3 -1
- package/server/plugins/system-config.ts +6 -1
- package/server/plugins-builtin/serial-bridge/client.mjs +210 -0
- package/server/plugins-builtin/serial-bridge/drivers.mjs +409 -0
- package/server/plugins-builtin/serial-bridge/i18n.json +62 -0
- package/server/plugins-builtin/serial-bridge/index.mjs +247 -0
- package/server/plugins-builtin/serial-bridge/lib.mjs +208 -0
- package/server/plugins-builtin/serial-bridge/rtu.mjs +168 -0
- package/server/services/system-config.ts +28 -9
- package/server/services/workshop/agents/adapters/one-shot-cli-agent.ts +2 -1
- package/server/services/workshop/agents/agent-interface.ts +8 -6
- package/server/services/workshop/agents/base-agent.ts +18 -4
- package/server/services/workshop/agents/claude-agent.ts +7 -3
- package/server/services/workshop/agents/codex-agent.ts +3 -3
- package/server/services/workshop/agents/dsh-agent.ts +3 -3
- package/server/services/workshop/agents/goose-agent.ts +0 -1
- package/server/services/workshop/agents/harness-terminal.ts +14 -1
- package/server/services/workshop/agents/hermes-agent.ts +4 -2
- package/server/services/workshop/agents/host-tool-bridge.ts +5 -1
- package/server/services/workshop/agents/industrial-context.ts +4 -1
- package/server/services/workshop/agents/industrial-tools.ts +164 -6
- package/server/services/workshop/agents/omp-agent.ts +15 -9
- package/server/services/workshop/agents/opencode-agent.ts +47 -21
- package/server/services/workshop/agents/qwen-agent.ts +10 -5
- package/server/services/workshop/aml/entity.ts +3 -1
- package/server/services/workshop/aml/python-runtime.ts +3 -2
- package/server/services/workshop/daq/bus/mqtt.adapter.ts +8 -4
- package/server/services/workshop/daq/daq-controller.ts +25 -5
- package/server/services/workshop/daq/daq-runtime.ts +5 -3
- package/server/services/workshop/daq/drivers.ts +141 -11
- package/server/services/workshop/daq/host-ports.ts +3 -2
- package/server/services/workshop/daq/storage/timescale.adapter.ts +3 -1
- package/server/services/workshop/db/channel.repo.ts +4 -0
- package/server/services/workshop/db/ops.repo.ts +5 -2
- package/server/services/workshop/db/retention.ts +8 -3
- package/server/services/workshop/dcw/dcw-controller.ts +147 -16
- package/server/services/workshop/dcw/dcw-product.repo.ts +38 -1
- package/server/services/workshop/dcw/dcw-runtime.ts +3 -2
- package/server/services/workshop/dcw/drivers.ts +90 -4
- package/server/services/workshop/dcw/param-conversion.ts +78 -0
- package/server/services/workshop/dcw/param-limits.ts +142 -0
- package/server/services/workshop/dcw/param-map.repo.ts +305 -0
- package/server/services/workshop/dcw/plugin-bridge.ts +45 -0
- package/server/services/workshop/dcw/recipe-rollback-manager.ts +13 -7
- package/server/services/workshop/plugins/host.mjs +30 -0
- package/server/services/workshop/runtime/agent-runtime.ts +4 -0
- package/server/services/workshop/runtime/manager.ts +9 -2
- package/server/services/workshop/settings.ts +4 -2
- package/server/types/pg.d.ts +49 -0
- package/server/utils/stability-severity.ts +13 -2
- package/shared/config/groups.mjs +22 -1
- package/shared/config/home.d.mts +28 -0
- package/shared/daq-protocol.ts +15 -0
- package/shared/dcw-protocol.ts +136 -0
- package/uno.config.ts +12 -1
- package/.output/public/_nuxt/8NMOXZOV.js +0 -1
- package/.output/public/_nuxt/BFkgkW8u.js +0 -4
- package/.output/public/_nuxt/C5gUkRwn.js +0 -1
- package/.output/public/_nuxt/CM12FuB42.js +0 -1
- package/.output/public/_nuxt/CZiw7sEV.js +0 -1
- package/.output/public/_nuxt/Cc_9VzD42.js +0 -1
- package/.output/public/_nuxt/CdPzkOMV.js +0 -1
- package/.output/public/_nuxt/CmsOtOAA2.js +0 -1
- package/.output/public/_nuxt/D1YDxZpZ.js +0 -1
- package/.output/public/_nuxt/D20Yamr4.js +0 -1
- package/.output/public/_nuxt/DAe0h2MB.js +0 -1
- package/.output/public/_nuxt/DmqknNvV.js +0 -18
- package/.output/public/_nuxt/DnUuIR83.js +0 -1
- package/.output/public/_nuxt/S_fVQwJK.js +0 -1
- package/.output/public/_nuxt/TownView.0oLiQgTC.css +0 -1
- package/.output/public/_nuxt/_id_.D-SYuyZb.css +0 -1
- package/.output/public/_nuxt/_id_.hma_BU6T.css +0 -1
- package/.output/public/_nuxt/_wsId_.B12v3PhY.css +0 -1
- package/.output/public/_nuxt/agents.BV70ioCv.css +0 -1
- package/.output/public/_nuxt/ahgEJu2R.js +0 -1
- package/.output/public/_nuxt/aml.COEKNNqK.css +0 -1
- package/.output/public/_nuxt/builds/meta/4457d63f-0866-4cea-b320-04a321f24795.json +0 -1
- package/.output/public/_nuxt/channel-templates.C-M5nKcC.css +0 -1
- package/.output/public/_nuxt/daq.B3265ZDn.css +0 -1
- package/.output/public/_nuxt/dcw.DLYZqEhT.css +0 -1
- package/.output/public/_nuxt/default.BXI_fZUi.css +0 -1
- package/.output/public/_nuxt/entry.BB-Eeh-J.css +0 -1
- package/.output/public/_nuxt/logs.CqFyMrJw.css +0 -1
- package/.output/public/_nuxt/monitor.B--1dPzs.css +0 -1
- package/.output/public/_nuxt/pages.ooEzrMm9.css +0 -1
- package/.output/public/_nuxt/permissions.B1pjGChZ.css +0 -1
- package/.output/public/_nuxt/plugins.5e5chZ67.css +0 -1
- package/.output/public/_nuxt/pz2JDAM7.js +0 -2
- package/.output/public/_nuxt/settings.Dm3M0RLy.css +0 -1
- package/.output/public/_nuxt/teams.BC75EGnR.css +0 -1
- package/.output/public/_nuxt/tokens.xRb1fSPU.css +0 -1
- package/.output/public/_nuxt/users.CXnP2E08.css +0 -1
- package/.output/public/_nuxt/workshop.Jk5HxWPE.css +0 -1
- package/.output/server/chunks/build/TownView-jVazYOjN.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-CfVosNg3.mjs.map +0 -1
- package/.output/server/chunks/build/_id_-Hwr4rZpr.mjs.map +0 -1
- package/.output/server/chunks/build/agents-Bvin73QY.mjs.map +0 -1
- package/.output/server/chunks/build/daq-C03Uu5UE.mjs.map +0 -1
- package/.output/server/chunks/build/pages-BO7yZsXA.mjs.map +0 -1
- package/.output/server/chunks/build/settings-DoQ2Oq3P.mjs.map +0 -1
- package/.output/server/chunks/build/teams-2kz3CusY.mjs.map +0 -1
- package/.output/server/chunks/build/town-BOl6hs9B.mjs.map +0 -1
- package/.output/server/chunks/build/useDaqStream-CIBaiGAl.mjs.map +0 -1
- package/.output/server/chunks/build/useDcwStream-CBbiYnWe.mjs.map +0 -1
- package/.output/server/chunks/build/workspaces-BuydxM-3.mjs.map +0 -1
- /package/.output/public/_nuxt/{36oeS8_R2.js → 36oeS8_R.js} +0 -0
- /package/.output/public/_nuxt/{CYWVXZTS.js → CYWVXZTS2.js} +0 -0
package/README-zh.md
CHANGED
|
@@ -1,53 +1,103 @@
|
|
|
1
1
|
<div align="center">
|
|
2
2
|
|
|
3
|
-
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/hero.png" alt="AgentWorkShop
|
|
3
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/hero.png" alt="AgentWorkShop —— 让 Agent 团队运行真实产线" width="100%" />
|
|
4
|
+
|
|
5
|
+
<br />
|
|
4
6
|
|
|
5
7
|
# AgentWorkShop
|
|
6
8
|
|
|
7
9
|
**AI Agent 团队与产线在此交汇。**
|
|
8
10
|
|
|
11
|
+
[](https://github.com/kingdol666/AgentWorkShop)
|
|
12
|
+
[](https://github.com/kingdol666/AgentWorkShop)
|
|
13
|
+
[](https://github.com/kingdol666/AgentWorkShop/releases)
|
|
14
|
+
[](https://github.com/kingdol666/AgentWorkShop/stargazers)
|
|
15
|
+
[](https://github.com/kingdol666/AgentWorkShop/commits)
|
|
16
|
+
[](https://github.com/kingdol666/AgentWorkShop/issues)
|
|
17
|
+
[](./LICENSE)
|
|
18
|
+
|
|
9
19
|
[](https://nuxt.com)
|
|
10
20
|
[](https://vuejs.org)
|
|
11
21
|
[](https://www.typescriptlang.org)
|
|
12
22
|
[](https://nodejs.org)
|
|
13
|
-
[](https://nodejs.org/api/sqlite.html)
|
|
24
|
+
[](./docs/site/guide/daq-protocols.md)
|
|
25
|
+
[](./docs/plugins.md)
|
|
26
|
+
[](https://kingdol666.github.io/AgentWorkShop)
|
|
27
|
+
[](https://github.com/kingdol666/AgentWorkShop/pulls)
|
|
28
|
+
|
|
29
|
+
**[English](./README.md)** · **[在线文档](https://kingdol666.github.io/AgentWorkShop)** · **[版本发布](https://github.com/kingdol666/AgentWorkShop/releases)** · **[更新日志](./changelog.md)** · **[插件 API](./docs/plugins.md)** · **[SDK](./docs/sdk.md)**
|
|
15
30
|
|
|
16
|
-
|
|
31
|
+
<sub><b>v0.7.41</b> · 14 个执行引擎 · 6 种现场协议(5 内置 + 串口插件) · 99 个运行时设置项 · 双语文档(简体中文 / English)</sub>
|
|
17
32
|
|
|
18
|
-
|
|
33
|
+
<br />
|
|
19
34
|
|
|
20
35
|
*一个配置驱动的平台:**AI Agent 团队**与**工业数字孪生**共享同一运行时——Agent 查询真实遥测、经人工审批的写控回路下发监督设定值,每个事件实时推送到 3D 孪生。*
|
|
21
36
|
|
|
22
37
|
</div>
|
|
23
38
|
|
|
24
|
-
>
|
|
39
|
+
> [!IMPORTANT]
|
|
40
|
+
> **定位声明:监督层。** AgentWorkShop 是面向产线管理、数字孪生、数采与 Agent 编排的**监督层**(SCADA 同位)平台,运行在**秒级软实时**档位。
|
|
41
|
+
> 它**不是**硬实时控制器:任何时序关键回路(**< 10 ms**、联锁、安全、伺服)**必须在 PLC 内实现**。本平台下发的设定值均为建议性——产线侧逻辑可否决。
|
|
25
42
|
|
|
26
43
|
---
|
|
27
44
|
|
|
28
|
-
|
|
45
|
+
<table>
|
|
46
|
+
<tr>
|
|
47
|
+
<td width="33%" valign="top">
|
|
29
48
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
49
|
+
**图例索引**
|
|
50
|
+
|
|
51
|
+
`图 01` 闭环全流程<br/>
|
|
52
|
+
`图 02` 数采中心<br/>
|
|
53
|
+
`图 03` 产线运营<br/>
|
|
54
|
+
`图 04` 数字孪生<br/>
|
|
55
|
+
`图 05` 仪表盘<br/>
|
|
56
|
+
`图 06` 自适应布局
|
|
57
|
+
|
|
58
|
+
</td>
|
|
59
|
+
<td width="33%" valign="top">
|
|
60
|
+
|
|
61
|
+
**快速跳转**
|
|
62
|
+
|
|
63
|
+
[这是什么?](#这是什么) · [特性总览](#特性总览)<br/>
|
|
64
|
+
[界面一览](#界面一览) · [设计架构](#设计架构)<br/>
|
|
65
|
+
[快速开始](#快速开始) · [配置与 CLI](#配置与-cli--真正的配置驱动)<br/>
|
|
66
|
+
[工业栈详解](#工业栈详解) · [使用说明](#使用说明)<br/>
|
|
67
|
+
[端到端验证](#端到端验证) · [项目结构](#项目结构)<br/>
|
|
68
|
+
[技术栈](#技术栈) · [开发指南](#开发指南)<br/>
|
|
69
|
+
[路线图](#路线图) · [许可证](#许可证)
|
|
70
|
+
|
|
71
|
+
</td>
|
|
72
|
+
<td width="33%" valign="top">
|
|
73
|
+
|
|
74
|
+
**一眼看懂**
|
|
75
|
+
|
|
76
|
+
监督层,秒级软实时<br/>
|
|
77
|
+
14 个执行引擎 · 4 个接入入口<br/>
|
|
78
|
+
5 种现场协议(读 + 写)<br/>
|
|
79
|
+
7 状态任务机 · FTS5 + 向量记忆<br/>
|
|
80
|
+
插件热重载 · SDK · CLI · TUI
|
|
81
|
+
|
|
82
|
+
</td>
|
|
83
|
+
</tr>
|
|
84
|
+
</table>
|
|
85
|
+
|
|
86
|
+
---
|
|
37
87
|
|
|
38
88
|
## 文档
|
|
39
89
|
|
|
40
|
-
|
|
90
|
+
文档为双语——[VitePress 站点](https://kingdol666.github.io/AgentWorkShop) 在全站范围内提供语言切换(简体中文 / English)。深度页面同样随仓库发布,CLI 会把它们复制进发布的 tarball:
|
|
41
91
|
|
|
42
|
-
| 主题 | 在线 | 仓库内 |
|
|
92
|
+
| 主题 | 在线 | 仓库内 | 内容 |
|
|
43
93
|
|---|---|---|---|
|
|
44
|
-
|
|
|
45
|
-
| **插件开发** | [插件指南](https://kingdol666.github.io/AgentWorkShop/plugins/) | [`docs/plugins.md`](./docs/plugins.md) | 完整扩展契约:三种作用域、`index.mjs` 清单、`ctx` 服务端/浏览器能力面、`settings`/`groups` 声明、生命周期事件、i18n
|
|
46
|
-
| **SDK** | [SDK 指南](https://kingdol666.github.io/AgentWorkShop/sdk/) | [`docs/sdk.md`](./docs/sdk.md) | `agentworkshop/sdk`
|
|
47
|
-
| **CLI** | [CLI 手册](https://kingdol666.github.io/AgentWorkShop/cli/) | [`docs/cli.md`](./docs/cli.md) | 全部 14
|
|
94
|
+
| **上手指南** | [指南](https://kingdol666.github.io/AgentWorkShop/guide/getting-started) | `docs/site/guide/` | 安装 → 首次运行 → 第一次「Agent × 产线」会话、配置系统、数采协议、数控读写、HITL、配方版本、多 Harness 团队、产线权限、AML |
|
|
95
|
+
| **插件开发** | [插件指南](https://kingdol666.github.io/AgentWorkShop/plugins/) | [`docs/plugins.md`](./docs/plugins.md) | 完整扩展契约:三种作用域、`index.mjs` 清单、`ctx` 服务端/浏览器能力面、`settings`/`groups` 声明、生命周期事件、i18n、面板、团队级开关、一个真实案例 |
|
|
96
|
+
| **SDK** | [SDK 指南](https://kingdol666.github.io/AgentWorkShop/sdk/) | [`docs/sdk.md`](./docs/sdk.md) | `agentworkshop/sdk` 作为编程客户端(带信封处理的平台 REST 客户端)与插件扩展基座;TypeScript 类型;浏览器端 SDK |
|
|
97
|
+
| **CLI** | [CLI 手册](https://kingdol666.github.io/AgentWorkShop/cli/) | [`docs/cli.md`](./docs/cli.md) | 全部 14 个 `aw` 指令、全局选项、退出码、双模式路径模型、指令注册系统、维护者发布指引 |
|
|
48
98
|
| **AML** | [AML 指南](https://kingdol666.github.io/AgentWorkShop/guide/aml) | [`docs/aml.md`](./docs/aml.md) | 自动建模实验室:数据集构建、作业编排、模型注册表、晋级门禁、Agent 工具 |
|
|
49
|
-
| **TUI** | — | [`docs/tui.md`](./docs/tui.md) · [`tui/README.md`](./tui/README.md) | 终端工作台:频道、Agent、任务、实时监控、HITL
|
|
50
|
-
| **多 Harness 架构** | — | [`docs/multi-harness-architecture.md`](./docs/multi-harness-architecture.md) |
|
|
99
|
+
| **TUI** | — | [`docs/tui.md`](./docs/tui.md) · [`tui/README.md`](./tui/README.md) | 终端工作台:频道、Agent、任务、实时监控、HITL 应答 |
|
|
100
|
+
| **多 Harness 架构** | — | [`docs/multi-harness-architecture.md`](./docs/multi-harness-architecture.md) | 引擎分类、归一化会话契约、供应商/模型目录、失败模式 |
|
|
51
101
|
|
|
52
102
|
---
|
|
53
103
|
|
|
@@ -62,12 +112,21 @@ AgentWorkShop 起家于**多智能体软件工作坊**——Channel 内的编码
|
|
|
62
112
|
最终效果:提交一个目标,比如「分析熔体温度趋势并优化设定值」——Agent 团队读取真实传感器历史、计算统计量、提议新设定值、在 HITL 面板等您批准、写入 PLC、校验回读、带着数值汇报。**端到端,自动化 E2E 已验证。**
|
|
63
113
|
|
|
64
114
|
<div align="center">
|
|
65
|
-
|
|
66
|
-
|
|
115
|
+
|
|
116
|
+
### 图 01 — 闭环全流程
|
|
117
|
+
|
|
118
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-01-closedloop.gif" alt="Agent 团队读取实时遥测、提议设定值、等待审批、写入 PLC 并校验回读" width="88%" />
|
|
119
|
+
|
|
120
|
+
<sub><b>目标 → 读取 → 计算 → 审批 → 写控 → 回读 → 汇报。</b><br/>
|
|
121
|
+
录制自运行中的实例:真实数采历史、真实写控、真实 HITL 审批。</sub>
|
|
122
|
+
|
|
67
123
|
</div>
|
|
68
124
|
|
|
69
|
-
|
|
125
|
+
> [!NOTE]
|
|
126
|
+
> 本 README 中的每一张图都是**运行中实例**的录屏或截图,没有一张是效果图。
|
|
127
|
+
> 屏幕上的数字来自流经产品同一套代码路径的工业数据。
|
|
70
128
|
|
|
129
|
+
---
|
|
71
130
|
## 特性总览
|
|
72
131
|
|
|
73
132
|
#### Agent 团队运行时
|
|
@@ -87,7 +146,7 @@ AgentWorkShop 起家于**多智能体软件工作坊**——Channel 内的编码
|
|
|
87
146
|
|
|
88
147
|
| 能力 | 为何重要 |
|
|
89
148
|
|---|---|
|
|
90
|
-
|
|
|
149
|
+
| **六协议现场总线** | Modbus TCP、Modbus RTU-over-TCP(串口网关)、OPC UA、MQTT、HTTP/REST,外加**内置串口插件**(RS-232/485 直连:Modbus RTU + ASCII 行)——数采**与**写控双驱动带连接池、分类错误文案与逐驱动连接测试;`mock` 覆盖演示/CI;协议即插件:`ctx.daq.registerDriver` / `ctx.dcw.registerWriteDriver` 注入后,前端协议下拉与参数表单即插即现(带 ⌁ 徽标)。 |
|
|
91
150
|
| **Agent 团队 × 工业作用域** | 把 Agent 绑定到数采/数控节点。Agent 看到的是语义卡(物理含义、单位、安全量程、配方窗口)——而不是裸寄存器。 |
|
|
92
151
|
| **人工审批的写控** | 数控下发经过「**安全量程 ∩ 活动配方窗口**」联锁 → 可选 **HITL 审批** → PLC 写入 → **回读校验** → 带签名的写历史。 |
|
|
93
152
|
| **数控读写通道** | 每个控制节点都能沿它写入时所用的同一套标定**读回 PLC 当前值**:周期读 + 按需读 + Agent 读取,SET 与 ACT 并排呈现——读是被动观测,永不被写联锁阻断。 |
|
|
@@ -103,7 +162,7 @@ AgentWorkShop 起家于**多智能体软件工作坊**——Channel 内的编码
|
|
|
103
162
|
| **产线级权限** | 工业数据按**产线**三态门控(无权/仅查看/可操控),强制点在数据面——普通用户未授权前看不到任何产线数据。 |
|
|
104
163
|
| **全操作审计日志** | 用户 / Agent / 系统 的每个动作都落进同一份可检索日志;操作者归属「Channel名/成员名」,与用户和系统天然区分。经 WS 实时推送。 |
|
|
105
164
|
| **团队级插件开关** | 每个团队(Channel)持有**独立插件开关组**(`channel_plugins`):被关闭插件的工具不注入该团队 Agent。插件本体经 `aw plugin` 与 `/plugins` 页热管理。 |
|
|
106
|
-
| **插件扩展 API** | `plugins/<name>/` 下的一个自包含目录**同时增强两半**:`index.mjs`(服务端:钩子、路由、Agent
|
|
165
|
+
| **插件扩展 API** | `plugins/<name>/` 下的一个自包含目录**同时增强两半**:`index.mjs`(服务端:钩子、路由、Agent 工具、**数采读驱动/写控写驱动**/帧处理器/节点模板、配置分组、KV、定时器)与 `client.mjs`(浏览器:注入具名插槽的面板、i18n、设置 UI)。三种作用域——`builtin`(随包发布)> `project`(检出)> `user`(`~/.AgentWorkShop`)——启停**与代码修改**均有约 1 秒热重载;停用插件的驱动随热重载立即摘除。内置示例 **serial-bridge**(串口通信:读/写驱动 + 串口探针 API + 前端面板)。完整契约见 [`docs/plugins.md`](./docs/plugins.md)。 |
|
|
107
166
|
| **AML —— 自动建模实验室** | 数据集构建 → 训练作业 → 排行榜 → 晋级门禁 → 模型引用,全部可在 `/aml` 页驱动,也可由 Agent 通过 10 个 `aml_*` 工具驱动。Python 运行时由 `uv` 引导至 `./aml` 资产根;产物与元数据都留在配置根下。 |
|
|
108
167
|
| **全量配置驱动运行时** | 全部运行旋钮(记忆预算、上下文压缩、回退护栏、保留策略、备份、日志级别…)在设置描述符注册表声明一次,优先级 **config.yml < runtime-settings < env**——**99 个设置项、16 组**,代码零硬编码默认。 |
|
|
109
168
|
| **可配置节拍** | 采样与查询的默认值/下限全部是 **live 设置**(`daq.sampling.*`、`daq.query.*`):热重载、create/patch 时钳制,Agent 工具描述实时携带当前值。 |
|
|
@@ -118,22 +177,75 @@ AgentWorkShop 起家于**多智能体软件工作坊**——Channel 内的编码
|
|
|
118
177
|
|
|
119
178
|
## 界面一览
|
|
120
179
|
|
|
180
|
+
下面每一屏都是真实界面,1440×900,录制自正在运行的实例。
|
|
181
|
+
|
|
121
182
|
<div align="center">
|
|
122
183
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
184
|
+
### 图 01 — 闭环全流程
|
|
185
|
+
|
|
186
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-01-closedloop.gif" alt="Agent 团队读取实时遥测、提议设定值、等待审批、写入 PLC 并校验回读" width="88%" />
|
|
187
|
+
|
|
188
|
+
<sub><b>目标 → 读取 → 计算 → 审批 → 写控 → 回读 → 汇报。</b><br/>
|
|
189
|
+
录制自运行中的实例:真实数采历史、真实写控、真实 HITL 审批。</sub>
|
|
190
|
+
|
|
191
|
+
<br />
|
|
192
|
+
|
|
193
|
+
### 图 02 — 数采中心
|
|
194
|
+
|
|
195
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-02-daq.gif" alt="数采中心:节点台账、实时趋势、报警横条与事件流" width="92%" />
|
|
196
|
+
|
|
197
|
+
<sub><b>端到端的采集链路。</b>量规统计带之下的节点台账与健康度、随样本落库而生长趋势曲线、
|
|
198
|
+
只保留真正未确认项的报警横条,以及滚动的事件流。</sub>
|
|
199
|
+
|
|
200
|
+
<br />
|
|
201
|
+
|
|
202
|
+
### 图 03 — 产线运营
|
|
203
|
+
|
|
204
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-03-dcw.gif" alt="产线运营:产线、产品、配方与写控制" width="92%" />
|
|
205
|
+
|
|
206
|
+
<sub><b>产线 / 产品 / 配方 / 批次。</b>开跑产线即用配方窗口为采集设门,并给每个样本打上
|
|
207
|
+
<code>产品/配方/批次</code> 标识;控制节点通过它写入时用的同一条标定路径呈现 <b>SET vs ACT</b>。</sub>
|
|
208
|
+
|
|
209
|
+
<br />
|
|
210
|
+
|
|
211
|
+
### 图 04 — 数字孪生
|
|
212
|
+
|
|
213
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-04-town.gif" alt="由实时遥测驱动的 3D 数字孪生小镇" width="92%" />
|
|
214
|
+
|
|
215
|
+
<sub><b>孪生就是同一条事件总线的渲染结果。</b>设备、频道领地、报警与实时数值——自适应画质阶梯
|
|
216
|
+
(DPR / 阴影 / 泛光,墙钟 FPS 预算)让它在中端机器上也保持诚实。</sub>
|
|
217
|
+
|
|
218
|
+
<br />
|
|
219
|
+
|
|
220
|
+
### 图 05 — 仪表盘
|
|
126
221
|
|
|
127
|
-
|
|
128
|
-
|:---:|:---:|
|
|
129
|
-
|  |  |
|
|
222
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-05-dashboard.gif" alt="带 KPI 量规与趋势的运行仪表盘" width="92%" />
|
|
130
223
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
224
|
+
<sub><b>一屏看全工作坊。</b>频道、Agent、任务、数采吞吐与报警——读的是 API 服务的同一份状态,
|
|
225
|
+
不是另建一套指标存储。</sub>
|
|
226
|
+
|
|
227
|
+
<br />
|
|
228
|
+
|
|
229
|
+
### 图 06 — 自适应布局
|
|
230
|
+
|
|
231
|
+
<img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/fig-06-responsive.gif" alt="同一套界面从桌面到平板再到手机的形态变化" width="92%" />
|
|
232
|
+
|
|
233
|
+
<sub><b>桌面 → 平板 → 手机。</b>刻度轨先收成图标轨、再变成抽屉;页头纵向堆叠,
|
|
234
|
+
高密度表格变成可横扫的「账页条」,并把身份列钉在左缘。</sub>
|
|
134
235
|
|
|
135
236
|
</div>
|
|
136
237
|
|
|
238
|
+
<table>
|
|
239
|
+
<tr>
|
|
240
|
+
<td width="50%"><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-workshop.png" alt="Agent 工作台" width="100%" /><br/><sub><b>Agent 工作台。</b>频道时间线、lane、任务、记忆与 HITL 收在同一张工作台。</sub></td>
|
|
241
|
+
<td width="50%"><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-monitor.png" alt="运行时监控" width="100%" /><br/><sub><b>运行时监控。</b>每条已接线频道、成员数、依赖环与归属用户。</sub></td>
|
|
242
|
+
</tr>
|
|
243
|
+
<tr>
|
|
244
|
+
<td><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-settings.png" alt="系统设置" width="100%" /><br/><sub><b>系统设置。</b>16 组 99 个设置项,由描述符驱动——CLI 读的是同一份注册表。</sub></td>
|
|
245
|
+
<td><img src="https://raw.githubusercontent.com/kingdol666/AgentWorkShop/main/docs/readme-assets/shot-plugins.png" alt="插件管理" width="100%" /><br/><sub><b>插件管理。</b>三种作用域、改代码即热重载、按团队开关。</sub></td>
|
|
246
|
+
</tr>
|
|
247
|
+
</table>
|
|
248
|
+
|
|
137
249
|
---
|
|
138
250
|
|
|
139
251
|
## 设计架构
|
|
@@ -253,7 +365,7 @@ aw update --check # 只报告,不安装
|
|
|
253
365
|
npm install -g agentworkshop@latest # 手动等效
|
|
254
366
|
```
|
|
255
367
|
|
|
256
|
-
版本遵循 semver。每次 `aw start` 都会校验配置根,并把 `home` 之前的旧版 `data/` 布局迁移进来(最新文件胜出),因此数据可以跨版本存活。SQLite schema 迁移在服务端启动时执行。当前版本:**v0.7.
|
|
368
|
+
版本遵循 semver。每次 `aw start` 都会校验配置根,并把 `home` 之前的旧版 `data/` 布局迁移进来(最新文件胜出),因此数据可以跨版本存活。SQLite schema 迁移在服务端启动时执行。当前版本:**v0.7.41**——见[版本发布](https://github.com/kingdol666/AgentWorkShop/releases)。
|
|
257
369
|
|
|
258
370
|
### 第一次「Agent × 产线」会话(约 2 分钟)
|
|
259
371
|
|
|
@@ -313,7 +425,7 @@ aw config set daq.query.minBucketMs 500 # 查询下限(samples/产
|
|
|
313
425
|
|
|
314
426
|
全局参数:`--help/-h` · `--version/-v` · `--json`(机器可读) · `--root <dir>` · `--debug`。
|
|
315
427
|
|
|
316
|
-
退出码:**0** 成功 · **1** 运行时错误 · **2** 用法错误。带 `--json` 时,失败会以信封返回 `{ ok: false, error: 'unknown-command' \| 'no-project' \| 'usage' \| 'internal' \|
|
|
428
|
+
退出码:**0** 成功 · **1** 运行时错误 · **2** 用法错误。带 `--json` 时,失败会以信封返回 `{ ok: false, error: 'unknown-command' \| 'no-project' \| 'usage' \| 'internal' \| … }`,自动化无需解析 stderr 即可分支。
|
|
317
429
|
|
|
318
430
|
### 指令注册
|
|
319
431
|
|
|
@@ -341,7 +453,7 @@ export async function run(argv, ctx) {
|
|
|
341
453
|
|
|
342
454
|
### 数据采集(DAQ)
|
|
343
455
|
|
|
344
|
-
-
|
|
456
|
+
- **六协议驱动**:Modbus TCP、Modbus RTU-over-TCP(串口网关)、OPC UA、MQTT、HTTP/REST,加 **serial-bridge 内置插件**(RS-232/485 直连:Modbus RTU 帧机 + ASCII 行协议,写侧带同址回读校验,附串口枚举/探针 API 与前端面板)——连接池、分类错误文案、逐驱动连接测试;驱动注册表接受插件注册任意新协议(自带 meta 自描述时前端表单零改动)。
|
|
345
457
|
- **逐节点边缘运行时**:独立采样节拍、下发节拍、节点级在飞互斥——一个慢驱动绝不拖累邻居。采样与查询的默认值/下限由 `daq.sampling.*`、`daq.query.*` live 设置驱动。
|
|
346
458
|
- **管线**:驱动 → 队列(进程内 / MQTT,断连离线缓冲)→ 消费泵乱序防御 → 三路分发:WS 实时直推(节拍门控)、TSDB 批量落库、设备孪生回写。
|
|
347
459
|
- **鲁棒性**:TSDB 单 in-flight 写 + 有界重试,缓冲背压带丢弃计数,真实丢失指标随 `daq.controller` 帧暴露。
|
|
@@ -576,3 +688,55 @@ AgentWorkShop 是独立项目,**不是 Anthropic 或任何 LLM 厂商的官方
|
|
|
576
688
|
</a>
|
|
577
689
|
|
|
578
690
|
</div>
|
|
691
|
+
|
|
692
|
+
---
|
|
693
|
+
|
|
694
|
+
## 参与贡献
|
|
695
|
+
|
|
696
|
+
欢迎提交 Issue 与 Pull Request。提 PR 之前请先:
|
|
697
|
+
|
|
698
|
+
1. **先读你要改的那份契约**——扩展面见 [`docs/plugins.md`](./docs/plugins.md),编程客户端见 [`docs/sdk.md`](./docs/sdk.md),指令注册见 [`docs/cli.md`](./docs/cli.md)。
|
|
699
|
+
2. **本地跑一遍门禁**:
|
|
700
|
+
|
|
701
|
+
```bash
|
|
702
|
+
pnpm typecheck # vue-tsc 覆盖 app + server + shared
|
|
703
|
+
pnpm lint # eslint 9,期望 0 warning
|
|
704
|
+
node scripts/e2e-full-closedloop.mjs # 全闭环 E2E,需要服务在跑
|
|
705
|
+
node scripts/test-sdk-surface.mjs # SDK 导出面不允许漂移
|
|
706
|
+
node scripts/check-docs-sync.mjs # docs/site 与 docs/*.md 保持同步
|
|
707
|
+
```
|
|
708
|
+
|
|
709
|
+
3. **提交信息走约定式**——`commit-msg` 钩子跑 `commitlint`(`feat:` / `fix:` / `docs:` / `refactor:` / `perf:` / `test:` / `chore:`),`lint-staged` 会在提交时自动修复暂存的 JS/TS/Vue。
|
|
710
|
+
4. **改了行为就补测试。** 本仓库以 `scripts/` 下的**真实 E2E 脚本**为主,而不是 mock——一条新的工业链路应该能被证明可跑通。
|
|
711
|
+
|
|
712
|
+
> [!TIP]
|
|
713
|
+
> 报 bug 之前先跑 `aw doctor`:它会端到端体检环境(Node 版本、配置根、端口占用、SQLite、可选的 Docker 服务),大多数「起不来」在这一步就有答案。
|
|
714
|
+
|
|
715
|
+
## 安全
|
|
716
|
+
|
|
717
|
+
发现漏洞请**不要**开公开 Issue,而应通过 [GitHub Security Advisories](https://github.com/kingdol666/AgentWorkShop/security/advisories/new) 私下报告,并附上复现步骤与受影响版本。
|
|
718
|
+
|
|
719
|
+
当你把 AgentWorkShop 指向真实设备时,它就在驱动真实设备:接入现场 PLC 之前,请先复核 `config.yml` 里的联锁、安全量程与 HITL 设置。默认姿态是建议性的——写操作要过联锁、要经审批、要回读校验——但产线侧逻辑始终拥有最终否决权。
|
|
720
|
+
|
|
721
|
+
---
|
|
722
|
+
|
|
723
|
+
<div align="center">
|
|
724
|
+
|
|
725
|
+
**如果这个项目对你有用,点一个 ⭐ 能让更多人找到它。**
|
|
726
|
+
|
|
727
|
+
<a href="https://star-history.com/#kingdol666/AgentWorkShop&Date">
|
|
728
|
+
<picture>
|
|
729
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kingdol666/AgentWorkShop&type=Date&theme=dark" />
|
|
730
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=kingdol666/AgentWorkShop&type=Date" />
|
|
731
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kingdol666/AgentWorkShop&type=Date" width="80%" />
|
|
732
|
+
</picture>
|
|
733
|
+
</a>
|
|
734
|
+
|
|
735
|
+
<br />
|
|
736
|
+
|
|
737
|
+
**[在线文档](https://kingdol666.github.io/AgentWorkShop)** · **[上手指南](https://kingdol666.github.io/AgentWorkShop/guide/getting-started)** · **[插件 API](./docs/plugins.md)** · **[SDK](./docs/sdk.md)** · **[CLI](./docs/cli.md)** · **[English](./README.md)**
|
|
738
|
+
|
|
739
|
+
<sub>基于 Nuxt 4 · Vue 3 · TypeScript · <code>node:sqlite</code> 构建 —— 监督层,秒级软实时。<br />
|
|
740
|
+
时序关键回路请留在 PLC 内。</sub>
|
|
741
|
+
|
|
742
|
+
</div>
|