sema-core 2.0.2 → 2.0.4
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/dist/conf/config.d.ts +1 -0
- package/dist/conf/config.d.ts.map +1 -1
- package/dist/conf/config.js +3 -1
- package/dist/conf/config.js.map +1 -1
- package/dist/core/SemaEngine.d.ts +6 -0
- package/dist/core/SemaEngine.d.ts.map +1 -1
- package/dist/core/SemaEngine.js +79 -11
- package/dist/core/SemaEngine.js.map +1 -1
- package/dist/core/SemaSession.d.ts +8 -0
- package/dist/core/SemaSession.d.ts.map +1 -1
- package/dist/core/SemaSession.js +10 -0
- package/dist/core/SemaSession.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/manager/CheckpointManager.d.ts +52 -0
- package/dist/manager/CheckpointManager.d.ts.map +1 -0
- package/dist/manager/CheckpointManager.js +206 -0
- package/dist/manager/CheckpointManager.js.map +1 -0
- package/dist/manager/PermissionManager.d.ts.map +1 -1
- package/dist/manager/PermissionManager.js +62 -33
- package/dist/manager/PermissionManager.js.map +1 -1
- package/dist/prompt/system.d.ts +1 -1
- package/dist/prompt/system.d.ts.map +1 -1
- package/dist/prompt/system.js +2 -0
- package/dist/prompt/system.js.map +1 -1
- package/dist/prompt/tools/subAgent.d.ts.map +1 -1
- package/dist/prompt/tools/subAgent.js +8 -1
- package/dist/prompt/tools/subAgent.js.map +1 -1
- package/dist/tools/EditNotebook.d.ts.map +1 -1
- package/dist/tools/EditNotebook.js +3 -0
- package/dist/tools/EditNotebook.js.map +1 -1
- package/dist/tools/PatchFile.d.ts.map +1 -1
- package/dist/tools/PatchFile.js +3 -0
- package/dist/tools/PatchFile.js.map +1 -1
- package/dist/tools/RunShell.d.ts +17 -12
- package/dist/tools/RunShell.d.ts.map +1 -1
- package/dist/tools/RunShell.js +5 -5
- package/dist/tools/RunShell.js.map +1 -1
- package/dist/tools/ViewFile.d.ts +1 -0
- package/dist/tools/ViewFile.d.ts.map +1 -1
- package/dist/tools/ViewFile.js +9 -1
- package/dist/tools/ViewFile.js.map +1 -1
- package/dist/tools/WriteFile.d.ts.map +1 -1
- package/dist/tools/WriteFile.js +3 -0
- package/dist/tools/WriteFile.js.map +1 -1
- package/dist/types/fork.d.ts +46 -0
- package/dist/types/fork.d.ts.map +1 -0
- package/dist/types/fork.js +3 -0
- package/dist/types/fork.js.map +1 -0
- package/dist/types/message.d.ts +1 -0
- package/dist/types/message.d.ts.map +1 -1
- package/dist/util/commands.d.ts +2 -7
- package/dist/util/commands.d.ts.map +1 -1
- package/dist/util/commands.js +8 -39
- package/dist/util/commands.js.map +1 -1
- package/dist/util/diff.d.ts +13 -0
- package/dist/util/diff.d.ts.map +1 -1
- package/dist/util/diff.js +18 -0
- package/dist/util/diff.js.map +1 -1
- package/dist/util/history.d.ts.map +1 -1
- package/dist/util/history.js +15 -0
- package/dist/util/history.js.map +1 -1
- package/dist/util/savePath.d.ts +13 -1
- package/dist/util/savePath.d.ts.map +1 -1
- package/dist/util/savePath.js +24 -3
- package/dist/util/savePath.js.map +1 -1
- package/dist/util/snapshotStore.d.ts +29 -0
- package/dist/util/snapshotStore.d.ts.map +1 -0
- package/dist/util/snapshotStore.js +134 -0
- package/dist/util/snapshotStore.js.map +1 -0
- package/package.json +1 -1
package/dist/conf/config.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare const HISTORY_DIR_PATH = "history";
|
|
|
7
7
|
export declare const HISTORY_FILES_RETAIN_COUNT = 200;
|
|
8
8
|
export declare const PER_PROJECT_HISTORY_LENGTH_LIMIT = 50;
|
|
9
9
|
export declare const HISTORY_CLEANUP_INTERVAL: number;
|
|
10
|
+
export declare const SNAPSHOTS_DIR_PATH = "snapshots";
|
|
10
11
|
export declare const LOG_DIR_PATH = "logs";
|
|
11
12
|
export declare const SERVICE_LOG_FILES_RETAIN_COUNT = 7;
|
|
12
13
|
export declare const LLM_LOG_DIR_PATH = "llm_logs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/conf/config.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,YAAY,CAAA;AAGlC,eAAO,MAAM,oBAAoB,eAAe,CAAA;AAGhD,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AACrD,eAAO,MAAM,oBAAoB,KAAK,CAAA;AACtC,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAG9C,eAAO,MAAM,gBAAgB,YAAY,CAAA;AACzC,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAC7C,eAAO,MAAM,gCAAgC,KAAK,CAAA;AAClD,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AAGvD,eAAO,MAAM,YAAY,SAAS,CAAA;AAClC,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAG/C,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAC1C,eAAO,MAAM,0BAA0B,KAAK,CAAA;AAC5C,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AAGvD,eAAO,MAAM,eAAe,WAAW,CAAA;AACvC,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAG3C,eAAO,MAAM,cAAc,UAAU,CAAA;AACrC,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAC9C,eAAO,MAAM,0BAA0B,QAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/conf/config.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,YAAY,CAAA;AAGlC,eAAO,MAAM,oBAAoB,eAAe,CAAA;AAGhD,eAAO,MAAM,sBAAsB,kBAAkB,CAAA;AACrD,eAAO,MAAM,oBAAoB,KAAK,CAAA;AACtC,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAG9C,eAAO,MAAM,gBAAgB,YAAY,CAAA;AACzC,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAC7C,eAAO,MAAM,gCAAgC,KAAK,CAAA;AAClD,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AAGvD,eAAO,MAAM,kBAAkB,cAAc,CAAA;AAG7C,eAAO,MAAM,YAAY,SAAS,CAAA;AAClC,eAAO,MAAM,8BAA8B,IAAI,CAAA;AAG/C,eAAO,MAAM,gBAAgB,aAAa,CAAA;AAC1C,eAAO,MAAM,0BAA0B,KAAK,CAAA;AAC5C,eAAO,MAAM,wBAAwB,QAAiB,CAAC;AAGvD,eAAO,MAAM,eAAe,WAAW,CAAA;AACvC,eAAO,MAAM,yBAAyB,KAAK,CAAA;AAG3C,eAAO,MAAM,cAAc,UAAU,CAAA;AACrC,eAAO,MAAM,4BAA4B,KAAK,CAAA;AAC9C,eAAO,MAAM,0BAA0B,QAAiB,CAAC"}
|
package/dist/conf/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EVENT_LOG_CLEANUP_INTERVAL = exports.EVENT_LOG_FILES_RETAIN_COUNT = exports.EVENT_DIR_PATH = exports.TRACKS_FILES_RETAIN_COUNT = exports.TRACKS_DIR_PATH = exports.LLM_LOG_CLEANUP_INTERVAL = exports.LLM_LOG_FILES_RETAIN_COUNT = exports.LLM_LOG_DIR_PATH = exports.SERVICE_LOG_FILES_RETAIN_COUNT = exports.LOG_DIR_PATH = exports.HISTORY_CLEANUP_INTERVAL = exports.PER_PROJECT_HISTORY_LENGTH_LIMIT = exports.HISTORY_FILES_RETAIN_COUNT = exports.HISTORY_DIR_PATH = exports.PROJECT_HISTORY_LENGTH_LIMIT = exports.PROJECT_LENGTH_LIMIT = exports.PROJECT_CONF_FILE_PATH = exports.MODEL_CONF_FILE_PATH = exports.SEMA_ROOT = void 0;
|
|
3
|
+
exports.EVENT_LOG_CLEANUP_INTERVAL = exports.EVENT_LOG_FILES_RETAIN_COUNT = exports.EVENT_DIR_PATH = exports.TRACKS_FILES_RETAIN_COUNT = exports.TRACKS_DIR_PATH = exports.LLM_LOG_CLEANUP_INTERVAL = exports.LLM_LOG_FILES_RETAIN_COUNT = exports.LLM_LOG_DIR_PATH = exports.SERVICE_LOG_FILES_RETAIN_COUNT = exports.LOG_DIR_PATH = exports.SNAPSHOTS_DIR_PATH = exports.HISTORY_CLEANUP_INTERVAL = exports.PER_PROJECT_HISTORY_LENGTH_LIMIT = exports.HISTORY_FILES_RETAIN_COUNT = exports.HISTORY_DIR_PATH = exports.PROJECT_HISTORY_LENGTH_LIMIT = exports.PROJECT_LENGTH_LIMIT = exports.PROJECT_CONF_FILE_PATH = exports.MODEL_CONF_FILE_PATH = exports.SEMA_ROOT = void 0;
|
|
4
4
|
// sema数据存储目录
|
|
5
5
|
exports.SEMA_ROOT = '~/.sema';
|
|
6
6
|
// 模型配置文件
|
|
@@ -14,6 +14,8 @@ exports.HISTORY_DIR_PATH = 'history';
|
|
|
14
14
|
exports.HISTORY_FILES_RETAIN_COUNT = 200; // 会话历史记录文件保留数量
|
|
15
15
|
exports.PER_PROJECT_HISTORY_LENGTH_LIMIT = 50; // 每个项目历史记录文件保留数量
|
|
16
16
|
exports.HISTORY_CLEANUP_INTERVAL = 60 * 60 * 1000; // 清理会话历史记录文件的时间间隔(毫秒)
|
|
17
|
+
// 会话 Fork 文件级快照(内容寻址 blob + 每会话 editlog)
|
|
18
|
+
exports.SNAPSHOTS_DIR_PATH = 'snapshots';
|
|
17
19
|
// 服务日志10
|
|
18
20
|
exports.LOG_DIR_PATH = 'logs';
|
|
19
21
|
exports.SERVICE_LOG_FILES_RETAIN_COUNT = 7; // 服务日志文件保留数量
|
package/dist/conf/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/conf/config.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACA,QAAA,SAAS,GAAG,SAAS,CAAA;AAElC,SAAS;AACI,QAAA,oBAAoB,GAAG,YAAY,CAAA;AAEhD,SAAS;AACI,QAAA,sBAAsB,GAAG,eAAe,CAAA;AACxC,QAAA,oBAAoB,GAAG,EAAE,CAAA,CAAE,SAAS;AACpC,QAAA,4BAA4B,GAAG,EAAE,CAAA,CAAE,WAAW;AAE3D,SAAS;AACI,QAAA,gBAAgB,GAAG,SAAS,CAAA;AAC5B,QAAA,0BAA0B,GAAG,GAAG,CAAA,CAAE,eAAe;AACjD,QAAA,gCAAgC,GAAG,EAAE,CAAA,CAAC,iBAAiB;AACvD,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,sBAAsB;AAE/E,SAAS;AACI,QAAA,YAAY,GAAG,MAAM,CAAA;AACrB,QAAA,8BAA8B,GAAG,CAAC,CAAA,CAAE,aAAa;AAE9D,UAAU;AACG,QAAA,gBAAgB,GAAG,UAAU,CAAA;AAC7B,QAAA,0BAA0B,GAAG,EAAE,CAAA,CAAE,cAAc;AAC/C,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,qBAAqB;AAE9E,YAAY;AACC,QAAA,eAAe,GAAG,QAAQ,CAAA;AAC1B,QAAA,yBAAyB,GAAG,EAAE,CAAA,CAAE,aAAa;AAE1D,OAAO;AACM,QAAA,cAAc,GAAG,OAAO,CAAA;AACxB,QAAA,4BAA4B,GAAG,EAAE,CAAA,CAAE,aAAa;AAChD,QAAA,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,oBAAoB"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/conf/config.ts"],"names":[],"mappings":";;;AAAA,aAAa;AACA,QAAA,SAAS,GAAG,SAAS,CAAA;AAElC,SAAS;AACI,QAAA,oBAAoB,GAAG,YAAY,CAAA;AAEhD,SAAS;AACI,QAAA,sBAAsB,GAAG,eAAe,CAAA;AACxC,QAAA,oBAAoB,GAAG,EAAE,CAAA,CAAE,SAAS;AACpC,QAAA,4BAA4B,GAAG,EAAE,CAAA,CAAE,WAAW;AAE3D,SAAS;AACI,QAAA,gBAAgB,GAAG,SAAS,CAAA;AAC5B,QAAA,0BAA0B,GAAG,GAAG,CAAA,CAAE,eAAe;AACjD,QAAA,gCAAgC,GAAG,EAAE,CAAA,CAAC,iBAAiB;AACvD,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,sBAAsB;AAE/E,yCAAyC;AAC5B,QAAA,kBAAkB,GAAG,WAAW,CAAA;AAE7C,SAAS;AACI,QAAA,YAAY,GAAG,MAAM,CAAA;AACrB,QAAA,8BAA8B,GAAG,CAAC,CAAA,CAAE,aAAa;AAE9D,UAAU;AACG,QAAA,gBAAgB,GAAG,UAAU,CAAA;AAC7B,QAAA,0BAA0B,GAAG,EAAE,CAAA,CAAE,cAAc;AAC/C,QAAA,wBAAwB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,qBAAqB;AAE9E,YAAY;AACC,QAAA,eAAe,GAAG,QAAQ,CAAA;AAC1B,QAAA,yBAAyB,GAAG,EAAE,CAAA,CAAE,aAAa;AAE1D,OAAO;AACM,QAAA,cAAc,GAAG,OAAO,CAAA;AACxB,QAAA,4BAA4B,GAAG,EAAE,CAAA,CAAE,aAAa;AAChD,QAAA,0BAA0B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAE,oBAAoB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SessionEventBus } from '../events/EventSystem';
|
|
2
|
+
import type { ForkOptions, ForkResult } from '../types/fork';
|
|
2
3
|
import type { AgentMode, PermissionLevel } from '../types';
|
|
3
4
|
import type { CreateSessionOptions } from '../types/session';
|
|
4
5
|
/**
|
|
@@ -41,6 +42,11 @@ export declare class SemaEngine {
|
|
|
41
42
|
* 中断当前会话
|
|
42
43
|
*/
|
|
43
44
|
interruptSession(): void;
|
|
45
|
+
/**
|
|
46
|
+
* 原地回退(Fork / 撤销):把当前会话历史截断到指定用户消息之前(移除该消息及其之后),
|
|
47
|
+
* 可选把文件回滚到该点。会话 id 不变,原会话继续使用。
|
|
48
|
+
*/
|
|
49
|
+
rewind(messageUuid: string, options?: ForkOptions): Promise<ForkResult>;
|
|
44
50
|
/**
|
|
45
51
|
* 更新 Agent 模式(会话级)
|
|
46
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemaEngine.d.ts","sourceRoot":"","sources":["../../src/core/SemaEngine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SemaEngine.d.ts","sourceRoot":"","sources":["../../src/core/SemaEngine.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU7D,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;;GAGG;AACH,qBAAa,UAAU;aAaH,SAAS,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG;IAbtB,mDAAmD;IACnD,OAAO,CAAC,wBAAwB,CAA6B;IAE7D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IAGzC,IAAI,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,aAAgC;IACjE,EAAE,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,qBAAkC;IACrF,IAAI,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,qBAAoC;IACzF,GAAG,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,qBAAmC;gBAGrE,SAAS,EAAE,MAAM,EAChB,GAAG,EAAE,eAAe;IAevC;;OAEG;IACG,aAAa,CAAC,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDnE;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAgD/E;;OAEG;IACH,OAAO,CAAC,UAAU;IAqClB;;OAEG;YACW,YAAY;IAkK1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;;OAGG;IACG,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAqEjF;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAetC;;OAEG;IACH,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;YAKrC,UAAU;IA8BxB;;OAEG;IACG,WAAW,CAAC,SAAS,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnD;;OAEG;IACH,OAAO,IAAI,IAAI;CAQhB"}
|
package/dist/core/SemaEngine.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SemaEngine = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const fs_1 = require("fs");
|
|
4
6
|
const log_1 = require("../util/log");
|
|
5
7
|
const tokens_1 = require("../util/tokens");
|
|
6
8
|
const history_1 = require("../util/history");
|
|
@@ -15,7 +17,7 @@ const ModelManager_1 = require("../manager/ModelManager");
|
|
|
15
17
|
const errors_1 = require("../types/errors");
|
|
16
18
|
const Conversation_1 = require("./Conversation");
|
|
17
19
|
const StateManager_1 = require("../manager/StateManager");
|
|
18
|
-
const
|
|
20
|
+
const CheckpointManager_1 = require("../manager/CheckpointManager");
|
|
19
21
|
const runCommand_1 = require("../services/commands/runCommand");
|
|
20
22
|
const TaskManager_1 = require("../manager/TaskManager");
|
|
21
23
|
const CronManager_1 = require("../manager/CronManager");
|
|
@@ -103,7 +105,8 @@ class SemaEngine {
|
|
|
103
105
|
*/
|
|
104
106
|
processUserInput(input, originalInput, silent) {
|
|
105
107
|
const mainAgentState = this.runtime.forAgent(StateManager_1.MAIN_AGENT_ID);
|
|
106
|
-
|
|
108
|
+
// inputId 同时作为该用户输入持久化消息的 uuid,UI 据此调用 fork
|
|
109
|
+
const inputId = (0, crypto_1.randomUUID)();
|
|
107
110
|
const trimmedInput = input.trim();
|
|
108
111
|
// quickchat 旁路:不影响状态和队列,异步处理后直接返回
|
|
109
112
|
if (trimmedInput === '/quickchat' || trimmedInput.startsWith('/quickchat ')) {
|
|
@@ -196,8 +199,8 @@ class SemaEngine {
|
|
|
196
199
|
(0, ConfManager_1.getConfManager)().saveUserInputToHistory(item.originalInput || item.input);
|
|
197
200
|
}
|
|
198
201
|
}
|
|
199
|
-
//
|
|
200
|
-
const
|
|
202
|
+
// 处理命令,按输入分别收集 blocks(每条输入对应一条持久化消息)
|
|
203
|
+
const perInput = [];
|
|
201
204
|
let combinedProcessedText = '';
|
|
202
205
|
for (const item of inputs) {
|
|
203
206
|
if (agentContext.abortController.signal.aborted) {
|
|
@@ -210,9 +213,11 @@ class SemaEngine {
|
|
|
210
213
|
continue;
|
|
211
214
|
}
|
|
212
215
|
combinedProcessedText += (combinedProcessedText ? '\n' : '') + commandResult.processedText;
|
|
213
|
-
|
|
216
|
+
if (commandResult.blocks.length > 0) {
|
|
217
|
+
perInput.push({ inputId: item.inputId, blocks: commandResult.blocks });
|
|
218
|
+
}
|
|
214
219
|
}
|
|
215
|
-
if (
|
|
220
|
+
if (perInput.length === 0) {
|
|
216
221
|
return;
|
|
217
222
|
}
|
|
218
223
|
if (agentContext.abortController.signal.aborted) {
|
|
@@ -247,11 +252,18 @@ class SemaEngine {
|
|
|
247
252
|
// 2、构建用户消息内容
|
|
248
253
|
const messageHistory = mainAgentState.getMessageHistory();
|
|
249
254
|
const additionalReminders = (0, message_1.buildAdditionalReminders)(fileReferencesResult.systemReminders, messageHistory, agentMode, this.sessionId, hasSkillTool);
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
const
|
|
255
|
+
// 打 Fork 锚点:记录本批输入发送时已累积的文件快照数,并开启新的快照 segment
|
|
256
|
+
const checkpointSeq = (0, CheckpointManager_1.getCheckpointManager)().beginTurn(this.sessionId);
|
|
257
|
+
// 每条输入各生成一条 UserMsg(uuid=inputId,便于 UI 按输入块 fork);
|
|
258
|
+
// additionalReminders 挂在首条上;API 调用时由 prepareMessagesForApi 自动合并连续 user 消息
|
|
259
|
+
const userMessages = perInput.map((p, idx) => {
|
|
260
|
+
const blocks = idx === 0 ? [...additionalReminders, ...p.blocks] : p.blocks;
|
|
261
|
+
const msg = (0, message_1.buildUserMsg)(blocks);
|
|
262
|
+
msg.uuid = p.inputId;
|
|
263
|
+
msg.checkpointSeq = checkpointSeq;
|
|
264
|
+
return msg;
|
|
265
|
+
});
|
|
266
|
+
const messages = [...messageHistory, ...userMessages];
|
|
255
267
|
// 调用 query 函数
|
|
256
268
|
for await (const _message of (0, Conversation_1.ReAct)(messages, systemPromptContent, agentContext)) {
|
|
257
269
|
// query 生成器会 yield 消息并在内部通过 finalizeMessages 更新历史
|
|
@@ -314,6 +326,62 @@ class SemaEngine {
|
|
|
314
326
|
interruptSession() {
|
|
315
327
|
this.abortCurrentRequest();
|
|
316
328
|
}
|
|
329
|
+
/**
|
|
330
|
+
* 原地回退(Fork / 撤销):把当前会话历史截断到指定用户消息之前(移除该消息及其之后),
|
|
331
|
+
* 可选把文件回滚到该点。会话 id 不变,原会话继续使用。
|
|
332
|
+
*/
|
|
333
|
+
async rewind(messageUuid, options = {}) {
|
|
334
|
+
const mainAgentState = this.runtime.forAgent(StateManager_1.MAIN_AGENT_ID);
|
|
335
|
+
// idle 守卫:处理中回退会导致 editlog / history / 磁盘不一致
|
|
336
|
+
if (mainAgentState.getCurrentState() !== 'idle') {
|
|
337
|
+
return { ok: false, error: '会话忙,请等待空闲后再撤销' };
|
|
338
|
+
}
|
|
339
|
+
const history = mainAgentState.getMessageHistory();
|
|
340
|
+
const idx = history.findIndex(m => m.uuid === messageUuid);
|
|
341
|
+
if (idx < 0) {
|
|
342
|
+
return { ok: false, error: `未找到消息: ${messageUuid}` };
|
|
343
|
+
}
|
|
344
|
+
// 回退只接受真实用户输入消息:checkpointSeq 仅打在真实用户输入上(见 startQuery),
|
|
345
|
+
// 工具结果消息与合成 user 消息(中断提示 / 上下文重建 / 压缩通知等)都不带此标记。
|
|
346
|
+
// 它们不是干净的回合边界,在其之上截断会把上一条 assistant 的 tool_use 留成孤儿,
|
|
347
|
+
// 后续准备 API 请求时丢失该轮 assistant 内容,静默破坏会话历史。
|
|
348
|
+
const forkMsg = history[idx];
|
|
349
|
+
if (forkMsg.type !== 'user' || forkMsg.checkpointSeq === undefined) {
|
|
350
|
+
return { ok: false, error: `该消息不是可回退的用户输入: ${messageUuid}` };
|
|
351
|
+
}
|
|
352
|
+
const forkSeq = forkMsg.checkpointSeq; // 真实用户输入必有锚点
|
|
353
|
+
const truncated = history.slice(0, idx); // 移除该消息及其之后
|
|
354
|
+
const checkpoint = (0, CheckpointManager_1.getCheckpointManager)();
|
|
355
|
+
// 1) 回滚文件(仅 restoreFiles)
|
|
356
|
+
let restoredFiles = [];
|
|
357
|
+
if (options.restoreFiles) {
|
|
358
|
+
const plan = checkpoint.computeRestorePlan(this.sessionId, forkSeq);
|
|
359
|
+
restoredFiles = checkpoint.applyRestore(plan);
|
|
360
|
+
// 刷新被回滚文件的读时间戳,沿用会话时间戳、不触发"先重读"
|
|
361
|
+
for (const filePath of restoredFiles) {
|
|
362
|
+
try {
|
|
363
|
+
mainAgentState.setReadFileTimestamp(filePath, (0, fs_1.statSync)(filePath).mtimeMs);
|
|
364
|
+
}
|
|
365
|
+
catch {
|
|
366
|
+
// 回滚为删除等情况文件已不存在,忽略
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
// 2) 截断 editlog 到 forkSeq(被撤销的快照记录丢弃)
|
|
371
|
+
checkpoint.truncateEditLog(this.sessionId, forkSeq);
|
|
372
|
+
// 3) 就地截断历史并持久化(同一会话同 id)
|
|
373
|
+
mainAgentState.setMessageHistory(truncated); // 非空时自动保存
|
|
374
|
+
if (truncated.length === 0) {
|
|
375
|
+
// 空历史不触发自动保存,强制落盘覆盖旧历史
|
|
376
|
+
const workingDir = (0, ConfManager_1.getConfManager)().getCoreConfig()?.workingDir;
|
|
377
|
+
await (0, history_1.saveHistory)(this.sessionId, [], this.runtime.getTodos(), workingDir, this.runtime.getReadFileTimestamps(), this.runtime.listTodoTasks(StateManager_1.MAIN_AGENT_ID));
|
|
378
|
+
}
|
|
379
|
+
// 主动重发当前 todos:todos 不随回档回退,但 UI 的 todos 面板只吃 todos:update,
|
|
380
|
+
// 这里重发一次让面板与回档后的会话重新同步
|
|
381
|
+
this.emit('todos:update', this.runtime.getTodos());
|
|
382
|
+
(0, log_1.logInfo)(`原地回退: ${this.sessionId} @ ${messageUuid} (restoreFiles=${!!options.restoreFiles}, restored=${restoredFiles.length}, 历史保留 ${truncated.length} 条)`);
|
|
383
|
+
return { ok: true, sessionId: this.sessionId, restoredFiles };
|
|
384
|
+
}
|
|
317
385
|
/**
|
|
318
386
|
* 更新 Agent 模式(会话级)
|
|
319
387
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemaEngine.js","sourceRoot":"","sources":["../../src/core/SemaEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SemaEngine.js","sourceRoot":"","sources":["../../src/core/SemaEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SemaEngine } from './SemaEngine';
|
|
2
2
|
import { CreateSessionOptions } from '../types/session';
|
|
3
|
+
import { ForkOptions, ForkPreview, ForkResult } from '../types/fork';
|
|
3
4
|
import { SessionEventBus } from '../events/EventSystem';
|
|
4
5
|
import { ToolPermissionResponse, PickOptionResponseData, PlanExitResponseData } from '../events/types';
|
|
5
6
|
import { TaskListItem } from '../types/task';
|
|
@@ -29,6 +30,13 @@ export declare class SemaSession {
|
|
|
29
30
|
interrupt: () => void;
|
|
30
31
|
updateAgentMode: (mode: AgentMode) => void;
|
|
31
32
|
updatePermissionLevel: (level: PermissionLevel) => void;
|
|
33
|
+
/** 预览:在该用户消息处恢复文件会改动哪些文件、各自增删行数(只读,无副作用) */
|
|
34
|
+
getForkPreview: (messageUuid: string) => ForkPreview;
|
|
35
|
+
/**
|
|
36
|
+
* 原地回退(Fork / 撤销):把会话历史截断到该用户消息之前;
|
|
37
|
+
* restoreFiles=true 时同时回滚文件。会话 id 不变,继续使用。
|
|
38
|
+
*/
|
|
39
|
+
fork: (messageUuid: string, options?: ForkOptions) => Promise<ForkResult>;
|
|
32
40
|
getTaskList: () => TaskListItem[];
|
|
33
41
|
watchTask: (taskId: string, onDelta: (delta: string) => void) => () => void;
|
|
34
42
|
stopTask: (taskId: string) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemaSession.d.ts","sourceRoot":"","sources":["../../src/core/SemaSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAyB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"SemaSession.d.ts","sourceRoot":"","sources":["../../src/core/SemaSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAAE,eAAe,EAAyB,MAAM,uBAAuB,CAAC;AAK/E,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3D;;;;GAIG;AACH,qBAAa,WAAW;aAEJ,SAAS,EAAE,MAAM;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFJ,SAAS,EAAE,MAAM,EAChB,MAAM,EAAE,UAAU,EAClB,GAAG,EAAE,eAAe;IAGvC;;;OAGG;WACU,MAAM,CAAC,IAAI,GAAE,oBAAyB,GAAG,OAAO,CAAC,WAAW,CAAC;IAiB1E,EAAE,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,UAA0C;IAC7F,IAAI,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,UAA4C;IACjG,GAAG,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,UAA2C;IAG/F,uBAAuB,GAAI,UAAU,sBAAsB,aACL;IACtD,mBAAmB,GAAI,UAAU,sBAAsB,aACL;IAClD,iBAAiB,GAAI,UAAU,oBAAoB,aACH;IAGhD,gBAAgB,GAAI,OAAO,MAAM,EAAE,gBAAgB,MAAM,KAAG,IAAI,CACX;IAErD,SAAS,QAAO,IAAI,CAAmC;IAGvD,eAAe,GAAI,MAAM,SAAS,KAAG,IAAI,CAAsC;IAC/E,qBAAqB,GAAI,OAAO,eAAe,KAAG,IAAI,CAA6C;IAGnG,4CAA4C;IAC5C,cAAc,GAAI,aAAa,MAAM,KAAG,WAAW,CACW;IAE9D;;;OAGG;IACH,IAAI,GAAI,aAAa,MAAM,EAAE,UAAU,WAAW,KAAG,OAAO,CAAC,UAAU,CAAC,CAC7B;IAG3C,WAAW,QAAO,YAAY,EAAE,CAAiD;IACjF,SAAS,GAAI,QAAQ,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,KAAG,MAAM,IAAI,CAC5B;IAC9C,QAAQ,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAsC;IAC1E,YAAY,QAAO,MAAM,CAAkD;IAC3E,yBAAyB,GAAI,QAAQ,MAAM,KAAG,OAAO,CAAkD;IACvG,2BAA2B,QAAO,MAAM,EAAE,CAA2D;IAErG;;OAEG;IACH,OAAO,QAAO,IAAI,CAOhB;CACH"}
|
package/dist/core/SemaSession.js
CHANGED
|
@@ -5,6 +5,7 @@ const SemaEngine_1 = require("./SemaEngine");
|
|
|
5
5
|
const EventSystem_1 = require("../events/EventSystem");
|
|
6
6
|
const session_1 = require("../util/session");
|
|
7
7
|
const StateManager_1 = require("../manager/StateManager");
|
|
8
|
+
const CheckpointManager_1 = require("../manager/CheckpointManager");
|
|
8
9
|
const TaskManager_1 = require("../manager/TaskManager");
|
|
9
10
|
const log_1 = require("../util/log");
|
|
10
11
|
/**
|
|
@@ -31,6 +32,14 @@ class SemaSession {
|
|
|
31
32
|
// ==================== 会话级配置 ====================
|
|
32
33
|
this.updateAgentMode = (mode) => this.engine.updateAgentMode(mode);
|
|
33
34
|
this.updatePermissionLevel = (level) => this.engine.updatePermissionLevel(level);
|
|
35
|
+
// ==================== 会话 Fork / 撤销 ====================
|
|
36
|
+
/** 预览:在该用户消息处恢复文件会改动哪些文件、各自增删行数(只读,无副作用) */
|
|
37
|
+
this.getForkPreview = (messageUuid) => (0, CheckpointManager_1.getCheckpointManager)().preview(this.sessionId, messageUuid);
|
|
38
|
+
/**
|
|
39
|
+
* 原地回退(Fork / 撤销):把会话历史截断到该用户消息之前;
|
|
40
|
+
* restoreFiles=true 时同时回滚文件。会话 id 不变,继续使用。
|
|
41
|
+
*/
|
|
42
|
+
this.fork = (messageUuid, options) => this.engine.rewind(messageUuid, options);
|
|
34
43
|
// ==================== 后台任务(仅本会话)====================
|
|
35
44
|
this.getTaskList = () => (0, TaskManager_1.getTaskManager)().getTaskList(this.sessionId);
|
|
36
45
|
this.watchTask = (taskId, onDelta) => (0, TaskManager_1.getTaskManager)().watchTask(taskId, onDelta);
|
|
@@ -46,6 +55,7 @@ class SemaSession {
|
|
|
46
55
|
this.engine.dispose();
|
|
47
56
|
(0, TaskManager_1.getTaskManager)().disposeSession(this.sessionId);
|
|
48
57
|
(0, StateManager_1.getStateManager)().removeSession(this.sessionId);
|
|
58
|
+
(0, CheckpointManager_1.getCheckpointManager)().forgetSession(this.sessionId);
|
|
49
59
|
this.bus.dispose();
|
|
50
60
|
};
|
|
51
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemaSession.js","sourceRoot":"","sources":["../../src/core/SemaSession.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;
|
|
1
|
+
{"version":3,"file":"SemaSession.js","sourceRoot":"","sources":["../../src/core/SemaSession.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EACV,WAAW,EACX,cAAc,EACd,cAAc,EACd,WAAW,EACX,UAAU,GACX,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 会话 Fork 文件级快照管理(单例)
|
|
3
|
+
*
|
|
4
|
+
* 职责:
|
|
5
|
+
* - 维护每会话的 EditLog(文件"改动前镜像"的追加日志),通过 snapshotStore 持久化
|
|
6
|
+
* - 提供 fork 预览(preview)、回滚计划(computeRestorePlan)与回滚执行(applyRestore)
|
|
7
|
+
* - 原地回退时截断 EditLog(truncateEditLog)
|
|
8
|
+
*
|
|
9
|
+
* 设计要点见计划:每文件每 turn-segment 只捕获一次;失败关闭(fail-closed);
|
|
10
|
+
* 回滚按字节级整文件还原;不处理外部修改冲突。
|
|
11
|
+
* blob/editlog 的文件 IO 与退场清理在 util/snapshotStore.ts(纯 IO,避免循环依赖)。
|
|
12
|
+
*/
|
|
13
|
+
import { ForkPreview } from '../types/fork';
|
|
14
|
+
/** 回滚计划项 */
|
|
15
|
+
export interface RestorePlanItem {
|
|
16
|
+
filePath: string;
|
|
17
|
+
blobHash: string | null;
|
|
18
|
+
existedBefore: boolean;
|
|
19
|
+
}
|
|
20
|
+
declare class CheckpointManager {
|
|
21
|
+
private editLogs;
|
|
22
|
+
private segmentStarts;
|
|
23
|
+
private projectPath;
|
|
24
|
+
private getEditLog;
|
|
25
|
+
private persist;
|
|
26
|
+
/** 读 blob 并按 LF 归一化为文本(仅用于预览的行数/diff,回滚仍用原始字节) */
|
|
27
|
+
private readBlobText;
|
|
28
|
+
/** 开始一个新的 turn:返回当前 EditLog 长度并设为本 segment 起点 */
|
|
29
|
+
beginTurn(sessionId: string): number;
|
|
30
|
+
/** 当前 EditLog 记录数(= 下一条 fork 锚点值) */
|
|
31
|
+
getEditCount(sessionId: string): number;
|
|
32
|
+
/**
|
|
33
|
+
* 在工具写盘前记录文件的"改动前镜像"。
|
|
34
|
+
* 失败关闭:捕获失败抛错,由调用方令本次工具调用失败(不写盘)。
|
|
35
|
+
*/
|
|
36
|
+
recordPreEdit(sessionId: string, agentId: string, fullFilePath: string): void;
|
|
37
|
+
/** 选取回滚集:seq >= forkSeq 的记录中,每个文件取最早的一条 */
|
|
38
|
+
computeRestorePlan(sessionId: string, forkSeq: number): RestorePlanItem[];
|
|
39
|
+
/** 预览:在 messageUuid 处恢复文件会改动哪些文件、各自增删行数(只读) */
|
|
40
|
+
preview(sessionId: string, messageUuid: string): ForkPreview;
|
|
41
|
+
/** 执行回滚(仅 fork(restoreFiles:true) 调用)。返回实际处理的文件路径。 */
|
|
42
|
+
applyRestore(plan: RestorePlanItem[]): string[];
|
|
43
|
+
/** 原地回退时把 seq >= forkSeq 的记录截掉(被撤销的快照记录丢弃) */
|
|
44
|
+
truncateEditLog(sessionId: string, forkSeq: number): void;
|
|
45
|
+
/** 释放某会话的内存 EditLog(磁盘文件保留,供重新打开/再次 fork 使用) */
|
|
46
|
+
forgetSession(sessionId: string): void;
|
|
47
|
+
private describeChange;
|
|
48
|
+
private makeChange;
|
|
49
|
+
}
|
|
50
|
+
export declare const getCheckpointManager: () => CheckpointManager;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=CheckpointManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheckpointManager.d.ts","sourceRoot":"","sources":["../../src/manager/CheckpointManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAgBH,OAAO,EAAE,WAAW,EAAkC,MAAM,eAAe,CAAC;AAE5E,YAAY;AACZ,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,cAAM,iBAAiB;IAErB,OAAO,CAAC,QAAQ,CAAwC;IAExD,OAAO,CAAC,aAAa,CAAkC;IAEvD,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,OAAO;IAIf,kDAAkD;IAClD,OAAO,CAAC,YAAY;IAQpB,iDAAiD;IACjD,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMpC,qCAAqC;IACrC,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQvC;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAoC7E,2CAA2C;IAC3C,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE;IAiBzE,+CAA+C;IAC/C,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW;IAc5D,sDAAsD;IACtD,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE;IAoB/C,8CAA8C;IAC9C,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAOzD,gDAAgD;IAChD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAStC,OAAO,CAAC,cAAc;IAiCtB,OAAO,CAAC,UAAU;CAUnB;AAID,eAAO,MAAM,oBAAoB,QAAO,iBAKvC,CAAC"}
|