@kingsoftcloud/ksadk-web 0.2.18 → 0.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-ksadk/assets/{ArtifactsPanel-C0meuOdi.js → ArtifactsPanel-D-SSn2ee.js} +1 -1
- package/dist-ksadk/assets/{CodeBlock-BbI4HPtJ.js → CodeBlock-P16VOLYi.js} +1 -1
- package/dist-ksadk/assets/{MathMessageMarkdown-DMLQYoLp.js → MathMessageMarkdown-CdGiQWHR.js} +1 -1
- package/dist-ksadk/assets/{MermaidBlock-DCR8WZ17.js → MermaidBlock-IOcal8cm.js} +6 -6
- package/dist-ksadk/assets/{NativeTerminalPanel-CKUvWhUz.js → NativeTerminalPanel-DGSDWsei.js} +1 -1
- package/dist-ksadk/assets/{arc-bj2rZnP5.js → arc-BA13sHc9.js} +1 -1
- package/dist-ksadk/assets/architecture-7EHR7CIX-BvUlsA6l.js +1 -0
- package/dist-ksadk/assets/{architectureDiagram-3BPJPVTR-2u1ltDIj.js → architectureDiagram-3BPJPVTR-DzJzgVoL.js} +1 -1
- package/dist-ksadk/assets/{blockDiagram-GPEHLZMM-D6fvdK20.js → blockDiagram-GPEHLZMM-UTdVcZhn.js} +1 -1
- package/dist-ksadk/assets/{c4Diagram-AAUBKEIU-BK82L5n5.js → c4Diagram-AAUBKEIU-Dix0GD4m.js} +1 -1
- package/dist-ksadk/assets/channel-CTuydARX.js +1 -0
- package/dist-ksadk/assets/{chunk-2J33WTMH-DLVdkeyQ.js → chunk-2J33WTMH-C2JxuZ42.js} +1 -1
- package/dist-ksadk/assets/{chunk-4BX2VUAB-BbwsYcbW.js → chunk-4BX2VUAB-Be57QPgD.js} +1 -1
- package/dist-ksadk/assets/{chunk-55IACEB6-DOairxzw.js → chunk-55IACEB6-WjSuy4nv.js} +1 -1
- package/dist-ksadk/assets/{chunk-727SXJPM-hCO487gs.js → chunk-727SXJPM-BOovP-b5.js} +1 -1
- package/dist-ksadk/assets/{chunk-AQP2D5EJ-XU8vDOuG.js → chunk-AQP2D5EJ-DOmZNmWj.js} +1 -1
- package/dist-ksadk/assets/{chunk-FMBD7UC4-PrapyfMu.js → chunk-FMBD7UC4-DzwlodkU.js} +1 -1
- package/dist-ksadk/assets/{chunk-ND2GUHAM-CboKhTZ3.js → chunk-ND2GUHAM-DMqAikEU.js} +1 -1
- package/dist-ksadk/assets/chunk-QZHKN3VN-BnCydivS.js +1 -0
- package/dist-ksadk/assets/classDiagram-4FO5ZUOK-BNHg45Be.js +1 -0
- package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-BNHg45Be.js +1 -0
- package/dist-ksadk/assets/{cose-bilkent-S5V4N54A-_N8bJ-EU.js → cose-bilkent-S5V4N54A-Zhy2GBnP.js} +1 -1
- package/dist-ksadk/assets/{dagre-BM42HDAG-FoDlo5J2.js → dagre-BM42HDAG-CbKrtIUz.js} +1 -1
- package/dist-ksadk/assets/{diagram-2AECGRRQ-BBp6ebBw.js → diagram-2AECGRRQ-BRApgQRK.js} +1 -1
- package/dist-ksadk/assets/{diagram-5GNKFQAL-CqOvG1PR.js → diagram-5GNKFQAL-D0xbnDiK.js} +1 -1
- package/dist-ksadk/assets/{diagram-KO2AKTUF-O9T3t6ba.js → diagram-KO2AKTUF-CVugVI9L.js} +1 -1
- package/dist-ksadk/assets/{diagram-LMA3HP47-CGG8ekBO.js → diagram-LMA3HP47-DozUGgee.js} +1 -1
- package/dist-ksadk/assets/{diagram-OG6HWLK6-4BmH1EEg.js → diagram-OG6HWLK6-ZOYsKlru.js} +1 -1
- package/dist-ksadk/assets/{dist-BmuTWcm7.js → dist-2hInLS_J.js} +1 -1
- package/dist-ksadk/assets/{dist-BMKM66B4.js → dist-8EEyGgDx.js} +1 -1
- package/dist-ksadk/assets/{dist-Cp1_jKwf.js → dist-8_SfK1IP.js} +1 -1
- package/dist-ksadk/assets/{dist-CZ6C3x8B.js → dist-B0NP_Z0z.js} +1 -1
- package/dist-ksadk/assets/{dist-DLeM1OCK.js → dist-BIJVDMuB.js} +1 -1
- package/dist-ksadk/assets/{dist-Cwhk4lwI.js → dist-BmlMPsCc.js} +1 -1
- package/dist-ksadk/assets/{dist-D99wf6_X.js → dist-BrCcQ47T.js} +1 -1
- package/dist-ksadk/assets/{dist-CWiTDN_V.js → dist-BssVmjIo.js} +1 -1
- package/dist-ksadk/assets/{dist-BVzcWa6D.js → dist-C3HIIaN5.js} +1 -1
- package/dist-ksadk/assets/{dist-DM0rEQPk.js → dist-CPBtqRTW.js} +1 -1
- package/dist-ksadk/assets/{dist-BkJjNih3.js → dist-CkEKJFtk.js} +1 -1
- package/dist-ksadk/assets/{dist-B67uF2uK.js → dist-D-JMdWPQ.js} +1 -1
- package/dist-ksadk/assets/{dist-DI-oVAXw.js → dist-D-xOD048.js} +1 -1
- package/dist-ksadk/assets/{dist-6kSZvCZh.js → dist-D57wnGWd.js} +1 -1
- package/dist-ksadk/assets/{dist-Bk1l05Ni.js → dist-DL_NKc_z.js} +1 -1
- package/dist-ksadk/assets/{dist-DbaH3p5h.js → dist-DMezvBGJ.js} +1 -1
- package/dist-ksadk/assets/{dist-CiZHB6ZW.js → dist-DmFaq_Iy.js} +1 -1
- package/dist-ksadk/assets/{dist-DLMjL01k.js → dist-Dp0k7bWI.js} +1 -1
- package/dist-ksadk/assets/{dist-DCpZrjaK.js → dist-DpKtt4Bo.js} +1 -1
- package/dist-ksadk/assets/{dist-D5JGcxBx.js → dist-DyOkZmze.js} +1 -1
- package/dist-ksadk/assets/{dist-C2DKRFVK.js → dist-DyWsb78Q.js} +1 -1
- package/dist-ksadk/assets/{dist-S4klkK5W.js → dist-gX6GOLKq.js} +1 -1
- package/dist-ksadk/assets/{erDiagram-TEJ5UH35-oJhaci7S.js → erDiagram-TEJ5UH35-Bk-9bgE5.js} +1 -1
- package/dist-ksadk/assets/eventmodeling-FCH6USID-DsAgWnlf.js +1 -0
- package/dist-ksadk/assets/{flowDiagram-I6XJVG4X-DtTmUan-.js → flowDiagram-I6XJVG4X-Dn9kZVuZ.js} +1 -1
- package/dist-ksadk/assets/{ganttDiagram-6RSMTGT7-BSsb_eij.js → ganttDiagram-6RSMTGT7-BGxXlJqm.js} +1 -1
- package/dist-ksadk/assets/gitGraph-WXDBUCRP-BIao9Yjg.js +1 -0
- package/dist-ksadk/assets/{gitGraphDiagram-PVQCEYII-BR5s6Pws.js → gitGraphDiagram-PVQCEYII-C7Q0X-wi.js} +1 -1
- package/dist-ksadk/assets/{index-BH7-pC0B.js → index-C00Lwg3L.js} +6 -6
- package/dist-ksadk/assets/info-J43DQDTF-CyipqGxU.js +1 -0
- package/dist-ksadk/assets/{infoDiagram-5YYISTIA-DYPc5cvh.js → infoDiagram-5YYISTIA-BO_CSqq5.js} +1 -1
- package/dist-ksadk/assets/{ishikawaDiagram-YF4QCWOH-MoBdALDg.js → ishikawaDiagram-YF4QCWOH-eYLPLd46.js} +1 -1
- package/dist-ksadk/assets/{journeyDiagram-JHISSGLW-DgLiQT8l.js → journeyDiagram-JHISSGLW-De9geSb0.js} +1 -1
- package/dist-ksadk/assets/{kanban-definition-UN3LZRKU-CsFx112F.js → kanban-definition-UN3LZRKU-Cs80kQto.js} +1 -1
- package/dist-ksadk/assets/{katex-DRsiwpM2.js → katex-DSrCFD8n.js} +1 -1
- package/dist-ksadk/assets/{linear-TNRQ5Orv.js → linear-CN9sbKTF.js} +1 -1
- package/dist-ksadk/assets/{mermaid-parser.core-D2eMVOgo.js → mermaid-parser.core-DlgSBU8l.js} +2 -2
- package/dist-ksadk/assets/{mindmap-definition-RKZ34NQL-BtByYFhL.js → mindmap-definition-RKZ34NQL-9afz7Oug.js} +1 -1
- package/dist-ksadk/assets/packet-YPE3B663-CGkyRxlg.js +1 -0
- package/dist-ksadk/assets/pie-LRSECV5Y-M0uWAf4n.js +1 -0
- package/dist-ksadk/assets/{pieDiagram-4H26LBE5-DPnuCB8c.js → pieDiagram-4H26LBE5-DPv_VstN.js} +1 -1
- package/dist-ksadk/assets/{quadrantDiagram-W4KKPZXB-miFpCPv4.js → quadrantDiagram-W4KKPZXB-o77wZ1XK.js} +1 -1
- package/dist-ksadk/assets/radar-GUYGQ44K-Bdbm24-x.js +1 -0
- package/dist-ksadk/assets/{requirementDiagram-4Y6WPE33-mjB_yYkW.js → requirementDiagram-4Y6WPE33-BYVw81VC.js} +1 -1
- package/dist-ksadk/assets/{sankeyDiagram-5OEKKPKP-D7hSlZZZ.js → sankeyDiagram-5OEKKPKP-B7nZFMKT.js} +1 -1
- package/dist-ksadk/assets/{sequenceDiagram-3UESZ5HK-D9Cx6hC3.js → sequenceDiagram-3UESZ5HK-BGRRrFw5.js} +1 -1
- package/dist-ksadk/assets/{stateDiagram-AJRCARHV-D_zrg47o.js → stateDiagram-AJRCARHV-BUfHCoPs.js} +1 -1
- package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-8xBN_gLM.js +1 -0
- package/dist-ksadk/assets/{timeline-definition-PNZ67QCA-CwSec0Wa.js → timeline-definition-PNZ67QCA-FbCTGrf9.js} +1 -1
- package/dist-ksadk/assets/treeView-BLDUP644-npMo0ak1.js +1 -0
- package/dist-ksadk/assets/treemap-LRROVOQU-CHdzrrdo.js +1 -0
- package/dist-ksadk/assets/{vennDiagram-CIIHVFJN-agCVobiF.js → vennDiagram-CIIHVFJN-DWgwtPsJ.js} +1 -1
- package/dist-ksadk/assets/wardley-L42UT6IY-BEQz7wyy.js +1 -0
- package/dist-ksadk/assets/{wardleyDiagram-YWT4CUSO-TmrlhWNt.js → wardleyDiagram-YWT4CUSO-2x8G-tTM.js} +1 -1
- package/dist-ksadk/assets/{xychartDiagram-2RQKCTM6-DV71V-ah.js → xychartDiagram-2RQKCTM6-Drma3AYl.js} +1 -1
- package/dist-ksadk/index.html +1 -1
- package/dist-lib/components/chat/ConnectedMessageList.d.ts.map +1 -1
- package/dist-lib/hooks/useSessionLifecycle.d.ts.map +1 -1
- package/dist-lib/runtime.js +329 -321
- package/package.json +1 -1
- package/dist-ksadk/assets/architecture-7EHR7CIX-Cr6Xz1_c.js +0 -1
- package/dist-ksadk/assets/channel-BSSOwFIb.js +0 -1
- package/dist-ksadk/assets/chunk-QZHKN3VN-XXpdiwUL.js +0 -1
- package/dist-ksadk/assets/classDiagram-4FO5ZUOK-C5HvGiyK.js +0 -1
- package/dist-ksadk/assets/classDiagram-v2-Q7XG4LA2-C5HvGiyK.js +0 -1
- package/dist-ksadk/assets/eventmodeling-FCH6USID-CIgwHJLL.js +0 -1
- package/dist-ksadk/assets/gitGraph-WXDBUCRP-BVAJ7uo0.js +0 -1
- package/dist-ksadk/assets/info-J43DQDTF-MT80V4ge.js +0 -1
- package/dist-ksadk/assets/packet-YPE3B663-BLKhbXZB.js +0 -1
- package/dist-ksadk/assets/pie-LRSECV5Y-DFOikjSY.js +0 -1
- package/dist-ksadk/assets/radar-GUYGQ44K-095b1Ikw.js +0 -1
- package/dist-ksadk/assets/stateDiagram-v2-BHNVJYJU-J9kCb0nC.js +0 -1
- package/dist-ksadk/assets/treeView-BLDUP644-yinfJEY6.js +0 -1
- package/dist-ksadk/assets/treemap-LRROVOQU-DosUqN1Q.js +0 -1
- package/dist-ksadk/assets/wardley-L42UT6IY-Bvp7-5uH.js +0 -1
package/dist-lib/runtime.js
CHANGED
|
@@ -314,16 +314,16 @@ var z = P()((e) => ({
|
|
|
314
314
|
return delete n[t], { eventCache: n };
|
|
315
315
|
})
|
|
316
316
|
})), B = .28;
|
|
317
|
-
function
|
|
317
|
+
function ge(e, t = 768) {
|
|
318
318
|
return Number(e) <= t;
|
|
319
319
|
}
|
|
320
|
-
function
|
|
320
|
+
function _e({ isMobile: e, desktopSidebarOpen: t, mobileSidebarOpen: n }) {
|
|
321
321
|
return {
|
|
322
322
|
desktopSidebarVisible: !e && !!t,
|
|
323
323
|
mobileDrawerVisible: !!(e && n)
|
|
324
324
|
};
|
|
325
325
|
}
|
|
326
|
-
function
|
|
326
|
+
function ve({ isMobile: e, viewportHeight: t, desktopMaxHeight: n = 160 }) {
|
|
327
327
|
if (!e) return n;
|
|
328
328
|
let r = Number(t);
|
|
329
329
|
if (!Number.isFinite(r) || r <= 0) return n;
|
|
@@ -332,33 +332,33 @@ function _e({ isMobile: e, viewportHeight: t, desktopMaxHeight: n = 160 }) {
|
|
|
332
332
|
}
|
|
333
333
|
//#endregion
|
|
334
334
|
//#region src/utils/session.js
|
|
335
|
-
var
|
|
336
|
-
function
|
|
335
|
+
var ye = "ksadk:webui:selected-session:";
|
|
336
|
+
function be(e) {
|
|
337
337
|
return String(e || "").trim() || "default-agent";
|
|
338
338
|
}
|
|
339
|
-
function
|
|
339
|
+
function xe(e) {
|
|
340
340
|
if (e && typeof e.getItem == "function") return e;
|
|
341
341
|
try {
|
|
342
342
|
if (typeof window < "u" && window.localStorage) return window.localStorage;
|
|
343
343
|
} catch {}
|
|
344
344
|
return null;
|
|
345
345
|
}
|
|
346
|
-
function
|
|
347
|
-
return `${
|
|
346
|
+
function Se(e) {
|
|
347
|
+
return `${ye}${be(e)}`;
|
|
348
348
|
}
|
|
349
|
-
function
|
|
350
|
-
let n =
|
|
349
|
+
function Ce(e, t) {
|
|
350
|
+
let n = xe(t);
|
|
351
351
|
if (!n) return null;
|
|
352
352
|
try {
|
|
353
|
-
return String(n.getItem(
|
|
353
|
+
return String(n.getItem(Se(e)) || "").trim() || null;
|
|
354
354
|
} catch {
|
|
355
355
|
return null;
|
|
356
356
|
}
|
|
357
357
|
}
|
|
358
|
-
function
|
|
359
|
-
let r =
|
|
358
|
+
function we(e, t, n) {
|
|
359
|
+
let r = xe(n);
|
|
360
360
|
if (!r) return;
|
|
361
|
-
let i =
|
|
361
|
+
let i = Se(e), a = String(t || "").trim();
|
|
362
362
|
try {
|
|
363
363
|
if (a) {
|
|
364
364
|
r.setItem(i, a);
|
|
@@ -367,7 +367,7 @@ function Ce(e, t, n) {
|
|
|
367
367
|
r.removeItem(i);
|
|
368
368
|
} catch {}
|
|
369
369
|
}
|
|
370
|
-
function
|
|
370
|
+
function Te(e, t) {
|
|
371
371
|
if (!Array.isArray(e) || e.length === 0) return null;
|
|
372
372
|
let n = String(t || "").trim();
|
|
373
373
|
if (n && e.some((e) => String(e?.SessionId || "").trim() === n)) return n;
|
|
@@ -379,66 +379,66 @@ function we(e, t) {
|
|
|
379
379
|
}
|
|
380
380
|
//#endregion
|
|
381
381
|
//#region src/utils/native-platform.js
|
|
382
|
-
var
|
|
383
|
-
function Ee(e) {
|
|
384
|
-
return String(e || "").trim().toLowerCase();
|
|
385
|
-
}
|
|
382
|
+
var Ee = new Map([["openclaw", "OpenClaw"], ["hermes", "Hermes"]]);
|
|
386
383
|
function De(e) {
|
|
387
384
|
return String(e || "").trim().toLowerCase();
|
|
388
385
|
}
|
|
389
386
|
function Oe(e) {
|
|
387
|
+
return String(e || "").trim().toLowerCase();
|
|
388
|
+
}
|
|
389
|
+
function ke(e) {
|
|
390
390
|
try {
|
|
391
391
|
return new URL("/", e).toString();
|
|
392
392
|
} catch {
|
|
393
393
|
return "/";
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
|
-
function
|
|
397
|
-
let i =
|
|
396
|
+
function Ae({ capability: e, agentFramework: t, accessMode: n, origin: r }) {
|
|
397
|
+
let i = De(n);
|
|
398
398
|
if (i !== "owner" && i !== "private" || !e?.Enabled) return null;
|
|
399
|
-
let a =
|
|
399
|
+
let a = Ee.get(Oe(t)) || "运行时";
|
|
400
400
|
return {
|
|
401
|
-
href: typeof e.Href == "string" && e.Href ? new URL(e.Href,
|
|
401
|
+
href: typeof e.Href == "string" && e.Href ? new URL(e.Href, ke(r)).toString() : ke(r),
|
|
402
402
|
label: typeof e.Label == "string" && e.Label ? e.Label : "管理平台",
|
|
403
403
|
title: `打开 ${a} 原生管理平台`
|
|
404
404
|
};
|
|
405
405
|
}
|
|
406
406
|
//#endregion
|
|
407
407
|
//#region src/utils/model-options.js
|
|
408
|
-
var
|
|
408
|
+
var je = new Set([
|
|
409
409
|
"auto",
|
|
410
410
|
"enabled",
|
|
411
411
|
"disabled"
|
|
412
412
|
]);
|
|
413
|
-
function
|
|
413
|
+
function Me(e) {
|
|
414
414
|
let t = String(e || "").trim().toLowerCase();
|
|
415
|
-
return
|
|
415
|
+
return je.has(t) ? t : "auto";
|
|
416
416
|
}
|
|
417
|
-
function
|
|
418
|
-
let t =
|
|
417
|
+
function Ne(e) {
|
|
418
|
+
let t = Me(e);
|
|
419
419
|
if (t === "disabled") return { thinking: { type: "disabled" } };
|
|
420
420
|
if (t === "enabled") return { thinking: { type: "enabled" } };
|
|
421
421
|
}
|
|
422
422
|
//#endregion
|
|
423
423
|
//#region src/hooks/useResponsiveViewport.ts
|
|
424
|
-
function
|
|
424
|
+
function Pe() {
|
|
425
425
|
return typeof window > "u" ? 900 : Math.round(window.visualViewport?.height || window.innerHeight || 900);
|
|
426
426
|
}
|
|
427
|
-
function
|
|
427
|
+
function V() {
|
|
428
428
|
return typeof window > "u" ? {
|
|
429
429
|
isMobile: !1,
|
|
430
430
|
viewportHeight: 900
|
|
431
431
|
} : {
|
|
432
|
-
isMobile:
|
|
433
|
-
viewportHeight:
|
|
432
|
+
isMobile: ge(window.innerWidth, 768),
|
|
433
|
+
viewportHeight: Pe()
|
|
434
434
|
};
|
|
435
435
|
}
|
|
436
|
-
function
|
|
437
|
-
let [e, t] = ae(() =>
|
|
436
|
+
function Fe() {
|
|
437
|
+
let [e, t] = ae(() => V());
|
|
438
438
|
return j(() => {
|
|
439
439
|
if (typeof window > "u") return;
|
|
440
440
|
let e = window.matchMedia("(max-width: 768px)"), n = () => {
|
|
441
|
-
t(
|
|
441
|
+
t(V());
|
|
442
442
|
};
|
|
443
443
|
n();
|
|
444
444
|
let r = typeof e.addEventListener == "function" ? (e.addEventListener("change", n), () => e.removeEventListener("change", n)) : (e.addListener(n), () => e.removeListener(n));
|
|
@@ -449,76 +449,76 @@ function Pe() {
|
|
|
449
449
|
}
|
|
450
450
|
//#endregion
|
|
451
451
|
//#region src/api/client.ts
|
|
452
|
-
var
|
|
452
|
+
var H = class extends Error {
|
|
453
453
|
code;
|
|
454
454
|
detail;
|
|
455
455
|
constructor(e, t, n) {
|
|
456
456
|
super(t), this.name = "ApiError", this.code = e, this.detail = n;
|
|
457
457
|
}
|
|
458
|
-
},
|
|
458
|
+
}, U = class extends Error {
|
|
459
459
|
constructor(e = "请求已取消") {
|
|
460
460
|
super(e), this.name = "CancelledError";
|
|
461
461
|
}
|
|
462
|
-
},
|
|
463
|
-
async function
|
|
462
|
+
}, W = "/agentengine/api/v1";
|
|
463
|
+
async function Ie(e) {
|
|
464
464
|
let t;
|
|
465
465
|
try {
|
|
466
466
|
t = await e.json();
|
|
467
467
|
} catch {
|
|
468
|
-
throw new
|
|
468
|
+
throw new H(-2, "响应格式异常");
|
|
469
469
|
}
|
|
470
|
-
if (!e.ok) throw new
|
|
471
|
-
if (t?.Code !== void 0 && t.Code !== 0) throw new
|
|
470
|
+
if (!e.ok) throw new H(e.status, t?.Message || `HTTP ${e.status}`, t);
|
|
471
|
+
if (t?.Code !== void 0 && t.Code !== 0) throw new H(t.Code, t.Message || "请求失败", t);
|
|
472
472
|
return t.Data;
|
|
473
473
|
}
|
|
474
|
-
function
|
|
475
|
-
throw e instanceof DOMException && e.name === "AbortError" ? new
|
|
474
|
+
function G(e) {
|
|
475
|
+
throw e instanceof DOMException && e.name === "AbortError" ? new U() : e;
|
|
476
476
|
}
|
|
477
|
-
async function
|
|
477
|
+
async function K(e, t, n) {
|
|
478
478
|
let r;
|
|
479
479
|
try {
|
|
480
|
-
r = await fetch(`${
|
|
480
|
+
r = await fetch(`${W}/${e}`, {
|
|
481
481
|
method: "POST",
|
|
482
482
|
headers: { "Content-Type": "application/json" },
|
|
483
483
|
body: JSON.stringify(t),
|
|
484
484
|
signal: n?.signal
|
|
485
485
|
});
|
|
486
486
|
} catch (e) {
|
|
487
|
-
throw
|
|
487
|
+
throw G(e);
|
|
488
488
|
}
|
|
489
|
-
return
|
|
489
|
+
return Ie(r);
|
|
490
490
|
}
|
|
491
|
-
async function
|
|
491
|
+
async function Le(e, t, n) {
|
|
492
492
|
let r;
|
|
493
493
|
try {
|
|
494
|
-
r = await fetch(`${
|
|
494
|
+
r = await fetch(`${W}/${e}`, {
|
|
495
495
|
method: "POST",
|
|
496
496
|
body: t,
|
|
497
497
|
signal: n?.signal
|
|
498
498
|
});
|
|
499
499
|
} catch (e) {
|
|
500
|
-
throw
|
|
500
|
+
throw G(e);
|
|
501
501
|
}
|
|
502
|
-
return
|
|
502
|
+
return Ie(r);
|
|
503
503
|
}
|
|
504
|
-
async function
|
|
505
|
-
let r = new URLSearchParams(t).toString(), i = r ? `${
|
|
504
|
+
async function Re(e, t, n) {
|
|
505
|
+
let r = new URLSearchParams(t).toString(), i = r ? `${W}/${e}?${r}` : `${W}/${e}`, a;
|
|
506
506
|
try {
|
|
507
507
|
a = await fetch(i, { signal: n?.signal });
|
|
508
508
|
} catch (e) {
|
|
509
|
-
throw
|
|
509
|
+
throw G(e);
|
|
510
510
|
}
|
|
511
|
-
if (!a.ok) throw new
|
|
511
|
+
if (!a.ok) throw new H(a.status, `资源获取失败: ${a.statusText}`);
|
|
512
512
|
try {
|
|
513
513
|
return n?.asText ? await a.text() : await a.blob();
|
|
514
514
|
} catch {
|
|
515
|
-
throw new
|
|
515
|
+
throw new H(-3, "文件读取失败");
|
|
516
516
|
}
|
|
517
517
|
}
|
|
518
|
-
async function
|
|
518
|
+
async function ze(e, t, n) {
|
|
519
519
|
let r;
|
|
520
520
|
try {
|
|
521
|
-
r = await fetch(`${
|
|
521
|
+
r = await fetch(`${W}/${e}`, {
|
|
522
522
|
method: "POST",
|
|
523
523
|
headers: {
|
|
524
524
|
"Content-Type": "application/json",
|
|
@@ -528,46 +528,46 @@ async function Re(e, t, n) {
|
|
|
528
528
|
signal: n?.signal
|
|
529
529
|
});
|
|
530
530
|
} catch (e) {
|
|
531
|
-
throw
|
|
531
|
+
throw G(e);
|
|
532
532
|
}
|
|
533
|
-
if (!r.ok) throw new
|
|
534
|
-
if (!r.body) throw new
|
|
533
|
+
if (!r.ok) throw new H(r.status, `流式请求失败: ${r.statusText}`);
|
|
534
|
+
if (!r.body) throw new H(-1, "无法获取响应流");
|
|
535
535
|
return r.body;
|
|
536
536
|
}
|
|
537
|
-
async function
|
|
538
|
-
let r = new URLSearchParams(t).toString(), i = r ? `${
|
|
537
|
+
async function Be(e, t, n) {
|
|
538
|
+
let r = new URLSearchParams(t).toString(), i = r ? `${W}/${e}?${r}` : `${W}/${e}`, a;
|
|
539
539
|
try {
|
|
540
540
|
a = await fetch(i, {
|
|
541
541
|
headers: { Accept: "text/event-stream" },
|
|
542
542
|
signal: n?.signal
|
|
543
543
|
});
|
|
544
544
|
} catch (e) {
|
|
545
|
-
throw
|
|
545
|
+
throw G(e);
|
|
546
546
|
}
|
|
547
|
-
if (!a.ok) throw new
|
|
548
|
-
if (!a.body) throw new
|
|
547
|
+
if (!a.ok) throw new H(a.status, `流式订阅失败: ${a.statusText}`);
|
|
548
|
+
if (!a.body) throw new H(-1, "无法获取响应流");
|
|
549
549
|
return a.body;
|
|
550
550
|
}
|
|
551
551
|
//#endregion
|
|
552
552
|
//#region src/api/bootstrap.ts
|
|
553
|
-
async function
|
|
554
|
-
return
|
|
553
|
+
async function Ve() {
|
|
554
|
+
return K("GetAgentUiBootstrap", {});
|
|
555
555
|
}
|
|
556
556
|
//#endregion
|
|
557
557
|
//#region src/api/model.ts
|
|
558
|
-
async function
|
|
559
|
-
return
|
|
558
|
+
async function He(e) {
|
|
559
|
+
return K("ListAgentModels", { AgentId: e });
|
|
560
560
|
}
|
|
561
561
|
//#endregion
|
|
562
562
|
//#region src/hooks/useBootstrap.ts
|
|
563
|
-
function
|
|
563
|
+
function Ue(e) {
|
|
564
564
|
if (!Array.isArray(e)) return ["responses", "chat_completions"];
|
|
565
565
|
let t = e.filter((e) => e === "responses" || e === "chat_completions");
|
|
566
566
|
return t.length > 0 ? t : ["responses", "chat_completions"];
|
|
567
567
|
}
|
|
568
|
-
async function
|
|
568
|
+
async function We(e) {
|
|
569
569
|
try {
|
|
570
|
-
let t = await
|
|
570
|
+
let t = await He(e), n = t?.Models;
|
|
571
571
|
Array.isArray(n) && I.getState().upsertModels(n);
|
|
572
572
|
let r = t;
|
|
573
573
|
r?.Current && !I.getState().selectedModel && I.getState().setSelectedModel(String(r.Current)), r?.Source && I.getState().setModelSource(String(r.Source));
|
|
@@ -577,11 +577,11 @@ async function Ue(e) {
|
|
|
577
577
|
I.getState().setModelCatalogLoaded(!0);
|
|
578
578
|
}
|
|
579
579
|
}
|
|
580
|
-
function
|
|
580
|
+
function Ge(n) {
|
|
581
581
|
j(() => {
|
|
582
582
|
(async () => {
|
|
583
583
|
try {
|
|
584
|
-
let r = await
|
|
584
|
+
let r = await Ve(), i = r, a = i?.Agent, o = String(a?.AgentId || "default-agent");
|
|
585
585
|
if (F.getState().setAgentId(o), a?.Name) {
|
|
586
586
|
let e = String(a.Name);
|
|
587
587
|
F.getState().setAgentName(e), document.title = e;
|
|
@@ -589,31 +589,31 @@ function We(n) {
|
|
|
589
589
|
let s = String(a?.Framework || "").trim().toLowerCase();
|
|
590
590
|
F.getState().setAgentFramework(s);
|
|
591
591
|
let c = e(r);
|
|
592
|
-
F.getState().setCapabilities(c), F.getState().setApiFormats(
|
|
592
|
+
F.getState().setCapabilities(c), F.getState().setApiFormats(Ue(c.HostedChat.ApiFormats)), F.getState().setAccessMode(String(i?.AccessMode || "Owner"));
|
|
593
593
|
let l = c.WorkspaceFiles && i?.WorkspaceFiles ? i.WorkspaceFiles : null;
|
|
594
|
-
F.getState().setWorkspaceFiles(l), l || _.getState().setWorkspacePanelOpen(!1), t(c) && n.fetchSessions(o,
|
|
594
|
+
F.getState().setWorkspaceFiles(l), l || _.getState().setWorkspacePanelOpen(!1), t(c) && n.fetchSessions(o, Ce(o));
|
|
595
595
|
let u = i?.Model;
|
|
596
|
-
u?.id && (I.getState().setSelectedModel(u.id), I.getState().upsertModels([u]), I.getState().setModelSource(u.source || "")),
|
|
596
|
+
u?.id && (I.getState().setSelectedModel(u.id), I.getState().upsertModels([u]), I.getState().setModelSource(u.source || "")), We(o);
|
|
597
597
|
} catch (t) {
|
|
598
598
|
console.error("Failed to fetch bootstrap:", t), F.getState().setCapabilities(e({ Data: {
|
|
599
599
|
Agent: { Framework: "" },
|
|
600
600
|
ApiFormats: ["responses", "chat_completions"],
|
|
601
601
|
Capabilities: {}
|
|
602
|
-
} })), n.fetchSessions("default-agent",
|
|
602
|
+
} })), n.fetchSessions("default-agent", Ce("default-agent")), We("default-agent");
|
|
603
603
|
}
|
|
604
604
|
})();
|
|
605
605
|
}, []);
|
|
606
606
|
}
|
|
607
607
|
//#endregion
|
|
608
608
|
//#region src/stores/message.ts
|
|
609
|
-
var
|
|
609
|
+
var q = P()((e) => ({
|
|
610
610
|
messages: [],
|
|
611
611
|
setMessages: (t) => e({ messages: t }),
|
|
612
612
|
patchMessages: (t) => e((e) => ({ messages: t(e.messages) }))
|
|
613
613
|
}));
|
|
614
614
|
//#endregion
|
|
615
615
|
//#region src/utils/responses-stream.js
|
|
616
|
-
function
|
|
616
|
+
function Ke() {
|
|
617
617
|
return {
|
|
618
618
|
toolNames: /* @__PURE__ */ new Map(),
|
|
619
619
|
toolArguments: /* @__PURE__ */ new Map(),
|
|
@@ -621,55 +621,55 @@ function Ge() {
|
|
|
621
621
|
currentResponseId: ""
|
|
622
622
|
};
|
|
623
623
|
}
|
|
624
|
-
function
|
|
624
|
+
function qe(e) {
|
|
625
625
|
return typeof e == "string" ? e : Array.isArray(e) ? e.map((e) => typeof e == "string" ? e : e && typeof e == "object" && typeof e.text == "string" ? e.text : "").join("") : e && typeof e == "object" && typeof e.text == "string" ? e.text : "";
|
|
626
626
|
}
|
|
627
|
-
function
|
|
627
|
+
function J(e) {
|
|
628
628
|
return e == null ? "" : typeof e == "string" ? e : typeof e == "object" ? JSON.stringify(e, null, 2) : String(e);
|
|
629
629
|
}
|
|
630
|
-
function
|
|
630
|
+
function Y(...e) {
|
|
631
631
|
for (let t of e) {
|
|
632
|
-
let e =
|
|
632
|
+
let e = qe(t);
|
|
633
633
|
if (e) return e;
|
|
634
634
|
}
|
|
635
635
|
return "";
|
|
636
636
|
}
|
|
637
|
-
function
|
|
637
|
+
function Je(e, t) {
|
|
638
638
|
return String(e?.id || e?.item_id || e?.call_id || t?.item_id || t?.call_id || t?.output_index || "");
|
|
639
639
|
}
|
|
640
|
-
function
|
|
640
|
+
function Ye(e, t, n, r, i) {
|
|
641
641
|
t && (e.toolNames.set(t, r), e.toolArguments.set(t, i));
|
|
642
642
|
let a = String(n?.call_id || "");
|
|
643
643
|
a && (e.callIds.set(a, t || r), e.toolNames.set(a, r), e.toolArguments.set(a, i));
|
|
644
644
|
}
|
|
645
|
-
function
|
|
645
|
+
function Xe(e, t, n, r = "tool") {
|
|
646
646
|
let i = String(n?.call_id || "");
|
|
647
647
|
return String(n?.name || n?.tool_name || (t ? e.toolNames.get(t) : "") || (i ? e.toolNames.get(i) : "") || r);
|
|
648
648
|
}
|
|
649
|
-
function
|
|
649
|
+
function Ze(e) {
|
|
650
650
|
if (!e || typeof e != "object") return "";
|
|
651
|
-
let t =
|
|
652
|
-
return
|
|
651
|
+
let t = qe(e.content);
|
|
652
|
+
return Y(e.output_text, e.text, e.summary_text, e.summary, e.delta, t);
|
|
653
653
|
}
|
|
654
|
-
function
|
|
655
|
-
let t = e?.response && typeof e.response == "object" ? e.response : e, n =
|
|
654
|
+
function Qe(e) {
|
|
655
|
+
let t = e?.response && typeof e.response == "object" ? e.response : e, n = Y(t?.output_text, t?.text);
|
|
656
656
|
if (n) return n;
|
|
657
657
|
let r = Array.isArray(t?.output) ? t.output : [];
|
|
658
658
|
for (let e of r) {
|
|
659
|
-
let t =
|
|
659
|
+
let t = Ze(e);
|
|
660
660
|
if (t) return t;
|
|
661
661
|
}
|
|
662
662
|
return "";
|
|
663
663
|
}
|
|
664
|
-
function
|
|
664
|
+
function $e(e) {
|
|
665
665
|
let t = e?.response && typeof e.response == "object" ? e.response : e;
|
|
666
666
|
return Array.isArray(t?.output) ? t.output : [];
|
|
667
667
|
}
|
|
668
|
-
function
|
|
669
|
-
let r = e?.item || e?.output_item || e || {}, i = String(r.type || "").trim(), a =
|
|
668
|
+
function et({ data: e, state: t, status: n }) {
|
|
669
|
+
let r = e?.item || e?.output_item || e || {}, i = String(r.type || "").trim(), a = Je(r, e);
|
|
670
670
|
if (i === "function_call") {
|
|
671
|
-
let e =
|
|
672
|
-
return
|
|
671
|
+
let e = Xe(t, a, r), i = J(r.arguments ?? r.args ?? r.input);
|
|
672
|
+
return Ye(t, a, r, e, i), [{
|
|
673
673
|
type: "tool_upsert",
|
|
674
674
|
name: e,
|
|
675
675
|
args: i,
|
|
@@ -678,27 +678,27 @@ function $e({ data: e, state: t, status: n }) {
|
|
|
678
678
|
}
|
|
679
679
|
if (i === "function_call_output") return [{
|
|
680
680
|
type: "tool_result",
|
|
681
|
-
name:
|
|
682
|
-
output:
|
|
681
|
+
name: Xe(t, a, r),
|
|
682
|
+
output: J(r.output ?? r.result ?? r.content)
|
|
683
683
|
}];
|
|
684
684
|
if (i === "mcp_approval_request") return [{
|
|
685
685
|
type: "tool_upsert",
|
|
686
686
|
name: String(r.name || "approval"),
|
|
687
|
-
args:
|
|
687
|
+
args: J(r.arguments ?? r.args),
|
|
688
688
|
status: "paused",
|
|
689
689
|
approvalRequestId: String(r.id || r.approval_request_id || ""),
|
|
690
690
|
previousResponseId: String(e?.response_id || t.currentResponseId || ""),
|
|
691
691
|
serverLabel: String(r.server_label || "")
|
|
692
692
|
}];
|
|
693
693
|
if (i === "reasoning" || i === "reasoning_summary" || i === "reasoning_summary_text") {
|
|
694
|
-
let e =
|
|
694
|
+
let e = Ze(r);
|
|
695
695
|
return e ? [{
|
|
696
696
|
type: "reasoning_delta",
|
|
697
697
|
text: e
|
|
698
698
|
}] : [];
|
|
699
699
|
}
|
|
700
700
|
if (i === "message") {
|
|
701
|
-
let e =
|
|
701
|
+
let e = Ze(r);
|
|
702
702
|
return e ? [{
|
|
703
703
|
type: n === "completed" ? "text_final" : "text_delta",
|
|
704
704
|
text: e
|
|
@@ -706,31 +706,31 @@ function $e({ data: e, state: t, status: n }) {
|
|
|
706
706
|
}
|
|
707
707
|
return [];
|
|
708
708
|
}
|
|
709
|
-
function
|
|
709
|
+
function tt({ eventName: e, data: t, state: n }) {
|
|
710
710
|
let r = String(t?.type || e || "").trim(), i = String(t?.id || t?.response?.id || t?.response_id || "");
|
|
711
711
|
if (i.startsWith("resp_") && (n.currentResponseId = i), r === "response.tool_call") return [{
|
|
712
712
|
type: "tool_upsert",
|
|
713
713
|
name: String(t?.name || t?.tool_name || "tool"),
|
|
714
|
-
args:
|
|
714
|
+
args: J(t?.args ?? t?.arguments),
|
|
715
715
|
status: "running"
|
|
716
716
|
}];
|
|
717
717
|
if (r === "response.tool_result" || r === "response.ksadk.tool_result") return [{
|
|
718
718
|
type: "tool_result",
|
|
719
719
|
name: String(t?.name || t?.tool_name || "tool"),
|
|
720
|
-
output:
|
|
720
|
+
output: J(t?.output ?? t?.result)
|
|
721
721
|
}];
|
|
722
|
-
if (r === "response.output_item.added") return
|
|
722
|
+
if (r === "response.output_item.added") return et({
|
|
723
723
|
data: t,
|
|
724
724
|
state: n,
|
|
725
725
|
status: "running"
|
|
726
726
|
});
|
|
727
|
-
if (r === "response.output_item.done") return
|
|
727
|
+
if (r === "response.output_item.done") return et({
|
|
728
728
|
data: t,
|
|
729
729
|
state: n,
|
|
730
730
|
status: "completed"
|
|
731
731
|
});
|
|
732
732
|
if (r === "response.function_call_arguments.delta") {
|
|
733
|
-
let e = String(t?.item_id || t?.call_id || ""), r =
|
|
733
|
+
let e = String(t?.item_id || t?.call_id || ""), r = Xe(n, e, t), i = `${n.toolArguments.get(e) || ""}${String(t?.delta || "")}`;
|
|
734
734
|
return n.toolArguments.set(e, i), [{
|
|
735
735
|
type: "tool_upsert",
|
|
736
736
|
name: r,
|
|
@@ -739,7 +739,7 @@ function et({ eventName: e, data: t, state: n }) {
|
|
|
739
739
|
}];
|
|
740
740
|
}
|
|
741
741
|
if (r === "response.function_call_arguments.done") {
|
|
742
|
-
let e = String(t?.item_id || t?.call_id || ""), r =
|
|
742
|
+
let e = String(t?.item_id || t?.call_id || ""), r = Xe(n, e, t), i = J(t?.arguments ?? n.toolArguments.get(e));
|
|
743
743
|
return n.toolArguments.set(e, i), [{
|
|
744
744
|
type: "tool_upsert",
|
|
745
745
|
name: r,
|
|
@@ -748,28 +748,28 @@ function et({ eventName: e, data: t, state: n }) {
|
|
|
748
748
|
}];
|
|
749
749
|
}
|
|
750
750
|
if (r === "response.reasoning.delta" || r === "response.reasoning_text.delta" || r === "response.reasoning_summary.delta" || r === "response.reasoning_summary_text.delta") {
|
|
751
|
-
let e =
|
|
751
|
+
let e = Y(t?.delta, t?.text);
|
|
752
752
|
return e ? [{
|
|
753
753
|
type: "reasoning_delta",
|
|
754
754
|
text: e
|
|
755
755
|
}] : [];
|
|
756
756
|
}
|
|
757
757
|
if (r === "response.output_text.delta") {
|
|
758
|
-
let e =
|
|
758
|
+
let e = Y(t?.delta, t?.text);
|
|
759
759
|
return e ? [{
|
|
760
760
|
type: "text_delta",
|
|
761
761
|
text: e
|
|
762
762
|
}] : [];
|
|
763
763
|
}
|
|
764
764
|
if (r === "response.output_text.done") {
|
|
765
|
-
let e =
|
|
765
|
+
let e = Y(t?.text, t?.delta);
|
|
766
766
|
return e ? [{
|
|
767
767
|
type: "text_final",
|
|
768
768
|
text: e
|
|
769
769
|
}] : [];
|
|
770
770
|
}
|
|
771
771
|
if (r === "response.content_part.delta") {
|
|
772
|
-
let e = String(t?.part?.type || t?.delta?.type || t?.content_type || ""), n =
|
|
772
|
+
let e = String(t?.part?.type || t?.delta?.type || t?.content_type || ""), n = Y(t?.delta?.text, t?.delta, t?.text);
|
|
773
773
|
return n ? e.includes("reasoning") ? [{
|
|
774
774
|
type: "reasoning_delta",
|
|
775
775
|
text: n
|
|
@@ -779,7 +779,7 @@ function et({ eventName: e, data: t, state: n }) {
|
|
|
779
779
|
}] : [];
|
|
780
780
|
}
|
|
781
781
|
if (r === "response.completed") {
|
|
782
|
-
let e =
|
|
782
|
+
let e = Qe(t), r = $e(t).flatMap((e) => et({
|
|
783
783
|
data: {
|
|
784
784
|
...t,
|
|
785
785
|
item: e
|
|
@@ -830,13 +830,13 @@ function et({ eventName: e, data: t, state: n }) {
|
|
|
830
830
|
}
|
|
831
831
|
//#endregion
|
|
832
832
|
//#region src/core/stream/responses-protocol.ts
|
|
833
|
-
var
|
|
833
|
+
var nt = class {
|
|
834
834
|
id = "responses";
|
|
835
835
|
createState() {
|
|
836
|
-
return
|
|
836
|
+
return Ke();
|
|
837
837
|
}
|
|
838
838
|
parse(e, t) {
|
|
839
|
-
return
|
|
839
|
+
return tt({
|
|
840
840
|
eventName: e.eventName,
|
|
841
841
|
data: e.data,
|
|
842
842
|
state: t
|
|
@@ -858,23 +858,23 @@ var tt = class {
|
|
|
858
858
|
};
|
|
859
859
|
//#endregion
|
|
860
860
|
//#region src/utils/stream-parsing.ts
|
|
861
|
-
function
|
|
861
|
+
function rt(e) {
|
|
862
862
|
return typeof e == "string" ? e : Array.isArray(e) ? e.map((e) => typeof e == "string" ? e : e && typeof e == "object" && "text" in e && typeof e.text == "string" ? e.text : "").join("") : "";
|
|
863
863
|
}
|
|
864
|
-
function
|
|
864
|
+
function it(e) {
|
|
865
865
|
return e && typeof e == "object" ? e : {};
|
|
866
866
|
}
|
|
867
|
-
function
|
|
868
|
-
let t =
|
|
867
|
+
function at(e) {
|
|
868
|
+
let t = it(e).choices, n = it(Array.isArray(t) ? t[0] : null), r = it(n.delta), i = it(n.message);
|
|
869
869
|
return {
|
|
870
|
-
content:
|
|
871
|
-
reasoning:
|
|
872
|
-
finalText:
|
|
870
|
+
content: rt(r.content),
|
|
871
|
+
reasoning: rt(r.reasoning_content),
|
|
872
|
+
finalText: rt(i.content)
|
|
873
873
|
};
|
|
874
874
|
}
|
|
875
875
|
//#endregion
|
|
876
876
|
//#region src/core/stream/chat-completions-protocol.ts
|
|
877
|
-
var
|
|
877
|
+
var ot = class {
|
|
878
878
|
id = "chat_completions";
|
|
879
879
|
createState() {
|
|
880
880
|
return {};
|
|
@@ -882,7 +882,7 @@ var at = class {
|
|
|
882
882
|
parse(e) {
|
|
883
883
|
let t = e.data;
|
|
884
884
|
if (typeof t != "object" || !t) return [];
|
|
885
|
-
let n =
|
|
885
|
+
let n = at(t), r = [];
|
|
886
886
|
return n.reasoning && r.push({
|
|
887
887
|
type: "reasoning_delta",
|
|
888
888
|
text: n.reasoning
|
|
@@ -894,14 +894,14 @@ var at = class {
|
|
|
894
894
|
text: n.finalText
|
|
895
895
|
}), r;
|
|
896
896
|
}
|
|
897
|
-
},
|
|
898
|
-
|
|
899
|
-
function
|
|
900
|
-
return
|
|
897
|
+
}, st = /* @__PURE__ */ new Map();
|
|
898
|
+
st.set("responses", new nt()), st.set("chat_completions", new ot());
|
|
899
|
+
function ct(e) {
|
|
900
|
+
return st.get(e) || st.get("responses");
|
|
901
901
|
}
|
|
902
902
|
//#endregion
|
|
903
903
|
//#region src/utils/stream-control.js
|
|
904
|
-
function
|
|
904
|
+
function lt(e = []) {
|
|
905
905
|
return e.some((e) => {
|
|
906
906
|
if (e?.type !== "terminal") return !1;
|
|
907
907
|
let t = String(e.status || "").toLowerCase();
|
|
@@ -910,7 +910,7 @@ function ct(e = []) {
|
|
|
910
910
|
}
|
|
911
911
|
//#endregion
|
|
912
912
|
//#region src/core/transport/sse-parser.ts
|
|
913
|
-
function
|
|
913
|
+
function ut(e) {
|
|
914
914
|
let t = [], n = e.trim();
|
|
915
915
|
if (!n) return t;
|
|
916
916
|
let r = n.split("\n");
|
|
@@ -940,7 +940,7 @@ function lt(e) {
|
|
|
940
940
|
}
|
|
941
941
|
return t;
|
|
942
942
|
}
|
|
943
|
-
function
|
|
943
|
+
function dt(e) {
|
|
944
944
|
let t = e.split("\n\n");
|
|
945
945
|
return {
|
|
946
946
|
chunks: t,
|
|
@@ -949,21 +949,21 @@ function ut(e) {
|
|
|
949
949
|
}
|
|
950
950
|
//#endregion
|
|
951
951
|
//#region src/utils/error.ts
|
|
952
|
-
function
|
|
952
|
+
function ft(e) {
|
|
953
953
|
return e instanceof Error ? e.message : String(e);
|
|
954
954
|
}
|
|
955
|
-
var
|
|
956
|
-
function
|
|
955
|
+
var pt = 1280;
|
|
956
|
+
function mt(e) {
|
|
957
957
|
let { apiFormats: t } = e;
|
|
958
958
|
return t.includes("responses") ? "responses" : t.includes("chat_completions") ? "chat_completions" : "responses";
|
|
959
959
|
}
|
|
960
|
-
function
|
|
961
|
-
let r = Math.min(
|
|
960
|
+
function ht(e, t, n) {
|
|
961
|
+
let r = Math.min(pt, Math.max(420, t - n - 360));
|
|
962
962
|
return Math.min(Math.max(e, 420), r);
|
|
963
963
|
}
|
|
964
964
|
//#endregion
|
|
965
965
|
//#region src/core/run/engine.ts
|
|
966
|
-
var
|
|
966
|
+
var gt = new Set([
|
|
967
967
|
"completed",
|
|
968
968
|
"failed",
|
|
969
969
|
"error",
|
|
@@ -973,12 +973,12 @@ var ht = new Set([
|
|
|
973
973
|
"interrupted",
|
|
974
974
|
"resume_failed"
|
|
975
975
|
]);
|
|
976
|
-
function
|
|
976
|
+
function _t(e) {
|
|
977
977
|
if (e.EventType !== "run_status") return null;
|
|
978
978
|
let t = String(e.Content?.status || "").trim().toLowerCase();
|
|
979
|
-
return
|
|
979
|
+
return gt.has(t) ? t : null;
|
|
980
980
|
}
|
|
981
|
-
function
|
|
981
|
+
function vt(e, t) {
|
|
982
982
|
let n = String(t?.type || e || "").trim();
|
|
983
983
|
if (n === "response.created") return {
|
|
984
984
|
phase: "运行已创建",
|
|
@@ -1024,11 +1024,11 @@ function _t(e, t) {
|
|
|
1024
1024
|
status: "failed"
|
|
1025
1025
|
} : null;
|
|
1026
1026
|
}
|
|
1027
|
-
function
|
|
1027
|
+
function yt() {
|
|
1028
1028
|
let e = globalThis.crypto;
|
|
1029
1029
|
return e && typeof e.randomUUID == "function" ? `run_${e.randomUUID()}` : `run_${Date.now()}_${Math.random().toString(16).slice(2)}`;
|
|
1030
1030
|
}
|
|
1031
|
-
var
|
|
1031
|
+
var bt = {
|
|
1032
1032
|
idle: [
|
|
1033
1033
|
"creating-session",
|
|
1034
1034
|
"uploading-files",
|
|
@@ -1066,7 +1066,7 @@ var yt = {
|
|
|
1066
1066
|
],
|
|
1067
1067
|
error: ["connecting", "idle"],
|
|
1068
1068
|
cancelled: ["idle"]
|
|
1069
|
-
},
|
|
1069
|
+
}, xt = class {
|
|
1070
1070
|
_stage = "idle";
|
|
1071
1071
|
listeners = /* @__PURE__ */ new Set();
|
|
1072
1072
|
abortController = null;
|
|
@@ -1100,7 +1100,7 @@ var yt = {
|
|
|
1100
1100
|
for (let e of this.listeners) e(t);
|
|
1101
1101
|
}
|
|
1102
1102
|
setStage(e) {
|
|
1103
|
-
let t =
|
|
1103
|
+
let t = bt[this._stage];
|
|
1104
1104
|
t && !t.includes(e) && console.warn(`[RunEngine] Invalid transition: ${this._stage} → ${e}`), this._stage = e, this.emit({
|
|
1105
1105
|
type: "stage_changed",
|
|
1106
1106
|
stage: e
|
|
@@ -1127,10 +1127,10 @@ var yt = {
|
|
|
1127
1127
|
status: "connecting",
|
|
1128
1128
|
countEvent: !1
|
|
1129
1129
|
});
|
|
1130
|
-
let a = t ? "responses" :
|
|
1130
|
+
let a = t ? "responses" : mt({
|
|
1131
1131
|
agentFramework: this.config.agentFramework,
|
|
1132
1132
|
apiFormats: this.config.apiFormats
|
|
1133
|
-
}), o =
|
|
1133
|
+
}), o = ct(a), s = o.createState(), c = yt();
|
|
1134
1134
|
L.getState().setCurrentRunId(c);
|
|
1135
1135
|
let l = this.buildRequestBody(n, a, t, e, i, c), u = await this.api.runAgent(l, { signal: this.abortController?.signal });
|
|
1136
1136
|
this.setStage("streaming"), this.emit({
|
|
@@ -1243,11 +1243,11 @@ var yt = {
|
|
|
1243
1243
|
let { value: e, done: n } = await r.read();
|
|
1244
1244
|
if (n) break;
|
|
1245
1245
|
a += i.decode(e, { stream: !0 });
|
|
1246
|
-
let { chunks: o, remainder: s } =
|
|
1246
|
+
let { chunks: o, remainder: s } = dt(a);
|
|
1247
1247
|
a = s;
|
|
1248
1248
|
for (let e of o) {
|
|
1249
1249
|
if (!e.trim()) continue;
|
|
1250
|
-
let n =
|
|
1250
|
+
let n = ut(e);
|
|
1251
1251
|
for (let e of n) e.eventName !== "__done__" && (this.emit({
|
|
1252
1252
|
type: "activity",
|
|
1253
1253
|
phase: "收到恢复事件",
|
|
@@ -1255,7 +1255,7 @@ var yt = {
|
|
|
1255
1255
|
}), this.emit({
|
|
1256
1256
|
type: "stream_event",
|
|
1257
1257
|
event: e.data
|
|
1258
|
-
}), t =
|
|
1258
|
+
}), t = _t(e.data) || t);
|
|
1259
1259
|
}
|
|
1260
1260
|
}
|
|
1261
1261
|
this.setStage("completing"), t === "cancelled" || t === "canceled" || t === "aborted" ? this.emit({
|
|
@@ -1294,7 +1294,7 @@ var yt = {
|
|
|
1294
1294
|
resumeCheckpoint(e) {
|
|
1295
1295
|
if (this._stage !== "idle") return !1;
|
|
1296
1296
|
this.abortController = new AbortController(), this.activeSessionId = e.sessionId;
|
|
1297
|
-
let t =
|
|
1297
|
+
let t = yt();
|
|
1298
1298
|
return L.getState().setCurrentRunId(t), (async () => {
|
|
1299
1299
|
try {
|
|
1300
1300
|
if (this.setStage("connecting"), this.emit({
|
|
@@ -1327,7 +1327,7 @@ var yt = {
|
|
|
1327
1327
|
checkpointId: e.checkpointId,
|
|
1328
1328
|
resumeAttemptId: e.resumeAttemptId,
|
|
1329
1329
|
invocationId: t
|
|
1330
|
-
}, { signal: this.abortController?.signal }), r =
|
|
1330
|
+
}, { signal: this.abortController?.signal }), r = ct("responses"), i = r.createState();
|
|
1331
1331
|
this.setStage("streaming"), this.emit({
|
|
1332
1332
|
type: "activity",
|
|
1333
1333
|
source: "restore",
|
|
@@ -1403,7 +1403,7 @@ var yt = {
|
|
|
1403
1403
|
} catch (e) {
|
|
1404
1404
|
this.emit({
|
|
1405
1405
|
type: "system_message",
|
|
1406
|
-
content: `【系统提示】图片 ${t.name} 读取失败,原因: ${
|
|
1406
|
+
content: `【系统提示】图片 ${t.name} 读取失败,原因: ${ft(e)}`
|
|
1407
1407
|
});
|
|
1408
1408
|
}
|
|
1409
1409
|
continue;
|
|
@@ -1420,7 +1420,7 @@ var yt = {
|
|
|
1420
1420
|
} catch (e) {
|
|
1421
1421
|
this.emit({
|
|
1422
1422
|
type: "system_message",
|
|
1423
|
-
content: `【系统提示】文件 ${t.name} 上传失败,原因: ${
|
|
1423
|
+
content: `【系统提示】文件 ${t.name} 上传失败,原因: ${ft(e)}`
|
|
1424
1424
|
});
|
|
1425
1425
|
}
|
|
1426
1426
|
}
|
|
@@ -1440,7 +1440,7 @@ var yt = {
|
|
|
1440
1440
|
ApiFormat: t,
|
|
1441
1441
|
Model: this.config.selectedModel || void 0,
|
|
1442
1442
|
ModelMetadata: this.config.selectedModelMetadata || void 0,
|
|
1443
|
-
ModelOptions: Me(
|
|
1443
|
+
ModelOptions: Ne(Me(this.config.thinkingMode))
|
|
1444
1444
|
};
|
|
1445
1445
|
if (n) o.ResponsesInput = r.responsesInput, o.PreviousResponseId = r.previousResponseId;
|
|
1446
1446
|
else {
|
|
@@ -1468,32 +1468,32 @@ var yt = {
|
|
|
1468
1468
|
type: "assistant_message_created",
|
|
1469
1469
|
messageId: r
|
|
1470
1470
|
})), o += a.decode(e, { stream: !0 });
|
|
1471
|
-
let { chunks: u, remainder: d } =
|
|
1471
|
+
let { chunks: u, remainder: d } = dt(o);
|
|
1472
1472
|
o = d;
|
|
1473
1473
|
for (let e of u) {
|
|
1474
1474
|
if (!e.trim()) continue;
|
|
1475
1475
|
if (this.isCompactionChunk(e)) {
|
|
1476
|
-
let t =
|
|
1476
|
+
let t = ut(e);
|
|
1477
1477
|
for (let e of t) e.eventName.startsWith("response.compaction") && this.upsertCompactionMessage({
|
|
1478
1478
|
...e.data,
|
|
1479
1479
|
phase: e.eventName.split(".").pop()
|
|
1480
1480
|
});
|
|
1481
1481
|
continue;
|
|
1482
1482
|
}
|
|
1483
|
-
let a =
|
|
1483
|
+
let a = ut(e), o = !1, c;
|
|
1484
1484
|
for (let e of a) {
|
|
1485
1485
|
if (e.eventName === "__done__") {
|
|
1486
1486
|
o = !0;
|
|
1487
1487
|
continue;
|
|
1488
1488
|
}
|
|
1489
|
-
let i =
|
|
1489
|
+
let i = vt(e.eventName, e.data);
|
|
1490
1490
|
i && this.emit({
|
|
1491
1491
|
type: "activity",
|
|
1492
1492
|
...i
|
|
1493
1493
|
});
|
|
1494
1494
|
let a = t.parse(e, n);
|
|
1495
1495
|
for (let e of a) this.dispatchAction(e, r);
|
|
1496
|
-
if (
|
|
1496
|
+
if (lt(a)) {
|
|
1497
1497
|
o = !0;
|
|
1498
1498
|
let e = a.find((e) => e.type === "terminal");
|
|
1499
1499
|
c = e && "status" in e ? String(e.status || "") : void 0;
|
|
@@ -1604,18 +1604,18 @@ var yt = {
|
|
|
1604
1604
|
phase: "failed"
|
|
1605
1605
|
}), null);
|
|
1606
1606
|
}
|
|
1607
|
-
},
|
|
1608
|
-
function
|
|
1607
|
+
}, St = [], Ct = [];
|
|
1608
|
+
function X(e) {
|
|
1609
1609
|
return typeof e == "string" ? e.trim() : "";
|
|
1610
1610
|
}
|
|
1611
|
-
function
|
|
1611
|
+
function wt(e) {
|
|
1612
1612
|
let t = typeof e == "number" ? e : Number(e);
|
|
1613
1613
|
return Number.isFinite(t) ? t : void 0;
|
|
1614
1614
|
}
|
|
1615
|
-
function
|
|
1615
|
+
function Tt(e) {
|
|
1616
1616
|
return typeof e == "string" || typeof e == "number" ? e : void 0;
|
|
1617
1617
|
}
|
|
1618
|
-
function
|
|
1618
|
+
function Z(e) {
|
|
1619
1619
|
return e && typeof e == "object" && !Array.isArray(e) ? e : void 0;
|
|
1620
1620
|
}
|
|
1621
1621
|
function Et(e) {
|
|
@@ -1644,44 +1644,44 @@ function jt(e) {
|
|
|
1644
1644
|
return t ? e.filter((e) => e.runId === t) : [];
|
|
1645
1645
|
}
|
|
1646
1646
|
function Mt(e) {
|
|
1647
|
-
let t =
|
|
1647
|
+
let t = Z(e);
|
|
1648
1648
|
if (!t) return null;
|
|
1649
|
-
let n =
|
|
1649
|
+
let n = Z(t.Metadata ?? t.metadata), r = Z(t.Content ?? t.content), i = X(t.CheckpointId ?? t.checkpointId ?? t.checkpoint_id ?? n?.checkpoint_id ?? n?.checkpointId ?? r?.checkpoint_id ?? r?.checkpointId), a = X(t.RunId ?? t.runId ?? t.run_id ?? n?.run_id ?? n?.runId ?? r?.run_id ?? r?.runId);
|
|
1650
1650
|
return !i || !a ? null : {
|
|
1651
1651
|
checkpointId: i,
|
|
1652
1652
|
runId: a,
|
|
1653
|
-
sessionId:
|
|
1654
|
-
invocationId:
|
|
1655
|
-
seqId:
|
|
1656
|
-
timestamp:
|
|
1657
|
-
framework:
|
|
1658
|
-
frameworkRef:
|
|
1659
|
-
phase:
|
|
1660
|
-
stage:
|
|
1661
|
-
summary:
|
|
1662
|
-
nextAction:
|
|
1663
|
-
status:
|
|
1653
|
+
sessionId: X(t.SessionId ?? t.sessionId ?? t.session_id) || void 0,
|
|
1654
|
+
invocationId: X(t.InvocationId ?? t.invocationId ?? t.invocation_id) || void 0,
|
|
1655
|
+
seqId: wt(t.SeqId ?? t.seqId ?? t.seq_id),
|
|
1656
|
+
timestamp: Tt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
|
|
1657
|
+
framework: X(t.Framework ?? t.framework ?? n?.framework ?? r?.framework) || void 0,
|
|
1658
|
+
frameworkRef: Z(t.FrameworkRef ?? t.frameworkRef ?? t.framework_ref ?? n?.framework_ref ?? n?.frameworkRef),
|
|
1659
|
+
phase: X(t.Phase ?? t.phase ?? n?.phase ?? r?.phase) || void 0,
|
|
1660
|
+
stage: X(t.Stage ?? t.stage ?? n?.stage ?? n?.title) || void 0,
|
|
1661
|
+
summary: X(t.Summary ?? t.summary ?? n?.summary ?? n?.description) || void 0,
|
|
1662
|
+
nextAction: X(t.NextAction ?? t.nextAction ?? t.next_action ?? n?.nextAction ?? n?.next_action) || void 0,
|
|
1663
|
+
status: X(t.Status ?? t.status ?? n?.status ?? r?.status) || void 0,
|
|
1664
1664
|
metadata: n
|
|
1665
1665
|
};
|
|
1666
1666
|
}
|
|
1667
1667
|
function Nt(e) {
|
|
1668
|
-
let t =
|
|
1668
|
+
let t = Z(e);
|
|
1669
1669
|
if (!t) return null;
|
|
1670
|
-
let n =
|
|
1670
|
+
let n = X(t.ReceiptId ?? t.receiptId ?? t.receipt_id), r = X(t.IdempotencyKey ?? t.idempotencyKey ?? t.idempotency_key), i = X(t.ToolName ?? t.toolName ?? t.tool_name);
|
|
1671
1671
|
return !n || !r || !i ? null : {
|
|
1672
1672
|
receiptId: n,
|
|
1673
1673
|
idempotencyKey: r,
|
|
1674
1674
|
toolName: i,
|
|
1675
|
-
toolCallId:
|
|
1676
|
-
runId:
|
|
1677
|
-
checkpointId:
|
|
1678
|
-
sessionId:
|
|
1679
|
-
invocationId:
|
|
1680
|
-
seqId:
|
|
1681
|
-
timestamp:
|
|
1682
|
-
status:
|
|
1675
|
+
toolCallId: X(t.ToolCallId ?? t.toolCallId ?? t.tool_call_id) || void 0,
|
|
1676
|
+
runId: X(t.RunId ?? t.runId ?? t.run_id) || void 0,
|
|
1677
|
+
checkpointId: X(t.CheckpointId ?? t.checkpointId ?? t.checkpoint_id) || void 0,
|
|
1678
|
+
sessionId: X(t.SessionId ?? t.sessionId ?? t.session_id) || void 0,
|
|
1679
|
+
invocationId: X(t.InvocationId ?? t.invocationId ?? t.invocation_id) || void 0,
|
|
1680
|
+
seqId: wt(t.SeqId ?? t.seqId ?? t.seq_id),
|
|
1681
|
+
timestamp: Tt(t.Timestamp ?? t.timestamp ?? t.CreatedAt ?? t.createdAt),
|
|
1682
|
+
status: X(t.Status ?? t.status) || void 0,
|
|
1683
1683
|
replayed: !!(t.Replayed ?? t.replayed),
|
|
1684
|
-
metadata:
|
|
1684
|
+
metadata: Z(t.Metadata ?? t.metadata)
|
|
1685
1685
|
};
|
|
1686
1686
|
}
|
|
1687
1687
|
var Q = P()((e, t) => ({
|
|
@@ -1713,7 +1713,7 @@ var Q = P()((e, t) => ({
|
|
|
1713
1713
|
},
|
|
1714
1714
|
getSessionCheckpoints: (e) => {
|
|
1715
1715
|
let n = String(e || "");
|
|
1716
|
-
return n && t().checkpointsBySessionId[n] ||
|
|
1716
|
+
return n && t().checkpointsBySessionId[n] || St;
|
|
1717
1717
|
},
|
|
1718
1718
|
setSessionToolReceipts: (t, n) => e((e) => ({ toolReceiptsBySessionId: {
|
|
1719
1719
|
...e.toolReceiptsBySessionId,
|
|
@@ -1724,7 +1724,7 @@ var Q = P()((e, t) => ({
|
|
|
1724
1724
|
} })),
|
|
1725
1725
|
getSessionToolReceipts: (e) => {
|
|
1726
1726
|
let n = String(e || "");
|
|
1727
|
-
return n && t().toolReceiptsBySessionId[n] ||
|
|
1727
|
+
return n && t().toolReceiptsBySessionId[n] || Ct;
|
|
1728
1728
|
},
|
|
1729
1729
|
clearSessionCheckpoints: (t) => e((e) => {
|
|
1730
1730
|
let n = String(t || "");
|
|
@@ -1841,7 +1841,7 @@ function Bt(e) {
|
|
|
1841
1841
|
function Vt(e) {
|
|
1842
1842
|
let t = e?.Metadata?.responses_output;
|
|
1843
1843
|
if (!Array.isArray(t)) return {};
|
|
1844
|
-
let n =
|
|
1844
|
+
let n = Ke(), r = tt({
|
|
1845
1845
|
eventName: "response.completed",
|
|
1846
1846
|
data: { response: {
|
|
1847
1847
|
id: String(e.Metadata?.response_id || ""),
|
|
@@ -2240,7 +2240,7 @@ var $ = !1, on = new Set(["completed"]), sn = new Set([
|
|
|
2240
2240
|
"incomplete"
|
|
2241
2241
|
]);
|
|
2242
2242
|
function cn(e) {
|
|
2243
|
-
$ || ($ = !0,
|
|
2243
|
+
$ || ($ = !0, q.getState().patchMessages((t) => [...t, {
|
|
2244
2244
|
id: e,
|
|
2245
2245
|
role: "model",
|
|
2246
2246
|
content: "",
|
|
@@ -2250,7 +2250,7 @@ function cn(e) {
|
|
|
2250
2250
|
}
|
|
2251
2251
|
function ln(e) {
|
|
2252
2252
|
let t = String(e || "").trim().toLowerCase(), n = on.has(t) ? "completed" : sn.has(t) ? "error" : null;
|
|
2253
|
-
n &&
|
|
2253
|
+
n && q.getState().patchMessages((e) => e.map((e) => {
|
|
2254
2254
|
if (!e.tools) return e;
|
|
2255
2255
|
let t = !1, r = Object.fromEntries(Object.entries(e.tools).map(([e, r]) => r.status === "running" ? (t = !0, [e, {
|
|
2256
2256
|
...r,
|
|
@@ -2267,7 +2267,7 @@ function un(e) {
|
|
|
2267
2267
|
e.type === "stage_changed" && (e.stage === "completing" || e.stage === "error" || e.stage === "cancelled") && ($ = !1);
|
|
2268
2268
|
return;
|
|
2269
2269
|
}
|
|
2270
|
-
let t =
|
|
2270
|
+
let t = q.getState();
|
|
2271
2271
|
switch (e.type) {
|
|
2272
2272
|
case "activity":
|
|
2273
2273
|
L.getState().updateActivity({
|
|
@@ -2441,7 +2441,7 @@ function fn(e) {
|
|
|
2441
2441
|
f.RunLifecycle?.CheckpointResumePreview
|
|
2442
2442
|
]), m = A((n) => {
|
|
2443
2443
|
let r = String(n || "new-session"), i = t.current.get(r);
|
|
2444
|
-
return i ? p(i) : (i = new
|
|
2444
|
+
return i ? p(i) : (i = new xt(e.api), p(i), i.subscribe(un), t.current.set(r, i)), i;
|
|
2445
2445
|
}, [e.api, p]);
|
|
2446
2446
|
j(() => {
|
|
2447
2447
|
for (let e of t.current.values()) p(e);
|
|
@@ -2457,7 +2457,7 @@ function fn(e) {
|
|
|
2457
2457
|
url: URL.createObjectURL(e),
|
|
2458
2458
|
type: e.type || "application/octet-stream"
|
|
2459
2459
|
}));
|
|
2460
|
-
(o || c.length > 0) &&
|
|
2460
|
+
(o || c.length > 0) && q.getState().patchMessages((e) => [...e, {
|
|
2461
2461
|
id: s,
|
|
2462
2462
|
role: "user",
|
|
2463
2463
|
content: o,
|
|
@@ -2474,7 +2474,7 @@ function fn(e) {
|
|
|
2474
2474
|
z.getState().upsertSessions([{
|
|
2475
2475
|
SessionId: e,
|
|
2476
2476
|
UpdatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
2477
|
-
}]), l.current = e,
|
|
2477
|
+
}]), l.current = e, we(r, e), z.getState().setCurrentSessionId(e), i !== e && t.current.set(e, a);
|
|
2478
2478
|
},
|
|
2479
2479
|
onSessionUpsert: () => {},
|
|
2480
2480
|
onSettled: (e) => {
|
|
@@ -2555,7 +2555,7 @@ function pn(e) {
|
|
|
2555
2555
|
submitResponseFeedback: A(async (e) => {
|
|
2556
2556
|
if (!n) return;
|
|
2557
2557
|
let r = null;
|
|
2558
|
-
|
|
2558
|
+
q.getState().patchMessages((t) => {
|
|
2559
2559
|
let n = v(t, {
|
|
2560
2560
|
messageId: e.message.id,
|
|
2561
2561
|
rating: e.rating,
|
|
@@ -2571,12 +2571,12 @@ function pn(e) {
|
|
|
2571
2571
|
rating: e.rating,
|
|
2572
2572
|
comment: e.comment || ""
|
|
2573
2573
|
})))?.Feedback);
|
|
2574
|
-
r &&
|
|
2574
|
+
r && q.getState().patchMessages((t) => s(t, {
|
|
2575
2575
|
messageId: e.message.id,
|
|
2576
2576
|
feedback: r
|
|
2577
2577
|
}));
|
|
2578
2578
|
} catch (t) {
|
|
2579
|
-
console.error("Failed to submit response feedback:", t),
|
|
2579
|
+
console.error("Failed to submit response feedback:", t), q.getState().patchMessages((t) => C(t, {
|
|
2580
2580
|
messageId: e.message.id,
|
|
2581
2581
|
previousFeedback: r
|
|
2582
2582
|
}));
|
|
@@ -2589,7 +2589,7 @@ function pn(e) {
|
|
|
2589
2589
|
deleteResponseFeedback: A(async (e) => {
|
|
2590
2590
|
if (!n) return;
|
|
2591
2591
|
let r = e.feedback ? { ...e.feedback } : null;
|
|
2592
|
-
|
|
2592
|
+
q.getState().patchMessages((t) => d(t, { messageId: e.id }));
|
|
2593
2593
|
try {
|
|
2594
2594
|
await i.deleteResponseFeedback(h({
|
|
2595
2595
|
agentId: t,
|
|
@@ -2597,7 +2597,7 @@ function pn(e) {
|
|
|
2597
2597
|
message: e
|
|
2598
2598
|
}));
|
|
2599
2599
|
} catch (t) {
|
|
2600
|
-
console.error("Failed to delete response feedback:", t),
|
|
2600
|
+
console.error("Failed to delete response feedback:", t), q.getState().patchMessages((t) => C(t, {
|
|
2601
2601
|
messageId: e.id,
|
|
2602
2602
|
previousFeedback: r
|
|
2603
2603
|
}));
|
|
@@ -2608,13 +2608,13 @@ function pn(e) {
|
|
|
2608
2608
|
i
|
|
2609
2609
|
]),
|
|
2610
2610
|
respondToApproval: A((e) => {
|
|
2611
|
-
!e.approvalRequestId || r || (
|
|
2611
|
+
!e.approvalRequestId || r || (q.getState().patchMessages((t) => t.map((t) => ({
|
|
2612
2612
|
...t,
|
|
2613
2613
|
tools: t.tools ? Object.fromEntries(Object.entries(t.tools).map(([t, n]) => [t, n.approvalRequestId === e.approvalRequestId ? {
|
|
2614
2614
|
...n,
|
|
2615
2615
|
approvalStatus: e.approve ? "approved" : "rejected"
|
|
2616
2616
|
} : n])) : t.tools
|
|
2617
|
-
}))),
|
|
2617
|
+
}))), q.getState().patchMessages((t) => [...t, {
|
|
2618
2618
|
id: String(Date.now() + Math.random()),
|
|
2619
2619
|
role: "system",
|
|
2620
2620
|
content: e.approve ? "已批准工具调用,正在继续运行。" : "已拒绝工具调用,正在通知运行时。",
|
|
@@ -2753,7 +2753,7 @@ function kn(e) {
|
|
|
2753
2753
|
}));
|
|
2754
2754
|
if (s.current !== t) return;
|
|
2755
2755
|
let o = new Map(a.filter((e) => !!e).map((e) => [e.messageId, e.feedback]));
|
|
2756
|
-
o.size &&
|
|
2756
|
+
o.size && q.getState().patchMessages((e) => e.map((e) => o.has(e.id) ? {
|
|
2757
2757
|
...e,
|
|
2758
2758
|
feedback: o.get(e.id)
|
|
2759
2759
|
} : e));
|
|
@@ -2823,14 +2823,13 @@ function kn(e) {
|
|
|
2823
2823
|
z.getState().setCurrentSessionId(e), i(), u.current?.abort(), r && _.getState().setMobileSidebarOpen(!1);
|
|
2824
2824
|
try {
|
|
2825
2825
|
let r = await n.listSessionMessages(e, {
|
|
2826
|
-
agentId: l.current || void 0,
|
|
2827
2826
|
includeReasoning: !0,
|
|
2828
2827
|
includeToolEvents: !0,
|
|
2829
2828
|
includeAttachments: !0
|
|
2830
2829
|
});
|
|
2831
2830
|
if (!t()) return;
|
|
2832
2831
|
let i = xn(r.Messages);
|
|
2833
|
-
|
|
2832
|
+
q.getState().setMessages(i), p(l.current, e, i);
|
|
2834
2833
|
let o = r.LatestSeqId || 0;
|
|
2835
2834
|
n.listSessionEvents(e, { limit: En }).then((n) => {
|
|
2836
2835
|
if (!t()) return;
|
|
@@ -2897,10 +2896,10 @@ function kn(e) {
|
|
|
2897
2896
|
pageSize: Number(i.PageSize ?? wn),
|
|
2898
2897
|
replace: !0
|
|
2899
2898
|
});
|
|
2900
|
-
let a = z.getState().sessions, o = s.current, c =
|
|
2901
|
-
c && c !== o ? h(c) : !c && o && (s.current = null, z.getState().setCurrentSessionId(null),
|
|
2899
|
+
let a = z.getState().sessions, o = s.current, c = Te(a, o || t || Ce(e));
|
|
2900
|
+
c && c !== o ? h(c) : !c && o && (s.current = null, z.getState().setCurrentSessionId(null), q.getState().setMessages([]), Q.getState().clearSessionCheckpoints());
|
|
2902
2901
|
} catch (e) {
|
|
2903
|
-
if (e instanceof
|
|
2902
|
+
if (e instanceof U) return;
|
|
2904
2903
|
console.error("Failed to fetch sessions:", e);
|
|
2905
2904
|
} finally {
|
|
2906
2905
|
z.getState().setLoadingSessions(!1);
|
|
@@ -2928,7 +2927,7 @@ function kn(e) {
|
|
|
2928
2927
|
pageSize: Number(a.PageSize ?? r)
|
|
2929
2928
|
});
|
|
2930
2929
|
} catch (e) {
|
|
2931
|
-
if (e instanceof
|
|
2930
|
+
if (e instanceof U) return;
|
|
2932
2931
|
console.error("Failed to load more sessions:", e);
|
|
2933
2932
|
} finally {
|
|
2934
2933
|
z.getState().setLoadingSessions(!1);
|
|
@@ -2946,9 +2945,9 @@ function kn(e) {
|
|
|
2946
2945
|
e && (z.getState().upsertSessions([{
|
|
2947
2946
|
SessionId: e,
|
|
2948
2947
|
UpdatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
2949
|
-
}]), s.current = e, z.getState().setCurrentSessionId(e),
|
|
2948
|
+
}]), s.current = e, z.getState().setCurrentSessionId(e), q.getState().setMessages([]), Q.getState().setSessionCheckpoints(e, []), Q.getState().setSessionToolReceipts(e, []), r && (_.getState().setMobileSidebarOpen(!1), _.getState().setMobileActionsOpen(!1)), g(t, e));
|
|
2950
2949
|
} catch (e) {
|
|
2951
|
-
if (e instanceof
|
|
2950
|
+
if (e instanceof U) return;
|
|
2952
2951
|
console.error("Failed to create session:", e);
|
|
2953
2952
|
}
|
|
2954
2953
|
}, [
|
|
@@ -2959,9 +2958,9 @@ function kn(e) {
|
|
|
2959
2958
|
r
|
|
2960
2959
|
]), b = A(async (e) => {
|
|
2961
2960
|
try {
|
|
2962
|
-
await n.deleteSession(e), z.getState().removeSession(e), z.getState().clearSessionEventCache(e), s.current === e && (s.current = null,
|
|
2961
|
+
await n.deleteSession(e), z.getState().removeSession(e), z.getState().clearSessionEventCache(e), s.current === e && (s.current = null, q.getState().setMessages([]), Q.getState().clearSessionCheckpoints(e), z.getState().setCurrentSessionId(null), g(t));
|
|
2963
2962
|
} catch (e) {
|
|
2964
|
-
if (e instanceof
|
|
2963
|
+
if (e instanceof U) return;
|
|
2965
2964
|
console.error("Failed to delete session", e);
|
|
2966
2965
|
}
|
|
2967
2966
|
}, [
|
|
@@ -2987,10 +2986,10 @@ function kn(e) {
|
|
|
2987
2986
|
limit: o.length
|
|
2988
2987
|
}), s.current === e) {
|
|
2989
2988
|
let t = nn(o);
|
|
2990
|
-
|
|
2989
|
+
q.getState().setMessages(t), p(l.current, e, t);
|
|
2991
2990
|
}
|
|
2992
2991
|
} catch (e) {
|
|
2993
|
-
e instanceof
|
|
2992
|
+
e instanceof U || console.error("Failed to load older session events:", e);
|
|
2994
2993
|
} finally {
|
|
2995
2994
|
z.getState().setSessionEventLoadingOlder(e, !1);
|
|
2996
2995
|
}
|
|
@@ -3005,7 +3004,7 @@ function kn(e) {
|
|
|
3005
3004
|
//#endregion
|
|
3006
3005
|
//#region src/components/chat/ConnectedSidebar.tsx
|
|
3007
3006
|
function An({ uiCapabilities: e, createNewSession: n, deleteSession: a, loadSession: s, loadMoreSessions: c }) {
|
|
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 } =
|
|
3007
|
+
let u = z((e) => e.sessions), d = z((e) => e.currentSessionId), f = z((e) => e.pinnedSessionIds), m = z((e) => e.isLoadingSessions), h = z((e) => e.hasMoreSessions), g = _((e) => e.sidebarOpen), v = _((e) => e.mobileSidebarOpen), { isMobile: y } = Fe(), b = t(e), { desktopSidebarVisible: ee } = _e({
|
|
3009
3008
|
isMobile: y,
|
|
3010
3009
|
desktopSidebarOpen: g,
|
|
3011
3010
|
mobileSidebarOpen: v
|
|
@@ -3227,7 +3226,7 @@ function Jn({ messages: e, draftInput: t, selectedModel: n }) {
|
|
|
3227
3226
|
//#endregion
|
|
3228
3227
|
//#region src/components/chat/ConnectedMessageList.tsx
|
|
3229
3228
|
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 =
|
|
3229
|
+
let u = q((e) => e.messages), d = z((e) => e.currentSessionId), f = L((e) => !!(e.getSessionActivity(d) && e.isSessionStreaming(d))), p = L((e) => e.getSessionActivity(d)), h = Q((e) => e.getSessionCheckpoints(d)), g = z((e) => d ? e.eventCache[d] : null), v = _((e) => e.input), y = I((e) => e.availableModels), b = I((e) => e.selectedModel), ee = _((e) => e.previewAttachment), te = _((e) => e.previewImageSize), x = M(null), S = M(!0), C = M(!1), w = M(0), T = M(f), O = M(!1), k = M(!0), re = ie(() => y.find((e) => e.id === b) || null, [y, b]), A = ie(() => Jn({
|
|
3231
3230
|
messages: u,
|
|
3232
3231
|
draftInput: v,
|
|
3233
3232
|
selectedModel: re
|
|
@@ -3278,19 +3277,28 @@ function Yn({ agentName: e, isMobile: t, onDeleteFeedback: n, onSubmitFeedback:
|
|
|
3278
3277
|
let e = x.current;
|
|
3279
3278
|
if (e) {
|
|
3280
3279
|
if (u.length > 0 && k.current) {
|
|
3281
|
-
let e = z.getState().currentSessionId, t =
|
|
3282
|
-
|
|
3283
|
-
|
|
3284
|
-
|
|
3285
|
-
|
|
3286
|
-
|
|
3280
|
+
let e = z.getState().currentSessionId, t = x.current, n = t ? t.style.scrollBehavior : "";
|
|
3281
|
+
t && (t.style.scrollBehavior = "auto", t.scrollTop = t.scrollHeight, w.current = t.scrollTop);
|
|
3282
|
+
let r = 0, i = t?.scrollHeight ?? -1, a = !1, o = 0, s = () => {
|
|
3283
|
+
a || (a = !0, t && (t.style.scrollBehavior = n), S.current = !0, C.current = !1, k.current = !1);
|
|
3284
|
+
}, c = () => {
|
|
3285
|
+
if (a) return;
|
|
3286
|
+
if (z.getState().currentSessionId !== e) {
|
|
3287
|
+
a = !0;
|
|
3288
|
+
return;
|
|
3289
|
+
}
|
|
3290
|
+
let t = x.current;
|
|
3291
|
+
if (t) {
|
|
3292
|
+
if (t.scrollHeight !== i) i = t.scrollHeight, t.scrollTop = t.scrollHeight, w.current = t.scrollTop, r = 0;
|
|
3293
|
+
else if (r += 1, r >= 3) {
|
|
3294
|
+
s();
|
|
3287
3295
|
return;
|
|
3288
3296
|
}
|
|
3289
|
-
|
|
3297
|
+
o = requestAnimationFrame(c);
|
|
3290
3298
|
}
|
|
3291
|
-
};
|
|
3292
|
-
return
|
|
3293
|
-
cancelAnimationFrame(
|
|
3299
|
+
}, l = window.setTimeout(s, 2e3);
|
|
3300
|
+
return o = requestAnimationFrame(c), () => {
|
|
3301
|
+
cancelAnimationFrame(o), window.clearTimeout(l), s();
|
|
3294
3302
|
};
|
|
3295
3303
|
}
|
|
3296
3304
|
S.current && (e.scrollTop = e.scrollHeight, w.current = e.scrollTop);
|
|
@@ -3345,7 +3353,7 @@ function Qn(e) {
|
|
|
3345
3353
|
//#endregion
|
|
3346
3354
|
//#region src/components/chat/ConnectedComposer.tsx
|
|
3347
3355
|
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 =
|
|
3356
|
+
let o = _((e) => e.input), s = _((e) => e.attachments), c = z((e) => e.currentSessionId), l = L((e) => !!(e.getSessionActivity(c) && e.isSessionStreaming(c))), u = _((e) => e.queuedDrafts), d = q((e) => e.messages), f = I((e) => e.availableModels), p = I((e) => e.selectedModel), m = M(null), h = M(null), g = ie(() => f.find((e) => e.id === p) || null, [f, p]), v = ie(() => Jn({
|
|
3349
3357
|
messages: d,
|
|
3350
3358
|
draftInput: o,
|
|
3351
3359
|
selectedModel: g
|
|
@@ -3389,7 +3397,7 @@ function $n({ composerMaxHeight: e, submitDraft: t, stopGeneration: n, cancelRem
|
|
|
3389
3397
|
//#endregion
|
|
3390
3398
|
//#region src/api/session.ts
|
|
3391
3399
|
async function er(e, t) {
|
|
3392
|
-
let n = await
|
|
3400
|
+
let n = await K("ListSessions", {
|
|
3393
3401
|
AgentId: e,
|
|
3394
3402
|
Page: t?.page,
|
|
3395
3403
|
PageSize: t?.pageSize
|
|
@@ -3402,18 +3410,18 @@ async function er(e, t) {
|
|
|
3402
3410
|
};
|
|
3403
3411
|
}
|
|
3404
3412
|
async function tr(e, t) {
|
|
3405
|
-
return (await
|
|
3413
|
+
return (await K("CreateSession", { AgentId: e }, t)).Session;
|
|
3406
3414
|
}
|
|
3407
3415
|
async function nr(e, t) {
|
|
3408
|
-
await
|
|
3416
|
+
await K("DeleteSession", { SessionId: e }, t);
|
|
3409
3417
|
}
|
|
3410
3418
|
async function rr(e, t) {
|
|
3411
|
-
return (await
|
|
3419
|
+
return (await K("GetSession", { SessionId: e }, t)).Session;
|
|
3412
3420
|
}
|
|
3413
3421
|
//#endregion
|
|
3414
3422
|
//#region src/api/events.ts
|
|
3415
3423
|
async function ir(e, t) {
|
|
3416
|
-
let n = await
|
|
3424
|
+
let n = await K("ListSessionEvents", {
|
|
3417
3425
|
SessionId: e,
|
|
3418
3426
|
Offset: t?.offset,
|
|
3419
3427
|
Limit: t?.limit
|
|
@@ -3428,7 +3436,7 @@ async function ir(e, t) {
|
|
|
3428
3436
|
//#endregion
|
|
3429
3437
|
//#region src/api/messages.ts
|
|
3430
3438
|
async function ar(e, t) {
|
|
3431
|
-
let n = await
|
|
3439
|
+
let n = await K("ListSessionMessages", {
|
|
3432
3440
|
AgentId: t?.agentId,
|
|
3433
3441
|
SessionId: e,
|
|
3434
3442
|
AfterSeqId: t?.afterSeqId,
|
|
@@ -3447,7 +3455,7 @@ async function ar(e, t) {
|
|
|
3447
3455
|
//#endregion
|
|
3448
3456
|
//#region src/api/run.ts
|
|
3449
3457
|
async function or(e, t) {
|
|
3450
|
-
return
|
|
3458
|
+
return ze("RunAgent", e, t);
|
|
3451
3459
|
}
|
|
3452
3460
|
//#endregion
|
|
3453
3461
|
//#region src/api/checkpoints.ts
|
|
@@ -3456,10 +3464,10 @@ async function sr(e, t) {
|
|
|
3456
3464
|
AgentId: e.agentId,
|
|
3457
3465
|
SessionId: e.sessionId
|
|
3458
3466
|
};
|
|
3459
|
-
return e.runId && (n.RunId = e.runId),
|
|
3467
|
+
return e.runId && (n.RunId = e.runId), K("ListSessionCheckpoints", n, t);
|
|
3460
3468
|
}
|
|
3461
3469
|
async function cr(e, t) {
|
|
3462
|
-
return
|
|
3470
|
+
return K("GetCheckpointResumePreview", {
|
|
3463
3471
|
AgentId: e.agentId,
|
|
3464
3472
|
SessionId: e.sessionId,
|
|
3465
3473
|
RunId: e.runId,
|
|
@@ -3471,7 +3479,7 @@ async function lr(e, t) {
|
|
|
3471
3479
|
AgentId: e.agentId,
|
|
3472
3480
|
SessionId: e.sessionId
|
|
3473
3481
|
};
|
|
3474
|
-
return e.runId && (n.RunId = e.runId), e.checkpointId && (n.CheckpointId = e.checkpointId),
|
|
3482
|
+
return e.runId && (n.RunId = e.runId), e.checkpointId && (n.CheckpointId = e.checkpointId), K("ListToolReceipts", n, t);
|
|
3475
3483
|
}
|
|
3476
3484
|
async function ur(e, t) {
|
|
3477
3485
|
let n = {
|
|
@@ -3481,28 +3489,28 @@ async function ur(e, t) {
|
|
|
3481
3489
|
CheckpointId: e.checkpointId,
|
|
3482
3490
|
Stream: !0
|
|
3483
3491
|
};
|
|
3484
|
-
return e.resumeAttemptId && (n.ResumeAttemptId = e.resumeAttemptId), e.invocationId && (n.InvocationId = e.invocationId),
|
|
3492
|
+
return e.resumeAttemptId && (n.ResumeAttemptId = e.resumeAttemptId), e.invocationId && (n.InvocationId = e.invocationId), ze("ResumeRun", n, t);
|
|
3485
3493
|
}
|
|
3486
3494
|
//#endregion
|
|
3487
3495
|
//#region src/api/workspace.ts
|
|
3488
3496
|
async function dr(e, t, n) {
|
|
3489
|
-
return
|
|
3497
|
+
return K("ListWorkspaceFiles", {
|
|
3490
3498
|
AgentId: e,
|
|
3491
3499
|
Path: t,
|
|
3492
3500
|
Recursive: n
|
|
3493
3501
|
});
|
|
3494
3502
|
}
|
|
3495
3503
|
async function fr(e) {
|
|
3496
|
-
return
|
|
3504
|
+
return Le("AddWorkspaceFile", e);
|
|
3497
3505
|
}
|
|
3498
3506
|
async function pr(e, t) {
|
|
3499
|
-
return
|
|
3507
|
+
return K("DeleteWorkspaceFile", {
|
|
3500
3508
|
AgentId: e,
|
|
3501
3509
|
Path: t
|
|
3502
3510
|
});
|
|
3503
3511
|
}
|
|
3504
3512
|
async function mr(e, t, n) {
|
|
3505
|
-
return
|
|
3513
|
+
return Re("GetWorkspaceFileContent", {
|
|
3506
3514
|
AgentId: e,
|
|
3507
3515
|
FilePath: t
|
|
3508
3516
|
}, {
|
|
@@ -3513,7 +3521,7 @@ async function mr(e, t, n) {
|
|
|
3513
3521
|
//#endregion
|
|
3514
3522
|
//#region src/api/upload.ts
|
|
3515
3523
|
async function hr(e, t) {
|
|
3516
|
-
return
|
|
3524
|
+
return Le("UploadFile", e, t);
|
|
3517
3525
|
}
|
|
3518
3526
|
//#endregion
|
|
3519
3527
|
//#region src/core/api/facade.ts
|
|
@@ -3552,26 +3560,26 @@ var gr = class {
|
|
|
3552
3560
|
return ur(e, t);
|
|
3553
3561
|
}
|
|
3554
3562
|
async subscribeRunEvents(e, t) {
|
|
3555
|
-
return
|
|
3563
|
+
return Be("SubscribeRunEvents", {
|
|
3556
3564
|
SessionId: e.sessionId,
|
|
3557
3565
|
InvocationId: e.invocationId,
|
|
3558
3566
|
AfterSeqId: String(e.afterSeqId)
|
|
3559
3567
|
}, t);
|
|
3560
3568
|
}
|
|
3561
3569
|
async cancelRun(e, t, n) {
|
|
3562
|
-
return
|
|
3570
|
+
return K("CancelRun", {
|
|
3563
3571
|
AgentId: e,
|
|
3564
3572
|
InvocationId: t
|
|
3565
3573
|
}, n);
|
|
3566
3574
|
}
|
|
3567
3575
|
async getResponseFeedback(e, t) {
|
|
3568
|
-
return
|
|
3576
|
+
return K("GetResponseFeedback", e, t);
|
|
3569
3577
|
}
|
|
3570
3578
|
async upsertResponseFeedback(e, t) {
|
|
3571
|
-
return
|
|
3579
|
+
return K("UpsertResponseFeedback", e, t);
|
|
3572
3580
|
}
|
|
3573
3581
|
async deleteResponseFeedback(e, t) {
|
|
3574
|
-
await
|
|
3582
|
+
await K("DeleteResponseFeedback", e, t);
|
|
3575
3583
|
}
|
|
3576
3584
|
async listWorkspaceFiles(e, t, n) {
|
|
3577
3585
|
return dr(e, t, n);
|
|
@@ -3586,20 +3594,20 @@ var gr = class {
|
|
|
3586
3594
|
return mr(e, t, n);
|
|
3587
3595
|
}
|
|
3588
3596
|
async listAgentModels(e) {
|
|
3589
|
-
return
|
|
3597
|
+
return He(e);
|
|
3590
3598
|
}
|
|
3591
3599
|
async getAgentUiBootstrap() {
|
|
3592
|
-
return
|
|
3600
|
+
return Ve();
|
|
3593
3601
|
}
|
|
3594
3602
|
async uploadFile(e, t) {
|
|
3595
3603
|
return hr(e, t);
|
|
3596
3604
|
}
|
|
3597
3605
|
}, _r = new gr(), vr = k.lazy(() => import("./ArtifactsPanel-DCn5q1OB.js").then((e) => ({ default: e.ArtifactsPanel }))), yr = k.lazy(() => import("./NativeTerminalPanel-CjyPyYC4.js").then((e) => e.n).then((e) => ({ default: e.NativeTerminalPanel })));
|
|
3598
3606
|
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 } =
|
|
3607
|
+
let a = e || _r, o = F((e) => e.agentId), s = z((e) => e.currentSessionId), c = L((e) => e.isStreaming), l = _((e) => e.sidebarOpen), u = _((e) => e.mobileSidebarOpen), d = _((e) => e.mobileActionsOpen), f = F((e) => e.agentName), p = I((e) => e.selectedModel), m = I((e) => e.availableModels), h = I((e) => e.modelSource), v = I((e) => e.modelCatalogLoaded), te = I((e) => e.thinkingMode), x = F((e) => e.agentFramework), S = F((e) => e.workspaceFiles), C = F((e) => e.accessMode), T = _((e) => e.workspacePanelOpen), O = _((e) => e.workspacePanelWidth), k = _((e) => e.workspacePanelFullscreen), ie = F((e) => e.apiFormats), N = F((e) => e.capabilities), P = w((e) => e.visible && !!e.content), oe = M([]), se = M(null), { isMobile: R, viewportHeight: ce } = Fe(), le = ve({
|
|
3600
3608
|
isMobile: R,
|
|
3601
3609
|
viewportHeight: ce
|
|
3602
|
-
}), { fetchSessions: ue, loadMoreSessions: de, loadSession: fe, loadOlderSessionEvents: pe, createNewSession: me, deleteSession: he, currentSessionIdRef: B, agentIdRef:
|
|
3610
|
+
}), { fetchSessions: ue, loadMoreSessions: de, loadSession: fe, loadOlderSessionEvents: pe, createNewSession: me, deleteSession: he, currentSessionIdRef: B, agentIdRef: ge, runSubscriptionAbortRef: _e } = kn({
|
|
3603
3611
|
agentId: o,
|
|
3604
3612
|
currentSessionId: s,
|
|
3605
3613
|
isMobile: R,
|
|
@@ -3607,39 +3615,39 @@ function br({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
|
|
|
3607
3615
|
api: a,
|
|
3608
3616
|
resetCompaction: () => {},
|
|
3609
3617
|
disconnectRun: () => se.current?.()
|
|
3610
|
-
}),
|
|
3618
|
+
}), ye = A((e) => {
|
|
3611
3619
|
if (!e) return;
|
|
3612
3620
|
let t = () => {
|
|
3613
|
-
z.getState().clearSessionEventCache(e), ue(
|
|
3621
|
+
z.getState().clearSessionEventCache(e), ue(ge.current, e);
|
|
3614
3622
|
};
|
|
3615
3623
|
queueMicrotask(t), window.setTimeout(t, 1800), window.setTimeout(t, 5e3);
|
|
3616
|
-
}, [
|
|
3624
|
+
}, [ge, ue]), be = m.find((e) => e.id === p) || null, { submitDraft: xe, stopGeneration: Se, disconnectRun: Ce, resumeCheckpoint: Te } = fn({
|
|
3617
3625
|
agentId: o,
|
|
3618
3626
|
currentSessionId: s,
|
|
3619
3627
|
agentFramework: x,
|
|
3620
3628
|
apiFormats: ie,
|
|
3621
3629
|
selectedModel: p,
|
|
3622
|
-
selectedModelMetadata:
|
|
3630
|
+
selectedModelMetadata: be,
|
|
3623
3631
|
thinkingMode: te,
|
|
3624
3632
|
uiCapabilities: N,
|
|
3625
3633
|
isMobile: R,
|
|
3626
3634
|
api: a,
|
|
3627
3635
|
currentSessionIdRef: B,
|
|
3628
|
-
agentIdRef:
|
|
3636
|
+
agentIdRef: ge,
|
|
3629
3637
|
queuedDraftRef: oe,
|
|
3630
|
-
onRunSettled:
|
|
3638
|
+
onRunSettled: ye
|
|
3631
3639
|
});
|
|
3632
3640
|
j(() => {
|
|
3633
|
-
se.current =
|
|
3634
|
-
}, [
|
|
3635
|
-
let
|
|
3641
|
+
se.current = Ce;
|
|
3642
|
+
}, [Ce]);
|
|
3643
|
+
let Ee = A(() => {
|
|
3636
3644
|
let e = B.current;
|
|
3637
|
-
|
|
3645
|
+
_e.current?.abort(), L.getState().stopActivity(), L.getState().stopSessionActivity(e), Se();
|
|
3638
3646
|
}, [
|
|
3639
3647
|
B,
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
]),
|
|
3648
|
+
_e,
|
|
3649
|
+
Se
|
|
3650
|
+
]), De = A(async () => {
|
|
3643
3651
|
let e = B.current, t = L.getState(), n = t.currentRunId || t.getSessionActivity(e)?.runId || "";
|
|
3644
3652
|
if (n) try {
|
|
3645
3653
|
await a.cancelRun(o, n), L.getState().stopSessionActivity(e, "取消请求已发送,后台运行会停在最近 checkpoint。");
|
|
@@ -3652,46 +3660,46 @@ function br({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
|
|
|
3652
3660
|
countEvent: !1
|
|
3653
3661
|
});
|
|
3654
3662
|
}
|
|
3655
|
-
|
|
3663
|
+
ye(e);
|
|
3656
3664
|
}, [
|
|
3657
3665
|
a,
|
|
3658
3666
|
o,
|
|
3659
3667
|
B,
|
|
3660
|
-
|
|
3661
|
-
]), { submitResponseFeedback:
|
|
3668
|
+
ye
|
|
3669
|
+
]), { submitResponseFeedback: Oe, deleteResponseFeedback: ke, respondToApproval: je } = pn({
|
|
3662
3670
|
agentId: o,
|
|
3663
3671
|
currentSessionId: s,
|
|
3664
3672
|
isStreaming: c,
|
|
3665
3673
|
api: a,
|
|
3666
|
-
submitDraft:
|
|
3674
|
+
submitDraft: xe
|
|
3667
3675
|
});
|
|
3668
|
-
|
|
3669
|
-
|
|
3676
|
+
Ge({ fetchSessions: ue }), j(() => {
|
|
3677
|
+
ge.current = o, B.current = s, we(o, s);
|
|
3670
3678
|
}, [
|
|
3671
3679
|
o,
|
|
3672
3680
|
s,
|
|
3673
|
-
|
|
3681
|
+
ge,
|
|
3674
3682
|
B
|
|
3675
3683
|
]), j(() => {
|
|
3676
3684
|
R ? _.getState().setWorkspacePanelFullscreen(!1) : (_.getState().setMobileSidebarOpen(!1), _.getState().setMobileActionsOpen(!1));
|
|
3677
3685
|
}, [R]), j(() => {
|
|
3678
3686
|
T || _.getState().setWorkspacePanelFullscreen(!1);
|
|
3679
3687
|
}, [T]), j(() => () => {
|
|
3680
|
-
|
|
3681
|
-
}, [
|
|
3682
|
-
let
|
|
3688
|
+
_e.current?.abort();
|
|
3689
|
+
}, [_e]);
|
|
3690
|
+
let Ne = t(N), Pe = !!N.Thinking, V = g({
|
|
3683
3691
|
workspaceFiles: S,
|
|
3684
3692
|
accessMode: C
|
|
3685
|
-
}),
|
|
3693
|
+
}), H = y({ isMobile: R }), U = Ae({
|
|
3686
3694
|
capability: N.NativeDashboard,
|
|
3687
3695
|
agentFramework: x,
|
|
3688
3696
|
accessMode: C,
|
|
3689
3697
|
origin: window.location.origin
|
|
3690
|
-
}),
|
|
3698
|
+
}), W = !Ne, Ie = x === "openclaw" ? "OpenClaw" : x === "hermes" ? "Hermes" : "原生运行时", G = be?.display_name || p || "", K = !R && l && Ne, Le = M(!1), [Re, ze] = ae(r === "tui"), Be = Re && !!N.NativeTerminal?.Enabled;
|
|
3691
3699
|
j(() => {
|
|
3692
|
-
|
|
3693
|
-
}, [r,
|
|
3694
|
-
let
|
|
3700
|
+
Le.current || r !== "workspace" || !V || (Le.current = !0, _.getState().setWorkspacePanelOpen(!0), _.getState().setWorkspacePanelFullscreen(!0));
|
|
3701
|
+
}, [r, V]);
|
|
3702
|
+
let Ve = /* @__PURE__ */ D("div", {
|
|
3695
3703
|
className: "flex h-[var(--app-height)] min-h-[var(--app-height)] overflow-hidden bg-white font-sans text-slate-800 dark:bg-slate-900 dark:text-slate-200",
|
|
3696
3704
|
children: [
|
|
3697
3705
|
/* @__PURE__ */ E(An, {
|
|
@@ -3706,7 +3714,7 @@ function br({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
|
|
|
3706
3714
|
children: [/* @__PURE__ */ E(n, {
|
|
3707
3715
|
agentName: f,
|
|
3708
3716
|
currentSessionId: s,
|
|
3709
|
-
nativeLauncherMode:
|
|
3717
|
+
nativeLauncherMode: W,
|
|
3710
3718
|
isMobile: R,
|
|
3711
3719
|
sidebarOpen: l,
|
|
3712
3720
|
mobileSidebarOpen: u,
|
|
@@ -3718,40 +3726,40 @@ function br({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
|
|
|
3718
3726
|
onSelectModel: (e) => {
|
|
3719
3727
|
I.getState().setSelectedModel(e), R && _.getState().setMobileActionsOpen(!1);
|
|
3720
3728
|
},
|
|
3721
|
-
selectedModelLabel:
|
|
3729
|
+
selectedModelLabel: G,
|
|
3722
3730
|
modelCatalogLoaded: v,
|
|
3723
3731
|
modelSource: h,
|
|
3724
|
-
thinkingEnabled:
|
|
3732
|
+
thinkingEnabled: Pe,
|
|
3725
3733
|
thinkingMode: te,
|
|
3726
|
-
onSelectThinkingMode: (e) => I.getState().setThinkingMode(
|
|
3734
|
+
onSelectThinkingMode: (e) => I.getState().setThinkingMode(Me(e)),
|
|
3727
3735
|
mobileActionsOpen: d,
|
|
3728
3736
|
onMobileActionsOpenChange: (e) => _.getState().setMobileActionsOpen(e),
|
|
3729
|
-
workspaceEnabled:
|
|
3737
|
+
workspaceEnabled: V,
|
|
3730
3738
|
onOpenWorkspace: () => _.getState().setWorkspacePanelOpen(!0),
|
|
3731
|
-
nativeManagementLink:
|
|
3739
|
+
nativeManagementLink: U,
|
|
3732
3740
|
nativeTerminal: N.NativeTerminal
|
|
3733
|
-
}),
|
|
3734
|
-
productLabel:
|
|
3735
|
-
nativeManagementLink:
|
|
3741
|
+
}), W ? /* @__PURE__ */ E(b, {
|
|
3742
|
+
productLabel: Ie,
|
|
3743
|
+
nativeManagementLink: U,
|
|
3736
3744
|
nativeTerminal: N.NativeTerminal,
|
|
3737
|
-
workspaceEnabled:
|
|
3745
|
+
workspaceEnabled: V,
|
|
3738
3746
|
onOpenWorkspace: () => _.getState().setWorkspacePanelOpen(!0)
|
|
3739
3747
|
}) : /* @__PURE__ */ D(ne, { children: [/* @__PURE__ */ E(Yn, {
|
|
3740
3748
|
agentName: f,
|
|
3741
3749
|
isMobile: R,
|
|
3742
|
-
onDeleteFeedback:
|
|
3743
|
-
onSubmitFeedback:
|
|
3744
|
-
onRespondToApproval:
|
|
3745
|
-
onStopGeneration:
|
|
3746
|
-
onCancelRemote: N.StopRun ?
|
|
3750
|
+
onDeleteFeedback: ke,
|
|
3751
|
+
onSubmitFeedback: Oe,
|
|
3752
|
+
onRespondToApproval: je,
|
|
3753
|
+
onStopGeneration: Ee,
|
|
3754
|
+
onCancelRemote: N.StopRun ? De : void 0,
|
|
3747
3755
|
checkpointResumeEnabled: N.RunLifecycle.Enabled && N.RunLifecycle.Checkpoints && N.RunLifecycle.CheckpointResume,
|
|
3748
|
-
onResumeCheckpoint:
|
|
3756
|
+
onResumeCheckpoint: Te,
|
|
3749
3757
|
onLoadOlderSessionEvents: pe
|
|
3750
3758
|
}), /* @__PURE__ */ E($n, {
|
|
3751
3759
|
composerMaxHeight: le,
|
|
3752
|
-
submitDraft:
|
|
3753
|
-
stopGeneration:
|
|
3754
|
-
cancelRemote: N.StopRun ?
|
|
3760
|
+
submitDraft: xe,
|
|
3761
|
+
stopGeneration: Ee,
|
|
3762
|
+
cancelRemote: N.StopRun ? De : void 0,
|
|
3755
3763
|
isMobile: R
|
|
3756
3764
|
})] })]
|
|
3757
3765
|
}),
|
|
@@ -3762,20 +3770,20 @@ function br({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
|
|
|
3762
3770
|
workspacePanelWidth: O,
|
|
3763
3771
|
workspacePanelFullscreen: k,
|
|
3764
3772
|
isMobile: R,
|
|
3765
|
-
workspaceEnabled:
|
|
3773
|
+
workspaceEnabled: V,
|
|
3766
3774
|
workspaceFiles: S,
|
|
3767
|
-
workspacePanelPresentation:
|
|
3775
|
+
workspacePanelPresentation: H,
|
|
3768
3776
|
closeWorkspacePanel: () => {
|
|
3769
3777
|
_.getState().setWorkspacePanelFullscreen(!1), _.getState().setWorkspacePanelOpen(!1);
|
|
3770
3778
|
},
|
|
3771
3779
|
handleWorkspacePanelResizeStart: (e) => {
|
|
3772
3780
|
if (k || R) return;
|
|
3773
3781
|
e.preventDefault();
|
|
3774
|
-
let t = e.clientX, n = O, r =
|
|
3782
|
+
let t = e.clientX, n = O, r = Ne && K ? 280 : 0, i = document.body.style.cursor, a = document.body.style.userSelect;
|
|
3775
3783
|
document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
|
|
3776
3784
|
let o = (e) => {
|
|
3777
3785
|
let i = n + t - e.clientX;
|
|
3778
|
-
_.getState().setWorkspacePanelWidth(
|
|
3786
|
+
_.getState().setWorkspacePanelWidth(ht(i, window.innerWidth, r));
|
|
3779
3787
|
}, s = () => {
|
|
3780
3788
|
document.body.style.cursor = i, document.body.style.userSelect = a, window.removeEventListener("pointermove", o), window.removeEventListener("pointerup", s), window.removeEventListener("pointercancel", s);
|
|
3781
3789
|
};
|
|
@@ -3787,18 +3795,18 @@ function br({ apiAdapter: e, initialSurface: r = "chat", routeShell: i } = {}) {
|
|
|
3787
3795
|
fallback: null,
|
|
3788
3796
|
children: /* @__PURE__ */ E(vr, {})
|
|
3789
3797
|
}),
|
|
3790
|
-
|
|
3798
|
+
Be ? /* @__PURE__ */ E(re, {
|
|
3791
3799
|
fallback: null,
|
|
3792
3800
|
children: /* @__PURE__ */ E(yr, {
|
|
3793
3801
|
capability: N.NativeTerminal,
|
|
3794
3802
|
open: !0,
|
|
3795
3803
|
sessionId: s,
|
|
3796
|
-
onClose: () =>
|
|
3804
|
+
onClose: () => ze(!1)
|
|
3797
3805
|
})
|
|
3798
3806
|
}) : null
|
|
3799
3807
|
]
|
|
3800
3808
|
});
|
|
3801
|
-
return i ? /* @__PURE__ */ E(i, { children:
|
|
3809
|
+
return i ? /* @__PURE__ */ E(i, { children: Ve }) : Ve;
|
|
3802
3810
|
}
|
|
3803
3811
|
//#endregion
|
|
3804
3812
|
//#region src/core/transport/sse-transport.ts
|
|
@@ -3812,18 +3820,18 @@ function xr(e, t) {
|
|
|
3812
3820
|
var Sr = class {
|
|
3813
3821
|
protocol = "sse-post";
|
|
3814
3822
|
async connect(e, t) {
|
|
3815
|
-
let n = (await
|
|
3823
|
+
let n = (await ze(e.action, e.body || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
|
|
3816
3824
|
return (async () => {
|
|
3817
3825
|
try {
|
|
3818
3826
|
for (; !a;) {
|
|
3819
3827
|
let { value: e, done: a } = await n.read();
|
|
3820
3828
|
if (a) break;
|
|
3821
3829
|
i += r.decode(e, { stream: !0 });
|
|
3822
|
-
let { chunks: o, remainder: s } =
|
|
3830
|
+
let { chunks: o, remainder: s } = dt(i);
|
|
3823
3831
|
i = s;
|
|
3824
3832
|
for (let e of o) {
|
|
3825
3833
|
if (!e.trim()) continue;
|
|
3826
|
-
let n =
|
|
3834
|
+
let n = ut(e);
|
|
3827
3835
|
for (let e of n) {
|
|
3828
3836
|
if (e.eventName === "__done__") {
|
|
3829
3837
|
t.onComplete();
|
|
@@ -3844,18 +3852,18 @@ var Sr = class {
|
|
|
3844
3852
|
}, Cr = class {
|
|
3845
3853
|
protocol = "sse-get";
|
|
3846
3854
|
async connect(e, t) {
|
|
3847
|
-
let n = (await
|
|
3855
|
+
let n = (await Be(e.action, e.params || {}, { signal: e.signal })).getReader(), r = new TextDecoder(), i = "", a = !1;
|
|
3848
3856
|
return (async () => {
|
|
3849
3857
|
try {
|
|
3850
3858
|
for (; !a;) {
|
|
3851
3859
|
let { value: e, done: a } = await n.read();
|
|
3852
3860
|
if (a) break;
|
|
3853
3861
|
i += r.decode(e, { stream: !0 });
|
|
3854
|
-
let { chunks: o, remainder: s } =
|
|
3862
|
+
let { chunks: o, remainder: s } = dt(i);
|
|
3855
3863
|
i = s;
|
|
3856
3864
|
for (let e of o) {
|
|
3857
3865
|
if (!e.trim()) continue;
|
|
3858
|
-
let n =
|
|
3866
|
+
let n = ut(e);
|
|
3859
3867
|
for (let e of n) {
|
|
3860
3868
|
if (e.eventName === "__done__") {
|
|
3861
3869
|
t.onComplete();
|
|
@@ -3875,4 +3883,4 @@ var Sr = class {
|
|
|
3875
3883
|
}
|
|
3876
3884
|
};
|
|
3877
3885
|
//#endregion
|
|
3878
|
-
export { br as AgentWorkbench, gr as ApiFacadeImpl,
|
|
3886
|
+
export { br as AgentWorkbench, gr as ApiFacadeImpl, xt as RunEngineImpl, Cr as SseGetTransport, Sr as SsePostTransport, ct as createProtocol };
|