@downcity/agent 1.1.129 → 1.1.135

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 (77) hide show
  1. package/bin/agent/local/Agent.d.ts +38 -6
  2. package/bin/agent/local/Agent.d.ts.map +1 -1
  3. package/bin/agent/local/Agent.js +62 -11
  4. package/bin/agent/local/Agent.js.map +1 -1
  5. package/bin/agent/local/AgentRuntimeFactory.d.ts +9 -34
  6. package/bin/agent/local/AgentRuntimeFactory.d.ts.map +1 -1
  7. package/bin/agent/local/AgentRuntimeFactory.js +2 -41
  8. package/bin/agent/local/AgentRuntimeFactory.js.map +1 -1
  9. package/bin/agent/local/services/AgentAssemblyService.d.ts +1 -1
  10. package/bin/agent/local/services/AgentAssemblyService.d.ts.map +1 -1
  11. package/bin/agent/local/services/AgentAssemblyService.js +28 -9
  12. package/bin/agent/local/services/AgentAssemblyService.js.map +1 -1
  13. package/bin/agent/local/services/AgentBackgroundService.d.ts +55 -0
  14. package/bin/agent/local/services/AgentBackgroundService.d.ts.map +1 -0
  15. package/bin/agent/local/services/AgentBackgroundService.js +86 -0
  16. package/bin/agent/local/services/AgentBackgroundService.js.map +1 -0
  17. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts +8 -0
  18. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +1 -1
  19. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +22 -0
  20. package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +1 -1
  21. package/bin/index.d.ts +3 -3
  22. package/bin/index.d.ts.map +1 -1
  23. package/bin/index.js +1 -2
  24. package/bin/index.js.map +1 -1
  25. package/bin/session/services/SessionViewService.d.ts.map +1 -1
  26. package/bin/session/services/SessionViewService.js +1 -7
  27. package/bin/session/services/SessionViewService.js.map +1 -1
  28. package/bin/types/agent/AgentOptions.d.ts +0 -63
  29. package/bin/types/agent/AgentOptions.d.ts.map +1 -1
  30. package/bin/types/agent/AgentTypes.d.ts +1 -1
  31. package/bin/types/agent/AgentTypes.d.ts.map +1 -1
  32. package/bin/types/runtime/agent/AgentContext.d.ts +66 -42
  33. package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
  34. package/bin/types/runtime/agent/AgentContext.js +77 -3
  35. package/bin/types/runtime/agent/AgentContext.js.map +1 -1
  36. package/package.json +3 -3
  37. package/src/agent/local/Agent.ts +63 -14
  38. package/src/agent/local/AgentRuntimeFactory.ts +9 -83
  39. package/src/agent/local/services/AgentAssemblyService.ts +30 -13
  40. package/src/agent/local/services/AgentBackgroundService.ts +116 -0
  41. package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +22 -0
  42. package/src/index.ts +2 -9
  43. package/src/session/services/SessionViewService.ts +1 -7
  44. package/src/types/agent/AgentOptions.ts +0 -69
  45. package/src/types/agent/AgentTypes.ts +0 -5
  46. package/src/types/runtime/agent/AgentContext.ts +103 -43
  47. package/tsconfig.tsbuildinfo +1 -1
  48. package/bin/agent/local/services/AgentLifecycleService.d.ts +0 -65
  49. package/bin/agent/local/services/AgentLifecycleService.d.ts.map +0 -1
  50. package/bin/agent/local/services/AgentLifecycleService.js +0 -140
  51. package/bin/agent/local/services/AgentLifecycleService.js.map +0 -1
  52. package/bin/rpc/Server.d.ts +0 -31
  53. package/bin/rpc/Server.d.ts.map +0 -1
  54. package/bin/rpc/Server.js +0 -106
  55. package/bin/rpc/Server.js.map +0 -1
  56. package/bin/rpc/server/InternalHandlers.d.ts +0 -21
  57. package/bin/rpc/server/InternalHandlers.d.ts.map +0 -1
  58. package/bin/rpc/server/InternalHandlers.js +0 -244
  59. package/bin/rpc/server/InternalHandlers.js.map +0 -1
  60. package/bin/rpc/server/RequestDispatcher.d.ts +0 -27
  61. package/bin/rpc/server/RequestDispatcher.d.ts.map +0 -1
  62. package/bin/rpc/server/RequestDispatcher.js +0 -38
  63. package/bin/rpc/server/RequestDispatcher.js.map +0 -1
  64. package/bin/rpc/server/SdkSessionHandlers.d.ts +0 -25
  65. package/bin/rpc/server/SdkSessionHandlers.d.ts.map +0 -1
  66. package/bin/rpc/server/SdkSessionHandlers.js +0 -86
  67. package/bin/rpc/server/SdkSessionHandlers.js.map +0 -1
  68. package/bin/rpc/server/ServerTypes.d.ts +0 -64
  69. package/bin/rpc/server/ServerTypes.d.ts.map +0 -1
  70. package/bin/rpc/server/ServerTypes.js +0 -9
  71. package/bin/rpc/server/ServerTypes.js.map +0 -1
  72. package/src/agent/local/services/AgentLifecycleService.ts +0 -198
  73. package/src/rpc/Server.ts +0 -143
  74. package/src/rpc/server/InternalHandlers.ts +0 -285
  75. package/src/rpc/server/RequestDispatcher.ts +0 -67
  76. package/src/rpc/server/SdkSessionHandlers.ts +0 -106
  77. package/src/rpc/server/ServerTypes.ts +0 -70
@@ -11,7 +11,7 @@ import type { AgentContext } from "../../types/runtime/agent/AgentContext.js";
11
11
  import type { AgentRuntime } from "../../types/runtime/agent/AgentRuntime.js";
12
12
  import type { DowncityConfig } from "../../types/config/DowncityConfig.js";
13
13
  import type { AgentPlugins } from "../../plugin/types/Plugin.js";
14
- import type { AgentCreateSessionInput, AgentListSessionsInput, AgentOptions, AgentSession, AgentSessionCollection, AgentSessionSummaryPage, AgentStartOptions, AgentStartResult, AgentStopResult } from "../../types/agent/AgentTypes.js";
14
+ import type { AgentCreateSessionInput, AgentListSessionsInput, AgentOptions, AgentSession, AgentSessionCollection, AgentSessionSummaryPage } from "../../types/agent/AgentTypes.js";
15
15
  import type { ShellApprovalMode, ShellApprovalDecisionResult, ShellApprovalModeUpdateResult, ShellApprovalModeOption, ShellSessionApprovalModeView, ShellApprovalView, Shell } from "@downcity/shell";
16
16
  import { Logger } from "../../utils/logger/Logger.js";
17
17
  /**
@@ -31,7 +31,7 @@ export declare class Agent {
31
31
  private readonly defaultModel?;
32
32
  private readonly SessionClass;
33
33
  private readonly sessionManager;
34
- private readonly lifecycleService;
34
+ private readonly backgroundService;
35
35
  private readonly shell?;
36
36
  private instruction;
37
37
  constructor(options: AgentOptions);
@@ -48,13 +48,21 @@ export declare class Agent {
48
48
  */
49
49
  listSessions(input?: AgentListSessionsInput): Promise<AgentSessionSummaryPage>;
50
50
  /**
51
- * 启动当前 agent 实例的长期运行能力。
51
+ * 等待 Agent 后台能力启动完成。
52
+ *
53
+ * 关键点(中文)
54
+ * - Agent 构造完成即开始启动 plugin lifecycle 与 ActionSchedule。
55
+ * - 调用方在需要确认后台能力就绪时使用,例如启动后立刻读取 plugin 状态。
52
56
  */
53
- start(options?: AgentStartOptions): Promise<AgentStartResult>;
57
+ ready(): Promise<void>;
54
58
  /**
55
- * 停止当前 agent 实例的长期运行能力。
59
+ * 释放当前 Agent 的后台能力。
60
+ *
61
+ * 关键点(中文)
62
+ * - 关闭 plugin lifecycle、ActionSchedule、shell 等后台资源。
63
+ * - 不负责任何 transport(RPC / HTTP);transport 由 `@downcity/server` 自行管理。
56
64
  */
57
- stop(): Promise<AgentStopResult>;
65
+ dispose(): Promise<void>;
58
66
  /**
59
67
  * 列出当前 shell pending approvals。
60
68
  */
@@ -92,6 +100,30 @@ export declare class Agent {
92
100
  * 更新当前 SDK Agent 的静态基础指令。
93
101
  */
94
102
  setInstruction(input: string | string[]): void;
103
+ /**
104
+ * 返回当前 agent env 的浅拷贝快照。
105
+ *
106
+ * 关键点(中文)
107
+ * - 返回的是拷贝,调用方修改它不会影响 agent 真实状态。
108
+ * - 想改 env 请使用 `setEnv` / `patchEnv`。
109
+ */
110
+ getEnv(): Record<string, string>;
111
+ /**
112
+ * 整体覆盖 agent env。
113
+ *
114
+ * 关键点(中文)
115
+ * - 直接清空当前共享 env 对象,再写入新值,保证 plugin / runtime / shell 看到的是同一引用。
116
+ * - 仅写入字符串值,`null` / `undefined` 表示删除该 key。
117
+ */
118
+ setEnv(next: Record<string, string | null | undefined>): void;
119
+ /**
120
+ * 增量合并 agent env。
121
+ *
122
+ * 关键点(中文)
123
+ * - `null` / `undefined` 表示删除该 key;其他值会强制转字符串后写入。
124
+ * - 修改原地生效,所有持有 `context.env` 引用的模块立即可见。
125
+ */
126
+ patchEnv(patch: Record<string, string | null | undefined>): void;
95
127
  /**
96
128
  * 返回当前项目根目录解析后的配置快照。
97
129
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/agent/local/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/agent/local/Agent.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  import { normalizeInstructionInput } from "../../agent/local/AgentInstructions.js";
10
10
  import { AgentAssemblyService, } from "../../agent/local/services/AgentAssemblyService.js";
11
11
  import { AgentSessionManager } from "../../agent/local/services/AgentSessionManager.js";
12
- import { AgentLifecycleService } from "../../agent/local/services/AgentLifecycleService.js";
12
+ import { AgentBackgroundService } from "../../agent/local/services/AgentBackgroundService.js";
13
13
  /**
14
14
  * SDK 本地 Agent。
15
15
  */
@@ -27,7 +27,7 @@ export class Agent {
27
27
  defaultModel;
28
28
  SessionClass;
29
29
  sessionManager;
30
- lifecycleService;
30
+ backgroundService;
31
31
  shell;
32
32
  instruction;
33
33
  constructor(options) {
@@ -65,11 +65,10 @@ export class Agent {
65
65
  this.shell = assembly.shell;
66
66
  this.sessionManager = this.create_session_manager(assembly);
67
67
  session_manager_ref = this.sessionManager;
68
- this.lifecycleService = new AgentLifecycleService({
68
+ // 关键点(中文):构造完成即触发后台能力启动;调用方可 `await agent.ready()` 等待。
69
+ this.backgroundService = new AgentBackgroundService({
69
70
  logger: this.logger,
70
71
  agent_context: this.agentContext,
71
- session_collection: this.sessionManager.get_session_collection(),
72
- get_runtime: () => this.runtime,
73
72
  get_shell: () => this.shell,
74
73
  });
75
74
  }
@@ -92,16 +91,24 @@ export class Agent {
92
91
  return await this.sessionManager.list_sessions(input);
93
92
  }
94
93
  /**
95
- * 启动当前 agent 实例的长期运行能力。
94
+ * 等待 Agent 后台能力启动完成。
95
+ *
96
+ * 关键点(中文)
97
+ * - Agent 构造完成即开始启动 plugin lifecycle 与 ActionSchedule。
98
+ * - 调用方在需要确认后台能力就绪时使用,例如启动后立刻读取 plugin 状态。
96
99
  */
97
- async start(options) {
98
- return await this.lifecycleService.start(options);
100
+ async ready() {
101
+ await this.backgroundService.ready();
99
102
  }
100
103
  /**
101
- * 停止当前 agent 实例的长期运行能力。
104
+ * 释放当前 Agent 的后台能力。
105
+ *
106
+ * 关键点(中文)
107
+ * - 关闭 plugin lifecycle、ActionSchedule、shell 等后台资源。
108
+ * - 不负责任何 transport(RPC / HTTP);transport 由 `@downcity/server` 自行管理。
102
109
  */
103
- async stop() {
104
- return await this.lifecycleService.stop();
110
+ async dispose() {
111
+ await this.backgroundService.dispose();
105
112
  }
106
113
  /**
107
114
  * 列出当前 shell pending approvals。
@@ -153,6 +160,50 @@ export class Agent {
153
160
  setInstruction(input) {
154
161
  this.instruction = normalizeInstructionInput(input);
155
162
  }
163
+ /**
164
+ * 返回当前 agent env 的浅拷贝快照。
165
+ *
166
+ * 关键点(中文)
167
+ * - 返回的是拷贝,调用方修改它不会影响 agent 真实状态。
168
+ * - 想改 env 请使用 `setEnv` / `patchEnv`。
169
+ */
170
+ getEnv() {
171
+ return { ...this.env };
172
+ }
173
+ /**
174
+ * 整体覆盖 agent env。
175
+ *
176
+ * 关键点(中文)
177
+ * - 直接清空当前共享 env 对象,再写入新值,保证 plugin / runtime / shell 看到的是同一引用。
178
+ * - 仅写入字符串值,`null` / `undefined` 表示删除该 key。
179
+ */
180
+ setEnv(next) {
181
+ for (const key of Object.keys(this.env)) {
182
+ delete this.env[key];
183
+ }
184
+ this.patchEnv(next);
185
+ }
186
+ /**
187
+ * 增量合并 agent env。
188
+ *
189
+ * 关键点(中文)
190
+ * - `null` / `undefined` 表示删除该 key;其他值会强制转字符串后写入。
191
+ * - 修改原地生效,所有持有 `context.env` 引用的模块立即可见。
192
+ */
193
+ patchEnv(patch) {
194
+ if (!patch || typeof patch !== "object")
195
+ return;
196
+ for (const [raw_key, raw_value] of Object.entries(patch)) {
197
+ const key = String(raw_key || "").trim();
198
+ if (!key)
199
+ continue;
200
+ if (raw_value === null || raw_value === undefined) {
201
+ delete this.env[key];
202
+ continue;
203
+ }
204
+ this.env[key] = String(raw_value);
205
+ }
206
+ }
156
207
  /**
157
208
  * 返回当前项目根目录解析后的配置快照。
158
209
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../../src/agent/local/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../../src/agent/local/Agent.ts"],"names":[],"mappings":"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"}
@@ -2,16 +2,15 @@
2
2
  * Agent runtime / context 装配工厂。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 这里只创建长期 runtime 视图与执行期 context 视图。
5
+ * - 这里只创建长期 runtime 视图。
6
+ * - `AgentContext` 已经收敛为 class,调用方直接 `new AgentContext(...)`,不再走工厂。
6
7
  * - Agent 仍然持有 session/plugin 状态;这里通过函数参数读取状态。
7
8
  */
8
9
  import type { BasePlugin } from "../../plugin/core/BasePlugin.js";
9
10
  import type { Logger } from "../../utils/logger/Logger.js";
10
11
  import type { DowncityConfig } from "../../types/config/DowncityConfig.js";
11
- import type { LanguageModel } from "ai";
12
- import type { AgentContext, SessionPort } from "../../types/runtime/agent/AgentContext.js";
12
+ import type { SessionPort } from "../../types/runtime/agent/AgentContext.js";
13
13
  import type { AgentRuntime } from "../../types/runtime/agent/AgentRuntime.js";
14
- import type { AgentPlugins } from "../../plugin/types/Plugin.js";
15
14
  import type { AgentManagedSession } from "../../types/agent/AgentTypes.js";
16
15
  /**
17
16
  * 创建 AgentRuntime 的参数。
@@ -25,7 +24,12 @@ export interface CreateAgentRuntimeOptions {
25
24
  logger: Logger;
26
25
  /** 当前解析后的配置。 */
27
26
  config: DowncityConfig;
28
- /** 当前环境变量快照。 */
27
+ /**
28
+ * 当前 agent 共享 env 对象。
29
+ *
30
+ * 关键点(中文)
31
+ * - 必须传入 Agent 持有的同一份 mutable 对象,runtime / context 直接复用同一引用。
32
+ */
29
33
  env: Record<string, string>;
30
34
  /** 当前静态 system 文本集合。 */
31
35
  systems: string[];
@@ -36,37 +40,8 @@ export interface CreateAgentRuntimeOptions {
36
40
  /** 读取当前已缓存的 session 实例。 */
37
41
  list_cached_sessions: () => AgentManagedSession[];
38
42
  }
39
- /**
40
- * 创建 AgentContext 的参数。
41
- */
42
- export interface CreateAgentContextOptions {
43
- /** 当前 AgentRuntime。 */
44
- runtime: AgentRuntime;
45
- /** 当前项目根目录。 */
46
- project_root: string;
47
- /** 统一日志器。 */
48
- logger: Logger;
49
- /** 当前解析后的配置。 */
50
- config: DowncityConfig;
51
- /** 当前环境变量快照。 */
52
- env: Record<string, string>;
53
- /** 当前静态 system 文本集合。 */
54
- systems: string[];
55
- /** 当前 plugin 实例集合。 */
56
- plugin_instances: Map<string, BasePlugin>;
57
- /** 对外 plugin 调用端口。 */
58
- plugins: AgentPlugins;
59
- /** 获取或创建 session runtime port。 */
60
- get_session_port: (session_id: string) => SessionPort;
61
- /** 解析 session 当前绑定的模型实例。 */
62
- resolve_session_model: (session_id: string) => Promise<LanguageModel | undefined>;
63
- }
64
43
  /**
65
44
  * 创建实例级 runtime 视图。
66
45
  */
67
46
  export declare function createAgentRuntime(options: CreateAgentRuntimeOptions): AgentRuntime;
68
- /**
69
- * 创建统一执行上下文。
70
- */
71
- export declare function createAgentContext(options: CreateAgentContextOptions): AgentContext;
72
47
  //# sourceMappingURL=AgentRuntimeFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentRuntimeFactory.d.ts","sourceRoot":"","sources":["../../../src/agent/local/AgentRuntimeFactory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAMvE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sBAAsB;IACtB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,kCAAkC;IAClC,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,CAAC;IACtD,2BAA2B;IAC3B,oBAAoB,EAAE,MAAM,mBAAmB,EAAE,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,uBAAuB;IACvB,OAAO,EAAE,YAAY,CAAC;IACtB,eAAe;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,gBAAgB;IAChB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sBAAsB;IACtB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,sBAAsB;IACtB,OAAO,EAAE,YAAY,CAAC;IACtB,kCAAkC;IAClC,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,CAAC;IACtD,4BAA4B;IAC5B,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACnF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,YAAY,CAuBd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,YAAY,CAyCd"}
1
+ {"version":3,"file":"AgentRuntimeFactory.d.ts","sourceRoot":"","sources":["../../../src/agent/local/AgentRuntimeFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAMvE;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sBAAsB;IACtB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1C,kCAAkC;IAClC,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,CAAC;IACtD,2BAA2B;IAC3B,oBAAoB,EAAE,MAAM,mBAAmB,EAAE,CAAC;CACnD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,YAAY,CAuBd"}
@@ -2,7 +2,8 @@
2
2
  * Agent runtime / context 装配工厂。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 这里只创建长期 runtime 视图与执行期 context 视图。
5
+ * - 这里只创建长期 runtime 视图。
6
+ * - `AgentContext` 已经收敛为 class,调用方直接 `new AgentContext(...)`,不再走工厂。
6
7
  * - Agent 仍然持有 session/plugin 状态;这里通过函数参数读取状态。
7
8
  */
8
9
  import { createAgentPathRuntime, createAgentPluginConfigRuntime, } from "../../agent/local/AgentRuntimeAssembly.js";
@@ -30,44 +31,4 @@ export function createAgentRuntime(options) {
30
31
  pluginInstances: options.plugin_instances,
31
32
  };
32
33
  }
33
- /**
34
- * 创建统一执行上下文。
35
- */
36
- export function createAgentContext(options) {
37
- let context;
38
- context = {
39
- agent: options.runtime,
40
- cwd: options.project_root,
41
- rootPath: options.project_root,
42
- logger: options.logger,
43
- config: options.config,
44
- env: options.env,
45
- systems: options.systems,
46
- paths: options.runtime.paths,
47
- pluginConfig: options.runtime.pluginConfig,
48
- session: {
49
- get: (session_id) => options.get_session_port(session_id),
50
- listExecutingSessionIds: () => options.runtime.listExecutingSessionIds(),
51
- getExecutingSessionCount: () => options.runtime.getExecutingSessionCount(),
52
- resolveModel: async (session_id) => await options.resolve_session_model(session_id),
53
- },
54
- invoke: {
55
- invoke: async (params) => {
56
- const result = await options.plugins.runAction(params);
57
- if (!result.success) {
58
- return {
59
- success: false,
60
- error: result.error || result.message || "plugin action failed",
61
- };
62
- }
63
- return {
64
- success: true,
65
- ...(result.data !== undefined ? { data: result.data } : {}),
66
- };
67
- },
68
- },
69
- plugins: options.plugins,
70
- };
71
- return context;
72
- }
73
34
  //# sourceMappingURL=AgentRuntimeFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AgentRuntimeFactory.js","sourceRoot":"","sources":["../../../src/agent/local/AgentRuntimeFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentRuntimeFactory.js","sourceRoot":"","sources":["../../../src/agent/local/AgentRuntimeFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,EACL,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,uCAAuC,CAAC;AA+B/C;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAkC;IAElC,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,YAAY;QACzB,QAAQ,EAAE,OAAO,CAAC,YAAY;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,sBAAsB,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC;QACrE,YAAY,EAAE,8BAA8B,CAAC,OAAO,CAAC,YAAY,CAAC;QAClE,UAAU,EAAE,CAAC,UAAkB,EAAe,EAAE,CAC9C,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACtC,uBAAuB,EAAE,GAAG,EAAE,CAC5B,OAAO;aACJ,oBAAoB,EAAE;aACtB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;aAC1C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,wBAAwB,EAAE,GAAG,EAAE,CAC7B,OAAO;aACJ,oBAAoB,EAAE;aACtB,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM;QACtD,eAAe,EAAE,OAAO,CAAC,gBAAgB;KAC1C,CAAC;AACJ,CAAC"}
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import type { LanguageModel, Tool } from "ai";
10
10
  import type { BasePlugin } from "../../../plugin/core/BasePlugin.js";
11
- import type { AgentContext } from "../../../types/runtime/agent/AgentContext.js";
11
+ import { AgentContext } from "../../../types/runtime/agent/AgentContext.js";
12
12
  import type { AgentRuntime } from "../../../types/runtime/agent/AgentRuntime.js";
13
13
  import type { DowncityConfig } from "../../../types/config/DowncityConfig.js";
14
14
  import type { AgentPlugins } from "../../../plugin/types/Plugin.js";
@@ -1 +1 @@
1
- {"version":3,"file":"AgentAssemblyService.d.ts","sourceRoot":"","sources":["../../../../src/agent/local/services/AgentAssemblyService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAgBjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAGzE,KAAK,2BAA2B,GAAG;IACjC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,oBAAoB,EAAE,MAAM,mBAAmB,EAAE,CAAC;IAElD;;OAEG;IACH,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,CAAC;IAEtD;;OAEG;IACH,qBAAqB,EAAE,CACrB,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1C;;OAEG;IACH,eAAe,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,aAAa,EAAE,YAAY,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsD;IAC3F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkD;IACnF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuD;gBAEjF,OAAO,EAAE,2BAA2B;IAOhD;;OAEG;IACH,QAAQ,IAAI,mBAAmB;IA2F/B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,gCAAgC;CAezC"}
1
+ {"version":3,"file":"AgentAssemblyService.d.ts","sourceRoot":"","sources":["../../../../src/agent/local/services/AgentAssemblyService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAejE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAGzE,KAAK,2BAA2B,GAAG;IACjC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,oBAAoB,EAAE,MAAM,mBAAmB,EAAE,CAAC;IAElD;;OAEG;IACH,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,CAAC;IAEtD;;OAEG;IACH,qBAAqB,EAAE,CACrB,UAAU,EAAE,MAAM,KACf,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAE1C;;OAEG;IACH,eAAe,EAAE,cAAc,CAAC;IAEhC;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,aAAa,EAAE,YAAY,CAAC;IAE5B;;OAEG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAsD;IAC3F,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkD;IACnF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuD;gBAEjF,OAAO,EAAE,2BAA2B;IAOhD;;OAEG;IACH,QAAQ,IAAI,mBAAmB;IA6G/B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,gCAAgC;CAezC"}
@@ -6,11 +6,12 @@
6
6
  * - 该服务只负责一次性长期对象装配,不负责 session 缓存和生命周期启动。
7
7
  * - session/lifecycle service 通过它暴露的长期对象协作,避免在 facade 中重复拼装。
8
8
  */
9
+ import { AgentContext } from "../../../types/runtime/agent/AgentContext.js";
9
10
  import { Logger } from "../../../utils/logger/Logger.js";
10
11
  import { loadDowncityConfig, resolveAgentEnv } from "../../../config/Config.js";
11
12
  import { createFallbackSdkConfig, normalizeInstructionInput, } from "../../../agent/local/AgentInstructions.js";
12
13
  import { createAgentPluginRegistry, } from "../../../agent/local/AgentPluginFactory.js";
13
- import { createAgentContext, createAgentRuntime, } from "../../../agent/local/AgentRuntimeFactory.js";
14
+ import { createAgentRuntime, } from "../../../agent/local/AgentRuntimeFactory.js";
14
15
  import { plugin_tools, setPluginToolRuntime, } from "../../../executor/tools/plugin/PluginToolDefinition.js";
15
16
  /**
16
17
  * 本地 Agent 装配服务。
@@ -43,6 +44,9 @@ export class AgentAssemblyService {
43
44
  }
44
45
  const logger = new Logger();
45
46
  logger.bindProjectRoot(path);
47
+ // 关键点(中文)
48
+ // - 这里产出的 env 是 agent 全生命周期共享的 mutable 对象引用。
49
+ // - runtime / context / shell 都持有同一引用;后续 `agent.setEnv()` 会原地修改它。
46
50
  const env = resolveAgentEnv(path, this.options.env);
47
51
  const instruction = normalizeInstructionInput(this.options.instruction);
48
52
  const config = this.load_config(id, path);
@@ -59,26 +63,41 @@ export class AgentAssemblyService {
59
63
  list_cached_sessions: this.list_cached_sessions,
60
64
  });
61
65
  this.register_plugins(plugin_instances, this.options.plugins || []);
66
+ // 关键点(中文)
67
+ // - plugin_registry 仍然延迟读取 agent_context(避免循环依赖)。
68
+ // - context 一构造完就赋值,registry 第一次读 get_context 时已经是非空。
62
69
  let agent_context;
63
70
  const plugin_registry = createAgentPluginRegistry({
64
71
  plugins: [...plugin_instances.values()],
65
- get_context: () => agent_context,
72
+ get_context: () => {
73
+ if (!agent_context) {
74
+ throw new Error("AgentContext is not assembled yet");
75
+ }
76
+ return agent_context;
77
+ },
66
78
  });
67
79
  const plugins = plugin_registry;
68
80
  if (this.should_register_plugin_call_tool(plugin_instances)) {
69
81
  tools.plugin_call = tools.plugin_call || plugin_tools.plugin_call;
70
82
  }
71
- agent_context = createAgentContext({
72
- runtime,
73
- project_root: path,
83
+ const resolve_session_model = this.resolve_session_model;
84
+ agent_context = new AgentContext({
85
+ agent: runtime,
86
+ cwd: path,
87
+ rootPath: path,
74
88
  logger,
75
89
  config,
76
90
  env,
77
91
  systems: instruction,
78
- plugin_instances,
92
+ paths: runtime.paths,
93
+ pluginConfig: runtime.pluginConfig,
94
+ session: {
95
+ get: (session_id) => this.get_session_port(session_id),
96
+ listExecutingSessionIds: () => runtime.listExecutingSessionIds(),
97
+ getExecutingSessionCount: () => runtime.getExecutingSessionCount(),
98
+ resolveModel: async (session_id) => await resolve_session_model(session_id),
99
+ },
79
100
  plugins,
80
- get_session_port: this.get_session_port,
81
- resolve_session_model: async (session_id) => await this.resolve_session_model(session_id),
82
101
  });
83
102
  const shell = this.options.shell;
84
103
  if (shell) {
@@ -109,7 +128,7 @@ export class AgentAssemblyService {
109
128
  plugin_registry,
110
129
  plugins,
111
130
  runtime,
112
- agent_context,
131
+ agent_context: agent_context,
113
132
  ...(shell ? { shell } : {}),
114
133
  };
115
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AgentAssemblyService.js","sourceRoot":"","sources":["../../../../src/agent/local/services/AgentAssemblyService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentAssemblyService.js","sourceRoot":"","sources":["../../../../src/agent/local/services/AgentAssemblyService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * AgentBackgroundService:本地 Agent 后台能力生命周期服务。
3
+ *
4
+ * 关键点(中文)
5
+ * - 统一管理 plugins 与 ActionSchedule 的启动 / 停止。
6
+ * - 在 Agent 构造阶段自动启动后台能力,调用方通过 `await agent.ready()` 等待启动完成。
7
+ * - RPC / HTTP 等 transport 不再属于 Agent 内部职责,由 `@downcity/server` 等外部包按需挂载。
8
+ */
9
+ import type { AgentContext } from "../../../types/runtime/agent/AgentContext.js";
10
+ import type { Logger } from "../../../utils/logger/Logger.js";
11
+ import type { Shell } from "@downcity/shell";
12
+ type AgentBackgroundServiceOptions = {
13
+ /**
14
+ * 当前统一日志器。
15
+ */
16
+ logger: Logger;
17
+ /**
18
+ * 当前 agent context。
19
+ */
20
+ agent_context: AgentContext;
21
+ /**
22
+ * 读取当前 agent 挂载的 Shell。
23
+ */
24
+ get_shell?: () => Shell | undefined;
25
+ };
26
+ /**
27
+ * 本地 Agent 后台能力生命周期服务。
28
+ *
29
+ * 关键点(中文)
30
+ * - 构造时自动触发 plugin lifecycle 与 ActionSchedule 启动。
31
+ * - 失败由 logger.error 记录,不抛错;调用方通过 `ready()` 等待启动完成。
32
+ */
33
+ export declare class AgentBackgroundService {
34
+ private readonly logger;
35
+ private readonly agent_context;
36
+ private readonly get_shell;
37
+ private plugins_started;
38
+ private action_schedule_runtime;
39
+ private ready_promise;
40
+ constructor(options: AgentBackgroundServiceOptions);
41
+ /**
42
+ * 等待后台能力启动完成。
43
+ */
44
+ ready(): Promise<void>;
45
+ /**
46
+ * 释放当前 Agent 的后台能力。
47
+ */
48
+ dispose(): Promise<void>;
49
+ private boot;
50
+ private ensure_plugins_started;
51
+ private ensure_action_schedule_runtime_started;
52
+ private stop_action_schedule_runtime;
53
+ }
54
+ export {};
55
+ //# sourceMappingURL=AgentBackgroundService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AgentBackgroundService.d.ts","sourceRoot":"","sources":["../../../../src/agent/local/services/AgentBackgroundService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAIvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,KAAK,6BAA6B,GAAG;IACnC;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,EAAE,YAAY,CAAC;IAE5B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC;CACrC,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6C;IAEvE,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,uBAAuB,CAA4C;IAC3E,OAAO,CAAC,aAAa,CAA8B;gBAEvC,OAAO,EAAE,6BAA6B;IAQlD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAahB,IAAI;YAIJ,sBAAsB;YActB,sCAAsC;YAWtC,4BAA4B;CAK3C"}