agentroam-runtime-win32-x64 0.2.0-preview.18 → 0.2.0-preview.21

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 (149) hide show
  1. package/manifest.json +1 -1
  2. package/package.json +15 -5
  3. package/runtime/.next/BUILD_ID +1 -1
  4. package/runtime/.next/app-build-manifest.json +12 -5
  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 +1 -1
  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/mcp/connect/route.js +1 -1
  27. package/runtime/.next/server/app/api/mcp/disconnect/route.js +1 -1
  28. package/runtime/.next/server/app/api/mcp/servers/route.js +1 -1
  29. package/runtime/.next/server/app/api/memory/[key]/route.js +1 -1
  30. package/runtime/.next/server/app/api/memory/route.js +1 -1
  31. package/runtime/.next/server/app/api/plugins/load/route.js +1 -1
  32. package/runtime/.next/server/app/api/projects/[id]/route.js +1 -1
  33. package/runtime/.next/server/app/api/projects/check/route.js +1 -1
  34. package/runtime/.next/server/app/api/projects/directories/route.js +1 -1
  35. package/runtime/.next/server/app/api/projects/roots/route.js +1 -1
  36. package/runtime/.next/server/app/api/projects/route.js +1 -1
  37. package/runtime/.next/server/app/api/remote-tools/register/route.js +1 -1
  38. package/runtime/.next/server/app/api/sessions/[id]/changes/route.js +2 -2
  39. package/runtime/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
  40. package/runtime/.next/server/app/api/sessions/[id]/goals/route.js +1 -1
  41. package/runtime/.next/server/app/api/sessions/[id]/handoff/route.js +1 -1
  42. package/runtime/.next/server/app/api/sessions/[id]/query-index/route.js +1 -1
  43. package/runtime/.next/server/app/api/sessions/[id]/release/route.js +1 -1
  44. package/runtime/.next/server/app/api/sessions/[id]/route.js +1 -1
  45. package/runtime/.next/server/app/api/sessions/[id]/tool-result/route.js +1 -1
  46. package/runtime/.next/server/app/api/sessions/route.js +1 -1
  47. package/runtime/.next/server/app/api/settings/route.js +1 -1
  48. package/runtime/.next/server/app/api/skills/route.js +1 -1
  49. package/runtime/.next/server/app/api/tools/route.js +1 -1
  50. package/runtime/.next/server/app/api/update/check/route.js +1 -1
  51. package/runtime/.next/server/app/api/update/install/route.js +1 -1
  52. package/runtime/.next/server/app/api/update/status/route.js +1 -1
  53. package/runtime/.next/server/app/api/web-auth/login/route.js +1 -1
  54. package/runtime/.next/server/app/api/web-auth/logout/route.js +1 -1
  55. package/runtime/.next/server/app/api/web-auth/revoke-all/route.js +1 -1
  56. package/runtime/.next/server/app/api/web-auth/setup/route.js +1 -1
  57. package/runtime/.next/server/app/api/web-auth/status/route.js +1 -1
  58. package/runtime/.next/server/app/api/web-console/bootstrap/route.js +1 -1
  59. package/runtime/.next/server/app/api/web-console/device-state/route.js +1 -1
  60. package/runtime/.next/server/app/api/web-console/history/route.js +1 -1
  61. package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
  62. package/runtime/.next/server/app/web/page.js +2 -2
  63. package/runtime/.next/server/app/web/page_client-reference-manifest.js +1 -1
  64. package/runtime/.next/server/app/web.html +1 -1
  65. package/runtime/.next/server/app/web.rsc +5 -4
  66. package/runtime/.next/server/app-paths-manifest.json +21 -21
  67. package/runtime/.next/server/chunks/1322.js +1 -1
  68. package/runtime/.next/server/chunks/5303.js +1 -1
  69. package/runtime/.next/server/middleware-build-manifest.js +1 -1
  70. package/runtime/.next/server/pages/404.html +1 -1
  71. package/runtime/.next/server/pages/500.html +1 -1
  72. package/runtime/.next/server/pages-manifest.json +1 -1
  73. package/runtime/.next/server/server-reference-manifest.json +1 -1
  74. package/runtime/.next/static/chunks/184-af5bc14575fc8ebd.js +1 -0
  75. package/runtime/.next/static/chunks/app/web/error-9b5f82c29dc27335.js +1 -0
  76. package/runtime/.next/static/chunks/app/web/page-16895961b998f8df.js +1 -0
  77. package/runtime/.next/static/chunks/main-app-e3fd18ce9c4c0d03.js +1 -0
  78. package/runtime/lib/remote-control/remote-authorization.mjs +10 -1
  79. package/runtime/public/pwa/install.js +13 -22
  80. package/runtime/webapp/dist/assets/{App-Cw8L8wC7.js → App-Cso_5v1O.js} +88 -88
  81. package/runtime/webapp/dist/assets/{abnfDiagram-VCTEODGH-Bg_eN6Uv.js → abnfDiagram-VCTEODGH-BNxk5qEZ.js} +1 -1
  82. package/runtime/webapp/dist/assets/{arc-D7EZUTYf.js → arc-7MQbjMvc.js} +1 -1
  83. package/runtime/webapp/dist/assets/{architectureDiagram-5GKGNRK7-CojKcKSu.js → architectureDiagram-5GKGNRK7-Dhg4Rz1D.js} +1 -1
  84. package/runtime/webapp/dist/assets/{blockDiagram-I7D4REHJ-CWvJsOF0.js → blockDiagram-I7D4REHJ-DeJHr92S.js} +1 -1
  85. package/runtime/webapp/dist/assets/{c4Diagram-7LVT6UL2-nV-pwRr3.js → c4Diagram-7LVT6UL2-RA8xRbEK.js} +1 -1
  86. package/runtime/webapp/dist/assets/channel-AsHr5ZE0.js +1 -0
  87. package/runtime/webapp/dist/assets/{chunk-2Q5K7J3B-CQMSdvan.js → chunk-2Q5K7J3B-CzoEDy2v.js} +1 -1
  88. package/runtime/webapp/dist/assets/{chunk-5VM5RSS4-CyPwsJdN.js → chunk-5VM5RSS4-IasmnKPT.js} +1 -1
  89. package/runtime/webapp/dist/assets/{chunk-F27PBJKO-BueUBSMW.js → chunk-F27PBJKO-ClQmWB2a.js} +1 -1
  90. package/runtime/webapp/dist/assets/{chunk-IMKFNOWR-C2nlrSd6.js → chunk-IMKFNOWR-BeWBx5Wn.js} +1 -1
  91. package/runtime/webapp/dist/assets/{chunk-JWPE2WC7-DoizkjHx.js → chunk-JWPE2WC7-TcEEZ4Dp.js} +1 -1
  92. package/runtime/webapp/dist/assets/{chunk-POPQ4Y6H-wV3SsdPC.js → chunk-POPQ4Y6H-DuWXzzSb.js} +1 -1
  93. package/runtime/webapp/dist/assets/{chunk-SVP7TREG-BTKM6mUi.js → chunk-SVP7TREG-D2X9Pa1W.js} +1 -1
  94. package/runtime/webapp/dist/assets/{chunk-TICWLB2K-BVyu_n-l.js → chunk-TICWLB2K-D_-XYQ_R.js} +1 -1
  95. package/runtime/webapp/dist/assets/{chunk-XXDRQBXY-BxBcrq_G.js → chunk-XXDRQBXY-B2mHmyk9.js} +1 -1
  96. package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-BZj1pbnq.js +1 -0
  97. package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-BZj1pbnq.js +1 -0
  98. package/runtime/webapp/dist/assets/{cose-bilkent-JH36ORCC-CmSWdE8s.js → cose-bilkent-JH36ORCC-OmMALi3i.js} +1 -1
  99. package/runtime/webapp/dist/assets/{cynefin-OW5HDTMX-4UYNDbpH.js → cynefin-OW5HDTMX-BVhxjnGZ.js} +1 -1
  100. package/runtime/webapp/dist/assets/{cynefinDiagram-5FMLGOSQ-DWPfEH4m.js → cynefinDiagram-5FMLGOSQ-8EafeZWa.js} +1 -1
  101. package/runtime/webapp/dist/assets/{dagre-GXQ25YYZ-BnOO9dS8.js → dagre-GXQ25YYZ-BlMjveyN.js} +1 -1
  102. package/runtime/webapp/dist/assets/{diagram-S7CK7UJ4-IZGwV0zi.js → diagram-S7CK7UJ4-BTgDeYAz.js} +1 -1
  103. package/runtime/webapp/dist/assets/{diagram-UQ7AKVKN-wjm8SGpf.js → diagram-UQ7AKVKN-9m-QUpEs.js} +1 -1
  104. package/runtime/webapp/dist/assets/{diagram-VSXAHHWV-A736veTs.js → diagram-VSXAHHWV-BYWenf8W.js} +1 -1
  105. package/runtime/webapp/dist/assets/{diagram-VX7I27RA-ClwQvx5m.js → diagram-VX7I27RA-DQ-PRQyX.js} +1 -1
  106. package/runtime/webapp/dist/assets/{diagram-Z3DM3KII-D0w23tWA.js → diagram-Z3DM3KII-BFCpyvaL.js} +1 -1
  107. package/runtime/webapp/dist/assets/{ebnfDiagram-PWID7BFC-C8N7udLX.js → ebnfDiagram-PWID7BFC-Ds9oV_wz.js} +1 -1
  108. package/runtime/webapp/dist/assets/{erDiagram-RLTQ6QDP-BC_WrTjy.js → erDiagram-RLTQ6QDP-ncaaStop.js} +1 -1
  109. package/runtime/webapp/dist/assets/{flowDiagram-HODETNUW-DO2Qz6ib.js → flowDiagram-HODETNUW-wL7U3M2L.js} +1 -1
  110. package/runtime/webapp/dist/assets/{ganttDiagram-EL5Y4UJY-B7HvpfYu.js → ganttDiagram-EL5Y4UJY-CVZIk8qz.js} +1 -1
  111. package/runtime/webapp/dist/assets/{gitGraphDiagram-WWUBYQGX-BICChxf4.js → gitGraphDiagram-WWUBYQGX-CGjtUEFY.js} +1 -1
  112. package/runtime/webapp/dist/assets/{index-L45sK1jq.js → index-CixxJ3A7.js} +10 -10
  113. package/runtime/webapp/dist/assets/{infoDiagram-27XIBGKW-8l5101Lb.js → infoDiagram-27XIBGKW-BqTzY6Bv.js} +1 -1
  114. package/runtime/webapp/dist/assets/{ishikawaDiagram-5VMMS53U-D3lFwKs2.js → ishikawaDiagram-5VMMS53U-9AARy1zU.js} +1 -1
  115. package/runtime/webapp/dist/assets/{journeyDiagram-3NMN7TZE-BTT5ioCW.js → journeyDiagram-3NMN7TZE-D3w-levY.js} +1 -1
  116. package/runtime/webapp/dist/assets/{kanban-definition-UXKFOSKX-BX0zN23Y.js → kanban-definition-UXKFOSKX-CNvdBbcg.js} +1 -1
  117. package/runtime/webapp/dist/assets/{layout-skaxD18E.js → layout-l0aDluv6.js} +1 -1
  118. package/runtime/webapp/dist/assets/{linear-AqiGk0aW.js → linear-BlLgYv8s.js} +1 -1
  119. package/runtime/webapp/dist/assets/{mermaid.core-ObuekRdQ.js → mermaid.core-UNYsT27K.js} +5 -5
  120. package/runtime/webapp/dist/assets/{mindmap-definition-YA3MSWOX-BeCFHs0Q.js → mindmap-definition-YA3MSWOX-BiVsBQL9.js} +1 -1
  121. package/runtime/webapp/dist/assets/{pegDiagram-XKGWAZYB-BdcgW_1f.js → pegDiagram-XKGWAZYB-kr19ZOFB.js} +1 -1
  122. package/runtime/webapp/dist/assets/{pieDiagram-E7YTZNPT-DB5hvWc4.js → pieDiagram-E7YTZNPT-BKWCGLlM.js} +1 -1
  123. package/runtime/webapp/dist/assets/{quadrantDiagram-AXDQQJYC-Uoy-iP5j.js → quadrantDiagram-AXDQQJYC-B1oUT2Jo.js} +1 -1
  124. package/runtime/webapp/dist/assets/{railroadDiagram-O6MQD6OU-B-NE_ork.js → railroadDiagram-O6MQD6OU-HSe2vXxQ.js} +1 -1
  125. package/runtime/webapp/dist/assets/{requirementDiagram-BXWQKSXE-GNATcJFG.js → requirementDiagram-BXWQKSXE-Cy8adj_C.js} +1 -1
  126. package/runtime/webapp/dist/assets/{sankeyDiagram-P5KCCOFB-CGP4i5_d.js → sankeyDiagram-P5KCCOFB-tnBEmP5l.js} +1 -1
  127. package/runtime/webapp/dist/assets/{sequenceDiagram-WJ2MYXX4-CPaA2NKl.js → sequenceDiagram-WJ2MYXX4-DvOTKmyz.js} +1 -1
  128. package/runtime/webapp/dist/assets/{sizeCapture-INFHLROL-Dq6l7UUp.js → sizeCapture-INFHLROL-Da7A6hqr.js} +1 -1
  129. package/runtime/webapp/dist/assets/{stateDiagram-D77RDMKH-DdYExWyT.js → stateDiagram-D77RDMKH-BU17k_M-.js} +1 -1
  130. package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-BROH63Ny.js +1 -0
  131. package/runtime/webapp/dist/assets/{swimlanes-42K2YHIH-B1INdUc5.js → swimlanes-42K2YHIH-DZZPRxnW.js} +1 -1
  132. package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-B4lr9wuD.js +8 -0
  133. package/runtime/webapp/dist/assets/{timeline-definition-24CTP7MA-BSbIV3mK.js → timeline-definition-24CTP7MA-26Xh93Et.js} +1 -1
  134. package/runtime/webapp/dist/assets/{vennDiagram-4TSXK5OY-TUjGvs6U.js → vennDiagram-4TSXK5OY-Q4-BkJH1.js} +1 -1
  135. package/runtime/webapp/dist/assets/{wardleyDiagram-VM6X3IG4-uLCXlSnY.js → wardleyDiagram-VM6X3IG4-DlUP-PlT.js} +1 -1
  136. package/runtime/webapp/dist/assets/{web-D1VZM26_.js → web-DWyw2SAG.js} +1 -1
  137. package/runtime/webapp/dist/assets/{web-Bco3fxtw.js → web-ueoOhAeL.js} +1 -1
  138. package/runtime/webapp/dist/assets/{xychartDiagram-S5SC5T6Z-DSMuNEjI.js → xychartDiagram-S5SC5T6Z-BQZRjKtR.js} +1 -1
  139. package/runtime/webapp/dist/index.html +1 -1
  140. package/runtime/.next/static/chunks/352-036cf2a50d494a80.js +0 -1
  141. package/runtime/.next/static/chunks/app/web/page-2a6915891068e1e9.js +0 -1
  142. package/runtime/.next/static/chunks/main-app-850b97b5519f3c0b.js +0 -1
  143. package/runtime/webapp/dist/assets/channel-LcjIawtf.js +0 -1
  144. package/runtime/webapp/dist/assets/classDiagram-ZZMXUADV-BZN1BdvJ.js +0 -1
  145. package/runtime/webapp/dist/assets/classDiagram-v2-VYDZK3BY-BZN1BdvJ.js +0 -1
  146. package/runtime/webapp/dist/assets/stateDiagram-v2-MP3YSRHH-QqTtFkaB.js +0 -1
  147. package/runtime/webapp/dist/assets/swimlanesDiagram-VR7AAH4N-IxMgdHeE.js +0 -8
  148. /package/runtime/.next/static/{g_vhm-FWXnuaGRgliyUYE → 6OR2fRy79-A-DrqiN3FNa}/_buildManifest.js +0 -0
  149. /package/runtime/.next/static/{g_vhm-FWXnuaGRgliyUYE → 6OR2fRy79-A-DrqiN3FNa}/_ssgManifest.js +0 -0
@@ -1,8 +1,8 @@
1
- "use strict";(()=>{var e={};e.id=8917,e.ids=[8917],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")},9752:(e,t,s)=>{s.a(e,async(e,i)=>{try{s.r(t),s.d(t,{originalPathname:()=>f,patchFetch:()=>l,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>u,staticGenerationAsyncStorage:()=>p});var r=s(7786),n=s(5042),a=s(2184),o=s(9146),h=e([o]);o=(h.then?(await h)():h)[0];let d=new r.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/changes/route",pathname:"/api/sessions/[id]/changes",filename:"route",bundlePath:"app/api/sessions/[id]/changes/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/sessions/[id]/changes/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:c,staticGenerationAsyncStorage:p,serverHooks:u}=d,f="/api/sessions/[id]/changes/route";function l(){return(0,a.patchFetch)({serverHooks:u,staticGenerationAsyncStorage:p})}i()}catch(e){i(e)}})},7786:(e,t,s)=>{e.exports=s(517)},9146:(e,t,s)=>{s.a(e,async(e,i)=>{try{s.r(t),s.d(t,{GET:()=>h,dynamic:()=>l,runtime:()=>d});var r=s(2362),n=s(2083),a=s(2147),o=e([n]);n=(o.then?(await o)():o)[0];let l="force-dynamic",d="nodejs",c=new TextEncoder;async function h(e,{params:t}){if(!(0,n.V_)(t.id))return(0,r.N)(e,t.id);try{let s=await (0,n.NL)().getSessionWatchPath(t.id);if(!s)return Response.json({error:"Native session transcript is unavailable"},{status:404});let i=()=>void 0,r=new ReadableStream({start(r){let n=!1,o=(0,a.L)().subscribe(t.id,s,e=>{n||r.enqueue(c.encode(`data: ${JSON.stringify(e)}
1
+ "use strict";(()=>{var e={};e.id=8917,e.ids=[8917],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")},9231:(e,t,s)=>{s.a(e,async(e,i)=>{try{s.r(t),s.d(t,{originalPathname:()=>f,patchFetch:()=>l,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>u,staticGenerationAsyncStorage:()=>p});var r=s(7786),n=s(5042),a=s(2184),o=s(9146),h=e([o]);o=(h.then?(await h)():h)[0];let d=new r.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/changes/route",pathname:"/api/sessions/[id]/changes",filename:"route",bundlePath:"app/api/sessions/[id]/changes/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/sessions/[id]/changes/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:c,staticGenerationAsyncStorage:p,serverHooks:u}=d,f="/api/sessions/[id]/changes/route";function l(){return(0,a.patchFetch)({serverHooks:u,staticGenerationAsyncStorage:p})}i()}catch(e){i(e)}})},7786:(e,t,s)=>{e.exports=s(517)},9146:(e,t,s)=>{s.a(e,async(e,i)=>{try{s.r(t),s.d(t,{GET:()=>h,dynamic:()=>l,runtime:()=>d});var r=s(2362),n=s(2083),a=s(2147),o=e([n]);n=(o.then?(await o)():o)[0];let l="force-dynamic",d="nodejs",c=new TextEncoder;async function h(e,{params:t}){if(!(0,n.V_)(t.id))return(0,r.N)(e,t.id);try{let s=await (0,n.NL)().getSessionWatchPath(t.id);if(!s)return Response.json({error:"Native session transcript is unavailable"},{status:404});let i=()=>void 0,r=new ReadableStream({start(r){let n=!1,o=(0,a.L)().subscribe(t.id,s,e=>{n||r.enqueue(c.encode(`data: ${JSON.stringify(e)}
2
2
 
3
3
  `))}),h=setInterval(()=>{n||r.enqueue(c.encode(": keep-alive\n\n"))},15e3);i=()=>{n||(n=!0,clearInterval(h),o(),e.signal.removeEventListener("abort",i))},e.signal.addEventListener("abort",i,{once:!0}),r.enqueue(c.encode(": connected\n\n"))},cancel(){i()}});return new Response(r,{headers:{"Cache-Control":"no-cache, no-transform",Connection:"keep-alive","Content-Type":"text/event-stream; charset=utf-8","X-Accel-Buffering":"no"}})}catch(e){return Response.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,n.WW)(e)})}}i()}catch(e){i(e)}})},2362:(e,t,s)=>{s.d(t,{N:()=>n});var i=s(1322),r=s(785);function n(e,t){let s=(0,i.N8n)((0,r.kO)()).db.prepare(`SELECT updated, status,
4
4
  (SELECT MAX(id) FROM events WHERE session_id = sessions.id) AS eventId,
5
5
  (SELECT MAX(id) FROM messages WHERE session_id = sessions.id) AS messageId
6
6
  FROM sessions WHERE id = ?`),n=JSON.stringify(s.get(t));if(void 0===n)return Response.json({error:"Session not found"},{status:404});let a=()=>{};return new Response(new ReadableStream({start(i){let r=!1,o=new TextEncoder,h=setInterval(()=>{if(!r)try{let e=JSON.stringify(s.get(t));e!==n?(n=e,i.enqueue(o.encode(`data: ${JSON.stringify({type:"session_history_changed",revision:Date.now()})}
7
7
 
8
- `))):i.enqueue(o.encode(": keep-alive\n\n"))}catch{a();try{i.close()}catch{}}},1e3);a=()=>{r||(r=!0,clearInterval(h),e.signal.removeEventListener("abort",a))},e.signal.addEventListener("abort",a,{once:!0}),e.signal.aborted?a():i.enqueue(o.encode(": connected\n\n"))},cancel(){a()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform","X-Accel-Buffering":"no"}})}},2147:(e,t,s)=>{s.d(t,{L:()=>eu});var i=s(5673),r=s(7561),n=s(3977),a=s(9411);let o=require("node:stream"),h={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},l={root:".",fileFilter:e=>!0,directoryFilter:e=>!0,type:h.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:256};Object.freeze(l);let d="READDIRP_RECURSIVE_ERROR",c=new Set(["ENOENT","EPERM","EACCES","ELOOP",d]),p=[h.DIR_TYPE,h.EVERYTHING_TYPE,h.FILE_DIR_TYPE,h.FILE_TYPE],u=new Set([h.DIR_TYPE,h.EVERYTHING_TYPE,h.FILE_DIR_TYPE]),f=new Set([h.EVERYTHING_TYPE,h.FILE_DIR_TYPE,h.FILE_TYPE]),_=e=>c.has(e.code),m="win32"===process.platform,w=e=>!0,g=e=>{if(void 0===e)return w;if("function"==typeof e)return e;if("string"==typeof e){let t=e.trim();return e=>e.basename===t}if(Array.isArray(e)){let t=e.map(e=>e.trim());return e=>t.some(t=>e.basename===t)}return w};class y extends o.Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;_relStart;constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark??l.highWaterMark});let t={...l,...e},s=t.root??l.root,i=t.type??l.type;this._fileFilter=g(t.fileFilter),this._directoryFilter=g(t.directoryFilter);let r=t.lstat?n.lstat:n.stat;m?this._stat=e=>r(e,{bigint:!0}):this._stat=r,this._maxDepth=null!=t.depth&&Number.isSafeInteger(t.depth)?t.depth:l.depth,this._wantsDir=u.has(i),this._wantsFile=f.has(i),this._wantsEverything=i===h.EVERYTHING_TYPE,this._root=(0,a.resolve)(s),this._relStart=this._root.endsWith(a.sep)?this._root.length:this._root.length+1,this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent};let o={path:this._root,depth:1};o.pending=this._exploreDir(this._root,1),this.parents=[o],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,s=t&&t.files;if(s&&s.length>0){let{path:i,depth:r}=t,n=s.splice(0,e).map(e=>this._formatEntry(e,i));for(let t of this._isDirent?n:await Promise.all(n)){if(!t)continue;if(this.destroyed)return;let s=this._getEntryType(t);"string"!=typeof s&&(s=await s),"directory"===s&&this._directoryFilter(t)?(r<=this._maxDepth&&this.parents.push({path:t.fullPath,depth:r+1}),this._wantsDir&&(this.push(t),e--)):("file"===s||this._includeAsFile(t))&&this._fileFilter(t)&&this._wantsFile&&(this.push(t),e--)}}else{let e=this.parents.pop();if(!e){this.push(null);break}let t=e.pending??this._exploreDir(e.path,e.depth),s=this.parents[this.parents.length-1];if(s&&!s.pending&&(s.pending=this._exploreDir(s.path,s.depth)),this.parent=await t,this.destroyed)return}}}catch(e){this.destroy(e)}finally{this.reading=!1}}}async _exploreDir(e,t){let s;try{s=await (0,n.readdir)(e,this._rdOptions)}catch(e){this._onError(e)}return{files:s,depth:t,path:e}}_formatEntry(e,t){let s=this._isDirent?e.name:e,i=(0,a.join)(t,s),r={path:i.slice(this._relStart),fullPath:i,basename:s};return this._isDirent?(r.dirent=e,r):this._stat(i).then(e=>(r.stats=e,r),e=>{this._onError(e)})}_onError(e){_(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}_getEntryType(e){if(!e||!(this._statsProp in e))return"";let t=e[this._statsProp];return t.isFile()?"file":t.isDirectory()?"directory":t.isSymbolicLink()?this._getSymlinkEntryType(e):""}async _getSymlinkEntryType(e){let t=e.fullPath;try{let e=await (0,n.realpath)(t),s=await (0,n.lstat)(e);if(s.isFile())return"file";if(s.isDirectory()){let s=e.length;if(t.startsWith(e)&&t[s]===a.sep){let s=Error(`Circular symlink detected: "${t}" points to "${e}"`);return s.code=d,this._onError(s),""}return"directory"}}catch(e){this._onError(e)}return""}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}}var v=s(612);let E=()=>{},b=process.platform,P="win32"===b,R="darwin"===b,D="linux"===b,x="freebsd"===b,I="OS400"===(0,v.type)(),T={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},k={lstat:n.lstat,stat:n.stat},A="listeners",S="errHandlers",W="rawEmitters",F=[A,S,W],C=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),N=e=>C.has(a.extname(e).slice(1).toLowerCase()),L=(e,t)=>{e instanceof Set?e.forEach(t):t(e)},M=(e,t,s)=>{let i=e[t];i instanceof Set||(e[t]=i=new Set([i])),i.add(s)},j=e=>t=>{let s=e[t];s instanceof Set?s.clear():delete e[t]},O=(e,t,s)=>{let i=e[t];i instanceof Set?i.delete(s):i===s&&delete e[t]},z=e=>e instanceof Set?0===e.size:!e,q=new Map;function H(e,t,s,i,n){try{return(0,r.watch)(e,{persistent:t.persistent},(t,i)=>{s(e),n(t,i,{watchedPath:e}),i&&e!==i&&Y(a.resolve(e,i),A,a.join(e,i))})}catch(e){i(e);return}}let Y=(e,t,s,i,r)=>{let n=q.get(e);n&&L(n[t],e=>{e(s,i,r)})},G=(e,t,s,i)=>{let r;let{listener:a,errHandler:o,rawEmitter:h}=i,l=q.get(t);if(!s.persistent){if(!(r=H(e,s,a,o,h)))return;return r.close.bind(r)}if(l)M(l,A,a),M(l,S,o),M(l,W,h);else{if(!(r=H(e,s,Y.bind(null,t,A),o,Y.bind(null,t,W))))return;r.on(T.ERROR,async s=>{let i=Y.bind(null,t,S);if(l&&(l.watcherUnusable=!0),P&&"EPERM"===s.code)try{let t=await (0,n.open)(e,"r");await t.close(),i(s)}catch(e){}else i(s)}),l={listeners:a,errHandlers:o,rawEmitters:h,watcher:r},q.set(t,l)}return()=>{O(l,A,a),O(l,S,o),O(l,W,h),z(l.listeners)&&(l.watcher.close(),q.delete(t),F.forEach(j(l)),l.watcher=void 0,Object.freeze(l))}},U=new Map,$=(e,t,s,i)=>{let{listener:n,rawEmitter:a}=i,o=U.get(t),h=o&&o.options;return h&&(h.persistent<s.persistent||h.interval>s.interval)&&((0,r.unwatchFile)(t),o=void 0),o?(M(o,A,n),M(o,W,a)):(o={listeners:n,rawEmitters:a,options:s,watcher:(0,r.watchFile)(t,s,(s,i)=>{L(o.rawEmitters,e=>{e(T.CHANGE,t,{curr:s,prev:i})});let r=s.mtimeMs;(s.size!==i.size||r>i.mtimeMs||0===r)&&L(o.listeners,t=>t(e,s))})},U.set(t,o)),()=>{O(o,A,n),O(o,W,a),z(o.listeners)&&(U.delete(t),(0,r.unwatchFile)(t),o.options=o.watcher=void 0,Object.freeze(o))}};class K{fsw;_boundHandleError;constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let s;let i=this.fsw.options,r=a.dirname(e),n=a.basename(e);this.fsw._getWatchedDir(r).add(n);let o=a.resolve(e),h={persistent:i.persistent};if(t||(t=E),i.usePolling){let r=i.interval!==i.binaryInterval;h.interval=r&&N(n)?i.binaryInterval:i.interval,s=$(e,o,h,{listener:t,rawEmitter:this.fsw._emitRaw})}else s=G(e,o,h,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return s}_handleFile(e,t,s){if(this.fsw.closed)return;let i=a.dirname(e),r=a.basename(e),o=this.fsw._getWatchedDir(i),h=t;if(o.has(r))return;let l=async(t,s)=>{if(this.fsw._throttle("watch",e,5)){if(s&&0!==s.mtimeMs){if(o.has(r)){let t=s.atimeMs,i=s.mtimeMs;(!t||t<=i||i!==h.mtimeMs)&&this.fsw._emit(T.CHANGE,e,s),h=s}}else try{let s=await (0,n.stat)(e);if(this.fsw.closed)return;let i=s.atimeMs,r=s.mtimeMs;if((!i||i<=r||r!==h.mtimeMs)&&this.fsw._emit(T.CHANGE,e,s),(R||D||x)&&h.ino!==s.ino){this.fsw._closeFile(t),h=s;let i=this._watchWithNodeFs(e,l);i&&this.fsw._addPathCloser(t,i)}else h=s}catch(e){this.fsw._remove(i,r)}}},d=this._watchWithNodeFs(e,l);if(!(s&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(T.ADD,e,0))return;this.fsw._emit(T.ADD,e,t)}return d}async _handleSymlink(e,t,s,i){if(this.fsw.closed)return;let r=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){let t;this.fsw._incrReadyCount();try{t=await (0,n.realpath)(s)}catch(e){return this.fsw._emitReady(),!0}if(this.fsw.closed)return;return a.has(i)?this.fsw._symlinkPaths.get(r)!==t&&(this.fsw._symlinkPaths.set(r,t),this.fsw._emit(T.CHANGE,s,e.stats)):(a.add(i),this.fsw._symlinkPaths.set(r,t),this.fsw._emit(T.ADD,s,e.stats)),this.fsw._emitReady(),!0}if(this.fsw._symlinkPaths.has(r))return!0;this.fsw._symlinkPaths.set(r,!0)}_handleRead(e,t,s,i,r,n,o){e=a.join(e,"");let h=i?`${e}:${i}`:e;if(!(o=this.fsw._throttle("readdir",h,1e3)))return;let l=this.fsw._getWatchedDir(s.path),d=new Set,c=this.fsw._readdirp(e,{fileFilter:e=>s.filterPath(e),directoryFilter:e=>s.filterDir(e)});if(c)return c.on("data",async o=>{if(this.fsw.closed){c=void 0;return}let h=o.path,p=a.join(e,h);if(d.add(h),!(o.stats.isSymbolicLink()&&await this._handleSymlink(o,e,p,h))){if(this.fsw.closed){c=void 0;return}h!==i&&(i||l.has(h))||(this.fsw._incrReadyCount(),p=a.join(r,a.relative(r,p)),this._addToNodeFs(p,t,s,n+1))}}).on(T.ERROR,this._boundHandleError),new Promise((t,a)=>{if(!c)return a();c.once("end",()=>{if(this.fsw.closed){c=void 0;return}let a=!!o&&o.clear();t(void 0),l.getChildren().filter(t=>t!==e&&!d.has(t)).forEach(t=>{this.fsw._remove(e,t)}),c=void 0,a&&this._handleRead(e,!1,s,i,r,n,o)})})}async _handleDir(e,t,s,i,r,n,o){let h,l;let d=this.fsw._getWatchedDir(a.dirname(e)),c=d.has(a.basename(e));s&&this.fsw.options.ignoreInitial||r||c||this.fsw._emit(T.ADD_DIR,e,t),d.add(a.basename(e)),this.fsw._getWatchedDir(e);let p=this.fsw.options.depth;if((null==p||i<=p)&&!this.fsw._symlinkPaths.has(o)){if(!r&&(await this._handleRead(e,s,n,r,e,i,h),this.fsw.closed))return;l=this._watchWithNodeFs(e,(t,s)=>{s&&0===s.mtimeMs||this._handleRead(t,!1,n,r,e,i,h)})}return l}async _addToNodeFs(e,t,s,i,r){let o=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return o(),!1;let h=this.fsw._getWatchHelpers(e);s&&(h.filterPath=e=>s.filterPath(e),h.filterDir=e=>s.filterDir(e));try{let s;let l=await k[h.statMethod](h.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(h.watchPath,l))return o(),!1;let d=this.fsw.options.followSymlinks;if(l.isDirectory()){let o=a.resolve(e),c=d?await (0,n.realpath)(e):e;if(this.fsw.closed||(s=await this._handleDir(h.watchPath,l,t,i,r,h,c),this.fsw.closed))return;o!==c&&void 0!==c&&this.fsw._symlinkPaths.set(o,c)}else if(l.isSymbolicLink()){let r=d?await (0,n.realpath)(e):e;if(this.fsw.closed)return;let o=a.dirname(h.watchPath);if(this.fsw._getWatchedDir(o).add(h.watchPath),this.fsw._emit(T.ADD,h.watchPath,l),s=await this._handleDir(o,l,t,i,e,h,r),this.fsw.closed)return;void 0!==r&&this.fsw._symlinkPaths.set(a.resolve(e),r)}else s=this._handleFile(h.watchPath,l,t);return o(),s&&this.fsw._addPathCloser(e,s),!1}catch(t){if(this.fsw._handleError(t))return o(),e}}}let V=/\\/g,X=/\/\//g,J=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,B=/^\.[/\\]/;function Q(e){return Array.isArray(e)?e:[e]}let Z=e=>"object"==typeof e&&null!==e&&!(e instanceof RegExp);function ee(e,t,s){let i=function(e){if("string"!=typeof e)throw Error("string expected");e=(e=a.normalize(e)).replace(/\\/g,"/");let t=!1;return e.startsWith("//")&&(t=!0),e=e.replace(X,"/"),t&&(e="/"+e),e}(t);for(let t=0;t<e.length;t++)if((0,e[t])(i,s))return!0;return!1}let et=e=>{let t=Q(e).flat();if(!t.every(e=>"string"==typeof e))throw TypeError(`Non-string provided as watch path: ${t}`);return t.map(ei)},es=e=>{let t=e.replace(V,"/"),s=!1;return t.startsWith("//")&&(s=!0),t=t.replace(X,"/"),s&&(t="/"+t),t},ei=e=>es(a.normalize(es(e))),er=(e="")=>t=>"string"==typeof t?ei(a.isAbsolute(t)?t:a.join(e,t)):t,en=(e,t)=>a.isAbsolute(e)?e:a.join(t,e),ea=Object.freeze(new Set);class eo{path;_removeWatcher;items;constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&"."!==e&&".."!==e&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let s=this.path;try{await (0,n.readdir)(s)}catch(e){this._removeWatcher&&this._removeWatcher(a.dirname(s),a.basename(s))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=E,this.items=ea,Object.freeze(this)}}class eh{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(e,t,s){this.fsw=s;let i=e;this.path=e=e.replace(B,""),this.watchPath=i,this.fullWatchPath=a.resolve(i),this.dirParts=[],this.dirParts.forEach(e=>{e.length>1&&e.pop()}),this.followSymlinks=t,this.statMethod=t?"stat":"lstat"}entryPath(e){return a.join(this.watchPath,a.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let s=this.entryPath(e);return this.fsw._isntIgnored(s,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}}class el extends i.EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,s={stabilityThreshold:2e3,pollInterval:100},i={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?Q(e.ignored):Q([]),awaitWriteFinish:!0===t?s:"object"==typeof t&&{...s,...t}};I&&(i.usePolling=!0),void 0===i.atomic&&(i.atomic=!i.usePolling);let r=process.env.CHOKIDAR_USEPOLLING;if(void 0!==r){let e=r.toLowerCase();"false"===e||"0"===e?i.usePolling=!1:"true"===e||"1"===e?i.usePolling=!0:i.usePolling=!!e}let n=process.env.CHOKIDAR_INTERVAL;n&&(i.interval=Number.parseInt(n,10));let a=0;this._emitReady=()=>{++a>=this._readyCount&&(this._emitReady=E,this._readyEmitted=!0,process.nextTick(()=>this.emit(T.READY)))},this._emitRaw=(...e)=>this.emit(T.RAW,...e),this._boundRemove=this._remove.bind(this),this.options=i,this._nodeFsHandler=new K(this),Object.freeze(i)}_addIgnoredPath(e){if(Z(e)){for(let t of this._ignoredPaths)if(Z(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),"string"==typeof e)for(let t of this._ignoredPaths)Z(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,s){let{cwd:i}=this.options;this.closed=!1,this._closePromise=void 0;let r=et(e);return i&&(r=r.map(e=>en(e,i))),r.forEach(e=>{this._removeIgnoredPath(e)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async e=>{let i=await this._nodeFsHandler._addToNodeFs(e,!s,void 0,0,t);return i&&this._emitReady(),i})).then(e=>{this.closed||e.forEach(e=>{e&&this.add(a.dirname(e),a.basename(t||e))})}),this}unwatch(e){if(this.closed)return this;let t=et(e),{cwd:s}=this.options;return t.forEach(e=>{a.isAbsolute(e)||this._closers.has(e)||(s&&(e=a.join(s,e)),e=a.resolve(e)),this._closePath(e),this._addIgnoredPath(e),this._watched.has(e)&&this._addIgnoredPath({path:e,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(t=>{let s=t();s instanceof Promise&&e.push(s)})),this._streams.forEach(e=>e.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(e=>e.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>void 0):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,s)=>{e[(this.options.cwd?a.relative(this.options.cwd,s):s)||"."]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==T.ERROR&&this.emit(T.ALL,e,...t)}async _emit(e,t,s){let i;if(this.closed)return;let r=this.options;P&&(t=a.normalize(t)),r.cwd&&(t=a.relative(r.cwd,t));let o=[t];null!=s&&o.push(s);let h=r.awaitWriteFinish;if(h&&(i=this._pendingWrites.get(t)))return i.lastChange=new Date,this;if(r.atomic){if(e===T.UNLINK)return this._pendingUnlinks.set(t,[e,...o]),setTimeout(()=>{this._pendingUnlinks.forEach((e,t)=>{this.emit(...e),this.emit(T.ALL,...e),this._pendingUnlinks.delete(t)})},"number"==typeof r.atomic?r.atomic:100),this;e===T.ADD&&this._pendingUnlinks.has(t)&&(e=T.CHANGE,this._pendingUnlinks.delete(t))}if(h&&(e===T.ADD||e===T.CHANGE)&&this._readyEmitted)return this._awaitWriteFinish(t,h.stabilityThreshold,e,(t,s)=>{t?(e=T.ERROR,o[0]=t,this.emitWithAll(e,o)):s&&(o.length>1?o[1]=s:o.push(s),this.emitWithAll(e,o))}),this;if(e===T.CHANGE&&!this._throttle(T.CHANGE,t,50))return this;if(r.alwaysStat&&void 0===s&&(e===T.ADD||e===T.ADD_DIR||e===T.CHANGE)){let e;let s=r.cwd?a.join(r.cwd,t):t;try{e=await (0,n.stat)(s)}catch(e){}if(!e||this.closed)return;o.push(e)}return this.emitWithAll(e,o),this}_handleError(e){let t=e&&e.code;return e&&"ENOENT"!==t&&"ENOTDIR"!==t&&(!this.options.ignorePermissionErrors||"EPERM"!==t&&"EACCES"!==t)&&this.emit(T.ERROR,e),e||this.closed}_throttle(e,t,s){let i;this._throttled.has(e)||this._throttled.set(e,new Map);let r=this._throttled.get(e);if(!r)throw Error("invalid throttle");let n=r.get(t);if(n)return n.count++,!1;let a=()=>{let e=r.get(t),s=e?e.count:0;return r.delete(t),clearTimeout(i),e&&clearTimeout(e.timeoutObject),s},o={timeoutObject:i=setTimeout(a,s),clear:a,count:0};return r.set(t,o),o}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,s,i){let n;let o=this.options.awaitWriteFinish;if("object"!=typeof o)return;let h=o.pollInterval,l=e;this.options.cwd&&!a.isAbsolute(e)&&(l=a.join(this.options.cwd,e));let d=new Date,c=this._pendingWrites;c.has(e)||(c.set(e,{lastChange:d,cancelWait:()=>(c.delete(e),clearTimeout(n),s)}),n=setTimeout(function s(a){(0,r.stat)(l,(r,o)=>{if(r||!c.has(e)){r&&"ENOENT"!==r.code&&i(r);return}let l=Number(new Date);a&&o.size!==a.size&&(c.get(e).lastChange=l),l-c.get(e).lastChange>=t?(c.delete(e),i(void 0,o)):n=setTimeout(s,h,o)})},h))}_isIgnored(e,t){if(this.options.atomic&&J.test(e))return!0;if(!this._userIgnored){let{cwd:e}=this.options,t=(this.options.ignored||[]).map(er(e)),s=[...[...this._ignoredPaths].map(er(e)),...t];this._userIgnored=function(e,t){if(null==e)throw TypeError("anymatch: specify first argument");let s=Q(e).map(e=>"function"==typeof e?e:"string"==typeof e?t=>e===t:e instanceof RegExp?t=>e.test(t):"object"==typeof e&&null!==e?t=>{if(e.path===t)return!0;if(e.recursive){let s=a.relative(e.path,t);return!!s&&!s.startsWith("..")&&!a.isAbsolute(s)}return!1}:()=>!1);return null==t?(e,t)=>ee(s,e,t):ee(s,t)}(s,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new eh(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=a.resolve(e);return this._watched.has(t)||this._watched.set(t,new eo(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return!!this.options.ignorePermissionErrors||!!(256&Number(e.mode))}_remove(e,t,s){let i=a.join(e,t),r=a.resolve(i);if(s=null!=s?s:this._watched.has(i)||this._watched.has(r),!this._throttle("remove",i,100))return;s||1!==this._watched.size||this.add(e,t,!0),this._getWatchedDir(i).getChildren().forEach(e=>this._remove(i,e));let n=this._getWatchedDir(e),o=n.has(t);n.remove(t),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let h=i;if(this.options.cwd&&(h=a.relative(this.options.cwd,i)),this.options.awaitWriteFinish&&this._pendingWrites.has(h)&&this._pendingWrites.get(h).cancelWait()===T.ADD)return;this._watched.delete(i),this._watched.delete(r);let l=s?T.UNLINK_DIR:T.UNLINK;o&&!this._isIgnored(i)&&this._emit(l,i),this._closePath(i)}_closePath(e){this._closeFile(e);let t=a.dirname(e);this._getWatchedDir(t).remove(a.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(e=>e()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let s=this._closers.get(e);s||(s=[],this._closers.set(e,s)),s.push(t)}_readdirp(e,t){if(this.closed)return;let s=function(e,t={}){let s=t.entryType||t.type;if("both"===s&&(s=h.FILE_DIR_TYPE),e){if("string"!=typeof e)throw TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(s&&!p.includes(s))throw Error(`readdirp: Invalid type passed. Use one of ${p.join(", ")}`)}else throw Error("readdirp: root argument is required. Usage: readdirp(root, options)");let i={...t,root:e};return s&&(i.type=s),new y(i)}(e,{type:T.ALL,alwaysStat:!0,lstat:!0,...t,depth:0});return this._streams.add(s),s.once("close",()=>{s=void 0}),s.once("end",()=>{s&&(this._streams.delete(s),s=void 0)}),s}}let ed=e=>(function(e,t={}){let s=new el(t);return s.add(e),s})(e,{ignoreInitial:!0,persistent:!0});class ec{constructor(e=ed,t=150){this.watchFile=e,this.debounceMs=t,this.entries=new Map}subscribe(e,t,s){let i=`${e}\0${t}`,r=this.entries.get(i);if(!r){let e=this.watchFile(t);r={watcher:e,subscribers:new Set,revision:0,debounceTimer:null},e.on("add",()=>this.schedule(r)),e.on("change",()=>this.schedule(r)),this.entries.set(i,r)}r.subscribers.add(s);let n=!0;return()=>{if(!n)return;n=!1;let e=this.entries.get(i);e&&(e.subscribers.delete(s),0===e.subscribers.size&&this.releaseEntry(i,e))}}async dispose(){let e=[...this.entries.entries()];this.entries.clear(),await Promise.all(e.map(async([,e])=>{e.debounceTimer&&clearTimeout(e.debounceTimer),await e.watcher.close()}))}schedule(e){e.debounceTimer&&clearTimeout(e.debounceTimer),e.debounceTimer=setTimeout(()=>{e.debounceTimer=null,e.revision+=1;let t={type:"session_history_changed",revision:e.revision};for(let s of e.subscribers)try{s(t)}catch{}},this.debounceMs)}releaseEntry(e,t){this.entries.get(e)===t&&this.entries.delete(e),t.debounceTimer&&clearTimeout(t.debounceTimer),t.debounceTimer=null,t.watcher.close()}}let ep=globalThis;function eu(){return ep.__nativeSessionChangeMonitor||(ep.__nativeSessionChangeMonitor=new ec),ep.__nativeSessionChangeMonitor}},785:(e,t,s)=>{s.d(t,{kO:()=>n,sr:()=>a});var i=s(9411);let r=function(){let e=process.argv[1];if(e){let t=(0,i.dirname)((0,i.resolve)(e)),s=`${i.sep}node_modules${i.sep}.bin`;return t.endsWith(s)?(0,i.resolve)(t,"..",".."):t}return(0,i.resolve)(process.cwd())}();function n(){return function(e=process.env,t=r){return(0,i.resolve)(e.AGENT_DATA_DIR?.trim()||t)}()}function a(){return function(e=process.env,t=r){return(0,i.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,n())}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),i=t.X(0,[8375,6244,1322,2083],()=>s(9752));module.exports=i})();
8
+ `))):i.enqueue(o.encode(": keep-alive\n\n"))}catch{a();try{i.close()}catch{}}},1e3);a=()=>{r||(r=!0,clearInterval(h),e.signal.removeEventListener("abort",a))},e.signal.addEventListener("abort",a,{once:!0}),e.signal.aborted?a():i.enqueue(o.encode(": connected\n\n"))},cancel(){a()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform","X-Accel-Buffering":"no"}})}},2147:(e,t,s)=>{s.d(t,{L:()=>eu});var i=s(5673),r=s(7561),n=s(3977),a=s(9411);let o=require("node:stream"),h={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},l={root:".",fileFilter:e=>!0,directoryFilter:e=>!0,type:h.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:256};Object.freeze(l);let d="READDIRP_RECURSIVE_ERROR",c=new Set(["ENOENT","EPERM","EACCES","ELOOP",d]),p=[h.DIR_TYPE,h.EVERYTHING_TYPE,h.FILE_DIR_TYPE,h.FILE_TYPE],u=new Set([h.DIR_TYPE,h.EVERYTHING_TYPE,h.FILE_DIR_TYPE]),f=new Set([h.EVERYTHING_TYPE,h.FILE_DIR_TYPE,h.FILE_TYPE]),_=e=>c.has(e.code),m="win32"===process.platform,w=e=>!0,g=e=>{if(void 0===e)return w;if("function"==typeof e)return e;if("string"==typeof e){let t=e.trim();return e=>e.basename===t}if(Array.isArray(e)){let t=e.map(e=>e.trim());return e=>t.some(t=>e.basename===t)}return w};class y extends o.Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;_relStart;constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark??l.highWaterMark});let t={...l,...e},s=t.root??l.root,i=t.type??l.type;this._fileFilter=g(t.fileFilter),this._directoryFilter=g(t.directoryFilter);let r=t.lstat?n.lstat:n.stat;m?this._stat=e=>r(e,{bigint:!0}):this._stat=r,this._maxDepth=null!=t.depth&&Number.isSafeInteger(t.depth)?t.depth:l.depth,this._wantsDir=u.has(i),this._wantsFile=f.has(i),this._wantsEverything=i===h.EVERYTHING_TYPE,this._root=(0,a.resolve)(s),this._relStart=this._root.endsWith(a.sep)?this._root.length:this._root.length+1,this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent};let o={path:this._root,depth:1};o.pending=this._exploreDir(this._root,1),this.parents=[o],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,s=t&&t.files;if(s&&s.length>0){let{path:i,depth:r}=t,n=s.splice(0,e).map(e=>this._formatEntry(e,i));for(let t of this._isDirent?n:await Promise.all(n)){if(!t)continue;if(this.destroyed)return;let s=this._getEntryType(t);"string"!=typeof s&&(s=await s),"directory"===s&&this._directoryFilter(t)?(r<=this._maxDepth&&this.parents.push({path:t.fullPath,depth:r+1}),this._wantsDir&&(this.push(t),e--)):("file"===s||this._includeAsFile(t))&&this._fileFilter(t)&&this._wantsFile&&(this.push(t),e--)}}else{let e=this.parents.pop();if(!e){this.push(null);break}let t=e.pending??this._exploreDir(e.path,e.depth),s=this.parents[this.parents.length-1];if(s&&!s.pending&&(s.pending=this._exploreDir(s.path,s.depth)),this.parent=await t,this.destroyed)return}}}catch(e){this.destroy(e)}finally{this.reading=!1}}}async _exploreDir(e,t){let s;try{s=await (0,n.readdir)(e,this._rdOptions)}catch(e){this._onError(e)}return{files:s,depth:t,path:e}}_formatEntry(e,t){let s=this._isDirent?e.name:e,i=(0,a.join)(t,s),r={path:i.slice(this._relStart),fullPath:i,basename:s};return this._isDirent?(r.dirent=e,r):this._stat(i).then(e=>(r.stats=e,r),e=>{this._onError(e)})}_onError(e){_(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}_getEntryType(e){if(!e||!(this._statsProp in e))return"";let t=e[this._statsProp];return t.isFile()?"file":t.isDirectory()?"directory":t.isSymbolicLink()?this._getSymlinkEntryType(e):""}async _getSymlinkEntryType(e){let t=e.fullPath;try{let e=await (0,n.realpath)(t),s=await (0,n.lstat)(e);if(s.isFile())return"file";if(s.isDirectory()){let s=e.length;if(t.startsWith(e)&&t[s]===a.sep){let s=Error(`Circular symlink detected: "${t}" points to "${e}"`);return s.code=d,this._onError(s),""}return"directory"}}catch(e){this._onError(e)}return""}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}}var v=s(612);let E=()=>{},b=process.platform,P="win32"===b,R="darwin"===b,D="linux"===b,x="freebsd"===b,I="OS400"===(0,v.type)(),T={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},k={lstat:n.lstat,stat:n.stat},A="listeners",S="errHandlers",W="rawEmitters",F=[A,S,W],C=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),N=e=>C.has(a.extname(e).slice(1).toLowerCase()),L=(e,t)=>{e instanceof Set?e.forEach(t):t(e)},M=(e,t,s)=>{let i=e[t];i instanceof Set||(e[t]=i=new Set([i])),i.add(s)},j=e=>t=>{let s=e[t];s instanceof Set?s.clear():delete e[t]},O=(e,t,s)=>{let i=e[t];i instanceof Set?i.delete(s):i===s&&delete e[t]},z=e=>e instanceof Set?0===e.size:!e,q=new Map;function H(e,t,s,i,n){try{return(0,r.watch)(e,{persistent:t.persistent},(t,i)=>{s(e),n(t,i,{watchedPath:e}),i&&e!==i&&Y(a.resolve(e,i),A,a.join(e,i))})}catch(e){i(e);return}}let Y=(e,t,s,i,r)=>{let n=q.get(e);n&&L(n[t],e=>{e(s,i,r)})},G=(e,t,s,i)=>{let r;let{listener:a,errHandler:o,rawEmitter:h}=i,l=q.get(t);if(!s.persistent){if(!(r=H(e,s,a,o,h)))return;return r.close.bind(r)}if(l)M(l,A,a),M(l,S,o),M(l,W,h);else{if(!(r=H(e,s,Y.bind(null,t,A),o,Y.bind(null,t,W))))return;r.on(T.ERROR,async s=>{let i=Y.bind(null,t,S);if(l&&(l.watcherUnusable=!0),P&&"EPERM"===s.code)try{let t=await (0,n.open)(e,"r");await t.close(),i(s)}catch(e){}else i(s)}),l={listeners:a,errHandlers:o,rawEmitters:h,watcher:r},q.set(t,l)}return()=>{O(l,A,a),O(l,S,o),O(l,W,h),z(l.listeners)&&(l.watcher.close(),q.delete(t),F.forEach(j(l)),l.watcher=void 0,Object.freeze(l))}},U=new Map,$=(e,t,s,i)=>{let{listener:n,rawEmitter:a}=i,o=U.get(t),h=o&&o.options;return h&&(h.persistent<s.persistent||h.interval>s.interval)&&((0,r.unwatchFile)(t),o=void 0),o?(M(o,A,n),M(o,W,a)):(o={listeners:n,rawEmitters:a,options:s,watcher:(0,r.watchFile)(t,s,(s,i)=>{L(o.rawEmitters,e=>{e(T.CHANGE,t,{curr:s,prev:i})});let r=s.mtimeMs;(s.size!==i.size||r>i.mtimeMs||0===r)&&L(o.listeners,t=>t(e,s))})},U.set(t,o)),()=>{O(o,A,n),O(o,W,a),z(o.listeners)&&(U.delete(t),(0,r.unwatchFile)(t),o.options=o.watcher=void 0,Object.freeze(o))}};class K{fsw;_boundHandleError;constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let s;let i=this.fsw.options,r=a.dirname(e),n=a.basename(e);this.fsw._getWatchedDir(r).add(n);let o=a.resolve(e),h={persistent:i.persistent};if(t||(t=E),i.usePolling){let r=i.interval!==i.binaryInterval;h.interval=r&&N(n)?i.binaryInterval:i.interval,s=$(e,o,h,{listener:t,rawEmitter:this.fsw._emitRaw})}else s=G(e,o,h,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return s}_handleFile(e,t,s){if(this.fsw.closed)return;let i=a.dirname(e),r=a.basename(e),o=this.fsw._getWatchedDir(i),h=t;if(o.has(r))return;let l=async(t,s)=>{if(this.fsw._throttle("watch",e,5)){if(s&&0!==s.mtimeMs){if(o.has(r)){let t=s.atimeMs,i=s.mtimeMs;(!t||t<=i||i!==h.mtimeMs)&&this.fsw._emit(T.CHANGE,e,s),h=s}}else try{let s=await (0,n.stat)(e);if(this.fsw.closed)return;let i=s.atimeMs,r=s.mtimeMs;if((!i||i<=r||r!==h.mtimeMs)&&this.fsw._emit(T.CHANGE,e,s),(R||D||x)&&h.ino!==s.ino){this.fsw._closeFile(t),h=s;let i=this._watchWithNodeFs(e,l);i&&this.fsw._addPathCloser(t,i)}else h=s}catch(e){this.fsw._remove(i,r)}}},d=this._watchWithNodeFs(e,l);if(!(s&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(T.ADD,e,0))return;this.fsw._emit(T.ADD,e,t)}return d}async _handleSymlink(e,t,s,i){if(this.fsw.closed)return;let r=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){let t;this.fsw._incrReadyCount();try{t=await (0,n.realpath)(s)}catch(e){return this.fsw._emitReady(),!0}if(this.fsw.closed)return;return a.has(i)?this.fsw._symlinkPaths.get(r)!==t&&(this.fsw._symlinkPaths.set(r,t),this.fsw._emit(T.CHANGE,s,e.stats)):(a.add(i),this.fsw._symlinkPaths.set(r,t),this.fsw._emit(T.ADD,s,e.stats)),this.fsw._emitReady(),!0}if(this.fsw._symlinkPaths.has(r))return!0;this.fsw._symlinkPaths.set(r,!0)}_handleRead(e,t,s,i,r,n,o){e=a.join(e,"");let h=i?`${e}:${i}`:e;if(!(o=this.fsw._throttle("readdir",h,1e3)))return;let l=this.fsw._getWatchedDir(s.path),d=new Set,c=this.fsw._readdirp(e,{fileFilter:e=>s.filterPath(e),directoryFilter:e=>s.filterDir(e)});if(c)return c.on("data",async o=>{if(this.fsw.closed){c=void 0;return}let h=o.path,p=a.join(e,h);if(d.add(h),!(o.stats.isSymbolicLink()&&await this._handleSymlink(o,e,p,h))){if(this.fsw.closed){c=void 0;return}h!==i&&(i||l.has(h))||(this.fsw._incrReadyCount(),p=a.join(r,a.relative(r,p)),this._addToNodeFs(p,t,s,n+1))}}).on(T.ERROR,this._boundHandleError),new Promise((t,a)=>{if(!c)return a();c.once("end",()=>{if(this.fsw.closed){c=void 0;return}let a=!!o&&o.clear();t(void 0),l.getChildren().filter(t=>t!==e&&!d.has(t)).forEach(t=>{this.fsw._remove(e,t)}),c=void 0,a&&this._handleRead(e,!1,s,i,r,n,o)})})}async _handleDir(e,t,s,i,r,n,o){let h,l;let d=this.fsw._getWatchedDir(a.dirname(e)),c=d.has(a.basename(e));s&&this.fsw.options.ignoreInitial||r||c||this.fsw._emit(T.ADD_DIR,e,t),d.add(a.basename(e)),this.fsw._getWatchedDir(e);let p=this.fsw.options.depth;if((null==p||i<=p)&&!this.fsw._symlinkPaths.has(o)){if(!r&&(await this._handleRead(e,s,n,r,e,i,h),this.fsw.closed))return;l=this._watchWithNodeFs(e,(t,s)=>{s&&0===s.mtimeMs||this._handleRead(t,!1,n,r,e,i,h)})}return l}async _addToNodeFs(e,t,s,i,r){let o=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return o(),!1;let h=this.fsw._getWatchHelpers(e);s&&(h.filterPath=e=>s.filterPath(e),h.filterDir=e=>s.filterDir(e));try{let s;let l=await k[h.statMethod](h.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(h.watchPath,l))return o(),!1;let d=this.fsw.options.followSymlinks;if(l.isDirectory()){let o=a.resolve(e),c=d?await (0,n.realpath)(e):e;if(this.fsw.closed||(s=await this._handleDir(h.watchPath,l,t,i,r,h,c),this.fsw.closed))return;o!==c&&void 0!==c&&this.fsw._symlinkPaths.set(o,c)}else if(l.isSymbolicLink()){let r=d?await (0,n.realpath)(e):e;if(this.fsw.closed)return;let o=a.dirname(h.watchPath);if(this.fsw._getWatchedDir(o).add(h.watchPath),this.fsw._emit(T.ADD,h.watchPath,l),s=await this._handleDir(o,l,t,i,e,h,r),this.fsw.closed)return;void 0!==r&&this.fsw._symlinkPaths.set(a.resolve(e),r)}else s=this._handleFile(h.watchPath,l,t);return o(),s&&this.fsw._addPathCloser(e,s),!1}catch(t){if(this.fsw._handleError(t))return o(),e}}}let V=/\\/g,X=/\/\//g,J=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,B=/^\.[/\\]/;function Q(e){return Array.isArray(e)?e:[e]}let Z=e=>"object"==typeof e&&null!==e&&!(e instanceof RegExp);function ee(e,t,s){let i=function(e){if("string"!=typeof e)throw Error("string expected");e=(e=a.normalize(e)).replace(/\\/g,"/");let t=!1;return e.startsWith("//")&&(t=!0),e=e.replace(X,"/"),t&&(e="/"+e),e}(t);for(let t=0;t<e.length;t++)if((0,e[t])(i,s))return!0;return!1}let et=e=>{let t=Q(e).flat();if(!t.every(e=>"string"==typeof e))throw TypeError(`Non-string provided as watch path: ${t}`);return t.map(ei)},es=e=>{let t=e.replace(V,"/"),s=!1;return t.startsWith("//")&&(s=!0),t=t.replace(X,"/"),s&&(t="/"+t),t},ei=e=>es(a.normalize(es(e))),er=(e="")=>t=>"string"==typeof t?ei(a.isAbsolute(t)?t:a.join(e,t)):t,en=(e,t)=>a.isAbsolute(e)?e:a.join(t,e),ea=Object.freeze(new Set);class eo{path;_removeWatcher;items;constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&"."!==e&&".."!==e&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let s=this.path;try{await (0,n.readdir)(s)}catch(e){this._removeWatcher&&this._removeWatcher(a.dirname(s),a.basename(s))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=E,this.items=ea,Object.freeze(this)}}class eh{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(e,t,s){this.fsw=s;let i=e;this.path=e=e.replace(B,""),this.watchPath=i,this.fullWatchPath=a.resolve(i),this.dirParts=[],this.dirParts.forEach(e=>{e.length>1&&e.pop()}),this.followSymlinks=t,this.statMethod=t?"stat":"lstat"}entryPath(e){return a.join(this.watchPath,a.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let s=this.entryPath(e);return this.fsw._isntIgnored(s,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}}class el extends i.EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,s={stabilityThreshold:2e3,pollInterval:100},i={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?Q(e.ignored):Q([]),awaitWriteFinish:!0===t?s:"object"==typeof t&&{...s,...t}};I&&(i.usePolling=!0),void 0===i.atomic&&(i.atomic=!i.usePolling);let r=process.env.CHOKIDAR_USEPOLLING;if(void 0!==r){let e=r.toLowerCase();"false"===e||"0"===e?i.usePolling=!1:"true"===e||"1"===e?i.usePolling=!0:i.usePolling=!!e}let n=process.env.CHOKIDAR_INTERVAL;n&&(i.interval=Number.parseInt(n,10));let a=0;this._emitReady=()=>{++a>=this._readyCount&&(this._emitReady=E,this._readyEmitted=!0,process.nextTick(()=>this.emit(T.READY)))},this._emitRaw=(...e)=>this.emit(T.RAW,...e),this._boundRemove=this._remove.bind(this),this.options=i,this._nodeFsHandler=new K(this),Object.freeze(i)}_addIgnoredPath(e){if(Z(e)){for(let t of this._ignoredPaths)if(Z(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),"string"==typeof e)for(let t of this._ignoredPaths)Z(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,s){let{cwd:i}=this.options;this.closed=!1,this._closePromise=void 0;let r=et(e);return i&&(r=r.map(e=>en(e,i))),r.forEach(e=>{this._removeIgnoredPath(e)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async e=>{let i=await this._nodeFsHandler._addToNodeFs(e,!s,void 0,0,t);return i&&this._emitReady(),i})).then(e=>{this.closed||e.forEach(e=>{e&&this.add(a.dirname(e),a.basename(t||e))})}),this}unwatch(e){if(this.closed)return this;let t=et(e),{cwd:s}=this.options;return t.forEach(e=>{a.isAbsolute(e)||this._closers.has(e)||(s&&(e=a.join(s,e)),e=a.resolve(e)),this._closePath(e),this._addIgnoredPath(e),this._watched.has(e)&&this._addIgnoredPath({path:e,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(t=>{let s=t();s instanceof Promise&&e.push(s)})),this._streams.forEach(e=>e.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(e=>e.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>void 0):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,s)=>{e[(this.options.cwd?a.relative(this.options.cwd,s):s)||"."]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==T.ERROR&&this.emit(T.ALL,e,...t)}async _emit(e,t,s){let i;if(this.closed)return;let r=this.options;P&&(t=a.normalize(t)),r.cwd&&(t=a.relative(r.cwd,t));let o=[t];null!=s&&o.push(s);let h=r.awaitWriteFinish;if(h&&(i=this._pendingWrites.get(t)))return i.lastChange=new Date,this;if(r.atomic){if(e===T.UNLINK)return this._pendingUnlinks.set(t,[e,...o]),setTimeout(()=>{this._pendingUnlinks.forEach((e,t)=>{this.emit(...e),this.emit(T.ALL,...e),this._pendingUnlinks.delete(t)})},"number"==typeof r.atomic?r.atomic:100),this;e===T.ADD&&this._pendingUnlinks.has(t)&&(e=T.CHANGE,this._pendingUnlinks.delete(t))}if(h&&(e===T.ADD||e===T.CHANGE)&&this._readyEmitted)return this._awaitWriteFinish(t,h.stabilityThreshold,e,(t,s)=>{t?(e=T.ERROR,o[0]=t,this.emitWithAll(e,o)):s&&(o.length>1?o[1]=s:o.push(s),this.emitWithAll(e,o))}),this;if(e===T.CHANGE&&!this._throttle(T.CHANGE,t,50))return this;if(r.alwaysStat&&void 0===s&&(e===T.ADD||e===T.ADD_DIR||e===T.CHANGE)){let e;let s=r.cwd?a.join(r.cwd,t):t;try{e=await (0,n.stat)(s)}catch(e){}if(!e||this.closed)return;o.push(e)}return this.emitWithAll(e,o),this}_handleError(e){let t=e&&e.code;return e&&"ENOENT"!==t&&"ENOTDIR"!==t&&(!this.options.ignorePermissionErrors||"EPERM"!==t&&"EACCES"!==t)&&this.emit(T.ERROR,e),e||this.closed}_throttle(e,t,s){let i;this._throttled.has(e)||this._throttled.set(e,new Map);let r=this._throttled.get(e);if(!r)throw Error("invalid throttle");let n=r.get(t);if(n)return n.count++,!1;let a=()=>{let e=r.get(t),s=e?e.count:0;return r.delete(t),clearTimeout(i),e&&clearTimeout(e.timeoutObject),s},o={timeoutObject:i=setTimeout(a,s),clear:a,count:0};return r.set(t,o),o}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,s,i){let n;let o=this.options.awaitWriteFinish;if("object"!=typeof o)return;let h=o.pollInterval,l=e;this.options.cwd&&!a.isAbsolute(e)&&(l=a.join(this.options.cwd,e));let d=new Date,c=this._pendingWrites;c.has(e)||(c.set(e,{lastChange:d,cancelWait:()=>(c.delete(e),clearTimeout(n),s)}),n=setTimeout(function s(a){(0,r.stat)(l,(r,o)=>{if(r||!c.has(e)){r&&"ENOENT"!==r.code&&i(r);return}let l=Number(new Date);a&&o.size!==a.size&&(c.get(e).lastChange=l),l-c.get(e).lastChange>=t?(c.delete(e),i(void 0,o)):n=setTimeout(s,h,o)})},h))}_isIgnored(e,t){if(this.options.atomic&&J.test(e))return!0;if(!this._userIgnored){let{cwd:e}=this.options,t=(this.options.ignored||[]).map(er(e)),s=[...[...this._ignoredPaths].map(er(e)),...t];this._userIgnored=function(e,t){if(null==e)throw TypeError("anymatch: specify first argument");let s=Q(e).map(e=>"function"==typeof e?e:"string"==typeof e?t=>e===t:e instanceof RegExp?t=>e.test(t):"object"==typeof e&&null!==e?t=>{if(e.path===t)return!0;if(e.recursive){let s=a.relative(e.path,t);return!!s&&!s.startsWith("..")&&!a.isAbsolute(s)}return!1}:()=>!1);return null==t?(e,t)=>ee(s,e,t):ee(s,t)}(s,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new eh(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=a.resolve(e);return this._watched.has(t)||this._watched.set(t,new eo(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return!!this.options.ignorePermissionErrors||!!(256&Number(e.mode))}_remove(e,t,s){let i=a.join(e,t),r=a.resolve(i);if(s=null!=s?s:this._watched.has(i)||this._watched.has(r),!this._throttle("remove",i,100))return;s||1!==this._watched.size||this.add(e,t,!0),this._getWatchedDir(i).getChildren().forEach(e=>this._remove(i,e));let n=this._getWatchedDir(e),o=n.has(t);n.remove(t),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let h=i;if(this.options.cwd&&(h=a.relative(this.options.cwd,i)),this.options.awaitWriteFinish&&this._pendingWrites.has(h)&&this._pendingWrites.get(h).cancelWait()===T.ADD)return;this._watched.delete(i),this._watched.delete(r);let l=s?T.UNLINK_DIR:T.UNLINK;o&&!this._isIgnored(i)&&this._emit(l,i),this._closePath(i)}_closePath(e){this._closeFile(e);let t=a.dirname(e);this._getWatchedDir(t).remove(a.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(e=>e()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let s=this._closers.get(e);s||(s=[],this._closers.set(e,s)),s.push(t)}_readdirp(e,t){if(this.closed)return;let s=function(e,t={}){let s=t.entryType||t.type;if("both"===s&&(s=h.FILE_DIR_TYPE),e){if("string"!=typeof e)throw TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(s&&!p.includes(s))throw Error(`readdirp: Invalid type passed. Use one of ${p.join(", ")}`)}else throw Error("readdirp: root argument is required. Usage: readdirp(root, options)");let i={...t,root:e};return s&&(i.type=s),new y(i)}(e,{type:T.ALL,alwaysStat:!0,lstat:!0,...t,depth:0});return this._streams.add(s),s.once("close",()=>{s=void 0}),s.once("end",()=>{s&&(this._streams.delete(s),s=void 0)}),s}}let ed=e=>(function(e,t={}){let s=new el(t);return s.add(e),s})(e,{ignoreInitial:!0,persistent:!0});class ec{constructor(e=ed,t=150){this.watchFile=e,this.debounceMs=t,this.entries=new Map}subscribe(e,t,s){let i=`${e}\0${t}`,r=this.entries.get(i);if(!r){let e=this.watchFile(t);r={watcher:e,subscribers:new Set,revision:0,debounceTimer:null},e.on("add",()=>this.schedule(r)),e.on("change",()=>this.schedule(r)),this.entries.set(i,r)}r.subscribers.add(s);let n=!0;return()=>{if(!n)return;n=!1;let e=this.entries.get(i);e&&(e.subscribers.delete(s),0===e.subscribers.size&&this.releaseEntry(i,e))}}async dispose(){let e=[...this.entries.entries()];this.entries.clear(),await Promise.all(e.map(async([,e])=>{e.debounceTimer&&clearTimeout(e.debounceTimer),await e.watcher.close()}))}schedule(e){e.debounceTimer&&clearTimeout(e.debounceTimer),e.debounceTimer=setTimeout(()=>{e.debounceTimer=null,e.revision+=1;let t={type:"session_history_changed",revision:e.revision};for(let s of e.subscribers)try{s(t)}catch{}},this.debounceMs)}releaseEntry(e,t){this.entries.get(e)===t&&this.entries.delete(e),t.debounceTimer&&clearTimeout(t.debounceTimer),t.debounceTimer=null,t.watcher.close()}}let ep=globalThis;function eu(){return ep.__nativeSessionChangeMonitor||(ep.__nativeSessionChangeMonitor=new ec),ep.__nativeSessionChangeMonitor}},785:(e,t,s)=>{s.d(t,{kO:()=>n,sr:()=>a});var i=s(9411);let r=function(){let e=process.argv[1];if(e){let t=(0,i.dirname)((0,i.resolve)(e)),s=`${i.sep}node_modules${i.sep}.bin`;return t.endsWith(s)?(0,i.resolve)(t,"..",".."):t}return(0,i.resolve)(process.cwd())}();function n(){return function(e=process.env,t=r){return(0,i.resolve)(e.AGENT_DATA_DIR?.trim()||t)}()}function a(){return function(e=process.env,t=r){return(0,i.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,n())}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),i=t.X(0,[8375,6244,1322,2083],()=>s(9231));module.exports=i})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=6939,e.ids=[6939],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")},1975:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{originalPathname:()=>q,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>l});var o=t(7786),n=t(5042),i=t(2184),a=t(145),p=e([a]);a=(p.then?(await p)():p)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/fork/route",pathname:"/api/sessions/[id]/fork",filename:"route",bundlePath:"app/api/sessions/[id]/fork/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/sessions/[id]/fork/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:x}=d,q="/api/sessions/[id]/fork/route";function u(){return(0,i.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:l})}s()}catch(e){s(e)}})},145:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{POST:()=>a});var o=t(1890),n=t(2083),i=e([n]);async function a(e,{params:r}){try{let e=await (0,n.NL)().fork(r.id);return o.NextResponse.json(e,{status:201})}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,n.WW)(e)})}}n=(i.then?(await i)():i)[0],s()}catch(e){s(e)}})},785:(e,r,t)=>{t.d(r,{kO:()=>n,sr:()=>i});var s=t(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,s.dirname)((0,s.resolve)(e)),t=`${s.sep}node_modules${s.sep}.bin`;return r.endsWith(t)?(0,s.resolve)(r,"..",".."):r}return(0,s.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,6244,1322,2083],()=>t(1975));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=6939,e.ids=[6939],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")},3606:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{originalPathname:()=>q,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>l});var o=t(7786),n=t(5042),i=t(2184),p=t(145),a=e([p]);p=(a.then?(await a)():a)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/fork/route",pathname:"/api/sessions/[id]/fork",filename:"route",bundlePath:"app/api/sessions/[id]/fork/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/sessions/[id]/fork/route.ts",nextConfigOutput:"standalone",userland:p}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:x}=d,q="/api/sessions/[id]/fork/route";function u(){return(0,i.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:l})}s()}catch(e){s(e)}})},145:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{POST:()=>p});var o=t(1890),n=t(2083),i=e([n]);async function p(e,{params:r}){try{let e=await (0,n.NL)().fork(r.id);return o.NextResponse.json(e,{status:201})}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,n.WW)(e)})}}n=(i.then?(await i)():i)[0],s()}catch(e){s(e)}})},785:(e,r,t)=>{t.d(r,{kO:()=>n,sr:()=>i});var s=t(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,s.dirname)((0,s.resolve)(e)),t=`${s.sep}node_modules${s.sep}.bin`;return r.endsWith(t)?(0,s.resolve)(r,"..",".."):r}return(0,s.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,6244,1322,2083],()=>t(3606));module.exports=s})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=5937,e.ids=[5937,732],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")},7654:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{originalPathname:()=>p,patchFetch:()=>u,requestAsyncStorage:()=>l,routeModule:()=>c,serverHooks:()=>g,staticGenerationAsyncStorage:()=>h});var a=s(7786),i=s(5042),o=s(2184),n=s(4799),d=e([n]);n=(d.then?(await d)():d)[0];let c=new a.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/sessions/[id]/goals/route",pathname:"/api/sessions/[id]/goals",filename:"route",bundlePath:"app/api/sessions/[id]/goals/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/sessions/[id]/goals/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:l,staticGenerationAsyncStorage:h,serverHooks:g}=c,p="/api/sessions/[id]/goals/route";function u(){return(0,o.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:h})}r()}catch(e){r(e)}})},4799:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{DELETE:()=>l,GET:()=>d,PATCH:()=>c,POST:()=>u});var a=s(1890),i=s(732),o=s(2083),n=e([o]);async function d(e,{params:t}){try{let e=(0,o.V_)(t.id)?await (0,o.NL)().getGoals(t.id,"web"):await (0,i.getCustomerGoalCoordinator)().get(t.id);return a.NextResponse.json(e)}catch(e){return g(e)}}async function u(e,{params:t}){try{let s=await e.json();if("string"!=typeof s.objective||!s.objective.trim())return a.NextResponse.json({error:"objective is required"},{status:400});if((0,o.V_)(t.id)){let e="message"===s.kind?await (0,o.NL)().enqueueMessage(t.id,{sourceMessageId:"string"==typeof s.sourceMessageId?s.sourceMessageId:crypto.randomUUID(),content:s.objective,messagePayload:h(s.messagePayload)},"web"):await (0,o.NL)().enqueueGoal(t.id,s.objective,"string"==typeof s.sourceMessageId?s.sourceMessageId:void 0,"web");return a.NextResponse.json(e)}if("message"===s.kind)return a.NextResponse.json({state:await (0,i.getCustomerGoalCoordinator)().enqueueMessage(t.id,s.objective,"string"==typeof s.sourceMessageId?s.sourceMessageId:crypto.randomUUID(),h(s.messagePayload))});let r=await (0,i.getCustomerGoalCoordinator)().enqueue(t.id,s.objective,"string"==typeof s.sourceMessageId?s.sourceMessageId:void 0);return a.NextResponse.json({state:r})}catch(e){return g(e)}}async function c(e,{params:t}){try{let s=await e.json();if("message"===s.kind&&"string"==typeof s.messageId){if("string"!=typeof s.objective||!s.objective.trim())return a.NextResponse.json({error:"objective is required"},{status:400});if(!(0,o.V_)(t.id))return a.NextResponse.json(await (0,i.getCustomerGoalCoordinator)().updateMessage(t.id,s.messageId,s.objective,h(s.messagePayload)));return a.NextResponse.json(await (0,o.NL)().updateMessage(t.id,s.messageId,s.objective,h(s.messagePayload)))}if(!Array.isArray(s.orderedIds)||!s.orderedIds.every(e=>"string"==typeof e))return a.NextResponse.json({error:"orderedIds must be a string array"},{status:400});let r=(0,o.V_)(t.id)?"message"===s.kind?await (0,o.NL)().reorderMessages(t.id,s.orderedIds):await (0,o.NL)().reorderGoals(t.id,s.orderedIds):await (0,i.getCustomerGoalCoordinator)().reorder(t.id,s.orderedIds,"message"===s.kind);return a.NextResponse.json(r)}catch(e){return g(e)}}async function l(e,{params:t}){try{let s=new URL(e.url),r=s.searchParams.get("goalId");if(!r)return a.NextResponse.json({error:"goalId is required"},{status:400});let n=(0,o.V_)(t.id)?"message"===s.searchParams.get("kind")?await (0,o.NL)().cancelMessage(t.id,r):await (0,o.NL)().cancelGoal(t.id,r):await (0,i.getCustomerGoalCoordinator)().cancel(t.id,r);return a.NextResponse.json(n)}catch(e){return g(e)}}function h(e){if(!e||"object"!=typeof e)return;let t=Array.isArray(e.images)&&e.images.every(e=>"string"==typeof e)?e.images:void 0,s=Array.isArray(e.agentIds)&&e.agentIds.every(e=>"string"==typeof e)?e.agentIds:void 0;return{...t?.length?{images:t}:{},...s?.length?{agentIds:s}:{},..."string"==typeof e.agentName&&e.agentName?{agentName:e.agentName}:{}}}function g(e){return a.NextResponse.json({error:e instanceof Error?e.message:"Goal operation failed"},{status:(0,o.WW)(e)})}o=(n.then?(await n)():n)[0],r()}catch(e){r(e)}})},732:(e,t,s)=>{s.d(t,{getCustomerGoalCoordinator:()=>u,U:()=>c});var r=s(1322),a=s(4537);class i{constructor(e,t,s,r,a,i){this.store=e,this.busy=t,this.run=s,this.abort=r,this.steerRun=a,this.persist=i,this.tails=new Map,this.draining=new Set}async get(e,t=!0){let s=(0,r.E0T)((await this.require(e)).metadata);return t&&this.resume(e),s}async enqueue(e,t,s){let a=await this.mutate(e,a=>(0,r.WfK)(a,{id:crypto.randomUUID(),sessionId:e,objective:t,sourceMessageId:s,now:Date.now()}));return this.resume(e),a}async enqueueMessage(e,t,s,a){let i=await this.mutate(e,i=>[i.active,...i.queued,...i.history].some(e=>e?.sourceMessageId===s)?i:(0,r.InG)(i,{id:crypto.randomUUID(),sessionId:e,objective:t,sourceMessageId:s,messagePayload:a,now:Date.now(),activate:!1}));return this.resume(e),i}reorder(e,t,s=!1){return this.mutate(e,e=>s?(0,r.h1F)(e,t):(0,r.ZC9)(e,t))}updateMessage(e,t,s,a){return this.mutate(e,e=>(0,r.Wog)(e,t,s,a))}async cancel(e,t){let s=await this.mutate(e,s=>(s.active?.id===t&&this.draining.has(e)&&this.abort(e),(0,r.LJm)(s,t,Date.now())));return this.resume(e),s}async steer(e,t){return this.mutate(e,async s=>{let a=s.queued.find(e=>e.id===t&&"message"===e.kind);if(!a||!this.busy(e))throw Error("没有可引导的运行或排队消息");if(!await this.steerRun(e,a.objective))throw Error("运行已结束,请继续排队");return(0,r.LJm)(s,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 s=await this.get(e,!1);if(!s.active&&!s.queued.length)return;if(this.busy(e)){await new Promise(e=>setTimeout(e,100));continue}let a=(await this.mutate(e,e=>(0,r.s_d)(e,Date.now()))).active;if(!a)continue;let i="failed";try{i=await this.run(e,a)}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===a.id?(0,r.JXc)(e,i,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 s=(this.tails.get(e)??Promise.resolve()).catch(()=>{}).then(async()=>{let s=await this.require(e),a=await t((0,r.E0T)(s.metadata));if(this.persist)this.persist(e,a);else{let t=await this.require(e);await this.store.update(e,{metadata:(0,r.eC7)(t.metadata,a)})}return a});this.tails.set(e,s);try{return await s}finally{this.tails.get(e)===s&&this.tails.delete(e)}}}var o=s(785);let n=globalThis,d=new Set;function u(){return n.__sharedCustomerQueue??=new i(a.agentHost.getSessionStore(),e=>a.agentHost.isSessionRunning(e),async(e,t)=>{d.add(e);try{return await a.agentHost.startRun(t.objective,e,t.messagePayload?.images,{agentIds:t.messagePayload?.agentIds}).completion,(await a.agentHost.getSessionStore().get(e))?.status==="completed"?"completed":"failed"}finally{d.delete(e)}},e=>{d.has(e)&&a.agentHost.abort(e)},(e,t)=>a.agentHost.steer(t,e),(e,t)=>{(0,r.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,r.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())u().resume(e.id)}},1436:(e,t,s)=>{s.d(t,{N:()=>l});var r=s(1322),a=s(7561),i=s(9411);class o{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,a.existsSync)(this.lockPath))try{let e=parseInt((0,a.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,i.dirname)(this.lockPath);return(0,a.existsSync)(e)||(0,a.mkdirSync)(e,{recursive:!0}),(0,a.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,a.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class n{constructor(e,t,s){this.cronTasks=e,this.onFire=t,this.onTasksChanged=s,this.timer=null,this.watcher=null,this.started=!1,this.lock=new o(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,i.dirname)(e);if(!(0,a.existsSync)(t))try{(0,a.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,a.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),s=!1;for(let a of t)a.enabled&&a.nextFireAt&&!(a.nextFireAt>e)&&(this.onFire(a),a.recurring?this.cronTasks.update(a.id,{nextFireAt:(0,r.Ilu)(a.cron,e),lastFiredAt:e}):this.cronTasks.delete(a.id),s=!0);s&&this.onTasksChanged(this.cronTasks.load())}}var d=s(785);class u{constructor(){this.tasks=new r.vo4((0,d.kO)()),this.scheduler=new n(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await s.e(4537).then(s.bind(s,4537)),{getCustomerGoalCoordinator:r}=await Promise.all([s.e(4537),s.e(732)]).then(s.bind(s,732)),a=e.sessionId;a&&await t.getSessionStore().get(a)||(a=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:a})),await r().enqueue(a,e.prompt)}call(e,t){let s=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(s);case"cronResume":return this.tasks.resume(s);case"cronDelete":return this.tasks.delete(s);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let c=globalThis;function l(){return c.__sharedCronService??=new u}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,6244,1322,4621,2083,4537],()=>s(7654));module.exports=r})();
1
+ "use strict";(()=>{var e={};e.id=5937,e.ids=[5937,732],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")},6916:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{originalPathname:()=>p,patchFetch:()=>u,requestAsyncStorage:()=>l,routeModule:()=>c,serverHooks:()=>g,staticGenerationAsyncStorage:()=>h});var a=s(7786),i=s(5042),o=s(2184),n=s(4799),d=e([n]);n=(d.then?(await d)():d)[0];let c=new a.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/sessions/[id]/goals/route",pathname:"/api/sessions/[id]/goals",filename:"route",bundlePath:"app/api/sessions/[id]/goals/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/sessions/[id]/goals/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:l,staticGenerationAsyncStorage:h,serverHooks:g}=c,p="/api/sessions/[id]/goals/route";function u(){return(0,o.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:h})}r()}catch(e){r(e)}})},4799:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{DELETE:()=>l,GET:()=>d,PATCH:()=>c,POST:()=>u});var a=s(1890),i=s(732),o=s(2083),n=e([o]);async function d(e,{params:t}){try{let e=(0,o.V_)(t.id)?await (0,o.NL)().getGoals(t.id,"web"):await (0,i.getCustomerGoalCoordinator)().get(t.id);return a.NextResponse.json(e)}catch(e){return g(e)}}async function u(e,{params:t}){try{let s=await e.json();if("string"!=typeof s.objective||!s.objective.trim())return a.NextResponse.json({error:"objective is required"},{status:400});if((0,o.V_)(t.id)){let e="message"===s.kind?await (0,o.NL)().enqueueMessage(t.id,{sourceMessageId:"string"==typeof s.sourceMessageId?s.sourceMessageId:crypto.randomUUID(),content:s.objective,messagePayload:h(s.messagePayload)},"web"):await (0,o.NL)().enqueueGoal(t.id,s.objective,"string"==typeof s.sourceMessageId?s.sourceMessageId:void 0,"web");return a.NextResponse.json(e)}if("message"===s.kind)return a.NextResponse.json({state:await (0,i.getCustomerGoalCoordinator)().enqueueMessage(t.id,s.objective,"string"==typeof s.sourceMessageId?s.sourceMessageId:crypto.randomUUID(),h(s.messagePayload))});let r=await (0,i.getCustomerGoalCoordinator)().enqueue(t.id,s.objective,"string"==typeof s.sourceMessageId?s.sourceMessageId:void 0);return a.NextResponse.json({state:r})}catch(e){return g(e)}}async function c(e,{params:t}){try{let s=await e.json();if("message"===s.kind&&"string"==typeof s.messageId){if("string"!=typeof s.objective||!s.objective.trim())return a.NextResponse.json({error:"objective is required"},{status:400});if(!(0,o.V_)(t.id))return a.NextResponse.json(await (0,i.getCustomerGoalCoordinator)().updateMessage(t.id,s.messageId,s.objective,h(s.messagePayload)));return a.NextResponse.json(await (0,o.NL)().updateMessage(t.id,s.messageId,s.objective,h(s.messagePayload)))}if(!Array.isArray(s.orderedIds)||!s.orderedIds.every(e=>"string"==typeof e))return a.NextResponse.json({error:"orderedIds must be a string array"},{status:400});let r=(0,o.V_)(t.id)?"message"===s.kind?await (0,o.NL)().reorderMessages(t.id,s.orderedIds):await (0,o.NL)().reorderGoals(t.id,s.orderedIds):await (0,i.getCustomerGoalCoordinator)().reorder(t.id,s.orderedIds,"message"===s.kind);return a.NextResponse.json(r)}catch(e){return g(e)}}async function l(e,{params:t}){try{let s=new URL(e.url),r=s.searchParams.get("goalId");if(!r)return a.NextResponse.json({error:"goalId is required"},{status:400});let n=(0,o.V_)(t.id)?"message"===s.searchParams.get("kind")?await (0,o.NL)().cancelMessage(t.id,r):await (0,o.NL)().cancelGoal(t.id,r):await (0,i.getCustomerGoalCoordinator)().cancel(t.id,r);return a.NextResponse.json(n)}catch(e){return g(e)}}function h(e){if(!e||"object"!=typeof e)return;let t=Array.isArray(e.images)&&e.images.every(e=>"string"==typeof e)?e.images:void 0,s=Array.isArray(e.agentIds)&&e.agentIds.every(e=>"string"==typeof e)?e.agentIds:void 0;return{...t?.length?{images:t}:{},...s?.length?{agentIds:s}:{},..."string"==typeof e.agentName&&e.agentName?{agentName:e.agentName}:{}}}function g(e){return a.NextResponse.json({error:e instanceof Error?e.message:"Goal operation failed"},{status:(0,o.WW)(e)})}o=(n.then?(await n)():n)[0],r()}catch(e){r(e)}})},732:(e,t,s)=>{s.d(t,{getCustomerGoalCoordinator:()=>u,U:()=>c});var r=s(1322),a=s(4537);class i{constructor(e,t,s,r,a,i){this.store=e,this.busy=t,this.run=s,this.abort=r,this.steerRun=a,this.persist=i,this.tails=new Map,this.draining=new Set}async get(e,t=!0){let s=(0,r.E0T)((await this.require(e)).metadata);return t&&this.resume(e),s}async enqueue(e,t,s){let a=await this.mutate(e,a=>(0,r.WfK)(a,{id:crypto.randomUUID(),sessionId:e,objective:t,sourceMessageId:s,now:Date.now()}));return this.resume(e),a}async enqueueMessage(e,t,s,a){let i=await this.mutate(e,i=>[i.active,...i.queued,...i.history].some(e=>e?.sourceMessageId===s)?i:(0,r.InG)(i,{id:crypto.randomUUID(),sessionId:e,objective:t,sourceMessageId:s,messagePayload:a,now:Date.now(),activate:!1}));return this.resume(e),i}reorder(e,t,s=!1){return this.mutate(e,e=>s?(0,r.h1F)(e,t):(0,r.ZC9)(e,t))}updateMessage(e,t,s,a){return this.mutate(e,e=>(0,r.Wog)(e,t,s,a))}async cancel(e,t){let s=await this.mutate(e,s=>(s.active?.id===t&&this.draining.has(e)&&this.abort(e),(0,r.LJm)(s,t,Date.now())));return this.resume(e),s}async steer(e,t){return this.mutate(e,async s=>{let a=s.queued.find(e=>e.id===t&&"message"===e.kind);if(!a||!this.busy(e))throw Error("没有可引导的运行或排队消息");if(!await this.steerRun(e,a.objective))throw Error("运行已结束,请继续排队");return(0,r.LJm)(s,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 s=await this.get(e,!1);if(!s.active&&!s.queued.length)return;if(this.busy(e)){await new Promise(e=>setTimeout(e,100));continue}let a=(await this.mutate(e,e=>(0,r.s_d)(e,Date.now()))).active;if(!a)continue;let i="failed";try{i=await this.run(e,a)}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===a.id?(0,r.JXc)(e,i,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 s=(this.tails.get(e)??Promise.resolve()).catch(()=>{}).then(async()=>{let s=await this.require(e),a=await t((0,r.E0T)(s.metadata));if(this.persist)this.persist(e,a);else{let t=await this.require(e);await this.store.update(e,{metadata:(0,r.eC7)(t.metadata,a)})}return a});this.tails.set(e,s);try{return await s}finally{this.tails.get(e)===s&&this.tails.delete(e)}}}var o=s(785);let n=globalThis,d=new Set;function u(){return n.__sharedCustomerQueue??=new i(a.agentHost.getSessionStore(),e=>a.agentHost.isSessionRunning(e),async(e,t)=>{d.add(e);try{return await a.agentHost.startRun(t.objective,e,t.messagePayload?.images,{agentIds:t.messagePayload?.agentIds}).completion,(await a.agentHost.getSessionStore().get(e))?.status==="completed"?"completed":"failed"}finally{d.delete(e)}},e=>{d.has(e)&&a.agentHost.abort(e)},(e,t)=>a.agentHost.steer(t,e),(e,t)=>{(0,r.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,r.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())u().resume(e.id)}},1436:(e,t,s)=>{s.d(t,{N:()=>l});var r=s(1322),a=s(7561),i=s(9411);class o{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,a.existsSync)(this.lockPath))try{let e=parseInt((0,a.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,i.dirname)(this.lockPath);return(0,a.existsSync)(e)||(0,a.mkdirSync)(e,{recursive:!0}),(0,a.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,a.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class n{constructor(e,t,s){this.cronTasks=e,this.onFire=t,this.onTasksChanged=s,this.timer=null,this.watcher=null,this.started=!1,this.lock=new o(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,i.dirname)(e);if(!(0,a.existsSync)(t))try{(0,a.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,a.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),s=!1;for(let a of t)a.enabled&&a.nextFireAt&&!(a.nextFireAt>e)&&(this.onFire(a),a.recurring?this.cronTasks.update(a.id,{nextFireAt:(0,r.Ilu)(a.cron,e),lastFiredAt:e}):this.cronTasks.delete(a.id),s=!0);s&&this.onTasksChanged(this.cronTasks.load())}}var d=s(785);class u{constructor(){this.tasks=new r.vo4((0,d.kO)()),this.scheduler=new n(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await s.e(4537).then(s.bind(s,4537)),{getCustomerGoalCoordinator:r}=await Promise.all([s.e(4537),s.e(732)]).then(s.bind(s,732)),a=e.sessionId;a&&await t.getSessionStore().get(a)||(a=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:a})),await r().enqueue(a,e.prompt)}call(e,t){let s=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(s);case"cronResume":return this.tasks.resume(s);case"cronDelete":return this.tasks.delete(s);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let c=globalThis;function l(){return c.__sharedCronService??=new u}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,6244,1322,4621,2083,4537],()=>s(6916));module.exports=r})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=7719,e.ids=[7719],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")},5049:(e,r,s)=>{s.a(e,async(e,t)=>{try{s.r(r),s.d(r,{originalPathname:()=>x,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>f,staticGenerationAsyncStorage:()=>l});var o=s(7786),n=s(5042),i=s(2184),a=s(6461),p=e([a]);a=(p.then?(await p)():p)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/handoff/route",pathname:"/api/sessions/[id]/handoff",filename:"route",bundlePath:"app/api/sessions/[id]/handoff/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/sessions/[id]/handoff/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:f}=d,x="/api/sessions/[id]/handoff/route";function u(){return(0,i.patchFetch)({serverHooks:f,staticGenerationAsyncStorage:l})}t()}catch(e){t(e)}})},6461:(e,r,s)=>{s.a(e,async(e,t)=>{try{s.r(r),s.d(r,{POST:()=>a});var o=s(1890),n=s(2083),i=e([n]);async function a(e,{params:r}){if(!(0,n.V_)(r.id))return o.NextResponse.json({error:"Only native sessions can be handed off"},{status:405});try{let e=await (0,n.NL)().handoff(r.id,"desktop");return o.NextResponse.json(e)}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Native handoff failed"},{status:(0,n.WW)(e)})}}n=(i.then?(await i)():i)[0],t()}catch(e){t(e)}})},785:(e,r,s)=>{s.d(r,{kO:()=>n,sr:()=>i});var t=s(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,t.dirname)((0,t.resolve)(e)),s=`${t.sep}node_modules${t.sep}.bin`;return r.endsWith(s)?(0,t.resolve)(r,"..",".."):r}return(0,t.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,t.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,t.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),t=r.X(0,[8375,6703,6244,1322,2083],()=>s(5049));module.exports=t})();
1
+ "use strict";(()=>{var e={};e.id=7719,e.ids=[7719],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")},5539:(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:()=>f,staticGenerationAsyncStorage:()=>l});var o=t(7786),n=t(5042),i=t(2184),a=t(6461),p=e([a]);a=(p.then?(await p)():p)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/handoff/route",pathname:"/api/sessions/[id]/handoff",filename:"route",bundlePath:"app/api/sessions/[id]/handoff/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/sessions/[id]/handoff/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:f}=d,x="/api/sessions/[id]/handoff/route";function u(){return(0,i.patchFetch)({serverHooks:f,staticGenerationAsyncStorage:l})}s()}catch(e){s(e)}})},6461:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{POST:()=>a});var o=t(1890),n=t(2083),i=e([n]);async function a(e,{params:r}){if(!(0,n.V_)(r.id))return o.NextResponse.json({error:"Only native sessions can be handed off"},{status:405});try{let e=await (0,n.NL)().handoff(r.id,"desktop");return o.NextResponse.json(e)}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Native handoff failed"},{status:(0,n.WW)(e)})}}n=(i.then?(await i)():i)[0],s()}catch(e){s(e)}})},785:(e,r,t)=>{t.d(r,{kO:()=>n,sr:()=>i});var s=t(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,s.dirname)((0,s.resolve)(e)),t=`${s.sep}node_modules${s.sep}.bin`;return r.endsWith(t)?(0,s.resolve)(r,"..",".."):r}return(0,s.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,6244,1322,2083],()=>t(5539));module.exports=s})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=3097,e.ids=[3097],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")},1887:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{originalPathname:()=>m,patchFetch:()=>c,requestAsyncStorage:()=>d,routeModule:()=>u,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var i=s(7786),n=s(5042),o=s(2184),a=s(647),l=e([a]);a=(l.then?(await l)():l)[0];let u=new i.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/query-index/route",pathname:"/api/sessions/[id]/query-index",filename:"route",bundlePath:"app/api/sessions/[id]/query-index/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/sessions/[id]/query-index/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=u,m="/api/sessions/[id]/query-index/route";function c(){return(0,o.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}r()}catch(e){r(e)}})},647:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{GET:()=>d});var i=s(1890),n=s(1322),o=s(4537),a=s(2083),l=s(8274),c=s(132),u=e([a]);a=(u.then?(await u)():u)[0];let h=new n.pGt;async function d(e,{params:t}){if((0,a.V_)(t.id))try{return i.NextResponse.json(await (0,a.NL)().getQueryIndex(t.id))}catch(e){return i.NextResponse.json({error:e instanceof Error?e.message:"Internal error",...e instanceof c.n?{code:e.code}:{}},{status:(0,a.WW)(e)})}let s=await o.agentHost.getSessionStore().get(t.id);if(!s)return i.NextResponse.json({error:"Session not found"},{status:404});let r=!s.messages?.length&&s.events?.length?(0,l.Q)(s.events):s.messages;return i.NextResponse.json(h.getOrCreate(t.id,r??[]))}r()}catch(e){r(e)}})},8274:(e,t,s)=>{s.d(t,{Q:()=>r});function r(e,t={}){let s=[],r=null,i=0,n=()=>`${t.runId??"event-history"}:${i++}`;for(let i of e){if("text_chunk"===i.type){r||(r={id:n(),role:"assistant",content:"",isStreaming:t.isStreaming??!0,timestamp:Date.now()},s.push(r)),r.content=`${r.content??""}${i.text??""}`;continue}if("tool_call"===i.type&&i.toolCall){r?(r.toolCalls=[i.toolCall],r.isStreaming=!1):s.push({id:n(),role:"assistant",content:"",toolCalls:[i.toolCall],isStreaming:!1,timestamp:Date.now()}),r=null;continue}if("tool_result"===i.type&&i.result){let e=i.result;s.push({id:n(),role:"tool",content:e.content??"",toolCallId:e.toolCallId,timestamp:Date.now()});continue}if("ask_user"===i.type){s.push({id:n(),role:"assistant",content:"",askUser:{questionId:i.questionId,question:i.question??"",options:i.options,multiSelect:i.multiSelect},timestamp:Date.now()});continue}"done"===i.type&&"string"==typeof i.finalText&&(r?(r.content=i.finalText,r.isStreaming=!1):i.finalText.trim()&&s.push({id:n(),role:"assistant",content:i.finalText,timestamp:Date.now()}),r=null)}return s}},1436:(e,t,s)=>{s.d(t,{N:()=>d});var r=s(1322),i=s(7561),n=s(9411);class o{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,i.existsSync)(this.lockPath))try{let e=parseInt((0,i.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,n.dirname)(this.lockPath);return(0,i.existsSync)(e)||(0,i.mkdirSync)(e,{recursive:!0}),(0,i.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,i.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class a{constructor(e,t,s){this.cronTasks=e,this.onFire=t,this.onTasksChanged=s,this.timer=null,this.watcher=null,this.started=!1,this.lock=new o(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,n.dirname)(e);if(!(0,i.existsSync)(t))try{(0,i.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,i.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),s=!1;for(let i of t)i.enabled&&i.nextFireAt&&!(i.nextFireAt>e)&&(this.onFire(i),i.recurring?this.cronTasks.update(i.id,{nextFireAt:(0,r.Ilu)(i.cron,e),lastFiredAt:e}):this.cronTasks.delete(i.id),s=!0);s&&this.onTasksChanged(this.cronTasks.load())}}var l=s(785);class c{constructor(){this.tasks=new r.vo4((0,l.kO)()),this.scheduler=new a(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await s.e(4537).then(s.bind(s,4537)),{getCustomerGoalCoordinator:r}=await Promise.all([s.e(4537),s.e(732)]).then(s.bind(s,732)),i=e.sessionId;i&&await t.getSessionStore().get(i)||(i=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:i})),await r().enqueue(i,e.prompt)}call(e,t){let s=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(s);case"cronResume":return this.tasks.resume(s);case"cronDelete":return this.tasks.delete(s);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let u=globalThis;function d(){return u.__sharedCronService??=new c}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,6244,1322,4621,2083,4537],()=>s(1887));module.exports=r})();
1
+ "use strict";(()=>{var e={};e.id=3097,e.ids=[3097],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")},4858:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{originalPathname:()=>m,patchFetch:()=>c,requestAsyncStorage:()=>d,routeModule:()=>u,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var i=s(7786),n=s(5042),o=s(2184),a=s(647),l=e([a]);a=(l.then?(await l)():l)[0];let u=new i.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/query-index/route",pathname:"/api/sessions/[id]/query-index",filename:"route",bundlePath:"app/api/sessions/[id]/query-index/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/sessions/[id]/query-index/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=u,m="/api/sessions/[id]/query-index/route";function c(){return(0,o.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}r()}catch(e){r(e)}})},647:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{GET:()=>d});var i=s(1890),n=s(1322),o=s(4537),a=s(2083),l=s(8274),c=s(132),u=e([a]);a=(u.then?(await u)():u)[0];let h=new n.pGt;async function d(e,{params:t}){if((0,a.V_)(t.id))try{return i.NextResponse.json(await (0,a.NL)().getQueryIndex(t.id))}catch(e){return i.NextResponse.json({error:e instanceof Error?e.message:"Internal error",...e instanceof c.n?{code:e.code}:{}},{status:(0,a.WW)(e)})}let s=await o.agentHost.getSessionStore().get(t.id);if(!s)return i.NextResponse.json({error:"Session not found"},{status:404});let r=!s.messages?.length&&s.events?.length?(0,l.Q)(s.events):s.messages;return i.NextResponse.json(h.getOrCreate(t.id,r??[]))}r()}catch(e){r(e)}})},8274:(e,t,s)=>{s.d(t,{Q:()=>r});function r(e,t={}){let s=[],r=null,i=0,n=()=>`${t.runId??"event-history"}:${i++}`;for(let i of e){if("text_chunk"===i.type){r||(r={id:n(),role:"assistant",content:"",isStreaming:t.isStreaming??!0,timestamp:Date.now()},s.push(r)),r.content=`${r.content??""}${i.text??""}`;continue}if("tool_call"===i.type&&i.toolCall){r?(r.toolCalls=[i.toolCall],r.isStreaming=!1):s.push({id:n(),role:"assistant",content:"",toolCalls:[i.toolCall],isStreaming:!1,timestamp:Date.now()}),r=null;continue}if("tool_result"===i.type&&i.result){let e=i.result;s.push({id:n(),role:"tool",content:e.content??"",toolCallId:e.toolCallId,timestamp:Date.now()});continue}if("ask_user"===i.type){s.push({id:n(),role:"assistant",content:"",askUser:{questionId:i.questionId,question:i.question??"",options:i.options,multiSelect:i.multiSelect},timestamp:Date.now()});continue}"done"===i.type&&"string"==typeof i.finalText&&(r?(r.content=i.finalText,r.isStreaming=!1):i.finalText.trim()&&s.push({id:n(),role:"assistant",content:i.finalText,timestamp:Date.now()}),r=null)}return s}},1436:(e,t,s)=>{s.d(t,{N:()=>d});var r=s(1322),i=s(7561),n=s(9411);class o{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,i.existsSync)(this.lockPath))try{let e=parseInt((0,i.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,n.dirname)(this.lockPath);return(0,i.existsSync)(e)||(0,i.mkdirSync)(e,{recursive:!0}),(0,i.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,i.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class a{constructor(e,t,s){this.cronTasks=e,this.onFire=t,this.onTasksChanged=s,this.timer=null,this.watcher=null,this.started=!1,this.lock=new o(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,n.dirname)(e);if(!(0,i.existsSync)(t))try{(0,i.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,i.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),s=!1;for(let i of t)i.enabled&&i.nextFireAt&&!(i.nextFireAt>e)&&(this.onFire(i),i.recurring?this.cronTasks.update(i.id,{nextFireAt:(0,r.Ilu)(i.cron,e),lastFiredAt:e}):this.cronTasks.delete(i.id),s=!0);s&&this.onTasksChanged(this.cronTasks.load())}}var l=s(785);class c{constructor(){this.tasks=new r.vo4((0,l.kO)()),this.scheduler=new a(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await s.e(4537).then(s.bind(s,4537)),{getCustomerGoalCoordinator:r}=await Promise.all([s.e(4537),s.e(732)]).then(s.bind(s,732)),i=e.sessionId;i&&await t.getSessionStore().get(i)||(i=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:i})),await r().enqueue(i,e.prompt)}call(e,t){let s=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(s);case"cronResume":return this.tasks.resume(s);case"cronDelete":return this.tasks.delete(s);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let u=globalThis;function d(){return u.__sharedCronService??=new c}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,6244,1322,4621,2083,4537],()=>s(4858));module.exports=r})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=3610,e.ids=[3610],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")},5941:(e,r,s)=>{s.a(e,async(e,t)=>{try{s.r(r),s.d(r,{originalPathname:()=>q,patchFetch:()=>p,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>l});var o=s(7786),n=s(5042),i=s(2184),a=s(2995),u=e([a]);a=(u.then?(await u)():u)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/release/route",pathname:"/api/sessions/[id]/release",filename:"route",bundlePath:"app/api/sessions/[id]/release/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/sessions/[id]/release/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:x}=d,q="/api/sessions/[id]/release/route";function p(){return(0,i.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:l})}t()}catch(e){t(e)}})},2995:(e,r,s)=>{s.a(e,async(e,t)=>{try{s.r(r),s.d(r,{POST:()=>a});var o=s(1890),n=s(2083),i=e([n]);async function a(e,{params:r}){if(!(0,n.V_)(r.id)||!r.id.startsWith("runtime:codex:"))return o.NextResponse.json({error:"Only Codex sessions can be released"},{status:405});try{return await (0,n.NL)().release(r.id),o.NextResponse.json({status:"released"})}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Codex release failed"},{status:(0,n.WW)(e)})}}n=(i.then?(await i)():i)[0],t()}catch(e){t(e)}})},785:(e,r,s)=>{s.d(r,{kO:()=>n,sr:()=>i});var t=s(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,t.dirname)((0,t.resolve)(e)),s=`${t.sep}node_modules${t.sep}.bin`;return r.endsWith(s)?(0,t.resolve)(r,"..",".."):r}return(0,t.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,t.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,t.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),t=r.X(0,[8375,6703,6244,1322,2083],()=>s(5941));module.exports=t})();
1
+ "use strict";(()=>{var e={};e.id=3610,e.ids=[3610],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")},804:(e,r,s)=>{s.a(e,async(e,t)=>{try{s.r(r),s.d(r,{originalPathname:()=>q,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>l});var o=s(7786),n=s(5042),i=s(2184),a=s(2995),p=e([a]);a=(p.then?(await p)():p)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/release/route",pathname:"/api/sessions/[id]/release",filename:"route",bundlePath:"app/api/sessions/[id]/release/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/sessions/[id]/release/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:x}=d,q="/api/sessions/[id]/release/route";function u(){return(0,i.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:l})}t()}catch(e){t(e)}})},2995:(e,r,s)=>{s.a(e,async(e,t)=>{try{s.r(r),s.d(r,{POST:()=>a});var o=s(1890),n=s(2083),i=e([n]);async function a(e,{params:r}){if(!(0,n.V_)(r.id)||!r.id.startsWith("runtime:codex:"))return o.NextResponse.json({error:"Only Codex sessions can be released"},{status:405});try{return await (0,n.NL)().release(r.id),o.NextResponse.json({status:"released"})}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Codex release failed"},{status:(0,n.WW)(e)})}}n=(i.then?(await i)():i)[0],t()}catch(e){t(e)}})},785:(e,r,s)=>{s.d(r,{kO:()=>n,sr:()=>i});var t=s(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,t.dirname)((0,t.resolve)(e)),s=`${t.sep}node_modules${t.sep}.bin`;return r.endsWith(s)?(0,t.resolve)(r,"..",".."):r}return(0,t.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,t.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,t.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),t=r.X(0,[8375,6703,6244,1322,2083],()=>s(804));module.exports=t})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=5241,e.ids=[5241],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")},7620:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{originalPathname:()=>m,patchFetch:()=>c,requestAsyncStorage:()=>d,routeModule:()=>u,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var n=s(7786),i=s(5042),o=s(2184),a=s(3082),l=e([a]);a=(l.then?(await l)():l)[0];let u=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/sessions/[id]/route",pathname:"/api/sessions/[id]",filename:"route",bundlePath:"app/api/sessions/[id]/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/sessions/[id]/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=u,m="/api/sessions/[id]/route";function c(){return(0,o.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}r()}catch(e){r(e)}})},3082:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{DELETE:()=>p,GET:()=>d,PATCH:()=>h});var n=s(1890),i=s(1322),o=s(4537),a=s(2083),l=s(132),c=s(8274),u=e([a]);async function d(e,{params:t}){let s=new URL(e.url),r=s.searchParams.get("before"),u=s.searchParams.get("after"),d=s.searchParams.get("anchor"),h=s.searchParams.get("limit"),p=s.searchParams.get("view"),m=s.searchParams.get("revision"),g=s.searchParams.get("turnId"),f="core"===p||"trace"===p?p:void 0,x=null!==r||null!==u||null!==d||null!==h||f||m||g?{before:r||void 0,after:u||void 0,anchor:d||void 0,limit:function(e){if(null===e)return;let t=Number(e);return Number.isFinite(t)?t:void 0}(h),view:f,revision:m||void 0,turnId:g||void 0}:void 0;if((0,a.V_)(t.id))try{let e=await (0,a.NL)().get(t.id,x);return n.NextResponse.json(e)}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Internal error",...e instanceof l.n?{code:e.code}:{}},{status:(0,a.WW)(e)})}let y=await o.agentHost.getSessionStore().get(t.id);if(!y)return n.NextResponse.json({error:"Session not found"},{status:404});let k=o.agentHost.getRecoverableRun(y),v=!y.messages?.length&&!k&&Array.isArray(y.events)&&y.events.length>0?(0,c.Q)(y.events):y.messages,w=k?(0,c.Q)(y.events.slice(k.eventStart),{runId:k.runId,isStreaming:k.running}):[],S=[...v??[],...w],q=k?k.running?"active":"failed":y.status,P=k?{runId:k.runId,eventId:k.eventId,running:k.running}:void 0;try{let e=x?{...y,agentType:"customer-agent",status:q,permissionMode:(0,i.NyU)(y.metadata.permissionMode),...P?{activeRun:P}:{},...(0,i.MOJ)(S??[],y.events??[],x)}:{...y,agentType:"customer-agent",status:q,messages:S,permissionMode:(0,i.NyU)(y.metadata.permissionMode),...P?{activeRun:P}:{}};return n.NextResponse.json({...e,messageQueueVersion:1,goalState:(0,i.E0T)(y.metadata)})}catch(e){if(e instanceof i.ujo)return n.NextResponse.json({error:e.message,code:e.code},{status:409});throw e}}async function h(e,{params:t}){let s=await e.json();if(!(0,i.ueU)(s.permissionMode))return n.NextResponse.json({error:"Invalid permission mode"},{status:400});if((0,a.V_)(t.id))try{let e=await (0,a.NL)().setPermissionMode(t.id,s.permissionMode);return n.NextResponse.json(e)}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Unable to update permission mode"},{status:(0,a.WW)(e)})}try{let e=await o.agentHost.setSessionPermissionMode(t.id,s.permissionMode);return n.NextResponse.json({...e,permissionMode:(0,i.NyU)(e.metadata.permissionMode)})}catch(s){let e=s instanceof Error?s.message:"Unable to update permission mode",t=e.startsWith("Session not found")?404:500;return n.NextResponse.json({error:e},{status:t})}}async function p(e,{params:t}){if((0,a.V_)(t.id))try{return await (0,a.NL)().delete(t.id),n.NextResponse.json({status:"deleted"})}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Unable to delete session"},{status:(0,a.WW)(e)})}return o.agentHost.isSessionRunning(t.id)?n.NextResponse.json({error:"Session is currently running"},{status:409}):(await o.agentHost.getSessionStore().delete(t.id),n.NextResponse.json({status:"deleted"}))}a=(u.then?(await u)():u)[0],r()}catch(e){r(e)}})},8274:(e,t,s)=>{s.d(t,{Q:()=>r});function r(e,t={}){let s=[],r=null,n=0,i=()=>`${t.runId??"event-history"}:${n++}`;for(let n of e){if("text_chunk"===n.type){r||(r={id:i(),role:"assistant",content:"",isStreaming:t.isStreaming??!0,timestamp:Date.now()},s.push(r)),r.content=`${r.content??""}${n.text??""}`;continue}if("tool_call"===n.type&&n.toolCall){r?(r.toolCalls=[n.toolCall],r.isStreaming=!1):s.push({id:i(),role:"assistant",content:"",toolCalls:[n.toolCall],isStreaming:!1,timestamp:Date.now()}),r=null;continue}if("tool_result"===n.type&&n.result){let e=n.result;s.push({id:i(),role:"tool",content:e.content??"",toolCallId:e.toolCallId,timestamp:Date.now()});continue}if("ask_user"===n.type){s.push({id:i(),role:"assistant",content:"",askUser:{questionId:n.questionId,question:n.question??"",options:n.options,multiSelect:n.multiSelect},timestamp:Date.now()});continue}"done"===n.type&&"string"==typeof n.finalText&&(r?(r.content=n.finalText,r.isStreaming=!1):n.finalText.trim()&&s.push({id:i(),role:"assistant",content:n.finalText,timestamp:Date.now()}),r=null)}return s}},1436:(e,t,s)=>{s.d(t,{N:()=>d});var r=s(1322),n=s(7561),i=s(9411);class o{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,n.existsSync)(this.lockPath))try{let e=parseInt((0,n.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,i.dirname)(this.lockPath);return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),(0,n.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,n.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class a{constructor(e,t,s){this.cronTasks=e,this.onFire=t,this.onTasksChanged=s,this.timer=null,this.watcher=null,this.started=!1,this.lock=new o(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,i.dirname)(e);if(!(0,n.existsSync)(t))try{(0,n.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,n.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),s=!1;for(let n of t)n.enabled&&n.nextFireAt&&!(n.nextFireAt>e)&&(this.onFire(n),n.recurring?this.cronTasks.update(n.id,{nextFireAt:(0,r.Ilu)(n.cron,e),lastFiredAt:e}):this.cronTasks.delete(n.id),s=!0);s&&this.onTasksChanged(this.cronTasks.load())}}var l=s(785);class c{constructor(){this.tasks=new r.vo4((0,l.kO)()),this.scheduler=new a(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await s.e(4537).then(s.bind(s,4537)),{getCustomerGoalCoordinator:r}=await Promise.all([s.e(4537),s.e(732)]).then(s.bind(s,732)),n=e.sessionId;n&&await t.getSessionStore().get(n)||(n=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:n})),await r().enqueue(n,e.prompt)}call(e,t){let s=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(s);case"cronResume":return this.tasks.resume(s);case"cronDelete":return this.tasks.delete(s);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let u=globalThis;function d(){return u.__sharedCronService??=new c}}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,6244,1322,4621,2083,4537],()=>s(7620));module.exports=r})();
1
+ "use strict";(()=>{var e={};e.id=5241,e.ids=[5241],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")},7664:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{originalPathname:()=>m,patchFetch:()=>c,requestAsyncStorage:()=>d,routeModule:()=>u,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var n=s(7786),i=s(5042),o=s(2184),a=s(3082),l=e([a]);a=(l.then?(await l)():l)[0];let u=new n.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/sessions/[id]/route",pathname:"/api/sessions/[id]",filename:"route",bundlePath:"app/api/sessions/[id]/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/sessions/[id]/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=u,m="/api/sessions/[id]/route";function c(){return(0,o.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}r()}catch(e){r(e)}})},3082:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{DELETE:()=>p,GET:()=>d,PATCH:()=>h});var n=s(1890),i=s(1322),o=s(4537),a=s(2083),l=s(132),c=s(8274),u=e([a]);async function d(e,{params:t}){let s=new URL(e.url),r=s.searchParams.get("before"),u=s.searchParams.get("after"),d=s.searchParams.get("anchor"),h=s.searchParams.get("limit"),p=s.searchParams.get("view"),m=s.searchParams.get("revision"),g=s.searchParams.get("turnId"),f="core"===p||"trace"===p?p:void 0,x=null!==r||null!==u||null!==d||null!==h||f||m||g?{before:r||void 0,after:u||void 0,anchor:d||void 0,limit:function(e){if(null===e)return;let t=Number(e);return Number.isFinite(t)?t:void 0}(h),view:f,revision:m||void 0,turnId:g||void 0}:void 0;if((0,a.V_)(t.id))try{let e=await (0,a.NL)().get(t.id,x);return n.NextResponse.json(e)}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Internal error",...e instanceof l.n?{code:e.code}:{}},{status:(0,a.WW)(e)})}let y=await o.agentHost.getSessionStore().get(t.id);if(!y)return n.NextResponse.json({error:"Session not found"},{status:404});let k=o.agentHost.getRecoverableRun(y),v=!y.messages?.length&&!k&&Array.isArray(y.events)&&y.events.length>0?(0,c.Q)(y.events):y.messages,w=k?(0,c.Q)(y.events.slice(k.eventStart),{runId:k.runId,isStreaming:k.running}):[],S=[...v??[],...w],q=k?k.running?"active":"failed":y.status,P=k?{runId:k.runId,eventId:k.eventId,running:k.running}:void 0;try{let e=x?{...y,agentType:"customer-agent",status:q,permissionMode:(0,i.NyU)(y.metadata.permissionMode),...P?{activeRun:P}:{},...(0,i.MOJ)(S??[],y.events??[],x)}:{...y,agentType:"customer-agent",status:q,messages:S,permissionMode:(0,i.NyU)(y.metadata.permissionMode),...P?{activeRun:P}:{}};return n.NextResponse.json({...e,messageQueueVersion:1,goalState:(0,i.E0T)(y.metadata)})}catch(e){if(e instanceof i.ujo)return n.NextResponse.json({error:e.message,code:e.code},{status:409});throw e}}async function h(e,{params:t}){let s=await e.json();if(!(0,i.ueU)(s.permissionMode))return n.NextResponse.json({error:"Invalid permission mode"},{status:400});if((0,a.V_)(t.id))try{let e=await (0,a.NL)().setPermissionMode(t.id,s.permissionMode);return n.NextResponse.json(e)}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Unable to update permission mode"},{status:(0,a.WW)(e)})}try{let e=await o.agentHost.setSessionPermissionMode(t.id,s.permissionMode);return n.NextResponse.json({...e,permissionMode:(0,i.NyU)(e.metadata.permissionMode)})}catch(s){let e=s instanceof Error?s.message:"Unable to update permission mode",t=e.startsWith("Session not found")?404:500;return n.NextResponse.json({error:e},{status:t})}}async function p(e,{params:t}){if((0,a.V_)(t.id))try{return await (0,a.NL)().delete(t.id),n.NextResponse.json({status:"deleted"})}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Unable to delete session"},{status:(0,a.WW)(e)})}return o.agentHost.isSessionRunning(t.id)?n.NextResponse.json({error:"Session is currently running"},{status:409}):(await o.agentHost.getSessionStore().delete(t.id),n.NextResponse.json({status:"deleted"}))}a=(u.then?(await u)():u)[0],r()}catch(e){r(e)}})},8274:(e,t,s)=>{s.d(t,{Q:()=>r});function r(e,t={}){let s=[],r=null,n=0,i=()=>`${t.runId??"event-history"}:${n++}`;for(let n of e){if("text_chunk"===n.type){r||(r={id:i(),role:"assistant",content:"",isStreaming:t.isStreaming??!0,timestamp:Date.now()},s.push(r)),r.content=`${r.content??""}${n.text??""}`;continue}if("tool_call"===n.type&&n.toolCall){r?(r.toolCalls=[n.toolCall],r.isStreaming=!1):s.push({id:i(),role:"assistant",content:"",toolCalls:[n.toolCall],isStreaming:!1,timestamp:Date.now()}),r=null;continue}if("tool_result"===n.type&&n.result){let e=n.result;s.push({id:i(),role:"tool",content:e.content??"",toolCallId:e.toolCallId,timestamp:Date.now()});continue}if("ask_user"===n.type){s.push({id:i(),role:"assistant",content:"",askUser:{questionId:n.questionId,question:n.question??"",options:n.options,multiSelect:n.multiSelect},timestamp:Date.now()});continue}"done"===n.type&&"string"==typeof n.finalText&&(r?(r.content=n.finalText,r.isStreaming=!1):n.finalText.trim()&&s.push({id:i(),role:"assistant",content:n.finalText,timestamp:Date.now()}),r=null)}return s}},1436:(e,t,s)=>{s.d(t,{N:()=>d});var r=s(1322),n=s(7561),i=s(9411);class o{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,n.existsSync)(this.lockPath))try{let e=parseInt((0,n.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,i.dirname)(this.lockPath);return(0,n.existsSync)(e)||(0,n.mkdirSync)(e,{recursive:!0}),(0,n.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,n.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class a{constructor(e,t,s){this.cronTasks=e,this.onFire=t,this.onTasksChanged=s,this.timer=null,this.watcher=null,this.started=!1,this.lock=new o(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,i.dirname)(e);if(!(0,n.existsSync)(t))try{(0,n.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,n.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),s=!1;for(let n of t)n.enabled&&n.nextFireAt&&!(n.nextFireAt>e)&&(this.onFire(n),n.recurring?this.cronTasks.update(n.id,{nextFireAt:(0,r.Ilu)(n.cron,e),lastFiredAt:e}):this.cronTasks.delete(n.id),s=!0);s&&this.onTasksChanged(this.cronTasks.load())}}var l=s(785);class c{constructor(){this.tasks=new r.vo4((0,l.kO)()),this.scheduler=new a(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await s.e(4537).then(s.bind(s,4537)),{getCustomerGoalCoordinator:r}=await Promise.all([s.e(4537),s.e(732)]).then(s.bind(s,732)),n=e.sessionId;n&&await t.getSessionStore().get(n)||(n=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:n})),await r().enqueue(n,e.prompt)}call(e,t){let s=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(s);case"cronResume":return this.tasks.resume(s);case"cronDelete":return this.tasks.delete(s);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let u=globalThis;function d(){return u.__sharedCronService??=new c}}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,6244,1322,4621,2083,4537],()=>s(7664));module.exports=r})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=6787,e.ids=[6787],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")},9159:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>p,requestAsyncStorage:()=>l,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>c});var o=t(7786),n=t(5042),i=t(2184),a=t(2567),u=e([a]);a=(u.then?(await u)():u)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/tool-result/route",pathname:"/api/sessions/[id]/tool-result",filename:"route",bundlePath:"app/api/sessions/[id]/tool-result/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/sessions/[id]/tool-result/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:l,staticGenerationAsyncStorage:c,serverHooks:x}=d,m="/api/sessions/[id]/tool-result/route";function p(){return(0,i.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:c})}s()}catch(e){s(e)}})},2567:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{GET:()=>a});var o=t(1890),n=t(2083),i=e([n]);async function a(e,{params:r}){if(!(0,n.V_)(r.id))return o.NextResponse.json({error:"Session tool results are available only for native sessions",code:"OPERATION_NOT_SUPPORTED"},{status:405});let t=new URL(e.url),s=t.searchParams.get("turnId")?.trim(),i=t.searchParams.get("itemId")?.trim(),a=t.searchParams.get("revision")?.trim();if(!s||!i||!a)return o.NextResponse.json({error:"turnId, itemId, and revision are required",code:"INVALID_SESSION_ID"},{status:400});try{let e=await (0,n.NL)().getSessionToolResult(r.id,{turnId:s,itemId:i,revision:a});return o.NextResponse.json(e)}catch(t){let e="object"==typeof t&&null!==t&&"string"==typeof t.code?t.code:void 0,r=(0,n.WW)(t);return o.NextResponse.json({error:t instanceof Error?t.message:"Unable to load tool result",...e?{code:e}:{}},{status:r})}}n=(i.then?(await i)():i)[0],s()}catch(e){s(e)}})},785:(e,r,t)=>{t.d(r,{kO:()=>n,sr:()=>i});var s=t(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,s.dirname)((0,s.resolve)(e)),t=`${s.sep}node_modules${s.sep}.bin`;return r.endsWith(t)?(0,s.resolve)(r,"..",".."):r}return(0,s.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,6244,1322,2083],()=>t(9159));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=6787,e.ids=[6787],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")},7888:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>p,requestAsyncStorage:()=>l,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>c});var o=t(7786),n=t(5042),i=t(2184),a=t(2567),u=e([a]);a=(u.then?(await u)():u)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/tool-result/route",pathname:"/api/sessions/[id]/tool-result",filename:"route",bundlePath:"app/api/sessions/[id]/tool-result/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/sessions/[id]/tool-result/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:l,staticGenerationAsyncStorage:c,serverHooks:x}=d,m="/api/sessions/[id]/tool-result/route";function p(){return(0,i.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:c})}s()}catch(e){s(e)}})},2567:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{GET:()=>a});var o=t(1890),n=t(2083),i=e([n]);async function a(e,{params:r}){if(!(0,n.V_)(r.id))return o.NextResponse.json({error:"Session tool results are available only for native sessions",code:"OPERATION_NOT_SUPPORTED"},{status:405});let t=new URL(e.url),s=t.searchParams.get("turnId")?.trim(),i=t.searchParams.get("itemId")?.trim(),a=t.searchParams.get("revision")?.trim();if(!s||!i||!a)return o.NextResponse.json({error:"turnId, itemId, and revision are required",code:"INVALID_SESSION_ID"},{status:400});try{let e=await (0,n.NL)().getSessionToolResult(r.id,{turnId:s,itemId:i,revision:a});return o.NextResponse.json(e)}catch(t){let e="object"==typeof t&&null!==t&&"string"==typeof t.code?t.code:void 0,r=(0,n.WW)(t);return o.NextResponse.json({error:t instanceof Error?t.message:"Unable to load tool result",...e?{code:e}:{}},{status:r})}}n=(i.then?(await i)():i)[0],s()}catch(e){s(e)}})},785:(e,r,t)=>{t.d(r,{kO:()=>n,sr:()=>i});var s=t(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,s.dirname)((0,s.resolve)(e)),t=`${s.sep}node_modules${s.sep}.bin`;return r.endsWith(t)?(0,s.resolve)(r,"..",".."):r}return(0,s.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,6244,1322,2083],()=>t(7888));module.exports=s})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=1772,e.ids=[1772],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")},4971:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{originalPathname:()=>g,patchFetch:()=>l,requestAsyncStorage:()=>d,routeModule:()=>u,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var i=r(7786),o=r(5042),a=r(2184),n=r(5110),c=e([n]);n=(c.then?(await c)():c)[0];let u=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/sessions/route",pathname:"/api/sessions",filename:"route",bundlePath:"app/api/sessions/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/sessions/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=u,g="/api/sessions/route";function l(){return(0,a.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}s()}catch(e){s(e)}})},5110:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{GET:()=>l,POST:()=>u});var i=r(1890),o=r(1322),a=r(4537),n=r(2083),c=e([n]);async function l(e){let t=new URL(e.url),r=t.searchParams.get("projectId")||void 0,s="1"===t.searchParams.get("refresh"),c=await a.agentHost.getSessionStore().list(r),l=(0,n.NL)(),u=c.map(({messages:e,events:t,...r})=>({...r,agentType:"customer-agent",messageQueueVersion:1,canDelete:!a.agentHost.isSessionRunning(r.id),permissionMode:(0,o.NyU)(r.metadata.permissionMode)}));try{let e=s?await l.refresh(r):await l.list(r);return i.NextResponse.json([...u,...e])}catch(e){return console.error("Native session discovery failed:",e),i.NextResponse.json(u)}}async function u(e){let t=await e.json(),r=t.agentType??"customer-agent";if("customer-agent"!==r)try{if(!t.projectId&&!t.cwd?.trim())throw new a.B("请选择宿主机项目","PROJECT_PATH_REQUIRED",400);let e=t.cwd?.trim()||(t.projectId?await a.agentHost.resolveProjectWorkingDirectory(t.projectId,!0):""),s=await (0,n.NL)().create({agentType:r,title:t.title??"新会话",cwd:e,...t.projectId?{projectId:t.projectId}:{}});return i.NextResponse.json(s,{status:201})}catch(e){if(e instanceof a.B)return i.NextResponse.json({error:{code:e.code,message:e.message}},{status:e.status});return i.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,n.WW)(e)})}let s=await a.agentHost.createSession(t.title??"Untitled",t.projectId??"");return i.NextResponse.json({...s,agentType:"customer-agent",messageQueueVersion:1},{status:201})}n=(c.then?(await c)():c)[0],s()}catch(e){s(e)}})},1436:(e,t,r)=>{r.d(t,{N:()=>d});var s=r(1322),i=r(7561),o=r(9411);class a{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,i.existsSync)(this.lockPath))try{let e=parseInt((0,i.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,o.dirname)(this.lockPath);return(0,i.existsSync)(e)||(0,i.mkdirSync)(e,{recursive:!0}),(0,i.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,i.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class n{constructor(e,t,r){this.cronTasks=e,this.onFire=t,this.onTasksChanged=r,this.timer=null,this.watcher=null,this.started=!1,this.lock=new a(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,o.dirname)(e);if(!(0,i.existsSync)(t))try{(0,i.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,i.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),r=!1;for(let i of t)i.enabled&&i.nextFireAt&&!(i.nextFireAt>e)&&(this.onFire(i),i.recurring?this.cronTasks.update(i.id,{nextFireAt:(0,s.Ilu)(i.cron,e),lastFiredAt:e}):this.cronTasks.delete(i.id),r=!0);r&&this.onTasksChanged(this.cronTasks.load())}}var c=r(785);class l{constructor(){this.tasks=new s.vo4((0,c.kO)()),this.scheduler=new n(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await r.e(4537).then(r.bind(r,4537)),{getCustomerGoalCoordinator:s}=await Promise.all([r.e(4537),r.e(732)]).then(r.bind(r,732)),i=e.sessionId;i&&await t.getSessionStore().get(i)||(i=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:i})),await s().enqueue(i,e.prompt)}call(e,t){let r=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(r);case"cronResume":return this.tasks.resume(r);case"cronDelete":return this.tasks.delete(r);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let u=globalThis;function d(){return u.__sharedCronService??=new l}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,6244,1322,4621,2083,4537],()=>r(4971));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=1772,e.ids=[1772],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")},2095:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{originalPathname:()=>g,patchFetch:()=>l,requestAsyncStorage:()=>d,routeModule:()=>u,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var i=r(7786),o=r(5042),a=r(2184),n=r(5110),c=e([n]);n=(c.then?(await c)():c)[0];let u=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/sessions/route",pathname:"/api/sessions",filename:"route",bundlePath:"app/api/sessions/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/sessions/route.ts",nextConfigOutput:"standalone",userland:n}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=u,g="/api/sessions/route";function l(){return(0,a.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}s()}catch(e){s(e)}})},5110:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{GET:()=>l,POST:()=>u});var i=r(1890),o=r(1322),a=r(4537),n=r(2083),c=e([n]);async function l(e){let t=new URL(e.url),r=t.searchParams.get("projectId")||void 0,s="1"===t.searchParams.get("refresh"),c=await a.agentHost.getSessionStore().list(r),l=(0,n.NL)(),u=c.map(({messages:e,events:t,...r})=>({...r,agentType:"customer-agent",messageQueueVersion:1,canDelete:!a.agentHost.isSessionRunning(r.id),permissionMode:(0,o.NyU)(r.metadata.permissionMode)}));try{let e=s?await l.refresh(r):await l.list(r);return i.NextResponse.json([...u,...e])}catch(e){return console.error("Native session discovery failed:",e),i.NextResponse.json(u)}}async function u(e){let t=await e.json(),r=t.agentType??"customer-agent";if("customer-agent"!==r)try{if(!t.projectId&&!t.cwd?.trim())throw new a.B("请选择宿主机项目","PROJECT_PATH_REQUIRED",400);let e=t.cwd?.trim()||(t.projectId?await a.agentHost.resolveProjectWorkingDirectory(t.projectId,!0):""),s=await (0,n.NL)().create({agentType:r,title:t.title??"新会话",cwd:e,...t.projectId?{projectId:t.projectId}:{}});return i.NextResponse.json(s,{status:201})}catch(e){if(e instanceof a.B)return i.NextResponse.json({error:{code:e.code,message:e.message}},{status:e.status});return i.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,n.WW)(e)})}let s=await a.agentHost.createSession(t.title??"Untitled",t.projectId??"");return i.NextResponse.json({...s,agentType:"customer-agent",messageQueueVersion:1},{status:201})}n=(c.then?(await c)():c)[0],s()}catch(e){s(e)}})},1436:(e,t,r)=>{r.d(t,{N:()=>d});var s=r(1322),i=r(7561),o=r(9411);class a{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,i.existsSync)(this.lockPath))try{let e=parseInt((0,i.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,o.dirname)(this.lockPath);return(0,i.existsSync)(e)||(0,i.mkdirSync)(e,{recursive:!0}),(0,i.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,i.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class n{constructor(e,t,r){this.cronTasks=e,this.onFire=t,this.onTasksChanged=r,this.timer=null,this.watcher=null,this.started=!1,this.lock=new a(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,o.dirname)(e);if(!(0,i.existsSync)(t))try{(0,i.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,i.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),r=!1;for(let i of t)i.enabled&&i.nextFireAt&&!(i.nextFireAt>e)&&(this.onFire(i),i.recurring?this.cronTasks.update(i.id,{nextFireAt:(0,s.Ilu)(i.cron,e),lastFiredAt:e}):this.cronTasks.delete(i.id),r=!0);r&&this.onTasksChanged(this.cronTasks.load())}}var c=r(785);class l{constructor(){this.tasks=new s.vo4((0,c.kO)()),this.scheduler=new n(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await r.e(4537).then(r.bind(r,4537)),{getCustomerGoalCoordinator:s}=await Promise.all([r.e(4537),r.e(732)]).then(r.bind(r,732)),i=e.sessionId;i&&await t.getSessionStore().get(i)||(i=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:i})),await s().enqueue(i,e.prompt)}call(e,t){let r=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(r);case"cronResume":return this.tasks.resume(r);case"cronDelete":return this.tasks.delete(r);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let u=globalThis;function d(){return u.__sharedCronService??=new l}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,6244,1322,4621,2083,4537],()=>r(2095));module.exports=s})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=6668,e.ids=[6668],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")},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")},5984:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>v,patchFetch:()=>m,requestAsyncStorage:()=>f,routeModule:()=>c,serverHooks:()=>g,staticGenerationAsyncStorage:()=>h});var i={};t.r(i),t.d(i,{GET:()=>l,POST:()=>u,dynamic:()=>p});var s=t(7786),o=t(5042),n=t(2184),a=t(1982),d=t(9001);let p="force-dynamic";async function l(){return Response.json((0,a.dp)().publicView(),{headers:{"cache-control":"no-store"}})}async function u(e){let r=(0,d.o)(e);if(r)return r;try{let r=await e.json();if(!r||"object"!=typeof r||Array.isArray(r))throw new a.kg("设置必须是对象");return Response.json((0,a.dp)().save(r),{headers:{"cache-control":"no-store"}})}catch(e){return Response.json({error:e instanceof Error?e.message:"保存失败"},{status:e instanceof a.kg?e.status:400})}}let c=new s.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:"app/api/settings/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/settings/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:f,staticGenerationAsyncStorage:h,serverHooks:g}=c,v="/api/settings/route";function m(){return(0,n.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:h})}},7786:(e,r,t)=>{e.exports=t(517)},785:(e,r,t)=>{t.d(r,{kO:()=>o,sr:()=>n});var i=t(9411);let s=function(){let e=process.argv[1];if(e){let r=(0,i.dirname)((0,i.resolve)(e)),t=`${i.sep}node_modules${i.sep}.bin`;return r.endsWith(t)?(0,i.resolve)(r,"..",".."):r}return(0,i.resolve)(process.cwd())}();function o(){return function(e=process.env,r=s){return(0,i.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function n(){return function(e=process.env,r=s){return(0,i.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,o())}},1982:(e,r,t)=>{let i;t.d(r,{dp:()=>u,kg:()=>d});var s=t(1322),o=t(785),n=t(6005);let a="__agentroam_stored_secret__";class d extends Error{constructor(e,r=400){super(e),this.status=r}}class p{constructor(e,r=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")&&r.AGENT_API_KEY){let e={id:"server-default",name:"服务端默认",provider:r.AGENT_MODEL_PROVIDER||"openai",modelId:r.AGENT_MODEL_ID||"gpt-4o",apiKey:r.AGENT_API_KEY,baseUrl:r.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?a:"",profiles:e.profiles.map(e=>({...e,apiKey:e.apiKey?a:""}))}}save(e){return(0,s.N8n)(this.baseDir).db.transaction(()=>{let r=this.read();if(void 0!==e.revision&&e.revision!==r.revision)throw new d("设置已被另一端修改,请重新加载后保存",409);let t={...r};for(let r of["modelProvider","modelId","baseUrl","workingDirectory","activeProfileId"])if(void 0!==e[r]){if("string"!=typeof e[r])throw new d(`${r} 必须是字符串`);t[r]=e[r]}for(let[r,i,s]of[["maxIterations",1,50],["contextWindow",8,2e3]])if(void 0!==e[r]){if("number"!=typeof e[r]||!Number.isFinite(e[r])||e[r]<i||e[r]>s)throw new d(`${r} 超出范围`);t[r]=e[r]}if(void 0!==e.reasoningEffort){if(!["off","low","medium","high"].includes(String(e.reasoningEffort)))throw new d("reasoningEffort 无效");t.reasoningEffort=e.reasoningEffort}if(void 0!==e.apiKey&&(t.apiKey=l(e.apiKey,r.apiKey)),void 0!==e.profiles){if(!Array.isArray(e.profiles)||e.profiles.length>100)throw new d("profiles 必须是数组");let i=new Set;t.profiles=e.profiles.map(e=>{if(!e||"object"!=typeof e)throw new d("profile 无效");for(let r of["id","name","provider","modelId","baseUrl"])if("string"!=typeof e[r])throw new d(`profile.${r} 无效`);if(!e.id||i.has(e.id))throw new d("profile.id 重复或为空");if(i.add(e.id),!["openai","anthropic","deepseek"].includes(e.provider))throw new d("不支持的模型提供方");return{id:e.id,name:e.name,provider:e.provider,modelId:e.modelId,baseUrl:e.baseUrl,apiKey:l(e.apiKey,r.profiles.find(r=>r.id===e.id)?.apiKey||"")}})}let i=t.profiles.find(e=>e.id===t.activeProfileId);if(t.activeProfileId&&!i)throw new d("找不到当前配置档案");if(i&&Object.assign(t,{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 d("activeAgentIds 无效");t.activeAgentIds=[...new Set(e.activeAgentIds)]}return t.isConfigured=!!t.apiKey,this.store.saveAll(t),this.store.set("activeAgentIds",JSON.stringify(t.activeAgentIds)),this.store.set("sharedSettingsRevision",String(r.revision+1)),this.publicView()})()}}function l(e,r){if(void 0===e||""===e||e===a)return r;if("string"!=typeof e||e.length>16384)throw new d("apiKey 无效");return e}function u(){return i??=new p((0,o.kO)())}},9001:(e,r,t)=>{t.d(r,{o:()=>s});let i=new Set(["capacitor://localhost","ionic://localhost"]);function s(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||i.has(r))return null;let t=new URL(e.url),s="1"===process.env.AGENT_TRUST_TUNNEL_PROXY,o=s?e.headers.get("x-forwarded-host")?.split(",")[0].trim()||e.headers.get("host")||t.host:e.headers.get("host")||t.host,n=s&&e.headers.get("x-forwarded-proto")?.split(",")[0].trim()||t.protocol.slice(0,-1);return r!==`${n}://${o}`?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),i=r.X(0,[8375,1322],()=>t(5984));module.exports=i})();
1
+ "use strict";(()=>{var e={};e.id=6668,e.ids=[6668],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")},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")},2477:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>v,patchFetch:()=>m,requestAsyncStorage:()=>f,routeModule:()=>c,serverHooks:()=>g,staticGenerationAsyncStorage:()=>h});var i={};t.r(i),t.d(i,{GET:()=>l,POST:()=>u,dynamic:()=>p});var s=t(7786),o=t(5042),n=t(2184),a=t(1982),d=t(9001);let p="force-dynamic";async function l(){return Response.json((0,a.dp)().publicView(),{headers:{"cache-control":"no-store"}})}async function u(e){let r=(0,d.o)(e);if(r)return r;try{let r=await e.json();if(!r||"object"!=typeof r||Array.isArray(r))throw new a.kg("设置必须是对象");return Response.json((0,a.dp)().save(r),{headers:{"cache-control":"no-store"}})}catch(e){return Response.json({error:e instanceof Error?e.message:"保存失败"},{status:e instanceof a.kg?e.status:400})}}let c=new s.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:"app/api/settings/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/settings/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:f,staticGenerationAsyncStorage:h,serverHooks:g}=c,v="/api/settings/route";function m(){return(0,n.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:h})}},7786:(e,r,t)=>{e.exports=t(517)},785:(e,r,t)=>{t.d(r,{kO:()=>o,sr:()=>n});var i=t(9411);let s=function(){let e=process.argv[1];if(e){let r=(0,i.dirname)((0,i.resolve)(e)),t=`${i.sep}node_modules${i.sep}.bin`;return r.endsWith(t)?(0,i.resolve)(r,"..",".."):r}return(0,i.resolve)(process.cwd())}();function o(){return function(e=process.env,r=s){return(0,i.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function n(){return function(e=process.env,r=s){return(0,i.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,o())}},1982:(e,r,t)=>{let i;t.d(r,{dp:()=>u,kg:()=>d});var s=t(1322),o=t(785),n=t(6005);let a="__agentroam_stored_secret__";class d extends Error{constructor(e,r=400){super(e),this.status=r}}class p{constructor(e,r=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")&&r.AGENT_API_KEY){let e={id:"server-default",name:"服务端默认",provider:r.AGENT_MODEL_PROVIDER||"openai",modelId:r.AGENT_MODEL_ID||"gpt-4o",apiKey:r.AGENT_API_KEY,baseUrl:r.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?a:"",profiles:e.profiles.map(e=>({...e,apiKey:e.apiKey?a:""}))}}save(e){return(0,s.N8n)(this.baseDir).db.transaction(()=>{let r=this.read();if(void 0!==e.revision&&e.revision!==r.revision)throw new d("设置已被另一端修改,请重新加载后保存",409);let t={...r};for(let r of["modelProvider","modelId","baseUrl","workingDirectory","activeProfileId"])if(void 0!==e[r]){if("string"!=typeof e[r])throw new d(`${r} 必须是字符串`);t[r]=e[r]}for(let[r,i,s]of[["maxIterations",1,50],["contextWindow",8,2e3]])if(void 0!==e[r]){if("number"!=typeof e[r]||!Number.isFinite(e[r])||e[r]<i||e[r]>s)throw new d(`${r} 超出范围`);t[r]=e[r]}if(void 0!==e.reasoningEffort){if(!["off","low","medium","high"].includes(String(e.reasoningEffort)))throw new d("reasoningEffort 无效");t.reasoningEffort=e.reasoningEffort}if(void 0!==e.apiKey&&(t.apiKey=l(e.apiKey,r.apiKey)),void 0!==e.profiles){if(!Array.isArray(e.profiles)||e.profiles.length>100)throw new d("profiles 必须是数组");let i=new Set;t.profiles=e.profiles.map(e=>{if(!e||"object"!=typeof e)throw new d("profile 无效");for(let r of["id","name","provider","modelId","baseUrl"])if("string"!=typeof e[r])throw new d(`profile.${r} 无效`);if(!e.id||i.has(e.id))throw new d("profile.id 重复或为空");if(i.add(e.id),!["openai","anthropic","deepseek"].includes(e.provider))throw new d("不支持的模型提供方");return{id:e.id,name:e.name,provider:e.provider,modelId:e.modelId,baseUrl:e.baseUrl,apiKey:l(e.apiKey,r.profiles.find(r=>r.id===e.id)?.apiKey||"")}})}let i=t.profiles.find(e=>e.id===t.activeProfileId);if(t.activeProfileId&&!i)throw new d("找不到当前配置档案");if(i&&Object.assign(t,{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 d("activeAgentIds 无效");t.activeAgentIds=[...new Set(e.activeAgentIds)]}return t.isConfigured=!!t.apiKey,this.store.saveAll(t),this.store.set("activeAgentIds",JSON.stringify(t.activeAgentIds)),this.store.set("sharedSettingsRevision",String(r.revision+1)),this.publicView()})()}}function l(e,r){if(void 0===e||""===e||e===a)return r;if("string"!=typeof e||e.length>16384)throw new d("apiKey 无效");return e}function u(){return i??=new p((0,o.kO)())}},9001:(e,r,t)=>{t.d(r,{o:()=>s});let i=new Set(["capacitor://localhost","ionic://localhost"]);function s(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||i.has(r))return null;let t=new URL(e.url),s="1"===process.env.AGENT_TRUST_TUNNEL_PROXY,o=s?e.headers.get("x-forwarded-host")?.split(",")[0].trim()||e.headers.get("host")||t.host:e.headers.get("host")||t.host,n=s&&e.headers.get("x-forwarded-proto")?.split(",")[0].trim()||t.protocol.slice(0,-1);return r!==`${n}://${o}`?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),i=r.X(0,[8375,1322],()=>t(2477));module.exports=i})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=1731,e.ids=[1731],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")},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")},9393:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>q,patchFetch:()=>f,requestAsyncStorage:()=>m,routeModule:()=>c,serverHooks:()=>h,staticGenerationAsyncStorage:()=>x});var s={};t.r(s),t.d(s,{GET:()=>u,POST:()=>d});var i=t(7786),o=t(5042),a=t(2184),n=t(1890),p=t(1322),l=t(4621);async function u(){let e=await (0,l.i)().call("listSkills",[]);return n.NextResponse.json(e.map(e=>({name:e.name,description:e.description,triggers:e.triggers,filePath:e.filePath})))}async function d(e){try{let r=await e.json(),t=new p.N78,s=(0,l.i)().skills,i=[];if(r.filePath){let e=await t.loadFromFile(r.filePath);await s.save(e),i.push({name:e.name,description:e.description})}else if(!r.dirPath)return n.NextResponse.json({error:"filePath or dirPath is required"},{status:400});else for(let e of(await t.loadFromDirectory(r.dirPath)))await s.save(await t.loadFromFile(e.filePath)),i.push({name:e.name,description:e.description});return n.NextResponse.json({status:"imported",count:i.length,skills:i})}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Skill import failed"},{status:500})}}let c=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/skills/route",pathname:"/api/skills",filename:"route",bundlePath:"app/api/skills/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/skills/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:m,staticGenerationAsyncStorage:x,serverHooks:h}=c,q="/api/skills/route";function f(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:x})}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,1322,4621],()=>t(9393));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=1731,e.ids=[1731],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")},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")},8441:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>f,patchFetch:()=>q,requestAsyncStorage:()=>m,routeModule:()=>c,serverHooks:()=>h,staticGenerationAsyncStorage:()=>x});var s={};t.r(s),t.d(s,{GET:()=>u,POST:()=>d});var i=t(7786),o=t(5042),a=t(2184),n=t(1890),p=t(1322),l=t(4621);async function u(){let e=await (0,l.i)().call("listSkills",[]);return n.NextResponse.json(e.map(e=>({name:e.name,description:e.description,triggers:e.triggers,filePath:e.filePath})))}async function d(e){try{let r=await e.json(),t=new p.N78,s=(0,l.i)().skills,i=[];if(r.filePath){let e=await t.loadFromFile(r.filePath);await s.save(e),i.push({name:e.name,description:e.description})}else if(!r.dirPath)return n.NextResponse.json({error:"filePath or dirPath is required"},{status:400});else for(let e of(await t.loadFromDirectory(r.dirPath)))await s.save(await t.loadFromFile(e.filePath)),i.push({name:e.name,description:e.description});return n.NextResponse.json({status:"imported",count:i.length,skills:i})}catch(e){return n.NextResponse.json({error:e instanceof Error?e.message:"Skill import failed"},{status:500})}}let c=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/skills/route",pathname:"/api/skills",filename:"route",bundlePath:"app/api/skills/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/skills/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:m,staticGenerationAsyncStorage:x,serverHooks:h}=c,f="/api/skills/route";function q(){return(0,a.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:x})}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,1322,4621],()=>t(8441));module.exports=s})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=443,e.ids=[443],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")},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")},7480:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>k,patchFetch:()=>g,requestAsyncStorage:()=>u,routeModule:()=>h,serverHooks:()=>p,staticGenerationAsyncStorage:()=>d});var s={};r.r(s),r.d(s,{GET:()=>l});var i=r(7786),o=r(5042),a=r(2184),n=r(1890),c=r(4537);async function l(){let e=c.agentHost.getBuilder().getToolRegistry().getAll();return n.NextResponse.json(e.map(e=>({name:e.name,description:e.description,parameters:e.parameters})))}let h=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/tools/route",pathname:"/api/tools",filename:"route",bundlePath:"app/api/tools/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/tools/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:u,staticGenerationAsyncStorage:d,serverHooks:p}=h,k="/api/tools/route";function g(){return(0,a.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:d})}},1436:(e,t,r)=>{r.d(t,{N:()=>u});var s=r(1322),i=r(7561),o=r(9411);class a{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,i.existsSync)(this.lockPath))try{let e=parseInt((0,i.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,o.dirname)(this.lockPath);return(0,i.existsSync)(e)||(0,i.mkdirSync)(e,{recursive:!0}),(0,i.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,i.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class n{constructor(e,t,r){this.cronTasks=e,this.onFire=t,this.onTasksChanged=r,this.timer=null,this.watcher=null,this.started=!1,this.lock=new a(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,o.dirname)(e);if(!(0,i.existsSync)(t))try{(0,i.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,i.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),r=!1;for(let i of t)i.enabled&&i.nextFireAt&&!(i.nextFireAt>e)&&(this.onFire(i),i.recurring?this.cronTasks.update(i.id,{nextFireAt:(0,s.Ilu)(i.cron,e),lastFiredAt:e}):this.cronTasks.delete(i.id),r=!0);r&&this.onTasksChanged(this.cronTasks.load())}}var c=r(785);class l{constructor(){this.tasks=new s.vo4((0,c.kO)()),this.scheduler=new n(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await r.e(4537).then(r.bind(r,4537)),{getCustomerGoalCoordinator:s}=await Promise.all([r.e(4537),r.e(732)]).then(r.bind(r,732)),i=e.sessionId;i&&await t.getSessionStore().get(i)||(i=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:i})),await s().enqueue(i,e.prompt)}call(e,t){let r=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(r);case"cronResume":return this.tasks.resume(r);case"cronDelete":return this.tasks.delete(r);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let h=globalThis;function u(){return h.__sharedCronService??=new l}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,1322,4621,4537],()=>r(7480));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=443,e.ids=[443],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")},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")},4562:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>k,patchFetch:()=>m,requestAsyncStorage:()=>u,routeModule:()=>h,serverHooks:()=>p,staticGenerationAsyncStorage:()=>d});var s={};r.r(s),r.d(s,{GET:()=>l});var i=r(7786),o=r(5042),a=r(2184),n=r(1890),c=r(4537);async function l(){let e=c.agentHost.getBuilder().getToolRegistry().getAll();return n.NextResponse.json(e.map(e=>({name:e.name,description:e.description,parameters:e.parameters})))}let h=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/tools/route",pathname:"/api/tools",filename:"route",bundlePath:"app/api/tools/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/tools/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:u,staticGenerationAsyncStorage:d,serverHooks:p}=h,k="/api/tools/route";function m(){return(0,a.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:d})}},1436:(e,t,r)=>{r.d(t,{N:()=>u});var s=r(1322),i=r(7561),o=r(9411);class a{constructor(e){this._acquired=!1,this.lockPath=e.replace(/scheduled_tasks\.json$/,".scheduler.lock")}get acquired(){return this._acquired}tryAcquire(){if(this._acquired)return!0;if((0,i.existsSync)(this.lockPath))try{let e=parseInt((0,i.readFileSync)(this.lockPath,"utf-8").trim(),10);if(!isNaN(e)&&e!==process.pid)try{return process.kill(e,0),!1}catch{}}catch{}try{let e=(0,o.dirname)(this.lockPath);return(0,i.existsSync)(e)||(0,i.mkdirSync)(e,{recursive:!0}),(0,i.writeFileSync)(this.lockPath,String(process.pid),"utf-8"),this._acquired=!0,!0}catch{return!1}}release(){if(this._acquired){try{(0,i.unlinkSync)(this.lockPath)}catch{}this._acquired=!1}}}class n{constructor(e,t,r){this.cronTasks=e,this.onFire=t,this.onTasksChanged=r,this.timer=null,this.watcher=null,this.started=!1,this.lock=new a(e.getFilePath())}start(){if(!this.started){if(!this.lock.tryAcquire()){console.warn("[CronScheduler] Another process holds the scheduler lock — skipping start.");return}this.started=!0,this.timer=setInterval(()=>{this.tick()},1e3),this.startFileWatcher(),console.log(`[CronScheduler] Started (PID=${process.pid})`)}}stop(){this.started&&(this.started=!1,this.timer&&(clearInterval(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.lock.release(),console.log("[CronScheduler] Stopped."))}startFileWatcher(){let e=this.cronTasks.getFilePath(),t=(0,o.dirname)(e);if(!(0,i.existsSync)(t))try{(0,i.mkdirSync)(t,{recursive:!0})}catch{}try{this.watcher=(0,i.watch)(t,{persistent:!1},(e,t)=>{"scheduled_tasks.json"===t&&this.onTasksChanged(this.cronTasks.load())})}catch(e){console.warn("[CronScheduler] Could not start file watcher:",e)}}async tick(){let e=Date.now(),t=this.cronTasks.load(),r=!1;for(let i of t)i.enabled&&i.nextFireAt&&!(i.nextFireAt>e)&&(this.onFire(i),i.recurring?this.cronTasks.update(i.id,{nextFireAt:(0,s.Ilu)(i.cron,e),lastFiredAt:e}):this.cronTasks.delete(i.id),r=!0);r&&this.onTasksChanged(this.cronTasks.load())}}var c=r(785);class l{constructor(){this.tasks=new s.vo4((0,c.kO)()),this.scheduler=new n(this.tasks,e=>{this.fire(e).catch(e=>console.error("Scheduled Customer Agent run failed",e))},()=>{}),this.scheduler.start()}async fire(e){let{agentHost:t}=await r.e(4537).then(r.bind(r,4537)),{getCustomerGoalCoordinator:s}=await Promise.all([r.e(4537),r.e(732)]).then(r.bind(r,732)),i=e.sessionId;i&&await t.getSessionStore().get(i)||(i=(await t.createSession(e.label||"定时任务")).id,this.tasks.update(e.id,{sessionId:i})),await s().enqueue(i,e.prompt)}call(e,t){let r=String(t[0]||"");switch(e){case"cronList":return this.tasks.list();case"cronCreate":{if("string"!=typeof t[0]||"string"!=typeof t[1]||!t[1].trim())throw Error("cron and prompt required");let e=t[2]&&"object"==typeof t[2]?t[2]:{};return this.tasks.create({cron:t[0],prompt:t[1],recurring:!1!==e.recurring,enabled:!0,durable:!0,..."string"==typeof e.sessionId?{sessionId:e.sessionId}:{},..."string"==typeof e.label?{label:e.label}:{}})}case"cronPause":return this.tasks.pause(r);case"cronResume":return this.tasks.resume(r);case"cronDelete":return this.tasks.delete(r);case"cronDeleteAll":return this.tasks.deleteAll(),{ok:!0};default:throw Error("Unsupported schedule operation")}}}let h=globalThis;function u(){return h.__sharedCronService??=new l}}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,1322,4621,4537],()=>r(4562));module.exports=s})();
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=907,e.ids=[907],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")},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")},4059:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>f,patchFetch:()=>w,requestAsyncStorage:()=>d,routeModule:()=>h,serverHooks:()=>m,staticGenerationAsyncStorage:()=>g});var s={};r.r(s),r.d(s,{POST:()=>u,dynamic:()=>p});var a=r(7786),o=r(5042),i=r(2184),n=r(1890),c=r(9605);let p="force-dynamic";async function u(e){return!function(e){let t=e.headers.get("origin");return!(t&&l.has(t))&&("cross-site"===e.headers.get("sec-fetch-site")||!!(t&&t!==new URL(e.url).origin))}(e)?n.NextResponse.json((0,c.X)().requestCheck(),{status:202,headers:{"cache-control":"no-store"}}):n.NextResponse.json({error:"cross-site update request rejected"},{status:403})}let l=new Set(["capacitor://localhost","ionic://localhost"]),h=new a.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/update/check/route",pathname:"/api/update/check",filename:"route",bundlePath:"app/api/update/check/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent-release18/packages/server/app/api/update/check/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:d,staticGenerationAsyncStorage:g,serverHooks:m}=h,f="/api/update/check/route";function w(){return(0,i.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:g})}},9605:(e,t,r)=>{let s;r.d(t,{X:()=>p});var a=r(7718),o=r(3977),i=r(9411),n=r(1322);class c{constructor(e){this.options=e,this.worker=null,this.spawnImpl=e.spawn??a.spawn,this.checker=e.platform?e.checker??new n.UuU({currentVersion:e.currentVersion,client:"cli",platform:e.platform}):null,this.checker?.schedule()}async status(){return await this.readDurableStatus()??this.checker?.getStatus()??{phase:"unavailable",currentVersion:this.options.currentVersion}}requestCheck(){return this.checker?(this.checker.refresh().catch(()=>void 0),this.checker.getStatus()):{phase:"unavailable",currentVersion:this.options.currentVersion}}async installAvailable(){if(!this.options.cliPath||!this.options.dataDir||!this.options.platform)throw Object.assign(Error("updates require a packaged AgentRoam service"),{status:409});let e=this.checker?.getStatus();if(!e||"available"!==e.phase||!e.targetVersion)throw Object.assign(Error("no validated update is available"),{status:409});return this.worker&&null===this.worker.exitCode?this.status():(this.worker=this.spawnImpl(process.execPath,[this.options.cliPath,"update",e.targetVersion,"--data-dir",this.options.dataDir],{detached:!0,stdio:"ignore",windowsHide:!0}),this.worker.unref(),{...e,phase:"downloading"})}async readDurableStatus(){if(!this.options.dataDir)return null;try{let e=JSON.parse(await (0,o.readFile)((0,i.resolve)(this.options.dataDir,"updates","state.json"),"utf8"));if(1!==e.schemaVersion||"string"!=typeof e.phase||"string"!=typeof e.targetVersion||!["downloading","installing","reconnecting","complete","failed"].includes(e.phase)||"complete"===e.phase&&0>=(0,n.V4k)(e.targetVersion,this.options.currentVersion))return null;return{phase:e.phase,currentVersion:this.options.currentVersion,targetVersion:e.targetVersion,message:"string"==typeof e.message?e.message:void 0}}catch{return null}}}function p(){let e=process.env.AGENTROAM_VERSION?.trim();return s??=new c({currentVersion:e||"0.0.0",platform:e?"darwin"===process.platform&&"arm64"===process.arch?"darwin-arm64":"win32"===process.platform&&"x64"===process.arch?"windows-amd64":null:null,dataDir:process.env.AGENTROAM_DATA_DIR?.trim(),cliPath:process.env.AGENTROAM_CLI_PATH?.trim()})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,1322],()=>r(4059));module.exports=s})();
1
+ "use strict";(()=>{var e={};e.id=907,e.ids=[907],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")},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")},5318:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>f,patchFetch:()=>w,requestAsyncStorage:()=>d,routeModule:()=>h,serverHooks:()=>g,staticGenerationAsyncStorage:()=>m});var s={};r.r(s),r.d(s,{POST:()=>u,dynamic:()=>c});var a=r(7786),o=r(5042),i=r(2184),n=r(1890),p=r(9605);let c="force-dynamic";async function u(e){return!function(e){let t=e.headers.get("origin");return!(t&&l.has(t))&&("cross-site"===e.headers.get("sec-fetch-site")||!!(t&&t!==new URL(e.url).origin))}(e)?n.NextResponse.json((0,p.X)().requestCheck(),{status:202,headers:{"cache-control":"no-store"}}):n.NextResponse.json({error:"cross-site update request rejected"},{status:403})}let l=new Set(["capacitor://localhost","ionic://localhost"]),h=new a.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/update/check/route",pathname:"/api/update/check",filename:"route",bundlePath:"app/api/update/check/route"},resolvedPagePath:"/private/tmp/agentroam-release21-20260914/packages/server/app/api/update/check/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:d,staticGenerationAsyncStorage:m,serverHooks:g}=h,f="/api/update/check/route";function w(){return(0,i.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:m})}},9605:(e,t,r)=>{let s;r.d(t,{X:()=>c});var a=r(7718),o=r(3977),i=r(9411),n=r(1322);class p{constructor(e){this.options=e,this.worker=null,this.spawnImpl=e.spawn??a.spawn,this.checker=e.platform?e.checker??new n.UuU({currentVersion:e.currentVersion,client:"cli",platform:e.platform}):null,this.checker?.schedule()}async status(){return await this.readDurableStatus()??this.checker?.getStatus()??{phase:"unavailable",currentVersion:this.options.currentVersion}}requestCheck(){return this.checker?(this.checker.refresh().catch(()=>void 0),this.checker.getStatus()):{phase:"unavailable",currentVersion:this.options.currentVersion}}async installAvailable(){if(!this.options.cliPath||!this.options.dataDir||!this.options.platform)throw Object.assign(Error("updates require a packaged AgentRoam service"),{status:409});let e=this.checker?.getStatus();if(!e||"available"!==e.phase||!e.targetVersion)throw Object.assign(Error("no validated update is available"),{status:409});return this.worker&&null===this.worker.exitCode?this.status():(this.worker=this.spawnImpl(process.execPath,[this.options.cliPath,"update",e.targetVersion,"--data-dir",this.options.dataDir],{detached:!0,stdio:"ignore",windowsHide:!0}),this.worker.unref(),{...e,phase:"downloading"})}async readDurableStatus(){if(!this.options.dataDir)return null;try{let e=JSON.parse(await (0,o.readFile)((0,i.resolve)(this.options.dataDir,"updates","state.json"),"utf8"));if(1!==e.schemaVersion||"string"!=typeof e.phase||"string"!=typeof e.targetVersion||!["downloading","installing","reconnecting","complete","failed"].includes(e.phase)||"complete"===e.phase&&0>=(0,n.V4k)(e.targetVersion,this.options.currentVersion))return null;return{phase:e.phase,currentVersion:this.options.currentVersion,targetVersion:e.targetVersion,message:"string"==typeof e.message?e.message:void 0}}catch{return null}}}function c(){let e=process.env.AGENTROAM_VERSION?.trim();return s??=new p({currentVersion:e||"0.0.0",platform:e?"darwin"===process.platform&&"arm64"===process.arch?"darwin-arm64":"win32"===process.platform&&"x64"===process.arch?"windows-amd64":null:null,dataDir:process.env.AGENTROAM_DATA_DIR?.trim(),cliPath:process.env.AGENTROAM_CLI_PATH?.trim()})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,1322],()=>r(5318));module.exports=s})();