@downcity/agent 1.1.11 → 1.1.13
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/index.d.ts +3 -3
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +2 -2
- package/bin/index.js.map +1 -1
- package/bin/runtime/AgentRuntime.d.ts +2 -2
- package/bin/runtime/AgentRuntime.d.ts.map +1 -1
- package/bin/runtime/AgentRuntime.js +7 -12
- package/bin/runtime/AgentRuntime.js.map +1 -1
- package/bin/runtime/AgentRuntimeTypes.d.ts +3 -3
- package/bin/runtime/AgentRuntimeTypes.d.ts.map +1 -1
- package/bin/sdk/Agent.d.ts +13 -8
- package/bin/sdk/Agent.d.ts.map +1 -1
- package/bin/sdk/Agent.js +62 -18
- package/bin/sdk/Agent.js.map +1 -1
- package/bin/sdk/AgentSdkTypes.d.ts +95 -0
- package/bin/sdk/AgentSdkTypes.d.ts.map +1 -1
- package/bin/sdk/RemoteAgent.d.ts +3 -3
- package/bin/sdk/RemoteAgent.d.ts.map +1 -1
- package/bin/sdk/RemoteAgent.js +5 -2
- package/bin/sdk/RemoteAgent.js.map +1 -1
- package/bin/sdk/Session.d.ts +21 -19
- package/bin/sdk/Session.d.ts.map +1 -1
- package/bin/sdk/Session.js +79 -69
- package/bin/sdk/Session.js.map +1 -1
- package/bin/sdk/SessionMetadata.d.ts +7 -3
- package/bin/sdk/SessionMetadata.d.ts.map +1 -1
- package/bin/sdk/SessionMetadata.js +21 -5
- package/bin/sdk/SessionMetadata.js.map +1 -1
- package/bin/sdk/SessionPersistence.d.ts +6 -6
- package/bin/sdk/SessionPersistence.d.ts.map +1 -1
- package/bin/sdk/SessionPersistence.js +7 -7
- package/bin/sdk/SessionPersistence.js.map +1 -1
- package/bin/sdk/SessionServicePort.d.ts +5 -5
- package/bin/sdk/SessionServicePort.d.ts.map +1 -1
- package/bin/sdk/SessionServicePort.js +9 -9
- package/bin/sdk/SessionServicePort.js.map +1 -1
- package/bin/sdk/SessionSystemBuilder.d.ts +106 -0
- package/bin/sdk/SessionSystemBuilder.d.ts.map +1 -0
- package/bin/sdk/SessionSystemBuilder.js +150 -0
- package/bin/sdk/SessionSystemBuilder.js.map +1 -0
- package/bin/service/builtins/chat/runtime/ChatSession.d.ts +27 -8
- package/bin/service/builtins/chat/runtime/ChatSession.d.ts.map +1 -1
- package/bin/service/builtins/chat/runtime/ChatSession.js +9 -4
- package/bin/service/builtins/chat/runtime/ChatSession.js.map +1 -1
- package/bin/service/builtins/task/runtime/Runner.d.ts +1 -1
- package/bin/service/builtins/task/runtime/Runner.js +1 -1
- package/bin/service/builtins/task/runtime/TaskRunnerSession.d.ts +2 -2
- package/bin/service/builtins/task/runtime/TaskRunnerSession.js +4 -4
- package/bin/service/builtins/task/runtime/TaskRunnerSession.js.map +1 -1
- package/bin/service/builtins/task/runtime/TaskRunnerTypes.d.ts +1 -1
- package/bin/session/{Session.d.ts → Executor.d.ts} +54 -17
- package/bin/session/Executor.d.ts.map +1 -0
- package/bin/session/{Session.js → Executor.js} +60 -23
- package/bin/session/Executor.js.map +1 -0
- package/bin/session/composer/SessionComposer.d.ts +1 -1
- package/bin/session/composer/SessionComposer.js +1 -1
- package/bin/session/composer/compaction/SessionCompactionComposer.d.ts +2 -2
- package/bin/session/composer/execution/LocalSessionExecutionComposer.d.ts +1 -1
- package/bin/session/composer/execution/LocalSessionExecutionComposer.js +1 -1
- package/bin/session/composer/execution/SessionExecutionComposer.d.ts +1 -1
- package/bin/session/composer/history/SessionHistoryComposer.d.ts +1 -1
- package/bin/session/composer/system/SessionSystemComposer.d.ts +1 -1
- package/bin/session/composer/system/SessionSystemComposer.js +1 -1
- package/bin/session/executors/local/{LocalSessionCore.d.ts → Runner.d.ts} +10 -10
- package/bin/session/executors/local/Runner.d.ts.map +1 -0
- package/bin/session/executors/local/{LocalSessionCore.js → Runner.js} +11 -11
- package/bin/session/executors/local/Runner.js.map +1 -0
- package/bin/session/executors/local/SessionExecutionError.d.ts +1 -1
- package/bin/session/executors/local/SessionExecutionError.js +1 -1
- package/bin/session/executors/local/SessionLoopDecision.d.ts +3 -3
- package/bin/session/executors/local/SessionLoopDecision.js +3 -3
- package/bin/session/executors/local/SessionModelMessageState.d.ts +2 -2
- package/bin/session/executors/local/SessionModelMessageState.js +2 -2
- package/bin/session/executors/local/SessionSignals.d.ts +3 -3
- package/bin/session/executors/local/SessionSignals.js +3 -3
- package/bin/session/executors/local/SessionToolLoopRunner.d.ts +1 -1
- package/bin/session/executors/local/SessionToolLoopRunner.js +2 -2
- package/bin/session/executors/local/SessionToolLoopRunner.js.map +1 -1
- package/bin/session/types/SessionHistoryMeta.d.ts +2 -0
- package/bin/session/types/SessionHistoryMeta.d.ts.map +1 -1
- package/bin/session/types/SessionLoop.d.ts +1 -1
- package/bin/session/types/SessionLoop.js +1 -1
- package/bin/session/types/SessionRun.d.ts +2 -2
- package/bin/session/types/SessionRun.js +1 -1
- package/package.json +1 -1
- package/src/index.ts +6 -2
- package/src/runtime/AgentRuntime.ts +7 -17
- package/src/runtime/AgentRuntimeTypes.ts +3 -3
- package/src/sdk/Agent.ts +75 -23
- package/src/sdk/AgentSdkTypes.ts +113 -0
- package/src/sdk/RemoteAgent.ts +10 -4
- package/src/sdk/Session.ts +100 -85
- package/src/sdk/SessionMetadata.ts +23 -5
- package/src/sdk/SessionPersistence.ts +13 -13
- package/src/sdk/SessionServicePort.ts +13 -13
- package/src/sdk/SessionSystemBuilder.ts +261 -0
- package/src/service/builtins/chat/runtime/ChatSession.ts +37 -13
- package/src/service/builtins/task/runtime/Runner.ts +1 -1
- package/src/service/builtins/task/runtime/TaskRunnerSession.ts +4 -4
- package/src/service/builtins/task/runtime/TaskRunnerTypes.ts +1 -1
- package/src/session/{Session.ts → Executor.ts} +96 -26
- package/src/session/composer/SessionComposer.ts +1 -1
- package/src/session/composer/compaction/SessionCompactionComposer.ts +2 -2
- package/src/session/composer/execution/LocalSessionExecutionComposer.ts +1 -1
- package/src/session/composer/execution/SessionExecutionComposer.ts +1 -1
- package/src/session/composer/history/SessionHistoryComposer.ts +1 -1
- package/src/session/composer/system/SessionSystemComposer.ts +1 -1
- package/src/session/executors/local/{LocalSessionCore.ts → Runner.ts} +13 -13
- package/src/session/executors/local/SessionExecutionError.ts +1 -1
- package/src/session/executors/local/SessionLoopDecision.ts +3 -3
- package/src/session/executors/local/SessionModelMessageState.ts +2 -2
- package/src/session/executors/local/SessionSignals.ts +3 -3
- package/src/session/executors/local/SessionToolLoopRunner.ts +2 -2
- package/src/session/types/SessionHistoryMeta.ts +2 -0
- package/src/session/types/SessionLoop.ts +1 -1
- package/src/session/types/SessionRun.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/bin/sdk/SdkSessionSystemComposer.d.ts +0 -73
- package/bin/sdk/SdkSessionSystemComposer.d.ts.map +0 -1
- package/bin/sdk/SdkSessionSystemComposer.js +0 -96
- package/bin/sdk/SdkSessionSystemComposer.js.map +0 -1
- package/bin/session/Session.d.ts.map +0 -1
- package/bin/session/Session.js.map +0 -1
- package/bin/session/executors/local/LocalSessionCore.d.ts.map +0 -1
- package/bin/session/executors/local/LocalSessionCore.js.map +0 -1
- package/bin/session/executors/local/LocalSessionExecutor.d.ts +0 -61
- package/bin/session/executors/local/LocalSessionExecutor.d.ts.map +0 -1
- package/bin/session/executors/local/LocalSessionExecutor.js +0 -36
- package/bin/session/executors/local/LocalSessionExecutor.js.map +0 -1
- package/src/sdk/SdkSessionSystemComposer.ts +0 -173
- package/src/session/executors/local/LocalSessionExecutor.ts +0 -89
|
@@ -36,6 +36,15 @@ export interface AgentOptions {
|
|
|
36
36
|
* - session 运行时会直接复用这份工具集合。
|
|
37
37
|
*/
|
|
38
38
|
tools?: Record<string, Tool>;
|
|
39
|
+
/**
|
|
40
|
+
* 调用方显式传入的静态基础指令。
|
|
41
|
+
*
|
|
42
|
+
* 关键点(中文)
|
|
43
|
+
* - `instruction` 是稳定、缓存友好的 system 前缀,不做动态变量替换。
|
|
44
|
+
* - SDK 不主动读取 `PROFILE.md` / `SOUL.md`;这类项目文件应由 city 或调用方读取后传入。
|
|
45
|
+
* - 未传入时,SDK 会使用包内最小 core instruction 作为 fallback。
|
|
46
|
+
*/
|
|
47
|
+
instruction?: string | string[];
|
|
39
48
|
/**
|
|
40
49
|
* 当前 agent 显式持有的 service 实例集合。
|
|
41
50
|
*
|
|
@@ -221,6 +230,92 @@ export type AgentSessionStreamEvent = {
|
|
|
221
230
|
*/
|
|
222
231
|
error: string;
|
|
223
232
|
};
|
|
233
|
+
/**
|
|
234
|
+
* Session system block 来源类型。
|
|
235
|
+
*/
|
|
236
|
+
export type AgentSessionSystemBlockSource = "core" | "instruction" | "service" | "plugin" | "session";
|
|
237
|
+
/**
|
|
238
|
+
* Session system prompt 的单个组成块。
|
|
239
|
+
*/
|
|
240
|
+
export interface AgentSessionSystemBlock {
|
|
241
|
+
/**
|
|
242
|
+
* 当前 block 的来源层级。
|
|
243
|
+
*/
|
|
244
|
+
source: AgentSessionSystemBlockSource;
|
|
245
|
+
/**
|
|
246
|
+
* 当前 block 在来源层级内的名称。
|
|
247
|
+
*
|
|
248
|
+
* 说明(中文)
|
|
249
|
+
* - `instruction` 通常使用 `agent`。
|
|
250
|
+
* - `service` / `plugin` 使用对应 service/plugin 名称。
|
|
251
|
+
* - `core` 使用 `default`。
|
|
252
|
+
* - `session` 使用当前 session 上下文名称。
|
|
253
|
+
*/
|
|
254
|
+
name: string;
|
|
255
|
+
/**
|
|
256
|
+
* 已归一化后的 system 文本内容。
|
|
257
|
+
*
|
|
258
|
+
* 关键点(中文)
|
|
259
|
+
* - SDK 不对 instruction 做动态变量替换。
|
|
260
|
+
* - 动态上下文应由调用方放入 user message。
|
|
261
|
+
*/
|
|
262
|
+
content: string;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* 当前 session 的稳定上下文信息。
|
|
266
|
+
*/
|
|
267
|
+
export interface AgentSessionSystemSessionInfo {
|
|
268
|
+
/**
|
|
269
|
+
* 当前 session 所属 agentId。
|
|
270
|
+
*/
|
|
271
|
+
agentId: string;
|
|
272
|
+
/**
|
|
273
|
+
* 当前 session 唯一标识。
|
|
274
|
+
*/
|
|
275
|
+
sessionId: string;
|
|
276
|
+
/**
|
|
277
|
+
* 当前 agent 绑定的项目根目录。
|
|
278
|
+
*/
|
|
279
|
+
projectRoot: string;
|
|
280
|
+
/**
|
|
281
|
+
* 当前 session 首次创建时间。
|
|
282
|
+
*
|
|
283
|
+
* 关键点(中文)
|
|
284
|
+
* - 这是 session 初始化时落盘的稳定参考时间,按 Date/ISO 字符串对外展示。
|
|
285
|
+
* - 它不是每轮运行的当前时间,不会随着 `run()` / `stream()` 改变。
|
|
286
|
+
*/
|
|
287
|
+
createdAt: string;
|
|
288
|
+
/**
|
|
289
|
+
* 当前 session 初始化时解析到的系统时区。
|
|
290
|
+
*
|
|
291
|
+
* 关键点(中文)
|
|
292
|
+
* - 这是 session 级参考时区,随创建信息一起固定。
|
|
293
|
+
* - 它不是每轮运行重新解析的动态时区。
|
|
294
|
+
*/
|
|
295
|
+
timezone: string;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* 当前 session 生效的完整 system prompt 快照。
|
|
299
|
+
*/
|
|
300
|
+
export interface AgentSessionSystemSnapshot {
|
|
301
|
+
/**
|
|
302
|
+
* 当前 sessionId。
|
|
303
|
+
*/
|
|
304
|
+
sessionId: string;
|
|
305
|
+
/**
|
|
306
|
+
* 当前 session 的稳定上下文信息。
|
|
307
|
+
*
|
|
308
|
+
* 关键点(中文)
|
|
309
|
+
* - 这里包含 session 创建时间这类稳定参考信息。
|
|
310
|
+
* - 这里不包含当前时间、轮次、用户输入等每轮变化的数据。
|
|
311
|
+
* - 每轮动态信息应由调用方放入 user message,避免破坏 instruction 缓存命中。
|
|
312
|
+
*/
|
|
313
|
+
session: AgentSessionSystemSessionInfo;
|
|
314
|
+
/**
|
|
315
|
+
* 当前生效的 system blocks,按进入模型的顺序排列。
|
|
316
|
+
*/
|
|
317
|
+
blocks: AgentSessionSystemBlock[];
|
|
318
|
+
}
|
|
224
319
|
/**
|
|
225
320
|
* Session 元数据列表项。
|
|
226
321
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentSdkTypes.d.ts","sourceRoot":"","sources":["../../src/sdk/AgentSdkTypes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentSdkTypes.d.ts","sourceRoot":"","sources":["../../src/sdk/AgentSdkTypes.ts"],"names":[],"mappings":"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"}
|
package/bin/sdk/RemoteAgent.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - 面向已启动 `agent.http.start()` 的远程/本地 HTTP 服务。
|
|
6
6
|
* - 与本地 `Agent` 尽量保持同一套 session 使用面。
|
|
7
7
|
*/
|
|
8
|
-
import type { AgentSessionMetadata, AgentSessionRunInput, AgentSessionRunResult, AgentSessionSetInput, AgentSessionStreamEvent, RemoteAgentOptions } from "../sdk/AgentSdkTypes.js";
|
|
8
|
+
import type { AgentSessionMetadata, AgentSessionRunInput, AgentSessionRunResult, AgentSessionSetInput, AgentSessionStreamEvent, AgentSessionSystemSnapshot, RemoteAgentOptions } from "../sdk/AgentSdkTypes.js";
|
|
9
9
|
import type { SessionMessageV1 } from "../session/types/SessionMessages.js";
|
|
10
10
|
/**
|
|
11
11
|
* 远程 Session 客户端。
|
|
@@ -27,9 +27,9 @@ declare class RemoteSession {
|
|
|
27
27
|
*/
|
|
28
28
|
history(): Promise<SessionMessageV1[]>;
|
|
29
29
|
/**
|
|
30
|
-
* 读取远程 session 当前生效的 system prompt
|
|
30
|
+
* 读取远程 session 当前生效的 system prompt 快照。
|
|
31
31
|
*/
|
|
32
|
-
system(): Promise<
|
|
32
|
+
system(): Promise<AgentSessionSystemSnapshot>;
|
|
33
33
|
/**
|
|
34
34
|
* 分叉远程 session。
|
|
35
35
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteAgent.d.ts","sourceRoot":"","sources":["../../src/sdk/RemoteAgent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E;;GAEG;AACH,cAAM,aAAa;IACjB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAK9C;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmBtE;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAe5C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"RemoteAgent.d.ts","sourceRoot":"","sources":["../../src/sdk/RemoteAgent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E;;GAEG;AACH,cAAM,aAAa;IACjB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAK9C;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAmBtE;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAe5C;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAoBnD;;OAEG;IACG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAwBtD;;OAEG;IACI,MAAM,CACX,KAAK,EAAE,oBAAoB,GAC1B,aAAa,CAAC,uBAAuB,CAAC;CAsC1C;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,kBAAkB;IAQvC;;OAEG;IACG,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBzD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;CAYlD"}
|
package/bin/sdk/RemoteAgent.js
CHANGED
|
@@ -50,12 +50,15 @@ class RemoteSession {
|
|
|
50
50
|
return payload.messages;
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
|
-
* 读取远程 session 当前生效的 system prompt
|
|
53
|
+
* 读取远程 session 当前生效的 system prompt 快照。
|
|
54
54
|
*/
|
|
55
55
|
async system() {
|
|
56
56
|
const response = await fetch(`${this.baseUrl}/api/sdk/sessions/${encodeURIComponent(this.id)}/system`);
|
|
57
57
|
const payload = (await response.json());
|
|
58
|
-
if (!response.ok ||
|
|
58
|
+
if (!response.ok ||
|
|
59
|
+
!payload.success ||
|
|
60
|
+
!payload.system ||
|
|
61
|
+
!Array.isArray(payload.system.blocks)) {
|
|
59
62
|
throw new Error(String(payload.error || "Remote session system failed"));
|
|
60
63
|
}
|
|
61
64
|
return payload.system;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteAgent.js","sourceRoot":"","sources":["../../src/sdk/RemoteAgent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"RemoteAgent.js","sourceRoot":"","sources":["../../src/sdk/RemoteAgent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH;;GAEG;AACH,MAAM,aAAa;IACR,EAAE,CAAS;IACH,OAAO,CAAS;IAEjC,YAAY,OAAe,EAAE,SAAiB;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,MAA4B;QACpC,MAAM,IAAI,KAAK,CACb,2HAA2H,CAC5H,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,KAA2B;QACnC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;YAClG,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIrC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,2BAA2B,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,OAAO,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAC3E,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIrC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,+BAA+B,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,OAAO,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CACzE,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIrC,CAAC;QACF,IACE,CAAC,QAAQ,CAAC,EAAE;YACZ,CAAC,OAAO,CAAC,OAAO;YAChB,CAAC,OAAO,CAAC,MAAM;YACf,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EACrC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,8BAA8B,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,SAAkB;QAC3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,OAAO,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EACtE;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpC,CAAC;SACH,CACF,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIrC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,4BAA4B,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,MAAM,CACX,KAA2B;QAE3B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,IAAI,CAAC,OAAO,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EACxE;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;SAC5B,CACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,iCAAiC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,IAAI,IAAI;gBAAE,MAAM;YAChB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,IAAI,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,YAAY,IAAI,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAC5C,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;gBACpD,CAAC;gBACD,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAC;QACpD,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAW;IACL,OAAO,CAAS;IAEjC,YAAY,OAA2B;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,SAAkB;QAC9B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpC,CAAC;SACH,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIrC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,4BAA4B,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;QACjE,MAAM,OAAO,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAIrC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,6BAA6B,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;CACF"}
|
package/bin/sdk/Session.d.ts
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* 关键点(中文)
|
|
5
5
|
* - 面向 `new Agent(...)` 的本地会话使用场景。
|
|
6
6
|
* - 统一收口消息落盘、默认模型配置、run/stream/fork 等高层 API。
|
|
7
|
-
* -
|
|
7
|
+
* - 内部继续复用 `Executor` / `JsonlSessionHistoryComposer` / `Runner`。
|
|
8
8
|
*/
|
|
9
9
|
import type { Tool } from "ai";
|
|
10
|
-
import type { AgentSessionConfigSnapshot, AgentSessionForkInput, AgentSessionMetadata, AgentSessionRunInput, AgentSessionRunResult, AgentSessionSetInput, AgentSessionStreamEvent } from "../sdk/AgentSdkTypes.js";
|
|
10
|
+
import type { AgentSessionConfigSnapshot, AgentSessionForkInput, AgentSessionMetadata, AgentSessionRunInput, AgentSessionRunResult, AgentSessionSetInput, AgentSessionStreamEvent, AgentSessionSystemBlock, AgentSessionSystemSnapshot } from "../sdk/AgentSdkTypes.js";
|
|
11
11
|
import type { SessionMessageV1 } from "../session/types/SessionMessages.js";
|
|
12
12
|
import type { SessionPort } from "../runtime/AgentContextTypes.js";
|
|
13
|
-
type
|
|
13
|
+
type SessionOptions = {
|
|
14
14
|
/**
|
|
15
15
|
* 当前 agent 稳定标识。
|
|
16
16
|
*/
|
|
@@ -35,36 +35,38 @@ type SdkSessionOptions = {
|
|
|
35
35
|
warn(message: string, details?: Record<string, unknown>): void;
|
|
36
36
|
};
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* 读取当前 SDK 调用方传入的 instruction system blocks。
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
getInstructionSystemBlocks: () => AgentSessionSystemBlock[];
|
|
41
41
|
/**
|
|
42
|
-
* 读取当前 agent 显式注入 service 的 system
|
|
42
|
+
* 读取当前 agent 显式注入 service 的 system blocks。
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
getServiceSystemBlocks: () => Promise<AgentSessionSystemBlock[]>;
|
|
45
45
|
/**
|
|
46
|
-
* 读取当前 agent 显式注册 plugin 的 system
|
|
46
|
+
* 读取当前 agent 显式注册 plugin 的 system blocks。
|
|
47
47
|
*/
|
|
48
|
-
|
|
48
|
+
getPluginSystemBlocks: () => Promise<AgentSessionSystemBlock[]>;
|
|
49
49
|
};
|
|
50
50
|
/**
|
|
51
51
|
* SDK 本地 Session。
|
|
52
52
|
*/
|
|
53
|
-
export declare class
|
|
53
|
+
export declare class Session {
|
|
54
54
|
readonly id: string;
|
|
55
55
|
readonly agentId: string;
|
|
56
56
|
private readonly projectRoot;
|
|
57
57
|
private readonly tools;
|
|
58
58
|
private readonly logger;
|
|
59
|
-
private readonly
|
|
60
|
-
private readonly
|
|
61
|
-
private readonly
|
|
59
|
+
private readonly getInstructionSystemBlocks;
|
|
60
|
+
private readonly getServiceSystemBlocks;
|
|
61
|
+
private readonly getPluginSystemBlocks;
|
|
62
62
|
private readonly historyComposer;
|
|
63
|
-
private readonly
|
|
63
|
+
private readonly executor;
|
|
64
64
|
private sessionConfig;
|
|
65
|
+
private createdAt;
|
|
66
|
+
private timezone;
|
|
65
67
|
private initializePromise;
|
|
66
68
|
private servicePort;
|
|
67
|
-
constructor(options:
|
|
69
|
+
constructor(options: SessionOptions);
|
|
68
70
|
/**
|
|
69
71
|
* 初始化当前 session 的 meta 信息与内存配置。
|
|
70
72
|
*/
|
|
@@ -104,10 +106,10 @@ export declare class SdkSession {
|
|
|
104
106
|
*
|
|
105
107
|
* 关键点(中文)
|
|
106
108
|
* - 返回内容与实际 run 时使用的 SDK system composer 同源。
|
|
107
|
-
* -
|
|
108
|
-
* -
|
|
109
|
+
* - 包含 instruction/core、显式注入 service system、显式注册 plugin system 与 session 上下文。
|
|
110
|
+
* - 返回结构化快照,不把 system prompt 写入会话历史。
|
|
109
111
|
*/
|
|
110
|
-
system(): Promise<
|
|
112
|
+
system(): Promise<AgentSessionSystemSnapshot>;
|
|
111
113
|
/**
|
|
112
114
|
* 返回当前 session 是否正在执行。
|
|
113
115
|
*/
|
|
@@ -127,7 +129,7 @@ export declare class SdkSession {
|
|
|
127
129
|
/**
|
|
128
130
|
* 从当前 session 创建一个分叉会话。
|
|
129
131
|
*/
|
|
130
|
-
fork(input?: AgentSessionForkInput["messageId"]): Promise<
|
|
132
|
+
fork(input?: AgentSessionForkInput["messageId"]): Promise<Session>;
|
|
131
133
|
/**
|
|
132
134
|
* 生成当前 session 的元数据快照。
|
|
133
135
|
*/
|
package/bin/sdk/Session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/sdk/Session.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAiB,IAAI,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/sdk/Session.ts"],"names":[],"mappings":"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"}
|
package/bin/sdk/Session.js
CHANGED
|
@@ -4,37 +4,36 @@
|
|
|
4
4
|
* 关键点(中文)
|
|
5
5
|
* - 面向 `new Agent(...)` 的本地会话使用场景。
|
|
6
6
|
* - 统一收口消息落盘、默认模型配置、run/stream/fork 等高层 API。
|
|
7
|
-
* -
|
|
7
|
+
* - 内部继续复用 `Executor` / `JsonlSessionHistoryComposer` / `Runner`。
|
|
8
8
|
*/
|
|
9
9
|
import { nanoid } from "nanoid";
|
|
10
|
-
import {
|
|
10
|
+
import { Executor } from "../session/Executor.js";
|
|
11
11
|
import { JsonlSessionHistoryComposer } from "../session/composer/history/jsonl/JsonlSessionHistoryComposer.js";
|
|
12
|
-
import { JsonlSessionCompactionComposer } from "../session/composer/compaction/jsonl/JsonlSessionCompactionComposer.js";
|
|
13
|
-
import { LocalSessionExecutor } from "../session/executors/local/LocalSessionExecutor.js";
|
|
14
12
|
import { extractTextFromUiMessage } from "../service/builtins/chat/runtime/UIMessageTransformer.js";
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { inferModelLabel, patchSdkSessionModelLabel, readSdkSessionMetadata, writeSdkSessionMetadata, } from "../sdk/SessionMetadata.js";
|
|
13
|
+
import { buildSessionSystemBlocks, SessionSystemBuilder, } from "../sdk/SessionSystemBuilder.js";
|
|
14
|
+
import { inferModelLabel, patchSessionModelLabel, readSessionMetadata, resolveSystemTimezone, writeSessionMetadata, } from "../sdk/SessionMetadata.js";
|
|
18
15
|
import { getSdkAgentSessionArchiveDirPath, getSdkAgentSessionDirPath, } from "../sdk/Paths.js";
|
|
19
16
|
import { AsyncQueue } from "../sdk/AsyncQueue.js";
|
|
20
17
|
import { pushUiMessageChunkAsSdkEvent } from "../sdk/StreamEvents.js";
|
|
21
|
-
import { persistSdkAssistantResult,
|
|
22
|
-
import {
|
|
18
|
+
import { persistSdkAssistantResult, touchSessionMetadata, } from "../sdk/SessionPersistence.js";
|
|
19
|
+
import { createSessionServicePort } from "../sdk/SessionServicePort.js";
|
|
23
20
|
/**
|
|
24
21
|
* SDK 本地 Session。
|
|
25
22
|
*/
|
|
26
|
-
export class
|
|
23
|
+
export class Session {
|
|
27
24
|
id;
|
|
28
25
|
agentId;
|
|
29
26
|
projectRoot;
|
|
30
27
|
tools;
|
|
31
28
|
logger;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
getInstructionSystemBlocks;
|
|
30
|
+
getServiceSystemBlocks;
|
|
31
|
+
getPluginSystemBlocks;
|
|
35
32
|
historyComposer;
|
|
36
|
-
|
|
33
|
+
executor;
|
|
37
34
|
sessionConfig = {};
|
|
35
|
+
createdAt = Date.now();
|
|
36
|
+
timezone = resolveSystemTimezone();
|
|
38
37
|
initializePromise = null;
|
|
39
38
|
servicePort = null;
|
|
40
39
|
constructor(options) {
|
|
@@ -43,17 +42,17 @@ export class SdkSession {
|
|
|
43
42
|
this.projectRoot = String(options.projectRoot || "").trim();
|
|
44
43
|
this.tools = options.tools;
|
|
45
44
|
this.logger = options.logger;
|
|
46
|
-
this.
|
|
47
|
-
this.
|
|
48
|
-
this.
|
|
45
|
+
this.getInstructionSystemBlocks = options.getInstructionSystemBlocks;
|
|
46
|
+
this.getServiceSystemBlocks = options.getServiceSystemBlocks;
|
|
47
|
+
this.getPluginSystemBlocks = options.getPluginSystemBlocks;
|
|
49
48
|
if (!this.id) {
|
|
50
|
-
throw new Error("
|
|
49
|
+
throw new Error("Session requires a non-empty sessionId");
|
|
51
50
|
}
|
|
52
51
|
if (!this.agentId) {
|
|
53
|
-
throw new Error("
|
|
52
|
+
throw new Error("Session requires a non-empty agentId");
|
|
54
53
|
}
|
|
55
54
|
if (!this.projectRoot) {
|
|
56
|
-
throw new Error("
|
|
55
|
+
throw new Error("Session requires a non-empty projectRoot");
|
|
57
56
|
}
|
|
58
57
|
const sessionDirPath = getSdkAgentSessionDirPath(this.projectRoot, this.agentId, this.id);
|
|
59
58
|
const messagesDirPath = `${sessionDirPath}/messages`;
|
|
@@ -68,28 +67,21 @@ export class SdkSession {
|
|
|
68
67
|
archiveDirPath: getSdkAgentSessionArchiveDirPath(this.projectRoot, this.agentId, this.id),
|
|
69
68
|
},
|
|
70
69
|
});
|
|
71
|
-
this.
|
|
70
|
+
this.executor = new Executor({
|
|
72
71
|
sessionId: this.id,
|
|
73
72
|
historyComposer: this.historyComposer,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
getStaticSystemPrompts: this.getStaticSystemPrompts,
|
|
87
|
-
getServiceSystemPrompts: this.getServiceSystemPrompts,
|
|
88
|
-
getPluginSystemPrompts: this.getPluginSystemPrompts,
|
|
89
|
-
}),
|
|
90
|
-
getTools: () => this.tools,
|
|
91
|
-
});
|
|
92
|
-
},
|
|
73
|
+
getModel: () => this.sessionConfig.model,
|
|
74
|
+
logger: this.logger,
|
|
75
|
+
systemComposer: new SessionSystemBuilder({
|
|
76
|
+
agentId: this.agentId,
|
|
77
|
+
projectRoot: this.projectRoot,
|
|
78
|
+
getSessionCreatedAt: () => this.createdAt,
|
|
79
|
+
getSessionTimezone: () => this.timezone,
|
|
80
|
+
getInstructionSystemBlocks: this.getInstructionSystemBlocks,
|
|
81
|
+
getServiceSystemBlocks: this.getServiceSystemBlocks,
|
|
82
|
+
getPluginSystemBlocks: this.getPluginSystemBlocks,
|
|
83
|
+
}),
|
|
84
|
+
getTools: () => this.tools,
|
|
93
85
|
});
|
|
94
86
|
}
|
|
95
87
|
/**
|
|
@@ -100,21 +92,28 @@ export class SdkSession {
|
|
|
100
92
|
return await this.initializePromise;
|
|
101
93
|
}
|
|
102
94
|
this.initializePromise = (async () => {
|
|
103
|
-
const metadata = await
|
|
95
|
+
const metadata = await readSessionMetadata({
|
|
104
96
|
projectRoot: this.projectRoot,
|
|
105
97
|
agentId: this.agentId,
|
|
106
98
|
sessionId: this.id,
|
|
107
99
|
});
|
|
108
|
-
|
|
100
|
+
const createdAt = typeof metadata.createdAt === "number" ? metadata.createdAt : Date.now();
|
|
101
|
+
const timezone = typeof metadata.timezone === "string" && metadata.timezone.trim()
|
|
102
|
+
? metadata.timezone.trim()
|
|
103
|
+
: resolveSystemTimezone();
|
|
104
|
+
await writeSessionMetadata({
|
|
109
105
|
projectRoot: this.projectRoot,
|
|
110
106
|
agentId: this.agentId,
|
|
111
107
|
sessionId: this.id,
|
|
112
108
|
meta: {
|
|
113
109
|
...metadata,
|
|
114
110
|
agentId: this.agentId,
|
|
115
|
-
createdAt
|
|
111
|
+
createdAt,
|
|
112
|
+
timezone,
|
|
116
113
|
},
|
|
117
114
|
});
|
|
115
|
+
this.createdAt = createdAt;
|
|
116
|
+
this.timezone = timezone;
|
|
118
117
|
this.sessionConfig = {
|
|
119
118
|
...(metadata.sdkConfig?.modelLabel
|
|
120
119
|
? { modelLabel: metadata.sdkConfig.modelLabel }
|
|
@@ -139,9 +138,9 @@ export class SdkSession {
|
|
|
139
138
|
if (input.model) {
|
|
140
139
|
this.sessionConfig.model = input.model;
|
|
141
140
|
this.sessionConfig.modelLabel = inferModelLabel(input.model);
|
|
142
|
-
this.
|
|
141
|
+
this.executor.clearExecutor();
|
|
143
142
|
}
|
|
144
|
-
await
|
|
143
|
+
await patchSessionModelLabel({
|
|
145
144
|
projectRoot: this.projectRoot,
|
|
146
145
|
agentId: this.agentId,
|
|
147
146
|
sessionId: this.id,
|
|
@@ -152,7 +151,7 @@ export class SdkSession {
|
|
|
152
151
|
* 追加一条 user 文本消息。
|
|
153
152
|
*/
|
|
154
153
|
async appendUserMessage(input) {
|
|
155
|
-
await this.
|
|
154
|
+
await this.executor.appendUserMessage({
|
|
156
155
|
text: String(input.text || "").trim(),
|
|
157
156
|
});
|
|
158
157
|
await this.touchMetadata();
|
|
@@ -161,7 +160,7 @@ export class SdkSession {
|
|
|
161
160
|
* 追加一条 assistant 文本消息。
|
|
162
161
|
*/
|
|
163
162
|
async appendAssistantMessage(input) {
|
|
164
|
-
await this.
|
|
163
|
+
await this.executor.appendAssistantMessage({
|
|
165
164
|
fallbackText: String(input.text || "").trim(),
|
|
166
165
|
});
|
|
167
166
|
await this.touchMetadata();
|
|
@@ -177,32 +176,43 @@ export class SdkSession {
|
|
|
177
176
|
*
|
|
178
177
|
* 关键点(中文)
|
|
179
178
|
* - 返回内容与实际 run 时使用的 SDK system composer 同源。
|
|
180
|
-
* -
|
|
181
|
-
* -
|
|
179
|
+
* - 包含 instruction/core、显式注入 service system、显式注册 plugin system 与 session 上下文。
|
|
180
|
+
* - 返回结构化快照,不把 system prompt 写入会话历史。
|
|
182
181
|
*/
|
|
183
182
|
async system() {
|
|
184
|
-
const
|
|
183
|
+
const blocks = await buildSessionSystemBlocks({
|
|
184
|
+
agentId: this.agentId,
|
|
185
185
|
projectRoot: this.projectRoot,
|
|
186
186
|
sessionId: this.id,
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
187
|
+
createdAt: this.createdAt,
|
|
188
|
+
timezone: this.timezone,
|
|
189
|
+
getInstructionSystemBlocks: this.getInstructionSystemBlocks,
|
|
190
|
+
getServiceSystemBlocks: this.getServiceSystemBlocks,
|
|
191
|
+
getPluginSystemBlocks: this.getPluginSystemBlocks,
|
|
190
192
|
});
|
|
191
|
-
return
|
|
192
|
-
|
|
193
|
-
|
|
193
|
+
return {
|
|
194
|
+
sessionId: this.id,
|
|
195
|
+
session: {
|
|
196
|
+
agentId: this.agentId,
|
|
197
|
+
sessionId: this.id,
|
|
198
|
+
projectRoot: this.projectRoot,
|
|
199
|
+
createdAt: new Date(this.createdAt).toISOString(),
|
|
200
|
+
timezone: this.timezone,
|
|
201
|
+
},
|
|
202
|
+
blocks,
|
|
203
|
+
};
|
|
194
204
|
}
|
|
195
205
|
/**
|
|
196
206
|
* 返回当前 session 是否正在执行。
|
|
197
207
|
*/
|
|
198
208
|
isExecuting() {
|
|
199
|
-
return this.
|
|
209
|
+
return this.executor.isExecuting();
|
|
200
210
|
}
|
|
201
211
|
/**
|
|
202
212
|
* 清理当前 session 的执行器缓存。
|
|
203
213
|
*/
|
|
204
214
|
clearExecutor() {
|
|
205
|
-
this.
|
|
215
|
+
this.executor.clearExecutor();
|
|
206
216
|
}
|
|
207
217
|
/**
|
|
208
218
|
* 执行一轮非流式请求。
|
|
@@ -213,7 +223,7 @@ export class SdkSession {
|
|
|
213
223
|
throw new Error("session.run requires a non-empty query");
|
|
214
224
|
}
|
|
215
225
|
await this.appendUserMessage({ text: query });
|
|
216
|
-
const result = await this.
|
|
226
|
+
const result = await this.executor.run({
|
|
217
227
|
query,
|
|
218
228
|
});
|
|
219
229
|
await this.persistAssistantResult(result.assistantMessage);
|
|
@@ -237,7 +247,7 @@ export class SdkSession {
|
|
|
237
247
|
await this.appendUserMessage({ text: query });
|
|
238
248
|
const runPromise = (async () => {
|
|
239
249
|
try {
|
|
240
|
-
const result = await this.
|
|
250
|
+
const result = await this.executor.run({
|
|
241
251
|
query,
|
|
242
252
|
onUiMessageChunkCallback: async (chunk) => {
|
|
243
253
|
pushUiMessageChunkAsSdkEvent({
|
|
@@ -279,15 +289,15 @@ export class SdkSession {
|
|
|
279
289
|
}
|
|
280
290
|
return messages.slice(0, targetIndex + 1);
|
|
281
291
|
})();
|
|
282
|
-
const forked = new
|
|
292
|
+
const forked = new Session({
|
|
283
293
|
agentId: this.agentId,
|
|
284
294
|
projectRoot: this.projectRoot,
|
|
285
295
|
sessionId: `fork-${Date.now()}-${nanoid(8)}`,
|
|
286
296
|
tools: this.tools,
|
|
287
297
|
logger: this.logger,
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
298
|
+
getInstructionSystemBlocks: this.getInstructionSystemBlocks,
|
|
299
|
+
getServiceSystemBlocks: this.getServiceSystemBlocks,
|
|
300
|
+
getPluginSystemBlocks: this.getPluginSystemBlocks,
|
|
291
301
|
});
|
|
292
302
|
await forked.initialize();
|
|
293
303
|
if (this.sessionConfig.model) {
|
|
@@ -305,7 +315,7 @@ export class SdkSession {
|
|
|
305
315
|
* 生成当前 session 的元数据快照。
|
|
306
316
|
*/
|
|
307
317
|
async toMetadata() {
|
|
308
|
-
const meta = await
|
|
318
|
+
const meta = await readSessionMetadata({
|
|
309
319
|
projectRoot: this.projectRoot,
|
|
310
320
|
agentId: this.agentId,
|
|
311
321
|
sessionId: this.id,
|
|
@@ -326,9 +336,9 @@ export class SdkSession {
|
|
|
326
336
|
getServicePort() {
|
|
327
337
|
if (this.servicePort)
|
|
328
338
|
return this.servicePort;
|
|
329
|
-
this.servicePort =
|
|
339
|
+
this.servicePort = createSessionServicePort({
|
|
330
340
|
sessionId: this.id,
|
|
331
|
-
|
|
341
|
+
executor: this.executor,
|
|
332
342
|
historyComposer: this.historyComposer,
|
|
333
343
|
touchMetadata: async () => {
|
|
334
344
|
await this.touchMetadata();
|
|
@@ -337,7 +347,7 @@ export class SdkSession {
|
|
|
337
347
|
return this.servicePort;
|
|
338
348
|
}
|
|
339
349
|
async touchMetadata() {
|
|
340
|
-
await
|
|
350
|
+
await touchSessionMetadata({
|
|
341
351
|
projectRoot: this.projectRoot,
|
|
342
352
|
agentId: this.agentId,
|
|
343
353
|
sessionId: this.id,
|
|
@@ -350,7 +360,7 @@ export class SdkSession {
|
|
|
350
360
|
agentId: this.agentId,
|
|
351
361
|
sessionId: this.id,
|
|
352
362
|
sessionConfig: this.sessionConfig,
|
|
353
|
-
|
|
363
|
+
executor: this.executor,
|
|
354
364
|
assistantMessage,
|
|
355
365
|
});
|
|
356
366
|
}
|