agentworkshop 0.7.6 → 0.7.8

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 (538) hide show
  1. package/.AgentWorkShop/prompts/host-tools.json +1 -1
  2. package/.output/.AgentWorkShop/prompts/host-tools.json +1 -1
  3. package/.output/nitro.json +1 -1
  4. package/.output/public/_nuxt/{rzGB_ojX.js → 3612gD2V.js} +2 -2
  5. package/.output/public/_nuxt/8eIQAVlb.js +1 -0
  6. package/.output/public/_nuxt/Ah9qOv1m.js +1 -0
  7. package/.output/public/_nuxt/{DdPeifHR.js → B4Fia4FB.js} +1 -1
  8. package/.output/public/_nuxt/B7aqqzkY.js +1 -0
  9. package/.output/public/_nuxt/BJ-fxrSw.js +1 -0
  10. package/.output/public/_nuxt/{DPDqAD1e.js → BSXx2vqR.js} +1 -1
  11. package/.output/public/_nuxt/{CdSgfcYR.js → BVZjSVs2.js} +1 -1
  12. package/.output/public/_nuxt/{DP6bdyIp.js → BVzDoF8t.js} +1 -1
  13. package/.output/public/_nuxt/BYL0Rjqj.js +7 -0
  14. package/.output/public/_nuxt/{CXmkVXS5.js → BjVLsC3M.js} +1 -1
  15. package/.output/public/_nuxt/{7ZABjMRh2.js → BkfchkK62.js} +1 -1
  16. package/.output/public/_nuxt/BnVoQ74r.js +1 -0
  17. package/.output/public/_nuxt/Bnp4vIAf.js +1 -0
  18. package/.output/public/_nuxt/BsMpJf7S.js +70 -0
  19. package/.output/public/_nuxt/{Z8k0uMSI.js → Bt_HDizI.js} +1 -1
  20. package/.output/public/_nuxt/Bu-P92Pe.js +18 -0
  21. package/.output/public/_nuxt/ButLXkjo.js +2 -0
  22. package/.output/public/_nuxt/{D8DDDzV62.js → C2iWjzEC2.js} +1 -1
  23. package/.output/public/_nuxt/{HWXLx5Hz.js → C8dxXc6K.js} +5 -5
  24. package/.output/public/_nuxt/CGdPdJPP.js +1 -0
  25. package/.output/public/_nuxt/{CN7Zh8GQ.js → CRGlf1Gb.js} +1 -1
  26. package/.output/public/_nuxt/{DSBfvCi5.js → CblLEiCZ.js} +7 -7
  27. package/.output/public/_nuxt/Cd15nPnG2.js +1 -0
  28. package/.output/public/_nuxt/{OwJ1LJkF.js → CsCpu2Zh.js} +1 -1
  29. package/.output/public/_nuxt/CvbHIGQY2.js +1 -0
  30. package/.output/public/_nuxt/Cyk3du4K2.js +1 -0
  31. package/.output/public/_nuxt/{DVQAz9WI.js → D4qXvjuV.js} +2 -2
  32. package/.output/public/_nuxt/{CfIXY-ET.js → DCEyMaN-.js} +1 -1
  33. package/.output/public/_nuxt/{BFYNhG9S.js → DCXIGxzT.js} +1 -1
  34. package/.output/public/_nuxt/{B9aPoQvt.js → DM8DS9MA.js} +1 -1
  35. package/.output/public/_nuxt/{ChnfyQHz.js → DNzaswei.js} +1 -1
  36. package/.output/public/_nuxt/{CrFGZYVB2.js → DYZBdSSg2.js} +1 -1
  37. package/.output/public/_nuxt/{dObsRdSQ.js → DZk24ego.js} +1 -1
  38. package/.output/public/_nuxt/{CyygA0q4.js → Dc46i75T.js} +4 -4
  39. package/.output/public/_nuxt/DeYsUzhr.js +1 -0
  40. package/.output/public/_nuxt/Dk6pq9JB2.js +1 -0
  41. package/.output/public/_nuxt/{ByGNWgAr.js → Do88WZG2.js} +3 -3
  42. package/.output/public/_nuxt/{R_WxTozV2.js → Du-eSpo2.js} +1 -1
  43. package/.output/public/_nuxt/OmpTerminalPanel.B_Pl5Ynm.css +1 -0
  44. package/.output/public/_nuxt/R_Wv_Nd9.js +1 -0
  45. package/.output/public/_nuxt/{Bsc69G4x.js → VnIWJ0ts.js} +3 -3
  46. package/.output/public/_nuxt/_id_.BzKMZnLe.css +1 -0
  47. package/.output/public/_nuxt/_id_.CbpDAWRh.css +1 -0
  48. package/.output/public/_nuxt/{_wsId_.DET_GinP.css → _wsId_.COUzMXpP.css} +1 -1
  49. package/.output/public/_nuxt/agents.BlejnOOC.css +1 -0
  50. package/.output/public/_nuxt/builds/latest.json +1 -1
  51. package/.output/public/_nuxt/builds/meta/e5bb1803-86d9-43b3-85be-dc787dc9a978.json +1 -0
  52. package/.output/public/_nuxt/daq.zZ8GR433.css +1 -0
  53. package/.output/public/_nuxt/{default.D17kXlD6.css → default.V3_hUJq1.css} +1 -1
  54. package/.output/public/_nuxt/{entry.DvlXlPwx.css → entry.5qf6EqfN.css} +1 -1
  55. package/.output/public/_nuxt/{B4GHHF6d2.js → fQUs58kX2.js} +1 -1
  56. package/.output/public/_nuxt/p7wSGMtc.js +1 -0
  57. package/.output/public/_nuxt/tRBT-plo.js +1 -0
  58. package/.output/public/_nuxt/workshop.3kAcLB_M.css +1 -0
  59. package/.output/server/chunks/_/SearchOutlined.mjs +4 -4
  60. package/.output/server/chunks/_/SearchOutlined.mjs.map +1 -1
  61. package/.output/server/chunks/_/character-asset.repo.mjs +3 -6
  62. package/.output/server/chunks/_/character-asset.repo.mjs.map +1 -1
  63. package/.output/server/chunks/_/host-bindings.mjs +1 -1
  64. package/.output/server/chunks/_/nitro.mjs +12807 -9814
  65. package/.output/server/chunks/_/nitro.mjs.map +1 -1
  66. package/.output/server/chunks/_/scene-layout.repo.mjs +4 -10
  67. package/.output/server/chunks/_/scene-layout.repo.mjs.map +1 -1
  68. package/.output/server/chunks/build/{Col-D7fjGDF6.mjs → Col-biaNnEPf.mjs} +2 -2
  69. package/.output/server/chunks/build/{Col-D7fjGDF6.mjs.map → Col-biaNnEPf.mjs.map} +1 -1
  70. package/.output/server/chunks/build/{OmpTerminalPanel-B_SYhmgb.mjs → OmpTerminalPanel-COphA1br.mjs} +20 -19
  71. package/.output/server/chunks/build/OmpTerminalPanel-COphA1br.mjs.map +1 -0
  72. package/.output/server/chunks/build/{TownView-Bl8Gkcxi.mjs → TownView-B5KifIaT.mjs} +5 -5
  73. package/.output/server/chunks/build/{TownView-Bl8Gkcxi.mjs.map → TownView-B5KifIaT.mjs.map} +1 -1
  74. package/.output/server/chunks/build/{_id_-GnRJPykX.mjs → _id_-C-ewLgfl.mjs} +120 -120
  75. package/.output/server/chunks/build/{_id_-GnRJPykX.mjs.map → _id_-C-ewLgfl.mjs.map} +1 -1
  76. package/.output/server/chunks/build/{_id_-CWLFGZjV.mjs → _id_-Ct4Jhvl1.mjs} +43 -39
  77. package/.output/server/chunks/build/_id_-Ct4Jhvl1.mjs.map +1 -0
  78. package/.output/server/chunks/build/{_wsId_-BhQMjyHG.mjs → _wsId_-CanI_6Su.mjs} +591 -53
  79. package/.output/server/chunks/build/{_wsId_-BhQMjyHG.mjs.map → _wsId_-CanI_6Su.mjs.map} +1 -1
  80. package/.output/server/chunks/build/{agents-D4l1icvn.mjs → agents-DSOptxXA.mjs} +146 -91
  81. package/.output/server/chunks/build/agents-DSOptxXA.mjs.map +1 -0
  82. package/.output/server/chunks/build/{alert-gH-s7yIh.mjs → alert-qJnjyRcP.mjs} +3 -3
  83. package/.output/server/chunks/build/{alert-gH-s7yIh.mjs.map → alert-qJnjyRcP.mjs.map} +1 -1
  84. package/.output/server/chunks/build/{button-BhbX5ACI.mjs → button-DEcZFcqN.mjs} +3 -3
  85. package/.output/server/chunks/build/{button-BhbX5ACI.mjs.map → button-DEcZFcqN.mjs.map} +1 -1
  86. package/.output/server/chunks/build/{card-l4BbX67w.mjs → card-Dipvaykh.mjs} +5 -5
  87. package/.output/server/chunks/build/{card-l4BbX67w.mjs.map → card-Dipvaykh.mjs.map} +1 -1
  88. package/.output/server/chunks/build/{channel-templates-DqjtC-R0.mjs → channel-templates-BK0KuPOd.mjs} +13 -12
  89. package/.output/server/chunks/build/channel-templates-BK0KuPOd.mjs.map +1 -0
  90. package/.output/server/chunks/build/{checkbox-BF11p3dH.mjs → checkbox-dzcpU_Cd.mjs} +4 -4
  91. package/.output/server/chunks/build/{checkbox-BF11p3dH.mjs.map → checkbox-dzcpU_Cd.mjs.map} +1 -1
  92. package/.output/server/chunks/build/{daq-BOgpn9sl.mjs → daq-D9RA_uze.mjs} +103 -103
  93. package/.output/server/chunks/build/{daq-BOgpn9sl.mjs.map → daq-D9RA_uze.mjs.map} +1 -1
  94. package/.output/server/chunks/build/dcw-BTM5YU-B.mjs +2 -2
  95. package/.output/server/chunks/build/{default-CKJWhkot.mjs → default-BfWGTlbj.mjs} +81 -23
  96. package/.output/server/chunks/build/{default-CKJWhkot.mjs.map → default-BfWGTlbj.mjs.map} +1 -1
  97. package/.output/server/chunks/build/{drawer-CVValqoh.mjs → drawer-Cmh90erI.mjs} +3 -3
  98. package/.output/server/chunks/build/{drawer-CVValqoh.mjs.map → drawer-Cmh90erI.mjs.map} +1 -1
  99. package/.output/server/chunks/build/{dropdown-ByCsEWlQ.mjs → dropdown-CGQ0KAzA.mjs} +2 -2
  100. package/.output/server/chunks/build/{dropdown-ByCsEWlQ.mjs.map → dropdown-CGQ0KAzA.mjs.map} +1 -1
  101. package/.output/server/chunks/build/{dropdown-Dex8PXu6.mjs → dropdown-vhn1NPFs.mjs} +4 -4
  102. package/.output/server/chunks/build/{dropdown-Dex8PXu6.mjs.map → dropdown-vhn1NPFs.mjs.map} +1 -1
  103. package/.output/server/chunks/build/{input-number-BBlRoAJ7.mjs → input-number-Bd55elNN.mjs} +5 -5
  104. package/.output/server/chunks/build/{input-number-BBlRoAJ7.mjs.map → input-number-Bd55elNN.mjs.map} +1 -1
  105. package/.output/server/chunks/build/{input--KMeLYqZ.mjs → input-sf_BT6o6.mjs} +3 -3
  106. package/.output/server/chunks/build/{input--KMeLYqZ.mjs.map → input-sf_BT6o6.mjs.map} +1 -1
  107. package/.output/server/chunks/build/logs-Dyk0I2I9.mjs +1 -1
  108. package/.output/server/chunks/build/{menu-xN-SXb9Q.mjs → menu-WCrlpYVh.mjs} +3 -3
  109. package/.output/server/chunks/build/{menu-xN-SXb9Q.mjs.map → menu-WCrlpYVh.mjs.map} +1 -1
  110. package/.output/server/chunks/build/{modal-DrCOcjrl.mjs → modal-yvUquPj5.mjs} +4 -4
  111. package/.output/server/chunks/build/{modal-DrCOcjrl.mjs.map → modal-yvUquPj5.mjs.map} +1 -1
  112. package/.output/server/chunks/build/{monitor-KW8WLOJd.mjs → monitor-MIOvsyLa.mjs} +21 -21
  113. package/.output/server/chunks/build/{monitor-KW8WLOJd.mjs.map → monitor-MIOvsyLa.mjs.map} +1 -1
  114. package/.output/server/chunks/build/pages-DR2bzczM.mjs +1 -1
  115. package/.output/server/chunks/build/{plugins-B-ZNey0Z.mjs → plugins-DnOBIWGg.mjs} +7 -7
  116. package/.output/server/chunks/build/{plugins-B-ZNey0Z.mjs.map → plugins-DnOBIWGg.mjs.map} +1 -1
  117. package/.output/server/chunks/build/{popconfirm-C5H1Qoh3.mjs → popconfirm-CRaHcz5O.mjs} +4 -4
  118. package/.output/server/chunks/build/{popconfirm-C5H1Qoh3.mjs.map → popconfirm-CRaHcz5O.mjs.map} +1 -1
  119. package/.output/server/chunks/build/{useWorkshopApi-Bh5VUHWu.mjs → segmented-DPe9ZzLO.mjs} +7 -78
  120. package/.output/server/chunks/build/segmented-DPe9ZzLO.mjs.map +1 -0
  121. package/.output/server/chunks/build/{select-D7H2ysgT.mjs → select-D-CeE5vY.mjs} +3 -3
  122. package/.output/server/chunks/build/{select-D7H2ysgT.mjs.map → select-D-CeE5vY.mjs.map} +1 -1
  123. package/.output/server/chunks/build/{settings-Cr06lbRy.mjs → settings-DA8IkGLo.mjs} +11 -11
  124. package/.output/server/chunks/build/{settings-Cr06lbRy.mjs.map → settings-DA8IkGLo.mjs.map} +1 -1
  125. package/.output/server/chunks/build/{space-DCwIlnkI.mjs → space-CCBYAkXt.mjs} +2 -2
  126. package/.output/server/chunks/build/{space-DCwIlnkI.mjs.map → space-CCBYAkXt.mjs.map} +1 -1
  127. package/.output/server/chunks/build/{switch-VC0m9ede.mjs → switch-CelRXpcy.mjs} +3 -3
  128. package/.output/server/chunks/build/{switch-VC0m9ede.mjs.map → switch-CelRXpcy.mjs.map} +1 -1
  129. package/.output/server/chunks/build/{table-BksLg3Q_.mjs → table-Cswq-l2r.mjs} +10 -10
  130. package/.output/server/chunks/build/{table-BksLg3Q_.mjs.map → table-Cswq-l2r.mjs.map} +1 -1
  131. package/.output/server/chunks/build/{tabs-CzUfD3iX.mjs → tabs-BM3tAh_J.mjs} +5 -5
  132. package/.output/server/chunks/build/{tabs-CzUfD3iX.mjs.map → tabs-BM3tAh_J.mjs.map} +1 -1
  133. package/.output/server/chunks/build/{tag-oQI3VtqM.mjs → tag-NO9jEqKy.mjs} +4 -4
  134. package/.output/server/chunks/build/{tag-oQI3VtqM.mjs.map → tag-NO9jEqKy.mjs.map} +1 -1
  135. package/.output/server/chunks/build/{teams-QR3BBF7A.mjs → teams-BhSKBBBM.mjs} +15 -14
  136. package/.output/server/chunks/build/teams-BhSKBBBM.mjs.map +1 -0
  137. package/.output/server/chunks/build/{tokens-DFvr_TLj.mjs → tokens-D_eyxmcv.mjs} +16 -16
  138. package/.output/server/chunks/build/{tokens-DFvr_TLj.mjs.map → tokens-D_eyxmcv.mjs.map} +1 -1
  139. package/.output/server/chunks/build/town-BUqRobze.mjs +1 -1
  140. package/.output/server/chunks/build/{town-_4tEEEVW.mjs → town-DPtOPRRO.mjs} +4 -4
  141. package/.output/server/chunks/build/{town-_4tEEEVW.mjs.map → town-DPtOPRRO.mjs.map} +1 -1
  142. package/.output/server/chunks/build/useDaqStream-hwkhJHFU.mjs +1 -1
  143. package/.output/server/chunks/build/useDcwStream-Bdew_yrr.mjs +1 -1
  144. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs +42 -0
  145. package/.output/server/chunks/build/useLocalTime-9a4B-aHv.mjs.map +1 -0
  146. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs +81 -0
  147. package/.output/server/chunks/build/useWorkshopApi-D2gq06N2.mjs.map +1 -0
  148. package/.output/server/chunks/build/useWorkshopWs-B3j5wIAK.mjs +1 -1
  149. package/.output/server/chunks/build/user-Dk-ytEUV.mjs +1 -1
  150. package/.output/server/chunks/build/{users-4FZ0yFUO.mjs → users-CmVvb1oq.mjs} +16 -16
  151. package/.output/server/chunks/build/{users-4FZ0yFUO.mjs.map → users-CmVvb1oq.mjs.map} +1 -1
  152. package/.output/server/chunks/build/{workshop-k0XZTFKg.mjs → workshop-D5CQj2A8.mjs} +53 -47
  153. package/.output/server/chunks/build/workshop-D5CQj2A8.mjs.map +1 -0
  154. package/.output/server/chunks/build/workspaces-IfORCDJE.mjs +1 -1
  155. package/.output/server/chunks/routes/api/health.get.mjs +1 -1
  156. package/.output/server/chunks/routes/api/index.get.mjs +1 -1
  157. package/.output/server/chunks/routes/api/index.post.mjs +1 -1
  158. package/.output/server/chunks/routes/api/mcp/workshop.mjs +1 -1
  159. package/.output/server/chunks/routes/api/metrics.mjs +1 -1
  160. package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +1 -1
  161. package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +1 -1
  162. package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +1 -1
  163. package/.output/server/chunks/routes/api/system/config.get.mjs +1 -1
  164. package/.output/server/chunks/routes/api/system/index.get.mjs +3 -3
  165. package/.output/server/chunks/routes/api/system/index.get.mjs.map +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 +25 -0
  182. package/.output/server/chunks/routes/api/users/setup-status.get.mjs.map +1 -0
  183. package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +1 -1
  184. package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +1 -1
  185. package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +1 -1
  186. package/.output/server/chunks/routes/api/workshop/_...path_.mjs +1 -1
  187. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +1 -1
  188. package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +1 -1
  189. package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +1 -1
  190. package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +1 -1
  191. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +1 -1
  192. package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +1 -1
  193. package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +1 -1
  194. package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +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 +6 -14
  197. package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -1
  198. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs +39 -0
  199. package/.output/server/chunks/routes/api/workshop/agent-tools/list.get.mjs.map +1 -0
  200. package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +1 -1
  201. package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +1 -1
  202. package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +1 -1
  203. package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +1 -1
  204. package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +1 -1
  205. package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +1 -1
  206. package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +1 -1
  207. package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +1 -1
  208. package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +2 -2
  209. package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +1 -1
  210. package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +2 -2
  211. package/.output/server/chunks/routes/api/workshop/audit.get.mjs +1 -1
  212. package/.output/server/chunks/routes/api/workshop/caller.mjs +2 -2
  213. package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +3 -3
  214. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +1 -1
  215. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +1 -1
  216. package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +1 -1
  217. package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +1 -1
  218. package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +2 -2
  219. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +1 -1
  220. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +1 -1
  221. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +1 -1
  222. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +1 -1
  223. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +1 -1
  224. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +1 -1
  225. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +1 -1
  226. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +1 -1
  227. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +1 -1
  228. package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +1 -1
  229. package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +1 -1
  230. package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +1 -1
  231. package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +2 -2
  232. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +1 -1
  233. package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +1 -1
  234. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +1 -1
  235. package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +1 -1
  236. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +1 -1
  237. package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +1 -1
  238. package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +1 -1
  239. package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +1 -1
  240. package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +2 -2
  241. package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +1 -1
  242. package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +2 -2
  243. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +9 -2
  244. package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -1
  245. package/.output/server/chunks/routes/api/workshop/channels.get.mjs +1 -1
  246. package/.output/server/chunks/routes/api/workshop/channels.post.mjs +3 -3
  247. package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +2 -2
  248. package/.output/server/chunks/routes/api/workshop/daq/_id/frames/content.get.mjs +2 -2
  249. package/.output/server/chunks/routes/api/workshop/daq/_id/frames.get.mjs +2 -2
  250. package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +7 -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 +2 -2
  255. package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +2 -2
  256. package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +2 -2
  257. package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +2 -2
  258. package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +2 -2
  259. package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +2 -2
  260. package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +2 -2
  261. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +2 -2
  262. package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +2 -2
  263. package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +2 -2
  264. package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +2 -2
  265. package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +2 -2
  266. package/.output/server/chunks/routes/api/workshop/dcw/_id/read.post.mjs +2 -2
  267. package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +2 -2
  268. package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +2 -2
  269. package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +2 -2
  270. package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +2 -2
  271. package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +2 -2
  272. package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +2 -2
  273. package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +2 -2
  274. package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +2 -2
  275. package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +2 -2
  276. package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +2 -2
  277. package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +2 -2
  278. package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +2 -2
  279. package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +2 -2
  280. package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +2 -2
  281. package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +2 -2
  282. package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +2 -2
  283. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +2 -2
  284. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +2 -2
  285. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +2 -2
  286. package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +2 -2
  287. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +2 -2
  288. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +2 -2
  289. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +2 -2
  290. package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +2 -2
  291. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +2 -2
  292. package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +2 -2
  293. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +2 -2
  294. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +2 -2
  295. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +2 -2
  296. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +2 -2
  297. package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +2 -2
  298. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +2 -2
  299. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +2 -2
  300. package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +2 -2
  301. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +2 -2
  302. package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +2 -2
  303. package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +2 -2
  304. package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +1 -1
  305. package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +1 -1
  306. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +2 -2
  307. package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +2 -2
  308. package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +1 -1
  309. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs +247 -0
  310. package/.output/server/chunks/routes/api/workshop/harnesses/_id/providers.get.mjs.map +1 -0
  311. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs +27 -0
  312. package/.output/server/chunks/routes/api/workshop/harnesses.get.mjs.map +1 -0
  313. package/.output/server/chunks/routes/api/workshop/hitl/pending.get.mjs +2 -2
  314. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs +20 -8
  315. package/.output/server/chunks/routes/api/workshop/hitl/respond.post.mjs.map +1 -1
  316. package/.output/server/chunks/routes/api/workshop/index.get.mjs +1 -1
  317. package/.output/server/chunks/routes/api/workshop/index.post.mjs +1 -1
  318. package/.output/server/chunks/routes/api/workshop/index10.get.mjs +1 -1
  319. package/.output/server/chunks/routes/api/workshop/index2.get.mjs +1 -1
  320. package/.output/server/chunks/routes/api/workshop/index2.post.mjs +1 -1
  321. package/.output/server/chunks/routes/api/workshop/index3.get.mjs +1 -1
  322. package/.output/server/chunks/routes/api/workshop/index3.post.mjs +2 -2
  323. package/.output/server/chunks/routes/api/workshop/index4.get.mjs +2 -2
  324. package/.output/server/chunks/routes/api/workshop/index4.post.mjs +2 -2
  325. package/.output/server/chunks/routes/api/workshop/index5.get.mjs +2 -2
  326. package/.output/server/chunks/routes/api/workshop/index5.post.mjs +2 -2
  327. package/.output/server/chunks/routes/api/workshop/index6.get.mjs +1 -1
  328. package/.output/server/chunks/routes/api/workshop/index6.post.mjs +2 -2
  329. package/.output/server/chunks/routes/api/workshop/index7.get.mjs +1 -1
  330. package/.output/server/chunks/routes/api/workshop/index7.post.mjs +1 -1
  331. package/.output/server/chunks/routes/api/workshop/index8.get.mjs +1 -1
  332. package/.output/server/chunks/routes/api/workshop/index8.post.mjs +1 -1
  333. package/.output/server/chunks/routes/api/workshop/index9.get.mjs +1 -1
  334. package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +1 -1
  335. package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +1 -1
  336. package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +1 -1
  337. package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +2 -2
  338. package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +2 -2
  339. package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +1 -1
  340. package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +1 -1
  341. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +2 -2
  342. package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +2 -2
  343. package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +1 -1
  344. package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +1 -1
  345. package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +1 -1
  346. package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +1 -1
  347. package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +1 -1
  348. package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +1 -1
  349. package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +1 -1
  350. package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +1 -1
  351. package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +2 -2
  352. package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +1 -1
  353. package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +1 -1
  354. package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +1 -1
  355. package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +1 -1
  356. package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +1 -1
  357. package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +1 -1
  358. package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +1 -1
  359. package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +1 -1
  360. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +3 -3
  361. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +1 -1
  362. package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +1 -1
  363. package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +1 -1
  364. package/.output/server/chunks/routes/renderer.mjs +2 -2
  365. package/.output/server/chunks/virtual/entry.mjs +132 -114
  366. package/.output/server/chunks/virtual/entry.mjs.map +1 -1
  367. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  368. package/.output/server/index.mjs +1 -1
  369. package/.output/server/package.json +1 -1
  370. package/README-zh.md +27 -7
  371. package/README.md +455 -435
  372. package/app/components/AppHeader.vue +56 -2
  373. package/app/components/workshop/ChannelSessionList.vue +703 -593
  374. package/app/components/workshop/terminal/OmpTerminalPanel.vue +2 -1
  375. package/app/composables/workshop/useLocalTime.ts +16 -0
  376. package/app/composables/workshop/useSceneLayouts.ts +2 -1
  377. package/app/composables/workshop/useWorkshopApi.ts +249 -224
  378. package/app/pages/daq/[id].vue +7 -6
  379. package/app/pages/daq/index.vue +2 -2
  380. package/app/pages/dcw/[id].vue +3 -3
  381. package/app/pages/workshop/agents.vue +432 -382
  382. package/app/pages/workshop/index.vue +25 -6
  383. package/bin/aw.mjs +0 -0
  384. package/cli/aw.mjs +8 -1
  385. package/cli/commands/stop.mjs +7 -4
  386. package/cli/commands/tui.mjs +10 -1
  387. package/cli/core/registry.mjs +5 -3
  388. package/config.yml +144 -134
  389. package/docs/tui.md +1 -1
  390. package/i18n/dicts/settings.json +4 -0
  391. package/i18n/locales/en.ts +9 -0
  392. package/i18n/locales/zh-CN.ts +9 -0
  393. package/package.json +148 -140
  394. package/scripts/_dbg-catalog-smoke.ts +20 -0
  395. package/scripts/_dbg-codex-handshake.ts +30 -0
  396. package/scripts/_dbg-codex-probe.mjs +58 -0
  397. package/scripts/_dbg-codex-sandbox.ts +58 -0
  398. package/scripts/_dbg-codex-turn.ts +65 -0
  399. package/scripts/_dbg-dsh-probe.mjs +31 -0
  400. package/scripts/_dbg-interval-config.mjs +145 -0
  401. package/scripts/_dbg-interval-scenario.mjs +126 -0
  402. package/scripts/_dbg-line-spawn.ts +31 -0
  403. package/scripts/_dbg-live-engine-probe.mjs +80 -0
  404. package/scripts/_dbg-mcp-bridge-probe.mjs +147 -0
  405. package/scripts/_dbg-opencode-sse.mjs +101 -0
  406. package/scripts/_dbg-opencode-start.ts +57 -0
  407. package/scripts/_dbg-plugin-matrix.mjs +212 -0
  408. package/scripts/_dbg-protocol-matrix.mjs +425 -0
  409. package/scripts/_dbg-real-scenario-timeline.log +123 -0
  410. package/scripts/_dbg-registry-smoke.ts +14 -0
  411. package/scripts/_dbg-setup-e2e.mjs +88 -0
  412. package/scripts/_dbg-sim-keeper.mjs +100 -0
  413. package/scripts/_dbg-team-drill.mjs +173 -0
  414. package/scripts/dev-guard.mjs +11 -3
  415. package/scripts/dev-protocol-simulators.mjs +28 -1
  416. package/scripts/e2e-harness-provider-task.mjs +126 -0
  417. package/scripts/e2e-multi-harness.ts +374 -0
  418. package/scripts/e2e-multiharness-team.mjs +319 -0
  419. package/scripts/e2e-plc-scenario.mjs +292 -0
  420. package/scripts/e2e-real-scenario.mjs +452 -0
  421. package/scripts/migrate-local-time.mjs +123 -0
  422. package/scripts/start.mjs +30 -2
  423. package/server/api/system/settings/index.get.ts +3 -3
  424. package/server/api/users/setup-status.get.ts +8 -0
  425. package/server/api/workshop/agent-tools/invoke.post.ts +27 -41
  426. package/server/api/workshop/agent-tools/list.get.ts +25 -0
  427. package/server/api/workshop/channels/[id]/index.patch.ts +38 -30
  428. package/server/api/workshop/daq/[id]/samples.get.ts +8 -3
  429. package/server/api/workshop/harnesses/[id]/providers.get.ts +16 -0
  430. package/server/api/workshop/harnesses.get.ts +12 -0
  431. package/server/api/workshop/hitl/respond.post.ts +87 -67
  432. package/server/api/workshop/ws.ts +13 -0
  433. package/server/data/daqs.json +1421 -19
  434. package/server/data/dcw-lines.json +273 -0
  435. package/server/data/dcw-products.json +224 -0
  436. package/server/data/dcw-recipes.json +868 -0
  437. package/server/data/dcw-rollback.json +1177 -1
  438. package/server/data/dcw-runs.json +3032 -2834
  439. package/server/data/dcw-writes.json +1116 -0
  440. package/server/data/dcws.json +3447 -297
  441. package/server/data/line-runs.json +52 -2
  442. package/server/harness/aw-mcp-bridge.mjs +153 -0
  443. package/server/plugins/00-local-time.ts +10 -0
  444. package/server/plugins/aw-plugins.ts +3 -0
  445. package/server/plugins/backup.ts +116 -97
  446. package/server/plugins/dev-stability-guard.ts +24 -15
  447. package/server/plugins/retention.ts +1 -0
  448. package/server/plugins/security.ts +46 -29
  449. package/server/plugins/workshop.ts +156 -153
  450. package/server/repositories/user.repository.ts +15 -22
  451. package/server/services/system-config.ts +32 -6
  452. package/server/services/user.service.ts +8 -3
  453. package/server/services/workshop/.mimosa/hook-state/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f.json +1 -0
  454. package/server/services/workshop/.mimosa/hook-status/sess_fed429fb-c8b7-4a50-bbd6-45afc580893f-e6b75bbfe6.json +14 -0
  455. package/server/services/workshop/agents/adapters/line-spawn.ts +111 -0
  456. package/server/services/workshop/agents/adapters/stdio-jsonrpc.ts +316 -0
  457. package/server/services/workshop/agents/agent-interface.ts +17 -0
  458. package/server/services/workshop/agents/codex-agent.ts +822 -0
  459. package/server/services/workshop/agents/dsh-agent.ts +670 -0
  460. package/server/services/workshop/agents/factory.ts +4 -16
  461. package/server/services/workshop/agents/harness-env.ts +54 -0
  462. package/server/services/workshop/agents/harness-models.ts +270 -0
  463. package/server/services/workshop/agents/host-tool-bridge.ts +612 -0
  464. package/server/services/workshop/agents/industrial-tools.ts +7 -1
  465. package/server/services/workshop/agents/node-bindings.repo.ts +4 -5
  466. package/server/services/workshop/agents/omp-agent.ts +1178 -1957
  467. package/server/services/workshop/agents/opencode-agent.ts +987 -0
  468. package/server/services/workshop/agents/prompt-builder.ts +393 -0
  469. package/server/services/workshop/agents/registry.ts +125 -0
  470. package/server/services/workshop/assets/character-asset.repo.ts +3 -5
  471. package/server/services/workshop/assets/device-twin.repo.ts +3 -5
  472. package/server/services/workshop/daq/daq-controller.ts +38 -6
  473. package/server/services/workshop/daq/daq-node.repo.ts +3 -5
  474. package/server/services/workshop/daq/daq-node.ts +3 -3
  475. package/server/services/workshop/daq/daq-runtime.ts +4 -3
  476. package/server/services/workshop/daq/daq-templates.ts +3 -5
  477. package/server/services/workshop/daq/drivers.ts +41 -12
  478. package/server/services/workshop/daq/storage/sqlite.adapter.ts +313 -309
  479. package/server/services/workshop/db/backup-registry.ts +33 -0
  480. package/server/services/workshop/db/channel.repo.ts +104 -101
  481. package/server/services/workshop/db/database.ts +956 -949
  482. package/server/services/workshop/dcw/dcw-controller.ts +5 -1
  483. package/server/services/workshop/dcw/dcw-line.repo.ts +4 -11
  484. package/server/services/workshop/dcw/dcw-node.repo.ts +3 -5
  485. package/server/services/workshop/dcw/dcw-node.ts +13 -1
  486. package/server/services/workshop/dcw/dcw-product.repo.ts +3 -4
  487. package/server/services/workshop/dcw/dcw-recipe.repo.ts +3 -19
  488. package/server/services/workshop/dcw/dcw-templates.ts +3 -5
  489. package/server/services/workshop/dcw/drivers.ts +37 -13
  490. package/server/services/workshop/dcw/line-run.ts +3 -5
  491. package/server/services/workshop/dcw/recipe-rollback.repo.ts +4 -10
  492. package/server/services/workshop/json-store.mjs +72 -0
  493. package/server/services/workshop/plugins/host.mjs +2 -1
  494. package/server/services/workshop/runtime/agent-runtime.ts +44 -0
  495. package/server/services/workshop/runtime/manager.ts +2953 -2868
  496. package/server/services/workshop/scene/scene-layout.repo.ts +4 -11
  497. package/server/services/workshop/settings.ts +30 -0
  498. package/shared/config/schema.json +9 -0
  499. package/shared/config/single-instance.mjs +5 -1
  500. package/shared/local-time.mjs +36 -0
  501. package/shared/workshop-protocol.ts +11 -5
  502. package/tui/aw-tui.mjs +28 -10
  503. package/tui/components/hitl-card.mjs +47 -36
  504. package/tui/lib/ws.mjs +2 -1
  505. package/.output/public/_nuxt/9X0fVBD7.js +0 -57
  506. package/.output/public/_nuxt/B6M2WJWm2.js +0 -1
  507. package/.output/public/_nuxt/B9Yie5HN.js +0 -2
  508. package/.output/public/_nuxt/BF9XPEuw.js +0 -1
  509. package/.output/public/_nuxt/BbQornXa.js +0 -1
  510. package/.output/public/_nuxt/Bxgaym6j.js +0 -1
  511. package/.output/public/_nuxt/Bxh5nf8j.js +0 -1
  512. package/.output/public/_nuxt/CXLI50Sq.js +0 -1
  513. package/.output/public/_nuxt/CdfAP_IH2.js +0 -1
  514. package/.output/public/_nuxt/Ce1zyNYu.js +0 -1
  515. package/.output/public/_nuxt/D-Ne4C9a.js +0 -1
  516. package/.output/public/_nuxt/DEHNjlTq2.js +0 -1
  517. package/.output/public/_nuxt/DFnGFEav.js +0 -18
  518. package/.output/public/_nuxt/DYWgGHNo.js +0 -7
  519. package/.output/public/_nuxt/OmpTerminalPanel.Bc9GjNU5.css +0 -1
  520. package/.output/public/_nuxt/W1E3-5ML.js +0 -14
  521. package/.output/public/_nuxt/XVB9_zwP.js +0 -1
  522. package/.output/public/_nuxt/Xaf_HIR3.js +0 -1
  523. package/.output/public/_nuxt/_id_.BeqSLvl_.css +0 -1
  524. package/.output/public/_nuxt/_id_.DN3U6EF9.css +0 -1
  525. package/.output/public/_nuxt/agents.BJwgTLFZ.css +0 -1
  526. package/.output/public/_nuxt/builds/meta/55c10854-ee0e-4be4-924b-a1b0e100fe11.json +0 -1
  527. package/.output/public/_nuxt/daq.BXsnevQv.css +0 -1
  528. package/.output/public/_nuxt/workshop.B98sHiJq.css +0 -1
  529. package/.output/public/_nuxt/yIKY_V1P.js +0 -1
  530. package/.output/server/chunks/build/OmpTerminalPanel-B_SYhmgb.mjs.map +0 -1
  531. package/.output/server/chunks/build/_id_-CWLFGZjV.mjs.map +0 -1
  532. package/.output/server/chunks/build/agents-D4l1icvn.mjs.map +0 -1
  533. package/.output/server/chunks/build/channel-templates-DqjtC-R0.mjs.map +0 -1
  534. package/.output/server/chunks/build/interval-WlxgjTzO.mjs +0 -9
  535. package/.output/server/chunks/build/interval-WlxgjTzO.mjs.map +0 -1
  536. package/.output/server/chunks/build/teams-QR3BBF7A.mjs.map +0 -1
  537. package/.output/server/chunks/build/useWorkshopApi-Bh5VUHWu.mjs.map +0 -1
  538. package/.output/server/chunks/build/workshop-k0XZTFKg.mjs.map +0 -1
@@ -2,29 +2,31 @@ import { _ as _plugin_vue_export_helper_default, u as useI18n, a as useRoute, b
2
2
  import { C as ClientOnly } from './client-only-D5BzSQc6.mjs';
3
3
  import { i as isPresetColor, t as tooltip_default, g as genPresetColor } from '../_/SearchOutlined.mjs';
4
4
  import { i as initDefaultProps } from './initDefaultProps-DIbWwP4R.mjs';
5
- import { b as button_default, c as cloneElement, d as devWarning_default } from './button-BhbX5ACI.mjs';
6
- import { s as segmented_default, u as useWorkshopApi, f as form_default, F as FormItem_default } from './useWorkshopApi-Bh5VUHWu.mjs';
7
- import { S as Select, C as CheckOutlined, D as DownOutlined } from './select-D7H2ysgT.mjs';
8
- import { i as input_default, T as TextArea_default, G as Group_default, P as Password_default, S as Search_default } from './input--KMeLYqZ.mjs';
9
- import { i as input_number_default, D as Descriptions, a as DescriptionsItem } from './input-number-BBlRoAJ7.mjs';
10
- import { G as Group_default$1, r as radio_default, R as RadioButton_default, T as Tag } from './tag-oQI3VtqM.mjs';
11
- import { m as menu_default } from './menu-xN-SXb9Q.mjs';
12
- import { t as tabs_default, T as TabPane_default, u as useRefs } from './tabs-CzUfD3iX.mjs';
13
- import { m as modal_default } from './modal-DrCOcjrl.mjs';
14
- import { p as popconfirm_default } from './popconfirm-C5H1Qoh3.mjs';
5
+ import { b as button_default, c as cloneElement, d as devWarning_default } from './button-DEcZFcqN.mjs';
6
+ import { s as segmented_default, f as form_default, F as FormItem_default } from './segmented-DPe9ZzLO.mjs';
7
+ import { S as Select, C as CheckOutlined, D as DownOutlined } from './select-D-CeE5vY.mjs';
8
+ import { i as input_default, T as TextArea_default, G as Group_default, P as Password_default, S as Search_default } from './input-sf_BT6o6.mjs';
9
+ import { i as input_number_default, D as Descriptions, a as DescriptionsItem } from './input-number-Bd55elNN.mjs';
10
+ import { G as Group_default$1, r as radio_default, R as RadioButton_default, T as Tag } from './tag-NO9jEqKy.mjs';
11
+ import { m as menu_default } from './menu-WCrlpYVh.mjs';
12
+ import { t as tabs_default, T as TabPane_default, u as useRefs } from './tabs-BM3tAh_J.mjs';
13
+ import { m as modal_default } from './modal-yvUquPj5.mjs';
14
+ import { p as popconfirm_default } from './popconfirm-CRaHcz5O.mjs';
15
15
  import { i as isNumeric } from './isNumeric-CP7q_yhz.mjs';
16
- import { D as Dropdown } from './dropdown-Dex8PXu6.mjs';
17
- import { S as Space } from './space-DCwIlnkI.mjs';
18
- import { c as checkbox_default } from './checkbox-BF11p3dH.mjs';
19
- import { d as drawer_default } from './drawer-CVValqoh.mjs';
16
+ import { D as Dropdown } from './dropdown-vhn1NPFs.mjs';
17
+ import { S as Space } from './space-CCBYAkXt.mjs';
18
+ import { c as checkbox_default } from './checkbox-dzcpU_Cd.mjs';
19
+ import { d as drawer_default } from './drawer-Cmh90erI.mjs';
20
20
  import { s as spin_default } from './spin-HVY81X_L.mjs';
21
- import { s as switch_default } from './switch-VC0m9ede.mjs';
21
+ import { s as switch_default } from './switch-CelRXpcy.mjs';
22
22
  import { u as useUserStore } from './user-Dk-ytEUV.mjs';
23
23
  import { u as useWorkspacesStore } from './workspaces-IfORCDJE.mjs';
24
24
  import { u as useEntitiesStore, a as useWorkshopWs, b as agentHueColor, c as useEventsStore, B as BlockClusterer, K as KIND_META, d as blockTier, e as buildStreamText, f as useWsConnectionStore, m as mdLiteMentions, T as TOOL_META, i as isStreaming, s as streamCursorVisible } from './useWorkshopWs-B3j5wIAK.mjs';
25
- import { O as OmpTerminalPanel_default } from './OmpTerminalPanel-B_SYhmgb.mjs';
26
- import { u as useStorage, T as TownView_default } from './TownView-Bl8Gkcxi.mjs';
27
- import { defineComponent, computed, ref, watch, provide, mergeProps, unref, isRef, reactive, withCtx, createVNode, toDisplayString, createTextVNode, openBlock, createBlock, Fragment, renderList, withKeys, createCommentVNode, nextTick, useModel, withModifiers, mergeModels, shallowRef, toValue, onScopeDispose, Transition, withDirectives, vShow, inject, resolveDynamicComponent, resolveComponent, cloneVNode, useSSRContext } from 'vue';
25
+ import { u as useWorkshopApi } from './useWorkshopApi-D2gq06N2.mjs';
26
+ import { f as formatLocalClock } from './useLocalTime-9a4B-aHv.mjs';
27
+ import { O as OmpTerminalPanel_default } from './OmpTerminalPanel-COphA1br.mjs';
28
+ import { u as useStorage, T as TownView_default } from './TownView-B5KifIaT.mjs';
29
+ import { defineComponent, computed, ref, watch, provide, mergeProps, unref, isRef, reactive, withCtx, createVNode, toDisplayString, createTextVNode, openBlock, createBlock, createCommentVNode, Fragment, renderList, withKeys, nextTick, useModel, withModifiers, mergeModels, shallowRef, toValue, onScopeDispose, Transition, withDirectives, vShow, inject, resolveDynamicComponent, resolveComponent, cloneVNode, useSSRContext } from 'vue';
28
30
  import { ssrRenderAttrs, ssrRenderComponent, ssrInterpolate, ssrRenderAttr, ssrRenderClass, ssrRenderStyle, ssrRenderTeleport, ssrRenderList, ssrIncludeBooleanAttr, ssrRenderVNode } from 'vue/server-renderer';
29
31
  import '../_/nitro.mjs';
30
32
  import 'node:crypto';
@@ -35,12 +37,12 @@ import 'node:buffer';
35
37
  import 'node:fs';
36
38
  import 'node:path';
37
39
  import 'node:url';
38
- import 'node:sqlite';
39
40
  import 'node:os';
40
41
  import 'js-yaml';
41
42
  import 'node:child_process';
42
43
  import 'node:net';
43
44
  import 'node:util';
45
+ import 'node:sqlite';
44
46
  import 'node:module';
45
47
  import 'node:fs/promises';
46
48
  import 'node:zlib';
@@ -56,10 +58,9 @@ import 'vue-router';
56
58
  import 'pinia';
57
59
  import '@ant-design/colors';
58
60
  import 'axios';
59
- import './Col-D7fjGDF6.mjs';
61
+ import './Col-biaNnEPf.mjs';
60
62
  import './responsiveObserve-CS0UB6wQ.mjs';
61
63
  import './useTownBus-D9SoIsAN.mjs';
62
- import './interval-WlxgjTzO.mjs';
63
64
  import './useDcwStream-Bdew_yrr.mjs';
64
65
  import './useDaqStream-hwkhJHFU.mjs';
65
66
  import './useDeviceTwins-C6EBg9oN.mjs';
@@ -2138,6 +2139,55 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2138
2139
  scenarioPrompt: "",
2139
2140
  workspace: ""
2140
2141
  });
2142
+ const llmForm = reactive({
2143
+ harness: "omp",
2144
+ provider: "",
2145
+ model: "",
2146
+ effort: "",
2147
+ enabled: false
2148
+ });
2149
+ const llmProviders = ref([]);
2150
+ const llmEffortMode = ref("levels");
2151
+ const llmLoading = ref(false);
2152
+ const llmProviderOptions = computed(() => llmProviders.value.map((p) => ({
2153
+ value: p.id,
2154
+ label: p.id
2155
+ })));
2156
+ const llmModelOptions = computed(() => (llmProviders.value.find((p) => p.id === llmForm.provider)?.models ?? []).map((m) => ({
2157
+ value: m.id,
2158
+ label: m.id
2159
+ })));
2160
+ const llmEffortOptions = computed(() => {
2161
+ const m = llmProviders.value.find((p) => p.id === llmForm.provider)?.models.find((x) => x.id === llmForm.model);
2162
+ return (m?.efforts ?? []).map((e) => ({
2163
+ value: e,
2164
+ label: e + (m?.defaultEffort === e ? "(默认)" : "")
2165
+ }));
2166
+ });
2167
+ const loadLlmCatalog = async (harness) => {
2168
+ llmLoading.value = true;
2169
+ llmProviders.value = [];
2170
+ try {
2171
+ const cat = (await api$5.listHarnessProviders(harness))?.data?.catalog;
2172
+ llmProviders.value = cat?.providers ?? [];
2173
+ llmEffortMode.value = cat?.effortMode ?? "unsupported";
2174
+ } catch {} finally {
2175
+ llmLoading.value = false;
2176
+ }
2177
+ };
2178
+ const onLlmHarnessChange = async () => {
2179
+ llmForm.provider = "";
2180
+ llmForm.model = "";
2181
+ llmForm.effort = "";
2182
+ await loadLlmCatalog(llmForm.harness);
2183
+ };
2184
+ const onLlmProviderChange = () => {
2185
+ llmForm.model = "";
2186
+ llmForm.effort = "";
2187
+ };
2188
+ const onLlmModelChange = () => {
2189
+ llmForm.effort = "";
2190
+ };
2141
2191
  const settingsSaving = ref(false);
2142
2192
  const fileSelectorOpen2 = ref(false);
2143
2193
  const saveSettings = async () => {
@@ -2145,7 +2195,12 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2145
2195
  try {
2146
2196
  await api$5.patchChannel(settingsChannelId.value, {
2147
2197
  scenarioPrompt: settingsForm.scenarioPrompt,
2148
- workspace: settingsForm.workspace.trim() || void 0
2198
+ workspace: settingsForm.workspace.trim() || void 0,
2199
+ llm: llmForm.enabled && llmForm.model ? {
2200
+ ...llmForm.provider ? { provider: llmForm.provider } : {},
2201
+ model: llmForm.model,
2202
+ ...llmForm.effort ? { effort: llmForm.effort } : {}
2203
+ } : null
2149
2204
  });
2150
2205
  api$1.success(t("channelSessionList.kvsxlu6031"));
2151
2206
  settingsOpen.value = false;
@@ -2201,12 +2256,14 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2201
2256
  const _component_a_textarea = TextArea_default;
2202
2257
  const _component_a_input_group = Group_default;
2203
2258
  const _component_a_button = button_default;
2259
+ const _component_a_space = Space;
2260
+ const _component_a_switch = switch_default;
2204
2261
  const _component_a_radio_group = Group_default$1;
2205
2262
  const _component_a_radio = radio_default;
2206
2263
  const _component_workshop_file_selector_modal = FileSelectorModal_default;
2207
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "channel-list" }, _attrs))} data-v-900ad4f3><div class="list-head" data-v-900ad4f3><span class="title" data-v-900ad4f3>Channels</span><span class="head-actions" data-v-900ad4f3><button class="head-op im" type="button" title="Channel 模板中心" data-v-900ad4f3><span class="i-tabler-layout-grid-add im-pop" data-v-900ad4f3></span></button><button class="head-op im" type="button" title="新建 Channel" data-v-900ad4f3><span class="i-tabler-plus im-pop" data-v-900ad4f3></span></button></span></div>`);
2264
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "channel-list" }, _attrs))} data-v-e3cf21d7><div class="list-head" data-v-e3cf21d7><span class="title" data-v-e3cf21d7>Channels</span><span class="head-actions" data-v-e3cf21d7><button class="head-op im" type="button" title="Channel 模板中心" data-v-e3cf21d7><span class="i-tabler-layout-grid-add im-pop" data-v-e3cf21d7></span></button><button class="head-op im" type="button" title="新建 Channel" data-v-e3cf21d7><span class="i-tabler-plus im-pop" data-v-e3cf21d7></span></button></span></div>`);
2208
2265
  _push(ssrRenderComponent(_component_ClientOnly, null, {}, _parent));
2209
- _push(`<div class="mount-template" data-v-900ad4f3>`);
2266
+ _push(`<div class="mount-template" data-v-e3cf21d7>`);
2210
2267
  _push(ssrRenderComponent(_component_a_select, {
2211
2268
  value: unref(templateMountId),
2212
2269
  "onUpdate:value": ($event) => isRef(templateMountId) ? templateMountId.value = $event : null,
@@ -2224,7 +2281,7 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2224
2281
  })),
2225
2282
  onChange: mountFromTemplate
2226
2283
  }, null, _parent));
2227
- _push(`<div class="tpl-hint" data-v-900ad4f3>${ssrInterpolate(_ctx.$t("channelSessionList.k18ppu31016"))}</div></div>`);
2284
+ _push(`<div class="tpl-hint" data-v-e3cf21d7>${ssrInterpolate(_ctx.$t("channelSessionList.k18ppu31016"))}</div></div>`);
2228
2285
  _push(ssrRenderComponent(_component_a_modal, {
2229
2286
  open: unref(mountModal),
2230
2287
  "onUpdate:open": ($event) => isRef(mountModal) ? mountModal.value = $event : null,
@@ -2266,7 +2323,7 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2266
2323
  }, _parent, _scopeId));
2267
2324
  _push(ssrRenderComponent(_component_a_form_item, { label: _ctx.$t("channelSessionList.k1wj4f38004") }, {
2268
2325
  extra: withCtx((_, _push, _parent, _scopeId) => {
2269
- if (_push) _push(`<span class="ws-hint" data-v-900ad4f3${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.k1u3zsr5017"))}</span>`);
2326
+ if (_push) _push(`<span class="ws-hint" data-v-e3cf21d7${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.k1u3zsr5017"))}</span>`);
2270
2327
  else return [createVNode("span", { class: "ws-hint" }, toDisplayString(_ctx.$t("channelSessionList.k1u3zsr5017")), 1)];
2271
2328
  }),
2272
2329
  default: withCtx((_, _push, _parent, _scopeId) => {
@@ -2291,7 +2348,7 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2291
2348
  }, _parent, _scopeId));
2292
2349
  _push(ssrRenderComponent(_component_a_form_item, { label: _ctx.$t("channelSessionList.kmgv4h5006") }, {
2293
2350
  extra: withCtx((_, _push, _parent, _scopeId) => {
2294
- if (_push) _push(`<span class="ws-hint" data-v-900ad4f3${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.kucq30k019"))}</span>`);
2351
+ if (_push) _push(`<span class="ws-hint" data-v-e3cf21d7${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.kucq30k019"))}</span>`);
2295
2352
  else return [createVNode("span", { class: "ws-hint" }, toDisplayString(_ctx.$t("channelSessionList.kucq30k019")), 1)];
2296
2353
  }),
2297
2354
  default: withCtx((_, _push, _parent, _scopeId) => {
@@ -2355,7 +2412,7 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2355
2412
  }, _parent, _scopeId));
2356
2413
  _push(ssrRenderComponent(_component_a_form_item, null, {
2357
2414
  default: withCtx((_, _push, _parent, _scopeId) => {
2358
- if (_push) _push(`<span class="ws-hint" data-v-900ad4f3${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.k1ful761020"))}</span>`);
2415
+ if (_push) _push(`<span class="ws-hint" data-v-e3cf21d7${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.k1ful761020"))}</span>`);
2359
2416
  else return [createVNode("span", { class: "ws-hint" }, toDisplayString(_ctx.$t("channelSessionList.k1ful761020")), 1)];
2360
2417
  }),
2361
2418
  _: 1
@@ -2570,6 +2627,293 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2570
2627
  }),
2571
2628
  _: 1
2572
2629
  }, _parent, _scopeId));
2630
+ _push(ssrRenderComponent(_component_a_form_item, { label: "默认模型(可选;留空用各 Harness 默认)" }, {
2631
+ default: withCtx((_, _push, _parent, _scopeId) => {
2632
+ if (_push) _push(ssrRenderComponent(_component_a_space, null, {
2633
+ default: withCtx((_, _push, _parent, _scopeId) => {
2634
+ if (_push) {
2635
+ _push(ssrRenderComponent(_component_a_switch, {
2636
+ checked: unref(llmForm).enabled,
2637
+ "onUpdate:checked": ($event) => unref(llmForm).enabled = $event,
2638
+ size: "small",
2639
+ onChange: (v) => {
2640
+ if (v) loadLlmCatalog(unref(llmForm).harness);
2641
+ }
2642
+ }, null, _parent, _scopeId));
2643
+ _push(ssrRenderComponent(_component_a_select, {
2644
+ value: unref(llmForm).harness,
2645
+ "onUpdate:value": ($event) => unref(llmForm).harness = $event,
2646
+ style: { "width": "130px" },
2647
+ options: [
2648
+ {
2649
+ value: "omp",
2650
+ label: "omp"
2651
+ },
2652
+ {
2653
+ value: "codex",
2654
+ label: "codex"
2655
+ },
2656
+ {
2657
+ value: "opencode",
2658
+ label: "opencode"
2659
+ },
2660
+ {
2661
+ value: "dsh",
2662
+ label: "dsh"
2663
+ }
2664
+ ],
2665
+ disabled: !unref(llmForm).enabled,
2666
+ onChange: onLlmHarnessChange
2667
+ }, null, _parent, _scopeId));
2668
+ _push(ssrRenderComponent(_component_a_select, {
2669
+ value: unref(llmForm).provider,
2670
+ "onUpdate:value": ($event) => unref(llmForm).provider = $event,
2671
+ style: { "width": "170px" },
2672
+ placeholder: unref(llmLoading) ? "目录加载中…" : "provider",
2673
+ options: unref(llmProviderOptions),
2674
+ disabled: !unref(llmForm).enabled || unref(llmLoading),
2675
+ "show-search": "",
2676
+ onChange: onLlmProviderChange
2677
+ }, null, _parent, _scopeId));
2678
+ _push(ssrRenderComponent(_component_a_select, {
2679
+ value: unref(llmForm).model,
2680
+ "onUpdate:value": ($event) => unref(llmForm).model = $event,
2681
+ style: { "width": "210px" },
2682
+ placeholder: "model",
2683
+ options: unref(llmModelOptions),
2684
+ disabled: !unref(llmForm).enabled || !unref(llmForm).provider,
2685
+ "show-search": "",
2686
+ onChange: onLlmModelChange
2687
+ }, null, _parent, _scopeId));
2688
+ if (unref(llmEffortMode) === "levels") _push(ssrRenderComponent(_component_a_select, {
2689
+ value: unref(llmForm).effort,
2690
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
2691
+ style: { "width": "130px" },
2692
+ placeholder: "effort(可选)",
2693
+ options: unref(llmEffortOptions),
2694
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
2695
+ "allow-clear": ""
2696
+ }, null, _parent, _scopeId));
2697
+ else if (unref(llmEffortMode) === "freetext") _push(ssrRenderComponent(_component_a_input, {
2698
+ value: unref(llmForm).effort,
2699
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
2700
+ style: { "width": "130px" },
2701
+ placeholder: "variant(可选)",
2702
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
2703
+ "allow-clear": ""
2704
+ }, null, _parent, _scopeId));
2705
+ else _push(`<!---->`);
2706
+ } else return [
2707
+ createVNode(_component_a_switch, {
2708
+ checked: unref(llmForm).enabled,
2709
+ "onUpdate:checked": ($event) => unref(llmForm).enabled = $event,
2710
+ size: "small",
2711
+ onChange: (v) => {
2712
+ if (v) loadLlmCatalog(unref(llmForm).harness);
2713
+ }
2714
+ }, null, 8, [
2715
+ "checked",
2716
+ "onUpdate:checked",
2717
+ "onChange"
2718
+ ]),
2719
+ createVNode(_component_a_select, {
2720
+ value: unref(llmForm).harness,
2721
+ "onUpdate:value": ($event) => unref(llmForm).harness = $event,
2722
+ style: { "width": "130px" },
2723
+ options: [
2724
+ {
2725
+ value: "omp",
2726
+ label: "omp"
2727
+ },
2728
+ {
2729
+ value: "codex",
2730
+ label: "codex"
2731
+ },
2732
+ {
2733
+ value: "opencode",
2734
+ label: "opencode"
2735
+ },
2736
+ {
2737
+ value: "dsh",
2738
+ label: "dsh"
2739
+ }
2740
+ ],
2741
+ disabled: !unref(llmForm).enabled,
2742
+ onChange: onLlmHarnessChange
2743
+ }, null, 8, [
2744
+ "value",
2745
+ "onUpdate:value",
2746
+ "disabled"
2747
+ ]),
2748
+ createVNode(_component_a_select, {
2749
+ value: unref(llmForm).provider,
2750
+ "onUpdate:value": ($event) => unref(llmForm).provider = $event,
2751
+ style: { "width": "170px" },
2752
+ placeholder: unref(llmLoading) ? "目录加载中…" : "provider",
2753
+ options: unref(llmProviderOptions),
2754
+ disabled: !unref(llmForm).enabled || unref(llmLoading),
2755
+ "show-search": "",
2756
+ onChange: onLlmProviderChange
2757
+ }, null, 8, [
2758
+ "value",
2759
+ "onUpdate:value",
2760
+ "placeholder",
2761
+ "options",
2762
+ "disabled"
2763
+ ]),
2764
+ createVNode(_component_a_select, {
2765
+ value: unref(llmForm).model,
2766
+ "onUpdate:value": ($event) => unref(llmForm).model = $event,
2767
+ style: { "width": "210px" },
2768
+ placeholder: "model",
2769
+ options: unref(llmModelOptions),
2770
+ disabled: !unref(llmForm).enabled || !unref(llmForm).provider,
2771
+ "show-search": "",
2772
+ onChange: onLlmModelChange
2773
+ }, null, 8, [
2774
+ "value",
2775
+ "onUpdate:value",
2776
+ "options",
2777
+ "disabled"
2778
+ ]),
2779
+ unref(llmEffortMode) === "levels" ? (openBlock(), createBlock(_component_a_select, {
2780
+ key: 0,
2781
+ value: unref(llmForm).effort,
2782
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
2783
+ style: { "width": "130px" },
2784
+ placeholder: "effort(可选)",
2785
+ options: unref(llmEffortOptions),
2786
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
2787
+ "allow-clear": ""
2788
+ }, null, 8, [
2789
+ "value",
2790
+ "onUpdate:value",
2791
+ "options",
2792
+ "disabled"
2793
+ ])) : unref(llmEffortMode) === "freetext" ? (openBlock(), createBlock(_component_a_input, {
2794
+ key: 1,
2795
+ value: unref(llmForm).effort,
2796
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
2797
+ style: { "width": "130px" },
2798
+ placeholder: "variant(可选)",
2799
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
2800
+ "allow-clear": ""
2801
+ }, null, 8, [
2802
+ "value",
2803
+ "onUpdate:value",
2804
+ "disabled"
2805
+ ])) : createCommentVNode("", true)
2806
+ ];
2807
+ }),
2808
+ _: 1
2809
+ }, _parent, _scopeId));
2810
+ else return [createVNode(_component_a_space, null, {
2811
+ default: withCtx(() => [
2812
+ createVNode(_component_a_switch, {
2813
+ checked: unref(llmForm).enabled,
2814
+ "onUpdate:checked": ($event) => unref(llmForm).enabled = $event,
2815
+ size: "small",
2816
+ onChange: (v) => {
2817
+ if (v) loadLlmCatalog(unref(llmForm).harness);
2818
+ }
2819
+ }, null, 8, [
2820
+ "checked",
2821
+ "onUpdate:checked",
2822
+ "onChange"
2823
+ ]),
2824
+ createVNode(_component_a_select, {
2825
+ value: unref(llmForm).harness,
2826
+ "onUpdate:value": ($event) => unref(llmForm).harness = $event,
2827
+ style: { "width": "130px" },
2828
+ options: [
2829
+ {
2830
+ value: "omp",
2831
+ label: "omp"
2832
+ },
2833
+ {
2834
+ value: "codex",
2835
+ label: "codex"
2836
+ },
2837
+ {
2838
+ value: "opencode",
2839
+ label: "opencode"
2840
+ },
2841
+ {
2842
+ value: "dsh",
2843
+ label: "dsh"
2844
+ }
2845
+ ],
2846
+ disabled: !unref(llmForm).enabled,
2847
+ onChange: onLlmHarnessChange
2848
+ }, null, 8, [
2849
+ "value",
2850
+ "onUpdate:value",
2851
+ "disabled"
2852
+ ]),
2853
+ createVNode(_component_a_select, {
2854
+ value: unref(llmForm).provider,
2855
+ "onUpdate:value": ($event) => unref(llmForm).provider = $event,
2856
+ style: { "width": "170px" },
2857
+ placeholder: unref(llmLoading) ? "目录加载中…" : "provider",
2858
+ options: unref(llmProviderOptions),
2859
+ disabled: !unref(llmForm).enabled || unref(llmLoading),
2860
+ "show-search": "",
2861
+ onChange: onLlmProviderChange
2862
+ }, null, 8, [
2863
+ "value",
2864
+ "onUpdate:value",
2865
+ "placeholder",
2866
+ "options",
2867
+ "disabled"
2868
+ ]),
2869
+ createVNode(_component_a_select, {
2870
+ value: unref(llmForm).model,
2871
+ "onUpdate:value": ($event) => unref(llmForm).model = $event,
2872
+ style: { "width": "210px" },
2873
+ placeholder: "model",
2874
+ options: unref(llmModelOptions),
2875
+ disabled: !unref(llmForm).enabled || !unref(llmForm).provider,
2876
+ "show-search": "",
2877
+ onChange: onLlmModelChange
2878
+ }, null, 8, [
2879
+ "value",
2880
+ "onUpdate:value",
2881
+ "options",
2882
+ "disabled"
2883
+ ]),
2884
+ unref(llmEffortMode) === "levels" ? (openBlock(), createBlock(_component_a_select, {
2885
+ key: 0,
2886
+ value: unref(llmForm).effort,
2887
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
2888
+ style: { "width": "130px" },
2889
+ placeholder: "effort(可选)",
2890
+ options: unref(llmEffortOptions),
2891
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
2892
+ "allow-clear": ""
2893
+ }, null, 8, [
2894
+ "value",
2895
+ "onUpdate:value",
2896
+ "options",
2897
+ "disabled"
2898
+ ])) : unref(llmEffortMode) === "freetext" ? (openBlock(), createBlock(_component_a_input, {
2899
+ key: 1,
2900
+ value: unref(llmForm).effort,
2901
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
2902
+ style: { "width": "130px" },
2903
+ placeholder: "variant(可选)",
2904
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
2905
+ "allow-clear": ""
2906
+ }, null, 8, [
2907
+ "value",
2908
+ "onUpdate:value",
2909
+ "disabled"
2910
+ ])) : createCommentVNode("", true)
2911
+ ]),
2912
+ _: 1
2913
+ })];
2914
+ }),
2915
+ _: 1
2916
+ }, _parent, _scopeId));
2573
2917
  _push(ssrRenderComponent(_component_a_form_item, null, {
2574
2918
  default: withCtx((_, _push, _parent, _scopeId) => {
2575
2919
  if (_push) {
@@ -2578,12 +2922,12 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2578
2922
  onClick: openSaveTemplate
2579
2923
  }, {
2580
2924
  default: withCtx((_, _push, _parent, _scopeId) => {
2581
- if (_push) _push(`<span class="i-tabler-template" data-v-900ad4f3${_scopeId}></span> ${ssrInterpolate(_ctx.$t("channelSessionList.k6kpql010"))}`);
2925
+ if (_push) _push(`<span class="i-tabler-template" data-v-e3cf21d7${_scopeId}></span> ${ssrInterpolate(_ctx.$t("channelSessionList.k6kpql010"))}`);
2582
2926
  else return [createVNode("span", { class: "i-tabler-template" }), createTextVNode(" " + toDisplayString(_ctx.$t("channelSessionList.k6kpql010")), 1)];
2583
2927
  }),
2584
2928
  _: 1
2585
2929
  }, _parent, _scopeId));
2586
- _push(`<span class="ws-hint" data-v-900ad4f3${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.k1x6kznr021"))}</span>`);
2930
+ _push(`<span class="ws-hint" data-v-e3cf21d7${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.k1x6kznr021"))}</span>`);
2587
2931
  } else return [createVNode(_component_a_button, {
2588
2932
  size: "small",
2589
2933
  onClick: openSaveTemplate
@@ -2627,6 +2971,113 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2627
2971
  })]),
2628
2972
  _: 1
2629
2973
  }, 8, ["label"]),
2974
+ createVNode(_component_a_form_item, { label: "默认模型(可选;留空用各 Harness 默认)" }, {
2975
+ default: withCtx(() => [createVNode(_component_a_space, null, {
2976
+ default: withCtx(() => [
2977
+ createVNode(_component_a_switch, {
2978
+ checked: unref(llmForm).enabled,
2979
+ "onUpdate:checked": ($event) => unref(llmForm).enabled = $event,
2980
+ size: "small",
2981
+ onChange: (v) => {
2982
+ if (v) loadLlmCatalog(unref(llmForm).harness);
2983
+ }
2984
+ }, null, 8, [
2985
+ "checked",
2986
+ "onUpdate:checked",
2987
+ "onChange"
2988
+ ]),
2989
+ createVNode(_component_a_select, {
2990
+ value: unref(llmForm).harness,
2991
+ "onUpdate:value": ($event) => unref(llmForm).harness = $event,
2992
+ style: { "width": "130px" },
2993
+ options: [
2994
+ {
2995
+ value: "omp",
2996
+ label: "omp"
2997
+ },
2998
+ {
2999
+ value: "codex",
3000
+ label: "codex"
3001
+ },
3002
+ {
3003
+ value: "opencode",
3004
+ label: "opencode"
3005
+ },
3006
+ {
3007
+ value: "dsh",
3008
+ label: "dsh"
3009
+ }
3010
+ ],
3011
+ disabled: !unref(llmForm).enabled,
3012
+ onChange: onLlmHarnessChange
3013
+ }, null, 8, [
3014
+ "value",
3015
+ "onUpdate:value",
3016
+ "disabled"
3017
+ ]),
3018
+ createVNode(_component_a_select, {
3019
+ value: unref(llmForm).provider,
3020
+ "onUpdate:value": ($event) => unref(llmForm).provider = $event,
3021
+ style: { "width": "170px" },
3022
+ placeholder: unref(llmLoading) ? "目录加载中…" : "provider",
3023
+ options: unref(llmProviderOptions),
3024
+ disabled: !unref(llmForm).enabled || unref(llmLoading),
3025
+ "show-search": "",
3026
+ onChange: onLlmProviderChange
3027
+ }, null, 8, [
3028
+ "value",
3029
+ "onUpdate:value",
3030
+ "placeholder",
3031
+ "options",
3032
+ "disabled"
3033
+ ]),
3034
+ createVNode(_component_a_select, {
3035
+ value: unref(llmForm).model,
3036
+ "onUpdate:value": ($event) => unref(llmForm).model = $event,
3037
+ style: { "width": "210px" },
3038
+ placeholder: "model",
3039
+ options: unref(llmModelOptions),
3040
+ disabled: !unref(llmForm).enabled || !unref(llmForm).provider,
3041
+ "show-search": "",
3042
+ onChange: onLlmModelChange
3043
+ }, null, 8, [
3044
+ "value",
3045
+ "onUpdate:value",
3046
+ "options",
3047
+ "disabled"
3048
+ ]),
3049
+ unref(llmEffortMode) === "levels" ? (openBlock(), createBlock(_component_a_select, {
3050
+ key: 0,
3051
+ value: unref(llmForm).effort,
3052
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
3053
+ style: { "width": "130px" },
3054
+ placeholder: "effort(可选)",
3055
+ options: unref(llmEffortOptions),
3056
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
3057
+ "allow-clear": ""
3058
+ }, null, 8, [
3059
+ "value",
3060
+ "onUpdate:value",
3061
+ "options",
3062
+ "disabled"
3063
+ ])) : unref(llmEffortMode) === "freetext" ? (openBlock(), createBlock(_component_a_input, {
3064
+ key: 1,
3065
+ value: unref(llmForm).effort,
3066
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
3067
+ style: { "width": "130px" },
3068
+ placeholder: "variant(可选)",
3069
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
3070
+ "allow-clear": ""
3071
+ }, null, 8, [
3072
+ "value",
3073
+ "onUpdate:value",
3074
+ "disabled"
3075
+ ])) : createCommentVNode("", true)
3076
+ ]),
3077
+ _: 1
3078
+ })]),
3079
+ _: 1
3080
+ }),
2630
3081
  createVNode(_component_a_form_item, null, {
2631
3082
  default: withCtx(() => [createVNode(_component_a_button, {
2632
3083
  size: "small",
@@ -2675,6 +3126,113 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2675
3126
  })]),
2676
3127
  _: 1
2677
3128
  }, 8, ["label"]),
3129
+ createVNode(_component_a_form_item, { label: "默认模型(可选;留空用各 Harness 默认)" }, {
3130
+ default: withCtx(() => [createVNode(_component_a_space, null, {
3131
+ default: withCtx(() => [
3132
+ createVNode(_component_a_switch, {
3133
+ checked: unref(llmForm).enabled,
3134
+ "onUpdate:checked": ($event) => unref(llmForm).enabled = $event,
3135
+ size: "small",
3136
+ onChange: (v) => {
3137
+ if (v) loadLlmCatalog(unref(llmForm).harness);
3138
+ }
3139
+ }, null, 8, [
3140
+ "checked",
3141
+ "onUpdate:checked",
3142
+ "onChange"
3143
+ ]),
3144
+ createVNode(_component_a_select, {
3145
+ value: unref(llmForm).harness,
3146
+ "onUpdate:value": ($event) => unref(llmForm).harness = $event,
3147
+ style: { "width": "130px" },
3148
+ options: [
3149
+ {
3150
+ value: "omp",
3151
+ label: "omp"
3152
+ },
3153
+ {
3154
+ value: "codex",
3155
+ label: "codex"
3156
+ },
3157
+ {
3158
+ value: "opencode",
3159
+ label: "opencode"
3160
+ },
3161
+ {
3162
+ value: "dsh",
3163
+ label: "dsh"
3164
+ }
3165
+ ],
3166
+ disabled: !unref(llmForm).enabled,
3167
+ onChange: onLlmHarnessChange
3168
+ }, null, 8, [
3169
+ "value",
3170
+ "onUpdate:value",
3171
+ "disabled"
3172
+ ]),
3173
+ createVNode(_component_a_select, {
3174
+ value: unref(llmForm).provider,
3175
+ "onUpdate:value": ($event) => unref(llmForm).provider = $event,
3176
+ style: { "width": "170px" },
3177
+ placeholder: unref(llmLoading) ? "目录加载中…" : "provider",
3178
+ options: unref(llmProviderOptions),
3179
+ disabled: !unref(llmForm).enabled || unref(llmLoading),
3180
+ "show-search": "",
3181
+ onChange: onLlmProviderChange
3182
+ }, null, 8, [
3183
+ "value",
3184
+ "onUpdate:value",
3185
+ "placeholder",
3186
+ "options",
3187
+ "disabled"
3188
+ ]),
3189
+ createVNode(_component_a_select, {
3190
+ value: unref(llmForm).model,
3191
+ "onUpdate:value": ($event) => unref(llmForm).model = $event,
3192
+ style: { "width": "210px" },
3193
+ placeholder: "model",
3194
+ options: unref(llmModelOptions),
3195
+ disabled: !unref(llmForm).enabled || !unref(llmForm).provider,
3196
+ "show-search": "",
3197
+ onChange: onLlmModelChange
3198
+ }, null, 8, [
3199
+ "value",
3200
+ "onUpdate:value",
3201
+ "options",
3202
+ "disabled"
3203
+ ]),
3204
+ unref(llmEffortMode) === "levels" ? (openBlock(), createBlock(_component_a_select, {
3205
+ key: 0,
3206
+ value: unref(llmForm).effort,
3207
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
3208
+ style: { "width": "130px" },
3209
+ placeholder: "effort(可选)",
3210
+ options: unref(llmEffortOptions),
3211
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
3212
+ "allow-clear": ""
3213
+ }, null, 8, [
3214
+ "value",
3215
+ "onUpdate:value",
3216
+ "options",
3217
+ "disabled"
3218
+ ])) : unref(llmEffortMode) === "freetext" ? (openBlock(), createBlock(_component_a_input, {
3219
+ key: 1,
3220
+ value: unref(llmForm).effort,
3221
+ "onUpdate:value": ($event) => unref(llmForm).effort = $event,
3222
+ style: { "width": "130px" },
3223
+ placeholder: "variant(可选)",
3224
+ disabled: !unref(llmForm).enabled || !unref(llmForm).model,
3225
+ "allow-clear": ""
3226
+ }, null, 8, [
3227
+ "value",
3228
+ "onUpdate:value",
3229
+ "disabled"
3230
+ ])) : createCommentVNode("", true)
3231
+ ]),
3232
+ _: 1
3233
+ })]),
3234
+ _: 1
3235
+ }),
2678
3236
  createVNode(_component_a_form_item, null, {
2679
3237
  default: withCtx(() => [createVNode(_component_a_button, {
2680
3238
  size: "small",
@@ -2780,7 +3338,7 @@ var ChannelSessionList_vue_vue_type_script_setup_true_lang_default = /*@__PURE__
2780
3338
  }, _parent, _scopeId));
2781
3339
  _push(ssrRenderComponent(_component_a_form_item, null, {
2782
3340
  default: withCtx((_, _push, _parent, _scopeId) => {
2783
- if (_push) _push(`<span class="ws-hint" data-v-900ad4f3${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.kl9btf7024"))}</span>`);
3341
+ if (_push) _push(`<span class="ws-hint" data-v-e3cf21d7${_scopeId}>${ssrInterpolate(_ctx.$t("channelSessionList.kl9btf7024"))}</span>`);
2784
3342
  else return [createVNode("span", { class: "ws-hint" }, toDisplayString(_ctx.$t("channelSessionList.kl9btf7024")), 1)];
2785
3343
  }),
2786
3344
  _: 1
@@ -2896,7 +3454,7 @@ ChannelSessionList_vue_vue_type_script_setup_true_lang_default.setup = (props, c
2896
3454
  (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/workshop/ChannelSessionList.vue");
2897
3455
  return _sfc_setup$29 ? _sfc_setup$29(props, ctx) : void 0;
2898
3456
  };
2899
- var ChannelSessionList_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ChannelSessionList_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-900ad4f3"]]), { __name: "WorkshopChannelSessionList" });
3457
+ var ChannelSessionList_default = /*#__PURE__*/ Object.assign(_plugin_vue_export_helper_default(ChannelSessionList_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e3cf21d7"]]), { __name: "WorkshopChannelSessionList" });
2900
3458
  //#endregion
2901
3459
  //#region app/components/workshop/LiveAgentBar.vue?vue&type=script&setup=true&lang.ts
2902
3460
  var LiveAgentBar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
@@ -3024,26 +3582,6 @@ function useComposerBus() {
3024
3582
  };
3025
3583
  }
3026
3584
  //#endregion
3027
- //#region app/composables/workshop/useLocalTime.ts
3028
- /**
3029
- * 本地时间格式化 — 服务端时间以 UTC ISO 8601(`toISOString()` 带 Z 后缀)存储,
3030
- * 前端展示须转成用户本地时区。直接对 ISO 字符串 `.slice(11, 19)` 会拿到 UTC 时刻
3031
- * (当地时间 = UTC + 时区偏移),导致聊天/工具/事件时间偏移。
3032
- *
3033
- * 统一入口:把 ISO 绝对时刻 → 本地 `HH:MM:SS` 或 `HH:MM`。
3034
- * 空值/非法输入返回 ''(调用方按空处理,不渲染幽灵时间)。
3035
- */
3036
- /** ISO 绝对时刻 → 本地 `HH:MM:SS`(秒时+秒,精确到秒) */
3037
- function formatLocalClock(iso, withSeconds = true) {
3038
- if (!iso) return "";
3039
- const d = new Date(iso);
3040
- if (Number.isNaN(d.getTime())) return "";
3041
- const hh = String(d.getHours()).padStart(2, "0");
3042
- const mm = String(d.getMinutes()).padStart(2, "0");
3043
- if (!withSeconds) return `${hh}:${mm}`;
3044
- return `${hh}:${mm}:${String(d.getSeconds()).padStart(2, "0")}`;
3045
- }
3046
- //#endregion
3047
3585
  //#region app/components/workshop/blocks/ClusterStream.vue?vue&type=script&setup=true&lang.ts
3048
3586
  var ClusterStream_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
3049
3587
  __name: "ClusterStream",
@@ -9323,4 +9861,4 @@ _wsId__vue_vue_type_script_setup_true_lang_default.setup = (props, ctx) => {
9323
9861
  var _wsId__default = /*#__PURE__*/ _plugin_vue_export_helper_default(_wsId__vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f2913902"]]);
9324
9862
 
9325
9863
  export { _wsId__default as default };
9326
- //# sourceMappingURL=_wsId_-BhQMjyHG.mjs.map
9864
+ //# sourceMappingURL=_wsId_-CanI_6Su.mjs.map