@kingsoftcloud/ksadk-web 0.2.17 → 0.2.19

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 (123) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist-ksadk/assets/{ArtifactsPanel-xCGwbyKe.js → ArtifactsPanel-D-SSn2ee.js} +1 -1
  3. package/dist-ksadk/assets/{CodeBlock-_d8IhXK6.js → CodeBlock-P16VOLYi.js} +1 -1
  4. package/dist-ksadk/assets/{MathMessageMarkdown-Dq5U0t0L.js → MathMessageMarkdown-CdGiQWHR.js} +1 -1
  5. package/dist-ksadk/assets/{MermaidBlock-BGEGRy9j.js → MermaidBlock-IOcal8cm.js} +6 -6
  6. package/dist-ksadk/assets/{NativeTerminalPanel-D9YIBBoT.js → NativeTerminalPanel-DGSDWsei.js} +1 -1
  7. package/dist-ksadk/assets/{arc-C-aJXEEz.js → arc-BA13sHc9.js} +1 -1
  8. package/dist-ksadk/assets/architecture-7EHR7CIX-BvUlsA6l.js +1 -0
  9. package/dist-ksadk/assets/{architectureDiagram-3BPJPVTR-BS__hbBP.js → architectureDiagram-3BPJPVTR-DzJzgVoL.js} +1 -1
  10. package/dist-ksadk/assets/{blockDiagram-GPEHLZMM-BL-uLGOT.js → blockDiagram-GPEHLZMM-UTdVcZhn.js} +1 -1
  11. package/dist-ksadk/assets/{c4Diagram-AAUBKEIU-BY64KkO8.js → c4Diagram-AAUBKEIU-Dix0GD4m.js} +1 -1
  12. package/dist-ksadk/assets/channel-CTuydARX.js +1 -0
  13. package/dist-ksadk/assets/{chunk-2J33WTMH-DFgsEcc7.js → chunk-2J33WTMH-C2JxuZ42.js} +1 -1
  14. package/dist-ksadk/assets/{chunk-4BX2VUAB-Dk1XGsDg.js → chunk-4BX2VUAB-Be57QPgD.js} +1 -1
  15. package/dist-ksadk/assets/{chunk-55IACEB6-CyYG08Ez.js → chunk-55IACEB6-WjSuy4nv.js} +1 -1
  16. package/dist-ksadk/assets/{chunk-727SXJPM-Dj-o0foT.js → chunk-727SXJPM-BOovP-b5.js} +1 -1
  17. package/dist-ksadk/assets/{chunk-AQP2D5EJ-M8cDZrZQ.js → chunk-AQP2D5EJ-DOmZNmWj.js} +1 -1
  18. package/dist-ksadk/assets/{chunk-FMBD7UC4-Mceczy0j.js → chunk-FMBD7UC4-DzwlodkU.js} +1 -1
  19. package/dist-ksadk/assets/{chunk-ND2GUHAM-dwTxQ3uL.js → chunk-ND2GUHAM-DMqAikEU.js} +1 -1
  20. package/dist-ksadk/assets/chunk-QZHKN3VN-BnCydivS.js +1 -0
  21. package/dist-ksadk/assets/classDiagram-4FO5ZUOK-BNHg45Be.js +1 -0
  22. package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-BNHg45Be.js +1 -0
  23. package/dist-ksadk/assets/{cose-bilkent-S5V4N54A-Ch6hia5Y.js → cose-bilkent-S5V4N54A-Zhy2GBnP.js} +1 -1
  24. package/dist-ksadk/assets/{dagre-BM42HDAG-nrh587vF.js → dagre-BM42HDAG-CbKrtIUz.js} +1 -1
  25. package/dist-ksadk/assets/{diagram-2AECGRRQ-DgNb_Tw5.js → diagram-2AECGRRQ-BRApgQRK.js} +1 -1
  26. package/dist-ksadk/assets/{diagram-5GNKFQAL-ND5Lir8O.js → diagram-5GNKFQAL-D0xbnDiK.js} +1 -1
  27. package/dist-ksadk/assets/{diagram-KO2AKTUF-CLrPFWcy.js → diagram-KO2AKTUF-CVugVI9L.js} +1 -1
  28. package/dist-ksadk/assets/{diagram-LMA3HP47-D_Sgy27v.js → diagram-LMA3HP47-DozUGgee.js} +1 -1
  29. package/dist-ksadk/assets/{diagram-OG6HWLK6-QbrzvyWM.js → diagram-OG6HWLK6-ZOYsKlru.js} +1 -1
  30. package/dist-ksadk/assets/{dist-DzZB5tor.js → dist-2hInLS_J.js} +1 -1
  31. package/dist-ksadk/assets/{dist-CVN4jSSW.js → dist-8EEyGgDx.js} +1 -1
  32. package/dist-ksadk/assets/{dist-CPRGtEH9.js → dist-8_SfK1IP.js} +1 -1
  33. package/dist-ksadk/assets/{dist-CMLwqcZ6.js → dist-B0NP_Z0z.js} +1 -1
  34. package/dist-ksadk/assets/{dist-CKb66fZP.js → dist-BIJVDMuB.js} +1 -1
  35. package/dist-ksadk/assets/{dist-DsvaqR-b.js → dist-BmlMPsCc.js} +1 -1
  36. package/dist-ksadk/assets/{dist-BbS7HTJp.js → dist-BrCcQ47T.js} +1 -1
  37. package/dist-ksadk/assets/{dist-D_ZZ4fV3.js → dist-BssVmjIo.js} +1 -1
  38. package/dist-ksadk/assets/{dist-DbpuiQKj.js → dist-C3HIIaN5.js} +1 -1
  39. package/dist-ksadk/assets/{dist-TIHF8jeZ.js → dist-CPBtqRTW.js} +1 -1
  40. package/dist-ksadk/assets/{dist-Q9_gg2Vb.js → dist-CkEKJFtk.js} +1 -1
  41. package/dist-ksadk/assets/{dist-ClZgJL0A.js → dist-D-JMdWPQ.js} +1 -1
  42. package/dist-ksadk/assets/{dist-DRYY8roY.js → dist-D-xOD048.js} +1 -1
  43. package/dist-ksadk/assets/{dist-Ldf-oz8Y.js → dist-D57wnGWd.js} +1 -1
  44. package/dist-ksadk/assets/{dist-EhrdTAKL.js → dist-DL_NKc_z.js} +1 -1
  45. package/dist-ksadk/assets/{dist-Dy6ODCG9.js → dist-DMezvBGJ.js} +1 -1
  46. package/dist-ksadk/assets/{dist-DEJYL3UK.js → dist-DmFaq_Iy.js} +1 -1
  47. package/dist-ksadk/assets/{dist-haZBFH4L.js → dist-Dp0k7bWI.js} +1 -1
  48. package/dist-ksadk/assets/{dist-JBDG5w09.js → dist-DpKtt4Bo.js} +1 -1
  49. package/dist-ksadk/assets/{dist-B98JDMe6.js → dist-DyOkZmze.js} +1 -1
  50. package/dist-ksadk/assets/{dist-DRSyDPdG.js → dist-DyWsb78Q.js} +1 -1
  51. package/dist-ksadk/assets/{dist-B7Z2ybmq.js → dist-gX6GOLKq.js} +1 -1
  52. package/dist-ksadk/assets/{erDiagram-TEJ5UH35-DWsi2HhW.js → erDiagram-TEJ5UH35-Bk-9bgE5.js} +1 -1
  53. package/dist-ksadk/assets/eventmodeling-FCH6USID-DsAgWnlf.js +1 -0
  54. package/dist-ksadk/assets/{flowDiagram-I6XJVG4X-BAtVSiaU.js → flowDiagram-I6XJVG4X-Dn9kZVuZ.js} +1 -1
  55. package/dist-ksadk/assets/{ganttDiagram-6RSMTGT7-jI1A45Ie.js → ganttDiagram-6RSMTGT7-BGxXlJqm.js} +1 -1
  56. package/dist-ksadk/assets/gitGraph-WXDBUCRP-BIao9Yjg.js +1 -0
  57. package/dist-ksadk/assets/{gitGraphDiagram-PVQCEYII-C3fW-u3c.js → gitGraphDiagram-PVQCEYII-C7Q0X-wi.js} +1 -1
  58. package/dist-ksadk/assets/index-C00Lwg3L.js +165 -0
  59. package/dist-ksadk/assets/info-J43DQDTF-CyipqGxU.js +1 -0
  60. package/dist-ksadk/assets/{infoDiagram-5YYISTIA-7Fgxfiew.js → infoDiagram-5YYISTIA-BO_CSqq5.js} +1 -1
  61. package/dist-ksadk/assets/{ishikawaDiagram-YF4QCWOH-dXkKN_2f.js → ishikawaDiagram-YF4QCWOH-eYLPLd46.js} +1 -1
  62. package/dist-ksadk/assets/{journeyDiagram-JHISSGLW-Noo-i6Co.js → journeyDiagram-JHISSGLW-De9geSb0.js} +1 -1
  63. package/dist-ksadk/assets/{kanban-definition-UN3LZRKU-C-qkrNz8.js → kanban-definition-UN3LZRKU-Cs80kQto.js} +1 -1
  64. package/dist-ksadk/assets/{katex-B907dXuX.js → katex-DSrCFD8n.js} +1 -1
  65. package/dist-ksadk/assets/{linear-CiSItak9.js → linear-CN9sbKTF.js} +1 -1
  66. package/dist-ksadk/assets/{mermaid-parser.core-g7ZK2XzV.js → mermaid-parser.core-DlgSBU8l.js} +2 -2
  67. package/dist-ksadk/assets/{mindmap-definition-RKZ34NQL-KEpzYVDW.js → mindmap-definition-RKZ34NQL-9afz7Oug.js} +1 -1
  68. package/dist-ksadk/assets/packet-YPE3B663-CGkyRxlg.js +1 -0
  69. package/dist-ksadk/assets/pie-LRSECV5Y-M0uWAf4n.js +1 -0
  70. package/dist-ksadk/assets/{pieDiagram-4H26LBE5-BetRBqce.js → pieDiagram-4H26LBE5-DPv_VstN.js} +1 -1
  71. package/dist-ksadk/assets/{quadrantDiagram-W4KKPZXB-NTMW-2JW.js → quadrantDiagram-W4KKPZXB-o77wZ1XK.js} +1 -1
  72. package/dist-ksadk/assets/radar-GUYGQ44K-Bdbm24-x.js +1 -0
  73. package/dist-ksadk/assets/{requirementDiagram-4Y6WPE33-DGz7kAYq.js → requirementDiagram-4Y6WPE33-BYVw81VC.js} +1 -1
  74. package/dist-ksadk/assets/{sankeyDiagram-5OEKKPKP-B1npa6g0.js → sankeyDiagram-5OEKKPKP-B7nZFMKT.js} +1 -1
  75. package/dist-ksadk/assets/{sequenceDiagram-3UESZ5HK-CiiQg1kp.js → sequenceDiagram-3UESZ5HK-BGRRrFw5.js} +1 -1
  76. package/dist-ksadk/assets/{stateDiagram-AJRCARHV-DeEoMo9D.js → stateDiagram-AJRCARHV-BUfHCoPs.js} +1 -1
  77. package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-8xBN_gLM.js +1 -0
  78. package/dist-ksadk/assets/{timeline-definition-PNZ67QCA-C4KoD7P2.js → timeline-definition-PNZ67QCA-FbCTGrf9.js} +1 -1
  79. package/dist-ksadk/assets/treeView-BLDUP644-npMo0ak1.js +1 -0
  80. package/dist-ksadk/assets/treemap-LRROVOQU-CHdzrrdo.js +1 -0
  81. package/dist-ksadk/assets/{vennDiagram-CIIHVFJN-DuDr8-7R.js → vennDiagram-CIIHVFJN-DWgwtPsJ.js} +1 -1
  82. package/dist-ksadk/assets/wardley-L42UT6IY-BEQz7wyy.js +1 -0
  83. package/dist-ksadk/assets/{wardleyDiagram-YWT4CUSO-C6phy1Vu.js → wardleyDiagram-YWT4CUSO-2x8G-tTM.js} +1 -1
  84. package/dist-ksadk/assets/{xychartDiagram-2RQKCTM6-Cx6jCs70.js → xychartDiagram-2RQKCTM6-Drma3AYl.js} +1 -1
  85. package/dist-ksadk/index.html +1 -1
  86. package/dist-lib/{ArtifactsPanel-D3AiN69_.js → ArtifactsPanel-DCn5q1OB.js} +1 -1
  87. package/dist-lib/{CodeBlock-CWHejqEk.js → CodeBlock-BGJr6bCf.js} +1 -1
  88. package/dist-lib/{MathMessageMarkdown-BlZXusY6.js → MathMessageMarkdown-DQPFplDT.js} +2 -2
  89. package/dist-lib/{NativeTerminalPanel-mQwtEFvo.js → NativeTerminalPanel-CjyPyYC4.js} +1 -1
  90. package/dist-lib/{WorkspacePanelContainer-D5WLGlO_.js → WorkspacePanelContainer-fvYVV4lp.js} +15 -17
  91. package/dist-lib/api/messages.d.ts +51 -0
  92. package/dist-lib/api/messages.d.ts.map +1 -0
  93. package/dist-lib/api/session.d.ts +20 -0
  94. package/dist-lib/api/session.d.ts.map +1 -1
  95. package/dist-lib/components/chat/ConnectedMessageList.d.ts.map +1 -1
  96. package/dist-lib/components.js +2 -2
  97. package/dist-lib/core/api/facade.d.ts +12 -0
  98. package/dist-lib/core/api/facade.d.ts.map +1 -1
  99. package/dist-lib/core/api/types.d.ts +38 -0
  100. package/dist-lib/core/api/types.d.ts.map +1 -1
  101. package/dist-lib/hooks/useSessionLifecycle.d.ts.map +1 -1
  102. package/dist-lib/runtime.js +572 -549
  103. package/dist-lib/utils/messages.d.ts +17 -0
  104. package/dist-lib/utils/messages.d.ts.map +1 -0
  105. package/package.json +1 -1
  106. package/dist-ksadk/assets/architecture-7EHR7CIX-ElkGISgr.js +0 -1
  107. package/dist-ksadk/assets/channel-95jCPDn-.js +0 -1
  108. package/dist-ksadk/assets/chunk-QZHKN3VN-DJz-BVY8.js +0 -1
  109. package/dist-ksadk/assets/classDiagram-4FO5ZUOK-DQhxN0zQ.js +0 -1
  110. package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-DQhxN0zQ.js +0 -1
  111. package/dist-ksadk/assets/eventmodeling-FCH6USID-R5MOzX8B.js +0 -1
  112. package/dist-ksadk/assets/gitGraph-WXDBUCRP-ycpCtFsu.js +0 -1
  113. package/dist-ksadk/assets/index-Bbbbu0em.js +0 -165
  114. package/dist-ksadk/assets/info-J43DQDTF-BG5UaFoK.js +0 -1
  115. package/dist-ksadk/assets/packet-YPE3B663-B4R_RXtl.js +0 -1
  116. package/dist-ksadk/assets/pie-LRSECV5Y-ZvqONtr7.js +0 -1
  117. package/dist-ksadk/assets/radar-GUYGQ44K-MPUTAFuT.js +0 -1
  118. package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-DdnBxj5o.js +0 -1
  119. package/dist-ksadk/assets/treeView-BLDUP644-BVT3-ekB.js +0 -1
  120. package/dist-ksadk/assets/treemap-LRROVOQU-DwsRqHk_.js +0 -1
  121. package/dist-ksadk/assets/wardley-L42UT6IY-Btn2OWZX.js +0 -1
  122. package/dist-lib/utils/run-state.d.ts +0 -3
  123. package/dist-lib/utils/run-state.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { i as e, t } from "./capabilities-CiyyeRQ9.js";
2
- import { C as n, D as r, E as i, O as a, T as o, _ as s, b as c, c as l, f as u, g as d, h as f, k as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as ee, u as te, v as x, w as S, y as C } from "./WorkspacePanelContainer-D5WLGlO_.js";
2
+ import { C as n, D as r, E as i, O as a, T as o, _ as s, b as c, c as l, f as u, g as d, h as f, k as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as ee, u as te, v as x, w as S, y as C } from "./WorkspacePanelContainer-fvYVV4lp.js";
3
3
  import { t as w } from "./artifact-BfFsPe5A.js";
4
4
  import { X as T } from "lucide-react";
5
5
  import { Fragment as ne, jsx as E, jsxs as D } from "react/jsx-runtime";
@@ -314,16 +314,16 @@ var z = P()((e) => ({
314
314
  return delete n[t], { eventCache: n };
315
315
  })
316
316
  })), B = .28;
317
- function V(e, t = 768) {
317
+ function ge(e, t = 768) {
318
318
  return Number(e) <= t;
319
319
  }
320
- function ge({ isMobile: e, desktopSidebarOpen: t, mobileSidebarOpen: n }) {
320
+ function _e({ isMobile: e, desktopSidebarOpen: t, mobileSidebarOpen: n }) {
321
321
  return {
322
322
  desktopSidebarVisible: !e && !!t,
323
323
  mobileDrawerVisible: !!(e && n)
324
324
  };
325
325
  }
326
- function _e({ isMobile: e, viewportHeight: t, desktopMaxHeight: n = 160 }) {
326
+ function ve({ isMobile: e, viewportHeight: t, desktopMaxHeight: n = 160 }) {
327
327
  if (!e) return n;
328
328
  let r = Number(t);
329
329
  if (!Number.isFinite(r) || r <= 0) return n;
@@ -332,33 +332,33 @@ function _e({ isMobile: e, viewportHeight: t, desktopMaxHeight: n = 160 }) {
332
332
  }
333
333
  //#endregion
334
334
  //#region src/utils/session.js
335
- var ve = "ksadk:webui:selected-session:";
336
- function ye(e) {
335
+ var ye = "ksadk:webui:selected-session:";
336
+ function be(e) {
337
337
  return String(e || "").trim() || "default-agent";
338
338
  }
339
- function be(e) {
339
+ function xe(e) {
340
340
  if (e && typeof e.getItem == "function") return e;
341
341
  try {
342
342
  if (typeof window < "u" && window.localStorage) return window.localStorage;
343
343
  } catch {}
344
344
  return null;
345
345
  }
346
- function xe(e) {
347
- return `${ve}${ye(e)}`;
346
+ function Se(e) {
347
+ return `${ye}${be(e)}`;
348
348
  }
349
- function Se(e, t) {
350
- let n = be(t);
349
+ function Ce(e, t) {
350
+ let n = xe(t);
351
351
  if (!n) return null;
352
352
  try {
353
- return String(n.getItem(xe(e)) || "").trim() || null;
353
+ return String(n.getItem(Se(e)) || "").trim() || null;
354
354
  } catch {
355
355
  return null;
356
356
  }
357
357
  }
358
- function Ce(e, t, n) {
359
- let r = be(n);
358
+ function we(e, t, n) {
359
+ let r = xe(n);
360
360
  if (!r) return;
361
- let i = xe(e), a = String(t || "").trim();
361
+ let i = Se(e), a = String(t || "").trim();
362
362
  try {
363
363
  if (a) {
364
364
  r.setItem(i, a);
@@ -367,7 +367,7 @@ function Ce(e, t, n) {
367
367
  r.removeItem(i);
368
368
  } catch {}
369
369
  }
370
- function we(e, t) {
370
+ function Te(e, t) {
371
371
  if (!Array.isArray(e) || e.length === 0) return null;
372
372
  let n = String(t || "").trim();
373
373
  if (n && e.some((e) => String(e?.SessionId || "").trim() === n)) return n;
@@ -379,66 +379,66 @@ function we(e, t) {
379
379
  }
380
380
  //#endregion
381
381
  //#region src/utils/native-platform.js
382
- var Te = new Map([["openclaw", "OpenClaw"], ["hermes", "Hermes"]]);
383
- function Ee(e) {
384
- return String(e || "").trim().toLowerCase();
385
- }
382
+ var Ee = new Map([["openclaw", "OpenClaw"], ["hermes", "Hermes"]]);
386
383
  function De(e) {
387
384
  return String(e || "").trim().toLowerCase();
388
385
  }
389
386
  function Oe(e) {
387
+ return String(e || "").trim().toLowerCase();
388
+ }
389
+ function ke(e) {
390
390
  try {
391
391
  return new URL("/", e).toString();
392
392
  } catch {
393
393
  return "/";
394
394
  }
395
395
  }
396
- function ke({ capability: e, agentFramework: t, accessMode: n, origin: r }) {
397
- let i = Ee(n);
396
+ function Ae({ capability: e, agentFramework: t, accessMode: n, origin: r }) {
397
+ let i = De(n);
398
398
  if (i !== "owner" && i !== "private" || !e?.Enabled) return null;
399
- let a = Te.get(De(t)) || "运行时";
399
+ let a = Ee.get(Oe(t)) || "运行时";
400
400
  return {
401
- href: typeof e.Href == "string" && e.Href ? new URL(e.Href, Oe(r)).toString() : Oe(r),
401
+ href: typeof e.Href == "string" && e.Href ? new URL(e.Href, ke(r)).toString() : ke(r),
402
402
  label: typeof e.Label == "string" && e.Label ? e.Label : "管理平台",
403
403
  title: `打开 ${a} 原生管理平台`
404
404
  };
405
405
  }
406
406
  //#endregion
407
407
  //#region src/utils/model-options.js
408
- var Ae = new Set([
408
+ var je = new Set([
409
409
  "auto",
410
410
  "enabled",
411
411
  "disabled"
412
412
  ]);
413
- function je(e) {
413
+ function Me(e) {
414
414
  let t = String(e || "").trim().toLowerCase();
415
- return Ae.has(t) ? t : "auto";
415
+ return je.has(t) ? t : "auto";
416
416
  }
417
- function Me(e) {
418
- let t = je(e);
417
+ function Ne(e) {
418
+ let t = Me(e);
419
419
  if (t === "disabled") return { thinking: { type: "disabled" } };
420
420
  if (t === "enabled") return { thinking: { type: "enabled" } };
421
421
  }
422
422
  //#endregion
423
423
  //#region src/hooks/useResponsiveViewport.ts
424
- function Ne() {
424
+ function Pe() {
425
425
  return typeof window > "u" ? 900 : Math.round(window.visualViewport?.height || window.innerHeight || 900);
426
426
  }
427
- function H() {
427
+ function V() {
428
428
  return typeof window > "u" ? {
429
429
  isMobile: !1,
430
430
  viewportHeight: 900
431
431
  } : {
432
- isMobile: V(window.innerWidth, 768),
433
- viewportHeight: Ne()
432
+ isMobile: ge(window.innerWidth, 768),
433
+ viewportHeight: Pe()
434
434
  };
435
435
  }
436
- function Pe() {
437
- let [e, t] = ae(() => H());
436
+ function Fe() {
437
+ let [e, t] = ae(() => V());
438
438
  return j(() => {
439
439
  if (typeof window > "u") return;
440
440
  let e = window.matchMedia("(max-width: 768px)"), n = () => {
441
- t(H());
441
+ t(V());
442
442
  };
443
443
  n();
444
444
  let r = typeof e.addEventListener == "function" ? (e.addEventListener("change", n), () => e.removeEventListener("change", n)) : (e.addListener(n), () => e.removeListener(n));
@@ -449,76 +449,76 @@ function Pe() {
449
449
  }
450
450
  //#endregion
451
451
  //#region src/api/client.ts
452
- var U = class extends Error {
452
+ var H = class extends Error {
453
453
  code;
454
454
  detail;
455
455
  constructor(e, t, n) {
456
456
  super(t), this.name = "ApiError", this.code = e, this.detail = n;
457
457
  }
458
- }, W = class extends Error {
458
+ }, U = class extends Error {
459
459
  constructor(e = "请求已取消") {
460
460
  super(e), this.name = "CancelledError";
461
461
  }
462
- }, G = "/agentengine/api/v1";
463
- async function Fe(e) {
462
+ }, W = "/agentengine/api/v1";
463
+ async function Ie(e) {
464
464
  let t;
465
465
  try {
466
466
  t = await e.json();
467
467
  } catch {
468
- throw new U(-2, "响应格式异常");
468
+ throw new H(-2, "响应格式异常");
469
469
  }
470
- if (!e.ok) throw new U(e.status, t?.Message || `HTTP ${e.status}`, t);
471
- if (t?.Code !== void 0 && t.Code !== 0) throw new U(t.Code, t.Message || "请求失败", t);
470
+ if (!e.ok) throw new H(e.status, t?.Message || `HTTP ${e.status}`, t);
471
+ if (t?.Code !== void 0 && t.Code !== 0) throw new H(t.Code, t.Message || "请求失败", t);
472
472
  return t.Data;
473
473
  }
474
- function K(e) {
475
- throw e instanceof DOMException && e.name === "AbortError" ? new W() : e;
474
+ function G(e) {
475
+ throw e instanceof DOMException && e.name === "AbortError" ? new U() : e;
476
476
  }
477
- async function q(e, t, n) {
477
+ async function K(e, t, n) {
478
478
  let r;
479
479
  try {
480
- r = await fetch(`${G}/${e}`, {
480
+ r = await fetch(`${W}/${e}`, {
481
481
  method: "POST",
482
482
  headers: { "Content-Type": "application/json" },
483
483
  body: JSON.stringify(t),
484
484
  signal: n?.signal
485
485
  });
486
486
  } catch (e) {
487
- throw K(e);
487
+ throw G(e);
488
488
  }
489
- return Fe(r);
489
+ return Ie(r);
490
490
  }
491
- async function Ie(e, t, n) {
491
+ async function Le(e, t, n) {
492
492
  let r;
493
493
  try {
494
- r = await fetch(`${G}/${e}`, {
494
+ r = await fetch(`${W}/${e}`, {
495
495
  method: "POST",
496
496
  body: t,
497
497
  signal: n?.signal
498
498
  });
499
499
  } catch (e) {
500
- throw K(e);
500
+ throw G(e);
501
501
  }
502
- return Fe(r);
502
+ return Ie(r);
503
503
  }
504
- async function Le(e, t, n) {
505
- let r = new URLSearchParams(t).toString(), i = r ? `${G}/${e}?${r}` : `${G}/${e}`, a;
504
+ async function Re(e, t, n) {
505
+ let r = new URLSearchParams(t).toString(), i = r ? `${W}/${e}?${r}` : `${W}/${e}`, a;
506
506
  try {
507
507
  a = await fetch(i, { signal: n?.signal });
508
508
  } catch (e) {
509
- throw K(e);
509
+ throw G(e);
510
510
  }
511
- if (!a.ok) throw new U(a.status, `资源获取失败: ${a.statusText}`);
511
+ if (!a.ok) throw new H(a.status, `资源获取失败: ${a.statusText}`);
512
512
  try {
513
513
  return n?.asText ? await a.text() : await a.blob();
514
514
  } catch {
515
- throw new U(-3, "文件读取失败");
515
+ throw new H(-3, "文件读取失败");
516
516
  }
517
517
  }
518
- async function Re(e, t, n) {
518
+ async function ze(e, t, n) {
519
519
  let r;
520
520
  try {
521
- r = await fetch(`${G}/${e}`, {
521
+ r = await fetch(`${W}/${e}`, {
522
522
  method: "POST",
523
523
  headers: {
524
524
  "Content-Type": "application/json",
@@ -528,46 +528,46 @@ async function Re(e, t, n) {
528
528
  signal: n?.signal
529
529
  });
530
530
  } catch (e) {
531
- throw K(e);
531
+ throw G(e);
532
532
  }
533
- if (!r.ok) throw new U(r.status, `流式请求失败: ${r.statusText}`);
534
- if (!r.body) throw new U(-1, "无法获取响应流");
533
+ if (!r.ok) throw new H(r.status, `流式请求失败: ${r.statusText}`);
534
+ if (!r.body) throw new H(-1, "无法获取响应流");
535
535
  return r.body;
536
536
  }
537
- async function ze(e, t, n) {
538
- let r = new URLSearchParams(t).toString(), i = r ? `${G}/${e}?${r}` : `${G}/${e}`, a;
537
+ async function Be(e, t, n) {
538
+ let r = new URLSearchParams(t).toString(), i = r ? `${W}/${e}?${r}` : `${W}/${e}`, a;
539
539
  try {
540
540
  a = await fetch(i, {
541
541
  headers: { Accept: "text/event-stream" },
542
542
  signal: n?.signal
543
543
  });
544
544
  } catch (e) {
545
- throw K(e);
545
+ throw G(e);
546
546
  }
547
- if (!a.ok) throw new U(a.status, `流式订阅失败: ${a.statusText}`);
548
- if (!a.body) throw new U(-1, "无法获取响应流");
547
+ if (!a.ok) throw new H(a.status, `流式订阅失败: ${a.statusText}`);
548
+ if (!a.body) throw new H(-1, "无法获取响应流");
549
549
  return a.body;
550
550
  }
551
551
  //#endregion
552
552
  //#region src/api/bootstrap.ts
553
- async function Be() {
554
- return q("GetAgentUiBootstrap", {});
553
+ async function Ve() {
554
+ return K("GetAgentUiBootstrap", {});
555
555
  }
556
556
  //#endregion
557
557
  //#region src/api/model.ts
558
- async function Ve(e) {
559
- return q("ListAgentModels", { AgentId: e });
558
+ async function He(e) {
559
+ return K("ListAgentModels", { AgentId: e });
560
560
  }
561
561
  //#endregion
562
562
  //#region src/hooks/useBootstrap.ts
563
- function He(e) {
563
+ function Ue(e) {
564
564
  if (!Array.isArray(e)) return ["responses", "chat_completions"];
565
565
  let t = e.filter((e) => e === "responses" || e === "chat_completions");
566
566
  return t.length > 0 ? t : ["responses", "chat_completions"];
567
567
  }
568
- async function Ue(e) {
568
+ async function We(e) {
569
569
  try {
570
- let t = await Ve(e), n = t?.Models;
570
+ let t = await He(e), n = t?.Models;
571
571
  Array.isArray(n) && I.getState().upsertModels(n);
572
572
  let r = t;
573
573
  r?.Current && !I.getState().selectedModel && I.getState().setSelectedModel(String(r.Current)), r?.Source && I.getState().setModelSource(String(r.Source));
@@ -577,11 +577,11 @@ async function Ue(e) {
577
577
  I.getState().setModelCatalogLoaded(!0);
578
578
  }
579
579
  }
580
- function We(n) {
580
+ function Ge(n) {
581
581
  j(() => {
582
582
  (async () => {
583
583
  try {
584
- let r = await Be(), i = r, a = i?.Agent, o = String(a?.AgentId || "default-agent");
584
+ let r = await Ve(), i = r, a = i?.Agent, o = String(a?.AgentId || "default-agent");
585
585
  if (F.getState().setAgentId(o), a?.Name) {
586
586
  let e = String(a.Name);
587
587
  F.getState().setAgentName(e), document.title = e;
@@ -589,31 +589,31 @@ function We(n) {
589
589
  let s = String(a?.Framework || "").trim().toLowerCase();
590
590
  F.getState().setAgentFramework(s);
591
591
  let c = e(r);
592
- F.getState().setCapabilities(c), F.getState().setApiFormats(He(c.HostedChat.ApiFormats)), F.getState().setAccessMode(String(i?.AccessMode || "Owner"));
592
+ F.getState().setCapabilities(c), F.getState().setApiFormats(Ue(c.HostedChat.ApiFormats)), F.getState().setAccessMode(String(i?.AccessMode || "Owner"));
593
593
  let l = c.WorkspaceFiles && i?.WorkspaceFiles ? i.WorkspaceFiles : null;
594
- F.getState().setWorkspaceFiles(l), l || _.getState().setWorkspacePanelOpen(!1), t(c) && n.fetchSessions(o, Se(o));
594
+ F.getState().setWorkspaceFiles(l), l || _.getState().setWorkspacePanelOpen(!1), t(c) && n.fetchSessions(o, Ce(o));
595
595
  let u = i?.Model;
596
- u?.id && (I.getState().setSelectedModel(u.id), I.getState().upsertModels([u]), I.getState().setModelSource(u.source || "")), Ue(o);
596
+ u?.id && (I.getState().setSelectedModel(u.id), I.getState().upsertModels([u]), I.getState().setModelSource(u.source || "")), We(o);
597
597
  } catch (t) {
598
598
  console.error("Failed to fetch bootstrap:", t), F.getState().setCapabilities(e({ Data: {
599
599
  Agent: { Framework: "" },
600
600
  ApiFormats: ["responses", "chat_completions"],
601
601
  Capabilities: {}
602
- } })), n.fetchSessions("default-agent", Se("default-agent")), Ue("default-agent");
602
+ } })), n.fetchSessions("default-agent", Ce("default-agent")), We("default-agent");
603
603
  }
604
604
  })();
605
605
  }, []);
606
606
  }
607
607
  //#endregion
608
608
  //#region src/stores/message.ts
609
- var J = P()((e) => ({
609
+ var q = P()((e) => ({
610
610
  messages: [],
611
611
  setMessages: (t) => e({ messages: t }),
612
612
  patchMessages: (t) => e((e) => ({ messages: t(e.messages) }))
613
613
  }));
614
614
  //#endregion
615
615
  //#region src/utils/responses-stream.js
616
- function Ge() {
616
+ function Ke() {
617
617
  return {
618
618
  toolNames: /* @__PURE__ */ new Map(),
619
619
  toolArguments: /* @__PURE__ */ new Map(),
@@ -621,55 +621,55 @@ function Ge() {
621
621
  currentResponseId: ""
622
622
  };
623
623
  }
624
- function Ke(e) {
624
+ function qe(e) {
625
625
  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("") : e && typeof e == "object" && typeof e.text == "string" ? e.text : "";
626
626
  }
627
- function Y(e) {
627
+ function J(e) {
628
628
  return e == null ? "" : typeof e == "string" ? e : typeof e == "object" ? JSON.stringify(e, null, 2) : String(e);
629
629
  }
630
- function X(...e) {
630
+ function Y(...e) {
631
631
  for (let t of e) {
632
- let e = Ke(t);
632
+ let e = qe(t);
633
633
  if (e) return e;
634
634
  }
635
635
  return "";
636
636
  }
637
- function qe(e, t) {
637
+ function Je(e, t) {
638
638
  return String(e?.id || e?.item_id || e?.call_id || t?.item_id || t?.call_id || t?.output_index || "");
639
639
  }
640
- function Je(e, t, n, r, i) {
640
+ function Ye(e, t, n, r, i) {
641
641
  t && (e.toolNames.set(t, r), e.toolArguments.set(t, i));
642
642
  let a = String(n?.call_id || "");
643
643
  a && (e.callIds.set(a, t || r), e.toolNames.set(a, r), e.toolArguments.set(a, i));
644
644
  }
645
- function Ye(e, t, n, r = "tool") {
645
+ function Xe(e, t, n, r = "tool") {
646
646
  let i = String(n?.call_id || "");
647
647
  return String(n?.name || n?.tool_name || (t ? e.toolNames.get(t) : "") || (i ? e.toolNames.get(i) : "") || r);
648
648
  }
649
- function Xe(e) {
649
+ function Ze(e) {
650
650
  if (!e || typeof e != "object") return "";
651
- let t = Ke(e.content);
652
- return X(e.output_text, e.text, e.summary_text, e.summary, e.delta, t);
651
+ let t = qe(e.content);
652
+ return Y(e.output_text, e.text, e.summary_text, e.summary, e.delta, t);
653
653
  }
654
- function Ze(e) {
655
- let t = e?.response && typeof e.response == "object" ? e.response : e, n = X(t?.output_text, t?.text);
654
+ function Qe(e) {
655
+ let t = e?.response && typeof e.response == "object" ? e.response : e, n = Y(t?.output_text, t?.text);
656
656
  if (n) return n;
657
657
  let r = Array.isArray(t?.output) ? t.output : [];
658
658
  for (let e of r) {
659
- let t = Xe(e);
659
+ let t = Ze(e);
660
660
  if (t) return t;
661
661
  }
662
662
  return "";
663
663
  }
664
- function Qe(e) {
664
+ function $e(e) {
665
665
  let t = e?.response && typeof e.response == "object" ? e.response : e;
666
666
  return Array.isArray(t?.output) ? t.output : [];
667
667
  }
668
- function $e({ data: e, state: t, status: n }) {
669
- let r = e?.item || e?.output_item || e || {}, i = String(r.type || "").trim(), a = qe(r, e);
668
+ function et({ data: e, state: t, status: n }) {
669
+ let r = e?.item || e?.output_item || e || {}, i = String(r.type || "").trim(), a = Je(r, e);
670
670
  if (i === "function_call") {
671
- let e = Ye(t, a, r), i = Y(r.arguments ?? r.args ?? r.input);
672
- return Je(t, a, r, e, i), [{
671
+ let e = Xe(t, a, r), i = J(r.arguments ?? r.args ?? r.input);
672
+ return Ye(t, a, r, e, i), [{
673
673
  type: "tool_upsert",
674
674
  name: e,
675
675
  args: i,
@@ -678,27 +678,27 @@ function $e({ data: e, state: t, status: n }) {
678
678
  }
679
679
  if (i === "function_call_output") return [{
680
680
  type: "tool_result",
681
- name: Ye(t, a, r),
682
- output: Y(r.output ?? r.result ?? r.content)
681
+ name: Xe(t, a, r),
682
+ output: J(r.output ?? r.result ?? r.content)
683
683
  }];
684
684
  if (i === "mcp_approval_request") return [{
685
685
  type: "tool_upsert",
686
686
  name: String(r.name || "approval"),
687
- args: Y(r.arguments ?? r.args),
687
+ args: J(r.arguments ?? r.args),
688
688
  status: "paused",
689
689
  approvalRequestId: String(r.id || r.approval_request_id || ""),
690
690
  previousResponseId: String(e?.response_id || t.currentResponseId || ""),
691
691
  serverLabel: String(r.server_label || "")
692
692
  }];
693
693
  if (i === "reasoning" || i === "reasoning_summary" || i === "reasoning_summary_text") {
694
- let e = Xe(r);
694
+ let e = Ze(r);
695
695
  return e ? [{
696
696
  type: "reasoning_delta",
697
697
  text: e
698
698
  }] : [];
699
699
  }
700
700
  if (i === "message") {
701
- let e = Xe(r);
701
+ let e = Ze(r);
702
702
  return e ? [{
703
703
  type: n === "completed" ? "text_final" : "text_delta",
704
704
  text: e
@@ -706,31 +706,31 @@ function $e({ data: e, state: t, status: n }) {
706
706
  }
707
707
  return [];
708
708
  }
709
- function et({ eventName: e, data: t, state: n }) {
709
+ function tt({ eventName: e, data: t, state: n }) {
710
710
  let r = String(t?.type || e || "").trim(), i = String(t?.id || t?.response?.id || t?.response_id || "");
711
711
  if (i.startsWith("resp_") && (n.currentResponseId = i), r === "response.tool_call") return [{
712
712
  type: "tool_upsert",
713
713
  name: String(t?.name || t?.tool_name || "tool"),
714
- args: Y(t?.args ?? t?.arguments),
714
+ args: J(t?.args ?? t?.arguments),
715
715
  status: "running"
716
716
  }];
717
717
  if (r === "response.tool_result" || r === "response.ksadk.tool_result") return [{
718
718
  type: "tool_result",
719
719
  name: String(t?.name || t?.tool_name || "tool"),
720
- output: Y(t?.output ?? t?.result)
720
+ output: J(t?.output ?? t?.result)
721
721
  }];
722
- if (r === "response.output_item.added") return $e({
722
+ if (r === "response.output_item.added") return et({
723
723
  data: t,
724
724
  state: n,
725
725
  status: "running"
726
726
  });
727
- if (r === "response.output_item.done") return $e({
727
+ if (r === "response.output_item.done") return et({
728
728
  data: t,
729
729
  state: n,
730
730
  status: "completed"
731
731
  });
732
732
  if (r === "response.function_call_arguments.delta") {
733
- let e = String(t?.item_id || t?.call_id || ""), r = Ye(n, e, t), i = `${n.toolArguments.get(e) || ""}${String(t?.delta || "")}`;
733
+ let e = String(t?.item_id || t?.call_id || ""), r = Xe(n, e, t), i = `${n.toolArguments.get(e) || ""}${String(t?.delta || "")}`;
734
734
  return n.toolArguments.set(e, i), [{
735
735
  type: "tool_upsert",
736
736
  name: r,
@@ -739,7 +739,7 @@ function et({ eventName: e, data: t, state: n }) {
739
739
  }];
740
740
  }
741
741
  if (r === "response.function_call_arguments.done") {
742
- let e = String(t?.item_id || t?.call_id || ""), r = Ye(n, e, t), i = Y(t?.arguments ?? n.toolArguments.get(e));
742
+ let e = String(t?.item_id || t?.call_id || ""), r = Xe(n, e, t), i = J(t?.arguments ?? n.toolArguments.get(e));
743
743
  return n.toolArguments.set(e, i), [{
744
744
  type: "tool_upsert",
745
745
  name: r,
@@ -748,28 +748,28 @@ function et({ eventName: e, data: t, state: n }) {
748
748
  }];
749
749
  }
750
750
  if (r === "response.reasoning.delta" || r === "response.reasoning_text.delta" || r === "response.reasoning_summary.delta" || r === "response.reasoning_summary_text.delta") {
751
- let e = X(t?.delta, t?.text);
751
+ let e = Y(t?.delta, t?.text);
752
752
  return e ? [{
753
753
  type: "reasoning_delta",
754
754
  text: e
755
755
  }] : [];
756
756
  }
757
757
  if (r === "response.output_text.delta") {
758
- let e = X(t?.delta, t?.text);
758
+ let e = Y(t?.delta, t?.text);
759
759
  return e ? [{
760
760
  type: "text_delta",
761
761
  text: e
762
762
  }] : [];
763
763
  }
764
764
  if (r === "response.output_text.done") {
765
- let e = X(t?.text, t?.delta);
765
+ let e = Y(t?.text, t?.delta);
766
766
  return e ? [{
767
767
  type: "text_final",
768
768
  text: e
769
769
  }] : [];
770
770
  }
771
771
  if (r === "response.content_part.delta") {
772
- let e = String(t?.part?.type || t?.delta?.type || t?.content_type || ""), n = X(t?.delta?.text, t?.delta, t?.text);
772
+ let e = String(t?.part?.type || t?.delta?.type || t?.content_type || ""), n = Y(t?.delta?.text, t?.delta, t?.text);
773
773
  return n ? e.includes("reasoning") ? [{
774
774
  type: "reasoning_delta",
775
775
  text: n
@@ -779,7 +779,7 @@ function et({ eventName: e, data: t, state: n }) {
779
779
  }] : [];
780
780
  }
781
781
  if (r === "response.completed") {
782
- let e = Ze(t), r = Qe(t).flatMap((e) => $e({
782
+ let e = Qe(t), r = $e(t).flatMap((e) => et({
783
783
  data: {
784
784
  ...t,
785
785
  item: e
@@ -830,13 +830,13 @@ function et({ eventName: e, data: t, state: n }) {
830
830
  }
831
831
  //#endregion
832
832
  //#region src/core/stream/responses-protocol.ts
833
- var tt = class {
833
+ var nt = class {
834
834
  id = "responses";
835
835
  createState() {
836
- return Ge();
836
+ return Ke();
837
837
  }
838
838
  parse(e, t) {
839
- return et({
839
+ return tt({
840
840
  eventName: e.eventName,
841
841
  data: e.data,
842
842
  state: t
@@ -858,23 +858,23 @@ var tt = class {
858
858
  };
859
859
  //#endregion
860
860
  //#region src/utils/stream-parsing.ts
861
- function nt(e) {
861
+ function rt(e) {
862
862
  return typeof e == "string" ? e : Array.isArray(e) ? e.map((e) => typeof e == "string" ? e : e && typeof e == "object" && "text" in e && typeof e.text == "string" ? e.text : "").join("") : "";
863
863
  }
864
- function rt(e) {
864
+ function it(e) {
865
865
  return e && typeof e == "object" ? e : {};
866
866
  }
867
- function it(e) {
868
- let t = rt(e).choices, n = rt(Array.isArray(t) ? t[0] : null), r = rt(n.delta), i = rt(n.message);
867
+ function at(e) {
868
+ let t = it(e).choices, n = it(Array.isArray(t) ? t[0] : null), r = it(n.delta), i = it(n.message);
869
869
  return {
870
- content: nt(r.content),
871
- reasoning: nt(r.reasoning_content),
872
- finalText: nt(i.content)
870
+ content: rt(r.content),
871
+ reasoning: rt(r.reasoning_content),
872
+ finalText: rt(i.content)
873
873
  };
874
874
  }
875
875
  //#endregion
876
876
  //#region src/core/stream/chat-completions-protocol.ts
877
- var at = class {
877
+ var ot = class {
878
878
  id = "chat_completions";
879
879
  createState() {
880
880
  return {};
@@ -882,7 +882,7 @@ var at = class {
882
882
  parse(e) {
883
883
  let t = e.data;
884
884
  if (typeof t != "object" || !t) return [];
885
- let n = it(t), r = [];
885
+ let n = at(t), r = [];
886
886
  return n.reasoning && r.push({
887
887
  type: "reasoning_delta",
888
888
  text: n.reasoning
@@ -894,14 +894,14 @@ var at = class {
894
894
  text: n.finalText
895
895
  }), r;
896
896
  }
897
- }, ot = /* @__PURE__ */ new Map();
898
- ot.set("responses", new tt()), ot.set("chat_completions", new at());
899
- function st(e) {
900
- return ot.get(e) || ot.get("responses");
897
+ }, st = /* @__PURE__ */ new Map();
898
+ st.set("responses", new nt()), st.set("chat_completions", new ot());
899
+ function ct(e) {
900
+ return st.get(e) || st.get("responses");
901
901
  }
902
902
  //#endregion
903
903
  //#region src/utils/stream-control.js
904
- function ct(e = []) {
904
+ function lt(e = []) {
905
905
  return e.some((e) => {
906
906
  if (e?.type !== "terminal") return !1;
907
907
  let t = String(e.status || "").toLowerCase();
@@ -910,7 +910,7 @@ function ct(e = []) {
910
910
  }
911
911
  //#endregion
912
912
  //#region src/core/transport/sse-parser.ts
913
- function lt(e) {
913
+ function ut(e) {
914
914
  let t = [], n = e.trim();
915
915
  if (!n) return t;
916
916
  let r = n.split("\n");
@@ -940,7 +940,7 @@ function lt(e) {
940
940
  }
941
941
  return t;
942
942
  }
943
- function ut(e) {
943
+ function dt(e) {
944
944
  let t = e.split("\n\n");
945
945
  return {
946
946
  chunks: t,
@@ -949,21 +949,21 @@ function ut(e) {
949
949
  }
950
950
  //#endregion
951
951
  //#region src/utils/error.ts
952
- function dt(e) {
952
+ function ft(e) {
953
953
  return e instanceof Error ? e.message : String(e);
954
954
  }
955
- var ft = 1280;
956
- function pt(e) {
955
+ var pt = 1280;
956
+ function mt(e) {
957
957
  let { apiFormats: t } = e;
958
958
  return t.includes("responses") ? "responses" : t.includes("chat_completions") ? "chat_completions" : "responses";
959
959
  }
960
- function mt(e, t, n) {
961
- let r = Math.min(ft, Math.max(420, t - n - 360));
960
+ function ht(e, t, n) {
961
+ let r = Math.min(pt, Math.max(420, t - n - 360));
962
962
  return Math.min(Math.max(e, 420), r);
963
963
  }
964
964
  //#endregion
965
965
  //#region src/core/run/engine.ts
966
- var ht = new Set([
966
+ var gt = new Set([
967
967
  "completed",
968
968
  "failed",
969
969
  "error",
@@ -973,12 +973,12 @@ var ht = new Set([
973
973
  "interrupted",
974
974
  "resume_failed"
975
975
  ]);
976
- function gt(e) {
976
+ function _t(e) {
977
977
  if (e.EventType !== "run_status") return null;
978
978
  let t = String(e.Content?.status || "").trim().toLowerCase();
979
- return ht.has(t) ? t : null;
979
+ return gt.has(t) ? t : null;
980
980
  }
981
- function _t(e, t) {
981
+ function vt(e, t) {
982
982
  let n = String(t?.type || e || "").trim();
983
983
  if (n === "response.created") return {
984
984
  phase: "运行已创建",
@@ -1024,11 +1024,11 @@ function _t(e, t) {
1024
1024
  status: "failed"
1025
1025
  } : null;
1026
1026
  }
1027
- function vt() {
1027
+ function yt() {
1028
1028
  let e = globalThis.crypto;
1029
1029
  return e && typeof e.randomUUID == "function" ? `run_${e.randomUUID()}` : `run_${Date.now()}_${Math.random().toString(16).slice(2)}`;
1030
1030
  }
1031
- var yt = {
1031
+ var bt = {
1032
1032
  idle: [
1033
1033
  "creating-session",
1034
1034
  "uploading-files",
@@ -1066,7 +1066,7 @@ var yt = {
1066
1066
  ],
1067
1067
  error: ["connecting", "idle"],
1068
1068
  cancelled: ["idle"]
1069
- }, bt = class {
1069
+ }, xt = class {
1070
1070
  _stage = "idle";
1071
1071
  listeners = /* @__PURE__ */ new Set();
1072
1072
  abortController = null;
@@ -1100,7 +1100,7 @@ var yt = {
1100
1100
  for (let e of this.listeners) e(t);
1101
1101
  }
1102
1102
  setStage(e) {
1103
- let t = yt[this._stage];
1103
+ let t = bt[this._stage];
1104
1104
  t && !t.includes(e) && console.warn(`[RunEngine] Invalid transition: ${this._stage} → ${e}`), this._stage = e, this.emit({
1105
1105
  type: "stage_changed",
1106
1106
  stage: e
@@ -1127,10 +1127,10 @@ var yt = {
1127
1127
  status: "connecting",
1128
1128
  countEvent: !1
1129
1129
  });
1130
- let a = t ? "responses" : pt({
1130
+ let a = t ? "responses" : mt({
1131
1131
  agentFramework: this.config.agentFramework,
1132
1132
  apiFormats: this.config.apiFormats
1133
- }), o = st(a), s = o.createState(), c = vt();
1133
+ }), o = ct(a), s = o.createState(), c = yt();
1134
1134
  L.getState().setCurrentRunId(c);
1135
1135
  let l = this.buildRequestBody(n, a, t, e, i, c), u = await this.api.runAgent(l, { signal: this.abortController?.signal });
1136
1136
  this.setStage("streaming"), this.emit({
@@ -1243,11 +1243,11 @@ var yt = {
1243
1243
  let { value: e, done: n } = await r.read();
1244
1244
  if (n) break;
1245
1245
  a += i.decode(e, { stream: !0 });
1246
- let { chunks: o, remainder: s } = ut(a);
1246
+ let { chunks: o, remainder: s } = dt(a);
1247
1247
  a = s;
1248
1248
  for (let e of o) {
1249
1249
  if (!e.trim()) continue;
1250
- let n = lt(e);
1250
+ let n = ut(e);
1251
1251
  for (let e of n) e.eventName !== "__done__" && (this.emit({
1252
1252
  type: "activity",
1253
1253
  phase: "收到恢复事件",
@@ -1255,7 +1255,7 @@ var yt = {
1255
1255
  }), this.emit({
1256
1256
  type: "stream_event",
1257
1257
  event: e.data
1258
- }), t = gt(e.data) || t);
1258
+ }), t = _t(e.data) || t);
1259
1259
  }
1260
1260
  }
1261
1261
  this.setStage("completing"), t === "cancelled" || t === "canceled" || t === "aborted" ? this.emit({
@@ -1294,7 +1294,7 @@ var yt = {
1294
1294
  resumeCheckpoint(e) {
1295
1295
  if (this._stage !== "idle") return !1;
1296
1296
  this.abortController = new AbortController(), this.activeSessionId = e.sessionId;
1297
- let t = vt();
1297
+ let t = yt();
1298
1298
  return L.getState().setCurrentRunId(t), (async () => {
1299
1299
  try {
1300
1300
  if (this.setStage("connecting"), this.emit({
@@ -1327,7 +1327,7 @@ var yt = {
1327
1327
  checkpointId: e.checkpointId,
1328
1328
  resumeAttemptId: e.resumeAttemptId,
1329
1329
  invocationId: t
1330
- }, { signal: this.abortController?.signal }), r = st("responses"), i = r.createState();
1330
+ }, { signal: this.abortController?.signal }), r = ct("responses"), i = r.createState();
1331
1331
  this.setStage("streaming"), this.emit({
1332
1332
  type: "activity",
1333
1333
  source: "restore",
@@ -1403,7 +1403,7 @@ var yt = {
1403
1403
  } catch (e) {
1404
1404
  this.emit({
1405
1405
  type: "system_message",
1406
- content: `【系统提示】图片 ${t.name} 读取失败,原因: ${dt(e)}`
1406
+ content: `【系统提示】图片 ${t.name} 读取失败,原因: ${ft(e)}`
1407
1407
  });
1408
1408
  }
1409
1409
  continue;
@@ -1420,7 +1420,7 @@ var yt = {
1420
1420
  } catch (e) {
1421
1421
  this.emit({
1422
1422
  type: "system_message",
1423
- content: `【系统提示】文件 ${t.name} 上传失败,原因: ${dt(e)}`
1423
+ content: `【系统提示】文件 ${t.name} 上传失败,原因: ${ft(e)}`
1424
1424
  });
1425
1425
  }
1426
1426
  }
@@ -1440,7 +1440,7 @@ var yt = {
1440
1440
  ApiFormat: t,
1441
1441
  Model: this.config.selectedModel || void 0,
1442
1442
  ModelMetadata: this.config.selectedModelMetadata || void 0,
1443
- ModelOptions: Me(je(this.config.thinkingMode))
1443
+ ModelOptions: Ne(Me(this.config.thinkingMode))
1444
1444
  };
1445
1445
  if (n) o.ResponsesInput = r.responsesInput, o.PreviousResponseId = r.previousResponseId;
1446
1446
  else {
@@ -1468,32 +1468,32 @@ var yt = {
1468
1468
  type: "assistant_message_created",
1469
1469
  messageId: r
1470
1470
  })), o += a.decode(e, { stream: !0 });
1471
- let { chunks: u, remainder: d } = ut(o);
1471
+ let { chunks: u, remainder: d } = dt(o);
1472
1472
  o = d;
1473
1473
  for (let e of u) {
1474
1474
  if (!e.trim()) continue;
1475
1475
  if (this.isCompactionChunk(e)) {
1476
- let t = lt(e);
1476
+ let t = ut(e);
1477
1477
  for (let e of t) e.eventName.startsWith("response.compaction") && this.upsertCompactionMessage({
1478
1478
  ...e.data,
1479
1479
  phase: e.eventName.split(".").pop()
1480
1480
  });
1481
1481
  continue;
1482
1482
  }
1483
- let a = lt(e), o = !1, c;
1483
+ let a = ut(e), o = !1, c;
1484
1484
  for (let e of a) {
1485
1485
  if (e.eventName === "__done__") {
1486
1486
  o = !0;
1487
1487
  continue;
1488
1488
  }
1489
- let i = _t(e.eventName, e.data);
1489
+ let i = vt(e.eventName, e.data);
1490
1490
  i && this.emit({
1491
1491
  type: "activity",
1492
1492
  ...i
1493
1493
  });
1494
1494
  let a = t.parse(e, n);
1495
1495
  for (let e of a) this.dispatchAction(e, r);
1496
- if (ct(a)) {
1496
+ if (lt(a)) {
1497
1497
  o = !0;
1498
1498
  let e = a.find((e) => e.type === "terminal");
1499
1499
  c = e && "status" in e ? String(e.status || "") : void 0;
@@ -1604,18 +1604,18 @@ var yt = {
1604
1604
  phase: "failed"
1605
1605
  }), null);
1606
1606
  }
1607
- }, xt = [], St = [];
1608
- function Z(e) {
1607
+ }, St = [], Ct = [];
1608
+ function X(e) {
1609
1609
  return typeof e == "string" ? e.trim() : "";
1610
1610
  }
1611
- function Ct(e) {
1611
+ function wt(e) {
1612
1612
  let t = typeof e == "number" ? e : Number(e);
1613
1613
  return Number.isFinite(t) ? t : void 0;
1614
1614
  }
1615
- function wt(e) {
1615
+ function Tt(e) {
1616
1616
  return typeof e == "string" || typeof e == "number" ? e : void 0;
1617
1617
  }
1618
- function Tt(e) {
1618
+ function Z(e) {
1619
1619
  return e && typeof e == "object" && !Array.isArray(e) ? e : void 0;
1620
1620
  }
1621
1621
  function Et(e) {
@@ -1644,44 +1644,44 @@ function jt(e) {
1644
1644
  return t ? e.filter((e) => e.runId === t) : [];
1645
1645
  }
1646
1646
  function Mt(e) {
1647
- let t = Tt(e);
1647
+ let t = Z(e);
1648
1648
  if (!t) return null;
1649
- let n = Tt(t.Metadata ?? t.metadata), r = Tt(t.Content ?? t.content), i = Z(t.CheckpointId ?? t.checkpointId ?? t.checkpoint_id ?? n?.checkpoint_id ?? n?.checkpointId ?? r?.checkpoint_id ?? r?.checkpointId), a = Z(t.RunId ?? t.runId ?? t.run_id ?? n?.run_id ?? n?.runId ?? r?.run_id ?? r?.runId);
1649
+ let n = Z(t.Metadata ?? t.metadata), r = Z(t.Content ?? t.content), i = X(t.CheckpointId ?? t.checkpointId ?? t.checkpoint_id ?? n?.checkpoint_id ?? n?.checkpointId ?? r?.checkpoint_id ?? r?.checkpointId), a = X(t.RunId ?? t.runId ?? t.run_id ?? n?.run_id ?? n?.runId ?? r?.run_id ?? r?.runId);
1650
1650
  return !i || !a ? null : {
1651
1651
  checkpointId: i,
1652
1652
  runId: a,
1653
- sessionId: Z(t.SessionId ?? t.sessionId ?? t.session_id) || void 0,
1654
- invocationId: Z(t.InvocationId ?? t.invocationId ?? t.invocation_id) || void 0,
1655
- seqId: Ct(t.SeqId ?? t.seqId ?? t.seq_id),
1656
- timestamp: wt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
1657
- framework: Z(t.Framework ?? t.framework ?? n?.framework ?? r?.framework) || void 0,
1658
- frameworkRef: Tt(t.FrameworkRef ?? t.frameworkRef ?? t.framework_ref ?? n?.framework_ref ?? n?.frameworkRef),
1659
- phase: Z(t.Phase ?? t.phase ?? n?.phase ?? r?.phase) || void 0,
1660
- stage: Z(t.Stage ?? t.stage ?? n?.stage ?? n?.title) || void 0,
1661
- summary: Z(t.Summary ?? t.summary ?? n?.summary ?? n?.description) || void 0,
1662
- nextAction: Z(t.NextAction ?? t.nextAction ?? t.next_action ?? n?.nextAction ?? n?.next_action) || void 0,
1663
- status: Z(t.Status ?? t.status ?? n?.status ?? r?.status) || void 0,
1653
+ sessionId: X(t.SessionId ?? t.sessionId ?? t.session_id) || void 0,
1654
+ invocationId: X(t.InvocationId ?? t.invocationId ?? t.invocation_id) || void 0,
1655
+ seqId: wt(t.SeqId ?? t.seqId ?? t.seq_id),
1656
+ timestamp: Tt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
1657
+ framework: X(t.Framework ?? t.framework ?? n?.framework ?? r?.framework) || void 0,
1658
+ frameworkRef: Z(t.FrameworkRef ?? t.frameworkRef ?? t.framework_ref ?? n?.framework_ref ?? n?.frameworkRef),
1659
+ phase: X(t.Phase ?? t.phase ?? n?.phase ?? r?.phase) || void 0,
1660
+ stage: X(t.Stage ?? t.stage ?? n?.stage ?? n?.title) || void 0,
1661
+ summary: X(t.Summary ?? t.summary ?? n?.summary ?? n?.description) || void 0,
1662
+ nextAction: X(t.NextAction ?? t.nextAction ?? t.next_action ?? n?.nextAction ?? n?.next_action) || void 0,
1663
+ status: X(t.Status ?? t.status ?? n?.status ?? r?.status) || void 0,
1664
1664
  metadata: n
1665
1665
  };
1666
1666
  }
1667
1667
  function Nt(e) {
1668
- let t = Tt(e);
1668
+ let t = Z(e);
1669
1669
  if (!t) return null;
1670
- let n = Z(t.ReceiptId ?? t.receiptId ?? t.receipt_id), r = Z(t.IdempotencyKey ?? t.idempotencyKey ?? t.idempotency_key), i = Z(t.ToolName ?? t.toolName ?? t.tool_name);
1670
+ let n = X(t.ReceiptId ?? t.receiptId ?? t.receipt_id), r = X(t.IdempotencyKey ?? t.idempotencyKey ?? t.idempotency_key), i = X(t.ToolName ?? t.toolName ?? t.tool_name);
1671
1671
  return !n || !r || !i ? null : {
1672
1672
  receiptId: n,
1673
1673
  idempotencyKey: r,
1674
1674
  toolName: i,
1675
- toolCallId: Z(t.ToolCallId ?? t.toolCallId ?? t.tool_call_id) || void 0,
1676
- runId: Z(t.RunId ?? t.runId ?? t.run_id) || void 0,
1677
- checkpointId: Z(t.CheckpointId ?? t.checkpointId ?? t.checkpoint_id) || void 0,
1678
- sessionId: Z(t.SessionId ?? t.sessionId ?? t.session_id) || void 0,
1679
- invocationId: Z(t.InvocationId ?? t.invocationId ?? t.invocation_id) || void 0,
1680
- seqId: Ct(t.SeqId ?? t.seqId ?? t.seq_id),
1681
- timestamp: wt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
1682
- status: Z(t.Status ?? t.status) || void 0,
1675
+ toolCallId: X(t.ToolCallId ?? t.toolCallId ?? t.tool_call_id) || void 0,
1676
+ runId: X(t.RunId ?? t.runId ?? t.run_id) || void 0,
1677
+ checkpointId: X(t.CheckpointId ?? t.checkpointId ?? t.checkpoint_id) || void 0,
1678
+ sessionId: X(t.SessionId ?? t.sessionId ?? t.session_id) || void 0,
1679
+ invocationId: X(t.InvocationId ?? t.invocationId ?? t.invocation_id) || void 0,
1680
+ seqId: wt(t.SeqId ?? t.seqId ?? t.seq_id),
1681
+ timestamp: Tt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
1682
+ status: X(t.Status ?? t.status) || void 0,
1683
1683
  replayed: !!(t.Replayed ?? t.replayed),
1684
- metadata: Tt(t.Metadata ?? t.metadata)
1684
+ metadata: Z(t.Metadata ?? t.metadata)
1685
1685
  };
1686
1686
  }
1687
1687
  var Q = P()((e, t) => ({
@@ -1713,7 +1713,7 @@ var Q = P()((e, t) => ({
1713
1713
  },
1714
1714
  getSessionCheckpoints: (e) => {
1715
1715
  let n = String(e || "");
1716
- return n && t().checkpointsBySessionId[n] || xt;
1716
+ return n && t().checkpointsBySessionId[n] || St;
1717
1717
  },
1718
1718
  setSessionToolReceipts: (t, n) => e((e) => ({ toolReceiptsBySessionId: {
1719
1719
  ...e.toolReceiptsBySessionId,
@@ -1724,7 +1724,7 @@ var Q = P()((e, t) => ({
1724
1724
  } })),
1725
1725
  getSessionToolReceipts: (e) => {
1726
1726
  let n = String(e || "");
1727
- return n && t().toolReceiptsBySessionId[n] || St;
1727
+ return n && t().toolReceiptsBySessionId[n] || Ct;
1728
1728
  },
1729
1729
  clearSessionCheckpoints: (t) => e((e) => {
1730
1730
  let n = String(t || "");
@@ -1841,7 +1841,7 @@ function Bt(e) {
1841
1841
  function Vt(e) {
1842
1842
  let t = e?.Metadata?.responses_output;
1843
1843
  if (!Array.isArray(t)) return {};
1844
- let n = Ge(), r = et({
1844
+ let n = Ke(), r = tt({
1845
1845
  eventName: "response.completed",
1846
1846
  data: { response: {
1847
1847
  id: String(e.Metadata?.response_id || ""),
@@ -2226,18 +2226,12 @@ function rn(e = [], t = []) {
2226
2226
  return Number.isFinite(n) && Number.isFinite(r) && n !== r ? n - r : Number(e?.Timestamp || 0) - Number(t?.Timestamp || 0);
2227
2227
  });
2228
2228
  }
2229
- function an(e = []) {
2230
- return (Array.isArray(e) ? e : []).reduce((e, t) => {
2231
- let n = Number(t.SeqId || 0);
2232
- return Number.isFinite(n) ? Math.max(e, n) : e;
2233
- }, 0);
2234
- }
2235
- function on(e) {
2229
+ function an(e) {
2236
2230
  return e?.EventType === "run_status" ? Pt.has(String(e.Content?.status || "").trim().toLowerCase()) : !1;
2237
2231
  }
2238
2232
  //#endregion
2239
2233
  //#region src/core/run/dispatcher.ts
2240
- var $ = !1, sn = new Set(["completed"]), cn = new Set([
2234
+ var $ = !1, on = new Set(["completed"]), sn = new Set([
2241
2235
  "failed",
2242
2236
  "error",
2243
2237
  "cancelled",
@@ -2245,8 +2239,8 @@ var $ = !1, sn = new Set(["completed"]), cn = new Set([
2245
2239
  "aborted",
2246
2240
  "incomplete"
2247
2241
  ]);
2248
- function ln(e) {
2249
- $ || ($ = !0, J.getState().patchMessages((t) => [...t, {
2242
+ function cn(e) {
2243
+ $ || ($ = !0, q.getState().patchMessages((t) => [...t, {
2250
2244
  id: e,
2251
2245
  role: "model",
2252
2246
  content: "",
@@ -2254,9 +2248,9 @@ function ln(e) {
2254
2248
  reasoning: ""
2255
2249
  }]));
2256
2250
  }
2257
- function un(e) {
2258
- let t = String(e || "").trim().toLowerCase(), n = sn.has(t) ? "completed" : cn.has(t) ? "error" : null;
2259
- n && J.getState().patchMessages((e) => e.map((e) => {
2251
+ function ln(e) {
2252
+ let t = String(e || "").trim().toLowerCase(), n = on.has(t) ? "completed" : sn.has(t) ? "error" : null;
2253
+ n && q.getState().patchMessages((e) => e.map((e) => {
2260
2254
  if (!e.tools) return e;
2261
2255
  let t = !1, r = Object.fromEntries(Object.entries(e.tools).map(([e, r]) => r.status === "running" ? (t = !0, [e, {
2262
2256
  ...r,
@@ -2268,12 +2262,12 @@ function un(e) {
2268
2262
  } : e;
2269
2263
  }));
2270
2264
  }
2271
- function dn(e) {
2265
+ function un(e) {
2272
2266
  if (e.sessionId && z.getState().currentSessionId !== e.sessionId) {
2273
2267
  e.type === "stage_changed" && (e.stage === "completing" || e.stage === "error" || e.stage === "cancelled") && ($ = !1);
2274
2268
  return;
2275
2269
  }
2276
- let t = J.getState();
2270
+ let t = q.getState();
2277
2271
  switch (e.type) {
2278
2272
  case "activity":
2279
2273
  L.getState().updateActivity({
@@ -2294,28 +2288,28 @@ function dn(e) {
2294
2288
  }]);
2295
2289
  break;
2296
2290
  case "assistant_message_created":
2297
- ln(e.messageId);
2291
+ cn(e.messageId);
2298
2292
  break;
2299
2293
  case "text_delta":
2300
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2294
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2301
2295
  ...t,
2302
2296
  content: t.content + e.delta
2303
2297
  } : t));
2304
2298
  break;
2305
2299
  case "text_final":
2306
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2300
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2307
2301
  ...t,
2308
2302
  content: e.text
2309
2303
  } : t));
2310
2304
  break;
2311
2305
  case "reasoning_delta":
2312
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2306
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2313
2307
  ...t,
2314
2308
  reasoning: (t.reasoning || "") + e.delta
2315
2309
  } : t));
2316
2310
  break;
2317
2311
  case "tool_upsert":
2318
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2312
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2319
2313
  ...t,
2320
2314
  tools: {
2321
2315
  ...t.tools || {},
@@ -2334,7 +2328,7 @@ function dn(e) {
2334
2328
  } : t));
2335
2329
  break;
2336
2330
  case "tool_result":
2337
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2331
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2338
2332
  ...t,
2339
2333
  tools: {
2340
2334
  ...t.tools || {},
@@ -2394,7 +2388,7 @@ function dn(e) {
2394
2388
  }]), $ = !1;
2395
2389
  break;
2396
2390
  case "terminal":
2397
- un(e.status);
2391
+ ln(e.status);
2398
2392
  break;
2399
2393
  case "stream_event": {
2400
2394
  let t = e.sessionId || e.event.SessionId;
@@ -2421,12 +2415,12 @@ function dn(e) {
2421
2415
  }
2422
2416
  }
2423
2417
  }
2424
- function fn() {
2418
+ function dn() {
2425
2419
  $ = !1;
2426
2420
  }
2427
2421
  //#endregion
2428
2422
  //#region src/hooks/useRunAgent.ts
2429
- function pn(e) {
2423
+ function fn(e) {
2430
2424
  let t = M(/* @__PURE__ */ new Map()), n = M(() => {}), { agentId: r, apiFormats: i, agentFramework: a, selectedModel: o, selectedModelMetadata: s, thinkingMode: c, currentSessionIdRef: l, queuedDraftRef: u, onRunSettled: d, uiCapabilities: f } = e, p = A((e) => {
2431
2425
  e.updateConfig({
2432
2426
  agentId: r,
@@ -2447,7 +2441,7 @@ function pn(e) {
2447
2441
  f.RunLifecycle?.CheckpointResumePreview
2448
2442
  ]), m = A((n) => {
2449
2443
  let r = String(n || "new-session"), i = t.current.get(r);
2450
- return i ? p(i) : (i = new bt(e.api), p(i), i.subscribe(dn), t.current.set(r, i)), i;
2444
+ return i ? p(i) : (i = new xt(e.api), p(i), i.subscribe(un), t.current.set(r, i)), i;
2451
2445
  }, [e.api, p]);
2452
2446
  j(() => {
2453
2447
  for (let e of t.current.values()) p(e);
@@ -2457,13 +2451,13 @@ function pn(e) {
2457
2451
  }, [u]), g = A((e) => {
2458
2452
  let i = l.current, a = m(i);
2459
2453
  if (a.stage !== "idle") return !1;
2460
- fn(), _.getState().setMobileActionsOpen(!1), L.getState().setSessionStreaming(i, !0);
2454
+ dn(), _.getState().setMobileActionsOpen(!1), L.getState().setSessionStreaming(i, !0);
2461
2455
  let o = e.text.trim(), s = String(Date.now()), c = e.attachments.map((e) => ({
2462
2456
  name: e.name,
2463
2457
  url: URL.createObjectURL(e),
2464
2458
  type: e.type || "application/octet-stream"
2465
2459
  }));
2466
- (o || c.length > 0) && J.getState().patchMessages((e) => [...e, {
2460
+ (o || c.length > 0) && q.getState().patchMessages((e) => [...e, {
2467
2461
  id: s,
2468
2462
  role: "user",
2469
2463
  content: o,
@@ -2480,7 +2474,7 @@ function pn(e) {
2480
2474
  z.getState().upsertSessions([{
2481
2475
  SessionId: e,
2482
2476
  UpdatedAt: (/* @__PURE__ */ new Date()).toISOString()
2483
- }]), l.current = e, Ce(r, e), z.getState().setCurrentSessionId(e), i !== e && t.current.set(e, a);
2477
+ }]), l.current = e, we(r, e), z.getState().setCurrentSessionId(e), i !== e && t.current.set(e, a);
2484
2478
  },
2485
2479
  onSessionUpsert: () => {},
2486
2480
  onSettled: (e) => {
@@ -2539,7 +2533,7 @@ function pn(e) {
2539
2533
  resumeCheckpoint: A((e) => {
2540
2534
  let t = m(e.sessionId);
2541
2535
  if (t.stage !== "idle") return !1;
2542
- fn(), _.getState().setMobileActionsOpen(!1), L.getState().setSessionStreaming(e.sessionId, !0);
2536
+ dn(), _.getState().setMobileActionsOpen(!1), L.getState().setSessionStreaming(e.sessionId, !0);
2543
2537
  let r = t.resumeCheckpoint({
2544
2538
  ...e,
2545
2539
  onSettled: (e) => {
@@ -2549,19 +2543,19 @@ function pn(e) {
2549
2543
  return r || L.getState().setSessionStreaming(e.sessionId, !1), r;
2550
2544
  }, [m, d]),
2551
2545
  resetCompaction: A(() => {
2552
- fn();
2546
+ dn();
2553
2547
  }, [])
2554
2548
  };
2555
2549
  }
2556
2550
  //#endregion
2557
2551
  //#region src/hooks/useFeedback.ts
2558
- function mn(e) {
2552
+ function pn(e) {
2559
2553
  let { agentId: t, currentSessionId: n, isStreaming: r, api: i, submitDraft: a } = e;
2560
2554
  return {
2561
2555
  submitResponseFeedback: A(async (e) => {
2562
2556
  if (!n) return;
2563
2557
  let r = null;
2564
- J.getState().patchMessages((t) => {
2558
+ q.getState().patchMessages((t) => {
2565
2559
  let n = v(t, {
2566
2560
  messageId: e.message.id,
2567
2561
  rating: e.rating,
@@ -2577,12 +2571,12 @@ function mn(e) {
2577
2571
  rating: e.rating,
2578
2572
  comment: e.comment || ""
2579
2573
  })))?.Feedback);
2580
- r && J.getState().patchMessages((t) => s(t, {
2574
+ r && q.getState().patchMessages((t) => s(t, {
2581
2575
  messageId: e.message.id,
2582
2576
  feedback: r
2583
2577
  }));
2584
2578
  } catch (t) {
2585
- console.error("Failed to submit response feedback:", t), J.getState().patchMessages((t) => C(t, {
2579
+ console.error("Failed to submit response feedback:", t), q.getState().patchMessages((t) => C(t, {
2586
2580
  messageId: e.message.id,
2587
2581
  previousFeedback: r
2588
2582
  }));
@@ -2595,7 +2589,7 @@ function mn(e) {
2595
2589
  deleteResponseFeedback: A(async (e) => {
2596
2590
  if (!n) return;
2597
2591
  let r = e.feedback ? { ...e.feedback } : null;
2598
- J.getState().patchMessages((t) => d(t, { messageId: e.id }));
2592
+ q.getState().patchMessages((t) => d(t, { messageId: e.id }));
2599
2593
  try {
2600
2594
  await i.deleteResponseFeedback(h({
2601
2595
  agentId: t,
@@ -2603,7 +2597,7 @@ function mn(e) {
2603
2597
  message: e
2604
2598
  }));
2605
2599
  } catch (t) {
2606
- console.error("Failed to delete response feedback:", t), J.getState().patchMessages((t) => C(t, {
2600
+ console.error("Failed to delete response feedback:", t), q.getState().patchMessages((t) => C(t, {
2607
2601
  messageId: e.id,
2608
2602
  previousFeedback: r
2609
2603
  }));
@@ -2614,13 +2608,13 @@ function mn(e) {
2614
2608
  i
2615
2609
  ]),
2616
2610
  respondToApproval: A((e) => {
2617
- !e.approvalRequestId || r || (J.getState().patchMessages((t) => t.map((t) => ({
2611
+ !e.approvalRequestId || r || (q.getState().patchMessages((t) => t.map((t) => ({
2618
2612
  ...t,
2619
2613
  tools: t.tools ? Object.fromEntries(Object.entries(t.tools).map(([t, n]) => [t, n.approvalRequestId === e.approvalRequestId ? {
2620
2614
  ...n,
2621
2615
  approvalStatus: e.approve ? "approved" : "rejected"
2622
2616
  } : n])) : t.tools
2623
- }))), J.getState().patchMessages((t) => [...t, {
2617
+ }))), q.getState().patchMessages((t) => [...t, {
2624
2618
  id: String(Date.now() + Math.random()),
2625
2619
  role: "system",
2626
2620
  content: e.approve ? "已批准工具调用,正在继续运行。" : "已拒绝工具调用,正在通知运行时。",
@@ -2634,102 +2628,90 @@ function mn(e) {
2634
2628
  };
2635
2629
  }
2636
2630
  //#endregion
2637
- //#region src/utils/run-state.js
2638
- function hn(e) {
2639
- return String(e?.InvocationId || e?.invocation_id || e?.invocationId || "").trim();
2640
- }
2631
+ //#region src/utils/messages.js
2632
+ var mn = {
2633
+ running: "running",
2634
+ completed: "completed",
2635
+ failed: "error",
2636
+ paused: "paused",
2637
+ approved: "completed",
2638
+ denied: "completed"
2639
+ }, hn = {
2640
+ paused: "pending",
2641
+ approved: "approved",
2642
+ denied: "rejected"
2643
+ };
2641
2644
  function gn(e) {
2642
- let t = e?.Timestamp ?? e?.timestamp ?? e?.created_at ?? e?.CreatedAt;
2643
- if (typeof t == "number" && Number.isFinite(t)) return t > 1e11 ? t : t * 1e3;
2644
- if (typeof t == "string") {
2645
- let e = Date.parse(t);
2646
- return Number.isNaN(e) ? 0 : e;
2645
+ if (typeof e == "number") return e;
2646
+ if (typeof e == "string") {
2647
+ let t = Date.parse(e);
2648
+ if (Number.isFinite(t)) return t;
2647
2649
  }
2648
- return 0;
2650
+ return Date.now();
2649
2651
  }
2650
- var _n = new Set([
2651
- "in_progress",
2652
- "running",
2653
- "resuming",
2654
- "starting",
2655
- "queued",
2656
- "pending"
2657
- ]);
2658
- function vn(e) {
2659
- return String(e?.EventType || e?.event_type || "").trim();
2652
+ function _n(e) {
2653
+ if (typeof e == "string") return e;
2654
+ if (e && typeof e == "object") {
2655
+ if (typeof e.text == "string") return e.text;
2656
+ if (Array.isArray(e.parts)) return e.parts.map((e) => e && typeof e == "object" && typeof e.text == "string" ? e.text : "").join("");
2657
+ }
2658
+ return "";
2660
2659
  }
2661
- function yn(e = [], t = {}) {
2662
- 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;
2663
- for (let e of i) {
2664
- let t = hn(e);
2665
- if (!t) continue;
2666
- let i = gn(e);
2667
- i && r.set(t, Math.max(r.get(t) || 0, i)), vn(e) === "run_status" && n.set(t, String(e?.Content?.status || e?.content?.status || "").trim());
2660
+ function vn(e) {
2661
+ let t = {};
2662
+ for (let n of e ?? []) {
2663
+ if (!n?.Name) continue;
2664
+ let e = mn[String(n.Status ?? "completed").toLowerCase()] ?? "completed", r = {
2665
+ name: n.Name,
2666
+ args: n.Args === void 0 ? "" : typeof n.Args == "string" ? n.Args : JSON.stringify(n.Args),
2667
+ status: e
2668
+ };
2669
+ n.Result !== void 0 && (r.output = typeof n.Result == "string" ? n.Result : JSON.stringify(n.Result)), n.ApprovalRequestId && (r.approvalRequestId = n.ApprovalRequestId, r.approvalStatus = hn[String(n.Status ?? "paused").toLowerCase()] ?? "pending"), n.ToolCallId && (r.previousResponseId = n.ToolCallId), t[n.Name] = r;
2668
2670
  }
2669
- return Array.from(n.entries()).filter(([e, t]) => {
2670
- let n = r.get(e) || 0, i = n > 0 && a - n > o;
2671
- return _n.has(t) && !i;
2672
- }).map(([e]) => e);
2671
+ return t;
2672
+ }
2673
+ function yn(e) {
2674
+ if (Array.isArray(e)) return e.map((e) => ({
2675
+ name: e.name || "",
2676
+ url: e.url || "",
2677
+ type: e.mime || "",
2678
+ fileUri: e.file_uri
2679
+ }));
2680
+ }
2681
+ function bn(e) {
2682
+ let t = e.Role === "assistant" ? "model" : e.Role || "user", n = e.ToolEvents?.length ? vn(e.ToolEvents) : void 0, r = yn(e.Attachments), i = e.Reasoning?.length ? e.Reasoning.map((e) => e.text).join("") : void 0, a = {
2683
+ id: e.MessageId || `msg-${e.SeqId ?? Math.random().toString(36).slice(2)}`,
2684
+ role: t,
2685
+ content: _n(e.Content),
2686
+ timestamp: gn(e.Timestamp),
2687
+ eventType: t === "user" ? "user_message" : "assistant_message",
2688
+ reasoning: i,
2689
+ tools: n,
2690
+ attachments: r
2691
+ };
2692
+ return e.MessageId && (a.eventId = e.MessageId), e.ResponseId && (a.responseId = e.ResponseId), e.TraceId && (a.traceId = e.TraceId), e.RootSpanId && (a.rootSpanId = e.RootSpanId), a;
2693
+ }
2694
+ function xn(e) {
2695
+ return e.map(bn);
2673
2696
  }
2674
2697
  //#endregion
2675
2698
  //#region src/utils/session-event-history.ts
2676
- function bn(e, t) {
2699
+ function Sn(e, t) {
2677
2700
  let n = Math.max(0, Number(e.offset) || 0), r = Math.max(0, Number(e.total) || 0);
2678
2701
  return n >= r ? null : {
2679
2702
  offset: n,
2680
2703
  limit: Math.min(Math.max(1, Number(t) || 1), r - n)
2681
2704
  };
2682
2705
  }
2683
- async function xn(e, t, n) {
2684
- let r = Math.max(1, Number(n?.pageSize) || 50), i = n?.shouldContinue || (() => !0), a = () => !i(), o = await t(e, {
2685
- offset: 0,
2686
- limit: 1
2687
- });
2688
- if (a()) return null;
2689
- let s = Math.max(0, Number(o.Total ?? o.Events?.length ?? 0) || 0);
2690
- if (s <= 1) return {
2691
- events: o.Events || [],
2692
- total: s,
2693
- offset: Number(o.Offset ?? 0),
2694
- limit: Number(o.Limit ?? o.Events?.length ?? 0)
2695
- };
2696
- let c = bn({
2697
- offset: 0,
2698
- total: s
2699
- }, r);
2700
- if (!c) return {
2701
- events: [],
2702
- total: s,
2703
- offset: 0,
2704
- limit: 0
2705
- };
2706
- let l = await t(e, c);
2707
- if (a()) return null;
2708
- let u = l.Events || [], d = u.length;
2709
- for (; d < s;) {
2710
- let n = bn({
2711
- offset: d,
2712
- total: s
2713
- }, r);
2714
- if (!n) break;
2715
- let i = await t(e, n);
2716
- if (a()) return null;
2717
- u = rn(i.Events || [], u), d += (i.Events || []).length;
2718
- }
2719
- return {
2720
- events: u,
2721
- total: s,
2722
- offset: d,
2723
- limit: u.length
2724
- };
2725
- }
2726
2706
  //#endregion
2727
2707
  //#region src/hooks/useSessionLifecycle.ts
2728
- var Sn = 9e4, Cn = 30, wn = 50, Tn = 500;
2729
- function En(e, t) {
2730
- return t.length ? e.length ? e.length >= t.length : !1 : !0;
2731
- }
2732
- function Dn(e) {
2708
+ var Cn = 9e4, wn = 30, Tn = 50, En = 500, Dn = new Set([
2709
+ "in_progress",
2710
+ "running",
2711
+ "resuming",
2712
+ "starting"
2713
+ ]);
2714
+ function On(e) {
2733
2715
  if (e.EventType !== "run_status") return null;
2734
2716
  let t = String(e.Content?.status || "").trim().toLowerCase();
2735
2717
  return t === "completed" ? {
@@ -2749,7 +2731,7 @@ function Dn(e) {
2749
2731
  phase: "后台长任务恢复失败"
2750
2732
  } : null;
2751
2733
  }
2752
- function On(e) {
2734
+ function kn(e) {
2753
2735
  let { agentId: t, api: n, isMobile: r, resetCompaction: i, uiCapabilities: a, disconnectRun: o } = e, s = M(e.currentSessionId), l = M(e.agentId), u = M(null), d = M(null), f = M(null), p = A(async (e, t, r) => {
2754
2736
  let i = r.filter((e) => c(e, !1, !1));
2755
2737
  if (!i.length) return;
@@ -2771,7 +2753,7 @@ function On(e) {
2771
2753
  }));
2772
2754
  if (s.current !== t) return;
2773
2755
  let o = new Map(a.filter((e) => !!e).map((e) => [e.messageId, e.feedback]));
2774
- o.size && J.getState().patchMessages((e) => e.map((e) => o.has(e.id) ? {
2756
+ o.size && q.getState().patchMessages((e) => e.map((e) => o.has(e.id) ? {
2775
2757
  ...e,
2776
2758
  feedback: o.get(e.id)
2777
2759
  } : e));
@@ -2783,7 +2765,7 @@ function On(e) {
2783
2765
  u.current !== t || t.signal.aborted || t.abort();
2784
2766
  }, o = globalThis.setTimeout(() => {
2785
2767
  a();
2786
- }, Sn);
2768
+ }, Cn);
2787
2769
  try {
2788
2770
  let o = (await n.subscribeRunEvents({
2789
2771
  sessionId: e.sessionId,
@@ -2813,8 +2795,8 @@ function On(e) {
2813
2795
  }
2814
2796
  try {
2815
2797
  let t = JSON.parse(o);
2816
- u = rn(u, [t]), i ||= on(t), r ||= i, t.EventType === "run_checkpoint" && Q.getState().upsertSessionCheckpoint(e.sessionId, t);
2817
- let n = Dn(t);
2798
+ u = rn(u, [t]), i ||= an(t), r ||= i, t.EventType === "run_checkpoint" && Q.getState().upsertSessionCheckpoint(e.sessionId, t);
2799
+ let n = On(t);
2818
2800
  if (n && L.getState().updateActivity({
2819
2801
  sessionId: e.sessionId,
2820
2802
  status: n.status,
@@ -2825,8 +2807,6 @@ function On(e) {
2825
2807
  a();
2826
2808
  break;
2827
2809
  }
2828
- let c = nn(u);
2829
- En(c, J.getState().messages) && J.getState().setMessages(c);
2830
2810
  } catch (e) {
2831
2811
  console.warn("Failed to parse run event data", o, e);
2832
2812
  }
@@ -2842,18 +2822,29 @@ function On(e) {
2842
2822
  let t = () => s.current === e;
2843
2823
  z.getState().setCurrentSessionId(e), i(), u.current?.abort(), r && _.getState().setMobileSidebarOpen(!1);
2844
2824
  try {
2845
- let r = await xn(e, n.listSessionEvents, {
2846
- pageSize: Tn,
2847
- shouldContinue: t
2825
+ let r = await n.listSessionMessages(e, {
2826
+ includeReasoning: !0,
2827
+ includeToolEvents: !0,
2828
+ includeAttachments: !0
2829
+ });
2830
+ if (!t()) return;
2831
+ let i = xn(r.Messages);
2832
+ q.getState().setMessages(i), p(l.current, e, i);
2833
+ let o = r.LatestSeqId || 0;
2834
+ n.listSessionEvents(e, { limit: En }).then((n) => {
2835
+ if (!t()) return;
2836
+ let r = n.Events || [];
2837
+ z.getState().setSessionEventCache(e, {
2838
+ events: r,
2839
+ total: n.Total ?? 0,
2840
+ offset: (n.Offset ?? 0) + r.length,
2841
+ limit: n.Limit ?? 0
2842
+ });
2843
+ }).catch((e) => {
2844
+ console.warn("[SessionLifecycle] event cache load failed:", e);
2848
2845
  });
2849
- if (!r || (z.getState().setSessionEventCache(e, {
2850
- events: r.events,
2851
- total: r.total,
2852
- offset: r.offset,
2853
- limit: r.limit
2854
- }), !t())) return;
2855
- let i = F.getState().capabilities || a;
2856
- if (i.RunLifecycle.Enabled && i.RunLifecycle.Checkpoints ? (n.listSessionCheckpoints({
2846
+ let s = F.getState().capabilities || a;
2847
+ if (s.RunLifecycle.Enabled && s.RunLifecycle.Checkpoints ? (n.listSessionCheckpoints({
2857
2848
  agentId: l.current,
2858
2849
  sessionId: e
2859
2850
  }).then((t) => {
@@ -2867,26 +2858,21 @@ function On(e) {
2867
2858
  Q.getState().setSessionToolReceipts(e, t.ToolReceipts || []);
2868
2859
  }).catch((t) => {
2869
2860
  console.warn("[SessionLifecycle] tool receipt load failed:", t), Q.getState().setSessionToolReceipts(e, []);
2870
- })) : Q.getState().clearSessionCheckpoints(e), r.events) {
2871
- let n = r.events, a = nn(n);
2861
+ })) : Q.getState().clearSessionCheckpoints(e), s.RunLifecycle.Enabled && s.RunLifecycle.Resume) try {
2862
+ let r = await n.getSession(e);
2872
2863
  if (!t()) return;
2873
- J.getState().setMessages(a), p(l.current, e, a);
2874
- let o = yn(n, {
2875
- now: Date.now(),
2876
- staleAfterMs: 1800 * 1e3
2877
- }), s = an(n);
2878
- i.RunLifecycle.Enabled && i.RunLifecycle.Resume && o[0] && m({
2864
+ let i = String(r.ActiveRunStatus || "").toLowerCase();
2865
+ Dn.has(i) && r.ActiveInvocationId && m({
2879
2866
  sessionId: e,
2880
- invocationId: o[0],
2881
- afterSeqId: s,
2882
- initialEvents: n
2867
+ invocationId: r.ActiveInvocationId,
2868
+ afterSeqId: o,
2869
+ initialEvents: []
2883
2870
  });
2884
- } else {
2885
- if (!t()) return;
2886
- J.getState().setMessages([]), Q.getState().setSessionCheckpoints(e, []), Q.getState().setSessionToolReceipts(e, []);
2871
+ } catch (e) {
2872
+ console.warn("[SessionLifecycle] getSession for reconnect failed:", e);
2887
2873
  }
2888
2874
  } catch (e) {
2889
- console.error("Failed to load session events:", e);
2875
+ console.error("Failed to load session messages:", e);
2890
2876
  }
2891
2877
  }, [
2892
2878
  n,
@@ -2901,19 +2887,19 @@ function On(e) {
2901
2887
  r.sessionsAgentId && r.sessionsAgentId !== e && r.resetSessionPagination(e), z.getState().setLoadingSessions(!0);
2902
2888
  let i = await n.listSessions(e, {
2903
2889
  page: 1,
2904
- pageSize: Cn
2890
+ pageSize: wn
2905
2891
  });
2906
2892
  z.getState().upsertSessions(i.Sessions || [], {
2907
2893
  agentId: e,
2908
2894
  total: Number(i.Total ?? i.Sessions?.length ?? 0),
2909
2895
  page: Number(i.Page ?? 1),
2910
- pageSize: Number(i.PageSize ?? Cn),
2896
+ pageSize: Number(i.PageSize ?? wn),
2911
2897
  replace: !0
2912
2898
  });
2913
- let a = z.getState().sessions, o = s.current, c = we(a, o || t || Se(e));
2914
- c && c !== o ? h(c) : !c && o && (s.current = null, z.getState().setCurrentSessionId(null), J.getState().setMessages([]), Q.getState().clearSessionCheckpoints());
2899
+ let a = z.getState().sessions, o = s.current, c = Te(a, o || t || Ce(e));
2900
+ c && c !== o ? h(c) : !c && o && (s.current = null, z.getState().setCurrentSessionId(null), q.getState().setMessages([]), Q.getState().clearSessionCheckpoints());
2915
2901
  } catch (e) {
2916
- if (e instanceof W) return;
2902
+ if (e instanceof U) return;
2917
2903
  console.error("Failed to fetch sessions:", e);
2918
2904
  } finally {
2919
2905
  z.getState().setLoadingSessions(!1);
@@ -2923,11 +2909,11 @@ function On(e) {
2923
2909
  if (e.isLoadingSessions || !e.hasMoreSessions) return;
2924
2910
  let t = le({
2925
2911
  total: e.sessionsTotal,
2926
- pageSize: e.sessionsPageSize || Cn,
2912
+ pageSize: e.sessionsPageSize || wn,
2927
2913
  loadedPages: e.loadedPages
2928
2914
  });
2929
2915
  if (!t) return;
2930
- let r = e.sessionsPageSize || Cn, i = e.sessionsAgentId || l.current || "default-agent";
2916
+ let r = e.sessionsPageSize || wn, i = e.sessionsAgentId || l.current || "default-agent";
2931
2917
  try {
2932
2918
  z.getState().setLoadingSessions(!0);
2933
2919
  let a = await n.listSessions(i, {
@@ -2941,7 +2927,7 @@ function On(e) {
2941
2927
  pageSize: Number(a.PageSize ?? r)
2942
2928
  });
2943
2929
  } catch (e) {
2944
- if (e instanceof W) return;
2930
+ if (e instanceof U) return;
2945
2931
  console.error("Failed to load more sessions:", e);
2946
2932
  } finally {
2947
2933
  z.getState().setLoadingSessions(!1);
@@ -2959,9 +2945,9 @@ function On(e) {
2959
2945
  e && (z.getState().upsertSessions([{
2960
2946
  SessionId: e,
2961
2947
  UpdatedAt: (/* @__PURE__ */ new Date()).toISOString()
2962
- }]), s.current = e, z.getState().setCurrentSessionId(e), J.getState().setMessages([]), Q.getState().setSessionCheckpoints(e, []), Q.getState().setSessionToolReceipts(e, []), r && (_.getState().setMobileSidebarOpen(!1), _.getState().setMobileActionsOpen(!1)), g(t, e));
2948
+ }]), s.current = e, z.getState().setCurrentSessionId(e), q.getState().setMessages([]), Q.getState().setSessionCheckpoints(e, []), Q.getState().setSessionToolReceipts(e, []), r && (_.getState().setMobileSidebarOpen(!1), _.getState().setMobileActionsOpen(!1)), g(t, e));
2963
2949
  } catch (e) {
2964
- if (e instanceof W) return;
2950
+ if (e instanceof U) return;
2965
2951
  console.error("Failed to create session:", e);
2966
2952
  }
2967
2953
  }, [
@@ -2972,9 +2958,9 @@ function On(e) {
2972
2958
  r
2973
2959
  ]), b = A(async (e) => {
2974
2960
  try {
2975
- await n.deleteSession(e), z.getState().removeSession(e), z.getState().clearSessionEventCache(e), s.current === e && (s.current = null, J.getState().setMessages([]), Q.getState().clearSessionCheckpoints(e), z.getState().setCurrentSessionId(null), g(t));
2961
+ await n.deleteSession(e), z.getState().removeSession(e), z.getState().clearSessionEventCache(e), s.current === e && (s.current = null, q.getState().setMessages([]), Q.getState().clearSessionCheckpoints(e), z.getState().setCurrentSessionId(null), g(t));
2976
2962
  } catch (e) {
2977
- if (e instanceof W) return;
2963
+ if (e instanceof U) return;
2978
2964
  console.error("Failed to delete session", e);
2979
2965
  }
2980
2966
  }, [
@@ -2989,7 +2975,7 @@ function On(e) {
2989
2975
  loadOlderSessionEvents: A(async (e) => {
2990
2976
  let t = z.getState().eventCache[e];
2991
2977
  if (!t || t.isLoadingOlder) return;
2992
- let r = bn(t, wn);
2978
+ let r = Sn(t, Tn);
2993
2979
  if (r) try {
2994
2980
  z.getState().setSessionEventLoadingOlder(e, !0);
2995
2981
  let i = await n.listSessionEvents(e, r), a = i.Events || [], o = rn(a, t.events), c = t.offset + a.length;
@@ -3000,10 +2986,10 @@ function On(e) {
3000
2986
  limit: o.length
3001
2987
  }), s.current === e) {
3002
2988
  let t = nn(o);
3003
- J.getState().setMessages(t), p(l.current, e, t);
2989
+ q.getState().setMessages(t), p(l.current, e, t);
3004
2990
  }
3005
2991
  } catch (e) {
3006
- e instanceof W || console.error("Failed to load older session events:", e);
2992
+ e instanceof U || console.error("Failed to load older session events:", e);
3007
2993
  } finally {
3008
2994
  z.getState().setSessionEventLoadingOlder(e, !1);
3009
2995
  }
@@ -3017,8 +3003,8 @@ function On(e) {
3017
3003
  }
3018
3004
  //#endregion
3019
3005
  //#region src/components/chat/ConnectedSidebar.tsx
3020
- function kn({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSession: s, loadMoreSessions: c }) {
3021
- let u = z((e) => e.sessions), d = z((e) => e.currentSessionId), f = z((e) => e.pinnedSessionIds), m = z((e) => e.isLoadingSessions), h = z((e) => e.hasMoreSessions), g = _((e) => e.sidebarOpen), v = _((e) => e.mobileSidebarOpen), { isMobile: y } = Pe(), b = t(e), { desktopSidebarVisible: ee } = ge({
3006
+ function An({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSession: s, loadMoreSessions: c }) {
3007
+ let u = z((e) => e.sessions), d = z((e) => e.currentSessionId), f = z((e) => e.pinnedSessionIds), m = z((e) => e.isLoadingSessions), h = z((e) => e.hasMoreSessions), g = _((e) => e.sidebarOpen), v = _((e) => e.mobileSidebarOpen), { isMobile: y } = Fe(), b = t(e), { desktopSidebarVisible: ee } = _e({
3022
3008
  isMobile: y,
3023
3009
  desktopSidebarOpen: g,
3024
3010
  mobileSidebarOpen: v
@@ -3080,13 +3066,13 @@ function kn({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSess
3080
3066
  }
3081
3067
  //#endregion
3082
3068
  //#region src/components/ui/dialog.tsx
3083
- var An = N.Root, jn = N.Portal, Mn = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Overlay, {
3069
+ var jn = N.Root, Mn = N.Portal, Nn = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Overlay, {
3084
3070
  ref: n,
3085
3071
  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),
3086
3072
  ...t
3087
3073
  }));
3088
- Mn.displayName = N.Overlay.displayName;
3089
- var Nn = O.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ D(jn, { children: [/* @__PURE__ */ E(Mn, {}), /* @__PURE__ */ D(N.Content, {
3074
+ Nn.displayName = N.Overlay.displayName;
3075
+ var Pn = O.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ D(Mn, { children: [/* @__PURE__ */ E(Nn, {}), /* @__PURE__ */ D(N.Content, {
3090
3076
  ref: r,
3091
3077
  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),
3092
3078
  ...n,
@@ -3098,50 +3084,50 @@ var Nn = O.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ *
3098
3084
  })]
3099
3085
  })]
3100
3086
  })] }));
3101
- Nn.displayName = N.Content.displayName;
3102
- var Pn = ({ className: e, ...t }) => /* @__PURE__ */ E("div", {
3087
+ Pn.displayName = N.Content.displayName;
3088
+ var Fn = ({ className: e, ...t }) => /* @__PURE__ */ E("div", {
3103
3089
  className: p("flex flex-col space-y-1.5 text-center sm:text-left", e),
3104
3090
  ...t
3105
3091
  });
3106
- Pn.displayName = "DialogHeader";
3107
- var Fn = ({ className: e, ...t }) => /* @__PURE__ */ E("div", {
3092
+ Fn.displayName = "DialogHeader";
3093
+ var In = ({ className: e, ...t }) => /* @__PURE__ */ E("div", {
3108
3094
  className: p("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", e),
3109
3095
  ...t
3110
3096
  });
3111
- Fn.displayName = "DialogFooter";
3112
- var In = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Title, {
3097
+ In.displayName = "DialogFooter";
3098
+ var Ln = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Title, {
3113
3099
  ref: n,
3114
3100
  className: p("text-lg font-semibold leading-none tracking-tight", e),
3115
3101
  ...t
3116
3102
  }));
3117
- In.displayName = N.Title.displayName;
3118
- var Ln = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Description, {
3103
+ Ln.displayName = N.Title.displayName;
3104
+ var Rn = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Description, {
3119
3105
  ref: n,
3120
3106
  className: p("text-sm text-muted-foreground", e),
3121
3107
  ...t
3122
3108
  }));
3123
- Ln.displayName = N.Description.displayName;
3109
+ Rn.displayName = N.Description.displayName;
3124
3110
  //#endregion
3125
3111
  //#region src/components/chat/AttachmentPreview.tsx
3126
- function Rn(e, t) {
3112
+ function zn(e, t) {
3127
3113
  if (!(!t || e)) return {
3128
3114
  width: `min(${t.width}px, calc(100vw - 5rem))`,
3129
3115
  height: `min(${t.height}px, calc(100vh - 9rem))`
3130
3116
  };
3131
3117
  }
3132
- function zn(e, t) {
3118
+ function Bn(e, t) {
3133
3119
  if (!(!t || e)) return { width: `min(${t.width + 32}px, calc(100vw - 3rem))` };
3134
3120
  }
3135
- function Bn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onImageLoad: i }) {
3136
- return /* @__PURE__ */ E(An, {
3121
+ function Vn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onImageLoad: i }) {
3122
+ return /* @__PURE__ */ E(jn, {
3137
3123
  open: !!e?.url,
3138
3124
  onOpenChange: (e) => !e && r(),
3139
- children: /* @__PURE__ */ D(Nn, {
3125
+ children: /* @__PURE__ */ D(Pn, {
3140
3126
  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"),
3141
- style: zn(t, n),
3127
+ style: Bn(t, n),
3142
3128
  children: [/* @__PURE__ */ E("div", {
3143
3129
  className: "flex items-center gap-3 border-b border-slate-800 px-4 py-3 pr-16",
3144
- children: /* @__PURE__ */ E(In, {
3130
+ children: /* @__PURE__ */ E(Ln, {
3145
3131
  className: "truncate text-sm font-medium",
3146
3132
  children: e?.name || "附件预览"
3147
3133
  })
@@ -3151,7 +3137,7 @@ function Bn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onIma
3151
3137
  src: e.url,
3152
3138
  alt: e.name,
3153
3139
  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)]"),
3154
- style: Rn(t, n),
3140
+ style: zn(t, n),
3155
3141
  onLoad: (e) => {
3156
3142
  let t = e.currentTarget;
3157
3143
  i({
@@ -3170,7 +3156,7 @@ function Bn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onIma
3170
3156
  }
3171
3157
  //#endregion
3172
3158
  //#region src/utils/context.js
3173
- function Vn(e) {
3159
+ function Hn(e) {
3174
3160
  if (typeof e == "number" && Number.isFinite(e) && e > 0) return e;
3175
3161
  if (typeof e == "string" && e.trim()) {
3176
3162
  let t = Number(e);
@@ -3178,15 +3164,15 @@ function Vn(e) {
3178
3164
  }
3179
3165
  return null;
3180
3166
  }
3181
- function Hn(e) {
3167
+ function Un(e) {
3182
3168
  return /[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]/u.test(e);
3183
3169
  }
3184
- function Un(e) {
3170
+ function Wn(e) {
3185
3171
  let t = String(e || "").trim();
3186
3172
  if (!t) return 0;
3187
3173
  let n = 0, r = 0;
3188
3174
  for (let e of t) {
3189
- if (Hn(e)) {
3175
+ if (Un(e)) {
3190
3176
  n += 1;
3191
3177
  continue;
3192
3178
  }
@@ -3194,24 +3180,24 @@ function Un(e) {
3194
3180
  }
3195
3181
  return Math.max(1, n + Math.ceil(r / 4));
3196
3182
  }
3197
- function Wn(e) {
3198
- if (!e) return 0;
3199
- if (e.role === "system") return e.eventType === "context_checkpoint" ? Un(e.summary || "") : 0;
3200
- let t = Un(e.content || "");
3201
- return e.tools && (t += Object.values(e.tools).reduce((e, t) => e + Un(t?.name || "") + Un(t?.args || "") + Un(t?.output || ""), 0)), t;
3202
- }
3203
3183
  function Gn(e) {
3204
- return e ? Vn(e.context_window_tokens) ?? Vn(e?.limits?.context_window_tokens) : null;
3184
+ if (!e) return 0;
3185
+ if (e.role === "system") return e.eventType === "context_checkpoint" ? Wn(e.summary || "") : 0;
3186
+ let t = Wn(e.content || "");
3187
+ return e.tools && (t += Object.values(e.tools).reduce((e, t) => e + Wn(t?.name || "") + Wn(t?.args || "") + Wn(t?.output || ""), 0)), t;
3205
3188
  }
3206
3189
  function Kn(e) {
3207
- return e ? Vn(e.auto_compact_threshold_percentage) ?? 84 : 84;
3190
+ return e ? Hn(e.context_window_tokens) ?? Hn(e?.limits?.context_window_tokens) : null;
3208
3191
  }
3209
- function qn({ messages: e, draftInput: t, selectedModel: n }) {
3210
- let r = Gn(n);
3192
+ function qn(e) {
3193
+ return e ? Hn(e.auto_compact_threshold_percentage) ?? 84 : 84;
3194
+ }
3195
+ function Jn({ messages: e, draftInput: t, selectedModel: n }) {
3196
+ let r = Kn(n);
3211
3197
  if (!r) return null;
3212
3198
  let i = [...e || []].reverse().find((e) => e?.role === "system" && e?.eventType === "context_checkpoint" && e?.status === "running");
3213
3199
  if (i) {
3214
- let e = Wn(i);
3200
+ let e = Gn(i);
3215
3201
  return {
3216
3202
  label: "正在压缩上下文…",
3217
3203
  phase: "compressing",
@@ -3220,10 +3206,10 @@ function qn({ messages: e, draftInput: t, selectedModel: n }) {
3220
3206
  percent: Math.min(100, Math.max(0, Math.round(e / r * 100)))
3221
3207
  };
3222
3208
  }
3223
- let a = (e || []).reduce((e, t) => e + Wn(t), 0) + Un(t || "");
3209
+ let a = (e || []).reduce((e, t) => e + Gn(t), 0) + Wn(t || "");
3224
3210
  if (a <= 0) return null;
3225
3211
  let o = Math.min(100, Math.max(0, Math.round(a / r * 100)));
3226
- return o >= Kn(n) ? {
3212
+ return o >= qn(n) ? {
3227
3213
  label: `估算上下文 ${o}% · 即将压缩`,
3228
3214
  phase: "warning",
3229
3215
  percent: o,
@@ -3239,8 +3225,8 @@ function qn({ messages: e, draftInput: t, selectedModel: n }) {
3239
3225
  }
3240
3226
  //#endregion
3241
3227
  //#region src/components/chat/ConnectedMessageList.tsx
3242
- function Jn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback: r, onRespondToApproval: i, onStopGeneration: a, onCancelRemote: o, checkpointResumeEnabled: s = !1, onResumeCheckpoint: c, onLoadOlderSessionEvents: l }) {
3243
- let u = J((e) => e.messages), d = z((e) => e.currentSessionId), f = L((e) => !!(e.getSessionActivity(d) && e.isSessionStreaming(d))), p = L((e) => e.getSessionActivity(d)), h = Q((e) => e.getSessionCheckpoints(d)), g = z((e) => d ? e.eventCache[d] : null), v = _((e) => e.input), y = I((e) => e.availableModels), b = I((e) => e.selectedModel), ee = _((e) => e.previewAttachment), te = _((e) => e.previewImageSize), x = M(null), S = M(!0), C = M(!1), w = M(0), T = M(f), O = M(!1), k = M(!0), re = ie(() => y.find((e) => e.id === b) || null, [y, b]), A = ie(() => qn({
3228
+ function Yn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback: r, onRespondToApproval: i, onStopGeneration: a, onCancelRemote: o, checkpointResumeEnabled: s = !1, onResumeCheckpoint: c, onLoadOlderSessionEvents: l }) {
3229
+ let u = q((e) => e.messages), d = z((e) => e.currentSessionId), f = L((e) => !!(e.getSessionActivity(d) && e.isSessionStreaming(d))), p = L((e) => e.getSessionActivity(d)), h = Q((e) => e.getSessionCheckpoints(d)), g = z((e) => d ? e.eventCache[d] : null), v = _((e) => e.input), y = I((e) => e.availableModels), b = I((e) => e.selectedModel), ee = _((e) => e.previewAttachment), te = _((e) => e.previewImageSize), x = M(null), S = M(!0), C = M(!1), w = M(0), T = M(f), O = M(!1), k = M(!0), re = ie(() => y.find((e) => e.id === b) || null, [y, b]), A = ie(() => Jn({
3244
3230
  messages: u,
3245
3231
  draftInput: v,
3246
3232
  selectedModel: re
@@ -3291,19 +3277,28 @@ function Jn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
3291
3277
  let e = x.current;
3292
3278
  if (e) {
3293
3279
  if (u.length > 0 && k.current) {
3294
- let e = z.getState().currentSessionId, t = 0, n = -1, r = 0, i = () => {
3295
- if (z.getState().currentSessionId !== e) return;
3296
- let a = x.current;
3297
- if (a) {
3298
- if (a.scrollHeight !== n && (n = a.scrollHeight, a.scrollTop = a.scrollHeight, w.current = a.scrollTop, r += 1, r < 8)) {
3299
- t = requestAnimationFrame(i);
3280
+ let e = z.getState().currentSessionId, t = x.current, n = t ? t.style.scrollBehavior : "";
3281
+ t && (t.style.scrollBehavior = "auto", t.scrollTop = t.scrollHeight, w.current = t.scrollTop);
3282
+ let r = 0, i = t?.scrollHeight ?? -1, a = !1, o = 0, s = () => {
3283
+ a || (a = !0, t && (t.style.scrollBehavior = n), S.current = !0, C.current = !1, k.current = !1);
3284
+ }, c = () => {
3285
+ if (a) return;
3286
+ if (z.getState().currentSessionId !== e) {
3287
+ a = !0;
3288
+ return;
3289
+ }
3290
+ let t = x.current;
3291
+ if (t) {
3292
+ if (t.scrollHeight !== i) i = t.scrollHeight, t.scrollTop = t.scrollHeight, w.current = t.scrollTop, r = 0;
3293
+ else if (r += 1, r >= 3) {
3294
+ s();
3300
3295
  return;
3301
3296
  }
3302
- S.current = !0, C.current = !1, k.current = !1;
3297
+ o = requestAnimationFrame(c);
3303
3298
  }
3304
- };
3305
- return t = requestAnimationFrame(i), () => {
3306
- cancelAnimationFrame(t);
3299
+ }, l = window.setTimeout(s, 2e3);
3300
+ return o = requestAnimationFrame(c), () => {
3301
+ cancelAnimationFrame(o), window.clearTimeout(l), s();
3307
3302
  };
3308
3303
  }
3309
3304
  S.current && (e.scrollTop = e.scrollHeight, w.current = e.scrollTop);
@@ -3326,7 +3321,7 @@ function Jn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
3326
3321
  checkpoints: s ? h : [],
3327
3322
  onResumeCheckpoint: c,
3328
3323
  scrollRef: x
3329
- }), /* @__PURE__ */ E(Bn, {
3324
+ }), /* @__PURE__ */ E(Vn, {
3330
3325
  attachment: ee,
3331
3326
  isMobile: t,
3332
3327
  previewImageSize: te,
@@ -3338,7 +3333,7 @@ function Jn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
3338
3333
  }
3339
3334
  //#endregion
3340
3335
  //#region src/utils/attachment.ts
3341
- function Yn(e) {
3336
+ function Xn(e) {
3342
3337
  return [
3343
3338
  e.name,
3344
3339
  e.size,
@@ -3346,19 +3341,19 @@ function Yn(e) {
3346
3341
  e.type
3347
3342
  ].join(":");
3348
3343
  }
3349
- function Xn(e, t) {
3344
+ function Zn(e, t) {
3350
3345
  let n = /* @__PURE__ */ new Map();
3351
- for (let t of e) n.set(Yn(t), t);
3352
- for (let e of t) n.set(Yn(e), e);
3346
+ for (let t of e) n.set(Xn(t), t);
3347
+ for (let e of t) n.set(Xn(e), e);
3353
3348
  return Array.from(n.values());
3354
3349
  }
3355
- function Zn(e) {
3350
+ function Qn(e) {
3356
3351
  return Array.from(e.clipboardData.items || []).filter((e) => e.kind === "file").map((e) => e.getAsFile()).filter((e) => !!e);
3357
3352
  }
3358
3353
  //#endregion
3359
3354
  //#region src/components/chat/ConnectedComposer.tsx
3360
- function Qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRemote: r, isMobile: i }) {
3361
- let o = _((e) => e.input), s = _((e) => e.attachments), c = z((e) => e.currentSessionId), l = L((e) => !!(e.getSessionActivity(c) && e.isSessionStreaming(c))), u = _((e) => e.queuedDrafts), d = J((e) => e.messages), f = I((e) => e.availableModels), p = I((e) => e.selectedModel), m = M(null), h = M(null), g = ie(() => f.find((e) => e.id === p) || null, [f, p]), v = ie(() => qn({
3355
+ function $n({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRemote: r, isMobile: i }) {
3356
+ let o = _((e) => e.input), s = _((e) => e.attachments), c = z((e) => e.currentSessionId), l = L((e) => !!(e.getSessionActivity(c) && e.isSessionStreaming(c))), u = _((e) => e.queuedDrafts), d = q((e) => e.messages), f = I((e) => e.availableModels), p = I((e) => e.selectedModel), m = M(null), h = M(null), g = ie(() => f.find((e) => e.id === p) || null, [f, p]), v = ie(() => Jn({
3362
3357
  messages: d,
3363
3358
  draftInput: o,
3364
3359
  selectedModel: g
@@ -3375,7 +3370,7 @@ function Qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
3375
3370
  let b = (t) => {
3376
3371
  _.getState().setInput(t.target.value), t.target.style.height = "auto", t.target.style.height = `${Math.min(t.target.scrollHeight, e)}px`;
3377
3372
  }, ee = (e) => {
3378
- e.length && _.getState().setAttachments((t) => Xn(t, e));
3373
+ e.length && _.getState().setAttachments((t) => Zn(t, e));
3379
3374
  };
3380
3375
  return /* @__PURE__ */ E(a, {
3381
3376
  attachments: s,
@@ -3389,7 +3384,7 @@ function Qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
3389
3384
  onAppendAttachments: ee,
3390
3385
  onInputChange: b,
3391
3386
  onPaste: (e) => {
3392
- let t = Zn(e);
3387
+ let t = Qn(e);
3393
3388
  t.length && (e.preventDefault(), e.stopPropagation(), ee(t));
3394
3389
  },
3395
3390
  onRemoveAttachment: (e) => _.getState().setAttachments((t) => t.filter((t, n) => n !== e)),
@@ -3401,8 +3396,8 @@ function Qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
3401
3396
  }
3402
3397
  //#endregion
3403
3398
  //#region src/api/session.ts
3404
- async function $n(e, t) {
3405
- let n = await q("ListSessions", {
3399
+ async function er(e, t) {
3400
+ let n = await K("ListSessions", {
3406
3401
  AgentId: e,
3407
3402
  Page: t?.page,
3408
3403
  PageSize: t?.pageSize
@@ -3414,16 +3409,19 @@ async function $n(e, t) {
3414
3409
  PageSize: Number.isFinite(Number(n.PageSize)) ? Number(n.PageSize) : t?.pageSize ?? n.Sessions?.length ?? 0
3415
3410
  };
3416
3411
  }
3417
- async function er(e, t) {
3418
- return (await q("CreateSession", { AgentId: e }, t)).Session;
3419
- }
3420
3412
  async function tr(e, t) {
3421
- await q("DeleteSession", { SessionId: e }, t);
3413
+ return (await K("CreateSession", { AgentId: e }, t)).Session;
3414
+ }
3415
+ async function nr(e, t) {
3416
+ await K("DeleteSession", { SessionId: e }, t);
3417
+ }
3418
+ async function rr(e, t) {
3419
+ return (await K("GetSession", { SessionId: e }, t)).Session;
3422
3420
  }
3423
3421
  //#endregion
3424
3422
  //#region src/api/events.ts
3425
- async function nr(e, t) {
3426
- let n = await q("ListSessionEvents", {
3423
+ async function ir(e, t) {
3424
+ let n = await K("ListSessionEvents", {
3427
3425
  SessionId: e,
3428
3426
  Offset: t?.offset,
3429
3427
  Limit: t?.limit
@@ -3436,35 +3434,54 @@ async function nr(e, t) {
3436
3434
  };
3437
3435
  }
3438
3436
  //#endregion
3437
+ //#region src/api/messages.ts
3438
+ async function ar(e, t) {
3439
+ let n = await K("ListSessionMessages", {
3440
+ AgentId: t?.agentId,
3441
+ SessionId: e,
3442
+ AfterSeqId: t?.afterSeqId,
3443
+ Limit: t?.limit,
3444
+ IncludeReasoning: t?.includeReasoning,
3445
+ IncludeToolEvents: t?.includeToolEvents,
3446
+ IncludeAttachments: t?.includeAttachments
3447
+ }, t);
3448
+ return {
3449
+ Messages: n.Messages ?? [],
3450
+ LatestSeqId: Number.isFinite(Number(n.LatestSeqId)) ? Number(n.LatestSeqId) : 0,
3451
+ HasMore: !!n.HasMore,
3452
+ NextCursor: Number.isFinite(Number(n.NextCursor)) ? Number(n.NextCursor) : null
3453
+ };
3454
+ }
3455
+ //#endregion
3439
3456
  //#region src/api/run.ts
3440
- async function rr(e, t) {
3441
- return Re("RunAgent", e, t);
3457
+ async function or(e, t) {
3458
+ return ze("RunAgent", e, t);
3442
3459
  }
3443
3460
  //#endregion
3444
3461
  //#region src/api/checkpoints.ts
3445
- async function ir(e, t) {
3462
+ async function sr(e, t) {
3446
3463
  let n = {
3447
3464
  AgentId: e.agentId,
3448
3465
  SessionId: e.sessionId
3449
3466
  };
3450
- return e.runId && (n.RunId = e.runId), q("ListSessionCheckpoints", n, t);
3467
+ return e.runId && (n.RunId = e.runId), K("ListSessionCheckpoints", n, t);
3451
3468
  }
3452
- async function ar(e, t) {
3453
- return q("GetCheckpointResumePreview", {
3469
+ async function cr(e, t) {
3470
+ return K("GetCheckpointResumePreview", {
3454
3471
  AgentId: e.agentId,
3455
3472
  SessionId: e.sessionId,
3456
3473
  RunId: e.runId,
3457
3474
  CheckpointId: e.checkpointId
3458
3475
  }, t);
3459
3476
  }
3460
- async function or(e, t) {
3477
+ async function lr(e, t) {
3461
3478
  let n = {
3462
3479
  AgentId: e.agentId,
3463
3480
  SessionId: e.sessionId
3464
3481
  };
3465
- return e.runId && (n.RunId = e.runId), e.checkpointId && (n.CheckpointId = e.checkpointId), q("ListToolReceipts", n, t);
3482
+ return e.runId && (n.RunId = e.runId), e.checkpointId && (n.CheckpointId = e.checkpointId), K("ListToolReceipts", n, t);
3466
3483
  }
3467
- async function sr(e, t) {
3484
+ async function ur(e, t) {
3468
3485
  let n = {
3469
3486
  AgentId: e.agentId,
3470
3487
  SessionId: e.sessionId,
@@ -3472,28 +3489,28 @@ async function sr(e, t) {
3472
3489
  CheckpointId: e.checkpointId,
3473
3490
  Stream: !0
3474
3491
  };
3475
- return e.resumeAttemptId && (n.ResumeAttemptId = e.resumeAttemptId), e.invocationId && (n.InvocationId = e.invocationId), Re("ResumeRun", n, t);
3492
+ return e.resumeAttemptId && (n.ResumeAttemptId = e.resumeAttemptId), e.invocationId && (n.InvocationId = e.invocationId), ze("ResumeRun", n, t);
3476
3493
  }
3477
3494
  //#endregion
3478
3495
  //#region src/api/workspace.ts
3479
- async function cr(e, t, n) {
3480
- return q("ListWorkspaceFiles", {
3496
+ async function dr(e, t, n) {
3497
+ return K("ListWorkspaceFiles", {
3481
3498
  AgentId: e,
3482
3499
  Path: t,
3483
3500
  Recursive: n
3484
3501
  });
3485
3502
  }
3486
- async function lr(e) {
3487
- return Ie("AddWorkspaceFile", e);
3503
+ async function fr(e) {
3504
+ return Le("AddWorkspaceFile", e);
3488
3505
  }
3489
- async function ur(e, t) {
3490
- return q("DeleteWorkspaceFile", {
3506
+ async function pr(e, t) {
3507
+ return K("DeleteWorkspaceFile", {
3491
3508
  AgentId: e,
3492
3509
  Path: t
3493
3510
  });
3494
3511
  }
3495
- async function dr(e, t, n) {
3496
- return Le("GetWorkspaceFileContent", {
3512
+ async function mr(e, t, n) {
3513
+ return Re("GetWorkspaceFileContent", {
3497
3514
  AgentId: e,
3498
3515
  FilePath: t
3499
3516
  }, {
@@ -3503,88 +3520,94 @@ async function dr(e, t, n) {
3503
3520
  }
3504
3521
  //#endregion
3505
3522
  //#region src/api/upload.ts
3506
- async function fr(e, t) {
3507
- return Ie("UploadFile", e, t);
3523
+ async function hr(e, t) {
3524
+ return Le("UploadFile", e, t);
3508
3525
  }
3509
3526
  //#endregion
3510
3527
  //#region src/core/api/facade.ts
3511
- var pr = class {
3528
+ var gr = class {
3512
3529
  async listSessions(e, t) {
3513
- return $n(e, t);
3530
+ return er(e, t);
3514
3531
  }
3515
3532
  async createSession(e, t) {
3516
- return { SessionId: (await er(e, t)).SessionId };
3533
+ return { SessionId: (await tr(e, t)).SessionId };
3517
3534
  }
3518
3535
  async deleteSession(e, t) {
3519
- await tr(e, t);
3536
+ await nr(e, t);
3537
+ }
3538
+ async getSession(e, t) {
3539
+ return rr(e, t);
3520
3540
  }
3521
3541
  async listSessionEvents(e, t) {
3522
- return nr(e, t);
3542
+ return ir(e, t);
3543
+ }
3544
+ async listSessionMessages(e, t) {
3545
+ return ar(e, t);
3523
3546
  }
3524
3547
  async listSessionCheckpoints(e, t) {
3525
- return ir(e, t);
3548
+ return sr(e, t);
3526
3549
  }
3527
3550
  async previewCheckpointResume(e, t) {
3528
- return ar(e, t);
3551
+ return cr(e, t);
3529
3552
  }
3530
3553
  async listToolReceipts(e, t) {
3531
- return or(e, t);
3554
+ return lr(e, t);
3532
3555
  }
3533
3556
  async runAgent(e, t) {
3534
- return rr(e, t);
3557
+ return or(e, t);
3535
3558
  }
3536
3559
  async resumeRun(e, t) {
3537
- return sr(e, t);
3560
+ return ur(e, t);
3538
3561
  }
3539
3562
  async subscribeRunEvents(e, t) {
3540
- return ze("SubscribeRunEvents", {
3563
+ return Be("SubscribeRunEvents", {
3541
3564
  SessionId: e.sessionId,
3542
3565
  InvocationId: e.invocationId,
3543
3566
  AfterSeqId: String(e.afterSeqId)
3544
3567
  }, t);
3545
3568
  }
3546
3569
  async cancelRun(e, t, n) {
3547
- return q("CancelRun", {
3570
+ return K("CancelRun", {
3548
3571
  AgentId: e,
3549
3572
  InvocationId: t
3550
3573
  }, n);
3551
3574
  }
3552
3575
  async getResponseFeedback(e, t) {
3553
- return q("GetResponseFeedback", e, t);
3576
+ return K("GetResponseFeedback", e, t);
3554
3577
  }
3555
3578
  async upsertResponseFeedback(e, t) {
3556
- return q("UpsertResponseFeedback", e, t);
3579
+ return K("UpsertResponseFeedback", e, t);
3557
3580
  }
3558
3581
  async deleteResponseFeedback(e, t) {
3559
- await q("DeleteResponseFeedback", e, t);
3582
+ await K("DeleteResponseFeedback", e, t);
3560
3583
  }
3561
3584
  async listWorkspaceFiles(e, t, n) {
3562
- return cr(e, t, n);
3585
+ return dr(e, t, n);
3563
3586
  }
3564
3587
  async addWorkspaceFile(e) {
3565
- return lr(e);
3588
+ return fr(e);
3566
3589
  }
3567
3590
  async deleteWorkspaceFile(e, t) {
3568
- await ur(e, t);
3591
+ await pr(e, t);
3569
3592
  }
3570
3593
  async getWorkspaceFileContent(e, t, n) {
3571
- return dr(e, t, n);
3594
+ return mr(e, t, n);
3572
3595
  }
3573
3596
  async listAgentModels(e) {
3574
- return Ve(e);
3597
+ return He(e);
3575
3598
  }
3576
3599
  async getAgentUiBootstrap() {
3577
- return Be();
3600
+ return Ve();
3578
3601
  }
3579
3602
  async uploadFile(e, t) {
3580
- return fr(e, t);
3603
+ return hr(e, t);
3581
3604
  }
3582
- }, mr = new pr(), hr = k.lazy(() => import("./ArtifactsPanel-D3AiN69_.js").then((e) => ({ default: e.ArtifactsPanel }))), gr = k.lazy(() => import("./NativeTerminalPanel-mQwtEFvo.js").then((e) => e.n).then((e) => ({ default: e.NativeTerminalPanel })));
3583
- function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3584
- let a = e || mr, o = F((e) => e.agentId), s = z((e) => e.currentSessionId), c = L((e) => e.isStreaming), l = _((e) => e.sidebarOpen), u = _((e) => e.mobileSidebarOpen), d = _((e) => e.mobileActionsOpen), f = F((e) => e.agentName), p = I((e) => e.selectedModel), m = I((e) => e.availableModels), h = I((e) => e.modelSource), v = I((e) => e.modelCatalogLoaded), te = I((e) => e.thinkingMode), x = F((e) => e.agentFramework), S = F((e) => e.workspaceFiles), C = F((e) => e.accessMode), T = _((e) => e.workspacePanelOpen), O = _((e) => e.workspacePanelWidth), k = _((e) => e.workspacePanelFullscreen), ie = F((e) => e.apiFormats), N = F((e) => e.capabilities), P = w((e) => e.visible && !!e.content), oe = M([]), se = M(null), { isMobile: R, viewportHeight: ce } = Pe(), le = _e({
3605
+ }, _r = new gr(), vr = k.lazy(() => import("./ArtifactsPanel-DCn5q1OB.js").then((e) => ({ default: e.ArtifactsPanel }))), yr = k.lazy(() => import("./NativeTerminalPanel-CjyPyYC4.js").then((e) => e.n).then((e) => ({ default: e.NativeTerminalPanel })));
3606
+ function br({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3607
+ let a = e || _r, o = F((e) => e.agentId), s = z((e) => e.currentSessionId), c = L((e) => e.isStreaming), l = _((e) => e.sidebarOpen), u = _((e) => e.mobileSidebarOpen), d = _((e) => e.mobileActionsOpen), f = F((e) => e.agentName), p = I((e) => e.selectedModel), m = I((e) => e.availableModels), h = I((e) => e.modelSource), v = I((e) => e.modelCatalogLoaded), te = I((e) => e.thinkingMode), x = F((e) => e.agentFramework), S = F((e) => e.workspaceFiles), C = F((e) => e.accessMode), T = _((e) => e.workspacePanelOpen), O = _((e) => e.workspacePanelWidth), k = _((e) => e.workspacePanelFullscreen), ie = F((e) => e.apiFormats), N = F((e) => e.capabilities), P = w((e) => e.visible && !!e.content), oe = M([]), se = M(null), { isMobile: R, viewportHeight: ce } = Fe(), le = ve({
3585
3608
  isMobile: R,
3586
3609
  viewportHeight: ce
3587
- }), { fetchSessions: ue, loadMoreSessions: de, loadSession: fe, loadOlderSessionEvents: pe, createNewSession: me, deleteSession: he, currentSessionIdRef: B, agentIdRef: V, runSubscriptionAbortRef: ge } = On({
3610
+ }), { fetchSessions: ue, loadMoreSessions: de, loadSession: fe, loadOlderSessionEvents: pe, createNewSession: me, deleteSession: he, currentSessionIdRef: B, agentIdRef: ge, runSubscriptionAbortRef: _e } = kn({
3588
3611
  agentId: o,
3589
3612
  currentSessionId: s,
3590
3613
  isMobile: R,
@@ -3592,39 +3615,39 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3592
3615
  api: a,
3593
3616
  resetCompaction: () => {},
3594
3617
  disconnectRun: () => se.current?.()
3595
- }), ve = A((e) => {
3618
+ }), ye = A((e) => {
3596
3619
  if (!e) return;
3597
3620
  let t = () => {
3598
- z.getState().clearSessionEventCache(e), ue(V.current, e);
3621
+ z.getState().clearSessionEventCache(e), ue(ge.current, e);
3599
3622
  };
3600
3623
  queueMicrotask(t), window.setTimeout(t, 1800), window.setTimeout(t, 5e3);
3601
- }, [V, ue]), ye = m.find((e) => e.id === p) || null, { submitDraft: be, stopGeneration: xe, disconnectRun: Se, resumeCheckpoint: we } = pn({
3624
+ }, [ge, ue]), be = m.find((e) => e.id === p) || null, { submitDraft: xe, stopGeneration: Se, disconnectRun: Ce, resumeCheckpoint: Te } = fn({
3602
3625
  agentId: o,
3603
3626
  currentSessionId: s,
3604
3627
  agentFramework: x,
3605
3628
  apiFormats: ie,
3606
3629
  selectedModel: p,
3607
- selectedModelMetadata: ye,
3630
+ selectedModelMetadata: be,
3608
3631
  thinkingMode: te,
3609
3632
  uiCapabilities: N,
3610
3633
  isMobile: R,
3611
3634
  api: a,
3612
3635
  currentSessionIdRef: B,
3613
- agentIdRef: V,
3636
+ agentIdRef: ge,
3614
3637
  queuedDraftRef: oe,
3615
- onRunSettled: ve
3638
+ onRunSettled: ye
3616
3639
  });
3617
3640
  j(() => {
3618
- se.current = Se;
3619
- }, [Se]);
3620
- let Te = A(() => {
3641
+ se.current = Ce;
3642
+ }, [Ce]);
3643
+ let Ee = A(() => {
3621
3644
  let e = B.current;
3622
- ge.current?.abort(), L.getState().stopActivity(), L.getState().stopSessionActivity(e), xe();
3645
+ _e.current?.abort(), L.getState().stopActivity(), L.getState().stopSessionActivity(e), Se();
3623
3646
  }, [
3624
3647
  B,
3625
- ge,
3626
- xe
3627
- ]), Ee = A(async () => {
3648
+ _e,
3649
+ Se
3650
+ ]), De = A(async () => {
3628
3651
  let e = B.current, t = L.getState(), n = t.currentRunId || t.getSessionActivity(e)?.runId || "";
3629
3652
  if (n) try {
3630
3653
  await a.cancelRun(o, n), L.getState().stopSessionActivity(e, "取消请求已发送,后台运行会停在最近 checkpoint。");
@@ -3637,49 +3660,49 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3637
3660
  countEvent: !1
3638
3661
  });
3639
3662
  }
3640
- ve(e);
3663
+ ye(e);
3641
3664
  }, [
3642
3665
  a,
3643
3666
  o,
3644
3667
  B,
3645
- ve
3646
- ]), { submitResponseFeedback: De, deleteResponseFeedback: Oe, respondToApproval: Ae } = mn({
3668
+ ye
3669
+ ]), { submitResponseFeedback: Oe, deleteResponseFeedback: ke, respondToApproval: je } = pn({
3647
3670
  agentId: o,
3648
3671
  currentSessionId: s,
3649
3672
  isStreaming: c,
3650
3673
  api: a,
3651
- submitDraft: be
3674
+ submitDraft: xe
3652
3675
  });
3653
- We({ fetchSessions: ue }), j(() => {
3654
- V.current = o, B.current = s, Ce(o, s);
3676
+ Ge({ fetchSessions: ue }), j(() => {
3677
+ ge.current = o, B.current = s, we(o, s);
3655
3678
  }, [
3656
3679
  o,
3657
3680
  s,
3658
- V,
3681
+ ge,
3659
3682
  B
3660
3683
  ]), j(() => {
3661
3684
  R ? _.getState().setWorkspacePanelFullscreen(!1) : (_.getState().setMobileSidebarOpen(!1), _.getState().setMobileActionsOpen(!1));
3662
3685
  }, [R]), j(() => {
3663
3686
  T || _.getState().setWorkspacePanelFullscreen(!1);
3664
3687
  }, [T]), j(() => () => {
3665
- ge.current?.abort();
3666
- }, [ge]);
3667
- let Me = t(N), Ne = !!N.Thinking, H = g({
3688
+ _e.current?.abort();
3689
+ }, [_e]);
3690
+ let Ne = t(N), Pe = !!N.Thinking, V = g({
3668
3691
  workspaceFiles: S,
3669
3692
  accessMode: C
3670
- }), U = y({ isMobile: R }), W = ke({
3693
+ }), H = y({ isMobile: R }), U = Ae({
3671
3694
  capability: N.NativeDashboard,
3672
3695
  agentFramework: x,
3673
3696
  accessMode: C,
3674
3697
  origin: window.location.origin
3675
- }), G = !Me, Fe = x === "openclaw" ? "OpenClaw" : x === "hermes" ? "Hermes" : "原生运行时", K = ye?.display_name || p || "", q = !R && l && Me, Ie = M(!1), [Le, Re] = ae(r === "tui"), ze = Le && !!N.NativeTerminal?.Enabled;
3698
+ }), W = !Ne, Ie = x === "openclaw" ? "OpenClaw" : x === "hermes" ? "Hermes" : "原生运行时", G = be?.display_name || p || "", K = !R && l && Ne, Le = M(!1), [Re, ze] = ae(r === "tui"), Be = Re && !!N.NativeTerminal?.Enabled;
3676
3699
  j(() => {
3677
- Ie.current || r !== "workspace" || !H || (Ie.current = !0, _.getState().setWorkspacePanelOpen(!0), _.getState().setWorkspacePanelFullscreen(!0));
3678
- }, [r, H]);
3679
- let Be = /* @__PURE__ */ D("div", {
3700
+ Le.current || r !== "workspace" || !V || (Le.current = !0, _.getState().setWorkspacePanelOpen(!0), _.getState().setWorkspacePanelFullscreen(!0));
3701
+ }, [r, V]);
3702
+ let Ve = /* @__PURE__ */ D("div", {
3680
3703
  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",
3681
3704
  children: [
3682
- /* @__PURE__ */ E(kn, {
3705
+ /* @__PURE__ */ E(An, {
3683
3706
  uiCapabilities: N,
3684
3707
  createNewSession: me,
3685
3708
  deleteSession: he,
@@ -3691,7 +3714,7 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3691
3714
  children: [/* @__PURE__ */ E(n, {
3692
3715
  agentName: f,
3693
3716
  currentSessionId: s,
3694
- nativeLauncherMode: G,
3717
+ nativeLauncherMode: W,
3695
3718
  isMobile: R,
3696
3719
  sidebarOpen: l,
3697
3720
  mobileSidebarOpen: u,
@@ -3703,40 +3726,40 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3703
3726
  onSelectModel: (e) => {
3704
3727
  I.getState().setSelectedModel(e), R && _.getState().setMobileActionsOpen(!1);
3705
3728
  },
3706
- selectedModelLabel: K,
3729
+ selectedModelLabel: G,
3707
3730
  modelCatalogLoaded: v,
3708
3731
  modelSource: h,
3709
- thinkingEnabled: Ne,
3732
+ thinkingEnabled: Pe,
3710
3733
  thinkingMode: te,
3711
- onSelectThinkingMode: (e) => I.getState().setThinkingMode(je(e)),
3734
+ onSelectThinkingMode: (e) => I.getState().setThinkingMode(Me(e)),
3712
3735
  mobileActionsOpen: d,
3713
3736
  onMobileActionsOpenChange: (e) => _.getState().setMobileActionsOpen(e),
3714
- workspaceEnabled: H,
3737
+ workspaceEnabled: V,
3715
3738
  onOpenWorkspace: () => _.getState().setWorkspacePanelOpen(!0),
3716
- nativeManagementLink: W,
3739
+ nativeManagementLink: U,
3717
3740
  nativeTerminal: N.NativeTerminal
3718
- }), G ? /* @__PURE__ */ E(b, {
3719
- productLabel: Fe,
3720
- nativeManagementLink: W,
3741
+ }), W ? /* @__PURE__ */ E(b, {
3742
+ productLabel: Ie,
3743
+ nativeManagementLink: U,
3721
3744
  nativeTerminal: N.NativeTerminal,
3722
- workspaceEnabled: H,
3745
+ workspaceEnabled: V,
3723
3746
  onOpenWorkspace: () => _.getState().setWorkspacePanelOpen(!0)
3724
- }) : /* @__PURE__ */ D(ne, { children: [/* @__PURE__ */ E(Jn, {
3747
+ }) : /* @__PURE__ */ D(ne, { children: [/* @__PURE__ */ E(Yn, {
3725
3748
  agentName: f,
3726
3749
  isMobile: R,
3727
- onDeleteFeedback: Oe,
3728
- onSubmitFeedback: De,
3729
- onRespondToApproval: Ae,
3730
- onStopGeneration: Te,
3731
- onCancelRemote: N.StopRun ? Ee : void 0,
3750
+ onDeleteFeedback: ke,
3751
+ onSubmitFeedback: Oe,
3752
+ onRespondToApproval: je,
3753
+ onStopGeneration: Ee,
3754
+ onCancelRemote: N.StopRun ? De : void 0,
3732
3755
  checkpointResumeEnabled: N.RunLifecycle.Enabled && N.RunLifecycle.Checkpoints && N.RunLifecycle.CheckpointResume,
3733
- onResumeCheckpoint: we,
3756
+ onResumeCheckpoint: Te,
3734
3757
  onLoadOlderSessionEvents: pe
3735
- }), /* @__PURE__ */ E(Qn, {
3758
+ }), /* @__PURE__ */ E($n, {
3736
3759
  composerMaxHeight: le,
3737
- submitDraft: be,
3738
- stopGeneration: Te,
3739
- cancelRemote: N.StopRun ? Ee : void 0,
3760
+ submitDraft: xe,
3761
+ stopGeneration: Ee,
3762
+ cancelRemote: N.StopRun ? De : void 0,
3740
3763
  isMobile: R
3741
3764
  })] })]
3742
3765
  }),
@@ -3747,20 +3770,20 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3747
3770
  workspacePanelWidth: O,
3748
3771
  workspacePanelFullscreen: k,
3749
3772
  isMobile: R,
3750
- workspaceEnabled: H,
3773
+ workspaceEnabled: V,
3751
3774
  workspaceFiles: S,
3752
- workspacePanelPresentation: U,
3775
+ workspacePanelPresentation: H,
3753
3776
  closeWorkspacePanel: () => {
3754
3777
  _.getState().setWorkspacePanelFullscreen(!1), _.getState().setWorkspacePanelOpen(!1);
3755
3778
  },
3756
3779
  handleWorkspacePanelResizeStart: (e) => {
3757
3780
  if (k || R) return;
3758
3781
  e.preventDefault();
3759
- let t = e.clientX, n = O, r = Me && q ? 280 : 0, i = document.body.style.cursor, a = document.body.style.userSelect;
3782
+ let t = e.clientX, n = O, r = Ne && K ? 280 : 0, i = document.body.style.cursor, a = document.body.style.userSelect;
3760
3783
  document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
3761
3784
  let o = (e) => {
3762
3785
  let i = n + t - e.clientX;
3763
- _.getState().setWorkspacePanelWidth(mt(i, window.innerWidth, r));
3786
+ _.getState().setWorkspacePanelWidth(ht(i, window.innerWidth, r));
3764
3787
  }, s = () => {
3765
3788
  document.body.style.cursor = i, document.body.style.userSelect = a, window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", s), window.removeEventListener("pointercancel", s);
3766
3789
  };
@@ -3770,51 +3793,51 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3770
3793
  }),
3771
3794
  P && /* @__PURE__ */ E(re, {
3772
3795
  fallback: null,
3773
- children: /* @__PURE__ */ E(hr, {})
3796
+ children: /* @__PURE__ */ E(vr, {})
3774
3797
  }),
3775
- ze ? /* @__PURE__ */ E(re, {
3798
+ Be ? /* @__PURE__ */ E(re, {
3776
3799
  fallback: null,
3777
- children: /* @__PURE__ */ E(gr, {
3800
+ children: /* @__PURE__ */ E(yr, {
3778
3801
  capability: N.NativeTerminal,
3779
3802
  open: !0,
3780
3803
  sessionId: s,
3781
- onClose: () => Re(!1)
3804
+ onClose: () => ze(!1)
3782
3805
  })
3783
3806
  }) : null
3784
3807
  ]
3785
3808
  });
3786
- return i ? /* @__PURE__ */ E(i, { children: Be }) : Be;
3809
+ return i ? /* @__PURE__ */ E(i, { children: Ve }) : Ve;
3787
3810
  }
3788
3811
  //#endregion
3789
3812
  //#region src/core/transport/sse-transport.ts
3790
- function vr(e, t) {
3813
+ function xr(e, t) {
3791
3814
  if (e.eventName === "__ping__") {
3792
3815
  L.getState().updateActivity({ countEvent: !1 });
3793
3816
  return;
3794
3817
  }
3795
3818
  t.onEvent(e);
3796
3819
  }
3797
- var yr = class {
3820
+ var Sr = class {
3798
3821
  protocol = "sse-post";
3799
3822
  async connect(e, t) {
3800
- let n = (await Re(e.action, e.body || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
3823
+ let n = (await ze(e.action, e.body || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
3801
3824
  return (async () => {
3802
3825
  try {
3803
3826
  for (; !a;) {
3804
3827
  let { value: e, done: a } = await n.read();
3805
3828
  if (a) break;
3806
3829
  i += r.decode(e, { stream: !0 });
3807
- let { chunks: o, remainder: s } = ut(i);
3830
+ let { chunks: o, remainder: s } = dt(i);
3808
3831
  i = s;
3809
3832
  for (let e of o) {
3810
3833
  if (!e.trim()) continue;
3811
- let n = lt(e);
3834
+ let n = ut(e);
3812
3835
  for (let e of n) {
3813
3836
  if (e.eventName === "__done__") {
3814
3837
  t.onComplete();
3815
3838
  return;
3816
3839
  }
3817
- vr(e, t);
3840
+ xr(e, t);
3818
3841
  }
3819
3842
  }
3820
3843
  }
@@ -3826,27 +3849,27 @@ var yr = class {
3826
3849
  a = !0, n.cancel().catch(() => {});
3827
3850
  };
3828
3851
  }
3829
- }, br = class {
3852
+ }, Cr = class {
3830
3853
  protocol = "sse-get";
3831
3854
  async connect(e, t) {
3832
- let n = (await ze(e.action, e.params || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
3855
+ let n = (await Be(e.action, e.params || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
3833
3856
  return (async () => {
3834
3857
  try {
3835
3858
  for (; !a;) {
3836
3859
  let { value: e, done: a } = await n.read();
3837
3860
  if (a) break;
3838
3861
  i += r.decode(e, { stream: !0 });
3839
- let { chunks: o, remainder: s } = ut(i);
3862
+ let { chunks: o, remainder: s } = dt(i);
3840
3863
  i = s;
3841
3864
  for (let e of o) {
3842
3865
  if (!e.trim()) continue;
3843
- let n = lt(e);
3866
+ let n = ut(e);
3844
3867
  for (let e of n) {
3845
3868
  if (e.eventName === "__done__") {
3846
3869
  t.onComplete();
3847
3870
  return;
3848
3871
  }
3849
- vr(e, t);
3872
+ xr(e, t);
3850
3873
  }
3851
3874
  }
3852
3875
  }
@@ -3860,4 +3883,4 @@ var yr = class {
3860
3883
  }
3861
3884
  };
3862
3885
  //#endregion
3863
- export { _r as AgentWorkbench, pr as ApiFacadeImpl, bt as RunEngineImpl, br as SseGetTransport, yr as SsePostTransport, st as createProtocol };
3886
+ export { br as AgentWorkbench, gr as ApiFacadeImpl, xt as RunEngineImpl, Cr as SseGetTransport, Sr as SsePostTransport, ct as createProtocol };