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.
Files changed (349) hide show
  1. package/.AgentWorkShop/prompts/host-tools.en.json +3 -3
  2. package/.AgentWorkShop/prompts/host-tools.json +14 -4
  3. package/.output/.AgentWorkShop/prompts/host-tools.en.json +3 -3
  4. package/.output/.AgentWorkShop/prompts/host-tools.json +14 -4
  5. package/.output/nitro.json +1 -1
  6. package/.output/public/_nuxt/{U_n8pryv2.js → 7op-BMk82.js} +1 -1
  7. package/.output/public/_nuxt/{zWZ26UWi.js → B1SIgyrl.js} +1 -1
  8. package/.output/public/_nuxt/{C4tXwpSt.js → BA2lmfW4.js} +1 -1
  9. package/.output/public/_nuxt/{EJkmXP432.js → BDXQqSkl2.js} +1 -1
  10. package/.output/public/_nuxt/{CY_7u1ST2.js → BI9jj13f2.js} +1 -1
  11. package/.output/public/_nuxt/{CGf9neEK2.js → BiXqyYNw2.js} +1 -1
  12. package/.output/public/_nuxt/{D9GoOkyP2.js → BlOm8JIs2.js} +1 -1
  13. package/.output/public/_nuxt/{CQ31GiJU2.js → BoXKUOiN2.js} +1 -1
  14. package/.output/public/_nuxt/{DZzbCFY2.js → BuLoPmcf.js} +1 -1
  15. package/.output/public/_nuxt/{D9ppMCbw.js → BwOK42JQ.js} +1 -1
  16. package/.output/public/_nuxt/{CZJ5cw6r2.js → C1RMfPoB2.js} +1 -1
  17. package/.output/public/_nuxt/{CGviZq4E.js → COfo_Bg3.js} +1 -1
  18. package/.output/public/_nuxt/CTGJHZ8X2.js +1 -0
  19. package/.output/public/_nuxt/{SgsmmrsZ.js → CY2NkFvI.js} +1 -1
  20. package/.output/public/_nuxt/{B4GOTVfN.js → C_4mzQ5X.js} +1 -1
  21. package/.output/public/_nuxt/{DGmFHb7m.js → CdvMP3lv.js} +1 -1
  22. package/.output/public/_nuxt/{iqxZGXsY.js → CooauJ7D.js} +1 -1
  23. package/.output/public/_nuxt/{C3vxePED.js → D1eVi1zr.js} +1 -1
  24. package/.output/public/_nuxt/{DnuJ66Jy.js → D6PUmBb0.js} +1 -1
  25. package/.output/public/_nuxt/{BBhroEeN.js → DC8sMA36.js} +1 -1
  26. package/.output/public/_nuxt/{DOUuGOQR2.js → DDHh85c42.js} +1 -1
  27. package/.output/public/_nuxt/{Cy_HDgSl.js → DDXOfmo2.js} +2 -2
  28. package/.output/public/_nuxt/{Cr2xJ_CY.js → DMFwLxfu.js} +1 -1
  29. package/.output/public/_nuxt/{BZg_MIK42.js → DoprKJ5a2.js} +1 -1
  30. package/.output/public/_nuxt/{BzBBEE-o2.js → Dr1FVeQG2.js} +1 -1
  31. package/.output/public/_nuxt/{W0sNnJQh.js → DtnsTW7e.js} +1 -1
  32. package/.output/public/_nuxt/{gUYi1hLJ2.js → DxDqd6T42.js} +1 -1
  33. package/.output/public/_nuxt/{B0UUODeh.js → DzU3zEKX.js} +1 -1
  34. package/.output/public/_nuxt/{BkO5WdX5.js → EgO70wrE.js} +1 -1
  35. package/.output/public/_nuxt/{7OZQiw002.js → HJKu4eEV2.js} +1 -1
  36. package/.output/public/_nuxt/{ChF6qLpY2.js → K5Xen0wZ2.js} +1 -1
  37. package/.output/public/_nuxt/{CNrRZmSx2.js → Rb4o4o-82.js} +1 -1
  38. package/.output/public/_nuxt/{BqBTlfiz.js → Tf6SJSDj.js} +1 -1
  39. package/.output/public/_nuxt/{DJaGVY4v2.js → ZzOyoXex2.js} +1 -1
  40. package/.output/public/_nuxt/{PbzVdCTA2.js → azOGy_tU2.js} +1 -1
  41. package/.output/public/_nuxt/{D1thFC3z.js → be-4wyTo.js} +1 -1
  42. package/.output/public/_nuxt/builds/latest.json +1 -1
  43. package/.output/public/_nuxt/builds/meta/593b65bd-cf1d-4b7f-a993-57e939c38f36.json +1 -0
  44. package/.output/public/_nuxt/{8b9CKi6F.js → dcjPjLPI.js} +1 -1
  45. package/.output/public/_nuxt/{ae2-5ZPt.js → h-Fn7pRD.js} +1 -1
  46. package/.output/public/_nuxt/{-gy9k_TE2.js → hyLdZsOd2.js} +1 -1
  47. package/.output/public/_nuxt/{BHxG41IQ2.js → o8sYG6xx2.js} +1 -1
  48. package/.output/server/chunks/_/access.mjs +1 -1
  49. package/.output/server/chunks/_/agent-dto.mjs +26 -0
  50. package/.output/server/chunks/_/agent-dto.mjs.map +1 -0
  51. package/.output/server/chunks/_/data-export.mjs +6 -6
  52. package/.output/server/chunks/_/data-query.mjs +3 -3
  53. package/.output/server/chunks/_/eda-run.repo.mjs +2 -2
  54. package/.output/server/chunks/_/features.mjs +5 -5
  55. package/.output/server/chunks/_/golden.mjs +3 -3
  56. package/.output/server/chunks/_/harness-spawn-policy.mjs +77 -0
  57. package/.output/server/chunks/_/harness-spawn-policy.mjs.map +1 -0
  58. package/.output/server/chunks/_/index.mjs +1 -1
  59. package/.output/server/chunks/_/line-scope.mjs +32 -0
  60. package/.output/server/chunks/_/line-scope.mjs.map +1 -0
  61. package/.output/server/chunks/_/mes-console.mjs +1 -1
  62. package/.output/server/chunks/_/nitro.mjs +2429 -1726
  63. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  64. package/.output/server/chunks/_/ocap.mjs +1 -1
  65. package/.output/server/chunks/_/rest-auth.mjs +1 -1
  66. package/.output/server/chunks/_/spc.mjs +1 -1
  67. package/.output/server/chunks/build/TownView-BWMDbosY.mjs +1 -1
  68. package/.output/server/chunks/build/daq-CdxcfY_G.mjs +1 -1
  69. package/.output/server/chunks/build/dcw-BlDQtS4q.mjs +1 -1
  70. package/.output/server/chunks/build/types-D6J7slEa.mjs +1 -1
  71. package/.output/server/chunks/build/useDaqAddNode-D_Rkju0f.mjs +1 -1
  72. package/.output/server/chunks/build/useDaqDetailNode-DeOsDxK5.mjs +1 -1
  73. package/.output/server/chunks/build/useDaqDetailParams-Cm9a9r5G.mjs +1 -1
  74. package/.output/server/chunks/build/useDaqFilters-CctmO03p.mjs +1 -1
  75. package/.output/server/chunks/build/useDaqStream-B9ZBVQrI.mjs +1 -1
  76. package/.output/server/chunks/build/useDaqTemplates-CK37sMfi.mjs +1 -1
  77. package/.output/server/chunks/build/useDcwAddNode-DACVcEHs.mjs +1 -1
  78. package/.output/server/chunks/build/useDcwStream-Dir5ufAU.mjs +1 -1
  79. package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
  80. package/.output/server/chunks/routes/api/system/backup/run.post.mjs +2 -2
  81. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +17 -9
  82. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  83. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +3 -0
  84. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -1
  85. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  86. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +6 -0
  87. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -1
  88. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +5 -0
  89. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -1
  90. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +5 -2
  91. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -1
  92. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +7 -1
  93. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -1
  94. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +3 -1
  95. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -1
  96. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +8 -6
  97. package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -1
  98. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs +29 -49
  99. package/.output/server/chunks/routes/api/workshop/daq/_id/ingest.post.mjs.map +1 -1
  100. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +1 -1
  101. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +6 -1
  102. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  103. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +4 -2
  104. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -1
  105. package/.output/server/chunks/routes/api/workshop/daq/index2.post.mjs +1 -1
  106. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +14 -5
  107. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -1
  108. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +1 -1
  109. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +1 -1
  110. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +1 -1
  111. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +7 -4
  112. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -1
  113. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +1 -1
  114. package/.output/server/chunks/routes/api/workshop/dcw/_id/bindings.put.mjs +1 -1
  115. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +6 -2
  116. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -1
  117. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +6 -2
  118. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs.map +1 -1
  119. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +1 -1
  120. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +1 -1
  121. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +1 -1
  122. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +6 -1
  123. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -1
  124. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +1 -1
  125. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +7 -4
  126. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -1
  127. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +1 -1
  128. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +1 -1
  129. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +1 -1
  130. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +6 -2
  131. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -1
  132. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +1 -1
  133. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +7 -4
  134. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +1 -1
  136. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +1 -1
  137. package/.output/server/chunks/routes/api/workshop/dcw/index5.post.mjs +1 -1
  138. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs +6 -2
  139. package/.output/server/chunks/routes/api/workshop/dcw/index6.get.mjs.map +1 -1
  140. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +1 -1
  141. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +1 -1
  142. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +1 -1
  143. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +1 -1
  144. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
  145. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs +6 -2
  146. package/.output/server/chunks/routes/api/workshop/dcw/mes-artifacts/file.get.mjs.map +1 -1
  147. package/.output/server/chunks/routes/api/workshop/dcw/mes-hook-test.post.mjs +1 -1
  148. package/.output/server/chunks/routes/api/workshop/dcw/mes-test-read.post.mjs +1 -1
  149. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +1 -1
  150. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +1 -1
  151. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +6 -2
  152. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -1
  153. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +4 -2
  154. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -1
  155. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs +5 -2
  156. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/read.post.mjs.map +1 -1
  157. package/.output/server/chunks/routes/api/workshop/dcw/params/_id/write.post.mjs +1 -1
  158. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.delete.mjs +1 -1
  159. package/.output/server/chunks/routes/api/workshop/dcw/params/_id_.patch.mjs +1 -1
  160. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +1 -1
  161. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +1 -1
  162. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +1 -1
  163. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +1 -1
  164. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs +7 -3
  165. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/versions.get.mjs.map +1 -1
  166. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +8 -1
  167. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -1
  168. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +6 -2
  169. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -1
  170. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +1 -1
  171. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +1 -1
  172. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +1 -1
  173. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +1 -1
  174. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +7 -4
  175. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -1
  176. package/.output/server/chunks/routes/api/workshop/eda/commonality.get.mjs +1 -1
  177. package/.output/server/chunks/routes/api/workshop/eda/vm/predict.post.mjs +1 -1
  178. package/.output/server/chunks/routes/api/workshop/exp/confirmations/_id/decide.post.mjs +1 -1
  179. package/.output/server/chunks/routes/api/workshop/exp/index.get.mjs +1 -1
  180. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
  181. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +1 -1
  182. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +1 -1
  183. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +1 -1
  184. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +1 -1
  185. package/.output/server/chunks/routes/api/workshop/index.mjs +1 -1
  186. package/.output/server/chunks/routes/api/workshop/index.post.mjs +2 -0
  187. package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -1
  188. package/.output/server/chunks/routes/api/workshop/index.put.mjs +1 -1
  189. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +8 -3
  190. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  191. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +1 -1
  192. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
  193. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -1
  194. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -1
  195. package/.output/server/chunks/routes/api/workshop/mes/datasets.get.mjs +1 -1
  196. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/autofix.mjs +1 -1
  197. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/compile.mjs +1 -1
  198. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/evidence.mjs +1 -1
  199. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/publish.mjs +1 -1
  200. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval-decision.mjs +1 -1
  201. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/approval.mjs +1 -1
  202. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/rules/_ruleId/transition.mjs +1 -1
  203. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/subgraph.mjs +1 -1
  204. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId/validate.mjs +1 -1
  205. package/.output/server/chunks/routes/api/workshop/ontology/drafts/_draftId_.mjs +1 -1
  206. package/.output/server/chunks/routes/api/workshop/ontology/export/_ontologyId_.mjs +1 -1
  207. package/.output/server/chunks/routes/api/workshop/ontology/index.mjs +1 -1
  208. package/.output/server/chunks/routes/api/workshop/ontology/scene.mjs +1 -1
  209. package/.output/server/chunks/routes/api/workshop/ontology/traces/_ontologyId_.mjs +1 -1
  210. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId/compare.mjs +1 -1
  211. package/.output/server/chunks/routes/api/workshop/ontology/versions/_ontologyId_.mjs +1 -1
  212. package/.output/server/chunks/routes/api/workshop/optimization/capabilities.get.mjs +1 -1
  213. package/.output/server/chunks/routes/api/workshop/optimization/index.get.mjs +1 -1
  214. package/.output/server/chunks/routes/api/workshop/optimization/index.mjs +1 -1
  215. package/.output/server/chunks/routes/api/workshop/optimization/index2.mjs +1 -1
  216. package/.output/server/chunks/routes/api/workshop/optimization/profiles/_id/publish.post.mjs +1 -1
  217. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/crosscheck.post.mjs +1 -1
  218. package/.output/server/chunks/routes/api/workshop/optimization/recommendations/_id/dispatch.post.mjs +1 -1
  219. package/.output/server/chunks/routes/api/workshop/optimization/solve.post.mjs +1 -1
  220. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +1 -1
  221. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +1 -1
  222. package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs +1 -1
  223. package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs +1 -1
  224. package/.output/server/chunks/routes/api/workshop/process-model/index.mjs +1 -1
  225. package/.output/server/chunks/routes/api/workshop/process-model/specs/_id/publish.post.mjs +1 -1
  226. package/.output/server/chunks/routes/api/workshop/process-model/train.post.mjs +1 -1
  227. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +1 -1
  228. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +1 -1
  229. package/.output/server/chunks/routes/api/workshop/tools/sync.post.mjs +1 -1
  230. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  231. package/.output/server/chunks/routes/renderer.mjs +2 -2
  232. package/.output/server/chunks/virtual/entry.mjs +1 -1
  233. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  234. package/.output/server/package.json +1 -1
  235. package/README-zh.md +4 -2
  236. package/README.md +9 -2
  237. package/config.yml +1 -1
  238. package/docker-compose.yml +4 -2
  239. package/docs/cli.en.md +2 -2
  240. package/docs/cli.md +2 -2
  241. package/docs/plugins.en.md +1 -1
  242. package/docs/plugins.md +1 -1
  243. package/docs/sdk.en.md +1 -1
  244. package/docs/sdk.md +1 -1
  245. package/package.json +1 -1
  246. package/scripts/_audit/_live-mqtt-e2e-20261028.mjs +219 -0
  247. package/scripts/_audit/prompt-injection-probe.mts +76 -0
  248. package/scripts/api-live-e2e.mjs +9 -3
  249. package/scripts/e2e-multiexpert-remediation-real.mjs +453 -0
  250. package/scripts/e2e-node-binding-3mode-real.mjs +697 -0
  251. package/scripts/e2e-node-binding-authz.mjs +332 -0
  252. package/scripts/security-acceptance.mjs +218 -0
  253. package/server/api/workshop/agent-tools/bindings/index.post.ts +33 -17
  254. package/server/api/workshop/agents/[id].patch.ts +3 -0
  255. package/server/api/workshop/agents/index.post.ts +3 -0
  256. package/server/api/workshop/channel-templates/[id].patch.ts +5 -0
  257. package/server/api/workshop/channel-templates/index.post.ts +6 -0
  258. package/server/api/workshop/channels/[id]/agents/[agentId].patch.ts +5 -0
  259. package/server/api/workshop/channels/[id]/agents/index.get.ts +8 -2
  260. package/server/api/workshop/channels/[id]/agents/index.post.ts +7 -0
  261. package/server/api/workshop/channels/[id]/index.get.ts +10 -4
  262. package/server/api/workshop/channels.post.ts +3 -0
  263. package/server/api/workshop/daq/[id]/ingest.post.ts +26 -22
  264. package/server/api/workshop/daq/[id].patch.ts +8 -0
  265. package/server/api/workshop/daq/alarms.get.ts +18 -16
  266. package/server/api/workshop/daq/infra/reconnect.post.ts +21 -5
  267. package/server/api/workshop/daq/test-driver.post.ts +10 -3
  268. package/server/api/workshop/dcw/[id]/param-ledger.get.ts +7 -1
  269. package/server/api/workshop/dcw/[id]/read.post.ts +6 -1
  270. package/server/api/workshop/dcw/[id].patch.ts +49 -40
  271. package/server/api/workshop/dcw/journal/index.get.ts +7 -3
  272. package/server/api/workshop/dcw/mes-artifacts/file.get.ts +7 -1
  273. package/server/api/workshop/dcw/mes-artifacts/index.get.ts +7 -1
  274. package/server/api/workshop/dcw/optimizations/[id]/series.get.ts +6 -1
  275. package/server/api/workshop/dcw/optimizations/[id].get.ts +3 -1
  276. package/server/api/workshop/dcw/optimizations/index.get.ts +6 -3
  277. package/server/api/workshop/dcw/params/[id]/read.post.ts +22 -17
  278. package/server/api/workshop/dcw/recipes/[id]/versions.get.ts +20 -14
  279. package/server/api/workshop/dcw/recipes/[id].delete.ts +33 -25
  280. package/server/api/workshop/dcw/recipes/index.get.ts +17 -12
  281. package/server/api/workshop/dcw/runs/[id]/close.post.ts +21 -15
  282. package/server/api/workshop/dcw/test-driver.post.ts +21 -16
  283. package/server/api/workshop/ws/hub.ts +2 -1
  284. package/server/plugins/01-instance-guard.ts +82 -0
  285. package/server/plugins/daq.ts +40 -8
  286. package/server/plugins/workshop.ts +12 -0
  287. package/server/services/workshop/agents/adapters/line-spawn.ts +24 -1
  288. package/server/services/workshop/agents/agent-dto.ts +54 -0
  289. package/server/services/workshop/agents/harness-spawn-policy.ts +114 -0
  290. package/server/services/workshop/agents/host-tool-bridge/dispatch.ts +22 -0
  291. package/server/services/workshop/agents/host-tool-bridge/index.ts +1 -1
  292. package/server/services/workshop/agents/host-tool-bridge/per-agent.ts +17 -3
  293. package/server/services/workshop/agents/host-tool-bridge/tools/tasks.ts +1 -1
  294. package/server/services/workshop/agents/host-tool-bridge/tools/team-delegation.ts +5 -1
  295. package/server/services/workshop/agents/industrial/dcw-tools.ts +6 -2
  296. package/server/services/workshop/agents/industrial/ops-tools.ts +54 -12
  297. package/server/services/workshop/agents/industrial/recipe-gate.ts +68 -15
  298. package/server/services/workshop/agents/industrial/tool-verify-legacy-specs.ts +2 -2
  299. package/server/services/workshop/agents/industrial/tool-verify.ts +31 -2
  300. package/server/services/workshop/agents/node-bindings.repo.ts +4 -3
  301. package/server/services/workshop/agents/node-delegation.ts +49 -4
  302. package/server/services/workshop/agents/tool-approvals.ts +23 -0
  303. package/server/services/workshop/agents/tool-reference-spec.ts +3 -0
  304. package/server/services/workshop/daq/bus/mqtt.adapter.ts +12 -0
  305. package/server/services/workshop/daq/daq-controller/crud.ts +5 -3
  306. package/server/services/workshop/daq/daq-controller/ingest.ts +23 -0
  307. package/server/services/workshop/daq/daq-controller/push.ts +24 -3
  308. package/server/services/workshop/daq/daq-controller/runtime-control.ts +6 -0
  309. package/server/services/workshop/daq/daq-controller/sweep-alarms.ts +3 -1
  310. package/server/services/workshop/daq/daq-controller/tsdb-twin.ts +21 -1
  311. package/server/services/workshop/daq/daq-node.repo.ts +10 -7
  312. package/server/services/workshop/daq/daq-node.ts +2 -0
  313. package/server/services/workshop/daq/daq-runtime.ts +10 -2
  314. package/server/services/workshop/daq/drivers/modbus-tcp.ts +8 -5
  315. package/server/services/workshop/daq/drivers/registry.ts +5 -4
  316. package/server/services/workshop/daq/infra.ts +13 -0
  317. package/server/services/workshop/daq/ingest-policy.ts +24 -1
  318. package/server/services/workshop/daq/storage/timescale.adapter.ts +42 -3
  319. package/server/services/workshop/db/database/migrations.ts +83 -68
  320. package/server/services/workshop/dcw/dcw-controller/crud.ts +27 -2
  321. package/server/services/workshop/dcw/dcw-controller/lines.ts +14 -3
  322. package/server/services/workshop/dcw/dcw-controller/recipes.ts +63 -5
  323. package/server/services/workshop/dcw/dcw-recipe.repo.ts +10 -1
  324. package/server/services/workshop/dcw/dcw-runtime.ts +37 -14
  325. package/server/services/workshop/dcw/drivers/shared.ts +62 -6
  326. package/server/services/workshop/dcw/recipe-op-anchor.ts +28 -0
  327. package/server/services/workshop/dcw/recipe-rollback-manager/rollback.ts +204 -190
  328. package/server/services/workshop/dcw/recipe-rollback-manager/sweep.ts +97 -77
  329. package/server/services/workshop/line-scope.ts +80 -0
  330. package/server/services/workshop/optimization/dispatch.service.ts +18 -2
  331. package/server/services/workshop/permissions.ts +2 -0
  332. package/server/services/workshop/runtime/agent-runtime/message.ts +17 -0
  333. package/server/services/workshop/runtime/agent-runtime/state.ts +9 -3
  334. package/server/services/workshop/runtime/agent-runtime/types.ts +2 -1
  335. package/server/services/workshop/runtime/channel-runtime.ts +3 -1
  336. package/server/services/workshop/runtime/mailbox.ts +6 -3
  337. package/server/services/workshop/runtime/manager/a2a.ts +4 -2
  338. package/server/services/workshop/runtime/manager/admin-channel.ts +1 -1
  339. package/server/services/workshop/runtime/manager/chat.ts +3 -1
  340. package/server/services/workshop/runtime/manager/host-tools.ts +1 -1
  341. package/server/services/workshop/runtime/manager/runtime-wiring.ts +31 -19
  342. package/server/services/workshop/runtime/manager/state.ts +43 -1
  343. package/server/services/workshop/runtime/permission-scope.ts +21 -0
  344. package/server/services/workshop/runtime/scheduler-loop/tick.ts +16 -4
  345. package/server/services/workshop/scene-events.ts +19 -0
  346. package/shared/daq-protocol.ts +24 -5
  347. package/shared/dcw-protocol/catalog.ts +4 -4
  348. package/.output/public/_nuxt/CCI-fwcS2.js +0 -1
  349. package/.output/public/_nuxt/builds/meta/5cd11284-05bf-4fcd-9a69-56a01c9f56dd.json +0 -1
@@ -1,5 +1,5 @@
1
- import { d as defineApiHandler, ax as broadcastSceneEvent, r as readBody, a2 as getDaqController, bf as requireDriverKind } from '../../../../_/nitro.mjs';
2
- import { resolveUser } from '../caller.mjs';
1
+ import { d as defineApiHandler, ax as broadcastSceneEvent, r as readBody, a2 as getDaqController, bm as requireDriverKind } from '../../../../_/nitro.mjs';
2
+ import { requireRole } from '../caller.mjs';
3
3
  import { bindDaqHost } from '../../../../_/host-bindings.mjs';
4
4
  import 'node:crypto';
5
5
  import 'node:http';
@@ -25,11 +25,14 @@ import 'node:readline';
25
25
 
26
26
  const testDriver_post = defineApiHandler(async (event) => {
27
27
  var _a, _b;
28
- resolveUser(event);
28
+ requireRole(event, ["admin", "editor"]);
29
29
  bindDaqHost(broadcastSceneEvent);
30
30
  const body = (_a = await readBody(event)) != null ? _a : {};
31
31
  if (!body.driver) return { ok: false, message: "\u7F3A\u5C11 driver" };
32
- const result = await getDaqController().testDriver(requireDriverKind(body.driver), (_b = body.driverConfig) != null ? _b : {});
32
+ const cfg = { ...(_b = body.driverConfig) != null ? _b : {} };
33
+ delete cfg.allowPrivateHost;
34
+ if (process.env.AW_TEST_DRIVER_ALLOW_PRIVATE === "1") cfg.allowPrivateHost = "true";
35
+ const result = await getDaqController().testDriver(requireDriverKind(body.driver), cfg);
33
36
  return { test: result };
34
37
  });
35
38
 
@@ -1 +1 @@
1
- {"version":3,"file":"test-driver.post.mjs","sources":["../../../../../../../server/api/workshop/daq/test-driver.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAeA,wBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAfjD,EAAA,IAAA,EAAA,EAAA,EAAA;AAgBE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,WAAA,CAAY,mBAAmB,CAAA;AAC/B,EAAA,MAAM,QAAO,EAAA,GAAA,MAAM,QAAA,CAA+F,KAAK,CAAA,KAA1G,YAA+G,EAAC;AAC7H,EAAA,IAAI,CAAC,KAAK,MAAA,EAAQ,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,SAAS,qBAAA,EAAY;AAC3D,EAAA,MAAM,MAAA,GAAS,MAAM,gBAAA,EAAiB,CAAE,UAAA,CAAW,iBAAA,CAAkB,IAAA,CAAK,MAAM,CAAA,EAAA,CAAG,EAAA,GAAA,IAAA,CAAK,YAAA,KAAL,IAAA,GAAA,EAAA,GAAqB,EAAE,CAAA;AAC1G,EAAA,OAAO,EAAE,MAAM,MAAA,EAAO;AACxB,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"test-driver.post.mjs","sources":["../../../../../../../server/api/workshop/daq/test-driver.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,wBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAnBjD,EAAA,IAAA,EAAA,EAAA,EAAA;AAoBE,EAAA,WAAA,CAAY,KAAA,EAAO,CAAC,OAAA,EAAS,QAAQ,CAAC,CAAA;AACtC,EAAA,WAAA,CAAY,mBAAmB,CAAA;AAC/B,EAAA,MAAM,QAAO,EAAA,GAAA,MAAM,QAAA,CAA+F,KAAK,CAAA,KAA1G,YAA+G,EAAC;AAC7H,EAAA,IAAI,CAAC,KAAK,MAAA,EAAQ,OAAO,EAAE,EAAA,EAAI,KAAA,EAAO,SAAS,qBAAA,EAAY;AAC3D,EAAA,MAAM,MAAiD,EAAE,GAAA,CAAI,UAAK,YAAA,KAAL,IAAA,GAAA,EAAA,GAAqB,EAAC,EAAG;AACtF,EAAA,OAAO,GAAA,CAAI,gBAAA;AACX,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,4BAAA,KAAiC,GAAA,MAAS,gBAAA,GAAmB,MAAA;AAC7E,EAAA,MAAM,MAAA,GAAS,MAAM,gBAAA,EAAiB,CAAE,WAAW,iBAAA,CAAkB,IAAA,CAAK,MAAM,CAAA,EAAG,GAAG,CAAA;AACtF,EAAA,OAAO,EAAE,MAAM,MAAA,EAAO;AACxB,CAAC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, a3 as getDcwController, r as readBody } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, a3 as getDcwController, r as readBody } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, a3 as getDcwController, r as readBody } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, a3 as getDcwController, r as readBody } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,5 +1,6 @@
1
- import { d as defineApiHandler, f as getRouterParam, bj as getRecipeRollBackManager } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, f as getRouterParam, a3 as getDcwController, A as AppError, a0 as ErrorCodes, bq as getRecipeRollBackManager } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
+ import { r as requireLineForResource } from '../../../../../_/line-scope.mjs';
3
4
  import 'node:crypto';
4
5
  import 'node:http';
5
6
  import 'node:https';
@@ -24,8 +25,11 @@ import 'node:readline';
24
25
 
25
26
  const paramLedger_get = defineApiHandler(async (event) => {
26
27
  var _a;
27
- resolveUser(event);
28
+ const user = resolveUser(event);
28
29
  const id = (_a = getRouterParam(event, "id")) != null ? _a : "";
30
+ const node = getDcwController().byId(id);
31
+ if (!node) throw new AppError(404, ErrorCodes.NOT_FOUND, `\u63A7\u5236\u8282\u70B9\u4E0D\u5B58\u5728: ${id}`);
32
+ requireLineForResource(user, node.lineId, "\u6570\u63A7\u8282\u70B9", "readonly");
29
33
  const ledger = getRecipeRollBackManager().ledger(id);
30
34
  return { ledger };
31
35
  });
@@ -1 +1 @@
1
- {"version":3,"file":"param-ledger.get.mjs","sources":["../../../../../../../../server/api/workshop/dcw/[id]/param-ledger.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASA,wBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AATjD,EAAA,IAAA,EAAA;AAUE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,MAAA,GAAS,wBAAA,EAAyB,CAAE,MAAA,CAAO,EAAE,CAAA;AACnD,EAAA,OAAO,EAAE,MAAA,EAAO;AAClB,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"param-ledger.get.mjs","sources":["../../../../../../../../server/api/workshop/dcw/[id]/param-ledger.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAYA,wBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAZjD,EAAA,IAAA,EAAA;AAaE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,IAAA,GAAO,gBAAA,EAAiB,CAAE,IAAA,CAAK,EAAE,CAAA;AACvC,EAAA,IAAI,CAAC,IAAA,EAAM,MAAM,IAAI,QAAA,CAAS,KAAK,UAAA,CAAW,SAAA,EAAW,CAAA,4CAAA,EAAY,EAAE,CAAA,CAAE,CAAA;AACzE,EAAA,sBAAA,CAAuB,IAAA,EAAM,IAAA,CAAK,MAAA,EAAQ,0BAAA,EAAQ,UAAU,CAAA;AAC5D,EAAA,MAAM,MAAA,GAAS,wBAAA,EAAyB,CAAE,MAAA,CAAO,EAAE,CAAA;AACnD,EAAA,OAAO,EAAE,MAAA,EAAO;AAClB,CAAC,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, a3 as getDcwController } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, a3 as getDcwController, A as AppError, a0 as ErrorCodes } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
+ import { r as requireLineForResource } from '../../../../../_/line-scope.mjs';
3
4
  import 'node:crypto';
4
5
  import 'node:http';
5
6
  import 'node:https';
@@ -24,9 +25,12 @@ import 'node:readline';
24
25
 
25
26
  const read_post = defineApiHandler(async (event) => {
26
27
  var _a;
27
- resolveUser(event);
28
+ const user = resolveUser(event);
28
29
  bindDcwBroadcast(broadcastSceneEvent);
29
30
  const id = (_a = getRouterParam(event, "id")) != null ? _a : "";
31
+ const node = getDcwController().byId(id);
32
+ if (!node) throw new AppError(404, ErrorCodes.NOT_FOUND, `\u63A7\u5236\u8282\u70B9\u4E0D\u5B58\u5728: ${id}`);
33
+ requireLineForResource(user, node.lineId, "\u6570\u63A7\u8282\u70B9", "readonly");
30
34
  const read = await getDcwController().readNow(id);
31
35
  return { read };
32
36
  });
@@ -1 +1 @@
1
- {"version":3,"file":"read.post.mjs","sources":["../../../../../../../../server/api/workshop/dcw/[id]/read.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAWA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAXjD,EAAA,IAAA,EAAA;AAYE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,gBAAA,CAAiB,mBAAmB,CAAA;AACpC,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,IAAA,GAAO,MAAM,gBAAA,EAAiB,CAAE,QAAQ,EAAE,CAAA;AAChD,EAAA,OAAO,EAAE,IAAA,EAAK;AAChB,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"read.post.mjs","sources":["../../../../../../../../server/api/workshop/dcw/[id]/read.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAaA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAbjD,EAAA,IAAA,EAAA;AAcE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,gBAAA,CAAiB,mBAAmB,CAAA;AACpC,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,IAAA,GAAO,gBAAA,EAAiB,CAAE,IAAA,CAAK,EAAE,CAAA;AACvC,EAAA,IAAI,CAAC,IAAA,EAAM,MAAM,IAAI,QAAA,CAAS,KAAK,UAAA,CAAW,SAAA,EAAW,CAAA,4CAAA,EAAY,EAAE,CAAA,CAAE,CAAA;AACzE,EAAA,sBAAA,CAAuB,IAAA,EAAM,IAAA,CAAK,MAAA,EAAQ,0BAAA,EAAQ,UAAU,CAAA;AAC5D,EAAA,MAAM,IAAA,GAAO,MAAM,gBAAA,EAAiB,CAAE,QAAQ,EAAE,CAAA;AAChD,EAAA,OAAO,EAAE,IAAA,EAAK;AAChB,CAAC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, a3 as getDcwController } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, a3 as getDcwController } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, ab as requireLineMode, a3 as getDcwController, M as getRequestHeader } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, ab as requireLineMode, a3 as getDcwController, M as getRequestHeader } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, l as getQuery, bh as gateDangerous, bi as useRuntimeConfig, P as setResponseStatus, a3 as getDcwController, C as recordOps } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, l as getQuery, bo as gateDangerous, bp as useRuntimeConfig, P as setResponseStatus, a3 as getDcwController, C as recordOps } from '../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, a3 as getDcwController, c as createError, ab as requireLineMode, C as recordOps } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, a3 as getDcwController, c as createError, ab as requireLineMode, A as AppError, C as recordOps } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -32,6 +32,11 @@ const _id__patch = defineApiHandler(async (event) => {
32
32
  if (!node0) throw createError({ statusCode: 404, statusMessage: `\u63A7\u5236\u8282\u70B9\u4E0D\u5B58\u5728: ${id}` });
33
33
  const targetLine = body.lineId !== void 0 ? String(body.lineId || "") || null : node0.lineId;
34
34
  requireLineMode(user, targetLine, "operate");
35
+ const ADMIN_ONLY_FIELDS = ["driver", "driverConfig", "transform", "min", "max", "decimals", "stepLimit", "writeLockSeconds", "lineId"];
36
+ const deniedFields = ADMIN_ONLY_FIELDS.filter((k) => body[k] !== void 0);
37
+ if (deniedFields.length > 0 && user.role !== "admin") {
38
+ throw new AppError(403, "DCW_CONFIG_ADMIN_ONLY", `\u5B57\u6BB5\u300C${deniedFields.join("/")}\u300D\u51B3\u5B9A\u8BBE\u5907\u843D\u70B9\u4E0E\u5B89\u5168\u9650\u754C\uFF0C\u4EC5\u7BA1\u7406\u5458\u53EF\u4FEE\u6539\uFF08\u5F53\u524D\u89D2\u8272 ${user.role}\uFF09\u3002\u8FD0\u884C\u53C2\u6570\uFF08name/enabled/holdIntervalMs/readIntervalMs/semantics/\u4F4D\u7F6E\uFF09\u53EF\u7531\u4EA7\u7EBF\u64CD\u63A7\u8005\u8C03\u6574\u3002`);
39
+ }
35
40
  const node = getDcwController().patch(id, body);
36
41
  const changed = Object.keys(body);
37
42
  recordOps({
@@ -1 +1 @@
1
- {"version":3,"file":"_id_.patch.mjs","sources":["../../../../../../../server/api/workshop/dcw/[id].patch.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAkBA,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAlBjD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAmBE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,gBAAA,CAAiB,mBAAmB,CAAA;AACpC,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,QAAO,EAAA,GAAA,MAAM,QAAA,CAAwB,KAAK,CAAA,KAAnC,YAAwC,EAAC;AACtD,EAAA,MAAM,KAAA,GAAQ,gBAAA,EAAiB,CAAE,IAAA,CAAK,EAAE,CAAA;AACxC,EAAA,IAAI,CAAC,KAAA,EAAO,MAAM,WAAA,CAAY,EAAE,UAAA,EAAY,GAAA,EAAK,aAAA,EAAe,CAAA,4CAAA,EAAY,EAAE,CAAA,CAAA,EAAI,CAAA;AAElF,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,MAAA,KAAW,KAAA,CAAA,GAAY,MAAA,CAAO,KAAK,MAAA,IAAU,EAAE,CAAA,IAAK,IAAA,GAAO,KAAA,CAAM,MAAA;AACzF,EAAA,eAAA,CAAgB,IAAA,EAAM,YAAY,SAAS,CAAA;AAC3C,EAAA,MAAM,IAAA,GAAO,gBAAA,EAAiB,CAAE,KAAA,CAAM,IAAI,IAAI,CAAA;AAE9C,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA;AAChC,EAAA,SAAA,CAAU;AAAA,IACR,OAAO,IAAA,CAAK,EAAA;AAAA,IAAI,WAAW,IAAA,CAAK,IAAA;AAAA,IAAM,SAAA,EAAW,MAAA;AAAA,IACjD,MAAA,EAAQ,WAAA;AAAA,IAAa,IAAA,EAAM,MAAA;AAAA,IAAQ,UAAA,EAAY,UAAA;AAAA,IAAY,QAAA,EAAU,EAAA;AAAA,IACrE,MAAA,EAAA,CAAQ,EAAA,GAAA,IAAA,CAAK,MAAA,KAAL,IAAA,GAAA,EAAA,GAAe,EAAA;AAAA,IACvB,OAAA,EAAS,CAAA,0CAAA,EAAU,IAAA,CAAK,IAAI,CAAA,OAAA,EAAK,QAAQ,IAAA,CAAK,GAAG,CAAA,IAAK,oBAAK,CAAA,CAAA,EAAI,KAAA,CAAM,WAAW,IAAA,CAAK,MAAA,GAAS,CAAA,cAAA,EAAO,KAAA,CAAM,MAAA,IAAU,UAAK,WAAM,IAAA,CAAK,MAAA,IAAU,UAAK,CAAA,CAAA,GAAK,EAAE,CAAA,CAAA;AAAA,IAC3J,MAAA,EAAQ,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,EAAA,CAAU,EAAA,GAAA,KAAA,CAAM,MAAA,KAAN,IAAA,GAAA,EAAA,GAAgB,EAAA,EAAI,MAAA,EAAA,CAAQ,EAAA,GAAA,IAAA,CAAK,MAAA,KAAL,YAAe,EAAA;AAAG,GAClF,CAAA;AACD,EAAA,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,MAAA,EAAO,EAAE;AAC/B,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"_id_.patch.mjs","sources":["../../../../../../../server/api/workshop/dcw/[id].patch.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, a3 as getDcwController, r as readBody, bh as gateDangerous, bi as useRuntimeConfig, P as setResponseStatus, C as recordOps } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, a3 as getDcwController, r as readBody, bo as gateDangerous, bp as useRuntimeConfig, P as setResponseStatus, C as recordOps } from '../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,5 +1,6 @@
1
- import { d as defineApiHandler, l as getQuery, bj as getRecipeRollBackManager } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, l as getQuery, bq as getRecipeRollBackManager } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
+ import { r as requireLineForResource, f as filterRowsByLine } from '../../../../_/line-scope.mjs';
3
4
  import 'node:crypto';
4
5
  import 'node:http';
5
6
  import 'node:https';
@@ -24,16 +25,18 @@ import 'node:readline';
24
25
 
25
26
  const index_get = defineApiHandler(async (event) => {
26
27
  var _a;
27
- resolveUser(event);
28
+ const user = resolveUser(event);
28
29
  const q = getQuery(event);
30
+ const lineId = q.lineId ? String(q.lineId) : void 0;
31
+ if (lineId) requireLineForResource(user, lineId, "\u4EA7\u7EBF", "readonly");
29
32
  const limit = Number((_a = q.limit) != null ? _a : 100);
30
33
  const anchors = getRecipeRollBackManager().journal({
31
34
  nodeId: q.nodeId ? String(q.nodeId) : void 0,
32
- lineId: q.lineId ? String(q.lineId) : void 0,
35
+ lineId,
33
36
  source: q.source ? String(q.source) : void 0,
34
37
  limit: Number.isFinite(limit) ? Math.min(limit, 500) : 100
35
38
  });
36
- return { anchors };
39
+ return { anchors: filterRowsByLine(user, anchors, (a) => a.lineId) };
37
40
  });
38
41
 
39
42
  export { index_get as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.get.mjs","sources":["../../../../../../../server/api/workshop/dcw/journal/index.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AATjD,EAAA,IAAA,EAAA;AAUE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,CAAA,GAAI,SAAS,KAAK,CAAA;AACxB,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAA,CAAO,EAAA,GAAA,CAAA,CAAE,KAAA,KAAF,YAAW,GAAG,CAAA;AACnC,EAAA,MAAM,OAAA,GAAU,wBAAA,EAAyB,CAAE,OAAA,CAAQ;AAAA,IACjD,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,KAAA,EAAO,OAAO,QAAA,CAAS,KAAK,IAAI,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,GAAG,CAAA,GAAI;AAAA,GACxD,CAAA;AACD,EAAA,OAAO,EAAE,OAAA,EAAQ;AACnB,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"index.get.mjs","sources":["../../../../../../../server/api/workshop/dcw/journal/index.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAWA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAXjD,EAAA,IAAA,EAAA;AAYE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,CAAA,GAAI,SAAS,KAAK,CAAA;AACxB,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAC7C,EAAA,IAAI,MAAA,EAAQ,sBAAA,CAAuB,IAAA,EAAM,MAAA,EAAQ,gBAAM,UAAU,CAAA;AACjE,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAA,CAAO,EAAA,GAAA,CAAA,CAAE,KAAA,KAAF,YAAW,GAAG,CAAA;AACnC,EAAA,MAAM,OAAA,GAAU,wBAAA,EAAyB,CAAE,OAAA,CAAQ;AAAA,IACjD,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,MAAA;AAAA,IACA,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,KAAA,EAAO,OAAO,QAAA,CAAS,KAAK,IAAI,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,GAAG,CAAA,GAAI;AAAA,GACxD,CAAA;AACD,EAAA,OAAO,EAAE,SAAS,gBAAA,CAAiB,IAAA,EAAM,SAAS,CAAA,CAAA,KAAK,CAAA,CAAE,MAAM,CAAA,EAAE;AACnE,CAAC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, r as readBody, a3 as getDcwController, C as recordOps } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, r as readBody, a3 as getDcwController, C as recordOps } from '../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,5 +1,5 @@
1
1
  import { resolveUser } from '../caller.mjs';
2
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, a3 as getDcwController, a7 as visibleLineIds } from '../../../../_/nitro.mjs';
2
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, a3 as getDcwController, a7 as visibleLineIds } from '../../../../_/nitro.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
5
5
  import 'node:https';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, r as readBody, a3 as getDcwController, ab as requireLineMode } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, r as readBody, a3 as getDcwController, ab as requireLineMode } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,6 +1,7 @@
1
- import { d as defineApiHandler, l as getQuery, bp as listMesArtifacts } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, l as getQuery, a3 as getDcwController, A as AppError, a0 as ErrorCodes, bw as listMesArtifacts } from '../../../../_/nitro.mjs';
2
2
  import { statSync } from 'node:fs';
3
3
  import { resolveUser } from '../caller.mjs';
4
+ import { r as requireLineForResource } from '../../../../_/line-scope.mjs';
4
5
  import 'node:crypto';
5
6
  import 'node:http';
6
7
  import 'node:https';
@@ -24,11 +25,14 @@ import 'node:readline';
24
25
 
25
26
  const index_get = defineApiHandler(async (event) => {
26
27
  var _a;
27
- resolveUser(event);
28
+ const user = resolveUser(event);
28
29
  const q = getQuery(event);
29
30
  const nodeId = String((_a = q.node_id) != null ? _a : "").trim();
30
31
  const limit = Math.max(1, Math.min(Number(q.limit) || 50, 200));
31
32
  if (!nodeId) return { artifacts: [], message: "\u7F3A\u5C11 node_id" };
33
+ const node = getDcwController().byId(nodeId);
34
+ if (!node) throw new AppError(404, ErrorCodes.NOT_FOUND, `\u63A7\u5236\u8282\u70B9\u4E0D\u5B58\u5728: ${nodeId}`);
35
+ requireLineForResource(user, node.lineId, "MES \u70B9\u4F4D", "readonly");
32
36
  const artifacts = listMesArtifacts(nodeId, limit).map((a) => {
33
37
  let mtime = null;
34
38
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"index3.get.mjs","sources":["../../../../../../../server/api/workshop/dcw/mes-artifacts/index.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAWA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAXjD,EAAA,IAAA,EAAA;AAYE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,CAAA,GAAI,SAAS,KAAK,CAAA;AACxB,EAAA,MAAM,SAAS,MAAA,CAAA,CAAO,EAAA,GAAA,CAAA,CAAE,YAAF,IAAA,GAAA,EAAA,GAAa,EAAE,EAAE,IAAA,EAAK;AAC5C,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,CAAA,CAAE,KAAK,CAAA,IAAK,EAAA,EAAI,GAAG,CAAC,CAAA;AAC9D,EAAA,IAAI,CAAC,QAAQ,OAAO,EAAE,WAAW,EAAC,EAAG,SAAS,sBAAA,EAAa;AAC3D,EAAA,MAAM,YAAY,gBAAA,CAAiB,MAAA,EAAQ,KAAK,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM;AAC3D,IAAA,IAAI,KAAA,GAAuB,IAAA;AAC3B,IAAA,IAAI;AACF,MAAA,KAAA,GAAQ,QAAA,CAAS,CAAA,CAAE,IAAI,CAAA,CAAE,MAAM,WAAA,EAAY;AAAA,IAC7C,CAAA,CAAA,MACM;AAAA,IAAa;AACnB,IAAA,OAAO,EAAE,IAAA,EAAM,CAAA,CAAE,IAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAO,IAAA,EAAM,CAAA,CAAE,IAAA,EAAM,KAAA,EAAM;AAAA,EAC7D,CAAC,CAAA;AACD,EAAA,OAAO,EAAE,SAAA,EAAW,KAAA,EAAO,SAAA,CAAU,MAAA,EAAO;AAC9C,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"index3.get.mjs","sources":["../../../../../../../server/api/workshop/dcw/mes-artifacts/index.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAcA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAdjD,EAAA,IAAA,EAAA;AAeE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,CAAA,GAAI,SAAS,KAAK,CAAA;AACxB,EAAA,MAAM,SAAS,MAAA,CAAA,CAAO,EAAA,GAAA,CAAA,CAAE,YAAF,IAAA,GAAA,EAAA,GAAa,EAAE,EAAE,IAAA,EAAK;AAC5C,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,GAAA,CAAI,MAAA,CAAO,CAAA,CAAE,KAAK,CAAA,IAAK,EAAA,EAAI,GAAG,CAAC,CAAA;AAC9D,EAAA,IAAI,CAAC,QAAQ,OAAO,EAAE,WAAW,EAAC,EAAG,SAAS,sBAAA,EAAa;AAC3D,EAAA,MAAM,IAAA,GAAO,gBAAA,EAAiB,CAAE,IAAA,CAAK,MAAM,CAAA;AAC3C,EAAA,IAAI,CAAC,IAAA,EAAM,MAAM,IAAI,QAAA,CAAS,KAAK,UAAA,CAAW,SAAA,EAAW,CAAA,4CAAA,EAAY,MAAM,CAAA,CAAE,CAAA;AAC7E,EAAA,sBAAA,CAAuB,IAAA,EAAM,IAAA,CAAK,MAAA,EAAQ,kBAAA,EAAU,UAAU,CAAA;AAC9D,EAAA,MAAM,YAAY,gBAAA,CAAiB,MAAA,EAAQ,KAAK,CAAA,CAAE,GAAA,CAAI,CAAC,CAAA,KAAM;AAC3D,IAAA,IAAI,KAAA,GAAuB,IAAA;AAC3B,IAAA,IAAI;AACF,MAAA,KAAA,GAAQ,QAAA,CAAS,CAAA,CAAE,IAAI,CAAA,CAAE,MAAM,WAAA,EAAY;AAAA,IAC7C,CAAA,CAAA,MACM;AAAA,IAAa;AACnB,IAAA,OAAO,EAAE,IAAA,EAAM,CAAA,CAAE,IAAA,EAAM,KAAA,EAAO,EAAE,KAAA,EAAO,IAAA,EAAM,CAAA,CAAE,IAAA,EAAM,KAAA,EAAM;AAAA,EAC7D,CAAC,CAAA;AACD,EAAA,OAAO,EAAE,SAAA,EAAW,KAAA,EAAO,SAAA,CAAU,MAAA,EAAO;AAC9C,CAAC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, r as readBody, ab as requireLineMode, a3 as getDcwController } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, r as readBody, ab as requireLineMode, a3 as getDcwController } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser, requireRole } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,5 +1,6 @@
1
- import { d as defineApiHandler, l as getQuery, bj as getRecipeRollBackManager } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, l as getQuery, bq as getRecipeRollBackManager } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
+ import { r as requireLineForResource, f as filterRowsByLine } from '../../../../_/line-scope.mjs';
3
4
  import 'node:crypto';
4
5
  import 'node:http';
5
6
  import 'node:https';
@@ -24,18 +25,20 @@ import 'node:readline';
24
25
 
25
26
  const index_get = defineApiHandler(async (event) => {
26
27
  var _a;
27
- resolveUser(event);
28
+ const user = resolveUser(event);
28
29
  const q = getQuery(event);
29
30
  const limit = Number((_a = q.limit) != null ? _a : 100);
31
+ const lineId = q.lineId ? String(q.lineId) : void 0;
32
+ if (lineId) requireLineForResource(user, lineId, "\u4EA7\u7EBF", "readonly");
30
33
  const records = getRecipeRollBackManager().records({
31
- lineId: q.lineId ? String(q.lineId) : void 0,
34
+ lineId,
32
35
  recipeId: q.recipeId ? String(q.recipeId) : void 0,
33
36
  nodeId: q.nodeId ? String(q.nodeId) : void 0,
34
37
  status: q.status ? String(q.status) : void 0,
35
38
  agentId: q.agentId ? String(q.agentId) : void 0,
36
39
  limit: Number.isFinite(limit) ? Math.min(limit, 500) : 100
37
40
  });
38
- return { records };
41
+ return { records: filterRowsByLine(user, records, (r) => r.lineId) };
39
42
  });
40
43
 
41
44
  export { index_get as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index4.get.mjs","sources":["../../../../../../../server/api/workshop/dcw/optimizations/index.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AATjD,EAAA,IAAA,EAAA;AAUE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,CAAA,GAAI,SAAS,KAAK,CAAA;AACxB,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAA,CAAO,EAAA,GAAA,CAAA,CAAE,KAAA,KAAF,YAAW,GAAG,CAAA;AACnC,EAAA,MAAM,OAAA,GAAU,wBAAA,EAAyB,CAAE,OAAA,CAAQ;AAAA,IACjD,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,UAAU,CAAA,CAAE,QAAA,GAAW,MAAA,CAAO,CAAA,CAAE,QAAQ,CAAA,GAAI,KAAA,CAAA;AAAA,IAC5C,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,SAAS,CAAA,CAAE,OAAA,GAAU,MAAA,CAAO,CAAA,CAAE,OAAO,CAAA,GAAI,KAAA,CAAA;AAAA,IACzC,KAAA,EAAO,OAAO,QAAA,CAAS,KAAK,IAAI,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,GAAG,CAAA,GAAI;AAAA,GACxD,CAAA;AACD,EAAA,OAAO,EAAE,OAAA,EAAQ;AACnB,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"index4.get.mjs","sources":["../../../../../../../server/api/workshop/dcw/optimizations/index.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAUA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAVjD,EAAA,IAAA,EAAA;AAWE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,CAAA,GAAI,SAAS,KAAK,CAAA;AACxB,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAA,CAAO,EAAA,GAAA,CAAA,CAAE,KAAA,KAAF,YAAW,GAAG,CAAA;AACnC,EAAA,MAAM,SAAS,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAC7C,EAAA,IAAI,MAAA,EAAQ,sBAAA,CAAuB,IAAA,EAAM,MAAA,EAAQ,gBAAM,UAAU,CAAA;AACjE,EAAA,MAAM,OAAA,GAAU,wBAAA,EAAyB,CAAE,OAAA,CAAQ;AAAA,IACjD,MAAA;AAAA,IACA,UAAU,CAAA,CAAE,QAAA,GAAW,MAAA,CAAO,CAAA,CAAE,QAAQ,CAAA,GAAI,KAAA,CAAA;AAAA,IAC5C,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,QAAQ,CAAA,CAAE,MAAA,GAAS,MAAA,CAAO,CAAA,CAAE,MAAM,CAAA,GAAI,KAAA,CAAA;AAAA,IACtC,SAAS,CAAA,CAAE,OAAA,GAAU,MAAA,CAAO,CAAA,CAAE,OAAO,CAAA,GAAI,KAAA,CAAA;AAAA,IACzC,KAAA,EAAO,OAAO,QAAA,CAAS,KAAK,IAAI,IAAA,CAAK,GAAA,CAAI,KAAA,EAAO,GAAG,CAAA,GAAI;AAAA,GACxD,CAAA;AACD,EAAA,OAAO,EAAE,SAAS,gBAAA,CAAiB,IAAA,EAAM,SAAS,CAAA,CAAA,KAAK,CAAA,CAAE,MAAM,CAAA,EAAE;AACnE,CAAC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, r as readBody, by as getDcwProductRepo, A as AppError, a0 as ErrorCodes, ab as requireLineMode, aE as getDcwRecipeRepo, C as recordOps } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, r as readBody, bE as getDcwProductRepo, A as AppError, a0 as ErrorCodes, ab as requireLineMode, aE as getDcwRecipeRepo, C as recordOps } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser, requireRole } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, a3 as getDcwController, l as getQuery, af as filterByLine } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, a3 as getDcwController, l as getQuery, af as filterByLine } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, r as readBody, bz as getDcwTemplateRegistry } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, r as readBody, bF as getDcwTemplateRegistry } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,5 +1,6 @@
1
1
  import { resolveUser } from '../caller.mjs';
2
2
  import { d as defineApiHandler, aE as getDcwRecipeRepo } from '../../../../_/nitro.mjs';
3
+ import { f as filterRowsByLine } from '../../../../_/line-scope.mjs';
3
4
  import 'node:crypto';
4
5
  import 'node:http';
5
6
  import 'node:https';
@@ -23,9 +24,12 @@ import 'node:v8';
23
24
  import 'node:readline';
24
25
 
25
26
  const index_get = defineApiHandler(async (event) => {
26
- resolveUser(event);
27
+ const user = resolveUser(event);
27
28
  const repo = getDcwRecipeRepo();
28
- return { recipes: repo.list(), runs: repo.listRuns() };
29
+ return {
30
+ recipes: filterRowsByLine(user, repo.list(), (r) => r.lineId),
31
+ runs: filterRowsByLine(user, repo.listRuns(), (r) => r.lineId)
32
+ };
29
33
  });
30
34
 
31
35
  export { index_get as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index6.get.mjs","sources":["../../../../../../../server/api/workshop/dcw/recipes/index.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAOA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAC/C,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,OAAO,EAAE,SAAS,IAAA,CAAK,IAAA,IAAQ,IAAA,EAAM,IAAA,CAAK,UAAS,EAAE;AACvD,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"index6.get.mjs","sources":["../../../../../../../server/api/workshop/dcw/recipes/index.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AASA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAC/C,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,OAAO,gBAAA,EAAiB;AAC9B,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,iBAAiB,IAAA,EAAM,IAAA,CAAK,MAAK,EAAG,CAAA,CAAA,KAAK,EAAE,MAAM,CAAA;AAAA,IAC1D,IAAA,EAAM,iBAAiB,IAAA,EAAM,IAAA,CAAK,UAAS,EAAG,CAAA,CAAA,KAAK,EAAE,MAAM;AAAA,GAC7D;AACF,CAAC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, bj as getRecipeRollBackManager, Z as audit } from '../../../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, bq as getRecipeRollBackManager, Z as audit } from '../../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, l as getQuery, a7 as visibleLineIds, A as AppError, a3 as getDcwController } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, l as getQuery, a7 as visibleLineIds, A as AppError, a3 as getDcwController } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, r as readBody, a3 as getDcwController, b1 as getActiveLineRun, C as recordOps, bn as emitLineLifecycle } from '../../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, r as readBody, a3 as getDcwController, b1 as getActiveLineRun, C as recordOps, bu as emitLineLifecycle } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, b1 as getActiveLineRun, a3 as getDcwController, C as recordOps, bn as emitLineLifecycle } from '../../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, b1 as getActiveLineRun, a3 as getDcwController, C as recordOps, bu as emitLineLifecycle } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, l as getQuery, aF as getDcwLineRepo, a3 as getDcwController, C as recordOps } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, l as getQuery, aF as getDcwLineRepo, a3 as getDcwController, C as recordOps } from '../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,7 +1,8 @@
1
- import { a as defineEventHandler, l as getQuery, c as createError, bo as mesArtifactsRoot, s as setResponseHeader } from '../../../../../_/nitro.mjs';
1
+ import { a as defineEventHandler, l as getQuery, c as createError, a3 as getDcwController, A as AppError, a0 as ErrorCodes, bv as mesArtifactsRoot, s as setResponseHeader } from '../../../../../_/nitro.mjs';
2
2
  import { statSync, readFileSync } from 'node:fs';
3
3
  import { basename, resolve, join, sep } from 'node:path';
4
4
  import { resolveUser } from '../../caller.mjs';
5
+ import { r as requireLineForResource } from '../../../../../_/line-scope.mjs';
5
6
  import 'node:crypto';
6
7
  import 'node:http';
7
8
  import 'node:https';
@@ -33,13 +34,16 @@ const MIME_OF = (name) => {
33
34
  };
34
35
  const file_get = defineEventHandler(async (event) => {
35
36
  var _a, _b;
36
- resolveUser(event);
37
+ const user = resolveUser(event);
37
38
  const q = getQuery(event);
38
39
  const nodeId = String((_a = q.node_id) != null ? _a : "").trim().slice(0, 64);
39
40
  const name = basename(String((_b = q.name) != null ? _b : "").trim());
40
41
  if (!nodeId || !name) {
41
42
  throw createError({ statusCode: 400, statusMessage: "node_id \u4E0E name \u5FC5\u586B" });
42
43
  }
44
+ const node = getDcwController().byId(nodeId);
45
+ if (!node) throw new AppError(404, ErrorCodes.NOT_FOUND, `\u63A7\u5236\u8282\u70B9\u4E0D\u5B58\u5728: ${nodeId}`);
46
+ requireLineForResource(user, node.lineId, "MES \u70B9\u4F4D", "readonly");
43
47
  const root = resolve(join(mesArtifactsRoot(), nodeId));
44
48
  const file = resolve(join(root, name));
45
49
  if (file !== root && !file.startsWith(root + sep)) {
@@ -1 +1 @@
1
- {"version":3,"file":"file.get.mjs","sources":["../../../../../../../../server/api/workshop/dcw/mes-artifacts/file.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAyB;AACxC,EAAA,MAAM,CAAA,GAAI,KAAK,WAAA,EAAY;AAC3B,EAAA,IAAI,CAAA,CAAE,QAAA,CAAS,MAAM,CAAA,EAAG,OAAO,WAAA;AAC/B,EAAA,IAAI,CAAA,CAAE,SAAS,MAAM,CAAA,IAAK,EAAE,QAAA,CAAS,OAAO,GAAG,OAAO,YAAA;AACtD,EAAA,IAAI,CAAA,CAAE,QAAA,CAAS,MAAM,CAAA,EAAG,OAAO,eAAA;AAC/B,EAAA,IAAI,CAAA,CAAE,QAAA,CAAS,OAAO,CAAA,EAAG,OAAO,kBAAA;AAChC,EAAA,IAAI,CAAA,CAAE,QAAA,CAAS,MAAM,CAAA,EAAG,OAAO,UAAA;AAC/B,EAAA,OAAO,2BAAA;AACT,CAAA;AAEA,iBAAe,kBAAA,CAAmB,OAAO,KAAA,KAAU;AAvBnD,EAAA,IAAA,EAAA,EAAA,EAAA;AAwBE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,CAAA,GAAI,SAAS,KAAK,CAAA;AACxB,EAAA,MAAM,MAAA,GAAS,MAAA,CAAA,CAAO,EAAA,GAAA,CAAA,CAAE,OAAA,KAAF,IAAA,GAAA,EAAA,GAAa,EAAE,CAAA,CAAE,IAAA,EAAK,CAAE,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACzD,EAAA,MAAM,IAAA,GAAO,SAAS,MAAA,CAAA,CAAO,EAAA,GAAA,CAAA,CAAE,SAAF,IAAA,GAAA,EAAA,GAAU,EAAE,CAAA,CAAE,IAAA,EAAM,CAAA;AACjD,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,IAAA,EAAM;AACpB,IAAA,MAAM,YAAY,EAAE,UAAA,EAAY,GAAA,EAAK,aAAA,EAAe,oCAAqB,CAAA;AAAA,EAC3E;AACA,EAAA,MAAM,OAAO,OAAA,CAAQ,IAAA,CAAK,gBAAA,EAAiB,EAAG,MAAM,CAAC,CAAA;AACrD,EAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,IAAA,CAAK,IAAA,EAAM,IAAI,CAAC,CAAA;AACrC,EAAA,IAAI,SAAS,IAAA,IAAQ,CAAC,KAAK,UAAA,CAAW,IAAA,GAAO,GAAG,CAAA,EAAG;AACjD,IAAA,MAAM,YAAY,EAAE,UAAA,EAAY,GAAA,EAAK,aAAA,EAAe,6HAAyB,CAAA;AAAA,EAC/E;AACA,EAAA,IAAI,GAAA;AACJ,EAAA,IAAI;AACF,IAAA,MAAM,EAAA,GAAK,SAAS,IAAI,CAAA;AACxB,IAAA,IAAI,CAAC,EAAA,CAAG,MAAA,IAAU,MAAM,IAAI,MAAM,YAAY,CAAA;AAC9C,IAAA,GAAA,GAAM,aAAa,IAAI,CAAA;AAAA,EACzB,CAAA,CAAA,MACM;AACJ,IAAA,MAAM,WAAA,CAAY,EAAE,UAAA,EAAY,GAAA,EAAK,aAAA,EAAe,kCAAS,MAAM,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,EAAI,CAAA;AAAA,EACjF;AACA,EAAA,iBAAA,CAAkB,KAAA,EAAO,cAAA,EAAgB,OAAA,CAAQ,IAAI,CAAC,CAAA;AACtD,EAAA,iBAAA,CAAkB,OAAO,qBAAA,EAAuB,CAAA,kBAAA,EAAqB,kBAAA,CAAmB,IAAI,CAAC,CAAA,CAAA,CAAG,CAAA;AAChG,EAAA,iBAAA,CAAkB,KAAA,EAAO,iBAAiB,UAAU,CAAA;AACpD,EAAA,OAAO,GAAA;AACT,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"file.get.mjs","sources":["../../../../../../../../server/api/workshop/dcw/mes-artifacts/file.get.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, r as readBody, bq as historyFormatOf, A as AppError, br as mesRequestHookCode, bs as runMesRequestHook, bt as resolveDcwDriver, bu as mesDataHookCode, bv as runMesDataHook } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, r as readBody, bx as historyFormatOf, A as AppError, by as mesRequestHookCode, bz as runMesRequestHook, bA as resolveDcwDriver, bB as mesDataHookCode, bC as runMesDataHook } from '../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, r as readBody, bw as mesRestDcwDriver } from '../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, r as readBody, bD as mesRestDcwDriver } from '../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, A as AppError, a0 as ErrorCodes, bj as getRecipeRollBackManager } from '../../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, A as AppError, a0 as ErrorCodes, bq as getRecipeRollBackManager } from '../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, bh as gateDangerous, bi as useRuntimeConfig, P as setResponseStatus, bj as getRecipeRollBackManager, Z as audit } from '../../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, bo as gateDangerous, bp as useRuntimeConfig, P as setResponseStatus, bq as getRecipeRollBackManager, Z as audit } from '../../../../../../_/nitro.mjs';
2
2
  import { requireRole } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,5 +1,6 @@
1
- import { d as defineApiHandler, f as getRouterParam, l as getQuery, bj as getRecipeRollBackManager } from '../../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, f as getRouterParam, bq as getRecipeRollBackManager, A as AppError, a0 as ErrorCodes, l as getQuery } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
+ import { r as requireLineForResource } from '../../../../../../_/line-scope.mjs';
3
4
  import 'node:crypto';
4
5
  import 'node:http';
5
6
  import 'node:https';
@@ -24,8 +25,11 @@ import 'node:readline';
24
25
 
25
26
  const series_get = defineApiHandler(async (event) => {
26
27
  var _a;
27
- resolveUser(event);
28
+ const user = resolveUser(event);
28
29
  const id = (_a = getRouterParam(event, "id")) != null ? _a : "";
30
+ const record = getRecipeRollBackManager().recordById(id);
31
+ if (!record) throw new AppError(404, ErrorCodes.NOT_FOUND, `\u4F18\u5316\u8BB0\u5F55\u4E0D\u5B58\u5728: ${id}`);
32
+ requireLineForResource(user, record.lineId, "\u4F18\u5316\u8BB0\u5F55", "readonly");
29
33
  const q = getQuery(event);
30
34
  const windowMs = q.windowMs ? Number(q.windowMs) : void 0;
31
35
  const result = await getRecipeRollBackManager().series(id, Number.isFinite(windowMs) ? windowMs : void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"series.get.mjs","sources":["../../../../../../../../../server/api/workshop/dcw/optimizations/[id]/series.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAUA,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAVjD,EAAA,IAAA,EAAA;AAWE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,CAAA,GAAI,SAAS,KAAK,CAAA;AACxB,EAAA,MAAM,WAAW,CAAA,CAAE,QAAA,GAAW,MAAA,CAAO,CAAA,CAAE,QAAQ,CAAA,GAAI,KAAA,CAAA;AACnD,EAAA,MAAM,MAAA,GAAS,MAAM,wBAAA,EAAyB,CAAE,MAAA,CAAO,EAAA,EAAI,MAAA,CAAO,QAAA,CAAS,QAAQ,CAAA,GAAI,QAAA,GAAW,KAAA,CAAS,CAAA;AAC3G,EAAA,OAAO,MAAA;AACT,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"series.get.mjs","sources":["../../../../../../../../../server/api/workshop/dcw/optimizations/[id]/series.get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAYA,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAZjD,EAAA,IAAA,EAAA;AAaE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,MAAA,GAAS,wBAAA,EAAyB,CAAE,UAAA,CAAW,EAAE,CAAA;AACvD,EAAA,IAAI,CAAC,MAAA,EAAQ,MAAM,IAAI,QAAA,CAAS,KAAK,UAAA,CAAW,SAAA,EAAW,CAAA,4CAAA,EAAY,EAAE,CAAA,CAAE,CAAA;AAC3E,EAAA,sBAAA,CAAuB,IAAA,EAAM,MAAA,CAAO,MAAA,EAAQ,0BAAA,EAAQ,UAAU,CAAA;AAC9D,EAAA,MAAM,CAAA,GAAI,SAAS,KAAK,CAAA;AACxB,EAAA,MAAM,WAAW,CAAA,CAAE,QAAA,GAAW,MAAA,CAAO,CAAA,CAAE,QAAQ,CAAA,GAAI,KAAA,CAAA;AACnD,EAAA,MAAM,MAAA,GAAS,MAAM,wBAAA,EAAyB,CAAE,MAAA,CAAO,EAAA,EAAI,MAAA,CAAO,QAAA,CAAS,QAAQ,CAAA,GAAI,QAAA,GAAW,KAAA,CAAS,CAAA;AAC3G,EAAA,OAAO,MAAA;AACT,CAAC,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineApiHandler, f as getRouterParam, bj as getRecipeRollBackManager, A as AppError, a0 as ErrorCodes } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, f as getRouterParam, bq as getRecipeRollBackManager, A as AppError, a0 as ErrorCodes } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
+ import { r as requireLineForResource } from '../../../../../_/line-scope.mjs';
3
4
  import 'node:crypto';
4
5
  import 'node:http';
5
6
  import 'node:https';
@@ -24,11 +25,12 @@ import 'node:readline';
24
25
 
25
26
  const _id__get = defineApiHandler(async (event) => {
26
27
  var _a;
27
- resolveUser(event);
28
+ const user = resolveUser(event);
28
29
  const id = (_a = getRouterParam(event, "id")) != null ? _a : "";
29
30
  const record = getRecipeRollBackManager().recordById(id);
30
31
  if (!record)
31
32
  throw new AppError(404, ErrorCodes.NOT_FOUND, `\u4F18\u5316\u8BB0\u5F55\u4E0D\u5B58\u5728: ${id}`);
33
+ requireLineForResource(user, record.lineId, "\u4F18\u5316\u8BB0\u5F55", "readonly");
32
34
  return { record };
33
35
  });
34
36
 
@@ -1 +1 @@
1
- {"version":3,"file":"_id_.get.mjs","sources":["../../../../../../../../server/api/workshop/dcw/optimizations/[id].get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AASA,iBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AATjD,EAAA,IAAA,EAAA;AAUE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,MAAA,GAAS,wBAAA,EAAyB,CAAE,UAAA,CAAW,EAAE,CAAA;AACvD,EAAA,IAAI,CAAC,MAAA;AACH,IAAA,MAAM,IAAI,QAAA,CAAS,GAAA,EAAK,WAAW,SAAA,EAAW,CAAA,4CAAA,EAAY,EAAE,CAAA,CAAE,CAAA;AAChE,EAAA,OAAO,EAAE,MAAA,EAAO;AAClB,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"_id_.get.mjs","sources":["../../../../../../../../server/api/workshop/dcw/optimizations/[id].get.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAUA,iBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAVjD,EAAA,IAAA,EAAA;AAWE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,MAAA,GAAS,wBAAA,EAAyB,CAAE,UAAA,CAAW,EAAE,CAAA;AACvD,EAAA,IAAI,CAAC,MAAA;AACH,IAAA,MAAM,IAAI,QAAA,CAAS,GAAA,EAAK,WAAW,SAAA,EAAW,CAAA,4CAAA,EAAY,EAAE,CAAA,CAAE,CAAA;AAChE,EAAA,sBAAA,CAAuB,IAAA,EAAM,MAAA,CAAO,MAAA,EAAQ,0BAAA,EAAQ,UAAU,CAAA;AAC9D,EAAA,OAAO,EAAE,MAAA,EAAO;AAClB,CAAC,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, a3 as getDcwController } from '../../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, bd as getDcwParamRepo, A as AppError, a0 as ErrorCodes, a3 as getDcwController } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
+ import { r as requireLineForResource, p as paramLineId } from '../../../../../../_/line-scope.mjs';
3
4
  import 'node:crypto';
4
5
  import 'node:http';
5
6
  import 'node:https';
@@ -24,9 +25,11 @@ import 'node:readline';
24
25
 
25
26
  const read_post = defineApiHandler(async (event) => {
26
27
  var _a;
27
- resolveUser(event);
28
+ const user = resolveUser(event);
28
29
  bindDcwBroadcast(broadcastSceneEvent);
29
30
  const id = (_a = getRouterParam(event, "id")) != null ? _a : "";
31
+ if (!getDcwParamRepo().byId(id)) throw new AppError(404, ErrorCodes.NOT_FOUND, `\u5DE5\u827A\u53C2\u6570\u4E0D\u5B58\u5728: ${id}`);
32
+ requireLineForResource(user, paramLineId(id), "\u5DE5\u827A\u53C2\u6570", "readonly");
30
33
  const read = await getDcwController().readParam(id);
31
34
  return { read };
32
35
  });
@@ -1 +1 @@
1
- {"version":3,"file":"read.post.mjs","sources":["../../../../../../../../../server/api/workshop/dcw/params/[id]/read.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAUA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAVjD,EAAA,IAAA,EAAA;AAWE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,gBAAA,CAAiB,mBAAmB,CAAA;AACpC,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,MAAM,IAAA,GAAO,MAAM,gBAAA,EAAiB,CAAE,UAAU,EAAE,CAAA;AAClD,EAAA,OAAO,EAAE,IAAA,EAAK;AAChB,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"read.post.mjs","sources":["../../../../../../../../../server/api/workshop/dcw/params/[id]/read.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAaA,kBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAbjD,EAAA,IAAA,EAAA;AAcE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,gBAAA,CAAiB,mBAAmB,CAAA;AACpC,EAAA,MAAM,EAAA,GAAA,CAAK,EAAA,GAAA,cAAA,CAAe,KAAA,EAAO,IAAI,MAA1B,IAAA,GAAA,EAAA,GAA+B,EAAA;AAC1C,EAAA,IAAI,CAAC,eAAA,EAAgB,CAAE,IAAA,CAAK,EAAE,CAAA,EAAG,MAAM,IAAI,QAAA,CAAS,GAAA,EAAK,UAAA,CAAW,SAAA,EAAW,CAAA,4CAAA,EAAY,EAAE,CAAA,CAAE,CAAA;AAC/F,EAAA,sBAAA,CAAuB,IAAA,EAAM,WAAA,CAAY,EAAE,CAAA,EAAG,4BAAQ,UAAU,CAAA;AAChE,EAAA,MAAM,IAAA,GAAO,MAAM,gBAAA,EAAiB,CAAE,UAAU,EAAE,CAAA;AAClD,EAAA,OAAO,EAAE,IAAA,EAAK;AAChB,CAAC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, ab as requireLineMode, a3 as getDcwController } from '../../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, r as readBody, ab as requireLineMode, a3 as getDcwController } from '../../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, bg as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, a3 as getDcwController, bx as getDcwParamRepo } from '../../../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, bn as bindDcwBroadcast, ax as broadcastSceneEvent, f as getRouterParam, ab as requireLineMode, a3 as getDcwController, bd as getDcwParamRepo } from '../../../../../_/nitro.mjs';
2
2
  import { resolveUser } from '../../caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';