agentroam-runtime-darwin-arm64 0.2.0-preview.7 → 0.2.0-preview.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/runtime/.next/BUILD_ID +1 -1
- package/runtime/.next/app-path-routes-manifest.json +1 -1
- package/runtime/.next/build-manifest.json +2 -2
- package/runtime/.next/prerender-manifest.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 +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/runtime-health.body +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 +6 -6
- package/runtime/.next/server/app/api/agent/stream/route.js.nft.json +1 -1
- package/runtime/.next/server/app/api/mcp/connect/route.js +1 -1
- package/runtime/.next/server/app/api/plugins/load/route.js +2 -2
- package/runtime/.next/server/app/api/projects/[id]/route.js +1 -1
- package/runtime/.next/server/app/api/projects/check/route.js +1 -1
- package/runtime/.next/server/app/api/projects/directories/route.js +1 -1
- package/runtime/.next/server/app/api/projects/roots/route.js +1 -1
- package/runtime/.next/server/app/api/projects/route.js +1 -1
- package/runtime/.next/server/app/api/remote-tools/register/route.js +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/tools/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/login/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/logout/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/revoke-all/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/setup/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/status/route.js +1 -1
- package/runtime/.next/server/app/api/web-auth/status.body +1 -0
- package/runtime/.next/server/app/api/web-auth/status.meta +1 -0
- package/runtime/.next/server/app/api/web-console/bootstrap/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/device-state/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/history/route.js +1 -1
- package/runtime/.next/server/app/api/web-console/preferences/route.js +1 -1
- package/runtime/.next/server/app/web.html +1 -1
- package/runtime/.next/server/app/web.rsc +1 -1
- package/runtime/.next/server/app-paths-manifest.json +16 -16
- package/runtime/.next/server/chunks/83.js +119 -0
- package/runtime/.next/server/pages/404.html +1 -1
- package/runtime/.next/server/pages/500.html +1 -1
- package/runtime/.next/server/server-reference-manifest.json +1 -1
- package/runtime/.next/server/webpack-runtime.js +1 -1
- package/runtime/package-lock.json +1 -1
- package/runtime/package.json +1 -1
- package/runtime/webapp/dist/assets/{App-D8mcRu-Q.js → App-BipEZAhs.js} +54 -54
- package/runtime/webapp/dist/assets/{index-BjCuCFYF.js → index-1C7w3q4Y.js} +1 -1
- package/runtime/webapp/dist/index.html +1 -1
- package/runtime/.next/server/chunks/988.js +0 -119
- /package/runtime/.next/static/{WbNomgtKBalC4rAWPGRjU → 9pvPG6rD0pKUnx50jLZOe}/_buildManifest.js +0 -0
- /package/runtime/.next/static/{WbNomgtKBalC4rAWPGRjU → 9pvPG6rD0pKUnx50jLZOe}/_ssgManifest.js +0 -0
|
@@ -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")},9801:e=>{e.exports=require("os")},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")},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:()=>m,patchFetch:()=>u,requestAsyncStorage:()=>d,routeModule:()=>c,serverHooks:()=>p,staticGenerationAsyncStorage:()=>h});var n=s(7786),i=s(5042),o=s(2184),a=s(8632),l=e([a]);a=(l.then?(await l)():l)[0];let c=new n.AppRouteRouteModule({definition:{kind:i.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,m="/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:()=>o,f:()=>u});var r=s(1322),n=s(612),i=s(785);class o extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class a{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
|
|
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",n=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:n}),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,n.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 n of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{n(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 n;let i=await this.sessionStore.get(t),o=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{n=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=n,this.activeRunSessionId=t,this.activeRun=n.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},8632:(e,t,s)=>{s.a(e,async(e,r)=>{try{s.r(t),s.d(t,{GET:()=>a});var n=s(7186),i=s(2083),o=e([i]);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,i.V_)(t))return l(e,t);let s=!1,r=null,o=null,a=new ReadableStream({start(i){let a=new TextEncoder,l=()=>{if(!s){s=!0,r?.(),r=null,o&&e.signal.removeEventListener("abort",o);try{i.close()}catch{}}},u=e=>{if(s)return!1;try{return i.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:n.f.getLatestEventId(t);r=n.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,n=null,o=(0,i.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(i){let a=new TextEncoder,d=()=>{if(!s){s=!0,r?.(),r=null,n&&e.signal.removeEventListener("abort",n);try{i.close()}catch{}}},h=e=>{if(s)return!1;try{return i.enqueue(a.encode(e)),!0}catch{return d(),!1}};if(h(": connected\n\n"))try{let s=await o.snapshot(t),i=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=i??a,m=p?p.runId&&p.runId!==s.runId?0:p.sequence:s.snapshotRevision;r=await o.subscribe(t,m,({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
|
-
`)&&("done"===s.type||"error"===s.type)&&d()}),
|
|
9
|
+
`)&&("done"===s.type||"error"===s.type)&&d()}),n=d,e.signal.aborted?d():e.signal.addEventListener("abort",n,{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,
|
|
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,n&&e.signal.removeEventListener("abort",n)}});return new Response(d,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}i=(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,[375,322,83],()=>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/322.js","../../../../chunks/375.js","../../../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../node_modules/better-sqlite3","../../../../../../node_modules/next","../../../../../../package.json","../../../../../package.json","../../../../chunks/322.js","../../../../chunks/375.js","../../../../chunks/83.js","../../../../webpack-runtime.js"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";(()=>{var e={};e.id=210,e.ids=[210],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:()=>v,patchFetch:()=>w,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,v="/api/mcp/connect/route";function w(){return(0,n.patchFetch)({serverHooks:g,staticGenerationAsyncStorage:m})}},7186:(e,t,s)=>{s.d(t,{B:()=>n,f:()=>u});var r=s(1322),o=s(612),i=s(785);class n extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class a{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
|
|
2
2
|
${e.summary}
|
|
3
|
-
原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new n("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new n("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new n(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:{permissionMode:"full-access"}})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),n=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(n).withRemoteToolStore(this.remoteToolStore,a).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let l=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(l=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||l||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){l=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let l=globalThis,u=l.__agentHost??new a;l.__agentHost=u},785:(e,t,s)=>{s.d(t,{kO:()=>
|
|
3
|
+
原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new n("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new n("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new n(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:{permissionMode:"full-access"}})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),n=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(n).withRemoteToolStore(this.remoteToolStore,a).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let l=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(l=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||l||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){l=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let l=globalThis,u=l.__agentHost??new a;l.__agentHost=u},785:(e,t,s)=>{s.d(t,{kO:()=>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,[375,703,322],()=>s(2993));module.exports=r})();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=538,e.ids=[538],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:()=>v,patchFetch:()=>w,requestAsyncStorage:()=>p,routeModule:()=>h,serverHooks:()=>m,staticGenerationAsyncStorage:()=>g});var r={};s.r(r),s.d(r,{POST:()=>d});var
|
|
1
|
+
"use strict";(()=>{var e={};e.id=538,e.ids=[538],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:()=>v,patchFetch:()=>w,requestAsyncStorage:()=>p,routeModule:()=>h,serverHooks:()=>m,staticGenerationAsyncStorage:()=>g});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.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 o.AppRouteRouteModule({definition:{kind:i.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,v="/api/plugins/load/route";function w(){return(0,n.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:g})}},7186:(e,t,s)=>{s.d(t,{B:()=>n,f:()=>u});var r=s(1322),o=s(612),i=s(785);class n extends Error{constructor(e,t,s){super(e),this.code=t,this.status=s,this.name="ProjectWorkingDirectoryError"}}class a{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new r.m6(this.baseDir),this.projectStore=new r.XW(this.baseDir),this.remoteToolStore=new r.rt((0,r.N8)(this.baseDir).db),this.defaultRemoteToolsProjectId=process.env.AGENT_PROJECT_ID??"default",this.activeRun=null,this.activeAgent=null,this.activeRunSessionId=null,this.subscribers=new Map,this.recentEvents=new Map,this.eventCounters=new Map,this.pendingQuestions=new Map,this.toolPermissionGate=new r.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,r.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
|
|
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",
|
|
3
|
+
原因:${e.reason}`,options:[...r.Sf],toolCallId:""},e.sessionId);return(0,r.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",s=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new r.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:s,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new r.Y4().withToolPermissionGate(this.toolPermissionGate)),this.builder}setBuilder(e){e.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e.withWorkingDirectory(this.workingDirectory),e.withToolPermissionGate(this.toolPermissionGate),this.builder=e}getSessionStore(){return this.sessionStore}isSessionRunning(e){return this.activeRunSessionId===e}hasActiveRun(){return null!==this.activeRunSessionId}getProjectStore(){return this.projectStore}async resolveProjectWorkingDirectory(e,t=!1){if(!e)return this.workingDirectory;let s=await this.projectStore.get(e);if(!s)throw new n("项目不存在","PROJECT_NOT_FOUND",404);if(!s.description?.trim()){if(!t)return this.workingDirectory;throw new n("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return r.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(s.description)}catch(e){throw new n(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let s=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:s,updated:s}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:s,updated:s,metadata:{permissionMode:"full-access"}})}async setSessionPermissionMode(e,t){if(!(0,r.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let s=await this.sessionStore.get(e);if(!s)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...s.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,s=-1){for(let r of this.recentEvents.get(e)??[])if(!(r.id<=s))try{t(r.event,r.id)}catch{}let r=this.subscribers.get(e)??new Set;return r.add(t),this.subscribers.set(e,r),()=>{r.delete(t),0===r.size&&this.subscribers.delete(e)}}emit(e,t){let s=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,s);let r=this.recentEvents.get(e);for(let o of(r&&(r.push({id:s,event:t}),r.length>500&&r.splice(0,r.length-500)),this.subscribers.get(e)??[]))try{o(t,s)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],s=null;for(let r of e){if("text_chunk"===r.type){s||(s={role:"assistant",content:""},t.push(s)),s.content+=r.text;continue}if("tool_call"===r.type){s&&!s.toolCalls?s.toolCalls=[r.toolCall]:t.push({role:"assistant",content:"",toolCalls:[r.toolCall]}),s=null;continue}if("tool_result"===r.type){t.push({role:"tool",content:r.result.content,toolCallId:r.result.toolCallId});continue}if("ask_user"===r.type){t.push({role:"assistant",content:""}),s=null;continue}"done"===r.type&&(s?s.content=r.finalText||s.content:r.finalText?.trim()&&t.push({role:"assistant",content:r.finalText}),s=null)}return t}async run(e,t,s){let o;let i=await this.sessionStore.get(t),n=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(n).withRemoteToolStore(this.remoteToolStore,a).withTool(new r.as(async e=>this.createQuestion(e,t))).build()}catch(s){let e={type:"error",message:s instanceof Error?s.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),s}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,s);let l=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(l=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||l||(e.finalText.trim()&&await this.sessionStore.addMessage(t,{role:"assistant",content:e.finalText}),await this.sessionStore.update(t,{status:"completed"})),this.emit(t,e)}catch(s){l=!0;let e={type:"error",message:s instanceof Error?s.message:"Agent run failed"};try{await this.sessionStore.addEvent(t,e),await this.sessionStore.update(t,{status:"failed"})}catch{}this.emit(t,e)}finally{this.activeRunSessionId===t&&(this.activeAgent=null,this.activeRunSessionId=null),this.activeRun=null}try{let e=await this.sessionStore.get(t),s=(e?.messages??[]).filter(e=>"user"===e.role),r=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...s,...r])}catch{}}createQuestion(e,t){let s=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:s,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let r=setTimeout(()=>{this.pendingQuestions.has(s)&&(this.pendingQuestions.delete(s),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(s,{resolve:e,reject:t,timer:r})})}answerQuestion(e,t,s){let r=this.pendingQuestions.get(e);return!!r&&(clearTimeout(r.timer),this.pendingQuestions.delete(e),r.resolve({answer:t,selectedIndices:s}),!0)}async steer(e,t){return await this.sessionStore.addMessage(t,{role:"user",content:e,name:"__steer__"}),this.activeRunSessionId===t&&!!this.activeAgent&&(this.emit(t,{type:"thinking",message:`User added: ${e.slice(0,60)}`}),!0)}abort(){for(let[e,t]of(this.activeAgent?.abort(),this.pendingQuestions))clearTimeout(t.timer),t.reject(Error("Agent aborted")),this.pendingQuestions.delete(e)}}let l=globalThis,u=l.__agentHost??new a;l.__agentHost=u},785:(e,t,s)=>{s.d(t,{kO:()=>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,[375,703,322],()=>s(8525));module.exports=r})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=361,e.ids=[361],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:()=>f,patchFetch:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=361,e.ids=[361],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:()=>f,patchFetch:()=>v,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,f="/api/projects/[id]/route";function v(){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}}}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,[375,703,322],()=>r(9085));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=315,e.ids=[315],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),
|
|
1
|
+
"use strict";(()=>{var e={};e.id=315,e.ids=[315],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}}}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,[375,703,322],()=>t(9695));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=737,e.ids=[737],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),
|
|
1
|
+
"use strict";(()=>{var e={};e.id=737,e.ids=[737],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}}}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,[375,703,322],()=>t(5938));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=199,e.ids=[199],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:()=>
|
|
1
|
+
"use strict";(()=>{var e={};e.id=199,e.ids=[199],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:()=>c,serverHooks:()=>l,staticGenerationAsyncStorage:()=>h});var s={};t.r(s),t.d(s,{GET:()=>p});var o=t(7786),n=t(5042),i=t(2184),a=t(1890),u=t(556);async function p(){return a.NextResponse.json(u.a.roots())}let c=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}=c,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:()=>c});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 p{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}}}let c=new p(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,[375,703,322],()=>t(4525));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=871,e.ids=[871],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")},3103:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>x,patchFetch:()=>f,requestAsyncStorage:()=>h,routeModule:()=>d,serverHooks:()=>m,staticGenerationAsyncStorage:()=>l});var s={};r.r(s),r.d(s,{GET:()=>c,POST:()=>p});var o=r(7786),
|
|
1
|
+
"use strict";(()=>{var e={};e.id=871,e.ids=[871],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")},3103:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>x,patchFetch:()=>f,requestAsyncStorage:()=>h,routeModule:()=>d,serverHooks:()=>m,staticGenerationAsyncStorage:()=>l});var s={};r.r(s),r.d(s,{GET:()=>c,POST:()=>p});var o=r(7786),n=r(5042),a=r(2184),i=r(1890),u=r(556);async function c(){return i.NextResponse.json(await u.a.list())}async function p(e){try{let t=await e.json();return i.NextResponse.json(await u.a.create(t.path??"",t.name),{status:201})}catch(t){let e=(0,u.r)(t);return i.NextResponse.json(e.body,{status:e.status})}}let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:"app/api/projects/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:h,staticGenerationAsyncStorage:l,serverHooks:m}=d,x="/api/projects/route";function f(){return(0,a.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:l})}},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}}}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,[375,703,322],()=>r(3103));module.exports=s})();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";(()=>{var e={};e.id=166,e.ids=[166],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")},3974:(e,t,r)=>{r.r(t),r.d(t,{originalPathname:()=>g,patchFetch:()=>v,requestAsyncStorage:()=>d,routeModule:()=>h,serverHooks:()=>m,staticGenerationAsyncStorage:()=>p});var s={};r.r(s),r.d(s,{POST:()=>c});var o=r(7786),i=r(5042),n=r(2184),a=r(1890),u=r(7186);function l(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}async function c(e){let t;try{t=await e.json()}catch{return a.NextResponse.json({error:"Invalid JSON"},{status:400})}let r=function(e){if(!l(e))return{success:!1,error:"Request body must be an object"};if("string"!=typeof e.projectId||0===e.projectId.length)return{success:!1,error:"projectId is required"};if(!Array.isArray(e.tools)||0===e.tools.length)return{success:!1,error:"tools must contain at least one tool"};let t=[];for(let o of e.tools){var r,s;if(!l(o))return{success:!1,error:"tool must be an object"};if("string"!=typeof o.scheme||0===o.scheme.length)return{success:!1,error:"tool.scheme is required"};if("string"!=typeof o.purpose||0===o.purpose.length)return{success:!1,error:"tool.purpose is required"};if("string"!=typeof o.url)return{success:!1,error:"tool.url is required"};try{new URL(o.url)}catch{return{success:!1,error:"tool.url must be a valid URL"}}if(void 0!==o.method&&"POST"!==o.method)return{success:!1,error:"tool.method must be POST"};let e=void 0===o.headers?{}:l(r=o.headers)&&Object.values(r).every(e=>"string"==typeof e)?r:null,i=void 0===o.inputSchema?{}:o.inputSchema,n=void 0===o.outputSchema?{}:o.outputSchema,a=void 0===o.examples?[]:Array.isArray(s=o.examples)&&s.every(l)?s:null,u=void 0===o.auth?{}:o.auth;if(!e)return{success:!1,error:"tool.headers must be a string record"};if(!l(i))return{success:!1,error:"tool.inputSchema must be an object"};if(!l(n))return{success:!1,error:"tool.outputSchema must be an object"};if(!a)return{success:!1,error:"tool.examples must be an array of objects"};if(!l(u))return{success:!1,error:"tool.auth must be an object"};t.push({scheme:o.scheme,purpose:o.purpose,url:o.url,method:"POST",headers:e,inputSchema:i,outputSchema:n,examples:a,auth:u})}return{success:!0,data:{projectId:e.projectId,tools:t}}}(t);if(!r.success)return a.NextResponse.json({error:r.error},{status:400});if(!function(e,t){let r=e.headers.get("authorization");if([process.env.AGENT_REMOTE_TOOLS_REGISTER_TOKEN,process.env.AGENT_SDK_REGISTRATION_TOKEN].filter(e=>!!e).some(e=>r===`Bearer ${e}`))return!0;let s=process.env.AGENT_SDK_TOKEN;return!!s&&r===`Bearer ${s}`&&function(e,t){var r;let s;if(!process.env.AGENT_PROJECT_ID)return!1;let o=e.headers.get("origin");if(!o)return!1;try{s=new URL(o).origin}catch{return!1}let i=(r=t.projectId,process.env.AGENT_PROJECT_ID&&r===process.env.AGENT_PROJECT_ID?process.env.AGENT_SDK_ALLOWED_ORIGIN??process.env.AGENT_BROWSER_ORIGIN??null:null);if(i)try{if(new URL(i).origin!==s)return!1}catch{return!1}else if(process.env.AGENT_PROJECT_ID)return!1;return t.tools.every(e=>{try{return new URL(e.url).origin===s}catch{return!1}})}(e,t)}(e,r.data))return a.NextResponse.json({error:"UNAUTHORIZED"},{status:401});let s=u.f.registerRemoteTools(r.data.projectId,r.data.tools);return a.NextResponse.json({ok:!0,tools:s.map(e=>({scheme:e.scheme,purpose:e.purpose}))})}let h=new o.AppRouteRouteModule({definition:{kind:i.x.APP_ROUTE,page:"/api/remote-tools/register/route",pathname:"/api/remote-tools/register",filename:"route",bundlePath:"app/api/remote-tools/register/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/remote-tools/register/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:d,staticGenerationAsyncStorage:p,serverHooks:m}=h,g="/api/remote-tools/register/route";function v(){return(0,n.patchFetch)({serverHooks:m,staticGenerationAsyncStorage:p})}},7186:(e,t,r)=>{r.d(t,{B:()=>n,f:()=>l});var s=r(1322),o=r(612),i=r(785);class n extends Error{constructor(e,t,r){super(e),this.code=t,this.status=r,this.name="ProjectWorkingDirectoryError"}}class a{constructor(){this.baseDir=(0,i.kO)(),this.workingDirectory=(0,i.sr)(),this.builder=null,this.sessionStore=new s.m6(this.baseDir),this.projectStore=new s.XW(this.baseDir),this.remoteToolStore=new s.rt((0,s.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 s.XP({resolveMode:async e=>{let t=await this.sessionStore.get(e);return(0,s.Ny)(t?.metadata.permissionMode)},requestApproval:async e=>{let t=await this.createQuestion({question:`Customer Agent 请求权限
|
|
2
2
|
${e.summary}
|
|
3
|
-
原因:${e.reason}`,options:[...s.Sf],toolCallId:""},e.sessionId);return(0,s.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",r=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new s.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:r,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new s.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 r=await this.projectStore.get(e);if(!r)throw new n("项目不存在","PROJECT_NOT_FOUND",404);if(!r.description?.trim()){if(!t)return this.workingDirectory;throw new n("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return s.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(r.description)}catch(e){throw new n(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let r=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:r,updated:r}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:r,updated:r,metadata:{permissionMode:"full-access"}})}async setSessionPermissionMode(e,t){if(!(0,s.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let r=await this.sessionStore.get(e);if(!r)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...r.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,r=-1){for(let s of this.recentEvents.get(e)??[])if(!(s.id<=r))try{t(s.event,s.id)}catch{}let s=this.subscribers.get(e)??new Set;return s.add(t),this.subscribers.set(e,s),()=>{s.delete(t),0===s.size&&this.subscribers.delete(e)}}emit(e,t){let r=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,r);let s=this.recentEvents.get(e);for(let o of(s&&(s.push({id:r,event:t}),s.length>500&&s.splice(0,s.length-500)),this.subscribers.get(e)??[]))try{o(t,r)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],r=null;for(let s of e){if("text_chunk"===s.type){r||(r={role:"assistant",content:""},t.push(r)),r.content+=s.text;continue}if("tool_call"===s.type){r&&!r.toolCalls?r.toolCalls=[s.toolCall]:t.push({role:"assistant",content:"",toolCalls:[s.toolCall]}),r=null;continue}if("tool_result"===s.type){t.push({role:"tool",content:s.result.content,toolCallId:s.result.toolCallId});continue}if("ask_user"===s.type){t.push({role:"assistant",content:""}),r=null;continue}"done"===s.type&&(r?r.content=s.finalText||r.content:s.finalText?.trim()&&t.push({role:"assistant",content:s.finalText}),r=null)}return t}async run(e,t,r){let o;let i=await this.sessionStore.get(t),n=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(n).withRemoteToolStore(this.remoteToolStore,a).withTool(new s.as(async e=>this.createQuestion(e,t))).build()}catch(r){let e={type:"error",message:r instanceof Error?r.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),r}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,r);let u=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(u=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||u||(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(r){u=!0;let e={type:"error",message:r instanceof Error?r.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),r=(e?.messages??[]).filter(e=>"user"===e.role),s=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...r,...s])}catch{}}createQuestion(e,t){let r=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:r,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let s=setTimeout(()=>{this.pendingQuestions.has(r)&&(this.pendingQuestions.delete(r),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(r,{resolve:e,reject:t,timer:s})})}answerQuestion(e,t,r){let s=this.pendingQuestions.get(e);return!!s&&(clearTimeout(s.timer),this.pendingQuestions.delete(e),s.resolve({answer:t,selectedIndices:r}),!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,l=u.__agentHost??new a;u.__agentHost=l},785:(e,t,r)=>{r.d(t,{kO:()=>
|
|
3
|
+
原因:${e.reason}`,options:[...s.Sf],toolCallId:""},e.sessionId);return(0,s.wM)(t.answer,t.selectedIndices)}});let e=process.env.AGENT_API_KEY,t=process.env.AGENT_MODEL_PROVIDER||"openai",r=process.env.AGENT_MODEL_ID||"gpt-4o",o=process.env.AGENT_BASE_URL||void 0,n=new s.Y4().withSessionStore(this.sessionStore).withWorkingDirectory(this.workingDirectory).withToolPermissionGate(this.toolPermissionGate);n.withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId),e&&n.withModel(t,{apiKey:e,modelId:r,baseUrl:o}),this.builder=n}getBuilder(){return this.builder||(this.builder=new s.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 r=await this.projectStore.get(e);if(!r)throw new n("项目不存在","PROJECT_NOT_FOUND",404);if(!r.description?.trim()){if(!t)return this.workingDirectory;throw new n("该项目没有宿主机目录","PROJECT_PATH_REQUIRED",400)}try{return s.Tp.fromEnvironment(process.env.AGENT_WEB_ROOTS,(0,o.homedir)()).assertDirectory(r.description)}catch(e){throw new n(e instanceof Error?e.message:"项目目录不可用","PROJECT_PATH_INVALID",400)}}getModelConfig(){return{provider:process.env.AGENT_MODEL_PROVIDER||"openai",modelId:process.env.AGENT_MODEL_ID||"gpt-4o",baseUrl:process.env.AGENT_BASE_URL||""}}getWebAppBuildId(){return globalThis.__webAppBuildId??""}registerRemoteTools(e,t){return this.remoteToolStore.upsertTools(e,t)}getRemoteToolStore(){return this.remoteToolStore}async createSession(e,t=""){let r=new Date().toISOString();return t&&!await this.projectStore.get(t)&&await this.projectStore.create({id:t,name:t,description:"",created:r,updated:r}),this.sessionStore.create({id:crypto.randomUUID(),projectId:t,title:e,status:"idle",messages:[],events:[],created:r,updated:r,metadata:{permissionMode:"full-access"}})}async setSessionPermissionMode(e,t){if(!(0,s.ue)(t))throw Error(`Invalid permission mode: ${String(t)}`);let r=await this.sessionStore.get(e);if(!r)throw Error(`Session not found: ${e}`);return this.toolPermissionGate.clearSession(e),this.sessionStore.update(e,{metadata:{...r.metadata,permissionMode:t}})}getLatestEventId(e){return this.eventCounters.get(e)??0}subscribe(e,t,r=-1){for(let s of this.recentEvents.get(e)??[])if(!(s.id<=r))try{t(s.event,s.id)}catch{}let s=this.subscribers.get(e)??new Set;return s.add(t),this.subscribers.set(e,s),()=>{s.delete(t),0===s.size&&this.subscribers.delete(e)}}emit(e,t){let r=(this.eventCounters.get(e)??0)+1;this.eventCounters.set(e,r);let s=this.recentEvents.get(e);for(let o of(s&&(s.push({id:r,event:t}),s.length>500&&s.splice(0,s.length-500)),this.subscribers.get(e)??[]))try{o(t,r)}catch{}}publishExternal(e,t){this.emit(e,t)}resetExternalStream(e){this.eventCounters.set(e,0),this.recentEvents.set(e,[])}projectMessagesFromEvents(e){let t=[],r=null;for(let s of e){if("text_chunk"===s.type){r||(r={role:"assistant",content:""},t.push(r)),r.content+=s.text;continue}if("tool_call"===s.type){r&&!r.toolCalls?r.toolCalls=[s.toolCall]:t.push({role:"assistant",content:"",toolCalls:[s.toolCall]}),r=null;continue}if("tool_result"===s.type){t.push({role:"tool",content:s.result.content,toolCallId:s.result.toolCallId});continue}if("ask_user"===s.type){t.push({role:"assistant",content:""}),r=null;continue}"done"===s.type&&(r?r.content=s.finalText||r.content:s.finalText?.trim()&&t.push({role:"assistant",content:s.finalText}),r=null)}return t}async run(e,t,r){let o;let i=await this.sessionStore.get(t),n=await this.resolveProjectWorkingDirectory(i?.projectId);await this.sessionStore.addMessage(t,{role:"user",content:e}),this.eventCounters.set(t,0),this.recentEvents.set(t,[]);let a=i?.projectId||this.defaultRemoteToolsProjectId;try{o=await this.getBuilder().withWorkingDirectory(n).withRemoteToolStore(this.remoteToolStore,a).withTool(new s.as(async e=>this.createQuestion(e,t))).build()}catch(r){let e={type:"error",message:r instanceof Error?r.message:"Failed to build agent"};try{await this.sessionStore.addEvent(t,e)}catch{}throw this.emit(t,e),r}finally{this.builder?.withWorkingDirectory(this.workingDirectory).withRemoteToolStore(this.remoteToolStore,this.defaultRemoteToolsProjectId)}this.activeAgent=o,this.activeRunSessionId=t,this.activeRun=o.run(e,t,r);let u=!1;try{for await(let e of this.activeRun)await this.sessionStore.addEvent(t,e),"error"===e.type?(u=!0,await this.sessionStore.update(t,{status:"failed"})):"done"!==e.type||u||(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(r){u=!0;let e={type:"error",message:r instanceof Error?r.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),r=(e?.messages??[]).filter(e=>"user"===e.role),s=this.projectMessagesFromEvents(e?.events??[]);await this.sessionStore.replaceMessages(t,[...r,...s])}catch{}}createQuestion(e,t){let r=crypto.randomUUID();return this.emit(t,{type:"ask_user",questionId:r,question:e.question,options:e.options,multiSelect:e.multiSelect}),new Promise((e,t)=>{let s=setTimeout(()=>{this.pendingQuestions.has(r)&&(this.pendingQuestions.delete(r),t(Error("Question timed out after 5 minutes")))},3e5);this.pendingQuestions.set(r,{resolve:e,reject:t,timer:s})})}answerQuestion(e,t,r){let s=this.pendingQuestions.get(e);return!!s&&(clearTimeout(s.timer),this.pendingQuestions.delete(e),s.resolve({answer:t,selectedIndices:r}),!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,l=u.__agentHost??new a;u.__agentHost=l},785:(e,t,r)=>{r.d(t,{kO:()=>i,sr:()=>n});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 i(){return function(e=process.env,t=o){return(0,s.resolve)(e.AGENT_DATA_DIR?.trim()||t)}()}function n(){return function(e=process.env,t=o){return(0,s.resolve)(e.AGENT_WORKING_DIRECTORY?.trim()||t)}(process.env,i())}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[375,703,322],()=>r(3974));module.exports=s})();
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";(()=>{var t={};t.id=917,t.ids=[917],t.modules={7728:t=>{t.exports=require("@anthropic-ai/claude-agent-sdk")},5890:t=>{t.exports=require("better-sqlite3")},399:t=>{t.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:t=>{t.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},9801:t=>{t.exports=require("os")},7718:t=>{t.exports=require("node:child_process")},6005:t=>{t.exports=require("node:crypto")},5673:t=>{t.exports=require("node:events")},7561:t=>{t.exports=require("node:fs")},3977:t=>{t.exports=require("node:fs/promises")},8849:t=>{t.exports=require("node:http")},2286:t=>{t.exports=require("node:https")},7503:t=>{t.exports=require("node:net")},612:t=>{t.exports=require("node:os")},9411:t=>{t.exports=require("node:path")},1747:t=>{t.exports=require("node:readline")},1041:t=>{t.exports=require("node:url")},5881:t=>{t.exports=require("node:util")},7428:(t,e,i)=>{i.r(e),i.d(e,{originalPathname:()=>tx,patchFetch:()=>tI,requestAsyncStorage:()=>tP,routeModule:()=>tb,serverHooks:()=>tR,staticGenerationAsyncStorage:()=>tD});var s={};i.r(s),i.d(s,{GET:()=>tv,dynamic:()=>tg,runtime:()=>ty});var r=i(7786),n=i(5042),a=i(2184),o=i(3988),h=i(5673),l=i(7561),d=i(3977),c=i(9411);let p=require("node:stream"),u={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},f={root:".",fileFilter:t=>!0,directoryFilter:t=>!0,type:u.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:256};Object.freeze(f);let _="READDIRP_RECURSIVE_ERROR",m=new Set(["ENOENT","EPERM","EACCES","ELOOP",_]),w=[u.DIR_TYPE,u.EVERYTHING_TYPE,u.FILE_DIR_TYPE,u.FILE_TYPE],g=new Set([u.DIR_TYPE,u.EVERYTHING_TYPE,u.FILE_DIR_TYPE]),y=new Set([u.EVERYTHING_TYPE,u.FILE_DIR_TYPE,u.FILE_TYPE]),E=t=>m.has(t.code),v="win32"===process.platform,b=t=>!0,P=t=>{if(void 0===t)return b;if("function"==typeof t)return t;if("string"==typeof t){let e=t.trim();return t=>t.basename===e}if(Array.isArray(t)){let e=t.map(t=>t.trim());return t=>e.some(e=>t.basename===e)}return b};class D extends p.Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;_relStart;constructor(t={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:t.highWaterMark??f.highWaterMark});let e={...f,...t},i=e.root??f.root,s=e.type??f.type;this._fileFilter=P(e.fileFilter),this._directoryFilter=P(e.directoryFilter);let r=e.lstat?d.lstat:d.stat;v?this._stat=t=>r(t,{bigint:!0}):this._stat=r,this._maxDepth=null!=e.depth&&Number.isSafeInteger(e.depth)?e.depth:f.depth,this._wantsDir=g.has(s),this._wantsFile=y.has(s),this._wantsEverything=s===u.EVERYTHING_TYPE,this._root=(0,c.resolve)(i),this._relStart=this._root.endsWith(c.sep)?this._root.length:this._root.length+1,this._isDirent=!e.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent};let n={path:this._root,depth:1};n.pending=this._exploreDir(this._root,1),this.parents=[n],this.reading=!1,this.parent=void 0}async _read(t){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&t>0;){let e=this.parent,i=e&&e.files;if(i&&i.length>0){let{path:s,depth:r}=e,n=i.splice(0,t).map(t=>this._formatEntry(t,s));for(let e of this._isDirent?n:await Promise.all(n)){if(!e)continue;if(this.destroyed)return;let i=this._getEntryType(e);"string"!=typeof i&&(i=await i),"directory"===i&&this._directoryFilter(e)?(r<=this._maxDepth&&this.parents.push({path:e.fullPath,depth:r+1}),this._wantsDir&&(this.push(e),t--)):("file"===i||this._includeAsFile(e))&&this._fileFilter(e)&&this._wantsFile&&(this.push(e),t--)}}else{let t=this.parents.pop();if(!t){this.push(null);break}let e=t.pending??this._exploreDir(t.path,t.depth),i=this.parents[this.parents.length-1];if(i&&!i.pending&&(i.pending=this._exploreDir(i.path,i.depth)),this.parent=await e,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(t,e){let i;try{i=await (0,d.readdir)(t,this._rdOptions)}catch(t){this._onError(t)}return{files:i,depth:e,path:t}}_formatEntry(t,e){let i=this._isDirent?t.name:t,s=(0,c.join)(e,i),r={path:s.slice(this._relStart),fullPath:s,basename:i};return this._isDirent?(r.dirent=t,r):this._stat(s).then(t=>(r.stats=t,r),t=>{this._onError(t)})}_onError(t){E(t)&&!this.destroyed?this.emit("warn",t):this.destroy(t)}_getEntryType(t){if(!t||!(this._statsProp in t))return"";let e=t[this._statsProp];return e.isFile()?"file":e.isDirectory()?"directory":e.isSymbolicLink()?this._getSymlinkEntryType(t):""}async _getSymlinkEntryType(t){let e=t.fullPath;try{let t=await (0,d.realpath)(e),i=await (0,d.lstat)(t);if(i.isFile())return"file";if(i.isDirectory()){let i=t.length;if(e.startsWith(t)&&e[i]===c.sep){let i=Error(`Circular symlink detected: "${e}" points to "${t}"`);return i.code=_,this._onError(i),""}return"directory"}}catch(t){this._onError(t)}return""}_includeAsFile(t){let e=t&&t[this._statsProp];return e&&this._wantsEverything&&!e.isDirectory()}}var R=i(612);let x=()=>{},I=process.platform,T="win32"===I,k="darwin"===I,F="linux"===I,W="freebsd"===I,A="OS400"===(0,R.type)(),S={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},C={lstat:d.lstat,stat:d.stat},N="listeners",j="errHandlers",z="rawEmitters",M=[N,j,z],L=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),O=t=>L.has(c.extname(t).slice(1).toLowerCase()),H=(t,e)=>{t instanceof Set?t.forEach(e):e(t)},q=(t,e,i)=>{let s=t[e];s instanceof Set||(t[e]=s=new Set([s])),s.add(i)},Y=t=>e=>{let i=t[e];i instanceof Set?i.clear():delete t[e]},U=(t,e,i)=>{let s=t[e];s instanceof Set?s.delete(i):s===i&&delete t[e]},G=t=>t instanceof Set?0===t.size:!t,$=new Map;function V(t,e,i,s,r){try{return(0,l.watch)(t,{persistent:e.persistent},(e,s)=>{i(t),r(e,s,{watchedPath:t}),s&&t!==s&&K(c.resolve(t,s),N,c.join(t,s))})}catch(t){s(t);return}}let K=(t,e,i,s,r)=>{let n=$.get(t);n&&H(n[e],t=>{t(i,s,r)})},X=(t,e,i,s)=>{let r;let{listener:n,errHandler:a,rawEmitter:o}=s,h=$.get(e);if(!i.persistent){if(!(r=V(t,i,n,a,o)))return;return r.close.bind(r)}if(h)q(h,N,n),q(h,j,a),q(h,z,o);else{if(!(r=V(t,i,K.bind(null,e,N),a,K.bind(null,e,z))))return;r.on(S.ERROR,async i=>{let s=K.bind(null,e,j);if(h&&(h.watcherUnusable=!0),T&&"EPERM"===i.code)try{let e=await (0,d.open)(t,"r");await e.close(),s(i)}catch(t){}else s(i)}),h={listeners:n,errHandlers:a,rawEmitters:o,watcher:r},$.set(e,h)}return()=>{U(h,N,n),U(h,j,a),U(h,z,o),G(h.listeners)&&(h.watcher.close(),$.delete(e),M.forEach(Y(h)),h.watcher=void 0,Object.freeze(h))}},B=new Map,J=(t,e,i,s)=>{let{listener:r,rawEmitter:n}=s,a=B.get(e),o=a&&a.options;return o&&(o.persistent<i.persistent||o.interval>i.interval)&&((0,l.unwatchFile)(e),a=void 0),a?(q(a,N,r),q(a,z,n)):(a={listeners:r,rawEmitters:n,options:i,watcher:(0,l.watchFile)(e,i,(i,s)=>{H(a.rawEmitters,t=>{t(S.CHANGE,e,{curr:i,prev:s})});let r=i.mtimeMs;(i.size!==s.size||r>s.mtimeMs||0===r)&&H(a.listeners,e=>e(t,i))})},B.set(e,a)),()=>{U(a,N,r),U(a,z,n),G(a.listeners)&&(B.delete(e),(0,l.unwatchFile)(e),a.options=a.watcher=void 0,Object.freeze(a))}};class Q{fsw;_boundHandleError;constructor(t){this.fsw=t,this._boundHandleError=e=>t._handleError(e)}_watchWithNodeFs(t,e){let i;let s=this.fsw.options,r=c.dirname(t),n=c.basename(t);this.fsw._getWatchedDir(r).add(n);let a=c.resolve(t),o={persistent:s.persistent};if(e||(e=x),s.usePolling){let r=s.interval!==s.binaryInterval;o.interval=r&&O(n)?s.binaryInterval:s.interval,i=J(t,a,o,{listener:e,rawEmitter:this.fsw._emitRaw})}else i=X(t,a,o,{listener:e,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return i}_handleFile(t,e,i){if(this.fsw.closed)return;let s=c.dirname(t),r=c.basename(t),n=this.fsw._getWatchedDir(s),a=e;if(n.has(r))return;let o=async(e,i)=>{if(this.fsw._throttle("watch",t,5)){if(i&&0!==i.mtimeMs){if(n.has(r)){let e=i.atimeMs,s=i.mtimeMs;(!e||e<=s||s!==a.mtimeMs)&&this.fsw._emit(S.CHANGE,t,i),a=i}}else try{let i=await (0,d.stat)(t);if(this.fsw.closed)return;let s=i.atimeMs,r=i.mtimeMs;if((!s||s<=r||r!==a.mtimeMs)&&this.fsw._emit(S.CHANGE,t,i),(k||F||W)&&a.ino!==i.ino){this.fsw._closeFile(e),a=i;let s=this._watchWithNodeFs(t,o);s&&this.fsw._addPathCloser(e,s)}else a=i}catch(t){this.fsw._remove(s,r)}}},h=this._watchWithNodeFs(t,o);if(!(i&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(t)){if(!this.fsw._throttle(S.ADD,t,0))return;this.fsw._emit(S.ADD,t,e)}return h}async _handleSymlink(t,e,i,s){if(this.fsw.closed)return;let r=t.fullPath,n=this.fsw._getWatchedDir(e);if(!this.fsw.options.followSymlinks){let e;this.fsw._incrReadyCount();try{e=await (0,d.realpath)(i)}catch(t){return this.fsw._emitReady(),!0}if(this.fsw.closed)return;return n.has(s)?this.fsw._symlinkPaths.get(r)!==e&&(this.fsw._symlinkPaths.set(r,e),this.fsw._emit(S.CHANGE,i,t.stats)):(n.add(s),this.fsw._symlinkPaths.set(r,e),this.fsw._emit(S.ADD,i,t.stats)),this.fsw._emitReady(),!0}if(this.fsw._symlinkPaths.has(r))return!0;this.fsw._symlinkPaths.set(r,!0)}_handleRead(t,e,i,s,r,n,a){t=c.join(t,"");let o=s?`${t}:${s}`:t;if(!(a=this.fsw._throttle("readdir",o,1e3)))return;let h=this.fsw._getWatchedDir(i.path),l=new Set,d=this.fsw._readdirp(t,{fileFilter:t=>i.filterPath(t),directoryFilter:t=>i.filterDir(t)});if(d)return d.on("data",async a=>{if(this.fsw.closed){d=void 0;return}let o=a.path,p=c.join(t,o);if(l.add(o),!(a.stats.isSymbolicLink()&&await this._handleSymlink(a,t,p,o))){if(this.fsw.closed){d=void 0;return}o!==s&&(s||h.has(o))||(this.fsw._incrReadyCount(),p=c.join(r,c.relative(r,p)),this._addToNodeFs(p,e,i,n+1))}}).on(S.ERROR,this._boundHandleError),new Promise((e,o)=>{if(!d)return o();d.once("end",()=>{if(this.fsw.closed){d=void 0;return}let o=!!a&&a.clear();e(void 0),h.getChildren().filter(e=>e!==t&&!l.has(e)).forEach(e=>{this.fsw._remove(t,e)}),d=void 0,o&&this._handleRead(t,!1,i,s,r,n,a)})})}async _handleDir(t,e,i,s,r,n,a){let o,h;let l=this.fsw._getWatchedDir(c.dirname(t)),d=l.has(c.basename(t));i&&this.fsw.options.ignoreInitial||r||d||this.fsw._emit(S.ADD_DIR,t,e),l.add(c.basename(t)),this.fsw._getWatchedDir(t);let p=this.fsw.options.depth;if((null==p||s<=p)&&!this.fsw._symlinkPaths.has(a)){if(!r&&(await this._handleRead(t,i,n,r,t,s,o),this.fsw.closed))return;h=this._watchWithNodeFs(t,(e,i)=>{i&&0===i.mtimeMs||this._handleRead(e,!1,n,r,t,s,o)})}return h}async _addToNodeFs(t,e,i,s,r){let n=this.fsw._emitReady;if(this.fsw._isIgnored(t)||this.fsw.closed)return n(),!1;let a=this.fsw._getWatchHelpers(t);i&&(a.filterPath=t=>i.filterPath(t),a.filterDir=t=>i.filterDir(t));try{let i;let o=await C[a.statMethod](a.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(a.watchPath,o))return n(),!1;let h=this.fsw.options.followSymlinks;if(o.isDirectory()){let n=c.resolve(t),l=h?await (0,d.realpath)(t):t;if(this.fsw.closed||(i=await this._handleDir(a.watchPath,o,e,s,r,a,l),this.fsw.closed))return;n!==l&&void 0!==l&&this.fsw._symlinkPaths.set(n,l)}else if(o.isSymbolicLink()){let r=h?await (0,d.realpath)(t):t;if(this.fsw.closed)return;let n=c.dirname(a.watchPath);if(this.fsw._getWatchedDir(n).add(a.watchPath),this.fsw._emit(S.ADD,a.watchPath,o),i=await this._handleDir(n,o,e,s,t,a,r),this.fsw.closed)return;void 0!==r&&this.fsw._symlinkPaths.set(c.resolve(t),r)}else i=this._handleFile(a.watchPath,o,e);return n(),i&&this.fsw._addPathCloser(t,i),!1}catch(e){if(this.fsw._handleError(e))return n(),t}}}let Z=/\\/g,tt=/\/\//g,te=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,ti=/^\.[/\\]/;function ts(t){return Array.isArray(t)?t:[t]}let tr=t=>"object"==typeof t&&null!==t&&!(t instanceof RegExp);function tn(t,e,i){let s=function(t){if("string"!=typeof t)throw Error("string expected");t=(t=c.normalize(t)).replace(/\\/g,"/");let e=!1;return t.startsWith("//")&&(e=!0),t=t.replace(tt,"/"),e&&(t="/"+t),t}(e);for(let e=0;e<t.length;e++)if((0,t[e])(s,i))return!0;return!1}let ta=t=>{let e=ts(t).flat();if(!e.every(t=>"string"==typeof t))throw TypeError(`Non-string provided as watch path: ${e}`);return e.map(th)},to=t=>{let e=t.replace(Z,"/"),i=!1;return e.startsWith("//")&&(i=!0),e=e.replace(tt,"/"),i&&(e="/"+e),e},th=t=>to(c.normalize(to(t))),tl=(t="")=>e=>"string"==typeof e?th(c.isAbsolute(e)?e:c.join(t,e)):e,td=(t,e)=>c.isAbsolute(t)?t:c.join(e,t),tc=Object.freeze(new Set);class tp{path;_removeWatcher;items;constructor(t,e){this.path=t,this._removeWatcher=e,this.items=new Set}add(t){let{items:e}=this;e&&"."!==t&&".."!==t&&e.add(t)}async remove(t){let{items:e}=this;if(!e||(e.delete(t),e.size>0))return;let i=this.path;try{await (0,d.readdir)(i)}catch(t){this._removeWatcher&&this._removeWatcher(c.dirname(i),c.basename(i))}}has(t){let{items:e}=this;if(e)return e.has(t)}getChildren(){let{items:t}=this;return t?[...t.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=x,this.items=tc,Object.freeze(this)}}class tu{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(t,e,i){this.fsw=i;let s=t;this.path=t=t.replace(ti,""),this.watchPath=s,this.fullWatchPath=c.resolve(s),this.dirParts=[],this.dirParts.forEach(t=>{t.length>1&&t.pop()}),this.followSymlinks=e,this.statMethod=e?"stat":"lstat"}entryPath(t){return c.join(this.watchPath,c.relative(this.watchPath,t.fullPath))}filterPath(t){let{stats:e}=t;if(e&&e.isSymbolicLink())return this.filterDir(t);let i=this.entryPath(t);return this.fsw._isntIgnored(i,e)&&this.fsw._hasReadPermissions(e)}filterDir(t){return this.fsw._isntIgnored(this.entryPath(t),t.stats)}}class tf extends h.EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(t={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let e=t.awaitWriteFinish,i={stabilityThreshold:2e3,pollInterval:100},s={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...t,ignored:t.ignored?ts(t.ignored):ts([]),awaitWriteFinish:!0===e?i:"object"==typeof e&&{...i,...e}};A&&(s.usePolling=!0),void 0===s.atomic&&(s.atomic=!s.usePolling);let r=process.env.CHOKIDAR_USEPOLLING;if(void 0!==r){let t=r.toLowerCase();"false"===t||"0"===t?s.usePolling=!1:"true"===t||"1"===t?s.usePolling=!0:s.usePolling=!!t}let n=process.env.CHOKIDAR_INTERVAL;n&&(s.interval=Number.parseInt(n,10));let a=0;this._emitReady=()=>{++a>=this._readyCount&&(this._emitReady=x,this._readyEmitted=!0,process.nextTick(()=>this.emit(S.READY)))},this._emitRaw=(...t)=>this.emit(S.RAW,...t),this._boundRemove=this._remove.bind(this),this.options=s,this._nodeFsHandler=new Q(this),Object.freeze(s)}_addIgnoredPath(t){if(tr(t)){for(let e of this._ignoredPaths)if(tr(e)&&e.path===t.path&&e.recursive===t.recursive)return}this._ignoredPaths.add(t)}_removeIgnoredPath(t){if(this._ignoredPaths.delete(t),"string"==typeof t)for(let e of this._ignoredPaths)tr(e)&&e.path===t&&this._ignoredPaths.delete(e)}add(t,e,i){let{cwd:s}=this.options;this.closed=!1,this._closePromise=void 0;let r=ta(t);return s&&(r=r.map(t=>td(t,s))),r.forEach(t=>{this._removeIgnoredPath(t)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async t=>{let s=await this._nodeFsHandler._addToNodeFs(t,!i,void 0,0,e);return s&&this._emitReady(),s})).then(t=>{this.closed||t.forEach(t=>{t&&this.add(c.dirname(t),c.basename(e||t))})}),this}unwatch(t){if(this.closed)return this;let e=ta(t),{cwd:i}=this.options;return e.forEach(t=>{c.isAbsolute(t)||this._closers.has(t)||(i&&(t=c.join(i,t)),t=c.resolve(t)),this._closePath(t),this._addIgnoredPath(t),this._watched.has(t)&&this._addIgnoredPath({path:t,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let t=[];return this._closers.forEach(e=>e.forEach(e=>{let i=e();i instanceof Promise&&t.push(i)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=t.length?Promise.all(t).then(()=>void 0):Promise.resolve(),this._closePromise}getWatched(){let t={};return this._watched.forEach((e,i)=>{t[(this.options.cwd?c.relative(this.options.cwd,i):i)||"."]=e.getChildren().sort()}),t}emitWithAll(t,e){this.emit(t,...e),t!==S.ERROR&&this.emit(S.ALL,t,...e)}async _emit(t,e,i){let s;if(this.closed)return;let r=this.options;T&&(e=c.normalize(e)),r.cwd&&(e=c.relative(r.cwd,e));let n=[e];null!=i&&n.push(i);let a=r.awaitWriteFinish;if(a&&(s=this._pendingWrites.get(e)))return s.lastChange=new Date,this;if(r.atomic){if(t===S.UNLINK)return this._pendingUnlinks.set(e,[t,...n]),setTimeout(()=>{this._pendingUnlinks.forEach((t,e)=>{this.emit(...t),this.emit(S.ALL,...t),this._pendingUnlinks.delete(e)})},"number"==typeof r.atomic?r.atomic:100),this;t===S.ADD&&this._pendingUnlinks.has(e)&&(t=S.CHANGE,this._pendingUnlinks.delete(e))}if(a&&(t===S.ADD||t===S.CHANGE)&&this._readyEmitted)return this._awaitWriteFinish(e,a.stabilityThreshold,t,(e,i)=>{e?(t=S.ERROR,n[0]=e,this.emitWithAll(t,n)):i&&(n.length>1?n[1]=i:n.push(i),this.emitWithAll(t,n))}),this;if(t===S.CHANGE&&!this._throttle(S.CHANGE,e,50))return this;if(r.alwaysStat&&void 0===i&&(t===S.ADD||t===S.ADD_DIR||t===S.CHANGE)){let t;let i=r.cwd?c.join(r.cwd,e):e;try{t=await (0,d.stat)(i)}catch(t){}if(!t||this.closed)return;n.push(t)}return this.emitWithAll(t,n),this}_handleError(t){let e=t&&t.code;return t&&"ENOENT"!==e&&"ENOTDIR"!==e&&(!this.options.ignorePermissionErrors||"EPERM"!==e&&"EACCES"!==e)&&this.emit(S.ERROR,t),t||this.closed}_throttle(t,e,i){let s;this._throttled.has(t)||this._throttled.set(t,new Map);let r=this._throttled.get(t);if(!r)throw Error("invalid throttle");let n=r.get(e);if(n)return n.count++,!1;let a=()=>{let t=r.get(e),i=t?t.count:0;return r.delete(e),clearTimeout(s),t&&clearTimeout(t.timeoutObject),i},o={timeoutObject:s=setTimeout(a,i),clear:a,count:0};return r.set(e,o),o}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(t,e,i,s){let r;let n=this.options.awaitWriteFinish;if("object"!=typeof n)return;let a=n.pollInterval,o=t;this.options.cwd&&!c.isAbsolute(t)&&(o=c.join(this.options.cwd,t));let h=new Date,d=this._pendingWrites;d.has(t)||(d.set(t,{lastChange:h,cancelWait:()=>(d.delete(t),clearTimeout(r),i)}),r=setTimeout(function i(n){(0,l.stat)(o,(o,h)=>{if(o||!d.has(t)){o&&"ENOENT"!==o.code&&s(o);return}let l=Number(new Date);n&&h.size!==n.size&&(d.get(t).lastChange=l),l-d.get(t).lastChange>=e?(d.delete(t),s(void 0,h)):r=setTimeout(i,a,h)})},a))}_isIgnored(t,e){if(this.options.atomic&&te.test(t))return!0;if(!this._userIgnored){let{cwd:t}=this.options,e=(this.options.ignored||[]).map(tl(t)),i=[...[...this._ignoredPaths].map(tl(t)),...e];this._userIgnored=function(t,e){if(null==t)throw TypeError("anymatch: specify first argument");let i=ts(t).map(t=>"function"==typeof t?t:"string"==typeof t?e=>t===e:t instanceof RegExp?e=>t.test(e):"object"==typeof t&&null!==t?e=>{if(t.path===e)return!0;if(t.recursive){let i=c.relative(t.path,e);return!!i&&!i.startsWith("..")&&!c.isAbsolute(i)}return!1}:()=>!1);return null==e?(t,e)=>tn(i,t,e):tn(i,e)}(i,void 0)}return this._userIgnored(t,e)}_isntIgnored(t,e){return!this._isIgnored(t,e)}_getWatchHelpers(t){return new tu(t,this.options.followSymlinks,this)}_getWatchedDir(t){let e=c.resolve(t);return this._watched.has(e)||this._watched.set(e,new tp(e,this._boundRemove)),this._watched.get(e)}_hasReadPermissions(t){return!!this.options.ignorePermissionErrors||!!(256&Number(t.mode))}_remove(t,e,i){let s=c.join(t,e),r=c.resolve(s);if(i=null!=i?i:this._watched.has(s)||this._watched.has(r),!this._throttle("remove",s,100))return;i||1!==this._watched.size||this.add(t,e,!0),this._getWatchedDir(s).getChildren().forEach(t=>this._remove(s,t));let n=this._getWatchedDir(t),a=n.has(e);n.remove(e),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let o=s;if(this.options.cwd&&(o=c.relative(this.options.cwd,s)),this.options.awaitWriteFinish&&this._pendingWrites.has(o)&&this._pendingWrites.get(o).cancelWait()===S.ADD)return;this._watched.delete(s),this._watched.delete(r);let h=i?S.UNLINK_DIR:S.UNLINK;a&&!this._isIgnored(s)&&this._emit(h,s),this._closePath(s)}_closePath(t){this._closeFile(t);let e=c.dirname(t);this._getWatchedDir(e).remove(c.basename(t))}_closeFile(t){let e=this._closers.get(t);e&&(e.forEach(t=>t()),this._closers.delete(t))}_addPathCloser(t,e){if(!e)return;let i=this._closers.get(t);i||(i=[],this._closers.set(t,i)),i.push(e)}_readdirp(t,e){if(this.closed)return;let i=function(t,e={}){let i=e.entryType||e.type;if("both"===i&&(i=u.FILE_DIR_TYPE),t){if("string"!=typeof t)throw TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(i&&!w.includes(i))throw Error(`readdirp: Invalid type passed. Use one of ${w.join(", ")}`)}else throw Error("readdirp: root argument is required. Usage: readdirp(root, options)");let s={...e,root:t};return i&&(s.type=i),new D(s)}(t,{type:S.ALL,alwaysStat:!0,lstat:!0,...e,depth:0});return this._streams.add(i),i.once("close",()=>{i=void 0}),i.once("end",()=>{i&&(this._streams.delete(i),i=void 0)}),i}}let t_=t=>(function(t,e={}){let i=new tf(e);return i.add(t),i})(t,{ignoreInitial:!0,persistent:!0});class tm{constructor(t=t_,e=150){this.watchFile=t,this.debounceMs=e,this.entries=new Map}subscribe(t,e,i){let s=`${t}\0${e}`,r=this.entries.get(s);if(!r){let t=this.watchFile(e);r={watcher:t,subscribers:new Set,revision:0,debounceTimer:null},t.on("add",()=>this.schedule(r)),t.on("change",()=>this.schedule(r)),this.entries.set(s,r)}r.subscribers.add(i);let n=!0;return()=>{if(!n)return;n=!1;let t=this.entries.get(s);t&&(t.subscribers.delete(i),0===t.subscribers.size&&this.releaseEntry(s,t))}}async dispose(){let t=[...this.entries.entries()];this.entries.clear(),await Promise.all(t.map(async([,t])=>{t.debounceTimer&&clearTimeout(t.debounceTimer),await t.watcher.close()}))}schedule(t){t.debounceTimer&&clearTimeout(t.debounceTimer),t.debounceTimer=setTimeout(()=>{t.debounceTimer=null,t.revision+=1;let e={type:"session_history_changed",revision:t.revision};for(let i of t.subscribers)try{i(e)}catch{}},this.debounceMs)}releaseEntry(t,e){this.entries.get(t)===e&&this.entries.delete(t),e.debounceTimer&&clearTimeout(e.debounceTimer),e.debounceTimer=null,e.watcher.close()}}let tw=globalThis,tg="force-dynamic",ty="nodejs",tE=new TextEncoder;async function tv(t,{params:e}){if(!(0,o.V_)(e.id))return Response.json({error:"Native session not found"},{status:404});try{let i=await (0,o.NL)().getSessionWatchPath(e.id);if(!i)return Response.json({error:"Native session transcript is unavailable"},{status:404});let s=()=>void 0,r=new ReadableStream({start(r){let n=!1,a=(tw.__nativeSessionChangeMonitor||(tw.__nativeSessionChangeMonitor=new tm),tw.__nativeSessionChangeMonitor).subscribe(e.id,i,t=>{n||r.enqueue(tE.encode(`data: ${JSON.stringify(t)}
|
|
1
|
+
"use strict";(()=>{var t={};t.id=917,t.ids=[917],t.modules={5890:t=>{t.exports=require("better-sqlite3")},399:t=>{t.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},517:t=>{t.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},9801:t=>{t.exports=require("os")},2728:t=>{t.exports=import("@anthropic-ai/claude-agent-sdk")},7718:t=>{t.exports=require("node:child_process")},6005:t=>{t.exports=require("node:crypto")},5673:t=>{t.exports=require("node:events")},7561:t=>{t.exports=require("node:fs")},3977:t=>{t.exports=require("node:fs/promises")},8849:t=>{t.exports=require("node:http")},2286:t=>{t.exports=require("node:https")},7503:t=>{t.exports=require("node:net")},612:t=>{t.exports=require("node:os")},9411:t=>{t.exports=require("node:path")},1747:t=>{t.exports=require("node:readline")},1041:t=>{t.exports=require("node:url")},5881:t=>{t.exports=require("node:util")},7495:(t,e,i)=>{i.a(t,async(t,s)=>{try{i.r(e),i.d(e,{originalPathname:()=>f,patchFetch:()=>l,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>u,staticGenerationAsyncStorage:()=>p});var r=i(7786),a=i(5042),n=i(2184),o=i(9146),h=t([o]);o=(h.then?(await h)():h)[0];let d=new r.AppRouteRouteModule({definition:{kind:a.x.APP_ROUTE,page:"/api/sessions/[id]/changes/route",pathname:"/api/sessions/[id]/changes",filename:"route",bundlePath:"app/api/sessions/[id]/changes/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/sessions/[id]/changes/route.ts",nextConfigOutput:"standalone",userland:o}),{requestAsyncStorage:c,staticGenerationAsyncStorage:p,serverHooks:u}=d,f="/api/sessions/[id]/changes/route";function l(){return(0,n.patchFetch)({serverHooks:u,staticGenerationAsyncStorage:p})}s()}catch(t){s(t)}})},7786:(t,e,i)=>{t.exports=i(517)},9146:(t,e,i)=>{i.a(t,async(t,s)=>{try{i.r(e),i.d(e,{GET:()=>o,dynamic:()=>h,runtime:()=>l});var r=i(2083),a=i(2147),n=t([r]);r=(n.then?(await n)():n)[0];let h="force-dynamic",l="nodejs",d=new TextEncoder;async function o(t,{params:e}){if(!(0,r.V_)(e.id))return Response.json({error:"Native session not found"},{status:404});try{let i=await (0,r.NL)().getSessionWatchPath(e.id);if(!i)return Response.json({error:"Native session transcript is unavailable"},{status:404});let s=()=>void 0,n=new ReadableStream({start(r){let n=!1,o=(0,a.L)().subscribe(e.id,i,t=>{n||r.enqueue(d.encode(`data: ${JSON.stringify(t)}
|
|
2
2
|
|
|
3
|
-
`))}),o=setInterval(()=>{n||r.enqueue(tE.encode(": keep-alive\n\n"))},15e3);s=()=>{n||(n=!0,clearInterval(o),a(),t.signal.removeEventListener("abort",s))},t.signal.addEventListener("abort",s,{once:!0}),r.enqueue(tE.encode(": connected\n\n"))},cancel(){s()}});return new Response(r,{headers:{"Cache-Control":"no-cache, no-transform",Connection:"keep-alive","Content-Type":"text/event-stream; charset=utf-8","X-Accel-Buffering":"no"}})}catch(t){return Response.json({error:t instanceof Error?t.message:"Internal error"},{status:(0,o.WW)(t)})}}let tb=new r.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/changes/route",pathname:"/api/sessions/[id]/changes",filename:"route",bundlePath:"app/api/sessions/[id]/changes/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/sessions/[id]/changes/route.ts",nextConfigOutput:"standalone",userland:s}),{requestAsyncStorage:tP,staticGenerationAsyncStorage:tD,serverHooks:tR}=tb,tx="/api/sessions/[id]/changes/route";function tI(){return(0,a.patchFetch)({serverHooks:tR,staticGenerationAsyncStorage:tD})}},7786:(t,e,i)=>{t.exports=i(517)}};var e=require("../../../../../webpack-runtime.js");e.C(t);var i=t=>e(e.s=t),s=e.X(0,[375,322,988],()=>i(7428));module.exports=s})();
|
|
3
|
+
`))}),h=setInterval(()=>{n||r.enqueue(d.encode(": keep-alive\n\n"))},15e3);s=()=>{n||(n=!0,clearInterval(h),o(),t.signal.removeEventListener("abort",s))},t.signal.addEventListener("abort",s,{once:!0}),r.enqueue(d.encode(": connected\n\n"))},cancel(){s()}});return new Response(n,{headers:{"Cache-Control":"no-cache, no-transform",Connection:"keep-alive","Content-Type":"text/event-stream; charset=utf-8","X-Accel-Buffering":"no"}})}catch(t){return Response.json({error:t instanceof Error?t.message:"Internal error"},{status:(0,r.WW)(t)})}}s()}catch(t){s(t)}})},2147:(t,e,i)=>{i.d(e,{L:()=>tu});var s=i(5673),r=i(7561),a=i(3977),n=i(9411);let o=require("node:stream"),h={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},l={root:".",fileFilter:t=>!0,directoryFilter:t=>!0,type:h.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:256};Object.freeze(l);let d="READDIRP_RECURSIVE_ERROR",c=new Set(["ENOENT","EPERM","EACCES","ELOOP",d]),p=[h.DIR_TYPE,h.EVERYTHING_TYPE,h.FILE_DIR_TYPE,h.FILE_TYPE],u=new Set([h.DIR_TYPE,h.EVERYTHING_TYPE,h.FILE_DIR_TYPE]),f=new Set([h.EVERYTHING_TYPE,h.FILE_DIR_TYPE,h.FILE_TYPE]),_=t=>c.has(t.code),m="win32"===process.platform,w=t=>!0,g=t=>{if(void 0===t)return w;if("function"==typeof t)return t;if("string"==typeof t){let e=t.trim();return t=>t.basename===e}if(Array.isArray(t)){let e=t.map(t=>t.trim());return t=>e.some(e=>t.basename===e)}return w};class y extends o.Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;_relStart;constructor(t={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:t.highWaterMark??l.highWaterMark});let e={...l,...t},i=e.root??l.root,s=e.type??l.type;this._fileFilter=g(e.fileFilter),this._directoryFilter=g(e.directoryFilter);let r=e.lstat?a.lstat:a.stat;m?this._stat=t=>r(t,{bigint:!0}):this._stat=r,this._maxDepth=null!=e.depth&&Number.isSafeInteger(e.depth)?e.depth:l.depth,this._wantsDir=u.has(s),this._wantsFile=f.has(s),this._wantsEverything=s===h.EVERYTHING_TYPE,this._root=(0,n.resolve)(i),this._relStart=this._root.endsWith(n.sep)?this._root.length:this._root.length+1,this._isDirent=!e.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent};let o={path:this._root,depth:1};o.pending=this._exploreDir(this._root,1),this.parents=[o],this.reading=!1,this.parent=void 0}async _read(t){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&t>0;){let e=this.parent,i=e&&e.files;if(i&&i.length>0){let{path:s,depth:r}=e,a=i.splice(0,t).map(t=>this._formatEntry(t,s));for(let e of this._isDirent?a:await Promise.all(a)){if(!e)continue;if(this.destroyed)return;let i=this._getEntryType(e);"string"!=typeof i&&(i=await i),"directory"===i&&this._directoryFilter(e)?(r<=this._maxDepth&&this.parents.push({path:e.fullPath,depth:r+1}),this._wantsDir&&(this.push(e),t--)):("file"===i||this._includeAsFile(e))&&this._fileFilter(e)&&this._wantsFile&&(this.push(e),t--)}}else{let t=this.parents.pop();if(!t){this.push(null);break}let e=t.pending??this._exploreDir(t.path,t.depth),i=this.parents[this.parents.length-1];if(i&&!i.pending&&(i.pending=this._exploreDir(i.path,i.depth)),this.parent=await e,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(t,e){let i;try{i=await (0,a.readdir)(t,this._rdOptions)}catch(t){this._onError(t)}return{files:i,depth:e,path:t}}_formatEntry(t,e){let i=this._isDirent?t.name:t,s=(0,n.join)(e,i),r={path:s.slice(this._relStart),fullPath:s,basename:i};return this._isDirent?(r.dirent=t,r):this._stat(s).then(t=>(r.stats=t,r),t=>{this._onError(t)})}_onError(t){_(t)&&!this.destroyed?this.emit("warn",t):this.destroy(t)}_getEntryType(t){if(!t||!(this._statsProp in t))return"";let e=t[this._statsProp];return e.isFile()?"file":e.isDirectory()?"directory":e.isSymbolicLink()?this._getSymlinkEntryType(t):""}async _getSymlinkEntryType(t){let e=t.fullPath;try{let t=await (0,a.realpath)(e),i=await (0,a.lstat)(t);if(i.isFile())return"file";if(i.isDirectory()){let i=t.length;if(e.startsWith(t)&&e[i]===n.sep){let i=Error(`Circular symlink detected: "${e}" points to "${t}"`);return i.code=d,this._onError(i),""}return"directory"}}catch(t){this._onError(t)}return""}_includeAsFile(t){let e=t&&t[this._statsProp];return e&&this._wantsEverything&&!e.isDirectory()}}var v=i(612);let E=()=>{},b=process.platform,P="win32"===b,D="darwin"===b,R="linux"===b,x="freebsd"===b,I="OS400"===(0,v.type)(),T={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},k={lstat:a.lstat,stat:a.stat},F="listeners",W="errHandlers",A="rawEmitters",S=[F,W,A],C=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),N=t=>C.has(n.extname(t).slice(1).toLowerCase()),j=(t,e)=>{t instanceof Set?t.forEach(e):e(t)},z=(t,e,i)=>{let s=t[e];s instanceof Set||(t[e]=s=new Set([s])),s.add(i)},L=t=>e=>{let i=t[e];i instanceof Set?i.clear():delete t[e]},M=(t,e,i)=>{let s=t[e];s instanceof Set?s.delete(i):s===i&&delete t[e]},O=t=>t instanceof Set?0===t.size:!t,H=new Map;function q(t,e,i,s,a){try{return(0,r.watch)(t,{persistent:e.persistent},(e,s)=>{i(t),a(e,s,{watchedPath:t}),s&&t!==s&&Y(n.resolve(t,s),F,n.join(t,s))})}catch(t){s(t);return}}let Y=(t,e,i,s,r)=>{let a=H.get(t);a&&j(a[e],t=>{t(i,s,r)})},U=(t,e,i,s)=>{let r;let{listener:n,errHandler:o,rawEmitter:h}=s,l=H.get(e);if(!i.persistent){if(!(r=q(t,i,n,o,h)))return;return r.close.bind(r)}if(l)z(l,F,n),z(l,W,o),z(l,A,h);else{if(!(r=q(t,i,Y.bind(null,e,F),o,Y.bind(null,e,A))))return;r.on(T.ERROR,async i=>{let s=Y.bind(null,e,W);if(l&&(l.watcherUnusable=!0),P&&"EPERM"===i.code)try{let e=await (0,a.open)(t,"r");await e.close(),s(i)}catch(t){}else s(i)}),l={listeners:n,errHandlers:o,rawEmitters:h,watcher:r},H.set(e,l)}return()=>{M(l,F,n),M(l,W,o),M(l,A,h),O(l.listeners)&&(l.watcher.close(),H.delete(e),S.forEach(L(l)),l.watcher=void 0,Object.freeze(l))}},G=new Map,$=(t,e,i,s)=>{let{listener:a,rawEmitter:n}=s,o=G.get(e),h=o&&o.options;return h&&(h.persistent<i.persistent||h.interval>i.interval)&&((0,r.unwatchFile)(e),o=void 0),o?(z(o,F,a),z(o,A,n)):(o={listeners:a,rawEmitters:n,options:i,watcher:(0,r.watchFile)(e,i,(i,s)=>{j(o.rawEmitters,t=>{t(T.CHANGE,e,{curr:i,prev:s})});let r=i.mtimeMs;(i.size!==s.size||r>s.mtimeMs||0===r)&&j(o.listeners,e=>e(t,i))})},G.set(e,o)),()=>{M(o,F,a),M(o,A,n),O(o.listeners)&&(G.delete(e),(0,r.unwatchFile)(e),o.options=o.watcher=void 0,Object.freeze(o))}};class V{fsw;_boundHandleError;constructor(t){this.fsw=t,this._boundHandleError=e=>t._handleError(e)}_watchWithNodeFs(t,e){let i;let s=this.fsw.options,r=n.dirname(t),a=n.basename(t);this.fsw._getWatchedDir(r).add(a);let o=n.resolve(t),h={persistent:s.persistent};if(e||(e=E),s.usePolling){let r=s.interval!==s.binaryInterval;h.interval=r&&N(a)?s.binaryInterval:s.interval,i=$(t,o,h,{listener:e,rawEmitter:this.fsw._emitRaw})}else i=U(t,o,h,{listener:e,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return i}_handleFile(t,e,i){if(this.fsw.closed)return;let s=n.dirname(t),r=n.basename(t),o=this.fsw._getWatchedDir(s),h=e;if(o.has(r))return;let l=async(e,i)=>{if(this.fsw._throttle("watch",t,5)){if(i&&0!==i.mtimeMs){if(o.has(r)){let e=i.atimeMs,s=i.mtimeMs;(!e||e<=s||s!==h.mtimeMs)&&this.fsw._emit(T.CHANGE,t,i),h=i}}else try{let i=await (0,a.stat)(t);if(this.fsw.closed)return;let s=i.atimeMs,r=i.mtimeMs;if((!s||s<=r||r!==h.mtimeMs)&&this.fsw._emit(T.CHANGE,t,i),(D||R||x)&&h.ino!==i.ino){this.fsw._closeFile(e),h=i;let s=this._watchWithNodeFs(t,l);s&&this.fsw._addPathCloser(e,s)}else h=i}catch(t){this.fsw._remove(s,r)}}},d=this._watchWithNodeFs(t,l);if(!(i&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(t)){if(!this.fsw._throttle(T.ADD,t,0))return;this.fsw._emit(T.ADD,t,e)}return d}async _handleSymlink(t,e,i,s){if(this.fsw.closed)return;let r=t.fullPath,n=this.fsw._getWatchedDir(e);if(!this.fsw.options.followSymlinks){let e;this.fsw._incrReadyCount();try{e=await (0,a.realpath)(i)}catch(t){return this.fsw._emitReady(),!0}if(this.fsw.closed)return;return n.has(s)?this.fsw._symlinkPaths.get(r)!==e&&(this.fsw._symlinkPaths.set(r,e),this.fsw._emit(T.CHANGE,i,t.stats)):(n.add(s),this.fsw._symlinkPaths.set(r,e),this.fsw._emit(T.ADD,i,t.stats)),this.fsw._emitReady(),!0}if(this.fsw._symlinkPaths.has(r))return!0;this.fsw._symlinkPaths.set(r,!0)}_handleRead(t,e,i,s,r,a,o){t=n.join(t,"");let h=s?`${t}:${s}`:t;if(!(o=this.fsw._throttle("readdir",h,1e3)))return;let l=this.fsw._getWatchedDir(i.path),d=new Set,c=this.fsw._readdirp(t,{fileFilter:t=>i.filterPath(t),directoryFilter:t=>i.filterDir(t)});if(c)return c.on("data",async o=>{if(this.fsw.closed){c=void 0;return}let h=o.path,p=n.join(t,h);if(d.add(h),!(o.stats.isSymbolicLink()&&await this._handleSymlink(o,t,p,h))){if(this.fsw.closed){c=void 0;return}h!==s&&(s||l.has(h))||(this.fsw._incrReadyCount(),p=n.join(r,n.relative(r,p)),this._addToNodeFs(p,e,i,a+1))}}).on(T.ERROR,this._boundHandleError),new Promise((e,n)=>{if(!c)return n();c.once("end",()=>{if(this.fsw.closed){c=void 0;return}let n=!!o&&o.clear();e(void 0),l.getChildren().filter(e=>e!==t&&!d.has(e)).forEach(e=>{this.fsw._remove(t,e)}),c=void 0,n&&this._handleRead(t,!1,i,s,r,a,o)})})}async _handleDir(t,e,i,s,r,a,o){let h,l;let d=this.fsw._getWatchedDir(n.dirname(t)),c=d.has(n.basename(t));i&&this.fsw.options.ignoreInitial||r||c||this.fsw._emit(T.ADD_DIR,t,e),d.add(n.basename(t)),this.fsw._getWatchedDir(t);let p=this.fsw.options.depth;if((null==p||s<=p)&&!this.fsw._symlinkPaths.has(o)){if(!r&&(await this._handleRead(t,i,a,r,t,s,h),this.fsw.closed))return;l=this._watchWithNodeFs(t,(e,i)=>{i&&0===i.mtimeMs||this._handleRead(e,!1,a,r,t,s,h)})}return l}async _addToNodeFs(t,e,i,s,r){let o=this.fsw._emitReady;if(this.fsw._isIgnored(t)||this.fsw.closed)return o(),!1;let h=this.fsw._getWatchHelpers(t);i&&(h.filterPath=t=>i.filterPath(t),h.filterDir=t=>i.filterDir(t));try{let i;let l=await k[h.statMethod](h.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(h.watchPath,l))return o(),!1;let d=this.fsw.options.followSymlinks;if(l.isDirectory()){let o=n.resolve(t),c=d?await (0,a.realpath)(t):t;if(this.fsw.closed||(i=await this._handleDir(h.watchPath,l,e,s,r,h,c),this.fsw.closed))return;o!==c&&void 0!==c&&this.fsw._symlinkPaths.set(o,c)}else if(l.isSymbolicLink()){let r=d?await (0,a.realpath)(t):t;if(this.fsw.closed)return;let o=n.dirname(h.watchPath);if(this.fsw._getWatchedDir(o).add(h.watchPath),this.fsw._emit(T.ADD,h.watchPath,l),i=await this._handleDir(o,l,e,s,t,h,r),this.fsw.closed)return;void 0!==r&&this.fsw._symlinkPaths.set(n.resolve(t),r)}else i=this._handleFile(h.watchPath,l,e);return o(),i&&this.fsw._addPathCloser(t,i),!1}catch(e){if(this.fsw._handleError(e))return o(),t}}}let K=/\\/g,X=/\/\//g,B=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,J=/^\.[/\\]/;function Q(t){return Array.isArray(t)?t:[t]}let Z=t=>"object"==typeof t&&null!==t&&!(t instanceof RegExp);function tt(t,e,i){let s=function(t){if("string"!=typeof t)throw Error("string expected");t=(t=n.normalize(t)).replace(/\\/g,"/");let e=!1;return t.startsWith("//")&&(e=!0),t=t.replace(X,"/"),e&&(t="/"+t),t}(e);for(let e=0;e<t.length;e++)if((0,t[e])(s,i))return!0;return!1}let te=t=>{let e=Q(t).flat();if(!e.every(t=>"string"==typeof t))throw TypeError(`Non-string provided as watch path: ${e}`);return e.map(ts)},ti=t=>{let e=t.replace(K,"/"),i=!1;return e.startsWith("//")&&(i=!0),e=e.replace(X,"/"),i&&(e="/"+e),e},ts=t=>ti(n.normalize(ti(t))),tr=(t="")=>e=>"string"==typeof e?ts(n.isAbsolute(e)?e:n.join(t,e)):e,ta=(t,e)=>n.isAbsolute(t)?t:n.join(e,t),tn=Object.freeze(new Set);class to{path;_removeWatcher;items;constructor(t,e){this.path=t,this._removeWatcher=e,this.items=new Set}add(t){let{items:e}=this;e&&"."!==t&&".."!==t&&e.add(t)}async remove(t){let{items:e}=this;if(!e||(e.delete(t),e.size>0))return;let i=this.path;try{await (0,a.readdir)(i)}catch(t){this._removeWatcher&&this._removeWatcher(n.dirname(i),n.basename(i))}}has(t){let{items:e}=this;if(e)return e.has(t)}getChildren(){let{items:t}=this;return t?[...t.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=E,this.items=tn,Object.freeze(this)}}class th{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(t,e,i){this.fsw=i;let s=t;this.path=t=t.replace(J,""),this.watchPath=s,this.fullWatchPath=n.resolve(s),this.dirParts=[],this.dirParts.forEach(t=>{t.length>1&&t.pop()}),this.followSymlinks=e,this.statMethod=e?"stat":"lstat"}entryPath(t){return n.join(this.watchPath,n.relative(this.watchPath,t.fullPath))}filterPath(t){let{stats:e}=t;if(e&&e.isSymbolicLink())return this.filterDir(t);let i=this.entryPath(t);return this.fsw._isntIgnored(i,e)&&this.fsw._hasReadPermissions(e)}filterDir(t){return this.fsw._isntIgnored(this.entryPath(t),t.stats)}}class tl extends s.EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(t={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let e=t.awaitWriteFinish,i={stabilityThreshold:2e3,pollInterval:100},s={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...t,ignored:t.ignored?Q(t.ignored):Q([]),awaitWriteFinish:!0===e?i:"object"==typeof e&&{...i,...e}};I&&(s.usePolling=!0),void 0===s.atomic&&(s.atomic=!s.usePolling);let r=process.env.CHOKIDAR_USEPOLLING;if(void 0!==r){let t=r.toLowerCase();"false"===t||"0"===t?s.usePolling=!1:"true"===t||"1"===t?s.usePolling=!0:s.usePolling=!!t}let a=process.env.CHOKIDAR_INTERVAL;a&&(s.interval=Number.parseInt(a,10));let n=0;this._emitReady=()=>{++n>=this._readyCount&&(this._emitReady=E,this._readyEmitted=!0,process.nextTick(()=>this.emit(T.READY)))},this._emitRaw=(...t)=>this.emit(T.RAW,...t),this._boundRemove=this._remove.bind(this),this.options=s,this._nodeFsHandler=new V(this),Object.freeze(s)}_addIgnoredPath(t){if(Z(t)){for(let e of this._ignoredPaths)if(Z(e)&&e.path===t.path&&e.recursive===t.recursive)return}this._ignoredPaths.add(t)}_removeIgnoredPath(t){if(this._ignoredPaths.delete(t),"string"==typeof t)for(let e of this._ignoredPaths)Z(e)&&e.path===t&&this._ignoredPaths.delete(e)}add(t,e,i){let{cwd:s}=this.options;this.closed=!1,this._closePromise=void 0;let r=te(t);return s&&(r=r.map(t=>ta(t,s))),r.forEach(t=>{this._removeIgnoredPath(t)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async t=>{let s=await this._nodeFsHandler._addToNodeFs(t,!i,void 0,0,e);return s&&this._emitReady(),s})).then(t=>{this.closed||t.forEach(t=>{t&&this.add(n.dirname(t),n.basename(e||t))})}),this}unwatch(t){if(this.closed)return this;let e=te(t),{cwd:i}=this.options;return e.forEach(t=>{n.isAbsolute(t)||this._closers.has(t)||(i&&(t=n.join(i,t)),t=n.resolve(t)),this._closePath(t),this._addIgnoredPath(t),this._watched.has(t)&&this._addIgnoredPath({path:t,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let t=[];return this._closers.forEach(e=>e.forEach(e=>{let i=e();i instanceof Promise&&t.push(i)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=t.length?Promise.all(t).then(()=>void 0):Promise.resolve(),this._closePromise}getWatched(){let t={};return this._watched.forEach((e,i)=>{t[(this.options.cwd?n.relative(this.options.cwd,i):i)||"."]=e.getChildren().sort()}),t}emitWithAll(t,e){this.emit(t,...e),t!==T.ERROR&&this.emit(T.ALL,t,...e)}async _emit(t,e,i){let s;if(this.closed)return;let r=this.options;P&&(e=n.normalize(e)),r.cwd&&(e=n.relative(r.cwd,e));let o=[e];null!=i&&o.push(i);let h=r.awaitWriteFinish;if(h&&(s=this._pendingWrites.get(e)))return s.lastChange=new Date,this;if(r.atomic){if(t===T.UNLINK)return this._pendingUnlinks.set(e,[t,...o]),setTimeout(()=>{this._pendingUnlinks.forEach((t,e)=>{this.emit(...t),this.emit(T.ALL,...t),this._pendingUnlinks.delete(e)})},"number"==typeof r.atomic?r.atomic:100),this;t===T.ADD&&this._pendingUnlinks.has(e)&&(t=T.CHANGE,this._pendingUnlinks.delete(e))}if(h&&(t===T.ADD||t===T.CHANGE)&&this._readyEmitted)return this._awaitWriteFinish(e,h.stabilityThreshold,t,(e,i)=>{e?(t=T.ERROR,o[0]=e,this.emitWithAll(t,o)):i&&(o.length>1?o[1]=i:o.push(i),this.emitWithAll(t,o))}),this;if(t===T.CHANGE&&!this._throttle(T.CHANGE,e,50))return this;if(r.alwaysStat&&void 0===i&&(t===T.ADD||t===T.ADD_DIR||t===T.CHANGE)){let t;let i=r.cwd?n.join(r.cwd,e):e;try{t=await (0,a.stat)(i)}catch(t){}if(!t||this.closed)return;o.push(t)}return this.emitWithAll(t,o),this}_handleError(t){let e=t&&t.code;return t&&"ENOENT"!==e&&"ENOTDIR"!==e&&(!this.options.ignorePermissionErrors||"EPERM"!==e&&"EACCES"!==e)&&this.emit(T.ERROR,t),t||this.closed}_throttle(t,e,i){let s;this._throttled.has(t)||this._throttled.set(t,new Map);let r=this._throttled.get(t);if(!r)throw Error("invalid throttle");let a=r.get(e);if(a)return a.count++,!1;let n=()=>{let t=r.get(e),i=t?t.count:0;return r.delete(e),clearTimeout(s),t&&clearTimeout(t.timeoutObject),i},o={timeoutObject:s=setTimeout(n,i),clear:n,count:0};return r.set(e,o),o}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(t,e,i,s){let a;let o=this.options.awaitWriteFinish;if("object"!=typeof o)return;let h=o.pollInterval,l=t;this.options.cwd&&!n.isAbsolute(t)&&(l=n.join(this.options.cwd,t));let d=new Date,c=this._pendingWrites;c.has(t)||(c.set(t,{lastChange:d,cancelWait:()=>(c.delete(t),clearTimeout(a),i)}),a=setTimeout(function i(n){(0,r.stat)(l,(r,o)=>{if(r||!c.has(t)){r&&"ENOENT"!==r.code&&s(r);return}let l=Number(new Date);n&&o.size!==n.size&&(c.get(t).lastChange=l),l-c.get(t).lastChange>=e?(c.delete(t),s(void 0,o)):a=setTimeout(i,h,o)})},h))}_isIgnored(t,e){if(this.options.atomic&&B.test(t))return!0;if(!this._userIgnored){let{cwd:t}=this.options,e=(this.options.ignored||[]).map(tr(t)),i=[...[...this._ignoredPaths].map(tr(t)),...e];this._userIgnored=function(t,e){if(null==t)throw TypeError("anymatch: specify first argument");let i=Q(t).map(t=>"function"==typeof t?t:"string"==typeof t?e=>t===e:t instanceof RegExp?e=>t.test(e):"object"==typeof t&&null!==t?e=>{if(t.path===e)return!0;if(t.recursive){let i=n.relative(t.path,e);return!!i&&!i.startsWith("..")&&!n.isAbsolute(i)}return!1}:()=>!1);return null==e?(t,e)=>tt(i,t,e):tt(i,e)}(i,void 0)}return this._userIgnored(t,e)}_isntIgnored(t,e){return!this._isIgnored(t,e)}_getWatchHelpers(t){return new th(t,this.options.followSymlinks,this)}_getWatchedDir(t){let e=n.resolve(t);return this._watched.has(e)||this._watched.set(e,new to(e,this._boundRemove)),this._watched.get(e)}_hasReadPermissions(t){return!!this.options.ignorePermissionErrors||!!(256&Number(t.mode))}_remove(t,e,i){let s=n.join(t,e),r=n.resolve(s);if(i=null!=i?i:this._watched.has(s)||this._watched.has(r),!this._throttle("remove",s,100))return;i||1!==this._watched.size||this.add(t,e,!0),this._getWatchedDir(s).getChildren().forEach(t=>this._remove(s,t));let a=this._getWatchedDir(t),o=a.has(e);a.remove(e),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let h=s;if(this.options.cwd&&(h=n.relative(this.options.cwd,s)),this.options.awaitWriteFinish&&this._pendingWrites.has(h)&&this._pendingWrites.get(h).cancelWait()===T.ADD)return;this._watched.delete(s),this._watched.delete(r);let l=i?T.UNLINK_DIR:T.UNLINK;o&&!this._isIgnored(s)&&this._emit(l,s),this._closePath(s)}_closePath(t){this._closeFile(t);let e=n.dirname(t);this._getWatchedDir(e).remove(n.basename(t))}_closeFile(t){let e=this._closers.get(t);e&&(e.forEach(t=>t()),this._closers.delete(t))}_addPathCloser(t,e){if(!e)return;let i=this._closers.get(t);i||(i=[],this._closers.set(t,i)),i.push(e)}_readdirp(t,e){if(this.closed)return;let i=function(t,e={}){let i=e.entryType||e.type;if("both"===i&&(i=h.FILE_DIR_TYPE),t){if("string"!=typeof t)throw TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(i&&!p.includes(i))throw Error(`readdirp: Invalid type passed. Use one of ${p.join(", ")}`)}else throw Error("readdirp: root argument is required. Usage: readdirp(root, options)");let s={...e,root:t};return i&&(s.type=i),new y(s)}(t,{type:T.ALL,alwaysStat:!0,lstat:!0,...e,depth:0});return this._streams.add(i),i.once("close",()=>{i=void 0}),i.once("end",()=>{i&&(this._streams.delete(i),i=void 0)}),i}}let td=t=>(function(t,e={}){let i=new tl(e);return i.add(t),i})(t,{ignoreInitial:!0,persistent:!0});class tc{constructor(t=td,e=150){this.watchFile=t,this.debounceMs=e,this.entries=new Map}subscribe(t,e,i){let s=`${t}\0${e}`,r=this.entries.get(s);if(!r){let t=this.watchFile(e);r={watcher:t,subscribers:new Set,revision:0,debounceTimer:null},t.on("add",()=>this.schedule(r)),t.on("change",()=>this.schedule(r)),this.entries.set(s,r)}r.subscribers.add(i);let a=!0;return()=>{if(!a)return;a=!1;let t=this.entries.get(s);t&&(t.subscribers.delete(i),0===t.subscribers.size&&this.releaseEntry(s,t))}}async dispose(){let t=[...this.entries.entries()];this.entries.clear(),await Promise.all(t.map(async([,t])=>{t.debounceTimer&&clearTimeout(t.debounceTimer),await t.watcher.close()}))}schedule(t){t.debounceTimer&&clearTimeout(t.debounceTimer),t.debounceTimer=setTimeout(()=>{t.debounceTimer=null,t.revision+=1;let e={type:"session_history_changed",revision:t.revision};for(let i of t.subscribers)try{i(e)}catch{}},this.debounceMs)}releaseEntry(t,e){this.entries.get(t)===e&&this.entries.delete(t),e.debounceTimer&&clearTimeout(e.debounceTimer),e.debounceTimer=null,e.watcher.close()}}let tp=globalThis;function tu(){return tp.__nativeSessionChangeMonitor||(tp.__nativeSessionChangeMonitor=new tc),tp.__nativeSessionChangeMonitor}}};var e=require("../../../../../webpack-runtime.js");e.C(t);var i=t=>e(e.s=t),s=e.X(0,[375,322,83],()=>i(7495));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../../node_modules/better-sqlite3","../../../../../../../node_modules/next","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/322.js","../../../../../chunks/375.js","../../../../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../../node_modules/better-sqlite3","../../../../../../../node_modules/next","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/322.js","../../../../../chunks/375.js","../../../../../chunks/83.js","../../../../../webpack-runtime.js"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(()=>{var e={};e.id=939,e.ids=[939],e.modules={
|
|
1
|
+
"use strict";(()=>{var e={};e.id=939,e.ids=[939],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")},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")},1041:e=>{e.exports=require("node:url")},5881:e=>{e.exports=require("node:util")},1389:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{originalPathname:()=>q,patchFetch:()=>u,requestAsyncStorage:()=>c,routeModule:()=>d,serverHooks:()=>l,staticGenerationAsyncStorage:()=>x});var o=t(7786),n=t(5042),i=t(2184),a=t(145),p=e([a]);a=(p.then?(await p)():p)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.x.APP_ROUTE,page:"/api/sessions/[id]/fork/route",pathname:"/api/sessions/[id]/fork",filename:"route",bundlePath:"app/api/sessions/[id]/fork/route"},resolvedPagePath:"/Users/caoqu/team-agent/customer-agent/packages/server/app/api/sessions/[id]/fork/route.ts",nextConfigOutput:"standalone",userland:a}),{requestAsyncStorage:c,staticGenerationAsyncStorage:x,serverHooks:l}=d,q="/api/sessions/[id]/fork/route";function u(){return(0,i.patchFetch)({serverHooks:l,staticGenerationAsyncStorage:x})}s()}catch(e){s(e)}})},145:(e,r,t)=>{t.a(e,async(e,s)=>{try{t.r(r),t.d(r,{POST:()=>a});var o=t(1890),n=t(2083),i=e([n]);async function a(e,{params:r}){try{let e=await (0,n.NL)().fork(r.id);return o.NextResponse.json(e,{status:201})}catch(e){return o.NextResponse.json({error:e instanceof Error?e.message:"Internal error"},{status:(0,n.WW)(e)})}}n=(i.then?(await i)():i)[0],s()}catch(e){s(e)}})}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[375,703,322,83],()=>t(1389));module.exports=s})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../../node_modules/better-sqlite3","../../../../../../../node_modules/next","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/322.js","../../../../../chunks/375.js","../../../../../chunks/703.js","../../../../../chunks/
|
|
1
|
+
{"version":1,"files":["../../../../../../../node_modules/@anthropic-ai/claude-agent-sdk","../../../../../../../node_modules/better-sqlite3","../../../../../../../node_modules/next","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/322.js","../../../../../chunks/375.js","../../../../../chunks/703.js","../../../../../chunks/83.js","../../../../../webpack-runtime.js"]}
|