agentroam-runtime-win32-x64 0.2.0-preview.7 → 0.2.0-preview.9

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 (237) hide show
  1. package/manifest.json +1 -1
  2. package/package.json +1 -1
  3. package/runtime/.next/BUILD_ID +1 -1
  4. package/runtime/.next/app-build-manifest.json +12 -12
  5. package/runtime/.next/app-path-routes-manifest.json +1 -1
  6. package/runtime/.next/build-manifest.json +9 -9
  7. package/runtime/.next/prerender-manifest.json +1 -1
  8. package/runtime/.next/react-loadable-manifest.json +2 -2
  9. package/runtime/.next/routes-manifest.json +1 -1
  10. package/runtime/.next/server/app/_not-found/page.js +1 -1
  11. package/runtime/.next/server/app/_not-found/page.js.nft.json +1 -1
  12. package/runtime/.next/server/app/_not-found.html +1 -1
  13. package/runtime/.next/server/app/_not-found.rsc +1 -1
  14. package/runtime/.next/server/app/api/agent/abort/route.js +2 -2
  15. package/runtime/.next/server/app/api/agent/abort/route.js.nft.json +1 -1
  16. package/runtime/.next/server/app/api/agent/answer/route.js +2 -2
  17. package/runtime/.next/server/app/api/agent/answer/route.js.nft.json +1 -1
  18. package/runtime/.next/server/app/api/agent/model/route.js +2 -2
  19. package/runtime/.next/server/app/api/agent/model/route.js.nft.json +1 -1
  20. package/runtime/.next/server/app/api/agent/run/route.js +2 -2
  21. package/runtime/.next/server/app/api/agent/run/route.js.nft.json +1 -1
  22. package/runtime/.next/server/app/api/agent/runtime-health/route.js +1 -1
  23. package/runtime/.next/server/app/api/agent/runtime-health/route.js.nft.json +1 -1
  24. package/runtime/.next/server/app/api/agent/steer/route.js +2 -2
  25. package/runtime/.next/server/app/api/agent/steer/route.js.nft.json +1 -1
  26. package/runtime/.next/server/app/api/agent/stream/route.js +5 -5
  27. package/runtime/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
  28. package/runtime/.next/server/app/api/agent-workspaces/[workspaceId]/sessions/route.js +1 -0
  29. package/runtime/.next/server/app/api/agent-workspaces/[workspaceId]/sessions/route.js.nft.json +1 -0
  30. package/runtime/.next/server/app/api/agent-workspaces/route.js +1 -0
  31. package/runtime/.next/server/app/api/agent-workspaces/route.js.nft.json +1 -0
  32. package/runtime/.next/server/app/api/auth/verify/route.js +1 -1
  33. package/runtime/.next/server/app/api/auth/verify/route.js.nft.json +1 -1
  34. package/runtime/.next/server/app/api/mcp/connect/route.js +2 -2
  35. package/runtime/.next/server/app/api/mcp/connect/route.js.nft.json +1 -1
  36. package/runtime/.next/server/app/api/mcp/disconnect/route.js +1 -1
  37. package/runtime/.next/server/app/api/mcp/disconnect/route.js.nft.json +1 -1
  38. package/runtime/.next/server/app/api/mcp/servers/route.js +1 -1
  39. package/runtime/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
  40. package/runtime/.next/server/app/api/memory/[key]/route.js +1 -1
  41. package/runtime/.next/server/app/api/memory/[key]/route.js.nft.json +1 -1
  42. package/runtime/.next/server/app/api/memory/route.js +1 -1
  43. package/runtime/.next/server/app/api/memory/route.js.nft.json +1 -1
  44. package/runtime/.next/server/app/api/plugins/load/route.js +2 -2
  45. package/runtime/.next/server/app/api/plugins/load/route.js.nft.json +1 -1
  46. package/runtime/.next/server/app/api/projects/[id]/route.js +1 -1
  47. package/runtime/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  48. package/runtime/.next/server/app/api/projects/check/route.js +1 -1
  49. package/runtime/.next/server/app/api/projects/check/route.js.nft.json +1 -1
  50. package/runtime/.next/server/app/api/projects/directories/route.js +1 -1
  51. package/runtime/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
  52. package/runtime/.next/server/app/api/projects/roots/route.js +1 -1
  53. package/runtime/.next/server/app/api/projects/roots/route.js.nft.json +1 -1
  54. package/runtime/.next/server/app/api/projects/route.js +1 -1
  55. package/runtime/.next/server/app/api/projects/route.js.nft.json +1 -1
  56. package/runtime/.next/server/app/api/remote-tools/register/route.js +2 -2
  57. package/runtime/.next/server/app/api/remote-tools/register/route.js.nft.json +1 -1
  58. package/runtime/.next/server/app/api/sessions/[id]/changes/route.js +2 -2
  59. package/runtime/.next/server/app/api/sessions/[id]/changes/route.js.nft.json +1 -1
  60. package/runtime/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
  61. package/runtime/.next/server/app/api/sessions/[id]/fork/route.js.nft.json +1 -1
  62. package/runtime/.next/server/app/api/sessions/[id]/goals/route.js +2 -2
  63. package/runtime/.next/server/app/api/sessions/[id]/goals/route.js.nft.json +1 -1
  64. package/runtime/.next/server/app/api/sessions/[id]/handoff/route.js +1 -1
  65. package/runtime/.next/server/app/api/sessions/[id]/handoff/route.js.nft.json +1 -1
  66. package/runtime/.next/server/app/api/sessions/[id]/route.js +2 -2
  67. package/runtime/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  68. package/runtime/.next/server/app/api/sessions/route.js +2 -2
  69. package/runtime/.next/server/app/api/sessions/route.js.nft.json +1 -1
  70. package/runtime/.next/server/app/api/skills/route.js +2 -2
  71. package/runtime/.next/server/app/api/skills/route.js.nft.json +1 -1
  72. package/runtime/.next/server/app/api/tools/route.js +2 -2
  73. package/runtime/.next/server/app/api/tools/route.js.nft.json +1 -1
  74. package/runtime/.next/server/app/api/web-auth/login/route.js +1 -1
  75. package/runtime/.next/server/app/api/web-auth/login/route.js.nft.json +1 -1
  76. package/runtime/.next/server/app/api/web-auth/logout/route.js +1 -1
  77. package/runtime/.next/server/app/api/web-auth/logout/route.js.nft.json +1 -1
  78. package/runtime/.next/server/app/api/web-auth/revoke-all/route.js +1 -1
  79. package/runtime/.next/server/app/api/web-auth/revoke-all/route.js.nft.json +1 -1
  80. package/runtime/.next/server/app/api/web-auth/setup/route.js +1 -1
  81. package/runtime/.next/server/app/api/web-auth/setup/route.js.nft.json +1 -1
  82. package/runtime/.next/server/app/api/web-auth/status/route.js +1 -1
  83. package/runtime/.next/server/app/api/web-auth/status/route.js.nft.json +1 -1
  84. package/runtime/.next/server/app/api/web-console/bootstrap/route.js +1 -1
  85. package/runtime/.next/server/app/api/web-console/bootstrap/route.js.nft.json +1 -1
  86. package/runtime/.next/server/app/api/web-console/device-state/route.js +1 -1
  87. package/runtime/.next/server/app/api/web-console/device-state/route.js.nft.json +1 -1
  88. package/runtime/.next/server/app/api/web-console/history/route.js +1 -1
  89. package/runtime/.next/server/app/api/web-console/history/route.js.nft.json +1 -1
  90. package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
  91. package/runtime/.next/server/app/api/web-console/preferences/route.js.nft.json +1 -1
  92. package/runtime/.next/server/app/web/page.js +2 -2
  93. package/runtime/.next/server/app/web/page.js.nft.json +1 -1
  94. package/runtime/.next/server/app/web/page_client-reference-manifest.js +1 -1
  95. package/runtime/.next/server/app/web.html +1 -1
  96. package/runtime/.next/server/app/web.rsc +2 -2
  97. package/runtime/.next/server/app-paths-manifest.json +18 -16
  98. package/runtime/.next/server/chunks/{322.js → 1322.js} +39 -38
  99. package/runtime/.next/server/chunks/2083.js +177 -0
  100. package/runtime/.next/server/chunks/4214.js +3 -0
  101. package/runtime/.next/server/chunks/5303.js +2 -0
  102. package/runtime/.next/server/chunks/{923.js → 5923.js} +1 -1
  103. package/runtime/.next/server/chunks/6244.js +1 -0
  104. package/runtime/.next/server/chunks/6703.js +12 -0
  105. package/runtime/.next/server/chunks/8375.js +2 -0
  106. package/runtime/.next/server/middleware-build-manifest.js +1 -1
  107. package/runtime/.next/server/middleware-react-loadable-manifest.js +1 -1
  108. package/runtime/.next/server/pages/404.html +1 -1
  109. package/runtime/.next/server/pages/500.html +1 -1
  110. package/runtime/.next/server/pages/_app.js +1 -1
  111. package/runtime/.next/server/pages/_document.js +1 -1
  112. package/runtime/.next/server/pages/_document.js.nft.json +1 -1
  113. package/runtime/.next/server/pages/_error.js +1 -1
  114. package/runtime/.next/server/pages/_error.js.nft.json +1 -1
  115. package/runtime/.next/server/server-reference-manifest.json +1 -1
  116. package/runtime/.next/server/webpack-runtime.js +1 -1
  117. package/runtime/.next/static/chunks/803.c32a9408d3e3bb51.js +1 -0
  118. package/runtime/.next/static/chunks/app/web/{page-c8af455b0fde4d74.js → page-7bce2f13423aa839.js} +1 -1
  119. package/runtime/.next/static/chunks/{main-a03d29ab49823387.js → main-46a4068052b74acf.js} +1 -1
  120. package/runtime/.next/static/chunks/{webpack-22b57460ff31be13.js → webpack-05ad459942a1242f.js} +1 -1
  121. package/runtime/lib/file-preview-service.mjs +159 -0
  122. package/runtime/node_modules/.package-lock.json +85 -11
  123. package/runtime/node_modules/@agent/core/dist/domain/session/SessionTitle.d.ts +9 -0
  124. package/runtime/node_modules/@agent/core/dist/domain/session/SessionTitle.d.ts.map +1 -0
  125. package/runtime/node_modules/@agent/core/dist/domain/session/SessionTitle.test.d.ts +2 -0
  126. package/runtime/node_modules/@agent/core/dist/domain/session/SessionTitle.test.d.ts.map +1 -0
  127. package/runtime/node_modules/@agent/core/dist/domain/session/index.d.ts +1 -0
  128. package/runtime/node_modules/@agent/core/dist/domain/session/index.d.ts.map +1 -1
  129. package/runtime/node_modules/@agent/core/dist/index.js +57 -7
  130. package/runtime/node_modules/@agent/core/dist/index.js.map +7 -6
  131. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteDatabase.d.ts +2 -0
  132. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteDatabase.d.ts.map +1 -1
  133. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteProjectStore.test.d.ts +2 -0
  134. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteProjectStore.test.d.ts.map +1 -0
  135. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteSessionStore.d.ts +1 -0
  136. package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteSessionStore.d.ts.map +1 -1
  137. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/bridge.mjs +82 -87
  138. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/browser-sdk.js +53 -53
  139. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.json +19 -20
  140. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.zst.json +23 -24
  141. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/package.json +10 -10
  142. package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs +80 -80
  143. package/runtime/node_modules/@opencode-ai/sdk/dist/client.js +53 -0
  144. package/runtime/node_modules/@opencode-ai/sdk/dist/error-interceptor.js +43 -0
  145. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client/client.gen.js +165 -0
  146. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client/index.js +5 -0
  147. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client/types.gen.js +2 -0
  148. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client/utils.gen.js +226 -0
  149. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client.gen.js +5 -0
  150. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/auth.gen.js +14 -0
  151. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/bodySerializer.gen.js +57 -0
  152. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/params.gen.js +89 -0
  153. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/pathSerializer.gen.js +106 -0
  154. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/queryKeySerializer.gen.js +93 -0
  155. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/serverSentEvents.gen.js +117 -0
  156. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/types.gen.js +2 -0
  157. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/utils.gen.js +69 -0
  158. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/sdk.gen.js +881 -0
  159. package/runtime/node_modules/@opencode-ai/sdk/dist/gen/types.gen.js +2 -0
  160. package/runtime/node_modules/@opencode-ai/sdk/dist/index.js +16 -0
  161. package/runtime/node_modules/@opencode-ai/sdk/dist/process.js +33 -0
  162. package/runtime/node_modules/@opencode-ai/sdk/dist/server.js +105 -0
  163. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/client.js +80 -0
  164. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/data.js +22 -0
  165. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client/client.gen.js +232 -0
  166. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client/index.js +6 -0
  167. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client/types.gen.js +2 -0
  168. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client/utils.gen.js +226 -0
  169. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client.gen.js +3 -0
  170. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/auth.gen.js +14 -0
  171. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/bodySerializer.gen.js +57 -0
  172. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/params.gen.js +102 -0
  173. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/pathSerializer.gen.js +106 -0
  174. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/queryKeySerializer.gen.js +93 -0
  175. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/serverSentEvents.gen.js +133 -0
  176. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/types.gen.js +2 -0
  177. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/utils.gen.js +87 -0
  178. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/sdk.gen.js +4456 -0
  179. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/types.gen.js +2 -0
  180. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/index.js +17 -0
  181. package/runtime/node_modules/@opencode-ai/sdk/dist/v2/server.js +105 -0
  182. package/runtime/node_modules/@opencode-ai/sdk/package.json +60 -0
  183. package/runtime/node_modules/cross-spawn/LICENSE +21 -0
  184. package/runtime/node_modules/cross-spawn/README.md +89 -0
  185. package/runtime/node_modules/cross-spawn/index.js +39 -0
  186. package/runtime/node_modules/cross-spawn/lib/enoent.js +59 -0
  187. package/runtime/node_modules/cross-spawn/lib/parse.js +91 -0
  188. package/runtime/node_modules/cross-spawn/lib/util/escape.js +47 -0
  189. package/runtime/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  190. package/runtime/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  191. package/runtime/node_modules/cross-spawn/package.json +73 -0
  192. package/runtime/node_modules/isexe/LICENSE +15 -0
  193. package/runtime/node_modules/isexe/README.md +51 -0
  194. package/runtime/node_modules/isexe/index.js +57 -0
  195. package/runtime/node_modules/isexe/mode.js +41 -0
  196. package/runtime/node_modules/isexe/package.json +31 -0
  197. package/runtime/node_modules/isexe/test/basic.js +221 -0
  198. package/runtime/node_modules/isexe/windows.js +42 -0
  199. package/runtime/node_modules/path-key/index.js +16 -0
  200. package/runtime/node_modules/path-key/license +9 -0
  201. package/runtime/node_modules/path-key/package.json +39 -0
  202. package/runtime/node_modules/path-key/readme.md +61 -0
  203. package/runtime/node_modules/shebang-command/index.js +19 -0
  204. package/runtime/node_modules/shebang-command/license +9 -0
  205. package/runtime/node_modules/shebang-command/package.json +34 -0
  206. package/runtime/node_modules/shebang-command/readme.md +34 -0
  207. package/runtime/node_modules/shebang-regex/index.js +2 -0
  208. package/runtime/node_modules/shebang-regex/license +9 -0
  209. package/runtime/node_modules/shebang-regex/package.json +35 -0
  210. package/runtime/node_modules/shebang-regex/readme.md +33 -0
  211. package/runtime/node_modules/which/CHANGELOG.md +166 -0
  212. package/runtime/node_modules/which/LICENSE +15 -0
  213. package/runtime/node_modules/which/README.md +54 -0
  214. package/runtime/node_modules/which/bin/node-which +52 -0
  215. package/runtime/node_modules/which/package.json +43 -0
  216. package/runtime/node_modules/which/which.js +125 -0
  217. package/runtime/package-lock.json +47 -43
  218. package/runtime/package.json +2 -1
  219. package/runtime/webapp/dist/assets/App-DhjG0cSw.js +240 -0
  220. package/runtime/webapp/dist/assets/{index-wTH7T_Ah.css → index-BXTtTSvB.css} +1 -1
  221. package/runtime/webapp/dist/assets/{index-BjCuCFYF.js → index-CngFUejN.js} +7 -7
  222. package/runtime/webapp/dist/index.html +2 -2
  223. package/runtime/ws-server.mjs +8 -1
  224. package/runtime/.next/server/app/api/agent/runtime-health.body +0 -1
  225. package/runtime/.next/server/app/api/agent/runtime-health.meta +0 -1
  226. package/runtime/.next/server/chunks/303.js +0 -2
  227. package/runtime/.next/server/chunks/375.js +0 -2
  228. package/runtime/.next/server/chunks/703.js +0 -12
  229. package/runtime/.next/server/chunks/988.js +0 -119
  230. package/runtime/.next/static/chunks/115.95ca5e1861314f5c.js +0 -1
  231. package/runtime/webapp/dist/assets/App-D8mcRu-Q.js +0 -231
  232. /package/runtime/.next/static/chunks/{108-5a2df9f74c5fd4ea.js → 108-bc4a0fe192dfff08.js} +0 -0
  233. /package/runtime/.next/static/chunks/{183-ffe4acb07968be9e.js → 183-d2f78a21998813ba.js} +0 -0
  234. /package/runtime/.next/static/chunks/{3cc391f0-6377b9b71382a170.js → 3cc391f0-d7ec74603652803d.js} +0 -0
  235. /package/runtime/.next/static/chunks/app/_not-found/{page-09f702519672bb02.js → page-4a73d1777b316883.js} +0 -0
  236. /package/runtime/.next/static/{WbNomgtKBalC4rAWPGRjU → pBpxqLpcmaz3BAj7sw5Ya}/_buildManifest.js +0 -0
  237. /package/runtime/.next/static/{WbNomgtKBalC4rAWPGRjU → pBpxqLpcmaz3BAj7sw5Ya}/_ssgManifest.js +0 -0
package/manifest.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "packageVersion": "0.2.0-preview.7",
2
+ "packageVersion": "0.2.0-preview.9",
3
3
  "target": "windows-amd64",
4
4
  "nodeMajor": 22,
5
5
  "nodeModuleAbi": 127,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentroam-runtime-win32-x64",
3
- "version": "0.2.0-preview.7",
3
+ "version": "0.2.0-preview.9",
4
4
  "description": "AgentRoam server runtime for Windows x64",
5
5
  "license": "MIT",
6
6
  "os": ["win32"],
@@ -1 +1 @@
1
- WbNomgtKBalC4rAWPGRjU
1
+ pBpxqLpcmaz3BAj7sw5Ya
@@ -1,26 +1,26 @@
1
1
  {
2
2
  "pages": {
3
3
  "/_not-found/page": [
4
- "static/chunks/webpack-22b57460ff31be13.js",
5
- "static/chunks/3cc391f0-6377b9b71382a170.js",
6
- "static/chunks/183-ffe4acb07968be9e.js",
4
+ "static/chunks/webpack-05ad459942a1242f.js",
5
+ "static/chunks/3cc391f0-d7ec74603652803d.js",
6
+ "static/chunks/183-d2f78a21998813ba.js",
7
7
  "static/chunks/main-app-07d67f2d4e96ecb8.js",
8
- "static/chunks/app/_not-found/page-09f702519672bb02.js"
8
+ "static/chunks/app/_not-found/page-4a73d1777b316883.js"
9
9
  ],
10
10
  "/layout": [
11
- "static/chunks/webpack-22b57460ff31be13.js",
12
- "static/chunks/3cc391f0-6377b9b71382a170.js",
13
- "static/chunks/183-ffe4acb07968be9e.js",
11
+ "static/chunks/webpack-05ad459942a1242f.js",
12
+ "static/chunks/3cc391f0-d7ec74603652803d.js",
13
+ "static/chunks/183-d2f78a21998813ba.js",
14
14
  "static/chunks/main-app-07d67f2d4e96ecb8.js",
15
15
  "static/chunks/app/layout-9176f750902030b5.js"
16
16
  ],
17
17
  "/web/page": [
18
- "static/chunks/webpack-22b57460ff31be13.js",
19
- "static/chunks/3cc391f0-6377b9b71382a170.js",
20
- "static/chunks/183-ffe4acb07968be9e.js",
18
+ "static/chunks/webpack-05ad459942a1242f.js",
19
+ "static/chunks/3cc391f0-d7ec74603652803d.js",
20
+ "static/chunks/183-d2f78a21998813ba.js",
21
21
  "static/chunks/main-app-07d67f2d4e96ecb8.js",
22
- "static/chunks/108-5a2df9f74c5fd4ea.js",
23
- "static/chunks/app/web/page-c8af455b0fde4d74.js"
22
+ "static/chunks/108-bc4a0fe192dfff08.js",
23
+ "static/chunks/app/web/page-7bce2f13423aa839.js"
24
24
  ]
25
25
  }
26
26
  }
@@ -1 +1 @@
1
- {"/_not-found/page":"/_not-found","/api/agent/model/route":"/api/agent/model","/api/mcp/disconnect/route":"/api/mcp/disconnect","/api/mcp/connect/route":"/api/mcp/connect","/api/mcp/servers/route":"/api/mcp/servers","/api/plugins/load/route":"/api/plugins/load","/api/auth/verify/route":"/api/auth/verify","/api/memory/[key]/route":"/api/memory/[key]","/api/memory/route":"/api/memory","/api/projects/[id]/route":"/api/projects/[id]","/api/projects/check/route":"/api/projects/check","/api/projects/directories/route":"/api/projects/directories","/api/projects/roots/route":"/api/projects/roots","/api/projects/route":"/api/projects","/api/remote-tools/register/route":"/api/remote-tools/register","/api/tools/route":"/api/tools","/api/skills/route":"/api/skills","/api/web-auth/login/route":"/api/web-auth/login","/api/web-auth/revoke-all/route":"/api/web-auth/revoke-all","/api/web-auth/logout/route":"/api/web-auth/logout","/api/web-auth/status/route":"/api/web-auth/status","/api/web-auth/setup/route":"/api/web-auth/setup","/api/web-console/history/route":"/api/web-console/history","/api/web-console/preferences/route":"/api/web-console/preferences","/web/page":"/web","/api/agent/steer/route":"/api/agent/steer","/api/agent/answer/route":"/api/agent/answer","/api/agent/run/route":"/api/agent/run","/api/agent/abort/route":"/api/agent/abort","/api/agent/runtime-health/route":"/api/agent/runtime-health","/api/sessions/[id]/fork/route":"/api/sessions/[id]/fork","/api/sessions/[id]/handoff/route":"/api/sessions/[id]/handoff","/api/sessions/route":"/api/sessions","/api/sessions/[id]/changes/route":"/api/sessions/[id]/changes","/api/agent/stream/route":"/api/agent/stream","/api/sessions/[id]/goals/route":"/api/sessions/[id]/goals","/api/web-console/bootstrap/route":"/api/web-console/bootstrap","/api/web-console/device-state/route":"/api/web-console/device-state","/api/sessions/[id]/route":"/api/sessions/[id]"}
1
+ {"/_not-found/page":"/_not-found","/api/auth/verify/route":"/api/auth/verify","/api/mcp/servers/route":"/api/mcp/servers","/api/mcp/disconnect/route":"/api/mcp/disconnect","/api/mcp/connect/route":"/api/mcp/connect","/api/memory/[key]/route":"/api/memory/[key]","/api/projects/[id]/route":"/api/projects/[id]","/api/projects/route":"/api/projects","/api/plugins/load/route":"/api/plugins/load","/api/memory/route":"/api/memory","/api/projects/directories/route":"/api/projects/directories","/api/projects/check/route":"/api/projects/check","/api/projects/roots/route":"/api/projects/roots","/api/agent/model/route":"/api/agent/model","/api/tools/route":"/api/tools","/api/remote-tools/register/route":"/api/remote-tools/register","/api/skills/route":"/api/skills","/api/web-auth/login/route":"/api/web-auth/login","/api/web-auth/revoke-all/route":"/api/web-auth/revoke-all","/api/web-auth/logout/route":"/api/web-auth/logout","/api/web-auth/setup/route":"/api/web-auth/setup","/api/web-console/history/route":"/api/web-console/history","/api/web-console/preferences/route":"/api/web-console/preferences","/web/page":"/web","/api/agent/abort/route":"/api/agent/abort","/api/agent-workspaces/route":"/api/agent-workspaces","/api/agent-workspaces/[workspaceId]/sessions/route":"/api/agent-workspaces/[workspaceId]/sessions","/api/agent/answer/route":"/api/agent/answer","/api/agent/runtime-health/route":"/api/agent/runtime-health","/api/agent/run/route":"/api/agent/run","/api/sessions/[id]/changes/route":"/api/sessions/[id]/changes","/api/sessions/[id]/handoff/route":"/api/sessions/[id]/handoff","/api/sessions/[id]/fork/route":"/api/sessions/[id]/fork","/api/agent/stream/route":"/api/agent/stream","/api/sessions/[id]/route":"/api/sessions/[id]","/api/sessions/[id]/goals/route":"/api/sessions/[id]/goals","/api/web-console/bootstrap/route":"/api/web-console/bootstrap","/api/web-console/device-state/route":"/api/web-console/device-state","/api/sessions/route":"/api/sessions","/api/agent/steer/route":"/api/agent/steer","/api/web-auth/status/route":"/api/web-auth/status"}
@@ -5,26 +5,26 @@
5
5
  "devFiles": [],
6
6
  "ampDevFiles": [],
7
7
  "lowPriorityFiles": [
8
- "static/WbNomgtKBalC4rAWPGRjU/_buildManifest.js",
9
- "static/WbNomgtKBalC4rAWPGRjU/_ssgManifest.js"
8
+ "static/pBpxqLpcmaz3BAj7sw5Ya/_buildManifest.js",
9
+ "static/pBpxqLpcmaz3BAj7sw5Ya/_ssgManifest.js"
10
10
  ],
11
11
  "rootMainFiles": [
12
- "static/chunks/webpack-22b57460ff31be13.js",
13
- "static/chunks/3cc391f0-6377b9b71382a170.js",
14
- "static/chunks/183-ffe4acb07968be9e.js",
12
+ "static/chunks/webpack-05ad459942a1242f.js",
13
+ "static/chunks/3cc391f0-d7ec74603652803d.js",
14
+ "static/chunks/183-d2f78a21998813ba.js",
15
15
  "static/chunks/main-app-07d67f2d4e96ecb8.js"
16
16
  ],
17
17
  "pages": {
18
18
  "/_app": [
19
- "static/chunks/webpack-22b57460ff31be13.js",
19
+ "static/chunks/webpack-05ad459942a1242f.js",
20
20
  "static/chunks/framework-7bac12ed8564755e.js",
21
- "static/chunks/main-a03d29ab49823387.js",
21
+ "static/chunks/main-46a4068052b74acf.js",
22
22
  "static/chunks/pages/_app-389e6eb8abb0af2d.js"
23
23
  ],
24
24
  "/_error": [
25
- "static/chunks/webpack-22b57460ff31be13.js",
25
+ "static/chunks/webpack-05ad459942a1242f.js",
26
26
  "static/chunks/framework-7bac12ed8564755e.js",
27
- "static/chunks/main-a03d29ab49823387.js",
27
+ "static/chunks/main-46a4068052b74acf.js",
28
28
  "static/chunks/pages/_error-7cee5565b5ef9bcb.js"
29
29
  ]
30
30
  },
@@ -1 +1 @@
1
- {"version":4,"routes":{"/api/mcp/servers":{"initialHeaders":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/mcp/layout,_N_T_/api/mcp/servers/layout,_N_T_/api/mcp/servers/route,_N_T_/api/mcp/servers"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/api/mcp/servers","dataRoute":null},"/api/agent/model":{"initialHeaders":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/agent/layout,_N_T_/api/agent/model/layout,_N_T_/api/agent/model/route,_N_T_/api/agent/model"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/api/agent/model","dataRoute":null},"/api/projects/roots":{"initialHeaders":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/projects/layout,_N_T_/api/projects/roots/layout,_N_T_/api/projects/roots/route,_N_T_/api/projects/roots"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/api/projects/roots","dataRoute":null},"/api/tools":{"initialHeaders":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/tools/layout,_N_T_/api/tools/route,_N_T_/api/tools"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/api/tools","dataRoute":null},"/web":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/web","dataRoute":"/web.rsc"},"/api/agent/runtime-health":{"initialHeaders":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/agent/layout,_N_T_/api/agent/runtime-health/layout,_N_T_/api/agent/runtime-health/route,_N_T_/api/agent/runtime-health"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/api/agent/runtime-health","dataRoute":null}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"9438ee0fd1bcc0e9926e2e3a9641d71d","previewModeSigningKey":"03d97d5baa1a2219d0e7cc09458ad7377e67358b118dfeb1e931de4d12f4ca25","previewModeEncryptionKey":"9c5b599b9e7a191d00c73d804b75b5f22288dc724146bcc5ef2fc43c59b930a3"}}
1
+ {"version":4,"routes":{"/api/agent/model":{"initialHeaders":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/agent/layout,_N_T_/api/agent/model/layout,_N_T_/api/agent/model/route,_N_T_/api/agent/model"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/api/agent/model","dataRoute":null},"/api/mcp/servers":{"initialHeaders":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/mcp/layout,_N_T_/api/mcp/servers/layout,_N_T_/api/mcp/servers/route,_N_T_/api/mcp/servers"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/api/mcp/servers","dataRoute":null},"/api/projects/roots":{"initialHeaders":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/projects/layout,_N_T_/api/projects/roots/layout,_N_T_/api/projects/roots/route,_N_T_/api/projects/roots"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/api/projects/roots","dataRoute":null},"/api/tools":{"initialHeaders":{"content-type":"application/json","x-next-cache-tags":"_N_T_/layout,_N_T_/api/layout,_N_T_/api/tools/layout,_N_T_/api/tools/route,_N_T_/api/tools"},"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/api/tools","dataRoute":null},"/web":{"experimentalBypassFor":[{"type":"header","key":"Next-Action"},{"type":"header","key":"content-type","value":"multipart/form-data;.*"}],"initialRevalidateSeconds":false,"srcRoute":"/web","dataRoute":"/web.rsc"}},"dynamicRoutes":{},"notFoundRoutes":[],"preview":{"previewModeId":"90908bda9521ccbf8a7e7dff4b5592d5","previewModeSigningKey":"3fd521c502a1e4acc1df0bad0232b193ca3f69761f9f5a0d40b0e3a37adcc1df","previewModeEncryptionKey":"651786c5153d90ccac71c4fd237028c96a34e8b743effd317b21e5e7fb00571c"}}
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "app/web/page.tsx -> ./FilePreview": {
3
- "id": 2115,
3
+ "id": 8803,
4
4
  "files": [
5
- "static/chunks/115.95ca5e1861314f5c.js"
5
+ "static/chunks/803.c32a9408d3e3bb51.js"
6
6
  ]
7
7
  },
8
8
  "app/web/page.tsx -> ./FileTree": {
@@ -1 +1 @@
1
- {"version":3,"pages404":true,"caseSensitive":false,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[{"source":"/web","headers":[{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate, proxy-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"}],"regex":"^/web(?:/)?$"},{"source":"/api/:path*","headers":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS"},{"key":"Access-Control-Allow-Headers","value":"Authorization, Content-Type"}],"regex":"^/api(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"}],"dynamicRoutes":[{"page":"/api/memory/[key]","regex":"^/api/memory/([^/]+?)(?:/)?$","routeKeys":{"nxtPkey":"nxtPkey"},"namedRegex":"^/api/memory/(?<nxtPkey>[^/]+?)(?:/)?$"},{"page":"/api/projects/[id]","regex":"^/api/projects/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/projects/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/api/sessions/[id]","regex":"^/api/sessions/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/api/sessions/[id]/changes","regex":"^/api/sessions/([^/]+?)/changes(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)/changes(?:/)?$"},{"page":"/api/sessions/[id]/fork","regex":"^/api/sessions/([^/]+?)/fork(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)/fork(?:/)?$"},{"page":"/api/sessions/[id]/goals","regex":"^/api/sessions/([^/]+?)/goals(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)/goals(?:/)?$"},{"page":"/api/sessions/[id]/handoff","regex":"^/api/sessions/([^/]+?)/handoff(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)/handoff(?:/)?$"}],"staticRoutes":[{"page":"/_not-found","regex":"^/_not\\-found(?:/)?$","routeKeys":{},"namedRegex":"^/_not\\-found(?:/)?$"},{"page":"/web","regex":"^/web(?:/)?$","routeKeys":{},"namedRegex":"^/web(?:/)?$"}],"dataRoutes":[],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch","prefetchHeader":"Next-Router-Prefetch","didPostponeHeader":"x-nextjs-postponed","contentTypeHeader":"text/x-component","suffix":".rsc","prefetchSuffix":".prefetch.rsc"},"rewrites":[]}
1
+ {"version":3,"pages404":true,"caseSensitive":false,"basePath":"","redirects":[{"source":"/:path+/","destination":"/:path+","internal":true,"statusCode":308,"regex":"^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"}],"headers":[{"source":"/web","headers":[{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate, proxy-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Expires","value":"0"}],"regex":"^/web(?:/)?$"},{"source":"/api/:path*","headers":[{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Methods","value":"GET, POST, OPTIONS"},{"key":"Access-Control-Allow-Headers","value":"Authorization, Content-Type"}],"regex":"^/api(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"}],"dynamicRoutes":[{"page":"/api/agent-workspaces/[workspaceId]/sessions","regex":"^/api/agent\\-workspaces/([^/]+?)/sessions(?:/)?$","routeKeys":{"nxtPworkspaceId":"nxtPworkspaceId"},"namedRegex":"^/api/agent\\-workspaces/(?<nxtPworkspaceId>[^/]+?)/sessions(?:/)?$"},{"page":"/api/memory/[key]","regex":"^/api/memory/([^/]+?)(?:/)?$","routeKeys":{"nxtPkey":"nxtPkey"},"namedRegex":"^/api/memory/(?<nxtPkey>[^/]+?)(?:/)?$"},{"page":"/api/projects/[id]","regex":"^/api/projects/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/projects/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/api/sessions/[id]","regex":"^/api/sessions/([^/]+?)(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)(?:/)?$"},{"page":"/api/sessions/[id]/changes","regex":"^/api/sessions/([^/]+?)/changes(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)/changes(?:/)?$"},{"page":"/api/sessions/[id]/fork","regex":"^/api/sessions/([^/]+?)/fork(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)/fork(?:/)?$"},{"page":"/api/sessions/[id]/goals","regex":"^/api/sessions/([^/]+?)/goals(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)/goals(?:/)?$"},{"page":"/api/sessions/[id]/handoff","regex":"^/api/sessions/([^/]+?)/handoff(?:/)?$","routeKeys":{"nxtPid":"nxtPid"},"namedRegex":"^/api/sessions/(?<nxtPid>[^/]+?)/handoff(?:/)?$"}],"staticRoutes":[{"page":"/_not-found","regex":"^/_not\\-found(?:/)?$","routeKeys":{},"namedRegex":"^/_not\\-found(?:/)?$"},{"page":"/web","regex":"^/web(?:/)?$","routeKeys":{},"namedRegex":"^/web(?:/)?$"}],"dataRoutes":[],"rsc":{"header":"RSC","varyHeader":"RSC, Next-Router-State-Tree, Next-Router-Prefetch","prefetchHeader":"Next-Router-Prefetch","didPostponeHeader":"x-nextjs-postponed","contentTypeHeader":"text/x-component","suffix":".rsc","prefetchSuffix":".prefetch.rsc"},"rewrites":[]}
@@ -1 +1 @@
1
- (()=>{var e={};e.id=409,e.ids=[409],e.modules={2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},3878:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalError:()=>i.a,__next_app__:()=>f,originalPathname:()=>c,pages:()=>d,routeModule:()=>p,tree:()=>l}),n(1360),n(3028),n(4972);var r=n(1772),o=n(5042),s=n(5663),i=n.n(s),u=n(4812),a={};for(let e in u)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(a[e]=()=>u[e]);n.d(t,a);let l=["",{children:["/_not-found",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(n.t.bind(n,3028,23)),"next/dist/client/components/not-found-error"]}]},{}]},{layout:[()=>Promise.resolve().then(n.bind(n,4972)),"/Users/caoqu/team-agent/customer-agent/packages/server/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(n.t.bind(n,3028,23)),"next/dist/client/components/not-found-error"]}],d=[],c="/_not-found/page",f={require:n,loadChunk:()=>Promise.resolve()},p=new r.AppPageRouteModule({definition:{kind:o.x.APP_PAGE,page:"/_not-found/page",pathname:"/_not-found",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:l}})},8490:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,1782,23)),Promise.resolve().then(n.t.bind(n,8949,23)),Promise.resolve().then(n.t.bind(n,6569,23)),Promise.resolve().then(n.t.bind(n,8718,23)),Promise.resolve().then(n.t.bind(n,7415,23)),Promise.resolve().then(n.t.bind(n,8781,23))},2027:()=>{},5289:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{isNotFoundError:function(){return o},notFound:function(){return r}});let n="NEXT_NOT_FOUND";function r(){let e=Error(n);throw e.digest=n,e}function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1360:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{PARALLEL_ROUTE_DEFAULT_PATH:function(){return o},default:function(){return s}});let r=n(5289),o="next/dist/client/components/parallel-route-default.js";function s(){(0,r.notFound)()}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4972:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,metadata:()=>o});var r=n(3477);let o={title:"AgentRoam",description:"General-purpose AI agent API server"};function s({children:e}){return r.jsx("html",{lang:"en",children:r.jsx("body",{children:e})})}}};var t=require("../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[375,303],()=>n(3878));module.exports=r})();
1
+ (()=>{var e={};e.id=7409,e.ids=[7409],e.modules={2934:e=>{"use strict";e.exports=require("next/dist/client/components/action-async-storage.external.js")},4580:e=>{"use strict";e.exports=require("next/dist/client/components/request-async-storage.external.js")},5869:e=>{"use strict";e.exports=require("next/dist/client/components/static-generation-async-storage.external.js")},399:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},3878:(e,t,n)=>{"use strict";n.r(t),n.d(t,{GlobalError:()=>i.a,__next_app__:()=>f,originalPathname:()=>c,pages:()=>d,routeModule:()=>p,tree:()=>l}),n(1360),n(3028),n(4972);var r=n(1772),o=n(5042),s=n(5663),i=n.n(s),u=n(4812),a={};for(let e in u)0>["default","tree","pages","GlobalError","originalPathname","__next_app__","routeModule"].indexOf(e)&&(a[e]=()=>u[e]);n.d(t,a);let l=["",{children:["/_not-found",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(n.t.bind(n,3028,23)),"next/dist/client/components/not-found-error"]}]},{}]},{layout:[()=>Promise.resolve().then(n.bind(n,4972)),"/Users/caoqu/team-agent/customer-agent/packages/server/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(n.t.bind(n,3028,23)),"next/dist/client/components/not-found-error"]}],d=[],c="/_not-found/page",f={require:n,loadChunk:()=>Promise.resolve()},p=new r.AppPageRouteModule({definition:{kind:o.x.APP_PAGE,page:"/_not-found/page",pathname:"/_not-found",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:l}})},8490:(e,t,n)=>{Promise.resolve().then(n.t.bind(n,1782,23)),Promise.resolve().then(n.t.bind(n,8949,23)),Promise.resolve().then(n.t.bind(n,6569,23)),Promise.resolve().then(n.t.bind(n,8718,23)),Promise.resolve().then(n.t.bind(n,7415,23)),Promise.resolve().then(n.t.bind(n,8781,23))},2027:()=>{},5289:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{isNotFoundError:function(){return o},notFound:function(){return r}});let n="NEXT_NOT_FOUND";function r(){let e=Error(n);throw e.digest=n,e}function o(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1360:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{PARALLEL_ROUTE_DEFAULT_PATH:function(){return o},default:function(){return s}});let r=n(5289),o="next/dist/client/components/parallel-route-default.js";function s(){(0,r.notFound)()}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4972:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>s,metadata:()=>o});var r=n(3477);let o={title:"AgentRoam",description:"General-purpose AI agent API server"};function s({children:e}){return r.jsx("html",{lang:"en",children:r.jsx("body",{children:e})})}}};var t=require("../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[8375,5303],()=>n(3878));module.exports=r})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../node_modules/next","../../../package.json","../../chunks/303.js","../../chunks/375.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
1
+ {"version":1,"files":["../../../../node_modules/next","../../../package.json","../../chunks/5303.js","../../chunks/8375.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-22b57460ff31be13.js"/><script src="/_next/static/chunks/3cc391f0-6377b9b71382a170.js" async=""></script><script src="/_next/static/chunks/183-ffe4acb07968be9e.js" async=""></script><script src="/_next/static/chunks/main-app-07d67f2d4e96ecb8.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>AgentRoam</title><meta name="description" content="General-purpose AI agent API server"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-22b57460ff31be13.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:I[7709,[],\"\"]\n3:I[1338,[],\"\"]\n4:I[1573,[],\"\"]\na:I[6554,[],\"\"]\n5:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n6:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n7:{\"display\":\"inline-block\"}\n8:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L1\",null,{\"buildId\":\"WbNomgtKBalC4rAWPGRjU\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L2\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$5\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$6\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$7\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$8\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"AgentRoam\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"General-purpose AI agent API server\"}]]\n2:null\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-05ad459942a1242f.js"/><script src="/_next/static/chunks/3cc391f0-d7ec74603652803d.js" async=""></script><script src="/_next/static/chunks/183-d2f78a21998813ba.js" async=""></script><script src="/_next/static/chunks/main-app-07d67f2d4e96ecb8.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>AgentRoam</title><meta name="description" content="General-purpose AI agent API server"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><script src="/_next/static/chunks/webpack-05ad459942a1242f.js" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:I[7709,[],\"\"]\n3:I[1338,[],\"\"]\n4:I[1573,[],\"\"]\na:I[6554,[],\"\"]\n5:{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"}\n6:{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"}\n7:{\"display\":\"inline-block\"}\n8:{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0}\nb:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L1\",null,{\"buildId\":\"pBpxqLpcmaz3BAj7sw5Ya\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"_not-found\"],\"initialTree\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{},[[\"$L2\",[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null],null],null]},[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"/_not-found\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$5\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$6\",\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":\"$7\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$8\",\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],\"$L9\"],\"globalErrorComponent\":\"$a\",\"missingSlots\":\"$Wb\"}]\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"AgentRoam\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"General-purpose AI agent API server\"}]]\n2:null\n"])</script></body></html>
@@ -4,6 +4,6 @@
4
4
  5:{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"}
5
5
  6:{"display":"inline-block"}
6
6
  7:{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0}
7
- 0:["WbNomgtKBalC4rAWPGRjU",[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["/_not-found",{"children":["__PAGE__",{},[["$L1",[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null],null],null]},[null,["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children","/_not-found","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[null,["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$4","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$5","children":"404"}],["$","div",null,{"style":"$6","children":["$","h2",null,{"style":"$7","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L8",["$","meta",null,{"name":"robots","content":"noindex"}]]]]]
7
+ 0:["pBpxqLpcmaz3BAj7sw5Ya",[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",{"children":["/_not-found",{"children":["__PAGE__",{},[["$L1",[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null],null],null]},[null,["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children","/_not-found","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[null,["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L2",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$4","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$5","children":"404"}],["$","div",null,{"style":"$6","children":["$","h2",null,{"style":"$7","children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L8",["$","meta",null,{"name":"robots","content":"noindex"}]]]]]
8
8
  8:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"AgentRoam"}],["$","meta","3",{"name":"description","content":"General-purpose AI agent API server"}]]
9
9
  1:null
@@ -1,3 +1,3 @@
1
- "use strict";(()=>{var e={};e.id=816,e.ids=[816],e.modules={7728:e=>{e.exports=require("@anthropic-ai/claude-agent-sdk")},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")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},6276:(e,t,s)=>{s.r(t),s.d(t,{originalPathname:()=>m,patchFetch:()=>w,requestAsyncStorage:()=>d,routeModule:()=>h,serverHooks:()=>g,staticGenerationAsyncStorage:()=>p});var r={};s.r(r),s.d(r,{POST:()=>c});var o=s(7786),i=s(5042),n=s(2184),a=s(1890),l=s(7186),u=s(3988);async function c(e){let t;try{t=(await e.json()).sessionId}catch{}if(t&&(0,u.V_)(t)){try{await (0,u.NL)().abort(t)}catch(e){return a.NextResponse.json({error:e instanceof Error?e.message:"Abort failed"},{status:500})}return a.NextResponse.json({status:"aborted"})}return l.f.abort(),a.NextResponse.json({status:"aborted"})}let h=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent/abort/route",pathname:"/api/agent/abort",filename:"route",bundlePath:"app/api/agent/abort/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/abort/route.ts",nextConfigOutput:"standalone",userland:r}),{requestAsyncStorage:d,staticGenerationAsyncStorage:p,serverHooks:g}=h,m="/api/agent/abort/route";function w(){return(0,n.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:p})}},7186:(e,t,s)=>{s.d(t,{B:()=>n,f:()=>u});var r=s(1322),o=s(612),i=s(785);class n extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class a{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
1
+ "use strict";(()=>{var e={};e.id=816,e.ids=[816],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")},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")},1898:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{originalPathname:()=>g,patchFetch:()=>u,requestAsyncStorage:()=>h,routeModule:()=>c,serverHooks:()=>p,staticGenerationAsyncStorage:()=>d});var o=s(7786),i=s(5042),n=s(2184),a=s(5746),l=e([a]);a=(l.then?(await l)():l)[0];let c=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent/abort/route",pathname:"/api/agent/abort",filename:"route",bundlePath:"app/api/agent/abort/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/abort/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:h,staticGenerationAsyncStorage:d,serverHooks:p}=c,g="/api/agent/abort/route";function u(){return(0,n.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:d})}r()}catch(e){r(e)}})},7186:(e,t,s)=>{s.d(t,{B:()=>a,f:()=>c});var r=s(1322),o=s(612),i=s(785);let n={jpeg:"jpg",png:"png",gif:"gif",webp:"webp"};class a extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class l{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
2
2
  ${e.summary}
3
- 原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new n("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new n("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new n(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:{permissionMode:"full-access"}})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),n=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(n).withRemoteToolStore(this.remoteToolStore,a).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let l=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(l=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||l||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){l=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let l=globalThis,u=l.__agentHost??new a;l.__agentHost=u}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[375,703,322,988],()=>s(6276));module.exports=r})();
3
+ 原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new a("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new a("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new a(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:(0,r.Tu)(e,{permissionMode:"full-access"})})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),a=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.consumePendingAutoTitle(t,e);let l=function(e){let t=[];for(let[s,r]of(e??[]).entries()){let e=/^data:image\/(jpeg|png|gif|webp);base64,/i.exec(r);e&&t.push({type:"image",name:`image-${s+1}.${n[e[1].toLowerCase()]}`,dataUrl:r})}return t.length>0?{attachments:t}:void 0}(s);await this.sessionStore.addMessage(t,{role:"user",content:e,...l?{presentation:l}:{}}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let u=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(a).withRemoteToolStore(this.remoteToolStore,u).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let c=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(c=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||c||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){c=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let u=globalThis,c=u.__agentHost??new l;u.__agentHost=c},5746:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{POST:()=>l});var o=s(1890),i=s(7186),n=s(2083),a=e([n]);async function l(e){let t;try{t=(await e.json()).sessionId}catch{}if(t&&(0,n.V_)(t)){try{await (0,n.NL)().abort(t)}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Abort failed"},{status:500})}return o.NextResponse.json({status:"aborted"})}return i.f.abort(),o.NextResponse.json({status:"aborted"})}n=(a.then?(await a)():a)[0],r()}catch(e){r(e)}})}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,6244,1322,2083],()=>s(1898));module.exports=r})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/322.js","../../../../chunks/375.js","../../../../chunks/703.js","../../../../chunks/988.js","../../../../webpack-runtime.js"]}
1
+ {"version":1,"files":["../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1322.js","../../../../chunks/2083.js","../../../../chunks/6244.js","../../../../chunks/6703.js","../../../../chunks/8375.js","../../../../webpack-runtime.js"]}
@@ -1,3 +1,3 @@
1
- "use strict";(()=>{var e={};e.id=195,e.ids=[195],e.modules={7728:e=>{e.exports=require("@anthropic-ai/claude-agent-sdk")},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")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},6304:(e,t,s)=>{s.r(t),s.d(t,{originalPathname:()=>m,patchFetch:()=>w,requestAsyncStorage:()=>h,routeModule:()=>d,serverHooks:()=>g,staticGenerationAsyncStorage:()=>p});var r={};s.r(r),s.d(r,{POST:()=>c});var o=s(7786),i=s(5042),n=s(2184),a=s(1890),l=s(7186),u=s(3988);async function c(e){try{let t=await e.json();if(!t.questionId||!t.answer)return a.NextResponse.json({error:"questionId and answer are required"},{status:400});let s=l.f.answerQuestion(t.questionId,t.answer,t.selectedIndices);if(s||(s=await (0,u.NL)().answerQuestion(t.questionId,{answer:t.answer,selectedIndices:t.selectedIndices})),!s)return a.NextResponse.json({error:"Question not found or already answered"},{status:404});return a.NextResponse.json({ok:!0})}catch(e){return a.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,u.WW)(e)})}}let d=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent/answer/route",pathname:"/api/agent/answer",filename:"route",bundlePath:"app/api/agent/answer/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/answer/route.ts",nextConfigOutput:"standalone",userland:r}),{requestAsyncStorage:h,staticGenerationAsyncStorage:p,serverHooks:g}=d,m="/api/agent/answer/route";function w(){return(0,n.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:p})}},7186:(e,t,s)=>{s.d(t,{B:()=>n,f:()=>u});var r=s(1322),o=s(612),i=s(785);class n extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class a{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
1
+ "use strict";(()=>{var e={};e.id=8195,e.ids=[8195],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")},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")},6345:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{originalPathname:()=>g,patchFetch:()=>u,requestAsyncStorage:()=>d,routeModule:()=>c,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var o=s(7786),i=s(5042),n=s(2184),a=s(2556),l=e([a]);a=(l.then?(await l)():l)[0];let c=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent/answer/route",pathname:"/api/agent/answer",filename:"route",bundlePath:"app/api/agent/answer/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/answer/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=c,g="/api/agent/answer/route";function u(){return(0,n.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}r()}catch(e){r(e)}})},7186:(e,t,s)=>{s.d(t,{B:()=>a,f:()=>c});var r=s(1322),o=s(612),i=s(785);let n={jpeg:"jpg",png:"png",gif:"gif",webp:"webp"};class a extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class l{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
2
2
  ${e.summary}
3
- 原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new n("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new n("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new n(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:{permissionMode:"full-access"}})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),n=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(n).withRemoteToolStore(this.remoteToolStore,a).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let l=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(l=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||l||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){l=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let l=globalThis,u=l.__agentHost??new a;l.__agentHost=u}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[375,703,322,988],()=>s(6304));module.exports=r})();
3
+ 原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new a("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new a("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new a(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:(0,r.Tu)(e,{permissionMode:"full-access"})})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),a=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.consumePendingAutoTitle(t,e);let l=function(e){let t=[];for(let[s,r]of(e??[]).entries()){let e=/^data:image\/(jpeg|png|gif|webp);base64,/i.exec(r);e&&t.push({type:"image",name:`image-${s+1}.${n[e[1].toLowerCase()]}`,dataUrl:r})}return t.length>0?{attachments:t}:void 0}(s);await this.sessionStore.addMessage(t,{role:"user",content:e,...l?{presentation:l}:{}}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let u=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(a).withRemoteToolStore(this.remoteToolStore,u).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let c=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(c=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||c||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){c=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let u=globalThis,c=u.__agentHost??new l;u.__agentHost=c},2556:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{POST:()=>l});var o=s(1890),i=s(7186),n=s(2083),a=e([n]);async function l(e){try{let t=await e.json();if(!t.questionId||!t.answer)return o.NextResponse.json({error:"questionId and answer are required"},{status:400});let s=i.f.answerQuestion(t.questionId,t.answer,t.selectedIndices);if(s||(s=await (0,n.NL)().answerQuestion(t.questionId,{answer:t.answer,selectedIndices:t.selectedIndices})),!s)return o.NextResponse.json({error:"Question not found or already answered"},{status:404});return o.NextResponse.json({ok:!0})}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,n.WW)(e)})}}n=(a.then?(await a)():a)[0],r()}catch(e){r(e)}})}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,6244,1322,2083],()=>s(6345));module.exports=r})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/322.js","../../../../chunks/375.js","../../../../chunks/703.js","../../../../chunks/988.js","../../../../webpack-runtime.js"]}
1
+ {"version":1,"files":["../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1322.js","../../../../chunks/2083.js","../../../../chunks/6244.js","../../../../chunks/6703.js","../../../../chunks/8375.js","../../../../webpack-runtime.js"]}
@@ -1,3 +1,3 @@
1
- "use strict";(()=>{var e={};e.id=159,e.ids=[159],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")},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")},1850:(e,t,s)=>{s.r(t),s.d(t,{originalPathname:()=>m,patchFetch:()=>g,requestAsyncStorage:()=>d,routeModule:()=>c,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var r={};s.r(r),s.d(r,{GET:()=>u});var o=s(7786),i=s(5042),n=s(2184),a=s(1890),l=s(7186);async function u(){return a.NextResponse.json({...l.f.getModelConfig(),buildId:l.f.getWebAppBuildId()})}let c=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent/model/route",pathname:"/api/agent/model",filename:"route",bundlePath:"app/api/agent/model/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/model/route.ts",nextConfigOutput:"standalone",userland:r}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=c,m="/api/agent/model/route";function g(){return(0,n.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}},7186:(e,t,s)=>{s.d(t,{B:()=>n,f:()=>u});var r=s(1322),o=s(612),i=s(785);class n extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class a{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
1
+ "use strict";(()=>{var e={};e.id=159,e.ids=[159],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")},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")},1850:(e,t,s)=>{s.r(t),s.d(t,{originalPathname:()=>g,patchFetch:()=>m,requestAsyncStorage:()=>d,routeModule:()=>c,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var r={};s.r(r),s.d(r,{GET:()=>u});var o=s(7786),i=s(5042),n=s(2184),a=s(1890),l=s(7186);async function u(){return a.NextResponse.json({...l.f.getModelConfig(),buildId:l.f.getWebAppBuildId()})}let c=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent/model/route",pathname:"/api/agent/model",filename:"route",bundlePath:"app/api/agent/model/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/model/route.ts",nextConfigOutput:"standalone",userland:r}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=c,g="/api/agent/model/route";function m(){return(0,n.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}},7186:(e,t,s)=>{s.d(t,{B:()=>a,f:()=>c});var r=s(1322),o=s(612),i=s(785);let n={jpeg:"jpg",png:"png",gif:"gif",webp:"webp"};class a extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class l{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
2
2
  ${e.summary}
3
- 原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new n("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new n("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new n(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:{permissionMode:"full-access"}})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),n=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(n).withRemoteToolStore(this.remoteToolStore,a).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let l=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(l=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||l||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){l=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let l=globalThis,u=l.__agentHost??new a;l.__agentHost=u},785:(e,t,s)=>{s.d(t,{kO:()=>n,sr:()=>a});var r=s(1041),o=s(9411);let i=(0,o.resolve)((0,o.dirname)((0,r.fileURLToPath)("file:///Users/caoqu/team-agent/customer-agent/packages/server/lib/server-data-dir.ts")),"..");function n(){return function(e=process.env,t=i){return(0,o.resolve)(e.AGENT_DATA_DIR?.trim()||t)}()}function a(){return function(e=process.env,t=i){return(0,o.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),r=t.X(0,[375,703,322],()=>s(1850));module.exports=r})();
3
+ 原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new a("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new a("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new a(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:(0,r.Tu)(e,{permissionMode:"full-access"})})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),a=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.consumePendingAutoTitle(t,e);let l=function(e){let t=[];for(let[s,r]of(e??[]).entries()){let e=/^data:image\/(jpeg|png|gif|webp);base64,/i.exec(r);e&&t.push({type:"image",name:`image-${s+1}.${n[e[1].toLowerCase()]}`,dataUrl:r})}return t.length>0?{attachments:t}:void 0}(s);await this.sessionStore.addMessage(t,{role:"user",content:e,...l?{presentation:l}:{}}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let u=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(a).withRemoteToolStore(this.remoteToolStore,u).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let c=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(c=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||c||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){c=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let u=globalThis,c=u.__agentHost??new l;u.__agentHost=c},785:(e,t,s)=>{s.d(t,{kO:()=>i,sr:()=>n});var r=s(9411);let o=function(){let e=process.argv[1];if(e){let t=(0,r.dirname)((0,r.resolve)(e)),s=`${r.sep}node_modules${r.sep}.bin`;return t.endsWith(s)?(0,r.resolve)(t,"..",".."):t}return(0,r.resolve)(process.cwd())}();function i(){return function(e=process.env,t=o){return(0,r.resolve)(e.AGENT_DATA_DIR?.trim()||t)}()}function n(){return function(e=process.env,t=o){return(0,r.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,i())}}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,1322],()=>s(1850));module.exports=r})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/322.js","../../../../chunks/375.js","../../../../chunks/703.js","../../../../webpack-runtime.js"]}
1
+ {"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1322.js","../../../../chunks/6703.js","../../../../chunks/8375.js","../../../../webpack-runtime.js"]}
@@ -1,3 +1,3 @@
1
- "use strict";(()=>{var e={};e.id=616,e.ids=[616],e.modules={7728:e=>{e.exports=require("@anthropic-ai/claude-agent-sdk")},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")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},1044:(e,t,s)=>{s.r(t),s.d(t,{originalPathname:()=>f,patchFetch:()=>v,requestAsyncStorage:()=>m,routeModule:()=>p,serverHooks:()=>w,staticGenerationAsyncStorage:()=>g});var r={};s.r(r),s.d(r,{POST:()=>h});var o=s(7786),i=s(5042),n=s(2184),a=s(1890),l=s(132),u=s(7186),d=s(3988);function c(e,t,s,r){return"number"==typeof e&&Number.isFinite(e)?Math.min(r,Math.max(s,Math.trunc(e))):t}async function h(e){try{let t=await e.json();if(!t.input)return a.NextResponse.json({error:"input is required"},{status:400});if(t.sessionId&&(0,d.V_)(t.sessionId)){let e=t.sessionId,s=(0,d.NL)(),r=await s.startRun(e,t.input,t.images,"web");u.f.resetExternalStream(e),u.f.publishExternal(e,{type:"run_admitted",_nativeRunId:r.runId,_nativeSequence:r.snapshotRevision});let o=null,i=!1;return s.subscribe(e,0,({event:t})=>{u.f.publishExternal(e,t),("done"===t.type||"error"===t.type)&&(i=!0,o?.())}).then(e=>{o=e,i&&e()}).catch(t=>{let s=t instanceof l.n?t.code:void 0;u.f.publishExternal(e,{type:"error",message:t instanceof Error?t.message:"Native run subscription failed",...s?{code:s}:{}})}),a.NextResponse.json({sessionId:e,streamUrl:`/api/agent/stream?sessionId=${e}`,runId:r.runId,snapshotRevision:r.snapshotRevision})}let s=t.sessionId??crypto.randomUUID(),r=u.f.getSessionStore(),o=await r.get(s);if(!o){let e=new Date().toISOString();o=await r.create({id:s,projectId:"",title:`Chat ${e}`,status:"idle",messages:[],events:[],created:e,updated:e,metadata:{}})}let i={maxIterations:c(t.maxIterations,10,1,50),maxTokens:c(t.maxTokens,1e5,8e3,2e6)},n=u.f.getBuilder().withMaxIterations(i.maxIterations).withMaxTokens(i.maxTokens).withReasoningEffort(t.reasoningEffort??"off");return t.model&&n.withModel(t.model.provider,{apiKey:t.model.apiKey,modelId:t.model.modelId,baseUrl:t.model.baseUrl}),u.f.run(t.input,s,t.images).catch(e=>{console.error("Agent run error:",e)}),a.NextResponse.json({sessionId:o.id,streamUrl:`/api/agent/stream?sessionId=${o.id}`})}catch(e){return a.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:e instanceof l.n&&"SESSION_OCCUPIED"===e.code?409:500})}}let p=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent/run/route",pathname:"/api/agent/run",filename:"route",bundlePath:"app/api/agent/run/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/run/route.ts",nextConfigOutput:"standalone",userland:r}),{requestAsyncStorage:m,staticGenerationAsyncStorage:g,serverHooks:w}=p,f="/api/agent/run/route";function v(){return(0,n.patchFetch)({serverHooks:w,staticGenerationAsyncStorage:g})}},7186:(e,t,s)=>{s.d(t,{B:()=>n,f:()=>u});var r=s(1322),o=s(612),i=s(785);class n extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class a{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
1
+ "use strict";(()=>{var e={};e.id=2616,e.ids=[2616],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},3636:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{originalPathname:()=>m,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var i=s(7786),o=s(5042),n=s(2184),a=s(7720),l=e([a]);a=(l.then?(await l)():l)[0];let d=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/agent/run/route",pathname:"/api/agent/run",filename:"route",bundlePath:"app/api/agent/run/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/run/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:c,staticGenerationAsyncStorage:h,serverHooks:p}=d,m="/api/agent/run/route";function u(){return(0,n.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}r()}catch(e){r(e)}})},7186:(e,t,s)=>{s.d(t,{B:()=>a,f:()=>d});var r=s(1322),i=s(612),o=s(785);let n={jpeg:"jpg",png:"png",gif:"gif",webp:"webp"};class a extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class l{constructor(){this.baseDir=(0,o.kO)(),this.workingDirectory=(0,o.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
2
2
  ${e.summary}
3
- 原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new n("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new n("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new n(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:{permissionMode:"full-access"}})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),n=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(n).withRemoteToolStore(this.remoteToolStore,a).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let l=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(l=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||l||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){l=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let l=globalThis,u=l.__agentHost??new a;l.__agentHost=u}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[375,703,322,988],()=>s(1044));module.exports=r})();
3
+ 原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",i=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:i}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new a("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new a("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,i.homedir)()).assertDirectory(s.description)}catch(e){throw new a(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:(0,r.Tu)(e,{permissionMode:"full-access"})})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let i of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{i(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let i;let o=await this.sessionStore.get(t),a=await this.resolveProjectWorkingDirectory(o?.projectId);await this.sessionStore.consumePendingAutoTitle(t,e);let l=function(e){let t=[];for(let[s,r]of(e??[]).entries()){let e=/^data:image\/(jpeg|png|gif|webp);base64,/i.exec(r);e&&t.push({type:"image",name:`image-${s+1}.${n[e[1].toLowerCase()]}`,dataUrl:r})}return t.length>0?{attachments:t}:void 0}(s);await this.sessionStore.addMessage(t,{role:"user",content:e,...l?{presentation:l}:{}}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let u=o?.projectId||this.defaultRemoteToolsProjectId;try{i=await this.getBuilder().withWorkingDirectory(a).withRemoteToolStore(this.remoteToolStore,u).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=i,this.activeRunSessionId=t,this.activeRun=i.run(e,t,s);let d=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(d=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||d||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){d=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let u=globalThis,d=u.__agentHost??new l;u.__agentHost=d},7720:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{POST:()=>d});var i=s(1890),o=s(132),n=s(7186),a=s(2083),l=s(1770),u=e([a]);async function d(e){try{let t=await e.json();if(!t.input)return i.NextResponse.json({error:"input is required"},{status:400});if(t.sessionId&&(0,a.V_)(t.sessionId)){let e=t.sessionId,s=(0,a.NL)(),r=await s.startRun(e,t.input,t.images,"web");n.f.resetExternalStream(e),n.f.publishExternal(e,{type:"run_admitted",_nativeRunId:r.runId,_nativeSequence:r.snapshotRevision});let l=null,u=!1;return s.subscribe(e,0,({event:t})=>{n.f.publishExternal(e,t),("done"===t.type||"error"===t.type)&&(u=!0,l?.())}).then(e=>{l=e,u&&e()}).catch(t=>{let s=t instanceof o.n?t.code:void 0;n.f.publishExternal(e,{type:"error",message:t instanceof Error?t.message:"Native run subscription failed",...s?{code:s}:{}})}),i.NextResponse.json({sessionId:e,streamUrl:`/api/agent/stream?sessionId=${e}`,runId:r.runId,snapshotRevision:r.snapshotRevision})}let s=t.sessionId??crypto.randomUUID(),r=n.f.getSessionStore(),u=await r.get(s);if(!u){let e=new Date().toISOString();u=await r.create({id:s,projectId:"",title:`Chat ${e}`,status:"idle",messages:[],events:[],created:e,updated:e,metadata:{}})}let d=(0,l.vJ)(t),c=n.f.getBuilder().withMaxIterations(d.maxIterations).withMaxTokens(d.maxTokens).withReasoningEffort(t.reasoningEffort??"off");return t.model&&c.withModel(t.model.provider,{apiKey:t.model.apiKey,modelId:t.model.modelId,baseUrl:t.model.baseUrl}),n.f.run(t.input,s,t.images).catch(e=>{console.error("Agent run error:",e)}),i.NextResponse.json({sessionId:u.id,streamUrl:`/api/agent/stream?sessionId=${u.id}`})}catch(e){return i.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:e instanceof o.n&&"SESSION_OCCUPIED"===e.code?409:500})}}a=(u.then?(await u)():u)[0],r()}catch(e){r(e)}})},1770:(e,t,s)=>{function r(e,t,s,r){return"number"==typeof e&&Number.isFinite(e)?Math.min(r,Math.max(s,Math.trunc(e))):t}function i(e){return{maxIterations:r(e.maxIterations,10,1,50),maxTokens:r(e.maxTokens,1e5,8e3,2e6)}}s.d(t,{vJ:()=>i})}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,6244,1322,2083],()=>s(3636));module.exports=r})();
@@ -1 +1 @@
1
- {"version":1,"files":["../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/322.js","../../../../chunks/375.js","../../../../chunks/703.js","../../../../chunks/988.js","../../../../webpack-runtime.js"]}
1
+ {"version":1,"files":["../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/1322.js","../../../../chunks/2083.js","../../../../chunks/6244.js","../../../../chunks/6703.js","../../../../chunks/8375.js","../../../../webpack-runtime.js"]}
@@ -1 +1 @@
1
- "use strict";(()=>{var e={};e.id=352,e.ids=[352],e.modules={7728:e=>{e.exports=require("@anthropic-ai/claude-agent-sdk")},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")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},2666:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>c,patchFetch:()=>q,requestAsyncStorage:()=>l,routeModule:()=>d,serverHooks:()=>h,staticGenerationAsyncStorage:()=>x});var o={};t.r(o),t.d(o,{GET:()=>p});var a=t(7786),n=t(5042),s=t(2184),i=t(1890),u=t(3988);async function p(){let e=await (0,u.NL)().health();return i.NextResponse.json([{agentType:"customer-agent",available:!0,label:"Customer Agent"},...e])}let d=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/agent/runtime-health/route",pathname:"/api/agent/runtime-health",filename:"route",bundlePath:"app/api/agent/runtime-health/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/runtime-health/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:l,staticGenerationAsyncStorage:x,serverHooks:h}=d,c="/api/agent/runtime-health/route";function q(){return(0,s.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:x})}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[375,703,322,988],()=>t(2666));module.exports=o})();
1
+ "use strict";(()=>{var e={};e.id=5352,e.ids=[5352],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},4714:(e,r,t)=>{t.a(e,async(e,o)=>{try{t.r(r),t.d(r,{originalPathname:()=>x,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>h,staticGenerationAsyncStorage:()=>l});var a=t(7786),n=t(5042),s=t(2184),i=t(1335),p=e([i]);i=(p.then?(await p)():p)[0];let d=new a.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/agent/runtime-health/route",pathname:"/api/agent/runtime-health",filename:"route",bundlePath:"app/api/agent/runtime-health/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/runtime-health/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:h}=d,x="/api/agent/runtime-health/route";function u(){return(0,s.patchFetch)({serverHooks:h,staticGenerationAsyncStorage:l})}o()}catch(e){o(e)}})},1335:(e,r,t)=>{t.a(e,async(e,o)=>{try{t.r(r),t.d(r,{GET:()=>i,dynamic:()=>p});var a=t(1890),n=t(2083),s=e([n]);n=(s.then?(await s)():s)[0];let p="force-dynamic";async function i(){let e=await (0,n.NL)().health();return a.NextResponse.json([{agentType:"customer-agent",available:!0,label:"Customer Agent"},...e])}o()}catch(e){o(e)}})}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8375,6703,6244,1322,2083],()=>t(4714));module.exports=o})();