downcity 1.1.78 → 1.1.80

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "downcity",
3
- "version": "1.1.78",
3
+ "version": "1.1.80",
4
4
  "type": "module",
5
5
  "description": "Downcity CLI bundle — installs city and town commands",
6
6
  "bin": {
@@ -45,8 +45,8 @@
45
45
  "prompts": "^2.4.2",
46
46
  "ws": "^8.21.0",
47
47
  "zod": "^4.4.3",
48
- "@downcity/plugins": "^1.0.26",
49
48
  "@downcity/agent": "^1.1.69",
49
+ "@downcity/plugins": "^1.0.26",
50
50
  "@downcity/city": "^0.2.32"
51
51
  },
52
52
  "scripts": {
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Console dashboard overview 路由。
3
+ *
4
+ * 关键点(中文)
5
+ * - 承接旧 Console 使用的 `/api/dashboard/overview` 路径。
6
+ * - 通过 Agent RPC 聚合 session、plugin、task 状态,不再经由 Agent HTTP control API。
7
+ * - logs 仍读取 agent 项目本地 `.downcity` 目录,保持 overview 数据结构稳定。
8
+ */
9
+ import type { Hono } from "hono";
10
+ import type { PlatformAgentOption } from "@downcity/agent";
11
+ import type { AgentRpcPool } from "../control/gateway/AgentRpcPool.js";
12
+ /**
13
+ * Dashboard overview 路由参数。
14
+ */
15
+ export interface DashboardOverviewApiRouteParams {
16
+ /**
17
+ * Hono 应用实例。
18
+ */
19
+ app: Hono;
20
+ /**
21
+ * 从请求中读取用户选择的 agent id。
22
+ */
23
+ readRequestedAgentId(request: Request): string;
24
+ /**
25
+ * 解析当前运行中的 agent。
26
+ */
27
+ resolveSelectedAgent(requestedAgentId: string): Promise<PlatformAgentOption | null>;
28
+ /**
29
+ * Town 维护的 Agent RPC 连接池。
30
+ */
31
+ agentRpcPool: AgentRpcPool;
32
+ }
33
+ /**
34
+ * 注册 dashboard overview 路由。
35
+ */
36
+ export declare function registerDashboardOverviewApiRoutes(params: DashboardOverviewApiRouteParams): void;
37
+ //# sourceMappingURL=DashboardOverviewApiRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardOverviewApiRoutes.d.ts","sourceRoot":"","sources":["../../src/control/DashboardOverviewApiRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAIjC,OAAO,KAAK,EAAuB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AA8BtE;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,GAAG,EAAE,IAAI,CAAC;IACV;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/C;;OAEG;IACH,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACpF;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,+BAA+B,GACtC,IAAI,CA4DN"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * Console dashboard overview 路由。
3
+ *
4
+ * 关键点(中文)
5
+ * - 承接旧 Console 使用的 `/api/dashboard/overview` 路径。
6
+ * - 通过 Agent RPC 聚合 session、plugin、task 状态,不再经由 Agent HTTP control API。
7
+ * - logs 仍读取 agent 项目本地 `.downcity` 目录,保持 overview 数据结构稳定。
8
+ */
9
+ import fs from "fs-extra";
10
+ import path from "node:path";
11
+ import { fileURLToPath } from "node:url";
12
+ import { readRecentLogs } from "@downcity/agent/internal/runtime/server/http/control/TaskStore.js";
13
+ const CONSOLEUI_SESSION_ID = "consoleui-chat-main";
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = path.dirname(__filename);
16
+ /**
17
+ * 当前 DC 版本号(用于 overview 显示)。
18
+ */
19
+ const DC_VERSION = (() => {
20
+ const candidate_package_paths = [
21
+ // 关键点(中文):workspace 内部包构建后位于 `cli/town/bin/control`。
22
+ path.join(__dirname, "../../package.json"),
23
+ // 关键点(中文):downcity 聚合包复制后的 town runtime 位于 `<pkg>/town/control`。
24
+ path.join(__dirname, "../package.json"),
25
+ ];
26
+ for (const package_path of candidate_package_paths) {
27
+ try {
28
+ const pkg = fs.readJsonSync(package_path);
29
+ const version = String(pkg.version || "").trim();
30
+ if (version)
31
+ return version;
32
+ }
33
+ catch {
34
+ // 关键点(中文):不同构建布局会命中不同候选路径,失败时继续尝试下一个。
35
+ }
36
+ }
37
+ return "unknown";
38
+ })();
39
+ /**
40
+ * 注册 dashboard overview 路由。
41
+ */
42
+ export function registerDashboardOverviewApiRoutes(params) {
43
+ const { app } = params;
44
+ app.get("/api/dashboard/overview", async (c) => {
45
+ try {
46
+ const context = await resolveDashboardAgentContext(params, c.req.raw);
47
+ if (!context)
48
+ return agentUnavailableResponse();
49
+ const session_limit = toLimit(c.req.query("sessionLimit") || c.req.query("contextLimit"), 40);
50
+ const [session_page, plugin_states, task_result, logs] = await Promise.all([
51
+ context.client.list_sessions({ limit: session_limit }),
52
+ context.client.list_internal_plugin_states(),
53
+ context.client.run_internal_plugin_action({
54
+ plugin_name: "task",
55
+ action_name: "list",
56
+ payload: {},
57
+ }).catch((error) => ({
58
+ success: false,
59
+ error: error instanceof Error ? error.message : String(error),
60
+ })),
61
+ readRecentLogs({
62
+ projectRoot: context.agent.projectRoot,
63
+ limit: 50,
64
+ }),
65
+ ]);
66
+ const sessions = ensureConsoleSessionItem(session_page.items.map((item) => toOverviewSessionItem(item)));
67
+ const tasks = readTasksFromPluginResult(task_result);
68
+ const status_count = {
69
+ enabled: tasks.filter((item) => item.status === "enabled").length,
70
+ paused: tasks.filter((item) => item.status === "paused").length,
71
+ disabled: tasks.filter((item) => item.status === "disabled").length,
72
+ };
73
+ return c.json({
74
+ success: true,
75
+ cityVersion: DC_VERSION,
76
+ now: new Date().toISOString(),
77
+ agent: {
78
+ id: context.agent.agentId || context.agent.id,
79
+ status: "running",
80
+ },
81
+ sessions: {
82
+ total: sessions.length,
83
+ items: sessions,
84
+ },
85
+ plugins: plugin_states,
86
+ tasks: {
87
+ total: tasks.length,
88
+ statusCount: status_count,
89
+ },
90
+ logs,
91
+ });
92
+ }
93
+ catch (error) {
94
+ return c.json({ success: false, error: String(error) }, 500);
95
+ }
96
+ });
97
+ }
98
+ async function resolveDashboardAgentContext(params, request) {
99
+ const requested_agent_id = params.readRequestedAgentId(request);
100
+ const agent = await params.resolveSelectedAgent(requested_agent_id);
101
+ if (!agent || agent.running !== true)
102
+ return null;
103
+ const client = params.agentRpcPool.resolveClientForAgent(agent);
104
+ if (!client)
105
+ return null;
106
+ return {
107
+ agent,
108
+ client,
109
+ };
110
+ }
111
+ function agentUnavailableResponse() {
112
+ return new Response(JSON.stringify({
113
+ success: false,
114
+ error: "No running agent found. Start one via `town agent start` first.",
115
+ }), {
116
+ status: 503,
117
+ headers: {
118
+ "Content-Type": "application/json",
119
+ },
120
+ });
121
+ }
122
+ function toOverviewSessionItem(item) {
123
+ return {
124
+ sessionId: item.sessionId,
125
+ messageCount: item.messageCount,
126
+ ...(typeof item.updatedAt === "number" ? { updatedAt: item.updatedAt } : {}),
127
+ ...(typeof item.previewText === "string" && item.previewText.trim()
128
+ ? { lastText: item.previewText.trim() }
129
+ : {}),
130
+ ...(item.executing ? { executing: true } : {}),
131
+ };
132
+ }
133
+ function ensureConsoleSessionItem(sessions) {
134
+ const has_console_session = sessions.some((item) => String(item.sessionId || "").trim() === CONSOLEUI_SESSION_ID);
135
+ if (has_console_session)
136
+ return sessions;
137
+ return [
138
+ {
139
+ sessionId: CONSOLEUI_SESSION_ID,
140
+ messageCount: 0,
141
+ updatedAt: Date.now(),
142
+ lastRole: "system",
143
+ lastText: "consoleui channel",
144
+ channel: "consoleui",
145
+ },
146
+ ...sessions,
147
+ ];
148
+ }
149
+ function readTasksFromPluginResult(input) {
150
+ if (!input.success)
151
+ return [];
152
+ const data = input.data && typeof input.data === "object" && !Array.isArray(input.data)
153
+ ? input.data
154
+ : {};
155
+ return Array.isArray(data.tasks)
156
+ ? data.tasks.map((item) => {
157
+ const task = item && typeof item === "object" && !Array.isArray(item)
158
+ ? item
159
+ : {};
160
+ return {
161
+ ...(typeof task.status === "string" ? { status: task.status } : {}),
162
+ };
163
+ })
164
+ : [];
165
+ }
166
+ function toLimit(raw, fallback) {
167
+ const parsed = Number.parseInt(String(raw || "").trim(), 10);
168
+ if (!Number.isFinite(parsed) || Number.isNaN(parsed))
169
+ return fallback;
170
+ return Math.max(1, Math.min(parsed, 500));
171
+ }
172
+ //# sourceMappingURL=DashboardOverviewApiRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardOverviewApiRoutes.js","sourceRoot":"","sources":["../../src/control/DashboardOverviewApiRoutes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Console dashboard session 读侧路由。
3
+ *
4
+ * 关键点(中文)
5
+ * - 承接旧 Console 使用的 session 列表与消息时间线读接口。
6
+ * - 读运行态信息时直接复用 Agent RPC 的 SDK session 能力,不再经由 Agent HTTP control API。
7
+ * - 这里只迁移低风险读接口;写操作与归档接口暂时保留在旧 proxy 路径。
8
+ */
9
+ import type { Hono } from "hono";
10
+ import type { PlatformAgentOption } from "@downcity/agent";
11
+ import type { AgentRpcPool } from "../control/gateway/AgentRpcPool.js";
12
+ /**
13
+ * Dashboard session 路由参数。
14
+ */
15
+ export interface DashboardSessionApiRouteParams {
16
+ /**
17
+ * Hono 应用实例。
18
+ */
19
+ app: Hono;
20
+ /**
21
+ * 从请求中读取用户选择的 agent id。
22
+ */
23
+ readRequestedAgentId(request: Request): string;
24
+ /**
25
+ * 解析当前运行中的 agent。
26
+ */
27
+ resolveSelectedAgent(requestedAgentId: string): Promise<PlatformAgentOption | null>;
28
+ /**
29
+ * Town 维护的 Agent RPC 连接池。
30
+ */
31
+ agentRpcPool: AgentRpcPool;
32
+ }
33
+ /**
34
+ * 注册 dashboard session 读侧路由。
35
+ */
36
+ export declare function registerDashboardSessionApiRoutes(params: DashboardSessionApiRouteParams): void;
37
+ //# sourceMappingURL=DashboardSessionApiRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardSessionApiRoutes.d.ts","sourceRoot":"","sources":["../../src/control/DashboardSessionApiRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAGV,mBAAmB,EACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAItE;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,GAAG,EAAE,IAAI,CAAC;IACV;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/C;;OAEG;IACH,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;IACpF;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,8BAA8B,GACrC,IAAI,CA8EN"}
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Console dashboard session 读侧路由。
3
+ *
4
+ * 关键点(中文)
5
+ * - 承接旧 Console 使用的 session 列表与消息时间线读接口。
6
+ * - 读运行态信息时直接复用 Agent RPC 的 SDK session 能力,不再经由 Agent HTTP control API。
7
+ * - 这里只迁移低风险读接口;写操作与归档接口暂时保留在旧 proxy 路径。
8
+ */
9
+ const CONSOLEUI_SESSION_ID = "consoleui-chat-main";
10
+ /**
11
+ * 注册 dashboard session 读侧路由。
12
+ */
13
+ export function registerDashboardSessionApiRoutes(params) {
14
+ const { app } = params;
15
+ app.get("/api/dashboard/sessions", async (c) => {
16
+ try {
17
+ const context = await resolveDashboardAgentContext(params, c.req.raw);
18
+ if (!context)
19
+ return agentUnavailableResponse();
20
+ const page = await context.client.list_sessions({
21
+ limit: toLimit(c.req.query("limit"), 120),
22
+ });
23
+ const sessions = page.items.map((item) => toDashboardSessionSummary(item));
24
+ const has_console_session = sessions.some((item) => String(item.sessionId || "").trim() === CONSOLEUI_SESSION_ID);
25
+ const enriched_sessions = has_console_session
26
+ ? sessions
27
+ : [
28
+ {
29
+ sessionId: CONSOLEUI_SESSION_ID,
30
+ messageCount: 0,
31
+ updatedAt: Date.now(),
32
+ lastRole: "system",
33
+ lastText: "consoleui channel",
34
+ channel: "consoleui",
35
+ },
36
+ ...sessions,
37
+ ];
38
+ return c.json({
39
+ success: true,
40
+ sessions: enriched_sessions,
41
+ });
42
+ }
43
+ catch (error) {
44
+ return c.json({ success: false, error: String(error) }, 500);
45
+ }
46
+ });
47
+ app.get("/api/dashboard/sessions/:sessionId/messages", async (c) => {
48
+ try {
49
+ const context = await resolveDashboardAgentContext(params, c.req.raw);
50
+ if (!context)
51
+ return agentUnavailableResponse();
52
+ const session_id = decodeMaybe(c.req.param("sessionId"));
53
+ if (!session_id)
54
+ return c.json({ success: false, error: "Missing sessionId" }, 400);
55
+ const history = await context.client.get_session_history({
56
+ session_id,
57
+ input: {
58
+ limit: toLimit(c.req.query("limit"), 200),
59
+ order: "asc",
60
+ view: "timeline",
61
+ },
62
+ }).catch((error) => {
63
+ if (isSessionNotFoundError(error))
64
+ return null;
65
+ throw error;
66
+ });
67
+ if (!history) {
68
+ return c.json({
69
+ success: true,
70
+ sessionId: session_id,
71
+ total: 0,
72
+ rawTotal: 0,
73
+ messages: [],
74
+ });
75
+ }
76
+ const messages = Array.isArray(history.items)
77
+ ? history.items
78
+ : [];
79
+ return c.json({
80
+ success: true,
81
+ sessionId: session_id,
82
+ total: messages.length,
83
+ rawTotal: history.total,
84
+ messages,
85
+ });
86
+ }
87
+ catch (error) {
88
+ return c.json({ success: false, error: String(error) }, 500);
89
+ }
90
+ });
91
+ }
92
+ async function resolveDashboardAgentContext(params, request) {
93
+ const requested_agent_id = params.readRequestedAgentId(request);
94
+ const agent = await params.resolveSelectedAgent(requested_agent_id);
95
+ if (!agent || agent.running !== true)
96
+ return null;
97
+ const client = params.agentRpcPool.resolveClientForAgent(agent);
98
+ if (!client)
99
+ return null;
100
+ return {
101
+ agent,
102
+ client,
103
+ };
104
+ }
105
+ function agentUnavailableResponse() {
106
+ return new Response(JSON.stringify({
107
+ success: false,
108
+ error: "No running agent found. Start one via `town agent start` first.",
109
+ }), {
110
+ status: 503,
111
+ headers: {
112
+ "Content-Type": "application/json",
113
+ },
114
+ });
115
+ }
116
+ function toDashboardSessionSummary(item) {
117
+ return {
118
+ sessionId: item.sessionId,
119
+ messageCount: item.messageCount,
120
+ ...(typeof item.updatedAt === "number" ? { updatedAt: item.updatedAt } : {}),
121
+ ...(typeof item.previewText === "string" && item.previewText.trim()
122
+ ? { lastText: item.previewText.trim() }
123
+ : {}),
124
+ ...(item.executing ? { executing: true } : {}),
125
+ };
126
+ }
127
+ function toLimit(raw, fallback) {
128
+ const parsed = Number.parseInt(String(raw || "").trim(), 10);
129
+ if (!Number.isFinite(parsed) || Number.isNaN(parsed))
130
+ return fallback;
131
+ return Math.max(1, Math.min(parsed, 500));
132
+ }
133
+ function isSessionNotFoundError(error) {
134
+ const message = error instanceof Error ? error.message : String(error);
135
+ return /session .* not found/i.test(message);
136
+ }
137
+ function decodeMaybe(value) {
138
+ try {
139
+ return decodeURIComponent(String(value || "")).trim();
140
+ }
141
+ catch {
142
+ return String(value || "").trim();
143
+ }
144
+ }
145
+ //# sourceMappingURL=DashboardSessionApiRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardSessionApiRoutes.js","sourceRoot":"","sources":["../../src/control/DashboardSessionApiRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAwBnD;;GAEG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAsC;IAEtC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtE,IAAI,CAAC,OAAO;gBAAE,OAAO,wBAAwB,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;gBAC9C,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;aAC1C,CAAC,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,IAAI,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,oBAAoB,CACvE,CAAC;YACF,MAAM,iBAAiB,GAAG,mBAAmB;gBAC3C,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC;oBACE;wBACE,SAAS,EAAE,oBAAoB;wBAC/B,YAAY,EAAE,CAAC;wBACf,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;wBACrB,QAAQ,EAAE,QAAQ;wBAClB,QAAQ,EAAE,mBAAmB;wBAC7B,OAAO,EAAE,WAAW;qBACrB;oBACD,GAAG,QAAQ;iBACZ,CAAC;YAEN,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,iBAAiB;aAC5B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,6CAA6C,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACjE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,4BAA4B,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtE,IAAI,CAAC,OAAO;gBAAE,OAAO,wBAAwB,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;YACzD,IAAI,CAAC,UAAU;gBAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,CAAC,CAAC;YACpF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC;gBACvD,UAAU;gBACV,KAAK,EAAE;oBACL,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC;oBACzC,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,UAAU;iBACjB;aACF,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,sBAAsB,CAAC,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC/C,MAAM,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE,IAAI;oBACb,SAAS,EAAE,UAAU;oBACrB,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,EAAE;iBACb,CAAC,CAAC;YACL,CAAC;YACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;gBAC3C,CAAC,CAAC,OAAO,CAAC,KAAoC;gBAC9C,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,UAAU;gBACrB,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,QAAQ,EAAE,OAAO,CAAC,KAAK;gBACvB,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC,CAAC;AAEL,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,MAAsC,EACtC,OAAgB;IAKhB,MAAM,kBAAkB,GAAG,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO;QACL,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,IAAI,QAAQ,CACjB,IAAI,CAAC,SAAS,CAAC;QACb,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,iEAAiE;KACzE,CAAC,EACF;QACE,MAAM,EAAE,GAAG;QACX,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;SACnC;KACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,IAAyB;IAEzB,OAAO;QACL,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YACjE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE;YACvC,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAAuB,EAAE,QAAgB;IACxD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IACtE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformApiRoutes.d.ts","sourceRoot":"","sources":["../../src/control/PlatformApiRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlatformApiRoutes.d.ts","sourceRoot":"","sources":["../../src/control/PlatformApiRoutes.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,8 @@ import { registerPlatformEnvRoutes } from "../control/EnvApiRoutes.js";
12
12
  import { registerPlatformAgentStatusRoutes } from "../control/AgentStatusApiRoutes.js";
13
13
  import { registerPlatformPluginRoutes } from "../control/PluginApiRoutes.js";
14
14
  import { registerDashboardTaskApiRoutes } from "../control/DashboardTaskApiRoutes.js";
15
+ import { registerDashboardSessionApiRoutes } from "../control/DashboardSessionApiRoutes.js";
16
+ import { registerDashboardOverviewApiRoutes } from "../control/DashboardOverviewApiRoutes.js";
15
17
  import { buildPlatformWorkloadBlockPayload } from "../control/gateway/GatewaySupport.js";
16
18
  /**
17
19
  * 注册平台控制面 API 路由。
@@ -259,6 +261,18 @@ export function registerPlatformApiRoutes(params) {
259
261
  resolveSelectedAgent: (requestedAgentId) => handlers.resolveSelectedAgent(requestedAgentId),
260
262
  agentRpcPool: handlers.agentRpcPool,
261
263
  });
264
+ registerDashboardSessionApiRoutes({
265
+ app,
266
+ readRequestedAgentId: (request) => handlers.readRequestedAgentId(request),
267
+ resolveSelectedAgent: (requestedAgentId) => handlers.resolveSelectedAgent(requestedAgentId),
268
+ agentRpcPool: handlers.agentRpcPool,
269
+ });
270
+ registerDashboardOverviewApiRoutes({
271
+ app,
272
+ readRequestedAgentId: (request) => handlers.readRequestedAgentId(request),
273
+ resolveSelectedAgent: (requestedAgentId) => handlers.resolveSelectedAgent(requestedAgentId),
274
+ agentRpcPool: handlers.agentRpcPool,
275
+ });
262
276
  app.all("/api/*", async (c) => {
263
277
  try {
264
278
  const reqUrl = new URL(c.req.url);
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformApiRoutes.js","sourceRoot":"","sources":["../../src/control/PlatformApiRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlatformApiRoutes.js","sourceRoot":"","sources":["../../src/control/PlatformApiRoutes.ts"],"names":[],"mappings":"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"}