@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.
- package/bin/index.d.ts +2 -2
- 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 +2 -2
- package/bin/sdk/Agent.d.ts.map +1 -1
- package/bin/sdk/Agent.js +2 -2
- package/bin/sdk/Agent.js.map +1 -1
- package/bin/sdk/Session.d.ts +6 -6
- package/bin/sdk/Session.d.ts.map +1 -1
- package/bin/sdk/Session.js +41 -53
- package/bin/sdk/Session.js.map +1 -1
- package/bin/sdk/SessionMetadata.d.ts +3 -3
- package/bin/sdk/SessionMetadata.d.ts.map +1 -1
- package/bin/sdk/SessionMetadata.js +5 -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/{SdkSessionSystemComposer.d.ts → SessionSystemBuilder.d.ts} +7 -7
- package/bin/sdk/SessionSystemBuilder.d.ts.map +1 -0
- package/bin/sdk/{SdkSessionSystemComposer.js → SessionSystemBuilder.js} +14 -14
- 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/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 +2 -2
- package/src/runtime/AgentRuntime.ts +7 -17
- package/src/runtime/AgentRuntimeTypes.ts +3 -3
- package/src/sdk/Agent.ts +5 -5
- package/src/sdk/Session.ts +52 -66
- package/src/sdk/SessionMetadata.ts +5 -5
- package/src/sdk/SessionPersistence.ts +13 -13
- package/src/sdk/SessionServicePort.ts +13 -13
- package/src/sdk/{SdkSessionSystemComposer.ts → SessionSystemBuilder.ts} +24 -24
- 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/SessionLoop.ts +1 -1
- package/src/session/types/SessionRun.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/bin/sdk/SdkSessionSystemComposer.d.ts.map +0 -1
- 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/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
|
|
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("
|
|
70
|
+
throw new Error("buildSessionSystemBlocks requires a non-empty agentId");
|
|
71
71
|
}
|
|
72
72
|
if (!projectRoot) {
|
|
73
|
-
throw new Error("
|
|
73
|
+
throw new Error("buildSessionSystemBlocks requires a non-empty projectRoot");
|
|
74
74
|
}
|
|
75
75
|
if (!sessionId) {
|
|
76
|
-
throw new Error("
|
|
76
|
+
throw new Error("buildSessionSystemBlocks requires a non-empty sessionId");
|
|
77
77
|
}
|
|
78
78
|
if (!Number.isFinite(createdAt) || createdAt <= 0) {
|
|
79
|
-
throw new Error("
|
|
79
|
+
throw new Error("buildSessionSystemBlocks requires a valid createdAt");
|
|
80
80
|
}
|
|
81
81
|
if (!timezone) {
|
|
82
|
-
throw new Error("
|
|
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
|
|
96
|
-
const blocks = await
|
|
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
|
|
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("
|
|
124
|
+
throw new Error("SessionSystemBuilder requires a non-empty agentId");
|
|
125
125
|
}
|
|
126
126
|
if (!this.projectRoot) {
|
|
127
|
-
throw new Error("
|
|
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("
|
|
136
|
+
throw new Error("SessionSystemBuilder.resolve requires a non-empty sessionId");
|
|
137
137
|
}
|
|
138
|
-
return await
|
|
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=
|
|
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 专用
|
|
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 {
|
|
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 {
|
|
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
|
-
*
|
|
28
|
+
* 读取当前 session 使用的模型实例。
|
|
26
29
|
*/
|
|
27
|
-
|
|
30
|
+
getModel: () => LanguageModel | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* 统一日志器。
|
|
33
|
+
*/
|
|
34
|
+
logger: Logger;
|
|
35
|
+
/**
|
|
36
|
+
* 当前 session 对应的 compaction Composer。
|
|
37
|
+
*/
|
|
38
|
+
compactionComposer: SessionCompactionComposer;
|
|
28
39
|
/**
|
|
29
|
-
*
|
|
40
|
+
* 当前 session 对应的 system Composer。
|
|
30
41
|
*/
|
|
31
|
-
|
|
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
|
|
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,
|
|
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 专用
|
|
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 {
|
|
9
|
+
import { Executor } from "../../../../session/Executor.js";
|
|
10
10
|
/**
|
|
11
11
|
* Chat 专用 Session。
|
|
12
12
|
*/
|
|
13
|
-
export class ChatSession extends
|
|
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
|
-
|
|
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;
|
|
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"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* TaskRunnerSession:task runner 的 session 装配模块。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* - 负责构建 task 专用
|
|
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
|
-
* - 使用
|
|
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 专用
|
|
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 {
|
|
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
|
-
* - 使用
|
|
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
|
|
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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,
|
|
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 不直接依赖具体 `
|
|
160
|
+
* - task runner 不直接依赖具体 SDK `Session` 实现。
|
|
161
161
|
* - 这里暴露的是 task 场景最小可用端口:执行器 + history Composer。
|
|
162
162
|
*/
|
|
163
163
|
export type TaskSessionRuntimePort = {
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Executor:单个 session 的执行编排器。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
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
|
|
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
|
-
*
|
|
30
|
+
* 读取当前 session 使用的模型实例。
|
|
26
31
|
*/
|
|
27
|
-
|
|
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
|
-
*
|
|
59
|
+
* Executor 单实例实现。
|
|
35
60
|
*/
|
|
36
|
-
export declare class
|
|
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
|
|
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
|
|
74
|
+
private runner;
|
|
45
75
|
private executing;
|
|
46
|
-
constructor(options:
|
|
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
|
-
*
|
|
93
|
+
* 获取或创建当前本地 Runner。
|
|
94
|
+
*/
|
|
95
|
+
private getRunner;
|
|
96
|
+
/**
|
|
97
|
+
* 清理当前 session 的 Runner 缓存。
|
|
61
98
|
*
|
|
62
99
|
* 关键点(中文)
|
|
63
|
-
* - 这里只清
|
|
64
|
-
* - history 是事实源,不应随着
|
|
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=
|
|
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
|
-
*
|
|
2
|
+
* Executor:单个 session 的执行编排器。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
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
|
-
*
|
|
16
|
+
* Executor 单实例实现。
|
|
14
17
|
*/
|
|
15
|
-
export class
|
|
18
|
+
export class Executor {
|
|
16
19
|
/**
|
|
17
20
|
* 当前 session 标识。
|
|
18
21
|
*/
|
|
19
22
|
sessionId;
|
|
20
23
|
historyComposer;
|
|
21
|
-
|
|
24
|
+
getModel;
|
|
25
|
+
logger;
|
|
26
|
+
compactionComposer;
|
|
27
|
+
systemComposer;
|
|
28
|
+
getTools;
|
|
29
|
+
runnerExecutionComposer;
|
|
22
30
|
historyWriter;
|
|
23
|
-
|
|
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("
|
|
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.
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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
|
-
* - 这里只清
|
|
66
|
-
* - history 是事实源,不应随着
|
|
103
|
+
* - 这里只清 Runner,不清 history Composer。
|
|
104
|
+
* - history 是事实源,不应随着 Runner 一起丢失。
|
|
67
105
|
*/
|
|
68
106
|
clearExecutor() {
|
|
69
|
-
|
|
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("
|
|
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.
|
|
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=
|
|
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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"}
|