@auto-ai/agent 2.1.194 → 2.1.196
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/dist/safe-a/404/index.html +1 -1
- package/dist/safe-a/404.html +1 -1
- package/dist/safe-a/_next/static/chunks/136b0e67059516ec.js +1 -0
- package/dist/safe-a/_next/static/chunks/13f563091bb5e693.js +1 -0
- package/dist/safe-a/_next/static/chunks/1c058f8cbbecf3b6.css +1 -0
- package/dist/safe-a/_next/static/chunks/2fcf41242e56194f.js +1 -0
- package/dist/safe-a/_next/static/chunks/30ff9a37b9c6f0c2.js +1 -0
- package/dist/safe-a/_next/static/chunks/{5f0286b194e88c68.js → 38e41a7446bfb002.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{eca5690d7fb3d712.js → 4cea3dc4bc693bae.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{96feacf5b8cde310.js → 6ede5e68b521425a.js} +1 -1
- package/dist/safe-a/_next/static/chunks/7a86f14161d3d2d8.js +1 -0
- package/dist/safe-a/_next/static/chunks/7b2661b7ec3fa4f6.js +1 -0
- package/dist/safe-a/_next/static/chunks/89ac60ccbd69e7d0.js +1 -0
- package/dist/safe-a/_next/static/chunks/{e784a1fa0acaaaa0.css → 98bb493cc14b29b8.css} +1 -1
- package/dist/safe-a/_next/static/chunks/{518d4c901787979a.js → 9edfab69bc0e5607.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{760380631ca561e0.js → a7646d18f644b515.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{f1dde9052e8d1d3d.js → c987866e1b5e538e.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{9dcb662588dbf520.js → d36ccfb77a3b125c.js} +1 -1
- package/dist/safe-a/_next/static/chunks/{69aecc2a7893ba05.js → e300e51730b09886.js} +1 -1
- package/dist/safe-a/_next/static/chunks/e49f12b147341b78.js +1 -0
- package/dist/safe-a/_next/static/chunks/{1d5160bb440a1e1b.js → f31029be820cb46d.js} +1 -1
- package/dist/safe-a/_next/static/chunks/f660a559fce684d3.js +1 -0
- package/dist/safe-a/_next/static/chunks/fddc8491e9085327.js +1 -0
- package/dist/safe-a/index.html +2 -2
- package/dist/safe-a/index.txt +10 -10
- package/dist/safe-a/manage/about/index.html +2 -2
- package/dist/safe-a/manage/about/index.txt +11 -11
- package/dist/safe-a/manage/env/index.html +2 -2
- package/dist/safe-a/manage/env/index.txt +13 -13
- package/dist/safe-a/manage/geelib/index.html +2 -2
- package/dist/safe-a/manage/geelib/index.txt +13 -13
- package/dist/safe-a/manage/general/index.html +2 -2
- package/dist/safe-a/manage/general/index.txt +11 -11
- package/dist/safe-a/manage/git/index.html +2 -2
- package/dist/safe-a/manage/git/index.txt +13 -13
- package/dist/safe-a/manage/im/index.html +2 -2
- package/dist/safe-a/manage/im/index.txt +13 -13
- package/dist/safe-a/manage/index.html +2 -2
- package/dist/safe-a/manage/index.txt +8 -8
- package/dist/safe-a/manage/library/index.html +2 -2
- package/dist/safe-a/manage/library/index.txt +12 -12
- package/dist/safe-a/manage/mcp/index.html +2 -2
- package/dist/safe-a/manage/mcp/index.txt +11 -11
- package/dist/safe-a/manage/permissions/index.html +2 -2
- package/dist/safe-a/manage/permissions/index.txt +11 -11
- package/dist/safe-a/manage/skills/index.html +2 -2
- package/dist/safe-a/manage/skills/index.txt +11 -11
- package/dist/safe-a/manage/system/index.html +2 -2
- package/dist/safe-a/manage/system/index.txt +13 -13
- package/dist/safe-a/manage/task/index.html +2 -2
- package/dist/safe-a/manage/task/index.txt +11 -11
- package/dist/safe-a/manage/teams/index.html +2 -2
- package/dist/safe-a/manage/teams/index.txt +11 -11
- package/dist/safe-a/manage/tools/index.html +2 -2
- package/dist/safe-a/manage/tools/index.txt +11 -11
- package/package.json +6 -6
- package/dist/safe-a/_next/static/chunks/074a7a892d554827.js +0 -1
- package/dist/safe-a/_next/static/chunks/2ba468c7afb852bd.js +0 -1
- package/dist/safe-a/_next/static/chunks/33678ff357855160.js +0 -1
- package/dist/safe-a/_next/static/chunks/65982c1925fca4ab.js +0 -1
- package/dist/safe-a/_next/static/chunks/6ddf95b168bfbc36.js +0 -1
- package/dist/safe-a/_next/static/chunks/743bc613bbda46b4.css +0 -1
- package/dist/safe-a/_next/static/chunks/811897ffb3636359.js +0 -1
- package/dist/safe-a/_next/static/chunks/a56ab101155b1427.js +0 -1
- package/dist/safe-a/_next/static/chunks/cb85ccd601c65174.js +0 -1
- package/dist/safe-a/_next/static/chunks/ceead8f438e931f7.js +0 -1
- /package/dist/safe-a/_next/static/{fnecaAU1IOv7M644xhyOD → nwO0QCBdBfGqbYMxcUsla}/_buildManifest.js +0 -0
- /package/dist/safe-a/_next/static/{fnecaAU1IOv7M644xhyOD → nwO0QCBdBfGqbYMxcUsla}/_clientMiddlewareManifest.json +0 -0
- /package/dist/safe-a/_next/static/{fnecaAU1IOv7M644xhyOD → nwO0QCBdBfGqbYMxcUsla}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18566,(e,t,n)=>{t.exports=e.r(76562)},85570,e=>{"use strict";e.s(["WorkspaceRuntimeContext",()=>n,"useWorkspaceRuntime",()=>r]);var t=e.i(71645);let n=(0,t.createContext)(null);function r(){let e=(0,t.useContext)(n);if(!e)throw Error("useWorkspaceRuntime must be used within WorkspaceShell");return e}},18253,e=>{"use strict";e.s(["useGuardedAppNavigation",()=>s]);var t=e.i(71645),n=e.i(18566),r=e.i(61196);function s(){let e=(0,n.useRouter)(),s=(0,r.useStageThreadFlyoutStore)(e=>e.confirmNavigateAway);return{push:(0,t.useCallback)(async t=>{await s(t)&&e.push(t)},[s,e]),router:e}}},67585,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"BailoutToCSR",{enumerable:!0,get:function(){return s}});let r=e.r(32061);function s(e){let{reason:t,children:n}=e;if("undefined"==typeof window)throw Object.defineProperty(new r.BailoutToCSRError(t),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}},9885,(e,t,n)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return r}})},52157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return l}});let r=e.r(18050),s=e.r(74080),i=e.r(63599),a=e.r(9885);function l(e){let{moduleIds:t}=e;if("undefined"!=typeof window)return null;let n=i.workAsyncStorage.getStore();if(void 0===n)return null;let l=[];if(n.reactLoadableManifest&&t){let e=n.reactLoadableManifest;for(let n of t){if(!e[n])continue;let t=e[n].files;l.push(...t)}}return 0===l.length?null:(0,r.jsx)(r.Fragment,{children:l.map(e=>{let t=n.assetPrefix+"/_next/"+(0,a.encodeURIPath)(e);return e.endsWith(".css")?(0,r.jsx)("link",{precedence:"dynamic",href:t,rel:"stylesheet",as:"style"},e):((0,s.preload)(t,{as:"script",fetchPriority:"low"}),null)})})}},69093,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return u}});let r=e.r(18050),s=e.r(71645),i=e.r(67585),a=e.r(52157);function l(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},u=function(e){let t={...o,...e},n=(0,s.lazy)(()=>t.loader().then(l)),u=t.loading;function d(e){let l=u?(0,r.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,d=o?s.Suspense:s.Fragment,c=t.ssr?(0,r.jsxs)(r.Fragment,{children:["undefined"==typeof window?(0,r.jsx)(a.PreloadChunks,{moduleIds:t.modules}):null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(i.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(d,{...o?{fallback:l}:{},children:c})}return d.displayName="LoadableComponent",d}},70703,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(55682)._(e.r(69093));function s(e,t){var n;let s={};"function"==typeof e&&(s.loader=e);let i={...s,...t};return(0,r.default)({...i,modules:null==(n=i.loadableGenerated)?void 0:n.modules})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},82787,e=>{"use strict";e.s(["MANAGE_DEFAULT_HREF",()=>p,"getBridgeSidebarManageRoutes",()=>g,"getManageRoute",()=>f,"isManageRouteEnabled",()=>m,"isManageSideNavPath",()=>h],82787);var t=e.i(70703),n=e.i(71645),r=e.i(18050),s=e.i(87968),i=e.i(75157);function a(e){let{className:t}=e;return(0,r.jsxs)("div",{className:(0,i.cn)("flex min-h-[40vh] flex-1 items-center justify-center gap-2 text-zinc-500",t),children:[(0,r.jsx)(s.Spinner,{})," 加载中"]})}function l(){return(0,r.jsx)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col items-center justify-center text-[var(--ds-muted)]",children:"即将上线"})}var o=e.i(97249);function u(e){return(0,t.default)(e,{loading:()=>(0,n.createElement)(a)})}let d=[{key:"task",slug:"task",label:"定时任务",title:"定时任务",description:"管理计划执行的任务与触发记录。",chrome:"feature",icon:"Task",enabled:!0,headerIcon:"Calendar",visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(94065).then(e=>({default:e.TaskView})))},{key:"mcp",slug:"mcp",label:"MCP",title:"MCP管理",description:"管理外部工具与数据源。可以导入、编辑、移除或禁用 MCP 服务。",chrome:"feature",icon:"Mcp",headerIcon:"Mcp",enabled:!0,visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(72234).then(e=>({default:e.McpManageView})))},{key:"tools",slug:"tools",label:"Tools",title:"Tools管理",description:"管理当前 Agent 已挂载的Tools列表",chrome:"feature",icon:"Tool",headerIcon:"Tool",enabled:!0,visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(58332).then(e=>({default:e.ToolsManageView})))},{key:"skills",slug:"skills",label:"Skills",title:"Skills管理",description:"管理当前 Agent 已挂载的Skill",chrome:"feature",icon:"Skill",enabled:!0,headerIcon:"Skill",visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(48583).then(e=>({default:e.SkillsManageView})))},{key:"teams",slug:"teams",label:"Agent / Teams",title:"Agent / Teams 管理",description:"管理 Agent / Teams 团队与协作编排。",chrome:"feature",icon:"Teams",enabled:!0,visibleInNav:!1,headerIcon:"Agent2",visibleInBridgeSidebar:!0,Component:u(()=>e.A(2578).then(e=>({default:e.TeamsView})))},{key:"library",slug:"library",label:"资料库",title:"资料库",description:"管理当前 Agent 的资料库",chrome:"feature",icon:"Library",enabled:!0,visibleInNav:!1,headerIcon:"Library",visibleInBridgeSidebar:!0,Component:u(()=>e.A(14928).then(e=>({default:e.LibraryView})))},{key:"env",slug:"env",label:"服务商",title:"服务商",description:"管理 API 服务商以访问模型。",chrome:"side-nav",icon:"Server",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(1861).then(e=>({default:e.EnvManageView})))},{key:"git",slug:"git",label:"Git 设置",title:"Git 设置",description:"管理 Git 仓库与版本控制配置。",chrome:"side-nav",icon:"Brackets",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(83330).then(e=>({default:e.GitManageView})))},{key:"geelib",slug:"geelib",label:"Geelib 设置",title:"Geelib 设置",description:"管理极库云集成与任务同步配置。",chrome:"side-nav",icon:"Detail",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(94540).then(e=>({default:e.GeelibManageView})))},{key:"im",slug:"im",label:"IM 设置",title:"IM 设置",description:"管理即时通讯与消息通知配置。",chrome:"side-nav",icon:"MessageCircleQuestion",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(70287).then(e=>({default:e.ImManageView})))},{key:"system",slug:"system",label:"系统设置",title:"系统设置",description:"管理系统级参数与运行配置。",chrome:"side-nav",icon:"Settings",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(21363).then(e=>({default:e.SystemManageView})))},{key:"permissions",slug:"permissions",label:"权限",title:"权限",description:"管理平台访问权限与角色策略。",chrome:"side-nav",enabled:!1,visibleInNav:!1,Component:l},{key:"general",slug:"general",label:"通用",title:"通用",description:"平台通用配置与偏好设置。",chrome:"side-nav",enabled:!1,visibleInNav:!1,Component:l},{key:"about",slug:"about",label:"关于",title:"关于",description:"版本信息与平台说明。",chrome:"side-nav",enabled:!0,visibleInNav:!1,Component:l}].map(e=>{var t,n;let{children:r,...s}=e;return{...s,href:(0,o.buildSettingsHref)(e.slug),...r?{children:(t=e.slug,n=e.chrome,r.map(e=>{var r,s;let i="".concat(t,"/").concat(e.slug);return{...e,slug:i,href:(0,o.buildSettingsHref)(i),chrome:null!=(r=e.chrome)?r:n,enabled:null==(s=e.enabled)||s,visibleInNav:!1}}))}:{}}});function c(e){return e.Component}let p=function(){var e,t,n,r,s,i;let a=null!=(n=null!=(t=null!=(e=d.find(e=>e.enabled&&e.visibleInNav&&"side-nav"===e.chrome))?e:d.find(e=>e.enabled&&"side-nav"===e.chrome))?t:d.find(e=>"side-nav"===e.chrome))?n:d[0],l=null!=(i=null==(r=a.children)?void 0:r.find(e=>e.enabled))?i:null==(s=a.children)?void 0:s[0];if(l)return l;if(c(a))return a;let o=d.find(e=>c(e));return o||d.flatMap(e=>{var t;return null!=(t=e.children)?t:[]})[0]}().href;function f(e){return d.find(t=>t.key===e)}function g(){return d.filter(e=>e.enabled&&!0===e.visibleInBridgeSidebar&&void 0!==e.icon).map(e=>{let{key:t,label:n,href:r,icon:s,headerIcon:i}=e;return{key:t,label:n,href:r,icon:s,headerIcon:null!=i?i:s}})}function m(e){var t;return(null===(t=(0,o.getSettingsRouteByPathname)(e,function(){let e=[];for(let n of d){var t;c(n)&&e.push(n),(null==(t=n.children)?void 0:t.length)&&e.push(...n.children)}return e}()))||void 0===t?void 0:t.enabled)!==!1}function h(e){if(!e)return!1;let t=d.filter(e=>"side-nav"===e.chrome);return(0,o.isSettingsRoutePath)(e,t)}},21199,41143,e=>{"use strict";e.s(["WorkspaceShell",()=>Z],21199);var t=e.i(18050),n=e.i(71645),r=e.i(18566),s=e.i(65934),i=e.i(36845),a=e.i(20090);let l={EVENT:{SESSION_META:"session.meta",SESSION_READY:"session.ready",SESSION_ERROR:"session.error",QUERY_PROGRESS:"query.progress",CONVERSATION_DELTA:"conversation.delta",RUN_LIFECYCLE:"run.lifecycle",HISTORY_REPLAY:"history.replay",TURN_TERMINAL:"turn.terminal",PERMISSION_REQUEST:"permission.request"}};e.s(["SCHEDULE_TOOL_NAME",()=>o,"buildScheduledTaskIndex",()=>f,"parseScheduleToolResult",()=>p,"partitionScheduledSegments",()=>g,"retainScheduledTriggerFlag",()=>d,"withScheduledTriggerMeta",()=>u],41143);let o="ScheduleTool";function u(e,t,n){return e&&"object"==typeof e&&(t||n)?{...e,...t?{__scheduledTrigger:!0}:{},...n?{__turnId:n}:{}}:e}function d(e,t){if(!e||"object"!=typeof e)return t;let n=e.data,r=!!n&&"object"==typeof n&&!0===n.scheduledTrigger,s=!0===e.scheduledTrigger||!0===e.__scheduledTrigger,i="string"==typeof e.turnId?e.turnId:"",a="string"==typeof e.__turnId?e.__turnId:"";return r||s||i||a?{...t,...r||s?{__scheduledTrigger:!0}:{},...i||a?{__turnId:i||a}:{}}:t}function c(e){return!!e&&"object"==typeof e&&!0===e.__scheduledTrigger}function p(e,t){if("string"==typeof e)try{let t=JSON.parse(e);if(t&&"object"==typeof t)return t}catch(e){}if(e&&"object"==typeof e)return e;if(t&&"object"==typeof t){let e=t.toolUseResult;if(e&&"object"==typeof e)return e}return null}function f(e){let t=new Map,n=new Map;for(let c of e){let e=v(c);for(let m of function(e){if(!e||"object"!=typeof e)return[];let t=e.message,n=null==t?void 0:t.content;return Array.isArray(n)?n.filter(e=>!!e&&"object"==typeof e):[]}(c)){var r,s,i,a,l,u,d,f,g,b;if("tool_use"===m.type&&m.name===o){let t="string"==typeof m.id?m.id:"";if(!t)continue;let r=(b=m.input)&&"object"==typeof b?b:{},s=function(e){if(null==e||""===e)return;let t=Number(e);return Number.isFinite(t)?t:void 0}(r.delayMinutes);n.set(t,{toolUseId:t,id:r.id,prompt:null!=(i=r.prompt)?i:"",delayMinutes:s,createdAt:e,status:"cancel"===r.action?"cancelled":"scheduled"});continue}if("tool_result"!==m.type||"string"!=typeof m.tool_use_id)continue;let h=n.get(m.tool_use_id);if(!h)continue;let v=p(m.content,c);if(!v){n.delete(m.tool_use_id);continue}let S=v.id||h.id||"pending-".concat(m.tool_use_id),y={id:S,prompt:null!=(a=h.prompt)?a:"",fireAt:null!=(u=null!=(l=null==(r=v.scheduleClock)?void 0:r.utcIso)?l:null==(s=v.scheduleClock)?void 0:s.localDateTime)?u:"",createdAt:null!=(d=h.createdAt)?d:"",delayMinutes:null!=(f=v.delayMinutes)?f:h.delayMinutes,cron:v.cron,recurring:v.recurring,status:v.error?"failed":null!=(g=h.status)?g:"scheduled"};t.set(S,y),n.delete(m.tool_use_id)}}for(let n of e){if(!c(n)||"user"!==m(n))continue;let e=h(n);if(e){for(let r of t.values())if(r.prompt===e&&"scheduled"===r.status){r.status="fired",r.firedTurnId=function(e){if(!e||"object"!=typeof e)return"";let t=e.__turnId;return"string"==typeof t?t:""}(n);break}}}return t}function g(e,t){let n=new Map,r=new Set,s=0;for(;s<e.length;){var i;if(!c(e[s])){s+=1;continue}let a=s,l=[];for(;s<e.length&&c(e[s]);)l.push(e[s]),s+=1;let o=s-1,u=null!=(i=l.filter(e=>"user"===m(e)).map(e=>h(e)).find(e=>e.trim().length>0))?i:"",d=v(l[0]),p=l.filter(e=>"user"!==m(e)),f=function(e,t){if(e&&t.trim()){for(let n of e.values())if(n.prompt===t)return n.id}}(t,u);n.set(a,{kind:"scheduledTurn",startIndex:a,endIndex:o,dispatchedPrompt:u,triggeredAt:d,taskId:f,assistantMessages:p});for(let e=a+1;e<=o;e+=1)r.add(e)}return{scheduledStarts:n,consumed:r}}function m(e){if(!e||"object"!=typeof e)return"";let t=e.type;if("string"==typeof t)return t;let n=e.message;return"string"==typeof(null==n?void 0:n.role)?n.role:""}function h(e){if(!e||"object"!=typeof e)return"";let t=e.message,n=null==t?void 0:t.content;return"string"==typeof n?n:Array.isArray(n)?n.map(e=>e&&"object"==typeof e?"text"===e.type&&"string"==typeof e.text?e.text:"markdown"===e.type&&"string"==typeof e.content?e.content:"":"").filter(Boolean).join("\n").trim():""}function v(e){var t;if(!e||"object"!=typeof e)return"";let n=e.message,r=n&&"object"==typeof n?n.timestamp:void 0,s=null!=(t=null!=r?r:e.timestamp)?t:e.ts;return"string"==typeof s?s:""}var b=e.i(70074),S=e.i(55227);function y(e){let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.floor(t)):0}function x(e){let t=e&&"object"==typeof e?Number(e.protocolVersion):NaN;return"object"==typeof e&&null!==e&&"protocolVersion"in e&&Number.isFinite(t)&&3===t&&"string"==typeof e.type}let A=new Map;function j(e){if(!e||"object"!=typeof e)return"";if(("string"==typeof e.type?e.type:"unknown")===l.EVENT.TURN_TERMINAL){let t="string"==typeof e.resultText?e.resultText:"",n="string"==typeof e.reason?e.reason:"";return"resolved"==("resolved"===e.status?"resolved":"failed")?t:"turn.terminal failed: ".concat(n||"unknown")}try{return"```json\n".concat(JSON.stringify(e,null,2).slice(0,8e3),"\n```")}catch(t){return String(e)}}var N=e.i(87243),k=e.i(50711);async function I(e,t,n){var r;let i=String(e||"").trim();if(!i)return!1;let a=s.useAppStore.getState();if(i===(a.agentId.trim()||"qihoo"))return!1;let l=(null==n||null==(r=n.displayName)?void 0:r.trim())||i;a.startDraftSession(),a.resetAgentConfig(),a.setAgentId(i),a.setCurrentWorkspaceAgent({id:i,displayName:l});try{await t.loadSessions()}catch(e){}t.loadAgentConfig();let o=s.useAppStore.getState().sessionId.trim();return t.preferReconnect?t.reconnect():t.switchSession(o,i),!0}var w=e.i(92413),C=e.i(55146),T=e.i(72064),E=e.i(46798),R=e.i(19455),_=e.i(85570),M=e.i(97249),P=e.i(75157),L=e.i(8279),O=e.i(52727),D=e.i(18253),z=e.i(87968);function W(e){let{collapsed:r,onGoToSettings:i}=e,{push:a}=(0,D.useGuardedAppNavigation)(),l=(0,s.useAppStore)(e=>e.currentWorkspaceAgent),o=(0,s.useAppStore)(e=>e.agentId),u=(0,s.useAppStore)(e=>e.wsUrl),d=(0,s.useAppStore)(e=>e.apiBase),c=(0,s.useAppStore)(e=>e.setCurrentWorkspaceAgent),{switchWorkspaceAgent:p}=(0,_.useWorkspaceRuntime)(),f=o.trim()||"qihoo",g=(null==l?void 0:l.id)===f&&l.displayName.trim()||f,m=(0,L.initialsFromLabel)(g),[h,v]=(0,n.useState)(!1),[b,S]=(0,n.useState)([]),[y,x]=(0,n.useState)(!1),[A,j]=(0,n.useState)(null),N=(0,n.useRef)(null),k=(0,n.useCallback)(()=>{N.current&&(clearTimeout(N.current),N.current=null)},[]),I=(0,n.useCallback)(()=>{k(),v(!0)},[k]),w=(0,n.useCallback)(()=>{k(),N.current=setTimeout(()=>{v(!1),N.current=null},120)},[k]),C=(0,n.useCallback)(()=>{v(!1),null==i||i()},[i]),W=(0,n.useCallback)(async e=>{let t=e.id.trim();v(!1),t&&t!==f&&await p(t,e.displayName)&&a((0,M.buildAppNavHref)("/",{ensureAgent:!0,agent:t,preserveSessionId:!1}))},[f,a,p]);(0,n.useEffect)(()=>{if(!h)return;let e=!1;return x(!0),j(null),S([]),(0,O.listAgents)(u,d).then(t=>{e||S(t)}).catch(t=>{e||j(String(t))}).finally(()=>{e||x(!1)}),()=>{e=!0}},[h,u,d]),(0,n.useEffect)(()=>{if(!b.length)return;let e=b.find(e=>e.id===f);e&&((null==l?void 0:l.id)!==e.id||l.displayName!==e.displayName)&&c(e)},[b,f,l,c]),(0,n.useEffect)(()=>()=>{N.current&&clearTimeout(N.current)},[]);let B=(0,t.jsx)(E.TooltipProvider,{delayDuration:150,side:r?"right":void 0,children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(R.Button,{type:"button",variant:"plain",size:r?"icon":"icon-sm",className:(0,P.cn)(r?"sidebar-collapsed-icon-btn !rounded-[10px] text-zinc-700":"text-[var(--ds-muted)] hover:bg-[var(--ds-item-hover)] focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)]"),"aria-label":"设置",onClick:C,children:(0,t.jsx)(T.default,{name:"Settings",size:16,strokeWidth:1.75,className:(0,P.cn)("shrink-0",r&&"text-zinc-700")})})}),(0,t.jsx)(E.TooltipContent,{side:r?"right":"top",children:(0,t.jsx)("p",{children:"设置"})})]})});return(0,t.jsxs)("div",{className:(0,P.cn)("shrink-0 border-t border-solid border-[var(--ds-border)] transition",r?"flex w-full flex-col items-center gap-1 p-[1rem_.75rem]":"flex items-center gap-2 p-[1rem_.75rem]"),onClick:r?e=>e.stopPropagation():void 0,children:[r?B:null,(0,t.jsxs)("div",{className:(0,P.cn)("relative min-w-0",!r&&"flex-1"),onMouseEnter:I,onMouseLeave:w,children:[(0,t.jsxs)("div",{className:(0,P.cn)("flex min-w-0 cursor-pointer items-center gap-2 rounded-lg px-0.5 py-0.5",r&&"w-full justify-center"),children:[(0,t.jsx)("span",{className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold text-white",style:{background:"var(--avatar-bg)"},children:m}),r?null:(0,t.jsx)("span",{className:"min-w-0 truncate text-[var(--ds-text)]",children:g})]}),h?(0,t.jsx)("div",{className:"absolute bottom-full left-0 z-50 pb-2 shadow-[var(--shadow-float)]",onMouseEnter:I,onMouseLeave:w,children:(0,t.jsx)("div",{className:(0,P.cn)("flex max-h-[300px] w-[260px] max-w-[min(100vw-24px,260px)] flex-col overflow-hidden rounded-[var(--ds-radius-sm)] border border-solid border-[var(--ds-border)] bg-[var(--ds-bg)]","shadow-[var(--shadow-float)]"),children:(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-1.5",role:"listbox","aria-label":"切换 Agent",children:y?(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 px-2 py-3 text-[var(--ds-muted)]",children:[(0,t.jsx)(z.Spinner,{}),"加载中…"]}):A?(0,t.jsxs)("div",{className:"px-2 py-3 text-red-600",children:["加载失败: ",A]}):0===b.length?(0,t.jsx)("div",{className:"px-2 py-3 text-[var(--ds-muted)]",children:"暂无 agent"}):b.map(e=>{let n=e.id===f,r=(0,L.initialsFromLabel)(e.displayName);return(0,t.jsxs)("button",{type:"button",role:"option",className:"flex w-full cursor-pointer items-center gap-2 rounded-xl border-0 bg-transparent px-2 py-2 text-left hover:bg-[var(--ds-item-hover)] focus-visible:outline-none","aria-selected":n,onClick:()=>W(e),children:[(0,t.jsx)("span",{className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-xs font-semibold text-white",style:{background:"var(--avatar-bg)"},children:r}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 leading-tight",children:[(0,t.jsx)("span",{className:"block truncate text-[var(--ds-text)]",children:e.displayName}),e.displayName!==e.id?(0,t.jsx)("span",{className:"block truncate text-xs text-[var(--ds-muted)]",children:e.id}):null]}),n?(0,t.jsx)("span",{className:"shrink-0","aria-label":"当前 Agent",children:(0,t.jsx)(T.default,{name:"Check",size:16,className:"text-[var(--ds-accent)]"})}):null]},e.id)})})})}):null]}),r?null:B]})}var B=e.i(82787);let F="bridge-sidebar-collapsed",U=[];function V(e){let{onNewSession:i,onSelectSession:a,deleteSessionById:l}=e,{push:o,router:u}=(0,D.useGuardedAppNavigation)(),d=(0,r.usePathname)(),c=(0,s.useAppStore)(e=>e.lastSessions),p=(0,s.useAppStore)(e=>e.sessionId),f=(0,s.useAppStore)(e=>{var t;return null!=(t=e.messagesByRun.main)?t:U}),g=(0,s.useAppStore)(e=>e.pendingPrompt),m=(0,s.useAppStore)(e=>e.turnRunning),h=(0,n.useMemo)(()=>{var e;if(!p||c.some(e=>e.sessionId===p))return c;let t=f.find(e=>{var t;return(null==(t=e.message)?void 0:t.type)==="user"});if(!t&&!g)return c;let n="新对话";return g?n=g:"string"==typeof(null==t||null==(e=t.message)?void 0:e.message)&&(n=t.message.message),[{sessionId:p,summary:n,lastModified:Date.now(),createdAt:Date.now(),running:m},...c]},[c,p,f,g,m]),v=(0,s.useAppStore)(e=>e.brand),b=(0,s.useAppStore)(e=>e.agentId),[S,y]=(0,n.useState)(!1),x=(0,n.useRef)(!1),[A,j]=(0,n.useState)(null),[N,k]=(0,n.useState)(!0),I=(0,n.useMemo)(()=>(0,B.getBridgeSidebarManageRoutes)(),[]),R=(0,n.useCallback)((e,t)=>(0,M.buildAppNavHref)(e,{ensureAgent:null==t?void 0:t.ensureAgent,agent:b,preserveSessionId:"/"===e&&!(null==t?void 0:t.clearSessionId),sessionId:null==t?void 0:t.sessionId}),[b]),_=(0,n.useCallback)(e=>{let t=(0,M.normalizeAppPathname)(d),n=(0,M.normalizeAppPathname)(e);return t===n||t.startsWith("".concat(n,"/"))},[d]),P=(0,n.useCallback)(e=>{o(R(e,{ensureAgent:!0}))},[o,R]);(0,n.useEffect)(()=>{let e,t,n=[...["env","add-account"].flatMap(e=>{var t;let n=null==(t=(0,B.getManageRoute)(e))?void 0:t.href;return n?[R(n,{ensureAgent:!0})]:[]}),...I.map(e=>R(e.href,{ensureAgent:!0}))],r=()=>{for(let e of n)try{u.prefetch(e)}catch(e){}};return"requestIdleCallback"in window?e=window.requestIdleCallback(r,{timeout:2500}):t=setTimeout(r,200),()=>{void 0!==e&&window.cancelIdleCallback(e),void 0!==t&&clearTimeout(t)}},[u,R,I]),(0,n.useEffect)(()=>{try{let e=window.localStorage.getItem(F);"true"===e&&y(!0)}catch(e){}finally{x.current=!0}},[]),(0,n.useEffect)(()=>{if(x.current)try{window.localStorage.setItem(F,String(S))}catch(e){}},[S]),(0,n.useEffect)(()=>{if(!A)return;let e=e=>{let t=e.target;!(!(t instanceof Element)||t.closest("[data-session-menu-wrap]"))&&(t.closest('[data-slot="dropdown-menu-content"]')||j(null))};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[A]);let L=(0,n.useCallback)(()=>{o(R(B.MANAGE_DEFAULT_HREF,{ensureAgent:!0}))},[o,R]);return(0,t.jsx)("aside",{className:"sidebar h-dvh max-h-dvh min-h-0 self-start overflow-hidden ".concat(S?"is-collapsed":""),"data-region":"sidebar-panels",onClick:()=>{S&&y(!1)},children:S?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col items-center gap-[10px] overflow-y-auto overscroll-contain pt-3",children:(0,t.jsxs)(E.TooltipProvider,{side:"right",children:[(0,t.jsx)("div",{className:"group relative flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center",onClick:e=>e.stopPropagation(),children:(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center transition-opacity group-hover:pointer-events-auto group-hover:opacity-100",children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-collapsed-icon-btn",title:"展开侧边栏","aria-label":"展开侧边栏",onClick:e=>{e.preventDefault(),e.stopPropagation(),y(!1)},children:(0,t.jsx)(T.default,{name:"Layout",size:17,color:"#8f8f8f"})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:"展开侧边栏"})})]})})}),(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-collapsed-icon-btn",title:"新聊天","aria-label":"新聊天",onClick:e=>{e.preventDefault(),e.stopPropagation(),i(),o(R("/",{clearSessionId:!0}))},children:(0,t.jsx)(T.default,{name:"Add",size:16,className:"text-zinc-700"})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:"新聊天"})})]}),I.map(e=>{let n=_(e.href);return(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-collapsed-icon-btn ".concat(n?"bg-[var(--ds-item-active)] text-[var(--ds-accent)]":""),title:e.label,"aria-label":e.label,"aria-current":n?"page":void 0,onClick:t=>{t.preventDefault(),t.stopPropagation(),P(e.href)},children:(0,t.jsx)(T.default,{name:e.icon,size:16,className:n?"text-[var(--ds-accent)]":"text-zinc-700",strokeWidth:1.2})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:e.label})})]},e.key)})]})}),(0,t.jsx)("div",{className:"w-full shrink-0",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(W,{collapsed:!0,onGoToSettings:L})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"sidebar-brand",children:(0,t.jsxs)("div",{className:"sidebar-brand-title-row flex items-center justify-between",children:[(0,t.jsx)("div",{className:"logo flex min-w-0 items-center gap-2",children:(0,t.jsx)("span",{className:"truncate text-zinc-900",children:v})}),(0,t.jsx)(E.TooltipProvider,{side:"right",children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-icon-btn",title:"收起侧边栏","aria-label":"收起侧边栏",onClick:e=>{e.preventDefault(),e.stopPropagation(),y(!0)},children:(0,t.jsx)(T.default,{name:"Layout",size:17,color:"#8f8f8f"})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:"收起侧边栏"})})]})})]})}),(0,t.jsx)("div",{className:"new-chat",children:(0,t.jsxs)("div",{className:"mb-4 ml-2 mr-2 mt-2 flex cursor-pointer items-center gap-2.5 rounded-2xl px-2 py-2 text-zinc-700 transition-colors hover:bg-white/70",title:"开启新对话","aria-label":"开启新对话",onClick:e=>{e.preventDefault(),i(),o(R("/",{clearSessionId:!0}))},children:[(0,t.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--ds-item-active)] text-[var(--ds-accent)]","aria-hidden":!0,children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:(0,t.jsx)("path",{d:"M12 5v14M5 12h14"})})}),(0,t.jsx)("span",{className:"min-w-0 font-medium",children:"新会话"})]})}),(0,t.jsxs)("div",{className:"sidebar-scroll-area",children:[(0,t.jsx)("div",{className:"sidebar-drawers sidebar-drawers--nav px-[10px]",children:I.map(e=>{let n=_(e.href);return(0,t.jsxs)("div",{className:"m-[.45rem_0_0] flex cursor-pointer items-center rounded-[var(--ds-radius-sm)] p-[.45rem_.75rem] ".concat(n?"bg-[var(--ds-item-active)] text-[var(--ds-accent)]":"hover:bg-[var(--ds-item-active)] hover:text-zinc-900"),role:"button",tabIndex:0,"aria-current":n?"page":void 0,onClick:t=>{t.preventDefault(),t.stopPropagation(),P(e.href)},onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&P(e.href)},children:[(0,t.jsx)(T.default,{name:e.icon,size:16,className:"mr-3 text-zinc-700",strokeWidth:1.2}),(0,t.jsx)("span",{className:"text-zinc-900",children:e.label})]},e.key)})}),(0,t.jsx)("div",{className:"sidebar-drawers sidebar-drawers--sessions ".concat(N?"is-open":"is-closed"),children:(0,t.jsxs)("div",{className:"sidebar-drawer m-[.35rem_.35rem_0] mt-4",children:[(0,t.jsxs)("button",{type:"button",className:"flex w-full cursor-pointer items-center !border-none !bg-transparent p-[.45rem_.75rem] text-left text-[12px] font-[600] text-zinc-400 hover:text-zinc-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)] focus-visible:ring-offset-2","aria-expanded":N,"aria-controls":"sessionList","aria-label":N?"收起历史会话列表":"展开历史会话列表",onClick:()=>{k(e=>!e)},children:["历史会话",N?(0,t.jsx)(T.default,{name:"ChevronDown",size:12,strokeWidth:1,className:"ml-1 shrink-0 text-[var(--ds-muted)]"}):(0,t.jsx)(T.default,{name:"ChevronRight",size:12,strokeWidth:1,className:"ml-1 shrink-0 text-[var(--ds-muted)]"})]}),N?(0,t.jsx)("div",{className:"sidebar-drawer-body sidebar-drawer-body--sessions",children:(0,t.jsx)("div",{id:"sessionList",children:h.length?(0,w.groupSessionsByMonth)(h).map(e=>(0,t.jsx)("div",{children:e.items.map(e=>{let n=e.sessionId===p.trim(),r=!0===e.running||n&&m,s="".concat(e.sessionId).concat(r?"(运行中)":"");return(0,t.jsxs)("div",{className:"sidebar-drawer-item session-item ".concat(n?"active":""),title:s,children:[(0,t.jsx)("button",{type:"button",className:"session-item-main",onClick:t=>{t.stopPropagation(),a(e.sessionId),o(R("/",{sessionId:e.sessionId}))},children:(0,t.jsxs)("div",{className:"session-item-title",children:[r?(0,t.jsx)("span",{className:"session-running-badge",children:"运行中"}):null,(0,t.jsx)("span",{children:(0,w.sessionTitle)(e)})]})}),(0,t.jsx)("div",{className:"session-menu-wrap","data-session-menu-wrap":"",onClick:t=>{t.stopPropagation(),t.target===t.currentTarget&&j(t=>t===e.sessionId?null:e.sessionId)},children:(0,t.jsxs)(C.DropdownMenu,{open:A===e.sessionId,onOpenChange:e=>{e||j(null)},children:[(0,t.jsx)(C.DropdownMenuTrigger,{type:"button",className:"session-menu-btn","aria-label":"更多",onClick:t=>{t.stopPropagation(),j(t=>t===e.sessionId?null:e.sessionId)},children:(0,t.jsx)(T.default,{name:"More",size:16,className:"text-[var(--ds-muted)]"})}),(0,t.jsxs)(C.DropdownMenuContent,{align:"end",side:"bottom",sideOffset:6,className:"w-[172px] min-w-[172px] rounded-[var(--ds-radius-sm)] border border-[var(--ds-border)] bg-[var(--ds-bg)] p-1.5",children:[(0,t.jsxs)(C.DropdownMenuItem,{className:"h-9 rounded-xl px-2.5 text-[var(--ds-text)] hover:bg-[var(--ds-item-active)] focus:bg-[var(--ds-item-hover)]",onClick:()=>{navigator.clipboard.writeText(e.sessionId)},children:[(0,t.jsx)(T.default,{name:"Clipboard",size:16,className:"text-[var(--ds-muted)]"}),"复制完整 ID"]}),(0,t.jsx)(C.DropdownMenuSeparator,{className:"mx-1 my-1 bg-[var(--ds-border)]"}),(0,t.jsxs)(C.DropdownMenuItem,{variant:"destructive",className:"h-9 rounded-xl px-2.5 hover:bg-[#fff1f1] focus:bg-[#fff1f1]",onClick:()=>{(async()=>{let t=e.sessionId===p.trim(),n=await l(e.sessionId);t&&n&&o(R("/",{clearSessionId:!0}))})()},children:[(0,t.jsx)(T.default,{name:"Trash2",size:16}),"删除会话"]})]})]})})]},e.sessionId)})},e.key)):(0,t.jsx)("p",{className:"sidebar-drawer-empty",children:"(暂无会话)"})})}):null]})})]}),(0,t.jsx)(W,{collapsed:!1,onGoToSettings:L})]})})}var G=e.i(61196);function q(){let e=(0,G.useStageThreadFlyoutStore)(e=>e.open),r=(0,G.useStageThreadFlyoutStore)(e=>e.title),s=(0,G.useStageThreadFlyoutStore)(e=>e.content),i=(0,G.useStageThreadFlyoutStore)(e=>e.width),a=(0,G.useStageThreadFlyoutStore)(e=>e.hideHeader),l=(0,G.useStageThreadFlyoutStore)(e=>e.bodyClassName),o=(0,G.useStageThreadFlyoutStore)(e=>e.requestCloseFlyout),[u,d]=(0,n.useState)(i),[c,p]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&o()};return window.addEventListener("keydown",t),()=>{window.removeEventListener("keydown",t)}},[e,o]),(0,n.useEffect)(()=>{e&&d((0,G.clampStageThreadFlyoutWidth)(i))},[e,i]);let f=(0,n.useCallback)(e=>{e.preventDefault();let t=e.currentTarget;t.setPointerCapture(e.pointerId),p(!0);let n=e.clientX,r=e=>{let t=n-e.clientX;d((0,G.clampStageThreadFlyoutWidth)(u+t))},s=()=>{p(!1),t.removeEventListener("pointermove",r),t.removeEventListener("pointerup",s),t.removeEventListener("pointercancel",s),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",t.addEventListener("pointermove",r),t.addEventListener("pointerup",s),t.addEventListener("pointercancel",s)},[u]);return(0,t.jsx)("aside",{className:(0,P.cn)("stage-thread-flyout",e&&"is-open",c&&"is-resizing"),"data-region":"stage-thread-flyout","aria-hidden":!e,style:{"--stage-flyout-width":"".concat(u,"px")},children:e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"stage-thread-flyout-resize",role:"separator","aria-orientation":"vertical","aria-valuenow":u,"aria-valuemin":G.STAGE_THREAD_FLYOUT_MIN_WIDTH,"aria-valuemax":G.STAGE_THREAD_FLYOUT_MAX_WIDTH,"aria-label":"调整面板宽度",onPointerDown:f,children:(0,t.jsx)("span",{className:"stage-thread-flyout-resize-bar","aria-hidden":!0})}),(0,t.jsxs)("div",{className:"stage-thread-flyout-inner",children:[a?null:(0,t.jsxs)("header",{className:"stage-thread-flyout-header",children:[r?(0,t.jsx)("h2",{className:"stage-thread-flyout-title",children:r}):(0,t.jsx)("span",{className:"stage-thread-flyout-title","aria-hidden":!0}),(0,t.jsx)(R.Button,{type:"button",variant:"plain-outline",size:"icon-sm",className:"stage-thread-flyout-close shrink-0 cursor-pointer !pl-0 !pr-0","aria-label":"关闭",onClick:()=>void o(),children:(0,t.jsx)(T.default,{name:"X",size:16})})]}),(0,t.jsx)("div",{className:(0,P.cn)("stage-thread-flyout-body",l),children:s})]})]}):null})}var H=e.i(94606);function Q(){let e=(0,r.usePathname)(),t=(0,r.useRouter)(),s=(0,n.useRef)(null),i=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{if(i.current)return;let n=s.current;if(s.current=e,!n||n===e)return;let{open:r,guardRoute:a,isDirty:l,closeFlyout:o}=G.useStageThreadFlyoutStore.getState();if(r&&(0,H.isLeavingFlyoutGuardRoute)(a,n,e)){if(!(0,H.shouldConfirmFlyoutRouteChange)(a,n,e,l))return void o();i.current=!0,t.replace(n),(0,H.confirmDiscardFlyoutChanges)().then(r=>{i.current=!1,r?(o(),t.push(e),s.current=e):s.current=n})}},[e,t]),null}function Y(e){let{children:n,mainClassName:r,mainRegion:s,sidebar:i}=e;return(0,t.jsxs)("div",{className:"app","data-ui-layer":"presentation","data-topology":"local-first",children:[(0,t.jsx)(V,{onNewSession:i.onNewSession,onSelectSession:i.onSelectSession,onSaveAgentConfig:i.onSaveAgentConfig,deleteSessionById:i.deleteSessionById}),(0,t.jsx)("main",{className:(0,P.cn)("main overflow-x-auto",r),"data-region":s,children:(0,t.jsx)("div",{className:"main-content",children:n})}),(0,t.jsx)(q,{}),(0,t.jsx)(Q,{})]})}function J(){let e=(0,s.useAppStore)(e=>e.wsUrl),t=(0,s.useAppStore)(e=>e.apiBase),r=(0,s.useAppStore)(e=>e.agentId),a=(0,s.useAppStore)(e=>e.agentSelectionResolved),l=(0,s.useAppStore)(e=>e.setWsUrl),o=(0,s.useAppStore)(e=>e.setAgentId),{loadSessions:u,loadAgentConfig:d}=(0,N.useSession)();return(0,n.useLayoutEffect)(()=>{s.useAppStore.getState().wsUrl.trim()||l((0,i.defaultWsUrl)())},[l]),(0,n.useLayoutEffect)(()=>{(0,M.syncRuntimeAgentWithUrl)(s.useAppStore.getState().agentId,o)},[r,o]),(0,n.useEffect)(()=>{if(!e.trim())return;let t=!1;return(async()=>{let e=s.useAppStore.getState();e.setAgentSelectionResolved(!1),e.setAgentSelectionError(null);let n=(0,M.readAgentFromLocationSearch)().trim()||e.agentId.trim();try{var r;let s=await (0,O.listAgents)(e.wsUrl,e.apiBase);if(t)return;if(!s.length){e.setAgentSelectionError("暂无可用 Agent"),e.setAgentSelectionResolved(!1);return}let i=null!=(r=s.find(e=>e.id===n))?r:s[0];if(!i){e.setAgentSelectionError("暂无可用 Agent"),e.setAgentSelectionResolved(!1);return}e.agentId.trim()!==i.id&&e.setAgentId(i.id),e.setCurrentWorkspaceAgent(i),(0,M.replaceRuntimeAgentInUrl)(i.id),e.setAgentSelectionResolved(!0)}catch(n){if(t)return;e.setAgentSelectionError(n instanceof Error?n.message:String(n)),e.setAgentSelectionResolved(!1)}})(),()=>{t=!0}},[e,t,r]),(0,n.useEffect)(()=>{a&&(u(),d())},[a,r,e,t,u,d]),null}function X(){let e=(0,r.useSearchParams)(),t=(0,s.useAppStore)(e=>e.setAgentId),i=(0,s.useAppStore)(e=>e.setAgentSelectionResolved);return(0,n.useLayoutEffect)(()=>{var n;let r=null==(n=e.get("agent"))?void 0:n.trim();r&&r!==s.useAppStore.getState().agentId.trim()&&(i(!1),t(r))},[e,t,i]),null}function K(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(J,{}),(0,t.jsx)(n.Suspense,{fallback:null,children:(0,t.jsx)(X,{})})]})}function Z(e){let{children:o}=e,d=(0,r.usePathname)(),c=function(e){if(!e)return!1;let t=(0,M.normalizeAppPathname)(e);return"/manage"===t||t.startsWith("/manage/")}(d),p=(0,B.isManageSideNavPath)(d),f=(0,s.useAppStore)(e=>e.wsUrl),g=(0,s.useAppStore)(e=>e.apiBase),m=(0,s.useAppStore)(e=>e.agentId),h=(0,s.useAppStore)(e=>e.sessionId),v=(0,s.useAppStore)(e=>e.sessionViewMode),w=(0,s.useAppStore)(e=>e.lastSessions),C=(0,s.useAppStore)(e=>e.turnRunning),T=(0,s.useAppStore)(e=>e.agentSelectionResolved),E=(0,s.useAppStore)(e=>e.setSessionId),R=(0,s.useAppStore)(e=>e.setSessionViewMode),P=(0,s.useAppStore)(e=>e.setPendingHistoryRefresh),{loadSessions:L,loadAgentConfig:O,deleteSessionById:D}=(0,N.useSession)(),z=(0,k.usePersistAgentConfig)(),{reconnect:W,switchSession:F,sendPrompt:U,sendAbort:V,sendReloadAgentConfig:G,sendRestartSubprocess:q,sendPermissionResponse:H}=function(e){let t=(0,n.useRef)(null),r=(0,n.useRef)(""),o=(0,n.useRef)(0),d=(0,n.useRef)(0),c=(0,n.useRef)(0),p=(0,n.useRef)(new Map),f=(0,n.useRef)(null==e?void 0:e.onSession);f.current=null==e?void 0:e.onSession;let g=(0,n.useRef)(null==e?void 0:e.onQueryIdle);g.current=null==e?void 0:e.onQueryIdle;let m=(0,s.useAppStore)(e=>e.wsUrl),h=(0,s.useAppStore)(e=>e.agentSelectionResolved),v=(0,n.useCallback)(()=>(o.current+=1,o.current),[]),N=(0,n.useCallback)(()=>{if(t.current){let e=t.current;t.current.close(),(0,a.clearActiveWebSocket)(e),t.current=null}let e=s.useAppStore.getState();e.setWsConnected(!1),e.setBridgeReady(!1),e.resetApiErrorState(),e.setAssistantGenerating(!1),e.setTurnRunning(!1),p.current.clear()},[]),k=(0,n.useCallback)((e,t)=>{var n,i,a,o,c,m,h,S,y;let x=(null==t?void 0:t.httpReplay)===!0,N=s.useAppStore.getState(),I=(e.runId||"main").trim()||"main",w="string"==typeof e.agent_name?e.agent_name.trim():"";w&&p.current.set(I,w);let C=function(t,n){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],s=r&&e.data&&"object"==typeof e.data&&"string"==typeof e.data.sourceAgent?e.data.sourceAgent.trim():"",i=p.current.get(I)||"";return t||s||i||n},T=String(null!=(n=e.sessionId)?n:"").trim()||r.current.trim()||N.sessionId.trim()||"unknown",E="".concat(d.current,":").concat(T);if(e.eventId&&function(e,t){var n;let r=t||"default",s=null!=(n=A.get(r))?n:new Set;if(s.has(e))return!0;if(s.add(e),s.size>4096)for(let e of Array.from(s).slice(0,2048))s.delete(e);return A.set(r,s),!1}(e.eventId,E))return void N.appendLog("dedup","eventId=".concat(e.eventId," 已忽略"));switch(N.appendLog(x?"← replay":"←",e),e.type){case l.EVENT.SESSION_META:{let t=e.data,n=String(null!=(a=null!=(i=t.sessionId)?i:e.sessionId)?a:""),s=N.sessionId.trim();if(r.current){if(n&&n!==s)return void N.appendLog("switchSession","忽略过期 session.meta incoming=".concat(n," current=").concat(s));r.current=""}t.agent&&N.setBrandAgent(String(t.agent)),N.setSessionContextPercent(function(e){if(!e||"object"!=typeof e)return null;let t=Number(e.percentage);if(Number.isFinite(t))return Math.max(0,Math.round(10*t)/10);let n=Number(e.totalTokens),r=Number(e.rawMaxTokens);return Number.isFinite(n)&&Number.isFinite(r)&&r>0?Math.max(0,Math.round(n/r*1e3)/10):null}(t.contextUsage)),n&&(N.setSessionId(n),null==(o=f.current)||o.call(f,n));break}case l.EVENT.SESSION_READY:{N.resetApiErrorState();let t=e.data;r.current&&N.sessionId.trim()===r.current&&(r.current=""),N.markReady(),t.agent&&N.setBrandAgent(String(t.agent));break}case l.EVENT.SESSION_ERROR:{let t=e.data,n=null!=(c=t.message)?c:JSON.stringify(t);N.setAssistantGenerating(!1),N.setTurnRunning(!1),N.setStatus("错误: ".concat(String(n)),"err");break}case l.EVENT.QUERY_PROGRESS:{N.resetApiErrorState();let t=String(null!=(m=e.data.phase)?m:"");"idle"===t?(N.setQueryPhase(""),N.bridgeReady&&N.setStatus("已就绪","ready"),null==(h=g.current)||h.call(g)):(N.setQueryPhase(t),N.setStatus("查询阶段: ".concat(t,"…"),"working"));break}case l.EVENT.CONVERSATION_DELTA:{N.resetApiErrorState();let t=e.data;if(!t.action)break;if("message_added"===t.action||"message_updated"===t.action||"message_removed"===t.action||"tool_call"===t.action||"tool_result"===t.action||"message_completed"===t.action){if(!x&&r.current){let t=String(null!=(S=e.sessionId)?S:"").trim(),n=r.current.trim(),s=N.sessionId.trim();if(t&&t!==n&&t!==s){N.appendLog("switchSession","忽略切换过程中的过期 conversation.delta incoming=".concat(t," pending=").concat(n," current=").concat(s));break}}let n={eventId:e.eventId,action:t.action,index:t.index,message:u(t.message,!0===t.scheduledTrigger||!0===e.scheduledTrigger,"string"==typeof e.turnId?e.turnId:"")},s=C("",I),i=v();N.applyRunMessageDelta({...n,runId:I,sourceAgent:s,ts:"string"==typeof e.ts?e.ts:"",arrivalSeq:i})}"message_completed"===t.action&&N.setStreamBuffer("");break}case l.EVENT.RUN_LIFECYCLE:{let t=e.data,n="string"==typeof t.event&&t.event||("string"==typeof t.state?t.state:"");if("replay.start"===n||"replay.end"===n)break;N.setRunLifecycleData({event:n,message:t.message});let r=C("string"==typeof t.sourceAgent?t.sourceAgent.trim():"","system",!1),s=j(t);s.trim()&&N.appendSourceAgentMessage({key:"string"==typeof e.eventId?e.eventId:"lc-".concat(Date.now()),source:r,runId:I,correlationId:"",status:"resolved",text:s,ts:"string"==typeof e.ts?e.ts:"",arrivalSeq:v()}),"configReloaded"===n&&N.setStatus("已重新加载 agent.md / agent.json",(0,b.resolveInfoStatusClass)(N.bridgeReady,N.wsConnected));break}case l.EVENT.HISTORY_REPLAY:{let n=e.data;if(Array.isArray(n.events))for(let e=0;e<n.events.length;e+=1){let r=n.events[e];r&&"object"==typeof r&&r.type!==l.EVENT.HISTORY_REPLAY&&k(r,t)}break}case l.EVENT.TURN_TERMINAL:{N.resetApiErrorState(),N.setStreamBuffer(""),N.setAssistantGenerating(!1),N.setTurnRunning(!1),N.setQueryPhase("");let t=e.data;N.setTurnTerminalData({status:t.status,resultText:t.resultText,reason:t.reason});let n=s.useAppStore.getState();"resolved"===t.status?n.setStatus("本轮结束(可继续发送)",(0,b.resolveInfoStatusClass)(n.bridgeReady,n.wsConnected)):"failed"===t.status?n.setStatus("本轮失败: ".concat(null!=(y=t.reason)?y:"未知错误"),"err"):"cancelled"===t.status?n.setStatus("本轮已取消",(0,b.resolveInfoStatusClass)(n.bridgeReady,n.wsConnected)):n.setStatus("本轮结束(可继续发送)",(0,b.resolveInfoStatusClass)(n.bridgeReady,n.wsConnected));let r=C("string"==typeof t.sourceAgent?t.sourceAgent.trim():"","main"===I?"main":"unknown-agent",!1),i="string"==typeof t.correlationId?t.correlationId:"",a=j({type:l.EVENT.TURN_TERMINAL,status:t.status,reason:t.reason,resultText:t.resultText});n.appendSourceAgentMessage({key:"string"==typeof e.eventId?e.eventId:"terminal-".concat(Date.now()),source:r,runId:I,correlationId:i,status:"resolved"===t.status?"resolved":"failed",text:a,ts:"string"==typeof e.ts?e.ts:"",arrivalSeq:v()});break}case l.EVENT.PERMISSION_REQUEST:{let t=e.data,n="string"==typeof t.requestId?t.requestId.trim():"";if(!n)break;N.enqueuePermissionRequest({requestId:n,toolName:"string"==typeof t.toolName?t.toolName:"tool",description:"string"==typeof t.description?t.description:"",input:null!=t.input?t.input:{},runId:I})}}},[v]),I=(0,n.useCallback)(e=>{var t,n,i,a,l,o;let u=s.useAppStore.getState(),d=String(null!=(t=e.type)?t:"");if("system"===d&&"api_error"===e.subtype){let t=y(e.retryAttempt),n=y(e.maxRetries),r=y(e.retryInMs),s=Date.now()+r,i=n>0&&t>=n?"failed":r>=1e4?"retrying":"loading";u.setApiErrorState({phase:i,retryAttempt:t,maxRetries:n,retryInMs:r,retryUntilTs:s}),u.appendLog("api_error",{uuid:"string"==typeof e.uuid?e.uuid:"",retryAttempt:t,maxRetries:n,retryInMs:r});return}switch(d){case"messages":if(r.current)return void u.appendLog("switchSession","忽略切换过程中的 messages 回包");u.resetApiErrorState(),u.setMessages(Array.isArray(e.messages)?e.messages:[]),u.setStreamBuffer("");break;case"queryProgress":{u.resetApiErrorState();let t=String(null!=(n=e.phase)?n:"");"idle"===t?(u.setQueryPhase(""),u.bridgeReady&&u.setStatus("已就绪","ready"),null==(i=g.current)||i.call(g)):(u.setQueryPhase(t),u.setStatus("查询阶段: ".concat(t,"…"),"working"));break}case"streamText":{u.resetApiErrorState();let t="string"==typeof e.text?e.text:"";u.setAssistantGenerating(!1),u.setStreamBuffer(t);let n=t.length>160?"".concat(t.slice(0,160),"…"):t;u.appendLog("←",{type:"streamText",len:t.length,preview:n||"(空)"});break}case"ready":u.resetApiErrorState(),r.current&&u.sessionId.trim()===r.current&&(r.current=""),u.markReady(),e.agent&&u.setBrandAgent(String(e.agent));break;case"session":{let t=String(null!=(a=e.sessionId)?a:""),n=u.sessionId.trim();if(r.current){if(t&&t!==n)return void u.appendLog("switchSession","忽略过期 session 回包 incoming=".concat(t," current=").concat(n));r.current=""}e.agent&&u.setBrandAgent(String(e.agent)),t&&(u.setSessionId(t),null==(l=f.current)||l.call(f,t));break}case"error":u.setAssistantGenerating(!1),u.setTurnRunning(!1),u.setStatus("错误: ".concat(String(null!=(o=e.message)?o:JSON.stringify(e))),"err");break;case"turnComplete":{u.resetApiErrorState(),u.setStreamBuffer(""),u.setAssistantGenerating(!1),u.setTurnRunning(!1),u.setQueryPhase("");let e=s.useAppStore.getState();e.setStatus("本轮结束(可继续发送)",(0,b.resolveInfoStatusClass)(e.bridgeReady,e.wsConnected));break}case"agentConfigReloaded":{let e=s.useAppStore.getState();e.setStatus("已重新加载 agent.md / agent.json",(0,b.resolveInfoStatusClass)(e.bridgeReady,e.wsConnected))}}},[]),w=(0,n.useCallback)(async(e,t)=>{let n=e.trim();if(!n)return;let r=s.useAppStore.getState(),i=r.agentId.trim()||"qihoo";try{let{envelopes:e,messageCount:s}=await (0,S.loadSessionReplay)(r.wsUrl,r.apiBase,i,n);if(t!==c.current)return;let a={httpReplay:!0};for(let t=0;t<e.length;t+=1){let n=e[t];n&&x(n)&&k(n,a)}r.appendLog("session-replay-http",{sessionId:n,messageCount:s,envelopeCount:e.length})}catch(e){if(t!==c.current)return;r.appendLog("session-replay-http",String(e)),r.setStatus("历史回放失败: ".concat(e),"err")}},[k]),C=(0,n.useCallback)(()=>{let e,n=s.useAppStore.getState();if(!n.agentSelectionResolved||t.current&&(0,a.isWebSocketOpen)(t.current)&&n.bridgeReady)return;if(t.current){let e=t.current;try{e.close()}catch(e){}(0,a.clearActiveWebSocket)(e),t.current=null}n.markConnecting(),n.resetApiErrorState(),n.resetChat(),n.clearLog(),o.current=0,p.current.clear(),d.current+=1,A.clear();let r=n.agentId.trim()||"qihoo",l=n.sessionId.trim();l&&w(l,++c.current);let u=(0,i.buildWsUrlWithQuery)(n.wsUrl,n.sessionId,r);n.appendLog("connect",u);try{t.current=e=new WebSocket(u),(0,a.setActiveWebSocket)(e)}catch(e){n.markConnectionError("连接失败: ".concat(e)),n.appendLog("error",String(e));return}e.onopen=function(){t.current===this&&s.useAppStore.getState().markConnected()},e.onclose=function(){(null==t.current||t.current===this)&&(s.useAppStore.getState().markDisconnected(),(0,a.clearActiveWebSocket)(this),t.current===this&&(t.current=null))},e.onerror=function(){t.current===this&&(s.useAppStore.getState().markConnectionError("WebSocket 错误"),s.useAppStore.getState().appendLog("error","websocket error"))},e.onmessage=function(e){let n,r=s.useAppStore.getState();try{n=JSON.parse(e.data)}catch(t){r.appendLog("raw",e.data);return}this===t.current&&(x(n)?k(n):null!==n&&"object"==typeof n&&(r.appendLog("←",n),I(n)))}},[k,I,w]),T=(0,n.useCallback)(()=>{N(),C()},[N,C]),E=(0,n.useCallback)((e,n)=>{let i=s.useAppStore.getState(),l=String(e||"").trim(),u=String(n||i.agentId||"").trim()||"qihoo",f=t.current,g=(0,a.isWebSocketOpen)(f);if(i.resetChat(),i.clearLog(),i.setSessionContextPercent(null),o.current=0,i.setBridgeReady(!1),i.resetApiErrorState(),i.setStatus("正在切换 session…","working"),p.current.clear(),d.current+=1,l&&g&&w(l,++c.current),r.current=l,!g)return void T();try{let e={type:"switchSession",sessionId:l,agent:u};f.send(JSON.stringify(e)),i.appendLog("→",e)}catch(e){i.appendLog("error","switchSession 发送失败: ".concat(String(e))),T()}},[T,w]);(0,n.useEffect)(()=>h?(C(),()=>{N()}):void N(),[m,h,C,N]);let R=(0,n.useCallback)(e=>{let n=t.current;(0,a.isWebSocketOpen)(n)&&(n.send(JSON.stringify(e)),s.useAppStore.getState().appendLog("→",e))},[]),_=(0,n.useCallback)(e=>{let t=String(null!=e?e:"").trim();t&&(s.useAppStore.getState().setAssistantGenerating(!0),s.useAppStore.getState().setTurnRunning(!0),s.useAppStore.getState().setPendingPrompt(t)),R({type:"prompt",text:e})},[R]),M=(0,n.useCallback)(()=>{R({type:"abort"})},[R]),P=(0,n.useCallback)(()=>{R({type:"reloadAgentConfig"})},[R]),L=(0,n.useCallback)(e=>{R({type:"restartSubprocess",reason:null!=e?e:"persist-session-overrides"})},[R]),O=(0,n.useCallback)(()=>{R({type:"reloadAgentPrompt"})},[R]);return{wsRef:t,disconnectIfOpen:N,connectWebSocket:C,reconnect:T,switchSession:E,sendPrompt:_,sendAbort:M,sendReloadAgentConfig:P,sendRestartSubprocess:L,sendReloadAgentPrompt:O,sendPermissionResponse:(0,n.useCallback)((e,t)=>{let n=String(e||"").trim();n&&R({type:"permission.response",requestId:n,behavior:t})},[R]),sendInit:(0,n.useCallback)(e=>{R({type:"init",...e})},[R])}}({onSession:()=>{L()},onQueryIdle:()=>{L()}}),Q=(0,n.useCallback)((e,t)=>I(e,{switchSession:F,reconnect:W,loadSessions:L,loadAgentConfig:O,preferReconnect:c},{displayName:t}),[F,W,L,O,c]);(0,n.useEffect)(()=>{let e;if(!T)return;let t=!1,n=w.some(e=>!0===e.running),r=C||n?1500:4e3,s=()=>{e=setTimeout(()=>{if(!t){if("undefined"!=typeof document&&"hidden"===document.visibilityState)return void s();L().finally(()=>{t||s()})}},r)};return s(),()=>{t=!0,void 0!==e&&clearTimeout(e)}},[T,w,L,C]);let J=(0,n.useMemo)(()=>({reconnect:W,switchSession:F,switchWorkspaceAgent:Q,sendPrompt:U,sendAbort:V,sendReloadAgentConfig:G,sendRestartSubprocess:q,sendPermissionResponse:H}),[W,F,Q,U,V,G,q,H]),X=p?"settings-main":c?"manage-main":"draft"===v?"is-draft-session":void 0;return(0,t.jsxs)(_.WorkspaceRuntimeContext.Provider,{value:J,children:[(0,t.jsx)(K,{}),(0,t.jsxs)("div",{className:"ws-config-hidden","aria-hidden":!0,children:[(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:f}),(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:g}),(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:h}),(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:m})]}),(0,t.jsx)(Y,{mainClassName:X,mainRegion:p?"settings-shell":c?"manage-shell":"chat-shell",sidebar:{onNewSession:()=>{E(""),R("draft"),P(!1),c?W():F("",m)},onSelectSession:e=>{E(e),R("history"),P(!1),c?W():F(e,m)},onSaveAgentConfig:()=>void z({silent:!1}),deleteSessionById:async e=>{let t=await D(e);return t&&(c?W():F("",m)),t}},children:o})]})}},41796,e=>{"use strict";e.s(["SideNavShell",()=>d]);var t=e.i(18050),n=e.i(18566),r=e.i(72064),s=e.i(65934),i=e.i(75157),a=e.i(97249),l=e.i(51419),o=e.i(18253);function u(e,t){if(!t)return!1;let n=(0,a.normalizeAppPathname)(t),r=(0,a.normalizeAppPathname)(e);return n===r||n.startsWith("".concat(r,"/"))}function d(e){var d;let{title:c,navGroups:p,tabs:f,activeTabValue:g,tabVariant:m,bottomItems:h,children:v}=e,b=(0,n.usePathname)(),{push:S}=(0,o.useGuardedAppNavigation)(),y=(0,s.useAppStore)(e=>e.agentId),x=e=>{S((0,a.buildAppNavHref)(e,{ensureAgent:!0,agent:y}))},A=!!(m&&(null==f?void 0:f.length)),j=null!=g?g:null==f||null==(d=f[0])?void 0:d.value;return(0,t.jsxs)("div",{className:"side-nav-shell",children:[(0,t.jsxs)("nav",{className:"side-nav","aria-label":null!=c?c:"导航",children:[c?(0,t.jsx)("div",{className:"side-nav-title",children:c}):null,(0,t.jsx)("div",{className:"side-nav-groups",children:p.map((e,n)=>(0,t.jsx)("div",{className:"side-nav-group",children:e.items.map(e=>{let n=u(e.href,b);return(0,t.jsxs)("button",{type:"button",className:(0,i.cn)("side-nav-item",n&&"is-active"),"aria-current":n?"page":void 0,onClick:()=>x(e.href),children:[e.icon?(0,t.jsx)("span",{className:"side-nav-item-icon","aria-hidden":!0,children:(0,t.jsx)(r.default,{name:e.icon,size:16,className:"text-zinc-700",strokeWidth:1})}):null,(0,t.jsx)("span",{className:"side-nav-item-label",children:e.label})]},e.href)})},n))}),h&&h.length>0?(0,t.jsx)("div",{className:"side-nav-bottom",children:h.map(e=>{let n=u(e.href,b);return(0,t.jsxs)("button",{type:"button",className:(0,i.cn)("side-nav-item",n&&"is-active"),"aria-current":n?"page":void 0,onClick:()=>x(e.href),children:[e.icon?(0,t.jsx)("span",{className:"side-nav-item-icon","aria-hidden":!0,children:(0,t.jsx)(r.default,{name:e.icon,size:16,className:"text-zinc-700",strokeWidth:1})}):null,(0,t.jsx)("span",{className:"side-nav-item-label",children:e.label})]},e.href)})}):null]}),(0,t.jsx)("section",{className:"side-nav-content",children:A?(0,t.jsx)(l.AppTabs,{tabs:null!=f?f:[],value:j,onChange:x,listVariant:m,listClassName:"pill"===m?"mx-auto":void 0,contentClassName:"flex min-h-0 min-w-0 flex-1 flex-col",children:v}):v})]})}}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18566,(e,t,n)=>{t.exports=e.r(76562)},85570,e=>{"use strict";e.s(["WorkspaceRuntimeContext",()=>n,"useWorkspaceRuntime",()=>r]);var t=e.i(71645);let n=(0,t.createContext)(null);function r(){let e=(0,t.useContext)(n);if(!e)throw Error("useWorkspaceRuntime must be used within WorkspaceShell");return e}},18253,e=>{"use strict";e.s(["useGuardedAppNavigation",()=>s]);var t=e.i(71645),n=e.i(18566),r=e.i(61196);function s(){let e=(0,n.useRouter)(),s=(0,r.useStageThreadFlyoutStore)(e=>e.confirmNavigateAway);return{push:(0,t.useCallback)(async t=>{await s(t)&&e.push(t)},[s,e]),router:e}}},67585,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"BailoutToCSR",{enumerable:!0,get:function(){return s}});let r=e.r(32061);function s(e){let{reason:t,children:n}=e;if("undefined"==typeof window)throw Object.defineProperty(new r.BailoutToCSRError(t),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}},9885,(e,t,n)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"encodeURIPath",{enumerable:!0,get:function(){return r}})},52157,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"PreloadChunks",{enumerable:!0,get:function(){return l}});let r=e.r(18050),s=e.r(74080),i=e.r(63599),a=e.r(9885);function l(e){let{moduleIds:t}=e;if("undefined"!=typeof window)return null;let n=i.workAsyncStorage.getStore();if(void 0===n)return null;let l=[];if(n.reactLoadableManifest&&t){let e=n.reactLoadableManifest;for(let n of t){if(!e[n])continue;let t=e[n].files;l.push(...t)}}return 0===l.length?null:(0,r.jsx)(r.Fragment,{children:l.map(e=>{let t=n.assetPrefix+"/_next/"+(0,a.encodeURIPath)(e);return e.endsWith(".css")?(0,r.jsx)("link",{precedence:"dynamic",href:t,rel:"stylesheet",as:"style"},e):((0,s.preload)(t,{as:"script",fetchPriority:"low"}),null)})})}},69093,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return u}});let r=e.r(18050),s=e.r(71645),i=e.r(67585),a=e.r(52157);function l(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(l(()=>null)),loading:null,ssr:!0},u=function(e){let t={...o,...e},n=(0,s.lazy)(()=>t.loader().then(l)),u=t.loading;function d(e){let l=u?(0,r.jsx)(u,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,d=o?s.Suspense:s.Fragment,c=t.ssr?(0,r.jsxs)(r.Fragment,{children:["undefined"==typeof window?(0,r.jsx)(a.PreloadChunks,{moduleIds:t.modules}):null,(0,r.jsx)(n,{...e})]}):(0,r.jsx)(i.BailoutToCSR,{reason:"next/dynamic",children:(0,r.jsx)(n,{...e})});return(0,r.jsx)(d,{...o?{fallback:l}:{},children:c})}return d.displayName="LoadableComponent",d}},70703,(e,t,n)=>{"use strict";Object.defineProperty(n,"__esModule",{value:!0}),Object.defineProperty(n,"default",{enumerable:!0,get:function(){return s}});let r=e.r(55682)._(e.r(69093));function s(e,t){var n;let s={};"function"==typeof e&&(s.loader=e);let i={...s,...t};return(0,r.default)({...i,modules:null==(n=i.loadableGenerated)?void 0:n.modules})}("function"==typeof n.default||"object"==typeof n.default&&null!==n.default)&&void 0===n.default.__esModule&&(Object.defineProperty(n.default,"__esModule",{value:!0}),Object.assign(n.default,n),t.exports=n.default)},82787,e=>{"use strict";e.s(["MANAGE_DEFAULT_HREF",()=>p,"getBridgeSidebarManageRoutes",()=>f,"getManageRoute",()=>g,"isManageRouteEnabled",()=>m,"isManageSideNavPath",()=>h],82787);var t=e.i(70703),n=e.i(71645),r=e.i(18050),s=e.i(87968),i=e.i(75157);function a(e){let{className:t}=e;return(0,r.jsxs)("div",{className:(0,i.cn)("flex min-h-[40vh] flex-1 items-center justify-center gap-2 text-zinc-500",t),children:[(0,r.jsx)(s.Spinner,{})," 加载中"]})}function l(){return(0,r.jsx)("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col items-center justify-center text-[var(--ds-muted)]",children:"即将上线"})}var o=e.i(97249);function u(e){return(0,t.default)(e,{loading:()=>(0,n.createElement)(a)})}let d=[{key:"task",slug:"task",label:"定时任务",title:"定时任务",description:"管理计划执行的任务与触发记录。",chrome:"feature",icon:"Task",enabled:!0,headerIcon:"Calendar",visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(94065).then(e=>({default:e.TaskView})))},{key:"mcp",slug:"mcp",label:"MCP",title:"MCP管理",description:"管理外部工具与数据源。可以导入、编辑、移除或禁用 MCP 服务。",chrome:"feature",icon:"Mcp",headerIcon:"Mcp",enabled:!0,visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(72234).then(e=>({default:e.McpManageView})))},{key:"tools",slug:"tools",label:"Tools",title:"Tools管理",description:"管理当前 Agent 已挂载的Tools列表",chrome:"feature",icon:"Tool",headerIcon:"Tool",enabled:!0,visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(58332).then(e=>({default:e.ToolsManageView})))},{key:"skills",slug:"skills",label:"Skills",title:"Skills管理",description:"管理当前 Agent 已挂载的Skill",chrome:"feature",icon:"Skill",enabled:!0,headerIcon:"Skill",visibleInNav:!1,visibleInBridgeSidebar:!0,Component:u(()=>e.A(48583).then(e=>({default:e.SkillsManageView})))},{key:"teams",slug:"teams",label:"Agent / Teams",title:"Agent / Teams 管理",description:"管理 Agent / Teams 团队与协作编排。",chrome:"feature",icon:"Teams",enabled:!0,visibleInNav:!1,headerIcon:"Agent2",visibleInBridgeSidebar:!0,Component:u(()=>e.A(2578).then(e=>({default:e.TeamsView})))},{key:"library",slug:"library",label:"Workspace",title:"Workspace",description:"管理当前 Agent 的Workspace",chrome:"feature",icon:"Library",enabled:!0,visibleInNav:!1,headerIcon:"Library",visibleInBridgeSidebar:!0,Component:u(()=>e.A(14928).then(e=>({default:e.LibraryView})))},{key:"env",slug:"env",label:"服务商",title:"服务商",description:"管理 API 服务商以访问模型。",chrome:"side-nav",icon:"Server",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(1861).then(e=>({default:e.EnvManageView})))},{key:"git",slug:"git",label:"Git 设置",title:"Git 设置",description:"管理 Git 仓库与版本控制配置。",chrome:"side-nav",icon:"Brackets",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(83330).then(e=>({default:e.GitManageView})))},{key:"geelib",slug:"geelib",label:"Geelib 设置",title:"Geelib 设置",description:"管理极库云集成与任务同步配置。",chrome:"side-nav",icon:"Detail",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(94540).then(e=>({default:e.GeelibManageView})))},{key:"im",slug:"im",label:"IM 设置",title:"IM 设置",description:"管理即时通讯与消息通知配置。",chrome:"side-nav",icon:"MessageCircleQuestion",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(70287).then(e=>({default:e.ImManageView})))},{key:"system",slug:"system",label:"系统设置",title:"系统设置",description:"管理系统级参数与运行配置。",chrome:"side-nav",icon:"Settings",enabled:!0,visibleInNav:!0,Component:u(()=>e.A(21363).then(e=>({default:e.SystemManageView})))},{key:"permissions",slug:"permissions",label:"权限",title:"权限",description:"管理平台访问权限与角色策略。",chrome:"side-nav",enabled:!1,visibleInNav:!1,Component:l},{key:"general",slug:"general",label:"通用",title:"通用",description:"平台通用配置与偏好设置。",chrome:"side-nav",enabled:!1,visibleInNav:!1,Component:l},{key:"about",slug:"about",label:"关于",title:"关于",description:"版本信息与平台说明。",chrome:"side-nav",enabled:!0,visibleInNav:!1,Component:l}].map(e=>{var t,n;let{children:r,...s}=e;return{...s,href:(0,o.buildSettingsHref)(e.slug),...r?{children:(t=e.slug,n=e.chrome,r.map(e=>{var r,s;let i="".concat(t,"/").concat(e.slug);return{...e,slug:i,href:(0,o.buildSettingsHref)(i),chrome:null!=(r=e.chrome)?r:n,enabled:null==(s=e.enabled)||s,visibleInNav:!1}}))}:{}}});function c(e){return e.Component}let p=function(){var e,t,n,r,s,i;let a=null!=(n=null!=(t=null!=(e=d.find(e=>e.enabled&&e.visibleInNav&&"side-nav"===e.chrome))?e:d.find(e=>e.enabled&&"side-nav"===e.chrome))?t:d.find(e=>"side-nav"===e.chrome))?n:d[0],l=null!=(i=null==(r=a.children)?void 0:r.find(e=>e.enabled))?i:null==(s=a.children)?void 0:s[0];if(l)return l;if(c(a))return a;let o=d.find(e=>c(e));return o||d.flatMap(e=>{var t;return null!=(t=e.children)?t:[]})[0]}().href;function g(e){return d.find(t=>t.key===e)}function f(){return d.filter(e=>e.enabled&&!0===e.visibleInBridgeSidebar&&void 0!==e.icon).map(e=>{let{key:t,label:n,href:r,icon:s,headerIcon:i}=e;return{key:t,label:n,href:r,icon:s,headerIcon:null!=i?i:s}})}function m(e){var t;return(null===(t=(0,o.getSettingsRouteByPathname)(e,function(){let e=[];for(let n of d){var t;c(n)&&e.push(n),(null==(t=n.children)?void 0:t.length)&&e.push(...n.children)}return e}()))||void 0===t?void 0:t.enabled)!==!1}function h(e){if(!e)return!1;let t=d.filter(e=>"side-nav"===e.chrome);return(0,o.isSettingsRoutePath)(e,t)}},21199,41143,e=>{"use strict";e.s(["WorkspaceShell",()=>Z],21199);var t=e.i(18050),n=e.i(71645),r=e.i(18566),s=e.i(65934),i=e.i(36845),a=e.i(20090);let l={EVENT:{SESSION_META:"session.meta",SESSION_READY:"session.ready",SESSION_ERROR:"session.error",QUERY_PROGRESS:"query.progress",CONVERSATION_DELTA:"conversation.delta",RUN_LIFECYCLE:"run.lifecycle",HISTORY_REPLAY:"history.replay",TURN_TERMINAL:"turn.terminal",PERMISSION_REQUEST:"permission.request"}};e.s(["SCHEDULE_TOOL_NAME",()=>o,"buildScheduledTaskIndex",()=>g,"parseScheduleToolResult",()=>p,"partitionScheduledSegments",()=>f,"retainScheduledTriggerFlag",()=>d,"withScheduledTriggerMeta",()=>u],41143);let o="ScheduleTool";function u(e,t,n){return e&&"object"==typeof e&&(t||n)?{...e,...t?{__scheduledTrigger:!0}:{},...n?{__turnId:n}:{}}:e}function d(e,t){if(!e||"object"!=typeof e)return t;let n=e.data,r=!!n&&"object"==typeof n&&!0===n.scheduledTrigger,s=!0===e.scheduledTrigger||!0===e.__scheduledTrigger,i="string"==typeof e.turnId?e.turnId:"",a="string"==typeof e.__turnId?e.__turnId:"";return r||s||i||a?{...t,...r||s?{__scheduledTrigger:!0}:{},...i||a?{__turnId:i||a}:{}}:t}function c(e){return!!e&&"object"==typeof e&&!0===e.__scheduledTrigger}function p(e,t){if("string"==typeof e)try{let t=JSON.parse(e);if(t&&"object"==typeof t)return t}catch(e){}if(e&&"object"==typeof e)return e;if(t&&"object"==typeof t){let e=t.toolUseResult;if(e&&"object"==typeof e)return e}return null}function g(e){let t=new Map,n=new Map;for(let c of e){let e=v(c);for(let m of function(e){if(!e||"object"!=typeof e)return[];let t=e.message,n=null==t?void 0:t.content;return Array.isArray(n)?n.filter(e=>!!e&&"object"==typeof e):[]}(c)){var r,s,i,a,l,u,d,g,f,b;if("tool_use"===m.type&&m.name===o){let t="string"==typeof m.id?m.id:"";if(!t)continue;let r=(b=m.input)&&"object"==typeof b?b:{},s=function(e){if(null==e||""===e)return;let t=Number(e);return Number.isFinite(t)?t:void 0}(r.delayMinutes);n.set(t,{toolUseId:t,id:r.id,prompt:null!=(i=r.prompt)?i:"",delayMinutes:s,createdAt:e,status:"cancel"===r.action?"cancelled":"scheduled"});continue}if("tool_result"!==m.type||"string"!=typeof m.tool_use_id)continue;let h=n.get(m.tool_use_id);if(!h)continue;let v=p(m.content,c);if(!v){n.delete(m.tool_use_id);continue}let S=v.id||h.id||"pending-".concat(m.tool_use_id),y={id:S,prompt:null!=(a=h.prompt)?a:"",fireAt:null!=(u=null!=(l=null==(r=v.scheduleClock)?void 0:r.utcIso)?l:null==(s=v.scheduleClock)?void 0:s.localDateTime)?u:"",createdAt:null!=(d=h.createdAt)?d:"",delayMinutes:null!=(g=v.delayMinutes)?g:h.delayMinutes,cron:v.cron,recurring:v.recurring,status:v.error?"failed":null!=(f=h.status)?f:"scheduled"};t.set(S,y),n.delete(m.tool_use_id)}}for(let n of e){if(!c(n)||"user"!==m(n))continue;let e=h(n);if(e){for(let r of t.values())if(r.prompt===e&&"scheduled"===r.status){r.status="fired",r.firedTurnId=function(e){if(!e||"object"!=typeof e)return"";let t=e.__turnId;return"string"==typeof t?t:""}(n);break}}}return t}function f(e,t){let n=new Map,r=new Set,s=0;for(;s<e.length;){var i;if(!c(e[s])){s+=1;continue}let a=s,l=[];for(;s<e.length&&c(e[s]);)l.push(e[s]),s+=1;let o=s-1,u=null!=(i=l.filter(e=>"user"===m(e)).map(e=>h(e)).find(e=>e.trim().length>0))?i:"",d=v(l[0]),p=l.filter(e=>"user"!==m(e)),g=function(e,t){if(e&&t.trim()){for(let n of e.values())if(n.prompt===t)return n.id}}(t,u);n.set(a,{kind:"scheduledTurn",startIndex:a,endIndex:o,dispatchedPrompt:u,triggeredAt:d,taskId:g,assistantMessages:p});for(let e=a+1;e<=o;e+=1)r.add(e)}return{scheduledStarts:n,consumed:r}}function m(e){if(!e||"object"!=typeof e)return"";let t=e.type;if("string"==typeof t)return t;let n=e.message;return"string"==typeof(null==n?void 0:n.role)?n.role:""}function h(e){if(!e||"object"!=typeof e)return"";let t=e.message,n=null==t?void 0:t.content;return"string"==typeof n?n:Array.isArray(n)?n.map(e=>e&&"object"==typeof e?"text"===e.type&&"string"==typeof e.text?e.text:"markdown"===e.type&&"string"==typeof e.content?e.content:"":"").filter(Boolean).join("\n").trim():""}function v(e){var t;if(!e||"object"!=typeof e)return"";let n=e.message,r=n&&"object"==typeof n?n.timestamp:void 0,s=null!=(t=null!=r?r:e.timestamp)?t:e.ts;return"string"==typeof s?s:""}var b=e.i(70074),S=e.i(55227);function y(e){let t=Number(e);return Number.isFinite(t)?Math.max(0,Math.floor(t)):0}function x(e){let t=e&&"object"==typeof e?Number(e.protocolVersion):NaN;return"object"==typeof e&&null!==e&&"protocolVersion"in e&&Number.isFinite(t)&&3===t&&"string"==typeof e.type}let A=new Map;function j(e){if(!e||"object"!=typeof e)return"";if(("string"==typeof e.type?e.type:"unknown")===l.EVENT.TURN_TERMINAL){let t="string"==typeof e.resultText?e.resultText:"",n="string"==typeof e.reason?e.reason:"";return"resolved"==("resolved"===e.status?"resolved":"failed")?t:"turn.terminal failed: ".concat(n||"unknown")}try{return"```json\n".concat(JSON.stringify(e,null,2).slice(0,8e3),"\n```")}catch(t){return String(e)}}var N=e.i(87243),k=e.i(50711);async function I(e,t,n){var r;let i=String(e||"").trim();if(!i)return!1;let a=s.useAppStore.getState();if(i===(a.agentId.trim()||"qihoo"))return!1;let l=(null==n||null==(r=n.displayName)?void 0:r.trim())||i;a.startDraftSession(),a.resetAgentConfig(),a.setAgentId(i),a.setCurrentWorkspaceAgent({id:i,displayName:l});try{await t.loadSessions()}catch(e){}t.loadAgentConfig();let o=s.useAppStore.getState().sessionId.trim();return t.preferReconnect?t.reconnect():t.switchSession(o,i),!0}var w=e.i(92413),C=e.i(55146),T=e.i(72064),E=e.i(46798),R=e.i(19455),_=e.i(85570),M=e.i(97249),P=e.i(75157),L=e.i(8279),O=e.i(52727),W=e.i(18253),D=e.i(87968);function z(e){let{collapsed:r,onGoToSettings:i}=e,{push:a}=(0,W.useGuardedAppNavigation)(),l=(0,s.useAppStore)(e=>e.currentWorkspaceAgent),o=(0,s.useAppStore)(e=>e.agentId),u=(0,s.useAppStore)(e=>e.wsUrl),d=(0,s.useAppStore)(e=>e.apiBase),c=(0,s.useAppStore)(e=>e.setCurrentWorkspaceAgent),{switchWorkspaceAgent:p}=(0,_.useWorkspaceRuntime)(),g=o.trim()||"qihoo",f=(null==l?void 0:l.id)===g&&l.displayName.trim()||g,m=(0,L.initialsFromLabel)(f),[h,v]=(0,n.useState)(!1),[b,S]=(0,n.useState)([]),[y,x]=(0,n.useState)(!1),[A,j]=(0,n.useState)(null),N=(0,n.useRef)(null),k=(0,n.useCallback)(()=>{N.current&&(clearTimeout(N.current),N.current=null)},[]),I=(0,n.useCallback)(()=>{k(),v(!0)},[k]),w=(0,n.useCallback)(()=>{k(),N.current=setTimeout(()=>{v(!1),N.current=null},120)},[k]),C=(0,n.useCallback)(()=>{v(!1),null==i||i()},[i]),z=(0,n.useCallback)(async e=>{let t=e.id.trim();v(!1),t&&t!==g&&await p(t,e.displayName)&&a((0,M.buildAppNavHref)("/",{ensureAgent:!0,agent:t,preserveSessionId:!1}))},[g,a,p]);(0,n.useEffect)(()=>{if(!h)return;let e=!1;return x(!0),j(null),S([]),(0,O.listAgents)(u,d).then(t=>{e||S(t)}).catch(t=>{e||j(String(t))}).finally(()=>{e||x(!1)}),()=>{e=!0}},[h,u,d]),(0,n.useEffect)(()=>{if(!b.length)return;let e=b.find(e=>e.id===g);e&&((null==l?void 0:l.id)!==e.id||l.displayName!==e.displayName)&&c(e)},[b,g,l,c]),(0,n.useEffect)(()=>()=>{N.current&&clearTimeout(N.current)},[]);let B=(0,t.jsx)(E.TooltipProvider,{delayDuration:150,side:r?"right":void 0,children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(R.Button,{type:"button",variant:"plain",size:r?"icon":"icon-sm",className:(0,P.cn)(r?"sidebar-collapsed-icon-btn !rounded-[10px] text-zinc-700":"text-[var(--ds-muted)] hover:bg-[var(--ds-item-hover)] focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)]"),"aria-label":"设置",onClick:C,children:(0,t.jsx)(T.default,{name:"Settings",size:16,strokeWidth:1.75,className:(0,P.cn)("shrink-0",r&&"text-zinc-700")})})}),(0,t.jsx)(E.TooltipContent,{side:r?"right":"top",children:(0,t.jsx)("p",{children:"设置"})})]})});return(0,t.jsxs)("div",{className:(0,P.cn)("shrink-0 border-t border-solid border-[var(--ds-border)] transition",r?"flex w-full flex-col items-center gap-1 p-[1rem_.75rem]":"flex items-center gap-2 p-[1rem_.75rem]"),onClick:r?e=>e.stopPropagation():void 0,children:[r?B:null,(0,t.jsxs)("div",{className:(0,P.cn)("relative min-w-0",!r&&"flex-1"),onMouseEnter:I,onMouseLeave:w,children:[(0,t.jsxs)("div",{className:(0,P.cn)("flex min-w-0 cursor-pointer items-center gap-2 rounded-lg px-0.5 py-0.5",r&&"w-full justify-center"),children:[(0,t.jsx)("span",{className:"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full text-xs font-semibold text-white",style:{background:"var(--avatar-bg)"},children:m}),r?null:(0,t.jsx)("span",{className:"min-w-0 truncate text-[var(--ds-text)]",children:f})]}),h?(0,t.jsx)("div",{className:"absolute bottom-full left-0 z-50 pb-2 shadow-[var(--shadow-float)]",onMouseEnter:I,onMouseLeave:w,children:(0,t.jsx)("div",{className:(0,P.cn)("flex max-h-[300px] w-[260px] max-w-[min(100vw-24px,260px)] flex-col overflow-hidden rounded-[var(--ds-radius-sm)] border border-solid border-[var(--ds-border)] bg-[var(--ds-bg)]","shadow-[var(--shadow-float)]"),children:(0,t.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-1.5",role:"listbox","aria-label":"切换 Agent",children:y?(0,t.jsxs)("div",{className:"flex items-center justify-center gap-2 px-2 py-3 text-[var(--ds-muted)]",children:[(0,t.jsx)(D.Spinner,{}),"加载中…"]}):A?(0,t.jsxs)("div",{className:"px-2 py-3 text-red-600",children:["加载失败: ",A]}):0===b.length?(0,t.jsx)("div",{className:"px-2 py-3 text-[var(--ds-muted)]",children:"暂无 agent"}):b.map(e=>{let n=e.id===g,r=(0,L.initialsFromLabel)(e.displayName);return(0,t.jsxs)("button",{type:"button",role:"option",className:"flex w-full cursor-pointer items-center gap-2 rounded-xl border-0 bg-transparent px-2 py-2 text-left hover:bg-[var(--ds-item-hover)] focus-visible:outline-none","aria-selected":n,onClick:()=>z(e),children:[(0,t.jsx)("span",{className:"inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-xs font-semibold text-white",style:{background:"var(--avatar-bg)"},children:r}),(0,t.jsxs)("span",{className:"min-w-0 flex-1 leading-tight",children:[(0,t.jsx)("span",{className:"block truncate text-[var(--ds-text)]",children:e.displayName}),e.displayName!==e.id?(0,t.jsx)("span",{className:"block truncate text-xs text-[var(--ds-muted)]",children:e.id}):null]}),n?(0,t.jsx)("span",{className:"shrink-0","aria-label":"当前 Agent",children:(0,t.jsx)(T.default,{name:"Check",size:16,className:"text-[var(--ds-accent)]"})}):null]},e.id)})})})}):null]}),r?null:B]})}var B=e.i(82787);let F="bridge-sidebar-collapsed",U=[];function V(e){let{onNewSession:i,onSelectSession:a,deleteSessionById:l}=e,{push:o,router:u}=(0,W.useGuardedAppNavigation)(),d=(0,r.usePathname)(),c=(0,s.useAppStore)(e=>e.lastSessions),p=(0,s.useAppStore)(e=>e.sessionId),g=(0,s.useAppStore)(e=>{var t;return null!=(t=e.messagesByRun.main)?t:U}),f=(0,s.useAppStore)(e=>e.pendingPrompt),m=(0,s.useAppStore)(e=>e.turnRunning),h=(0,n.useMemo)(()=>{var e;if(!p||c.some(e=>e.sessionId===p))return c;let t=g.find(e=>{var t;return(null==(t=e.message)?void 0:t.type)==="user"});if(!t&&!f)return c;let n="新对话";return f?n=f:"string"==typeof(null==t||null==(e=t.message)?void 0:e.message)&&(n=t.message.message),[{sessionId:p,summary:n,lastModified:Date.now(),createdAt:Date.now(),running:m},...c]},[c,p,g,f,m]),v=(0,s.useAppStore)(e=>e.brand),b=(0,s.useAppStore)(e=>e.agentId),[S,y]=(0,n.useState)(!1),x=(0,n.useRef)(!1),[A,j]=(0,n.useState)(null),[N,k]=(0,n.useState)(!0),I=(0,n.useMemo)(()=>(0,B.getBridgeSidebarManageRoutes)(),[]),R=(0,n.useCallback)((e,t)=>(0,M.buildAppNavHref)(e,{ensureAgent:null==t?void 0:t.ensureAgent,agent:b,preserveSessionId:"/"===e&&!(null==t?void 0:t.clearSessionId),sessionId:null==t?void 0:t.sessionId}),[b]),_=(0,n.useCallback)(e=>{let t=(0,M.normalizeAppPathname)(d),n=(0,M.normalizeAppPathname)(e);return t===n||t.startsWith("".concat(n,"/"))},[d]),P=(0,n.useCallback)(e=>{o(R(e,{ensureAgent:!0}))},[o,R]);(0,n.useEffect)(()=>{let e,t,n=[...["env","add-account"].flatMap(e=>{var t;let n=null==(t=(0,B.getManageRoute)(e))?void 0:t.href;return n?[R(n,{ensureAgent:!0})]:[]}),...I.map(e=>R(e.href,{ensureAgent:!0}))],r=()=>{for(let e of n)try{u.prefetch(e)}catch(e){}};return"requestIdleCallback"in window?e=window.requestIdleCallback(r,{timeout:2500}):t=setTimeout(r,200),()=>{void 0!==e&&window.cancelIdleCallback(e),void 0!==t&&clearTimeout(t)}},[u,R,I]),(0,n.useEffect)(()=>{try{let e=window.localStorage.getItem(F);"true"===e&&y(!0)}catch(e){}finally{x.current=!0}},[]),(0,n.useEffect)(()=>{if(x.current)try{window.localStorage.setItem(F,String(S))}catch(e){}},[S]),(0,n.useEffect)(()=>{if(!A)return;let e=e=>{let t=e.target;!(!(t instanceof Element)||t.closest("[data-session-menu-wrap]"))&&(t.closest('[data-slot="dropdown-menu-content"]')||j(null))};return document.addEventListener("pointerdown",e,!0),()=>document.removeEventListener("pointerdown",e,!0)},[A]);let L=(0,n.useCallback)(()=>{o(R(B.MANAGE_DEFAULT_HREF,{ensureAgent:!0}))},[o,R]);return(0,t.jsx)("aside",{className:"sidebar h-dvh max-h-dvh min-h-0 self-start overflow-hidden ".concat(S?"is-collapsed":""),"data-region":"sidebar-panels",onClick:()=>{S&&y(!1)},children:S?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col items-center gap-[10px] overflow-y-auto overscroll-contain pt-3",children:(0,t.jsxs)(E.TooltipProvider,{side:"right",children:[(0,t.jsx)("div",{className:"group relative flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center",onClick:e=>e.stopPropagation(),children:(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center transition-opacity group-hover:pointer-events-auto group-hover:opacity-100",children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-collapsed-icon-btn",title:"展开侧边栏","aria-label":"展开侧边栏",onClick:e=>{e.preventDefault(),e.stopPropagation(),y(!1)},children:(0,t.jsx)(T.default,{name:"Layout",size:17,color:"#8f8f8f"})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:"展开侧边栏"})})]})})}),(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-collapsed-icon-btn",title:"新聊天","aria-label":"新聊天",onClick:e=>{e.preventDefault(),e.stopPropagation(),i(),o(R("/",{clearSessionId:!0}))},children:(0,t.jsx)(T.default,{name:"Add",size:16,className:"text-zinc-700"})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:"新聊天"})})]}),I.map(e=>{let n=_(e.href);return(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-collapsed-icon-btn ".concat(n?"bg-[var(--ds-item-active)] text-[var(--ds-accent)]":""),title:e.label,"aria-label":e.label,"aria-current":n?"page":void 0,onClick:t=>{t.preventDefault(),t.stopPropagation(),P(e.href)},children:(0,t.jsx)(T.default,{name:e.icon,size:16,className:n?"text-[var(--ds-accent)]":"text-zinc-700",strokeWidth:1.2})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:e.label})})]},e.key)})]})}),(0,t.jsx)("div",{className:"w-full shrink-0",onClick:e=>e.stopPropagation(),children:(0,t.jsx)(z,{collapsed:!0,onGoToSettings:L})})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"sidebar-brand",children:(0,t.jsxs)("div",{className:"sidebar-brand-title-row flex items-center justify-between",children:[(0,t.jsx)("div",{className:"logo flex min-w-0 items-center gap-2",children:(0,t.jsx)("span",{className:"truncate text-zinc-900",children:v})}),(0,t.jsx)(E.TooltipProvider,{side:"right",children:(0,t.jsxs)(E.Tooltip,{children:[(0,t.jsx)(E.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button",className:"sidebar-icon-btn",title:"收起侧边栏","aria-label":"收起侧边栏",onClick:e=>{e.preventDefault(),e.stopPropagation(),y(!0)},children:(0,t.jsx)(T.default,{name:"Layout",size:17,color:"#8f8f8f"})})}),(0,t.jsx)(E.TooltipContent,{children:(0,t.jsx)("p",{children:"收起侧边栏"})})]})})]})}),(0,t.jsx)("div",{className:"new-chat",children:(0,t.jsxs)("div",{className:"mb-4 ml-2 mr-2 mt-2 flex cursor-pointer items-center gap-2.5 rounded-2xl px-2 py-2 text-zinc-700 transition-colors hover:bg-white/70",title:"开启新对话","aria-label":"开启新对话",onClick:e=>{e.preventDefault(),i(),o(R("/",{clearSessionId:!0}))},children:[(0,t.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[var(--ds-item-active)] text-[var(--ds-accent)]","aria-hidden":!0,children:(0,t.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",children:(0,t.jsx)("path",{d:"M12 5v14M5 12h14"})})}),(0,t.jsx)("span",{className:"min-w-0 font-medium",children:"新会话"})]})}),(0,t.jsxs)("div",{className:"sidebar-scroll-area",children:[(0,t.jsx)("div",{className:"sidebar-drawers sidebar-drawers--nav px-[10px]",children:I.map(e=>{let n=_(e.href);return(0,t.jsxs)("div",{className:"m-[.45rem_0_0] flex cursor-pointer items-center rounded-[var(--ds-radius-sm)] p-[.45rem_.75rem] ".concat(n?"bg-[var(--ds-item-active)] text-[var(--ds-accent)]":"hover:bg-[var(--ds-item-active)] hover:text-zinc-900"),role:"button",tabIndex:0,"aria-current":n?"page":void 0,onClick:t=>{t.preventDefault(),t.stopPropagation(),P(e.href)},onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&P(e.href)},children:[(0,t.jsx)(T.default,{name:e.icon,size:16,className:"mr-3 text-zinc-700",strokeWidth:1.2}),(0,t.jsx)("span",{className:"text-zinc-900",children:e.label})]},e.key)})}),(0,t.jsx)("div",{className:"sidebar-drawers sidebar-drawers--sessions ".concat(N?"is-open":"is-closed"),children:(0,t.jsxs)("div",{className:"sidebar-drawer m-[.35rem_.35rem_0] mt-4",children:[(0,t.jsxs)("button",{type:"button",className:"flex w-full cursor-pointer items-center !border-none !bg-transparent p-[.45rem_.75rem] text-left text-[12px] font-[600] text-zinc-400 hover:text-zinc-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)] focus-visible:ring-offset-2","aria-expanded":N,"aria-controls":"sessionList","aria-label":N?"收起历史会话列表":"展开历史会话列表",onClick:()=>{k(e=>!e)},children:["历史会话",N?(0,t.jsx)(T.default,{name:"ChevronDown",size:12,strokeWidth:1,className:"ml-1 shrink-0 text-[var(--ds-muted)]"}):(0,t.jsx)(T.default,{name:"ChevronRight",size:12,strokeWidth:1,className:"ml-1 shrink-0 text-[var(--ds-muted)]"})]}),N?(0,t.jsx)("div",{className:"sidebar-drawer-body sidebar-drawer-body--sessions",children:(0,t.jsx)("div",{id:"sessionList",children:h.length?(0,w.groupSessionsByMonth)(h).map(e=>(0,t.jsx)("div",{children:e.items.map(e=>{let n=e.sessionId===p.trim(),r=!0===e.running||n&&m,s="".concat(e.sessionId).concat(r?"(运行中)":"");return(0,t.jsxs)("div",{className:"sidebar-drawer-item session-item ".concat(n?"active":""),title:s,children:[(0,t.jsx)("button",{type:"button",className:"session-item-main",onClick:t=>{t.stopPropagation(),a(e.sessionId),o(R("/",{sessionId:e.sessionId}))},children:(0,t.jsxs)("div",{className:"session-item-title",children:[r?(0,t.jsx)("span",{className:"session-running-badge",children:"运行中"}):null,(0,t.jsx)("span",{children:(0,w.sessionTitle)(e)})]})}),(0,t.jsx)("div",{className:"session-menu-wrap","data-session-menu-wrap":"",onClick:t=>{t.stopPropagation(),t.target===t.currentTarget&&j(t=>t===e.sessionId?null:e.sessionId)},children:(0,t.jsxs)(C.DropdownMenu,{open:A===e.sessionId,onOpenChange:e=>{e||j(null)},children:[(0,t.jsx)(C.DropdownMenuTrigger,{type:"button",className:"session-menu-btn","aria-label":"更多",onClick:t=>{t.stopPropagation(),j(t=>t===e.sessionId?null:e.sessionId)},children:(0,t.jsx)(T.default,{name:"More",size:16,className:"text-[var(--ds-muted)]"})}),(0,t.jsxs)(C.DropdownMenuContent,{align:"end",side:"bottom",sideOffset:6,className:"w-[172px] min-w-[172px] rounded-[var(--ds-radius-sm)] border border-[var(--ds-border)] bg-[var(--ds-bg)] p-1.5",children:[(0,t.jsxs)(C.DropdownMenuItem,{className:"h-9 rounded-xl px-2.5 text-[var(--ds-text)] hover:bg-[var(--ds-item-active)] focus:bg-[var(--ds-item-hover)]",onClick:()=>{navigator.clipboard.writeText(e.sessionId)},children:[(0,t.jsx)(T.default,{name:"Clipboard",size:16,className:"text-[var(--ds-muted)]"}),"复制完整 ID"]}),(0,t.jsx)(C.DropdownMenuSeparator,{className:"mx-1 my-1 bg-[var(--ds-border)]"}),(0,t.jsxs)(C.DropdownMenuItem,{variant:"destructive",className:"h-9 rounded-xl px-2.5 hover:bg-[#fff1f1] focus:bg-[#fff1f1]",onClick:()=>{(async()=>{let t=e.sessionId===p.trim(),n=await l(e.sessionId);t&&n&&o(R("/",{clearSessionId:!0}))})()},children:[(0,t.jsx)(T.default,{name:"Trash2",size:16}),"删除会话"]})]})]})})]},e.sessionId)})},e.key)):(0,t.jsx)("p",{className:"sidebar-drawer-empty",children:"(暂无会话)"})})}):null]})})]}),(0,t.jsx)(z,{collapsed:!1,onGoToSettings:L})]})})}var G=e.i(61196);function q(){let e=(0,G.useStageThreadFlyoutStore)(e=>e.open),r=(0,G.useStageThreadFlyoutStore)(e=>e.title),s=(0,G.useStageThreadFlyoutStore)(e=>e.content),i=(0,G.useStageThreadFlyoutStore)(e=>e.width),a=(0,G.useStageThreadFlyoutStore)(e=>e.hideHeader),l=(0,G.useStageThreadFlyoutStore)(e=>e.bodyClassName),o=(0,G.useStageThreadFlyoutStore)(e=>e.requestCloseFlyout),[u,d]=(0,n.useState)(i),[c,p]=(0,n.useState)(!1);(0,n.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&o()};return window.addEventListener("keydown",t),()=>{window.removeEventListener("keydown",t)}},[e,o]),(0,n.useEffect)(()=>{e&&d((0,G.clampStageThreadFlyoutWidth)(i))},[e,i]);let g=(0,n.useCallback)(e=>{e.preventDefault();let t=e.currentTarget;t.setPointerCapture(e.pointerId),p(!0);let n=e.clientX,r=e=>{let t=n-e.clientX;d((0,G.clampStageThreadFlyoutWidth)(u+t))},s=()=>{p(!1),t.removeEventListener("pointermove",r),t.removeEventListener("pointerup",s),t.removeEventListener("pointercancel",s),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",t.addEventListener("pointermove",r),t.addEventListener("pointerup",s),t.addEventListener("pointercancel",s)},[u]);return(0,t.jsx)("aside",{className:(0,P.cn)("stage-thread-flyout",e&&"is-open",c&&"is-resizing"),"data-region":"stage-thread-flyout","aria-hidden":!e,style:{"--stage-flyout-width":"".concat(u,"px")},children:e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"stage-thread-flyout-resize",role:"separator","aria-orientation":"vertical","aria-valuenow":u,"aria-valuemin":G.STAGE_THREAD_FLYOUT_MIN_WIDTH,"aria-valuemax":G.STAGE_THREAD_FLYOUT_MAX_WIDTH,"aria-label":"调整面板宽度",onPointerDown:g,children:(0,t.jsx)("span",{className:"stage-thread-flyout-resize-bar","aria-hidden":!0})}),(0,t.jsxs)("div",{className:"stage-thread-flyout-inner",children:[a?null:(0,t.jsxs)("header",{className:"stage-thread-flyout-header",children:[r?(0,t.jsx)("h2",{className:"stage-thread-flyout-title",children:r}):(0,t.jsx)("span",{className:"stage-thread-flyout-title","aria-hidden":!0}),(0,t.jsx)(R.Button,{type:"button",variant:"plain-outline",size:"icon-sm",className:"stage-thread-flyout-close shrink-0 cursor-pointer !pl-0 !pr-0","aria-label":"关闭",onClick:()=>void o(),children:(0,t.jsx)(T.default,{name:"X",size:16})})]}),(0,t.jsx)("div",{className:(0,P.cn)("stage-thread-flyout-body",l),children:s})]})]}):null})}var H=e.i(94606);function Q(){let e=(0,r.usePathname)(),t=(0,r.useRouter)(),s=(0,n.useRef)(null),i=(0,n.useRef)(!1);return(0,n.useEffect)(()=>{if(i.current)return;let n=s.current;if(s.current=e,!n||n===e)return;let{open:r,guardRoute:a,isDirty:l,closeFlyout:o}=G.useStageThreadFlyoutStore.getState();if(r&&(0,H.isLeavingFlyoutGuardRoute)(a,n,e)){if(!(0,H.shouldConfirmFlyoutRouteChange)(a,n,e,l))return void o();i.current=!0,t.replace(n),(0,H.confirmDiscardFlyoutChanges)().then(r=>{i.current=!1,r?(o(),t.push(e),s.current=e):s.current=n})}},[e,t]),null}function Y(e){let{children:n,mainClassName:r,mainRegion:s,sidebar:i}=e;return(0,t.jsxs)("div",{className:"app","data-ui-layer":"presentation","data-topology":"local-first",children:[(0,t.jsx)(V,{onNewSession:i.onNewSession,onSelectSession:i.onSelectSession,onSaveAgentConfig:i.onSaveAgentConfig,deleteSessionById:i.deleteSessionById}),(0,t.jsx)("main",{className:(0,P.cn)("main overflow-x-auto",r),"data-region":s,children:(0,t.jsx)("div",{className:"main-content",children:n})}),(0,t.jsx)(q,{}),(0,t.jsx)(Q,{})]})}function J(){let e=(0,s.useAppStore)(e=>e.wsUrl),t=(0,s.useAppStore)(e=>e.apiBase),r=(0,s.useAppStore)(e=>e.agentId),a=(0,s.useAppStore)(e=>e.agentSelectionResolved),l=(0,s.useAppStore)(e=>e.setWsUrl),o=(0,s.useAppStore)(e=>e.setAgentId),{loadSessions:u,loadAgentConfig:d}=(0,N.useSession)();return(0,n.useLayoutEffect)(()=>{s.useAppStore.getState().wsUrl.trim()||l((0,i.defaultWsUrl)())},[l]),(0,n.useLayoutEffect)(()=>{(0,M.syncRuntimeAgentWithUrl)(s.useAppStore.getState().agentId,o)},[r,o]),(0,n.useEffect)(()=>{if(!e.trim())return;let t=!1;return(async()=>{let e=s.useAppStore.getState();e.setAgentSelectionResolved(!1),e.setAgentSelectionError(null);let n=(0,M.readAgentFromLocationSearch)().trim()||e.agentId.trim();try{var r;let s=await (0,O.listAgents)(e.wsUrl,e.apiBase);if(t)return;if(!s.length){e.setAgentSelectionError("暂无可用 Agent"),e.setAgentSelectionResolved(!1);return}let i=null!=(r=s.find(e=>e.id===n))?r:s[0];if(!i){e.setAgentSelectionError("暂无可用 Agent"),e.setAgentSelectionResolved(!1);return}e.agentId.trim()!==i.id&&e.setAgentId(i.id),e.setCurrentWorkspaceAgent(i),(0,M.replaceRuntimeAgentInUrl)(i.id),e.setAgentSelectionResolved(!0)}catch(n){if(t)return;e.setAgentSelectionError(n instanceof Error?n.message:String(n)),e.setAgentSelectionResolved(!1)}})(),()=>{t=!0}},[e,t,r]),(0,n.useEffect)(()=>{a&&(u(),d())},[a,r,e,t,u,d]),null}function X(){let e=(0,r.useSearchParams)(),t=(0,s.useAppStore)(e=>e.setAgentId),i=(0,s.useAppStore)(e=>e.setAgentSelectionResolved);return(0,n.useLayoutEffect)(()=>{var n;let r=null==(n=e.get("agent"))?void 0:n.trim();r&&r!==s.useAppStore.getState().agentId.trim()&&(i(!1),t(r))},[e,t,i]),null}function K(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(J,{}),(0,t.jsx)(n.Suspense,{fallback:null,children:(0,t.jsx)(X,{})})]})}function Z(e){let{children:o}=e,d=(0,r.usePathname)(),c=function(e){if(!e)return!1;let t=(0,M.normalizeAppPathname)(e);return"/manage"===t||t.startsWith("/manage/")}(d),p=(0,B.isManageSideNavPath)(d),g=(0,s.useAppStore)(e=>e.wsUrl),f=(0,s.useAppStore)(e=>e.apiBase),m=(0,s.useAppStore)(e=>e.agentId),h=(0,s.useAppStore)(e=>e.sessionId),v=(0,s.useAppStore)(e=>e.sessionViewMode),w=(0,s.useAppStore)(e=>e.lastSessions),C=(0,s.useAppStore)(e=>e.turnRunning),T=(0,s.useAppStore)(e=>e.agentSelectionResolved),E=(0,s.useAppStore)(e=>e.setSessionId),R=(0,s.useAppStore)(e=>e.setSessionViewMode),P=(0,s.useAppStore)(e=>e.setPendingHistoryRefresh),{loadSessions:L,loadAgentConfig:O,deleteSessionById:W}=(0,N.useSession)(),D=(0,k.usePersistAgentConfig)(),{reconnect:z,switchSession:F,sendPrompt:U,sendAbort:V,sendReloadAgentConfig:G,sendRestartSubprocess:q,sendPermissionResponse:H}=function(e){let t=(0,n.useRef)(null),r=(0,n.useRef)(""),o=(0,n.useRef)(0),d=(0,n.useRef)(0),c=(0,n.useRef)(0),p=(0,n.useRef)(!1),g=(0,n.useRef)([]),f=(0,n.useRef)(new Map),m=(0,n.useRef)(null==e?void 0:e.onSession);m.current=null==e?void 0:e.onSession;let h=(0,n.useRef)(null==e?void 0:e.onQueryIdle);h.current=null==e?void 0:e.onQueryIdle;let v=(0,s.useAppStore)(e=>e.wsUrl),N=(0,s.useAppStore)(e=>e.agentSelectionResolved),k=(0,n.useCallback)(()=>(o.current+=1,o.current),[]),I=(0,n.useCallback)(()=>{p.current=!1,g.current=[]},[]),w=(0,n.useCallback)(()=>{if(t.current){let e=t.current;t.current.close(),(0,a.clearActiveWebSocket)(e),t.current=null}let e=s.useAppStore.getState();e.setWsConnected(!1),e.setBridgeReady(!1),e.resetApiErrorState(),e.setAssistantGenerating(!1),e.setTurnRunning(!1),I(),f.current.clear()},[I]),C=(0,n.useCallback)((e,t)=>{var n,i,a,o,c,v,S,y,x,N;let I=(null==t?void 0:t.httpReplay)===!0,w=s.useAppStore.getState(),T=(e.runId||"main").trim()||"main";if(!I&&e.type===l.EVENT.CONVERSATION_DELTA&&p.current){let t=String(null!=(n=e.sessionId)?n:"").trim(),s=r.current.trim()||w.sessionId.trim();t&&s&&t!==s?w.appendLog("switchSession","忽略回放期间的过期 conversation.delta incoming=".concat(t," target=").concat(s)):g.current.push(e);return}let E="string"==typeof e.agent_name?e.agent_name.trim():"";E&&f.current.set(T,E);let R=function(t,n){let r=!(arguments.length>2)||void 0===arguments[2]||arguments[2],s=r&&e.data&&"object"==typeof e.data&&"string"==typeof e.data.sourceAgent?e.data.sourceAgent.trim():"",i=f.current.get(T)||"";return t||s||i||n},_=String(null!=(i=e.sessionId)?i:"").trim()||r.current.trim()||w.sessionId.trim()||"unknown",M="".concat(d.current,":").concat(_);if(e.eventId&&function(e,t){var n;let r=t||"default",s=null!=(n=A.get(r))?n:new Set;if(s.has(e))return!0;if(s.add(e),s.size>4096)for(let e of Array.from(s).slice(0,2048))s.delete(e);return A.set(r,s),!1}(e.eventId,M))return void w.appendLog("dedup","eventId=".concat(e.eventId," 已忽略"));switch(w.appendLog(I?"← replay":"←",e),e.type){case l.EVENT.SESSION_META:{let t=e.data,n=String(null!=(o=null!=(a=t.sessionId)?a:e.sessionId)?o:""),s=w.sessionId.trim();if(r.current){if(n&&n!==s)return void w.appendLog("switchSession","忽略过期 session.meta incoming=".concat(n," current=").concat(s));r.current=""}t.agent&&w.setBrandAgent(String(t.agent)),w.setSessionContextPercent(function(e){if(!e||"object"!=typeof e)return null;let t=Number(e.percentage);if(Number.isFinite(t))return Math.max(0,Math.round(10*t)/10);let n=Number(e.totalTokens),r=Number(e.rawMaxTokens);return Number.isFinite(n)&&Number.isFinite(r)&&r>0?Math.max(0,Math.round(n/r*1e3)/10):null}(t.contextUsage)),n&&(w.setSessionId(n),null==(c=m.current)||c.call(m,n));break}case l.EVENT.SESSION_READY:{w.resetApiErrorState();let t=e.data;r.current&&w.sessionId.trim()===r.current&&(r.current="");let n=w.turnRunning||w.queryPhase.trim().length>0;w.setBridgeReady(!0),n||w.setStatus("已就绪","ready"),t.agent&&w.setBrandAgent(String(t.agent));break}case l.EVENT.SESSION_ERROR:{let t=e.data,n=null!=(v=t.message)?v:JSON.stringify(t);w.setAssistantGenerating(!1),w.setTurnRunning(!1),w.setStatus("错误: ".concat(String(n)),"err");break}case l.EVENT.QUERY_PROGRESS:{w.resetApiErrorState();let t=String(null!=(S=e.data.phase)?S:"").trim();"idle"===t?(w.setTurnRunning(!1),w.setQueryPhase(""),w.bridgeReady&&w.setStatus("已就绪","ready"),null==(y=h.current)||y.call(h)):t&&(w.setTurnRunning(!0),w.setQueryPhase(t),w.setStatus("查询阶段: ".concat(t,"…"),"working"));break}case l.EVENT.CONVERSATION_DELTA:{w.resetApiErrorState();let t=e.data;if(!t.action)break;if("message_added"===t.action||"message_updated"===t.action||"message_removed"===t.action||"tool_call"===t.action||"tool_result"===t.action||"message_completed"===t.action){if(!I&&r.current){let t=String(null!=(x=e.sessionId)?x:"").trim(),n=r.current.trim(),s=w.sessionId.trim();if(t&&t!==n&&t!==s){w.appendLog("switchSession","忽略切换过程中的过期 conversation.delta incoming=".concat(t," pending=").concat(n," current=").concat(s));break}}let n={eventId:e.eventId,action:t.action,index:t.index,message:u(t.message,!0===t.scheduledTrigger||!0===e.scheduledTrigger,"string"==typeof e.turnId?e.turnId:"")},s=R("",T),i=k();w.applyRunMessageDelta({...n,runId:T,sourceAgent:s,ts:"string"==typeof e.ts?e.ts:"",arrivalSeq:i})}"message_completed"===t.action&&w.setStreamBuffer("");break}case l.EVENT.RUN_LIFECYCLE:{let t=e.data,n="string"==typeof t.event&&t.event||("string"==typeof t.state?t.state:"");if("replay.start"===n||"replay.end"===n)break;w.setRunLifecycleData({event:n,message:t.message});let r=R("string"==typeof t.sourceAgent?t.sourceAgent.trim():"","system",!1),s=j(t);s.trim()&&w.appendSourceAgentMessage({key:"string"==typeof e.eventId?e.eventId:"lc-".concat(Date.now()),source:r,runId:T,correlationId:"",status:"resolved",text:s,ts:"string"==typeof e.ts?e.ts:"",arrivalSeq:k()}),"configReloaded"===n&&w.setStatus("已重新加载 agent.md / agent.json",(0,b.resolveInfoStatusClass)(w.bridgeReady,w.wsConnected));break}case l.EVENT.HISTORY_REPLAY:{let n=e.data;if(Array.isArray(n.events))for(let e=0;e<n.events.length;e+=1){let r=n.events[e];r&&"object"==typeof r&&r.type!==l.EVENT.HISTORY_REPLAY&&C(r,t)}break}case l.EVENT.TURN_TERMINAL:{w.resetApiErrorState();let t=e.data;w.setTurnTerminalData({status:t.status,resultText:t.resultText,reason:t.reason});let n=s.useAppStore.getState();"main"===T&&(n.setStreamBuffer(""),n.setAssistantGenerating(!1),n.setTurnRunning(!1),n.setQueryPhase(""),"resolved"===t.status?n.setStatus("本轮结束(可继续发送)",(0,b.resolveInfoStatusClass)(n.bridgeReady,n.wsConnected)):"failed"===t.status?n.setStatus("本轮失败: ".concat(null!=(N=t.reason)?N:"未知错误"),"err"):"cancelled"===t.status?n.setStatus("本轮已取消",(0,b.resolveInfoStatusClass)(n.bridgeReady,n.wsConnected)):n.setStatus("本轮结束(可继续发送)",(0,b.resolveInfoStatusClass)(n.bridgeReady,n.wsConnected)));let r=R("string"==typeof t.sourceAgent?t.sourceAgent.trim():"","main"===T?"main":"unknown-agent",!1),i="string"==typeof t.correlationId?t.correlationId:"",a=j({type:l.EVENT.TURN_TERMINAL,status:t.status,reason:t.reason,resultText:t.resultText});n.appendSourceAgentMessage({key:"string"==typeof e.eventId?e.eventId:"terminal-".concat(Date.now()),source:r,runId:T,correlationId:i,status:"resolved"===t.status?"resolved":"failed",text:a,ts:"string"==typeof e.ts?e.ts:"",arrivalSeq:k()});break}case l.EVENT.PERMISSION_REQUEST:{let t=e.data,n="string"==typeof t.requestId?t.requestId.trim():"";if(!n)break;w.enqueuePermissionRequest({requestId:n,toolName:"string"==typeof t.toolName?t.toolName:"tool",description:"string"==typeof t.description?t.description:"",input:null!=t.input?t.input:{},runId:T})}}},[k]),T=(0,n.useCallback)(e=>{var t,n,i,a,l,o;let u=s.useAppStore.getState(),d=String(null!=(t=e.type)?t:"");if("system"===d&&"api_error"===e.subtype){let t=y(e.retryAttempt),n=y(e.maxRetries),r=y(e.retryInMs),s=Date.now()+r,i=n>0&&t>=n?"failed":r>=1e4?"retrying":"loading";u.setApiErrorState({phase:i,retryAttempt:t,maxRetries:n,retryInMs:r,retryUntilTs:s}),u.appendLog("api_error",{uuid:"string"==typeof e.uuid?e.uuid:"",retryAttempt:t,maxRetries:n,retryInMs:r});return}switch(d){case"messages":if(r.current)return void u.appendLog("switchSession","忽略切换过程中的 messages 回包");u.resetApiErrorState(),u.setMessages(Array.isArray(e.messages)?e.messages:[]),u.setStreamBuffer("");break;case"queryProgress":{u.resetApiErrorState();let t=String(null!=(n=e.phase)?n:"").trim();"idle"===t?(u.setTurnRunning(!1),u.setQueryPhase(""),u.bridgeReady&&u.setStatus("已就绪","ready"),null==(i=h.current)||i.call(h)):t&&(u.setTurnRunning(!0),u.setQueryPhase(t),u.setStatus("查询阶段: ".concat(t,"…"),"working"));break}case"streamText":{u.resetApiErrorState();let t="string"==typeof e.text?e.text:"";u.setAssistantGenerating(!1),u.setStreamBuffer(t);let n=t.length>160?"".concat(t.slice(0,160),"…"):t;u.appendLog("←",{type:"streamText",len:t.length,preview:n||"(空)"});break}case"ready":{u.resetApiErrorState(),r.current&&u.sessionId.trim()===r.current&&(r.current="");let t=u.turnRunning||u.queryPhase.trim().length>0;u.setBridgeReady(!0),t||u.setStatus("已就绪","ready"),e.agent&&u.setBrandAgent(String(e.agent));break}case"session":{let t=String(null!=(a=e.sessionId)?a:""),n=u.sessionId.trim();if(r.current){if(t&&t!==n)return void u.appendLog("switchSession","忽略过期 session 回包 incoming=".concat(t," current=").concat(n));r.current=""}e.agent&&u.setBrandAgent(String(e.agent)),t&&(u.setSessionId(t),null==(l=m.current)||l.call(m,t));break}case"error":u.setAssistantGenerating(!1),u.setTurnRunning(!1),u.setStatus("错误: ".concat(String(null!=(o=e.message)?o:JSON.stringify(e))),"err");break;case"turnComplete":{u.resetApiErrorState(),u.setStreamBuffer(""),u.setAssistantGenerating(!1),u.setTurnRunning(!1),u.setQueryPhase("");let e=s.useAppStore.getState();e.setStatus("本轮结束(可继续发送)",(0,b.resolveInfoStatusClass)(e.bridgeReady,e.wsConnected));break}case"agentConfigReloaded":{let e=s.useAppStore.getState();e.setStatus("已重新加载 agent.md / agent.json",(0,b.resolveInfoStatusClass)(e.bridgeReady,e.wsConnected))}}},[]),E=(0,n.useCallback)(async(e,t)=>{let n=e.trim();if(!n)return;let r=s.useAppStore.getState(),i=r.agentId.trim()||"qihoo";p.current=!0,g.current=[];try{let{envelopes:e,messageCount:s}=await (0,S.loadSessionReplay)(r.wsUrl,r.apiBase,i,n);if(t!==c.current)return;let a={httpReplay:!0};for(let t=0;t<e.length;t+=1){let n=e[t];n&&x(n)&&C(n,a)}r.appendLog("session-replay-http",{sessionId:n,messageCount:s,envelopeCount:e.length})}catch(e){if(t!==c.current)return;r.appendLog("session-replay-http",String(e)),r.setStatus("历史回放失败: ".concat(e),"err")}finally{if(t===c.current){p.current=!1;let e=g.current;g.current=[];for(let t=0;t<e.length;t+=1)C(e[t])}}},[C]),R=(0,n.useCallback)(()=>{let e,n=s.useAppStore.getState();if(!n.agentSelectionResolved||t.current&&(0,a.isWebSocketOpen)(t.current)&&n.bridgeReady)return;if(t.current){let e=t.current;try{e.close()}catch(e){}(0,a.clearActiveWebSocket)(e),t.current=null}n.markConnecting(),n.resetApiErrorState(),n.resetChat(),n.clearLog(),o.current=0,f.current.clear(),I(),d.current+=1,A.clear();let r=n.agentId.trim()||"qihoo",l=n.sessionId.trim();l&&E(l,++c.current);let u=(0,i.buildWsUrlWithQuery)(n.wsUrl,n.sessionId,r);n.appendLog("connect",u);try{t.current=e=new WebSocket(u),(0,a.setActiveWebSocket)(e)}catch(e){n.markConnectionError("连接失败: ".concat(e)),n.appendLog("error",String(e));return}e.onopen=function(){if(t.current!==this)return;let e=s.useAppStore.getState(),n=e.turnRunning||e.queryPhase.trim().length>0;e.setWsConnected(!0),n||e.setStatus("已连接,等待 worker ready…","pending")},e.onclose=function(){(null==t.current||t.current===this)&&(s.useAppStore.getState().markDisconnected(),(0,a.clearActiveWebSocket)(this),t.current===this&&(t.current=null))},e.onerror=function(){t.current===this&&(s.useAppStore.getState().markConnectionError("WebSocket 错误"),s.useAppStore.getState().appendLog("error","websocket error"))},e.onmessage=function(e){let n,r=s.useAppStore.getState();try{n=JSON.parse(e.data)}catch(t){r.appendLog("raw",e.data);return}this===t.current&&(x(n)?C(n):null!==n&&"object"==typeof n&&(r.appendLog("←",n),T(n)))}},[I,C,T,E]),_=(0,n.useCallback)(()=>{w(),R()},[w,R]),M=(0,n.useCallback)((e,n)=>{let i=s.useAppStore.getState(),l=String(e||"").trim(),u=String(n||i.agentId||"").trim()||"qihoo",p=t.current,g=(0,a.isWebSocketOpen)(p);if(i.resetChat(),i.clearLog(),i.setSessionContextPercent(null),o.current=0,i.setBridgeReady(!1),i.resetApiErrorState(),i.setStatus("正在切换 session…","working"),f.current.clear(),I(),d.current+=1,r.current=l,l&&g&&E(l,++c.current),!g)return void _();try{let e={type:"switchSession",sessionId:l,agent:u};p.send(JSON.stringify(e)),i.appendLog("→",e)}catch(e){i.appendLog("error","switchSession 发送失败: ".concat(String(e))),_()}},[I,_,E]);(0,n.useEffect)(()=>N?(R(),()=>{w()}):void w(),[v,N,R,w]);let P=(0,n.useCallback)(e=>{let n=t.current;(0,a.isWebSocketOpen)(n)&&(n.send(JSON.stringify(e)),s.useAppStore.getState().appendLog("→",e))},[]),L=(0,n.useCallback)(e=>{let t=String(null!=e?e:"").trim();t&&(s.useAppStore.getState().setAssistantGenerating(!0),s.useAppStore.getState().setTurnRunning(!0),s.useAppStore.getState().setPendingPrompt(t)),P({type:"prompt",text:e})},[P]),O=(0,n.useCallback)(()=>{P({type:"abort"})},[P]),W=(0,n.useCallback)(()=>{P({type:"reloadAgentConfig"})},[P]),D=(0,n.useCallback)(e=>{P({type:"restartSubprocess",reason:null!=e?e:"persist-session-overrides"})},[P]),z=(0,n.useCallback)(()=>{P({type:"reloadAgentPrompt"})},[P]);return{wsRef:t,disconnectIfOpen:w,connectWebSocket:R,reconnect:_,switchSession:M,sendPrompt:L,sendAbort:O,sendReloadAgentConfig:W,sendRestartSubprocess:D,sendReloadAgentPrompt:z,sendPermissionResponse:(0,n.useCallback)((e,t)=>{let n=String(e||"").trim();n&&P({type:"permission.response",requestId:n,behavior:t})},[P]),sendInit:(0,n.useCallback)(e=>{P({type:"init",...e})},[P])}}({onSession:()=>{L()},onQueryIdle:()=>{L()}}),Q=(0,n.useCallback)((e,t)=>I(e,{switchSession:F,reconnect:z,loadSessions:L,loadAgentConfig:O,preferReconnect:c},{displayName:t}),[F,z,L,O,c]);(0,n.useEffect)(()=>{let e;if(!T)return;let t=!1,n=w.some(e=>!0===e.running),r=C||n?1500:4e3,s=()=>{e=setTimeout(()=>{if(!t){if("undefined"!=typeof document&&"hidden"===document.visibilityState)return void s();L().finally(()=>{t||s()})}},r)};return s(),()=>{t=!0,void 0!==e&&clearTimeout(e)}},[T,w,L,C]);let J=(0,n.useMemo)(()=>({reconnect:z,switchSession:F,switchWorkspaceAgent:Q,sendPrompt:U,sendAbort:V,sendReloadAgentConfig:G,sendRestartSubprocess:q,sendPermissionResponse:H}),[z,F,Q,U,V,G,q,H]),X=p?"settings-main":c?"manage-main":"draft"===v?"is-draft-session":void 0;return(0,t.jsxs)(_.WorkspaceRuntimeContext.Provider,{value:J,children:[(0,t.jsx)(K,{}),(0,t.jsxs)("div",{className:"ws-config-hidden","aria-hidden":!0,children:[(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:g}),(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:f}),(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:h}),(0,t.jsx)("input",{readOnly:!0,hidden:!0,value:m})]}),(0,t.jsx)(Y,{mainClassName:X,mainRegion:p?"settings-shell":c?"manage-shell":"chat-shell",sidebar:{onNewSession:()=>{E(""),R("draft"),P(!1),c?z():F("",m)},onSelectSession:e=>{E(e),R("history"),P(!1),c?z():F(e,m)},onSaveAgentConfig:()=>void D({silent:!1}),deleteSessionById:async e=>{let t=await W(e);return t&&(c?z():F("",m)),t}},children:o})]})}},41796,e=>{"use strict";e.s(["SideNavShell",()=>d]);var t=e.i(18050),n=e.i(18566),r=e.i(72064),s=e.i(65934),i=e.i(75157),a=e.i(97249),l=e.i(51419),o=e.i(18253);function u(e,t){if(!t)return!1;let n=(0,a.normalizeAppPathname)(t),r=(0,a.normalizeAppPathname)(e);return n===r||n.startsWith("".concat(r,"/"))}function d(e){var d;let{title:c,navGroups:p,tabs:g,activeTabValue:f,tabVariant:m,bottomItems:h,children:v}=e,b=(0,n.usePathname)(),{push:S}=(0,o.useGuardedAppNavigation)(),y=(0,s.useAppStore)(e=>e.agentId),x=e=>{S((0,a.buildAppNavHref)(e,{ensureAgent:!0,agent:y}))},A=!!(m&&(null==g?void 0:g.length)),j=null!=f?f:null==g||null==(d=g[0])?void 0:d.value;return(0,t.jsxs)("div",{className:"side-nav-shell",children:[(0,t.jsxs)("nav",{className:"side-nav","aria-label":null!=c?c:"导航",children:[c?(0,t.jsx)("div",{className:"side-nav-title",children:c}):null,(0,t.jsx)("div",{className:"side-nav-groups",children:p.map((e,n)=>(0,t.jsx)("div",{className:"side-nav-group",children:e.items.map(e=>{let n=u(e.href,b);return(0,t.jsxs)("button",{type:"button",className:(0,i.cn)("side-nav-item",n&&"is-active"),"aria-current":n?"page":void 0,onClick:()=>x(e.href),children:[e.icon?(0,t.jsx)("span",{className:"side-nav-item-icon","aria-hidden":!0,children:(0,t.jsx)(r.default,{name:e.icon,size:16,className:"text-zinc-700",strokeWidth:1})}):null,(0,t.jsx)("span",{className:"side-nav-item-label",children:e.label})]},e.href)})},n))}),h&&h.length>0?(0,t.jsx)("div",{className:"side-nav-bottom",children:h.map(e=>{let n=u(e.href,b);return(0,t.jsxs)("button",{type:"button",className:(0,i.cn)("side-nav-item",n&&"is-active"),"aria-current":n?"page":void 0,onClick:()=>x(e.href),children:[e.icon?(0,t.jsx)("span",{className:"side-nav-item-icon","aria-hidden":!0,children:(0,t.jsx)(r.default,{name:e.icon,size:16,className:"text-zinc-700",strokeWidth:1})}):null,(0,t.jsx)("span",{className:"side-nav-item-label",children:e.label})]},e.href)})}):null]}),(0,t.jsx)("section",{className:"side-nav-content",children:A?(0,t.jsx)(l.AppTabs,{tabs:null!=g?g:[],value:j,onChange:x,listVariant:m,listClassName:"pill"===m?"mx-auto":void 0,contentClassName:"flex min-h-0 min-w-0 flex-1 flex-col",children:v}):v})]})}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,31862,e=>{"use strict";let t;e.s(["TeamsView",()=>X],31862);var a=e.i(18050),r=e.i(71645),s=e.i(56708),l=e.i(19455),n=e.i(72064),i=e.i(53145),o=e.i(74080),d=e.i(94197),c=e.i(13354),m=e.i(24687),u=e.i(75157);let x={expand:!0,copy:!0};function p(e){let{value:t,onChange:s,minLines:l,placeholder:n,readOnly:i,className:o}=e,d=(0,r.useRef)(null),c=(0,r.useRef)(null),x=Math.max(t.split("\n").length,l),p=(0,r.useCallback)(()=>{d.current&&c.current&&(c.current.scrollTop=d.current.scrollTop)},[]);return(0,a.jsxs)("div",{className:(0,u.cn)("flex min-h-0 flex-1",o),children:[(0,a.jsx)("div",{ref:c,"aria-hidden":!0,className:"w-10 shrink-0 overflow-hidden border-r border-[var(--ds-border)] bg-[#fafafa] py-3 text-right font-mono text-base leading-[1.5] text-[var(--ds-muted)]",children:Array.from({length:x},(e,t)=>(0,a.jsx)("div",{className:"px-2",children:t+1},t))}),(0,a.jsx)(m.Textarea,{ref:d,spellCheck:!1,readOnly:i,value:t,onChange:e=>s(e.target.value),onScroll:p,placeholder:n,className:"agent-md-editor min-h-0 flex-1 resize-none rounded-none border-0 bg-white px-4 py-3 shadow-none focus-visible:ring-0"})]})}function h(e){let{actions:t,copyDisabled:r,onCopy:s,className:l}=e;return t.copy?(0,a.jsx)("div",{className:(0,u.cn)("flex items-center gap-0.5",l),children:(0,a.jsx)(d.IconTooltipButton,{icon:"Copy",label:"复制内容",disabled:r,onClick:s})}):null}function b(e){let{show:t,expanded:r,onToggleExpand:s,className:l}=e;return t?(0,a.jsx)("div",{className:(0,u.cn)("flex items-center",l),children:(0,a.jsx)(d.IconTooltipButton,{icon:r?"Minimize2":"Maximize2",label:r?"收起编辑器":"展开编辑器",onClick:s})}):null}function f(e){let{value:t,onChange:s,minLines:l=20,className:n,placeholder:i="编辑 Markdown 内容",readOnly:d=!1,actions:m,expandTitle:f="编辑 Markdown",copySuccessMessage:v="已复制到剪贴板",copyEmptyMessage:g="暂无内容可复制"}=e,[j,N]=(0,r.useState)(!1),w=!1===m?{expand:!1,copy:!1}:{...x,...m},y=(0,r.useCallback)(()=>{if(!t.trim())return void c.appToast.error(g);("undefined"!=typeof navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText?navigator.clipboard.writeText(t):"undefined"==typeof document?Promise.reject(Error("Clipboard unavailable")):new Promise((e,a)=>{let r=document.createElement("textarea");r.value=t,r.setAttribute("readonly",""),r.style.position="fixed",r.style.top="-9999px",r.style.opacity="0",document.body.appendChild(r),r.focus(),r.select();let s=document.execCommand("copy");if(document.body.removeChild(r),s)return void e();a(Error("Clipboard copy failed"))})).then(()=>{c.appToast.success(v)},()=>{c.appToast.error("复制失败,请手动选择复制")})},[t,v,g]),C=(0,r.useCallback)(()=>{N(e=>!e)},[]);(0,r.useEffect)(()=>{if(!j)return;let e=e=>{"Escape"===e.key&&N(!1)};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[j]);let k=(0,u.cn)("relative flex min-h-[320px] flex-1 flex-col overflow-hidden rounded-lg border border-[var(--ds-border)] bg-white",n),T=!t.trim()||d,S=(0,a.jsxs)("div",{className:k,children:[(0,a.jsx)(h,{actions:w,copyDisabled:T,onCopy:y,className:"absolute right-2 top-2 z-[1]"}),(0,a.jsx)(p,{value:t,onChange:s,minLines:l,placeholder:i,readOnly:d}),(0,a.jsx)(b,{show:w.expand,expanded:!1,onToggleExpand:C,className:"absolute bottom-2 right-2 z-[1]"})]}),A=j&&"undefined"!=typeof document?(0,o.createPortal)((0,a.jsxs)("div",{className:"fixed inset-0 z-[100] flex flex-col bg-[var(--surface-2)]",role:"dialog","aria-modal":"true","aria-label":f,children:[(0,a.jsx)("header",{className:"flex shrink-0 items-center border-b border-[var(--ds-border)] px-5 py-4",children:(0,a.jsx)("h2",{className:"truncate text-lg font-semibold text-[var(--ds-text)]",children:f})}),(0,a.jsx)("div",{className:"flex min-h-0 flex-1 flex-col p-5",children:(0,a.jsxs)("div",{className:"relative flex min-h-0 flex-1 flex-col overflow-hidden rounded-lg border border-[var(--ds-border)] bg-white",children:[(0,a.jsx)(h,{actions:w,copyDisabled:T,onCopy:y,className:"absolute right-2 top-2 z-[1]"}),(0,a.jsx)(p,{value:t,onChange:s,minLines:l,placeholder:i,readOnly:d,className:"min-h-0 flex-1"}),(0,a.jsx)(b,{show:w.expand,expanded:!0,onToggleExpand:C,className:"absolute bottom-2 right-2 z-[1]"})]})})]}),document.body):null;return(0,a.jsxs)(a.Fragment,{children:[S,A]})}var v=e.i(51419),g=e.i(87676),j=e.i(93479),N=e.i(65934),w=e.i(61196),y=e.i(52727);let C=/^[a-zA-Z0-9_-]{1,64}$/,k=[{id:"all",label:"全部"},{id:"joined_other",label:"已加入其他团队"}];function T(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:80,a=String(e||"").replace(/\s+/g," ").trim();return a?a.length<=t?a:"".concat(a.slice(0,t-1),"…"):"暂无使用说明"}var S=e.i(46798),A=e.i(8279);let z={sm:"h-7 w-7 text-xs",md:"h-9 w-9 "};function F(e){let{label:t,size:r="md",className:s}=e,l=(0,A.initialsFromLabel)(t);return(0,a.jsx)(S.TooltipProvider,{delayDuration:150,children:(0,a.jsxs)(S.Tooltip,{children:[(0,a.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,a.jsx)("span",{className:(0,u.cn)("inline-flex shrink-0 cursor-default items-center justify-center rounded-full font-semibold text-white",z[r],s),style:{background:(0,A.avatarBgForLabel)(t)},"aria-label":t,children:l})}),(0,a.jsx)(S.TooltipContent,{side:"bottom",align:"center",className:"",children:t})]})})}let D=[{value:"agents",label:"AGENTS"}];function E(e){let{mode:t,editAgentId:s,onClose:o,onSaved:d}=e,x=(0,N.useAppStore)(e=>e.wsUrl),p=(0,N.useAppStore)(e=>e.apiBase),h=(0,w.useStageThreadFlyoutStore)(e=>e.setFlyoutDirty),b=(0,w.useStageThreadFlyoutStore)(e=>e.requestCloseFlyout),k="edit"===t,[T,S]=(0,r.useState)(!1),[A,z]=(0,r.useState)(k),[E,M]=(0,r.useState)(null),[B,I]=(0,r.useState)("basic"),_=(0,r.useRef)(null),O=(0,i.useForm)({defaultValues:{id:"",whentouse:"",prompt:""},mode:"onChange"}),{isDirty:R}=(0,i.useFormState)({control:O.control}),L=O.watch("id"),P=k?"编辑 Agent · ".concat(null!=s?s:L):"新建Agent",H=T?k?"保存中…":"创建中…":k?"保存":"创建",U=(0,r.useCallback)(async()=>{let e=null==s?void 0:s.trim();if(e){z(!0),M(null);try{let t=await (0,y.getAgentDetail)(x,p,e);_.current=t.config,O.reset({id:t.id,whentouse:t.whentouse,prompt:t.prompt})}catch(t){let e=t instanceof Error?t.message:String(t);M(e),c.appToast.error("加载失败:".concat(e))}finally{z(!1)}}},[s,x,p,O]);(0,r.useEffect)(()=>{k&&U()},[k,U]),(0,r.useEffect)(()=>(h(R),()=>h(!1)),[R,h]);let G=(0,r.useCallback)(()=>{b()},[b]),V=(0,r.useCallback)(async e=>{let t=(k&&null!=s?s:e.id).trim();if(t){if(!k&&!C.test(String(t||"").trim()))return void c.appToast.error("Agent ID 仅支持字母、数字、下划线和中划线,长度 1~64");S(!0);try{k?(await (0,y.updateAgent)(x,p,{id:t,prompt:e.prompt,whentouse:e.whentouse,baseConfig:_.current}),c.appToast.success("已保存")):(await (0,y.createAgent)(x,p,{id:t,whentouse:e.whentouse,prompt:e.prompt}),c.appToast.success("已创建")),await (null==d?void 0:d()),o()}catch(t){let e=k?"保存":"创建";c.appToast.error("".concat(e,"失败:").concat(t instanceof Error?t.message:String(t)))}finally{S(!1)}}},[k,s,x,p,o,d]);return(0,a.jsx)(g.Form,{...O,children:(0,a.jsxs)("form",{className:"flex h-full min-h-0 flex-col bg-[var(--surface-2)]",onSubmit:O.handleSubmit(V),children:[(0,a.jsx)("header",{className:"shrink-0 border-b border-[var(--ds-border)] bg-[var(--surface-2)] px-5 pb-4 pt-5",children:(0,a.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,a.jsxs)("div",{className:"flex min-w-0 flex-1 items-center",children:[(0,a.jsx)(l.Button,{type:"button",variant:"plain",size:"icon",onClick:G,disabled:T,className:"shrink-0 cursor-pointer px-2 text-[var(--ds-text)] hover:bg-transparent hover:text-[color:var(--ds-accent)] [&_svg_path]:!fill-current","aria-label":"返回",children:(0,a.jsx)(n.default,{name:"Back",size:16})}),(0,a.jsx)("h2",{className:"truncate text-lg font-semibold text-[var(--ds-text)]",children:P})]}),(0,a.jsx)(l.Button,{type:"submit",variant:"default",size:"lg",disabled:T||A||!!E,className:"shrink-0 cursor-pointer rounded-lg bg-[#111] px-5 hover:bg-[#333]",children:H})]})}),(0,a.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto px-5 py-4",children:A?(0,a.jsx)("div",{className:"flex min-h-[240px] flex-1 items-center justify-center text-[var(--ds-muted)]",role:"status","aria-live":"polite",children:"加载中…"}):E?(0,a.jsxs)("div",{className:"flex min-h-[240px] flex-1 flex-col items-center justify-center gap-3 text-destructive",role:"alert",children:[(0,a.jsxs)("span",{children:["加载失败:",E]}),(0,a.jsx)(l.Button,{type:"button",variant:"outline",size:"sm",onClick:()=>void U(),children:"重试"})]}):"basic"===B?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("section",{className:"rounded-xl border border-[var(--ds-border)] bg-white p-4",children:(0,a.jsxs)("div",{className:"flex gap-4",children:[(0,a.jsx)("div",{className:"flex shrink-0 flex-col items-center gap-2",children:(0,a.jsx)("div",{className:"relative",children:(0,a.jsx)(F,{label:L.trim()||"Agent",className:"h-16 w-16 text-lg"})})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 space-y-3",children:[(0,a.jsx)(g.FormField,{control:O.control,name:"id",render:e=>{let{field:t}=e;return(0,a.jsxs)(g.FormItem,{children:[(0,a.jsx)(g.FormControl,{children:(0,a.jsx)(j.Input,{...t,readOnly:k,spellCheck:!1,placeholder:"例如 my-agent,agent名称是唯一标识",autoComplete:"off",className:(0,u.cn)("h-10 rounded-md border-[var(--ds-border)] bg-[var(--ds-bg)]",k&&"cursor-default text-[var(--ds-muted)]")})}),(0,a.jsx)(g.FormMessage,{})]})}}),(0,a.jsx)(g.FormField,{control:O.control,name:"whentouse",render:e=>{let{field:t}=e;return(0,a.jsxs)(g.FormItem,{children:[(0,a.jsx)(g.FormControl,{children:(0,a.jsx)(m.Textarea,{...t,spellCheck:!1,placeholder:"用一句话说明它的身份 + 它主要帮你做什么",className:"min-h-[88px] resize-none rounded-md border-[var(--ds-border)] bg-[var(--ds-bg)] leading-relaxed"})}),(0,a.jsx)(g.FormMessage,{})]})}})]})]})}),(0,a.jsx)(v.AppTabs,{tabs:D,defaultValue:"agents",listVariant:"line",listClassName:"mt-4",className:"min-h-0 flex-1",children:(0,a.jsx)(v.AppTabsPanel,{value:"agents",className:"mt-4 flex min-h-0 flex-1 flex-col",children:(0,a.jsx)(g.FormField,{control:O.control,name:"prompt",render:e=>{let{field:t}=e;return(0,a.jsxs)(g.FormItem,{className:"flex min-h-0 flex-1 flex-col",children:[(0,a.jsx)(g.FormControl,{children:(0,a.jsx)(f,{value:t.value,onChange:t.onChange,className:"min-h-[320px]",placeholder:"编辑 Agent 提示词(agent.md)",expandTitle:"编辑 (agent.md)"})}),(0,a.jsx)(g.FormMessage,{})]})}})})})]}):(0,a.jsx)("div",{className:"flex flex-1 items-center justify-center text-[var(--ds-muted)]",children:"敬请期待"})})]})})}var M=e.i(68499),B=e.i(55146),I=e.i(97249);function _(e){let{label:t,hint:r,icon:s,onClick:l}=e,i=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.default,{name:s,size:14,className:"shrink-0 text-[var(--ds-muted)]"}),(0,a.jsx)("span",{children:r})]}),o=(0,u.cn)("inline-flex min-h-9 w-fit max-w-full items-center justify-center gap-1.5 rounded-lg border border-dashed border-[var(--ds-border)] !bg-transparent px-3 text-[var(--ds-muted)]",l&&"cursor-pointer hover:border-[color:var(--ds-border-hover)] hover:bg-[var(--ds-main-tint)]");return l?(0,a.jsx)("button",{type:"button",className:o,onClick:l,"aria-label":t,children:i}):(0,a.jsx)("div",{className:o,"aria-label":t,children:i})}let O=r.forwardRef(function(e,t){let{className:s,size:l="default",checked:i,defaultChecked:o,disabled:d,id:c,onChange:m,...x}=e,p=void 0!==i,[h,b]=r.useState(!!o),f=p?!!i:h;return(0,a.jsxs)("span",{"data-slot":"checkbox","data-size":l,"data-checked":f?"true":"false",className:(0,u.cn)("relative inline-flex shrink-0 items-center justify-center rounded-sm border border-solid border-border bg-transparent outline-none transition-[color,box-shadow,border-color,background-color] duration-150 ease-in-out","has-[:focus-visible]:border-[var(--border-focus)] has-[:focus-visible]:[box-shadow:var(--ring-focus-sm)]","has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-50","data-[size=default]:size-4 data-[size=sm]:size-3.5",f?"border-[var(--ds-accent)] bg-[var(--ds-accent)]":"bg-transparent",s),children:[f?(0,a.jsx)(n.default,{name:"Check",className:(0,u.cn)("pointer-events-none text-[var(--surface-1)] [&_path]:!fill-none","sm"===l?"size-3":"size-3.5"),strokeWidth:2.25,"aria-hidden":"true"}):null,(0,a.jsx)("input",{ref:t,id:c,type:"checkbox",checked:p?i:void 0,defaultChecked:p?void 0:o,disabled:d,className:"absolute inset-0 m-0 size-full cursor-pointer opacity-0 disabled:cursor-not-allowed",onChange:e=>{p||b(e.target.checked),null==m||m(e)},...x})]})});var R=e.i(76639);let L={captain:null,members:[]};function P(e){return{id:e.id,displayName:e.displayName.trim()||e.id}}function H(e,t,a,r){for(let l of a){var s;if(l.id===t)continue;let a=r(l.id);if((null==(s=a.captain)?void 0:s.id)===e||a.members.some(t=>t.id===e))return l.id}return null}function U(e){let{member:t,subtitle:r,onRemove:s,badge:l}=e;return(0,a.jsxs)("div",{className:"flex items-center gap-2 rounded-lg border border-[var(--ds-border)] bg-[var(--ds-bg)] p-2.5",children:[(0,a.jsx)(F,{label:t.displayName,size:"sm"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"mb-0 truncate text-base font-medium text-[var(--ds-text)]",children:t.displayName}),(0,a.jsx)("p",{className:"mb-0 truncate text-[12px] text-[var(--ds-muted)]",children:r})]}),l?(0,a.jsx)("span",{className:"shrink-0 rounded bg-[var(--green-light)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--green-dark)]",children:l}):null,s?(0,a.jsx)(d.IconTooltipButton,{icon:"Close",label:"移除agent",className:"!h-7 !w-7 shrink-0 bg-transparent text-[var(--ds-muted)] hover:bg-transparent hover:text-[color:var(--ds-accent)]",iconClassName:"!size-3.5",onClick:s}):null]})}function G(e){let{open:t,onOpenChange:s,team:i,allAgents:o,rosters:d,onConfirm:m,onAgentsRefresh:x}=e,p=(0,N.useAppStore)(e=>e.wsUrl),h=(0,N.useAppStore)(e=>e.apiBase),b=i.id,f=d.getRoster,[v,g]=(0,r.useState)(""),[w,C]=(0,r.useState)("all"),[S,A]=(0,r.useState)([]),[z,D]=(0,r.useState)(!1),E=(0,r.useMemo)(()=>P(i),[i]);(0,r.useEffect)(()=>{if(!t)return;let e=f(b);g(""),C("all"),A(e.members.filter(e=>e.id!==b).map(e=>e.id))},[t,b,f]);let M=(0,r.useMemo)(()=>S.map(e=>o.find(t=>t.id===e)).filter(e=>null!=e).map(P),[S,o]),B=(0,r.useMemo)(()=>o.filter(e=>{if(!function(e,t){let a=t.trim().toLowerCase();return!a||"".concat(e.id," ").concat(e.displayName," ").concat(e.whentouse).toLowerCase().includes(a)}(e,v))return!1;let t=e.id===b,a=H(e.id,b,o,f);return"available"===w?!t:"joined_other"===w?!!a:"recommended"!==w||!a&&!t}),[o,v,w,b,f]),I=(0,r.useCallback)((e,t)=>{e!==b&&A(a=>t?a.includes(e)?a:[...a,e]:a.filter(t=>t!==e))},[b]),_=(0,r.useCallback)(()=>{A([])},[]),L=(0,r.useCallback)(()=>{s(!1)},[s]),G=(0,r.useCallback)(()=>{(async()=>{let e=b.trim();if(!e||z)return;let t=f(b).members.map(e=>e.id),a=S.filter(e=>!t.includes(e)),r=t.filter(e=>!S.includes(e));if(0===a.length&&0===r.length)return L();D(!0);try{for(let t of r)await (0,y.removeTeamMember)(p,h,e,t);for(let t of a)await (0,y.addTeamMember)(p,h,e,t);await (null==x?void 0:x()),m({captain:E,members:M}),a.length>0&&0===r.length?c.appToast.success(1===a.length?"已添加队员 ".concat(a[0]):"已添加 ".concat(a.length," 名队员")):c.appToast.success("已更新队员"),L()}catch(e){c.appToast.error("添加队员失败:".concat(e instanceof Error?e.message:String(e)))}finally{D(!1)}})()},[b,z,f,S,p,h,x,m,E,M,L]);return(0,a.jsx)(R.Dialog,{open:t,onOpenChange:s,children:(0,a.jsxs)(R.DialogContent,{className:"max-w-[920px]","aria-labelledby":"add-team-members-title",children:[(0,a.jsxs)(R.DialogHeader,{className:"items-start gap-3",children:[(0,a.jsx)(R.DialogTitle,{id:"add-team-members-title",className:"text-lg",children:"添加队员"}),(0,a.jsx)(R.DialogClose,{"aria-label":"关闭"})]}),(0,a.jsx)(R.DialogBody,{className:"!p-0",children:(0,a.jsxs)("div",{className:"flex h-[min(68vh,520px)] min-h-0 flex-col px-[24px] md:flex-row",children:[(0,a.jsxs)("div",{className:"mr-[16px] flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden border-b border-[var(--ds-border)] md:border-b-0 md:border-r",children:[(0,a.jsxs)("div",{className:"shrink-0 space-y-3 border-b border-[var(--ds-border)] pb-4",children:[(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(n.default,{name:"Search",size:16,className:"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--ds-muted)]"}),(0,a.jsx)(j.Input,{value:v,onChange:e=>g(e.target.value),placeholder:"搜索成员名称 / 能力 / 标签",className:"h-8 pl-8"})]}),(0,a.jsx)("div",{className:"flex flex-wrap gap-2",children:k.map(e=>{let t=w===e.id;return(0,a.jsx)(l.Button,{type:"button",variant:"plain-outline",size:"sm",className:(0,u.cn)("cursor-pointer rounded-full px-3",t&&"border-[color:var(--ds-accent)] bg-[var(--green-light)] text-[var(--green-dark)] hover:bg-[var(--green-light)]"),onClick:()=>C(e.id),children:e.label},e.id)})})]}),(0,a.jsx)("ul",{className:"m-0 min-h-0 flex-1 list-none space-y-4 overflow-y-auto",role:"listbox","aria-label":"可选队员",children:B.map(e=>{let t=e.id===b,r=S.includes(e.id),s=H(e.id,b,o,f),l=function(e){let t=T(e,24);return"暂无使用说明"===t?[]:t.split(/[,,、\s]+/).filter(Boolean).slice(0,2)}(e.whentouse),i=T(e.whentouse,32);return(0,a.jsx)("li",{children:(0,a.jsxs)("label",{className:(0,u.cn)("flex cursor-pointer items-center gap-3 rounded-lg border border-solid bg-[var(--ds-bg)] px-2 py-2.5 transition-[border-color,background-color]","border-[color:var(--ds-border)]",t?"cursor-not-allowed opacity-60":"hover:border-[color:var(--ds-border-hover)] hover:bg-[var(--ds-main-tint)]",r&&!t&&"bg-[var(--green-light)]/40 border-[color:var(--ds-accent)]"),children:[(0,a.jsx)(O,{checked:!t&&r,disabled:t,onChange:t=>I(e.id,t.target.checked),"aria-label":"选择 ".concat(e.displayName)}),(0,a.jsx)(F,{label:e.displayName,size:"md"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsxs)("p",{className:"mb-0 truncate font-medium text-[var(--ds-text)]",children:[e.displayName,t?(0,a.jsx)("span",{className:"ml-1 text-xs font-normal text-[var(--ds-muted)]",children:"(当前团队)"}):null]}),(0,a.jsx)("p",{className:"mb-0 mt-0.5 truncate text-[var(--ds-muted)]",children:i}),l.length>0?(0,a.jsx)("div",{className:"mt-1 flex flex-wrap gap-1",children:l.map(e=>(0,a.jsx)("span",{className:"rounded bg-[var(--surface-2)] px-1.5 py-0.5 text-[10px] text-[var(--ds-muted)]",children:e},e))}):null]}),(0,a.jsx)("div",{className:"shrink-0 text-right",children:t?(0,a.jsx)("span",{className:"text-xs text-[var(--ds-muted)]",children:"不可选"}):s?(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-amber-600",children:[(0,a.jsx)(n.default,{name:"Info",size:14}),"已加入其他团队"]}):(0,a.jsxs)("span",{className:"inline-flex items-center gap-1 text-xs text-[var(--green-dark)]",children:[(0,a.jsx)("span",{className:"size-1.5 rounded-full bg-[var(--ds-accent)]"}),"可用 Agent"]})})]})},e.id)})}),(0,a.jsxs)("div",{className:"shrink-0 border-t border-[var(--ds-border)] px-4 py-2.5 text-[var(--ds-muted)]",children:["已选择 ",S.length," 名队员"]})]}),(0,a.jsx)("div",{className:"flex min-h-0 w-full shrink-0 flex-col overflow-hidden bg-[var(--ds-log-bg)] md:w-[300px]",children:(0,a.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden p-4",children:(0,a.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:[(0,a.jsxs)("div",{className:"mb-2 flex shrink-0 items-center justify-between gap-2",children:[(0,a.jsxs)("span",{className:"font-medium text-[var(--ds-text)]",children:["已选成员(",M.length,")"]}),(0,a.jsx)(l.Button,{type:"button",variant:"plain",size:"sm",disabled:0===M.length,className:"h-auto cursor-pointer !px-1 text-base text-[var(--ds-accent)] hover:bg-transparent hover:text-[var(--ds-text)] disabled:cursor-not-allowed",onClick:_,children:"清空"})]}),(0,a.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto",children:M.length>0?(0,a.jsx)("div",{className:"space-y-4",children:M.map(e=>{let t=o.find(t=>t.id===e.id),r=t?T(t.whentouse,28):e.id;return(0,a.jsx)(U,{member:e,subtitle:r,onRemove:()=>I(e.id,!1)},e.id)})}):(0,a.jsx)("p",{className:"mb-0 text-xs text-[var(--ds-muted)]",children:"请从左侧勾选队员"})})]})})})]})}),(0,a.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-5 py-3",children:[(0,a.jsx)(l.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:L,className:"cursor-pointer",children:"取消"}),(0,a.jsx)(l.Button,{type:"button",variant:"default",size:"lg",onClick:G,disabled:z,className:"cursor-pointer disabled:cursor-not-allowed",children:z?"添加中…":"确认添加"})]})]})})}function V(e){let{open:t,onOpenChange:s,title:n,description:i,candidates:o,onPick:d}=e,[c,m]=(0,r.useState)("");(0,r.useEffect)(()=>{t&&m("")},[t]);let x=(0,r.useCallback)(()=>{s(!1)},[s]),p=(0,r.useCallback)(()=>{let e=o.find(e=>e.id===c);e&&(d(e),x())},[o,c,d,x]),h=(0,r.useMemo)(()=>o.length>0?null:"暂无可选 Agent",[o.length]);return(0,a.jsx)(R.Dialog,{open:t,onOpenChange:s,children:(0,a.jsxs)(R.DialogContent,{className:"max-w-[480px]","aria-labelledby":"pick-team-member-title",children:[(0,a.jsxs)(R.DialogHeader,{className:"items-start gap-3",children:[(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)(R.DialogTitle,{id:"pick-team-member-title",children:n}),(0,a.jsx)(R.DialogDescription,{className:"mt-1",children:i})]}),(0,a.jsx)(R.DialogClose,{"aria-label":"关闭"})]}),(0,a.jsx)(R.DialogBody,{className:"max-h-[min(50vh,360px)] overflow-y-auto !px-5 !py-4",children:h?(0,a.jsx)("p",{className:"mb-0 text-center text-[var(--ds-muted)]",children:h}):(0,a.jsx)("ul",{className:"m-0 list-none space-y-1 p-0",role:"listbox",children:o.map(e=>{let t=c===e.id,r=P(e);return(0,a.jsx)("li",{children:(0,a.jsxs)("button",{type:"button",role:"option","aria-selected":t,className:(0,u.cn)("flex w-full cursor-pointer items-center gap-3 rounded-lg border border-solid px-3 py-2.5 text-left transition-colors",t?"border-[color:var(--ds-accent)] bg-[var(--green-light)]":"border-[color:var(--ds-border)] bg-[var(--ds-bg)] hover:bg-[var(--ds-main-tint)]"),onClick:()=>m(e.id),children:[(0,a.jsx)(F,{label:r.displayName,size:"md"}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("p",{className:"mb-0 truncate font-medium text-[var(--ds-text)]",children:r.displayName}),(0,a.jsx)("p",{className:"mb-0 mt-0.5 truncate text-xs text-[var(--ds-muted)]",children:e.id})]})]})},e.id)})})}),(0,a.jsxs)("div",{className:"flex shrink-0 justify-end gap-2 border-t border-[var(--ds-border)] bg-[var(--ds-sidebar)] px-5 py-3",children:[(0,a.jsx)(l.Button,{type:"button",variant:"plain-outline",size:"lg",onClick:x,className:"cursor-pointer",children:"取消"}),(0,a.jsx)(l.Button,{type:"button",variant:"default",size:"lg",disabled:!c,onClick:p,className:"cursor-pointer",children:"确定"})]})]})})}function W(e){let{member:t,displayName:r}=e;return(0,a.jsxs)("span",{className:"relative inline-flex w-fit items-center rounded-full",children:[(0,a.jsx)(F,{label:t.displayName,size:"sm"}),r?(0,a.jsx)("span",{className:"ml-2 whitespace-nowrap text-[var(--ds-text)]",children:r}):null]})}function q(e){let{members:t}=e,[s,l]=(0,r.useState)(!1),n=(0,r.useRef)(null),i=(0,r.useCallback)(()=>{n.current&&(clearTimeout(n.current),n.current=null),l(!0)},[]),o=(0,r.useCallback)(()=>{n.current&&clearTimeout(n.current),n.current=setTimeout(()=>l(!1),120)},[]);return(0,a.jsxs)(B.DropdownMenu,{open:s,onOpenChange:l,children:[(0,a.jsxs)(B.DropdownMenuTrigger,{type:"button",className:"inline-flex shrink-0 cursor-default items-center rounded-full border border-solid border-[color:var(--ds-border)] bg-[var(--surface-2)] px-2.5 py-1 font-medium text-[var(--ds-muted)] hover:bg-[var(--surface-2)]","aria-label":"还有 ".concat(t.length," 名队员"),onMouseEnter:i,onMouseLeave:o,children:["+",t.length]}),(0,a.jsxs)(B.DropdownMenuContent,{align:"start",side:"bottom",sideOffset:6,className:(0,u.cn)("min-w-[200px] max-w-[min(100vw-32px,320px)] p-3"),onMouseEnter:i,onMouseLeave:o,children:[(0,a.jsxs)("p",{className:"mb-2 px-1 text-xs text-[var(--ds-muted)]",children:["其余队员(",t.length,")"]}),(0,a.jsx)("div",{className:"flex max-h-[240px] flex-col gap-2 overflow-y-auto",children:t.map(e=>(0,a.jsx)(W,{member:e,displayName:e.displayName},e.id))})]})]})}function K(e){let{members:t,className:r}=e,s=t.slice(0,6),l=t.slice(6);return(0,a.jsxs)("div",{className:(0,u.cn)("flex min-w-0 max-w-full flex-wrap items-center gap-1",r),children:[s.map(e=>(0,a.jsx)(W,{member:e},e.id)),l.length>0?(0,a.jsx)(q,{members:l}):null]})}function Y(e){let{onEdit:t,onDelete:s,deleting:l=!1}=e,[i,o]=(0,r.useState)(!1);return(0,a.jsxs)(B.DropdownMenu,{open:i,onOpenChange:o,children:[(0,a.jsx)(B.DropdownMenuTrigger,{type:"button",className:"inline-flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md border-0 bg-transparent p-0 text-[var(--ds-muted)] hover:bg-transparent hover:text-[color:var(--ds-accent)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)]","aria-label":"更多",onClick:e=>{e.stopPropagation()},children:(0,a.jsx)(n.default,{name:"More",size:20})}),(0,a.jsxs)(B.DropdownMenuContent,{align:"end",side:"bottom",sideOffset:6,className:"w-[172px] min-w-[172px] rounded-[var(--ds-radius-sm)] border border-[var(--ds-border)] bg-[var(--ds-bg)] p-1.5",children:[(0,a.jsxs)(B.DropdownMenuItem,{className:"h-9 rounded-xl px-2.5 text-[var(--ds-text)] hover:bg-[var(--ds-item-active)] focus:bg-[var(--ds-item-hover)]",onClick:()=>{o(!1),t()},children:[(0,a.jsx)(n.default,{name:"Edit",size:16,className:"text-[var(--ds-muted)]"}),"编辑 Agent"]}),(0,a.jsx)(B.DropdownMenuSeparator,{className:"mx-1 my-1 bg-[var(--ds-border)]"}),(0,a.jsxs)(B.DropdownMenuItem,{variant:"destructive",disabled:l,className:"h-9 rounded-xl px-2.5 hover:bg-[#fff1f1] focus:bg-[#fff1f1]",onClick:()=>{o(!1),s()},children:[(0,a.jsx)(n.default,{name:"Trash2",size:16}),"删除 Agent"]})]})]})}function $(e){let{team:s,allAgents:l,rosters:n,onAgentSaved:i}=e,o=(0,N.useAppStore)(e=>e.agentId),m=(0,N.useAppStore)(e=>e.wsUrl),x=(0,N.useAppStore)(e=>e.apiBase),p=o.trim()||"qihoo",h=s.id===p,b=n.getRoster(s.id),f=T(s.whentouse),v=(0,A.initialsFromLabel)(s.id).slice(0,1),[g,j]=(0,r.useState)(!1),[C,k]=(0,r.useState)(!1),[S,z]=(0,r.useState)(!1),F=n.getAvailableCandidates(s.id,l),D=(0,r.useCallback)(e=>{n.setCaptain(s.id,P(e))},[n,s.id]),B=(0,r.useCallback)(e=>{n.applyRoster(s.id,e)},[n,s.id]),O=(0,r.useCallback)(()=>{let e=s.id.trim();if(!e||e===p)return;let t=(0,I.buildAppNavHref)("/",{ensureAgent:!0,agent:e}),a=I.BASE_PATH.replace(/\/+$/,""),r="".concat(window.location.origin).concat(a).concat(t);window.open(r,"_blank","noopener")},[s.id,p]),R=(0,r.useCallback)(()=>{!function(e){var r;let s=e.agentId.trim();if(!s)return;let{openFlyout:l,closeFlyout:n}=w.useStageThreadFlyoutStore.getState(),i=null!=(r=e.onSaved)?r:t;l({width:w.CREATE_AGENT_FLYOUT_WIDTH,hideHeader:!0,bodyClassName:"!p-0 overflow-hidden",navigationGuard:!0,content:(0,a.jsx)(E,{mode:"edit",editAgentId:s,onClose:n,onSaved:i})})}({agentId:s.id,onSaved:i})},[s.id,i]),L=(0,r.useCallback)(async()=>{let e=s.id.trim();if(e&&await (0,M.confirmAlertDialog)({title:"确定删除 Agent?",description:"Agent「".concat(e,"」将被永久删除,此操作不可恢复。"),confirmText:"删除",cancelText:"取消"})){z(!0);try{await (0,y.deleteAgentItem)(m,x,e),c.appToast.success("已删除"),await (null==i?void 0:i())}catch(e){c.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}finally{z(!1)}}},[s.id,m,x,i]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:(0,u.cn)("flex w-full flex-wrap items-center gap-4 rounded-xl border border-solid bg-[var(--ds-bg)] px-4 py-3 lg:flex-nowrap","border-[color:var(--ds-border)] transition-[border-color,box-shadow]","hover:shadow-[0_2px_12px_rgba(0,0,0,0.06)]"),children:[(0,a.jsxs)("div",{className:"flex min-w-[200px] flex-1 items-center gap-4",children:[(0,a.jsx)("span",{className:"inline-flex h-11 w-11 shrink-0 items-center justify-center rounded-lg text-lg font-semibold text-white",style:{background:(0,A.avatarBgForLabel)(s.id)},"aria-hidden":!0,children:v}),(0,a.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,a.jsx)("button",{type:"button",onClick:O,disabled:h,className:(0,u.cn)("mb-0 block w-full truncate border-0 bg-transparent p-0 text-left text-base font-semibold text-[var(--ds-text)]",h?"cursor-default":"cursor-pointer hover:text-[color:var(--ds-accent)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ds-accent)]"),"aria-current":h?"true":void 0,"aria-label":h?"当前 Agent:".concat(s.id):"在新标签页切换到 Agent ".concat(s.id),children:s.id}),(0,a.jsx)("p",{className:"mb-0 mt-1 truncate text-sm text-[var(--ds-muted)]",children:f})]})]}),(0,a.jsx)("div",{className:"flex min-w-0 max-w-full flex-1 flex-col gap-1.5",children:(0,a.jsx)("div",{className:(0,u.cn)("flex min-w-0 max-w-full flex-wrap items-center gap-2",""),children:(0,a.jsxs)("div",{className:"flex w-fit justify-end gap-2 rounded-xl border border-solid border-[color:var(--ds-border)] bg-[var(--ds-bg)] p-2",children:[b.members.length>0?(0,a.jsx)(K,{members:b.members,className:""}):(0,a.jsx)(_,{label:"队员列表",hint:"暂无队员",icon:"Team"}),(0,a.jsx)(d.IconTooltipButton,{icon:"Create",label:"添加队员",disabled:l.length<=1,className:(0,u.cn)("h-8 w-8 shrink-0 border border-dashed border-[color:var(--ds-border)] hover:border-[color:var(--ds-accent)] hover:text-[color:var(--ds-accent)]",l.length>1&&"text-[var(--ds-accent)] hover:bg-[var(--green-light)]"),iconClassName:"!size-4",onClick:()=>k(!0)})]})})}),(0,a.jsx)(Y,{onEdit:R,onDelete:()=>void L(),deleting:S})]}),(0,a.jsx)(V,{open:g,onOpenChange:j,title:"设置队长",description:"从可选 Agent 中选择一名作为队长",candidates:F,onPick:D}),(0,a.jsx)(G,{open:C,onOpenChange:k,team:s,allAgents:l,rosters:n,onConfirm:B,onAgentsRefresh:i})]})}function Z(e){let{agentsState:t}=e,{agents:s,loading:l,error:n}=t,i=function(e){let[t,a]=(0,r.useState)({});(0,r.useEffect)(()=>{a(t=>{let a={...t};for(let s of e){var r;let l=null!=(r=t[s.id])?r:L;a[s.id]={captain:l.captain,members:function(e,t){return e.agentTeamMembers.map(e=>{let a=t.find(t=>t.id===e.agentType);return{id:e.agentType,displayName:(null==a?void 0:a.displayName.trim())||e.agentType}})}(s,e)}}return a})},[e]);let s=(0,r.useCallback)(e=>{var a;return null!=(a=t[e])?a:L},[t]),l=(0,r.useCallback)((e,t)=>{a(a=>{var r;let s=(null!=(r=a[e])?r:L).members.filter(e=>e.id!==t.id);return{...a,[e]:{captain:t,members:s}}})},[]),n=(0,r.useCallback)(e=>{a(t=>{var a;let r=null!=(a=t[e])?a:L;return{...t,[e]:{...r,captain:null}}})},[]),i=(0,r.useCallback)((e,t)=>{a(a=>{var r,s;let l=null!=(s=a[e])?s:L;return(null==(r=l.captain)?void 0:r.id)===t.id||l.members.some(e=>e.id===t.id)?a:{...a,[e]:{...l,members:[...l.members,t]}}})},[]),o=(0,r.useCallback)((e,t)=>{a(a=>{var r;let s=null!=(r=a[e])?r:L;return{...a,[e]:{...s,members:s.members.filter(e=>e.id!==t)}}})},[]);return{getRoster:s,setCaptain:l,removeCaptain:n,addMember:i,removeMember:o,applyRoster:(0,r.useCallback)((e,t)=>{let r=t.captain,s=t.members.filter(e=>e.id!==(null==r?void 0:r.id));a(t=>({...t,[e]:{captain:r,members:s}}))},[]),getAvailableCandidates:(0,r.useCallback)((e,a)=>{var r;let s=null!=(r=t[e])?r:L,l=new Set([e,...s.captain?[s.captain.id]:[],...s.members.map(e=>e.id)]);return a.filter(e=>!l.has(e.id))},[t])}}(s);return(0,a.jsx)("div",{className:"flex min-h-0 flex-1 flex-col rounded-xl border border-[var(--ds-border)] bg-[var(--ds-bg)] shadow-[var(--shadow-sm)]",children:(0,a.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto p-[16px]",children:l?(0,a.jsx)("div",{className:"flex min-h-[200px] items-center justify-center text-[var(--ds-muted)]",children:"加载中…"}):n?(0,a.jsxs)("div",{className:"flex min-h-[200px] items-center justify-center px-4 text-center text-red-600",children:["加载失败:",n]}):0===s.length?(0,a.jsx)("div",{className:"flex min-h-[200px] items-center justify-center px-4 text-center text-[var(--ds-muted)]",children:"暂无 Agent,点击右上角「新建 Agent」创建"}):(0,a.jsx)("ul",{className:"m-0 list-none space-y-4 p-0",role:"list",children:s.map(e=>(0,a.jsx)("li",{children:(0,a.jsx)($,{team:e,allAgents:s,rosters:i,onAgentSaved:t.loadAgents})},e.id))})})})}function J(e){let{label:t,value:r,hint:s,icon:l}=e;return(0,a.jsxs)("div",{className:"mt-2 flex min-w-0 flex-1 items-center gap-4 rounded-xl border border-[var(--ds-border)] bg-white px-4 py-3.5 shadow-[var(--shadow-sm)]",children:[(0,a.jsx)("span",{className:"flex size-10 shrink-0 items-center justify-center rounded-full bg-[var(--ds-border)]","aria-hidden":!0,children:(0,a.jsx)(n.default,{name:l,size:20,className:"text-[var(--ds-text)]"})}),(0,a.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,a.jsx)("span",{className:"block text-[var(--ds-text)]",children:t}),(0,a.jsx)("span",{className:"mt-1 block text-2xl font-semibold leading-none text-[var(--ds-text)]",children:r}),(0,a.jsx)("span",{className:"mt-1 block text-sm text-[var(--ds-muted)]",children:s})]})]})}function Q(e){let{agents:t,className:s}=e,l=(0,r.useMemo)(()=>{let e=t.length;return[{label:"团队总数",value:t.filter(e=>e.agentTeamMembers.length>=1).length,icon:"Teams",hint:"队员数大于 1 的 Agent 编组"},{label:"成员总数",value:e,icon:"Agent",hint:"角色、能力和工具的智能执行体"}]},[t]);return(0,a.jsx)("div",{className:(0,u.cn)("flex flex-wrap gap-3",s),children:l.map(e=>(0,a.jsx)(J,{...e},e.label))})}function X(){let e=function(){let e=(0,N.useAppStore)(e=>e.wsUrl),t=(0,N.useAppStore)(e=>e.apiBase),[a,s]=(0,r.useState)([]),[l,n]=(0,r.useState)(!0),[i,o]=(0,r.useState)(null),d=(0,r.useCallback)(async()=>{n(!0),o(null);try{let a=await (0,y.listAgentsForManage)(e,t);s(a)}catch(t){let e=t instanceof Error?t.message:String(t);s([]),o(e),c.appToast.error("加载失败:".concat(e))}finally{n(!1)}},[e,t]);return(0,r.useEffect)(()=>{d()},[d]),{agents:a,loading:l,error:i,loadAgents:d}}();(0,r.useEffect)(()=>(t=e.loadAgents,()=>{t=void 0}),[e.loadAgents]);let i=(0,r.useCallback)(()=>{!function(){var e;let r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{openFlyout:s,closeFlyout:l}=w.useStageThreadFlyoutStore.getState(),n=null!=(e=r.onSaved)?e:t;s({width:w.CREATE_AGENT_FLYOUT_WIDTH,hideHeader:!0,bodyClassName:"!p-0 overflow-hidden",navigationGuard:!0,content:(0,a.jsx)(E,{mode:"create",onClose:l,onSaved:n})})}()},[]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.ManageChromeHeaderActions,{children:(0,a.jsx)("div",{className:"flex flex-wrap items-center",children:(0,a.jsxs)(l.Button,{type:"button",variant:"default",size:"lg",onClick:i,className:"mr-[12px] cursor-pointer",children:[(0,a.jsx)(n.default,{name:"Create",size:16,className:"align-middle"}),"新建 Agent"]})})}),(0,a.jsx)(Q,{agents:e.agents,className:"mb-4"}),(0,a.jsx)(Z,{agentsState:e})]})}}]);
|