@yuku123/z-team-component 0.2.95 → 0.2.97
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/{ChangeLogView-DY_k1B64.js → ChangeLogView-rZMXekBF.js} +1 -1
- package/dist/{ComponentDoc-DOki_RNN.js → ComponentDoc-D-pxx9lf.js} +272 -272
- package/dist/{InvitationManagementPage-BY_80aYm.js → InvitationManagementPage-Cjl4MJbg.js} +1 -1
- package/dist/{OnboardingPage-BJbMBrxH.js → OnboardingPage-BzRm4nfz.js} +2 -2
- package/dist/{ScheduledTasks-XTkQqn4w.js → ScheduledTasks-C43OXLuz.js} +6 -6
- package/dist/{SystemShell--qM7HCyt.js → SystemShell-DsV5qxDA.js} +4 -4
- package/dist/{admin-logs-Co7fE3re.js → admin-logs-BiB7MMQd.js} +1 -1
- package/dist/{api-775Bo4Bj.js → api-DVx7XKgz.js} +1 -1
- package/dist/{createWorkspaceWsHandler-BRfhB79M.js → createWorkspaceWsHandler-NBvsKt3N.js} +3 -3
- package/dist/{index-BbFdWpYR.js → index-9RzymY-Z.js} +4 -4
- package/dist/{index-CXQuOt1Z.js → index-BEkCao8d.js} +1 -1
- package/dist/{index-CJMqiJom.js → index-BGBFOKRD.js} +3 -3
- package/dist/{index-C7YHxq-O.js → index-C16uqYZX.js} +2 -2
- package/dist/{index-OUSBycnF.js → index-C4s0aecX.js} +1 -1
- package/dist/{index-ByP1umXq.js → index-CNJl9omM.js} +2 -2
- package/dist/{index-6st3qQNt.js → index-CQlk29NQ.js} +10 -11
- package/dist/{index-C6r-MO3V.js → index-CdCmcaRm.js} +2 -2
- package/dist/{index-CEcQbI8N.js → index-CsmzOi1R.js} +1 -1
- package/dist/{index-DRCHSrIn.js → index-Cu9lUBhV.js} +1 -1
- package/dist/{index-Df7MVpNC.js → index-D2KT-qaN.js} +3 -3
- package/dist/{index-BN3cy1Tm.js → index-D6DjRfsO.js} +1 -1
- package/dist/{index-yPSZNONn.js → index-DBBarBnO.js} +2 -2
- package/dist/{index-CiJ5zEUK.js → index-DHWqmuV7.js} +2 -2
- package/dist/{index-Cee4Cg7R.js → index-DNnEsxtQ.js} +3 -3
- package/dist/{index-90EqwtNF.js → index-DNtokN10.js} +5 -5
- package/dist/{index-BIBfRHFf.js → index-DR4qlzL_.js} +6 -6
- package/dist/{index-DzwWNvrE.js → index-DZIy2L1K.js} +3 -3
- package/dist/{index-BSKD9lop.js → index-D_ibbbC0.js} +3 -3
- package/dist/{index-BPD6fg3O.js → index-Dd6kh35B.js} +2 -2
- package/dist/{index-BjKdHw8Y.js → index-F3kjHJum.js} +6 -6
- package/dist/{index-eczy0dAy.js → index-a-RFbCc_.js} +2 -2
- package/dist/{index-B_bk9bXb.js → index-iLO7yhMb.js} +3 -3
- package/dist/{index-CP_x_8X-.js → index-rEgGLmq9.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/{instance-DZ2M9ud2.js → instance-C1eHne_8.js} +1 -1
- package/dist/{menuPermission-PpL-QSl7.js → menuPermission-BA9DLNIz.js} +3 -3
- package/dist/pages.js +1 -1
- package/dist/{send-default-agent-team-message-CMRf10FQ.js → send-default-agent-team-message-CQsn4VrB.js} +1 -1
- package/dist/{sso-user-DRpyYb-C.js → sso-user-BYK3b25n.js} +1 -1
- package/dist/{training-Dgpwp_Hu.js → training-l5czWq4T.js} +1 -1
- package/dist/{webide-B83YQ9p1.js → webide-CeB9fJiR.js} +3 -3
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { configureTodoStore as yr } from "@yuku123/z-task-component";
|
|
2
2
|
import { create as gr } from "zustand";
|
|
3
|
-
import { message as v, Row as se, Col as D, Typography as pe, Alert as ee, Card as F, Space as U, Input as B, Button as j, Table as ie, Drawer as Ze, Descriptions as z, Tag as E, Tooltip as Re, Modal as je, Statistic as X, Select as te, Tabs as Xe, Form as N, Upload as
|
|
3
|
+
import { message as v, Row as se, Col as D, Typography as pe, Alert as ee, Card as F, Space as U, Input as B, Button as j, Table as ie, Drawer as Ze, Descriptions as z, Tag as E, Tooltip as Re, Modal as je, Statistic as X, Select as te, Tabs as Xe, Form as N, Upload as br, Popconfirm as Xt, Spin as St, Radio as de, InputNumber as At, Empty as Sr } from "antd";
|
|
4
4
|
import { jsx as a, jsxs as p, Fragment as Lt } from "react/jsx-runtime";
|
|
5
5
|
import { lazy as wr, Suspense as _r, useState as $, useEffect as Y, useRef as Fn } from "react";
|
|
6
6
|
import { useLocation as Tr, useNavigate as Ye, useParams as qn, Routes as Bn, Route as ue, Navigate as Hn, useSearchParams as kr } from "react-router-dom";
|
|
@@ -18,7 +18,7 @@ function ln(e) {
|
|
|
18
18
|
function he(e, t) {
|
|
19
19
|
return q(e) === q(t);
|
|
20
20
|
}
|
|
21
|
-
function
|
|
21
|
+
function Se(e) {
|
|
22
22
|
const t = q(e);
|
|
23
23
|
return t !== "" && t.startsWith("-");
|
|
24
24
|
}
|
|
@@ -319,7 +319,7 @@ async function is(e) {
|
|
|
319
319
|
function Kt() {
|
|
320
320
|
Oe = 0, fe != null && (clearTimeout(fe), fe = null), V && (V.onclose = null, V.close(), V = null), Fe = 0, gt("disconnected"), Be = [], He = [];
|
|
321
321
|
}
|
|
322
|
-
const
|
|
322
|
+
const S = {
|
|
323
323
|
credentials: "include",
|
|
324
324
|
// 强制标识为 XHR/fetch API 请求,使后端 SsoInterceptor 走 JSON 401 分支
|
|
325
325
|
// 而不是返回 302 跳到 SSO 登录页(避免 fetch follow redirect 后拿到 SPA HTML 导致解析失败)
|
|
@@ -343,10 +343,10 @@ function ni() {
|
|
|
343
343
|
function Ce(e = {}) {
|
|
344
344
|
const t = (typeof localStorage < "u" ? localStorage.getItem(Ge) : "") || "";
|
|
345
345
|
return {
|
|
346
|
-
...
|
|
346
|
+
...S,
|
|
347
347
|
...e,
|
|
348
348
|
headers: {
|
|
349
|
-
...
|
|
349
|
+
...S.headers || {},
|
|
350
350
|
...e.headers || {},
|
|
351
351
|
...t ? { "X-Indexer-Token": t } : {}
|
|
352
352
|
}
|
|
@@ -399,11 +399,11 @@ async function g(e, t) {
|
|
|
399
399
|
// 302 分支(跳登录页 ⇒ 200 + text/html ⇒ res.json() 抛错)。
|
|
400
400
|
// init?.headers 在最后 ⇒ 调用方仍可用自己的 Accept 覆盖(如 SSE 的 text/event-stream)。
|
|
401
401
|
Accept: "application/json",
|
|
402
|
-
...
|
|
402
|
+
...S.headers,
|
|
403
403
|
"project-env": hs,
|
|
404
404
|
...t == null ? void 0 : t.headers
|
|
405
405
|
};
|
|
406
|
-
return await fetch(e, { ...
|
|
406
|
+
return await fetch(e, { ...S, ...t, headers: n });
|
|
407
407
|
} catch {
|
|
408
408
|
const n = "无法连接服务器,请确认 Java 服务已启动(如 127.0.0.1:8080)且前端代理 /z-team 已配置";
|
|
409
409
|
throw _e(n), { _apiUserError: !0, userMessage: n, message: n };
|
|
@@ -463,7 +463,7 @@ async function f(e, t) {
|
|
|
463
463
|
}
|
|
464
464
|
async function fs(e, t) {
|
|
465
465
|
const n = await fetch("/kapi/z-ctc/api/ctc/authn/login", {
|
|
466
|
-
...
|
|
466
|
+
...S,
|
|
467
467
|
method: "POST",
|
|
468
468
|
headers: { Accept: "application/json", "Content-Type": "application/json" },
|
|
469
469
|
credentials: "include",
|
|
@@ -474,7 +474,7 @@ async function fs(e, t) {
|
|
|
474
474
|
async function si(e) {
|
|
475
475
|
const t = await fetch("/kapi/z-ctc/api/ctc/authn/whoami", {
|
|
476
476
|
headers: { Accept: "application/json" },
|
|
477
|
-
...
|
|
477
|
+
...S,
|
|
478
478
|
credentials: "include"
|
|
479
479
|
}), n = await f(
|
|
480
480
|
t,
|
|
@@ -486,7 +486,7 @@ async function ys(e) {
|
|
|
486
486
|
await f(
|
|
487
487
|
await fetch("/kapi/z-ctc/api/ctc/authn/logout", {
|
|
488
488
|
headers: { Accept: "application/json" },
|
|
489
|
-
...
|
|
489
|
+
...S,
|
|
490
490
|
method: "POST",
|
|
491
491
|
credentials: "include"
|
|
492
492
|
}),
|
|
@@ -497,11 +497,11 @@ async function ys(e) {
|
|
|
497
497
|
} catch {
|
|
498
498
|
}
|
|
499
499
|
}
|
|
500
|
-
const $e = /* @__PURE__ */ new Map(), gs = 300 * 1e3,
|
|
500
|
+
const $e = /* @__PURE__ */ new Map(), gs = 300 * 1e3, bs = 30 * 1e3;
|
|
501
501
|
async function ai(e, t) {
|
|
502
502
|
const n = `${e}`, r = $e.get(n);
|
|
503
503
|
if (r) {
|
|
504
|
-
const s = r.failed ?
|
|
504
|
+
const s = r.failed ? bs : gs;
|
|
505
505
|
if (Date.now() - r.at < s)
|
|
506
506
|
return { codes: r.codes, failed: r.failed };
|
|
507
507
|
$e.delete(n);
|
|
@@ -527,17 +527,17 @@ async function ai(e, t) {
|
|
|
527
527
|
return $e.set(n, { codes: [], failed: !0, at: Date.now() }), { codes: [], failed: !0 };
|
|
528
528
|
}
|
|
529
529
|
}
|
|
530
|
-
async function
|
|
530
|
+
async function Ss(e = "", t) {
|
|
531
531
|
const n = new URLSearchParams();
|
|
532
532
|
e && n.set("token", e), t && n.set("create_time_start", t);
|
|
533
533
|
const r = n.toString(), s = await g(
|
|
534
534
|
`${y}/scenario-instances/${r ? `?${r}` : ""}`,
|
|
535
|
-
|
|
535
|
+
S
|
|
536
536
|
);
|
|
537
537
|
return f(s, "获取项目列表失败");
|
|
538
538
|
}
|
|
539
539
|
async function oi(e = "") {
|
|
540
|
-
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/scenarios${t}`,
|
|
540
|
+
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/scenarios${t}`, S);
|
|
541
541
|
return f(n, "获取场景列表失败");
|
|
542
542
|
}
|
|
543
543
|
async function sr(e, t = "") {
|
|
@@ -545,7 +545,7 @@ async function sr(e, t = "") {
|
|
|
545
545
|
...e,
|
|
546
546
|
extend_params: { ...e.extend_params, skip_init_task: "true" }
|
|
547
547
|
}, s = await g(`${y}/scenario-instances/${n}`, {
|
|
548
|
-
...
|
|
548
|
+
...S,
|
|
549
549
|
method: "POST",
|
|
550
550
|
headers: { "Content-Type": "application/json" },
|
|
551
551
|
body: JSON.stringify(r)
|
|
@@ -607,7 +607,7 @@ async function ci(e, t) {
|
|
|
607
607
|
const n = await g(
|
|
608
608
|
`${y}/scenario-instances/${e}/llm-code`,
|
|
609
609
|
{
|
|
610
|
-
...
|
|
610
|
+
...S,
|
|
611
611
|
method: "PUT",
|
|
612
612
|
headers: { "Content-Type": "application/json" },
|
|
613
613
|
body: JSON.stringify({ llmCode: t || null })
|
|
@@ -637,13 +637,13 @@ async function di(e, t, n) {
|
|
|
637
637
|
async function Ts(e) {
|
|
638
638
|
const t = await g(
|
|
639
639
|
`${y}/scenario-instances/${e}/team/`,
|
|
640
|
-
|
|
640
|
+
S
|
|
641
641
|
);
|
|
642
642
|
return f(t, "获取团队成员失败");
|
|
643
643
|
}
|
|
644
644
|
async function ks(e, t) {
|
|
645
645
|
const n = await g(`${y}/scenario-instances/${e}/team/`, {
|
|
646
|
-
...
|
|
646
|
+
...S,
|
|
647
647
|
method: "POST",
|
|
648
648
|
headers: { "Content-Type": "application/json" },
|
|
649
649
|
body: JSON.stringify(t)
|
|
@@ -654,7 +654,7 @@ async function Is(e, t) {
|
|
|
654
654
|
const n = await g(
|
|
655
655
|
`${y}/scenario-instances/${e}/team/${t}`,
|
|
656
656
|
{
|
|
657
|
-
...
|
|
657
|
+
...S,
|
|
658
658
|
method: "DELETE"
|
|
659
659
|
}
|
|
660
660
|
);
|
|
@@ -663,34 +663,34 @@ async function Is(e, t) {
|
|
|
663
663
|
async function Cs(e) {
|
|
664
664
|
const t = await g(
|
|
665
665
|
`${y}/scenario-instances/${e}/team/available-agents`,
|
|
666
|
-
|
|
666
|
+
S
|
|
667
667
|
);
|
|
668
668
|
return f(t, "获取Agent列表失败");
|
|
669
669
|
}
|
|
670
670
|
async function As(e) {
|
|
671
671
|
const t = await g(
|
|
672
672
|
`${y}/scenario-instances/${e}/team/available-humans`,
|
|
673
|
-
|
|
673
|
+
S
|
|
674
674
|
);
|
|
675
675
|
return f(t, "获取用户列表失败");
|
|
676
676
|
}
|
|
677
677
|
async function $s(e) {
|
|
678
678
|
const t = await g(
|
|
679
679
|
`${y}/scenario-instances/${e}/skills`,
|
|
680
|
-
|
|
680
|
+
S
|
|
681
681
|
);
|
|
682
682
|
return f(t, "获取技能列表失败");
|
|
683
683
|
}
|
|
684
684
|
async function xs(e) {
|
|
685
685
|
const t = await g(
|
|
686
686
|
`${y}/scenario-instances/${e}/all-skills`,
|
|
687
|
-
|
|
687
|
+
S
|
|
688
688
|
);
|
|
689
689
|
return f(t, "获取全部技能列表失败");
|
|
690
690
|
}
|
|
691
691
|
async function vs(e, t) {
|
|
692
692
|
const n = await g(`${y}/scenario-instances/${e}/skills`, {
|
|
693
|
-
...
|
|
693
|
+
...S,
|
|
694
694
|
method: "POST",
|
|
695
695
|
headers: { "Content-Type": "application/json" },
|
|
696
696
|
body: JSON.stringify({ skill_id: t })
|
|
@@ -701,7 +701,7 @@ async function Ps(e, t) {
|
|
|
701
701
|
const n = await g(
|
|
702
702
|
`${y}/scenario-instances/${e}/skills/${t}`,
|
|
703
703
|
{
|
|
704
|
-
...
|
|
704
|
+
...S,
|
|
705
705
|
method: "DELETE"
|
|
706
706
|
}
|
|
707
707
|
);
|
|
@@ -711,7 +711,7 @@ async function Es(e, t) {
|
|
|
711
711
|
const n = await g(
|
|
712
712
|
`${y}/scenario-instances/${e}/agent-skills/refresh`,
|
|
713
713
|
{
|
|
714
|
-
...
|
|
714
|
+
...S,
|
|
715
715
|
method: "POST",
|
|
716
716
|
headers: { "Content-Type": "application/json" },
|
|
717
717
|
body: JSON.stringify({ agent_skills_path: t })
|
|
@@ -723,23 +723,23 @@ async function Rs(e) {
|
|
|
723
723
|
const t = await g(
|
|
724
724
|
`${y}/scenario-instances/${e}/all-agent-skills/refresh`,
|
|
725
725
|
{
|
|
726
|
-
...
|
|
726
|
+
...S,
|
|
727
727
|
method: "POST"
|
|
728
728
|
}
|
|
729
729
|
);
|
|
730
730
|
return f(t, "刷新所有技能失败");
|
|
731
731
|
}
|
|
732
|
-
async function
|
|
732
|
+
async function bn(e, t = 50, n) {
|
|
733
733
|
let r = `${y}/scenario-instances/${e}/messages?limit=${t}`;
|
|
734
734
|
n && (r += `&before=${n}`);
|
|
735
|
-
const s = await g(r,
|
|
735
|
+
const s = await g(r, S);
|
|
736
736
|
return f(s, "加载聊天记录失败,请稍后重试");
|
|
737
737
|
}
|
|
738
738
|
async function Os(e, t, n = "") {
|
|
739
739
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(
|
|
740
740
|
`${y}/scenario-instances/${e}/messages/${t}/read${r}`,
|
|
741
741
|
{
|
|
742
|
-
...
|
|
742
|
+
...S,
|
|
743
743
|
method: "POST"
|
|
744
744
|
}
|
|
745
745
|
);
|
|
@@ -749,7 +749,7 @@ async function ot(e, t, n = "") {
|
|
|
749
749
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(
|
|
750
750
|
`${y}/scenario-instances/${e}/messages${r}`,
|
|
751
751
|
{
|
|
752
|
-
...
|
|
752
|
+
...S,
|
|
753
753
|
method: "POST",
|
|
754
754
|
headers: { "Content-Type": "application/json" },
|
|
755
755
|
body: JSON.stringify(t)
|
|
@@ -760,7 +760,7 @@ async function ot(e, t, n = "") {
|
|
|
760
760
|
async function Ms(e, t) {
|
|
761
761
|
const n = await g(
|
|
762
762
|
`${y}/scenario-instances/${e}/cancel/${t}`,
|
|
763
|
-
{ ...
|
|
763
|
+
{ ...S, method: "POST" }
|
|
764
764
|
), r = await f(n, "取消失败");
|
|
765
765
|
if (r != null && r.warning)
|
|
766
766
|
throw new Error(String(r.warning));
|
|
@@ -769,33 +769,33 @@ async function Ms(e, t) {
|
|
|
769
769
|
async function js(e, t) {
|
|
770
770
|
const n = await g(
|
|
771
771
|
`${y}/scenario-instances/${e}/cancel/${t}/queue`,
|
|
772
|
-
{ ...
|
|
772
|
+
{ ...S, method: "POST" }
|
|
773
773
|
);
|
|
774
774
|
return f(n, "停止队列失败");
|
|
775
775
|
}
|
|
776
776
|
async function Ns(e) {
|
|
777
777
|
const t = await g(
|
|
778
778
|
`${y}/scenario-instances/${e}/executions`,
|
|
779
|
-
|
|
779
|
+
S
|
|
780
780
|
);
|
|
781
781
|
return f(t, "获取执行列表失败");
|
|
782
782
|
}
|
|
783
|
-
async function
|
|
783
|
+
async function Sn(e, t = "") {
|
|
784
784
|
const n = t ? `?subdir=${encodeURIComponent(t)}` : "", r = await g(
|
|
785
785
|
`${y}/scenario-instances/${e}/workspace/tree${n}`,
|
|
786
|
-
|
|
786
|
+
S
|
|
787
787
|
);
|
|
788
788
|
return f(r, "获取文件树失败");
|
|
789
789
|
}
|
|
790
790
|
async function Us() {
|
|
791
|
-
const e = await g(`${y}/workspace/env`,
|
|
791
|
+
const e = await g(`${y}/workspace/env`, S);
|
|
792
792
|
return f(e, "获取环境信息失败");
|
|
793
793
|
}
|
|
794
794
|
async function zs(e) {
|
|
795
795
|
const t = await g(
|
|
796
796
|
`${y}/scenario-instances/${e}/workspace/sync-from-prod`,
|
|
797
797
|
{
|
|
798
|
-
...
|
|
798
|
+
...S,
|
|
799
799
|
method: "POST",
|
|
800
800
|
headers: { "Content-Type": "application/json" }
|
|
801
801
|
}
|
|
@@ -807,7 +807,7 @@ async function Ls(e, t) {
|
|
|
807
807
|
`${y}/scenario-instances/${e}/workspace/file?file_path=${encodeURIComponent(
|
|
808
808
|
t
|
|
809
809
|
)}`,
|
|
810
|
-
|
|
810
|
+
S
|
|
811
811
|
);
|
|
812
812
|
return f(n, "获取文件内容失败");
|
|
813
813
|
}
|
|
@@ -817,7 +817,7 @@ async function Ds(e, t, n) {
|
|
|
817
817
|
t
|
|
818
818
|
)}`,
|
|
819
819
|
{
|
|
820
|
-
...
|
|
820
|
+
...S,
|
|
821
821
|
method: "POST",
|
|
822
822
|
headers: { "Content-Type": "application/json" },
|
|
823
823
|
body: JSON.stringify({ content: n })
|
|
@@ -829,7 +829,7 @@ async function Fs(e, t, n) {
|
|
|
829
829
|
const r = await g(
|
|
830
830
|
`${y}/scenario-instances/${e}/workspace/rename`,
|
|
831
831
|
{
|
|
832
|
-
...
|
|
832
|
+
...S,
|
|
833
833
|
method: "PUT",
|
|
834
834
|
headers: { "Content-Type": "application/json" },
|
|
835
835
|
body: JSON.stringify({ old_path: t, new_name: n })
|
|
@@ -841,7 +841,7 @@ async function qs(e, t, n) {
|
|
|
841
841
|
const r = await g(
|
|
842
842
|
`${y}/scenario-instances/${e}/workspace/new-file`,
|
|
843
843
|
{
|
|
844
|
-
...
|
|
844
|
+
...S,
|
|
845
845
|
method: "POST",
|
|
846
846
|
headers: { "Content-Type": "application/json" },
|
|
847
847
|
body: JSON.stringify({ parent_path: t, name: n })
|
|
@@ -853,7 +853,7 @@ async function Bs(e, t, n) {
|
|
|
853
853
|
const r = await g(
|
|
854
854
|
`${y}/scenario-instances/${e}/workspace/new-folder`,
|
|
855
855
|
{
|
|
856
|
-
...
|
|
856
|
+
...S,
|
|
857
857
|
method: "POST",
|
|
858
858
|
headers: { "Content-Type": "application/json" },
|
|
859
859
|
body: JSON.stringify({ parent_path: t, name: n })
|
|
@@ -865,7 +865,7 @@ async function Hs(e, t) {
|
|
|
865
865
|
const n = await g(
|
|
866
866
|
`${y}/scenario-instances/${e}/workspace/delete`,
|
|
867
867
|
{
|
|
868
|
-
...
|
|
868
|
+
...S,
|
|
869
869
|
method: "POST",
|
|
870
870
|
headers: { "Content-Type": "application/json" },
|
|
871
871
|
body: JSON.stringify({ path: t })
|
|
@@ -879,7 +879,7 @@ async function Ks(e, t, n) {
|
|
|
879
879
|
const s = await g(
|
|
880
880
|
`${y}/scenario-instances/${e}/workspace/upload-file`,
|
|
881
881
|
{
|
|
882
|
-
...
|
|
882
|
+
...S,
|
|
883
883
|
method: "POST",
|
|
884
884
|
body: r
|
|
885
885
|
}
|
|
@@ -892,7 +892,7 @@ async function Gs(e, t, n) {
|
|
|
892
892
|
const s = await g(
|
|
893
893
|
`${y}/scenario-instances/${e}/workspace/upload-folder`,
|
|
894
894
|
{
|
|
895
|
-
...
|
|
895
|
+
...S,
|
|
896
896
|
method: "POST",
|
|
897
897
|
body: r
|
|
898
898
|
}
|
|
@@ -904,7 +904,7 @@ async function Js(e, t) {
|
|
|
904
904
|
`${y}/scenario-instances/${e}/workspace/download?file_path=${encodeURIComponent(
|
|
905
905
|
t
|
|
906
906
|
)}`,
|
|
907
|
-
|
|
907
|
+
S
|
|
908
908
|
);
|
|
909
909
|
if (!n.ok) throw new Error("下载失败");
|
|
910
910
|
return n.blob();
|
|
@@ -912,7 +912,7 @@ async function Js(e, t) {
|
|
|
912
912
|
async function Vs(e, t = "") {
|
|
913
913
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(
|
|
914
914
|
`${y}/scenario-instances/${e}${n}`,
|
|
915
|
-
|
|
915
|
+
S
|
|
916
916
|
), s = await f(r, "获取项目失败"), o = s.status === "FOUND" ? "FOUND" : "NOT_FOUND", i = s.scenario_instance ?? s.scenarioInstance ?? null;
|
|
917
917
|
return {
|
|
918
918
|
status: o,
|
|
@@ -933,7 +933,7 @@ async function Zs(e, t = "") {
|
|
|
933
933
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(
|
|
934
934
|
`${y}/scenario-instances/${e}/join-self${n}`,
|
|
935
935
|
{
|
|
936
|
-
...
|
|
936
|
+
...S,
|
|
937
937
|
method: "POST"
|
|
938
938
|
}
|
|
939
939
|
), s = await f(r, "加入工程失败");
|
|
@@ -944,7 +944,7 @@ async function Xs(e, t = "") {
|
|
|
944
944
|
}
|
|
945
945
|
async function Ys(e) {
|
|
946
946
|
const t = await g(`${y}/scenario-instances/${e}`, {
|
|
947
|
-
...
|
|
947
|
+
...S,
|
|
948
948
|
method: "DELETE"
|
|
949
949
|
});
|
|
950
950
|
return f(t, "删除项目失败");
|
|
@@ -953,7 +953,7 @@ async function Qs(e, t, n = "") {
|
|
|
953
953
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(
|
|
954
954
|
`${y}/scenario-instances/${e}/fork${r}`,
|
|
955
955
|
{
|
|
956
|
-
...
|
|
956
|
+
...S,
|
|
957
957
|
method: "POST",
|
|
958
958
|
headers: { "Content-Type": "application/json" },
|
|
959
959
|
body: JSON.stringify({ mode: t })
|
|
@@ -963,7 +963,7 @@ async function Qs(e, t, n = "") {
|
|
|
963
963
|
}
|
|
964
964
|
async function ea(e, t) {
|
|
965
965
|
const n = await g(`${y}/scenario-instances/${e}`, {
|
|
966
|
-
...
|
|
966
|
+
...S,
|
|
967
967
|
method: "PATCH",
|
|
968
968
|
headers: { "Content-Type": "application/json" },
|
|
969
969
|
body: JSON.stringify(t)
|
|
@@ -974,7 +974,7 @@ async function ui(e) {
|
|
|
974
974
|
const t = await g(
|
|
975
975
|
`${y}/scenario-instances/${e}/retry-image-parse`,
|
|
976
976
|
{
|
|
977
|
-
...
|
|
977
|
+
...S,
|
|
978
978
|
method: "POST",
|
|
979
979
|
headers: { "Content-Type": "application/json" }
|
|
980
980
|
}
|
|
@@ -988,7 +988,7 @@ async function ta(e, t, n = "") {
|
|
|
988
988
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(
|
|
989
989
|
`${y}/scenario-instances/${e}/task-sessions/${t}${r}`,
|
|
990
990
|
{
|
|
991
|
-
...
|
|
991
|
+
...S,
|
|
992
992
|
method: "POST",
|
|
993
993
|
headers: { "Content-Type": "application/json" }
|
|
994
994
|
}
|
|
@@ -998,7 +998,7 @@ async function ta(e, t, n = "") {
|
|
|
998
998
|
async function na(e, t, n = 50, r, s = "") {
|
|
999
999
|
let o = `${y}/scenario-instances/${e}/task-sessions/${t}/messages?limit=${n}`;
|
|
1000
1000
|
r && (o += `&before=${r}`), s && (o += `&token=${encodeURIComponent(s)}`);
|
|
1001
|
-
const i = await g(o,
|
|
1001
|
+
const i = await g(o, S);
|
|
1002
1002
|
return f(i, "获取任务消息失败");
|
|
1003
1003
|
}
|
|
1004
1004
|
async function ra(e, t, n, r = "", s) {
|
|
@@ -1007,7 +1007,7 @@ async function ra(e, t, n, r = "", s) {
|
|
|
1007
1007
|
const c = await g(
|
|
1008
1008
|
`${y}/scenario-instances/${e}/task-sessions/${t}/messages${o}`,
|
|
1009
1009
|
{
|
|
1010
|
-
...
|
|
1010
|
+
...S,
|
|
1011
1011
|
method: "POST",
|
|
1012
1012
|
headers: { "Content-Type": "application/json" },
|
|
1013
1013
|
body: JSON.stringify(i)
|
|
@@ -1016,7 +1016,7 @@ async function ra(e, t, n, r = "", s) {
|
|
|
1016
1016
|
return f(c, "发送任务消息失败");
|
|
1017
1017
|
}
|
|
1018
1018
|
async function pi(e = "") {
|
|
1019
|
-
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/admin/scenarios${t}`,
|
|
1019
|
+
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/admin/scenarios${t}`, S);
|
|
1020
1020
|
return f(n, "获取场景列表失败");
|
|
1021
1021
|
}
|
|
1022
1022
|
async function mi(e, t, n = "") {
|
|
@@ -1025,7 +1025,7 @@ async function mi(e, t, n = "") {
|
|
|
1025
1025
|
e
|
|
1026
1026
|
)}/identity/test-login${r}`,
|
|
1027
1027
|
{
|
|
1028
|
-
...
|
|
1028
|
+
...S,
|
|
1029
1029
|
method: "POST",
|
|
1030
1030
|
headers: { "Content-Type": "application/json" },
|
|
1031
1031
|
body: JSON.stringify(t)
|
|
@@ -1036,7 +1036,7 @@ async function mi(e, t, n = "") {
|
|
|
1036
1036
|
async function hi(e = "") {
|
|
1037
1037
|
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(
|
|
1038
1038
|
`${y}/admin/agents/identity-envs${t}`,
|
|
1039
|
-
|
|
1039
|
+
S
|
|
1040
1040
|
);
|
|
1041
1041
|
return f(n, "获取身份绑定环境列表失败");
|
|
1042
1042
|
}
|
|
@@ -1045,13 +1045,13 @@ async function fi(e, t = "") {
|
|
|
1045
1045
|
e && n.set("envCode", e), t && n.set("token", t);
|
|
1046
1046
|
const r = n.toString() ? `?${n.toString()}` : "", s = await g(
|
|
1047
1047
|
`${y}/admin/agents/ctc-members${r}`,
|
|
1048
|
-
|
|
1048
|
+
S
|
|
1049
1049
|
);
|
|
1050
1050
|
return f(s, "获取成员列表失败") ?? [];
|
|
1051
1051
|
}
|
|
1052
1052
|
async function yi(e, t, n = "") {
|
|
1053
1053
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(`${y}/admin/agents/${e}/move${r}`, {
|
|
1054
|
-
...
|
|
1054
|
+
...S,
|
|
1055
1055
|
method: "POST",
|
|
1056
1056
|
headers: { "Content-Type": "application/json" },
|
|
1057
1057
|
body: JSON.stringify(t)
|
|
@@ -1059,19 +1059,19 @@ async function yi(e, t, n = "") {
|
|
|
1059
1059
|
return f(s, "移动 Agent 分类失败");
|
|
1060
1060
|
}
|
|
1061
1061
|
async function gi(e = "") {
|
|
1062
|
-
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/admin/agents/models${t}`,
|
|
1062
|
+
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/admin/agents/models${t}`, S);
|
|
1063
1063
|
return f(n, "获取模型列表失败");
|
|
1064
1064
|
}
|
|
1065
1065
|
function nn(e) {
|
|
1066
1066
|
const t = Object.entries(e).filter(([, n]) => n !== void 0 && n !== "").map(([n, r]) => `${n}=${encodeURIComponent(r)}`);
|
|
1067
1067
|
return t.length ? `?${t.join("&")}` : "";
|
|
1068
1068
|
}
|
|
1069
|
-
async function
|
|
1069
|
+
async function bi(e, t = "") {
|
|
1070
1070
|
const n = await g(
|
|
1071
1071
|
`${y}/admin/agents/${encodeURIComponent(
|
|
1072
1072
|
e
|
|
1073
1073
|
)}/ontology${nn({ token: t })}`,
|
|
1074
|
-
|
|
1074
|
+
S
|
|
1075
1075
|
);
|
|
1076
1076
|
return (await f(
|
|
1077
1077
|
n,
|
|
@@ -1081,13 +1081,13 @@ async function Si(e, t = "") {
|
|
|
1081
1081
|
nodeInfo: { ...s.nodeInfo, dataPrepareEnabled: !1 }
|
|
1082
1082
|
}));
|
|
1083
1083
|
}
|
|
1084
|
-
async function
|
|
1084
|
+
async function Si(e, t = "") {
|
|
1085
1085
|
const n = await g(
|
|
1086
1086
|
`${y}/admin/agents/ontology/ontologies${nn({
|
|
1087
1087
|
ontologyType: e,
|
|
1088
1088
|
token: t
|
|
1089
1089
|
})}`,
|
|
1090
|
-
|
|
1090
|
+
S
|
|
1091
1091
|
);
|
|
1092
1092
|
return f(n, "获取本体列表失败") ?? [];
|
|
1093
1093
|
}
|
|
@@ -1097,13 +1097,13 @@ async function wi(e, t = "") {
|
|
|
1097
1097
|
ontologyCode: e,
|
|
1098
1098
|
token: t
|
|
1099
1099
|
})}`,
|
|
1100
|
-
|
|
1100
|
+
S
|
|
1101
1101
|
);
|
|
1102
1102
|
return f(n, "获取知识列表失败") ?? [];
|
|
1103
1103
|
}
|
|
1104
1104
|
async function _i(e, t, n = "") {
|
|
1105
1105
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(`${y}/admin/skills/${e}/move${r}`, {
|
|
1106
|
-
...
|
|
1106
|
+
...S,
|
|
1107
1107
|
method: "POST",
|
|
1108
1108
|
headers: { "Content-Type": "application/json" },
|
|
1109
1109
|
body: JSON.stringify(t)
|
|
@@ -1115,19 +1115,19 @@ async function Ti(e = "", t = "") {
|
|
|
1115
1115
|
e && n.append("keyword", e), t && n.append("token", t);
|
|
1116
1116
|
const r = n.toString() ? `?${n.toString()}` : "", s = await g(
|
|
1117
1117
|
`${y}/admin/profiles/ctc-staff${r}`,
|
|
1118
|
-
|
|
1118
|
+
S
|
|
1119
1119
|
);
|
|
1120
1120
|
return f(s, "获取员工列表失败");
|
|
1121
1121
|
}
|
|
1122
1122
|
async function ki(e, t, n = "", r = "") {
|
|
1123
1123
|
const s = new URLSearchParams();
|
|
1124
1124
|
s.append("profileScope", e), s.append("memberType", t), n && s.append("scenarioCode", n), r && s.append("token", r);
|
|
1125
|
-
const o = s.toString() ? `?${s.toString()}` : "", i = await g(`${y}/admin/profiles${o}`,
|
|
1125
|
+
const o = s.toString() ? `?${s.toString()}` : "", i = await g(`${y}/admin/profiles${o}`, S);
|
|
1126
1126
|
return f(i, "获取画像列表失败");
|
|
1127
1127
|
}
|
|
1128
1128
|
async function Ii(e, t = "") {
|
|
1129
1129
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(`${y}/admin/profiles${n}`, {
|
|
1130
|
-
...
|
|
1130
|
+
...S,
|
|
1131
1131
|
method: "POST",
|
|
1132
1132
|
headers: { "Content-Type": "application/json" },
|
|
1133
1133
|
body: JSON.stringify(e)
|
|
@@ -1142,7 +1142,7 @@ async function Ci(e, t, n, r = "", s = "") {
|
|
|
1142
1142
|
e
|
|
1143
1143
|
)}/${encodeURIComponent(t)}/${encodeURIComponent(n)}${i}`,
|
|
1144
1144
|
{
|
|
1145
|
-
...
|
|
1145
|
+
...S,
|
|
1146
1146
|
method: "DELETE"
|
|
1147
1147
|
}
|
|
1148
1148
|
);
|
|
@@ -1151,12 +1151,12 @@ async function Ci(e, t, n, r = "", s = "") {
|
|
|
1151
1151
|
async function Ai(e = "", t = "") {
|
|
1152
1152
|
const n = new URLSearchParams();
|
|
1153
1153
|
e && n.append("scenarioCode", e), t && n.append("token", t);
|
|
1154
|
-
const r = n.toString() ? `?${n.toString()}` : "", s = await g(`${y}/admin/human-on-calls${r}`,
|
|
1154
|
+
const r = n.toString() ? `?${n.toString()}` : "", s = await g(`${y}/admin/human-on-calls${r}`, S);
|
|
1155
1155
|
return f(s, "获取值班信息失败");
|
|
1156
1156
|
}
|
|
1157
1157
|
async function $i(e, t, n, r = "") {
|
|
1158
1158
|
const s = r ? `?token=${encodeURIComponent(r)}` : "", o = await g(`${y}/admin/human-on-calls/batch${s}`, {
|
|
1159
|
-
...
|
|
1159
|
+
...S,
|
|
1160
1160
|
method: "POST",
|
|
1161
1161
|
headers: { "Content-Type": "application/json" },
|
|
1162
1162
|
body: JSON.stringify({ scenarioCode: e, dayOfWeek: t, onCalls: n })
|
|
@@ -1168,7 +1168,7 @@ async function xi(e, t, n, r = "") {
|
|
|
1168
1168
|
`${y}/admin/human-on-calls/${encodeURIComponent(
|
|
1169
1169
|
e
|
|
1170
1170
|
)}/${n}/${encodeURIComponent(t)}${s}`,
|
|
1171
|
-
{ ...
|
|
1171
|
+
{ ...S, method: "DELETE" }
|
|
1172
1172
|
);
|
|
1173
1173
|
return f(o, "删除值班信息失败");
|
|
1174
1174
|
}
|
|
@@ -1178,7 +1178,7 @@ async function vi(e = {}, t = "") {
|
|
|
1178
1178
|
const r = n.length > 0 ? `?${n.join("&")}` : "", s = await g(
|
|
1179
1179
|
`${y}/admin/scenario-instances/refresh-all-skills${r}`,
|
|
1180
1180
|
{
|
|
1181
|
-
...
|
|
1181
|
+
...S,
|
|
1182
1182
|
method: "POST"
|
|
1183
1183
|
}
|
|
1184
1184
|
);
|
|
@@ -1188,7 +1188,7 @@ async function Pi(e, t = "") {
|
|
|
1188
1188
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(
|
|
1189
1189
|
`${y}/admin/scenario-instances/${e}/refresh-skills${n}`,
|
|
1190
1190
|
{
|
|
1191
|
-
...
|
|
1191
|
+
...S,
|
|
1192
1192
|
method: "POST"
|
|
1193
1193
|
}
|
|
1194
1194
|
);
|
|
@@ -1219,12 +1219,12 @@ function Ue(e) {
|
|
|
1219
1219
|
};
|
|
1220
1220
|
}
|
|
1221
1221
|
async function Ei(e = "") {
|
|
1222
|
-
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/personal-agents${t}`,
|
|
1222
|
+
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/personal-agents${t}`, S), r = await f(n, "获取个人 Agent 列表失败");
|
|
1223
1223
|
return (Array.isArray(r) ? r : []).map((s) => Ue(s));
|
|
1224
1224
|
}
|
|
1225
1225
|
async function Ri(e, t = "") {
|
|
1226
1226
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(`${y}/personal-agents${n}`, {
|
|
1227
|
-
...
|
|
1227
|
+
...S,
|
|
1228
1228
|
method: "POST",
|
|
1229
1229
|
headers: { "Content-Type": "application/json" },
|
|
1230
1230
|
body: JSON.stringify({ display_name: e })
|
|
@@ -1235,7 +1235,7 @@ async function Ri(e, t = "") {
|
|
|
1235
1235
|
}
|
|
1236
1236
|
async function Oi(e, t, n, r, s = "") {
|
|
1237
1237
|
const o = s ? `?token=${encodeURIComponent(s)}` : "", i = await g(`${y}/personal-agents/ensure${o}`, {
|
|
1238
|
-
...
|
|
1238
|
+
...S,
|
|
1239
1239
|
method: "POST",
|
|
1240
1240
|
headers: { "Content-Type": "application/json" },
|
|
1241
1241
|
body: JSON.stringify({
|
|
@@ -1251,14 +1251,14 @@ async function Oi(e, t, n, r, s = "") {
|
|
|
1251
1251
|
}
|
|
1252
1252
|
async function Mi(e, t = "") {
|
|
1253
1253
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(`${y}/personal-agents/${e}${n}`, {
|
|
1254
|
-
...
|
|
1254
|
+
...S,
|
|
1255
1255
|
method: "DELETE"
|
|
1256
1256
|
});
|
|
1257
1257
|
return f(r, "删除个人 Agent 失败");
|
|
1258
1258
|
}
|
|
1259
1259
|
async function ji(e, t, n = "") {
|
|
1260
1260
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(`${y}/personal-agents/${e}${r}`, {
|
|
1261
|
-
...
|
|
1261
|
+
...S,
|
|
1262
1262
|
method: "PUT",
|
|
1263
1263
|
headers: { "Content-Type": "application/json" },
|
|
1264
1264
|
body: JSON.stringify({ display_name: t })
|
|
@@ -1270,7 +1270,7 @@ async function ji(e, t, n = "") {
|
|
|
1270
1270
|
async function Ni(e = "") {
|
|
1271
1271
|
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(
|
|
1272
1272
|
`${y}/personal-agents/shared${t}`,
|
|
1273
|
-
|
|
1273
|
+
S
|
|
1274
1274
|
), r = await f(
|
|
1275
1275
|
n,
|
|
1276
1276
|
"获取共享 Agent 列表失败"
|
|
@@ -1281,7 +1281,7 @@ async function Ni(e = "") {
|
|
|
1281
1281
|
}
|
|
1282
1282
|
async function Ui(e, t, n = "") {
|
|
1283
1283
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(`${y}/personal-agents/${e}/share${r}`, {
|
|
1284
|
-
...
|
|
1284
|
+
...S,
|
|
1285
1285
|
method: "PUT",
|
|
1286
1286
|
headers: { "Content-Type": "application/json" },
|
|
1287
1287
|
body: JSON.stringify({ shared: t })
|
|
@@ -1293,7 +1293,7 @@ async function Ui(e, t, n = "") {
|
|
|
1293
1293
|
async function zi(e, t = "") {
|
|
1294
1294
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(
|
|
1295
1295
|
`${y}/personal-agents/${e}/sessions${n}`,
|
|
1296
|
-
|
|
1296
|
+
S
|
|
1297
1297
|
), s = await f(
|
|
1298
1298
|
r,
|
|
1299
1299
|
"获取会话列表失败"
|
|
@@ -1308,7 +1308,7 @@ async function Li(e, t = "新会话", n = "", r) {
|
|
|
1308
1308
|
const s = n ? `?token=${encodeURIComponent(n)}` : "", o = await g(
|
|
1309
1309
|
`${y}/personal-agents/${e}/sessions${s}`,
|
|
1310
1310
|
{
|
|
1311
|
-
...
|
|
1311
|
+
...S,
|
|
1312
1312
|
method: "POST",
|
|
1313
1313
|
headers: { "Content-Type": "application/json" },
|
|
1314
1314
|
body: JSON.stringify({
|
|
@@ -1349,7 +1349,7 @@ async function Di(e, t = "") {
|
|
|
1349
1349
|
`${y}/personal-agents/sessions/search?keyword=${encodeURIComponent(
|
|
1350
1350
|
e
|
|
1351
1351
|
)}&limit=50${n}`,
|
|
1352
|
-
|
|
1352
|
+
S
|
|
1353
1353
|
), s = await f(r, "搜索会话失败");
|
|
1354
1354
|
return (Array.isArray(s) ? s : []).map((o) => {
|
|
1355
1355
|
const i = o ?? {}, c = String(i.matchField || "title");
|
|
@@ -1363,7 +1363,7 @@ async function Di(e, t = "") {
|
|
|
1363
1363
|
async function Fi(e = "") {
|
|
1364
1364
|
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(
|
|
1365
1365
|
`${y}/personal-agents/sessions/all${t}`,
|
|
1366
|
-
|
|
1366
|
+
S
|
|
1367
1367
|
), r = await f(n, "获取聊天记录失败");
|
|
1368
1368
|
return (Array.isArray(r) ? r : []).map(Qe);
|
|
1369
1369
|
}
|
|
@@ -1371,7 +1371,7 @@ async function qi(e, t, n = "", r) {
|
|
|
1371
1371
|
const s = n ? `?token=${encodeURIComponent(n)}` : "", o = await g(
|
|
1372
1372
|
`${y}/personal-agents/${e}/sessions/${t}${s}`,
|
|
1373
1373
|
{
|
|
1374
|
-
...
|
|
1374
|
+
...S,
|
|
1375
1375
|
method: "PUT",
|
|
1376
1376
|
headers: { "Content-Type": "application/json" },
|
|
1377
1377
|
body: JSON.stringify(
|
|
@@ -1384,20 +1384,20 @@ async function qi(e, t, n = "", r) {
|
|
|
1384
1384
|
);
|
|
1385
1385
|
}
|
|
1386
1386
|
async function Bi(e) {
|
|
1387
|
-
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/personal-agents/models${t}`,
|
|
1387
|
+
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/personal-agents/models${t}`, S);
|
|
1388
1388
|
return f(n, "获取模型列表失败");
|
|
1389
1389
|
}
|
|
1390
1390
|
async function Hi(e) {
|
|
1391
1391
|
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(
|
|
1392
1392
|
`${y}/personal-agents/custom-models${t}`,
|
|
1393
|
-
|
|
1393
|
+
S
|
|
1394
1394
|
);
|
|
1395
1395
|
return f(n, "获取自定义模型失败");
|
|
1396
1396
|
}
|
|
1397
1397
|
async function Ki(e, t, n = "") {
|
|
1398
1398
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(
|
|
1399
1399
|
`${y}/personal-agents/${e}/sessions/${t}${r}`,
|
|
1400
|
-
{ ...
|
|
1400
|
+
{ ...S, method: "DELETE" }
|
|
1401
1401
|
);
|
|
1402
1402
|
return f(s, "删除会话失败");
|
|
1403
1403
|
}
|
|
@@ -1405,7 +1405,7 @@ async function Gi(e, t, n, r = "") {
|
|
|
1405
1405
|
const s = r ? `?token=${encodeURIComponent(r)}` : "", o = await g(
|
|
1406
1406
|
`${y}/personal-agents/${e}/sessions/${t}${s}`,
|
|
1407
1407
|
{
|
|
1408
|
-
...
|
|
1408
|
+
...S,
|
|
1409
1409
|
method: "PUT",
|
|
1410
1410
|
headers: { "Content-Type": "application/json" },
|
|
1411
1411
|
body: JSON.stringify({ title: n })
|
|
@@ -1416,7 +1416,7 @@ async function Gi(e, t, n, r = "") {
|
|
|
1416
1416
|
async function Ji(e, t, n = "") {
|
|
1417
1417
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(
|
|
1418
1418
|
`${y}/personal-agents/${e}/sessions/${t}/messages${r}`,
|
|
1419
|
-
|
|
1419
|
+
S
|
|
1420
1420
|
);
|
|
1421
1421
|
return f(s, "获取消息历史失败");
|
|
1422
1422
|
}
|
|
@@ -1424,22 +1424,22 @@ async function Vi(e, t, n, r, s, o, i, c, l, d) {
|
|
|
1424
1424
|
const u = r ? `?token=${encodeURIComponent(r)}` : "", h = `${y}/personal-agents/${e}/sessions/${t}/chat/stream${u}`;
|
|
1425
1425
|
try {
|
|
1426
1426
|
const m = await fetch(h, {
|
|
1427
|
-
...
|
|
1427
|
+
...S,
|
|
1428
1428
|
method: "POST",
|
|
1429
1429
|
headers: { Accept: "text/event-stream", "Content-Type": "application/json" },
|
|
1430
1430
|
body: JSON.stringify(l ? { message: n, llmCode: l } : { message: n }),
|
|
1431
1431
|
signal: d
|
|
1432
1432
|
});
|
|
1433
1433
|
if (!m.ok || !m.body) {
|
|
1434
|
-
const
|
|
1435
|
-
o(new Error(
|
|
1434
|
+
const b = await m.text().catch(() => "");
|
|
1435
|
+
o(new Error(b || `HTTP ${m.status}`));
|
|
1436
1436
|
return;
|
|
1437
1437
|
}
|
|
1438
1438
|
const C = m.body.getReader(), O = new TextDecoder();
|
|
1439
1439
|
let _ = "", x = "";
|
|
1440
1440
|
for (; ; ) {
|
|
1441
|
-
const { done:
|
|
1442
|
-
if (
|
|
1441
|
+
const { done: b, value: A } = await C.read();
|
|
1442
|
+
if (b) break;
|
|
1443
1443
|
_ += O.decode(A, { stream: !0 });
|
|
1444
1444
|
const k = _.split(`
|
|
1445
1445
|
`);
|
|
@@ -1486,7 +1486,7 @@ async function Zi(e = {}) {
|
|
|
1486
1486
|
n && t.set("name", n), r != null && r !== "" && t.set("scenarioInstanceId", String(r)), t.set("page", String(s)), t.set("size", String(o)), i && t.set("token", i);
|
|
1487
1487
|
const c = t.toString(), l = await g(
|
|
1488
1488
|
`${y}/admin/tasks${c ? `?${c}` : ""}`,
|
|
1489
|
-
|
|
1489
|
+
S
|
|
1490
1490
|
);
|
|
1491
1491
|
return f(l, "获取任务列表失败");
|
|
1492
1492
|
}
|
|
@@ -1501,7 +1501,7 @@ function aa(e) {
|
|
|
1501
1501
|
async function Xi(e) {
|
|
1502
1502
|
const t = await g(
|
|
1503
1503
|
`${y}/admin/tool-call-logs/timeline${aa(e)}`,
|
|
1504
|
-
|
|
1504
|
+
S
|
|
1505
1505
|
);
|
|
1506
1506
|
return f(t, "查询工具调用时间轴统计失败");
|
|
1507
1507
|
}
|
|
@@ -1510,14 +1510,14 @@ async function Yi(e) {
|
|
|
1510
1510
|
e.date && t.push(`date=${encodeURIComponent(e.date)}`), e.scenarioCode && t.push(`scenarioCode=${encodeURIComponent(e.scenarioCode)}`), e.token && t.push(`token=${encodeURIComponent(e.token)}`);
|
|
1511
1511
|
const n = t.length > 0 ? `?${t.join("&")}` : "", r = await g(
|
|
1512
1512
|
`${y}/admin/statistics/token-daily${n}`,
|
|
1513
|
-
|
|
1513
|
+
S
|
|
1514
1514
|
);
|
|
1515
1515
|
return f(r, "获取 Token 单日统计失败");
|
|
1516
1516
|
}
|
|
1517
1517
|
async function Qi(e = "z-team") {
|
|
1518
1518
|
const t = await g(
|
|
1519
1519
|
`${y}/change-log/versions?repo=${encodeURIComponent(e)}`,
|
|
1520
|
-
|
|
1520
|
+
S
|
|
1521
1521
|
);
|
|
1522
1522
|
return f(t, "获取变更日志版本列表失败");
|
|
1523
1523
|
}
|
|
@@ -1526,14 +1526,14 @@ async function ec(e, t, n = "z-team") {
|
|
|
1526
1526
|
e != null && r.set("versionId", String(e)), r.set("repo", n);
|
|
1527
1527
|
const s = await g(
|
|
1528
1528
|
`${y}/change-log/detail?${r.toString()}`,
|
|
1529
|
-
|
|
1529
|
+
S
|
|
1530
1530
|
);
|
|
1531
1531
|
return f(s, "获取变更日志详情失败");
|
|
1532
1532
|
}
|
|
1533
1533
|
async function tc(e) {
|
|
1534
1534
|
const t = await g(
|
|
1535
1535
|
`${ps}/evolution/records/${e}/reset`,
|
|
1536
|
-
{ ...
|
|
1536
|
+
{ ...S, method: "POST" }
|
|
1537
1537
|
);
|
|
1538
1538
|
return f(t, "操作失败");
|
|
1539
1539
|
}
|
|
@@ -1554,7 +1554,7 @@ async function nc(e) {
|
|
|
1554
1554
|
scenario_code: e.scenarioCode,
|
|
1555
1555
|
token: e.token
|
|
1556
1556
|
})}`,
|
|
1557
|
-
|
|
1557
|
+
S
|
|
1558
1558
|
), n = await f(
|
|
1559
1559
|
t,
|
|
1560
1560
|
"获取已关单实例列表失败"
|
|
@@ -1570,7 +1570,7 @@ async function rc(e) {
|
|
|
1570
1570
|
scenario_code: e.scenarioCode,
|
|
1571
1571
|
token: e.token
|
|
1572
1572
|
})}`,
|
|
1573
|
-
|
|
1573
|
+
S
|
|
1574
1574
|
);
|
|
1575
1575
|
return f(t, "获取 QA 评测总览失败");
|
|
1576
1576
|
}
|
|
@@ -1579,7 +1579,7 @@ async function sc(e, t = "") {
|
|
|
1579
1579
|
`${y}/admin/qa-eval/report/${e}/cancel${ae({
|
|
1580
1580
|
token: t
|
|
1581
1581
|
})}`,
|
|
1582
|
-
{ ...
|
|
1582
|
+
{ ...S, method: "POST" }
|
|
1583
1583
|
);
|
|
1584
1584
|
return f(n, "取消评测失败");
|
|
1585
1585
|
}
|
|
@@ -1587,7 +1587,7 @@ async function ac(e, t, n = "") {
|
|
|
1587
1587
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(
|
|
1588
1588
|
`${y}/admin/scenario-templates/preview${r}`,
|
|
1589
1589
|
{
|
|
1590
|
-
...
|
|
1590
|
+
...S,
|
|
1591
1591
|
method: "POST",
|
|
1592
1592
|
headers: { "Content-Type": "application/json" },
|
|
1593
1593
|
body: JSON.stringify({ html: e, data: t })
|
|
@@ -1599,7 +1599,7 @@ async function ac(e, t, n = "") {
|
|
|
1599
1599
|
async function oc(e, t = "") {
|
|
1600
1600
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(
|
|
1601
1601
|
`${y}/tasks/${e}/human-assist${n}`,
|
|
1602
|
-
{ ...
|
|
1602
|
+
{ ...S, method: "GET" }
|
|
1603
1603
|
);
|
|
1604
1604
|
return f(r, "查询人机协助卡片失败");
|
|
1605
1605
|
}
|
|
@@ -1607,7 +1607,7 @@ async function ic(e, t, n, r = "") {
|
|
|
1607
1607
|
const s = r ? `?token=${encodeURIComponent(r)}` : "", o = await g(
|
|
1608
1608
|
`${y}/scenario-instances/${e}/card-forms/${t}/submit${s}`,
|
|
1609
1609
|
{
|
|
1610
|
-
...
|
|
1610
|
+
...S,
|
|
1611
1611
|
method: "POST",
|
|
1612
1612
|
headers: { "Content-Type": "application/json" },
|
|
1613
1613
|
body: JSON.stringify({ value: n })
|
|
@@ -1619,7 +1619,7 @@ async function cc(e, t, n = "") {
|
|
|
1619
1619
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(
|
|
1620
1620
|
`${y}/tasks/${e}/submit-assist${r}`,
|
|
1621
1621
|
{
|
|
1622
|
-
...
|
|
1622
|
+
...S,
|
|
1623
1623
|
method: "POST",
|
|
1624
1624
|
headers: { "Content-Type": "application/json" },
|
|
1625
1625
|
body: JSON.stringify({ value: t })
|
|
@@ -1633,7 +1633,7 @@ function lc(e) {
|
|
|
1633
1633
|
async function dc(e = "") {
|
|
1634
1634
|
const t = await g(
|
|
1635
1635
|
`${y}/admin/runtime-monitor/schedule${ae({ token: e })}`,
|
|
1636
|
-
|
|
1636
|
+
S
|
|
1637
1637
|
);
|
|
1638
1638
|
return f(t, "查询定时任务概览失败");
|
|
1639
1639
|
}
|
|
@@ -1642,7 +1642,7 @@ async function uc(e) {
|
|
|
1642
1642
|
t.set("scenarioCode", e.scenarioCode), e.startDate && t.set("startDate", e.startDate), e.endDate && t.set("endDate", e.endDate), e.creatorId && t.set("creatorId", e.creatorId), e.tagFilters && Object.keys(e.tagFilters).length > 0 && t.set("tagFilters", JSON.stringify(e.tagFilters)), e.groupBy && t.set("groupBy", e.groupBy), e.token && t.set("token", e.token);
|
|
1643
1643
|
const n = await g(
|
|
1644
1644
|
`${y}/admin/statistics/business?${t.toString()}`,
|
|
1645
|
-
|
|
1645
|
+
S
|
|
1646
1646
|
), r = await f(n, "业务指标查询失败");
|
|
1647
1647
|
return {
|
|
1648
1648
|
total: Number((r == null ? void 0 : r.total) ?? 0),
|
|
@@ -1658,7 +1658,7 @@ async function pc(e, t = "") {
|
|
|
1658
1658
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(
|
|
1659
1659
|
`${y}/admin/scenario-tags/values/${e}${n}`,
|
|
1660
1660
|
{
|
|
1661
|
-
...
|
|
1661
|
+
...S,
|
|
1662
1662
|
method: "DELETE"
|
|
1663
1663
|
}
|
|
1664
1664
|
);
|
|
@@ -1668,7 +1668,7 @@ async function mc(e, t, n) {
|
|
|
1668
1668
|
const r = await g(
|
|
1669
1669
|
`${y}/scenario-instances/${e}/workspace/git-clone`,
|
|
1670
1670
|
{
|
|
1671
|
-
...
|
|
1671
|
+
...S,
|
|
1672
1672
|
method: "POST",
|
|
1673
1673
|
headers: { "Content-Type": "application/json" },
|
|
1674
1674
|
body: JSON.stringify({
|
|
@@ -1684,14 +1684,14 @@ async function mc(e, t, n) {
|
|
|
1684
1684
|
async function hc() {
|
|
1685
1685
|
const e = await g(
|
|
1686
1686
|
`${y}/scenarios/biz-consult-domains`,
|
|
1687
|
-
|
|
1687
|
+
S
|
|
1688
1688
|
);
|
|
1689
1689
|
return f(e, "获取业务域选项失败");
|
|
1690
1690
|
}
|
|
1691
1691
|
async function fc(e = "") {
|
|
1692
1692
|
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(
|
|
1693
1693
|
`${y}/admin/statistics/current-dept${t}`,
|
|
1694
|
-
|
|
1694
|
+
S
|
|
1695
1695
|
);
|
|
1696
1696
|
return f(n, "获取当前用户部门信息失败");
|
|
1697
1697
|
}
|
|
@@ -1712,7 +1712,7 @@ async function yc(e) {
|
|
|
1712
1712
|
task_id: e.taskId,
|
|
1713
1713
|
token: e.token
|
|
1714
1714
|
})}`,
|
|
1715
|
-
|
|
1715
|
+
S
|
|
1716
1716
|
);
|
|
1717
1717
|
return f(t, "获取快照预览失败");
|
|
1718
1718
|
}
|
|
@@ -1735,8 +1735,8 @@ async function ca(e, t) {
|
|
|
1735
1735
|
function gc(e) {
|
|
1736
1736
|
return ca(`/presets/${e}`, { method: "DELETE" });
|
|
1737
1737
|
}
|
|
1738
|
-
const
|
|
1739
|
-
async function
|
|
1738
|
+
const bc = nr;
|
|
1739
|
+
async function Sc(e) {
|
|
1740
1740
|
const t = new FormData();
|
|
1741
1741
|
t.append("file", e);
|
|
1742
1742
|
const n = await g(`${y}/common/upload-video`, {
|
|
@@ -1756,7 +1756,7 @@ function wc() {
|
|
|
1756
1756
|
async function _c(e) {
|
|
1757
1757
|
const t = await g(
|
|
1758
1758
|
`${y}/scenario-instances/${e}/interaction-mode`,
|
|
1759
|
-
{ ...
|
|
1759
|
+
{ ...S }
|
|
1760
1760
|
), n = await f(
|
|
1761
1761
|
t,
|
|
1762
1762
|
"查询交互模式失败"
|
|
@@ -1767,7 +1767,7 @@ async function Tc(e, t) {
|
|
|
1767
1767
|
const n = await g(
|
|
1768
1768
|
`${y}/scenario-instances/${e}/interaction-mode`,
|
|
1769
1769
|
{
|
|
1770
|
-
...
|
|
1770
|
+
...S,
|
|
1771
1771
|
method: "PUT",
|
|
1772
1772
|
headers: { "Content-Type": "application/json" },
|
|
1773
1773
|
body: JSON.stringify({ mode: t })
|
|
@@ -1838,7 +1838,7 @@ async function vc(e = "") {
|
|
|
1838
1838
|
async function Pc(e = "") {
|
|
1839
1839
|
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(
|
|
1840
1840
|
`${y}/admin/notify-channel/list${t}`,
|
|
1841
|
-
|
|
1841
|
+
S
|
|
1842
1842
|
), r = await f(
|
|
1843
1843
|
n,
|
|
1844
1844
|
"获取消息渠道状态失败"
|
|
@@ -1847,7 +1847,7 @@ async function Pc(e = "") {
|
|
|
1847
1847
|
}
|
|
1848
1848
|
async function Ec(e, t = "") {
|
|
1849
1849
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(`${y}/admin/notify-channel/test${n}`, {
|
|
1850
|
-
...
|
|
1850
|
+
...S,
|
|
1851
1851
|
method: "POST",
|
|
1852
1852
|
headers: { "Content-Type": "application/json" },
|
|
1853
1853
|
body: JSON.stringify(e)
|
|
@@ -1862,7 +1862,7 @@ async function Rc(e, t = "") {
|
|
|
1862
1862
|
page: e.page,
|
|
1863
1863
|
size: e.size
|
|
1864
1864
|
})}`,
|
|
1865
|
-
|
|
1865
|
+
S
|
|
1866
1866
|
);
|
|
1867
1867
|
return f(n, "查询定时任务模版失败");
|
|
1868
1868
|
}
|
|
@@ -1870,7 +1870,7 @@ async function Oc(e, t = "") {
|
|
|
1870
1870
|
const n = await g(
|
|
1871
1871
|
`${y}/admin/schedule-task${ae({ token: t })}`,
|
|
1872
1872
|
{
|
|
1873
|
-
...
|
|
1873
|
+
...S,
|
|
1874
1874
|
method: "POST",
|
|
1875
1875
|
headers: { "Content-Type": "application/json" },
|
|
1876
1876
|
body: JSON.stringify(e)
|
|
@@ -1884,7 +1884,7 @@ async function Mc(e, t, n = "") {
|
|
|
1884
1884
|
e
|
|
1885
1885
|
)}${ae({ token: n })}`,
|
|
1886
1886
|
{
|
|
1887
|
-
...
|
|
1887
|
+
...S,
|
|
1888
1888
|
method: "PUT",
|
|
1889
1889
|
headers: { "Content-Type": "application/json" },
|
|
1890
1890
|
body: JSON.stringify(t)
|
|
@@ -1898,7 +1898,7 @@ async function jc(e, t, n = "") {
|
|
|
1898
1898
|
e
|
|
1899
1899
|
)}/toggle${ae({ token: n })}`,
|
|
1900
1900
|
{
|
|
1901
|
-
...
|
|
1901
|
+
...S,
|
|
1902
1902
|
method: "POST",
|
|
1903
1903
|
headers: { "Content-Type": "application/json" },
|
|
1904
1904
|
body: JSON.stringify({ enabled: t })
|
|
@@ -1911,7 +1911,7 @@ async function Nc(e, t = "") {
|
|
|
1911
1911
|
`${y}/admin/schedule-task/${encodeURIComponent(
|
|
1912
1912
|
e
|
|
1913
1913
|
)}/activate${ae({ token: t })}`,
|
|
1914
|
-
{ ...
|
|
1914
|
+
{ ...S, method: "POST" }
|
|
1915
1915
|
);
|
|
1916
1916
|
return f(n, "激活模版失败");
|
|
1917
1917
|
}
|
|
@@ -1920,7 +1920,7 @@ async function Uc(e, t = "") {
|
|
|
1920
1920
|
`${y}/admin/schedule-task/${encodeURIComponent(
|
|
1921
1921
|
e
|
|
1922
1922
|
)}${ae({ token: t })}`,
|
|
1923
|
-
{ ...
|
|
1923
|
+
{ ...S, method: "DELETE" }
|
|
1924
1924
|
);
|
|
1925
1925
|
return f(n, "删除模版失败");
|
|
1926
1926
|
}
|
|
@@ -1929,7 +1929,7 @@ async function zc(e, t = "") {
|
|
|
1929
1929
|
`${y}/admin/schedule-task/${encodeURIComponent(
|
|
1930
1930
|
e
|
|
1931
1931
|
)}/run${ae({ token: t })}`,
|
|
1932
|
-
{ ...
|
|
1932
|
+
{ ...S, method: "POST" }
|
|
1933
1933
|
);
|
|
1934
1934
|
return f(n, "手动执行失败");
|
|
1935
1935
|
}
|
|
@@ -1941,7 +1941,7 @@ async function Lc(e, t = "") {
|
|
|
1941
1941
|
page: e.page,
|
|
1942
1942
|
size: e.size
|
|
1943
1943
|
})}`,
|
|
1944
|
-
|
|
1944
|
+
S
|
|
1945
1945
|
);
|
|
1946
1946
|
return f(n, "查询运行记录失败");
|
|
1947
1947
|
}
|
|
@@ -1949,7 +1949,7 @@ async function Dc(e, t, n, r, s = "") {
|
|
|
1949
1949
|
const o = s ? `?token=${encodeURIComponent(s)}` : "", i = await g(
|
|
1950
1950
|
`${y}/admin/permissions/users/${e}/roles${o}`,
|
|
1951
1951
|
{
|
|
1952
|
-
...
|
|
1952
|
+
...S,
|
|
1953
1953
|
method: "PUT",
|
|
1954
1954
|
headers: { "Content-Type": "application/json" },
|
|
1955
1955
|
body: JSON.stringify({ staffName: t, accountNo: n, roleIds: r })
|
|
@@ -1960,24 +1960,24 @@ async function Dc(e, t, n, r, s = "") {
|
|
|
1960
1960
|
async function Fc(e, t = "") {
|
|
1961
1961
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(
|
|
1962
1962
|
`${y}/admin/permissions/users/${e}/detail${n}`,
|
|
1963
|
-
|
|
1963
|
+
S
|
|
1964
1964
|
);
|
|
1965
1965
|
return f(r, "获取用户授权详情失败");
|
|
1966
1966
|
}
|
|
1967
1967
|
async function qc(e = "") {
|
|
1968
|
-
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/admin/roles${t}`,
|
|
1968
|
+
const t = e ? `?token=${encodeURIComponent(e)}` : "", n = await g(`${y}/admin/roles${t}`, S);
|
|
1969
1969
|
return f(n, "获取角色列表失败") ?? [];
|
|
1970
1970
|
}
|
|
1971
1971
|
async function Bc(e, t = "") {
|
|
1972
1972
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(
|
|
1973
1973
|
`${y}/admin/roles/${e}${n}`,
|
|
1974
|
-
|
|
1974
|
+
S
|
|
1975
1975
|
);
|
|
1976
1976
|
return f(r, "获取角色详情失败");
|
|
1977
1977
|
}
|
|
1978
1978
|
async function Hc(e, t = "") {
|
|
1979
1979
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(`${y}/admin/roles${n}`, {
|
|
1980
|
-
...
|
|
1980
|
+
...S,
|
|
1981
1981
|
method: "POST",
|
|
1982
1982
|
headers: { "Content-Type": "application/json" },
|
|
1983
1983
|
body: JSON.stringify(e)
|
|
@@ -1986,7 +1986,7 @@ async function Hc(e, t = "") {
|
|
|
1986
1986
|
}
|
|
1987
1987
|
async function Kc(e, t, n = "") {
|
|
1988
1988
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(`${y}/admin/roles/${e}${r}`, {
|
|
1989
|
-
...
|
|
1989
|
+
...S,
|
|
1990
1990
|
method: "PUT",
|
|
1991
1991
|
headers: { "Content-Type": "application/json" },
|
|
1992
1992
|
body: JSON.stringify(t)
|
|
@@ -1995,14 +1995,14 @@ async function Kc(e, t, n = "") {
|
|
|
1995
1995
|
}
|
|
1996
1996
|
async function Gc(e, t = "") {
|
|
1997
1997
|
const n = t ? `?token=${encodeURIComponent(t)}` : "", r = await g(`${y}/admin/roles/${e}${n}`, {
|
|
1998
|
-
...
|
|
1998
|
+
...S,
|
|
1999
1999
|
method: "DELETE"
|
|
2000
2000
|
});
|
|
2001
2001
|
return f(r, "删除角色失败");
|
|
2002
2002
|
}
|
|
2003
2003
|
async function Jc(e, t, n = "") {
|
|
2004
2004
|
const r = n ? `?token=${encodeURIComponent(n)}` : "", s = await g(`${y}/admin/roles/${e}/users${r}`, {
|
|
2005
|
-
...
|
|
2005
|
+
...S,
|
|
2006
2006
|
method: "PUT",
|
|
2007
2007
|
headers: { "Content-Type": "application/json" },
|
|
2008
2008
|
body: JSON.stringify({ users: t })
|
|
@@ -2134,7 +2134,7 @@ function Yc(e, t) {
|
|
|
2134
2134
|
const s = e.task_id ?? null, o = Object.values(t).filter(
|
|
2135
2135
|
(i) => s ? i.task_id === s : !i.task_id
|
|
2136
2136
|
);
|
|
2137
|
-
if (
|
|
2137
|
+
if (Se(e.id) && r)
|
|
2138
2138
|
return o.some((i) => !i.completed);
|
|
2139
2139
|
for (const i of o) {
|
|
2140
2140
|
if (i.completed || i.agentName !== e.sender_name)
|
|
@@ -2468,7 +2468,7 @@ function Jt(e) {
|
|
|
2468
2468
|
)
|
|
2469
2469
|
};
|
|
2470
2470
|
}
|
|
2471
|
-
function
|
|
2471
|
+
function ba(e, t) {
|
|
2472
2472
|
var o, i, c, l;
|
|
2473
2473
|
const n = (o = e.sender_name) == null ? void 0 : o.trim();
|
|
2474
2474
|
if (n)
|
|
@@ -2491,8 +2491,8 @@ function Sa(e, t) {
|
|
|
2491
2491
|
}
|
|
2492
2492
|
return r === "AGENT" ? "助手" : r === "HUMAN" ? "成员" : "";
|
|
2493
2493
|
}
|
|
2494
|
-
function
|
|
2495
|
-
const n =
|
|
2494
|
+
function bt(e, t) {
|
|
2495
|
+
const n = ba(e, t);
|
|
2496
2496
|
return n === e.sender_name ? e : { ...e, sender_name: n };
|
|
2497
2497
|
}
|
|
2498
2498
|
const Pt = /* @__PURE__ */ new Map(), Et = /* @__PURE__ */ new Map(), Rt = /* @__PURE__ */ new Map();
|
|
@@ -2534,7 +2534,7 @@ function Mt(e) {
|
|
|
2534
2534
|
const t = e.task_id;
|
|
2535
2535
|
return t == null || kt(t, "0") <= 0;
|
|
2536
2536
|
}
|
|
2537
|
-
function
|
|
2537
|
+
function Sa(e) {
|
|
2538
2538
|
if (!e) return !1;
|
|
2539
2539
|
const t = e.cardForm;
|
|
2540
2540
|
return !!(t && t.status === "pending");
|
|
@@ -2546,7 +2546,7 @@ function Cn(e) {
|
|
|
2546
2546
|
try {
|
|
2547
2547
|
const r = typeof n.ext == "string" ? JSON.parse(n.ext) : n.ext;
|
|
2548
2548
|
if ((r == null ? void 0 : r.taskId) != null) {
|
|
2549
|
-
if (
|
|
2549
|
+
if (Sa(r))
|
|
2550
2550
|
continue;
|
|
2551
2551
|
t.add(q(r.taskId));
|
|
2552
2552
|
}
|
|
@@ -2563,7 +2563,7 @@ function Cn(e) {
|
|
|
2563
2563
|
});
|
|
2564
2564
|
}
|
|
2565
2565
|
function Vt(e, t) {
|
|
2566
|
-
return e.map((n) => Jt(n)).map((n) =>
|
|
2566
|
+
return e.map((n) => Jt(n)).map((n) => bt(n, t));
|
|
2567
2567
|
}
|
|
2568
2568
|
function wa(e, t, n) {
|
|
2569
2569
|
return Vt(e, t).map((r) => ({
|
|
@@ -2578,7 +2578,7 @@ function _a(e, t, n) {
|
|
|
2578
2578
|
if (t.sender_id == null)
|
|
2579
2579
|
return null;
|
|
2580
2580
|
const r = e.findIndex(
|
|
2581
|
-
(o) =>
|
|
2581
|
+
(o) => Se(o.id) && o.sender_type === "AGENT" && o.sender_id === t.sender_id && (t.task_id ? o.task_id === t.task_id : !o.task_id) && n(o.content)
|
|
2582
2582
|
);
|
|
2583
2583
|
if (r === -1)
|
|
2584
2584
|
return null;
|
|
@@ -2773,7 +2773,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
2773
2773
|
e({ loading: !0 });
|
|
2774
2774
|
const { token: r } = t();
|
|
2775
2775
|
try {
|
|
2776
|
-
const s = await
|
|
2776
|
+
const s = await Ss(r, n), i = (Array.isArray(s) ? s : []).map((c) => Ae(c)).sort(
|
|
2777
2777
|
(c, l) => it(l.created_at) - it(c.created_at)
|
|
2778
2778
|
);
|
|
2779
2779
|
e({ projects: i, loading: !1 });
|
|
@@ -2889,7 +2889,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
2889
2889
|
if (((m = l.currentProject) == null ? void 0 : m.id) !== r)
|
|
2890
2890
|
return {};
|
|
2891
2891
|
const d = l.projectCache[r] ?? ct(), u = { members: c }, h = l.messages.map(
|
|
2892
|
-
(C) =>
|
|
2892
|
+
(C) => bt(C, c)
|
|
2893
2893
|
);
|
|
2894
2894
|
return {
|
|
2895
2895
|
members: c,
|
|
@@ -2968,7 +2968,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
2968
2968
|
if (!n) return;
|
|
2969
2969
|
const r = String(n.id);
|
|
2970
2970
|
try {
|
|
2971
|
-
const s = await
|
|
2971
|
+
const s = await bn(n.id, Tn), o = s.messages || [], i = t().members, c = lt(
|
|
2972
2972
|
Cn(
|
|
2973
2973
|
Vt(o, i).filter(Mt)
|
|
2974
2974
|
)
|
|
@@ -2995,7 +2995,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
2995
2995
|
if (!n || !s || r.length === 0) return;
|
|
2996
2996
|
const o = r[0].id;
|
|
2997
2997
|
try {
|
|
2998
|
-
const i = await
|
|
2998
|
+
const i = await bn(
|
|
2999
2999
|
n.id,
|
|
3000
3000
|
Tn,
|
|
3001
3001
|
o
|
|
@@ -3021,7 +3021,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3021
3021
|
e({ pendingTeamChatContent: n }), t().requestChatScrollBottom("team", !0);
|
|
3022
3022
|
},
|
|
3023
3023
|
addMessage: (n) => {
|
|
3024
|
-
var x,
|
|
3024
|
+
var x, b;
|
|
3025
3025
|
const r = Jt(
|
|
3026
3026
|
n
|
|
3027
3027
|
);
|
|
@@ -3031,7 +3031,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3031
3031
|
if (!we(s))
|
|
3032
3032
|
return;
|
|
3033
3033
|
const o = t();
|
|
3034
|
-
let i =
|
|
3034
|
+
let i = bt(r, o.members);
|
|
3035
3035
|
const c = String(r.sender_type || "HUMAN").toUpperCase() === "HUMAN", l = xt(o.members, o.currentUser) ?? null, d = String(r.scenario_instance_id ?? ""), u = (x = o.currentProject) != null && x.id ? String(o.currentProject.id) : "";
|
|
3036
3036
|
if (d && d !== "0" && u && d !== u)
|
|
3037
3037
|
return;
|
|
@@ -3050,7 +3050,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3050
3050
|
...i,
|
|
3051
3051
|
is_own: !0,
|
|
3052
3052
|
sender_id: i.sender_id ?? (l == null ? void 0 : l.id) ?? null,
|
|
3053
|
-
sender_name: i.sender_name || ((
|
|
3053
|
+
sender_name: i.sender_name || ((b = o.currentUser) == null ? void 0 : b.display_name) || ""
|
|
3054
3054
|
});
|
|
3055
3055
|
const O = h && !m && i.is_own === !0;
|
|
3056
3056
|
let _ = null;
|
|
@@ -3234,7 +3234,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3234
3234
|
return;
|
|
3235
3235
|
const o = String(s.id);
|
|
3236
3236
|
try {
|
|
3237
|
-
const i = await
|
|
3237
|
+
const i = await Sn(s.id, n);
|
|
3238
3238
|
e((c) => {
|
|
3239
3239
|
var l;
|
|
3240
3240
|
return ((l = c.currentProject) == null ? void 0 : l.id) !== o ? {} : r ? {
|
|
@@ -3355,8 +3355,8 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3355
3355
|
expandedProjectIds: [
|
|
3356
3356
|
.../* @__PURE__ */ new Set([...i.expandedProjectIds, s])
|
|
3357
3357
|
]
|
|
3358
|
-
}), h && t().loadFileTree()), e((
|
|
3359
|
-
const A =
|
|
3358
|
+
}), h && t().loadFileTree()), e((b) => {
|
|
3359
|
+
const A = b.projects.filter(
|
|
3360
3360
|
(T, M, K) => K.findIndex((I) => I.id === T.id) === M
|
|
3361
3361
|
), k = A.findIndex((T) => T.id === s);
|
|
3362
3362
|
return {
|
|
@@ -3369,8 +3369,8 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3369
3369
|
return;
|
|
3370
3370
|
}
|
|
3371
3371
|
const C = i.projectSwitchSeq + 1, O = o && !d ? [.../* @__PURE__ */ new Set([...i.expandedProjectIds, s])] : i.expandedProjectIds;
|
|
3372
|
-
((x = i.currentProject) == null ? void 0 : x.id) !== s && Kt(), e((
|
|
3373
|
-
const A =
|
|
3372
|
+
((x = i.currentProject) == null ? void 0 : x.id) !== s && Kt(), e((b) => {
|
|
3373
|
+
const A = b.projects.filter(
|
|
3374
3374
|
(T, M, K) => K.findIndex((I) => I.id === T.id) === M
|
|
3375
3375
|
), k = A.findIndex((T) => T.id === s);
|
|
3376
3376
|
return {
|
|
@@ -3438,12 +3438,12 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3438
3438
|
const r = t().currentProject;
|
|
3439
3439
|
if (!r) return;
|
|
3440
3440
|
let s = n;
|
|
3441
|
-
if (
|
|
3441
|
+
if (Se(s)) {
|
|
3442
3442
|
await t().loadRunningExecutions();
|
|
3443
3443
|
const c = (i = t().activeTaskChat) == null ? void 0 : i.taskId, l = c ? Object.values(t().runningExecutions).find(
|
|
3444
|
-
(d) => he(d.task_id, c) && !
|
|
3444
|
+
(d) => he(d.task_id, c) && !Se(d.executionId) && d.executionId !== "" && d.stepName !== "排队中"
|
|
3445
3445
|
) : Object.values(t().runningExecutions).find(
|
|
3446
|
-
(d) => !
|
|
3446
|
+
(d) => !Se(d.executionId) && d.executionId !== "" && !d.task_id && d.stepName !== "排队中"
|
|
3447
3447
|
);
|
|
3448
3448
|
if (!l) {
|
|
3449
3449
|
t().clearExecution(s);
|
|
@@ -3484,7 +3484,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3484
3484
|
const o = { ...s.runningExecutions };
|
|
3485
3485
|
if (n.taskId)
|
|
3486
3486
|
for (const l of Object.keys(o))
|
|
3487
|
-
|
|
3487
|
+
Se(l) && he((c = o[l]) == null ? void 0 : c.task_id, n.taskId) && delete o[l];
|
|
3488
3488
|
const i = vt(
|
|
3489
3489
|
n.agentName,
|
|
3490
3490
|
n.taskId,
|
|
@@ -3605,7 +3605,7 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3605
3605
|
oe(o, s.errors.length > 0 ? "warning" : "success"), e((c) => ({ fileTreeVersion: c.fileTreeVersion + 1 }));
|
|
3606
3606
|
const i = t().currentProject;
|
|
3607
3607
|
if (i && i.id === n) {
|
|
3608
|
-
const c = await
|
|
3608
|
+
const c = await Sn(n, "");
|
|
3609
3609
|
e((l) => ({
|
|
3610
3610
|
fileTrees: { ...l.fileTrees, [n]: c || [] }
|
|
3611
3611
|
}));
|
|
@@ -3641,14 +3641,14 @@ const pl = 3, ml = 4, hl = 5, $n = gr((e, t) => ({
|
|
|
3641
3641
|
const i = r.task_id ?? q(o);
|
|
3642
3642
|
if (!he(i, o))
|
|
3643
3643
|
return;
|
|
3644
|
-
const c =
|
|
3644
|
+
const c = bt(
|
|
3645
3645
|
{ ...r, task_id: i },
|
|
3646
3646
|
t().members
|
|
3647
3647
|
), l = c.id;
|
|
3648
3648
|
we(l) && e((h) => {
|
|
3649
3649
|
let m = h.taskMessages;
|
|
3650
3650
|
if (c.sender_type === "AGENT" && c.task_id && (m = m.filter(
|
|
3651
|
-
(_) => !(
|
|
3651
|
+
(_) => !(Se(_.id) && _.sender_type === "AGENT" && _.task_id === c.task_id)
|
|
3652
3652
|
)), m.findIndex((_) => _.id === l) !== -1)
|
|
3653
3653
|
return {
|
|
3654
3654
|
taskMessages: dt(
|
|
@@ -3962,9 +3962,9 @@ Pa();
|
|
|
3962
3962
|
const ne = (e) => {
|
|
3963
3963
|
const t = wr(e);
|
|
3964
3964
|
return (n) => /* @__PURE__ */ a(_r, { fallback: null, children: /* @__PURE__ */ a(t, { ...n }) });
|
|
3965
|
-
}, Le = ne(() => import("./index-
|
|
3966
|
-
ne(() => import("./index-
|
|
3967
|
-
const Na = ne(() => import("./index-C815hPWS.js")), Ua = ne(() => import("./index-BZCQSW-G.js")), za = ne(() => import("./index-DhDdFRHC.js")), La = ne(() => import("./index-
|
|
3965
|
+
}, Le = ne(() => import("./index-CQlk29NQ.js").then((e) => e.ax)), Ea = ne(() => import("./index-DNtokN10.js")), Ra = ne(() => import("./index-DHWqmuV7.js")), Oa = ne(() => import("./index-BGBFOKRD.js")), Ma = ne(() => import("./index-D_ibbbC0.js")), ja = ne(() => import("./index-C4s0aecX.js"));
|
|
3966
|
+
ne(() => import("./index-DR4qlzL_.js"));
|
|
3967
|
+
const Na = ne(() => import("./index-C815hPWS.js")), Ua = ne(() => import("./index-BZCQSW-G.js")), za = ne(() => import("./index-DhDdFRHC.js")), La = ne(() => import("./index-D6DjRfsO.js")), Da = ne(() => import("./index-rEgGLmq9.js")), Fa = ne(() => import("./index-B_LJRFsK.js")), qa = ne(() => import("./index-DBBarBnO.js"));
|
|
3968
3968
|
function gl({ forcedMode: e }) {
|
|
3969
3969
|
const { pathname: t } = Tr(), n = t.replace(/\/+$/, "") || "/";
|
|
3970
3970
|
return e === "system" ? /* @__PURE__ */ a(Le, { forcedChatMode: $a(n) }) : e === "dev" ? /* @__PURE__ */ a(Le, { forcedChatMode: "dev" }) : n === "/workspace" ? /* @__PURE__ */ a(Le, {}) : n === "/workspace/phone" ? /* @__PURE__ */ a(Ea, {}) : n === "/workspace/from-ticket" ? /* @__PURE__ */ a(Ra, {}) : n === "/workspace/from-scenario" ? /* @__PURE__ */ a(Oa, {}) : n === "/workspace/build-by-form" ? /* @__PURE__ */ a(Ma, {}) : n === "/scenario" ? /* @__PURE__ */ a(ja, {}) : n === "/admin" ? /* @__PURE__ */ a(Le, {}) : n === "/welcome" ? /* @__PURE__ */ a(Ua, {}) : n === "/portal" ? /* @__PURE__ */ a(za, {}) : n === "/chatdemo" ? /* @__PURE__ */ a(Na, {}) : n === "/embed/chat" || n.startsWith("/embed/chat/") ? /* @__PURE__ */ a(qa, {}) : n === "/change-log" ? /* @__PURE__ */ a(La, {}) : n === "/docs" ? /* @__PURE__ */ a(Da, {}) : n === "/download" ? /* @__PURE__ */ a(Fa, {}) : /* @__PURE__ */ a(Le, {});
|
|
@@ -4066,7 +4066,7 @@ function sn(e = {}) {
|
|
|
4066
4066
|
userInfoKey: e.userInfoKey
|
|
4067
4067
|
}), t;
|
|
4068
4068
|
}
|
|
4069
|
-
const H = sn(),
|
|
4069
|
+
const H = sn(), bl = sn(), mt = sn({ baseURL: "/api", timeout: 1e4 }), ht = (e) => e ? typeof e.total == "number" ? e.total : Array.isArray(e) ? e.length : Array.isArray(e.records) ? e.records.length : Array.isArray(e.data) ? e.data.length : 0 : 0, Wa = [
|
|
4070
4070
|
{
|
|
4071
4071
|
key: "ai",
|
|
4072
4072
|
color: "violet",
|
|
@@ -4164,7 +4164,7 @@ const H = sn(), Sl = sn(), mt = sn({ baseURL: "/api", timeout: 1e4 }), ht = (e)
|
|
|
4164
4164
|
}
|
|
4165
4165
|
]
|
|
4166
4166
|
}
|
|
4167
|
-
],
|
|
4167
|
+
], Sl = () => {
|
|
4168
4168
|
const [e, t] = $({
|
|
4169
4169
|
configCount: null,
|
|
4170
4170
|
projectCount: null,
|
|
@@ -4366,29 +4366,29 @@ const Ct = "/mock-platform", Q = (e, t) => tt.get(`${Ct}${e}`, { params: t }).th
|
|
|
4366
4366
|
}
|
|
4367
4367
|
}, { Text: me, Paragraph: Ya } = pe, Rn = { GET: "green", POST: "blue", PUT: "orange", DELETE: "red", PATCH: "purple" };
|
|
4368
4368
|
function Wt({ activeEnvCode: e }) {
|
|
4369
|
-
const [t, n] = $([]), [r, s] = $(!1), [o, i] = $(null), [c, l] = $(!1), [d, u] = $(null), [h, m] = $(""), C = h.trim() ? t.filter((
|
|
4369
|
+
const [t, n] = $([]), [r, s] = $(!1), [o, i] = $(null), [c, l] = $(!1), [d, u] = $(null), [h, m] = $(""), C = h.trim() ? t.filter((b) => `${b.path || ""} ${b.mock_code || ""}`.toLowerCase().includes(h.trim().toLowerCase())) : t;
|
|
4370
4370
|
Y(() => {
|
|
4371
4371
|
O();
|
|
4372
4372
|
}, [e]);
|
|
4373
4373
|
const O = async () => {
|
|
4374
4374
|
s(!0), i(null);
|
|
4375
4375
|
try {
|
|
4376
|
-
const
|
|
4377
|
-
n(Array.isArray(
|
|
4378
|
-
} catch (
|
|
4379
|
-
i((
|
|
4376
|
+
const b = await J.endpoints.list(e);
|
|
4377
|
+
n(Array.isArray(b) ? b : []);
|
|
4378
|
+
} catch (b) {
|
|
4379
|
+
i((b == null ? void 0 : b.message) || "API unavailable"), n([]);
|
|
4380
4380
|
} finally {
|
|
4381
4381
|
s(!1);
|
|
4382
4382
|
}
|
|
4383
|
-
}, _ = (
|
|
4383
|
+
}, _ = (b) => `${window.location.origin}/api/mock/${b.env_code || e || "default"}${b.path || ""}`, x = [
|
|
4384
4384
|
{
|
|
4385
4385
|
title: "路径",
|
|
4386
4386
|
dataIndex: "path",
|
|
4387
4387
|
key: "path",
|
|
4388
4388
|
width: 280,
|
|
4389
|
-
render: (
|
|
4389
|
+
render: (b, A) => /* @__PURE__ */ p(U, { children: [
|
|
4390
4390
|
/* @__PURE__ */ a(E, { color: Rn[A.method] || "default", children: A.method }),
|
|
4391
|
-
/* @__PURE__ */ a(me, { code: !0, copyable: { text:
|
|
4391
|
+
/* @__PURE__ */ a(me, { code: !0, copyable: { text: b }, children: b })
|
|
4392
4392
|
] })
|
|
4393
4393
|
},
|
|
4394
4394
|
{ title: "编码", dataIndex: "mock_code", key: "mock_code", width: 160 },
|
|
@@ -4398,9 +4398,9 @@ function Wt({ activeEnvCode: e }) {
|
|
|
4398
4398
|
key: "priority",
|
|
4399
4399
|
width: 80,
|
|
4400
4400
|
align: "center",
|
|
4401
|
-
render: (
|
|
4401
|
+
render: (b) => /* @__PURE__ */ p(E, { color: "blue", children: [
|
|
4402
4402
|
"P",
|
|
4403
|
-
|
|
4403
|
+
b || 5
|
|
4404
4404
|
] })
|
|
4405
4405
|
},
|
|
4406
4406
|
{ title: "状态码", dataIndex: "status_code", key: "status_code", width: 80, align: "center" },
|
|
@@ -4410,8 +4410,8 @@ function Wt({ activeEnvCode: e }) {
|
|
|
4410
4410
|
key: "delay_ms",
|
|
4411
4411
|
width: 80,
|
|
4412
4412
|
align: "center",
|
|
4413
|
-
render: (
|
|
4414
|
-
|
|
4413
|
+
render: (b) => b > 0 ? /* @__PURE__ */ p(me, { type: "warning", children: [
|
|
4414
|
+
b,
|
|
4415
4415
|
"ms"
|
|
4416
4416
|
] }) : /* @__PURE__ */ a(me, { type: "secondary", children: "-" })
|
|
4417
4417
|
},
|
|
@@ -4420,14 +4420,14 @@ function Wt({ activeEnvCode: e }) {
|
|
|
4420
4420
|
dataIndex: "fault_type",
|
|
4421
4421
|
key: "fault_type",
|
|
4422
4422
|
width: 110,
|
|
4423
|
-
render: (
|
|
4423
|
+
render: (b) => b && b !== "NONE" ? /* @__PURE__ */ a(E, { color: "red", children: b }) : /* @__PURE__ */ a(me, { type: "secondary", children: "-" })
|
|
4424
4424
|
},
|
|
4425
4425
|
{
|
|
4426
4426
|
title: "场景",
|
|
4427
4427
|
dataIndex: "scenario_code",
|
|
4428
4428
|
key: "scenario_code",
|
|
4429
4429
|
width: 130,
|
|
4430
|
-
render: (
|
|
4430
|
+
render: (b) => b ? /* @__PURE__ */ a(E, { color: "purple", children: b }) : /* @__PURE__ */ a(me, { type: "secondary", children: "-" })
|
|
4431
4431
|
},
|
|
4432
4432
|
{
|
|
4433
4433
|
title: "命中",
|
|
@@ -4435,7 +4435,7 @@ function Wt({ activeEnvCode: e }) {
|
|
|
4435
4435
|
key: "hit_count",
|
|
4436
4436
|
width: 80,
|
|
4437
4437
|
align: "center",
|
|
4438
|
-
render: (
|
|
4438
|
+
render: (b) => /* @__PURE__ */ a(me, { strong: !0, children: b || 0 })
|
|
4439
4439
|
},
|
|
4440
4440
|
{
|
|
4441
4441
|
title: "状态",
|
|
@@ -4443,14 +4443,14 @@ function Wt({ activeEnvCode: e }) {
|
|
|
4443
4443
|
key: "status",
|
|
4444
4444
|
width: 100,
|
|
4445
4445
|
align: "center",
|
|
4446
|
-
render: (
|
|
4446
|
+
render: (b) => b === 1 ? /* @__PURE__ */ a(E, { color: "green", children: "启用" }) : /* @__PURE__ */ a(E, { children: "禁用" })
|
|
4447
4447
|
},
|
|
4448
4448
|
{
|
|
4449
4449
|
title: "操作",
|
|
4450
4450
|
key: "action",
|
|
4451
4451
|
width: 160,
|
|
4452
4452
|
fixed: "right",
|
|
4453
|
-
render: (
|
|
4453
|
+
render: (b, A) => /* @__PURE__ */ p(U, { size: "small", children: [
|
|
4454
4454
|
/* @__PURE__ */ a(Re, { title: "预览响应", children: /* @__PURE__ */ a(
|
|
4455
4455
|
j,
|
|
4456
4456
|
{
|
|
@@ -4495,18 +4495,18 @@ function Wt({ activeEnvCode: e }) {
|
|
|
4495
4495
|
] }) }),
|
|
4496
4496
|
/* @__PURE__ */ a(D, { span: 6, children: /* @__PURE__ */ p(F, { children: [
|
|
4497
4497
|
/* @__PURE__ */ a("strong", { children: "已启用" }),
|
|
4498
|
-
/* @__PURE__ */ a("div", { style: { fontSize: 22, color: "#52c41a" }, children: t.filter((
|
|
4498
|
+
/* @__PURE__ */ a("div", { style: { fontSize: 22, color: "#52c41a" }, children: t.filter((b) => b.status === 1).length })
|
|
4499
4499
|
] }) }),
|
|
4500
4500
|
/* @__PURE__ */ a(D, { span: 6, children: /* @__PURE__ */ p(F, { children: [
|
|
4501
4501
|
/* @__PURE__ */ a("strong", { children: "已禁用" }),
|
|
4502
|
-
/* @__PURE__ */ a("div", { style: { fontSize: 22, color: "#ff4d4f" }, children: t.filter((
|
|
4502
|
+
/* @__PURE__ */ a("div", { style: { fontSize: 22, color: "#ff4d4f" }, children: t.filter((b) => b.status === 0).length })
|
|
4503
4503
|
] }) }),
|
|
4504
4504
|
/* @__PURE__ */ a(D, { span: 6, children: /* @__PURE__ */ p(F, { children: [
|
|
4505
4505
|
/* @__PURE__ */ a("strong", { children: "总命中" }),
|
|
4506
4506
|
/* @__PURE__ */ a("div", { style: {
|
|
4507
4507
|
fontSize: 22,
|
|
4508
4508
|
color: "#1890ff"
|
|
4509
|
-
}, children: t.reduce((
|
|
4509
|
+
}, children: t.reduce((b, A) => b + (A.hit_count || 0), 0) })
|
|
4510
4510
|
] }) })
|
|
4511
4511
|
] }),
|
|
4512
4512
|
/* @__PURE__ */ p(U, { style: { marginBottom: 16 }, children: [
|
|
@@ -4516,7 +4516,7 @@ function Wt({ activeEnvCode: e }) {
|
|
|
4516
4516
|
allowClear: !0,
|
|
4517
4517
|
placeholder: "按路径 / 编码过滤",
|
|
4518
4518
|
style: { width: 220 },
|
|
4519
|
-
onChange: (
|
|
4519
|
+
onChange: (b) => m(b.target.value)
|
|
4520
4520
|
}
|
|
4521
4521
|
),
|
|
4522
4522
|
/* @__PURE__ */ a(j, { icon: /* @__PURE__ */ a(ce, {}), onClick: O, children: "刷新" })
|
|
@@ -4850,13 +4850,13 @@ function to() {
|
|
|
4850
4850
|
)
|
|
4851
4851
|
] });
|
|
4852
4852
|
}
|
|
4853
|
-
const { Text:
|
|
4853
|
+
const { Text: be } = pe, zt = { PASS: "green", FAIL: "red", SKIP: "default" }, no = { P0: "red", P1: "orange", P2: "blue", P3: "default" };
|
|
4854
4854
|
function ro() {
|
|
4855
4855
|
const [e, t] = $([]), [n, r] = $(!1), [s, o] = $([]), [i, c] = $(!1), [l, d] = $(null), [u, h] = $(null), [m, C] = $(!1), [O, _] = $(""), x = O.trim() ? e.filter((T) => `${T.case_code || ""} ${T.case_name || ""} ${T.request_url || ""}`.toLowerCase().includes(O.trim().toLowerCase())) : e;
|
|
4856
4856
|
Y(() => {
|
|
4857
|
-
|
|
4857
|
+
b();
|
|
4858
4858
|
}, []);
|
|
4859
|
-
const
|
|
4859
|
+
const b = async () => {
|
|
4860
4860
|
r(!0);
|
|
4861
4861
|
try {
|
|
4862
4862
|
const T = await J.cases.list();
|
|
@@ -4869,7 +4869,7 @@ function ro() {
|
|
|
4869
4869
|
}, A = async (T) => {
|
|
4870
4870
|
try {
|
|
4871
4871
|
const M = await J.cases.run(T.case_code);
|
|
4872
|
-
d(M), c(!0), (M == null ? void 0 : M.status) === "PASS" ? v.success("用例通过") : v.error("用例失败: " + ((M == null ? void 0 : M.error) || (M == null ? void 0 : M.actualStatus))),
|
|
4872
|
+
d(M), c(!0), (M == null ? void 0 : M.status) === "PASS" ? v.success("用例通过") : v.error("用例失败: " + ((M == null ? void 0 : M.error) || (M == null ? void 0 : M.actualStatus))), b();
|
|
4873
4873
|
} catch (M) {
|
|
4874
4874
|
v.error("执行失败: " + (M == null ? void 0 : M.message));
|
|
4875
4875
|
}
|
|
@@ -4880,7 +4880,7 @@ function ro() {
|
|
|
4880
4880
|
}
|
|
4881
4881
|
try {
|
|
4882
4882
|
const T = await J.cases.runBatch(s);
|
|
4883
|
-
h(T), C(!0), v.success(`批量执行完成: ${T == null ? void 0 : T.pass} 通过, ${T == null ? void 0 : T.fail} 失败`),
|
|
4883
|
+
h(T), C(!0), v.success(`批量执行完成: ${T == null ? void 0 : T.pass} 通过, ${T == null ? void 0 : T.fail} 失败`), b();
|
|
4884
4884
|
} catch {
|
|
4885
4885
|
v.error("批量执行失败");
|
|
4886
4886
|
}
|
|
@@ -4890,7 +4890,7 @@ function ro() {
|
|
|
4890
4890
|
dataIndex: "case_code",
|
|
4891
4891
|
key: "case_code",
|
|
4892
4892
|
width: 180,
|
|
4893
|
-
render: (T) => /* @__PURE__ */ a(
|
|
4893
|
+
render: (T) => /* @__PURE__ */ a(be, { code: !0, children: T })
|
|
4894
4894
|
},
|
|
4895
4895
|
{ title: "名称", dataIndex: "case_name", key: "case_name", width: 220 },
|
|
4896
4896
|
{
|
|
@@ -4912,7 +4912,7 @@ function ro() {
|
|
|
4912
4912
|
dataIndex: "request_url",
|
|
4913
4913
|
key: "request_url",
|
|
4914
4914
|
ellipsis: !0,
|
|
4915
|
-
render: (T) => /* @__PURE__ */ a(
|
|
4915
|
+
render: (T) => /* @__PURE__ */ a(be, { code: !0, children: T })
|
|
4916
4916
|
},
|
|
4917
4917
|
{
|
|
4918
4918
|
title: "优先级",
|
|
@@ -4936,10 +4936,10 @@ function ro() {
|
|
|
4936
4936
|
width: 130,
|
|
4937
4937
|
align: "center",
|
|
4938
4938
|
render: (T, M) => /* @__PURE__ */ p(U, { size: "small", children: [
|
|
4939
|
-
/* @__PURE__ */ a(
|
|
4939
|
+
/* @__PURE__ */ a(be, { type: "success", children: M.pass_count || 0 }),
|
|
4940
4940
|
"/",
|
|
4941
|
-
/* @__PURE__ */ a(
|
|
4942
|
-
/* @__PURE__ */ p(
|
|
4941
|
+
/* @__PURE__ */ a(be, { type: "danger", children: M.fail_count || 0 }),
|
|
4942
|
+
/* @__PURE__ */ p(be, { type: "secondary", children: [
|
|
4943
4943
|
"(",
|
|
4944
4944
|
M.run_count || 0,
|
|
4945
4945
|
")"
|
|
@@ -4984,7 +4984,7 @@ function ro() {
|
|
|
4984
4984
|
onChange: (T) => _(T.target.value)
|
|
4985
4985
|
}
|
|
4986
4986
|
),
|
|
4987
|
-
/* @__PURE__ */ a(j, { icon: /* @__PURE__ */ a(ce, {}), onClick:
|
|
4987
|
+
/* @__PURE__ */ a(j, { icon: /* @__PURE__ */ a(ce, {}), onClick: b, children: "刷新" }),
|
|
4988
4988
|
/* @__PURE__ */ p(
|
|
4989
4989
|
j,
|
|
4990
4990
|
{
|
|
@@ -5047,7 +5047,7 @@ function ro() {
|
|
|
5047
5047
|
/* @__PURE__ */ a(z.Item, { label: "错误信息", children: l.error || "-" })
|
|
5048
5048
|
] }),
|
|
5049
5049
|
l.assertionResults && /* @__PURE__ */ p(Lt, { children: [
|
|
5050
|
-
/* @__PURE__ */ a(
|
|
5050
|
+
/* @__PURE__ */ a(be, { strong: !0, children: "断言详情:" }),
|
|
5051
5051
|
/* @__PURE__ */ a(
|
|
5052
5052
|
ie,
|
|
5053
5053
|
{
|
|
@@ -5071,7 +5071,7 @@ function ro() {
|
|
|
5071
5071
|
}
|
|
5072
5072
|
)
|
|
5073
5073
|
] }),
|
|
5074
|
-
/* @__PURE__ */ a(
|
|
5074
|
+
/* @__PURE__ */ a(be, { strong: !0, style: { marginTop: 16, display: "block" }, children: "响应体:" }),
|
|
5075
5075
|
/* @__PURE__ */ a("pre", { style: {
|
|
5076
5076
|
background: "#f5f5f5",
|
|
5077
5077
|
padding: 12,
|
|
@@ -5171,8 +5171,8 @@ function so() {
|
|
|
5171
5171
|
}
|
|
5172
5172
|
}, O = async (x) => {
|
|
5173
5173
|
try {
|
|
5174
|
-
const
|
|
5175
|
-
c(x), d(Array.isArray(
|
|
5174
|
+
const b = await J.recordings.requests(x.recording_code);
|
|
5175
|
+
c(x), d(Array.isArray(b) ? b : []), o(!0);
|
|
5176
5176
|
} catch {
|
|
5177
5177
|
v.error("加载失败");
|
|
5178
5178
|
}
|
|
@@ -5213,13 +5213,13 @@ function so() {
|
|
|
5213
5213
|
key: "action",
|
|
5214
5214
|
width: 120,
|
|
5215
5215
|
fixed: "right",
|
|
5216
|
-
render: (x,
|
|
5216
|
+
render: (x, b) => /* @__PURE__ */ a(U, { size: "small", children: /* @__PURE__ */ a(
|
|
5217
5217
|
j,
|
|
5218
5218
|
{
|
|
5219
5219
|
size: "small",
|
|
5220
5220
|
type: "link",
|
|
5221
5221
|
icon: /* @__PURE__ */ a(on, {}),
|
|
5222
|
-
onClick: () => O(
|
|
5222
|
+
onClick: () => O(b),
|
|
5223
5223
|
children: "详情"
|
|
5224
5224
|
}
|
|
5225
5225
|
) })
|
|
@@ -5349,7 +5349,7 @@ function oo() {
|
|
|
5349
5349
|
const O = async () => {
|
|
5350
5350
|
o(!0);
|
|
5351
5351
|
try {
|
|
5352
|
-
const [
|
|
5352
|
+
const [b, A] = await Promise.all([
|
|
5353
5353
|
J.requestLogs.list({
|
|
5354
5354
|
path: u || void 0,
|
|
5355
5355
|
matched: m,
|
|
@@ -5357,42 +5357,42 @@ function oo() {
|
|
|
5357
5357
|
}),
|
|
5358
5358
|
J.requestLogs.stats().catch(() => null)
|
|
5359
5359
|
]);
|
|
5360
|
-
t(Array.isArray(
|
|
5360
|
+
t(Array.isArray(b) ? b : []), r(A);
|
|
5361
5361
|
} catch {
|
|
5362
5362
|
v.warning("加载失败");
|
|
5363
5363
|
} finally {
|
|
5364
5364
|
o(!1);
|
|
5365
5365
|
}
|
|
5366
|
-
}, _ = (
|
|
5367
|
-
c(
|
|
5366
|
+
}, _ = (b) => {
|
|
5367
|
+
c(b), d(!0);
|
|
5368
5368
|
}, x = [
|
|
5369
5369
|
{
|
|
5370
5370
|
title: "时间",
|
|
5371
5371
|
dataIndex: "create_time",
|
|
5372
5372
|
key: "create_time",
|
|
5373
5373
|
width: 170,
|
|
5374
|
-
render: (
|
|
5374
|
+
render: (b) => b ? new Date(b).toLocaleString() : "-"
|
|
5375
5375
|
},
|
|
5376
5376
|
{
|
|
5377
5377
|
title: "环境",
|
|
5378
5378
|
dataIndex: "env_code",
|
|
5379
5379
|
key: "env_code",
|
|
5380
5380
|
width: 100,
|
|
5381
|
-
render: (
|
|
5381
|
+
render: (b) => /* @__PURE__ */ a(E, { children: b })
|
|
5382
5382
|
},
|
|
5383
5383
|
{
|
|
5384
5384
|
title: "方法",
|
|
5385
5385
|
dataIndex: "request_method",
|
|
5386
5386
|
key: "request_method",
|
|
5387
5387
|
width: 80,
|
|
5388
|
-
render: (
|
|
5388
|
+
render: (b) => /* @__PURE__ */ a(E, { color: "blue", children: b })
|
|
5389
5389
|
},
|
|
5390
5390
|
{
|
|
5391
5391
|
title: "路径",
|
|
5392
5392
|
dataIndex: "request_path",
|
|
5393
5393
|
key: "request_path",
|
|
5394
5394
|
ellipsis: !0,
|
|
5395
|
-
render: (
|
|
5395
|
+
render: (b) => /* @__PURE__ */ a(Pe, { code: !0, children: b })
|
|
5396
5396
|
},
|
|
5397
5397
|
{
|
|
5398
5398
|
title: "状态",
|
|
@@ -5400,7 +5400,7 @@ function oo() {
|
|
|
5400
5400
|
key: "response_status",
|
|
5401
5401
|
width: 90,
|
|
5402
5402
|
align: "center",
|
|
5403
|
-
render: (
|
|
5403
|
+
render: (b) => b ? /* @__PURE__ */ a(E, { color: b >= 400 ? "red" : "green", children: b }) : "-"
|
|
5404
5404
|
},
|
|
5405
5405
|
{
|
|
5406
5406
|
title: "匹配",
|
|
@@ -5408,14 +5408,14 @@ function oo() {
|
|
|
5408
5408
|
key: "matched",
|
|
5409
5409
|
width: 90,
|
|
5410
5410
|
align: "center",
|
|
5411
|
-
render: (
|
|
5411
|
+
render: (b) => b === 1 ? /* @__PURE__ */ a(E, { color: "green", children: "命中" }) : /* @__PURE__ */ a(E, { color: "red", children: "未匹配" })
|
|
5412
5412
|
},
|
|
5413
5413
|
{
|
|
5414
5414
|
title: "回退",
|
|
5415
5415
|
dataIndex: "fallback_type",
|
|
5416
5416
|
key: "fallback_type",
|
|
5417
5417
|
width: 100,
|
|
5418
|
-
render: (
|
|
5418
|
+
render: (b) => b ? /* @__PURE__ */ a(E, { color: ao[b], children: b }) : "-"
|
|
5419
5419
|
},
|
|
5420
5420
|
{
|
|
5421
5421
|
title: "耗时",
|
|
@@ -5423,7 +5423,7 @@ function oo() {
|
|
|
5423
5423
|
key: "duration_ms",
|
|
5424
5424
|
width: 80,
|
|
5425
5425
|
align: "center",
|
|
5426
|
-
render: (
|
|
5426
|
+
render: (b) => `${b || 0}ms`
|
|
5427
5427
|
},
|
|
5428
5428
|
{
|
|
5429
5429
|
title: "Mock",
|
|
@@ -5431,13 +5431,13 @@ function oo() {
|
|
|
5431
5431
|
key: "mock_code",
|
|
5432
5432
|
width: 160,
|
|
5433
5433
|
ellipsis: !0,
|
|
5434
|
-
render: (
|
|
5434
|
+
render: (b) => b ? /* @__PURE__ */ a(Pe, { code: !0, children: b }) : "-"
|
|
5435
5435
|
},
|
|
5436
5436
|
{
|
|
5437
5437
|
title: "操作",
|
|
5438
5438
|
key: "action",
|
|
5439
5439
|
width: 80,
|
|
5440
|
-
render: (
|
|
5440
|
+
render: (b, A) => /* @__PURE__ */ a(
|
|
5441
5441
|
j,
|
|
5442
5442
|
{
|
|
5443
5443
|
size: "small",
|
|
@@ -5495,7 +5495,7 @@ function oo() {
|
|
|
5495
5495
|
allowClear: !0,
|
|
5496
5496
|
style: { width: 240 },
|
|
5497
5497
|
value: u,
|
|
5498
|
-
onChange: (
|
|
5498
|
+
onChange: (b) => h(b.target.value),
|
|
5499
5499
|
onPressEnter: O
|
|
5500
5500
|
}
|
|
5501
5501
|
),
|
|
@@ -5884,7 +5884,7 @@ function Tl({ onInsert: e, form: t, formField: n = "responseTemplate" }) {
|
|
|
5884
5884
|
}
|
|
5885
5885
|
const { TextArea: Nn } = B, { Text: Ee, Paragraph: co } = pe;
|
|
5886
5886
|
function kl({ open: e, onClose: t, onSuccess: n, envOptions: r = [] }) {
|
|
5887
|
-
const [s, o] = $(""), [i, c] = $(null), [l, d] = $(null), [u, h] = $(!1), [m, C] = $(null), [O, _] = $(!1), [x,
|
|
5887
|
+
const [s, o] = $(""), [i, c] = $(null), [l, d] = $(null), [u, h] = $(!1), [m, C] = $(null), [O, _] = $(!1), [x, b] = $("import"), [A] = N.useForm(), [k] = N.useForm(), P = () => {
|
|
5888
5888
|
o(""), c(null), d(null), C(null), A.resetFields(), k.resetFields();
|
|
5889
5889
|
}, T = () => {
|
|
5890
5890
|
P(), t();
|
|
@@ -6060,7 +6060,7 @@ function kl({ open: e, onClose: t, onSuccess: n, envOptions: r = [] }) {
|
|
|
6060
6060
|
Xe,
|
|
6061
6061
|
{
|
|
6062
6062
|
activeKey: x,
|
|
6063
|
-
onChange:
|
|
6063
|
+
onChange: b,
|
|
6064
6064
|
style: { marginTop: 16 },
|
|
6065
6065
|
items: [
|
|
6066
6066
|
{
|
|
@@ -6130,7 +6130,7 @@ function lo(e) {
|
|
|
6130
6130
|
}
|
|
6131
6131
|
const { TextArea: Un } = B;
|
|
6132
6132
|
function Il({ open: e, onClose: t, onSuccess: n, envOptions: r = [] }) {
|
|
6133
|
-
const [s, o] = $("paste"), [i, c] = $(""), [l, d] = $(null), [u, h] = $(null), [m, C] = $(!1), [O, _] = $([]), [x,
|
|
6133
|
+
const [s, o] = $("paste"), [i, c] = $(""), [l, d] = $(null), [u, h] = $(null), [m, C] = $(!1), [O, _] = $([]), [x, b] = $(!1), [A] = N.useForm(), k = Fn(null), P = () => {
|
|
6134
6134
|
c(""), d(null), h(null), _([]), A.resetFields();
|
|
6135
6135
|
}, T = () => {
|
|
6136
6136
|
P(), t();
|
|
@@ -6183,7 +6183,7 @@ function Il({ open: e, onClose: t, onSuccess: n, envOptions: r = [] }) {
|
|
|
6183
6183
|
} catch {
|
|
6184
6184
|
return;
|
|
6185
6185
|
}
|
|
6186
|
-
|
|
6186
|
+
b(!0);
|
|
6187
6187
|
try {
|
|
6188
6188
|
const G = (l.endpoints || []).map((W, an) => ({
|
|
6189
6189
|
method: W.method,
|
|
@@ -6202,7 +6202,7 @@ function Il({ open: e, onClose: t, onSuccess: n, envOptions: r = [] }) {
|
|
|
6202
6202
|
} catch (G) {
|
|
6203
6203
|
v.error(String((G == null ? void 0 : G.message) || G));
|
|
6204
6204
|
} finally {
|
|
6205
|
-
|
|
6205
|
+
b(!1);
|
|
6206
6206
|
}
|
|
6207
6207
|
}, L = [
|
|
6208
6208
|
{
|
|
@@ -6284,7 +6284,7 @@ function Il({ open: e, onClose: t, onSuccess: n, envOptions: r = [] }) {
|
|
|
6284
6284
|
" 上传文件"
|
|
6285
6285
|
] }),
|
|
6286
6286
|
children: /* @__PURE__ */ p(
|
|
6287
|
-
|
|
6287
|
+
br.Dragger,
|
|
6288
6288
|
{
|
|
6289
6289
|
ref: k,
|
|
6290
6290
|
accept: ".json,.yaml,.yml,application/json,text/yaml",
|
|
@@ -6424,7 +6424,7 @@ function ho() {
|
|
|
6424
6424
|
}
|
|
6425
6425
|
}
|
|
6426
6426
|
});
|
|
6427
|
-
},
|
|
6427
|
+
}, b = async (I) => {
|
|
6428
6428
|
try {
|
|
6429
6429
|
const w = await H.post(`/subscribe/subscription/${I}/enable`);
|
|
6430
6430
|
w && w.success !== !1 ? (v.success("已启用"), _()) : v.error((w == null ? void 0 : w.message) || "启用失败");
|
|
@@ -6634,7 +6634,7 @@ function ho() {
|
|
|
6634
6634
|
type: "link",
|
|
6635
6635
|
size: "small",
|
|
6636
6636
|
icon: /* @__PURE__ */ a(en, {}),
|
|
6637
|
-
onClick: () =>
|
|
6637
|
+
onClick: () => b(w.id),
|
|
6638
6638
|
children: "启用"
|
|
6639
6639
|
}
|
|
6640
6640
|
),
|
|
@@ -6872,7 +6872,7 @@ const yo = [
|
|
|
6872
6872
|
{ value: "BEARER", label: "Bearer (Authorization: Bearer xxx)" },
|
|
6873
6873
|
{ value: "API_KEY", label: "API Key (Authorization: xxx)" },
|
|
6874
6874
|
{ value: "BASIC", label: "Basic (user:password base64)" }
|
|
6875
|
-
],
|
|
6875
|
+
], bo = [
|
|
6876
6876
|
{ label: "每 5 分钟", value: "0 */5 * * * ?" },
|
|
6877
6877
|
{ label: "每 15 分钟", value: "0 */15 * * * ?" },
|
|
6878
6878
|
{ label: "每小时", value: "0 0 * * * ?" },
|
|
@@ -6882,7 +6882,7 @@ const yo = [
|
|
|
6882
6882
|
function Ln() {
|
|
6883
6883
|
const { id: e } = qn(), t = Ye(), n = !!e, [r] = N.useForm(), [s, o] = $(!1), [i, c] = $(!1), [l, d] = $([]), [u, h] = $([]), m = N.useWatch("sourceType", r), C = N.useWatch("extractorType", r), O = N.useWatch("authType", r);
|
|
6884
6884
|
Y(() => {
|
|
6885
|
-
_(), x(), n &&
|
|
6885
|
+
_(), x(), n && b();
|
|
6886
6886
|
}, [e]);
|
|
6887
6887
|
const _ = async () => {
|
|
6888
6888
|
try {
|
|
@@ -6896,7 +6896,7 @@ function Ln() {
|
|
|
6896
6896
|
h(Array.isArray(P) ? P.filter((T) => T.status === 1) : []);
|
|
6897
6897
|
} catch {
|
|
6898
6898
|
}
|
|
6899
|
-
},
|
|
6899
|
+
}, b = async () => {
|
|
6900
6900
|
o(!0);
|
|
6901
6901
|
try {
|
|
6902
6902
|
const k = await H.get(`/subscribe/subscription/${e}`), P = (k == null ? void 0 : k.data) ?? k;
|
|
@@ -6942,7 +6942,7 @@ function Ln() {
|
|
|
6942
6942
|
] })
|
|
6943
6943
|
}
|
|
6944
6944
|
),
|
|
6945
|
-
/* @__PURE__ */ a(F, { children: /* @__PURE__ */ a(
|
|
6945
|
+
/* @__PURE__ */ a(F, { children: /* @__PURE__ */ a(St, { spinning: s, children: /* @__PURE__ */ p(
|
|
6946
6946
|
N,
|
|
6947
6947
|
{
|
|
6948
6948
|
form: r,
|
|
@@ -7057,7 +7057,7 @@ function Ln() {
|
|
|
7057
7057
|
{
|
|
7058
7058
|
style: { width: 140 },
|
|
7059
7059
|
placeholder: "常用",
|
|
7060
|
-
options:
|
|
7060
|
+
options: bo,
|
|
7061
7061
|
onChange: (k) => r.setFieldValue("cronExpr", k),
|
|
7062
7062
|
value: null
|
|
7063
7063
|
}
|
|
@@ -7094,7 +7094,7 @@ function Ln() {
|
|
|
7094
7094
|
) }) })
|
|
7095
7095
|
] });
|
|
7096
7096
|
}
|
|
7097
|
-
const
|
|
7097
|
+
const So = {
|
|
7098
7098
|
PENDING: "default",
|
|
7099
7099
|
RUNNING: "processing",
|
|
7100
7100
|
SUCCESS: "green",
|
|
@@ -7134,7 +7134,7 @@ function wo() {
|
|
|
7134
7134
|
} catch {
|
|
7135
7135
|
v.error("加载抽取项失败");
|
|
7136
7136
|
}
|
|
7137
|
-
}, _ = s.reduce((A, k) => A + (k.successCount || 0), 0), x = s.reduce((A, k) => A + (k.deadLetterCount || 0), 0),
|
|
7137
|
+
}, _ = s.reduce((A, k) => A + (k.successCount || 0), 0), x = s.reduce((A, k) => A + (k.deadLetterCount || 0), 0), b = s.reduce((A, k) => A + (k.duplicateCount || 0), 0);
|
|
7138
7138
|
return /* @__PURE__ */ p("div", { children: [
|
|
7139
7139
|
/* @__PURE__ */ a(
|
|
7140
7140
|
Ne,
|
|
@@ -7182,7 +7182,7 @@ function wo() {
|
|
|
7182
7182
|
styles: { content: { color: "#cf1322" } }
|
|
7183
7183
|
}
|
|
7184
7184
|
) }) }),
|
|
7185
|
-
/* @__PURE__ */ a(D, { span: 6, children: /* @__PURE__ */ a(F, { children: /* @__PURE__ */ a(X, { title: "重复跳过", value:
|
|
7185
|
+
/* @__PURE__ */ a(D, { span: 6, children: /* @__PURE__ */ a(F, { children: /* @__PURE__ */ a(X, { title: "重复跳过", value: b }) }) })
|
|
7186
7186
|
] }),
|
|
7187
7187
|
/* @__PURE__ */ p(se, { gutter: 16, children: [
|
|
7188
7188
|
/* @__PURE__ */ a(D, { span: 12, children: /* @__PURE__ */ a(
|
|
@@ -7214,7 +7214,7 @@ function wo() {
|
|
|
7214
7214
|
title: "状态",
|
|
7215
7215
|
dataIndex: "status",
|
|
7216
7216
|
width: 80,
|
|
7217
|
-
render: (A) => /* @__PURE__ */ a(E, { color:
|
|
7217
|
+
render: (A) => /* @__PURE__ */ a(E, { color: So[A], children: A })
|
|
7218
7218
|
},
|
|
7219
7219
|
{
|
|
7220
7220
|
title: "拉取/成功/死信",
|
|
@@ -7445,9 +7445,9 @@ function Co() {
|
|
|
7445
7445
|
const P = t.get("subscriptionId"), T = t.get("itemIds");
|
|
7446
7446
|
P && (x(Number(P)), n.setFieldValue("sourceSubscriptionId", Number(P)), A(P)), T && O(T.split(",").map(Number).filter(Boolean));
|
|
7447
7447
|
}, [t]), Y(() => {
|
|
7448
|
-
|
|
7448
|
+
b();
|
|
7449
7449
|
}, []);
|
|
7450
|
-
const
|
|
7450
|
+
const b = async () => {
|
|
7451
7451
|
try {
|
|
7452
7452
|
const P = await H.get("/subscribe/subscription/list"), T = (P == null ? void 0 : P.data) ?? P ?? [];
|
|
7453
7453
|
l(Array.isArray(T) ? T.filter((M) => M.status === "VERIFIED") : []);
|
|
@@ -7538,7 +7538,7 @@ function Co() {
|
|
|
7538
7538
|
)
|
|
7539
7539
|
}
|
|
7540
7540
|
),
|
|
7541
|
-
_ && /* @__PURE__ */ p(
|
|
7541
|
+
_ && /* @__PURE__ */ p(St, { spinning: h, children: [
|
|
7542
7542
|
/* @__PURE__ */ p("div", { style: { marginBottom: 8 }, children: [
|
|
7543
7543
|
/* @__PURE__ */ p(E, { color: "blue", children: [
|
|
7544
7544
|
"已选 ",
|
|
@@ -7658,16 +7658,16 @@ function $o() {
|
|
|
7658
7658
|
const _ = i.trim();
|
|
7659
7659
|
c(""), d(!0);
|
|
7660
7660
|
const x = { seq: -1, role: "USER", content: _, createdAt: (/* @__PURE__ */ new Date()).toISOString() };
|
|
7661
|
-
o((
|
|
7661
|
+
o((b) => [...b, x]);
|
|
7662
7662
|
try {
|
|
7663
|
-
const
|
|
7664
|
-
if (
|
|
7665
|
-
const k = (
|
|
7663
|
+
const b = await H.post(`/project/${e}/chat`, { message: _ });
|
|
7664
|
+
if (b && b.success !== !1) {
|
|
7665
|
+
const k = (b.data ?? b).message;
|
|
7666
7666
|
o((P) => [...P.filter((M) => M.seq !== -1), ...k ? [k] : []]), setTimeout(h, 100);
|
|
7667
7667
|
} else
|
|
7668
|
-
v.error((
|
|
7669
|
-
} catch (
|
|
7670
|
-
v.error("发送失败: " + ((
|
|
7668
|
+
v.error((b == null ? void 0 : b.message) || "发送失败");
|
|
7669
|
+
} catch (b) {
|
|
7670
|
+
v.error("发送失败: " + ((b == null ? void 0 : b.message) || ""));
|
|
7671
7671
|
} finally {
|
|
7672
7672
|
d(!1);
|
|
7673
7673
|
}
|
|
@@ -7679,7 +7679,7 @@ function $o() {
|
|
|
7679
7679
|
v.error("操作失败");
|
|
7680
7680
|
}
|
|
7681
7681
|
};
|
|
7682
|
-
if (!n) return /* @__PURE__ */ a("div", { style: { padding: 24 }, children: /* @__PURE__ */ a(
|
|
7682
|
+
if (!n) return /* @__PURE__ */ a("div", { style: { padding: 24 }, children: /* @__PURE__ */ a(St, {}) });
|
|
7683
7683
|
const O = Ao[n.status] || { color: "default", text: n.status };
|
|
7684
7684
|
return /* @__PURE__ */ p("div", { style: { padding: 24, height: "calc(100vh - 64px)", display: "flex", flexDirection: "column", gap: 16 }, children: [
|
|
7685
7685
|
/* @__PURE__ */ p(
|
|
@@ -7723,17 +7723,17 @@ function $o() {
|
|
|
7723
7723
|
style: { flex: 1, display: "flex", flexDirection: "column" },
|
|
7724
7724
|
styles: { body: { flex: 1, display: "flex", flexDirection: "column", padding: 0 } },
|
|
7725
7725
|
children: [
|
|
7726
|
-
/* @__PURE__ */ a("div", { ref: u, style: { flex: 1, overflow: "auto", padding: 16, background: "#fafafa" }, children: s.length === 0 ? /* @__PURE__ */ a(
|
|
7726
|
+
/* @__PURE__ */ a("div", { ref: u, style: { flex: 1, overflow: "auto", padding: 16, background: "#fafafa" }, children: s.length === 0 ? /* @__PURE__ */ a(Sr, { description: "还没有消息, 跟 Agent 说点什么?" }) : /* @__PURE__ */ p(U, { orientation: "vertical", style: { width: "100%" }, size: "middle", children: [
|
|
7727
7727
|
s.map((_) => {
|
|
7728
|
-
const x = Dn[_.role] || Dn.SYSTEM,
|
|
7728
|
+
const x = Dn[_.role] || Dn.SYSTEM, b = _.role === "USER";
|
|
7729
7729
|
return /* @__PURE__ */ a("div", { style: {
|
|
7730
7730
|
display: "flex",
|
|
7731
|
-
justifyContent:
|
|
7731
|
+
justifyContent: b ? "flex-end" : "flex-start"
|
|
7732
7732
|
}, children: /* @__PURE__ */ p("div", { style: {
|
|
7733
7733
|
maxWidth: "70%",
|
|
7734
|
-
background:
|
|
7735
|
-
color:
|
|
7736
|
-
border:
|
|
7734
|
+
background: b ? "#1677ff" : "#fff",
|
|
7735
|
+
color: b ? "#fff" : "#000",
|
|
7736
|
+
border: b ? "none" : "1px solid #e8e8e8",
|
|
7737
7737
|
borderRadius: 8,
|
|
7738
7738
|
padding: "10px 14px",
|
|
7739
7739
|
boxShadow: "0 1px 2px rgba(0,0,0,0.04)"
|
|
@@ -7764,7 +7764,7 @@ function $o() {
|
|
|
7764
7764
|
borderRadius: 8,
|
|
7765
7765
|
padding: "10px 14px"
|
|
7766
7766
|
}, children: [
|
|
7767
|
-
/* @__PURE__ */ a(
|
|
7767
|
+
/* @__PURE__ */ a(St, { size: "small" }),
|
|
7768
7768
|
" 思考中..."
|
|
7769
7769
|
] }) })
|
|
7770
7770
|
] }) }),
|
|
@@ -7818,7 +7818,7 @@ function xo() {
|
|
|
7818
7818
|
const Al = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
7819
7819
|
__proto__: null,
|
|
7820
7820
|
default: xo
|
|
7821
|
-
}, Symbol.toStringTag, { value: "Module" })), vo = "# z-team-component\n\nz-team(团队工作台)的**跨仓唯一前端面**:把「多模式工作台 / 模式切换 / z-opc 业务套件聚合 / 订阅域 / 项目域」\n这一整套团队工作台页面收敛成一个可复用的 React 组件包,由主壳(z-opc 主前端)挂载。\n\n- **npm 包名**:`@yuku123/z-team-component`\n- **宿主接入**:双入口 —— `.`(`ZTeamApp` / `SubscribeApp` / `ProjectApp`)与 `./pages`(`routes` / `appMeta` / `menuItems`)\n- **后端**:与 z-opc 主壳同源的 `/api/**`(axios `baseURL = '/api'`,Cookie 模式 `withCredentials`)\n- **技术栈**:React 19 + antd 6 + react-router-dom 7 + vite(**library mode**,双入口 `index` / `pages`,\n 基座与全部 `@yuku123/*` 一律 **external**,由消费方用自己的 node_modules 解析)\n\n> ⚠ z-team 是**主壳的总控包**:它自己不承载某个业务域,而是把 z-opc 的业务套件(`/ctc/*`、`/ai/*`、`/config/*` …)\n> 聚合进工作台外壳里渲染。所以本文档描述的是 **z-team 自身的能力**(工作台 / 模式切换 / 套件聚合 / 订阅 / 项目)。\n\n---\n\n## 一、能力概览\n\n### 1.1 顶层路由(`src/pages-manifest.ts` 的 `routes`)\n\n| 路由 | 组件 | 能力 |\n|------|------|------|\n| `/team/subscribe` | `SubscribeApp` | 订阅域:订阅列表 / 编辑 / 运行历史 |\n| `/team/project` | `ProjectApp` | 项目域:项目列表 / 创建 / 详情 |\n| `/team/docs` | `ComponentDocPage` | 本文件渲染页(左侧 240px TOC + 右侧正文) |\n| `/team/:rest*` | `ZTeamApp` | **兜底**:`ZTeamApp` 内部按 `useLocation().pathname` 懒加载分发到下面 15 个域 |\n\n`menuItems`:`/team/subscribe`(订阅)/ `/team/project`(项目)/ `/team/workspace`(工作台)/ `/team/docs`(组件文档,末项)。\n\n### 1.2 `ZTeamApp` 顶层分发(`src/zteam-adapter/App.tsx`)\n\n| pathname | 渲染的域 | 源文件 |\n|----------|----------|--------|\n| `/workspace` | 工作台 | `src/zteam/pages/workspace/index.tsx` |\n| `/workspace/phone` | 移动端工作台 | `src/zteam/pages/workspace/phone/index.tsx` |\n| `/workspace/from-ticket` | 从工单进入 | `src/zteam/pages/workspace/from-ticket.tsx` |\n| `/workspace/from-scenario` | 从场景进入 | `src/zteam/pages/workspace/from-scenario.tsx` |\n| `/workspace/build-by-form` | 表单构建 | `src/zteam/pages/workspace/build-by-form.tsx` |\n| `/scenario` | 场景 | `src/zteam/pages/scenario/index.tsx` |\n| `/admin` | 管理后台(走工作台外壳的 admin 分支) | `src/zteam/pages/admin/index.tsx` |\n| `/welcome` | 产品介绍 | `src/zteam/pages/welcome/index.tsx` |\n| `/portal` | 场景入口 | `src/zteam/pages/portal/index.tsx` |\n| `/chatdemo` | 聊天演示 | `src/zteam/pages/chatdemo/index.tsx` |\n| `/embed/chat` | 嵌入式聊天 | `src/zteam/pages/embed/chat/index.tsx` |\n| `/change-log` | 变更记录 | `src/zteam/pages/change-log/index.tsx` |\n| `/docs` | **操作手册页**(52KB 手写暗色主题页,**与本文件的组件文档页不是一回事**) | `src/zteam/pages/docs/index.tsx` |\n\n`src/zteam/pages/` 下共 **14 个域目录**:`admin` / `agenthub-digital-brain-test` / `change-log` / `chatdemo` /\n`docs` / `download` / `embed` / `login` / `note` / `phone` / `portal` / `scenario` / `welcome` / `workspace`。\n其中 `agenthub-digital-brain-test` / `download` / `login` / `note` **没有** `ZTeamApp` 顶层分支,\n由域内路由或别的入口进入。\n\n> **2026-11-07:`rpa` 域目录已删除(RPA 入口整体下线)。** RPA 是脚本中心(z-script)的产品皮,\n> 前端 tab / `/rpa/*` 路由 / 页面全部移除,执行能力留在脚本中心继续增强;老链接 `/rpa/*` 由主壳重定向到 `/workspace`。\n\n### 1.3 工作台模式切换(`src/zteam/pages/workspace/utils/chatMode.ts`)\n\n`ChatMode` 共 12 种:`personal` / `collaboration` / `smart` / `product` / `dev` / `test` / `ops` / `admin` /\n`system` / `life` / `training` / `knowledge`(默认 `collaboration`)。\n\n模式切换统一走 `history.push` 到对应顶层路由(`Layout/index.tsx` 的 `handleModeSwitch`):\n\n| 模式 | 落点 |\n|------|------|\n| `system` | `/ctc/4a/account`(z-opc 业务路径;已在业务路径上时不重复跳) |\n| `test` | `/test/qa/dashboard` |\n| `admin` | `/admin?mode=admin` |\n| 其余模式 | `/workspace?mode=xxx`(必须带 `?desktop=1`,否则窄视口会被重定向到移动端工作台) |\n\n模式持久化在 URL query 上(`?mode=xxx`,`replaceState` 不污染历史记录);\n`/admin*` → `admin`、`/ops/*` → `ops`、`/lc/*` → `dev` 由 `readModeFromUrl()` 自动识别。\n\n### 1.4 套件聚合(`src/zteam/pages/workspace/components/Layout/SystemShell.tsx`)\n\n`SystemShell` 用一张 `SYSTEM_ROUTES` 表把 **z-opc 的业务套件**接进工作台的右侧内容区,\n用 `matchSystemPath()` 做 pathname 匹配(精确 → 通配 `*` / 参数 `:param`),支持 `/ctc/*`、`/ai/*`、`/config/*`、\n`/task/*`、`/workflow/*`、`/schedule/*`、`/mist/*`、`/meta/*`、`/msg/*`、`/rpc/*`、`/kb/*`、`/product/*`、`/ops/*` 等前缀。\n\n## 二、导出面\n\n```js\n// 主入口(. 桶):工作台主壳 + 订阅 / 项目域 + 公共设施\nimport ZTeamApp, {SubscribeApp, ProjectApp, history, isTokenExpired, ComponentDocPage}\n from '@yuku123/z-team-component'\n\n// 宿主组装面(./pages 桶):路由清单 + 菜单\nimport {routes, appMeta, menuItems, ComponentDocPage} from '@yuku123/z-team-component/pages'\n```\n\n- `routes`:`/team/subscribe`、`/team/project`、`/team/docs`、`/team/:rest*`(兜底)。\n- `appMeta`:`{ title: 'Z-OPC 一人公司基建', short: 'team' }`。\n- `ComponentDocPage`:组件文档页,**主入口与 `./pages` 桶都具名导出**(名字全仓统一,主壳按这个名字取)。\n\n## 三、API 端点\n\n请求实例由 `src/common/services/api.js` 的 axios 工厂创建:`baseURL = '/api'`(可用 `configureBaseURL()` 改),\n`timeout = 15000`,`withCredentials = true`(**Cookie 模式,不设 Authorization Header**)。\n下表路径是 `src/common/services/`、`src/services/`、`src/subscribe/services/`、`src/project/services/` 里\n**实际调用**的路径(已补上 `/api` 前缀)。\n\n| 方法 | 路径 | 说明 |\n|---|---|---|\n| POST | `/api/ctc/authn/login` | 登录 |\n| GET | `/api/ctc/authn/my-tenants` | 我的租户 |\n| POST | `/api/ctc/authn/select-tenant` | 选择租户 |\n| POST | `/api/ctc/authn/switch-tenant` | 切换租户 |\n| GET | `/api/ctc/app-menu/tree` | 应用菜单树 |\n| GET/POST | `/api/ctc/ac/invitations`、`/accept`、`/redeem`、`/leave` | 邀请(加入 / 兑换 / 退出) |\n| GET/POST | `/api/ctc/ac/invitations/members`、`/members/{memberId}/remove`、`/{id}/revoke` | 邀请成员管理 |\n| GET/POST/PUT/DELETE | `/api/agent/team/workspace`、`/workspace/{id}` | Agent 团队工作区 |\n| GET | `/api/agent/team/workspace/list`、`/file-tree-by-path`、`/file-content` | 工作区列表 / 文件树 / 文件内容 |\n| GET/POST/PUT/DELETE | `/api/agent/team/work-item`、`/work-item/{id}` | 工作项 |\n| GET | `/api/agent/team/conversation/{conversationId}/work-items` | 会话下的工作项 |\n| POST | `/api/agent/skill/register`、`/heartbeat`、`/pull`、`/sync-logs` | 技能注册 / 心跳 / 拉取 / 日志回传 |\n| POST/GET | `/api/agent/skill/bind`、`/unbind`、`/bindings` | 技能绑定 |\n| GET/POST/DELETE | `/api/agent/instance/list`、`/get`、`/create`、`/create-container`、`/create-external`、`/destroy-container`、`/destroy-local-process`、`/agent-types`、`/health`、`/status` | Agent 实例(容器 / 外部 / 本地进程) |\n| POST/GET | `/api/bot/feedback`、`/feedback/recent`、`/feedback/score` | Bot 反馈 |\n| GET | `/api/skill/get`、`/api/skill/page` | 技能查询 |\n| GET/POST | `/api/task`、`/task/list`、`/task/complete`、`/task/move`、`/task/project/list` | 任务 |\n| GET/POST | `/api/project`、`/api/project/archive`、`/api/project/user/list` | 项目 |\n| GET/POST/PUT/DELETE | `/api/mock-platform/{environments,endpoints,scenarios,cases,recordings,...}` | Mock 平台(`z-script-web` 的 `MockPlatformController`) |\n| GET | `/api/{name}/list`、`/api/{name}/page`、`/api/{name}/byId` | 通用 CRUD 工厂(`makeApi(name)`,`src/common/services/api.js`) |\n\n各服务模块另有自己的探活端点(`/api/agentTeam/health`、`/api/ctcAc/health`、`/api/ctcAcDomain/health`、\n`/api/ctcSurl/health`、`/api/ctcUser/health`、`/api/job/health`、`/api/metaApp/health`、\n`/api/privateConfig/health`、`/api/webide/health`)。\n\n## 四、页面说明\n\n### 4.1 工作台(`src/zteam/pages/workspace/`)\n\n工作台是本包最大的域,含 `Layout`(顶栏 + 模式切换 + 内容区)、`ProductWorkbench` / `SmartWorkbench` /\n`DevWorkbench` / `OpsWorkbench` 等工作台壳,以及聊天、笔记、代码编辑、知识图谱等通用组件。\n\n### 4.2 套件聚合壳(`SystemShell`)\n\n工作台的「系统」模式用它把 z-opc 业务页面(账号 / 角色 / 应用 / 租户 / 组织 / 权限 / 短链 / 字典 / 审计 /\nwebide / Agent / LLM / MCP / 技能 / OSS / 任务 / 流程 / 调度 / 密钥 / 运维 等)渲染进工作台右侧内容区,\n而不是回到 z-opc 旧 Layout。\n\n### 4.3 订阅域(`src/subscribe/pages/`)\n\n`SubscribeApp` + `SubscriptionList` / `SubscriptionEdit` / `RunHistory`:订阅的列表、编辑与运行历史。\n\n### 4.4 项目域(`src/project/pages/`)\n\n`ProjectApp` + `ProjectList` / `ProjectCreate` / `ProjectDetail`:项目的列表、创建与详情。\n\n### 4.5 组件文档\n\n本文件。内容以 `?raw` 在编译期内联,零额外请求;左侧 240px TOC 随滚动联动。\n渲染用基座的 `ComponentDoc`(`@yuku123/z-frontend-common/ui`),不在本包重写 TOC / 两栏 / 滚动联动。\n\n## 五、配置\n\n| 配置项 | 默认值 | 说明 |\n|---|---|---|\n| `configureBaseURL(baseURL)` | `'/api'` | 改写 axios `baseURL`(`src/common/services/api.js`) |\n| 请求 `timeout` | `15000` | axios 实例默认值 |\n| `withCredentials` | `true` | Cookie 模式;**不设 Authorization Header** |\n| vite `external` | 25 个精确包 + 4 条前缀规则 | `react` / `react-dom` / `antd` / `@ant-design/icons` / `@yuku123/*` / `@zopc-mock/*` / `echarts/*` / `highlight.js/*` 等一律 external,**消费方必须自备** |\n| vite alias | `@` → `src/`、`@zteam` → `src/zteam/` | 仅 standalone 构建用;打包后路径已解析 |\n| 模式 URL 参数 | `?mode=xxx` | 持久化在 query 上;`collaboration` 是默认值,不写入 URL |\n| `?desktop=1` | — | 强制桌面版工作台(窄视口默认跳 `/workspace/phone`) |\n\n## 六、已知限制\n\n- **`/team/docs` 目前没有可达路径**:主壳 `z-opc-main-starter-frontend/src/domainRoutes.ts` 的 `DOMAINS` 数组里\n **没有注册 z-team 域**(截至 2026-10-23),所以 z-team 的 `routes` 清单还没有被主壳消费。\n ⇒ 需要主控决定是否接线(注册 z-team 域,或在主壳里显式挂 `ComponentDocPage`)。\n- **`ZTeamApp` 内部没有 `/team/docs` 分支**:它按**绝对 pathname** 分发(`/workspace`、`/scenario`、`/docs` …),\n 未知路径兜底渲染工作台。所以即使走了 `/team/:rest*` 兜底路由,`/team/docs` 也会落进工作台而不是文档页。\n (`ZTeamApp` 不在本批次的改动范围内,需要单独接线。)\n- **已有另一个「文档页」**:`src/zteam/pages/docs/index.tsx` 是 52KB 的手写暗色主题**操作手册**页,\n 路由是 `/docs`。它与本 §7 的**组件文档页**不是一回事(内容、样式、来源都不同),别混淆。\n- **本仓没有 `tsconfig.json`,构建不做类型检查**(`npm run build` = `vite build` + 产物守卫脚本)。\n 基座只发 JS 不发 `.d.ts`,`src/z-frontend-common-ui.d.ts` 是手写的最小声明;\n 新增基座组件时要同步补声明(当前该声明文件里**还没有** `ComponentDoc`,因为本包的文档页走的是 `.jsx`,不参与类型检查)。\n- **组件包必须 external 基座**:`@yuku123/z-frontend-common/ui` 在 dist 里保持裸 import,\n 消费方(主壳)必须自己装基座,否则会出现两份 UI 主题。\n- **工作台下的部分工作台壳仍在改造中**(`ProductWorkbench` / `SmartWorkbench` 等),页面结构可能继续变,\n 本文档只描述到「域 + 顶层路由 + 模式」这一层,域内二级页面未逐页展开。\n- **请求是 Cookie 模式**:后端 `SsoInterceptor` 靠 `Accept` / `Content-Type` 判断「是不是 API 请求」,\n 裸 `fetch` 不带 `Accept` 会被当成页面访问而 302 跳登录页(构建产物有 `guard-fetch-accept.mjs` 守卫)。\n\n## 七、变更记录\n\n| 版本 | 变更 |\n|---|---|\n| 0.2.30(未发布) | 新增组件文档页 `ComponentDocPage`(lead 008 §7):`src/DOC.md` + 基座 `ComponentDoc` 薄包装 + 菜单末项 `/team/docs` |\n| 0.2.30 | 工作台模式体系(13 种 `ChatMode`)+ `SystemShell` 套件聚合 + 订阅 / 项目双域 |\n";
|
|
7821
|
+
}, Symbol.toStringTag, { value: "Module" })), vo = "# z-team-component\n\nz-team(团队工作台)的**跨仓唯一前端面**:把「多模式工作台 / 模式切换 / z-opc 业务套件聚合 / 订阅域 / 项目域」\n这一整套团队工作台页面收敛成一个可复用的 React 组件包,由主壳(z-opc 主前端)挂载。\n\n- **npm 包名**:`@yuku123/z-team-component`\n- **宿主接入**:双入口 —— `.`(`ZTeamApp` / `SubscribeApp` / `ProjectApp`)与 `./pages`(`routes` / `appMeta` / `menuItems`)\n- **后端**:与 z-opc 主壳同源的 `/api/**`(axios `baseURL = '/api'`,Cookie 模式 `withCredentials`)\n- **技术栈**:React 19 + antd 6 + react-router-dom 7 + vite(**library mode**,双入口 `index` / `pages`,\n 基座与全部 `@yuku123/*` 一律 **external**,由消费方用自己的 node_modules 解析)\n\n> ⚠ z-team 是**主壳的总控包**:它自己不承载某个业务域,而是把 z-opc 的业务套件(`/ctc/*`、`/ai/*`、`/config/*` …)\n> 聚合进工作台外壳里渲染。所以本文档描述的是 **z-team 自身的能力**(工作台 / 模式切换 / 套件聚合 / 订阅 / 项目)。\n\n---\n\n## 一、能力概览\n\n### 1.1 顶层路由(`src/pages-manifest.ts` 的 `routes`)\n\n| 路由 | 组件 | 能力 |\n|------|------|------|\n| `/team/subscribe` | `SubscribeApp` | 订阅域:订阅列表 / 编辑 / 运行历史 |\n| `/team/project` | `ProjectApp` | 项目域:项目列表 / 创建 / 详情 |\n| `/team/docs` | `ComponentDocPage` | 本文件渲染页(左侧 240px TOC + 右侧正文) |\n| `/team/:rest*` | `ZTeamApp` | **兜底**:`ZTeamApp` 内部按 `useLocation().pathname` 懒加载分发到下面 15 个域 |\n\n`menuItems`:`/team/subscribe`(订阅)/ `/team/project`(项目)/ `/team/workspace`(工作台)/ `/team/docs`(组件文档,末项)。\n\n### 1.2 `ZTeamApp` 顶层分发(`src/zteam-adapter/App.tsx`)\n\n| pathname | 渲染的域 | 源文件 |\n|----------|----------|--------|\n| `/workspace` | 工作台 | `src/zteam/pages/workspace/index.tsx` |\n| `/workspace/phone` | 移动端工作台 | `src/zteam/pages/workspace/phone/index.tsx` |\n| `/workspace/from-ticket` | 从工单进入 | `src/zteam/pages/workspace/from-ticket.tsx` |\n| `/workspace/from-scenario` | 从场景进入 | `src/zteam/pages/workspace/from-scenario.tsx` |\n| `/workspace/build-by-form` | 表单构建 | `src/zteam/pages/workspace/build-by-form.tsx` |\n| `/scenario` | 场景 | `src/zteam/pages/scenario/index.tsx` |\n| `/admin` | 管理后台(走工作台外壳的 admin 分支) | `src/zteam/pages/admin/index.tsx` |\n| `/welcome` | 产品介绍 | `src/zteam/pages/welcome/index.tsx` |\n| `/portal` | 场景入口 | `src/zteam/pages/portal/index.tsx` |\n| `/chatdemo` | 聊天演示 | `src/zteam/pages/chatdemo/index.tsx` |\n| `/embed/chat` | 嵌入式聊天 | `src/zteam/pages/embed/chat/index.tsx` |\n| `/change-log` | 变更记录 | `src/zteam/pages/change-log/index.tsx` |\n| `/docs` | **操作手册页**(52KB 手写暗色主题页,**与本文件的组件文档页不是一回事**) | `src/zteam/pages/docs/index.tsx` |\n\n`src/zteam/pages/` 下共 **14 个域目录**:`admin` / `agenthub-digital-brain-test` / `change-log` / `chatdemo` /\n`docs` / `download` / `embed` / `login` / `note` / `phone` / `portal` / `scenario` / `welcome` / `workspace`。\n其中 `agenthub-digital-brain-test` / `download` / `login` / `note` **没有** `ZTeamApp` 顶层分支,\n由域内路由或别的入口进入。\n\n> **2026-11-07:`rpa` 域目录已删除(RPA 入口整体下线)。** RPA 是脚本中心(z-script)的产品皮,\n> 前端 tab / `/rpa/*` 路由 / 页面全部移除,执行能力留在脚本中心继续增强;老链接 `/rpa/*` 由主壳重定向到 `/workspace`。\n\n### 1.3 工作台模式切换(`src/zteam/pages/workspace/utils/chatMode.ts`)\n\n`ChatMode` 共 12 种:`personal` / `collaboration` / `smart` / `product` / `dev` / `test` / `ops` / `admin` /\n`system` / `life` / `training` / `knowledge`(默认 `collaboration`)。\n\n模式切换统一走 `history.push` 到对应顶层路由(`Layout/index.tsx` 的 `handleModeSwitch`):\n\n| 模式 | 落点 |\n|------|------|\n| `system` | `/ctc/4a/account`(z-opc 业务路径;已在业务路径上时不重复跳) |\n| `test` | `/test/qa/dashboard` |\n| `admin` | `/admin?mode=admin` |\n| 其余模式 | `/workspace?mode=xxx`(必须带 `?desktop=1`,否则窄视口会被重定向到移动端工作台) |\n\n模式持久化在 URL query 上(`?mode=xxx`,`replaceState` 不污染历史记录);\n`/admin*` → `admin`、`/ops/*` → `ops`、`/lc/*` → `dev` 由 `readModeFromUrl()` 自动识别。\n\n### 1.4 套件聚合(`src/zteam/pages/workspace/components/Layout/SystemShell.tsx`)\n\n`SystemShell` 用一张 `SYSTEM_ROUTES` 表把 **z-opc 的业务套件**接进工作台的右侧内容区,\n用 `matchSystemPath()` 做 pathname 匹配(精确 → 通配 `*` / 参数 `:param`),支持 `/ctc/*`、`/ai/*`、`/config/*`、\n`/task/*`、`/workflow/*`、`/schedule/*`、`/mist/*`、`/meta/*`、`/msg/*`、`/rpc/*`、`/kb/*`、`/product/*`、`/ops/*` 等前缀。\n\n## 二、导出面\n\n```js\n// 主入口(. 桶):工作台主壳 + 订阅 / 项目域 + 公共设施\nimport ZTeamApp, {SubscribeApp, ProjectApp, history, isTokenExpired, ComponentDocPage}\n from '@yuku123/z-team-component'\n\n// 宿主组装面(./pages 桶):路由清单 + 菜单\nimport {routes, appMeta, menuItems, ComponentDocPage} from '@yuku123/z-team-component/pages'\n```\n\n- `routes`:`/team/subscribe`、`/team/project`、`/team/docs`、`/team/:rest*`(兜底)。\n- `appMeta`:`{ title: 'Z-OPC 一人公司基建', short: 'team' }`。\n- `ComponentDocPage`:组件文档页,**主入口与 `./pages` 桶都具名导出**(名字全仓统一,主壳按这个名字取)。\n\n## 三、API 端点\n\n请求实例由 `src/common/services/api.js` 的 axios 工厂创建:`baseURL = '/api'`(可用 `configureBaseURL()` 改),\n`timeout = 15000`,`withCredentials = true`(**Cookie 模式,不设 Authorization Header**)。\n下表路径是 `src/common/services/`、`src/services/`、`src/subscribe/services/`、`src/project/services/` 里\n**实际调用**的路径(已补上 `/api` 前缀)。\n\n| 方法 | 路径 | 说明 |\n|---|---|---|\n| POST | `/api/ctc/authn/login` | 登录 |\n| GET | `/api/ctc/authn/my-tenants` | 我的租户 |\n| POST | `/api/ctc/authn/select-tenant` | 选择租户 |\n| POST | `/api/ctc/authn/switch-tenant` | 切换租户 |\n| GET | `/api/ctc/app-menu/tree` | 应用菜单树 |\n| GET/POST | `/api/ctc/ac/invitations`、`/accept`、`/redeem`、`/leave` | 邀请(加入 / 兑换 / 退出) |\n| GET/POST | `/api/ctc/ac/invitations/members`、`/members/{memberId}/remove`、`/{id}/revoke` | 邀请成员管理 |\n| GET/POST/PUT/DELETE | `/api/agent/team/workspace`、`/workspace/{id}` | Agent 团队工作区 |\n| GET | `/api/agent/team/workspace/list`、`/file-tree-by-path`、`/file-content` | 工作区列表 / 文件树 / 文件内容 |\n| GET/POST/PUT/DELETE | `/api/agent/team/work-item`、`/work-item/{id}` | 工作项 |\n| GET | `/api/agent/team/conversation/{conversationId}/work-items` | 会话下的工作项 |\n| POST | `/api/agent/skill/register`、`/heartbeat`、`/pull`、`/sync-logs` | 技能注册 / 心跳 / 拉取 / 日志回传 |\n| POST/GET | `/api/agent/skill/bind`、`/unbind`、`/bindings` | 技能绑定 |\n| GET/POST/DELETE | `/api/agent/instance/list`、`/get`、`/create`、`/create-container`、`/create-external`、`/destroy-container`、`/destroy-local-process`、`/agent-types`、`/health`、`/status` | Agent 实例(容器 / 外部 / 本地进程) |\n| POST/GET | `/api/bot/feedback`、`/feedback/recent`、`/feedback/score` | Bot 反馈 |\n| GET | `/api/skill/get`、`/api/skill/page` | 技能查询 |\n| GET/POST | `/api/task`、`/task/list`、`/task/complete`、`/task/move`、`/task/project/list` | 任务 |\n| GET/POST | `/api/project`、`/api/project/archive`、`/api/project/user/list` | 项目 |\n| GET/POST/PUT/DELETE | `/api/mock-platform/{environments,endpoints,scenarios,cases,recordings,...}` | Mock 平台(`z-script-web` 的 `MockPlatformController`) |\n| GET | `/api/{name}/list`、`/api/{name}/page`、`/api/{name}/byId` | 通用 CRUD 工厂(`makeApi(name)`,`src/common/services/api.js`) |\n\n各服务模块另有自己的探活端点(`/api/agentTeam/health`、`/api/ctcAc/health`、`/api/ctcAcDomain/health`、\n`/api/ctcSurl/health`、`/api/ctcUser/health`、`/api/job/health`、`/api/metaApp/health`、\n`/api/privateConfig/health`、`/api/webide/health`)。\n\n## 四、页面说明\n\n### 4.1 工作台(`src/zteam/pages/workspace/`)\n\n工作台是本包最大的域,含 `Layout`(顶栏 + 模式切换 + 内容区)、`ProductWorkbench` / `SmartWorkbench` /\n`DevWorkbench` / `OpsWorkbench` 等工作台壳,以及聊天、笔记、代码编辑、知识图谱等通用组件。\n\n### 4.2 套件聚合壳(`SystemShell`)\n\n工作台的「系统」模式用它把 z-opc 业务页面(账号 / 角色 / 应用 / 租户 / 组织 / 权限 / 短链 / 字典 / 审计 /\nwebide / Agent / LLM / MCP / 技能 / OSS / 任务 / 流程 / 调度 / 密钥 / 运维 等)渲染进工作台右侧内容区,\n而不是回到 z-opc 旧 Layout。\n\n### 4.3 订阅域(`src/subscribe/pages/`)\n\n`SubscribeApp` + `SubscriptionList` / `SubscriptionEdit` / `RunHistory`:订阅的列表、编辑与运行历史。\n\n### 4.4 项目域(`src/project/pages/`)\n\n`ProjectApp` + `ProjectList` / `ProjectCreate` / `ProjectDetail`:项目的列表、创建与详情。\n\n### 4.5 组件文档\n\n本文件。内容以 `?raw` 在编译期内联,零额外请求;左侧 240px TOC 随滚动联动。\n渲染用基座的 `ComponentDoc`(`@yuku123/z-frontend-common/ui`),不在本包重写 TOC / 两栏 / 滚动联动。\n\n## 五、配置\n\n| 配置项 | 默认值 | 说明 |\n|---|---|---|\n| `configureBaseURL(baseURL)` | `'/api'` | 改写 axios `baseURL`(`src/common/services/api.js`) |\n| 请求 `timeout` | `15000` | axios 实例默认值 |\n| `withCredentials` | `true` | Cookie 模式;**不设 Authorization Header** |\n| vite `external` | 25 个精确包 + 4 条前缀规则 | `react` / `react-dom` / `antd` / `@ant-design/icons` / `@yuku123/*` / `@zopc-mock/*` / `echarts/*` / `highlight.js/*` 等一律 external,**消费方必须自备** |\n| vite alias | `@` → `src/`、`@zteam` → `src/zteam/` | 仅 standalone 构建用;打包后路径已解析 |\n| 模式 URL 参数 | `?mode=xxx` | 持久化在 query 上;`collaboration` 是默认值,不写入 URL |\n| `?desktop=1` | — | 强制桌面版工作台(窄视口默认跳 `/workspace/phone`) |\n\n## 六、已知限制\n\n- **`/team/docs` 目前没有可达路径**:主壳 `z-opc-main-starter-frontend/src/domainRoutes.ts` 的 `DOMAINS` 数组里\n **没有注册 z-team 域**(截至 2026-10-23),所以 z-team 的 `routes` 清单还没有被主壳消费。\n ⇒ 需要主控决定是否接线(注册 z-team 域,或在主壳里显式挂 `ComponentDocPage`)。\n- **`ZTeamApp` 内部没有 `/team/docs` 分支**:它按**绝对 pathname** 分发(`/workspace`、`/scenario`、`/docs` …),\n 未知路径兜底渲染工作台。所以即使走了 `/team/:rest*` 兜底路由,`/team/docs` 也会落进工作台而不是文档页。\n (`ZTeamApp` 不在本批次的改动范围内,需要单独接线。)\n- **已有另一个「文档页」**:`src/zteam/pages/docs/index.tsx` 是 52KB 的手写暗色主题**操作手册**页,\n 路由是 `/docs`。它与本 §7 的**组件文档页**不是一回事(内容、样式、来源都不同),别混淆。\n- **本仓没有 `tsconfig.json`,构建不做类型检查**(`npm run build` = `vite build` + 产物守卫脚本)。\n 基座只发 JS 不发 `.d.ts`,`src/z-frontend-common-ui.d.ts` 是手写的最小声明;\n 新增基座组件时要同步补声明(当前该声明文件里**还没有** `ComponentDoc`,因为本包的文档页走的是 `.jsx`,不参与类型检查)。\n- **组件包必须 external 基座**:`@yuku123/z-frontend-common/ui` 在 dist 里保持裸 import,\n 消费方(主壳)必须自己装基座,否则会出现两份 UI 主题。\n- **工作台下的部分工作台壳仍在改造中**(`ProductWorkbench` / `SmartWorkbench` 等),页面结构可能继续变,\n 本文档只描述到「域 + 顶层路由 + 模式」这一层,域内二级页面未逐页展开。\n- **请求是 Cookie 模式**:后端 `SsoInterceptor` 靠 `Accept` / `Content-Type` 判断「是不是 API 请求」,\n 裸 `fetch` 不带 `Accept` 会被当成页面访问而 302 跳登录页(构建产物有 `guard-fetch-accept.mjs` 守卫)。\n\n## 七、变更记录\n\n| 版本 | 变更 |\n|---|---|\n| 0.2.96 | 协作壳本地车道(合并第 3 步):`hooks/useLocalLane.ts`(30s 轮询 + web 隧道 / Tauri 直连),Sidebar 单聊分区并列「本机任务」组(`ft_exclusive_force_desktop=1` 浏览器可验桌面链路),CollabPersonalHost chat 视图按 lane 渲染 LocalChatArea / PersonalChatArea |\n| 0.2.93 | 顶部「个人」tab 下线(协作侧栏单聊分区已承载个人会话);RPA 前端入口整体下线(ChatMode 移除 rpa / Layout tab 分支 / `/rpa/*` 路由 → 主壳重定向 `/workspace`;RpaShell 与 `pages/rpa/` 删除),执行能力留在脚本中心 |\n| 0.2.30(未发布) | 新增组件文档页 `ComponentDocPage`(lead 008 §7):`src/DOC.md` + 基座 `ComponentDoc` 薄包装 + 菜单末项 `/team/docs` |\n| 0.2.30 | 工作台模式体系(13 种 `ChatMode`)+ `SystemShell` 套件聚合 + 订阅 / 项目双域 |\n";
|
|
7822
7822
|
function $l() {
|
|
7823
7823
|
return /* @__PURE__ */ a(Kr, { markdown: vo, title: "组件文档 — Z-OPC 一人公司基建" });
|
|
7824
7824
|
}
|
|
@@ -7830,7 +7830,7 @@ export {
|
|
|
7830
7830
|
io as D,
|
|
7831
7831
|
Wt as E,
|
|
7832
7832
|
Tl as F,
|
|
7833
|
-
|
|
7833
|
+
Sl as G,
|
|
7834
7834
|
oo as H,
|
|
7835
7835
|
to as I,
|
|
7836
7836
|
ro as J,
|
|
@@ -7852,7 +7852,7 @@ export {
|
|
|
7852
7852
|
gl as Z,
|
|
7853
7853
|
Ei as _,
|
|
7854
7854
|
ke as a,
|
|
7855
|
-
|
|
7855
|
+
ba as a$,
|
|
7856
7856
|
Ri as a0,
|
|
7857
7857
|
Mi as a1,
|
|
7858
7858
|
ji as a2,
|
|
@@ -7865,7 +7865,7 @@ export {
|
|
|
7865
7865
|
Ti as a9,
|
|
7866
7866
|
it as aA,
|
|
7867
7867
|
kt as aB,
|
|
7868
|
-
|
|
7868
|
+
Sn as aC,
|
|
7869
7869
|
ai as aD,
|
|
7870
7870
|
qo as aE,
|
|
7871
7871
|
Ls as aF,
|
|
@@ -7891,7 +7891,7 @@ export {
|
|
|
7891
7891
|
el as aZ,
|
|
7892
7892
|
nl as a_,
|
|
7893
7893
|
ms as aa,
|
|
7894
|
-
|
|
7894
|
+
Sc as ab,
|
|
7895
7895
|
pi as ac,
|
|
7896
7896
|
uc as ad,
|
|
7897
7897
|
fc as ae,
|
|
@@ -7916,7 +7916,7 @@ export {
|
|
|
7916
7916
|
Di as ax,
|
|
7917
7917
|
Vc as ay,
|
|
7918
7918
|
fi as az,
|
|
7919
|
-
|
|
7919
|
+
bl as b,
|
|
7920
7920
|
Hc as b$,
|
|
7921
7921
|
al as b0,
|
|
7922
7922
|
sl as b1,
|
|
@@ -7967,18 +7967,18 @@ export {
|
|
|
7967
7967
|
ci as bj,
|
|
7968
7968
|
ll as bk,
|
|
7969
7969
|
f as bl,
|
|
7970
|
-
|
|
7970
|
+
bn as bm,
|
|
7971
7971
|
Ts as bn,
|
|
7972
7972
|
as as bo,
|
|
7973
|
-
|
|
7973
|
+
bc as bp,
|
|
7974
7974
|
tc as bq,
|
|
7975
7975
|
ui as br,
|
|
7976
7976
|
mc as bs,
|
|
7977
7977
|
ul as bt,
|
|
7978
7978
|
or as bu,
|
|
7979
7979
|
Bo as bv,
|
|
7980
|
-
|
|
7981
|
-
|
|
7980
|
+
bi as bw,
|
|
7981
|
+
Si as bx,
|
|
7982
7982
|
wi as by,
|
|
7983
7983
|
yi as bz,
|
|
7984
7984
|
we as c,
|