agentworkshop 0.8.5 → 0.8.6
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.en.json +3 -3
- package/.AgentWorkShop/prompts/host-tools.json +14 -4
- package/.output/.AgentWorkShop/prompts/host-tools.en.json +3 -3
- package/.output/.AgentWorkShop/prompts/host-tools.json +14 -4
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{U_n8pryv2.js → 7op-BMk82.js} +1 -1
- package/.output/public/_nuxt/{zWZ26UWi.js → B1SIgyrl.js} +1 -1
- package/.output/public/_nuxt/{C4tXwpSt.js → BA2lmfW4.js} +1 -1
- package/.output/public/_nuxt/{EJkmXP432.js → BDXQqSkl2.js} +1 -1
- package/.output/public/_nuxt/{CY_7u1ST2.js → BI9jj13f2.js} +1 -1
- package/.output/public/_nuxt/{CGf9neEK2.js → BiXqyYNw2.js} +1 -1
- package/.output/public/_nuxt/{D9GoOkyP2.js → BlOm8JIs2.js} +1 -1
- package/.output/public/_nuxt/{CQ31GiJU2.js → BoXKUOiN2.js} +1 -1
- package/.output/public/_nuxt/{DZzbCFY2.js → BuLoPmcf.js} +1 -1
- package/.output/public/_nuxt/{D9ppMCbw.js → BwOK42JQ.js} +1 -1
- package/.output/public/_nuxt/{CZJ5cw6r2.js → C1RMfPoB2.js} +1 -1
- package/.output/public/_nuxt/{CGviZq4E.js → COfo_Bg3.js} +1 -1
- package/.output/public/_nuxt/CTGJHZ8X2.js +1 -0
- package/.output/public/_nuxt/{SgsmmrsZ.js → CY2NkFvI.js} +1 -1
- package/.output/public/_nuxt/{B4GOTVfN.js → C_4mzQ5X.js} +1 -1
- package/.output/public/_nuxt/{DGmFHb7m.js → CdvMP3lv.js} +1 -1
- package/.output/public/_nuxt/{iqxZGXsY.js → CooauJ7D.js} +1 -1
- package/.output/public/_nuxt/{C3vxePED.js → D1eVi1zr.js} +1 -1
- package/.output/public/_nuxt/{DnuJ66Jy.js → D6PUmBb0.js} +1 -1
- package/.output/public/_nuxt/{BBhroEeN.js → DC8sMA36.js} +1 -1
- package/.output/public/_nuxt/{DOUuGOQR2.js → DDHh85c42.js} +1 -1
- package/.output/public/_nuxt/{Cy_HDgSl.js → DDXOfmo2.js} +2 -2
- package/.output/public/_nuxt/{Cr2xJ_CY.js → DMFwLxfu.js} +1 -1
- package/.output/public/_nuxt/{BZg_MIK42.js → DoprKJ5a2.js} +1 -1
- package/.output/public/_nuxt/{BzBBEE-o2.js → Dr1FVeQG2.js} +1 -1
- package/.output/public/_nuxt/{W0sNnJQh.js → DtnsTW7e.js} +1 -1
- package/.output/public/_nuxt/{gUYi1hLJ2.js → DxDqd6T42.js} +1 -1
- package/.output/public/_nuxt/{B0UUODeh.js → DzU3zEKX.js} +1 -1
- package/.output/public/_nuxt/{BkO5WdX5.js → EgO70wrE.js} +1 -1
- package/.output/public/_nuxt/{7OZQiw002.js → HJKu4eEV2.js} +1 -1
- package/.output/public/_nuxt/{ChF6qLpY2.js → K5Xen0wZ2.js} +1 -1
- package/.output/public/_nuxt/{CNrRZmSx2.js → Rb4o4o-82.js} +1 -1
- package/.output/public/_nuxt/{BqBTlfiz.js → Tf6SJSDj.js} +1 -1
- package/.output/public/_nuxt/{DJaGVY4v2.js → ZzOyoXex2.js} +1 -1
- package/.output/public/_nuxt/{PbzVdCTA2.js → azOGy_tU2.js} +1 -1
- package/.output/public/_nuxt/{D1thFC3z.js → be-4wyTo.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/593b65bd-cf1d-4b7f-a993-57e939c38f36.json +1 -0
- package/.output/public/_nuxt/{8b9CKi6F.js → dcjPjLPI.js} +1 -1
- package/.output/public/_nuxt/{ae2-5ZPt.js → h-Fn7pRD.js} +1 -1
- package/.output/public/_nuxt/{-gy9k_TE2.js → hyLdZsOd2.js} +1 -1
- package/.output/public/_nuxt/{BHxG41IQ2.js → o8sYG6xx2.js} +1 -1
- package/.output/server/chunks/_/access.mjs +1 -1
- package/.output/server/chunks/_/agent-dto.mjs +26 -0
- package/.output/server/chunks/_/agent-dto.mjs.map +1 -0
- package/.output/server/chunks/_/data-export.mjs +6 -6
- package/.output/server/chunks/_/data-query.mjs +3 -3
- package/.output/server/chunks/_/eda-run.repo.mjs +2 -2
- package/.output/server/chunks/_/features.mjs +5 -5
- package/.output/server/chunks/_/golden.mjs +3 -3
- package/.output/server/chunks/_/harness-spawn-policy.mjs +77 -0
- package/.output/server/chunks/_/harness-spawn-policy.mjs.map +1 -0
- package/.output/server/chunks/_/index.mjs +1 -1
- package/.output/server/chunks/_/line-scope.mjs +32 -0
- package/.output/server/chunks/_/line-scope.mjs.map +1 -0
- package/.output/server/chunks/_/mes-console.mjs +1 -1
- package/.output/server/chunks/_/nitro.mjs +2429 -1726
- package/.output/server/chunks/_/nitro.mjs.map +1 -1
- package/.output/server/chunks/_/ocap.mjs +1 -1
- package/.output/server/chunks/_/rest-auth.mjs +1 -1
- package/.output/server/chunks/_/spc.mjs +1 -1
- package/.output/server/chunks/build/TownView-BWMDbosY.mjs +1 -1
- package/.output/server/chunks/build/daq-CdxcfY_G.mjs +1 -1
- package/.output/server/chunks/build/dcw-BlDQtS4q.mjs +1 -1
- package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
- package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs +1 -1
- package/.output/server/chunks/build/useDaqDetailNode-DeOsDxK5.mjs +1 -1
- package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs +1 -1
- package/.output/server/chunks/build/useDaqFilters-CctmO03p.mjs +1 -1
- package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs +1 -1
- package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs +1 -1
- package/.output/server/chunks/build/useDcwAddNode-DACVcEHs.mjs +1 -1
- package/.output/server/chunks/build/useDcwStream-Dir5ufAU.mjs +1 -1
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
- package/.output/server/chunks/routes/api/system/backup/run.post.mjs +2 -2
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +17 -9
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +3 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.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/channel-templates/_id_.patch.mjs +6 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +5 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +5 -2
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +7 -1
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +3 -1
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +8 -6
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs +29 -49
- package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +6 -1
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +14 -5
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +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 +7 -4
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +6 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +6 -2
- package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +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 +6 -1
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +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 +7 -4
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +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 +6 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +7 -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 +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +6 -2
- package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +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/mes-artifacts/file.get.mjs +6 -2
- package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.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 +6 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +4 -2
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +5 -2
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +7 -3
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +8 -1
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +6 -2
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +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 +7 -4
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.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.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +2 -0
- package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +8 -3
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/index.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/index.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/index.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs +1 -1
- package/.output/server/chunks/routes/api/workshop/process-model/train.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/tools/sync.post.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 +1 -1
- package/.output/server/chunks/virtual/precomputed.mjs +1 -1
- package/.output/server/package.json +1 -1
- package/README-zh.md +4 -2
- package/README.md +9 -2
- package/config.yml +1 -1
- package/docker-compose.yml +4 -2
- package/docs/cli.en.md +2 -2
- package/docs/cli.md +2 -2
- package/docs/plugins.en.md +1 -1
- package/docs/plugins.md +1 -1
- package/docs/sdk.en.md +1 -1
- package/docs/sdk.md +1 -1
- package/package.json +1 -1
- package/scripts/_audit/_live-mqtt-e2e-20261028.mjs +219 -0
- package/scripts/_audit/prompt-injection-probe.mts +76 -0
- package/scripts/api-live-e2e.mjs +9 -3
- package/scripts/e2e-multiexpert-remediation-real.mjs +453 -0
- package/scripts/e2e-node-binding-3mode-real.mjs +697 -0
- package/scripts/e2e-node-binding-authz.mjs +332 -0
- package/scripts/security-acceptance.mjs +218 -0
- package/server/api/workshop/agent-tools/bindings/index.post.ts +33 -17
- package/server/api/workshop/agents/[id].patch.ts +3 -0
- package/server/api/workshop/agents/index.post.ts +3 -0
- package/server/api/workshop/channel-templates/[id].patch.ts +5 -0
- package/server/api/workshop/channel-templates/index.post.ts +6 -0
- package/server/api/workshop/channels/[id]/agents/[agentId].patch.ts +5 -0
- package/server/api/workshop/channels/[id]/agents/index.get.ts +8 -2
- package/server/api/workshop/channels/[id]/agents/index.post.ts +7 -0
- package/server/api/workshop/channels/[id]/index.get.ts +10 -4
- package/server/api/workshop/channels.post.ts +3 -0
- package/server/api/workshop/daq/[id]/ingest.post.ts +26 -22
- package/server/api/workshop/daq/[id].patch.ts +8 -0
- package/server/api/workshop/daq/alarms.get.ts +18 -16
- package/server/api/workshop/daq/infra/reconnect.post.ts +21 -5
- package/server/api/workshop/daq/test-driver.post.ts +10 -3
- package/server/api/workshop/dcw/[id]/param-ledger.get.ts +7 -1
- package/server/api/workshop/dcw/[id]/read.post.ts +6 -1
- package/server/api/workshop/dcw/[id].patch.ts +49 -40
- package/server/api/workshop/dcw/journal/index.get.ts +7 -3
- package/server/api/workshop/dcw/mes-artifacts/file.get.ts +7 -1
- package/server/api/workshop/dcw/mes-artifacts/index.get.ts +7 -1
- package/server/api/workshop/dcw/optimizations/[id]/series.get.ts +6 -1
- package/server/api/workshop/dcw/optimizations/[id].get.ts +3 -1
- package/server/api/workshop/dcw/optimizations/index.get.ts +6 -3
- package/server/api/workshop/dcw/params/[id]/read.post.ts +22 -17
- package/server/api/workshop/dcw/recipes/[id]/versions.get.ts +20 -14
- package/server/api/workshop/dcw/recipes/[id].delete.ts +33 -25
- package/server/api/workshop/dcw/recipes/index.get.ts +17 -12
- package/server/api/workshop/dcw/runs/[id]/close.post.ts +21 -15
- package/server/api/workshop/dcw/test-driver.post.ts +21 -16
- package/server/api/workshop/ws/hub.ts +2 -1
- package/server/plugins/01-instance-guard.ts +82 -0
- package/server/plugins/daq.ts +40 -8
- package/server/plugins/workshop.ts +12 -0
- package/server/services/workshop/agents/adapters/line-spawn.ts +24 -1
- package/server/services/workshop/agents/agent-dto.ts +54 -0
- package/server/services/workshop/agents/harness-spawn-policy.ts +114 -0
- package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +22 -0
- package/server/services/workshop/agents/host-tool-bridge/index.ts +1 -1
- package/server/services/workshop/agents/host-tool-bridge/per-agent.ts +17 -3
- package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +1 -1
- package/server/services/workshop/agents/host-tool-bridge/tools/team-delegation.ts +5 -1
- package/server/services/workshop/agents/industrial/dcw-tools.ts +6 -2
- package/server/services/workshop/agents/industrial/ops-tools.ts +54 -12
- package/server/services/workshop/agents/industrial/recipe-gate.ts +68 -15
- package/server/services/workshop/agents/industrial/tool-verify-legacy-specs.ts +2 -2
- package/server/services/workshop/agents/industrial/tool-verify.ts +31 -2
- package/server/services/workshop/agents/node-bindings.repo.ts +4 -3
- package/server/services/workshop/agents/node-delegation.ts +49 -4
- package/server/services/workshop/agents/tool-approvals.ts +23 -0
- package/server/services/workshop/agents/tool-reference-spec.ts +3 -0
- package/server/services/workshop/daq/bus/mqtt.adapter.ts +12 -0
- package/server/services/workshop/daq/daq-controller/crud.ts +5 -3
- package/server/services/workshop/daq/daq-controller/ingest.ts +23 -0
- package/server/services/workshop/daq/daq-controller/push.ts +24 -3
- package/server/services/workshop/daq/daq-controller/runtime-control.ts +6 -0
- package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +3 -1
- package/server/services/workshop/daq/daq-controller/tsdb-twin.ts +21 -1
- package/server/services/workshop/daq/daq-node.repo.ts +10 -7
- package/server/services/workshop/daq/daq-node.ts +2 -0
- package/server/services/workshop/daq/daq-runtime.ts +10 -2
- package/server/services/workshop/daq/drivers/modbus-tcp.ts +8 -5
- package/server/services/workshop/daq/drivers/registry.ts +5 -4
- package/server/services/workshop/daq/infra.ts +13 -0
- package/server/services/workshop/daq/ingest-policy.ts +24 -1
- package/server/services/workshop/daq/storage/timescale.adapter.ts +42 -3
- package/server/services/workshop/db/database/migrations.ts +83 -68
- package/server/services/workshop/dcw/dcw-controller/crud.ts +27 -2
- package/server/services/workshop/dcw/dcw-controller/lines.ts +14 -3
- package/server/services/workshop/dcw/dcw-controller/recipes.ts +63 -5
- package/server/services/workshop/dcw/dcw-recipe.repo.ts +10 -1
- package/server/services/workshop/dcw/dcw-runtime.ts +37 -14
- package/server/services/workshop/dcw/drivers/shared.ts +62 -6
- package/server/services/workshop/dcw/recipe-op-anchor.ts +28 -0
- package/server/services/workshop/dcw/recipe-rollback-manager/rollback.ts +204 -190
- package/server/services/workshop/dcw/recipe-rollback-manager/sweep.ts +97 -77
- package/server/services/workshop/line-scope.ts +80 -0
- package/server/services/workshop/optimization/dispatch.service.ts +18 -2
- package/server/services/workshop/permissions.ts +2 -0
- package/server/services/workshop/runtime/agent-runtime/message.ts +17 -0
- package/server/services/workshop/runtime/agent-runtime/state.ts +9 -3
- package/server/services/workshop/runtime/agent-runtime/types.ts +2 -1
- package/server/services/workshop/runtime/channel-runtime.ts +3 -1
- package/server/services/workshop/runtime/mailbox.ts +6 -3
- package/server/services/workshop/runtime/manager/a2a.ts +4 -2
- package/server/services/workshop/runtime/manager/admin-channel.ts +1 -1
- package/server/services/workshop/runtime/manager/chat.ts +3 -1
- package/server/services/workshop/runtime/manager/host-tools.ts +1 -1
- package/server/services/workshop/runtime/manager/runtime-wiring.ts +31 -19
- package/server/services/workshop/runtime/manager/state.ts +43 -1
- package/server/services/workshop/runtime/permission-scope.ts +21 -0
- package/server/services/workshop/runtime/scheduler-loop/tick.ts +16 -4
- package/server/services/workshop/scene-events.ts +19 -0
- package/shared/daq-protocol.ts +24 -5
- package/shared/dcw-protocol/catalog.ts +4 -4
- package/.output/public/_nuxt/CCI-fwcS2.js +0 -1
- package/.output/public/_nuxt/builds/meta/5cd11284-05bf-4fcd-9a69-56a01c9f56dd.json +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./B_Obcbiu.js","./DK3Fl9T5.js","./CavpkQb0.js","./R5Pz7BqB.js","./BqFaZ4kS.js","./C6lssmvl.js","./BkSViqQd.js","./Cn6EojFe.js","./B6C4WofF.js","./JegDslce.js","./HclGiUj8.js","./D1MkndMZ.js","./DXgw1dVL.js","./ri9UF8rk.js","./CznnUTZx.js","./CUCFFL9m.js","./eePbiWEh.js","./CElzwyXQ.js","./CDYLasP8.js","./rxhDcyfF.js","./DjGYvFyA.js","./B6Olw0Op.js","./D7TZLu4F.js","./2v5GdspM.js","./CnYazk8d.js","./36oeS8_R.js","./DOT-XQyi.js","./XqXoaoDs.js","./SvjzWbn8.js","./B6UwtJ1a.js","./CLFmtXU7.js","./BtZKe9ZV2.js","./9j2J4k4w.js","./
|
|
2
|
-
import{t as e}from"./DK3Fl9T5.js";import{a as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./BqFaZ4kS.js";import{C as l,N as u,S as d,a as f,b as p,g as m,l as h,mt as g,u as _,v}from"./CavpkQb0.js";import{A as y,D as b,H as x,J as S,L as C,O as w,P as T,S as E,T as D,V as O,a as ee,b as k,d as A,f as j,h as te,i as ne,j as re,m as ie,nt as ae,o as M,p as N,rt as oe,tt as P,x as se,y as ce}from"./C6lssmvl.js";import{i as le,r as ue}from"./ri9UF8rk.js";import{i as de,l as fe,r as pe,t as me,u as he}from"./BkSViqQd.js";import{t as ge}from"./rxhDcyfF.js";import{_ as _e,a as ve,c as ye,d as be,g as xe,i as Se,l as Ce,m as F,n as we,o as Te,p as Ee,r as De,s as Oe,t as ke,v as Ae,y as je}from"./CDYLasP8.js";import{_ as Me,a as Ne,c as Pe,g as Fe,h as Ie,i as Le,l as Re,m as ze,o as Be,p as Ve,r as He,u as Ue}from"./DjGYvFyA.js";import{a as We,c as Ge,n as Ke,o as qe,r as Je,s as Ye,t as I}from"./BoyuIoSm.js";import{a as Xe,c as Ze,d as Qe,f as $e,i as et,l as tt,n as nt,o as rt,r as it,s as at,u as ot}from"./Bko5adbu.js";import{n as st,t as ct}from"./XqXoaoDs.js";import{a as lt,c as ut,i as dt,l as ft,n as pt,o as mt,r as ht,s as gt,t as _t,u as vt}from"./CPvFGbr8.js";import{b as yt,i as bt}from"./D83nVQPl.js";import{a as xt,i as St,n as Ct,t as wt}from"./BtumQhZK.js";import{n as Tt,t as Et}from"./BYzim_Bn.js";import{i as Dt,o as Ot,s as L}from"./DPPC9Teq.js";import{t as R}from"./HclGiUj8.js";import{a as kt,c as z,i as At,l as jt,n as Mt,o as Nt,r as Pt,s as Ft,t as It}from"./D1MkndMZ.js";import{t as Lt}from"./CElzwyXQ.js";import{t as Rt}from"./N-CCmCsX.js";import{t as zt}from"./36oeS8_R.js";import{R as Bt,jt as Vt}from"./CznnUTZx.js";import{i as Ht,r as Ut}from"./DXgw1dVL.js";import{t as Wt}from"./kZl6yT-12.js";import{n as Gt,t as Kt}from"./D_FZ3KZI2.js";import{t as qt}from"./Cv-Mv7_h2.js";import{t as Jt}from"./DNxudyND.js";import{t as Yt}from"./DKOvbitt.js";import{t as Xt}from"./BDNMzG2s.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),`global`in globalThis||(globalThis.global=globalThis);function Zt(e,t){return t&&typeof e==`function`&&(e.key=t),e}var Qt=/\\/g,$t=/</g,en=/"/g,tn=/%\w+(?:\.\w+)?/g,nn=`%separator`;function rn(e,t,n=!1){let r;if(t===`s`||t===`pageTitle`)r=e.pageTitle;else if(t.includes(`.`)){let n=t.indexOf(`.`);r=e[t.substring(0,n)]?.[t.substring(n+1)]}else r=e[t];if(r!==void 0)return n?(r||``).replace(Qt,`\\\\`).replace($t,`\\u003C`).replace(en,`\\"`):r||``}function an(e,t,n,r=!1){if(typeof e!=`string`||!e.includes(`%`))return e;let i=e;try{i=decodeURI(e)}catch{}let a=i.match(tn);if(!a)return e;let o=e.includes(nn);return e=e.replace(tn,e=>{if(e===nn||!a.includes(e))return e;let n=rn(t,e.slice(1),r);return n===void 0?e:n}).trim(),o&&(e=e.split(nn).map(e=>e.trim()).filter(e=>e!==``).join(n?` ${n} `:` `)),e}var on=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,sn=e=>e.includes(`:key`)?e:e.split(`:`).join(`:key:`),cn=Zt({key:`aliasSorting`,hooks:{"tags:resolve":e=>{let t=!1;for(let n of e.tags){let r=n.tagPriority;if(!r)continue;let i=String(r);if(i.startsWith(`before:`)){let r=sn(i.slice(7)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p-1,t=!0)}else if(i.startsWith(`after:`)){let r=sn(i.slice(6)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p+1,t=!0)}}t&&(e.tags=e.tags.sort(on))}}}),ln=Zt({key:`deprecations`,hooks:{"entries:normalize":({tags:e})=>{for(let t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),`body`in t.props&&(t.props.body&&(t.tagPosition=`bodyClose`),delete t.props.body),t.props.renderPriority!=null&&(t.tagPriority=t.props.renderPriority,delete t.props.renderPriority)}}});function un(e){return typeof e?.then==`function`}function dn(e){if(typeof e==`function`)return e;if(un(e))return Promise.resolve(e).then(dn);if(Array.isArray(e)){let t=e.map(dn);return t.some(un)?Promise.all(t):e}if(e?.constructor===Object){let t=Object.keys(e),n=t.map(t=>dn(e[t]));if(n.some(un))return Promise.all(n).then(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]])))}return e}var fn=Zt(e=>{let t=new WeakMap;return{key:`promises`,hooks:{"entries:resolve":n=>{for(let r=n.entries.length-1;r>=0;r--){let i=n.entries[r],a=i.input;if(t.get(i)===a){n.entries.splice(r,1);continue}let o=dn(a);if(!un(o)){t.delete(i);continue}t.set(i,a),n.entries.splice(r,1),Promise.resolve(o).then(n=>{t.get(i)===a&&(t.delete(i),i.input=n,delete i._tags,e.invalidate?.())},()=>{t.get(i)===a&&t.delete(i)})}}}}},`promises`),pn={meta:`content`,link:`href`,htmlAttrs:`lang`},mn=[`innerHTML`,`textContent`],hn=Zt(e=>({key:`template-params`,hooks:{"tags:resolve":({tagMap:t,tags:n})=>{let r=t.get(`templateParams`)?.props||{},i=r.separator||`|`;delete r.separator,r.pageTitle=an(r.pageTitle||e._title||``,r,i);for(let e of n){if(e.processTemplateParams===!1)continue;let t=pn[e.tag];if(t&&typeof e.props[t]==`string`)e.props[t]=an(e.props[t],r,i);else if(e.processTemplateParams||e.tag===`titleTemplate`||e.tag===`title`)for(let t of mn)typeof e[t]==`string`&&(e[t]=an(e[t],r,i,e.tag===`script`&&typeof e.props.type==`string`&&e.props.type.endsWith(`json`)))}e._templateParams=r,e._separator=i},"tags:afterResolve":({tagMap:t})=>{let n=t.get(`title`);n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=an(n.textContent,e._templateParams,e._separator))}}}),`template-params`);function gn(e,t){if(typeof t==`function`&&t.key&&e.plugins.has(t.key))return;let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);if(!e.plugins.get(r)){e.plugins.set(r,n);for(let t in n.hooks||{})e.hooks?.hook(t,n.hooks[t])}}function _n(e,t={}){let n=!t.document,r=new Map,i={_entryCount:1,_h:0,plugins:new Map,resolvedOptions:t,ssr:n,entries:r,hooks:void 0,render:()=>e(i),use:e=>gn(i,e),push(e,t){let a=t?._index??i._entryCount++,o=t?{...t}:{};delete o.head,delete o.onRendered,delete o._index;let s={_i:a,input:e,options:o};return r.set(a,s),{_i:a,dispose(){r.delete(a)},patch(e){n?(s.input=e,delete s._tags):s._pending=e,r.has(a)||r.set(a,s)}}}};return t.init?.forEach(e=>e&&i.push(e)),i}var vn=n(()=>{dt(`skipHydrate`,e=>!qe(e)&&1),lt(`skipHydrate`,e=>void 0)});function yn(e){try{return JSON.parse(e)}catch{return e}}var bn=[[`NuxtError`,e=>Se(e)],[`EmptyShallowRef`,e=>d(e===`_`?void 0:e===`0n`?BigInt(0):yn(e))],[`EmptyRef`,e=>v(e===`_`?void 0:e===`0n`?BigInt(0):yn(e))],[`ShallowRef`,e=>d(e)],[`ShallowReactive`,e=>p(e)],[`Ref`,e=>v(e)],[`Reactive`,e=>m(e)]],xn=o({name:`nuxt:revive-payload:client`,order:-30,async setup(e){let t,n;for(let[e,t]of bn)lt(e,t);Object.assign(e.payload,([t,n]=s(()=>e.runWithContext(mt)),t=await t,n(),t)),delete window.__NUXT__}},1);function Sn(e,t){t.push(me),e.vueApp.use(t);let n=!0,r=()=>{n=!1,t.render()};t.hooks?.hook(`dom:beforeRender`,e=>{e.shouldRender=!n}),e.hooks.hook(`page:start`,()=>{n=!0}),e.hooks.hook(`page:finish`,()=>{e.isHydrating||r()}),e.hooks.hook(`app:error`,r),e.hooks.hook(`app:suspense:resolve`,r);let i=t.push.bind(t);t.push=((t,n)=>{let r=i(t,n),a=r.dispose.bind(r);return r.dispose=()=>{let t=e[`~transitionPromise`];t?t.finally(a):a()},r})}function Cn(e,t,n){let r=e.push,i=e;return i.ssr=!1,i.hooks=t,i.dirty=!!i.dirty,i.use=e=>gn(i,e),i.render=()=>n(i),i.invalidate=()=>{for(let e of i.entries.values())delete e._tags;i.dirty=!0,t.callHook(`entries:updated`,i)},i.push=(n,a)=>{let o=a?.onRendered?t.hook(`dom:rendered`,a.onRendered):void 0,s=r(n,a),c=e.entries.get(s._i);return c&&(c._o=n),i.dirty=!0,t.callHook(`entries:updated`,i),{_i:s._i,patch(e){s.patch(e),i.dirty=!0,t.callHook(`entries:updated`,i)},dispose(){o?.(),e.entries.has(s._i)&&(s.dispose(),i.invalidate())}}},t.hook(`entries:updated`,()=>{i.render()}),i}var wn=/\s+/;function Tn(e={}){return t=>kn(t,e)}function En(e){for(let t of e.entries.values())if(t._pending!==void 0)return!0;return!1}function Dn(e){for(let t in e._s)e._s[t]();for(let t in e._p)e._p[t]();e._s={},e._p={},e._e.clear(),e._l.clear()}function On(e,t){let n={_d:t,_t:t.title,_e:new Map([[`htmlAttrs`,t.documentElement],[`bodyAttrs`,t.body]]),_p:{},_s:{},_l:new Map};for(let e of[...t.body.children,...t.head.children]){let t=e.tagName.toLowerCase();if(!Qe.has(t))continue;let r={innerHTML:e.innerHTML};for(let t of e.getAttributeNames())r[t]=e.getAttribute(t);let i=at({tag:t,props:{}},r);i.key=e.getAttribute(`data-hid`)||void 0;let a=et(i)||Xe(i),o=a,s=1;for(;n._e.has(o);)o=`${a}:${s++}`;n._e.set(o,e)}for(let t of e.entries.values())if(t._o!==void 0){let e=t._o;for(let t of[`bodyAttrs`,`htmlAttrs`]){let r=e[t]?.class;if(typeof r==`string`){let e=n._e.get(t);for(let i of r.split(wn))i&&(n._p[`${t}:attr:class:${i}`]=()=>e.classList.remove(i))}}}return n}function kn(e,t={}){let n=t.document||e.resolvedOptions.document,r=e._dom,i=!!r&&r._d!==n;if(!n||r&&!i&&!e.dirty&&!En(e)||e._du)return!1;let a=n.defaultView;e._du=!0;let o=!1;try{let r=function(e,t,n,r){let i=`${e}:${t}`;d._s[i]=!r&&d._p[i]||n,delete d._p[i]},i=function(e){let t=d._p[e];return delete d._p[e],t},s=function(e,t,n,i,a,o){let s=`event:${t}`,c=`${e}:${s}`,l=d._l.get(c);if(l&&l[0]===o&&l[1]===n&&l[2]===i){r(e,s,l[4]);return}l?.[4]();let u=`data-${t}`,f=(e=>i.call(a,e)),p=()=>{o.removeEventListener(n,f),a.getAttribute(u)===``&&a.removeAttribute(u),d._l.get(c)?.[3]===f&&d._l.delete(c)};o.addEventListener(n,f),d._l.set(c,[o,n,i,f,p]),a.setAttribute(u,``),r(e,s,p,!0)},c=function({id:e,$el:t,tag:n}){let o=n.tag.endsWith(`Attrs`);if(d._e.set(e,t),!o){let a=n.textContent;a!=null&&a!==``&&(a!==t.textContent&&(t.textContent=a),r(e,`text`,()=>{t.textContent===a&&(t.textContent=``)},!0));let o=n.innerHTML;o!=null&&o!==``&&(o!==t.innerHTML&&(t.innerHTML=o),r(e,`html`,()=>{t.innerHTML===o&&(t.innerHTML=``)},!0));let s=`${e}:el`;d._s[s]=i(s)||(()=>{t?.remove(),d._e.delete(e)})}for(let r in n.props){let o=n.props[r];if(r[0]===`o`&&r[1]===`n`&&typeof o==`function`){let i=r.slice(2);t?.dataset?.[`${r}fired`]&&o.call(t,new((a?.Event)||Event)(i)),s(e,r,i,o,t,n.tag===`bodyAttrs`&&a?a:t);continue}let c=`${e}:attr:${r}`;if(r===`class`&&o)for(let e of o){let n=`${c}:${e}`;d._s[n]=i(n)||(()=>t.classList.remove(e)),t.classList.contains(e)||t.classList.add(e)}else if(r===`style`&&o)for(let[e,n]of o){let r=`${c}:${e}`;d._s[r]=i(r)||(()=>t.style.removeProperty(e)),t.style.setProperty(e,n)}else o!==!1&&o!==null&&(t.getAttribute(r)!==o&&t.setAttribute(r,o===!0?``:String(o)),d._s[c]=i(c)||(()=>t.removeAttribute(r)))}},l={shouldRender:!0,tags:[]};if(tt(e,`dom:beforeRender`,l),!l.shouldRender)return!1;let u=e._dom;u?._d!==n&&(u&&Dn(u),u=void 0),u?u._p=u._s:u=On(e,n),u._s={};let d=u,f=[],p={};e.dirty=!1;let m=Ze(e,t.tagWeight?{tagWeight:t.tagWeight}:void 0),h=[],g={};for(let e of m){let t=g[e._d]||0,i=(t?`${e._d}:${t}`:e._d)||e._h,a={tag:e,id:i,shouldRender:!0};if(e.tag===`meta`&&e._d&&rt(e._d)&&(g[e._d]=t+1),h.push(a),e.tag===`title`){n.title=e.textContent,r(`title`,``,()=>n.title=d._t);continue}a.$el=d._e.get(i),a.$el?c(a):Qe.has(e.tag)&&f.push(a)}for(let e of f)e.$el=n.createElement(e.tag.tag),c(e),(p[e.tag.tagPosition||`head`]??=n.createDocumentFragment()).appendChild(e.$el);p.head&&n.head.appendChild(p.head),p.bodyOpen&&n.body.insertBefore(p.bodyOpen,n.body.firstChild),p.bodyClose&&n.body.appendChild(p.bodyClose);for(let e in d._p)d._p[e]();e._dom=d,o=!0,tt(e,`dom:rendered`,{renders:h})}catch(t){throw e.dirty=!0,t}finally{e._du=!1}return o&&(e.dirty||En(e))&&kn(e,t),o}var An=e=>typeof e.tagPriority==`number`?e.tagPriority:100+($e[e.tagPriority]||0);function jn(e={}){e.document=e.document||(typeof window<`u`?document:void 0);let t=e.render||Tn({document:e.document}),n=Cn(_n(t,{document:e.document,propResolvers:e.propResolvers,_tagWeight:An,init:[]}),ot(e.hooks),t);return e.plugins?.forEach(e=>n.use(e)),e.init?.forEach(e=>e&&n.push(e)),n}function Mn(e={}){let t=Tn(),n,r=0;return n=jn({render:()=>{let e=++r;setTimeout(()=>{e===r&&t(n)},0)},...e}),n.install=it(n),n}var Nn={disableDefaults:!0,plugins:[ln,fn,hn,cn]},Pn=o({name:`nuxt:head`,enforce:`pre`,setup(e){Sn(e,Mn(Nn))}}),Fn=/(:\w+)\([^)]+\)/g,In=/(:\w+)[?+*]/g,Ln=/:\w+/g,Rn=(e,t)=>t.path.replace(Fn,`$1`).replace(In,`$1`).replace(Ln,t=>e.params[t.slice(1)]?.toString()||``),zn=(e,t)=>{let n=e.route.matched.find(t=>t.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Rn(e.route,n));return typeof r==`function`?r(e.route):r},Bn=(e,t)=>({default:()=>e?D(ee,e===!0?{}:e,t):t});function Vn(e){return Array.isArray(e)?e:[e]}var Hn=[Ce(async e=>{let t,n;if(!e.meta?.validate)return;let r=([t,n]=s(()=>Promise.resolve(e.meta.validate(e))),t=await t,n(),t);if(r!==!0)return Se({fatal:!0,status:r&&(r.status||r.statusCode)||404,statusText:r&&(r.statusText||r.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}})},1),Ce(async()=>{let e,n,r=I(`aw.locale`).value;if(r!==`en`&&r!==`zh-CN`)return;let i=t().$i18n;i&&r!==i.locale.value&&([e,n]=s(()=>i.setLocale(r)),e=await e,n())},1),Ce(e=>{let t=vt({path:e.path});if(t.redirect){let n=t.redirect.includes(`#`)?t.redirect:t.redirect+e.hash;return He(n,{acceptRelative:!0})?(window.location.href=n,!1):n}})],Un={},Wn=[{name:`aml-composables-useAmlDatasets`,path:`/aml/composables/useAmlDatasets`,component:()=>R(()=>import(`./B_Obcbiu.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlEntities`,path:`/aml/composables/useAmlEntities`,component:()=>R(()=>import(`./JegDslce.js`).then(e=>e.n),__vite__mapDeps([9,1,10,11,2,5,12,13,14,15,3,4,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlEnv`,path:`/aml/composables/useAmlEnv`,component:()=>R(()=>import(`./eePbiWEh.js`).then(e=>e.n),__vite__mapDeps([16,1,2,5,11,17,18,4,6,19,20,12,13,14,15,3,7,8,21]),import.meta.url)},{name:`aml-composables-useAmlExperiments`,path:`/aml/composables/useAmlExperiments`,component:()=>R(()=>import(`./D7TZLu4F.js`).then(e=>e.n),__vite__mapDeps([22,1,2,5,3,4,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlFormat`,path:`/aml/composables/useAmlFormat`,component:()=>R(()=>import(`./2v5GdspM.js`).then(e=>e.n),__vite__mapDeps([23,1,11,2,5,21]),import.meta.url)},{name:`aml-composables-useAmlJobs`,path:`/aml/composables/useAmlJobs`,component:()=>R(()=>import(`./CnYazk8d.js`).then(e=>e.n),__vite__mapDeps([24,1,2,5,11,25,12,13,14,15,3,4,6,26,27,19,7,8,23,21]),import.meta.url)},{name:`aml-composables-useAmlModels`,path:`/aml/composables/useAmlModels`,component:()=>R(()=>import(`./SvjzWbn8.js`).then(e=>e.n),__vite__mapDeps([28,1,2,11,5,12,13,14,15,3,4,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlNotes`,path:`/aml/composables/useAmlNotes`,component:()=>R(()=>import(`./B6UwtJ1a.js`).then(e=>e.n),__vite__mapDeps([29,1,2,11,5,12,13,14,15,3,4,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlPredict`,path:`/aml/composables/useAmlPredict`,component:()=>R(()=>import(`./CLFmtXU7.js`).then(e=>e.n),__vite__mapDeps([30,1,2,5,11,12,13,14,15,3,4,6,7,8]),import.meta.url)},{name:`analysis-composables-useAnalysisFeed`,path:`/analysis/composables/useAnalysisFeed`,component:()=>R(()=>import(`./BtZKe9ZV2.js`).then(e=>e.n),__vite__mapDeps([31,1,2,5,25,8,3,4,6,32]),import.meta.url)},{name:`daq-composables-useDaqAddNode`,path:`/daq/composables/useDaqAddNode`,component:()=>R(()=>import(`./BHxG41IQ2.js`).then(e=>e.n),__vite__mapDeps([33,1,2,5,3,4,6,34,25,8]),import.meta.url)},{name:`daq-composables-useDaqDetailBinding`,path:`/daq/composables/useDaqDetailBinding`,component:()=>R(()=>import(`./ChF6qLpY2.js`).then(e=>e.n),__vite__mapDeps([35,1,2,5,34,25,3,4,6,8,36]),import.meta.url)},{name:`daq-composables-useDaqDetailFrames`,path:`/daq/composables/useDaqDetailFrames`,component:()=>R(()=>import(`./-gy9k_TE2.js`).then(e=>e.i),__vite__mapDeps([37,1,5,2,34,25,3,4,6,8]),import.meta.url)},{name:`daq-composables-useDaqDetailHistory`,path:`/daq/composables/useDaqDetailHistory`,component:()=>R(()=>import(`./BZg_MIK42.js`).then(e=>e.n),__vite__mapDeps([38,1,2,5,11,17,18,4,6,19,20,34,25,3,8]),import.meta.url)},{name:`daq-composables-useDaqDetailNode`,path:`/daq/composables/useDaqDetailNode`,component:()=>R(()=>import(`./CNrRZmSx2.js`).then(e=>e.n),__vite__mapDeps([39,1,5,2,40,41,11,34,25,3,4,6,8,42,36]),import.meta.url)},{name:`daq-composables-useDaqDetailParams`,path:`/daq/composables/useDaqDetailParams`,component:()=>R(()=>import(`./CQ31GiJU2.js`).then(e=>e.n),__vite__mapDeps([43,1,2,5,3,4,6,34,25,8]),import.meta.url)},{name:`daq-composables-useDaqFilters`,path:`/daq/composables/useDaqFilters`,component:()=>R(()=>import(`./CGf9neEK2.js`).then(e=>e.i),__vite__mapDeps([44,1,2,5,11,34,25,3,4,6,8,42,36,45]),import.meta.url)},{name:`daq-composables-useDaqNodeWindow`,path:`/daq/composables/useDaqNodeWindow`,component:()=>R(()=>import(`./D-80EfyA2.js`).then(e=>e.n),__vite__mapDeps([46,1,2,5]),import.meta.url)},{name:`daq-composables-useDaqOptimizations`,path:`/daq/composables/useDaqOptimizations`,component:()=>R(()=>import(`./CZJ5cw6r2.js`).then(e=>e.n),__vite__mapDeps([47,1,2,5,42,25,3,4,6,8]),import.meta.url)},{name:`daq-composables-useDaqTemplates`,path:`/daq/composables/useDaqTemplates`,component:()=>R(()=>import(`./DJaGVY4v2.js`).then(e=>e.r),__vite__mapDeps([48,1,2,5,3,4,6,34,25,8,45]),import.meta.url)},{name:`dcw-composables-useDcwAddNode`,path:`/dcw/composables/useDcwAddNode`,component:()=>R(()=>import(`./B4GOTVfN.js`).then(e=>e.n),__vite__mapDeps([49,1,2,5,11,3,4,6,8,42,25]),import.meta.url)},{name:`dcw-composables-useDcwCards`,path:`/dcw/composables/useDcwCards`,component:()=>R(()=>import(`./SgsmmrsZ.js`).then(e=>e.n),__vite__mapDeps([50,1,5,2,42,25,3,4,6,8]),import.meta.url)},{name:`dcw-composables-useDcwDetailScope`,path:`/dcw/composables/useDcwDetailScope`,component:()=>R(()=>import(`./BkO5WdX5.js`).then(e=>e.n),__vite__mapDeps([51,1,5,2,40,41,11,34,25,3,4,6,8,42,36]),import.meta.url)},{name:`dcw-composables-useDcwDetailTemplates`,path:`/dcw/composables/useDcwDetailTemplates`,component:()=>R(()=>import(`./W0sNnJQh.js`).then(e=>e.n),__vite__mapDeps([52,1,2,5,11,3,4,6,42,25,8,45]),import.meta.url)},{name:`dcw-composables-useDcwFilter`,path:`/dcw/composables/useDcwFilter`,component:()=>R(()=>import(`./BqBTlfiz.js`).then(e=>e.n),__vite__mapDeps([53,1,2,5,42,25,3,4,6,8]),import.meta.url)},{name:`dcw-composables-useDcwLedger`,path:`/dcw/composables/useDcwLedger`,component:()=>R(()=>import(`./D9ppMCbw.js`).then(e=>e.n),__vite__mapDeps([54,1,2,42,25,3,4,5,6,8]),import.meta.url)},{name:`dcw-composables-useDcwLineMutations`,path:`/dcw/composables/useDcwLineMutations`,component:()=>R(()=>import(`./DnuJ66Jy.js`).then(e=>e.n),__vite__mapDeps([55,1,2,3,4,5,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwLineRun`,path:`/dcw/composables/useDcwLineRun`,component:()=>R(()=>import(`./iqxZGXsY.js`).then(e=>e.n),__vite__mapDeps([56,1,2,5,11,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwParamApprovals`,path:`/dcw/composables/useDcwParamApprovals`,component:()=>R(()=>import(`./BBhroEeN.js`).then(e=>e.n),__vite__mapDeps([57,1,2,5,17,18,4,6,19,20,8,3,58,59,60,61,42,25]),import.meta.url)},{name:`dcw-composables-useDcwProducts`,path:`/dcw/composables/useDcwProducts`,component:()=>R(()=>import(`./CGviZq4E.js`).then(e=>e.n),__vite__mapDeps([62,1,2,5,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwQuery`,path:`/dcw/composables/useDcwQuery`,component:()=>R(()=>import(`./Cr2xJ_CY.js`).then(e=>e.n),__vite__mapDeps([63,1,2,5,11,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwQuickActions`,path:`/dcw/composables/useDcwQuickActions`,component:()=>R(()=>import(`./DZzbCFY2.js`).then(e=>e.n),__vite__mapDeps([64,1,2,3,4,5,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwRecipes`,path:`/dcw/composables/useDcwRecipes`,component:()=>R(()=>import(`./EJkmXP432.js`).then(e=>e.n),__vite__mapDeps([65,1,2,11,5,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwTemplates`,path:`/dcw/composables/useDcwTemplates`,component:()=>R(()=>import(`./ae2-5ZPt.js`).then(e=>e.n),__vite__mapDeps([66,1,2,5,11,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwWrites`,path:`/dcw/composables/useDcwWrites`,component:()=>R(()=>import(`./8b9CKi6F.js`).then(e=>e.n),__vite__mapDeps([67,1,2,11,5,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useExpConfirmations`,path:`/dcw/composables/useExpConfirmations`,component:()=>R(()=>import(`./C14pM5G4.js`).then(e=>e.n),__vite__mapDeps([68,1,2,5,11,17,18,4,6,19,20,3,8]),import.meta.url)},{name:`dcw-composables-useRecipeDispatchApprovals`,path:`/dcw/composables/useRecipeDispatchApprovals`,component:()=>R(()=>import(`./CnrGVJIr.js`).then(e=>e.n),__vite__mapDeps([69,1,2,5,11,17,18,4,6,19,20,3,8]),import.meta.url)},{name:`logs-composables-useLogsFormat`,path:`/logs/composables/useLogsFormat`,component:()=>R(()=>import(`./DudoisLM.js`).then(e=>e.n),__vite__mapDeps([70,1,11,2,5]),import.meta.url)},{name:`logs-composables-useLogsManual`,path:`/logs/composables/useLogsManual`,component:()=>R(()=>import(`./EMbqTHfT.js`).then(e=>e.n),__vite__mapDeps([71,1,2,11,5,12,13,14,15,3,4,6,72,25,8]),import.meta.url)},{name:`logs-composables-useLogsQuery`,path:`/logs/composables/useLogsQuery`,component:()=>R(()=>import(`./CtcBhkci.js`).then(e=>e.i),__vite__mapDeps([73,1,2,5,11,12,13,14,15,72,25,3,4,6,8]),import.meta.url)},{name:`logs-composables-useLogsScope`,path:`/logs/composables/useLogsScope`,component:()=>R(()=>import(`./PbzVdCTA2.js`).then(e=>e.n),__vite__mapDeps([74,1,42,2,25,3,4,5,6,8]),import.meta.url)},{name:`workshop-composables-useAgentHarnessOptions`,path:`/workshop/composables/useAgentHarnessOptions`,component:()=>R(()=>import(`./DYQBIsiV2.js`).then(e=>e.n),__vite__mapDeps([75,1,2,5,11,76,77,4,6]),import.meta.url)},{name:`workshop-composables-useAgentTemplateActions`,path:`/workshop/composables/useAgentTemplateActions`,component:()=>R(()=>import(`./Ud9o8ItR2.js`).then(e=>e.n),__vite__mapDeps([78,1,11,2,5,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useAgentTemplateDialogState`,path:`/workshop/composables/useAgentTemplateDialogState`,component:()=>R(()=>import(`./BBhLVYdM2.js`).then(e=>e.n),__vite__mapDeps([79,1,2]),import.meta.url)},{name:`workshop-composables-useAgentTemplateForm`,path:`/workshop/composables/useAgentTemplateForm`,component:()=>R(()=>import(`./Br_q4qi72.js`).then(e=>e.n),__vite__mapDeps([80,1,2,5,11,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useAgentTemplatesCatalog`,path:`/workshop/composables/useAgentTemplatesCatalog`,component:()=>R(()=>import(`./6P4ZAzxa2.js`).then(e=>e.n),__vite__mapDeps([81,1,2,5,11,60,59,19,20,76,77,4,6,45]),import.meta.url)},{name:`workshop-composables-useTeamActions`,path:`/workshop/composables/useTeamActions`,component:()=>R(()=>import(`./DH_oqyfL.js`).then(e=>e.n),__vite__mapDeps([82,1,11,2,5,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useTeamAddMemberDialog`,path:`/workshop/composables/useTeamAddMemberDialog`,component:()=>R(()=>import(`./fIV9zbnA.js`).then(e=>e.n),__vite__mapDeps([83,1,2,5,11,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useTeamCreateDialog`,path:`/workshop/composables/useTeamCreateDialog`,component:()=>R(()=>import(`./DmReUFK1.js`).then(e=>e.n),__vite__mapDeps([84,1,2,5,11,12,13,14,15,76,77,4,6]),import.meta.url)},{name:`workshop-composables-useTeamDeployDialog`,path:`/workshop/composables/useTeamDeployDialog`,component:()=>R(()=>import(`./BY2u4LPg.js`).then(e=>e.n),__vite__mapDeps([85,1,2,5,11,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useTeamDialogState`,path:`/workshop/composables/useTeamDialogState`,component:()=>R(()=>import(`./TOWR4WpO.js`).then(e=>e.n),__vite__mapDeps([86,1,2]),import.meta.url)},{name:`workshop-composables-useTeamPluginDialog`,path:`/workshop/composables/useTeamPluginDialog`,component:()=>R(()=>import(`./BSxcHoiy.js`).then(e=>e.n),__vite__mapDeps([87,1,2,5,11,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useTeamsCatalog`,path:`/workshop/composables/useTeamsCatalog`,component:()=>R(()=>import(`./m6G-kfdj.js`).then(e=>e.n),__vite__mapDeps([88,1,2,5,11,60,59,19,20,76,77,4,6]),import.meta.url)},{name:`workshop-composables-useWorkbenchAuth`,path:`/workshop/composables/useWorkbenchAuth`,component:()=>R(()=>import(`./cKj4vSo5.js`).then(e=>e.n),__vite__mapDeps([89,1,2,5,11,12,13,14,15,60,59,19,20,3,4,6,61]),import.meta.url)},{name:`workshop-composables-useWorkbenchWorkspaces`,path:`/workshop/composables/useWorkbenchWorkspaces`,component:()=>R(()=>import(`./CZsFf7ck.js`).then(e=>e.n),__vite__mapDeps([90,1,2,5,18,4,6,19,20,11,12,13,14,15,60,59,3,91,17,25,26,27,61,58,92]),import.meta.url)},{name:`workshop-composables-useWorkspaceAuth`,path:`/workshop/composables/useWorkspaceAuth`,component:()=>R(()=>import(`./DiloA8vK.js`).then(e=>e.n),__vite__mapDeps([93,1,2,5,18,4,6,19,20,60,59,92]),import.meta.url)},{name:`workshop-composables-useWorkspaceChannels`,path:`/workshop/composables/useWorkspaceChannels`,component:()=>R(()=>import(`./Du7gS8RU.js`).then(e=>e.n),__vite__mapDeps([94,1,5,2,18,4,6,19,20,91,59,17,25,60,3,26,27,61,58,92]),import.meta.url)},{name:`workshop-composables-useWorkspacePanels`,path:`/workshop/composables/useWorkspacePanels`,component:()=>R(()=>import(`./BRci9D_l.js`).then(e=>e.n),__vite__mapDeps([95,1,2,5,92,59,19,20,60]),import.meta.url)},{name:`workshop-composables-useWorkspaceShell`,path:`/workshop/composables/useWorkspaceShell`,component:()=>R(()=>import(`./BfgTar9L.js`).then(e=>e.n),__vite__mapDeps([96,1,2,5,40,41,11,97]),import.meta.url)},{name:`workshop-w-wsId`,path:`/workshop/w/:wsId()`,meta:{layout:`default`},component:()=>R(()=>import(`./C3vxePED.js`),__vite__mapDeps([98,4,2,5,6,13,18,19,20,99,11,100,101,41,17,14,15,102,103,12,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,60,59,128,129,3,26,27,91,25,61,58,92,130,76,77,131,10,132,133,134,135,34,8,42,36,45,136,97,137,93,1,94,95,96,40,138]),import.meta.url)},{name:`aml-api`,path:`/aml/api`,component:()=>R(()=>import(`./Cn6EojFe.js`).then(e=>e.n),__vite__mapDeps([7,1,8,3,4,2,5,6]),import.meta.url)},{name:`aml-constants`,path:`/aml/constants`,component:()=>R(()=>import(`./B6Olw0Op.js`).then(e=>e.s),__vite__mapDeps([21,1]),import.meta.url)},{name:`aml-types`,path:`/aml/types`,component:()=>R(()=>import(`./BvRk9kiK.js`),[],import.meta.url)},{name:`analysis-types`,path:`/analysis/types`,component:()=>R(()=>import(`./9j2J4k4w.js`).then(e=>e.r),__vite__mapDeps([32,1]),import.meta.url)},{name:`composables-useDashboardCharts`,path:`/composables/useDashboardCharts`,component:()=>R(()=>import(`./ilJHF1nA2.js`).then(e=>e.n),__vite__mapDeps([139,1,5,2,11]),import.meta.url)},{name:`composables-useDashboardData`,path:`/composables/useDashboardData`,component:()=>R(()=>import(`./BzBBEE-o2.js`).then(e=>e.n),__vite__mapDeps([140,1,2,5,141,4,6,19,18,20,59,27,142,41,101,13,10,100,143,34,25,3,8,42,76,77]),import.meta.url)},{name:`dcw-types`,path:`/dcw/types`,component:()=>R(()=>import(`./C50LmoI1.js`),[],import.meta.url)},{name:`ontology-api`,path:`/ontology/api`,component:()=>R(()=>import(`./DWy0AjON.js`).then(e=>e.t),__vite__mapDeps([144,1,8,3,4,2,5,6]),import.meta.url)},{name:`ontology-types`,path:`/ontology/types`,component:()=>R(()=>import(`./DgrK8UCQ.js`),[],import.meta.url)},{name:`optimizer-api`,path:`/optimizer/api`,component:()=>R(()=>import(`./k9b520K-.js`).then(e=>e.t),__vite__mapDeps([145,1,8,3,4,2,5,6]),import.meta.url)},{name:`studio-board`,path:`/studio/board`,component:()=>R(()=>import(`./Co8Dcx132.js`),__vite__mapDeps([146,2,5,13,142,4,6,19,18,20,41,101,11,100,128,147,1,3,8,148,149,150]),import.meta.url)},{name:`studio-pipeline`,path:`/studio/pipeline`,component:()=>R(()=>import(`./yS3bF3G32.js`),__vite__mapDeps([151,2,5,13,142,4,6,19,18,20,41,101,10,11,100,128,3,8,149,152]),import.meta.url)},{name:`workshop-agents`,path:`/workshop/agents`,meta:{layout:`default`},component:()=>R(()=>import(`./CjdxNYpU2.js`),__vite__mapDeps([153,2,5,18,4,6,19,20,99,11,100,101,13,41,154,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,104,108,112,117,126,127,128,130,80,1,3,76,77,75,78,79,81,60,59,45,159]),import.meta.url)},{name:`workshop-channel-templates`,path:`/workshop/channel-templates`,meta:{layout:`default`},component:()=>R(()=>import(`./tDEwr422.js`),__vite__mapDeps([160,2,5,18,4,6,19,20,99,11,100,101,13,41,104,14,103,15,102,12,105,106,107,108,109,110,111,112,113,117,125,126,127,60,59,128,3,130,76,77,45,161]),import.meta.url)},{name:`workshop-schedules`,path:`/workshop/schedules`,meta:{layout:`default`},component:()=>R(()=>import(`./BwOko01T.js`),__vite__mapDeps([162,2,5,99,4,6,11,17,18,19,20,14,103,13,15,107,102,12,154,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,104,108,112,117,163,115,123,118,124,126,128,3,130,76,77,164]),import.meta.url)},{name:`workshop-teams`,path:`/workshop/teams`,meta:{layout:`default`},component:()=>R(()=>import(`./DZqVVvR0.js`),__vite__mapDeps([165,2,5,18,4,6,19,20,99,11,100,101,13,41,104,14,103,15,102,12,105,106,107,108,109,110,111,112,113,114,121,158,119,120,125,126,127,128,130,45,82,1,3,76,77,83,84,85,86,87,88,60,59,166]),import.meta.url)},{name:`daq-id`,path:`/daq/:id()`,meta:{layout:`default`},component:()=>R(()=>import(`./7OZQiw002.js`),__vite__mapDeps([167,2,5,13,142,4,6,19,18,20,41,101,11,128,26,27,130,37,1,34,25,3,8,35,36,38,17,39,40,42,43,168]),import.meta.url)},{name:`dcw-id`,path:`/dcw/:id()`,component:()=>R(()=>import(`./D1thFC3z.js`),__vite__mapDeps([169,2,5,13,142,4,6,19,18,20,41,101,11,125,14,128,8,3,26,27,61,45,136,65,1,42,25,49,51,40,34,36,52,54,56,57,17,58,59,60,62,63,67,68,69,170]),import.meta.url)},{name:`aml`,path:`/aml`,meta:{layout:`default`},component:()=>R(()=>import(`./BaYDgyaR.js`),__vite__mapDeps([171,2,5,13,99,4,6,11,17,18,19,20,12,14,15,128,3,91,59,25,60,26,27,61,58,7,1,8,0,9,10,21,16,22,23,24,28,29,30,130,172,173]),import.meta.url)},{name:`analysis`,path:`/analysis`,component:()=>R(()=>import(`./DOUuGOQR2.js`),__vite__mapDeps([174,2,5,13,11,12,14,15,117,103,102,60,59,19,20,128,3,4,6,8,26,27,91,17,18,25,61,58,32,1,31,74,42,175]),import.meta.url)},{name:`daq`,path:`/daq`,meta:{layout:`default`},component:()=>R(()=>import(`./U_n8pryv2.js`),__vite__mapDeps([176,2,5,13,99,4,6,142,19,18,20,41,101,11,12,14,15,125,128,3,91,59,17,25,60,26,27,61,58,130,172,34,8,42,36,33,1,44,45,46,47,48,72,177]),import.meta.url)},{name:`data`,path:`/data`,component:()=>R(()=>import(`./-gwj-zlk2.js`),__vite__mapDeps([178,2,5,13,11,100,101,18,4,6,19,20,41,17,128,147,1,3,8,179]),import.meta.url)},{name:`dcw`,path:`/dcw`,component:()=>R(()=>import(`./DGmFHb7m.js`),__vite__mapDeps([180,2,5,13,142,4,6,19,18,20,41,101,11,128,42,25,3,8,45,68,1,17,50,53,55,64,66,181]),import.meta.url)},{name:`logs`,path:`/logs`,component:()=>R(()=>import(`./zWZ26UWi.js`),__vite__mapDeps([182,2,5,13,155,14,103,15,107,113,105,111,120,156,157,128,91,59,19,20,17,18,4,6,25,60,3,26,27,61,58,42,8,74,1,72,70,11,71,12,73,183]),import.meta.url)},{name:`monitor`,path:`/monitor`,meta:{layout:`default`},component:()=>R(()=>import(`./BfvuWqSa.js`),__vite__mapDeps([184,2,5,18,4,6,19,20,11,14,15,13,154,103,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,117,163,115,108,112,126,60,59,128,130,185,1,186,26,27,131,10,123,118,132,187,17,61,188,189]),import.meta.url),children:[{name:`monitor-composables-useMonitorColumns`,path:`composables/useMonitorColumns`,component:()=>R(()=>import(`./BK4wbfGS.js`).then(e=>e.r),__vite__mapDeps([185,1,5,2,11,60,59,19,20]),import.meta.url)},{name:`monitor-composables-useMonitorData`,path:`composables/useMonitorData`,component:()=>R(()=>import(`./CRCrWy-6.js`).then(e=>e.n),__vite__mapDeps([187,1,2,5,11,17,18,4,6,19,20,12,13,14,15,60,59,26,27,61]),import.meta.url)},{name:`monitor-composables-useMonitorFormat`,path:`composables/useMonitorFormat`,component:()=>R(()=>import(`./jDuiDtGb.js`).then(e=>e.r),__vite__mapDeps([186,1,11,2,5,26,27,4,6,19]),import.meta.url)},{name:`monitor-composables-useMonitorTerminal`,path:`composables/useMonitorTerminal`,component:()=>R(()=>import(`./BxHBIVAg.js`).then(e=>e.n),__vite__mapDeps([188,1,2]),import.meta.url)},{name:`monitor-types`,path:`types`,component:()=>R(()=>import(`./DybRo6-H.js`),[],import.meta.url)}]},{name:`ontology`,path:`/ontology`,component:()=>R(()=>import(`./D8AvmPUH.js`),__vite__mapDeps([190,2,5,13,11,154,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,123,118,127,60,59,19,20,128,3,4,6,144,1,8,191]),import.meta.url)},{name:`operations`,path:`/operations`,component:()=>R(()=>import(`./C4tXwpSt.js`),__vite__mapDeps([192,2,5,13,155,14,103,15,107,113,105,111,120,156,157,128,26,27,4,6,19,91,59,20,17,18,25,60,3,61,58,74,1,42,8,72,193,194]),import.meta.url),children:[{name:`operations-composables-useOperationsFeed`,path:`composables/useOperationsFeed`,component:()=>R(()=>import(`./DRskyE7l.js`).then(e=>e.o),__vite__mapDeps([193,1,2,5,72,25,3,4,6,8]),import.meta.url)}]},{name:`optimizer`,path:`/optimizer`,meta:{layout:`default`},component:()=>R(()=>import(`./BPUQZ9Lq2.js`),__vite__mapDeps([195,2,5,13,99,4,6,11,128,130,145,1,8,3,196]),import.meta.url)},{name:`permissions`,path:`/permissions`,component:()=>R(()=>import(`./26OL4Ao82.js`),__vite__mapDeps([197,2,5,13,18,4,6,19,20,11,154,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,163,115,108,123,118,60,59,128,3,61,198]),import.meta.url)},{name:`plugins`,path:`/plugins`,component:()=>R(()=>import(`./BVg2R2VB2.js`),__vite__mapDeps([199,2,5,13,11,12,14,15,116,123,118,126,105,60,59,19,20,128,3,4,6,61,45,200,201,202,203]),import.meta.url)},{name:`settings`,path:`/settings`,component:()=>R(()=>import(`./CBkXv24C2.js`),__vite__mapDeps([204,4,2,5,6,13,59,19,20,141,18,27,142,41,101,10,100,11,12,14,15,113,103,107,105,106,116,163,115,108,114,102,121,110,122,111,124,125,126,60,205,77,143,128,3,8,76,200,201,202,206]),import.meta.url)},{name:`studio`,path:`/studio`,component:()=>R(()=>import(`./CNRjkgAZ2.js`),__vite__mapDeps([207,2,5,13,18,4,6,19,20,142,41,101,11,100,128,147,1,3,8,148,149,208]),import.meta.url)},{name:`tokens`,path:`/tokens`,meta:{layout:`default`},component:()=>R(()=>import(`./DuUc4bbY2.js`),__vite__mapDeps([209,2,5,13,18,4,6,19,20,99,11,154,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,117,163,115,108,112,60,59,128,130,210,1,3,211,212,213,214,215]),import.meta.url),children:[{name:`tokens-composables-useTokenClipboard`,path:`composables/useTokenClipboard`,component:()=>R(()=>import(`./DkJVtqfc2.js`).then(e=>e.n),__vite__mapDeps([212,1]),import.meta.url)},{name:`tokens-composables-useTokenCreate`,path:`composables/useTokenCreate`,component:()=>R(()=>import(`./Dt8TL8_X2.js`).then(e=>e.n),__vite__mapDeps([211,1,2,5,11,12,13,14,15,60,59,19,20,3,4,6,212]),import.meta.url)},{name:`tokens-composables-useTokenRename`,path:`composables/useTokenRename`,component:()=>R(()=>import(`./DW4ZgInh2.js`).then(e=>e.n),__vite__mapDeps([213,1,2,11,5,12,13,14,15,60,59,19,20,3,4,6]),import.meta.url)},{name:`tokens-composables-useTokenReveal`,path:`composables/useTokenReveal`,component:()=>R(()=>import(`./DwgVlehj2.js`).then(e=>e.r),__vite__mapDeps([214,1,2,11,5,12,13,14,15,60,59,19,20,212]),import.meta.url)},{name:`tokens-composables-useTokensList`,path:`composables/useTokensList`,component:()=>R(()=>import(`./ByTnUqFw2.js`).then(e=>e.n),__vite__mapDeps([210,1,2,5,11,12,13,14,15,60,59,19,20,3,4,6]),import.meta.url)}]},{name:`tools`,path:`/tools`,component:()=>R(()=>import(`./byZYInPk2.js`),__vite__mapDeps([216,2,5,11,154,13,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,123,118,128,3,4,6,76,77,217]),import.meta.url)},{name:`town`,path:`/town`,meta:{layout:`town`,title:`Digital Twin`},component:()=>R(()=>import(`./D9GoOkyP2.js`),__vite__mapDeps([218,2,5,18,4,6,19,20,59,60,128,91,17,25,3,26,27,61,58,92,130,133,13,10,11,77,134,135,129,34,8,42,36,45,136,97,137,219]),import.meta.url)},{name:`users`,path:`/users`,component:()=>R(()=>import(`./DhLlTxQh2.js`),__vite__mapDeps([220,2,5,99,4,6,11,154,13,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,117,163,115,108,112,60,59,19,20,128,61,221]),import.meta.url)},{name:`workshop`,path:`/workshop`,meta:{layout:`default`},component:()=>R(()=>import(`./dHwWyr6b.js`),__vite__mapDeps([222,2,5,13,18,4,6,19,20,99,11,100,101,41,12,14,15,106,107,103,105,112,125,60,59,128,3,223,115,108,114,102,163,224,130,89,1,61,90,91,17,25,26,27,58,92,225]),import.meta.url)},{name:`index`,path:`/`,component:()=>R(()=>import(`./B0UUODeh.js`),__vite__mapDeps([226,2,5,18,4,6,19,20,99,142,41,101,13,11,100,128,147,1,172,17,139,140,141,59,27,10,143,34,25,3,8,42,76,77,200,201,202,227]),import.meta.url)}];function Gn(e,t,n){let{pathname:r,search:i,hash:a}=t,o=e.indexOf(`#`);if(o>-1){let t=a.includes(e.slice(o))?e.slice(o).length:1,n=a.slice(t);return n[0]!==`/`&&(n=`/`+n),Ie(n,``)}let s=Ie(r,e),c=!n||Ne(s,n)?s:n;return c+(c.includes(`?`)?``:i)+a}var Kn=o({name:`nuxt:router`,enforce:`pre`,async setup(e){let t,n,r=a().app.baseURL,i=L.history?.(r)??St(r),o=L.routes?([t,n]=s(()=>L.routes(Wn)),t=await t,n(),t??Wn):Wn,c,l=Ct({...L,scrollBehavior:(e,t,n)=>{if(t===bt){c=n;return}if(L.scrollBehavior){if(l.options.scrollBehavior=L.scrollBehavior,`scrollRestoration`in window.history){let e=l.beforeEach(()=>{e(),window.history.scrollRestoration=`manual`})}return L.scrollBehavior(e,bt,c||n)}},history:i,routes:o});`scrollRestoration`in window.history&&(window.history.scrollRestoration=`auto`),e.vueApp.use(l);let u=d(l.currentRoute.value);l.afterEach((e,t)=>{u.value=t}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>u.value});let f=Gn(r,window.location,e.payload.path),g=d(l.currentRoute.value),_=()=>{g.value=l.currentRoute.value};l.afterEach((e,t)=>{let n=e.matched.at(-1)?.components?.default,r=t.matched.at(-1)?.components?.default;if(n===r){zn({route:e,Component:{type:n}})===zn({route:t,Component:{type:r}})&&_();return}e.matched.length<t.matched.length&&e.matched.every((e,n)=>e.components?.default===t.matched[n]?.components?.default)&&_()});let v={sync:_};for(let e in g.value)Object.defineProperty(v,e,{get:()=>g.value[e],enumerable:!0});e._route=p(v),e._middleware||={global:[],named:{}};let y=Oe();l.afterEach(async(t,n,r)=>{delete e._processingMiddleware,!e.isHydrating&&y.value&&await e.runWithContext(De),r&&await e.callHook(`page:loading:end`)});try{[t,n]=s(()=>l.isReady()),await t,n()}catch(r){[t,n]=s(()=>we(e,r)),await t,n()}let b=f===l.currentRoute.value.fullPath?l.currentRoute.value:l.resolve(f),x=l.currentRoute.value.fullPath,S=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&f!==e.payload.path&&Ne(l.currentRoute.value.path,e.payload.path);_();function C(t){!e.isHydrating&&t.fullPath!==Gn(r,window.location)&&i.push(t.fullPath)}let w=e.payload.state._layout;return l.beforeEach(async(t,n)=>{await e.callHook(`page:loading:start`),t.meta=m(t.meta),e.isHydrating&&w&&!h(t.meta.layout)&&(t.meta.layout=w),e._processingMiddleware=!0;{let r=new Set([...Hn,...e._middleware.global]);for(let e of t.matched){let t=e.meta.middleware;if(t)for(let e of Vn(t))r.add(e)}let i=vt({path:t.path});if(i.appMiddleware)for(let e in i.appMiddleware)i.appMiddleware[e]?r.add(e):r.delete(e);for(let i of r){let r=typeof i==`string`?e._middleware.named[i]||await Un[i]?.().then(e=>e.default||e):i;if(!r)throw xe.NUXT_E2004({entry:String(i),validMiddleware:void 0});try{let i=await e.runWithContext(()=>r(t,n));if(!e.payload.serverRendered&&e.isHydrating&&(i===!1||i instanceof Error)){let t=i||Se({status:404,statusText:`Page Not Found: ${f}`});return await e.runWithContext(()=>Te(t)),!1}if(i===!0)continue;if(i===!1)return i;if(i)return ve(i)&&i.fatal&&(await e.runWithContext(()=>Te(i)),C(t)),i}catch(n){let r=Se(n);return r.fatal&&(await e.runWithContext(()=>Te(r)),C(t)),r}}}}),l.onError(async()=>{delete e._processingMiddleware,await e.callHook(`page:loading:end`)}),l.afterEach(t=>{if(t.matched.length===0&&!y.value)return e.runWithContext(()=>Te(Se({status:404,fatal:!1,statusText:`Page not found: ${t.fullPath}`,data:{path:t.fullPath}})))}),e.hooks.hookOnce(`app:created`,async()=>{try{if(`name`in b&&(b.name=void 0),l.currentRoute.value.fullPath===x){if(S){let t=l.resolve(e.payload.path);`name`in t&&(t.name=void 0),await l.replace({...t,force:!0});let n=()=>{e[`~restoreDeferredRoute`]&&(e[`~restoreDeferredRoute`]=void 0,l.currentRoute.value=l.resolve(f),_(),l.replace({...b,force:!0}).catch(()=>{}))};e[`~restoreDeferredRoute`]=n,e.hooks.hookOnce(`app:suspense:resolve`,n)}else await l.replace({...b,force:!0})}l.options.scrollBehavior=L.scrollBehavior}catch(t){await we(e,t)}}),{provide:{router:l}}}},1),qn=o({name:`nuxt:payload`,setup(e){let t=new Set;F().beforeResolve(async(n,r)=>{let i=gt(n.path),a=i?Fe(n.fullPath):n.path;if(a===(i?Fe(r.fullPath):r.path))return;let o=await ut(a);if(o){for(let n of t)delete e.static.data[n];for(let n in o.data)n in e.static.data||t.add(n),e.static.data[n]=o.data[n]}}),Ot(()=>{e.hooks.hook(`link:prefetch`,async e=>{let{hostname:t,pathname:n}=new URL(e,window.location.href);t===window.location.hostname&&await ut(e).catch(()=>{st.NUXT_E7003({url:e})})}),navigator.connection?.effectiveType!==`slow-2g`&&setTimeout(ft,1e3)})}}),Jn=o(()=>{let e=F();Ot(()=>{e.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})}),Yn=o(e=>{let t;async function n(){let r;try{r=await ft()}catch(e){let t=e;if(!(`status`in t&&(t.status===404||t.status===403)))throw t}t&&clearTimeout(t),t=setTimeout(n,fe);try{let n=await Ye(Ge(`builds/latest.json`)+`?${Date.now()}`);n.id!==r?.id&&(e.hooks.callHook(`app:manifest:update`,n),t&&clearTimeout(t))}catch{}}Ot(()=>{t=setTimeout(n,fe)})});function Xn(e={}){let n=e.path||window.location.pathname,r=new URL(n,window.location.href);if(r.host!==window.location.host)throw xe.NUXT_E2010({path:n});if(r.protocol&&Be(r.protocol))throw xe.NUXT_E2002({toPath:n,protocol:r.protocol});let i={};try{i=JSON.parse(sessionStorage.getItem(`nuxt:reload`)||`{}`)}catch{}if(e.force||i?.path!==n||i?.expires<Date.now()){try{sessionStorage.setItem(`nuxt:reload`,JSON.stringify({path:n,expires:Date.now()+(e.ttl??1e4)}))}catch{}if(e.persistState)try{sessionStorage.setItem(`nuxt:reload:state`,JSON.stringify({state:t().payload.state}))}catch{}window.location.pathname===n?window.location.reload():window.location.href=n}}var Zn=o({name:`nuxt:chunk-reload-crawler`,setup(e){let t=!0;e.hooks.hookOnce(`app:suspense:resolve`,()=>{t=!1}),e.hook(`app:chunkError`,()=>{t&&ge(navigator.userAgent)&&Xn()})}}),Qn=o({name:`nuxt:chunk-reload`,setup(e){let t=F(),n=a(),r=new Set;t.beforeEach(()=>{r.clear()}),e.hook(`app:chunkError`,({error:e})=>{r.add(e)});function i(e){Xn({path:Pe(n.app.baseURL,e.fullPath),persistState:!0})}e.hook(`app:manifest:update`,()=>{t.beforeResolve(i)}),t.onError((e,t)=>{r.has(e)&&i(t)})}}),$n=o({name:`nuxt:island-link-navigation`,setup(e){}}),er={common:{stop:`停止`,add:`添加`,remove:`移除`,create:`创建`,revoke:`吊销`,close:`关闭`,light:`亮色`,dark:`暗色`,confirm:`确定`,cancel:`取消`,save:`保存`,search:`搜索`,actions:`操作`,edit:`编辑`,delete:`删除`,status:`状态`,all:`全部`,copy:`复制`,copied:`已复制`},menu:{system:`AgentWorkShop`,groups:{console:`控制台`,ops:`运维`,system:`系统`},ontology:`本体模型`,dashboard:`仪表盘`,workshop:`Agent 工作台`,town:`数字孪生`,tokens:`API Token`,daq:`数采中心`,dcw:`产线运营`,dataManagement:`数据管理`,studio:`EDA 工坊`,aml:`建模`,optimizer:`优化器`,logs:`产线日志`,operations:`产线操作`,analysis:`数据分析`,users:`用户管理`,monitor:`运行时监控`,plugins:`插件管理`,tools:`工具管理`,settings:`系统设置`,permissions:`权限管理`},header:{collapse:`折叠菜单`,expand:`展开菜单`,openNav:`打开导航`,closeNav:`关闭导航`,language:`语言`,theme:`主题`,fullscreen:`全屏`,notifications:`通知`,profile:`个人中心`,guest:`访客`,login:`登录`,guestBanner:`以访客身份浏览:登录后可查看与操作您的产线`,logout:`退出登录`,trail:`航迹导航(点击返回对应页面)`,workspace:`工作台`,nodeDetail:`数采节点`,lineDetail:`产线作业`},home:{kicker:`DIGITAL TWIN · 产线运营`,heroTitle:`虚实映射的产线`,heroAccent:`运营中枢`,heroSub:`智控下发与数采回流同屏共振:配方开跑、参数设定、实时工况、越限告警一屏尽览,孪生界面与真实 PLC 同拍运行。`,ctaTown:`进入数字孪生`,ctaLine:`产线运营管理`,live:`LIVE`,kpi:{lines:`运行产线`,dcwNodes:`控制节点`,daqNodes:`数采通道`,samples:`累计采集样本`,writeRate:`写命令成功率`,alarms:`活跃告警`},charts:{trend:`实时工况趋势`,trendSub:`按节点量程归一化 · 近 3 分钟`,lineState:`产线运行状态`,pipeline:`数采管线吞吐`,writeCtl:`写控制成功率`,nodeState:`节点状态分布`,lines:`产线清单`},trendY:`量程占比 %`,trendWaiting:`正在等待实时数据流…`,trendNeedRun:`数采由活动批次门控:产线未开跑时不采样。在「产线运营」开跑后,此处显示实时趋势。`,runNow:`运行中`,standBy:`待机`,pipelineSeries:{produced:`已发布`,consumed:`已消费`,stored:`已入库`},stateDaq:`数采节点`,stateDcw:`控制节点`,states:{ok:`正常`,warn:`预警`,alarm:`告警`,writing:`写入中`,idle:`待机`,error:`故障`,offline:`离线`},batch:`运行批次`,nodesUnit:`控制节点`,daqUnit:`数采通道`,tagged:`已打标样本`,noLine:`暂无产线 —— 前往「产线运营」创建`,fleetAll:`查看全部产线`,fleetHint:`运行中优先 · 最多展示 8 条`,writesFailed:`失败`,harness:{title:`执行引擎`,sub:`Harness CLI 环境探测 · 就绪即可派工`,missing:`未安装`},fields:{name:`应用名称`,version:`版本`,mode:`运行模式`,devPort:`开发端口`,prodPort:`生产端口`,apiBase:`API 基址`,primary:`主题色`}},users:{krkb23h011:`{p0} 角色已调整为 {p1}`,k1u7u12g012:`{p0} 已{p1}`,knh5f2r013:`已删除 {p0}`,k3xhfg009:`启用`,k3wsi1010:`停用`,k1jk2os9001:`删除该用户?(其名下资源保留,归属仍可追溯)`,k1flpho5002:`管理全局用户与角色(admin 拥有最高权限:全量监控、任意模板、用户管理)。`,kpdo6rc003:`需要管理员权限`,k1mue9bl004:`用户管理仅对 admin 角色开放;请联系管理员调整角色。`,k3xakp005:`删除`,k1br33vc006:`加载失败`,k1enhqn3007:`更新失败`,k1bphrb3008:`删除失败`,title:`用户管理`,subtitle:`管理系统用户、角色与访问权限`,add:`新增用户`,search:`搜索用户名或邮箱`,deleteConfirm:`确定要删除该用户吗?`,name:`用户名`,email:`邮箱`,role:`角色`,created:`创建时间`,roleAdmin:`管理员`,roleEditor:`编辑`,roleUser:`普通用户`,active:`正常`,disabled:`已禁用`},settings:{title:`系统设置`,subtitle:`配置应用基本信息、主题外观与通知偏好`,basic:`基本设置`,basicDesc:`应用的名称、描述等基础信息`,theme:`主题设置`,themeDesc:`自定义主色调与显示模式`,notification:`通知设置`,notificationDesc:`管理系统消息通知的推送方式`,appName:`应用名称`,appDesc:`应用描述`,primaryColor:`主题色`,themeMode:`显示模式`,appearanceDesc:`主题色、深浅模式与语言偏好,实时生效并自动持久化(localStorage)。`,accentDesc:`默认品牌绿,与 Digital Twin 控制室同源;可选低饱和预设,悬停预览即时生效。`,accentInk:`品牌`,accentStone:`琥珀`,accentMoss:`苔绿`,accentSlate:`靛蓝`,accentPlum:`紫檀`,accentClay:`陶赭`,accentApplied:`主题色已应用`,accentReset:`已恢复默认主题色(跟随 config.yml)`,accentResetAction:`恢复默认`,darkDesc:`深海军蓝控制室暗阶,与数字孪生空间同一视觉语言;亮色模式保留编辑风格。`,languageDesc:`界面语言(zh-CN / en),选择即生效。`,systemTab:`系统`,systemDesc:`只读运行参数(同源 config.yml,经 nuxt.config runtimeConfig 注入)。`,identity:`当前身份`,identityGuest:`当前未登录(工作台数据需登录后查看)`,emailNotify:`邮件通知`,emailNotifyDesc:`重要事件通过邮件推送给管理员`,smsNotify:`短信通知`,smsNotifyDesc:`紧急告警通过短信即时送达`,pushNotify:`站内推送`,pushNotifyDesc:`浏览器内实时消息提醒`,saveSuccess:`设置已保存`,runtimeTab:`运行配置`,runtime:{groupMemory:`记忆系统`,groupOmp:`Agent Harness`,groupDcw:`数控写控`,groupWorkshop:`车间运行`,groupBackup:`数据备份`,groupRetention:`数据保留`,groupOptimizer:`优化器求解器`,groupLog:`日志`,title:`运行配置`,desc:`服务端持久化的运行参数:live 键保存即热重载生效(无需刷新),restart 键下次启动生效。与 CLI(aw config)同源同通道。`,live:`实时`,restart:`重启`,save:`保存设置`,resetAll:`恢复全部默认`,resetKey:`恢复默认值`,savedLive:`已保存,live 键已热重载生效`,restartNotice:`已保存。以下键需重启对应模式后生效:{keys}`,keyReset:`已恢复默认:{key}`,resetAllDone:`全部运行时覆盖已清空(回落 config.yml)`,groupServer:`服务`,groupApp:`应用`,groupTheme:`主题`,groupI18n:`国际化`,groupSecurity:`安全`,groupDaq:`数采`,groupApi:`API`,groupHarness:`Harness 接入`,groupPlugins:`插件`,memory:{primerTokens:`记忆引子预算`,injectTotal:`记忆注入硬顶`,maintenanceMs:`记忆维护周期(ms)`,expireDays:`情景记忆过期(天)`,expireSessionDays:`会话记忆过期(天)`,cap:`记忆条目上限`,reflectTrigger:`反思触发阈值`,embedBaseUrl:`Embedding 端点`,embedModel:`Embedding 模型`,embedApiKey:`Embedding 密钥`},omp:{compactEnabled:`上下文自动压缩`,compactThreshold:`压缩阈值`,compactMinIntervalMs:`压缩最小间隔(ms)`,compactWaitMs:`压缩等待超时(ms)`},dcw:{rollbackCooldownMs:`回退冷却(ms)`,rollbackMinWindowMs:`回退最小观察窗(ms)`,rollbackBaselineMs:`基线稳定窗(ms)`,rollbackStaleMs:`open 记录过期(ms)`},workshop:{idleSweepMs:`空产线扫描(ms)`,idleGraceMs:`空闲宽限(ms)`},backup:{disabled:`禁用自动备份`,intervalHours:`备份间隔(h)`,keep:`备份保留份数`},retention:{disabled:`禁用数据保留策略`,eventsDays:`事件保留(天)`,messagesDays:`消息保留(天)`,auditDays:`审计日志保留(天)`,approvalDays:`审批历史保留(天)`,analysisDays:`分析报告保留(天)`,optimizerDays:`优化运行保留(天)`,processModelDays:`过程模型台账保留(天)`},optimizer:{poolSize:`Solver 进程池上限`,requestTimeoutMs:`Solver 请求超时(ms)`,threads:`Solver 线程预算`,crosscheckTol:`互校一致性容差`},log:{level:`日志级别`},daq:{mqttQos:`MQTT QoS`,mqttUsername:`MQTT 用户名`,mqttPassword:`MQTT 密码`,mqttCaFile:`MQTT CA 证书`,mqttRejectUnauthorized:`MQTT 校验证书`,samplingDefaultIntervalMs:`节点采样默认间隔(ms)`,samplingMinIntervalMs:`节点采样下限(ms)`,queryDefaultBucketMs:`时序查询默认间隔(ms)`,queryMinBucketMs:`时序查询下限(ms)`,tsRetentionH:`标量时序保留(h)`,frameRetentionH:`帧元数据保留(h)`,alarmWebhookUrl:`告警 Webhook`,alarmEscalateMinutes:`告警升级时限(min)`,startInfrastructure:`数采基础设施拉起策略`,mqttHost:`MQTT Broker 地址`,mqttPort:`MQTT Broker 端口`,tsHost:`时序库地址`,tsPort:`时序库端口`,publishDefaultIntervalMs:`WS 下发默认间隔(ms)`,publishMinIntervalMs:`WS 下发下限(ms)`,queryDisplayIntervalMs:`趋势图刷新间隔(ms)`,queryMinDisplayIntervalMs:`趋势图刷新下限(ms)`,export:{pagesPerNode:`导出单节点分页上限`,windowMaxH:`导出时间窗上限(h)`}},aml:{pythonBin:`Python 解释器`,uvBin:`uv 可执行`,indexUrl:`pip 镜像源`,jobTimeoutMs:`作业墙钟超时(ms)`,jobMaxConcurrent:`最大并发作业`,jobDiskQuotaMb:`AML 磁盘配额(MB)`,jobStallMs:`作业停摆判定(ms)`,datasetMaxRows:`数据集行数上限`,datasetRetentionDays:`无引用数据集保留(天)`,allowCrossRecipe:`允许跨 Recipe 合并`,retiredKeepDays:`退役模型工件保留(天)`,gateNrmse:`门禁:单步 NRMSE`,gateRolloutNrmse:`门禁:多步滚动 NRMSE`,gateValTestGap:`门禁:泛化差`,gateMinRows:`门禁:最少样本行`,gateMinRuns:`门禁:最少批次数`,uqFreshDays:`UQ 证据保鲜天数`},security:{hitlTimeoutMs:`HITL 审批超时(ms)`,hitlTimeoutMode:`HITL 超时语义`,approvalGate:`高危操作双人复核`,allowRegistration:`开放自助注册`,hstsEnabled:`下发 HSTS 头`,recipeDispatchApproval:`配方下发人工审批`,recipeDispatchApprovalDesc:`开启后 recipe_trial/recipe_apply 下发前挂起等待人工裁决:批准=执行;拒绝可附指导,Agent 按指导修订后重新提交`,recipeDispatchTimeoutMs:`配方方案审批超时(ms)`},server:{host:`监听地址`,devPort:`开发端口`,prodPort:`生产端口`},app:{title:`应用标题`,description:`应用描述`},api:{baseURL:`API 基址`,timeout:`API 超时(ms)`,pageSize:`默认分页大小`,maxPageSize:`分页大小上限`},theme:{primaryColor:`主题色`,mode:`显示模式`},i18n:{defaultLocale:`默认语言`},time:{timeZone:`系统时区(日志/聊天/审计/调度)`}},groups:{toggleAll:`展开/收起全部分组`,expandAll:`全部展开`,collapseAll:`全部收起`,count:`共 {p0} 个分组`,newGroup:`新建分组`,namePlaceholder:`分组名称(如「现场网络」)`,descPlaceholder:`分组说明(可选)`,defaultCollapsed:`默认折叠`,create:`创建`,cancel:`取消`,ok:`确定`,rename:`重命名`,moveUp:`上移`,moveDown:`下移`,delete:`删除分组`,created:`分组已创建`,renamed:`分组已重命名`,deleted:`分组已删除`,createFail:`创建分组失败`,updateFail:`更新分组失败`,deleteFail:`删除分组失败`,deleteHasFields:`分组「{p0}」还有 {p1} 个字段,请先移走再删除`,fields:`{p0} 项`,emptyHint:`该分组暂无字段 —— 可用 API 或插件向此分组登记配置项`,srcBuiltin:`内置`,srcUser:`自建`,srcPlugin:`插件`}},monitor:{k1dzryry003:`我的资源`,k16zpmg9002:`admin 全量视图`,k1dg9sr8001:`归属用户`,title:`运行时监控`,subtitle:`已装配的 ChannelRuntime / AgentRuntime 与 harness 进程台账`,refresh:`刷新`,autoRefresh:`自动刷新`,needLogin:`需要登录后才能查看运行时资源`,goLogin:`前往登录`,loadFailed:`加载监控数据失败`,failed:`操作失败`,channels:`Channel 运行时`,agents:`Agent 运行时`,aliveProcesses:`活跃 harness 进程`,orphan:`孤儿`,server:`服务进程`,updated:`快照`,channelRuntimes:`ChannelRunTime`,agentRuntimes:`AgentRunTime`,harnessProcesses:`harness 进程`,chChannel:`Channel`,members:`成员数`,wired:`已装配`,scheduler:`调度循环`,scheduling:`运行中`,lead:`Lead`,name:`名称`,role:`角色`,harness:`harness`,state:`状态`,stateIdle:`空闲`,stateBusy:`执行中`,stateStopped:`已停止`,currentTask:`当前任务`,queue:`队列`,channel:`Channel`,actions:`操作`,terminate:`终止`,terminated:`已终止`,terminateConfirm:`终止该进程后,对应 AgentRuntime 将随之停止并卸载。确认终止`,terminatePidConfirm:`强杀该进程(PID),若已绑定 runtime 会一同停止。确认终止`,binding:`归属`,bound:`已绑定`,agent:`Agent`,command:`命令`,startedAt:`启动时间`,alive:`存活`,exited:`已退出`,openTerminal:`终端`,openTerminalHint:`接入该 omp 进程的原生终端(实时 TUI 输出 + HITL 人工控制)`},terminal:{title:`harness 原生终端`,abort:`中止回合`,clear:`清屏`,stateIdle:`空闲`,stateRunning:`回合执行中`,stateStreaming:`流式输出中`,stateExited:`进程已退出`,connOpen:`已连接`,connConnecting:`连接中`,connRetrying:`重连中`,connClosed:`未连接`,hint:`终端内直接输入并回车注入 omp 会话(流式中=steer 同轮注入 / 空闲=follow_up 新回合)/ ↑↓ 历史 / Ctrl+C 中止`,hitlTitle:`HITL 对话框 · 等待你的回答`,hitlCancel:`取消对话框`,hitlConfirm:`确认`,hitlDeny:`拒绝`,hitlSubmit:`提交`},agents:{hMock:`mock(测试)`,hOmp:`omp(真实 LLM)`,badConfigJson:`config 不是合法 JSON`,toPrivate:`点击转为私有`,toPublic:`点击公开(全员可读可用)`,builtinNoEdit:`内置模板不可修改`,ownerOnlyEdit:`仅属主可修改`,builtinNoDelete:`内置模板不可删除`,readOnly:`只读`,editTpl:`编辑模板`,newTpl:`新建模板`,configLabel:`config(JSON;mock 可配 delayMs)`,notInstalled:`未安装`,installLink:`前往官网安装 ↗`,harnessInprocess:`进程内引擎 · 恒可用`,k3pa5h4025:`模板库`,k3xhia001:`名称`,k3lrqn0002:`可见性`,k3l98u7003:`创建者`,k3mr526004:`实例数`,k3xhfg005:`启用`,k40aa6006:`操作`,keetzvf007:`删除模板?(已克隆实例保留)`,k5nsz7y008:`模板按用户隔离:私有仅本人可见;公开后全员可读可用(仅属主可修改);内置模板公开且不可变更。`,krpx6qa009:`返回工作区`,k1efixrj010:`新建模板`,ka1gpdj011:`admin 视图:可见全部用户的模板与创建者`,k45eb0012:`编辑`,k3xakp013:`删除`,k1d036zs014:`尚无实例`,k17jfge3015:`私有(仅本人可见)`,k1tt5zyo016:`公开(全员可读可用,仅本人可修改)`,k3x23c017:`内置`,k3wv1t018:`公开`,k447jj019:`私有`,k3n9aij020:`已更新`,k3n5hak021:`已创建`,k3n5sd7022:`已删除`,kxa6cxx023:`已公开:全员可读可用,仅你可修改`,k1xxabaf024:`已转为私有`},ctpl:{visPublic:`公开`,visPrivate:`私有`,newTplTitle:`新建 Channel 模板`,leadTplLabel:`Lead 模板(实例化时克隆为 channel lead)`,kefkfnl030:`已实例化:{p0}(成员 {p1} 个),到工作区挂载使用`,kbInstTitle:`实例化 {p0}`,kbOption:`知识库集成(rag-bridge)`,kbHint:`开启后本频道加载知识库插件:优化前先检索场景数据分析与物理机理,收口后由 lead 把经验沉淀入知识库;lead 还可用 team_grant_nodes 把自己绑定的节点授权给 worker。`,kbOn:`开启`,kbOff:`关闭`,k1f54iqd029:`模板中心`,k117jag9001:`删除模板?(已实例化的 Channel 不受影响)`,knjomku002:`按模板新建 Channel(成员自动装配)`,k1f55q76003:`模板名称`,k40gkk004:`描述`,k1ju32o7005:`选择 lead 模板(可空)`,k5uq1js006:`Worker 成员模板(实例化时逐个克隆)`,kqmdkc9007:`选择成员模板(可空)`,k1q87yho008:`作业场景 Prompt(注入全部成员)`,kk4u5cr009:`工作目录(留空 = 实例化时默认)`,k3lrqn0010:`可见性`,k18gglgp011:`场景 + 工作目录 + 团队的组合模板;一键实例化为 Channel(成员自动装配)。模板按用户隔离,公开后全员可用。`,krpx6qa012:`返回工作区`,k1efixrj013:`新建模板`,ka1gpdj014:`admin 视图:可见全部用户的模板与创建者`,k3rx4ps015:`空团队`,k3xakp016:`删除`,k3mr1fo017:`实例化`,k19fglby018:`新建第一个 Channel 模板`,k17jfge3019:`私有(仅本人可见)`,k191u0u5020:`公开(全员可实例化,仅本人可修改)`,k3x23c021:`内置`,k3wv1t022:`公开`,k447jj023:`私有`,k1i0ji0y024:`模板名必填`,kyppebc025:`模板已创建;可在工作区左侧会话栏一键实例化挂载`,kkziya3026:`已公开:全员可实例化`,k1xxabaf027:`已转为私有`,k1oxfuqj028:`已删除模板`},daq:{unitPh:`如 %RH`,k1bge46t118:`创建节点`,k1b3dtga119:`保存模板`,k3v957u120:`{p0} 运行中:{p1} · {p2}`,k1x7jnru121:`{p0} 待机:开跑后本产线节点开始采集`,k1hrrqa1122:`活动配方监控窗口 {p0} ~ {p1}{p2}`,k11wnl1y123:`产线运行中:{p0} · {p1}`,k9vnp9h124:`全局 {p0}ms`,kyuadl0125:`缺少必填参数:{p0}`,k2hbo3c126:`{p0} 副本`,k15lvw0o105:`运行中 —— 当前产品:`,k3zkt2106:`开跑`,k12uge2o107:`未开跑 —— 本产线节点暂停采集`,k69vag8108:`· 已打标`,k1cg78i8109:`前往产线管理开跑`,kzg9805110:`重连基础设施`,knxpdpt111:`恢复全部采集`,k1fstglk112:`测试连接`,k7pxjxo113:`测试通过后创建并采集`,k3xakp114:`删除`,k1efixrj115:`新建模板`,k1b39281116:`保存修改`,k3ozyqz117:`未运行`,k3ktxbr085:`产线「`,k400lb086:`批次`,k3xagp087:`发布`,k427eu088:`消费`,k3w8go089:`丢失`,k3wusd090:`入库`,k48oi091:`位`,k4118o092:`样本`,k1ukoy0v093:`前往产线管理`,k1ld43ur094:`重连中…`,kpui00095:`暂停全部采集`,k3vp67i096:`运行中`,kr45rk9097:` · 自定义`,kjbqphp098:`(栈未装)`,k1fsh720099:`测试中…`,k1bg4759100:`创建中…`,k1hhheu3101:`确认删除`,k1iiph0s102:`编辑模板`,k1b38d59103:`保存中…`,k1l3pt51104:`配方越限`,k1e8lcoo001:`节点未单独设置 WS 下发间隔时的全局缺省;0 = 随采样节拍每帧下发`,k1yztsu4002:`生产者已发布到队列`,ko09iha003:`消费者已从队列取得`,kj1jbmw004:`时序库累计入库样本`,kgpxzy3005:`缺省按模板自增命名`,k5opd2t006:`如 烘箱湿度`,kk8o4tl007:`缺省同名称`,kzn3l7l008:`缺省自动生成`,khb8mru009:`节点所属产线的开跑状态:未开跑/未分配的节点不采集`,k3q23v3010:`节点产线归属(未挂载产线的节点不采集)`,k1emg364011:`数采中心`,k1wmg2bz012:`采集 → 队列(MQTT)→ 时序库(Timescale)→ WS 实时下发全链路;节点实体与参数以服务端为准。`,k19onw5w013:`产线未开跑 —— 数采由产线配方驱动:请在`,k1b2tk5c014:`产线运营`,k1u9wnlg015:`开跑产线,并将节点挂载到产线`,k1ifahxj016:`缺省周期`,k1if98n0017:`缺省下发`,k1f5cv0s018:`模板管理`,k1fn0ukb019:`添加节点`,k1b2o3b6020:`产线状态`,k3zgkk021:`待机`,k1el12b1022:`暂无产线`,k8jxxe8023:`去产线运营创建`,k19rioqa024:`添加数采节点`,k1p5c1un025:`Mock 模拟源`,k1cbcp3o026:`真实设备采集`,k1fsgerc027:`信号模板(量程/单位域)`,k1ce2k1y028:`节点名称(可选)`,k13mfsfc029:`采样周期 ms(空=跟随全局)`,k1kt87rx030:`通信协议`,k3xdnn031:`取消`,k11mv96s032:`信号模板管理`,ktji4ky033:`自定义模板`,k45eb0034:`编辑`,kztvzbo035:`暂无自定义模板 —— 从下方内置模板复制,或直接在下方表单新建。`,k3xhia036:`名称`,k3x4ef037:`单位`,k1l477m0038:`通道语义`,k1ayxrqb039:`位号代号`,k1l9jv5m040:`量程下限`,k1l9jv4p041:`量程上限`,k3mxmcx042:`小数位`,k3xx56043:`图标`,k1f4eknv044:`模拟基值`,kytd15s045:`Mock 采样中心值,缺省量程中点`,k1f4ifpo046:`模拟波幅`,ksp2aji047:`Mock 波动幅度,缺省量程 4%`,k48p40048:`重置`,k1w8s84s049:`内置模板(只读,可复制)`,k3y694050:`复制`,k3wj9n051:`产线`,k1bkl9uj052:`全部产线`,k3ootr6053:`未分配`,k1optt001:`Agent 优化记录`,k1optf001:`全部产线`,k1optf002:`刷新`,k1optf004:`全部 Recipe`,k1flttpl010:`模板`,k1flttpl011:`全部模板`,k1fltdrv012:`驱动`,k1fltdrv013:`全部驱动`,k1flttim014:`按最后采样时间过滤`,k1flttim015:`数据时间`,k1flttim016:`全部时间`,k1timlv017:`5 分钟内`,k1timhr018:`1 小时内`,k1timdy019:`24 小时内`,k1timld020:`24 小时前`,k1timnv021:`从未上报`,k1fltsrc022:`搜索`,k1fltsph023:`节点名称 / ID…`,k1opte001:`暂无优化记录 —— Agent 经 dcw_control 调控后自动在册`,k1opte002:`窗口内无数采数据(产线未运行或节点未绑定)`,k1opta001:`序列`,k1opta002:`回退`,k1opto001:`进行中:待 Agent dcw_judge 判定`,k1optw001:`窗口聚合计算中…`,k1optw002:`越限`,k1optst001:`进行中`,k1optst002:`已判定·保留`,k1optst003:`已回退`,k1optst004:`被新设定替代`,k1optst005:`被手动写替代`,k1optst006:`停线封窗`,k1optst007:`异常`,k1optst008:`已判定·回退未执行`,k1trnd001:`趋势`,k1trnd002:`实时趋势:最近 60 个读数,虚线为上下限`,k1wrn001:`高于上限`,k1wrn002:`低于下限`,k1wrn003:`配方窗`,k1wrn004:`安全量程`,k1i8rtqt054:`绑定设备`,k1bkw4m2055:`全部设备`,k3own4q056:`未绑定`,k2bindtip137:`绑定设备(与数字孪生/节点检查器同源,server 落库)`,k1b2tkyv057:`产线运行`,k3x4t1058:`全部`,k1nxm3p7059:`采集开启(运行中)`,k1ulx34e060:`采集关闭(待机/未分配)`,k1iwdfef061:`节点状态`,k41k5c062:`正常`,k49z8v063:`预警`,k3xmid064:`告警`,k44c2n065:`离线`,k1fygck2066:`清除筛选`,k45uio067:`节点`,k42w8s068:`状态`,k3mv305069:`实时值`,k1l6g2ga070:`采样周期`,k3zi0nf071:`WS 下发`,k4a0la072:`驱动`,k40aa6073:`操作`,k3o3jg2074:`控制台`,kvhjyc3075:`暂无数采节点 —— 在数字孪生空间从左轨「数采节点 · DAQ」拖入即可(server 建立节点实体)。`,k1w20qew076:`无匹配节点 —— 当前筛选条件下没有节点,请调整或清除筛选。`,k1bhhheq077:`前往登录`,k41mvv078:`每帧`,k422b8079:`温度`,k3x6ff080:`压力`,k3z9xc081:`张力`,k3subk4082:`编码器`,k47atw083:`视觉`,kz7yhbj084:`电参/网关`,k1prodrc128:`产品 / Recipe`,k1staled129:`产线运行中但无新数据(>{p0}s 未采样)—— 节点离线或驱动故障`,k1disabl130:`停用`,k1runtipc131:`节点所属产线的开跑状态:运行中才采集`,k1prdrtip132:`本产线当前运行批次的产品与配方`,k1tsdbtip133:`时序存储后端:DAQ_TSDB_URL 可切换 TimescaleDB`,k1queuet134:`消息队列:DAQ_MQTT_URL 可切换标准 MQTT broker`,k1droptip135:`队列丢失(produced-consumed)`,k1eg1000a136:`如 1000`,k1needtst137:`真实场景需先通过测试连接`,k1plndrv138:`预留协议:待真实通道接入`,k1idlehin139:`产线未运行:开跑后本节点开始采集`,k1gateoff140:`数采网关已暂停 —— 全部节点停止采集`,k1alarm141:`未确认报警`,k1ack142:`确认`,k1esc143:`已升级 {p0} 次重发通知`,k1acked144:`报警已确认`,k1snap145:`暂停全部采集:停止所有启用节点的采样。节点级启停独立:手动停用的节点保持停用,恢复后仅启用节点恢复采集`,k1nodestop146:`停止采集`,k1nodestart147:`启动采集`,k1evt001:`暂无未确认告警`,k1evt002:`实时事件`,k1evt003:`日志管理`,k1evt004:`暂无事件,等待操作…`},daqDetail:{bucket1s:`1s 桶`,bucket5s:`5s 桶`,bucket15s:`15s 桶(默认)`,bucket30s:`30s 桶`,bucket60s:`1min 桶`,calDecoderTip:`采集标定 decoder:物理值 = scale × PLC采集值 + offset`,calScaleTip:`decode 斜率(≠0)`,calOffsetTip:`decode 截距`,kfrm0001:`图像帧画廊`,kfrm0002:`多点轮廓帧`,kfrm0003:`暂无帧(产线运行中才有数据)`,kfrm0004:`点数`,kfrm0005:`指标`,kfrm0006:`点击查看原图`,k9vnp9h053:`全局 {p0}ms`,k3n5aaj045:`已停用`,k1cgi8fy046:`节点独立周期`,k3oktae047:`无标定`,k1cggz5f048:`节点独立下发`,k3n42dj049:`定间隔`,ksn9cgo050:`下发参数到采集器`,k1fstglk051:`测试连接`,k452a8052:`绑定`,k1fx2vik032:`实时值 ·`,k1p9gioa033:`驱动连接参数 ·`,k1i535i5034:`时序库历史(`,kz8zr9v035:`(预留)`,k3own4q036:`未绑定`,k3w3j8f037:`采集中`,k1k2ueyq038:`跟随全局周期`,k1eru4r1039:`标定生效`,k1k2t5o7040:`跟随全局下发`,k41mvv041:`每帧`,k1as0g50042:`下发中…`,k1fsh720043:`测试中…`,k479eh044:`解绑`,k1emg364001:`数采中心`,k1bhhheq002:`前往登录`,k4a0la003:`驱动`,k3xg3w004:`周期`,k3w6td005:`下发`,k3x5tpx006:`预警带`,k1hjj0jf007:`硬限量程`,k1i8rtqt008:`绑定设备`,kd9d69j009:`采集参数(server 单点控制)`,k1iw7tbf010:`节点启停`,k12k23od011:`所属产线(未挂载不采集)`,k3ootr6012:`未分配`,k1l6smxo013:`采样驱动`,k3x4ef014:`单位`,k3mxmcx015:`小数位`,k1l9jv5m016:`量程下限`,k1md63hm017:`预警下限`,k1md63gp018:`预警上限`,k1l9jv4p019:`量程上限`,k1ie6qju020:`设备绑定(端到端集成)`,kjobzu3021:`选择设备孪生…`,k3x1jg022:`刷新`,k40vsf023:`时间`,k48v5024:`值`,k4bza025:`态`,k41k5c026:`正常`,k49z8v027:`预警`,k3xmid028:`告警`,k44c2n029:`离线`,k1m1zwux030:`每帧(随采样)`,k3lha20031:`原始点`,k1rfrshint001:`趋势图自动拉取间隔(ms);留空或 0 = 跟随服务端默认(daq.query.displayIntervalMs),最小 {p0}ms`},logs:{title:`产线日志`,sub:`仅记录与产线相关的操作:下发/配方/回退/产线/数采/告警/人工记录;登录与系统管理事件不入册。按产线、Recipe 与时间检索`,live:`实时`,liveHint:`WS 实时接收产线操作事件(仅摘要渲染;完整详情查询于下表)`,all:`全部`,fLine:`产线`,fProduct:`产品`,fSource:`来源`,fKind:`分类`,fFrom:`开始时间`,fTo:`结束时间`,fKeyword:`关键词`,fKeywordPh:`搜索摘要/操作/操作者…`,invalidTime:`时间格式无效:请重新选择开始/结束时间`,invalidRange:`时间区间无效:开始时间不能晚于结束时间`,mLineRequired:`请先选择产线:产线日志只接收带产线归属的记录`,query:`查询`,reset:`重置`,thTime:`时间`,thActor:`操作者`,thSummary:`事件摘要`,thScope:`归属(产线/产品/Recipe)`,thDetail:`详情`,expand:`详情`,fold:`收起`,loading:`查询中…`,empty:`无匹配日志`,mSummary:`记录内容`,mSummaryPh:`如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟`,mDetail:`详情(可选)`,mDetailPh:`补充说明、处置过程、关联单号等(将存入日志详情)`,mSubmit:`入册`,mOk:`已入册`,manual:`人工记录`,noDetail:`无`,totalCount:`共 {n} 条`,src:{user:`用户`,system:`系统`},kind:{write:`下发`,manual:`人工`,alarm:`告警`,line:`产线`,recipe:`配方`,rollback:`回退`,daq:`数采`,system:`系统`}},operations:{title:`产线操作`,sub:`全部产线操作的统一实时流水:写控下发、配方批次、数采告警、建模回退与 Agent 动作,一屏可见`,live:`实时`,liveHint:`WS 实时接收产线操作事件,新事件自动插入流水顶部`,all:`全部`,fLine:`产线`,fSource:`来源`,fKind:`分类`,fKeyword:`关键词`,fKeywordPh:`搜索节点/动作/摘要…`,query:`查询`,reset:`重置`,loading:`加载中…`,empty:`暂无操作记录 —— 调整筛选或等待新的产线事件`,noDetail:`无结构化详情`,totalCount:`共 {n} 条`,actorAgent:`Agent`,actorUser:`用户`,actorSystem:`系统`,cat:{write:`写控`,daq:`数采`,aml:`建模`,recipe:`配方`,rollback:`回退`,alarm:`告警`,line:`产线`,manual:`人工`,system:`系统`}},analysis:{title:`数据分析`,sub:`Agent Channel 分析产出的持久留痕台账:关键结论、配方联动、时间窗与完整正文,随时可查`,live:`实时`,liveHint:`WS 实时接收分析留痕事件(analysis_save),新报告自动刷新`,all:`全部`,fLine:`产线`,fCat:`类别`,fWindow:`分析时间`,fKeyword:`关键词`,fKeywordPh:`搜索标题/关键结论…`,query:`查询`,reset:`重置`,loading:`加载中…`,empty:`暂无分析报告 —— Agent 在频道内调用 analysis_save 留痕后在此可见`,noDetail:`无附加产出`,expand:`详情`,fold:`收起`,count:`{p0} 条报告`,ledgerHint:`留痕台账 · append-only(Agent 面不可改删)`,remove:`删除`,removeConfirm:`删除分析报告「{p0}」?删除后不可恢复`,cancel:`取消`,editTitle:`修订分析报告`,save:`保存修订`,kRecipe:`配方 id`,kVersion:`配方版本`,kWindowFrom:`数据窗起点`,kWindowTo:`数据窗终点`,conclusionsHint:`每行一条`,kRevised:`修订记录`,thTime:`分析时间`,thLine:`产线`,thTitle:`标题`,thRecipe:`配方`,thSummary:`关键结论`,thSource:`来源`,thDetail:`详情`,kId:`报告 id`,kWindow:`数据窗`,kSources:`证据来源`,kConclusions:`结论明细`,kReport:`完整正文`,kMetrics:`支撑指标`,kContext:`产线上下文快照`,cat:{quality:`质量`,oee:`OEE`,alarm:`告警`,trend:`趋势`,optimization:`寻优`,general:`综合`},win:{h1:`1 小时内`,h24:`24 小时内`,d7:`7 天内`,d30:`30 天内`,all:`全部时间`}},dcw:{codePh:`如 MOTOR · I`,unitPh:`如 A`,k1qidbpy061:`缺省 {p0}(按创建序)`,k1gp649b062:`{p0}(节点 {p1}/产品 {p2}/配方 {p3} 将解除挂载)`,k7xq2mfd063:`删除产线「{p0}」?`,k5tq8wc071:`编辑产线`,k9m2vxa072:`连同旗下节点/产品/配方一起删除(不可恢复)`,k4r7nbd073:`产线「{p0}」及其 {p1} 节点 · {p2} 产品 · {p3} 配方将一并删除,不可恢复`,k3t616a058:`自定义`,k149r6y7059:`○ 待机`,k1elczt9060:`暂无配方`,k3ootr6049:`未分配`,k3wj9n050:`产线`,k11nndsp051:`控制模板 ·`,k3zz0f052:`打标`,k19dlbli053:`跟随主题自动配色`,k3x23c054:`内置`,k1eox1el055:`● 运行中`,k18moyq1056:`选择配方后即可开跑数据采集`,kutxzsz057:`选择配方…`,k1i5a9vw001:`存在未挂载产线的节点/产品,可在对应产线详情页收编`,k1yfm3gv002:`删除产线(旗下节点/产品/配方解除挂载)`,k1dhaby4003:`选择配方后开跑`,kru37i3004:`如 1号产线 / 流延线 A`,k1f2nwsp005:`产线用途说明`,k1tooi3o006:`如 电机电流设定`,k698qz0007:`如 电机电流`,k1qdnfzc008:`如:电机电流设定:电流升高表示负载增大…调整需小幅步进并观察温升`,k1b2tk5c009:`产线运营`,k5q0aqi010:`产线是节点/产品/配方/数据的顶层隔离单元:每个控制节点挂载到产线,开跑后本产线数采逐样本携带产线标识;
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./B_Obcbiu.js","./DK3Fl9T5.js","./CavpkQb0.js","./R5Pz7BqB.js","./BqFaZ4kS.js","./C6lssmvl.js","./BkSViqQd.js","./Cn6EojFe.js","./B6C4WofF.js","./JegDslce.js","./HclGiUj8.js","./D1MkndMZ.js","./DXgw1dVL.js","./ri9UF8rk.js","./CznnUTZx.js","./CUCFFL9m.js","./eePbiWEh.js","./CElzwyXQ.js","./CDYLasP8.js","./rxhDcyfF.js","./DjGYvFyA.js","./B6Olw0Op.js","./D7TZLu4F.js","./2v5GdspM.js","./CnYazk8d.js","./36oeS8_R.js","./DOT-XQyi.js","./XqXoaoDs.js","./SvjzWbn8.js","./B6UwtJ1a.js","./CLFmtXU7.js","./BtZKe9ZV2.js","./9j2J4k4w.js","./o8sYG6xx2.js","./CTGJHZ8X2.js","./K5Xen0wZ2.js","./R1g64DNi2.js","./hyLdZsOd2.js","./DoprKJ5a2.js","./Rb4o4o-82.js","./BtumQhZK.js","./D83nVQPl.js","./DxDqd6T42.js","./BoXKUOiN2.js","./BiXqyYNw2.js","./Du9v6qGB2.js","./D-80EfyA2.js","./C1RMfPoB2.js","./ZzOyoXex2.js","./C_4mzQ5X.js","./CY2NkFvI.js","./EgO70wrE.js","./DtnsTW7e.js","./Tf6SJSDj.js","./BwOK42JQ.js","./D6PUmBb0.js","./CooauJ7D.js","./DC8sMA36.js","./IXR1BWP5.js","./BoyuIoSm.js","./Cv-Mv7_h2.js","./Ch1P2mIf.js","./COfo_Bg3.js","./DMFwLxfu.js","./BuLoPmcf.js","./BDXQqSkl2.js","./h-Fn7pRD.js","./dcjPjLPI.js","./C14pM5G4.js","./CnrGVJIr.js","./DudoisLM.js","./EMbqTHfT.js","./BmBlIIJo2.js","./CtcBhkci.js","./azOGy_tU2.js","./DYQBIsiV2.js","./Aoz9xMB92.js","./Zkbt8Uk5.js","./Ud9o8ItR2.js","./BBhLVYdM2.js","./Br_q4qi72.js","./6P4ZAzxa2.js","./DH_oqyfL.js","./fIV9zbnA.js","./DmReUFK1.js","./BY2u4LPg.js","./TOWR4WpO.js","./BSxcHoiy.js","./m6G-kfdj.js","./cKj4vSo5.js","./CZsFf7ck.js","./DoL9u6wu.js","./NfvZ5Lzv.js","./DiloA8vK.js","./Du7gS8RU.js","./BRci9D_l.js","./BfgTar9L.js","./DC-2eKo62.js","./D1eVi1zr.js","./Bko5adbu.js","./Bmvt9ydE.js","./BYzim_Bn.js","./CC-GEjfN.js","./CQuo31jF.js","./D7tEwf-o.js","./CCcMgxV9.js","./hZG5MLjK.js","./KzK37yIr.js","./POTcePF_.js","./D9lL3fJM2.js","./GQrEW8nk2.js","./D__vJGHF2.js","./gh-WMxV_2.js","./CHk9XxNi.js","./BklGqEto2.js","./vkQoYNQR2.js","./-FhgRqJl2.js","./CzlZrfq82.js","./lO5tpDZ52.js","./eymRov9Y2.js","./BwWs9EdO2.js","./rF7mggl72.js","./C4e6_nom2.js","./vp3LtnTz2.js","./YLYSczSq2.js","./BBB_j2LU2.js","./CFQRFctQ2.js","./8M7wFbEN2.js","./BDNMzG2s.js","./Cjo1t2IF.js","./CNs_Ozdc.js","./rDvMijKA.js","./OmpTerminalPanel.ComMDrA8.css","./BI9jj13f2.js","./BBrRELH3.js","./BrRX-l9B.js","./dVw8IHY62.js","./TownView.CC3t-Dte.css","./_wsId_.CQMH8t8j.css","./ilJHF1nA2.js","./Dr1FVeQG2.js","./CPvFGbr8.js","./DPPC9Teq.js","./DKOvbitt.js","./DWy0AjON.js","./k9b520K-.js","./Co8Dcx132.js","./AQuNRC4D.js","./DPvZxAt02.js","./C0Db9tR_2.js","./board.BxLE52BL.css","./yS3bF3G32.js","./pipeline.D7et0DoJ.css","./CjdxNYpU2.js","./u3h4pGpm.js","./BKidykmV2.js","./DZsKIzKD2.js","./kZl6yT-12.js","./DGGBrc0q2.js","./agents.D-JPovTZ.css","./tDEwr422.js","./channel-templates.DgiL0L16.css","./BwOko01T.js","./DaizNGUm2.js","./schedules.BXNJ9q_I.css","./DZqVVvR0.js","./teams.CLQaXno5.css","./HJKu4eEV2.js","./_id_.DSbZhSO1.css","./be-4wyTo.js","./_id_.BQRWK7J2.css","./BaYDgyaR.js","./CfIbFnJz.js","./aml.PalMp-5n.css","./DDHh85c42.js","./analysis.CqR_dfoW.css","./7op-BMk82.js","./daq.BUeQwO2J.css","./-gwj-zlk2.js","./data.jRO2K9JI.css","./CdvMP3lv.js","./dcw.n8O0ptzV.css","./B1SIgyrl.js","./logs.BkJPbR_K.css","./BfvuWqSa.js","./BK4wbfGS.js","./jDuiDtGb.js","./CRCrWy-6.js","./BxHBIVAg.js","./monitor.D3yEqqrv.css","./D8AvmPUH.js","./ontology.CkuUThtY.css","./BA2lmfW4.js","./DRskyE7l.js","./operations.-l6u44Ar.css","./BPUQZ9Lq2.js","./optimizer.CLA8I1sy.css","./26OL4Ao82.js","./permissions.DxuOOIqQ.css","./BVg2R2VB2.js","./CmuGMxDP.js","./N-CCmCsX.js","./PluginSlot.CGH0vb95.css","./plugins.D3bf5Gg3.css","./CBkXv24C2.js","./DNxudyND.js","./settings.CXju_jh-.css","./CNRjkgAZ2.js","./studio.ClA5gX4K.css","./DuUc4bbY2.js","./ByTnUqFw2.js","./Dt8TL8_X2.js","./DkJVtqfc2.js","./DW4ZgInh2.js","./DwgVlehj2.js","./tokens.BDSUWF-L.css","./byZYInPk2.js","./tools.BwXFAb-X.css","./BlOm8JIs2.js","./town.BBXZmeoP.css","./DhLlTxQh2.js","./users.DBxcKnfg.css","./dHwWyr6b.js","./CMJi6yYS.js","./AuthGate.72Jdc4d6.css","./workshop.BBiFhXuM.css","./DzU3zEKX.js","./pages.Cdpm_B-G.css","./BkEokGX5.js","./D_FZ3KZI2.js","./default.BEXGWZFQ.css","./B8HFUsMH.js","./town.DFotRPod.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{t as e}from"./DK3Fl9T5.js";import{a as t,i as n,l as r,n as i,o as a,r as o,s,t as c}from"./BqFaZ4kS.js";import{C as l,N as u,S as d,a as f,b as p,g as m,l as h,mt as g,u as _,v}from"./CavpkQb0.js";import{A as y,D as b,H as x,J as S,L as C,O as w,P as T,S as E,T as D,V as O,a as ee,b as k,d as A,f as j,h as te,i as ne,j as re,m as ie,nt as ae,o as M,p as N,rt as oe,tt as P,x as se,y as ce}from"./C6lssmvl.js";import{i as le,r as ue}from"./ri9UF8rk.js";import{i as de,l as fe,r as pe,t as me,u as he}from"./BkSViqQd.js";import{t as ge}from"./rxhDcyfF.js";import{_ as _e,a as ve,c as ye,d as be,g as xe,i as Se,l as Ce,m as F,n as we,o as Te,p as Ee,r as De,s as Oe,t as ke,v as Ae,y as je}from"./CDYLasP8.js";import{_ as Me,a as Ne,c as Pe,g as Fe,h as Ie,i as Le,l as Re,m as ze,o as Be,p as Ve,r as He,u as Ue}from"./DjGYvFyA.js";import{a as We,c as Ge,n as Ke,o as qe,r as Je,s as Ye,t as I}from"./BoyuIoSm.js";import{a as Xe,c as Ze,d as Qe,f as $e,i as et,l as tt,n as nt,o as rt,r as it,s as at,u as ot}from"./Bko5adbu.js";import{n as st,t as ct}from"./XqXoaoDs.js";import{a as lt,c as ut,i as dt,l as ft,n as pt,o as mt,r as ht,s as gt,t as _t,u as vt}from"./CPvFGbr8.js";import{b as yt,i as bt}from"./D83nVQPl.js";import{a as xt,i as St,n as Ct,t as wt}from"./BtumQhZK.js";import{n as Tt,t as Et}from"./BYzim_Bn.js";import{i as Dt,o as Ot,s as L}from"./DPPC9Teq.js";import{t as R}from"./HclGiUj8.js";import{a as kt,c as z,i as At,l as jt,n as Mt,o as Nt,r as Pt,s as Ft,t as It}from"./D1MkndMZ.js";import{t as Lt}from"./CElzwyXQ.js";import{t as Rt}from"./N-CCmCsX.js";import{t as zt}from"./36oeS8_R.js";import{R as Bt,jt as Vt}from"./CznnUTZx.js";import{i as Ht,r as Ut}from"./DXgw1dVL.js";import{t as Wt}from"./kZl6yT-12.js";import{n as Gt,t as Kt}from"./D_FZ3KZI2.js";import{t as qt}from"./Cv-Mv7_h2.js";import{t as Jt}from"./DNxudyND.js";import{t as Yt}from"./DKOvbitt.js";import{t as Xt}from"./BDNMzG2s.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),`global`in globalThis||(globalThis.global=globalThis);function Zt(e,t){return t&&typeof e==`function`&&(e.key=t),e}var Qt=/\\/g,$t=/</g,en=/"/g,tn=/%\w+(?:\.\w+)?/g,nn=`%separator`;function rn(e,t,n=!1){let r;if(t===`s`||t===`pageTitle`)r=e.pageTitle;else if(t.includes(`.`)){let n=t.indexOf(`.`);r=e[t.substring(0,n)]?.[t.substring(n+1)]}else r=e[t];if(r!==void 0)return n?(r||``).replace(Qt,`\\\\`).replace($t,`\\u003C`).replace(en,`\\"`):r||``}function an(e,t,n,r=!1){if(typeof e!=`string`||!e.includes(`%`))return e;let i=e;try{i=decodeURI(e)}catch{}let a=i.match(tn);if(!a)return e;let o=e.includes(nn);return e=e.replace(tn,e=>{if(e===nn||!a.includes(e))return e;let n=rn(t,e.slice(1),r);return n===void 0?e:n}).trim(),o&&(e=e.split(nn).map(e=>e.trim()).filter(e=>e!==``).join(n?` ${n} `:` `)),e}var on=(e,t)=>e._w===t._w?e._p-t._p:e._w-t._w,sn=e=>e.includes(`:key`)?e:e.split(`:`).join(`:key:`),cn=Zt({key:`aliasSorting`,hooks:{"tags:resolve":e=>{let t=!1;for(let n of e.tags){let r=n.tagPriority;if(!r)continue;let i=String(r);if(i.startsWith(`before:`)){let r=sn(i.slice(7)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p-1,t=!0)}else if(i.startsWith(`after:`)){let r=sn(i.slice(6)),a=e.tagMap.get(r);a&&(typeof a.tagPriority==`number`&&(n.tagPriority=a.tagPriority),n._p=a._p+1,t=!0)}}t&&(e.tags=e.tags.sort(on))}}}),ln=Zt({key:`deprecations`,hooks:{"entries:normalize":({tags:e})=>{for(let t of e)t.props.children&&(t.innerHTML=t.props.children,delete t.props.children),t.props.hid&&(t.key=t.props.hid,delete t.props.hid),t.props.vmid&&(t.key=t.props.vmid,delete t.props.vmid),`body`in t.props&&(t.props.body&&(t.tagPosition=`bodyClose`),delete t.props.body),t.props.renderPriority!=null&&(t.tagPriority=t.props.renderPriority,delete t.props.renderPriority)}}});function un(e){return typeof e?.then==`function`}function dn(e){if(typeof e==`function`)return e;if(un(e))return Promise.resolve(e).then(dn);if(Array.isArray(e)){let t=e.map(dn);return t.some(un)?Promise.all(t):e}if(e?.constructor===Object){let t=Object.keys(e),n=t.map(t=>dn(e[t]));if(n.some(un))return Promise.all(n).then(e=>Object.fromEntries(t.map((t,n)=>[t,e[n]])))}return e}var fn=Zt(e=>{let t=new WeakMap;return{key:`promises`,hooks:{"entries:resolve":n=>{for(let r=n.entries.length-1;r>=0;r--){let i=n.entries[r],a=i.input;if(t.get(i)===a){n.entries.splice(r,1);continue}let o=dn(a);if(!un(o)){t.delete(i);continue}t.set(i,a),n.entries.splice(r,1),Promise.resolve(o).then(n=>{t.get(i)===a&&(t.delete(i),i.input=n,delete i._tags,e.invalidate?.())},()=>{t.get(i)===a&&t.delete(i)})}}}}},`promises`),pn={meta:`content`,link:`href`,htmlAttrs:`lang`},mn=[`innerHTML`,`textContent`],hn=Zt(e=>({key:`template-params`,hooks:{"tags:resolve":({tagMap:t,tags:n})=>{let r=t.get(`templateParams`)?.props||{},i=r.separator||`|`;delete r.separator,r.pageTitle=an(r.pageTitle||e._title||``,r,i);for(let e of n){if(e.processTemplateParams===!1)continue;let t=pn[e.tag];if(t&&typeof e.props[t]==`string`)e.props[t]=an(e.props[t],r,i);else if(e.processTemplateParams||e.tag===`titleTemplate`||e.tag===`title`)for(let t of mn)typeof e[t]==`string`&&(e[t]=an(e[t],r,i,e.tag===`script`&&typeof e.props.type==`string`&&e.props.type.endsWith(`json`)))}e._templateParams=r,e._separator=i},"tags:afterResolve":({tagMap:t})=>{let n=t.get(`title`);n?.textContent&&n.processTemplateParams!==!1&&(n.textContent=an(n.textContent,e._templateParams,e._separator))}}}),`template-params`);function gn(e,t){if(typeof t==`function`&&t.key&&e.plugins.has(t.key))return;let n=typeof t==`function`?t(e):t,r=n.key||String(e.plugins.size+1);if(!e.plugins.get(r)){e.plugins.set(r,n);for(let t in n.hooks||{})e.hooks?.hook(t,n.hooks[t])}}function _n(e,t={}){let n=!t.document,r=new Map,i={_entryCount:1,_h:0,plugins:new Map,resolvedOptions:t,ssr:n,entries:r,hooks:void 0,render:()=>e(i),use:e=>gn(i,e),push(e,t){let a=t?._index??i._entryCount++,o=t?{...t}:{};delete o.head,delete o.onRendered,delete o._index;let s={_i:a,input:e,options:o};return r.set(a,s),{_i:a,dispose(){r.delete(a)},patch(e){n?(s.input=e,delete s._tags):s._pending=e,r.has(a)||r.set(a,s)}}}};return t.init?.forEach(e=>e&&i.push(e)),i}var vn=n(()=>{dt(`skipHydrate`,e=>!qe(e)&&1),lt(`skipHydrate`,e=>void 0)});function yn(e){try{return JSON.parse(e)}catch{return e}}var bn=[[`NuxtError`,e=>Se(e)],[`EmptyShallowRef`,e=>d(e===`_`?void 0:e===`0n`?BigInt(0):yn(e))],[`EmptyRef`,e=>v(e===`_`?void 0:e===`0n`?BigInt(0):yn(e))],[`ShallowRef`,e=>d(e)],[`ShallowReactive`,e=>p(e)],[`Ref`,e=>v(e)],[`Reactive`,e=>m(e)]],xn=o({name:`nuxt:revive-payload:client`,order:-30,async setup(e){let t,n;for(let[e,t]of bn)lt(e,t);Object.assign(e.payload,([t,n]=s(()=>e.runWithContext(mt)),t=await t,n(),t)),delete window.__NUXT__}},1);function Sn(e,t){t.push(me),e.vueApp.use(t);let n=!0,r=()=>{n=!1,t.render()};t.hooks?.hook(`dom:beforeRender`,e=>{e.shouldRender=!n}),e.hooks.hook(`page:start`,()=>{n=!0}),e.hooks.hook(`page:finish`,()=>{e.isHydrating||r()}),e.hooks.hook(`app:error`,r),e.hooks.hook(`app:suspense:resolve`,r);let i=t.push.bind(t);t.push=((t,n)=>{let r=i(t,n),a=r.dispose.bind(r);return r.dispose=()=>{let t=e[`~transitionPromise`];t?t.finally(a):a()},r})}function Cn(e,t,n){let r=e.push,i=e;return i.ssr=!1,i.hooks=t,i.dirty=!!i.dirty,i.use=e=>gn(i,e),i.render=()=>n(i),i.invalidate=()=>{for(let e of i.entries.values())delete e._tags;i.dirty=!0,t.callHook(`entries:updated`,i)},i.push=(n,a)=>{let o=a?.onRendered?t.hook(`dom:rendered`,a.onRendered):void 0,s=r(n,a),c=e.entries.get(s._i);return c&&(c._o=n),i.dirty=!0,t.callHook(`entries:updated`,i),{_i:s._i,patch(e){s.patch(e),i.dirty=!0,t.callHook(`entries:updated`,i)},dispose(){o?.(),e.entries.has(s._i)&&(s.dispose(),i.invalidate())}}},t.hook(`entries:updated`,()=>{i.render()}),i}var wn=/\s+/;function Tn(e={}){return t=>kn(t,e)}function En(e){for(let t of e.entries.values())if(t._pending!==void 0)return!0;return!1}function Dn(e){for(let t in e._s)e._s[t]();for(let t in e._p)e._p[t]();e._s={},e._p={},e._e.clear(),e._l.clear()}function On(e,t){let n={_d:t,_t:t.title,_e:new Map([[`htmlAttrs`,t.documentElement],[`bodyAttrs`,t.body]]),_p:{},_s:{},_l:new Map};for(let e of[...t.body.children,...t.head.children]){let t=e.tagName.toLowerCase();if(!Qe.has(t))continue;let r={innerHTML:e.innerHTML};for(let t of e.getAttributeNames())r[t]=e.getAttribute(t);let i=at({tag:t,props:{}},r);i.key=e.getAttribute(`data-hid`)||void 0;let a=et(i)||Xe(i),o=a,s=1;for(;n._e.has(o);)o=`${a}:${s++}`;n._e.set(o,e)}for(let t of e.entries.values())if(t._o!==void 0){let e=t._o;for(let t of[`bodyAttrs`,`htmlAttrs`]){let r=e[t]?.class;if(typeof r==`string`){let e=n._e.get(t);for(let i of r.split(wn))i&&(n._p[`${t}:attr:class:${i}`]=()=>e.classList.remove(i))}}}return n}function kn(e,t={}){let n=t.document||e.resolvedOptions.document,r=e._dom,i=!!r&&r._d!==n;if(!n||r&&!i&&!e.dirty&&!En(e)||e._du)return!1;let a=n.defaultView;e._du=!0;let o=!1;try{let r=function(e,t,n,r){let i=`${e}:${t}`;d._s[i]=!r&&d._p[i]||n,delete d._p[i]},i=function(e){let t=d._p[e];return delete d._p[e],t},s=function(e,t,n,i,a,o){let s=`event:${t}`,c=`${e}:${s}`,l=d._l.get(c);if(l&&l[0]===o&&l[1]===n&&l[2]===i){r(e,s,l[4]);return}l?.[4]();let u=`data-${t}`,f=(e=>i.call(a,e)),p=()=>{o.removeEventListener(n,f),a.getAttribute(u)===``&&a.removeAttribute(u),d._l.get(c)?.[3]===f&&d._l.delete(c)};o.addEventListener(n,f),d._l.set(c,[o,n,i,f,p]),a.setAttribute(u,``),r(e,s,p,!0)},c=function({id:e,$el:t,tag:n}){let o=n.tag.endsWith(`Attrs`);if(d._e.set(e,t),!o){let a=n.textContent;a!=null&&a!==``&&(a!==t.textContent&&(t.textContent=a),r(e,`text`,()=>{t.textContent===a&&(t.textContent=``)},!0));let o=n.innerHTML;o!=null&&o!==``&&(o!==t.innerHTML&&(t.innerHTML=o),r(e,`html`,()=>{t.innerHTML===o&&(t.innerHTML=``)},!0));let s=`${e}:el`;d._s[s]=i(s)||(()=>{t?.remove(),d._e.delete(e)})}for(let r in n.props){let o=n.props[r];if(r[0]===`o`&&r[1]===`n`&&typeof o==`function`){let i=r.slice(2);t?.dataset?.[`${r}fired`]&&o.call(t,new((a?.Event)||Event)(i)),s(e,r,i,o,t,n.tag===`bodyAttrs`&&a?a:t);continue}let c=`${e}:attr:${r}`;if(r===`class`&&o)for(let e of o){let n=`${c}:${e}`;d._s[n]=i(n)||(()=>t.classList.remove(e)),t.classList.contains(e)||t.classList.add(e)}else if(r===`style`&&o)for(let[e,n]of o){let r=`${c}:${e}`;d._s[r]=i(r)||(()=>t.style.removeProperty(e)),t.style.setProperty(e,n)}else o!==!1&&o!==null&&(t.getAttribute(r)!==o&&t.setAttribute(r,o===!0?``:String(o)),d._s[c]=i(c)||(()=>t.removeAttribute(r)))}},l={shouldRender:!0,tags:[]};if(tt(e,`dom:beforeRender`,l),!l.shouldRender)return!1;let u=e._dom;u?._d!==n&&(u&&Dn(u),u=void 0),u?u._p=u._s:u=On(e,n),u._s={};let d=u,f=[],p={};e.dirty=!1;let m=Ze(e,t.tagWeight?{tagWeight:t.tagWeight}:void 0),h=[],g={};for(let e of m){let t=g[e._d]||0,i=(t?`${e._d}:${t}`:e._d)||e._h,a={tag:e,id:i,shouldRender:!0};if(e.tag===`meta`&&e._d&&rt(e._d)&&(g[e._d]=t+1),h.push(a),e.tag===`title`){n.title=e.textContent,r(`title`,``,()=>n.title=d._t);continue}a.$el=d._e.get(i),a.$el?c(a):Qe.has(e.tag)&&f.push(a)}for(let e of f)e.$el=n.createElement(e.tag.tag),c(e),(p[e.tag.tagPosition||`head`]??=n.createDocumentFragment()).appendChild(e.$el);p.head&&n.head.appendChild(p.head),p.bodyOpen&&n.body.insertBefore(p.bodyOpen,n.body.firstChild),p.bodyClose&&n.body.appendChild(p.bodyClose);for(let e in d._p)d._p[e]();e._dom=d,o=!0,tt(e,`dom:rendered`,{renders:h})}catch(t){throw e.dirty=!0,t}finally{e._du=!1}return o&&(e.dirty||En(e))&&kn(e,t),o}var An=e=>typeof e.tagPriority==`number`?e.tagPriority:100+($e[e.tagPriority]||0);function jn(e={}){e.document=e.document||(typeof window<`u`?document:void 0);let t=e.render||Tn({document:e.document}),n=Cn(_n(t,{document:e.document,propResolvers:e.propResolvers,_tagWeight:An,init:[]}),ot(e.hooks),t);return e.plugins?.forEach(e=>n.use(e)),e.init?.forEach(e=>e&&n.push(e)),n}function Mn(e={}){let t=Tn(),n,r=0;return n=jn({render:()=>{let e=++r;setTimeout(()=>{e===r&&t(n)},0)},...e}),n.install=it(n),n}var Nn={disableDefaults:!0,plugins:[ln,fn,hn,cn]},Pn=o({name:`nuxt:head`,enforce:`pre`,setup(e){Sn(e,Mn(Nn))}}),Fn=/(:\w+)\([^)]+\)/g,In=/(:\w+)[?+*]/g,Ln=/:\w+/g,Rn=(e,t)=>t.path.replace(Fn,`$1`).replace(In,`$1`).replace(Ln,t=>e.params[t.slice(1)]?.toString()||``),zn=(e,t)=>{let n=e.route.matched.find(t=>t.components?.default===e.Component.type),r=t??n?.meta.key??(n&&Rn(e.route,n));return typeof r==`function`?r(e.route):r},Bn=(e,t)=>({default:()=>e?D(ee,e===!0?{}:e,t):t});function Vn(e){return Array.isArray(e)?e:[e]}var Hn=[Ce(async e=>{let t,n;if(!e.meta?.validate)return;let r=([t,n]=s(()=>Promise.resolve(e.meta.validate(e))),t=await t,n(),t);if(r!==!0)return Se({fatal:!0,status:r&&(r.status||r.statusCode)||404,statusText:r&&(r.statusText||r.statusMessage)||`Page Not Found: ${e.fullPath}`,data:{path:e.fullPath}})},1),Ce(async()=>{let e,n,r=I(`aw.locale`).value;if(r!==`en`&&r!==`zh-CN`)return;let i=t().$i18n;i&&r!==i.locale.value&&([e,n]=s(()=>i.setLocale(r)),e=await e,n())},1),Ce(e=>{let t=vt({path:e.path});if(t.redirect){let n=t.redirect.includes(`#`)?t.redirect:t.redirect+e.hash;return He(n,{acceptRelative:!0})?(window.location.href=n,!1):n}})],Un={},Wn=[{name:`aml-composables-useAmlDatasets`,path:`/aml/composables/useAmlDatasets`,component:()=>R(()=>import(`./B_Obcbiu.js`).then(e=>e.n),__vite__mapDeps([0,1,2,3,4,5,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlEntities`,path:`/aml/composables/useAmlEntities`,component:()=>R(()=>import(`./JegDslce.js`).then(e=>e.n),__vite__mapDeps([9,1,10,11,2,5,12,13,14,15,3,4,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlEnv`,path:`/aml/composables/useAmlEnv`,component:()=>R(()=>import(`./eePbiWEh.js`).then(e=>e.n),__vite__mapDeps([16,1,2,5,11,17,18,4,6,19,20,12,13,14,15,3,7,8,21]),import.meta.url)},{name:`aml-composables-useAmlExperiments`,path:`/aml/composables/useAmlExperiments`,component:()=>R(()=>import(`./D7TZLu4F.js`).then(e=>e.n),__vite__mapDeps([22,1,2,5,3,4,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlFormat`,path:`/aml/composables/useAmlFormat`,component:()=>R(()=>import(`./2v5GdspM.js`).then(e=>e.n),__vite__mapDeps([23,1,11,2,5,21]),import.meta.url)},{name:`aml-composables-useAmlJobs`,path:`/aml/composables/useAmlJobs`,component:()=>R(()=>import(`./CnYazk8d.js`).then(e=>e.n),__vite__mapDeps([24,1,2,5,11,25,12,13,14,15,3,4,6,26,27,19,7,8,23,21]),import.meta.url)},{name:`aml-composables-useAmlModels`,path:`/aml/composables/useAmlModels`,component:()=>R(()=>import(`./SvjzWbn8.js`).then(e=>e.n),__vite__mapDeps([28,1,2,11,5,12,13,14,15,3,4,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlNotes`,path:`/aml/composables/useAmlNotes`,component:()=>R(()=>import(`./B6UwtJ1a.js`).then(e=>e.n),__vite__mapDeps([29,1,2,11,5,12,13,14,15,3,4,6,7,8]),import.meta.url)},{name:`aml-composables-useAmlPredict`,path:`/aml/composables/useAmlPredict`,component:()=>R(()=>import(`./CLFmtXU7.js`).then(e=>e.n),__vite__mapDeps([30,1,2,5,11,12,13,14,15,3,4,6,7,8]),import.meta.url)},{name:`analysis-composables-useAnalysisFeed`,path:`/analysis/composables/useAnalysisFeed`,component:()=>R(()=>import(`./BtZKe9ZV2.js`).then(e=>e.n),__vite__mapDeps([31,1,2,5,25,8,3,4,6,32]),import.meta.url)},{name:`daq-composables-useDaqAddNode`,path:`/daq/composables/useDaqAddNode`,component:()=>R(()=>import(`./o8sYG6xx2.js`).then(e=>e.n),__vite__mapDeps([33,1,2,5,3,4,6,34,25,8]),import.meta.url)},{name:`daq-composables-useDaqDetailBinding`,path:`/daq/composables/useDaqDetailBinding`,component:()=>R(()=>import(`./K5Xen0wZ2.js`).then(e=>e.n),__vite__mapDeps([35,1,2,5,34,25,3,4,6,8,36]),import.meta.url)},{name:`daq-composables-useDaqDetailFrames`,path:`/daq/composables/useDaqDetailFrames`,component:()=>R(()=>import(`./hyLdZsOd2.js`).then(e=>e.i),__vite__mapDeps([37,1,5,2,34,25,3,4,6,8]),import.meta.url)},{name:`daq-composables-useDaqDetailHistory`,path:`/daq/composables/useDaqDetailHistory`,component:()=>R(()=>import(`./DoprKJ5a2.js`).then(e=>e.n),__vite__mapDeps([38,1,2,5,11,17,18,4,6,19,20,34,25,3,8]),import.meta.url)},{name:`daq-composables-useDaqDetailNode`,path:`/daq/composables/useDaqDetailNode`,component:()=>R(()=>import(`./Rb4o4o-82.js`).then(e=>e.n),__vite__mapDeps([39,1,5,2,40,41,11,34,25,3,4,6,8,42,36]),import.meta.url)},{name:`daq-composables-useDaqDetailParams`,path:`/daq/composables/useDaqDetailParams`,component:()=>R(()=>import(`./BoXKUOiN2.js`).then(e=>e.n),__vite__mapDeps([43,1,2,5,3,4,6,34,25,8]),import.meta.url)},{name:`daq-composables-useDaqFilters`,path:`/daq/composables/useDaqFilters`,component:()=>R(()=>import(`./BiXqyYNw2.js`).then(e=>e.i),__vite__mapDeps([44,1,2,5,11,34,25,3,4,6,8,42,36,45]),import.meta.url)},{name:`daq-composables-useDaqNodeWindow`,path:`/daq/composables/useDaqNodeWindow`,component:()=>R(()=>import(`./D-80EfyA2.js`).then(e=>e.n),__vite__mapDeps([46,1,2,5]),import.meta.url)},{name:`daq-composables-useDaqOptimizations`,path:`/daq/composables/useDaqOptimizations`,component:()=>R(()=>import(`./C1RMfPoB2.js`).then(e=>e.n),__vite__mapDeps([47,1,2,5,42,25,3,4,6,8]),import.meta.url)},{name:`daq-composables-useDaqTemplates`,path:`/daq/composables/useDaqTemplates`,component:()=>R(()=>import(`./ZzOyoXex2.js`).then(e=>e.r),__vite__mapDeps([48,1,2,5,3,4,6,34,25,8,45]),import.meta.url)},{name:`dcw-composables-useDcwAddNode`,path:`/dcw/composables/useDcwAddNode`,component:()=>R(()=>import(`./C_4mzQ5X.js`).then(e=>e.n),__vite__mapDeps([49,1,2,5,11,3,4,6,8,42,25]),import.meta.url)},{name:`dcw-composables-useDcwCards`,path:`/dcw/composables/useDcwCards`,component:()=>R(()=>import(`./CY2NkFvI.js`).then(e=>e.n),__vite__mapDeps([50,1,5,2,42,25,3,4,6,8]),import.meta.url)},{name:`dcw-composables-useDcwDetailScope`,path:`/dcw/composables/useDcwDetailScope`,component:()=>R(()=>import(`./EgO70wrE.js`).then(e=>e.n),__vite__mapDeps([51,1,5,2,40,41,11,34,25,3,4,6,8,42,36]),import.meta.url)},{name:`dcw-composables-useDcwDetailTemplates`,path:`/dcw/composables/useDcwDetailTemplates`,component:()=>R(()=>import(`./DtnsTW7e.js`).then(e=>e.n),__vite__mapDeps([52,1,2,5,11,3,4,6,42,25,8,45]),import.meta.url)},{name:`dcw-composables-useDcwFilter`,path:`/dcw/composables/useDcwFilter`,component:()=>R(()=>import(`./Tf6SJSDj.js`).then(e=>e.n),__vite__mapDeps([53,1,2,5,42,25,3,4,6,8]),import.meta.url)},{name:`dcw-composables-useDcwLedger`,path:`/dcw/composables/useDcwLedger`,component:()=>R(()=>import(`./BwOK42JQ.js`).then(e=>e.n),__vite__mapDeps([54,1,2,42,25,3,4,5,6,8]),import.meta.url)},{name:`dcw-composables-useDcwLineMutations`,path:`/dcw/composables/useDcwLineMutations`,component:()=>R(()=>import(`./D6PUmBb0.js`).then(e=>e.n),__vite__mapDeps([55,1,2,3,4,5,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwLineRun`,path:`/dcw/composables/useDcwLineRun`,component:()=>R(()=>import(`./CooauJ7D.js`).then(e=>e.n),__vite__mapDeps([56,1,2,5,11,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwParamApprovals`,path:`/dcw/composables/useDcwParamApprovals`,component:()=>R(()=>import(`./DC8sMA36.js`).then(e=>e.n),__vite__mapDeps([57,1,2,5,17,18,4,6,19,20,8,3,58,59,60,61,42,25]),import.meta.url)},{name:`dcw-composables-useDcwProducts`,path:`/dcw/composables/useDcwProducts`,component:()=>R(()=>import(`./COfo_Bg3.js`).then(e=>e.n),__vite__mapDeps([62,1,2,5,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwQuery`,path:`/dcw/composables/useDcwQuery`,component:()=>R(()=>import(`./DMFwLxfu.js`).then(e=>e.n),__vite__mapDeps([63,1,2,5,11,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwQuickActions`,path:`/dcw/composables/useDcwQuickActions`,component:()=>R(()=>import(`./BuLoPmcf.js`).then(e=>e.n),__vite__mapDeps([64,1,2,3,4,5,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwRecipes`,path:`/dcw/composables/useDcwRecipes`,component:()=>R(()=>import(`./BDXQqSkl2.js`).then(e=>e.n),__vite__mapDeps([65,1,2,11,5,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwTemplates`,path:`/dcw/composables/useDcwTemplates`,component:()=>R(()=>import(`./h-Fn7pRD.js`).then(e=>e.n),__vite__mapDeps([66,1,2,5,11,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useDcwWrites`,path:`/dcw/composables/useDcwWrites`,component:()=>R(()=>import(`./dcjPjLPI.js`).then(e=>e.n),__vite__mapDeps([67,1,2,11,5,3,4,6,42,25,8]),import.meta.url)},{name:`dcw-composables-useExpConfirmations`,path:`/dcw/composables/useExpConfirmations`,component:()=>R(()=>import(`./C14pM5G4.js`).then(e=>e.n),__vite__mapDeps([68,1,2,5,11,17,18,4,6,19,20,3,8]),import.meta.url)},{name:`dcw-composables-useRecipeDispatchApprovals`,path:`/dcw/composables/useRecipeDispatchApprovals`,component:()=>R(()=>import(`./CnrGVJIr.js`).then(e=>e.n),__vite__mapDeps([69,1,2,5,11,17,18,4,6,19,20,3,8]),import.meta.url)},{name:`logs-composables-useLogsFormat`,path:`/logs/composables/useLogsFormat`,component:()=>R(()=>import(`./DudoisLM.js`).then(e=>e.n),__vite__mapDeps([70,1,11,2,5]),import.meta.url)},{name:`logs-composables-useLogsManual`,path:`/logs/composables/useLogsManual`,component:()=>R(()=>import(`./EMbqTHfT.js`).then(e=>e.n),__vite__mapDeps([71,1,2,11,5,12,13,14,15,3,4,6,72,25,8]),import.meta.url)},{name:`logs-composables-useLogsQuery`,path:`/logs/composables/useLogsQuery`,component:()=>R(()=>import(`./CtcBhkci.js`).then(e=>e.i),__vite__mapDeps([73,1,2,5,11,12,13,14,15,72,25,3,4,6,8]),import.meta.url)},{name:`logs-composables-useLogsScope`,path:`/logs/composables/useLogsScope`,component:()=>R(()=>import(`./azOGy_tU2.js`).then(e=>e.n),__vite__mapDeps([74,1,42,2,25,3,4,5,6,8]),import.meta.url)},{name:`workshop-composables-useAgentHarnessOptions`,path:`/workshop/composables/useAgentHarnessOptions`,component:()=>R(()=>import(`./DYQBIsiV2.js`).then(e=>e.n),__vite__mapDeps([75,1,2,5,11,76,77,4,6]),import.meta.url)},{name:`workshop-composables-useAgentTemplateActions`,path:`/workshop/composables/useAgentTemplateActions`,component:()=>R(()=>import(`./Ud9o8ItR2.js`).then(e=>e.n),__vite__mapDeps([78,1,11,2,5,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useAgentTemplateDialogState`,path:`/workshop/composables/useAgentTemplateDialogState`,component:()=>R(()=>import(`./BBhLVYdM2.js`).then(e=>e.n),__vite__mapDeps([79,1,2]),import.meta.url)},{name:`workshop-composables-useAgentTemplateForm`,path:`/workshop/composables/useAgentTemplateForm`,component:()=>R(()=>import(`./Br_q4qi72.js`).then(e=>e.n),__vite__mapDeps([80,1,2,5,11,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useAgentTemplatesCatalog`,path:`/workshop/composables/useAgentTemplatesCatalog`,component:()=>R(()=>import(`./6P4ZAzxa2.js`).then(e=>e.n),__vite__mapDeps([81,1,2,5,11,60,59,19,20,76,77,4,6,45]),import.meta.url)},{name:`workshop-composables-useTeamActions`,path:`/workshop/composables/useTeamActions`,component:()=>R(()=>import(`./DH_oqyfL.js`).then(e=>e.n),__vite__mapDeps([82,1,11,2,5,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useTeamAddMemberDialog`,path:`/workshop/composables/useTeamAddMemberDialog`,component:()=>R(()=>import(`./fIV9zbnA.js`).then(e=>e.n),__vite__mapDeps([83,1,2,5,11,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useTeamCreateDialog`,path:`/workshop/composables/useTeamCreateDialog`,component:()=>R(()=>import(`./DmReUFK1.js`).then(e=>e.n),__vite__mapDeps([84,1,2,5,11,12,13,14,15,76,77,4,6]),import.meta.url)},{name:`workshop-composables-useTeamDeployDialog`,path:`/workshop/composables/useTeamDeployDialog`,component:()=>R(()=>import(`./BY2u4LPg.js`).then(e=>e.n),__vite__mapDeps([85,1,2,5,11,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useTeamDialogState`,path:`/workshop/composables/useTeamDialogState`,component:()=>R(()=>import(`./TOWR4WpO.js`).then(e=>e.n),__vite__mapDeps([86,1,2]),import.meta.url)},{name:`workshop-composables-useTeamPluginDialog`,path:`/workshop/composables/useTeamPluginDialog`,component:()=>R(()=>import(`./BSxcHoiy.js`).then(e=>e.n),__vite__mapDeps([87,1,2,5,11,12,13,14,15,3,4,6,76,77]),import.meta.url)},{name:`workshop-composables-useTeamsCatalog`,path:`/workshop/composables/useTeamsCatalog`,component:()=>R(()=>import(`./m6G-kfdj.js`).then(e=>e.n),__vite__mapDeps([88,1,2,5,11,60,59,19,20,76,77,4,6]),import.meta.url)},{name:`workshop-composables-useWorkbenchAuth`,path:`/workshop/composables/useWorkbenchAuth`,component:()=>R(()=>import(`./cKj4vSo5.js`).then(e=>e.n),__vite__mapDeps([89,1,2,5,11,12,13,14,15,60,59,19,20,3,4,6,61]),import.meta.url)},{name:`workshop-composables-useWorkbenchWorkspaces`,path:`/workshop/composables/useWorkbenchWorkspaces`,component:()=>R(()=>import(`./CZsFf7ck.js`).then(e=>e.n),__vite__mapDeps([90,1,2,5,18,4,6,19,20,11,12,13,14,15,60,59,3,91,17,25,26,27,61,58,92]),import.meta.url)},{name:`workshop-composables-useWorkspaceAuth`,path:`/workshop/composables/useWorkspaceAuth`,component:()=>R(()=>import(`./DiloA8vK.js`).then(e=>e.n),__vite__mapDeps([93,1,2,5,18,4,6,19,20,60,59,92]),import.meta.url)},{name:`workshop-composables-useWorkspaceChannels`,path:`/workshop/composables/useWorkspaceChannels`,component:()=>R(()=>import(`./Du7gS8RU.js`).then(e=>e.n),__vite__mapDeps([94,1,5,2,18,4,6,19,20,91,59,17,25,60,3,26,27,61,58,92]),import.meta.url)},{name:`workshop-composables-useWorkspacePanels`,path:`/workshop/composables/useWorkspacePanels`,component:()=>R(()=>import(`./BRci9D_l.js`).then(e=>e.n),__vite__mapDeps([95,1,2,5,92,59,19,20,60]),import.meta.url)},{name:`workshop-composables-useWorkspaceShell`,path:`/workshop/composables/useWorkspaceShell`,component:()=>R(()=>import(`./BfgTar9L.js`).then(e=>e.n),__vite__mapDeps([96,1,2,5,40,41,11,97]),import.meta.url)},{name:`workshop-w-wsId`,path:`/workshop/w/:wsId()`,meta:{layout:`default`},component:()=>R(()=>import(`./D1eVi1zr.js`),__vite__mapDeps([98,4,2,5,6,13,18,19,20,99,11,100,101,41,17,14,15,102,103,12,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,60,59,128,129,3,26,27,91,25,61,58,92,130,76,77,131,10,132,133,134,135,34,8,42,36,45,136,97,137,93,1,94,95,96,40,138]),import.meta.url)},{name:`aml-api`,path:`/aml/api`,component:()=>R(()=>import(`./Cn6EojFe.js`).then(e=>e.n),__vite__mapDeps([7,1,8,3,4,2,5,6]),import.meta.url)},{name:`aml-constants`,path:`/aml/constants`,component:()=>R(()=>import(`./B6Olw0Op.js`).then(e=>e.s),__vite__mapDeps([21,1]),import.meta.url)},{name:`aml-types`,path:`/aml/types`,component:()=>R(()=>import(`./BvRk9kiK.js`),[],import.meta.url)},{name:`analysis-types`,path:`/analysis/types`,component:()=>R(()=>import(`./9j2J4k4w.js`).then(e=>e.r),__vite__mapDeps([32,1]),import.meta.url)},{name:`composables-useDashboardCharts`,path:`/composables/useDashboardCharts`,component:()=>R(()=>import(`./ilJHF1nA2.js`).then(e=>e.n),__vite__mapDeps([139,1,5,2,11]),import.meta.url)},{name:`composables-useDashboardData`,path:`/composables/useDashboardData`,component:()=>R(()=>import(`./Dr1FVeQG2.js`).then(e=>e.n),__vite__mapDeps([140,1,2,5,141,4,6,19,18,20,59,27,142,41,101,13,10,100,143,34,25,3,8,42,76,77]),import.meta.url)},{name:`dcw-types`,path:`/dcw/types`,component:()=>R(()=>import(`./C50LmoI1.js`),[],import.meta.url)},{name:`ontology-api`,path:`/ontology/api`,component:()=>R(()=>import(`./DWy0AjON.js`).then(e=>e.t),__vite__mapDeps([144,1,8,3,4,2,5,6]),import.meta.url)},{name:`ontology-types`,path:`/ontology/types`,component:()=>R(()=>import(`./DgrK8UCQ.js`),[],import.meta.url)},{name:`optimizer-api`,path:`/optimizer/api`,component:()=>R(()=>import(`./k9b520K-.js`).then(e=>e.t),__vite__mapDeps([145,1,8,3,4,2,5,6]),import.meta.url)},{name:`studio-board`,path:`/studio/board`,component:()=>R(()=>import(`./Co8Dcx132.js`),__vite__mapDeps([146,2,5,13,142,4,6,19,18,20,41,101,11,100,128,147,1,3,8,148,149,150]),import.meta.url)},{name:`studio-pipeline`,path:`/studio/pipeline`,component:()=>R(()=>import(`./yS3bF3G32.js`),__vite__mapDeps([151,2,5,13,142,4,6,19,18,20,41,101,10,11,100,128,3,8,149,152]),import.meta.url)},{name:`workshop-agents`,path:`/workshop/agents`,meta:{layout:`default`},component:()=>R(()=>import(`./CjdxNYpU2.js`),__vite__mapDeps([153,2,5,18,4,6,19,20,99,11,100,101,13,41,154,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,104,108,112,117,126,127,128,130,80,1,3,76,77,75,78,79,81,60,59,45,159]),import.meta.url)},{name:`workshop-channel-templates`,path:`/workshop/channel-templates`,meta:{layout:`default`},component:()=>R(()=>import(`./tDEwr422.js`),__vite__mapDeps([160,2,5,18,4,6,19,20,99,11,100,101,13,41,104,14,103,15,102,12,105,106,107,108,109,110,111,112,113,117,125,126,127,60,59,128,3,130,76,77,45,161]),import.meta.url)},{name:`workshop-schedules`,path:`/workshop/schedules`,meta:{layout:`default`},component:()=>R(()=>import(`./BwOko01T.js`),__vite__mapDeps([162,2,5,99,4,6,11,17,18,19,20,14,103,13,15,107,102,12,154,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,104,108,112,117,163,115,123,118,124,126,128,3,130,76,77,164]),import.meta.url)},{name:`workshop-teams`,path:`/workshop/teams`,meta:{layout:`default`},component:()=>R(()=>import(`./DZqVVvR0.js`),__vite__mapDeps([165,2,5,18,4,6,19,20,99,11,100,101,13,41,104,14,103,15,102,12,105,106,107,108,109,110,111,112,113,114,121,158,119,120,125,126,127,128,130,45,82,1,3,76,77,83,84,85,86,87,88,60,59,166]),import.meta.url)},{name:`daq-id`,path:`/daq/:id()`,meta:{layout:`default`},component:()=>R(()=>import(`./HJKu4eEV2.js`),__vite__mapDeps([167,2,5,13,142,4,6,19,18,20,41,101,11,128,26,27,130,37,1,34,25,3,8,35,36,38,17,39,40,42,43,168]),import.meta.url)},{name:`dcw-id`,path:`/dcw/:id()`,component:()=>R(()=>import(`./be-4wyTo.js`),__vite__mapDeps([169,2,5,13,142,4,6,19,18,20,41,101,11,125,14,128,8,3,26,27,61,45,136,65,1,42,25,49,51,40,34,36,52,54,56,57,17,58,59,60,62,63,67,68,69,170]),import.meta.url)},{name:`aml`,path:`/aml`,meta:{layout:`default`},component:()=>R(()=>import(`./BaYDgyaR.js`),__vite__mapDeps([171,2,5,13,99,4,6,11,17,18,19,20,12,14,15,128,3,91,59,25,60,26,27,61,58,7,1,8,0,9,10,21,16,22,23,24,28,29,30,130,172,173]),import.meta.url)},{name:`analysis`,path:`/analysis`,component:()=>R(()=>import(`./DDHh85c42.js`),__vite__mapDeps([174,2,5,13,11,12,14,15,117,103,102,60,59,19,20,128,3,4,6,8,26,27,91,17,18,25,61,58,32,1,31,74,42,175]),import.meta.url)},{name:`daq`,path:`/daq`,meta:{layout:`default`},component:()=>R(()=>import(`./7op-BMk82.js`),__vite__mapDeps([176,2,5,13,99,4,6,142,19,18,20,41,101,11,12,14,15,125,128,3,91,59,17,25,60,26,27,61,58,130,172,34,8,42,36,33,1,44,45,46,47,48,72,177]),import.meta.url)},{name:`data`,path:`/data`,component:()=>R(()=>import(`./-gwj-zlk2.js`),__vite__mapDeps([178,2,5,13,11,100,101,18,4,6,19,20,41,17,128,147,1,3,8,179]),import.meta.url)},{name:`dcw`,path:`/dcw`,component:()=>R(()=>import(`./CdvMP3lv.js`),__vite__mapDeps([180,2,5,13,142,4,6,19,18,20,41,101,11,128,42,25,3,8,45,68,1,17,50,53,55,64,66,181]),import.meta.url)},{name:`logs`,path:`/logs`,component:()=>R(()=>import(`./B1SIgyrl.js`),__vite__mapDeps([182,2,5,13,155,14,103,15,107,113,105,111,120,156,157,128,91,59,19,20,17,18,4,6,25,60,3,26,27,61,58,42,8,74,1,72,70,11,71,12,73,183]),import.meta.url)},{name:`monitor`,path:`/monitor`,meta:{layout:`default`},component:()=>R(()=>import(`./BfvuWqSa.js`),__vite__mapDeps([184,2,5,18,4,6,19,20,11,14,15,13,154,103,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,117,163,115,108,112,126,60,59,128,130,185,1,186,26,27,131,10,123,118,132,187,17,61,188,189]),import.meta.url),children:[{name:`monitor-composables-useMonitorColumns`,path:`composables/useMonitorColumns`,component:()=>R(()=>import(`./BK4wbfGS.js`).then(e=>e.r),__vite__mapDeps([185,1,5,2,11,60,59,19,20]),import.meta.url)},{name:`monitor-composables-useMonitorData`,path:`composables/useMonitorData`,component:()=>R(()=>import(`./CRCrWy-6.js`).then(e=>e.n),__vite__mapDeps([187,1,2,5,11,17,18,4,6,19,20,12,13,14,15,60,59,26,27,61]),import.meta.url)},{name:`monitor-composables-useMonitorFormat`,path:`composables/useMonitorFormat`,component:()=>R(()=>import(`./jDuiDtGb.js`).then(e=>e.r),__vite__mapDeps([186,1,11,2,5,26,27,4,6,19]),import.meta.url)},{name:`monitor-composables-useMonitorTerminal`,path:`composables/useMonitorTerminal`,component:()=>R(()=>import(`./BxHBIVAg.js`).then(e=>e.n),__vite__mapDeps([188,1,2]),import.meta.url)},{name:`monitor-types`,path:`types`,component:()=>R(()=>import(`./DybRo6-H.js`),[],import.meta.url)}]},{name:`ontology`,path:`/ontology`,component:()=>R(()=>import(`./D8AvmPUH.js`),__vite__mapDeps([190,2,5,13,11,154,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,123,118,127,60,59,19,20,128,3,4,6,144,1,8,191]),import.meta.url)},{name:`operations`,path:`/operations`,component:()=>R(()=>import(`./BA2lmfW4.js`),__vite__mapDeps([192,2,5,13,155,14,103,15,107,113,105,111,120,156,157,128,26,27,4,6,19,91,59,20,17,18,25,60,3,61,58,74,1,42,8,72,193,194]),import.meta.url),children:[{name:`operations-composables-useOperationsFeed`,path:`composables/useOperationsFeed`,component:()=>R(()=>import(`./DRskyE7l.js`).then(e=>e.o),__vite__mapDeps([193,1,2,5,72,25,3,4,6,8]),import.meta.url)}]},{name:`optimizer`,path:`/optimizer`,meta:{layout:`default`},component:()=>R(()=>import(`./BPUQZ9Lq2.js`),__vite__mapDeps([195,2,5,13,99,4,6,11,128,130,145,1,8,3,196]),import.meta.url)},{name:`permissions`,path:`/permissions`,component:()=>R(()=>import(`./26OL4Ao82.js`),__vite__mapDeps([197,2,5,13,18,4,6,19,20,11,154,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,163,115,108,123,118,60,59,128,3,61,198]),import.meta.url)},{name:`plugins`,path:`/plugins`,component:()=>R(()=>import(`./BVg2R2VB2.js`),__vite__mapDeps([199,2,5,13,11,12,14,15,116,123,118,126,105,60,59,19,20,128,3,4,6,61,45,200,201,202,203]),import.meta.url)},{name:`settings`,path:`/settings`,component:()=>R(()=>import(`./CBkXv24C2.js`),__vite__mapDeps([204,4,2,5,6,13,59,19,20,141,18,27,142,41,101,10,100,11,12,14,15,113,103,107,105,106,116,163,115,108,114,102,121,110,122,111,124,125,126,60,205,77,143,128,3,8,76,200,201,202,206]),import.meta.url)},{name:`studio`,path:`/studio`,component:()=>R(()=>import(`./CNRjkgAZ2.js`),__vite__mapDeps([207,2,5,13,18,4,6,19,20,142,41,101,11,100,128,147,1,3,8,148,149,208]),import.meta.url)},{name:`tokens`,path:`/tokens`,meta:{layout:`default`},component:()=>R(()=>import(`./DuUc4bbY2.js`),__vite__mapDeps([209,2,5,13,18,4,6,19,20,99,11,154,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,117,163,115,108,112,60,59,128,130,210,1,3,211,212,213,214,215]),import.meta.url),children:[{name:`tokens-composables-useTokenClipboard`,path:`composables/useTokenClipboard`,component:()=>R(()=>import(`./DkJVtqfc2.js`).then(e=>e.n),__vite__mapDeps([212,1]),import.meta.url)},{name:`tokens-composables-useTokenCreate`,path:`composables/useTokenCreate`,component:()=>R(()=>import(`./Dt8TL8_X2.js`).then(e=>e.n),__vite__mapDeps([211,1,2,5,11,12,13,14,15,60,59,19,20,3,4,6,212]),import.meta.url)},{name:`tokens-composables-useTokenRename`,path:`composables/useTokenRename`,component:()=>R(()=>import(`./DW4ZgInh2.js`).then(e=>e.n),__vite__mapDeps([213,1,2,11,5,12,13,14,15,60,59,19,20,3,4,6]),import.meta.url)},{name:`tokens-composables-useTokenReveal`,path:`composables/useTokenReveal`,component:()=>R(()=>import(`./DwgVlehj2.js`).then(e=>e.r),__vite__mapDeps([214,1,2,11,5,12,13,14,15,60,59,19,20,212]),import.meta.url)},{name:`tokens-composables-useTokensList`,path:`composables/useTokensList`,component:()=>R(()=>import(`./ByTnUqFw2.js`).then(e=>e.n),__vite__mapDeps([210,1,2,5,11,12,13,14,15,60,59,19,20,3,4,6]),import.meta.url)}]},{name:`tools`,path:`/tools`,component:()=>R(()=>import(`./byZYInPk2.js`),__vite__mapDeps([216,2,5,11,154,13,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,123,118,128,3,4,6,76,77,217]),import.meta.url)},{name:`town`,path:`/town`,meta:{layout:`town`,title:`Digital Twin`},component:()=>R(()=>import(`./BlOm8JIs2.js`),__vite__mapDeps([218,2,5,18,4,6,19,20,59,60,128,91,17,25,3,26,27,61,58,92,130,133,13,10,11,77,134,135,129,34,8,42,36,45,136,97,137,219]),import.meta.url)},{name:`users`,path:`/users`,component:()=>R(()=>import(`./DhLlTxQh2.js`),__vite__mapDeps([220,2,5,99,4,6,11,154,13,14,103,15,107,102,12,113,105,106,109,110,114,155,111,120,156,157,121,158,119,125,117,163,115,108,112,60,59,19,20,128,61,221]),import.meta.url)},{name:`workshop`,path:`/workshop`,meta:{layout:`default`},component:()=>R(()=>import(`./dHwWyr6b.js`),__vite__mapDeps([222,2,5,13,18,4,6,19,20,99,11,100,101,41,12,14,15,106,107,103,105,112,125,60,59,128,3,223,115,108,114,102,163,224,130,89,1,61,90,91,17,25,26,27,58,92,225]),import.meta.url)},{name:`index`,path:`/`,component:()=>R(()=>import(`./DzU3zEKX.js`),__vite__mapDeps([226,2,5,18,4,6,19,20,99,142,41,101,13,11,100,128,147,1,172,17,139,140,141,59,27,10,143,34,25,3,8,42,76,77,200,201,202,227]),import.meta.url)}];function Gn(e,t,n){let{pathname:r,search:i,hash:a}=t,o=e.indexOf(`#`);if(o>-1){let t=a.includes(e.slice(o))?e.slice(o).length:1,n=a.slice(t);return n[0]!==`/`&&(n=`/`+n),Ie(n,``)}let s=Ie(r,e),c=!n||Ne(s,n)?s:n;return c+(c.includes(`?`)?``:i)+a}var Kn=o({name:`nuxt:router`,enforce:`pre`,async setup(e){let t,n,r=a().app.baseURL,i=L.history?.(r)??St(r),o=L.routes?([t,n]=s(()=>L.routes(Wn)),t=await t,n(),t??Wn):Wn,c,l=Ct({...L,scrollBehavior:(e,t,n)=>{if(t===bt){c=n;return}if(L.scrollBehavior){if(l.options.scrollBehavior=L.scrollBehavior,`scrollRestoration`in window.history){let e=l.beforeEach(()=>{e(),window.history.scrollRestoration=`manual`})}return L.scrollBehavior(e,bt,c||n)}},history:i,routes:o});`scrollRestoration`in window.history&&(window.history.scrollRestoration=`auto`),e.vueApp.use(l);let u=d(l.currentRoute.value);l.afterEach((e,t)=>{u.value=t}),Object.defineProperty(e.vueApp.config.globalProperties,"previousRoute",{get:()=>u.value});let f=Gn(r,window.location,e.payload.path),g=d(l.currentRoute.value),_=()=>{g.value=l.currentRoute.value};l.afterEach((e,t)=>{let n=e.matched.at(-1)?.components?.default,r=t.matched.at(-1)?.components?.default;if(n===r){zn({route:e,Component:{type:n}})===zn({route:t,Component:{type:r}})&&_();return}e.matched.length<t.matched.length&&e.matched.every((e,n)=>e.components?.default===t.matched[n]?.components?.default)&&_()});let v={sync:_};for(let e in g.value)Object.defineProperty(v,e,{get:()=>g.value[e],enumerable:!0});e._route=p(v),e._middleware||={global:[],named:{}};let y=Oe();l.afterEach(async(t,n,r)=>{delete e._processingMiddleware,!e.isHydrating&&y.value&&await e.runWithContext(De),r&&await e.callHook(`page:loading:end`)});try{[t,n]=s(()=>l.isReady()),await t,n()}catch(r){[t,n]=s(()=>we(e,r)),await t,n()}let b=f===l.currentRoute.value.fullPath?l.currentRoute.value:l.resolve(f),x=l.currentRoute.value.fullPath,S=e.isHydrating&&e.payload.prerenderedAt&&e.payload.path&&f!==e.payload.path&&Ne(l.currentRoute.value.path,e.payload.path);_();function C(t){!e.isHydrating&&t.fullPath!==Gn(r,window.location)&&i.push(t.fullPath)}let w=e.payload.state._layout;return l.beforeEach(async(t,n)=>{await e.callHook(`page:loading:start`),t.meta=m(t.meta),e.isHydrating&&w&&!h(t.meta.layout)&&(t.meta.layout=w),e._processingMiddleware=!0;{let r=new Set([...Hn,...e._middleware.global]);for(let e of t.matched){let t=e.meta.middleware;if(t)for(let e of Vn(t))r.add(e)}let i=vt({path:t.path});if(i.appMiddleware)for(let e in i.appMiddleware)i.appMiddleware[e]?r.add(e):r.delete(e);for(let i of r){let r=typeof i==`string`?e._middleware.named[i]||await Un[i]?.().then(e=>e.default||e):i;if(!r)throw xe.NUXT_E2004({entry:String(i),validMiddleware:void 0});try{let i=await e.runWithContext(()=>r(t,n));if(!e.payload.serverRendered&&e.isHydrating&&(i===!1||i instanceof Error)){let t=i||Se({status:404,statusText:`Page Not Found: ${f}`});return await e.runWithContext(()=>Te(t)),!1}if(i===!0)continue;if(i===!1)return i;if(i)return ve(i)&&i.fatal&&(await e.runWithContext(()=>Te(i)),C(t)),i}catch(n){let r=Se(n);return r.fatal&&(await e.runWithContext(()=>Te(r)),C(t)),r}}}}),l.onError(async()=>{delete e._processingMiddleware,await e.callHook(`page:loading:end`)}),l.afterEach(t=>{if(t.matched.length===0&&!y.value)return e.runWithContext(()=>Te(Se({status:404,fatal:!1,statusText:`Page not found: ${t.fullPath}`,data:{path:t.fullPath}})))}),e.hooks.hookOnce(`app:created`,async()=>{try{if(`name`in b&&(b.name=void 0),l.currentRoute.value.fullPath===x){if(S){let t=l.resolve(e.payload.path);`name`in t&&(t.name=void 0),await l.replace({...t,force:!0});let n=()=>{e[`~restoreDeferredRoute`]&&(e[`~restoreDeferredRoute`]=void 0,l.currentRoute.value=l.resolve(f),_(),l.replace({...b,force:!0}).catch(()=>{}))};e[`~restoreDeferredRoute`]=n,e.hooks.hookOnce(`app:suspense:resolve`,n)}else await l.replace({...b,force:!0})}l.options.scrollBehavior=L.scrollBehavior}catch(t){await we(e,t)}}),{provide:{router:l}}}},1),qn=o({name:`nuxt:payload`,setup(e){let t=new Set;F().beforeResolve(async(n,r)=>{let i=gt(n.path),a=i?Fe(n.fullPath):n.path;if(a===(i?Fe(r.fullPath):r.path))return;let o=await ut(a);if(o){for(let n of t)delete e.static.data[n];for(let n in o.data)n in e.static.data||t.add(n),e.static.data[n]=o.data[n]}}),Ot(()=>{e.hooks.hook(`link:prefetch`,async e=>{let{hostname:t,pathname:n}=new URL(e,window.location.href);t===window.location.hostname&&await ut(e).catch(()=>{st.NUXT_E7003({url:e})})}),navigator.connection?.effectiveType!==`slow-2g`&&setTimeout(ft,1e3)})}}),Jn=o(()=>{let e=F();Ot(()=>{e.beforeResolve(async()=>{await new Promise(e=>{setTimeout(e,100),requestAnimationFrame(()=>{setTimeout(e,0)})})})})}),Yn=o(e=>{let t;async function n(){let r;try{r=await ft()}catch(e){let t=e;if(!(`status`in t&&(t.status===404||t.status===403)))throw t}t&&clearTimeout(t),t=setTimeout(n,fe);try{let n=await Ye(Ge(`builds/latest.json`)+`?${Date.now()}`);n.id!==r?.id&&(e.hooks.callHook(`app:manifest:update`,n),t&&clearTimeout(t))}catch{}}Ot(()=>{t=setTimeout(n,fe)})});function Xn(e={}){let n=e.path||window.location.pathname,r=new URL(n,window.location.href);if(r.host!==window.location.host)throw xe.NUXT_E2010({path:n});if(r.protocol&&Be(r.protocol))throw xe.NUXT_E2002({toPath:n,protocol:r.protocol});let i={};try{i=JSON.parse(sessionStorage.getItem(`nuxt:reload`)||`{}`)}catch{}if(e.force||i?.path!==n||i?.expires<Date.now()){try{sessionStorage.setItem(`nuxt:reload`,JSON.stringify({path:n,expires:Date.now()+(e.ttl??1e4)}))}catch{}if(e.persistState)try{sessionStorage.setItem(`nuxt:reload:state`,JSON.stringify({state:t().payload.state}))}catch{}window.location.pathname===n?window.location.reload():window.location.href=n}}var Zn=o({name:`nuxt:chunk-reload-crawler`,setup(e){let t=!0;e.hooks.hookOnce(`app:suspense:resolve`,()=>{t=!1}),e.hook(`app:chunkError`,()=>{t&&ge(navigator.userAgent)&&Xn()})}}),Qn=o({name:`nuxt:chunk-reload`,setup(e){let t=F(),n=a(),r=new Set;t.beforeEach(()=>{r.clear()}),e.hook(`app:chunkError`,({error:e})=>{r.add(e)});function i(e){Xn({path:Pe(n.app.baseURL,e.fullPath),persistState:!0})}e.hook(`app:manifest:update`,()=>{t.beforeResolve(i)}),t.onError((e,t)=>{r.has(e)&&i(t)})}}),$n=o({name:`nuxt:island-link-navigation`,setup(e){}}),er={common:{stop:`停止`,add:`添加`,remove:`移除`,create:`创建`,revoke:`吊销`,close:`关闭`,light:`亮色`,dark:`暗色`,confirm:`确定`,cancel:`取消`,save:`保存`,search:`搜索`,actions:`操作`,edit:`编辑`,delete:`删除`,status:`状态`,all:`全部`,copy:`复制`,copied:`已复制`},menu:{system:`AgentWorkShop`,groups:{console:`控制台`,ops:`运维`,system:`系统`},ontology:`本体模型`,dashboard:`仪表盘`,workshop:`Agent 工作台`,town:`数字孪生`,tokens:`API Token`,daq:`数采中心`,dcw:`产线运营`,dataManagement:`数据管理`,studio:`EDA 工坊`,aml:`建模`,optimizer:`优化器`,logs:`产线日志`,operations:`产线操作`,analysis:`数据分析`,users:`用户管理`,monitor:`运行时监控`,plugins:`插件管理`,tools:`工具管理`,settings:`系统设置`,permissions:`权限管理`},header:{collapse:`折叠菜单`,expand:`展开菜单`,openNav:`打开导航`,closeNav:`关闭导航`,language:`语言`,theme:`主题`,fullscreen:`全屏`,notifications:`通知`,profile:`个人中心`,guest:`访客`,login:`登录`,guestBanner:`以访客身份浏览:登录后可查看与操作您的产线`,logout:`退出登录`,trail:`航迹导航(点击返回对应页面)`,workspace:`工作台`,nodeDetail:`数采节点`,lineDetail:`产线作业`},home:{kicker:`DIGITAL TWIN · 产线运营`,heroTitle:`虚实映射的产线`,heroAccent:`运营中枢`,heroSub:`智控下发与数采回流同屏共振:配方开跑、参数设定、实时工况、越限告警一屏尽览,孪生界面与真实 PLC 同拍运行。`,ctaTown:`进入数字孪生`,ctaLine:`产线运营管理`,live:`LIVE`,kpi:{lines:`运行产线`,dcwNodes:`控制节点`,daqNodes:`数采通道`,samples:`累计采集样本`,writeRate:`写命令成功率`,alarms:`活跃告警`},charts:{trend:`实时工况趋势`,trendSub:`按节点量程归一化 · 近 3 分钟`,lineState:`产线运行状态`,pipeline:`数采管线吞吐`,writeCtl:`写控制成功率`,nodeState:`节点状态分布`,lines:`产线清单`},trendY:`量程占比 %`,trendWaiting:`正在等待实时数据流…`,trendNeedRun:`数采由活动批次门控:产线未开跑时不采样。在「产线运营」开跑后,此处显示实时趋势。`,runNow:`运行中`,standBy:`待机`,pipelineSeries:{produced:`已发布`,consumed:`已消费`,stored:`已入库`},stateDaq:`数采节点`,stateDcw:`控制节点`,states:{ok:`正常`,warn:`预警`,alarm:`告警`,writing:`写入中`,idle:`待机`,error:`故障`,offline:`离线`},batch:`运行批次`,nodesUnit:`控制节点`,daqUnit:`数采通道`,tagged:`已打标样本`,noLine:`暂无产线 —— 前往「产线运营」创建`,fleetAll:`查看全部产线`,fleetHint:`运行中优先 · 最多展示 8 条`,writesFailed:`失败`,harness:{title:`执行引擎`,sub:`Harness CLI 环境探测 · 就绪即可派工`,missing:`未安装`},fields:{name:`应用名称`,version:`版本`,mode:`运行模式`,devPort:`开发端口`,prodPort:`生产端口`,apiBase:`API 基址`,primary:`主题色`}},users:{krkb23h011:`{p0} 角色已调整为 {p1}`,k1u7u12g012:`{p0} 已{p1}`,knh5f2r013:`已删除 {p0}`,k3xhfg009:`启用`,k3wsi1010:`停用`,k1jk2os9001:`删除该用户?(其名下资源保留,归属仍可追溯)`,k1flpho5002:`管理全局用户与角色(admin 拥有最高权限:全量监控、任意模板、用户管理)。`,kpdo6rc003:`需要管理员权限`,k1mue9bl004:`用户管理仅对 admin 角色开放;请联系管理员调整角色。`,k3xakp005:`删除`,k1br33vc006:`加载失败`,k1enhqn3007:`更新失败`,k1bphrb3008:`删除失败`,title:`用户管理`,subtitle:`管理系统用户、角色与访问权限`,add:`新增用户`,search:`搜索用户名或邮箱`,deleteConfirm:`确定要删除该用户吗?`,name:`用户名`,email:`邮箱`,role:`角色`,created:`创建时间`,roleAdmin:`管理员`,roleEditor:`编辑`,roleUser:`普通用户`,active:`正常`,disabled:`已禁用`},settings:{title:`系统设置`,subtitle:`配置应用基本信息、主题外观与通知偏好`,basic:`基本设置`,basicDesc:`应用的名称、描述等基础信息`,theme:`主题设置`,themeDesc:`自定义主色调与显示模式`,notification:`通知设置`,notificationDesc:`管理系统消息通知的推送方式`,appName:`应用名称`,appDesc:`应用描述`,primaryColor:`主题色`,themeMode:`显示模式`,appearanceDesc:`主题色、深浅模式与语言偏好,实时生效并自动持久化(localStorage)。`,accentDesc:`默认品牌绿,与 Digital Twin 控制室同源;可选低饱和预设,悬停预览即时生效。`,accentInk:`品牌`,accentStone:`琥珀`,accentMoss:`苔绿`,accentSlate:`靛蓝`,accentPlum:`紫檀`,accentClay:`陶赭`,accentApplied:`主题色已应用`,accentReset:`已恢复默认主题色(跟随 config.yml)`,accentResetAction:`恢复默认`,darkDesc:`深海军蓝控制室暗阶,与数字孪生空间同一视觉语言;亮色模式保留编辑风格。`,languageDesc:`界面语言(zh-CN / en),选择即生效。`,systemTab:`系统`,systemDesc:`只读运行参数(同源 config.yml,经 nuxt.config runtimeConfig 注入)。`,identity:`当前身份`,identityGuest:`当前未登录(工作台数据需登录后查看)`,emailNotify:`邮件通知`,emailNotifyDesc:`重要事件通过邮件推送给管理员`,smsNotify:`短信通知`,smsNotifyDesc:`紧急告警通过短信即时送达`,pushNotify:`站内推送`,pushNotifyDesc:`浏览器内实时消息提醒`,saveSuccess:`设置已保存`,runtimeTab:`运行配置`,runtime:{groupMemory:`记忆系统`,groupOmp:`Agent Harness`,groupDcw:`数控写控`,groupWorkshop:`车间运行`,groupBackup:`数据备份`,groupRetention:`数据保留`,groupOptimizer:`优化器求解器`,groupLog:`日志`,title:`运行配置`,desc:`服务端持久化的运行参数:live 键保存即热重载生效(无需刷新),restart 键下次启动生效。与 CLI(aw config)同源同通道。`,live:`实时`,restart:`重启`,save:`保存设置`,resetAll:`恢复全部默认`,resetKey:`恢复默认值`,savedLive:`已保存,live 键已热重载生效`,restartNotice:`已保存。以下键需重启对应模式后生效:{keys}`,keyReset:`已恢复默认:{key}`,resetAllDone:`全部运行时覆盖已清空(回落 config.yml)`,groupServer:`服务`,groupApp:`应用`,groupTheme:`主题`,groupI18n:`国际化`,groupSecurity:`安全`,groupDaq:`数采`,groupApi:`API`,groupHarness:`Harness 接入`,groupPlugins:`插件`,memory:{primerTokens:`记忆引子预算`,injectTotal:`记忆注入硬顶`,maintenanceMs:`记忆维护周期(ms)`,expireDays:`情景记忆过期(天)`,expireSessionDays:`会话记忆过期(天)`,cap:`记忆条目上限`,reflectTrigger:`反思触发阈值`,embedBaseUrl:`Embedding 端点`,embedModel:`Embedding 模型`,embedApiKey:`Embedding 密钥`},omp:{compactEnabled:`上下文自动压缩`,compactThreshold:`压缩阈值`,compactMinIntervalMs:`压缩最小间隔(ms)`,compactWaitMs:`压缩等待超时(ms)`},dcw:{rollbackCooldownMs:`回退冷却(ms)`,rollbackMinWindowMs:`回退最小观察窗(ms)`,rollbackBaselineMs:`基线稳定窗(ms)`,rollbackStaleMs:`open 记录过期(ms)`},workshop:{idleSweepMs:`空产线扫描(ms)`,idleGraceMs:`空闲宽限(ms)`},backup:{disabled:`禁用自动备份`,intervalHours:`备份间隔(h)`,keep:`备份保留份数`},retention:{disabled:`禁用数据保留策略`,eventsDays:`事件保留(天)`,messagesDays:`消息保留(天)`,auditDays:`审计日志保留(天)`,approvalDays:`审批历史保留(天)`,analysisDays:`分析报告保留(天)`,optimizerDays:`优化运行保留(天)`,processModelDays:`过程模型台账保留(天)`},optimizer:{poolSize:`Solver 进程池上限`,requestTimeoutMs:`Solver 请求超时(ms)`,threads:`Solver 线程预算`,crosscheckTol:`互校一致性容差`},log:{level:`日志级别`},daq:{mqttQos:`MQTT QoS`,mqttUsername:`MQTT 用户名`,mqttPassword:`MQTT 密码`,mqttCaFile:`MQTT CA 证书`,mqttRejectUnauthorized:`MQTT 校验证书`,samplingDefaultIntervalMs:`节点采样默认间隔(ms)`,samplingMinIntervalMs:`节点采样下限(ms)`,queryDefaultBucketMs:`时序查询默认间隔(ms)`,queryMinBucketMs:`时序查询下限(ms)`,tsRetentionH:`标量时序保留(h)`,frameRetentionH:`帧元数据保留(h)`,alarmWebhookUrl:`告警 Webhook`,alarmEscalateMinutes:`告警升级时限(min)`,startInfrastructure:`数采基础设施拉起策略`,mqttHost:`MQTT Broker 地址`,mqttPort:`MQTT Broker 端口`,tsHost:`时序库地址`,tsPort:`时序库端口`,publishDefaultIntervalMs:`WS 下发默认间隔(ms)`,publishMinIntervalMs:`WS 下发下限(ms)`,queryDisplayIntervalMs:`趋势图刷新间隔(ms)`,queryMinDisplayIntervalMs:`趋势图刷新下限(ms)`,export:{pagesPerNode:`导出单节点分页上限`,windowMaxH:`导出时间窗上限(h)`}},aml:{pythonBin:`Python 解释器`,uvBin:`uv 可执行`,indexUrl:`pip 镜像源`,jobTimeoutMs:`作业墙钟超时(ms)`,jobMaxConcurrent:`最大并发作业`,jobDiskQuotaMb:`AML 磁盘配额(MB)`,jobStallMs:`作业停摆判定(ms)`,datasetMaxRows:`数据集行数上限`,datasetRetentionDays:`无引用数据集保留(天)`,allowCrossRecipe:`允许跨 Recipe 合并`,retiredKeepDays:`退役模型工件保留(天)`,gateNrmse:`门禁:单步 NRMSE`,gateRolloutNrmse:`门禁:多步滚动 NRMSE`,gateValTestGap:`门禁:泛化差`,gateMinRows:`门禁:最少样本行`,gateMinRuns:`门禁:最少批次数`,uqFreshDays:`UQ 证据保鲜天数`},security:{hitlTimeoutMs:`HITL 审批超时(ms)`,hitlTimeoutMode:`HITL 超时语义`,approvalGate:`高危操作双人复核`,allowRegistration:`开放自助注册`,hstsEnabled:`下发 HSTS 头`,recipeDispatchApproval:`配方下发人工审批`,recipeDispatchApprovalDesc:`开启后 recipe_trial/recipe_apply 下发前挂起等待人工裁决:批准=执行;拒绝可附指导,Agent 按指导修订后重新提交`,recipeDispatchTimeoutMs:`配方方案审批超时(ms)`},server:{host:`监听地址`,devPort:`开发端口`,prodPort:`生产端口`},app:{title:`应用标题`,description:`应用描述`},api:{baseURL:`API 基址`,timeout:`API 超时(ms)`,pageSize:`默认分页大小`,maxPageSize:`分页大小上限`},theme:{primaryColor:`主题色`,mode:`显示模式`},i18n:{defaultLocale:`默认语言`},time:{timeZone:`系统时区(日志/聊天/审计/调度)`}},groups:{toggleAll:`展开/收起全部分组`,expandAll:`全部展开`,collapseAll:`全部收起`,count:`共 {p0} 个分组`,newGroup:`新建分组`,namePlaceholder:`分组名称(如「现场网络」)`,descPlaceholder:`分组说明(可选)`,defaultCollapsed:`默认折叠`,create:`创建`,cancel:`取消`,ok:`确定`,rename:`重命名`,moveUp:`上移`,moveDown:`下移`,delete:`删除分组`,created:`分组已创建`,renamed:`分组已重命名`,deleted:`分组已删除`,createFail:`创建分组失败`,updateFail:`更新分组失败`,deleteFail:`删除分组失败`,deleteHasFields:`分组「{p0}」还有 {p1} 个字段,请先移走再删除`,fields:`{p0} 项`,emptyHint:`该分组暂无字段 —— 可用 API 或插件向此分组登记配置项`,srcBuiltin:`内置`,srcUser:`自建`,srcPlugin:`插件`}},monitor:{k1dzryry003:`我的资源`,k16zpmg9002:`admin 全量视图`,k1dg9sr8001:`归属用户`,title:`运行时监控`,subtitle:`已装配的 ChannelRuntime / AgentRuntime 与 harness 进程台账`,refresh:`刷新`,autoRefresh:`自动刷新`,needLogin:`需要登录后才能查看运行时资源`,goLogin:`前往登录`,loadFailed:`加载监控数据失败`,failed:`操作失败`,channels:`Channel 运行时`,agents:`Agent 运行时`,aliveProcesses:`活跃 harness 进程`,orphan:`孤儿`,server:`服务进程`,updated:`快照`,channelRuntimes:`ChannelRunTime`,agentRuntimes:`AgentRunTime`,harnessProcesses:`harness 进程`,chChannel:`Channel`,members:`成员数`,wired:`已装配`,scheduler:`调度循环`,scheduling:`运行中`,lead:`Lead`,name:`名称`,role:`角色`,harness:`harness`,state:`状态`,stateIdle:`空闲`,stateBusy:`执行中`,stateStopped:`已停止`,currentTask:`当前任务`,queue:`队列`,channel:`Channel`,actions:`操作`,terminate:`终止`,terminated:`已终止`,terminateConfirm:`终止该进程后,对应 AgentRuntime 将随之停止并卸载。确认终止`,terminatePidConfirm:`强杀该进程(PID),若已绑定 runtime 会一同停止。确认终止`,binding:`归属`,bound:`已绑定`,agent:`Agent`,command:`命令`,startedAt:`启动时间`,alive:`存活`,exited:`已退出`,openTerminal:`终端`,openTerminalHint:`接入该 omp 进程的原生终端(实时 TUI 输出 + HITL 人工控制)`},terminal:{title:`harness 原生终端`,abort:`中止回合`,clear:`清屏`,stateIdle:`空闲`,stateRunning:`回合执行中`,stateStreaming:`流式输出中`,stateExited:`进程已退出`,connOpen:`已连接`,connConnecting:`连接中`,connRetrying:`重连中`,connClosed:`未连接`,hint:`终端内直接输入并回车注入 omp 会话(流式中=steer 同轮注入 / 空闲=follow_up 新回合)/ ↑↓ 历史 / Ctrl+C 中止`,hitlTitle:`HITL 对话框 · 等待你的回答`,hitlCancel:`取消对话框`,hitlConfirm:`确认`,hitlDeny:`拒绝`,hitlSubmit:`提交`},agents:{hMock:`mock(测试)`,hOmp:`omp(真实 LLM)`,badConfigJson:`config 不是合法 JSON`,toPrivate:`点击转为私有`,toPublic:`点击公开(全员可读可用)`,builtinNoEdit:`内置模板不可修改`,ownerOnlyEdit:`仅属主可修改`,builtinNoDelete:`内置模板不可删除`,readOnly:`只读`,editTpl:`编辑模板`,newTpl:`新建模板`,configLabel:`config(JSON;mock 可配 delayMs)`,notInstalled:`未安装`,installLink:`前往官网安装 ↗`,harnessInprocess:`进程内引擎 · 恒可用`,k3pa5h4025:`模板库`,k3xhia001:`名称`,k3lrqn0002:`可见性`,k3l98u7003:`创建者`,k3mr526004:`实例数`,k3xhfg005:`启用`,k40aa6006:`操作`,keetzvf007:`删除模板?(已克隆实例保留)`,k5nsz7y008:`模板按用户隔离:私有仅本人可见;公开后全员可读可用(仅属主可修改);内置模板公开且不可变更。`,krpx6qa009:`返回工作区`,k1efixrj010:`新建模板`,ka1gpdj011:`admin 视图:可见全部用户的模板与创建者`,k45eb0012:`编辑`,k3xakp013:`删除`,k1d036zs014:`尚无实例`,k17jfge3015:`私有(仅本人可见)`,k1tt5zyo016:`公开(全员可读可用,仅本人可修改)`,k3x23c017:`内置`,k3wv1t018:`公开`,k447jj019:`私有`,k3n9aij020:`已更新`,k3n5hak021:`已创建`,k3n5sd7022:`已删除`,kxa6cxx023:`已公开:全员可读可用,仅你可修改`,k1xxabaf024:`已转为私有`},ctpl:{visPublic:`公开`,visPrivate:`私有`,newTplTitle:`新建 Channel 模板`,leadTplLabel:`Lead 模板(实例化时克隆为 channel lead)`,kefkfnl030:`已实例化:{p0}(成员 {p1} 个),到工作区挂载使用`,kbInstTitle:`实例化 {p0}`,kbOption:`知识库集成(rag-bridge)`,kbHint:`开启后本频道加载知识库插件:优化前先检索场景数据分析与物理机理,收口后由 lead 把经验沉淀入知识库;lead 还可用 team_grant_nodes 把自己绑定的节点授权给 worker。`,kbOn:`开启`,kbOff:`关闭`,k1f54iqd029:`模板中心`,k117jag9001:`删除模板?(已实例化的 Channel 不受影响)`,knjomku002:`按模板新建 Channel(成员自动装配)`,k1f55q76003:`模板名称`,k40gkk004:`描述`,k1ju32o7005:`选择 lead 模板(可空)`,k5uq1js006:`Worker 成员模板(实例化时逐个克隆)`,kqmdkc9007:`选择成员模板(可空)`,k1q87yho008:`作业场景 Prompt(注入全部成员)`,kk4u5cr009:`工作目录(留空 = 实例化时默认)`,k3lrqn0010:`可见性`,k18gglgp011:`场景 + 工作目录 + 团队的组合模板;一键实例化为 Channel(成员自动装配)。模板按用户隔离,公开后全员可用。`,krpx6qa012:`返回工作区`,k1efixrj013:`新建模板`,ka1gpdj014:`admin 视图:可见全部用户的模板与创建者`,k3rx4ps015:`空团队`,k3xakp016:`删除`,k3mr1fo017:`实例化`,k19fglby018:`新建第一个 Channel 模板`,k17jfge3019:`私有(仅本人可见)`,k191u0u5020:`公开(全员可实例化,仅本人可修改)`,k3x23c021:`内置`,k3wv1t022:`公开`,k447jj023:`私有`,k1i0ji0y024:`模板名必填`,kyppebc025:`模板已创建;可在工作区左侧会话栏一键实例化挂载`,kkziya3026:`已公开:全员可实例化`,k1xxabaf027:`已转为私有`,k1oxfuqj028:`已删除模板`},daq:{unitPh:`如 %RH`,k1bge46t118:`创建节点`,k1b3dtga119:`保存模板`,k3v957u120:`{p0} 运行中:{p1} · {p2}`,k1x7jnru121:`{p0} 待机:开跑后本产线节点开始采集`,k1hrrqa1122:`活动配方监控窗口 {p0} ~ {p1}{p2}`,k11wnl1y123:`产线运行中:{p0} · {p1}`,k9vnp9h124:`全局 {p0}ms`,kyuadl0125:`缺少必填参数:{p0}`,k2hbo3c126:`{p0} 副本`,k15lvw0o105:`运行中 —— 当前产品:`,k3zkt2106:`开跑`,k12uge2o107:`未开跑 —— 本产线节点暂停采集`,k69vag8108:`· 已打标`,k1cg78i8109:`前往产线管理开跑`,kzg9805110:`重连基础设施`,knxpdpt111:`恢复全部采集`,k1fstglk112:`测试连接`,k7pxjxo113:`测试通过后创建并采集`,k3xakp114:`删除`,k1efixrj115:`新建模板`,k1b39281116:`保存修改`,k3ozyqz117:`未运行`,k3ktxbr085:`产线「`,k400lb086:`批次`,k3xagp087:`发布`,k427eu088:`消费`,k3w8go089:`丢失`,k3wusd090:`入库`,k48oi091:`位`,k4118o092:`样本`,k1ukoy0v093:`前往产线管理`,k1ld43ur094:`重连中…`,kpui00095:`暂停全部采集`,k3vp67i096:`运行中`,kr45rk9097:` · 自定义`,kjbqphp098:`(栈未装)`,k1fsh720099:`测试中…`,k1bg4759100:`创建中…`,k1hhheu3101:`确认删除`,k1iiph0s102:`编辑模板`,k1b38d59103:`保存中…`,k1l3pt51104:`配方越限`,k1e8lcoo001:`节点未单独设置 WS 下发间隔时的全局缺省;0 = 随采样节拍每帧下发`,k1yztsu4002:`生产者已发布到队列`,ko09iha003:`消费者已从队列取得`,kj1jbmw004:`时序库累计入库样本`,kgpxzy3005:`缺省按模板自增命名`,k5opd2t006:`如 烘箱湿度`,kk8o4tl007:`缺省同名称`,kzn3l7l008:`缺省自动生成`,khb8mru009:`节点所属产线的开跑状态:未开跑/未分配的节点不采集`,k3q23v3010:`节点产线归属(未挂载产线的节点不采集)`,k1emg364011:`数采中心`,k1wmg2bz012:`采集 → 队列(MQTT)→ 时序库(Timescale)→ WS 实时下发全链路;节点实体与参数以服务端为准。`,k19onw5w013:`产线未开跑 —— 数采由产线配方驱动:请在`,k1b2tk5c014:`产线运营`,k1u9wnlg015:`开跑产线,并将节点挂载到产线`,k1ifahxj016:`缺省周期`,k1if98n0017:`缺省下发`,k1f5cv0s018:`模板管理`,k1fn0ukb019:`添加节点`,k1b2o3b6020:`产线状态`,k3zgkk021:`待机`,k1el12b1022:`暂无产线`,k8jxxe8023:`去产线运营创建`,k19rioqa024:`添加数采节点`,k1p5c1un025:`Mock 模拟源`,k1cbcp3o026:`真实设备采集`,k1fsgerc027:`信号模板(量程/单位域)`,k1ce2k1y028:`节点名称(可选)`,k13mfsfc029:`采样周期 ms(空=跟随全局)`,k1kt87rx030:`通信协议`,k3xdnn031:`取消`,k11mv96s032:`信号模板管理`,ktji4ky033:`自定义模板`,k45eb0034:`编辑`,kztvzbo035:`暂无自定义模板 —— 从下方内置模板复制,或直接在下方表单新建。`,k3xhia036:`名称`,k3x4ef037:`单位`,k1l477m0038:`通道语义`,k1ayxrqb039:`位号代号`,k1l9jv5m040:`量程下限`,k1l9jv4p041:`量程上限`,k3mxmcx042:`小数位`,k3xx56043:`图标`,k1f4eknv044:`模拟基值`,kytd15s045:`Mock 采样中心值,缺省量程中点`,k1f4ifpo046:`模拟波幅`,ksp2aji047:`Mock 波动幅度,缺省量程 4%`,k48p40048:`重置`,k1w8s84s049:`内置模板(只读,可复制)`,k3y694050:`复制`,k3wj9n051:`产线`,k1bkl9uj052:`全部产线`,k3ootr6053:`未分配`,k1optt001:`Agent 优化记录`,k1optf001:`全部产线`,k1optf002:`刷新`,k1optf004:`全部 Recipe`,k1flttpl010:`模板`,k1flttpl011:`全部模板`,k1fltdrv012:`驱动`,k1fltdrv013:`全部驱动`,k1flttim014:`按最后采样时间过滤`,k1flttim015:`数据时间`,k1flttim016:`全部时间`,k1timlv017:`5 分钟内`,k1timhr018:`1 小时内`,k1timdy019:`24 小时内`,k1timld020:`24 小时前`,k1timnv021:`从未上报`,k1fltsrc022:`搜索`,k1fltsph023:`节点名称 / ID…`,k1opte001:`暂无优化记录 —— Agent 经 dcw_control 调控后自动在册`,k1opte002:`窗口内无数采数据(产线未运行或节点未绑定)`,k1opta001:`序列`,k1opta002:`回退`,k1opto001:`进行中:待 Agent dcw_judge 判定`,k1optw001:`窗口聚合计算中…`,k1optw002:`越限`,k1optst001:`进行中`,k1optst002:`已判定·保留`,k1optst003:`已回退`,k1optst004:`被新设定替代`,k1optst005:`被手动写替代`,k1optst006:`停线封窗`,k1optst007:`异常`,k1optst008:`已判定·回退未执行`,k1trnd001:`趋势`,k1trnd002:`实时趋势:最近 60 个读数,虚线为上下限`,k1wrn001:`高于上限`,k1wrn002:`低于下限`,k1wrn003:`配方窗`,k1wrn004:`安全量程`,k1i8rtqt054:`绑定设备`,k1bkw4m2055:`全部设备`,k3own4q056:`未绑定`,k2bindtip137:`绑定设备(与数字孪生/节点检查器同源,server 落库)`,k1b2tkyv057:`产线运行`,k3x4t1058:`全部`,k1nxm3p7059:`采集开启(运行中)`,k1ulx34e060:`采集关闭(待机/未分配)`,k1iwdfef061:`节点状态`,k41k5c062:`正常`,k49z8v063:`预警`,k3xmid064:`告警`,k44c2n065:`离线`,k1fygck2066:`清除筛选`,k45uio067:`节点`,k42w8s068:`状态`,k3mv305069:`实时值`,k1l6g2ga070:`采样周期`,k3zi0nf071:`WS 下发`,k4a0la072:`驱动`,k40aa6073:`操作`,k3o3jg2074:`控制台`,kvhjyc3075:`暂无数采节点 —— 在数字孪生空间从左轨「数采节点 · DAQ」拖入即可(server 建立节点实体)。`,k1w20qew076:`无匹配节点 —— 当前筛选条件下没有节点,请调整或清除筛选。`,k1bhhheq077:`前往登录`,k41mvv078:`每帧`,k422b8079:`温度`,k3x6ff080:`压力`,k3z9xc081:`张力`,k3subk4082:`编码器`,k47atw083:`视觉`,kz7yhbj084:`电参/网关`,k1prodrc128:`产品 / Recipe`,k1staled129:`产线运行中但无新数据(>{p0}s 未采样)—— 节点离线或驱动故障`,k1disabl130:`停用`,k1runtipc131:`节点所属产线的开跑状态:运行中才采集`,k1prdrtip132:`本产线当前运行批次的产品与配方`,k1tsdbtip133:`时序存储后端:DAQ_TSDB_URL 可切换 TimescaleDB`,k1queuet134:`消息队列:DAQ_MQTT_URL 可切换标准 MQTT broker`,k1droptip135:`队列丢失(produced-consumed)`,k1eg1000a136:`如 1000`,k1needtst137:`真实场景需先通过测试连接`,k1plndrv138:`预留协议:待真实通道接入`,k1idlehin139:`产线未运行:开跑后本节点开始采集`,k1gateoff140:`数采网关已暂停 —— 全部节点停止采集`,k1alarm141:`未确认报警`,k1ack142:`确认`,k1esc143:`已升级 {p0} 次重发通知`,k1acked144:`报警已确认`,k1snap145:`暂停全部采集:停止所有启用节点的采样。节点级启停独立:手动停用的节点保持停用,恢复后仅启用节点恢复采集`,k1nodestop146:`停止采集`,k1nodestart147:`启动采集`,k1evt001:`暂无未确认告警`,k1evt002:`实时事件`,k1evt003:`日志管理`,k1evt004:`暂无事件,等待操作…`},daqDetail:{bucket1s:`1s 桶`,bucket5s:`5s 桶`,bucket15s:`15s 桶(默认)`,bucket30s:`30s 桶`,bucket60s:`1min 桶`,calDecoderTip:`采集标定 decoder:物理值 = scale × PLC采集值 + offset`,calScaleTip:`decode 斜率(≠0)`,calOffsetTip:`decode 截距`,kfrm0001:`图像帧画廊`,kfrm0002:`多点轮廓帧`,kfrm0003:`暂无帧(产线运行中才有数据)`,kfrm0004:`点数`,kfrm0005:`指标`,kfrm0006:`点击查看原图`,k9vnp9h053:`全局 {p0}ms`,k3n5aaj045:`已停用`,k1cgi8fy046:`节点独立周期`,k3oktae047:`无标定`,k1cggz5f048:`节点独立下发`,k3n42dj049:`定间隔`,ksn9cgo050:`下发参数到采集器`,k1fstglk051:`测试连接`,k452a8052:`绑定`,k1fx2vik032:`实时值 ·`,k1p9gioa033:`驱动连接参数 ·`,k1i535i5034:`时序库历史(`,kz8zr9v035:`(预留)`,k3own4q036:`未绑定`,k3w3j8f037:`采集中`,k1k2ueyq038:`跟随全局周期`,k1eru4r1039:`标定生效`,k1k2t5o7040:`跟随全局下发`,k41mvv041:`每帧`,k1as0g50042:`下发中…`,k1fsh720043:`测试中…`,k479eh044:`解绑`,k1emg364001:`数采中心`,k1bhhheq002:`前往登录`,k4a0la003:`驱动`,k3xg3w004:`周期`,k3w6td005:`下发`,k3x5tpx006:`预警带`,k1hjj0jf007:`硬限量程`,k1i8rtqt008:`绑定设备`,kd9d69j009:`采集参数(server 单点控制)`,k1iw7tbf010:`节点启停`,k12k23od011:`所属产线(未挂载不采集)`,k3ootr6012:`未分配`,k1l6smxo013:`采样驱动`,k3x4ef014:`单位`,k3mxmcx015:`小数位`,k1l9jv5m016:`量程下限`,k1md63hm017:`预警下限`,k1md63gp018:`预警上限`,k1l9jv4p019:`量程上限`,k1ie6qju020:`设备绑定(端到端集成)`,kjobzu3021:`选择设备孪生…`,k3x1jg022:`刷新`,k40vsf023:`时间`,k48v5024:`值`,k4bza025:`态`,k41k5c026:`正常`,k49z8v027:`预警`,k3xmid028:`告警`,k44c2n029:`离线`,k1m1zwux030:`每帧(随采样)`,k3lha20031:`原始点`,k1rfrshint001:`趋势图自动拉取间隔(ms);留空或 0 = 跟随服务端默认(daq.query.displayIntervalMs),最小 {p0}ms`},logs:{title:`产线日志`,sub:`仅记录与产线相关的操作:下发/配方/回退/产线/数采/告警/人工记录;登录与系统管理事件不入册。按产线、Recipe 与时间检索`,live:`实时`,liveHint:`WS 实时接收产线操作事件(仅摘要渲染;完整详情查询于下表)`,all:`全部`,fLine:`产线`,fProduct:`产品`,fSource:`来源`,fKind:`分类`,fFrom:`开始时间`,fTo:`结束时间`,fKeyword:`关键词`,fKeywordPh:`搜索摘要/操作/操作者…`,invalidTime:`时间格式无效:请重新选择开始/结束时间`,invalidRange:`时间区间无效:开始时间不能晚于结束时间`,mLineRequired:`请先选择产线:产线日志只接收带产线归属的记录`,query:`查询`,reset:`重置`,thTime:`时间`,thActor:`操作者`,thSummary:`事件摘要`,thScope:`归属(产线/产品/Recipe)`,thDetail:`详情`,expand:`详情`,fold:`收起`,loading:`查询中…`,empty:`无匹配日志`,mSummary:`记录内容`,mSummaryPh:`如:更换 3 号烘箱加热丝,当前批次延长保温 10 分钟`,mDetail:`详情(可选)`,mDetailPh:`补充说明、处置过程、关联单号等(将存入日志详情)`,mSubmit:`入册`,mOk:`已入册`,manual:`人工记录`,noDetail:`无`,totalCount:`共 {n} 条`,src:{user:`用户`,system:`系统`},kind:{write:`下发`,manual:`人工`,alarm:`告警`,line:`产线`,recipe:`配方`,rollback:`回退`,daq:`数采`,system:`系统`}},operations:{title:`产线操作`,sub:`全部产线操作的统一实时流水:写控下发、配方批次、数采告警、建模回退与 Agent 动作,一屏可见`,live:`实时`,liveHint:`WS 实时接收产线操作事件,新事件自动插入流水顶部`,all:`全部`,fLine:`产线`,fSource:`来源`,fKind:`分类`,fKeyword:`关键词`,fKeywordPh:`搜索节点/动作/摘要…`,query:`查询`,reset:`重置`,loading:`加载中…`,empty:`暂无操作记录 —— 调整筛选或等待新的产线事件`,noDetail:`无结构化详情`,totalCount:`共 {n} 条`,actorAgent:`Agent`,actorUser:`用户`,actorSystem:`系统`,cat:{write:`写控`,daq:`数采`,aml:`建模`,recipe:`配方`,rollback:`回退`,alarm:`告警`,line:`产线`,manual:`人工`,system:`系统`}},analysis:{title:`数据分析`,sub:`Agent Channel 分析产出的持久留痕台账:关键结论、配方联动、时间窗与完整正文,随时可查`,live:`实时`,liveHint:`WS 实时接收分析留痕事件(analysis_save),新报告自动刷新`,all:`全部`,fLine:`产线`,fCat:`类别`,fWindow:`分析时间`,fKeyword:`关键词`,fKeywordPh:`搜索标题/关键结论…`,query:`查询`,reset:`重置`,loading:`加载中…`,empty:`暂无分析报告 —— Agent 在频道内调用 analysis_save 留痕后在此可见`,noDetail:`无附加产出`,expand:`详情`,fold:`收起`,count:`{p0} 条报告`,ledgerHint:`留痕台账 · append-only(Agent 面不可改删)`,remove:`删除`,removeConfirm:`删除分析报告「{p0}」?删除后不可恢复`,cancel:`取消`,editTitle:`修订分析报告`,save:`保存修订`,kRecipe:`配方 id`,kVersion:`配方版本`,kWindowFrom:`数据窗起点`,kWindowTo:`数据窗终点`,conclusionsHint:`每行一条`,kRevised:`修订记录`,thTime:`分析时间`,thLine:`产线`,thTitle:`标题`,thRecipe:`配方`,thSummary:`关键结论`,thSource:`来源`,thDetail:`详情`,kId:`报告 id`,kWindow:`数据窗`,kSources:`证据来源`,kConclusions:`结论明细`,kReport:`完整正文`,kMetrics:`支撑指标`,kContext:`产线上下文快照`,cat:{quality:`质量`,oee:`OEE`,alarm:`告警`,trend:`趋势`,optimization:`寻优`,general:`综合`},win:{h1:`1 小时内`,h24:`24 小时内`,d7:`7 天内`,d30:`30 天内`,all:`全部时间`}},dcw:{codePh:`如 MOTOR · I`,unitPh:`如 A`,k1qidbpy061:`缺省 {p0}(按创建序)`,k1gp649b062:`{p0}(节点 {p1}/产品 {p2}/配方 {p3} 将解除挂载)`,k7xq2mfd063:`删除产线「{p0}」?`,k5tq8wc071:`编辑产线`,k9m2vxa072:`连同旗下节点/产品/配方一起删除(不可恢复)`,k4r7nbd073:`产线「{p0}」及其 {p1} 节点 · {p2} 产品 · {p3} 配方将一并删除,不可恢复`,k3t616a058:`自定义`,k149r6y7059:`○ 待机`,k1elczt9060:`暂无配方`,k3ootr6049:`未分配`,k3wj9n050:`产线`,k11nndsp051:`控制模板 ·`,k3zz0f052:`打标`,k19dlbli053:`跟随主题自动配色`,k3x23c054:`内置`,k1eox1el055:`● 运行中`,k18moyq1056:`选择配方后即可开跑数据采集`,kutxzsz057:`选择配方…`,k1i5a9vw001:`存在未挂载产线的节点/产品,可在对应产线详情页收编`,k1yfm3gv002:`删除产线(旗下节点/产品/配方解除挂载)`,k1dhaby4003:`选择配方后开跑`,kru37i3004:`如 1号产线 / 流延线 A`,k1f2nwsp005:`产线用途说明`,k1tooi3o006:`如 电机电流设定`,k698qz0007:`如 电机电流`,k1qdnfzc008:`如:电机电流设定:电流升高表示负载增大…调整需小幅步进并观察温升`,k1b2tk5c009:`产线运营`,k5q0aqi010:`产线是节点/产品/配方/数据的顶层隔离单元:每个控制节点挂载到产线,开跑后本产线数采逐样本携带产线标识;
|
|
3
3
|
控制模板只定义参数分类与工艺量程,真正下发 PLC 的是节点。`,k45uio011:`节点`,k3waz1012:`产品`,k48grv013:`配方`,k149b4vg014:`▶ 开跑`,k148rclf015:`■ 停止`,k1fwqw5g016:`产线管理 →`,k1efe391017:`新建产线`,k1sk85vs018:`还没有产线:点击「新建产线」创建第一条产线,然后在产线详情里收编/添加控制节点、建产品与配方。`,filterSearchPh:`搜索产线名称…`,filterEmpty:`没有匹配的产线 —— 调整筛选或搜索条件`,k1b2ioko019:`产线名称`,k24dxcd020:`描述(可选)`,k1x7nubr021:`光晕色(数字孪生场景中本产线节点的光环色)`,k3xdnn022:`取消`,k3wzi2023:`创建`,k11oadmx024:`控制模板管理`,k2hlav5025:`模板 = 参数分类(电机电流/转速/线速度…),定义单位与工艺安全量程;创建控制节点时选模板继承域,节点可再自定义覆盖。`,k3xakp026:`删除`,k169eb4s027:`新建自定义模板`,k3xhia028:`名称`,k1bqk219029:`参数语义`,k1ayxrqb030:`位号代号`,k3x4ef031:`单位`,k1l9jv5m032:`量程下限`,k1l9jv4p033:`量程上限`,k3mxmcx034:`小数位`,k3xx56035:`图标`,k1b6qorg036:`工艺语义(物理意义/对产线的影响/调整守则 —— 注入绑定此模板的 Agent 上下文)`,k3x62t037:`关闭`,k1bg9nga038:`创建模板`,k188cswn039:`请先选择该产线的配方(配方需绑定控制节点参数)`,k422b8040:`温度`,k3x6ff041:`压力`,k3z9xc042:`张力`,kjb3vhs043:`编码/速度`,k47atw044:`视觉`,k48c07045:`通用`,k6ugbw2046:`模板名称必填`,k13awowo047:`工艺量程(min/max)必填`,k1bphrb3048:`删除失败`,k1b2ioko019:`产线名称`},dcwDetail:{stAck:`已 ACK`,startNeedRecipe:`开跑前必须先设定配方`,startTip:`下发配方参数并开始打标数据采集`,codePh:`如 MOTOR · I`,unitPh:`如 A`,mockPlc:`Mock 模拟 PLC`,linearCalOpt:`线性标定:PLC值 = (物理值 - offset) / scale`,calScaleTip:`decoder 斜率(≠0):物理值 = scale × PLC值 + offset;下发时自动取逆`,calOffsetTip:`decoder 截距`,pauseCtrlTip:`暂停该节点控制:下发将被拒绝`,enableCtrlTip:`开启该节点控制:恢复可下发`,pausedTip:`当前节点暂停:开启控制后方可设定`,writeTip:`下发设定值`,noDaqTip:`本产线暂无数采节点`,manualTag:`手动`,staleDeleted:`已删除`,staleDisabled:`已停用`,staleUnbound:`已取消绑定`,staleDropped:`已自动移除 {p0} 条失效参数(节点已删除);如需恢复请重新添加有效节点`,histBtn:`版本历史`,dispatchHistBtn:`下发历史`,dispatchHistTitle:`配方下发历史`,dispatchHistSub:`仅显示该配方的产线域记录(创建/更新/试验/下发/ACK/回退/开跑);与 Agent 的 recipe_log 同源。`,dispatchHistEmpty:`暂无下发/变更记录。`,dispatchHistTime:`时间`,dispatchHistAction:`动作`,dispatchHistSource:`来源/操作者`,dispatchHistSummary:`说明`,closeBtn:`关闭`,histTitle:`配方版本历史`,histLoading:`加载中…`,histEmpty:`暂无版本历史(配方参数修改后自动入史)`,histCurrent:`当前`,histInit:`初始版本`,histAdded:`新增`,histNoChange:`参数未变`,revertTo:`回退到此版`,revertOk:`已回退并生成新版本 v{p0}`,revertReasonUi:`界面回退到历史版本`,srcUser:`用户`,srcSystem:`系统`,k9r7d4e016:`周期读(ms)`,k9r7d4e017:`缺省 5000ms;0 = 仅手动读取`,writeLockLabel:`写入保持(s)`,writeLockHint:`缺省 30s;0 = 不锁;写成功后锁定防震荡`,k9r7d4e018:`PLC 读数`,k9r7d4e019:`暂无读数(周期读未开启或驱动不支持读取)`,k9r7d4e020:`读取 PLC 当前值`,k9r7d4e021:`读取`,k9r7d4e022:`手动`,k9r7d4e023:`默认 5s`,k1lzfi4g180:`({p0} 参数)`,k6vgks7181:`批次 {p0}`,k1alcbyu182:`节点 {p0} 下发成功:{p1}`,kl1e9x9183:`节点 {p0} 下发失败:{p1}`,k8x1un1184:`缺少必填驱动参数:{p0}`,ky4e1tr185:`模板「{p0}」已创建,已在「添加控制节点」向导中选中`,k17jteb9186:`产线已开跑:{p0} · {p1}(批次 {p2})`,kzl49pd187:`产线已停止({p0});窗口数据保留可查`,ks7szkt188:`配方下发部分失败:{p0}`,k3zkt2166:`开跑`,k1g3lh2v167:`下发完成:`,k69vag8168:`· 已打标`,knxgni9169:`恢复全部控制`,k1b2hxmx170:`产线停止`,k1bg9nga171:`创建模板`,k1fstglk172:`测试连接`,k1bge46t173:`创建节点`,k3w6td174:`下发`,kxwei5175:`查看批次数据`,k1efq0r9176:`新建配方`,k1b3kwg0177:`保存配方`,k416ek178:`查询`,k1bg4kn6179:`创建产品`,k1l0iow1137:`运营管理`,k3wtib138:`写入`,k3yit7139:`失败`,k3km252140:`产品)`,k3x23c141:`内置`,k3t616a142:`自定义`,k1av3wgs143:`产品 /`,k1l3hrvp144:`配方批次`,k11lq94k145:`批次数据 ·`,k134rw3b146:`配方下限(可选,≥`,khrv911147:`配方上限(可选,≤`,kw7ym9b148:`写历史(最近`,k1bqci06149:`参数成功`,k40bfz150:`条)`,k1b2snna151:`产线详情`,kzcbfki152:`本产线专属的节点/产品/配方/批次管理:开跑必设配方,窗口内数采逐样本携带产线标识,实现真实的产线级数据隔离;PLC 底层(换算/写/回读)由系统封装。`,kplrsg153:`暂停全部控制`,k1snap154:`暂停全部控制:停止所有启用节点的下发。节点级启停独立:手动停用的节点保持停用,恢复后仅启用节点恢复控制`,k1pxrhx0154:`产线运行中`,k1hicmch155:`(无参数,不可开跑)`,k1bg4759156:`创建中…`,kr45rk9157:` · 自定义`,k1fsh720158:`测试中…`,k3o3ib3159:`控制中`,k3zul4160:`手动`,k1br0ij9161:`加载中…`,k3vpfg9162:`进行中`,k1iiwk0i163:`编辑配方`,k1b38d59164:`保存中…`,k1eyx09r165:`查询中…`,kd3ygmn001:`累计写命令`,kd3znl0002:`累计写失败`,kc4ixly003:`自定义创建控制节点模板:物理含义/单位/工艺安全量程`,k1tooi3o004:`如 电机电流设定`,k698qz0005:`如 电机电流`,kxz9174006:`工艺安全下限`,kxz9167007:`工艺安全上限`,k1qdnfzc008:`如:电机电流设定:电流升高表示负载增大…调整需小幅步进并观察温升`,kgpxzy3009:`缺省按模板自增命名`,kb1srz0010:`如 5000(心跳重下发)`,k12bnyt9011:`如:2 号烘箱温度:与 1 号联动控制分区温差,调整步进 ≤1℃`,k1bpfjgx012:`删除产品`,k1l11api013:`活动批次内数采越限即报警`,k12c11vm014:`如 0.8mm 光学膜`,k1hxx8hy015:`产品/工艺说明(可选)`,k5vew9z016:`节点全局量程内`,kzoh5pr017:`运行期写入硬约束`,k19337yp018:`产线不存在或已被删除。`,kllwu1c019:`← 返回产线总览`,k1972dx9020:`添加控制模板`,k1976uns021:`添加控制节点`,kaebkky022:`未分配资产 · 收编到本产线`,kyjp9fg023:`+ 收编`,k19pof14024:`选择产品与配方后开跑;运行中的每条数采数据将携带产品/配方/批次标识`,k3waz1025:`产品`,kuisodh026:`选择产品…`,k48grv027:`配方`,kutxzsz028:`选择配方…`,kfb8vml029:`▶ 开始数采`,k1xyhd2y030:`■ 停止数采`,k1x4vam0031:`添加控制节点模板`,ke1iyud032:`模板 = 参数分类(物理含义/单位/工艺安全量程):创建控制节点时选模板继承域;模板下发不涉及 PLC,真正执行的是节点。`,k169eb4s033:`新建自定义模板`,k1f55q76034:`模板名称`,k1bqk219035:`参数语义`,k1ayxrqb036:`位号代号`,k3x4ef037:`单位`,k1l9jv5m038:`量程下限`,k1l9jv4p039:`量程上限`,k3mxmcx040:`小数位`,k3xx56041:`图标`,knjmyfr042:`工艺语义(物理意义/对产线的影响/调整守则 —— 注入绑定此模板节点的 Agent 上下文)`,k3x62t043:`关闭`,kyj8fen044:`真实 PLC 写入`,k1ejzwqp045:`控制模板(物理含义/单位/安全量程)`,k1ce2k1y046:`节点名称(可选)`,k1vyb8im047:`保写周期 ms(空=仅手动下发)`,kiune1f048:`写入标定 encode(物理值 → PLC 设定值)`,kkzy0k049:`无(直接写工程值)`,k1kt87rx050:`通信协议`,k1hgizn7051:`节点工艺语义(可选,覆盖模板描述 —— 注入绑定此节点的 Agent 上下文)`,k3xdnn052:`取消`,k1e2dtkt053:`控制节点`,k403cy054:`控制`,k42w8s055:`状态`,k1deqh0d056:`当前设定`,k1k79ec9057:`设定下发`,k1dexou6058:`工艺量程`,k1b1nnaa059:`保写周期`,k1i8rtqt060:`绑定设备`,k40aa6061:`操作`,k3n93ed062:`已暂停`,k3xakp063:`删除`,k1wtecyw064:`暂无控制节点 —— 点击右上「添加控制节点」从工艺模板创建。`,k1j8w3hd065:`产品与配方`,k1akm6dc066:`+ 新建配方`,k1aka0ki067:`+ 新建产品`,k6bl2q8068:`一个产品可有多个配方;配方 = 工艺参数集(控制模板 + 目标工程值)。产线开跑时选定配方,其参数随开跑下发,
|
|
4
4
|
数采数据逐样本携带产品/配方/批次标识。`,k3x4t1069:`全部`,knov3zg070:`暂无产品 —— 点击「新建产品」创建(配方必挂产品;数据按产品隔离)。`,k1497qvr071:`▶ 下发`,k45eb0072:`编辑`,keko1xy073:`暂无配方 —— 点击「新建配方」定义产品工艺参数集。`,k1rjer8d074:`生产批次(数据隔离窗口)`,k400lb075:`批次`,k4497j076:`窗口`,k1bqhtmu077:`参数结果`,k1dzwrdp078:`批次数据`,k1blr7y7079:`关闭批次`,k1me41w8080:`数采通道汇总(批次窗口内,产品隔离)`,k48hde081:`通道`,k45uio082:`节点`,k40t11083:`最新`,k3xuaw084:`均值`,k4118o085:`样本`,kd457ry086:`窗口内无数采样本`,k12b7cxs087:`写历史(批次窗口内)`,k3xbjr088:`参数`,k3ncbsh089:`工程值`,k3lh3mz090:`原始值`,k454pg091:`结果`,k40ieu092:`时刻`,knzcp8i093:`窗口内无写记录`,k1dw4fzf094:`所属产品`,k1l3f8so095:`配方名称`,k40gkk096:`描述`,ka1kfgh097:`工艺参数(绑定本产线控制节点:节点才是真实下发 PLC 的执行体,模板仅分类)`,k3renp2098:`目标值`,k44idg099:`移除`,k1broh7h100:`+ 添加参数`,k1h5gues101:`数采监控窗口(活动批次内,数采节点实时值越出窗口即报警标红)`,k1empnnb102:`数采节点`,kqm08ap103:`监控下限(可选)`,kpypf8g104:`监控上限(可选)`,kv1de1p105:`+ 添加监控窗口`,k1us3jse106:`产线数据查询(产品 · 配方 · 工艺参数 · 时间 · 间隔)`,k1bkl1jx107:`全部产品`,k1bkx7cr108:`全部配方`,k1demcae109:`工艺参数`,k1bkx7ya110:`全部通道`,k1bkul3k111:`全部节点`,kx2ojn0112:`最近(分钟)`,kjvnvn4113:`聚合间隔 ms(0=原始点)`,k42kcu114:`点数`,k49ujb115:`首值`,k40pvw116:`末值`,k3xho3117:`区间`,k1efduyf118:`新建产品`,k1avjrl6119:`产品名称`,k1bhhheq120:`前往登录`,k1ledgt001:`参数台账`,k1ledgs001:`选择节点…`,k1ledgv001:`当前设定`,k1ledgv002:`配方目标`,k1ledgv003:`上次良好`,k1ledga001:`刷新`,k1ledga002:`单步回退`,k1ledgh001:`设定历史(账本)`,k1ledgr001:`优化记录`,k3own4q121:`未绑定`,k3zgkk122:`待机`,k3l3h80123:`写入中`,k40reu124:`故障`,k44c2n125:`离线`,k422b8126:`温度`,k3x6ff127:`压力`,k3z9xc128:`张力`,kjb3vhs129:`编码/速度`,k47atw130:`视觉`,k48c07131:`通用`,k6ugbw2132:`模板名称必填`,kx3pg59133:`单位必填(如 ℃ / A)`,k13awowo134:`工艺量程(min/max)必填`,k1b6qe0r135:`开跑前必须先设定配方:请选择产品与配方(配方需含工艺参数)`,kszv5sq136:`窗口内无匹配数据(检查产品/配方/时间范围;仅产线运行中的样本带产线标识)`,stepLimitLabel:`探索阶段单步上限`,stepLimitUnit:`工程量`,stepLimitPlaceholder:`留空:按节点量程 2% 默认值`,stepLimitHint:`Agent 每次写入的最大变化量;无有限值时探索写入会被拒绝。`,thStepLimit:`探索步长`,stepInputTitle:`在线控制单步最大变化量;留空将关闭探索写入`,stepCurrent:`当前 Δ≤{p0}`,stepUnset:`未配置`,recipeStepLimitLabel:`Recipe 单步上限 Δ≤`,recipeStepLimitPlaceholder:`跟随节点默认`,drvBadgeMes:`MES 边缘层`,drvBadgeNoConv:`无协议转换`,mesTestBtn:`试读`,mesTesting:`试读中…`,mesNotReady:`服务端未就绪`,mesHookTestBtn:`钩子试运行`,mesHookTesting:`钩子试运行中…`,mesHookNotReady:`钩子端点未就绪`,mesArtifactsBtn:`产物`,mesArtifactsTitle:`MES 产物`,mesArtifactsRefresh:`刷新`,mesArtifactsEmpty:`暂无产物(取数后 dataHook/图像落盘生成)`,mesArtifactsOpen:`打开`,mesArtifactsBinary:`非图像文件,点下方按钮打开`,recipeGateTitle:`配方操作审批(参数写入/下发/试验/回退)`,recipeGateCommentPh:`裁决意见(拒绝时逐字回流 Agent)`,recipeGateApprove:`批准`,recipeGateReject:`拒绝`,accessTitle:`二级操作权限(Agent 配方操作)`,accessRequire:`需要认证`,accessHint:`(开启后仅勾选的 Agent 可操作;默认绑定即可操作)`,accessLoading:`正在加载频道成员…`,accessNoAgents:`未找到频道成员`,accessEmptyWarn:`警告:开启认证但未勾选任何 Agent = 无人可操作(fail-closed)`,apTitle:`下发参数审批`,apRule:`同意=立即执行;拒绝=Agent 按原值继续;超时=默认不同意`,apInitiator:`发起`,apTimeout:`后超时默认不同意`,apApprove:`同意`,apReject:`拒绝`,apCommentPh:`反馈意见(可选:同意=批复附言随回执;拒绝=逐字回流给 Agent)`},expConfirm:{title:`本地调整确认`,rule:`确认=认可为产线侧本地调整,进入经验总结;忽略=不总结`,confirm:`确认`,ignore:`忽略`,badgeTip:`有 {p0} 条本地调整待确认`,decideFail:`操作失败,请重试`},autoMode:{confirmTitle:`切换为自动控制`,affected:`影响节点:{p0}`,exempt:`切到 auto 后:该节点 Agent 参数微调不再逐次挂审批(仍受量程、步长、60 秒节流限制)`,guard:`整包 recipe 下发(trial/apply/方案审批)在任何模式下都必经人工审批,auto 不豁免`,revert:`随时可在同一开关切回 manual,立即恢复逐次审批`,dual:`注意:若 AML 优化循环也在控制该产线,请避免双写者冲突`,confirmBtn:`我已知晓风险,切到 auto`,cancelBtn:`取消`,switchFail:`切换失败,请重试`},recipePropose:{title:`配方整包方案审批`,rule:`选择一套方案批准后整包原子下发;拒绝=Agent 按原值继续;超时=默认不同意`,packagesLabel:`{p0} 套候选方案 · 共 {p1} 项参数调整`,tab:`方案 {p0}`,paramCol:`参数`,changeCol:`调整`,preflightCol:`预检`,basisCol:`依据(Agent 给出)`,expRefCol:`经验引用`,preflightOk:`通过`,preflightFail:`已剔除`,lowConfidence:`证据不足,建议仅观察(仍可自行批准)`,amlActive:`检测到 AML 优化循环活动,建议暂缓下发`,approveBtn:`批准此方案`,rejectBtn:`拒绝`,commentPh:`反馈意见(可选:同意=批复附言随回执;拒绝=逐字回流给 Agent)`,needChoice:`请先选择要批准的方案`,decideFail:`操作失败,请重试`},teams:{selectChannel:`选择目标 Channel`,toPrivate:`点击转为私有`,toPublic:`点击公开(全员可部署)`,deployToChannel:`部署到 Channel…`,joinOk:`加入`,deployOk:`部署`,targetChannelLabel:`目标 Channel(须无 lead 冲突)`,k6ljhyv029:`添加成员 · {p0}`,k1c0o6oe030:`部署 · {p0}`,kh90glh031:`已部署 {p0} 个实例到 Channel`,k3svl8y028:`编组库`,kxheuf1001:`公开编组:全员可部署;仅属主可修改`,k1efmuyx002:`新建编组`,k3xhia003:`名称`,k40gkk004:`描述`,k3lrqn0005:`可见性`,k41ds5006:`模板`,k479op007:`角色`,k12gl4wn008:`编组按用户隔离;公开编组全员可部署(仅属主可修改);一键整体部署到 Channel(每个成员克隆为独立实例)。`,krpx6qa009:`返回工作区`,k1bpgi8h010:`admin 视图:可见全部用户的编组与创建者`,k1bpojhf011:`删除编组`,k48ja7012:`部署`,krt2oib013:`+ 添加成员模板`,k6cbbgf014:`新建第一个编组`,k17jfge3015:`私有(仅本人可见)`,k1h2lq0o016:`公开(全员可部署,仅本人可修改)`,keowzlv017:`lead(至多一个)`,k3x23c018:`内置`,k3wv1t019:`公开`,k447jj020:`私有`,k1bvcdo2021:`名称必填`,k3n5hak022:`已创建`,k1globhp023:`已公开:全员可部署,仅你可修改`,k1xxabaf024:`已转为私有`,k1kw4rtj025:`选择模板`,k3n5hzw026:`已加入`,k1oxjrxx027:`已删除编组`,k1plugon040:`插件开关 · {p0}`,k1plugon041:`插件(该编组启用哪些;部署时传导到目标 Channel)`,k1plugon042:`勾选的插件在编组部署到 Channel 后对其成员生效;未勾选的插件工具对该团队隐藏`,k1plugon043:`团队插件开关已保存`,k1plugon044:`未显式配置 —— 当前默认全启用;切换任一开关后按行生效`,k1plugon045:`已显式配置(按下方开关生效)`,k1plugon046:`暂无已注册插件`,k1plugon047:`插件开关…`},tokens:{maskBackTip:`已显示明文,点击眼睛遮回`,maskPreview:`掩码预览`,maskBack:`遮回`,revealPlain:`查看明文`,copied:`已复制`,copyPlain:`复制明文`,revokeCurrentWarn:`吊销当前会话 token 将退出登录`,revokeWarn:`吊销后立即失效`,createdTitle:`Token 已创建`,hidePlain:`隐藏明文`,showPlain:`显示明文`,copy:`复制`,usage:`用法:Authorization: Bearer <token>`,renameTitle:`重命名 Token`,k1upppaw026:`每个 token 可独立吊销;明文存档于服务端,可随时查看复制`,k3p0p44027:`标签:`,kj3mklm028:`(未命名)`,k1hlqknl001:`标签,如:CI / 测试脚本 / 备用`,k41416002:`标签`,k1k6z0r8003:`请先登录`,k1gjnree004:`Token 属于登录用户的私有资源,需登录后管理。`,k1bhhheq005:`前往登录`,khcxmsc006:`当前会话 Token 已标识`,k1defr98007:`当前会话`,kyelqk1008:`旧版不可见`,k3vrpcs009:`重命名`,k3xmrz010:`吊销`,k12149oy011:`Token 已创建并存档,之后可随时在列表中查看/复制;仍建议仅在可信环境展示明文。`,k1s5f5zd012:`我已保存,关闭`,k19jvk54013:`加载 token 列表失败`,k169z26g014:`标签不能为空`,k3n9aij015:`已更新`,k3n64kh016:`已吊销`,kjtcn2h017:`复制失败,请手动选择复制`,kkpgzo8018:`该 token 创建于旧版本(仅存哈希),无法查看明文;建议吊销后重新签发`,k1gj9ls019:`查看明文失败`,kr5ovor020:`该 token 创建于旧版本(仅存哈希),无法复制明文;建议吊销后重新签发`,kubtby5021:`获取明文失败`,kgkfcr0022:`复制失败,请先显示明文后手动选择复制`,k1bg95gk023:`创建时间`,k1euotul024:`最近使用`,k40aa6025:`操作`},town:{k3n4mae005:`工作台`,k1wm8wtr001:`还没有挂载任何 Channel`,k47e4s002:`请到`,k17rerba003:`创建/挂载频道后,再回到 AgentWorkShop 孪生空间。`,k1uc5mup004:`正在接入 AgentWorkShop 孪生空间(订阅实时事件流)…`},wsHome:{mcTitle:`请设置新密码`,mcSub:`账号 {p0} 的密码由管理员下发,首登必须改为你的专属密码后才能进入工作台。`,mcCurrent:`当前密码(管理员下发的临时口令)`,mcNew:`新密码`,mcConfirm:`再输入一次新密码`,mcPolicyHint:`≥6 位,须包含字母和数字;改密后此提示不再出现。`,mcCta:`设置新密码并进入`,mcFillBoth:`请填写当前密码与新密码`,mcMismatch:`两次输入的新密码不一致`,mcPolicy:`密码至少 6 位,且需包含字母和数字`,mcSameAsOld:`新密码不能与当前密码相同`,mcDone:`密码已更新,欢迎使用 AgentWorkShop`,adminCreated:`管理员账号创建成功:{p0} 已进入系统`,nameRequired:`Workspace 名称必填`,setupTitle:`创建管理员账号`,setupSub:`系统尚无任何用户:首个注册的账号将成为管理员,创建后自动进入系统。`,normalSub:`全局用户系统统管身份;每个用户可管理多个 API Token,管理 API 需用户 token(Authorization: Bearer)。`,tabLogin:`账号登录`,tabRegAdmin:`注册管理员`,tabRegUser:`注册新用户`,setupCta:`创建管理员并进入`,tabToken:`Token 登录`,delWs:`删除 Workspace`,emptyTitle:`从一条产线、一个 Agent 开始`,emptySub:`Workspace 是频道与任务的容器 —— 建立第一个工作区后,你的 Agent 团队即可上线作业。`,emptyCta:`新建第一个 Workspace`,createEnterOk:`创建并进入`,k1mbatbh030:`注册成功:{p0};登录 token 已保存`,kwixbdl031:`已登录:{p0}`,newWs:`新建 Workspace`,newWsHint:`从模板或空白创建工作区`,k3wcox029:`任务`,k3n4m5c025:`工作区`,ke16e53026:`的资源(用户级隔离;服务端持久化)`,k41ds5027:`模板`,k1ggoa45028:`成员 / 忙`,k48h2c001:`邮箱 / 用户名`,k3yvgs002:`密码`,kwgbai9003:`用户名(唯一)`,kizjkbo004:`邮箱(唯一)`,kh3cqfn005:`密码(≥6 位,含字母和数字)`,k15qunld006:`粘贴用户 token`,ksmpk8l007:`Workspace 名称,如:支付网关重构`,kr0vzqu008:`进入工作台`,k43kol009:`登录`,k17x74cj010:`每次登录签发一个会话 token,可在 Token 管理页单独吊销。`,k1so6a0v011:`注册并登录`,k1r0a4u3012:`注册成功后自动登录;可再自行签发多个 token。`,k3pa5h4013:`模板库`,k3svl8y014:`编组库`,k484e7015:`退出`,k1bst7s9016:`同步中…`,k1ylgrbc017:`未挂载 Channel(进入后从左栏挂载)`,kr1uwwi018:`进入控制台`,k1vnhyks019:`请填写用户名`,k8ieqzj020:`请填写邮箱`,ksx73ra021:`密码至少 6 位 (需含字母和数字)`,k3ngm6p022:`已退出`,k1br33vc023:`加载失败`,k3n5sd7024:`已删除`},wsView:{inspector:`检查器`,unknownWs:`未知 Workspace`,channelListTitle:`频道会话列表`,a2aTitle:`A2A RPC/SSE 调试器`,loadingWs:`正在加载 Workspace…`,kqwckjr001:`快捷键 1-5 直切视图`,k1tsy2e4002:`收起/展开 会话栏`,k1tx0ppf003:`收起/展开 检查器`,k1cvg8sb004:`命令面板(⌘K)`,k1fkfvra005:`拖拽调节会话栏宽度`,kwqb0st006:`拖拽调节检查器宽度`,klzbtyp007:`从左侧挂载或选择一个`,k3zaj4008:`开始`,k1us0cxy009:`会话列表支持新建 Channel、从模板实例化,以及热修改场景与工作目录`,k3otu32010:`时间线`,k3ko7a8011:`任务板`,k3xbmo012:`同屏`,k1cz0pbw013:`孪生空间`},meta:{agents:`Agent 模板库`,teams:`AgentTeam 编组库`,ctpl:`Channel 模板中心`},a2aRpcDebugger:{methodSse:`tasks/sendSubscribe(SSE 流)`,methodToken:`message/send(需 token)`,badParams:`params 不是合法 JSON`,title:`A2A RPC / SSE 调试器`,tokenPh:`Bearer token(message/send 需要;留空匿名)`,outputEmpty:`(输出;sendSubscribe 将逐条渲染 SSE 事件)`,k6hcbxi001:`拖拽调节抽屉宽度`,k34cz76002:`目标 agent 实例`,k1bqe2pj003:`参数模板`,k405w8004:`执行`,kq00d3v005:`调试:请回显这条消息`,k1kgwib8006:`调试消息`,k1e1hi4u007:`▶ 流结束`,k1vryfv008:`选择目标 agent`},agentInspectorDrawer:{tabStream:`独立输出流`,tabMemory:`记忆`,grpWorking:`执行中`,grpQueued:`待执行`,grpDone:`已完成`,swOn:`启用`,swOff:`停用`,okRemove:`移除`,prioImmediate:`即时`,prioQueued:`排队`,k3ypnl022:`完成`,k16t80ax023:`聚焦主时间线`,k6hcbxi001:`拖拽调节抽屉宽度`,k1ofh789002:`移除该成员?其排队任务将自动重派给剩余成员`,kwsotdg003:`向该 agent 注入消息…`,k1frr9es004:`该 agent 暂无事件(连接后产生)`,k1axbijb005:`任务队列`,kas9m5q006:`成员管理:`,k1hrtylo007:`移除成员`,k1jxt8vh008:`要求回执`,k3xkc7009:`发送`,k498bf010:`队列`,kk653nv011:`执行中:「`,k43rxk012:`空)`,k1bs9x43013:`取消聚焦`,kgjqkq9014:`重新启用(接收新任务)`,kpkjhbz015:`停用(暂停接收新任务)`,k3n5z7y016:`已启用`,k1dst50d017:`已停用(其排队任务由调度回收)`,kane5dq018:`成员已移除`,k1p055kl019:`已取消聚焦`,ky2fhkf020:`主时间线已聚焦该 agent`,k1y2jrsr021:`消息已注入`},agentLanesView:{cloneFail:`模板克隆失败{p0}`,leadExistsShort:`(已有 lead,不能再添加 lead)`,deployFail:`编组部署失败{p0}`,leadExistsChannel:`(channel 已有 lead,编组内 lead 成员冲突;请先移除现有 lead 或选用无 lead 编组)`,hitlStopTitle:`HITL 停止该 Agent 运行时`,namePh:`如 db-migrator / test-writer`,ompFull:`omp(完整 LLM agent)`,tplCloneLabel:`选择 Agent 模板(克隆 name/harness/config 为独立实例)`,tplDisabled:` · 已停用`,withLead:`,含 lead`,roleHarnessLabel:`角色 / harness`,syspromptLabel:`场景系统提示词(systemPromptPrefix)`,k1wn2vmt036:`omp 进程 PID {p0} · harness 会话状态`,k1l029kf037:`中断成员 {p0} 的运行时?执行中任务将中止,成员保留`,kt3n27m038:`移除成员 {p0}?其排队任务将自动回收`,k7xt1y6039:`拖拽调节 {p0} 泳道宽度`,k1qcmxyu040:`{p0}({p1} 名成员{p2})`,k19j5rho041:`编辑成员 {p0}`,k21xjz2044:`成员 {p0} 已更新(运行时将按新提示词重载)`,k3jmrw1045:`更新失败: {p0}`,k1g5ykr3046:`成员 {p0} 已添加(等待 agent.member 事件回流对齐)`,k1j97j74047:`添加成员失败: {p0}`,kk3uwzo048:`已克隆模板添加 {p0} 成员 {p1}(等待事件回流对齐)`,k1gslqf9050:`编组 {p0} 已部署({p1} 名成员,等待事件回流对齐)`,k1n3o03a052:`成员 {p0} 已移除`,k13dsp10053:`移除成员失败: {p0}`,kcpbv47054:`已中断成员 {p0} 的运行时`,k139ec5j055:`中断失败: {p0}`,k107s4am001:`已注入场景系统提示词`,k1884q17002:`打开该成员的 omp 原生终端(实时 TUI + HITL 控制:注入对话 / 中止 / 应答 ask)`,k1pgd3tf003:`编辑成员信息 / 场景提示词`,k17kcn55004:`添加团队成员`,k3nufdm005:`成员名`,k479op006:`角色`,kaogfp007:`系统提示词前缀(可选,定义成员专长)`,kbqn6w5008:`如:你是数据库迁移专家,专注 schema 变更与数据回填…`,kung925009:`选择模板…`,k1bl78fu010:`克隆角色`,k1vhvbz7011:`系统提示词覆盖(可选,留空沿用模板预设)`,k7ft6ig012:`留空 = 使用模板自带 config.systemPromptPrefix;填写则覆盖为该场景提示词`,k29om9b013:`选择 AgentTeam(批量克隆全部成员)`,kur1otz014:`选择编组…`,k10ti81i015:`该内容作为系统提示词前缀,注入该成员 harness 每轮 prompt(omp)或状态消息(mock)。留空 = 无场景提示`,k3y5ja016:`团队`,k3ll6sa017:`名成员`,k1fmutgo018:`添加成员`,k1woev5v019:`成员快照同步中…`,k122h4pc020:`团队暂无成员`,k7cr2h8021:`点击右上「添加成员」从零创建,或从模板 / 编组一键部署`,k3xycu022:`场景`,k4588s023:`终端`,k1b7cwvy024:`从零创建`,k1ndey1w025:`从模板克隆`,k1l5qyux026:`部署编组`,kqg6783027:`mock(测试剧本)`,k1weovo028:`lead(至多一个,已有 lead 会被拒绝)`,knybb6r029:`模板库为空?到「模板库」页面先创建可复用的 Agent 模板(omp/mock/claude + 系统提示词)。`,k1qqnq5030:`编组内每名成员模板都会克隆为独立实例;若编组含 lead 而本 channel 已有 lead,部署将被拒绝(409)。`,k1rw1rd2031:`保存后成员运行时重载,下次任务/调度使用新提示词`,ky6jqt4032:`成员名不能为空`,kfvflle033:`user 编辑成员信息/场景提示词`,k13xo8sz034:`请选择要克隆的 Agent 模板`,k1tjd5ab035:`请选择要部署的 AgentTeam`,supervisionWatchdogTitle:`监督观察阈值已触发({p0});这是观察信号,不是取消`,supervisionRunningTitle:`监督回合进行中(attempt={p0},tick={p1})`,supervisionDecisionText:`决策 {p0}`,supervisionDecisionTitle:`Lead 最后决策:{p0}({p1})`},artifactCard:{empty:`(空)`,k3yu62003:`展开`,k3y694004:`复制`,k40p82001:`收起`,k3n6o1m002:`已复制`},assetLibrary:{badModelFile:`仅支持 .glb/.gltf/.obj/.fbx 模型文件`,katn7lo015:`拖到孪生场景即生成设备实例 · {p0}`,k8nv3or016:`已上传 → {p0}`,k1hhga4h014:`确认上传`,k7la4x5001:`设备模型库`,kulif5b002:`拖入孪生空间生成实例`,k5hg6jq003:`松开以选择模型`,k3xdnn004:`取消`,k1ar7n8i005:`上传中…`,k1n32zs0006:`设备 · 拖拽放置`,k1kq2tmi007:`载入中…`,k15527e1008:`暂无设备模型,拖入 .glb 文件上传`,k1xz5wvk009:`暂不支持 3D 预览)`,k1iiort6010:`拖放或选择模型文件`,k498l011:`删`,kcjqcaw012:`请先拖入或选择设备模型文件(.glb/.gltf/.obj/.fbx)`,k8n918k013:`已删除模型文件`},ontology:{kicker:`工业语义资产`,title:`本体模型`,subtitle:`构建与治理面向控制的本体:实体、关系、约束规则与语义绑定;经编译器生成可追溯的问题界、步限与运行时守卫,发布为不可变版本。`,refresh:`刷新`,newDraft:`新建草稿`,pickDraft:`选择草稿`,validate:`校验`,compile:`编译预览`,publish:`发布版本`,publishHint:`发布仅管理员;未获批规则不得进入控制约束`,loadFail:`加载本体清单失败`,loadDraftFail:`加载草稿失败`,loadVersionsFail:`加载版本失败`,draftCreated:`已创建草稿 {id}`,draftCreateFail:`创建草稿失败`,validateOk:`校验通过`,validateFail:`校验未通过`,autofix:`自动修复`,autofixDone:`自动修复 {n} 项(已落库,rev 已前进)`,autofixNothing:`没有可安全自动修复的问题`,autofixPartial:`已修复可自动处理项;证据缺失/平台绑定漂移仍需人工或 Agent 补充`,autofixFail:`自动修复失败`,autofixLog:`本次自动修复 {n} 项`,compileOk:`编译完成:{status}`,compileFail:`编译失败`,publishOk:`已发布 v{version}`,publishFail:`发布失败`,ruleTransitionOk:`规则 {rule} → {to}`,ruleTransitionFail:`规则状态迁移失败`,approvalRequested:`已生成审批单 {id}(需第二人裁决)`,approvalDecided:`已裁决通过`,approvalFail:`批准流程失败`,compareFail:`版本比较失败`,retireOk:`已退役 v{version}`,retireFail:`退役失败`,compileEmpty:`先在工具栏点「编译预览」`,global:`全局本体`,empty:{ontologies:` 本体清单为空:先新建草稿并发布首个版本。`,issues:` 当前草稿没有校验问题。`},noEvidence:`无证据`,from:`起始版本`,to:`目标版本`,compare:`比较`,tab:{overview:`总览`,graph:`实体与关系`,rules:`约束规则`,bindings:`语义绑定`,versions:`版本与发布`,compile:`编译预览`},section:{ontologies:`本体清单`,issues:`校验问题`,entities:`实体`,relations:`关系`,bindingFailures:`绑定校验失败`,artifacts:`四类编译产物`,ruleTrace:`规则溯源`},stat:{ontologies:`本体`,drafts:`草稿`,entities:`实体`,rules:`规则`,bindings:`绑定`},col:{kind:`类型`,name:`名称`,role:`角色`,unit:`单位`,predicate:`关系`,evidenceTier:`证据档`,ruleKind:`规则类型`,level:`约束级别`,status:`状态`,evidence:`证据`,action:`操作`,entity:`实体`,target:`目标通道`,direction:`方向`,unitPair:`单位(声明→目标)`,version:`版本`,line:`产线`,parent:`父版本`,createdAt:`创建时间`,decision:`决策`,code:`决策码`,message:`说明`},action:{review:`提交审查`,validate:`登记为已验证`,approve:`申请批准`,retire:`退役`},prompt:{ontologyId:`本体 id(形如 ont-pva-line01)`,lineId:`授权锚定产线 id(可留空)`,approvalId:`审批单 id(留空=仅生成不裁决)`},diff:{entities:`实体`,relations:`关系`,rules:`规则`,bindings:`绑定`,rulesChanged:`变更的规则`},graph:{viewGraph:`图`,viewTable:`表`,baseline:`基线`,hint:`点击节点查看详情与邻接;虚线=候选影响,实线=已观测/已验证`,searchEntity:`搜索实体 key 或名称`,largeGraph:`实体较多({n} 个),已切换为聚焦模式:先搜索一个实体再看邻接`,neighbors:`邻接(关联边与节点)`,direct:`直接关联`,indirect:`间接关联(2 跳)`,loading:`正在加载邻接…`,truncated:`邻居超过显示上限,已截断(可缩小跳数或类型过滤)`,noNeighbors:`该实体没有关联边`,loadNeighborsFail:`加载邻接失败`,aria:`本体节点关系图`,lane:{mv:`操纵量 MV`,cv:`被控/质量量 CV`,structural:`状态与结构`},tier:{candidate:`候选影响`,observed:`已观测相关`,validated:`已验证控制`}},drawer:{bindings:`语义绑定`,noBindings:`该实体未绑定平台节点`}},toolsPage:{title:`工具管理`,subtitle:`内置工具与插件注册工具的统一目录:来源、角色、可用性、参数 Schema,以及被哪些 Channel 停用。`,refresh:`刷新`,sync:`重新同步`,total:`工具总数`,builtin:`内置`,plugin:`插件`,available:`当前可用`,disabledByChannels:`Channel 停用项`,lastSync:`最后同步`,search:`搜索工具名 / 说明 / 插件`,sourceAll:`全部来源`,sourceBuiltin:`内置`,sourcePlugin:`插件`,availableOnly:`仅显示可用`,name:`工具`,source:`来源`,pluginCol:`插件`,roles:`角色`,availableCol:`可用`,yes:`是`,no:`否`,channels:`停用 Channel`,firstSeen:`首次发现`,updated:`定义更新`,parameters:`参数 Schema`,disabledChannels:`停用该工具的 Channel`,noDisabledChannels:`没有 Channel 停用该工具(或均使用默认全启用)。`,loadFail:`工具目录加载失败`,syncDone:`同步完成:共 {total} 个,插件 {plugin} 个,新增不可用 {unavailable} 个`,syncFail:`工具目录同步失败`,pluginAll:`全部插件`},channelTools:{sectionTitle:`工具(本 Channel 独立选择)`,description:`硬规则排除的工具不能通过 Channel 开关打开;保存后按行生效,在跑 Agent 会刷新工具清单。`,refresh:`刷新`,modeAll:`全部可用工具(默认)`,modeSelected:`仅启用勾选的工具`,modeAllHint:`新安装的工具默认启用;取消勾选即停用。`,modeSelectedHint:`只有勾选的工具会注入 Agent;新工具默认不启用。`,stats:`共 {total} 个 · 生效 lead {lead} / worker {worker} · 本 Channel 停用 {disabled}`,searchPlaceholder:`搜索工具名 / 说明 / 插件`,sourceAll:`全部来源`,sourceBuiltin:`内置`,sourcePlugin:`插件`,filterAll:`全部状态`,filterEffective:`已生效`,filterDisabled:`本 Channel 停用`,filterBlocked:`硬规则阻止`,selectAll:`全选`,selectNone:`全不选`,dirty:`有未保存的工具选择`,coreWarning:`核心协作工具被停用,任务进度/完成回执可能无法回收。`,leadOnly:`仅 lead`,unavailable:`未注册`,noTools:`没有匹配的工具`,undo:`撤销`,resetConfirm:`清除本 Channel 的工具策略,恢复默认全部合格工具启用?`,reset:`恢复默认`,save:`保存工具选择`,saved:`工具选择已保存;在跑 Agent 将刷新工具清单`,resetDone:`已恢复默认(全部合格工具启用)`,resetFail:`工具策略重置失败`,saveFail:`工具选择保存失败`,loadFail:`工具列表加载失败`,reasonRole:`角色不允许`,reasonProfile:`Channel 档位不开放`,reasonWrite:`写守卫阻止`,reasonPlugin:`插件未启用`,reasonChannelPlugin:`本 Channel 关闭了插件`},channelSessionList:{schedTagTip:`已绑定 {p0} 个启用的定时任务`,nameRequired:`Channel 名称必填`,defaultSuffix:`(默认)`,tplCenterTitle:`Channel 模板中心`,newChannelTitle:`新建 Channel`,unmountTitle:`移出 workspace`,mountFromTpl:`从 Channel 模板挂载`,pfxBuiltin:`内置 · `,pfxPublic:`公开 · `,nameLabel:`Channel 名称`,wsPh1:`留空 = data/workspaces/<channelId>`,llmDefaultLabel:`默认模型(可选;留空用各 Harness 默认)`,catalogLoading:`目录加载中…`,effortPh:`effort(可选)`,variantPh:`variant(可选)`,builtinTag:`内置`,saveTplOk:`保存模板`,kjmldih035:`设置 {p0}`,k1yurooi036:`移出 {p0}`,kfe4pzq037:`工作目录:{p0}(点击复制路径)`,k1oes209038:`{p0}{p1}({p2} 成员)`,k1pmemvt039:`Channel 设置 · {p0}`,kud74vg040:`已复制:{p0}`,k1x2th9e041:`创建失败:{p0}`,kai50qc042:`已从模板实例化并挂载(成员 {p0} 个)`,k2hfym5043:`{p0} 模板`,k3wcox034:`任务`,kne35ug001:`Channel 设置(场景/工作目录/存为模板)`,k1qjyl6l002:`新建 Channel 并挂载`,k40gkk003:`描述`,k1wj4f38004:`作业场景 Prompt(全员注入)`,k1098zie005:`该 channel 全部 Agent 共享的作业场景规范,与系统设计手册组合注入每个 harness……例如:所有产出必须附中文摘要;代码修改需先列计划再动手;回复末尾附 [DONE] 标记`,kmgv4h5006:`工作目录(团队作业挂载点)`,k1i8q46x007:`作业场景 Prompt(修改后成员运行时自动回收,按新场景重装配)`,bindLineLabel:`绑定产线(只读授权)`,bindLinePlaceholder:`选择要绑定的产线(可清除=解绑)`,bindLineHint:`绑定后频道成员无需节点绑定即可读取该产线的运维日志、配方历史与实时状态;参数下发等写操作仍需节点授权。`,execModeLabel:`执行模式(产线作业三档)`,execModeObserve:`观察(只读分析)`,execModeObserveHint:`Agent 只能数采/台账/分析,控制/配方/启停线工具全部摘除 —— 安全只读,可放心使用`,execModeManual:`手动(逐动作批准)`,execModeManualHint:`所有下发挂起等人工确认,Agent 必须附带依据;适合联调与高风险工况`,execModeAuto:`自动(限界自动)`,execModeAutoHint:`免逐动作批准,但四层限界/单步/运行门照常生效,且自动下发必须附带依据(hypothesis)`,execModeLineGate:`产线总闸`,execModeBindings:`绑定面`,execModeSuppressed:`已被产线手动模式压制:产线总闸为 manual 时,自动档的下发仍会逐动作审批`,execModeEscalateHint:`该切换将放开审批/写能力,需二次确认`,execModeConfirmBtn:`仍要切换`,execModeSaved:`执行模式已切换`,ku3ugac008:`该 channel 全部 Agent 共享的作业场景规范……`,k67dzev009:`工作目录(Agent 作业 cwd;修改后 omp 子进程按新目录重启)`,k6kpql010:`保存为 Channel 模板`,k1f55q76011:`模板名称`,k3lrqn0012:`可见性`,kbdp56k013:`选择团队工作目录`,kkv789s014:`尚未挂载 Channel(可从下方模板一键实例化)`,k1bst7s9015:`同步中…`,k18ppu31016:`模板 = 场景 + 工作目录 + 团队;实例化即装配成员`,k1u3zsr5017:`注入顺序:场景规范 → 成员专长 → 记忆 → 系统手册 → 任务;设置弹窗可热更新(成员运行时自动回收重装配)`,k3pz0ma018:`浏览…`,kucq30k019:`执行任务时该目录注入各 Agent harness 的作业 cwd(omp 子进程工作目录);不存在自动创建`,k1ful761020:`Channel 创建后为空团队,无任何 Agent;进入后通过「添加成员」选择角色(lead/worker)与场景提示词完成装配`,k1x6kznr021:`捕获当前场景/工作目录/团队组合为可复用模板`,k1otvrfv022:`私有(仅本人)`,k1cc399s023:`公开(全员可实例化)`,kl9btf7024:`成员有模板引用则保留引用,否则保存内联快照;场景与工作目录照搬`,k1ggoa45025:`成员 / 忙`,krij3gg026:`复制失败(浏览器未授权剪贴板)`,k1bg6shc027:`创建失败`,kn89jvs028:`Channel 已创建(空团队;进入后通过「添加成员」装配 lead / worker)`,k97xi7u029:`模板挂载失败`,k1hgfvdc030:`移出失败`,kvsxlu6031:`已更新;成员运行时将按新设置回收重装配`,k1i0ji0y032:`模板名必填`,kjpguxw033:`已捕获为 Channel 模板(场景/目录/团队快照)`,k1plugon044:`插件开关已保存;该 Channel 在跑 Agent 的工具清单即时刷新`,k1pluglbl045:`插件(本 Channel 独立开关;关闭后其工具对本团队 Agent 隐藏并拒绝调用)`,k1plugsrc046:`未显式配置(默认全启用);首次切换后按行生效`},clusterArtifact:{view:`查看`,kyh87lw001:`交付物正文与上方回复一致`,k49les002:`隐藏`},chat:{title:`群聊`,messageCount:`{p0} 条`,refreshTitle:`刷新成员与设置`,refresh:`刷新`,join:`加入群聊`,notMemberHint:`未加入群聊 —— 需 owner 邀请或 Channel 未公开`,privateHint:`该 Channel 未公开或未开启群聊 —— 需 owner 邀请`,pendingHint:`加入申请待 owner 批准`,leave:`退出群聊`,leaveConfirm:`退出群聊后将立即失去读、发言、审批与通知补拉权限,确认退出?`,ownerHint:`你是 owner(不可退出,可转移 owner 或删除 Channel)`,approve:`批准`,removeConfirm:`移除该成员后其立即失去群聊与审批权限,确认?`,rosterHidden:`名册不可见(非成员)`,settingsTitle:`群聊设置`,visibilityLabel:`可见性`,visibilityPrivate:`私有(仅成员可见)`,visibilityPublic:`公开(登录用户可发现)`,joinPolicyLabel:`加入策略`,joinPolicyOwnerApprove:`需 owner 批准`,joinPolicyOpen:`开放加入`,approvalPolicyLabel:`审批策略`,approvalOwnerOnly:`仅 owner 可决策`,approvalAnyMember:`任一成员可决策`,chatEnabledLabel:`开启群聊`,saveSettings:`保存设置`,statusActive:`在群`,statusPending:`待批准`,statusLeft:`已退出`,statusRemoved:`已移除`,joinedPending:`已提交加入申请,等待 owner 批准`,joinedOk:`已加入群聊`,errChatDisabled:`该 Channel 未开启群聊`,errChannelPrivate:`该 Channel 未公开,需 owner 邀请`,leftOk:`已退出群聊`,errOwnerCannotLeave:`owner 不能退出群聊,请先转移 owner`,approvedOk:`已批准加入`,removedOk:`已移除成员`,settingsSaved:`群聊设置已保存`,settingsConflict:`Channel 设置已被他人修改,请刷新后重试`,avatarHuman:`人`,earlierMessage:`更早的消息`,backToLatest:`回到最新`,latest:`最新`,loading:`加载中…`,loadEarlier:`加载更早的消息`,emptyTitle:`还没有群聊消息`,emptyHint:`直接发言只进群聊(0 次 Agent 执行);输入 {'@'} 提及 Agent 才会触发执行,{'@'} 成员只发定向通知。`,roleUser:`用户`,roleSystem:`系统`,replyTitle:`引用这条消息回复`,reply:`回复`,mentionAgentTitle:`点击查看该 Agent`,mentionMemberTitle:`被 {'@'} 的成员(不触发 Agent)`,answeredFrom:`回答自 {p0}`,askedBy:`· 提问者 {p0}`,deliveryPending:`待投递`,deliveryDelivered:`已入信箱`,deliveryConsumed:`已被消费`,deliveryFailed:`投递失败`,deliveryCancelled:`已取消`,toolbarChatTitle:`群聊:仅显式 {'@'}Agent 才触发执行`,reachAgentsTitle:`仅显式 {'@'}Agent 触发执行`,reachAgentsText:`{'@'}{p0} · 将触发 {p1} 次 Agent 执行`,reachNoAgentTitle:`未 {'@'}Agent:消息只进群聊,不触发任何 Agent`,reachNoAgentText:`仅群聊 · 0 次 Agent 执行`,notifyMembersSuffix:` 将收到定向通知`,mentionHint:`输入 {'@'} 提及成员 · Enter 发送`,cancelReply:`取消回复`,unresolvedMentions:`未识别的 {'@'}: {p0}(不在本群成员内,未投递)`,sentToChat:`已发到群聊 · {p0} 个 Agent 已收到投递`,sentToChatNoAgent:`已发到群聊(未 {'@'}Agent,无 Agent 执行)`,composerChatDisabled:`该 Channel 未开启群聊 —— 请 owner 在右侧成员面板开启后重试`,composerNotMember:`你还不是该 Channel 的群成员 —— 请在右侧成员面板加入群聊`,composerPlaceholder:`发送到群聊… {'@'} 提及 Agent(触发执行)或成员(仅通知)`,blockChatDisabled:`该 Channel 未开启群聊(owner 可在右侧成员面板开启)`,blockNotMember:`你还不是群成员 —— 请在右侧成员面板加入群聊后发言`},notifications:{bellTitle:`我的通知({'@'} 提及 / Agent 回复 / 审批)`,title:`我的通知`,unreadCount:`{p0} 未读`,markAllRead:`全部已读`,markReadFailed:`标记已读失败`,empty:`暂无通知 —— 被 {'@'} 、收到 Agent 回复或审批请求时会出现在这里`,typeMention:`{'@'} 提及`,typeAgentReply:`Agent 回复`,typeHitlRequest:`待审批`,typeHitlResolved:`审批结果`,typeMember:`成员变更`},lineOps:{panelAria:`产线作业面板`,title:`产线作业`,statDcw:`写控`,statDaq:`采集`,statAml:`训练`,statSafe:`拦截`,filterAria:`作业筛选`,filterDaq:`取数`,filterTwin:`孪生`,filterSafety:`安全`,empty:`等待产线作业事件`,systemName:`系统`},clusterError:{showAll:`全部 {p0} 条`,k40p82001:`收起`},clusterLife:{done:`完成`,k1xthifv001:`非状态事件`,k498bf002:`队列`,k3pi5z1003:`次状态`},clusterMember:{showAll:`全部 {p0} 条`,byUser:`用户`,vAdded:`新增成员 {p0}`,vUpdated:`更新成员 {p0}`,vDisabled:`禁用成员 {p0}`,vRemoved:`移除成员 {p0}`,reason:`,理由:{p0}`,k40p82001:`收起`},clusterMemory:{showAll:`全部 {p0} 条`,k40p82001:`收起`},clusterOther:{showAll:`全部 {p0} 条`,k40p82001:`收起`},clusterRoute:{k12448jn010:`人类发送者:{p0}`,khsfl59011:`查看 {p0}`,k94hqp2012:`回复关联消息 {p0}`,k13ewgum013:`全部 {p0} 条`,kfbpe32001:`发送方要求回复:接收方须回执执行结果`,kyza1ya002:`(广播)`,k3wn89c003:`需回复`,k40p82004:`收起`,k1ax44eo005:`任务派发`,k1bsct42006:`取消通知`,k1ax087h007:`子任务完成`,k1cxjc4m008:`实时注入`,k1bka5dz009:`协作消息`},clusterStatus:{empty:`(空)`,k1fpy8te001:`思考 / 中间输出`},clusterStream:{kpk9wff001:`内容并入了后续回复块(不再重复渲染)`},clusterTask:{kfwdcd4008:`状态代码 {p0}`,k3n8lhn001:`已提交`,k3n8mf0002:`已指派`,k3o5tz9003:`执行中`,k1hpsvap004:`等待合并`,k10w8u89005:`完成·经验收`,k4u7566006:`失败·待改派`,k3n5vg5007:`已取消`},clusterTool:{expandAll:`展开全部 {p0} 个调用`,k40p82001:`收起`,kindIndustrial:`工业`},commandPalette:{gotoTeams:`前往:AgentTeam 编组库`,gotoSchedules:`前往:定时任务中心`,viewLanes:`视图:Agent lanes`,actA2a:`动作:A2A RPC/SSE 调试器`,k1nz14ux013:`切换 Channel:{p0}`,k1d8xtez014:`时间线过滤:{p0}`,k1nn6i83001:`输入命令…(导航/视图/Channel/过滤/动作)`,ktup4q4002:`无匹配命令`,k1kvl0fa003:`选择 /`,k1e3ualj004:`执行 /`,k3x62t005:`关闭`,kmxxk3u006:`前往:工作区总览`,k4s8e5q007:`前往:Agent 模板库`,k1ezz11x008:`前往:Channel 模板中心`,k143z9bg009:`视图:时间线`,k13ztmim010:`视图:任务板`,k21cpnp011:`视图:多通道同屏`,k1tm54il012:`动作:聚焦任务输入框`},composer:{loopIntervalRange:`loop 间隔需设置为 1 到 86400 秒`,defaultLeadTitle:`未 {'@'} 指定:任务自动路由 lead 调度;{'@'} 某成员可直发`,chipHint:`输入 {'@'} 提及成员 · ⌘/Ctrl+Enter 发送`,seconds:`秒`,sendTitle:`发送(⌘/Ctrl+Enter)`,kl3604i033:`直发 {'@'}{p0}`,k1cxjc4m034:`实时注入`,k1d2idgj035:`任务已下发 → {'@'}{p0}({p1})`,k1wk4bf036:`消息已发送给 {'@'}{p0}({p1})`,k2z0fsx032:` · 直发`,k1b38y2b001:`不限次数`,k1jqqvhe002:`HITL 实时注入:目标运行中时直接注入其当前回合(同轮可见)`,k195594v003:`要求对方回执`,k1bxvc46004:`发送给…`,k3wcox005:`任务`,k17u6q77006:`首行 = 标题`,k41ykc007:`消息`,k3x9n2008:`即时`,k40g8m009:`排队`,k3xv7u010:`回执`,k49kr1011:`间隔`,k2z7yuw012:` · 默认`,k1bosqfv013:`即时注入`,kqdhdlq014:`任务标题不能为空`,k1l36qf9015:`最大次数需设置为 1 到 10000 次,留空表示不限次数`,k1bw65is016:`请选择目标 Agent(可用 {'@'} 提及)`,k1ww0ftm017:`运行中 · 任务进入其信箱排队`,k9eq10w018:`目标正在执行:新任务投递到信箱,当前回合结束后按 FIFO 处理`,kbhz1rp019:`已停止 · 任务将入队,唤醒后执行`,kophjf5020:`目标运行时已停止:任务安全入队,重新启用后自动处理`,k4qgtiw021:`空闲 · 任务将立即起回合执行`,kfmjwas022:`目标空闲:任务投递后立即开始处理`,kwg68t0023:`运行中 · 将实时注入当前回合(HITL)`,k7w1etd024:`运行中 · 本回合结束后处理`,k9m6p7u025:`目标正在执行任务:即时消息会注入其运行中的会话(同轮可见)`,kj1ngpo026:`已停止 · 消息将入队,唤醒后送达`,kmf7lcc027:`目标运行时已停止:消息安全入队,重新启用后自动处理`,k1tet5df028:`空闲 · 将立即起回合处理`,kn600in029:`目标空闲:消息投递后立即开始处理`,k2h5jwc030:`输入任务下发(首行标题,{'@'} 成员直发,缺省 lead)… ⌘/Ctrl+Enter 提交`,k15mwzt7031:`输入消息/通知({'@'} 成员指定目标,缺省 lead)… ⌘/Ctrl+Enter 发送`},deviceTwinPanel:{armDelete:`再次点击确认删除该设备实例`,delDevice:`删除该设备实例`,winRecipe:`当前运行配方工艺窗口`,winRange:`节点全局量程`,k9r7d4e030:`PLC 当前读数(实际值)`,kq2jssk008:`配方工艺窗口`,k1iwj796009:`节点量程`,kxddket010:`超出{p0} {p1}`,k1j04u8001:`下发设定值(越限将被拒绝)`,k7k6evr002:`设备控制台`,kkw7sn5003:`正在装载设备寄存器…`,k13y2qmg004:`未注册设备`,kotf23l005:`将设备模型拖入孪生场景即可创建数字孪生实体`,k48grv006:`配方`,k44653007:`确认`},eventBlock:{stBusy:`运行中`,stStopped:`已停止`,stIdle:`空闲`,copied:`已复制`,copyAll:`复制全文`,kc918hn001:`需要回应或人工知悉`,kcugdph002:`与 delta 增量重复的内容已合并为一段`,kknq700003:`引用到输入框`,k3wmcv4004:`需关注`,k3vp67i005:`运行中`,k3xk4t006:`去重`},fileSelectorModal:{title:`选择工作目录`,pickHere:`选择此目录`,pathPh:`输入绝对路径跳转(如 D:\\\\projects\\\\my-app)`,go:`跳转`,kvwnnvn001:`..(上一级)`,k268o2o002:`(无子目录;可直接「选择此目录」使用当前位置)`,k1rt80dq003:`双击目录 = 直接选用;选定路径将作为团队工作目录(Agent 作业 cwd),不存在时会自动创建。`,kz99pgv004:`目录读取失败`},inspectorPanel:{tabMembers:`成员`,tabTasks:`任务`,tabMemory:`记忆`,tabStats:`统计`,k1tqitzl008:`成员同步中…`,kks0y5h009:`任务同步中…`,k12oip5c010:`成功率 {p0}% / 均耗 {p1}s / 失败 {p2}`,k498bf001:`队列`,k3ypnl002:`完成`,k3mp44x003:`子任务`,k3w9q9004:`交付`,k1el4cgf005:`暂无成员`,k1el0vqb006:`暂无任务`,k1el1plr007:`暂无历史`},laneBlocks:{k1br5dtr004:`加载更早`,k1otw1r3001:`正在同步历史…`,k1el0s5k002:`暂无事件`,k1br0ij9003:`加载中…`},liveAgentBar:{kh66fan003:`查看 {p0} 的执行详情`,k1a39d92004:`{p0} 位成员同样在忙`,k3o5tz9005:`执行中`,k68d2a2006:`队列 ×{p0}`,kr4bxgp001:`全部成员空闲`,k1sf0ymy002:`正在执行 ·`},memoryPanel:{tokenAuto:`成员 token 已自动装配`,tokenManual:`自动装配失败,可手动填入成员 token`,tokenPh:`Bearer token(成员身份,兜底手填)`,searchPh:`混合检索记忆(FTS+向量,与 agent search_memory 同源)…`,writeOk:`写入`,dedupLabel:`dedupKey(可选,幂等)`,k1du3379001:`成员身份`,k1bbee8p002:`写入记忆`,k419s4003:`标题`,k3wv1f004:`内容`,k3l2hmp005:`公共域`,k3rve9a006:`私有域`,k1k7okbe007:`记忆列表`,k3x1jg008:`刷新`,k3wtib009:`写入`,kemjjvq010:`shared(公共域,全员可检索)`,k43rxk011:`空)`,k3onh9w012:`本人)`,k3zul4013:`手动`,k186sctu014:`读取失败(检查成员身份)`,k1eh0fbo015:`检索需要关键词与成员身份`,k1dpj734016:`标题/内容/成员身份必填`,k3n5bat017:`已写入`,k1bb5i1l018:`写入失败`},mentionHoverCard:{k1t89ag4001:`点击提及打开执行详情`,k3o5eky002:`执行:`},multiChannelView:{a2aMessage:`文本 {p0}`,a2aArtifact:`交付 {p0}`,k3wcox005:`任务`,kvfx0mh006:`拖拽调节 {p0} 列宽`,kfvue7n009:`记忆 {p0}`,khq39oe010:`成员 {p0} {p1}`,k16wopr9011:`错误 {p0}`,k1bfi9ms001:`左侧挂载多个 Channel 后在此同屏观察`,k1bst7s9002:`同步中…`,k4by6003:`忙`,k1el0s5k004:`暂无事件`},paneSplitter:{kejk1i9001:`拖拽调节面板宽度`},statsPanel:{k1i88c0b001:`缓冲事件`,kfplawo002:`近 10s 吞吐`,kzcd51003:`事件类型分布(缓冲窗口)`,k1pevwxl004:`(暂无事件)`},taskBoardView:{emptySubNew:`在下方 Composer 提交首个任务(首行标题,支持 goal / loop / pipeline 模式)`,emptySubSync:`任务快照对齐后自动呈现`,k8m7hm6020:`路由理由:{p0}`,k1f9c17l019:`正在同步`,k43pyn001:`看板`,k3x7l0002:`列表`,k3wcox003:`任务`,k168w1ze004:`任务 · 拖拽卡片到「异常/取消」取消,失败任务拖回「待启动」重试`,k4b1x005:`子`,k3vkhhj006:`还没有`,k13pad50007:`拖入此处执行该动作`,k3nf71d008:`待启动`,k3o5tz9009:`执行中`,k1hpx9p1010:`等待汇总`,k3n77g3011:`已完成`,k1veotws012:`异常/取消`,k189y4q013:`已请求取消任务`,kv1l1j3014:`任务已重新派发`,k1e7zwuc015:`操作失败`,k1bs0t9b016:`取消任务`,k1lclwk6017:`重试派发`,k1dx9ysj018:`打开详情`},taskInspectorDrawer:{fallbackTitle:`任务详情`,failReason:`失败原因`,tabTimeline:`状态时间线`,kkp77tf015:`交付物({p0})`,khnua62016:`子任务({p0})`,kxj74io017:`原始内容({p0} parts)`,k6hcbxi001:`拖拽调节抽屉宽度`,kns2a6x002:`确认重试该任务?`,k1a7jqb9003:`确认取消该任务?`,k40gkk004:`描述`,k1lcgf2b005:`重试任务`,k1bs0t9b006:`取消任务`,k1knph8c007:`路由理由`,kr3vr2x008:`暂无事件(连接前发生)`,k1kmqn5u009:`(无子任务)`,k3o48o4010:`指派:`,k485ye011:`进度`,k401n2012:`无)`,k1xj595a013:`已请求取消`,ke7bh8u014:`已重新投递执行`,timedOut:`已超时`,remainingMinutes:`剩余约 {p0} 分钟`,deadlineAt:`截止 {p0}`,cancelWithChildren:`这会同时停止 {p0} 个活动后代任务,已完成结果会保留。确定继续?`,cancelConfirm:`确定取消这个任务吗?`,childrenStats:`后代 {p0} · 活动 {p1} · 已取消 {p2}`},townView:{saveLayoutTip:`把全部设备的位置/朝向/缩放写入数据库`,readonlyTip:`运行模式只读`,daqPauseTip:`暂停全部采集:停止所有启用节点的采样(节点级启停独立)`,daqResumeTip:`恢复全部采集:仅启用节点恢复采集(手动停用的保持停用)`,chPlaced:`已在场景中,点击定位`,chDragHint:`拖拽到场景放置`,viewTop:`俯视 · TOP`,viewFront:`前视 · FRONT`,viewSide:`侧视 · SIDE`,deviceName:`设备名称`,transformBlender:`变换 · BLENDER`,unboundTip:`未绑定工业节点 —— 绑定后 Agent 可用 dcw_control / daq_query 工具`,k1k6wg8j185:`设备实例`,k44c2n186:`离线`,k1w6xehu187:`{p0} · {p1} · 拖到设备旁自动绑定,量程 {p2} ~ {p3} {p4}`,k1icez46188:`{p0} · {p1} · 设定值域 {p2} ~ {p3} {p4} · 拖到设备旁自动绑定`,k2bindr0007:`当前绑定「{p0}」,点击改绑到本设备`,k2bindr0008:`点击绑定到本设备`,k2bindr0009:`未落位`,k2bindr0010:`暂无可绑定的节点 — 在左侧模板行 + 新建,或到「数采中心」添加`,k2tplxp0001:`点击展开/收起「{p0}」节点 · {p1} · 量程 {p2} ~ {p3} {p4}`,k2tplxp0002:`新建「{p0}」节点(创建后拖入场景)`,k2tplxp0003:`暂无节点 — 点模板行 + 新建,或到「数采中心」添加`,k2tplxp0005:`已在场景 · 点击定位选中;拖拽可重新落位`,k2tplxp0006:`拖拽到场景放置(±95 内设备自动绑定)`,k479op189:`角色`,kb251ac190:`当前配方工艺窗口`,kcyn0191:`「{p0}」已在场景中(相同频道只能放置一个)`,k1hmf2ut192:`频道布局加载失败,自动重试中({p0})`,kgz2nej193:`已为 {p0} 换装 → {p1}`,k5e2460194:`已在落点放入居民 → {p0}`,k113fir9195:`{p0} {p1}越限量程({p2})`,k1knv89d196:`{p0} {p1}进入预警带({p2})`,ksjancw197:`{p0} {p1}恢复正常`,kbuyve5198:`超出{p0} {p1} ~ {p2}`,k3n93ed175:`已暂停`,k3os7i3176:`未放置`,k1l147w1177:`运行模式`,k1empnnb178:`数采节点`,k1iwj796179:`节点量程`,kh1586b180:`启用本节点`,k1bc6rqf181:`全局量程`,k121kfef182:`删除设备实例`,k1f1xmci183:`框选绘制`,k3lmtk3184:`同步中`,k1c9jyta001:`场景模式`,k1fsi3ir002:`活跃告警`,k1demf38003:`当前用户`,khzlyf5004:`缺省采样周期(未单独设置周期的节点跟随此值)`,k18d6wnb005:`定位选中设备`,k1io51dn006:`自动环绕`,k1sgjlq8007:`数据标注显隐`,k3wuf0008:`全屏`,k1k4j5i7009:`视角预设`,k1ejxiwp010:`点击选中该设备`,k1d0rl5z011:`拖动移动面板`,kz71l1f012:`相机靠近设备多少距离内显示数采数据卡`,k1bsckft013:`取消选中`,kpwutri014:`删除该数采节点(server 实体一并移除)`,k1k6vbaf015:`设备名称`,k1k73omv016:`解除绑定`,k15t7izc017:`下发 write(工程设定值;越窗将被配方联锁拒绝)`,k13enoy3018:`在场景中拖动框选,确定该角色的移动范围`,khqvwix019:`自动 = 工具调用直接执行;手动 = 每次下发需在此批准`,keztqrn020:`备注(随结果返回给 Agent)…`,k15avt7g021:`重新拉取该角色的历史对话`,k1bkswpz022:`全部确认`,klfwiqg023:`RPG 导航图 · 准星=镜头 · 拖动平移 · 点击聚焦 · 滚轮同步视角缩放`,k1lap9bs024:`重置视角`,kav8a8k025:`缩小视角(小地图同步)`,k1u7uce9026:`放大视角(小地图同步)`,k48dwh027:`运行`,k45eb0028:`编辑`,k1b3bk8t029:`保存布局`,k1k75lzy030:`设备资源`,k2gwyas031:`数采节点 · DAQ`,k3xg3w032:`周期`,km7ayhi033:`智控节点 · DCW`,k1c9n911034:`场景管理`,k1b0z4vr035:`产线孪生总览`,kv72860036:`3D 视角 · 标准`,k1k6xemt037:`设备总数`,k49lh038:`台`,k1l1a9t2039:`运行设备`,k4dfq040:`条`,k1emsai1041:`数采通道`,k4l1w042:`路`,kbrxdq1043:`线体健康度`,k3rwxjc044:`空场景`,k1sa1eaj045:`从左侧「设备资源 / 数采节点」拖入实体,开始搭建数字孪生空间`,k1mehlxs046:`频道管理`,k489ka047:`边界`,k3zhy5048:`形状`,k414bc049:`椭圆`,k43u0g050:`矩形`,k1fbz4s1051:`横轴半径`,k1ighwgs052:`纵轴半径`,k40qab053:`朝向`,kimxls2054:`为频道成员选择 3D 角色模型(实时换装并持久化)`,k419rbs055:`该频道暂无成员`,k1b3kp8f056:`保存边界`,k1hs45qg057:`移除频道`,k3x62t058:`关闭`,kvjdqfg059:`正在铺设数字孪生空间…`,k1c9iq23060:`场景控制`,k1gizopz061:`环境光照`,k1bcpqto062:`构造透明度`,k1bztha1063:`告警阈值`,ka4i1s9064:`数采可视距离`,k1idc6pa065:`网格吸附`,k1i046wf066:`紧急停止`,k1kfoef9067:`趋势分析`,trendExpandAll:`展开全部 {p0} 路通道`,trendCollapse:`收起`,statesOffline:`离线`,fpsCapLabel:`帧率上限`,fpsCapTip:`场景渲染节拍上限;数据实时消费不受此限制(帧到达即入缓冲,渲染每帧取最新值上屏)`,qualityLabel:`画质`,qualityTip:`自动 = 按实测帧率升降档;普通/高清/超清 = 手动固定渲染配置(超清发挥 WebGL 最佳性能)`,qualityAuto:`自动`,qualityNormal:`普通`,qualityHD:`高清`,qualityUltra:`超清`,secRender:`渲染`,secEnv:`环境`,secOps:`操作`,hitlAutoReject:`后自动拒绝(超时默认拒绝)`,k1uht2uv068:`从左侧拖入数采节点,实时趋势将在此绘制`,k1deqh0d069:`当前设定`,k1i8rtqt070:`绑定设备`,kjo6ekr071:`选择设备实例…`,k3mv305072:`实时值`,k1faqmjb073:`正常范围`,k1l6g2ga074:`采样周期`,k1or92b075:`ms(空=跟随全局)`,k3x5tpx076:`预警带`,k1hjj0jf077:`硬限量程`,k48tki078:`采集`,k3xakp079:`删除`,k1bpp30k080:`删除节点`,kzk5dfx081:`运行模式 · 只读`,k3xhia082:`名称`,k41amp083:`模型`,kgpuqhb084:`暂无数据通道 · 拖入数采节点靠近此设备即可自动绑定`,kvm0lin085:`+ 添加数采通道`,k48grv086:`配方`,k10smf24087:`暂无智控通道 · 拖入智控节点靠近此设备即可自动绑定`,kvk1vh5088:`+ 添加智控通道`,k1hg3167089:`移动 G`,k1enlg7i090:`旋转 R`,k1ibjg3j091:`缩放 S`,kt0i3y2092:`运行模式 · 只读(切换「编辑」可调整变换/删除)`,k1fix3hb093:`活动范围`,k1p7nru2094:`工业节点绑定`,k1io1ylm095:`自动执行`,k1duyr8q096:`手动确认`,k40ifw097:`数控`,k40rjw098:`数采`,kurjldk099:`选择节点…`,k45kpj100:`自动`,k3zul4101:`手动`,k452a8102:`绑定`,kslcozu103:`✓ 批准执行`,k14gu3rd104:`✕ 拒绝`,k41lwj105:`横轴`,k45bta106:`纵轴`,k1w45mzc107:`清除范围(回退频道)`,k14s8urm108:`未设置:沿用频道边界活动;点「框选绘制」定制`,kkhlx5h109:`正在读取历史对话…`,k3o5tz9110:`执行中`,k1qkqld7111:`暂无对话 · 该员工尚未发言`,k17dkhgd112:`设备运行状态`,k7h1nxo113:`设备健康度`,k3vp67i114:`运行中`,k3zcvb115:`待命`,k3xmid116:`告警`,k1q247fn117:`关键设备监控`,k1cxf749118:`实时告警`,kjz544r119:`暂无告警,产线运行平稳`,k1cxdtq2120:`实时事件`,k2uk6ua121:`事件总线待命`,kjug2jq122:`3D 视图导航`,k1i4g246123:`系统状态`,k4a0jt124:`频道`,k3xdvm125:`员工`,k47e16126:`设备`,klyi8yg127:`数字孪生平台`,k1brss7t128:`员工 ·`,k3ztf1129:`成员`,k1vtyk05130:`数据绑定 ·`,ktzir2t131:`智控设定 ·`,k1gk2jg7132:`待审批下发 ·`,k1ghjbfc133:`会话记录 ·`,k768cnt134:`历史记录 ·`,k1cwz73k135:`实时 ·`,k1gaaodq136:`准星=镜头 · 同步视角 ×`,k1h5gxpf137:`演示数据为模拟信号`,k3vfpz5138:`路通道`,k1pub99m139:`产线管理员`,k3w3j8f140:`采集中`,k3n94g3141:`已放置`,k3lkuz3142:`加载中`,k1iipfcs143:`编辑模式`,k493s144:`关`,k4bs5145:`开`,k1ekqxlt146:`智控节点`,kq2jssk147:`配方工艺窗口`,k3own4q148:`未绑定`,k479eh149:`解绑`,k1wv0nyo150:`停用本节点`,k1l3m0hx151:`配方窗口`,k1w10xa5152:`再次点击确认删除`,k3slzhc153:`绘制中`,k41k5c154:`正常`,k3oo50k155:`未保存`,k1b38d59156:`保存中…`,k3n51yk157:`已保存`,k1b3ayhc158:`保存失败`,k7rvbts159:`请把频道卡片拖拽到场景中放置(松开即安放)`,k1v1icf6160:`未设置 · 沿用频道边界`,kpplr16161:`找不到所属频道,无法绑定模型`,kt6xb5p162:`运行模式为只读 · 切换「编辑」后可修改场景`,k3n4l5f163:`工作中`,k3n58d1164:`已停止`,k3w9q9165:`交付`,k44xa7166:`系统`,k3zbgf167:`异常`,k1ef3cls168:`数据通道`,k15tn2fh169:`请先在场景中选中一台设备`,k3ng94k170:`待处理`,k3mi2n0171:`处理中`,k3ncnxl172:`已确认`,kb157zk173:`紧急停止(E-STOP)已触发,产线全线停机`,k1s9qzr9174:`紧急停止已解除,产线恢复运行`,kwrbtn180:`下发 write`,ksavetip181:`保存全部设备布局`,krotip182:`运行模式只读`},transcriptTimeline:{syncLag:`连接中断,重连后将自动对齐缺失事件`,none:`无`,k44c2n024:`离线`,kglov3b025:`最后数据更新:{p0}`,k3wwxl026:`刚刚`,k2gyl6l027:`{p0}s 前`,k2hda35028:`{p0} 年 `,kbs29zx029:`{p0}{p1} 月 {p2} 日`,k3y2p8020:`在线`,kywgd38021:`加载更早的事件`,k126izdm022:`等待事件流入`,kuyjpmi023:`在下方提交任务后,Agent 执行过程将在此实时渲染`,kqu93z8001:`跳转到最新`,k40t11002:`最新`,k1kbaden003:`已加载全部历史(最早 1 条起)`,ktuo1zg004:`无匹配事件`,k1atjpx1005:`事件 /`,kapxgq4006:`过滤下没有事件,可切换过滤条件`,k4a9o007:`块`,k3lmtk3008:`同步中`,k1br0ij9009:`加载中…`,klnne6o010:`正在同步时间线…`,k1iuqpxj011:`连接恢复后事件将自动对齐`,k3x4t1012:`全部`,k3x5xi013:`关键`,k41ykc014:`消息`,k3wcox015:`任务`,k3y5ja016:`团队`,k49d2l017:`错误`,k3wcqg018:`今天`,k40l1y019:`昨天`},titles:{dashboard:`仪表盘 · AgentWorkShop`,daq:`数采中心 · AgentWorkShop`,daqNode:`数采节点控制台 · AgentWorkShop`,dcw:`产线运营 · AgentWorkShop`,dcwLine:`产线详情 · AgentWorkShop`,tokens:`API Token · AgentWorkShop`,users:`用户管理 · AgentWorkShop`,workshop:`Workshop · Agent Harness`,agents:`Agent 模板库 · Workshop`,teams:`AgentTeam 编组库 · Workshop`,ctpl:`Channel 模板中心 · Workshop`,monitor:`运行时监控 · AgentWorkShop`,settings:`系统设置 · AgentWorkShop`,schedules:`定时任务`},sched:{title:`定时任务`,sub:`绑定 Channel 的周期任务:到点自动向 Channel 下发任务;Channel 忙时等其收口后执行。`,newBtn:`新建计划`,empty:`暂无定时任务 — 新建一个计划,让团队按节奏自动运转`,colState:`状态`,colPlan:`计划`,colName:`名称`,colChannel:`频道`,colLastRun:`最近运行`,stateIdle:`待命`,stateRunning:`执行中`,stateWaiting:`等 Channel 收口`,stateDisabled:`已停用`,stateFailed:`失败`,stateTripped:`已熔断`,modeInterval:`每 {p0}`,modeDaily:`每天 {p0}`,minutes:`{p0} 分钟`,hours:`{p0} 小时`,modeIntervalRadio:`固定间隔`,modeDailyRadio:`每日定点`,nextRun:`下次:`,statLine:`共 {p0} 次 / 失败 {p1}`,fuseLine:`熔断 {p0}/{p1}`,runNowTitle:`立即执行`,historyTitle:`运行历史`,deleteConfirm:`删除该定时任务?运行历史将一并删除`,editTitle:`编辑定时任务`,createTitle:`新建定时任务`,fName:`计划名称`,fNamePh:`如:产线晨检`,fChannel:`绑定 Channel`,fChannelPh:`选择到点后接任务的 Channel`,fTitle:`任务标题(到点下发的任务名)`,fTitlePh:`如:汇总昨日产线数据并生成晨报`,fDesc:`任务描述`,fDescPh:`下发给 Channel 的任务说明(可留空)`,fMode:`触发模式`,fInterval:`执行间隔`,fIntervalUnit:`分钟(最小 1 分钟)`,fDailyTime:`每日执行时刻`,fDailyHint:`本地时区 HH:MM`,fFuse:`连续失败熔断阈值`,fFuseHint:`0 = 不自动停用;达到阈值自动停用,重新启用即重置`,fSubmitHint:`到点即向 Channel 提交该任务;Channel 有未收口任务时自动等待,收口后立即执行。`,nameRequired:`请填写计划名称`,channelRequired:`请选择绑定的 Channel`,titleRequired:`请填写任务标题`,badDailyTime:`每日执行时刻须为合法 HH:MM`,saved:`定时任务已更新`,created:`定时任务已创建`,enabledMsg:`已启用(重新计时)`,disabledMsg:`已停用`,deleted:`定时任务已删除`,runAccepted:`已触发,任务 {p0} 已提交到 Channel`,channelHasSched:`(已绑定时任务)`,enableToggle:`启用/停用`,historyEmpty:`暂无运行记录`,runDone:`完成`,runFail:`失败`,runOngoing:`执行中`,triggerManual:`手动`,triggerTimer:`定时`,runTask:`Channel 任务:`},chips:{chipAll:`全部 {n}`,chipMine:`我的 {n}`,chipPublic:`公开 {n}`,chipBuiltin:`内置 {n}`,chipOthers:`他人私有 {n}`,mine:`我的`,public:`公开`,builtin:`内置`,issue:`签发 Token`,issueTitle:`签发 API Token`},appHeader:{kzwjv99001:`关闭 {p0}`,kwsdot0001:`实时连接正常`,kwsdot0002:`实时同步中…`,kwsdot0003:`连接中…`,kwsdot0004:`连接已断开`,hitlBadge:`待人工处理`,hitlKindOmp:`omp 对话框`,hitlKindDcw:`下发审批`,hitlKindCodex:`codex 审批`,hitlKindOpencode:`opencode 权限`,hitlKindDsh:`dsh 权限`,hitlApprove:`批准`,hitlReject:`拒绝`,hitlReqQuestion:`提问`,hitlReqApproval:`审批`,hitlPolicy:`策略:{p0}`,hitlEngineNote:`该类型待办需在对应引擎界面处理`,hitlPermsLoading:`读取审批权限…`,hitlNoPerm:`无审批权限`,hitlAnswerPlaceholder:`输入答案`,hitlSupplementPlaceholder:`补充说明(可选)`,hitlSubmitAnswer:`提交答案`,hitlCancelRequest:`取消请求`},ompTerminalPanel:{switchTarget:`── 切换目标 · {p0} ──`,k14jk3nu001:` {p0}· 对话框已撤销({p1}){p2}`,k68kkpc002:`{p0}── 已接入 omp 进程 PID {p1}(会话重放 {p2} 帧)──{p3}`,k59zj91003:`{p0}✗ 终端连接未就绪,命令未发送{p1}`,kvzhi95004:`{p0}✔ HITL 已应答:{p1}{p2}`},plugins:{title:`插件管理`,subtitle:`内置示例与用户级扩展插件 · 启停即时热重载`,refresh:`刷新`,enabled:`已启用`,disabled:`已停用`,scopeProject:`内置示例`,scopeUser:`用户级扩展`,scopeBuiltinHint:`内置示例插件:随项目检出提供(仓库 .AgentWorkShop/plugins),可启停`,scopeUserHint:`用户级扩展插件:位于 ~/.AgentWorkShop/plugins,由使用者自行创建维护`,loadFail:`插件列表加载失败`,hasClient:`浏览器增强`,routes:`API 路由`,empty:`暂无插件 —— 执行 aw plugin create my-plugin 创建,或 aw plugin enable 开启内置示例`,failures:`装载失败`,loadFailures:`{n} 个插件装载失败,详情见服务启动日志`,enableFail:`启停操作失败`,detail:`插件详情`,desc:`平台插件清单:启停(admin,热重载生效)与连接健康检测。`,needLogin:`登录后可查看与管理插件`,builtin:`内置`,adminRequired:`该操作需要管理员权限`,healthCheck:`检测连接`,healthChecking:`检测中…`,healthOk:`正常`,healthBad:`异常`},errors:{http400:`请求参数有误,请检查后重试`,http401:`登录已过期,请重新登录`,http403:`权限不足:该操作需要管理员权限`,http404:`目标不存在或已被删除`,http409:`操作冲突:资源已存在或状态不允许`,http5xx:`服务器内部错误,请稍后重试`,network:`无法连接服务器,请检查网络与服务状态`,fallback:`操作失败,请稍后重试`},permissions:{title:`权限管理`,subtitle:`用户 × 产线三态授权:无权 / 仅查看(数采只读) / 可操控(数采+数控全量);普通用户默认无权`,search:`搜索用户名或邮箱`,loadFail:`权限数据加载失败`,saveFail:`保存授权失败`,saved:`已保存 {n} 项授权变更`,colUser:`用户`,colEmail:`邮箱`,colRole:`角色`,colStatus:`状态`,colChannels:`Channel 数`,colGrants:`产线授权`,colOps:`操作`,active:`正常`,manage:`授权管理`,detail:`权限详情`,secProfile:`基本信息`,secChannels:`创建的 Channel`,noChannels:`该用户尚未创建 Channel`,secMatrix:`产线授权矩阵`,save:`保存变更({n})`,matrixHint:`无权=后端不返回该产线数据(前端/数字孪生不可见);仅查看=数采节点只读;可操控=数采读取+数控写控全量。`,none:`无权`,readonly:`仅查看`,operate:`可操控`},error:{backHome:`返回首页`,lost:`页面走失了`},optimizer:{kicker:`优化器管理`,subtitle:`场景/变量/工况 → 数据集 → 训练 → Profile → 绑定 → 数值求解 → 不可变建议`,recommendationOnly:`仅建议 · 零设备写`,tab:{spec:`模型规格`,eligibility:`资格报告`,profile:`Profile / Solver`,binding:`Agent 绑定`,runs:`运行 / 建议`},fields:{line:`产线`,product:`产品`,recipe:`配方`,recipeVersion:`配方版本`,beat:`采样节拍(ms)`,history:`历史步数`,horizon:`预测时域`,trainer:`训练器`,arOrder:`AR 阶数`,inputOrder:`输入阶数`,order:`响应面阶数`,runIds:`限定批次(逗号分隔)`,varId:`变量 id`,nodeId:`节点 id`,role:`角色`,unit:`单位`,scale:`换算 scale`,offset:`换算 offset`,delayMs:`延迟(ms)`,min:`下限`,max:`上限`,maxStep:`单步限幅`,model:`模型 id`,name:`配置名称`,description:`配置描述`,template:`问题模板`,solver:`求解器`,agentInstance:`Agent 实例 id`},spec:{title:`过程模型规格`,variables:`变量映射(单位/延迟必须显式)`,addVariable:`添加变量`,needVariables:`至少添加 1 个 MV 与 1 个 CV`,save:`登记规格`,buildDataset:`构建数据集(v2)`,train:`提交训练`,modelUnitsHint:`变量 min/max、单步限幅与有效域使用模型单位(modelUnit;未填则同 unit)。`},currentDataset:`当前数据集`,remove:`删除`,optional:`可选`,publish:`发布`,nodeRequired:`节点 id 必填`,specSaved:`规格已登记:{id}`,datasetBuilt:`数据集已构建:{id}({rows} 窗)`,datasetRequired:`先构建数据集`,jobSubmitted:`训练作业已提交:{id}`,profileSaved:`Profile 已登记(草稿)`,profilePublished:`Profile 已发布`,bindingCreated:`绑定已创建`,bindingRevoked:`绑定已撤销`,solveDone:`求解完成`,eligibilityDone:`资格评估完成`,eligibility:{title:`优化资格(A2)`,evaluate:`评估资格`,yes:`具备优化资格`,no:`不具备优化资格`,empty:`尚未评估。先构建数据集,再评估资格。`},profile:{title:`Profile 与求解器`,config:`问题配置(JSON:权重/目标/约束)`,configHint:`JSON 顶层键必须与问题模板同名(linear_mpc_quadratic / steady_response)。`,save:`登记 Profile(draft)`},binding:{title:`Agent 绑定`,create:`创建绑定`,revoke:`撤销`,identityHint:`必须使用 channel_agents.id(实例 id);传模板 id 会被拒绝。多绑定求解需显式 binding_id。`},runs:{title:`优化运行与建议`,solve:`求解一次`,recommendation:`建议`,zeroWrite:`本流程零设备写入;建议不构成执行授权,审批/下发仍走既有 DCW 治理链。`}},aml:{blockerVenv:`训练环境(./aml/.venv)尚未创建:请在「运行环境」面板点击「创建训练环境」`,blockerPython:`Python 解释器不可用`,rootSourceEnv:`环境变量 AW_AML_DIR 指定`,rootSourceRepo:`项目检出根(./aml)`,rootSourceHome:`用户配置根(~/.AgentWorkShop/aml)`,rootSourceCwd:`当前工作目录(./aml)`,k1amlx001:`AML 自动建模`,k1amlx002:`数据集快照 → 训练作业 → 实验门禁 → 模型注册全链路;作业进度经 WS 实时帧推送,平台门禁判定为准。`,k1amlx003:`Python 运行时`,k1amlx004:`就绪`,k1amlx005:`不可用`,k1amlx006:`依赖环境`,k1amlx007:`已备好`,k1amlx008:`未就绪`,k1amlx009:`排队`,k1amlx010:`运行`,k1amlx011:`数据集`,k1amlx012:`模型`,k1amlx013:`生产模型`,k1amlx014:`训练/预测均不可执行:`,k1amlx015:`平台状态加载失败`,k1amlx016:`数据集快照`,k1amlx017:`刷新`,k1amlx018:`新建数据集`,k1amlx019:`暂无数据集 —— 从产线历史批次构建对齐快照后即可提交训练。`,k1amlx020:`时间`,k1amlx021:`产品`,k1amlx022:`配方`,k1amlx023:`行数`,k1amlx024:`批次`,k1amlx025:`创建者`,k1amlx026:`备注`,k1amlx027:`清洗报告(逐节点)`,k1amlx028:`滞后估计(控制 → 目标互相关)`,k1amlx029:`Run 概览`,k1amlx030:`加载中…`,k1amlx031:`详情加载失败`,k1amlx032:`无滞后估计(需同时存在 control 与 target 节点)`,k1amlx033:`节点`,k1amlx034:`角色`,k1amlx035:`剔除率`,k1amlx036:`缺失率`,k1amlx037:`均值`,k1amlx038:`σ`,k1amlx039:`min~max`,k1amlx040:`控制`,k1amlx041:`目标`,k1amlx042:`滞后(拍)`,k1amlx043:`峰值相关`,k1amlx044:`使用批次`,k1amlx045:`丢弃批次`,k1amlx046:`窗口 train/val/test`,k1amlx047:`无构建报告(旧快照)`,k1amlx048:`无`,k1amlx049:`用户`,k1amlx050:`新建数据集快照`,k1amlx051:`产线 ID`,k1amlx052:`产品 ID`,k1amlx053:`配方 ID`,k1amlx054:`节点角色表(至少 1 个 target)`,k1amlx055:`加一行`,k1amlx056:`节点 ID`,k1amlx057:`control(可控输入)`,k1amlx058:`feature(历史特征)`,k1amlx059:`target(预测目标)`,k1amlx060:`对齐节拍 ms`,k1amlx061:`历史窗(拍)`,k1amlx062:`预测窗(拍)`,k1amlx063:`val 比例`,k1amlx064:`test 比例`,k1amlx065:`随机种子`,k1amlx066:`用途`,k1amlx067:`mpc_surrogate(MPC 代理)`,k1amlx068:`quality_predict(质量预测)`,k1amlx069:`构建目的/口径说明(可选)`,k1amlx070:`构建中…`,k1amlx071:`取消`,k1amlx072:`构建快照`,k1amlx073:`数据集已构建:{p0}(行 {p1})`,k1amlx074:`训练作业`,k1amlx075:`暂无训练作业 —— 选定数据集后经 Agent 工具或 API 提交。`,k1amlx076:`作业`,k1amlx077:`状态`,k1amlx078:`阶段`,k1amlx079:`进度`,k1amlx080:`门禁通过`,k1amlx081:`门禁未过`,k1amlx082:`门禁待判`,k1amlx083:`平台门禁`,k1amlx084:`门禁项`,k1amlx085:`实测`,k1amlx086:`阈值`,k1amlx087:`通过`,k1amlx088:`未过`,k1amlx089:`运行日志(尾随)`,k1amlx090:`暂无日志`,k1amlx091:`活跃作业日志 5s 轮询中`,k1amlx092:`失败原因`,k1amlx093:`取消中…`,k1amlx094:`确认取消`,k1amlx095:`重试`,k1amlx096:`确认重试`,k1amlx097:`已请求取消:{p0}`,k1amlx098:`已重新排队:{p0}`,k1amlx099:`指标`,k1amlx100:`排队中`,k1amlx101:`备环境`,k1amlx102:`训练`,k1amlx103:`评估`,k1amlx104:`完成`,k1amlx105:`失败`,k1amlx106:`已取消`,k1amlx107:`超时`,k1amlx108:`已中断`,k1amlx109:`实验排行榜`,k1amlx110:`选择数据集查看谱系`,k1amlx111:`— 选择数据集 —`,k1amlx112:`该数据集暂无实验 —— 提交训练作业后此处呈现谱系与门禁。`,k1amlx113:`实验`,k1amlx114:`变更说明`,k1amlx115:`父实验`,k1amlx116:`G1 单步`,k1amlx117:`G2 滚动`,k1amlx118:`门禁态`,k1amlx119:`运行中`,k1amlx120:`最优`,k1amlx121:`测试集单步 NRMSE(越小越好)`,k1amlx122:`测试集滚动 NRMSE(越小越好)`,k1amlx123:`模型注册表`,k1amlx124:`注册表为空 —— 门禁通过的实验会自动登记 candidate 模型。`,k1amlx125:`模型`,k1amlx126:`指标(G1 单步 / G2 滚动 NRMSE)`,k1amlx127:`操作`,k1amlx128:`晋升 shadow`,k1amlx129:`晋升 production`,k1amlx130:`退役`,k1amlx131:`确认执行`,k1amlx132:`已晋升:{p0} → {p1}`,k1amlx133:`预测控制台(what-if)`,k1amlx134:`— 选择 production 模型 —`,k1amlx135:`暂无 production 模型 —— 先在注册表晋升,再回此做预测。`,k1amlx136:`IO 规格`,k1amlx137:`全部节点`,k1amlx138:`控制节点`,k1amlx139:`目标节点`,k1amlx140:`历史窗`,k1amlx141:`预测窗`,k1amlx142:`节拍`,k1amlx143:`history 输入([H][nAll] JSON;列序 = allNodes)`,k1amlx144:`[[21.4,0.82,…], …] — H×nAll 数值矩阵`,k1amlx145:`拉取最新`,k1amlx146:`页面暂不内联拉数:让 Agent 用数采查询工具取该配方最近 H 拍,粘贴为 JSON 矩阵。`,k1amlx147:`滚动步数(≤预测窗,空 = 全额)`,k1amlx148:`预测`,k1amlx149:`推理中…`,k1amlx150:`预测结果 forecast`,k1amlx151:`步`,k1amlx152:`t+(s)`,k1amlx153:`history JSON 解析失败:`,k1amlx154:`预测完成:{p0} 步 × {p1} 目标`,k1amlx155:`模型口径`,k1amlx156:`controls 轨迹(可选,[≤H][nControl] JSON)`,k1amlx157:`操作失败`,k1amlx158:`建模`,k1amlx159:`AML 自动建模平台`,k1amlx160:`AML 自动建模 · AgentWorkShop`,k1amlx161:`请补全:产线 / 产品 / 配方 ID 均为必填`,k1amlx162:`运行环境`,k1amlx163:`uv 包管理器`,k1amlx164:`已安装`,k1amlx165:`未安装`,k1amlx166:`一键安装 uv`,k1amlx167:`安装 uv 中…`,k1amlx168:`创建训练环境`,k1amlx169:`重建训练环境`,k1amlx170:`创建中…`,k1amlx171:`AML 资产根`,k1amlx172:`uv 安装位置`,k1amlx173:`训练环境路径`,k1amlx174:`磁盘占用`,k1amlx175:`重新检测`,k1amlx176:`安装 uv 需要联网下载约 40MB 到项目 ./aml/tools:不改系统 PATH、不需要管理员,整份 ./aml 可删除重建。`,k1amlx177:`未检测到 uv:可点击上方按钮一键安装(推荐),否则将回退 python -m venv 供给(较慢)。`,k1amlx178:`作业前置条件未满足`,k1amlx179:`环境任务执行中`,k1amlx180:`安装日志`,k1amlx181:`关闭`,k1amlx182:`元数据与实体`,k1amlx183:`一致`,k1amlx184:`存在差异`,k1amlx185:`实体缺失`,k1amlx186:`孤儿实体`,k1amlx187:`契约缺失`,k1amlx188:`清理孤儿实体`,k1amlx189:`编辑备注`,k1amlx190:`删除`,k1amlx191:`保存`,k1amlx192:`备注已更新`,k1amlx193:`已删除`,k1amlx194:`uv 安装完成`,k1amlx195:`uv 安装失败`,k1amlx196:`训练环境已就绪`,k1amlx197:`训练环境创建失败`,k1amlx198:`删除数据集会同时移除 ./aml/datasets 下的实体目录;被实验或模型引用的数据集会被拒绝删除。`,k1amlx199:`删除模型会同时移除 ./aml/models 下的 ONNX 工件;production 阶段模型须先退役。`,k1amlx200:`删除作业会级联清理其实验记录与 ./aml/jobs 下的工作区;已产出模型的作业不可删除。`,k1amlx201:`AML 资产根:所有数据集、训练作业、模型工件与 uv 虚拟环境都存放在此处。`,k1amlx202:`取消`,k1amlx203:`操作失败`,k1amlx204:`模型标识`,k1amlx205:`模型说明`},teamPlugins:{k1plugon040:`插件开关 · {p0}`,k1plugon041:`启用插件`,k1plugon042:`未选中的插件其工具不会注入该团队 Agent,避免上下文污染`,k1plugon043:`已保存`,k1plugon044:`默认全启用(尚未单独配置)`,k1plugon045:`已单独配置`,k1plugon046:`插件已全部停用`,k1plugon047:`插件开关…`,descLineSentinel:`产线哨兵:数采越限告警 + 心跳 + 产线生命周期跟踪`,descOpsNotifier:`写控与产线事件回声:滚动记录最近事件 + 查询 API + 客户端通知`,descSampleInsight:`SDK 示例:数采采样计数 + 统计 API + 客户端徽标`,descDiagBridge:`深度诊断桥接:导出 DAQ 时序快照 CSV,发起 industrial-deep-diagnostic 深度诊断并跟踪状态,完成后报告自动入知识库。`,descRagBridge:`rag-knowledge 知识库桥接:工业知识检索/经验沉淀/文档入库三工具`,descSerialBridge:`串口通信协议桥:Modbus RTU(RS-485/232)与 ASCII 行协议读驱动、带回读校验的写驱动、串口枚举/探针 API 与前端面板。`},tplCatalog:{"temp-tc":`温度传感器`,"pressure-tx":`压力变送器`,"tension-cell":`张力传感器`,"line-encoder":`速度编码器`,"vision-cam":`视觉检测相机`,"power-meter":`电参采集器`,"thickness-scan":`测厚扫描仪`,"ccd-image":`CCD 视觉相机`,"temp-sp":`温度设定器`,"speed-sp":`速度设定器`,"tension-sp":`张力设定器`,"pressure-sp":`压力设定器`},builtinSeeds:{tplDefaultLead:`开发主管`,tplDefaultBackend:`后端工程师`,tplDefaultFrontend:`前端工程师`,tplDefaultQa:`测试工程师`,tplDefaultDocs:`文档撰写`,tplScenarioPaymentLead:`支付网关交付主管(场景:高并发支付)`,tplAmlLead:`AML 首席数据科学家`,tplAmlData:`AML 数据工程师`,tplAmlTrainer:`AML 训练工程师`,tplAmlEval:`AML 评测工程师`,teamDefaultFullstack:`全栈交付组`,teamDefaultDocs:`文档维护组`,teamAmlShadow:`AML 影子建模团队`,chtplDefaultFullstack:`全栈交付通道`,chtplDefaultFullstackDesc:`内置模板:主管带队 + 后端/前端/测试,适合常规交付任务`,chtplDefaultFullstackScenario:`团队按主管调度协作交付;每个子任务完成后由主管复核,产出统一沉淀为 artifact。`,chtplDefaultReview:`文档评审通道`,chtplDefaultReviewDesc:`内置模板:文档撰写 + 测试复核,适合文档、报告与评审场景`,chtplDefaultReviewScenario:`以文档产出与质量复核为主线;撰写完成后由复核角色检查并反馈修改意见。`,chtplPresetOpticalFilm:`光学薄膜涂布产线优化组`,chtplPresetOpticalFilmDesc:`工业场景预设:涂布产线数字孪生优化 —— 生产主管 + 工艺工程师 + 数据分析师,面向烘箱温控与涂层质量闭环`,chtplPresetOpticalFilmScenario:`光学薄膜涂布产线:烘箱多段温控与涂层质量闭环;数据先行、窗口内小步幅、单变量调整、复测闭环。`,chtplPresetExtrusion:`薄膜挤出流延产线优化组`,chtplPresetExtrusionDesc:`工业场景预设:挤出流延产线数字孪生优化 —— 生产主管 + 工艺工程师 + 数据分析师,面向熔体压力/温度耦合控制`,chtplPresetExtrusionScenario:`薄膜挤出流延产线:熔体压力/温度强耦合下的膜厚质量控制;数据先行、窗口内小步幅、单变量调整、复测闭环。`,mKnight:`灰羽骑士`,mMage:`紫晶法师`,mBot:`青枢机械`,mHero3d:`标准员工模型`,mHero3dHint:`默认员工 3D 模型`,mYangyang:`杨杨(走路)`,mYangyangHint:`自定义角色:骨骼走路动画(剪辑 WALK;文件较大,建议少量绑定)`,mDevice3d:`工业泵设备`,mDevice3dHint:`数字孪生实体模型(拖入场景生成设备)`,mDeviceFallbackHint:`设备实体(拖入场景生成数字孪生)`,mScannedCharacterHint:`角色 3D 模型(在频道成员管理中设置)`},data:{page:{title:`数据管理`,sub:`产线维度的镜像数据 / MES 接口 / 导出与批次台账`},tab:{mirror:`镜像数据`,mes:`MES 接口`,ledger:`台账`},line:{label:`产线`,any:`(全部产线)`},mirror:{window:`时间窗`,last15:`近 15 分钟`,last60:`近 1 小时`,last240:`近 4 小时`,custom:`自定义`,agg:`聚合`,aggAvg:`均值`,aggMin:`最小`,aggMax:`最大`,band:`min/max 包络`,query:`查询`,querying:`查询中…`,export:`导出`,nodes:`节点`,noNodes:`暂无可读数采节点`,runScope:`默认限定活动批次 {run}`,truncated:`{n} 个节点触达每节点 2000 点上限,已截断(请缩小窗口或加大桶宽)`,preview:`数据预览(最新在前)`,previewNote:`显示最新 {n} 行(该窗共 {total} 点);完整数据请导出`,time:`时间`,empty:`选择产线与节点后点击查询`,exportTitle:`导出 {n} 个节点`,exportTitleLabel:`标题`,exportNoteLabel:`备注`,exportMerge:`生成多节点对齐宽表 merged.csv`,cancel:`取消`,exportOk:`开始导出`,exporting:`导出中…`,exportDone:`导出完成,共 {rows} 行:`,manifest:`manifest.json`,exportRunning:`任务执行中(并发=1 队列),请稍候…`,derivedBtn:`另存派生数据集(滑动均值)`,deriving:`派生中…`,derivedDone:`派生完成:{rows} 行,任务 {id}(台账页可下载 data.csv)`},mes:{points:`MES 点位目录`,filter:`搜索点位…`,empty:`你的可读产线上没有 mes-rest 点位`,pickPoint:`从目录中选择一个点位开始调试`,console:`取数调试:{name}`,from:`起`,to:`止`,rows:`行数上限`,preview:`预览`,previewing:`取数中…`,guards:`护栏:窗口 ≤7 天、行数 ≤5000、每分钟 30 次;回显已脱敏(凭据以 *** 显示)`,reqEcho:`请求模板(已脱敏)`,stats:`统计与采样(≤3 行,原文不进页面)`,rowsGot:`取回 {n} 行`,truncated:`已按行数上限截断`,dict:`字段字典`,dictEmpty:`暂无字段字典(首次取数后由 MES 响应学习,或在点位配置静态字典)`,hasHistory:`可取历史`,noHistory:`未配置历史映射`},ledger:{jobs:`导出任务`,refresh:`刷新`,status:`状态`,nodes:`节点数`,window:`窗口`,rows:`行数`,created:`创建时间`,download:`下载`,missing:`产物已过保留期`,st:{running:`执行中`,ready:`完成`,failed:`失败`},runs:`批次台账`,outcome:`判定`,any:`(全部)`,recipe:`配方`,samples:`样本数`,started:`开始`,ended:`结束`,empty:`暂无导出任务`,runsEmpty:`暂无批次记录(开跑产线后自动落账)`}},studio:{sources:`数据源`,dblClickAdd:`双击加入 Y 轴`,pickLine:`选择产线载入节点`,myCharts:`我的图表`,noCharts:`还没有保存的图表`,runFilter:`批次`,noRun:`(时间窗)`,canvasEmpty:`加入测点后点击查询`,yWell:`Y 轴井(可分左右轴)`,yEmpty:`双击左侧测点加入`,yMax:`Y 轴序列最多 8 个`,toggleAxis:`切换左/右轴`,refWell:`参考线井`,refEmpty:`无数值参考线`,refValue:`参考值`,refFromTemplate:`从量程上限导入`,maxRef:`量程上限`,golden:`Golden 参考轨迹(相位 0-100%)`,goldenHint:`先选一个已关账的 good 批次,生成该节点的 golden 画像;叠加显示均值±σ 带。`,goldenMake:`生成本批 golden`,goldenShow:`叠加`,goldenHide:`隐藏`,goldenScore:`偏差分`,goldenMade:`golden 已生成/更新({node})`,deviationScore:`批次 vs golden 平均 |z| 偏差分:{score}(越小越贴近参考轨迹)`,noRecipe:`找不到该批次的配方,无法定位 golden。`,saveSection:`保存`,chartTitle:`图表标题`,visPrivate:`私有(仅自己)`,visLine:`产线可见`,save:`保存图表`,update:`更新版本`,savedV:`已保存 v{v}`,viz:{trend:`趋势线`,bar:`柱状`,scatter:`散点`,kpi:`KPI 大数字`,table:`数据表`,histogram:`直方图`},pipelineSnapshot:`管道快照 · 只读`,boardLink:`看板`,agentPrompt:`Agent 分析提示词`,promptTitle:`Agent 深度分析提示词(复制到 Channel 即可发起)`,copy:`复制`,copied:`已复制到剪贴板`,pipeline:{title:`EDA 分析管道`,sub:`拉取数据 → 自定义后处理 → 图表配置(可存模板) → 绘图/导出/在线查看`,backToStudio:`返回工坊`,s1:`拉取数据`,pickLine:`选择产线…`,w15:`近 15 分钟`,w60:`近 1 小时`,w240:`近 4 小时`,fetch:`拉取数据`,importPlaceholder:`粘贴 CSV/TSV(首行表头):
|
|
5
5
|
批次,克重
|