@downcity/plugins 1.0.60 → 1.0.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/BuiltinPlugins.d.ts +15 -0
- package/bin/BuiltinPlugins.d.ts.map +1 -1
- package/bin/BuiltinPlugins.js +7 -1
- package/bin/BuiltinPlugins.js.map +1 -1
- package/bin/index.d.ts +6 -0
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +3 -0
- package/bin/index.js.map +1 -1
- package/bin/memory/Action.d.ts +15 -10
- package/bin/memory/Action.d.ts.map +1 -1
- package/bin/memory/Action.js +233 -16
- package/bin/memory/Action.js.map +1 -1
- package/bin/memory/MemoryPlugin.d.ts +10 -4
- package/bin/memory/MemoryPlugin.d.ts.map +1 -1
- package/bin/memory/MemoryPlugin.js +79 -37
- package/bin/memory/MemoryPlugin.js.map +1 -1
- package/bin/memory/runtime/Search.d.ts +1 -1
- package/bin/memory/runtime/Search.d.ts.map +1 -1
- package/bin/memory/runtime/Search.js +11 -7
- package/bin/memory/runtime/Search.js.map +1 -1
- package/bin/memory/runtime/Store.d.ts +8 -23
- package/bin/memory/runtime/Store.d.ts.map +1 -1
- package/bin/memory/runtime/Store.js +28 -43
- package/bin/memory/runtime/Store.js.map +1 -1
- package/bin/memory/runtime/SystemProvider.d.ts +4 -8
- package/bin/memory/runtime/SystemProvider.d.ts.map +1 -1
- package/bin/memory/runtime/SystemProvider.js +55 -62
- package/bin/memory/runtime/SystemProvider.js.map +1 -1
- package/bin/memory/runtime/Writer.d.ts +48 -10
- package/bin/memory/runtime/Writer.d.ts.map +1 -1
- package/bin/memory/runtime/Writer.js +197 -60
- package/bin/memory/runtime/Writer.js.map +1 -1
- package/bin/memory/types/Memory.d.ts +222 -33
- package/bin/memory/types/Memory.d.ts.map +1 -1
- package/bin/memory/types/Memory.js +4 -3
- package/bin/memory/types/Memory.js.map +1 -1
- package/bin/shell/ShellPlugin.d.ts +2 -1
- package/bin/shell/ShellPlugin.d.ts.map +1 -1
- package/bin/shell/ShellPlugin.js +41 -4
- package/bin/shell/ShellPlugin.js.map +1 -1
- package/bin/shell/ShellRuntimeTypes.d.ts +57 -3
- package/bin/shell/ShellRuntimeTypes.d.ts.map +1 -1
- package/bin/shell/runtime/ShellActionRuntime.d.ts +21 -0
- package/bin/shell/runtime/ShellActionRuntime.d.ts.map +1 -1
- package/bin/shell/runtime/ShellActionRuntime.js +142 -6
- package/bin/shell/runtime/ShellActionRuntime.js.map +1 -1
- package/bin/shell/runtime/ShellActionRuntimeSupport.d.ts +14 -5
- package/bin/shell/runtime/ShellActionRuntimeSupport.d.ts.map +1 -1
- package/bin/shell/runtime/ShellActionRuntimeSupport.js +61 -22
- package/bin/shell/runtime/ShellActionRuntimeSupport.js.map +1 -1
- package/bin/shell/runtime/ShellApprovalRuntime.d.ts +57 -0
- package/bin/shell/runtime/ShellApprovalRuntime.d.ts.map +1 -0
- package/bin/shell/runtime/ShellApprovalRuntime.js +182 -0
- package/bin/shell/runtime/ShellApprovalRuntime.js.map +1 -0
- package/bin/shell/runtime/ShellProcessEvents.js +3 -3
- package/bin/shell/runtime/ShellProcessEvents.js.map +1 -1
- package/bin/shell/types/ShellPluginOptions.d.ts +103 -0
- package/bin/shell/types/ShellPluginOptions.d.ts.map +1 -0
- package/bin/shell/types/ShellPluginOptions.js +10 -0
- package/bin/shell/types/ShellPluginOptions.js.map +1 -0
- package/bin/task/Scheduler.d.ts +8 -0
- package/bin/task/Scheduler.d.ts.map +1 -1
- package/bin/task/Scheduler.js +7 -9
- package/bin/task/Scheduler.js.map +1 -1
- package/bin/task/TaskPlugin.d.ts +18 -1
- package/bin/task/TaskPlugin.d.ts.map +1 -1
- package/bin/task/TaskPlugin.js +23 -1
- package/bin/task/TaskPlugin.js.map +1 -1
- package/bin/task/types/TaskPluginOptions.d.ts +22 -0
- package/bin/task/types/TaskPluginOptions.d.ts.map +1 -0
- package/bin/task/types/TaskPluginOptions.js +9 -0
- package/bin/task/types/TaskPluginOptions.js.map +1 -0
- package/package.json +2 -2
- package/scripts/unrestricted-sandbox-approval.test.mjs +156 -0
- package/src/BuiltinPlugins.ts +27 -1
- package/src/index.ts +35 -0
- package/src/memory/Action.ts +292 -25
- package/src/memory/MemoryPlugin.ts +82 -40
- package/src/memory/runtime/Search.ts +16 -9
- package/src/memory/runtime/Store.ts +52 -49
- package/src/memory/runtime/SystemProvider.ts +55 -69
- package/src/memory/runtime/Writer.ts +262 -81
- package/src/memory/types/Memory.ts +296 -35
- package/src/shell/ShellPlugin.ts +44 -3
- package/src/shell/ShellRuntimeTypes.ts +61 -3
- package/src/shell/runtime/ShellActionRuntime.ts +182 -9
- package/src/shell/runtime/ShellActionRuntimeSupport.ts +112 -21
- package/src/shell/runtime/ShellApprovalRuntime.ts +236 -0
- package/src/shell/runtime/ShellProcessEvents.ts +3 -3
- package/src/shell/types/ShellPluginOptions.ts +122 -0
- package/src/task/Scheduler.ts +15 -9
- package/src/task/TaskPlugin.ts +27 -1
- package/src/task/types/TaskPluginOptions.ts +22 -0
- package/bin/memory/runtime/Flush.d.ts +0 -15
- package/bin/memory/runtime/Flush.d.ts.map +0 -1
- package/bin/memory/runtime/Flush.js +0 -63
- package/bin/memory/runtime/Flush.js.map +0 -1
- package/src/memory/runtime/Flush.ts +0 -83
|
@@ -1,22 +1,149 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Memory
|
|
2
|
+
* Memory Plugin 类型定义。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
5
|
+
* - MemoryPlugin 对 agent 暴露“记忆能力”,内部使用 LLM Wiki 方式组织知识。
|
|
6
|
+
* - `wiki` 是整理后的知识层,`source` 是原始证据层,`working` 是会话局部层。
|
|
7
|
+
* - LLM 能力只通过 constructor 注入,plugin 自身不绑定具体模型或服务。
|
|
7
8
|
*/
|
|
8
9
|
import type { JsonValue } from "@downcity/agent/internal/types/common/Json.js";
|
|
9
10
|
/**
|
|
10
11
|
* 记忆来源类型。
|
|
11
12
|
*/
|
|
12
|
-
export type MemorySourceType = "
|
|
13
|
+
export type MemorySourceType = "wiki" | "source" | "working";
|
|
13
14
|
/**
|
|
14
15
|
* 查询模式。
|
|
15
16
|
*
|
|
16
17
|
* 说明(中文)
|
|
17
|
-
* - 当前实现直接扫描 Markdown
|
|
18
|
+
* - 当前实现直接扫描 Markdown 文件,不引入向量库或外部索引服务。
|
|
18
19
|
*/
|
|
19
20
|
export type MemorySearchMode = "scan";
|
|
21
|
+
/**
|
|
22
|
+
* MemoryPlugin constructor 参数。
|
|
23
|
+
*/
|
|
24
|
+
export interface MemoryPluginOptions {
|
|
25
|
+
/**
|
|
26
|
+
* 把 session 或长文本 source 提炼为 wiki page 的函数。
|
|
27
|
+
*
|
|
28
|
+
* 说明(中文):未传时 `digest` action 会做确定性落盘,不会调用模型。
|
|
29
|
+
*/
|
|
30
|
+
digest?: MemoryDigestHandler;
|
|
31
|
+
/**
|
|
32
|
+
* 基于新证据修订某个 wiki page 的函数。
|
|
33
|
+
*
|
|
34
|
+
* 说明(中文):未传时 `remember`/`revise` 会追加写入,不做 LLM 重写。
|
|
35
|
+
*/
|
|
36
|
+
revise?: MemoryReviseHandler;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* digest handler。
|
|
40
|
+
*/
|
|
41
|
+
export type MemoryDigestHandler = (input: MemoryDigestHandlerInput) => Promise<MemoryDigestHandlerOutput | string>;
|
|
42
|
+
/**
|
|
43
|
+
* revise handler。
|
|
44
|
+
*/
|
|
45
|
+
export type MemoryReviseHandler = (input: MemoryReviseHandlerInput) => Promise<MemoryReviseHandlerOutput | string>;
|
|
46
|
+
/**
|
|
47
|
+
* digest handler 输入。
|
|
48
|
+
*/
|
|
49
|
+
export interface MemoryDigestHandlerInput {
|
|
50
|
+
/**
|
|
51
|
+
* 当前项目根目录。
|
|
52
|
+
*/
|
|
53
|
+
rootPath: string;
|
|
54
|
+
/**
|
|
55
|
+
* 需要提炼的原始文本。
|
|
56
|
+
*/
|
|
57
|
+
sourceText: string;
|
|
58
|
+
/**
|
|
59
|
+
* 原始文本来源路径(相对项目根目录)。
|
|
60
|
+
*/
|
|
61
|
+
sourcePath: string;
|
|
62
|
+
/**
|
|
63
|
+
* 触发 digest 的 session id。
|
|
64
|
+
*/
|
|
65
|
+
sessionId?: string;
|
|
66
|
+
/**
|
|
67
|
+
* 当前 wiki index 内容,方便模型决定更新哪些页面。
|
|
68
|
+
*/
|
|
69
|
+
wikiIndex: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* digest handler 输出。
|
|
73
|
+
*/
|
|
74
|
+
export interface MemoryDigestHandlerOutput {
|
|
75
|
+
/**
|
|
76
|
+
* 本次 digest 生成或更新的 wiki page。
|
|
77
|
+
*/
|
|
78
|
+
pages: MemoryWikiPageDraft[];
|
|
79
|
+
/**
|
|
80
|
+
* 给调用方看的简短摘要。
|
|
81
|
+
*/
|
|
82
|
+
summary?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* revise handler 输入。
|
|
86
|
+
*/
|
|
87
|
+
export interface MemoryReviseHandlerInput {
|
|
88
|
+
/**
|
|
89
|
+
* 当前项目根目录。
|
|
90
|
+
*/
|
|
91
|
+
rootPath: string;
|
|
92
|
+
/**
|
|
93
|
+
* 要修订的 wiki page 路径(相对项目根目录)。
|
|
94
|
+
*/
|
|
95
|
+
path: string;
|
|
96
|
+
/**
|
|
97
|
+
* 当前 page 内容;文件不存在时为空字符串。
|
|
98
|
+
*/
|
|
99
|
+
currentContent: string;
|
|
100
|
+
/**
|
|
101
|
+
* 修订指令。
|
|
102
|
+
*/
|
|
103
|
+
instruction: string;
|
|
104
|
+
/**
|
|
105
|
+
* 新证据或需要合入的内容。
|
|
106
|
+
*/
|
|
107
|
+
evidence: string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* revise handler 输出。
|
|
111
|
+
*/
|
|
112
|
+
export interface MemoryReviseHandlerOutput {
|
|
113
|
+
/**
|
|
114
|
+
* 修订后的 wiki page 路径;未传时沿用输入 path。
|
|
115
|
+
*/
|
|
116
|
+
path?: string;
|
|
117
|
+
/**
|
|
118
|
+
* 修订后的完整 Markdown 内容。
|
|
119
|
+
*/
|
|
120
|
+
content: string;
|
|
121
|
+
/**
|
|
122
|
+
* 给调用方看的简短摘要。
|
|
123
|
+
*/
|
|
124
|
+
summary?: string;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* 待写入 wiki 的页面草稿。
|
|
128
|
+
*/
|
|
129
|
+
export interface MemoryWikiPageDraft {
|
|
130
|
+
/**
|
|
131
|
+
* 目标路径;可传 `.downcity/memory/wiki/foo.md` 或 `foo.md`。
|
|
132
|
+
*/
|
|
133
|
+
path?: string;
|
|
134
|
+
/**
|
|
135
|
+
* 页面标题。
|
|
136
|
+
*/
|
|
137
|
+
title?: string;
|
|
138
|
+
/**
|
|
139
|
+
* 完整 Markdown 内容。
|
|
140
|
+
*/
|
|
141
|
+
content: string;
|
|
142
|
+
/**
|
|
143
|
+
* 页面标签。
|
|
144
|
+
*/
|
|
145
|
+
tags?: string[];
|
|
146
|
+
}
|
|
20
147
|
/**
|
|
21
148
|
* 单条记忆检索结果。
|
|
22
149
|
*/
|
|
@@ -42,11 +169,11 @@ export interface MemorySearchResultItem {
|
|
|
42
169
|
*/
|
|
43
170
|
snippet: string;
|
|
44
171
|
/**
|
|
45
|
-
*
|
|
172
|
+
* 记忆来源分类。
|
|
46
173
|
*/
|
|
47
174
|
source: MemorySourceType;
|
|
48
175
|
/**
|
|
49
|
-
* 引用标记(例如:`.downcity/memory/
|
|
176
|
+
* 引用标记(例如:`.downcity/memory/wiki/plugin-system.md#L12-L20`)。
|
|
50
177
|
*/
|
|
51
178
|
citation: string;
|
|
52
179
|
}
|
|
@@ -66,6 +193,10 @@ export interface MemorySearchPayload {
|
|
|
66
193
|
* 可选分数阈值,未传使用内置默认值。
|
|
67
194
|
*/
|
|
68
195
|
minScore?: number;
|
|
196
|
+
/**
|
|
197
|
+
* 是否检索原始 source 层;默认只检索 wiki 层和 working 层。
|
|
198
|
+
*/
|
|
199
|
+
includeSources?: boolean;
|
|
69
200
|
}
|
|
70
201
|
/**
|
|
71
202
|
* 记忆检索响应。
|
|
@@ -95,7 +226,7 @@ export interface MemorySearchResponse {
|
|
|
95
226
|
/**
|
|
96
227
|
* 读取记忆片段请求。
|
|
97
228
|
*/
|
|
98
|
-
export interface
|
|
229
|
+
export interface MemoryReadPayload {
|
|
99
230
|
/**
|
|
100
231
|
* 相对项目根目录的目标路径。
|
|
101
232
|
*/
|
|
@@ -112,7 +243,7 @@ export interface MemoryGetPayload {
|
|
|
112
243
|
/**
|
|
113
244
|
* 读取记忆片段响应。
|
|
114
245
|
*/
|
|
115
|
-
export interface
|
|
246
|
+
export interface MemoryReadResponse {
|
|
116
247
|
/**
|
|
117
248
|
* 目标路径(回显)。
|
|
118
249
|
*/
|
|
@@ -127,45 +258,57 @@ export interface MemoryGetResponse {
|
|
|
127
258
|
missing?: boolean;
|
|
128
259
|
}
|
|
129
260
|
/**
|
|
130
|
-
*
|
|
261
|
+
* remember 请求。
|
|
131
262
|
*/
|
|
132
|
-
export interface
|
|
263
|
+
export interface MemoryRememberPayload {
|
|
133
264
|
/**
|
|
134
|
-
*
|
|
265
|
+
* 需要记住的内容。
|
|
135
266
|
*/
|
|
136
267
|
content: string;
|
|
137
268
|
/**
|
|
138
|
-
*
|
|
269
|
+
* 可选主题,用于决定默认 wiki page 路径。
|
|
139
270
|
*/
|
|
140
|
-
|
|
271
|
+
topic?: string;
|
|
141
272
|
/**
|
|
142
|
-
*
|
|
273
|
+
* 可选目标 wiki page 路径。
|
|
143
274
|
*/
|
|
144
|
-
|
|
275
|
+
path?: string;
|
|
276
|
+
/**
|
|
277
|
+
* 可选来源说明。
|
|
278
|
+
*/
|
|
279
|
+
source?: string;
|
|
145
280
|
}
|
|
146
281
|
/**
|
|
147
|
-
*
|
|
282
|
+
* remember 响应。
|
|
148
283
|
*/
|
|
149
|
-
export interface
|
|
284
|
+
export interface MemoryRememberResponse {
|
|
150
285
|
/**
|
|
151
|
-
*
|
|
286
|
+
* 原始 source 归档路径。
|
|
152
287
|
*/
|
|
153
|
-
|
|
288
|
+
sourcePath: string;
|
|
154
289
|
/**
|
|
155
|
-
*
|
|
290
|
+
* 写入或更新的 wiki page 路径。
|
|
156
291
|
*/
|
|
157
|
-
|
|
292
|
+
wikiPath: string;
|
|
158
293
|
/**
|
|
159
|
-
*
|
|
294
|
+
* 当前写入策略。
|
|
295
|
+
*/
|
|
296
|
+
mode: "appended" | "revised";
|
|
297
|
+
/**
|
|
298
|
+
* 写入内容字符数。
|
|
160
299
|
*/
|
|
161
300
|
writtenChars: number;
|
|
301
|
+
/**
|
|
302
|
+
* 可选摘要。
|
|
303
|
+
*/
|
|
304
|
+
summary?: string;
|
|
162
305
|
}
|
|
163
306
|
/**
|
|
164
|
-
*
|
|
307
|
+
* digest 请求。
|
|
165
308
|
*/
|
|
166
|
-
export interface
|
|
309
|
+
export interface MemoryDigestPayload {
|
|
167
310
|
/**
|
|
168
|
-
*
|
|
311
|
+
* 目标 session id。
|
|
169
312
|
*/
|
|
170
313
|
sessionId: string;
|
|
171
314
|
/**
|
|
@@ -174,21 +317,67 @@ export interface MemoryFlushPayload {
|
|
|
174
317
|
maxMessages?: number;
|
|
175
318
|
}
|
|
176
319
|
/**
|
|
177
|
-
*
|
|
320
|
+
* digest 响应。
|
|
178
321
|
*/
|
|
179
|
-
export interface
|
|
322
|
+
export interface MemoryDigestResponse {
|
|
180
323
|
/**
|
|
181
|
-
*
|
|
324
|
+
* 原始 session source 归档路径。
|
|
182
325
|
*/
|
|
183
|
-
|
|
326
|
+
sourcePath: string;
|
|
184
327
|
/**
|
|
185
|
-
*
|
|
328
|
+
* 写入或更新的 wiki page 路径集合。
|
|
329
|
+
*/
|
|
330
|
+
wikiPaths: string[];
|
|
331
|
+
/**
|
|
332
|
+
* 参与 digest 的消息条数。
|
|
186
333
|
*/
|
|
187
334
|
messageCount: number;
|
|
335
|
+
/**
|
|
336
|
+
* 当前 digest 模式。
|
|
337
|
+
*/
|
|
338
|
+
mode: "archived" | "digested";
|
|
339
|
+
/**
|
|
340
|
+
* 可选摘要。
|
|
341
|
+
*/
|
|
342
|
+
summary?: string;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* revise 请求。
|
|
346
|
+
*/
|
|
347
|
+
export interface MemoryRevisePayload {
|
|
348
|
+
/**
|
|
349
|
+
* 要修订的 wiki page 路径。
|
|
350
|
+
*/
|
|
351
|
+
path: string;
|
|
352
|
+
/**
|
|
353
|
+
* 修订指令。
|
|
354
|
+
*/
|
|
355
|
+
instruction: string;
|
|
356
|
+
/**
|
|
357
|
+
* 新证据或需要合入的内容。
|
|
358
|
+
*/
|
|
359
|
+
evidence?: string;
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* revise 响应。
|
|
363
|
+
*/
|
|
364
|
+
export interface MemoryReviseResponse {
|
|
365
|
+
/**
|
|
366
|
+
* 实际写入的 wiki page 路径。
|
|
367
|
+
*/
|
|
368
|
+
path: string;
|
|
369
|
+
/**
|
|
370
|
+
* 当前 revise 模式。
|
|
371
|
+
*/
|
|
372
|
+
mode: "appended" | "revised";
|
|
188
373
|
/**
|
|
189
374
|
* 写入内容字符数。
|
|
190
375
|
*/
|
|
191
376
|
writtenChars: number;
|
|
377
|
+
/**
|
|
378
|
+
* 可选摘要。
|
|
379
|
+
*/
|
|
380
|
+
summary?: string;
|
|
192
381
|
}
|
|
193
382
|
/**
|
|
194
383
|
* 按来源统计。
|
|
@@ -233,7 +422,7 @@ export interface MemoryStatusResponse {
|
|
|
233
422
|
sourceCounts: MemorySourceStat[];
|
|
234
423
|
}
|
|
235
424
|
/**
|
|
236
|
-
* Memory service
|
|
425
|
+
* Memory service 内置默认配置。
|
|
237
426
|
*/
|
|
238
427
|
export interface MemoryDefaults {
|
|
239
428
|
/**
|
|
@@ -252,5 +441,5 @@ export interface MemoryDefaults {
|
|
|
252
441
|
/**
|
|
253
442
|
* Memory action payload 联合。
|
|
254
443
|
*/
|
|
255
|
-
export type MemoryActionPayload = MemorySearchPayload |
|
|
444
|
+
export type MemoryActionPayload = MemorySearchPayload | MemoryReadPayload | MemoryRememberPayload | MemoryDigestPayload | MemoryRevisePayload | Record<string, JsonValue>;
|
|
256
445
|
//# sourceMappingURL=Memory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../../src/memory/types/Memory.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Memory.d.ts","sourceRoot":"","sources":["../../../src/memory/types/Memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Memory
|
|
2
|
+
* Memory Plugin 类型定义。
|
|
3
3
|
*
|
|
4
4
|
* 关键点(中文)
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
5
|
+
* - MemoryPlugin 对 agent 暴露“记忆能力”,内部使用 LLM Wiki 方式组织知识。
|
|
6
|
+
* - `wiki` 是整理后的知识层,`source` 是原始证据层,`working` 是会话局部层。
|
|
7
|
+
* - LLM 能力只通过 constructor 注入,plugin 自身不绑定具体模型或服务。
|
|
7
8
|
*/
|
|
8
9
|
export {};
|
|
9
10
|
//# sourceMappingURL=Memory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Memory.js","sourceRoot":"","sources":["../../../src/memory/types/Memory.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Memory.js","sourceRoot":"","sources":["../../../src/memory/types/Memory.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -10,6 +10,7 @@ import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
|
|
|
10
10
|
import type { PluginActions } from "@downcity/agent/internal/plugin/types/Plugin.js";
|
|
11
11
|
import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
|
|
12
12
|
import type { ShellSessionRuntimeState } from "../shell/ShellRuntimeTypes.js";
|
|
13
|
+
import type { ShellPluginOptions } from "../shell/types/ShellPluginOptions.js";
|
|
13
14
|
import type { ShellCloseRequest, ShellExecRequest, ShellQueryRequest, ShellReadRequest, ShellStartRequest, ShellWaitRequest, ShellWriteRequest } from "@downcity/agent/internal/executor/tools/shell/types/ShellPlugin.js";
|
|
14
15
|
/**
|
|
15
16
|
* Shell plugin 类实现。
|
|
@@ -31,7 +32,7 @@ export declare class ShellPlugin extends BasePlugin {
|
|
|
31
32
|
* 当前实例持有的 in-memory shell sessions。
|
|
32
33
|
*/
|
|
33
34
|
readonly sessions: Map<string, ShellSessionRuntimeState>;
|
|
34
|
-
constructor();
|
|
35
|
+
constructor(options?: ShellPluginOptions);
|
|
35
36
|
/**
|
|
36
37
|
* 启动一个 shell session。
|
|
37
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellPlugin.d.ts","sourceRoot":"","sources":["../../src/shell/ShellPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAEV,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,oEAAoE,CAAC;
|
|
1
|
+
{"version":3,"file":"ShellPlugin.d.ts","sourceRoot":"","sources":["../../src/shell/ShellPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAChF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAEV,wBAAwB,EACzB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,oEAAoE,CAAC;AAiB5E;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;IACzC;;OAEG;IACH,QAAQ,CAAC,IAAI,WAAW;IAExB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAEzC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAEhC;;OAEG;IACH,SAAgB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;gBAEpD,OAAO,GAAE,kBAAuB;IAuG5C;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB;IAK3B;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB;IAK3B;;OAEG;IACG,KAAK,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB;IAK5B;;OAEG;IACG,IAAI,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB;CAI5B"}
|
package/bin/shell/ShellPlugin.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* - ShellActionRuntime 只保留纯运行时流程,不再承载模块级单例状态。
|
|
8
8
|
*/
|
|
9
9
|
import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
|
|
10
|
-
import { bindShellRuntime, closeAllShellSessions, closeShellSession, createShellPluginState, execShellCommand, getShellSessionStatus, readShellSession, startShellSession, waitShellSession, writeShellSession, } from "./runtime/ShellActionRuntime.js";
|
|
10
|
+
import { bindShellRuntime, closeAllShellSessions, closeShellSession, createShellPluginState, approveShellApproval, denyShellApproval, execShellCommand, getShellSessionStatus, listShellApprovals, readShellSession, startShellSession, waitShellSession, writeShellSession, } from "./runtime/ShellActionRuntime.js";
|
|
11
11
|
/**
|
|
12
12
|
* Shell plugin 类实现。
|
|
13
13
|
*/
|
|
@@ -28,9 +28,9 @@ export class ShellPlugin extends BasePlugin {
|
|
|
28
28
|
* 当前实例持有的 in-memory shell sessions。
|
|
29
29
|
*/
|
|
30
30
|
sessions;
|
|
31
|
-
constructor() {
|
|
31
|
+
constructor(options = {}) {
|
|
32
32
|
super();
|
|
33
|
-
this.state = createShellPluginState();
|
|
33
|
+
this.state = createShellPluginState(options);
|
|
34
34
|
this.sessions = this.state.sessions;
|
|
35
35
|
this.actions = {
|
|
36
36
|
exec: {
|
|
@@ -75,6 +75,42 @@ export class ShellPlugin extends BasePlugin {
|
|
|
75
75
|
data: await this.close(params.context, params.payload),
|
|
76
76
|
}),
|
|
77
77
|
},
|
|
78
|
+
approvals: {
|
|
79
|
+
execute: async () => ({
|
|
80
|
+
success: true,
|
|
81
|
+
data: { approvals: listShellApprovals(this.state) },
|
|
82
|
+
}),
|
|
83
|
+
},
|
|
84
|
+
approve: {
|
|
85
|
+
execute: async (params) => {
|
|
86
|
+
const payload = params.payload;
|
|
87
|
+
const approvalId = String(payload?.approvalId || payload?.approval_id || "").trim();
|
|
88
|
+
if (!approvalId) {
|
|
89
|
+
return { success: false, error: "approvalId is required" };
|
|
90
|
+
}
|
|
91
|
+
const ok = await approveShellApproval(this.state, params.context, approvalId);
|
|
92
|
+
return {
|
|
93
|
+
success: ok,
|
|
94
|
+
data: { approvalId, approved: ok },
|
|
95
|
+
...(ok ? {} : { error: "approval request not found" }),
|
|
96
|
+
};
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
deny: {
|
|
100
|
+
execute: async (params) => {
|
|
101
|
+
const payload = params.payload;
|
|
102
|
+
const approvalId = String(payload?.approvalId || payload?.approval_id || "").trim();
|
|
103
|
+
if (!approvalId) {
|
|
104
|
+
return { success: false, error: "approvalId is required" };
|
|
105
|
+
}
|
|
106
|
+
const ok = await denyShellApproval(this.state, params.context, approvalId);
|
|
107
|
+
return {
|
|
108
|
+
success: ok,
|
|
109
|
+
data: { approvalId, denied: ok },
|
|
110
|
+
...(ok ? {} : { error: "approval request not found" }),
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
},
|
|
78
114
|
};
|
|
79
115
|
this.lifecycle = {
|
|
80
116
|
start: async (context) => {
|
|
@@ -88,7 +124,8 @@ export class ShellPlugin extends BasePlugin {
|
|
|
88
124
|
}
|
|
89
125
|
}
|
|
90
126
|
this.state.sessions.clear();
|
|
91
|
-
this.state.
|
|
127
|
+
this.state.approvals.clear();
|
|
128
|
+
this.state.context = null;
|
|
92
129
|
},
|
|
93
130
|
};
|
|
94
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellPlugin.js","sourceRoot":"","sources":["../../src/shell/ShellPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;
|
|
1
|
+
{"version":3,"file":"ShellPlugin.js","sourceRoot":"","sources":["../../src/shell/ShellPlugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,53 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { ChildProcessWithoutNullStreams } from "node:child_process";
|
|
10
10
|
import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
|
|
11
|
-
import type { ShellSessionSnapshot } from "@downcity/agent/internal/executor/tools/shell/types/ShellPlugin.js";
|
|
11
|
+
import type { ShellApprovalStatus, ShellSessionSnapshot } from "@downcity/agent/internal/executor/tools/shell/types/ShellPlugin.js";
|
|
12
|
+
import type { ResolvedShellPluginOptions } from "../shell/types/ShellPluginOptions.js";
|
|
13
|
+
/**
|
|
14
|
+
* unrestricted sandbox 审批运行态。
|
|
15
|
+
*/
|
|
16
|
+
export type ShellApprovalRuntimeState = {
|
|
17
|
+
/**
|
|
18
|
+
* 当前审批请求 ID。
|
|
19
|
+
*/
|
|
20
|
+
approvalId: string;
|
|
21
|
+
/**
|
|
22
|
+
* 关联的 shell_id。
|
|
23
|
+
*/
|
|
24
|
+
shellId: string;
|
|
25
|
+
/**
|
|
26
|
+
* 所属 session/聊天上下文。
|
|
27
|
+
*/
|
|
28
|
+
ownerContextId?: string;
|
|
29
|
+
/**
|
|
30
|
+
* 关联工具名。
|
|
31
|
+
*/
|
|
32
|
+
toolName: "shell_exec" | "shell_start";
|
|
33
|
+
/**
|
|
34
|
+
* 申请执行的命令。
|
|
35
|
+
*/
|
|
36
|
+
cmd: string;
|
|
37
|
+
/**
|
|
38
|
+
* 命令执行目录。
|
|
39
|
+
*/
|
|
40
|
+
cwd: string;
|
|
41
|
+
/**
|
|
42
|
+
* 申请原因。
|
|
43
|
+
*/
|
|
44
|
+
reason: string;
|
|
45
|
+
/**
|
|
46
|
+
* 当前审批创建时间。
|
|
47
|
+
*/
|
|
48
|
+
createdAt: number;
|
|
49
|
+
/**
|
|
50
|
+
* 审批超时定时器。
|
|
51
|
+
*/
|
|
52
|
+
timer: NodeJS.Timeout;
|
|
53
|
+
/**
|
|
54
|
+
* 兑现审批结果。
|
|
55
|
+
*/
|
|
56
|
+
resolve: (status: ShellApprovalStatus) => void;
|
|
57
|
+
};
|
|
12
58
|
/**
|
|
13
59
|
* 单个 shell wait 调用挂起时注册的 waiter。
|
|
14
60
|
*/
|
|
@@ -75,17 +121,25 @@ export type ShellSessionRuntimeState = {
|
|
|
75
121
|
* `ShellPlugin` 实例级状态。
|
|
76
122
|
*/
|
|
77
123
|
export type ShellPluginState = {
|
|
124
|
+
/**
|
|
125
|
+
* 当前 shell plugin 归一化后的运行参数。
|
|
126
|
+
*/
|
|
127
|
+
options: ResolvedShellPluginOptions;
|
|
78
128
|
/**
|
|
79
129
|
* 当前实例持有的全部 in-memory shell session。
|
|
80
130
|
*/
|
|
81
131
|
sessions: Map<string, ShellSessionRuntimeState>;
|
|
82
132
|
/**
|
|
83
|
-
*
|
|
133
|
+
* 当前实例持有的全部 pending unrestricted sandbox 审批。
|
|
134
|
+
*/
|
|
135
|
+
approvals: Map<string, ShellApprovalRuntimeState>;
|
|
136
|
+
/**
|
|
137
|
+
* 当前实例最近一次启动时绑定的 agent context。
|
|
84
138
|
*
|
|
85
139
|
* 关键点(中文)
|
|
86
140
|
* - 仅用于 shell 自动通知 chat 的回调路径。
|
|
87
141
|
* - 这是实例字段,不再是模块级全局变量。
|
|
88
142
|
*/
|
|
89
|
-
|
|
143
|
+
context: AgentContext | null;
|
|
90
144
|
};
|
|
91
145
|
//# sourceMappingURL=ShellRuntimeTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellRuntimeTypes.d.ts","sourceRoot":"","sources":["../../src/shell/ShellRuntimeTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ShellRuntimeTypes.d.ts","sourceRoot":"","sources":["../../src/shell/ShellRuntimeTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,oEAAoE,CAAC;AAC5E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEtF;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,QAAQ,EAAE,YAAY,GAAG,aAAa,CAAC;IACvC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;IACtB;;OAEG;IACH,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC;;OAEG;IACH,QAAQ,EAAE,oBAAoB,CAAC;IAC/B;;OAEG;IACH,KAAK,EAAE,8BAA8B,CAAC;IACtC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACpC;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC;;OAEG;IACH,iBAAiB,EAAE,MAAM,IAAI,CAAC;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,OAAO,EAAE,0BAA0B,CAAC;IACpC;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC;IAChD;;OAEG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IAClD;;;;;;OAMG;IACH,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAC9B,CAAC"}
|
|
@@ -46,4 +46,25 @@ export declare function closeShellSession(state: ShellPluginState, context: Agen
|
|
|
46
46
|
* 以 one-shot 模式执行 shell command。
|
|
47
47
|
*/
|
|
48
48
|
export declare function execShellCommand(state: ShellPluginState, context: AgentContext, request: ShellExecRequest): Promise<ShellActionResponse>;
|
|
49
|
+
/**
|
|
50
|
+
* 列出 pending unrestricted sandbox 审批。
|
|
51
|
+
*/
|
|
52
|
+
export declare function listShellApprovals(state: ShellPluginState): {
|
|
53
|
+
approvalId: string;
|
|
54
|
+
shellId: string;
|
|
55
|
+
ownerContextId?: string;
|
|
56
|
+
toolName: "shell_exec" | "shell_start";
|
|
57
|
+
cmd: string;
|
|
58
|
+
cwd: string;
|
|
59
|
+
reason: string;
|
|
60
|
+
createdAt: number;
|
|
61
|
+
}[];
|
|
62
|
+
/**
|
|
63
|
+
* 批准 pending unrestricted sandbox 审批。
|
|
64
|
+
*/
|
|
65
|
+
export declare function approveShellApproval(state: ShellPluginState, context: AgentContext, approvalId: string): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* 拒绝 pending unrestricted sandbox 审批。
|
|
68
|
+
*/
|
|
69
|
+
export declare function denyShellApproval(state: ShellPluginState, context: AgentContext, approvalId: string): Promise<boolean>;
|
|
49
70
|
//# sourceMappingURL=ShellActionRuntime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShellActionRuntime.d.ts","sourceRoot":"","sources":["../../../src/shell/runtime/ShellActionRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AAEjG,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EACV,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ShellActionRuntime.d.ts","sourceRoot":"","sources":["../../../src/shell/runtime/ShellActionRuntime.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AAEjG,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,KAAK,EACV,mBAAmB,EAEnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,oEAAoE,CAAC;AA2B5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAQxE;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,GACpB,IAAI,CAEN;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,gBAAgB,EACvB,KAAK,UAAQ,GACZ,OAAO,CAAC,IAAI,CAAC,CAkCf;AA6DD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAuK9B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAmB9B;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAiC9B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAoE9B;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAuC9B;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,mBAAmB,CAAC,CAmH9B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,gBAAgB;;;;;;;;;IAEzD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAOlB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAOlB"}
|