@auto-ai/agent 2.1.213 → 2.1.216

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/safe-a/404/index.html +1 -1
  2. package/dist/safe-a/404.html +1 -1
  3. package/dist/safe-a/_next/static/chunks/009ad4aad9cfa502.js +1 -0
  4. package/dist/safe-a/_next/static/chunks/00efede689cf035f.css +7 -0
  5. package/dist/safe-a/_next/static/chunks/0fb74192c4e23fbe.js +1 -0
  6. package/dist/safe-a/_next/static/chunks/101f70bebf1522b2.js +1 -0
  7. package/dist/safe-a/_next/static/chunks/11f35a289d90c8f7.js +1 -0
  8. package/dist/safe-a/_next/static/chunks/{7e2887a3269dfc01.js → 2954e8f94d83412a.js} +1 -1
  9. package/dist/safe-a/_next/static/chunks/2c300e2a1fb17288.js +1 -0
  10. package/dist/safe-a/_next/static/chunks/7defa1cc0271dd01.css +1 -0
  11. package/dist/safe-a/_next/static/chunks/{ece085cc915ab5e5.js → 8249026c4faf64b8.js} +1 -1
  12. package/dist/safe-a/_next/static/chunks/8ed5273cea590ac8.js +1 -0
  13. package/dist/safe-a/_next/static/chunks/9311fdc96f82fdcc.js +1 -0
  14. package/dist/safe-a/_next/static/chunks/b4b8918a2dbddca7.js +1 -0
  15. package/dist/safe-a/_next/static/chunks/b725c08f4efec3ab.js +1 -0
  16. package/dist/safe-a/_next/static/chunks/c6362bd055df6043.js +1 -0
  17. package/dist/safe-a/_next/static/chunks/{e6c441f81a8ea81c.js → dc982433a82e2718.js} +1 -1
  18. package/dist/safe-a/index.html +2 -2
  19. package/dist/safe-a/index.txt +29 -31
  20. package/dist/safe-a/manage/about/index.html +2 -2
  21. package/dist/safe-a/manage/about/index.txt +29 -30
  22. package/dist/safe-a/manage/env/index.html +2 -2
  23. package/dist/safe-a/manage/env/index.txt +32 -33
  24. package/dist/safe-a/manage/geelib/index.html +2 -2
  25. package/dist/safe-a/manage/geelib/index.txt +32 -33
  26. package/dist/safe-a/manage/general/index.html +2 -2
  27. package/dist/safe-a/manage/general/index.txt +29 -30
  28. package/dist/safe-a/manage/git/index.html +2 -2
  29. package/dist/safe-a/manage/git/index.txt +32 -33
  30. package/dist/safe-a/manage/im/index.html +2 -2
  31. package/dist/safe-a/manage/im/index.txt +32 -33
  32. package/dist/safe-a/manage/index.html +2 -2
  33. package/dist/safe-a/manage/index.txt +26 -27
  34. package/dist/safe-a/manage/library/index.html +2 -2
  35. package/dist/safe-a/manage/library/index.txt +30 -31
  36. package/dist/safe-a/manage/mcp/index.html +2 -2
  37. package/dist/safe-a/manage/mcp/index.txt +30 -31
  38. package/dist/safe-a/manage/permissions/index.html +2 -2
  39. package/dist/safe-a/manage/permissions/index.txt +29 -30
  40. package/dist/safe-a/manage/skills/index.html +2 -2
  41. package/dist/safe-a/manage/skills/index.txt +30 -31
  42. package/dist/safe-a/manage/task/index.html +2 -2
  43. package/dist/safe-a/manage/task/index.txt +30 -31
  44. package/dist/safe-a/manage/teams/index.html +2 -2
  45. package/dist/safe-a/manage/teams/index.txt +30 -31
  46. package/dist/safe-a/manage/tools/index.html +2 -2
  47. package/dist/safe-a/manage/tools/index.txt +30 -31
  48. package/dist/ws-test/ws-test.js +33 -1
  49. package/mcps-runtime/claude-ws-channel/server/gateway.bundle.mjs +10 -1
  50. package/package.json +6 -6
  51. package/dist/safe-a/_next/static/chunks/0d0a0fd8bc7c5154.js +0 -1
  52. package/dist/safe-a/_next/static/chunks/37e4ac5f3654a688.js +0 -1
  53. package/dist/safe-a/_next/static/chunks/38e76abda882c1a8.js +0 -1
  54. package/dist/safe-a/_next/static/chunks/3f74431cdf49e5e1.js +0 -1
  55. package/dist/safe-a/_next/static/chunks/7cadf95d4932deec.js +0 -1
  56. package/dist/safe-a/_next/static/chunks/846fd48826ed3d89.js +0 -1
  57. package/dist/safe-a/_next/static/chunks/913de10eeb8a88d9.js +0 -1
  58. package/dist/safe-a/_next/static/chunks/9971428081f87b2e.js +0 -1
  59. package/dist/safe-a/_next/static/chunks/b744b1f1595cffb6.js +0 -1
  60. package/dist/safe-a/_next/static/chunks/dda0af99af0e0631.css +0 -7
  61. package/dist/safe-a/_next/static/chunks/e0b6375c01566831.js +0 -1
  62. package/dist/safe-a/_next/static/chunks/f37854d807ee41ac.css +0 -1
  63. package/dist/safe-a/_next/static/chunks/fd9b8164ea743aa0.js +0 -1
  64. /package/dist/safe-a/_next/static/{ydg1pWMUiUWUhsV4OnPd9 → fJY87EWm4q7Foe1k9iCt0}/_buildManifest.js +0 -0
  65. /package/dist/safe-a/_next/static/{ydg1pWMUiUWUhsV4OnPd9 → fJY87EWm4q7Foe1k9iCt0}/_clientMiddlewareManifest.json +0 -0
  66. /package/dist/safe-a/_next/static/{ydg1pWMUiUWUhsV4OnPd9 → fJY87EWm4q7Foe1k9iCt0}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,69799,e=>{"use strict";let t;e.s(["BridgeDebugApp",()=>tL],69799),e.i(75526);var n=e.i(59992),r=e.i(65765),s=e.i(74548),l=e.i(49377),i=e.i(36763),a=e.i(97737);e.i(82860);var o=e.i(33904);e.i(377);var c=e.i(18805),u=e.i(28661),d=e.i(40751),m=e.i(99329),p=e.i(15327);function f(e){let{open:t,onOpenChange:s,variant:i,wsUrl:a,apiBase:o,agent:f,onNotifyReloadAgentConfig:h}=e,g=(0,l.useAppStore)(e=>e.setStatus),x=(0,l.useAppStore)(e=>e.bridgeReady),v=(0,l.useAppStore)(e=>e.wsConnected),b="tools"===i?"工具管理":"MCP 管理",y="tools"===i?"当前无可管理的 runtime 工具文件":"当前无可管理的 mcp-runtime 包",[j,w]=(0,r.useState)(""),[S,N]=(0,r.useState)([]),[k,A]=(0,r.useState)(!1),[_,C]=(0,r.useState)(null),[E,M]=(0,r.useState)(!1),I=(0,r.useRef)(null),T=(0,r.useCallback)(()=>{try{null==h||h()}catch(e){}},[h]),O=(0,r.useCallback)(async()=>{A(!0),C(null),w("加载中…");try{let e="tools"===i?await (0,m.listRuntimeTools)(a,o,f):await (0,m.listRuntimeMcpPackages)(a,o,f),t="tools"===i?e.runtimeToolsDir||".ws-agents/tools-runtime":e.mcpRuntimeDir||".ws-agents/mcp-runtime",n=Array.isArray(e.items)?e.items.filter(e=>{var t;return!!(null==e||null==(t=e.id)?void 0:t.trim())}):[];N(n),w("".concat(t," · 共 ").concat(n.length," 个").concat("tools"===i?"工具":"包"))}catch(e){w("加载失败"),N([]),C("加载失败: ".concat(e)),g("加载 ".concat(b," 列表失败"),"err")}finally{A(!1)}},[i,a,o,f,b,g]);(0,r.useEffect)(()=>{t&&O()},[t,O]);let R=(0,r.useCallback)(()=>{s(!1)},[s]),L=(0,r.useCallback)(e=>{T();let t="tools"===i?(0,m.exportRuntimeToolUrl)(a,o,f,e):(0,m.exportRuntimeMcpUrl)(a,o,f,e);window.open(t,"_blank","noopener")},[i,a,o,f,T]),D=(0,r.useCallback)(async e=>{if(await (0,u.confirmAlertDialog)({title:"确认删除".concat("tools"===i?"工具":" MCP 包","?"),description:e,confirmText:"删除",cancelText:"取消"}))try{"tools"===i?await (0,m.deleteRuntimeTool)(a,o,f,e):await (0,m.deleteRuntimeMcp)(a,o,f,e),g("tools"===i?"工具文件已删除":"MCP 包已删除",(0,p.resolveInfoStatusClass)(x,v)),T(),await O()}catch(e){c.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[i,a,o,f,T,O,x,v,g]),W=(0,r.useCallback)(()=>{let e=I.current;e&&(e.value="",e.click())},[]),z=(0,r.useCallback)(async e=>{if(e){M(!0);try{let t="tools"===i?await (0,m.importRuntimeTool)(a,o,f,e):await (0,m.importRuntimeMcp)(a,o,f,e),n=Number(t.imported||0),r=Number(t.overwritten||0),s=Array.isArray(t.rejected)?t.rejected.length:0;T(),g("tools"===i?"工具 zip 已导入":"MCP zip 已导入",(0,p.resolveInfoStatusClass)(x,v)),c.appToast.success("导入完成:导入 ".concat(n,",覆盖 ").concat(r)+(s>0?",拒绝 ".concat(s):"")),await O()}catch(e){c.appToast.error("导入失败:".concat(e instanceof Error?e.message:String(e)))}finally{M(!1)}}},[i,a,o,f,T,O,x,v,g]),P=k?(0,n.jsx)("div",{className:"tool-files-state",children:"加载中…"}):_?(0,n.jsx)("div",{className:"tool-files-state",children:_}):0===S.length?(0,n.jsx)("div",{className:"tool-files-state",children:y}):S.map(e=>{let t="mcp"===i&&!0!==e.hasMcpJson;return(0,n.jsxs)("div",{className:"tool-files-item hover:bg-[var(--ds-color-surface-item-hover)]",children:[(0,n.jsxs)("div",{className:"tool-files-main",children:[(0,n.jsx)("div",{className:"tool-files-name",title:e.id,children:e.id}),(0,n.jsx)("div",{className:"tool-files-sub",children:"tools"===i?function(e){let t=Number(e.fileCount||0),n="directory"===e.entryType?"目录工具包":"单文件工具",r=Number.isFinite(t)&&t>0?t:1;return"".concat(n," · 文件数 ").concat(r," · 导出内容:带一层工具目录的 zip 包")}(e):function(e){let t=!0===e.hasMcpJson,n=Number(e.fileCount||0);return"MCP 包目录"+(t?" · 含 mcp.json":" · 缺少 mcp.json")+" · 可导出文件 "+(Number.isFinite(n)&&n>0?n:0)+" · zip 仅含编译产物(mcp.json / index.js)"}(e)})]}),(0,n.jsxs)("div",{className:"runtime-pkg-row-actions",children:[(0,n.jsx)("button",{type:"button",className:"runtime-pkg-row-action",onClick:()=>void D(e.id),children:"删除"}),(0,n.jsx)("button",{type:"button",className:"runtime-pkg-row-action",disabled:t,onClick:()=>{t||L(e.id)},children:"导出"})]})]},e.id)});return(0,n.jsxs)(d.AppDialog,{open:t,onOpenChange:s,title:b,footer:(0,n.jsx)("button",{type:"button",className:"btn-agent-md-cancel",onClick:R,children:"关闭"}),children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,n.jsx)("p",{className:"tool-files-meta",children:j}),(0,n.jsx)("div",{children:(0,n.jsx)("button",{type:"button",className:"btn-system-settings",disabled:E,onClick:W,children:"导入 zip"})})]}),(0,n.jsx)("div",{className:"tool-files-list",style:{maxHeight:"min(62vh, 560px)",overflowY:"auto"},children:P}),(0,n.jsx)("input",{ref:I,type:"file",accept:".zip,application/zip",className:"hidden","aria-hidden":!0,onChange:e=>{var t,n;z(null!=(n=null==(t=e.target.files)?void 0:t[0])?n:null),e.target.value=""}})]})}var h=e.i(49091),g=e.i(35182);function x(e){let{open:t,onOpenChange:s,wsUrl:i,apiBase:a,agent:o}=e,u=(0,l.useAppStore)(e=>e.setStatus),m=(0,l.useAppStore)(e=>e.bridgeReady),f=(0,l.useAppStore)(e=>e.wsConnected),[x,v]=(0,r.useState)(!1),[b,y]=(0,r.useState)(!1),[j,w]=(0,r.useState)(""),[S,N]=(0,r.useState)({}),k=(0,r.useCallback)((e,t)=>{N(n=>({...n,[e]:t}))},[]);(0,r.useEffect)(()=>{if(!t)return;let e=!1;return v(!0),w(""),N({}),(0,g.loadSystemEnv)(i,a,o).then(t=>{if(e)return;let n="string"==typeof t.content?t.content:"";N({...(0,h.parseEnvContentToMap)(n)}),w("string"==typeof t.path?t.path:"")}).catch(t=>{e||(c.appToast.error("加载 .env 失败:".concat(t instanceof Error?t.message:String(t))),s(!1))}).finally(()=>{e||v(!1)}),()=>{e=!0}},[t,i,a,o,s]);let A=(0,r.useCallback)(()=>{s(!1)},[s]),_=(0,r.useCallback)(()=>{let e=(0,h.buildEnvFileContentFromForm)([],S);y(!0),(0,g.saveSystemEnv)(i,a,o,e).then(()=>{u(".env 已保存(重启 ws-server 后进程环境变量才会更新)",(0,p.resolveInfoStatusClass)(m,f)),c.appToast.success("已保存项目根目录 .env。\n\n注意:已运行的 ws-server 进程不会自动重载环境变量,若需生效请重启服务或在新会话中验证。"),s(!1)}).catch(e=>{c.appToast.error("保存 .env 失败:".concat(e instanceof Error?e.message:String(e)))}).finally(()=>{y(!1)})},[S,i,a,o,m,f,u,s]);return(0,n.jsx)(d.AppDialog,{open:t,onOpenChange:s,title:(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("span",{children:"环境变量"}),j?(0,n.jsx)("p",{className:"m-0 text-xs font-normal text-[var(--ds-muted)]",children:j}):null]}),footer:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"btn-agent-md-cancel",onClick:A,children:"取消"}),(0,n.jsx)("button",{type:"button",className:"btn-primary",disabled:x||b,onClick:()=>void _(),children:"保存"})]}),children:(0,n.jsx)("div",{className:"env-form-table-body","aria-busy":x,children:x?(0,n.jsx)("div",{className:"tool-files-state",children:"加载中…"}):(0,n.jsx)(n.Fragment,{children:Object.keys(S).sort().map(e=>{var t;return(0,n.jsxs)("div",{className:"env-form-row",children:[(0,n.jsx)("label",{className:"env-form-label",htmlFor:"env-field-".concat(e),children:e}),(0,n.jsx)("div",{className:"env-form-field",children:(0,n.jsx)("input",{id:"env-field-".concat(e),type:"text",className:"env-form-value",spellCheck:!1,autoComplete:"off","data-env-key":e,value:null!=(t=S[e])?t:"",onChange:t=>k(e,t.target.value)})})]},e)})})})})}var v=e.i(87655);let b=[],y=[],j=e=>{var n;let r=null!=(n=e.messagesByRun.main)?n:b;return r===t?y:(t=r,y=r.map(e=>e.message))};var w=e.i(14007),S=e.i(26995);function N(e){let t=Number(e);return!Number.isFinite(t)||t<0?0:Math.floor(t)}function k(e){if(!Number.isFinite(e)||e<=0)return"0K";let t=e/1e3;return t>=100?"".concat(Math.round(t),"K"):"".concat(function(e){let t=e.toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}(t),"K")}function A(e){var t;let n=function(e){if(!e||"object"!=typeof e)return null;let t=e.message;if(t&&"object"==typeof t)return e;let n=e.data;if(!n||"object"!=typeof n)return null;let r=n.message;return r&&"object"==typeof r?r:null}(e);if(!n)return null;let r=n.message;if(!r||"object"!=typeof r)return null;let s=(t=r.usage)&&"object"==typeof t?t:null;if(!s||!(N(s.input_tokens)>0||N(s.output_tokens)>0||N(s.cache_read_input_tokens)>0||N(s.cache_creation_input_tokens)>0))return null;let l=N(s.input_tokens),i=N(s.cache_read_input_tokens),a=N(s.cache_creation_input_tokens),o=N(s.output_tokens),c=l+i+a,u=c>0&&i>0?Math.round(i/c*1e3)/10:c>0?0:null,d=s.server_tool_use&&"object"==typeof s.server_tool_use?s.server_tool_use:null;return{model:"string"==typeof r.model?r.model.trim():"",totalTokens:c+o,inputTokens:c,outputTokens:o,newInputTokens:l,cacheReadTokens:i,cacheCreationTokens:a,cacheHitRatePercent:u,serviceTier:"string"==typeof s.service_tier&&s.service_tier.trim()?s.service_tier.trim():"—",webSearchCount:N(null==d?void 0:d.web_search_requests),webFetchCount:N(null==d?void 0:d.web_fetch_requests)}}let _="──────────────";var C=e.i(54396);function E(e){var t;if(!e||"object"!=typeof e)return[];let n=null==(t=e.message)?void 0:t.content;return Array.isArray(n)?n:[]}function M(e){var t;if(e&&"object"==typeof e)for(let n of[e.timestamp,null==(t=e.message)?void 0:t.timestamp,e.ts]){if("string"==typeof n&&n.trim()){let e=Date.parse(n);if(Number.isFinite(e))return e}if("number"==typeof n&&Number.isFinite(n))return n}}function I(e,t){if(t<0||t>=e.length)return;let n=M(e[t]);if(void 0!==n)for(let r=t+1;r<e.length;r+=1){let t=M(e[r]);if(void 0!==t)return Math.max(0,t-n)}}function T(e,t){let n=e.durationMs;return"number"==typeof n&&Number.isFinite(n)&&n>=0||void 0===t?e:{...e,durationMs:t}}function O(e){let t=[];for(let n of e){if("conversation"!==n.kind)continue;let e=n.payload;if(!e)continue;let r=e.message;null!=r&&t.push(r)}return t}function R(e,t){let n=-1;for(let s=0;s<=t;s+=1){var r;(null==(r=e[s])?void 0:r.kind)==="conversation"&&(n+=1)}return Math.max(0,n)}function L(e,t){let n=-1;return e.forEach((e,t)=>{e&&"object"==typeof e&&"thinking"===e.type&&(n=t)}),n===t}function D(e){let{data:t}=e,[s,l]=(0,r.useState)(!1),i=(0,r.useMemo)(()=>{let e=t.name;if("string"!=typeof e||!e)return"tool";let n=e.split("__").filter(Boolean);return n[n.length-1]||e},[t.name]),a=(0,r.useMemo)(()=>(function(e){try{return JSON.stringify(e,null,2)}catch(t){return String(e)}})(t.input),[t.input]),o=(0,r.useMemo)(()=>a.split("\n").length>3,[a]),c=(0,r.useMemo)(()=>{let e=a.replace(/\s+/g," ").trim();return e?e.length>96?"".concat(e.slice(0,93),"…"):e:""},[a]);return(0,n.jsxs)("div",{className:"my-2 rounded-xl border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-main-tint)]",children:[(0,n.jsxs)("div",{className:"flex w-full flex-col gap-0.5 rounded-xl border-0 px-3 py-2 text-left",children:[(0,n.jsx)("span",{className:"font-400 text-[var(--ds-text)]",children:i}),c?(0,n.jsx)("span",{className:"line-clamp-2 text-sm leading-snug text-[var(--ds-muted)]",children:c}):null]}),(0,n.jsxs)("div",{className:"px-3 pb-3",children:[(0,n.jsx)("div",{className:"mb-1 text-xs text-gray-500",children:"参数"}),(0,n.jsx)("pre",{className:"overflow-auto rounded border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-log)] p-2 text-sm text-[var(--ds-text)]",style:!s&&o?{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:3,overflow:"hidden"}:void 0,children:a}),o?(0,n.jsx)("button",{type:"button",className:"mx-auto mt-1 flex items-center justify-center border-0 bg-transparent p-0 text-zinc-500 transition-colors hover:bg-transparent hover:text-zinc-700",onClick:()=>l(e=>!e),"aria-label":s?"收起":"展开",title:s?"收起":"展开",children:s?(0,n.jsx)(v.default,{name:"ChevronsUp",size:16,strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronsDown",size:16,strokeWidth:1})}):null]})]})}function W(e){let{data:t,onExpandChange:s}=e,[l,i]=(0,r.useState)(!1),a=!!t.is_error,o=(0,r.useMemo)(()=>"string"==typeof t.content?t.content:JSON.stringify(t.content,null,2),[t.content]),c=a?function(e){let t=[];return e.includes("WS_ALLOW_TOOL_ASK=1")&&t.push("设置环境变量 WS_ALLOW_TOOL_ASK=1"),e.includes("acceptEdits")&&t.push("开启 permission mode: acceptEdits"),t}(o):[],u=(0,r.useMemo)(()=>(function(e){if("string"==typeof e)return e;try{return JSON.stringify(e,null,2)}catch(t){return String(e)}})(t.content),[t.content]),d=(0,r.useMemo)(()=>u.split("\n").length>3,[u]);return(0,n.jsxs)("div",{className:"my-2 rounded-xl border ".concat(a?"border-red-200 bg-red-50":"border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-main-tint)]"),children:[(0,n.jsx)("div",{className:"flex w-full items-center justify-between rounded-xl border-0 px-3 py-2 text-left text-xs",children:(0,n.jsx)("span",{children:a?"工具执行失败":"工具结果"})}),(0,n.jsxs)("div",{className:"px-3 pb-3",children:[(0,n.jsx)("div",{className:"mb-1 mt-4 text-xs text-gray-500",children:a?"错误信息":"返回结果"}),(0,n.jsx)("pre",{className:"overflow-auto whitespace-pre-wrap rounded border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-log)] p-2 text-sm text-[var(--ds-text)]",style:!l&&d?{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:3,overflow:"hidden"}:void 0,children:u}),d?(0,n.jsx)("button",{type:"button",className:"mx-auto mt-1 flex items-center justify-center border-0 bg-transparent p-0 text-zinc-500 transition-colors hover:bg-transparent hover:text-zinc-700",onClick:()=>i(e=>{let t=!e;return null==s||s(t),t}),"aria-label":l?"收起":"展开",title:l?"收起":"展开",children:l?(0,n.jsx)(v.default,{name:"ChevronsUp",size:16,strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronsDown",size:16,strokeWidth:1})}):null,a&&c.length>0&&(0,n.jsx)("ul",{className:"mt-2 list-disc pl-4 text-xs text-orange-600",children:c.map((e,t)=>(0,n.jsx)("li",{children:e},t))})]})]})}let z={default:{border:"#AFA9EC",previewColor:"var(--color-text-secondary)",openBackground:"rgba(175, 169, 236, 0.08)"},decision:{border:"#EF9F27",previewColor:"#7a6000",openBackground:"rgba(239, 159, 39, 0.08)"},recovery:{border:"#F09595",previewColor:"#A32D2D",openBackground:"rgba(240, 149, 149, 0.08)"}};function P(e){let{payload:t,usage:s,compact:l=!1,streaming:i=!1}=e,[a,o]=(0,r.useState)(()=>i),c=(0,r.useRef)(i);(0,r.useEffect)(()=>{let e=c.current;i?o(!0):e&&o(!1),c.current=i},[i]);let u=z["string"==typeof t.status&&("default"===t.status||"decision"===t.status||"recovery"===t.status)?t.status:"default"],d=(0,r.useMemo)(()=>(function(e){for(let t of[e.thinking,e.content,e.text])if("string"==typeof t&&t.trim())return t;return""})(t),[t]),m=(0,r.useMemo)(()=>(function(e){let t=e.durationMs;if("number"!=typeof t||!Number.isFinite(t)||t<0)return"";let n=(t/1e3).toFixed(1);return"0.0"===n?"":"".concat(n,"s")})(t),[t]),p=i?"思考中":"已思考",f=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(!i||!a)return;let e=f.current;e&&!(e.scrollHeight<=e.clientHeight)&&(e.scrollTop=e.scrollHeight)},[d,i,a]),(0,n.jsxs)("div",{"data-thinking-usage":s,"data-thinking-state":i?"active":"done",style:{},className:"my-1 transition-colors",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{i||o(e=>!e)},className:"flex w-full items-center gap-2 border-0 bg-transparent text-left ".concat(l?"px-2.5 py-1.5":"px-0 py-1.5"," cursor-pointer"),"aria-expanded":a,"aria-label":p,children:[(0,n.jsx)("span",{className:"shrink-0 text-[12px] font-medium ".concat(i?"loading-sweep":""),style:{color:"#b3b3b3"},children:p}),m?(0,n.jsx)("span",{className:"shrink-0 font-mono text-xs text-[var(--text-secondary)]",children:m}):null,a?(0,n.jsx)(v.default,{name:"ChevronDown",size:8,className:"text-[#8A8985]",strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronRight",size:8,className:"text-[#8A8985]",strokeWidth:1})]}),a?(0,n.jsx)("div",{className:"border-t pb-2.5 pr-3 pt-1.5",style:{borderColor:"".concat(u.border,"66")},children:(0,n.jsx)("div",{ref:f,className:"max-h-40 overflow-y-auto whitespace-pre-wrap break-words font-mono leading-[1.6] text-[var(--text-tertiary)]",children:d||"(无思考内容)"})}):null]})}function F(e){if(!e)return"";let t=new Date(e);return Number.isFinite(t.getTime())?new Intl.DateTimeFormat("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(t):e}function K(e){var t,s,l;let{input:i,toolUseId:a,createdAt:o,result:c,fired:u=!1}=e,d=null!=(l=null==c||null==(t=c.scheduleClock)?void 0:t.utcIso)?l:null==c||null==(s=c.scheduleClock)?void 0:s.localDateTime,m=function(e){let[t,n]=(0,r.useState)(()=>Date.now());if((0,r.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(t)},[e]),!e)return"";let s=Math.round((new Date(e).getTime()-t)/1e3);if(!Number.isFinite(s))return"";if(s<=0)return"已到触发时间";if(s<60)return"".concat(s," 秒后触发");if(s<3600)return"".concat(Math.ceil(s/60)," 分钟后触发");let l=Math.floor(s/3600),i=Math.ceil((s-3600*l)/60);return"".concat(l," 小时 ").concat(i," 分钟后触发")}(u?void 0:d),p=!c,f=!!(null==c?void 0:c.error),h=i.action||(null==c?void 0:c.action)||"create",g=(0,r.useMemo)(()=>p?{label:"创建定时任务中...",icon:"Loader2"}:f?{label:"调度任务失败",icon:"CircleX"}:"cancel"===h?{label:"已取消定时任务",icon:"CircleX"}:"list"===h?{label:"定时任务列表",icon:"Info"}:u?{label:"定时任务已触发",icon:"CircleCheckBig"}:{label:"已创建定时任务",icon:"CheckCircle2"},[h,u,f,p]);return(0,n.jsxs)("div",{className:["schedule-tool-card",u?"is-fired":"",f?"is-error":""].filter(Boolean).join(" "),"data-tool-use-id":a,children:[(0,n.jsxs)("div",{className:"schedule-tool-card-head",children:[(0,n.jsx)(v.default,{name:g.icon,size:14,className:p?"animate-spin":void 0,strokeWidth:1.6}),(0,n.jsx)("span",{children:g.label}),(null==c?void 0:c.id)?(0,n.jsxs)("code",{className:"schedule-tool-card-id",children:["#",c.id]}):null]}),i.prompt?(0,n.jsxs)("div",{className:"schedule-tool-card-prompt",children:[(0,n.jsx)("div",{className:"schedule-tool-card-prompt-label",children:"到点后派发给 Agent 的提示"}),(0,n.jsx)("div",{className:"schedule-tool-card-prompt-body",children:i.prompt})]}):null,(0,n.jsxs)("div",{className:"schedule-tool-card-meta",children:[d?(0,n.jsxs)("span",{children:["触发于 ",F(d),m?(0,n.jsxs)("em",{children:[" · ",m]}):null]}):void 0!==i.delayMinutes?(0,n.jsxs)("span",{children:["延迟 ",String(i.delayMinutes)," 分钟"]}):null,(null==c?void 0:c.recurring)!==void 0?(0,n.jsx)("span",{children:c.recurring?"循环任务":"一次性任务"}):null,(null==c?void 0:c.cron)?(0,n.jsxs)("span",{children:["cron ",(0,n.jsx)("code",{children:c.cron})]}):null,o?(0,n.jsxs)("span",{title:o,children:["创建于 ",F(o)]}):null]}),f&&(null==c?void 0:c.error)?(0,n.jsx)("div",{className:"schedule-tool-card-error",children:c.error}):null]})}var B=e.i(13014),Y=e.i(92369);function U(e,t){var n,r;let s=parseInt(null!=(n=e.split(".")[0])?n:"",10),l=parseInt(null!=(r=t.split(".")[0])?r:"",10);return!!Number.isFinite(s)&&!!Number.isFinite(l)&&l>s}function q(e){return{changes:e,cveCount:e.filter(e=>!!e.cve).length,breakingCount:e.filter(e=>e.breaking).length}}var H=e.i(96745);function V(e){let{patchData:t}=e,r=[{num:t.changes.length,label:"待更新",color:"text-amber-600"},{num:t.cveCount,label:"CVE 修复",color:"text-red-600"},{num:t.breakingCount,label:"破坏性变更",color:"text-emerald-600"}];return(0,n.jsx)("div",{className:"grid grid-cols-3 gap-2",children:r.map(e=>(0,n.jsxs)("div",{className:"rounded-md border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-main-tint)] px-2 py-2 text-center",children:[(0,n.jsx)("div",{className:(0,H.cn)("text-lg font-semibold leading-none",e.color),children:e.num}),(0,n.jsx)("div",{className:"mt-1 text-[10px] text-[var(--ds-muted)]",children:e.label})]},e.label))})}function J(e){let{changes:t}=e;return 0===t.length?(0,n.jsx)("p",{className:"text-xs text-[var(--ds-muted)]",children:"暂无结构化变更明细,请查看下方参数预览。"}):(0,n.jsx)(B.AppTable,{rows:t,getRowKey:e=>e.package,className:"rounded-md",columns:[{key:"package",title:"包名",cellClassName:"font-mono text-xs",render:e=>e.package},{key:"from",title:"当前",cellClassName:"font-mono text-xs text-[var(--ds-muted)]",render:e=>e.from},{key:"to",title:"目标",cellClassName:"font-mono text-xs text-[var(--ds-text)]",render:e=>e.to},{key:"reason",title:"说明",cellClassName:"text-xs",render:e=>{var t;return(0,n.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-1",children:[e.cve?(0,n.jsx)("span",{className:"rounded bg-red-500/10 px-1 py-0.5 font-mono text-[10px] text-red-600",children:e.cve}):null,(0,n.jsx)("span",{children:null!=(t=e.reason)?t:"-"})]})}}]})}function Q(e){let{preview:t}=e;return(0,n.jsx)("pre",{className:"max-h-48 overflow-auto rounded-md border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-log)] p-2 font-mono text-[11px] text-[var(--ds-text)]",children:function(e){try{return JSON.stringify(e,null,2)}catch(t){return String(null!=e?e:"")}}(t)})}function X(e){var t;let{variant:r,title:s,subtitle:l,description:i,confirmState:a,patchData:o,preview:c,children:u,confirmLabel:d="确认并继续执行",rejectLabel:m="拒绝,终止任务流",onConfirm:p,onReject:f,disabled:h=!1}=e,g="pending"===a,x="confirmed"===a,v="rejected"===a,b=null!=u?u:"patch"===r?(0,n.jsxs)("div",{className:"space-y-3",children:[i?(0,n.jsx)("p",{className:"text-xs leading-relaxed text-[var(--ds-muted)]",children:i}):null,o?(0,n.jsx)(V,{patchData:o}):null,(0,n.jsx)(J,{changes:null!=(t=null==o?void 0:o.changes)?t:[]}),(null==o?void 0:o.changes.length)||void 0===c?null:(0,n.jsx)(Q,{preview:c})]}):(0,n.jsxs)("div",{className:"space-y-2",children:[i?(0,n.jsx)("p",{className:"text-xs leading-relaxed text-[var(--ds-muted)]",children:i}):null,void 0!==c?(0,n.jsx)(Q,{preview:c}):null]});return(0,n.jsxs)("div",{className:(0,H.cn)("mt-2 rounded-lg border p-3",g&&"border-amber-500/40 bg-amber-500/5",x&&"border-emerald-500/40 bg-emerald-500/5",v&&"border-red-500/40 bg-red-500/5"),children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,n.jsx)("span",{className:(0,H.cn)("flex h-7 w-7 shrink-0 items-center justify-center rounded-full",g&&"bg-amber-500/15 text-amber-600",x&&"bg-emerald-500/15 text-emerald-600",v&&"bg-red-500/15 text-red-600"),"aria-hidden":!0,children:g?"!":x?"✓":"✕"}),(0,n.jsx)("div",{className:"min-w-0",children:(0,n.jsx)("p",{className:"font-medium text-[var(--ds-text)]",children:s})})]}),(0,n.jsx)("div",{className:"mb-3",children:b}),g?(0,n.jsxs)("div",{className:"flex flex-wrap justify-end gap-2",children:[(0,n.jsx)(Y.Button,{type:"button",variant:"plain-outline",size:"sm",className:"cursor-pointer",disabled:h,onClick:f,children:m}),(0,n.jsx)(Y.Button,{type:"button",variant:"default",size:"sm",className:"cursor-pointer text-white",disabled:h,onClick:p,children:d})]}):(0,n.jsx)("div",{className:(0,H.cn)("rounded-md px-2 py-1.5 text-xs",x&&"bg-emerald-500/10 text-emerald-700",v&&"bg-red-500/10 text-red-700"),children:x?"已确认,继续执行后续步骤…":"已拒绝,该权限请求已终止。"})]})}let G=new Set(["patch-library-governance"]);var Z=e.i(3402),$=e.i(14261);function ee(e){let t=0x811c9dc5;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,0x1000193);return(t>>>0).toString(36)}function et(e,t){return e.slice(t+1).some(e=>"toolContainer"===e.type)?"text":"final"}function en(e){var t;let n=(null==(t=(e.resultText.trim()||"等待工具返回结果…").split("\n")[0])?void 0:t.replace(/\s+/g," ").trim())||"等待工具返回结果…";return n.length<=80?n:"".concat(n.slice(0,80),"…")}function er(e){if(null==e)return"-";try{let t=("string"==typeof e?e:JSON.stringify(e)).replace(/\s+/g," ").trim();if(!t)return"-";return t.length<=48?t:"".concat(t.slice(0,48),"…")}catch(t){return String(e)}}let es={bash:"终端",read_file:"读取文件",write:"写入文件",grep:"文本搜索",glob:"文件搜索",web_search:"网页搜索",task:"子任务"};function el(e){var t;let n=function(e){if(!e)return"tool";let t=e.trim(),n=t.match(/^mcp__[^_]+__(.+)$/);return(null==n?void 0:n[1])||t}(e);return null!=(t=es[n])?t:n}function ei(e){let{status:t}=e;return"pending"===t?(0,n.jsx)(v.default,{name:"Dot",size:14,className:"shrink-0 text-[#b0bac8]",strokeWidth:2}):"error"===t?(0,n.jsx)(v.default,{name:"CircleX",size:14,className:"shrink-0 !text-[#A32D2D]",strokeWidth:1}):(0,n.jsx)(v.default,{name:"CheckCircle2",size:14,className:"shrink-0 text-[#b4c4b9]",strokeWidth:1})}function ea(e){let{className:t}=e;return(0,n.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",className:t,children:[(0,n.jsx)("path",{d:"M13.04 7.304a.5.5 0 0 1 .92.392C13.665 8.386 13.089 9 12.3 9c-.487 0-.892-.234-1.2-.574-.309.34-.713.574-1.2.574-.486 0-.892-.234-1.2-.574-.31.34-.714.574-1.2.574a.5.5 0 0 1 0-1c.212 0 .52-.18.74-.696a.5.5 0 0 1 .92 0c.221.516.528.696.74.696.213 0 .52-.18.74-.696l.035-.067a.5.5 0 0 1 .885.067c.22.516.527.696.74.696s.519-.18.74-.696"}),(0,n.jsx)("path",{fillRule:"evenodd",d:"M14 3a2 2 0 0 1 2 2v8h1.5a.5.5 0 0 1 .5.5V15a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4H4a1 1 0 0 0-.745 1.667.5.5 0 0 1-.745.666A2 2 0 0 1 4 3zM6 15a1 1 0 1 0 2 0v-1.5a.5.5 0 0 1 .5-.5H15V5a1 1 0 0 0-1-1H6zm3 0c0 .365-.1.706-.27 1H16a1 1 0 0 0 1-1v-1H9z",clipRule:"evenodd"})]})}function eo(e){let{className:t}=e;return(0,n.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,className:t,children:(0,n.jsx)("path",{d:"M11.586 2a1.5 1.5 0 0 1 1.06.44l2.914 2.914a1.5 1.5 0 0 1 .44 1.06V16.5a1.5 1.5 0 0 1-1.5 1.5h-9a1.5 1.5 0 0 1-1.492-1.347L4 16.5v-13A1.5 1.5 0 0 1 5.5 2zM5.5 3a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5V7h-2.5A1.5 1.5 0 0 1 11 5.5V3zm7.04 10.304a.5.5 0 0 1 .92.392c-.295.69-.871 1.304-1.66 1.304-.487 0-.892-.234-1.2-.574-.309.34-.713.574-1.2.574-.486 0-.892-.233-1.2-.574-.31.34-.714.574-1.2.574a.5.5 0 0 1 0-1c.212 0 .52-.18.74-.696l.034-.067a.5.5 0 0 1 .886.067c.221.516.528.696.74.696.213 0 .52-.18.74-.696l.035-.067a.5.5 0 0 1 .885.067c.22.516.527.696.74.696s.519-.18.74-.696m0-4a.5.5 0 0 1 .92.392c-.295.69-.871 1.304-1.66 1.304-.487 0-.892-.234-1.2-.574-.309.34-.713.574-1.2.574-.486 0-.892-.233-1.2-.574-.31.34-.714.574-1.2.574a.5.5 0 0 1 0-1c.212 0 .52-.18.74-.696l.034-.067a.5.5 0 0 1 .886.067c.221.516.528.696.74.696.213 0 .52-.18.74-.696l.035-.067a.5.5 0 0 1 .885.067c.22.516.527.696.74.696s.519-.18.74-.696M12 5.5a.5.5 0 0 0 .5.5h2.293L12 3.207z"})})}function ec(e){let{text:t,variant:r}=e,s="final"===r;return s?(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"agent-timeline-label-row pt-2",children:[(0,n.jsx)("span",{className:s?"tag tag-final":"tag tag-text",children:s?"最终回答":"assistant text"}),(0,n.jsx)("span",{className:"agent-timeline-label-hint",children:s?"所有工具调用完成后输出":""})]}),s&&(0,n.jsx)("div",{className:"agent-timeline-thinking".concat(s?"agent-timeline-thinking--final":""),children:t})]}):(0,n.jsx)("div",{className:"agent-timeline-thinking !pt-1",children:t})}function eu(e){let{group:t,permissionQueue:r}=e;return(0,Z.toolContainerGroupHasPendingPermission)(t,r)?(0,n.jsx)("span",{className:"agent-timeline-dot-blocked absolute -left-[40px] top-0.5 z-10 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full !bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)("span",{className:"inline-block rotate-90 leading-none",children:"⚠"})}):(0,n.jsx)("span",{className:"agent-timeline-dot-tool absolute -left-[40px] top-0.5 z-10 inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)(ea,{className:"h-5 w-5 shrink-0 text-[#6e6e6e]"})})}function ed(e){let{tool:t}=e,s=(0,l.useAppStore)(e=>e.permissionQueue),i=(0,r.useMemo)(()=>(0,Z.findMatchingPermissionRequest)(s,t),[s,t]);return"pending"!==t.status?null:i?(0,n.jsx)(em,{tool:t,permission:i}):(0,n.jsx)("div",{className:"rounded-md border border-[#223044] bg-[rgba(50,100,180,.07)] px-3 py-2 text-xs text-[#4d80c4]",children:"等待工具返回结果…"})}function em(e){let{tool:t,permission:r}=e,s=(0,l.useAppStore)(e=>e.setPermissionConfirmState),i=(0,l.useAppStore)(e=>e.dequeuePermissionRequest),{sendPermissionResponse:a}=(0,o.useWorkspaceRuntime)(),c=function(e){var t;let n=null!=(t=e.skillName)?t:function(e){if(!e||"object"!=typeof e)return;let t=e.skill;return"string"==typeof t&&t.trim()?t.trim():void 0}(e.input),r=e.toolName.trim()||"tool",s="".concat(r," 权限请求"),l=e.description.trim()||(n?"Execute skill: ".concat(n):"该工具需要您的确认"),i=function(e){if(!e||"object"!=typeof e)return null;let t=[e];for(let n of(e.patchData&&"object"==typeof e.patchData&&t.push(e.patchData),e.input&&"object"==typeof e.input&&t.push(e.input),t)){if(n.dependencies&&"object"==typeof n.dependencies&&!Array.isArray(n.dependencies)){let e=Object.entries(n.dependencies).map(e=>{var t,n,r,s;let[l,i]=e;return{package:l,from:String(null!=(t=i.from)?t:""),to:String(null!=(n=i.to)?n:""),reason:"string"==typeof i.reason?i.reason:void 0,cve:"string"==typeof i.cve?i.cve:void 0,breaking:U(String(null!=(r=i.from)?r:""),String(null!=(s=i.to)?s:""))}});if(e.length>0)return q(e)}if(Array.isArray(n.changes)&&n.changes.length>0){let e=function(e){let t=[];for(let s of e){var n,r;let e="string"==typeof s.package&&s.package||"string"==typeof s.name&&s.name||"";if(!e)continue;let l=String(null!=(n=s.from)?n:""),i=String(null!=(r=s.to)?r:"");t.push({package:e,from:l,to:i,reason:"string"==typeof s.reason?s.reason:void 0,cve:"string"==typeof s.cve?s.cve:void 0,breaking:"boolean"==typeof s.breaking?s.breaking:U(l,i)})}return t}(n.changes);if(e.length>0)return q(e)}}return null}(e.input);return i||n&&G.has(n)?{variant:"patch",title:s,subtitle:l,description:e.description.trim()||void 0,patchData:i,preview:e.input}:{variant:"generic",title:s,subtitle:l,description:e.description.trim()||"该工具需要您的确认",preview:e.input}}(r);return"pending"!==t.status?null:(0,n.jsx)(X,{variant:c.variant,title:c.title,subtitle:c.subtitle,description:c.description,confirmState:r.confirmState,patchData:c.patchData,preview:c.preview,onConfirm:()=>{a(r.requestId,"allow"),s(r.requestId,"confirmed"),window.setTimeout(()=>{i(r.requestId)},1200)},onReject:()=>{a(r.requestId,"deny"),s(r.requestId,"rejected"),window.setTimeout(()=>{i(r.requestId)},1200)},disabled:"pending"!==r.confirmState})}function ep(e){let{group:t,totalToolCalls:s,completedToolCalls:i,runId:a,agentName:o,streaming:c,scheduledTaskIndex:u}=e,[d,m]=(0,r.useState)(!0),[,p]=(0,r.useState)(!1),[f,h]=(0,r.useState)(!1),[g,x]=(0,r.useState)({}),b=(0,r.useRef)(null),y=(0,r.useRef)(null),j=(0,r.useRef)(null),w=(0,r.useRef)(null),S=(0,r.useMemo)(()=>(function(e){let t=new Map;for(let n of e){let e=n.toolName||"tool",r=t.get(e);if(r){r.push(n);continue}t.set(e,[n])}return Array.from(t.entries()).map(e=>{let[t,n]=e;return{toolName:t,items:n}})})(t.tools),[t.tools]),N=(0,r.useMemo)(()=>t.tools.map(e=>"".concat(e.toolUseId,":").concat(e.status,":").concat(e.resultText.length)).join("|"),[t.tools]),k=(0,l.useAppStore)(e=>e.permissionQueue),A=(0,r.useMemo)(()=>{let e=k.filter(e=>"pending"===e.confirmState),n=new Set;for(let r of t.tools)"pending"===r.status&&(0,Z.findMatchingPermissionRequest)(e,r)&&n.add(r.toolUseId);return n},[t.tools,k]),_=A.size>0;(0,r.useEffect)(()=>{_&&(m(!0),x(e=>{let t={...e};for(let e of A)t[e]=!0;return t}))},[_,A]),(0,r.useEffect)(()=>()=>{null!=y.current&&window.clearTimeout(y.current),null!=j.current&&window.clearTimeout(j.current),null!=w.current&&window.clearTimeout(w.current)},[]),(0,r.useEffect)(()=>{if(null!=y.current&&(window.clearTimeout(y.current),y.current=null),null!=j.current&&(window.clearTimeout(j.current),j.current=null),"pending"===t.status)return void p(!1);y.current=window.setTimeout(()=>{p(!0),y.current=null},300),f||(j.current=window.setTimeout(()=>{m(!1),j.current=null},300))},[t.status,f]);let C=d||_;(0,r.useEffect)(()=>{C&&(_||c&&"pending"===t.status&&!f)&&(()=>{let e=b.current;if(!e)return;let t=()=>{e.scrollTop=e.scrollHeight};t(),requestAnimationFrame(t),null!=w.current&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>{t(),w.current=null},320)})()},[C,N,_,c,t.status,f]);let E=(0,r.useMemo)(()=>{var e;let n=t.tools.find(e=>"pending"===e.status);return el((null==n?void 0:n.toolName)||(null==(e=t.tools[0])?void 0:e.toolName)||"tool")},[t.tools]),M=(0,r.useMemo)(()=>t.tools.length>1?"".concat(E," 等 ").concat(t.tools.length," 个工具"):"pending"===t.status?"已执行":"完成",[t.status,t.tools.length,E]),I=(0,r.useMemo)(()=>{let e={type:"tool",tagClassName:"tag tag-tool",tagLabel:"工具调用面板",title:E,tagHint:t.tools.length>1?"本批 ".concat(t.tools.length," 个并发调用"):"工具执行与结果",runId:a||""};return"pending"===t.status?{...e,status:M,label:"等待工具返回…",panelModifier:"agent-timeline-tool-panel--done",headerModifier:"agent-timeline-tool-header--done"}:"error"===t.status?{...e,status:M,label:t.summary?"摘要:".concat(t.summary):"已完成(含错误)",panelModifier:"agent-timeline-tool-panel--error",headerModifier:"agent-timeline-tool-header--error"}:{...e,status:M,label:t.summary?"摘要:".concat(t.summary):"已完成",panelModifier:"agent-timeline-tool-panel--done",headerModifier:"agent-timeline-tool-header--done"}},[t.status,t.summary,M,t.tools.length,a,E]),T=(0,r.useMemo)(()=>{let e=t.tools.find(e=>"pending"===e.status);if(!e)return"";let n=er(e.input);return"".concat(el(e.toolName)," · ").concat(n)},[t.tools]);if(1===t.tools.length&&t.tools[0].isSchedule){var O;let e=t.tools[0],r=(0,$.parseScheduleToolResult)(e.resultRaw),s=null==r?void 0:r.id,l=!!s&&(null==u||null==(O=u.get(s))?void 0:O.status)==="fired";return(0,n.jsx)(K,{input:e.input&&"object"==typeof e.input?e.input:{},toolUseId:e.toolUseId,createdAt:t.timestamp,result:r,fired:l})}return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{className:"agent-timeline-tool-panel ".concat(I.panelModifier),children:[(0,n.jsx)("button",{type:"button",onClick:()=>{h(!0),m(e=>!e)},className:"agent-timeline-tool-header !border-0 ".concat(I.headerModifier),"aria-expanded":C,children:(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5",children:[(0,n.jsxs)("div",{className:"agent-timeline-tool-title min-w-0 truncate ".concat(I.tagClassName),children:[o||I.runId," · ",I.status]}),(0,n.jsx)("div",{className:"agent-timeline-tool-meta min-w-0 truncate",children:"pending"===t.status&&T?T:I.label}),(0,n.jsx)("div",{className:"agent-timeline-tool-calls",children:"pending"===t.status?"".concat(i,"/").concat(s):""})]})}),(0,n.jsx)("div",{className:"overflow-hidden transition-all duration-300 ".concat(C?"max-h-[min(50vh,22rem)]":"max-h-0"),children:(0,n.jsx)("div",{ref:b,className:"max-h-[min(50vh,22rem)] overflow-y-auto border-t border-black/5 bg-[#f9f9f7] px-2.5 py-1.5",children:(0,n.jsxs)("div",{className:"relative space-y-2.5 pl-6",children:[(0,n.jsx)("div",{className:"absolute bottom-1 left-2 top-1 w-px bg-[#efefef]","aria-hidden":!0}),S.map(e=>(0,n.jsx)("div",{className:"space-y-1.5",children:e.items.map((e,t)=>{let r=!0===g[e.toolUseId]||A.has(e.toolUseId);return(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)("div",{className:"absolute -left-[24px] top-1 inline-flex bg-[#f9f9f9] pb-1",children:(0,n.jsx)("span",{className:"h-4 w-4 items-center justify-center rounded-full border border-[#e2e6ee] bg-[#f6f7fa]","aria-hidden":!0,children:(0,n.jsx)(ei,{status:e.status})})}),(0,n.jsxs)("div",{className:"rounded-[4px] border border-white/5 bg-[#f9f9f9] ".concat("error"===e.status?"bg-[rgba(120,30,30,.07)]":""),children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{x(t=>({...t,[e.toolUseId]:!t[e.toolUseId]}))},className:"flex w-full items-center justify-between gap-1.5 border-0 bg-transparent px-2 py-1 text-left text-[#535353] transition-colors hover:text-[#343d52]","aria-expanded":r,children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5 font-mono text-[10.5px]",children:[(0,n.jsx)("span",{className:"w-5 shrink-0 text-[#252e3e]",children:String(t+1).padStart(2,"0")}),(0,n.jsx)("span",{className:"max-w-36 shrink-0 truncate font-medium ".concat("error"===e.status?"text-[#A32D2D]":"done"===e.status?"text-[#3B6D11]":"text-[#5a8ec4]"),children:el(e.toolName)}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate text-[#353f52]",children:er(e.input)}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate italic ".concat("error"===e.status?"text-[#6e2828]":"text-[#2e5a38]"),children:en(e)})]}),(0,n.jsx)("span",{className:"shrink-0 text-[#343d52]","aria-hidden":!0,children:r?(0,n.jsx)(v.default,{name:"ChevronsUp",size:12,strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronsDown",size:12,strokeWidth:1})})]}),(0,n.jsx)("div",{className:"transition-all duration-300 ".concat(r?"max-h-[2000px] overflow-visible":"max-h-0 overflow-hidden"),children:(0,n.jsxs)("div",{className:"space-y-1.5 border-t border-white/5 bg-white/[.012] px-2 py-1.5",children:[(0,n.jsx)(D,{data:{type:"tool_use",id:e.toolUseId,name:e.toolName,input:e.input}}),e.attachedThinkings.length>0?(0,n.jsx)("div",{className:"space-y-1 border-l-2 border-[#e4dfc8] pl-2 opacity-90",children:e.attachedThinkings.map((t,r)=>(0,n.jsx)(P,{payload:t,usage:"tool-attached",compact:!0},"".concat(e.toolUseId,"-thinking-").concat(r,"-").concat(ee(JSON.stringify(t)))))}):null,(0,n.jsx)(ed,{tool:e}),"pending"!==e.status?(0,n.jsx)(W,{data:{type:"tool_result",tool_use_id:e.toolUseId,is_error:"error"===e.status,content:e.resultRaw}}):null]})})]})]},e.toolUseId)})},e.toolName))]})})})]})})}function ef(e){let{messages:t,runId:s,agentName:i,streaming:a=!1,ev:o,scheduledTaskIndex:c}=e,u=(0,r.useMemo)(()=>{if("string"==typeof s&&s.trim())return s;if("string"==typeof(null==o?void 0:o.runId)&&o.runId.trim())return o.runId;for(let e of t){if(!e||"object"!=typeof e)continue;let t=e.runId;if("string"==typeof t&&t.trim())return t}return""},[null==o?void 0:o.runId,t,s]),d=(0,r.useMemo)(()=>{if("string"==typeof i&&i.trim())return i;if("string"==typeof(null==o?void 0:o.sourceAgent)&&o.sourceAgent.trim())return o.sourceAgent;for(let e of t){if(!e||"object"!=typeof e)continue;let t=e.agent_name;if("string"==typeof t&&t.trim())return t}return""},[i,null==o?void 0:o.sourceAgent,t]),m=(0,r.useMemo)(()=>(function(e){let t=[],n=0,r=[],s=new Map,l="",i=[],a=()=>"tool-use-".concat(n++),o=()=>r.filter(e=>"pending"===e.status),c=()=>{if(0!==i.length){for(let e of i)t.push({type:"thinking",payload:e.payload,timestamp:e.timestamp,key:e.key});i=[]}},u=e=>{0!==i.length&&(e.attachedThinkings.push(...i.map(e=>e.payload)),i=[])},d=()=>{if(0===i.length)return;let e=o(),t=1===e.length?e[0]:r[r.length-1];if(!t)return void c();u(t)},m=()=>{if(0===r.length)return;d();let e=r.map(e=>({...e,attachedThinkings:[...e.attachedThinkings]}));t.push({type:"toolContainer",status:e.some(e=>"error"===e.status)?"error":e.some(e=>"pending"===e.status)?"pending":"done",summary:function(e){let t=e.map(e=>e.resultText.trim()).filter(e=>e.length>0);for(let e of t){let t=e.match(/(\d+)\s*(?:条|个)?(?:命中|结果|items?)/i);if(null==t?void 0:t[1])return"".concat(t[1]," 条结果")}let n=t[0];if(!n)return"";let r=n.replace(/\s+/g," ").trim();return r.length<=30?r:"".concat(r.slice(0,30),"…")}(e),tools:e,timestamp:l||new Date().toISOString()}),r=[],s=new Map,l=""},p=()=>{var e;(e=r).length>0&&e.every(e=>"pending"!==e.status)&&m()},f=(e,t)=>{let n,i=function(e){if("string"==typeof e)return e;if(!Array.isArray(e))try{return JSON.stringify(e,null,2)}catch(t){return String(null!=e?e:"")}let t=[];for(let n of e)if(n&&"object"==typeof n){if("text"===n.type&&"string"==typeof n.text){t.push(n.text);continue}try{t.push(JSON.stringify(n,null,2))}catch(e){t.push(String(n))}}return t.join("\n").trim()}(e.content),o=!0===e.is_error||/\berror\b/i.test(i)?"error":"done",c="string"==typeof e.tool_use_id?e.tool_use_id:"";if(c&&(n=s.get(c)),n||c||(n=r.find(e=>"pending"===e.status)),!n){l||(l=t);let n=c||a(),d={toolUseId:n,toolName:"tool",input:null,status:o,resultText:i,resultRaw:e.content,attachedThinkings:[],isSchedule:!1};u(d),r.push(d),s.set(n,d),p();return}u(n),n.status=o,n.resultText=i,n.resultRaw=e.content,p()},h=(t,n)=>T(t,I(e,n));for(let n=0;n<e.length;n+=1){var g;let m=(g=e[n])&&"object"==typeof g?g:null;if(!m||!0===m.isMeta)continue;let x=function(e){var t,n;let r=null!=(n=null==(t=e.message)?void 0:t.timestamp)?n:e.timestamp;return"string"==typeof r&&r.trim()?r:new Date().toISOString()}(m),v=function(e){var t;let n=null==(t=e.message)?void 0:t.content;return Array.isArray(n)?n.filter(e=>!!e&&"object"==typeof e):[]}(m);for(let e=0;e<v.length;e+=1){let m=v[e];if("text"===m.type&&"string"==typeof m.text){if(!m.text.trim())continue;r.length>0?d():c(),p(),t.push({type:"thought",text:m.text,timestamp:x});continue}if("markdown"===m.type&&"string"==typeof m.content){if(!m.content.trim())continue;r.length>0?d():c(),p(),t.push({type:"thought",text:m.content,timestamp:x});continue}if("thinking"===m.type){let r=h(m,n),s="thinking-".concat(n,"-").concat(e,"-").concat(x),l=o();1===l.length?l[0].attachedThinkings.push(r):l.length>1?i.push({payload:r,timestamp:x,key:s}):(c(),t.push({type:"thinking",payload:r,timestamp:x,key:s}));continue}if("tool_use"===m.type){p();let e="string"==typeof m.id&&m.id?m.id:a(),t="string"==typeof m.name&&m.name.trim()?m.name:"tool";0===r.length&&(l=x);let n={toolUseId:e,toolName:t,input:m.input,status:"pending",resultText:"",resultRaw:null,attachedThinkings:[],isSchedule:t===$.SCHEDULE_TOOL_NAME};u(n),r.push(n),s.set(e,n);continue}"tool_result"===m.type&&(0!==r.length||l||(l=x),f(m,x))}}return m(),t})(t),[t]),p=(0,r.useMemo)(()=>{for(let e=m.length-1;e>=0;e-=1)if("thinking"===m[e].type)return e;return -1},[m]),f=m.filter(e=>"toolContainer"===e.type),h=(0,r.useMemo)(()=>f.reduce((e,t)=>e+t.tools.length,0),[f]),g=(0,r.useMemo)(()=>f.reduce((e,t)=>e+t.tools.filter(e=>"pending"!==e.status).length,0),[f]),x=f.length>0,b=(0,r.useMemo)(()=>!a&&f.every(e=>e.tools.every(e=>"pending"!==e.status)),[f,a]),[y,j]=(0,r.useState)(!0),S=(0,r.useRef)(!1),N=(0,r.useRef)(a),k=(0,r.useRef)(a),A=(0,r.useMemo)(()=>f.some(e=>e.tools.some(e=>"error"===e.status)),[f]),_=(0,r.useMemo)(()=>f.find(e=>"pending"===e.status)||f[f.length-1]||null,[f]),C=(0,r.useMemo)(()=>{if(!_)return{title:"工具调用面板",detail:"等待工具调用",toolCount:0,agentName:d,runId:u};let e=_.tools.find(e=>"pending"===e.status),t=e||_.tools[_.tools.length-1],n=t?el(t.toolName):"tool";return{title:_.tools.length>1?"".concat(n," 等 ").concat(_.tools.length," 个工具"):(null==t?void 0:t.status)==="pending"?"".concat(n," · 已执行"):"".concat(n," · 已完成"),detail:(e?"".concat(n," · ").concat(er(e.input)):_.summary||en(t||_.tools[0]))||"工具执行与结果",toolCount:_.tools.length,agentName:d,runId:u}},[_,d,u]),E=(0,l.useAppStore)(e=>e.permissionQueue),M=(0,r.useMemo)(()=>{let e=E.filter(e=>"pending"===e.confirmState);if(0===e.length)return -1;for(let t=0;t<m.length;t+=1){let n=m[t];if("toolContainer"===n.type){for(let r of n.tools)if("pending"===r.status&&(0,Z.findMatchingPermissionRequest)(e,r))return t}}return -1},[m,E]),O=M>=0;(0,r.useEffect)(()=>{let e=N.current,t=a||e||k.current;if(O||A&&t){j(!1),a&&(k.current=!0),N.current=a;return}if(S.current){a&&(k.current=!0),N.current=a;return}if(e&&!a){j(!0),S.current=!1,N.current=a;return}if(!e&&a){j(!0),S.current=!1,k.current=!0,N.current=a;return}a&&(k.current=!0),N.current=a},[a,O,A]);let R=(0,r.useCallback)(()=>{S.current=!0,j(e=>!e)},[]),L=a&&y;return m.length?(0,n.jsxs)("div",{className:"chat-agent-timeline relative",children:[y?null:(0,n.jsx)("div",{className:"absolute bottom-1 left-2 top-6 w-px bg-[var(--ds-color-border-hover)]","aria-hidden":!0}),(0,n.jsx)("div",{className:"relative",children:(0,n.jsxs)("button",{type:"button",className:(0,H.cn)("agent-timeline-summary-bar cursor-pointer !text-[#e6e6e6] hover:!text-[#cfcfcf]"),onClick:R,"aria-expanded":!y,children:[(0,n.jsxs)("span",{className:(0,H.cn)("agent-timeline-summary-title rounded-md bg-[var(--ds-color-surface-item-active)] px-2 py-1",L&&"streaming-active"),children:[C.agentName||C.runId," · tool"]}),(0,n.jsx)("span",{className:"agent-timeline-summary-detail !flex-none",children:C.detail}),(0,n.jsx)("div",{className:"text-xs text-[#6e6e6e]",children:"".concat(h," 次")}),y?(0,n.jsx)(v.default,{name:"ChevronRight",size:8,className:"text-[#8A8985]",strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronDown",size:8,className:"text-[#8A8985]",strokeWidth:1})]})}),y?null:(0,n.jsx)("div",{className:"mt-[0.75rem] overflow-visible pl-9 opacity-100",children:(0,n.jsxs)("div",{className:"space-y-3",children:[m.map((e,t)=>{let r=M>=0&&t>M;return(0,n.jsxs)("div",{className:(0,H.cn)("relative",r&&"pointer-events-none opacity-50"),children:["thought"===e.type?(0,n.jsx)("span",{className:"absolute -left-[40px] top-0.5 z-10 flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc] ".concat("final"===et(m,t)?"agent-timeline-dot-final":"agent-timeline-dot-text"),"aria-hidden":!0,children:(0,n.jsx)(eo,{className:"h-5 w-5 shrink-0 text-[#6e6e6e]"})}):"thinking"===e.type?(0,n.jsx)("span",{className:"agent-timeline-dot-text absolute -left-[40px] top-0.5 z-10 flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)(v.default,{name:"Think",size:14,className:"text-[#6e6e6e]"})}):(0,n.jsx)(eu,{group:e,permissionQueue:E}),"thought"===e.type?(0,n.jsx)(ec,{text:e.text,variant:et(m,t)}):"thinking"===e.type?(0,n.jsx)(P,{payload:e.payload,usage:"agent-timeline",streaming:a&&t===p}):(0,n.jsx)(ep,{group:e,totalToolCalls:h,completedToolCalls:g,runId:u,agentName:d,streaming:a,scheduledTaskIndex:c})]},function(e){switch(e.type){case"thought":return"thought-".concat(e.timestamp,"-").concat(ee(e.text));case"thinking":return e.key;case"toolContainer":return"tool-".concat(e.timestamp,"-").concat(e.tools.map(e=>e.toolUseId).join("|"));default:return"timeline-".concat(String(e))}}(e))}),x&&b?(0,n.jsxs)("div",{className:"relative !mt-[1.25rem] font-mono text-base text-[#6e6e6e]",children:[(0,n.jsx)("span",{className:"absolute -left-[40px] -top-0.5 z-10 inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)(v.default,{name:"Check",size:8,className:"text-[#6e6e6e]",strokeWidth:1})}),"已完成"]}):null,x&&!b?(0,n.jsxs)("div",{className:"relative !mt-[1.25rem] font-mono text-xs text-[#6e6e6e]",role:"status","aria-live":"polite",children:[(0,n.jsx)("span",{className:"absolute -left-[40px] -top-0.5 z-10 inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)(w.Spinner,{className:"h-[14px] w-[14px] text-[#6e6e6e]"})}),"执行中"]}):null]})})]}):null}let eh=[{border:"#5DCAA5",headerBg:"#E1F5EE",headerText:"#085041",dot:"#0F6E56"}];function eg(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if("source"!==n.kind)continue;let r=n.payload;if(r&&("resolved"===r.status||"failed"===r.status))return r.status}return null}let ex=(0,r.memo)(function(e){let{ev:t,idx:r,renderItem:s}=e;return(0,n.jsx)("div",{children:s(t,r)})});function ev(e){let{block:t,paletteIndex:s,renderItem:l}=e,i=eh[s%eh.length],[a,o]=(0,r.useState)(!1),[c,u]=(0,r.useState)(!1),[d,m]=(0,r.useState)(!1),[p,f]=(0,r.useState)(0),h=(0,r.useRef)(null),g=(0,r.useRef)(null),{toolCount:x,errCount:b}=(0,r.useMemo)(()=>(function(e){let t=0,n=0,r=0;for(let s of e)if("conversation"===s.kind)for(let e of function(e){if(!e||"object"!=typeof e)return[];let t=e.message;if(!t||"object"!=typeof t)return[];let n=t.message;if(!n||"object"!=typeof n)return[];let r=n.content;return Array.isArray(r)?r.filter(e=>!!e&&"object"==typeof e):[]}(s.payload))"thinking"===e.type?t+=1:"tool_use"===e.type?n+=1:"tool_result"===e.type&&!0===e.is_error&&(r+=1);return{thinkCount:t,toolCount:n,errCount:r}})(t.items),[t.items]),y=(0,r.useMemo)(()=>eg(t.items),[t.items]),j=(0,r.useMemo)(()=>(function(e){let t=e=>e?("string"==typeof e.team_name?e.team_name:"string"==typeof e.teamName?e.teamName:"").trim():"",n=e=>{if(!e)return"";let t=e.content;if(!Array.isArray(t))return"";for(let e of t){var n;if(!e||"object"!=typeof e)continue;let t=e.text;if("string"!=typeof t||!t.trim())continue;let r=t.match(/(?:^|\n)\s*team_name\s*:\s*([^\n]+)/);if(null==r||null==(n=r[1])?void 0:n.trim())return r[1].trim()}return""},r=e=>{var t,n;if("string"!=typeof e||!e.trim())return"";let r=e.match(/(?:^|\n)\s*team_name\s*[:=]\s*([^\n]+)/);if(null==r||null==(t=r[1])?void 0:t.trim())return r[1].trim();let s=e.match(/(?:^|\n)\s*agent_id\s*:\s*[^\n@]+@([^\n]+)/);return(null==s||null==(n=s[1])?void 0:n.trim())?s[1].trim():""};for(let l of e){if(!l.payload||"object"!=typeof l.payload)continue;let e=l.payload,i=t(e);if(i)return i;let a=r(e.text);if(a)return a;if("string"==typeof e.source){var s;let t=e.source.match(/@(.+)$/);if(null==t||null==(s=t[1])?void 0:s.trim())return t[1].trim()}let o=e.message;if(!o||"object"!=typeof o)continue;let c=t(o);if(c)return c;let u=o.toolUseResult;if(u&&"object"==typeof u){let e=t(u);if(e)return e}let d=o.message;if(!d||"object"!=typeof d)continue;let m=d.content;if(Array.isArray(m)){for(let e of m)if(e&&"object"==typeof e){if("tool_use"===e.type){let n=e.input;if(n&&"object"==typeof n){let e=t(n);if(e)return e}}if("tool_result"===e.type){let r=t(e);if(r)return r;let s=n(e);if(s)return s}}}}return""})(t.items),[t.items]),w=(0,r.useMemo)(()=>null===eg(t.items),[t.items]),S=d?Math.min(p,t.items.length):0;(0,r.useEffect)(()=>()=>{null!=h.current&&window.cancelAnimationFrame(h.current),null!=g.current&&window.clearTimeout(g.current)},[]),(0,r.useEffect)(()=>{if(a&&d&&!(p>=t.items.length))return g.current=window.setTimeout(()=>{f(e=>Math.min(e+24,t.items.length)),g.current=null},0),()=>{null!=g.current&&window.clearTimeout(g.current),g.current=null}},[t.items.length,d,a,p]);let N=(t.runId||"").slice(0,8),k=t.sourceAgent||"unknown-agent";return(0,n.jsxs)("div",{className:"agent-block p-[var(--space-1)]","data-agent-work-phase":w?"active":"finished",style:{overflow:"hidden"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{if(a){o(!1),m(!1),u(!1),f(0),null!=h.current&&(window.cancelAnimationFrame(h.current),h.current=null),null!=g.current&&(window.clearTimeout(g.current),g.current=null);return}o(!0),u(!0),m(!1),f(Math.min(16,t.items.length)),null!=h.current&&window.cancelAnimationFrame(h.current),h.current=window.requestAnimationFrame(()=>{m(!0),h.current=null})},"aria-expanded":a,"aria-label":"".concat(k," · ").concat(y?" · ".concat(y):""),className:"agent-block-header ".concat(w?"slideHighlight":""),style:{display:"flex",alignItems:"center",gap:8,padding:"12px 0",border:"none",background:"transparent",cursor:"pointer",userSelect:"none",textAlign:"left"},children:[(0,n.jsxs)("span",{className:"rounded-md bg-[var(--ds-color-surface-item-active)] px-2 py-1",style:{fontSize:"var(--text-xs)",fontWeight:500,color:i.headerText,flexShrink:0},children:["SUBAGENT = ",k]}),j?(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",color:i.headerText,opacity:.65,flexShrink:0},children:["· ",j]}):null,(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",color:i.headerText,opacity:.65,flexShrink:0,fontFamily:"ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace"},children:["run:",N]}),(0,n.jsxs)("div",{style:{display:"flex",gap:4,alignItems:"center",marginLeft:4,flexShrink:0},children:[x>0?(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",padding:"1px 6px",borderRadius:20,background:"#EDEDED",color:i.headerText,fontWeight:400},children:["工具调用:",x]}):null,b>0?(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",padding:"1px 6px",borderRadius:20,background:"#FCEBEB",color:"#A32D2D",fontWeight:500},children:[b," err"]}):null]}),y?(0,n.jsx)("span",{style:{fontSize:"var(--text-xs)",padding:"1px 7px",borderRadius:20,fontWeight:500,marginLeft:4,background:"resolved"===y?"#EAF3DE":"#FCEBEB",color:"resolved"===y?"#3B6D11":"#A32D2D"},children:y}):null,(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",color:i.headerText,opacity:.55,marginLeft:4,flexShrink:0},children:[t.items.length," 条"]}),(0,n.jsx)("span",{style:{flex:1}}),(0,n.jsx)("span",{style:{transition:"transform .18s ease",transform:a?"rotate(90deg)":"none",flexShrink:0},children:(0,n.jsx)(v.default,{name:"ChevronRight",size:14,strokeWidth:1,color:i.headerText})})]}),c?(0,n.jsx)("div",{style:{padding:"8px 10px 10px",margin:"0",borderRadius:"8px",border:"1px solid ".concat(i.border,"40"),background:"#ffffff"},children:d?(0,n.jsxs)("div",{style:{maxHeight:"min(60vh, 680px)",overflowY:"auto",overflowX:"hidden",overscrollBehaviorY:"contain"},children:[t.items.slice(0,S).map((e,t)=>(0,n.jsx)(ex,{ev:e,idx:t,renderItem:l},"agent-block-item-".concat(t))),S<t.items.length?(0,n.jsx)("div",{style:{fontSize:"var(--)",color:"#717781",padding:"4px 0"},children:"加载更多内容..."}):null]}):(0,n.jsx)("div",{style:{fontSize:"var(--)",color:"#717781",padding:"4px 0"},children:"内容加载中..."})}):null]})}function eb(e){let{dispatchedPrompt:t,triggeredAt:r,children:s}=e;return(0,n.jsxs)("section",{className:"scheduled-turn","aria-label":"定时任务触发轮次",children:[(0,n.jsxs)("div",{className:"scheduled-turn-divider",children:[(0,n.jsx)(v.default,{name:"Info",size:14,strokeWidth:1.6}),(0,n.jsxs)("span",{children:["定时任务触发",r?(0,n.jsxs)("em",{children:[" · ",function(e){if(!e)return"";let t=new Date(e);return Number.isFinite(t.getTime())?new Intl.DateTimeFormat("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1}).format(t):e}(r)]}):null]})]}),t.trim()?(0,n.jsxs)("div",{className:"scheduled-turn-dispatch",children:[(0,n.jsxs)("div",{className:"scheduled-turn-dispatch-head",children:[(0,n.jsx)(v.default,{name:"RefreshCw",size:12,strokeWidth:1.6}),(0,n.jsx)("span",{children:"调度系统派发提示(非用户发送)"})]}),(0,n.jsx)("div",{className:"scheduled-turn-dispatch-body",children:t})]}):null,(0,n.jsx)("div",{className:"scheduled-turn-body",children:s})]})}function ey(e){let{usageMeta:t}=e,r=["总计:".concat(k(t.totalTokens)),"输入:".concat(k(t.inputTokens)),"输出:".concat(k(t.outputTokens)),_,"输入明细:","新增输入:".concat(k(t.newInputTokens)),"缓存读取:".concat(k(t.cacheReadTokens)),_,"工具调用:","Web Search:".concat(t.webSearchCount," 次"),"Web Fetch:".concat(t.webFetchCount," 次")].join("\n");return(0,n.jsxs)("div",{className:"flex shrink-0 items-center gap-1 text-base text-[var(--ds-muted)]",onClick:e=>{e.stopPropagation()},children:[(0,n.jsxs)("span",{children:["本次回答消耗:",(0,n.jsxs)("span",{className:"text-[var(--ds-muted)]",children:[k(t.totalTokens)," tokens"]})]}),(0,n.jsx)(S.TooltipProvider,{delayDuration:120,side:"top",children:(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(Y.Button,{type:"button",variant:"plain",size:"icon-xs",className:"h-5 w-5 rounded-sm p-0 text-base transition-colors hover:bg-transparent hover:text-[var(--ds-text)] focus-visible:outline-none","aria-label":"查看 Token 用量明细",onClick:e=>{e.stopPropagation()},children:(0,n.jsx)(v.default,{name:"Info",size:14})})}),(0,n.jsx)(S.TooltipContent,{side:"top",align:"end",sideOffset:8,className:"max-w-[280px] whitespace-pre-line text-left text-sm leading-relaxed",children:r})]})})]})}function ej(e){let{usageMeta:t}=e,r=t.model?function(e){let t=e.trim(),n=t.lastIndexOf("/");return n>=0?t.slice(n+1):t}(t.model)||t.model:"—";return(0,n.jsxs)("div",{className:"px-2.5 py-2 text-sm text-[var(--ds-muted)]",onClick:e=>{e.stopPropagation()},children:["本次回答模型:",(0,n.jsx)("span",{className:"text-[var(--ds-text)]",children:r})]})}var ew=e.i(45617);function eS(e){return"undefined"!=typeof navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText?navigator.clipboard.writeText(e):"undefined"==typeof document?Promise.reject(Error("Clipboard unavailable")):new Promise((t,n)=>{let r=document.createElement("textarea");r.value=e,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 t();n(Error("Clipboard copy failed"))})}function eN(e){let{copyText:t,usageMeta:s=null}=e,[l,i]=(0,r.useState)(!1),a=(0,r.useRef)(null),o=t.trim().length>0;return(0,r.useEffect)(()=>()=>{null!=a.current&&window.clearTimeout(a.current)},[]),(0,n.jsxs)("div",{className:"mt-2 flex min-h-5 w-full items-center justify-between gap-2 pl-1 text-[var(--ds-muted)]",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(Y.Button,{type:"button",variant:"plain",size:"icon-xs",className:"h-5 w-5 rounded-sm p-0 text-[var(--ds-muted)] transition-colors hover:bg-transparent hover:text-[var(--ds-text)] focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50","aria-label":l?"已复制回复":"复制回复",title:l?"已复制":"复制回复",disabled:!o,onClick:e=>{e.stopPropagation(),o&&eS(t).then(()=>{i(!0),null!=a.current&&window.clearTimeout(a.current),a.current=window.setTimeout(()=>{i(!1),a.current=null},1500)},()=>{c.appToast.error("复制失败")})},children:l?(0,n.jsx)(v.default,{name:"Check",size:16}):(0,n.jsx)(v.default,{name:"Copy",size:16})}),s?(0,n.jsxs)(ew.HoverCard,{children:[(0,n.jsx)(ew.HoverCardTrigger,{delay:0,closeDelay:120,render:e=>(0,n.jsx)(Y.Button,{...e,type:"button",variant:"plain",size:"icon-xs",className:(0,H.cn)("h-5 w-5 rounded-sm p-0 text-[var(--ds-muted)] transition-colors hover:bg-transparent hover:text-[var(--ds-text)] focus-visible:outline-none",e.className),"aria-label":"更多",onClick:e=>{e.stopPropagation()},children:(0,n.jsx)(v.default,{name:"More",size:16})})}),(0,n.jsx)(ew.HoverCardContent,{align:"start",side:"bottom",sideOffset:6,className:"!w-auto min-w-0 rounded-[var(--ds-radius-sm)] border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] p-0 shadow-md",children:(0,n.jsx)(ej,{usageMeta:s})})]}):null]}),s?(0,n.jsx)(ey,{usageMeta:s}):null]})}function ek(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):0}function eA(e){let{error:t,className:r="",message:s={}}=e,l=function(e){let t=e&&"object"==typeof e?e:{};return{retryInMs:ek(t.retryInMs),retryAttempt:ek(t.retryAttempt),maxRetries:ek(t.maxRetries)}}(s),i=l.retryAttempt,a=l.maxRetries,o=l.retryInMs;if(a<=0)return null;let c=i>=a,u=Math.max(1,Math.ceil(o/1e3));return(0,n.jsx)("div",{className:"chat-msg ".concat(r).trim(),role:c?"alert":"status","aria-live":"polite",children:(0,n.jsx)("div",{className:"inline-flex items-center gap-2 text-[#626a77]",children:c?(0,n.jsx)("span",{children:"服务暂时不可用,请稍后再试"}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(w.Spinner,{className:"h-[14px] w-[14px] text-[#626a77]"}),(0,n.jsx)("span",{children:"服务连接中 (".concat(i,"/").concat(a,") · ").concat(u,"s")})]})})})}let e_=new Set(["text","markdown","thinking","tool_use","tool_result"]);function eC(e){if(!e||"object"!=typeof e)return null;if(e.message&&"object"==typeof e.message)return e;let t=e.data;if(!t||"object"!=typeof t)return null;let n=t.message;return n&&"object"==typeof n?n:null}function eE(e){return Math.max(0,e.scrollHeight-e.scrollTop-e.clientHeight)}function eM(e,t,n){if(!(t instanceof Element)||void 0===n||0===n)return!1;let r=t;for(;r&&r!==e;){if(r instanceof HTMLElement&&function(e){if(e.scrollHeight<=e.clientHeight)return!1;let{overflowY:t}=getComputedStyle(e);return"auto"===t||"scroll"===t||"overlay"===t}(r)){let e=r.scrollTop>0,t=r.scrollTop+r.clientHeight<r.scrollHeight-1;if(n<0&&e||n>0&&t)return!0}r=r.parentElement}return!1}function eI(e){let{text:t,streamMode:r=!1,components:s}=e;return(0,n.jsx)(C.ChatMarkdownRemark,{markdown:t,streaming:r,theme:"light",components:s})}let eT=(0,r.memo)(function(e){let{ev:t,idx:n,streaming:r,showToolbar:s,durationContext:l,renderTimelineEvent:i}=e;return i(t,n,r,s,l)});function eO(e){if(!e||"object"!=typeof e)return null;let t=e.message;if(t&&"object"==typeof t)return e;let n=e.data;if(!n||"object"!=typeof n)return null;let r=n.message;return r&&"object"==typeof r?r:null}function eR(e){var t,n;let r=eO(e);if(!r)return null;let s=r.message;if(!s||"object"!=typeof s)return null;let l=e&&"object"==typeof e?e:null,i=null!=(n=null!=(t=r.timestamp)?t:"string"==typeof(null==l?void 0:l.timestamp)?l.timestamp:void 0)?n:"string"==typeof(null==l?void 0:l.ts)?l.ts:void 0,a={...r,message:s};return"string"==typeof i&&i.trim()&&(a.timestamp=i),(0,$.retainScheduledTriggerFlag)(e,a)}function eL(e){let t=eO(e);return"string"==typeof(null==t?void 0:t.type)?t.type:void 0}function eD(e){return(function(e){var t;let n=eO(e);if(!n)return[];let r=null==(t=n.message)?void 0:t.content;return Array.isArray(r)?r.filter(e=>!!e&&"object"==typeof e):[]})(e).some(e=>"tool_use"===e.type||"tool_result"===e.type||"string"==typeof e.type&&e.type.startsWith("tool_"))}function eW(e){let t=eO(e);return(null==t?void 0:t.isMeta)===!0}function ez(e){return!eW(e)&&"user"===eL(e)&&!eD(e)}function eP(e){var t;let n=eO(e);return!!n&&"assistant"===n.type&&(null==(t=n.message)?void 0:t.stop_reason)==="end_turn"}function eF(e){return"conversation"!==e.kind?null:eR(e.payload.message)}function eK(e){if(!e||"object"!=typeof e)return null;let t=e.message;return t&&"object"==typeof t?t:null}function eB(e){if("conversation"!==e.kind)return!1;let t=eK(e.payload);return!!t&&"system"===t.type&&"turn_duration"===t.subtype}function eY(e){if("conversation"!==e.kind)return!1;let t=eK(e.payload);return!!t&&"progress"===t.type}function eU(e){var t;let n=eO(e);if(!n||"assistant"!==n.type)return!1;let r=null==(t=n.message)?void 0:t.content;if(!Array.isArray(r)||0===r.length)return!1;let s=!1;for(let e of r){if(!e||"object"!=typeof e)return!1;let t=e.type;if("text"===t||"markdown"===t){s=!0;continue}return!1}return s}function eq(e){var t;let n=eO(e);if(!n||"assistant"!==n.type)return!1;let r=null==(t=n.message)?void 0:t.content;if(!Array.isArray(r)||0===r.length)return!1;for(let e of r)if(!e||"object"!=typeof e||"thinking"!==e.type)return!1;return!0}function eH(e){return!!e&&"object"==typeof e&&"system"===e.type&&"turn_duration"===e.subtype}function eV(e,t){let n=e[t];if(!n||"assistant"!==eQ(n))return!1;for(let n=t+1;n<e.length;n+=1){let t=e[n];if(ez(t))break;if(!eD(t)&&"assistant"===eQ(t))return!1}return!0}function eJ(e,t,n){if(n)return!1;let r=e[t];if(!r||"conversation"!==r.kind)return!1;let s=eF(r);return!!s&&"assistant"===eQ(s)&&eV(O(e),R(e,t))}function eQ(e){var t;let n=null==e||null==(t=e.message)?void 0:t.content;return"user"===e.type&&Array.isArray(n)&&n.some(e=>(null==e?void 0:e.type)==="tool_result"||(null==e?void 0:e.type)==="tool_use")?"assistant":e.type}function eX(e){for(let t of e){if(!t||"object"!=typeof t)continue;let e=t.agent_name;if("string"==typeof e&&e.trim())return e}return""}let eG=new Intl.DateTimeFormat("zh-CN",{dateStyle:"medium",timeStyle:"short"}),eZ=new Intl.DateTimeFormat("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1});function e$(e){let t=[];for(let n of e)if(n&&"object"==typeof n){if("text"===n.type&&"string"==typeof n.text&&n.text.trim()){t.push(n.text.trim());continue}"markdown"===n.type&&"string"==typeof n.content&&n.content.trim()&&t.push(n.content.trim())}return t.join("\n\n").trim()}function e0(e){let t=E(e),n=(0,C.extractMessageBodyByRemark)(e);return{copyText:t.length?e$(t):n.trim(),usageMeta:A(e)}}function e1(e){let{body:t,message:s}=e,[l,i]=(0,r.useState)(!1),a=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{null!=a.current&&window.clearTimeout(a.current)},[]);let o=function(e){let t;if(!e||"object"!=typeof e)return null;let n=e.message;if(n&&"object"==typeof n&&(t=n.timestamp),null==t&&(t=e.timestamp),null==t)return null;if("number"==typeof t){let e=new Date(t>1e12?t:1e3*t);return Number.isFinite(e.getTime())?e:null}if("string"==typeof t){let e=new Date(t);return Number.isFinite(e.getTime())?e:null}return null}(s),u=o?{label:eG.format(o),iso:o.toISOString()}:null,d=o?eZ.format(o):null;return(0,n.jsxs)("div",{className:"chat-msg chat-msg-user group ml-auto mt-[24px] flex max-w-[min(540px,100%)] flex-col items-end gap-1",children:[(0,n.jsx)("div",{className:"w-fit max-w-full whitespace-pre-wrap break-words rounded-md bg-[var(--ds-color-surface-item-hover)] px-4 py-3 text-[var(--ds-text)]",children:(0,n.jsx)("div",{children:t})}),(0,n.jsxs)("div",{className:"pointer-events-none invisible ml-auto flex min-h-5 w-fit items-center gap-2 pr-1 text-[var(--ds-muted)] opacity-0 transition-opacity group-focus-within:pointer-events-auto group-focus-within:visible group-focus-within:opacity-100 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100",children:[u?(0,n.jsx)(S.TooltipProvider,{delayDuration:150,children:(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("time",{className:"shrink-0",dateTime:u.iso,children:d})}),(0,n.jsx)(S.TooltipContent,{side:"top",align:"center",sideOffset:8,children:u.label})]})}):null,(0,n.jsx)("button",{type:"button",className:"inline-flex h-5 w-5 items-center justify-center rounded-sm border-0 bg-transparent p-0 text-[var(--ds-muted)] transition-colors hover:bg-transparent hover:text-[var(--ds-text)] focus-visible:outline-none","aria-label":l?"已复制问话":"复制问话",title:l?"已复制":"复制问话",onClick:e=>{e.stopPropagation(),eS(t).then(()=>{i(!0),null!=a.current&&window.clearTimeout(a.current),a.current=window.setTimeout(()=>{i(!1),a.current=null},1500)},()=>{c.appToast.error("复制失败")})},children:l?(0,n.jsx)(v.default,{name:"Check",size:14}):(0,n.jsx)(v.default,{name:"Copy",size:14})})]})]})}function e2(e){let{raw:t,payload:r}=e,l="1"===String((0,s.useSearchParams)().get("dev")),i=(()=>{try{return JSON.stringify(r,null,2)}catch(e){return String(r)}})();return(0,n.jsxs)("div",{className:"chat-msg chat-msg-system",children:[(0,n.jsx)("div",{className:"chat-msg-system-body whitespace-pre-wrap break-words",children:t}),l?(0,n.jsxs)("details",{className:"chat-msg-system-dev mt-2 rounded-md border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-log)] p-2",children:[(0,n.jsx)("summary",{className:"cursor-pointer select-none text-xs text-[var(--ds-muted)]",children:"调试详情"}),(0,n.jsx)("pre",{className:"mt-2 max-h-48 overflow-auto font-mono text-xs leading-snug text-[var(--ds-text)]",children:i})]}):null]})}function e5(){var e;let{followControl:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=(0,l.useAppStore)(j),i=(0,l.useAppStore)(e=>e.messagesByRun),a=(0,l.useAppStore)(e=>e.sourceAgentMessages),o=(0,l.useAppStore)(e=>e.streamBuffer),c=(0,l.useAppStore)(e=>e.assistantGenerating),u=(0,l.useAppStore)(e=>e.turnRunning),d=(0,l.useAppStore)(e=>e.sessionId),m=(0,l.useAppStore)(e=>e.sessionHistoryLoading),p=(0,r.useRef)(null),f=(0,r.useRef)(null),h=(0,r.useRef)(!1),g=(0,r.useRef)(null),x=(0,r.useMemo)(()=>(function(e){let t=new Map,n=new Set;for(let r=0;r<e.length;r+=1){if(!ez(e[r]))continue;let s=[],l=-1;for(let t=r+1;t<e.length;t+=1){let r=e[t];if(ez(r)||eH(r))break;if(-1!==l){let n=eR(r);if(n&&eU(n)&&!function(e,t){for(let n=t+1;n<e.length;n+=1){let t=e[n];if(eH(t)||ez(t))break;let r=eR(t);if(r){if(eD(r))return!0;if(!eU(r)&&eq(r))continue}}return!1}(e,t))break}if(eD(r)){let e=eL(r);-1===l&&"assistant"===e&&(l=t)}if(eP(r))break;if(-1!==l){let e=eR(r);if(e&&eW(e)){n.add(t);continue}s.push(t)}}if(-1!==l&&0!==s.length)for(let r of(t.set(l,s.map(t=>eR(e[t])).filter(e=>null!==e&&!eW(e))),s))r!==l&&n.add(r)}return{starts:t,consumed:n}})(s),[s]),v=(0,r.useMemo)(()=>(0,$.buildScheduledTaskIndex)(s),[s]),b=(0,r.useMemo)(()=>(0,$.partitionScheduledSegments)(s,v),[s,v]),y=null==(e=null==t?void 0:t.isFollowPinned)||e,S=u||o.trim().length>0||c,N=(0,r.useCallback)(function(){var e;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"instant";if(t)return void t.scrollToBottom(n);null==(e=p.current)||e.scrollIntoView({block:"end",behavior:n})},[t]),k=(0,r.useCallback)(e=>{p.current=e,null==t||t.setEndAnchor(e)},[t]);(0,r.useEffect)(()=>{let e=d.trim();if(!e){g.current=null;return}s.length&&g.current!==e&&(g.current=e,N("instant"))},[d,s.length,N]),(0,r.useEffect)(()=>{if(!y||!S)return;N("instant");let e=requestAnimationFrame(()=>N("instant"));return()=>cancelAnimationFrame(e)},[s,o,c,i,u,S,y,N]),(0,r.useEffect)(()=>{if(u)h.current=!0;else{let e=window.setTimeout(()=>{h.current=!1},500);return()=>window.clearTimeout(e)}},[u]),(0,r.useEffect)(()=>{var e;let t=null==(e=p.current)?void 0:e.parentElement;if(!t)return;let n=new ResizeObserver(()=>{h.current&&y&&S&&N("instant")});return n.observe(t),()=>n.disconnect()},[N,y,S]),(0,r.useEffect)(()=>()=>{null!=f.current&&window.clearTimeout(f.current)},[]);let _=(0,r.useMemo)(()=>{let e=0;for(let t=s.length-1;t>=0;t--)if(ez(s[t])){e=t;break}if(s.slice(e).some(e=>{if(!e||"object"!=typeof e)return!1;let t=e.message&&"object"==typeof e.message?e.message:null;return"assistant"===e.type&&((null==t?void 0:t.stop_reason)==="end_turn"||(null==t?void 0:t.stop_reason)==="stop_sequence")}))return new Set;let t=new Set;for(let n=s.length-1;n>=e;n--){if(!s[n]||"object"!=typeof s[n])continue;let e=s[n];if("system"===e.type&&"api_error"===e.subtype){t.add(n);break}}return t},[s]),M=(0,r.useMemo)(()=>{let e=[],t=0;for(let[n,r]of Object.entries(i||{}))for(let s=0;s<r.length;s+=1){let l=r[s];l&&void 0!==l.message&&e.push({ts:l.ts||"",arrivalSeq:Number.isInteger(l.arrivalSeq)?l.arrivalSeq:Number.MAX_SAFE_INTEGER,fallbackOrder:t++,runId:n,sourceAgent:l.sourceAgent||("main"===n?"main":"unknown-agent"),kind:"conversation",payload:l})}for(let n=0;n<a.length;n+=1){let r=a[n];if(!r)continue;let s=r.runId||"main";e.push({ts:r.ts||"",arrivalSeq:Number.isInteger(r.arrivalSeq)?r.arrivalSeq:Number.MAX_SAFE_INTEGER,fallbackOrder:t++,runId:s,sourceAgent:r.source||("main"===s?"main":"unknown-agent"),kind:"source",payload:r})}e.sort((e,t)=>{let n=Date.parse(e.ts||""),r=Date.parse(t.ts||""),s=Number.isFinite(n),l=Number.isFinite(r);return s&&l&&n!==r?n-r:e.arrivalSeq!==t.arrivalSeq?e.arrivalSeq-t.arrivalSeq:e.fallbackOrder-t.fallbackOrder});let n=[],r=new Map,s=0;for(let t=0;t<e.length;t+=1){let l=e[t];if("main"===l.runId){let e=n.length?n[n.length-1]:null;e&&e.isMainSegment?e.items.push(l):n.push({runId:"main",sourceAgent:l.sourceAgent,items:[l],isMainSegment:!0,segmentSeq:++s});continue}let i=r.get(l.runId);if(i){i.items.push(l);continue}let a={runId:l.runId,sourceAgent:l.sourceAgent,items:[l],isMainSegment:!1,segmentSeq:0};r.set(l.runId,a),n.push(a)}return n},[i,a]),z=(0,r.useMemo)(()=>(function(e){let t=e.timelineBlocks.reduce((e,t)=>e+t.items.length,0);return t+function(e){let t=function(e){let t=0;for(let n=e.length-1;n>=0;n-=1)if(function(e){let t=eC(e);if(!t||!0===t.isMeta||"user"!==t.type)return!1;let n=t.message,r=null==n?void 0:n.content;return!Array.isArray(r)||!r.some(e=>{if(!e||"object"!=typeof e)return!1;let t=e.type;return"tool_use"===t||"tool_result"===t||"string"==typeof t&&t.startsWith("tool_")})}(e[n])){t=n;break}return e.slice(t)}(e),n=0;for(let e=0;e<t.length;e+=1){let r=t[e],s=eC(r);if(!s||"assistant"!==s.type)continue;let l=E(r);for(let e=0;e<l.length;e+=1){let t=l[e];if(!t||"object"!=typeof t)continue;let r=t.type;"string"==typeof r&&e_.has(r)&&(n+=1)}}return n}(e.lastMessages)+ +(e.streamBuffer.trim().length>0)})({timelineBlocks:M,lastMessages:s,streamBuffer:o}),[M,s,o]);(0,r.useEffect)(()=>{null==t||t.setContentUnitCount(z)},[t,z]);let F=M.length>0,K=(0,r.useMemo)(()=>{let e=new Map,t=0;for(let n of M)!n.isMainSegment&&(e.has(n.runId)||(e.set(n.runId,t),t+=1));return e},[M]),B=(0,r.useCallback)(function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],l=arguments.length>4?arguments[4]:void 0;if("source"===e.kind){if("main"===e.runId)return null;let r=e.payload,s="string"==typeof r.text?r.text.trim():"";if(!s)return null;let l="failed"===r.status?"chat-msg-system":"chat-msg-assistant",i="string"==typeof r.correlationId&&r.correlationId?" corr=".concat(r.correlationId):"";return(0,n.jsxs)("div",{className:"chat-msg ".concat(l),children:[(0,n.jsx)("div",{className:"chat-msg-label",children:"sourceAgent: ".concat(r.source||e.sourceAgent," run=").concat(e.runId).concat(i)}),(0,n.jsx)(eI,{text:s})]},"source-".concat(t))}let i=e.payload.message||null;if(!i)return null;let a=eQ(i)||i.type;if("user"===a){if(eW(i))return null;let e=(0,C.extractMessageBodyByRemark)(i);return e.trim()?(0,n.jsx)(e1,{body:e,message:i},"user-".concat(t)):null}if("assistant"===a){let a=E(i),o=(0,C.extractMessageBodyByRemark)(i);if(!a.length&&!o.trim())return null;let c=a.map(e=>{if(!e||"object"!=typeof e)return"";let t=e.type;return"string"==typeof t?t:""}),u=e=>"tool_use"===e||"tool_result"===e||e.startsWith("tool_"),d=c.some(e=>u(e)),m=c.some((e,t)=>"thinking"===e&&u(c[t-1]||"")),p=c.some((e,t)=>{if("thinking"!==e)return!1;let n=c[t-1]||"",r=c[t+1]||"";return!u(n)&&u(r)}),f=c.some(e=>"text"===e||"markdown"===e),h=a.length?e$(a):o.trim(),g=s&&!!h,x=A(i);return(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[d&&!p||m?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(ef,{messages:[i],runId:e.runId,agentName:e.sourceAgent,streaming:r,ev:e,scheduledTaskIndex:v}),r&&!f?(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,n.jsx)(w.Spinner,{className:"h-3 w-3"}),(0,n.jsx)("span",{children:"生成回复中..."})]}):null]}):a.length?a.map((e,t)=>{if(!e||"object"!=typeof e)return null;let s=e.type;if("text"===s){let r="string"==typeof e.text?e.text:"";return r.trim()?(0,n.jsx)(eI,{text:r},t):null}if("markdown"===s){let r="string"==typeof e.content?e.content:"";return r.trim()?(0,n.jsx)(eI,{text:r},t):null}if("thinking"===s){let s=T(e,l?I(l.messages,l.messageIndex):void 0),i=r&&L(a,t);return(0,n.jsx)(P,{payload:s,usage:"assistant-message",streaming:i},t)}return null}):o.trim()?(0,n.jsx)(eI,{text:o}):null,g?(0,n.jsx)(eN,{copyText:h,usageMeta:x}):null]})},"assistant-".concat(t))}if("system"===a){var o;let e=null==(o=i.message)?void 0:o.content;if(null==e)return null;let r="string"==typeof e?e:JSON.stringify(e);return r.trim()?(0,n.jsx)(e2,{raw:r,payload:i},"system-".concat(t)):null}return null},[v]),Y=(0,r.useCallback)(function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],l=arguments.length>4?arguments[4]:void 0;return(0,n.jsx)(eT,{ev:e,idx:t,streaming:r,showToolbar:s,durationContext:l,renderTimelineEvent:B})},[B]),U=(0,r.useCallback)(function(e,t,s,l){let i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return(0,n.jsx)(eb,{dispatchedPrompt:e.dispatchedPrompt,triggeredAt:e.triggeredAt,taskId:e.taskId,children:e.assistantMessages.map((a,o)=>{var c;let u="string"==typeof a.timestamp&&a.timestamp||("string"==typeof(null==(c=a.message)?void 0:c.timestamp)?a.message.timestamp:"")||e.triggeredAt;return(0,n.jsx)(r.Fragment,{children:Y({ts:u,arrivalSeq:o,fallbackOrder:o,runId:s,sourceAgent:l,kind:"conversation",payload:{message:a}},o,i&&o===e.assistantMessages.length-1,!1,{messages:e.assistantMessages,messageIndex:o})},"".concat(t,"-assistant-").concat(o))})},t)},[Y]),q=!F&&(!s||0===s.length)&&!o&&!c,H=!!d.trim()&&m;return(0,n.jsxs)("div",{id:"chatThread",className:"chat-thread","data-region":"chat-thread","aria-live":"polite",onClick:e=>{var t;let n=e.target,r=null==n?void 0:n.closest(".chat-code-copy-btn");if(!r)return;e.preventDefault(),e.stopPropagation();let s=r.closest(".chat-code-block"),l=null==s?void 0:s.querySelector("pre code");eS(null!=(t=null==l?void 0:l.textContent)?t:"").then(()=>{r.textContent="已复制",r.classList.add("is-copied"),null!=f.current&&window.clearTimeout(f.current),f.current=window.setTimeout(()=>{r.textContent="复制",r.classList.remove("is-copied")},1400)})},children:[q?H?(0,n.jsxs)("div",{className:"flex min-h-[220px] items-center justify-center",children:[(0,n.jsx)(w.Spinner,{}),(0,n.jsx)("div",{className:"text-muted-foreground",children:"加载中..."})]}):d.trim()?(0,n.jsx)("div",{className:"chat-placeholder",children:"当前历史会话暂无消息"}):(0,n.jsx)("div",{className:"chat-placeholder",children:"连接后将在此展示对话"}):(0,n.jsxs)(n.Fragment,{children:[F?M.map((e,t)=>{var s;if(!e.items.length)return null;let l=e.runId,i=e.sourceAgent||("main"===l?"main":"unknown-agent");e.isMainSegment&&e.segmentSeq>1&&e.segmentSeq;let a=t===M.length-1,o=e.items.length-1,c=e=>u&&a&&e===o,d=t=>eJ(e.items,t,u),m=function(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(!function(e){let t=eF(e);return!!t&&"assistant"===t.type&&eD(t)}(r)){let e=eF(r);if(e&&eW(e)){n+=1;continue}t.push({kind:"single",ev:r,index:n}),n+=1;continue}let s=[],l=n,i=n;for(;i<e.length;){let t=e[i];if(eB(t))break;let r=eF(t);if(!r){if(i===n)break;if(eY(t)){i+=1;continue}break}if(i>n&&ez(r)||i>n&&eU(r)&&!function(e,t){for(let n=t+1;n<e.length;n+=1){let t=e[n];if("conversation"!==t.kind)continue;if(eB(t))break;if(eY(t))continue;let r=eF(t);if(!r||ez(r))break;if(eD(r))return!0;if(!eU(r)&&eq(r))continue}return!1}(e,i))break;if(eW(r)){i+=1;continue}if(s.push(r),l=i,(i+=1)>n+1&&eP(r))break}if(0===s.length){t.push({kind:"single",ev:r,index:n}),n+=1;continue}t.push({kind:"toolRound",startIndex:n,endIndex:l,messages:s}),n=l+1}return t}(e.items),{toolRoundByStart:p,consumed:f}=function(e){let t=new Map,n=new Set;for(let r of e)if("toolRound"===r.kind){t.set(r.startIndex,r);for(let e=r.startIndex+1;e<=r.endIndex;e+=1)n.add(e)}return{toolRoundByStart:t,consumed:n}}(m),h=O(e.items),g=e.items.map(e=>"conversation"===e.kind?eF(e):null),x=(0,$.partitionScheduledSegments)(g,v);return"main"===l?(0,n.jsx)("div",{className:"chat-run-group",children:(0,n.jsx)("div",{className:"chat-run-group-body",children:m.map(s=>{var a;let o="single"===s.kind?s.index:s.startIndex,m=x.scheduledStarts.get(o);if(m)return U(m,"scheduled-main-".concat(t,"-").concat(o),l,i,c(m.endIndex));if(x.consumed.has(o))return null;let p="toolRound"===s.kind&&eJ(e.items,s.endIndex,u),f="toolRound"===s.kind?null!=(a=s.messages[s.messages.length-1])?a:eF(e.items[s.endIndex]):null,g=f?e0(f):null;return(0,n.jsx)(r.Fragment,{children:"single"===s.kind?Y(s.ev,s.index,c(s.index),d(s.index),{messages:h,messageIndex:R(e.items,s.index)}):(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[(0,n.jsx)(ef,{messages:s.messages,runId:l,agentName:i,streaming:c(s.endIndex),scheduledTaskIndex:v}),p&&(null==g?void 0:g.copyText)?(0,n.jsx)(eN,{copyText:g.copyText,usageMeta:g.usageMeta}):null]})})},"main-".concat(t,"-").concat(s.kind,"-").concat(o))})})},"run-main-".concat(t)):(0,n.jsx)("div",{className:"chat-run-group",children:(0,n.jsx)(ev,{block:e,paletteIndex:null!=(s=K.get(l))?s:0,renderItem:(r,s)=>{if(f.has(s))return null;let a=x.scheduledStarts.get(s);if(a)return U(a,"scheduled-sub-".concat(t,"-").concat(s),l,i,c(a.endIndex));if(x.consumed.has(s))return null;let o=p.get(s);if(o){var m;let t=eJ(e.items,o.endIndex,u),r=null!=(m=o.messages[o.messages.length-1])?m:eF(e.items[o.endIndex]),s=r?e0(r):null;return(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[(0,n.jsx)(ef,{messages:o.messages,runId:l,agentName:i,streaming:c(o.endIndex),scheduledTaskIndex:v}),t&&(null==s?void 0:s.copyText)?(0,n.jsx)(eN,{copyText:s.copyText,usageMeta:s.usageMeta}):null]})})}let h=O(e.items);return Y(r,s,c(s),d(s),{messages:h,messageIndex:R(e.items,s)})}})},"run-sub-".concat(t))}):s.map((e,t)=>{let r=b.scheduledStarts.get(t);if(r)return U(r,"scheduled-flat-".concat(t),"main",eX(r.assistantMessages)||"main",u&&t===s.length-1);if(b.consumed.has(t))return null;let l=x.starts.get(t);if(l){let e=t===s.length-1,r=eX(l),i=t;for(let e=t+1;e<s.length&&!(ez(s[e])||eH(s[e]));e+=1){let t=eR(s[e]);t&&eW(t)||(i=e)}let a=!u&&eV(s,i),o=l[l.length-1],c=o?e0(o):null;return(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[(0,n.jsx)(ef,{messages:l,agentName:r,streaming:u&&e,scheduledTaskIndex:v}),a&&(null==c?void 0:c.copyText)?(0,n.jsx)(eN,{copyText:c.copyText,usageMeta:c.usageMeta}):null]})},t)}if(x.consumed.has(t))return null;let i=eR(e);if(!i)return null;let a=eQ(i)||i.type;if("user"===a){if(eW(e))return null;let r=(0,C.extractMessageBodyByRemark)(e);return r.trim()?(0,n.jsx)(e1,{body:r,message:e},t):null}if("assistant"===a){let r=!u&&eV(s,t),l=A(e),i=E(e);if(!i.length){let s=(0,C.extractMessageBodyByRemark)(e);return s.trim()?(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[(0,n.jsx)(eI,{text:s}),r?(0,n.jsx)(eN,{copyText:s.trim(),usageMeta:l}):null]})},t):null}let a=e$(i);return(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[i.map((e,r)=>{if(!e||"object"!=typeof e)return null;let l=e.type;if("text"===l){let t="string"==typeof e.text?e.text:"";return t.trim()?(0,n.jsx)(eI,{text:t},r):null}if("markdown"===l){let t="string"==typeof e.content?e.content:"";return t.trim()?(0,n.jsx)(eI,{text:t},r):null}if("thinking"===l){let l=T(e,I(s,t)),a=u&&t===s.length-1&&L(i,r);return(0,n.jsx)(P,{payload:l,usage:"assistant-message",streaming:a},r)}return"tool_use"===l?(0,n.jsx)(D,{data:e},r):"tool_result"===l?(0,n.jsx)(W,{data:e},r):null}),r&&a?(0,n.jsx)(eN,{copyText:a,usageMeta:l}):null]})},t)}if("system"===a){let e=i.message,r=null==e?void 0:e.content,s="string"==typeof r?r:JSON.stringify(null!=r?r:"");return s.trim()&&"turn_duration"!==i.subtype?"api_error"===i.subtype?_.has(t)?(0,n.jsx)(eA,{error:i.error,message:i},t):null:(0,n.jsx)(e2,{raw:s,payload:i},t):null}return null}),o?(0,n.jsxs)("div",{className:"chat-msg chat-msg-assistant chat-streaming chat-streaming--content","data-stream-phase":"generating","aria-live":"polite","aria-busy":"true",children:[(0,n.jsxs)("div",{className:"chat-msg-label",children:["生成中",(0,n.jsx)("span",{className:"stream-cursor","aria-hidden":!0})]}),(0,n.jsx)(eI,{text:o,streamMode:!0}),(0,n.jsx)("span",{className:"stream-cursor","aria-hidden":!0})]}):c?(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant chat-streaming chat-streaming--pending","data-stream-phase":"generating","aria-live":"polite","aria-busy":"true",children:(0,n.jsxs)("div",{className:"chat-msg-label",children:["生成中",(0,n.jsx)("span",{className:"stream-cursor","aria-hidden":!0})]})}):null]}),(0,n.jsx)("div",{ref:k})]})}function e6(e){let{visible:t,phase:s,pendingStepDelta:l,showResumeFollow:i,showViewFullAnswer:a,onResumeFollow:o,onViewFullAnswer:c}=e,[u,d]=(0,r.useState)(t),[m,p]=(0,r.useState)(!1),[f,h]=(0,r.useState)(!1),g=(0,r.useRef)(l);return((0,r.useEffect)(()=>{if(t){d(!0),p(!1);return}if(!u)return;p(!0);let e=window.setTimeout(()=>{d(!1),p(!1)},190);return()=>{window.clearTimeout(e)}},[t,u]),(0,r.useEffect)(()=>{if(!i||l<=0){g.current=l;return}if(l===g.current)return;g.current=l,h(!1);let e=window.requestAnimationFrame(()=>{h(!0)}),t=window.setTimeout(()=>{h(!1)},180);return()=>{window.cancelAnimationFrame(e),window.clearTimeout(t)}},[l,i]),u)?(0,n.jsx)("div",{className:"chat-scroll-follow-bar","data-phase":s,role:"status","aria-live":"polite",children:(0,n.jsx)("div",{className:"chat-scroll-follow-bar-inner",children:i||a?(0,n.jsx)(Y.Button,{type:"button",variant:"plain",className:["chat-scroll-follow-btn",i?"chat-scroll-follow-btn-streaming":"",a?"chat-scroll-follow-btn-completed":"",m?"chat-scroll-follow-btn-leaving":""].filter(Boolean).join(" "),"aria-label":i?"跳至最新对话":"查看完整回答",onClick:i?o:c,children:i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"chat-scroll-follow-dot chat-scroll-follow-dot-1","aria-hidden":!0}),(0,n.jsx)("span",{className:"chat-scroll-follow-dot chat-scroll-follow-dot-2","aria-hidden":!0}),(0,n.jsx)(v.default,{name:"ArrowDown",size:16}),(0,n.jsx)("span",{className:"chat-scroll-follow-btn-title",children:"跳至最新"}),l>0?(0,n.jsxs)("span",{className:["chat-scroll-follow-badge",f?"chat-scroll-follow-badge-bump":""].filter(Boolean).join(" "),children:["+",l," 步骤"]}):null]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"chat-scroll-follow-btn-icon","aria-hidden":!0,children:(0,n.jsx)(v.default,{name:"Check",size:15})}),(0,n.jsx)("span",{className:"chat-scroll-follow-btn-title",children:"查看完整回答"})]})}):null})}):null}var e4=e.i(61293),e3=e.i(10602),e9=e.i(75733),e7=e.i(28234),e8=e.i(55105);function te(e){let{value:t,size:r=18,strokeWidth:s=2,trackColor:l="#E3E1E1",indicatorColor:i="#ffffff",minVisualPercent:a=2.5,className:o,...c}=e,u=Math.min(Math.max(t,0),100),d=u>0&&u<a?a:u,m=(r-s)/2,p=2*Math.PI*m,f=r/2;return(0,n.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":u,"data-slot":"circular-progress",className:(0,H.cn)("inline-flex shrink-0",o),...c,children:(0,n.jsxs)("svg",{width:r,height:r,viewBox:"0 0 ".concat(r," ").concat(r),"aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:f,cy:f,r:m,fill:"none",stroke:l,strokeWidth:s}),u>0?(0,n.jsx)("circle",{cx:f,cy:f,r:m,fill:"none",stroke:i,strokeWidth:s,strokeLinecap:"round",strokeDasharray:p,strokeDashoffset:p*(1-d/100),transform:"rotate(-90 ".concat(f," ").concat(f,")"),className:"transition-[stroke-dashoffset] duration-200 ease-out"}):null]})})}var tt=e.i(92371),tn=e.i(66235),tr=e.i(72483);let ts=e=>e,tl=e=>e;function ti(e){var t,r,s;let{id:l,value:i,onValueChange:a,options:o,ariaLabel:c,panelTitle:u,title:d,triggerClassName:m,triggerLabelClassName:p="composer-rich-select-trigger-label",placeholderLabel:f,toSelectItemValue:h=ts,fromSelectItemValue:g=tl}=e,x=function(e,t,n){let r=n?n(t):t;return e.find(e=>e.value===r)}(o,i,g),b=null!=(r=null!=f?f:null==(t=o[0])?void 0:t.label)?r:"";return(0,n.jsxs)(tr.Select,{value:i,onValueChange:a,children:[(0,n.jsx)(tr.SelectTrigger,{id:l,className:m,"aria-label":c,title:d,children:(0,n.jsx)("span",{className:(0,H.cn)(p,"truncate"),children:null!=(s=null==x?void 0:x.label)?s:b})}),(0,n.jsx)(tr.SelectContent,{className:"composer-rich-select-content",position:"popper",children:(0,n.jsxs)(tr.SelectGroup,{children:[u?(0,n.jsx)(tr.SelectLabel,{className:"composer-rich-select-panel-label",children:u}):null,o.map(e=>(0,n.jsxs)(tn.Item,{value:h(e.value),textValue:e.label,className:(0,H.cn)("composer-rich-select-item relative flex w-full cursor-pointer select-none items-start rounded-md py-2.5 pl-2 pr-8 text-base outline-none","!hover:bg-[var(--surface-2)] focus:bg-[var(--surface-2)]","data-[disabled]:pointer-events-none data-[disabled]:opacity-50","data-[state=checked]:bg-[var(--ds-color-success-bg)]"),children:[e.icon?(0,n.jsx)("span",{className:"composer-rich-select-item-icon mt-0.5 shrink-0",children:(0,n.jsx)(v.default,{name:e.icon,size:18,strokeWidth:1.5})}):null,(0,n.jsxs)("div",{className:"composer-rich-select-item-body min-w-0 flex-1 pr-1",children:[(0,n.jsx)(tn.ItemText,{asChild:!0,children:(0,n.jsx)("span",{className:"composer-rich-select-item-title block font-medium leading-snug text-[var(--ds-text)]",children:e.label})}),e.description?(0,n.jsx)("span",{className:"composer-rich-select-item-desc mt-0.5 block text-base leading-relaxed text-[var(--text-placeholder)]",children:e.description}):null]}),(0,n.jsx)("span",{className:"composer-rich-select-item-check absolute right-2 top-1/2 flex h-3.5 w-3.5 -translate-y-1/2 items-center justify-center",children:(0,n.jsx)(tn.ItemIndicator,{children:(0,n.jsx)(v.default,{name:"Check",size:16,className:"text-[var(--ds-color-accent)]",strokeWidth:2})})})]},e.value))]})})]})}var ta=e.i(85941),to=e.i(29716);let tc=[{label:"默认模式",value:"default",description:"按工具默认规则执行,常规操作自动进行,高风险操作需要确认。",icon:"ShieldCheck"},{label:"自动接受编辑",value:"acceptEdits",description:"自动接受 AI 对文件的修改,减少手动确认 diff。",icon:"Zap"},{label:"计划模式",value:"plan",description:"只做分析和规划,先给出方案,不直接修改代码。",icon:"Compass"},{label:"不询问模式",value:"dontAsk",description:"尽量不打断用户,更多操作自动执行。",icon:"MessageCircleQuestion"},{label:"跳过权限检查",value:"bypassPermissions",description:"绕过大部分权限确认,允许 AI 直接执行高权限操作。",icon:"Gavel"}];function tu(e){return"default"===e?to.PERMISSION_MODE_EMPTY_SENTINEL:e}function td(e){return e===to.PERMISSION_MODE_EMPTY_SENTINEL?"default":e}let tm=[{label:"手动",value:"0",description:"关键操作前需要确认,更安全"},{label:"自动",value:"1",description:"Agent 自动调用工具并推进任务,效率更高"}],tp={LLM_PROVIDER_ID:"",LLM_MODEL:"",WS_PERMISSION_MODE:"",WS_ALLOW_TOOL_ASK:""};function tf(e,t){var n;let r=(null!=(n=e.env)?n:{})[t];return"string"==typeof r?r.trim():""}function th(e){let t=String(null!=e?e:"").trim();return to.WS_PERMISSION_MODE_ALLOWED.includes(t)?t:""}function tg(e){let t=String(null!=e?e:"").trim();if(!to.WS_ALLOW_TOOL_ASK_ALLOWED.has(t))throw Error("WS_ALLOW_TOOL_ASK 只允许 0/1");return t}function tx(e,t){try{return tg(e)}catch(e){return t}}function tv(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:tp;return{providerId:function(e,t){var n,r;let s=tf(e,to.LLM_PROVIDER_ID_KEY);return s||(t.LLM_PROVIDER_ID?t.LLM_PROVIDER_ID:null!=(r=null==(n=e.llmProviders[0])?void 0:n.id.trim())?r:"")}(e,t),model:function(e,t){let n=tf(e,to.LLM_MODEL_KEY);if(n)return n;let r=(e.model||"").trim();return r||t.LLM_MODEL||""}(e,t),env:{[to.WS_PERMISSION_MODE_KEY]:function(e,t){let n=tf(e,to.WS_PERMISSION_MODE_KEY);if(n){let e=th(n);if(!e)throw Error("WS_PERMISSION_MODE 配置非法: ".concat(n));return e}let r=(t.WS_PERMISSION_MODE||"").trim();if(r){let e=th(r);if(!e)throw Error("WS_PERMISSION_MODE 配置非法: ".concat(r));return e}return"default"}(e,t),[to.WS_ALLOW_TOOL_ASK_KEY]:function(e,t){let n=tf(e,to.WS_ALLOW_TOOL_ASK_KEY);if(n)return tg(n);let r=(t.WS_ALLOW_TOOL_ASK||"").trim();return r?tg(r):"1"}(e,t)}}}var tb=e.i(89034);let ty="ws-test-composer-recent-models";function tj(e){let{text:t,className:s,wrapperClassName:l,fitContent:i=!1}=e,a=(0,r.useRef)(null),[o,c]=(0,r.useState)(!1),u=(0,r.useCallback)(()=>{let e=a.current;if(!e)return;let t=!(e.clientWidth<1)&&e.scrollWidth>e.clientWidth;c(e=>e===t?e:t)},[]);(0,r.useLayoutEffect)(()=>{let e=a.current;if(!e)return;u();let t=window.requestAnimationFrame(u),n=new ResizeObserver(u);n.observe(e);let r=e.parentElement;for(;r;)n.observe(r),r=r.parentElement;let s=new IntersectionObserver(e=>{var t;(null==(t=e[0])?void 0:t.isIntersecting)&&u()});return s.observe(e),()=>{window.cancelAnimationFrame(t),n.disconnect(),s.disconnect()}},[t,u]);let d=(0,H.cn)("block min-w-0 truncate",i?"max-w-full":"w-full",s),m=o&&t.trim().length>0;return(0,n.jsx)("div",{className:(0,H.cn)(i?"min-w-0 max-w-full":"w-full min-w-0 max-w-full [&_[data-slot=tooltip]]:flex [&_[data-slot=tooltip]]:w-full [&_[data-slot=tooltip]]:min-w-0 [&_[data-slot=tooltip]]:max-w-full",l),children:(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("span",{ref:a,className:d,onMouseEnter:e=>{m||e.preventDefault()},children:t})}),m?(0,n.jsx)(S.TooltipContent,{side:"top",align:"start",className:"max-w-[min(360px,90vw)] break-all",children:t}):null]})})}function tw(e){let{providerId:t,modelId:r,name:s,description:l,isActive:i,isCommitted:a,onSelect:o,onHover:c}=e;return(0,n.jsxs)("li",{role:"option","aria-selected":i,"data-model":r,"data-provider-id":t,className:(0,H.cn)("composer-model-suggestion-item",i&&"is-active",a&&"is-selected"),onMouseDown:e=>{e.preventDefault(),o()},onMouseEnter:c,children:[(0,n.jsxs)("div",{className:"composer-model-suggestion-body",children:[(0,n.jsxs)("div",{className:"composer-model-suggestion-heading",children:[(0,n.jsx)(tj,{text:s,className:"composer-model-suggestion-title",wrapperClassName:"composer-model-suggestion-title-wrap",fitContent:!0}),(0,n.jsx)("span",{className:"composer-model-suggestion-tag",title:t,children:t})]}),l?(0,n.jsx)(tj,{text:l,className:"composer-model-suggestion-desc"}):null]}),a?(0,n.jsx)("span",{className:"composer-model-suggestion-check","aria-hidden":!0,children:(0,n.jsx)(v.default,{name:"Check",size:16,strokeWidth:2})}):null]})}function tS(e){let{percent:t}=e;if(null===t)return null;let r="context: ".concat(t,"%");return(0,n.jsx)(S.TooltipProvider,{delayDuration:120,side:"top",children:(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(Y.Button,{type:"button",variant:"plain",size:"icon",className:(0,H.cn)("size-5 shrink-0 !p-0","cursor-default hover:bg-transparent"),"aria-label":r,children:(0,n.jsx)(te,{value:t,size:20,strokeWidth:2.5,trackColor:"#E3E1E1",indicatorColor:"#ffffff"})})}),(0,n.jsx)(S.TooltipContent,{side:"top",align:"center",children:r})]})})}var tN=e.i(30164);let tk={src:e.i(71331).default,width:919,height:905,blurWidth:8,blurHeight:8,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAABE0lEQVR42gEIAff+AAwMDAwgIiAiHR8dIAsQDRIAAAAABAQEBAgICAgAAAAAAHuCeYXA0sHcpLGmuG1wbnJMW1RhRFFKVpqlnapRWFNZAG17boKs4r790O3b/e337/7Q7Nz6sNXC58ns1v59jYOTADA5MjtmemqCqLervuT16f/i9Of/vM7D1oSdjqgzPDc+AAoQDRI5XUNqlNSq787u2f/I7df/gM+o8iljSHsnLykwAAAAAAA8cVKHa9Ob/4PZr/941Kv/TMeS/0eccMQZMiI+AAAAAAAhUztoO7B74y6seeUepHPlXb+W8rPhx/1QkW+zAAAAAAADCQcMCCAWKgYgFiwDHxUsHUMyVkSEZ6gdTjhqVnxy6XZuzkEAAAAASUVORK5CYII="};function tA(){return(0,n.jsx)("div",{className:"pointer-events-none fixed inset-0 z-50 flex items-center justify-center bg-[rgba(255,255,255,0.8)]",children:(0,n.jsxs)("div",{className:"px-16 py-14 text-center",children:[(0,n.jsx)(tN.default,{src:tk,alt:"上传文件",width:120,height:120,unoptimized:!0}),(0,n.jsx)("p",{className:"mt-4 text-xl font-semibold text-[var(--ds-text)]",children:"松开以上传文件"}),(0,n.jsx)("p",{className:"mt-1 text-sm text-[var(--ds-muted)]",children:"支持任意格式,可同时拖入多个文件"})]})})}var t_=e.i(52371),tC=e.i(62445);let tE=()=>{var e,t;if("function"==typeof(null==(e=globalThis.crypto)?void 0:e.randomUUID))return globalThis.crypto.randomUUID();if("function"==typeof(null==(t=globalThis.crypto)?void 0:t.getRandomValues)){let e=new Uint8Array(16);globalThis.crypto.getRandomValues(e),e[6]=15&e[6]|64,e[8]=63&e[8]|128;let t=Array.from(e,e=>e.toString(16).padStart(2,"0"));return"".concat(t.slice(0,4).join(""),"-").concat(t.slice(4,6).join(""),"-").concat(t.slice(6,8).join(""),"-").concat(t.slice(8,10).join(""),"-").concat(t.slice(10).join(""))}return"upload-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,10))},tM=()=>new Promise(e=>{window.setTimeout(e,500)}),tI=(e,t)=>{let n=t.trim().toLowerCase();if(!n)return e.slice(0,50);let r=[];for(let t=0;t<e.length;t++){let s=e[t];if((s.id.toLowerCase().includes(n)||s.providerId.toLowerCase().includes(n)||s.name.toLowerCase().includes(n)||s.description&&s.description.toLowerCase().includes(n))&&r.push(s),r.length>=50)break}return r};function tT(e){let{onSend:t,onAbort:i,onRetryConnection:a}=e,{sendRestartSubprocess:u}=(0,o.useWorkspaceRuntime)(),{setSessionModel:d,setSessionProviderId:m,setAllowToolAsk:f,setPermissionModeFromSelect:x,enqueueModelCommit:b,pendingModelPersistRef:y,modelInputTitle:j,allowToolAskTitle:w,permissionModeTitle:N,permissionModeSelectValue:k,allowToolAsk:A,sessionModel:_,sessionProviderId:C}=function(){var e,t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onRestartSubprocess:s}=n,i=(0,l.useAppStore)(e=>e.wsUrl),a=(0,l.useAppStore)(e=>e.apiBase),o=(0,l.useAppStore)(e=>e.sessionId),c=(0,l.useAppStore)(e=>e.agentId),u=(0,l.useAppStore)(e=>e.agentConfig),d=(0,l.useAppStore)(e=>e.setStatus),m=(0,l.useAppStore)(e=>e.setBridgeReady),f=(0,l.useAppStore)(e=>e.bridgeReady),x=(0,l.useAppStore)(e=>e.wsConnected),v=(0,r.useCallback)(e=>{x&&(m(!1),d("正在重启 session 子进程…","working"),null==s||s(e))},[s,m,d,x]),b=(0,r.useRef)({LLM_PROVIDER_ID:"",LLM_MODEL:"",WS_PERMISSION_MODE:"",WS_ALLOW_TOOL_ASK:""}),y=(0,r.useRef)(null),j=(0,r.useRef)(null),w=(0,r.useRef)(tv(u,b.current)),[S,N]=(0,r.useState)(()=>tv(u,b.current)),k=(0,r.useCallback)(()=>{w.current=tv(l.useAppStore.getState().agentConfig,b.current)},[]),A=(0,r.useCallback)(async()=>{let e=l.useAppStore.getState().agentId.trim()||"qihoo";try{let t=await (0,g.loadSystemEnv)(i,a,e),n="string"==typeof t.content?t.content:"";b.current=function(e){var t,n,r,s;let l=(0,h.parseEnvContentToMap)(e);return{LLM_PROVIDER_ID:(null!=(t=l[to.LLM_PROVIDER_ID_KEY])?t:"").trim(),LLM_MODEL:(null!=(n=l[to.LLM_MODEL_KEY])?n:"").trim(),WS_PERMISSION_MODE:(null!=(r=l[to.WS_PERMISSION_MODE_KEY])?r:"").trim(),WS_ALLOW_TOOL_ASK:(null!=(s=l[to.WS_ALLOW_TOOL_ASK_KEY])?s:"").trim()}}(n)}catch(e){}k()},[a,k,i]),_=(0,r.useCallback)(()=>{k(),N(w.current)},[k]),C=(0,r.useCallback)(e=>{N(e)},[]),E=(0,r.useCallback)(async()=>{let e=o.trim(),t=c.trim()||"qihoo";if(!e)return void _();k();try{let n=await (0,tb.loadSessionOverrides)(i,a,t,e),r=n.overrides&&"object"==typeof n.overrides?n.overrides:{},s=r.env&&"object"==typeof r.env?Object.fromEntries(Object.entries(r.env).map(e=>{let[t,n]=e;return[String(t),String(n)]})):{};C(function(e,t){let n="string"==typeof e[to.LLM_PROVIDER_ID_KEY]?String(e[to.LLM_PROVIDER_ID_KEY]).trim():t.providerId,r="string"==typeof e[to.LLM_MODEL_KEY]?String(e[to.LLM_MODEL_KEY]).trim():t.model,s=th(e[to.WS_PERMISSION_MODE_KEY])||t.env[to.WS_PERMISSION_MODE_KEY],l=tx("string"==typeof e[to.WS_ALLOW_TOOL_ASK_KEY]?e[to.WS_ALLOW_TOOL_ASK_KEY]:t.env[to.WS_ALLOW_TOOL_ASK_KEY],t.env[to.WS_ALLOW_TOOL_ASK_KEY]);return{providerId:n,model:r,env:{[to.WS_PERMISSION_MODE_KEY]:s,[to.WS_ALLOW_TOOL_ASK_KEY]:l}}}(s,w.current))}catch(e){_()}},[c,a,k,C,_,o,i]),M=(0,r.useCallback)(async e=>{var t,n;let r=!!(null==e?void 0:e.silent),s=o.trim(),l=c.trim()||"qihoo";k();let u=function(e,t){let n="string"==typeof e.providerId?e.providerId.trim():t.providerId.trim(),r="string"==typeof e.model?e.model.trim():t.model.trim(),s=e.env,l=t.env;return{env:{[to.LLM_PROVIDER_ID_KEY]:n,[to.LLM_MODEL_KEY]:r,[to.WS_PERMISSION_MODE_KEY]:th(s[to.WS_PERMISSION_MODE_KEY])||l[to.WS_PERMISSION_MODE_KEY],[to.WS_ALLOW_TOOL_ASK_KEY]:tx(s[to.WS_ALLOW_TOOL_ASK_KEY],l[to.WS_ALLOW_TOOL_ASK_KEY])}}}(null!=(t=null==e?void 0:e.state)?t:S,w.current);if(!s)return y.current=u,r||d("已暂存 session overrides,待 session 建立后落盘",(0,p.resolveInfoStatusClass)(f,x)),!0;y.current=null;try{return await (0,tb.saveSessionOverrides)(i,a,l,s,u),x?v(null!=(n=null==e?void 0:e.reason)?n:"persist-session-overrides"):r||d("session overrides 已保存",(0,p.resolveInfoStatusClass)(f,x)),!0}catch(e){return d("保存 session overrides 失败:".concat(e instanceof Error?e.message:String(e)),"err"),!1}},[c,a,f,k,v,o,S,d,x,i]),I=(0,r.useCallback)(async()=>{let e=y.current;if(!e)return void await E();let t=o.trim(),n=c.trim()||"qihoo";if(t){y.current=null;try{await (0,tb.saveSessionOverrides)(i,a,n,t,e),x?v("persist-session-overrides-pending"):d("session overrides 已落盘",(0,p.resolveInfoStatusClass)(f,x)),await E()}catch(e){l.useAppStore.getState().appendLog("session-overrides","flush pending failed: ".concat(e instanceof Error?e.message:String(e)))}}},[c,a,f,E,v,o,d,x,i]),T=(0,r.useCallback)(async(e,t)=>{let n=e.trim(),r=n?(null!=t?t:S.providerId).trim():"";if(n===(S.model||"").trim()&&r===(S.providerId||"").trim())return!0;let s={...S,providerId:r,model:n};if(N(s),n)try{let e=window.localStorage.getItem(ty),t=e?JSON.parse(e):[],r=(Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.trim().length>0):[]).map(e=>e.trim()).filter(e=>e!==n);r.unshift(n),window.localStorage.setItem(ty,JSON.stringify(r.slice(0,12)))}catch(e){}return M({silent:!0,state:s})},[M,S]),O=(0,r.useCallback)((e,t)=>{var n;let r=(null!=(n=j.current)?n:Promise.resolve(!0)).then(()=>T(e,t)).finally(()=>{j.current===r&&(j.current=null)});return j.current=r,r},[T]),R=(0,r.useCallback)(e=>{N(t=>({...t,model:e}))},[]),L=(0,r.useCallback)(e=>{N(t=>({...t,providerId:e}))},[]),D=(0,r.useCallback)(e=>{let t={...S,env:{...S.env,[to.WS_ALLOW_TOOL_ASK_KEY]:e}};N(t),M({silent:!0,state:t})},[M,S]),W=(0,r.useCallback)(e=>{let t=th(e===to.PERMISSION_MODE_EMPTY_SENTINEL?"":e)||"default",n={...S,env:{...S.env,[to.WS_PERMISSION_MODE_KEY]:t}};N(n),M({silent:!0,state:n})},[M,S]);return(0,r.useEffect)(()=>{A()},[A,c]),(0,r.useEffect)(()=>{k(),o.trim()||N(w.current)},[u,k,o]),(0,r.useEffect)(()=>(k(),o.trim())?y.current?void I():void E():void A().then(()=>_()),[c,I,A,E,k,_,o]),{sessionOverrideState:S,setSessionModel:R,setSessionProviderId:L,setAllowToolAsk:D,setPermissionModeFromSelect:W,commitSessionModel:T,enqueueModelCommit:O,persistFromState:M,resetToDefaults:_,modelInputTitle:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=e.trim(),r=t.trim();return n?"session 级模型覆盖(服务商 · 模型):".concat(r?"".concat(r," · "):"").concat(n):"留空=跟随默认服务商与模型"}(S.model,S.providerId),allowToolAskTitle:"1"===S.env[to.WS_ALLOW_TOOL_ASK_KEY]?"已设置 WS_ALLOW_TOOL_ASK=1(ask 将自动通过)":"已设置 WS_ALLOW_TOOL_ASK=0(ask 需手动确认)",permissionModeTitle:(e=S.env[to.WS_PERMISSION_MODE_KEY])&&"default"!==e?"已设置 WS_PERMISSION_MODE=".concat(e):"未设置 WS_PERMISSION_MODE(默认)",permissionModeSelectValue:(t=S.env[to.WS_PERMISSION_MODE_KEY])&&"default"!==t?t:to.PERMISSION_MODE_EMPTY_SENTINEL,allowToolAsk:S.env[to.WS_ALLOW_TOOL_ASK_KEY],permissionMode:S.env[to.WS_PERMISSION_MODE_KEY],sessionModel:S.model,sessionProviderId:S.providerId,flushPendingIfAny:I,pendingModelPersistRef:j}}({onRestartSubprocess:u}),E=(0,s.useRouter)(),M=(0,s.useSearchParams)(),[I,T]=(0,r.useState)(""),[O,R]=(0,r.useState)(!1),[L,D]=(0,r.useState)(!1),[W,z]=(0,r.useState)(""),[P,F]=(0,r.useState)([]),[K,B]=(0,r.useState)(!1),[U,q]=(0,r.useState)([]),[H,V]=(0,r.useState)(!1),[J,Q]=(0,r.useState)(-1),[X,G]=(0,r.useState)([]),[Z,$]=(0,r.useState)(""),[ee,et]=(0,r.useState)(0),[en,er]=(0,r.useState)(0),es=(0,r.useRef)(null),el=(0,r.useRef)(null),ei=(0,r.useRef)(null),ea=(0,r.useRef)(!1),eo=(0,r.useRef)(!1),ec=(0,r.useRef)(null),[eu,ed]=(0,r.useState)(!1),[em,ep]=(0,r.useState)([]),[ef,eh]=(0,r.useState)([]),[eg,ex]=(0,r.useState)(!1),ev=(0,r.useRef)(0),[eb,ey]=(0,r.useState)(""),ej=(0,l.useAppStore)(e=>e.wsUrl),ew=(0,l.useAppStore)(e=>e.apiBase),eS=(0,l.useAppStore)(e=>e.sessionId),eN=(0,l.useAppStore)(e=>e.agentId),ek=(0,l.useAppStore)(e=>e.bridgeReady),eA=(0,l.useAppStore)(e=>e.wsConnected),e_=(0,l.useAppStore)(e=>e.statusText),eC=(0,l.useAppStore)(e=>e.apiErrorState),eE=(0,l.useAppStore)(e=>e.resetApiErrorState),eM=(0,l.useAppStore)(e=>e.sessionViewMode),eI=(0,l.useAppStore)(e=>e.sessionContextPercent),eT=(0,l.useAppStore)(e=>e.setSessionViewMode),eO=(0,l.useAppStore)(e=>e.setPendingHistoryRefresh),eR=I.trim().length>0||ef.length>0,eL=!eA||!ek||!eR,eD=(0,r.useCallback)((e,t)=>{c.appToast[t](e,{duration:2e3})},[]),eW=()=>{let e=es.current;if(!e)return;e.style.height="auto";let t=Math.min(e.scrollHeight,200);e.style.height="".concat(t,"px"),e.style.overflowY=e.scrollHeight>200?"auto":"hidden"},ez=(0,r.useCallback)(async e=>{let t=eN.trim();if(!t)return void eD("上传失败: 未选择 Agent","error");ed(!0);let n=Array.from(e),r=n.map(e=>({id:tE(),name:e.name,size:e.size,progress:12})),s=new Set(r.map(e=>e.id));ep(e=>[...e,...r]);try{let e=[];for(let[s,l]of n.entries()){let n=r[s];ep(e=>e.map(e=>e.id===n.id?{...e,progress:70}:e));let i=await (0,t_.uploadWorkspaceFile)(ej,ew,t,l);ep(e=>e.map(e=>e.id===n.id?{...e,progress:96}:e)),await tM(),e.push({path:i.path,name:l.name,size:l.size})}eh(t=>[...t,...e.map(e=>({id:tE(),...e}))]),ep(e=>e.filter(e=>!s.has(e.id))),window.setTimeout(()=>{var e;eW(),null==(e=es.current)||e.focus()},0)}catch(e){ep(e=>e.filter(e=>!s.has(e.id))),eD("上传失败: ".concat(e instanceof Error?e.message:String(e)),"error")}finally{ed(!1)}},[eN,ew,eD,ej]);(0,r.useEffect)(()=>{let e=e=>{var t;(null==(t=e.dataTransfer)?void 0:t.types.includes("Files"))&&(e.preventDefault(),ev.current+=1,1===ev.current&&ex(!0))},t=()=>{ev.current-=1,0===ev.current&&ex(!1)},n=e=>{var t;(null==(t=e.dataTransfer)?void 0:t.types.includes("Files"))&&e.preventDefault()},r=e=>{var t;e.preventDefault(),ev.current=0,ex(!1);let n=null==(t=e.dataTransfer)?void 0:t.files;(null==n?void 0:n.length)&&ez(n)};return document.addEventListener("dragenter",e),document.addEventListener("dragleave",t),document.addEventListener("dragover",n),document.addEventListener("drop",r),()=>{document.removeEventListener("dragenter",e),document.removeEventListener("dragleave",t),document.removeEventListener("dragover",n),document.removeEventListener("drop",r)}},[ez]);let eP=(0,r.useCallback)(async e=>{let t=eN.trim(),n=ef.find(t=>t.id===e);if(n){if(!t)return void eD("删除失败: 未选择 Agent","error");try{await (0,t_.deleteRepoFile)(ej,ew,t,n.path);let r=n.path.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=RegExp('@(?:"workspace/'.concat(r,'"|workspace/').concat(r,")\\s?"),"g");T(e=>e.replace(s,"").trimEnd()+(e.trim()?" ":"")),eh(t=>t.filter(t=>t.id!==e))}catch(e){eD("删除失败: ".concat(e instanceof Error?e.message:String(e)),"error")}}},[eN,ew,eD,ef,ej]),eF=(0,r.useCallback)(async e=>{let t=e.target.files;(null==t?void 0:t.length)&&(await ez(t),e.target&&(e.target.value=""))},[ez]),eK=(0,r.useCallback)(e=>{var t;let n=(0,tC.classifyPasteItems)(null==(t=e.nativeEvent.clipboardData)?void 0:t.items);"files"===n.kind&&(e.preventDefault(),n.files.length&&ez(n.files))},[ez]),eB=async()=>{if(!eL&&(!y.current||await y.current))"draft"===eM&&(eT("history"),eO(!0)),t([I.trim(),ef.map(e=>(function(e){let t="workspace/"+String(e||"").replace(/^\/+/,"");return/\s/.test(t)?'@"'.concat(t,'"'):"@".concat(t)})(e.path)).join(" ")].filter(Boolean).join(" ")),T(""),eh([]),B(!0)},eY=(0,r.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=Date.now();if(!e&&U.length>0&&t-ee<3e4)return U;et(t);try{let e=await (0,e4.get)((0,e3.buildModelsApiUrl)(ej,ew,eN.trim()||"qihoo")),t=Array.isArray(e.providers)?e.providers:[],n=[];for(let e=0;e<t.length;e++){let r=t[e],s="string"==typeof r.id?r.id.trim():"",l=Array.isArray(r.models)?r.models:[];for(let e=0;e<l.length;e++){let t=l[e],r="string"==typeof(null==t?void 0:t.id)?t.id.trim():"";if(!r)continue;let i="string"==typeof(null==t?void 0:t.name)&&t.name.trim()||"string"==typeof(null==t?void 0:t.label)&&t.label.trim()||"string"==typeof(null==t?void 0:t.displayName)&&t.displayName.trim()||r,a="string"==typeof(null==t?void 0:t.description)&&t.description.trim()||"string"==typeof(null==t?void 0:t.desc)&&t.desc.trim()||void 0;n.push({providerId:s,id:r,name:i,description:a})}}return q(n),n}catch(e){return q([]),[]}},[eN,ew,U,ee,ej]),eU=(0,r.useRef)(eY);eU.current=eY;let eq=(0,r.useCallback)(e=>tI(U,e),[U]),eH=(0,r.useCallback)(()=>{V(!1),G([]),Q(-1),$("")},[]),eV=(0,r.useCallback)((e,t)=>{eY(t).then(t=>{let n=tI(t,e);G(n),Q(n.length?0:-1),V(!0)})},[eY]),eJ=(0,r.useCallback)(()=>{var e,t;let n=null!=(t=null==(e=(0,e7.getManageRoute)("env"))?void 0:e.href)?t:"/manage/env";E.push((0,e9.buildAppNavHref)(n,{ensureAgent:!0,agent:eN.trim()||"qihoo"},M))},[eN,E,M]),eQ=(0,r.useCallback)(()=>{let e=eb.trim();if(!e){d(""),m(""),ey(""),b("","");return}let t=U.filter(t=>t.id===e),n=C.trim();if(1===t.length)n=t[0].providerId;else if(!(t.length>1))return void c.appToast.error("模型 ID 未配置:".concat(e));else if(!(n&&t.some(e=>e.providerId===n)))return void c.appToast.error("该模型 ID 在多个服务商中重复,请从下拉列表选择完整项(服务商 · 模型)。");d(e),m(n),ey(e),b(e,n)},[U,b,eb,C,d,m]),eX=(0,r.useCallback)(e=>{let t=el.current;if(!t)return;let n=eq("string"==typeof e?e:t.value);G(n),Q(n.length?0:-1),V(!0)},[eq]),eG=(0,r.useCallback)(()=>{let e=J<0||J>=X.length?0:J,t=X[e];t&&(d(t.id),m(t.providerId),ey(t.id),eH(),b(t.id,t.providerId))},[b,eH,J,X,d,m]),eZ=_.trim(),e$=C.trim();(0,r.useEffect)(()=>{eo.current||ey(_.trim())},[_]),(0,r.useEffect)(()=>{if(!eA)return void B(!1);(e_.includes("本轮结束")||e_.startsWith("错误"))&&B(!1)},[eA,e_]),(0,r.useEffect)(()=>{eW()},[I]),(0,r.useEffect)(()=>{T(""),eh([]),es.current&&(es.current.style.height="auto",es.current.style.overflowY="hidden")},[eS,eM]),(0,r.useEffect)(()=>{q([]),et(0),V(!1),G([]),Q(-1),eU.current(!0)},[eN]),(0,r.useEffect)(()=>{if(!H)return;let e=e=>{var t;let n=e.target;n&&(null==(t=ei.current)?void 0:t.contains(n))||eH()};return document.addEventListener("click",e,!0),()=>{document.removeEventListener("click",e,!0)}},[eH,H]),(0,r.useEffect)(()=>{var e;if(!H||J<0)return;let t=null==(e=ei.current)?void 0:e.querySelector("#composerModelSuggestions"),n=null==t?void 0:t.querySelector("li.is-active");n&&"function"==typeof n.scrollIntoView&&n.scrollIntoView({block:"nearest"})},[J,H]),(0,r.useEffect)(()=>{if("retrying"!==eC.phase)return void er(0);let e=()=>{er(Math.ceil(Math.max(0,eC.retryUntilTs-Date.now())/1e3))};e();let t=window.setInterval(e,250);return()=>{window.clearInterval(t)}},[eC.phase,eC.retryUntilTs]);let e0=(0,r.useCallback)(async()=>{let e=eS.trim();if(!e){F([]),R(!1);return}let t=eN.trim()||"qihoo";R(!1),D(!0),z(""),F([]);try{let n=await (0,tb.listWorkspaceFiles)(ej,ew,t,e),r=(Array.isArray(n.files)?n.files:[]).filter(e=>"string"==typeof e.path&&e.path.length>0).map(e=>({path:e.path,name:"string"==typeof e.name?e.name:void 0,size:"number"==typeof e.size?e.size:void 0,mtimeMs:"number"==typeof e.mtimeMs?e.mtimeMs:void 0})).filter(e=>e.path.includes("tool-results"));F(r)}catch(e){z("加载失败:".concat(e instanceof Error?e.message:String(e))),F([])}finally{D(!1)}},[eN,ew,eS,ej]);(0,r.useEffect)(()=>{if("draft"===eM){F([]),R(!1);return}e0()},[e0,eM]);let e1=eC.maxRetries>0?Math.min(100,Math.max(0,eC.retryAttempt/eC.maxRetries*100)):0;return(0,n.jsxs)("div",{className:"composer",children:[eg?(0,n.jsx)(tA,{}):null,(0,n.jsxs)("div",{className:"composer-inner mx-auto max-w-[840px] ".concat("draft"===eM?"is-draft-session":""),children:[P.length>0?(0,n.jsxs)("div",{className:["composer-tool-files-inline",O?"is-expanded":""].filter(Boolean).join(" "),onMouseEnter:()=>R(!0),onMouseLeave:()=>R(!1),children:[(0,n.jsxs)("div",{className:"composer-tool-files-inline-head",children:[(0,n.jsx)("span",{className:["composer-tool-files-inline-chevron",O?"is-expanded":""].filter(Boolean).join(" "),children:(0,n.jsx)(v.default,{name:"ChevronRight",size:16,className:"text-[var(--ds-muted)]",strokeWidth:1})}),(0,n.jsx)("span",{className:"composer-tool-files-inline-title text-[var(--ds-muted)]",children:"下载文件 · ".concat(P.length," 个")}),L?(0,n.jsx)("span",{className:"composer-tool-files-inline-loading",children:"加载中..."}):null]}),(0,n.jsx)("div",{className:"composer-tool-files-inline-panel-wrap",children:(0,n.jsx)("div",{className:"composer-tool-files-inline-panel-inner",children:(0,n.jsx)("div",{className:"composer-tool-files-inline-panel",children:L?(0,n.jsx)("div",{className:"composer-tool-files-inline-state",children:"正在获取文件列表…"}):W?(0,n.jsx)("div",{className:"composer-tool-files-inline-state is-error",children:W}):0===P.length?(0,n.jsx)("div",{className:"composer-tool-files-inline-state",children:"暂无 tool-results 文件"}):(0,n.jsx)("div",{className:"composer-tool-files-inline-list",children:P.map(e=>{let t=e.name||e.path.split("/").pop()||e.path;return(0,n.jsxs)("div",{className:"composer-tool-files-inline-item",children:[(0,n.jsxs)("div",{className:"composer-tool-files-inline-main",children:[(0,n.jsx)("div",{className:"composer-tool-files-inline-name text-sm",title:e.path,children:t}),(0,n.jsx)("div",{className:"composer-tool-files-inline-size text-[var(--ds-muted)]",children:(0,tC.formatBytes)(e.size)})]}),(0,n.jsx)("a",{href:(0,e3.buildWorkspaceFileDownloadUrl)(ej,ew,eN.trim()||"qihoo",e.path),download:!0,target:"_blank",rel:"noopener noreferrer",className:"composer-tool-files-inline-download","aria-label":"下载 ".concat(t),title:"下载 ".concat(t),children:(0,n.jsx)(v.default,{name:"Download",size:14,className:"!text-[var(--ds-text)]",strokeWidth:1})})]},e.path)})})})})})]}):null,"draft"===eM?(0,n.jsxs)("div",{className:"composer-draft-hero mb-4 text-center",children:[(0,n.jsx)("div",{className:"composer-draft-title",children:"欢迎回来"}),(0,n.jsx)("div",{className:"composer-draft-shortcuts mt-4 flex flex-wrap justify-center gap-2",children:tC.DRAFT_SHORTCUTS.map(e=>(0,n.jsx)("button",{type:"button",className:"composer-draft-pill",onClick:()=>{var t;T(e.text),window.setTimeout(()=>eW(),0),null==(t=es.current)||t.focus()},children:e.label},e.label))})]}):null,(0,n.jsxs)("div",{className:"composer-card ds-soft-shadow ".concat("draft"===eM?"is-draft-session":""),children:["retrying"===eC.phase?(0,n.jsxs)("div",{className:"api-retry-banner mt-2",role:"status","aria-live":"polite",children:[(0,n.jsx)("div",{className:"api-retry-banner-text",children:"网络波动,正在重连 ".concat(en,"s... (").concat(eC.retryAttempt,"/").concat(eC.maxRetries,")")}),(0,n.jsx)("div",{className:"api-retry-banner-progress",children:(0,n.jsx)("span",{style:{width:"".concat(e1,"%")}})})]}):null,"failed"===eC.phase?(0,n.jsxs)("div",{className:"api-retry-failed mt-2",role:"alert",children:[(0,n.jsx)("div",{className:"api-retry-failed-text",children:"服务暂时不可用,请稍后重试"}),(0,n.jsx)("button",{type:"button",className:"api-retry-failed-btn",onClick:()=>{eE(),null==a||a()},children:"重试"})]}):null,(em.length>0||ef.length>0)&&(0,n.jsxs)("div",{className:"mt-2 flex flex-wrap gap-3",children:[ef.map(e=>(0,n.jsxs)("div",{className:"group relative flex items-center gap-1.5 rounded-md border border-solid border-[color:var(--ds-color-border-default)] bg-[var(--ds-surface)] px-2 py-1 pr-5 text-xs text-[var(--ds-text)] transition-shadow hover:shadow-[var(--shadow-sm)]",children:[(0,n.jsx)(v.default,{name:"FileText",size:16,className:"shrink-0 text-[var(--ds-muted)]",strokeWidth:1}),(0,n.jsxs)("div",{className:"flex min-w-0 flex-col",children:[(0,n.jsx)("span",{className:"block max-w-[160px] truncate",title:e.name,children:e.name}),(0,n.jsx)("span",{className:"text-[var(--ds-muted)]",children:(0,tC.formatBytes)(e.size)})]}),(0,n.jsx)(Y.Button,{type:"button",variant:"plain",size:"icon",className:"pointer-events-none absolute -right-1.5 -top-1.5 !h-[18px] !w-[18px] min-w-[18px] rounded-full border border-solid border-[color:var(--ds-color-border-default)] bg-white !p-0 !pl-0 !pr-0 opacity-0 transition-[background-color,opacity] hover:bg-[var(--ds-color-surface-main-tint)] group-hover:pointer-events-auto group-hover:opacity-100","aria-label":"移除 ".concat(e.name),onClick:()=>eP(e.id),children:(0,n.jsx)(v.default,{name:"X",size:12})})]},e.id)),em.map(e=>(0,n.jsxs)("div",{className:"relative flex w-fit min-w-[180px] items-center gap-1.5 rounded-md border border-solid border-[color:var(--ds-color-border-default)] bg-[var(--ds-surface)] px-2 py-1 text-xs text-[var(--ds-text)]",children:[(0,n.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-[var(--surface-2)]",children:e.progress<100?(0,n.jsx)(te,{value:e.progress,size:18,strokeWidth:2,trackColor:"var(--surface-6)",indicatorColor:"var(--ds-color-surface-default)","aria-label":"".concat(e.name," 上传进度 ").concat(e.progress,"%")}):(0,n.jsx)(v.default,{name:"FileText",size:16,className:"shrink-0 text-[var(--ds-muted)]",strokeWidth:1})}),(0,n.jsxs)("div",{className:"flex min-w-0 flex-col",children:[(0,n.jsx)("span",{className:"block max-w-[120px] truncate",title:e.name,children:e.name}),(0,n.jsx)("span",{className:"text-[var(--ds-muted)]",children:(0,tC.formatBytes)(e.size)})]})]},e.id))]}),(0,n.jsx)("div",{className:"composer-input-shell mt-2",children:(0,n.jsx)(tt.Textarea,{ref:es,id:"prompt",className:"min-h-0 w-full rounded-none border-0 bg-transparent px-1 py-1 !text-base shadow-none outline-none transition-none hover:!border-0 hover:!shadow-none focus:!border-0 focus:!shadow-none focus:!outline-none focus-visible:!border-0 focus-visible:!shadow-none focus-visible:!outline-none focus-visible:![box-shadow:none]",placeholder:"请输入你的问题",value:I,onChange:e=>T(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),eB())},onPaste:eK})}),(0,n.jsxs)("div",{className:"mt-3 flex items-center justify-between gap-2",children:[(0,n.jsxs)("div",{className:"composer-tools-left flex items-center !justify-start gap-2",children:[(0,n.jsx)("input",{type:"file",ref:ec,className:"hidden",multiple:!0,accept:"*/*",onChange:eF}),(0,n.jsx)(ta.IconTooltipButton,{icon:"Create",label:"添加文件等",disabled:eu,onClick:()=>{var e;return null==(e=ec.current)?void 0:e.click()},className:["h-8 w-8 text-[var(--ds-muted)] hover:bg-[var(--ds-color-surface-main-tint)] hover:text-[var(--ds-text)]",eu?"is-busy":""].filter(Boolean).join(" ")}),(0,n.jsxs)("div",{className:"composer-model-field",id:"composerModelField",ref:ei,children:[(0,n.jsx)(e8.Input,{ref:el,type:"text",id:"composerModelInput",className:"composer-model-input",placeholder:"模型 ID(如 anthropic/claude-3.5-haiku)",spellCheck:!1,autoComplete:"off","aria-label":"模型","aria-autocomplete":"list","aria-controls":"composerModelSuggestions","aria-expanded":H,title:j,value:eb,onFocus:()=>{eo.current=!0,$(""),eV("",!1)},onClick:()=>{$(""),eX("")},onChange:e=>{let t=e.target.value;ey(t),d(t),$(t),eX(t)},onKeyDown:e=>{if("ArrowDown"===e.key)return(e.preventDefault(),H)?void(X.length&&Q(e=>e<0||e+1>=X.length?0:e+1)):void eX("");if("ArrowUp"===e.key){if(!H||!X.length)return;e.preventDefault(),Q(e=>e<0?0:e-1<0?X.length-1:e-1);return}if("Escape"===e.key){if(!H)return;e.preventDefault(),eH();return}if("Enter"===e.key){if(H&&X.length){e.preventDefault(),eG();return}e.preventDefault(),eH(),eQ()}},onBlur:e=>{var t;let n=e.relatedTarget;!(n&&(null==(t=ei.current)?void 0:t.contains(n)))&&(ea.current||(eo.current=!1,eH(),eQ()))}}),(0,n.jsx)(S.TooltipProvider,{delayDuration:200,children:(0,n.jsxs)("div",{id:"composerModelSuggestions",className:"composer-model-suggestions ".concat(H?"is-open":""),children:[(0,n.jsxs)("div",{className:"composer-model-search-field",children:[(0,n.jsx)(e8.Input,{type:"search",value:Z,onChange:e=>{let t=e.target.value,n=tI(U,t);$(t),G(n),Q(n.length?0:-1)},onBlur:e=>{var t;let n=e.relatedTarget;n&&(null==(t=ei.current)?void 0:t.contains(n))||(eo.current=!1,eH())},onKeyDown:e=>{if("ArrowDown"===e.key){if(e.preventDefault(),!X.length)return;Q(e=>e<0||e+1>=X.length?0:e+1);return}if("ArrowUp"===e.key){if(e.preventDefault(),!X.length)return;Q(e=>e<0?0:e-1<0?X.length-1:e-1);return}if("Enter"===e.key){if(!X.length)return;e.preventDefault(),eG();return}"Escape"===e.key&&(e.preventDefault(),eH())},placeholder:"搜索模型名称或模型ID",className:"composer-model-search-input","aria-label":"搜索模型"}),(0,n.jsx)(v.default,{name:"Search",size:16,className:"composer-model-search-icon"})]}),(0,n.jsx)("ul",{className:"composer-model-list",role:"listbox","aria-label":"模型候选",children:X.length?X.map((e,t)=>(0,n.jsx)(tw,{providerId:e.providerId,modelId:e.id,name:e.name,description:e.description,isActive:t===J,isCommitted:e.id===eZ&&(!e$||e.providerId===e$),onHover:()=>Q(t),onSelect:()=>{ea.current=!0,eH(),d(e.id),m(e.providerId),ey(e.id),b(e.id,e.providerId),window.setTimeout(()=>{ea.current=!1,eo.current=!1},0)}},"".concat(e.providerId,"::").concat(e.id))):(0,n.jsx)("li",{className:"composer-model-suggest-empty",role:"presentation",children:"(无匹配,可直接输入完整模型 ID)"})}),(0,n.jsx)("div",{className:"composer-model-actions",children:(0,n.jsxs)(Y.Button,{type:"button",variant:"plain",size:"sm",className:"composer-model-action-link",onMouseDown:e=>e.preventDefault(),onClick:eJ,children:[(0,n.jsx)(v.default,{name:"Info",size:16}),"更多模型请前往",(0,n.jsx)("span",{children:"模型管理"})]})})]})})]}),(0,n.jsx)(ti,{id:"composerToolAskSelect",value:A,onValueChange:e=>{f("1"===e?"1":"0")},options:tm,ariaLabel:"工具确认模式",title:w,triggerClassName:"composer-allow-ask-select",placeholderLabel:"自动"}),(0,n.jsx)(ti,{id:"composerModeSelect",value:k,onValueChange:x,options:tc,ariaLabel:"执行权限",title:N,triggerClassName:"composer-mode-select",placeholderLabel:"默认模式",toSelectItemValue:tu,fromSelectItemValue:td})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:["draft"!==eM?(0,n.jsx)(tS,{percent:eI}):null,K?(0,n.jsx)("button",{type:"button",className:"btn-send-circle composer-icon-btn bg-gray-800",style:{backgroundColor:"#efefef",boxShadow:"none",color:"#8f8f8f"},disabled:!eA,onClick:i,"aria-label":"中断",title:"中断",children:(0,n.jsx)(v.default,{name:"Stop",size:16})}):(0,n.jsx)("button",{type:"button",className:"btn-send-circle",disabled:eL,title:"发送","aria-label":"发送",onClick:eB,children:(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",viewBox:"0 0 256 256",children:(0,n.jsx)("path",{d:"M208.49,120.49a12,12,0,0,1-17,0L140,69V216a12,12,0,0,1-24,0V69L64.49,120.49a12,12,0,0,1-17-17l72-72a12,12,0,0,1,17,0l72,72A12,12,0,0,1,208.49,120.49Z"})})})]})]})]}),(0,n.jsx)("p",{className:"page-footer-note ".concat("draft"===eM?"":"page-footer-note--compact"),children:"本页仅供本地联调;模型与工具输出请自行甄别。"})]})]})}function tO(){let e=(0,l.useAppStore)(e=>e.rawLog),[t,s]=(0,r.useState)(!1),i=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{null!=i.current&&window.clearTimeout(i.current)},[]);let a=(0,r.useCallback)(()=>{if(!e.trim())return void c.appToast.error("暂无日志可复制");("undefined"!=typeof navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText?navigator.clipboard.writeText(e):"undefined"==typeof document?Promise.reject(Error("Clipboard unavailable")):new Promise((t,n)=>{let r=document.createElement("textarea");r.value=e,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 t();n(Error("Clipboard copy failed"))})).then(()=>{s(!0),null!=i.current&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>s(!1),1400)},()=>{c.appToast.error("复制失败,请手动选择复制")})},[e]);return(0,n.jsxs)("details",{className:"raw-log-drawer",id:"rawLogDrawer",children:[(0,n.jsxs)("summary",{className:"raw-log-summary",children:[(0,n.jsx)("span",{children:"原始下行日志(JSON)"}),(0,n.jsx)("span",{className:"raw-log-chevron","aria-hidden":!0,children:"▼"})]}),(0,n.jsxs)("div",{className:"raw-log-body",children:[(0,n.jsx)("div",{className:"flex shrink-0 items-center justify-end border-b border-[var(--ds-color-border-default)] px-3 py-1.5",children:(0,n.jsx)(ta.IconTooltipButton,{icon:t?"Check":"Copy",label:t?"已复制":"复制全部日志",ariaLabel:t?"已复制全部日志":"复制全部日志",disabled:!e.trim(),onClick:a})}),(0,n.jsx)("pre",{id:"log",children:e})]})]})}let tR=/^[A-Za-z0-9_-]{1,128}$/;function tL(){let e=(0,s.useSearchParams)(),t=(0,l.useAppStore)(e=>e.wsUrl),u=(0,l.useAppStore)(e=>e.apiBase),m=(0,l.useAppStore)(e=>e.sessionId),h=(0,l.useAppStore)(e=>e.lastSessions),v=(0,l.useAppStore)(e=>e.statusText),b=(0,l.useAppStore)(e=>e.statusClass),y=(0,l.useAppStore)(e=>e.sessionViewMode),j=(0,l.useAppStore)(e=>e.pendingHistoryRefresh),w=(0,l.useAppStore)(e=>e.setAgentId),N=(0,l.useAppStore)(e=>e.setSessionId),k=(0,l.useAppStore)(e=>e.setSessionViewMode),A=(0,l.useAppStore)(e=>e.setPendingHistoryRefresh),_=(0,l.useAppStore)(e=>e.setMessages),{loadSessions:C,currentAgent:E}=(0,i.useSession)(),{reconnect:M,switchSession:I,sendPrompt:T,sendAbort:O,sendReloadAgentConfig:R}=(0,o.useWorkspaceRuntime)(),[L,D]=(0,r.useState)(!1),[W,z]=(0,r.useState)(""),[P,F]=(0,r.useState)(!1),[K,B]=(0,r.useState)(!1),[Y,U]=(0,r.useState)(!1),[q,H]=(0,r.useState)(!1),V=(0,r.useRef)(!1),J=(0,r.useRef)(!1);(0,r.useEffect)(()=>{var t,n;let r=e.get("agent");if((null==r?void 0:r.trim())&&w(r.trim()),V.current)return;V.current=!0;let s=null!=(n=null==(t=e.get("sessionId"))?void 0:t.trim())?n:"";tR.test(s)&&(N(s),k("history"),A(!1),I(s))},[e,w,N,k,A,I]),(0,r.useEffect)(()=>{var t;J.current||"single-message"===(null==(t=e.get("demo"))?void 0:t.trim())&&(J.current=!0,(0,g.loadDemoSingleMessage)().then(e=>{if("messages"!==e.type||!Array.isArray(e.messages))throw Error("single-message.json 结构不符合预期");k("history"),N("demo-single-message"),A(!1),_(e.messages)}).catch(e=>{J.current=!1,c.appToast.error("加载 demo 失败:".concat(String(e)))}))},[e,_,A,N,k]),(0,r.useEffect)(()=>{let e=m.trim(),t=v.includes("本轮结束")||v.startsWith("错误");j&&e&&t&&C().finally(()=>{l.useAppStore.getState().setPendingHistoryRefresh(!1)})},[j,m,v,C]);let Q=(0,r.useMemo)(()=>{if("draft"===y)return"开启新对话";let e=m.trim();if(!e)return"选择左侧会话或开启新对话";let t=h.find(t=>t.sessionId===e);if(t){let e=(0,a.sessionTitle)(t).trim();if(e&&"(无标题)"!==e)return e.length>72?"".concat(e.slice(0,69),"…"):e}return e},[h,m,y]),X=(0,r.useMemo)(()=>{if("draft"===y)return Q;let e=m.trim();if(!e)return Q;let t=h.find(t=>t.sessionId===e),n=[];return n.push("session:".concat(e)),t&&n.push((0,a.sessionTitle)(t)),n.join("\n")},[h,Q,m,y]),G="1"===String(e.get("dev")),Z=(0,r.useRef)(null),{control:$,bar:ee}=function(e){let{scrollContainerRef:t}=e,n=(0,l.useAppStore)(e=>e.turnRunning),s=(0,l.useAppStore)(e=>e.streamBuffer),i=(0,l.useAppStore)(e=>e.sessionId),[a,o]=(0,r.useState)(!0),[c,u]=(0,r.useState)("hidden"),[d,m]=(0,r.useState)(0),p=(0,r.useRef)(null),f=(0,r.useRef)(0),h=(0,r.useRef)(0),g=(0,r.useRef)(!0),x=(0,r.useRef)("hidden"),v=(0,r.useRef)(!1),b=(0,r.useRef)(null),y=(0,r.useRef)(null),j=(0,r.useRef)(0),w=(0,r.useRef)(n),S=(0,r.useRef)(i);(0,r.useEffect)(()=>{g.current=a},[a]),(0,r.useEffect)(()=>{x.current=c},[c]);let N=(0,r.useCallback)(()=>{v.current=!0,null!=b.current&&window.clearTimeout(b.current),b.current=window.setTimeout(()=>{v.current=!1,b.current=null},50)},[]),k=(0,r.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"instant";N(),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"instant";e&&e.scrollIntoView({block:"end",behavior:t})}(p.current,e)},[N]),A=(0,r.useCallback)(()=>{g.current=!0,o(!0),u("hidden"),m(0),f.current=h.current},[]),_=(0,r.useCallback)(()=>{A()},[A]),C=(0,r.useCallback)(()=>{g.current&&(g.current=!1,f.current=h.current,o(!1),m(0),u(n||s.trim().length>0?"streaming":"idle"))},[s,n]),E=(0,r.useCallback)(()=>{A(),k("instant")},[A,k]),M=(0,r.useCallback)(()=>{A(),k("smooth")},[A,k]),I=(0,r.useCallback)(e=>{p.current=e},[]),T=(0,r.useCallback)(e=>{h.current=e,g.current||"streaming"!==x.current||m(Math.max(0,e-f.current))},[]);(0,r.useEffect)(()=>{i!==S.current&&(S.current=i,_())},[i,_]),(0,r.useEffect)(()=>{let e=w.current;if(w.current=n,!e&&n){_(),k("instant");return}!e||n||g.current||u(e=>"streaming"===e?"ended":e)},[n,_,k]),(0,r.useEffect)(()=>{let e=t.current;if(!e)return;let n=()=>{if(!v.current){if(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return eE(e)<=t}(e)){g.current||A();return}eE(e)>=60&&C()}},r=t=>{v.current||t.deltaY>=-4||eM(e,t.target,t.deltaY)||C()},s=e=>{var t;let n=e.touches[0];y.current=null!=(t=null==n?void 0:n.clientY)?t:null,j.current=0},l=t=>{if(v.current||null==y.current)return;let n=t.touches[0];if(!n)return;let r=y.current-n.clientY;if(r<=0){j.current=0;return}!eM(e,t.target,r)&&(j.current+=r,y.current=n.clientY,j.current>=24&&C())},i=()=>{y.current=null,j.current=0};return e.addEventListener("scroll",n,{passive:!0}),e.addEventListener("wheel",r,{passive:!0}),e.addEventListener("touchstart",s,{passive:!0}),e.addEventListener("touchmove",l,{passive:!0}),e.addEventListener("touchend",i,{passive:!0}),e.addEventListener("touchcancel",i,{passive:!0}),()=>{e.removeEventListener("scroll",n),e.removeEventListener("wheel",r),e.removeEventListener("touchstart",s),e.removeEventListener("touchmove",l),e.removeEventListener("touchend",i),e.removeEventListener("touchcancel",i)}},[t,A,C]),(0,r.useEffect)(()=>()=>{null!=b.current&&window.clearTimeout(b.current)},[]);let O=!a&&("streaming"===c||"ended"===c),R=O&&"streaming"===c,L=O&&"ended"===c;return{control:{isFollowPinned:a,scrollToBottom:k,setEndAnchor:I,setContentUnitCount:T},bar:{visible:O,phase:c,pendingStepDelta:d,showResumeFollow:R,showViewFullAnswer:L,onResumeFollow:E,onViewFullAnswer:M}}}({scrollContainerRef:Z});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("header",{className:"main-header",children:(0,n.jsx)("div",{className:"main-header-top flex items-center justify-between gap-3",children:(0,n.jsxs)(S.TooltipProvider,{children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("h1",{id:"mainTitle",className:"min-w-0 max-w-full flex-1 truncate",children:"draft"!==y&&m.trim()&&Q===m.trim()?(0,a.shortUuidTitle)(m.trim()):Q})}),(0,n.jsx)(S.TooltipContent,{children:(0,n.jsx)("p",{className:"max-w-xs whitespace-pre-wrap break-all",children:X})})]}),(0,n.jsx)("div",{title:v,id:"status",className:"conn-status min-w-0 shrink-0 truncate text-xs ".concat(b),children:v})]}),(0,n.jsx)("div",{className:"flex shrink-0 items-center gap-1"})]})})}),"draft"===y?null:(0,n.jsxs)("div",{ref:Z,className:"main-scroll",children:[(0,n.jsxs)("div",{className:"main-body",children:[(0,n.jsx)(e5,{followControl:$}),G?(0,n.jsx)(tO,{}):null]}),(0,n.jsx)(e6,{...ee})]}),(0,n.jsx)(tT,{onSend:T,onAbort:O,onRetryConnection:M}),(0,n.jsx)(f,{open:K,onOpenChange:B,variant:"tools",wsUrl:t,apiBase:u,agent:E(),onNotifyReloadAgentConfig:R}),(0,n.jsx)(f,{open:Y,onOpenChange:U,variant:"mcp",wsUrl:t,apiBase:u,agent:E(),onNotifyReloadAgentConfig:R}),(0,n.jsx)(x,{open:q,onOpenChange:H,wsUrl:t,apiBase:u,agent:E()}),(0,n.jsx)(d.AppDialog,{open:L,onOpenChange:D,title:"编辑系统 mcp.json",footer:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"btn-agent-md-cancel",onClick:()=>D(!1),children:"取消"}),(0,n.jsx)("button",{type:"button",className:"btn-primary",disabled:P,onClick:()=>{F(!0),(0,g.saveSystemMcpJson)(t,u,E(),W).then(()=>{l.useAppStore.getState().setStatus("系统 mcp.json 已保存",(0,p.resolveInfoStatusClass)(l.useAppStore.getState().bridgeReady,l.useAppStore.getState().wsConnected)),c.appToast.success("已保存系统 mcp.json。"),D(!1)}).catch(e=>{c.appToast.error("保存 mcp.json 失败:".concat(e instanceof Error?e.message:String(e)))}).finally(()=>{F(!1)})},children:"保存"})]}),children:(0,n.jsx)("textarea",{className:"agent-md-editor",spellCheck:!1,value:W,onChange:e=>z(e.target.value)})})]})}}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,69799,e=>{"use strict";let t;e.s(["BridgeDebugApp",()=>tL],69799),e.i(75526);var n=e.i(59992),r=e.i(65765),s=e.i(74548),l=e.i(49377),i=e.i(36763),a=e.i(97737);e.i(82860);var o=e.i(33904);e.i(377);var c=e.i(18805),u=e.i(28661),d=e.i(40751),m=e.i(99329),p=e.i(15327);function f(e){let{open:t,onOpenChange:s,variant:i,wsUrl:a,apiBase:o,agent:f,onNotifyReloadAgentConfig:h}=e,g=(0,l.useAppStore)(e=>e.setStatus),x=(0,l.useAppStore)(e=>e.bridgeReady),v=(0,l.useAppStore)(e=>e.wsConnected),b="tools"===i?"工具管理":"MCP 管理",y="tools"===i?"当前无可管理的 runtime 工具文件":"当前无可管理的 mcp-runtime 包",[j,w]=(0,r.useState)(""),[S,N]=(0,r.useState)([]),[k,A]=(0,r.useState)(!1),[_,C]=(0,r.useState)(null),[E,M]=(0,r.useState)(!1),I=(0,r.useRef)(null),T=(0,r.useCallback)(()=>{try{null==h||h()}catch(e){}},[h]),O=(0,r.useCallback)(async()=>{A(!0),C(null),w("加载中…");try{let e="tools"===i?await (0,m.listRuntimeTools)(a,o,f):await (0,m.listRuntimeMcpPackages)(a,o,f),t="tools"===i?e.runtimeToolsDir||".ws-agents/tools-runtime":e.mcpRuntimeDir||".ws-agents/mcp-runtime",n=Array.isArray(e.items)?e.items.filter(e=>{var t;return!!(null==e||null==(t=e.id)?void 0:t.trim())}):[];N(n),w("".concat(t," · 共 ").concat(n.length," 个").concat("tools"===i?"工具":"包"))}catch(e){w("加载失败"),N([]),C("加载失败: ".concat(e)),g("加载 ".concat(b," 列表失败"),"err")}finally{A(!1)}},[i,a,o,f,b,g]);(0,r.useEffect)(()=>{t&&O()},[t,O]);let R=(0,r.useCallback)(()=>{s(!1)},[s]),L=(0,r.useCallback)(e=>{T();let t="tools"===i?(0,m.exportRuntimeToolUrl)(a,o,f,e):(0,m.exportRuntimeMcpUrl)(a,o,f,e);window.open(t,"_blank","noopener")},[i,a,o,f,T]),D=(0,r.useCallback)(async e=>{if(await (0,u.confirmAlertDialog)({title:"确认删除".concat("tools"===i?"工具":" MCP 包","?"),description:e,confirmText:"删除",cancelText:"取消"}))try{"tools"===i?await (0,m.deleteRuntimeTool)(a,o,f,e):await (0,m.deleteRuntimeMcp)(a,o,f,e),g("tools"===i?"工具文件已删除":"MCP 包已删除",(0,p.resolveInfoStatusClass)(x,v)),T(),await O()}catch(e){c.appToast.error("删除失败:".concat(e instanceof Error?e.message:String(e)))}},[i,a,o,f,T,O,x,v,g]),W=(0,r.useCallback)(()=>{let e=I.current;e&&(e.value="",e.click())},[]),z=(0,r.useCallback)(async e=>{if(e){M(!0);try{let t="tools"===i?await (0,m.importRuntimeTool)(a,o,f,e):await (0,m.importRuntimeMcp)(a,o,f,e),n=Number(t.imported||0),r=Number(t.overwritten||0),s=Array.isArray(t.rejected)?t.rejected.length:0;T(),g("tools"===i?"工具 zip 已导入":"MCP zip 已导入",(0,p.resolveInfoStatusClass)(x,v)),c.appToast.success("导入完成:导入 ".concat(n,",覆盖 ").concat(r)+(s>0?",拒绝 ".concat(s):"")),await O()}catch(e){c.appToast.error("导入失败:".concat(e instanceof Error?e.message:String(e)))}finally{M(!1)}}},[i,a,o,f,T,O,x,v,g]),P=k?(0,n.jsx)("div",{className:"tool-files-state",children:"加载中…"}):_?(0,n.jsx)("div",{className:"tool-files-state",children:_}):0===S.length?(0,n.jsx)("div",{className:"tool-files-state",children:y}):S.map(e=>{let t="mcp"===i&&!0!==e.hasMcpJson;return(0,n.jsxs)("div",{className:"tool-files-item hover:bg-[var(--ds-color-surface-item-hover)]",children:[(0,n.jsxs)("div",{className:"tool-files-main",children:[(0,n.jsx)("div",{className:"tool-files-name",title:e.id,children:e.id}),(0,n.jsx)("div",{className:"tool-files-sub",children:"tools"===i?function(e){let t=Number(e.fileCount||0),n="directory"===e.entryType?"目录工具包":"单文件工具",r=Number.isFinite(t)&&t>0?t:1;return"".concat(n," · 文件数 ").concat(r," · 导出内容:带一层工具目录的 zip 包")}(e):function(e){let t=!0===e.hasMcpJson,n=Number(e.fileCount||0);return"MCP 包目录"+(t?" · 含 mcp.json":" · 缺少 mcp.json")+" · 可导出文件 "+(Number.isFinite(n)&&n>0?n:0)+" · zip 仅含编译产物(mcp.json / index.js)"}(e)})]}),(0,n.jsxs)("div",{className:"runtime-pkg-row-actions",children:[(0,n.jsx)("button",{type:"button",className:"runtime-pkg-row-action",onClick:()=>void D(e.id),children:"删除"}),(0,n.jsx)("button",{type:"button",className:"runtime-pkg-row-action",disabled:t,onClick:()=>{t||L(e.id)},children:"导出"})]})]},e.id)});return(0,n.jsxs)(d.AppDialog,{open:t,onOpenChange:s,title:b,footer:(0,n.jsx)("button",{type:"button",className:"btn-agent-md-cancel",onClick:R,children:"关闭"}),children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center justify-between gap-3",children:[(0,n.jsx)("p",{className:"tool-files-meta",children:j}),(0,n.jsx)("div",{children:(0,n.jsx)("button",{type:"button",className:"btn-system-settings",disabled:E,onClick:W,children:"导入 zip"})})]}),(0,n.jsx)("div",{className:"tool-files-list",style:{maxHeight:"min(62vh, 560px)",overflowY:"auto"},children:P}),(0,n.jsx)("input",{ref:I,type:"file",accept:".zip,application/zip",className:"hidden","aria-hidden":!0,onChange:e=>{var t,n;z(null!=(n=null==(t=e.target.files)?void 0:t[0])?n:null),e.target.value=""}})]})}var h=e.i(49091),g=e.i(35182);function x(e){let{open:t,onOpenChange:s,wsUrl:i,apiBase:a,agent:o}=e,u=(0,l.useAppStore)(e=>e.setStatus),m=(0,l.useAppStore)(e=>e.bridgeReady),f=(0,l.useAppStore)(e=>e.wsConnected),[x,v]=(0,r.useState)(!1),[b,y]=(0,r.useState)(!1),[j,w]=(0,r.useState)(""),[S,N]=(0,r.useState)({}),k=(0,r.useCallback)((e,t)=>{N(n=>({...n,[e]:t}))},[]);(0,r.useEffect)(()=>{if(!t)return;let e=!1;return v(!0),w(""),N({}),(0,g.loadSystemEnv)(i,a,o).then(t=>{if(e)return;let n="string"==typeof t.content?t.content:"";N({...(0,h.parseEnvContentToMap)(n)}),w("string"==typeof t.path?t.path:"")}).catch(t=>{e||(c.appToast.error("加载 .env 失败:".concat(t instanceof Error?t.message:String(t))),s(!1))}).finally(()=>{e||v(!1)}),()=>{e=!0}},[t,i,a,o,s]);let A=(0,r.useCallback)(()=>{s(!1)},[s]),_=(0,r.useCallback)(()=>{let e=(0,h.buildEnvFileContentFromForm)([],S);y(!0),(0,g.saveSystemEnv)(i,a,o,e).then(()=>{u(".env 已保存(重启 ws-server 后进程环境变量才会更新)",(0,p.resolveInfoStatusClass)(m,f)),c.appToast.success("已保存项目根目录 .env。\n\n注意:已运行的 ws-server 进程不会自动重载环境变量,若需生效请重启服务或在新会话中验证。"),s(!1)}).catch(e=>{c.appToast.error("保存 .env 失败:".concat(e instanceof Error?e.message:String(e)))}).finally(()=>{y(!1)})},[S,i,a,o,m,f,u,s]);return(0,n.jsx)(d.AppDialog,{open:t,onOpenChange:s,title:(0,n.jsxs)("div",{className:"min-w-0",children:[(0,n.jsx)("span",{children:"环境变量"}),j?(0,n.jsx)("p",{className:"m-0 text-xs font-normal text-[var(--ds-muted)]",children:j}):null]}),footer:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"btn-agent-md-cancel",onClick:A,children:"取消"}),(0,n.jsx)("button",{type:"button",className:"btn-primary",disabled:x||b,onClick:()=>void _(),children:"保存"})]}),children:(0,n.jsx)("div",{className:"env-form-table-body","aria-busy":x,children:x?(0,n.jsx)("div",{className:"tool-files-state",children:"加载中…"}):(0,n.jsx)(n.Fragment,{children:Object.keys(S).sort().map(e=>{var t;return(0,n.jsxs)("div",{className:"env-form-row",children:[(0,n.jsx)("label",{className:"env-form-label",htmlFor:"env-field-".concat(e),children:e}),(0,n.jsx)("div",{className:"env-form-field",children:(0,n.jsx)("input",{id:"env-field-".concat(e),type:"text",className:"env-form-value",spellCheck:!1,autoComplete:"off","data-env-key":e,value:null!=(t=S[e])?t:"",onChange:t=>k(e,t.target.value)})})]},e)})})})})}var v=e.i(87655);let b=[],y=[],j=e=>{var n;let r=null!=(n=e.messagesByRun.main)?n:b;return r===t?y:(t=r,y=r.map(e=>e.message))};var w=e.i(14007),S=e.i(26995);function N(e){let t=Number(e);return!Number.isFinite(t)||t<0?0:Math.floor(t)}function k(e){if(!Number.isFinite(e)||e<=0)return"0K";let t=e/1e3;return t>=100?"".concat(Math.round(t),"K"):"".concat(function(e){let t=e.toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}(t),"K")}function A(e){var t;let n=function(e){if(!e||"object"!=typeof e)return null;let t=e.message;if(t&&"object"==typeof t)return e;let n=e.data;if(!n||"object"!=typeof n)return null;let r=n.message;return r&&"object"==typeof r?r:null}(e);if(!n)return null;let r=n.message;if(!r||"object"!=typeof r)return null;let s=(t=r.usage)&&"object"==typeof t?t:null;if(!s||!(N(s.input_tokens)>0||N(s.output_tokens)>0||N(s.cache_read_input_tokens)>0||N(s.cache_creation_input_tokens)>0))return null;let l=N(s.input_tokens),i=N(s.cache_read_input_tokens),a=N(s.cache_creation_input_tokens),o=N(s.output_tokens),c=l+i+a,u=c>0&&i>0?Math.round(i/c*1e3)/10:c>0?0:null,d=s.server_tool_use&&"object"==typeof s.server_tool_use?s.server_tool_use:null;return{model:"string"==typeof r.model?r.model.trim():"",totalTokens:c+o,inputTokens:c,outputTokens:o,newInputTokens:l,cacheReadTokens:i,cacheCreationTokens:a,cacheHitRatePercent:u,serviceTier:"string"==typeof s.service_tier&&s.service_tier.trim()?s.service_tier.trim():"—",webSearchCount:N(null==d?void 0:d.web_search_requests),webFetchCount:N(null==d?void 0:d.web_fetch_requests)}}let _="──────────────";var C=e.i(54396);function E(e){var t;if(!e||"object"!=typeof e)return[];let n=null==(t=e.message)?void 0:t.content;return Array.isArray(n)?n:[]}function M(e){var t;if(e&&"object"==typeof e)for(let n of[e.timestamp,null==(t=e.message)?void 0:t.timestamp,e.ts]){if("string"==typeof n&&n.trim()){let e=Date.parse(n);if(Number.isFinite(e))return e}if("number"==typeof n&&Number.isFinite(n))return n}}function I(e,t){if(t<0||t>=e.length)return;let n=M(e[t]);if(void 0!==n)for(let r=t+1;r<e.length;r+=1){let t=M(e[r]);if(void 0!==t)return Math.max(0,t-n)}}function T(e,t){let n=e.durationMs;return"number"==typeof n&&Number.isFinite(n)&&n>=0||void 0===t?e:{...e,durationMs:t}}function O(e){let t=[];for(let n of e){if("conversation"!==n.kind)continue;let e=n.payload;if(!e)continue;let r=e.message;null!=r&&t.push(r)}return t}function R(e,t){let n=-1;for(let s=0;s<=t;s+=1){var r;(null==(r=e[s])?void 0:r.kind)==="conversation"&&(n+=1)}return Math.max(0,n)}function L(e,t){let n=-1;return e.forEach((e,t)=>{e&&"object"==typeof e&&"thinking"===e.type&&(n=t)}),n===t}function D(e){let{data:t}=e,[s,l]=(0,r.useState)(!1),i=(0,r.useMemo)(()=>{let e=t.name;if("string"!=typeof e||!e)return"tool";let n=e.split("__").filter(Boolean);return n[n.length-1]||e},[t.name]),a=(0,r.useMemo)(()=>(function(e){try{return JSON.stringify(e,null,2)}catch(t){return String(e)}})(t.input),[t.input]),o=(0,r.useMemo)(()=>a.split("\n").length>3,[a]),c=(0,r.useMemo)(()=>{let e=a.replace(/\s+/g," ").trim();return e?e.length>96?"".concat(e.slice(0,93),"…"):e:""},[a]);return(0,n.jsxs)("div",{className:"my-2 rounded-xl border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-main-tint)]",children:[(0,n.jsxs)("div",{className:"flex w-full flex-col gap-0.5 rounded-xl border-0 px-3 py-2 text-left",children:[(0,n.jsx)("span",{className:"font-400 text-[var(--ds-text)]",children:i}),c?(0,n.jsx)("span",{className:"line-clamp-2 text-sm leading-snug text-[var(--ds-muted)]",children:c}):null]}),(0,n.jsxs)("div",{className:"px-3 pb-3",children:[(0,n.jsx)("div",{className:"mb-1 text-xs text-gray-500",children:"参数"}),(0,n.jsx)("pre",{className:"overflow-auto rounded border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-log)] p-2 text-sm text-[var(--ds-text)]",style:!s&&o?{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:3,overflow:"hidden"}:void 0,children:a}),o?(0,n.jsx)("button",{type:"button",className:"mx-auto mt-1 flex items-center justify-center border-0 bg-transparent p-0 text-zinc-500 transition-colors hover:bg-transparent hover:text-zinc-700",onClick:()=>l(e=>!e),"aria-label":s?"收起":"展开",title:s?"收起":"展开",children:s?(0,n.jsx)(v.default,{name:"ChevronsUp",size:16,strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronsDown",size:16,strokeWidth:1})}):null]})]})}function W(e){let{data:t,onExpandChange:s}=e,[l,i]=(0,r.useState)(!1),a=!!t.is_error,o=(0,r.useMemo)(()=>"string"==typeof t.content?t.content:JSON.stringify(t.content,null,2),[t.content]),c=a?function(e){let t=[];return e.includes("WS_ALLOW_TOOL_ASK=1")&&t.push("设置环境变量 WS_ALLOW_TOOL_ASK=1"),e.includes("acceptEdits")&&t.push("开启 permission mode: acceptEdits"),t}(o):[],u=(0,r.useMemo)(()=>(function(e){if("string"==typeof e)return e;try{return JSON.stringify(e,null,2)}catch(t){return String(e)}})(t.content),[t.content]),d=(0,r.useMemo)(()=>u.split("\n").length>3,[u]);return(0,n.jsxs)("div",{className:"my-2 rounded-xl border ".concat(a?"border-red-200 bg-red-50":"border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-main-tint)]"),children:[(0,n.jsx)("div",{className:"flex w-full items-center justify-between rounded-xl border-0 px-3 py-2 text-left text-xs",children:(0,n.jsx)("span",{children:a?"工具执行失败":"工具结果"})}),(0,n.jsxs)("div",{className:"px-3 pb-3",children:[(0,n.jsx)("div",{className:"mb-1 mt-4 text-xs text-gray-500",children:a?"错误信息":"返回结果"}),(0,n.jsx)("pre",{className:"overflow-auto whitespace-pre-wrap rounded border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-log)] p-2 text-sm text-[var(--ds-text)]",style:!l&&d?{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:3,overflow:"hidden"}:void 0,children:u}),d?(0,n.jsx)("button",{type:"button",className:"mx-auto mt-1 flex items-center justify-center border-0 bg-transparent p-0 text-zinc-500 transition-colors hover:bg-transparent hover:text-zinc-700",onClick:()=>i(e=>{let t=!e;return null==s||s(t),t}),"aria-label":l?"收起":"展开",title:l?"收起":"展开",children:l?(0,n.jsx)(v.default,{name:"ChevronsUp",size:16,strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronsDown",size:16,strokeWidth:1})}):null,a&&c.length>0&&(0,n.jsx)("ul",{className:"mt-2 list-disc pl-4 text-xs text-orange-600",children:c.map((e,t)=>(0,n.jsx)("li",{children:e},t))})]})]})}let z={default:{border:"#AFA9EC",previewColor:"var(--color-text-secondary)",openBackground:"rgba(175, 169, 236, 0.08)"},decision:{border:"#EF9F27",previewColor:"#7a6000",openBackground:"rgba(239, 159, 39, 0.08)"},recovery:{border:"#F09595",previewColor:"#A32D2D",openBackground:"rgba(240, 149, 149, 0.08)"}};function P(e){let{payload:t,usage:s,compact:l=!1,streaming:i=!1}=e,[a,o]=(0,r.useState)(()=>i),c=(0,r.useRef)(i);(0,r.useEffect)(()=>{let e=c.current;i?o(!0):e&&o(!1),c.current=i},[i]);let u=z["string"==typeof t.status&&("default"===t.status||"decision"===t.status||"recovery"===t.status)?t.status:"default"],d=(0,r.useMemo)(()=>(function(e){for(let t of[e.thinking,e.content,e.text])if("string"==typeof t&&t.trim())return t;return""})(t),[t]),m=(0,r.useMemo)(()=>(function(e){let t=e.durationMs;if("number"!=typeof t||!Number.isFinite(t)||t<0)return"";let n=(t/1e3).toFixed(1);return"0.0"===n?"":"".concat(n,"s")})(t),[t]),p=i?"思考中":"已思考",f=(0,r.useRef)(null);return(0,r.useEffect)(()=>{if(!i||!a)return;let e=f.current;e&&!(e.scrollHeight<=e.clientHeight)&&(e.scrollTop=e.scrollHeight)},[d,i,a]),(0,n.jsxs)("div",{"data-thinking-usage":s,"data-thinking-state":i?"active":"done",style:{},className:"my-1 transition-colors",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{i||o(e=>!e)},className:"flex w-full items-center gap-2 border-0 bg-transparent text-left ".concat(l?"px-2.5 py-1.5":"px-0 py-1.5"," cursor-pointer"),"aria-expanded":a,"aria-label":p,children:[(0,n.jsx)("span",{className:"shrink-0 text-[12px] font-medium ".concat(i?"loading-sweep":""),style:{color:"#b3b3b3"},children:p}),m?(0,n.jsx)("span",{className:"shrink-0 font-mono text-xs text-[var(--text-secondary)]",children:m}):null,a?(0,n.jsx)(v.default,{name:"ChevronDown",size:8,className:"text-[#8A8985]",strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronRight",size:8,className:"text-[#8A8985]",strokeWidth:1})]}),a?(0,n.jsx)("div",{className:"border-t pb-2.5 pr-3 pt-1.5",style:{borderColor:"".concat(u.border,"66")},children:(0,n.jsx)("div",{ref:f,className:"max-h-40 overflow-y-auto whitespace-pre-wrap break-words font-mono leading-[1.6] text-[var(--text-tertiary)]",children:d||"(无思考内容)"})}):null]})}function F(e){if(!e)return"";let t=new Date(e);return Number.isFinite(t.getTime())?new Intl.DateTimeFormat("zh-CN",{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1}).format(t):e}function K(e){var t,s,l;let{input:i,toolUseId:a,createdAt:o,result:c,fired:u=!1}=e,d=null!=(l=null==c||null==(t=c.scheduleClock)?void 0:t.utcIso)?l:null==c||null==(s=c.scheduleClock)?void 0:s.localDateTime,m=function(e){let[t,n]=(0,r.useState)(()=>Date.now());if((0,r.useEffect)(()=>{if(!e)return;let t=window.setInterval(()=>n(Date.now()),1e3);return()=>window.clearInterval(t)},[e]),!e)return"";let s=Math.round((new Date(e).getTime()-t)/1e3);if(!Number.isFinite(s))return"";if(s<=0)return"已到触发时间";if(s<60)return"".concat(s," 秒后触发");if(s<3600)return"".concat(Math.ceil(s/60)," 分钟后触发");let l=Math.floor(s/3600),i=Math.ceil((s-3600*l)/60);return"".concat(l," 小时 ").concat(i," 分钟后触发")}(u?void 0:d),p=!c,f=!!(null==c?void 0:c.error),h=i.action||(null==c?void 0:c.action)||"create",g=(0,r.useMemo)(()=>p?{label:"创建定时任务中...",icon:"Loader2"}:f?{label:"调度任务失败",icon:"CircleX"}:"cancel"===h?{label:"已取消定时任务",icon:"CircleX"}:"list"===h?{label:"定时任务列表",icon:"Info"}:u?{label:"定时任务已触发",icon:"CircleCheckBig"}:{label:"已创建定时任务",icon:"CheckCircle2"},[h,u,f,p]);return(0,n.jsxs)("div",{className:["schedule-tool-card",u?"is-fired":"",f?"is-error":""].filter(Boolean).join(" "),"data-tool-use-id":a,children:[(0,n.jsxs)("div",{className:"schedule-tool-card-head",children:[(0,n.jsx)(v.default,{name:g.icon,size:14,className:p?"animate-spin":void 0,strokeWidth:1.6}),(0,n.jsx)("span",{children:g.label}),(null==c?void 0:c.id)?(0,n.jsxs)("code",{className:"schedule-tool-card-id",children:["#",c.id]}):null]}),i.prompt?(0,n.jsxs)("div",{className:"schedule-tool-card-prompt",children:[(0,n.jsx)("div",{className:"schedule-tool-card-prompt-label",children:"到点后派发给 Agent 的提示"}),(0,n.jsx)("div",{className:"schedule-tool-card-prompt-body",children:i.prompt})]}):null,(0,n.jsxs)("div",{className:"schedule-tool-card-meta",children:[d?(0,n.jsxs)("span",{children:["触发于 ",F(d),m?(0,n.jsxs)("em",{children:[" · ",m]}):null]}):void 0!==i.delayMinutes?(0,n.jsxs)("span",{children:["延迟 ",String(i.delayMinutes)," 分钟"]}):null,(null==c?void 0:c.recurring)!==void 0?(0,n.jsx)("span",{children:c.recurring?"循环任务":"一次性任务"}):null,(null==c?void 0:c.cron)?(0,n.jsxs)("span",{children:["cron ",(0,n.jsx)("code",{children:c.cron})]}):null,o?(0,n.jsxs)("span",{title:o,children:["创建于 ",F(o)]}):null]}),f&&(null==c?void 0:c.error)?(0,n.jsx)("div",{className:"schedule-tool-card-error",children:c.error}):null]})}var B=e.i(13014),Y=e.i(92369);function U(e,t){var n,r;let s=parseInt(null!=(n=e.split(".")[0])?n:"",10),l=parseInt(null!=(r=t.split(".")[0])?r:"",10);return!!Number.isFinite(s)&&!!Number.isFinite(l)&&l>s}function q(e){return{changes:e,cveCount:e.filter(e=>!!e.cve).length,breakingCount:e.filter(e=>e.breaking).length}}var H=e.i(96745);function V(e){let{patchData:t}=e,r=[{num:t.changes.length,label:"待更新",color:"text-amber-600"},{num:t.cveCount,label:"CVE 修复",color:"text-red-600"},{num:t.breakingCount,label:"破坏性变更",color:"text-emerald-600"}];return(0,n.jsx)("div",{className:"grid grid-cols-3 gap-2",children:r.map(e=>(0,n.jsxs)("div",{className:"rounded-md border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-main-tint)] px-2 py-2 text-center",children:[(0,n.jsx)("div",{className:(0,H.cn)("text-lg font-semibold leading-none",e.color),children:e.num}),(0,n.jsx)("div",{className:"mt-1 text-[10px] text-[var(--ds-muted)]",children:e.label})]},e.label))})}function J(e){let{changes:t}=e;return 0===t.length?(0,n.jsx)("p",{className:"text-xs text-[var(--ds-muted)]",children:"暂无结构化变更明细,请查看下方参数预览。"}):(0,n.jsx)(B.AppTable,{rows:t,getRowKey:e=>e.package,className:"rounded-md",columns:[{key:"package",title:"包名",cellClassName:"font-mono text-xs",render:e=>e.package},{key:"from",title:"当前",cellClassName:"font-mono text-xs text-[var(--ds-muted)]",render:e=>e.from},{key:"to",title:"目标",cellClassName:"font-mono text-xs text-[var(--ds-text)]",render:e=>e.to},{key:"reason",title:"说明",cellClassName:"text-xs",render:e=>{var t;return(0,n.jsxs)("span",{className:"inline-flex flex-wrap items-center gap-1",children:[e.cve?(0,n.jsx)("span",{className:"rounded bg-red-500/10 px-1 py-0.5 font-mono text-[10px] text-red-600",children:e.cve}):null,(0,n.jsx)("span",{children:null!=(t=e.reason)?t:"-"})]})}}]})}function Q(e){let{preview:t}=e;return(0,n.jsx)("pre",{className:"max-h-48 overflow-auto rounded-md border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-log)] p-2 font-mono text-[11px] text-[var(--ds-text)]",children:function(e){try{return JSON.stringify(e,null,2)}catch(t){return String(null!=e?e:"")}}(t)})}function X(e){var t;let{variant:r,title:s,subtitle:l,description:i,confirmState:a,patchData:o,preview:c,children:u,confirmLabel:d="确认并继续执行",rejectLabel:m="拒绝,终止任务流",onConfirm:p,onReject:f,disabled:h=!1}=e,g="pending"===a,x="confirmed"===a,v="rejected"===a,b=null!=u?u:"patch"===r?(0,n.jsxs)("div",{className:"space-y-3",children:[i?(0,n.jsx)("p",{className:"text-xs leading-relaxed text-[var(--ds-muted)]",children:i}):null,o?(0,n.jsx)(V,{patchData:o}):null,(0,n.jsx)(J,{changes:null!=(t=null==o?void 0:o.changes)?t:[]}),(null==o?void 0:o.changes.length)||void 0===c?null:(0,n.jsx)(Q,{preview:c})]}):(0,n.jsxs)("div",{className:"space-y-2",children:[i?(0,n.jsx)("p",{className:"text-xs leading-relaxed text-[var(--ds-muted)]",children:i}):null,void 0!==c?(0,n.jsx)(Q,{preview:c}):null]});return(0,n.jsxs)("div",{className:(0,H.cn)("mt-2 rounded-lg border p-3",g&&"border-amber-500/40 bg-amber-500/5",x&&"border-emerald-500/40 bg-emerald-500/5",v&&"border-red-500/40 bg-red-500/5"),children:[(0,n.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,n.jsx)("span",{className:(0,H.cn)("flex h-7 w-7 shrink-0 items-center justify-center rounded-full",g&&"bg-amber-500/15 text-amber-600",x&&"bg-emerald-500/15 text-emerald-600",v&&"bg-red-500/15 text-red-600"),"aria-hidden":!0,children:g?"!":x?"✓":"✕"}),(0,n.jsx)("div",{className:"min-w-0",children:(0,n.jsx)("p",{className:"font-medium text-[var(--ds-text)]",children:s})})]}),(0,n.jsx)("div",{className:"mb-3",children:b}),g?(0,n.jsxs)("div",{className:"flex flex-wrap justify-end gap-2",children:[(0,n.jsx)(Y.Button,{type:"button",variant:"plain-outline",size:"sm",className:"cursor-pointer",disabled:h,onClick:f,children:m}),(0,n.jsx)(Y.Button,{type:"button",variant:"default",size:"sm",className:"cursor-pointer text-white",disabled:h,onClick:p,children:d})]}):(0,n.jsx)("div",{className:(0,H.cn)("rounded-md px-2 py-1.5 text-xs",x&&"bg-emerald-500/10 text-emerald-700",v&&"bg-red-500/10 text-red-700"),children:x?"已确认,继续执行后续步骤…":"已拒绝,该权限请求已终止。"})]})}let G=new Set(["patch-library-governance"]);var Z=e.i(3402),$=e.i(14261);function ee(e){let t=0x811c9dc5;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=Math.imul(t,0x1000193);return(t>>>0).toString(36)}function et(e,t){return e.slice(t+1).some(e=>"toolContainer"===e.type)?"text":"final"}function en(e){var t;let n=(null==(t=(e.resultText.trim()||"等待工具返回结果…").split("\n")[0])?void 0:t.replace(/\s+/g," ").trim())||"等待工具返回结果…";return n.length<=80?n:"".concat(n.slice(0,80),"…")}function er(e){if(null==e)return"-";try{let t=("string"==typeof e?e:JSON.stringify(e)).replace(/\s+/g," ").trim();if(!t)return"-";return t.length<=48?t:"".concat(t.slice(0,48),"…")}catch(t){return String(e)}}let es={bash:"终端",read_file:"读取文件",write:"写入文件",grep:"文本搜索",glob:"文件搜索",web_search:"网页搜索",task:"子任务"};function el(e){var t;let n=function(e){if(!e)return"tool";let t=e.trim(),n=t.match(/^mcp__[^_]+__(.+)$/);return(null==n?void 0:n[1])||t}(e);return null!=(t=es[n])?t:n}function ei(e){let{status:t}=e;return"pending"===t?(0,n.jsx)(v.default,{name:"Dot",size:14,className:"shrink-0 text-[#b0bac8]",strokeWidth:2}):"error"===t?(0,n.jsx)(v.default,{name:"CircleX",size:14,className:"shrink-0 !text-[#A32D2D]",strokeWidth:1}):(0,n.jsx)(v.default,{name:"CheckCircle2",size:14,className:"shrink-0 text-[#b4c4b9]",strokeWidth:1})}function ea(e){let{className:t}=e;return(0,n.jsxs)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",className:t,children:[(0,n.jsx)("path",{d:"M13.04 7.304a.5.5 0 0 1 .92.392C13.665 8.386 13.089 9 12.3 9c-.487 0-.892-.234-1.2-.574-.309.34-.713.574-1.2.574-.486 0-.892-.234-1.2-.574-.31.34-.714.574-1.2.574a.5.5 0 0 1 0-1c.212 0 .52-.18.74-.696a.5.5 0 0 1 .92 0c.221.516.528.696.74.696.213 0 .52-.18.74-.696l.035-.067a.5.5 0 0 1 .885.067c.22.516.527.696.74.696s.519-.18.74-.696"}),(0,n.jsx)("path",{fillRule:"evenodd",d:"M14 3a2 2 0 0 1 2 2v8h1.5a.5.5 0 0 1 .5.5V15a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4H4a1 1 0 0 0-.745 1.667.5.5 0 0 1-.745.666A2 2 0 0 1 4 3zM6 15a1 1 0 1 0 2 0v-1.5a.5.5 0 0 1 .5-.5H15V5a1 1 0 0 0-1-1H6zm3 0c0 .365-.1.706-.27 1H16a1 1 0 0 0 1-1v-1H9z",clipRule:"evenodd"})]})}function eo(e){let{className:t}=e;return(0,n.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,className:t,children:(0,n.jsx)("path",{d:"M11.586 2a1.5 1.5 0 0 1 1.06.44l2.914 2.914a1.5 1.5 0 0 1 .44 1.06V16.5a1.5 1.5 0 0 1-1.5 1.5h-9a1.5 1.5 0 0 1-1.492-1.347L4 16.5v-13A1.5 1.5 0 0 1 5.5 2zM5.5 3a.5.5 0 0 0-.5.5v13a.5.5 0 0 0 .5.5h9a.5.5 0 0 0 .5-.5V7h-2.5A1.5 1.5 0 0 1 11 5.5V3zm7.04 10.304a.5.5 0 0 1 .92.392c-.295.69-.871 1.304-1.66 1.304-.487 0-.892-.234-1.2-.574-.309.34-.713.574-1.2.574-.486 0-.892-.233-1.2-.574-.31.34-.714.574-1.2.574a.5.5 0 0 1 0-1c.212 0 .52-.18.74-.696l.034-.067a.5.5 0 0 1 .886.067c.221.516.528.696.74.696.213 0 .52-.18.74-.696l.035-.067a.5.5 0 0 1 .885.067c.22.516.527.696.74.696s.519-.18.74-.696m0-4a.5.5 0 0 1 .92.392c-.295.69-.871 1.304-1.66 1.304-.487 0-.892-.234-1.2-.574-.309.34-.713.574-1.2.574-.486 0-.892-.233-1.2-.574-.31.34-.714.574-1.2.574a.5.5 0 0 1 0-1c.212 0 .52-.18.74-.696l.034-.067a.5.5 0 0 1 .886.067c.221.516.528.696.74.696.213 0 .52-.18.74-.696l.035-.067a.5.5 0 0 1 .885.067c.22.516.527.696.74.696s.519-.18.74-.696M12 5.5a.5.5 0 0 0 .5.5h2.293L12 3.207z"})})}function ec(e){let{text:t,variant:r}=e,s="final"===r;return s?(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"agent-timeline-label-row pt-2",children:[(0,n.jsx)("span",{className:s?"tag tag-final":"tag tag-text",children:s?"最终回答":"assistant text"}),(0,n.jsx)("span",{className:"agent-timeline-label-hint",children:s?"所有工具调用完成后输出":""})]}),s&&(0,n.jsx)("div",{className:"agent-timeline-thinking".concat(s?"agent-timeline-thinking--final":""),children:t})]}):(0,n.jsx)("div",{className:"agent-timeline-thinking !pt-1",children:t})}function eu(e){let{group:t,permissionQueue:r}=e;return(0,Z.toolContainerGroupHasPendingPermission)(t,r)?(0,n.jsx)("span",{className:"agent-timeline-dot-blocked absolute -left-[40px] top-0.5 z-10 inline-flex h-6 w-6 shrink-0 items-center justify-center rounded-full !bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)("span",{className:"inline-block rotate-90 leading-none",children:"⚠"})}):(0,n.jsx)("span",{className:"agent-timeline-dot-tool absolute -left-[40px] top-0.5 z-10 inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)(ea,{className:"h-5 w-5 shrink-0 text-[#6e6e6e]"})})}function ed(e){let{tool:t}=e,s=(0,l.useAppStore)(e=>e.permissionQueue),i=(0,r.useMemo)(()=>(0,Z.findMatchingPermissionRequest)(s,t),[s,t]);return"pending"!==t.status?null:i?(0,n.jsx)(em,{tool:t,permission:i}):(0,n.jsx)("div",{className:"rounded-md border border-[#223044] bg-[rgba(50,100,180,.07)] px-3 py-2 text-xs text-[#4d80c4]",children:"等待工具返回结果…"})}function em(e){let{tool:t,permission:r}=e,s=(0,l.useAppStore)(e=>e.setPermissionConfirmState),i=(0,l.useAppStore)(e=>e.dequeuePermissionRequest),{sendPermissionResponse:a}=(0,o.useWorkspaceRuntime)(),c=function(e){var t;let n=null!=(t=e.skillName)?t:function(e){if(!e||"object"!=typeof e)return;let t=e.skill;return"string"==typeof t&&t.trim()?t.trim():void 0}(e.input),r=e.toolName.trim()||"tool",s="".concat(r," 权限请求"),l=e.description.trim()||(n?"Execute skill: ".concat(n):"该工具需要您的确认"),i=function(e){if(!e||"object"!=typeof e)return null;let t=[e];for(let n of(e.patchData&&"object"==typeof e.patchData&&t.push(e.patchData),e.input&&"object"==typeof e.input&&t.push(e.input),t)){if(n.dependencies&&"object"==typeof n.dependencies&&!Array.isArray(n.dependencies)){let e=Object.entries(n.dependencies).map(e=>{var t,n,r,s;let[l,i]=e;return{package:l,from:String(null!=(t=i.from)?t:""),to:String(null!=(n=i.to)?n:""),reason:"string"==typeof i.reason?i.reason:void 0,cve:"string"==typeof i.cve?i.cve:void 0,breaking:U(String(null!=(r=i.from)?r:""),String(null!=(s=i.to)?s:""))}});if(e.length>0)return q(e)}if(Array.isArray(n.changes)&&n.changes.length>0){let e=function(e){let t=[];for(let s of e){var n,r;let e="string"==typeof s.package&&s.package||"string"==typeof s.name&&s.name||"";if(!e)continue;let l=String(null!=(n=s.from)?n:""),i=String(null!=(r=s.to)?r:"");t.push({package:e,from:l,to:i,reason:"string"==typeof s.reason?s.reason:void 0,cve:"string"==typeof s.cve?s.cve:void 0,breaking:"boolean"==typeof s.breaking?s.breaking:U(l,i)})}return t}(n.changes);if(e.length>0)return q(e)}}return null}(e.input);return i||n&&G.has(n)?{variant:"patch",title:s,subtitle:l,description:e.description.trim()||void 0,patchData:i,preview:e.input}:{variant:"generic",title:s,subtitle:l,description:e.description.trim()||"该工具需要您的确认",preview:e.input}}(r);return"pending"!==t.status?null:(0,n.jsx)(X,{variant:c.variant,title:c.title,subtitle:c.subtitle,description:c.description,confirmState:r.confirmState,patchData:c.patchData,preview:c.preview,onConfirm:()=>{a(r.requestId,"allow"),s(r.requestId,"confirmed"),window.setTimeout(()=>{i(r.requestId)},1200)},onReject:()=>{a(r.requestId,"deny"),s(r.requestId,"rejected"),window.setTimeout(()=>{i(r.requestId)},1200)},disabled:"pending"!==r.confirmState})}function ep(e){let{group:t,totalToolCalls:s,completedToolCalls:i,runId:a,agentName:o,streaming:c,scheduledTaskIndex:u}=e,[d,m]=(0,r.useState)(!0),[,p]=(0,r.useState)(!1),[f,h]=(0,r.useState)(!1),[g,x]=(0,r.useState)({}),b=(0,r.useRef)(null),y=(0,r.useRef)(null),j=(0,r.useRef)(null),w=(0,r.useRef)(null),S=(0,r.useMemo)(()=>(function(e){let t=new Map;for(let n of e){let e=n.toolName||"tool",r=t.get(e);if(r){r.push(n);continue}t.set(e,[n])}return Array.from(t.entries()).map(e=>{let[t,n]=e;return{toolName:t,items:n}})})(t.tools),[t.tools]),N=(0,r.useMemo)(()=>t.tools.map(e=>"".concat(e.toolUseId,":").concat(e.status,":").concat(e.resultText.length)).join("|"),[t.tools]),k=(0,l.useAppStore)(e=>e.permissionQueue),A=(0,r.useMemo)(()=>{let e=k.filter(e=>"pending"===e.confirmState),n=new Set;for(let r of t.tools)"pending"===r.status&&(0,Z.findMatchingPermissionRequest)(e,r)&&n.add(r.toolUseId);return n},[t.tools,k]),_=A.size>0;(0,r.useEffect)(()=>{_&&(m(!0),x(e=>{let t={...e};for(let e of A)t[e]=!0;return t}))},[_,A]),(0,r.useEffect)(()=>()=>{null!=y.current&&window.clearTimeout(y.current),null!=j.current&&window.clearTimeout(j.current),null!=w.current&&window.clearTimeout(w.current)},[]),(0,r.useEffect)(()=>{if(null!=y.current&&(window.clearTimeout(y.current),y.current=null),null!=j.current&&(window.clearTimeout(j.current),j.current=null),"pending"===t.status)return void p(!1);y.current=window.setTimeout(()=>{p(!0),y.current=null},300),f||(j.current=window.setTimeout(()=>{m(!1),j.current=null},300))},[t.status,f]);let C=d||_;(0,r.useEffect)(()=>{C&&(_||c&&"pending"===t.status&&!f)&&(()=>{let e=b.current;if(!e)return;let t=()=>{e.scrollTop=e.scrollHeight};t(),requestAnimationFrame(t),null!=w.current&&window.clearTimeout(w.current),w.current=window.setTimeout(()=>{t(),w.current=null},320)})()},[C,N,_,c,t.status,f]);let E=(0,r.useMemo)(()=>{var e;let n=t.tools.find(e=>"pending"===e.status);return el((null==n?void 0:n.toolName)||(null==(e=t.tools[0])?void 0:e.toolName)||"tool")},[t.tools]),M=(0,r.useMemo)(()=>t.tools.length>1?"".concat(E," 等 ").concat(t.tools.length," 个工具"):"pending"===t.status?"已执行":"完成",[t.status,t.tools.length,E]),I=(0,r.useMemo)(()=>{let e={type:"tool",tagClassName:"tag tag-tool",tagLabel:"工具调用面板",title:E,tagHint:t.tools.length>1?"本批 ".concat(t.tools.length," 个并发调用"):"工具执行与结果",runId:a||""};return"pending"===t.status?{...e,status:M,label:"等待工具返回…",panelModifier:"agent-timeline-tool-panel--done",headerModifier:"agent-timeline-tool-header--done"}:"error"===t.status?{...e,status:M,label:t.summary?"摘要:".concat(t.summary):"已完成(含错误)",panelModifier:"agent-timeline-tool-panel--error",headerModifier:"agent-timeline-tool-header--error"}:{...e,status:M,label:t.summary?"摘要:".concat(t.summary):"已完成",panelModifier:"agent-timeline-tool-panel--done",headerModifier:"agent-timeline-tool-header--done"}},[t.status,t.summary,M,t.tools.length,a,E]),T=(0,r.useMemo)(()=>{let e=t.tools.find(e=>"pending"===e.status);if(!e)return"";let n=er(e.input);return"".concat(el(e.toolName)," · ").concat(n)},[t.tools]);if(1===t.tools.length&&t.tools[0].isSchedule){var O;let e=t.tools[0],r=(0,$.parseScheduleToolResult)(e.resultRaw),s=null==r?void 0:r.id,l=!!s&&(null==u||null==(O=u.get(s))?void 0:O.status)==="fired";return(0,n.jsx)(K,{input:e.input&&"object"==typeof e.input?e.input:{},toolUseId:e.toolUseId,createdAt:t.timestamp,result:r,fired:l})}return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)("div",{className:"agent-timeline-tool-panel ".concat(I.panelModifier),children:[(0,n.jsx)("button",{type:"button",onClick:()=>{h(!0),m(e=>!e)},className:"agent-timeline-tool-header !border-0 ".concat(I.headerModifier),"aria-expanded":C,children:(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5",children:[(0,n.jsxs)("div",{className:"agent-timeline-tool-title min-w-0 truncate ".concat(I.tagClassName),children:[o||I.runId," · ",I.status]}),(0,n.jsx)("div",{className:"agent-timeline-tool-meta min-w-0 truncate",children:"pending"===t.status&&T?T:I.label}),(0,n.jsx)("div",{className:"agent-timeline-tool-calls",children:"pending"===t.status?"".concat(i,"/").concat(s):""})]})}),(0,n.jsx)("div",{className:"overflow-hidden transition-all duration-300 ".concat(C?"max-h-[min(50vh,22rem)]":"max-h-0"),children:(0,n.jsx)("div",{ref:b,className:"max-h-[min(50vh,22rem)] overflow-y-auto border-t border-black/5 bg-[#f9f9f7] px-2.5 py-1.5",children:(0,n.jsxs)("div",{className:"relative space-y-2.5 pl-6",children:[(0,n.jsx)("div",{className:"absolute bottom-1 left-2 top-1 w-px bg-[#efefef]","aria-hidden":!0}),S.map(e=>(0,n.jsx)("div",{className:"space-y-1.5",children:e.items.map((e,t)=>{let r=!0===g[e.toolUseId]||A.has(e.toolUseId);return(0,n.jsxs)("div",{className:"relative",children:[(0,n.jsx)("div",{className:"absolute -left-[24px] top-1 inline-flex bg-[#f9f9f9] pb-1",children:(0,n.jsx)("span",{className:"h-4 w-4 items-center justify-center rounded-full border border-[#e2e6ee] bg-[#f6f7fa]","aria-hidden":!0,children:(0,n.jsx)(ei,{status:e.status})})}),(0,n.jsxs)("div",{className:"rounded-[4px] border border-white/5 bg-[#f9f9f9] ".concat("error"===e.status?"bg-[rgba(120,30,30,.07)]":""),children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{x(t=>({...t,[e.toolUseId]:!t[e.toolUseId]}))},className:"flex w-full items-center justify-between gap-1.5 border-0 bg-transparent px-2 py-1 text-left text-[#535353] transition-colors hover:text-[#343d52]","aria-expanded":r,children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-1.5 font-mono text-[10.5px]",children:[(0,n.jsx)("span",{className:"w-5 shrink-0 text-[#252e3e]",children:String(t+1).padStart(2,"0")}),(0,n.jsx)("span",{className:"max-w-36 shrink-0 truncate font-medium ".concat("error"===e.status?"text-[#A32D2D]":"done"===e.status?"text-[#3B6D11]":"text-[#5a8ec4]"),children:el(e.toolName)}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate text-[#353f52]",children:er(e.input)}),(0,n.jsx)("span",{className:"min-w-0 flex-1 truncate italic ".concat("error"===e.status?"text-[#6e2828]":"text-[#2e5a38]"),children:en(e)})]}),(0,n.jsx)("span",{className:"shrink-0 text-[#343d52]","aria-hidden":!0,children:r?(0,n.jsx)(v.default,{name:"ChevronsUp",size:12,strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronsDown",size:12,strokeWidth:1})})]}),(0,n.jsx)("div",{className:"transition-all duration-300 ".concat(r?"max-h-[2000px] overflow-visible":"max-h-0 overflow-hidden"),children:(0,n.jsxs)("div",{className:"space-y-1.5 border-t border-white/5 bg-white/[.012] px-2 py-1.5",children:[(0,n.jsx)(D,{data:{type:"tool_use",id:e.toolUseId,name:e.toolName,input:e.input}}),e.attachedThinkings.length>0?(0,n.jsx)("div",{className:"space-y-1 border-l-2 border-[#e4dfc8] pl-2 opacity-90",children:e.attachedThinkings.map((t,r)=>(0,n.jsx)(P,{payload:t,usage:"tool-attached",compact:!0},"".concat(e.toolUseId,"-thinking-").concat(r,"-").concat(ee(JSON.stringify(t)))))}):null,(0,n.jsx)(ed,{tool:e}),"pending"!==e.status?(0,n.jsx)(W,{data:{type:"tool_result",tool_use_id:e.toolUseId,is_error:"error"===e.status,content:e.resultRaw}}):null]})})]})]},e.toolUseId)})},e.toolName))]})})})]})})}function ef(e){let{messages:t,runId:s,agentName:i,streaming:a=!1,ev:o,scheduledTaskIndex:c}=e,u=(0,r.useMemo)(()=>{if("string"==typeof s&&s.trim())return s;if("string"==typeof(null==o?void 0:o.runId)&&o.runId.trim())return o.runId;for(let e of t){if(!e||"object"!=typeof e)continue;let t=e.runId;if("string"==typeof t&&t.trim())return t}return""},[null==o?void 0:o.runId,t,s]),d=(0,r.useMemo)(()=>{if("string"==typeof i&&i.trim())return i;if("string"==typeof(null==o?void 0:o.sourceAgent)&&o.sourceAgent.trim())return o.sourceAgent;for(let e of t){if(!e||"object"!=typeof e)continue;let t=e.agent_name;if("string"==typeof t&&t.trim())return t}return""},[i,null==o?void 0:o.sourceAgent,t]),m=(0,r.useMemo)(()=>(function(e){let t=[],n=0,r=[],s=new Map,l="",i=[],a=()=>"tool-use-".concat(n++),o=()=>r.filter(e=>"pending"===e.status),c=()=>{if(0!==i.length){for(let e of i)t.push({type:"thinking",payload:e.payload,timestamp:e.timestamp,key:e.key});i=[]}},u=e=>{0!==i.length&&(e.attachedThinkings.push(...i.map(e=>e.payload)),i=[])},d=()=>{if(0===i.length)return;let e=o(),t=1===e.length?e[0]:r[r.length-1];if(!t)return void c();u(t)},m=()=>{if(0===r.length)return;d();let e=r.map(e=>({...e,attachedThinkings:[...e.attachedThinkings]}));t.push({type:"toolContainer",status:e.some(e=>"error"===e.status)?"error":e.some(e=>"pending"===e.status)?"pending":"done",summary:function(e){let t=e.map(e=>e.resultText.trim()).filter(e=>e.length>0);for(let e of t){let t=e.match(/(\d+)\s*(?:条|个)?(?:命中|结果|items?)/i);if(null==t?void 0:t[1])return"".concat(t[1]," 条结果")}let n=t[0];if(!n)return"";let r=n.replace(/\s+/g," ").trim();return r.length<=30?r:"".concat(r.slice(0,30),"…")}(e),tools:e,timestamp:l||new Date().toISOString()}),r=[],s=new Map,l=""},p=()=>{var e;(e=r).length>0&&e.every(e=>"pending"!==e.status)&&m()},f=(e,t)=>{let n,i=function(e){if("string"==typeof e)return e;if(!Array.isArray(e))try{return JSON.stringify(e,null,2)}catch(t){return String(null!=e?e:"")}let t=[];for(let n of e)if(n&&"object"==typeof n){if("text"===n.type&&"string"==typeof n.text){t.push(n.text);continue}try{t.push(JSON.stringify(n,null,2))}catch(e){t.push(String(n))}}return t.join("\n").trim()}(e.content),o=!0===e.is_error||/\berror\b/i.test(i)?"error":"done",c="string"==typeof e.tool_use_id?e.tool_use_id:"";if(c&&(n=s.get(c)),n||c||(n=r.find(e=>"pending"===e.status)),!n){l||(l=t);let n=c||a(),d={toolUseId:n,toolName:"tool",input:null,status:o,resultText:i,resultRaw:e.content,attachedThinkings:[],isSchedule:!1};u(d),r.push(d),s.set(n,d),p();return}u(n),n.status=o,n.resultText=i,n.resultRaw=e.content,p()},h=(t,n)=>T(t,I(e,n));for(let n=0;n<e.length;n+=1){var g;let m=(g=e[n])&&"object"==typeof g?g:null;if(!m||!0===m.isMeta)continue;let x=function(e){var t,n;let r=null!=(n=null==(t=e.message)?void 0:t.timestamp)?n:e.timestamp;return"string"==typeof r&&r.trim()?r:new Date().toISOString()}(m),v=function(e){var t;let n=null==(t=e.message)?void 0:t.content;return Array.isArray(n)?n.filter(e=>!!e&&"object"==typeof e):[]}(m);for(let e=0;e<v.length;e+=1){let m=v[e];if("text"===m.type&&"string"==typeof m.text){if(!m.text.trim())continue;r.length>0?d():c(),p(),t.push({type:"thought",text:m.text,timestamp:x});continue}if("markdown"===m.type&&"string"==typeof m.content){if(!m.content.trim())continue;r.length>0?d():c(),p(),t.push({type:"thought",text:m.content,timestamp:x});continue}if("thinking"===m.type){let r=h(m,n),s="thinking-".concat(n,"-").concat(e,"-").concat(x),l=o();1===l.length?l[0].attachedThinkings.push(r):l.length>1?i.push({payload:r,timestamp:x,key:s}):(c(),t.push({type:"thinking",payload:r,timestamp:x,key:s}));continue}if("tool_use"===m.type){p();let e="string"==typeof m.id&&m.id?m.id:a(),t="string"==typeof m.name&&m.name.trim()?m.name:"tool";0===r.length&&(l=x);let n={toolUseId:e,toolName:t,input:m.input,status:"pending",resultText:"",resultRaw:null,attachedThinkings:[],isSchedule:t===$.SCHEDULE_TOOL_NAME};u(n),r.push(n),s.set(e,n);continue}"tool_result"===m.type&&(0!==r.length||l||(l=x),f(m,x))}}return m(),t})(t),[t]),p=(0,r.useMemo)(()=>{for(let e=m.length-1;e>=0;e-=1)if("thinking"===m[e].type)return e;return -1},[m]),f=m.filter(e=>"toolContainer"===e.type),h=(0,r.useMemo)(()=>f.reduce((e,t)=>e+t.tools.length,0),[f]),g=(0,r.useMemo)(()=>f.reduce((e,t)=>e+t.tools.filter(e=>"pending"!==e.status).length,0),[f]),x=f.length>0,b=(0,r.useMemo)(()=>!a&&f.every(e=>e.tools.every(e=>"pending"!==e.status)),[f,a]),[y,j]=(0,r.useState)(!0),S=(0,r.useRef)(!1),N=(0,r.useRef)(a),k=(0,r.useRef)(a),A=(0,r.useMemo)(()=>f.some(e=>e.tools.some(e=>"error"===e.status)),[f]),_=(0,r.useMemo)(()=>f.find(e=>"pending"===e.status)||f[f.length-1]||null,[f]),C=(0,r.useMemo)(()=>{if(!_)return{title:"工具调用面板",detail:"等待工具调用",toolCount:0,agentName:d,runId:u};let e=_.tools.find(e=>"pending"===e.status),t=e||_.tools[_.tools.length-1],n=t?el(t.toolName):"tool";return{title:_.tools.length>1?"".concat(n," 等 ").concat(_.tools.length," 个工具"):(null==t?void 0:t.status)==="pending"?"".concat(n," · 已执行"):"".concat(n," · 已完成"),detail:(e?"".concat(n," · ").concat(er(e.input)):_.summary||en(t||_.tools[0]))||"工具执行与结果",toolCount:_.tools.length,agentName:d,runId:u}},[_,d,u]),E=(0,l.useAppStore)(e=>e.permissionQueue),M=(0,r.useMemo)(()=>{let e=E.filter(e=>"pending"===e.confirmState);if(0===e.length)return -1;for(let t=0;t<m.length;t+=1){let n=m[t];if("toolContainer"===n.type){for(let r of n.tools)if("pending"===r.status&&(0,Z.findMatchingPermissionRequest)(e,r))return t}}return -1},[m,E]),O=M>=0;(0,r.useEffect)(()=>{let e=N.current,t=a||e||k.current;if(O||A&&t){j(!1),a&&(k.current=!0),N.current=a;return}if(S.current){a&&(k.current=!0),N.current=a;return}if(e&&!a){j(!0),S.current=!1,N.current=a;return}if(!e&&a){j(!0),S.current=!1,k.current=!0,N.current=a;return}a&&(k.current=!0),N.current=a},[a,O,A]);let R=(0,r.useCallback)(()=>{S.current=!0,j(e=>!e)},[]),L=a&&y;return m.length?(0,n.jsxs)("div",{className:"chat-agent-timeline relative",children:[y?null:(0,n.jsx)("div",{className:"absolute bottom-1 left-2 top-6 w-px bg-[var(--ds-color-border-hover)]","aria-hidden":!0}),(0,n.jsx)("div",{className:"relative",children:(0,n.jsxs)("button",{type:"button",className:(0,H.cn)("agent-timeline-summary-bar cursor-pointer !text-[#e6e6e6] hover:!text-[#cfcfcf]"),onClick:R,"aria-expanded":!y,children:[(0,n.jsxs)("span",{className:(0,H.cn)("agent-timeline-summary-title rounded-md bg-[var(--ds-color-surface-item-active)] px-2 py-1",L&&"streaming-active"),children:[C.agentName||C.runId," · tool"]}),(0,n.jsx)("span",{className:"agent-timeline-summary-detail !flex-none",children:C.detail}),(0,n.jsx)("div",{className:"text-xs text-[#6e6e6e]",children:"".concat(h," 次")}),y?(0,n.jsx)(v.default,{name:"ChevronRight",size:8,className:"text-[#8A8985]",strokeWidth:1}):(0,n.jsx)(v.default,{name:"ChevronDown",size:8,className:"text-[#8A8985]",strokeWidth:1})]})}),y?null:(0,n.jsx)("div",{className:"mt-[0.75rem] overflow-visible pl-9 opacity-100",children:(0,n.jsxs)("div",{className:"space-y-3",children:[m.map((e,t)=>{let r=M>=0&&t>M;return(0,n.jsxs)("div",{className:(0,H.cn)("relative",r&&"pointer-events-none opacity-50"),children:["thought"===e.type?(0,n.jsx)("span",{className:"absolute -left-[40px] top-0.5 z-10 flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc] ".concat("final"===et(m,t)?"agent-timeline-dot-final":"agent-timeline-dot-text"),"aria-hidden":!0,children:(0,n.jsx)(eo,{className:"h-5 w-5 shrink-0 text-[#6e6e6e]"})}):"thinking"===e.type?(0,n.jsx)("span",{className:"agent-timeline-dot-text absolute -left-[40px] top-0.5 z-10 flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)(v.default,{name:"Think",size:14,className:"text-[#6e6e6e]"})}):(0,n.jsx)(eu,{group:e,permissionQueue:E}),"thought"===e.type?(0,n.jsx)(ec,{text:e.text,variant:et(m,t)}):"thinking"===e.type?(0,n.jsx)(P,{payload:e.payload,usage:"agent-timeline",streaming:a&&t===p}):(0,n.jsx)(ep,{group:e,totalToolCalls:h,completedToolCalls:g,runId:u,agentName:d,streaming:a,scheduledTaskIndex:c})]},function(e){switch(e.type){case"thought":return"thought-".concat(e.timestamp,"-").concat(ee(e.text));case"thinking":return e.key;case"toolContainer":return"tool-".concat(e.timestamp,"-").concat(e.tools.map(e=>e.toolUseId).join("|"));default:return"timeline-".concat(String(e))}}(e))}),x&&b?(0,n.jsxs)("div",{className:"relative !mt-[1.25rem] font-mono text-base text-[#6e6e6e]",children:[(0,n.jsx)("span",{className:"absolute -left-[40px] -top-0.5 z-10 inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)(v.default,{name:"Check",size:8,className:"text-[#6e6e6e]",strokeWidth:1})}),"已完成"]}):null,x&&!b?(0,n.jsxs)("div",{className:"relative !mt-[1.25rem] font-mono text-xs text-[#6e6e6e]",role:"status","aria-live":"polite",children:[(0,n.jsx)("span",{className:"absolute -left-[40px] -top-0.5 z-10 inline-flex h-6 w-6 items-center justify-center rounded-full border border-[#efefef] bg-[#fbfbfc]","aria-hidden":!0,children:(0,n.jsx)(w.Spinner,{className:"h-[14px] w-[14px] text-[#6e6e6e]"})}),"执行中"]}):null]})})]}):null}let eh=[{border:"#5DCAA5",headerBg:"#E1F5EE",headerText:"#085041",dot:"#0F6E56"}];function eg(e){for(let t=e.length-1;t>=0;t-=1){let n=e[t];if("source"!==n.kind)continue;let r=n.payload;if(r&&("resolved"===r.status||"failed"===r.status))return r.status}return null}let ex=(0,r.memo)(function(e){let{ev:t,idx:r,renderItem:s}=e;return(0,n.jsx)("div",{children:s(t,r)})});function ev(e){let{block:t,paletteIndex:s,renderItem:l}=e,i=eh[s%eh.length],[a,o]=(0,r.useState)(!1),[c,u]=(0,r.useState)(!1),[d,m]=(0,r.useState)(!1),[p,f]=(0,r.useState)(0),h=(0,r.useRef)(null),g=(0,r.useRef)(null),{toolCount:x,errCount:b}=(0,r.useMemo)(()=>(function(e){let t=0,n=0,r=0;for(let s of e)if("conversation"===s.kind)for(let e of function(e){if(!e||"object"!=typeof e)return[];let t=e.message;if(!t||"object"!=typeof t)return[];let n=t.message;if(!n||"object"!=typeof n)return[];let r=n.content;return Array.isArray(r)?r.filter(e=>!!e&&"object"==typeof e):[]}(s.payload))"thinking"===e.type?t+=1:"tool_use"===e.type?n+=1:"tool_result"===e.type&&!0===e.is_error&&(r+=1);return{thinkCount:t,toolCount:n,errCount:r}})(t.items),[t.items]),y=(0,r.useMemo)(()=>eg(t.items),[t.items]),j=(0,r.useMemo)(()=>(function(e){let t=e=>e?("string"==typeof e.team_name?e.team_name:"string"==typeof e.teamName?e.teamName:"").trim():"",n=e=>{if(!e)return"";let t=e.content;if(!Array.isArray(t))return"";for(let e of t){var n;if(!e||"object"!=typeof e)continue;let t=e.text;if("string"!=typeof t||!t.trim())continue;let r=t.match(/(?:^|\n)\s*team_name\s*:\s*([^\n]+)/);if(null==r||null==(n=r[1])?void 0:n.trim())return r[1].trim()}return""},r=e=>{var t,n;if("string"!=typeof e||!e.trim())return"";let r=e.match(/(?:^|\n)\s*team_name\s*[:=]\s*([^\n]+)/);if(null==r||null==(t=r[1])?void 0:t.trim())return r[1].trim();let s=e.match(/(?:^|\n)\s*agent_id\s*:\s*[^\n@]+@([^\n]+)/);return(null==s||null==(n=s[1])?void 0:n.trim())?s[1].trim():""};for(let l of e){if(!l.payload||"object"!=typeof l.payload)continue;let e=l.payload,i=t(e);if(i)return i;let a=r(e.text);if(a)return a;if("string"==typeof e.source){var s;let t=e.source.match(/@(.+)$/);if(null==t||null==(s=t[1])?void 0:s.trim())return t[1].trim()}let o=e.message;if(!o||"object"!=typeof o)continue;let c=t(o);if(c)return c;let u=o.toolUseResult;if(u&&"object"==typeof u){let e=t(u);if(e)return e}let d=o.message;if(!d||"object"!=typeof d)continue;let m=d.content;if(Array.isArray(m)){for(let e of m)if(e&&"object"==typeof e){if("tool_use"===e.type){let n=e.input;if(n&&"object"==typeof n){let e=t(n);if(e)return e}}if("tool_result"===e.type){let r=t(e);if(r)return r;let s=n(e);if(s)return s}}}}return""})(t.items),[t.items]),w=(0,r.useMemo)(()=>null===eg(t.items),[t.items]),S=d?Math.min(p,t.items.length):0;(0,r.useEffect)(()=>()=>{null!=h.current&&window.cancelAnimationFrame(h.current),null!=g.current&&window.clearTimeout(g.current)},[]),(0,r.useEffect)(()=>{if(a&&d&&!(p>=t.items.length))return g.current=window.setTimeout(()=>{f(e=>Math.min(e+24,t.items.length)),g.current=null},0),()=>{null!=g.current&&window.clearTimeout(g.current),g.current=null}},[t.items.length,d,a,p]);let N=(t.runId||"").slice(0,8),k=t.sourceAgent||"unknown-agent";return(0,n.jsxs)("div",{className:"agent-block p-[var(--space-1)]","data-agent-work-phase":w?"active":"finished",style:{overflow:"hidden"},children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{if(a){o(!1),m(!1),u(!1),f(0),null!=h.current&&(window.cancelAnimationFrame(h.current),h.current=null),null!=g.current&&(window.clearTimeout(g.current),g.current=null);return}o(!0),u(!0),m(!1),f(Math.min(16,t.items.length)),null!=h.current&&window.cancelAnimationFrame(h.current),h.current=window.requestAnimationFrame(()=>{m(!0),h.current=null})},"aria-expanded":a,"aria-label":"".concat(k," · ").concat(y?" · ".concat(y):""),className:"agent-block-header ".concat(w?"slideHighlight":""),style:{display:"flex",alignItems:"center",gap:8,padding:"12px 0",border:"none",background:"transparent",cursor:"pointer",userSelect:"none",textAlign:"left"},children:[(0,n.jsxs)("span",{className:"rounded-md bg-[var(--ds-color-surface-item-active)] px-2 py-1",style:{fontSize:"var(--text-xs)",fontWeight:500,color:i.headerText,flexShrink:0},children:["SUBAGENT = ",k]}),j?(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",color:i.headerText,opacity:.65,flexShrink:0},children:["· ",j]}):null,(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",color:i.headerText,opacity:.65,flexShrink:0,fontFamily:"ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace"},children:["run:",N]}),(0,n.jsxs)("div",{style:{display:"flex",gap:4,alignItems:"center",marginLeft:4,flexShrink:0},children:[x>0?(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",padding:"1px 6px",borderRadius:20,background:"#EDEDED",color:i.headerText,fontWeight:400},children:["工具调用:",x]}):null,b>0?(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",padding:"1px 6px",borderRadius:20,background:"#FCEBEB",color:"#A32D2D",fontWeight:500},children:[b," err"]}):null]}),y?(0,n.jsx)("span",{style:{fontSize:"var(--text-xs)",padding:"1px 7px",borderRadius:20,fontWeight:500,marginLeft:4,background:"resolved"===y?"#EAF3DE":"#FCEBEB",color:"resolved"===y?"#3B6D11":"#A32D2D"},children:y}):null,(0,n.jsxs)("span",{style:{fontSize:"var(--text-xs)",color:i.headerText,opacity:.55,marginLeft:4,flexShrink:0},children:[t.items.length," 条"]}),(0,n.jsx)("span",{style:{flex:1}}),(0,n.jsx)("span",{style:{transition:"transform .18s ease",transform:a?"rotate(90deg)":"none",flexShrink:0},children:(0,n.jsx)(v.default,{name:"ChevronRight",size:14,strokeWidth:1,color:i.headerText})})]}),c?(0,n.jsx)("div",{style:{padding:"8px 10px 10px",margin:"0",borderRadius:"8px",border:"1px solid ".concat(i.border,"40"),background:"#ffffff"},children:d?(0,n.jsxs)("div",{style:{maxHeight:"min(60vh, 680px)",overflowY:"auto",overflowX:"hidden",overscrollBehaviorY:"contain"},children:[t.items.slice(0,S).map((e,t)=>(0,n.jsx)(ex,{ev:e,idx:t,renderItem:l},"agent-block-item-".concat(t))),S<t.items.length?(0,n.jsx)("div",{style:{fontSize:"var(--)",color:"#717781",padding:"4px 0"},children:"加载更多内容..."}):null]}):(0,n.jsx)("div",{style:{fontSize:"var(--)",color:"#717781",padding:"4px 0"},children:"内容加载中..."})}):null]})}function eb(e){let{dispatchedPrompt:t,triggeredAt:r,children:s}=e;return(0,n.jsxs)("section",{className:"scheduled-turn","aria-label":"定时任务触发轮次",children:[(0,n.jsxs)("div",{className:"scheduled-turn-divider",children:[(0,n.jsx)(v.default,{name:"Info",size:14,strokeWidth:1.6}),(0,n.jsxs)("span",{children:["定时任务触发",r?(0,n.jsxs)("em",{children:[" · ",function(e){if(!e)return"";let t=new Date(e);return Number.isFinite(t.getTime())?new Intl.DateTimeFormat("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1}).format(t):e}(r)]}):null]})]}),t.trim()?(0,n.jsxs)("div",{className:"scheduled-turn-dispatch",children:[(0,n.jsxs)("div",{className:"scheduled-turn-dispatch-head",children:[(0,n.jsx)(v.default,{name:"RefreshCw",size:12,strokeWidth:1.6}),(0,n.jsx)("span",{children:"调度系统派发提示(非用户发送)"})]}),(0,n.jsx)("div",{className:"scheduled-turn-dispatch-body",children:t})]}):null,(0,n.jsx)("div",{className:"scheduled-turn-body",children:s})]})}function ey(e){let{usageMeta:t}=e,r=["总计:".concat(k(t.totalTokens)),"输入:".concat(k(t.inputTokens)),"输出:".concat(k(t.outputTokens)),_,"输入明细:","新增输入:".concat(k(t.newInputTokens)),"缓存读取:".concat(k(t.cacheReadTokens)),_,"工具调用:","Web Search:".concat(t.webSearchCount," 次"),"Web Fetch:".concat(t.webFetchCount," 次")].join("\n");return(0,n.jsxs)("div",{className:"flex shrink-0 items-center gap-1 text-base text-[var(--ds-muted)]",onClick:e=>{e.stopPropagation()},children:[(0,n.jsxs)("span",{children:["本次回答消耗:",(0,n.jsxs)("span",{className:"text-[var(--ds-muted)]",children:[k(t.totalTokens)," tokens"]})]}),(0,n.jsx)(S.TooltipProvider,{delayDuration:120,side:"top",children:(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(Y.Button,{type:"button",variant:"plain",size:"icon-xs",className:"h-5 w-5 rounded-sm p-0 text-base transition-colors hover:bg-transparent hover:text-[var(--ds-text)] focus-visible:outline-none","aria-label":"查看 Token 用量明细",onClick:e=>{e.stopPropagation()},children:(0,n.jsx)(v.default,{name:"Info",size:14})})}),(0,n.jsx)(S.TooltipContent,{side:"top",align:"end",sideOffset:8,className:"max-w-[280px] whitespace-pre-line text-left text-sm leading-relaxed",children:r})]})})]})}function ej(e){let{usageMeta:t}=e,r=t.model?function(e){let t=e.trim(),n=t.lastIndexOf("/");return n>=0?t.slice(n+1):t}(t.model)||t.model:"—";return(0,n.jsxs)("div",{className:"px-2.5 py-2 text-sm text-[var(--ds-muted)]",onClick:e=>{e.stopPropagation()},children:["本次回答模型:",(0,n.jsx)("span",{className:"text-[var(--ds-text)]",children:r})]})}var ew=e.i(45617);function eS(e){return"undefined"!=typeof navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText?navigator.clipboard.writeText(e):"undefined"==typeof document?Promise.reject(Error("Clipboard unavailable")):new Promise((t,n)=>{let r=document.createElement("textarea");r.value=e,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 t();n(Error("Clipboard copy failed"))})}function eN(e){let{copyText:t,usageMeta:s=null}=e,[l,i]=(0,r.useState)(!1),a=(0,r.useRef)(null),o=t.trim().length>0;return(0,r.useEffect)(()=>()=>{null!=a.current&&window.clearTimeout(a.current)},[]),(0,n.jsxs)("div",{className:"mt-2 flex min-h-5 w-full items-center justify-between gap-2 pl-1 text-[var(--ds-muted)]",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(Y.Button,{type:"button",variant:"plain",size:"icon-xs",className:"h-5 w-5 rounded-sm p-0 text-[var(--ds-muted)] transition-colors hover:bg-transparent hover:text-[var(--ds-text)] focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50","aria-label":l?"已复制回复":"复制回复",title:l?"已复制":"复制回复",disabled:!o,onClick:e=>{e.stopPropagation(),o&&eS(t).then(()=>{i(!0),null!=a.current&&window.clearTimeout(a.current),a.current=window.setTimeout(()=>{i(!1),a.current=null},1500)},()=>{c.appToast.error("复制失败")})},children:l?(0,n.jsx)(v.default,{name:"Check",size:16}):(0,n.jsx)(v.default,{name:"Copy",size:16})}),s?(0,n.jsxs)(ew.HoverCard,{children:[(0,n.jsx)(ew.HoverCardTrigger,{delay:0,closeDelay:120,render:e=>(0,n.jsx)(Y.Button,{...e,type:"button",variant:"plain",size:"icon-xs",className:(0,H.cn)("h-5 w-5 rounded-sm p-0 text-[var(--ds-muted)] transition-colors hover:bg-transparent hover:text-[var(--ds-text)] focus-visible:outline-none",e.className),"aria-label":"更多",onClick:e=>{e.stopPropagation()},children:(0,n.jsx)(v.default,{name:"More",size:16})})}),(0,n.jsx)(ew.HoverCardContent,{align:"start",side:"bottom",sideOffset:6,className:"!w-auto min-w-0 rounded-[var(--ds-radius-sm)] border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-default)] p-0 shadow-md",children:(0,n.jsx)(ej,{usageMeta:s})})]}):null]}),s?(0,n.jsx)(ey,{usageMeta:s}):null]})}function ek(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):0}function eA(e){let{error:t,className:r="",message:s={}}=e,l=function(e){let t=e&&"object"==typeof e?e:{};return{retryInMs:ek(t.retryInMs),retryAttempt:ek(t.retryAttempt),maxRetries:ek(t.maxRetries)}}(s),i=l.retryAttempt,a=l.maxRetries,o=l.retryInMs;if(a<=0)return null;let c=i>=a,u=Math.max(1,Math.ceil(o/1e3));return(0,n.jsx)("div",{className:"chat-msg ".concat(r).trim(),role:c?"alert":"status","aria-live":"polite",children:(0,n.jsx)("div",{className:"inline-flex items-center gap-2 text-[#626a77]",children:c?(0,n.jsx)("span",{children:"服务暂时不可用,请稍后再试"}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(w.Spinner,{className:"h-[14px] w-[14px] text-[#626a77]"}),(0,n.jsx)("span",{children:"服务连接中 (".concat(i,"/").concat(a,") · ").concat(u,"s")})]})})})}let e_=new Set(["text","markdown","thinking","tool_use","tool_result"]);function eC(e){if(!e||"object"!=typeof e)return null;if(e.message&&"object"==typeof e.message)return e;let t=e.data;if(!t||"object"!=typeof t)return null;let n=t.message;return n&&"object"==typeof n?n:null}function eE(e){return Math.max(0,e.scrollHeight-e.scrollTop-e.clientHeight)}function eM(e,t,n){if(!(t instanceof Element)||void 0===n||0===n)return!1;let r=t;for(;r&&r!==e;){if(r instanceof HTMLElement&&function(e){if(e.scrollHeight<=e.clientHeight)return!1;let{overflowY:t}=getComputedStyle(e);return"auto"===t||"scroll"===t||"overlay"===t}(r)){let e=r.scrollTop>0,t=r.scrollTop+r.clientHeight<r.scrollHeight-1;if(n<0&&e||n>0&&t)return!0}r=r.parentElement}return!1}function eI(e){let{text:t,streamMode:r=!1,components:s}=e;return(0,n.jsx)(C.ChatMarkdownRemark,{markdown:t,streaming:r,theme:"light",components:s})}let eT=(0,r.memo)(function(e){let{ev:t,idx:n,streaming:r,showToolbar:s,durationContext:l,renderTimelineEvent:i}=e;return i(t,n,r,s,l)});function eO(e){if(!e||"object"!=typeof e)return null;let t=e.message;if(t&&"object"==typeof t)return e;let n=e.data;if(!n||"object"!=typeof n)return null;let r=n.message;return r&&"object"==typeof r?r:null}function eR(e){var t,n;let r=eO(e);if(!r)return null;let s=r.message;if(!s||"object"!=typeof s)return null;let l=e&&"object"==typeof e?e:null,i=null!=(n=null!=(t=r.timestamp)?t:"string"==typeof(null==l?void 0:l.timestamp)?l.timestamp:void 0)?n:"string"==typeof(null==l?void 0:l.ts)?l.ts:void 0,a={...r,message:s};return"string"==typeof i&&i.trim()&&(a.timestamp=i),(0,$.retainScheduledTriggerFlag)(e,a)}function eL(e){let t=eO(e);return"string"==typeof(null==t?void 0:t.type)?t.type:void 0}function eD(e){return(function(e){var t;let n=eO(e);if(!n)return[];let r=null==(t=n.message)?void 0:t.content;return Array.isArray(r)?r.filter(e=>!!e&&"object"==typeof e):[]})(e).some(e=>"tool_use"===e.type||"tool_result"===e.type||"string"==typeof e.type&&e.type.startsWith("tool_"))}function eW(e){let t=eO(e);return(null==t?void 0:t.isMeta)===!0}function ez(e){return!eW(e)&&"user"===eL(e)&&!eD(e)}function eP(e){var t;let n=eO(e);return!!n&&"assistant"===n.type&&(null==(t=n.message)?void 0:t.stop_reason)==="end_turn"}function eF(e){return"conversation"!==e.kind?null:eR(e.payload.message)}function eK(e){if(!e||"object"!=typeof e)return null;let t=e.message;return t&&"object"==typeof t?t:null}function eB(e){if("conversation"!==e.kind)return!1;let t=eK(e.payload);return!!t&&"system"===t.type&&"turn_duration"===t.subtype}function eY(e){if("conversation"!==e.kind)return!1;let t=eK(e.payload);return!!t&&"progress"===t.type}function eU(e){var t;let n=eO(e);if(!n||"assistant"!==n.type)return!1;let r=null==(t=n.message)?void 0:t.content;if(!Array.isArray(r)||0===r.length)return!1;let s=!1;for(let e of r){if(!e||"object"!=typeof e)return!1;let t=e.type;if("text"===t||"markdown"===t){s=!0;continue}return!1}return s}function eq(e){var t;let n=eO(e);if(!n||"assistant"!==n.type)return!1;let r=null==(t=n.message)?void 0:t.content;if(!Array.isArray(r)||0===r.length)return!1;for(let e of r)if(!e||"object"!=typeof e||"thinking"!==e.type)return!1;return!0}function eH(e){return!!e&&"object"==typeof e&&"system"===e.type&&"turn_duration"===e.subtype}function eV(e,t){let n=e[t];if(!n||"assistant"!==eQ(n))return!1;for(let n=t+1;n<e.length;n+=1){let t=e[n];if(ez(t))break;if(!eD(t)&&"assistant"===eQ(t))return!1}return!0}function eJ(e,t,n){if(n)return!1;let r=e[t];if(!r||"conversation"!==r.kind)return!1;let s=eF(r);return!!s&&"assistant"===eQ(s)&&eV(O(e),R(e,t))}function eQ(e){var t;let n=null==e||null==(t=e.message)?void 0:t.content;return"user"===e.type&&Array.isArray(n)&&n.some(e=>(null==e?void 0:e.type)==="tool_result"||(null==e?void 0:e.type)==="tool_use")?"assistant":e.type}function eX(e){for(let t of e){if(!t||"object"!=typeof t)continue;let e=t.agent_name;if("string"==typeof e&&e.trim())return e}return""}let eG=new Intl.DateTimeFormat("zh-CN",{dateStyle:"medium",timeStyle:"short"}),eZ=new Intl.DateTimeFormat("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1});function e$(e){let t=[];for(let n of e)if(n&&"object"==typeof n){if("text"===n.type&&"string"==typeof n.text&&n.text.trim()){t.push(n.text.trim());continue}"markdown"===n.type&&"string"==typeof n.content&&n.content.trim()&&t.push(n.content.trim())}return t.join("\n\n").trim()}function e0(e){let t=E(e),n=(0,C.extractMessageBodyByRemark)(e);return{copyText:t.length?e$(t):n.trim(),usageMeta:A(e)}}function e1(e){let{body:t,message:s}=e,[l,i]=(0,r.useState)(!1),a=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{null!=a.current&&window.clearTimeout(a.current)},[]);let o=function(e){let t;if(!e||"object"!=typeof e)return null;let n=e.message;if(n&&"object"==typeof n&&(t=n.timestamp),null==t&&(t=e.timestamp),null==t)return null;if("number"==typeof t){let e=new Date(t>1e12?t:1e3*t);return Number.isFinite(e.getTime())?e:null}if("string"==typeof t){let e=new Date(t);return Number.isFinite(e.getTime())?e:null}return null}(s),u=o?{label:eG.format(o),iso:o.toISOString()}:null,d=o?eZ.format(o):null;return(0,n.jsxs)("div",{className:"chat-msg chat-msg-user group ml-auto mt-[24px] flex max-w-[min(540px,100%)] flex-col items-end gap-1",children:[(0,n.jsx)("div",{className:"w-fit max-w-full whitespace-pre-wrap break-words rounded-md bg-[var(--ds-color-surface-item-hover)] px-4 py-3 text-[var(--ds-text)]",children:(0,n.jsx)("div",{children:t})}),(0,n.jsxs)("div",{className:"pointer-events-none invisible ml-auto flex min-h-5 w-fit items-center gap-2 pr-1 text-[var(--ds-muted)] opacity-0 transition-opacity group-focus-within:pointer-events-auto group-focus-within:visible group-focus-within:opacity-100 group-hover:pointer-events-auto group-hover:visible group-hover:opacity-100",children:[u?(0,n.jsx)(S.TooltipProvider,{delayDuration:150,children:(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("time",{className:"shrink-0",dateTime:u.iso,children:d})}),(0,n.jsx)(S.TooltipContent,{side:"top",align:"center",sideOffset:8,children:u.label})]})}):null,(0,n.jsx)("button",{type:"button",className:"inline-flex h-5 w-5 items-center justify-center rounded-sm border-0 bg-transparent p-0 text-[var(--ds-muted)] transition-colors hover:bg-transparent hover:text-[var(--ds-text)] focus-visible:outline-none","aria-label":l?"已复制问话":"复制问话",title:l?"已复制":"复制问话",onClick:e=>{e.stopPropagation(),eS(t).then(()=>{i(!0),null!=a.current&&window.clearTimeout(a.current),a.current=window.setTimeout(()=>{i(!1),a.current=null},1500)},()=>{c.appToast.error("复制失败")})},children:l?(0,n.jsx)(v.default,{name:"Check",size:14}):(0,n.jsx)(v.default,{name:"Copy",size:14})})]})]})}function e2(e){let{raw:t,payload:r}=e,l="1"===String((0,s.useSearchParams)().get("dev")),i=(()=>{try{return JSON.stringify(r,null,2)}catch(e){return String(r)}})();return(0,n.jsxs)("div",{className:"chat-msg chat-msg-system",children:[(0,n.jsx)("div",{className:"chat-msg-system-body whitespace-pre-wrap break-words",children:t}),l?(0,n.jsxs)("details",{className:"chat-msg-system-dev mt-2 rounded-md border border-[var(--ds-color-border-default)] bg-[var(--ds-color-surface-log)] p-2",children:[(0,n.jsx)("summary",{className:"cursor-pointer select-none text-xs text-[var(--ds-muted)]",children:"调试详情"}),(0,n.jsx)("pre",{className:"mt-2 max-h-48 overflow-auto font-mono text-xs leading-snug text-[var(--ds-text)]",children:i})]}):null]})}function e5(){var e;let{followControl:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=(0,l.useAppStore)(j),i=(0,l.useAppStore)(e=>e.messagesByRun),a=(0,l.useAppStore)(e=>e.sourceAgentMessages),o=(0,l.useAppStore)(e=>e.streamBuffer),c=(0,l.useAppStore)(e=>e.assistantGenerating),u=(0,l.useAppStore)(e=>e.turnRunning),d=(0,l.useAppStore)(e=>e.sessionId),m=(0,l.useAppStore)(e=>e.sessionHistoryLoading),p=(0,r.useRef)(null),f=(0,r.useRef)(null),h=(0,r.useRef)(!1),g=(0,r.useRef)(null),x=(0,r.useMemo)(()=>(function(e){let t=new Map,n=new Set;for(let r=0;r<e.length;r+=1){if(!ez(e[r]))continue;let s=[],l=-1;for(let t=r+1;t<e.length;t+=1){let r=e[t];if(ez(r)||eH(r))break;if(-1!==l){let n=eR(r);if(n&&eU(n)&&!function(e,t){for(let n=t+1;n<e.length;n+=1){let t=e[n];if(eH(t)||ez(t))break;let r=eR(t);if(r){if(eD(r))return!0;if(!eU(r)&&eq(r))continue}}return!1}(e,t))break}if(eD(r)){let e=eL(r);-1===l&&"assistant"===e&&(l=t)}if(eP(r))break;if(-1!==l){let e=eR(r);if(e&&eW(e)){n.add(t);continue}s.push(t)}}if(-1!==l&&0!==s.length)for(let r of(t.set(l,s.map(t=>eR(e[t])).filter(e=>null!==e&&!eW(e))),s))r!==l&&n.add(r)}return{starts:t,consumed:n}})(s),[s]),v=(0,r.useMemo)(()=>(0,$.buildScheduledTaskIndex)(s),[s]),b=(0,r.useMemo)(()=>(0,$.partitionScheduledSegments)(s,v),[s,v]),y=null==(e=null==t?void 0:t.isFollowPinned)||e,S=u||o.trim().length>0||c,N=(0,r.useCallback)(function(){var e;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"instant";if(t)return void t.scrollToBottom(n);null==(e=p.current)||e.scrollIntoView({block:"end",behavior:n})},[t]),k=(0,r.useCallback)(e=>{p.current=e,null==t||t.setEndAnchor(e)},[t]);(0,r.useEffect)(()=>{let e=d.trim();if(!e){g.current=null;return}s.length&&g.current!==e&&(g.current=e,N("instant"))},[d,s.length,N]),(0,r.useEffect)(()=>{if(!y||!S)return;N("instant");let e=requestAnimationFrame(()=>N("instant"));return()=>cancelAnimationFrame(e)},[s,o,c,i,u,S,y,N]),(0,r.useEffect)(()=>{if(u)h.current=!0;else{let e=window.setTimeout(()=>{h.current=!1},500);return()=>window.clearTimeout(e)}},[u]),(0,r.useEffect)(()=>{var e;let t=null==(e=p.current)?void 0:e.parentElement;if(!t)return;let n=new ResizeObserver(()=>{h.current&&y&&S&&N("instant")});return n.observe(t),()=>n.disconnect()},[N,y,S]),(0,r.useEffect)(()=>()=>{null!=f.current&&window.clearTimeout(f.current)},[]);let _=(0,r.useMemo)(()=>{let e=0;for(let t=s.length-1;t>=0;t--)if(ez(s[t])){e=t;break}if(s.slice(e).some(e=>{if(!e||"object"!=typeof e)return!1;let t=e.message&&"object"==typeof e.message?e.message:null;return"assistant"===e.type&&((null==t?void 0:t.stop_reason)==="end_turn"||(null==t?void 0:t.stop_reason)==="stop_sequence")}))return new Set;let t=new Set;for(let n=s.length-1;n>=e;n--){if(!s[n]||"object"!=typeof s[n])continue;let e=s[n];if("system"===e.type&&"api_error"===e.subtype){t.add(n);break}}return t},[s]),M=(0,r.useMemo)(()=>{let e=[],t=0;for(let[n,r]of Object.entries(i||{}))for(let s=0;s<r.length;s+=1){let l=r[s];l&&void 0!==l.message&&e.push({ts:l.ts||"",arrivalSeq:Number.isInteger(l.arrivalSeq)?l.arrivalSeq:Number.MAX_SAFE_INTEGER,fallbackOrder:t++,runId:n,sourceAgent:l.sourceAgent||("main"===n?"main":"unknown-agent"),kind:"conversation",payload:l})}for(let n=0;n<a.length;n+=1){let r=a[n];if(!r)continue;let s=r.runId||"main";e.push({ts:r.ts||"",arrivalSeq:Number.isInteger(r.arrivalSeq)?r.arrivalSeq:Number.MAX_SAFE_INTEGER,fallbackOrder:t++,runId:s,sourceAgent:r.source||("main"===s?"main":"unknown-agent"),kind:"source",payload:r})}e.sort((e,t)=>{let n=Date.parse(e.ts||""),r=Date.parse(t.ts||""),s=Number.isFinite(n),l=Number.isFinite(r);return s&&l&&n!==r?n-r:e.arrivalSeq!==t.arrivalSeq?e.arrivalSeq-t.arrivalSeq:e.fallbackOrder-t.fallbackOrder});let n=[],r=new Map,s=0;for(let t=0;t<e.length;t+=1){let l=e[t];if("main"===l.runId){let e=n.length?n[n.length-1]:null;e&&e.isMainSegment?e.items.push(l):n.push({runId:"main",sourceAgent:l.sourceAgent,items:[l],isMainSegment:!0,segmentSeq:++s});continue}let i=r.get(l.runId);if(i){i.items.push(l);continue}let a={runId:l.runId,sourceAgent:l.sourceAgent,items:[l],isMainSegment:!1,segmentSeq:0};r.set(l.runId,a),n.push(a)}return n},[i,a]),z=(0,r.useMemo)(()=>(function(e){let t=e.timelineBlocks.reduce((e,t)=>e+t.items.length,0);return t+function(e){let t=function(e){let t=0;for(let n=e.length-1;n>=0;n-=1)if(function(e){let t=eC(e);if(!t||!0===t.isMeta||"user"!==t.type)return!1;let n=t.message,r=null==n?void 0:n.content;return!Array.isArray(r)||!r.some(e=>{if(!e||"object"!=typeof e)return!1;let t=e.type;return"tool_use"===t||"tool_result"===t||"string"==typeof t&&t.startsWith("tool_")})}(e[n])){t=n;break}return e.slice(t)}(e),n=0;for(let e=0;e<t.length;e+=1){let r=t[e],s=eC(r);if(!s||"assistant"!==s.type)continue;let l=E(r);for(let e=0;e<l.length;e+=1){let t=l[e];if(!t||"object"!=typeof t)continue;let r=t.type;"string"==typeof r&&e_.has(r)&&(n+=1)}}return n}(e.lastMessages)+ +(e.streamBuffer.trim().length>0)})({timelineBlocks:M,lastMessages:s,streamBuffer:o}),[M,s,o]);(0,r.useEffect)(()=>{null==t||t.setContentUnitCount(z)},[t,z]);let F=M.length>0,K=(0,r.useMemo)(()=>{let e=new Map,t=0;for(let n of M)!n.isMainSegment&&(e.has(n.runId)||(e.set(n.runId,t),t+=1));return e},[M]),B=(0,r.useCallback)(function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],l=arguments.length>4?arguments[4]:void 0;if("source"===e.kind){if("main"===e.runId)return null;let r=e.payload,s="string"==typeof r.text?r.text.trim():"";if(!s)return null;let l="failed"===r.status?"chat-msg-system":"chat-msg-assistant",i="string"==typeof r.correlationId&&r.correlationId?" corr=".concat(r.correlationId):"";return(0,n.jsxs)("div",{className:"chat-msg ".concat(l),children:[(0,n.jsx)("div",{className:"chat-msg-label",children:"sourceAgent: ".concat(r.source||e.sourceAgent," run=").concat(e.runId).concat(i)}),(0,n.jsx)(eI,{text:s})]},"source-".concat(t))}let i=e.payload.message||null;if(!i)return null;let a=eQ(i)||i.type;if("user"===a){if(eW(i))return null;let e=(0,C.extractMessageBodyByRemark)(i);return e.trim()?(0,n.jsx)(e1,{body:e,message:i},"user-".concat(t)):null}if("assistant"===a){let a=E(i),o=(0,C.extractMessageBodyByRemark)(i);if(!a.length&&!o.trim())return null;let c=a.map(e=>{if(!e||"object"!=typeof e)return"";let t=e.type;return"string"==typeof t?t:""}),u=e=>"tool_use"===e||"tool_result"===e||e.startsWith("tool_"),d=c.some(e=>u(e)),m=c.some((e,t)=>"thinking"===e&&u(c[t-1]||"")),p=c.some((e,t)=>{if("thinking"!==e)return!1;let n=c[t-1]||"",r=c[t+1]||"";return!u(n)&&u(r)}),f=c.some(e=>"text"===e||"markdown"===e),h=a.length?e$(a):o.trim(),g=s&&!!h,x=A(i);return(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[d&&!p||m?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(ef,{messages:[i],runId:e.runId,agentName:e.sourceAgent,streaming:r,ev:e,scheduledTaskIndex:v}),r&&!f?(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,n.jsx)(w.Spinner,{className:"h-3 w-3"}),(0,n.jsx)("span",{children:"生成回复中..."})]}):null]}):a.length?a.map((e,t)=>{if(!e||"object"!=typeof e)return null;let s=e.type;if("text"===s){let r="string"==typeof e.text?e.text:"";return r.trim()?(0,n.jsx)(eI,{text:r},t):null}if("markdown"===s){let r="string"==typeof e.content?e.content:"";return r.trim()?(0,n.jsx)(eI,{text:r},t):null}if("thinking"===s){let s=T(e,l?I(l.messages,l.messageIndex):void 0),i=r&&L(a,t);return(0,n.jsx)(P,{payload:s,usage:"assistant-message",streaming:i},t)}return null}):o.trim()?(0,n.jsx)(eI,{text:o}):null,g?(0,n.jsx)(eN,{copyText:h,usageMeta:x}):null]})},"assistant-".concat(t))}if("system"===a){var o;let e=null==(o=i.message)?void 0:o.content;if(null==e)return null;let r="string"==typeof e?e:JSON.stringify(e);return r.trim()?(0,n.jsx)(e2,{raw:r,payload:i},"system-".concat(t)):null}return null},[v]),Y=(0,r.useCallback)(function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3],l=arguments.length>4?arguments[4]:void 0;return(0,n.jsx)(eT,{ev:e,idx:t,streaming:r,showToolbar:s,durationContext:l,renderTimelineEvent:B})},[B]),U=(0,r.useCallback)(function(e,t,s,l){let i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return(0,n.jsx)(eb,{dispatchedPrompt:e.dispatchedPrompt,triggeredAt:e.triggeredAt,taskId:e.taskId,children:e.assistantMessages.map((a,o)=>{var c;let u="string"==typeof a.timestamp&&a.timestamp||("string"==typeof(null==(c=a.message)?void 0:c.timestamp)?a.message.timestamp:"")||e.triggeredAt;return(0,n.jsx)(r.Fragment,{children:Y({ts:u,arrivalSeq:o,fallbackOrder:o,runId:s,sourceAgent:l,kind:"conversation",payload:{message:a}},o,i&&o===e.assistantMessages.length-1,!1,{messages:e.assistantMessages,messageIndex:o})},"".concat(t,"-assistant-").concat(o))})},t)},[Y]),q=!F&&(!s||0===s.length)&&!o&&!c,H=!!d.trim()&&m;return(0,n.jsxs)("div",{id:"chatThread",className:"chat-thread","data-region":"chat-thread","aria-live":"polite",onClick:e=>{var t;let n=e.target,r=null==n?void 0:n.closest(".chat-code-copy-btn");if(!r)return;e.preventDefault(),e.stopPropagation();let s=r.closest(".chat-code-block"),l=null==s?void 0:s.querySelector("pre code");eS(null!=(t=null==l?void 0:l.textContent)?t:"").then(()=>{r.textContent="已复制",r.classList.add("is-copied"),null!=f.current&&window.clearTimeout(f.current),f.current=window.setTimeout(()=>{r.textContent="复制",r.classList.remove("is-copied")},1400)})},children:[q?H?(0,n.jsxs)("div",{className:"flex min-h-[220px] items-center justify-center",children:[(0,n.jsx)(w.Spinner,{}),(0,n.jsx)("div",{className:"text-muted-foreground",children:"加载中..."})]}):d.trim()?(0,n.jsx)("div",{className:"chat-placeholder",children:"当前历史会话暂无消息"}):(0,n.jsx)("div",{className:"chat-placeholder",children:"连接后将在此展示对话"}):(0,n.jsxs)(n.Fragment,{children:[F?M.map((e,t)=>{var s;if(!e.items.length)return null;let l=e.runId,i=e.sourceAgent||("main"===l?"main":"unknown-agent");e.isMainSegment&&e.segmentSeq>1&&e.segmentSeq;let a=t===M.length-1,o=e.items.length-1,c=e=>u&&a&&e===o,d=t=>eJ(e.items,t,u),m=function(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(!function(e){let t=eF(e);return!!t&&"assistant"===t.type&&eD(t)}(r)){let e=eF(r);if(e&&eW(e)){n+=1;continue}t.push({kind:"single",ev:r,index:n}),n+=1;continue}let s=[],l=n,i=n;for(;i<e.length;){let t=e[i];if(eB(t))break;let r=eF(t);if(!r){if(i===n)break;if(eY(t)){i+=1;continue}break}if(i>n&&ez(r)||i>n&&eU(r)&&!function(e,t){for(let n=t+1;n<e.length;n+=1){let t=e[n];if("conversation"!==t.kind)continue;if(eB(t))break;if(eY(t))continue;let r=eF(t);if(!r||ez(r))break;if(eD(r))return!0;if(!eU(r)&&eq(r))continue}return!1}(e,i))break;if(eW(r)){i+=1;continue}if(s.push(r),l=i,(i+=1)>n+1&&eP(r))break}if(0===s.length){t.push({kind:"single",ev:r,index:n}),n+=1;continue}t.push({kind:"toolRound",startIndex:n,endIndex:l,messages:s}),n=l+1}return t}(e.items),{toolRoundByStart:p,consumed:f}=function(e){let t=new Map,n=new Set;for(let r of e)if("toolRound"===r.kind){t.set(r.startIndex,r);for(let e=r.startIndex+1;e<=r.endIndex;e+=1)n.add(e)}return{toolRoundByStart:t,consumed:n}}(m),h=O(e.items),g=e.items.map(e=>"conversation"===e.kind?eF(e):null),x=(0,$.partitionScheduledSegments)(g,v);return"main"===l?(0,n.jsx)("div",{className:"chat-run-group",children:(0,n.jsx)("div",{className:"chat-run-group-body",children:m.map(s=>{var a;let o="single"===s.kind?s.index:s.startIndex,m=x.scheduledStarts.get(o);if(m)return U(m,"scheduled-main-".concat(t,"-").concat(o),l,i,c(m.endIndex));if(x.consumed.has(o))return null;let p="toolRound"===s.kind&&eJ(e.items,s.endIndex,u),f="toolRound"===s.kind?null!=(a=s.messages[s.messages.length-1])?a:eF(e.items[s.endIndex]):null,g=f?e0(f):null;return(0,n.jsx)(r.Fragment,{children:"single"===s.kind?Y(s.ev,s.index,c(s.index),d(s.index),{messages:h,messageIndex:R(e.items,s.index)}):(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[(0,n.jsx)(ef,{messages:s.messages,runId:l,agentName:i,streaming:c(s.endIndex),scheduledTaskIndex:v}),p&&(null==g?void 0:g.copyText)?(0,n.jsx)(eN,{copyText:g.copyText,usageMeta:g.usageMeta}):null]})})},"main-".concat(t,"-").concat(s.kind,"-").concat(o))})})},"run-main-".concat(t)):(0,n.jsx)("div",{className:"chat-run-group",children:(0,n.jsx)(ev,{block:e,paletteIndex:null!=(s=K.get(l))?s:0,renderItem:(r,s)=>{if(f.has(s))return null;let a=x.scheduledStarts.get(s);if(a)return U(a,"scheduled-sub-".concat(t,"-").concat(s),l,i,c(a.endIndex));if(x.consumed.has(s))return null;let o=p.get(s);if(o){var m;let t=eJ(e.items,o.endIndex,u),r=null!=(m=o.messages[o.messages.length-1])?m:eF(e.items[o.endIndex]),s=r?e0(r):null;return(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[(0,n.jsx)(ef,{messages:o.messages,runId:l,agentName:i,streaming:c(o.endIndex),scheduledTaskIndex:v}),t&&(null==s?void 0:s.copyText)?(0,n.jsx)(eN,{copyText:s.copyText,usageMeta:s.usageMeta}):null]})})}let h=O(e.items);return Y(r,s,c(s),d(s),{messages:h,messageIndex:R(e.items,s)})}})},"run-sub-".concat(t))}):s.map((e,t)=>{let r=b.scheduledStarts.get(t);if(r)return U(r,"scheduled-flat-".concat(t),"main",eX(r.assistantMessages)||"main",u&&t===s.length-1);if(b.consumed.has(t))return null;let l=x.starts.get(t);if(l){let e=t===s.length-1,r=eX(l),i=t;for(let e=t+1;e<s.length&&!(ez(s[e])||eH(s[e]));e+=1){let t=eR(s[e]);t&&eW(t)||(i=e)}let a=!u&&eV(s,i),o=l[l.length-1],c=o?e0(o):null;return(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[(0,n.jsx)(ef,{messages:l,agentName:r,streaming:u&&e,scheduledTaskIndex:v}),a&&(null==c?void 0:c.copyText)?(0,n.jsx)(eN,{copyText:c.copyText,usageMeta:c.usageMeta}):null]})},t)}if(x.consumed.has(t))return null;let i=eR(e);if(!i)return null;let a=eQ(i)||i.type;if("user"===a){if(eW(e))return null;let r=(0,C.extractMessageBodyByRemark)(e);return r.trim()?(0,n.jsx)(e1,{body:r,message:e},t):null}if("assistant"===a){let r=!u&&eV(s,t),l=A(e),i=E(e);if(!i.length){let s=(0,C.extractMessageBodyByRemark)(e);return s.trim()?(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[(0,n.jsx)(eI,{text:s}),r?(0,n.jsx)(eN,{copyText:s.trim(),usageMeta:l}):null]})},t):null}let a=e$(i);return(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant",children:(0,n.jsxs)("div",{className:"assistant-content flex flex-col gap-3",children:[i.map((e,r)=>{if(!e||"object"!=typeof e)return null;let l=e.type;if("text"===l){let t="string"==typeof e.text?e.text:"";return t.trim()?(0,n.jsx)(eI,{text:t},r):null}if("markdown"===l){let t="string"==typeof e.content?e.content:"";return t.trim()?(0,n.jsx)(eI,{text:t},r):null}if("thinking"===l){let l=T(e,I(s,t)),a=u&&t===s.length-1&&L(i,r);return(0,n.jsx)(P,{payload:l,usage:"assistant-message",streaming:a},r)}return"tool_use"===l?(0,n.jsx)(D,{data:e},r):"tool_result"===l?(0,n.jsx)(W,{data:e},r):null}),r&&a?(0,n.jsx)(eN,{copyText:a,usageMeta:l}):null]})},t)}if("system"===a){let e=i.message,r=null==e?void 0:e.content,s="string"==typeof r?r:JSON.stringify(null!=r?r:"");return s.trim()&&"turn_duration"!==i.subtype?"api_error"===i.subtype?_.has(t)?(0,n.jsx)(eA,{error:i.error,message:i},t):null:(0,n.jsx)(e2,{raw:s,payload:i},t):null}return null}),o?(0,n.jsxs)("div",{className:"chat-msg chat-msg-assistant chat-streaming chat-streaming--content","data-stream-phase":"generating","aria-live":"polite","aria-busy":"true",children:[(0,n.jsxs)("div",{className:"chat-msg-label",children:["生成中",(0,n.jsx)("span",{className:"stream-cursor","aria-hidden":!0})]}),(0,n.jsx)(eI,{text:o,streamMode:!0}),(0,n.jsx)("span",{className:"stream-cursor","aria-hidden":!0})]}):c?(0,n.jsx)("div",{className:"chat-msg chat-msg-assistant chat-streaming chat-streaming--pending","data-stream-phase":"generating","aria-live":"polite","aria-busy":"true",children:(0,n.jsxs)("div",{className:"chat-msg-label",children:["生成中",(0,n.jsx)("span",{className:"stream-cursor","aria-hidden":!0})]})}):null]}),(0,n.jsx)("div",{ref:k})]})}function e6(e){let{visible:t,phase:s,pendingStepDelta:l,showResumeFollow:i,showViewFullAnswer:a,onResumeFollow:o,onViewFullAnswer:c}=e,[u,d]=(0,r.useState)(t),[m,p]=(0,r.useState)(!1),[f,h]=(0,r.useState)(!1),g=(0,r.useRef)(l);return((0,r.useEffect)(()=>{if(t){d(!0),p(!1);return}if(!u)return;p(!0);let e=window.setTimeout(()=>{d(!1),p(!1)},190);return()=>{window.clearTimeout(e)}},[t,u]),(0,r.useEffect)(()=>{if(!i||l<=0){g.current=l;return}if(l===g.current)return;g.current=l,h(!1);let e=window.requestAnimationFrame(()=>{h(!0)}),t=window.setTimeout(()=>{h(!1)},180);return()=>{window.cancelAnimationFrame(e),window.clearTimeout(t)}},[l,i]),u)?(0,n.jsx)("div",{className:"chat-scroll-follow-bar","data-phase":s,role:"status","aria-live":"polite",children:(0,n.jsx)("div",{className:"chat-scroll-follow-bar-inner",children:i||a?(0,n.jsx)(Y.Button,{type:"button",variant:"plain",className:["chat-scroll-follow-btn",i?"chat-scroll-follow-btn-streaming":"",a?"chat-scroll-follow-btn-completed":"",m?"chat-scroll-follow-btn-leaving":""].filter(Boolean).join(" "),"aria-label":i?"跳至最新对话":"查看完整回答",onClick:i?o:c,children:i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"chat-scroll-follow-dot chat-scroll-follow-dot-1","aria-hidden":!0}),(0,n.jsx)("span",{className:"chat-scroll-follow-dot chat-scroll-follow-dot-2","aria-hidden":!0}),(0,n.jsx)(v.default,{name:"ArrowDown",size:16}),(0,n.jsx)("span",{className:"chat-scroll-follow-btn-title",children:"跳至最新"}),l>0?(0,n.jsxs)("span",{className:["chat-scroll-follow-badge",f?"chat-scroll-follow-badge-bump":""].filter(Boolean).join(" "),children:["+",l," 步骤"]}):null]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"chat-scroll-follow-btn-icon","aria-hidden":!0,children:(0,n.jsx)(v.default,{name:"Check",size:15})}),(0,n.jsx)("span",{className:"chat-scroll-follow-btn-title",children:"查看完整回答"})]})}):null})}):null}var e4=e.i(61293),e3=e.i(10602),e9=e.i(75733),e7=e.i(28234),e8=e.i(55105);function te(e){let{value:t,size:r=18,strokeWidth:s=2,trackColor:l="#E3E1E1",indicatorColor:i="#ffffff",minVisualPercent:a=2.5,className:o,...c}=e,u=Math.min(Math.max(t,0),100),d=u>0&&u<a?a:u,m=(r-s)/2,p=2*Math.PI*m,f=r/2;return(0,n.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":u,"data-slot":"circular-progress",className:(0,H.cn)("inline-flex shrink-0",o),...c,children:(0,n.jsxs)("svg",{width:r,height:r,viewBox:"0 0 ".concat(r," ").concat(r),"aria-hidden":"true",children:[(0,n.jsx)("circle",{cx:f,cy:f,r:m,fill:"none",stroke:l,strokeWidth:s}),u>0?(0,n.jsx)("circle",{cx:f,cy:f,r:m,fill:"none",stroke:i,strokeWidth:s,strokeLinecap:"round",strokeDasharray:p,strokeDashoffset:p*(1-d/100),transform:"rotate(-90 ".concat(f," ").concat(f,")"),className:"transition-[stroke-dashoffset] duration-200 ease-out"}):null]})})}var tt=e.i(92371),tn=e.i(66235),tr=e.i(72483);let ts=e=>e,tl=e=>e;function ti(e){var t,r,s;let{id:l,value:i,onValueChange:a,options:o,ariaLabel:c,panelTitle:u,title:d,triggerClassName:m,triggerLabelClassName:p="composer-rich-select-trigger-label",placeholderLabel:f,toSelectItemValue:h=ts,fromSelectItemValue:g=tl}=e,x=function(e,t,n){let r=n?n(t):t;return e.find(e=>e.value===r)}(o,i,g),b=null!=(r=null!=f?f:null==(t=o[0])?void 0:t.label)?r:"";return(0,n.jsxs)(tr.Select,{value:i,onValueChange:a,children:[(0,n.jsx)(tr.SelectTrigger,{id:l,className:m,"aria-label":c,title:d,children:(0,n.jsx)("span",{className:(0,H.cn)(p,"truncate"),children:null!=(s=null==x?void 0:x.label)?s:b})}),(0,n.jsx)(tr.SelectContent,{className:"composer-rich-select-content",position:"popper",children:(0,n.jsxs)(tr.SelectGroup,{children:[u?(0,n.jsx)(tr.SelectLabel,{className:"composer-rich-select-panel-label",children:u}):null,o.map(e=>(0,n.jsxs)(tn.Item,{value:h(e.value),textValue:e.label,className:(0,H.cn)("composer-rich-select-item relative flex w-full cursor-pointer select-none items-start rounded-md py-2.5 pl-2 pr-8 text-base outline-none","!hover:bg-[var(--surface-2)] focus:bg-[var(--surface-2)]","data-[disabled]:pointer-events-none data-[disabled]:opacity-50","data-[state=checked]:bg-[var(--ds-color-success-bg)]"),children:[e.icon?(0,n.jsx)("span",{className:"composer-rich-select-item-icon mt-0.5 shrink-0",children:(0,n.jsx)(v.default,{name:e.icon,size:18,strokeWidth:1.5})}):null,(0,n.jsxs)("div",{className:"composer-rich-select-item-body min-w-0 flex-1 pr-1",children:[(0,n.jsx)(tn.ItemText,{asChild:!0,children:(0,n.jsx)("span",{className:"composer-rich-select-item-title block font-medium leading-snug text-[var(--ds-text)]",children:e.label})}),e.description?(0,n.jsx)("span",{className:"composer-rich-select-item-desc mt-0.5 block text-base leading-relaxed text-[var(--text-placeholder)]",children:e.description}):null]}),(0,n.jsx)("span",{className:"composer-rich-select-item-check absolute right-2 top-1/2 flex h-3.5 w-3.5 -translate-y-1/2 items-center justify-center",children:(0,n.jsx)(tn.ItemIndicator,{children:(0,n.jsx)(v.default,{name:"Check",size:16,className:"text-[var(--ds-color-accent)]",strokeWidth:2})})})]},e.value))]})})]})}var ta=e.i(85941),to=e.i(29716);let tc=[{label:"默认模式",value:"default",description:"按工具默认规则执行,常规操作自动进行,高风险操作需要确认。",icon:"ShieldCheck"},{label:"自动接受编辑",value:"acceptEdits",description:"自动接受 AI 对文件的修改,减少手动确认 diff。",icon:"Zap"},{label:"计划模式",value:"plan",description:"只做分析和规划,先给出方案,不直接修改代码。",icon:"Compass"},{label:"不询问模式",value:"dontAsk",description:"尽量不打断用户,更多操作自动执行。",icon:"MessageCircleQuestion"},{label:"跳过权限检查",value:"bypassPermissions",description:"绕过大部分权限确认,允许 AI 直接执行高权限操作。",icon:"Gavel"}];function tu(e){return"default"===e?to.PERMISSION_MODE_EMPTY_SENTINEL:e}function td(e){return e===to.PERMISSION_MODE_EMPTY_SENTINEL?"default":e}let tm=[{label:"手动",value:"0",description:"关键操作前需要确认,更安全"},{label:"自动",value:"1",description:"Agent 自动调用工具并推进任务,效率更高"}],tp={LLM_PROVIDER_ID:"",LLM_MODEL:"",WS_PERMISSION_MODE:"",WS_ALLOW_TOOL_ASK:""};function tf(e,t){var n;let r=(null!=(n=e.env)?n:{})[t];return"string"==typeof r?r.trim():""}function th(e){let t=String(null!=e?e:"").trim();return to.WS_PERMISSION_MODE_ALLOWED.includes(t)?t:""}function tg(e){let t=String(null!=e?e:"").trim();if(!to.WS_ALLOW_TOOL_ASK_ALLOWED.has(t))throw Error("WS_ALLOW_TOOL_ASK 只允许 0/1");return t}function tx(e,t){try{return tg(e)}catch(e){return t}}function tv(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:tp;return{providerId:function(e,t){var n,r;let s=tf(e,to.LLM_PROVIDER_ID_KEY);return s||(t.LLM_PROVIDER_ID?t.LLM_PROVIDER_ID:null!=(r=null==(n=e.llmProviders[0])?void 0:n.id.trim())?r:"")}(e,t),model:function(e,t){let n=tf(e,to.LLM_MODEL_KEY);if(n)return n;let r=(e.model||"").trim();return r||t.LLM_MODEL||""}(e,t),env:{[to.WS_PERMISSION_MODE_KEY]:function(e,t){let n=tf(e,to.WS_PERMISSION_MODE_KEY);if(n){let e=th(n);if(!e)throw Error("WS_PERMISSION_MODE 配置非法: ".concat(n));return e}let r=(t.WS_PERMISSION_MODE||"").trim();if(r){let e=th(r);if(!e)throw Error("WS_PERMISSION_MODE 配置非法: ".concat(r));return e}return"default"}(e,t),[to.WS_ALLOW_TOOL_ASK_KEY]:function(e,t){let n=tf(e,to.WS_ALLOW_TOOL_ASK_KEY);if(n)return tg(n);let r=(t.WS_ALLOW_TOOL_ASK||"").trim();return r?tg(r):"1"}(e,t)}}}var tb=e.i(89034);let ty="ws-test-composer-recent-models";function tj(e){let{text:t,className:s,wrapperClassName:l,fitContent:i=!1}=e,a=(0,r.useRef)(null),[o,c]=(0,r.useState)(!1),u=(0,r.useCallback)(()=>{let e=a.current;if(!e)return;let t=!(e.clientWidth<1)&&e.scrollWidth>e.clientWidth;c(e=>e===t?e:t)},[]);(0,r.useLayoutEffect)(()=>{let e=a.current;if(!e)return;u();let t=window.requestAnimationFrame(u),n=new ResizeObserver(u);n.observe(e);let r=e.parentElement;for(;r;)n.observe(r),r=r.parentElement;let s=new IntersectionObserver(e=>{var t;(null==(t=e[0])?void 0:t.isIntersecting)&&u()});return s.observe(e),()=>{window.cancelAnimationFrame(t),n.disconnect(),s.disconnect()}},[t,u]);let d=(0,H.cn)("block min-w-0 truncate",i?"max-w-full":"w-full",s),m=o&&t.trim().length>0;return(0,n.jsx)("div",{className:(0,H.cn)(i?"min-w-0 max-w-full":"w-full min-w-0 max-w-full [&_[data-slot=tooltip]]:flex [&_[data-slot=tooltip]]:w-full [&_[data-slot=tooltip]]:min-w-0 [&_[data-slot=tooltip]]:max-w-full",l),children:(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("span",{ref:a,className:d,onMouseEnter:e=>{m||e.preventDefault()},children:t})}),m?(0,n.jsx)(S.TooltipContent,{side:"top",align:"start",className:"max-w-[min(360px,90vw)] break-all",children:t}):null]})})}function tw(e){let{providerId:t,modelId:r,name:s,description:l,isActive:i,isCommitted:a,onSelect:o,onHover:c}=e;return(0,n.jsxs)("li",{role:"option","aria-selected":i,"data-model":r,"data-provider-id":t,className:(0,H.cn)("composer-model-suggestion-item",i&&"is-active",a&&"is-selected"),onMouseDown:e=>{e.preventDefault(),o()},onMouseEnter:c,children:[(0,n.jsxs)("div",{className:"composer-model-suggestion-body",children:[(0,n.jsxs)("div",{className:"composer-model-suggestion-heading",children:[(0,n.jsx)(tj,{text:s,className:"composer-model-suggestion-title",wrapperClassName:"composer-model-suggestion-title-wrap",fitContent:!0}),(0,n.jsx)("span",{className:"composer-model-suggestion-tag",title:t,children:t})]}),l?(0,n.jsx)(tj,{text:l,className:"composer-model-suggestion-desc"}):null]}),a?(0,n.jsx)("span",{className:"composer-model-suggestion-check","aria-hidden":!0,children:(0,n.jsx)(v.default,{name:"Check",size:16,strokeWidth:2})}):null]})}function tS(e){let{percent:t}=e;if(null===t)return null;let r="context: ".concat(t,"%");return(0,n.jsx)(S.TooltipProvider,{delayDuration:120,side:"top",children:(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)(Y.Button,{type:"button",variant:"plain",size:"icon",className:(0,H.cn)("size-5 shrink-0 !p-0","cursor-default hover:bg-transparent"),"aria-label":r,children:(0,n.jsx)(te,{value:t,size:20,strokeWidth:2.5,trackColor:"#fefefe",indicatorColor:"#E3E1E1"})})}),(0,n.jsx)(S.TooltipContent,{side:"top",align:"center",children:r})]})})}var tN=e.i(30164);let tk={src:e.i(71331).default,width:919,height:905,blurWidth:8,blurHeight:8,blurDataURL:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAABE0lEQVR42gEIAff+AAwMDAwgIiAiHR8dIAsQDRIAAAAABAQEBAgICAgAAAAAAHuCeYXA0sHcpLGmuG1wbnJMW1RhRFFKVpqlnapRWFNZAG17boKs4r790O3b/e337/7Q7Nz6sNXC58ns1v59jYOTADA5MjtmemqCqLervuT16f/i9Of/vM7D1oSdjqgzPDc+AAoQDRI5XUNqlNSq787u2f/I7df/gM+o8iljSHsnLykwAAAAAAA8cVKHa9Ob/4PZr/941Kv/TMeS/0eccMQZMiI+AAAAAAAhUztoO7B74y6seeUepHPlXb+W8rPhx/1QkW+zAAAAAAADCQcMCCAWKgYgFiwDHxUsHUMyVkSEZ6gdTjhqVnxy6XZuzkEAAAAASUVORK5CYII="};function tA(){return(0,n.jsx)("div",{className:"pointer-events-none fixed inset-0 z-50 flex items-center justify-center bg-[rgba(255,255,255,0.8)]",children:(0,n.jsxs)("div",{className:"px-16 py-14 text-center",children:[(0,n.jsx)(tN.default,{src:tk,alt:"上传文件",width:120,height:120,unoptimized:!0}),(0,n.jsx)("p",{className:"mt-4 text-xl font-semibold text-[var(--ds-text)]",children:"松开以上传文件"}),(0,n.jsx)("p",{className:"mt-1 text-sm text-[var(--ds-muted)]",children:"支持任意格式,可同时拖入多个文件"})]})})}var t_=e.i(52371),tC=e.i(62445);let tE=()=>{var e,t;if("function"==typeof(null==(e=globalThis.crypto)?void 0:e.randomUUID))return globalThis.crypto.randomUUID();if("function"==typeof(null==(t=globalThis.crypto)?void 0:t.getRandomValues)){let e=new Uint8Array(16);globalThis.crypto.getRandomValues(e),e[6]=15&e[6]|64,e[8]=63&e[8]|128;let t=Array.from(e,e=>e.toString(16).padStart(2,"0"));return"".concat(t.slice(0,4).join(""),"-").concat(t.slice(4,6).join(""),"-").concat(t.slice(6,8).join(""),"-").concat(t.slice(8,10).join(""),"-").concat(t.slice(10).join(""))}return"upload-".concat(Date.now().toString(36),"-").concat(Math.random().toString(36).slice(2,10))},tM=()=>new Promise(e=>{window.setTimeout(e,500)}),tI=(e,t)=>{let n=t.trim().toLowerCase();if(!n)return e.slice(0,50);let r=[];for(let t=0;t<e.length;t++){let s=e[t];if((s.id.toLowerCase().includes(n)||s.providerId.toLowerCase().includes(n)||s.name.toLowerCase().includes(n)||s.description&&s.description.toLowerCase().includes(n))&&r.push(s),r.length>=50)break}return r};function tT(e){let{onSend:t,onAbort:i,onRetryConnection:a}=e,{sendRestartSubprocess:u}=(0,o.useWorkspaceRuntime)(),{setSessionModel:d,setSessionProviderId:m,setAllowToolAsk:f,setPermissionModeFromSelect:x,enqueueModelCommit:b,pendingModelPersistRef:y,modelInputTitle:j,allowToolAskTitle:w,permissionModeTitle:N,permissionModeSelectValue:k,allowToolAsk:A,sessionModel:_,sessionProviderId:C}=function(){var e,t;let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{onRestartSubprocess:s}=n,i=(0,l.useAppStore)(e=>e.wsUrl),a=(0,l.useAppStore)(e=>e.apiBase),o=(0,l.useAppStore)(e=>e.sessionId),c=(0,l.useAppStore)(e=>e.agentId),u=(0,l.useAppStore)(e=>e.agentConfig),d=(0,l.useAppStore)(e=>e.setStatus),m=(0,l.useAppStore)(e=>e.setBridgeReady),f=(0,l.useAppStore)(e=>e.bridgeReady),x=(0,l.useAppStore)(e=>e.wsConnected),v=(0,r.useCallback)(e=>{x&&(m(!1),d("正在重启 session 子进程…","working"),null==s||s(e))},[s,m,d,x]),b=(0,r.useRef)({LLM_PROVIDER_ID:"",LLM_MODEL:"",WS_PERMISSION_MODE:"",WS_ALLOW_TOOL_ASK:""}),y=(0,r.useRef)(null),j=(0,r.useRef)(null),w=(0,r.useRef)(tv(u,b.current)),[S,N]=(0,r.useState)(()=>tv(u,b.current)),k=(0,r.useCallback)(()=>{w.current=tv(l.useAppStore.getState().agentConfig,b.current)},[]),A=(0,r.useCallback)(async()=>{let e=l.useAppStore.getState().agentId.trim()||"qihoo";try{let t=await (0,g.loadSystemEnv)(i,a,e),n="string"==typeof t.content?t.content:"";b.current=function(e){var t,n,r,s;let l=(0,h.parseEnvContentToMap)(e);return{LLM_PROVIDER_ID:(null!=(t=l[to.LLM_PROVIDER_ID_KEY])?t:"").trim(),LLM_MODEL:(null!=(n=l[to.LLM_MODEL_KEY])?n:"").trim(),WS_PERMISSION_MODE:(null!=(r=l[to.WS_PERMISSION_MODE_KEY])?r:"").trim(),WS_ALLOW_TOOL_ASK:(null!=(s=l[to.WS_ALLOW_TOOL_ASK_KEY])?s:"").trim()}}(n)}catch(e){}k()},[a,k,i]),_=(0,r.useCallback)(()=>{k(),N(w.current)},[k]),C=(0,r.useCallback)(e=>{N(e)},[]),E=(0,r.useCallback)(async()=>{let e=o.trim(),t=c.trim()||"qihoo";if(!e)return void _();k();try{let n=await (0,tb.loadSessionOverrides)(i,a,t,e),r=n.overrides&&"object"==typeof n.overrides?n.overrides:{},s=r.env&&"object"==typeof r.env?Object.fromEntries(Object.entries(r.env).map(e=>{let[t,n]=e;return[String(t),String(n)]})):{};C(function(e,t){let n="string"==typeof e[to.LLM_PROVIDER_ID_KEY]?String(e[to.LLM_PROVIDER_ID_KEY]).trim():t.providerId,r="string"==typeof e[to.LLM_MODEL_KEY]?String(e[to.LLM_MODEL_KEY]).trim():t.model,s=th(e[to.WS_PERMISSION_MODE_KEY])||t.env[to.WS_PERMISSION_MODE_KEY],l=tx("string"==typeof e[to.WS_ALLOW_TOOL_ASK_KEY]?e[to.WS_ALLOW_TOOL_ASK_KEY]:t.env[to.WS_ALLOW_TOOL_ASK_KEY],t.env[to.WS_ALLOW_TOOL_ASK_KEY]);return{providerId:n,model:r,env:{[to.WS_PERMISSION_MODE_KEY]:s,[to.WS_ALLOW_TOOL_ASK_KEY]:l}}}(s,w.current))}catch(e){_()}},[c,a,k,C,_,o,i]),M=(0,r.useCallback)(async e=>{var t,n;let r=!!(null==e?void 0:e.silent),s=o.trim(),l=c.trim()||"qihoo";k();let u=function(e,t){let n="string"==typeof e.providerId?e.providerId.trim():t.providerId.trim(),r="string"==typeof e.model?e.model.trim():t.model.trim(),s=e.env,l=t.env;return{env:{[to.LLM_PROVIDER_ID_KEY]:n,[to.LLM_MODEL_KEY]:r,[to.WS_PERMISSION_MODE_KEY]:th(s[to.WS_PERMISSION_MODE_KEY])||l[to.WS_PERMISSION_MODE_KEY],[to.WS_ALLOW_TOOL_ASK_KEY]:tx(s[to.WS_ALLOW_TOOL_ASK_KEY],l[to.WS_ALLOW_TOOL_ASK_KEY])}}}(null!=(t=null==e?void 0:e.state)?t:S,w.current);if(!s)return y.current=u,r||d("已暂存 session overrides,待 session 建立后落盘",(0,p.resolveInfoStatusClass)(f,x)),!0;y.current=null;try{return await (0,tb.saveSessionOverrides)(i,a,l,s,u),x?v(null!=(n=null==e?void 0:e.reason)?n:"persist-session-overrides"):r||d("session overrides 已保存",(0,p.resolveInfoStatusClass)(f,x)),!0}catch(e){return d("保存 session overrides 失败:".concat(e instanceof Error?e.message:String(e)),"err"),!1}},[c,a,f,k,v,o,S,d,x,i]),I=(0,r.useCallback)(async()=>{let e=y.current;if(!e)return void await E();let t=o.trim(),n=c.trim()||"qihoo";if(t){y.current=null;try{await (0,tb.saveSessionOverrides)(i,a,n,t,e),x?v("persist-session-overrides-pending"):d("session overrides 已落盘",(0,p.resolveInfoStatusClass)(f,x)),await E()}catch(e){l.useAppStore.getState().appendLog("session-overrides","flush pending failed: ".concat(e instanceof Error?e.message:String(e)))}}},[c,a,f,E,v,o,d,x,i]),T=(0,r.useCallback)(async(e,t)=>{let n=e.trim(),r=n?(null!=t?t:S.providerId).trim():"";if(n===(S.model||"").trim()&&r===(S.providerId||"").trim())return!0;let s={...S,providerId:r,model:n};if(N(s),n)try{let e=window.localStorage.getItem(ty),t=e?JSON.parse(e):[],r=(Array.isArray(t)?t.filter(e=>"string"==typeof e&&e.trim().length>0):[]).map(e=>e.trim()).filter(e=>e!==n);r.unshift(n),window.localStorage.setItem(ty,JSON.stringify(r.slice(0,12)))}catch(e){}return M({silent:!0,state:s})},[M,S]),O=(0,r.useCallback)((e,t)=>{var n;let r=(null!=(n=j.current)?n:Promise.resolve(!0)).then(()=>T(e,t)).finally(()=>{j.current===r&&(j.current=null)});return j.current=r,r},[T]),R=(0,r.useCallback)(e=>{N(t=>({...t,model:e}))},[]),L=(0,r.useCallback)(e=>{N(t=>({...t,providerId:e}))},[]),D=(0,r.useCallback)(e=>{let t={...S,env:{...S.env,[to.WS_ALLOW_TOOL_ASK_KEY]:e}};N(t),M({silent:!0,state:t})},[M,S]),W=(0,r.useCallback)(e=>{let t=th(e===to.PERMISSION_MODE_EMPTY_SENTINEL?"":e)||"default",n={...S,env:{...S.env,[to.WS_PERMISSION_MODE_KEY]:t}};N(n),M({silent:!0,state:n})},[M,S]);return(0,r.useEffect)(()=>{A()},[A,c]),(0,r.useEffect)(()=>{k(),o.trim()||N(w.current)},[u,k,o]),(0,r.useEffect)(()=>(k(),o.trim())?y.current?void I():void E():void A().then(()=>_()),[c,I,A,E,k,_,o]),{sessionOverrideState:S,setSessionModel:R,setSessionProviderId:L,setAllowToolAsk:D,setPermissionModeFromSelect:W,commitSessionModel:T,enqueueModelCommit:O,persistFromState:M,resetToDefaults:_,modelInputTitle:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=e.trim(),r=t.trim();return n?"session 级模型覆盖(服务商 · 模型):".concat(r?"".concat(r," · "):"").concat(n):"留空=跟随默认服务商与模型"}(S.model,S.providerId),allowToolAskTitle:"1"===S.env[to.WS_ALLOW_TOOL_ASK_KEY]?"已设置 WS_ALLOW_TOOL_ASK=1(ask 将自动通过)":"已设置 WS_ALLOW_TOOL_ASK=0(ask 需手动确认)",permissionModeTitle:(e=S.env[to.WS_PERMISSION_MODE_KEY])&&"default"!==e?"已设置 WS_PERMISSION_MODE=".concat(e):"未设置 WS_PERMISSION_MODE(默认)",permissionModeSelectValue:(t=S.env[to.WS_PERMISSION_MODE_KEY])&&"default"!==t?t:to.PERMISSION_MODE_EMPTY_SENTINEL,allowToolAsk:S.env[to.WS_ALLOW_TOOL_ASK_KEY],permissionMode:S.env[to.WS_PERMISSION_MODE_KEY],sessionModel:S.model,sessionProviderId:S.providerId,flushPendingIfAny:I,pendingModelPersistRef:j}}({onRestartSubprocess:u}),E=(0,s.useRouter)(),M=(0,s.useSearchParams)(),[I,T]=(0,r.useState)(""),[O,R]=(0,r.useState)(!1),[L,D]=(0,r.useState)(!1),[W,z]=(0,r.useState)(""),[P,F]=(0,r.useState)([]),[K,B]=(0,r.useState)(!1),[U,q]=(0,r.useState)([]),[H,V]=(0,r.useState)(!1),[J,Q]=(0,r.useState)(-1),[X,G]=(0,r.useState)([]),[Z,$]=(0,r.useState)(""),[ee,et]=(0,r.useState)(0),[en,er]=(0,r.useState)(0),es=(0,r.useRef)(null),el=(0,r.useRef)(null),ei=(0,r.useRef)(null),ea=(0,r.useRef)(!1),eo=(0,r.useRef)(!1),ec=(0,r.useRef)(null),[eu,ed]=(0,r.useState)(!1),[em,ep]=(0,r.useState)([]),[ef,eh]=(0,r.useState)([]),[eg,ex]=(0,r.useState)(!1),ev=(0,r.useRef)(0),[eb,ey]=(0,r.useState)(""),ej=(0,l.useAppStore)(e=>e.wsUrl),ew=(0,l.useAppStore)(e=>e.apiBase),eS=(0,l.useAppStore)(e=>e.sessionId),eN=(0,l.useAppStore)(e=>e.agentId),ek=(0,l.useAppStore)(e=>e.bridgeReady),eA=(0,l.useAppStore)(e=>e.wsConnected),e_=(0,l.useAppStore)(e=>e.statusText),eC=(0,l.useAppStore)(e=>e.apiErrorState),eE=(0,l.useAppStore)(e=>e.resetApiErrorState),eM=(0,l.useAppStore)(e=>e.sessionViewMode),eI=(0,l.useAppStore)(e=>e.sessionContextPercent),eT=(0,l.useAppStore)(e=>e.setSessionViewMode),eO=(0,l.useAppStore)(e=>e.setPendingHistoryRefresh),eR=I.trim().length>0||ef.length>0,eL=!eA||!ek||!eR,eD=(0,r.useCallback)((e,t)=>{c.appToast[t](e,{duration:2e3})},[]),eW=()=>{let e=es.current;if(!e)return;e.style.height="auto";let t=Math.min(e.scrollHeight,200);e.style.height="".concat(t,"px"),e.style.overflowY=e.scrollHeight>200?"auto":"hidden"},ez=(0,r.useCallback)(async e=>{let t=eN.trim();if(!t)return void eD("上传失败: 未选择 Agent","error");ed(!0);let n=Array.from(e),r=n.map(e=>({id:tE(),name:e.name,size:e.size,progress:12})),s=new Set(r.map(e=>e.id));ep(e=>[...e,...r]);try{let e=[];for(let[s,l]of n.entries()){let n=r[s];ep(e=>e.map(e=>e.id===n.id?{...e,progress:70}:e));let i=await (0,t_.uploadWorkspaceFile)(ej,ew,t,l);ep(e=>e.map(e=>e.id===n.id?{...e,progress:96}:e)),await tM(),e.push({path:i.path,name:l.name,size:l.size})}eh(t=>[...t,...e.map(e=>({id:tE(),...e}))]),ep(e=>e.filter(e=>!s.has(e.id))),window.setTimeout(()=>{var e;eW(),null==(e=es.current)||e.focus()},0)}catch(e){ep(e=>e.filter(e=>!s.has(e.id))),eD("上传失败: ".concat(e instanceof Error?e.message:String(e)),"error")}finally{ed(!1)}},[eN,ew,eD,ej]);(0,r.useEffect)(()=>{let e=e=>{var t;(null==(t=e.dataTransfer)?void 0:t.types.includes("Files"))&&(e.preventDefault(),ev.current+=1,1===ev.current&&ex(!0))},t=()=>{ev.current-=1,0===ev.current&&ex(!1)},n=e=>{var t;(null==(t=e.dataTransfer)?void 0:t.types.includes("Files"))&&e.preventDefault()},r=e=>{var t;e.preventDefault(),ev.current=0,ex(!1);let n=null==(t=e.dataTransfer)?void 0:t.files;(null==n?void 0:n.length)&&ez(n)};return document.addEventListener("dragenter",e),document.addEventListener("dragleave",t),document.addEventListener("dragover",n),document.addEventListener("drop",r),()=>{document.removeEventListener("dragenter",e),document.removeEventListener("dragleave",t),document.removeEventListener("dragover",n),document.removeEventListener("drop",r)}},[ez]);let eP=(0,r.useCallback)(async e=>{let t=eN.trim(),n=ef.find(t=>t.id===e);if(n){if(!t)return void eD("删除失败: 未选择 Agent","error");try{await (0,t_.deleteRepoFile)(ej,ew,t,n.path);let r=n.path.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=RegExp('@(?:"workspace/'.concat(r,'"|workspace/').concat(r,")\\s?"),"g");T(e=>e.replace(s,"").trimEnd()+(e.trim()?" ":"")),eh(t=>t.filter(t=>t.id!==e))}catch(e){eD("删除失败: ".concat(e instanceof Error?e.message:String(e)),"error")}}},[eN,ew,eD,ef,ej]),eF=(0,r.useCallback)(async e=>{let t=e.target.files;(null==t?void 0:t.length)&&(await ez(t),e.target&&(e.target.value=""))},[ez]),eK=(0,r.useCallback)(e=>{var t;let n=(0,tC.classifyPasteItems)(null==(t=e.nativeEvent.clipboardData)?void 0:t.items);"files"===n.kind&&(e.preventDefault(),n.files.length&&ez(n.files))},[ez]),eB=async()=>{if(!eL&&(!y.current||await y.current))"draft"===eM&&(eT("history"),eO(!0)),t([I.trim(),ef.map(e=>(function(e){let t="workspace/"+String(e||"").replace(/^\/+/,"");return/\s/.test(t)?'@"'.concat(t,'"'):"@".concat(t)})(e.path)).join(" ")].filter(Boolean).join(" ")),T(""),eh([]),B(!0)},eY=(0,r.useCallback)(async function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=Date.now();if(!e&&U.length>0&&t-ee<3e4)return U;et(t);try{let e=await (0,e4.get)((0,e3.buildModelsApiUrl)(ej,ew,eN.trim()||"qihoo")),t=Array.isArray(e.providers)?e.providers:[],n=[];for(let e=0;e<t.length;e++){let r=t[e],s="string"==typeof r.id?r.id.trim():"",l=Array.isArray(r.models)?r.models:[];for(let e=0;e<l.length;e++){let t=l[e],r="string"==typeof(null==t?void 0:t.id)?t.id.trim():"";if(!r)continue;let i="string"==typeof(null==t?void 0:t.name)&&t.name.trim()||"string"==typeof(null==t?void 0:t.label)&&t.label.trim()||"string"==typeof(null==t?void 0:t.displayName)&&t.displayName.trim()||r,a="string"==typeof(null==t?void 0:t.description)&&t.description.trim()||"string"==typeof(null==t?void 0:t.desc)&&t.desc.trim()||void 0;n.push({providerId:s,id:r,name:i,description:a})}}return q(n),n}catch(e){return q([]),[]}},[eN,ew,U,ee,ej]),eU=(0,r.useRef)(eY);eU.current=eY;let eq=(0,r.useCallback)(e=>tI(U,e),[U]),eH=(0,r.useCallback)(()=>{V(!1),G([]),Q(-1),$("")},[]),eV=(0,r.useCallback)((e,t)=>{eY(t).then(t=>{let n=tI(t,e);G(n),Q(n.length?0:-1),V(!0)})},[eY]),eJ=(0,r.useCallback)(()=>{var e,t;let n=null!=(t=null==(e=(0,e7.getManageRoute)("env"))?void 0:e.href)?t:"/manage/env";E.push((0,e9.buildAppNavHref)(n,{ensureAgent:!0,agent:eN.trim()||"qihoo"},M))},[eN,E,M]),eQ=(0,r.useCallback)(()=>{let e=eb.trim();if(!e){d(""),m(""),ey(""),b("","");return}let t=U.filter(t=>t.id===e),n=C.trim();if(1===t.length)n=t[0].providerId;else if(!(t.length>1))return void c.appToast.error("模型 ID 未配置:".concat(e));else if(!(n&&t.some(e=>e.providerId===n)))return void c.appToast.error("该模型 ID 在多个服务商中重复,请从下拉列表选择完整项(服务商 · 模型)。");d(e),m(n),ey(e),b(e,n)},[U,b,eb,C,d,m]),eX=(0,r.useCallback)(e=>{let t=el.current;if(!t)return;let n=eq("string"==typeof e?e:t.value);G(n),Q(n.length?0:-1),V(!0)},[eq]),eG=(0,r.useCallback)(()=>{let e=J<0||J>=X.length?0:J,t=X[e];t&&(d(t.id),m(t.providerId),ey(t.id),eH(),b(t.id,t.providerId))},[b,eH,J,X,d,m]),eZ=_.trim(),e$=C.trim();(0,r.useEffect)(()=>{eo.current||ey(_.trim())},[_]),(0,r.useEffect)(()=>{if(!eA)return void B(!1);(e_.includes("本轮结束")||e_.startsWith("错误"))&&B(!1)},[eA,e_]),(0,r.useEffect)(()=>{eW()},[I]),(0,r.useEffect)(()=>{T(""),eh([]),es.current&&(es.current.style.height="auto",es.current.style.overflowY="hidden")},[eS,eM]),(0,r.useEffect)(()=>{q([]),et(0),V(!1),G([]),Q(-1),eU.current(!0)},[eN]),(0,r.useEffect)(()=>{if(!H)return;let e=e=>{var t;let n=e.target;n&&(null==(t=ei.current)?void 0:t.contains(n))||eH()};return document.addEventListener("click",e,!0),()=>{document.removeEventListener("click",e,!0)}},[eH,H]),(0,r.useEffect)(()=>{var e;if(!H||J<0)return;let t=null==(e=ei.current)?void 0:e.querySelector("#composerModelSuggestions"),n=null==t?void 0:t.querySelector("li.is-active");n&&"function"==typeof n.scrollIntoView&&n.scrollIntoView({block:"nearest"})},[J,H]),(0,r.useEffect)(()=>{if("retrying"!==eC.phase)return void er(0);let e=()=>{er(Math.ceil(Math.max(0,eC.retryUntilTs-Date.now())/1e3))};e();let t=window.setInterval(e,250);return()=>{window.clearInterval(t)}},[eC.phase,eC.retryUntilTs]);let e0=(0,r.useCallback)(async()=>{let e=eS.trim();if(!e){F([]),R(!1);return}let t=eN.trim()||"qihoo";R(!1),D(!0),z(""),F([]);try{let n=await (0,tb.listWorkspaceFiles)(ej,ew,t,e),r=(Array.isArray(n.files)?n.files:[]).filter(e=>"string"==typeof e.path&&e.path.length>0).map(e=>({path:e.path,name:"string"==typeof e.name?e.name:void 0,size:"number"==typeof e.size?e.size:void 0,mtimeMs:"number"==typeof e.mtimeMs?e.mtimeMs:void 0})).filter(e=>e.path.includes("tool-results"));F(r)}catch(e){z("加载失败:".concat(e instanceof Error?e.message:String(e))),F([])}finally{D(!1)}},[eN,ew,eS,ej]);(0,r.useEffect)(()=>{if("draft"===eM){F([]),R(!1);return}e0()},[e0,eM]);let e1=eC.maxRetries>0?Math.min(100,Math.max(0,eC.retryAttempt/eC.maxRetries*100)):0;return(0,n.jsxs)("div",{className:"composer",children:[eg?(0,n.jsx)(tA,{}):null,(0,n.jsxs)("div",{className:"composer-inner mx-auto max-w-[840px] ".concat("draft"===eM?"is-draft-session":""),children:[P.length>0?(0,n.jsxs)("div",{className:["composer-tool-files-inline",O?"is-expanded":""].filter(Boolean).join(" "),onMouseEnter:()=>R(!0),onMouseLeave:()=>R(!1),children:[(0,n.jsxs)("div",{className:"composer-tool-files-inline-head",children:[(0,n.jsx)("span",{className:["composer-tool-files-inline-chevron",O?"is-expanded":""].filter(Boolean).join(" "),children:(0,n.jsx)(v.default,{name:"ChevronRight",size:16,className:"text-[var(--ds-muted)]",strokeWidth:1})}),(0,n.jsx)("span",{className:"composer-tool-files-inline-title text-[var(--ds-muted)]",children:"下载文件 · ".concat(P.length," 个")}),L?(0,n.jsx)("span",{className:"composer-tool-files-inline-loading",children:"加载中..."}):null]}),(0,n.jsx)("div",{className:"composer-tool-files-inline-panel-wrap",children:(0,n.jsx)("div",{className:"composer-tool-files-inline-panel-inner",children:(0,n.jsx)("div",{className:"composer-tool-files-inline-panel",children:L?(0,n.jsx)("div",{className:"composer-tool-files-inline-state",children:"正在获取文件列表…"}):W?(0,n.jsx)("div",{className:"composer-tool-files-inline-state is-error",children:W}):0===P.length?(0,n.jsx)("div",{className:"composer-tool-files-inline-state",children:"暂无 tool-results 文件"}):(0,n.jsx)("div",{className:"composer-tool-files-inline-list",children:P.map(e=>{let t=e.name||e.path.split("/").pop()||e.path;return(0,n.jsxs)("div",{className:"composer-tool-files-inline-item",children:[(0,n.jsxs)("div",{className:"composer-tool-files-inline-main",children:[(0,n.jsx)("div",{className:"composer-tool-files-inline-name text-sm",title:e.path,children:t}),(0,n.jsx)("div",{className:"composer-tool-files-inline-size text-[var(--ds-muted)]",children:(0,tC.formatBytes)(e.size)})]}),(0,n.jsx)("a",{href:(0,e3.buildWorkspaceFileDownloadUrl)(ej,ew,eN.trim()||"qihoo",e.path),download:!0,target:"_blank",rel:"noopener noreferrer",className:"composer-tool-files-inline-download","aria-label":"下载 ".concat(t),title:"下载 ".concat(t),children:(0,n.jsx)(v.default,{name:"Download",size:14,className:"!text-[var(--ds-text)]",strokeWidth:1})})]},e.path)})})})})})]}):null,"draft"===eM?(0,n.jsxs)("div",{className:"composer-draft-hero mb-4 text-center",children:[(0,n.jsx)("div",{className:"composer-draft-title",children:"欢迎回来"}),(0,n.jsx)("div",{className:"composer-draft-shortcuts mt-4 flex flex-wrap justify-center gap-2",children:tC.DRAFT_SHORTCUTS.map(e=>(0,n.jsx)("button",{type:"button",className:"composer-draft-pill",onClick:()=>{var t;T(e.text),window.setTimeout(()=>eW(),0),null==(t=es.current)||t.focus()},children:e.label},e.label))})]}):null,(0,n.jsxs)("div",{className:"composer-card ds-soft-shadow ".concat("draft"===eM?"is-draft-session":""),children:["retrying"===eC.phase?(0,n.jsxs)("div",{className:"api-retry-banner mt-2",role:"status","aria-live":"polite",children:[(0,n.jsx)("div",{className:"api-retry-banner-text",children:"网络波动,正在重连 ".concat(en,"s... (").concat(eC.retryAttempt,"/").concat(eC.maxRetries,")")}),(0,n.jsx)("div",{className:"api-retry-banner-progress",children:(0,n.jsx)("span",{style:{width:"".concat(e1,"%")}})})]}):null,"failed"===eC.phase?(0,n.jsxs)("div",{className:"api-retry-failed mt-2",role:"alert",children:[(0,n.jsx)("div",{className:"api-retry-failed-text",children:"服务暂时不可用,请稍后重试"}),(0,n.jsx)("button",{type:"button",className:"api-retry-failed-btn",onClick:()=>{eE(),null==a||a()},children:"重试"})]}):null,(em.length>0||ef.length>0)&&(0,n.jsxs)("div",{className:"mt-2 flex flex-wrap gap-3",children:[ef.map(e=>(0,n.jsxs)("div",{className:"group relative flex items-center gap-1.5 rounded-md border border-solid border-[color:var(--ds-color-border-default)] bg-[var(--ds-surface)] px-2 py-1 pr-5 text-xs text-[var(--ds-text)] transition-shadow hover:shadow-[var(--shadow-sm)]",children:[(0,n.jsx)(v.default,{name:"FileText",size:16,className:"shrink-0 text-[var(--ds-muted)]",strokeWidth:1}),(0,n.jsxs)("div",{className:"flex min-w-0 flex-col",children:[(0,n.jsx)("span",{className:"block max-w-[160px] truncate",title:e.name,children:e.name}),(0,n.jsx)("span",{className:"text-[var(--ds-muted)]",children:(0,tC.formatBytes)(e.size)})]}),(0,n.jsx)(Y.Button,{type:"button",variant:"plain",size:"icon",className:"pointer-events-none absolute -right-1.5 -top-1.5 !h-[18px] !w-[18px] min-w-[18px] rounded-full border border-solid border-[color:var(--ds-color-border-default)] bg-white !p-0 !pl-0 !pr-0 opacity-0 transition-[background-color,opacity] hover:bg-[var(--ds-color-surface-main-tint)] group-hover:pointer-events-auto group-hover:opacity-100","aria-label":"移除 ".concat(e.name),onClick:()=>eP(e.id),children:(0,n.jsx)(v.default,{name:"X",size:12})})]},e.id)),em.map(e=>(0,n.jsxs)("div",{className:"relative flex w-fit min-w-[180px] items-center gap-1.5 rounded-md border border-solid border-[color:var(--ds-color-border-default)] bg-[var(--ds-surface)] px-2 py-1 text-xs text-[var(--ds-text)]",children:[(0,n.jsx)("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-[var(--surface-2)]",children:e.progress<100?(0,n.jsx)(te,{value:e.progress,size:18,strokeWidth:2,trackColor:"var(--surface-6)",indicatorColor:"var(--ds-color-surface-default)","aria-label":"".concat(e.name," 上传进度 ").concat(e.progress,"%")}):(0,n.jsx)(v.default,{name:"FileText",size:16,className:"shrink-0 text-[var(--ds-muted)]",strokeWidth:1})}),(0,n.jsxs)("div",{className:"flex min-w-0 flex-col",children:[(0,n.jsx)("span",{className:"block max-w-[120px] truncate",title:e.name,children:e.name}),(0,n.jsx)("span",{className:"text-[var(--ds-muted)]",children:(0,tC.formatBytes)(e.size)})]})]},e.id))]}),(0,n.jsx)("div",{className:"composer-input-shell mt-2",children:(0,n.jsx)(tt.Textarea,{ref:es,id:"prompt",className:"min-h-0 w-full rounded-none border-0 bg-transparent px-1 py-1 !text-base shadow-none outline-none transition-none hover:!border-0 hover:!shadow-none focus:!border-0 focus:!shadow-none focus:!outline-none focus-visible:!border-0 focus-visible:!shadow-none focus-visible:!outline-none focus-visible:![box-shadow:none]",placeholder:"请输入你的问题",value:I,onChange:e=>T(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),eB())},onPaste:eK})}),(0,n.jsxs)("div",{className:"mt-3 flex items-center justify-between gap-2",children:[(0,n.jsxs)("div",{className:"composer-tools-left flex items-center !justify-start gap-2",children:[(0,n.jsx)("input",{type:"file",ref:ec,className:"hidden",multiple:!0,accept:"*/*",onChange:eF}),(0,n.jsx)(ta.IconTooltipButton,{icon:"Create",label:"添加文件等",disabled:eu,onClick:()=>{var e;return null==(e=ec.current)?void 0:e.click()},className:["h-8 w-8 text-[var(--ds-muted)] hover:bg-[var(--ds-color-surface-main-tint)] hover:text-[var(--ds-text)]",eu?"is-busy":""].filter(Boolean).join(" ")}),(0,n.jsxs)("div",{className:"composer-model-field",id:"composerModelField",ref:ei,children:[(0,n.jsx)(e8.Input,{ref:el,type:"text",id:"composerModelInput",className:"composer-model-input",placeholder:"模型 ID(如 anthropic/claude-3.5-haiku)",spellCheck:!1,autoComplete:"off","aria-label":"模型","aria-autocomplete":"list","aria-controls":"composerModelSuggestions","aria-expanded":H,title:j,value:eb,onFocus:()=>{eo.current=!0,$(""),eV("",!1)},onClick:()=>{$(""),eX("")},onChange:e=>{let t=e.target.value;ey(t),d(t),$(t),eX(t)},onKeyDown:e=>{if("ArrowDown"===e.key)return(e.preventDefault(),H)?void(X.length&&Q(e=>e<0||e+1>=X.length?0:e+1)):void eX("");if("ArrowUp"===e.key){if(!H||!X.length)return;e.preventDefault(),Q(e=>e<0?0:e-1<0?X.length-1:e-1);return}if("Escape"===e.key){if(!H)return;e.preventDefault(),eH();return}if("Enter"===e.key){if(H&&X.length){e.preventDefault(),eG();return}e.preventDefault(),eH(),eQ()}},onBlur:e=>{var t;let n=e.relatedTarget;!(n&&(null==(t=ei.current)?void 0:t.contains(n)))&&(ea.current||(eo.current=!1,eH(),eQ()))}}),(0,n.jsx)(S.TooltipProvider,{delayDuration:200,children:(0,n.jsxs)("div",{id:"composerModelSuggestions",className:"composer-model-suggestions ".concat(H?"is-open":""),children:[(0,n.jsxs)("div",{className:"composer-model-search-field",children:[(0,n.jsx)(e8.Input,{type:"search",value:Z,onChange:e=>{let t=e.target.value,n=tI(U,t);$(t),G(n),Q(n.length?0:-1)},onBlur:e=>{var t;let n=e.relatedTarget;n&&(null==(t=ei.current)?void 0:t.contains(n))||(eo.current=!1,eH())},onKeyDown:e=>{if("ArrowDown"===e.key){if(e.preventDefault(),!X.length)return;Q(e=>e<0||e+1>=X.length?0:e+1);return}if("ArrowUp"===e.key){if(e.preventDefault(),!X.length)return;Q(e=>e<0?0:e-1<0?X.length-1:e-1);return}if("Enter"===e.key){if(!X.length)return;e.preventDefault(),eG();return}"Escape"===e.key&&(e.preventDefault(),eH())},placeholder:"搜索模型名称或模型ID",className:"composer-model-search-input","aria-label":"搜索模型"}),(0,n.jsx)(v.default,{name:"Search",size:16,className:"composer-model-search-icon"})]}),(0,n.jsx)("ul",{className:"composer-model-list",role:"listbox","aria-label":"模型候选",children:X.length?X.map((e,t)=>(0,n.jsx)(tw,{providerId:e.providerId,modelId:e.id,name:e.name,description:e.description,isActive:t===J,isCommitted:e.id===eZ&&(!e$||e.providerId===e$),onHover:()=>Q(t),onSelect:()=>{ea.current=!0,eH(),d(e.id),m(e.providerId),ey(e.id),b(e.id,e.providerId),window.setTimeout(()=>{ea.current=!1,eo.current=!1},0)}},"".concat(e.providerId,"::").concat(e.id))):(0,n.jsx)("li",{className:"composer-model-suggest-empty",role:"presentation",children:"(无匹配,可直接输入完整模型 ID)"})}),(0,n.jsx)("div",{className:"composer-model-actions",children:(0,n.jsxs)(Y.Button,{type:"button",variant:"plain",size:"sm",className:"composer-model-action-link",onMouseDown:e=>e.preventDefault(),onClick:eJ,children:[(0,n.jsx)(v.default,{name:"Info",size:16}),"更多模型请前往",(0,n.jsx)("span",{children:"模型管理"})]})})]})})]}),(0,n.jsx)(ti,{id:"composerToolAskSelect",value:A,onValueChange:e=>{f("1"===e?"1":"0")},options:tm,ariaLabel:"工具确认模式",title:w,triggerClassName:"composer-allow-ask-select",placeholderLabel:"自动"}),(0,n.jsx)(ti,{id:"composerModeSelect",value:k,onValueChange:x,options:tc,ariaLabel:"执行权限",title:N,triggerClassName:"composer-mode-select",placeholderLabel:"默认模式",toSelectItemValue:tu,fromSelectItemValue:td})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:["draft"!==eM?(0,n.jsx)(tS,{percent:eI}):null,K?(0,n.jsx)("button",{type:"button",className:"btn-send-circle composer-icon-btn bg-gray-800",style:{backgroundColor:"#efefef",boxShadow:"none",color:"#8f8f8f"},disabled:!eA,onClick:i,"aria-label":"中断",title:"中断",children:(0,n.jsx)(v.default,{name:"Stop",size:16})}):(0,n.jsx)("button",{type:"button",className:"btn-send-circle",disabled:eL,title:"发送","aria-label":"发送",onClick:eB,children:(0,n.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",viewBox:"0 0 256 256",children:(0,n.jsx)("path",{d:"M208.49,120.49a12,12,0,0,1-17,0L140,69V216a12,12,0,0,1-24,0V69L64.49,120.49a12,12,0,0,1-17-17l72-72a12,12,0,0,1,17,0l72,72A12,12,0,0,1,208.49,120.49Z"})})})]})]})]}),(0,n.jsx)("p",{className:"page-footer-note ".concat("draft"===eM?"":"page-footer-note--compact"),children:"本页仅供本地联调;模型与工具输出请自行甄别。"})]})]})}function tO(){let e=(0,l.useAppStore)(e=>e.rawLog),[t,s]=(0,r.useState)(!1),i=(0,r.useRef)(null);(0,r.useEffect)(()=>()=>{null!=i.current&&window.clearTimeout(i.current)},[]);let a=(0,r.useCallback)(()=>{if(!e.trim())return void c.appToast.error("暂无日志可复制");("undefined"!=typeof navigator&&navigator.clipboard&&"function"==typeof navigator.clipboard.writeText?navigator.clipboard.writeText(e):"undefined"==typeof document?Promise.reject(Error("Clipboard unavailable")):new Promise((t,n)=>{let r=document.createElement("textarea");r.value=e,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 t();n(Error("Clipboard copy failed"))})).then(()=>{s(!0),null!=i.current&&window.clearTimeout(i.current),i.current=window.setTimeout(()=>s(!1),1400)},()=>{c.appToast.error("复制失败,请手动选择复制")})},[e]);return(0,n.jsxs)("details",{className:"raw-log-drawer",id:"rawLogDrawer",children:[(0,n.jsxs)("summary",{className:"raw-log-summary",children:[(0,n.jsx)("span",{children:"原始下行日志(JSON)"}),(0,n.jsx)("span",{className:"raw-log-chevron","aria-hidden":!0,children:"▼"})]}),(0,n.jsxs)("div",{className:"raw-log-body",children:[(0,n.jsx)("div",{className:"flex shrink-0 items-center justify-end border-b border-[var(--ds-color-border-default)] px-3 py-1.5",children:(0,n.jsx)(ta.IconTooltipButton,{icon:t?"Check":"Copy",label:t?"已复制":"复制全部日志",ariaLabel:t?"已复制全部日志":"复制全部日志",disabled:!e.trim(),onClick:a})}),(0,n.jsx)("pre",{id:"log",children:e})]})]})}let tR=/^[A-Za-z0-9_-]{1,128}$/;function tL(){let e=(0,s.useSearchParams)(),t=(0,l.useAppStore)(e=>e.wsUrl),u=(0,l.useAppStore)(e=>e.apiBase),m=(0,l.useAppStore)(e=>e.sessionId),h=(0,l.useAppStore)(e=>e.lastSessions),v=(0,l.useAppStore)(e=>e.statusText),b=(0,l.useAppStore)(e=>e.statusClass),y=(0,l.useAppStore)(e=>e.sessionViewMode),j=(0,l.useAppStore)(e=>e.pendingHistoryRefresh),w=(0,l.useAppStore)(e=>e.setAgentId),N=(0,l.useAppStore)(e=>e.setSessionId),k=(0,l.useAppStore)(e=>e.setSessionViewMode),A=(0,l.useAppStore)(e=>e.setPendingHistoryRefresh),_=(0,l.useAppStore)(e=>e.setMessages),{loadSessions:C,currentAgent:E}=(0,i.useSession)(),{reconnect:M,switchSession:I,sendPrompt:T,sendAbort:O,sendReloadAgentConfig:R}=(0,o.useWorkspaceRuntime)(),[L,D]=(0,r.useState)(!1),[W,z]=(0,r.useState)(""),[P,F]=(0,r.useState)(!1),[K,B]=(0,r.useState)(!1),[Y,U]=(0,r.useState)(!1),[q,H]=(0,r.useState)(!1),V=(0,r.useRef)(!1),J=(0,r.useRef)(!1);(0,r.useEffect)(()=>{var t,n;let r=e.get("agent");if((null==r?void 0:r.trim())&&w(r.trim()),V.current)return;V.current=!0;let s=null!=(n=null==(t=e.get("sessionId"))?void 0:t.trim())?n:"";tR.test(s)&&(N(s),k("history"),A(!1),I(s))},[e,w,N,k,A,I]),(0,r.useEffect)(()=>{var t;J.current||"single-message"===(null==(t=e.get("demo"))?void 0:t.trim())&&(J.current=!0,(0,g.loadDemoSingleMessage)().then(e=>{if("messages"!==e.type||!Array.isArray(e.messages))throw Error("single-message.json 结构不符合预期");k("history"),N("demo-single-message"),A(!1),_(e.messages)}).catch(e=>{J.current=!1,c.appToast.error("加载 demo 失败:".concat(String(e)))}))},[e,_,A,N,k]),(0,r.useEffect)(()=>{let e=m.trim(),t=v.includes("本轮结束")||v.startsWith("错误");j&&e&&t&&C().finally(()=>{l.useAppStore.getState().setPendingHistoryRefresh(!1)})},[j,m,v,C]);let Q=(0,r.useMemo)(()=>{if("draft"===y)return"开启新对话";let e=m.trim();if(!e)return"选择左侧会话或开启新对话";let t=h.find(t=>t.sessionId===e);if(t){let e=(0,a.sessionTitle)(t).trim();if(e&&"(无标题)"!==e)return e.length>72?"".concat(e.slice(0,69),"…"):e}return e},[h,m,y]),X=(0,r.useMemo)(()=>{if("draft"===y)return Q;let e=m.trim();if(!e)return Q;let t=h.find(t=>t.sessionId===e),n=[];return n.push("session:".concat(e)),t&&n.push((0,a.sessionTitle)(t)),n.join("\n")},[h,Q,m,y]),G="1"===String(e.get("dev")),Z=(0,r.useRef)(null),{control:$,bar:ee}=function(e){let{scrollContainerRef:t}=e,n=(0,l.useAppStore)(e=>e.turnRunning),s=(0,l.useAppStore)(e=>e.streamBuffer),i=(0,l.useAppStore)(e=>e.sessionId),[a,o]=(0,r.useState)(!0),[c,u]=(0,r.useState)("hidden"),[d,m]=(0,r.useState)(0),p=(0,r.useRef)(null),f=(0,r.useRef)(0),h=(0,r.useRef)(0),g=(0,r.useRef)(!0),x=(0,r.useRef)("hidden"),v=(0,r.useRef)(!1),b=(0,r.useRef)(null),y=(0,r.useRef)(null),j=(0,r.useRef)(0),w=(0,r.useRef)(n),S=(0,r.useRef)(i);(0,r.useEffect)(()=>{g.current=a},[a]),(0,r.useEffect)(()=>{x.current=c},[c]);let N=(0,r.useCallback)(()=>{v.current=!0,null!=b.current&&window.clearTimeout(b.current),b.current=window.setTimeout(()=>{v.current=!1,b.current=null},50)},[]),k=(0,r.useCallback)(function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"instant";N(),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"instant";e&&e.scrollIntoView({block:"end",behavior:t})}(p.current,e)},[N]),A=(0,r.useCallback)(()=>{g.current=!0,o(!0),u("hidden"),m(0),f.current=h.current},[]),_=(0,r.useCallback)(()=>{A()},[A]),C=(0,r.useCallback)(()=>{g.current&&(g.current=!1,f.current=h.current,o(!1),m(0),u(n||s.trim().length>0?"streaming":"idle"))},[s,n]),E=(0,r.useCallback)(()=>{A(),k("instant")},[A,k]),M=(0,r.useCallback)(()=>{A(),k("smooth")},[A,k]),I=(0,r.useCallback)(e=>{p.current=e},[]),T=(0,r.useCallback)(e=>{h.current=e,g.current||"streaming"!==x.current||m(Math.max(0,e-f.current))},[]);(0,r.useEffect)(()=>{i!==S.current&&(S.current=i,_())},[i,_]),(0,r.useEffect)(()=>{let e=w.current;if(w.current=n,!e&&n){_(),k("instant");return}!e||n||g.current||u(e=>"streaming"===e?"ended":e)},[n,_,k]),(0,r.useEffect)(()=>{let e=t.current;if(!e)return;let n=()=>{if(!v.current){if(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;return eE(e)<=t}(e)){g.current||A();return}eE(e)>=60&&C()}},r=t=>{v.current||t.deltaY>=-4||eM(e,t.target,t.deltaY)||C()},s=e=>{var t;let n=e.touches[0];y.current=null!=(t=null==n?void 0:n.clientY)?t:null,j.current=0},l=t=>{if(v.current||null==y.current)return;let n=t.touches[0];if(!n)return;let r=y.current-n.clientY;if(r<=0){j.current=0;return}!eM(e,t.target,r)&&(j.current+=r,y.current=n.clientY,j.current>=24&&C())},i=()=>{y.current=null,j.current=0};return e.addEventListener("scroll",n,{passive:!0}),e.addEventListener("wheel",r,{passive:!0}),e.addEventListener("touchstart",s,{passive:!0}),e.addEventListener("touchmove",l,{passive:!0}),e.addEventListener("touchend",i,{passive:!0}),e.addEventListener("touchcancel",i,{passive:!0}),()=>{e.removeEventListener("scroll",n),e.removeEventListener("wheel",r),e.removeEventListener("touchstart",s),e.removeEventListener("touchmove",l),e.removeEventListener("touchend",i),e.removeEventListener("touchcancel",i)}},[t,A,C]),(0,r.useEffect)(()=>()=>{null!=b.current&&window.clearTimeout(b.current)},[]);let O=!a&&("streaming"===c||"ended"===c),R=O&&"streaming"===c,L=O&&"ended"===c;return{control:{isFollowPinned:a,scrollToBottom:k,setEndAnchor:I,setContentUnitCount:T},bar:{visible:O,phase:c,pendingStepDelta:d,showResumeFollow:R,showViewFullAnswer:L,onResumeFollow:E,onViewFullAnswer:M}}}({scrollContainerRef:Z});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("header",{className:"main-header",children:(0,n.jsx)("div",{className:"main-header-top flex items-center justify-between gap-3",children:(0,n.jsxs)(S.TooltipProvider,{children:[(0,n.jsxs)("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:[(0,n.jsxs)(S.Tooltip,{children:[(0,n.jsx)(S.TooltipTrigger,{asChild:!0,children:(0,n.jsx)("h1",{id:"mainTitle",className:"min-w-0 max-w-full flex-1 truncate",children:"draft"!==y&&m.trim()&&Q===m.trim()?(0,a.shortUuidTitle)(m.trim()):Q})}),(0,n.jsx)(S.TooltipContent,{children:(0,n.jsx)("p",{className:"max-w-xs whitespace-pre-wrap break-all",children:X})})]}),(0,n.jsx)("div",{title:v,id:"status",className:"conn-status min-w-0 shrink-0 truncate text-xs ".concat(b),children:v})]}),(0,n.jsx)("div",{className:"flex shrink-0 items-center gap-1"})]})})}),"draft"===y?null:(0,n.jsxs)("div",{ref:Z,className:"main-scroll",children:[(0,n.jsxs)("div",{className:"main-body",children:[(0,n.jsx)(e5,{followControl:$}),G?(0,n.jsx)(tO,{}):null]}),(0,n.jsx)(e6,{...ee})]}),(0,n.jsx)(tT,{onSend:T,onAbort:O,onRetryConnection:M}),(0,n.jsx)(f,{open:K,onOpenChange:B,variant:"tools",wsUrl:t,apiBase:u,agent:E(),onNotifyReloadAgentConfig:R}),(0,n.jsx)(f,{open:Y,onOpenChange:U,variant:"mcp",wsUrl:t,apiBase:u,agent:E(),onNotifyReloadAgentConfig:R}),(0,n.jsx)(x,{open:q,onOpenChange:H,wsUrl:t,apiBase:u,agent:E()}),(0,n.jsx)(d.AppDialog,{open:L,onOpenChange:D,title:"编辑系统 mcp.json",footer:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("button",{type:"button",className:"btn-agent-md-cancel",onClick:()=>D(!1),children:"取消"}),(0,n.jsx)("button",{type:"button",className:"btn-primary",disabled:P,onClick:()=>{F(!0),(0,g.saveSystemMcpJson)(t,u,E(),W).then(()=>{l.useAppStore.getState().setStatus("系统 mcp.json 已保存",(0,p.resolveInfoStatusClass)(l.useAppStore.getState().bridgeReady,l.useAppStore.getState().wsConnected)),c.appToast.success("已保存系统 mcp.json。"),D(!1)}).catch(e=>{c.appToast.error("保存 mcp.json 失败:".concat(e instanceof Error?e.message:String(e)))}).finally(()=>{F(!1)})},children:"保存"})]}),children:(0,n.jsx)("textarea",{className:"agent-md-editor",spellCheck:!1,value:W,onChange:e=>z(e.target.value)})})]})}}]);