@ai-zen/cli 1.0.0-alpha.5 → 1.0.0-alpha.7
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/CHANGELOG.md +27 -0
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/dist/tui/chat-session.d.ts +4 -8
- package/dist/tui/chat-session.d.ts.map +1 -1
- package/dist/tui/chat-session.js +9 -15
- package/dist/tui/chat-session.js.map +1 -1
- package/package.json +3 -3
- package/dist/usage.d.ts +0 -20
- package/dist/usage.d.ts.map +0 -1
- package/dist/usage.js +0 -40
- package/dist/usage.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
## [1.0.0-alpha.7] - 2026-10-14
|
|
2
|
+
|
|
3
|
+
### 📄 文档
|
|
4
|
+
|
|
5
|
+
- **状态栏 token 用量纳入文档** —— `docs/zh|en/index.md` 的「主要特性」补上「状态栏实时展示 模型 · Agent · 本轮/累计 token 用量 · 生成状态」(此前仅在 README 提及),累计口径为 `sumUsage(agent.messages)`(含所有层级的子 Agent)。
|
|
6
|
+
- 修正 `TODO.md` 中已过时的路径引用(`src/tui/config-wizard.tsx` → 目录 `src/tui/config-wizard/`)。
|
|
7
|
+
|
|
8
|
+
### ⚠️ 依赖
|
|
9
|
+
|
|
10
|
+
- `@ai-zen/agents-core` `^4.5.0 → ^4.5.1`、`@ai-zen/agents-sdk` `1.0.0-alpha.8 → 1.0.0-alpha.9`
|
|
11
|
+
|
|
12
|
+
> 纯文档修正,无代码变更。
|
|
13
|
+
|
|
14
|
+
## [1.0.0-alpha.6] - 2026-10-14
|
|
15
|
+
|
|
16
|
+
### ♻️ 重构
|
|
17
|
+
|
|
18
|
+
- **累计用量改用 SDK 的 `sumUsage`,移除 CLI 自建的内存累加器** —— 依赖 `@ai-zen/agents-sdk` `1.0.0-alpha.8` / `@ai-zen/agents-core` `4.5.0`:除助手消息的 `usage` 外,委派产生的用量现由 core 在委派边界钉到工具消息的 `subAgentUsage` 上。故 `ChatSession.totalUsage` 直接 `sumUsage(agent.messages)` 即可(含所有层级的子 Agent),删掉 `src/usage.ts` 与 `onSubAgentEnd` 内存回灌——子 Agent 开销随消息持久化,续接 / `/load` 亦不丢,且不再有双重计数风险。
|
|
19
|
+
|
|
20
|
+
### ⚠️ 依赖
|
|
21
|
+
|
|
22
|
+
- `@ai-zen/agents-sdk` `1.0.0-alpha.7 → 1.0.0-alpha.8`、`@ai-zen/agents-core` `^4.4.0 → ^4.5.0`
|
|
23
|
+
|
|
24
|
+
### ✅ 测试
|
|
25
|
+
|
|
26
|
+
- 移除 `src/usage.test.ts`(逻辑下沉 core,已由 core 覆盖);`chat-session.test.ts` 的 `totalUsage` 用例改为覆盖「assistant 的 usage + 工具消息的 subAgentUsage」求和。全量单测 **16 文件 / 226 用例**通过,`tsc --noEmit` 与 `npm run build` 零错误。
|
|
27
|
+
|
|
1
28
|
## [1.0.0-alpha.5] - 2026-10-14
|
|
2
29
|
|
|
3
30
|
### 🚀 新功能
|
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ When run with no arguments on an interactive terminal, the CLI opens a full-scre
|
|
|
66
66
|
╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚═╝ ╚═══╝
|
|
67
67
|
|
|
68
68
|
AI workbench in your terminal
|
|
69
|
-
v1.0.0-alpha.
|
|
69
|
+
v1.0.0-alpha.7 · sdk x · core y
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
After the splash, you land **directly in the chat screen** (resuming the last session if there is one, otherwise starting a new conversation). The chat screen is **bottom-pinned**: a divider, the input line, and the status bar (model · agent · this-round / cumulative tokens · generating) always sit at the bottom of the terminal, while the conversation scrolls above them. While generating, the spinner replaces the input line.
|
package/README.zh.md
CHANGED
|
@@ -66,7 +66,7 @@ ai --version
|
|
|
66
66
|
╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚═╝ ╚═══╝
|
|
67
67
|
|
|
68
68
|
终端里的 AI 协作台
|
|
69
|
-
v1.0.0-alpha.
|
|
69
|
+
v1.0.0-alpha.7 · sdk x · core y
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
启动界面结束后**直接进入对话界面**(若存在「上一轮会话」则自动续接,否则新建对话)。对话界面采用**底部固定**布局:分隔线、输入行与状态栏(模型 · Agent · 本轮/累计 token 用量 · 生成状态)始终贴在终端底部,对话内容在其上方滚动;生成中时输入行位置显示进度指示。
|
|
@@ -40,12 +40,6 @@ export declare class ChatSession {
|
|
|
40
40
|
private readonly notifier;
|
|
41
41
|
private readonly requestConfirm?;
|
|
42
42
|
private readonly disposers;
|
|
43
|
-
/**
|
|
44
|
-
* 子 Agent 累计用量。
|
|
45
|
-
* 子 Agent 是独立 Agent 实例,其 messages 不在父 Agent 的 messages 中,
|
|
46
|
-
* 故在每次委派结束(onSubAgentEnd)时单独累加;会话重置(/new)时归零。
|
|
47
|
-
*/
|
|
48
|
-
private subAgentUsage;
|
|
49
43
|
private constructor();
|
|
50
44
|
/** 创建会话:装配 Agent、插件与「变更信号」 */
|
|
51
45
|
static create(options: ChatSessionOptions, notifier: ChatSessionNotifier): Promise<ChatSession>;
|
|
@@ -54,9 +48,11 @@ export declare class ChatSession {
|
|
|
54
48
|
/** 最近一次响应的 token 用量(供「本轮 / 当前上下文占用」展示与阈值判定) */
|
|
55
49
|
get lastUsage(): AgentNS.Usage | undefined;
|
|
56
50
|
/**
|
|
57
|
-
* 本会话累计 token
|
|
51
|
+
* 本会话累计 token 用量。
|
|
58
52
|
*
|
|
59
|
-
*
|
|
53
|
+
* 逐消息求和(`sumUsage`):含各 assistant 消息的 `usage`(自身响应)与工具消息的
|
|
54
|
+
* `subAgentUsage`(内部委派——含所有层级子 Agent)。每轮请求都会重发完整历史,
|
|
55
|
+
* 故求和即计费口径的累计消耗;且随消息持久化,续接 / `/load` 亦不丢。
|
|
60
56
|
*/
|
|
61
57
|
get totalUsage(): AgentNS.Usage;
|
|
62
58
|
/** 发送一条消息;内容变化经 `notifier.onChange` 通知,`resolve` 表示本轮结束 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session.d.ts","sourceRoot":"","sources":["../../src/tui/chat-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"chat-session.d.ts","sourceRoot":"","sources":["../../src/tui/chat-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAY,MAAM,qBAAqB,CAAC;AAmBxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,oBAAoB;AACpB,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+BAA+B;IAC/B,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACzD;AAED,0DAA0D;AAC1D,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,qBAAa,WAAW;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsB;IAC1C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuB;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAkC;IAClE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IAEnD,OAAO;IAkBP,8BAA8B;WACjB,MAAM,CACjB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,WAAW,CAAC;IA8BvB,kBAAkB;IAClB,IAAI,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAEhC;IAED,+CAA+C;IAC/C,IAAI,SAAS,IAAI,OAAO,CAAC,KAAK,GAAG,SAAS,CAEzC;IAED;;;;;;OAMG;IACH,IAAI,UAAU,IAAI,OAAO,CAAC,KAAK,CAE9B;IAED,2DAA2D;IACrD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxC,kCAAkC;IAClC,KAAK,IAAI,IAAI;IAIb;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAoBrC;;;;;;OAMG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAc7B,qCAAqC;IAC/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,gDAAgD;IAChD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQjC,gBAAgB;IACV,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAiB7B,mCAAmC;IACnC,OAAO,IAAI,IAAI;YAMD,MAAM;IAmCpB;;;;;OAKG;IACH,OAAO,CAAC,IAAI;CA8Cb"}
|
package/dist/tui/chat-session.js
CHANGED
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* 本模块不依赖 React / Ink,可独立单测。
|
|
10
10
|
*/
|
|
11
|
-
import { AgentNS } from "@ai-zen/agents-core";
|
|
12
|
-
import { addUsage, sumMessagesUsage, ZERO_USAGE } from "../usage.js";
|
|
11
|
+
import { AgentNS, sumUsage } from "@ai-zen/agents-core";
|
|
13
12
|
import { AutoRefreshToolsPlugin, ContextGuardPlugin, } from "@ai-zen/agents-sdk";
|
|
14
13
|
import { createAgent, resetScope } from "../agent-creator.js";
|
|
15
14
|
import { readConfig } from "../config.js";
|
|
@@ -35,12 +34,6 @@ export class ChatSession {
|
|
|
35
34
|
notifier;
|
|
36
35
|
requestConfirm;
|
|
37
36
|
disposers = [];
|
|
38
|
-
/**
|
|
39
|
-
* 子 Agent 累计用量。
|
|
40
|
-
* 子 Agent 是独立 Agent 实例,其 messages 不在父 Agent 的 messages 中,
|
|
41
|
-
* 故在每次委派结束(onSubAgentEnd)时单独累加;会话重置(/new)时归零。
|
|
42
|
-
*/
|
|
43
|
-
subAgentUsage = { ...ZERO_USAGE };
|
|
44
37
|
constructor(migrationService, ctx, options, maxTokens, notifier) {
|
|
45
38
|
this.migrationService = migrationService;
|
|
46
39
|
this.ctx = ctx;
|
|
@@ -88,12 +81,14 @@ export class ChatSession {
|
|
|
88
81
|
return this.agent.lastUsage;
|
|
89
82
|
}
|
|
90
83
|
/**
|
|
91
|
-
* 本会话累计 token
|
|
84
|
+
* 本会话累计 token 用量。
|
|
92
85
|
*
|
|
93
|
-
*
|
|
86
|
+
* 逐消息求和(`sumUsage`):含各 assistant 消息的 `usage`(自身响应)与工具消息的
|
|
87
|
+
* `subAgentUsage`(内部委派——含所有层级子 Agent)。每轮请求都会重发完整历史,
|
|
88
|
+
* 故求和即计费口径的累计消耗;且随消息持久化,续接 / `/load` 亦不丢。
|
|
94
89
|
*/
|
|
95
90
|
get totalUsage() {
|
|
96
|
-
return
|
|
91
|
+
return sumUsage(this.agent.messages);
|
|
97
92
|
}
|
|
98
93
|
/** 发送一条消息;内容变化经 `notifier.onChange` 通知,`resolve` 表示本轮结束 */
|
|
99
94
|
async send(input) {
|
|
@@ -131,7 +126,6 @@ export class ChatSession {
|
|
|
131
126
|
this.ctx.currentId = this.currentId;
|
|
132
127
|
this.currentName = this.currentId;
|
|
133
128
|
this.ctx.currentName = this.currentName;
|
|
134
|
-
this.subAgentUsage = { ...ZERO_USAGE };
|
|
135
129
|
await this.attach(agent);
|
|
136
130
|
this.notifier.onChange(true);
|
|
137
131
|
return archivedId;
|
|
@@ -249,10 +243,10 @@ export class ChatSession {
|
|
|
249
243
|
subAgent.events.on("error", onError);
|
|
250
244
|
notify(true);
|
|
251
245
|
};
|
|
252
|
-
const onSubEnd = ({
|
|
246
|
+
const onSubEnd = ({ toolCallContext }) => {
|
|
253
247
|
const name = toolCallContext?.tool_call?.function?.name || "子任务";
|
|
254
|
-
// 子 Agent
|
|
255
|
-
|
|
248
|
+
// 子 Agent 的用量由 core 在委派边界钉到父侧 tool 消息的 subAgentUsage 上,
|
|
249
|
+
// 故此处只需提示,累计经 sumUsage(agent.messages) 自然包含
|
|
256
250
|
this.notifier.onNotice(`✓ 子任务 ${name} 完成`, "info");
|
|
257
251
|
notify(true);
|
|
258
252
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session.js","sourceRoot":"","sources":["../../src/tui/chat-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"chat-session.js","sourceRoot":"","sources":["../../src/tui/chat-session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ai-zen/cli",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.7",
|
|
4
4
|
"description": "AI-ZEN CLI - dual-mode AI terminal: pure stdio pipelines and an interactive TUI",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"author": "LZQCN",
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@ai-zen/agents-core": "^4.
|
|
25
|
-
"@ai-zen/agents-sdk": "1.0.0-alpha.
|
|
24
|
+
"@ai-zen/agents-core": "^4.5.1",
|
|
25
|
+
"@ai-zen/agents-sdk": "1.0.0-alpha.9",
|
|
26
26
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
27
27
|
"dayjs": "^1.11.21",
|
|
28
28
|
"highlight.js": "^11.12.0",
|
package/dist/usage.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Token 用量统计 — 纯函数
|
|
3
|
-
*
|
|
4
|
-
* 数据源为 core 为每条 assistant 消息钉上的 `usage`(`Agent.lastUsage` 的近亲,
|
|
5
|
-
* 由流式响应的最后一个 chunk 写入)。因每轮请求都会重发完整历史,
|
|
6
|
-
* 「各 assistant 消息 usage 之和」即计费口径的累计消耗。
|
|
7
|
-
*
|
|
8
|
-
* 本模块为纯数据与纯函数,不依赖 React / Ink,可直接单测。
|
|
9
|
-
*/
|
|
10
|
-
import { AgentNS } from "@ai-zen/agents-core";
|
|
11
|
-
/** 零用量(复用为累加初值;调用方勿直接修改) */
|
|
12
|
-
export declare const ZERO_USAGE: AgentNS.Usage;
|
|
13
|
-
/** 累加两个 usage(逐字段相加,返回新对象) */
|
|
14
|
-
export declare function addUsage(a: AgentNS.Usage, b: AgentNS.Usage): AgentNS.Usage;
|
|
15
|
-
/**
|
|
16
|
-
* 求和一组消息中 assistant 消息的 usage。
|
|
17
|
-
* 非 assistant 消息、以及无 usage 的消息(如被中断的轮次)一律忽略。
|
|
18
|
-
*/
|
|
19
|
-
export declare function sumMessagesUsage(messages: readonly AgentNS.Message[]): AgentNS.Usage;
|
|
20
|
-
//# sourceMappingURL=usage.d.ts.map
|
package/dist/usage.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,4BAA4B;AAC5B,eAAO,MAAM,UAAU,EAAE,OAAO,CAAC,KAIhC,CAAC;AAEF,8BAA8B;AAC9B,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAM1E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,OAAO,CAAC,OAAO,EAAE,GACnC,OAAO,CAAC,KAAK,CASf"}
|
package/dist/usage.js
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Token 用量统计 — 纯函数
|
|
3
|
-
*
|
|
4
|
-
* 数据源为 core 为每条 assistant 消息钉上的 `usage`(`Agent.lastUsage` 的近亲,
|
|
5
|
-
* 由流式响应的最后一个 chunk 写入)。因每轮请求都会重发完整历史,
|
|
6
|
-
* 「各 assistant 消息 usage 之和」即计费口径的累计消耗。
|
|
7
|
-
*
|
|
8
|
-
* 本模块为纯数据与纯函数,不依赖 React / Ink,可直接单测。
|
|
9
|
-
*/
|
|
10
|
-
import { AgentNS } from "@ai-zen/agents-core";
|
|
11
|
-
/** 零用量(复用为累加初值;调用方勿直接修改) */
|
|
12
|
-
export const ZERO_USAGE = {
|
|
13
|
-
prompt_tokens: 0,
|
|
14
|
-
completion_tokens: 0,
|
|
15
|
-
total_tokens: 0,
|
|
16
|
-
};
|
|
17
|
-
/** 累加两个 usage(逐字段相加,返回新对象) */
|
|
18
|
-
export function addUsage(a, b) {
|
|
19
|
-
return {
|
|
20
|
-
prompt_tokens: a.prompt_tokens + b.prompt_tokens,
|
|
21
|
-
completion_tokens: a.completion_tokens + b.completion_tokens,
|
|
22
|
-
total_tokens: a.total_tokens + b.total_tokens,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* 求和一组消息中 assistant 消息的 usage。
|
|
27
|
-
* 非 assistant 消息、以及无 usage 的消息(如被中断的轮次)一律忽略。
|
|
28
|
-
*/
|
|
29
|
-
export function sumMessagesUsage(messages) {
|
|
30
|
-
const acc = { ...ZERO_USAGE };
|
|
31
|
-
for (const message of messages) {
|
|
32
|
-
if (message.role !== AgentNS.Role.Assistant || !message.usage)
|
|
33
|
-
continue;
|
|
34
|
-
acc.prompt_tokens += message.usage.prompt_tokens ?? 0;
|
|
35
|
-
acc.completion_tokens += message.usage.completion_tokens ?? 0;
|
|
36
|
-
acc.total_tokens += message.usage.total_tokens ?? 0;
|
|
37
|
-
}
|
|
38
|
-
return acc;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=usage.js.map
|
package/dist/usage.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usage.js","sourceRoot":"","sources":["../src/usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,4BAA4B;AAC5B,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,aAAa,EAAE,CAAC;IAChB,iBAAiB,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC;CAChB,CAAC;AAEF,8BAA8B;AAC9B,MAAM,UAAU,QAAQ,CAAC,CAAgB,EAAE,CAAgB;IACzD,OAAO;QACL,aAAa,EAAE,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa;QAChD,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB;QAC5D,YAAY,EAAE,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;KAC9C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAoC;IAEpC,MAAM,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;IAC9B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,KAAK;YAAE,SAAS;QACxE,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;QACtD,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC9D,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|