@aalis/plugin-checkpoint 0.14.0 → 0.15.0
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/index.d.ts +2 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -59
- package/dist/index.js.map +1 -1
- package/dist/service.d.ts +60 -82
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +169 -108
- package/dist/service.js.map +1 -1
- package/package.json +10 -11
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { type CheckpointService } from './service.js';
|
|
2
|
-
export declare const checkpoint: import("@aalis/core").ServiceDescriptor<CheckpointService, import("@aalis/core").ServiceRef<CheckpointService>>;
|
|
3
1
|
declare const _default: import("@aalis/core").PluginDefinition<{
|
|
4
2
|
/**
|
|
5
3
|
* storage 是硬依赖:本插件的快照/manifest 全部经 storage 落盘。
|
|
@@ -8,11 +6,9 @@ declare const _default: import("@aalis/core").PluginDefinition<{
|
|
|
8
6
|
* 该保证只在 app.stop() 的整体拓扑逆序成立;单独禁用/热重载 storage 时 flushAll 会落空
|
|
9
7
|
* (回合 blob 在写点已落盘,丢的只是在飞回合的 manifest)。
|
|
10
8
|
*/
|
|
11
|
-
storage: import("@aalis/core").ServiceDescriptor<import("@aalis/api-storage").StorageService, import("@aalis/
|
|
9
|
+
storage: import("@aalis/core").ServiceDescriptor<import("@aalis/api-storage").StorageService, import("@aalis/api-storage").BoundStorage>;
|
|
12
10
|
/** 只有「回滚整轮对话」用得到(抓消息时间戳、删消息);没有 memory 也能做纯文件回滚 */
|
|
13
|
-
memory: import("@aalis/core").OptionalUse<import("@aalis/api-memory").MemoryService, import("@aalis/
|
|
14
|
-
/** 页面动作的登记口;无 WebUI 时本插件照常在后台记账 */
|
|
15
|
-
webui: import("@aalis/core").OptionalUse<import("@aalis/api-webui").WebUIService, import("@aalis/api-webui").BoundWebui>;
|
|
11
|
+
memory: import("@aalis/core").OptionalUse<import("@aalis/api-memory").MemoryService, import("@aalis/api-memory").MemoryService>;
|
|
16
12
|
events: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Events, import("@aalis/core").Events>;
|
|
17
13
|
hooks: import("@aalis/core").ServiceDescriptor<import("@aalis/api-hooks").HookRegistry, import("@aalis/api-hooks").Hooks>;
|
|
18
14
|
lifecycle: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").LifecycleCap, import("@aalis/core").LifecycleCap>;
|
|
@@ -21,5 +17,4 @@ declare const _default: import("@aalis/core").PluginDefinition<{
|
|
|
21
17
|
provide: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Provide, import("@aalis/core").Provide>;
|
|
22
18
|
}>;
|
|
23
19
|
export default _default;
|
|
24
|
-
export type { CheckpointFileRecord, CheckpointService, RollbackResult, RollbackWithChatResult, TurnManifest, TurnSummary, } from './service.js';
|
|
25
20
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";IAeE;;;;;;OAMG;;IAEH,mDAAmD;;;;;;;;;AAWrD,wBAQG"}
|
package/dist/index.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
+
import { checkpoint } from '@aalis/api-checkpoint';
|
|
1
2
|
import { hooks } from '@aalis/api-hooks';
|
|
2
3
|
import { memory } from '@aalis/api-memory';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { config, definePlugin, defineService, events, lifecycle, logger, optional, provide, } from '@aalis/core';
|
|
4
|
+
import { storage } from '@aalis/api-storage';
|
|
5
|
+
import { config, definePlugin, events, lifecycle, logger, optional, provide } from '@aalis/core';
|
|
6
6
|
import { parseConfig } from '@aalis/schema-config';
|
|
7
7
|
import { configSchema } from './config.js';
|
|
8
8
|
import { CheckpointServiceImpl, normalizeConfig } from './service.js';
|
|
9
9
|
// ════════════════════════════════════════════════════════════
|
|
10
|
-
// plugin-checkpoint —
|
|
10
|
+
// plugin-checkpoint — 文件操作快照与回滚(契约见 @aalis/api-checkpoint)
|
|
11
11
|
// ════════════════════════════════════════════════════════════
|
|
12
|
-
// ----- 服务描述符(按激活绑定;调用型:绑定接口是 ServiceRef)-----
|
|
13
|
-
export const checkpoint = defineService('checkpoint');
|
|
14
12
|
const uses = {
|
|
15
13
|
/**
|
|
16
14
|
* storage 是硬依赖:本插件的快照/manifest 全部经 storage 落盘。
|
|
@@ -22,8 +20,6 @@ const uses = {
|
|
|
22
20
|
storage,
|
|
23
21
|
/** 只有「回滚整轮对话」用得到(抓消息时间戳、删消息);没有 memory 也能做纯文件回滚 */
|
|
24
22
|
memory: optional(memory),
|
|
25
|
-
/** 页面动作的登记口;无 WebUI 时本插件照常在后台记账 */
|
|
26
|
-
webui: optional(webuiServer),
|
|
27
23
|
events,
|
|
28
24
|
hooks,
|
|
29
25
|
lifecycle,
|
|
@@ -41,57 +37,30 @@ export default definePlugin({
|
|
|
41
37
|
apply: run,
|
|
42
38
|
});
|
|
43
39
|
function run(caps) {
|
|
44
|
-
const { storage, memory,
|
|
40
|
+
const { storage, memory, events, hooks, lifecycle, provide } = caps;
|
|
45
41
|
/** 服务内部的 commitTurn / gc / flush 都写这个 source,日志页按 `…:checkpoint` 归组 */
|
|
46
|
-
const logger = caps.logger.child('checkpoint');
|
|
47
|
-
const cfg = normalizeConfig(parseConfig(configSchema, caps.config, logger));
|
|
48
|
-
const gateway =
|
|
42
|
+
const logger = caps.logger.use.child('checkpoint');
|
|
43
|
+
const cfg = normalizeConfig(parseConfig(configSchema, caps.config.use, logger));
|
|
44
|
+
const gateway = storage.use;
|
|
49
45
|
const service = new CheckpointServiceImpl(cfg, logger, gateway);
|
|
50
|
-
provide(checkpoint, service);
|
|
46
|
+
provide.use(checkpoint, service);
|
|
51
47
|
// 注入 chat 回滚所需依赖:memory 引用(每次调用解析当前提供者)+ 事件发出器
|
|
52
48
|
service.setChatRollbackDeps({
|
|
53
49
|
memory,
|
|
54
50
|
emitMessagesDeleted: (sessionId, timestamps) => {
|
|
55
|
-
events
|
|
51
|
+
events.use
|
|
56
52
|
.emit('memory:messages-deleted', { sessionId, timestamps })
|
|
57
53
|
.catch(err => logger.debug(`emit memory:messages-deleted 失败: ${err.message}`));
|
|
58
54
|
},
|
|
59
55
|
emitHistoryChanged: sessionId => {
|
|
60
|
-
events
|
|
56
|
+
events.use
|
|
61
57
|
.emit('history:changed', { sessionId })
|
|
62
58
|
.catch(err => logger.debug(`emit history:changed 失败: ${err.message}`));
|
|
63
59
|
},
|
|
64
60
|
});
|
|
65
|
-
// ──────────── 页面动作(供 WebUI 调用)────────────
|
|
66
|
-
webui.registerAction('listTurns', async (args) => {
|
|
67
|
-
const sessionId = args.sessionId ?? '';
|
|
68
|
-
if (!sessionId)
|
|
69
|
-
return { error: '缺少 sessionId' };
|
|
70
|
-
return service.listTurns(sessionId);
|
|
71
|
-
});
|
|
72
|
-
webui.registerAction('getManifest', async (args) => service.getManifest(args.sessionId, args.turnId));
|
|
73
|
-
webui.registerAction('rollback', async (args) => {
|
|
74
|
-
const sessionId = args.sessionId;
|
|
75
|
-
const turnId = args.turnId;
|
|
76
|
-
if (!sessionId || !turnId)
|
|
77
|
-
return { ok: false, errors: [{ uri: '', reason: '缺少 sessionId 或 turnId' }] };
|
|
78
|
-
return service.rollback(sessionId, turnId);
|
|
79
|
-
});
|
|
80
|
-
webui.registerAction('rollbackWithChat', async (args) => {
|
|
81
|
-
const sessionId = args.sessionId;
|
|
82
|
-
const turnId = args.turnId;
|
|
83
|
-
if (!sessionId || !turnId) {
|
|
84
|
-
return {
|
|
85
|
-
ok: false,
|
|
86
|
-
errors: [{ uri: '', reason: '缺少 sessionId 或 turnId' }],
|
|
87
|
-
deletedMessages: 0,
|
|
88
|
-
chatDeleted: false,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
return service.rollbackWithChat(sessionId, turnId);
|
|
92
|
-
});
|
|
93
61
|
// ──────────── 回合生命周期 ────────────
|
|
94
|
-
// agent:input:before
|
|
62
|
+
// agent:input:before 的 next 就是这一轮的全部(后续中间件、模型调用、工具、回合结束钩子),
|
|
63
|
+
// 用 agent 给的 turnId 把它包进 runTurn:期间的存储改动记进这一轮,next 返回(含被下游拦下、出错)即提交。
|
|
95
64
|
// 仅对配置 scopes 匹配的会话参与回合生命周期,避免 onebot 等聊天平台为每条消息都创建空 checkpoint。
|
|
96
65
|
const isScopeEnabled = (platform, sessionType) => {
|
|
97
66
|
if (cfg.scopes.length === 0)
|
|
@@ -107,30 +76,27 @@ function run(caps) {
|
|
|
107
76
|
}
|
|
108
77
|
return false;
|
|
109
78
|
};
|
|
110
|
-
hooks.middleware('agent:input:before', async (data, next) => {
|
|
79
|
+
hooks.use.middleware('agent:input:before', async (data, next) => {
|
|
111
80
|
if (isScopeEnabled(data.message.platform, data.message.sessionType)) {
|
|
112
|
-
service.
|
|
81
|
+
await service.runTurn(data.turnId, data.message.sessionId, next);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
await next();
|
|
113
85
|
}
|
|
114
|
-
await next();
|
|
115
|
-
});
|
|
116
|
-
// agent:turn:after:回合结束(按 sessionId 提交该会话回合;无对应回合则直接 return)
|
|
117
|
-
hooks.middleware('agent:turn:after', async (data, next) => {
|
|
118
|
-
await next();
|
|
119
|
-
await service.endTurn(data.sessionId);
|
|
120
86
|
});
|
|
121
|
-
//
|
|
87
|
+
// 监听命令类工具调用,给调用所在的那一轮在清单里打 execUsed 标记:
|
|
122
88
|
// 这些工具的副作用(子进程改磁盘、装包、起服务)不经 storage,快照覆盖不到。
|
|
123
|
-
hooks.middleware('agent:tool:before', async (data, next) => {
|
|
89
|
+
hooks.use.middleware('agent:tool:before', async (data, next) => {
|
|
124
90
|
const name = data.name;
|
|
125
|
-
if (name === 'exec' || name
|
|
126
|
-
service.markExecUsed(
|
|
91
|
+
if (name === 'exec' || name.startsWith('run_')) {
|
|
92
|
+
service.markExecUsed();
|
|
127
93
|
}
|
|
128
94
|
await next();
|
|
129
95
|
});
|
|
130
96
|
// ──────────── 参与统一的 memory:clear ────────────
|
|
131
97
|
// /clear 与 session-manager.deleteSession 都通过 memory:clear hook 编排,
|
|
132
98
|
// 不监听的话 checkpoint 目录无人清理,长期泄漏。
|
|
133
|
-
hooks.middleware('memory:clear', async (data, next) => {
|
|
99
|
+
hooks.use.middleware('memory:clear', async (data, next) => {
|
|
134
100
|
if (data.types && !data.types.includes('checkpoint')) {
|
|
135
101
|
await next();
|
|
136
102
|
return;
|
|
@@ -166,8 +132,8 @@ function run(caps) {
|
|
|
166
132
|
}
|
|
167
133
|
await next();
|
|
168
134
|
});
|
|
169
|
-
//
|
|
170
|
-
lifecycle.onDispose(() => service.flushAll());
|
|
135
|
+
// 拆卸时提交所有还在跑的回合,避免崩溃/重载时丢失
|
|
136
|
+
lifecycle.use.onDispose(() => service.flushAll());
|
|
171
137
|
logger.info(`checkpoint 服务就绪 rootUri=${cfg.rootUri} maxFileSize=${cfg.maxFileSize} scopes=${cfg.scopes.join('|') || '<空>'}`);
|
|
172
138
|
}
|
|
173
139
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,97 +1,46 @@
|
|
|
1
|
+
import type { CheckpointService, RollbackResult, RollbackWithChatResult } from '@aalis/api-checkpoint';
|
|
1
2
|
import type { MemoryService } from '@aalis/api-memory';
|
|
2
3
|
import { type StorageService } from '@aalis/api-storage';
|
|
3
|
-
import type { Logger,
|
|
4
|
+
import type { Logger, ServiceSelection } from '@aalis/core';
|
|
4
5
|
import { type CheckpointConfig } from './config.js';
|
|
5
|
-
|
|
6
|
-
* Checkpoint 服务
|
|
7
|
-
*
|
|
8
|
-
* 在 LLM 一次回合(assistant turn)期间记录受控存储中的写入/删除/重命名操作(data / tmp / pluginData /
|
|
9
|
-
* logs 这几类共享根与临时根除外,见 beforeMutate),
|
|
10
|
-
* 在改动发生前自动备份原始文件内容,使用户可以从 WebUI 一键回滚整轮操作。
|
|
11
|
-
*
|
|
12
|
-
* 协作模型:
|
|
13
|
-
* - plugin-storage-local 在执行 writeFile/delete/rename 之前先探测 checkpoint 服务,
|
|
14
|
-
* 在场就调它的 `beforeMutate(...)` 留一次快照机会。
|
|
15
|
-
* - 本服务通过 hooks `agent:input:before` / `agent:turn:after` 维护「当前回合」状态。
|
|
16
|
-
* - exec / exec_background / run_* 等命令类工具直接调用系统命令,不在本服务保护范围内
|
|
17
|
-
* (前端 UI 标注「未保护」)。
|
|
18
|
-
*/
|
|
19
|
-
export interface CheckpointService {
|
|
20
|
-
/** 探测:是否在某个回合内(storage-local 提早判断以避免无谓 stat) */
|
|
21
|
-
isActive(): boolean;
|
|
22
|
-
/**
|
|
23
|
-
* 在 storage 即将修改 uri 时调用。本调用是 op="write"|"delete"|"rename" 之前的一次性快照机会。
|
|
24
|
-
* 如果同一 uri 在当前回合内已被快照过,则不再备份内容(保留最早的原始内容);
|
|
25
|
-
* 但 op='rename' 仍会补记一条不带 blob 的条目,否则「先改写再移走」的移动会整条丢失。
|
|
26
|
-
* loadOriginal 是按需读取原始内容的闭包;首次需要快照时才调用。
|
|
27
|
-
* toUri 仅 op='rename' 有意义:改动后的目标 URI,回滚时据它把文件原路移回
|
|
28
|
-
* (缺省则退化为「只把原内容写回源路径」,目标端会留一份重复)。
|
|
29
|
-
*/
|
|
30
|
-
beforeMutate(uri: string, op: 'write' | 'delete' | 'rename', loadOriginal: () => Promise<{
|
|
31
|
-
data: Buffer;
|
|
32
|
-
size: number;
|
|
33
|
-
} | null>, toUri?: string): Promise<void>;
|
|
34
|
-
/** 列出某个 session 的所有回合 checkpoint */
|
|
35
|
-
listTurns(sessionId: string): Promise<TurnSummary[]>;
|
|
36
|
-
/** 读取某回合 manifest */
|
|
37
|
-
getManifest(sessionId: string, turnId: string): Promise<TurnManifest | null>;
|
|
38
|
-
/** 回滚某回合(恢复 / 删除 / 重命名复原)。返回受影响文件计数 */
|
|
39
|
-
rollback(sessionId: string, turnId: string): Promise<RollbackResult>;
|
|
40
|
-
/** 回滚某回合并同步删除本轮对话消息与向量条目 */
|
|
41
|
-
rollbackWithChat(sessionId: string, turnId: string): Promise<RollbackWithChatResult>;
|
|
42
|
-
/** 清除某会话的所有 checkpoint(/clear 与 deleteSession 调用)。幂等;不存在也返回 0。 */
|
|
43
|
-
clearSession(sessionId: string): Promise<number>;
|
|
44
|
-
/** 清除全部 checkpoint(/clear all 调用)。幂等。 */
|
|
45
|
-
clearAll(): Promise<number>;
|
|
46
|
-
}
|
|
47
|
-
export interface CheckpointFileRecord {
|
|
6
|
+
interface CheckpointFileRecord {
|
|
48
7
|
uri: string;
|
|
49
|
-
/** write=覆盖已有, write-new=新创建, delete=删除, rename
|
|
8
|
+
/** write=覆盖已有, write-new=新创建, delete=删除, rename=改名或移动 */
|
|
50
9
|
action: 'write' | 'write-new' | 'delete' | 'rename';
|
|
51
|
-
/** rename 的目标 URI
|
|
10
|
+
/** rename 的目标 URI(回滚时原路移回;存储实现没给目标时缺省) */
|
|
52
11
|
toUri?: string;
|
|
53
|
-
/**
|
|
12
|
+
/** 原始大小(有快照时) */
|
|
54
13
|
originalSize?: number;
|
|
55
|
-
/**
|
|
14
|
+
/** 备份文件名(相对于回合目录) */
|
|
56
15
|
blob?: string;
|
|
57
|
-
/**
|
|
16
|
+
/** 没有备份的原因(过大、读取失败、目录等),这一条不可回滚 */
|
|
58
17
|
skipped?: string;
|
|
59
18
|
}
|
|
19
|
+
/** 一轮的清单,提交时落盘为回合目录下的 manifest.json */
|
|
60
20
|
export interface TurnManifest {
|
|
21
|
+
/** 回合 id,与 agent 的回合 id 相同 */
|
|
61
22
|
turnId: string;
|
|
62
23
|
sessionId: string;
|
|
63
24
|
startedAt: number;
|
|
64
25
|
endedAt?: number;
|
|
65
26
|
files: CheckpointFileRecord[];
|
|
66
|
-
/**
|
|
27
|
+
/** 这一轮对话消息的时间戳,rollbackWithChat 据此删除消息与向量条目 */
|
|
67
28
|
messageTimestamps?: number[];
|
|
29
|
+
/** 这一轮调用过 exec / run_* 等命令类工具:它们的副作用不经存储,回滚覆盖不到 */
|
|
30
|
+
execUsed?: boolean;
|
|
68
31
|
}
|
|
69
|
-
|
|
32
|
+
/** 回合列表的一行(listTurns) */
|
|
33
|
+
interface TurnSummary {
|
|
70
34
|
turnId: string;
|
|
71
35
|
sessionId: string;
|
|
72
36
|
startedAt: number;
|
|
73
37
|
endedAt?: number;
|
|
74
38
|
fileCount: number;
|
|
75
|
-
/**
|
|
39
|
+
/** 见 {@link TurnManifest.execUsed} */
|
|
76
40
|
execUsed?: boolean;
|
|
77
|
-
/**
|
|
41
|
+
/** 前 3 个文件的 URI */
|
|
78
42
|
filesPreview: string[];
|
|
79
43
|
}
|
|
80
|
-
export interface RollbackResult {
|
|
81
|
-
ok: boolean;
|
|
82
|
-
restored: string[];
|
|
83
|
-
deleted: string[];
|
|
84
|
-
errors: Array<{
|
|
85
|
-
uri: string;
|
|
86
|
-
reason: string;
|
|
87
|
-
}>;
|
|
88
|
-
}
|
|
89
|
-
export interface RollbackWithChatResult extends RollbackResult {
|
|
90
|
-
/** 实际从 memory 中删除的消息条数 */
|
|
91
|
-
deletedMessages: number;
|
|
92
|
-
/** chat 删除是否成功;若失败,errors 也会记录原因 */
|
|
93
|
-
chatDeleted: boolean;
|
|
94
|
-
}
|
|
95
44
|
interface ServiceConfig {
|
|
96
45
|
rootUri: string;
|
|
97
46
|
maxFileSize: number;
|
|
@@ -99,49 +48,78 @@ interface ServiceConfig {
|
|
|
99
48
|
scopes: string[];
|
|
100
49
|
}
|
|
101
50
|
/**
|
|
102
|
-
*
|
|
51
|
+
* Checkpoint 服务实现
|
|
52
|
+
*
|
|
53
|
+
* 在一轮对话期间记录受控存储中的写入/删除/重命名操作(data / tmp / cache / pluginData /
|
|
54
|
+
* logs / paper / public / self 这几类共享根、临时根、白纸根、公开根与 self 根除外,见 beforeMutate),
|
|
55
|
+
* 在改动发生前自动备份原始文件内容,使用户可以一键回滚整轮操作。
|
|
56
|
+
*
|
|
57
|
+
* 协作模型:
|
|
58
|
+
* - plugin-storage-local 在执行 writeFile/delete/rename 之前先探测 checkpoint 服务,
|
|
59
|
+
* 在场就调它的 `beforeMutate(...)` 留一次快照机会。
|
|
60
|
+
* - 本插件在 `agent:input:before` 里用 agent 给的 turnId 把这一轮包进 `runTurn`:回合的异步上下文里发生的改动
|
|
61
|
+
* 记进这一轮,回合跑完(含被下游拦下、出错)即提交。
|
|
62
|
+
* - exec / run_* 等命令类工具直接调用系统命令,不在本服务保护范围内
|
|
63
|
+
* (前端 UI 标注「未保护」)。
|
|
103
64
|
*/
|
|
104
65
|
export declare class CheckpointServiceImpl implements CheckpointService {
|
|
105
66
|
private readonly cfg;
|
|
106
67
|
private readonly logger;
|
|
107
68
|
private readonly storage;
|
|
108
69
|
/**
|
|
109
|
-
*
|
|
110
|
-
*
|
|
70
|
+
* 进行中的回合,按 turnId 记。同一会话可以同时有几轮在跑(agent 按会话加来源分 lane),
|
|
71
|
+
* 改动按写入时所在的异步上下文归属到其中一轮,见 {@link scope}。
|
|
111
72
|
*/
|
|
112
|
-
private turns;
|
|
113
|
-
/**
|
|
114
|
-
private readonly
|
|
73
|
+
private readonly turns;
|
|
74
|
+
/** 回合的异步上下文:runTurn 里跑的一切(钩子、工具、它们触发的存储写入)都带着这一轮 */
|
|
75
|
+
private readonly scope;
|
|
115
76
|
/** 读失败的告警记录:位置(会话目录或 manifest URI)→ 已告警过的原因 */
|
|
116
77
|
private readonly readFailures;
|
|
117
78
|
constructor(cfg: ServiceConfig, logger: Logger, storage: StorageService);
|
|
118
|
-
|
|
119
|
-
|
|
79
|
+
/**
|
|
80
|
+
* 在一轮里跑 fn:fn 的异步上下文里发生的存储改动记进这一轮,fn 结束(含抛错)即提交。
|
|
81
|
+
* 开始与结束在同一次调用里配对,同一会话并发的几轮互不结束对方。提交失败只告警:回复已经发出,
|
|
82
|
+
* 这一轮只是不能回滚。
|
|
83
|
+
*/
|
|
84
|
+
runTurn<T>(turnId: string, sessionId: string, fn: () => Promise<T>): Promise<T>;
|
|
120
85
|
/** 进程退出前提交所有活跃回合,避免未结束回合丢失。 */
|
|
121
86
|
flushAll(): Promise<void>;
|
|
122
87
|
/** 提交一个回合:补 endedAt + 抓消息时间戳 + 落盘 manifest + 触发 GC。无改动则跳过。 */
|
|
123
88
|
private commitTurn;
|
|
124
|
-
/**
|
|
125
|
-
|
|
126
|
-
|
|
89
|
+
/**
|
|
90
|
+
* 调用所在的那一轮:异步上下文带着的回合还没结束才算。回合里起的异步任务可能在回合提交之后才写入,
|
|
91
|
+
* 它们仍带着这一轮的上下文,但改动已不属于任何一轮。
|
|
92
|
+
*/
|
|
93
|
+
private currentTurn;
|
|
94
|
+
/** 标记调用所在的那一轮调用过 exec / run_* 等命令类工具:记进清单的 execUsed */
|
|
95
|
+
markExecUsed(): void;
|
|
127
96
|
beforeMutate(uri: string, op: 'write' | 'delete' | 'rename', loadOriginal: () => Promise<{
|
|
128
97
|
data: Buffer;
|
|
129
98
|
size: number;
|
|
130
99
|
} | null>, toUri?: string): Promise<void>;
|
|
100
|
+
execUsed(sessionId: string, turnId: string): Promise<boolean>;
|
|
131
101
|
listTurns(sessionId: string): Promise<TurnSummary[]>;
|
|
102
|
+
/** 某会话已提交回合的清单,读不出来的回合跳过(并留痕) */
|
|
103
|
+
private manifests;
|
|
132
104
|
getManifest(sessionId: string, turnId: string): Promise<TurnManifest | null>;
|
|
133
105
|
/**
|
|
134
|
-
*
|
|
135
|
-
* storage 不在线或 manifest
|
|
106
|
+
* 读失败留痕:「不存在」不算失败;其它原因告警,但同一位置同一原因只记一次——每次回滚都要读这个会话的全部清单,
|
|
107
|
+
* storage 不在线或 manifest 损坏时不能每次都记一条。读通(或确认不存在)即清掉记录,之后再失败会再记。
|
|
136
108
|
*/
|
|
137
109
|
private readFailed;
|
|
138
110
|
rollback(sessionId: string, turnId: string): Promise<RollbackResult>;
|
|
111
|
+
/**
|
|
112
|
+
* 这一轮改过、同一会话里另有回合也改过的文件(含移动的目标端),见 RollbackResult.alsoChangedBy。
|
|
113
|
+
* 在这一轮开始前就已结束的回合不算;已提交的与还在跑的回合都算。时间戳只到毫秒,结束与开始落在同一毫秒的
|
|
114
|
+
* 分不出先后,按算处理:多列一轮只是多一句如实的提示,漏列会让回滚悄悄撤掉别人的改动。
|
|
115
|
+
*/
|
|
116
|
+
private alsoChangedBy;
|
|
139
117
|
private _memory?;
|
|
140
118
|
private _emitMessagesDeleted?;
|
|
141
119
|
private _emitHistoryChanged?;
|
|
142
120
|
/** 注入聊天回滚所需的依赖:memory 引用(每次用时解析当前提供者)+ 事件发出器 */
|
|
143
121
|
setChatRollbackDeps(deps: {
|
|
144
|
-
memory:
|
|
122
|
+
memory: ServiceSelection<MemoryService>;
|
|
145
123
|
emitMessagesDeleted: (sessionId: string, timestamps: number[]) => void;
|
|
146
124
|
emitHistoryChanged: (sessionId: string) => void;
|
|
147
125
|
}): void;
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/dist/service.js
CHANGED
|
@@ -1,21 +1,49 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
1
2
|
import { isStorageNotFound, isStorageUri } from '@aalis/api-storage';
|
|
2
3
|
import { configSchema } from './config.js';
|
|
3
|
-
/** 不记账的根类型:多会话/多平台共享写入区(data、pluginData、logs)与回合结束前就清掉的临时目录(tmp)。 */
|
|
4
|
-
const UNPROTECTED_ROOT_KINDS = new Set(['data', 'tmp', 'pluginData', 'logs']);
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
5
|
+
* 不记账的根类型:多会话/多平台共享写入区(data、pluginData、logs)、回合结束前就清掉的临时目录与缓存(tmp、cache),
|
|
6
|
+
* 白纸根(paper:枢纽在任意会话的回合进行中写入远端成品,记进那一轮的话回滚会删掉无关的成品),
|
|
7
|
+
* 公开根(public:发布服务在审核结束、裁决与撤下时写删已发布的作品,同样不属于当时进行中的回合),
|
|
8
|
+
* 以及 self 下的人设卡、技能、编排定义根(self):现在任何会话都能经工具写技能、人设,写入没有会话归属,
|
|
9
|
+
* 与 data 同理不记账;等访问层限定只有 owner 的干净线程能写 self 之后,再按计划书给它记账。
|
|
10
|
+
*/
|
|
11
|
+
const UNPROTECTED_ROOT_KINDS = new Set([
|
|
12
|
+
'data',
|
|
13
|
+
'tmp',
|
|
14
|
+
'cache',
|
|
15
|
+
'pluginData',
|
|
16
|
+
'logs',
|
|
17
|
+
'paper',
|
|
18
|
+
'public',
|
|
19
|
+
'self',
|
|
20
|
+
]);
|
|
21
|
+
/**
|
|
22
|
+
* Checkpoint 服务实现
|
|
23
|
+
*
|
|
24
|
+
* 在一轮对话期间记录受控存储中的写入/删除/重命名操作(data / tmp / cache / pluginData /
|
|
25
|
+
* logs / paper / public / self 这几类共享根、临时根、白纸根、公开根与 self 根除外,见 beforeMutate),
|
|
26
|
+
* 在改动发生前自动备份原始文件内容,使用户可以一键回滚整轮操作。
|
|
27
|
+
*
|
|
28
|
+
* 协作模型:
|
|
29
|
+
* - plugin-storage-local 在执行 writeFile/delete/rename 之前先探测 checkpoint 服务,
|
|
30
|
+
* 在场就调它的 `beforeMutate(...)` 留一次快照机会。
|
|
31
|
+
* - 本插件在 `agent:input:before` 里用 agent 给的 turnId 把这一轮包进 `runTurn`:回合的异步上下文里发生的改动
|
|
32
|
+
* 记进这一轮,回合跑完(含被下游拦下、出错)即提交。
|
|
33
|
+
* - exec / run_* 等命令类工具直接调用系统命令,不在本服务保护范围内
|
|
34
|
+
* (前端 UI 标注「未保护」)。
|
|
7
35
|
*/
|
|
8
36
|
export class CheckpointServiceImpl {
|
|
9
37
|
cfg;
|
|
10
38
|
logger;
|
|
11
39
|
storage;
|
|
12
40
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
41
|
+
* 进行中的回合,按 turnId 记。同一会话可以同时有几轮在跑(agent 按会话加来源分 lane),
|
|
42
|
+
* 改动按写入时所在的异步上下文归属到其中一轮,见 {@link scope}。
|
|
15
43
|
*/
|
|
16
44
|
turns = new Map();
|
|
17
|
-
/**
|
|
18
|
-
|
|
45
|
+
/** 回合的异步上下文:runTurn 里跑的一切(钩子、工具、它们触发的存储写入)都带着这一轮 */
|
|
46
|
+
scope = new AsyncLocalStorage();
|
|
19
47
|
/** 读失败的告警记录:位置(会话目录或 manifest URI)→ 已告警过的原因 */
|
|
20
48
|
readFailures = new Map();
|
|
21
49
|
constructor(cfg, logger, storage) {
|
|
@@ -24,27 +52,29 @@ export class CheckpointServiceImpl {
|
|
|
24
52
|
this.storage = storage;
|
|
25
53
|
}
|
|
26
54
|
// ──────────── 生命周期 ────────────
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const turnId = crypto.randomUUID();
|
|
35
|
-
this.turns.set(sessionId, {
|
|
55
|
+
/**
|
|
56
|
+
* 在一轮里跑 fn:fn 的异步上下文里发生的存储改动记进这一轮,fn 结束(含抛错)即提交。
|
|
57
|
+
* 开始与结束在同一次调用里配对,同一会话并发的几轮互不结束对方。提交失败只告警:回复已经发出,
|
|
58
|
+
* 这一轮只是不能回滚。
|
|
59
|
+
*/
|
|
60
|
+
async runTurn(turnId, sessionId, fn) {
|
|
61
|
+
const turn = {
|
|
36
62
|
manifest: { turnId, sessionId, startedAt: Date.now(), files: [] },
|
|
37
63
|
snapshotted: new Set(),
|
|
38
64
|
blobIndex: 0,
|
|
39
|
-
}
|
|
65
|
+
};
|
|
66
|
+
this.turns.set(turnId, turn);
|
|
40
67
|
this.logger.debug(`checkpoint 回合开始 ${sessionId} turn=${turnId}`);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
68
|
+
try {
|
|
69
|
+
return await this.scope.run(turn, fn);
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
// flushAll 可能已经提交过它(拆卸时回合还在跑)
|
|
73
|
+
if (this.turns.get(turnId) === turn) {
|
|
74
|
+
this.turns.delete(turnId);
|
|
75
|
+
await this.commitTurn(turn).catch(err => this.logger.warn(`checkpoint 提交回合失败: ${err.message}`));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
48
78
|
}
|
|
49
79
|
/** 进程退出前提交所有活跃回合,避免未结束回合丢失。 */
|
|
50
80
|
async flushAll() {
|
|
@@ -59,7 +89,7 @@ export class CheckpointServiceImpl {
|
|
|
59
89
|
const m = turn.manifest;
|
|
60
90
|
m.endedAt = Date.now();
|
|
61
91
|
// 在持久化前抓取本轮对话的消息时间戳(供 rollbackWithChat 使用);即使无文件改动,只要有消息就持久化
|
|
62
|
-
const memory = this._memory?.
|
|
92
|
+
const memory = this._memory?.present ? this._memory.use : undefined;
|
|
63
93
|
if (memory && typeof memory.getMessagesBySessionRange === 'function') {
|
|
64
94
|
try {
|
|
65
95
|
// 宽松边界 200ms,用于容纳 archiveIncoming/saveMessage 时钟偏差
|
|
@@ -79,45 +109,50 @@ export class CheckpointServiceImpl {
|
|
|
79
109
|
this.logger.info(`checkpoint 回合提交 turn=${m.turnId} 文件数=${m.files.length}`);
|
|
80
110
|
this.gc().catch(err => this.logger.warn(`checkpoint GC 失败: ${err.message}`));
|
|
81
111
|
}
|
|
82
|
-
/**
|
|
83
|
-
|
|
84
|
-
|
|
112
|
+
/**
|
|
113
|
+
* 调用所在的那一轮:异步上下文带着的回合还没结束才算。回合里起的异步任务可能在回合提交之后才写入,
|
|
114
|
+
* 它们仍带着这一轮的上下文,但改动已不属于任何一轮。
|
|
115
|
+
*/
|
|
116
|
+
currentTurn() {
|
|
117
|
+
const turn = this.scope.getStore();
|
|
118
|
+
return turn && this.turns.get(turn.manifest.turnId) === turn ? turn : undefined;
|
|
119
|
+
}
|
|
120
|
+
/** 标记调用所在的那一轮调用过 exec / run_* 等命令类工具:记进清单的 execUsed */
|
|
121
|
+
markExecUsed() {
|
|
122
|
+
const turn = this.currentTurn();
|
|
85
123
|
if (turn)
|
|
86
124
|
turn.manifest.execUsed = true;
|
|
87
125
|
}
|
|
88
126
|
// ──────────── beforeMutate ────────────
|
|
89
|
-
isActive() {
|
|
90
|
-
return this.turns.size > 0;
|
|
91
|
-
}
|
|
92
127
|
async beforeMutate(uri, op, loadOriginal, toUri) {
|
|
128
|
+
// 只记进写入所在的那一轮。回合外的改动(WebUI 发起的回滚、别的插件在后台的写入)不属于任何一轮,
|
|
129
|
+
// 存储每次写入都会调到这里,回合外的写入先在这一步返回
|
|
130
|
+
const turn = this.currentTurn();
|
|
131
|
+
if (!turn)
|
|
132
|
+
return;
|
|
93
133
|
// 自身根下的写入(blob / manifest)不快照:storage 的写前钩子会把它们递归送回这里,
|
|
94
134
|
// 而 blob 此刻在磁盘上尚不存在 → 会给自己记一条 write-new 假账,且排在真实条目之前,
|
|
95
135
|
// 回滚时先删备份再读同一 blob → ENOENT,覆盖/删除类恢复必败。
|
|
96
136
|
if (this.isOwnUri(uri))
|
|
97
137
|
return;
|
|
98
138
|
// data / pluginData / logs 是多会话、多平台共享的写入区:既有别处落盘的附件与插件状态,也有本回合自己
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
//
|
|
139
|
+
// 经工具产生的图片,回滚这些会误删别人刚落盘的文件、把插件状态写回旧版,故整根不记账(这些改动不可回滚);
|
|
140
|
+
// self 根(skill / persona / 编排定义)现在任何会话都能写,同理不记账;
|
|
141
|
+
// tmp、cache 是回合结束前就清掉的临时目录与缓存,记账只会让回滚必报 ENOENT;paper 是白纸根,枢纽在任意会话的回合进行中写入远端成品,
|
|
142
|
+
// public 是公开根,发布服务在审核结束、裁决与撤下时写删已发布的作品,这些写入都不属于那一轮。
|
|
143
|
+
// 其余根(workspace 与用户自建的 custom 等)照常记账。
|
|
102
144
|
if (this.isUnprotectedRootUri(uri))
|
|
103
145
|
return;
|
|
104
|
-
// 回滚自身的改动不是任何回合的改动:记进其它会话的活跃回合,那边一回滚就把这次回滚再撤掉
|
|
105
|
-
if (this.rollingBack.has(uri))
|
|
106
|
-
return;
|
|
107
146
|
// 去重按 uri,但 rename 不能因此被吞掉:同一回合里「先 write/改写 f,再把 f 移走」时,
|
|
108
147
|
// f 已快照过 → 移动整条不入账 → 回滚照 write 条目去写/删源端(ENOENT),文件还留在目标端。
|
|
109
|
-
//
|
|
148
|
+
// 对这种回合补记一条不带 blob 的 rename(内容已由更早的条目备份,不重复备份):
|
|
110
149
|
// LIFO 回滚先由它把目标移回源端,再由更早的 write/write-new 条目恢复原文或删除。
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (targets.length === 0)
|
|
118
|
-
return; // 回合外,或都已补记/快照过
|
|
119
|
-
for (const t of targets)
|
|
120
|
-
t.snapshotted.add(uri);
|
|
150
|
+
if (turn.snapshotted.has(uri)) {
|
|
151
|
+
if (op === 'rename' && toUri)
|
|
152
|
+
turn.manifest.files.push({ uri, action: 'rename', toUri });
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
turn.snapshotted.add(uri);
|
|
121
156
|
let original = null;
|
|
122
157
|
// 「读不出来」必须与「本就不存在」区分:前者记成 write-new 的话,回滚会把一个回合
|
|
123
158
|
// 开始前就存在、且没有备份的文件直接删掉(rollback 的 write-new 分支无条件删除)。
|
|
@@ -129,53 +164,68 @@ export class CheckpointServiceImpl {
|
|
|
129
164
|
loadFailed = true;
|
|
130
165
|
this.logger.warn(`checkpoint 加载原文件失败 ${uri}: ${err.message}`);
|
|
131
166
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (!
|
|
138
|
-
|
|
139
|
-
t.manifest.files.push({ uri, action: 'write-new' });
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
// 读取失败的 write 记成 'write' + skipped:回滚时落到 skipped 分支如实报
|
|
143
|
-
// 「不可回滚」并计入 errors,而不是当作本回合新建删掉。
|
|
144
|
-
t.manifest.files.push({
|
|
145
|
-
uri,
|
|
146
|
-
action: op,
|
|
147
|
-
toUri,
|
|
148
|
-
skipped: loadFailed ? '未快照(原文件读取失败,不可回滚)' : '未快照(目录或读取失败)',
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
continue;
|
|
167
|
+
// 情况 1:write 且原文件不存在 → 标记为新创建(回滚时需要删除);
|
|
168
|
+
// 情况 2:delete/rename 拿不到内容(目录,或读取失败)→ 仍要记一条:
|
|
169
|
+
// 否则目录递归删除零记录,UI 却照样渲染「回滚本轮对话(含文件)」并报回滚完成。
|
|
170
|
+
// rename 有 toUri 时回滚仍能原路移回;delete 则如实标为不可回滚。
|
|
171
|
+
if (!original) {
|
|
172
|
+
if (op === 'write' && !loadFailed) {
|
|
173
|
+
turn.manifest.files.push({ uri, action: 'write-new' });
|
|
152
174
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
175
|
+
else {
|
|
176
|
+
// 读取失败的 write 记成 'write' + skipped:回滚时落到 skipped 分支如实报
|
|
177
|
+
// 「不可回滚」并计入 errors,而不是当作本回合新建删掉。
|
|
178
|
+
turn.manifest.files.push({
|
|
156
179
|
uri,
|
|
157
180
|
action: op,
|
|
158
181
|
toUri,
|
|
159
|
-
|
|
160
|
-
skipped: `文件过大 (${original.size} > ${this.cfg.maxFileSize})`,
|
|
182
|
+
skipped: loadFailed ? '未快照(原文件读取失败,不可回滚)' : '未快照(目录或读取失败)',
|
|
161
183
|
});
|
|
162
|
-
continue;
|
|
163
184
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
// 情况 3:过大 → 跳过快照但记录为「skipped」
|
|
188
|
+
if (original.size > this.cfg.maxFileSize) {
|
|
189
|
+
turn.manifest.files.push({
|
|
169
190
|
uri,
|
|
170
191
|
action: op,
|
|
171
192
|
toUri,
|
|
172
193
|
originalSize: original.size,
|
|
173
|
-
|
|
194
|
+
skipped: `文件过大 (${original.size} > ${this.cfg.maxFileSize})`,
|
|
174
195
|
});
|
|
196
|
+
return;
|
|
175
197
|
}
|
|
198
|
+
// 情况 4:正常快照
|
|
199
|
+
const blobName = `${turn.blobIndex++}.bin`;
|
|
200
|
+
const turnDir = this.turnDir(turn.manifest.sessionId, turn.manifest.turnId);
|
|
201
|
+
await this.storage.writeFile(joinUri(turnDir, `blobs/${blobName}`), original.data);
|
|
202
|
+
turn.manifest.files.push({
|
|
203
|
+
uri,
|
|
204
|
+
action: op,
|
|
205
|
+
toUri,
|
|
206
|
+
originalSize: original.size,
|
|
207
|
+
blob: blobName,
|
|
208
|
+
});
|
|
176
209
|
}
|
|
177
210
|
// ──────────── 查询 ────────────
|
|
211
|
+
async execUsed(sessionId, turnId) {
|
|
212
|
+
return (await this.getManifest(sessionId, turnId))?.execUsed === true;
|
|
213
|
+
}
|
|
178
214
|
async listTurns(sessionId) {
|
|
215
|
+
const summaries = (await this.manifests(sessionId)).map(manifest => ({
|
|
216
|
+
turnId: manifest.turnId,
|
|
217
|
+
sessionId: manifest.sessionId,
|
|
218
|
+
startedAt: manifest.startedAt,
|
|
219
|
+
endedAt: manifest.endedAt,
|
|
220
|
+
fileCount: manifest.files.length,
|
|
221
|
+
execUsed: manifest.execUsed,
|
|
222
|
+
filesPreview: manifest.files.slice(0, 3).map(f => f.uri),
|
|
223
|
+
}));
|
|
224
|
+
summaries.sort((a, b) => b.startedAt - a.startedAt);
|
|
225
|
+
return summaries;
|
|
226
|
+
}
|
|
227
|
+
/** 某会话已提交回合的清单,读不出来的回合跳过(并留痕) */
|
|
228
|
+
async manifests(sessionId) {
|
|
179
229
|
const sessionDir = joinUri(this.cfg.rootUri, encodeSegment(sessionId));
|
|
180
230
|
let entries;
|
|
181
231
|
try {
|
|
@@ -188,23 +238,13 @@ export class CheckpointServiceImpl {
|
|
|
188
238
|
return [];
|
|
189
239
|
}
|
|
190
240
|
this.readFailures.delete(sessionDir);
|
|
191
|
-
const
|
|
241
|
+
const manifests = [];
|
|
192
242
|
for (const turnId of entries) {
|
|
193
243
|
const manifest = await this.getManifest(sessionId, turnId);
|
|
194
|
-
if (
|
|
195
|
-
|
|
196
|
-
summaries.push({
|
|
197
|
-
turnId: manifest.turnId,
|
|
198
|
-
sessionId: manifest.sessionId,
|
|
199
|
-
startedAt: manifest.startedAt,
|
|
200
|
-
endedAt: manifest.endedAt,
|
|
201
|
-
fileCount: manifest.files.length,
|
|
202
|
-
execUsed: manifest.execUsed,
|
|
203
|
-
filesPreview: manifest.files.slice(0, 3).map(f => f.uri),
|
|
204
|
-
});
|
|
244
|
+
if (manifest)
|
|
245
|
+
manifests.push(manifest);
|
|
205
246
|
}
|
|
206
|
-
|
|
207
|
-
return summaries;
|
|
247
|
+
return manifests;
|
|
208
248
|
}
|
|
209
249
|
async getManifest(sessionId, turnId) {
|
|
210
250
|
const uri = joinUri(this.turnDir(sessionId, turnId), 'manifest.json');
|
|
@@ -215,14 +255,14 @@ export class CheckpointServiceImpl {
|
|
|
215
255
|
return manifest;
|
|
216
256
|
}
|
|
217
257
|
catch (err) {
|
|
218
|
-
//
|
|
258
|
+
// 不向上抛:回滚算 alsoChangedBy 时 manifests() 逐个读全会话的清单,一个坏 manifest 不能拖垮回滚。读失败与损坏要留痕
|
|
219
259
|
this.readFailed(uri, '读取 manifest 失败', err);
|
|
220
260
|
return null;
|
|
221
261
|
}
|
|
222
262
|
}
|
|
223
263
|
/**
|
|
224
|
-
*
|
|
225
|
-
* storage 不在线或 manifest
|
|
264
|
+
* 读失败留痕:「不存在」不算失败;其它原因告警,但同一位置同一原因只记一次——每次回滚都要读这个会话的全部清单,
|
|
265
|
+
* storage 不在线或 manifest 损坏时不能每次都记一条。读通(或确认不存在)即清掉记录,之后再失败会再记。
|
|
226
266
|
*/
|
|
227
267
|
readFailed(location, what, err) {
|
|
228
268
|
if (isStorageNotFound(err)) {
|
|
@@ -239,17 +279,26 @@ export class CheckpointServiceImpl {
|
|
|
239
279
|
async rollback(sessionId, turnId) {
|
|
240
280
|
const manifest = await this.getManifest(sessionId, turnId);
|
|
241
281
|
if (!manifest) {
|
|
242
|
-
return {
|
|
282
|
+
return {
|
|
283
|
+
ok: false,
|
|
284
|
+
restored: [],
|
|
285
|
+
deleted: [],
|
|
286
|
+
errors: [{ uri: '', reason: 'checkpoint 不存在' }],
|
|
287
|
+
alsoChangedBy: [],
|
|
288
|
+
};
|
|
243
289
|
}
|
|
244
|
-
const result = {
|
|
290
|
+
const result = {
|
|
291
|
+
ok: true,
|
|
292
|
+
restored: [],
|
|
293
|
+
deleted: [],
|
|
294
|
+
errors: [],
|
|
295
|
+
alsoChangedBy: await this.alsoChangedBy(manifest),
|
|
296
|
+
};
|
|
245
297
|
const turnDir = this.turnDir(sessionId, turnId);
|
|
246
298
|
// 逆序撤销(LIFO):同回合内后发生的改动先回退,否则先前条目的复原会被后来条目再次覆盖。
|
|
247
299
|
// 例:`move a.txt -> b.txt` 后又改写 b.txt,正序回滚先把 b 移回 a,再把 b 的快照写回,
|
|
248
300
|
// b.txt 又冒出来;逆序则先把 b 还原成改写前内容,再整体移回 a,磁盘回到回合开始的样子。
|
|
249
301
|
for (const file of [...manifest.files].reverse()) {
|
|
250
|
-
this.rollingBack.add(file.uri);
|
|
251
|
-
if (file.toUri)
|
|
252
|
-
this.rollingBack.add(file.toUri);
|
|
253
302
|
try {
|
|
254
303
|
if (file.action === 'write-new') {
|
|
255
304
|
// 新创建的文件 → 删除。已不存在即期望状态已达成(本回合新建后又删掉:delete 条目被按 URI
|
|
@@ -306,16 +355,27 @@ export class CheckpointServiceImpl {
|
|
|
306
355
|
catch (err) {
|
|
307
356
|
result.errors.push({ uri: file.uri, reason: err.message });
|
|
308
357
|
}
|
|
309
|
-
finally {
|
|
310
|
-
this.rollingBack.delete(file.uri);
|
|
311
|
-
if (file.toUri)
|
|
312
|
-
this.rollingBack.delete(file.toUri);
|
|
313
|
-
}
|
|
314
358
|
}
|
|
315
359
|
if (result.errors.length > 0)
|
|
316
360
|
result.ok = false;
|
|
317
361
|
return result;
|
|
318
362
|
}
|
|
363
|
+
/**
|
|
364
|
+
* 这一轮改过、同一会话里另有回合也改过的文件(含移动的目标端),见 RollbackResult.alsoChangedBy。
|
|
365
|
+
* 在这一轮开始前就已结束的回合不算;已提交的与还在跑的回合都算。时间戳只到毫秒,结束与开始落在同一毫秒的
|
|
366
|
+
* 分不出先后,按算处理:多列一轮只是多一句如实的提示,漏列会让回滚悄悄撤掉别人的改动。
|
|
367
|
+
*/
|
|
368
|
+
async alsoChangedBy(target) {
|
|
369
|
+
const touched = (m) => new Set(m.files.flatMap(f => (f.toUri ? [f.uri, f.toUri] : [f.uri])));
|
|
370
|
+
const running = [...this.turns.values()].map(t => t.manifest).filter(m => m.sessionId === target.sessionId);
|
|
371
|
+
const others = [...(await this.manifests(target.sessionId)), ...running]
|
|
372
|
+
.filter(m => m.turnId !== target.turnId && !(m.endedAt !== undefined && m.endedAt < target.startedAt))
|
|
373
|
+
.sort((a, b) => a.startedAt - b.startedAt)
|
|
374
|
+
.map(m => ({ turnId: m.turnId, uris: touched(m) }));
|
|
375
|
+
return [...touched(target)]
|
|
376
|
+
.map(uri => ({ uri, turnIds: others.filter(o => o.uris.has(uri)).map(o => o.turnId) }))
|
|
377
|
+
.filter(entry => entry.turnIds.length > 0);
|
|
378
|
+
}
|
|
319
379
|
// ──────────── 聊天回滚依赖注入 ────────────
|
|
320
380
|
_memory;
|
|
321
381
|
_emitMessagesDeleted;
|
|
@@ -334,6 +394,7 @@ export class CheckpointServiceImpl {
|
|
|
334
394
|
restored: [],
|
|
335
395
|
deleted: [],
|
|
336
396
|
errors: [{ uri: '', reason: 'checkpoint 不存在' }],
|
|
397
|
+
alsoChangedBy: [],
|
|
337
398
|
deletedMessages: 0,
|
|
338
399
|
chatDeleted: false,
|
|
339
400
|
};
|
|
@@ -351,7 +412,7 @@ export class CheckpointServiceImpl {
|
|
|
351
412
|
result.chatDeleted = true;
|
|
352
413
|
return result;
|
|
353
414
|
}
|
|
354
|
-
const memory = this._memory?.
|
|
415
|
+
const memory = this._memory?.present ? this._memory.use : undefined;
|
|
355
416
|
if (!memory || typeof memory.deleteMessagesByTimestamps !== 'function') {
|
|
356
417
|
result.errors.push({ uri: '', reason: '当前 memory 后端不支持 deleteMessagesByTimestamps' });
|
|
357
418
|
result.ok = false;
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAE1F,OAAO,EAAyB,YAAY,EAAE,MAAM,aAAa,CAAC;AAElE,qEAAqE;AACrE,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;AAwGnG;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAYb;IACA;IACA;IAbnB;;;OAGG;IACK,KAAK,GAAG,IAAI,GAAG,EAAmF,CAAC;IAC3G,qEAAqE;IACpD,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,+CAA+C;IAC9B,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1D,YACmB,GAAkB,EAClB,MAAc,EACd,OAAuB;QAFvB,QAAG,GAAH,GAAG,CAAe;QAClB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAgB;IACvC,CAAC;IAEJ,iCAAiC;IAEjC,SAAS,CAAC,SAAiB;QACzB,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAoB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;YACxB,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YACjE,WAAW,EAAE,IAAI,GAAG,EAAE;YACtB,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,SAAS,SAAS,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,+BAA+B;IAC/B,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAgB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,8DAA8D;IACtD,KAAK,CAAC,UAAU,CAAC,IAIxB;QACC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxB,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,6DAA6D;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACrC,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,yBAAyB,KAAK,UAAU,EAAE,CAAC;YACrE,IAAI,CAAC;gBACH,mDAAmD;gBACnD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;gBACrG,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;YACzG,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAiB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YACvF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAsB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,wEAAwE;IACxE,YAAY,CAAC,SAAiB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,IAAI;YAAG,IAAI,CAAC,QAAkD,CAAC,QAAQ,GAAG,IAAI,CAAC;IACrF,CAAC;IAED,yCAAyC;IAEzC,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,GAAW,EACX,EAAiC,EACjC,YAAkE,EAClE,KAAc;QAEd,uDAAuD;QACvD,sDAAsD;QACtD,wCAAwC;QACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO;QAC/B,iEAAiE;QACjE,kEAAkE;QAClE,qDAAqD;QACrD,4DAA4D;QAC5D,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC;YAAE,OAAO;QAC3C,8CAA8C;QAC9C,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QACtC,yDAAyD;QACzD,0DAA0D;QAC1D,gDAAgD;QAChD,qDAAqD;QACrD,MAAM,UAAU,GAAG,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChH,KAAK,MAAM,CAAC,IAAI,UAAU;YAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,kDAAkD;QAClD,6CAA6C;QAC7C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,gBAAgB;QAClD,KAAK,MAAM,CAAC,IAAI,OAAO;YAAE,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,QAAQ,GAA0C,IAAI,CAAC;QAC3D,gDAAgD;QAChD,qDAAqD;QACrD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,UAAU,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,GAAG,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,wCAAwC;YACxC,6CAA6C;YAC7C,6CAA6C;YAC7C,+CAA+C;YAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,EAAE,KAAK,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;gBACtD,CAAC;qBAAM,CAAC;oBACN,uDAAuD;oBACvD,iCAAiC;oBACjC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;wBACpB,GAAG;wBACH,MAAM,EAAE,EAAE;wBACV,KAAK;wBACL,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,cAAc;qBAC3D,CAAC,CAAC;gBACL,CAAC;gBACD,SAAS;YACX,CAAC;YACD,8BAA8B;YAC9B,IAAI,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBACzC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;oBACpB,GAAG;oBACH,MAAM,EAAE,EAAE;oBACV,KAAK;oBACL,YAAY,EAAE,QAAQ,CAAC,IAAI;oBAC3B,OAAO,EAAE,SAAS,QAAQ,CAAC,IAAI,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG;iBAC7D,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,0CAA0C;YAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YACnF,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;gBACpB,GAAG;gBACH,MAAM,EAAE,EAAE;gBACV,KAAK;gBACL,YAAY,EAAE,QAAQ,CAAC,IAAI;gBAC3B,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,+BAA+B;IAE/B,KAAK,CAAC,SAAS,CAAC,SAAiB;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QACvE,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qDAAqD;YACrD,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,SAAS,GAAkB,EAAE,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,SAAS,CAAC,IAAI,CAAC;gBACb,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;gBAChC,QAAQ,EAAG,QAAkD,CAAC,QAAQ;gBACtE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aACzD,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,SAAiB,EAAE,MAAc;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAiB,CAAC;YACzD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qDAAqD;YACrD,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,UAAU,CAAC,QAAgB,EAAE,IAAY,EAAE,GAAY;QAC7D,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM;YAAE,OAAO;QACvD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,+BAA+B;IAE/B,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,MAAc;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;QACnG,CAAC;QACD,MAAM,MAAM,GAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAEhD,gDAAgD;QAChD,+DAA+D;QAC/D,mDAAmD;QACnD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAChC,qDAAqD;oBACrD,6BAA6B;oBAC7B,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACpC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChC,CAAC;oBAAC,OAAO,MAAM,EAAE,CAAC;wBAChB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;4BAAE,MAAM,MAAM,CAAC;oBAC/C,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAClD,4CAA4C;oBAC5C,0CAA0C;oBAC1C,IAAI,CAAC;wBACH,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC9C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACjC,CAAC;oBAAC,OAAO,OAAO,EAAE,CAAC;wBACjB,IAAI,CAAC,IAAI,CAAC,IAAI;4BAAE,MAAM,OAAO,CAAC;wBAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACjF,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAkB,CAAC,CAAC,CAAC;wBACxE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC/B,+CAA+C;wBAC/C,sDAAsD;wBACtD,IAAI,CAAC;4BACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACtC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;wBAClC,CAAC;wBAAC,OAAO,MAAM,EAAE,CAAC;4BAChB,MAAM,MAAM,GAAI,MAAgB,CAAC,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;4BAC3D,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;gCAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,cAAc,MAAM,EAAE,CAAC,CAAC;4BACjE,CAAC;iCAAM,CAAC;gCACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;4BAClD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACxB,aAAa;oBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,CAAC;qBAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACjF,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAkB,CAAC,CAAC,CAAC;oBACxE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,qCAAqC;IAC7B,OAAO,CAA6B;IACpC,oBAAoB,CAAqD;IACzE,mBAAmB,CAA+B;IAE1D,gDAAgD;IAChD,mBAAmB,CAAC,IAInB;QACC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,MAAc;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,QAAQ,EAAE,EAAE;gBACZ,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;gBAC/C,eAAe,EAAE,CAAC;gBAClB,WAAW,EAAE,KAAK;aACnB,CAAC;QACJ,CAAC;QACD,UAAU;QACV,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,MAAM,GAA2B;YACrC,GAAG,UAAU;YACb,eAAe,EAAE,CAAC;YAClB,WAAW,EAAE,KAAK;SACnB,CAAC;QAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,iBAAiB,IAAI,EAAE,CAAC;QACpD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,gCAAgC;YAChC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;YAC1B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;QACrC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,0BAA0B,KAAK,UAAU,EAAE,CAAC;YACvE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,4CAA4C,EAAE,CAAC,CAAC;YACtF,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;YAClB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,eAAe,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YACxF,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC5B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,WAAY,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7E,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC;YAClB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC;YACH,IAAI,CAAC,oBAAoB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oCAAqC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,WAAW;QACX,IAAI,CAAC;YACH,IAAI,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA6B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,+BAA+B;IAEvB,KAAK,CAAC,EAAE;QACd,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC;YAAE,OAAO;QACvC,IAAI,QAA8C,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzD,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY;YAAE,OAAO;QAErD,iCAAiC;QACjC,MAAM,WAAW,GAAwD,EAAE,CAAC;QAC5E,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5C,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAChG,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU;YACZ,CAAC;QACH,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,QAAS,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,SAAiB,EAAE,MAAc;QAC/C,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,oDAAoD;IAC5C,QAAQ,CAAC,GAAW;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QAC9B,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAChF,CAAC;IAED;;;;OAIG;IACK,oBAAoB,CAAC,GAAW;QACtC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACvG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,kEAAkE;IAClE,+CAA+C;IAC/C,KAAK,CAAC,YAAY,CAAC,SAAiB;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;YAC/D,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,KAAK,GAAG,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,SAAS,MAAM,KAAK,SAAS,CAAC,CAAC;YACxF,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,aAAa;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,SAAS,QAAS,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACxF,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC3D,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,IAAI,CAAC,IAAI,QAAS,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;YAC1F,OAAO,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA4B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;CACF;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,GAAW;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IACjD,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,yCAAyC;AACzC,SAAS,aAAa,CAAC,CAAS;IAC9B,OAAO,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAqB;IACnD,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC;QAC5C,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,CAAC;QAAE,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5C,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-checkpoint",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,20 +24,20 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aalis/
|
|
28
|
-
"@aalis/
|
|
29
|
-
"@aalis/api-
|
|
30
|
-
"@aalis/api-
|
|
31
|
-
"@aalis/api-hooks": ">=0.
|
|
27
|
+
"@aalis/api-checkpoint": ">=0.1.0 <1.0.0",
|
|
28
|
+
"@aalis/schema-config": ">=0.15.0 <1.0.0",
|
|
29
|
+
"@aalis/api-memory": ">=0.8.0 <1.0.0",
|
|
30
|
+
"@aalis/api-storage": ">=0.8.0 <1.0.0",
|
|
31
|
+
"@aalis/api-hooks": ">=0.2.0 <1.0.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "^22.0.0",
|
|
35
35
|
"typescript": "^5.7.0",
|
|
36
|
-
"@aalis/
|
|
37
|
-
"@aalis/
|
|
36
|
+
"@aalis/api-agent": "0.10.0",
|
|
37
|
+
"@aalis/core": "0.20.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"@aalis/core": ">=0.
|
|
40
|
+
"@aalis/core": ">=0.20.0 <1.0.0"
|
|
41
41
|
},
|
|
42
42
|
"aalis": {
|
|
43
43
|
"service": {
|
|
@@ -51,8 +51,7 @@
|
|
|
51
51
|
"storage"
|
|
52
52
|
],
|
|
53
53
|
"optional": [
|
|
54
|
-
"memory"
|
|
55
|
-
"webui-server"
|
|
54
|
+
"memory"
|
|
56
55
|
],
|
|
57
56
|
"provides": [
|
|
58
57
|
"checkpoint"
|