agentworkshop 0.7.12 → 0.7.14

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.
Files changed (100) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/CD1SlCoI.js +14 -0
  3. package/.output/public/_nuxt/CYBq3kS7.js +1 -0
  4. package/.output/public/_nuxt/Cr9DkD1d.js +1 -0
  5. package/.output/public/_nuxt/DGVAuScD.js +1 -0
  6. package/.output/public/_nuxt/DMdVWIGz.js +19 -0
  7. package/.output/public/_nuxt/DVoWWlUW.js +1 -0
  8. package/.output/public/_nuxt/agents.CB9Ck7VQ.css +1 -0
  9. package/.output/public/_nuxt/builds/latest.json +1 -1
  10. package/.output/public/_nuxt/builds/meta/23c30854-f9e1-4651-bc3a-b695ef5faca4.json +1 -0
  11. package/.output/public/_nuxt/channel-templates.C-M5nKcC.css +1 -0
  12. package/.output/public/_nuxt/{Ds8JbqGB.js → ed5qX-x5.js} +1 -1
  13. package/.output/public/_nuxt/{entry.Bv_GCmPP.css → entry.BNApuuEW.css} +1 -1
  14. package/.output/public/_nuxt/logs.BarkrvUp.css +1 -0
  15. package/.output/public/_nuxt/pages.CG8UJ2TK.css +1 -0
  16. package/.output/public/_nuxt/teams.DN0pAGGu.css +1 -0
  17. package/.output/public/_nuxt/tokens.BVXU1jOK.css +1 -0
  18. package/.output/server/chunks/_/nitro.mjs +849 -752
  19. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  20. package/.output/server/chunks/_/user.schema.mjs +1 -1
  21. package/.output/server/chunks/_/user.schema.mjs.map +1 -1
  22. package/.output/server/chunks/build/TownView-CunmEMzS.mjs +1 -1
  23. package/.output/server/chunks/build/_id_-CVnMdSeG.mjs +1 -1
  24. package/.output/server/chunks/build/_id_-D265Wh_k.mjs +1 -1
  25. package/.output/server/chunks/build/{agents-B10wmFri.mjs → agents--6bzGtES.mjs} +156 -80
  26. package/.output/server/chunks/build/agents--6bzGtES.mjs.map +1 -0
  27. package/.output/server/chunks/build/{channel-templates-CpWxVk5A.mjs → channel-templates-C1Bb-U75.mjs} +19 -20
  28. package/.output/server/chunks/build/channel-templates-C1Bb-U75.mjs.map +1 -0
  29. package/.output/server/chunks/build/daq-DxaXk_8N.mjs +1 -1
  30. package/.output/server/chunks/build/dcw-B0dtiHFG.mjs +1 -1
  31. package/.output/server/chunks/build/{logs-Crf6f1IC.mjs → logs-UWXeNKy_.mjs} +34 -34
  32. package/.output/server/chunks/build/{logs-Crf6f1IC.mjs.map → logs-UWXeNKy_.mjs.map} +1 -1
  33. package/.output/server/chunks/build/{pages-BmRUbGUi.mjs → pages-Aexs6LjD.mjs} +27 -15
  34. package/.output/server/chunks/build/pages-Aexs6LjD.mjs.map +1 -0
  35. package/.output/server/chunks/build/{teams-CNflUtPh.mjs → teams-DD8ZXTKL.mjs} +29 -32
  36. package/.output/server/chunks/build/teams-DD8ZXTKL.mjs.map +1 -0
  37. package/.output/server/chunks/build/{tokens-BKLzcdMg.mjs → tokens-Dxnuw96_.mjs} +14 -14
  38. package/.output/server/chunks/build/{tokens-BKLzcdMg.mjs.map → tokens-Dxnuw96_.mjs.map} +1 -1
  39. package/.output/server/chunks/build/useDaqStream-BkmyQT06.mjs +1 -1
  40. package/.output/server/chunks/build/useDcwStream-DWVoU96J.mjs +1 -1
  41. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs.map +1 -1
  42. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  43. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -1
  44. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  45. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +14 -2
  46. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -1
  47. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  48. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  49. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  50. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  51. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  52. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  53. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  54. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  55. package/.output/server/chunks/routes/renderer.mjs +2 -2
  56. package/.output/server/chunks/virtual/entry.mjs +25 -13
  57. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  58. package/.output/server/package.json +1 -1
  59. package/app/composables/workshop/useWorkshopApi.ts +11 -1
  60. package/app/pages/index.vue +72 -0
  61. package/app/pages/logs/index.vue +3 -1
  62. package/app/pages/tokens.vue +3 -1
  63. package/app/pages/workshop/agents.vue +71 -6
  64. package/app/pages/workshop/channel-templates.vue +2 -1
  65. package/app/pages/workshop/teams.vue +24 -2
  66. package/app/plugins/http.ts +4 -3
  67. package/i18n/locales/en.ts +8 -1
  68. package/i18n/locales/zh-CN.ts +8 -1
  69. package/package.json +148 -148
  70. package/scripts/_dbg-harness-e2e.mjs +92 -0
  71. package/scripts/_dbg-harness-ui-dbg.py +49 -0
  72. package/scripts/_dbg-harness-ui-e2e.py +87 -0
  73. package/scripts/_dbg-login-e2e.mjs +26 -0
  74. package/server/api/workshop/harnesses.get.ts +15 -2
  75. package/server/data/dcw-lines.json +14 -0
  76. package/server/data/dcw-rollback.json +6 -6
  77. package/server/data/dcws.json +198 -198
  78. package/server/repositories/user.repository.ts +4 -3
  79. package/server/schemas/user.schema.ts +2 -2
  80. package/server/services/workshop/agents/adapters/line-spawn.ts +3 -2
  81. package/server/services/workshop/agents/harness-availability.ts +127 -0
  82. package/server/services/workshop/agents/registry.ts +21 -0
  83. package/server/services/workshop/runtime/manager.ts +16 -1
  84. package/.output/public/_nuxt/CvYfzHYz.js +0 -1
  85. package/.output/public/_nuxt/D2JyEL28.js +0 -14
  86. package/.output/public/_nuxt/D8xY-Yjc.js +0 -19
  87. package/.output/public/_nuxt/QoCzfpo2.js +0 -1
  88. package/.output/public/_nuxt/agents.CEbox5-D.css +0 -1
  89. package/.output/public/_nuxt/builds/meta/54e22640-4fd0-4fee-9077-31d4d4bb7969.json +0 -1
  90. package/.output/public/_nuxt/channel-templates.De5ZvrGz.css +0 -1
  91. package/.output/public/_nuxt/eUGyJdiT.js +0 -1
  92. package/.output/public/_nuxt/hb_ceMJP.js +0 -1
  93. package/.output/public/_nuxt/logs.BS1sb41K.css +0 -1
  94. package/.output/public/_nuxt/pages.BkE-AfIb.css +0 -1
  95. package/.output/public/_nuxt/teams.CUMnbQGf.css +0 -1
  96. package/.output/public/_nuxt/tokens.rW1xHxRW.css +0 -1
  97. package/.output/server/chunks/build/agents-B10wmFri.mjs.map +0 -1
  98. package/.output/server/chunks/build/channel-templates-CpWxVk5A.mjs.map +0 -1
  99. package/.output/server/chunks/build/pages-BmRUbGUi.mjs.map +0 -1
  100. package/.output/server/chunks/build/teams-CNflUtPh.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/.pnpm/uncrypto@0.1.3/node_modules/uncrypto/dist/crypto.node.mjs","../../../../node_modules/.pnpm/destr@2.0.5/node_modules/destr/dist/index.mjs","../../../../node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs","../../../../node_modules/.pnpm/cookie-es@1.2.3/node_modules/cookie-es/dist/index.mjs","../../../../node_modules/.pnpm/radix3@1.1.2/node_modules/radix3/dist/index.mjs","../../../../node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs","../../../../node_modules/.pnpm/iron-webcrypto@1.2.1/node_modules/iron-webcrypto/dist/index.js","../../../../node_modules/.pnpm/node-mock-http@1.0.5/node_modules/node-mock-http/dist/index.mjs","../../../../node_modules/.pnpm/h3@1.15.11/node_modules/h3/dist/index.mjs","../../../../node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs","../../../../node_modules/.pnpm/node-fetch-native@1.6.7/node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/dist/index.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/shared/ohash.D__AXeF1.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/crypto/node/index.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs","../../../../node_modules/.pnpm/scule@1.3.0/node_modules/scule/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/route-rules-utils.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.5.2_b6375e2fc1335b7cac3be8af25556e69/node_modules/@nuxt/nitro-server/dist/runtime/utils/error.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.5.2_b6375e2fc1335b7cac3be8af25556e69/node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/plugins/oauth.js","../../../../node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/plugin.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.5.2_b6375e2fc1335b7cac3be8af25556e69/node_modules/@nuxt/nitro-server/dist/runtime/utils/paths.mjs","../../../../server/utils/errors.ts","../../../../sdk/hooks.mjs","../../../../sdk/api.mjs","../../../../sdk/context.mjs","../../../../server/services/workshop/plugins/host.mjs","../../../../server/services/workshop/scene-events.ts","../../../../server/services/workshop/ops/ops.ts","../../../../server/utils/approval-gate.ts","../../../../server/utils/auth.ts","../../../../server/utils/config.ts","../../../../server/utils/response.ts","../../../../server/utils/validate.ts","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/utils/session.js","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/plugins/ws.js","../../../../shared/local-time.mjs","../../../../server/plugins/00-local-time.ts","../../../../server/plugins/aw-plugins.ts","../../../../shared/config/home.mjs","../../../../shared/config/engine.mjs","../../../../server/services/workshop/settings.ts","../../../../server/services/workshop/db/backup-registry.ts","../../../../server/plugins/backup.ts","../../../../server/services/workshop/logger.ts","../../../../server/services/workshop/daq/infra.ts","../../../../server/services/workshop/daq/storage/sqlite.adapter.ts","../../../../server/services/workshop/daq/storage/timescale.adapter.ts","../../../../server/services/workshop/daq/storage/index.ts","../../../../server/services/workshop/daq/objectstore/disk.adapter.ts","../../../../server/services/workshop/daq/objectstore/minio.adapter.ts","../../../../server/services/workshop/daq/objectstore/index.ts","../../../../server/services/workshop/daq/bus/inproc.adapter.ts","../../../../server/services/workshop/daq/bus/mqtt.adapter.ts","../../../../server/services/workshop/daq/bus/index.ts","../../../../server/services/system-config.ts","../../../../shared/daq-protocol.ts","../../../../server/services/workshop/daq/png-enc.ts","../../../../server/services/workshop/daq/drivers.ts","../../../../server/services/workshop/json-store.mjs","../../../../server/services/workshop/daq/daq-templates.ts","../../../../server/services/workshop/daq/daq-node.ts","../../../../server/services/workshop/daq/daq-runtime.ts","../../../../server/services/workshop/daq/daq-node.repo.ts","../../../../server/services/workshop/daq/host-ports.ts","../../../../server/services/workshop/daq/frames.ts","../../../../server/services/workshop/daq/objectstore/objectstore-port.ts","../../../../server/services/workshop/daq/alarm-notify.ts","../../../../server/services/workshop/daq/plugin-bridge.ts","../../../../server/services/workshop/daq/daq-controller.ts","../../../../server/plugins/daq.ts","../../../../server/plugins/dev-stability-guard.ts","../../../../server/services/workshop/db/retention.ts","../../../../server/plugins/retention.ts","../../../../server/plugins/security.ts","../../../../server/plugins/system-config.ts","../../../../server/services/workshop/db/database.ts","../../../../server/services/workshop/db/channel.repo.ts","../../../../server/services/workshop/db/agent.repo.ts","../../../../server/services/workshop/db/channel-agent.repo.ts","../../../../server/services/workshop/db/team.repo.ts","../../../../server/services/workshop/db/team-member.repo.ts","../../../../server/services/workshop/db/channel-template.repo.ts","../../../../server/services/workshop/db/task.repo.ts","../../../../server/services/workshop/db/message.repo.ts","../../../../server/services/workshop/db/subscription.repo.ts","../../../../server/services/workshop/db/memory.repo.ts","../../../../server/services/workshop/db/user.repo.ts","../../../../server/services/workshop/db/channel-event.repo.ts","../../../../server/services/workshop/db/ops.repo.ts","../../../../server/services/workshop/agents/hitl-registry.ts","../../../../server/repositories/user.repository.ts","../../../../server/services/user.service.ts","../../../../server/services/workshop/runtime/mailbox.ts","../../../../server/services/workshop/permissions.ts","../../../../server/api/workshop/ws.ts","../../../../server/services/workshop/runtime/execution-mode.ts","../../../../server/services/workshop/agents/mock-agent.ts","../../../../server/services/workshop/agents/harness-process.ts","../../../../server/services/workshop/agents/adapters/omp-rpc-client.ts","../../../../shared/terminal-protocol.ts","../../../../server/services/workshop/agents/harness-terminal.ts","../../../../server/services/workshop/prompts/loader.ts","../../../../server/services/workshop/agents/node-bindings.repo.ts","../../../../server/services/workshop/agents/tool-approvals.ts","../../../../shared/dcw-protocol.ts","../../../../server/services/workshop/dcw/drivers.ts","../../../../server/services/workshop/dcw/dcw-templates.ts","../../../../server/services/workshop/assets/device-twin.repo.ts","../../../../server/services/workshop/dcw/dcw-node.ts","../../../../server/services/workshop/dcw/dcw-node.repo.ts","../../../../server/services/workshop/dcw/dcw-runtime.ts","../../../../server/services/workshop/dcw/dcw-product.repo.ts","../../../../server/services/workshop/dcw/dcw-recipe.repo.ts","../../../../server/services/workshop/dcw/dcw-line.repo.ts","../../../../server/services/workshop/dcw/line-run.ts","../../../../server/services/workshop/dcw/recipe-rollback.repo.ts","../../../../server/services/workshop/dcw/recipe-rollback-manager.ts","../../../../server/services/workshop/dcw/dcw-controller.ts","../../../../server/services/workshop/agents/industrial-context.ts","../../../../server/services/workshop/agents/industrial-tools.ts","../../../../server/services/workshop/agents/plugin-tools.ts","../../../../server/services/workshop/agents/host-tool-bridge.ts","../../../../server/services/workshop/agents/prompt-builder.ts","../../../../server/services/workshop/agents/omp-agent.ts","../../../../server/services/workshop/agents/claude-agent.ts","../../../../server/services/workshop/agents/adapters/line-spawn.ts","../../../../server/services/workshop/agents/harness-env.ts","../../../../server/services/workshop/agents/opencode-agent.ts","../../../../server/services/workshop/agents/adapters/stdio-jsonrpc.ts","../../../../server/services/workshop/agents/codex-agent.ts","../../../../server/services/workshop/agents/dsh-agent.ts","../../../../server/services/workshop/agents/registry.ts","../../../../server/services/workshop/agents/factory.ts","../../../../server/services/workshop/types/task.ts","../../../../server/services/workshop/runtime/agent-runtime.ts","../../../../server/services/workshop/runtime/channel-runtime.ts","../../../../server/services/workshop/runtime/scheduler-loop.ts","../../../../server/services/workshop/runtime/task-engine.ts","../../../../server/services/workshop/runtime/memory.ts","../../../../server/services/workshop/runtime/embedding-provider.ts","../../../../server/services/workshop/runtime/manager.ts","../../../../server/plugins/workshop.ts","../../../../node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../server/middleware/request-log.ts","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/api/session.delete.js","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/api/session.get.js","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/shutdown.mjs"],"names":["decode","getQuery","parse","serialize","createRouter","f","h","c","i","l","g","p","createError","process","mergeHeaders","crypto","flatHooks","createTask","serialTaskCaller","parallelTaskCaller","callEachWith","createHooks","Hookable","s","callHooks","nodeFetch","fetch","Headers","Headers$1","AbortController","AbortController$1","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","_inlineAppConfig","createRadixRouter","__publicField","permissions","userRepository","log","watch","AEP_VERSION","randomUUID","cache","registry","copyFileAsync","state","_a","DB_PATH","rows","pointsFromMeta","asObject","_b","_c","_d","makeFallback","writeFile","readFile","reqNative","modbusRead","sleep","REGISTRY","bad","load","normalize","pubMs","now","allowPublish","singleton","num","attached","require","SCHEMA_SQL","COLS","randomPassword","randomBytes","hubGlobal","hub","criteria","worker","frame","save","DATA_DIR","COOLDOWN_MS","_e","fresh","partsToText","buildContextPrefix","pid","launchChildProcess","seen","modeInfo","rowToTask","TaskEngineImpl","callNodeRequestHandler","fetchNodeRequestHandler","gracefulShutdown"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,51,52,160,161,163,164,165,166,167]}
1
+ {"version":3,"file":"nitro.mjs","sources":["../../../../node_modules/.pnpm/uncrypto@0.1.3/node_modules/uncrypto/dist/crypto.node.mjs","../../../../node_modules/.pnpm/destr@2.0.5/node_modules/destr/dist/index.mjs","../../../../node_modules/.pnpm/ufo@1.6.4/node_modules/ufo/dist/index.mjs","../../../../node_modules/.pnpm/cookie-es@1.2.3/node_modules/cookie-es/dist/index.mjs","../../../../node_modules/.pnpm/radix3@1.1.2/node_modules/radix3/dist/index.mjs","../../../../node_modules/.pnpm/defu@6.1.7/node_modules/defu/dist/defu.mjs","../../../../node_modules/.pnpm/iron-webcrypto@1.2.1/node_modules/iron-webcrypto/dist/index.js","../../../../node_modules/.pnpm/node-mock-http@1.0.5/node_modules/node-mock-http/dist/index.mjs","../../../../node_modules/.pnpm/h3@1.15.11/node_modules/h3/dist/index.mjs","../../../../node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs","../../../../node_modules/.pnpm/node-fetch-native@1.6.7/node_modules/node-fetch-native/dist/native.mjs","../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/shared/ofetch.CWycOUEr.mjs","../../../../node_modules/.pnpm/ofetch@1.5.1/node_modules/ofetch/dist/node.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/dist/shared/unstorage.zVDD2mZo.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/dist/index.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/drivers/utils/index.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/drivers/utils/node-fs.mjs","../../../../node_modules/.pnpm/unstorage@1.17.5_db0@0.3.4_ioredis@5.11.1/node_modules/unstorage/drivers/fs-lite.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/storage.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/shared/ohash.D__AXeF1.mjs","../../../../node_modules/.pnpm/ohash@2.0.11/node_modules/ohash/dist/crypto/node/index.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/hash.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/cache.mjs","../../../../node_modules/.pnpm/klona@2.0.6/node_modules/klona/dist/index.mjs","../../../../node_modules/.pnpm/scule@1.3.0/node_modules/scule/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/utils.env.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/config.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/route-rules-utils.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/route-rules.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/utils.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.5.2_b6375e2fc1335b7cac3be8af25556e69/node_modules/@nuxt/nitro-server/dist/runtime/utils/error.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.5.2_b6375e2fc1335b7cac3be8af25556e69/node_modules/@nuxt/nitro-server/dist/runtime/handlers/error.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/error/utils.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/error/prod.mjs","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/plugins/oauth.js","../../../../node_modules/.pnpm/hookable@6.1.1/node_modules/hookable/dist/index.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/plugin.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/renderer.mjs","../../../../node_modules/.pnpm/@nuxt+nitro-server@4.5.2_b6375e2fc1335b7cac3be8af25556e69/node_modules/@nuxt/nitro-server/dist/runtime/utils/paths.mjs","../../../../server/utils/errors.ts","../../../../sdk/hooks.mjs","../../../../sdk/api.mjs","../../../../sdk/context.mjs","../../../../server/services/workshop/plugins/host.mjs","../../../../server/services/workshop/scene-events.ts","../../../../server/services/workshop/ops/ops.ts","../../../../server/utils/approval-gate.ts","../../../../server/utils/auth.ts","../../../../server/utils/config.ts","../../../../server/utils/response.ts","../../../../server/utils/validate.ts","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/utils/session.js","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/plugins/ws.js","../../../../shared/local-time.mjs","../../../../server/plugins/00-local-time.ts","../../../../server/plugins/aw-plugins.ts","../../../../shared/config/home.mjs","../../../../shared/config/engine.mjs","../../../../server/services/workshop/settings.ts","../../../../server/services/workshop/db/backup-registry.ts","../../../../server/plugins/backup.ts","../../../../server/services/workshop/logger.ts","../../../../server/services/workshop/daq/infra.ts","../../../../server/services/workshop/daq/storage/sqlite.adapter.ts","../../../../server/services/workshop/daq/storage/timescale.adapter.ts","../../../../server/services/workshop/daq/storage/index.ts","../../../../server/services/workshop/daq/objectstore/disk.adapter.ts","../../../../server/services/workshop/daq/objectstore/minio.adapter.ts","../../../../server/services/workshop/daq/objectstore/index.ts","../../../../server/services/workshop/daq/bus/inproc.adapter.ts","../../../../server/services/workshop/daq/bus/mqtt.adapter.ts","../../../../server/services/workshop/daq/bus/index.ts","../../../../server/services/system-config.ts","../../../../shared/daq-protocol.ts","../../../../server/services/workshop/daq/png-enc.ts","../../../../server/services/workshop/daq/drivers.ts","../../../../server/services/workshop/json-store.mjs","../../../../server/services/workshop/daq/daq-templates.ts","../../../../server/services/workshop/daq/daq-node.ts","../../../../server/services/workshop/daq/daq-runtime.ts","../../../../server/services/workshop/daq/daq-node.repo.ts","../../../../server/services/workshop/daq/host-ports.ts","../../../../server/services/workshop/daq/frames.ts","../../../../server/services/workshop/daq/objectstore/objectstore-port.ts","../../../../server/services/workshop/daq/alarm-notify.ts","../../../../server/services/workshop/daq/plugin-bridge.ts","../../../../server/services/workshop/daq/daq-controller.ts","../../../../server/plugins/daq.ts","../../../../server/plugins/dev-stability-guard.ts","../../../../server/services/workshop/db/retention.ts","../../../../server/plugins/retention.ts","../../../../server/plugins/security.ts","../../../../server/plugins/system-config.ts","../../../../server/services/workshop/db/database.ts","../../../../server/services/workshop/db/channel.repo.ts","../../../../server/services/workshop/db/agent.repo.ts","../../../../server/services/workshop/db/channel-agent.repo.ts","../../../../server/services/workshop/db/team.repo.ts","../../../../server/services/workshop/db/team-member.repo.ts","../../../../server/services/workshop/db/channel-template.repo.ts","../../../../server/services/workshop/db/task.repo.ts","../../../../server/services/workshop/db/message.repo.ts","../../../../server/services/workshop/db/subscription.repo.ts","../../../../server/services/workshop/db/memory.repo.ts","../../../../server/services/workshop/db/user.repo.ts","../../../../server/services/workshop/db/channel-event.repo.ts","../../../../server/services/workshop/db/ops.repo.ts","../../../../server/services/workshop/agents/hitl-registry.ts","../../../../server/repositories/user.repository.ts","../../../../server/services/user.service.ts","../../../../server/services/workshop/runtime/mailbox.ts","../../../../server/services/workshop/permissions.ts","../../../../server/api/workshop/ws.ts","../../../../server/services/workshop/runtime/execution-mode.ts","../../../../server/services/workshop/agents/mock-agent.ts","../../../../server/services/workshop/agents/harness-process.ts","../../../../server/services/workshop/agents/adapters/omp-rpc-client.ts","../../../../shared/terminal-protocol.ts","../../../../server/services/workshop/agents/harness-terminal.ts","../../../../server/services/workshop/prompts/loader.ts","../../../../server/services/workshop/agents/node-bindings.repo.ts","../../../../server/services/workshop/agents/tool-approvals.ts","../../../../shared/dcw-protocol.ts","../../../../server/services/workshop/dcw/drivers.ts","../../../../server/services/workshop/dcw/dcw-templates.ts","../../../../server/services/workshop/assets/device-twin.repo.ts","../../../../server/services/workshop/dcw/dcw-node.ts","../../../../server/services/workshop/dcw/dcw-node.repo.ts","../../../../server/services/workshop/dcw/dcw-runtime.ts","../../../../server/services/workshop/dcw/dcw-product.repo.ts","../../../../server/services/workshop/dcw/dcw-recipe.repo.ts","../../../../server/services/workshop/dcw/dcw-line.repo.ts","../../../../server/services/workshop/dcw/line-run.ts","../../../../server/services/workshop/dcw/recipe-rollback.repo.ts","../../../../server/services/workshop/dcw/recipe-rollback-manager.ts","../../../../server/services/workshop/dcw/dcw-controller.ts","../../../../server/services/workshop/agents/industrial-context.ts","../../../../server/services/workshop/agents/industrial-tools.ts","../../../../server/services/workshop/agents/plugin-tools.ts","../../../../server/services/workshop/agents/host-tool-bridge.ts","../../../../server/services/workshop/agents/prompt-builder.ts","../../../../server/services/workshop/agents/omp-agent.ts","../../../../server/services/workshop/agents/claude-agent.ts","../../../../server/services/workshop/agents/adapters/line-spawn.ts","../../../../server/services/workshop/agents/harness-env.ts","../../../../server/services/workshop/agents/opencode-agent.ts","../../../../server/services/workshop/agents/adapters/stdio-jsonrpc.ts","../../../../server/services/workshop/agents/codex-agent.ts","../../../../server/services/workshop/agents/dsh-agent.ts","../../../../server/services/workshop/agents/registry.ts","../../../../server/services/workshop/agents/factory.ts","../../../../server/services/workshop/types/task.ts","../../../../server/services/workshop/runtime/agent-runtime.ts","../../../../server/services/workshop/runtime/channel-runtime.ts","../../../../server/services/workshop/runtime/scheduler-loop.ts","../../../../server/services/workshop/runtime/task-engine.ts","../../../../server/services/workshop/runtime/memory.ts","../../../../server/services/workshop/runtime/embedding-provider.ts","../../../../server/services/workshop/agents/harness-availability.ts","../../../../server/services/workshop/runtime/manager.ts","../../../../server/plugins/workshop.ts","../../../../node_modules/.pnpm/pathe@2.0.3/node_modules/pathe/dist/shared/pathe.M-eThtNZ.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/static.mjs","../../../../server/middleware/request-log.ts","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/api/session.delete.js","../../../../node_modules/.pnpm/nuxt-auth-utils@0.5.30_magi_25cfea03c37d60c613297752f2919dae/node_modules/nuxt-auth-utils/dist/runtime/server/api/session.get.js","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/app.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/lib/http-graceful-shutdown.mjs","../../../../node_modules/.pnpm/nitropack@2.13.4_oxc-parser_1ea3e01e591cb0fd9b154d63486cc9e1/node_modules/nitropack/dist/runtime/internal/shutdown.mjs"],"names":["decode","getQuery","parse","serialize","createRouter","f","h","c","i","l","g","p","createError","process","mergeHeaders","crypto","flatHooks","createTask","serialTaskCaller","parallelTaskCaller","callEachWith","createHooks","Hookable","s","callHooks","nodeFetch","fetch","Headers","Headers$1","AbortController","AbortController$1","normalizeKey","defineDriver","DRIVER_NAME","dirname","fsPromises","resolve","fsp","_inlineAppConfig","createRadixRouter","__publicField","permissions","userRepository","log","watch","AEP_VERSION","randomUUID","cache","registry","copyFileAsync","state","_a","DB_PATH","rows","pointsFromMeta","asObject","_b","_c","_d","makeFallback","writeFile","readFile","reqNative","modbusRead","sleep","REGISTRY","bad","load","normalize","pubMs","now","allowPublish","singleton","num","attached","require","SCHEMA_SQL","COLS","randomPassword","randomBytes","hubGlobal","hub","criteria","worker","frame","save","DATA_DIR","COOLDOWN_MS","_e","fresh","partsToText","buildContextPrefix","pid","launchChildProcess","seen","modeInfo","rowToTask","TaskEngineImpl","callNodeRequestHandler","fetchNodeRequestHandler","gracefulShutdown"],"mappings":"","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,51,52,161,162,164,165,166,167,168]}
@@ -22,7 +22,7 @@ const userRegisterSchema = z.object({
22
22
  password: passwordSchema
23
23
  });
24
24
  const userLoginSchema = z.object({
25
- email: z.string().trim().email("\u90AE\u7BB1\u683C\u5F0F\u4E0D\u6B63\u786E").max(128, "\u90AE\u7BB1\u8FC7\u957F"),
25
+ email: z.string().trim().min(1, "\u8BF7\u8F93\u5165\u90AE\u7BB1\u6216\u7528\u6237\u540D").max(128, "\u8FC7\u957F"),
26
26
  password: z.string().min(1, "\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A").max(128, "\u5BC6\u7801\u8FC7\u957F")
27
27
  });
28
28
  const userTokenCreateSchema = z.object({
@@ -1 +1 @@
1
- {"version":3,"file":"user.schema.mjs","sources":["../../../../server/schemas/user.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.schema.mjs","sources":["../../../../server/schemas/user.schema.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ import { u as useDaqStream } from './useDaqStream-BkmyQT06.mjs';
9
9
  import { u as useDeviceTwins } from './useDeviceTwins-34WGk9aN.mjs';
10
10
  import { shallowRef, ref, computed, toValue, watch, nextTick, defineComponent, reactive, mergeProps, unref, readonly, getCurrentScope, onScopeDispose, getCurrentInstance, toRef, customRef, useSSRContext } from 'vue';
11
11
  import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrRenderClass, ssrIncludeBooleanAttr, ssrRenderComponent, ssrRenderList, ssrRenderStyle, ssrLooseContain, ssrLooseEqual } from 'vue/server-renderer';
12
- import { a$ as DAQ_TEMPLATES } from '../_/nitro.mjs';
12
+ import { b0 as DAQ_TEMPLATES } from '../_/nitro.mjs';
13
13
  import * as THREE from 'three';
14
14
  import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
15
15
  import { RoomEnvironment } from 'three/examples/jsm/environments/RoomEnvironment.js';
@@ -5,7 +5,7 @@ import { u as useDeviceTwins } from './useDeviceTwins-34WGk9aN.mjs';
5
5
  import { defineComponent, computed, watch, ref, reactive, mergeProps, withCtx, createTextVNode, toDisplayString, unref, useSSRContext } from 'vue';
6
6
  import { useRoute } from 'vue-router';
7
7
  import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderClass, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderAttr, ssrRenderStyle, ssrRenderDynamicModel } from 'vue/server-renderer';
8
- import { b1 as daqKeyFromRef, b2 as DAQ_DRIVERS } from '../_/nitro.mjs';
8
+ import { b2 as daqKeyFromRef, b3 as DAQ_DRIVERS } from '../_/nitro.mjs';
9
9
  import 'unhead/utils';
10
10
  import '../routes/renderer.mjs';
11
11
  import 'unhead/server';
@@ -7,7 +7,7 @@ import { u as useDeviceTwins } from './useDeviceTwins-34WGk9aN.mjs';
7
7
  import { defineComponent, computed, ref, reactive, unref, mergeProps, withCtx, createTextVNode, toDisplayString, createVNode, openBlock, createBlock, Fragment, renderList, createCommentVNode, withDirectives, vModelText, useSSRContext } from 'vue';
8
8
  import { useRoute } from 'vue-router';
9
9
  import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent, ssrRenderStyle, ssrRenderClass, ssrRenderAttr, ssrRenderList, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderDynamicModel } from 'vue/server-renderer';
10
- import { b3 as DCW_DRIVERS } from '../_/nitro.mjs';
10
+ import { b4 as DCW_DRIVERS } from '../_/nitro.mjs';
11
11
  import 'unhead/utils';
12
12
  import '../routes/renderer.mjs';
13
13
  import 'unhead/server';
@@ -12,7 +12,7 @@ import { s as switch_default } from './switch-CelRXpcy.mjs';
12
12
  import { a as apiErrorMessage } from './api-error-dul30BYQ.mjs';
13
13
  import { u as useWorkshopApi } from './useWorkshopApi-D2gq06N2.mjs';
14
14
  import { defineComponent, ref, computed, reactive, mergeProps, withCtx, unref, createTextVNode, toDisplayString, createVNode, isRef, openBlock, createBlock, createCommentVNode, Fragment, renderList, useSSRContext } from 'vue';
15
- import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent, ssrRenderClass, ssrRenderList } from 'vue/server-renderer';
15
+ import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent, ssrRenderClass, ssrRenderAttr, ssrRenderList } from 'vue/server-renderer';
16
16
  import '../_/nitro.mjs';
17
17
  import 'node:crypto';
18
18
  import 'node:http';
@@ -79,7 +79,6 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
79
79
  loading.value = false;
80
80
  }
81
81
  };
82
- load();
83
82
  const filter = ref("all");
84
83
  const filterOptions = computed(() => {
85
84
  const opts = [
@@ -133,6 +132,8 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
133
132
  };
134
133
  };
135
134
  const harnesses = ref([]);
135
+ const harnessById = computed(() => new Map(harnesses.value.map((h) => [h.id, h])));
136
+ const isUnavailable = (id) => harnessById.value.get(id)?.available === false;
136
137
  const harnessOptions = computed(() => (harnesses.value.length > 0 ? harnesses.value : [
137
138
  {
138
139
  id: "mock",
@@ -173,10 +174,14 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
173
174
  compact: false
174
175
  }
175
176
  }
176
- ]).map((h) => ({
177
- value: h.id,
178
- label: h.label
179
- })));
177
+ ]).map((h) => {
178
+ const unavailable = h.available === false;
179
+ return {
180
+ value: h.id,
181
+ label: unavailable ? `${h.label}(${tt("agents.notInstalled")})` : h.label,
182
+ disabled: unavailable
183
+ };
184
+ }));
180
185
  const capBadges = (id) => {
181
186
  const caps = harnesses.value.find((h) => h.id === id)?.capabilities;
182
187
  if (!caps) return [];
@@ -187,13 +192,6 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
187
192
  if (caps.compact) out.push("compact");
188
193
  return out;
189
194
  };
190
- const loadHarnesses = async () => {
191
- try {
192
- const list = (await api$1$1.listHarnesses())?.data?.harnesses;
193
- if (Array.isArray(list) && list.length > 0) harnesses.value = list;
194
- } catch {}
195
- };
196
- loadHarnesses();
197
195
  const editOpen = ref(false);
198
196
  const editing = ref(null);
199
197
  const form = reactive({
@@ -226,6 +224,10 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
226
224
  api$1.error("config 不是合法 JSON");
227
225
  return;
228
226
  }
227
+ if (isUnavailable(form.harness)) {
228
+ api$1.error(harnessById.value.get(form.harness)?.error ?? tt("agents.notInstalled"));
229
+ return;
230
+ }
229
231
  try {
230
232
  if (editing.value) {
231
233
  await api$1$1.updateTemplate(editing.value.id, {
@@ -287,7 +289,7 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
287
289
  const _component_a_radio_group = Group_default;
288
290
  const _component_a_radio = radio_default;
289
291
  const _component_a_textarea = TextArea_default;
290
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-ef707fbe><div class="head" data-v-ef707fbe><div data-v-ef707fbe><h2 data-v-ef707fbe>Agent ${ssrInterpolate(_ctx.$t("agents.k3pa5h4025"))}</h2><p class="sub" data-v-ef707fbe>${ssrInterpolate(_ctx.$t("agents.k5nsz7y008"))}</p></div>`);
292
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "page" }, _attrs))} data-v-d7a5c98d><div class="head" data-v-d7a5c98d><div data-v-d7a5c98d><h2 data-v-d7a5c98d>Agent ${ssrInterpolate(_ctx.$t("agents.k3pa5h4025"))}</h2><p class="sub" data-v-d7a5c98d>${ssrInterpolate(_ctx.$t("agents.k5nsz7y008"))}</p></div>`);
291
293
  _push(ssrRenderComponent(_component_a_space, null, {
292
294
  default: withCtx((_, _push, _parent, _scopeId) => {
293
295
  if (_push) {
@@ -321,14 +323,14 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
321
323
  }),
322
324
  _: 1
323
325
  }, _parent));
324
- _push(`</div><div class="toolbar" data-v-ef707fbe>`);
326
+ _push(`</div><div class="toolbar" data-v-d7a5c98d>`);
325
327
  _push(ssrRenderComponent(_component_a_segmented, {
326
328
  value: unref(filter),
327
329
  "onUpdate:value": ($event) => isRef(filter) ? filter.value = $event : null,
328
330
  size: "small",
329
331
  options: unref(filterOptions)
330
332
  }, null, _parent));
331
- if (unref(userStore).isAdmin) _push(`<span class="admin-note" data-v-ef707fbe><span class="i-tabler-shield-check" data-v-ef707fbe></span> ${ssrInterpolate(_ctx.$t("agents.ka1gpdj011"))}</span>`);
333
+ if (unref(userStore).isAdmin) _push(`<span class="admin-note" data-v-d7a5c98d><span class="i-tabler-shield-check" data-v-d7a5c98d></span> ${ssrInterpolate(_ctx.$t("agents.ka1gpdj011"))}</span>`);
332
334
  else _push(`<!---->`);
333
335
  _push(`</div>`);
334
336
  _push(ssrRenderComponent(_component_a_table, {
@@ -342,7 +344,7 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
342
344
  if (_push) {
343
345
  _push(`<!--[-->`);
344
346
  ssrRenderList(record.instances, (inst) => {
345
- _push(`<div class="inst" data-v-ef707fbe${_scopeId}>`);
347
+ _push(`<div class="inst" data-v-d7a5c98d${_scopeId}>`);
346
348
  _push(ssrRenderComponent(_component_a_tag, { color: inst.role === "lead" ? "gold" : "blue" }, {
347
349
  default: withCtx((_, _push, _parent, _scopeId) => {
348
350
  if (_push) _push(`${ssrInterpolate(inst.role)}`);
@@ -350,10 +352,10 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
350
352
  }),
351
353
  _: 2
352
354
  }, _parent, _scopeId));
353
- _push(`<span class="inst-id" data-v-ef707fbe${_scopeId}>${ssrInterpolate(inst.id.slice(0, 8))}</span><span class="inst-ch" data-v-ef707fbe${_scopeId}>channel ${ssrInterpolate(inst.channelId.slice(0, 8))}</span></div>`);
355
+ _push(`<span class="inst-id" data-v-d7a5c98d${_scopeId}>${ssrInterpolate(inst.id.slice(0, 8))}</span><span class="inst-ch" data-v-d7a5c98d${_scopeId}>channel ${ssrInterpolate(inst.channelId.slice(0, 8))}</span></div>`);
354
356
  });
355
357
  _push(`<!--]-->`);
356
- if (record.instances.length === 0) _push(`<div class="empty" data-v-ef707fbe${_scopeId}>${ssrInterpolate(_ctx.$t("agents.k1d036zs014"))}</div>`);
358
+ if (record.instances.length === 0) _push(`<div class="empty" data-v-d7a5c98d${_scopeId}>${ssrInterpolate(_ctx.$t("agents.k1d036zs014"))}</div>`);
357
359
  else _push(`<!---->`);
358
360
  } else return [(openBlock(true), createBlock(Fragment, null, renderList(record.instances, (inst) => {
359
361
  return openBlock(), createBlock("div", {
@@ -379,7 +381,7 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
379
381
  "data-index": "name"
380
382
  }, {
381
383
  default: withCtx(({ record }, _push, _parent, _scopeId) => {
382
- if (_push) _push(`<span class="tpl-name" data-v-ef707fbe${_scopeId}><span class="i-tabler-user-square" data-v-ef707fbe${_scopeId}></span> ${ssrInterpolate(record.name)}</span>`);
384
+ if (_push) _push(`<span class="tpl-name" data-v-d7a5c98d${_scopeId}><span class="i-tabler-user-square" data-v-d7a5c98d${_scopeId}></span> ${ssrInterpolate(record.name)}</span>`);
383
385
  else return [createVNode("span", { class: "tpl-name" }, [createVNode("span", { class: "i-tabler-user-square" }), createTextVNode(" " + toDisplayString(record.name), 1)])];
384
386
  }),
385
387
  _: 1
@@ -387,8 +389,28 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
387
389
  _push(ssrRenderComponent(_component_a_table_column, {
388
390
  title: "harness",
389
391
  "data-index": "harness",
390
- width: 100
391
- }, null, _parent, _scopeId));
392
+ width: 120
393
+ }, {
394
+ default: withCtx(({ record }, _push, _parent, _scopeId) => {
395
+ if (_push) {
396
+ _push(`<span class="${ssrRenderClass([{ off: isUnavailable(record.harness) }, "h-cell"])}"${ssrRenderAttr("title", isUnavailable(record.harness) ? unref(harnessById).get(record.harness)?.error ?? "" : unref(harnessById).get(record.harness)?.resolvedPath ?? "")} data-v-d7a5c98d${_scopeId}><span class="h-dot" data-v-d7a5c98d${_scopeId}></span>${ssrInterpolate(record.harness)}`);
397
+ if (isUnavailable(record.harness)) _push(`<span class="h-miss" data-v-d7a5c98d${_scopeId}>(${ssrInterpolate(unref(tt)("agents.notInstalled"))})</span>`);
398
+ else _push(`<!---->`);
399
+ _push(`</span>`);
400
+ } else return [createVNode("span", {
401
+ class: ["h-cell", { off: isUnavailable(record.harness) }],
402
+ title: isUnavailable(record.harness) ? unref(harnessById).get(record.harness)?.error ?? "" : unref(harnessById).get(record.harness)?.resolvedPath ?? ""
403
+ }, [
404
+ createVNode("span", { class: "h-dot" }),
405
+ createTextVNode(toDisplayString(record.harness), 1),
406
+ isUnavailable(record.harness) ? (openBlock(), createBlock("span", {
407
+ key: 0,
408
+ class: "h-miss"
409
+ }, "(" + toDisplayString(unref(tt)("agents.notInstalled")) + ")", 1)) : createCommentVNode("", true)
410
+ ], 10, ["title"])];
411
+ }),
412
+ _: 1
413
+ }, _parent, _scopeId));
392
414
  _push(ssrRenderComponent(_component_a_table_column, {
393
415
  title: _ctx.$t("agents.k3lrqn0002"),
394
416
  width: 120
@@ -401,7 +423,7 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
401
423
  }, {
402
424
  default: withCtx((_, _push, _parent, _scopeId) => {
403
425
  if (_push) {
404
- if (visTag(record).icon) _push(`<span class="${ssrRenderClass(visTag(record).icon)}" data-v-ef707fbe${_scopeId}></span>`);
426
+ if (visTag(record).icon) _push(`<span class="${ssrRenderClass(visTag(record).icon)}" data-v-d7a5c98d${_scopeId}></span>`);
405
427
  else _push(`<!---->`);
406
428
  _push(`${ssrInterpolate(visTag(record).text)}`);
407
429
  } else return [visTag(record).icon ? (openBlock(), createBlock("span", {
@@ -450,7 +472,7 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
450
472
  width: 130
451
473
  }, {
452
474
  default: withCtx(({ record }, _push, _parent, _scopeId) => {
453
- if (_push) _push(`<span class="owner" data-v-ef707fbe${_scopeId}>${ssrInterpolate(record.ownerName ?? record.ownerUserId?.slice(0, 8) ?? "-")}</span>`);
475
+ if (_push) _push(`<span class="owner" data-v-d7a5c98d${_scopeId}>${ssrInterpolate(record.ownerName ?? record.ownerUserId?.slice(0, 8) ?? "-")}</span>`);
454
476
  else return [createVNode("span", { class: "owner" }, toDisplayString(record.ownerName ?? record.ownerUserId?.slice(0, 8) ?? "-"), 1)];
455
477
  }),
456
478
  _: 1
@@ -630,7 +652,20 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
630
652
  createVNode(_component_a_table_column, {
631
653
  title: "harness",
632
654
  "data-index": "harness",
633
- width: 100
655
+ width: 120
656
+ }, {
657
+ default: withCtx(({ record }) => [createVNode("span", {
658
+ class: ["h-cell", { off: isUnavailable(record.harness) }],
659
+ title: isUnavailable(record.harness) ? unref(harnessById).get(record.harness)?.error ?? "" : unref(harnessById).get(record.harness)?.resolvedPath ?? ""
660
+ }, [
661
+ createVNode("span", { class: "h-dot" }),
662
+ createTextVNode(toDisplayString(record.harness), 1),
663
+ isUnavailable(record.harness) ? (openBlock(), createBlock("span", {
664
+ key: 0,
665
+ class: "h-miss"
666
+ }, "(" + toDisplayString(unref(tt)("agents.notInstalled")) + ")", 1)) : createCommentVNode("", true)
667
+ ], 10, ["title"])]),
668
+ _: 1
634
669
  }),
635
670
  createVNode(_component_a_table_column, {
636
671
  title: _ctx.$t("agents.k3lrqn0002"),
@@ -770,30 +805,49 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
770
805
  "onUpdate:value": ($event) => unref(form).harness = $event,
771
806
  options: unref(harnessOptions)
772
807
  }, null, _parent, _scopeId));
808
+ if (unref(harnesses).length > 0) {
809
+ _push(`<div class="${ssrRenderClass([{ off: isUnavailable(unref(form).harness) }, "harness-status"])}" data-v-d7a5c98d${_scopeId}>`);
810
+ if (isUnavailable(unref(form).harness)) _push(`<!--[--><span class="i-tabler-plug-off" data-v-d7a5c98d${_scopeId}></span> ${ssrInterpolate(unref(harnessById).get(unref(form).harness)?.error)}<!--]-->`);
811
+ else if (unref(harnessById).get(unref(form).harness)?.inprocess) _push(`<!--[--><span class="i-tabler-plug-connected" data-v-d7a5c98d${_scopeId}></span> ${ssrInterpolate(unref(tt)("agents.harnessInprocess"))}<!--]-->`);
812
+ else if (unref(harnessById).get(unref(form).harness)?.resolvedPath) _push(`<!--[--><span class="i-tabler-plug-connected" data-v-d7a5c98d${_scopeId}></span> <span class="mono" data-v-d7a5c98d${_scopeId}>${ssrInterpolate(unref(harnessById).get(unref(form).harness)?.resolvedPath)}</span><!--]-->`);
813
+ else _push(`<!---->`);
814
+ _push(`</div>`);
815
+ } else _push(`<!---->`);
773
816
  if (capBadges(unref(form).harness).length) {
774
- _push(`<div class="harness-caps" data-v-ef707fbe${_scopeId}><!--[-->`);
817
+ _push(`<div class="harness-caps" data-v-d7a5c98d${_scopeId}><!--[-->`);
775
818
  ssrRenderList(capBadges(unref(form).harness), (b) => {
776
- _push(`<span class="harness-cap" data-v-ef707fbe${_scopeId}>${ssrInterpolate(b)}</span>`);
819
+ _push(`<span class="harness-cap" data-v-d7a5c98d${_scopeId}>${ssrInterpolate(b)}</span>`);
777
820
  });
778
821
  _push(`<!--]--></div>`);
779
822
  } else _push(`<!---->`);
780
- } else return [createVNode(_component_a_select, {
781
- value: unref(form).harness,
782
- "onUpdate:value": ($event) => unref(form).harness = $event,
783
- options: unref(harnessOptions)
784
- }, null, 8, [
785
- "value",
786
- "onUpdate:value",
787
- "options"
788
- ]), capBadges(unref(form).harness).length ? (openBlock(), createBlock("div", {
789
- key: 0,
790
- class: "harness-caps"
791
- }, [(openBlock(true), createBlock(Fragment, null, renderList(capBadges(unref(form).harness), (b) => {
792
- return openBlock(), createBlock("span", {
793
- key: b,
794
- class: "harness-cap"
795
- }, toDisplayString(b), 1);
796
- }), 128))])) : createCommentVNode("", true)];
823
+ } else return [
824
+ createVNode(_component_a_select, {
825
+ value: unref(form).harness,
826
+ "onUpdate:value": ($event) => unref(form).harness = $event,
827
+ options: unref(harnessOptions)
828
+ }, null, 8, [
829
+ "value",
830
+ "onUpdate:value",
831
+ "options"
832
+ ]),
833
+ unref(harnesses).length > 0 ? (openBlock(), createBlock("div", {
834
+ key: 0,
835
+ class: ["harness-status", { off: isUnavailable(unref(form).harness) }]
836
+ }, [isUnavailable(unref(form).harness) ? (openBlock(), createBlock(Fragment, { key: 0 }, [createVNode("span", { class: "i-tabler-plug-off" }), createTextVNode(" " + toDisplayString(unref(harnessById).get(unref(form).harness)?.error), 1)], 64)) : unref(harnessById).get(unref(form).harness)?.inprocess ? (openBlock(), createBlock(Fragment, { key: 1 }, [createVNode("span", { class: "i-tabler-plug-connected" }), createTextVNode(" " + toDisplayString(unref(tt)("agents.harnessInprocess")), 1)], 64)) : unref(harnessById).get(unref(form).harness)?.resolvedPath ? (openBlock(), createBlock(Fragment, { key: 2 }, [
837
+ createVNode("span", { class: "i-tabler-plug-connected" }),
838
+ createTextVNode(),
839
+ createVNode("span", { class: "mono" }, toDisplayString(unref(harnessById).get(unref(form).harness)?.resolvedPath), 1)
840
+ ], 64)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
841
+ capBadges(unref(form).harness).length ? (openBlock(), createBlock("div", {
842
+ key: 1,
843
+ class: "harness-caps"
844
+ }, [(openBlock(true), createBlock(Fragment, null, renderList(capBadges(unref(form).harness), (b) => {
845
+ return openBlock(), createBlock("span", {
846
+ key: b,
847
+ class: "harness-cap"
848
+ }, toDisplayString(b), 1);
849
+ }), 128))])) : createCommentVNode("", true)
850
+ ];
797
851
  }),
798
852
  _: 1
799
853
  }, _parent, _scopeId));
@@ -869,23 +923,34 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
869
923
  _: 1
870
924
  }, 8, ["label"]),
871
925
  createVNode(_component_a_form_item, { label: "harness" }, {
872
- default: withCtx(() => [createVNode(_component_a_select, {
873
- value: unref(form).harness,
874
- "onUpdate:value": ($event) => unref(form).harness = $event,
875
- options: unref(harnessOptions)
876
- }, null, 8, [
877
- "value",
878
- "onUpdate:value",
879
- "options"
880
- ]), capBadges(unref(form).harness).length ? (openBlock(), createBlock("div", {
881
- key: 0,
882
- class: "harness-caps"
883
- }, [(openBlock(true), createBlock(Fragment, null, renderList(capBadges(unref(form).harness), (b) => {
884
- return openBlock(), createBlock("span", {
885
- key: b,
886
- class: "harness-cap"
887
- }, toDisplayString(b), 1);
888
- }), 128))])) : createCommentVNode("", true)]),
926
+ default: withCtx(() => [
927
+ createVNode(_component_a_select, {
928
+ value: unref(form).harness,
929
+ "onUpdate:value": ($event) => unref(form).harness = $event,
930
+ options: unref(harnessOptions)
931
+ }, null, 8, [
932
+ "value",
933
+ "onUpdate:value",
934
+ "options"
935
+ ]),
936
+ unref(harnesses).length > 0 ? (openBlock(), createBlock("div", {
937
+ key: 0,
938
+ class: ["harness-status", { off: isUnavailable(unref(form).harness) }]
939
+ }, [isUnavailable(unref(form).harness) ? (openBlock(), createBlock(Fragment, { key: 0 }, [createVNode("span", { class: "i-tabler-plug-off" }), createTextVNode(" " + toDisplayString(unref(harnessById).get(unref(form).harness)?.error), 1)], 64)) : unref(harnessById).get(unref(form).harness)?.inprocess ? (openBlock(), createBlock(Fragment, { key: 1 }, [createVNode("span", { class: "i-tabler-plug-connected" }), createTextVNode(" " + toDisplayString(unref(tt)("agents.harnessInprocess")), 1)], 64)) : unref(harnessById).get(unref(form).harness)?.resolvedPath ? (openBlock(), createBlock(Fragment, { key: 2 }, [
940
+ createVNode("span", { class: "i-tabler-plug-connected" }),
941
+ createTextVNode(),
942
+ createVNode("span", { class: "mono" }, toDisplayString(unref(harnessById).get(unref(form).harness)?.resolvedPath), 1)
943
+ ], 64)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
944
+ capBadges(unref(form).harness).length ? (openBlock(), createBlock("div", {
945
+ key: 1,
946
+ class: "harness-caps"
947
+ }, [(openBlock(true), createBlock(Fragment, null, renderList(capBadges(unref(form).harness), (b) => {
948
+ return openBlock(), createBlock("span", {
949
+ key: b,
950
+ class: "harness-cap"
951
+ }, toDisplayString(b), 1);
952
+ }), 128))])) : createCommentVNode("", true)
953
+ ]),
889
954
  _: 1
890
955
  }),
891
956
  createVNode(_component_a_form_item, { label: _ctx.$t("agents.k3lrqn0002") }, {
@@ -926,23 +991,34 @@ var agents_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
926
991
  _: 1
927
992
  }, 8, ["label"]),
928
993
  createVNode(_component_a_form_item, { label: "harness" }, {
929
- default: withCtx(() => [createVNode(_component_a_select, {
930
- value: unref(form).harness,
931
- "onUpdate:value": ($event) => unref(form).harness = $event,
932
- options: unref(harnessOptions)
933
- }, null, 8, [
934
- "value",
935
- "onUpdate:value",
936
- "options"
937
- ]), capBadges(unref(form).harness).length ? (openBlock(), createBlock("div", {
938
- key: 0,
939
- class: "harness-caps"
940
- }, [(openBlock(true), createBlock(Fragment, null, renderList(capBadges(unref(form).harness), (b) => {
941
- return openBlock(), createBlock("span", {
942
- key: b,
943
- class: "harness-cap"
944
- }, toDisplayString(b), 1);
945
- }), 128))])) : createCommentVNode("", true)]),
994
+ default: withCtx(() => [
995
+ createVNode(_component_a_select, {
996
+ value: unref(form).harness,
997
+ "onUpdate:value": ($event) => unref(form).harness = $event,
998
+ options: unref(harnessOptions)
999
+ }, null, 8, [
1000
+ "value",
1001
+ "onUpdate:value",
1002
+ "options"
1003
+ ]),
1004
+ unref(harnesses).length > 0 ? (openBlock(), createBlock("div", {
1005
+ key: 0,
1006
+ class: ["harness-status", { off: isUnavailable(unref(form).harness) }]
1007
+ }, [isUnavailable(unref(form).harness) ? (openBlock(), createBlock(Fragment, { key: 0 }, [createVNode("span", { class: "i-tabler-plug-off" }), createTextVNode(" " + toDisplayString(unref(harnessById).get(unref(form).harness)?.error), 1)], 64)) : unref(harnessById).get(unref(form).harness)?.inprocess ? (openBlock(), createBlock(Fragment, { key: 1 }, [createVNode("span", { class: "i-tabler-plug-connected" }), createTextVNode(" " + toDisplayString(unref(tt)("agents.harnessInprocess")), 1)], 64)) : unref(harnessById).get(unref(form).harness)?.resolvedPath ? (openBlock(), createBlock(Fragment, { key: 2 }, [
1008
+ createVNode("span", { class: "i-tabler-plug-connected" }),
1009
+ createTextVNode(),
1010
+ createVNode("span", { class: "mono" }, toDisplayString(unref(harnessById).get(unref(form).harness)?.resolvedPath), 1)
1011
+ ], 64)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
1012
+ capBadges(unref(form).harness).length ? (openBlock(), createBlock("div", {
1013
+ key: 1,
1014
+ class: "harness-caps"
1015
+ }, [(openBlock(true), createBlock(Fragment, null, renderList(capBadges(unref(form).harness), (b) => {
1016
+ return openBlock(), createBlock("span", {
1017
+ key: b,
1018
+ class: "harness-cap"
1019
+ }, toDisplayString(b), 1);
1020
+ }), 128))])) : createCommentVNode("", true)
1021
+ ]),
946
1022
  _: 1
947
1023
  }),
948
1024
  createVNode(_component_a_form_item, { label: _ctx.$t("agents.k3lrqn0002") }, {
@@ -987,7 +1063,7 @@ agents_vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
987
1063
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/workshop/agents.vue");
988
1064
  return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
989
1065
  };
990
- var agents_default = /*#__PURE__*/ _plugin_vue_export_helper_default(agents_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ef707fbe"]]);
1066
+ var agents_default = /*#__PURE__*/ _plugin_vue_export_helper_default(agents_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d7a5c98d"]]);
991
1067
 
992
1068
  export { agents_default as default };
993
- //# sourceMappingURL=agents-B10wmFri.mjs.map
1069
+ //# sourceMappingURL=agents--6bzGtES.mjs.map