@downcity/agent 1.1.12 → 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 (117) hide show
  1. package/bin/index.d.ts +2 -2
  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 +2 -2
  12. package/bin/sdk/Agent.d.ts.map +1 -1
  13. package/bin/sdk/Agent.js +2 -2
  14. package/bin/sdk/Agent.js.map +1 -1
  15. package/bin/sdk/Session.d.ts +6 -6
  16. package/bin/sdk/Session.d.ts.map +1 -1
  17. package/bin/sdk/Session.js +41 -53
  18. package/bin/sdk/Session.js.map +1 -1
  19. package/bin/sdk/SessionMetadata.d.ts +3 -3
  20. package/bin/sdk/SessionMetadata.d.ts.map +1 -1
  21. package/bin/sdk/SessionMetadata.js +5 -5
  22. package/bin/sdk/SessionMetadata.js.map +1 -1
  23. package/bin/sdk/SessionPersistence.d.ts +6 -6
  24. package/bin/sdk/SessionPersistence.d.ts.map +1 -1
  25. package/bin/sdk/SessionPersistence.js +7 -7
  26. package/bin/sdk/SessionPersistence.js.map +1 -1
  27. package/bin/sdk/SessionServicePort.d.ts +5 -5
  28. package/bin/sdk/SessionServicePort.d.ts.map +1 -1
  29. package/bin/sdk/SessionServicePort.js +9 -9
  30. package/bin/sdk/SessionServicePort.js.map +1 -1
  31. package/bin/sdk/{SdkSessionSystemComposer.d.ts → SessionSystemBuilder.d.ts} +7 -7
  32. package/bin/sdk/SessionSystemBuilder.d.ts.map +1 -0
  33. package/bin/sdk/{SdkSessionSystemComposer.js → SessionSystemBuilder.js} +14 -14
  34. package/bin/sdk/SessionSystemBuilder.js.map +1 -0
  35. package/bin/service/builtins/chat/runtime/ChatSession.d.ts +27 -8
  36. package/bin/service/builtins/chat/runtime/ChatSession.d.ts.map +1 -1
  37. package/bin/service/builtins/chat/runtime/ChatSession.js +9 -4
  38. package/bin/service/builtins/chat/runtime/ChatSession.js.map +1 -1
  39. package/bin/service/builtins/task/runtime/Runner.d.ts +1 -1
  40. package/bin/service/builtins/task/runtime/Runner.js +1 -1
  41. package/bin/service/builtins/task/runtime/TaskRunnerSession.d.ts +2 -2
  42. package/bin/service/builtins/task/runtime/TaskRunnerSession.js +4 -4
  43. package/bin/service/builtins/task/runtime/TaskRunnerSession.js.map +1 -1
  44. package/bin/service/builtins/task/runtime/TaskRunnerTypes.d.ts +1 -1
  45. package/bin/session/{Session.d.ts → Executor.d.ts} +54 -17
  46. package/bin/session/Executor.d.ts.map +1 -0
  47. package/bin/session/{Session.js → Executor.js} +60 -23
  48. package/bin/session/Executor.js.map +1 -0
  49. package/bin/session/composer/SessionComposer.d.ts +1 -1
  50. package/bin/session/composer/SessionComposer.js +1 -1
  51. package/bin/session/composer/compaction/SessionCompactionComposer.d.ts +2 -2
  52. package/bin/session/composer/execution/LocalSessionExecutionComposer.d.ts +1 -1
  53. package/bin/session/composer/execution/LocalSessionExecutionComposer.js +1 -1
  54. package/bin/session/composer/execution/SessionExecutionComposer.d.ts +1 -1
  55. package/bin/session/composer/history/SessionHistoryComposer.d.ts +1 -1
  56. package/bin/session/composer/system/SessionSystemComposer.d.ts +1 -1
  57. package/bin/session/composer/system/SessionSystemComposer.js +1 -1
  58. package/bin/session/executors/local/{LocalSessionCore.d.ts → Runner.d.ts} +10 -10
  59. package/bin/session/executors/local/Runner.d.ts.map +1 -0
  60. package/bin/session/executors/local/{LocalSessionCore.js → Runner.js} +11 -11
  61. package/bin/session/executors/local/Runner.js.map +1 -0
  62. package/bin/session/executors/local/SessionExecutionError.d.ts +1 -1
  63. package/bin/session/executors/local/SessionExecutionError.js +1 -1
  64. package/bin/session/executors/local/SessionLoopDecision.d.ts +3 -3
  65. package/bin/session/executors/local/SessionLoopDecision.js +3 -3
  66. package/bin/session/executors/local/SessionModelMessageState.d.ts +2 -2
  67. package/bin/session/executors/local/SessionModelMessageState.js +2 -2
  68. package/bin/session/executors/local/SessionSignals.d.ts +3 -3
  69. package/bin/session/executors/local/SessionSignals.js +3 -3
  70. package/bin/session/executors/local/SessionToolLoopRunner.d.ts +1 -1
  71. package/bin/session/executors/local/SessionToolLoopRunner.js +2 -2
  72. package/bin/session/executors/local/SessionToolLoopRunner.js.map +1 -1
  73. package/bin/session/types/SessionLoop.d.ts +1 -1
  74. package/bin/session/types/SessionLoop.js +1 -1
  75. package/bin/session/types/SessionRun.d.ts +2 -2
  76. package/bin/session/types/SessionRun.js +1 -1
  77. package/package.json +1 -1
  78. package/src/index.ts +2 -2
  79. package/src/runtime/AgentRuntime.ts +7 -17
  80. package/src/runtime/AgentRuntimeTypes.ts +3 -3
  81. package/src/sdk/Agent.ts +5 -5
  82. package/src/sdk/Session.ts +52 -66
  83. package/src/sdk/SessionMetadata.ts +5 -5
  84. package/src/sdk/SessionPersistence.ts +13 -13
  85. package/src/sdk/SessionServicePort.ts +13 -13
  86. package/src/sdk/{SdkSessionSystemComposer.ts → SessionSystemBuilder.ts} +24 -24
  87. package/src/service/builtins/chat/runtime/ChatSession.ts +37 -13
  88. package/src/service/builtins/task/runtime/Runner.ts +1 -1
  89. package/src/service/builtins/task/runtime/TaskRunnerSession.ts +4 -4
  90. package/src/service/builtins/task/runtime/TaskRunnerTypes.ts +1 -1
  91. package/src/session/{Session.ts → Executor.ts} +96 -26
  92. package/src/session/composer/SessionComposer.ts +1 -1
  93. package/src/session/composer/compaction/SessionCompactionComposer.ts +2 -2
  94. package/src/session/composer/execution/LocalSessionExecutionComposer.ts +1 -1
  95. package/src/session/composer/execution/SessionExecutionComposer.ts +1 -1
  96. package/src/session/composer/history/SessionHistoryComposer.ts +1 -1
  97. package/src/session/composer/system/SessionSystemComposer.ts +1 -1
  98. package/src/session/executors/local/{LocalSessionCore.ts → Runner.ts} +13 -13
  99. package/src/session/executors/local/SessionExecutionError.ts +1 -1
  100. package/src/session/executors/local/SessionLoopDecision.ts +3 -3
  101. package/src/session/executors/local/SessionModelMessageState.ts +2 -2
  102. package/src/session/executors/local/SessionSignals.ts +3 -3
  103. package/src/session/executors/local/SessionToolLoopRunner.ts +2 -2
  104. package/src/session/types/SessionLoop.ts +1 -1
  105. package/src/session/types/SessionRun.ts +2 -2
  106. package/tsconfig.tsbuildinfo +1 -1
  107. package/bin/sdk/SdkSessionSystemComposer.d.ts.map +0 -1
  108. package/bin/sdk/SdkSessionSystemComposer.js.map +0 -1
  109. package/bin/session/Session.d.ts.map +0 -1
  110. package/bin/session/Session.js.map +0 -1
  111. package/bin/session/executors/local/LocalSessionCore.d.ts.map +0 -1
  112. package/bin/session/executors/local/LocalSessionCore.js.map +0 -1
  113. package/bin/session/executors/local/LocalSessionExecutor.d.ts +0 -61
  114. package/bin/session/executors/local/LocalSessionExecutor.d.ts.map +0 -1
  115. package/bin/session/executors/local/LocalSessionExecutor.js +0 -36
  116. package/bin/session/executors/local/LocalSessionExecutor.js.map +0 -1
  117. package/src/session/executors/local/LocalSessionExecutor.ts +0 -89
@@ -60,26 +60,26 @@ function createSessionSystemBlock(session) {
60
60
  /**
61
61
  * 解析 SDK session 当前生效的 system blocks。
62
62
  */
63
- export async function resolveSdkSessionSystemBlocks(params) {
63
+ export async function buildSessionSystemBlocks(params) {
64
64
  const agentId = String(params.agentId || "").trim();
65
65
  const projectRoot = String(params.projectRoot || "").trim();
66
66
  const sessionId = String(params.sessionId || "").trim();
67
67
  const createdAt = Number(params.createdAt || 0);
68
68
  const timezone = String(params.timezone || "").trim();
69
69
  if (!agentId) {
70
- throw new Error("resolveSdkSessionSystemBlocks requires a non-empty agentId");
70
+ throw new Error("buildSessionSystemBlocks requires a non-empty agentId");
71
71
  }
72
72
  if (!projectRoot) {
73
- throw new Error("resolveSdkSessionSystemBlocks requires a non-empty projectRoot");
73
+ throw new Error("buildSessionSystemBlocks requires a non-empty projectRoot");
74
74
  }
75
75
  if (!sessionId) {
76
- throw new Error("resolveSdkSessionSystemBlocks requires a non-empty sessionId");
76
+ throw new Error("buildSessionSystemBlocks requires a non-empty sessionId");
77
77
  }
78
78
  if (!Number.isFinite(createdAt) || createdAt <= 0) {
79
- throw new Error("resolveSdkSessionSystemBlocks requires a valid createdAt");
79
+ throw new Error("buildSessionSystemBlocks requires a valid createdAt");
80
80
  }
81
81
  if (!timezone) {
82
- throw new Error("resolveSdkSessionSystemBlocks requires a non-empty timezone");
82
+ throw new Error("buildSessionSystemBlocks requires a non-empty timezone");
83
83
  }
84
84
  return [
85
85
  ...normalizeSystemBlocks(params.getInstructionSystemBlocks()),
@@ -92,8 +92,8 @@ export async function resolveSdkSessionSystemBlocks(params) {
92
92
  /**
93
93
  * 解析 SDK session 当前生效的 system messages。
94
94
  */
95
- export async function resolveSdkSessionSystemMessages(params) {
96
- const blocks = await resolveSdkSessionSystemBlocks(params);
95
+ export async function buildSessionSystemMessages(params) {
96
+ const blocks = await buildSessionSystemBlocks(params);
97
97
  return blocks.map((block) => ({
98
98
  role: "system",
99
99
  content: block.content,
@@ -102,7 +102,7 @@ export async function resolveSdkSessionSystemMessages(params) {
102
102
  /**
103
103
  * SDK Session system composer 实现。
104
104
  */
105
- export class SdkSessionSystemComposer extends SessionSystemComposer {
105
+ export class SessionSystemBuilder extends SessionSystemComposer {
106
106
  name = "sdk_prompt_system";
107
107
  agentId;
108
108
  projectRoot;
@@ -121,10 +121,10 @@ export class SdkSessionSystemComposer extends SessionSystemComposer {
121
121
  this.getServiceSystemBlocks = options.getServiceSystemBlocks;
122
122
  this.getPluginSystemBlocks = options.getPluginSystemBlocks;
123
123
  if (!this.agentId) {
124
- throw new Error("SdkSessionSystemComposer requires a non-empty agentId");
124
+ throw new Error("SessionSystemBuilder requires a non-empty agentId");
125
125
  }
126
126
  if (!this.projectRoot) {
127
- throw new Error("SdkSessionSystemComposer requires a non-empty projectRoot");
127
+ throw new Error("SessionSystemBuilder requires a non-empty projectRoot");
128
128
  }
129
129
  }
130
130
  /**
@@ -133,9 +133,9 @@ export class SdkSessionSystemComposer extends SessionSystemComposer {
133
133
  async resolve() {
134
134
  const sessionId = String(getSessionRunScope()?.sessionId || "").trim();
135
135
  if (!sessionId) {
136
- throw new Error("SdkSessionSystemComposer.resolve requires a non-empty sessionId");
136
+ throw new Error("SessionSystemBuilder.resolve requires a non-empty sessionId");
137
137
  }
138
- return await resolveSdkSessionSystemMessages({
138
+ return await buildSessionSystemMessages({
139
139
  agentId: this.agentId,
140
140
  projectRoot: this.projectRoot,
141
141
  sessionId,
@@ -147,4 +147,4 @@ export class SdkSessionSystemComposer extends SessionSystemComposer {
147
147
  });
148
148
  }
149
149
  }
150
- //# sourceMappingURL=SdkSessionSystemComposer.js.map
150
+ //# sourceMappingURL=SessionSystemBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionSystemBuilder.js","sourceRoot":"","sources":["../../src/sdk/SessionSystemBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  /**
2
- * ChatSession:chat 专用 Session 实现。
2
+ * ChatSession:chat 专用 Executor 实现。
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - ChatSession 在实例化时持有自己的 execution composer 实例。
6
6
  * - chat 当前 turn 的 step 合并/step 回发状态都绑定在 Session 自身,不再新增 `runChat` 一层入口。
7
7
  * - 外层仍只调用标准 `run(...)`;chat 语义由 ChatSession 内部收敛。
8
8
  */
9
- import { Session } from "../../../../session/Session.js";
9
+ import type { LanguageModel, Tool } from "ai";
10
+ import { Executor } from "../../../../session/Executor.js";
10
11
  import type { SessionHistoryComposer } from "../../../../session/composer/history/SessionHistoryComposer.js";
12
+ import type { SessionCompactionComposer } from "../../../../session/composer/compaction/SessionCompactionComposer.js";
13
+ import type { SessionSystemComposer } from "../../../../session/composer/system/SessionSystemComposer.js";
11
14
  import type { ChatSessionExecutionComposer } from "../../../../service/builtins/chat/runtime/ChatSessionExecutionComposer.js";
12
- import type { SessionExecutor } from "../../../../session/types/SessionExecutor.js";
15
+ import type { Logger } from "../../../../utils/logger/Logger.js";
13
16
  import type { SessionRunResult } from "../../../../session/types/SessionRun.js";
14
17
  import type { ChatSessionTurnState } from "../../../../service/builtins/chat/runtime/ChatSessionTypes.js";
15
18
  type ChatSessionOptions = {
@@ -22,13 +25,29 @@ type ChatSessionOptions = {
22
25
  */
23
26
  historyComposer: SessionHistoryComposer;
24
27
  /**
25
- * 当前 session 绑定的 chat execution composer。
28
+ * 读取当前 session 使用的模型实例。
26
29
  */
27
- executionComposer: ChatSessionExecutionComposer;
30
+ getModel: () => LanguageModel | undefined;
31
+ /**
32
+ * 统一日志器。
33
+ */
34
+ logger: Logger;
35
+ /**
36
+ * 当前 session 对应的 compaction Composer。
37
+ */
38
+ compactionComposer: SessionCompactionComposer;
28
39
  /**
29
- * 创建当前 session 的执行器。
40
+ * 当前 session 对应的 system Composer。
30
41
  */
31
- createExecutor: (historyComposer: SessionHistoryComposer, executionComposer: ChatSessionExecutionComposer) => SessionExecutor;
42
+ systemComposer: SessionSystemComposer;
43
+ /**
44
+ * 获取当前可用工具集合。
45
+ */
46
+ getTools: () => Record<string, Tool>;
47
+ /**
48
+ * 当前 session 绑定的 chat execution composer。
49
+ */
50
+ executionComposer: ChatSessionExecutionComposer;
32
51
  /**
33
52
  * session 更新后的异步回调。
34
53
  */
@@ -37,7 +56,7 @@ type ChatSessionOptions = {
37
56
  /**
38
57
  * Chat 专用 Session。
39
58
  */
40
- export declare class ChatSession extends Session {
59
+ export declare class ChatSession extends Executor {
41
60
  /**
42
61
  * ChatSession 持有的 composer 实例。
43
62
  */
@@ -1 +1 @@
1
- {"version":3,"file":"ChatSession.d.ts","sourceRoot":"","sources":["../../../../../src/service/builtins/chat/runtime/ChatSession.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAClG,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iEAAiE,CAAC;AACpH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAEhG,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,EAAE,sBAAsB,CAAC;IAExC;;OAEG;IACH,iBAAiB,EAAE,4BAA4B,CAAC;IAEhD;;OAEG;IACH,cAAc,EAAE,CACd,eAAe,EAAE,sBAAsB,EACvC,iBAAiB,EAAE,4BAA4B,KAC5C,eAAe,CAAC;IAErB;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAY,SAAQ,OAAO;IACtC;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;IAEzD,OAAO,CAAC,eAAe,CAAqC;gBAEhD,OAAO,EAAE,kBAAkB;IAcvC;;OAEG;IACH,YAAY,IAAI,oBAAoB,GAAG,IAAI;IAI3C;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAMnC;IAEF;;;;;;OAMG;IACY,GAAG,CAAC,MAAM,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QACxD,uBAAuB,CAAC,EAAE,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;KAC3E,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmB9B"}
1
+ {"version":3,"file":"ChatSession.d.ts","sourceRoot":"","sources":["../../../../../src/service/builtins/chat/runtime/ChatSession.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAClG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2DAA2D,CAAC;AAC3G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,iEAAiE,CAAC;AACpH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qDAAqD,CAAC;AAEhG,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,eAAe,EAAE,sBAAsB,CAAC;IAExC;;OAEG;IACH,QAAQ,EAAE,MAAM,aAAa,GAAG,SAAS,CAAC;IAE1C;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,kBAAkB,EAAE,yBAAyB,CAAC;IAE9C;;OAEG;IACH,cAAc,EAAE,qBAAqB,CAAC;IAEtC;;OAEG;IACH,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,iBAAiB,EAAE,4BAA4B,CAAC;IAEhD;;OAEG;IACH,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC;AAEF;;GAEG;AACH,qBAAa,WAAY,SAAQ,QAAQ;IACvC;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;IAEzD,OAAO,CAAC,eAAe,CAAqC;gBAEhD,OAAO,EAAE,kBAAkB;IAkBvC;;OAEG;IACH,YAAY,IAAI,oBAAoB,GAAG,IAAI;IAI3C;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAMnC;IAEF;;;;;;OAMG;IACY,GAAG,CAAC,MAAM,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QACxD,uBAAuB,CAAC,EAAE,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;KAC3E,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAmB9B"}
@@ -1,16 +1,16 @@
1
1
  /**
2
- * ChatSession:chat 专用 Session 实现。
2
+ * ChatSession:chat 专用 Executor 实现。
3
3
  *
4
4
  * 关键点(中文)
5
5
  * - ChatSession 在实例化时持有自己的 execution composer 实例。
6
6
  * - chat 当前 turn 的 step 合并/step 回发状态都绑定在 Session 自身,不再新增 `runChat` 一层入口。
7
7
  * - 外层仍只调用标准 `run(...)`;chat 语义由 ChatSession 内部收敛。
8
8
  */
9
- import { Session } from "../../../../session/Session.js";
9
+ import { Executor } from "../../../../session/Executor.js";
10
10
  /**
11
11
  * Chat 专用 Session。
12
12
  */
13
- export class ChatSession extends Session {
13
+ export class ChatSession extends Executor {
14
14
  /**
15
15
  * ChatSession 持有的 composer 实例。
16
16
  */
@@ -21,7 +21,12 @@ export class ChatSession extends Session {
21
21
  super({
22
22
  sessionId: options.sessionId,
23
23
  historyComposer: options.historyComposer,
24
- createExecutor: (historyComposer) => options.createExecutor(historyComposer, executionComposer),
24
+ getModel: options.getModel,
25
+ logger: options.logger,
26
+ compactionComposer: options.compactionComposer,
27
+ systemComposer: options.systemComposer,
28
+ getTools: options.getTools,
29
+ executionComposer,
25
30
  ...(options.runAfterSessionUpdated
26
31
  ? { runAfterSessionUpdated: options.runAfterSessionUpdated }
27
32
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"ChatSession.js","sourceRoot":"","sources":["../../../../../src/service/builtins/chat/runtime/ChatSession.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAsC9C;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO;IACtC;;OAEG;IACM,iBAAiB,CAA+B;IAEjD,eAAe,GAAgC,IAAI,CAAC;IAE5D,YAAY,OAA2B;QACrC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACpD,KAAK,CAAC;YACJ,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,cAAc,EAAE,CAAC,eAAe,EAAE,EAAE,CAClC,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;YAC5D,GAAG,CAAC,OAAO,CAAC,sBAAsB;gBAChC,CAAC,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,EAAE;gBAC5D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACc,oBAAoB,GAAiC,KAAK,EACzE,IAAI,EACW,EAAE;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,uBAAuB,CAAC;QAC/D,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,OAAO;QAC3C,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF;;;;;;OAMG;IACM,KAAK,CAAC,GAAG,CAAC,MAIlB;QACC,IAAI,CAAC,eAAe,GAAG;YACrB,GAAG,CAAC,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU;gBAC7C,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE;gBAC3C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,MAAM,CAAC,uBAAuB,KAAK,UAAU;gBACtD,CAAC,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,EAAE;gBAC7D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,uBAAuB,EAAE,IAAI,CAAC,oBAAoB;aACnD,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ChatSession.js","sourceRoot":"","sources":["../../../../../src/service/builtins/chat/runtime/ChatSession.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAyDhD;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACvC;;OAEG;IACM,iBAAiB,CAA+B;IAEjD,eAAe,GAAgC,IAAI,CAAC;IAE5D,YAAY,OAA2B;QACrC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACpD,KAAK,CAAC;YACJ,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,iBAAiB;YACjB,GAAG,CAAC,OAAO,CAAC,sBAAsB;gBAChC,CAAC,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,EAAE;gBAC5D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACc,oBAAoB,GAAiC,KAAK,EACzE,IAAI,EACW,EAAE;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,EAAE,uBAAuB,CAAC;QAC/D,IAAI,OAAO,QAAQ,KAAK,UAAU;YAAE,OAAO;QAC3C,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF;;;;;;OAMG;IACM,KAAK,CAAC,GAAG,CAAC,MAIlB;QACC,IAAI,CAAC,eAAe,GAAG;YACrB,GAAG,CAAC,OAAO,MAAM,CAAC,cAAc,KAAK,UAAU;gBAC7C,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE;gBAC3C,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,OAAO,MAAM,CAAC,uBAAuB,KAAK,UAAU;gBACtD,CAAC,CAAC,EAAE,uBAAuB,EAAE,MAAM,CAAC,uBAAuB,EAAE;gBAC7D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,CAAC;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,uBAAuB,EAAE,IAAI,CAAC,oBAAoB;aACnD,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;IACH,CAAC;CACF"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 职责(中文)
5
5
  * - 创建 run 目录(timestamp)。
6
- * - 以“干净历史”调用当前 runtime 的 LocalSessionCore(逻辑与正常 chat 一致)。
6
+ * - 以“干净历史”调用当前 runtime 的 Runner(逻辑与正常 chat 一致)。
7
7
  * - 协调 script / agent 两类执行主链。
8
8
  * - 把最终产物写入 run 目录的具体格式委托给 `TaskRunArtifacts.ts`。
9
9
  */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * 职责(中文)
5
5
  * - 创建 run 目录(timestamp)。
6
- * - 以“干净历史”调用当前 runtime 的 LocalSessionCore(逻辑与正常 chat 一致)。
6
+ * - 以“干净历史”调用当前 runtime 的 Runner(逻辑与正常 chat 一致)。
7
7
  * - 协调 script / agent 两类执行主链。
8
8
  * - 把最终产物写入 run 目录的具体格式委托给 `TaskRunArtifacts.ts`。
9
9
  */
@@ -2,7 +2,7 @@
2
2
  * TaskRunnerSession:task runner 的 session 装配模块。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 负责构建 task 专用 LocalSessionCore / JsonlSessionHistoryComposer 运行时。
5
+ * - 负责构建 task 专用 Runner / JsonlSessionHistoryComposer 运行时。
6
6
  * - 负责把每轮 user/assistant 消息写入 run 目录对应的 messages.jsonl。
7
7
  * - 这些能力与任务编排逻辑解耦后,Runner 主流程会更聚焦于状态流转。
8
8
  * - 当前只有 api 执行模式。
@@ -25,7 +25,7 @@ export declare function appendTaskRoundUserMessage(params: {
25
25
  * 构建 task 专用 Session 运行时(独立于普通 Session 实例缓存)。
26
26
  *
27
27
  * 关键点(中文)
28
- * - 使用 LocalSessionCore 执行,模型来自 context.session.model(agent 级模型)。
28
+ * - 使用 Runner 执行,模型来自 context.session.model(agent 级模型)。
29
29
  */
30
30
  export declare function createTaskSessionRuntimePort(params: {
31
31
  context: AgentContext;
@@ -2,13 +2,13 @@
2
2
  * TaskRunnerSession:task runner 的 session 装配模块。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 负责构建 task 专用 LocalSessionCore / JsonlSessionHistoryComposer 运行时。
5
+ * - 负责构建 task 专用 Runner / JsonlSessionHistoryComposer 运行时。
6
6
  * - 负责把每轮 user/assistant 消息写入 run 目录对应的 messages.jsonl。
7
7
  * - 这些能力与任务编排逻辑解耦后,Runner 主流程会更聚焦于状态流转。
8
8
  * - 当前只有 api 执行模式。
9
9
  */
10
10
  import path from "node:path";
11
- import { LocalSessionCore } from "../../../../session/executors/local/LocalSessionCore.js";
11
+ import { Runner } from "../../../../session/executors/local/Runner.js";
12
12
  import { drainDeferredPersistedUserMessages } from "../../../../session/SessionRunScope.js";
13
13
  import { JsonlSessionHistoryComposer } from "../../../../session/composer/history/jsonl/JsonlSessionHistoryComposer.js";
14
14
  import { JsonlSessionCompactionComposer } from "../../../../session/composer/compaction/jsonl/JsonlSessionCompactionComposer.js";
@@ -39,7 +39,7 @@ export async function appendTaskRoundUserMessage(params) {
39
39
  * 构建 task 专用 Session 运行时(独立于普通 Session 实例缓存)。
40
40
  *
41
41
  * 关键点(中文)
42
- * - 使用 LocalSessionCore 执行,模型来自 context.session.model(agent 级模型)。
42
+ * - 使用 Runner 执行,模型来自 context.session.model(agent 级模型)。
43
43
  */
44
44
  export function createTaskSessionRuntimePort(params) {
45
45
  const { context, runDirAbs, runSessionId, userSimulatorSessionId } = params;
@@ -108,7 +108,7 @@ export function createTaskSessionRuntimePort(params) {
108
108
  sessionId: key,
109
109
  getTools: () => shellTools,
110
110
  });
111
- const created = new LocalSessionCore({
111
+ const created = new Runner({
112
112
  model: context.session.model,
113
113
  logger: context.logger,
114
114
  historyComposer,
@@ -1 +1 @@
1
- {"version":3,"file":"TaskRunnerSession.js","sourceRoot":"","sources":["../../../../../src/service/builtins/task/runtime/TaskRunnerSession.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskRunnerSession.js","sourceRoot":"","sources":["../../../../../src/service/builtins/task/runtime/TaskRunnerSession.ts"],"names":[],"mappings":"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"}
@@ -157,7 +157,7 @@ export type ScriptExecutionResult = {
157
157
  * task 运行专用的 session runtime 端口。
158
158
  *
159
159
  * 关键点(中文)
160
- * - task runner 不直接依赖具体 `LocalSessionExecutor` 实现。
160
+ * - task runner 不直接依赖具体 SDK `Session` 实现。
161
161
  * - 这里暴露的是 task 场景最小可用端口:执行器 + history Composer。
162
162
  */
163
163
  export type TaskSessionRuntimePort = {
@@ -1,18 +1,23 @@
1
1
  /**
2
- * Session:单个会话实例。
2
+ * Executor:单个 session 的执行编排器。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 一个 Session 只对应一个固定的 `sessionId`。
6
- * - 对外直接暴露 `run / appendUserMessage / appendAssistantMessage / getExecutor / getHistoryComposer`。
7
- * - 运行态(如 executing)直接收在实例内部,不再拆 `Facade / Runner / ExecutionRegistry`。
5
+ * - SDK 对外对象叫 `Session`,这里是内部执行层。
6
+ * - 一个 Executor 只对应一个固定的 `sessionId`。
7
+ * - 负责 history 写入、run scope、executing 状态与本地 Runner 的懒创建。
8
8
  */
9
+ import type { LanguageModel, Tool } from "ai";
9
10
  import type { SessionHistoryComposer } from "./composer/history/SessionHistoryComposer.js";
10
11
  import type { SessionRunScope } from "./SessionRunScope.js";
12
+ import type { SessionCompactionComposer } from "./composer/compaction/SessionCompactionComposer.js";
13
+ import type { SessionExecutionComposer } from "./composer/execution/SessionExecutionComposer.js";
14
+ import type { SessionSystemComposer } from "./composer/system/SessionSystemComposer.js";
15
+ import type { Logger } from "../utils/logger/Logger.js";
11
16
  import type { JsonObject } from "../types/common/Json.js";
12
17
  import type { SessionMessageV1 } from "../session/types/SessionMessages.js";
13
18
  import type { SessionExecutor } from "../session/types/SessionExecutor.js";
14
19
  import type { SessionRunResult } from "../session/types/SessionRun.js";
15
- type SessionOptions = {
20
+ type ExecutorOptions = {
16
21
  /**
17
22
  * 当前会话 ID。
18
23
  */
@@ -22,28 +27,53 @@ type SessionOptions = {
22
27
  */
23
28
  historyComposer: SessionHistoryComposer;
24
29
  /**
25
- * 创建当前 session 对应的执行器。
30
+ * 读取当前 session 使用的模型实例。
26
31
  */
27
- createExecutor: (historyComposer: SessionHistoryComposer) => SessionExecutor;
32
+ getModel: () => LanguageModel | undefined;
33
+ /**
34
+ * 统一日志器。
35
+ */
36
+ logger: Logger;
37
+ /**
38
+ * 当前 session 对应的 compaction Composer。
39
+ */
40
+ compactionComposer?: SessionCompactionComposer;
41
+ /**
42
+ * 当前 session 对应的 system Composer。
43
+ */
44
+ systemComposer: SessionSystemComposer;
45
+ /**
46
+ * 获取当前可用工具集合。
47
+ */
48
+ getTools: () => Record<string, Tool>;
49
+ /**
50
+ * 可选自定义 execution Composer。
51
+ */
52
+ executionComposer?: SessionExecutionComposer;
28
53
  /**
29
54
  * session 更新后的异步回调。
30
55
  */
31
56
  runAfterSessionUpdated?: (sessionId: string) => Promise<void>;
32
57
  };
33
58
  /**
34
- * Session 单实例实现。
59
+ * Executor 单实例实现。
35
60
  */
36
- export declare class Session {
61
+ export declare class Executor implements SessionExecutor {
37
62
  /**
38
63
  * 当前 session 标识。
39
64
  */
40
65
  readonly sessionId: string;
41
66
  private readonly historyComposer;
42
- private readonly createExecutor;
67
+ private readonly getModel;
68
+ private readonly logger;
69
+ private readonly compactionComposer;
70
+ private readonly systemComposer;
71
+ private readonly getTools;
72
+ private readonly runnerExecutionComposer?;
43
73
  private readonly historyWriter;
44
- private executor;
74
+ private runner;
45
75
  private executing;
46
- constructor(options: SessionOptions);
76
+ constructor(options: ExecutorOptions);
47
77
  /**
48
78
  * 返回当前 session 是否正在执行。
49
79
  */
@@ -53,15 +83,22 @@ export declare class Session {
53
83
  */
54
84
  getHistoryComposer(): SessionHistoryComposer;
55
85
  /**
56
- * 获取当前 session 的执行器。
86
+ * 获取当前 session 的执行端口。
87
+ *
88
+ * 关键点(中文)
89
+ * - 兼容 runtime/service 端口语义:Executor 自己就是执行端口。
57
90
  */
58
91
  getExecutor(): SessionExecutor;
59
92
  /**
60
- * 清理当前 session 的执行器缓存。
93
+ * 获取或创建当前本地 Runner。
94
+ */
95
+ private getRunner;
96
+ /**
97
+ * 清理当前 session 的 Runner 缓存。
61
98
  *
62
99
  * 关键点(中文)
63
- * - 这里只清 executor,不清 history Composer。
64
- * - history 是事实源,不应随着 executor 一起丢失。
100
+ * - 这里只清 Runner,不清 history Composer。
101
+ * - history 是事实源,不应随着 Runner 一起丢失。
65
102
  */
66
103
  clearExecutor(): void;
67
104
  /**
@@ -99,4 +136,4 @@ export declare class Session {
99
136
  }): Promise<SessionRunResult>;
100
137
  }
101
138
  export {};
102
- //# sourceMappingURL=Session.d.ts.map
139
+ //# sourceMappingURL=Executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["../../src/session/Executor.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,49 @@
1
1
  /**
2
- * Session:单个会话实例。
2
+ * Executor:单个 session 的执行编排器。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 一个 Session 只对应一个固定的 `sessionId`。
6
- * - 对外直接暴露 `run / appendUserMessage / appendAssistantMessage / getExecutor / getHistoryComposer`。
7
- * - 运行态(如 executing)直接收在实例内部,不再拆 `Facade / Runner / ExecutionRegistry`。
5
+ * - SDK 对外对象叫 `Session`,这里是内部执行层。
6
+ * - 一个 Executor 只对应一个固定的 `sessionId`。
7
+ * - 负责 history 写入、run scope、executing 状态与本地 Runner 的懒创建。
8
8
  */
9
9
  import { SessionHistoryWriter } from "./composer/history/SessionHistoryWriter.js";
10
10
  import { withSessionRunScope } from "./SessionRunScope.js";
11
11
  import { buildSessionStepEventMessages } from "./messages/SessionStepEventMapper.js";
12
+ import { JsonlSessionCompactionComposer } from "./composer/compaction/jsonl/JsonlSessionCompactionComposer.js";
13
+ import { LocalSessionExecutionComposer } from "./composer/execution/LocalSessionExecutionComposer.js";
14
+ import { Runner } from "./executors/local/Runner.js";
12
15
  /**
13
- * Session 单实例实现。
16
+ * Executor 单实例实现。
14
17
  */
15
- export class Session {
18
+ export class Executor {
16
19
  /**
17
20
  * 当前 session 标识。
18
21
  */
19
22
  sessionId;
20
23
  historyComposer;
21
- createExecutor;
24
+ getModel;
25
+ logger;
26
+ compactionComposer;
27
+ systemComposer;
28
+ getTools;
29
+ runnerExecutionComposer;
22
30
  historyWriter;
23
- executor = null;
31
+ runner = null;
24
32
  executing = false;
25
33
  constructor(options) {
26
34
  const sessionId = String(options.sessionId || "").trim();
27
35
  if (!sessionId) {
28
- throw new Error("Session requires a non-empty sessionId");
36
+ throw new Error("Executor requires a non-empty sessionId");
29
37
  }
30
38
  this.sessionId = sessionId;
31
39
  this.historyComposer = options.historyComposer;
32
- this.createExecutor = options.createExecutor;
40
+ this.getModel = options.getModel;
41
+ this.logger = options.logger;
42
+ this.compactionComposer =
43
+ options.compactionComposer || new JsonlSessionCompactionComposer();
44
+ this.systemComposer = options.systemComposer;
45
+ this.getTools = options.getTools;
46
+ this.runnerExecutionComposer = options.executionComposer;
33
47
  this.historyWriter = new SessionHistoryWriter({
34
48
  sessionId,
35
49
  getHistoryComposer: () => this.getHistoryComposer(),
@@ -49,25 +63,48 @@ export class Session {
49
63
  return this.historyComposer;
50
64
  }
51
65
  /**
52
- * 获取当前 session 的执行器。
66
+ * 获取当前 session 的执行端口。
67
+ *
68
+ * 关键点(中文)
69
+ * - 兼容 runtime/service 端口语义:Executor 自己就是执行端口。
53
70
  */
54
71
  getExecutor() {
55
- if (this.executor)
56
- return this.executor;
57
- const created = this.createExecutor(this.getHistoryComposer());
58
- this.executor = created;
72
+ return this;
73
+ }
74
+ /**
75
+ * 获取或创建当前本地 Runner。
76
+ */
77
+ getRunner() {
78
+ if (this.runner)
79
+ return this.runner;
80
+ const model = this.getModel();
81
+ if (!model) {
82
+ throw new Error(`Executor for session "${this.sessionId}" requires a configured model`);
83
+ }
84
+ const created = new Runner({
85
+ model,
86
+ logger: this.logger,
87
+ historyComposer: this.getHistoryComposer(),
88
+ compactionComposer: this.compactionComposer,
89
+ systemComposer: this.systemComposer,
90
+ executionComposer: this.runnerExecutionComposer ||
91
+ new LocalSessionExecutionComposer({
92
+ sessionId: this.sessionId,
93
+ getTools: this.getTools,
94
+ }),
95
+ });
96
+ this.runner = created;
59
97
  return created;
60
98
  }
61
99
  /**
62
- * 清理当前 session 的执行器缓存。
100
+ * 清理当前 session 的 Runner 缓存。
63
101
  *
64
102
  * 关键点(中文)
65
- * - 这里只清 executor,不清 history Composer。
66
- * - history 是事实源,不应随着 executor 一起丢失。
103
+ * - 这里只清 Runner,不清 history Composer。
104
+ * - history 是事实源,不应随着 Runner 一起丢失。
67
105
  */
68
106
  clearExecutor() {
69
- const current = this.executor;
70
- this.executor = null;
107
+ this.runner = null;
71
108
  }
72
109
  /**
73
110
  * 触发 session 更新后的异步回调。
@@ -98,7 +135,7 @@ export class Session {
98
135
  if (this.executing) {
99
136
  // 关键点(中文):同一个 Session 实例只允许一个活跃 run,
100
137
  // 否则 step 回调、scope 与执行器状态都会互相污染。
101
- throw new Error("Session.run does not support concurrent execution");
138
+ throw new Error("Executor.run does not support concurrent execution");
102
139
  }
103
140
  const query = String(params.query || "").trim();
104
141
  const sessionRunScope = {
@@ -140,7 +177,7 @@ export class Session {
140
177
  sessionId: this.sessionId,
141
178
  ...sessionRunScope,
142
179
  onAssistantStepCallback: wrappedOnAssistantStepCallback,
143
- }, () => this.getExecutor().run({ query }));
180
+ }, () => this.getRunner().run({ query }));
144
181
  if (persistedAssistantStepCount <= 0)
145
182
  return result;
146
183
  return {
@@ -171,4 +208,4 @@ export class Session {
171
208
  }
172
209
  }
173
210
  }
174
- //# sourceMappingURL=Session.js.map
211
+ //# sourceMappingURL=Executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Executor.js","sourceRoot":"","sources":["../../src/session/Executor.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ export declare abstract class SessionComposer {
14
14
  * 可选初始化钩子。
15
15
  *
16
16
  * 关键点(中文)
17
- * - LocalSessionExecutor 启动时可统一调用。
17
+ * - Executor / Runner 启动时可统一调用。
18
18
  * - 无需初始化的 Composer 可不实现。
19
19
  */
20
20
  init(): Promise<void>;
@@ -10,7 +10,7 @@ export class SessionComposer {
10
10
  * 可选初始化钩子。
11
11
  *
12
12
  * 关键点(中文)
13
- * - LocalSessionExecutor 启动时可统一调用。
13
+ * - Executor / Runner 启动时可统一调用。
14
14
  * - 无需初始化的 Composer 可不实现。
15
15
  */
16
16
  async init() {