agentroam-runtime-darwin-arm64 0.2.0-preview.28 → 0.2.0-preview.30

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 (202) hide show
  1. package/manifest.json +2 -2
  2. package/package.json +1 -1
  3. package/runtime/.next/BUILD_ID +1 -1
  4. package/runtime/.next/app-build-manifest.json +6 -6
  5. package/runtime/.next/app-path-routes-manifest.json +1 -1
  6. package/runtime/.next/build-manifest.json +3 -3
  7. package/runtime/.next/prerender-manifest.json +1 -1
  8. package/runtime/.next/required-server-files.json +1 -1
  9. package/runtime/.next/server/app/_not-found/page.js +1 -1
  10. package/runtime/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/runtime/.next/server/app/_not-found.html +1 -1
  12. package/runtime/.next/server/app/_not-found.rsc +1 -1
  13. package/runtime/.next/server/app/api/agent/abort/route.js +1 -1
  14. package/runtime/.next/server/app/api/agent/answer/route.js +1 -1
  15. package/runtime/.next/server/app/api/agent/harness/status/route.js +1 -1
  16. package/runtime/.next/server/app/api/agent/model/route.js +1 -1
  17. package/runtime/.next/server/app/api/agent/models/route.js +1 -1
  18. package/runtime/.next/server/app/api/agent/run/route.js +2 -2
  19. package/runtime/.next/server/app/api/agent/runtime-health/route.js +1 -1
  20. package/runtime/.next/server/app/api/agent/steer/route.js +1 -1
  21. package/runtime/.next/server/app/api/agent/stream/route.js +2 -2
  22. package/runtime/.next/server/app/api/agent-workspaces/[workspaceId]/sessions/route.js +1 -1
  23. package/runtime/.next/server/app/api/agent-workspaces/route.js +1 -1
  24. package/runtime/.next/server/app/api/auth/verify/route.js +1 -1
  25. package/runtime/.next/server/app/api/business/route.js +1 -1
  26. package/runtime/.next/server/app/api/client-logs/route.js +1 -1
  27. package/runtime/.next/server/app/api/mcp/connect/route.js +1 -1
  28. package/runtime/.next/server/app/api/mcp/disconnect/route.js +1 -1
  29. package/runtime/.next/server/app/api/mcp/servers/route.js +1 -1
  30. package/runtime/.next/server/app/api/memory/[key]/route.js +1 -1
  31. package/runtime/.next/server/app/api/memory/route.js +1 -1
  32. package/runtime/.next/server/app/api/plugins/load/route.js +1 -1
  33. package/runtime/.next/server/app/api/projects/[id]/route.js +1 -1
  34. package/runtime/.next/server/app/api/projects/check/route.js +1 -1
  35. package/runtime/.next/server/app/api/projects/directories/route.js +1 -1
  36. package/runtime/.next/server/app/api/projects/roots/route.js +1 -1
  37. package/runtime/.next/server/app/api/projects/route.js +1 -1
  38. package/runtime/.next/server/app/api/push/subscribe/route.js +3 -3
  39. package/runtime/.next/server/app/api/push/unsubscribe/route.js +2 -2
  40. package/runtime/.next/server/app/api/push/vapid/route.js +2 -2
  41. package/runtime/.next/server/app/api/push/vapid.body +1 -1
  42. package/runtime/.next/server/app/api/remote-tools/register/route.js +1 -1
  43. package/runtime/.next/server/app/api/sessions/[id]/changes/route.js +2 -2
  44. package/runtime/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
  45. package/runtime/.next/server/app/api/sessions/[id]/goals/route.js +1 -1
  46. package/runtime/.next/server/app/api/sessions/[id]/handoff/route.js +1 -1
  47. package/runtime/.next/server/app/api/sessions/[id]/query-index/route.js +1 -1
  48. package/runtime/.next/server/app/api/sessions/[id]/release/route.js +1 -1
  49. package/runtime/.next/server/app/api/sessions/[id]/route.js +1 -1
  50. package/runtime/.next/server/app/api/sessions/[id]/thread-goal/route.js +1 -1
  51. package/runtime/.next/server/app/api/sessions/[id]/tool-result/route.js +1 -1
  52. package/runtime/.next/server/app/api/sessions/route.js +1 -1
  53. package/runtime/.next/server/app/api/settings/route.js +1 -1
  54. package/runtime/.next/server/app/api/skills/route.js +1 -1
  55. package/runtime/.next/server/app/api/tools/route.js +1 -1
  56. package/runtime/.next/server/app/api/update/check/route.js +1 -1
  57. package/runtime/.next/server/app/api/update/install/route.js +1 -1
  58. package/runtime/.next/server/app/api/update/status/route.js +1 -1
  59. package/runtime/.next/server/app/api/web-auth/login/route.js +1 -1
  60. package/runtime/.next/server/app/api/web-auth/logout/route.js +1 -1
  61. package/runtime/.next/server/app/api/web-auth/revoke-all/route.js +1 -1
  62. package/runtime/.next/server/app/api/web-auth/setup/route.js +1 -1
  63. package/runtime/.next/server/app/api/web-auth/status/route.js +1 -1
  64. package/runtime/.next/server/app/api/web-console/bootstrap/route.js +1 -1
  65. package/runtime/.next/server/app/api/web-console/device-state/route.js +1 -1
  66. package/runtime/.next/server/app/api/web-console/history/route.js +1 -1
  67. package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
  68. package/runtime/.next/server/app/web/page.js +2 -2
  69. package/runtime/.next/server/app/web/page_client-reference-manifest.js +1 -1
  70. package/runtime/.next/server/app/web.html +1 -1
  71. package/runtime/.next/server/app/web.rsc +3 -3
  72. package/runtime/.next/server/app-paths-manifest.json +20 -20
  73. package/runtime/.next/server/chunks/1322.js +3 -3
  74. package/runtime/.next/server/chunks/1773.js +13 -13
  75. package/runtime/.next/server/chunks/5303.js +2 -2
  76. package/runtime/.next/server/middleware-build-manifest.js +1 -1
  77. package/runtime/.next/server/pages/404.html +1 -1
  78. package/runtime/.next/server/pages/500.html +1 -1
  79. package/runtime/.next/server/server-reference-manifest.json +1 -1
  80. package/runtime/.next/static/chunks/app/web/{error-459a614d3ef07cb1.js → error-828d278147a0619d.js} +1 -1
  81. package/runtime/.next/static/chunks/app/web/{page-fe13a9839bbd078b.js → page-35b39ca2b50948ea.js} +1 -1
  82. package/runtime/.next/static/chunks/main-app-07d67f2d4e96ecb8.js +1 -0
  83. package/runtime/lib/remote-control/helper-manager.mjs +100 -8
  84. package/runtime/lib/remote-control/ice-config.mjs +24 -0
  85. package/runtime/lib/remote-control/remote-authorization.mjs +111 -23
  86. package/runtime/lib/remote-control/video-adaptation.mjs +66 -0
  87. package/runtime/lib/remote-control/webrtc-video.mjs +38 -6
  88. package/runtime/native/AgentRoam Remote Desktop.app/Contents/MacOS/agentroam-remote-desktop +0 -0
  89. package/runtime/node_modules/.package-lock.json +146 -146
  90. package/runtime/node_modules/@agent/core/dist/domain/browser-live/BrowserLiveRegistry.d.ts +43 -0
  91. package/runtime/node_modules/@agent/core/dist/domain/browser-live/BrowserLiveRegistry.test.d.ts +2 -0
  92. package/runtime/node_modules/@agent/core/dist/domain/browser-live/entities.d.ts +57 -0
  93. package/runtime/node_modules/@agent/core/dist/domain/live-view/live-view-registry.d.ts +8 -1
  94. package/runtime/node_modules/@agent/core/dist/domain/live-view/live-view-registry.d.ts.map +1 -1
  95. package/runtime/node_modules/@agent/core/dist/domain/model/entities.d.ts +1 -0
  96. package/runtime/node_modules/@agent/core/dist/domain/model/entities.d.ts.map +1 -1
  97. package/runtime/node_modules/@agent/core/dist/domain/model/providers/AiHubProvider.d.ts.map +1 -1
  98. package/runtime/node_modules/@agent/core/dist/index.js +61 -4
  99. package/runtime/node_modules/@agent/core/dist/index.js.map +5 -5
  100. package/runtime/node_modules/@agent/native-runtime/dist/agent-runtime/codex-app-server-client.d.ts +9 -0
  101. package/runtime/node_modules/@agent/native-runtime/dist/agent-runtime/codex-app-server-client.d.ts.map +1 -1
  102. package/runtime/node_modules/@agent/native-runtime/dist/index.js +32 -1
  103. package/runtime/node_modules/@agent/native-runtime/dist/index.js.map +3 -3
  104. package/runtime/node_modules/@peculiar/asn1-cms/package.json +4 -4
  105. package/runtime/node_modules/@peculiar/asn1-csr/package.json +3 -3
  106. package/runtime/node_modules/@peculiar/asn1-ecc/package.json +3 -3
  107. package/runtime/node_modules/@peculiar/asn1-pfx/package.json +5 -5
  108. package/runtime/node_modules/@peculiar/asn1-pkcs8/package.json +3 -3
  109. package/runtime/node_modules/@peculiar/asn1-pkcs9/package.json +7 -7
  110. package/runtime/node_modules/@peculiar/asn1-rsa/package.json +3 -3
  111. package/runtime/node_modules/@peculiar/asn1-schema/package.json +1 -1
  112. package/runtime/node_modules/@peculiar/asn1-x509/package.json +2 -2
  113. package/runtime/node_modules/@peculiar/asn1-x509-attr/package.json +3 -3
  114. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.cjs +76 -32
  115. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.min.cjs +6 -6
  116. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.min.mjs +6 -6
  117. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.mjs +76 -32
  118. package/runtime/node_modules/mediabunny/dist/bundles/mediabunny.node.cjs +76 -32
  119. package/runtime/node_modules/mediabunny/dist/modules/src/input-track.js +2 -1
  120. package/runtime/node_modules/mediabunny/dist/modules/src/media-source.js +18 -13
  121. package/runtime/node_modules/mediabunny/dist/modules/src/pcm.js +8 -5
  122. package/runtime/node_modules/mediabunny/dist/modules/src/sample.js +3 -3
  123. package/runtime/node_modules/mediabunny/dist/modules/src/source.js +36 -9
  124. package/runtime/node_modules/mediabunny/dist/modules/src/tsconfig.tsbuildinfo +1 -1
  125. package/runtime/node_modules/mediabunny/package.json +1 -1
  126. package/runtime/node_modules/mediabunny/src/input-track.ts +2 -2
  127. package/runtime/node_modules/mediabunny/src/media-source.ts +28 -13
  128. package/runtime/node_modules/mediabunny/src/pcm.ts +7 -5
  129. package/runtime/node_modules/mediabunny/src/sample.ts +3 -3
  130. package/runtime/node_modules/mediabunny/src/source.ts +42 -9
  131. package/runtime/package-lock.json +248 -248
  132. package/runtime/server.js +1 -1
  133. package/runtime/webapp/dist/assets/App-B9fFBxXf.js +401 -0
  134. package/runtime/webapp/dist/assets/{abnfDiagram-VCTEODGH-DjNCARX_.js → abnfDiagram-VCTEODGH-DPY9Atna.js} +1 -1
  135. package/runtime/webapp/dist/assets/{arc-CqF9tsfq.js → arc-gxx4KO-R.js} +1 -1
  136. package/runtime/webapp/dist/assets/{architectureDiagram-5GKGNRK7-B8XoyRpi.js → architectureDiagram-5GKGNRK7-CDtEowhb.js} +1 -1
  137. package/runtime/webapp/dist/assets/{blockDiagram-I7D4REHJ-DJWEWBAG.js → blockDiagram-I7D4REHJ-BBQWYRN3.js} +1 -1
  138. package/runtime/webapp/dist/assets/{c4Diagram-7LVT6UL2-CCtRRlFH.js → c4Diagram-7LVT6UL2-BEzQh_6L.js} +1 -1
  139. package/runtime/webapp/dist/assets/channel-DGgnibQl.js +1 -0
  140. package/runtime/webapp/dist/assets/{chunk-2Q5K7J3B-5lvnyxXp.js → chunk-2Q5K7J3B-DWqy3aV4.js} +1 -1
  141. package/runtime/webapp/dist/assets/{chunk-5VM5RSS4-DVLpJLjM.js → chunk-5VM5RSS4-BggGbO3s.js} +1 -1
  142. package/runtime/webapp/dist/assets/{chunk-F27PBJKO-DUQQyF6E.js → chunk-F27PBJKO-CK8gdazu.js} +1 -1
  143. package/runtime/webapp/dist/assets/{chunk-IMKFNOWR-BYqLGzV4.js → chunk-IMKFNOWR-CyEwqH4M.js} +1 -1
  144. package/runtime/webapp/dist/assets/{chunk-JWPE2WC7-BnScQXxW.js → chunk-JWPE2WC7-DcuTEoow.js} +1 -1
  145. package/runtime/webapp/dist/assets/{chunk-POPQ4Y6H-C4L3XQJS.js → chunk-POPQ4Y6H-D3j3pkS9.js} +1 -1
  146. package/runtime/webapp/dist/assets/{chunk-SVP7TREG-B87wPXZG.js → chunk-SVP7TREG-YC29qq2P.js} +1 -1
  147. package/runtime/webapp/dist/assets/{chunk-TICWLB2K-CwY3NJZh.js → chunk-TICWLB2K-tX8DsZa3.js} +1 -1
  148. package/runtime/webapp/dist/assets/{chunk-XXDRQBXY-VaoFdYzy.js → chunk-XXDRQBXY-CS5pY3Fn.js} +1 -1
  149. package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-Cs2DXyNV.js +1 -0
  150. package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-Cs2DXyNV.js +1 -0
  151. package/runtime/webapp/dist/assets/{cose-bilkent-JH36ORCC-Cdy954zb.js → cose-bilkent-JH36ORCC-BVqJCYTO.js} +1 -1
  152. package/runtime/webapp/dist/assets/{cynefin-OW5HDTMX-Ce6LdjlA.js → cynefin-OW5HDTMX-D38FnOUk.js} +1 -1
  153. package/runtime/webapp/dist/assets/{cynefinDiagram-5FMLGOSQ-DMCLXHXT.js → cynefinDiagram-5FMLGOSQ-Dy6T5RuU.js} +1 -1
  154. package/runtime/webapp/dist/assets/{dagre-GXQ25YYZ-C1ZaA_nb.js → dagre-GXQ25YYZ-Bh5KgVbx.js} +1 -1
  155. package/runtime/webapp/dist/assets/{diagram-S7CK7UJ4-DhMDevUw.js → diagram-S7CK7UJ4-C34hdWG_.js} +1 -1
  156. package/runtime/webapp/dist/assets/{diagram-UQ7AKVKN-DUvFhqRK.js → diagram-UQ7AKVKN-CvlxkX1S.js} +1 -1
  157. package/runtime/webapp/dist/assets/{diagram-VSXAHHWV-DMGwVFJ1.js → diagram-VSXAHHWV-Bz13qtQi.js} +1 -1
  158. package/runtime/webapp/dist/assets/{diagram-VX7I27RA-BJEEB_v1.js → diagram-VX7I27RA-ytZvVOv6.js} +1 -1
  159. package/runtime/webapp/dist/assets/{diagram-Z3DM3KII-BYVk_HIb.js → diagram-Z3DM3KII-BPDLcb8x.js} +1 -1
  160. package/runtime/webapp/dist/assets/{ebnfDiagram-PWID7BFC-YmX93FGE.js → ebnfDiagram-PWID7BFC-BbzzkA_Z.js} +1 -1
  161. package/runtime/webapp/dist/assets/{erDiagram-RLTQ6QDP-BoSBxBDD.js → erDiagram-RLTQ6QDP-DOwNOTvo.js} +1 -1
  162. package/runtime/webapp/dist/assets/{flowDiagram-HODETNUW-Bd1gHtPx.js → flowDiagram-HODETNUW-B87JI1r4.js} +1 -1
  163. package/runtime/webapp/dist/assets/{ganttDiagram-EL5Y4UJY-DMnELgPc.js → ganttDiagram-EL5Y4UJY-DrI8Jsih.js} +1 -1
  164. package/runtime/webapp/dist/assets/{gitGraphDiagram-WWUBYQGX-Bo53RZ53.js → gitGraphDiagram-WWUBYQGX-cjkJ7Isw.js} +1 -1
  165. package/runtime/webapp/dist/assets/{index-BNlTLpxu.js → index-BKKOMKSW.js} +25 -25
  166. package/runtime/webapp/dist/assets/{infoDiagram-27XIBGKW-nYvvSuyV.js → infoDiagram-27XIBGKW-h5buGb-a.js} +1 -1
  167. package/runtime/webapp/dist/assets/{ishikawaDiagram-5VMMS53U-B2ylUHT-.js → ishikawaDiagram-5VMMS53U-DV-eRaCb.js} +1 -1
  168. package/runtime/webapp/dist/assets/{journeyDiagram-3NMN7TZE-BrMRIVJG.js → journeyDiagram-3NMN7TZE-B4Ihe9Se.js} +1 -1
  169. package/runtime/webapp/dist/assets/{kanban-definition-UXKFOSKX-C6KqVjYP.js → kanban-definition-UXKFOSKX-BN4CGEQ8.js} +1 -1
  170. package/runtime/webapp/dist/assets/{layout-qijDjnh2.js → layout-BgtY0MES.js} +1 -1
  171. package/runtime/webapp/dist/assets/{linear-uDYQWzwO.js → linear-CXqaK8A0.js} +1 -1
  172. package/runtime/webapp/dist/assets/{mermaid.core-CaLm9OSy.js → mermaid.core-Bha0FDcb.js} +5 -5
  173. package/runtime/webapp/dist/assets/{mindmap-definition-YA3MSWOX-IvngA4mV.js → mindmap-definition-YA3MSWOX-yU2-xIdz.js} +1 -1
  174. package/runtime/webapp/dist/assets/{pegDiagram-XKGWAZYB-uOQ6ujGf.js → pegDiagram-XKGWAZYB-d-DQminI.js} +1 -1
  175. package/runtime/webapp/dist/assets/{pieDiagram-E7YTZNPT-DuITuGqI.js → pieDiagram-E7YTZNPT-0qrs76Fa.js} +1 -1
  176. package/runtime/webapp/dist/assets/{quadrantDiagram-AXDQQJYC-6pwUsamI.js → quadrantDiagram-AXDQQJYC-BZCNhMN3.js} +1 -1
  177. package/runtime/webapp/dist/assets/{railroadDiagram-O6MQD6OU-DfKWLDxT.js → railroadDiagram-O6MQD6OU-DnGEsthn.js} +1 -1
  178. package/runtime/webapp/dist/assets/{requirementDiagram-BXWQKSXE-Bg8aLeo2.js → requirementDiagram-BXWQKSXE-H-v78hwk.js} +1 -1
  179. package/runtime/webapp/dist/assets/{sankeyDiagram-P5KCCOFB-Bvn1cbgD.js → sankeyDiagram-P5KCCOFB-CK5Qe7rJ.js} +1 -1
  180. package/runtime/webapp/dist/assets/{sequenceDiagram-WJ2MYXX4-wV1vkC70.js → sequenceDiagram-WJ2MYXX4-N6OyxYlc.js} +1 -1
  181. package/runtime/webapp/dist/assets/{sizeCapture-INFHLROL-mgdL0u6j.js → sizeCapture-INFHLROL-C7VWRtk5.js} +1 -1
  182. package/runtime/webapp/dist/assets/{stateDiagram-D77RDMKH-_M_OUxTl.js → stateDiagram-D77RDMKH-DNZIn27w.js} +1 -1
  183. package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-ChsGYmJ_.js +1 -0
  184. package/runtime/webapp/dist/assets/{swimlanes-42K2YHIH-DRdG-4hh.js → swimlanes-42K2YHIH-B-MMpnwY.js} +1 -1
  185. package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-D8ZFIslC.js +8 -0
  186. package/runtime/webapp/dist/assets/{timeline-definition-24CTP7MA-C5Iq9I3a.js → timeline-definition-24CTP7MA-CY-LM4uv.js} +1 -1
  187. package/runtime/webapp/dist/assets/{vennDiagram-4TSXK5OY-C3g7k5-y.js → vennDiagram-4TSXK5OY-Bq7R9vcP.js} +1 -1
  188. package/runtime/webapp/dist/assets/{wardleyDiagram-VM6X3IG4-BLG-jBgv.js → wardleyDiagram-VM6X3IG4-iz487NeZ.js} +1 -1
  189. package/runtime/webapp/dist/assets/{web-Cs04qlNE.js → web-35on_xyN.js} +1 -1
  190. package/runtime/webapp/dist/assets/{web-DBnlvEa8.js → web-DrfNhHqc.js} +1 -1
  191. package/runtime/webapp/dist/assets/{xychartDiagram-S5SC5T6Z-3CCJVyYa.js → xychartDiagram-S5SC5T6Z-Cs70DUgN.js} +1 -1
  192. package/runtime/webapp/dist/index.html +1 -1
  193. package/runtime/ws-server.mjs +32 -1
  194. package/runtime/.next/static/chunks/main-app-6226257cbf59e19d.js +0 -1
  195. package/runtime/webapp/dist/assets/App-D0fABa73.js +0 -401
  196. package/runtime/webapp/dist/assets/channel-lOQR-YTy.js +0 -1
  197. package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-CODoFoHA.js +0 -1
  198. package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-CODoFoHA.js +0 -1
  199. package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-DTCmXaGU.js +0 -1
  200. package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-DanX6zK_.js +0 -8
  201. /package/runtime/.next/static/{1rz-WVZkEjfiC8zmdrxjC → gnBl5ndv1KHoFsGDlq_7A}/_buildManifest.js +0 -0
  202. /package/runtime/.next/static/{1rz-WVZkEjfiC8zmdrxjC → gnBl5ndv1KHoFsGDlq_7A}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var e={};e.id=2616,e.ids=[2616],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},6972:(e,t,r)=>{r.a(e,async(e,i)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>l,requestAsyncStorage:()=>p,routeModule:()=>d,serverHooks:()=>h,staticGenerationAsyncStorage:()=>c});var s=r(7786),n=r(5042),a=r(2184),o=r(7720),u=e([o]);o=(u.then?(await u)():u)[0];let d=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/agent/run/route",pathname:"/api/agent/run",filename:"route",bundlePath:"app/api/agent/run/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/agent/run/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:p,staticGenerationAsyncStorage:c,serverHooks:h}=d,m="/api/agent/run/route";function l(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:c})}i()}catch(e){i(e)}})},7720:(e,t,r)=>{r.a(e,async(e,i)=>{try{r.r(t),r.d(t,{POST:()=>c});var s=r(1890),n=r(6279),a=r(7186),o=r(2083),u=r(1770),l=r(535),d=r(1079),p=e([n,a,o,d]);async function c(e){try{(0,d.j)();let t=await e.json();if(!t.input)return s.NextResponse.json({error:"input is required"},{status:400});if(void 0!==t.agentIds&&(!Array.isArray(t.agentIds)||t.agentIds.length>20||t.agentIds.some(e=>"string"!=typeof e||!e.trim())))return s.NextResponse.json({error:"agentIds must contain at most 20 non-empty IDs"},{status:400});if(void 0!==t.profileId&&("string"!=typeof t.profileId||!t.profileId.trim()||t.profileId.length>200))return s.NextResponse.json({error:"profileId must be a non-empty string"},{status:400});if(t.sessionId&&(0,o.V_)(t.sessionId)){let e=t.sessionId,r=(0,o.NL)(),i=await r.startRun(e,t.input,t.images,"web",{...t.nativeModel?.id?{model:t.nativeModel}:{},...t.nativeReasoningEffort?{reasoningEffort:t.nativeReasoningEffort}:{}});a.agentHost.resetExternalStream(e),a.agentHost.publishExternal(e,{type:"run_admitted",_nativeRunId:i.runId,_nativeSequence:i.snapshotRevision});let u=null,d=!1;return r.subscribe(e,0,({event:t})=>{a.agentHost.publishExternal(e,t),("done"===t.type||"error"===t.type)&&(d=!0,u?.())}).then(e=>{u=e,d&&e()}).catch(t=>{let r=t instanceof n.no?t.code:void 0;(0,l.L)().error("native run subscription failed",t,{sessionId:e,code:r}),a.agentHost.publishExternal(e,{type:"error",message:t instanceof Error?t.message:"Native run subscription failed",...r?{code:r}:{}})}),s.NextResponse.json({sessionId:e,streamUrl:`/api/agent/stream?sessionId=${e}`,runId:i.runId,snapshotRevision:i.snapshotRevision})}let r=t.sessionId??crypto.randomUUID(),i=a.agentHost.getSessionStore(),p=await i.get(r);if(!p){let e=new Date().toISOString();p=await i.create({id:r,projectId:"",title:`Chat ${e}`,status:"idle",messages:[],events:[],created:e,updated:e,metadata:{}})}let c=(0,u.vJ)(t),h=a.agentHost.startRun(t.input,r,t.images,{...t.model?{model:t.model}:{},...t.profileId?{profileId:t.profileId}:{},...t.reasoningEffort?{reasoningEffort:t.reasoningEffort}:{},...void 0===t.maxIterations?{}:{maxIterations:c.maxIterations},...void 0===t.maxTokens?{}:{maxTokens:c.maxTokens},...t.agentIds?{agentIds:t.agentIds}:{}});return h.completion.catch(e=>{(0,l.L)().error("agent run error",e,{sessionId:t.sessionId??p.id}),console.error("Agent run error:",e)}),s.NextResponse.json({sessionId:p.id,streamUrl:`/api/agent/stream?sessionId=${p.id}`,runId:h.runId})}catch(o){(0,l.L)().error("agent run request failed",o,{status:o instanceof n.no?o.code:void 0});let e=o instanceof n.no?o.code:void 0,t=o instanceof a.A?o.code:void 0,r=e??t,i="SESSION_OCCUPIED"===r||"SESSION_ALREADY_RUNNING"===r;return s.NextResponse.json({error:o instanceof Error?o.message:"Internal error",...r?{code:r}:{}},{status:i?409:500})}}[n,a,o,d]=p.then?(await p)():p,i()}catch(e){i(e)}})},1770:(e,t,r)=>{function i(e,t,r,i){return"number"==typeof e&&Number.isFinite(e)?Math.min(i,Math.max(r,Math.trunc(e))):t}function s(e){return{maxIterations:i(e.maxIterations,10,1,50),maxTokens:i(e.maxTokens,1e5,8e3,2e6)}}r.d(t,{vJ:()=>s})},2560:(e,t,r)=>{r.d(t,{X:()=>l});var i=r(7718),s=r(7561),n=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,s.accessSync)(e,s.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,i.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function l(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let i=o(r);t.push({source:"pin",path:r,executable:i,version:i?u(r):void 0,error:i?void 0:`${e.environmentVariable} "${r}" is not executable`})}let i=function(e){for(let t of(process.env.PATH??"").split(n.delimiter).filter(Boolean)){let r=(0,n.resolve)(t,e);if(o(r))return r}}(e.name);return i&&i!==r&&t.push({source:"path",path:i,executable:!0,version:u(i)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},2083:(e,t,r)=>{r.a(e,async(e,i)=>{try{r.d(t,{NL:()=>f,V_:()=>I,WW:()=>T});var s=r(7561),n=r(612),a=r(9411),o=r(2560),u=r(535),l=r(1322),d=r(6279),p=r(785),c=e([d]);d=(c.then?(await c)():c)[0];let v=globalThis;class N{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new d.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let i=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return i;let s=new Set(i.data.map(e=>e.id)),n=i.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),h(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||s.has(r.id)||n.unshift(r);return{...i,data:n}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return y(this.withPendingCreations(t).map(e=>g(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return y(this.withPendingCreations(t).map(e=>g(e,r,this.platform)),e)}async create(e){let t=g(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!I(e))throw new d.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=g(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(i){let r=this.pendingCreations.get(e);if(!r)throw i;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return g(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:i}=await Promise.resolve().then(r.bind(r,1322));return i(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,i,s){return this.runtime.run(e,t,r,i,s)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new d.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,i="web",s){if(!this.runtime.startRun)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,i,s)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new d.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,i="web"){if(!this.runtime.enqueueGoal)throw new d.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,i)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new d.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new d.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,i){if(!this.runtime.updateMessage)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,i)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?h(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function h(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function f(){if(!v.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,n.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,s.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new l.XWE((0,p.kO)());v.__nativeRuntimeService=new N((0,d.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:l.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,d.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return v.__nativeRuntimeService}function g(e,t,r=process.platform){let{projectId:i,...s}=e;if(!e.cwd)return s;let n=E(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:E(e.description,r)})).filter(({path:e})=>n===e||n.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...s,projectId:u.project.id}:s}function E(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),i=a.win32.parse(r).root;return(r.length>i.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function y(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function I(e){try{return"customer-agent"!==(0,d.Vu)(e).agentType}catch{return!1}}function T(e){if(e instanceof d.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}i()}catch(e){i(e)}})},1079:(e,t,r)=>{r.a(e,async(e,i)=>{try{r.d(t,{j:()=>u});var s=r(7186),n=r(3931),a=r(535),o=e([s]);s=(o.then?(await o)():o)[0];let l=!1;function u(){l||(l=!0,s.agentHost.setGlobalEventObserver((e,t)=>{try{if("ask_user"===t.type){(0,n.i)().notifySession({sessionId:e,kind:"approval",title:"需要你的审批",body:"string"==typeof t.question&&t.question.trim()?t.question.trim().slice(0,160):"会话正在等待确认",url:"/app/"});return}if("done"===t.type){(0,n.i)().notifySession({sessionId:e,kind:"done",title:"会话已完成",body:"string"==typeof t.finalText&&t.finalText.trim()?t.finalText.trim().slice(0,160):"运行已结束",url:"/app/"});return}"error"===t.type&&(0,n.i)().notifySession({sessionId:e,kind:"error",title:"会话出错",body:"string"==typeof t.message&&t.message.trim()?t.message.trim().slice(0,160):"运行失败",url:"/app/"})}catch(t){(0,a.L)().warn("web push notify failed",{sessionId:e,error:t instanceof Error?t.message:String(t)})}}))}i()}catch(e){i(e)}})},3931:(e,t,r)=>{r.d(t,{i:()=>c});var i=r(6005),s=r(7561),n=r(9411),a=r(5890);let o=require("web-push"),u=e=>JSON.stringify(e??null);class l{constructor(e,t=Date.now){this.now=t;let r=(0,n.resolve)(e,".agentroam-auth");(0,s.mkdirSync)(r,{recursive:!0,mode:448});let i=(0,n.join)(r,"push.sqlite");this.db=new a(i),(0,s.chmodSync)(i,384),this.db.pragma("busy_timeout = 5000"),this.db.exec(`
1
+ "use strict";(()=>{var e={};e.id=2616,e.ids=[2616],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},3636:(e,t,r)=>{r.a(e,async(e,i)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>l,requestAsyncStorage:()=>p,routeModule:()=>d,serverHooks:()=>h,staticGenerationAsyncStorage:()=>c});var s=r(7786),n=r(5042),a=r(2184),o=r(7720),u=e([o]);o=(u.then?(await u)():u)[0];let d=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/agent/run/route",pathname:"/api/agent/run",filename:"route",bundlePath:"app/api/agent/run/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/run/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:p,staticGenerationAsyncStorage:c,serverHooks:h}=d,m="/api/agent/run/route";function l(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:c})}i()}catch(e){i(e)}})},7720:(e,t,r)=>{r.a(e,async(e,i)=>{try{r.r(t),r.d(t,{POST:()=>c});var s=r(1890),n=r(6279),a=r(7186),o=r(2083),u=r(1770),l=r(535),d=r(1079),p=e([n,a,o,d]);async function c(e){try{(0,d.j)();let t=await e.json();if(!t.input)return s.NextResponse.json({error:"input is required"},{status:400});if(void 0!==t.agentIds&&(!Array.isArray(t.agentIds)||t.agentIds.length>20||t.agentIds.some(e=>"string"!=typeof e||!e.trim())))return s.NextResponse.json({error:"agentIds must contain at most 20 non-empty IDs"},{status:400});if(void 0!==t.profileId&&("string"!=typeof t.profileId||!t.profileId.trim()||t.profileId.length>200))return s.NextResponse.json({error:"profileId must be a non-empty string"},{status:400});if(t.sessionId&&(0,o.V_)(t.sessionId)){let e=t.sessionId,r=(0,o.NL)(),i=await r.startRun(e,t.input,t.images,"web",{...t.nativeModel?.id?{model:t.nativeModel}:{},...t.nativeReasoningEffort?{reasoningEffort:t.nativeReasoningEffort}:{}});a.agentHost.resetExternalStream(e),a.agentHost.publishExternal(e,{type:"run_admitted",_nativeRunId:i.runId,_nativeSequence:i.snapshotRevision});let u=null,d=!1;return r.subscribe(e,0,({event:t})=>{a.agentHost.publishExternal(e,t),("done"===t.type||"error"===t.type)&&(d=!0,u?.())}).then(e=>{u=e,d&&e()}).catch(t=>{let r=t instanceof n.no?t.code:void 0;(0,l.L)().error("native run subscription failed",t,{sessionId:e,code:r}),a.agentHost.publishExternal(e,{type:"error",message:t instanceof Error?t.message:"Native run subscription failed",...r?{code:r}:{}})}),s.NextResponse.json({sessionId:e,streamUrl:`/api/agent/stream?sessionId=${e}`,runId:i.runId,snapshotRevision:i.snapshotRevision})}let r=t.sessionId??crypto.randomUUID(),i=a.agentHost.getSessionStore(),p=await i.get(r);if(!p){let e=new Date().toISOString();p=await i.create({id:r,projectId:"",title:`Chat ${e}`,status:"idle",messages:[],events:[],created:e,updated:e,metadata:{}})}let c=(0,u.vJ)(t),h=a.agentHost.startRun(t.input,r,t.images,{...t.model?{model:t.model}:{},...t.profileId?{profileId:t.profileId}:{},...t.reasoningEffort?{reasoningEffort:t.reasoningEffort}:{},...void 0===t.maxIterations?{}:{maxIterations:c.maxIterations},...void 0===t.maxTokens?{}:{maxTokens:c.maxTokens},...t.agentIds?{agentIds:t.agentIds}:{}});return h.completion.catch(e=>{(0,l.L)().error("agent run error",e,{sessionId:t.sessionId??p.id}),console.error("Agent run error:",e)}),s.NextResponse.json({sessionId:p.id,streamUrl:`/api/agent/stream?sessionId=${p.id}`,runId:h.runId})}catch(o){(0,l.L)().error("agent run request failed",o,{status:o instanceof n.no?o.code:void 0});let e=o instanceof n.no?o.code:void 0,t=o instanceof a.A?o.code:void 0,r=e??t,i="SESSION_OCCUPIED"===r||"SESSION_ALREADY_RUNNING"===r;return s.NextResponse.json({error:o instanceof Error?o.message:"Internal error",...r?{code:r}:{}},{status:i?409:500})}}[n,a,o,d]=p.then?(await p)():p,i()}catch(e){i(e)}})},1770:(e,t,r)=>{function i(e,t,r,i){return"number"==typeof e&&Number.isFinite(e)?Math.min(i,Math.max(r,Math.trunc(e))):t}function s(e){return{maxIterations:i(e.maxIterations,10,1,50),maxTokens:i(e.maxTokens,1e5,8e3,2e6)}}r.d(t,{vJ:()=>s})},2560:(e,t,r)=>{r.d(t,{X:()=>l});var i=r(7718),s=r(7561),n=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,s.accessSync)(e,s.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,i.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function l(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let i=o(r);t.push({source:"pin",path:r,executable:i,version:i?u(r):void 0,error:i?void 0:`${e.environmentVariable} "${r}" is not executable`})}let i=function(e){for(let t of(process.env.PATH??"").split(n.delimiter).filter(Boolean)){let r=(0,n.resolve)(t,e);if(o(r))return r}}(e.name);return i&&i!==r&&t.push({source:"path",path:i,executable:!0,version:u(i)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},2083:(e,t,r)=>{r.a(e,async(e,i)=>{try{r.d(t,{NL:()=>f,V_:()=>I,WW:()=>T});var s=r(7561),n=r(612),a=r(9411),o=r(2560),u=r(535),l=r(1322),d=r(6279),p=r(785),c=e([d]);d=(c.then?(await c)():c)[0];let v=globalThis;class N{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new d.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let i=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return i;let s=new Set(i.data.map(e=>e.id)),n=i.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),h(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||s.has(r.id)||n.unshift(r);return{...i,data:n}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return y(this.withPendingCreations(t).map(e=>g(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return y(this.withPendingCreations(t).map(e=>g(e,r,this.platform)),e)}async create(e){let t=g(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!I(e))throw new d.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=g(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(i){let r=this.pendingCreations.get(e);if(!r)throw i;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return g(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:i}=await Promise.resolve().then(r.bind(r,1322));return i(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,i,s){return this.runtime.run(e,t,r,i,s)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new d.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,i="web",s){if(!this.runtime.startRun)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,i,s)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new d.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new d.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,i="web"){if(!this.runtime.enqueueGoal)throw new d.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,i)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new d.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new d.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,i){if(!this.runtime.updateMessage)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,i)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new d.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?h(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function h(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function f(){if(!v.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,n.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,s.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new l.XWE((0,p.kO)());v.__nativeRuntimeService=new N((0,d.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:l.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,d.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return v.__nativeRuntimeService}function g(e,t,r=process.platform){let{projectId:i,...s}=e;if(!e.cwd)return s;let n=E(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:E(e.description,r)})).filter(({path:e})=>n===e||n.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...s,projectId:u.project.id}:s}function E(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),i=a.win32.parse(r).root;return(r.length>i.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function y(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function I(e){try{return"customer-agent"!==(0,d.Vu)(e).agentType}catch{return!1}}function T(e){if(e instanceof d.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}i()}catch(e){i(e)}})},1079:(e,t,r)=>{r.a(e,async(e,i)=>{try{r.d(t,{j:()=>u});var s=r(7186),n=r(3931),a=r(535),o=e([s]);s=(o.then?(await o)():o)[0];let l=!1;function u(){l||(l=!0,s.agentHost.setGlobalEventObserver((e,t)=>{try{if("ask_user"===t.type){(0,n.i)().notifySession({sessionId:e,kind:"approval",title:"需要你的审批",body:"string"==typeof t.question&&t.question.trim()?t.question.trim().slice(0,160):"会话正在等待确认",url:"/app/"});return}if("done"===t.type){(0,n.i)().notifySession({sessionId:e,kind:"done",title:"会话已完成",body:"string"==typeof t.finalText&&t.finalText.trim()?t.finalText.trim().slice(0,160):"运行已结束",url:"/app/"});return}"error"===t.type&&(0,n.i)().notifySession({sessionId:e,kind:"error",title:"会话出错",body:"string"==typeof t.message&&t.message.trim()?t.message.trim().slice(0,160):"运行失败",url:"/app/"})}catch(t){(0,a.L)().warn("web push notify failed",{sessionId:e,error:t instanceof Error?t.message:String(t)})}}))}i()}catch(e){i(e)}})},3931:(e,t,r)=>{r.d(t,{i:()=>c});var i=r(6005),s=r(7561),n=r(9411),a=r(5890);let o=require("web-push"),u=e=>JSON.stringify(e??null);class l{constructor(e,t=Date.now){this.now=t;let r=(0,n.resolve)(e,".agentroam-auth");(0,s.mkdirSync)(r,{recursive:!0,mode:448});let i=(0,n.join)(r,"push.sqlite");this.db=new a(i),(0,s.chmodSync)(i,384),this.db.pragma("busy_timeout = 5000"),this.db.exec(`
2
2
  CREATE TABLE IF NOT EXISTS push_keys (id INTEGER PRIMARY KEY CHECK(id=1), public_key TEXT NOT NULL, private_key TEXT NOT NULL);
3
3
  CREATE TABLE IF NOT EXISTS push_subscriptions (
4
4
  endpoint_hash TEXT PRIMARY KEY,
@@ -12,4 +12,4 @@
12
12
  INSERT INTO push_subscriptions (endpoint_hash, endpoint, p256dh, auth, device_id, created)
13
13
  VALUES (?, ?, ?, ?, ?, ?)
14
14
  ON CONFLICT(endpoint_hash) DO UPDATE SET p256dh=excluded.p256dh, auth=excluded.auth, device_id=excluded.device_id
15
- `).run(d(r),r,i,s,"string"==typeof e?e:null,this.now()),{ok:!0}}deleteSubscription(e){if("string"!=typeof e||!e)throw Object.assign(Error("Endpoint required"),{status:400});return this.db.prepare("DELETE FROM push_subscriptions WHERE endpoint_hash=?").run(d(e)),{ok:!0}}listSubscriptions(){return this.db.prepare("SELECT endpoint, p256dh, auth, device_id FROM push_subscriptions").all().map(e=>({endpoint:e.endpoint,keys:{p256dh:e.p256dh,auth:e.auth},deviceId:e.device_id}))}notifySession({sessionId:e,kind:t,title:r,body:i,url:s}){let n=`${e}\u001f${t}`,a=this.lastNotified.get(n)||0;if(!(this.now()-a<1500)){if(this.lastNotified.set(n,this.now()),this.lastNotified.size>500)for(let[e,t]of this.lastNotified)this.now()-t>6e4&&this.lastNotified.delete(e);this.sendToAll({title:r,body:i,tag:e,url:s})}}async sendToAll(e){let t=this.listSubscriptions();await Promise.allSettled(t.map(t=>this.send(t,e)))}async send(e,t){try{o.setVapidDetails("mailto:agentroam@localhost",this.keys.publicKey,this.keys.privateKey),await o.sendNotification(e,u(t),{TTL:3600})}catch(r){let t=r?.statusCode;(404===t||410===t)&&this.db.prepare("DELETE FROM push_subscriptions WHERE endpoint_hash=?").run(d(e.endpoint))}}close(){this.db.close()}}function d(e){return(0,i.createHash)("sha256").update(e).digest("hex")}let p=null;function c(e=process.env.AGENT_DATA_DIR?.trim()||process.cwd()){return p??=new l(e)}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[8375,6703,6244,1322,1773,7186,25],()=>r(6972));module.exports=i})();
15
+ `).run(d(r),r,i,s,"string"==typeof e?e:null,this.now()),{ok:!0}}deleteSubscription(e){if("string"!=typeof e||!e)throw Object.assign(Error("Endpoint required"),{status:400});return this.db.prepare("DELETE FROM push_subscriptions WHERE endpoint_hash=?").run(d(e)),{ok:!0}}listSubscriptions(){return this.db.prepare("SELECT endpoint, p256dh, auth, device_id FROM push_subscriptions").all().map(e=>({endpoint:e.endpoint,keys:{p256dh:e.p256dh,auth:e.auth},deviceId:e.device_id}))}notifySession({sessionId:e,kind:t,title:r,body:i,url:s}){let n=`${e}\u001f${t}`,a=this.lastNotified.get(n)||0;if(!(this.now()-a<1500)){if(this.lastNotified.set(n,this.now()),this.lastNotified.size>500)for(let[e,t]of this.lastNotified)this.now()-t>6e4&&this.lastNotified.delete(e);this.sendToAll({title:r,body:i,tag:e,url:s})}}async sendToAll(e){let t=this.listSubscriptions();await Promise.allSettled(t.map(t=>this.send(t,e)))}async send(e,t){try{o.setVapidDetails("mailto:agentroam@localhost",this.keys.publicKey,this.keys.privateKey),await o.sendNotification(e,u(t),{TTL:3600})}catch(r){let t=r?.statusCode;(404===t||410===t)&&this.db.prepare("DELETE FROM push_subscriptions WHERE endpoint_hash=?").run(d(e.endpoint))}}close(){this.db.close()}}function d(e){return(0,i.createHash)("sha256").update(e).digest("hex")}let p=null;function c(e=process.env.AGENT_DATA_DIR?.trim()||process.cwd()){return p??=new l(e)}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[8375,6703,6244,1322,1773,7186,25],()=>r(3636));module.exports=i})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=5352,e.ids=[5352],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},1952:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>l,requestAsyncStorage:()=>h,routeModule:()=>c,serverHooks:()=>d,staticGenerationAsyncStorage:()=>p});var i=r(7786),s=r(5042),a=r(2184),o=r(1335),u=e([o]);o=(u.then?(await u)():u)[0];let c=new i.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/agent/runtime-health/route",pathname:"/api/agent/runtime-health",filename:"route",bundlePath:"app/api/agent/runtime-health/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/agent/runtime-health/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:h,staticGenerationAsyncStorage:p,serverHooks:d}=c,m="/api/agent/runtime-health/route";function l(){return(0,a.patchFetch)({serverHooks:d,staticGenerationAsyncStorage:p})}n()}catch(e){n(e)}})},1335:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{GET:()=>o,dynamic:()=>u});var i=r(1890),s=r(2083),a=e([s]);s=(a.then?(await a)():a)[0];let u="force-dynamic";async function o(){let e=await (0,s.NL)().health();return i.NextResponse.json([{agentType:"customer-agent",available:!0,label:"Customer Agent"},...e])}n()}catch(e){n(e)}})},2560:(e,t,r)=>{r.d(t,{X:()=>l});var n=r(7718),i=r(7561),s=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,i.accessSync)(e,i.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,n.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function l(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let n=o(r);t.push({source:"pin",path:r,executable:n,version:n?u(r):void 0,error:n?void 0:`${e.environmentVariable} "${r}" is not executable`})}let n=function(e){for(let t of(process.env.PATH??"").split(s.delimiter).filter(Boolean)){let r=(0,s.resolve)(t,e);if(o(r))return r}}(e.name);return n&&n!==r&&t.push({source:"path",path:n,executable:!0,version:u(n)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},535:(e,t,r)=>{r.d(t,{L:()=>a});var n=r(1322),i=r(785);let s=!1;function a(){let e=(0,n.Qfc)();if(e)return e;let t=(0,n.qZ_)({dir:(0,i.ME)(),source:"server",minLevel:"info",handlers:{exitOnUncaughtException:!1}});return s||(s=!0,t.info("server logger attached",{dir:t.dir,pid:process.pid})),t}},2083:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{NL:()=>f,V_:()=>O,WW:()=>N});var i=r(7561),s=r(612),a=r(9411),o=r(2560),u=r(535),l=r(1322),c=r(6279),h=r(785),p=e([c]);c=(p.then?(await p)():p)[0];let E=globalThis;class P{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new c.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let n=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return n;let i=new Set(n.data.map(e=>e.id)),s=n.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),d(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||i.has(r.id)||s.unshift(r);return{...n,data:s}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return v(this.withPendingCreations(t).map(e=>g(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return v(this.withPendingCreations(t).map(e=>g(e,r,this.platform)),e)}async create(e){let t=g(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!O(e))throw new c.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=g(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(n){let r=this.pendingCreations.get(e);if(!r)throw n;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return g(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:n}=await Promise.resolve().then(r.bind(r,1322));return n(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,n,i){return this.runtime.run(e,t,r,n,i)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new c.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,n="web",i){if(!this.runtime.startRun)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,n,i)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,n="web"){if(!this.runtime.enqueueGoal)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,n)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,n){if(!this.runtime.updateMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,n)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?d(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function d(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function f(){if(!E.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,s.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,i.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new l.XWE((0,h.kO)());E.__nativeRuntimeService=new P((0,c.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:l.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,c.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return E.__nativeRuntimeService}function g(e,t,r=process.platform){let{projectId:n,...i}=e;if(!e.cwd)return i;let s=w(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:w(e.description,r)})).filter(({path:e})=>s===e||s.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...i,projectId:u.project.id}:i}function w(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),n=a.win32.parse(r).root;return(r.length>n.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function v(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function O(e){try{return"customer-agent"!==(0,c.Vu)(e).agentType}catch{return!1}}function N(e){if(e instanceof c.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}n()}catch(e){n(e)}})}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8375,6703,6244,1322,1773],()=>r(1952));module.exports=n})();
1
+ "use strict";(()=>{var e={};e.id=5352,e.ids=[5352],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},4714:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>l,requestAsyncStorage:()=>h,routeModule:()=>c,serverHooks:()=>d,staticGenerationAsyncStorage:()=>p});var i=r(7786),s=r(5042),a=r(2184),o=r(1335),u=e([o]);o=(u.then?(await u)():u)[0];let c=new i.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/agent/runtime-health/route",pathname:"/api/agent/runtime-health",filename:"route",bundlePath:"app/api/agent/runtime-health/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/runtime-health/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:h,staticGenerationAsyncStorage:p,serverHooks:d}=c,m="/api/agent/runtime-health/route";function l(){return(0,a.patchFetch)({serverHooks:d,staticGenerationAsyncStorage:p})}n()}catch(e){n(e)}})},1335:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{GET:()=>o,dynamic:()=>u});var i=r(1890),s=r(2083),a=e([s]);s=(a.then?(await a)():a)[0];let u="force-dynamic";async function o(){let e=await (0,s.NL)().health();return i.NextResponse.json([{agentType:"customer-agent",available:!0,label:"Customer Agent"},...e])}n()}catch(e){n(e)}})},2560:(e,t,r)=>{r.d(t,{X:()=>l});var n=r(7718),i=r(7561),s=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,i.accessSync)(e,i.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,n.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function l(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let n=o(r);t.push({source:"pin",path:r,executable:n,version:n?u(r):void 0,error:n?void 0:`${e.environmentVariable} "${r}" is not executable`})}let n=function(e){for(let t of(process.env.PATH??"").split(s.delimiter).filter(Boolean)){let r=(0,s.resolve)(t,e);if(o(r))return r}}(e.name);return n&&n!==r&&t.push({source:"path",path:n,executable:!0,version:u(n)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},535:(e,t,r)=>{r.d(t,{L:()=>a});var n=r(1322),i=r(785);let s=!1;function a(){let e=(0,n.Qfc)();if(e)return e;let t=(0,n.qZ_)({dir:(0,i.ME)(),source:"server",minLevel:"info",handlers:{exitOnUncaughtException:!1}});return s||(s=!0,t.info("server logger attached",{dir:t.dir,pid:process.pid})),t}},2083:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.d(t,{NL:()=>f,V_:()=>O,WW:()=>N});var i=r(7561),s=r(612),a=r(9411),o=r(2560),u=r(535),l=r(1322),c=r(6279),h=r(785),p=e([c]);c=(p.then?(await p)():p)[0];let E=globalThis;class P{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new c.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let n=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return n;let i=new Set(n.data.map(e=>e.id)),s=n.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),d(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||i.has(r.id)||s.unshift(r);return{...n,data:s}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return v(this.withPendingCreations(t).map(e=>g(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return v(this.withPendingCreations(t).map(e=>g(e,r,this.platform)),e)}async create(e){let t=g(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!O(e))throw new c.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=g(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(n){let r=this.pendingCreations.get(e);if(!r)throw n;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return g(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:n}=await Promise.resolve().then(r.bind(r,1322));return n(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,n,i){return this.runtime.run(e,t,r,n,i)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new c.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,n="web",i){if(!this.runtime.startRun)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,n,i)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,n="web"){if(!this.runtime.enqueueGoal)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,n)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,n){if(!this.runtime.updateMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,n)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?d(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function d(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function f(){if(!E.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,s.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,i.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new l.XWE((0,h.kO)());E.__nativeRuntimeService=new P((0,c.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:l.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,c.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return E.__nativeRuntimeService}function g(e,t,r=process.platform){let{projectId:n,...i}=e;if(!e.cwd)return i;let s=w(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:w(e.description,r)})).filter(({path:e})=>s===e||s.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...i,projectId:u.project.id}:i}function w(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),n=a.win32.parse(r).root;return(r.length>n.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function v(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function O(e){try{return"customer-agent"!==(0,c.Vu)(e).agentType}catch{return!1}}function N(e){if(e instanceof c.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}n()}catch(e){n(e)}})}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8375,6703,6244,1322,1773],()=>r(4714));module.exports=n})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=5369,e.ids=[5369,6435],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},8306:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>l,requestAsyncStorage:()=>d,routeModule:()=>c,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var i=r(7786),n=r(5042),a=r(2184),o=r(583),u=e([o]);o=(u.then?(await u)():u)[0];let c=new i.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/agent/steer/route",pathname:"/api/agent/steer",filename:"route",bundlePath:"app/api/agent/steer/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/agent/steer/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=c,m="/api/agent/steer/route";function l(){return(0,a.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}s()}catch(e){s(e)}})},583:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{POST:()=>l});var i=r(6435),n=r(1890),a=r(7186),o=r(2083),u=e([i,a,o]);async function l(e){try{let t=await e.json();if(!t.sessionId||!t.input&&!t.messageId)return n.NextResponse.json({error:"sessionId and input or messageId are required"},{status:400});if((0,o.V_)(t.sessionId)){if(t.messageId)return n.NextResponse.json(await (0,o.NL)().steerMessage(t.sessionId,t.messageId));if(!t.input)return n.NextResponse.json({error:"input is required"},{status:400});let e=await (0,o.NL)().steer(t.sessionId,t.input);return n.NextResponse.json({steered:e})}if(t.messageId)return n.NextResponse.json({steered:!0,state:await (0,i.getCustomerGoalCoordinator)().steer(t.sessionId,t.messageId)});if(!t.input)return n.NextResponse.json({error:"input is required"},{status:400});let r=await a.agentHost.steer(t.input,t.sessionId);return n.NextResponse.json({steered:r})}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,o.WW)(e)})}}[i,a,o]=u.then?(await u)():u,s()}catch(e){s(e)}})},6435:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.d(t,{U:()=>c,getCustomerGoalCoordinator:()=>l});var i=r(1322),n=r(7186),a=r(5036),o=r(785),u=e([n]);n=(u.then?(await u)():u)[0];let d=globalThis,h=new Set;function l(){return d.__sharedCustomerQueue??=new a.J(n.agentHost.getSessionStore(),e=>n.agentHost.isSessionRunning(e),async(e,t)=>{h.add(e);try{return await n.agentHost.startRun(t.objective,e,t.messagePayload?.images,{agentIds:t.messagePayload?.agentIds}).completion,(await n.agentHost.getSessionStore().get(e))?.status==="completed"?"completed":"failed"}finally{h.delete(e)}},e=>{h.has(e)&&n.agentHost.abort(e)},(e,t)=>n.agentHost.steer(t,e),(e,t)=>{(0,i.N8n)((0,o.kO)()).db.prepare("UPDATE sessions SET metadata = json_set(metadata, '$.goalState', json(?)), updated = ? WHERE id = ?").run(JSON.stringify(t),new Date().toISOString(),e)})}function c(){for(let e of(0,i.N8n)((0,o.kO)()).db.prepare("SELECT id FROM sessions WHERE json_extract(metadata, '$.goalState.active') IS NOT NULL OR json_array_length(metadata, '$.goalState.queued') > 0").all())l().resume(e.id)}s()}catch(e){s(e)}})},2560:(e,t,r)=>{r.d(t,{X:()=>l});var s=r(7718),i=r(7561),n=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,i.accessSync)(e,i.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,s.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function l(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let s=o(r);t.push({source:"pin",path:r,executable:s,version:s?u(r):void 0,error:s?void 0:`${e.environmentVariable} "${r}" is not executable`})}let s=function(e){for(let t of(process.env.PATH??"").split(n.delimiter).filter(Boolean)){let r=(0,n.resolve)(t,e);if(o(r))return r}}(e.name);return s&&s!==r&&t.push({source:"path",path:s,executable:!0,version:u(s)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},2083:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.d(t,{NL:()=>g,V_:()=>E,WW:()=>O});var i=r(7561),n=r(612),a=r(9411),o=r(2560),u=r(535),l=r(1322),c=r(6279),d=r(785),h=e([c]);c=(h.then?(await h)():h)[0];let v=globalThis;class I{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new c.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let s=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return s;let i=new Set(s.data.map(e=>e.id)),n=s.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),p(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||i.has(r.id)||n.unshift(r);return{...s,data:n}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>w(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>w(e,r,this.platform)),e)}async create(e){let t=w(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!E(e))throw new c.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=w(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(s){let r=this.pendingCreations.get(e);if(!r)throw s;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return w(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:s}=await Promise.resolve().then(r.bind(r,1322));return s(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,s,i){return this.runtime.run(e,t,r,s,i)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new c.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,s="web",i){if(!this.runtime.startRun)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,s,i)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,s="web"){if(!this.runtime.enqueueGoal)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,s)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,s){if(!this.runtime.updateMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,s)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?p(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function p(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function g(){if(!v.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,n.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,i.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new l.XWE((0,d.kO)());v.__nativeRuntimeService=new I((0,c.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:l.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,c.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return v.__nativeRuntimeService}function w(e,t,r=process.platform){let{projectId:s,...i}=e;if(!e.cwd)return i;let n=f(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:f(e.description,r)})).filter(({path:e})=>n===e||n.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...i,projectId:u.project.id}:i}function f(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),s=a.win32.parse(r).root;return(r.length>s.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function N(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function E(e){try{return"customer-agent"!==(0,c.Vu)(e).agentType}catch{return!1}}function O(e){if(e instanceof c.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}s()}catch(e){s(e)}})},5036:(e,t,r)=>{r.d(t,{J:()=>i});var s=r(1322);class i{constructor(e,t,r,s,i,n){this.store=e,this.busy=t,this.run=r,this.abort=s,this.steerRun=i,this.persist=n,this.tails=new Map,this.draining=new Set}async get(e,t=!0){let r=(0,s.E0T)((await this.require(e)).metadata);return t&&this.resume(e),r}async enqueue(e,t,r){let i=await this.mutate(e,i=>(0,s.WfK)(i,{id:crypto.randomUUID(),sessionId:e,objective:t,sourceMessageId:r,now:Date.now()}));return this.resume(e),i}async enqueueMessage(e,t,r,i){let n=await this.mutate(e,n=>[n.active,...n.queued,...n.history].some(e=>e?.sourceMessageId===r)?n:(0,s.InG)(n,{id:crypto.randomUUID(),sessionId:e,objective:t,sourceMessageId:r,messagePayload:i,now:Date.now(),activate:!1}));return this.resume(e),n}reorder(e,t,r=!1){return this.mutate(e,e=>r?(0,s.h1F)(e,t):(0,s.ZC9)(e,t))}updateMessage(e,t,r,i){return this.mutate(e,e=>(0,s.Wog)(e,t,r,i))}async cancel(e,t){let r=await this.mutate(e,r=>(r.active?.id===t&&this.draining.has(e)&&this.abort(e),(0,s.LJm)(r,t,Date.now())));return this.resume(e),r}async steer(e,t){return this.mutate(e,async r=>{let i=r.queued.find(e=>e.id===t&&"message"===e.kind);if(!i||!this.busy(e))throw Error("没有可引导的运行或排队消息");if(!await this.steerRun(e,i.objective))throw Error("运行已结束,请继续排队");return(0,s.LJm)(r,t,Date.now())})}resume(e){this.draining.has(e)||(this.draining.add(e),this.drain(e).catch(e=>console.error("Customer queue failed",e)).finally(()=>this.draining.delete(e)))}async drain(e){for(;;){let t;let r=await this.get(e,!1);if(!r.active&&!r.queued.length)return;if(this.busy(e)){await new Promise(e=>setTimeout(e,100));continue}let i=(await this.mutate(e,e=>(0,s.s_d)(e,Date.now()))).active;if(!i)continue;let n="failed";try{n=await this.run(e,i)}catch(e){if(e?.code==="SESSION_ALREADY_RUNNING")continue;t=e instanceof Error?e.message:String(e)}await this.mutate(e,e=>e.active?.id===i.id?(0,s.JXc)(e,n,Date.now(),t):e)}}async require(e){let t=await this.store.get(e);if(!t)throw Error("Session not found");return t}async mutate(e,t){let r=(this.tails.get(e)??Promise.resolve()).catch(()=>{}).then(async()=>{let r=await this.require(e),i=await t((0,s.E0T)(r.metadata));if(this.persist)this.persist(e,i);else{let t=await this.require(e);await this.store.update(e,{metadata:(0,s.eC7)(t.metadata,i)})}return i});this.tails.set(e,r);try{return await r}finally{this.tails.get(e)===r&&this.tails.delete(e)}}}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,6244,1322,1773,7186,25],()=>r(8306));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=5369,e.ids=[5369,6435],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},4390:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>l,requestAsyncStorage:()=>d,routeModule:()=>c,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var i=r(7786),n=r(5042),a=r(2184),o=r(583),u=e([o]);o=(u.then?(await u)():u)[0];let c=new i.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/agent/steer/route",pathname:"/api/agent/steer",filename:"route",bundlePath:"app/api/agent/steer/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/steer/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=c,m="/api/agent/steer/route";function l(){return(0,a.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}s()}catch(e){s(e)}})},583:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{POST:()=>l});var i=r(6435),n=r(1890),a=r(7186),o=r(2083),u=e([i,a,o]);async function l(e){try{let t=await e.json();if(!t.sessionId||!t.input&&!t.messageId)return n.NextResponse.json({error:"sessionId and input or messageId are required"},{status:400});if((0,o.V_)(t.sessionId)){if(t.messageId)return n.NextResponse.json(await (0,o.NL)().steerMessage(t.sessionId,t.messageId));if(!t.input)return n.NextResponse.json({error:"input is required"},{status:400});let e=await (0,o.NL)().steer(t.sessionId,t.input);return n.NextResponse.json({steered:e})}if(t.messageId)return n.NextResponse.json({steered:!0,state:await (0,i.getCustomerGoalCoordinator)().steer(t.sessionId,t.messageId)});if(!t.input)return n.NextResponse.json({error:"input is required"},{status:400});let r=await a.agentHost.steer(t.input,t.sessionId);return n.NextResponse.json({steered:r})}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,o.WW)(e)})}}[i,a,o]=u.then?(await u)():u,s()}catch(e){s(e)}})},6435:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.d(t,{U:()=>c,getCustomerGoalCoordinator:()=>l});var i=r(1322),n=r(7186),a=r(5036),o=r(785),u=e([n]);n=(u.then?(await u)():u)[0];let d=globalThis,h=new Set;function l(){return d.__sharedCustomerQueue??=new a.J(n.agentHost.getSessionStore(),e=>n.agentHost.isSessionRunning(e),async(e,t)=>{h.add(e);try{return await n.agentHost.startRun(t.objective,e,t.messagePayload?.images,{agentIds:t.messagePayload?.agentIds}).completion,(await n.agentHost.getSessionStore().get(e))?.status==="completed"?"completed":"failed"}finally{h.delete(e)}},e=>{h.has(e)&&n.agentHost.abort(e)},(e,t)=>n.agentHost.steer(t,e),(e,t)=>{(0,i.N8n)((0,o.kO)()).db.prepare("UPDATE sessions SET metadata = json_set(metadata, '$.goalState', json(?)), updated = ? WHERE id = ?").run(JSON.stringify(t),new Date().toISOString(),e)})}function c(){for(let e of(0,i.N8n)((0,o.kO)()).db.prepare("SELECT id FROM sessions WHERE json_extract(metadata, '$.goalState.active') IS NOT NULL OR json_array_length(metadata, '$.goalState.queued') > 0").all())l().resume(e.id)}s()}catch(e){s(e)}})},2560:(e,t,r)=>{r.d(t,{X:()=>l});var s=r(7718),i=r(7561),n=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,i.accessSync)(e,i.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,s.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function l(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let s=o(r);t.push({source:"pin",path:r,executable:s,version:s?u(r):void 0,error:s?void 0:`${e.environmentVariable} "${r}" is not executable`})}let s=function(e){for(let t of(process.env.PATH??"").split(n.delimiter).filter(Boolean)){let r=(0,n.resolve)(t,e);if(o(r))return r}}(e.name);return s&&s!==r&&t.push({source:"path",path:s,executable:!0,version:u(s)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},2083:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.d(t,{NL:()=>g,V_:()=>E,WW:()=>O});var i=r(7561),n=r(612),a=r(9411),o=r(2560),u=r(535),l=r(1322),c=r(6279),d=r(785),h=e([c]);c=(h.then?(await h)():h)[0];let v=globalThis;class I{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new c.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let s=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return s;let i=new Set(s.data.map(e=>e.id)),n=s.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),p(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||i.has(r.id)||n.unshift(r);return{...s,data:n}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>w(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>w(e,r,this.platform)),e)}async create(e){let t=w(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!E(e))throw new c.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=w(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(s){let r=this.pendingCreations.get(e);if(!r)throw s;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return w(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:s}=await Promise.resolve().then(r.bind(r,1322));return s(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,s,i){return this.runtime.run(e,t,r,s,i)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new c.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,s="web",i){if(!this.runtime.startRun)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,s,i)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new c.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,s="web"){if(!this.runtime.enqueueGoal)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,s)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new c.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,s){if(!this.runtime.updateMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,s)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new c.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?p(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function p(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function g(){if(!v.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,n.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,i.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new l.XWE((0,d.kO)());v.__nativeRuntimeService=new I((0,c.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:l.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,c.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return v.__nativeRuntimeService}function w(e,t,r=process.platform){let{projectId:s,...i}=e;if(!e.cwd)return i;let n=f(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:f(e.description,r)})).filter(({path:e})=>n===e||n.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...i,projectId:u.project.id}:i}function f(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),s=a.win32.parse(r).root;return(r.length>s.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function N(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function E(e){try{return"customer-agent"!==(0,c.Vu)(e).agentType}catch{return!1}}function O(e){if(e instanceof c.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}s()}catch(e){s(e)}})},5036:(e,t,r)=>{r.d(t,{J:()=>i});var s=r(1322);class i{constructor(e,t,r,s,i,n){this.store=e,this.busy=t,this.run=r,this.abort=s,this.steerRun=i,this.persist=n,this.tails=new Map,this.draining=new Set}async get(e,t=!0){let r=(0,s.E0T)((await this.require(e)).metadata);return t&&this.resume(e),r}async enqueue(e,t,r){let i=await this.mutate(e,i=>(0,s.WfK)(i,{id:crypto.randomUUID(),sessionId:e,objective:t,sourceMessageId:r,now:Date.now()}));return this.resume(e),i}async enqueueMessage(e,t,r,i){let n=await this.mutate(e,n=>[n.active,...n.queued,...n.history].some(e=>e?.sourceMessageId===r)?n:(0,s.InG)(n,{id:crypto.randomUUID(),sessionId:e,objective:t,sourceMessageId:r,messagePayload:i,now:Date.now(),activate:!1}));return this.resume(e),n}reorder(e,t,r=!1){return this.mutate(e,e=>r?(0,s.h1F)(e,t):(0,s.ZC9)(e,t))}updateMessage(e,t,r,i){return this.mutate(e,e=>(0,s.Wog)(e,t,r,i))}async cancel(e,t){let r=await this.mutate(e,r=>(r.active?.id===t&&this.draining.has(e)&&this.abort(e),(0,s.LJm)(r,t,Date.now())));return this.resume(e),r}async steer(e,t){return this.mutate(e,async r=>{let i=r.queued.find(e=>e.id===t&&"message"===e.kind);if(!i||!this.busy(e))throw Error("没有可引导的运行或排队消息");if(!await this.steerRun(e,i.objective))throw Error("运行已结束,请继续排队");return(0,s.LJm)(r,t,Date.now())})}resume(e){this.draining.has(e)||(this.draining.add(e),this.drain(e).catch(e=>console.error("Customer queue failed",e)).finally(()=>this.draining.delete(e)))}async drain(e){for(;;){let t;let r=await this.get(e,!1);if(!r.active&&!r.queued.length)return;if(this.busy(e)){await new Promise(e=>setTimeout(e,100));continue}let i=(await this.mutate(e,e=>(0,s.s_d)(e,Date.now()))).active;if(!i)continue;let n="failed";try{n=await this.run(e,i)}catch(e){if(e?.code==="SESSION_ALREADY_RUNNING")continue;t=e instanceof Error?e.message:String(e)}await this.mutate(e,e=>e.active?.id===i.id?(0,s.JXc)(e,n,Date.now(),t):e)}}async require(e){let t=await this.store.get(e);if(!t)throw Error("Session not found");return t}async mutate(e,t){let r=(this.tails.get(e)??Promise.resolve()).catch(()=>{}).then(async()=>{let r=await this.require(e),i=await t((0,s.E0T)(r.metadata));if(this.persist)this.persist(e,i);else{let t=await this.require(e);await this.store.update(e,{metadata:(0,s.eC7)(t.metadata,i)})}return i});this.tails.set(e,r);try{return await r}finally{this.tails.get(e)===r&&this.tails.delete(e)}}}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,6244,1322,1773,7186,25],()=>r(4390));module.exports=s})();
@@ -1,4 +1,4 @@
1
- "use strict";(()=>{var e={};e.id=820,e.ids=[820],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},7856:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>l,requestAsyncStorage:()=>d,routeModule:()=>c,serverHooks:()=>h,staticGenerationAsyncStorage:()=>p});var i=r(7786),s=r(5042),a=r(2184),o=r(8632),u=e([o]);o=(u.then?(await u)():u)[0];let c=new i.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/agent/stream/route",pathname:"/api/agent/stream",filename:"route",bundlePath:"app/api/agent/stream/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/agent/stream/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:d,staticGenerationAsyncStorage:p,serverHooks:h}=c,m="/api/agent/stream/route";function l(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:p})}n()}catch(e){n(e)}})},7786:(e,t,r)=>{e.exports=r(517)},8632:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{GET:()=>u});var i=r(7186),s=r(2083),a=r(1079),o=e([i,s,a]);async function u(e){(0,a.j)();let t=new URL(e.url).searchParams.get("sessionId");if(!t)return new Response("sessionId is required",{status:400});if((0,s.V_)(t))return l(e,t);let r=!1,n=null,o=null,u=new ReadableStream({start(s){let a=new TextEncoder,u=()=>{if(!r){r=!0,n?.(),n=null,o&&e.signal.removeEventListener("abort",o);try{s.close()}catch{}}},l=e=>{if(r)return!1;try{return s.enqueue(a.encode(e)),!0}catch{return u(),!1}};if(!l(": connected\n\n"))return;let c=e.headers.get("last-event-id"),d=Number.parseInt(c??"",10),p=new URL(e.url),h=Number.parseInt(p.searchParams.get("afterEventId")??"",10),m=Number.isSafeInteger(d)?d:Number.isSafeInteger(h)?h:i.agentHost.isSessionRunning(t)?0:i.agentHost.getLatestEventId(t);n=i.agentHost.subscribe(t,(e,t)=>{l(`id: ${t}
1
+ "use strict";(()=>{var e={};e.id=820,e.ids=[820],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},2190:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>l,requestAsyncStorage:()=>d,routeModule:()=>c,serverHooks:()=>h,staticGenerationAsyncStorage:()=>p});var i=r(7786),s=r(5042),a=r(2184),o=r(8632),u=e([o]);o=(u.then?(await u)():u)[0];let c=new i.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/agent/stream/route",pathname:"/api/agent/stream",filename:"route",bundlePath:"app/api/agent/stream/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/stream/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:d,staticGenerationAsyncStorage:p,serverHooks:h}=c,m="/api/agent/stream/route";function l(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:p})}n()}catch(e){n(e)}})},7786:(e,t,r)=>{e.exports=r(517)},8632:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{GET:()=>u});var i=r(7186),s=r(2083),a=r(1079),o=e([i,s,a]);async function u(e){(0,a.j)();let t=new URL(e.url).searchParams.get("sessionId");if(!t)return new Response("sessionId is required",{status:400});if((0,s.V_)(t))return l(e,t);let r=!1,n=null,o=null,u=new ReadableStream({start(s){let a=new TextEncoder,u=()=>{if(!r){r=!0,n?.(),n=null,o&&e.signal.removeEventListener("abort",o);try{s.close()}catch{}}},l=e=>{if(r)return!1;try{return s.enqueue(a.encode(e)),!0}catch{return u(),!1}};if(!l(": connected\n\n"))return;let c=e.headers.get("last-event-id"),d=Number.parseInt(c??"",10),p=new URL(e.url),h=Number.parseInt(p.searchParams.get("afterEventId")??"",10),m=Number.isSafeInteger(d)?d:Number.isSafeInteger(h)?h:i.agentHost.isSessionRunning(t)?0:i.agentHost.getLatestEventId(t);n=i.agentHost.subscribe(t,(e,t)=>{l(`id: ${t}
2
2
  data: ${JSON.stringify(e)}
3
3
 
4
4
  `)&&("done"===e.type||"error"===e.type)&&u()},m),o=u,e.signal.aborted?u():e.signal.addEventListener("abort",o,{once:!0})},cancel(){r=!0,n?.(),n=null,o&&e.signal.removeEventListener("abort",o)}});return new Response(u,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async function l(e,t){let r=!1,n=null,i=null,a=(0,s.NL)(),o=new URL(e.url),u=Number.parseInt(o.searchParams.get("afterSequence")??"",10),l=o.searchParams.get("afterRunId"),c=e.headers.get("last-event-id"),d=new ReadableStream({async start(s){let o=new TextEncoder,d=()=>{if(!r){r=!0,n?.(),n=null,i&&e.signal.removeEventListener("abort",i);try{s.close()}catch{}}},p=e=>{if(r)return!1;try{return s.enqueue(o.encode(e)),!0}catch{return d(),!1}};if(p(": connected\n\n"))try{let r=await a.snapshot(t),s=function(e){if(!e)return null;let t=e.lastIndexOf(":");if(t<0){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?{runId:null,sequence:t}:null}let r=e.slice(0,t),n=Number.parseInt(e.slice(t+1),10);return r&&Number.isSafeInteger(n)?{runId:r,sequence:n}:null}(c),o=Number.isSafeInteger(u)?{runId:l,sequence:u}:null,h=s??o,m=h?h.runId&&h.runId!==r.runId?0:h.sequence:r.snapshotRevision;n=await a.subscribe(t,m,({runId:e,sequence:t,event:r})=>{let n={...r,_nativeRunId:e,_nativeSequence:t};p(`id: ${e}:${t}
@@ -21,4 +21,4 @@ data: ${JSON.stringify({type:"error",message:e instanceof Error?e.message:"Nativ
21
21
  INSERT INTO push_subscriptions (endpoint_hash, endpoint, p256dh, auth, device_id, created)
22
22
  VALUES (?, ?, ?, ?, ?, ?)
23
23
  ON CONFLICT(endpoint_hash) DO UPDATE SET p256dh=excluded.p256dh, auth=excluded.auth, device_id=excluded.device_id
24
- `).run(c(r),r,n,i,"string"==typeof e?e:null,this.now()),{ok:!0}}deleteSubscription(e){if("string"!=typeof e||!e)throw Object.assign(Error("Endpoint required"),{status:400});return this.db.prepare("DELETE FROM push_subscriptions WHERE endpoint_hash=?").run(c(e)),{ok:!0}}listSubscriptions(){return this.db.prepare("SELECT endpoint, p256dh, auth, device_id FROM push_subscriptions").all().map(e=>({endpoint:e.endpoint,keys:{p256dh:e.p256dh,auth:e.auth},deviceId:e.device_id}))}notifySession({sessionId:e,kind:t,title:r,body:n,url:i}){let s=`${e}\u001f${t}`,a=this.lastNotified.get(s)||0;if(!(this.now()-a<1500)){if(this.lastNotified.set(s,this.now()),this.lastNotified.size>500)for(let[e,t]of this.lastNotified)this.now()-t>6e4&&this.lastNotified.delete(e);this.sendToAll({title:r,body:n,tag:e,url:i})}}async sendToAll(e){let t=this.listSubscriptions();await Promise.allSettled(t.map(t=>this.send(t,e)))}async send(e,t){try{o.setVapidDetails("mailto:agentroam@localhost",this.keys.publicKey,this.keys.privateKey),await o.sendNotification(e,u(t),{TTL:3600})}catch(r){let t=r?.statusCode;(404===t||410===t)&&this.db.prepare("DELETE FROM push_subscriptions WHERE endpoint_hash=?").run(c(e.endpoint))}}close(){this.db.close()}}function c(e){return(0,n.createHash)("sha256").update(e).digest("hex")}let d=null;function p(e=process.env.AGENT_DATA_DIR?.trim()||process.cwd()){return d??=new l(e)}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8375,6244,1322,1773,7186,25],()=>r(7856));module.exports=n})();
24
+ `).run(c(r),r,n,i,"string"==typeof e?e:null,this.now()),{ok:!0}}deleteSubscription(e){if("string"!=typeof e||!e)throw Object.assign(Error("Endpoint required"),{status:400});return this.db.prepare("DELETE FROM push_subscriptions WHERE endpoint_hash=?").run(c(e)),{ok:!0}}listSubscriptions(){return this.db.prepare("SELECT endpoint, p256dh, auth, device_id FROM push_subscriptions").all().map(e=>({endpoint:e.endpoint,keys:{p256dh:e.p256dh,auth:e.auth},deviceId:e.device_id}))}notifySession({sessionId:e,kind:t,title:r,body:n,url:i}){let s=`${e}\u001f${t}`,a=this.lastNotified.get(s)||0;if(!(this.now()-a<1500)){if(this.lastNotified.set(s,this.now()),this.lastNotified.size>500)for(let[e,t]of this.lastNotified)this.now()-t>6e4&&this.lastNotified.delete(e);this.sendToAll({title:r,body:n,tag:e,url:i})}}async sendToAll(e){let t=this.listSubscriptions();await Promise.allSettled(t.map(t=>this.send(t,e)))}async send(e,t){try{o.setVapidDetails("mailto:agentroam@localhost",this.keys.publicKey,this.keys.privateKey),await o.sendNotification(e,u(t),{TTL:3600})}catch(r){let t=r?.statusCode;(404===t||410===t)&&this.db.prepare("DELETE FROM push_subscriptions WHERE endpoint_hash=?").run(c(e.endpoint))}}close(){this.db.close()}}function c(e){return(0,n.createHash)("sha256").update(e).digest("hex")}let d=null;function p(e=process.env.AGENT_DATA_DIR?.trim()||process.cwd()){return d??=new l(e)}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[8375,6244,1322,1773,7186,25],()=>r(2190));module.exports=n})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=4612,e.ids=[4612],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},1858:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>c,requestAsyncStorage:()=>p,routeModule:()=>l,serverHooks:()=>h,staticGenerationAsyncStorage:()=>d});var n=r(7786),i=r(5042),a=r(2184),o=r(5609),u=e([o]);o=(u.then?(await u)():u)[0];let l=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent-workspaces/[workspaceId]/sessions/route",pathname:"/api/agent-workspaces/[workspaceId]/sessions",filename:"route",bundlePath:"app/api/agent-workspaces/[workspaceId]/sessions/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/agent-workspaces/[workspaceId]/sessions/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:p,staticGenerationAsyncStorage:d,serverHooks:h}=l,m="/api/agent-workspaces/[workspaceId]/sessions/route";function c(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:d})}s()}catch(e){s(e)}})},5609:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{GET:()=>p});var n=r(1890),i=r(1322),a=r(6279),o=r(7186),u=r(2083),c=r(6405),l=e([a,o,u]);async function p(e,t){let r;let s=new URL(e.url),l=(0,c.q)(s.searchParams.get("agentType"));if(!l)return n.NextResponse.json({error:"A valid agentType is required"},{status:400});try{let e=(0,c.M)(s);r={cursor:e.cursor,limit:e.limit,refresh:e.refresh}}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Invalid query"},{status:400})}try{if("customer-agent"!==l)return n.NextResponse.json(await (0,u.NL)().listWorkspaceSessions(l,t.params.workspaceId,r));let e=await o.agentHost.getProjectStore().get(t.params.workspaceId);if(!e)return n.NextResponse.json({error:"Workspace not found"},{status:404});let s=(await o.agentHost.getSessionStore().list(e.id)).map(({messages:t,events:r,...s})=>({...s,agentType:"customer-agent",nativeSessionId:s.id,cwd:e.description,occupancy:o.agentHost.isSessionRunning(s.id)?"owned-by-customer-agent":"available",sourceLabel:"Customer Agent",canResume:!0,canDelete:!o.agentHost.isSessionRunning(s.id),permissionMode:(0,i.NyU)(s.metadata.permissionMode)})).sort((e,t)=>t.updated.localeCompare(e.updated));return n.NextResponse.json((0,a.L)(s,r,s[0]?.updated??e.updated))}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Workspace sessions failed"},{status:(0,u.WW)(e)})}}[a,o,u]=l.then?(await l)():l,s()}catch(e){s(e)}})},6405:(e,t,r)=>{r.d(t,{M:()=>i,q:()=>n});let s=new Set(["customer-agent","codex","claude-code","opencode"]);function n(e){return e&&s.has(e)?e:null}function i(e){let t=e.searchParams.get("limit"),r=null===t?50:Number(t);if(!Number.isInteger(r)||r<1||r>200)throw Error("limit must be an integer between 1 and 200");return{cursor:e.searchParams.get("cursor"),since:e.searchParams.get("since"),refresh:"1"===e.searchParams.get("refresh"),limit:r}}},2560:(e,t,r)=>{r.d(t,{X:()=>c});var s=r(7718),n=r(7561),i=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,n.accessSync)(e,n.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,s.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function c(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let s=o(r);t.push({source:"pin",path:r,executable:s,version:s?u(r):void 0,error:s?void 0:`${e.environmentVariable} "${r}" is not executable`})}let s=function(e){for(let t of(process.env.PATH??"").split(i.delimiter).filter(Boolean)){let r=(0,i.resolve)(t,e);if(o(r))return r}}(e.name);return s&&s!==r&&t.push({source:"path",path:s,executable:!0,version:u(s)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},2083:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.d(t,{NL:()=>g,V_:()=>P,WW:()=>v});var n=r(7561),i=r(612),a=r(9411),o=r(2560),u=r(535),c=r(1322),l=r(6279),p=r(785),d=e([l]);l=(d.then?(await d)():d)[0];let O=globalThis;class E{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new l.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let s=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return s;let n=new Set(s.data.map(e=>e.id)),i=s.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),h(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||n.has(r.id)||i.unshift(r);return{...s,data:i}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>w(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>w(e,r,this.platform)),e)}async create(e){let t=w(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!P(e))throw new l.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=w(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(s){let r=this.pendingCreations.get(e);if(!r)throw s;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return w(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:s}=await Promise.resolve().then(r.bind(r,1322));return s(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,s,n){return this.runtime.run(e,t,r,s,n)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new l.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,s="web",n){if(!this.runtime.startRun)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,s,n)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,s="web"){if(!this.runtime.enqueueGoal)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,s)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,s){if(!this.runtime.updateMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,s)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?h(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function h(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function g(){if(!O.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,i.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,n.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new c.XWE((0,p.kO)());O.__nativeRuntimeService=new E((0,l.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:c.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,l.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return O.__nativeRuntimeService}function w(e,t,r=process.platform){let{projectId:s,...n}=e;if(!e.cwd)return n;let i=f(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:f(e.description,r)})).filter(({path:e})=>i===e||i.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...n,projectId:u.project.id}:n}function f(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),s=a.win32.parse(r).root;return(r.length>s.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function N(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function P(e){try{return"customer-agent"!==(0,l.Vu)(e).agentType}catch{return!1}}function v(e){if(e instanceof l.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}s()}catch(e){s(e)}})}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,6244,1322,1773,7186,25],()=>r(1858));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=4612,e.ids=[4612],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},3841:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>c,requestAsyncStorage:()=>p,routeModule:()=>l,serverHooks:()=>h,staticGenerationAsyncStorage:()=>d});var n=r(7786),i=r(5042),a=r(2184),o=r(5609),u=e([o]);o=(u.then?(await u)():u)[0];let l=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent-workspaces/[workspaceId]/sessions/route",pathname:"/api/agent-workspaces/[workspaceId]/sessions",filename:"route",bundlePath:"app/api/agent-workspaces/[workspaceId]/sessions/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent-workspaces/[workspaceId]/sessions/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:p,staticGenerationAsyncStorage:d,serverHooks:h}=l,m="/api/agent-workspaces/[workspaceId]/sessions/route";function c(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:d})}s()}catch(e){s(e)}})},5609:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{GET:()=>p});var n=r(1890),i=r(1322),a=r(6279),o=r(7186),u=r(2083),c=r(6405),l=e([a,o,u]);async function p(e,t){let r;let s=new URL(e.url),l=(0,c.q)(s.searchParams.get("agentType"));if(!l)return n.NextResponse.json({error:"A valid agentType is required"},{status:400});try{let e=(0,c.M)(s);r={cursor:e.cursor,limit:e.limit,refresh:e.refresh}}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Invalid query"},{status:400})}try{if("customer-agent"!==l)return n.NextResponse.json(await (0,u.NL)().listWorkspaceSessions(l,t.params.workspaceId,r));let e=await o.agentHost.getProjectStore().get(t.params.workspaceId);if(!e)return n.NextResponse.json({error:"Workspace not found"},{status:404});let s=(await o.agentHost.getSessionStore().list(e.id)).map(({messages:t,events:r,...s})=>({...s,agentType:"customer-agent",nativeSessionId:s.id,cwd:e.description,occupancy:o.agentHost.isSessionRunning(s.id)?"owned-by-customer-agent":"available",sourceLabel:"Customer Agent",canResume:!0,canDelete:!o.agentHost.isSessionRunning(s.id),permissionMode:(0,i.NyU)(s.metadata.permissionMode)})).sort((e,t)=>t.updated.localeCompare(e.updated));return n.NextResponse.json((0,a.L)(s,r,s[0]?.updated??e.updated))}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Workspace sessions failed"},{status:(0,u.WW)(e)})}}[a,o,u]=l.then?(await l)():l,s()}catch(e){s(e)}})},6405:(e,t,r)=>{r.d(t,{M:()=>i,q:()=>n});let s=new Set(["customer-agent","codex","claude-code","opencode"]);function n(e){return e&&s.has(e)?e:null}function i(e){let t=e.searchParams.get("limit"),r=null===t?50:Number(t);if(!Number.isInteger(r)||r<1||r>200)throw Error("limit must be an integer between 1 and 200");return{cursor:e.searchParams.get("cursor"),since:e.searchParams.get("since"),refresh:"1"===e.searchParams.get("refresh"),limit:r}}},2560:(e,t,r)=>{r.d(t,{X:()=>c});var s=r(7718),n=r(7561),i=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,n.accessSync)(e,n.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,s.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function c(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let s=o(r);t.push({source:"pin",path:r,executable:s,version:s?u(r):void 0,error:s?void 0:`${e.environmentVariable} "${r}" is not executable`})}let s=function(e){for(let t of(process.env.PATH??"").split(i.delimiter).filter(Boolean)){let r=(0,i.resolve)(t,e);if(o(r))return r}}(e.name);return s&&s!==r&&t.push({source:"path",path:s,executable:!0,version:u(s)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},2083:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.d(t,{NL:()=>g,V_:()=>P,WW:()=>v});var n=r(7561),i=r(612),a=r(9411),o=r(2560),u=r(535),c=r(1322),l=r(6279),p=r(785),d=e([l]);l=(d.then?(await d)():d)[0];let O=globalThis;class E{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new l.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let s=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return s;let n=new Set(s.data.map(e=>e.id)),i=s.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),h(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||n.has(r.id)||i.unshift(r);return{...s,data:i}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>w(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>w(e,r,this.platform)),e)}async create(e){let t=w(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!P(e))throw new l.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=w(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(s){let r=this.pendingCreations.get(e);if(!r)throw s;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return w(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:s}=await Promise.resolve().then(r.bind(r,1322));return s(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,s,n){return this.runtime.run(e,t,r,s,n)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new l.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,s="web",n){if(!this.runtime.startRun)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,s,n)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,s="web"){if(!this.runtime.enqueueGoal)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,s)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,s){if(!this.runtime.updateMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,s)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?h(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function h(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function g(){if(!O.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,i.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,n.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new c.XWE((0,p.kO)());O.__nativeRuntimeService=new E((0,l.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:c.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,l.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return O.__nativeRuntimeService}function w(e,t,r=process.platform){let{projectId:s,...n}=e;if(!e.cwd)return n;let i=f(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:f(e.description,r)})).filter(({path:e})=>i===e||i.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...n,projectId:u.project.id}:n}function f(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),s=a.win32.parse(r).root;return(r.length>s.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function N(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function P(e){try{return"customer-agent"!==(0,l.Vu)(e).agentType}catch{return!1}}function v(e){if(e instanceof l.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}s()}catch(e){s(e)}})}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,6244,1322,1773,7186,25],()=>r(3841));module.exports=s})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=8593,e.ids=[8593],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},1250:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>c,requestAsyncStorage:()=>p,routeModule:()=>l,serverHooks:()=>h,staticGenerationAsyncStorage:()=>d});var n=r(7786),i=r(5042),a=r(2184),o=r(4214),u=e([o]);o=(u.then?(await u)():u)[0];let l=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent-workspaces/route",pathname:"/api/agent-workspaces",filename:"route",bundlePath:"app/api/agent-workspaces/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/agent-workspaces/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:p,staticGenerationAsyncStorage:d,serverHooks:h}=l,m="/api/agent-workspaces/route";function c(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:d})}s()}catch(e){s(e)}})},6405:(e,t,r)=>{r.d(t,{M:()=>i,q:()=>n});let s=new Set(["customer-agent","codex","claude-code","opencode"]);function n(e){return e&&s.has(e)?e:null}function i(e){let t=e.searchParams.get("limit"),r=null===t?50:Number(t);if(!Number.isInteger(r)||r<1||r>200)throw Error("limit must be an integer between 1 and 200");return{cursor:e.searchParams.get("cursor"),since:e.searchParams.get("since"),refresh:"1"===e.searchParams.get("refresh"),limit:r}}},4214:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{GET:()=>p,POST:()=>d});var n=r(1890),i=r(6279),a=r(7186),o=r(2083),u=r(556),c=r(6405),l=e([i,a,o]);async function p(e){let t;let r=new URL(e.url),s=(0,c.q)(r.searchParams.get("agentType"));if(!s)return n.NextResponse.json({error:"A valid agentType is required"},{status:400});try{t=(0,c.M)(r)}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Invalid query"},{status:400})}try{if("customer-agent"!==s)return n.NextResponse.json(await (0,o.NL)().listWorkspaces(s,t));let e=(await a.agentHost.getProjectStore().list()).map((e,t)=>({agentType:s,workspaceId:e.id,name:e.name,roots:e.description?[e.description]:[],order:t,updatedAt:e.updated,source:"native"}));return n.NextResponse.json((0,i.L)(e,t,e[0]?.updatedAt??null))}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Workspace discovery failed"},{status:(0,o.WW)(e)})}}async function d(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:"A JSON body is required"},{status:400})}let r=(0,c.q)(t.agentType??null);if(!r||!t.path?.trim())return n.NextResponse.json({error:"A valid agentType and path are required"},{status:400});try{let e=u.a.canonicalDirectory(t.path);if("customer-agent"!==r)return n.NextResponse.json(await (0,o.NL)().importWorkspace(r,e,t.name),{status:201});let s=await u.a.list(),i=await u.a.create(e,t.name);return n.NextResponse.json({workspace:{agentType:r,workspaceId:i.id,name:i.name,roots:i.description?[i.description]:[],order:Math.max(0,s.findIndex(e=>e.id===i.id)),updatedAt:i.updated,source:"native"},existing:s.some(e=>e.id===i.id)},{status:201})}catch(t){let e=(0,u.r)(t);if(500!==e.status)return n.NextResponse.json(e.body,{status:e.status});return n.NextResponse.json({error:t instanceof Error?t.message:"Workspace import failed"},{status:(0,o.WW)(t)})}}[i,a,o]=l.then?(await l)():l,s()}catch(e){s(e)}})},556:(e,t,r)=>{r.d(t,{r:()=>p,a:()=>l});var s=r(612),n=r(1322),i=r(785),a=r(6005),o=r(9411);class u extends Error{constructor(e,t,r){super(e),this.code=t,this.status=r,this.name="WebProjectError"}}class c{constructor(e,t){this.store=e,this.paths=t}list(){return this.store.list()}async get(e){let t=await this.store.get(e);if(!t)throw new u("项目不存在","PROJECT_NOT_FOUND",404);return t}async create(e,t){let r=this.paths.assertDirectory(e);for(let e of(await this.store.list()))try{if(this.paths.assertDirectory(e.description)===r)return e}catch{}let s=new Date().toISOString();return this.store.create({id:(0,a.randomUUID)(),name:t?.trim()||(0,o.basename)(r)||r,description:r,created:s,updated:s})}async rename(e,t){await this.get(e);let r=t.trim();if(!r)throw new u("项目名称不能为空","PROJECT_NAME_REQUIRED",400);return this.store.update(e,{name:r})}async delete(e){await this.get(e),await this.store.delete(e)}roots(){return this.paths.roots}directories(e){return this.paths.listDirectories(e)}check(e){try{return this.paths.assertDirectory(e),!0}catch{return!1}}canonicalDirectory(e){return this.paths.assertDirectory(e)}}let l=new c(new n.XWE((0,i.kO)()),n.Tpv.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,s.homedir)()));function p(e){return e instanceof u?{status:e.status,body:{error:e.message,code:e.code}}:e instanceof n.TLe?{status:400,body:{error:e.message,code:e.code}}:{status:500,body:{error:e instanceof Error?e.message:"项目操作失败",code:"PROJECT_OPERATION_FAILED"}}}},2560:(e,t,r)=>{r.d(t,{X:()=>c});var s=r(7718),n=r(7561),i=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,n.accessSync)(e,n.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,s.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function c(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let s=o(r);t.push({source:"pin",path:r,executable:s,version:s?u(r):void 0,error:s?void 0:`${e.environmentVariable} "${r}" is not executable`})}let s=function(e){for(let t of(process.env.PATH??"").split(i.delimiter).filter(Boolean)){let r=(0,i.resolve)(t,e);if(o(r))return r}}(e.name);return s&&s!==r&&t.push({source:"path",path:s,executable:!0,version:u(s)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},2083:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.d(t,{NL:()=>w,V_:()=>E,WW:()=>O});var n=r(7561),i=r(612),a=r(9411),o=r(2560),u=r(535),c=r(1322),l=r(6279),p=r(785),d=e([l]);l=(d.then?(await d)():d)[0];let P=globalThis;class v{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new l.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let s=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return s;let n=new Set(s.data.map(e=>e.id)),i=s.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),h(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||n.has(r.id)||i.unshift(r);return{...s,data:i}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>f(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>f(e,r,this.platform)),e)}async create(e){let t=f(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!E(e))throw new l.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=f(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(s){let r=this.pendingCreations.get(e);if(!r)throw s;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return f(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:s}=await Promise.resolve().then(r.bind(r,1322));return s(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,s,n){return this.runtime.run(e,t,r,s,n)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new l.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,s="web",n){if(!this.runtime.startRun)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,s,n)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,s="web"){if(!this.runtime.enqueueGoal)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,s)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,s){if(!this.runtime.updateMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,s)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?h(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function h(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function w(){if(!P.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,i.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,n.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new c.XWE((0,p.kO)());P.__nativeRuntimeService=new v((0,l.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:c.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,l.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return P.__nativeRuntimeService}function f(e,t,r=process.platform){let{projectId:s,...n}=e;if(!e.cwd)return n;let i=g(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:g(e.description,r)})).filter(({path:e})=>i===e||i.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...n,projectId:u.project.id}:n}function g(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),s=a.win32.parse(r).root;return(r.length>s.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function N(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function E(e){try{return"customer-agent"!==(0,l.Vu)(e).agentType}catch{return!1}}function O(e){if(e instanceof l.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}s()}catch(e){s(e)}})}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,6244,1322,1773,7186,25],()=>r(1250));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=8593,e.ids=[8593],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},5449:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>c,requestAsyncStorage:()=>p,routeModule:()=>l,serverHooks:()=>h,staticGenerationAsyncStorage:()=>d});var n=r(7786),i=r(5042),a=r(2184),o=r(4214),u=e([o]);o=(u.then?(await u)():u)[0];let l=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent-workspaces/route",pathname:"/api/agent-workspaces",filename:"route",bundlePath:"app/api/agent-workspaces/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent-workspaces/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:p,staticGenerationAsyncStorage:d,serverHooks:h}=l,m="/api/agent-workspaces/route";function c(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:d})}s()}catch(e){s(e)}})},6405:(e,t,r)=>{r.d(t,{M:()=>i,q:()=>n});let s=new Set(["customer-agent","codex","claude-code","opencode"]);function n(e){return e&&s.has(e)?e:null}function i(e){let t=e.searchParams.get("limit"),r=null===t?50:Number(t);if(!Number.isInteger(r)||r<1||r>200)throw Error("limit must be an integer between 1 and 200");return{cursor:e.searchParams.get("cursor"),since:e.searchParams.get("since"),refresh:"1"===e.searchParams.get("refresh"),limit:r}}},4214:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{GET:()=>p,POST:()=>d});var n=r(1890),i=r(6279),a=r(7186),o=r(2083),u=r(556),c=r(6405),l=e([i,a,o]);async function p(e){let t;let r=new URL(e.url),s=(0,c.q)(r.searchParams.get("agentType"));if(!s)return n.NextResponse.json({error:"A valid agentType is required"},{status:400});try{t=(0,c.M)(r)}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Invalid query"},{status:400})}try{if("customer-agent"!==s)return n.NextResponse.json(await (0,o.NL)().listWorkspaces(s,t));let e=(await a.agentHost.getProjectStore().list()).map((e,t)=>({agentType:s,workspaceId:e.id,name:e.name,roots:e.description?[e.description]:[],order:t,updatedAt:e.updated,source:"native"}));return n.NextResponse.json((0,i.L)(e,t,e[0]?.updatedAt??null))}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Workspace discovery failed"},{status:(0,o.WW)(e)})}}async function d(e){let t;try{t=await e.json()}catch{return n.NextResponse.json({error:"A JSON body is required"},{status:400})}let r=(0,c.q)(t.agentType??null);if(!r||!t.path?.trim())return n.NextResponse.json({error:"A valid agentType and path are required"},{status:400});try{let e=u.a.canonicalDirectory(t.path);if("customer-agent"!==r)return n.NextResponse.json(await (0,o.NL)().importWorkspace(r,e,t.name),{status:201});let s=await u.a.list(),i=await u.a.create(e,t.name);return n.NextResponse.json({workspace:{agentType:r,workspaceId:i.id,name:i.name,roots:i.description?[i.description]:[],order:Math.max(0,s.findIndex(e=>e.id===i.id)),updatedAt:i.updated,source:"native"},existing:s.some(e=>e.id===i.id)},{status:201})}catch(t){let e=(0,u.r)(t);if(500!==e.status)return n.NextResponse.json(e.body,{status:e.status});return n.NextResponse.json({error:t instanceof Error?t.message:"Workspace import failed"},{status:(0,o.WW)(t)})}}[i,a,o]=l.then?(await l)():l,s()}catch(e){s(e)}})},556:(e,t,r)=>{r.d(t,{r:()=>p,a:()=>l});var s=r(612),n=r(1322),i=r(785),a=r(6005),o=r(9411);class u extends Error{constructor(e,t,r){super(e),this.code=t,this.status=r,this.name="WebProjectError"}}class c{constructor(e,t){this.store=e,this.paths=t}list(){return this.store.list()}async get(e){let t=await this.store.get(e);if(!t)throw new u("项目不存在","PROJECT_NOT_FOUND",404);return t}async create(e,t){let r=this.paths.assertDirectory(e);for(let e of(await this.store.list()))try{if(this.paths.assertDirectory(e.description)===r)return e}catch{}let s=new Date().toISOString();return this.store.create({id:(0,a.randomUUID)(),name:t?.trim()||(0,o.basename)(r)||r,description:r,created:s,updated:s})}async rename(e,t){await this.get(e);let r=t.trim();if(!r)throw new u("项目名称不能为空","PROJECT_NAME_REQUIRED",400);return this.store.update(e,{name:r})}async delete(e){await this.get(e),await this.store.delete(e)}roots(){return this.paths.roots}directories(e){return this.paths.listDirectories(e)}check(e){try{return this.paths.assertDirectory(e),!0}catch{return!1}}canonicalDirectory(e){return this.paths.assertDirectory(e)}}let l=new c(new n.XWE((0,i.kO)()),n.Tpv.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,s.homedir)()));function p(e){return e instanceof u?{status:e.status,body:{error:e.message,code:e.code}}:e instanceof n.TLe?{status:400,body:{error:e.message,code:e.code}}:{status:500,body:{error:e instanceof Error?e.message:"项目操作失败",code:"PROJECT_OPERATION_FAILED"}}}},2560:(e,t,r)=>{r.d(t,{X:()=>c});var s=r(7718),n=r(7561),i=r(9411),a=r(1322);function o(e){if(!e.trim())return!1;try{return(0,n.accessSync)(e,n.constants.X_OK),!0}catch{return!1}}function u(e){try{return(0,a.wyD)((0,s.execFileSync)(e,["--version"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]}))}catch{return}}function c(e){let t=[],r=process.env[e.environmentVariable]?.trim();if(r){let s=o(r);t.push({source:"pin",path:r,executable:s,version:s?u(r):void 0,error:s?void 0:`${e.environmentVariable} "${r}" is not executable`})}let s=function(e){for(let t of(process.env.PATH??"").split(i.delimiter).filter(Boolean)){let r=(0,i.resolve)(t,e);if(o(r))return r}}(e.name);return s&&s!==r&&t.push({source:"path",path:s,executable:!0,version:u(s)}),(0,a.neJ)(t,{name:e.name,minimumVersion:e.minimumVersion})}},2083:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.d(t,{NL:()=>w,V_:()=>E,WW:()=>O});var n=r(7561),i=r(612),a=r(9411),o=r(2560),u=r(535),c=r(1322),l=r(6279),p=r(785),d=e([l]);l=(d.then?(await d)():d)[0];let P=globalThis;class v{constructor(e,t=async()=>[],r=process.platform){this.runtime=e,this.listProjects=t,this.platform=r,this.pendingCreations=new Map}health(){return this.runtime.health()}listModels(e){return this.runtime.listModels(e)}listWorkspaces(e,t){return this.runtime.listWorkspaces(e,t)}importWorkspace(e,t,r){if(!this.runtime.importWorkspace)throw new l.no("Native workspace import is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.importWorkspace(e,t,r)}async listWorkspaceSessions(e,t,r){let s=await this.runtime.listWorkspaceSessions(e,t,r);if(r?.cursor)return s;let n=new Set(s.data.map(e=>e.id)),i=s.data.map(e=>{let t=this.pendingCreations.get(e.id);return t?(this.pendingCreations.delete(e.id),h(e,t)):e});for(let r of this.pendingCreations.values())r.agentType!==e||r.projectId!==t||n.has(r.id)||i.unshift(r);return{...s,data:i}}async list(e){let[t,r]=await Promise.all([this.runtime.list(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>f(e,r,this.platform)),e)}async refresh(e){let[t,r]=await Promise.all([this.runtime.refresh(),this.listProjects()]);return N(this.withPendingCreations(t).map(e=>f(e,r,this.platform)),e)}async create(e){let t=f(await this.runtime.create(e),await this.listProjects(),this.platform),r=e.projectId?{...t,projectId:e.projectId}:t;return this.pendingCreations.set(r.id,r),r}async fork(e){if(!E(e))throw new l.no("Customer Agent sessions do not support native forks","OPERATION_NOT_SUPPORTED");let t=f(await this.runtime.fork(e),await this.listProjects(),this.platform);return this.pendingCreations.set(t.id,t),t}async delete(e){await this.runtime.delete(e),this.pendingCreations.delete(e)}async get(e,t){let r;try{r=await this.runtime.get(e,t)}catch(s){let r=this.pendingCreations.get(e);if(!r)throw s;return t?{...r,messages:[],events:[],history:{nextCursor:null,hasMore:!1,pageSize:0,totalItems:0}}:{...r,messages:[],events:[]}}return f(r,await this.listProjects(),this.platform)}async getQueryIndex(e){if(this.runtime.getQueryIndex)return this.runtime.getQueryIndex(e);let t=await this.runtime.get(e),{buildSessionQueryIndex:s}=await Promise.resolve().then(r.bind(r,1322));return s(e,t.messages)}getSessionToolResult(e,t){return this.runtime.getSessionToolResult(e,t)}getSessionWatchPath(e){return this.runtime.getSessionWatchPath(e)}run(e,t,r,s,n){return this.runtime.run(e,t,r,s,n)}steer(e,t){return this.runtime.steer(e,t)}abort(e){return this.runtime.abort(e)}async release(e){if(!this.runtime.release)throw new l.no("Native runtime release is unavailable","RUNTIME_UNAVAILABLE");await this.runtime.release(e)}answerQuestion(e,t){return this.runtime.answerQuestion(e,t)}async startRun(e,t,r,s="web",n){if(!this.runtime.startRun)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.startRun(e,t,r,s,n)}async subscribe(e,t,r){if(!this.runtime.subscribe)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.subscribe(e,t,r)}async snapshot(e,t=0){if(!this.runtime.snapshot)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.snapshot(e,t)}async setPermissionMode(e,t){if(!this.runtime.setPermissionMode)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.setPermissionMode(e,t)}async handoff(e,t){if(!this.runtime.handoff)throw new l.no("Native runtime broker is unavailable","RUNTIME_UNAVAILABLE");return this.runtime.handoff(e,t)}async getGoals(e,t="web"){if(!this.runtime.getGoals)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.getGoals(e,t)}async enqueueGoal(e,t,r,s="web"){if(!this.runtime.enqueueGoal)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueGoal(e,t,r,s)}async reorderGoals(e,t){if(!this.runtime.reorderGoals)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderGoals(e,t)}async cancelGoal(e,t){if(!this.runtime.cancelGoal)throw new l.no("Goal mode is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelGoal(e,t,"web")}async enqueueMessage(e,t,r="web"){if(!this.runtime.enqueueMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.enqueueMessage(e,t,r)}async reorderMessages(e,t){if(!this.runtime.reorderMessages)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.reorderMessages(e,t)}async updateMessage(e,t,r,s){if(!this.runtime.updateMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.updateMessage(e,t,r,s)}async cancelMessage(e,t){if(!this.runtime.cancelMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.cancelMessage(e,t)}async steerMessage(e,t){if(!this.runtime.steerMessage)throw new l.no("Message queue is unavailable","OPERATION_NOT_SUPPORTED");return this.runtime.steerMessage(e,t)}withPendingCreations(e){let t=new Set,r=e.map(e=>{t.add(e.id);let r=this.pendingCreations.get(e.id);return this.pendingCreations.delete(e.id),r?h(e,r):e});for(let e of this.pendingCreations.values())t.has(e.id)||r.push(e);return r.sort((e,t)=>t.updated.localeCompare(e.updated))}}function h(e,t){return{...e,cwd:e.cwd||t.cwd,projectId:e.projectId??t.projectId}}function m(e,t){t.executable?delete process.env[e]:process.env[e]=t.detail}function w(){if(!P.__nativeRuntimeService){!function(){let e=[(0,a.join)((0,i.homedir)(),".local","bin"),"/opt/homebrew/bin","/usr/local/bin"],t=(process.env.PATH??"").split(a.delimiter),r=e.filter(e=>(0,n.existsSync)(e)&&!t.includes(e));r.length>0&&(process.env.PATH=[...t,...r].join(a.delimiter))}();let e=new c.XWE((0,p.kO)());P.__nativeRuntimeService=new v((0,l.v6)({runtimeFactory:e=>{let t=(0,o.X)({name:"codex",environmentVariable:"AGENT_CODEX_BIN",minimumVersion:c.hix}),r=(0,o.X)({name:"opencode",environmentVariable:"AGENT_OPENCODE_BIN"});return process.pid,m("AGENT_CODEX_RUNTIME_ERROR",t),m("AGENT_OPENCODE_RUNTIME_ERROR",r),(0,u.L)().info("native runtime host elected",{pid:process.pid,codex:t.executable??null,codexSource:t.source??null,codexDetail:t.detail,opencode:r.executable??null,opencodeDetail:r.detail}),(0,l.WH)(t.executable??"codex",e,r.executable??"opencode")}}),()=>e.list())}return P.__nativeRuntimeService}function f(e,t,r=process.platform){let{projectId:s,...n}=e;if(!e.cwd)return n;let i=g(e.cwd,r),o="win32"===r?a.win32.sep:a.sep,u=t.filter(e=>e.description).map(e=>({project:e,path:g(e.description,r)})).filter(({path:e})=>i===e||i.startsWith(`${e}${o}`)).sort((e,t)=>t.path.length-e.path.length)[0];return u?{...n,projectId:u.project.id}:n}function g(e,t=process.platform){if("win32"!==t)return(0,a.resolve)(e);let r=a.win32.resolve(e),s=a.win32.parse(r).root;return(r.length>s.length?r.replace(/[\\/]+$/,""):r).toLowerCase()}function N(e,t){return void 0===t?e:e.filter(e=>e.projectId===t)}function E(e){try{return"customer-agent"!==(0,l.Vu)(e).agentType}catch{return!1}}function O(e){if(e instanceof l.no)switch(e.code){case"SESSION_NOT_FOUND":return 404;case"SESSION_OCCUPIED":case"SESSION_ALREADY_RUNNING":case"APPROVAL_EXPIRED":case"CODEX_SESSION_VERSION_INCOMPATIBLE":case"STALE_SESSION_ANCHOR":return 409;case"RUNTIME_UNAVAILABLE":return 503;case"OPERATION_NOT_SUPPORTED":return 405;default:return 400}return 500}s()}catch(e){s(e)}})}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,6244,1322,1773,7186,25],()=>r(5449));module.exports=s})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=571,e.ids=[571],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},6154:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>h,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>l,staticGenerationAsyncStorage:()=>c});var a={};r.r(a),r.d(a,{GET:()=>u});var o=r(7786),s=r(5042),n=r(2184),i=r(1890);async function u(e){let t=e.headers.get("Authorization"),r=t?.replace("Bearer ",""),a=new URL(e.url).searchParams.get("token"),o=process.env.AGENT_SDK_TOKEN;return o?(r||a)===o?i.NextResponse.json({valid:!0,project:"default"}):i.NextResponse.json({valid:!1},{status:401}):i.NextResponse.json({valid:!0,project:"dev"})}let p=new o.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/auth/verify/route",pathname:"/api/auth/verify",filename:"route",bundlePath:"app/api/auth/verify/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/auth/verify/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:c,serverHooks:l}=p,v="/api/auth/verify/route";function h(){return(0,n.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:c})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8375,6703],()=>r(6154));module.exports=a})();
1
+ "use strict";(()=>{var e={};e.id=571,e.ids=[571],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},3935:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>h,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>l,staticGenerationAsyncStorage:()=>c});var a={};r.r(a),r.d(a,{GET:()=>u});var s=r(7786),o=r(5042),n=r(2184),i=r(1890);async function u(e){let t=e.headers.get("Authorization"),r=t?.replace("Bearer ",""),a=new URL(e.url).searchParams.get("token"),s=process.env.AGENT_SDK_TOKEN;return s?(r||a)===s?i.NextResponse.json({valid:!0,project:"default"}):i.NextResponse.json({valid:!1},{status:401}):i.NextResponse.json({valid:!0,project:"dev"})}let p=new s.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/auth/verify/route",pathname:"/api/auth/verify",filename:"route",bundlePath:"app/api/auth/verify/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/auth/verify/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:c,serverHooks:l}=p,v="/api/auth/verify/route";function h(){return(0,n.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:c})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8375,6703],()=>r(3935));module.exports=a})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=7462,e.ids=[7462],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},239:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{originalPathname:()=>x,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>h,staticGenerationAsyncStorage:()=>l});var o=t(7786),n=t(5042),i=t(2184),a=t(3909),p=e([a]);a=(p.then?(await p)():p)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/business/route",pathname:"/api/business",filename:"route",bundlePath:"app/api/business/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/business/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:h}=d,x="/api/business/route";function u(){return(0,i.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:l})}s()}catch(e){s(e)}})},7786:(e,r,t)=>{e.exports=t(517)},3909:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{POST:()=>p,dynamic:()=>u});var o=t(1489),n=t(4621),i=t(9001),a=e([o]);o=(a.then?(await a)():a)[0];let u="force-dynamic";async function p(e){let r=(0,i.o)(e);if(r)return r;try{let{method:r,args:t}=await e.json();if("string"!=typeof r||!Array.isArray(t)||t.length>10)return Response.json({error:"Invalid operation"},{status:400});return Response.json(r.startsWith("cron")?(0,o.N)().call(r,t):await (0,n.i)().call(r,t),{headers:{"cache-control":"no-store"}})}catch(e){return Response.json({error:e instanceof Error?e.message:"Operation failed"},{status:400})}}s()}catch(e){s(e)}})},9001:(e,r,t)=>{t.d(r,{o:()=>o});let s=new Set(["capacitor://localhost","ionic://localhost"]);function o(e){if(!e.headers.get("content-type")?.toLowerCase().startsWith("application/json"))return Response.json({error:"JSON required"},{status:415});let r=e.headers.get("origin");if(!r||s.has(r))return null;let t=new URL(e.url),o="1"===process.env.AGENT_TRUST_TUNNEL_PROXY,n=o?e.headers.get("x-forwarded-host")?.split(",")[0].trim()||e.headers.get("host")||t.host:e.headers.get("host")||t.host,i=o&&e.headers.get("x-forwarded-proto")?.split(",")[0].trim()||t.protocol.slice(0,-1);return r!==`${i}://${n}`?Response.json({error:"Cross-origin write denied"},{status:403}):null}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6244,1322,1773,25],()=>t(239));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=7462,e.ids=[7462],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},6853:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{originalPathname:()=>x,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>h,staticGenerationAsyncStorage:()=>l});var o=t(7786),n=t(5042),i=t(2184),a=t(3909),p=e([a]);a=(p.then?(await p)():p)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/business/route",pathname:"/api/business",filename:"route",bundlePath:"app/api/business/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/business/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:h}=d,x="/api/business/route";function u(){return(0,i.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:l})}s()}catch(e){s(e)}})},7786:(e,r,t)=>{e.exports=t(517)},3909:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{POST:()=>p,dynamic:()=>u});var o=t(1489),n=t(4621),i=t(9001),a=e([o]);o=(a.then?(await a)():a)[0];let u="force-dynamic";async function p(e){let r=(0,i.o)(e);if(r)return r;try{let{method:r,args:t}=await e.json();if("string"!=typeof r||!Array.isArray(t)||t.length>10)return Response.json({error:"Invalid operation"},{status:400});return Response.json(r.startsWith("cron")?(0,o.N)().call(r,t):await (0,n.i)().call(r,t),{headers:{"cache-control":"no-store"}})}catch(e){return Response.json({error:e instanceof Error?e.message:"Operation failed"},{status:400})}}s()}catch(e){s(e)}})},9001:(e,r,t)=>{t.d(r,{o:()=>o});let s=new Set(["capacitor://localhost","ionic://localhost"]);function o(e){if(!e.headers.get("content-type")?.toLowerCase().startsWith("application/json"))return Response.json({error:"JSON required"},{status:415});let r=e.headers.get("origin");if(!r||s.has(r))return null;let t=new URL(e.url),o="1"===process.env.AGENT_TRUST_TUNNEL_PROXY,n=o?e.headers.get("x-forwarded-host")?.split(",")[0].trim()||e.headers.get("host")||t.host:e.headers.get("host")||t.host,i=o&&e.headers.get("x-forwarded-proto")?.split(",")[0].trim()||t.protocol.slice(0,-1);return r!==`${i}://${n}`?Response.json({error:"Cross-origin write denied"},{status:403}):null}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6244,1322,1773,25],()=>t(6853));module.exports=s})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=9015,e.ids=[9015],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},9801:e=>{e.exports=require("os")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},1041:e=>{e.exports=require("node:url")},6573:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>x,requestAsyncStorage:()=>f,routeModule:()=>d,serverHooks:()=>v,staticGenerationAsyncStorage:()=>g});var o={};t.r(o),t.d(o,{POST:()=>c,dynamic:()=>l});var n=t(7786),s=t(5042),i=t(2184),a=t(535);let l="force-dynamic",u=new Map;function p(e,r){if("string"==typeof e&&0!==e.length)return e.length>r?e.slice(0,r):e}async function c(e){let r;let t=Date.now(),o=function(e){let r=e.headers.get("x-forwarded-for");return r?r.split(",")[0].trim():e.headers.get("x-real-ip")??"unknown"}(e);if(!function(e,r){let t=(u.get(e)??[]).filter(e=>r-e<6e4);if(t.length>=60)return u.set(e,t),!1;if(t.push(r),u.set(e,t),u.size>1e4){for(let[e,t]of u)if(t.every(e=>r-e>=6e4)&&u.delete(e),u.size<=5e3)break}return!0}(o,t))return Response.json({error:"rate limited"},{status:429});try{r=await e.json()}catch{return Response.json({error:"invalid JSON body"},{status:400})}let n=Array.isArray(r?.entries)?r.entries.slice(0,20):[r],s=(0,a.L)(),i=0;for(let e of n){let r;let t=p(e.message,4e3);if(!t)continue;let n="string"==typeof e.level?e.level:"error",a="fatal"===n||"warn"===n?n:"error",l=p(e.source,40),u=e.error,c=u&&"object"==typeof u?{name:p(u.name,200)??"Error",message:p(u.message,4e3)??"",stack:p(u.stack,8e3)}:void 0;if(void 0!==e.data)try{let t=JSON.stringify(e.data);t&&t.length<=2e3&&(r=JSON.parse(t))}catch{r=void 0}s.log(a,t,c,{clientIp:o,clientSource:l??"webapp",data:r}),i++}return Response.json({accepted:i},{headers:{"cache-control":"no-store"}})}let d=new n.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/client-logs/route",pathname:"/api/client-logs",filename:"route",bundlePath:"app/api/client-logs/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/client-logs/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:f,staticGenerationAsyncStorage:g,serverHooks:v}=d,m="/api/client-logs/route";function x(){return(0,i.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:g})}},7786:(e,r,t)=>{e.exports=t(517)},535:(e,r,t)=>{t.d(r,{L:()=>i});var o=t(1322),n=t(785);let s=!1;function i(){let e=(0,o.Qfc)();if(e)return e;let r=(0,o.qZ_)({dir:(0,n.ME)(),source:"server",minLevel:"info",handlers:{exitOnUncaughtException:!1}});return s||(s=!0,r.info("server logger attached",{dir:r.dir,pid:process.pid})),r}},785:(e,r,t)=>{t.d(r,{ME:()=>a,kO:()=>i,sr:()=>l});var o=t(9411);let n=function(){let e=process.argv[1];if(e){let r=(0,o.dirname)((0,o.resolve)(e)),t=`${o.sep}node_modules${o.sep}.bin`;return r.endsWith(t)?(0,o.resolve)(r,"..",".."):r}return(0,o.resolve)(process.cwd())}();function s(e=process.env,r=n){return(0,o.resolve)(e.AGENT_DATA_DIR?.trim()||r)}function i(){return s()}function a(e=process.env,r=s(e)){let t=e.AGENT_LOG_DIR?.trim();if(t)return(0,o.resolve)(t);let n=e.AGENTROAM_DATA_DIR?.trim();return n?(0,o.resolve)(n,"logs"):(0,o.join)(r,".agent-data","logs")}function l(){return function(e=process.env,r=n){return(0,o.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,i())}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8375,1322],()=>t(6573));module.exports=o})();
1
+ "use strict";(()=>{var e={};e.id=9015,e.ids=[9015],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},9801:e=>{e.exports=require("os")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},1041:e=>{e.exports=require("node:url")},3263:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>x,requestAsyncStorage:()=>f,routeModule:()=>d,serverHooks:()=>v,staticGenerationAsyncStorage:()=>g});var o={};t.r(o),t.d(o,{POST:()=>c,dynamic:()=>u});var n=t(7786),s=t(5042),i=t(2184),a=t(535);let u="force-dynamic",l=new Map;function p(e,r){if("string"==typeof e&&0!==e.length)return e.length>r?e.slice(0,r):e}async function c(e){let r;let t=Date.now(),o=function(e){let r=e.headers.get("x-forwarded-for");return r?r.split(",")[0].trim():e.headers.get("x-real-ip")??"unknown"}(e);if(!function(e,r){let t=(l.get(e)??[]).filter(e=>r-e<6e4);if(t.length>=60)return l.set(e,t),!1;if(t.push(r),l.set(e,t),l.size>1e4){for(let[e,t]of l)if(t.every(e=>r-e>=6e4)&&l.delete(e),l.size<=5e3)break}return!0}(o,t))return Response.json({error:"rate limited"},{status:429});try{r=await e.json()}catch{return Response.json({error:"invalid JSON body"},{status:400})}let n=Array.isArray(r?.entries)?r.entries.slice(0,20):[r],s=(0,a.L)(),i=0;for(let e of n){let r;let t=p(e.message,4e3);if(!t)continue;let n="string"==typeof e.level?e.level:"error",a="fatal"===n||"warn"===n?n:"error",u=p(e.source,40),l=e.error,c=l&&"object"==typeof l?{name:p(l.name,200)??"Error",message:p(l.message,4e3)??"",stack:p(l.stack,8e3)}:void 0;if(void 0!==e.data)try{let t=JSON.stringify(e.data);t&&t.length<=2e3&&(r=JSON.parse(t))}catch{r=void 0}s.log(a,t,c,{clientIp:o,clientSource:u??"webapp",data:r}),i++}return Response.json({accepted:i},{headers:{"cache-control":"no-store"}})}let d=new n.AppRouteRouteModule({definition:{kind:s.x.APP_ROUTE,page:"/api/client-logs/route",pathname:"/api/client-logs",filename:"route",bundlePath:"app/api/client-logs/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/client-logs/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:f,staticGenerationAsyncStorage:g,serverHooks:v}=d,m="/api/client-logs/route";function x(){return(0,i.patchFetch)({serverHooks:v,staticGenerationAsyncStorage:g})}},7786:(e,r,t)=>{e.exports=t(517)},535:(e,r,t)=>{t.d(r,{L:()=>i});var o=t(1322),n=t(785);let s=!1;function i(){let e=(0,o.Qfc)();if(e)return e;let r=(0,o.qZ_)({dir:(0,n.ME)(),source:"server",minLevel:"info",handlers:{exitOnUncaughtException:!1}});return s||(s=!0,r.info("server logger attached",{dir:r.dir,pid:process.pid})),r}},785:(e,r,t)=>{t.d(r,{ME:()=>a,kO:()=>i,sr:()=>u});var o=t(9411);let n=function(){let e=process.argv[1];if(e){let r=(0,o.dirname)((0,o.resolve)(e)),t=`${o.sep}node_modules${o.sep}.bin`;return r.endsWith(t)?(0,o.resolve)(r,"..",".."):r}return(0,o.resolve)(process.cwd())}();function s(e=process.env,r=n){return(0,o.resolve)(e.AGENT_DATA_DIR?.trim()||r)}function i(){return s()}function a(e=process.env,r=s(e)){let t=e.AGENT_LOG_DIR?.trim();if(t)return(0,o.resolve)(t);let n=e.AGENTROAM_DATA_DIR?.trim();return n?(0,o.resolve)(n,"logs"):(0,o.join)(r,".agent-data","logs")}function u(){return function(e=process.env,r=n){return(0,o.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,i())}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8375,1322],()=>t(3263));module.exports=o})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=2210,e.ids=[2210],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},9801:e=>{e.exports=require("os")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},1041:e=>{e.exports=require("node:url")},9837:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>v,requestAsyncStorage:()=>u,routeModule:()=>c,serverHooks:()=>h,staticGenerationAsyncStorage:()=>f});var i={};r.r(i),r.d(i,{POST:()=>p});var s=r(7786),a=r(5042),n=r(2184),o=r(1890),l=r(1322),d=r(4621);async function p(e){try{let t=await e.json();if(!t.id||!t.command)return o.NextResponse.json({error:"id and command are required"},{status:400});let r=new l.KSK;try{await r.connectServer(t);let e=await r.discoverAllTools();return await (0,d.i)().mcp.save(t),await (0,d.i)().mcp.setEnabled(t.id,!0),o.NextResponse.json({status:"connected",tools:Object.fromEntries(e)})}finally{await r.disconnectServer(t.id)}}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Connection failed"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/mcp/connect/route",pathname:"/api/mcp/connect",filename:"route",bundlePath:"app/api/mcp/connect/route"},resolvedPagePath:"/Volumes/ext/project/team-agent/packages/server/app/api/mcp/connect/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:u,staticGenerationAsyncStorage:f,serverHooks:h}=c,m="/api/mcp/connect/route";function v(){return(0,n.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:f})}},4621:(e,t,r)=>{let i;r.d(t,{i:()=>f});var s=r(6005),a=r(612),n=r(9411),o=r(1322),l=r(785),d=r(1982);class p{constructor(e){this.agents=new o.Mx2(e),this.lsp=new o.E5B(e),this.mcp=new o.AMq(e),this.skills=new o.ejl(e),this.uploads=new o.M_x(e),this.memory=new o.iBh(e)}async call(e,t){let r=()=>u(t[0]),i=()=>{if("boolean"!=typeof t[1])throw Error("enabled must be boolean");return t[1]},l=()=>c(t[0]);switch(e){case"importLegacy":{let e=l(),t={profiles:0,agents:0,lsp:0,preserved:0},r=(0,d.dp)().publicView(),i=[...r.profiles];if(Array.isArray(e.profiles)){for(let r of e.profiles)if(r&&"object"==typeof r&&"string"==typeof r.id&&"managed"!==r.apiKey){if(i.some(e=>e.id===r.id)){t.preserved++;continue}i.push(r),t.profiles++}}if(t.profiles&&(0,d.dp)().save({profiles:i,activeProfileId:r.activeProfileId||i[0]?.id||"",revision:r.revision}),Array.isArray(e.agents))for(let r of e.agents){let e=c(r),i=u(e.id);if(await this.agents.get(i)){t.preserved++;continue}await this.agents.create(e),t.agents++}if(Array.isArray(e.lsp))for(let r of e.lsp){let e=c(r),i=u(e.id);if(await this.lsp.get(i)){t.preserved++;continue}await this.lsp.save(e),t.lsp++}return t}case"mcpList":return this.mcp.listAll();case"mcpSave":{let e=l();return u(e.id),u(e.name),await this.mcp.save(e),!1===e.enabled&&await this.mcp.setEnabled(String(e.id),!1),null}case"mcpDelete":return await this.mcp.delete(r()),null;case"mcpSetEnabled":return await this.mcp.setEnabled(r(),i()),null;case"mcpProbe":{let e=new o.KSK,t=l();u(t.id);try{let r=await e.connectServer(t);return(await r.listTools()).map(({name:e,description:t})=>({name:e,description:t}))}finally{await e.disconnectServer(t.id)}}case"listSkills":{let e=await this.skills.listAll(),t=new Map((await new o.N78().loadAll((0,d.dp)().read().workingDirectory)).map(e=>[e.name,{...e,enabled:!0}]));for(let r of e)t.set(r.name,{...t.get(r.name),...r,enabled:!1!==r.enabled});return[...t.values()]}case"saveSkill":{let e=l();return u(e.name),await this.skills.save({description:"",triggers:[],prompt:"",filePath:"",source:"custom",...e}),null}case"deleteSkill":return await this.skills.delete(r()),null;case"setSkillEnabled":{let e=r(),t=i();if(!await this.skills.get(e)){let t=(await new o.N78().loadAll((0,d.dp)().read().workingDirectory)).find(t=>t.name===e);if(!t)throw Error("Skill not found");await this.skills.save(await new o.N78().loadFromFile(t.filePath))}return await this.skills.setEnabled(e,t),null}case"importSkill":{let e=await new o.N78().installSkill(r(),(0,n.join)((0,a.homedir)(),".agent","skills"));return await this.skills.save(await new o.N78().loadFromFile(e.filePath)),e}case"listAgentDefs":{let e=(0,d.dp)().read().activeAgentIds;return(await this.agents.list()).map(t=>({...t,isActive:e.includes(t.id)}))}case"getAgentDef":return this.agents.get(r());case"createAgentDef":{let e=l(),t=new Date().toISOString();return this.agents.create({name:"新智能体",description:"",systemPrompt:"",contextPlaceholders:[],capabilities:{profileId:"",enabledTools:[],enabledSkills:[],enabledMCPServers:[]},maxIterations:10,isDefault:!1,...e,id:(0,s.randomUUID)(),created:t,updated:t})}case"updateAgentDef":return this.agents.update(r(),c(t[1]));case"deleteAgentDef":return await this.agents.delete(r()),(0,d.dp)().save({activeAgentIds:(0,d.dp)().read().activeAgentIds.filter(e=>e!==r())});case"setActiveAgentDef":{if(!await this.agents.get(r()))throw Error("Agent not found");let e=(0,d.dp)().read().activeAgentIds;return(0,d.dp)().save({activeAgentIds:e.includes(r())?e.filter(e=>e!==r()):[...e,r()]})}case"lspList":return this.lsp.listAll();case"lspSave":{let e=l();return u(e.name),u(e.command),await this.lsp.save({id:(0,s.randomUUID)(),enabled:!0,...e}),null}case"lspDelete":return await this.lsp.delete(r()),null;case"lspSetEnabled":return await this.lsp.setEnabled(r(),i()),null;case"listUploads":return this.uploads.list();case"getUpload":return this.uploads.get(r());case"saveUpload":{let e=l();return u(e.id),await this.uploads.save(e),null}case"deleteUpload":return await this.uploads.delete(r()),null;case"listMemories":return this.memory.list();case"getMemory":return this.memory.get(r());case"searchMemories":return this.memory.search(r());case"setMemory":{let e=l();return u(e.name),u(e.content),await this.memory.set(e),null}case"deleteMemory":return await this.memory.delete(r()),null;default:throw Error(`Unsupported business operation: ${e}`)}}}function c(e){if(!e||"object"!=typeof e||Array.isArray(e))throw Error("Object required");return e}function u(e){if("string"!=typeof e||!e.trim()||e.length>32768)throw Error("Non-empty string required");return e}function f(){return i??=new p((0,l.kO)())}},785:(e,t,r)=>{r.d(t,{ME:()=>o,kO:()=>n,sr:()=>l});var i=r(9411);let s=function(){let e=process.argv[1];if(e){let t=(0,i.dirname)((0,i.resolve)(e)),r=`${i.sep}node_modules${i.sep}.bin`;return t.endsWith(r)?(0,i.resolve)(t,"..",".."):t}return(0,i.resolve)(process.cwd())}();function a(e=process.env,t=s){return(0,i.resolve)(e.AGENT_DATA_DIR?.trim()||t)}function n(){return a()}function o(e=process.env,t=a(e)){let r=e.AGENT_LOG_DIR?.trim();if(r)return(0,i.resolve)(r);let s=e.AGENTROAM_DATA_DIR?.trim();return s?(0,i.resolve)(s,"logs"):(0,i.join)(t,".agent-data","logs")}function l(){return function(e=process.env,t=s){return(0,i.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,n())}},1982:(e,t,r)=>{let i;r.d(t,{dp:()=>c,kg:()=>l});var s=r(1322),a=r(785),n=r(6005);let o="__agentroam_stored_secret__";class l extends Error{constructor(e,t=400){super(e),this.status=t}}class d{constructor(e,t=process.env){this.baseDir=e,this.store=new s.nAl(e),null===this.store.get("sharedSettingsInitialized")&&(0,s.N8n)(e).db.transaction(()=>{if(!this.store.get("profiles")&&!this.store.get("apiKey")&&t.AGENT_API_KEY){let e={id:"server-default",name:"服务端默认",provider:t.AGENT_MODEL_PROVIDER||"openai",modelId:t.AGENT_MODEL_ID||"gpt-4o",apiKey:t.AGENT_API_KEY,baseUrl:t.AGENT_BASE_URL||""};this.store.saveAll({...this.store.getAll(),profiles:[e],activeProfileId:e.id,modelProvider:e.provider,modelId:e.modelId,apiKey:e.apiKey,baseUrl:e.baseUrl,isConfigured:!0})}this.store.set("sharedSettingsInitialized","1")})()}read(){let e=[];try{e=JSON.parse(this.store.get("activeAgentIds")||"[]")}catch{}return{...this.store.getAll(),activeAgentIds:e,revision:Number(this.store.get("sharedSettingsRevision")||0)}}publicView(){let e=this.read();return{...e,settingsSpaceId:(0,n.createHash)("sha256").update(this.baseDir).digest("hex").slice(0,24),apiKey:e.apiKey?o:"",profiles:e.profiles.map(e=>({...e,apiKey:e.apiKey?o:""}))}}save(e){return(0,s.N8n)(this.baseDir).db.transaction(()=>{let t=this.read();if(void 0!==e.revision&&e.revision!==t.revision)throw new l("设置已被另一端修改,请重新加载后保存",409);let r={...t};for(let t of["modelProvider","modelId","baseUrl","workingDirectory","activeProfileId"])if(void 0!==e[t]){if("string"!=typeof e[t])throw new l(`${t} 必须是字符串`);r[t]=e[t]}for(let[t,i,s]of[["maxIterations",1,50],["contextWindow",8,2e3]])if(void 0!==e[t]){if("number"!=typeof e[t]||!Number.isFinite(e[t])||e[t]<i||e[t]>s)throw new l(`${t} 超出范围`);r[t]=e[t]}if(void 0!==e.reasoningEffort){if(!["off","low","medium","high"].includes(String(e.reasoningEffort)))throw new l("reasoningEffort 无效");r.reasoningEffort=e.reasoningEffort}if(void 0!==e.apiKey&&(r.apiKey=p(e.apiKey,t.apiKey)),void 0!==e.profiles){if(!Array.isArray(e.profiles)||e.profiles.length>100)throw new l("profiles 必须是数组");let i=new Set;r.profiles=e.profiles.map(e=>{if(!e||"object"!=typeof e)throw new l("profile 无效");for(let t of["id","name","provider","modelId","baseUrl"])if("string"!=typeof e[t])throw new l(`profile.${t} 无效`);if(!e.id||i.has(e.id))throw new l("profile.id 重复或为空");if(i.add(e.id),!["openai","anthropic","deepseek","aihub"].includes(e.provider))throw new l("不支持的模型提供方");return{id:e.id,name:e.name,provider:e.provider,modelId:e.modelId,baseUrl:e.baseUrl,apiKey:p(e.apiKey,t.profiles.find(t=>t.id===e.id)?.apiKey||"")}})}let i=r.profiles.find(e=>e.id===r.activeProfileId);if(r.activeProfileId&&!i)throw new l("找不到当前配置档案");if(i&&Object.assign(r,{modelProvider:i.provider,modelId:i.modelId,apiKey:i.apiKey,baseUrl:i.baseUrl}),void 0!==e.activeAgentIds){if(!Array.isArray(e.activeAgentIds)||!e.activeAgentIds.every(e=>"string"==typeof e))throw new l("activeAgentIds 无效");r.activeAgentIds=[...new Set(e.activeAgentIds)]}return r.isConfigured="aihub"===r.modelProvider?!!r.modelId:!!(r.apiKey&&r.modelId),this.store.saveAll(r),this.store.set("activeAgentIds",JSON.stringify(r.activeAgentIds)),this.store.set("sharedSettingsRevision",String(t.revision+1)),this.publicView()})()}}function p(e,t){if(void 0===e||""===e||e===o)return t;if("string"!=typeof e||e.length>16384)throw new l("apiKey 无效");return e}function c(){return i??=new d((0,a.kO)())}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[8375,6703,1322],()=>r(9837));module.exports=i})();
1
+ "use strict";(()=>{var e={};e.id=2210,e.ids=[2210],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},9801:e=>{e.exports=require("os")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},2033:e=>{e.exports=require("node:module")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},1041:e=>{e.exports=require("node:url")},2993:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>m,patchFetch:()=>g,requestAsyncStorage:()=>u,routeModule:()=>c,serverHooks:()=>h,staticGenerationAsyncStorage:()=>f});var i={};r.r(i),r.d(i,{POST:()=>p});var s=r(7786),a=r(5042),n=r(2184),o=r(1890),l=r(1322),d=r(4621);async function p(e){try{let t=await e.json();if(!t.id||!t.command)return o.NextResponse.json({error:"id and command are required"},{status:400});let r=new l.KSK;try{await r.connectServer(t);let e=await r.discoverAllTools();return await (0,d.i)().mcp.save(t),await (0,d.i)().mcp.setEnabled(t.id,!0),o.NextResponse.json({status:"connected",tools:Object.fromEntries(e)})}finally{await r.disconnectServer(t.id)}}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Connection failed"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/mcp/connect/route",pathname:"/api/mcp/connect",filename:"route",bundlePath:"app/api/mcp/connect/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/mcp/connect/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:u,staticGenerationAsyncStorage:f,serverHooks:h}=c,m="/api/mcp/connect/route";function g(){return(0,n.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:f})}},4621:(e,t,r)=>{let i;r.d(t,{i:()=>f});var s=r(6005),a=r(612),n=r(9411),o=r(1322),l=r(785),d=r(1982);class p{constructor(e){this.agents=new o.Mx2(e),this.lsp=new o.E5B(e),this.mcp=new o.AMq(e),this.skills=new o.ejl(e),this.uploads=new o.M_x(e),this.memory=new o.iBh(e)}async call(e,t){let r=()=>u(t[0]),i=()=>{if("boolean"!=typeof t[1])throw Error("enabled must be boolean");return t[1]},l=()=>c(t[0]);switch(e){case"importLegacy":{let e=l(),t={profiles:0,agents:0,lsp:0,preserved:0},r=(0,d.dp)().publicView(),i=[...r.profiles];if(Array.isArray(e.profiles)){for(let r of e.profiles)if(r&&"object"==typeof r&&"string"==typeof r.id&&"managed"!==r.apiKey){if(i.some(e=>e.id===r.id)){t.preserved++;continue}i.push(r),t.profiles++}}if(t.profiles&&(0,d.dp)().save({profiles:i,activeProfileId:r.activeProfileId||i[0]?.id||"",revision:r.revision}),Array.isArray(e.agents))for(let r of e.agents){let e=c(r),i=u(e.id);if(await this.agents.get(i)){t.preserved++;continue}await this.agents.create(e),t.agents++}if(Array.isArray(e.lsp))for(let r of e.lsp){let e=c(r),i=u(e.id);if(await this.lsp.get(i)){t.preserved++;continue}await this.lsp.save(e),t.lsp++}return t}case"mcpList":return this.mcp.listAll();case"mcpSave":{let e=l();return u(e.id),u(e.name),await this.mcp.save(e),!1===e.enabled&&await this.mcp.setEnabled(String(e.id),!1),null}case"mcpDelete":return await this.mcp.delete(r()),null;case"mcpSetEnabled":return await this.mcp.setEnabled(r(),i()),null;case"mcpProbe":{let e=new o.KSK,t=l();u(t.id);try{let r=await e.connectServer(t);return(await r.listTools()).map(({name:e,description:t})=>({name:e,description:t}))}finally{await e.disconnectServer(t.id)}}case"listSkills":{let e=await this.skills.listAll(),t=new Map((await new o.N78().loadAll((0,d.dp)().read().workingDirectory)).map(e=>[e.name,{...e,enabled:!0}]));for(let r of e)t.set(r.name,{...t.get(r.name),...r,enabled:!1!==r.enabled});return[...t.values()]}case"saveSkill":{let e=l();return u(e.name),await this.skills.save({description:"",triggers:[],prompt:"",filePath:"",source:"custom",...e}),null}case"deleteSkill":return await this.skills.delete(r()),null;case"setSkillEnabled":{let e=r(),t=i();if(!await this.skills.get(e)){let t=(await new o.N78().loadAll((0,d.dp)().read().workingDirectory)).find(t=>t.name===e);if(!t)throw Error("Skill not found");await this.skills.save(await new o.N78().loadFromFile(t.filePath))}return await this.skills.setEnabled(e,t),null}case"importSkill":{let e=await new o.N78().installSkill(r(),(0,n.join)((0,a.homedir)(),".agent","skills"));return await this.skills.save(await new o.N78().loadFromFile(e.filePath)),e}case"listAgentDefs":{let e=(0,d.dp)().read().activeAgentIds;return(await this.agents.list()).map(t=>({...t,isActive:e.includes(t.id)}))}case"getAgentDef":return this.agents.get(r());case"createAgentDef":{let e=l(),t=new Date().toISOString();return this.agents.create({name:"新智能体",description:"",systemPrompt:"",contextPlaceholders:[],capabilities:{profileId:"",enabledTools:[],enabledSkills:[],enabledMCPServers:[]},maxIterations:10,isDefault:!1,...e,id:(0,s.randomUUID)(),created:t,updated:t})}case"updateAgentDef":return this.agents.update(r(),c(t[1]));case"deleteAgentDef":return await this.agents.delete(r()),(0,d.dp)().save({activeAgentIds:(0,d.dp)().read().activeAgentIds.filter(e=>e!==r())});case"setActiveAgentDef":{if(!await this.agents.get(r()))throw Error("Agent not found");let e=(0,d.dp)().read().activeAgentIds;return(0,d.dp)().save({activeAgentIds:e.includes(r())?e.filter(e=>e!==r()):[...e,r()]})}case"lspList":return this.lsp.listAll();case"lspSave":{let e=l();return u(e.name),u(e.command),await this.lsp.save({id:(0,s.randomUUID)(),enabled:!0,...e}),null}case"lspDelete":return await this.lsp.delete(r()),null;case"lspSetEnabled":return await this.lsp.setEnabled(r(),i()),null;case"listUploads":return this.uploads.list();case"getUpload":return this.uploads.get(r());case"saveUpload":{let e=l();return u(e.id),await this.uploads.save(e),null}case"deleteUpload":return await this.uploads.delete(r()),null;case"listMemories":return this.memory.list();case"getMemory":return this.memory.get(r());case"searchMemories":return this.memory.search(r());case"setMemory":{let e=l();return u(e.name),u(e.content),await this.memory.set(e),null}case"deleteMemory":return await this.memory.delete(r()),null;default:throw Error(`Unsupported business operation: ${e}`)}}}function c(e){if(!e||"object"!=typeof e||Array.isArray(e))throw Error("Object required");return e}function u(e){if("string"!=typeof e||!e.trim()||e.length>32768)throw Error("Non-empty string required");return e}function f(){return i??=new p((0,l.kO)())}},785:(e,t,r)=>{r.d(t,{ME:()=>o,kO:()=>n,sr:()=>l});var i=r(9411);let s=function(){let e=process.argv[1];if(e){let t=(0,i.dirname)((0,i.resolve)(e)),r=`${i.sep}node_modules${i.sep}.bin`;return t.endsWith(r)?(0,i.resolve)(t,"..",".."):t}return(0,i.resolve)(process.cwd())}();function a(e=process.env,t=s){return(0,i.resolve)(e.AGENT_DATA_DIR?.trim()||t)}function n(){return a()}function o(e=process.env,t=a(e)){let r=e.AGENT_LOG_DIR?.trim();if(r)return(0,i.resolve)(r);let s=e.AGENTROAM_DATA_DIR?.trim();return s?(0,i.resolve)(s,"logs"):(0,i.join)(t,".agent-data","logs")}function l(){return function(e=process.env,t=s){return(0,i.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,n())}},1982:(e,t,r)=>{let i;r.d(t,{dp:()=>c,kg:()=>l});var s=r(1322),a=r(785),n=r(6005);let o="__agentroam_stored_secret__";class l extends Error{constructor(e,t=400){super(e),this.status=t}}class d{constructor(e,t=process.env){this.baseDir=e,this.store=new s.nAl(e),null===this.store.get("sharedSettingsInitialized")&&(0,s.N8n)(e).db.transaction(()=>{if(!this.store.get("profiles")&&!this.store.get("apiKey")&&t.AGENT_API_KEY){let e={id:"server-default",name:"服务端默认",provider:t.AGENT_MODEL_PROVIDER||"openai",modelId:t.AGENT_MODEL_ID||"gpt-4o",apiKey:t.AGENT_API_KEY,baseUrl:t.AGENT_BASE_URL||""};this.store.saveAll({...this.store.getAll(),profiles:[e],activeProfileId:e.id,modelProvider:e.provider,modelId:e.modelId,apiKey:e.apiKey,baseUrl:e.baseUrl,isConfigured:!0})}this.store.set("sharedSettingsInitialized","1")})()}read(){let e=[];try{e=JSON.parse(this.store.get("activeAgentIds")||"[]")}catch{}return{...this.store.getAll(),activeAgentIds:e,revision:Number(this.store.get("sharedSettingsRevision")||0)}}publicView(){let e=this.read();return{...e,settingsSpaceId:(0,n.createHash)("sha256").update(this.baseDir).digest("hex").slice(0,24),apiKey:e.apiKey?o:"",profiles:e.profiles.map(e=>({...e,apiKey:e.apiKey?o:""}))}}save(e){return(0,s.N8n)(this.baseDir).db.transaction(()=>{let t=this.read();if(void 0!==e.revision&&e.revision!==t.revision)throw new l("设置已被另一端修改,请重新加载后保存",409);let r={...t};for(let t of["modelProvider","modelId","baseUrl","workingDirectory","activeProfileId"])if(void 0!==e[t]){if("string"!=typeof e[t])throw new l(`${t} 必须是字符串`);r[t]=e[t]}for(let[t,i,s]of[["maxIterations",1,50],["contextWindow",8,2e3]])if(void 0!==e[t]){if("number"!=typeof e[t]||!Number.isFinite(e[t])||e[t]<i||e[t]>s)throw new l(`${t} 超出范围`);r[t]=e[t]}if(void 0!==e.reasoningEffort){if(!["off","low","medium","high"].includes(String(e.reasoningEffort)))throw new l("reasoningEffort 无效");r.reasoningEffort=e.reasoningEffort}if(void 0!==e.apiKey&&(r.apiKey=p(e.apiKey,t.apiKey)),void 0!==e.profiles){if(!Array.isArray(e.profiles)||e.profiles.length>100)throw new l("profiles 必须是数组");let i=new Set;r.profiles=e.profiles.map(e=>{if(!e||"object"!=typeof e)throw new l("profile 无效");for(let t of["id","name","provider","modelId","baseUrl"])if("string"!=typeof e[t])throw new l(`profile.${t} 无效`);if(!e.id||i.has(e.id))throw new l("profile.id 重复或为空");if(i.add(e.id),!["openai","anthropic","deepseek","aihub"].includes(e.provider))throw new l("不支持的模型提供方");return{id:e.id,name:e.name,provider:e.provider,modelId:e.modelId,baseUrl:e.baseUrl,apiKey:p(e.apiKey,t.profiles.find(t=>t.id===e.id)?.apiKey||"")}})}let i=r.profiles.find(e=>e.id===r.activeProfileId);if(r.activeProfileId&&!i)throw new l("找不到当前配置档案");if(i&&Object.assign(r,{modelProvider:i.provider,modelId:i.modelId,apiKey:i.apiKey,baseUrl:i.baseUrl}),void 0!==e.activeAgentIds){if(!Array.isArray(e.activeAgentIds)||!e.activeAgentIds.every(e=>"string"==typeof e))throw new l("activeAgentIds 无效");r.activeAgentIds=[...new Set(e.activeAgentIds)]}return r.isConfigured="aihub"===r.modelProvider?!!r.modelId:!!(r.apiKey&&r.modelId),this.store.saveAll(r),this.store.set("activeAgentIds",JSON.stringify(r.activeAgentIds)),this.store.set("sharedSettingsRevision",String(t.revision+1)),this.publicView()})()}}function p(e,t){if(void 0===e||""===e||e===o)return t;if("string"!=typeof e||e.length>16384)throw new l("apiKey 无效");return e}function c(){return i??=new d((0,a.kO)())}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),i=t.X(0,[8375,6703,1322],()=>r(2993));module.exports=i})();