agentworkshop 0.8.3 → 0.8.4

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 (196) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/B4iJT5PX2.js +2 -0
  3. package/.output/public/_nuxt/BNUaS1jv.js +20 -0
  4. package/.output/public/_nuxt/BhJA-E372.js +1 -0
  5. package/.output/public/_nuxt/Bq8YzXzs2.js +1 -0
  6. package/.output/public/_nuxt/Cf7ER7e2.js +1 -0
  7. package/.output/public/_nuxt/{DrlnrdvY2.js → DPnjnDtg.js} +1 -1
  8. package/.output/public/_nuxt/DgTqKyYF2.js +1 -0
  9. package/.output/public/_nuxt/MmlCf-EZ.js +1 -0
  10. package/.output/public/_nuxt/builds/latest.json +1 -1
  11. package/.output/public/_nuxt/builds/meta/8a151630-3285-41b8-a1e5-063fee2002ac.json +1 -0
  12. package/.output/public/_nuxt/{entry.C7koBPom.css → entry.D6nBdXet.css} +1 -1
  13. package/.output/public/_nuxt/{ontology.JqJ6PjV1.css → ontology.D4P756Tc.css} +1 -1
  14. package/.output/public/_nuxt/pipeline.NFs5z5V-.css +1 -0
  15. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  16. package/.output/server/chunks/_/chart-repo.mjs +1 -1
  17. package/.output/server/chunks/_/chart-repo.mjs.map +1 -1
  18. package/.output/server/chunks/_/eda-db.mjs +12 -0
  19. package/.output/server/chunks/_/eda-db.mjs.map +1 -1
  20. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  21. package/.output/server/chunks/_/nitro.mjs +1977 -1951
  22. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  23. package/.output/server/chunks/_/template-repo.mjs +97 -0
  24. package/.output/server/chunks/_/template-repo.mjs.map +1 -0
  25. package/.output/server/chunks/build/{TownView-CUbzOT_M.mjs → TownView-CcUPLqF1.mjs} +3 -3
  26. package/.output/server/chunks/build/{TownView-CUbzOT_M.mjs.map → TownView-CcUPLqF1.mjs.map} +1 -1
  27. package/.output/server/chunks/build/{_id_-JaGx0yBE.mjs → _id_-AgACEyL6.mjs} +13 -13
  28. package/.output/server/chunks/build/{_id_-JaGx0yBE.mjs.map → _id_-AgACEyL6.mjs.map} +1 -1
  29. package/.output/server/chunks/build/{_id_-BHWZiRQZ.mjs → _id_-B3yCK2lD.mjs} +8 -8
  30. package/.output/server/chunks/build/{_id_-BHWZiRQZ.mjs.map → _id_-B3yCK2lD.mjs.map} +1 -1
  31. package/.output/server/chunks/build/{_wsId_-C4DKkEqv.mjs → _wsId_-kcDriA4i.mjs} +4 -4
  32. package/.output/server/chunks/build/{_wsId_-C4DKkEqv.mjs.map → _wsId_-kcDriA4i.mjs.map} +1 -1
  33. package/.output/server/chunks/build/{analysis-tNpFLtMt.mjs → analysis-CMsMTMCg.mjs} +3 -3
  34. package/.output/server/chunks/build/{analysis-tNpFLtMt.mjs.map → analysis-CMsMTMCg.mjs.map} +1 -1
  35. package/.output/server/chunks/build/{daq-DHsYtWC-.mjs → daq-DFQQOtcZ.mjs} +7 -7
  36. package/.output/server/chunks/build/{daq-DHsYtWC-.mjs.map → daq-DFQQOtcZ.mjs.map} +1 -1
  37. package/.output/server/chunks/build/{dcw-DnjOM6p1.mjs → dcw-8415S3Km.mjs} +7 -7
  38. package/.output/server/chunks/build/{dcw-DnjOM6p1.mjs.map → dcw-8415S3Km.mjs.map} +1 -1
  39. package/.output/server/chunks/build/{logs-C4vKFkHQ.mjs → logs-C-dWpJ80.mjs} +3 -3
  40. package/.output/server/chunks/build/{logs-C4vKFkHQ.mjs.map → logs-C-dWpJ80.mjs.map} +1 -1
  41. package/.output/server/chunks/build/{ontology-B_0Vm6j-.mjs → ontology-DoXAsa2y.mjs} +62 -62
  42. package/.output/server/chunks/build/ontology-DoXAsa2y.mjs.map +1 -0
  43. package/.output/server/chunks/build/{operations-D8D6-Jm-.mjs → operations-Ch6tZIKo.mjs} +3 -3
  44. package/.output/server/chunks/build/{operations-D8D6-Jm-.mjs.map → operations-Ch6tZIKo.mjs.map} +1 -1
  45. package/.output/server/chunks/build/{pages-Dac4icQC.mjs → pages-CQOfwKB4.mjs} +4 -4
  46. package/.output/server/chunks/build/{pages-Dac4icQC.mjs.map → pages-CQOfwKB4.mjs.map} +1 -1
  47. package/.output/server/chunks/build/pipeline-eo2RWN3f.mjs +226 -0
  48. package/.output/server/chunks/build/pipeline-eo2RWN3f.mjs.map +1 -0
  49. package/.output/server/chunks/build/{town-LkDwWnKA.mjs → town-DLFB4SZl.mjs} +4 -4
  50. package/.output/server/chunks/build/{town-LkDwWnKA.mjs.map → town-DLFB4SZl.mjs.map} +1 -1
  51. package/.output/server/chunks/build/{useDaqAddNode-CRorxgOY.mjs → useDaqAddNode-D_1EBuR3.mjs} +2 -2
  52. package/.output/server/chunks/build/{useDaqAddNode-CRorxgOY.mjs.map → useDaqAddNode-D_1EBuR3.mjs.map} +1 -1
  53. package/.output/server/chunks/build/{useDaqDetailBinding-Ck-YUW9J.mjs → useDaqDetailBinding-j05iSApd.mjs} +2 -2
  54. package/.output/server/chunks/build/{useDaqDetailBinding-Ck-YUW9J.mjs.map → useDaqDetailBinding-j05iSApd.mjs.map} +1 -1
  55. package/.output/server/chunks/build/{useDaqDetailFrames-CLMoreaz.mjs → useDaqDetailFrames-BKciVJ78.mjs} +2 -2
  56. package/.output/server/chunks/build/{useDaqDetailFrames-CLMoreaz.mjs.map → useDaqDetailFrames-BKciVJ78.mjs.map} +1 -1
  57. package/.output/server/chunks/build/{useDaqDetailHistory-BVNQXwC_.mjs → useDaqDetailHistory-DgemICkr.mjs} +2 -2
  58. package/.output/server/chunks/build/{useDaqDetailHistory-BVNQXwC_.mjs.map → useDaqDetailHistory-DgemICkr.mjs.map} +1 -1
  59. package/.output/server/chunks/build/{useDaqDetailNode-BC0e9OfX.mjs → useDaqDetailNode-Cn7_og6t.mjs} +3 -3
  60. package/.output/server/chunks/build/{useDaqDetailNode-BC0e9OfX.mjs.map → useDaqDetailNode-Cn7_og6t.mjs.map} +1 -1
  61. package/.output/server/chunks/build/{useDaqDetailParams-D173iwFg.mjs → useDaqDetailParams-DX_vjFyK.mjs} +2 -2
  62. package/.output/server/chunks/build/{useDaqDetailParams-D173iwFg.mjs.map → useDaqDetailParams-DX_vjFyK.mjs.map} +1 -1
  63. package/.output/server/chunks/build/{useDaqFilters-CC-o_21d.mjs → useDaqFilters-DMS4GN20.mjs} +3 -3
  64. package/.output/server/chunks/build/{useDaqFilters-CC-o_21d.mjs.map → useDaqFilters-DMS4GN20.mjs.map} +1 -1
  65. package/.output/server/chunks/build/{useDaqOptimizations-4vK2w1yn.mjs → useDaqOptimizations-OPbdy5YB.mjs} +2 -2
  66. package/.output/server/chunks/build/{useDaqOptimizations-4vK2w1yn.mjs.map → useDaqOptimizations-OPbdy5YB.mjs.map} +1 -1
  67. package/.output/server/chunks/build/{useDaqStream-BHKpSJFd.mjs → useDaqStream-CS1G6iro.mjs} +1 -1
  68. package/.output/server/chunks/build/{useDaqStream-BHKpSJFd.mjs.map → useDaqStream-CS1G6iro.mjs.map} +1 -1
  69. package/.output/server/chunks/build/{useDaqTemplates-CsXSc7yI.mjs → useDaqTemplates-DqhRYo88.mjs} +2 -2
  70. package/.output/server/chunks/build/{useDaqTemplates-CsXSc7yI.mjs.map → useDaqTemplates-DqhRYo88.mjs.map} +1 -1
  71. package/.output/server/chunks/build/{useDashboardData-DuKjuJTz.mjs → useDashboardData-CeaMjEA9.mjs} +3 -3
  72. package/.output/server/chunks/build/{useDashboardData-DuKjuJTz.mjs.map → useDashboardData-CeaMjEA9.mjs.map} +1 -1
  73. package/.output/server/chunks/build/{useDcwAddNode-C5DcxsHF.mjs → useDcwAddNode-Cytz_odQ.mjs} +2 -2
  74. package/.output/server/chunks/build/{useDcwAddNode-C5DcxsHF.mjs.map → useDcwAddNode-Cytz_odQ.mjs.map} +1 -1
  75. package/.output/server/chunks/build/{useDcwCards-0bAVo6uB.mjs → useDcwCards-BKCFqkRd.mjs} +2 -2
  76. package/.output/server/chunks/build/{useDcwCards-0bAVo6uB.mjs.map → useDcwCards-BKCFqkRd.mjs.map} +1 -1
  77. package/.output/server/chunks/build/{useDcwDetailScope-BNFOlt2v.mjs → useDcwDetailScope-CvdvcKAv.mjs} +3 -3
  78. package/.output/server/chunks/build/{useDcwDetailScope-BNFOlt2v.mjs.map → useDcwDetailScope-CvdvcKAv.mjs.map} +1 -1
  79. package/.output/server/chunks/build/{useDcwDetailTemplates-DSH-o0tE.mjs → useDcwDetailTemplates-CC2FcEge.mjs} +2 -2
  80. package/.output/server/chunks/build/{useDcwDetailTemplates-DSH-o0tE.mjs.map → useDcwDetailTemplates-CC2FcEge.mjs.map} +1 -1
  81. package/.output/server/chunks/build/{useDcwFilter-W61BFUcT.mjs → useDcwFilter-CVoiXbZh.mjs} +2 -2
  82. package/.output/server/chunks/build/{useDcwFilter-W61BFUcT.mjs.map → useDcwFilter-CVoiXbZh.mjs.map} +1 -1
  83. package/.output/server/chunks/build/{useDcwLedger-DsColLdc.mjs → useDcwLedger-Cd-ckHoJ.mjs} +2 -2
  84. package/.output/server/chunks/build/{useDcwLedger-DsColLdc.mjs.map → useDcwLedger-Cd-ckHoJ.mjs.map} +1 -1
  85. package/.output/server/chunks/build/{useDcwLineMutations-Cx4Ir7g3.mjs → useDcwLineMutations-BOQs-fw3.mjs} +2 -2
  86. package/.output/server/chunks/build/{useDcwLineMutations-Cx4Ir7g3.mjs.map → useDcwLineMutations-BOQs-fw3.mjs.map} +1 -1
  87. package/.output/server/chunks/build/{useDcwLineRun-DQ0vB08z.mjs → useDcwLineRun-D9qvcyTM.mjs} +2 -2
  88. package/.output/server/chunks/build/{useDcwLineRun-DQ0vB08z.mjs.map → useDcwLineRun-D9qvcyTM.mjs.map} +1 -1
  89. package/.output/server/chunks/build/{useDcwParamApprovals-CYspRuDk.mjs → useDcwParamApprovals-D36q4can.mjs} +2 -2
  90. package/.output/server/chunks/build/{useDcwParamApprovals-CYspRuDk.mjs.map → useDcwParamApprovals-D36q4can.mjs.map} +1 -1
  91. package/.output/server/chunks/build/{useDcwProducts-CTbm_5S_.mjs → useDcwProducts-BozctrwT.mjs} +2 -2
  92. package/.output/server/chunks/build/{useDcwProducts-CTbm_5S_.mjs.map → useDcwProducts-BozctrwT.mjs.map} +1 -1
  93. package/.output/server/chunks/build/{useDcwQuery-E0yjZs7G.mjs → useDcwQuery-C8FikKgu.mjs} +2 -2
  94. package/.output/server/chunks/build/{useDcwQuery-E0yjZs7G.mjs.map → useDcwQuery-C8FikKgu.mjs.map} +1 -1
  95. package/.output/server/chunks/build/{useDcwQuickActions-BvT5VFOY.mjs → useDcwQuickActions-IyQ8Rkpe.mjs} +2 -2
  96. package/.output/server/chunks/build/{useDcwQuickActions-BvT5VFOY.mjs.map → useDcwQuickActions-IyQ8Rkpe.mjs.map} +1 -1
  97. package/.output/server/chunks/build/{useDcwRecipes-zngShyk0.mjs → useDcwRecipes-k9HGhMwF.mjs} +2 -2
  98. package/.output/server/chunks/build/{useDcwRecipes-zngShyk0.mjs.map → useDcwRecipes-k9HGhMwF.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{useDcwStream-82IdjJKk.mjs → useDcwStream-BnBOiawo.mjs} +1 -1
  100. package/.output/server/chunks/build/{useDcwStream-82IdjJKk.mjs.map → useDcwStream-BnBOiawo.mjs.map} +1 -1
  101. package/.output/server/chunks/build/{useDcwTemplates-CpHrcnvJ.mjs → useDcwTemplates-CnyYOOy0.mjs} +2 -2
  102. package/.output/server/chunks/build/{useDcwTemplates-CpHrcnvJ.mjs.map → useDcwTemplates-CnyYOOy0.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{useDcwWrites-BlOhljp9.mjs → useDcwWrites-Cco590iv.mjs} +2 -2
  104. package/.output/server/chunks/build/{useDcwWrites-BlOhljp9.mjs.map → useDcwWrites-Cco590iv.mjs.map} +1 -1
  105. package/.output/server/chunks/build/{useLogsScope-BRyy550Y.mjs → useLogsScope-C-yrta-v.mjs} +2 -2
  106. package/.output/server/chunks/build/{useLogsScope-BRyy550Y.mjs.map → useLogsScope-C-yrta-v.mjs.map} +1 -1
  107. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +1 -1
  108. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +1 -1
  109. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +1 -1
  110. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +1 -1
  111. package/.output/server/chunks/routes/api/workshop/channels/_id/chat/index.post.mjs +1 -1
  112. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +1 -1
  113. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
  114. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
  115. package/.output/server/chunks/routes/api/workshop/channels/_id/line.put.mjs +1 -1
  116. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +1 -1
  117. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +1 -1
  118. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +1 -1
  119. package/.output/server/chunks/routes/api/workshop/eda/index8.get.mjs +33 -0
  120. package/.output/server/chunks/routes/api/workshop/eda/index8.get.mjs.map +1 -0
  121. package/.output/server/chunks/routes/api/workshop/eda/index8.post.mjs +41 -0
  122. package/.output/server/chunks/routes/api/workshop/eda/index8.post.mjs.map +1 -0
  123. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.delete.mjs +36 -0
  124. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.delete.mjs.map +1 -0
  125. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.get.mjs +37 -0
  126. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.get.mjs.map +1 -0
  127. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.patch.mjs +42 -0
  128. package/.output/server/chunks/routes/api/workshop/eda/templates/_id_.patch.mjs.map +1 -0
  129. package/.output/server/chunks/routes/api/workshop/index10.post.mjs +33 -0
  130. package/.output/server/chunks/routes/api/workshop/index10.post.mjs.map +1 -0
  131. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +45 -46
  132. package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -1
  133. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +46 -23
  134. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  135. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +10 -9
  136. package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -1
  137. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +22 -19
  138. package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -1
  139. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +18 -42
  140. package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -1
  141. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +43 -17
  142. package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -1
  143. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +13 -15
  144. package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -1
  145. package/.output/server/chunks/routes/api/workshop/index9.post.mjs +18 -4
  146. package/.output/server/chunks/routes/api/workshop/index9.post.mjs.map +1 -1
  147. package/.output/server/chunks/routes/api/workshop/process-model/datasets.post.mjs +1 -1
  148. package/.output/server/chunks/routes/api/workshop/process-model/eligibility.mjs +1 -1
  149. package/.output/server/chunks/routes/api/workshop/process-model/experiments.mjs +1 -1
  150. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +1 -1
  151. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +1 -1
  152. package/.output/server/chunks/routes/renderer.mjs +1 -1
  153. package/.output/server/chunks/virtual/entry.mjs +140 -43
  154. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  155. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  156. package/.output/server/chunks/virtual/precomputed.mjs.map +1 -1
  157. package/.output/server/package.json +1 -1
  158. package/README-zh.md +8 -5
  159. package/README.md +8 -5
  160. package/app/components/AwChart.vue +14 -0
  161. package/app/pages/ontology/index.vue +1 -1
  162. package/app/pages/studio/pipeline.vue +812 -0
  163. package/app/utils/chart-pipeline.ts +193 -0
  164. package/config.yml +1 -1
  165. package/docs/cli.en.md +2 -2
  166. package/docs/cli.md +2 -2
  167. package/docs/plugins.en.md +1 -1
  168. package/docs/plugins.md +1 -1
  169. package/docs/sdk.en.md +1 -1
  170. package/docs/sdk.md +1 -1
  171. package/i18n/locales/en.ts +46 -0
  172. package/i18n/locales/zh-CN.ts +46 -0
  173. package/package.json +1 -1
  174. package/scripts/check-docs-sync.mjs +1 -1
  175. package/scripts/e2e-eda-pipeline.mjs +286 -0
  176. package/scripts/e2e-resume-crash.mjs +20 -6
  177. package/scripts/e2e-timezone-settings.mjs +4 -2
  178. package/server/api/workshop/analysis/index.post.ts +54 -0
  179. package/server/api/workshop/eda/templates/[id].delete.ts +14 -0
  180. package/server/api/workshop/eda/templates/[id].get.ts +15 -0
  181. package/server/api/workshop/eda/templates/[id].patch.ts +20 -0
  182. package/server/api/workshop/eda/templates/index.get.ts +11 -0
  183. package/server/api/workshop/eda/templates/index.post.ts +20 -0
  184. package/server/services/workshop/eda/chart-repo.ts +1 -1
  185. package/server/services/workshop/eda/eda-db.ts +13 -0
  186. package/server/services/workshop/eda/template-repo.ts +101 -0
  187. package/.output/public/_nuxt/Bbk1XCCM.js +0 -14
  188. package/.output/public/_nuxt/CMzExk8F.js +0 -1
  189. package/.output/public/_nuxt/D6FhDrYe2.js +0 -1
  190. package/.output/public/_nuxt/DF9ETYJ32.js +0 -1
  191. package/.output/public/_nuxt/DoChWkff.js +0 -1
  192. package/.output/public/_nuxt/YNhAoK-R2.js +0 -1
  193. package/.output/public/_nuxt/builds/meta/fd0033e4-1eaa-42f8-9a04-3132717a703b.json +0 -1
  194. package/.output/server/chunks/build/ontology-B_0Vm6j-.mjs.map +0 -1
  195. /package/.output/public/_nuxt/{DgrK8UCQ.js → BvRk9kiK2.js} +0 -0
  196. /package/.output/public/_nuxt/{DxH5focQ2.js → DxH5focQ.js} +0 -0
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ import { d as defineApiHandler, H as readValidatedBody, I as zValidator, g as getWorkshopManager } from '../../../_/nitro.mjs';
3
+ import { resolveUser } from './caller.mjs';
4
+ import 'node:crypto';
5
+ import 'node:http';
6
+ import 'node:https';
7
+ import 'node:events';
8
+ import 'node:buffer';
9
+ import 'node:fs';
10
+ import 'node:path';
11
+ import 'node:url';
12
+ import 'js-yaml';
13
+ import 'node:os';
14
+ import 'node:child_process';
15
+ import 'node:sqlite';
16
+ import 'node:module';
17
+ import 'node:zlib';
18
+ import 'node:dns/promises';
19
+ import 'node:net';
20
+ import 'node:fs/promises';
21
+ import 'node:util';
22
+ import 'node:v8';
23
+ import 'node:readline';
24
+
25
+ const schema = z.object({ name: z.string().min(1, "name \u5FC5\u586B").max(64) });
26
+ const index_post = defineApiHandler(async (event) => {
27
+ const user = resolveUser(event);
28
+ const body = await readValidatedBody(event, zValidator(schema));
29
+ return getWorkshopManager().createWorkspace(user.id, body.name);
30
+ });
31
+
32
+ export { index_post as default };
33
+ //# sourceMappingURL=index10.post.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index10.post.mjs","sources":["../../../../../../server/api/workshop/workspaces/index.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAM,MAAA,GAAS,CAAA,CAAE,MAAA,CAAO,EAAE,MAAM,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,mBAAS,CAAA,CAAE,GAAA,CAAI,EAAE,GAAG,CAAA;AAEtE,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAC/C,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,OAAO,MAAM,iBAAA,CAAkB,KAAA,EAAO,UAAA,CAAW,MAAM,CAAC,CAAA;AAC9D,EAAA,OAAO,oBAAmB,CAAE,eAAA,CAAgB,IAAA,CAAK,EAAA,EAAI,KAAK,IAAI,CAAA;AAChE,CAAC,CAAA;;;;"}
@@ -1,7 +1,6 @@
1
- import { z } from 'zod';
1
+ import { randomUUID } from 'node:crypto';
2
+ import { d as defineApiHandler, r as readBody, A as AppError, aD as getAnalysisRepo, aF as getDcwLineRepo, C as recordOps } from '../../../_/nitro.mjs';
2
3
  import { resolveUser } from './caller.mjs';
3
- import { d as defineApiHandler, H as readValidatedBody, I as zValidator, g as getWorkshopManager, A as AppError } from '../../../_/nitro.mjs';
4
- import 'node:crypto';
5
4
  import 'node:http';
6
5
  import 'node:https';
7
6
  import 'node:events';
@@ -11,6 +10,7 @@ import 'node:path';
11
10
  import 'node:url';
12
11
  import 'js-yaml';
13
12
  import 'node:os';
13
+ import 'zod';
14
14
  import 'node:child_process';
15
15
  import 'node:sqlite';
16
16
  import 'node:module';
@@ -22,52 +22,51 @@ import 'node:util';
22
22
  import 'node:v8';
23
23
  import 'node:readline';
24
24
 
25
- const memberSchema = z.union([
26
- z.object({ templateId: z.string().min(1), role: z.enum(["lead", "worker"]) }),
27
- z.object({
28
- inline: z.object({
29
- name: z.string().min(1),
30
- harness: z.string().min(1),
31
- config: z.record(z.string(), z.unknown()).optional()
32
- }),
33
- role: z.enum(["lead", "worker"])
34
- })
35
- ]);
36
- const createSchema = z.object({
37
- name: z.string().min(1, "name \u5FC5\u586B"),
38
- description: z.string().optional(),
39
- scenarioPrompt: z.string().optional(),
40
- workspace: z.string().optional(),
41
- lead: z.object({
42
- name: z.string().min(1),
43
- harness: z.string().min(1),
44
- config: z.record(z.string(), z.unknown()).optional()
45
- }).nullable().optional(),
46
- members: z.array(memberSchema).optional(),
47
- visibility: z.enum(["private", "public"]).optional()
48
- });
49
25
  const index_post = defineApiHandler(async (event) => {
50
- var _a, _b, _c;
26
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
51
27
  const user = resolveUser(event);
52
- const body = await readValidatedBody(event, zValidator(createSchema));
53
- const manager = getWorkshopManager();
54
- for (const m of (_a = body.members) != null ? _a : []) {
55
- if ("templateId" in m) {
56
- const tpl = manager.getAgent(m.templateId);
57
- if (!tpl) throw new AppError(404, "NOT_FOUND", `Agent \u6A21\u677F\u4E0D\u5B58\u5728: ${m.templateId}`);
58
- manager.requireTemplateReadable(tpl, user, "Agent \u6A21\u677F");
59
- }
60
- }
61
- return manager.createChannelTemplate({
62
- name: body.name,
63
- description: body.description,
64
- scenarioPrompt: body.scenarioPrompt,
65
- workspace: body.workspace,
66
- lead: (_b = body.lead) != null ? _b : null,
67
- members: (_c = body.members) != null ? _c : [],
68
- visibility: body.visibility,
69
- ownerUserId: user.id
28
+ const body = (_a = await readBody(event)) != null ? _a : {};
29
+ const lineId = String((_b = body.line_id) != null ? _b : "").trim();
30
+ const title = String((_c = body.title) != null ? _c : "").trim();
31
+ if (!lineId) throw new AppError(400, "VALIDATION_ERROR", "line_id \u5FC5\u586B\u3002");
32
+ if (!title) throw new AppError(400, "VALIDATION_ERROR", "title \u5FC5\u586B\u3002");
33
+ const repo = getAnalysisRepo();
34
+ const id = `ar-${randomUUID().slice(0, 8)}`;
35
+ const now = (/* @__PURE__ */ new Date()).toISOString();
36
+ const context = (_d = body.context) != null ? _d : {};
37
+ repo.insert({
38
+ id,
39
+ lineId,
40
+ lineName: (_f = (_e = getDcwLineRepo().byId(lineId)) == null ? void 0 : _e.name) != null ? _f : "",
41
+ title: title.slice(0, 200),
42
+ category: String((_g = body.category) != null ? _g : "eda-pipeline").slice(0, 60),
43
+ summary: String((_h = body.summary) != null ? _h : "").slice(0, 500),
44
+ conclusions: Array.isArray(body.conclusions) ? body.conclusions.map((c) => String(c)) : [],
45
+ report: String((_i = body.report) != null ? _i : ""),
46
+ metrics: (_j = body.metrics) != null ? _j : {},
47
+ recipeId: String((_k = body.recipe_id) != null ? _k : ""),
48
+ recipeVersion: String((_l = body.recipe_version) != null ? _l : ""),
49
+ windowFrom: body.window_from ? String(body.window_from) : null,
50
+ windowTo: body.window_to ? String(body.window_to) : null,
51
+ dataSources: String((_m = body.data_sources) != null ? _m : ""),
52
+ context,
53
+ channelId: "",
54
+ channelName: "",
55
+ actor: user.id,
56
+ actorName: user.name,
57
+ createdAt: now
58
+ });
59
+ recordOps({
60
+ actor: user.id,
61
+ actorName: user.name,
62
+ actorKind: "user",
63
+ action: "analysis.save",
64
+ kind: "system",
65
+ targetKind: "analysis-report",
66
+ targetId: id,
67
+ summary: `\u4FDD\u5B58\u5206\u6790\u7ED3\u679C\u300C${title.slice(0, 60)}\u300D`
70
68
  });
69
+ return { id, report: (_n = repo.get(id)) != null ? _n : null };
71
70
  });
72
71
 
73
72
  export { index_post as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index2.post.mjs","sources":["../../../../../../server/api/workshop/channel-templates/index.post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index2.post.mjs","sources":["../../../../../../server/api/workshop/analysis/index.post.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { d as defineApiHandler, ax as broadcastSceneEvent, r as readBody, aK as getDcwLineRepo, A as AppError, a0 as ErrorCodes, a2 as getDaqController, C as recordOps } from '../../../_/nitro.mjs';
2
- import { requireRole } from './caller.mjs';
3
- import { bindDaqHost } from '../../../_/host-bindings.mjs';
1
+ import { z } from 'zod';
2
+ import { resolveUser } from './caller.mjs';
3
+ import { d as defineApiHandler, H as readValidatedBody, I as zValidator, g as getWorkshopManager, A as AppError } from '../../../_/nitro.mjs';
4
4
  import 'node:crypto';
5
5
  import 'node:http';
6
6
  import 'node:https';
@@ -11,7 +11,6 @@ import 'node:path';
11
11
  import 'node:url';
12
12
  import 'js-yaml';
13
13
  import 'node:os';
14
- import 'zod';
15
14
  import 'node:child_process';
16
15
  import 'node:sqlite';
17
16
  import 'node:module';
@@ -23,28 +22,52 @@ import 'node:util';
23
22
  import 'node:v8';
24
23
  import 'node:readline';
25
24
 
25
+ const memberSchema = z.union([
26
+ z.object({ templateId: z.string().min(1), role: z.enum(["lead", "worker"]) }),
27
+ z.object({
28
+ inline: z.object({
29
+ name: z.string().min(1),
30
+ harness: z.string().min(1),
31
+ config: z.record(z.string(), z.unknown()).optional()
32
+ }),
33
+ role: z.enum(["lead", "worker"])
34
+ })
35
+ ]);
36
+ const createSchema = z.object({
37
+ name: z.string().min(1, "name \u5FC5\u586B"),
38
+ description: z.string().optional(),
39
+ scenarioPrompt: z.string().optional(),
40
+ workspace: z.string().optional(),
41
+ lead: z.object({
42
+ name: z.string().min(1),
43
+ harness: z.string().min(1),
44
+ config: z.record(z.string(), z.unknown()).optional()
45
+ }).nullable().optional(),
46
+ members: z.array(memberSchema).optional(),
47
+ visibility: z.enum(["private", "public"]).optional()
48
+ });
26
49
  const index_post = defineApiHandler(async (event) => {
27
- var _a, _b;
28
- const user = requireRole(event);
29
- bindDaqHost(broadcastSceneEvent);
30
- const body = (_a = await readBody(event)) != null ? _a : {};
31
- if (body.lineId && !getDcwLineRepo().byId(body.lineId)) {
32
- throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u4EA7\u7EBF\u4E0D\u5B58\u5728: ${body.lineId}`);
50
+ var _a, _b, _c;
51
+ const user = resolveUser(event);
52
+ const body = await readValidatedBody(event, zValidator(createSchema));
53
+ const manager = getWorkshopManager();
54
+ for (const m of (_a = body.members) != null ? _a : []) {
55
+ if ("templateId" in m) {
56
+ const tpl = manager.getAgent(m.templateId);
57
+ if (!tpl) throw new AppError(404, "NOT_FOUND", `Agent \u6A21\u677F\u4E0D\u5B58\u5728: ${m.templateId}`);
58
+ manager.requireTemplateReadable(tpl, user, "Agent \u6A21\u677F");
59
+ }
33
60
  }
34
- const node = getDaqController().create(body);
35
- recordOps({
36
- actor: user.id,
37
- actorName: user.name,
38
- actorKind: "user",
39
- action: "daq.node.create",
40
- kind: "daq",
41
- targetKind: "daq-node",
42
- targetId: node.id,
43
- summary: `\u521B\u5EFA\u6570\u91C7\u8282\u70B9\u300C${node.name}\u300D(driver=${node.driver})`,
44
- lineId: (_b = node.lineId) != null ? _b : "",
45
- detail: { driver: node.driver, templateRef: node.templateRef }
61
+ return manager.createChannelTemplate({
62
+ name: body.name,
63
+ description: body.description,
64
+ scenarioPrompt: body.scenarioPrompt,
65
+ workspace: body.workspace,
66
+ lead: (_b = body.lead) != null ? _b : null,
67
+ members: (_c = body.members) != null ? _c : [],
68
+ visibility: body.visibility,
69
+ ownerUserId: user.id
46
70
  });
47
- return { node: node.toView() };
48
71
  });
49
72
 
50
73
  export { index_post as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index3.post.mjs","sources":["../../../../../../server/api/workshop/daq/index.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAhBjD,EAAA,IAAA,EAAA,EAAA,EAAA;AAiBE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,WAAA,CAAY,mBAAmB,CAAA;AAC/B,EAAA,MAAM,QAAO,EAAA,GAAA,MAAM,QAAA,CAAyB,KAAK,CAAA,KAApC,YAAyC,EAAC;AACvD,EAAA,IAAI,IAAA,CAAK,UAAU,CAAC,cAAA,GAAiB,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA,EAAG;AACtD,IAAA,MAAM,IAAI,SAAS,GAAA,EAAK,UAAA,CAAW,kBAAkB,CAAA,gCAAA,EAAU,IAAA,CAAK,MAAM,CAAA,CAAE,CAAA;AAAA,EAC9E;AACA,EAAA,MAAM,IAAA,GAAO,gBAAA,EAAiB,CAAE,MAAA,CAAO,IAAI,CAAA;AAC3C,EAAA,SAAA,CAAU;AAAA,IACR,OAAO,IAAA,CAAK,EAAA;AAAA,IACZ,WAAW,IAAA,CAAK,IAAA;AAAA,IAChB,SAAA,EAAW,MAAA;AAAA,IACX,MAAA,EAAQ,iBAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,UAAA,EAAY,UAAA;AAAA,IACZ,UAAU,IAAA,CAAK,EAAA;AAAA,IACf,SAAS,CAAA,0CAAA,EAAU,IAAA,CAAK,IAAI,CAAA,cAAA,EAAY,KAAK,MAAM,CAAA,CAAA,CAAA;AAAA,IACnD,MAAA,EAAA,CAAQ,EAAA,GAAA,IAAA,CAAK,MAAA,KAAL,IAAA,GAAA,EAAA,GAAe,EAAA;AAAA,IACvB,QAAQ,EAAE,MAAA,EAAQ,KAAK,MAAA,EAAQ,WAAA,EAAa,KAAK,WAAA;AAAY,GAC9D,CAAA;AACD,EAAA,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,MAAA,EAAO,EAAE;AAC/B,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"index3.post.mjs","sources":["../../../../../../server/api/workshop/channel-templates/index.post.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { d as defineApiHandler, bb as bindDcwBroadcast, ax as broadcastSceneEvent, r as readBody, aK as getDcwLineRepo, A as AppError, a0 as ErrorCodes, a3 as getDcwController, C as recordOps } from '../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, ax as broadcastSceneEvent, r as readBody, aF as getDcwLineRepo, A as AppError, a0 as ErrorCodes, a2 as getDaqController, C as recordOps } from '../../../_/nitro.mjs';
2
2
  import { requireRole } from './caller.mjs';
3
+ import { bindDaqHost } from '../../../_/host-bindings.mjs';
3
4
  import 'node:crypto';
4
5
  import 'node:http';
5
6
  import 'node:https';
@@ -23,25 +24,25 @@ import 'node:v8';
23
24
  import 'node:readline';
24
25
 
25
26
  const index_post = defineApiHandler(async (event) => {
26
- var _a, _b, _c;
27
+ var _a, _b;
27
28
  const user = requireRole(event);
28
- bindDcwBroadcast(broadcastSceneEvent);
29
+ bindDaqHost(broadcastSceneEvent);
29
30
  const body = (_a = await readBody(event)) != null ? _a : {};
30
31
  if (body.lineId && !getDcwLineRepo().byId(body.lineId)) {
31
32
  throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u4EA7\u7EBF\u4E0D\u5B58\u5728: ${body.lineId}`);
32
33
  }
33
- const node = getDcwController().create(body);
34
+ const node = getDaqController().create(body);
34
35
  recordOps({
35
36
  actor: user.id,
36
37
  actorName: user.name,
37
38
  actorKind: "user",
38
- action: "dcw.create",
39
- kind: "line",
40
- targetKind: "dcw-node",
39
+ action: "daq.node.create",
40
+ kind: "daq",
41
+ targetKind: "daq-node",
41
42
  targetId: node.id,
43
+ summary: `\u521B\u5EFA\u6570\u91C7\u8282\u70B9\u300C${node.name}\u300D(driver=${node.driver})`,
42
44
  lineId: (_b = node.lineId) != null ? _b : "",
43
- summary: `\u521B\u5EFA\u6570\u63A7\u8282\u70B9\u300C${node.name}\u300D${node.lineId ? `(\u4EA7\u7EBF ${node.lineId})` : "(\u672A\u5206\u914D\u4EA7\u7EBF)"}`,
44
- detail: { name: node.name, lineId: (_c = node.lineId) != null ? _c : "" }
45
+ detail: { driver: node.driver, templateRef: node.templateRef }
45
46
  });
46
47
  return { node: node.toView() };
47
48
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index4.post.mjs","sources":["../../../../../../server/api/workshop/dcw/index.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAdjD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAeE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,gBAAA,CAAiB,mBAAmB,CAAA;AACpC,EAAA,MAAM,QAAO,EAAA,GAAA,MAAM,QAAA,CAAyB,KAAK,CAAA,KAApC,YAAyC,EAAC;AACvD,EAAA,IAAI,IAAA,CAAK,UAAU,CAAC,cAAA,GAAiB,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA,EAAG;AACtD,IAAA,MAAM,IAAI,SAAS,GAAA,EAAK,UAAA,CAAW,kBAAkB,CAAA,gCAAA,EAAU,IAAA,CAAK,MAAM,CAAA,CAAE,CAAA;AAAA,EAC9E;AACA,EAAA,MAAM,IAAA,GAAO,gBAAA,EAAiB,CAAE,MAAA,CAAO,IAAI,CAAA;AAE3C,EAAA,SAAA,CAAU;AAAA,IACR,OAAO,IAAA,CAAK,EAAA;AAAA,IAAI,WAAW,IAAA,CAAK,IAAA;AAAA,IAAM,SAAA,EAAW,MAAA;AAAA,IACjD,MAAA,EAAQ,YAAA;AAAA,IAAc,IAAA,EAAM,MAAA;AAAA,IAAQ,UAAA,EAAY,UAAA;AAAA,IAAY,UAAU,IAAA,CAAK,EAAA;AAAA,IAC3E,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,MAAA,EAAI,IAAA,CAAK,MAAA,GAAS,CAAA,cAAA,EAAO,IAAA,CAAK,MAAM,CAAA,CAAA,CAAA,GAAM,kCAAS,CAAA,CAAA;AAAA,IAC/E,MAAA,EAAQ,EAAE,IAAA,EAAM,IAAA,CAAK,MAAM,MAAA,EAAA,CAAQ,EAAA,GAAA,IAAA,CAAK,MAAA,KAAL,IAAA,GAAA,EAAA,GAAe,EAAA;AAAG,GACtD,CAAA;AACD,EAAA,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,MAAA,EAAO,EAAE;AAC/B,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"index4.post.mjs","sources":["../../../../../../server/api/workshop/daq/index.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAhBjD,EAAA,IAAA,EAAA,EAAA,EAAA;AAiBE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,WAAA,CAAY,mBAAmB,CAAA;AAC/B,EAAA,MAAM,QAAO,EAAA,GAAA,MAAM,QAAA,CAAyB,KAAK,CAAA,KAApC,YAAyC,EAAC;AACvD,EAAA,IAAI,IAAA,CAAK,UAAU,CAAC,cAAA,GAAiB,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA,EAAG;AACtD,IAAA,MAAM,IAAI,SAAS,GAAA,EAAK,UAAA,CAAW,kBAAkB,CAAA,gCAAA,EAAU,IAAA,CAAK,MAAM,CAAA,CAAE,CAAA;AAAA,EAC9E;AACA,EAAA,MAAM,IAAA,GAAO,gBAAA,EAAiB,CAAE,MAAA,CAAO,IAAI,CAAA;AAC3C,EAAA,SAAA,CAAU;AAAA,IACR,OAAO,IAAA,CAAK,EAAA;AAAA,IACZ,WAAW,IAAA,CAAK,IAAA;AAAA,IAChB,SAAA,EAAW,MAAA;AAAA,IACX,MAAA,EAAQ,iBAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,UAAA,EAAY,UAAA;AAAA,IACZ,UAAU,IAAA,CAAK,EAAA;AAAA,IACf,SAAS,CAAA,0CAAA,EAAU,IAAA,CAAK,IAAI,CAAA,cAAA,EAAY,KAAK,MAAM,CAAA,CAAA,CAAA;AAAA,IACnD,MAAA,EAAA,CAAQ,EAAA,GAAA,IAAA,CAAK,MAAA,KAAL,IAAA,GAAA,EAAA,GAAe,EAAA;AAAA,IACvB,QAAQ,EAAE,MAAA,EAAQ,KAAK,MAAA,EAAQ,WAAA,EAAa,KAAK,WAAA;AAAY,GAC9D,CAAA;AACD,EAAA,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,MAAA,EAAO,EAAE;AAC/B,CAAC,CAAA;;;;"}
@@ -1,5 +1,5 @@
1
- import { d as defineApiHandler, r as readBody, A as AppError, b0 as getDeviceTwinRepo, ax as broadcastSceneEvent, b1 as deviceScenePayload } from '../../../_/nitro.mjs';
2
- import { resolveUser } from './caller.mjs';
1
+ import { d as defineApiHandler, bb as bindDcwBroadcast, ax as broadcastSceneEvent, r as readBody, aF as getDcwLineRepo, A as AppError, a0 as ErrorCodes, a3 as getDcwController, C as recordOps } from '../../../_/nitro.mjs';
2
+ import { requireRole } from './caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
5
5
  import 'node:https';
@@ -23,24 +23,27 @@ import 'node:v8';
23
23
  import 'node:readline';
24
24
 
25
25
  const index_post = defineApiHandler(async (event) => {
26
- var _a, _b, _c, _d, _e;
27
- resolveUser(event);
28
- const body = await readBody(event);
29
- if (!((_a = body == null ? void 0 : body.name) == null ? void 0 : _a.trim())) throw new AppError(400, "BAD_REQUEST", "name \u5FC5\u586B");
30
- const twin = getDeviceTwinRepo().create({
31
- name: body.name.trim(),
32
- modelRef: (_b = body.modelRef) != null ? _b : "",
33
- workspaceId: (_c = body.workspaceId) != null ? _c : "",
34
- kind: body.kind === "environment" || body.kind === "asset" || body.kind === "daq" ? body.kind : "device",
35
- controls: (_d = body.controls) != null ? _d : [],
36
- telemetry: (_e = body.telemetry) != null ? _e : {},
37
- posX: typeof body.posX === "number" && Number.isFinite(body.posX) ? Math.round(body.posX * 10) / 10 : void 0,
38
- posZ: typeof body.posZ === "number" && Number.isFinite(body.posZ) ? Math.round(body.posZ * 10) / 10 : void 0,
39
- rotationY: typeof body.rotationY === "number" && Number.isFinite(body.rotationY) ? Math.round(body.rotationY * 10) / 10 : void 0,
40
- scale: typeof body.scale === "number" && Number.isFinite(body.scale) && body.scale > 0 ? Math.round(body.scale * 100) / 100 : void 0
26
+ var _a, _b, _c;
27
+ const user = requireRole(event);
28
+ bindDcwBroadcast(broadcastSceneEvent);
29
+ const body = (_a = await readBody(event)) != null ? _a : {};
30
+ if (body.lineId && !getDcwLineRepo().byId(body.lineId)) {
31
+ throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u4EA7\u7EBF\u4E0D\u5B58\u5728: ${body.lineId}`);
32
+ }
33
+ const node = getDcwController().create(body);
34
+ recordOps({
35
+ actor: user.id,
36
+ actorName: user.name,
37
+ actorKind: "user",
38
+ action: "dcw.create",
39
+ kind: "line",
40
+ targetKind: "dcw-node",
41
+ targetId: node.id,
42
+ lineId: (_b = node.lineId) != null ? _b : "",
43
+ summary: `\u521B\u5EFA\u6570\u63A7\u8282\u70B9\u300C${node.name}\u300D${node.lineId ? `(\u4EA7\u7EBF ${node.lineId})` : "(\u672A\u5206\u914D\u4EA7\u7EBF)"}`,
44
+ detail: { name: node.name, lineId: (_c = node.lineId) != null ? _c : "" }
41
45
  });
42
- broadcastSceneEvent("device.created", deviceScenePayload(twin));
43
- return { twin };
46
+ return { node: node.toView() };
44
47
  });
45
48
 
46
49
  export { index_post as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index5.post.mjs","sources":["../../../../../../server/api/workshop/device-twins/index.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAaA,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAbjD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAcE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAgN,KAAK,CAAA;AACxO,EAAA,IAAI,EAAA,CAAC,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,IAAA,KAAN,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAY,IAAA,EAAA,CAAA,QAAc,IAAI,QAAA,CAAS,GAAA,EAAK,aAAA,EAAe,mBAAS,CAAA;AACzE,EAAA,MAAM,IAAA,GAAO,iBAAA,EAAkB,CAAE,MAAA,CAAO;AAAA,IACtC,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,IAAA,EAAK;AAAA,IACrB,QAAA,EAAA,CAAU,EAAA,GAAA,IAAA,CAAK,QAAA,KAAL,IAAA,GAAA,EAAA,GAAiB,EAAA;AAAA,IAC3B,WAAA,EAAA,CAAa,EAAA,GAAA,IAAA,CAAK,WAAA,KAAL,IAAA,GAAA,EAAA,GAAoB,EAAA;AAAA,IACjC,IAAA,EAAO,IAAA,CAAK,IAAA,KAAS,aAAA,IAAiB,IAAA,CAAK,IAAA,KAAS,OAAA,IAAW,IAAA,CAAK,IAAA,KAAS,KAAA,GAAQ,IAAA,CAAK,IAAA,GAAO,QAAA;AAAA,IACjG,QAAA,EAAA,CAAU,EAAA,GAAA,IAAA,CAAK,QAAA,KAAL,IAAA,GAAA,EAAA,GAAiB,EAAC;AAAA,IAC5B,SAAA,EAAA,CAAY,EAAA,GAAA,IAAA,CAAK,SAAA,KAAL,IAAA,GAAA,EAAA,GAAkB,EAAC;AAAA,IAC/B,MAAM,OAAO,IAAA,CAAK,IAAA,KAAS,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAAI,KAAK,KAAA,CAAM,IAAA,CAAK,IAAA,GAAO,EAAE,IAAI,EAAA,GAAK,KAAA,CAAA;AAAA,IACtG,MAAM,OAAO,IAAA,CAAK,IAAA,KAAS,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAAI,KAAK,KAAA,CAAM,IAAA,CAAK,IAAA,GAAO,EAAE,IAAI,EAAA,GAAK,KAAA,CAAA;AAAA,IACtG,WAAW,OAAO,IAAA,CAAK,SAAA,KAAc,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,SAAS,CAAA,GAAI,KAAK,KAAA,CAAM,IAAA,CAAK,SAAA,GAAY,EAAE,IAAI,EAAA,GAAK,KAAA,CAAA;AAAA,IAC1H,OAAO,OAAO,IAAA,CAAK,UAAU,QAAA,IAAY,MAAA,CAAO,SAAS,IAAA,CAAK,KAAK,KAAK,IAAA,CAAK,KAAA,GAAQ,IAAI,IAAA,CAAK,KAAA,CAAM,KAAK,KAAA,GAAQ,GAAG,IAAI,GAAA,GAAM,KAAA;AAAA,GAC/H,CAAA;AACD,EAAA,mBAAA,CAAoB,gBAAA,EAAkB,kBAAA,CAAmB,IAAI,CAAC,CAAA;AAC9D,EAAA,OAAO,EAAE,IAAA,EAAK;AAChB,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"index5.post.mjs","sources":["../../../../../../server/api/workshop/dcw/index.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAcA,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAdjD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAeE,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,gBAAA,CAAiB,mBAAmB,CAAA;AACpC,EAAA,MAAM,QAAO,EAAA,GAAA,MAAM,QAAA,CAAyB,KAAK,CAAA,KAApC,YAAyC,EAAC;AACvD,EAAA,IAAI,IAAA,CAAK,UAAU,CAAC,cAAA,GAAiB,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA,EAAG;AACtD,IAAA,MAAM,IAAI,SAAS,GAAA,EAAK,UAAA,CAAW,kBAAkB,CAAA,gCAAA,EAAU,IAAA,CAAK,MAAM,CAAA,CAAE,CAAA;AAAA,EAC9E;AACA,EAAA,MAAM,IAAA,GAAO,gBAAA,EAAiB,CAAE,MAAA,CAAO,IAAI,CAAA;AAE3C,EAAA,SAAA,CAAU;AAAA,IACR,OAAO,IAAA,CAAK,EAAA;AAAA,IAAI,WAAW,IAAA,CAAK,IAAA;AAAA,IAAM,SAAA,EAAW,MAAA;AAAA,IACjD,MAAA,EAAQ,YAAA;AAAA,IAAc,IAAA,EAAM,MAAA;AAAA,IAAQ,UAAA,EAAY,UAAA;AAAA,IAAY,UAAU,IAAA,CAAK,EAAA;AAAA,IAC3E,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,MAAA,EAAI,IAAA,CAAK,MAAA,GAAS,CAAA,cAAA,EAAO,IAAA,CAAK,MAAM,CAAA,CAAA,CAAA,GAAM,kCAAS,CAAA,CAAA;AAAA,IAC/E,MAAA,EAAQ,EAAE,IAAA,EAAM,IAAA,CAAK,MAAM,MAAA,EAAA,CAAQ,EAAA,GAAA,IAAA,CAAK,MAAA,KAAL,IAAA,GAAA,EAAA,GAAe,EAAA;AAAG,GACtD,CAAA;AACD,EAAA,OAAO,EAAE,IAAA,EAAM,IAAA,CAAK,MAAA,EAAO,EAAE;AAC/B,CAAC,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { d as defineApiHandler, r as readBody, A as AppError, a0 as ErrorCodes, aK as getDcwLineRepo, bt as getDcwProductRepo, a3 as getDcwController, C as recordOps } from '../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, r as readBody, A as AppError, b0 as getDeviceTwinRepo, ax as broadcastSceneEvent, b1 as deviceScenePayload } from '../../../_/nitro.mjs';
2
2
  import { resolveUser } from './caller.mjs';
3
3
  import 'node:crypto';
4
4
  import 'node:http';
@@ -23,48 +23,24 @@ import 'node:v8';
23
23
  import 'node:readline';
24
24
 
25
25
  const index_post = defineApiHandler(async (event) => {
26
- var _a, _b, _c, _d, _e, _f;
27
- const user = resolveUser(event);
28
- const body = (_a = await readBody(event)) != null ? _a : {};
29
- const summary = String((_b = body.summary) != null ? _b : "").trim();
30
- if (!summary)
31
- throw new AppError(400, ErrorCodes.VALIDATION_ERROR, "\u624B\u52A8\u8BB0\u5F55\u5185\u5BB9(summary)\u4E0D\u80FD\u4E3A\u7A7A");
32
- let lineId = String((_c = body.lineId) != null ? _c : "").trim();
33
- const productId = String((_d = body.productId) != null ? _d : "").trim();
34
- const recipeId = String((_e = body.recipeId) != null ? _e : "").trim();
35
- if (lineId && !getDcwLineRepo().byId(lineId))
36
- throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u4EA7\u7EBF\u4E0D\u5B58\u5728: ${lineId}`);
37
- if (productId) {
38
- const product = getDcwProductRepo().byId(productId);
39
- if (!product)
40
- throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u4EA7\u54C1\u4E0D\u5B58\u5728: ${productId}`);
41
- if (lineId && product.lineId && product.lineId !== lineId)
42
- throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u4EA7\u54C1\u300C${product.name}\u300D\u5F52\u5C5E\u4EA7\u7EBF ${product.lineId},\u4E0E lineId=${lineId} \u4E0D\u4E00\u81F4`);
43
- if (!lineId && product.lineId) lineId = product.lineId;
44
- }
45
- if (recipeId) {
46
- const recipe = getDcwController().listRecipes().find((r) => r.id === recipeId);
47
- if (!recipe)
48
- throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u914D\u65B9\u4E0D\u5B58\u5728: ${recipeId}`);
49
- if (lineId && recipe.lineId && recipe.lineId !== lineId)
50
- throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u914D\u65B9\u300C${recipe.name}\u300D\u5F52\u5C5E\u4EA7\u7EBF ${recipe.lineId},\u4E0E lineId=${lineId} \u4E0D\u4E00\u81F4`);
51
- if (!lineId && recipe.lineId) lineId = recipe.lineId;
52
- }
53
- recordOps({
54
- actor: user.id,
55
- actorName: user.name,
56
- actorKind: "user",
57
- action: "ops.manual",
58
- kind: "manual",
59
- targetKind: "manual-log",
60
- targetId: "",
61
- summary,
62
- lineId,
63
- productId,
64
- recipeId,
65
- detail: { manual: true, ...(_f = body.detail) != null ? _f : {} }
26
+ var _a, _b, _c, _d, _e;
27
+ resolveUser(event);
28
+ const body = await readBody(event);
29
+ if (!((_a = body == null ? void 0 : body.name) == null ? void 0 : _a.trim())) throw new AppError(400, "BAD_REQUEST", "name \u5FC5\u586B");
30
+ const twin = getDeviceTwinRepo().create({
31
+ name: body.name.trim(),
32
+ modelRef: (_b = body.modelRef) != null ? _b : "",
33
+ workspaceId: (_c = body.workspaceId) != null ? _c : "",
34
+ kind: body.kind === "environment" || body.kind === "asset" || body.kind === "daq" ? body.kind : "device",
35
+ controls: (_d = body.controls) != null ? _d : [],
36
+ telemetry: (_e = body.telemetry) != null ? _e : {},
37
+ posX: typeof body.posX === "number" && Number.isFinite(body.posX) ? Math.round(body.posX * 10) / 10 : void 0,
38
+ posZ: typeof body.posZ === "number" && Number.isFinite(body.posZ) ? Math.round(body.posZ * 10) / 10 : void 0,
39
+ rotationY: typeof body.rotationY === "number" && Number.isFinite(body.rotationY) ? Math.round(body.rotationY * 10) / 10 : void 0,
40
+ scale: typeof body.scale === "number" && Number.isFinite(body.scale) && body.scale > 0 ? Math.round(body.scale * 100) / 100 : void 0
66
41
  });
67
- return { ok: true, lineScoped: Boolean(lineId), lineId, productId, recipeId };
42
+ broadcastSceneEvent("device.created", deviceScenePayload(twin));
43
+ return { twin };
68
44
  });
69
45
 
70
46
  export { index_post as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index6.post.mjs","sources":["../../../../../../server/api/workshop/ops-logs/index.post.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index6.post.mjs","sources":["../../../../../../server/api/workshop/device-twins/index.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAaA,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAbjD,EAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AAcE,EAAA,WAAA,CAAY,KAAK,CAAA;AACjB,EAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAgN,KAAK,CAAA;AACxO,EAAA,IAAI,EAAA,CAAC,EAAA,GAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,IAAA,KAAN,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAY,IAAA,EAAA,CAAA,QAAc,IAAI,QAAA,CAAS,GAAA,EAAK,aAAA,EAAe,mBAAS,CAAA;AACzE,EAAA,MAAM,IAAA,GAAO,iBAAA,EAAkB,CAAE,MAAA,CAAO;AAAA,IACtC,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,IAAA,EAAK;AAAA,IACrB,QAAA,EAAA,CAAU,EAAA,GAAA,IAAA,CAAK,QAAA,KAAL,IAAA,GAAA,EAAA,GAAiB,EAAA;AAAA,IAC3B,WAAA,EAAA,CAAa,EAAA,GAAA,IAAA,CAAK,WAAA,KAAL,IAAA,GAAA,EAAA,GAAoB,EAAA;AAAA,IACjC,IAAA,EAAO,IAAA,CAAK,IAAA,KAAS,aAAA,IAAiB,IAAA,CAAK,IAAA,KAAS,OAAA,IAAW,IAAA,CAAK,IAAA,KAAS,KAAA,GAAQ,IAAA,CAAK,IAAA,GAAO,QAAA;AAAA,IACjG,QAAA,EAAA,CAAU,EAAA,GAAA,IAAA,CAAK,QAAA,KAAL,IAAA,GAAA,EAAA,GAAiB,EAAC;AAAA,IAC5B,SAAA,EAAA,CAAY,EAAA,GAAA,IAAA,CAAK,SAAA,KAAL,IAAA,GAAA,EAAA,GAAkB,EAAC;AAAA,IAC/B,MAAM,OAAO,IAAA,CAAK,IAAA,KAAS,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAAI,KAAK,KAAA,CAAM,IAAA,CAAK,IAAA,GAAO,EAAE,IAAI,EAAA,GAAK,KAAA,CAAA;AAAA,IACtG,MAAM,OAAO,IAAA,CAAK,IAAA,KAAS,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAAI,KAAK,KAAA,CAAM,IAAA,CAAK,IAAA,GAAO,EAAE,IAAI,EAAA,GAAK,KAAA,CAAA;AAAA,IACtG,WAAW,OAAO,IAAA,CAAK,SAAA,KAAc,QAAA,IAAY,OAAO,QAAA,CAAS,IAAA,CAAK,SAAS,CAAA,GAAI,KAAK,KAAA,CAAM,IAAA,CAAK,SAAA,GAAY,EAAE,IAAI,EAAA,GAAK,KAAA,CAAA;AAAA,IAC1H,OAAO,OAAO,IAAA,CAAK,UAAU,QAAA,IAAY,MAAA,CAAO,SAAS,IAAA,CAAK,KAAK,KAAK,IAAA,CAAK,KAAA,GAAQ,IAAI,IAAA,CAAK,KAAA,CAAM,KAAK,KAAA,GAAQ,GAAG,IAAI,GAAA,GAAM,KAAA;AAAA,GAC/H,CAAA;AACD,EAAA,mBAAA,CAAoB,gBAAA,EAAkB,kBAAA,CAAmB,IAAI,CAAC,CAAA;AAC9D,EAAA,OAAO,EAAE,IAAA,EAAK;AAChB,CAAC,CAAA;;;;"}
@@ -1,5 +1,4 @@
1
- import { z } from 'zod';
2
- import { d as defineApiHandler, H as readValidatedBody, I as zValidator, g as getWorkshopManager } from '../../../_/nitro.mjs';
1
+ import { d as defineApiHandler, r as readBody, A as AppError, a0 as ErrorCodes, aF as getDcwLineRepo, bt as getDcwProductRepo, a3 as getDcwController, C as recordOps } from '../../../_/nitro.mjs';
3
2
  import { resolveUser } from './caller.mjs';
4
3
  import 'node:crypto';
5
4
  import 'node:http';
@@ -11,6 +10,7 @@ import 'node:path';
11
10
  import 'node:url';
12
11
  import 'js-yaml';
13
12
  import 'node:os';
13
+ import 'zod';
14
14
  import 'node:child_process';
15
15
  import 'node:sqlite';
16
16
  import 'node:module';
@@ -22,23 +22,49 @@ import 'node:util';
22
22
  import 'node:v8';
23
23
  import 'node:readline';
24
24
 
25
- const createScheduleSchema = z.object({
26
- channelId: z.string().min(1, "channelId \u5FC5\u586B"),
27
- name: z.string().min(1, "name \u5FC5\u586B"),
28
- title: z.string().min(1, "title \u5FC5\u586B"),
29
- description: z.string().optional(),
30
- mode: z.enum(["interval", "daily"]),
31
- /** 固定间隔毫秒(interval 模式;下限 60s) */
32
- intervalMs: z.number().int().min(6e4).max(2592e6).optional(),
33
- /** 每日定点 'HH:MM'(daily 模式;本地时区) */
34
- dailyTime: z.string().regex(/^([01]\d|2[0-3]):([0-5]\d)$/, "dailyTime \u987B\u4E3A HH:MM(24 \u5C0F\u65F6\u5236)").optional(),
35
- /** 连续失败熔断阈值(0 = 不自动停用) */
36
- maxConsecutiveFailures: z.number().int().min(0).max(999).optional()
37
- });
38
25
  const index_post = defineApiHandler(async (event) => {
26
+ var _a, _b, _c, _d, _e, _f;
39
27
  const user = resolveUser(event);
40
- const body = await readValidatedBody(event, zValidator(createScheduleSchema));
41
- return getWorkshopManager().createSchedule(user, body);
28
+ const body = (_a = await readBody(event)) != null ? _a : {};
29
+ const summary = String((_b = body.summary) != null ? _b : "").trim();
30
+ if (!summary)
31
+ throw new AppError(400, ErrorCodes.VALIDATION_ERROR, "\u624B\u52A8\u8BB0\u5F55\u5185\u5BB9(summary)\u4E0D\u80FD\u4E3A\u7A7A");
32
+ let lineId = String((_c = body.lineId) != null ? _c : "").trim();
33
+ const productId = String((_d = body.productId) != null ? _d : "").trim();
34
+ const recipeId = String((_e = body.recipeId) != null ? _e : "").trim();
35
+ if (lineId && !getDcwLineRepo().byId(lineId))
36
+ throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u4EA7\u7EBF\u4E0D\u5B58\u5728: ${lineId}`);
37
+ if (productId) {
38
+ const product = getDcwProductRepo().byId(productId);
39
+ if (!product)
40
+ throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u4EA7\u54C1\u4E0D\u5B58\u5728: ${productId}`);
41
+ if (lineId && product.lineId && product.lineId !== lineId)
42
+ throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u4EA7\u54C1\u300C${product.name}\u300D\u5F52\u5C5E\u4EA7\u7EBF ${product.lineId},\u4E0E lineId=${lineId} \u4E0D\u4E00\u81F4`);
43
+ if (!lineId && product.lineId) lineId = product.lineId;
44
+ }
45
+ if (recipeId) {
46
+ const recipe = getDcwController().listRecipes().find((r) => r.id === recipeId);
47
+ if (!recipe)
48
+ throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u914D\u65B9\u4E0D\u5B58\u5728: ${recipeId}`);
49
+ if (lineId && recipe.lineId && recipe.lineId !== lineId)
50
+ throw new AppError(400, ErrorCodes.VALIDATION_ERROR, `\u914D\u65B9\u300C${recipe.name}\u300D\u5F52\u5C5E\u4EA7\u7EBF ${recipe.lineId},\u4E0E lineId=${lineId} \u4E0D\u4E00\u81F4`);
51
+ if (!lineId && recipe.lineId) lineId = recipe.lineId;
52
+ }
53
+ recordOps({
54
+ actor: user.id,
55
+ actorName: user.name,
56
+ actorKind: "user",
57
+ action: "ops.manual",
58
+ kind: "manual",
59
+ targetKind: "manual-log",
60
+ targetId: "",
61
+ summary,
62
+ lineId,
63
+ productId,
64
+ recipeId,
65
+ detail: { manual: true, ...(_f = body.detail) != null ? _f : {} }
66
+ });
67
+ return { ok: true, lineScoped: Boolean(lineId), lineId, productId, recipeId };
42
68
  });
43
69
 
44
70
  export { index_post as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index7.post.mjs","sources":["../../../../../../server/api/workshop/schedules/index.post.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAM,oBAAA,GAAuB,EAAE,MAAA,CAAO;AAAA,EACpC,WAAW,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,wBAAc,CAAA;AAAA,EAC3C,MAAM,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,mBAAS,CAAA;AAAA,EACjC,OAAO,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,CAAI,GAAG,oBAAU,CAAA;AAAA,EACnC,WAAA,EAAa,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,MAAM,CAAA,CAAE,IAAA,CAAK,CAAC,UAAA,EAAY,OAAO,CAAC,CAAA;AAAA;AAAA,EAElC,UAAA,EAAY,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,GAAM,CAAA,CAAE,GAAA,CAAI,MAAa,CAAA,CAAE,QAAA,EAAS;AAAA;AAAA,EAErE,SAAA,EAAW,EAAE,MAAA,EAAO,CAAE,MAAM,6BAAA,EAA+B,qDAA4B,EAAE,QAAA,EAAS;AAAA;AAAA,EAElG,sBAAA,EAAwB,CAAA,CAAE,MAAA,EAAO,CAAE,GAAA,EAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,GAAA,CAAI,GAAG,CAAA,CAAE,QAAA;AAC3D,CAAC,CAAA;AAED,mBAAe,gBAAA,CAAiB,OAAO,KAAA,KAAU;AAC/C,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,OAAO,MAAM,iBAAA,CAAkB,KAAA,EAAO,UAAA,CAAW,oBAAoB,CAAC,CAAA;AAC5E,EAAA,OAAO,kBAAA,EAAmB,CAAE,cAAA,CAAe,IAAA,EAAM,IAAI,CAAA;AACvD,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"index7.post.mjs","sources":["../../../../../../server/api/workshop/ops-logs/index.post.ts"],"names":[],"mappings":"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"}