@kingsoftcloud/ksadk-web 0.2.13 → 0.2.14

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 (105) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist-ksadk/assets/{ArtifactsPanel-BXcrygCd.js → ArtifactsPanel-CxRqXeFB.js} +1 -1
  3. package/dist-ksadk/assets/{CodeBlock-BcCOwv3F.js → CodeBlock-B5bFiAKG.js} +1 -1
  4. package/dist-ksadk/assets/{MathMessageMarkdown-Drzttgxm.js → MathMessageMarkdown-Cakvv8ak.js} +1 -1
  5. package/dist-ksadk/assets/{MermaidBlock-mtRNvScL.js → MermaidBlock-DjmCTJrc.js} +6 -6
  6. package/dist-ksadk/assets/{NativeTerminalPanel-LnQxyAZB.js → NativeTerminalPanel-D-sZnV-D.js} +1 -1
  7. package/dist-ksadk/assets/{arc-tHdp8jQa.js → arc-dLUDly6v.js} +1 -1
  8. package/dist-ksadk/assets/architecture-7EHR7CIX-BR8hGnnI.js +1 -0
  9. package/dist-ksadk/assets/{architectureDiagram-3BPJPVTR-iz_Q1z15.js → architectureDiagram-3BPJPVTR-CXZJNk2O.js} +1 -1
  10. package/dist-ksadk/assets/{blockDiagram-GPEHLZMM-UGrJbhBA.js → blockDiagram-GPEHLZMM-C0A07SPB.js} +1 -1
  11. package/dist-ksadk/assets/{c4Diagram-AAUBKEIU-CXQpIgbq.js → c4Diagram-AAUBKEIU-Ci75QRd7.js} +1 -1
  12. package/dist-ksadk/assets/channel-CdDcmpAO.js +1 -0
  13. package/dist-ksadk/assets/{chunk-2J33WTMH-BALTkjHL.js → chunk-2J33WTMH-DBBOX5G_.js} +1 -1
  14. package/dist-ksadk/assets/{chunk-4BX2VUAB-ljiuFwa0.js → chunk-4BX2VUAB-BYyES0-U.js} +1 -1
  15. package/dist-ksadk/assets/{chunk-55IACEB6-CFNeHQBP.js → chunk-55IACEB6-X1wVcZov.js} +1 -1
  16. package/dist-ksadk/assets/{chunk-727SXJPM-C5E5qV45.js → chunk-727SXJPM-BcTjFgHJ.js} +1 -1
  17. package/dist-ksadk/assets/{chunk-AQP2D5EJ-qfoH6flS.js → chunk-AQP2D5EJ-Bg19U8CG.js} +1 -1
  18. package/dist-ksadk/assets/{chunk-FMBD7UC4-DigwjG9R.js → chunk-FMBD7UC4-DOdBG1VM.js} +1 -1
  19. package/dist-ksadk/assets/{chunk-ND2GUHAM-XNYKkHA-.js → chunk-ND2GUHAM-CZ7jcUkW.js} +1 -1
  20. package/dist-ksadk/assets/chunk-QZHKN3VN-BNqAy5Tp.js +1 -0
  21. package/dist-ksadk/assets/classDiagram-4FO5ZUOK-kJAwmk1I.js +1 -0
  22. package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-kJAwmk1I.js +1 -0
  23. package/dist-ksadk/assets/{cose-bilkent-S5V4N54A-DGqDRX9x.js → cose-bilkent-S5V4N54A-LImGWpXS.js} +1 -1
  24. package/dist-ksadk/assets/{dagre-BM42HDAG-CbbJ_rI4.js → dagre-BM42HDAG-LWSiyPO5.js} +1 -1
  25. package/dist-ksadk/assets/{diagram-2AECGRRQ-C8n-HBnY.js → diagram-2AECGRRQ-BYQ1-uMG.js} +1 -1
  26. package/dist-ksadk/assets/{diagram-5GNKFQAL-BIta1UbQ.js → diagram-5GNKFQAL-CoscR6zV.js} +1 -1
  27. package/dist-ksadk/assets/{diagram-KO2AKTUF-CK9z9G5J.js → diagram-KO2AKTUF-C_YHGeGz.js} +1 -1
  28. package/dist-ksadk/assets/{diagram-LMA3HP47-Be71txec.js → diagram-LMA3HP47-UA9S7eMh.js} +1 -1
  29. package/dist-ksadk/assets/{diagram-OG6HWLK6-DGFaZ5wp.js → diagram-OG6HWLK6-xb-BIxhQ.js} +1 -1
  30. package/dist-ksadk/assets/{dist-BW5Ld9f-.js → dist-BN67A8Jb.js} +1 -1
  31. package/dist-ksadk/assets/{dist-Db3ZLHDu.js → dist-BO_i3wTp.js} +1 -1
  32. package/dist-ksadk/assets/{dist-SfWTEVE-.js → dist-BSEaDmB3.js} +1 -1
  33. package/dist-ksadk/assets/{dist-CWYvp3zw.js → dist-BbOk8yab.js} +1 -1
  34. package/dist-ksadk/assets/{dist-DZH4wrvX.js → dist-C-SpQsj4.js} +1 -1
  35. package/dist-ksadk/assets/{dist-BhIBOiwD.js → dist-C3dfbJrb.js} +1 -1
  36. package/dist-ksadk/assets/{dist-DtQF0aK1.js → dist-C8_rGVba.js} +1 -1
  37. package/dist-ksadk/assets/{dist-oiCsxUDb.js → dist-CEVua9Eb.js} +1 -1
  38. package/dist-ksadk/assets/{dist-BiKbpujX.js → dist-CKJBIiBi.js} +1 -1
  39. package/dist-ksadk/assets/{dist-C5TwAg32.js → dist-CVudmOOm.js} +1 -1
  40. package/dist-ksadk/assets/{dist-C1w53MwT.js → dist-CdMMvfr6.js} +1 -1
  41. package/dist-ksadk/assets/{dist-CjOZLBw0.js → dist-CyKvrqPM.js} +1 -1
  42. package/dist-ksadk/assets/{dist-BKUR95NE.js → dist-DQLMpQHj.js} +1 -1
  43. package/dist-ksadk/assets/{dist-jXQ-bzWe.js → dist-DcvDWjsp.js} +1 -1
  44. package/dist-ksadk/assets/{dist-Da8ivwwd.js → dist-DhkdZMPd.js} +1 -1
  45. package/dist-ksadk/assets/{dist-CR5MGEiz.js → dist-Dnmy_buX.js} +1 -1
  46. package/dist-ksadk/assets/{dist-DW68jH2U.js → dist-Dt5LrVjn.js} +1 -1
  47. package/dist-ksadk/assets/{dist-C_Z1-ZmA.js → dist-OO89-qp7.js} +1 -1
  48. package/dist-ksadk/assets/{dist-CogLyQpT.js → dist-QYwBW_Mf.js} +1 -1
  49. package/dist-ksadk/assets/{dist-D51ocFDT.js → dist-g4PPpv9n.js} +1 -1
  50. package/dist-ksadk/assets/{dist-BPECOwEw.js → dist-hk2k8DQi.js} +1 -1
  51. package/dist-ksadk/assets/{dist-D2IzCbzs.js → dist-v8-edRr5.js} +1 -1
  52. package/dist-ksadk/assets/{erDiagram-TEJ5UH35-DxpQTwOK.js → erDiagram-TEJ5UH35-BfVYHmwK.js} +1 -1
  53. package/dist-ksadk/assets/eventmodeling-FCH6USID-Dyg6WIdS.js +1 -0
  54. package/dist-ksadk/assets/{flowDiagram-I6XJVG4X-DtJfiVka.js → flowDiagram-I6XJVG4X-B0mh3WpY.js} +1 -1
  55. package/dist-ksadk/assets/{ganttDiagram-6RSMTGT7-Cads5zt8.js → ganttDiagram-6RSMTGT7-Ce9oLqyz.js} +1 -1
  56. package/dist-ksadk/assets/gitGraph-WXDBUCRP-CJDHEJBG.js +1 -0
  57. package/dist-ksadk/assets/{gitGraphDiagram-PVQCEYII-pVBGF0kC.js → gitGraphDiagram-PVQCEYII-BW6e6-uy.js} +1 -1
  58. package/dist-ksadk/assets/{index-BmYXEuwx.js → index-DAloZguQ.js} +56 -56
  59. package/dist-ksadk/assets/info-J43DQDTF-ckVPO-5m.js +1 -0
  60. package/dist-ksadk/assets/{infoDiagram-5YYISTIA-DRnfow9x.js → infoDiagram-5YYISTIA-BwspFfOK.js} +1 -1
  61. package/dist-ksadk/assets/{ishikawaDiagram-YF4QCWOH-Cj4f-Vgb.js → ishikawaDiagram-YF4QCWOH-CrkBysug.js} +1 -1
  62. package/dist-ksadk/assets/{journeyDiagram-JHISSGLW-CAlm8MAI.js → journeyDiagram-JHISSGLW-BS1qzm5Q.js} +1 -1
  63. package/dist-ksadk/assets/{kanban-definition-UN3LZRKU-Dad-GGF-.js → kanban-definition-UN3LZRKU-BSakP2aP.js} +1 -1
  64. package/dist-ksadk/assets/{katex-C29J-Smv.js → katex-CQNj0JzG.js} +1 -1
  65. package/dist-ksadk/assets/{linear-zSHuEM7v.js → linear-KHZ9eUcI.js} +1 -1
  66. package/dist-ksadk/assets/{mermaid-parser.core-Cc12WCm1.js → mermaid-parser.core-xP6AVGz-.js} +2 -2
  67. package/dist-ksadk/assets/{mindmap-definition-RKZ34NQL-BaWEag7j.js → mindmap-definition-RKZ34NQL-CKjP2Jfe.js} +1 -1
  68. package/dist-ksadk/assets/packet-YPE3B663-CelVJ5KC.js +1 -0
  69. package/dist-ksadk/assets/pie-LRSECV5Y-BQm2YBEx.js +1 -0
  70. package/dist-ksadk/assets/{pieDiagram-4H26LBE5-CUweZZ4V.js → pieDiagram-4H26LBE5-CJUDzb-Y.js} +1 -1
  71. package/dist-ksadk/assets/{quadrantDiagram-W4KKPZXB-r6VGrgUe.js → quadrantDiagram-W4KKPZXB-BLDLN79K.js} +1 -1
  72. package/dist-ksadk/assets/radar-GUYGQ44K-CiG38998.js +1 -0
  73. package/dist-ksadk/assets/{requirementDiagram-4Y6WPE33-CODRvc2-.js → requirementDiagram-4Y6WPE33-DhMP6V-i.js} +1 -1
  74. package/dist-ksadk/assets/{sankeyDiagram-5OEKKPKP-Bfu8TihS.js → sankeyDiagram-5OEKKPKP-MY_PXr4h.js} +1 -1
  75. package/dist-ksadk/assets/{sequenceDiagram-3UESZ5HK-B0aTqv-7.js → sequenceDiagram-3UESZ5HK-DxKPwAiT.js} +1 -1
  76. package/dist-ksadk/assets/{stateDiagram-AJRCARHV-C5D586Kc.js → stateDiagram-AJRCARHV-D-zq5Ly7.js} +1 -1
  77. package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-eUE0VNmH.js +1 -0
  78. package/dist-ksadk/assets/{timeline-definition-PNZ67QCA-BN9QGovG.js → timeline-definition-PNZ67QCA-DXaT6533.js} +1 -1
  79. package/dist-ksadk/assets/treeView-BLDUP644-BoPwXqJw.js +1 -0
  80. package/dist-ksadk/assets/treemap-LRROVOQU-BPFM7kEk.js +1 -0
  81. package/dist-ksadk/assets/{vennDiagram-CIIHVFJN-DD2DPPQK.js → vennDiagram-CIIHVFJN-_DkELB7r.js} +1 -1
  82. package/dist-ksadk/assets/wardley-L42UT6IY-BC_mlbWj.js +1 -0
  83. package/dist-ksadk/assets/{wardleyDiagram-YWT4CUSO-BuRKU-mS.js → wardleyDiagram-YWT4CUSO-DUfjRpDy.js} +1 -1
  84. package/dist-ksadk/assets/{xychartDiagram-2RQKCTM6-CRK8qmKq.js → xychartDiagram-2RQKCTM6-DSpH_C9e.js} +1 -1
  85. package/dist-ksadk/index.html +1 -1
  86. package/dist-lib/api/checkpoints.d.ts +2 -2
  87. package/dist-lib/api/checkpoints.d.ts.map +1 -1
  88. package/dist-lib/runtime.js +212 -204
  89. package/dist-lib/utils/session-events.d.ts.map +1 -1
  90. package/package.json +1 -1
  91. package/dist-ksadk/assets/architecture-7EHR7CIX-ld802pvW.js +0 -1
  92. package/dist-ksadk/assets/channel-COAU2EGH.js +0 -1
  93. package/dist-ksadk/assets/chunk-QZHKN3VN-BvzsW0_z.js +0 -1
  94. package/dist-ksadk/assets/classDiagram-4FO5ZUOK-DFTBkc62.js +0 -1
  95. package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-DFTBkc62.js +0 -1
  96. package/dist-ksadk/assets/eventmodeling-FCH6USID-CTWi3c6l.js +0 -1
  97. package/dist-ksadk/assets/gitGraph-WXDBUCRP-BUUNILpg.js +0 -1
  98. package/dist-ksadk/assets/info-J43DQDTF-Bp9uT-J8.js +0 -1
  99. package/dist-ksadk/assets/packet-YPE3B663-BrkZLyQL.js +0 -1
  100. package/dist-ksadk/assets/pie-LRSECV5Y-DjPUnz6v.js +0 -1
  101. package/dist-ksadk/assets/radar-GUYGQ44K-B4p0ZaJn.js +0 -1
  102. package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-NgpS71EE.js +0 -1
  103. package/dist-ksadk/assets/treeView-BLDUP644-D52yTg0v.js +0 -1
  104. package/dist-ksadk/assets/treemap-LRROVOQU-BXzm9_qc.js +0 -1
  105. package/dist-ksadk/assets/wardley-L42UT6IY-jE2fE4jx.js +0 -1
@@ -1728,22 +1728,27 @@ var Q = N()((e, t) => ({
1728
1728
  "cancelled",
1729
1729
  "canceled",
1730
1730
  "aborted"
1731
+ ]), Ft = new Set([
1732
+ "tool_call",
1733
+ "tool_result",
1734
+ "stage_tool_call",
1735
+ "stage_tool_result"
1731
1736
  ]);
1732
- function Ft(e) {
1737
+ function It(e) {
1733
1738
  return typeof e == "string" ? e : Array.isArray(e) ? e.map((e) => typeof e == "string" ? e : e && typeof e == "object" && typeof e.text == "string" ? e.text : "").join("") : "";
1734
1739
  }
1735
- function It(e) {
1740
+ function Lt(e) {
1736
1741
  let t = String(e || "").trim();
1737
1742
  return t ? `/agentengine/api/v1/AttachmentContent?FileUri=${encodeURIComponent(t)}` : "";
1738
1743
  }
1739
- function Lt(e) {
1744
+ function Rt(e) {
1740
1745
  return String(e || "").match(/^data:([^;,]+)/)?.[1] || "";
1741
1746
  }
1742
- function Rt(e, t) {
1747
+ function zt(e, t) {
1743
1748
  let n = String(e || "").trim(), r = String(t || "").trim();
1744
1749
  return !n || !r || n === r ? !0 : n.endsWith("/*") ? r.startsWith(n.slice(0, -1)) : r.endsWith("/*") ? n.startsWith(r.slice(0, -1)) : !1;
1745
1750
  }
1746
- function zt(e) {
1751
+ function Bt(e) {
1747
1752
  let t = e?.Content?.parts || [], n = [], r = /* @__PURE__ */ new Map(), i = (e) => {
1748
1753
  let t = `${e.fileUri || e.url || e.name}|${e.type}`;
1749
1754
  r.has(t) || r.set(t, e);
@@ -1773,7 +1778,7 @@ function zt(e) {
1773
1778
  let t = e.file_url.trim();
1774
1779
  i({
1775
1780
  name: e.filename || e.displayName || e.display_name || "attachment",
1776
- url: It(t),
1781
+ url: Lt(t),
1777
1782
  type: e.mime_type || e.mimeType || "application/octet-stream",
1778
1783
  fileUri: t
1779
1784
  });
@@ -1784,7 +1789,7 @@ function zt(e) {
1784
1789
  t && i({
1785
1790
  name: e.filename || e.displayName || e.display_name || "uploaded_image",
1786
1791
  url: t,
1787
- type: e.mime_type || e.mimeType || Lt(t) || "image/*"
1792
+ type: e.mime_type || e.mimeType || Rt(t) || "image/*"
1788
1793
  });
1789
1794
  continue;
1790
1795
  }
@@ -1792,7 +1797,7 @@ function zt(e) {
1792
1797
  let t = String(e.fileData.fileUri || "").trim();
1793
1798
  i({
1794
1799
  name: e.fileData.displayName || "attachment",
1795
- url: It(t),
1800
+ url: Lt(t),
1796
1801
  type: e.fileData.mimeType || "application/octet-stream",
1797
1802
  fileUri: t
1798
1803
  });
@@ -1802,11 +1807,11 @@ function zt(e) {
1802
1807
  for (let e of a) {
1803
1808
  let t = String(e.file_uri || "").trim(), n = {
1804
1809
  name: e.display_name || "attachment",
1805
- url: It(t),
1810
+ url: Lt(t),
1806
1811
  type: e.mime_type || "application/octet-stream",
1807
1812
  fileUri: t
1808
1813
  };
1809
- !n.url && !n.fileUri && Array.from(r.values()).some((e) => e.name === n.name && Rt(e.type, n.type) && (e.url || e.fileUri)) || i(n);
1814
+ !n.url && !n.fileUri && Array.from(r.values()).some((e) => e.name === n.name && zt(e.type, n.type) && (e.url || e.fileUri)) || i(n);
1810
1815
  }
1811
1816
  let o = Array.from(r.values());
1812
1817
  return {
@@ -1814,7 +1819,7 @@ function zt(e) {
1814
1819
  attachments: o.length > 0 ? o : void 0
1815
1820
  };
1816
1821
  }
1817
- function Bt(e) {
1822
+ function Vt(e) {
1818
1823
  let t = e?.Metadata?.responses_output;
1819
1824
  if (!Array.isArray(t)) return {};
1820
1825
  let n = Ke(), r = tt({
@@ -1861,22 +1866,22 @@ function Bt(e) {
1861
1866
  ...Object.keys(a).length > 0 ? { tools: a } : {}
1862
1867
  };
1863
1868
  }
1864
- function Vt(e, t, n) {
1869
+ function Ht(e, t, n) {
1865
1870
  return t === "running" ? e === "prompt_too_long" ? "检测到上下文过长,正在自动压缩历史后重试" : "正在自动压缩上下文" : n ? e === "prompt_too_long" ? "上下文过长,系统已自动压缩历史并重试" : "系统已自动压缩较早的对话上下文" : t === "failed" ? "自动压缩上下文未完成" : e === "prompt_too_long" ? "已完成上下文压缩,并继续当前回复" : "已完成上下文压缩";
1866
1871
  }
1867
- function Ht(e, t) {
1872
+ function Ut(e, t) {
1868
1873
  return [
1869
1874
  e,
1870
1875
  t.content || "",
1871
1876
  t.reasoning || ""
1872
1877
  ].join("\0");
1873
1878
  }
1874
- function Ut(e) {
1879
+ function Wt(e) {
1875
1880
  return e?.Metadata?.responses_mirror === !0 || String(e?.Metadata?.responses_mirror || "").trim().toLowerCase() === "true";
1876
1881
  }
1877
- function Wt(e) {
1882
+ function Gt(e) {
1878
1883
  if (e?.EventType !== "user_message") return "";
1879
- let t = zt(e), n = (t.attachments || []).map((e) => [
1884
+ let t = Bt(e), n = (t.attachments || []).map((e) => [
1880
1885
  e.name || "",
1881
1886
  e.fileUri || "",
1882
1887
  e.url || "",
@@ -1884,16 +1889,16 @@ function Wt(e) {
1884
1889
  ].join("")).sort().join("");
1885
1890
  return [String(t.text || "").trim(), n].join("\0");
1886
1891
  }
1887
- function Gt(e) {
1892
+ function Kt(e) {
1888
1893
  return e?.EventType === "assistant_stream_snapshot";
1889
1894
  }
1890
- function Kt(e) {
1895
+ function qt(e) {
1891
1896
  let t = Number(e?.SeqId || 0);
1892
1897
  if (Number.isFinite(t) && t > 0) return t;
1893
1898
  let n = Number(e?.Timestamp || 0);
1894
1899
  return Number.isFinite(n) ? n : 0;
1895
1900
  }
1896
- function qt(e) {
1901
+ function Jt(e) {
1897
1902
  if (typeof e == "string") return e;
1898
1903
  if (e == null) return "";
1899
1904
  try {
@@ -1902,15 +1907,15 @@ function qt(e) {
1902
1907
  return String(e);
1903
1908
  }
1904
1909
  }
1905
- function Jt(e) {
1910
+ function Yt(e) {
1906
1911
  let t = String(e?.EventType || "");
1907
- if (t !== "tool_call" && t !== "tool_result") return null;
1908
- let n = String(e.Metadata?.tool_name || e.Metadata?.name || e.Metadata?.function_name || Ft(e.Content?.parts) || "tool").trim() || "tool", r = {
1912
+ if (!Ft.has(t)) return null;
1913
+ let n = String(e.Metadata?.tool_name || e.Metadata?.name || e.Metadata?.function_name || It(e.Content?.parts) || "tool").trim() || "tool", r = {
1909
1914
  name: n,
1910
1915
  args: "",
1911
1916
  status: "running"
1912
- }, i = t === "tool_result" ? (() => {
1913
- let t = qt(e.Metadata?.tool_output ?? e.Metadata?.output ?? e.Metadata?.result ?? Ft(e.Content?.parts));
1917
+ }, i = t === "tool_result" || t === "stage_tool_result" ? (() => {
1918
+ let t = Jt(e.Metadata?.tool_output ?? e.Metadata?.output ?? e.Metadata?.result ?? It(e.Content?.parts));
1914
1919
  return {
1915
1920
  ...r,
1916
1921
  output: t,
@@ -1918,7 +1923,7 @@ function Jt(e) {
1918
1923
  };
1919
1924
  })() : {
1920
1925
  ...r,
1921
- args: qt(e.Metadata?.tool_args ?? e.Metadata?.arguments ?? e.Metadata?.args ?? {})
1926
+ args: Jt(e.Metadata?.tool_args ?? e.Metadata?.arguments ?? e.Metadata?.args ?? {})
1922
1927
  };
1923
1928
  return {
1924
1929
  id: e.EventId || String(Date.now() + Math.random()),
@@ -1929,7 +1934,7 @@ function Jt(e) {
1929
1934
  tools: { [n]: i }
1930
1935
  };
1931
1936
  }
1932
- function Yt(e = {}, t = {}) {
1937
+ function Xt(e = {}, t = {}) {
1933
1938
  let n = { ...e || {} };
1934
1939
  for (let [e, r] of Object.entries(t || {})) n[e] = {
1935
1940
  ...n[e] || {},
@@ -1939,7 +1944,7 @@ function Yt(e = {}, t = {}) {
1939
1944
  };
1940
1945
  return n;
1941
1946
  }
1942
- function Xt(e = {}, t = "") {
1947
+ function Zt(e = {}, t = "") {
1943
1948
  let n = String(t || "").trim().toLowerCase(), r = n === "completed" ? "completed" : Pt.has(n) ? "error" : "";
1944
1949
  if (!r) return e;
1945
1950
  let i = !1, a = {};
@@ -1949,10 +1954,10 @@ function Xt(e = {}, t = "") {
1949
1954
  }) : a[t] = n;
1950
1955
  return i ? a : e;
1951
1956
  }
1952
- function Zt(e, t) {
1957
+ function Qt(e, t) {
1953
1958
  return {
1954
1959
  ...e,
1955
- reasoning: Qt(e.reasoning, t.reasoning),
1960
+ reasoning: $t(e.reasoning, t.reasoning),
1956
1961
  tools: {
1957
1962
  ...e.tools || {},
1958
1963
  ...t.tools || {}
@@ -1965,11 +1970,11 @@ function Zt(e, t) {
1965
1970
  id: t.responseId || t.reasoning || t.tools ? t.id : e.id
1966
1971
  };
1967
1972
  }
1968
- function Qt(e = "", t = "") {
1973
+ function $t(e = "", t = "") {
1969
1974
  let n = String(e || ""), r = String(t || "");
1970
1975
  return n ? !r || n.endsWith(r) ? n : r.startsWith(n) ? r : `${n}${r}` : r;
1971
1976
  }
1972
- function $t(e) {
1977
+ function en(e) {
1973
1978
  return {
1974
1979
  id: e.id,
1975
1980
  role: "system",
@@ -1980,10 +1985,10 @@ function $t(e) {
1980
1985
  summary: e.summary,
1981
1986
  historical: e.historical,
1982
1987
  timestamp: e.timestamp,
1983
- content: Vt(e.trigger, e.status, e.historical)
1988
+ content: Ht(e.trigger, e.status, e.historical)
1984
1989
  };
1985
1990
  }
1986
- function en(e) {
1991
+ function tn(e) {
1987
1992
  let t = e?.EventType || "";
1988
1993
  if (t === "run_status") return e.Content?.status === "failed" ? {
1989
1994
  id: e.EventId || String(Date.now() + Math.random()),
@@ -2001,8 +2006,8 @@ function en(e) {
2001
2006
  timestamp: e.Timestamp || Date.now()
2002
2007
  } : null;
2003
2008
  if (t === "context_checkpoint") {
2004
- let t = zt(e);
2005
- return $t({
2009
+ let t = Bt(e);
2010
+ return en({
2006
2011
  id: e.EventId || String(Date.now() + Math.random()),
2007
2012
  timestamp: e.Timestamp || Date.now(),
2008
2013
  status: "completed",
@@ -2013,7 +2018,7 @@ function en(e) {
2013
2018
  });
2014
2019
  }
2015
2020
  if (t === "reasoning") {
2016
- let n = zt(e).text || Ft(e.Metadata?.reasoning);
2021
+ let n = Bt(e).text || It(e.Metadata?.reasoning);
2017
2022
  return n ? {
2018
2023
  id: e.EventId || String(Date.now() + Math.random()),
2019
2024
  role: "model",
@@ -2023,9 +2028,9 @@ function en(e) {
2023
2028
  eventType: t
2024
2029
  } : null;
2025
2030
  }
2026
- if (t === "tool_call" || t === "tool_result") return Jt(e);
2031
+ if (Ft.has(t)) return Yt(e);
2027
2032
  if (t !== "user_message" && t !== "assistant_message" && t !== "assistant_stream_snapshot") return null;
2028
- let n = zt(e), r = t === "assistant_message" ? Bt(e) : {};
2033
+ let n = Bt(e), r = t === "assistant_message" ? Vt(e) : {};
2029
2034
  if (!n.text && !n.attachments?.length && !r.reasoning && !r.tools) return null;
2030
2035
  let i = String(e.Metadata?.response_id || e.Metadata?.ResponseId || "").trim(), a = String(e.Metadata?.trace_id || e.Metadata?.TraceId || "").trim(), o = String(e.Metadata?.root_span_id || e.Metadata?.rootSpanId || e.Metadata?.RootSpanId || "").trim();
2031
2036
  return {
@@ -2042,7 +2047,7 @@ function en(e) {
2042
2047
  ...r
2043
2048
  };
2044
2049
  }
2045
- function tn(e = []) {
2050
+ function nn(e = []) {
2046
2051
  let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set(), s = Array.isArray(e) ? e : [], c = [];
2047
2052
  for (let e of s) {
2048
2053
  let t = String(e?.EventId || "").trim();
@@ -2054,30 +2059,30 @@ function tn(e = []) {
2054
2059
  }
2055
2060
  let l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Map();
2056
2061
  for (let e of c) {
2057
- if (e?.EventType !== "user_message" || Ut(e)) {
2062
+ if (e?.EventType !== "user_message" || Wt(e)) {
2058
2063
  if (e?.EventType === "assistant_message") {
2059
2064
  let t = String(e.InvocationId || "").trim();
2060
2065
  t && u.add(t);
2061
2066
  }
2062
- if (Gt(e)) {
2067
+ if (Kt(e)) {
2063
2068
  let t = String(e.InvocationId || "").trim();
2064
2069
  if (t) {
2065
2070
  let n = d.get(t);
2066
- (!n || Kt(e) >= Kt(n)) && d.set(t, e);
2071
+ (!n || qt(e) >= qt(n)) && d.set(t, e);
2067
2072
  }
2068
2073
  }
2069
2074
  continue;
2070
2075
  }
2071
- let t = Wt(e);
2076
+ let t = Gt(e);
2072
2077
  t && l.add(t);
2073
2078
  }
2074
2079
  let f = c.filter((e) => {
2075
- if (Gt(e)) {
2080
+ if (Kt(e)) {
2076
2081
  let t = String(e.InvocationId || "").trim();
2077
2082
  return t ? u.has(t) ? !1 : d.get(t) === e : !0;
2078
2083
  }
2079
- if (e?.EventType !== "user_message" || !Ut(e)) return !0;
2080
- let t = Wt(e);
2084
+ if (e?.EventType !== "user_message" || !Wt(e)) return !0;
2085
+ let t = Gt(e);
2081
2086
  return !t || !l.has(t);
2082
2087
  });
2083
2088
  for (let e of f) {
@@ -2086,13 +2091,16 @@ function tn(e = []) {
2086
2091
  "assistant_message",
2087
2092
  "assistant_stream_snapshot",
2088
2093
  "reasoning",
2089
- "tool_call"
2094
+ "tool_call",
2095
+ "tool_result",
2096
+ "stage_tool_call",
2097
+ "stage_tool_result"
2090
2098
  ].includes(String(e.EventType || "")) && r.add(a), e.EventType === "run_status" && a && (t.set(a, String(e.Content?.status || "").trim()), n.set(a, e));
2091
2099
  }
2092
2100
  let p = [], m = /* @__PURE__ */ new Map(), h = null, g = /* @__PURE__ */ new Map(), _ = (e) => {
2093
2101
  let t = String(e?.responseId || "").trim(), n = t ? m.get(t) : void 0;
2094
2102
  if (n !== void 0) {
2095
- p[n] = Zt(p[n], e);
2103
+ p[n] = Qt(p[n], e);
2096
2104
  return;
2097
2105
  }
2098
2106
  t && m.set(t, p.length), p.push(e);
@@ -2102,13 +2110,13 @@ function tn(e = []) {
2102
2110
  let n = String(e || "").trim();
2103
2111
  if (!n) return {};
2104
2112
  let r = g.get(n);
2105
- return r ? (g.delete(n), { tools: Xt(r.tools, t.get(n)) }) : {};
2113
+ return r ? (g.delete(n), { tools: Zt(r.tools, t.get(n)) }) : {};
2106
2114
  };
2107
2115
  for (let e of f) {
2108
2116
  if (e.EventType === "run_status") continue;
2109
- let t = en(e);
2117
+ let t = tn(e);
2110
2118
  if (!t) continue;
2111
- if (t.eventType === "tool_call" || t.eventType === "tool_result") {
2119
+ if (Ft.has(t.eventType)) {
2112
2120
  let n = String(e.InvocationId || "").trim();
2113
2121
  if (!n) {
2114
2122
  v(), _(t);
@@ -2124,7 +2132,7 @@ function tn(e = []) {
2124
2132
  invocationId: n
2125
2133
  },
2126
2134
  timestamp: Math.max(Number(r?.timestamp || 0), Number(t.timestamp || 0)),
2127
- tools: Yt(r?.tools, t.tools)
2135
+ tools: Xt(r?.tools, t.tools)
2128
2136
  });
2129
2137
  continue;
2130
2138
  }
@@ -2142,7 +2150,7 @@ function tn(e = []) {
2142
2150
  }
2143
2151
  let n = t.eventType === "assistant_message" || t.eventType === "assistant_stream_snapshot";
2144
2152
  if (n && h) {
2145
- let n = String(e.InvocationId || "").trim(), r = Ht(n, t);
2153
+ let n = String(e.InvocationId || "").trim(), r = Ut(n, t);
2146
2154
  if (t.eventType === "assistant_message" && n && a.has(r)) {
2147
2155
  h = null;
2148
2156
  continue;
@@ -2150,12 +2158,12 @@ function tn(e = []) {
2150
2158
  t.eventType === "assistant_message" && n && a.add(r), _({
2151
2159
  ...t,
2152
2160
  ...y(n),
2153
- reasoning: Qt(h.reasoning, t.reasoning)
2161
+ reasoning: $t(h.reasoning, t.reasoning)
2154
2162
  }), h = null;
2155
2163
  continue;
2156
2164
  }
2157
2165
  if (v(), n) {
2158
- let n = String(e.InvocationId || "").trim(), r = Ht(n, t);
2166
+ let n = String(e.InvocationId || "").trim(), r = Ut(n, t);
2159
2167
  if (t.eventType === "assistant_message" && n && a.has(r)) continue;
2160
2168
  t.eventType === "assistant_message" && n && a.add(r), _({
2161
2169
  ...t,
@@ -2168,7 +2176,7 @@ function tn(e = []) {
2168
2176
  v();
2169
2177
  for (let [e, n] of g.entries()) _({
2170
2178
  ...n,
2171
- tools: Xt(n.tools, t.get(e))
2179
+ tools: Zt(n.tools, t.get(e))
2172
2180
  });
2173
2181
  for (let [e, a] of t.entries()) {
2174
2182
  if (a !== "in_progress" || r.has(e) || !i.has(e)) continue;
@@ -2184,7 +2192,7 @@ function tn(e = []) {
2184
2192
  }
2185
2193
  return p.map(({ invocationId: e, ...t }) => t);
2186
2194
  }
2187
- function nn(e = [], t = []) {
2195
+ function rn(e = [], t = []) {
2188
2196
  let n = [], r = /* @__PURE__ */ new Set();
2189
2197
  for (let i of [...Array.isArray(e) ? e : [], ...Array.isArray(t) ? t : []]) {
2190
2198
  let e = String(i?.EventId || "").trim();
@@ -2199,18 +2207,18 @@ function nn(e = [], t = []) {
2199
2207
  return Number.isFinite(n) && Number.isFinite(r) && n !== r ? n - r : Number(e?.Timestamp || 0) - Number(t?.Timestamp || 0);
2200
2208
  });
2201
2209
  }
2202
- function rn(e = []) {
2210
+ function an(e = []) {
2203
2211
  return (Array.isArray(e) ? e : []).reduce((e, t) => {
2204
2212
  let n = Number(t.SeqId || 0);
2205
2213
  return Number.isFinite(n) ? Math.max(e, n) : e;
2206
2214
  }, 0);
2207
2215
  }
2208
- function an(e) {
2216
+ function on(e) {
2209
2217
  return e?.EventType === "run_status" ? Pt.has(String(e.Content?.status || "").trim().toLowerCase()) : !1;
2210
2218
  }
2211
2219
  //#endregion
2212
2220
  //#region src/core/run/dispatcher.ts
2213
- var $ = !1, on = new Set(["completed"]), sn = new Set([
2221
+ var $ = !1, sn = new Set(["completed"]), cn = new Set([
2214
2222
  "failed",
2215
2223
  "error",
2216
2224
  "cancelled",
@@ -2218,7 +2226,7 @@ var $ = !1, on = new Set(["completed"]), sn = new Set([
2218
2226
  "aborted",
2219
2227
  "incomplete"
2220
2228
  ]);
2221
- function cn(e) {
2229
+ function ln(e) {
2222
2230
  $ || ($ = !0, q.getState().patchMessages((t) => [...t, {
2223
2231
  id: e,
2224
2232
  role: "model",
@@ -2227,8 +2235,8 @@ function cn(e) {
2227
2235
  reasoning: ""
2228
2236
  }]));
2229
2237
  }
2230
- function ln(e) {
2231
- let t = String(e || "").trim().toLowerCase(), n = on.has(t) ? "completed" : sn.has(t) ? "error" : null;
2238
+ function un(e) {
2239
+ let t = String(e || "").trim().toLowerCase(), n = sn.has(t) ? "completed" : cn.has(t) ? "error" : null;
2232
2240
  n && q.getState().patchMessages((e) => e.map((e) => {
2233
2241
  if (!e.tools) return e;
2234
2242
  let t = !1, r = Object.fromEntries(Object.entries(e.tools).map(([e, r]) => r.status === "running" ? (t = !0, [e, {
@@ -2241,7 +2249,7 @@ function ln(e) {
2241
2249
  } : e;
2242
2250
  }));
2243
2251
  }
2244
- function un(e) {
2252
+ function dn(e) {
2245
2253
  if (e.sessionId && R.getState().currentSessionId !== e.sessionId) {
2246
2254
  e.type === "stage_changed" && (e.stage === "completing" || e.stage === "error" || e.stage === "cancelled") && ($ = !1);
2247
2255
  return;
@@ -2267,28 +2275,28 @@ function un(e) {
2267
2275
  }]);
2268
2276
  break;
2269
2277
  case "assistant_message_created":
2270
- cn(e.messageId);
2278
+ ln(e.messageId);
2271
2279
  break;
2272
2280
  case "text_delta":
2273
- cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2281
+ ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2274
2282
  ...t,
2275
2283
  content: t.content + e.delta
2276
2284
  } : t));
2277
2285
  break;
2278
2286
  case "text_final":
2279
- cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2287
+ ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2280
2288
  ...t,
2281
2289
  content: e.text
2282
2290
  } : t));
2283
2291
  break;
2284
2292
  case "reasoning_delta":
2285
- cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2293
+ ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2286
2294
  ...t,
2287
2295
  reasoning: (t.reasoning || "") + e.delta
2288
2296
  } : t));
2289
2297
  break;
2290
2298
  case "tool_upsert":
2291
- cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2299
+ ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2292
2300
  ...t,
2293
2301
  tools: {
2294
2302
  ...t.tools || {},
@@ -2307,7 +2315,7 @@ function un(e) {
2307
2315
  } : t));
2308
2316
  break;
2309
2317
  case "tool_result":
2310
- cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2318
+ ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2311
2319
  ...t,
2312
2320
  tools: {
2313
2321
  ...t.tools || {},
@@ -2331,7 +2339,7 @@ function un(e) {
2331
2339
  }]);
2332
2340
  break;
2333
2341
  case "compaction": {
2334
- let n = `compaction-${Date.now()}`, r = e.phase === "start" ? "running" : e.phase === "failed" ? "failed" : "completed", i = $t({
2342
+ let n = `compaction-${Date.now()}`, r = e.phase === "start" ? "running" : e.phase === "failed" ? "failed" : "completed", i = en({
2335
2343
  id: n,
2336
2344
  timestamp: Date.now(),
2337
2345
  status: r,
@@ -2367,7 +2375,7 @@ function un(e) {
2367
2375
  }]), $ = !1;
2368
2376
  break;
2369
2377
  case "terminal":
2370
- ln(e.status);
2378
+ un(e.status);
2371
2379
  break;
2372
2380
  case "stream_event":
2373
2381
  if (e.event.EventType === "run_checkpoint" && Q.getState().upsertSessionCheckpoint(e.sessionId || e.event.SessionId, e.event), e.event.EventType === "run_status") {
@@ -2392,12 +2400,12 @@ function un(e) {
2392
2400
  break;
2393
2401
  }
2394
2402
  }
2395
- function dn() {
2403
+ function fn() {
2396
2404
  $ = !1;
2397
2405
  }
2398
2406
  //#endregion
2399
2407
  //#region src/hooks/useRunAgent.ts
2400
- function fn(e) {
2408
+ function pn(e) {
2401
2409
  let t = j(/* @__PURE__ */ new Map()), n = j(() => {}), { agentId: r, apiFormats: i, agentFramework: a, selectedModel: o, selectedModelMetadata: s, thinkingMode: c, currentSessionIdRef: l, queuedDraftRef: u, onRunSettled: d, uiCapabilities: f } = e, p = k((e) => {
2402
2410
  e.updateConfig({
2403
2411
  agentId: r,
@@ -2418,7 +2426,7 @@ function fn(e) {
2418
2426
  f.RunLifecycle?.CheckpointResumePreview
2419
2427
  ]), m = k((n) => {
2420
2428
  let r = String(n || "new-session"), i = t.current.get(r);
2421
- return i ? p(i) : (i = new xt(e.api), p(i), i.subscribe(un), t.current.set(r, i)), i;
2429
+ return i ? p(i) : (i = new xt(e.api), p(i), i.subscribe(dn), t.current.set(r, i)), i;
2422
2430
  }, [e.api, p]);
2423
2431
  A(() => {
2424
2432
  for (let e of t.current.values()) p(e);
@@ -2428,7 +2436,7 @@ function fn(e) {
2428
2436
  }, [u]), g = k((e) => {
2429
2437
  let i = l.current, a = m(i);
2430
2438
  if (a.stage !== "idle") return !1;
2431
- dn(), _.getState().setMobileActionsOpen(!1), I.getState().setSessionStreaming(i, !0);
2439
+ fn(), _.getState().setMobileActionsOpen(!1), I.getState().setSessionStreaming(i, !0);
2432
2440
  let o = e.text.trim(), s = String(Date.now()), c = e.attachments.map((e) => ({
2433
2441
  name: e.name,
2434
2442
  url: URL.createObjectURL(e),
@@ -2510,7 +2518,7 @@ function fn(e) {
2510
2518
  resumeCheckpoint: k((e) => {
2511
2519
  let t = m(e.sessionId);
2512
2520
  if (t.stage !== "idle") return !1;
2513
- dn(), _.getState().setMobileActionsOpen(!1), I.getState().setSessionStreaming(e.sessionId, !0);
2521
+ fn(), _.getState().setMobileActionsOpen(!1), I.getState().setSessionStreaming(e.sessionId, !0);
2514
2522
  let r = t.resumeCheckpoint({
2515
2523
  ...e,
2516
2524
  onSettled: (e) => {
@@ -2520,13 +2528,13 @@ function fn(e) {
2520
2528
  return r || I.getState().setSessionStreaming(e.sessionId, !1), r;
2521
2529
  }, [m, d]),
2522
2530
  resetCompaction: k(() => {
2523
- dn();
2531
+ fn();
2524
2532
  }, [])
2525
2533
  };
2526
2534
  }
2527
2535
  //#endregion
2528
2536
  //#region src/hooks/useFeedback.ts
2529
- function pn(e) {
2537
+ function mn(e) {
2530
2538
  let { agentId: t, currentSessionId: n, isStreaming: r, api: i, submitDraft: a } = e;
2531
2539
  return {
2532
2540
  submitResponseFeedback: k(async (e) => {
@@ -2606,10 +2614,10 @@ function pn(e) {
2606
2614
  }
2607
2615
  //#endregion
2608
2616
  //#region src/utils/run-state.js
2609
- function mn(e) {
2617
+ function hn(e) {
2610
2618
  return String(e?.InvocationId || e?.invocation_id || e?.invocationId || "").trim();
2611
2619
  }
2612
- function hn(e) {
2620
+ function gn(e) {
2613
2621
  let t = e?.Timestamp ?? e?.timestamp ?? e?.created_at ?? e?.CreatedAt;
2614
2622
  if (typeof t == "number" && Number.isFinite(t)) return t > 1e11 ? t : t * 1e3;
2615
2623
  if (typeof t == "string") {
@@ -2618,16 +2626,16 @@ function hn(e) {
2618
2626
  }
2619
2627
  return 0;
2620
2628
  }
2621
- function gn(e) {
2629
+ function _n(e) {
2622
2630
  return String(e?.EventType || e?.event_type || "").trim();
2623
2631
  }
2624
- function _n(e = [], t = {}) {
2632
+ function vn(e = [], t = {}) {
2625
2633
  let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = Array.isArray(e) ? e : [], a = Number.isFinite(Number(t.now)) ? Number(t.now) : Date.now(), o = Number.isFinite(Number(t.staleAfterMs)) ? Number(t.staleAfterMs) : 1800 * 1e3;
2626
2634
  for (let e of i) {
2627
- let t = mn(e);
2635
+ let t = hn(e);
2628
2636
  if (!t) continue;
2629
- let i = hn(e);
2630
- i && r.set(t, Math.max(r.get(t) || 0, i)), gn(e) === "run_status" && n.set(t, String(e?.Content?.status || e?.content?.status || "").trim());
2637
+ let i = gn(e);
2638
+ i && r.set(t, Math.max(r.get(t) || 0, i)), _n(e) === "run_status" && n.set(t, String(e?.Content?.status || e?.content?.status || "").trim());
2631
2639
  }
2632
2640
  return Array.from(n.entries()).filter(([e, t]) => {
2633
2641
  let n = r.get(e) || 0, i = n > 0 && a - n > o;
@@ -2636,11 +2644,11 @@ function _n(e = [], t = {}) {
2636
2644
  }
2637
2645
  //#endregion
2638
2646
  //#region src/hooks/useSessionLifecycle.ts
2639
- var vn = 9e4, yn = 30, bn = 50;
2640
- function xn(e, t) {
2647
+ var yn = 9e4, bn = 30, xn = 50;
2648
+ function Sn(e, t) {
2641
2649
  return t.length ? e.length ? e.length >= t.length : !1 : !0;
2642
2650
  }
2643
- function Sn(e) {
2651
+ function Cn(e) {
2644
2652
  if (e.EventType !== "run_status") return null;
2645
2653
  let t = String(e.Content?.status || "").trim().toLowerCase();
2646
2654
  return t === "completed" ? {
@@ -2654,7 +2662,7 @@ function Sn(e) {
2654
2662
  phase: "后台长任务失败"
2655
2663
  } : null;
2656
2664
  }
2657
- function Cn(e) {
2665
+ function wn(e) {
2658
2666
  let { agentId: t, api: n, isMobile: r, resetCompaction: i, uiCapabilities: a, disconnectRun: o } = e, s = j(e.currentSessionId), l = j(e.agentId), u = j(null), d = j(null), f = j(null), p = k(async (e, t, r) => {
2659
2667
  let i = r.filter((e) => c(e, !1, !1));
2660
2668
  if (!i.length) return;
@@ -2688,7 +2696,7 @@ function Cn(e) {
2688
2696
  u.current !== t || t.signal.aborted || t.abort();
2689
2697
  }, o = globalThis.setTimeout(() => {
2690
2698
  a();
2691
- }, vn);
2699
+ }, yn);
2692
2700
  try {
2693
2701
  let o = (await n.subscribeRunEvents({
2694
2702
  sessionId: e.sessionId,
@@ -2718,8 +2726,8 @@ function Cn(e) {
2718
2726
  }
2719
2727
  try {
2720
2728
  let t = JSON.parse(o);
2721
- u = nn(u, [t]), i ||= an(t), r ||= i, t.EventType === "run_checkpoint" && Q.getState().upsertSessionCheckpoint(e.sessionId, t);
2722
- let n = Sn(t);
2729
+ u = rn(u, [t]), i ||= on(t), r ||= i, t.EventType === "run_checkpoint" && Q.getState().upsertSessionCheckpoint(e.sessionId, t);
2730
+ let n = Cn(t);
2723
2731
  if (n && I.getState().updateActivity({
2724
2732
  sessionId: e.sessionId,
2725
2733
  status: n.status,
@@ -2730,8 +2738,8 @@ function Cn(e) {
2730
2738
  a();
2731
2739
  break;
2732
2740
  }
2733
- let c = tn(u);
2734
- xn(c, q.getState().messages) && q.getState().setMessages(c);
2741
+ let c = nn(u);
2742
+ Sn(c, q.getState().messages) && q.getState().setMessages(c);
2735
2743
  } catch (e) {
2736
2744
  console.warn("Failed to parse run event data", o, e);
2737
2745
  }
@@ -2758,10 +2766,10 @@ function Cn(e) {
2758
2766
  let r = await n.listSessionEvents(e, {
2759
2767
  offset: 0,
2760
2768
  limit: 1
2761
- }), a = Number(r.Total ?? r.Events?.length ?? 0), o = Math.max(0, a - bn);
2769
+ }), a = Number(r.Total ?? r.Events?.length ?? 0), o = Math.max(0, a - xn);
2762
2770
  if (i = a <= 1 ? r : await n.listSessionEvents(e, {
2763
2771
  offset: o,
2764
- limit: bn
2772
+ limit: xn
2765
2773
  }), !t()) return;
2766
2774
  R.getState().setSessionEventCache(e, {
2767
2775
  events: i.Events || [],
@@ -2789,13 +2797,13 @@ function Cn(e) {
2789
2797
  })) : Q.getState().clearSessionCheckpoints(e);
2790
2798
  let s = i;
2791
2799
  if (s?.Events) {
2792
- let n = s.Events, r = tn(n);
2800
+ let n = s.Events, r = nn(n);
2793
2801
  if (!t()) return;
2794
2802
  q.getState().setMessages(r), p(l.current, e, r);
2795
- let i = _n(n, {
2803
+ let i = vn(n, {
2796
2804
  now: Date.now(),
2797
2805
  staleAfterMs: 1800 * 1e3
2798
- }), a = rn(n);
2806
+ }), a = an(n);
2799
2807
  o.RunLifecycle.Enabled && o.RunLifecycle.Resume && i[0] && m({
2800
2808
  sessionId: e,
2801
2809
  invocationId: i[0],
@@ -2822,13 +2830,13 @@ function Cn(e) {
2822
2830
  r.sessionsAgentId && r.sessionsAgentId !== e && r.resetSessionPagination(e), R.getState().setLoadingSessions(!0);
2823
2831
  let i = await n.listSessions(e, {
2824
2832
  page: 1,
2825
- pageSize: yn
2833
+ pageSize: bn
2826
2834
  });
2827
2835
  R.getState().upsertSessions(i.Sessions || [], {
2828
2836
  agentId: e,
2829
2837
  total: Number(i.Total ?? i.Sessions?.length ?? 0),
2830
2838
  page: Number(i.Page ?? 1),
2831
- pageSize: Number(i.PageSize ?? yn),
2839
+ pageSize: Number(i.PageSize ?? bn),
2832
2840
  replace: !0
2833
2841
  });
2834
2842
  let a = R.getState().sessions, o = s.current, c = Te(a, o || t || Ce(e));
@@ -2844,11 +2852,11 @@ function Cn(e) {
2844
2852
  if (e.isLoadingSessions || !e.hasMoreSessions) return;
2845
2853
  let t = ue({
2846
2854
  total: e.sessionsTotal,
2847
- pageSize: e.sessionsPageSize || yn,
2855
+ pageSize: e.sessionsPageSize || bn,
2848
2856
  loadedPages: e.loadedPages
2849
2857
  });
2850
2858
  if (!t) return;
2851
- let r = e.sessionsPageSize || yn, i = e.sessionsAgentId || l.current || "default-agent";
2859
+ let r = e.sessionsPageSize || bn, i = e.sessionsAgentId || l.current || "default-agent";
2852
2860
  try {
2853
2861
  R.getState().setLoadingSessions(!0);
2854
2862
  let a = await n.listSessions(i, {
@@ -2910,20 +2918,20 @@ function Cn(e) {
2910
2918
  loadOlderSessionEvents: k(async (e) => {
2911
2919
  let t = R.getState().eventCache[e];
2912
2920
  if (!t || t.offset <= 0 || t.isLoadingOlder) return;
2913
- let r = Math.max(0, t.offset - bn), i = t.offset - r;
2921
+ let r = Math.max(0, t.offset - xn), i = t.offset - r;
2914
2922
  try {
2915
2923
  R.getState().setSessionEventLoadingOlder(e, !0);
2916
2924
  let a = await n.listSessionEvents(e, {
2917
2925
  offset: r,
2918
2926
  limit: i
2919
- }), o = nn(a.Events || [], t.events);
2927
+ }), o = rn(a.Events || [], t.events);
2920
2928
  if (R.getState().setSessionEventCache(e, {
2921
2929
  events: o,
2922
2930
  total: Number(a.Total ?? t.total),
2923
2931
  offset: Number(a.Offset ?? r),
2924
2932
  limit: o.length
2925
2933
  }), s.current === e) {
2926
- let t = tn(o);
2934
+ let t = nn(o);
2927
2935
  q.getState().setMessages(t), p(l.current, e, t);
2928
2936
  }
2929
2937
  } catch (e) {
@@ -2941,7 +2949,7 @@ function Cn(e) {
2941
2949
  }
2942
2950
  //#endregion
2943
2951
  //#region src/components/chat/ConnectedSidebar.tsx
2944
- function wn({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSession: s, loadMoreSessions: c }) {
2952
+ function Tn({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSession: s, loadMoreSessions: c }) {
2945
2953
  let u = R((e) => e.sessions), d = R((e) => e.currentSessionId), f = R((e) => e.pinnedSessionIds), m = R((e) => e.isLoadingSessions), h = R((e) => e.hasMoreSessions), g = _((e) => e.sidebarOpen), v = _((e) => e.mobileSidebarOpen), { isMobile: y } = Fe(), b = t(e), { desktopSidebarVisible: ee } = _e({
2946
2954
  isMobile: y,
2947
2955
  desktopSidebarOpen: g,
@@ -3004,13 +3012,13 @@ function wn({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSess
3004
3012
  }
3005
3013
  //#endregion
3006
3014
  //#region src/components/ui/dialog.tsx
3007
- var Tn = M.Root, En = M.Portal, Dn = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ T(M.Overlay, {
3015
+ var En = M.Root, Dn = M.Portal, On = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ T(M.Overlay, {
3008
3016
  ref: n,
3009
3017
  className: p("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", e),
3010
3018
  ...t
3011
3019
  }));
3012
- Dn.displayName = M.Overlay.displayName;
3013
- var On = D.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ E(En, { children: [/* @__PURE__ */ T(Dn, {}), /* @__PURE__ */ E(M.Content, {
3020
+ On.displayName = M.Overlay.displayName;
3021
+ var kn = D.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ E(Dn, { children: [/* @__PURE__ */ T(On, {}), /* @__PURE__ */ E(M.Content, {
3014
3022
  ref: r,
3015
3023
  className: p("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", e),
3016
3024
  ...n,
@@ -3022,50 +3030,50 @@ var On = D.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ *
3022
3030
  })]
3023
3031
  })]
3024
3032
  })] }));
3025
- On.displayName = M.Content.displayName;
3026
- var kn = ({ className: e, ...t }) => /* @__PURE__ */ T("div", {
3033
+ kn.displayName = M.Content.displayName;
3034
+ var An = ({ className: e, ...t }) => /* @__PURE__ */ T("div", {
3027
3035
  className: p("flex flex-col space-y-1.5 text-center sm:text-left", e),
3028
3036
  ...t
3029
3037
  });
3030
- kn.displayName = "DialogHeader";
3031
- var An = ({ className: e, ...t }) => /* @__PURE__ */ T("div", {
3038
+ An.displayName = "DialogHeader";
3039
+ var jn = ({ className: e, ...t }) => /* @__PURE__ */ T("div", {
3032
3040
  className: p("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", e),
3033
3041
  ...t
3034
3042
  });
3035
- An.displayName = "DialogFooter";
3036
- var jn = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ T(M.Title, {
3043
+ jn.displayName = "DialogFooter";
3044
+ var Mn = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ T(M.Title, {
3037
3045
  ref: n,
3038
3046
  className: p("text-lg font-semibold leading-none tracking-tight", e),
3039
3047
  ...t
3040
3048
  }));
3041
- jn.displayName = M.Title.displayName;
3042
- var Mn = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ T(M.Description, {
3049
+ Mn.displayName = M.Title.displayName;
3050
+ var Nn = D.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ T(M.Description, {
3043
3051
  ref: n,
3044
3052
  className: p("text-sm text-muted-foreground", e),
3045
3053
  ...t
3046
3054
  }));
3047
- Mn.displayName = M.Description.displayName;
3055
+ Nn.displayName = M.Description.displayName;
3048
3056
  //#endregion
3049
3057
  //#region src/components/chat/AttachmentPreview.tsx
3050
- function Nn(e, t) {
3058
+ function Pn(e, t) {
3051
3059
  if (!(!t || e)) return {
3052
3060
  width: `min(${t.width}px, calc(100vw - 5rem))`,
3053
3061
  height: `min(${t.height}px, calc(100vh - 9rem))`
3054
3062
  };
3055
3063
  }
3056
- function Pn(e, t) {
3064
+ function Fn(e, t) {
3057
3065
  if (!(!t || e)) return { width: `min(${t.width + 32}px, calc(100vw - 3rem))` };
3058
3066
  }
3059
- function Fn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onImageLoad: i }) {
3060
- return /* @__PURE__ */ T(Tn, {
3067
+ function In({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onImageLoad: i }) {
3068
+ return /* @__PURE__ */ T(En, {
3061
3069
  open: !!e?.url,
3062
3070
  onOpenChange: (e) => !e && r(),
3063
- children: /* @__PURE__ */ E(On, {
3071
+ children: /* @__PURE__ */ E(kn, {
3064
3072
  className: p("gap-0 overflow-hidden border-slate-700 bg-slate-950 p-0 text-slate-100 shadow-2xl [&>button]:right-3 [&>button]:top-3 [&>button]:rounded-md [&>button]:border [&>button]:border-slate-700 [&>button]:bg-slate-900/70 [&>button]:p-1.5 [&>button]:text-slate-200 [&>button]:opacity-100", t ? "left-0 top-0 h-[var(--app-height)] max-h-[var(--app-height)] w-screen max-w-none translate-x-0 translate-y-0 rounded-none border-0" : "max-h-[calc(100vh-2rem)] max-w-[calc(100vw-2rem)] rounded-2xl"),
3065
- style: Pn(t, n),
3073
+ style: Fn(t, n),
3066
3074
  children: [/* @__PURE__ */ T("div", {
3067
3075
  className: "flex items-center gap-3 border-b border-slate-800 px-4 py-3 pr-16",
3068
- children: /* @__PURE__ */ T(jn, {
3076
+ children: /* @__PURE__ */ T(Mn, {
3069
3077
  className: "truncate text-sm font-medium",
3070
3078
  children: e?.name || "附件预览"
3071
3079
  })
@@ -3075,7 +3083,7 @@ function Fn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onIma
3075
3083
  src: e.url,
3076
3084
  alt: e.name,
3077
3085
  className: p("object-contain", t ? "h-auto max-h-full w-full max-w-full" : "h-auto w-auto max-h-[calc(100vh-9rem)] max-w-[calc(100vw-5rem)]"),
3078
- style: Nn(t, n),
3086
+ style: Pn(t, n),
3079
3087
  onLoad: (e) => {
3080
3088
  let t = e.currentTarget;
3081
3089
  i({
@@ -3094,7 +3102,7 @@ function Fn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onIma
3094
3102
  }
3095
3103
  //#endregion
3096
3104
  //#region src/utils/context.js
3097
- function In(e) {
3105
+ function Ln(e) {
3098
3106
  if (typeof e == "number" && Number.isFinite(e) && e > 0) return e;
3099
3107
  if (typeof e == "string" && e.trim()) {
3100
3108
  let t = Number(e);
@@ -3102,15 +3110,15 @@ function In(e) {
3102
3110
  }
3103
3111
  return null;
3104
3112
  }
3105
- function Ln(e) {
3113
+ function Rn(e) {
3106
3114
  return /[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]/u.test(e);
3107
3115
  }
3108
- function Rn(e) {
3116
+ function zn(e) {
3109
3117
  let t = String(e || "").trim();
3110
3118
  if (!t) return 0;
3111
3119
  let n = 0, r = 0;
3112
3120
  for (let e of t) {
3113
- if (Ln(e)) {
3121
+ if (Rn(e)) {
3114
3122
  n += 1;
3115
3123
  continue;
3116
3124
  }
@@ -3118,24 +3126,24 @@ function Rn(e) {
3118
3126
  }
3119
3127
  return Math.max(1, n + Math.ceil(r / 4));
3120
3128
  }
3121
- function zn(e) {
3122
- if (!e) return 0;
3123
- if (e.role === "system") return e.eventType === "context_checkpoint" ? Rn(e.summary || "") : 0;
3124
- let t = Rn(e.content || "");
3125
- return e.tools && (t += Object.values(e.tools).reduce((e, t) => e + Rn(t?.name || "") + Rn(t?.args || "") + Rn(t?.output || ""), 0)), t;
3126
- }
3127
3129
  function Bn(e) {
3128
- return e ? In(e.context_window_tokens) ?? In(e?.limits?.context_window_tokens) : null;
3130
+ if (!e) return 0;
3131
+ if (e.role === "system") return e.eventType === "context_checkpoint" ? zn(e.summary || "") : 0;
3132
+ let t = zn(e.content || "");
3133
+ return e.tools && (t += Object.values(e.tools).reduce((e, t) => e + zn(t?.name || "") + zn(t?.args || "") + zn(t?.output || ""), 0)), t;
3129
3134
  }
3130
3135
  function Vn(e) {
3131
- return e ? In(e.auto_compact_threshold_percentage) ?? 84 : 84;
3136
+ return e ? Ln(e.context_window_tokens) ?? Ln(e?.limits?.context_window_tokens) : null;
3132
3137
  }
3133
- function Hn({ messages: e, draftInput: t, selectedModel: n }) {
3134
- let r = Bn(n);
3138
+ function Hn(e) {
3139
+ return e ? Ln(e.auto_compact_threshold_percentage) ?? 84 : 84;
3140
+ }
3141
+ function Un({ messages: e, draftInput: t, selectedModel: n }) {
3142
+ let r = Vn(n);
3135
3143
  if (!r) return null;
3136
3144
  let i = [...e || []].reverse().find((e) => e?.role === "system" && e?.eventType === "context_checkpoint" && e?.status === "running");
3137
3145
  if (i) {
3138
- let e = zn(i);
3146
+ let e = Bn(i);
3139
3147
  return {
3140
3148
  label: "正在压缩上下文…",
3141
3149
  phase: "compressing",
@@ -3144,10 +3152,10 @@ function Hn({ messages: e, draftInput: t, selectedModel: n }) {
3144
3152
  percent: Math.min(100, Math.max(0, Math.round(e / r * 100)))
3145
3153
  };
3146
3154
  }
3147
- let a = (e || []).reduce((e, t) => e + zn(t), 0) + Rn(t || "");
3155
+ let a = (e || []).reduce((e, t) => e + Bn(t), 0) + zn(t || "");
3148
3156
  if (a <= 0) return null;
3149
3157
  let o = Math.min(100, Math.max(0, Math.round(a / r * 100)));
3150
- return o >= Vn(n) ? {
3158
+ return o >= Hn(n) ? {
3151
3159
  label: `估算上下文 ${o}% · 即将压缩`,
3152
3160
  phase: "warning",
3153
3161
  percent: o,
@@ -3163,8 +3171,8 @@ function Hn({ messages: e, draftInput: t, selectedModel: n }) {
3163
3171
  }
3164
3172
  //#endregion
3165
3173
  //#region src/components/chat/ConnectedMessageList.tsx
3166
- function Un({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback: r, onRespondToApproval: i, onStopGeneration: a, onCancelRemote: o, checkpointResumeEnabled: s = !1, onResumeCheckpoint: c, onLoadOlderSessionEvents: l }) {
3167
- let u = q((e) => e.messages), d = R((e) => e.currentSessionId), f = I((e) => !!(e.getSessionActivity(d) && e.isSessionStreaming(d))), p = I((e) => e.getSessionActivity(d)), h = Q((e) => e.getSessionCheckpoints(d)), g = R((e) => d ? e.eventCache[d] : null), v = _((e) => e.input), y = F((e) => e.availableModels), b = F((e) => e.selectedModel), ee = _((e) => e.previewAttachment), te = _((e) => e.previewImageSize), x = j(null), S = j(!0), C = j(!1), ne = j(0), w = j(f), D = j(!1), O = ae(() => y.find((e) => e.id === b) || null, [y, b]), ie = ae(() => Hn({
3174
+ function Wn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback: r, onRespondToApproval: i, onStopGeneration: a, onCancelRemote: o, checkpointResumeEnabled: s = !1, onResumeCheckpoint: c, onLoadOlderSessionEvents: l }) {
3175
+ let u = q((e) => e.messages), d = R((e) => e.currentSessionId), f = I((e) => !!(e.getSessionActivity(d) && e.isSessionStreaming(d))), p = I((e) => e.getSessionActivity(d)), h = Q((e) => e.getSessionCheckpoints(d)), g = R((e) => d ? e.eventCache[d] : null), v = _((e) => e.input), y = F((e) => e.availableModels), b = F((e) => e.selectedModel), ee = _((e) => e.previewAttachment), te = _((e) => e.previewImageSize), x = j(null), S = j(!0), C = j(!1), ne = j(0), w = j(f), D = j(!1), O = ae(() => y.find((e) => e.id === b) || null, [y, b]), ie = ae(() => Un({
3168
3176
  messages: u,
3169
3177
  draftInput: v,
3170
3178
  selectedModel: O
@@ -3230,7 +3238,7 @@ function Un({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
3230
3238
  checkpoints: s ? h : [],
3231
3239
  onResumeCheckpoint: c,
3232
3240
  scrollRef: x
3233
- }), /* @__PURE__ */ T(Fn, {
3241
+ }), /* @__PURE__ */ T(In, {
3234
3242
  attachment: ee,
3235
3243
  isMobile: t,
3236
3244
  previewImageSize: te,
@@ -3242,7 +3250,7 @@ function Un({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
3242
3250
  }
3243
3251
  //#endregion
3244
3252
  //#region src/utils/attachment.ts
3245
- function Wn(e) {
3253
+ function Gn(e) {
3246
3254
  return [
3247
3255
  e.name,
3248
3256
  e.size,
@@ -3250,19 +3258,19 @@ function Wn(e) {
3250
3258
  e.type
3251
3259
  ].join(":");
3252
3260
  }
3253
- function Gn(e, t) {
3261
+ function Kn(e, t) {
3254
3262
  let n = /* @__PURE__ */ new Map();
3255
- for (let t of e) n.set(Wn(t), t);
3256
- for (let e of t) n.set(Wn(e), e);
3263
+ for (let t of e) n.set(Gn(t), t);
3264
+ for (let e of t) n.set(Gn(e), e);
3257
3265
  return Array.from(n.values());
3258
3266
  }
3259
- function Kn(e) {
3267
+ function qn(e) {
3260
3268
  return Array.from(e.clipboardData.items || []).filter((e) => e.kind === "file").map((e) => e.getAsFile()).filter((e) => !!e);
3261
3269
  }
3262
3270
  //#endregion
3263
3271
  //#region src/components/chat/ConnectedComposer.tsx
3264
- function qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRemote: r, isMobile: i }) {
3265
- let o = _((e) => e.input), s = _((e) => e.attachments), c = R((e) => e.currentSessionId), l = I((e) => !!(e.getSessionActivity(c) && e.isSessionStreaming(c))), u = _((e) => e.queuedDrafts), d = q((e) => e.messages), f = F((e) => e.availableModels), p = F((e) => e.selectedModel), m = j(null), h = j(null), g = ae(() => f.find((e) => e.id === p) || null, [f, p]), v = ae(() => Hn({
3272
+ function Jn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRemote: r, isMobile: i }) {
3273
+ let o = _((e) => e.input), s = _((e) => e.attachments), c = R((e) => e.currentSessionId), l = I((e) => !!(e.getSessionActivity(c) && e.isSessionStreaming(c))), u = _((e) => e.queuedDrafts), d = q((e) => e.messages), f = F((e) => e.availableModels), p = F((e) => e.selectedModel), m = j(null), h = j(null), g = ae(() => f.find((e) => e.id === p) || null, [f, p]), v = ae(() => Un({
3266
3274
  messages: d,
3267
3275
  draftInput: o,
3268
3276
  selectedModel: g
@@ -3279,7 +3287,7 @@ function qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
3279
3287
  let b = (t) => {
3280
3288
  _.getState().setInput(t.target.value), t.target.style.height = "auto", t.target.style.height = `${Math.min(t.target.scrollHeight, e)}px`;
3281
3289
  }, ee = (e) => {
3282
- e.length && _.getState().setAttachments((t) => Gn(t, e));
3290
+ e.length && _.getState().setAttachments((t) => Kn(t, e));
3283
3291
  };
3284
3292
  return /* @__PURE__ */ T(a, {
3285
3293
  attachments: s,
@@ -3293,7 +3301,7 @@ function qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
3293
3301
  onAppendAttachments: ee,
3294
3302
  onInputChange: b,
3295
3303
  onPaste: (e) => {
3296
- let t = Kn(e);
3304
+ let t = qn(e);
3297
3305
  t.length && (e.preventDefault(), e.stopPropagation(), ee(t));
3298
3306
  },
3299
3307
  onRemoveAttachment: (e) => _.getState().setAttachments((t) => t.filter((t, n) => n !== e)),
@@ -3305,7 +3313,7 @@ function qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
3305
3313
  }
3306
3314
  //#endregion
3307
3315
  //#region src/api/session.ts
3308
- async function Jn(e, t) {
3316
+ async function Yn(e, t) {
3309
3317
  let n = await K("ListSessions", {
3310
3318
  AgentId: e,
3311
3319
  Page: t?.page,
@@ -3318,15 +3326,15 @@ async function Jn(e, t) {
3318
3326
  PageSize: Number.isFinite(Number(n.PageSize)) ? Number(n.PageSize) : t?.pageSize ?? n.Sessions?.length ?? 0
3319
3327
  };
3320
3328
  }
3321
- async function Yn(e, t) {
3329
+ async function Xn(e, t) {
3322
3330
  return (await K("CreateSession", { AgentId: e }, t)).Session;
3323
3331
  }
3324
- async function Xn(e, t) {
3332
+ async function Zn(e, t) {
3325
3333
  await K("DeleteSession", { SessionId: e }, t);
3326
3334
  }
3327
3335
  //#endregion
3328
3336
  //#region src/api/events.ts
3329
- async function Zn(e, t) {
3337
+ async function Qn(e, t) {
3330
3338
  let n = await K("ListSessionEvents", {
3331
3339
  SessionId: e,
3332
3340
  Offset: t?.offset,
@@ -3341,34 +3349,34 @@ async function Zn(e, t) {
3341
3349
  }
3342
3350
  //#endregion
3343
3351
  //#region src/api/run.ts
3344
- async function Qn(e, t) {
3352
+ async function $n(e, t) {
3345
3353
  return ze("RunAgent", e, t);
3346
3354
  }
3347
3355
  //#endregion
3348
3356
  //#region src/api/checkpoints.ts
3349
- async function $n(e, t) {
3357
+ async function er(e, t) {
3350
3358
  let n = {
3351
3359
  AgentId: e.agentId,
3352
3360
  SessionId: e.sessionId
3353
3361
  };
3354
3362
  return e.runId && (n.RunId = e.runId), K("ListSessionCheckpoints", n, t);
3355
3363
  }
3356
- async function er(e, t) {
3357
- return K("PreviewCheckpointResume", {
3364
+ async function tr(e, t) {
3365
+ return K("GetCheckpointResumePreview", {
3358
3366
  AgentId: e.agentId,
3359
3367
  SessionId: e.sessionId,
3360
3368
  RunId: e.runId,
3361
3369
  CheckpointId: e.checkpointId
3362
3370
  }, t);
3363
3371
  }
3364
- async function tr(e, t) {
3372
+ async function nr(e, t) {
3365
3373
  let n = {
3366
3374
  AgentId: e.agentId,
3367
3375
  SessionId: e.sessionId
3368
3376
  };
3369
3377
  return e.runId && (n.RunId = e.runId), e.checkpointId && (n.CheckpointId = e.checkpointId), K("ListToolReceipts", n, t);
3370
3378
  }
3371
- async function nr(e, t) {
3379
+ async function rr(e, t) {
3372
3380
  let n = {
3373
3381
  AgentId: e.agentId,
3374
3382
  SessionId: e.sessionId,
@@ -3380,23 +3388,23 @@ async function nr(e, t) {
3380
3388
  }
3381
3389
  //#endregion
3382
3390
  //#region src/api/workspace.ts
3383
- async function rr(e, t, n) {
3391
+ async function ir(e, t, n) {
3384
3392
  return K("ListWorkspaceFiles", {
3385
3393
  AgentId: e,
3386
3394
  Path: t,
3387
3395
  Recursive: n
3388
3396
  });
3389
3397
  }
3390
- async function ir(e) {
3398
+ async function ar(e) {
3391
3399
  return Le("AddWorkspaceFile", e);
3392
3400
  }
3393
- async function ar(e, t) {
3401
+ async function or(e, t) {
3394
3402
  return K("DeleteWorkspaceFile", {
3395
3403
  AgentId: e,
3396
3404
  Path: t
3397
3405
  });
3398
3406
  }
3399
- async function or(e, t, n) {
3407
+ async function sr(e, t, n) {
3400
3408
  return Re("GetWorkspaceFileContent", {
3401
3409
  AgentId: e,
3402
3410
  FilePath: t
@@ -3407,38 +3415,38 @@ async function or(e, t, n) {
3407
3415
  }
3408
3416
  //#endregion
3409
3417
  //#region src/api/upload.ts
3410
- async function sr(e, t) {
3418
+ async function cr(e, t) {
3411
3419
  return Le("UploadFile", e, t);
3412
3420
  }
3413
3421
  //#endregion
3414
3422
  //#region src/core/api/facade.ts
3415
- var cr = class {
3423
+ var lr = class {
3416
3424
  async listSessions(e, t) {
3417
- return Jn(e, t);
3425
+ return Yn(e, t);
3418
3426
  }
3419
3427
  async createSession(e, t) {
3420
- return { SessionId: (await Yn(e, t)).SessionId };
3428
+ return { SessionId: (await Xn(e, t)).SessionId };
3421
3429
  }
3422
3430
  async deleteSession(e, t) {
3423
- await Xn(e, t);
3431
+ await Zn(e, t);
3424
3432
  }
3425
3433
  async listSessionEvents(e, t) {
3426
- return Zn(e, t);
3434
+ return Qn(e, t);
3427
3435
  }
3428
3436
  async listSessionCheckpoints(e, t) {
3429
- return $n(e, t);
3437
+ return er(e, t);
3430
3438
  }
3431
3439
  async previewCheckpointResume(e, t) {
3432
- return er(e, t);
3440
+ return tr(e, t);
3433
3441
  }
3434
3442
  async listToolReceipts(e, t) {
3435
- return tr(e, t);
3443
+ return nr(e, t);
3436
3444
  }
3437
3445
  async runAgent(e, t) {
3438
- return Qn(e, t);
3446
+ return $n(e, t);
3439
3447
  }
3440
3448
  async resumeRun(e, t) {
3441
- return nr(e, t);
3449
+ return rr(e, t);
3442
3450
  }
3443
3451
  async subscribeRunEvents(e, t) {
3444
3452
  return Be("SubscribeRunEvents", {
@@ -3463,16 +3471,16 @@ var cr = class {
3463
3471
  await K("DeleteResponseFeedback", e, t);
3464
3472
  }
3465
3473
  async listWorkspaceFiles(e, t, n) {
3466
- return rr(e, t, n);
3474
+ return ir(e, t, n);
3467
3475
  }
3468
3476
  async addWorkspaceFile(e) {
3469
- return ir(e);
3477
+ return ar(e);
3470
3478
  }
3471
3479
  async deleteWorkspaceFile(e, t) {
3472
- await ar(e, t);
3480
+ await or(e, t);
3473
3481
  }
3474
3482
  async getWorkspaceFileContent(e, t, n) {
3475
- return or(e, t, n);
3483
+ return sr(e, t, n);
3476
3484
  }
3477
3485
  async listAgentModels(e) {
3478
3486
  return He(e);
@@ -3481,14 +3489,14 @@ var cr = class {
3481
3489
  return Ve();
3482
3490
  }
3483
3491
  async uploadFile(e, t) {
3484
- return sr(e, t);
3492
+ return cr(e, t);
3485
3493
  }
3486
- }, lr = new cr(), ur = O.lazy(() => import("./ArtifactsPanel-BCjpJZ9m.js").then((e) => ({ default: e.ArtifactsPanel }))), dr = O.lazy(() => import("./NativeTerminalPanel-C1LtiwB7.js").then((e) => e.n).then((e) => ({ default: e.NativeTerminalPanel })));
3487
- function fr({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3488
- let a = e || lr, o = P((e) => e.agentId), s = R((e) => e.currentSessionId), c = I((e) => e.isStreaming), l = _((e) => e.sidebarOpen), u = _((e) => e.mobileSidebarOpen), d = _((e) => e.mobileActionsOpen), f = P((e) => e.agentName), p = F((e) => e.selectedModel), m = F((e) => e.availableModels), h = F((e) => e.modelSource), v = F((e) => e.modelCatalogLoaded), te = F((e) => e.thinkingMode), x = P((e) => e.agentFramework), S = P((e) => e.workspaceFiles), C = P((e) => e.accessMode), w = _((e) => e.workspacePanelOpen), D = _((e) => e.workspacePanelWidth), O = _((e) => e.workspacePanelFullscreen), ae = P((e) => e.apiFormats), M = P((e) => e.capabilities), N = ne((e) => e.visible && !!e.content), se = j([]), ce = j(null), { isMobile: L, viewportHeight: le } = Fe(), ue = ve({
3494
+ }, ur = new lr(), dr = O.lazy(() => import("./ArtifactsPanel-BCjpJZ9m.js").then((e) => ({ default: e.ArtifactsPanel }))), fr = O.lazy(() => import("./NativeTerminalPanel-C1LtiwB7.js").then((e) => e.n).then((e) => ({ default: e.NativeTerminalPanel })));
3495
+ function pr({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3496
+ let a = e || ur, o = P((e) => e.agentId), s = R((e) => e.currentSessionId), c = I((e) => e.isStreaming), l = _((e) => e.sidebarOpen), u = _((e) => e.mobileSidebarOpen), d = _((e) => e.mobileActionsOpen), f = P((e) => e.agentName), p = F((e) => e.selectedModel), m = F((e) => e.availableModels), h = F((e) => e.modelSource), v = F((e) => e.modelCatalogLoaded), te = F((e) => e.thinkingMode), x = P((e) => e.agentFramework), S = P((e) => e.workspaceFiles), C = P((e) => e.accessMode), w = _((e) => e.workspacePanelOpen), D = _((e) => e.workspacePanelWidth), O = _((e) => e.workspacePanelFullscreen), ae = P((e) => e.apiFormats), M = P((e) => e.capabilities), N = ne((e) => e.visible && !!e.content), se = j([]), ce = j(null), { isMobile: L, viewportHeight: le } = Fe(), ue = ve({
3489
3497
  isMobile: L,
3490
3498
  viewportHeight: le
3491
- }), { fetchSessions: de, loadMoreSessions: fe, loadSession: pe, loadOlderSessionEvents: me, createNewSession: he, deleteSession: ge, currentSessionIdRef: z, agentIdRef: B, runSubscriptionAbortRef: _e } = Cn({
3499
+ }), { fetchSessions: de, loadMoreSessions: fe, loadSession: pe, loadOlderSessionEvents: me, createNewSession: he, deleteSession: ge, currentSessionIdRef: z, agentIdRef: B, runSubscriptionAbortRef: _e } = wn({
3492
3500
  agentId: o,
3493
3501
  currentSessionId: s,
3494
3502
  isMobile: L,
@@ -3502,7 +3510,7 @@ function fr({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3502
3510
  R.getState().clearSessionEventCache(e), de(B.current, e);
3503
3511
  };
3504
3512
  queueMicrotask(t), window.setTimeout(t, 1800), window.setTimeout(t, 5e3);
3505
- }, [B, de]), be = m.find((e) => e.id === p) || null, { submitDraft: xe, stopGeneration: Se, disconnectRun: Ce, resumeCheckpoint: Te } = fn({
3513
+ }, [B, de]), be = m.find((e) => e.id === p) || null, { submitDraft: xe, stopGeneration: Se, disconnectRun: Ce, resumeCheckpoint: Te } = pn({
3506
3514
  agentId: o,
3507
3515
  currentSessionId: s,
3508
3516
  agentFramework: x,
@@ -3547,7 +3555,7 @@ function fr({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3547
3555
  o,
3548
3556
  z,
3549
3557
  ye
3550
- ]), { submitResponseFeedback: Oe, deleteResponseFeedback: ke, respondToApproval: je } = pn({
3558
+ ]), { submitResponseFeedback: Oe, deleteResponseFeedback: ke, respondToApproval: je } = mn({
3551
3559
  agentId: o,
3552
3560
  currentSessionId: s,
3553
3561
  isStreaming: c,
@@ -3583,7 +3591,7 @@ function fr({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3583
3591
  let Ve = /* @__PURE__ */ E("div", {
3584
3592
  className: "flex h-[var(--app-height)] min-h-[var(--app-height)] overflow-hidden bg-white font-sans text-slate-800 dark:bg-slate-900 dark:text-slate-200",
3585
3593
  children: [
3586
- /* @__PURE__ */ T(wn, {
3594
+ /* @__PURE__ */ T(Tn, {
3587
3595
  uiCapabilities: M,
3588
3596
  createNewSession: he,
3589
3597
  deleteSession: ge,
@@ -3625,7 +3633,7 @@ function fr({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3625
3633
  nativeTerminal: M.NativeTerminal,
3626
3634
  workspaceEnabled: V,
3627
3635
  onOpenWorkspace: () => _.getState().setWorkspacePanelOpen(!0)
3628
- }) : /* @__PURE__ */ E(re, { children: [/* @__PURE__ */ T(Un, {
3636
+ }) : /* @__PURE__ */ E(re, { children: [/* @__PURE__ */ T(Wn, {
3629
3637
  agentName: f,
3630
3638
  isMobile: L,
3631
3639
  onDeleteFeedback: ke,
@@ -3636,7 +3644,7 @@ function fr({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3636
3644
  checkpointResumeEnabled: M.RunLifecycle.Enabled && M.RunLifecycle.Checkpoints && M.RunLifecycle.CheckpointResume,
3637
3645
  onResumeCheckpoint: Te,
3638
3646
  onLoadOlderSessionEvents: me
3639
- }), /* @__PURE__ */ T(qn, {
3647
+ }), /* @__PURE__ */ T(Jn, {
3640
3648
  composerMaxHeight: ue,
3641
3649
  submitDraft: xe,
3642
3650
  stopGeneration: Ee,
@@ -3674,11 +3682,11 @@ function fr({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3674
3682
  }),
3675
3683
  N && /* @__PURE__ */ T(ie, {
3676
3684
  fallback: null,
3677
- children: /* @__PURE__ */ T(ur, {})
3685
+ children: /* @__PURE__ */ T(dr, {})
3678
3686
  }),
3679
3687
  Be ? /* @__PURE__ */ T(ie, {
3680
3688
  fallback: null,
3681
- children: /* @__PURE__ */ T(dr, {
3689
+ children: /* @__PURE__ */ T(fr, {
3682
3690
  capability: M.NativeTerminal,
3683
3691
  open: !0,
3684
3692
  sessionId: s,
@@ -3691,14 +3699,14 @@ function fr({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3691
3699
  }
3692
3700
  //#endregion
3693
3701
  //#region src/core/transport/sse-transport.ts
3694
- function pr(e, t) {
3702
+ function mr(e, t) {
3695
3703
  if (e.eventName === "__ping__") {
3696
3704
  I.getState().updateActivity({ countEvent: !1 });
3697
3705
  return;
3698
3706
  }
3699
3707
  t.onEvent(e);
3700
3708
  }
3701
- var mr = class {
3709
+ var hr = class {
3702
3710
  protocol = "sse-post";
3703
3711
  async connect(e, t) {
3704
3712
  let n = (await ze(e.action, e.body || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
@@ -3718,7 +3726,7 @@ var mr = class {
3718
3726
  t.onComplete();
3719
3727
  return;
3720
3728
  }
3721
- pr(e, t);
3729
+ mr(e, t);
3722
3730
  }
3723
3731
  }
3724
3732
  }
@@ -3730,7 +3738,7 @@ var mr = class {
3730
3738
  a = !0, n.cancel().catch(() => {});
3731
3739
  };
3732
3740
  }
3733
- }, hr = class {
3741
+ }, gr = class {
3734
3742
  protocol = "sse-get";
3735
3743
  async connect(e, t) {
3736
3744
  let n = (await Be(e.action, e.params || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
@@ -3750,7 +3758,7 @@ var mr = class {
3750
3758
  t.onComplete();
3751
3759
  return;
3752
3760
  }
3753
- pr(e, t);
3761
+ mr(e, t);
3754
3762
  }
3755
3763
  }
3756
3764
  }
@@ -3764,4 +3772,4 @@ var mr = class {
3764
3772
  }
3765
3773
  };
3766
3774
  //#endregion
3767
- export { fr as AgentWorkbench, cr as ApiFacadeImpl, xt as RunEngineImpl, hr as SseGetTransport, mr as SsePostTransport, ct as createProtocol };
3775
+ export { pr as AgentWorkbench, lr as ApiFacadeImpl, xt as RunEngineImpl, gr as SseGetTransport, hr as SsePostTransport, ct as createProtocol };