sema-core 2.0.2 → 2.0.3

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 (56) hide show
  1. package/dist/conf/config.d.ts +1 -0
  2. package/dist/conf/config.d.ts.map +1 -1
  3. package/dist/conf/config.js +3 -1
  4. package/dist/conf/config.js.map +1 -1
  5. package/dist/core/SemaEngine.d.ts +6 -0
  6. package/dist/core/SemaEngine.d.ts.map +1 -1
  7. package/dist/core/SemaEngine.js +79 -11
  8. package/dist/core/SemaEngine.js.map +1 -1
  9. package/dist/core/SemaSession.d.ts +8 -0
  10. package/dist/core/SemaSession.d.ts.map +1 -1
  11. package/dist/core/SemaSession.js +10 -0
  12. package/dist/core/SemaSession.js.map +1 -1
  13. package/dist/index.d.ts +1 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/manager/CheckpointManager.d.ts +52 -0
  16. package/dist/manager/CheckpointManager.d.ts.map +1 -0
  17. package/dist/manager/CheckpointManager.js +206 -0
  18. package/dist/manager/CheckpointManager.js.map +1 -0
  19. package/dist/manager/PermissionManager.d.ts.map +1 -1
  20. package/dist/manager/PermissionManager.js +59 -30
  21. package/dist/manager/PermissionManager.js.map +1 -1
  22. package/dist/tools/EditNotebook.d.ts.map +1 -1
  23. package/dist/tools/EditNotebook.js +3 -0
  24. package/dist/tools/EditNotebook.js.map +1 -1
  25. package/dist/tools/PatchFile.d.ts.map +1 -1
  26. package/dist/tools/PatchFile.js +3 -0
  27. package/dist/tools/PatchFile.js.map +1 -1
  28. package/dist/tools/WriteFile.d.ts.map +1 -1
  29. package/dist/tools/WriteFile.js +3 -0
  30. package/dist/tools/WriteFile.js.map +1 -1
  31. package/dist/types/fork.d.ts +46 -0
  32. package/dist/types/fork.d.ts.map +1 -0
  33. package/dist/types/fork.js +3 -0
  34. package/dist/types/fork.js.map +1 -0
  35. package/dist/types/message.d.ts +1 -0
  36. package/dist/types/message.d.ts.map +1 -1
  37. package/dist/util/commands.d.ts +2 -7
  38. package/dist/util/commands.d.ts.map +1 -1
  39. package/dist/util/commands.js +8 -39
  40. package/dist/util/commands.js.map +1 -1
  41. package/dist/util/diff.d.ts +13 -0
  42. package/dist/util/diff.d.ts.map +1 -1
  43. package/dist/util/diff.js +18 -0
  44. package/dist/util/diff.js.map +1 -1
  45. package/dist/util/history.d.ts.map +1 -1
  46. package/dist/util/history.js +15 -0
  47. package/dist/util/history.js.map +1 -1
  48. package/dist/util/savePath.d.ts +13 -1
  49. package/dist/util/savePath.d.ts.map +1 -1
  50. package/dist/util/savePath.js +24 -3
  51. package/dist/util/savePath.js.map +1 -1
  52. package/dist/util/snapshotStore.d.ts +29 -0
  53. package/dist/util/snapshotStore.d.ts.map +1 -0
  54. package/dist/util/snapshotStore.js +134 -0
  55. package/dist/util/snapshotStore.js.map +1 -0
  56. package/package.json +1 -1
@@ -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"}
@@ -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; // 服务日志文件保留数量
@@ -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":"AAYA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAYxD,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;IA+C/E;;OAEG;IACH,OAAO,CAAC,UAAU;IAqClB;;OAEG;YACW,YAAY;IAwJ1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;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"}
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"}
@@ -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 session_1 = require("../util/session");
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
- const inputId = (0, session_1.generateShortId)();
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
- // 处理命令,收集所有 blocks
200
- const allBlocks = [];
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
- allBlocks.push(...commandResult.blocks);
216
+ if (commandResult.blocks.length > 0) {
217
+ perInput.push({ inputId: item.inputId, blocks: commandResult.blocks });
218
+ }
214
219
  }
215
- if (allBlocks.length === 0) {
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
- const userMessage = (0, message_1.buildUserMsg)([
251
- ...additionalReminders,
252
- ...allBlocks
253
- ]);
254
- const messages = [...messageHistory, userMessage];
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;AAI/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,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,CAMhB;CACH"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"SemaSession.js","sourceRoot":"","sources":["../../src/core/SemaSession.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { SemaCore } from './core/SemaCore';
2
2
  export { SemaSession } from './core/SemaSession';
3
+ export type { ForkPreview, ForkFileChange, ForkFileEffect, ForkOptions, ForkResult, } from './types/fork';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -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"}