@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.
Files changed (131) hide show
  1. package/bin/index.d.ts +3 -3
  2. package/bin/index.d.ts.map +1 -1
  3. package/bin/index.js +2 -2
  4. package/bin/index.js.map +1 -1
  5. package/bin/runtime/AgentRuntime.d.ts +2 -2
  6. package/bin/runtime/AgentRuntime.d.ts.map +1 -1
  7. package/bin/runtime/AgentRuntime.js +7 -12
  8. package/bin/runtime/AgentRuntime.js.map +1 -1
  9. package/bin/runtime/AgentRuntimeTypes.d.ts +3 -3
  10. package/bin/runtime/AgentRuntimeTypes.d.ts.map +1 -1
  11. package/bin/sdk/Agent.d.ts +13 -8
  12. package/bin/sdk/Agent.d.ts.map +1 -1
  13. package/bin/sdk/Agent.js +62 -18
  14. package/bin/sdk/Agent.js.map +1 -1
  15. package/bin/sdk/AgentSdkTypes.d.ts +95 -0
  16. package/bin/sdk/AgentSdkTypes.d.ts.map +1 -1
  17. package/bin/sdk/RemoteAgent.d.ts +3 -3
  18. package/bin/sdk/RemoteAgent.d.ts.map +1 -1
  19. package/bin/sdk/RemoteAgent.js +5 -2
  20. package/bin/sdk/RemoteAgent.js.map +1 -1
  21. package/bin/sdk/Session.d.ts +21 -19
  22. package/bin/sdk/Session.d.ts.map +1 -1
  23. package/bin/sdk/Session.js +79 -69
  24. package/bin/sdk/Session.js.map +1 -1
  25. package/bin/sdk/SessionMetadata.d.ts +7 -3
  26. package/bin/sdk/SessionMetadata.d.ts.map +1 -1
  27. package/bin/sdk/SessionMetadata.js +21 -5
  28. package/bin/sdk/SessionMetadata.js.map +1 -1
  29. package/bin/sdk/SessionPersistence.d.ts +6 -6
  30. package/bin/sdk/SessionPersistence.d.ts.map +1 -1
  31. package/bin/sdk/SessionPersistence.js +7 -7
  32. package/bin/sdk/SessionPersistence.js.map +1 -1
  33. package/bin/sdk/SessionServicePort.d.ts +5 -5
  34. package/bin/sdk/SessionServicePort.d.ts.map +1 -1
  35. package/bin/sdk/SessionServicePort.js +9 -9
  36. package/bin/sdk/SessionServicePort.js.map +1 -1
  37. package/bin/sdk/SessionSystemBuilder.d.ts +106 -0
  38. package/bin/sdk/SessionSystemBuilder.d.ts.map +1 -0
  39. package/bin/sdk/SessionSystemBuilder.js +150 -0
  40. package/bin/sdk/SessionSystemBuilder.js.map +1 -0
  41. package/bin/service/builtins/chat/runtime/ChatSession.d.ts +27 -8
  42. package/bin/service/builtins/chat/runtime/ChatSession.d.ts.map +1 -1
  43. package/bin/service/builtins/chat/runtime/ChatSession.js +9 -4
  44. package/bin/service/builtins/chat/runtime/ChatSession.js.map +1 -1
  45. package/bin/service/builtins/task/runtime/Runner.d.ts +1 -1
  46. package/bin/service/builtins/task/runtime/Runner.js +1 -1
  47. package/bin/service/builtins/task/runtime/TaskRunnerSession.d.ts +2 -2
  48. package/bin/service/builtins/task/runtime/TaskRunnerSession.js +4 -4
  49. package/bin/service/builtins/task/runtime/TaskRunnerSession.js.map +1 -1
  50. package/bin/service/builtins/task/runtime/TaskRunnerTypes.d.ts +1 -1
  51. package/bin/session/{Session.d.ts → Executor.d.ts} +54 -17
  52. package/bin/session/Executor.d.ts.map +1 -0
  53. package/bin/session/{Session.js → Executor.js} +60 -23
  54. package/bin/session/Executor.js.map +1 -0
  55. package/bin/session/composer/SessionComposer.d.ts +1 -1
  56. package/bin/session/composer/SessionComposer.js +1 -1
  57. package/bin/session/composer/compaction/SessionCompactionComposer.d.ts +2 -2
  58. package/bin/session/composer/execution/LocalSessionExecutionComposer.d.ts +1 -1
  59. package/bin/session/composer/execution/LocalSessionExecutionComposer.js +1 -1
  60. package/bin/session/composer/execution/SessionExecutionComposer.d.ts +1 -1
  61. package/bin/session/composer/history/SessionHistoryComposer.d.ts +1 -1
  62. package/bin/session/composer/system/SessionSystemComposer.d.ts +1 -1
  63. package/bin/session/composer/system/SessionSystemComposer.js +1 -1
  64. package/bin/session/executors/local/{LocalSessionCore.d.ts → Runner.d.ts} +10 -10
  65. package/bin/session/executors/local/Runner.d.ts.map +1 -0
  66. package/bin/session/executors/local/{LocalSessionCore.js → Runner.js} +11 -11
  67. package/bin/session/executors/local/Runner.js.map +1 -0
  68. package/bin/session/executors/local/SessionExecutionError.d.ts +1 -1
  69. package/bin/session/executors/local/SessionExecutionError.js +1 -1
  70. package/bin/session/executors/local/SessionLoopDecision.d.ts +3 -3
  71. package/bin/session/executors/local/SessionLoopDecision.js +3 -3
  72. package/bin/session/executors/local/SessionModelMessageState.d.ts +2 -2
  73. package/bin/session/executors/local/SessionModelMessageState.js +2 -2
  74. package/bin/session/executors/local/SessionSignals.d.ts +3 -3
  75. package/bin/session/executors/local/SessionSignals.js +3 -3
  76. package/bin/session/executors/local/SessionToolLoopRunner.d.ts +1 -1
  77. package/bin/session/executors/local/SessionToolLoopRunner.js +2 -2
  78. package/bin/session/executors/local/SessionToolLoopRunner.js.map +1 -1
  79. package/bin/session/types/SessionHistoryMeta.d.ts +2 -0
  80. package/bin/session/types/SessionHistoryMeta.d.ts.map +1 -1
  81. package/bin/session/types/SessionLoop.d.ts +1 -1
  82. package/bin/session/types/SessionLoop.js +1 -1
  83. package/bin/session/types/SessionRun.d.ts +2 -2
  84. package/bin/session/types/SessionRun.js +1 -1
  85. package/package.json +1 -1
  86. package/src/index.ts +6 -2
  87. package/src/runtime/AgentRuntime.ts +7 -17
  88. package/src/runtime/AgentRuntimeTypes.ts +3 -3
  89. package/src/sdk/Agent.ts +75 -23
  90. package/src/sdk/AgentSdkTypes.ts +113 -0
  91. package/src/sdk/RemoteAgent.ts +10 -4
  92. package/src/sdk/Session.ts +100 -85
  93. package/src/sdk/SessionMetadata.ts +23 -5
  94. package/src/sdk/SessionPersistence.ts +13 -13
  95. package/src/sdk/SessionServicePort.ts +13 -13
  96. package/src/sdk/SessionSystemBuilder.ts +261 -0
  97. package/src/service/builtins/chat/runtime/ChatSession.ts +37 -13
  98. package/src/service/builtins/task/runtime/Runner.ts +1 -1
  99. package/src/service/builtins/task/runtime/TaskRunnerSession.ts +4 -4
  100. package/src/service/builtins/task/runtime/TaskRunnerTypes.ts +1 -1
  101. package/src/session/{Session.ts → Executor.ts} +96 -26
  102. package/src/session/composer/SessionComposer.ts +1 -1
  103. package/src/session/composer/compaction/SessionCompactionComposer.ts +2 -2
  104. package/src/session/composer/execution/LocalSessionExecutionComposer.ts +1 -1
  105. package/src/session/composer/execution/SessionExecutionComposer.ts +1 -1
  106. package/src/session/composer/history/SessionHistoryComposer.ts +1 -1
  107. package/src/session/composer/system/SessionSystemComposer.ts +1 -1
  108. package/src/session/executors/local/{LocalSessionCore.ts → Runner.ts} +13 -13
  109. package/src/session/executors/local/SessionExecutionError.ts +1 -1
  110. package/src/session/executors/local/SessionLoopDecision.ts +3 -3
  111. package/src/session/executors/local/SessionModelMessageState.ts +2 -2
  112. package/src/session/executors/local/SessionSignals.ts +3 -3
  113. package/src/session/executors/local/SessionToolLoopRunner.ts +2 -2
  114. package/src/session/types/SessionHistoryMeta.ts +2 -0
  115. package/src/session/types/SessionLoop.ts +1 -1
  116. package/src/session/types/SessionRun.ts +2 -2
  117. package/tsconfig.tsbuildinfo +1 -1
  118. package/bin/sdk/SdkSessionSystemComposer.d.ts +0 -73
  119. package/bin/sdk/SdkSessionSystemComposer.d.ts.map +0 -1
  120. package/bin/sdk/SdkSessionSystemComposer.js +0 -96
  121. package/bin/sdk/SdkSessionSystemComposer.js.map +0 -1
  122. package/bin/session/Session.d.ts.map +0 -1
  123. package/bin/session/Session.js.map +0 -1
  124. package/bin/session/executors/local/LocalSessionCore.d.ts.map +0 -1
  125. package/bin/session/executors/local/LocalSessionCore.js.map +0 -1
  126. package/bin/session/executors/local/LocalSessionExecutor.d.ts +0 -61
  127. package/bin/session/executors/local/LocalSessionExecutor.d.ts.map +0 -1
  128. package/bin/session/executors/local/LocalSessionExecutor.js +0 -36
  129. package/bin/session/executors/local/LocalSessionExecutor.js.map +0 -1
  130. package/src/sdk/SdkSessionSystemComposer.ts +0 -173
  131. 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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"}
@@ -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<string[]>;
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,MAAM,EAAE,CAAC;IAejC;;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"}
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"}
@@ -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 || !payload.success || !Array.isArray(payload.system)) {
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":"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"}
1
+ {"version":3,"file":"RemoteAgent.js","sourceRoot":"","sources":["../../src/sdk/RemoteAgent.ts"],"names":[],"mappings":"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"}
@@ -4,13 +4,13 @@
4
4
  * 关键点(中文)
5
5
  * - 面向 `new Agent(...)` 的本地会话使用场景。
6
6
  * - 统一收口消息落盘、默认模型配置、run/stream/fork 等高层 API。
7
- * - 内部继续复用现有 `Session` / `JsonlSessionHistoryComposer` / `LocalSessionExecutor`。
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 SdkSessionOptions = {
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
- * 读取静态 system 文本集合。
38
+ * 读取当前 SDK 调用方传入的 instruction system blocks。
39
39
  */
40
- getStaticSystemPrompts: () => string[];
40
+ getInstructionSystemBlocks: () => AgentSessionSystemBlock[];
41
41
  /**
42
- * 读取当前 agent 显式注入 service 的 system 文本集合。
42
+ * 读取当前 agent 显式注入 service 的 system blocks。
43
43
  */
44
- getServiceSystemPrompts: () => Promise<string[]>;
44
+ getServiceSystemBlocks: () => Promise<AgentSessionSystemBlock[]>;
45
45
  /**
46
- * 读取当前 agent 显式注册 plugin 的 system 文本集合。
46
+ * 读取当前 agent 显式注册 plugin 的 system blocks。
47
47
  */
48
- getPluginSystemPrompts: () => Promise<string[]>;
48
+ getPluginSystemBlocks: () => Promise<AgentSessionSystemBlock[]>;
49
49
  };
50
50
  /**
51
51
  * SDK 本地 Session。
52
52
  */
53
- export declare class SdkSession {
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 getStaticSystemPrompts;
60
- private readonly getServiceSystemPrompts;
61
- private readonly getPluginSystemPrompts;
59
+ private readonly getInstructionSystemBlocks;
60
+ private readonly getServiceSystemBlocks;
61
+ private readonly getPluginSystemBlocks;
62
62
  private readonly historyComposer;
63
- private readonly coreSession;
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: SdkSessionOptions);
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
- * - 包含静态 system、显式注入 service system、显式注册 plugin system 与 runtime clock。
108
- * - 这里只返回文本数组,不把 system prompt 写入会话历史。
109
+ * - 包含 instruction/core、显式注入 service system、显式注册 plugin system 与 session 上下文。
110
+ * - 返回结构化快照,不把 system prompt 写入会话历史。
109
111
  */
110
- system(): Promise<string[]>;
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<SdkSession>;
132
+ fork(input?: AgentSessionForkInput["messageId"]): Promise<Session>;
131
133
  /**
132
134
  * 生成当前 session 的元数据快照。
133
135
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/sdk/Session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../src/sdk/Session.ts"],"names":[],"mappings":"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"}
@@ -4,37 +4,36 @@
4
4
  * 关键点(中文)
5
5
  * - 面向 `new Agent(...)` 的本地会话使用场景。
6
6
  * - 统一收口消息落盘、默认模型配置、run/stream/fork 等高层 API。
7
- * - 内部继续复用现有 `Session` / `JsonlSessionHistoryComposer` / `LocalSessionExecutor`。
7
+ * - 内部继续复用 `Executor` / `JsonlSessionHistoryComposer` / `Runner`。
8
8
  */
9
9
  import { nanoid } from "nanoid";
10
- import { Session as CoreSession } from "../session/Session.js";
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 { SdkSessionSystemComposer } from "../sdk/SdkSessionSystemComposer.js";
16
- import { resolveSdkSessionSystemMessages } from "../sdk/SdkSessionSystemComposer.js";
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, touchSdkSessionMetadata, } from "../sdk/SessionPersistence.js";
22
- import { createSdkSessionServicePort } from "../sdk/SessionServicePort.js";
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 SdkSession {
23
+ export class Session {
27
24
  id;
28
25
  agentId;
29
26
  projectRoot;
30
27
  tools;
31
28
  logger;
32
- getStaticSystemPrompts;
33
- getServiceSystemPrompts;
34
- getPluginSystemPrompts;
29
+ getInstructionSystemBlocks;
30
+ getServiceSystemBlocks;
31
+ getPluginSystemBlocks;
35
32
  historyComposer;
36
- coreSession;
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.getStaticSystemPrompts = options.getStaticSystemPrompts;
47
- this.getServiceSystemPrompts = options.getServiceSystemPrompts;
48
- this.getPluginSystemPrompts = options.getPluginSystemPrompts;
45
+ this.getInstructionSystemBlocks = options.getInstructionSystemBlocks;
46
+ this.getServiceSystemBlocks = options.getServiceSystemBlocks;
47
+ this.getPluginSystemBlocks = options.getPluginSystemBlocks;
49
48
  if (!this.id) {
50
- throw new Error("SdkSession requires a non-empty sessionId");
49
+ throw new Error("Session requires a non-empty sessionId");
51
50
  }
52
51
  if (!this.agentId) {
53
- throw new Error("SdkSession requires a non-empty agentId");
52
+ throw new Error("Session requires a non-empty agentId");
54
53
  }
55
54
  if (!this.projectRoot) {
56
- throw new Error("SdkSession requires a non-empty projectRoot");
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.coreSession = new CoreSession({
70
+ this.executor = new Executor({
72
71
  sessionId: this.id,
73
72
  historyComposer: this.historyComposer,
74
- createExecutor: (historyComposer) => {
75
- const model = this.sessionConfig.model;
76
- if (!model) {
77
- throw new Error(`Session "${this.id}" has no model configured. Call session.set({ model }) first.`);
78
- }
79
- return new LocalSessionExecutor({
80
- model,
81
- logger: this.logger,
82
- historyComposer,
83
- compactionComposer: new JsonlSessionCompactionComposer(),
84
- systemComposer: new SdkSessionSystemComposer({
85
- projectRoot: this.projectRoot,
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 readSdkSessionMetadata({
95
+ const metadata = await readSessionMetadata({
104
96
  projectRoot: this.projectRoot,
105
97
  agentId: this.agentId,
106
98
  sessionId: this.id,
107
99
  });
108
- await writeSdkSessionMetadata({
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: typeof metadata.createdAt === "number" ? metadata.createdAt : Date.now(),
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.coreSession.clearExecutor();
141
+ this.executor.clearExecutor();
143
142
  }
144
- await patchSdkSessionModelLabel({
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.coreSession.appendUserMessage({
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.coreSession.appendAssistantMessage({
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
- * - 包含静态 system、显式注入 service system、显式注册 plugin system 与 runtime clock。
181
- * - 这里只返回文本数组,不把 system prompt 写入会话历史。
179
+ * - 包含 instruction/core、显式注入 service system、显式注册 plugin system 与 session 上下文。
180
+ * - 返回结构化快照,不把 system prompt 写入会话历史。
182
181
  */
183
182
  async system() {
184
- const messages = await resolveSdkSessionSystemMessages({
183
+ const blocks = await buildSessionSystemBlocks({
184
+ agentId: this.agentId,
185
185
  projectRoot: this.projectRoot,
186
186
  sessionId: this.id,
187
- getStaticSystemPrompts: this.getStaticSystemPrompts,
188
- getServiceSystemPrompts: this.getServiceSystemPrompts,
189
- getPluginSystemPrompts: this.getPluginSystemPrompts,
187
+ createdAt: this.createdAt,
188
+ timezone: this.timezone,
189
+ getInstructionSystemBlocks: this.getInstructionSystemBlocks,
190
+ getServiceSystemBlocks: this.getServiceSystemBlocks,
191
+ getPluginSystemBlocks: this.getPluginSystemBlocks,
190
192
  });
191
- return messages
192
- .map((message) => String(message.content || ""))
193
- .filter((content) => content.trim().length > 0);
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.coreSession.isExecuting();
209
+ return this.executor.isExecuting();
200
210
  }
201
211
  /**
202
212
  * 清理当前 session 的执行器缓存。
203
213
  */
204
214
  clearExecutor() {
205
- this.coreSession.clearExecutor();
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.coreSession.run({
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.coreSession.run({
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 SdkSession({
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
- getStaticSystemPrompts: this.getStaticSystemPrompts,
289
- getServiceSystemPrompts: this.getServiceSystemPrompts,
290
- getPluginSystemPrompts: this.getPluginSystemPrompts,
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 readSdkSessionMetadata({
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 = createSdkSessionServicePort({
339
+ this.servicePort = createSessionServicePort({
330
340
  sessionId: this.id,
331
- coreSession: this.coreSession,
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 touchSdkSessionMetadata({
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
- coreSession: this.coreSession,
363
+ executor: this.executor,
354
364
  assistantMessage,
355
365
  });
356
366
  }