@yuku123/z-team-component 0.2.30 → 0.2.32

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.
@@ -0,0 +1,637 @@
1
+ import { jsxs as p, jsx as e } from "react/jsx-runtime";
2
+ import { useNavigate as B, useLocation as f, Navigate as l } from "react-router-dom";
3
+ import { useMemo as S, useState as M, Suspense as X, lazy as u } from "react";
4
+ import { DownOutlined as O, RightOutlined as N, AppstoreOutlined as W, UserOutlined as ee, SafetyCertificateOutlined as L, CloudOutlined as D, DeploymentUnitOutlined as z, AuditOutlined as T, CodeOutlined as w, FolderOpenOutlined as te, DesktopOutlined as U, DashboardOutlined as y, ProfileOutlined as x, BookOutlined as ne, ApartmentOutlined as ae, FileImageOutlined as oe, FileTextOutlined as A, CalendarOutlined as b, ApiOutlined as ce, ProjectOutlined as F, ClusterOutlined as le, DatabaseOutlined as se, TeamOutlined as pe, BarChartOutlined as H } from "@ant-design/icons";
5
+ import { ProductApp as ie } from "@yuku123/z-product-component";
6
+ const re = "_container_wbul9_7", me = "_sidebar_wbul9_17", ue = "_menuList_wbul9_37", de = "_menuGroup_wbul9_44", he = "_menuGroupHeader_wbul9_48", be = "_menuGroupIcon_wbul9_66", ge = "_menuGroupLabel_wbul9_75", _e = "_menuGroupArrow_wbul9_80", ke = "_menuSubList_wbul9_87", ye = "_menuSubItem_wbul9_93", Se = "_menuSubItemActive_wbul9_110", Ae = "_menuSubItemIcon_wbul9_117", we = "_menuSubGroup_wbul9_132", ve = "_menuSubGroupHeader_wbul9_136", De = "_menuSubGroupHeaderActive_wbul9_154", Pe = "_menuSubGroupLabel_wbul9_158", fe = "_main_wbul9_169", Ce = "_detailPanel_wbul9_179", Ge = "_detailHeader_wbul9_189", Ie = "_detailIcon_wbul9_196", Me = "_detailTitle_wbul9_209", Oe = "_detailDesc_wbul9_216", Ne = "_detailAction_wbul9_223", Le = "_goBtn_wbul9_228", ze = "_emptyState_wbul9_248", a = {
7
+ container: re,
8
+ sidebar: me,
9
+ menuList: ue,
10
+ menuGroup: de,
11
+ menuGroupHeader: he,
12
+ menuGroupIcon: be,
13
+ menuGroupLabel: ge,
14
+ menuGroupArrow: _e,
15
+ menuSubList: ke,
16
+ menuSubItem: ye,
17
+ menuSubItemActive: Se,
18
+ menuSubItemIcon: Ae,
19
+ menuSubGroup: we,
20
+ menuSubGroupHeader: ve,
21
+ menuSubGroupHeaderActive: De,
22
+ menuSubGroupLabel: Pe,
23
+ main: fe,
24
+ detailPanel: Ce,
25
+ detailHeader: Ge,
26
+ detailIcon: Ie,
27
+ detailTitle: Me,
28
+ detailDesc: Oe,
29
+ detailAction: Ne,
30
+ goBtn: Le,
31
+ emptyState: ze
32
+ };
33
+ function P(c) {
34
+ return c.flatMap((s) => [s, ...P(s.children ?? [])]);
35
+ }
36
+ const Te = {
37
+ title: "测试中心",
38
+ icon: /* @__PURE__ */ e(y, {}),
39
+ items: [
40
+ {
41
+ key: "test-dashboard",
42
+ label: "测试总览",
43
+ icon: /* @__PURE__ */ e(y, {}),
44
+ path: "/test/qa/dashboard",
45
+ desc: "测试统计、趋势与套件健康度"
46
+ },
47
+ {
48
+ key: "test-design",
49
+ label: "用例与编排",
50
+ icon: /* @__PURE__ */ e(A, {}),
51
+ children: [
52
+ {
53
+ key: "test-case",
54
+ label: "测试用例",
55
+ icon: /* @__PURE__ */ e(A, {}),
56
+ path: "/test/qa/cases",
57
+ desc: "接口用例与断言模板"
58
+ },
59
+ {
60
+ key: "test-suite",
61
+ label: "测试套件",
62
+ icon: /* @__PURE__ */ e(le, {}),
63
+ path: "/test/qa/suites",
64
+ desc: "步骤编排与变量传递"
65
+ },
66
+ {
67
+ key: "test-plan",
68
+ label: "测试计划",
69
+ icon: /* @__PURE__ */ e(F, {}),
70
+ path: "/test/qa/plans",
71
+ desc: "套件组合与环境绑定"
72
+ }
73
+ ]
74
+ },
75
+ {
76
+ key: "test-exec",
77
+ label: "执行与调度",
78
+ icon: /* @__PURE__ */ e(b, {}),
79
+ children: [
80
+ {
81
+ key: "test-run",
82
+ label: "执行记录",
83
+ icon: /* @__PURE__ */ e(b, {}),
84
+ path: "/test/qa/runs",
85
+ desc: "执行触发、状态与报告"
86
+ },
87
+ {
88
+ key: "test-schedule",
89
+ label: "定时调度",
90
+ icon: /* @__PURE__ */ e(b, {}),
91
+ path: "/test/qa/schedules",
92
+ desc: "cron 定时执行"
93
+ },
94
+ {
95
+ key: "test-e2e",
96
+ label: "E2E 测试",
97
+ icon: /* @__PURE__ */ e(U, {}),
98
+ path: "/test/qa/e2e",
99
+ desc: "浏览器自动化测试"
100
+ }
101
+ ]
102
+ },
103
+ {
104
+ key: "test-support",
105
+ label: "环境与工具",
106
+ icon: /* @__PURE__ */ e(D, {}),
107
+ children: [
108
+ {
109
+ key: "test-env",
110
+ label: "环境管理",
111
+ icon: /* @__PURE__ */ e(D, {}),
112
+ path: "/test/qa/envs",
113
+ desc: "多环境变量管理"
114
+ },
115
+ {
116
+ key: "test-mock",
117
+ label: "Mock 平台",
118
+ icon: /* @__PURE__ */ e(se, {}),
119
+ path: "/test/mock",
120
+ desc: "API Mock 服务管理"
121
+ }
122
+ ]
123
+ },
124
+ {
125
+ key: "test-eval",
126
+ label: "智能测评",
127
+ icon: /* @__PURE__ */ e(H, {}),
128
+ children: [
129
+ {
130
+ key: "test-eval-start",
131
+ label: "发起测评",
132
+ icon: /* @__PURE__ */ e(y, {}),
133
+ path: "/test/evaluation/start",
134
+ desc: "Agent 质量测评"
135
+ },
136
+ {
137
+ key: "test-eval-schedule",
138
+ label: "自动测评",
139
+ icon: /* @__PURE__ */ e(b, {}),
140
+ path: "/test/evaluation/schedule",
141
+ desc: "定时批量测评"
142
+ },
143
+ {
144
+ key: "test-eval-group",
145
+ label: "群聊评测",
146
+ icon: /* @__PURE__ */ e(pe, {}),
147
+ path: "/test/evaluation/group",
148
+ desc: "群聊场景评测"
149
+ },
150
+ {
151
+ key: "test-eval-report",
152
+ label: "分析报告",
153
+ icon: /* @__PURE__ */ e(H, {}),
154
+ path: "/test/evaluation/report",
155
+ desc: "测评结果分析"
156
+ }
157
+ ]
158
+ }
159
+ ]
160
+ }, K = [
161
+ {
162
+ title: "认证与权限",
163
+ icon: /* @__PURE__ */ e(L, {}),
164
+ items: [
165
+ {
166
+ key: "4a-account",
167
+ label: "账号管理",
168
+ icon: /* @__PURE__ */ e(ee, {}),
169
+ path: "/ctc/4a/account",
170
+ desc: "用户账号创建、编辑与状态管理"
171
+ },
172
+ {
173
+ key: "4a-role",
174
+ label: "角色管理",
175
+ icon: /* @__PURE__ */ e(L, {}),
176
+ path: "/ctc/4a/role",
177
+ desc: "角色定义与权限分配"
178
+ },
179
+ {
180
+ key: "4a-app",
181
+ label: "应用管理",
182
+ icon: /* @__PURE__ */ e(W, {}),
183
+ path: "/ctc/4a/application",
184
+ desc: "应用注册、资源与权限配置"
185
+ },
186
+ {
187
+ key: "4a-tenant",
188
+ label: "租户管理",
189
+ icon: /* @__PURE__ */ e(D, {}),
190
+ path: "/ctc/4a/tenant",
191
+ desc: "多租户管理与配置"
192
+ },
193
+ {
194
+ key: "4a-org",
195
+ label: "组织管理",
196
+ icon: /* @__PURE__ */ e(z, {}),
197
+ path: "/ctc/4a/org",
198
+ desc: "组织架构与部门管理"
199
+ },
200
+ {
201
+ key: "4a-permission",
202
+ label: "权限管理",
203
+ icon: /* @__PURE__ */ e(T, {}),
204
+ path: "/ctc/4a/permission",
205
+ desc: "细粒度权限控制与审批"
206
+ }
207
+ ]
208
+ },
209
+ {
210
+ title: "开发与工具",
211
+ icon: /* @__PURE__ */ e(w, {}),
212
+ items: [
213
+ {
214
+ key: "script",
215
+ label: "脚本中心",
216
+ icon: /* @__PURE__ */ e(w, {}),
217
+ path: "/script/manage",
218
+ desc: "DSL 脚本注册与执行"
219
+ },
220
+ { key: "lc", label: "研发中心", icon: /* @__PURE__ */ e(w, {}), path: "/lc/apps", desc: "低代码应用开发与管理" },
221
+ {
222
+ key: "tool-curl",
223
+ label: "短链管理",
224
+ icon: /* @__PURE__ */ e(te, {}),
225
+ path: "/z-tool/curl",
226
+ desc: "短链接创建与管理"
227
+ },
228
+ {
229
+ key: "tool-webide",
230
+ label: "WebIDE 容器",
231
+ icon: /* @__PURE__ */ e(U, {}),
232
+ path: "/z-tool/webide",
233
+ desc: "在线 IDE 代码编辑器"
234
+ }
235
+ ]
236
+ },
237
+ {
238
+ title: "产品认知",
239
+ icon: /* @__PURE__ */ e(x, {}),
240
+ items: [
241
+ {
242
+ key: "product-board",
243
+ label: "产品全景",
244
+ icon: /* @__PURE__ */ e(y, {}),
245
+ path: "/z-product/board",
246
+ desc: "业务/产品/研发三线可见的全量认知(术语·模型·链路·设计稿·缺口)"
247
+ },
248
+ {
249
+ key: "product-blueprint",
250
+ label: "产品蓝图",
251
+ icon: /* @__PURE__ */ e(x, {}),
252
+ path: "/z-product/blueprint",
253
+ desc: "AI 的唯一入口:后端实时投影的全量认知快照"
254
+ },
255
+ {
256
+ key: "product-glossary",
257
+ label: "统一语言",
258
+ icon: /* @__PURE__ */ e(ne, {}),
259
+ path: "/z-product/glossary",
260
+ desc: "术语仲裁表:标准词/别名/适用范围/反例"
261
+ },
262
+ {
263
+ key: "product-concept",
264
+ label: "领域模型",
265
+ icon: /* @__PURE__ */ e(ae, {}),
266
+ path: "/z-product/concept-model",
267
+ desc: "概念与关系画布(四种投影)"
268
+ },
269
+ {
270
+ key: "product-scenarios",
271
+ label: "用户链路",
272
+ icon: /* @__PURE__ */ e(z, {}),
273
+ path: "/z-product/scenarios",
274
+ desc: "端到端场景:步骤引用领域概念"
275
+ },
276
+ {
277
+ key: "product-designs",
278
+ label: "设计稿 ⇄ 模型",
279
+ icon: /* @__PURE__ */ e(oe, {}),
280
+ path: "/z-product/designs",
281
+ desc: "设计与认知的双向收敛回路"
282
+ }
283
+ ]
284
+ },
285
+ {
286
+ title: "业务流程",
287
+ icon: /* @__PURE__ */ e(A, {}),
288
+ items: [
289
+ {
290
+ key: "workflow",
291
+ label: "流程中心",
292
+ icon: /* @__PURE__ */ e(T, {}),
293
+ path: "/workflow/dashboard",
294
+ desc: "工作流定义与审批管理"
295
+ },
296
+ {
297
+ key: "task",
298
+ label: "任务中心",
299
+ icon: /* @__PURE__ */ e(A, {}),
300
+ path: "/task/dashboard",
301
+ desc: "任务创建、分配与跟踪"
302
+ },
303
+ {
304
+ key: "schedule",
305
+ label: "调度中心",
306
+ icon: /* @__PURE__ */ e(b, {}),
307
+ path: "/schedule/dashboard",
308
+ desc: "定时任务调度与管理"
309
+ },
310
+ {
311
+ key: "subscribe",
312
+ label: "订阅中心",
313
+ icon: /* @__PURE__ */ e(ce, {}),
314
+ path: "/subscribe/list",
315
+ desc: "第三方数据订阅与拉取"
316
+ },
317
+ {
318
+ key: "project",
319
+ label: "项目中心",
320
+ icon: /* @__PURE__ */ e(F, {}),
321
+ path: "/project/list",
322
+ desc: "项目创建与进度管理"
323
+ }
324
+ ]
325
+ }
326
+ ], v = [...K, Te];
327
+ function xe({
328
+ activePathOverride: c,
329
+ menuOnly: s = !1,
330
+ visibleGroups: i
331
+ } = {}) {
332
+ const g = B(), { pathname: C } = f(), _ = S(
333
+ () => i ? v.filter((n) => i.includes(n.title)) : K,
334
+ [i]
335
+ ), [Q, Z] = M(
336
+ new Set(v.map((n) => n.title))
337
+ ), [G, V] = M(
338
+ () => new Set(
339
+ v.flatMap((n) => n.items).filter((n) => n.children).map((n) => n.key)
340
+ )
341
+ ), k = S(() => {
342
+ var r;
343
+ const n = c ?? C;
344
+ return ((r = _.flatMap((o) => P(o.items)).find(
345
+ (o) => o.path === n
346
+ )) == null ? void 0 : r.key) ?? null;
347
+ }, [c, C, _]), Y = (n) => {
348
+ Z((r) => {
349
+ const o = new Set(r);
350
+ return o.has(n) ? o.delete(n) : o.add(n), o;
351
+ });
352
+ }, J = (n) => {
353
+ V((r) => {
354
+ const o = new Set(r);
355
+ return o.has(n) ? o.delete(n) : o.add(n), o;
356
+ });
357
+ }, I = (n) => {
358
+ n.path && g(n.path);
359
+ }, d = _.flatMap((n) => P(n.items)).find(
360
+ (n) => n.key === k
361
+ );
362
+ return /* @__PURE__ */ p("div", { className: a.container, children: [
363
+ /* @__PURE__ */ e("aside", { className: a.sidebar, children: /* @__PURE__ */ e("nav", { className: a.menuList, children: _.map((n) => {
364
+ const r = Q.has(n.title);
365
+ return /* @__PURE__ */ p("div", { className: a.menuGroup, children: [
366
+ /* @__PURE__ */ p(
367
+ "div",
368
+ {
369
+ className: a.menuGroupHeader,
370
+ onClick: () => Y(n.title),
371
+ children: [
372
+ /* @__PURE__ */ e("span", { className: a.menuGroupIcon, children: n.icon }),
373
+ /* @__PURE__ */ e("span", { className: a.menuGroupLabel, children: n.title }),
374
+ /* @__PURE__ */ e("span", { className: a.menuGroupArrow, children: r ? /* @__PURE__ */ e(O, {}) : /* @__PURE__ */ e(N, {}) })
375
+ ]
376
+ }
377
+ ),
378
+ r && /* @__PURE__ */ e("ul", { className: a.menuSubList, children: n.items.map(
379
+ (o) => o.children ? (
380
+ /* 子菜单分组头 — 可折叠; active 项落在其中时高亮 */
381
+ /* @__PURE__ */ p("li", { className: a.menuSubGroup, children: [
382
+ /* @__PURE__ */ p(
383
+ "div",
384
+ {
385
+ className: `${a.menuSubGroupHeader} ${o.children.some((m) => m.key === k) ? a.menuSubGroupHeaderActive : ""}`,
386
+ onClick: () => J(o.key),
387
+ children: [
388
+ /* @__PURE__ */ e("span", { className: a.menuGroupIcon, children: o.icon }),
389
+ /* @__PURE__ */ e("span", { className: a.menuSubGroupLabel, children: o.label }),
390
+ /* @__PURE__ */ e("span", { className: a.menuGroupArrow, children: G.has(o.key) ? /* @__PURE__ */ e(O, {}) : /* @__PURE__ */ e(N, {}) })
391
+ ]
392
+ }
393
+ ),
394
+ G.has(o.key) && /* @__PURE__ */ e("ul", { className: a.menuSubList, children: o.children.map((m) => /* @__PURE__ */ p(
395
+ "li",
396
+ {
397
+ className: `${a.menuSubItem} ${k === m.key ? a.menuSubItemActive : ""}`,
398
+ onClick: () => I(m),
399
+ children: [
400
+ /* @__PURE__ */ e(
401
+ "span",
402
+ {
403
+ className: a.menuSubItemIcon,
404
+ children: m.icon
405
+ }
406
+ ),
407
+ /* @__PURE__ */ e("span", { children: m.label })
408
+ ]
409
+ },
410
+ m.key
411
+ )) })
412
+ ] }, o.key)
413
+ ) : /* @__PURE__ */ p(
414
+ "li",
415
+ {
416
+ className: `${a.menuSubItem} ${k === o.key ? a.menuSubItemActive : ""}`,
417
+ onClick: () => I(o),
418
+ children: [
419
+ /* @__PURE__ */ e("span", { className: a.menuSubItemIcon, children: o.icon }),
420
+ /* @__PURE__ */ e("span", { children: o.label })
421
+ ]
422
+ },
423
+ o.key
424
+ )
425
+ ) })
426
+ ] }, n.title);
427
+ }) }) }),
428
+ s ? null : /* @__PURE__ */ e("main", { className: a.main, children: d ? /* @__PURE__ */ p("div", { className: a.detailPanel, children: [
429
+ /* @__PURE__ */ p("div", { className: a.detailHeader, children: [
430
+ /* @__PURE__ */ e("div", { className: a.detailIcon, children: d.icon }),
431
+ /* @__PURE__ */ p("div", { children: [
432
+ /* @__PURE__ */ e("h2", { className: a.detailTitle, children: d.label }),
433
+ /* @__PURE__ */ e("p", { className: a.detailDesc, children: d.desc })
434
+ ] })
435
+ ] }),
436
+ /* @__PURE__ */ e("div", { className: a.detailAction, children: /* @__PURE__ */ p(
437
+ "button",
438
+ {
439
+ className: a.goBtn,
440
+ onClick: () => g(d.path),
441
+ children: [
442
+ "进入 ",
443
+ d.label
444
+ ]
445
+ }
446
+ ) })
447
+ ] }) : /* @__PURE__ */ p("div", { className: a.emptyState, children: [
448
+ /* @__PURE__ */ e(W, { style: { fontSize: 48, color: "#ccc" } }),
449
+ /* @__PURE__ */ e("p", { children: "点击左侧菜单进入对应功能模块" })
450
+ ] }) })
451
+ ] });
452
+ }
453
+ const He = "_shell_10jrt_6", je = "_main_10jrt_21", qe = "_empty_10jrt_31", Ee = "_emptyIcon_10jrt_41", Re = "_emptyText_10jrt_46", h = {
454
+ shell: He,
455
+ main: je,
456
+ empty: qe,
457
+ emptyIcon: Ee,
458
+ emptyText: Re
459
+ }, t = (c, s) => u(() => c().then((i) => ({ default: i[s] }))), $e = t(() => import("@yuku123/z-ctc-component"), "AccountManagement"), Be = t(() => import("@yuku123/z-ctc-component"), "ApplicationManagement"), We = t(() => import("@yuku123/z-ctc-component"), "AuditPage"), Ue = t(() => import("@yuku123/z-ctc-component"), "CtcOverview"), Fe = t(() => import("@yuku123/z-ctc-component"), "DictPage"), Ke = t(() => import("@yuku123/z-ctc-component"), "OrgPage"), Qe = t(() => import("@yuku123/z-ctc-component"), "PermissionManagement"), Ze = t(() => import("@yuku123/z-ctc-component"), "RoleManagement"), j = t(() => import("@yuku123/z-ctc-component"), "SurlManagement"), Ve = t(() => import("@yuku123/z-ctc-component"), "TenantManagement"), Ye = t(() => import("@yuku123/z-agent-component"), "AgentAppList"), Je = t(() => import("@yuku123/z-agent-component"), "AgentDashboard"), Xe = t(() => import("@yuku123/z-agent-component"), "AkManage"), et = t(() => import("@yuku123/z-agent-component"), "BucketList"), tt = t(() => import("@yuku123/z-agent-component"), "LlmManage"), nt = t(() => import("@yuku123/z-agent-component"), "McpPage"), at = t(() => import("@yuku123/z-agent-component"), "ObjectBrowser"), ot = t(() => import("@yuku123/z-agent-component"), "ScriptCenterPage"), ct = t(() => import("@yuku123/z-agent-component"), "ScriptProductizationPage"), lt = t(() => import("@yuku123/z-agent-component"), "SkillMarket"), st = t(() => import("./index-Cqb50VtA.js"), "AgentTeamIM"), q = t(() => import("./index-Cqb50VtA.js"), "DebugPlayground"), pt = t(() => import("./index-Cqb50VtA.js"), "Overview"), E = t(() => import("./index-Cqb50VtA.js"), "Webide"), it = u(() => import("./OnboardingPage-BBUHWsq9.js")), rt = u(() => import("./InvitationManagementPage-62XWbq0p.js")), mt = t(() => import("@yuku123/z-config-component"), "ConfigApp"), ut = t(() => import("@yuku123/z-task-component"), "TaskApp"), dt = t(() => import("@yuku123/z-wf-component"), "WorkflowApp"), ht = t(() => import("@yuku123/z-schedule-component"), "ScheduleApp"), bt = t(() => import("@yuku123/z-mist-component"), "MistApp"), gt = t(() => import("@yuku123/z-meta-component"), "MetaApp"), _t = t(() => import("@yuku123/z-msg-component"), "MsgApp"), kt = t(() => import("@yuku123/z-rpc-component"), "RpcApp"), yt = u(() => import("./ComponentDoc-oOU-0zBg.js").then((c) => c.k)), St = u(() => import("./ComponentDoc-oOU-0zBg.js").then((c) => c.l)), At = t(() => import("@yuku123/z-config-component"), "ComponentDocPage"), wt = t(() => import("@yuku123/z-task-component"), "ComponentDocPage"), vt = t(() => import("@yuku123/z-wf-component"), "ComponentDocPage"), Dt = t(() => import("@yuku123/z-schedule-component"), "ComponentDocPage"), Pt = t(() => import("@yuku123/z-mist-component"), "ComponentDocPage"), ft = t(() => import("@yuku123/z-meta-component"), "ComponentDocPage"), Ct = t(() => import("@yuku123/z-msg-component"), "ComponentDocPage"), Gt = t(() => import("@yuku123/z-rpc-component"), "ComponentDocPage"), It = t(() => import("@yuku123/z-kb-component"), "ComponentDocPage"), Mt = t(() => import("@yuku123/z-product-component"), "ComponentDocPage"), Ot = t(() => import("@yuku123/z-oss-component"), "ComponentDocPage"), Nt = t(() => import("@yuku123/z-vector-component"), "ComponentDocPage"), Lt = t(() => import("@yuku123/z-graph-component"), "ComponentDocPage"), zt = t(() => import("@yuku123/z-gw-component"), "ComponentDocPage"), Tt = t(() => import("@yuku123/z-cache-component"), "ComponentDocPage"), xt = t(() => import("@yuku123/z-mq-component"), "ComponentDocPage"), Ht = t(() => import("@yuku123/z-ctc-component"), "ComponentDocPage"), jt = t(() => import("@yuku123/z-agent-component"), "ComponentDocPage"), qt = t(() => import("@yuku123/z-lc-component"), "ComponentDocPage"), Et = t(() => import("@yuku123/z-qa-component"), "ComponentDocPage"), Rt = u(() => import("./ComponentDoc-oOU-0zBg.js").then((c) => c.j)), R = u(() => import("@yuku123/z-qa-component"));
460
+ function $t() {
461
+ return /* @__PURE__ */ p("div", { className: h.empty, children: [
462
+ /* @__PURE__ */ e("div", { className: h.emptyIcon, children: "📋" }),
463
+ /* @__PURE__ */ e("div", { className: h.emptyText, children: "请从左侧菜单选择模块" })
464
+ ] });
465
+ }
466
+ function Bt() {
467
+ const { pathname: c } = f();
468
+ return /* @__PURE__ */ e(l, { to: c.replace(/^\/product/, "/z-product"), replace: !0 });
469
+ }
470
+ const $ = [
471
+ // ─── 顶层 / 概览 ───
472
+ { path: "/overview", element: /* @__PURE__ */ e(pt, {}) },
473
+ // ─── 4A 中心 (/ctc/*) ───
474
+ { path: "/ctc", element: /* @__PURE__ */ e(l, { to: "/ctc/4a/account", replace: !0 }) },
475
+ { path: "/ctc/4a/account", element: /* @__PURE__ */ e($e, {}) },
476
+ { path: "/ctc/4a/role", element: /* @__PURE__ */ e(Ze, {}) },
477
+ { path: "/ctc/4a/application", element: /* @__PURE__ */ e(Be, {}) },
478
+ { path: "/ctc/4a/tenant", element: /* @__PURE__ */ e(Ve, {}) },
479
+ { path: "/ctc/4a/org", element: /* @__PURE__ */ e(Ke, {}) },
480
+ { path: "/ctc/4a/permission", element: /* @__PURE__ */ e(Qe, {}) },
481
+ { path: "/ctc/4a/surl", element: /* @__PURE__ */ e(j, {}) },
482
+ { path: "/ctc/dict", element: /* @__PURE__ */ e(Fe, {}) },
483
+ { path: "/ctc/overview", element: /* @__PURE__ */ e(Ue, {}) },
484
+ { path: "/ctc/audit", element: /* @__PURE__ */ e(We, {}) },
485
+ { path: "/ctc/webide", element: /* @__PURE__ */ e(E, {}) },
486
+ { path: "/ctc/agent-team", element: /* @__PURE__ */ e(st, {}) },
487
+ { path: "/ctc/invitation", element: /* @__PURE__ */ e(rt, {}) },
488
+ { path: "/onboarding", element: /* @__PURE__ */ e(it, {}) },
489
+ // ─── 智能中心 (/ai/*) ───
490
+ { path: "/ai", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
491
+ { path: "/ai/agent", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
492
+ { path: "/ai/agent/app", element: /* @__PURE__ */ e(Ye, {}) },
493
+ { path: "/ai/llm", element: /* @__PURE__ */ e(tt, {}) },
494
+ { path: "/ai/llm/provider", element: /* @__PURE__ */ e(l, { to: "/ai/llm", replace: !0 }) },
495
+ { path: "/ai/llm/model", element: /* @__PURE__ */ e(l, { to: "/ai/llm", replace: !0 }) },
496
+ { path: "/ai/usage", element: /* @__PURE__ */ e(l, { to: "/ai/llm", replace: !0 }) },
497
+ { path: "/ai/ak", element: /* @__PURE__ */ e(Xe, {}) },
498
+ { path: "/ai/mcp", element: /* @__PURE__ */ e(nt, {}) },
499
+ { path: "/ai/skill", element: /* @__PURE__ */ e(lt, {}) },
500
+ { path: "/ai/oss", element: /* @__PURE__ */ e(l, { to: "/ai/oss/bucket", replace: !0 }) },
501
+ { path: "/ai/oss/bucket", element: /* @__PURE__ */ e(et, {}) },
502
+ { path: "/ai/oss/bucket/:bucketName", element: /* @__PURE__ */ e(at, {}) },
503
+ { path: "/ai/trace", element: /* @__PURE__ */ e(q, {}) },
504
+ { path: "/ai/trace/debug", element: /* @__PURE__ */ e(q, {}) },
505
+ { path: "/ai/dashboard", element: /* @__PURE__ */ e(Je, {}) },
506
+ // 多 Agent 实例 / 模板市场已下线 (2026-10-22): 模板并入 Agent 应用页,
507
+ // 旧深链重定向, 别再回到独立菜单
508
+ { path: "/ai/template", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
509
+ { path: "/ai/agent-instance", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
510
+ { path: "/ai/agent/instances", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
511
+ // ─── 配置中心 ───
512
+ { path: "/config/*", element: /* @__PURE__ */ e(mt, {}) },
513
+ // ─── 任务中心 ───
514
+ { path: "/task/*", element: /* @__PURE__ */ e(ut, {}) },
515
+ // ─── 流程中心 ───
516
+ { path: "/workflow/*", element: /* @__PURE__ */ e(dt, {}) },
517
+ // ─── 调度中心 ───
518
+ { path: "/schedule/*", element: /* @__PURE__ */ e(ht, {}) },
519
+ // ─── 密钥中心 ───
520
+ { path: "/mist/*", element: /* @__PURE__ */ e(bt, {}) },
521
+ // ─── 中间件孵化页 (大需求 004) — 主入口在运维工作台 (?mode=ops),此处兜住直链/刷新 ───
522
+ { path: "/meta", element: /* @__PURE__ */ e(l, { to: "/meta/app", replace: !0 }) },
523
+ { path: "/meta/*", element: /* @__PURE__ */ e(gt, {}) },
524
+ { path: "/msg", element: /* @__PURE__ */ e(l, { to: "/msg/inbox", replace: !0 }) },
525
+ { path: "/msg/*", element: /* @__PURE__ */ e(_t, {}) },
526
+ { path: "/rpc", element: /* @__PURE__ */ e(l, { to: "/rpc/service", replace: !0 }) },
527
+ { path: "/rpc/*", element: /* @__PURE__ */ e(kt, {}) },
528
+ // ─── 订阅中心 ───
529
+ { path: "/subscribe/*", element: /* @__PURE__ */ e(yt, {}) },
530
+ // ─── 产品工作台 z-product (2026-10-21 接入) ───
531
+ // /z-product/* 由 z-product 组件自己的 ProductApp 渲染(内部按 manifest 的绝对路径手工匹配,
532
+ // 不用嵌套 <Routes>:这里没有 Route 父上下文,绝对路径不会被再拼一次父前缀)。
533
+ // §14:z-product 的菜单 key / 路由 path 一律带产品名前缀(/z-product/xxx),
534
+ // 避免 /board、/products 这类短路径跟宿主自己的同名路由撞车。
535
+ { path: "/z-product", element: /* @__PURE__ */ e(l, { to: "/z-product/board", replace: !0 }) },
536
+ { path: "/z-product/*", element: /* @__PURE__ */ e(ie, { basePath: "/z-product" }) },
537
+ // 旧前缀 /product/* → 新前缀 /z-product/*:§14 前缀化之前的老 URL 仍可达(书签 / 旧分享链接)。
538
+ { path: "/product", element: /* @__PURE__ */ e(l, { to: "/z-product/board", replace: !0 }) },
539
+ { path: "/product/*", element: /* @__PURE__ */ e(Bt, {}) },
540
+ // ─── 项目中心 ───
541
+ { path: "/project/*", element: /* @__PURE__ */ e(St, {}) },
542
+ // ─── 脚本中心 (/script/*) — FEATURE052 ───
543
+ { path: "/script", element: /* @__PURE__ */ e(l, { to: "/script/manage", replace: !0 }) },
544
+ { path: "/script/manage", element: /* @__PURE__ */ e(ot, {}) },
545
+ { path: "/script/productization", element: /* @__PURE__ */ e(ct, {}) },
546
+ // ─── 工具中心 (/z-tool/*) — FEATURE054 ───
547
+ { path: "/z-tool", element: /* @__PURE__ */ e(l, { to: "/z-tool/curl", replace: !0 }) },
548
+ { path: "/z-tool/curl", element: /* @__PURE__ */ e(j, {}) },
549
+ { path: "/z-tool/webide", element: /* @__PURE__ */ e(E, {}) },
550
+ // ─── 测试中心 (/test/*) — FEATURE061 ───
551
+ { path: "/test", element: /* @__PURE__ */ e(l, { to: "/test/qa/dashboard", replace: !0 }) },
552
+ { path: "/test/mock", element: /* @__PURE__ */ e(Rt, {}) },
553
+ // QAApp 内部用 <Routes> 相对路由, 通配匹配后由 QAApp 自己接管子路径
554
+ { path: "/test/qa", element: /* @__PURE__ */ e(R, {}) },
555
+ { path: "/test/qa/*", element: /* @__PURE__ */ e(R, {}) },
556
+ // ─── 低代码 ───
557
+ // /lc/* 刻意不在这里注册。它早就迁到 src/lc/(TS 重写), 挂载点是
558
+ // main.jsx 的 <Route path="/lc/*" element={<ZTeamApp forcedMode="dev"/>}/>,
559
+ // 由 DevWorkbench 把 pathname 原样交给 @/lc 自己的嵌套 <Routes>。
560
+ // 本表早先还挂着一行 {path:'/lc/*', element:<LcIndex/>}, 它的 import 写的是
561
+ // '@/pages/lc' —— 该别名解析到 src/zteam/pages/lc(不存在), 真身在 src/lc,
562
+ // 于是这行既解析不了、又因 main.jsx 先消费了 /lc/* 而永远不可达。
563
+ // /form/:entity 与 /form/_model 是 z-lc Phase 1 手写原型的两条 URL
564
+ // (LowCodeModel 实体字段编辑器 / LowCodeRuntime 通用 CRUD), 现已由
565
+ // @yuku123/z-lc-component 承接 —— 它是同一套 /api/lc 后端的完整前端客户,
566
+ // 能力严格更强(designer 模型编辑、workspace 七种视图 CRUD、admin 全套、
567
+ // db-import、AI 建模), 挂在 main.jsx 的 <Route path="/lc/*"> 下经
568
+ // DevWorkbench 的 <LcApp/> 渲染。
569
+ //
570
+ // 不做逐条映射: z-lc 的工作区路由是 /lc/{appCode}/{entityCode}/{viewType},
571
+ // 比 /form/{entityCode} 多一层 appCode, 旧 URL 里没有这个信息, 无法还原。
572
+ // 故统一重定向到应用列表, 由用户自行进入对应应用。
573
+ { path: "/form/:entity", element: /* @__PURE__ */ e(l, { to: "/lc/apps", replace: !0 }) },
574
+ // ─── 各域组件文档(lead 008 §7)───
575
+ // 放在本表末尾即可:matchSystemPath 是「先全表精确匹配、再全表通配匹配」,
576
+ // 所以 /config/docs 这类精确路径**不会**被上面的 /config/* 吃掉。
577
+ //
578
+ // 为什么路径用宿主前缀(/config/docs)而不是各域 manifest 里的 /z-config/docs:
579
+ // manifest 的 routes 是给**独立壳**用的(suit 里 <Route path={r.path}> 直接铺);
580
+ // 工作台把各域挂在宿主前缀下(/config/* ⇒ ConfigApp 内部相对路由),
581
+ // 两套路径对不上 ⇒ manifest 的 routes 在工作台里不生效,文档页会 404。
582
+ // 这里统一按**宿主前缀**挂,各域自己的 manifest 路径仍然保留给独立壳用。
583
+ //
584
+ // §14 铁律(菜单 key 必须带产品名前缀)针对的是**同一宿主内多套件共存**的撞车问题;
585
+ // 这里每个域的宿主前缀本身就已经是产品名(/config / /task / /workflow …),
586
+ // 且各域之间前缀互不相同 ⇒ 不存在撞车,不需要再加 z- 前缀。
587
+ { path: "/config/docs", element: /* @__PURE__ */ e(At, {}) },
588
+ { path: "/task/docs", element: /* @__PURE__ */ e(wt, {}) },
589
+ { path: "/workflow/docs", element: /* @__PURE__ */ e(vt, {}) },
590
+ { path: "/schedule/docs", element: /* @__PURE__ */ e(Dt, {}) },
591
+ { path: "/mist/docs", element: /* @__PURE__ */ e(Pt, {}) },
592
+ { path: "/meta/docs", element: /* @__PURE__ */ e(ft, {}) },
593
+ { path: "/msg/docs", element: /* @__PURE__ */ e(Ct, {}) },
594
+ { path: "/rpc/docs", element: /* @__PURE__ */ e(Gt, {}) },
595
+ { path: "/kb/docs", element: /* @__PURE__ */ e(It, {}) },
596
+ { path: "/z-product/docs", element: /* @__PURE__ */ e(Mt, {}) },
597
+ { path: "/oss/docs", element: /* @__PURE__ */ e(Ot, {}) },
598
+ { path: "/vector/docs", element: /* @__PURE__ */ e(Nt, {}) },
599
+ { path: "/graph/docs", element: /* @__PURE__ */ e(Lt, {}) },
600
+ { path: "/gw/docs", element: /* @__PURE__ */ e(zt, {}) },
601
+ { path: "/cache/docs", element: /* @__PURE__ */ e(Tt, {}) },
602
+ { path: "/mq/docs", element: /* @__PURE__ */ e(xt, {}) },
603
+ { path: "/ctc/docs", element: /* @__PURE__ */ e(Ht, {}) },
604
+ { path: "/ai/docs", element: /* @__PURE__ */ e(jt, {}) },
605
+ { path: "/lc/docs", element: /* @__PURE__ */ e(qt, {}) },
606
+ { path: "/test/qa/docs", element: /* @__PURE__ */ e(Et, {}) }
607
+ ];
608
+ function Wt(c) {
609
+ for (const s of $)
610
+ if (s.path === c) return s.element;
611
+ for (const s of $)
612
+ if (Ut(s.path, c)) return s.element;
613
+ return /* @__PURE__ */ e($t, {});
614
+ }
615
+ function Ut(c, s) {
616
+ if (!c.includes("*") && !c.includes(":")) return !1;
617
+ const i = "^" + c.replace(/[.+?^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*").replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g, "[^/]+") + "$";
618
+ return new RegExp(i).test(s);
619
+ }
620
+ function Yt() {
621
+ B();
622
+ const { pathname: c } = f(), s = c.startsWith("/test/"), i = S(() => c, [c]), g = S(() => Wt(c), [c]);
623
+ return /* @__PURE__ */ p("div", { className: h.shell, children: [
624
+ /* @__PURE__ */ e(
625
+ xe,
626
+ {
627
+ activePathOverride: i,
628
+ menuOnly: !0,
629
+ visibleGroups: s ? ["测试中心"] : void 0
630
+ }
631
+ ),
632
+ /* @__PURE__ */ e("main", { className: h.main, children: /* @__PURE__ */ e(X, { fallback: /* @__PURE__ */ e("div", { className: h.empty, children: "加载中…" }), children: g }) })
633
+ ] });
634
+ }
635
+ export {
636
+ Yt as default
637
+ };
@@ -1,5 +1,5 @@
1
1
  import "@yuku123/z-frontend-common";
2
- import { a } from "./ProjectApp-ZR_QUlPs.js";
2
+ import { a } from "./ComponentDoc-oOU-0zBg.js";
3
3
  import "react/jsx-runtime";
4
4
  import "react";
5
5
  import "antd";
@@ -13,7 +13,7 @@ import { h as be } from "./index.module-CAa-2T7m.js";
13
13
  import { M as Hl } from "./index-CUVdeb8y.js";
14
14
  import { ae as Kl } from "./api-19TXED_O.js";
15
15
  import { h as ql } from "./schedule-DD50-7cs.js";
16
- import { s as Ee } from "./SmartWorkbench.module-DzQskKT0.js";
16
+ import { s as Ee } from "./SmartWorkbench.module-xRRmpTTw.js";
17
17
  function Vl() {
18
18
  const l = Ce((i) => i.token), [n, D] = o([]), [k, L] = o(!1), [x, B] = o(""), [E, F] = o(null), [c, A] = o(!1), [C, T] = o(!1), [I, U] = o(null), [u, v] = o([]), [_, y] = o([]), [j, J] = o([]), [Z, O] = o([]), [w, z] = o([]), h = de(async () => {
19
19
  L(!0);