agentworkshop 0.7.9 → 0.7.12

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 (534) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BUPj10t4.js → 6vYobj4F.js} +1 -1
  3. package/.output/public/_nuxt/{BCJFMBQ6.js → B-xskWta.js} +1 -1
  4. package/.output/public/_nuxt/{BC8s1Guv.js → B3Psw_sL.js} +1 -1
  5. package/.output/public/_nuxt/B53Mp7lD.js +1 -0
  6. package/.output/public/_nuxt/{BDASpD_i.js → BBwMH_hG.js} +1 -1
  7. package/.output/public/_nuxt/BNXfwXpE.js +1 -0
  8. package/.output/public/_nuxt/BbZAzXjZ2.js +1 -0
  9. package/.output/public/_nuxt/{CFn4vHwD.js → Bc3PiGGr.js} +1 -1
  10. package/.output/public/_nuxt/BcrN7QEl2.js +1 -0
  11. package/.output/public/_nuxt/BgOhoDTI.js +1 -0
  12. package/.output/public/_nuxt/Bmpvki7M.js +1 -0
  13. package/.output/public/_nuxt/BxPPAkGA.js +3 -0
  14. package/.output/public/_nuxt/{u7KWCGSb.js → BxtpDtzC.js} +1 -1
  15. package/.output/public/_nuxt/{DxrgFxIr2.js → C4OAdbVK2.js} +1 -1
  16. package/.output/public/_nuxt/C6m-kenn.js +1 -0
  17. package/.output/public/_nuxt/CcwJ2mrD2.js +1 -0
  18. package/.output/public/_nuxt/Cj6139IM.js +1 -0
  19. package/.output/public/_nuxt/{6PZPfFcO.js → Cor9siSf.js} +1 -1
  20. package/.output/public/_nuxt/CvYfzHYz.js +1 -0
  21. package/.output/public/_nuxt/D2JyEL28.js +14 -0
  22. package/.output/public/_nuxt/{DDdEnkdw.js → D8xY-Yjc.js} +2 -2
  23. package/.output/public/_nuxt/{Ct68Z0232.js → DA4lxCWC2.js} +1 -1
  24. package/.output/public/_nuxt/{MyA0Oeqd.js → DNxVTfhe.js} +1 -1
  25. package/.output/public/_nuxt/DT-Wg8r1.js +1 -0
  26. package/.output/public/_nuxt/DTYBfjRY.js +1 -0
  27. package/.output/public/_nuxt/{DvgKXPgu2.js → DWcEk1ur2.js} +1 -1
  28. package/.output/public/_nuxt/DaE5saZg.js +1 -0
  29. package/.output/public/_nuxt/Dhqra7NB.js +1 -0
  30. package/.output/public/_nuxt/DlRO_q5L.js +1 -0
  31. package/.output/public/_nuxt/{D8EfUxO2.js → Ds8JbqGB.js} +1 -1
  32. package/.output/public/_nuxt/Dsdy4Ua-.js +1 -0
  33. package/.output/public/_nuxt/{DN5RuZ8k.js → DyisHHzD.js} +1 -1
  34. package/.output/public/_nuxt/{91DZTUMJ.js → E88a-JCG.js} +1 -1
  35. package/.output/public/_nuxt/ORt9oDIy2.js +1 -0
  36. package/.output/public/_nuxt/{By8BpbKH.js → QoCzfpo2.js} +1 -1
  37. package/.output/public/_nuxt/RzXYI9FM.js +23 -0
  38. package/.output/public/_nuxt/{BuktKVqK2.js → arUY5dyq2.js} +2 -2
  39. package/.output/public/_nuxt/bAFueD6a.js +1 -0
  40. package/.output/public/_nuxt/builds/latest.json +1 -1
  41. package/.output/public/_nuxt/builds/meta/54e22640-4fd0-4fee-9077-31d4d4bb7969.json +1 -0
  42. package/.output/public/_nuxt/dcw.rpqpOYQ8.css +1 -0
  43. package/.output/public/_nuxt/{default.BR3e5fPY.css → default.BbgdTDCk.css} +1 -1
  44. package/.output/public/_nuxt/{C9cU_Ujd.js → eHYnGew0.js} +1 -1
  45. package/.output/public/_nuxt/{DM4CNkXz.js → eUGyJdiT.js} +1 -1
  46. package/.output/public/_nuxt/{entry.5qf6EqfN.css → entry.Bv_GCmPP.css} +1 -1
  47. package/.output/public/_nuxt/hb_ceMJP.js +1 -0
  48. package/.output/public/_nuxt/{B1g8pJmr.js → kkEthL84.js} +1 -1
  49. package/.output/public/_nuxt/logs.BS1sb41K.css +1 -0
  50. package/.output/public/_nuxt/pages.BkE-AfIb.css +1 -0
  51. package/.output/public/_nuxt/permissions.DTRtZeTw.css +1 -0
  52. package/.output/public/_nuxt/plugins.BcSEwwGb.css +1 -0
  53. package/.output/public/_nuxt/settings.BqMF2nfj.css +1 -0
  54. package/.output/public/_nuxt/tokens.rW1xHxRW.css +1 -0
  55. package/.output/public/_nuxt/workshop.CbymC2LY.css +1 -0
  56. package/.output/public/_nuxt/zVkqCZ78.js +1 -0
  57. package/.output/server/chunks/_/LeftOutlined.mjs +1 -1
  58. package/.output/server/chunks/_/SearchOutlined.mjs +1 -1
  59. package/.output/server/chunks/_/character-asset.repo.mjs +1 -1
  60. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  61. package/.output/server/chunks/_/nitro.mjs +1549 -1228
  62. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  63. package/.output/server/chunks/_/scene-layout.repo.mjs +1 -1
  64. package/.output/server/chunks/build/Col-biaNnEPf.mjs +1 -1
  65. package/.output/server/chunks/build/{OmpTerminalPanel-COphA1br.mjs → OmpTerminalPanel-Ban3yJZ4.mjs} +4 -5
  66. package/.output/server/chunks/build/OmpTerminalPanel-Ban3yJZ4.mjs.map +1 -0
  67. package/.output/server/chunks/build/{TownView-D8DSdO3H.mjs → TownView-CunmEMzS.mjs} +8 -9
  68. package/.output/server/chunks/build/{TownView-D8DSdO3H.mjs.map → TownView-CunmEMzS.mjs.map} +1 -1
  69. package/.output/server/chunks/build/{_id_-BV4FfiYd.mjs → _id_-CVnMdSeG.mjs} +7 -7
  70. package/.output/server/chunks/build/{_id_-BV4FfiYd.mjs.map → _id_-CVnMdSeG.mjs.map} +1 -1
  71. package/.output/server/chunks/build/{_id_-TP9hvnBM.mjs → _id_-D265Wh_k.mjs} +7 -7
  72. package/.output/server/chunks/build/{_id_-TP9hvnBM.mjs.map → _id_-D265Wh_k.mjs.map} +1 -1
  73. package/.output/server/chunks/build/{_wsId_-Mm9sQSz2.mjs → _wsId_-eNJmBp05.mjs} +17 -17
  74. package/.output/server/chunks/build/{_wsId_-Mm9sQSz2.mjs.map → _wsId_-eNJmBp05.mjs.map} +1 -1
  75. package/.output/server/chunks/build/{agents-To3a5xcZ.mjs → agents-B10wmFri.mjs} +9 -9
  76. package/.output/server/chunks/build/{agents-To3a5xcZ.mjs.map → agents-B10wmFri.mjs.map} +1 -1
  77. package/.output/server/chunks/build/alert-qJnjyRcP.mjs +1 -1
  78. package/.output/server/chunks/build/api-error-dul30BYQ.mjs +1 -1
  79. package/.output/server/chunks/build/button-DEcZFcqN.mjs +2 -2
  80. package/.output/server/chunks/build/{card-Dipvaykh.mjs → card-CCPQoKlh.mjs} +4 -4
  81. package/.output/server/chunks/build/{card-Dipvaykh.mjs.map → card-CCPQoKlh.mjs.map} +1 -1
  82. package/.output/server/chunks/build/{channel-templates-DRsP-qxl.mjs → channel-templates-CpWxVk5A.mjs} +7 -7
  83. package/.output/server/chunks/build/{channel-templates-DRsP-qxl.mjs.map → channel-templates-CpWxVk5A.mjs.map} +1 -1
  84. package/.output/server/chunks/build/{checkbox-dzcpU_Cd.mjs → checkbox-Dv1kjaUZ.mjs} +3 -3
  85. package/.output/server/chunks/build/{checkbox-dzcpU_Cd.mjs.map → checkbox-Dv1kjaUZ.mjs.map} +1 -1
  86. package/.output/server/chunks/build/client-only-D5BzSQc6.mjs +1 -1
  87. package/.output/server/chunks/build/{daq-_hCEaYLd.mjs → daq-DxaXk_8N.mjs} +9 -10
  88. package/.output/server/chunks/build/daq-DxaXk_8N.mjs.map +1 -0
  89. package/.output/server/chunks/build/{dcw-C7pJ4Y0p.mjs → dcw-B0dtiHFG.mjs} +47 -47
  90. package/.output/server/chunks/build/dcw-B0dtiHFG.mjs.map +1 -0
  91. package/.output/server/chunks/build/{default-Dnjs36e8.mjs → default-DdV642BY.mjs} +41 -13
  92. package/.output/server/chunks/build/{default-Dnjs36e8.mjs.map → default-DdV642BY.mjs.map} +1 -1
  93. package/.output/server/chunks/build/drawer-Cmh90erI.mjs +1 -1
  94. package/.output/server/chunks/build/dropdown-vhn1NPFs.mjs +2 -2
  95. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs +554 -0
  96. package/.output/server/chunks/build/hasIn-vQ9LWt-J.mjs.map +1 -0
  97. package/.output/server/chunks/build/initDefaultProps-DIbWwP4R.mjs +1 -1
  98. package/.output/server/chunks/build/{input-sf_BT6o6.mjs → input-DxDqeyQW.mjs} +5 -553
  99. package/.output/server/chunks/build/input-DxDqeyQW.mjs.map +1 -0
  100. package/.output/server/chunks/build/{input-number-Bd55elNN.mjs → input-number-CZ3ZrCsy.mjs} +3 -3
  101. package/.output/server/chunks/build/{input-number-Bd55elNN.mjs.map → input-number-CZ3ZrCsy.mjs.map} +1 -1
  102. package/.output/server/chunks/build/{logs-C039TFW1.mjs → logs-Crf6f1IC.mjs} +39 -40
  103. package/.output/server/chunks/build/logs-Crf6f1IC.mjs.map +1 -0
  104. package/.output/server/chunks/build/menu-WCrlpYVh.mjs +2 -2
  105. package/.output/server/chunks/build/modal-yvUquPj5.mjs +2 -2
  106. package/.output/server/chunks/build/{monitor-MIOvsyLa.mjs → monitor-miqq9xHB.mjs} +11 -11
  107. package/.output/server/chunks/build/{monitor-MIOvsyLa.mjs.map → monitor-miqq9xHB.mjs.map} +1 -1
  108. package/.output/server/chunks/build/{pages-C_VSGSGo.mjs → pages-BmRUbGUi.mjs} +32 -22
  109. package/.output/server/chunks/build/pages-BmRUbGUi.mjs.map +1 -0
  110. package/.output/server/chunks/build/permissions-CxEgXic0.mjs +534 -0
  111. package/.output/server/chunks/build/permissions-CxEgXic0.mjs.map +1 -0
  112. package/.output/server/chunks/build/{plugins-4FMWkN8d.mjs → plugins-wLIKHcIE.mjs} +19 -20
  113. package/.output/server/chunks/build/{plugins-4FMWkN8d.mjs.map → plugins-wLIKHcIE.mjs.map} +1 -1
  114. package/.output/server/chunks/build/popconfirm-CRaHcz5O.mjs +2 -2
  115. package/.output/server/chunks/build/responsiveObserve-CS0UB6wQ.mjs +1 -1
  116. package/.output/server/chunks/build/{segmented-DPe9ZzLO.mjs → segmented-ChmQZwz6.mjs} +5 -4
  117. package/.output/server/chunks/build/{segmented-DPe9ZzLO.mjs.map → segmented-ChmQZwz6.mjs.map} +1 -1
  118. package/.output/server/chunks/build/select-D-CeE5vY.mjs +1 -1
  119. package/.output/server/chunks/build/{settings-DA8IkGLo.mjs → settings-BPBll_7K.mjs} +28 -26
  120. package/.output/server/chunks/build/settings-BPBll_7K.mjs.map +1 -0
  121. package/.output/server/chunks/build/space-CCBYAkXt.mjs +2 -2
  122. package/.output/server/chunks/build/spin-HVY81X_L.mjs +1 -1
  123. package/.output/server/chunks/build/switch-CelRXpcy.mjs +2 -2
  124. package/.output/server/chunks/build/{table-Cswq-l2r.mjs → table-BtksyDlQ.mjs} +5 -5
  125. package/.output/server/chunks/build/{table-Cswq-l2r.mjs.map → table-BtksyDlQ.mjs.map} +1 -1
  126. package/.output/server/chunks/build/{tabs-BM3tAh_J.mjs → tabs-DQv-_-R6.mjs} +3 -3
  127. package/.output/server/chunks/build/{tabs-BM3tAh_J.mjs.map → tabs-DQv-_-R6.mjs.map} +1 -1
  128. package/.output/server/chunks/build/{tag-NO9jEqKy.mjs → tag-A0tZ2Ouq.mjs} +4 -4
  129. package/.output/server/chunks/build/{tag-NO9jEqKy.mjs.map → tag-A0tZ2Ouq.mjs.map} +1 -1
  130. package/.output/server/chunks/build/{teams-DA1lkf1n.mjs → teams-CNflUtPh.mjs} +7 -7
  131. package/.output/server/chunks/build/{teams-DA1lkf1n.mjs.map → teams-CNflUtPh.mjs.map} +1 -1
  132. package/.output/server/chunks/build/{tokens-DKMvvk3e.mjs → tokens-BKLzcdMg.mjs} +53 -84
  133. package/.output/server/chunks/build/tokens-BKLzcdMg.mjs.map +1 -0
  134. package/.output/server/chunks/build/town-BUqRobze.mjs +1 -1
  135. package/.output/server/chunks/build/{town-D0thZ7PK.mjs → town-BbaR-8io.mjs} +9 -10
  136. package/.output/server/chunks/build/town-BbaR-8io.mjs.map +1 -0
  137. package/.output/server/chunks/build/{useDaqStream-BVTRw8_H.mjs → useDaqStream-BkmyQT06.mjs} +34 -23
  138. package/.output/server/chunks/build/useDaqStream-BkmyQT06.mjs.map +1 -0
  139. package/.output/server/chunks/build/{useDcwStream-DNsivqI_.mjs → useDcwStream-DWVoU96J.mjs} +60 -46
  140. package/.output/server/chunks/build/useDcwStream-DWVoU96J.mjs.map +1 -0
  141. package/.output/server/chunks/build/{useDeviceTwins-WeIom7A6.mjs → useDeviceTwins-34WGk9aN.mjs} +2 -2
  142. package/.output/server/chunks/build/{useDeviceTwins-WeIom7A6.mjs.map → useDeviceTwins-34WGk9aN.mjs.map} +1 -1
  143. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +1 -1
  144. package/.output/server/chunks/build/{useOpsLog-DcKnPO43.mjs → useOpsLog-C9zTzYof.mjs} +27 -15
  145. package/.output/server/chunks/build/useOpsLog-C9zTzYof.mjs.map +1 -0
  146. package/.output/server/chunks/build/useSiteConfig-DJe_KMVr.mjs +1 -1
  147. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs +1 -1
  148. package/.output/server/chunks/build/{useWorkshopWs-B3j5wIAK.mjs → useWorkshopWs-CprkZEdq.mjs} +2 -3
  149. package/.output/server/chunks/build/useWorkshopWs-CprkZEdq.mjs.map +1 -0
  150. package/.output/server/chunks/build/{users-CmVvb1oq.mjs → users-D6RNylrW.mjs} +10 -10
  151. package/.output/server/chunks/build/{users-CmVvb1oq.mjs.map → users-D6RNylrW.mjs.map} +1 -1
  152. package/.output/server/chunks/build/{workshop-BhWnJMWs.mjs → workshop-CTcYDq2i.mjs} +29 -24
  153. package/.output/server/chunks/build/{workshop-BhWnJMWs.mjs.map → workshop-CTcYDq2i.mjs.map} +1 -1
  154. package/.output/server/chunks/build/{workspaces-IfORCDJE.mjs → workspaces-BuydxM-3.mjs} +2 -3
  155. package/.output/server/chunks/build/workspaces-BuydxM-3.mjs.map +1 -0
  156. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  157. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  158. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  159. package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
  160. package/.output/server/chunks/routes/api/metrics.mjs +1 -1
  161. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -1
  162. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +1 -1
  163. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +1 -1
  164. package/.output/server/chunks/routes/api/system/config.get.mjs +1 -1
  165. package/.output/server/chunks/routes/api/system/index.get.mjs +1 -1
  166. package/.output/server/chunks/routes/api/system/index.patch.mjs +1 -1
  167. package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +1 -1
  168. package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +1 -1
  169. package/.output/server/chunks/routes/api/system/monitor.get.mjs +1 -1
  170. package/.output/server/chunks/routes/api/system/settings/events.get.mjs +1 -1
  171. package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +1 -1
  172. package/.output/server/chunks/routes/api/users/_id_.delete.mjs +1 -1
  173. package/.output/server/chunks/routes/api/users/_id_.get.mjs +1 -1
  174. package/.output/server/chunks/routes/api/users/_id_.put.mjs +1 -1
  175. package/.output/server/chunks/routes/api/users/index.get.mjs +1 -1
  176. package/.output/server/chunks/routes/api/users/index.post.mjs +1 -1
  177. package/.output/server/chunks/routes/api/users/login.post.mjs +1 -1
  178. package/.output/server/chunks/routes/api/users/logout.post.mjs +1 -1
  179. package/.output/server/chunks/routes/api/users/me.get.mjs +1 -1
  180. package/.output/server/chunks/routes/api/users/register.post.mjs +1 -1
  181. package/.output/server/chunks/routes/api/users/setup-status.get.mjs +1 -1
  182. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +1 -1
  183. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +1 -1
  184. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -1
  185. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +1 -1
  186. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +1 -1
  187. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +1 -1
  188. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -1
  189. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +1 -1
  190. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +1 -1
  191. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +1 -1
  192. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +1 -1
  193. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +19 -8
  194. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -1
  195. package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +1 -1
  196. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +2 -2
  197. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +2 -2
  198. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +1 -1
  199. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +1 -1
  200. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -1
  201. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -1
  202. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +1 -1
  203. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -1
  204. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -1
  205. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +1 -1
  206. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -2
  207. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -1
  208. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -2
  209. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +1 -1
  210. package/.output/server/chunks/routes/api/workshop/caller.mjs +1 -1
  211. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +3 -3
  212. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +1 -1
  213. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +1 -1
  214. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -1
  215. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -1
  216. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -2
  217. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +1 -1
  218. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -1
  219. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +1 -1
  220. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -1
  221. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +1 -1
  222. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +1 -1
  223. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +1 -1
  224. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +1 -1
  225. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +1 -1
  226. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +1 -1
  227. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -1
  228. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +1 -1
  229. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -2
  230. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +1 -1
  231. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -1
  232. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +1 -1
  233. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
  234. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -1
  235. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
  236. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +1 -1
  237. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +1 -1
  238. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -2
  239. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +1 -1
  240. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -2
  241. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +1 -1
  242. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +1 -1
  243. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +3 -3
  244. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +7 -6
  245. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -1
  246. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +5 -4
  247. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs.map +1 -1
  248. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +5 -4
  249. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs.map +1 -1
  250. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +5 -4
  251. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -1
  252. package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +2 -2
  253. package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +2 -2
  254. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +5 -4
  255. package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -1
  256. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +5 -2
  257. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -1
  258. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -2
  259. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +3 -2
  260. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -1
  261. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -2
  262. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -2
  263. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -2
  264. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -2
  265. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -2
  266. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -2
  267. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +7 -6
  268. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -1
  269. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -2
  270. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -2
  271. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +5 -4
  272. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -1
  273. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +4 -3
  274. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -1
  275. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -2
  276. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -2
  277. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -2
  278. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -2
  279. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +4 -4
  280. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -1
  281. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +8 -4
  282. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -1
  283. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +4 -4
  284. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -1
  285. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -2
  286. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -2
  287. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -2
  288. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -2
  289. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +4 -4
  290. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -1
  291. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -2
  292. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +7 -3
  293. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -1
  294. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +3 -2
  295. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -1
  296. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +3 -2
  297. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -1
  298. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -2
  299. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -2
  300. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -2
  301. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -2
  302. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -2
  303. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -2
  304. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -2
  305. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -2
  306. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -2
  307. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -2
  308. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -2
  309. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -2
  310. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +2 -2
  311. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -2
  312. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +5 -3
  313. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -1
  314. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -2
  315. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -2
  316. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -2
  317. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -2
  318. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -1
  319. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -1
  320. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -2
  321. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -2
  322. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
  323. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +2 -2
  324. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +2 -2
  325. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +2 -2
  326. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +2 -2
  327. package/.output/server/chunks/routes/api/workshop/index.get.mjs +1 -1
  328. package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -1
  329. package/.output/server/chunks/routes/api/workshop/index.put.mjs +41 -0
  330. package/.output/server/chunks/routes/api/workshop/index.put.mjs.map +1 -0
  331. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +4 -3
  332. package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -1
  333. package/.output/server/chunks/routes/api/workshop/index11.get.mjs +27 -0
  334. package/.output/server/chunks/routes/api/workshop/index11.get.mjs.map +1 -0
  335. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -1
  336. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -1
  337. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -1
  338. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +4 -4
  339. package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -1
  340. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +5 -4
  341. package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -1
  342. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -2
  343. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +18 -11
  344. package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -1
  345. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -2
  346. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
  347. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -2
  348. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -1
  349. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -1
  350. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +24 -12
  351. package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -1
  352. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -1
  353. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +12 -7
  354. package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -1
  355. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +1 -1
  356. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +1 -1
  357. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +1 -1
  358. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +2 -2
  359. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +2 -2
  360. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +1 -1
  361. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +1 -1
  362. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -2
  363. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -2
  364. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +1 -1
  365. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -1
  366. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -1
  367. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +1 -1
  368. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -1
  369. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +1 -1
  370. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +1 -1
  371. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +1 -1
  372. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -2
  373. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +1 -1
  374. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -1
  375. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +1 -1
  376. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +1 -1
  377. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +1 -1
  378. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -1
  379. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +1 -1
  380. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +1 -1
  381. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +3 -3
  382. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +1 -1
  383. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +1 -1
  384. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +1 -1
  385. package/.output/server/chunks/routes/renderer.mjs +3 -3
  386. package/.output/server/chunks/virtual/entry.mjs +275 -33
  387. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  388. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  389. package/.output/server/index.mjs +1 -1
  390. package/.output/server/package.json +1 -1
  391. package/README-zh.md +15 -0
  392. package/README.md +20 -0
  393. package/app/assets/css/main.css +161 -0
  394. package/app/components/AppSidebar.vue +7 -1
  395. package/app/components/AwChart.vue +12 -2
  396. package/app/composables/useRouteMeta.ts +8 -1
  397. package/app/composables/workshop/apiClient.ts +103 -95
  398. package/app/composables/workshop/useDaqStream.ts +35 -21
  399. package/app/composables/workshop/useDcwStream.ts +22 -5
  400. package/app/composables/workshop/useOpsLog.ts +26 -13
  401. package/app/composables/workshop/useWorkshopWs.ts +11 -2
  402. package/app/pages/dcw/index.vue +1079 -1079
  403. package/app/pages/index.vue +7 -2
  404. package/app/pages/logs/index.vue +621 -621
  405. package/app/pages/permissions/index.vue +330 -0
  406. package/app/pages/plugins/index.vue +6 -3
  407. package/app/pages/settings.vue +4 -2
  408. package/app/pages/tokens.vue +9 -13
  409. package/app/pages/workshop/index.vue +3 -1
  410. package/app/plugins/http.ts +18 -2
  411. package/app/plugins/session-restore.client.ts +7 -2
  412. package/app/stores/workshop/user.ts +14 -1
  413. package/i18n/locales/en.ts +1944 -1906
  414. package/i18n/locales/zh-CN.ts +1943 -1905
  415. package/package.json +1 -1
  416. package/scripts/_dbg-acc-1-setup.mjs +57 -0
  417. package/scripts/_dbg-acc-2-diag.mjs +14 -0
  418. package/scripts/_dbg-acc-2-intervals.mjs +81 -0
  419. package/scripts/_dbg-acc-3-daq.mjs +48 -0
  420. package/scripts/_dbg-acc-4-team.mjs +92 -0
  421. package/scripts/_dbg-acc-5-visual.mjs +63 -0
  422. package/scripts/_dbg-acc-5b-ws-town.mjs +18 -0
  423. package/scripts/_dbg-acc-5c-town.mjs +12 -0
  424. package/scripts/_dbg-acc-6-i18n.mjs +19 -0
  425. package/scripts/_dbg-audit-neg-e2e.mjs +64 -0
  426. package/scripts/_dbg-final-features.mjs +155 -0
  427. package/scripts/_dbg-final-fixups.mjs +62 -0
  428. package/scripts/_dbg-final-visual.mjs +29 -0
  429. package/scripts/_dbg-kicker-check.mjs +11 -0
  430. package/scripts/_dbg-perms-e2e.mjs +102 -0
  431. package/scripts/_dbg-perms-visual.mjs +36 -0
  432. package/scripts/_dbg-plugins-e2e.mjs +1 -1
  433. package/scripts/_dbg-protocol-matrix.mjs +16 -0
  434. package/scripts/_dbg-swatch-check.mjs +10 -0
  435. package/scripts/_dbg-ui-shots.mjs +28 -0
  436. package/sdk/api.mjs +117 -101
  437. package/sdk/context.mjs +240 -219
  438. package/sdk/hooks.mjs +105 -103
  439. package/sdk/index.d.mts +142 -135
  440. package/sdk/lifecycle.mjs +26 -25
  441. package/server/api/workshop/agent-tools/bindings/index.post.ts +40 -20
  442. package/server/api/workshop/daq/[id]/bind.post.ts +5 -2
  443. package/server/api/workshop/daq/[id]/frames/content.get.ts +4 -1
  444. package/server/api/workshop/daq/[id]/frames.get.ts +4 -1
  445. package/server/api/workshop/daq/[id]/samples.get.ts +4 -1
  446. package/server/api/workshop/daq/[id].patch.ts +3 -0
  447. package/server/api/workshop/daq/alarms/[id]/ack.post.ts +20 -15
  448. package/server/api/workshop/daq/controller.post.ts +2 -0
  449. package/server/api/workshop/daq/index.get.ts +5 -3
  450. package/server/api/workshop/daq/index.post.ts +2 -2
  451. package/server/api/workshop/dcw/[id]/bind.post.ts +20 -17
  452. package/server/api/workshop/dcw/[id]/test.post.ts +18 -15
  453. package/server/api/workshop/dcw/[id]/write.post.ts +3 -0
  454. package/server/api/workshop/dcw/index.get.ts +22 -9
  455. package/server/api/workshop/dcw/line/query.get.ts +38 -31
  456. package/server/api/workshop/dcw/lines/[id]/start.post.ts +3 -0
  457. package/server/api/workshop/dcw/lines/[id]/stop.post.ts +3 -0
  458. package/server/api/workshop/dcw/lines/index.get.ts +8 -2
  459. package/server/api/workshop/dcw/lines/index.post.ts +2 -2
  460. package/server/api/workshop/dcw/products/index.post.ts +16 -16
  461. package/server/api/workshop/dcw/runs/[id]/data.get.ts +20 -15
  462. package/server/api/workshop/dcw/runs/index.get.ts +13 -11
  463. package/server/api/workshop/permissions/index.get.ts +30 -0
  464. package/server/api/workshop/permissions/index.put.ts +29 -0
  465. package/server/api/workshop/ws.ts +18 -6
  466. package/server/data/daqs.json +48 -48
  467. package/server/data/dcw-products.json +21 -0
  468. package/server/data/dcw-recipes.json +84 -0
  469. package/server/data/dcw-rollback.json +94 -6
  470. package/server/data/dcw-runs.json +81 -75
  471. package/server/data/dcw-writes.json +108 -0
  472. package/server/data/dcws.json +791 -528
  473. package/server/data/line-runs.json +8 -8
  474. package/server/plugins/backup.ts +119 -116
  475. package/server/repositories/user.repository.ts +86 -6
  476. package/server/services/user.service.ts +5 -3
  477. package/server/services/workshop/daq/bus/index.ts +5 -3
  478. package/server/services/workshop/daq/bus/inproc.adapter.ts +12 -3
  479. package/server/services/workshop/daq/bus/mqtt.adapter.ts +13 -0
  480. package/server/services/workshop/daq/bus/queue-port.ts +2 -0
  481. package/server/services/workshop/daq/daq-controller.ts +18 -1
  482. package/server/services/workshop/db/ops.repo.ts +6 -0
  483. package/server/services/workshop/dcw/dcw-controller.ts +10 -2
  484. package/server/services/workshop/permissions.ts +79 -0
  485. package/server/services/workshop/plugins/host.mjs +38 -1
  486. package/server/services/workshop/scene-events.ts +25 -1
  487. package/shared/config/single-instance.mjs +24 -0
  488. package/shared/daq-protocol.ts +2 -0
  489. package/.output/public/_nuxt/B0HpdCKS.js +0 -1
  490. package/.output/public/_nuxt/B1kA8LhC.js +0 -14
  491. package/.output/public/_nuxt/B9MUiDFl.js +0 -1
  492. package/.output/public/_nuxt/B9dLFSYI.js +0 -1
  493. package/.output/public/_nuxt/BaMkWl5i2.js +0 -1
  494. package/.output/public/_nuxt/BmHvC_OU.js +0 -1
  495. package/.output/public/_nuxt/CBciOiTQ.js +0 -1
  496. package/.output/public/_nuxt/CUMdhxg9.js +0 -1
  497. package/.output/public/_nuxt/CgvGu2IO.js +0 -1
  498. package/.output/public/_nuxt/CjDQPXfv.js +0 -1
  499. package/.output/public/_nuxt/CmHzfVc5.js +0 -3
  500. package/.output/public/_nuxt/Cn3J3NXR.js +0 -23
  501. package/.output/public/_nuxt/Cst47G4-.js +0 -1
  502. package/.output/public/_nuxt/D0Szyn_D.js +0 -1
  503. package/.output/public/_nuxt/D3VJ3lex.js +0 -1
  504. package/.output/public/_nuxt/D8wyHvcz2.js +0 -1
  505. package/.output/public/_nuxt/Dqj2h40U.js +0 -1
  506. package/.output/public/_nuxt/OV6PBW2z.js +0 -1
  507. package/.output/public/_nuxt/builds/meta/92d6bd39-dbc5-46d5-90d8-8387f36715fa.json +0 -1
  508. package/.output/public/_nuxt/dcw.DcDjwvqv.css +0 -1
  509. package/.output/public/_nuxt/logs.BO-BSyjm.css +0 -1
  510. package/.output/public/_nuxt/pKv_VWR4.js +0 -1
  511. package/.output/public/_nuxt/pages.CytEOfUs.css +0 -1
  512. package/.output/public/_nuxt/plugins.Clsky_kl.css +0 -1
  513. package/.output/public/_nuxt/settings.DeRNNUcP.css +0 -1
  514. package/.output/public/_nuxt/tokens.BPLe9ioQ.css +0 -1
  515. package/.output/public/_nuxt/wirVyscc.js +0 -1
  516. package/.output/public/_nuxt/workshop.BIdoGfoC.css +0 -1
  517. package/.output/server/chunks/build/OmpTerminalPanel-COphA1br.mjs.map +0 -1
  518. package/.output/server/chunks/build/daq-_hCEaYLd.mjs.map +0 -1
  519. package/.output/server/chunks/build/dcw-C7pJ4Y0p.mjs.map +0 -1
  520. package/.output/server/chunks/build/input-sf_BT6o6.mjs.map +0 -1
  521. package/.output/server/chunks/build/logs-C039TFW1.mjs.map +0 -1
  522. package/.output/server/chunks/build/pages-C_VSGSGo.mjs.map +0 -1
  523. package/.output/server/chunks/build/settings-DA8IkGLo.mjs.map +0 -1
  524. package/.output/server/chunks/build/tokens-DKMvvk3e.mjs.map +0 -1
  525. package/.output/server/chunks/build/town-D0thZ7PK.mjs.map +0 -1
  526. package/.output/server/chunks/build/useDaqStream-BVTRw8_H.mjs.map +0 -1
  527. package/.output/server/chunks/build/useDcwStream-DNsivqI_.mjs.map +0 -1
  528. package/.output/server/chunks/build/useOpsLog-DcKnPO43.mjs.map +0 -1
  529. package/.output/server/chunks/build/useWorkshopWs-B3j5wIAK.mjs.map +0 -1
  530. package/.output/server/chunks/build/user-Dk-ytEUV.mjs +0 -140
  531. package/.output/server/chunks/build/user-Dk-ytEUV.mjs.map +0 -1
  532. package/.output/server/chunks/build/workspaces-IfORCDJE.mjs.map +0 -1
  533. /package/.output/public/_nuxt/{CNs_Ozdc2.js → CNs_Ozdc.js} +0 -0
  534. /package/.output/public/_nuxt/{Cno6kYiO2.js → Cno6kYiO.js} +0 -0
@@ -1,10 +1,10 @@
1
1
  import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:import.meta.url,env:process.env};import { getCurrentScope, ref, watchEffect, getCurrentInstance, onBeforeUnmount, onDeactivated, onActivated, shallowReactive, reactive, effectScope, hasInjectionContext, inject, toRef, customRef, defineComponent, shallowRef, h, resolveComponent, computed, unref, isRef, toValue, onServerPrefetch, nextTick, queuePostFlushCb, provide, watch, triggerRef, Fragment, isVNode, createVNode, Comment, Text, TransitionGroup, toRaw, Teleport, render, createApp, onErrorCaptured, resolveDynamicComponent, mergeProps, withCtx, defineAsyncComponent, createCommentVNode, isReadonly, Suspense, useSSRContext, isShallow, isReactive } from 'vue';
2
- import { aJ as createHooks, n as createError, aK as sanitizeStatusCode, aL as klona, Q as getRequestHeader, aM as isEqual$1, aN as setCookie, aO as getCookie, aP as deleteCookie, aQ as $fetch, aR as baseURL, k as getRequestHeaders, aS as defu, aT as getRequestProtocol, aU as appendResponseHeader } from '../_/nitro.mjs';
2
+ import { aP as createHooks, n as createError, aQ as sanitizeStatusCode, aR as klona, Q as getRequestHeader, aS as isEqual$1, aT as setCookie, aU as getCookie, aV as deleteCookie, aW as $fetch, aX as baseURL, k as getRequestHeaders, aY as defu, aZ as getRequestProtocol, a_ as appendResponseHeader } from '../_/nitro.mjs';
3
3
  import { walkResolver } from 'unhead/utils';
4
4
  import { i as injectHead$1, V as VueResolver, h as headSymbol } from '../routes/renderer.mjs';
5
5
  import { START_LOCATION, useRoute as useRoute$1, RouterView, createMemoryHistory, createRouter, isNavigationFailure } from 'vue-router';
6
6
  import * as import_pinia from 'pinia';
7
- import { setActivePinia, createPinia, shouldHydrate } from 'pinia';
7
+ import { defineStore, setActivePinia, createPinia, shouldHydrate } from 'pinia';
8
8
  import { generate as generate$3, blue } from '@ant-design/colors';
9
9
  import axios from 'axios';
10
10
  import { ssrRenderSuspense, ssrRenderComponent, ssrRenderVNode, ssrRenderAttrs, ssrInterpolate } from 'vue/server-renderer';
@@ -6472,7 +6472,7 @@ var b = Array.isArray || function(e) {
6472
6472
  var O = function(e) {
6473
6473
  return "[object Function]" === a.call(e);
6474
6474
  };
6475
- var g = function(e) {
6475
+ var g$1 = function(e) {
6476
6476
  return s(e) && d(e, "_vueTypes_name");
6477
6477
  };
6478
6478
  var m = function(e) {
@@ -6492,7 +6492,7 @@ function _(e, t, n) {
6492
6492
  var r;
6493
6493
  var i = true, o = "";
6494
6494
  r = s(e) ? e : { type: e };
6495
- var u = g(r) ? r._vueTypes_name + " - " : "";
6495
+ var u = g$1(r) ? r._vueTypes_name + " - " : "";
6496
6496
  if (m(r) && null !== r.type) {
6497
6497
  if (void 0 === r.type || true === r.type) return i;
6498
6498
  if (!r.required && void 0 === t) return i;
@@ -6626,7 +6626,7 @@ function B(e) {
6626
6626
  for (var t = false, n = [], r = 0; r < e.length; r += 1) {
6627
6627
  var i = e[r];
6628
6628
  if (m(i)) {
6629
- if (g(i) && "oneOf" === i._vueTypes_name) {
6629
+ if (g$1(i) && "oneOf" === i._vueTypes_name) {
6630
6630
  n = n.concat(i.type);
6631
6631
  continue;
6632
6632
  }
@@ -6643,7 +6643,7 @@ function B(e) {
6643
6643
  type: n,
6644
6644
  validator: function(t) {
6645
6645
  var n = [], r = e.some(function(e) {
6646
- var r = _(g(e) && "oneOf" === e._vueTypes_name ? e.type || null : e, t);
6646
+ var r = _(g$1(e) && "oneOf" === e._vueTypes_name ? e.type || null : e, t);
6647
6647
  return "string" == typeof r && n.push(r), true === r;
6648
6648
  });
6649
6649
  return r || y("oneOfType - provided value does not match any of the " + n.length + " passed-in validators:\n" + P(n.join("\n"))), r;
@@ -6721,7 +6721,7 @@ var $ = function() {
6721
6721
  ]);
6722
6722
  if (d(this, n)) throw new TypeError("[VueTypes error]: Type \"" + n + "\" already defined");
6723
6723
  var c, l = f.type;
6724
- return g(l) ? (delete f.type, Object.defineProperty(this, n, a ? { get: function() {
6724
+ return g$1(l) ? (delete f.type, Object.defineProperty(this, n, a ? { get: function() {
6725
6725
  return k(n, l, f);
6726
6726
  } } : { value: function() {
6727
6727
  var e, t = k(n, l, f);
@@ -9353,74 +9353,79 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9353
9353
  name: "workshop-w-wsId",
9354
9354
  path: "/workshop/w/:wsId()",
9355
9355
  meta: { layout: "default" },
9356
- component: () => import('../build/_wsId_-Mm9sQSz2.mjs')
9356
+ component: () => import('../build/_wsId_-eNJmBp05.mjs')
9357
9357
  },
9358
9358
  {
9359
9359
  name: "workshop-agents",
9360
9360
  path: "/workshop/agents",
9361
9361
  meta: { layout: "default" },
9362
- component: () => import('../build/agents-To3a5xcZ.mjs')
9362
+ component: () => import('../build/agents-B10wmFri.mjs')
9363
9363
  },
9364
9364
  {
9365
9365
  name: "workshop-channel-templates",
9366
9366
  path: "/workshop/channel-templates",
9367
9367
  meta: { layout: "default" },
9368
- component: () => import('../build/channel-templates-DRsP-qxl.mjs')
9368
+ component: () => import('../build/channel-templates-CpWxVk5A.mjs')
9369
9369
  },
9370
9370
  {
9371
9371
  name: "workshop-teams",
9372
9372
  path: "/workshop/teams",
9373
9373
  meta: { layout: "default" },
9374
- component: () => import('../build/teams-DA1lkf1n.mjs')
9374
+ component: () => import('../build/teams-CNflUtPh.mjs')
9375
9375
  },
9376
9376
  {
9377
9377
  name: "daq-id",
9378
9378
  path: "/daq/:id()",
9379
9379
  meta: { layout: "default" },
9380
- component: () => import('../build/_id_-BV4FfiYd.mjs')
9380
+ component: () => import('../build/_id_-CVnMdSeG.mjs')
9381
9381
  },
9382
9382
  {
9383
9383
  name: "dcw-id",
9384
9384
  path: "/dcw/:id()",
9385
- component: () => import('../build/_id_-TP9hvnBM.mjs')
9385
+ component: () => import('../build/_id_-D265Wh_k.mjs')
9386
9386
  },
9387
9387
  {
9388
9388
  name: "daq",
9389
9389
  path: "/daq",
9390
9390
  meta: { layout: "default" },
9391
- component: () => import('../build/daq-_hCEaYLd.mjs')
9391
+ component: () => import('../build/daq-DxaXk_8N.mjs')
9392
9392
  },
9393
9393
  {
9394
9394
  name: "dcw",
9395
9395
  path: "/dcw",
9396
- component: () => import('../build/dcw-C7pJ4Y0p.mjs')
9396
+ component: () => import('../build/dcw-B0dtiHFG.mjs')
9397
9397
  },
9398
9398
  {
9399
9399
  name: "logs",
9400
9400
  path: "/logs",
9401
- component: () => import('../build/logs-C039TFW1.mjs')
9401
+ component: () => import('../build/logs-Crf6f1IC.mjs')
9402
9402
  },
9403
9403
  {
9404
9404
  name: "monitor",
9405
9405
  path: "/monitor",
9406
9406
  meta: { layout: "default" },
9407
- component: () => import('../build/monitor-MIOvsyLa.mjs')
9407
+ component: () => import('../build/monitor-miqq9xHB.mjs')
9408
+ },
9409
+ {
9410
+ name: "permissions",
9411
+ path: "/permissions",
9412
+ component: () => import('../build/permissions-CxEgXic0.mjs')
9408
9413
  },
9409
9414
  {
9410
9415
  name: "plugins",
9411
9416
  path: "/plugins",
9412
- component: () => import('../build/plugins-4FMWkN8d.mjs')
9417
+ component: () => import('../build/plugins-wLIKHcIE.mjs')
9413
9418
  },
9414
9419
  {
9415
9420
  name: "settings",
9416
9421
  path: "/settings",
9417
- component: () => import('../build/settings-DA8IkGLo.mjs')
9422
+ component: () => import('../build/settings-BPBll_7K.mjs')
9418
9423
  },
9419
9424
  {
9420
9425
  name: "tokens",
9421
9426
  path: "/tokens",
9422
9427
  meta: { layout: "default" },
9423
- component: () => import('../build/tokens-DKMvvk3e.mjs')
9428
+ component: () => import('../build/tokens-BKLzcdMg.mjs')
9424
9429
  },
9425
9430
  {
9426
9431
  name: "town",
@@ -9429,23 +9434,23 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Froutes_default = [
9429
9434
  layout: "town",
9430
9435
  title: "Digital Twin"
9431
9436
  },
9432
- component: () => import('../build/town-D0thZ7PK.mjs')
9437
+ component: () => import('../build/town-BbaR-8io.mjs')
9433
9438
  },
9434
9439
  {
9435
9440
  name: "users",
9436
9441
  path: "/users",
9437
- component: () => import('../build/users-CmVvb1oq.mjs')
9442
+ component: () => import('../build/users-D6RNylrW.mjs')
9438
9443
  },
9439
9444
  {
9440
9445
  name: "workshop",
9441
9446
  path: "/workshop",
9442
9447
  meta: { layout: "default" },
9443
- component: () => import('../build/workshop-BhWnJMWs.mjs')
9448
+ component: () => import('../build/workshop-CTcYDq2i.mjs')
9444
9449
  },
9445
9450
  {
9446
9451
  name: "index",
9447
9452
  path: "/",
9448
- component: () => import('../build/pages-C_VSGSGo.mjs')
9453
+ component: () => import('../build/pages-BmRUbGUi.mjs')
9449
9454
  }
9450
9455
  ];
9451
9456
  //#endregion
@@ -12921,7 +12926,8 @@ var zh_CN_default$1 = {
12921
12926
  users: "用户管理",
12922
12927
  monitor: "运行时监控",
12923
12928
  plugins: "插件管理",
12924
- settings: "系统设置"
12929
+ settings: "系统设置",
12930
+ permissions: "权限管理"
12925
12931
  },
12926
12932
  header: {
12927
12933
  collapse: "折叠菜单",
@@ -12962,6 +12968,7 @@ var zh_CN_default$1 = {
12962
12968
  lines: "产线清单"
12963
12969
  },
12964
12970
  trendY: "量程占比 %",
12971
+ trendWaiting: "正在等待实时数据流…",
12965
12972
  runNow: "运行中",
12966
12973
  standBy: "待机",
12967
12974
  pipelineSeries: {
@@ -13133,6 +13140,15 @@ var zh_CN_default$1 = {
13133
13140
  groupI18n: "国际化",
13134
13141
  groupSecurity: "安全",
13135
13142
  groupDaq: "数采",
13143
+ groupApi: "API",
13144
+ groupMemory: "记忆系统",
13145
+ groupOmp: "Agent Harness",
13146
+ groupHarness: "Harness 接入",
13147
+ groupDcw: "数控写控",
13148
+ groupWorkshop: "车间运行",
13149
+ groupBackup: "数据备份",
13150
+ groupRetention: "数据保留",
13151
+ groupLog: "日志",
13136
13152
  server: {
13137
13153
  host: "监听地址",
13138
13154
  devPort: "开发端口",
@@ -13669,7 +13685,7 @@ var zh_CN_default$1 = {
13669
13685
  k3wj9n050: "产线",
13670
13686
  k11nndsp051: "控制模板 ·",
13671
13687
  k3zz0f052: "打标",
13672
- k19dlbli053: "光晕色自动取色板(",
13688
+ k19dlbli053: "跟随主题自动配色",
13673
13689
  k3x23c054: "内置",
13674
13690
  k1eox1el055: "● 运行中",
13675
13691
  k18moyq1056: "选择配方后即可开跑数据采集",
@@ -14787,6 +14803,33 @@ var zh_CN_default$1 = {
14787
14803
  network: "无法连接服务器,请检查网络与服务状态",
14788
14804
  fallback: "操作失败,请稍后重试"
14789
14805
  },
14806
+ permissions: {
14807
+ title: "权限管理",
14808
+ subtitle: "用户 × 产线三态授权:无权 / 仅查看(数采只读) / 可操控(数采+数控全量);普通用户默认无权",
14809
+ search: "搜索用户名或邮箱",
14810
+ loadFail: "权限数据加载失败",
14811
+ saveFail: "保存授权失败",
14812
+ saved: "已保存 {n} 项授权变更",
14813
+ colUser: "用户",
14814
+ colEmail: "邮箱",
14815
+ colRole: "角色",
14816
+ colStatus: "状态",
14817
+ colChannels: "Channel 数",
14818
+ colGrants: "产线授权",
14819
+ colOps: "操作",
14820
+ active: "正常",
14821
+ manage: "授权管理",
14822
+ detail: "权限详情",
14823
+ secProfile: "基本信息",
14824
+ secChannels: "创建的 Channel",
14825
+ noChannels: "该用户尚未创建 Channel",
14826
+ secMatrix: "产线授权矩阵",
14827
+ save: "保存变更({n})",
14828
+ matrixHint: "无权=后端不返回该产线数据(前端/数字孪生不可见);仅查看=数采节点只读;可操控=数采读取+数控写控全量。",
14829
+ none: "无权",
14830
+ readonly: "仅查看",
14831
+ operate: "可操控"
14832
+ },
14790
14833
  error: {
14791
14834
  backHome: "返回首页",
14792
14835
  lost: "页面走失了"
@@ -14820,7 +14863,8 @@ var en_default = {
14820
14863
  users: "Users",
14821
14864
  monitor: "Runtime Monitor",
14822
14865
  plugins: "Plugins",
14823
- settings: "Settings"
14866
+ settings: "Settings",
14867
+ permissions: "Permissions"
14824
14868
  },
14825
14869
  header: {
14826
14870
  collapse: "Collapse menu",
@@ -14861,6 +14905,7 @@ var en_default = {
14861
14905
  lines: "Line Fleet"
14862
14906
  },
14863
14907
  trendY: "Range %",
14908
+ trendWaiting: "Waiting for live data…",
14864
14909
  runNow: "Running",
14865
14910
  standBy: "Standby",
14866
14911
  pipelineSeries: {
@@ -15032,6 +15077,15 @@ var en_default = {
15032
15077
  groupI18n: "i18n",
15033
15078
  groupSecurity: "Security",
15034
15079
  groupDaq: "DAQ",
15080
+ groupApi: "API",
15081
+ groupMemory: "Memory",
15082
+ groupOmp: "Agent Harness",
15083
+ groupHarness: "Harness Adapters",
15084
+ groupDcw: "Write Control",
15085
+ groupWorkshop: "Workshop",
15086
+ groupBackup: "Backup",
15087
+ groupRetention: "Retention",
15088
+ groupLog: "Logs",
15035
15089
  server: {
15036
15090
  host: "Listen address",
15037
15091
  devPort: "Dev port",
@@ -15568,7 +15622,7 @@ var en_default = {
15568
15622
  k3wj9n050: "Line",
15569
15623
  k11nndsp051: "Control Template ·",
15570
15624
  k3zz0f052: "Tagged",
15571
- k19dlbli053: "Halo color auto from palette (",
15625
+ k19dlbli053: "Color follows the theme",
15572
15626
  k3x23c054: "Built-in",
15573
15627
  k1eox1el055: "● Running",
15574
15628
  k18moyq1056: "Acquisition starts once a recipe is selected",
@@ -16686,6 +16740,33 @@ var en_default = {
16686
16740
  network: "Cannot reach the server, check network and service status",
16687
16741
  fallback: "Action failed, please retry later"
16688
16742
  },
16743
+ permissions: {
16744
+ title: "Permissions",
16745
+ subtitle: "User × line three-state grants: none / read-only (DAQ) / operate (DAQ+DCW); users default to none",
16746
+ search: "Search name or email",
16747
+ loadFail: "Failed to load permission data",
16748
+ saveFail: "Failed to save grants",
16749
+ saved: "Saved {n} grant change(s)",
16750
+ colUser: "User",
16751
+ colEmail: "Email",
16752
+ colRole: "Role",
16753
+ colStatus: "Status",
16754
+ colChannels: "Channels",
16755
+ colGrants: "Line grants",
16756
+ colOps: "Actions",
16757
+ active: "Active",
16758
+ manage: "Manage",
16759
+ detail: "Permission detail",
16760
+ secProfile: "Profile",
16761
+ secChannels: "Created channels",
16762
+ noChannels: "No channels created by this user",
16763
+ secMatrix: "Line grant matrix",
16764
+ save: "Save ({n})",
16765
+ matrixHint: "none = line data is withheld server-side (invisible in UI & digital twin); read-only = DAQ read; operate = full DAQ read + DCW write.",
16766
+ none: "None",
16767
+ readonly: "Read-only",
16768
+ operate: "Operate"
16769
+ },
16689
16770
  error: {
16690
16771
  backHome: "Back to Home",
16691
16772
  lost: "Page lost"
@@ -17886,6 +17967,155 @@ var theme_default = {
17886
17967
  compactAlgorithm: derivative
17887
17968
  };
17888
17969
  //#endregion
17970
+ //#region app/stores/workshop/user.ts
17971
+ /**
17972
+ * 用户身份(全局用户系统集成):register/login/logout/多 token CRUD;
17973
+ * token 写入 cookie 'token' 供 $http 拦截器全局注入(Authorization: Bearer)。
17974
+ * WS sub / 手写 fetch 场景直接读 store.token。
17975
+ * 身份源:/api/users/*(data/users.sqlite 全局用户系统,非 workshop 本地用户)。
17976
+ */
17977
+ var useUserStore = defineStore("workshop.user", {
17978
+ state: () => ({ user: null }),
17979
+ getters: {
17980
+ isLoggedIn: (state) => state.user !== null,
17981
+ token: (state) => state.user?.token ?? "",
17982
+ /** admin 角色(最高管理权限:全量监控/任意模板/用户管理) */
17983
+ isAdmin: (state) => state.user?.role === "admin"
17984
+ },
17985
+ actions: {
17986
+ applyCookie() {},
17987
+ /** 以 me 响应补全 tokenId(注册/登录签发的新 token 尚未绑定 id) */
17988
+ async _attachTokenId(token) {
17989
+ const res = await $fetch$2("/api/users/me", { headers: { authorization: `Bearer ${token}` } });
17990
+ if (res.code === 0 && res.data && this.user) this.user.tokenId = res.data.tokenId;
17991
+ },
17992
+ async register(name, email, password) {
17993
+ const res = await $fetch$2("/api/users/register", {
17994
+ method: "POST",
17995
+ body: {
17996
+ name: name.trim(),
17997
+ email: email.trim(),
17998
+ password
17999
+ }
18000
+ });
18001
+ if (res.code !== 0 || !res.data) throw new Error(res.message ?? "注册失败");
18002
+ this.user = {
18003
+ ...res.data.user,
18004
+ token: res.data.token,
18005
+ tokenId: ""
18006
+ };
18007
+ this.applyCookie();
18008
+ await this._attachTokenId(res.data.token);
18009
+ return this.user;
18010
+ },
18011
+ async login(email, password) {
18012
+ const res = await $fetch$2("/api/users/login", {
18013
+ method: "POST",
18014
+ body: {
18015
+ email: email.trim(),
18016
+ password
18017
+ }
18018
+ });
18019
+ if (res.code !== 0 || !res.data) throw new Error(res.message ?? "登录失败");
18020
+ this.user = {
18021
+ ...res.data.user,
18022
+ token: res.data.token,
18023
+ tokenId: ""
18024
+ };
18025
+ this.applyCookie();
18026
+ await this._attachTokenId(res.data.token);
18027
+ return this.user;
18028
+ },
18029
+ async loginWithToken(token) {
18030
+ const trimmed = token.trim();
18031
+ if (!trimmed) throw new Error("token 不能为空");
18032
+ const res = await $fetch$2("/api/users/me", { headers: { authorization: `Bearer ${trimmed}` } });
18033
+ if (res.code !== 0 || !res.data) throw new Error(res.message ?? "token 无效");
18034
+ this.user = {
18035
+ ...res.data,
18036
+ token: trimmed
18037
+ };
18038
+ this.applyCookie();
18039
+ return this.user;
18040
+ },
18041
+ async refresh() {
18042
+ if (!this.user) return;
18043
+ try {
18044
+ await this.loginWithToken(this.user.token);
18045
+ } catch {
18046
+ this.logout();
18047
+ }
18048
+ },
18049
+ async logout() {
18050
+ const t = this.user?.token;
18051
+ this.user = null;
18052
+ this.applyCookie();
18053
+ if (t) try {
18054
+ await $fetch$2("/api/users/logout", {
18055
+ method: "POST",
18056
+ headers: { authorization: `Bearer ${t}` }
18057
+ });
18058
+ } catch {}
18059
+ },
18060
+ authHeaders() {
18061
+ const t = this.user?.token;
18062
+ return t ? { authorization: `Bearer ${t}` } : {};
18063
+ },
18064
+ async listTokens() {
18065
+ const res = await $fetch$2("/api/users/tokens", { headers: this.authHeaders() });
18066
+ if (res.code !== 0 || !res.data) throw new Error(res.message ?? "获取 token 列表失败");
18067
+ return res.data;
18068
+ },
18069
+ async createToken(label) {
18070
+ const res = await $fetch$2("/api/users/tokens", {
18071
+ method: "POST",
18072
+ body: { label: label.trim() },
18073
+ headers: this.authHeaders()
18074
+ });
18075
+ if (res.code !== 0 || !res.data) throw new Error(res.message ?? "创建 token 失败");
18076
+ return res.data;
18077
+ },
18078
+ async renameToken(id, label) {
18079
+ const res = await $fetch$2(`/api/users/tokens/${id}`, {
18080
+ method: "PATCH",
18081
+ body: { label: label.trim() },
18082
+ headers: this.authHeaders()
18083
+ });
18084
+ if (res.code !== 0 || !res.data) throw new Error(res.message ?? "更新 token 失败");
18085
+ return res.data;
18086
+ },
18087
+ /** 查看存档明文(随时可查;404=非本人/不存在, 410=旧数据仅存哈希) */
18088
+ async revealToken(id) {
18089
+ const res = await $fetch$2(`/api/users/tokens/${id}/token`, { headers: this.authHeaders() });
18090
+ if (res.code !== 0 || !res.data) throw new Error(res.message ?? "查看 token 失败");
18091
+ return res.data.token;
18092
+ },
18093
+ async revokeToken(id) {
18094
+ const res = await $fetch$2(`/api/users/tokens/${id}`, {
18095
+ method: "DELETE",
18096
+ headers: this.authHeaders()
18097
+ });
18098
+ if (res.code !== 0) throw new Error(res.message ?? "删除 token 失败");
18099
+ if (this.user && id === this.user.tokenId) this.logout();
18100
+ }
18101
+ },
18102
+ persist: {
18103
+ pick: ["user"],
18104
+ afterHydrate: (ctx) => {
18105
+ const store = ctx.store;
18106
+ if (!store.user) return;
18107
+ try {
18108
+ const cookie = useCookie("token");
18109
+ if (cookie.value) store.user.token = cookie.value;
18110
+ else store.user = null;
18111
+ } catch {}
18112
+ }
18113
+ }
18114
+ });
18115
+ //#endregion
18116
+ //#region app/plugins/http.ts
18117
+ var g = globalThis;
18118
+ //#endregion
17889
18119
  //#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Fplugins.server.mjs
17890
18120
  var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fplugins_server_default = [
17891
18121
  payloadPlugin,
@@ -17900,7 +18130,7 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fplugins_server_default =
17900
18130
  virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fcomponents_plugin_default,
17901
18131
  virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Funocss_default,
17902
18132
  plugin_default,
17903
- defineNuxtPlugin(() => {
18133
+ defineNuxtPlugin((nuxtApp) => {
17904
18134
  const config = useRuntimeConfig().public;
17905
18135
  const instance = axios.create({
17906
18136
  baseURL: config.apiBase,
@@ -17914,8 +18144,20 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fplugins_server_default =
17914
18144
  instance.interceptors.response.use((res) => res.data, (error) => {
17915
18145
  const status = error?.response?.status;
17916
18146
  const msg = error?.response?.data?.message || error.message || "请求失败";
17917
- if (status === 401) api$1.error("登录已过期,请重新登录");
17918
- else if (status >= 500) api$1.error("服务器异常,请稍后重试");
18147
+ if (status === 401) {
18148
+ try {
18149
+ const cookie = useCookie("token");
18150
+ cookie.value = null;
18151
+ useUserStore(nuxtApp.$pinia).$reset();
18152
+ } catch {}
18153
+ if (!g.__awShown401) {
18154
+ g.__awShown401 = true;
18155
+ api$1.error("登录已过期,请重新登录");
18156
+ setTimeout(() => {
18157
+ g.__awShown401 = false;
18158
+ }, 3e3);
18159
+ }
18160
+ } else if (status >= 500) api$1.error("服务器异常,请稍后重试");
17919
18161
  else api$1.error(msg);
17920
18162
  return Promise.reject(error);
17921
18163
  });
@@ -17942,7 +18184,7 @@ var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Fplugins_server_default =
17942
18184
  //#endregion
17943
18185
  //#region virtual:nuxt:node_modules%2F.cache%2Fnuxt%2F.nuxt%2Flayouts.mjs
17944
18186
  var virtual_nuxt_node_modules_2F_cache_2Fnuxt_2F_nuxt_2Flayouts_default = {
17945
- default: defineAsyncComponent(() => import('../build/default-Dnjs36e8.mjs').then((m) => m.default || m)),
18187
+ default: defineAsyncComponent(() => import('../build/default-DdV642BY.mjs').then((m) => m.default || m)),
17946
18188
  town: defineAsyncComponent(() => import('../build/town-BUqRobze.mjs').then((m) => m.default || m))
17947
18189
  };
17948
18190
  //#endregion
@@ -18701,5 +18943,5 @@ const entry = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
18701
18943
  default: entry_default
18702
18944
  }, Symbol.toStringTag, { value: 'Module' }));
18703
18945
 
18704
- export { tuple as $, eventType as A, presetPrimaryColors as B, CloseCircleFilled as C, genFocusStyle as D, sanitizeTag as E, isValidElement as F, isFragment as G, getTransitionName as H, getStyle$1 as I, getSlot as J, Keyframe as K, getEvents as L, contains as M, hasProp as N, getComponent as O, PropTypes as P, findDOMNode as Q, useProvidePortal as R, getOptionProps as S, getMotion$1 as T, Icon as U, useInjectDisabled as V, LoadingOutlined as W, canUseDom as X, Portal_default as Y, useToken$1 as Z, _plugin_vue_export_helper_default as _, useRoute as a, useProviderSize as a0, useProviderDisabled as a1, useInjectGlobalForm as a2, ExclamationCircleFilled as a3, useLocaleReceiver as a4, localeValues$1 as a5, arrayType as a6, getTransitionGroupProps as a7, textEllipsis as a8, getTransitionDirection as a9, isEmptyElement as aA, vNodeType as aB, ExclamationCircleOutlined as aC, CloseCircleOutlined as aD, InfoCircleOutlined as aE, CheckCircleOutlined as aF, useAppStore as aG, useRuntimeConfig as aH, useRuntimeConfigStore as aI, theme_default as aJ, composables_exports as aK, storages as aL, entry as aM, DefaultRenderEmpty as aa, resetIcon as ab, clearFix as ac, getClass as ad, capitalize$1 as ae, genFocusOutline as af, isValid as ag, skipFlattenKey as ah, TinyColor as ai, camelize as aj, toPx as ak, InfoCircleFilled as al, useConfigContextInject as am, globalConfigForApi as an, ConfigProvider as ao, getConfirmLocale as ap, $fetch$2 as aq, useNuxtApp as ar, useHttp as as, appDiagnostics as at, en_US_default$1 as au, splitAttrs as av, zh_CN_default$2 as aw, empty_default as ax, NuxtLink as ay, filterEmptyWithUndefined as az, useHead$1 as b, api$1 as c, useConfigInject_default as d, _extends as e, flattenChildren as f, getPropsSlot as g, classNames as h, _objectSpread2 as i, getTransitionProps as j, genComponentStyleHook as k, filterEmpty as l, merge as m, navigateTo as n, warning$1 as o, CloseOutlined as p, CheckCircleFilled as q, someType as r, stringType as s, objectType as t, useI18n as u, anyType as v, withInstall as w, booleanType as x, functionType as y, resetComponent as z };
18946
+ export { useToken$1 as $, resetComponent as A, eventType as B, CloseCircleFilled as C, presetPrimaryColors as D, genFocusStyle as E, sanitizeTag as F, isValidElement as G, isFragment as H, getTransitionName as I, getStyle$1 as J, Keyframe as K, getSlot as L, getEvents as M, contains as N, hasProp as O, PropTypes as P, getComponent as Q, findDOMNode as R, useProvidePortal as S, getOptionProps as T, getMotion$1 as U, Icon as V, useInjectDisabled as W, LoadingOutlined as X, canUseDom as Y, Portal_default as Z, _plugin_vue_export_helper_default as _, useRoute as a, tuple as a0, useProviderSize as a1, useProviderDisabled as a2, useInjectGlobalForm as a3, ExclamationCircleFilled as a4, useLocaleReceiver as a5, localeValues$1 as a6, arrayType as a7, getTransitionGroupProps as a8, textEllipsis as a9, filterEmptyWithUndefined as aA, isEmptyElement as aB, vNodeType as aC, ExclamationCircleOutlined as aD, CloseCircleOutlined as aE, InfoCircleOutlined as aF, CheckCircleOutlined as aG, useAppStore as aH, useRuntimeConfig as aI, useRuntimeConfigStore as aJ, theme_default as aK, composables_exports as aL, storages as aM, entry as aN, getTransitionDirection as aa, DefaultRenderEmpty as ab, resetIcon as ac, getClass as ad, clearFix as ae, capitalize$1 as af, genFocusOutline as ag, isValid as ah, skipFlattenKey as ai, TinyColor as aj, camelize as ak, toPx as al, InfoCircleFilled as am, useConfigContextInject as an, globalConfigForApi as ao, ConfigProvider as ap, getConfirmLocale as aq, $fetch$2 as ar, useNuxtApp as as, useHttp as at, appDiagnostics as au, en_US_default$1 as av, splitAttrs as aw, zh_CN_default$2 as ax, empty_default as ay, NuxtLink as az, useUserStore as b, useHead$1 as c, api$1 as d, useConfigInject_default as e, flattenChildren as f, getPropsSlot as g, _extends as h, classNames as i, _objectSpread2 as j, getTransitionProps as k, genComponentStyleHook as l, merge as m, navigateTo as n, filterEmpty as o, warning$1 as p, CloseOutlined as q, CheckCircleFilled as r, stringType as s, someType as t, useI18n as u, objectType as v, withInstall as w, anyType as x, booleanType as y, functionType as z };
18705
18947
  //# sourceMappingURL=entry.mjs.map