downcity 1.1.186 → 1.1.190

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.186",
3
+ "version": "1.1.190",
4
4
  "type": "module",
5
5
  "description": "Downcity CLI bundle — installs city and town commands",
6
6
  "bin": {
@@ -23,10 +23,10 @@
23
23
  "@ai-sdk/openai": "^3.0.67",
24
24
  "@ai-sdk/openai-compatible": "^2.0.48",
25
25
  "@ai-sdk/xai": "^3.0.93",
26
- "@downcity/agent": "^1.1.126",
27
- "@downcity/city": "^0.2.78",
28
- "@downcity/plugins": "^1.0.79",
29
- "@downcity/shell": "^0.1.15",
26
+ "@downcity/agent": "^1.1.135",
27
+ "@downcity/city": "^0.2.82",
28
+ "@downcity/plugins": "^1.0.83",
29
+ "@downcity/shell": "^0.1.19",
30
30
  "@larksuiteoapi/node-sdk": "^1.66.0",
31
31
  "@openrouter/ai-sdk-provider": "^2.9.0",
32
32
  "ai": "^6.0.193",
@@ -8,9 +8,9 @@
8
8
  */
9
9
  import { Hono } from "hono";
10
10
  import http from "node:http";
11
+ import type { Hono as HonoType } from "hono";
11
12
  import type { AgentRuntime } from "@downcity/agent/internal/types/runtime/agent/AgentRuntime.js";
12
13
  import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
13
- import type { AgentSessionCollection } from "@downcity/agent";
14
14
  import type { Shell } from "@downcity/shell";
15
15
  /**
16
16
  * Agent HTTP 网关启动参数。
@@ -24,8 +24,8 @@ export interface AgentHttpGatewayStartOptions {
24
24
  getAgentRuntime: () => AgentRuntime;
25
25
  /** 当前 agent context 读取函数。 */
26
26
  getAgentContext: () => AgentContext;
27
- /** 可选 SDK Session 集合绑定。 */
28
- sessionCollection?: AgentSessionCollection;
27
+ /** 可选 SDK transport 子路由(来自 `@downcity/server` 的 `AgentHTTP.router()`)。 */
28
+ sdkRouter?: HonoType;
29
29
  /** 可选 Shell 绑定。 */
30
30
  getShell?: () => Shell | undefined;
31
31
  }
@@ -43,7 +43,7 @@ export interface AgentHttpGatewayInstance {
43
43
  /**
44
44
  * 创建 Agent HTTP 网关 Hono 应用。
45
45
  */
46
- export declare function createAgentHttpGatewayApp(options: Pick<AgentHttpGatewayStartOptions, "getAgentRuntime" | "getAgentContext" | "sessionCollection" | "getShell">): Hono;
46
+ export declare function createAgentHttpGatewayApp(options: Pick<AgentHttpGatewayStartOptions, "getAgentRuntime" | "getAgentContext" | "sdkRouter" | "getShell">): Hono;
47
47
  /**
48
48
  * 启动 Town 托管的 Agent HTTP 网关。
49
49
  */
@@ -1 +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;AAW7B,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;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;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;IAC3C,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC;CACpC;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,GAAG,UAAU,CACzE,GACA,IAAI,CA2CN;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAwBnC"}
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;AAI7B,OAAO,KAAK,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,MAAM,CAAC;AAO7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;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,0EAA0E;IAC1E,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,mBAAmB;IACnB,QAAQ,CAAC,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC;CACpC;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,WAAW,GAAG,UAAU,CACjE,GACA,IAAI,CA2CN;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,wBAAwB,CAAC,CAwBnC"}
@@ -18,7 +18,6 @@ import { healthRouter } from "./http/health/health.js";
18
18
  import { createPluginsRouter } from "./http/plugins/plugins.js";
19
19
  import { createStaticRouter } from "./http/static/static.js";
20
20
  import { createControlRouter } from "./http/control/ControlRouter.js";
21
- import { createSdkRouter } from "./http/sdk/Router.js";
22
21
  import { createShellRouter } from "./http/shell/shell.js";
23
22
  /**
24
23
  * 创建 Agent HTTP 网关 Hono 应用。
@@ -49,8 +48,8 @@ export function createAgentHttpGatewayApp(options) {
49
48
  getAgentRuntime: options.getAgentRuntime,
50
49
  getAgentContext: options.getAgentContext,
51
50
  }));
52
- if (options.sessionCollection) {
53
- app.route("/", createSdkRouter(options.sessionCollection));
51
+ if (options.sdkRouter) {
52
+ app.route("/", options.sdkRouter);
54
53
  }
55
54
  for (const plugin of options.getAgentContext().agent.pluginInstances.values()) {
56
55
  plugin.http?.server?.register({
@@ -1 +1 @@
1
- {"version":3,"file":"AgentHttpGateway.js","sourceRoot":"","sources":["../../src/agent/AgentHttpGateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentHttpGateway.js","sourceRoot":"","sources":["../../src/agent/AgentHttpGateway.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAmC1D;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAGC;IAED,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IAEvB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;IACvB,GAAG,CAAC,GAAG,CACL,GAAG,EACH,IAAI,CAAC;QACH,MAAM,EAAE,GAAG;QACX,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC;QACzD,YAAY,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;KAChD,CAAC,CACH,CAAC;IAEF,uDAAuD;IACvD,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,kBAAkB,CAAC;QAChC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC7B,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;QACjC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,iBAAiB,CAAC;QAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;KACrC,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;QACjC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC,CAAC;IACJ,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;QACjC,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC,CAAC;IACJ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9E,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC;YAC5B,GAAG;YACH,UAAU,EAAE,OAAO,CAAC,eAAe;YACnC,UAAU,EAAE,MAAM,CAAC,IAAI;SACxB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAqC;IAErC,MAAM,GAAG,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE9C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QAClC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;YAC7C,YAAY,CAAC,IAAI,CACf,8CAA8C,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAC7E,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG;QACH,MAAM;QACN,KAAK,CAAC,IAAI;YACR,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,GAAS,EACT,OAAqC;IAErC,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;YACnC,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;gBAC1C,MAAM;gBACN,OAAO,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,OAAiC,CAAC;gBAC3D,IAAI,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;aACrD,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1C,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;YACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBACtD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YACD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CACjC,QAAQ,CAAC,IAAwD,CAClE,CAAC;YACF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,GAAyB;IACtD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Run.d.ts","sourceRoot":"","sources":["../../src/agent/Run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAQvE;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,YAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CA6Hf"}
1
+ {"version":3,"file":"Run.d.ts","sourceRoot":"","sources":["../../src/agent/Run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAQvE;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,YAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CA6Hf"}
package/town/agent/Run.js CHANGED
@@ -12,6 +12,7 @@
12
12
  import path from "node:path";
13
13
  import { Agent, loadDowncityConfig, loadStaticSystemPrompts, StaticPromptCatalog, } from "@downcity/agent";
14
14
  import { Shell } from "@downcity/shell";
15
+ import { AgentHTTP, AgentRPC } from "@downcity/server";
15
16
  import { CliError } from "../shared/CliError.js";
16
17
  import { createRuntimeModel } from "../town/city-model/CreateRuntimeModel.js";
17
18
  import { mergeProcessEnvWithPlatformGlobalEnv } from "../env/ProcessEnv.js";
@@ -100,22 +101,19 @@ export async function runCommand(cwd = ".", options) {
100
101
  process.env.DC_AGENT_RPC_HOST = rpc_host;
101
102
  process.env.DC_AGENT_ID = agentId;
102
103
  process.env.DC_AGENT_PATH = projectRoot;
103
- const startResult = await agent.start({
104
- rpc: {
105
- port: rpc_port,
106
- host: rpc_host,
107
- },
108
- plugins: true,
109
- });
110
- if (!startResult.rpc?.server) {
111
- throw new Error("Agent start did not return expected RPC binding");
112
- }
104
+ // 关键点(中文):等待 Agent 后台能力(plugin lifecycle / ActionSchedule)启动完成。
105
+ await agent.ready();
106
+ // 关键点(中文):RPC transport 由 `@downcity/server` 提供,独立于 Agent 实例本身。
107
+ const rpc = new AgentRPC(agent);
108
+ await rpc.listen({ host: rpc_host, port: rpc_port });
109
+ // 关键点(中文):SDK HTTP transport 由 `@downcity/server` 提供子路由,挂到 town gateway 上。
110
+ const agent_http = new AgentHTTP(agent);
113
111
  const server = await startAgentHttpGateway({
114
112
  host,
115
113
  port,
116
114
  getAgentRuntime: () => agent.getRuntime(),
117
115
  getAgentContext: () => agent.getContext(),
118
- sessionCollection: agent.getSessionCollection(),
116
+ sdkRouter: agent_http.router(),
119
117
  getShell: () => agent.getShell(),
120
118
  });
121
119
  const agentLogger = agent.getLogger();
@@ -129,7 +127,8 @@ export async function runCommand(cwd = ".", options) {
129
127
  agentLogger.info(`Received ${signal} signal, shutting down...`);
130
128
  promptCatalog.stop();
131
129
  await server.stop();
132
- await agent.stop();
130
+ await rpc.close();
131
+ await agent.dispose();
133
132
  // Save logs
134
133
  await agentLogger.saveAllLogs();
135
134
  agentLogger.info("👋 Downcity town stopped");
@@ -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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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * SDK HTTP 路由入口模块。
3
- *
4
- * 关键点(中文)
5
- * - 这里专门承载 `RemoteAgent` 对应的最小 SDK transport。
6
- * - 路由面围绕 Session actor 公开能力展开,不混入 control UI 语义。
7
- */
8
- import { Hono } from "hono";
9
- import type { AgentSessionCollection } from "@downcity/agent/internal/types/agent/AgentTypes.js";
10
- /**
11
- * 创建 Town gateway 使用的 SDK HTTP router。
12
- */
13
- export declare function createSdkRouter(sessionCollection: AgentSessionCollection): Hono;
14
- //# sourceMappingURL=Router.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../../../src/agent/http/sdk/Router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AAGjG;;GAEG;AACH,wBAAgB,eAAe,CAC7B,iBAAiB,EAAE,sBAAsB,GACxC,IAAI,CAIN"}
@@ -1,18 +0,0 @@
1
- /**
2
- * SDK HTTP 路由入口模块。
3
- *
4
- * 关键点(中文)
5
- * - 这里专门承载 `RemoteAgent` 对应的最小 SDK transport。
6
- * - 路由面围绕 Session actor 公开能力展开,不混入 control UI 语义。
7
- */
8
- import { Hono } from "hono";
9
- import { registerSdkSessionRoutes } from "./SessionRoutes.js";
10
- /**
11
- * 创建 Town gateway 使用的 SDK HTTP router。
12
- */
13
- export function createSdkRouter(sessionCollection) {
14
- const router = new Hono();
15
- registerSdkSessionRoutes(router, sessionCollection);
16
- return router;
17
- }
18
- //# sourceMappingURL=Router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../../src/agent/http/sdk/Router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,iBAAyC;IAEzC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * SDK HTTP session 路由。
3
- *
4
- * 关键点(中文)
5
- * - 这组路由面向 `RemoteAgent`,只暴露最小 Session actor 使用面。
6
- * - 当前公开输入收口到 `prompt()`,公开输出收口到 `events` 长连接。
7
- * - 不复用 control API 的控制台语义,避免 transport 面混入非 SDK 约束。
8
- */
9
- import { Hono } from "hono";
10
- import type { AgentSessionCollection } from "@downcity/agent/internal/types/agent/AgentTypes.js";
11
- /**
12
- * 注册 SDK session 路由。
13
- */
14
- export declare function registerSdkSessionRoutes(app: Hono, sessionCollection: AgentSessionCollection): void;
15
- //# sourceMappingURL=SessionRoutes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRoutes.d.ts","sourceRoot":"","sources":["../../../../src/agent/http/sdk/SessionRoutes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,oDAAoD,CAAC;AAS5D;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,IAAI,EACT,iBAAiB,EAAE,sBAAsB,GACxC,IAAI,CA+QN"}
@@ -1,249 +0,0 @@
1
- /**
2
- * SDK HTTP session 路由。
3
- *
4
- * 关键点(中文)
5
- * - 这组路由面向 `RemoteAgent`,只暴露最小 Session actor 使用面。
6
- * - 当前公开输入收口到 `prompt()`,公开输出收口到 `events` 长连接。
7
- * - 不复用 control API 的控制台语义,避免 transport 面混入非 SDK 约束。
8
- */
9
- const NDJSON_CONTENT_TYPE = "application/x-ndjson; charset=utf-8";
10
- const SDK_EVENTS_READY_FRAME = {
11
- type: "sdk-events-ready",
12
- };
13
- /**
14
- * 注册 SDK session 路由。
15
- */
16
- export function registerSdkSessionRoutes(app, sessionCollection) {
17
- app.get("/api/sdk/sessions", async (c) => {
18
- try {
19
- const input = {
20
- ...(c.req.query("limit") ? { limit: Number(c.req.query("limit")) } : {}),
21
- ...(c.req.query("cursor") ? { cursor: c.req.query("cursor") } : {}),
22
- ...(c.req.query("query") ? { query: c.req.query("query") } : {}),
23
- };
24
- const page = await sessionCollection.listSessions(input);
25
- return c.json({
26
- success: true,
27
- page,
28
- sessions: page.items,
29
- });
30
- }
31
- catch (error) {
32
- return c.json({
33
- success: false,
34
- error: error instanceof Error ? error.message : String(error),
35
- }, 500);
36
- }
37
- });
38
- app.post("/api/sdk/sessions", async (c) => {
39
- try {
40
- const body = (await c.req.json().catch(() => ({})));
41
- const session = await sessionCollection.createSession({
42
- ...(body.sessionId ? { sessionId: String(body.sessionId).trim() } : {}),
43
- });
44
- return c.json({
45
- success: true,
46
- session: await session.getInfo(),
47
- });
48
- }
49
- catch (error) {
50
- return c.json({
51
- success: false,
52
- error: error instanceof Error ? error.message : String(error),
53
- }, 500);
54
- }
55
- });
56
- app.get("/api/sdk/sessions/:sessionId", async (c) => {
57
- try {
58
- const sessionId = String(c.req.param("sessionId") || "").trim();
59
- if (!sessionId) {
60
- return c.json({ success: false, error: "Missing sessionId" }, 400);
61
- }
62
- const session = await sessionCollection.getSession(sessionId);
63
- return c.json({
64
- success: true,
65
- session: await session.getInfo(),
66
- });
67
- }
68
- catch (error) {
69
- return c.json({
70
- success: false,
71
- error: error instanceof Error ? error.message : String(error),
72
- }, 500);
73
- }
74
- });
75
- app.post("/api/sdk/sessions/:sessionId/prompt", async (c) => {
76
- try {
77
- const sessionId = String(c.req.param("sessionId") || "").trim();
78
- if (!sessionId) {
79
- return c.json({ success: false, error: "Missing sessionId" }, 400);
80
- }
81
- const body = (await c.req.json());
82
- const session = await sessionCollection.getSession(sessionId);
83
- const turn = await session.prompt(body);
84
- return c.json({
85
- success: true,
86
- turn: {
87
- id: turn.id,
88
- },
89
- });
90
- }
91
- catch (error) {
92
- return c.json({
93
- success: false,
94
- error: error instanceof Error ? error.message : String(error),
95
- }, 500);
96
- }
97
- });
98
- app.get("/api/sdk/sessions/:sessionId/events", async (c) => {
99
- const sessionId = String(c.req.param("sessionId") || "").trim();
100
- if (!sessionId) {
101
- return c.json({ success: false, error: "Missing sessionId" }, 400);
102
- }
103
- try {
104
- const session = await sessionCollection.getSession(sessionId);
105
- const encoder = new TextEncoder();
106
- const requestSignal = c.req.raw.signal;
107
- let cleanupEventsConnection = () => { };
108
- const stream = new ReadableStream({
109
- cancel() {
110
- cleanupEventsConnection();
111
- },
112
- start(controller) {
113
- const writeLine = (value) => {
114
- controller.enqueue(encoder.encode(`${JSON.stringify(value)}\n`));
115
- };
116
- const unsubscribe = session.subscribe((event) => {
117
- writeLine(event);
118
- });
119
- const closeStream = () => {
120
- cleanupEventsConnection();
121
- try {
122
- controller.close();
123
- }
124
- catch {
125
- // ignore duplicate close attempts
126
- }
127
- };
128
- cleanupEventsConnection = () => {
129
- unsubscribe();
130
- requestSignal.removeEventListener("abort", closeStream);
131
- };
132
- if (requestSignal.aborted) {
133
- closeStream();
134
- return;
135
- }
136
- requestSignal.addEventListener("abort", closeStream, { once: true });
137
- writeLine(SDK_EVENTS_READY_FRAME);
138
- },
139
- });
140
- return new Response(stream, {
141
- status: 200,
142
- headers: {
143
- "Content-Type": NDJSON_CONTENT_TYPE,
144
- "Cache-Control": "no-cache, no-transform",
145
- "X-Accel-Buffering": "no",
146
- },
147
- });
148
- }
149
- catch (error) {
150
- return c.json({
151
- success: false,
152
- error: error instanceof Error ? error.message : String(error),
153
- }, 500);
154
- }
155
- });
156
- app.get("/api/sdk/sessions/:sessionId/history", async (c) => {
157
- try {
158
- const sessionId = String(c.req.param("sessionId") || "").trim();
159
- if (!sessionId) {
160
- return c.json({ success: false, error: "Missing sessionId" }, 400);
161
- }
162
- const session = await sessionCollection.getSession(sessionId);
163
- const history = await session.history({
164
- ...(c.req.query("limit") ? { limit: Number(c.req.query("limit")) } : {}),
165
- ...(c.req.query("cursor") ? { cursor: c.req.query("cursor") } : {}),
166
- ...(c.req.query("order")
167
- ? { order: c.req.query("order") }
168
- : {}),
169
- ...(c.req.query("view")
170
- ? { view: c.req.query("view") }
171
- : {}),
172
- });
173
- return c.json({
174
- success: true,
175
- history,
176
- });
177
- }
178
- catch (error) {
179
- return c.json({
180
- success: false,
181
- error: error instanceof Error ? error.message : String(error),
182
- }, 500);
183
- }
184
- });
185
- app.get("/api/sdk/sessions/:sessionId/messages", async (c) => {
186
- try {
187
- const sessionId = String(c.req.param("sessionId") || "").trim();
188
- if (!sessionId) {
189
- return c.json({ success: false, error: "Missing sessionId" }, 400);
190
- }
191
- const session = await sessionCollection.getSession(sessionId);
192
- const history = await session.history({
193
- view: "message",
194
- });
195
- return c.json({
196
- success: true,
197
- messages: history.items,
198
- history,
199
- });
200
- }
201
- catch (error) {
202
- return c.json({
203
- success: false,
204
- error: error instanceof Error ? error.message : String(error),
205
- }, 500);
206
- }
207
- });
208
- app.get("/api/sdk/sessions/:sessionId/system", async (c) => {
209
- try {
210
- const sessionId = String(c.req.param("sessionId") || "").trim();
211
- if (!sessionId) {
212
- return c.json({ success: false, error: "Missing sessionId" }, 400);
213
- }
214
- const session = await sessionCollection.getSession(sessionId);
215
- return c.json({
216
- success: true,
217
- system: await session.system(),
218
- });
219
- }
220
- catch (error) {
221
- return c.json({
222
- success: false,
223
- error: error instanceof Error ? error.message : String(error),
224
- }, 500);
225
- }
226
- });
227
- app.post("/api/sdk/sessions/:sessionId/fork", async (c) => {
228
- try {
229
- const sessionId = String(c.req.param("sessionId") || "").trim();
230
- if (!sessionId) {
231
- return c.json({ success: false, error: "Missing sessionId" }, 400);
232
- }
233
- const body = (await c.req.json().catch(() => ({})));
234
- const session = await sessionCollection.getSession(sessionId);
235
- const forked = await session.fork(String(body.messageId || "").trim() || undefined);
236
- return c.json({
237
- success: true,
238
- session: await forked.getInfo(),
239
- });
240
- }
241
- catch (error) {
242
- return c.json({
243
- success: false,
244
- error: error instanceof Error ? error.message : String(error),
245
- }, 500);
246
- }
247
- });
248
- }
249
- //# sourceMappingURL=SessionRoutes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionRoutes.js","sourceRoot":"","sources":["../../../../src/agent/http/sdk/SessionRoutes.ts"],"names":[],"mappings":"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"}