@kingsoftcloud/ksadk-web 0.2.16 → 0.2.18

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 (124) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist-ksadk/assets/{ArtifactsPanel-B06x6rZH.js → ArtifactsPanel-C0meuOdi.js} +1 -1
  3. package/dist-ksadk/assets/{CodeBlock-D0ZicJVx.js → CodeBlock-BbI4HPtJ.js} +1 -1
  4. package/dist-ksadk/assets/{MathMessageMarkdown-DnGENSaK.js → MathMessageMarkdown-DMLQYoLp.js} +1 -1
  5. package/dist-ksadk/assets/{MermaidBlock-hUd4MS-D.js → MermaidBlock-DCR8WZ17.js} +6 -6
  6. package/dist-ksadk/assets/{NativeTerminalPanel-HgxLA5wc.js → NativeTerminalPanel-CKUvWhUz.js} +1 -1
  7. package/dist-ksadk/assets/{arc-DdocI6pD.js → arc-bj2rZnP5.js} +1 -1
  8. package/dist-ksadk/assets/architecture-7EHR7CIX-Cr6Xz1_c.js +1 -0
  9. package/dist-ksadk/assets/{architectureDiagram-3BPJPVTR-CQMnd8MC.js → architectureDiagram-3BPJPVTR-2u1ltDIj.js} +1 -1
  10. package/dist-ksadk/assets/{blockDiagram-GPEHLZMM-_Kk7Sg5y.js → blockDiagram-GPEHLZMM-D6fvdK20.js} +1 -1
  11. package/dist-ksadk/assets/{c4Diagram-AAUBKEIU-B76y_Yuu.js → c4Diagram-AAUBKEIU-BK82L5n5.js} +1 -1
  12. package/dist-ksadk/assets/channel-BSSOwFIb.js +1 -0
  13. package/dist-ksadk/assets/{chunk-2J33WTMH-Brm7O3ZZ.js → chunk-2J33WTMH-DLVdkeyQ.js} +1 -1
  14. package/dist-ksadk/assets/{chunk-4BX2VUAB-Bl8JEjQI.js → chunk-4BX2VUAB-BbwsYcbW.js} +1 -1
  15. package/dist-ksadk/assets/{chunk-55IACEB6-CjasIGqA.js → chunk-55IACEB6-DOairxzw.js} +1 -1
  16. package/dist-ksadk/assets/{chunk-727SXJPM-BBJRvNjI.js → chunk-727SXJPM-hCO487gs.js} +1 -1
  17. package/dist-ksadk/assets/{chunk-AQP2D5EJ-VuZ8Sc3p.js → chunk-AQP2D5EJ-XU8vDOuG.js} +1 -1
  18. package/dist-ksadk/assets/{chunk-FMBD7UC4-CirX_mqI.js → chunk-FMBD7UC4-PrapyfMu.js} +1 -1
  19. package/dist-ksadk/assets/{chunk-ND2GUHAM-CfFXNLUo.js → chunk-ND2GUHAM-CboKhTZ3.js} +1 -1
  20. package/dist-ksadk/assets/chunk-QZHKN3VN-XXpdiwUL.js +1 -0
  21. package/dist-ksadk/assets/classDiagram-4FO5ZUOK-C5HvGiyK.js +1 -0
  22. package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-C5HvGiyK.js +1 -0
  23. package/dist-ksadk/assets/{cose-bilkent-S5V4N54A-DCCZQXHd.js → cose-bilkent-S5V4N54A-_N8bJ-EU.js} +1 -1
  24. package/dist-ksadk/assets/{dagre-BM42HDAG-DNfED9pb.js → dagre-BM42HDAG-FoDlo5J2.js} +1 -1
  25. package/dist-ksadk/assets/{diagram-2AECGRRQ-yO4PjQql.js → diagram-2AECGRRQ-BBp6ebBw.js} +1 -1
  26. package/dist-ksadk/assets/{diagram-5GNKFQAL-Bt2ljVnh.js → diagram-5GNKFQAL-CqOvG1PR.js} +1 -1
  27. package/dist-ksadk/assets/{diagram-KO2AKTUF-Bb7wNlPg.js → diagram-KO2AKTUF-O9T3t6ba.js} +1 -1
  28. package/dist-ksadk/assets/{diagram-LMA3HP47-CrH2YWcd.js → diagram-LMA3HP47-CGG8ekBO.js} +1 -1
  29. package/dist-ksadk/assets/{diagram-OG6HWLK6-bbtBEd5z.js → diagram-OG6HWLK6-4BmH1EEg.js} +1 -1
  30. package/dist-ksadk/assets/{dist-CyRnZq0Y.js → dist-6kSZvCZh.js} +1 -1
  31. package/dist-ksadk/assets/{dist-FZxygvt4.js → dist-B67uF2uK.js} +1 -1
  32. package/dist-ksadk/assets/{dist-DG5t7Qfp.js → dist-BMKM66B4.js} +1 -1
  33. package/dist-ksadk/assets/{dist-uW8Tf3ke.js → dist-BVzcWa6D.js} +1 -1
  34. package/dist-ksadk/assets/{dist-DKfGasx3.js → dist-Bk1l05Ni.js} +1 -1
  35. package/dist-ksadk/assets/{dist-Bn3JJ6WT.js → dist-BkJjNih3.js} +1 -1
  36. package/dist-ksadk/assets/{dist-D1A6B1m9.js → dist-BmuTWcm7.js} +1 -1
  37. package/dist-ksadk/assets/{dist-BA2ewTEN.js → dist-C2DKRFVK.js} +1 -1
  38. package/dist-ksadk/assets/{dist-pl0ZdN9h.js → dist-CWiTDN_V.js} +1 -1
  39. package/dist-ksadk/assets/{dist-BvXOJV-u.js → dist-CZ6C3x8B.js} +1 -1
  40. package/dist-ksadk/assets/{dist-cKezgS7F.js → dist-CiZHB6ZW.js} +1 -1
  41. package/dist-ksadk/assets/{dist-Yj9GFrNq.js → dist-Cp1_jKwf.js} +1 -1
  42. package/dist-ksadk/assets/{dist-BorYRkBd.js → dist-Cwhk4lwI.js} +1 -1
  43. package/dist-ksadk/assets/{dist-BVqRhq4R.js → dist-D5JGcxBx.js} +1 -1
  44. package/dist-ksadk/assets/{dist-D8EPdm_6.js → dist-D99wf6_X.js} +1 -1
  45. package/dist-ksadk/assets/{dist-CaTCmLPC.js → dist-DCpZrjaK.js} +1 -1
  46. package/dist-ksadk/assets/{dist-UgODcks7.js → dist-DI-oVAXw.js} +1 -1
  47. package/dist-ksadk/assets/{dist-521BEWj6.js → dist-DLMjL01k.js} +1 -1
  48. package/dist-ksadk/assets/{dist-C6o23WK-.js → dist-DLeM1OCK.js} +1 -1
  49. package/dist-ksadk/assets/{dist-B2SIcB2s.js → dist-DM0rEQPk.js} +1 -1
  50. package/dist-ksadk/assets/{dist-DP5ziceH.js → dist-DbaH3p5h.js} +1 -1
  51. package/dist-ksadk/assets/{dist-Crh9NdRs.js → dist-S4klkK5W.js} +1 -1
  52. package/dist-ksadk/assets/{erDiagram-TEJ5UH35-DUiCZd4K.js → erDiagram-TEJ5UH35-oJhaci7S.js} +1 -1
  53. package/dist-ksadk/assets/eventmodeling-FCH6USID-CIgwHJLL.js +1 -0
  54. package/dist-ksadk/assets/{flowDiagram-I6XJVG4X-DYGVQCIm.js → flowDiagram-I6XJVG4X-DtTmUan-.js} +1 -1
  55. package/dist-ksadk/assets/{ganttDiagram-6RSMTGT7-BhZtYjVe.js → ganttDiagram-6RSMTGT7-BSsb_eij.js} +1 -1
  56. package/dist-ksadk/assets/gitGraph-WXDBUCRP-BVAJ7uo0.js +1 -0
  57. package/dist-ksadk/assets/{gitGraphDiagram-PVQCEYII-C7drTtvf.js → gitGraphDiagram-PVQCEYII-BR5s6Pws.js} +1 -1
  58. package/dist-ksadk/assets/index-BH7-pC0B.js +165 -0
  59. package/dist-ksadk/assets/info-J43DQDTF-MT80V4ge.js +1 -0
  60. package/dist-ksadk/assets/{infoDiagram-5YYISTIA-DHmGck8o.js → infoDiagram-5YYISTIA-DYPc5cvh.js} +1 -1
  61. package/dist-ksadk/assets/{ishikawaDiagram-YF4QCWOH-fNk1ytOs.js → ishikawaDiagram-YF4QCWOH-MoBdALDg.js} +1 -1
  62. package/dist-ksadk/assets/{journeyDiagram-JHISSGLW-DaEsNvC6.js → journeyDiagram-JHISSGLW-DgLiQT8l.js} +1 -1
  63. package/dist-ksadk/assets/{kanban-definition-UN3LZRKU-BInyyqqY.js → kanban-definition-UN3LZRKU-CsFx112F.js} +1 -1
  64. package/dist-ksadk/assets/{katex-DGk10-r4.js → katex-DRsiwpM2.js} +1 -1
  65. package/dist-ksadk/assets/{linear-B2JRl5uz.js → linear-TNRQ5Orv.js} +1 -1
  66. package/dist-ksadk/assets/{mermaid-parser.core-CMRjttGv.js → mermaid-parser.core-D2eMVOgo.js} +2 -2
  67. package/dist-ksadk/assets/{mindmap-definition-RKZ34NQL-BUSqS_N5.js → mindmap-definition-RKZ34NQL-BtByYFhL.js} +1 -1
  68. package/dist-ksadk/assets/packet-YPE3B663-BLKhbXZB.js +1 -0
  69. package/dist-ksadk/assets/pie-LRSECV5Y-DFOikjSY.js +1 -0
  70. package/dist-ksadk/assets/{pieDiagram-4H26LBE5-DAc7TaHh.js → pieDiagram-4H26LBE5-DPnuCB8c.js} +1 -1
  71. package/dist-ksadk/assets/{quadrantDiagram-W4KKPZXB-CMTmojtL.js → quadrantDiagram-W4KKPZXB-miFpCPv4.js} +1 -1
  72. package/dist-ksadk/assets/radar-GUYGQ44K-095b1Ikw.js +1 -0
  73. package/dist-ksadk/assets/{requirementDiagram-4Y6WPE33-DMksKYum.js → requirementDiagram-4Y6WPE33-mjB_yYkW.js} +1 -1
  74. package/dist-ksadk/assets/{sankeyDiagram-5OEKKPKP-BPcqMkO3.js → sankeyDiagram-5OEKKPKP-D7hSlZZZ.js} +1 -1
  75. package/dist-ksadk/assets/{sequenceDiagram-3UESZ5HK-CmeJJ6Nf.js → sequenceDiagram-3UESZ5HK-D9Cx6hC3.js} +1 -1
  76. package/dist-ksadk/assets/{stateDiagram-AJRCARHV-D7oaMooj.js → stateDiagram-AJRCARHV-D_zrg47o.js} +1 -1
  77. package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-J9kCb0nC.js +1 -0
  78. package/dist-ksadk/assets/{timeline-definition-PNZ67QCA-BjxnngqB.js → timeline-definition-PNZ67QCA-CwSec0Wa.js} +1 -1
  79. package/dist-ksadk/assets/treeView-BLDUP644-yinfJEY6.js +1 -0
  80. package/dist-ksadk/assets/treemap-LRROVOQU-DosUqN1Q.js +1 -0
  81. package/dist-ksadk/assets/{vennDiagram-CIIHVFJN-CvHaX62m.js → vennDiagram-CIIHVFJN-agCVobiF.js} +1 -1
  82. package/dist-ksadk/assets/wardley-L42UT6IY-Bvp7-5uH.js +1 -0
  83. package/dist-ksadk/assets/{wardleyDiagram-YWT4CUSO-DgZ7L1lC.js → wardleyDiagram-YWT4CUSO-TmrlhWNt.js} +1 -1
  84. package/dist-ksadk/assets/{xychartDiagram-2RQKCTM6-C1D-4iPc.js → xychartDiagram-2RQKCTM6-DV71V-ah.js} +1 -1
  85. package/dist-ksadk/index.html +1 -1
  86. package/dist-lib/{ArtifactsPanel-D3AiN69_.js → ArtifactsPanel-DCn5q1OB.js} +1 -1
  87. package/dist-lib/{CodeBlock-CWHejqEk.js → CodeBlock-BGJr6bCf.js} +1 -1
  88. package/dist-lib/{MathMessageMarkdown-BlZXusY6.js → MathMessageMarkdown-DQPFplDT.js} +2 -2
  89. package/dist-lib/{NativeTerminalPanel-mQwtEFvo.js → NativeTerminalPanel-CjyPyYC4.js} +1 -1
  90. package/dist-lib/{WorkspacePanelContainer-D5WLGlO_.js → WorkspacePanelContainer-fvYVV4lp.js} +15 -17
  91. package/dist-lib/api/messages.d.ts +51 -0
  92. package/dist-lib/api/messages.d.ts.map +1 -0
  93. package/dist-lib/api/session.d.ts +20 -0
  94. package/dist-lib/api/session.d.ts.map +1 -1
  95. package/dist-lib/components.js +2 -2
  96. package/dist-lib/core/api/facade.d.ts +12 -0
  97. package/dist-lib/core/api/facade.d.ts.map +1 -1
  98. package/dist-lib/core/api/types.d.ts +38 -0
  99. package/dist-lib/core/api/types.d.ts.map +1 -1
  100. package/dist-lib/core/run/engine.d.ts.map +1 -1
  101. package/dist-lib/hooks/useSessionLifecycle.d.ts.map +1 -1
  102. package/dist-lib/runtime.js +277 -242
  103. package/dist-lib/utils/messages.d.ts +17 -0
  104. package/dist-lib/utils/messages.d.ts.map +1 -0
  105. package/dist-lib/utils/session-events.d.ts.map +1 -1
  106. package/package.json +1 -1
  107. package/dist-ksadk/assets/architecture-7EHR7CIX-secg40UA.js +0 -1
  108. package/dist-ksadk/assets/channel-Ch9mVx2Q.js +0 -1
  109. package/dist-ksadk/assets/chunk-QZHKN3VN-DJTxDPIP.js +0 -1
  110. package/dist-ksadk/assets/classDiagram-4FO5ZUOK-BcixWJ90.js +0 -1
  111. package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-BcixWJ90.js +0 -1
  112. package/dist-ksadk/assets/eventmodeling-FCH6USID-CyTirFUD.js +0 -1
  113. package/dist-ksadk/assets/gitGraph-WXDBUCRP-BLAtLgjE.js +0 -1
  114. package/dist-ksadk/assets/index-CouGNrf0.js +0 -165
  115. package/dist-ksadk/assets/info-J43DQDTF-Dpnm-hnd.js +0 -1
  116. package/dist-ksadk/assets/packet-YPE3B663-CBNSejbV.js +0 -1
  117. package/dist-ksadk/assets/pie-LRSECV5Y-DYYr4y45.js +0 -1
  118. package/dist-ksadk/assets/radar-GUYGQ44K-DvlkOiap.js +0 -1
  119. package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-UPHW9RVm.js +0 -1
  120. package/dist-ksadk/assets/treeView-BLDUP644-ClgeJ2Gz.js +0 -1
  121. package/dist-ksadk/assets/treemap-LRROVOQU-rQg49Xh0.js +0 -1
  122. package/dist-ksadk/assets/wardley-L42UT6IY-DYuzSwXI.js +0 -1
  123. package/dist-lib/utils/run-state.d.ts +0 -3
  124. package/dist-lib/utils/run-state.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { i as e, t } from "./capabilities-CiyyeRQ9.js";
2
- import { C as n, D as r, E as i, O as a, T as o, _ as s, b as c, c as l, f as u, g as d, h as f, k as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as ee, u as te, v as x, w as S, y as C } from "./WorkspacePanelContainer-D5WLGlO_.js";
2
+ import { C as n, D as r, E as i, O as a, T as o, _ as s, b as c, c as l, f as u, g as d, h as f, k as p, l as m, m as h, n as g, o as _, p as v, r as y, s as b, t as ee, u as te, v as x, w as S, y as C } from "./WorkspacePanelContainer-fvYVV4lp.js";
3
3
  import { t as w } from "./artifact-BfFsPe5A.js";
4
4
  import { X as T } from "lucide-react";
5
5
  import { Fragment as ne, jsx as E, jsxs as D } from "react/jsx-runtime";
@@ -969,7 +969,9 @@ var ht = new Set([
969
969
  "error",
970
970
  "cancelled",
971
971
  "canceled",
972
- "aborted"
972
+ "aborted",
973
+ "interrupted",
974
+ "resume_failed"
973
975
  ]);
974
976
  function gt(e) {
975
977
  if (e.EventType !== "run_status") return null;
@@ -1261,11 +1263,21 @@ var yt = {
1261
1263
  phase: "后台长任务已取消",
1262
1264
  status: "stopped",
1263
1265
  countEvent: !1
1266
+ }) : t === "interrupted" ? this.emit({
1267
+ type: "activity",
1268
+ phase: "后台长任务已中断",
1269
+ status: "stopped",
1270
+ countEvent: !1
1264
1271
  }) : t === "failed" || t === "error" ? this.emit({
1265
1272
  type: "activity",
1266
1273
  phase: "后台长任务失败",
1267
1274
  status: "failed",
1268
1275
  countEvent: !1
1276
+ }) : t === "resume_failed" ? this.emit({
1277
+ type: "activity",
1278
+ phase: "后台长任务恢复失败",
1279
+ status: "failed",
1280
+ countEvent: !1
1269
1281
  }) : this.emit({
1270
1282
  type: "activity",
1271
1283
  phase: "后台长任务已完成",
@@ -1732,7 +1744,9 @@ var Q = P()((e, t) => ({
1732
1744
  "error",
1733
1745
  "cancelled",
1734
1746
  "canceled",
1735
- "aborted"
1747
+ "aborted",
1748
+ "interrupted",
1749
+ "resume_failed"
1736
1750
  ]), Ft = new Set([
1737
1751
  "tool_call",
1738
1752
  "tool_result",
@@ -2212,18 +2226,12 @@ function rn(e = [], t = []) {
2212
2226
  return Number.isFinite(n) && Number.isFinite(r) && n !== r ? n - r : Number(e?.Timestamp || 0) - Number(t?.Timestamp || 0);
2213
2227
  });
2214
2228
  }
2215
- function an(e = []) {
2216
- return (Array.isArray(e) ? e : []).reduce((e, t) => {
2217
- let n = Number(t.SeqId || 0);
2218
- return Number.isFinite(n) ? Math.max(e, n) : e;
2219
- }, 0);
2220
- }
2221
- function on(e) {
2229
+ function an(e) {
2222
2230
  return e?.EventType === "run_status" ? Pt.has(String(e.Content?.status || "").trim().toLowerCase()) : !1;
2223
2231
  }
2224
2232
  //#endregion
2225
2233
  //#region src/core/run/dispatcher.ts
2226
- var $ = !1, sn = new Set(["completed"]), cn = new Set([
2234
+ var $ = !1, on = new Set(["completed"]), sn = new Set([
2227
2235
  "failed",
2228
2236
  "error",
2229
2237
  "cancelled",
@@ -2231,7 +2239,7 @@ var $ = !1, sn = new Set(["completed"]), cn = new Set([
2231
2239
  "aborted",
2232
2240
  "incomplete"
2233
2241
  ]);
2234
- function ln(e) {
2242
+ function cn(e) {
2235
2243
  $ || ($ = !0, J.getState().patchMessages((t) => [...t, {
2236
2244
  id: e,
2237
2245
  role: "model",
@@ -2240,8 +2248,8 @@ function ln(e) {
2240
2248
  reasoning: ""
2241
2249
  }]));
2242
2250
  }
2243
- function un(e) {
2244
- let t = String(e || "").trim().toLowerCase(), n = sn.has(t) ? "completed" : cn.has(t) ? "error" : null;
2251
+ function ln(e) {
2252
+ let t = String(e || "").trim().toLowerCase(), n = on.has(t) ? "completed" : sn.has(t) ? "error" : null;
2245
2253
  n && J.getState().patchMessages((e) => e.map((e) => {
2246
2254
  if (!e.tools) return e;
2247
2255
  let t = !1, r = Object.fromEntries(Object.entries(e.tools).map(([e, r]) => r.status === "running" ? (t = !0, [e, {
@@ -2254,7 +2262,7 @@ function un(e) {
2254
2262
  } : e;
2255
2263
  }));
2256
2264
  }
2257
- function dn(e) {
2265
+ function un(e) {
2258
2266
  if (e.sessionId && z.getState().currentSessionId !== e.sessionId) {
2259
2267
  e.type === "stage_changed" && (e.stage === "completing" || e.stage === "error" || e.stage === "cancelled") && ($ = !1);
2260
2268
  return;
@@ -2280,28 +2288,28 @@ function dn(e) {
2280
2288
  }]);
2281
2289
  break;
2282
2290
  case "assistant_message_created":
2283
- ln(e.messageId);
2291
+ cn(e.messageId);
2284
2292
  break;
2285
2293
  case "text_delta":
2286
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2294
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2287
2295
  ...t,
2288
2296
  content: t.content + e.delta
2289
2297
  } : t));
2290
2298
  break;
2291
2299
  case "text_final":
2292
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2300
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2293
2301
  ...t,
2294
2302
  content: e.text
2295
2303
  } : t));
2296
2304
  break;
2297
2305
  case "reasoning_delta":
2298
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2306
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2299
2307
  ...t,
2300
2308
  reasoning: (t.reasoning || "") + e.delta
2301
2309
  } : t));
2302
2310
  break;
2303
2311
  case "tool_upsert":
2304
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2312
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2305
2313
  ...t,
2306
2314
  tools: {
2307
2315
  ...t.tools || {},
@@ -2320,7 +2328,7 @@ function dn(e) {
2320
2328
  } : t));
2321
2329
  break;
2322
2330
  case "tool_result":
2323
- ln(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2331
+ cn(e.messageId), t.patchMessages((t) => t.map((t) => t.id === e.messageId ? {
2324
2332
  ...t,
2325
2333
  tools: {
2326
2334
  ...t.tools || {},
@@ -2380,7 +2388,7 @@ function dn(e) {
2380
2388
  }]), $ = !1;
2381
2389
  break;
2382
2390
  case "terminal":
2383
- un(e.status);
2391
+ ln(e.status);
2384
2392
  break;
2385
2393
  case "stream_event": {
2386
2394
  let t = e.sessionId || e.event.SessionId;
@@ -2407,12 +2415,12 @@ function dn(e) {
2407
2415
  }
2408
2416
  }
2409
2417
  }
2410
- function fn() {
2418
+ function dn() {
2411
2419
  $ = !1;
2412
2420
  }
2413
2421
  //#endregion
2414
2422
  //#region src/hooks/useRunAgent.ts
2415
- function pn(e) {
2423
+ function fn(e) {
2416
2424
  let t = M(/* @__PURE__ */ new Map()), n = M(() => {}), { agentId: r, apiFormats: i, agentFramework: a, selectedModel: o, selectedModelMetadata: s, thinkingMode: c, currentSessionIdRef: l, queuedDraftRef: u, onRunSettled: d, uiCapabilities: f } = e, p = A((e) => {
2417
2425
  e.updateConfig({
2418
2426
  agentId: r,
@@ -2433,7 +2441,7 @@ function pn(e) {
2433
2441
  f.RunLifecycle?.CheckpointResumePreview
2434
2442
  ]), m = A((n) => {
2435
2443
  let r = String(n || "new-session"), i = t.current.get(r);
2436
- return i ? p(i) : (i = new bt(e.api), p(i), i.subscribe(dn), t.current.set(r, i)), i;
2444
+ return i ? p(i) : (i = new bt(e.api), p(i), i.subscribe(un), t.current.set(r, i)), i;
2437
2445
  }, [e.api, p]);
2438
2446
  j(() => {
2439
2447
  for (let e of t.current.values()) p(e);
@@ -2443,7 +2451,7 @@ function pn(e) {
2443
2451
  }, [u]), g = A((e) => {
2444
2452
  let i = l.current, a = m(i);
2445
2453
  if (a.stage !== "idle") return !1;
2446
- fn(), _.getState().setMobileActionsOpen(!1), L.getState().setSessionStreaming(i, !0);
2454
+ dn(), _.getState().setMobileActionsOpen(!1), L.getState().setSessionStreaming(i, !0);
2447
2455
  let o = e.text.trim(), s = String(Date.now()), c = e.attachments.map((e) => ({
2448
2456
  name: e.name,
2449
2457
  url: URL.createObjectURL(e),
@@ -2525,7 +2533,7 @@ function pn(e) {
2525
2533
  resumeCheckpoint: A((e) => {
2526
2534
  let t = m(e.sessionId);
2527
2535
  if (t.stage !== "idle") return !1;
2528
- fn(), _.getState().setMobileActionsOpen(!1), L.getState().setSessionStreaming(e.sessionId, !0);
2536
+ dn(), _.getState().setMobileActionsOpen(!1), L.getState().setSessionStreaming(e.sessionId, !0);
2529
2537
  let r = t.resumeCheckpoint({
2530
2538
  ...e,
2531
2539
  onSettled: (e) => {
@@ -2535,13 +2543,13 @@ function pn(e) {
2535
2543
  return r || L.getState().setSessionStreaming(e.sessionId, !1), r;
2536
2544
  }, [m, d]),
2537
2545
  resetCompaction: A(() => {
2538
- fn();
2546
+ dn();
2539
2547
  }, [])
2540
2548
  };
2541
2549
  }
2542
2550
  //#endregion
2543
2551
  //#region src/hooks/useFeedback.ts
2544
- function mn(e) {
2552
+ function pn(e) {
2545
2553
  let { agentId: t, currentSessionId: n, isStreaming: r, api: i, submitDraft: a } = e;
2546
2554
  return {
2547
2555
  submitResponseFeedback: A(async (e) => {
@@ -2620,102 +2628,90 @@ function mn(e) {
2620
2628
  };
2621
2629
  }
2622
2630
  //#endregion
2623
- //#region src/utils/run-state.js
2624
- function hn(e) {
2625
- return String(e?.InvocationId || e?.invocation_id || e?.invocationId || "").trim();
2626
- }
2631
+ //#region src/utils/messages.js
2632
+ var mn = {
2633
+ running: "running",
2634
+ completed: "completed",
2635
+ failed: "error",
2636
+ paused: "paused",
2637
+ approved: "completed",
2638
+ denied: "completed"
2639
+ }, hn = {
2640
+ paused: "pending",
2641
+ approved: "approved",
2642
+ denied: "rejected"
2643
+ };
2627
2644
  function gn(e) {
2628
- let t = e?.Timestamp ?? e?.timestamp ?? e?.created_at ?? e?.CreatedAt;
2629
- if (typeof t == "number" && Number.isFinite(t)) return t > 1e11 ? t : t * 1e3;
2630
- if (typeof t == "string") {
2631
- let e = Date.parse(t);
2632
- return Number.isNaN(e) ? 0 : e;
2645
+ if (typeof e == "number") return e;
2646
+ if (typeof e == "string") {
2647
+ let t = Date.parse(e);
2648
+ if (Number.isFinite(t)) return t;
2633
2649
  }
2634
- return 0;
2650
+ return Date.now();
2635
2651
  }
2636
- var _n = new Set([
2637
- "in_progress",
2638
- "running",
2639
- "resuming",
2640
- "starting",
2641
- "queued",
2642
- "pending"
2643
- ]);
2644
- function vn(e) {
2645
- return String(e?.EventType || e?.event_type || "").trim();
2652
+ function _n(e) {
2653
+ if (typeof e == "string") return e;
2654
+ if (e && typeof e == "object") {
2655
+ if (typeof e.text == "string") return e.text;
2656
+ if (Array.isArray(e.parts)) return e.parts.map((e) => e && typeof e == "object" && typeof e.text == "string" ? e.text : "").join("");
2657
+ }
2658
+ return "";
2646
2659
  }
2647
- function yn(e = [], t = {}) {
2648
- let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = Array.isArray(e) ? e : [], a = Number.isFinite(Number(t.now)) ? Number(t.now) : Date.now(), o = Number.isFinite(Number(t.staleAfterMs)) ? Number(t.staleAfterMs) : 1800 * 1e3;
2649
- for (let e of i) {
2650
- let t = hn(e);
2651
- if (!t) continue;
2652
- let i = gn(e);
2653
- i && r.set(t, Math.max(r.get(t) || 0, i)), vn(e) === "run_status" && n.set(t, String(e?.Content?.status || e?.content?.status || "").trim());
2660
+ function vn(e) {
2661
+ let t = {};
2662
+ for (let n of e ?? []) {
2663
+ if (!n?.Name) continue;
2664
+ let e = mn[String(n.Status ?? "completed").toLowerCase()] ?? "completed", r = {
2665
+ name: n.Name,
2666
+ args: n.Args === void 0 ? "" : typeof n.Args == "string" ? n.Args : JSON.stringify(n.Args),
2667
+ status: e
2668
+ };
2669
+ n.Result !== void 0 && (r.output = typeof n.Result == "string" ? n.Result : JSON.stringify(n.Result)), n.ApprovalRequestId && (r.approvalRequestId = n.ApprovalRequestId, r.approvalStatus = hn[String(n.Status ?? "paused").toLowerCase()] ?? "pending"), n.ToolCallId && (r.previousResponseId = n.ToolCallId), t[n.Name] = r;
2654
2670
  }
2655
- return Array.from(n.entries()).filter(([e, t]) => {
2656
- let n = r.get(e) || 0, i = n > 0 && a - n > o;
2657
- return _n.has(t) && !i;
2658
- }).map(([e]) => e);
2671
+ return t;
2672
+ }
2673
+ function yn(e) {
2674
+ if (Array.isArray(e)) return e.map((e) => ({
2675
+ name: e.name || "",
2676
+ url: e.url || "",
2677
+ type: e.mime || "",
2678
+ fileUri: e.file_uri
2679
+ }));
2680
+ }
2681
+ function bn(e) {
2682
+ let t = e.Role === "assistant" ? "model" : e.Role || "user", n = e.ToolEvents?.length ? vn(e.ToolEvents) : void 0, r = yn(e.Attachments), i = e.Reasoning?.length ? e.Reasoning.map((e) => e.text).join("") : void 0, a = {
2683
+ id: e.MessageId || `msg-${e.SeqId ?? Math.random().toString(36).slice(2)}`,
2684
+ role: t,
2685
+ content: _n(e.Content),
2686
+ timestamp: gn(e.Timestamp),
2687
+ eventType: t === "user" ? "user_message" : "assistant_message",
2688
+ reasoning: i,
2689
+ tools: n,
2690
+ attachments: r
2691
+ };
2692
+ return e.MessageId && (a.eventId = e.MessageId), e.ResponseId && (a.responseId = e.ResponseId), e.TraceId && (a.traceId = e.TraceId), e.RootSpanId && (a.rootSpanId = e.RootSpanId), a;
2693
+ }
2694
+ function xn(e) {
2695
+ return e.map(bn);
2659
2696
  }
2660
2697
  //#endregion
2661
2698
  //#region src/utils/session-event-history.ts
2662
- function bn(e, t) {
2699
+ function Sn(e, t) {
2663
2700
  let n = Math.max(0, Number(e.offset) || 0), r = Math.max(0, Number(e.total) || 0);
2664
2701
  return n >= r ? null : {
2665
2702
  offset: n,
2666
2703
  limit: Math.min(Math.max(1, Number(t) || 1), r - n)
2667
2704
  };
2668
2705
  }
2669
- async function xn(e, t, n) {
2670
- let r = Math.max(1, Number(n?.pageSize) || 50), i = n?.shouldContinue || (() => !0), a = () => !i(), o = await t(e, {
2671
- offset: 0,
2672
- limit: 1
2673
- });
2674
- if (a()) return null;
2675
- let s = Math.max(0, Number(o.Total ?? o.Events?.length ?? 0) || 0);
2676
- if (s <= 1) return {
2677
- events: o.Events || [],
2678
- total: s,
2679
- offset: Number(o.Offset ?? 0),
2680
- limit: Number(o.Limit ?? o.Events?.length ?? 0)
2681
- };
2682
- let c = bn({
2683
- offset: 0,
2684
- total: s
2685
- }, r);
2686
- if (!c) return {
2687
- events: [],
2688
- total: s,
2689
- offset: 0,
2690
- limit: 0
2691
- };
2692
- let l = await t(e, c);
2693
- if (a()) return null;
2694
- let u = l.Events || [], d = u.length;
2695
- for (; d < s;) {
2696
- let n = bn({
2697
- offset: d,
2698
- total: s
2699
- }, r);
2700
- if (!n) break;
2701
- let i = await t(e, n);
2702
- if (a()) return null;
2703
- u = rn(i.Events || [], u), d += (i.Events || []).length;
2704
- }
2705
- return {
2706
- events: u,
2707
- total: s,
2708
- offset: d,
2709
- limit: u.length
2710
- };
2711
- }
2712
2706
  //#endregion
2713
2707
  //#region src/hooks/useSessionLifecycle.ts
2714
- var Sn = 9e4, Cn = 30, wn = 50, Tn = 500;
2715
- function En(e, t) {
2716
- return t.length ? e.length ? e.length >= t.length : !1 : !0;
2717
- }
2718
- function Dn(e) {
2708
+ var Cn = 9e4, wn = 30, Tn = 50, En = 500, Dn = new Set([
2709
+ "in_progress",
2710
+ "running",
2711
+ "resuming",
2712
+ "starting"
2713
+ ]);
2714
+ function On(e) {
2719
2715
  if (e.EventType !== "run_status") return null;
2720
2716
  let t = String(e.Content?.status || "").trim().toLowerCase();
2721
2717
  return t === "completed" ? {
@@ -2724,12 +2720,18 @@ function Dn(e) {
2724
2720
  } : t === "cancelled" || t === "canceled" || t === "aborted" ? {
2725
2721
  status: "stopped",
2726
2722
  phase: "后台长任务已取消"
2723
+ } : t === "interrupted" ? {
2724
+ status: "stopped",
2725
+ phase: "后台长任务已中断"
2727
2726
  } : t === "failed" || t === "error" ? {
2728
2727
  status: "failed",
2729
2728
  phase: "后台长任务失败"
2729
+ } : t === "resume_failed" ? {
2730
+ status: "failed",
2731
+ phase: "后台长任务恢复失败"
2730
2732
  } : null;
2731
2733
  }
2732
- function On(e) {
2734
+ function kn(e) {
2733
2735
  let { agentId: t, api: n, isMobile: r, resetCompaction: i, uiCapabilities: a, disconnectRun: o } = e, s = M(e.currentSessionId), l = M(e.agentId), u = M(null), d = M(null), f = M(null), p = A(async (e, t, r) => {
2734
2736
  let i = r.filter((e) => c(e, !1, !1));
2735
2737
  if (!i.length) return;
@@ -2763,7 +2765,7 @@ function On(e) {
2763
2765
  u.current !== t || t.signal.aborted || t.abort();
2764
2766
  }, o = globalThis.setTimeout(() => {
2765
2767
  a();
2766
- }, Sn);
2768
+ }, Cn);
2767
2769
  try {
2768
2770
  let o = (await n.subscribeRunEvents({
2769
2771
  sessionId: e.sessionId,
@@ -2793,8 +2795,8 @@ function On(e) {
2793
2795
  }
2794
2796
  try {
2795
2797
  let t = JSON.parse(o);
2796
- u = rn(u, [t]), i ||= on(t), r ||= i, t.EventType === "run_checkpoint" && Q.getState().upsertSessionCheckpoint(e.sessionId, t);
2797
- let n = Dn(t);
2798
+ u = rn(u, [t]), i ||= an(t), r ||= i, t.EventType === "run_checkpoint" && Q.getState().upsertSessionCheckpoint(e.sessionId, t);
2799
+ let n = On(t);
2798
2800
  if (n && L.getState().updateActivity({
2799
2801
  sessionId: e.sessionId,
2800
2802
  status: n.status,
@@ -2805,8 +2807,6 @@ function On(e) {
2805
2807
  a();
2806
2808
  break;
2807
2809
  }
2808
- let c = nn(u);
2809
- En(c, J.getState().messages) && J.getState().setMessages(c);
2810
2810
  } catch (e) {
2811
2811
  console.warn("Failed to parse run event data", o, e);
2812
2812
  }
@@ -2822,18 +2822,30 @@ function On(e) {
2822
2822
  let t = () => s.current === e;
2823
2823
  z.getState().setCurrentSessionId(e), i(), u.current?.abort(), r && _.getState().setMobileSidebarOpen(!1);
2824
2824
  try {
2825
- let r = await xn(e, n.listSessionEvents, {
2826
- pageSize: Tn,
2827
- shouldContinue: t
2825
+ let r = await n.listSessionMessages(e, {
2826
+ agentId: l.current || void 0,
2827
+ includeReasoning: !0,
2828
+ includeToolEvents: !0,
2829
+ includeAttachments: !0
2828
2830
  });
2829
- if (!r || (z.getState().setSessionEventCache(e, {
2830
- events: r.events,
2831
- total: r.total,
2832
- offset: r.offset,
2833
- limit: r.limit
2834
- }), !t())) return;
2835
- let i = F.getState().capabilities || a;
2836
- if (i.RunLifecycle.Enabled && i.RunLifecycle.Checkpoints ? (n.listSessionCheckpoints({
2831
+ if (!t()) return;
2832
+ let i = xn(r.Messages);
2833
+ J.getState().setMessages(i), p(l.current, e, i);
2834
+ let o = r.LatestSeqId || 0;
2835
+ n.listSessionEvents(e, { limit: En }).then((n) => {
2836
+ if (!t()) return;
2837
+ let r = n.Events || [];
2838
+ z.getState().setSessionEventCache(e, {
2839
+ events: r,
2840
+ total: n.Total ?? 0,
2841
+ offset: (n.Offset ?? 0) + r.length,
2842
+ limit: n.Limit ?? 0
2843
+ });
2844
+ }).catch((e) => {
2845
+ console.warn("[SessionLifecycle] event cache load failed:", e);
2846
+ });
2847
+ let s = F.getState().capabilities || a;
2848
+ if (s.RunLifecycle.Enabled && s.RunLifecycle.Checkpoints ? (n.listSessionCheckpoints({
2837
2849
  agentId: l.current,
2838
2850
  sessionId: e
2839
2851
  }).then((t) => {
@@ -2847,26 +2859,21 @@ function On(e) {
2847
2859
  Q.getState().setSessionToolReceipts(e, t.ToolReceipts || []);
2848
2860
  }).catch((t) => {
2849
2861
  console.warn("[SessionLifecycle] tool receipt load failed:", t), Q.getState().setSessionToolReceipts(e, []);
2850
- })) : Q.getState().clearSessionCheckpoints(e), r.events) {
2851
- let n = r.events, a = nn(n);
2862
+ })) : Q.getState().clearSessionCheckpoints(e), s.RunLifecycle.Enabled && s.RunLifecycle.Resume) try {
2863
+ let r = await n.getSession(e);
2852
2864
  if (!t()) return;
2853
- J.getState().setMessages(a), p(l.current, e, a);
2854
- let o = yn(n, {
2855
- now: Date.now(),
2856
- staleAfterMs: 1800 * 1e3
2857
- }), s = an(n);
2858
- i.RunLifecycle.Enabled && i.RunLifecycle.Resume && o[0] && m({
2865
+ let i = String(r.ActiveRunStatus || "").toLowerCase();
2866
+ Dn.has(i) && r.ActiveInvocationId && m({
2859
2867
  sessionId: e,
2860
- invocationId: o[0],
2861
- afterSeqId: s,
2862
- initialEvents: n
2868
+ invocationId: r.ActiveInvocationId,
2869
+ afterSeqId: o,
2870
+ initialEvents: []
2863
2871
  });
2864
- } else {
2865
- if (!t()) return;
2866
- J.getState().setMessages([]), Q.getState().setSessionCheckpoints(e, []), Q.getState().setSessionToolReceipts(e, []);
2872
+ } catch (e) {
2873
+ console.warn("[SessionLifecycle] getSession for reconnect failed:", e);
2867
2874
  }
2868
2875
  } catch (e) {
2869
- console.error("Failed to load session events:", e);
2876
+ console.error("Failed to load session messages:", e);
2870
2877
  }
2871
2878
  }, [
2872
2879
  n,
@@ -2881,13 +2888,13 @@ function On(e) {
2881
2888
  r.sessionsAgentId && r.sessionsAgentId !== e && r.resetSessionPagination(e), z.getState().setLoadingSessions(!0);
2882
2889
  let i = await n.listSessions(e, {
2883
2890
  page: 1,
2884
- pageSize: Cn
2891
+ pageSize: wn
2885
2892
  });
2886
2893
  z.getState().upsertSessions(i.Sessions || [], {
2887
2894
  agentId: e,
2888
2895
  total: Number(i.Total ?? i.Sessions?.length ?? 0),
2889
2896
  page: Number(i.Page ?? 1),
2890
- pageSize: Number(i.PageSize ?? Cn),
2897
+ pageSize: Number(i.PageSize ?? wn),
2891
2898
  replace: !0
2892
2899
  });
2893
2900
  let a = z.getState().sessions, o = s.current, c = we(a, o || t || Se(e));
@@ -2903,11 +2910,11 @@ function On(e) {
2903
2910
  if (e.isLoadingSessions || !e.hasMoreSessions) return;
2904
2911
  let t = le({
2905
2912
  total: e.sessionsTotal,
2906
- pageSize: e.sessionsPageSize || Cn,
2913
+ pageSize: e.sessionsPageSize || wn,
2907
2914
  loadedPages: e.loadedPages
2908
2915
  });
2909
2916
  if (!t) return;
2910
- let r = e.sessionsPageSize || Cn, i = e.sessionsAgentId || l.current || "default-agent";
2917
+ let r = e.sessionsPageSize || wn, i = e.sessionsAgentId || l.current || "default-agent";
2911
2918
  try {
2912
2919
  z.getState().setLoadingSessions(!0);
2913
2920
  let a = await n.listSessions(i, {
@@ -2969,7 +2976,7 @@ function On(e) {
2969
2976
  loadOlderSessionEvents: A(async (e) => {
2970
2977
  let t = z.getState().eventCache[e];
2971
2978
  if (!t || t.isLoadingOlder) return;
2972
- let r = bn(t, wn);
2979
+ let r = Sn(t, Tn);
2973
2980
  if (r) try {
2974
2981
  z.getState().setSessionEventLoadingOlder(e, !0);
2975
2982
  let i = await n.listSessionEvents(e, r), a = i.Events || [], o = rn(a, t.events), c = t.offset + a.length;
@@ -2997,7 +3004,7 @@ function On(e) {
2997
3004
  }
2998
3005
  //#endregion
2999
3006
  //#region src/components/chat/ConnectedSidebar.tsx
3000
- function kn({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSession: s, loadMoreSessions: c }) {
3007
+ function An({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSession: s, loadMoreSessions: c }) {
3001
3008
  let u = z((e) => e.sessions), d = z((e) => e.currentSessionId), f = z((e) => e.pinnedSessionIds), m = z((e) => e.isLoadingSessions), h = z((e) => e.hasMoreSessions), g = _((e) => e.sidebarOpen), v = _((e) => e.mobileSidebarOpen), { isMobile: y } = Pe(), b = t(e), { desktopSidebarVisible: ee } = ge({
3002
3009
  isMobile: y,
3003
3010
  desktopSidebarOpen: g,
@@ -3060,13 +3067,13 @@ function kn({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSess
3060
3067
  }
3061
3068
  //#endregion
3062
3069
  //#region src/components/ui/dialog.tsx
3063
- var An = N.Root, jn = N.Portal, Mn = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Overlay, {
3070
+ var jn = N.Root, Mn = N.Portal, Nn = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Overlay, {
3064
3071
  ref: n,
3065
3072
  className: p("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", e),
3066
3073
  ...t
3067
3074
  }));
3068
- Mn.displayName = N.Overlay.displayName;
3069
- var Nn = O.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ D(jn, { children: [/* @__PURE__ */ E(Mn, {}), /* @__PURE__ */ D(N.Content, {
3075
+ Nn.displayName = N.Overlay.displayName;
3076
+ var Pn = O.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ */ D(Mn, { children: [/* @__PURE__ */ E(Nn, {}), /* @__PURE__ */ D(N.Content, {
3070
3077
  ref: r,
3071
3078
  className: p("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", e),
3072
3079
  ...n,
@@ -3078,50 +3085,50 @@ var Nn = O.forwardRef(({ className: e, children: t, ...n }, r) => /* @__PURE__ *
3078
3085
  })]
3079
3086
  })]
3080
3087
  })] }));
3081
- Nn.displayName = N.Content.displayName;
3082
- var Pn = ({ className: e, ...t }) => /* @__PURE__ */ E("div", {
3088
+ Pn.displayName = N.Content.displayName;
3089
+ var Fn = ({ className: e, ...t }) => /* @__PURE__ */ E("div", {
3083
3090
  className: p("flex flex-col space-y-1.5 text-center sm:text-left", e),
3084
3091
  ...t
3085
3092
  });
3086
- Pn.displayName = "DialogHeader";
3087
- var Fn = ({ className: e, ...t }) => /* @__PURE__ */ E("div", {
3093
+ Fn.displayName = "DialogHeader";
3094
+ var In = ({ className: e, ...t }) => /* @__PURE__ */ E("div", {
3088
3095
  className: p("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", e),
3089
3096
  ...t
3090
3097
  });
3091
- Fn.displayName = "DialogFooter";
3092
- var In = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Title, {
3098
+ In.displayName = "DialogFooter";
3099
+ var Ln = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Title, {
3093
3100
  ref: n,
3094
3101
  className: p("text-lg font-semibold leading-none tracking-tight", e),
3095
3102
  ...t
3096
3103
  }));
3097
- In.displayName = N.Title.displayName;
3098
- var Ln = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Description, {
3104
+ Ln.displayName = N.Title.displayName;
3105
+ var Rn = O.forwardRef(({ className: e, ...t }, n) => /* @__PURE__ */ E(N.Description, {
3099
3106
  ref: n,
3100
3107
  className: p("text-sm text-muted-foreground", e),
3101
3108
  ...t
3102
3109
  }));
3103
- Ln.displayName = N.Description.displayName;
3110
+ Rn.displayName = N.Description.displayName;
3104
3111
  //#endregion
3105
3112
  //#region src/components/chat/AttachmentPreview.tsx
3106
- function Rn(e, t) {
3113
+ function zn(e, t) {
3107
3114
  if (!(!t || e)) return {
3108
3115
  width: `min(${t.width}px, calc(100vw - 5rem))`,
3109
3116
  height: `min(${t.height}px, calc(100vh - 9rem))`
3110
3117
  };
3111
3118
  }
3112
- function zn(e, t) {
3119
+ function Bn(e, t) {
3113
3120
  if (!(!t || e)) return { width: `min(${t.width + 32}px, calc(100vw - 3rem))` };
3114
3121
  }
3115
- function Bn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onImageLoad: i }) {
3116
- return /* @__PURE__ */ E(An, {
3122
+ function Vn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onImageLoad: i }) {
3123
+ return /* @__PURE__ */ E(jn, {
3117
3124
  open: !!e?.url,
3118
3125
  onOpenChange: (e) => !e && r(),
3119
- children: /* @__PURE__ */ D(Nn, {
3126
+ children: /* @__PURE__ */ D(Pn, {
3120
3127
  className: p("gap-0 overflow-hidden border-slate-700 bg-slate-950 p-0 text-slate-100 shadow-2xl [&>button]:right-3 [&>button]:top-3 [&>button]:rounded-md [&>button]:border [&>button]:border-slate-700 [&>button]:bg-slate-900/70 [&>button]:p-1.5 [&>button]:text-slate-200 [&>button]:opacity-100", t ? "left-0 top-0 h-[var(--app-height)] max-h-[var(--app-height)] w-screen max-w-none translate-x-0 translate-y-0 rounded-none border-0" : "max-h-[calc(100vh-2rem)] max-w-[calc(100vw-2rem)] rounded-2xl"),
3121
- style: zn(t, n),
3128
+ style: Bn(t, n),
3122
3129
  children: [/* @__PURE__ */ E("div", {
3123
3130
  className: "flex items-center gap-3 border-b border-slate-800 px-4 py-3 pr-16",
3124
- children: /* @__PURE__ */ E(In, {
3131
+ children: /* @__PURE__ */ E(Ln, {
3125
3132
  className: "truncate text-sm font-medium",
3126
3133
  children: e?.name || "附件预览"
3127
3134
  })
@@ -3131,7 +3138,7 @@ function Bn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onIma
3131
3138
  src: e.url,
3132
3139
  alt: e.name,
3133
3140
  className: p("object-contain", t ? "h-auto max-h-full w-full max-w-full" : "h-auto w-auto max-h-[calc(100vh-9rem)] max-w-[calc(100vw-5rem)]"),
3134
- style: Rn(t, n),
3141
+ style: zn(t, n),
3135
3142
  onLoad: (e) => {
3136
3143
  let t = e.currentTarget;
3137
3144
  i({
@@ -3150,7 +3157,7 @@ function Bn({ attachment: e, isMobile: t, previewImageSize: n, onClose: r, onIma
3150
3157
  }
3151
3158
  //#endregion
3152
3159
  //#region src/utils/context.js
3153
- function Vn(e) {
3160
+ function Hn(e) {
3154
3161
  if (typeof e == "number" && Number.isFinite(e) && e > 0) return e;
3155
3162
  if (typeof e == "string" && e.trim()) {
3156
3163
  let t = Number(e);
@@ -3158,15 +3165,15 @@ function Vn(e) {
3158
3165
  }
3159
3166
  return null;
3160
3167
  }
3161
- function Hn(e) {
3168
+ function Un(e) {
3162
3169
  return /[\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]/u.test(e);
3163
3170
  }
3164
- function Un(e) {
3171
+ function Wn(e) {
3165
3172
  let t = String(e || "").trim();
3166
3173
  if (!t) return 0;
3167
3174
  let n = 0, r = 0;
3168
3175
  for (let e of t) {
3169
- if (Hn(e)) {
3176
+ if (Un(e)) {
3170
3177
  n += 1;
3171
3178
  continue;
3172
3179
  }
@@ -3174,24 +3181,24 @@ function Un(e) {
3174
3181
  }
3175
3182
  return Math.max(1, n + Math.ceil(r / 4));
3176
3183
  }
3177
- function Wn(e) {
3178
- if (!e) return 0;
3179
- if (e.role === "system") return e.eventType === "context_checkpoint" ? Un(e.summary || "") : 0;
3180
- let t = Un(e.content || "");
3181
- return e.tools && (t += Object.values(e.tools).reduce((e, t) => e + Un(t?.name || "") + Un(t?.args || "") + Un(t?.output || ""), 0)), t;
3182
- }
3183
3184
  function Gn(e) {
3184
- return e ? Vn(e.context_window_tokens) ?? Vn(e?.limits?.context_window_tokens) : null;
3185
+ if (!e) return 0;
3186
+ if (e.role === "system") return e.eventType === "context_checkpoint" ? Wn(e.summary || "") : 0;
3187
+ let t = Wn(e.content || "");
3188
+ return e.tools && (t += Object.values(e.tools).reduce((e, t) => e + Wn(t?.name || "") + Wn(t?.args || "") + Wn(t?.output || ""), 0)), t;
3185
3189
  }
3186
3190
  function Kn(e) {
3187
- return e ? Vn(e.auto_compact_threshold_percentage) ?? 84 : 84;
3191
+ return e ? Hn(e.context_window_tokens) ?? Hn(e?.limits?.context_window_tokens) : null;
3188
3192
  }
3189
- function qn({ messages: e, draftInput: t, selectedModel: n }) {
3190
- let r = Gn(n);
3193
+ function qn(e) {
3194
+ return e ? Hn(e.auto_compact_threshold_percentage) ?? 84 : 84;
3195
+ }
3196
+ function Jn({ messages: e, draftInput: t, selectedModel: n }) {
3197
+ let r = Kn(n);
3191
3198
  if (!r) return null;
3192
3199
  let i = [...e || []].reverse().find((e) => e?.role === "system" && e?.eventType === "context_checkpoint" && e?.status === "running");
3193
3200
  if (i) {
3194
- let e = Wn(i);
3201
+ let e = Gn(i);
3195
3202
  return {
3196
3203
  label: "正在压缩上下文…",
3197
3204
  phase: "compressing",
@@ -3200,10 +3207,10 @@ function qn({ messages: e, draftInput: t, selectedModel: n }) {
3200
3207
  percent: Math.min(100, Math.max(0, Math.round(e / r * 100)))
3201
3208
  };
3202
3209
  }
3203
- let a = (e || []).reduce((e, t) => e + Wn(t), 0) + Un(t || "");
3210
+ let a = (e || []).reduce((e, t) => e + Gn(t), 0) + Wn(t || "");
3204
3211
  if (a <= 0) return null;
3205
3212
  let o = Math.min(100, Math.max(0, Math.round(a / r * 100)));
3206
- return o >= Kn(n) ? {
3213
+ return o >= qn(n) ? {
3207
3214
  label: `估算上下文 ${o}% · 即将压缩`,
3208
3215
  phase: "warning",
3209
3216
  percent: o,
@@ -3219,8 +3226,8 @@ function qn({ messages: e, draftInput: t, selectedModel: n }) {
3219
3226
  }
3220
3227
  //#endregion
3221
3228
  //#region src/components/chat/ConnectedMessageList.tsx
3222
- function Jn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback: r, onRespondToApproval: i, onStopGeneration: a, onCancelRemote: o, checkpointResumeEnabled: s = !1, onResumeCheckpoint: c, onLoadOlderSessionEvents: l }) {
3223
- let u = J((e) => e.messages), d = z((e) => e.currentSessionId), f = L((e) => !!(e.getSessionActivity(d) && e.isSessionStreaming(d))), p = L((e) => e.getSessionActivity(d)), h = Q((e) => e.getSessionCheckpoints(d)), g = z((e) => d ? e.eventCache[d] : null), v = _((e) => e.input), y = I((e) => e.availableModels), b = I((e) => e.selectedModel), ee = _((e) => e.previewAttachment), te = _((e) => e.previewImageSize), x = M(null), S = M(!0), C = M(!1), w = M(0), T = M(f), O = M(!1), k = M(!0), re = ie(() => y.find((e) => e.id === b) || null, [y, b]), A = ie(() => qn({
3229
+ function Yn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback: r, onRespondToApproval: i, onStopGeneration: a, onCancelRemote: o, checkpointResumeEnabled: s = !1, onResumeCheckpoint: c, onLoadOlderSessionEvents: l }) {
3230
+ let u = J((e) => e.messages), d = z((e) => e.currentSessionId), f = L((e) => !!(e.getSessionActivity(d) && e.isSessionStreaming(d))), p = L((e) => e.getSessionActivity(d)), h = Q((e) => e.getSessionCheckpoints(d)), g = z((e) => d ? e.eventCache[d] : null), v = _((e) => e.input), y = I((e) => e.availableModels), b = I((e) => e.selectedModel), ee = _((e) => e.previewAttachment), te = _((e) => e.previewImageSize), x = M(null), S = M(!0), C = M(!1), w = M(0), T = M(f), O = M(!1), k = M(!0), re = ie(() => y.find((e) => e.id === b) || null, [y, b]), A = ie(() => Jn({
3224
3231
  messages: u,
3225
3232
  draftInput: v,
3226
3233
  selectedModel: re
@@ -3306,7 +3313,7 @@ function Jn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
3306
3313
  checkpoints: s ? h : [],
3307
3314
  onResumeCheckpoint: c,
3308
3315
  scrollRef: x
3309
- }), /* @__PURE__ */ E(Bn, {
3316
+ }), /* @__PURE__ */ E(Vn, {
3310
3317
  attachment: ee,
3311
3318
  isMobile: t,
3312
3319
  previewImageSize: te,
@@ -3318,7 +3325,7 @@ function Jn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
3318
3325
  }
3319
3326
  //#endregion
3320
3327
  //#region src/utils/attachment.ts
3321
- function Yn(e) {
3328
+ function Xn(e) {
3322
3329
  return [
3323
3330
  e.name,
3324
3331
  e.size,
@@ -3326,19 +3333,19 @@ function Yn(e) {
3326
3333
  e.type
3327
3334
  ].join(":");
3328
3335
  }
3329
- function Xn(e, t) {
3336
+ function Zn(e, t) {
3330
3337
  let n = /* @__PURE__ */ new Map();
3331
- for (let t of e) n.set(Yn(t), t);
3332
- for (let e of t) n.set(Yn(e), e);
3338
+ for (let t of e) n.set(Xn(t), t);
3339
+ for (let e of t) n.set(Xn(e), e);
3333
3340
  return Array.from(n.values());
3334
3341
  }
3335
- function Zn(e) {
3342
+ function Qn(e) {
3336
3343
  return Array.from(e.clipboardData.items || []).filter((e) => e.kind === "file").map((e) => e.getAsFile()).filter((e) => !!e);
3337
3344
  }
3338
3345
  //#endregion
3339
3346
  //#region src/components/chat/ConnectedComposer.tsx
3340
- function Qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRemote: r, isMobile: i }) {
3341
- let o = _((e) => e.input), s = _((e) => e.attachments), c = z((e) => e.currentSessionId), l = L((e) => !!(e.getSessionActivity(c) && e.isSessionStreaming(c))), u = _((e) => e.queuedDrafts), d = J((e) => e.messages), f = I((e) => e.availableModels), p = I((e) => e.selectedModel), m = M(null), h = M(null), g = ie(() => f.find((e) => e.id === p) || null, [f, p]), v = ie(() => qn({
3347
+ function $n({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRemote: r, isMobile: i }) {
3348
+ let o = _((e) => e.input), s = _((e) => e.attachments), c = z((e) => e.currentSessionId), l = L((e) => !!(e.getSessionActivity(c) && e.isSessionStreaming(c))), u = _((e) => e.queuedDrafts), d = J((e) => e.messages), f = I((e) => e.availableModels), p = I((e) => e.selectedModel), m = M(null), h = M(null), g = ie(() => f.find((e) => e.id === p) || null, [f, p]), v = ie(() => Jn({
3342
3349
  messages: d,
3343
3350
  draftInput: o,
3344
3351
  selectedModel: g
@@ -3355,7 +3362,7 @@ function Qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
3355
3362
  let b = (t) => {
3356
3363
  _.getState().setInput(t.target.value), t.target.style.height = "auto", t.target.style.height = `${Math.min(t.target.scrollHeight, e)}px`;
3357
3364
  }, ee = (e) => {
3358
- e.length && _.getState().setAttachments((t) => Xn(t, e));
3365
+ e.length && _.getState().setAttachments((t) => Zn(t, e));
3359
3366
  };
3360
3367
  return /* @__PURE__ */ E(a, {
3361
3368
  attachments: s,
@@ -3369,7 +3376,7 @@ function Qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
3369
3376
  onAppendAttachments: ee,
3370
3377
  onInputChange: b,
3371
3378
  onPaste: (e) => {
3372
- let t = Zn(e);
3379
+ let t = Qn(e);
3373
3380
  t.length && (e.preventDefault(), e.stopPropagation(), ee(t));
3374
3381
  },
3375
3382
  onRemoveAttachment: (e) => _.getState().setAttachments((t) => t.filter((t, n) => n !== e)),
@@ -3381,7 +3388,7 @@ function Qn({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
3381
3388
  }
3382
3389
  //#endregion
3383
3390
  //#region src/api/session.ts
3384
- async function $n(e, t) {
3391
+ async function er(e, t) {
3385
3392
  let n = await q("ListSessions", {
3386
3393
  AgentId: e,
3387
3394
  Page: t?.page,
@@ -3394,15 +3401,18 @@ async function $n(e, t) {
3394
3401
  PageSize: Number.isFinite(Number(n.PageSize)) ? Number(n.PageSize) : t?.pageSize ?? n.Sessions?.length ?? 0
3395
3402
  };
3396
3403
  }
3397
- async function er(e, t) {
3404
+ async function tr(e, t) {
3398
3405
  return (await q("CreateSession", { AgentId: e }, t)).Session;
3399
3406
  }
3400
- async function tr(e, t) {
3407
+ async function nr(e, t) {
3401
3408
  await q("DeleteSession", { SessionId: e }, t);
3402
3409
  }
3410
+ async function rr(e, t) {
3411
+ return (await q("GetSession", { SessionId: e }, t)).Session;
3412
+ }
3403
3413
  //#endregion
3404
3414
  //#region src/api/events.ts
3405
- async function nr(e, t) {
3415
+ async function ir(e, t) {
3406
3416
  let n = await q("ListSessionEvents", {
3407
3417
  SessionId: e,
3408
3418
  Offset: t?.offset,
@@ -3416,20 +3426,39 @@ async function nr(e, t) {
3416
3426
  };
3417
3427
  }
3418
3428
  //#endregion
3429
+ //#region src/api/messages.ts
3430
+ async function ar(e, t) {
3431
+ let n = await q("ListSessionMessages", {
3432
+ AgentId: t?.agentId,
3433
+ SessionId: e,
3434
+ AfterSeqId: t?.afterSeqId,
3435
+ Limit: t?.limit,
3436
+ IncludeReasoning: t?.includeReasoning,
3437
+ IncludeToolEvents: t?.includeToolEvents,
3438
+ IncludeAttachments: t?.includeAttachments
3439
+ }, t);
3440
+ return {
3441
+ Messages: n.Messages ?? [],
3442
+ LatestSeqId: Number.isFinite(Number(n.LatestSeqId)) ? Number(n.LatestSeqId) : 0,
3443
+ HasMore: !!n.HasMore,
3444
+ NextCursor: Number.isFinite(Number(n.NextCursor)) ? Number(n.NextCursor) : null
3445
+ };
3446
+ }
3447
+ //#endregion
3419
3448
  //#region src/api/run.ts
3420
- async function rr(e, t) {
3449
+ async function or(e, t) {
3421
3450
  return Re("RunAgent", e, t);
3422
3451
  }
3423
3452
  //#endregion
3424
3453
  //#region src/api/checkpoints.ts
3425
- async function ir(e, t) {
3454
+ async function sr(e, t) {
3426
3455
  let n = {
3427
3456
  AgentId: e.agentId,
3428
3457
  SessionId: e.sessionId
3429
3458
  };
3430
3459
  return e.runId && (n.RunId = e.runId), q("ListSessionCheckpoints", n, t);
3431
3460
  }
3432
- async function ar(e, t) {
3461
+ async function cr(e, t) {
3433
3462
  return q("GetCheckpointResumePreview", {
3434
3463
  AgentId: e.agentId,
3435
3464
  SessionId: e.sessionId,
@@ -3437,14 +3466,14 @@ async function ar(e, t) {
3437
3466
  CheckpointId: e.checkpointId
3438
3467
  }, t);
3439
3468
  }
3440
- async function or(e, t) {
3469
+ async function lr(e, t) {
3441
3470
  let n = {
3442
3471
  AgentId: e.agentId,
3443
3472
  SessionId: e.sessionId
3444
3473
  };
3445
3474
  return e.runId && (n.RunId = e.runId), e.checkpointId && (n.CheckpointId = e.checkpointId), q("ListToolReceipts", n, t);
3446
3475
  }
3447
- async function sr(e, t) {
3476
+ async function ur(e, t) {
3448
3477
  let n = {
3449
3478
  AgentId: e.agentId,
3450
3479
  SessionId: e.sessionId,
@@ -3456,23 +3485,23 @@ async function sr(e, t) {
3456
3485
  }
3457
3486
  //#endregion
3458
3487
  //#region src/api/workspace.ts
3459
- async function cr(e, t, n) {
3488
+ async function dr(e, t, n) {
3460
3489
  return q("ListWorkspaceFiles", {
3461
3490
  AgentId: e,
3462
3491
  Path: t,
3463
3492
  Recursive: n
3464
3493
  });
3465
3494
  }
3466
- async function lr(e) {
3495
+ async function fr(e) {
3467
3496
  return Ie("AddWorkspaceFile", e);
3468
3497
  }
3469
- async function ur(e, t) {
3498
+ async function pr(e, t) {
3470
3499
  return q("DeleteWorkspaceFile", {
3471
3500
  AgentId: e,
3472
3501
  Path: t
3473
3502
  });
3474
3503
  }
3475
- async function dr(e, t, n) {
3504
+ async function mr(e, t, n) {
3476
3505
  return Le("GetWorkspaceFileContent", {
3477
3506
  AgentId: e,
3478
3507
  FilePath: t
@@ -3483,38 +3512,44 @@ async function dr(e, t, n) {
3483
3512
  }
3484
3513
  //#endregion
3485
3514
  //#region src/api/upload.ts
3486
- async function fr(e, t) {
3515
+ async function hr(e, t) {
3487
3516
  return Ie("UploadFile", e, t);
3488
3517
  }
3489
3518
  //#endregion
3490
3519
  //#region src/core/api/facade.ts
3491
- var pr = class {
3520
+ var gr = class {
3492
3521
  async listSessions(e, t) {
3493
- return $n(e, t);
3522
+ return er(e, t);
3494
3523
  }
3495
3524
  async createSession(e, t) {
3496
- return { SessionId: (await er(e, t)).SessionId };
3525
+ return { SessionId: (await tr(e, t)).SessionId };
3497
3526
  }
3498
3527
  async deleteSession(e, t) {
3499
- await tr(e, t);
3528
+ await nr(e, t);
3529
+ }
3530
+ async getSession(e, t) {
3531
+ return rr(e, t);
3500
3532
  }
3501
3533
  async listSessionEvents(e, t) {
3502
- return nr(e, t);
3534
+ return ir(e, t);
3535
+ }
3536
+ async listSessionMessages(e, t) {
3537
+ return ar(e, t);
3503
3538
  }
3504
3539
  async listSessionCheckpoints(e, t) {
3505
- return ir(e, t);
3540
+ return sr(e, t);
3506
3541
  }
3507
3542
  async previewCheckpointResume(e, t) {
3508
- return ar(e, t);
3543
+ return cr(e, t);
3509
3544
  }
3510
3545
  async listToolReceipts(e, t) {
3511
- return or(e, t);
3546
+ return lr(e, t);
3512
3547
  }
3513
3548
  async runAgent(e, t) {
3514
- return rr(e, t);
3549
+ return or(e, t);
3515
3550
  }
3516
3551
  async resumeRun(e, t) {
3517
- return sr(e, t);
3552
+ return ur(e, t);
3518
3553
  }
3519
3554
  async subscribeRunEvents(e, t) {
3520
3555
  return ze("SubscribeRunEvents", {
@@ -3539,16 +3574,16 @@ var pr = class {
3539
3574
  await q("DeleteResponseFeedback", e, t);
3540
3575
  }
3541
3576
  async listWorkspaceFiles(e, t, n) {
3542
- return cr(e, t, n);
3577
+ return dr(e, t, n);
3543
3578
  }
3544
3579
  async addWorkspaceFile(e) {
3545
- return lr(e);
3580
+ return fr(e);
3546
3581
  }
3547
3582
  async deleteWorkspaceFile(e, t) {
3548
- await ur(e, t);
3583
+ await pr(e, t);
3549
3584
  }
3550
3585
  async getWorkspaceFileContent(e, t, n) {
3551
- return dr(e, t, n);
3586
+ return mr(e, t, n);
3552
3587
  }
3553
3588
  async listAgentModels(e) {
3554
3589
  return Ve(e);
@@ -3557,14 +3592,14 @@ var pr = class {
3557
3592
  return Be();
3558
3593
  }
3559
3594
  async uploadFile(e, t) {
3560
- return fr(e, t);
3595
+ return hr(e, t);
3561
3596
  }
3562
- }, mr = new pr(), hr = k.lazy(() => import("./ArtifactsPanel-D3AiN69_.js").then((e) => ({ default: e.ArtifactsPanel }))), gr = k.lazy(() => import("./NativeTerminalPanel-mQwtEFvo.js").then((e) => e.n).then((e) => ({ default: e.NativeTerminalPanel })));
3563
- function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3564
- let a = e || mr, o = F((e) => e.agentId), s = z((e) => e.currentSessionId), c = L((e) => e.isStreaming), l = _((e) => e.sidebarOpen), u = _((e) => e.mobileSidebarOpen), d = _((e) => e.mobileActionsOpen), f = F((e) => e.agentName), p = I((e) => e.selectedModel), m = I((e) => e.availableModels), h = I((e) => e.modelSource), v = I((e) => e.modelCatalogLoaded), te = I((e) => e.thinkingMode), x = F((e) => e.agentFramework), S = F((e) => e.workspaceFiles), C = F((e) => e.accessMode), T = _((e) => e.workspacePanelOpen), O = _((e) => e.workspacePanelWidth), k = _((e) => e.workspacePanelFullscreen), ie = F((e) => e.apiFormats), N = F((e) => e.capabilities), P = w((e) => e.visible && !!e.content), oe = M([]), se = M(null), { isMobile: R, viewportHeight: ce } = Pe(), le = _e({
3597
+ }, _r = new gr(), vr = k.lazy(() => import("./ArtifactsPanel-DCn5q1OB.js").then((e) => ({ default: e.ArtifactsPanel }))), yr = k.lazy(() => import("./NativeTerminalPanel-CjyPyYC4.js").then((e) => e.n).then((e) => ({ default: e.NativeTerminalPanel })));
3598
+ function br({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3599
+ let a = e || _r, o = F((e) => e.agentId), s = z((e) => e.currentSessionId), c = L((e) => e.isStreaming), l = _((e) => e.sidebarOpen), u = _((e) => e.mobileSidebarOpen), d = _((e) => e.mobileActionsOpen), f = F((e) => e.agentName), p = I((e) => e.selectedModel), m = I((e) => e.availableModels), h = I((e) => e.modelSource), v = I((e) => e.modelCatalogLoaded), te = I((e) => e.thinkingMode), x = F((e) => e.agentFramework), S = F((e) => e.workspaceFiles), C = F((e) => e.accessMode), T = _((e) => e.workspacePanelOpen), O = _((e) => e.workspacePanelWidth), k = _((e) => e.workspacePanelFullscreen), ie = F((e) => e.apiFormats), N = F((e) => e.capabilities), P = w((e) => e.visible && !!e.content), oe = M([]), se = M(null), { isMobile: R, viewportHeight: ce } = Pe(), le = _e({
3565
3600
  isMobile: R,
3566
3601
  viewportHeight: ce
3567
- }), { fetchSessions: ue, loadMoreSessions: de, loadSession: fe, loadOlderSessionEvents: pe, createNewSession: me, deleteSession: he, currentSessionIdRef: B, agentIdRef: V, runSubscriptionAbortRef: ge } = On({
3602
+ }), { fetchSessions: ue, loadMoreSessions: de, loadSession: fe, loadOlderSessionEvents: pe, createNewSession: me, deleteSession: he, currentSessionIdRef: B, agentIdRef: V, runSubscriptionAbortRef: ge } = kn({
3568
3603
  agentId: o,
3569
3604
  currentSessionId: s,
3570
3605
  isMobile: R,
@@ -3578,7 +3613,7 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3578
3613
  z.getState().clearSessionEventCache(e), ue(V.current, e);
3579
3614
  };
3580
3615
  queueMicrotask(t), window.setTimeout(t, 1800), window.setTimeout(t, 5e3);
3581
- }, [V, ue]), ye = m.find((e) => e.id === p) || null, { submitDraft: be, stopGeneration: xe, disconnectRun: Se, resumeCheckpoint: we } = pn({
3616
+ }, [V, ue]), ye = m.find((e) => e.id === p) || null, { submitDraft: be, stopGeneration: xe, disconnectRun: Se, resumeCheckpoint: we } = fn({
3582
3617
  agentId: o,
3583
3618
  currentSessionId: s,
3584
3619
  agentFramework: x,
@@ -3623,7 +3658,7 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3623
3658
  o,
3624
3659
  B,
3625
3660
  ve
3626
- ]), { submitResponseFeedback: De, deleteResponseFeedback: Oe, respondToApproval: Ae } = mn({
3661
+ ]), { submitResponseFeedback: De, deleteResponseFeedback: Oe, respondToApproval: Ae } = pn({
3627
3662
  agentId: o,
3628
3663
  currentSessionId: s,
3629
3664
  isStreaming: c,
@@ -3659,7 +3694,7 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3659
3694
  let Be = /* @__PURE__ */ D("div", {
3660
3695
  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",
3661
3696
  children: [
3662
- /* @__PURE__ */ E(kn, {
3697
+ /* @__PURE__ */ E(An, {
3663
3698
  uiCapabilities: N,
3664
3699
  createNewSession: me,
3665
3700
  deleteSession: he,
@@ -3701,7 +3736,7 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3701
3736
  nativeTerminal: N.NativeTerminal,
3702
3737
  workspaceEnabled: H,
3703
3738
  onOpenWorkspace: () => _.getState().setWorkspacePanelOpen(!0)
3704
- }) : /* @__PURE__ */ D(ne, { children: [/* @__PURE__ */ E(Jn, {
3739
+ }) : /* @__PURE__ */ D(ne, { children: [/* @__PURE__ */ E(Yn, {
3705
3740
  agentName: f,
3706
3741
  isMobile: R,
3707
3742
  onDeleteFeedback: Oe,
@@ -3712,7 +3747,7 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3712
3747
  checkpointResumeEnabled: N.RunLifecycle.Enabled && N.RunLifecycle.Checkpoints && N.RunLifecycle.CheckpointResume,
3713
3748
  onResumeCheckpoint: we,
3714
3749
  onLoadOlderSessionEvents: pe
3715
- }), /* @__PURE__ */ E(Qn, {
3750
+ }), /* @__PURE__ */ E($n, {
3716
3751
  composerMaxHeight: le,
3717
3752
  submitDraft: be,
3718
3753
  stopGeneration: Te,
@@ -3750,11 +3785,11 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3750
3785
  }),
3751
3786
  P && /* @__PURE__ */ E(re, {
3752
3787
  fallback: null,
3753
- children: /* @__PURE__ */ E(hr, {})
3788
+ children: /* @__PURE__ */ E(vr, {})
3754
3789
  }),
3755
3790
  ze ? /* @__PURE__ */ E(re, {
3756
3791
  fallback: null,
3757
- children: /* @__PURE__ */ E(gr, {
3792
+ children: /* @__PURE__ */ E(yr, {
3758
3793
  capability: N.NativeTerminal,
3759
3794
  open: !0,
3760
3795
  sessionId: s,
@@ -3767,14 +3802,14 @@ function _r({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
3767
3802
  }
3768
3803
  //#endregion
3769
3804
  //#region src/core/transport/sse-transport.ts
3770
- function vr(e, t) {
3805
+ function xr(e, t) {
3771
3806
  if (e.eventName === "__ping__") {
3772
3807
  L.getState().updateActivity({ countEvent: !1 });
3773
3808
  return;
3774
3809
  }
3775
3810
  t.onEvent(e);
3776
3811
  }
3777
- var yr = class {
3812
+ var Sr = class {
3778
3813
  protocol = "sse-post";
3779
3814
  async connect(e, t) {
3780
3815
  let n = (await Re(e.action, e.body || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
@@ -3794,7 +3829,7 @@ var yr = class {
3794
3829
  t.onComplete();
3795
3830
  return;
3796
3831
  }
3797
- vr(e, t);
3832
+ xr(e, t);
3798
3833
  }
3799
3834
  }
3800
3835
  }
@@ -3806,7 +3841,7 @@ var yr = class {
3806
3841
  a = !0, n.cancel().catch(() => {});
3807
3842
  };
3808
3843
  }
3809
- }, br = class {
3844
+ }, Cr = class {
3810
3845
  protocol = "sse-get";
3811
3846
  async connect(e, t) {
3812
3847
  let n = (await ze(e.action, e.params || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
@@ -3826,7 +3861,7 @@ var yr = class {
3826
3861
  t.onComplete();
3827
3862
  return;
3828
3863
  }
3829
- vr(e, t);
3864
+ xr(e, t);
3830
3865
  }
3831
3866
  }
3832
3867
  }
@@ -3840,4 +3875,4 @@ var yr = class {
3840
3875
  }
3841
3876
  };
3842
3877
  //#endregion
3843
- export { _r as AgentWorkbench, pr as ApiFacadeImpl, bt as RunEngineImpl, br as SseGetTransport, yr as SsePostTransport, st as createProtocol };
3878
+ export { br as AgentWorkbench, gr as ApiFacadeImpl, bt as RunEngineImpl, Cr as SseGetTransport, Sr as SsePostTransport, st as createProtocol };