@downcity/agent 1.1.129 → 1.1.148
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/README.md +2 -2
- package/bin/agent/local/Agent.d.ts +40 -26
- package/bin/agent/local/Agent.d.ts.map +1 -1
- package/bin/agent/local/Agent.js +65 -41
- package/bin/agent/local/Agent.js.map +1 -1
- package/bin/agent/local/ProjectSetup.js +2 -2
- package/bin/agent/local/ProjectSetup.js.map +1 -1
- package/bin/agent/local/services/AgentAssemblyService.d.ts +2 -7
- package/bin/agent/local/services/AgentAssemblyService.d.ts.map +1 -1
- package/bin/agent/local/services/AgentAssemblyService.js +34 -22
- package/bin/agent/local/services/AgentAssemblyService.js.map +1 -1
- package/bin/agent/local/services/AgentBackgroundService.d.ts +55 -0
- package/bin/agent/local/services/AgentBackgroundService.d.ts.map +1 -0
- package/bin/agent/local/services/AgentBackgroundService.js +86 -0
- package/bin/agent/local/services/AgentBackgroundService.js.map +1 -0
- package/bin/agent/local/services/AgentSessionManager.d.ts +16 -7
- package/bin/agent/local/services/AgentSessionManager.d.ts.map +1 -1
- package/bin/agent/local/services/AgentSessionManager.js +83 -8
- package/bin/agent/local/services/AgentSessionManager.js.map +1 -1
- package/bin/agent/remote/RemoteAgent.d.ts +9 -13
- package/bin/agent/remote/RemoteAgent.d.ts.map +1 -1
- package/bin/agent/remote/RemoteAgent.js +23 -24
- package/bin/agent/remote/RemoteAgent.js.map +1 -1
- package/bin/agent/remote/RemoteSession.d.ts +11 -4
- package/bin/agent/remote/RemoteSession.d.ts.map +1 -1
- package/bin/agent/remote/RemoteSession.js +15 -3
- package/bin/agent/remote/RemoteSession.js.map +1 -1
- package/bin/agent/remote/RemoteTransport.d.ts +9 -1
- package/bin/agent/remote/RemoteTransport.d.ts.map +1 -1
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts +7 -3
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.d.ts.map +1 -1
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.js +65 -2
- package/bin/agent/remote/transports/HttpRemoteAgentTransport.js.map +1 -1
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts +5 -1
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.d.ts.map +1 -1
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.js +12 -0
- package/bin/agent/remote/transports/RpcRemoteAgentTransport.js.map +1 -1
- package/bin/config/AgentInitializer.d.ts +2 -2
- package/bin/config/AgentInitializer.js +2 -2
- package/bin/executor/Executor.d.ts +5 -0
- package/bin/executor/Executor.d.ts.map +1 -1
- package/bin/executor/Executor.js +34 -0
- package/bin/executor/Executor.js.map +1 -1
- package/bin/executor/composer/system/default/InitPrompts.d.ts +1 -1
- package/bin/executor/composer/system/default/InitPrompts.js +1 -1
- package/bin/executor/composer/system/default/SystemDomain.js +2 -2
- package/bin/executor/composer/system/default/SystemDomain.js.map +1 -1
- package/bin/executor/core-engine/CoreEngineRunner.d.ts.map +1 -1
- package/bin/executor/core-engine/CoreEngineRunner.js +16 -0
- package/bin/executor/core-engine/CoreEngineRunner.js.map +1 -1
- package/bin/executor/messages/ChatMessageMarkupTypes.d.ts +1 -1
- package/bin/executor/messages/ChatMessageMarkupTypes.js +1 -1
- package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts +8 -0
- package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.d.ts.map +1 -1
- package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js +22 -0
- package/bin/executor/store/history/jsonl/JsonlSessionHistoryStore.js.map +1 -1
- package/bin/executor/types/SessionExecutor.d.ts +8 -0
- package/bin/executor/types/SessionExecutor.d.ts.map +1 -1
- package/bin/index.d.ts +4 -4
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +1 -2
- package/bin/index.js.map +1 -1
- package/bin/plugin/core/Activation.d.ts +0 -2
- package/bin/plugin/core/Activation.d.ts.map +1 -1
- package/bin/plugin/core/Activation.js +1 -1
- package/bin/plugin/core/Activation.js.map +1 -1
- package/bin/plugin/core/PluginCommandRequest.d.ts +1 -1
- package/bin/plugin/core/PluginCommandRequest.js +1 -1
- package/bin/plugin/core/PluginStateController.d.ts +0 -5
- package/bin/plugin/core/PluginStateController.d.ts.map +1 -1
- package/bin/plugin/core/PluginStateController.js +1 -5
- package/bin/plugin/core/PluginStateController.js.map +1 -1
- package/bin/plugin/types/PluginApi.d.ts +1 -1
- package/bin/plugin/types/PluginApi.js +1 -1
- package/bin/rpc/Client.d.ts +17 -1
- package/bin/rpc/Client.d.ts.map +1 -1
- package/bin/rpc/Client.js +47 -0
- package/bin/rpc/Client.js.map +1 -1
- package/bin/session/Session.d.ts +5 -0
- package/bin/session/Session.d.ts.map +1 -1
- package/bin/session/Session.js +7 -0
- package/bin/session/Session.js.map +1 -1
- package/bin/session/browse/Browse.d.ts +9 -1
- package/bin/session/browse/Browse.d.ts.map +1 -1
- package/bin/session/browse/Browse.js +81 -3
- package/bin/session/browse/Browse.js.map +1 -1
- package/bin/session/index.d.ts +3 -3
- package/bin/session/index.d.ts.map +1 -1
- package/bin/session/index.js +3 -3
- package/bin/session/index.js.map +1 -1
- package/bin/session/runtime/SessionPromptRuntime.d.ts +13 -0
- package/bin/session/runtime/SessionPromptRuntime.d.ts.map +1 -1
- package/bin/session/runtime/SessionPromptRuntime.js +82 -5
- package/bin/session/runtime/SessionPromptRuntime.js.map +1 -1
- package/bin/session/services/SessionTurnService.d.ts +5 -0
- package/bin/session/services/SessionTurnService.d.ts.map +1 -1
- package/bin/session/services/SessionTurnService.js +10 -1
- package/bin/session/services/SessionTurnService.js.map +1 -1
- package/bin/session/services/SessionViewService.d.ts.map +1 -1
- package/bin/session/services/SessionViewService.js +1 -7
- package/bin/session/services/SessionViewService.js.map +1 -1
- package/bin/session/storage/Metadata.d.ts +15 -0
- package/bin/session/storage/Metadata.d.ts.map +1 -1
- package/bin/session/storage/Metadata.js +15 -1
- package/bin/session/storage/Metadata.js.map +1 -1
- package/bin/session/storage/Paths.d.ts +24 -0
- package/bin/session/storage/Paths.d.ts.map +1 -1
- package/bin/session/storage/Paths.js +34 -0
- package/bin/session/storage/Paths.js.map +1 -1
- package/bin/session/storage/RuntimeSessionPort.d.ts +5 -0
- package/bin/session/storage/RuntimeSessionPort.d.ts.map +1 -1
- package/bin/session/storage/RuntimeSessionPort.js +4 -0
- package/bin/session/storage/RuntimeSessionPort.js.map +1 -1
- package/bin/types/agent/AgentOptions.d.ts +0 -63
- package/bin/types/agent/AgentOptions.d.ts.map +1 -1
- package/bin/types/agent/AgentTypes.d.ts +3 -2
- package/bin/types/agent/AgentTypes.d.ts.map +1 -1
- package/bin/types/agent/SessionActor.d.ts +13 -4
- package/bin/types/agent/SessionActor.d.ts.map +1 -1
- package/bin/types/agent/SessionTypes.d.ts +62 -0
- package/bin/types/agent/SessionTypes.d.ts.map +1 -1
- package/bin/types/config/DowncityConfig.d.ts +1 -1
- package/bin/types/executor/SessionRunContext.d.ts +8 -0
- package/bin/types/executor/SessionRunContext.d.ts.map +1 -1
- package/bin/types/platform/Store.d.ts +2 -2
- package/bin/types/platform/Store.js +2 -2
- package/bin/types/rpc/RpcProtocol.d.ts +37 -5
- package/bin/types/rpc/RpcProtocol.d.ts.map +1 -1
- package/bin/types/rpc/RpcProtocol.js +1 -1
- package/bin/types/runtime/agent/AgentContext.d.ts +92 -43
- package/bin/types/runtime/agent/AgentContext.d.ts.map +1 -1
- package/bin/types/runtime/agent/AgentContext.js +97 -5
- package/bin/types/runtime/agent/AgentContext.js.map +1 -1
- package/bin/types/runtime/platform/Platform.d.ts +8 -8
- package/bin/types/runtime/platform/PlatformGateway.d.ts +2 -2
- package/bin/types/sdk/AgentSessionStop.d.ts +36 -0
- package/bin/types/sdk/AgentSessionStop.d.ts.map +1 -0
- package/bin/types/sdk/AgentSessionStop.js +9 -0
- package/bin/types/sdk/AgentSessionStop.js.map +1 -0
- package/package.json +3 -3
- package/scripts/city-model-tool-loop.test.mjs +2 -2
- package/scripts/session-prompt-runtime.test.mjs +59 -0
- package/src/agent/local/Agent.ts +66 -55
- package/src/agent/local/ProjectSetup.ts +2 -2
- package/src/agent/local/services/AgentAssemblyService.ts +41 -35
- package/src/agent/local/services/AgentBackgroundService.ts +116 -0
- package/src/agent/local/services/AgentSessionManager.ts +127 -13
- package/src/agent/remote/RemoteAgent.ts +25 -34
- package/src/agent/remote/RemoteSession.ts +21 -6
- package/src/agent/remote/RemoteTransport.ts +14 -0
- package/src/agent/remote/transports/HttpRemoteAgentTransport.ts +100 -2
- package/src/agent/remote/transports/RpcRemoteAgentTransport.ts +26 -0
- package/src/config/AgentInitializer.ts +2 -2
- package/src/executor/Executor.ts +33 -0
- package/src/executor/composer/system/default/InitPrompts.ts +1 -1
- package/src/executor/composer/system/default/SystemDomain.ts +2 -2
- package/src/executor/core-engine/CoreEngineRunner.ts +21 -0
- package/src/executor/messages/ChatMessageMarkupTypes.ts +1 -1
- package/src/executor/store/history/jsonl/JsonlSessionHistoryStore.ts +22 -0
- package/src/executor/types/SessionExecutor.ts +2 -1
- package/src/index.ts +8 -10
- package/src/plugin/core/Activation.ts +1 -3
- package/src/plugin/core/PluginCommandRequest.ts +1 -1
- package/src/plugin/core/PluginStateController.ts +1 -10
- package/src/plugin/types/PluginApi.ts +1 -1
- package/src/rpc/Client.ts +61 -0
- package/src/session/Session.ts +9 -0
- package/src/session/browse/Browse.ts +103 -3
- package/src/session/index.ts +7 -0
- package/src/session/runtime/SessionPromptRuntime.ts +100 -5
- package/src/session/services/SessionTurnService.ts +13 -1
- package/src/session/services/SessionViewService.ts +1 -7
- package/src/session/storage/Metadata.ts +23 -1
- package/src/session/storage/Paths.ts +70 -0
- package/src/session/storage/RuntimeSessionPort.ts +9 -0
- package/src/types/agent/AgentOptions.ts +0 -69
- package/src/types/agent/AgentTypes.ts +6 -5
- package/src/types/agent/SessionActor.ts +21 -3
- package/src/types/agent/SessionTypes.ts +68 -0
- package/src/types/config/DowncityConfig.ts +1 -1
- package/src/types/executor/SessionRunContext.ts +9 -0
- package/src/types/platform/Store.ts +2 -2
- package/src/types/rpc/RpcProtocol.ts +46 -4
- package/src/types/runtime/agent/AgentContext.ts +132 -45
- package/src/types/runtime/platform/Platform.ts +8 -8
- package/src/types/runtime/platform/PlatformGateway.ts +2 -2
- package/src/types/sdk/AgentSessionStop.ts +39 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/bin/agent/local/AgentRuntimeFactory.d.ts +0 -72
- package/bin/agent/local/AgentRuntimeFactory.d.ts.map +0 -1
- package/bin/agent/local/AgentRuntimeFactory.js +0 -73
- package/bin/agent/local/AgentRuntimeFactory.js.map +0 -1
- package/bin/agent/local/services/AgentLifecycleService.d.ts +0 -65
- package/bin/agent/local/services/AgentLifecycleService.d.ts.map +0 -1
- package/bin/agent/local/services/AgentLifecycleService.js +0 -140
- package/bin/agent/local/services/AgentLifecycleService.js.map +0 -1
- package/bin/rpc/Server.d.ts +0 -31
- package/bin/rpc/Server.d.ts.map +0 -1
- package/bin/rpc/Server.js +0 -106
- package/bin/rpc/Server.js.map +0 -1
- package/bin/rpc/server/InternalHandlers.d.ts +0 -21
- package/bin/rpc/server/InternalHandlers.d.ts.map +0 -1
- package/bin/rpc/server/InternalHandlers.js +0 -244
- package/bin/rpc/server/InternalHandlers.js.map +0 -1
- package/bin/rpc/server/RequestDispatcher.d.ts +0 -27
- package/bin/rpc/server/RequestDispatcher.d.ts.map +0 -1
- package/bin/rpc/server/RequestDispatcher.js +0 -38
- package/bin/rpc/server/RequestDispatcher.js.map +0 -1
- package/bin/rpc/server/SdkSessionHandlers.d.ts +0 -25
- package/bin/rpc/server/SdkSessionHandlers.d.ts.map +0 -1
- package/bin/rpc/server/SdkSessionHandlers.js +0 -86
- package/bin/rpc/server/SdkSessionHandlers.js.map +0 -1
- package/bin/rpc/server/ServerTypes.d.ts +0 -64
- package/bin/rpc/server/ServerTypes.d.ts.map +0 -1
- package/bin/rpc/server/ServerTypes.js +0 -9
- package/bin/rpc/server/ServerTypes.js.map +0 -1
- package/bin/types/runtime/agent/AgentRuntime.d.ts +0 -79
- package/bin/types/runtime/agent/AgentRuntime.d.ts.map +0 -1
- package/bin/types/runtime/agent/AgentRuntime.js +0 -13
- package/bin/types/runtime/agent/AgentRuntime.js.map +0 -1
- package/src/agent/local/AgentRuntimeFactory.ts +0 -152
- package/src/agent/local/services/AgentLifecycleService.ts +0 -198
- package/src/rpc/Server.ts +0 -143
- package/src/rpc/server/InternalHandlers.ts +0 -285
- package/src/rpc/server/RequestDispatcher.ts +0 -67
- package/src/rpc/server/SdkSessionHandlers.ts +0 -106
- package/src/rpc/server/ServerTypes.ts +0 -70
- package/src/types/runtime/agent/AgentRuntime.ts +0 -84
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ src/
|
|
|
57
57
|
│ └── project/ # Agent 项目初始化与项目初始化类型
|
|
58
58
|
├── executor/ # 内部执行内核,负责历史、system、tool loop、增量输出与消息持久化
|
|
59
59
|
├── plugin/ # 插件系统,负责插件注册、hook、action、内建插件与插件类型
|
|
60
|
-
├── rpc/ # Agent 本机 RPC runtime,对外 HTTP gateway 由
|
|
60
|
+
├── rpc/ # Agent 本机 RPC runtime,对外 HTTP gateway 由 downcity 提供
|
|
61
61
|
├── runtime/ # 运行时实现细节层,统一收纳 host / sandbox / control 等内部能力
|
|
62
62
|
│ ├── host/ # 宿主注入能力协议
|
|
63
63
|
│ └── sandbox/ # 命令沙箱与沙箱协议
|
|
@@ -98,7 +98,7 @@ src/
|
|
|
98
98
|
- `host/` 放宿主注入能力协议
|
|
99
99
|
- `sandbox/` 放命令执行隔离与沙箱协议
|
|
100
100
|
- `control/` 放 runtime 控制面内部协议与处理器
|
|
101
|
-
- `src/rpc/` 放 Agent 本机 RPC runtime;HTTP gateway 由
|
|
101
|
+
- `src/rpc/` 放 Agent 本机 RPC runtime;HTTP gateway 由 downcity CLI 基于 RPC 转发提供
|
|
102
102
|
- 模型实例解析不在 `agent` 包内完成,而由宿主先创建 `LanguageModel`,再通过 `new Agent({ model })` 或 `session.set({ model })` 注入
|
|
103
103
|
- `model` 也可以接收 City City 返回的 `CityModel`,Agent 会在内部适配成 AI SDK `LanguageModel`
|
|
104
104
|
|
|
@@ -8,10 +8,9 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { Tool } from "ai";
|
|
10
10
|
import type { AgentContext } from "../../types/runtime/agent/AgentContext.js";
|
|
11
|
-
import type { AgentRuntime } from "../../types/runtime/agent/AgentRuntime.js";
|
|
12
11
|
import type { DowncityConfig } from "../../types/config/DowncityConfig.js";
|
|
13
12
|
import type { AgentPlugins } from "../../plugin/types/Plugin.js";
|
|
14
|
-
import type {
|
|
13
|
+
import type { AgentOptions, AgentSessionCollection } from "../../types/agent/AgentTypes.js";
|
|
15
14
|
import type { ShellApprovalMode, ShellApprovalDecisionResult, ShellApprovalModeUpdateResult, ShellApprovalModeOption, ShellSessionApprovalModeView, ShellApprovalView, Shell } from "@downcity/shell";
|
|
16
15
|
import { Logger } from "../../utils/logger/Logger.js";
|
|
17
16
|
/**
|
|
@@ -23,7 +22,6 @@ export declare class Agent {
|
|
|
23
22
|
readonly tools: Record<string, Tool>;
|
|
24
23
|
readonly plugins: AgentPlugins;
|
|
25
24
|
private readonly logger;
|
|
26
|
-
private readonly runtime;
|
|
27
25
|
private readonly agentContext;
|
|
28
26
|
private readonly pluginRegistry;
|
|
29
27
|
private readonly config;
|
|
@@ -31,30 +29,26 @@ export declare class Agent {
|
|
|
31
29
|
private readonly defaultModel?;
|
|
32
30
|
private readonly SessionClass;
|
|
33
31
|
private readonly sessionManager;
|
|
34
|
-
private readonly
|
|
32
|
+
private readonly backgroundService;
|
|
35
33
|
private readonly shell?;
|
|
36
34
|
private instruction;
|
|
37
35
|
constructor(options: AgentOptions);
|
|
38
36
|
/**
|
|
39
|
-
*
|
|
37
|
+
* 等待 Agent 后台能力启动完成。
|
|
38
|
+
*
|
|
39
|
+
* 关键点(中文)
|
|
40
|
+
* - Agent 构造完成即开始启动 plugin lifecycle 与 ActionSchedule。
|
|
41
|
+
* - 调用方在需要确认后台能力就绪时使用,例如启动后立刻读取 plugin 状态。
|
|
40
42
|
*/
|
|
41
|
-
|
|
43
|
+
ready(): Promise<void>;
|
|
42
44
|
/**
|
|
43
|
-
*
|
|
45
|
+
* 释放当前 Agent 的后台能力。
|
|
46
|
+
*
|
|
47
|
+
* 关键点(中文)
|
|
48
|
+
* - 关闭 plugin lifecycle、ActionSchedule、shell 等后台资源。
|
|
49
|
+
* - 不负责任何 transport(RPC / HTTP);transport 由 `@downcity/server` 自行管理。
|
|
44
50
|
*/
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* 列出当前 agent 的 session 摘要页。
|
|
48
|
-
*/
|
|
49
|
-
listSessions(input?: AgentListSessionsInput): Promise<AgentSessionSummaryPage>;
|
|
50
|
-
/**
|
|
51
|
-
* 启动当前 agent 实例的长期运行能力。
|
|
52
|
-
*/
|
|
53
|
-
start(options?: AgentStartOptions): Promise<AgentStartResult>;
|
|
54
|
-
/**
|
|
55
|
-
* 停止当前 agent 实例的长期运行能力。
|
|
56
|
-
*/
|
|
57
|
-
stop(): Promise<AgentStopResult>;
|
|
51
|
+
dispose(): Promise<void>;
|
|
58
52
|
/**
|
|
59
53
|
* 列出当前 shell pending approvals。
|
|
60
54
|
*/
|
|
@@ -92,6 +86,30 @@ export declare class Agent {
|
|
|
92
86
|
* 更新当前 SDK Agent 的静态基础指令。
|
|
93
87
|
*/
|
|
94
88
|
setInstruction(input: string | string[]): void;
|
|
89
|
+
/**
|
|
90
|
+
* 返回当前 agent env 的浅拷贝快照。
|
|
91
|
+
*
|
|
92
|
+
* 关键点(中文)
|
|
93
|
+
* - 返回的是拷贝,调用方修改它不会影响 agent 真实状态。
|
|
94
|
+
* - 想改 env 请使用 `setEnv` / `patchEnv`。
|
|
95
|
+
*/
|
|
96
|
+
getEnv(): Record<string, string>;
|
|
97
|
+
/**
|
|
98
|
+
* 整体覆盖 agent env。
|
|
99
|
+
*
|
|
100
|
+
* 关键点(中文)
|
|
101
|
+
* - 直接清空当前共享 env 对象,再写入新值,保证 plugin / runtime / shell 看到的是同一引用。
|
|
102
|
+
* - 仅写入字符串值,`null` / `undefined` 表示删除该 key。
|
|
103
|
+
*/
|
|
104
|
+
setEnv(next: Record<string, string | null | undefined>): void;
|
|
105
|
+
/**
|
|
106
|
+
* 增量合并 agent env。
|
|
107
|
+
*
|
|
108
|
+
* 关键点(中文)
|
|
109
|
+
* - `null` / `undefined` 表示删除该 key;其他值会强制转字符串后写入。
|
|
110
|
+
* - 修改原地生效,所有持有 `context.env` 引用的模块立即可见。
|
|
111
|
+
*/
|
|
112
|
+
patchEnv(patch: Record<string, string | null | undefined>): void;
|
|
95
113
|
/**
|
|
96
114
|
* 返回当前项目根目录解析后的配置快照。
|
|
97
115
|
*/
|
|
@@ -100,18 +118,14 @@ export declare class Agent {
|
|
|
100
118
|
* 返回当前 agent 绑定的统一日志器。
|
|
101
119
|
*/
|
|
102
120
|
getLogger(): Logger;
|
|
103
|
-
/**
|
|
104
|
-
* 返回当前 agent runtime。
|
|
105
|
-
*/
|
|
106
|
-
getRuntime(): AgentRuntime;
|
|
107
121
|
/**
|
|
108
122
|
* 返回当前 agent context。
|
|
109
123
|
*/
|
|
110
124
|
getContext(): AgentContext;
|
|
111
125
|
/**
|
|
112
|
-
* 返回当前 session collection
|
|
126
|
+
* 返回当前 session collection 入口。
|
|
113
127
|
*/
|
|
114
|
-
|
|
128
|
+
session_collection(): AgentSessionCollection;
|
|
115
129
|
/**
|
|
116
130
|
* 返回当前 agent 挂载的 Shell。
|
|
117
131
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/agent/local/Agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../../../src/agent/local/Agent.ts"],"names":[],"mappings":"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"}
|
package/bin/agent/local/Agent.js
CHANGED
|
@@ -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 {
|
|
12
|
+
import { AgentBackgroundService } from "../../agent/local/services/AgentBackgroundService.js";
|
|
13
13
|
/**
|
|
14
14
|
* SDK 本地 Agent。
|
|
15
15
|
*/
|
|
@@ -19,7 +19,6 @@ export class Agent {
|
|
|
19
19
|
tools;
|
|
20
20
|
plugins;
|
|
21
21
|
logger;
|
|
22
|
-
runtime;
|
|
23
22
|
agentContext;
|
|
24
23
|
pluginRegistry;
|
|
25
24
|
config;
|
|
@@ -27,7 +26,7 @@ export class Agent {
|
|
|
27
26
|
defaultModel;
|
|
28
27
|
SessionClass;
|
|
29
28
|
sessionManager;
|
|
30
|
-
|
|
29
|
+
backgroundService;
|
|
31
30
|
shell;
|
|
32
31
|
instruction;
|
|
33
32
|
constructor(options) {
|
|
@@ -56,7 +55,6 @@ export class Agent {
|
|
|
56
55
|
this.tools = assembly.tools;
|
|
57
56
|
this.plugins = assembly.plugins;
|
|
58
57
|
this.logger = assembly.logger;
|
|
59
|
-
this.runtime = assembly.runtime;
|
|
60
58
|
this.agentContext = assembly.agent_context;
|
|
61
59
|
this.pluginRegistry = assembly.plugin_registry;
|
|
62
60
|
this.config = assembly.config;
|
|
@@ -65,43 +63,32 @@ export class Agent {
|
|
|
65
63
|
this.shell = assembly.shell;
|
|
66
64
|
this.sessionManager = this.create_session_manager(assembly);
|
|
67
65
|
session_manager_ref = this.sessionManager;
|
|
68
|
-
|
|
66
|
+
// 关键点(中文):构造完成即触发后台能力启动;调用方可 `await agent.ready()` 等待。
|
|
67
|
+
this.backgroundService = new AgentBackgroundService({
|
|
69
68
|
logger: this.logger,
|
|
70
69
|
agent_context: this.agentContext,
|
|
71
|
-
session_collection: this.sessionManager.get_session_collection(),
|
|
72
|
-
get_runtime: () => this.runtime,
|
|
73
70
|
get_shell: () => this.shell,
|
|
74
71
|
});
|
|
75
72
|
}
|
|
76
73
|
/**
|
|
77
|
-
*
|
|
74
|
+
* 等待 Agent 后台能力启动完成。
|
|
75
|
+
*
|
|
76
|
+
* 关键点(中文)
|
|
77
|
+
* - Agent 构造完成即开始启动 plugin lifecycle 与 ActionSchedule。
|
|
78
|
+
* - 调用方在需要确认后台能力就绪时使用,例如启动后立刻读取 plugin 状态。
|
|
78
79
|
*/
|
|
79
|
-
async
|
|
80
|
-
|
|
80
|
+
async ready() {
|
|
81
|
+
await this.backgroundService.ready();
|
|
81
82
|
}
|
|
82
83
|
/**
|
|
83
|
-
*
|
|
84
|
+
* 释放当前 Agent 的后台能力。
|
|
85
|
+
*
|
|
86
|
+
* 关键点(中文)
|
|
87
|
+
* - 关闭 plugin lifecycle、ActionSchedule、shell 等后台资源。
|
|
88
|
+
* - 不负责任何 transport(RPC / HTTP);transport 由 `@downcity/server` 自行管理。
|
|
84
89
|
*/
|
|
85
|
-
async
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* 列出当前 agent 的 session 摘要页。
|
|
90
|
-
*/
|
|
91
|
-
async listSessions(input) {
|
|
92
|
-
return await this.sessionManager.list_sessions(input);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* 启动当前 agent 实例的长期运行能力。
|
|
96
|
-
*/
|
|
97
|
-
async start(options) {
|
|
98
|
-
return await this.lifecycleService.start(options);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* 停止当前 agent 实例的长期运行能力。
|
|
102
|
-
*/
|
|
103
|
-
async stop() {
|
|
104
|
-
return await this.lifecycleService.stop();
|
|
90
|
+
async dispose() {
|
|
91
|
+
await this.backgroundService.dispose();
|
|
105
92
|
}
|
|
106
93
|
/**
|
|
107
94
|
* 列出当前 shell pending approvals。
|
|
@@ -153,6 +140,50 @@ export class Agent {
|
|
|
153
140
|
setInstruction(input) {
|
|
154
141
|
this.instruction = normalizeInstructionInput(input);
|
|
155
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* 返回当前 agent env 的浅拷贝快照。
|
|
145
|
+
*
|
|
146
|
+
* 关键点(中文)
|
|
147
|
+
* - 返回的是拷贝,调用方修改它不会影响 agent 真实状态。
|
|
148
|
+
* - 想改 env 请使用 `setEnv` / `patchEnv`。
|
|
149
|
+
*/
|
|
150
|
+
getEnv() {
|
|
151
|
+
return { ...this.env };
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* 整体覆盖 agent env。
|
|
155
|
+
*
|
|
156
|
+
* 关键点(中文)
|
|
157
|
+
* - 直接清空当前共享 env 对象,再写入新值,保证 plugin / runtime / shell 看到的是同一引用。
|
|
158
|
+
* - 仅写入字符串值,`null` / `undefined` 表示删除该 key。
|
|
159
|
+
*/
|
|
160
|
+
setEnv(next) {
|
|
161
|
+
for (const key of Object.keys(this.env)) {
|
|
162
|
+
delete this.env[key];
|
|
163
|
+
}
|
|
164
|
+
this.patchEnv(next);
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* 增量合并 agent env。
|
|
168
|
+
*
|
|
169
|
+
* 关键点(中文)
|
|
170
|
+
* - `null` / `undefined` 表示删除该 key;其他值会强制转字符串后写入。
|
|
171
|
+
* - 修改原地生效,所有持有 `context.env` 引用的模块立即可见。
|
|
172
|
+
*/
|
|
173
|
+
patchEnv(patch) {
|
|
174
|
+
if (!patch || typeof patch !== "object")
|
|
175
|
+
return;
|
|
176
|
+
for (const [raw_key, raw_value] of Object.entries(patch)) {
|
|
177
|
+
const key = String(raw_key || "").trim();
|
|
178
|
+
if (!key)
|
|
179
|
+
continue;
|
|
180
|
+
if (raw_value === null || raw_value === undefined) {
|
|
181
|
+
delete this.env[key];
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
this.env[key] = String(raw_value);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
156
187
|
/**
|
|
157
188
|
* 返回当前项目根目录解析后的配置快照。
|
|
158
189
|
*/
|
|
@@ -165,12 +196,6 @@ export class Agent {
|
|
|
165
196
|
getLogger() {
|
|
166
197
|
return this.logger;
|
|
167
198
|
}
|
|
168
|
-
/**
|
|
169
|
-
* 返回当前 agent runtime。
|
|
170
|
-
*/
|
|
171
|
-
getRuntime() {
|
|
172
|
-
return this.runtime;
|
|
173
|
-
}
|
|
174
199
|
/**
|
|
175
200
|
* 返回当前 agent context。
|
|
176
201
|
*/
|
|
@@ -178,9 +203,9 @@ export class Agent {
|
|
|
178
203
|
return this.agentContext;
|
|
179
204
|
}
|
|
180
205
|
/**
|
|
181
|
-
* 返回当前 session collection
|
|
206
|
+
* 返回当前 session collection 入口。
|
|
182
207
|
*/
|
|
183
|
-
|
|
208
|
+
session_collection() {
|
|
184
209
|
return this.sessionManager.get_session_collection();
|
|
185
210
|
}
|
|
186
211
|
/**
|
|
@@ -195,8 +220,7 @@ export class Agent {
|
|
|
195
220
|
project_root: this.path || assembly.path,
|
|
196
221
|
tools: this.tools || assembly.tools,
|
|
197
222
|
logger: this.logger || assembly.logger,
|
|
198
|
-
|
|
199
|
-
get_agent_context: () => this.agentContext || assembly.agent_context,
|
|
223
|
+
get_agent_context: () => this.agentContext ?? assembly.agent_context,
|
|
200
224
|
get_instruction: () => this.instruction,
|
|
201
225
|
plugin_instances: assembly.plugin_instances,
|
|
202
226
|
default_model: this.defaultModel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../../src/agent/local/Agent.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../../src/agent/local/Agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,11 +14,11 @@ import { getCacheDirPath, getDowncityAgentsRootDirPath, getLogsDirPath, getProfi
|
|
|
14
14
|
function ensureContextFiles(projectRoot) {
|
|
15
15
|
// Check if initialized(启动入口一次性确认工程根目录与关键文件)
|
|
16
16
|
if (!fs.existsSync(getProfileMdPath(projectRoot))) {
|
|
17
|
-
console.error('❌ Project not initialized. Please run "
|
|
17
|
+
console.error('❌ Project not initialized. Please run "downcity agent create" first');
|
|
18
18
|
process.exit(1);
|
|
19
19
|
}
|
|
20
20
|
if (!fs.existsSync(getDowncityJsonPath(projectRoot))) {
|
|
21
|
-
console.error('❌ downcity.json does not exist. Please run "
|
|
21
|
+
console.error('❌ downcity.json does not exist. Please run "downcity agent create" first');
|
|
22
22
|
process.exit(1);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectSetup.js","sourceRoot":"","sources":["../../../src/agent/local/ProjectSetup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,4BAA4B,EAC5B,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,KAAK,CACX,
|
|
1
|
+
{"version":3,"file":"ProjectSetup.js","sourceRoot":"","sources":["../../../src/agent/local/ProjectSetup.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,4BAA4B,EAC5B,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,SAAS,kBAAkB,CAAC,WAAmB;IAC7C,4CAA4C;IAC5C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,CAAC,KAAK,CACX,qEAAqE,CACtE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,KAAK,CACX,0EAA0E,CAC3E,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,WAAmB;IAChD,yDAAyD;IACzD,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,EAAE,CAAC,aAAa,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;IACvD,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9C,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC;IAC/C,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC;IACzD,EAAE,CAAC,aAAa,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC;IACtD,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5D,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC,CAAC;IACxD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvE,EAAE,CAAC,aAAa,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;AACzD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAAmB;IAC3D,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAChC,qBAAqB,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
* AgentAssemblyService:本地 Agent 装配服务。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* - 统一装配 logger、config、env、
|
|
5
|
+
* - 统一装配 logger、config、env、context 与 plugin registry。
|
|
6
6
|
* - 该服务只负责一次性长期对象装配,不负责 session 缓存和生命周期启动。
|
|
7
7
|
* - session/lifecycle service 通过它暴露的长期对象协作,避免在 facade 中重复拼装。
|
|
8
8
|
*/
|
|
9
9
|
import type { LanguageModel, Tool } from "ai";
|
|
10
10
|
import type { BasePlugin } from "../../../plugin/core/BasePlugin.js";
|
|
11
|
-
import
|
|
12
|
-
import type { AgentRuntime } from "../../../types/runtime/agent/AgentRuntime.js";
|
|
11
|
+
import { AgentContext } from "../../../types/runtime/agent/AgentContext.js";
|
|
13
12
|
import type { DowncityConfig } from "../../../types/config/DowncityConfig.js";
|
|
14
13
|
import type { AgentPlugins } from "../../../plugin/types/Plugin.js";
|
|
15
14
|
import type { AgentOptions } from "../../../types/agent/AgentTypes.js";
|
|
@@ -79,10 +78,6 @@ export interface AgentAssemblyResult {
|
|
|
79
78
|
* 当前 agent plugin 调用面。
|
|
80
79
|
*/
|
|
81
80
|
plugins: AgentPlugins;
|
|
82
|
-
/**
|
|
83
|
-
* 当前 agent runtime。
|
|
84
|
-
*/
|
|
85
|
-
runtime: AgentRuntime;
|
|
86
81
|
/**
|
|
87
82
|
* 当前 agent context。
|
|
88
83
|
*/
|
|
@@ -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,
|
|
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,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,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;IAuG/B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,gBAAgB;IAgBxB;;OAEG;IACH,OAAO,CAAC,gCAAgC;CAezC"}
|
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
* AgentAssemblyService:本地 Agent 装配服务。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* - 统一装配 logger、config、env、
|
|
5
|
+
* - 统一装配 logger、config、env、context 与 plugin registry。
|
|
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 {
|
|
14
|
+
import { createAgentPathRuntime, createAgentPluginConfigRuntime, } from "../../../agent/local/AgentRuntimeAssembly.js";
|
|
14
15
|
import { plugin_tools, setPluginToolRuntime, } from "../../../executor/tools/plugin/PluginToolDefinition.js";
|
|
15
16
|
/**
|
|
16
17
|
* 本地 Agent 装配服务。
|
|
@@ -43,42 +44,54 @@ export class AgentAssemblyService {
|
|
|
43
44
|
}
|
|
44
45
|
const logger = new Logger();
|
|
45
46
|
logger.bindProjectRoot(path);
|
|
47
|
+
// 关键点(中文)
|
|
48
|
+
// - 这里产出的 env 是 agent 全生命周期共享的 mutable 对象引用。
|
|
49
|
+
// - 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);
|
|
49
53
|
const plugin_instances = new Map();
|
|
50
|
-
const runtime = createAgentRuntime({
|
|
51
|
-
agent_id: id,
|
|
52
|
-
project_root: path,
|
|
53
|
-
logger,
|
|
54
|
-
config,
|
|
55
|
-
env,
|
|
56
|
-
systems: instruction,
|
|
57
|
-
plugin_instances,
|
|
58
|
-
get_session_port: this.get_session_port,
|
|
59
|
-
list_cached_sessions: this.list_cached_sessions,
|
|
60
|
-
});
|
|
61
54
|
this.register_plugins(plugin_instances, this.options.plugins || []);
|
|
55
|
+
// 关键点(中文)
|
|
56
|
+
// - plugin_registry 仍然延迟读取 agent_context(避免循环依赖)。
|
|
57
|
+
// - context 一构造完就赋值,registry 第一次读 get_context 时已经是非空。
|
|
62
58
|
let agent_context;
|
|
63
59
|
const plugin_registry = createAgentPluginRegistry({
|
|
64
60
|
plugins: [...plugin_instances.values()],
|
|
65
|
-
get_context: () =>
|
|
61
|
+
get_context: () => {
|
|
62
|
+
if (!agent_context) {
|
|
63
|
+
throw new Error("AgentContext is not assembled yet");
|
|
64
|
+
}
|
|
65
|
+
return agent_context;
|
|
66
|
+
},
|
|
66
67
|
});
|
|
67
68
|
const plugins = plugin_registry;
|
|
68
69
|
if (this.should_register_plugin_call_tool(plugin_instances)) {
|
|
69
70
|
tools.plugin_call = tools.plugin_call || plugin_tools.plugin_call;
|
|
70
71
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
const resolve_session_model = this.resolve_session_model;
|
|
73
|
+
const paths = createAgentPathRuntime(path, id);
|
|
74
|
+
const pluginConfig = createAgentPluginConfigRuntime(path);
|
|
75
|
+
agent_context = new AgentContext({
|
|
76
|
+
cwd: path,
|
|
77
|
+
rootPath: path,
|
|
74
78
|
logger,
|
|
75
79
|
config,
|
|
76
80
|
env,
|
|
77
81
|
systems: instruction,
|
|
78
|
-
|
|
82
|
+
paths,
|
|
83
|
+
pluginConfig,
|
|
84
|
+
pluginInstances: plugin_instances,
|
|
85
|
+
session: {
|
|
86
|
+
get: (session_id) => this.get_session_port(session_id),
|
|
87
|
+
listExecutingSessionIds: () => this.list_cached_sessions()
|
|
88
|
+
.filter((session) => session.isExecuting())
|
|
89
|
+
.map((session) => session.id),
|
|
90
|
+
getExecutingSessionCount: () => this.list_cached_sessions()
|
|
91
|
+
.filter((session) => session.isExecuting()).length,
|
|
92
|
+
resolveModel: async (session_id) => await resolve_session_model(session_id),
|
|
93
|
+
},
|
|
79
94
|
plugins,
|
|
80
|
-
get_session_port: this.get_session_port,
|
|
81
|
-
resolve_session_model: async (session_id) => await this.resolve_session_model(session_id),
|
|
82
95
|
});
|
|
83
96
|
const shell = this.options.shell;
|
|
84
97
|
if (shell) {
|
|
@@ -108,8 +121,7 @@ export class AgentAssemblyService {
|
|
|
108
121
|
plugin_instances,
|
|
109
122
|
plugin_registry,
|
|
110
123
|
plugins,
|
|
111
|
-
|
|
112
|
-
agent_context,
|
|
124
|
+
agent_context: agent_context,
|
|
113
125
|
...(shell ? { shell } : {}),
|
|
114
126
|
};
|
|
115
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentAssemblyService.js","sourceRoot":"","sources":["../../../../src/agent/local/services/AgentAssemblyService.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
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"}
|