@downcity/agent 1.1.445 → 1.5.0
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/bin/agent/Agent.d.ts +29 -2
- package/bin/agent/Agent.d.ts.map +1 -1
- package/bin/agent/Agent.js +56 -10
- package/bin/agent/Agent.js.map +1 -1
- package/bin/agent/AgentSessionIdentity.d.ts +19 -0
- package/bin/agent/AgentSessionIdentity.d.ts.map +1 -0
- package/bin/agent/AgentSessionIdentity.js +26 -0
- package/bin/agent/AgentSessionIdentity.js.map +1 -0
- package/bin/agent/AgentSessions.d.ts +35 -9
- package/bin/agent/AgentSessions.d.ts.map +1 -1
- package/bin/agent/AgentSessions.js +110 -63
- package/bin/agent/AgentSessions.js.map +1 -1
- package/bin/agent/SessionWork.d.ts +85 -0
- package/bin/agent/SessionWork.d.ts.map +1 -0
- package/bin/agent/SessionWork.js +165 -0
- package/bin/agent/SessionWork.js.map +1 -0
- package/bin/index.d.ts +5 -0
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js.map +1 -1
- package/bin/session/Session.d.ts +34 -8
- package/bin/session/Session.d.ts.map +1 -1
- package/bin/session/Session.js +102 -27
- package/bin/session/Session.js.map +1 -1
- package/bin/session/input/StepInput.d.ts +15 -0
- package/bin/session/input/StepInput.d.ts.map +1 -1
- package/bin/session/input/StepInput.js +39 -5
- package/bin/session/input/StepInput.js.map +1 -1
- package/bin/session/loop/SessionLoop.d.ts +2 -1
- package/bin/session/loop/SessionLoop.d.ts.map +1 -1
- package/bin/session/loop/SessionLoop.js +7 -9
- package/bin/session/loop/SessionLoop.js.map +1 -1
- package/bin/session/loop/SessionState.d.ts +21 -1
- package/bin/session/loop/SessionState.d.ts.map +1 -1
- package/bin/session/loop/SessionState.js +54 -1
- package/bin/session/loop/SessionState.js.map +1 -1
- package/bin/session/storage/Browse.d.ts.map +1 -1
- package/bin/session/storage/Browse.js +2 -2
- package/bin/session/storage/Browse.js.map +1 -1
- package/bin/session/storage/LocalSessionStore.d.ts.map +1 -1
- package/bin/session/storage/LocalSessionStore.js +7 -7
- package/bin/session/storage/LocalSessionStore.js.map +1 -1
- package/bin/tools/session/SessionToolSchemas.d.ts +34 -0
- package/bin/tools/session/SessionToolSchemas.d.ts.map +1 -0
- package/bin/tools/session/SessionToolSchemas.js +39 -0
- package/bin/tools/session/SessionToolSchemas.js.map +1 -0
- package/bin/tools/session/SessionTools.d.ts +57 -0
- package/bin/tools/session/SessionTools.d.ts.map +1 -0
- package/bin/tools/session/SessionTools.js +111 -0
- package/bin/tools/session/SessionTools.js.map +1 -0
- package/bin/types/agent/AgentOptions.d.ts +10 -1
- package/bin/types/agent/AgentOptions.d.ts.map +1 -1
- package/bin/types/agent/AgentSessionCollection.d.ts +17 -6
- package/bin/types/agent/AgentSessionCollection.d.ts.map +1 -1
- package/bin/types/agent/AgentSessionCollection.js +1 -1
- package/bin/types/agent/AgentSessionInput.d.ts +14 -0
- package/bin/types/agent/AgentSessionInput.d.ts.map +1 -0
- package/bin/types/agent/AgentSessionInput.js +9 -0
- package/bin/types/agent/AgentSessionInput.js.map +1 -0
- package/bin/types/agent/SessionActor.d.ts +16 -5
- package/bin/types/agent/SessionActor.d.ts.map +1 -1
- package/bin/types/agent/SessionContext.d.ts +26 -0
- package/bin/types/agent/SessionContext.d.ts.map +1 -0
- package/bin/types/agent/SessionContext.js +12 -0
- package/bin/types/agent/SessionContext.js.map +1 -0
- package/bin/types/agent/SessionState.d.ts +55 -0
- package/bin/types/agent/SessionState.d.ts.map +1 -0
- package/bin/types/agent/SessionState.js +15 -0
- package/bin/types/agent/SessionState.js.map +1 -0
- package/bin/types/agent/SessionTypes.d.ts +12 -1
- package/bin/types/agent/SessionTypes.d.ts.map +1 -1
- package/bin/types/agent/SessionWork.d.ts +53 -0
- package/bin/types/agent/SessionWork.d.ts.map +1 -0
- package/bin/types/agent/SessionWork.js +13 -0
- package/bin/types/agent/SessionWork.js.map +1 -0
- package/bin/types/session/SessionLocalState.d.ts +20 -1
- package/bin/types/session/SessionLocalState.d.ts.map +1 -1
- package/bin/types/session/SessionLoop.d.ts +6 -2
- package/bin/types/session/SessionLoop.d.ts.map +1 -1
- package/bin/types/session/SessionOptions.d.ts +9 -11
- package/bin/types/session/SessionOptions.d.ts.map +1 -1
- package/bin/types/session/StepInput.d.ts +5 -5
- package/bin/types/session/StepInput.d.ts.map +1 -1
- package/bin/types/tools/session/SessionTools.d.ts +92 -0
- package/bin/types/tools/session/SessionTools.d.ts.map +1 -0
- package/bin/types/tools/session/SessionTools.js +12 -0
- package/bin/types/tools/session/SessionTools.js.map +1 -0
- package/package.json +2 -2
- package/scripts/session-executor-context-pressure.test.mjs +1 -1
- package/scripts/session-executor-failure-result.test.mjs +1 -1
- package/scripts/session-executor-max-steps.test.mjs +1 -1
- package/scripts/session-initialization.test.mjs +4 -2
- package/scripts/session-interaction-migration.test.mjs +2 -2
- package/scripts/session-prompt-idempotency.test.mjs +2 -2
- package/scripts/session-storage-sqlite.test.mjs +3 -3
- package/scripts/session-turn-context.test.mjs +4 -4
- package/src/agent/Agent.ts +64 -10
- package/src/agent/AgentSessionIdentity.ts +30 -0
- package/src/agent/AgentSessions.ts +119 -77
- package/src/agent/SessionWork.ts +235 -0
- package/src/index.ts +19 -0
- package/src/session/Session.ts +112 -29
- package/src/session/input/StepInput.ts +42 -7
- package/src/session/loop/SessionLoop.ts +7 -9
- package/src/session/loop/SessionState.ts +61 -1
- package/src/session/storage/Browse.ts +2 -1
- package/src/session/storage/LocalSessionStore.ts +7 -7
- package/src/tools/session/SessionToolSchemas.ts +61 -0
- package/src/tools/session/SessionTools.ts +170 -0
- package/src/types/agent/AgentOptions.ts +12 -1
- package/src/types/agent/AgentSessionCollection.ts +18 -7
- package/src/types/agent/AgentSessionInput.ts +15 -0
- package/src/types/agent/SessionActor.ts +23 -5
- package/src/types/agent/SessionContext.ts +29 -0
- package/src/types/agent/SessionState.ts +74 -0
- package/src/types/agent/SessionTypes.ts +13 -1
- package/src/types/agent/SessionWork.ts +57 -0
- package/src/types/session/SessionLocalState.ts +24 -1
- package/src/types/session/SessionLoop.ts +6 -2
- package/src/types/session/SessionOptions.ts +10 -14
- package/src/types/session/StepInput.ts +5 -5
- package/src/types/tools/session/SessionTools.ts +104 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -10,7 +10,8 @@ import { nanoid } from "nanoid";
|
|
|
10
10
|
import { Session } from "../session/Session.js";
|
|
11
11
|
import { create_instruction_system_blocks } from "../agent/AgentInstructions.js";
|
|
12
12
|
import { DefaultSessionComposer } from "../session/input/composer/DefaultSessionComposer.js";
|
|
13
|
-
import { normalize_session_origin, normalize_session_origin_type } from "@downcity/type";
|
|
13
|
+
import { normalize_session_origin, normalize_session_origin_type, SESSION_ORIGIN_TYPE_WORK } from "@downcity/type";
|
|
14
|
+
import { create_agent_session_origin, resolve_agent_session_id } from "../agent/AgentSessionIdentity.js";
|
|
14
15
|
/**
|
|
15
16
|
* 本地 Agent session 管理服务。
|
|
16
17
|
*/
|
|
@@ -25,6 +26,8 @@ export class AgentSessions {
|
|
|
25
26
|
session_composer;
|
|
26
27
|
get_agent_model;
|
|
27
28
|
sessions_by_id = new Map();
|
|
29
|
+
/** Agent 会话创建链;并发调用共享同一创建过程,避免产生第二条。 */
|
|
30
|
+
agent_session_creation_chain = Promise.resolve();
|
|
28
31
|
constructor(options) {
|
|
29
32
|
this.agent_id = options.agent_id;
|
|
30
33
|
this.agent_name = options.agent_name;
|
|
@@ -77,7 +80,7 @@ export class AgentSessions {
|
|
|
77
80
|
* runtime 是执行层的内部投影,不负责创建 Session。需要创建时必须
|
|
78
81
|
* 通过 `create()` 获取内部生成的 ID;需要恢复时必须先调用 `get()`。
|
|
79
82
|
*/
|
|
80
|
-
runtime(session_id, origin_type =
|
|
83
|
+
runtime(session_id, origin_type = SESSION_ORIGIN_TYPE_WORK) {
|
|
81
84
|
const resolved_session_id = String(session_id || "").trim();
|
|
82
85
|
const resolved_origin_type = normalize_session_origin_type(origin_type);
|
|
83
86
|
const session = this.sessions_by_id.get(this.session_cache_key(resolved_session_id, resolved_origin_type));
|
|
@@ -86,13 +89,78 @@ export class AgentSessions {
|
|
|
86
89
|
}
|
|
87
90
|
return session.get_runtime_port();
|
|
88
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* 取用 Agent 自己那条会话;不存在时创建。
|
|
94
|
+
*
|
|
95
|
+
* 关键点(中文)
|
|
96
|
+
* - 身份就是 `origin.type = "agent"`,`session_id` 就是 Agent 的 `id`:
|
|
97
|
+
* 因此不新增索引,也不维护额外状态。
|
|
98
|
+
* - 同一进程内并发调用会收敛到同一个创建过程,不会产生第二条。
|
|
99
|
+
* - 被归档或删除后,下一次调用自然重建一条。
|
|
100
|
+
*/
|
|
101
|
+
async self(input) {
|
|
102
|
+
const existing = await this.find_agent_session();
|
|
103
|
+
if (existing)
|
|
104
|
+
return existing;
|
|
105
|
+
return await this.run_agent_session_creation(async () => {
|
|
106
|
+
const cached = await this.find_agent_session();
|
|
107
|
+
if (cached)
|
|
108
|
+
return cached;
|
|
109
|
+
const origin = create_agent_session_origin();
|
|
110
|
+
const context = this.resolve_session_context({
|
|
111
|
+
origin,
|
|
112
|
+
creating: true,
|
|
113
|
+
...(input?.workspace ? { workspace: input.workspace } : {}),
|
|
114
|
+
});
|
|
115
|
+
const session_id = resolve_agent_session_id(this.agent_id);
|
|
116
|
+
const session = this.get_or_create_session({
|
|
117
|
+
session_id,
|
|
118
|
+
origin,
|
|
119
|
+
...(input?.workspace ? { workspace: input.workspace } : {}),
|
|
120
|
+
storage: context.store.create_session(session_id, origin, context.workspace_id),
|
|
121
|
+
});
|
|
122
|
+
await session.initialize();
|
|
123
|
+
return session;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 尝试恢复已存在的 Agent 会话;不存在或已失效时返回空。
|
|
128
|
+
*
|
|
129
|
+
* 关键点(中文):查找不传 Workspace;传 Workspace 只在创建时生效,
|
|
130
|
+
* 否则「已存在时忽略该参数」会退化成一次静默切目录。
|
|
131
|
+
*/
|
|
132
|
+
async find_agent_session() {
|
|
133
|
+
const origin = create_agent_session_origin();
|
|
134
|
+
const context = this.resolve_session_context({ origin });
|
|
135
|
+
const session_id = resolve_agent_session_id(this.agent_id);
|
|
136
|
+
try {
|
|
137
|
+
if (!(await context.store.has_session(session_id, origin.type))) {
|
|
138
|
+
return undefined;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
return await this.get(session_id, origin.type);
|
|
145
|
+
}
|
|
146
|
+
/** 串行化 Agent 会话创建;失败时释放链,使下一次调用可以重试。 */
|
|
147
|
+
async run_agent_session_creation(create) {
|
|
148
|
+
const previous = this.agent_session_creation_chain;
|
|
149
|
+
const operation = previous.then(create, create);
|
|
150
|
+
this.agent_session_creation_chain = operation.then(() => undefined, () => undefined);
|
|
151
|
+
return await operation;
|
|
152
|
+
}
|
|
89
153
|
/**
|
|
90
154
|
* 新建一个 session。
|
|
91
155
|
*/
|
|
92
156
|
async create(input) {
|
|
93
157
|
const origin = normalize_session_origin(input?.origin);
|
|
94
158
|
const session_id = `session-${Date.now()}-${nanoid(8)}`;
|
|
95
|
-
const context = this.resolve_session_context(
|
|
159
|
+
const context = this.resolve_session_context({
|
|
160
|
+
origin,
|
|
161
|
+
creating: true,
|
|
162
|
+
...(input?.workspace ? { workspace: input.workspace } : {}),
|
|
163
|
+
});
|
|
96
164
|
const session = this.get_or_create_session({
|
|
97
165
|
session_id,
|
|
98
166
|
workspace: input?.workspace,
|
|
@@ -104,15 +172,23 @@ export class AgentSessions {
|
|
|
104
172
|
}
|
|
105
173
|
/**
|
|
106
174
|
* 获取一个已存在的 session。
|
|
175
|
+
*
|
|
176
|
+
* 关键点(中文)
|
|
177
|
+
* - 当前目录不是 Session 身份:传入的 Workspace 与持久化值不一致时不再报错,
|
|
178
|
+
* 而是以传入值为准成为该 Session 的新当前目录。
|
|
179
|
+
* - 省略 Workspace 时沿用持久化值;两者都为空时该 Session 没有项目上下文。
|
|
107
180
|
*/
|
|
108
|
-
async get(session_id, origin_type =
|
|
181
|
+
async get(session_id, origin_type = SESSION_ORIGIN_TYPE_WORK, input) {
|
|
109
182
|
const resolved_session_id = String(session_id || "").trim();
|
|
110
183
|
if (!resolved_session_id) {
|
|
111
184
|
throw new Error("sessions.get requires a non-empty session_id");
|
|
112
185
|
}
|
|
113
186
|
const resolved_origin_type = normalize_session_origin_type(origin_type);
|
|
114
187
|
const cache_key = this.session_cache_key(resolved_session_id, resolved_origin_type);
|
|
115
|
-
const context = this.resolve_session_context(
|
|
188
|
+
const context = this.resolve_session_context({
|
|
189
|
+
origin: { type: resolved_origin_type },
|
|
190
|
+
...(input?.workspace ? { workspace: input.workspace } : {}),
|
|
191
|
+
});
|
|
116
192
|
const store = context.store;
|
|
117
193
|
if (!this.sessions_by_id.has(cache_key) &&
|
|
118
194
|
!(await store.has_session(resolved_session_id, resolved_origin_type))) {
|
|
@@ -121,24 +197,21 @@ export class AgentSessions {
|
|
|
121
197
|
const storage = await store.open_session(resolved_session_id, resolved_origin_type);
|
|
122
198
|
const persisted_metadata = await storage.read_metadata();
|
|
123
199
|
const persisted_workspace_id = String(persisted_metadata.workspace_id || "").trim() || undefined;
|
|
124
|
-
const persisted_origin = persisted_metadata.origin;
|
|
125
|
-
const cached = this.sessions_by_id.get(cache_key);
|
|
126
200
|
const requested_workspace_id = String(input?.workspace?.id || "").trim() || undefined;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
132
|
-
if (cached && cached.workspace_id !== requested_workspace_id) {
|
|
133
|
-
throw new Error(`Session "${resolved_session_id}" is already bound to Workspace "${cached.workspace_id || ""}"`);
|
|
134
|
-
}
|
|
201
|
+
// 目录不是身份,也不在 Session 侧还原:
|
|
202
|
+
// - 宿主传了实例 → 用它;
|
|
203
|
+
// - 本进程有缓存 → 沿用内存实例;
|
|
204
|
+
// - 都没有 → 该会话没有项目上下文,但仍可正常读历史与对话。
|
|
135
205
|
const session = this.get_or_create_session({
|
|
136
206
|
session_id: resolved_session_id,
|
|
137
|
-
workspace: input
|
|
138
|
-
origin:
|
|
207
|
+
...(input?.workspace ? { workspace: input.workspace } : {}),
|
|
208
|
+
origin: persisted_metadata.origin,
|
|
139
209
|
storage,
|
|
140
210
|
});
|
|
141
211
|
await session.initialize();
|
|
212
|
+
if (requested_workspace_id && requested_workspace_id !== persisted_workspace_id) {
|
|
213
|
+
await session.set({ workspace: input?.workspace ?? null });
|
|
214
|
+
}
|
|
142
215
|
return session;
|
|
143
216
|
}
|
|
144
217
|
/**
|
|
@@ -148,7 +221,7 @@ export class AgentSessions {
|
|
|
148
221
|
* - 正在执行的 Session 会先停止,避免删除后继续写入。
|
|
149
222
|
* - 该方法不处理任何 Power 自有数据。
|
|
150
223
|
*/
|
|
151
|
-
async remove(session_id, origin_type =
|
|
224
|
+
async remove(session_id, origin_type = SESSION_ORIGIN_TYPE_WORK) {
|
|
152
225
|
const resolved_session_id = String(session_id || "").trim();
|
|
153
226
|
if (!resolved_session_id) {
|
|
154
227
|
throw new Error("sessions.remove requires a non-empty session_id");
|
|
@@ -167,7 +240,7 @@ export class AgentSessions {
|
|
|
167
240
|
/**
|
|
168
241
|
* 清空一个 Session 的消息目录。
|
|
169
242
|
*/
|
|
170
|
-
async clear_messages(session_id, origin_type =
|
|
243
|
+
async clear_messages(session_id, origin_type = SESSION_ORIGIN_TYPE_WORK) {
|
|
171
244
|
const resolved_session_id = String(session_id || "").trim();
|
|
172
245
|
if (!resolved_session_id) {
|
|
173
246
|
throw new Error("sessions.clear_messages requires a non-empty session_id");
|
|
@@ -187,8 +260,8 @@ export class AgentSessions {
|
|
|
187
260
|
* 列出当前 agent 的 session 摘要页。
|
|
188
261
|
*/
|
|
189
262
|
async list(input) {
|
|
190
|
-
const origin_type = normalize_session_origin_type(input?.origin_type ??
|
|
191
|
-
return await this.resolve_session_context().store.list_sessions({ ...(input || {}), origin_type }, new Set(this.list_executing_session_ids(undefined, origin_type)));
|
|
263
|
+
const origin_type = normalize_session_origin_type(input?.origin_type ?? SESSION_ORIGIN_TYPE_WORK);
|
|
264
|
+
return await this.resolve_session_context({ origin: { type: origin_type } }).store.list_sessions({ ...(input || {}), origin_type }, new Set(this.list_executing_session_ids(undefined, origin_type)));
|
|
192
265
|
}
|
|
193
266
|
/**
|
|
194
267
|
* 归档单个 session。
|
|
@@ -198,7 +271,7 @@ export class AgentSessions {
|
|
|
198
271
|
if (!session_id) {
|
|
199
272
|
throw new Error("sessions.archive requires a non-empty id");
|
|
200
273
|
}
|
|
201
|
-
const origin_type = normalize_session_origin_type(input.origin_type ??
|
|
274
|
+
const origin_type = normalize_session_origin_type(input.origin_type ?? SESSION_ORIGIN_TYPE_WORK);
|
|
202
275
|
const cache_key = this.session_cache_key(session_id, origin_type);
|
|
203
276
|
const cached = this.sessions_by_id.get(cache_key);
|
|
204
277
|
if (cached?.is_executing()) {
|
|
@@ -222,64 +295,38 @@ export class AgentSessions {
|
|
|
222
295
|
return await this.resolve_session_context().store.clean_archive();
|
|
223
296
|
}
|
|
224
297
|
/**
|
|
225
|
-
*
|
|
298
|
+
* 删除:把 Session 重新绑定到另一个 Workspace。
|
|
226
299
|
*
|
|
227
|
-
*
|
|
228
|
-
*
|
|
229
|
-
* - 之后用新 Workspace 恢复时不再触发严格的 workspace 归属校验。
|
|
300
|
+
* 删除理由:它表达的是「Workspace 是 Session 绑定」这个旧模型。目录切换改由
|
|
301
|
+
* `session.set({ workspace })` 承担,恢复时不再校验归属,因此不需要第二条路径。
|
|
230
302
|
*/
|
|
231
|
-
async workspace(session_id, workspace) {
|
|
232
|
-
const resolved_session_id = String(session_id || "").trim();
|
|
233
|
-
if (!resolved_session_id) {
|
|
234
|
-
throw new Error("sessions.workspace requires a non-empty session_id");
|
|
235
|
-
}
|
|
236
|
-
const resolved_origin_type = normalize_session_origin_type("chat");
|
|
237
|
-
const cache_key = this.session_cache_key(resolved_session_id, resolved_origin_type);
|
|
238
|
-
const cached = this.sessions_by_id.get(cache_key);
|
|
239
|
-
if (cached?.is_executing()) {
|
|
240
|
-
throw new Error(`Session "${resolved_session_id}" is currently executing`);
|
|
241
|
-
}
|
|
242
|
-
const context = this.resolve_session_context(workspace);
|
|
243
|
-
if (!(await context.store.has_session(resolved_session_id, resolved_origin_type))) {
|
|
244
|
-
throw new Error(`Session "${resolved_session_id}" not found`);
|
|
245
|
-
}
|
|
246
|
-
const store = await context.store.open_session(resolved_session_id, resolved_origin_type);
|
|
247
|
-
const metadata = await store.read_metadata();
|
|
248
|
-
if (metadata.agent_id !== this.agent_id) {
|
|
249
|
-
throw new Error(`Session "${resolved_session_id}" belongs to another Agent`);
|
|
250
|
-
}
|
|
251
|
-
await store.write_metadata({
|
|
252
|
-
...metadata,
|
|
253
|
-
workspace_id: context.workspace_id,
|
|
254
|
-
});
|
|
255
|
-
this.sessions_by_id.delete(cache_key);
|
|
256
|
-
cached?.dispose_title_generation?.();
|
|
257
|
-
return await this.get(resolved_session_id, resolved_origin_type, { workspace });
|
|
258
|
-
}
|
|
259
303
|
get_or_create_session(input) {
|
|
260
304
|
const resolved_session_id = String(input?.session_id || input?.storage?.session_id || "").trim() || `session-${Date.now()}-${nanoid(8)}`;
|
|
261
|
-
const
|
|
262
|
-
const cache_key = this.session_cache_key(resolved_session_id,
|
|
305
|
+
const resolved_origin = normalize_session_origin(input?.origin);
|
|
306
|
+
const cache_key = this.session_cache_key(resolved_session_id, resolved_origin.type);
|
|
263
307
|
const cached = this.sessions_by_id.get(cache_key);
|
|
264
308
|
if (cached)
|
|
265
309
|
return cached;
|
|
266
|
-
const context = this.resolve_session_context(
|
|
310
|
+
const context = this.resolve_session_context({
|
|
311
|
+
...(input?.origin ? { origin: input.origin } : {}),
|
|
312
|
+
creating: true,
|
|
313
|
+
...(input?.workspace ? { workspace: input.workspace } : {}),
|
|
314
|
+
});
|
|
267
315
|
const created = new this.session_class({
|
|
268
316
|
agent_id: this.agent_id,
|
|
269
317
|
agent_name: this.agent_name,
|
|
270
318
|
agent_description: this.agent_description,
|
|
271
319
|
workspace_path: context.workspace_path,
|
|
272
|
-
...(context.
|
|
273
|
-
origin,
|
|
274
|
-
store: input?.storage || context.store.create_session(resolved_session_id,
|
|
275
|
-
create_session_store: (session_id) => context.store.create_session(session_id,
|
|
320
|
+
...(context.get_workspace() ? { workspace: context.get_workspace() } : {}),
|
|
321
|
+
origin: resolved_origin,
|
|
322
|
+
store: input?.storage || context.store.create_session(resolved_session_id, resolved_origin, context.workspace_id),
|
|
323
|
+
create_session_store: (session_id) => context.store.create_session(session_id, resolved_origin, context.workspace_id),
|
|
276
324
|
register_forked_session: (session) => this.register_forked_session(session),
|
|
277
325
|
session_id: resolved_session_id,
|
|
278
326
|
get_tools: () => context.get_tools(),
|
|
279
327
|
logger: context.logger,
|
|
280
328
|
instruction_system_blocks: this.load_instruction_system_blocks(),
|
|
281
329
|
get_instruction_system_blocks: () => this.load_instruction_system_blocks(),
|
|
282
|
-
get_workspace_env: () => context.get_workspace_env(),
|
|
283
330
|
get_workspace: () => context.get_workspace(),
|
|
284
331
|
get_agent_model: () => this.get_agent_model(),
|
|
285
332
|
get_hooks: () => context.get_hooks(),
|
|
@@ -297,7 +344,7 @@ export class AgentSessions {
|
|
|
297
344
|
* - 返回是否真的释放。调用方必须先自行解除对该实例的订阅,否则重新 `get()` 会拿到新实例
|
|
298
345
|
* 而旧订阅仍然挂在被丢弃的实例上。
|
|
299
346
|
*/
|
|
300
|
-
release(session_id, origin_type =
|
|
347
|
+
release(session_id, origin_type = SESSION_ORIGIN_TYPE_WORK) {
|
|
301
348
|
const resolved_session_id = String(session_id || "").trim();
|
|
302
349
|
if (!resolved_session_id)
|
|
303
350
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentSessions.js","sourceRoot":"","sources":["../../src/agent/AgentSessions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentSessions.js","sourceRoot":"","sources":["../../src/agent/AgentSessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionWork:Agent 会话安排与观察其他会话的实现。
|
|
3
|
+
*
|
|
4
|
+
* 职责说明(中文)
|
|
5
|
+
* - 把 AgentSessions 的能力投影成「一件活」的完整动作:开、看、答、停。
|
|
6
|
+
* - 只读取公开的摘要与消息投影,不缓存会话,也不持有存储。
|
|
7
|
+
*
|
|
8
|
+
* 关键点(中文)
|
|
9
|
+
* - 清单排除 Agent 自己的会话,否则清单里会出现「自己」。
|
|
10
|
+
* - `spawn` 不等待 Turn 结束:派活的意义就是 Agent 会话立刻能继续。
|
|
11
|
+
* - 详情按最近消息分页读取,让对话能回答「它做了什么」,而不把整段历史塞进上下文。
|
|
12
|
+
*/
|
|
13
|
+
import type { SessionInteractionResponse, WorkspaceRuntime } from "@downcity/type";
|
|
14
|
+
import type { SessionWorkContract } from "../types/agent/SessionWork.js";
|
|
15
|
+
import type { SessionCheckDetailToolOutput, SessionToolSummary } from "../types/tools/session/SessionTools.js";
|
|
16
|
+
import type { AgentSession } from "../types/agent/SessionActor.js";
|
|
17
|
+
/** 清单中的一条会话列表项;由 AgentSessions 摘要投影而来。 */
|
|
18
|
+
export interface SessionWorkListEntry {
|
|
19
|
+
/** 会话稳定标识。 */
|
|
20
|
+
session_id: string;
|
|
21
|
+
/** 用户可见标题;未生成时省略。 */
|
|
22
|
+
title?: string;
|
|
23
|
+
/** 最近更新的预览文本。 */
|
|
24
|
+
preview_text?: string;
|
|
25
|
+
/** 最近更新时间戳(ms)。 */
|
|
26
|
+
updated_at?: number;
|
|
27
|
+
/** 会话来源。 */
|
|
28
|
+
origin: {
|
|
29
|
+
type: string;
|
|
30
|
+
};
|
|
31
|
+
/** 当前是否正在执行。 */
|
|
32
|
+
executing?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** SessionWork 构造参数。 */
|
|
35
|
+
export interface SessionWorkOptions {
|
|
36
|
+
/** 列出活动会话摘要,`limit` 由本模块归一化后传入。 */
|
|
37
|
+
list_sessions: (input: {
|
|
38
|
+
limit: number;
|
|
39
|
+
}) => Promise<{
|
|
40
|
+
items: SessionWorkListEntry[];
|
|
41
|
+
}>;
|
|
42
|
+
/** 恢复单条会话的运行时实例。 */
|
|
43
|
+
get_session: (session_id: string, origin_type: string) => Promise<AgentSession>;
|
|
44
|
+
/** 新建一条属于当前 Agent 的会话。 */
|
|
45
|
+
create_session: (input?: {
|
|
46
|
+
workspace?: WorkspaceRuntime;
|
|
47
|
+
}) => Promise<AgentSession>;
|
|
48
|
+
}
|
|
49
|
+
/** Agent 会话的会话工作运行时。 */
|
|
50
|
+
export declare class SessionWork implements SessionWorkContract {
|
|
51
|
+
private readonly options;
|
|
52
|
+
constructor(options: SessionWorkOptions);
|
|
53
|
+
/** 开一条工作会话并立刻把任务交给它。 */
|
|
54
|
+
spawn(input: {
|
|
55
|
+
query: string;
|
|
56
|
+
title?: string;
|
|
57
|
+
workspace?: WorkspaceRuntime;
|
|
58
|
+
}): Promise<{
|
|
59
|
+
session_id: string;
|
|
60
|
+
}>;
|
|
61
|
+
/** 列出当前 Agent 除自己那条之外的全部会话。 */
|
|
62
|
+
list(input?: {
|
|
63
|
+
limit?: number;
|
|
64
|
+
}): Promise<SessionToolSummary[]>;
|
|
65
|
+
/** 读取单条会话的摘要、最近消息与待响应 Interaction。 */
|
|
66
|
+
read(input: {
|
|
67
|
+
session_id: string;
|
|
68
|
+
limit?: number;
|
|
69
|
+
}): Promise<SessionCheckDetailToolOutput>;
|
|
70
|
+
/** 代答某条会话正在等待的用户响应。 */
|
|
71
|
+
reply(input: {
|
|
72
|
+
session_id: string;
|
|
73
|
+
interaction_id: string;
|
|
74
|
+
response: SessionInteractionResponse;
|
|
75
|
+
}): Promise<void>;
|
|
76
|
+
/** 停止某条会话当前正在执行的 Turn。 */
|
|
77
|
+
stop(input: {
|
|
78
|
+
session_id: string;
|
|
79
|
+
}): Promise<void>;
|
|
80
|
+
/** 按标识取出属于当前 Agent 的一条会话;不存在时明确失败。 */
|
|
81
|
+
private require_list_entry;
|
|
82
|
+
/** 读取一条会话当前待响应的 Interaction 数量;读取失败时按零处理。 */
|
|
83
|
+
private count_pending;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=SessionWork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionWork.d.ts","sourceRoot":"","sources":["../../src/agent/SessionWork.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,KAAK,EACV,4BAA4B,EAE5B,kBAAkB,EACnB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAQlE,0CAA0C;AAC1C,MAAM,WAAW,oBAAoB;IACnC,cAAc;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY;IACZ,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,gBAAgB;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAwB;AACxB,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,aAAa,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC;QACnD,KAAK,EAAE,oBAAoB,EAAE,CAAC;KAC/B,CAAC,CAAC;IACH,oBAAoB;IACpB,WAAW,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IAChF,0BAA0B;IAC1B,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,gBAAgB,CAAA;KAAE,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;CACrF;AAED,wBAAwB;AACxB,qBAAa,WAAY,YAAW,mBAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAEjC,OAAO,EAAE,kBAAkB;IAIvC,wBAAwB;IAClB,KAAK,CAAC,KAAK,EAAE;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,gBAAgB,CAAC;KAC9B,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAanC,+BAA+B;IACzB,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAuBrE,sCAAsC;IAChC,IAAI,CAAC,KAAK,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAmCzC,uBAAuB;IACjB,KAAK,CAAC,KAAK,EAAE;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,0BAA0B,CAAC;KACtC,GAAG,OAAO,CAAC,IAAI,CAAC;IAejB,0BAA0B;IACpB,IAAI,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMxD,sCAAsC;YACxB,kBAAkB;IAShC,6CAA6C;YAC/B,aAAa;CAQ5B"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionWork:Agent 会话安排与观察其他会话的实现。
|
|
3
|
+
*
|
|
4
|
+
* 职责说明(中文)
|
|
5
|
+
* - 把 AgentSessions 的能力投影成「一件活」的完整动作:开、看、答、停。
|
|
6
|
+
* - 只读取公开的摘要与消息投影,不缓存会话,也不持有存储。
|
|
7
|
+
*
|
|
8
|
+
* 关键点(中文)
|
|
9
|
+
* - 清单排除 Agent 自己的会话,否则清单里会出现「自己」。
|
|
10
|
+
* - `spawn` 不等待 Turn 结束:派活的意义就是 Agent 会话立刻能继续。
|
|
11
|
+
* - 详情按最近消息分页读取,让对话能回答「它做了什么」,而不把整段历史塞进上下文。
|
|
12
|
+
*/
|
|
13
|
+
import { is_agent_session_origin } from "@downcity/type";
|
|
14
|
+
/** 清单默认返回的会话数量上限。 */
|
|
15
|
+
const DEFAULT_SESSION_LIMIT = 20;
|
|
16
|
+
/** 详情默认返回的最近消息条数。 */
|
|
17
|
+
const DEFAULT_MESSAGE_LIMIT = 20;
|
|
18
|
+
/** Agent 会话的会话工作运行时。 */
|
|
19
|
+
export class SessionWork {
|
|
20
|
+
options;
|
|
21
|
+
constructor(options) {
|
|
22
|
+
this.options = options;
|
|
23
|
+
}
|
|
24
|
+
/** 开一条工作会话并立刻把任务交给它。 */
|
|
25
|
+
async spawn(input) {
|
|
26
|
+
const query = String(input.query || "").trim();
|
|
27
|
+
if (!query)
|
|
28
|
+
throw new Error("session_start requires a non-empty query");
|
|
29
|
+
const session = await this.options.create_session(input.workspace ? { workspace: input.workspace } : undefined);
|
|
30
|
+
const title = String(input.title || "").trim();
|
|
31
|
+
if (title)
|
|
32
|
+
await session.rename(title);
|
|
33
|
+
// 不等待 Turn 结束:派活的意义就是 Agent 会话立刻能继续。
|
|
34
|
+
void session.prompt({ query }).catch(() => undefined);
|
|
35
|
+
return { session_id: session.id };
|
|
36
|
+
}
|
|
37
|
+
/** 列出当前 Agent 除自己那条之外的全部会话。 */
|
|
38
|
+
async list(input) {
|
|
39
|
+
const page = await this.options.list_sessions({
|
|
40
|
+
limit: normalize_limit(input?.limit, DEFAULT_SESSION_LIMIT),
|
|
41
|
+
});
|
|
42
|
+
const summaries = [];
|
|
43
|
+
for (const item of page.items) {
|
|
44
|
+
if (is_agent_session_origin(item.origin))
|
|
45
|
+
continue;
|
|
46
|
+
const pending_interaction_count = await this.count_pending(item);
|
|
47
|
+
summaries.push({
|
|
48
|
+
session_id: item.session_id,
|
|
49
|
+
...(item.title ? { title: item.title } : {}),
|
|
50
|
+
state: resolve_session_state({
|
|
51
|
+
executing: item.executing === true,
|
|
52
|
+
pending_interaction_count,
|
|
53
|
+
}),
|
|
54
|
+
...(item.preview_text ? { preview_text: item.preview_text } : {}),
|
|
55
|
+
...(typeof item.updated_at === "number" ? { updated_at: item.updated_at } : {}),
|
|
56
|
+
pending_interaction_count,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return summaries;
|
|
60
|
+
}
|
|
61
|
+
/** 读取单条会话的摘要、最近消息与待响应 Interaction。 */
|
|
62
|
+
async read(input) {
|
|
63
|
+
const item = await this.require_list_entry(input.session_id);
|
|
64
|
+
const session = await this.options.get_session(item.session_id, item.origin.type);
|
|
65
|
+
const [messages, pending, status] = await Promise.all([
|
|
66
|
+
session.messages({ limit: normalize_limit(input.limit, DEFAULT_MESSAGE_LIMIT) }),
|
|
67
|
+
session.interactions(),
|
|
68
|
+
session.status(),
|
|
69
|
+
]);
|
|
70
|
+
const failure = resolve_failure_text(messages.items);
|
|
71
|
+
return {
|
|
72
|
+
mode: "detail",
|
|
73
|
+
session: {
|
|
74
|
+
session_id: item.session_id,
|
|
75
|
+
...(item.title ? { title: item.title } : {}),
|
|
76
|
+
state: resolve_session_state({
|
|
77
|
+
executing: status.state === "running",
|
|
78
|
+
pending_interaction_count: pending.length,
|
|
79
|
+
}),
|
|
80
|
+
...(item.preview_text ? { preview_text: item.preview_text } : {}),
|
|
81
|
+
...(typeof item.updated_at === "number" ? { updated_at: item.updated_at } : {}),
|
|
82
|
+
pending_interaction_count: pending.length,
|
|
83
|
+
},
|
|
84
|
+
messages: messages.items
|
|
85
|
+
.map((message) => project_message_text(message))
|
|
86
|
+
.filter((entry) => Boolean(entry)),
|
|
87
|
+
pending_interactions: pending.map((interaction) => ({
|
|
88
|
+
interaction_id: interaction.interaction_id,
|
|
89
|
+
type: interaction.type,
|
|
90
|
+
...(interaction.title ? { title: interaction.title } : {}),
|
|
91
|
+
...(interaction.description ? { description: interaction.description } : {}),
|
|
92
|
+
})),
|
|
93
|
+
...(failure ? { failure } : {}),
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/** 代答某条会话正在等待的用户响应。 */
|
|
97
|
+
async reply(input) {
|
|
98
|
+
const item = await this.require_list_entry(input.session_id);
|
|
99
|
+
const session = await this.options.get_session(item.session_id, item.origin.type);
|
|
100
|
+
const pending = await session.interactions();
|
|
101
|
+
if (!pending.some((entry) => entry.interaction_id === input.interaction_id)) {
|
|
102
|
+
throw new Error(`Interaction is not pending on session "${input.session_id}": ${input.interaction_id}`);
|
|
103
|
+
}
|
|
104
|
+
await session.respond({
|
|
105
|
+
interaction_id: input.interaction_id,
|
|
106
|
+
response: input.response,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/** 停止某条会话当前正在执行的 Turn。 */
|
|
110
|
+
async stop(input) {
|
|
111
|
+
const item = await this.require_list_entry(input.session_id);
|
|
112
|
+
const session = await this.options.get_session(item.session_id, item.origin.type);
|
|
113
|
+
await session.stop();
|
|
114
|
+
}
|
|
115
|
+
/** 按标识取出属于当前 Agent 的一条会话;不存在时明确失败。 */
|
|
116
|
+
async require_list_entry(session_id_input) {
|
|
117
|
+
const session_id = String(session_id_input || "").trim();
|
|
118
|
+
if (!session_id)
|
|
119
|
+
throw new Error("Session id is required");
|
|
120
|
+
const page = await this.options.list_sessions({ limit: Number.MAX_SAFE_INTEGER });
|
|
121
|
+
const item = page.items.find((candidate) => candidate.session_id === session_id);
|
|
122
|
+
if (!item)
|
|
123
|
+
throw new Error(`Session is not owned by this agent: ${session_id}`);
|
|
124
|
+
return item;
|
|
125
|
+
}
|
|
126
|
+
/** 读取一条会话当前待响应的 Interaction 数量;读取失败时按零处理。 */
|
|
127
|
+
async count_pending(item) {
|
|
128
|
+
try {
|
|
129
|
+
const session = await this.options.get_session(item.session_id, item.origin.type);
|
|
130
|
+
return (await session.interactions()).length;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
return 0;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
/** 归一化可选数量上限;非法值回退到默认值。 */
|
|
138
|
+
function normalize_limit(input, fallback) {
|
|
139
|
+
return Number.isInteger(input) && input > 0 ? input : fallback;
|
|
140
|
+
}
|
|
141
|
+
/** 由执行态与待响应数量推导清单状态。 */
|
|
142
|
+
function resolve_session_state(input) {
|
|
143
|
+
if (input.pending_interaction_count > 0)
|
|
144
|
+
return "waiting_for_user";
|
|
145
|
+
if (input.executing)
|
|
146
|
+
return "running";
|
|
147
|
+
return "idle";
|
|
148
|
+
}
|
|
149
|
+
/** 把 canonical Message 投影为纯文本;没有可见文本时返回空。 */
|
|
150
|
+
function project_message_text(message) {
|
|
151
|
+
if (message.role !== "user" && message.role !== "agent")
|
|
152
|
+
return null;
|
|
153
|
+
const text = message.parts
|
|
154
|
+
.flatMap((part) => (typeof part.text === "string" ? [part.text] : []))
|
|
155
|
+
.join("\n")
|
|
156
|
+
.trim();
|
|
157
|
+
return text ? { role: message.role, text } : null;
|
|
158
|
+
}
|
|
159
|
+
/** 读取最近一条 Agent 消息上的失败文本;没有失败时返回空。 */
|
|
160
|
+
function resolve_failure_text(messages) {
|
|
161
|
+
const latest_agent = [...messages].reverse().find((message) => message.role === "agent");
|
|
162
|
+
const error = latest_agent?.parts.find((part) => part.type === "error");
|
|
163
|
+
return error?.message ? error.message : undefined;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=SessionWork.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SessionWork.js","sourceRoot":"","sources":["../../src/agent/SessionWork.ts"],"names":[],"mappings":"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"}
|
package/bin/index.d.ts
CHANGED
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
* - HTTP、RPC、Power、Workspace 与 Sandbox 实现不从根入口暴露。
|
|
8
8
|
*/
|
|
9
9
|
export { Agent } from "./agent/Agent.js";
|
|
10
|
+
export type { AgentSessionInput } from "./types/agent/AgentSessionInput.js";
|
|
11
|
+
export type { SessionWorkContract } from "./types/agent/SessionWork.js";
|
|
12
|
+
export type { SessionContextResolution } from "./types/agent/SessionContext.js";
|
|
13
|
+
export type { AgentSessionStateKey, AgentSessionStateValues, RemoteSessionStateKey, RemoteSessionStateValues, } from "./types/agent/SessionState.js";
|
|
14
|
+
export type { SessionCheckDetailToolOutput, SessionCheckListToolOutput, SessionCheckToolOutput, SessionReplyToolOutput, SessionStartToolOutput, SessionStopToolOutput, SessionToolState, SessionToolSummary, } from "./types/tools/session/SessionTools.js";
|
|
10
15
|
export { Group } from "./group/Group.js";
|
|
11
16
|
export type { DispatchAssignment, DispatchDecision, DispatchGroupProfile, DispatchMemberProfile, DispatchStage, DispatchTrigger, DispatchStrategy, AiDispatchStrategyOptions, GroupContract, GroupMessage, GroupOptions, } from "./group/index.js";
|
|
12
17
|
export type { GroupSessionDataStore, GroupSessionHistoryMeta, GroupSessionStore, } from "./types/group/GroupSessionStore.js";
|