downcity 1.1.85 → 1.1.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/package.json +4 -4
  2. package/town/agent/AgentHttpGateway.d.ts +48 -0
  3. package/town/agent/AgentHttpGateway.d.ts.map +1 -0
  4. package/town/agent/AgentHttpGateway.js +128 -0
  5. package/town/agent/AgentHttpGateway.js.map +1 -0
  6. package/town/agent/Run.d.ts.map +1 -1
  7. package/town/agent/Run.js +3 -2
  8. package/town/agent/Run.js.map +1 -1
  9. package/town/agent/http/control/ControlApiRoutes.d.ts +14 -0
  10. package/town/agent/http/control/ControlApiRoutes.d.ts.map +1 -0
  11. package/town/agent/http/control/ControlApiRoutes.js +25 -0
  12. package/town/agent/http/control/ControlApiRoutes.js.map +1 -0
  13. package/town/agent/http/control/ControlAuthorizationRoutes.d.ts +17 -0
  14. package/town/agent/http/control/ControlAuthorizationRoutes.d.ts.map +1 -0
  15. package/town/agent/http/control/ControlAuthorizationRoutes.js +84 -0
  16. package/town/agent/http/control/ControlAuthorizationRoutes.js.map +1 -0
  17. package/town/agent/http/control/ControlRouter.d.ts +35 -0
  18. package/town/agent/http/control/ControlRouter.d.ts.map +1 -0
  19. package/town/agent/http/control/ControlRouter.js +28 -0
  20. package/town/agent/http/control/ControlRouter.js.map +1 -0
  21. package/town/agent/http/control/OverviewRoutes.d.ts +13 -0
  22. package/town/agent/http/control/OverviewRoutes.d.ts.map +1 -0
  23. package/town/agent/http/control/OverviewRoutes.js +101 -0
  24. package/town/agent/http/control/OverviewRoutes.js.map +1 -0
  25. package/town/agent/http/control/SessionRoutes.d.ts +14 -0
  26. package/town/agent/http/control/SessionRoutes.d.ts.map +1 -0
  27. package/town/agent/http/control/SessionRoutes.js +334 -0
  28. package/town/agent/http/control/SessionRoutes.js.map +1 -0
  29. package/town/agent/http/control/TaskRoutes.d.ts +13 -0
  30. package/town/agent/http/control/TaskRoutes.d.ts.map +1 -0
  31. package/town/agent/http/control/TaskRoutes.js +364 -0
  32. package/town/agent/http/control/TaskRoutes.js.map +1 -0
  33. package/town/agent/http/control/types/ControlRoutes.d.ts +28 -0
  34. package/town/agent/http/control/types/ControlRoutes.d.ts.map +1 -0
  35. package/town/agent/http/control/types/ControlRoutes.js +9 -0
  36. package/town/agent/http/control/types/ControlRoutes.js.map +1 -0
  37. package/town/agent/http/execute/execute.d.ts +25 -0
  38. package/town/agent/http/execute/execute.d.ts.map +1 -0
  39. package/town/agent/http/execute/execute.js +63 -0
  40. package/town/agent/http/execute/execute.js.map +1 -0
  41. package/town/agent/http/health/health.d.ts +14 -0
  42. package/town/agent/http/health/health.d.ts.map +1 -0
  43. package/town/agent/http/health/health.js +24 -0
  44. package/town/agent/http/health/health.js.map +1 -0
  45. package/town/agent/http/plugins/plugins.d.ts +25 -0
  46. package/town/agent/http/plugins/plugins.d.ts.map +1 -0
  47. package/town/agent/http/plugins/plugins.js +114 -0
  48. package/town/agent/http/plugins/plugins.js.map +1 -0
  49. package/town/agent/http/sdk/Router.d.ts +14 -0
  50. package/town/agent/http/sdk/Router.d.ts.map +1 -0
  51. package/town/agent/http/sdk/Router.js +18 -0
  52. package/town/agent/http/sdk/Router.js.map +1 -0
  53. package/town/agent/http/sdk/SessionRoutes.d.ts +15 -0
  54. package/town/agent/http/sdk/SessionRoutes.d.ts.map +1 -0
  55. package/town/agent/http/sdk/SessionRoutes.js +249 -0
  56. package/town/agent/http/sdk/SessionRoutes.js.map +1 -0
  57. package/town/agent/http/static/static.d.ts +25 -0
  58. package/town/agent/http/static/static.d.ts.map +1 -0
  59. package/town/agent/http/static/static.js +99 -0
  60. package/town/agent/http/static/static.js.map +1 -0
  61. package/town/control/ControlGateway.d.ts +1 -3
  62. package/town/control/ControlGateway.d.ts.map +1 -1
  63. package/town/control/ControlGateway.js +1 -10
  64. package/town/control/ControlGateway.js.map +1 -1
  65. package/town/control/DashboardOverviewApiRoutes.js +1 -1
  66. package/town/control/DashboardOverviewApiRoutes.js.map +1 -1
  67. package/town/control/DashboardRuntimeApiRoutes.d.ts +29 -0
  68. package/town/control/DashboardRuntimeApiRoutes.d.ts.map +1 -0
  69. package/town/control/DashboardRuntimeApiRoutes.js +183 -0
  70. package/town/control/DashboardRuntimeApiRoutes.js.map +1 -0
  71. package/town/control/DashboardSessionApiRoutes.d.ts +2 -2
  72. package/town/control/DashboardSessionApiRoutes.js +3 -3
  73. package/town/control/DashboardSessionApiRoutes.js.map +1 -1
  74. package/town/control/DashboardTaskApiRoutes.js +1 -1
  75. package/town/control/DashboardTaskApiRoutes.js.map +1 -1
  76. package/town/control/PlatformApiRoutes.d.ts +0 -4
  77. package/town/control/PlatformApiRoutes.d.ts.map +1 -1
  78. package/town/control/PlatformApiRoutes.js +6 -30
  79. package/town/control/PlatformApiRoutes.js.map +1 -1
  80. package/town/process/daemon/Manager.d.ts +1 -1
  81. package/town/process/daemon/Manager.d.ts.map +1 -1
  82. package/town/process/daemon/Manager.js +1 -1
  83. package/town/process/daemon/Manager.js.map +1 -1
  84. package/town/process/daemon/Types.d.ts +42 -0
  85. package/town/process/daemon/Types.d.ts.map +1 -0
  86. package/town/process/daemon/Types.js +14 -0
  87. package/town/process/daemon/Types.js.map +1 -0
  88. package/town/control/gateway/Proxy.d.ts +0 -16
  89. package/town/control/gateway/Proxy.d.ts.map +0 -1
  90. package/town/control/gateway/Proxy.js +0 -47
  91. package/town/control/gateway/Proxy.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "downcity",
3
- "version": "1.1.85",
3
+ "version": "1.1.87",
4
4
  "type": "module",
5
5
  "description": "Downcity CLI bundle — installs city and town commands",
6
6
  "bin": {
@@ -45,9 +45,9 @@
45
45
  "prompts": "^2.4.2",
46
46
  "ws": "^8.21.0",
47
47
  "zod": "^4.4.3",
48
- "@downcity/agent": "^1.1.70",
49
- "@downcity/plugins": "^1.0.26",
50
- "@downcity/city": "^0.2.32"
48
+ "@downcity/city": "^0.2.34",
49
+ "@downcity/agent": "^1.1.72",
50
+ "@downcity/plugins": "^1.0.28"
51
51
  },
52
52
  "scripts": {
53
53
  "build": "node scripts/copy-cli-products.mjs && node scripts/ensure-cli-executable.mjs",
@@ -0,0 +1,48 @@
1
+ /**
2
+ * AgentHttpGateway:Town 托管的 Agent HTTP 网关。
3
+ *
4
+ * 职责说明(中文)
5
+ * - 由 `town agent start` 启动 HTTP 入口,对外承载控制面、plugin 与 SDK HTTP 路由。
6
+ * - Agent 进程本体只暴露本机 RPC;HTTP server 生命周期归 Town CLI 管理。
7
+ * - HTTP route 实现放在 Town 内部,Agent 只提供 runtime/context/sessionCollection。
8
+ */
9
+ import { Hono } from "hono";
10
+ import http from "node:http";
11
+ import type { AgentRuntime } from "@downcity/agent/internal/types/runtime/agent/AgentRuntime.js";
12
+ import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
13
+ import type { AgentSessionCollection } from "@downcity/agent";
14
+ /**
15
+ * Agent HTTP 网关启动参数。
16
+ */
17
+ export interface AgentHttpGatewayStartOptions {
18
+ /** HTTP 服务监听端口。 */
19
+ port: number;
20
+ /** HTTP 服务监听主机。 */
21
+ host: string;
22
+ /** 当前 agent runtime 读取函数。 */
23
+ getAgentRuntime: () => AgentRuntime;
24
+ /** 当前 agent context 读取函数。 */
25
+ getAgentContext: () => AgentContext;
26
+ /** 可选 SDK Session 集合绑定。 */
27
+ sessionCollection?: AgentSessionCollection;
28
+ }
29
+ /**
30
+ * Agent HTTP 网关运行实例。
31
+ */
32
+ export interface AgentHttpGatewayInstance {
33
+ /** Hono 应用实例。 */
34
+ app: Hono;
35
+ /** 原生 HTTP Server 实例。 */
36
+ server: http.Server;
37
+ /** 停止当前服务。 */
38
+ stop(): Promise<void>;
39
+ }
40
+ /**
41
+ * 创建 Agent HTTP 网关 Hono 应用。
42
+ */
43
+ export declare function createAgentHttpGatewayApp(options: Pick<AgentHttpGatewayStartOptions, "getAgentRuntime" | "getAgentContext" | "sessionCollection">): Hono;
44
+ /**
45
+ * 启动 Town 托管的 Agent HTTP 网关。
46
+ */
47
+ export declare function startAgentHttpGateway(options: AgentHttpGatewayStartOptions): Promise<AgentHttpGatewayInstance>;
48
+ //# sourceMappingURL=AgentHttpGateway.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentHttpGateway.d.ts","sourceRoot":"","sources":["../../src/agent/AgentHttpGateway.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,6BAA6B;IAC7B,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,6BAA6B;IAC7B,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC,2BAA2B;IAC3B,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,iBAAiB;IACjB,GAAG,EAAE,IAAI,CAAC;IACV,yBAAyB;IACzB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,cAAc;IACd,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,IAAI,CACX,4BAA4B,EAC5B,iBAAiB,GAAG,iBAAiB,GAAG,mBAAmB,CAC5D,GACA,IAAI,CAwCN;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAwBnC"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * AgentHttpGateway:Town 托管的 Agent HTTP 网关。
3
+ *
4
+ * 职责说明(中文)
5
+ * - 由 `town agent start` 启动 HTTP 入口,对外承载控制面、plugin 与 SDK HTTP 路由。
6
+ * - Agent 进程本体只暴露本机 RPC;HTTP server 生命周期归 Town CLI 管理。
7
+ * - HTTP route 实现放在 Town 内部,Agent 只提供 runtime/context/sessionCollection。
8
+ */
9
+ import { Hono } from "hono";
10
+ import { cors } from "hono/cors";
11
+ import { logger } from "hono/logger";
12
+ import http from "node:http";
13
+ import { Readable } from "node:stream";
14
+ import { finished } from "node:stream/promises";
15
+ import { logger as serverLogger } from "@downcity/agent/internal/utils/logger/Logger.js";
16
+ import { createExecuteRouter } from "../agent/http/execute/execute.js";
17
+ import { healthRouter } from "../agent/http/health/health.js";
18
+ import { createPluginsRouter } from "../agent/http/plugins/plugins.js";
19
+ import { createStaticRouter } from "../agent/http/static/static.js";
20
+ import { createControlRouter } from "../agent/http/control/ControlRouter.js";
21
+ import { createSdkRouter } from "../agent/http/sdk/Router.js";
22
+ /**
23
+ * 创建 Agent HTTP 网关 Hono 应用。
24
+ */
25
+ export function createAgentHttpGatewayApp(options) {
26
+ const app = new Hono();
27
+ app.use("*", logger());
28
+ app.use("*", cors({
29
+ origin: "*",
30
+ allowMethods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
31
+ allowHeaders: ["Content-Type", "Authorization"],
32
+ }));
33
+ // 关键点(中文):HTTP 协议面由 Town 装配,Agent 只提供 runtime/context。
34
+ app.route("/", createStaticRouter({
35
+ getAgentRuntime: options.getAgentRuntime,
36
+ }));
37
+ app.route("/", healthRouter);
38
+ app.route("/", createPluginsRouter({
39
+ getAgentContext: options.getAgentContext,
40
+ }));
41
+ app.route("/", createExecuteRouter({
42
+ getAgentRuntime: options.getAgentRuntime,
43
+ }));
44
+ app.route("/", createControlRouter({
45
+ getAgentRuntime: options.getAgentRuntime,
46
+ getAgentContext: options.getAgentContext,
47
+ }));
48
+ if (options.sessionCollection) {
49
+ app.route("/", createSdkRouter(options.sessionCollection));
50
+ }
51
+ for (const plugin of options.getAgentContext().agent.pluginInstances.values()) {
52
+ plugin.http?.server?.register({
53
+ app,
54
+ getContext: options.getAgentContext,
55
+ pluginName: plugin.name,
56
+ });
57
+ }
58
+ return app;
59
+ }
60
+ /**
61
+ * 启动 Town 托管的 Agent HTTP 网关。
62
+ */
63
+ export async function startAgentHttpGateway(options) {
64
+ const app = createAgentHttpGatewayApp(options);
65
+ const server = createNodeServer(app, options);
66
+ await new Promise((resolve) => {
67
+ server.listen(options.port, options.host, () => {
68
+ serverLogger.info(`🚀 Town Agent HTTP gateway started: http://${options.host}:${options.port}`);
69
+ resolve();
70
+ });
71
+ });
72
+ return {
73
+ app,
74
+ server,
75
+ async stop() {
76
+ await serverLogger.saveAllLogs();
77
+ await new Promise((resolve) => {
78
+ server.close(() => resolve());
79
+ });
80
+ serverLogger.info("Town Agent HTTP gateway stopped");
81
+ },
82
+ };
83
+ }
84
+ /**
85
+ * 创建 Node HTTP Server 适配层。
86
+ */
87
+ function createNodeServer(app, options) {
88
+ return http.createServer(async (req, res) => {
89
+ try {
90
+ const url = new URL(req.url || "/", `http://${options.host}:${options.port}`);
91
+ const method = req.method || "GET";
92
+ const bodyBuffer = await readRequestBody(req);
93
+ const request = new Request(url.toString(), {
94
+ method,
95
+ headers: new Headers(req.headers),
96
+ body: bodyBuffer.length > 0 ? bodyBuffer : undefined,
97
+ });
98
+ const response = await app.fetch(request);
99
+ res.statusCode = response.status;
100
+ for (const [key, value] of response.headers.entries()) {
101
+ res.setHeader(key, value);
102
+ }
103
+ if (!response.body) {
104
+ res.end();
105
+ return;
106
+ }
107
+ const bodyStream = Readable.fromWeb(response.body);
108
+ bodyStream.pipe(res);
109
+ await finished(bodyStream).catch(() => undefined);
110
+ }
111
+ catch {
112
+ res.statusCode = 500;
113
+ res.end("Internal Server Error");
114
+ }
115
+ });
116
+ }
117
+ /**
118
+ * 读取原生请求体。
119
+ */
120
+ async function readRequestBody(req) {
121
+ return new Promise((resolve, reject) => {
122
+ const chunks = [];
123
+ req.on("data", (chunk) => chunks.push(chunk));
124
+ req.on("end", () => resolve(Buffer.concat(chunks)));
125
+ req.on("error", reject);
126
+ });
127
+ }
128
+ //# sourceMappingURL=AgentHttpGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentHttpGateway.js","sourceRoot":"","sources":["../../src/agent/AgentHttpGateway.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Run.d.ts","sourceRoot":"","sources":["../../src/agent/Run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAMpD;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,YAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAyHf"}
1
+ {"version":3,"file":"Run.d.ts","sourceRoot":"","sources":["../../src/agent/Run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAOpD;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,YAAM,EACjB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CAyHf"}
package/town/agent/Run.js CHANGED
@@ -10,12 +10,13 @@
10
10
  * `town agent restart` 管理。
11
11
  */
12
12
  import path from "node:path";
13
- import { Agent, loadDowncityConfig, loadStaticSystemPrompts, shellTools, startServer, StaticPromptCatalog, } from "@downcity/agent";
13
+ import { Agent, loadDowncityConfig, loadStaticSystemPrompts, shellTools, StaticPromptCatalog, } from "@downcity/agent";
14
14
  import { createBuiltinPlugins } from "@downcity/plugins";
15
15
  import { CliError } from "../shared/CliError.js";
16
16
  import { createRuntimeModel } from "../model/runtime/CreateRuntimeModel.js";
17
17
  import { readPlatformGlobalEnv } from "../env/ProcessEnv.js";
18
18
  import { resolveAgentId } from "../shared/IndexSupport.js";
19
+ import { startAgentHttpGateway } from "../agent/AgentHttpGateway.js";
19
20
  /**
20
21
  * 前台启动入口(由 `agent start` 前台模式与内部 daemon 子进程复用)。
21
22
  *
@@ -105,7 +106,7 @@ export async function runCommand(cwd = ".", options) {
105
106
  if (!startResult.rpc?.server) {
106
107
  throw new Error("Agent start did not return expected RPC binding");
107
108
  }
108
- const server = await startServer({
109
+ const server = await startAgentHttpGateway({
109
110
  host,
110
111
  port,
111
112
  getAgentRuntime: () => agent.getRuntime(),
@@ -1 +1 @@
1
- {"version":3,"file":"Run.js","sourceRoot":"","sources":["../../src/agent/Run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Run.js","sourceRoot":"","sources":["../../src/agent/Run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Agent Control API 路由聚合入口。
3
+ *
4
+ * 关键点(中文)
5
+ * - 本文件只做模块装配,不再承载具体业务逻辑。
6
+ * - 单 agent control API 子路由按 overview/session/task/auth 四类拆分,便于继续维护。
7
+ * - 单 agent control API 统一暴露在 `/api/control/*` 下。
8
+ */
9
+ import type { ControlRouteRegistrationParams } from "../../../agent/http/control/types/ControlRoutes.js";
10
+ /**
11
+ * 注册单 agent control API 路由。
12
+ */
13
+ export declare function registerControlApiRoutes(params: ControlRouteRegistrationParams): void;
14
+ //# sourceMappingURL=ControlApiRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlApiRoutes.d.ts","sourceRoot":"","sources":["../../../../src/agent/http/control/ControlApiRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAMlG;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,8BAA8B,GACrC,IAAI,CAQN"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Agent Control API 路由聚合入口。
3
+ *
4
+ * 关键点(中文)
5
+ * - 本文件只做模块装配,不再承载具体业务逻辑。
6
+ * - 单 agent control API 子路由按 overview/session/task/auth 四类拆分,便于继续维护。
7
+ * - 单 agent control API 统一暴露在 `/api/control/*` 下。
8
+ */
9
+ import { registerControlAuthorizationRoutes } from "../../../agent/http/control/ControlAuthorizationRoutes.js";
10
+ import { registerControlSessionRoutes } from "../../../agent/http/control/SessionRoutes.js";
11
+ import { registerControlOverviewRoutes } from "../../../agent/http/control/OverviewRoutes.js";
12
+ import { registerControlTaskRoutes } from "../../../agent/http/control/TaskRoutes.js";
13
+ /**
14
+ * 注册单 agent control API 路由。
15
+ */
16
+ export function registerControlApiRoutes(params) {
17
+ registerControlAuthorizationRoutes({
18
+ app: params.app,
19
+ getAgentContext: params.getAgentContext,
20
+ });
21
+ registerControlOverviewRoutes(params);
22
+ registerControlSessionRoutes(params);
23
+ registerControlTaskRoutes(params);
24
+ }
25
+ //# sourceMappingURL=ControlApiRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlApiRoutes.js","sourceRoot":"","sources":["../../../../src/agent/http/control/ControlApiRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,kCAAkC,EAAE,MAAM,oDAAoD,CAAC;AACxG,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAE/E;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAsC;IAEtC,kCAAkC,CAAC;QACjC,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,eAAe,EAAE,MAAM,CAAC,eAAe;KACxC,CAAC,CAAC;IACH,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,4BAA4B,CAAC,MAAM,CAAC,CAAC;IACrC,yBAAyB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Agent Control Authorization 路由。
3
+ *
4
+ * 关键点(中文)
5
+ * - 单独承接 `/api/control/authorization*`。
6
+ * - 授权页面的数据统一通过 auth plugin API 读取与写入。
7
+ */
8
+ import type { Hono } from "hono";
9
+ import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
10
+ /**
11
+ * 注册 authorization 相关路由。
12
+ */
13
+ export declare function registerControlAuthorizationRoutes(params: {
14
+ app: Hono;
15
+ getAgentContext: () => AgentContext;
16
+ }): void;
17
+ //# sourceMappingURL=ControlAuthorizationRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlAuthorizationRoutes.d.ts","sourceRoot":"","sources":["../../../../src/agent/http/control/ControlAuthorizationRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AAejG;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE;IACzD,GAAG,EAAE,IAAI,CAAC;IACV,eAAe,EAAE,MAAM,YAAY,CAAC;CACrC,GAAG,IAAI,CAwEP"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Agent Control Authorization 路由。
3
+ *
4
+ * 关键点(中文)
5
+ * - 单独承接 `/api/control/authorization*`。
6
+ * - 授权页面的数据统一通过 auth plugin API 读取与写入。
7
+ */
8
+ import { readAuthControlPayload, setAuthControlUserRole, writeAuthControlConfig, } from "@downcity/agent/internal/runtime/control/AuthControlService.js";
9
+ import { buildControlRouteAliases } from "@downcity/agent/internal/runtime/control/CommonHelpers.js";
10
+ function normalizeChatChannel(value) {
11
+ const text = String(value || "").trim().toLowerCase();
12
+ if (text === "telegram" || text === "feishu" || text === "qq")
13
+ return text;
14
+ return null;
15
+ }
16
+ /**
17
+ * 注册 authorization 相关路由。
18
+ */
19
+ export function registerControlAuthorizationRoutes(params) {
20
+ const { app, getAgentContext } = params;
21
+ for (const routePath of buildControlRouteAliases("/authorization")) {
22
+ app.get(routePath, async (c) => {
23
+ try {
24
+ const payload = await readAuthControlPayload(getAgentContext());
25
+ return c.json({
26
+ success: true,
27
+ ...payload,
28
+ });
29
+ }
30
+ catch (error) {
31
+ return c.json({ success: false, error: String(error) }, 500);
32
+ }
33
+ });
34
+ }
35
+ for (const routePath of buildControlRouteAliases("/authorization/config")) {
36
+ app.post(routePath, async (c) => {
37
+ try {
38
+ const body = (await c.req.json().catch(() => ({})));
39
+ const payload = await writeAuthControlConfig({
40
+ context: getAgentContext(),
41
+ config: body.config && typeof body.config === "object" ? body.config : {},
42
+ });
43
+ return c.json({
44
+ success: true,
45
+ ...payload,
46
+ });
47
+ }
48
+ catch (error) {
49
+ return c.json({ success: false, error: String(error) }, 500);
50
+ }
51
+ });
52
+ }
53
+ for (const routePath of buildControlRouteAliases("/authorization/action")) {
54
+ app.post(routePath, async (c) => {
55
+ try {
56
+ const body = (await c.req.json().catch(() => ({})));
57
+ const action = String(body.action || "").trim();
58
+ const channel = normalizeChatChannel(body.channel);
59
+ if (!action || !channel) {
60
+ return c.json({ success: false, error: "Missing action/channel" }, 400);
61
+ }
62
+ if (action !== "setUserRole") {
63
+ return c.json({ success: false, error: `Unsupported action: ${action}` }, 400);
64
+ }
65
+ const payload = await setAuthControlUserRole({
66
+ context: getAgentContext(),
67
+ input: {
68
+ channel,
69
+ userId: String(body.userId || "").trim(),
70
+ roleId: String(body.roleId || "").trim(),
71
+ },
72
+ });
73
+ return c.json({
74
+ success: true,
75
+ ...payload,
76
+ });
77
+ }
78
+ catch (error) {
79
+ return c.json({ success: false, error: String(error) }, 500);
80
+ }
81
+ });
82
+ }
83
+ }
84
+ //# sourceMappingURL=ControlAuthorizationRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlAuthorizationRoutes.js","sourceRoot":"","sources":["../../../../src/agent/http/control/ControlAuthorizationRoutes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Agent Control API 路由入口模块。
3
+ *
4
+ * 职责说明:
5
+ * 1. 为单 agent control API 暴露独立 router。
6
+ * 2. 将控制域的 API 装配收敛在 `server/http/control/` 下。
7
+ * 3. server 只负责挂载该 router,不再持有控制面细节。
8
+ *
9
+ * 命名说明(中文)
10
+ * - 这里的 control 指“单 agent 控制域”。
11
+ * - 它不是 city 的 gateway / control plane。
12
+ * - 当前公开路径统一使用 `/api/control/*`。
13
+ */
14
+ import { Hono } from "hono";
15
+ import type { AgentRuntime } from "@downcity/agent/internal/types/runtime/agent/AgentRuntime.js";
16
+ import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
17
+ /**
18
+ * control router 参数。
19
+ */
20
+ type ControlRouterOptions = {
21
+ /**
22
+ * 读取当前 agent runtime。
23
+ */
24
+ getAgentRuntime: () => AgentRuntime;
25
+ /**
26
+ * 读取当前 agent 执行上下文。
27
+ */
28
+ getAgentContext: () => AgentContext;
29
+ };
30
+ /**
31
+ * 创建单 agent control API 专用路由。
32
+ */
33
+ export declare function createControlRouter(options: ControlRouterOptions): Hono;
34
+ export {};
35
+ //# sourceMappingURL=ControlRouter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlRouter.d.ts","sourceRoot":"","sources":["../../../../src/agent/http/control/ControlRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AAGjG;;GAEG;AACH,KAAK,oBAAoB,GAAG;IAC1B;;OAEG;IACH,eAAe,EAAE,MAAM,YAAY,CAAC;IACpC;;OAEG;IACH,eAAe,EAAE,MAAM,YAAY,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAQN"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Agent Control API 路由入口模块。
3
+ *
4
+ * 职责说明:
5
+ * 1. 为单 agent control API 暴露独立 router。
6
+ * 2. 将控制域的 API 装配收敛在 `server/http/control/` 下。
7
+ * 3. server 只负责挂载该 router,不再持有控制面细节。
8
+ *
9
+ * 命名说明(中文)
10
+ * - 这里的 control 指“单 agent 控制域”。
11
+ * - 它不是 city 的 gateway / control plane。
12
+ * - 当前公开路径统一使用 `/api/control/*`。
13
+ */
14
+ import { Hono } from "hono";
15
+ import { registerControlApiRoutes } from "../../../agent/http/control/ControlApiRoutes.js";
16
+ /**
17
+ * 创建单 agent control API 专用路由。
18
+ */
19
+ export function createControlRouter(options) {
20
+ const router = new Hono();
21
+ registerControlApiRoutes({
22
+ app: router,
23
+ getAgentRuntime: options.getAgentRuntime,
24
+ getAgentContext: options.getAgentContext,
25
+ });
26
+ return router;
27
+ }
28
+ //# sourceMappingURL=ControlRouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlRouter.js","sourceRoot":"","sources":["../../../../src/agent/http/control/ControlRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AAgBpF;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA6B;IAE7B,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,wBAAwB,CAAC;QACvB,GAAG,EAAE,MAAM;QACX,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Control 概览路由。
3
+ *
4
+ * 关键点(中文)
5
+ * - 聚合 overview 与 plugin 运行态两块轻量只读接口。
6
+ * - 只负责路由层拼装,不承载复杂业务状态机。
7
+ */
8
+ import type { ControlRouteRegistrationParams } from "../../../agent/http/control/types/ControlRoutes.js";
9
+ /**
10
+ * 注册概览与运行态 plugin 路由。
11
+ */
12
+ export declare function registerControlOverviewRoutes(params: ControlRouteRegistrationParams): void;
13
+ //# sourceMappingURL=OverviewRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverviewRoutes.d.ts","sourceRoot":"","sources":["../../../../src/agent/http/control/OverviewRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAC;AAoBlG;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,8BAA8B,GACrC,IAAI,CA2EN"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Control 概览路由。
3
+ *
4
+ * 关键点(中文)
5
+ * - 聚合 overview 与 plugin 运行态两块轻量只读接口。
6
+ * - 只负责路由层拼装,不承载复杂业务状态机。
7
+ */
8
+ import fs from "fs-extra";
9
+ import { dirname, join } from "path";
10
+ import { fileURLToPath } from "url";
11
+ import { listPluginStates } from "@downcity/agent/internal/plugin/core/Manager.js";
12
+ import { buildControlRouteAliases, toLimit } from "@downcity/agent/internal/runtime/control/CommonHelpers.js";
13
+ import { listControlSessionSummaries, readRecentLogs } from "@downcity/agent/internal/runtime/control/Helpers.js";
14
+ const __filename = fileURLToPath(import.meta.url);
15
+ const __dirname = dirname(__filename);
16
+ /**
17
+ * 当前 DC 版本号(用于 Overview 显示)。
18
+ */
19
+ const DC_VERSION = (() => {
20
+ try {
21
+ const pkg = fs.readJsonSync(join(__dirname, "../../../package.json"));
22
+ const version = String(pkg?.version || "").trim();
23
+ return version || "unknown";
24
+ }
25
+ catch {
26
+ return "unknown";
27
+ }
28
+ })();
29
+ /**
30
+ * 注册概览与运行态 plugin 路由。
31
+ */
32
+ export function registerControlOverviewRoutes(params) {
33
+ const { app } = params;
34
+ for (const routePath of buildControlRouteAliases("/overview")) {
35
+ app.get(routePath, async (c) => {
36
+ try {
37
+ const runtime = params.getAgentRuntime();
38
+ const sessionLimit = toLimit(c.req.query("sessionLimit") || c.req.query("contextLimit"), 20);
39
+ const sessions = await listControlSessionSummaries({
40
+ projectRoot: runtime.rootPath,
41
+ agentId: runtime.paths.agentId,
42
+ executionContext: params.getAgentContext(),
43
+ limit: sessionLimit,
44
+ });
45
+ const runtimePlugins = listPluginStates({
46
+ context: params.getAgentContext(),
47
+ });
48
+ const taskResult = await params.getAgentContext().plugins.runAction({
49
+ plugin: "task",
50
+ action: "list",
51
+ });
52
+ const taskData = taskResult.data && typeof taskResult.data === "object" && !Array.isArray(taskResult.data)
53
+ ? taskResult.data
54
+ : {};
55
+ const tasks = Array.isArray(taskData.tasks) ? taskData.tasks : [];
56
+ const logs = await readRecentLogs({
57
+ projectRoot: runtime.rootPath,
58
+ limit: 50,
59
+ });
60
+ const statusCount = {
61
+ enabled: tasks.filter((x) => x.status === "enabled").length,
62
+ paused: tasks.filter((x) => x.status === "paused").length,
63
+ disabled: tasks.filter((x) => x.status === "disabled").length,
64
+ };
65
+ return c.json({
66
+ success: true,
67
+ cityVersion: DC_VERSION,
68
+ now: new Date().toISOString(),
69
+ agent: {
70
+ id: runtime.config.id,
71
+ status: "running",
72
+ },
73
+ sessions: {
74
+ total: sessions.length,
75
+ items: sessions,
76
+ },
77
+ plugins: runtimePlugins,
78
+ tasks: {
79
+ total: tasks.length,
80
+ statusCount,
81
+ },
82
+ logs,
83
+ });
84
+ }
85
+ catch (error) {
86
+ return c.json({ success: false, error: String(error) }, 500);
87
+ }
88
+ });
89
+ }
90
+ for (const routePath of buildControlRouteAliases("/plugins/list")) {
91
+ app.get(routePath, (c) => {
92
+ return c.json({
93
+ success: true,
94
+ plugins: listPluginStates({
95
+ context: params.getAgentContext(),
96
+ }),
97
+ });
98
+ });
99
+ }
100
+ }
101
+ //# sourceMappingURL=OverviewRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverviewRoutes.js","sourceRoot":"","sources":["../../../../src/agent/http/control/OverviewRoutes.ts"],"names":[],"mappings":"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"}