agentroam-runtime-darwin-arm64 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.
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/runtime/.next/BUILD_ID +1 -1
- package/runtime/.next/app-build-manifest.json +12 -12
- package/runtime/.next/app-path-routes-manifest.json +1 -1
- package/runtime/.next/build-manifest.json +9 -9
- package/runtime/.next/prerender-manifest.json +1 -1
- package/runtime/.next/react-loadable-manifest.json +2 -2
- package/runtime/.next/routes-manifest.json +1 -1
- package/runtime/.next/server/app/_not-found/page.js +1 -1
- package/runtime/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/runtime/.next/server/app/_not-found.html +1 -1
- package/runtime/.next/server/app/_not-found.rsc +1 -1
- package/runtime/.next/server/app/api/agent/abort/route.js +2 -2
- package/runtime/.next/server/app/api/agent/abort/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/agent/answer/route.js +2 -2
- package/runtime/.next/server/app/api/agent/answer/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/agent/model/route.js +2 -2
- package/runtime/.next/server/app/api/agent/model/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/agent/run/route.js +2 -2
- package/runtime/.next/server/app/api/agent/run/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/agent/runtime-health/route.js +1 -1
- package/runtime/.next/server/app/api/agent/runtime-health/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/agent/steer/route.js +2 -2
- package/runtime/.next/server/app/api/agent/steer/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/agent/stream/route.js +5 -5
- package/runtime/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/agent-workspaces/[workspaceId]/sessions/route.js +1 -0
- package/runtime/.next/server/app/api/agent-workspaces/[workspaceId]/sessions/route.js.nft.json +1 -0
- package/runtime/.next/server/app/api/agent-workspaces/route.js +1 -0
- package/runtime/.next/server/app/api/agent-workspaces/route.js.nft.json +1 -0
- package/runtime/.next/server/app/api/auth/verify/route.js +1 -1
- package/runtime/.next/server/app/api/auth/verify/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/mcp/connect/route.js +2 -2
- package/runtime/.next/server/app/api/mcp/connect/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/mcp/disconnect/route.js +1 -1
- package/runtime/.next/server/app/api/mcp/disconnect/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/mcp/servers/route.js +1 -1
- package/runtime/.next/server/app/api/mcp/servers/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/memory/[key]/route.js +1 -1
- package/runtime/.next/server/app/api/memory/[key]/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/memory/route.js +1 -1
- package/runtime/.next/server/app/api/memory/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/plugins/load/route.js +2 -2
- package/runtime/.next/server/app/api/plugins/load/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/projects/[id]/route.js +1 -1
- package/runtime/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/projects/check/route.js +1 -1
- package/runtime/.next/server/app/api/projects/check/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/projects/directories/route.js +1 -1
- package/runtime/.next/server/app/api/projects/directories/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/projects/roots/route.js +1 -1
- package/runtime/.next/server/app/api/projects/roots/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/projects/route.js +1 -1
- package/runtime/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/remote-tools/register/route.js +2 -2
- package/runtime/.next/server/app/api/remote-tools/register/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/changes/route.js +2 -2
- package/runtime/.next/server/app/api/sessions/[id]/changes/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/fork/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/fork/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/goals/route.js +2 -2
- package/runtime/.next/server/app/api/sessions/[id]/goals/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/handoff/route.js +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/handoff/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/sessions/[id]/route.js +2 -2
- package/runtime/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/sessions/route.js +2 -2
- package/runtime/.next/server/app/api/sessions/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/skills/route.js +2 -2
- package/runtime/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/tools/route.js +2 -2
- package/runtime/.next/server/app/api/tools/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-auth/login/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/login/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-auth/logout/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/logout/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-auth/revoke-all/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/revoke-all/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-auth/setup/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/setup/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-auth/status/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/status/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-console/bootstrap/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/bootstrap/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-console/device-state/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/device-state/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-console/history/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/history/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/preferences/route.js.nft.json +1 -1
- package/runtime/.next/server/app/web/page.js +2 -2
- package/runtime/.next/server/app/web/page.js.nft.json +1 -1
- package/runtime/.next/server/app/web/page_client-reference-manifest.js +1 -1
- package/runtime/.next/server/app/web.html +1 -1
- package/runtime/.next/server/app/web.rsc +2 -2
- package/runtime/.next/server/app-paths-manifest.json +18 -16
- package/runtime/.next/server/chunks/{322.js → 1322.js} +39 -38
- package/runtime/.next/server/chunks/2083.js +177 -0
- package/runtime/.next/server/chunks/4214.js +3 -0
- package/runtime/.next/server/chunks/5303.js +2 -0
- package/runtime/.next/server/chunks/{923.js → 5923.js} +1 -1
- package/runtime/.next/server/chunks/6244.js +1 -0
- package/runtime/.next/server/chunks/6703.js +12 -0
- package/runtime/.next/server/chunks/8375.js +2 -0
- package/runtime/.next/server/middleware-build-manifest.js +1 -1
- package/runtime/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/runtime/.next/server/pages/404.html +1 -1
- package/runtime/.next/server/pages/500.html +1 -1
- package/runtime/.next/server/pages/_app.js +1 -1
- package/runtime/.next/server/pages/_document.js +1 -1
- package/runtime/.next/server/pages/_document.js.nft.json +1 -1
- package/runtime/.next/server/pages/_error.js +1 -1
- package/runtime/.next/server/pages/_error.js.nft.json +1 -1
- package/runtime/.next/server/server-reference-manifest.json +1 -1
- package/runtime/.next/server/webpack-runtime.js +1 -1
- package/runtime/.next/static/chunks/803.c32a9408d3e3bb51.js +1 -0
- package/runtime/.next/static/chunks/app/web/{page-c8af455b0fde4d74.js → page-7bce2f13423aa839.js} +1 -1
- package/runtime/.next/static/chunks/{main-a03d29ab49823387.js → main-46a4068052b74acf.js} +1 -1
- package/runtime/.next/static/chunks/{webpack-22b57460ff31be13.js → webpack-05ad459942a1242f.js} +1 -1
- package/runtime/lib/file-preview-service.mjs +159 -0
- package/runtime/node_modules/.package-lock.json +85 -11
- package/runtime/node_modules/@agent/core/dist/domain/session/SessionTitle.d.ts +9 -0
- package/runtime/node_modules/@agent/core/dist/domain/session/SessionTitle.d.ts.map +1 -0
- package/runtime/node_modules/@agent/core/dist/domain/session/SessionTitle.test.d.ts +2 -0
- package/runtime/node_modules/@agent/core/dist/domain/session/SessionTitle.test.d.ts.map +1 -0
- package/runtime/node_modules/@agent/core/dist/domain/session/index.d.ts +1 -0
- package/runtime/node_modules/@agent/core/dist/domain/session/index.d.ts.map +1 -1
- package/runtime/node_modules/@agent/core/dist/index.js +57 -7
- package/runtime/node_modules/@agent/core/dist/index.js.map +7 -6
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteDatabase.d.ts +2 -0
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteDatabase.d.ts.map +1 -1
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteProjectStore.test.d.ts +2 -0
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteProjectStore.test.d.ts.map +1 -0
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteSessionStore.d.ts +1 -0
- package/runtime/node_modules/@agent/core/dist/infrastructure/SQLiteSessionStore.d.ts.map +1 -1
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/bridge.mjs +82 -87
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/browser-sdk.js +53 -53
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.json +19 -20
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/manifest.zst.json +23 -24
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/package.json +10 -10
- package/runtime/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs +80 -80
- package/runtime/node_modules/@opencode-ai/sdk/dist/client.js +53 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/error-interceptor.js +43 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client/client.gen.js +165 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client/index.js +5 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client/types.gen.js +2 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client/utils.gen.js +226 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/client.gen.js +5 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/auth.gen.js +14 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/bodySerializer.gen.js +57 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/params.gen.js +89 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/pathSerializer.gen.js +106 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/queryKeySerializer.gen.js +93 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/serverSentEvents.gen.js +117 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/types.gen.js +2 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/core/utils.gen.js +69 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/sdk.gen.js +881 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/gen/types.gen.js +2 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/index.js +16 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/process.js +33 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/server.js +105 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/client.js +80 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/data.js +22 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client/client.gen.js +232 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client/index.js +6 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client/types.gen.js +2 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client/utils.gen.js +226 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/client.gen.js +3 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/auth.gen.js +14 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/bodySerializer.gen.js +57 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/params.gen.js +102 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/pathSerializer.gen.js +106 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/queryKeySerializer.gen.js +93 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/serverSentEvents.gen.js +133 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/types.gen.js +2 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/core/utils.gen.js +87 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/sdk.gen.js +4456 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/gen/types.gen.js +2 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/index.js +17 -0
- package/runtime/node_modules/@opencode-ai/sdk/dist/v2/server.js +105 -0
- package/runtime/node_modules/@opencode-ai/sdk/package.json +60 -0
- package/runtime/node_modules/cross-spawn/LICENSE +21 -0
- package/runtime/node_modules/cross-spawn/README.md +89 -0
- package/runtime/node_modules/cross-spawn/index.js +39 -0
- package/runtime/node_modules/cross-spawn/lib/enoent.js +59 -0
- package/runtime/node_modules/cross-spawn/lib/parse.js +91 -0
- package/runtime/node_modules/cross-spawn/lib/util/escape.js +47 -0
- package/runtime/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
- package/runtime/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
- package/runtime/node_modules/cross-spawn/package.json +73 -0
- package/runtime/node_modules/isexe/LICENSE +15 -0
- package/runtime/node_modules/isexe/README.md +51 -0
- package/runtime/node_modules/isexe/index.js +57 -0
- package/runtime/node_modules/isexe/mode.js +41 -0
- package/runtime/node_modules/isexe/package.json +31 -0
- package/runtime/node_modules/isexe/test/basic.js +221 -0
- package/runtime/node_modules/isexe/windows.js +42 -0
- package/runtime/node_modules/path-key/index.js +16 -0
- package/runtime/node_modules/path-key/license +9 -0
- package/runtime/node_modules/path-key/package.json +39 -0
- package/runtime/node_modules/path-key/readme.md +61 -0
- package/runtime/node_modules/shebang-command/index.js +19 -0
- package/runtime/node_modules/shebang-command/license +9 -0
- package/runtime/node_modules/shebang-command/package.json +34 -0
- package/runtime/node_modules/shebang-command/readme.md +34 -0
- package/runtime/node_modules/shebang-regex/index.js +2 -0
- package/runtime/node_modules/shebang-regex/license +9 -0
- package/runtime/node_modules/shebang-regex/package.json +35 -0
- package/runtime/node_modules/shebang-regex/readme.md +33 -0
- package/runtime/node_modules/which/CHANGELOG.md +166 -0
- package/runtime/node_modules/which/LICENSE +15 -0
- package/runtime/node_modules/which/README.md +54 -0
- package/runtime/node_modules/which/bin/node-which +52 -0
- package/runtime/node_modules/which/package.json +43 -0
- package/runtime/node_modules/which/which.js +125 -0
- package/runtime/package-lock.json +47 -43
- package/runtime/package.json +2 -1
- package/runtime/webapp/dist/assets/App-DhjG0cSw.js +240 -0
- package/runtime/webapp/dist/assets/{index-wTH7T_Ah.css → index-BXTtTSvB.css} +1 -1
- package/runtime/webapp/dist/assets/{index-BjCuCFYF.js → index-CngFUejN.js} +7 -7
- package/runtime/webapp/dist/index.html +2 -2
- package/runtime/ws-server.mjs +8 -1
- package/runtime/.next/server/app/api/agent/runtime-health.body +0 -1
- package/runtime/.next/server/app/api/agent/runtime-health.meta +0 -1
- package/runtime/.next/server/chunks/303.js +0 -2
- package/runtime/.next/server/chunks/375.js +0 -2
- package/runtime/.next/server/chunks/703.js +0 -12
- package/runtime/.next/server/chunks/988.js +0 -119
- package/runtime/.next/static/chunks/115.95ca5e1861314f5c.js +0 -1
- package/runtime/webapp/dist/assets/App-D8mcRu-Q.js +0 -231
- /package/runtime/.next/static/chunks/{108-5a2df9f74c5fd4ea.js → 108-bc4a0fe192dfff08.js} +0 -0
- /package/runtime/.next/static/chunks/{183-ffe4acb07968be9e.js → 183-d2f78a21998813ba.js} +0 -0
- /package/runtime/.next/static/chunks/{3cc391f0-6377b9b71382a170.js → 3cc391f0-d7ec74603652803d.js} +0 -0
- /package/runtime/.next/static/chunks/app/_not-found/{page-09f702519672bb02.js → page-4a73d1777b316883.js} +0 -0
- /package/runtime/.next/static/{WbNomgtKBalC4rAWPGRjU → pBpxqLpcmaz3BAj7sw5Ya}/_buildManifest.js +0 -0
- /package/runtime/.next/static/{WbNomgtKBalC4rAWPGRjU → pBpxqLpcmaz3BAj7sw5Ya}/_ssgManifest.js +0 -0
|
@@ -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/
|
|
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=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=5369,e.ids=[5369],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")},4390:(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(583),l=e([a]);a=(l.then?(await l)():l)[0];let c=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/agent/steer/route",pathname:"/api/agent/steer",filename:"route",bundlePath:"app/api/agent/steer/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/steer/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:h,staticGenerationAsyncStorage:d,serverHooks:p}=c,g="/api/agent/steer/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
|
|
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},583:(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.input||!t.sessionId)return o.NextResponse.json({error:"input and sessionId are required"},{status:400});if((0,n.V_)(t.sessionId)){let e=await (0,n.NL)().steer(t.sessionId,t.input);return o.NextResponse.json({steered:e})}let s=await i.f.steer(t.input,t.sessionId);return o.NextResponse.json({steered:s})}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(4390));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/
|
|
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,12 +1,12 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=820,e.ids=[820],e.modules={
|
|
1
|
+
"use strict";(()=>{var e={};e.id=820,e.ids=[820],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},2190:(e,t,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 i=s(7786),n=s(5042),o=s(2184),a=s(8632),l=e([a]);a=(l.then?(await l)():l)[0];let c=new i.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/agent/stream/route",pathname:"/api/agent/stream",filename:"route",bundlePath:"app/api/agent/stream/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent/stream/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:p}=c,g="/api/agent/stream/route";function u(){return(0,o.patchFetch)({serverHooks:p,staticGenerationAsyncStorage:h})}r()}catch(e){r(e)}})},7786:(e,t,s)=>{e.exports=s(517)},7186:(e,t,s)=>{s.d(t,{B:()=>a,f:()=>c});var r=s(1322),i=s(612),n=s(785);let o={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,n.kO)(),this.workingDirectory=(0,n.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
|
+
${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",i=process.env.AGENT_BASE_URL||void 0,o=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);o.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&o.withModel(t,{apiKey:e,modelId:s,baseUrl:i}),this.builder=o}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 n=await this.sessionStore.get(t),a=await this.resolveProjectWorkingDirectory(n?.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}.${o[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=n?.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 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},8632:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{GET:()=>a});var i=s(7186),n=s(2083),o=e([n]);async function a(e){let t=new URL(e.url).searchParams.get("sessionId");if(!t)return new Response("sessionId is required",{status:400});if((0,n.V_)(t))return l(e,t);let s=!1,r=null,o=null,a=new ReadableStream({start(n){let a=new TextEncoder,l=()=>{if(!s){s=!0,r?.(),r=null,o&&e.signal.removeEventListener("abort",o);try{n.close()}catch{}}},u=e=>{if(s)return!1;try{return n.enqueue(a.encode(e)),!0}catch{return l(),!1}};if(!u(": connected\n\n"))return;let c=e.headers.get("last-event-id"),d=Number.parseInt(c??"",10),h=Number.isSafeInteger(d)?d:i.f.getLatestEventId(t);r=i.f.subscribe(t,(e,t)=>{u(`id: ${t}
|
|
2
4
|
data: ${JSON.stringify(e)}
|
|
3
5
|
|
|
4
|
-
`)&&("done"===e.type||"error"===e.type)&&l()},
|
|
6
|
+
`)&&("done"===e.type||"error"===e.type)&&l()},h),o=l,e.signal.aborted?l():e.signal.addEventListener("abort",o,{once:!0})},cancel(){s=!0,r?.(),r=null,o&&e.signal.removeEventListener("abort",o)}});return new Response(a,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async function l(e,t){let s=!1,r=null,i=null,o=(0,n.NL)(),a=new URL(e.url),l=Number.parseInt(a.searchParams.get("afterSequence")??"",10),u=a.searchParams.get("afterRunId"),c=e.headers.get("last-event-id"),d=new ReadableStream({async start(n){let a=new TextEncoder,d=()=>{if(!s){s=!0,r?.(),r=null,i&&e.signal.removeEventListener("abort",i);try{n.close()}catch{}}},h=e=>{if(s)return!1;try{return n.enqueue(a.encode(e)),!0}catch{return d(),!1}};if(h(": connected\n\n"))try{let s=await o.snapshot(t),n=function(e){if(!e)return null;let t=e.lastIndexOf(":");if(t<0){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?{runId:null,sequence:t}:null}let s=e.slice(0,t),r=Number.parseInt(e.slice(t+1),10);return s&&Number.isSafeInteger(r)?{runId:s,sequence:r}:null}(c),a=Number.isSafeInteger(l)?{runId:u,sequence:l}:null,p=n??a,g=p?p.runId&&p.runId!==s.runId?0:p.sequence:s.snapshotRevision;r=await o.subscribe(t,g,({runId:e,sequence:t,event:s})=>{let r={...s,_nativeRunId:e,_nativeSequence:t};h(`id: ${e}:${t}
|
|
5
7
|
data: ${JSON.stringify(r)}
|
|
6
8
|
|
|
7
9
|
`)&&("done"===s.type||"error"===s.type)&&d()}),i=d,e.signal.aborted?d():e.signal.addEventListener("abort",i,{once:!0})}catch(e){h(`event: error
|
|
8
10
|
data: ${JSON.stringify({type:"error",message:e instanceof Error?e.message:"Native stream failed"})}
|
|
9
11
|
|
|
10
|
-
`),d()}},cancel(){s=!0,r?.(),r=null,i&&e.signal.removeEventListener("abort",i)}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}
|
|
11
|
-
${e.summary}
|
|
12
|
-
原因:${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,o=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);o.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&o.withModel(t,{apiKey:e,modelId:s,baseUrl:i}),this.builder=o}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 o("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new o("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,i.homedir)()).assertDirectory(s.description)}catch(e){throw new o(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 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 n=await this.sessionStore.get(t),o=await this.resolveProjectWorkingDirectory(n?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=n?.projectId||this.defaultRemoteToolsProjectId;try{i=await this.getBuilder().withWorkingDirectory(o).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=i,this.activeRunSessionId=t,this.activeRun=i.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,322,988],()=>s(2592));module.exports=r})();
|
|
12
|
+
`),d()}},cancel(){s=!0,r?.(),r=null,i&&e.signal.removeEventListener("abort",i)}});return new Response(d,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}n=(o.then?(await o)():o)[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,6244,1322,2083],()=>s(2190));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/
|
|
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/8375.js","../../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=4612,e.ids=[4612],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},3841:(e,r,s)=>{s.a(e,async(e,t)=>{try{s.r(r),s.d(r,{originalPathname:()=>g,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>x,staticGenerationAsyncStorage:()=>l});var o=s(7786),a=s(5042),n=s(2184),i=s(5609),p=e([i]);i=(p.then?(await p)():p)[0];let d=new o.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/agent-workspaces/[workspaceId]/sessions/route",pathname:"/api/agent-workspaces/[workspaceId]/sessions",filename:"route",bundlePath:"app/api/agent-workspaces/[workspaceId]/sessions/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent-workspaces/[workspaceId]/sessions/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:c,staticGenerationAsyncStorage:l,serverHooks:x}=d,g="/api/agent-workspaces/[workspaceId]/sessions/route";function u(){return(0,n.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:l})}t()}catch(e){t(e)}})},5609:(e,r,s)=>{s.a(e,async(e,t)=>{try{s.r(r),s.d(r,{GET:()=>c});var o=s(1890),a=s(1322),n=s(2557),i=s(7186),p=s(2083),u=s(4214),d=e([p,u]);async function c(e,r){let s;let t=new URL(e.url),d=(0,u.readAgentType)(t.searchParams.get("agentType"));if(!d)return o.NextResponse.json({error:"A valid agentType is required"},{status:400});try{let e=(0,u.readWorkspaceQuery)(t);s={cursor:e.cursor,limit:e.limit,refresh:e.refresh}}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Invalid query"},{status:400})}try{if("customer-agent"!==d)return o.NextResponse.json(await (0,p.NL)().listWorkspaceSessions(d,r.params.workspaceId,s));let e=await i.f.getProjectStore().get(r.params.workspaceId);if(!e)return o.NextResponse.json({error:"Workspace not found"},{status:404});let t=(await i.f.getSessionStore().list(e.id)).map(({messages:r,events:s,...t})=>({...t,agentType:"customer-agent",nativeSessionId:t.id,cwd:e.description,occupancy:i.f.isSessionRunning(t.id)?"owned-by-customer-agent":"available",sourceLabel:"Customer Agent",canResume:!0,canDelete:!i.f.isSessionRunning(t.id),permissionMode:(0,a.Ny)(t.metadata.permissionMode)})).sort((e,r)=>r.updated.localeCompare(e.updated));return o.NextResponse.json((0,n.L)(t,s,t[0]?.updated??e.updated))}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Workspace sessions failed"},{status:(0,p.WW)(e)})}}[p,u]=d.then?(await d)():d,t()}catch(e){t(e)}})}};var r=require("../../../../../webpack-runtime.js");r.C(e);var s=e=>r(r.s=e),t=r.X(0,[8375,6703,6244,1322,2083,4214],()=>s(3841));module.exports=t})();
|
package/runtime/.next/server/app/api/agent-workspaces/[workspaceId]/sessions/route.js.nft.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
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/4214.js","../../../../../chunks/6244.js","../../../../../chunks/6703.js","../../../../../chunks/8375.js","../../../../../webpack-runtime.js"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(()=>{var e={};e.id=8593,e.ids=[8593],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},1282:e=>{e.exports=require("child_process")},2048:e=>{e.exports=require("fs")},9801:e=>{e.exports=require("os")},5315:e=>{e.exports=require("path")},2728:e=>{e.exports=import("@anthropic-ai/claude-agent-sdk")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},7503:e=>{e.exports=require("node:net")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},6915:e=>{e.exports=require("node:string_decoder")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},5449:(e,r,t)=>{t.a(e,async(e,o)=>{try{t.r(r),t.d(r,{originalPathname:()=>l,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>q,staticGenerationAsyncStorage:()=>x});var s=t(7786),p=t(5042),a=t(2184),i=t(4214),n=e([i]);i=(n.then?(await n)():n)[0];let d=new s.AppRouteRouteModule({definition:{kind:p.x.APP_ROUTE,page:"/api/agent-workspaces/route",pathname:"/api/agent-workspaces",filename:"route",bundlePath:"app/api/agent-workspaces/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/agent-workspaces/route.ts",nextConfigOutput:"standalone",userland:i}),{requestAsyncStorage:c,staticGenerationAsyncStorage:x,serverHooks:q}=d,l="/api/agent-workspaces/route";function u(){return(0,a.patchFetch)({serverHooks:q,staticGenerationAsyncStorage:x})}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,4214],()=>t(5449));module.exports=o})();
|
|
@@ -0,0 +1 @@
|
|
|
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/4214.js","../../../chunks/6244.js","../../../chunks/6703.js","../../../chunks/8375.js","../../../webpack-runtime.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=571,e.ids=[571],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},3935:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>h,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>l,staticGenerationAsyncStorage:()=>c});var a={};r.r(a),r.d(a,{GET:()=>u});var s=r(7786),o=r(5042),n=r(2184),i=r(1890);async function u(e){let t=e.headers.get("Authorization"),r=t?.replace("Bearer ",""),a=new URL(e.url).searchParams.get("token"),s=process.env.AGENT_SDK_TOKEN;return s?(r||a)===s?i.NextResponse.json({valid:!0,project:"default"}):i.NextResponse.json({valid:!1},{status:401}):i.NextResponse.json({valid:!0,project:"dev"})}let p=new s.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/auth/verify/route",pathname:"/api/auth/verify",filename:"route",bundlePath:"app/api/auth/verify/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/auth/verify/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:c,serverHooks:l}=p,v="/api/auth/verify/route";function h(){return(0,n.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:c})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[
|
|
1
|
+
"use strict";(()=>{var e={};e.id=571,e.ids=[571],e.modules={399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},3935:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>v,patchFetch:()=>h,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>l,staticGenerationAsyncStorage:()=>c});var a={};r.r(a),r.d(a,{GET:()=>u});var s=r(7786),o=r(5042),n=r(2184),i=r(1890);async function u(e){let t=e.headers.get("Authorization"),r=t?.replace("Bearer ",""),a=new URL(e.url).searchParams.get("token"),s=process.env.AGENT_SDK_TOKEN;return s?(r||a)===s?i.NextResponse.json({valid:!0,project:"default"}):i.NextResponse.json({valid:!1},{status:401}):i.NextResponse.json({valid:!0,project:"dev"})}let p=new s.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/auth/verify/route",pathname:"/api/auth/verify",filename:"route",bundlePath:"app/api/auth/verify/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/auth/verify/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:d,staticGenerationAsyncStorage:c,serverHooks:l}=p,v="/api/auth/verify/route";function h(){return(0,n.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:c})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[8375,6703],()=>r(3935));module.exports=a})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/6703.js","../../../../chunks/8375.js","../../../../webpack-runtime.js"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=2210,e.ids=[2210],e.modules={5890:e=>{e.exports=require("better-sqlite3")},399:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},9801:e=>{e.exports=require("os")},7718:e=>{e.exports=require("node:child_process")},6005:e=>{e.exports=require("node:crypto")},5673:e=>{e.exports=require("node:events")},7561:e=>{e.exports=require("node:fs")},3977:e=>{e.exports=require("node:fs/promises")},8849:e=>{e.exports=require("node:http")},2286:e=>{e.exports=require("node:https")},612:e=>{e.exports=require("node:os")},9411:e=>{e.exports=require("node:path")},1747:e=>{e.exports=require("node:readline")},1041:e=>{e.exports=require("node:url")},2993:(e,t,s)=>{s.r(t),s.d(t,{originalPathname:()=>w,patchFetch:()=>v,requestAsyncStorage:()=>p,routeModule:()=>h,serverHooks:()=>g,staticGenerationAsyncStorage:()=>m});var r={};s.r(r),s.d(r,{POST:()=>d});var o=s(7786),i=s(5042),n=s(2184),a=s(1890),l=s(1322),u=s(7186);let c=new l.KS(u.f.getBuilder().getToolRegistry());async function d(e){try{let t=await e.json();if(!t.id||!t.command)return a.NextResponse.json({error:"id and command are required"},{status:400});await c.connectServer(t);let s=await c.discoverAllTools();return a.NextResponse.json({status:"connected",tools:Object.fromEntries(s)})}catch(e){return a.NextResponse.json({error:e instanceof Error?e.message:"Connection failed"},{status:500})}}let h=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/mcp/connect/route",pathname:"/api/mcp/connect",filename:"route",bundlePath:"app/api/mcp/connect/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/mcp/connect/route.ts",nextConfigOutput:"standalone",userland:r}),{requestAsyncStorage:p,staticGenerationAsyncStorage:m,serverHooks:g}=h,w="/api/mcp/connect/route";function v(){return(0,n.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:m})}},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
|
|
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(2993));module.exports=r})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=5585,e.ids=[5585],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")},867:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>q,patchFetch:()=>m,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>l,staticGenerationAsyncStorage:()=>x});var s={};t.r(s),t.d(s,{DELETE:()=>u});var o=t(7786),n=t(5042),i=t(2184),p=t(1890);let a=new(t(1322)).KS;async function u(e){let r=new URL(e.url).searchParams.get("serverId");return r?(await a.disconnectServer(r),p.NextResponse.json({status:"disconnected"})):p.NextResponse.json({error:"serverId is required"},{status:400})}let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/mcp/disconnect/route",pathname:"/api/mcp/disconnect",filename:"route",bundlePath:"app/api/mcp/disconnect/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/mcp/disconnect/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:c,staticGenerationAsyncStorage:x,serverHooks:l}=d,q="/api/mcp/disconnect/route";function m(){return(0,i.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:x})}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,1322],()=>t(867));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=2935,e.ids=[2935],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")},7073:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>q,patchFetch:()=>m,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>l,staticGenerationAsyncStorage:()=>x});var s={};t.r(s),t.d(s,{GET:()=>a});var o=t(7786),p=t(5042),n=t(2184),i=t(1890);let u=new(t(1322)).KS;async function a(){let e=u.listServers();return i.NextResponse.json(e)}let d=new o.AppRouteRouteModule({definition:{kind:p.x.APP_ROUTE,page:"/api/mcp/servers/route",pathname:"/api/mcp/servers",filename:"route",bundlePath:"app/api/mcp/servers/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/mcp/servers/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:c,staticGenerationAsyncStorage:x,serverHooks:l}=d,q="/api/mcp/servers/route";function m(){return(0,n.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:x})}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,1322],()=>t(7073));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=6006,e.ids=[6006],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")},8865:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>q,patchFetch:()=>y,requestAsyncStorage:()=>c,routeModule:()=>x,serverHooks:()=>l,staticGenerationAsyncStorage:()=>m});var o={};t.r(o),t.d(o,{DELETE:()=>d,GET:()=>u});var s=t(7786),n=t(5042),p=t(2184),a=t(1890);let i=new(t(1322)).ds(process.cwd());async function u(e,{params:r}){let t=await i.get(r.key);return t?a.NextResponse.json(t):a.NextResponse.json({error:"Memory not found"},{status:404})}async function d(e,{params:r}){return await i.delete(r.key),a.NextResponse.json({status:"deleted"})}let x=new s.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/memory/[key]/route",pathname:"/api/memory/[key]",filename:"route",bundlePath:"app/api/memory/[key]/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/memory/[key]/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:c,staticGenerationAsyncStorage:m,serverHooks:l}=x,q="/api/memory/[key]/route";function y(){return(0,p.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:m})}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[8375,6703,1322],()=>t(8865));module.exports=o})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=3760,e.ids=[3760],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")},1188:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>q,patchFetch:()=>h,requestAsyncStorage:()=>m,routeModule:()=>c,serverHooks:()=>l,staticGenerationAsyncStorage:()=>x});var s={};t.r(s),t.d(s,{GET:()=>p,POST:()=>d});var o=t(7786),n=t(5042),a=t(2184),i=t(1890);let u=new(t(1322)).ds(process.cwd());async function p(e){let r=new URL(e.url).searchParams.get("q");if(r){let e=await u.search(r);return i.NextResponse.json(e)}let t=await u.list();return i.NextResponse.json(t)}async function d(e){try{let r=await e.json();if(!r.name||!r.content)return i.NextResponse.json({error:"name and content are required"},{status:400});return await u.set(r),i.NextResponse.json({status:"saved"},{status:201})}catch(e){return i.NextResponse.json({error:e instanceof Error?e.message:"Save failed"},{status:500})}}let c=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/memory/route",pathname:"/api/memory",filename:"route",bundlePath:"app/api/memory/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/memory/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:m,staticGenerationAsyncStorage:x,serverHooks:l}=c,q="/api/memory/route";function h(){return(0,a.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:x})}}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,1322],()=>t(1188));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../node_modules/better-sqlite3","../../../../../node_modules/next","../../../../../package.json","../../../../package.json","../../../chunks/
|
|
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=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=2538,e.ids=[2538],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")},8525:(e,t,s)=>{s.r(t),s.d(t,{originalPathname:()=>w,patchFetch:()=>v,requestAsyncStorage:()=>p,routeModule:()=>h,serverHooks:()=>m,staticGenerationAsyncStorage:()=>g});var r={};s.r(r),s.d(r,{POST:()=>d});var i=s(7786),o=s(5042),n=s(2184),a=s(1890),l=s(1322),u=s(7186);let c=new l.Q$(u.f.getBuilder().getToolRegistry(),u.f.getBuilder().getSkillRegistry(),process.cwd());async function d(e){try{let t=await e.json();if(!t.dirPath)return a.NextResponse.json({error:"dirPath is required"},{status:400});let s=await c.loadPlugin(t.dirPath);return await c.activatePlugin(s.manifest.name),a.NextResponse.json({status:"loaded",plugin:{name:s.manifest.name,version:s.manifest.version,description:s.manifest.description}})}catch(e){return a.NextResponse.json({error:e instanceof Error?e.message:"Plugin load failed"},{status:500})}}let h=new i.AppRouteRouteModule({definition:{kind:o.x.APP_ROUTE,page:"/api/plugins/load/route",pathname:"/api/plugins/load",filename:"route",bundlePath:"app/api/plugins/load/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/plugins/load/route.ts",nextConfigOutput:"standalone",userland:r}),{requestAsyncStorage:p,staticGenerationAsyncStorage:g,serverHooks:m}=h,w="/api/plugins/load/route";function v(){return(0,n.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:g})}},7186:(e,t,s)=>{s.d(t,{B:()=>a,f:()=>c});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",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
|
|
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 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:()=>o,sr:()=>n});var r=s(9411);let i=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 o(){return function(e=process.env,t=i){return(0,r.resolve)(e.AGENT_DATA_DIR?.trim()||t)}()}function n(){return function(e=process.env,t=i){return(0,r.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,o())}}};var t=require("../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[8375,6703,1322],()=>s(8525));module.exports=r})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=7361,e.ids=[7361],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")},9085:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>y,patchFetch:()=>f,requestAsyncStorage:()=>l,routeModule:()=>h,serverHooks:()=>x,staticGenerationAsyncStorage:()=>m});var s={};r.r(s),r.d(s,{DELETE:()=>d,GET:()=>c,PATCH:()=>p});var o=r(7786),n=r(5042),a=r(2184),i=r(1890),u=r(556);async function c(e,{params:t}){try{return i.NextResponse.json(await u.a.get(t.id))}catch(t){let e=(0,u.r)(t);return i.NextResponse.json(e.body,{status:e.status})}}async function p(e,{params:t}){try{let r=await e.json();return i.NextResponse.json(await u.a.rename(t.id,r.name??""))}catch(t){let e=(0,u.r)(t);return i.NextResponse.json(e.body,{status:e.status})}}async function d(e,{params:t}){try{return await u.a.delete(t.id),i.NextResponse.json({deleted:!0,projectId:t.id})}catch(t){let e=(0,u.r)(t);return i.NextResponse.json(e.body,{status:e.status})}}let h=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/projects/[id]/route",pathname:"/api/projects/[id]",filename:"route",bundlePath:"app/api/projects/[id]/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/projects/[id]/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:l,staticGenerationAsyncStorage:m,serverHooks:x}=h,y="/api/projects/[id]/route";function f(){return(0,a.patchFetch)({serverHooks:x,staticGenerationAsyncStorage:m})}},556:(e,t,r)=>{r.d(t,{r:()=>d,a:()=>p});var s=r(612),o=r(1322),n=r(785),a=r(6005),i=r(9411);class u extends Error{constructor(e,t,r){super(e),this.code=t,this.status=r,this.name="WebProjectError"}}class c{constructor(e,t){this.store=e,this.paths=t}list(){return this.store.list()}async get(e){let t=await this.store.get(e);if(!t)throw new u("项目不存在","PROJECT_NOT_FOUND",404);return t}async create(e,t){let r=this.paths.assertDirectory(e);for(let e of(await this.store.list()))try{if(this.paths.assertDirectory(e.description)===r)return e}catch{}let s=new Date().toISOString();return this.store.create({id:(0,a.randomUUID)(),name:t?.trim()||(0,i.basename)(r)||r,description:r,created:s,updated:s})}async rename(e,t){await this.get(e);let r=t.trim();if(!r)throw new u("项目名称不能为空","PROJECT_NAME_REQUIRED",400);return this.store.update(e,{name:r})}async delete(e){await this.get(e),await this.store.delete(e)}roots(){return this.paths.roots}directories(e){return this.paths.listDirectories(e)}check(e){try{return this.paths.assertDirectory(e),!0}catch{return!1}}canonicalDirectory(e){return this.paths.assertDirectory(e)}}let p=new c(new o.XW((0,n.kO)()),o.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,s.homedir)()));function d(e){return e instanceof u?{status:e.status,body:{error:e.message,code:e.code}}:e instanceof o.TL?{status:400,body:{error:e.message,code:e.code}}:{status:500,body:{error:e instanceof Error?e.message:"项目操作失败",code:"PROJECT_OPERATION_FAILED"}}}},785:(e,t,r)=>{r.d(t,{kO:()=>n,sr:()=>a});var s=r(9411);let o=function(){let e=process.argv[1];if(e){let t=(0,s.dirname)((0,s.resolve)(e)),r=`${s.sep}node_modules${s.sep}.bin`;return t.endsWith(r)?(0,s.resolve)(t,"..",".."):t}return(0,s.resolve)(process.cwd())}();function n(){return function(e=process.env,t=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||t)}()}function a(){return function(e=process.env,t=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,n())}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[8375,6703,1322],()=>r(9085));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=6315,e.ids=[6315],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")},9695:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>v,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>l,staticGenerationAsyncStorage:()=>h});var s={};t.r(s),t.d(s,{GET:()=>u});var o=t(7786),n=t(5042),i=t(2184),a=t(1890),c=t(556);async function u(e){let r=new URL(e.url).searchParams.get("path")??"";return a.NextResponse.json({valid:c.a.check(r)})}let p=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/projects/check/route",pathname:"/api/projects/check",filename:"route",bundlePath:"app/api/projects/check/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/projects/check/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:l}=p,m="/api/projects/check/route";function v(){return(0,i.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:h})}},556:(e,r,t)=>{t.d(r,{r:()=>d,a:()=>p});var s=t(612),o=t(1322),n=t(785),i=t(6005),a=t(9411);class c extends Error{constructor(e,r,t){super(e),this.code=r,this.status=t,this.name="WebProjectError"}}class u{constructor(e,r){this.store=e,this.paths=r}list(){return this.store.list()}async get(e){let r=await this.store.get(e);if(!r)throw new c("项目不存在","PROJECT_NOT_FOUND",404);return r}async create(e,r){let t=this.paths.assertDirectory(e);for(let e of(await this.store.list()))try{if(this.paths.assertDirectory(e.description)===t)return e}catch{}let s=new Date().toISOString();return this.store.create({id:(0,i.randomUUID)(),name:r?.trim()||(0,a.basename)(t)||t,description:t,created:s,updated:s})}async rename(e,r){await this.get(e);let t=r.trim();if(!t)throw new c("项目名称不能为空","PROJECT_NAME_REQUIRED",400);return this.store.update(e,{name:t})}async delete(e){await this.get(e),await this.store.delete(e)}roots(){return this.paths.roots}directories(e){return this.paths.listDirectories(e)}check(e){try{return this.paths.assertDirectory(e),!0}catch{return!1}}canonicalDirectory(e){return this.paths.assertDirectory(e)}}let p=new u(new o.XW((0,n.kO)()),o.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,s.homedir)()));function d(e){return e instanceof c?{status:e.status,body:{error:e.message,code:e.code}}:e instanceof o.TL?{status:400,body:{error:e.message,code:e.code}}:{status:500,body:{error:e instanceof Error?e.message:"项目操作失败",code:"PROJECT_OPERATION_FAILED"}}}},785:(e,r,t)=>{t.d(r,{kO:()=>n,sr:()=>i});var s=t(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,s.dirname)((0,s.resolve)(e)),t=`${s.sep}node_modules${s.sep}.bin`;return r.endsWith(t)?(0,s.resolve)(r,"..",".."):r}return(0,s.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,1322],()=>t(9695));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=4737,e.ids=[4737],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")},5938:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>x,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>l,staticGenerationAsyncStorage:()=>h});var s={};t.r(s),t.d(s,{GET:()=>u});var o=t(7786),i=t(5042),n=t(2184),a=t(1890),c=t(556);async function u(e){try{let r=new URL(e.url).searchParams.get("path")??"";return a.NextResponse.json(c.a.directories(r))}catch(r){let e=(0,c.r)(r);return a.NextResponse.json(e.body,{status:e.status})}}let p=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/projects/directories/route",pathname:"/api/projects/directories",filename:"route",bundlePath:"app/api/projects/directories/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/projects/directories/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:l}=p,m="/api/projects/directories/route";function x(){return(0,n.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:h})}},556:(e,r,t)=>{t.d(r,{r:()=>d,a:()=>p});var s=t(612),o=t(1322),i=t(785),n=t(6005),a=t(9411);class c extends Error{constructor(e,r,t){super(e),this.code=r,this.status=t,this.name="WebProjectError"}}class u{constructor(e,r){this.store=e,this.paths=r}list(){return this.store.list()}async get(e){let r=await this.store.get(e);if(!r)throw new c("项目不存在","PROJECT_NOT_FOUND",404);return r}async create(e,r){let t=this.paths.assertDirectory(e);for(let e of(await this.store.list()))try{if(this.paths.assertDirectory(e.description)===t)return e}catch{}let s=new Date().toISOString();return this.store.create({id:(0,n.randomUUID)(),name:r?.trim()||(0,a.basename)(t)||t,description:t,created:s,updated:s})}async rename(e,r){await this.get(e);let t=r.trim();if(!t)throw new c("项目名称不能为空","PROJECT_NAME_REQUIRED",400);return this.store.update(e,{name:t})}async delete(e){await this.get(e),await this.store.delete(e)}roots(){return this.paths.roots}directories(e){return this.paths.listDirectories(e)}check(e){try{return this.paths.assertDirectory(e),!0}catch{return!1}}canonicalDirectory(e){return this.paths.assertDirectory(e)}}let p=new u(new o.XW((0,i.kO)()),o.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,s.homedir)()));function d(e){return e instanceof c?{status:e.status,body:{error:e.message,code:e.code}}:e instanceof o.TL?{status:400,body:{error:e.message,code:e.code}}:{status:500,body:{error:e instanceof Error?e.message:"项目操作失败",code:"PROJECT_OPERATION_FAILED"}}}},785:(e,r,t)=>{t.d(r,{kO:()=>i,sr:()=>n});var s=t(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,s.dirname)((0,s.resolve)(e)),t=`${s.sep}node_modules${s.sep}.bin`;return r.endsWith(t)?(0,s.resolve)(r,"..",".."):r}return(0,s.resolve)(process.cwd())}();function i(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function n(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,i())}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,1322],()=>t(5938));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
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 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=
|
|
1
|
+
"use strict";(()=>{var e={};e.id=1199,e.ids=[1199],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")},4525:(e,r,t)=>{t.r(r),t.d(r,{originalPathname:()=>m,patchFetch:()=>v,requestAsyncStorage:()=>d,routeModule:()=>p,serverHooks:()=>l,staticGenerationAsyncStorage:()=>h});var s={};t.r(s),t.d(s,{GET:()=>c});var o=t(7786),n=t(5042),i=t(2184),a=t(1890),u=t(556);async function c(){return a.NextResponse.json(u.a.roots())}let p=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/projects/roots/route",pathname:"/api/projects/roots",filename:"route",bundlePath:"app/api/projects/roots/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/projects/roots/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:d,staticGenerationAsyncStorage:h,serverHooks:l}=p,m="/api/projects/roots/route";function v(){return(0,i.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:h})}},556:(e,r,t)=>{t.d(r,{r:()=>d,a:()=>p});var s=t(612),o=t(1322),n=t(785),i=t(6005),a=t(9411);class u extends Error{constructor(e,r,t){super(e),this.code=r,this.status=t,this.name="WebProjectError"}}class c{constructor(e,r){this.store=e,this.paths=r}list(){return this.store.list()}async get(e){let r=await this.store.get(e);if(!r)throw new u("项目不存在","PROJECT_NOT_FOUND",404);return r}async create(e,r){let t=this.paths.assertDirectory(e);for(let e of(await this.store.list()))try{if(this.paths.assertDirectory(e.description)===t)return e}catch{}let s=new Date().toISOString();return this.store.create({id:(0,i.randomUUID)(),name:r?.trim()||(0,a.basename)(t)||t,description:t,created:s,updated:s})}async rename(e,r){await this.get(e);let t=r.trim();if(!t)throw new u("项目名称不能为空","PROJECT_NAME_REQUIRED",400);return this.store.update(e,{name:t})}async delete(e){await this.get(e),await this.store.delete(e)}roots(){return this.paths.roots}directories(e){return this.paths.listDirectories(e)}check(e){try{return this.paths.assertDirectory(e),!0}catch{return!1}}canonicalDirectory(e){return this.paths.assertDirectory(e)}}let p=new c(new o.XW((0,n.kO)()),o.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,s.homedir)()));function d(e){return e instanceof u?{status:e.status,body:{error:e.message,code:e.code}}:e instanceof o.TL?{status:400,body:{error:e.message,code:e.code}}:{status:500,body:{error:e instanceof Error?e.message:"项目操作失败",code:"PROJECT_OPERATION_FAILED"}}}},785:(e,r,t)=>{t.d(r,{kO:()=>n,sr:()=>i});var s=t(9411);let o=function(){let e=process.argv[1];if(e){let r=(0,s.dirname)((0,s.resolve)(e)),t=`${s.sep}node_modules${s.sep}.bin`;return r.endsWith(t)?(0,s.resolve)(r,"..",".."):r}return(0,s.resolve)(process.cwd())}();function n(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||r)}()}function i(){return function(e=process.env,r=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||r)}(process.env,n())}}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[8375,6703,1322],()=>t(4525));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/
|
|
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"]}
|