@kingsoftcloud/ksadk-web 0.3.0 → 0.3.1

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 (130) hide show
  1. package/CHANGELOG.md +33 -1
  2. package/dist-ksadk/assets/{ArtifactsPanel-Cjnqt-8W.js → ArtifactsPanel-CakCqxEN.js} +1 -1
  3. package/dist-ksadk/assets/{CodeBlock-BqyqZfuB.js → CodeBlock-CynLknyO.js} +1 -1
  4. package/dist-ksadk/assets/{MathMessageMarkdown-BpH7jiFM.js → MathMessageMarkdown-3sQdOysS.js} +1 -1
  5. package/dist-ksadk/assets/{MermaidBlock-DWuxETaJ.js → MermaidBlock-NERD_ef7.js} +6 -6
  6. package/dist-ksadk/assets/NativeTerminalPanel-CiHWf82q.js +1 -0
  7. package/dist-ksadk/assets/{arc-CFKwSk_B.js → arc-DrgjcKhl.js} +1 -1
  8. package/dist-ksadk/assets/architecture-7EHR7CIX-CpZLRCcY.js +1 -0
  9. package/dist-ksadk/assets/{architectureDiagram-3BPJPVTR-Dej8jX8c.js → architectureDiagram-3BPJPVTR-BXoVRbQ6.js} +1 -1
  10. package/dist-ksadk/assets/{blockDiagram-GPEHLZMM-1F64jqvy.js → blockDiagram-GPEHLZMM-BnaB3Ywv.js} +1 -1
  11. package/dist-ksadk/assets/{c4Diagram-AAUBKEIU-9q7AUAKb.js → c4Diagram-AAUBKEIU-Dw4weZcp.js} +1 -1
  12. package/dist-ksadk/assets/channel-Dt3rQTFI.js +1 -0
  13. package/dist-ksadk/assets/{chunk-2J33WTMH-6qgwJm7Q.js → chunk-2J33WTMH-ChjpLK7j.js} +1 -1
  14. package/dist-ksadk/assets/{chunk-4BX2VUAB-CsWIQRhc.js → chunk-4BX2VUAB-B9drTgOW.js} +1 -1
  15. package/dist-ksadk/assets/{chunk-55IACEB6-BK8paA20.js → chunk-55IACEB6-CK4ROATy.js} +1 -1
  16. package/dist-ksadk/assets/{chunk-727SXJPM-B-JEhy7h.js → chunk-727SXJPM-B9KtTTgw.js} +1 -1
  17. package/dist-ksadk/assets/{chunk-AQP2D5EJ-DYBvMHAa.js → chunk-AQP2D5EJ-1O1mki3m.js} +1 -1
  18. package/dist-ksadk/assets/{chunk-FMBD7UC4-BGhvzDYt.js → chunk-FMBD7UC4-B_fH2YuH.js} +1 -1
  19. package/dist-ksadk/assets/{chunk-ND2GUHAM-D98vPd-E.js → chunk-ND2GUHAM-D6rFLaVV.js} +1 -1
  20. package/dist-ksadk/assets/chunk-QZHKN3VN-iXEZtKQc.js +1 -0
  21. package/dist-ksadk/assets/classDiagram-4FO5ZUOK-DIveV17Q.js +1 -0
  22. package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-DIveV17Q.js +1 -0
  23. package/dist-ksadk/assets/{cose-bilkent-S5V4N54A-CX3yotHq.js → cose-bilkent-S5V4N54A-ChNs_Mdk.js} +1 -1
  24. package/dist-ksadk/assets/{dagre-BM42HDAG-C7TguAWo.js → dagre-BM42HDAG-D0QXg_MQ.js} +1 -1
  25. package/dist-ksadk/assets/{diagram-2AECGRRQ-Dd17_kws.js → diagram-2AECGRRQ-DBDDKwBQ.js} +1 -1
  26. package/dist-ksadk/assets/{diagram-5GNKFQAL-DVIClIil.js → diagram-5GNKFQAL-BkwDOxmO.js} +1 -1
  27. package/dist-ksadk/assets/{diagram-KO2AKTUF-Df_3gYQa.js → diagram-KO2AKTUF-Bv8waYvY.js} +1 -1
  28. package/dist-ksadk/assets/{diagram-LMA3HP47-BhLk6ZtA.js → diagram-LMA3HP47-e1VECDdu.js} +1 -1
  29. package/dist-ksadk/assets/{diagram-OG6HWLK6-D4GNGvuu.js → diagram-OG6HWLK6-Ds9adfRl.js} +1 -1
  30. package/dist-ksadk/assets/{dist-DlzCRy0S.js → dist-4N2NMVYg.js} +1 -1
  31. package/dist-ksadk/assets/{dist-CGcp2ex8.js → dist-B-jNR6Vn.js} +1 -1
  32. package/dist-ksadk/assets/{dist-DyvYLMW9.js → dist-B5J2uhNk.js} +1 -1
  33. package/dist-ksadk/assets/{dist-DqNnNFrw.js → dist-B5oS1zcj.js} +1 -1
  34. package/dist-ksadk/assets/{dist-BibcG1V9.js → dist-BB3-OwTQ.js} +1 -1
  35. package/dist-ksadk/assets/{dist-Cwt7koer.js → dist-BIlKoW0k.js} +1 -1
  36. package/dist-ksadk/assets/{dist-C2xjE7cO.js → dist-BjOdlDjj.js} +1 -1
  37. package/dist-ksadk/assets/{dist-DHn6nBzr.js → dist-C1sz5Eo3.js} +1 -1
  38. package/dist-ksadk/assets/{dist-BZ9n9AjO.js → dist-CWV4lDr1.js} +1 -1
  39. package/dist-ksadk/assets/{dist-C99THtIA.js → dist-CmZHzlwZ.js} +1 -1
  40. package/dist-ksadk/assets/{dist-ivOya1LD.js → dist-D6MpCZtz.js} +1 -1
  41. package/dist-ksadk/assets/{dist-CVQRZjPu.js → dist-DJN_6Y39.js} +1 -1
  42. package/dist-ksadk/assets/{dist-6CVKuTAe.js → dist-DQU9EWw-.js} +1 -1
  43. package/dist-ksadk/assets/{dist-Djgl2wVZ.js → dist-DWKByxWV.js} +1 -1
  44. package/dist-ksadk/assets/{dist-D82mtD2s.js → dist-Dli7qW-B.js} +1 -1
  45. package/dist-ksadk/assets/{dist-CgF3fj15.js → dist-DsHPdk3W.js} +1 -1
  46. package/dist-ksadk/assets/{dist-C7-3jInC.js → dist-X4TnqwOK.js} +1 -1
  47. package/dist-ksadk/assets/{dist-BUHRxvDG.js → dist-_pHPTyZ-.js} +1 -1
  48. package/dist-ksadk/assets/{dist-eoW6tZXA.js → dist-fhOuWds5.js} +1 -1
  49. package/dist-ksadk/assets/{dist-DF06ORQo.js → dist-gLnrGsoU.js} +1 -1
  50. package/dist-ksadk/assets/{dist-Cf23NY4L.js → dist-j6Dxmf_j.js} +1 -1
  51. package/dist-ksadk/assets/{dist-Bs-jQcRX.js → dist-o2OVmKvt.js} +1 -1
  52. package/dist-ksadk/assets/{erDiagram-TEJ5UH35-CnfRcY2M.js → erDiagram-TEJ5UH35-BPItFKH6.js} +1 -1
  53. package/dist-ksadk/assets/eventmodeling-FCH6USID-DYFSxbqr.js +1 -0
  54. package/dist-ksadk/assets/{flowDiagram-I6XJVG4X-DGaJjGNJ.js → flowDiagram-I6XJVG4X-BbYB9w5Y.js} +1 -1
  55. package/dist-ksadk/assets/{ganttDiagram-6RSMTGT7-DpCoB2g9.js → ganttDiagram-6RSMTGT7-TQXa0KXv.js} +1 -1
  56. package/dist-ksadk/assets/gitGraph-WXDBUCRP-DyNYp6BN.js +1 -0
  57. package/dist-ksadk/assets/{gitGraphDiagram-PVQCEYII-9IKVFBVT.js → gitGraphDiagram-PVQCEYII-bKblCnpa.js} +1 -1
  58. package/dist-ksadk/assets/index-R52pJJvg.js +177 -0
  59. package/dist-ksadk/assets/index-jJr3_955.css +2 -0
  60. package/dist-ksadk/assets/info-J43DQDTF-WUx7qTde.js +1 -0
  61. package/dist-ksadk/assets/{infoDiagram-5YYISTIA-CYIIsb8y.js → infoDiagram-5YYISTIA-BGVT7J_i.js} +1 -1
  62. package/dist-ksadk/assets/{ishikawaDiagram-YF4QCWOH-DLOHGvWw.js → ishikawaDiagram-YF4QCWOH-K0OOfVna.js} +1 -1
  63. package/dist-ksadk/assets/{journeyDiagram-JHISSGLW-BIzKeejT.js → journeyDiagram-JHISSGLW-8LeOJaZp.js} +1 -1
  64. package/dist-ksadk/assets/{kanban-definition-UN3LZRKU-BWHoFSw2.js → kanban-definition-UN3LZRKU-C6uCgZrW.js} +1 -1
  65. package/dist-ksadk/assets/{katex-DATssjp1.js → katex-CYWseY5E.js} +1 -1
  66. package/dist-ksadk/assets/{linear-CvMBw9cA.js → linear-hdBcYzM8.js} +1 -1
  67. package/dist-ksadk/assets/{mermaid-parser.core-mGAcEwcq.js → mermaid-parser.core-BWrDjSZM.js} +2 -2
  68. package/dist-ksadk/assets/{mindmap-definition-RKZ34NQL-CSAQxEAe.js → mindmap-definition-RKZ34NQL-Bjy_2v4_.js} +1 -1
  69. package/dist-ksadk/assets/packet-YPE3B663-BN13y_xl.js +1 -0
  70. package/dist-ksadk/assets/pie-LRSECV5Y-ftSLXhhc.js +1 -0
  71. package/dist-ksadk/assets/{pieDiagram-4H26LBE5-By-ra07M.js → pieDiagram-4H26LBE5-GmmqNiVH.js} +1 -1
  72. package/dist-ksadk/assets/{quadrantDiagram-W4KKPZXB-CxIR4JXI.js → quadrantDiagram-W4KKPZXB-BmkRbwCg.js} +1 -1
  73. package/dist-ksadk/assets/radar-GUYGQ44K-jaICkIeO.js +1 -0
  74. package/dist-ksadk/assets/{requirementDiagram-4Y6WPE33-DpW90iu3.js → requirementDiagram-4Y6WPE33-DSWFqL7c.js} +1 -1
  75. package/dist-ksadk/assets/{sankeyDiagram-5OEKKPKP-DpGa6EAV.js → sankeyDiagram-5OEKKPKP-l6iXmU65.js} +1 -1
  76. package/dist-ksadk/assets/{sequenceDiagram-3UESZ5HK-NTKNGGe5.js → sequenceDiagram-3UESZ5HK-Cq6UBeQB.js} +1 -1
  77. package/dist-ksadk/assets/{stateDiagram-AJRCARHV-DGpd9yFG.js → stateDiagram-AJRCARHV-qzTQpg3Y.js} +1 -1
  78. package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-BYCoYGAN.js +1 -0
  79. package/dist-ksadk/assets/{timeline-definition-PNZ67QCA-jqoYs3jQ.js → timeline-definition-PNZ67QCA-DEz24vV0.js} +1 -1
  80. package/dist-ksadk/assets/treeView-BLDUP644-Cpib_vlz.js +1 -0
  81. package/dist-ksadk/assets/treemap-LRROVOQU-DQxfmVHK.js +1 -0
  82. package/dist-ksadk/assets/{vennDiagram-CIIHVFJN-l3Z7-wbP.js → vennDiagram-CIIHVFJN-CMCixki2.js} +1 -1
  83. package/dist-ksadk/assets/wardley-L42UT6IY-BQYHnnkU.js +1 -0
  84. package/dist-ksadk/assets/{wardleyDiagram-YWT4CUSO-BR54GPmr.js → wardleyDiagram-YWT4CUSO-CVzB8F9K.js} +1 -1
  85. package/dist-ksadk/assets/{xychartDiagram-2RQKCTM6-SkiH8GsK.js → xychartDiagram-2RQKCTM6-BFBqBLc1.js} +1 -1
  86. package/dist-ksadk/index.html +2 -2
  87. package/dist-lib/{ArtifactsPanel-BAfHt4bC.js → ArtifactsPanel-DjKIRTwo.js} +1 -1
  88. package/dist-lib/{CodeBlock-Cbl6cxYC.js → CodeBlock-C1D0R8wN.js} +1 -1
  89. package/dist-lib/{MathMessageMarkdown-DbMSeHQa.js → MathMessageMarkdown-D6LuI2LH.js} +2 -2
  90. package/dist-lib/{NativeTerminalPanel-BTPHqbvY.js → NativeTerminalPanel-BLhX4eDs.js} +14 -6
  91. package/dist-lib/{WorkspacePanelContainer-Iy0LhhgG.js → WorkspacePanelContainer-B7YlLAUJ.js} +962 -790
  92. package/dist-lib/components/chat/types.d.ts +8 -0
  93. package/dist-lib/components/chat/types.d.ts.map +1 -1
  94. package/dist-lib/components/native/NativeTerminalPanel.d.ts.map +1 -1
  95. package/dist-lib/components.js +4 -4
  96. package/dist-lib/core/stream/index.d.ts +2 -0
  97. package/dist-lib/core/stream/index.d.ts.map +1 -1
  98. package/dist-lib/core/stream/responses-protocol.d.ts +7 -0
  99. package/dist-lib/core/stream/responses-protocol.d.ts.map +1 -1
  100. package/dist-lib/core/stream/runtime-items.d.ts +174 -0
  101. package/dist-lib/core/stream/runtime-items.d.ts.map +1 -0
  102. package/dist-lib/runtime.js +655 -652
  103. package/dist-lib/stores/streaming.d.ts +8 -0
  104. package/dist-lib/stores/streaming.d.ts.map +1 -1
  105. package/dist-lib/styles.css +1 -1
  106. package/dist-lib/utils/feedback.d.ts +0 -1
  107. package/dist-lib/utils/feedback.d.ts.map +1 -1
  108. package/dist-lib/utils/responses-stream.d.ts +1 -0
  109. package/dist-lib/utils/responses-stream.d.ts.map +1 -1
  110. package/dist-lib/utils/session-events.d.ts +8 -0
  111. package/dist-lib/utils/session-events.d.ts.map +1 -1
  112. package/package.json +1 -1
  113. package/dist-ksadk/assets/NativeTerminalPanel-MDTopWMO.js +0 -1
  114. package/dist-ksadk/assets/architecture-7EHR7CIX-CynqOWjZ.js +0 -1
  115. package/dist-ksadk/assets/channel-iUGv2N24.js +0 -1
  116. package/dist-ksadk/assets/chunk-QZHKN3VN-YQIEXeF6.js +0 -1
  117. package/dist-ksadk/assets/classDiagram-4FO5ZUOK-CDAUuoXK.js +0 -1
  118. package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-CDAUuoXK.js +0 -1
  119. package/dist-ksadk/assets/eventmodeling-FCH6USID-ChYO-ijM.js +0 -1
  120. package/dist-ksadk/assets/gitGraph-WXDBUCRP-BN_0Fk-j.js +0 -1
  121. package/dist-ksadk/assets/index-QSwCHuB8.js +0 -177
  122. package/dist-ksadk/assets/index-jOPmTOZH.css +0 -2
  123. package/dist-ksadk/assets/info-J43DQDTF-Cp6o3vId.js +0 -1
  124. package/dist-ksadk/assets/packet-YPE3B663-wQzct3cT.js +0 -1
  125. package/dist-ksadk/assets/pie-LRSECV5Y-BgTQiv-9.js +0 -1
  126. package/dist-ksadk/assets/radar-GUYGQ44K-BIq5fXsn.js +0 -1
  127. package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-B3o579IQ.js +0 -1
  128. package/dist-ksadk/assets/treeView-BLDUP644-Dqi-E0EM.js +0 -1
  129. package/dist-ksadk/assets/treemap-LRROVOQU-ClQP9CJ9.js +0 -1
  130. package/dist-ksadk/assets/wardley-L42UT6IY-8XLvnNIs.js +0 -1
@@ -1,15 +1,15 @@
1
1
  import { a as e, i as t, t as n } from "./capabilities-CxHZ869f.js";
2
- import { A as r, C as i, D as a, E as o, F as s, I as c, M as l, N as u, O as d, P as f, S as p, _ as m, b as h, c as g, d as _, f as v, g as y, h as b, j as x, k as S, l as C, m as w, n as ee, o as T, r as te, s as ne, t as E, u as D, v as O, x as k, y as re } from "./WorkspacePanelContainer-Iy0LhhgG.js";
3
- import { t as ie } from "./artifact-BfFsPe5A.js";
4
- import { X as A } from "lucide-react";
5
- import { create as j } from "zustand";
6
- import { Fragment as ae, jsx as M, jsxs as N } from "react/jsx-runtime";
7
- import * as P from "react";
8
- import oe, { Suspense as se, useCallback as F, useEffect as I, useMemo as ce, useRef as L, useState as le } from "react";
9
- import * as R from "@radix-ui/react-dialog";
2
+ import { A as r, C as i, D as a, F as o, I as s, L as c, M as l, N as u, O as d, P as f, S as p, _ as m, b as h, c as g, d as _, f as v, g as y, h as b, j as x, k as S, l as C, m as w, n as ee, o as T, r as te, s as ne, t as E, u as D, v as O, w as k, x as re, y as ie } from "./WorkspacePanelContainer-B7YlLAUJ.js";
3
+ import { t as A } from "./artifact-BfFsPe5A.js";
4
+ import { X as j } from "lucide-react";
5
+ import { create as M } from "zustand";
6
+ import { Fragment as ae, jsx as N, jsxs as P } from "react/jsx-runtime";
7
+ import * as oe from "react";
8
+ import se, { Suspense as ce, useCallback as F, useEffect as I, useMemo as L, useRef as R, useState as le } from "react";
9
+ import * as z from "@radix-ui/react-dialog";
10
10
  import { HttpAgent as ue, buildResumeArray as de } from "@ag-ui/client";
11
11
  //#region src/stores/bootstrap.ts
12
- var z = j()((e) => ({
12
+ var B = M()((e) => ({
13
13
  agentId: "default-agent",
14
14
  agentName: "Agent",
15
15
  agentFramework: "",
@@ -27,7 +27,7 @@ var z = j()((e) => ({
27
27
  }));
28
28
  //#endregion
29
29
  //#region src/utils/session-pagination.js
30
- function B(e = /* @__PURE__ */ new Set(), t = []) {
30
+ function fe(e = /* @__PURE__ */ new Set(), t = []) {
31
31
  let n = new Set(e);
32
32
  for (let e of t) {
33
33
  let t = Number(e);
@@ -35,17 +35,17 @@ function B(e = /* @__PURE__ */ new Set(), t = []) {
35
35
  }
36
36
  return new Set(Array.from(n).sort((e, t) => e - t));
37
37
  }
38
- function fe({ sessionsLength: e = 0, total: t = 0, page: n = 0, pageSize: r = 30, loadedPages: i = /* @__PURE__ */ new Set() } = {}) {
38
+ function pe({ sessionsLength: e = 0, total: t = 0, page: n = 0, pageSize: r = 30, loadedPages: i = /* @__PURE__ */ new Set() } = {}) {
39
39
  let a = Math.max(0, Number(t) || 0), o = Math.max(0, Number(e) || 0);
40
40
  return {
41
41
  total: a,
42
42
  page: Math.max(0, Number(n) || 0),
43
43
  pageSize: Math.max(1, Number(r) || 30),
44
- loadedPages: B(i),
44
+ loadedPages: fe(i),
45
45
  hasMore: o < a
46
46
  };
47
47
  }
48
- function pe({ total: e = 0, pageSize: t = 30, loadedPages: n = /* @__PURE__ */ new Set() } = {}) {
48
+ function me({ total: e = 0, pageSize: t = 30, loadedPages: n = /* @__PURE__ */ new Set() } = {}) {
49
49
  let r = Math.max(0, Number(e) || 0), i = Math.max(1, Number(t) || 30);
50
50
  if (r <= 0) return null;
51
51
  let a = Math.ceil(r / i);
@@ -54,7 +54,7 @@ function pe({ total: e = 0, pageSize: t = 30, loadedPages: n = /* @__PURE__ */ n
54
54
  }
55
55
  //#endregion
56
56
  //#region src/stores/session.ts
57
- function me(e) {
57
+ function he(e) {
58
58
  let t = e.UpdatedAt;
59
59
  if (typeof t == "string") {
60
60
  let e = Date.parse(t);
@@ -62,28 +62,28 @@ function me(e) {
62
62
  }
63
63
  return typeof t == "number" && Number.isFinite(t) ? t > 1e11 ? t : t * 1e3 : 0;
64
64
  }
65
- var he = "ksadk.pinnedSessionIds";
66
- function ge() {
65
+ var ge = "ksadk.pinnedSessionIds";
66
+ function V() {
67
67
  try {
68
- let e = globalThis.localStorage?.getItem(he), t = e ? JSON.parse(e) : [];
68
+ let e = globalThis.localStorage?.getItem(ge), t = e ? JSON.parse(e) : [];
69
69
  return Array.isArray(t) ? t.filter((e) => typeof e == "string") : [];
70
70
  } catch {
71
71
  return [];
72
72
  }
73
73
  }
74
- function V(e) {
74
+ function _e(e) {
75
75
  try {
76
- globalThis.localStorage?.setItem(he, JSON.stringify(e));
76
+ globalThis.localStorage?.setItem(ge, JSON.stringify(e));
77
77
  } catch {}
78
78
  }
79
79
  function H(e, t) {
80
80
  let n = new Set(t);
81
81
  return e.slice().sort((e, t) => {
82
82
  let r = +!!n.has(e.SessionId), i = +!!n.has(t.SessionId);
83
- return r === i ? me(t) - me(e) : i - r;
83
+ return r === i ? he(t) - he(e) : i - r;
84
84
  });
85
85
  }
86
- function _e(e, t, n) {
86
+ function ve(e, t, n) {
87
87
  let r = /* @__PURE__ */ new Map();
88
88
  for (let t of e) t?.SessionId && r.set(t.SessionId, t);
89
89
  for (let e of t) e?.SessionId && r.set(e.SessionId, {
@@ -92,7 +92,7 @@ function _e(e, t, n) {
92
92
  });
93
93
  return H(Array.from(r.values()), n);
94
94
  }
95
- var U = j()((e) => ({
95
+ var U = M()((e) => ({
96
96
  sessions: [],
97
97
  currentSessionId: null,
98
98
  sessionsAgentId: "",
@@ -102,12 +102,12 @@ var U = j()((e) => ({
102
102
  loadedPages: /* @__PURE__ */ new Set(),
103
103
  hasMoreSessions: !1,
104
104
  isLoadingSessions: !0,
105
- pinnedSessionIds: ge(),
105
+ pinnedSessionIds: V(),
106
106
  messageHistory: {},
107
107
  setSessions: (t) => e((e) => ({ sessions: H(t, e.pinnedSessionIds) })),
108
108
  setCurrentSessionId: (t) => e({ currentSessionId: t }),
109
109
  upsertSessions: (t, n) => e((e) => {
110
- let r = _e(n?.replace ? [] : e.sessions, t, e.pinnedSessionIds), i = n?.page ?? e.sessionsPage, a = n?.pageSize ?? e.sessionsPageSize, o = n?.total ?? Math.max(e.sessionsTotal, r.length), s = n?.replace ? B(/* @__PURE__ */ new Set(), [i]) : B(e.loadedPages, [i]), c = fe({
110
+ let r = ve(n?.replace ? [] : e.sessions, t, e.pinnedSessionIds), i = n?.page ?? e.sessionsPage, a = n?.pageSize ?? e.sessionsPageSize, o = n?.total ?? Math.max(e.sessionsTotal, r.length), s = n?.replace ? fe(/* @__PURE__ */ new Set(), [i]) : fe(e.loadedPages, [i]), c = pe({
111
111
  sessionsLength: r.length,
112
112
  total: o,
113
113
  page: i,
@@ -129,7 +129,7 @@ var U = j()((e) => ({
129
129
  return {
130
130
  sessions: n,
131
131
  sessionsTotal: r,
132
- hasMoreSessions: fe({
132
+ hasMoreSessions: pe({
133
133
  sessionsLength: n.length,
134
134
  total: r,
135
135
  page: e.sessionsPage,
@@ -153,7 +153,7 @@ var U = j()((e) => ({
153
153
  let n = new Set(e.pinnedSessionIds);
154
154
  n.has(t) ? n.delete(t) : n.add(t);
155
155
  let r = Array.from(n);
156
- return V(r), {
156
+ return _e(r), {
157
157
  pinnedSessionIds: r,
158
158
  sessions: H(e.sessions, r)
159
159
  };
@@ -194,52 +194,52 @@ var U = j()((e) => ({
194
194
  let n = { ...e.messageHistory };
195
195
  return delete n[t], { messageHistory: n };
196
196
  })
197
- })), ve = .28;
198
- function ye(e, t = 768) {
197
+ })), ye = .28;
198
+ function be(e, t = 768) {
199
199
  return Number(e) <= t;
200
200
  }
201
- function be({ isMobile: e, desktopSidebarOpen: t, mobileSidebarOpen: n }) {
201
+ function xe({ isMobile: e, desktopSidebarOpen: t, mobileSidebarOpen: n }) {
202
202
  return {
203
203
  desktopSidebarVisible: !e && !!t,
204
204
  mobileDrawerVisible: !!(e && n)
205
205
  };
206
206
  }
207
- function xe({ isMobile: e, viewportHeight: t, desktopMaxHeight: n = 160 }) {
207
+ function Se({ isMobile: e, viewportHeight: t, desktopMaxHeight: n = 160 }) {
208
208
  if (!e) return n;
209
209
  let r = Number(t);
210
210
  if (!Number.isFinite(r) || r <= 0) return n;
211
- let i = Math.floor(r * ve);
211
+ let i = Math.floor(r * ye);
212
212
  return Math.max(120, Math.min(n, i));
213
213
  }
214
214
  //#endregion
215
215
  //#region src/utils/session.js
216
- var Se = "ksadk:webui:selected-session:";
217
- function Ce(e) {
216
+ var Ce = "ksadk:webui:selected-session:";
217
+ function we(e) {
218
218
  return String(e || "").trim() || "default-agent";
219
219
  }
220
- function we(e) {
220
+ function Te(e) {
221
221
  if (e && typeof e.getItem == "function") return e;
222
222
  try {
223
223
  if (typeof window < "u" && window.localStorage) return window.localStorage;
224
224
  } catch {}
225
225
  return null;
226
226
  }
227
- function Te(e) {
228
- return `${Se}${Ce(e)}`;
227
+ function Ee(e) {
228
+ return `${Ce}${we(e)}`;
229
229
  }
230
- function Ee(e, t) {
231
- let n = we(t);
230
+ function De(e, t) {
231
+ let n = Te(t);
232
232
  if (!n) return null;
233
233
  try {
234
- return String(n.getItem(Te(e)) || "").trim() || null;
234
+ return String(n.getItem(Ee(e)) || "").trim() || null;
235
235
  } catch {
236
236
  return null;
237
237
  }
238
238
  }
239
- function De(e, t, n) {
240
- let r = we(n);
239
+ function Oe(e, t, n) {
240
+ let r = Te(n);
241
241
  if (!r) return;
242
- let i = Te(e), a = String(t || "").trim();
242
+ let i = Ee(e), a = String(t || "").trim();
243
243
  try {
244
244
  if (a) {
245
245
  r.setItem(i, a);
@@ -248,7 +248,7 @@ function De(e, t, n) {
248
248
  r.removeItem(i);
249
249
  } catch {}
250
250
  }
251
- function Oe(e, t) {
251
+ function ke(e, t) {
252
252
  if (!Array.isArray(e) || e.length === 0) return null;
253
253
  let n = String(t || "").trim();
254
254
  if (n && e.some((e) => String(e?.SessionId || "").trim() === n)) return n;
@@ -260,50 +260,50 @@ function Oe(e, t) {
260
260
  }
261
261
  //#endregion
262
262
  //#region src/utils/native-platform.js
263
- var ke = new Map([["openclaw", "OpenClaw"], ["hermes", "Hermes"]]);
264
- function Ae(e) {
265
- return String(e || "").trim().toLowerCase();
266
- }
263
+ var Ae = new Map([["openclaw", "OpenClaw"], ["hermes", "Hermes"]]);
267
264
  function je(e) {
268
265
  return String(e || "").trim().toLowerCase();
269
266
  }
270
267
  function Me(e) {
268
+ return String(e || "").trim().toLowerCase();
269
+ }
270
+ function Ne(e) {
271
271
  try {
272
272
  return new URL("/", e).toString();
273
273
  } catch {
274
274
  return "/";
275
275
  }
276
276
  }
277
- function Ne({ capability: e, agentFramework: t, accessMode: n, origin: r }) {
278
- let i = Ae(n);
277
+ function Pe({ capability: e, agentFramework: t, accessMode: n, origin: r }) {
278
+ let i = je(n);
279
279
  if (i !== "owner" && i !== "private" || !e?.Enabled) return null;
280
- let a = ke.get(je(t)) || "运行时";
280
+ let a = Ae.get(Me(t)) || "运行时";
281
281
  return {
282
- href: typeof e.Href == "string" && e.Href ? new URL(e.Href, Me(r)).toString() : Me(r),
282
+ href: typeof e.Href == "string" && e.Href ? new URL(e.Href, Ne(r)).toString() : Ne(r),
283
283
  label: typeof e.Label == "string" && e.Label ? e.Label : "管理平台",
284
284
  title: `打开 ${a} 原生管理平台`
285
285
  };
286
286
  }
287
287
  //#endregion
288
288
  //#region src/hooks/useResponsiveViewport.ts
289
- function Pe() {
289
+ function Fe() {
290
290
  return typeof window > "u" ? 900 : Math.round(window.visualViewport?.height || window.innerHeight || 900);
291
291
  }
292
- function Fe() {
292
+ function W() {
293
293
  return typeof window > "u" ? {
294
294
  isMobile: !1,
295
295
  viewportHeight: 900
296
296
  } : {
297
- isMobile: ye(window.innerWidth, 768),
298
- viewportHeight: Pe()
297
+ isMobile: be(window.innerWidth, 768),
298
+ viewportHeight: Fe()
299
299
  };
300
300
  }
301
301
  function Ie() {
302
- let [e, t] = le(() => Fe());
302
+ let [e, t] = le(() => W());
303
303
  return I(() => {
304
304
  if (typeof window > "u") return;
305
305
  let e = window.matchMedia("(max-width: 768px)"), n = () => {
306
- t(Fe());
306
+ t(W());
307
307
  };
308
308
  n();
309
309
  let r = typeof e.addEventListener == "function" ? (e.addEventListener("change", n), () => e.removeEventListener("change", n)) : (e.addListener(n), () => e.removeListener(n));
@@ -314,76 +314,76 @@ function Ie() {
314
314
  }
315
315
  //#endregion
316
316
  //#region src/api/client.ts
317
- var W = class extends Error {
317
+ var G = class extends Error {
318
318
  code;
319
319
  detail;
320
320
  constructor(e, t, n) {
321
321
  super(t), this.name = "ApiError", this.code = e, this.detail = n;
322
322
  }
323
- }, G = class extends Error {
323
+ }, K = class extends Error {
324
324
  constructor(e = "请求已取消") {
325
325
  super(e), this.name = "CancelledError";
326
326
  }
327
- }, K = "/agentengine/api/v1";
327
+ }, q = "/agentengine/api/v1";
328
328
  async function Le(e) {
329
329
  let t;
330
330
  try {
331
331
  t = await e.json();
332
332
  } catch {
333
- throw new W(-2, "响应格式异常");
333
+ throw new G(-2, "响应格式异常");
334
334
  }
335
- if (!e.ok) throw new W(e.status, t?.Message || `HTTP ${e.status}`, t);
336
- if (t?.Code !== void 0 && t.Code !== 0) throw new W(t.Code, t.Message || "请求失败", t);
335
+ if (!e.ok) throw new G(e.status, t?.Message || `HTTP ${e.status}`, t);
336
+ if (t?.Code !== void 0 && t.Code !== 0) throw new G(t.Code, t.Message || "请求失败", t);
337
337
  return t.Data;
338
338
  }
339
- function q(e) {
340
- throw e instanceof DOMException && e.name === "AbortError" ? new G() : e;
339
+ function Re(e) {
340
+ throw e instanceof DOMException && e.name === "AbortError" ? new K() : e;
341
341
  }
342
342
  async function J(e, t, n) {
343
343
  let r;
344
344
  try {
345
- r = await fetch(`${K}/${e}`, {
345
+ r = await fetch(`${q}/${e}`, {
346
346
  method: "POST",
347
347
  headers: { "Content-Type": "application/json" },
348
348
  body: JSON.stringify(t),
349
349
  signal: n?.signal
350
350
  });
351
351
  } catch (e) {
352
- throw q(e);
352
+ throw Re(e);
353
353
  }
354
354
  return Le(r);
355
355
  }
356
- async function Re(e, t, n) {
356
+ async function ze(e, t, n) {
357
357
  let r;
358
358
  try {
359
- r = await fetch(`${K}/${e}`, {
359
+ r = await fetch(`${q}/${e}`, {
360
360
  method: "POST",
361
361
  body: t,
362
362
  signal: n?.signal
363
363
  });
364
364
  } catch (e) {
365
- throw q(e);
365
+ throw Re(e);
366
366
  }
367
367
  return Le(r);
368
368
  }
369
- async function ze(e, t, n) {
370
- let r = new URLSearchParams(t).toString(), i = r ? `${K}/${e}?${r}` : `${K}/${e}`, a;
369
+ async function Be(e, t, n) {
370
+ let r = new URLSearchParams(t).toString(), i = r ? `${q}/${e}?${r}` : `${q}/${e}`, a;
371
371
  try {
372
372
  a = await fetch(i, { signal: n?.signal });
373
373
  } catch (e) {
374
- throw q(e);
374
+ throw Re(e);
375
375
  }
376
- if (!a.ok) throw new W(a.status, `资源获取失败: ${a.statusText}`);
376
+ if (!a.ok) throw new G(a.status, `资源获取失败: ${a.statusText}`);
377
377
  try {
378
378
  return n?.asText ? await a.text() : await a.blob();
379
379
  } catch {
380
- throw new W(-3, "文件读取失败");
380
+ throw new G(-3, "文件读取失败");
381
381
  }
382
382
  }
383
- async function Be(e, t, n) {
383
+ async function Ve(e, t, n) {
384
384
  let r;
385
385
  try {
386
- r = await fetch(`${K}/${e}`, {
386
+ r = await fetch(`${q}/${e}`, {
387
387
  method: "POST",
388
388
  headers: {
389
389
  "Content-Type": "application/json",
@@ -393,46 +393,46 @@ async function Be(e, t, n) {
393
393
  signal: n?.signal
394
394
  });
395
395
  } catch (e) {
396
- throw q(e);
396
+ throw Re(e);
397
397
  }
398
- if (!r.ok) throw new W(r.status, `流式请求失败: ${r.statusText}`);
399
- if (!r.body) throw new W(-1, "无法获取响应流");
398
+ if (!r.ok) throw new G(r.status, `流式请求失败: ${r.statusText}`);
399
+ if (!r.body) throw new G(-1, "无法获取响应流");
400
400
  return r.body;
401
401
  }
402
- async function Ve(e, t, n) {
403
- let r = new URLSearchParams(t).toString(), i = r ? `${K}/${e}?${r}` : `${K}/${e}`, a;
402
+ async function He(e, t, n) {
403
+ let r = new URLSearchParams(t).toString(), i = r ? `${q}/${e}?${r}` : `${q}/${e}`, a;
404
404
  try {
405
405
  a = await fetch(i, {
406
406
  headers: { Accept: "text/event-stream" },
407
407
  signal: n?.signal
408
408
  });
409
409
  } catch (e) {
410
- throw q(e);
410
+ throw Re(e);
411
411
  }
412
- if (!a.ok) throw new W(a.status, `流式订阅失败: ${a.statusText}`);
413
- if (!a.body) throw new W(-1, "无法获取响应流");
412
+ if (!a.ok) throw new G(a.status, `流式订阅失败: ${a.statusText}`);
413
+ if (!a.body) throw new G(-1, "无法获取响应流");
414
414
  return a.body;
415
415
  }
416
416
  //#endregion
417
417
  //#region src/api/bootstrap.ts
418
- async function He() {
418
+ async function Ue() {
419
419
  return J("GetAgentUiBootstrap", {});
420
420
  }
421
421
  //#endregion
422
422
  //#region src/api/model.ts
423
- async function Ue(e) {
423
+ async function We(e) {
424
424
  return J("ListAgentModels", { AgentId: e });
425
425
  }
426
426
  //#endregion
427
427
  //#region src/hooks/useBootstrap.ts
428
- function We(e) {
428
+ function Ge(e) {
429
429
  if (!Array.isArray(e)) return ["responses", "chat_completions"];
430
430
  let t = e.filter((e) => e === "responses" || e === "chat_completions");
431
431
  return t.length > 0 ? t : ["responses", "chat_completions"];
432
432
  }
433
- async function Ge(e) {
433
+ async function Ke(e) {
434
434
  try {
435
- let t = await Ue(e), n = t?.Models;
435
+ let t = await We(e), n = t?.Models;
436
436
  Array.isArray(n) && s.getState().upsertModels(n);
437
437
  let r = t;
438
438
  r?.Current && !s.getState().selectedModel && s.getState().setSelectedModel(String(r.Current)), r?.Source && s.getState().setModelSource(String(r.Source));
@@ -442,43 +442,43 @@ async function Ge(e) {
442
442
  s.getState().setModelCatalogLoaded(!0);
443
443
  }
444
444
  }
445
- function Ke(e) {
445
+ function qe(e) {
446
446
  I(() => {
447
447
  (async () => {
448
448
  try {
449
- let r = await He(), i = r, a = i?.Agent, o = String(a?.AgentId || "default-agent");
450
- if (z.getState().setAgentId(o), a?.Name) {
449
+ let r = await Ue(), i = r, a = i?.Agent, o = String(a?.AgentId || "default-agent");
450
+ if (B.getState().setAgentId(o), a?.Name) {
451
451
  let e = String(a.Name);
452
- z.getState().setAgentName(e), document.title = e;
452
+ B.getState().setAgentName(e), document.title = e;
453
453
  }
454
454
  let c = String(a?.Framework || "").trim().toLowerCase();
455
- z.getState().setAgentFramework(c);
455
+ B.getState().setAgentFramework(c);
456
456
  let l = t(r);
457
- z.getState().setCapabilities(l), z.getState().setApiFormats(We(l.HostedChat.ApiFormats)), z.getState().setAccessMode(String(i?.AccessMode || "Owner"));
457
+ B.getState().setCapabilities(l), B.getState().setApiFormats(Ge(l.HostedChat.ApiFormats)), B.getState().setAccessMode(String(i?.AccessMode || "Owner"));
458
458
  let u = l.WorkspaceFiles && i?.WorkspaceFiles ? i.WorkspaceFiles : null;
459
- z.getState().setWorkspaceFiles(u), u || T.getState().setWorkspacePanelOpen(!1), n(l) && e.fetchSessions(o, Ee(o));
459
+ B.getState().setWorkspaceFiles(u), u || T.getState().setWorkspacePanelOpen(!1), n(l) && e.fetchSessions(o, De(o));
460
460
  let d = i?.Model;
461
- d?.id && (s.getState().setSelectedModel(d.id), s.getState().upsertModels([d]), s.getState().setModelSource(d.source || "")), Ge(o);
461
+ d?.id && (s.getState().setSelectedModel(d.id), s.getState().upsertModels([d]), s.getState().setModelSource(d.source || "")), Ke(o);
462
462
  } catch (n) {
463
- console.error("Failed to fetch bootstrap:", n), z.getState().setCapabilities(t({ Data: {
463
+ console.error("Failed to fetch bootstrap:", n), B.getState().setCapabilities(t({ Data: {
464
464
  Agent: { Framework: "" },
465
465
  ApiFormats: ["responses", "chat_completions"],
466
466
  Capabilities: {}
467
- } })), e.fetchSessions("default-agent", Ee("default-agent")), Ge("default-agent");
467
+ } })), e.fetchSessions("default-agent", De("default-agent")), Ke("default-agent");
468
468
  }
469
469
  })();
470
470
  }, []);
471
471
  }
472
472
  //#endregion
473
473
  //#region src/stores/message.ts
474
- var Y = j()((e) => ({
474
+ var Y = M()((e) => ({
475
475
  messages: [],
476
476
  setMessages: (t) => e({ messages: t }),
477
477
  patchMessages: (t) => e((e) => ({ messages: t(e.messages) }))
478
478
  }));
479
479
  //#endregion
480
480
  //#region src/utils/responses-stream.js
481
- function qe() {
481
+ function Je() {
482
482
  return {
483
483
  toolNames: /* @__PURE__ */ new Map(),
484
484
  toolArguments: /* @__PURE__ */ new Map(),
@@ -486,51 +486,51 @@ function qe() {
486
486
  currentResponseId: ""
487
487
  };
488
488
  }
489
- function Je(e) {
489
+ function Ye(e) {
490
490
  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 : "";
491
491
  }
492
- function Ye(e) {
492
+ function Xe(e) {
493
493
  return e == null ? "" : typeof e == "string" ? e : typeof e == "object" ? JSON.stringify(e, null, 2) : String(e);
494
494
  }
495
- function Xe(...e) {
495
+ function Ze(...e) {
496
496
  for (let t of e) {
497
- let e = Je(t);
497
+ let e = Ye(t);
498
498
  if (e) return e;
499
499
  }
500
500
  return "";
501
501
  }
502
- function Ze(e, t) {
502
+ function Qe(e, t) {
503
503
  return String(e?.id || e?.item_id || e?.call_id || t?.item_id || t?.call_id || t?.output_index || "");
504
504
  }
505
- function Qe(e, t, n, r, i) {
505
+ function $e(e, t, n, r, i) {
506
506
  t && (e.toolNames.set(t, r), e.toolArguments.set(t, i));
507
507
  let a = String(n?.call_id || "");
508
508
  a && (e.callIds.set(a, t || r), e.toolNames.set(a, r), e.toolArguments.set(a, i));
509
509
  }
510
- function $e(e, t, n, r = "tool") {
510
+ function et(e, t, n, r = "tool") {
511
511
  let i = String(n?.call_id || "");
512
512
  return String(n?.name || n?.tool_name || (t ? e.toolNames.get(t) : "") || (i ? e.toolNames.get(i) : "") || r);
513
513
  }
514
- function et(e) {
514
+ function tt(e) {
515
515
  if (!e || typeof e != "object") return "";
516
- let t = Je(e.content);
517
- return Xe(e.output_text, e.text, e.summary_text, e.summary, e.delta, t);
516
+ let t = Ye(e.content);
517
+ return Ze(e.output_text, e.text, e.summary_text, e.summary, e.delta, t);
518
518
  }
519
- function tt(e) {
520
- let t = e?.response && typeof e.response == "object" ? e.response : e, n = Xe(t?.output_text, t?.text);
519
+ function nt(e) {
520
+ let t = e?.response && typeof e.response == "object" ? e.response : e, n = Ze(t?.output_text, t?.text);
521
521
  if (n) return n;
522
522
  let r = Array.isArray(t?.output) ? t.output : [];
523
523
  for (let e of r) {
524
- let t = et(e);
524
+ let t = tt(e);
525
525
  if (t) return t;
526
526
  }
527
527
  return "";
528
528
  }
529
- function nt(e) {
529
+ function rt(e) {
530
530
  let t = e?.response && typeof e.response == "object" ? e.response : e;
531
531
  return Array.isArray(t?.output) ? t.output : [];
532
532
  }
533
- function rt(e) {
533
+ function it(e) {
534
534
  let t = e;
535
535
  if (typeof t == "string") try {
536
536
  t = JSON.parse(t);
@@ -542,11 +542,11 @@ function rt(e) {
542
542
  approval_request_id: t.value.approval_request_id || t.value.id || t.id
543
543
  } : t;
544
544
  }
545
- function it({ data: e, state: t, status: n }) {
546
- let r = e?.item || e?.output_item || e || {}, i = String(r.type || "").trim(), a = Ze(r, e);
545
+ function at({ data: e, state: t, status: n }) {
546
+ let r = e?.item || e?.output_item || e || {}, i = String(r.type || "").trim(), a = Qe(r, e);
547
547
  if (i === "function_call") {
548
- let e = $e(t, a, r), i = Ye(r.arguments ?? r.args ?? r.input);
549
- return Qe(t, a, r, e, i), [{
548
+ let e = et(t, a, r), i = Xe(r.arguments ?? r.args ?? r.input);
549
+ return $e(t, a, r, e, i), [{
550
550
  type: "tool_upsert",
551
551
  name: e,
552
552
  args: i,
@@ -555,27 +555,27 @@ function it({ data: e, state: t, status: n }) {
555
555
  }
556
556
  if (i === "function_call_output") return [{
557
557
  type: "tool_result",
558
- name: $e(t, a, r),
559
- output: Ye(r.output ?? r.result ?? r.content)
558
+ name: et(t, a, r),
559
+ output: Xe(r.output ?? r.result ?? r.content)
560
560
  }];
561
561
  if (i === "mcp_approval_request") return [{
562
562
  type: "tool_upsert",
563
563
  name: String(r.name || "approval"),
564
- args: Ye(r.arguments ?? r.args),
564
+ args: Xe(r.arguments ?? r.args),
565
565
  status: "paused",
566
566
  approvalRequestId: String(r.id || r.approval_request_id || ""),
567
567
  previousResponseId: String(e?.response_id || t.currentResponseId || ""),
568
568
  serverLabel: String(r.server_label || "")
569
569
  }];
570
570
  if (i === "reasoning" || i === "reasoning_summary" || i === "reasoning_summary_text") {
571
- let e = et(r);
571
+ let e = tt(r);
572
572
  return e ? [{
573
573
  type: "reasoning_delta",
574
574
  text: e
575
575
  }] : [];
576
576
  }
577
577
  if (i === "message") {
578
- let e = et(r);
578
+ let e = tt(r);
579
579
  return e ? [{
580
580
  type: n === "completed" ? "text_final" : "text_delta",
581
581
  text: e
@@ -583,31 +583,31 @@ function it({ data: e, state: t, status: n }) {
583
583
  }
584
584
  return [];
585
585
  }
586
- function at({ eventName: e, data: t, state: n }) {
586
+ function ot({ eventName: e, data: t, state: n }) {
587
587
  let r = String(t?.type || e || "").trim(), i = String(t?.id || t?.response?.id || t?.response_id || "");
588
588
  if (i.startsWith("resp_") && (n.currentResponseId = i), r === "response.tool_call") return [{
589
589
  type: "tool_upsert",
590
590
  name: String(t?.name || t?.tool_name || "tool"),
591
- args: Ye(t?.args ?? t?.arguments),
591
+ args: Xe(t?.args ?? t?.arguments),
592
592
  status: "running"
593
593
  }];
594
594
  if (r === "response.tool_result" || r === "response.ksadk.tool_result") return [{
595
595
  type: "tool_result",
596
596
  name: String(t?.name || t?.tool_name || "tool"),
597
- output: Ye(t?.output ?? t?.result)
597
+ output: Xe(t?.output ?? t?.result)
598
598
  }];
599
- if (r === "response.output_item.added") return it({
599
+ if (r === "response.output_item.added") return at({
600
600
  data: t,
601
601
  state: n,
602
602
  status: "running"
603
603
  });
604
- if (r === "response.output_item.done") return it({
604
+ if (r === "response.output_item.done") return at({
605
605
  data: t,
606
606
  state: n,
607
607
  status: "completed"
608
608
  });
609
609
  if (r === "response.function_call_arguments.delta") {
610
- let e = String(t?.item_id || t?.call_id || ""), r = $e(n, e, t), i = `${n.toolArguments.get(e) || ""}${String(t?.delta || "")}`;
610
+ let e = String(t?.item_id || t?.call_id || ""), r = et(n, e, t), i = `${n.toolArguments.get(e) || ""}${String(t?.delta || "")}`;
611
611
  return n.toolArguments.set(e, i), [{
612
612
  type: "tool_upsert",
613
613
  name: r,
@@ -616,7 +616,7 @@ function at({ eventName: e, data: t, state: n }) {
616
616
  }];
617
617
  }
618
618
  if (r === "response.function_call_arguments.done") {
619
- let e = String(t?.item_id || t?.call_id || ""), r = $e(n, e, t), i = Ye(t?.arguments ?? n.toolArguments.get(e));
619
+ let e = String(t?.item_id || t?.call_id || ""), r = et(n, e, t), i = Xe(t?.arguments ?? n.toolArguments.get(e));
620
620
  return n.toolArguments.set(e, i), [{
621
621
  type: "tool_upsert",
622
622
  name: r,
@@ -625,28 +625,28 @@ function at({ eventName: e, data: t, state: n }) {
625
625
  }];
626
626
  }
627
627
  if (r === "response.reasoning.delta" || r === "response.reasoning_text.delta" || r === "response.reasoning_summary.delta" || r === "response.reasoning_summary_text.delta") {
628
- let e = Xe(t?.delta, t?.text);
628
+ let e = Ze(t?.delta, t?.text);
629
629
  return e ? [{
630
630
  type: "reasoning_delta",
631
631
  text: e
632
632
  }] : [];
633
633
  }
634
634
  if (r === "response.output_text.delta") {
635
- let e = Xe(t?.delta, t?.text);
635
+ let e = Ze(t?.delta, t?.text);
636
636
  return e ? [{
637
637
  type: "text_delta",
638
638
  text: e
639
639
  }] : [];
640
640
  }
641
641
  if (r === "response.output_text.done") {
642
- let e = Xe(t?.text, t?.delta);
642
+ let e = Ze(t?.text, t?.delta);
643
643
  return e ? [{
644
644
  type: "text_final",
645
645
  text: e
646
646
  }] : [];
647
647
  }
648
648
  if (r === "response.content_part.delta") {
649
- let e = String(t?.part?.type || t?.delta?.type || t?.content_type || ""), n = Xe(t?.delta?.text, t?.delta, t?.text);
649
+ let e = String(t?.part?.type || t?.delta?.type || t?.content_type || ""), n = Ze(t?.delta?.text, t?.delta, t?.text);
650
650
  return n ? e.includes("reasoning") ? [{
651
651
  type: "reasoning_delta",
652
652
  text: n
@@ -656,7 +656,7 @@ function at({ eventName: e, data: t, state: n }) {
656
656
  }] : [];
657
657
  }
658
658
  if (r === "response.completed") {
659
- let e = tt(t), r = nt(t).flatMap((e) => it({
659
+ let e = nt(t), r = rt(t).flatMap((e) => at({
660
660
  data: {
661
661
  ...t,
662
662
  item: e
@@ -692,7 +692,7 @@ function at({ eventName: e, data: t, state: n }) {
692
692
  status: "cancelled"
693
693
  }];
694
694
  if (r === "response.approval_request" || r === "response.ksadk.approval_request") {
695
- let e = rt(t?.interrupt_info), r = String(e.approval_request_id || e.id || ""), i = String(t?.response_id || n.currentResponseId || ""), a = e.approval_requests && typeof e.approval_requests == "object" ? e.approval_requests : e, o = Array.isArray(a.action_requests) ? a.action_requests : [];
695
+ let e = it(t?.interrupt_info), r = String(e.approval_request_id || e.id || ""), i = String(t?.response_id || n.currentResponseId || ""), a = e.approval_requests && typeof e.approval_requests == "object" ? e.approval_requests : e, o = Array.isArray(a.action_requests) ? a.action_requests : [];
696
696
  return o.length > 0 ? o.map((e) => ({
697
697
  type: "tool_upsert",
698
698
  name: String(e?.name || "tool"),
@@ -759,13 +759,16 @@ function at({ eventName: e, data: t, state: n }) {
759
759
  }
760
760
  //#endregion
761
761
  //#region src/core/stream/responses-protocol.ts
762
- var ot = class {
762
+ var st = class {
763
763
  id = "responses";
764
764
  createState() {
765
- return qe();
765
+ return Je();
766
+ }
767
+ parseItemOperations(e, t, n) {
768
+ return k(e.eventName, e.data, t, n);
766
769
  }
767
770
  parse(e, t) {
768
- return at({
771
+ return ot({
769
772
  eventName: e.eventName,
770
773
  data: e.data,
771
774
  state: t
@@ -788,23 +791,23 @@ var ot = class {
788
791
  };
789
792
  //#endregion
790
793
  //#region src/utils/stream-parsing.ts
791
- function st(e) {
794
+ function ct(e) {
792
795
  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("") : "";
793
796
  }
794
- function ct(e) {
797
+ function lt(e) {
795
798
  return e && typeof e == "object" ? e : {};
796
799
  }
797
- function lt(e) {
798
- let t = ct(e).choices, n = ct(Array.isArray(t) ? t[0] : null), r = ct(n.delta), i = ct(n.message);
800
+ function ut(e) {
801
+ let t = lt(e).choices, n = lt(Array.isArray(t) ? t[0] : null), r = lt(n.delta), i = lt(n.message);
799
802
  return {
800
- content: st(r.content),
801
- reasoning: st(r.reasoning_content),
802
- finalText: st(i.content)
803
+ content: ct(r.content),
804
+ reasoning: ct(r.reasoning_content),
805
+ finalText: ct(i.content)
803
806
  };
804
807
  }
805
808
  //#endregion
806
809
  //#region src/core/stream/chat-completions-protocol.ts
807
- var ut = class {
810
+ var dt = class {
808
811
  id = "chat_completions";
809
812
  createState() {
810
813
  return {};
@@ -812,7 +815,7 @@ var ut = class {
812
815
  parse(e) {
813
816
  let t = e.data;
814
817
  if (typeof t != "object" || !t) return [];
815
- let n = lt(t), r = [];
818
+ let n = ut(t), r = [];
816
819
  return n.reasoning && r.push({
817
820
  type: "reasoning_delta",
818
821
  text: n.reasoning
@@ -824,14 +827,14 @@ var ut = class {
824
827
  text: n.finalText
825
828
  }), r;
826
829
  }
827
- }, dt = /* @__PURE__ */ new Map();
828
- dt.set("responses", new ot()), dt.set("chat_completions", new ut());
829
- function ft(e) {
830
- return dt.get(e) || dt.get("responses");
830
+ }, ft = /* @__PURE__ */ new Map();
831
+ ft.set("responses", new st()), ft.set("chat_completions", new dt());
832
+ function pt(e) {
833
+ return ft.get(e) || ft.get("responses");
831
834
  }
832
835
  //#endregion
833
836
  //#region src/utils/stream-control.js
834
- function pt(e = []) {
837
+ function mt(e = []) {
835
838
  return e.some((e) => {
836
839
  if (e?.type !== "terminal") return !1;
837
840
  let t = String(e.status || "").toLowerCase();
@@ -840,7 +843,7 @@ function pt(e = []) {
840
843
  }
841
844
  //#endregion
842
845
  //#region src/core/transport/sse-parser.ts
843
- function mt(e) {
846
+ function ht(e) {
844
847
  let t = [], n = e.trim();
845
848
  if (!n) return t;
846
849
  let r = n.split("\n");
@@ -870,7 +873,7 @@ function mt(e) {
870
873
  }
871
874
  return t;
872
875
  }
873
- function ht(e) {
876
+ function gt(e) {
874
877
  let t = e.split("\n\n");
875
878
  return {
876
879
  chunks: t,
@@ -879,33 +882,33 @@ function ht(e) {
879
882
  }
880
883
  //#endregion
881
884
  //#region src/utils/error.ts
882
- function gt(e) {
885
+ function _t(e) {
883
886
  return e instanceof Error ? e.message : String(e);
884
887
  }
885
- var _t = 1280;
886
- function vt(e) {
888
+ var vt = 1280;
889
+ function yt(e) {
887
890
  let { apiFormats: t } = e;
888
891
  return t.includes("responses") ? "responses" : t.includes("chat_completions") ? "chat_completions" : "responses";
889
892
  }
890
- function yt(e, t, n) {
891
- let r = Math.min(_t, Math.max(420, t - n - 360));
893
+ function bt(e, t, n) {
894
+ let r = Math.min(vt, Math.max(420, t - n - 360));
892
895
  return Math.min(Math.max(e, 420), r);
893
896
  }
894
897
  //#endregion
895
898
  //#region src/core/run/agui.ts
896
- function bt(e) {
899
+ function xt(e) {
897
900
  return String(e.type || "").toUpperCase();
898
901
  }
899
- function xt(e, t) {
902
+ function St(e, t) {
900
903
  return String(e.messageId || t);
901
904
  }
902
- function St(e, t) {
905
+ function Ct(e, t) {
903
906
  return String(e.runId || t);
904
907
  }
905
- function Ct(e) {
908
+ function wt(e) {
906
909
  return e && typeof e == "object" && !Array.isArray(e) ? e : {};
907
910
  }
908
- function wt(e) {
911
+ function Tt(e) {
909
912
  if (Array.isArray(e)) return _(e.filter((e) => !!(e && typeof e == "object")));
910
913
  if (e && typeof e == "object") {
911
914
  let t = e.a2ui_operations;
@@ -913,10 +916,10 @@ function wt(e) {
913
916
  }
914
917
  return [];
915
918
  }
916
- function Tt(e) {
919
+ function Et(e) {
917
920
  return e == null || e === "" ? "" : typeof e == "string" ? e : JSON.stringify(e, null, 2);
918
921
  }
919
- var Et = class {
922
+ var Dt = class {
920
923
  agent;
921
924
  onEvent;
922
925
  tools = /* @__PURE__ */ new Map();
@@ -988,7 +991,7 @@ var Et = class {
988
991
  };
989
992
  }
990
993
  project(e, t) {
991
- let n = bt(e), r = St(e, t), i = xt(e, `${r}:assistant`), a = e, o = [];
994
+ let n = xt(e), r = Ct(e, t), i = St(e, `${r}:assistant`), a = e, o = [];
992
995
  if (n === "RUN_STARTED") o.push({
993
996
  type: "activity",
994
997
  phase: "AG-UI 运行已创建",
@@ -1050,20 +1053,20 @@ var Et = class {
1050
1053
  output: String(a.content || "")
1051
1054
  });
1052
1055
  } else if (n === "ACTIVITY_SNAPSHOT") {
1053
- let e = a.content, t = Ct(e), n = String(t.surfaceId || t.surface_id || a.messageId || "default");
1056
+ let e = a.content, t = wt(e), n = String(t.surfaceId || t.surface_id || a.messageId || "default");
1054
1057
  o.push({
1055
1058
  type: "agui_activity",
1056
1059
  messageId: this.runMessageIds.get(r) || i,
1057
1060
  surfaceId: n,
1058
- messages: wt(t.content ?? e)
1061
+ messages: Tt(t.content ?? e)
1059
1062
  });
1060
1063
  } else if (n === "RUN_FINISHED") {
1061
- let e = Ct(a.outcome);
1064
+ let e = wt(a.outcome);
1062
1065
  if (String(e.type || "").toLowerCase() === "interrupt") {
1063
1066
  let t = Array.isArray(e.interrupts) ? e.interrupts : [];
1064
1067
  this.pendingByRun.set(r, t);
1065
1068
  for (let e of t) {
1066
- let t = Ct(e.metadata), n = e.toolCallId ? this.tools.get(e.toolCallId) : void 0, i = String(t.tool_name || t.toolName || n?.name || e.reason || "人工确认"), a = Tt(t.arguments ?? t.tool_args ?? t.args ?? n?.args);
1069
+ let t = wt(e.metadata), n = e.toolCallId ? this.tools.get(e.toolCallId) : void 0, i = String(t.tool_name || t.toolName || n?.name || e.reason || "人工确认"), a = Et(t.arguments ?? t.tool_args ?? t.args ?? n?.args);
1067
1070
  o.push({
1068
1071
  type: "approval_requested",
1069
1072
  messageId: this.runMessageIds.get(r) || `${r}:assistant`,
@@ -1097,7 +1100,7 @@ var Et = class {
1097
1100
  };
1098
1101
  return { events: o };
1099
1102
  }
1100
- }, Dt = new Set([
1103
+ }, Ot = new Set([
1101
1104
  "completed",
1102
1105
  "failed",
1103
1106
  "error",
@@ -1107,12 +1110,12 @@ var Et = class {
1107
1110
  "interrupted",
1108
1111
  "resume_failed"
1109
1112
  ]);
1110
- function Ot(e) {
1113
+ function kt(e) {
1111
1114
  if (e.EventType !== "run_status") return null;
1112
1115
  let t = String(e.Content?.status || "").trim().toLowerCase();
1113
- return Dt.has(t) ? t : null;
1116
+ return Ot.has(t) ? t : null;
1114
1117
  }
1115
- function kt(e, t) {
1118
+ function At(e, t) {
1116
1119
  let n = String(t?.type || e || "").trim();
1117
1120
  if (n === "response.created") return {
1118
1121
  phase: "运行已创建",
@@ -1158,11 +1161,11 @@ function kt(e, t) {
1158
1161
  status: "failed"
1159
1162
  } : null;
1160
1163
  }
1161
- function At() {
1164
+ function jt() {
1162
1165
  let e = globalThis.crypto;
1163
1166
  return e && typeof e.randomUUID == "function" ? `run_${e.randomUUID()}` : `run_${Date.now()}_${Math.random().toString(16).slice(2)}`;
1164
1167
  }
1165
- var jt = {
1168
+ var Mt = {
1166
1169
  idle: [
1167
1170
  "creating-session",
1168
1171
  "uploading-files",
@@ -1200,7 +1203,7 @@ var jt = {
1200
1203
  ],
1201
1204
  error: ["connecting", "idle"],
1202
1205
  cancelled: ["idle"]
1203
- }, Mt = class {
1206
+ }, Nt = class {
1204
1207
  _stage = "idle";
1205
1208
  listeners = /* @__PURE__ */ new Set();
1206
1209
  abortController = null;
@@ -1237,7 +1240,7 @@ var jt = {
1237
1240
  }
1238
1241
  getAguiClient(e) {
1239
1242
  let t = this.config.hostedChatTransport;
1240
- return t?.Protocol !== "ag-ui" || !t.Endpoint ? null : ((!this.aguiClient || this.aguiThreadSessionId !== e) && (this.aguiClient = new Et({
1243
+ return t?.Protocol !== "ag-ui" || !t.Endpoint ? null : ((!this.aguiClient || this.aguiThreadSessionId !== e) && (this.aguiClient = new Dt({
1241
1244
  url: t.Endpoint,
1242
1245
  agentId: this.config.agentId,
1243
1246
  threadId: e,
@@ -1245,7 +1248,7 @@ var jt = {
1245
1248
  }), this.aguiThreadSessionId = e), this.aguiClient);
1246
1249
  }
1247
1250
  setStage(e) {
1248
- let t = jt[this._stage];
1251
+ let t = Mt[this._stage];
1249
1252
  t && !t.includes(e) && console.warn(`[RunEngine] Invalid transition: ${this._stage} → ${e}`), this._stage = e, this.emit({
1250
1253
  type: "stage_changed",
1251
1254
  stage: e
@@ -1272,10 +1275,10 @@ var jt = {
1272
1275
  status: "connecting",
1273
1276
  countEvent: !1
1274
1277
  });
1275
- let o = t ? "responses" : vt({
1278
+ let o = t ? "responses" : yt({
1276
1279
  agentFramework: this.config.agentFramework,
1277
1280
  apiFormats: this.config.apiFormats
1278
- }), s = ft(o), c = s.createState(), l = At();
1281
+ }), s = pt(o), c = s.createState(), l = jt();
1279
1282
  i.getState().setCurrentRunId(l), i.getState().setActiveInvocationId(l), i.getState().setLastSeqId(0);
1280
1283
  let u = this.config.hostedChatTransport, d = !t && e.attachments.length === 0 && u?.Protocol === "ag-ui" ? this.getAguiClient(n) : null;
1281
1284
  if (d && u) {
@@ -1375,7 +1378,7 @@ var jt = {
1375
1378
  } catch (e) {
1376
1379
  console.warn("[RunEngine] afterSeqId resume failed, fall back to error:", e);
1377
1380
  }
1378
- } else e instanceof W && e.code === 429 ? (this.setStage("error"), this.emit({
1381
+ } else e instanceof G && e.code === 429 ? (this.setStage("error"), this.emit({
1379
1382
  type: "rate_limited",
1380
1383
  message: e.message || "请求过于频繁,请稍后重试",
1381
1384
  sessionId: n
@@ -1435,11 +1438,11 @@ var jt = {
1435
1438
  let { value: e, done: n } = await r.read();
1436
1439
  if (n) break;
1437
1440
  a += i.decode(e, { stream: !0 });
1438
- let { chunks: o, remainder: s } = ht(a);
1441
+ let { chunks: o, remainder: s } = gt(a);
1439
1442
  a = s;
1440
1443
  for (let e of o) {
1441
1444
  if (!e.trim()) continue;
1442
- let n = mt(e);
1445
+ let n = ht(e);
1443
1446
  for (let e of n) e.eventName === "__done__" || e.eventName === "__ping__" || (this.emit({
1444
1447
  type: "activity",
1445
1448
  phase: "收到恢复事件",
@@ -1447,7 +1450,7 @@ var jt = {
1447
1450
  }), this.emit({
1448
1451
  type: "stream_event",
1449
1452
  event: e.data
1450
- }), t = Ot(e.data) || t);
1453
+ }), t = kt(e.data) || t);
1451
1454
  }
1452
1455
  }
1453
1456
  this.setStage("completing"), t === "cancelled" || t === "canceled" || t === "aborted" ? this.emit({
@@ -1486,7 +1489,7 @@ var jt = {
1486
1489
  resumeCheckpoint(e) {
1487
1490
  if (this._stage !== "idle") return !1;
1488
1491
  this.abortController = new AbortController(), this.activeSessionId = e.sessionId;
1489
- let t = At();
1492
+ let t = jt();
1490
1493
  return i.getState().setCurrentRunId(t), (async () => {
1491
1494
  try {
1492
1495
  if (this.setStage("connecting"), this.emit({
@@ -1519,7 +1522,7 @@ var jt = {
1519
1522
  checkpointId: e.checkpointId,
1520
1523
  resumeAttemptId: e.resumeAttemptId,
1521
1524
  invocationId: t
1522
- }, { signal: this.abortController?.signal }), r = ft("responses"), a = r.createState();
1525
+ }, { signal: this.abortController?.signal }), r = pt("responses"), a = r.createState();
1523
1526
  this.setStage("streaming"), this.emit({
1524
1527
  type: "activity",
1525
1528
  source: "restore",
@@ -1572,7 +1575,7 @@ var jt = {
1572
1575
  let n = this.getAguiClient(t);
1573
1576
  if (!n) return !1;
1574
1577
  this.activeSessionId = t;
1575
- let r = At();
1578
+ let r = jt();
1576
1579
  return i.getState().setCurrentRunId(r), this.setStage("connecting"), this.emit({
1577
1580
  type: "activity",
1578
1581
  phase: "提交人工确认",
@@ -1649,7 +1652,7 @@ var jt = {
1649
1652
  } catch (e) {
1650
1653
  this.emit({
1651
1654
  type: "system_message",
1652
- content: `【系统提示】图片 ${t.name} 读取失败,原因: ${gt(e)}`
1655
+ content: `【系统提示】图片 ${t.name} 读取失败,原因: ${_t(e)}`
1653
1656
  });
1654
1657
  }
1655
1658
  continue;
@@ -1666,7 +1669,7 @@ var jt = {
1666
1669
  } catch (e) {
1667
1670
  this.emit({
1668
1671
  type: "system_message",
1669
- content: `【系统提示】文件 ${t.name} 上传失败,原因: ${gt(e)}`
1672
+ content: `【系统提示】文件 ${t.name} 上传失败,原因: ${_t(e)}`
1670
1673
  });
1671
1674
  }
1672
1675
  }
@@ -1678,7 +1681,7 @@ var jt = {
1678
1681
  return `data:${e.type || "application/octet-stream"};base64,${btoa(n)}`;
1679
1682
  }
1680
1683
  buildRequestBody(e, t, n, r, i, a) {
1681
- let o = {
1684
+ let s = {
1682
1685
  AgentId: this.config.agentId,
1683
1686
  SessionId: e,
1684
1687
  InvocationId: a,
@@ -1686,24 +1689,24 @@ var jt = {
1686
1689
  ApiFormat: t,
1687
1690
  Model: this.config.selectedModel || void 0,
1688
1691
  ModelMetadata: this.config.selectedModelMetadata || void 0,
1689
- ModelOptions: u(f(this.config.thinkingMode)),
1692
+ ModelOptions: f(o(this.config.thinkingMode)),
1690
1693
  Metadata: { agentengine: { tool_approval_mode: this.config.permissionMode || "risk" } }
1691
1694
  };
1692
- if (n) o.ResponsesInput = r.responsesInput, o.PreviousResponseId = r.previousResponseId;
1695
+ if (n) s.ResponsesInput = r.responsesInput, s.PreviousResponseId = r.previousResponseId;
1693
1696
  else {
1694
1697
  let e = [{
1695
1698
  type: "input_text",
1696
1699
  text: r.text.trim()
1697
1700
  }];
1698
- e.push(...i), t === "responses" && (o.ResponsesInput = [{
1701
+ e.push(...i), t === "responses" && (s.ResponsesInput = [{
1699
1702
  role: "user",
1700
1703
  content: e
1701
- }]), o.Messages = [{
1704
+ }]), s.Messages = [{
1702
1705
  role: "user",
1703
1706
  content: e
1704
1707
  }];
1705
1708
  }
1706
- return o;
1709
+ return s;
1707
1710
  }
1708
1711
  async consumeStream(e, t, n, r, i) {
1709
1712
  let a = e.getReader(), o = new TextDecoder(), s = "", c = !1, l = !1;
@@ -1716,32 +1719,32 @@ var jt = {
1716
1719
  messageId: r,
1717
1720
  invocationId: i
1718
1721
  })), s += o.decode(e, { stream: !0 });
1719
- let { chunks: d, remainder: f } = ht(s);
1722
+ let { chunks: d, remainder: f } = gt(s);
1720
1723
  s = f;
1721
1724
  for (let e of d) {
1722
1725
  if (!e.trim()) continue;
1723
1726
  if (this.isCompactionChunk(e)) {
1724
- let t = mt(e);
1727
+ let t = ht(e);
1725
1728
  for (let e of t) e.eventName.startsWith("response.compaction") && this.upsertCompactionMessage({
1726
1729
  ...e.data,
1727
1730
  phase: e.eventName.split(".").pop()
1728
1731
  });
1729
1732
  continue;
1730
1733
  }
1731
- let i = mt(e), o = !1, s;
1734
+ let i = ht(e), o = !1, s;
1732
1735
  for (let e of i) {
1733
1736
  if (e.eventName === "__done__") {
1734
1737
  o = !0;
1735
1738
  continue;
1736
1739
  }
1737
- let i = kt(e.eventName, e.data);
1740
+ let i = At(e.eventName, e.data);
1738
1741
  i && this.emit({
1739
1742
  type: "activity",
1740
1743
  ...i
1741
1744
  });
1742
1745
  let a = t.parse(e, n);
1743
1746
  for (let e of a) this.dispatchAction(e, r);
1744
- if (pt(a)) {
1747
+ if (mt(a)) {
1745
1748
  o = !0;
1746
1749
  let e = a.find((e) => e.type === "terminal");
1747
1750
  s = e && "status" in e ? String(e.status || "") : void 0;
@@ -1881,17 +1884,17 @@ var jt = {
1881
1884
  phase: "failed"
1882
1885
  }), null);
1883
1886
  }
1884
- }, Nt = 0;
1887
+ }, Pt = 0;
1885
1888
  function X(e) {
1886
- return Nt += 1, `${e}-${Nt}`;
1889
+ return Pt += 1, `${e}-${Pt}`;
1887
1890
  }
1888
- function Pt(e) {
1891
+ function Ft(e) {
1889
1892
  return e.map((e) => e.type === "thinking" && e.status === "streaming" ? {
1890
1893
  ...e,
1891
1894
  status: "done"
1892
1895
  } : e);
1893
1896
  }
1894
- function Ft(e, t) {
1897
+ function It(e, t) {
1895
1898
  let n = [...e ?? []], r = n[n.length - 1];
1896
1899
  return r?.type === "thinking" && r.status === "streaming" ? (n[n.length - 1] = {
1897
1900
  ...r,
@@ -1903,8 +1906,8 @@ function Ft(e, t) {
1903
1906
  status: "streaming"
1904
1907
  }];
1905
1908
  }
1906
- function It(e, t) {
1907
- let n = [...Pt(e ?? [])], r = n[n.length - 1];
1909
+ function Lt(e, t) {
1910
+ let n = [...Ft(e ?? [])], r = n[n.length - 1];
1908
1911
  return r?.type === "text" && r.status === "streaming" ? (n[n.length - 1] = {
1909
1912
  ...r,
1910
1913
  content: r.content + t
@@ -1915,8 +1918,8 @@ function It(e, t) {
1915
1918
  status: "streaming"
1916
1919
  }];
1917
1920
  }
1918
- function Lt(e, t) {
1919
- let n = Pt(e ?? []);
1921
+ function Rt(e, t) {
1922
+ let n = Ft(e ?? []);
1920
1923
  if (n.filter((e) => e.type === "text").map((e) => e.content).join("") === t) return n.map((e) => e.type === "text" && e.status === "streaming" ? {
1921
1924
  ...e,
1922
1925
  status: "done"
@@ -1933,8 +1936,8 @@ function Lt(e, t) {
1933
1936
  status: "done"
1934
1937
  }];
1935
1938
  }
1936
- function Rt(e, t, n) {
1937
- let r = [...Pt(e ?? [])], i = r.findIndex((e) => e.type === "tool" && e.toolName === t);
1939
+ function zt(e, t, n) {
1940
+ let r = [...Ft(e ?? [])], i = r.findIndex((e) => e.type === "tool" && e.toolName === t);
1938
1941
  if (i >= 0 && r[i].type === "tool") {
1939
1942
  let e = r[i], t = e.status === "error" || e.status === "completed", a = n.output !== void 0, o = n.extra && (n.extra.approvalRequestId || n.extra.approvalStatus);
1940
1943
  if (t && !a && !o) return r;
@@ -1955,10 +1958,10 @@ function Rt(e, t, n) {
1955
1958
  extra: n.extra
1956
1959
  }];
1957
1960
  }
1958
- function zt(e) {
1959
- return Pt(e ?? []);
1960
- }
1961
1961
  function Bt(e) {
1962
+ return Ft(e ?? []);
1963
+ }
1964
+ function Vt(e) {
1962
1965
  let t = [];
1963
1966
  if (e.reasoning && e.reasoning.trim() && t.push({
1964
1967
  id: X("thinking"),
@@ -1982,58 +1985,58 @@ function Bt(e) {
1982
1985
  }
1983
1986
  //#endregion
1984
1987
  //#region src/stores/checkpoint.ts
1985
- var Vt = [], Ht = [];
1988
+ var Ht = [], Ut = [];
1986
1989
  function Z(e) {
1987
1990
  return typeof e == "string" ? e.trim() : "";
1988
1991
  }
1989
- function Ut(e) {
1992
+ function Wt(e) {
1990
1993
  let t = typeof e == "number" ? e : Number(e);
1991
1994
  return Number.isFinite(t) ? t : void 0;
1992
1995
  }
1993
- function Wt(e) {
1994
- return typeof e == "string" || typeof e == "number" ? e : void 0;
1995
- }
1996
1996
  function Gt(e) {
1997
- return e && typeof e == "object" && !Array.isArray(e) ? e : void 0;
1997
+ return typeof e == "string" || typeof e == "number" ? e : void 0;
1998
1998
  }
1999
1999
  function Kt(e) {
2000
- return e !== null;
2000
+ return e && typeof e == "object" && !Array.isArray(e) ? e : void 0;
2001
2001
  }
2002
2002
  function qt(e) {
2003
2003
  return e !== null;
2004
2004
  }
2005
2005
  function Jt(e) {
2006
+ return e !== null;
2007
+ }
2008
+ function Yt(e) {
2006
2009
  return [...e].sort((e, t) => {
2007
2010
  let n = t.seqId ?? -1, r = e.seqId ?? -1;
2008
2011
  return n === r ? (Date.parse(String(t.timestamp || "")) || 0) - (Date.parse(String(e.timestamp || "")) || 0) : n - r;
2009
2012
  });
2010
2013
  }
2011
- function Yt(e) {
2014
+ function Xt(e) {
2012
2015
  return [...e].sort((e, t) => {
2013
2016
  let n = t.seqId ?? -1, r = e.seqId ?? -1;
2014
2017
  return n === r ? (Date.parse(String(t.timestamp || "")) || 0) - (Date.parse(String(e.timestamp || "")) || 0) : n - r;
2015
2018
  });
2016
2019
  }
2017
- function Xt(e) {
2018
- return Jt(e)[0]?.runId || "";
2019
- }
2020
2020
  function Zt(e) {
2021
- let t = Xt(e);
2022
- return t ? e.filter((e) => e.runId === t) : [];
2021
+ return Yt(e)[0]?.runId || "";
2023
2022
  }
2024
2023
  function Qt(e) {
2025
- let t = Gt(e);
2024
+ let t = Zt(e);
2025
+ return t ? e.filter((e) => e.runId === t) : [];
2026
+ }
2027
+ function $t(e) {
2028
+ let t = Kt(e);
2026
2029
  if (!t) return null;
2027
- let n = Gt(t.Metadata ?? t.metadata), r = Gt(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);
2030
+ let n = Kt(t.Metadata ?? t.metadata), r = Kt(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);
2028
2031
  return !i || !a ? null : {
2029
2032
  checkpointId: i,
2030
2033
  runId: a,
2031
2034
  sessionId: Z(t.SessionId ?? t.sessionId ?? t.session_id) || void 0,
2032
2035
  invocationId: Z(t.InvocationId ?? t.invocationId ?? t.invocation_id) || void 0,
2033
- seqId: Ut(t.SeqId ?? t.seqId ?? t.seq_id),
2034
- timestamp: Wt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
2036
+ seqId: Wt(t.SeqId ?? t.seqId ?? t.seq_id),
2037
+ timestamp: Gt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
2035
2038
  framework: Z(t.Framework ?? t.framework ?? n?.framework ?? r?.framework) || void 0,
2036
- frameworkRef: Gt(t.FrameworkRef ?? t.frameworkRef ?? t.framework_ref ?? n?.framework_ref ?? n?.frameworkRef),
2039
+ frameworkRef: Kt(t.FrameworkRef ?? t.frameworkRef ?? t.framework_ref ?? n?.framework_ref ?? n?.frameworkRef),
2037
2040
  phase: Z(t.Phase ?? t.phase ?? n?.phase ?? r?.phase) || void 0,
2038
2041
  stage: Z(t.Stage ?? t.stage ?? n?.stage ?? n?.title) || void 0,
2039
2042
  summary: Z(t.Summary ?? t.summary ?? n?.summary ?? n?.description) || void 0,
@@ -2042,8 +2045,8 @@ function Qt(e) {
2042
2045
  metadata: n
2043
2046
  };
2044
2047
  }
2045
- function $t(e) {
2046
- let t = Gt(e);
2048
+ function en(e) {
2049
+ let t = Kt(e);
2047
2050
  if (!t) return null;
2048
2051
  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);
2049
2052
  return !n || !r || !i ? null : {
@@ -2055,25 +2058,25 @@ function $t(e) {
2055
2058
  checkpointId: Z(t.CheckpointId ?? t.checkpointId ?? t.checkpoint_id) || void 0,
2056
2059
  sessionId: Z(t.SessionId ?? t.sessionId ?? t.session_id) || void 0,
2057
2060
  invocationId: Z(t.InvocationId ?? t.invocationId ?? t.invocation_id) || void 0,
2058
- seqId: Ut(t.SeqId ?? t.seqId ?? t.seq_id),
2059
- timestamp: Wt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
2061
+ seqId: Wt(t.SeqId ?? t.seqId ?? t.seq_id),
2062
+ timestamp: Gt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
2060
2063
  status: Z(t.Status ?? t.status) || void 0,
2061
2064
  replayed: !!(t.Replayed ?? t.replayed),
2062
- metadata: Gt(t.Metadata ?? t.metadata)
2065
+ metadata: Kt(t.Metadata ?? t.metadata)
2063
2066
  };
2064
2067
  }
2065
- var Q = j()((e, t) => ({
2068
+ var Q = M()((e, t) => ({
2066
2069
  checkpointsBySessionId: {},
2067
2070
  toolReceiptsBySessionId: {},
2068
2071
  setSessionCheckpoints: (t, n) => e((e) => ({ checkpointsBySessionId: {
2069
2072
  ...e.checkpointsBySessionId,
2070
- [t]: Jt(Zt(n.map(Qt).filter(Kt).map((e) => ({
2073
+ [t]: Yt(Qt(n.map($t).filter(qt).map((e) => ({
2071
2074
  ...e,
2072
2075
  sessionId: e.sessionId || t
2073
2076
  }))))
2074
2077
  } })),
2075
2078
  upsertSessionCheckpoint: (t, n) => {
2076
- let r = Qt(n);
2079
+ let r = $t(n);
2077
2080
  r && e((e) => {
2078
2081
  let n = e.checkpointsBySessionId[t] || [];
2079
2082
  r.sessionId = r.sessionId || t;
@@ -2082,27 +2085,27 @@ var Q = j()((e, t) => ({
2082
2085
  ...i.get(r.checkpointId),
2083
2086
  ...r
2084
2087
  });
2085
- let a = Zt([...i.values()]);
2088
+ let a = Qt([...i.values()]);
2086
2089
  return { checkpointsBySessionId: {
2087
2090
  ...e.checkpointsBySessionId,
2088
- [t]: Jt(a)
2091
+ [t]: Yt(a)
2089
2092
  } };
2090
2093
  });
2091
2094
  },
2092
2095
  getSessionCheckpoints: (e) => {
2093
2096
  let n = String(e || "");
2094
- return n && t().checkpointsBySessionId[n] || Vt;
2097
+ return n && t().checkpointsBySessionId[n] || Ht;
2095
2098
  },
2096
2099
  setSessionToolReceipts: (t, n) => e((e) => ({ toolReceiptsBySessionId: {
2097
2100
  ...e.toolReceiptsBySessionId,
2098
- [t]: Yt(n.map($t).filter(qt).map((e) => ({
2101
+ [t]: Xt(n.map(en).filter(Jt).map((e) => ({
2099
2102
  ...e,
2100
2103
  sessionId: e.sessionId || t
2101
2104
  })))
2102
2105
  } })),
2103
2106
  getSessionToolReceipts: (e) => {
2104
2107
  let n = String(e || "");
2105
- return n && t().toolReceiptsBySessionId[n] || Ht;
2108
+ return n && t().toolReceiptsBySessionId[n] || Ut;
2106
2109
  },
2107
2110
  clearSessionCheckpoints: (t) => e((e) => {
2108
2111
  let n = String(t || "");
@@ -2116,7 +2119,7 @@ var Q = j()((e, t) => ({
2116
2119
  toolReceiptsBySessionId: i
2117
2120
  };
2118
2121
  })
2119
- })), en = new Set([
2122
+ })), tn = new Set([
2120
2123
  "completed",
2121
2124
  "failed",
2122
2125
  "error",
@@ -2125,12 +2128,12 @@ var Q = j()((e, t) => ({
2125
2128
  "aborted",
2126
2129
  "interrupted",
2127
2130
  "resume_failed"
2128
- ]), tn = new Set([
2131
+ ]), nn = new Set([
2129
2132
  "tool_call",
2130
2133
  "tool_result",
2131
2134
  "stage_tool_call",
2132
2135
  "stage_tool_result"
2133
- ]), nn = {
2136
+ ]), rn = {
2134
2137
  "run.started": "in_progress",
2135
2138
  "run.progress": "in_progress",
2136
2139
  "run.interrupted": "interrupted",
@@ -2138,21 +2141,21 @@ var Q = j()((e, t) => ({
2138
2141
  "run.failed": "failed",
2139
2142
  "run.canceled": "cancelled"
2140
2143
  };
2141
- function rn(e) {
2144
+ function an(e) {
2142
2145
  let t = e?.Content?.payload;
2143
2146
  return t && typeof t == "object" ? t : {};
2144
2147
  }
2145
- function an(e, t) {
2148
+ function on(e, t) {
2146
2149
  let n = String(e || ""), r = String(t || "");
2147
2150
  return n ? !r || n.endsWith(r) ? n : r.startsWith(n) ? r : `${n}${r}` : r;
2148
2151
  }
2149
- function on(e) {
2150
- let t = String(e?.EventType || ""), n = rn(e);
2151
- return nn[t] ? {
2152
+ function sn(e) {
2153
+ let t = String(e?.EventType || ""), n = an(e);
2154
+ return rn[t] ? {
2152
2155
  ...e,
2153
2156
  EventType: "run_status",
2154
2157
  Content: {
2155
- status: String(n.status || nn[t]),
2158
+ status: String(n.status || rn[t]),
2156
2159
  ...n.detail ? { detail: String(n.detail) } : {}
2157
2160
  }
2158
2161
  } : t === "reasoning.delta" || t === "reasoning.completed" ? {
@@ -2190,7 +2193,7 @@ function on(e) {
2190
2193
  }
2191
2194
  } : e;
2192
2195
  }
2193
- function sn(e) {
2196
+ function cn(e) {
2194
2197
  let t = [], n = /* @__PURE__ */ new Map();
2195
2198
  for (let r of Array.isArray(e) ? e : []) {
2196
2199
  let e = String(r?.EventType || "");
@@ -2200,11 +2203,11 @@ function sn(e) {
2200
2203
  let t = n.get(e);
2201
2204
  n.set(e, {
2202
2205
  event: r,
2203
- text: an(t?.text, rn(r).text)
2206
+ text: on(t?.text, an(r).text)
2204
2207
  });
2205
2208
  continue;
2206
2209
  }
2207
- t.push(on(r));
2210
+ t.push(sn(r));
2208
2211
  }
2209
2212
  for (let { event: e, text: r } of n.values()) t.push({
2210
2213
  ...e,
@@ -2218,27 +2221,27 @@ function sn(e) {
2218
2221
  stream_snapshot: !0
2219
2222
  }
2220
2223
  });
2221
- return t.sort((e, t) => bn(e) - bn(t));
2222
- }
2223
- function cn(e) {
2224
- let t = String(e?.EventType || "").trim(), n = rn(e);
2225
- return String(e?.Content?.status || n.status || nn[t] || "").trim().toLowerCase();
2224
+ return t.sort((e, t) => xn(e) - xn(t));
2226
2225
  }
2227
2226
  function ln(e) {
2228
- 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("") : "";
2227
+ let t = String(e?.EventType || "").trim(), n = an(e);
2228
+ return String(e?.Content?.status || n.status || rn[t] || "").trim().toLowerCase();
2229
2229
  }
2230
2230
  function un(e) {
2231
+ 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("") : "";
2232
+ }
2233
+ function dn(e) {
2231
2234
  let t = String(e || "").trim();
2232
2235
  return t ? `/agentengine/api/v1/AttachmentContent?FileUri=${encodeURIComponent(t)}` : "";
2233
2236
  }
2234
- function dn(e) {
2237
+ function fn(e) {
2235
2238
  return String(e || "").match(/^data:([^;,]+)/)?.[1] || "";
2236
2239
  }
2237
- function fn(e, t) {
2240
+ function pn(e, t) {
2238
2241
  let n = String(e || "").trim(), r = String(t || "").trim();
2239
2242
  return !n || !r || n === r ? !0 : n.endsWith("/*") ? r.startsWith(n.slice(0, -1)) : r.endsWith("/*") ? n.startsWith(r.slice(0, -1)) : !1;
2240
2243
  }
2241
- function pn(e) {
2244
+ function mn(e) {
2242
2245
  let t = e?.Content?.parts || [], n = [], r = /* @__PURE__ */ new Map(), i = (e) => {
2243
2246
  let t = `${e.fileUri || e.url || e.name}|${e.type}`;
2244
2247
  r.has(t) || r.set(t, e);
@@ -2268,7 +2271,7 @@ function pn(e) {
2268
2271
  let t = e.file_url.trim();
2269
2272
  i({
2270
2273
  name: e.filename || e.displayName || e.display_name || "attachment",
2271
- url: un(t),
2274
+ url: dn(t),
2272
2275
  type: e.mime_type || e.mimeType || "application/octet-stream",
2273
2276
  fileUri: t
2274
2277
  });
@@ -2279,7 +2282,7 @@ function pn(e) {
2279
2282
  t && i({
2280
2283
  name: e.filename || e.displayName || e.display_name || "uploaded_image",
2281
2284
  url: t,
2282
- type: e.mime_type || e.mimeType || dn(t) || "image/*"
2285
+ type: e.mime_type || e.mimeType || fn(t) || "image/*"
2283
2286
  });
2284
2287
  continue;
2285
2288
  }
@@ -2287,7 +2290,7 @@ function pn(e) {
2287
2290
  let t = String(e.fileData.fileUri || "").trim();
2288
2291
  i({
2289
2292
  name: e.fileData.displayName || "attachment",
2290
- url: un(t),
2293
+ url: dn(t),
2291
2294
  type: e.fileData.mimeType || "application/octet-stream",
2292
2295
  fileUri: t
2293
2296
  });
@@ -2297,11 +2300,11 @@ function pn(e) {
2297
2300
  for (let e of a) {
2298
2301
  let t = String(e.file_uri || "").trim(), n = {
2299
2302
  name: e.display_name || "attachment",
2300
- url: un(t),
2303
+ url: dn(t),
2301
2304
  type: e.mime_type || "application/octet-stream",
2302
2305
  fileUri: t
2303
2306
  };
2304
- !n.url && !n.fileUri && Array.from(r.values()).some((e) => e.name === n.name && fn(e.type, n.type) && (e.url || e.fileUri)) || i(n);
2307
+ !n.url && !n.fileUri && Array.from(r.values()).some((e) => e.name === n.name && pn(e.type, n.type) && (e.url || e.fileUri)) || i(n);
2305
2308
  }
2306
2309
  let o = Array.from(r.values());
2307
2310
  return {
@@ -2309,10 +2312,10 @@ function pn(e) {
2309
2312
  attachments: o.length > 0 ? o : void 0
2310
2313
  };
2311
2314
  }
2312
- function mn(e) {
2315
+ function hn(e) {
2313
2316
  let t = e?.Metadata?.responses_output;
2314
2317
  if (!Array.isArray(t)) return {};
2315
- let n = qe(), r = at({
2318
+ let n = Je(), r = ot({
2316
2319
  eventName: "response.completed",
2317
2320
  data: { response: {
2318
2321
  id: String(e.Metadata?.response_id || ""),
@@ -2356,22 +2359,22 @@ function mn(e) {
2356
2359
  ...Object.keys(a).length > 0 ? { tools: a } : {}
2357
2360
  };
2358
2361
  }
2359
- function hn(e, t, n) {
2362
+ function gn(e, t, n) {
2360
2363
  return t === "running" ? e === "prompt_too_long" ? "检测到上下文过长,正在自动压缩历史后重试" : "正在自动压缩上下文" : n ? e === "prompt_too_long" ? "上下文过长,系统已自动压缩历史并重试" : "系统已自动压缩较早的对话上下文" : t === "failed" ? "自动压缩上下文未完成" : e === "prompt_too_long" ? "已完成上下文压缩,并继续当前回复" : "已完成上下文压缩";
2361
2364
  }
2362
- function gn(e, t) {
2365
+ function _n(e, t) {
2363
2366
  return [
2364
2367
  e,
2365
2368
  t.content || "",
2366
2369
  t.reasoning || ""
2367
2370
  ].join("\0");
2368
2371
  }
2369
- function _n(e) {
2372
+ function vn(e) {
2370
2373
  return e?.Metadata?.responses_mirror === !0 || String(e?.Metadata?.responses_mirror || "").trim().toLowerCase() === "true";
2371
2374
  }
2372
- function vn(e) {
2375
+ function yn(e) {
2373
2376
  if (e?.EventType !== "user_message") return "";
2374
- let t = pn(e), n = (t.attachments || []).map((e) => [
2377
+ let t = mn(e), n = (t.attachments || []).map((e) => [
2375
2378
  e.name || "",
2376
2379
  e.fileUri || "",
2377
2380
  e.url || "",
@@ -2379,16 +2382,16 @@ function vn(e) {
2379
2382
  ].join("")).sort().join("");
2380
2383
  return [String(t.text || "").trim(), n].join("\0");
2381
2384
  }
2382
- function yn(e) {
2385
+ function bn(e) {
2383
2386
  return e?.EventType === "assistant_stream_snapshot";
2384
2387
  }
2385
- function bn(e) {
2388
+ function xn(e) {
2386
2389
  let t = Number(e?.SeqId || 0);
2387
2390
  if (Number.isFinite(t) && t > 0) return t;
2388
2391
  let n = Number(e?.Timestamp || 0);
2389
2392
  return Number.isFinite(n) ? n : 0;
2390
2393
  }
2391
- function xn(e) {
2394
+ function Sn(e) {
2392
2395
  if (typeof e == "string") return e;
2393
2396
  if (e == null) return "";
2394
2397
  try {
@@ -2397,15 +2400,15 @@ function xn(e) {
2397
2400
  return String(e);
2398
2401
  }
2399
2402
  }
2400
- function Sn(e) {
2403
+ function Cn(e) {
2401
2404
  let t = String(e?.EventType || "");
2402
- if (!tn.has(t)) return null;
2403
- let n = String(e.Metadata?.tool_name || e.Metadata?.name || e.Metadata?.function_name || ln(e.Content?.parts) || "tool").trim() || "tool", r = {
2405
+ if (!nn.has(t)) return null;
2406
+ let n = String(e.Metadata?.tool_name || e.Metadata?.name || e.Metadata?.function_name || un(e.Content?.parts) || "tool").trim() || "tool", r = {
2404
2407
  name: n,
2405
2408
  args: "",
2406
2409
  status: "running"
2407
2410
  }, i = t === "tool_result" || t === "stage_tool_result" ? (() => {
2408
- let t = xn(e.Metadata?.tool_output ?? e.Metadata?.output ?? e.Metadata?.result ?? ln(e.Content?.parts));
2411
+ let t = Sn(e.Metadata?.tool_output ?? e.Metadata?.output ?? e.Metadata?.result ?? un(e.Content?.parts));
2409
2412
  return {
2410
2413
  ...r,
2411
2414
  output: t,
@@ -2413,7 +2416,7 @@ function Sn(e) {
2413
2416
  };
2414
2417
  })() : {
2415
2418
  ...r,
2416
- args: xn(e.Metadata?.tool_args ?? e.Metadata?.arguments ?? e.Metadata?.args ?? {})
2419
+ args: Sn(e.Metadata?.tool_args ?? e.Metadata?.arguments ?? e.Metadata?.args ?? {})
2417
2420
  };
2418
2421
  return {
2419
2422
  id: e.EventId || String(Date.now() + Math.random()),
@@ -2424,7 +2427,7 @@ function Sn(e) {
2424
2427
  tools: { [n]: i }
2425
2428
  };
2426
2429
  }
2427
- function Cn(e = {}, t = {}) {
2430
+ function wn(e = {}, t = {}) {
2428
2431
  let n = { ...e || {} };
2429
2432
  for (let [e, r] of Object.entries(t || {})) n[e] = {
2430
2433
  ...n[e] || {},
@@ -2434,8 +2437,8 @@ function Cn(e = {}, t = {}) {
2434
2437
  };
2435
2438
  return n;
2436
2439
  }
2437
- function wn(e = {}, t = "") {
2438
- let n = String(t || "").trim().toLowerCase(), r = n === "completed" ? "completed" : en.has(n) ? "error" : "";
2440
+ function Tn(e = {}, t = "") {
2441
+ let n = String(t || "").trim().toLowerCase(), r = n === "completed" ? "completed" : tn.has(n) ? "error" : "";
2439
2442
  if (!r) return e;
2440
2443
  let i = !1, a = {};
2441
2444
  for (let [t, n] of Object.entries(e || {})) n?.status === "running" ? (i = !0, a[t] = {
@@ -2444,10 +2447,10 @@ function wn(e = {}, t = "") {
2444
2447
  }) : a[t] = n;
2445
2448
  return i ? a : e;
2446
2449
  }
2447
- function Tn(e, t) {
2450
+ function En(e, t) {
2448
2451
  return {
2449
2452
  ...e,
2450
- reasoning: En(e.reasoning, t.reasoning),
2453
+ reasoning: Dn(e.reasoning, t.reasoning),
2451
2454
  tools: {
2452
2455
  ...e.tools || {},
2453
2456
  ...t.tools || {}
@@ -2460,11 +2463,11 @@ function Tn(e, t) {
2460
2463
  id: t.responseId || t.reasoning || t.tools ? t.id : e.id
2461
2464
  };
2462
2465
  }
2463
- function En(e = "", t = "") {
2466
+ function Dn(e = "", t = "") {
2464
2467
  let n = String(e || ""), r = String(t || "");
2465
2468
  return n ? !r || n.endsWith(r) ? n : r.startsWith(n) ? r : `${n}${r}` : r;
2466
2469
  }
2467
- function Dn(e) {
2470
+ function On(e) {
2468
2471
  return {
2469
2472
  id: e.id,
2470
2473
  role: "system",
@@ -2475,10 +2478,10 @@ function Dn(e) {
2475
2478
  summary: e.summary,
2476
2479
  historical: e.historical,
2477
2480
  timestamp: e.timestamp,
2478
- content: hn(e.trigger, e.status, e.historical)
2481
+ content: gn(e.trigger, e.status, e.historical)
2479
2482
  };
2480
2483
  }
2481
- function On(e) {
2484
+ function kn(e) {
2482
2485
  let t = e?.EventType || "";
2483
2486
  if (t === "run_status") return e.Content?.status === "failed" ? {
2484
2487
  id: e.EventId || String(Date.now() + Math.random()),
@@ -2496,8 +2499,8 @@ function On(e) {
2496
2499
  timestamp: e.Timestamp || Date.now()
2497
2500
  } : null;
2498
2501
  if (t === "context_checkpoint") {
2499
- let t = pn(e);
2500
- return Dn({
2502
+ let t = mn(e);
2503
+ return On({
2501
2504
  id: e.EventId || String(Date.now() + Math.random()),
2502
2505
  timestamp: e.Timestamp || Date.now(),
2503
2506
  status: "completed",
@@ -2508,7 +2511,7 @@ function On(e) {
2508
2511
  });
2509
2512
  }
2510
2513
  if (t === "reasoning") {
2511
- let n = pn(e).text || ln(e.Metadata?.reasoning);
2514
+ let n = mn(e).text || un(e.Metadata?.reasoning);
2512
2515
  return n ? {
2513
2516
  id: e.EventId || String(Date.now() + Math.random()),
2514
2517
  role: "model",
@@ -2518,9 +2521,9 @@ function On(e) {
2518
2521
  eventType: t
2519
2522
  } : null;
2520
2523
  }
2521
- if (tn.has(t)) return Sn(e);
2524
+ if (nn.has(t)) return Cn(e);
2522
2525
  if (t !== "user_message" && t !== "assistant_message" && t !== "assistant_stream_snapshot") return null;
2523
- let n = pn(e), r = t === "assistant_message" ? mn(e) : {};
2526
+ let n = mn(e), r = t === "assistant_message" ? hn(e) : {};
2524
2527
  if (!n.text && !n.attachments?.length && !r.reasoning && !r.tools) return null;
2525
2528
  let i = String(e.Metadata?.response_id || e.Metadata?.ResponseId || "").trim(), a = String(e.Metadata?.trace_id || e.Metadata?.TraceId || "").trim(), o = String(e.Metadata?.root_span_id || e.Metadata?.rootSpanId || e.Metadata?.RootSpanId || "").trim();
2526
2529
  return {
@@ -2537,8 +2540,8 @@ function On(e) {
2537
2540
  ...r
2538
2541
  };
2539
2542
  }
2540
- function kn(e = []) {
2541
- let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set(), s = sn(e), c = [];
2543
+ function An(e = []) {
2544
+ let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = /* @__PURE__ */ new Set(), s = cn(e), c = [];
2542
2545
  for (let e of s) {
2543
2546
  let t = String(e?.EventId || "").trim();
2544
2547
  if (t) {
@@ -2549,30 +2552,30 @@ function kn(e = []) {
2549
2552
  }
2550
2553
  let l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Map();
2551
2554
  for (let e of c) {
2552
- if (e?.EventType !== "user_message" || _n(e)) {
2555
+ if (e?.EventType !== "user_message" || vn(e)) {
2553
2556
  if (e?.EventType === "assistant_message") {
2554
2557
  let t = String(e.InvocationId || "").trim();
2555
2558
  t && u.add(t);
2556
2559
  }
2557
- if (yn(e)) {
2560
+ if (bn(e)) {
2558
2561
  let t = String(e.InvocationId || "").trim();
2559
2562
  if (t) {
2560
2563
  let n = d.get(t);
2561
- (!n || bn(e) >= bn(n)) && d.set(t, e);
2564
+ (!n || xn(e) >= xn(n)) && d.set(t, e);
2562
2565
  }
2563
2566
  }
2564
2567
  continue;
2565
2568
  }
2566
- let t = vn(e);
2569
+ let t = yn(e);
2567
2570
  t && l.add(t);
2568
2571
  }
2569
2572
  let f = c.filter((e) => {
2570
- if (yn(e)) {
2573
+ if (bn(e)) {
2571
2574
  let t = String(e.InvocationId || "").trim();
2572
2575
  return t ? u.has(t) ? !1 : d.get(t) === e : !0;
2573
2576
  }
2574
- if (e?.EventType !== "user_message" || !_n(e)) return !0;
2575
- let t = vn(e);
2577
+ if (e?.EventType !== "user_message" || !vn(e)) return !0;
2578
+ let t = yn(e);
2576
2579
  return !t || !l.has(t);
2577
2580
  });
2578
2581
  for (let e of f) {
@@ -2590,7 +2593,7 @@ function kn(e = []) {
2590
2593
  let p = [], m = /* @__PURE__ */ new Map(), h = null, g = /* @__PURE__ */ new Map(), _ = (e) => {
2591
2594
  let t = String(e?.responseId || "").trim(), n = t ? m.get(t) : void 0;
2592
2595
  if (n !== void 0) {
2593
- p[n] = Tn(p[n], e);
2596
+ p[n] = En(p[n], e);
2594
2597
  return;
2595
2598
  }
2596
2599
  t && m.set(t, p.length), p.push(e);
@@ -2600,14 +2603,14 @@ function kn(e = []) {
2600
2603
  let n = String(e || "").trim();
2601
2604
  if (!n) return {};
2602
2605
  let r = g.get(n);
2603
- return r ? (g.delete(n), { tools: wn(r.tools, t.get(n)) }) : {};
2606
+ return r ? (g.delete(n), { tools: Tn(r.tools, t.get(n)) }) : {};
2604
2607
  };
2605
2608
  for (let e of f) {
2606
2609
  if (e.EventType === "run_status") continue;
2607
- let t = On(e);
2610
+ let t = kn(e);
2608
2611
  if (!t) continue;
2609
2612
  let n = String(e.InvocationId || "").trim();
2610
- if (n && (t.invocationId = n), tn.has(t.eventType)) {
2613
+ if (n && (t.invocationId = n), nn.has(t.eventType)) {
2611
2614
  let n = String(e.InvocationId || "").trim();
2612
2615
  if (!n) {
2613
2616
  v(), _(t);
@@ -2623,7 +2626,7 @@ function kn(e = []) {
2623
2626
  invocationId: n
2624
2627
  },
2625
2628
  timestamp: Math.max(Number(r?.timestamp || 0), Number(t.timestamp || 0)),
2626
- tools: Cn(r?.tools, t.tools)
2629
+ tools: wn(r?.tools, t.tools)
2627
2630
  });
2628
2631
  continue;
2629
2632
  }
@@ -2641,7 +2644,7 @@ function kn(e = []) {
2641
2644
  }
2642
2645
  let r = t.eventType === "assistant_message" || t.eventType === "assistant_stream_snapshot";
2643
2646
  if (r && h) {
2644
- let n = String(e.InvocationId || "").trim(), r = gn(n, t);
2647
+ let n = String(e.InvocationId || "").trim(), r = _n(n, t);
2645
2648
  if (t.eventType === "assistant_message" && n && a.has(r)) {
2646
2649
  h = null;
2647
2650
  continue;
@@ -2649,12 +2652,12 @@ function kn(e = []) {
2649
2652
  t.eventType === "assistant_message" && n && a.add(r), _({
2650
2653
  ...t,
2651
2654
  ...y(n),
2652
- reasoning: En(h.reasoning, t.reasoning)
2655
+ reasoning: Dn(h.reasoning, t.reasoning)
2653
2656
  }), h = null;
2654
2657
  continue;
2655
2658
  }
2656
2659
  if (v(), r) {
2657
- let n = String(e.InvocationId || "").trim(), r = gn(n, t);
2660
+ let n = String(e.InvocationId || "").trim(), r = _n(n, t);
2658
2661
  if (t.eventType === "assistant_message" && n && a.has(r)) continue;
2659
2662
  t.eventType === "assistant_message" && n && a.add(r), _({
2660
2663
  ...t,
@@ -2667,7 +2670,7 @@ function kn(e = []) {
2667
2670
  v();
2668
2671
  for (let [e, n] of g.entries()) _({
2669
2672
  ...n,
2670
- tools: wn(n.tools, t.get(e))
2673
+ tools: Tn(n.tools, t.get(e))
2671
2674
  });
2672
2675
  for (let [e, a] of t.entries()) {
2673
2676
  if (a !== "in_progress" || r.has(e) || !i.has(e)) continue;
@@ -2683,7 +2686,7 @@ function kn(e = []) {
2683
2686
  }
2684
2687
  return p;
2685
2688
  }
2686
- function An(e = [], t = []) {
2689
+ function jn(e = [], t = []) {
2687
2690
  let n = [], r = /* @__PURE__ */ new Set();
2688
2691
  for (let i of [...Array.isArray(e) ? e : [], ...Array.isArray(t) ? t : []]) {
2689
2692
  let e = String(i?.EventId || "").trim();
@@ -2698,25 +2701,25 @@ function An(e = [], t = []) {
2698
2701
  return Number.isFinite(n) && Number.isFinite(r) && n !== r ? n - r : Number(e?.Timestamp || 0) - Number(t?.Timestamp || 0);
2699
2702
  });
2700
2703
  }
2701
- function jn(e) {
2702
- return en.has(cn(e));
2704
+ function Mn(e) {
2705
+ return tn.has(ln(e));
2703
2706
  }
2704
2707
  //#endregion
2705
2708
  //#region src/utils/recovered-run.ts
2706
- function Mn(e, t) {
2709
+ function Nn(e, t) {
2707
2710
  let n = String(e || ""), r = String(t || "");
2708
2711
  return !n || !r || n.endsWith(r) ? n || r : r.startsWith(n) ? r : `${n}${r}`;
2709
2712
  }
2710
- function Nn(e, t) {
2713
+ function Pn(e, t) {
2711
2714
  return e ? t ? Object.fromEntries([...new Set([...Object.keys(e), ...Object.keys(t)])].map((n) => [n, {
2712
2715
  ...e[n] || {},
2713
2716
  ...t[n] || {}
2714
2717
  }])) : e : t;
2715
2718
  }
2716
- function Pn(e, t, n) {
2717
- let r = kn(t).filter((e) => e.role === "model").at(-1);
2719
+ function Fn(e, t, n) {
2720
+ let r = An(t).filter((e) => e.role === "model").at(-1);
2718
2721
  if (!r) return e;
2719
- let i = e.findIndex((e) => e.role === "model" && e.invocationId === n), a = i >= 0 ? e[i] : void 0, o = Mn(a?.content, r.content), s = Mn(a?.reasoning, r.reasoning), c = Nn(a?.tools, r.tools), l = {
2722
+ let i = e.findIndex((e) => e.role === "model" && e.invocationId === n), a = i >= 0 ? e[i] : void 0, o = Nn(a?.content, r.content), s = Nn(a?.reasoning, r.reasoning), c = Pn(a?.tools, r.tools), l = {
2720
2723
  ...a,
2721
2724
  ...r,
2722
2725
  id: a?.id || r.id || `${n}:assistant`,
@@ -2724,7 +2727,7 @@ function Pn(e, t, n) {
2724
2727
  content: o,
2725
2728
  reasoning: s,
2726
2729
  tools: c,
2727
- blocks: Bt({
2730
+ blocks: Vt({
2728
2731
  content: o,
2729
2732
  reasoning: s,
2730
2733
  tools: c
@@ -2734,14 +2737,14 @@ function Pn(e, t, n) {
2734
2737
  }
2735
2738
  //#endregion
2736
2739
  //#region src/core/run/dispatcher.ts
2737
- var Fn = new Set(["completed"]), In = new Set([
2740
+ var In = new Set(["completed"]), Ln = new Set([
2738
2741
  "failed",
2739
2742
  "error",
2740
2743
  "cancelled",
2741
2744
  "canceled",
2742
2745
  "aborted",
2743
2746
  "incomplete"
2744
- ]), Ln = /* @__PURE__ */ new Map();
2747
+ ]), Rn = /* @__PURE__ */ new Map();
2745
2748
  function $(e, t) {
2746
2749
  Y.getState().patchMessages((n) => n.some((t) => t.id === e) ? t ? n.map((n) => n.id === e ? {
2747
2750
  ...n,
@@ -2755,8 +2758,8 @@ function $(e, t) {
2755
2758
  invocationId: t
2756
2759
  }]);
2757
2760
  }
2758
- function Rn(e) {
2759
- let t = String(e || "").trim().toLowerCase(), n = Fn.has(t) ? "completed" : In.has(t) ? "error" : null;
2761
+ function zn(e) {
2762
+ let t = String(e || "").trim().toLowerCase(), n = In.has(t) ? "completed" : Ln.has(t) ? "error" : null;
2760
2763
  n && Y.getState().patchMessages((e) => e.map((e) => {
2761
2764
  if (!e.tools) return e;
2762
2765
  let t = !1, r = Object.fromEntries(Object.entries(e.tools).map(([e, r]) => r.status === "running" ? (t = !0, [e, {
@@ -2769,7 +2772,7 @@ function Rn(e) {
2769
2772
  } : e;
2770
2773
  }));
2771
2774
  }
2772
- function zn(e) {
2775
+ function Bn(e) {
2773
2776
  let t = !!(e.sessionId && U.getState().currentSessionId !== e.sessionId);
2774
2777
  if (t && ![
2775
2778
  "activity",
@@ -2808,21 +2811,21 @@ function zn(e) {
2808
2811
  $(e.messageId), r(e.sessionId), n.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2809
2812
  ...t,
2810
2813
  content: t.content + e.delta,
2811
- blocks: It(t.blocks, e.delta)
2814
+ blocks: Lt(t.blocks, e.delta)
2812
2815
  } : t));
2813
2816
  break;
2814
2817
  case "text_final":
2815
2818
  $(e.messageId), r(e.sessionId), n.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2816
2819
  ...t,
2817
2820
  content: e.text,
2818
- blocks: Lt(t.blocks, e.text)
2821
+ blocks: Rt(t.blocks, e.text)
2819
2822
  } : t));
2820
2823
  break;
2821
2824
  case "reasoning_delta":
2822
2825
  $(e.messageId), r(e.sessionId), n.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2823
2826
  ...t,
2824
2827
  reasoning: (t.reasoning || "") + e.delta,
2825
- blocks: Ft(t.blocks, e.delta)
2828
+ blocks: It(t.blocks, e.delta)
2826
2829
  } : t));
2827
2830
  break;
2828
2831
  case "tool_upsert":
@@ -2831,7 +2834,7 @@ function zn(e) {
2831
2834
  let n = t.tools?.[e.name], r = n?.approvalStatus === "approved" || n?.approvalStatus === "rejected", i = e.status, a = n?.approvalStatus === "rejected" ? "completed" : n?.status === "error" && i !== "error" ? "error" : i;
2832
2835
  return {
2833
2836
  ...t,
2834
- blocks: Rt(t.blocks, e.name, {
2837
+ blocks: zt(t.blocks, e.name, {
2835
2838
  args: e.args,
2836
2839
  status: a,
2837
2840
  extra: e.extra
@@ -2859,7 +2862,7 @@ function zn(e) {
2859
2862
  let n = w(e.output) ? "error" : "completed";
2860
2863
  return {
2861
2864
  ...t,
2862
- blocks: Rt(t.blocks, e.name, {
2865
+ blocks: zt(t.blocks, e.name, {
2863
2866
  output: e.output,
2864
2867
  status: n
2865
2868
  }),
@@ -2889,7 +2892,7 @@ function zn(e) {
2889
2892
  }, a = r ? n.status : "paused";
2890
2893
  return {
2891
2894
  ...t,
2892
- blocks: Rt(t.blocks, e.name, {
2895
+ blocks: zt(t.blocks, e.name, {
2893
2896
  args: e.args,
2894
2897
  status: a,
2895
2898
  extra: i
@@ -2947,7 +2950,7 @@ function zn(e) {
2947
2950
  }]);
2948
2951
  break;
2949
2952
  case "compaction": {
2950
- let t = `compaction-${Date.now()}`, r = e.phase === "start" ? "running" : e.phase === "failed" ? "failed" : "completed", i = Dn({
2953
+ let t = `compaction-${Date.now()}`, r = e.phase === "start" ? "running" : e.phase === "failed" ? "failed" : "completed", i = On({
2951
2954
  id: t,
2952
2955
  timestamp: Date.now(),
2953
2956
  status: r,
@@ -2966,7 +2969,7 @@ function zn(e) {
2966
2969
  case "stream_ended":
2967
2970
  i.getState().setSessionStreaming(e.sessionId, !1), t || Y.getState().patchMessages((e) => e.map((e) => e.role !== "model" || !e.blocks?.some((e) => e.status === "streaming") ? e : {
2968
2971
  ...e,
2969
- blocks: zt(e.blocks.map((e) => e.type === "text" && e.status === "streaming" ? {
2972
+ blocks: Bt(e.blocks.map((e) => e.type === "text" && e.status === "streaming" ? {
2970
2973
  ...e,
2971
2974
  status: "done"
2972
2975
  } : e))
@@ -3006,19 +3009,19 @@ function zn(e) {
3006
3009
  });
3007
3010
  break;
3008
3011
  case "terminal":
3009
- t || Rn(e.status);
3012
+ t || zn(e.status);
3010
3013
  break;
3011
3014
  case "stream_event": {
3012
3015
  let t = e.sessionId || e.event.SessionId, n = e.event.SeqId;
3013
3016
  typeof n == "number" && n > 0 && i.getState().setLastSeqId(n), t && i.getState().updateActivity({ sessionId: t });
3014
3017
  let r = String(e.event.InvocationId || "").trim();
3015
3018
  if (t && r) {
3016
- let n = `${t}:${r}`, i = An(Ln.get(n) || [], [e.event]);
3017
- Ln.set(n, i), Y.getState().patchMessages((e) => Pn(e, i, r)), jn(e.event) && Ln.delete(n);
3019
+ let n = `${t}:${r}`, i = jn(Rn.get(n) || [], [e.event]);
3020
+ Rn.set(n, i), Y.getState().patchMessages((e) => Fn(e, i, r)), Mn(e.event) && Rn.delete(n);
3018
3021
  }
3019
3022
  e.event.EventType === "run_checkpoint" && t && Q.getState().upsertSessionCheckpoint(t, e.event);
3020
3023
  {
3021
- let n = cn(e.event);
3024
+ let n = ln(e.event);
3022
3025
  n === "completed" ? i.getState().updateActivity({
3023
3026
  sessionId: t,
3024
3027
  status: "completed",
@@ -3118,13 +3121,13 @@ function zn(e) {
3118
3121
  }
3119
3122
  }
3120
3123
  }
3121
- function Bn() {
3122
- Ln.clear();
3124
+ function Vn() {
3125
+ Rn.clear();
3123
3126
  }
3124
3127
  //#endregion
3125
3128
  //#region src/hooks/useRunAgent.ts
3126
- function Vn(t) {
3127
- let n = L(/* @__PURE__ */ new Map()), r = L(() => {}), { agentId: a, apiFormats: o, agentFramework: s, selectedModel: c, selectedModelMetadata: l, thinkingMode: u, permissionMode: d, currentSessionIdRef: f, queuedDraftRef: p, onRunSettled: m, uiCapabilities: h } = t, g = F((t) => {
3129
+ function Hn(t) {
3130
+ let n = R(/* @__PURE__ */ new Map()), r = R(() => {}), { agentId: a, apiFormats: o, agentFramework: s, selectedModel: c, selectedModelMetadata: l, thinkingMode: u, permissionMode: d, currentSessionIdRef: f, queuedDraftRef: p, onRunSettled: m, uiCapabilities: h } = t, g = F((t) => {
3128
3131
  t.updateConfig({
3129
3132
  agentId: a,
3130
3133
  apiFormats: o,
@@ -3147,7 +3150,7 @@ function Vn(t) {
3147
3150
  h
3148
3151
  ]), _ = F((e) => {
3149
3152
  let r = String(e || "new-session"), i = n.current.get(r);
3150
- return i ? g(i) : (i = new Mt(t.api), g(i), i.subscribe(zn), n.current.set(r, i)), i;
3153
+ return i ? g(i) : (i = new Nt(t.api), g(i), i.subscribe(Bn), n.current.set(r, i)), i;
3151
3154
  }, [t.api, g]);
3152
3155
  I(() => {
3153
3156
  for (let e of n.current.values()) g(e);
@@ -3157,7 +3160,7 @@ function Vn(t) {
3157
3160
  }, [p]), y = F((e) => {
3158
3161
  let t = f.current, o = _(t);
3159
3162
  if (o.stage !== "idle") return !1;
3160
- Bn(), T.getState().setMobileActionsOpen(!1), i.getState().setSessionStreaming(t, !0);
3163
+ Vn(), T.getState().setMobileActionsOpen(!1), i.getState().setSessionStreaming(t, !0);
3161
3164
  let s = e.text.trim(), c = String(Date.now()), l = e.attachments.map((e) => ({
3162
3165
  name: e.name,
3163
3166
  url: URL.createObjectURL(e),
@@ -3180,7 +3183,7 @@ function Vn(t) {
3180
3183
  U.getState().upsertSessions([{
3181
3184
  SessionId: e,
3182
3185
  UpdatedAt: (/* @__PURE__ */ new Date()).toISOString()
3183
- }]), f.current = e, De(a, e), U.getState().setCurrentSessionId(e), t !== e && n.current.set(e, o);
3186
+ }]), f.current = e, Oe(a, e), U.getState().setCurrentSessionId(e), t !== e && n.current.set(e, o);
3184
3187
  },
3185
3188
  onSessionUpsert: () => {},
3186
3189
  onSettled: (e) => {
@@ -3236,7 +3239,7 @@ function Vn(t) {
3236
3239
  }, [f, _]), C = F((e) => {
3237
3240
  let t = _(e.sessionId);
3238
3241
  if (t.stage !== "idle") return !1;
3239
- Bn(), T.getState().setMobileActionsOpen(!1), i.getState().setSessionStreaming(e.sessionId, !0);
3242
+ Vn(), T.getState().setMobileActionsOpen(!1), i.getState().setSessionStreaming(e.sessionId, !0);
3240
3243
  let n = t.resumeCheckpoint({
3241
3244
  ...e,
3242
3245
  onSettled: (e) => {
@@ -3245,7 +3248,7 @@ function Vn(t) {
3245
3248
  });
3246
3249
  return n || i.getState().setSessionStreaming(e.sessionId, !1), n;
3247
3250
  }, [_, m]), w = F(() => {
3248
- Bn();
3251
+ Vn();
3249
3252
  }, []);
3250
3253
  return {
3251
3254
  submitDraft: b,
@@ -3301,7 +3304,7 @@ function Vn(t) {
3301
3304
  }
3302
3305
  //#endregion
3303
3306
  //#region src/hooks/useFeedback.ts
3304
- function Hn(e) {
3307
+ function Un(e) {
3305
3308
  let { agentId: t, currentSessionId: n, isStreaming: r, api: i, submitDraft: a } = e;
3306
3309
  return {
3307
3310
  submitResponseFeedback: F(async (e) => {
@@ -3323,12 +3326,12 @@ function Hn(e) {
3323
3326
  rating: e.rating,
3324
3327
  comment: e.comment || ""
3325
3328
  })))?.Feedback);
3326
- r && Y.getState().patchMessages((t) => re(t, {
3329
+ r && Y.getState().patchMessages((t) => ie(t, {
3327
3330
  messageId: e.message.id,
3328
3331
  feedback: r
3329
3332
  }));
3330
3333
  } catch (t) {
3331
- console.error("Failed to submit response feedback:", t), Y.getState().patchMessages((t) => k(t, {
3334
+ console.error("Failed to submit response feedback:", t), Y.getState().patchMessages((t) => re(t, {
3332
3335
  messageId: e.message.id,
3333
3336
  previousFeedback: r
3334
3337
  }));
@@ -3349,7 +3352,7 @@ function Hn(e) {
3349
3352
  message: e
3350
3353
  }));
3351
3354
  } catch (t) {
3352
- console.error("Failed to delete response feedback:", t), Y.getState().patchMessages((t) => k(t, {
3355
+ console.error("Failed to delete response feedback:", t), Y.getState().patchMessages((t) => re(t, {
3353
3356
  messageId: e.id,
3354
3357
  previousFeedback: r
3355
3358
  }));
@@ -3388,19 +3391,19 @@ function Hn(e) {
3388
3391
  }
3389
3392
  //#endregion
3390
3393
  //#region src/utils/messages.js
3391
- var Un = {
3394
+ var Wn = {
3392
3395
  running: "running",
3393
3396
  completed: "completed",
3394
3397
  failed: "error",
3395
3398
  paused: "paused",
3396
3399
  approved: "completed",
3397
3400
  denied: "completed"
3398
- }, Wn = {
3401
+ }, Gn = {
3399
3402
  paused: "pending",
3400
3403
  approved: "approved",
3401
3404
  denied: "rejected"
3402
3405
  };
3403
- function Gn(e) {
3406
+ function Kn(e) {
3404
3407
  if (typeof e == "number") return e;
3405
3408
  if (typeof e == "string") {
3406
3409
  let t = Date.parse(e);
@@ -3408,7 +3411,7 @@ function Gn(e) {
3408
3411
  }
3409
3412
  return Date.now();
3410
3413
  }
3411
- function Kn(e) {
3414
+ function qn(e) {
3412
3415
  if (typeof e == "string") return e;
3413
3416
  if (e && typeof e == "object") {
3414
3417
  if (typeof e.text == "string") return e.text;
@@ -3416,23 +3419,23 @@ function Kn(e) {
3416
3419
  }
3417
3420
  return "";
3418
3421
  }
3419
- function qn(e) {
3422
+ function Jn(e) {
3420
3423
  let t = {}, n = /* @__PURE__ */ new Map();
3421
3424
  for (let t of e ?? []) t?.Name && n.set(t.Name, (n.get(t.Name) || 0) + 1);
3422
3425
  for (let r of e ?? []) {
3423
3426
  if (!r?.Name) continue;
3424
- let e = Un[String(r.Status ?? "completed").toLowerCase()] ?? "completed", i = {
3427
+ let e = Wn[String(r.Status ?? "completed").toLowerCase()] ?? "completed", i = {
3425
3428
  name: r.Name,
3426
3429
  args: r.Args === void 0 ? "" : typeof r.Args == "string" ? r.Args : JSON.stringify(r.Args),
3427
3430
  status: e
3428
3431
  };
3429
- r.Result !== void 0 && (i.output = typeof r.Result == "string" ? r.Result : JSON.stringify(r.Result)), r.ApprovalRequestId && (i.approvalRequestId = r.ApprovalRequestId, i.approvalStatus = Wn[String(r.Status ?? "paused").toLowerCase()] ?? "pending", i.approvalProtocol = String(r.Protocol ?? "").toLowerCase() === "ag-ui" ? "ag-ui" : "responses", r.ApprovalMessage && (i.approvalMessage = String(r.ApprovalMessage)), r.ApprovalLevel && (i.approvalLevel = String(r.ApprovalLevel))), r.ToolCallId && (i.previousResponseId = r.ToolCallId);
3432
+ r.Result !== void 0 && (i.output = typeof r.Result == "string" ? r.Result : JSON.stringify(r.Result)), r.ApprovalRequestId && (i.approvalRequestId = r.ApprovalRequestId, i.approvalStatus = Gn[String(r.Status ?? "paused").toLowerCase()] ?? "pending", i.approvalProtocol = String(r.Protocol ?? "").toLowerCase() === "ag-ui" ? "ag-ui" : "responses", r.ApprovalMessage && (i.approvalMessage = String(r.ApprovalMessage)), r.ApprovalLevel && (i.approvalLevel = String(r.ApprovalLevel))), r.ToolCallId && (i.previousResponseId = r.ToolCallId);
3430
3433
  let a = n.get(r.Name) > 1 && r.ToolCallId ? r.ToolCallId : r.Name;
3431
3434
  t[a] = i;
3432
3435
  }
3433
3436
  return t;
3434
3437
  }
3435
- function Jn(e) {
3438
+ function Yn(e) {
3436
3439
  if (Array.isArray(e)) return e.map((e) => ({
3437
3440
  name: e.name || "",
3438
3441
  url: e.url || "",
@@ -3440,10 +3443,10 @@ function Jn(e) {
3440
3443
  fileUri: e.file_uri
3441
3444
  }));
3442
3445
  }
3443
- function Yn(e) {
3446
+ function Xn(e) {
3444
3447
  return e == null ? "" : typeof e == "string" ? e : JSON.stringify(e);
3445
3448
  }
3446
- function Xn(e) {
3449
+ function Zn(e) {
3447
3450
  if (!(!Array.isArray(e) || !e.length)) return e.flatMap((e, t) => {
3448
3451
  let n = String(e?.Type || "").toLowerCase(), r = e?.SeqId ?? t;
3449
3452
  if (n === "thinking" || n === "text") {
@@ -3456,36 +3459,36 @@ function Xn(e) {
3456
3459
  }] : [];
3457
3460
  }
3458
3461
  if (n !== "tool") return [];
3459
- let i = Un[String(e?.Status || "completed").toLowerCase()] ?? "completed";
3462
+ let i = Wn[String(e?.Status || "completed").toLowerCase()] ?? "completed";
3460
3463
  return [{
3461
3464
  id: `history-tool-${r}`,
3462
3465
  type: "tool",
3463
3466
  toolName: String(e?.Name || "tool"),
3464
- args: Yn(e?.Args),
3465
- ...e?.Result === void 0 ? {} : { output: Yn(e.Result) },
3467
+ args: Xn(e?.Args),
3468
+ ...e?.Result === void 0 ? {} : { output: Xn(e.Result) },
3466
3469
  status: i,
3467
3470
  ...e?.ToolCallId ? { extra: { previousResponseId: String(e.ToolCallId) } } : {}
3468
3471
  }];
3469
3472
  });
3470
3473
  }
3471
- function Zn(e) {
3472
- let t = e.Role === "assistant" ? "model" : e.Role || "user", n = e.ToolEvents?.length ? qn(e.ToolEvents) : void 0, r = Jn(e.Attachments), i = Xn(e.Blocks), a = e.Reasoning?.length ? e.Reasoning.map((e) => e.text).join("") : void 0, o = {
3474
+ function Qn(e) {
3475
+ let t = e.Role === "assistant" ? "model" : e.Role || "user", n = e.ToolEvents?.length ? Jn(e.ToolEvents) : void 0, r = Yn(e.Attachments), i = Zn(e.Blocks), a = e.Reasoning?.length ? e.Reasoning.map((e) => e.text).join("") : void 0, o = {
3473
3476
  id: e.MessageId || `msg-${e.SeqId ?? Math.random().toString(36).slice(2)}`,
3474
3477
  role: t,
3475
- content: Kn(e.Content),
3476
- timestamp: Gn(e.Timestamp),
3478
+ content: qn(e.Content),
3479
+ timestamp: Kn(e.Timestamp),
3477
3480
  eventType: t === "user" ? "user_message" : "assistant_message",
3478
3481
  reasoning: a,
3479
3482
  tools: n,
3480
3483
  attachments: r
3481
3484
  };
3482
- return t === "model" && (o.blocks = i ?? Bt({
3485
+ return t === "model" && (o.blocks = i ?? Vt({
3483
3486
  reasoning: a,
3484
3487
  tools: n,
3485
3488
  content: o.content
3486
3489
  })), e.MessageId && (o.eventId = e.MessageId), e.InvocationId && (o.invocationId = e.InvocationId), e.ResponseId && (o.responseId = e.ResponseId), e.TraceId && (o.traceId = e.TraceId), e.RootSpanId && (o.rootSpanId = e.RootSpanId), o;
3487
3490
  }
3488
- function Qn(e) {
3491
+ function $n(e) {
3489
3492
  return Array.isArray(e.Activities) ? e.Activities.flatMap((t, n) => {
3490
3493
  let r = String(t?.SurfaceId || "");
3491
3494
  if (!r) return [];
@@ -3494,7 +3497,7 @@ function Qn(e) {
3494
3497
  id: t.MessageId || `a2ui-${e.MessageId || e.SeqId || "message"}-${n}`,
3495
3498
  role: "a2ui",
3496
3499
  content: "",
3497
- timestamp: Gn(e.Timestamp),
3500
+ timestamp: Kn(e.Timestamp),
3498
3501
  aguiActivity: {
3499
3502
  surfaceId: r,
3500
3503
  messages: _(a)
@@ -3502,36 +3505,36 @@ function Qn(e) {
3502
3505
  }] : [];
3503
3506
  }) : [];
3504
3507
  }
3505
- function $n(e) {
3506
- return e.flatMap((e) => [Zn(e), ...Qn(e)]);
3508
+ function er(e) {
3509
+ return e.flatMap((e) => [Qn(e), ...$n(e)]);
3507
3510
  }
3508
3511
  //#endregion
3509
3512
  //#region src/hooks/useSessionLifecycle.ts
3510
- var er = 500, tr = 30, nr = 50, rr = 1800 * 1e3;
3511
- function ir(e) {
3513
+ var tr = 500, nr = 30, rr = 50, ir = 1800 * 1e3;
3514
+ function ar(e) {
3512
3515
  return new Promise((t) => {
3513
3516
  if (e.aborted) {
3514
3517
  t();
3515
3518
  return;
3516
3519
  }
3517
- let n = globalThis.setTimeout(t, er);
3520
+ let n = globalThis.setTimeout(t, tr);
3518
3521
  e.addEventListener("abort", () => {
3519
3522
  globalThis.clearTimeout(n), t();
3520
3523
  }, { once: !0 });
3521
3524
  });
3522
3525
  }
3523
- var ar = new Set([
3526
+ var or = new Set([
3524
3527
  "in_progress",
3525
3528
  "running",
3526
3529
  "resuming",
3527
3530
  "starting"
3528
3531
  ]);
3529
- function or(e) {
3532
+ function sr(e) {
3530
3533
  let t = e.ActiveRunUpdatedAt || e.UpdatedAt, n = typeof t == "number" ? t > 1e11 ? t : t * 1e3 : Date.parse(String(t || ""));
3531
- return Number.isFinite(n) && n <= Date.now() + rr && Date.now() - n <= rr;
3534
+ return Number.isFinite(n) && n <= Date.now() + ir && Date.now() - n <= ir;
3532
3535
  }
3533
- function sr(e) {
3534
- let t = cn(e);
3536
+ function cr(e) {
3537
+ let t = ln(e);
3535
3538
  return t ? t === "completed" ? {
3536
3539
  status: "completed",
3537
3540
  phase: "后台长任务已完成"
@@ -3549,8 +3552,8 @@ function sr(e) {
3549
3552
  phase: "后台长任务恢复失败"
3550
3553
  } : null : null;
3551
3554
  }
3552
- function cr(e) {
3553
- let { agentId: t, api: n, isMobile: r, resetCompaction: a, uiCapabilities: o, disconnectRun: s } = e, c = L(e.currentSessionId), l = L(e.agentId), u = L(null), d = L(0), f = L(/* @__PURE__ */ new Map()), m = L(null), g = L(null), _ = F(async (e, t, r) => {
3555
+ function lr(e) {
3556
+ let { agentId: t, api: n, isMobile: r, resetCompaction: a, uiCapabilities: o, disconnectRun: s } = e, c = R(e.currentSessionId), l = R(e.agentId), u = R(null), d = R(0), f = R(/* @__PURE__ */ new Map()), m = R(null), g = R(null), _ = F(async (e, t, r) => {
3554
3557
  let i = r.filter((e) => p(e, !1, !1));
3555
3558
  if (!i.length) return;
3556
3559
  let a = await Promise.all(i.map(async (r) => {
@@ -3603,10 +3606,10 @@ function cr(e) {
3603
3606
  let { value: t, done: n } = await l.read();
3604
3607
  if (n) break;
3605
3608
  d += u.decode(t, { stream: !0 });
3606
- let c = ht(d);
3609
+ let c = gt(d);
3607
3610
  d = c.remainder;
3608
3611
  for (let t of c.chunks) if (t.trim()) {
3609
- for (let n of mt(t)) {
3612
+ for (let n of ht(t)) {
3610
3613
  if (n.eventName === "__ping__") {
3611
3614
  i.getState().updateActivity({
3612
3615
  sessionId: e.sessionId,
@@ -3624,12 +3627,12 @@ function cr(e) {
3624
3627
  if (!s()) break;
3625
3628
  if (t.InvocationId && t.InvocationId !== e.invocationId) continue;
3626
3629
  let c = Number(t.SeqId || 0);
3627
- Number.isFinite(c) && (o = Math.max(o, c)), zn({
3630
+ Number.isFinite(c) && (o = Math.max(o, c)), Bn({
3628
3631
  type: "stream_event",
3629
3632
  sessionId: e.sessionId,
3630
3633
  event: t
3631
- }), a ||= jn(t), r ||= a;
3632
- let l = sr(t);
3634
+ }), a ||= Mn(t), r ||= a;
3635
+ let l = cr(t);
3633
3636
  if (l && i.getState().updateActivity({
3634
3637
  sessionId: e.sessionId,
3635
3638
  status: l.status,
@@ -3652,9 +3655,9 @@ function cr(e) {
3652
3655
  countEvent: !1
3653
3656
  });
3654
3657
  }
3655
- !a && s() && await ir(t.signal);
3658
+ !a && s() && await ar(t.signal);
3656
3659
  }
3657
- a && s() && zn({
3660
+ a && s() && Bn({
3658
3661
  type: "stream_ended",
3659
3662
  sessionId: e.sessionId
3660
3663
  });
@@ -3671,18 +3674,18 @@ function cr(e) {
3671
3674
  U.getState().setCurrentSessionId(e), U.getState().setSessionInitialMessageHistoryLoading(e, !0), a(), u.current?.abort(), r && T.getState().setMobileSidebarOpen(!1);
3672
3675
  try {
3673
3676
  let t = await n.listSessionMessages(e, {
3674
- limit: nr,
3677
+ limit: rr,
3675
3678
  includeReasoning: !0,
3676
3679
  includeToolEvents: !0,
3677
3680
  includeAttachments: !0
3678
3681
  });
3679
3682
  if (!f()) return;
3680
- let r = $n(t.Messages);
3683
+ let r = er(t.Messages);
3681
3684
  Y.getState().setMessages(r), U.getState().setSessionMessageHistory(e, {
3682
3685
  nextCursor: t.NextCursor,
3683
3686
  hasMore: t.HasMore
3684
3687
  }), _(l.current, e, r);
3685
- let i = t.LatestSeqId || 0, a = z.getState().capabilities || o;
3688
+ let i = t.LatestSeqId || 0, a = B.getState().capabilities || o;
3686
3689
  if (a.RunLifecycle.Enabled && a.RunLifecycle.Checkpoints ? (n.listSessionCheckpoints({
3687
3690
  agentId: l.current,
3688
3691
  sessionId: e
@@ -3701,7 +3704,7 @@ function cr(e) {
3701
3704
  let t = await n.getSession(e);
3702
3705
  if (!f()) return;
3703
3706
  let r = String(t.ActiveRunStatus || "").toLowerCase();
3704
- t.ActiveInvocationId && (ar.has(r) || r === "" && or(t)) && v({
3707
+ t.ActiveInvocationId && (or.has(r) || r === "" && sr(t)) && v({
3705
3708
  sessionId: e,
3706
3709
  invocationId: t.ActiveInvocationId,
3707
3710
  afterSeqId: i
@@ -3728,19 +3731,19 @@ function cr(e) {
3728
3731
  r.sessionsAgentId && r.sessionsAgentId !== e && r.resetSessionPagination(e), U.getState().setLoadingSessions(!0);
3729
3732
  let a = await n.listSessions(e, {
3730
3733
  page: 1,
3731
- pageSize: tr
3734
+ pageSize: nr
3732
3735
  });
3733
3736
  U.getState().upsertSessions(a.Sessions || [], {
3734
3737
  agentId: e,
3735
3738
  total: Number(a.Total ?? a.Sessions?.length ?? 0),
3736
3739
  page: Number(a.Page ?? 1),
3737
- pageSize: Number(a.PageSize ?? tr),
3740
+ pageSize: Number(a.PageSize ?? nr),
3738
3741
  replace: !0
3739
3742
  });
3740
- let o = U.getState().sessions, l = c.current, f = Oe(o, l || t || Ee(e));
3743
+ let o = U.getState().sessions, l = c.current, f = ke(o, l || t || De(e));
3741
3744
  f && f !== l ? y(f) : !f && l && (d.current += 1, u.current?.abort(), s?.(), c.current = null, U.getState().setCurrentSessionId(null), Y.getState().setMessages([]), U.getState().clearSessionMessageHistory(), Q.getState().clearSessionCheckpoints(), i.getState().setCurrentRunId(""), i.getState().clearActivity());
3742
3745
  } catch (e) {
3743
- if (e instanceof G) return;
3746
+ if (e instanceof K) return;
3744
3747
  console.error("Failed to fetch sessions:", e);
3745
3748
  } finally {
3746
3749
  U.getState().setLoadingSessions(!1);
@@ -3752,13 +3755,13 @@ function cr(e) {
3752
3755
  ]), x = F(async () => {
3753
3756
  let e = U.getState();
3754
3757
  if (e.isLoadingSessions || !e.hasMoreSessions) return;
3755
- let t = pe({
3758
+ let t = me({
3756
3759
  total: e.sessionsTotal,
3757
- pageSize: e.sessionsPageSize || tr,
3760
+ pageSize: e.sessionsPageSize || nr,
3758
3761
  loadedPages: e.loadedPages
3759
3762
  });
3760
3763
  if (!t) return;
3761
- let r = e.sessionsPageSize || tr, i = e.sessionsAgentId || l.current || "default-agent";
3764
+ let r = e.sessionsPageSize || nr, i = e.sessionsAgentId || l.current || "default-agent";
3762
3765
  try {
3763
3766
  U.getState().setLoadingSessions(!0);
3764
3767
  let a = await n.listSessions(i, {
@@ -3772,7 +3775,7 @@ function cr(e) {
3772
3775
  pageSize: Number(a.PageSize ?? r)
3773
3776
  });
3774
3777
  } catch (e) {
3775
- if (e instanceof G) return;
3778
+ if (e instanceof K) return;
3776
3779
  console.error("Failed to load more sessions:", e);
3777
3780
  } finally {
3778
3781
  U.getState().setLoadingSessions(!1);
@@ -3792,7 +3795,7 @@ function cr(e) {
3792
3795
  UpdatedAt: (/* @__PURE__ */ new Date()).toISOString()
3793
3796
  }]), c.current = e, U.getState().setCurrentSessionId(e), Y.getState().setMessages([]), U.getState().clearSessionMessageHistory(e), Q.getState().setSessionCheckpoints(e, []), Q.getState().setSessionToolReceipts(e, []), i.getState().setCurrentRunId(""), i.getState().clearActivity(), r && (T.getState().setMobileSidebarOpen(!1), T.getState().setMobileActionsOpen(!1)), b(t, e));
3794
3797
  } catch (e) {
3795
- if (e instanceof G) return;
3798
+ if (e instanceof K) return;
3796
3799
  console.error("Failed to create session:", e);
3797
3800
  }
3798
3801
  }, [
@@ -3804,7 +3807,7 @@ function cr(e) {
3804
3807
  try {
3805
3808
  await n.deleteSession(e), U.getState().removeSession(e), U.getState().clearSessionMessageHistory(e), c.current === e && (d.current += 1, u.current?.abort(), s?.(), c.current = null, Y.getState().setMessages([]), Q.getState().clearSessionCheckpoints(e), U.getState().setCurrentSessionId(null), i.getState().setCurrentRunId(""), i.getState().clearActivity(), b(t));
3806
3809
  } catch (e) {
3807
- if (e instanceof G) return;
3810
+ if (e instanceof K) return;
3808
3811
  console.error("Failed to delete session", e);
3809
3812
  }
3810
3813
  }, [
@@ -3826,19 +3829,19 @@ function cr(e) {
3826
3829
  U.getState().setSessionMessageHistoryLoading(e, !0);
3827
3830
  let a = await n.listSessionMessages(e, {
3828
3831
  beforeSeqId: t.nextCursor,
3829
- limit: nr,
3832
+ limit: rr,
3830
3833
  includeReasoning: !0,
3831
3834
  includeToolEvents: !0,
3832
3835
  includeAttachments: !0
3833
3836
  });
3834
3837
  if (c.current !== e || d.current !== r || f.current.get(e) !== i) return;
3835
- let o = $n(a.Messages), s = new Set(o.map((e) => e.id)), u = [...o, ...Y.getState().messages.filter((e) => !s.has(e.id))];
3838
+ let o = er(a.Messages), s = new Set(o.map((e) => e.id)), u = [...o, ...Y.getState().messages.filter((e) => !s.has(e.id))];
3836
3839
  Y.getState().setMessages(u), U.getState().setSessionMessageHistory(e, {
3837
3840
  nextCursor: a.NextCursor,
3838
3841
  hasMore: a.HasMore
3839
3842
  }), _(l.current, e, o);
3840
3843
  } catch (e) {
3841
- e instanceof G || console.error("Failed to load older session messages:", e);
3844
+ e instanceof K || console.error("Failed to load older session messages:", e);
3842
3845
  } finally {
3843
3846
  f.current.get(e) === i && (f.current.delete(e), U.getState().setSessionMessageHistoryLoading(e, !1));
3844
3847
  }
@@ -3852,141 +3855,141 @@ function cr(e) {
3852
3855
  }
3853
3856
  //#endregion
3854
3857
  //#region src/components/chat/ConnectedSidebar.tsx
3855
- function lr({ uiCapabilities: e, createNewSession: t, deleteSession: i, loadSession: o, loadMoreSessions: s }) {
3856
- let l = U((e) => e.sessions), u = U((e) => e.currentSessionId), f = U((e) => e.pinnedSessionIds), p = U((e) => e.isLoadingSessions), m = U((e) => e.hasMoreSessions), h = T((e) => e.sidebarOpen), _ = T((e) => e.mobileSidebarOpen), { isMobile: y } = Ie(), b = n(e), { desktopSidebarVisible: x } = be({
3857
- isMobile: y,
3858
- desktopSidebarOpen: h,
3859
- mobileSidebarOpen: _
3858
+ function ur({ uiCapabilities: e, createNewSession: t, deleteSession: i, loadSession: a, loadMoreSessions: o }) {
3859
+ let s = U((e) => e.sessions), l = U((e) => e.currentSessionId), u = U((e) => e.pinnedSessionIds), f = U((e) => e.isLoadingSessions), p = U((e) => e.hasMoreSessions), m = T((e) => e.sidebarOpen), h = T((e) => e.mobileSidebarOpen), { isMobile: _ } = Ie(), y = n(e), { desktopSidebarVisible: b } = xe({
3860
+ isMobile: _,
3861
+ desktopSidebarOpen: m,
3862
+ mobileSidebarOpen: h
3860
3863
  });
3861
- return b ? y ? /* @__PURE__ */ M(a, {
3862
- open: _,
3864
+ return y ? _ ? /* @__PURE__ */ N(d, {
3865
+ open: h,
3863
3866
  onOpenChange: (e) => T.getState().setMobileSidebarOpen(e),
3864
- children: /* @__PURE__ */ N(d, {
3867
+ children: /* @__PURE__ */ P(S, {
3865
3868
  side: "left",
3866
3869
  className: "w-[88vw] max-w-sm border-slate-200 bg-slate-50 p-0 dark:border-slate-800 dark:bg-slate-950",
3867
3870
  children: [
3868
- /* @__PURE__ */ M(r, {
3871
+ /* @__PURE__ */ N(x, {
3869
3872
  className: "sr-only",
3870
3873
  children: "历史记录"
3871
3874
  }),
3872
- /* @__PURE__ */ M(S, {
3875
+ /* @__PURE__ */ N(r, {
3873
3876
  className: "sr-only",
3874
3877
  children: "查看和切换历史对话。"
3875
3878
  }),
3876
- /* @__PURE__ */ M(g, {
3877
- sessions: l,
3878
- currentSessionId: u,
3879
+ /* @__PURE__ */ N(g, {
3880
+ sessions: s,
3881
+ currentSessionId: l,
3879
3882
  onCreateNewSession: t,
3880
- onSelectSession: o,
3883
+ onSelectSession: a,
3881
3884
  onDeleteSession: (e, t) => {
3882
3885
  t.stopPropagation(), i(e);
3883
3886
  },
3884
3887
  onTogglePinSession: (e, t) => {
3885
3888
  t.stopPropagation(), U.getState().togglePinnedSession(e);
3886
3889
  },
3887
- onLoadMoreSessions: s,
3890
+ onLoadMoreSessions: o,
3888
3891
  sessionTitle: v,
3889
- pinnedSessionIds: f,
3890
- hasMoreSessions: m,
3891
- isLoadingSessions: p
3892
+ pinnedSessionIds: u,
3893
+ hasMoreSessions: p,
3894
+ isLoadingSessions: f
3892
3895
  })
3893
3896
  ]
3894
3897
  })
3895
- }) : /* @__PURE__ */ M("aside", {
3896
- className: c("flex-shrink-0 overflow-hidden border-r border-slate-200 transition-[width] duration-300 ease-in-out dark:border-slate-800", x ? "w-[280px]" : "w-0 border-r-0"),
3897
- children: /* @__PURE__ */ M(g, {
3898
- sessions: l,
3899
- currentSessionId: u,
3898
+ }) : /* @__PURE__ */ N("aside", {
3899
+ className: c("flex-shrink-0 overflow-hidden border-r border-slate-200 transition-[width] duration-300 ease-in-out dark:border-slate-800", b ? "w-[280px]" : "w-0 border-r-0"),
3900
+ children: /* @__PURE__ */ N(g, {
3901
+ sessions: s,
3902
+ currentSessionId: l,
3900
3903
  onCreateNewSession: t,
3901
- onSelectSession: o,
3904
+ onSelectSession: a,
3902
3905
  onDeleteSession: (e, t) => {
3903
3906
  t.stopPropagation(), i(e);
3904
3907
  },
3905
3908
  onTogglePinSession: (e, t) => {
3906
3909
  t.stopPropagation(), U.getState().togglePinnedSession(e);
3907
3910
  },
3908
- onLoadMoreSessions: s,
3911
+ onLoadMoreSessions: o,
3909
3912
  sessionTitle: v,
3910
- pinnedSessionIds: f,
3911
- hasMoreSessions: m,
3912
- isLoadingSessions: p
3913
+ pinnedSessionIds: u,
3914
+ hasMoreSessions: p,
3915
+ isLoadingSessions: f
3913
3916
  })
3914
3917
  }) : null;
3915
3918
  }
3916
3919
  //#endregion
3917
3920
  //#region src/components/ui/dialog.tsx
3918
- var ur = R.Root, dr = R.Portal, fr = P.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ M(R.Overlay, {
3921
+ var dr = z.Root, fr = z.Portal, pr = oe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ N(z.Overlay, {
3919
3922
  ref: n,
3920
3923
  className: c("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),
3921
3924
  ...t
3922
3925
  }));
3923
- fr.displayName = R.Overlay.displayName;
3924
- var pr = P.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ N(dr, { children: [/* @__PURE__ */ M(fr, {}), /* @__PURE__ */ N(R.Content, {
3926
+ pr.displayName = z.Overlay.displayName;
3927
+ var mr = oe.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ P(fr, { children: [/* @__PURE__ */ N(pr, {}), /* @__PURE__ */ P(z.Content, {
3925
3928
  ref: r,
3926
3929
  className: c("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),
3927
3930
  ...n,
3928
- children: [t, /* @__PURE__ */ N(R.Close, {
3931
+ children: [t, /* @__PURE__ */ P(z.Close, {
3929
3932
  className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",
3930
- children: [/* @__PURE__ */ M(A, { className: "h-4 w-4" }), /* @__PURE__ */ M("span", {
3933
+ children: [/* @__PURE__ */ N(j, { className: "h-4 w-4" }), /* @__PURE__ */ N("span", {
3931
3934
  className: "sr-only",
3932
3935
  children: "Close"
3933
3936
  })]
3934
3937
  })]
3935
3938
  })] }));
3936
- pr.displayName = R.Content.displayName;
3937
- var mr = ({ className: e, ...t }) => /* @__PURE__ */ M("div", {
3939
+ mr.displayName = z.Content.displayName;
3940
+ var hr = ({ className: e, ...t }) => /* @__PURE__ */ N("div", {
3938
3941
  className: c("flex flex-col space-y-1.5 text-center sm:text-left", e),
3939
3942
  ...t
3940
3943
  });
3941
- mr.displayName = "DialogHeader";
3942
- var hr = ({ className: e, ...t }) => /* @__PURE__ */ M("div", {
3944
+ hr.displayName = "DialogHeader";
3945
+ var gr = ({ className: e, ...t }) => /* @__PURE__ */ N("div", {
3943
3946
  className: c("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", e),
3944
3947
  ...t
3945
3948
  });
3946
- hr.displayName = "DialogFooter";
3947
- var gr = P.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ M(R.Title, {
3949
+ gr.displayName = "DialogFooter";
3950
+ var _r = oe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ N(z.Title, {
3948
3951
  ref: n,
3949
3952
  className: c("text-lg font-semibold leading-none tracking-tight", e),
3950
3953
  ...t
3951
3954
  }));
3952
- gr.displayName = R.Title.displayName;
3953
- var _r = P.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ M(R.Description, {
3955
+ _r.displayName = z.Title.displayName;
3956
+ var vr = oe.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ N(z.Description, {
3954
3957
  ref: n,
3955
3958
  className: c("text-sm text-muted-foreground", e),
3956
3959
  ...t
3957
3960
  }));
3958
- _r.displayName = R.Description.displayName;
3961
+ vr.displayName = z.Description.displayName;
3959
3962
  //#endregion
3960
3963
  //#region src/components/chat/AttachmentPreview.tsx
3961
- function vr(e, t) {
3964
+ function yr(e, t) {
3962
3965
  if (!(!t || e)) return {
3963
3966
  width: `min(${t.width}px, calc(100vw - 5rem))`,
3964
3967
  height: `min(${t.height}px, calc(100vh - 9rem))`
3965
3968
  };
3966
3969
  }
3967
- function yr(e, t) {
3970
+ function br(e, t) {
3968
3971
  if (!(!t || e)) return { width: `min(${t.width + 32}px, calc(100vw - 3rem))` };
3969
3972
  }
3970
- function br({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onImageLoad: i }) {
3971
- return /* @__PURE__ */ M(ur, {
3973
+ function xr({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onImageLoad: i }) {
3974
+ return /* @__PURE__ */ N(dr, {
3972
3975
  open: !!e?.url,
3973
3976
  onOpenChange: (e) => !e && r(),
3974
- children: /* @__PURE__ */ N(pr, {
3977
+ children: /* @__PURE__ */ P(mr, {
3975
3978
  className: c("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"),
3976
- style: yr(t, n),
3977
- children: [/* @__PURE__ */ M("div", {
3979
+ style: br(t, n),
3980
+ children: [/* @__PURE__ */ N("div", {
3978
3981
  className: "flex items-center gap-3 border-b border-slate-800 px-4 py-3 pr-16",
3979
- children: /* @__PURE__ */ M(gr, {
3982
+ children: /* @__PURE__ */ N(_r, {
3980
3983
  className: "truncate text-sm font-medium",
3981
3984
  children: e?.name || "附件预览"
3982
3985
  })
3983
- }), /* @__PURE__ */ M("div", {
3986
+ }), /* @__PURE__ */ N("div", {
3984
3987
  className: c("flex items-center justify-center overflow-auto bg-slate-950", t ? "h-full p-4 pb-[calc(var(--safe-area-bottom)+1rem)]" : "max-h-[calc(100vh-7rem)] p-4"),
3985
- children: e ? e.type.startsWith("image/") ? /* @__PURE__ */ M("img", {
3988
+ children: e ? e.type.startsWith("image/") ? /* @__PURE__ */ N("img", {
3986
3989
  src: e.url,
3987
3990
  alt: e.name,
3988
3991
  className: c("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)]"),
3989
- style: vr(t, n),
3992
+ style: yr(t, n),
3990
3993
  onLoad: (e) => {
3991
3994
  let t = e.currentTarget;
3992
3995
  i({
@@ -3994,7 +3997,7 @@ function br({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onIma
3994
3997
  height: t.naturalHeight
3995
3998
  });
3996
3999
  }
3997
- }) : /* @__PURE__ */ M("iframe", {
4000
+ }) : /* @__PURE__ */ N("iframe", {
3998
4001
  src: e.url,
3999
4002
  title: e.name,
4000
4003
  className: "h-full min-h-[24rem] w-full rounded-xl border border-slate-800 bg-white"
@@ -4005,7 +4008,7 @@ function br({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onIma
4005
4008
  }
4006
4009
  //#endregion
4007
4010
  //#region src/utils/context.js
4008
- function xr(e) {
4011
+ function Sr(e) {
4009
4012
  if (typeof e == "number" && Number.isFinite(e) && e > 0) return e;
4010
4013
  if (typeof e == "string" && e.trim()) {
4011
4014
  let t = Number(e);
@@ -4013,15 +4016,15 @@ function xr(e) {
4013
4016
  }
4014
4017
  return null;
4015
4018
  }
4016
- function Sr(e) {
4019
+ function Cr(e) {
4017
4020
  return /[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]/u.test(e);
4018
4021
  }
4019
- function Cr(e) {
4022
+ function wr(e) {
4020
4023
  let t = String(e || "").trim();
4021
4024
  if (!t) return 0;
4022
4025
  let n = 0, r = 0;
4023
4026
  for (let e of t) {
4024
- if (Sr(e)) {
4027
+ if (Cr(e)) {
4025
4028
  n += 1;
4026
4029
  continue;
4027
4030
  }
@@ -4029,24 +4032,24 @@ function Cr(e) {
4029
4032
  }
4030
4033
  return Math.max(1, n + Math.ceil(r / 4));
4031
4034
  }
4032
- function wr(e) {
4033
- if (!e) return 0;
4034
- if (e.role === "system") return e.eventType === "context_checkpoint" ? Cr(e.summary || "") : 0;
4035
- let t = Cr(e.content || "");
4036
- return e.tools && (t += Object.values(e.tools).reduce((e, t) => e + Cr(t?.name || "") + Cr(t?.args || "") + Cr(t?.output || ""), 0)), t;
4037
- }
4038
4035
  function Tr(e) {
4039
- return e ? xr(e.context_window_tokens) ?? xr(e?.limits?.context_window_tokens) : null;
4036
+ if (!e) return 0;
4037
+ if (e.role === "system") return e.eventType === "context_checkpoint" ? wr(e.summary || "") : 0;
4038
+ let t = wr(e.content || "");
4039
+ return e.tools && (t += Object.values(e.tools).reduce((e, t) => e + wr(t?.name || "") + wr(t?.args || "") + wr(t?.output || ""), 0)), t;
4040
4040
  }
4041
4041
  function Er(e) {
4042
- return e ? xr(e.auto_compact_threshold_percentage) ?? 84 : 84;
4042
+ return e ? Sr(e.context_window_tokens) ?? Sr(e?.limits?.context_window_tokens) : null;
4043
+ }
4044
+ function Dr(e) {
4045
+ return e ? Sr(e.auto_compact_threshold_percentage) ?? 84 : 84;
4043
4046
  }
4044
- function Dr({ messages: e, draftInput: t, selectedModel: n }) {
4045
- let r = Tr(n);
4047
+ function Or({ messages: e, draftInput: t, selectedModel: n }) {
4048
+ let r = Er(n);
4046
4049
  if (!r) return null;
4047
4050
  let i = [...e || []].reverse().find((e) => e?.role === "system" && e?.eventType === "context_checkpoint" && e?.status === "running");
4048
4051
  if (i) {
4049
- let e = wr(i);
4052
+ let e = Tr(i);
4050
4053
  return {
4051
4054
  label: "正在压缩上下文…",
4052
4055
  phase: "compressing",
@@ -4055,10 +4058,10 @@ function Dr({ messages: e, draftInput: t, selectedModel: n }) {
4055
4058
  percent: Math.min(100, Math.max(0, Math.round(e / r * 100)))
4056
4059
  };
4057
4060
  }
4058
- let a = (e || []).reduce((e, t) => e + wr(t), 0) + Cr(t || "");
4061
+ let a = (e || []).reduce((e, t) => e + Tr(t), 0) + wr(t || "");
4059
4062
  if (a <= 0) return null;
4060
4063
  let o = Math.min(100, Math.max(0, Math.round(a / r * 100)));
4061
- return o >= Er(n) ? {
4064
+ return o >= Dr(n) ? {
4062
4065
  label: `估算上下文 ${o}% · 即将压缩`,
4063
4066
  phase: "warning",
4064
4067
  percent: o,
@@ -4074,20 +4077,20 @@ function Dr({ messages: e, draftInput: t, selectedModel: n }) {
4074
4077
  }
4075
4078
  //#endregion
4076
4079
  //#region src/utils/session-message-history.ts
4077
- function Or(e) {
4080
+ function kr(e) {
4078
4081
  return e.requestedSessionId === e.activeSessionId && e.requestToken === e.activeRequestToken;
4079
4082
  }
4080
4083
  //#endregion
4081
4084
  //#region src/components/chat/ConnectedMessageList.tsx
4082
- function kr({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback: r, onRespondToApproval: a, onRespondToAguiApproval: o, onSubmitAguiAction: c, onStopGeneration: l, onCancelRemote: u, checkpointResumeEnabled: d = !1, onResumeCheckpoint: f, onLoadOlderSessionMessages: p }) {
4083
- let m = Y((e) => e.messages), h = U((e) => e.currentSessionId), g = U((e) => e.isLoadingSessions), _ = i((e) => !!(e.getSessionActivity(h) && e.isSessionStreaming(h))), v = i((e) => e.getSessionActivity(h)), y = Q((e) => e.getSessionCheckpoints(h)), b = U((e) => h ? e.messageHistory[h] : null), x = g || !!b?.isLoadingInitial, S = T((e) => e.input), w = s((e) => e.availableModels), ee = s((e) => e.selectedModel), te = T((e) => e.previewAttachment), ne = T((e) => e.previewImageSize), E = L(null), D = L(!0), O = L(!1), k = L(0), re = L(_), ie = L(!1), A = L(null), j = L(!0), P = ce(() => w.find((e) => e.id === ee) || null, [w, ee]), oe = ce(() => Dr({
4085
+ function Ar({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback: r, onRespondToApproval: a, onRespondToAguiApproval: o, onSubmitAguiAction: c, onStopGeneration: l, onCancelRemote: u, checkpointResumeEnabled: d = !1, onResumeCheckpoint: f, onLoadOlderSessionMessages: p }) {
4086
+ let m = Y((e) => e.messages), h = U((e) => e.currentSessionId), g = U((e) => e.isLoadingSessions), _ = i((e) => !!(e.getSessionActivity(h) && e.isSessionStreaming(h))), v = i((e) => e.getSessionActivity(h)), y = Q((e) => e.getSessionCheckpoints(h)), b = U((e) => h ? e.messageHistory[h] : null), x = g || !!b?.isLoadingInitial, S = T((e) => e.input), w = s((e) => e.availableModels), ee = s((e) => e.selectedModel), te = T((e) => e.previewAttachment), ne = T((e) => e.previewImageSize), E = R(null), D = R(!0), O = R(!1), k = R(0), re = R(_), ie = R(!1), A = R(null), j = R(!0), M = L(() => w.find((e) => e.id === ee) || null, [w, ee]), oe = L(() => Or({
4084
4087
  messages: m,
4085
4088
  draftInput: S,
4086
- selectedModel: P
4089
+ selectedModel: M
4087
4090
  }), [
4088
4091
  S,
4089
4092
  m,
4090
- P
4093
+ M
4091
4094
  ]);
4092
4095
  return I(() => {
4093
4096
  re.current = _;
@@ -4101,13 +4104,13 @@ function kr({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
4101
4104
  if (k.current = e.scrollTop, e.scrollTop < 200 && h && b?.hasMore && !b.isLoadingOlder && !ie.current && p) {
4102
4105
  let t = e.scrollHeight, n = h, r = Symbol(n);
4103
4106
  ie.current = !0, A.current = r, p(n).then(() => {
4104
- Or({
4107
+ kr({
4105
4108
  requestedSessionId: n,
4106
4109
  activeSessionId: U.getState().currentSessionId,
4107
4110
  requestToken: r,
4108
4111
  activeRequestToken: A.current
4109
4112
  }) && requestAnimationFrame(() => {
4110
- if (!Or({
4113
+ if (!kr({
4111
4114
  requestedSessionId: n,
4112
4115
  activeSessionId: U.getState().currentSessionId,
4113
4116
  requestToken: r,
@@ -4168,7 +4171,7 @@ function kr({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
4168
4171
  }
4169
4172
  D.current && (e.scrollTop = e.scrollHeight, k.current = e.scrollTop);
4170
4173
  }
4171
- }, [m, _]), /* @__PURE__ */ N(ae, { children: [/* @__PURE__ */ M(C, {
4174
+ }, [m, _]), /* @__PURE__ */ P(ae, { children: [/* @__PURE__ */ N(C, {
4172
4175
  agentName: e,
4173
4176
  isMobile: t,
4174
4177
  isStreaming: _,
@@ -4189,7 +4192,7 @@ function kr({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
4189
4192
  checkpoints: d ? y : [],
4190
4193
  onResumeCheckpoint: f,
4191
4194
  scrollRef: E
4192
- }), /* @__PURE__ */ M(br, {
4195
+ }), /* @__PURE__ */ N(xr, {
4193
4196
  attachment: te,
4194
4197
  isMobile: t,
4195
4198
  previewImageSize: ne,
@@ -4201,7 +4204,7 @@ function kr({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
4201
4204
  }
4202
4205
  //#endregion
4203
4206
  //#region src/utils/attachment.ts
4204
- function Ar(e) {
4207
+ function jr(e) {
4205
4208
  return [
4206
4209
  e.name,
4207
4210
  e.size,
@@ -4209,64 +4212,64 @@ function Ar(e) {
4209
4212
  e.type
4210
4213
  ].join(":");
4211
4214
  }
4212
- function jr(e, t) {
4215
+ function Mr(e, t) {
4213
4216
  let n = /* @__PURE__ */ new Map();
4214
- for (let t of e) n.set(Ar(t), t);
4215
- for (let e of t) n.set(Ar(e), e);
4217
+ for (let t of e) n.set(jr(t), t);
4218
+ for (let e of t) n.set(jr(e), e);
4216
4219
  return Array.from(n.values());
4217
4220
  }
4218
- function Mr(e) {
4221
+ function Nr(e) {
4219
4222
  return Array.from(e.clipboardData.items || []).filter((e) => e.kind === "file").map((e) => e.getAsFile()).filter((e) => !!e);
4220
4223
  }
4221
4224
  //#endregion
4222
4225
  //#region src/components/chat/ConnectedComposer.tsx
4223
- function Nr({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRemote: r, isMobile: a, approvalEnabled: o = !1, approvalPolicy: c }) {
4224
- let l = T((e) => e.input), u = T((e) => e.attachments), d = U((e) => e.currentSessionId), f = i((e) => !!(e.getSessionActivity(d) && e.isSessionStreaming(d))), p = T((e) => e.queuedDrafts), m = Y((e) => e.messages), h = s((e) => e.availableModels), g = s((e) => e.selectedModel), _ = L(null), v = L(null), y = ce(() => h.find((e) => e.id === g) || null, [h, g]), b = ce(() => Dr({
4225
- messages: m,
4226
- draftInput: l,
4227
- selectedModel: y
4226
+ function Pr({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRemote: r, isMobile: a, approvalEnabled: o = !1, approvalPolicy: c }) {
4227
+ let u = T((e) => e.input), d = T((e) => e.attachments), f = U((e) => e.currentSessionId), p = i((e) => !!(e.getSessionActivity(f) && e.isSessionStreaming(f))), m = T((e) => e.queuedDrafts), h = Y((e) => e.messages), g = s((e) => e.availableModels), _ = s((e) => e.selectedModel), v = R(null), y = R(null), b = L(() => g.find((e) => e.id === _) || null, [g, _]), x = L(() => Or({
4228
+ messages: h,
4229
+ draftInput: u,
4230
+ selectedModel: b
4228
4231
  }), [
4229
- l,
4230
- m,
4231
- y
4232
+ u,
4233
+ h,
4234
+ b
4232
4235
  ]), S = F((e, n) => {
4233
4236
  !e && n.length === 0 || (T.getState().setInput(""), T.getState().setAttachments([]), t(e, n));
4234
4237
  }, [t]);
4235
4238
  I(() => {
4236
- v.current && (v.current.style.height = "auto", v.current.style.height = `${Math.min(v.current.scrollHeight, e)}px`);
4237
- }, [l, e]);
4239
+ y.current && (y.current.style.height = "auto", y.current.style.height = `${Math.min(y.current.scrollHeight, e)}px`);
4240
+ }, [u, e]);
4238
4241
  let C = (t) => {
4239
4242
  T.getState().setInput(t.target.value), t.target.style.height = "auto", t.target.style.height = `${Math.min(t.target.scrollHeight, e)}px`;
4240
4243
  }, w = (e) => {
4241
- e.length && T.getState().setAttachments((t) => jr(t, e));
4244
+ e.length && T.getState().setAttachments((t) => Mr(t, e));
4242
4245
  };
4243
- return /* @__PURE__ */ M(x, {
4244
- attachments: u,
4245
- composerContextIndicator: b,
4246
+ return /* @__PURE__ */ N(l, {
4247
+ attachments: d,
4248
+ composerContextIndicator: x,
4246
4249
  composerMaxHeight: e,
4247
- fileInputRef: _,
4248
- input: l,
4250
+ fileInputRef: v,
4251
+ input: u,
4249
4252
  isMobile: a,
4250
- isStreaming: f,
4253
+ isStreaming: p,
4251
4254
  approvalEnabled: o,
4252
4255
  approvalPolicy: c,
4253
- queuedDrafts: p,
4256
+ queuedDrafts: m,
4254
4257
  onAppendAttachments: w,
4255
4258
  onInputChange: C,
4256
4259
  onPaste: (e) => {
4257
- let t = Mr(e);
4260
+ let t = Nr(e);
4258
4261
  t.length && (e.preventDefault(), e.stopPropagation(), w(t));
4259
4262
  },
4260
4263
  onRemoveAttachment: (e) => T.getState().setAttachments((t) => t.filter((t, n) => n !== e)),
4261
4264
  onStopGeneration: n,
4262
4265
  onCancelRemote: r,
4263
4266
  onSubmit: S,
4264
- textareaRef: v
4267
+ textareaRef: y
4265
4268
  });
4266
4269
  }
4267
4270
  //#endregion
4268
4271
  //#region src/api/session.ts
4269
- async function Pr(e, t) {
4272
+ async function Fr(e, t) {
4270
4273
  let n = await J("ListSessions", {
4271
4274
  AgentId: e,
4272
4275
  Page: t?.page,
@@ -4279,18 +4282,18 @@ async function Pr(e, t) {
4279
4282
  PageSize: Number.isFinite(Number(n.PageSize)) ? Number(n.PageSize) : t?.pageSize ?? n.Sessions?.length ?? 0
4280
4283
  };
4281
4284
  }
4282
- async function Fr(e, t) {
4285
+ async function Ir(e, t) {
4283
4286
  return (await J("CreateSession", { AgentId: e }, t)).Session;
4284
4287
  }
4285
- async function Ir(e, t) {
4288
+ async function Lr(e, t) {
4286
4289
  await J("DeleteSession", { SessionId: e }, t);
4287
4290
  }
4288
- async function Lr(e, t) {
4291
+ async function Rr(e, t) {
4289
4292
  return (await J("GetSession", { SessionId: e }, t)).Session;
4290
4293
  }
4291
4294
  //#endregion
4292
4295
  //#region src/api/events.ts
4293
- async function Rr(e, t) {
4296
+ async function zr(e, t) {
4294
4297
  let n = await J("ListSessionEvents", {
4295
4298
  SessionId: e,
4296
4299
  Offset: t?.offset,
@@ -4305,7 +4308,7 @@ async function Rr(e, t) {
4305
4308
  }
4306
4309
  //#endregion
4307
4310
  //#region src/api/messages.ts
4308
- async function zr(e, t) {
4311
+ async function Br(e, t) {
4309
4312
  let n = await J("ListSessionMessages", {
4310
4313
  AgentId: t?.agentId,
4311
4314
  SessionId: e,
@@ -4325,19 +4328,19 @@ async function zr(e, t) {
4325
4328
  }
4326
4329
  //#endregion
4327
4330
  //#region src/api/run.ts
4328
- async function Br(e, t) {
4329
- return Be("RunAgent", e, t);
4331
+ async function Vr(e, t) {
4332
+ return Ve("RunAgent", e, t);
4330
4333
  }
4331
4334
  //#endregion
4332
4335
  //#region src/api/checkpoints.ts
4333
- async function Vr(e, t) {
4336
+ async function Hr(e, t) {
4334
4337
  let n = {
4335
4338
  AgentId: e.agentId,
4336
4339
  SessionId: e.sessionId
4337
4340
  };
4338
4341
  return e.runId && (n.RunId = e.runId), J("ListSessionCheckpoints", n, t);
4339
4342
  }
4340
- async function Hr(e, t) {
4343
+ async function Ur(e, t) {
4341
4344
  return J("GetCheckpointResumePreview", {
4342
4345
  AgentId: e.agentId,
4343
4346
  SessionId: e.sessionId,
@@ -4345,14 +4348,14 @@ async function Hr(e, t) {
4345
4348
  CheckpointId: e.checkpointId
4346
4349
  }, t);
4347
4350
  }
4348
- async function Ur(e, t) {
4351
+ async function Wr(e, t) {
4349
4352
  let n = {
4350
4353
  AgentId: e.agentId,
4351
4354
  SessionId: e.sessionId
4352
4355
  };
4353
4356
  return e.runId && (n.RunId = e.runId), e.checkpointId && (n.CheckpointId = e.checkpointId), J("ListToolReceipts", n, t);
4354
4357
  }
4355
- async function Wr(e, t) {
4358
+ async function Gr(e, t) {
4356
4359
  let n = {
4357
4360
  AgentId: e.agentId,
4358
4361
  SessionId: e.sessionId,
@@ -4360,28 +4363,28 @@ async function Wr(e, t) {
4360
4363
  CheckpointId: e.checkpointId,
4361
4364
  Stream: !0
4362
4365
  };
4363
- return e.resumeAttemptId && (n.ResumeAttemptId = e.resumeAttemptId), e.invocationId && (n.InvocationId = e.invocationId), Be("ResumeRun", n, t);
4366
+ return e.resumeAttemptId && (n.ResumeAttemptId = e.resumeAttemptId), e.invocationId && (n.InvocationId = e.invocationId), Ve("ResumeRun", n, t);
4364
4367
  }
4365
4368
  //#endregion
4366
4369
  //#region src/api/workspace.ts
4367
- async function Gr(e, t, n) {
4370
+ async function Kr(e, t, n) {
4368
4371
  return J("ListWorkspaceFiles", {
4369
4372
  AgentId: e,
4370
4373
  Path: t,
4371
4374
  Recursive: n
4372
4375
  });
4373
4376
  }
4374
- async function Kr(e) {
4375
- return Re("AddWorkspaceFile", e);
4377
+ async function qr(e) {
4378
+ return ze("AddWorkspaceFile", e);
4376
4379
  }
4377
- async function qr(e, t) {
4380
+ async function Jr(e, t) {
4378
4381
  return J("DeleteWorkspaceFile", {
4379
4382
  AgentId: e,
4380
4383
  Path: t
4381
4384
  });
4382
4385
  }
4383
- async function Jr(e, t, n) {
4384
- return ze("GetWorkspaceFileContent", {
4386
+ async function Yr(e, t, n) {
4387
+ return Be("GetWorkspaceFileContent", {
4385
4388
  AgentId: e,
4386
4389
  FilePath: t
4387
4390
  }, {
@@ -4391,47 +4394,47 @@ async function Jr(e, t, n) {
4391
4394
  }
4392
4395
  //#endregion
4393
4396
  //#region src/api/upload.ts
4394
- async function Yr(e, t) {
4395
- return Re("UploadFile", e, t);
4397
+ async function Xr(e, t) {
4398
+ return ze("UploadFile", e, t);
4396
4399
  }
4397
4400
  //#endregion
4398
4401
  //#region src/core/api/facade.ts
4399
- var Xr = class {
4402
+ var Zr = class {
4400
4403
  async listSessions(e, t) {
4401
- return Pr(e, t);
4404
+ return Fr(e, t);
4402
4405
  }
4403
4406
  async createSession(e, t) {
4404
- return { SessionId: (await Fr(e, t)).SessionId };
4407
+ return { SessionId: (await Ir(e, t)).SessionId };
4405
4408
  }
4406
4409
  async deleteSession(e, t) {
4407
- await Ir(e, t);
4410
+ await Lr(e, t);
4408
4411
  }
4409
4412
  async getSession(e, t) {
4410
- return Lr(e, t);
4413
+ return Rr(e, t);
4411
4414
  }
4412
4415
  async listSessionEvents(e, t) {
4413
- return Rr(e, t);
4416
+ return zr(e, t);
4414
4417
  }
4415
4418
  async listSessionMessages(e, t) {
4416
- return zr(e, t);
4419
+ return Br(e, t);
4417
4420
  }
4418
4421
  async listSessionCheckpoints(e, t) {
4419
- return Vr(e, t);
4422
+ return Hr(e, t);
4420
4423
  }
4421
4424
  async previewCheckpointResume(e, t) {
4422
- return Hr(e, t);
4425
+ return Ur(e, t);
4423
4426
  }
4424
4427
  async listToolReceipts(e, t) {
4425
- return Ur(e, t);
4428
+ return Wr(e, t);
4426
4429
  }
4427
4430
  async runAgent(e, t) {
4428
- return Br(e, t);
4431
+ return Vr(e, t);
4429
4432
  }
4430
4433
  async resumeRun(e, t) {
4431
- return Wr(e, t);
4434
+ return Gr(e, t);
4432
4435
  }
4433
4436
  async subscribeRunEvents(e, t) {
4434
- return Ve("SubscribeRunEvents", {
4437
+ return He("SubscribeRunEvents", {
4435
4438
  SessionId: e.sessionId,
4436
4439
  InvocationId: e.invocationId,
4437
4440
  AfterSeqId: String(e.afterSeqId)
@@ -4454,76 +4457,76 @@ var Xr = class {
4454
4457
  await J("DeleteResponseFeedback", e, t);
4455
4458
  }
4456
4459
  async listWorkspaceFiles(e, t, n) {
4457
- return Gr(e, t, n);
4460
+ return Kr(e, t, n);
4458
4461
  }
4459
4462
  async addWorkspaceFile(e) {
4460
- return Kr(e);
4463
+ return qr(e);
4461
4464
  }
4462
4465
  async deleteWorkspaceFile(e, t) {
4463
- await qr(e, t);
4466
+ await Jr(e, t);
4464
4467
  }
4465
4468
  async getWorkspaceFileContent(e, t, n) {
4466
- return Jr(e, t, n);
4469
+ return Yr(e, t, n);
4467
4470
  }
4468
4471
  async listAgentModels(e) {
4469
- return Ue(e);
4472
+ return We(e);
4470
4473
  }
4471
4474
  async getAgentUiBootstrap() {
4472
- return He();
4475
+ return Ue();
4473
4476
  }
4474
4477
  async uploadFile(e, t) {
4475
- return Yr(e, t);
4478
+ return Xr(e, t);
4476
4479
  }
4477
- }, Zr = new Xr(), Qr = oe.lazy(() => import("./ArtifactsPanel-BAfHt4bC.js").then((e) => ({ default: e.ArtifactsPanel }))), $r = oe.lazy(() => import("./NativeTerminalPanel-BTPHqbvY.js").then((e) => e.n).then((e) => ({ default: e.NativeTerminalPanel })));
4478
- function ei({ apiAdapter: e, initialSurface: t = "chat", routeShell: r } = {}) {
4479
- let a = e || Zr, c = z((e) => e.agentId), u = U((e) => e.currentSessionId), d = i((e) => e.isStreaming), p = T((e) => e.sidebarOpen), m = T((e) => e.mobileSidebarOpen), h = T((e) => e.mobileActionsOpen), g = z((e) => e.agentName), _ = s((e) => e.selectedModel), v = s((e) => e.availableModels), y = s((e) => e.modelSource), b = s((e) => e.modelCatalogLoaded), x = s((e) => e.thinkingMode), S = l((e) => e.permissionMode), C = z((e) => e.agentFramework), w = z((e) => e.workspaceFiles), D = z((e) => e.accessMode), O = T((e) => e.workspacePanelOpen), k = T((e) => e.workspacePanelWidth), re = T((e) => e.workspacePanelFullscreen), A = z((e) => e.apiFormats), j = z((e) => e.capabilities), P = ie((e) => e.visible && !!e.content), oe = L([]), ce = L(null), { isMobile: R, viewportHeight: ue } = Ie(), de = xe({
4480
- isMobile: R,
4481
- viewportHeight: ue
4482
- }), { fetchSessions: B, loadMoreSessions: fe, loadSession: pe, loadOlderSessionMessages: me, createNewSession: he, deleteSession: ge, currentSessionIdRef: V, agentIdRef: H, runSubscriptionAbortRef: _e } = cr({
4483
- agentId: c,
4484
- currentSessionId: u,
4485
- isMobile: R,
4480
+ }, Qr = new Zr(), $r = se.lazy(() => import("./ArtifactsPanel-DjKIRTwo.js").then((e) => ({ default: e.ArtifactsPanel }))), ei = se.lazy(() => import("./NativeTerminalPanel-BLhX4eDs.js").then((e) => e.n).then((e) => ({ default: e.NativeTerminalPanel })));
4481
+ function ti({ apiAdapter: e, initialSurface: t = "chat", routeShell: r } = {}) {
4482
+ let c = e || Qr, l = B((e) => e.agentId), d = U((e) => e.currentSessionId), f = i((e) => e.isStreaming), p = T((e) => e.sidebarOpen), m = T((e) => e.mobileSidebarOpen), h = T((e) => e.mobileActionsOpen), g = B((e) => e.agentName), _ = s((e) => e.selectedModel), v = s((e) => e.availableModels), y = s((e) => e.modelSource), b = s((e) => e.modelCatalogLoaded), x = s((e) => e.thinkingMode), S = u((e) => e.permissionMode), C = B((e) => e.agentFramework), w = B((e) => e.workspaceFiles), D = B((e) => e.accessMode), O = T((e) => e.workspacePanelOpen), k = T((e) => e.workspacePanelWidth), re = T((e) => e.workspacePanelFullscreen), ie = B((e) => e.apiFormats), j = B((e) => e.capabilities), M = A((e) => e.visible && !!e.content), oe = R([]), se = R(null), { isMobile: L, viewportHeight: z } = Ie(), ue = Se({
4483
+ isMobile: L,
4484
+ viewportHeight: z
4485
+ }), { fetchSessions: de, loadMoreSessions: fe, loadSession: pe, loadOlderSessionMessages: me, createNewSession: he, deleteSession: ge, currentSessionIdRef: V, agentIdRef: _e, runSubscriptionAbortRef: H } = lr({
4486
+ agentId: l,
4487
+ currentSessionId: d,
4488
+ isMobile: L,
4486
4489
  uiCapabilities: j,
4487
- api: a,
4490
+ api: c,
4488
4491
  resetCompaction: () => {},
4489
- disconnectRun: () => ce.current?.()
4492
+ disconnectRun: () => se.current?.()
4490
4493
  }), ve = F((e) => {
4491
4494
  if (!e) return;
4492
4495
  let t = () => {
4493
- U.getState().clearSessionMessageHistory(e), B(H.current, e);
4496
+ U.getState().clearSessionMessageHistory(e), de(_e.current, e);
4494
4497
  };
4495
4498
  queueMicrotask(t), window.setTimeout(t, 1800), window.setTimeout(t, 5e3);
4496
- }, [H, B]), ye = v.find((e) => e.id === _) || null, { submitDraft: be, stopGeneration: Se, disconnectRun: Ce, resumeCheckpoint: we, submitAguiAction: Te, respondToAguiApproval: Ee } = Vn({
4497
- agentId: c,
4498
- currentSessionId: u,
4499
+ }, [_e, de]), ye = v.find((e) => e.id === _) || null, { submitDraft: be, stopGeneration: xe, disconnectRun: Ce, resumeCheckpoint: we, submitAguiAction: Te, respondToAguiApproval: Ee } = Hn({
4500
+ agentId: l,
4501
+ currentSessionId: d,
4499
4502
  agentFramework: C,
4500
- apiFormats: A,
4503
+ apiFormats: ie,
4501
4504
  selectedModel: _,
4502
4505
  selectedModelMetadata: ye,
4503
4506
  thinkingMode: x,
4504
4507
  permissionMode: S,
4505
4508
  uiCapabilities: j,
4506
- isMobile: R,
4507
- api: a,
4509
+ isMobile: L,
4510
+ api: c,
4508
4511
  currentSessionIdRef: V,
4509
- agentIdRef: H,
4512
+ agentIdRef: _e,
4510
4513
  queuedDraftRef: oe,
4511
4514
  onRunSettled: ve
4512
4515
  });
4513
4516
  I(() => {
4514
- ce.current = Ce;
4517
+ se.current = Ce;
4515
4518
  }, [Ce]);
4516
- let Oe = F(() => {
4519
+ let De = F(() => {
4517
4520
  let e = V.current;
4518
- _e.current?.abort(), i.getState().stopActivity(), i.getState().stopSessionActivity(e), Se();
4521
+ H.current?.abort(), i.getState().stopActivity(), i.getState().stopSessionActivity(e), xe();
4519
4522
  }, [
4520
4523
  V,
4521
- _e,
4522
- Se
4524
+ H,
4525
+ xe
4523
4526
  ]), ke = F(async () => {
4524
4527
  let e = V.current, t = i.getState(), n = t.getSessionActivity(e)?.runId || t.currentRunId || "";
4525
4528
  if (e && n) try {
4526
- await a.cancelRun(c, e, n), i.getState().stopSessionActivity(e, "取消请求已发送,后台运行会停在最近 checkpoint。");
4529
+ await c.cancelRun(l, e, n), i.getState().stopSessionActivity(e, "取消请求已发送,后台运行会停在最近 checkpoint。");
4527
4530
  } catch (t) {
4528
4531
  console.warn("[App] cancelRun failed:", t), i.getState().updateActivity({
4529
4532
  sessionId: e,
@@ -4535,118 +4538,118 @@ function ei({ apiAdapter: e, initialSurface: t = "chat", routeShell: r } = {}) {
4535
4538
  }
4536
4539
  ve(e);
4537
4540
  }, [
4538
- a,
4539
4541
  c,
4542
+ l,
4540
4543
  V,
4541
4544
  ve
4542
- ]), { submitResponseFeedback: Ae, deleteResponseFeedback: je, respondToApproval: Me } = Hn({
4543
- agentId: c,
4544
- currentSessionId: u,
4545
- isStreaming: d,
4546
- api: a,
4545
+ ]), { submitResponseFeedback: Ae, deleteResponseFeedback: je, respondToApproval: Me } = Un({
4546
+ agentId: l,
4547
+ currentSessionId: d,
4548
+ isStreaming: f,
4549
+ api: c,
4547
4550
  submitDraft: be
4548
4551
  });
4549
- Ke({ fetchSessions: B }), I(() => {
4550
- H.current = c, V.current = u, De(c, u);
4552
+ qe({ fetchSessions: de }), I(() => {
4553
+ _e.current = l, V.current = d, Oe(l, d);
4551
4554
  }, [
4552
- c,
4553
- u,
4554
- H,
4555
+ l,
4556
+ d,
4557
+ _e,
4555
4558
  V
4556
4559
  ]), I(() => {
4557
- R ? T.getState().setWorkspacePanelFullscreen(!1) : (T.getState().setMobileSidebarOpen(!1), T.getState().setMobileActionsOpen(!1));
4558
- }, [R]), I(() => {
4560
+ L ? T.getState().setWorkspacePanelFullscreen(!1) : (T.getState().setMobileSidebarOpen(!1), T.getState().setMobileActionsOpen(!1));
4561
+ }, [L]), I(() => {
4559
4562
  O || T.getState().setWorkspacePanelFullscreen(!1);
4560
4563
  }, [O]), I(() => () => {
4561
- _e.current?.abort();
4562
- }, [_e]);
4563
- let Pe = n(j), Fe = !!j.Thinking, W = ee({
4564
+ H.current?.abort();
4565
+ }, [H]);
4566
+ let Ne = n(j), Fe = !!j.Thinking, W = ee({
4564
4567
  workspaceFiles: w,
4565
4568
  accessMode: D
4566
- }), G = te({ isMobile: R }), K = Ne({
4569
+ }), G = te({ isMobile: L }), K = Pe({
4567
4570
  capability: j.NativeDashboard,
4568
4571
  agentFramework: C,
4569
4572
  accessMode: D,
4570
4573
  origin: window.location.origin
4571
- }), Le = !Pe, q = C === "openclaw" ? "OpenClaw" : C === "hermes" ? "Hermes" : "原生运行时", J = ye?.display_name || _ || "", Re = !R && p && Pe, ze = L(!1), [Be, Ve] = le(t === "tui"), He = Be && !!j.NativeTerminal?.Enabled;
4574
+ }), q = !Ne, Le = C === "openclaw" ? "OpenClaw" : C === "hermes" ? "Hermes" : "原生运行时", Re = ye?.display_name || _ || "", J = !L && p && Ne, ze = R(!1), [Be, Ve] = le(t === "tui"), He = Be && !!j.NativeTerminal?.Enabled;
4572
4575
  I(() => {
4573
4576
  ze.current || t !== "workspace" || !W || (ze.current = !0, T.getState().setWorkspacePanelOpen(!0), T.getState().setWorkspacePanelFullscreen(!0));
4574
4577
  }, [t, W]);
4575
- let Ue = /* @__PURE__ */ N("div", {
4578
+ let Ue = /* @__PURE__ */ P("div", {
4576
4579
  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",
4577
4580
  children: [
4578
- /* @__PURE__ */ M(lr, {
4581
+ /* @__PURE__ */ N(ur, {
4579
4582
  uiCapabilities: j,
4580
4583
  createNewSession: he,
4581
4584
  deleteSession: ge,
4582
4585
  loadSession: pe,
4583
4586
  loadMoreSessions: fe
4584
4587
  }),
4585
- /* @__PURE__ */ N("main", {
4588
+ /* @__PURE__ */ P("main", {
4586
4589
  className: "relative flex min-w-0 flex-1 flex-col bg-white dark:bg-slate-900",
4587
- children: [/* @__PURE__ */ M(o, {
4590
+ children: [/* @__PURE__ */ N(a, {
4588
4591
  agentName: g,
4589
- currentSessionId: u,
4590
- nativeLauncherMode: Le,
4591
- isMobile: R,
4592
+ currentSessionId: d,
4593
+ nativeLauncherMode: q,
4594
+ isMobile: L,
4592
4595
  sidebarOpen: p,
4593
4596
  mobileSidebarOpen: m,
4594
4597
  onToggleSidebar: () => {
4595
- R ? T.getState().toggleMobileSidebar() : T.getState().toggleSidebar();
4598
+ L ? T.getState().toggleMobileSidebar() : T.getState().toggleSidebar();
4596
4599
  },
4597
4600
  availableModels: v,
4598
4601
  selectedModel: _,
4599
4602
  onSelectModel: (e) => {
4600
- s.getState().setSelectedModel(e), R && T.getState().setMobileActionsOpen(!1);
4603
+ s.getState().setSelectedModel(e), L && T.getState().setMobileActionsOpen(!1);
4601
4604
  },
4602
- selectedModelLabel: J,
4605
+ selectedModelLabel: Re,
4603
4606
  modelCatalogLoaded: b,
4604
4607
  modelSource: y,
4605
4608
  thinkingEnabled: Fe,
4606
4609
  thinkingMode: x,
4607
- onSelectThinkingMode: (e) => s.getState().setThinkingMode(f(e)),
4610
+ onSelectThinkingMode: (e) => s.getState().setThinkingMode(o(e)),
4608
4611
  mobileActionsOpen: h,
4609
4612
  onMobileActionsOpenChange: (e) => T.getState().setMobileActionsOpen(e),
4610
4613
  workspaceEnabled: W,
4611
4614
  onOpenWorkspace: () => T.getState().setWorkspacePanelOpen(!0),
4612
4615
  nativeManagementLink: K,
4613
4616
  nativeTerminal: j.NativeTerminal
4614
- }), Le ? /* @__PURE__ */ M(ne, {
4615
- productLabel: q,
4617
+ }), q ? /* @__PURE__ */ N(ne, {
4618
+ productLabel: Le,
4616
4619
  nativeManagementLink: K,
4617
4620
  nativeTerminal: j.NativeTerminal,
4618
4621
  workspaceEnabled: W,
4619
4622
  onOpenWorkspace: () => T.getState().setWorkspacePanelOpen(!0)
4620
- }) : /* @__PURE__ */ N(ae, { children: [/* @__PURE__ */ M(kr, {
4623
+ }) : /* @__PURE__ */ P(ae, { children: [/* @__PURE__ */ N(Ar, {
4621
4624
  agentName: g,
4622
- isMobile: R,
4625
+ isMobile: L,
4623
4626
  onDeleteFeedback: je,
4624
4627
  onSubmitFeedback: Ae,
4625
4628
  onRespondToApproval: Me,
4626
4629
  onRespondToAguiApproval: Ee,
4627
4630
  onSubmitAguiAction: Te,
4628
- onStopGeneration: Oe,
4631
+ onStopGeneration: De,
4629
4632
  onCancelRemote: j.StopRun ? ke : void 0,
4630
4633
  checkpointResumeEnabled: j.RunLifecycle.Enabled && j.RunLifecycle.Checkpoints && j.RunLifecycle.CheckpointResume,
4631
4634
  onResumeCheckpoint: we,
4632
4635
  onLoadOlderSessionMessages: me
4633
- }), /* @__PURE__ */ M(Nr, {
4634
- composerMaxHeight: de,
4636
+ }), /* @__PURE__ */ N(Pr, {
4637
+ composerMaxHeight: ue,
4635
4638
  submitDraft: be,
4636
- stopGeneration: Oe,
4639
+ stopGeneration: De,
4637
4640
  cancelRemote: j.StopRun ? ke : void 0,
4638
- isMobile: R,
4641
+ isMobile: L,
4639
4642
  approvalEnabled: !!j.Approval && j.ApprovalPolicy?.RuntimeOverride !== !1,
4640
4643
  approvalPolicy: j.ApprovalPolicy
4641
4644
  })] })]
4642
4645
  }),
4643
- /* @__PURE__ */ M(E, {
4644
- agentId: c,
4646
+ /* @__PURE__ */ N(E, {
4647
+ agentId: l,
4645
4648
  capability: w,
4646
4649
  workspacePanelOpen: O,
4647
4650
  workspacePanelWidth: k,
4648
4651
  workspacePanelFullscreen: re,
4649
- isMobile: R,
4652
+ isMobile: L,
4650
4653
  workspaceEnabled: W,
4651
4654
  workspaceFiles: w,
4652
4655
  workspacePanelPresentation: G,
@@ -4654,67 +4657,67 @@ function ei({ apiAdapter: e, initialSurface: t = "chat", routeShell: r } = {}) {
4654
4657
  T.getState().setWorkspacePanelFullscreen(!1), T.getState().setWorkspacePanelOpen(!1);
4655
4658
  },
4656
4659
  handleWorkspacePanelResizeStart: (e) => {
4657
- if (re || R) return;
4660
+ if (re || L) return;
4658
4661
  e.preventDefault();
4659
- let t = e.clientX, n = k, r = Pe && Re ? 280 : 0, i = document.body.style.cursor, a = document.body.style.userSelect;
4662
+ let t = e.clientX, n = k, r = Ne && J ? 280 : 0, i = document.body.style.cursor, a = document.body.style.userSelect;
4660
4663
  document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
4661
4664
  let o = (e) => {
4662
4665
  let i = n + t - e.clientX;
4663
- T.getState().setWorkspacePanelWidth(yt(i, window.innerWidth, r));
4666
+ T.getState().setWorkspacePanelWidth(bt(i, window.innerWidth, r));
4664
4667
  }, s = () => {
4665
4668
  document.body.style.cursor = i, document.body.style.userSelect = a, window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", s), window.removeEventListener("pointercancel", s);
4666
4669
  };
4667
4670
  window.addEventListener("pointermove", o), window.addEventListener("pointerup", s), window.addEventListener("pointercancel", s);
4668
4671
  },
4669
- api: a
4672
+ api: c
4670
4673
  }),
4671
- P && /* @__PURE__ */ M(se, {
4674
+ M && /* @__PURE__ */ N(ce, {
4672
4675
  fallback: null,
4673
- children: /* @__PURE__ */ M(Qr, {})
4676
+ children: /* @__PURE__ */ N($r, {})
4674
4677
  }),
4675
- He ? /* @__PURE__ */ M(se, {
4678
+ He ? /* @__PURE__ */ N(ce, {
4676
4679
  fallback: null,
4677
- children: /* @__PURE__ */ M($r, {
4680
+ children: /* @__PURE__ */ N(ei, {
4678
4681
  capability: j.NativeTerminal,
4679
4682
  open: !0,
4680
- sessionId: u,
4683
+ sessionId: d,
4681
4684
  onClose: () => Ve(!1)
4682
4685
  })
4683
4686
  }) : null
4684
4687
  ]
4685
4688
  });
4686
- return r ? /* @__PURE__ */ M(r, { children: Ue }) : Ue;
4689
+ return r ? /* @__PURE__ */ N(r, { children: Ue }) : Ue;
4687
4690
  }
4688
4691
  //#endregion
4689
4692
  //#region src/core/transport/sse-transport.ts
4690
- function ti(e, t) {
4693
+ function ni(e, t) {
4691
4694
  if (e.eventName === "__ping__") {
4692
4695
  i.getState().updateActivity({ countEvent: !1 });
4693
4696
  return;
4694
4697
  }
4695
4698
  t.onEvent(e);
4696
4699
  }
4697
- var ni = class {
4700
+ var ri = class {
4698
4701
  protocol = "sse-post";
4699
4702
  async connect(e, t) {
4700
- let n = (await Be(e.action, e.body || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
4703
+ let n = (await Ve(e.action, e.body || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
4701
4704
  return (async () => {
4702
4705
  try {
4703
4706
  for (; !a;) {
4704
4707
  let { value: e, done: a } = await n.read();
4705
4708
  if (a) break;
4706
4709
  i += r.decode(e, { stream: !0 });
4707
- let { chunks: o, remainder: s } = ht(i);
4710
+ let { chunks: o, remainder: s } = gt(i);
4708
4711
  i = s;
4709
4712
  for (let e of o) {
4710
4713
  if (!e.trim()) continue;
4711
- let n = mt(e);
4714
+ let n = ht(e);
4712
4715
  for (let e of n) {
4713
4716
  if (e.eventName === "__done__") {
4714
4717
  t.onComplete();
4715
4718
  return;
4716
4719
  }
4717
- ti(e, t);
4720
+ ni(e, t);
4718
4721
  }
4719
4722
  }
4720
4723
  }
@@ -4726,27 +4729,27 @@ var ni = class {
4726
4729
  a = !0, n.cancel().catch(() => {});
4727
4730
  };
4728
4731
  }
4729
- }, ri = class {
4732
+ }, ii = class {
4730
4733
  protocol = "sse-get";
4731
4734
  async connect(e, t) {
4732
- let n = (await Ve(e.action, e.params || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
4735
+ let n = (await He(e.action, e.params || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
4733
4736
  return (async () => {
4734
4737
  try {
4735
4738
  for (; !a;) {
4736
4739
  let { value: e, done: a } = await n.read();
4737
4740
  if (a) break;
4738
4741
  i += r.decode(e, { stream: !0 });
4739
- let { chunks: o, remainder: s } = ht(i);
4742
+ let { chunks: o, remainder: s } = gt(i);
4740
4743
  i = s;
4741
4744
  for (let e of o) {
4742
4745
  if (!e.trim()) continue;
4743
- let n = mt(e);
4746
+ let n = ht(e);
4744
4747
  for (let e of n) {
4745
4748
  if (e.eventName === "__done__") {
4746
4749
  t.onComplete();
4747
4750
  return;
4748
4751
  }
4749
- ti(e, t);
4752
+ ni(e, t);
4750
4753
  }
4751
4754
  }
4752
4755
  }
@@ -4760,4 +4763,4 @@ var ni = class {
4760
4763
  }
4761
4764
  };
4762
4765
  //#endregion
4763
- export { ei as AgentWorkbench, Xr as ApiFacadeImpl, Mt as RunEngineImpl, ri as SseGetTransport, ni as SsePostTransport, ft as createProtocol };
4766
+ export { ti as AgentWorkbench, Zr as ApiFacadeImpl, Nt as RunEngineImpl, ii as SseGetTransport, ri as SsePostTransport, pt as createProtocol };