@antaif3ng/til-work 0.2.0 → 0.3.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/README.md +13 -3
- package/dist/core/pricing.d.ts.map +1 -1
- package/dist/core/pricing.js +0 -2
- package/dist/core/pricing.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +2 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/modes/interactive.d.ts.map +1 -1
- package/dist/modes/interactive.js +268 -119
- package/dist/modes/interactive.js.map +1 -1
- package/dist/utils/file-processor.d.ts +2 -2
- package/dist/utils/file-processor.d.ts.map +1 -1
- package/dist/utils/file-processor.js +7 -10
- package/dist/utils/file-processor.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -23,6 +23,14 @@ TIL work 是一个基于大语言模型的命令行 Agent 工具。它可以直
|
|
|
23
23
|
| **安全拦截** | 自动检测并拦截 `rm -rf`、`sudo` 等危险命令 |
|
|
24
24
|
| **多模型** | 支持 Anthropic、OpenAI、Google Gemini 及任意 OpenAI 兼容接口 |
|
|
25
25
|
|
|
26
|
+
## 交互体验
|
|
27
|
+
|
|
28
|
+
- **多行输入**:行尾输入 `\` 再回车、`Ctrl+J` 或 `Alt+Enter` 均可插入换行,`Esc` 取消多行输入
|
|
29
|
+
- **输入框 UI**:带上下边框的输入区域,底部常驻显示当前工作目录和随机操作提示
|
|
30
|
+
- **Placeholder**:空输入时显示换行快捷键提示,输入后自动消失
|
|
31
|
+
- **文件引用**:输入 `@` 后实时搜索文件,方向键选择,文件内容自动注入 LLM 上下文
|
|
32
|
+
- **命令菜单**:输入 `/` 弹出命令列表,方向键循环选择,`Enter` 直接执行,`Tab` 补全
|
|
33
|
+
|
|
26
34
|
## 前置要求
|
|
27
35
|
|
|
28
36
|
- **Node.js** >= 20.6.0(推荐 22+)
|
|
@@ -92,7 +100,9 @@ export OPENAI_BASE_URL=https://api.minimaxi.com/v1
|
|
|
92
100
|
til
|
|
93
101
|
```
|
|
94
102
|
|
|
95
|
-
输入 `/`
|
|
103
|
+
输入 `/` 查看所有可用命令(支持方向键循环选择),输入 `@` 引用文件内容(自动注入到上下文)。
|
|
104
|
+
|
|
105
|
+
支持多行输入:行尾输入 `\` 再回车,或按 `Ctrl+J` / `Alt+Enter` 换行。
|
|
96
106
|
|
|
97
107
|
### 3. 单次执行模式
|
|
98
108
|
|
|
@@ -398,10 +408,10 @@ til --resume abc12345 # 恢复指定会话
|
|
|
398
408
|
实时显示使用率:
|
|
399
409
|
|
|
400
410
|
```
|
|
401
|
-
in:12.3k out:1.2k
|
|
411
|
+
in:12.3k out:1.2k ctx:35%
|
|
402
412
|
```
|
|
403
413
|
|
|
404
|
-
- `in` 输入 token · `out` 输出 token · `
|
|
414
|
+
- `in` 输入 token · `out` 输出 token · `ctx` 上下文占用率
|
|
405
415
|
|
|
406
416
|
## 安全拦截
|
|
407
417
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/core/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAYtD,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAe1E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/core/pricing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAGD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAYtD,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAe1E;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAQnE;AAED,wBAAgB,oBAAoB,CACnC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,GACnB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAItC"}
|
package/dist/core/pricing.js
CHANGED
|
@@ -55,8 +55,6 @@ export function formatUsage(usage, _modelId) {
|
|
|
55
55
|
parts.push(`in:${formatTokenCount(usage.input)}`);
|
|
56
56
|
if (usage.output)
|
|
57
57
|
parts.push(`out:${formatTokenCount(usage.output)}`);
|
|
58
|
-
if (usage.cacheRead)
|
|
59
|
-
parts.push(`cache_r:${formatTokenCount(usage.cacheRead)}`);
|
|
60
58
|
if (usage.cacheWrite)
|
|
61
59
|
parts.push(`cache_w:${formatTokenCount(usage.cacheWrite)}`);
|
|
62
60
|
return parts.join(" ");
|
package/dist/core/pricing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/core/pricing.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/core/pricing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAKN,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,yEAAyE;IACzE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAgBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAKN,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,mBAAmB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kEAAkE;IAClE,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,yEAAyE;IACzE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;CAC7B;AAgBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAqEtE"}
|
|
@@ -47,7 +47,8 @@ ${toolsList}`);
|
|
|
47
47
|
7. **Large outputs**: When output is truncated, inform the user and suggest how to see more.
|
|
48
48
|
8. **Code changes**: When editing code, preserve the existing style and conventions. Make minimal, targeted changes.
|
|
49
49
|
9. **Security**: Never output API keys, passwords, or other secrets. Warn if you detect credentials in files.
|
|
50
|
-
10. **Chinese support**: Respond in the user's language. Support Chinese filenames and content
|
|
50
|
+
10. **Chinese support**: Respond in the user's language. Support Chinese filenames and content.
|
|
51
|
+
11. **File references**: User messages may contain \`<file name="path">content</file>\` blocks. These are file contents the user has explicitly referenced using @ notation. Treat them as the primary context for the user's request — analyze, explain, or operate on these files as instructed.`);
|
|
51
52
|
if (customInstructions) {
|
|
52
53
|
sections.push(`## Custom Instructions\n\n${customInstructions}`);
|
|
53
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAc,MAAM,aAAa,CAAC;AAChE,OAAO,EACN,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,GAG3B,MAAM,aAAa,CAAC;AAarB,MAAM,gBAAgB,GAA2B;IAChD,IAAI,EAAE,mDAAmD;IACzD,IAAI,EAAE,mJAAmJ;IACzJ,KAAK,EAAE,2BAA2B;IAClC,IAAI,EAAE,2DAA2D;IACjE,WAAW,EAAE,wDAAwD;IACrE,YAAY,EAAE,kEAAkE;IAChF,UAAU,EAAE,+EAA+E;IAC3F,SAAS,EAAE,kDAAkD;IAC7D,UAAU,EAAE,sFAAsF;IAClG,QAAQ,EAAE,4KAA4K;IACtL,OAAO,EAAE,iJAAiJ;CAC1J,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,OAA4B;IAC7D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAEnD,MAAM,SAAS,GAAG,KAAK;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACrD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;0EAS2D,CAAC,CAAC;IAE3E,QAAQ,CAAC,IAAI,CAAC;;EAEb,SAAS,EAAE,CAAC,CAAC;IAEd,QAAQ,CAAC,IAAI,CAAC
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../src/core/system-prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAc,MAAM,aAAa,CAAC;AAChE,OAAO,EACN,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,GAG3B,MAAM,aAAa,CAAC;AAarB,MAAM,gBAAgB,GAA2B;IAChD,IAAI,EAAE,mDAAmD;IACzD,IAAI,EAAE,mJAAmJ;IACzJ,KAAK,EAAE,2BAA2B;IAClC,IAAI,EAAE,2DAA2D;IACjE,WAAW,EAAE,wDAAwD;IACrE,YAAY,EAAE,kEAAkE;IAChF,UAAU,EAAE,+EAA+E;IAC3F,SAAS,EAAE,kDAAkD;IAC7D,UAAU,EAAE,sFAAsF;IAClG,QAAQ,EAAE,4KAA4K;IACtL,OAAO,EAAE,iJAAiJ;CAC1J,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAAC,OAA4B;IAC7D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAEnD,MAAM,SAAS,GAAG,KAAK;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;SACrD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;0EAS2D,CAAC,CAAC;IAE3E,QAAQ,CAAC,IAAI,CAAC;;EAEb,SAAS,EAAE,CAAC,CAAC;IAEd,QAAQ,CAAC,IAAI,CAAC;;;;;;;;;;;;mSAYoR,CAAC,CAAC;IAEpS,IAAI,kBAAkB,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CAAC,6BAA6B,kBAAkB,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,6DAA6D;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IAElD,8BAA8B;IAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC1E,MAAM,YAAY,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;IAC/D,IAAI,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE9C,uEAAuE;IACvE,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5D,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,WAAW;YAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,QAAQ,CAAC,IAAI,CAAC;;kBAEG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;kBACtC,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE;uBAC1B,GAAG;QAClB,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE;aACtC,OAAO,CAAC,OAAO;UAClB,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ;WACrB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAC;IAE5C,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/modes/interactive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/modes/interactive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAgSrE,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqjB/E"}
|
|
@@ -25,6 +25,15 @@ const COMMANDS = {
|
|
|
25
25
|
"/config": "查看当前配置",
|
|
26
26
|
"/exit": "退出 TIL",
|
|
27
27
|
};
|
|
28
|
+
const TIPS = [
|
|
29
|
+
"输入 / 查看所有可用命令,方向键选择",
|
|
30
|
+
"使用 /model 切换模型",
|
|
31
|
+
"按 Ctrl+C 或 Esc 中止正在执行的请求",
|
|
32
|
+
"使用 /memory 查看记忆内容",
|
|
33
|
+
"使用 /sessions 查看历史会话",
|
|
34
|
+
"输入 @ 引用文件内容(支持搜索和方向键选择)",
|
|
35
|
+
"换行: 行尾输入 \\ 再回车,或 Ctrl+J / Alt+Enter",
|
|
36
|
+
];
|
|
28
37
|
// ── UI helpers ──
|
|
29
38
|
function getBorderWidth() {
|
|
30
39
|
return Math.min(process.stdout.columns || 80, 80);
|
|
@@ -32,8 +41,16 @@ function getBorderWidth() {
|
|
|
32
41
|
function printBorder(ch = "─") {
|
|
33
42
|
console.log(chalk.dim(ch.repeat(getBorderWidth())));
|
|
34
43
|
}
|
|
44
|
+
function shortenDir(cwd) {
|
|
45
|
+
return cwd.replace(process.env.HOME || "", "~");
|
|
46
|
+
}
|
|
35
47
|
// ── Interactive Popup Menu ──
|
|
36
|
-
const PROMPT_WIDTH = 3; // visible width of " › "
|
|
48
|
+
const PROMPT_WIDTH = 3; // visible width of " › " or " … "
|
|
49
|
+
function resetMenu(menu) {
|
|
50
|
+
menu.visible = false;
|
|
51
|
+
menu.items = [];
|
|
52
|
+
menu.selectedIndex = 0;
|
|
53
|
+
}
|
|
37
54
|
function getCommandEntries(session) {
|
|
38
55
|
const allCmds = Object.keys(COMMANDS);
|
|
39
56
|
const skillCmds = session.getSkillNames().map((n) => `/skill:${n}`);
|
|
@@ -54,13 +71,11 @@ function filterEntries(entries, filter) {
|
|
|
54
71
|
function getModelMenuEntries(filter, session) {
|
|
55
72
|
const entries = [];
|
|
56
73
|
const currentId = session.model.id;
|
|
57
|
-
// Current model first
|
|
58
74
|
entries.push({
|
|
59
75
|
label: currentId,
|
|
60
76
|
detail: "当前",
|
|
61
77
|
value: `/model ${currentId}`,
|
|
62
78
|
});
|
|
63
|
-
// Load config synchronously — config.models is already migrated at startup
|
|
64
79
|
const cfg = session.config;
|
|
65
80
|
if (cfg.models) {
|
|
66
81
|
for (const [id, m] of Object.entries(cfg.models)) {
|
|
@@ -88,44 +103,63 @@ function getFileMenuEntries(prefix, cwd) {
|
|
|
88
103
|
value: s.value,
|
|
89
104
|
}));
|
|
90
105
|
}
|
|
106
|
+
const PLACEHOLDER = "Ctrl+J 或 \\+Enter 换行";
|
|
91
107
|
/**
|
|
92
|
-
* Render the
|
|
93
|
-
*
|
|
94
|
-
*
|
|
108
|
+
* Render the area below the input cursor: popup menu (if any) +
|
|
109
|
+
* underline + status line. Only called at prompt start and on menu
|
|
110
|
+
* state changes — NEVER on every keystroke — so CJK IME is not disturbed.
|
|
95
111
|
*/
|
|
96
|
-
function
|
|
97
|
-
if (!
|
|
112
|
+
function renderBelowArea(menu, below, session, cursorCol) {
|
|
113
|
+
if (!below.active)
|
|
98
114
|
return;
|
|
99
|
-
const
|
|
100
|
-
const
|
|
115
|
+
const menuItemCount = menu.visible && menu.items.length > 0 ? menu.items.length : 0;
|
|
116
|
+
const fixedLines = 2; // underline + status
|
|
117
|
+
const contentLines = menuItemCount + fixedLines;
|
|
118
|
+
const totalLinesToProcess = Math.max(contentLines, below.renderedLines);
|
|
119
|
+
// Pre-scroll: ensure enough vertical space below cursor so that
|
|
120
|
+
// writing \n never causes unexpected scrolling after rendering.
|
|
121
|
+
let preScroll = "";
|
|
122
|
+
for (let i = 0; i < totalLinesToProcess + 1; i++)
|
|
123
|
+
preScroll += "\n";
|
|
124
|
+
preScroll += `\x1b[${totalLinesToProcess + 1}A`;
|
|
101
125
|
let output = "\n";
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
const
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
126
|
+
// Menu items
|
|
127
|
+
if (menuItemCount > 0) {
|
|
128
|
+
const padWidth = menu.type === "file" ? 24 : 16;
|
|
129
|
+
for (let i = 0; i < menu.items.length; i++) {
|
|
130
|
+
const { label, detail } = menu.items[i];
|
|
131
|
+
const isSelected = i === menu.selectedIndex;
|
|
132
|
+
if (isSelected) {
|
|
133
|
+
output += ` ${chalk.bgCyan.black(` ${label.padEnd(padWidth)}`)} ${chalk.white(detail)}`;
|
|
134
|
+
}
|
|
135
|
+
else {
|
|
136
|
+
output += ` ${chalk.cyan(` ${label.padEnd(padWidth)}`)} ${chalk.dim(detail)}`;
|
|
137
|
+
}
|
|
138
|
+
output += "\x1b[K\n";
|
|
110
139
|
}
|
|
111
|
-
output += "\x1b[K\n";
|
|
112
140
|
}
|
|
113
|
-
|
|
141
|
+
// Underline
|
|
142
|
+
output += chalk.dim("─".repeat(getBorderWidth())) + "\x1b[K\n";
|
|
143
|
+
// Status line
|
|
144
|
+
const dir = shortenDir(session.cwd);
|
|
145
|
+
output += chalk.dim(` ${dir} · Tip: ${below.tip}`) + "\x1b[K\n";
|
|
146
|
+
// Clear stale lines from previous render
|
|
147
|
+
for (let i = contentLines; i < below.renderedLines; i++) {
|
|
114
148
|
output += "\x1b[K\n";
|
|
115
149
|
}
|
|
116
|
-
|
|
117
|
-
const linesToGoUp = 1 +
|
|
150
|
+
below.renderedLines = contentLines;
|
|
151
|
+
const linesToGoUp = 1 + totalLinesToProcess;
|
|
118
152
|
output += `\x1b[${linesToGoUp}A\r`;
|
|
119
153
|
if (cursorCol > 0) {
|
|
120
154
|
output += `\x1b[${cursorCol}C`;
|
|
121
155
|
}
|
|
122
|
-
process.stdout.write(output);
|
|
156
|
+
process.stdout.write(preScroll + output);
|
|
123
157
|
}
|
|
124
|
-
function
|
|
125
|
-
if (
|
|
158
|
+
function clearBelowArea(below, cursorCol) {
|
|
159
|
+
if (below.renderedLines === 0)
|
|
126
160
|
return;
|
|
127
161
|
let output = "";
|
|
128
|
-
const totalLines =
|
|
162
|
+
const totalLines = below.renderedLines + 1;
|
|
129
163
|
for (let i = 0; i < totalLines; i++) {
|
|
130
164
|
output += "\n\x1b[K";
|
|
131
165
|
}
|
|
@@ -134,10 +168,11 @@ function clearMenu(menu, cursorCol = 0) {
|
|
|
134
168
|
output += `\x1b[${cursorCol}C`;
|
|
135
169
|
}
|
|
136
170
|
process.stdout.write(output);
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
171
|
+
below.renderedLines = 0;
|
|
172
|
+
}
|
|
173
|
+
/** Show grey placeholder text when input is empty, using cursor save/restore. */
|
|
174
|
+
function showPlaceholder() {
|
|
175
|
+
process.stdout.write(`\x1b[s${chalk.dim(PLACEHOLDER)}\x1b[u`);
|
|
141
176
|
}
|
|
142
177
|
// ── Spinner ──
|
|
143
178
|
const SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
@@ -185,9 +220,18 @@ async function printExitMessage(session) {
|
|
|
185
220
|
console.log(chalk.dim(`继续最近会话: ${chalk.cyan("til --continue")}`));
|
|
186
221
|
await session.shutdown();
|
|
187
222
|
}
|
|
223
|
+
// ── Tips helper ──
|
|
224
|
+
function getRandomTip(session) {
|
|
225
|
+
const tips = [...TIPS];
|
|
226
|
+
if (session.skills.length > 0)
|
|
227
|
+
tips.push("使用 /skills 查看已加载的技能");
|
|
228
|
+
const extInfo = session.getExtensionInfo();
|
|
229
|
+
if (extInfo.length > 0)
|
|
230
|
+
tips.push("使用 /extensions 查看已加载的扩展");
|
|
231
|
+
return tips[Math.floor(Math.random() * tips.length)];
|
|
232
|
+
}
|
|
188
233
|
// ── Main interactive mode ──
|
|
189
234
|
export async function runInteractiveMode(options) {
|
|
190
|
-
// Pending permission prompts queue — resolved by the readline prompt
|
|
191
235
|
let pendingPermissionResolve = null;
|
|
192
236
|
const permissionPrompt = (question) => {
|
|
193
237
|
return new Promise((resolve) => {
|
|
@@ -210,6 +254,10 @@ export async function runInteractiveMode(options) {
|
|
|
210
254
|
let firstTokenReceived = false;
|
|
211
255
|
let insideThinkBlock = false;
|
|
212
256
|
let thinkTagBuffer = "";
|
|
257
|
+
// Multi-line input state
|
|
258
|
+
const multiLineBuffer = [];
|
|
259
|
+
// Below-area state: menu + underline + status
|
|
260
|
+
const below = { renderedLines: 0, active: false, tip: "" };
|
|
213
261
|
session.subscribe((event) => {
|
|
214
262
|
switch (event.type) {
|
|
215
263
|
case "agent_start":
|
|
@@ -365,13 +413,11 @@ export async function runInteractiveMode(options) {
|
|
|
365
413
|
spinner = null;
|
|
366
414
|
}
|
|
367
415
|
isStreaming = false;
|
|
368
|
-
// Check for errors
|
|
369
416
|
const lastMsg = event.messages?.[event.messages.length - 1];
|
|
370
417
|
if (lastMsg && "stopReason" in lastMsg && lastMsg.stopReason === "error") {
|
|
371
418
|
const errText = lastMsg.errorMessage || "未知错误";
|
|
372
419
|
process.stdout.write(chalk.red(`\n ✗ 错误: ${errText}\n`));
|
|
373
420
|
}
|
|
374
|
-
// Show per-turn usage summary
|
|
375
421
|
const turnUsage = session.getLastTurnUsageSummary();
|
|
376
422
|
const ctxInfo = session.getContextUsagePercent();
|
|
377
423
|
if (turnUsage) {
|
|
@@ -382,7 +428,7 @@ export async function runInteractiveMode(options) {
|
|
|
382
428
|
ctxColor = chalk.yellow;
|
|
383
429
|
process.stdout.write(chalk.dim(`\n ${turnUsage} ctx:${ctxColor(ctxInfo.display)}`));
|
|
384
430
|
}
|
|
385
|
-
process.stdout.write("\n");
|
|
431
|
+
process.stdout.write("\n\n");
|
|
386
432
|
break;
|
|
387
433
|
}
|
|
388
434
|
}
|
|
@@ -391,7 +437,6 @@ export async function runInteractiveMode(options) {
|
|
|
391
437
|
visible: false,
|
|
392
438
|
items: [],
|
|
393
439
|
selectedIndex: 0,
|
|
394
|
-
renderedLines: 0,
|
|
395
440
|
type: "command",
|
|
396
441
|
};
|
|
397
442
|
const completer = (line) => {
|
|
@@ -406,7 +451,59 @@ export async function runInteractiveMode(options) {
|
|
|
406
451
|
const getCursorCol = () => PROMPT_WIDTH + (rl.cursor ?? 0);
|
|
407
452
|
const allEntries = getCommandEntries(session);
|
|
408
453
|
const originalTtyWrite = rl._ttyWrite;
|
|
454
|
+
// Helper: update menu visibility based on current line content
|
|
455
|
+
function updateMenuForLine(line, session) {
|
|
456
|
+
if (line.startsWith("/model ")) {
|
|
457
|
+
const modelFilter = line.slice("/model ".length);
|
|
458
|
+
if (!["add ", "rm ", "default "].some((sub) => modelFilter.startsWith(sub))) {
|
|
459
|
+
const entries = getModelMenuEntries(modelFilter, session);
|
|
460
|
+
if (entries.length > 0) {
|
|
461
|
+
menu.visible = true;
|
|
462
|
+
menu.items = entries;
|
|
463
|
+
menu.type = "command";
|
|
464
|
+
menu.selectedIndex = 0;
|
|
465
|
+
}
|
|
466
|
+
else {
|
|
467
|
+
resetMenu(menu);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
else {
|
|
471
|
+
resetMenu(menu);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
else if (line.startsWith("/") && !line.includes(" ")) {
|
|
475
|
+
const filtered = filterEntries(allEntries, line);
|
|
476
|
+
if (filtered.length > 0) {
|
|
477
|
+
menu.visible = true;
|
|
478
|
+
menu.items = filtered;
|
|
479
|
+
menu.type = "command";
|
|
480
|
+
menu.selectedIndex = 0;
|
|
481
|
+
}
|
|
482
|
+
else {
|
|
483
|
+
resetMenu(menu);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
else {
|
|
487
|
+
const atPrefix = extractAtPrefix(line);
|
|
488
|
+
if (atPrefix !== null) {
|
|
489
|
+
const entries = getFileMenuEntries(atPrefix, session.cwd);
|
|
490
|
+
if (entries.length > 0) {
|
|
491
|
+
menu.visible = true;
|
|
492
|
+
menu.items = entries;
|
|
493
|
+
menu.type = "file";
|
|
494
|
+
menu.selectedIndex = 0;
|
|
495
|
+
}
|
|
496
|
+
else {
|
|
497
|
+
resetMenu(menu);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
else {
|
|
501
|
+
resetMenu(menu);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
409
505
|
rl._ttyWrite = function (s, key) {
|
|
506
|
+
// ── Permission prompt passthrough ──
|
|
410
507
|
if (pendingPermissionResolve && s) {
|
|
411
508
|
const resolve = pendingPermissionResolve;
|
|
412
509
|
pendingPermissionResolve = null;
|
|
@@ -414,6 +511,7 @@ export async function runInteractiveMode(options) {
|
|
|
414
511
|
resolve(s);
|
|
415
512
|
return;
|
|
416
513
|
}
|
|
514
|
+
// ── Streaming: only Esc to abort ──
|
|
417
515
|
if (isStreaming) {
|
|
418
516
|
if (key && key.name === "escape") {
|
|
419
517
|
if (spinner) {
|
|
@@ -428,28 +526,55 @@ export async function runInteractiveMode(options) {
|
|
|
428
526
|
return originalTtyWrite.call(this, s, key);
|
|
429
527
|
}
|
|
430
528
|
const cursorCol = getCursorCol();
|
|
529
|
+
const keyName = key?.name;
|
|
530
|
+
const isReturnKey = keyName === "return" || keyName === "enter";
|
|
531
|
+
// ── Multi-line newline insertion ──
|
|
532
|
+
// 1. Shift+Enter / Alt+Enter (terminals that report modifier flags)
|
|
533
|
+
// 2. Ctrl+J: raw char is always \n (0x0A), distinct from Enter's \r (0x0D)
|
|
534
|
+
// 3. Raw \x1b\r from Kitty shift+enter mapping or legacy Alt+Enter
|
|
535
|
+
const isNewlineInsert = (key && isReturnKey && (key.shift === true || key.meta === true)) ||
|
|
536
|
+
s === "\n" ||
|
|
537
|
+
s === "\x1b\r";
|
|
538
|
+
if (isNewlineInsert) {
|
|
539
|
+
clearBelowArea(below, cursorCol);
|
|
540
|
+
multiLineBuffer.push(rl.line ?? "");
|
|
541
|
+
process.stdout.write("\n");
|
|
542
|
+
rl.line = "";
|
|
543
|
+
rl.cursor = 0;
|
|
544
|
+
rl._prompt = chalk.cyan(" … ");
|
|
545
|
+
process.stdout.write(chalk.cyan(" … "));
|
|
546
|
+
resetMenu(menu);
|
|
547
|
+
renderBelowArea(menu, below, session, PROMPT_WIDTH);
|
|
548
|
+
return;
|
|
549
|
+
}
|
|
550
|
+
// ── Menu visible: handle navigation & selection ──
|
|
431
551
|
if (menu.visible) {
|
|
432
|
-
if (key &&
|
|
433
|
-
menu.selectedIndex =
|
|
434
|
-
|
|
552
|
+
if (key && keyName === "up") {
|
|
553
|
+
menu.selectedIndex = menu.selectedIndex <= 0
|
|
554
|
+
? menu.items.length - 1
|
|
555
|
+
: menu.selectedIndex - 1;
|
|
556
|
+
renderBelowArea(menu, below, session, cursorCol);
|
|
435
557
|
return;
|
|
436
558
|
}
|
|
437
|
-
if (key &&
|
|
438
|
-
menu.selectedIndex =
|
|
439
|
-
|
|
559
|
+
if (key && keyName === "down") {
|
|
560
|
+
menu.selectedIndex = menu.selectedIndex >= menu.items.length - 1
|
|
561
|
+
? 0
|
|
562
|
+
: menu.selectedIndex + 1;
|
|
563
|
+
renderBelowArea(menu, below, session, cursorCol);
|
|
440
564
|
return;
|
|
441
565
|
}
|
|
442
|
-
if (key && (
|
|
566
|
+
if (key && (isReturnKey || keyName === "tab")) {
|
|
443
567
|
const selected = menu.items[menu.selectedIndex];
|
|
444
568
|
const menuType = menu.type;
|
|
445
569
|
if (selected) {
|
|
446
|
-
|
|
570
|
+
resetMenu(menu);
|
|
447
571
|
if (menuType === "command") {
|
|
448
572
|
rl.line = "";
|
|
449
573
|
rl.cursor = 0;
|
|
450
574
|
process.stdout.write("\r\x1b[K");
|
|
451
575
|
process.stdout.write(chalk.cyan(" › "));
|
|
452
|
-
if (
|
|
576
|
+
if (isReturnKey) {
|
|
577
|
+
clearBelowArea(below, PROMPT_WIDTH);
|
|
453
578
|
rl.line = selected.value;
|
|
454
579
|
rl.cursor = selected.value.length;
|
|
455
580
|
process.stdout.write(selected.value);
|
|
@@ -459,6 +584,7 @@ export async function runInteractiveMode(options) {
|
|
|
459
584
|
rl.line = selected.value;
|
|
460
585
|
rl.cursor = selected.value.length;
|
|
461
586
|
process.stdout.write(selected.value);
|
|
587
|
+
renderBelowArea(menu, below, session, getCursorCol());
|
|
462
588
|
return;
|
|
463
589
|
}
|
|
464
590
|
}
|
|
@@ -475,68 +601,87 @@ export async function runInteractiveMode(options) {
|
|
|
475
601
|
process.stdout.write(chalk.cyan(" › "));
|
|
476
602
|
process.stdout.write(newLine);
|
|
477
603
|
}
|
|
604
|
+
renderBelowArea(menu, below, session, getCursorCol());
|
|
478
605
|
return;
|
|
479
606
|
}
|
|
480
607
|
}
|
|
481
608
|
}
|
|
482
|
-
if (key &&
|
|
483
|
-
|
|
609
|
+
if (key && keyName === "escape") {
|
|
610
|
+
resetMenu(menu);
|
|
611
|
+
renderBelowArea(menu, below, session, cursorCol);
|
|
484
612
|
return;
|
|
485
613
|
}
|
|
486
614
|
}
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
const entries = getModelMenuEntries(modelFilter, session);
|
|
494
|
-
if (entries.length > 0) {
|
|
495
|
-
menu.visible = true;
|
|
496
|
-
menu.items = entries;
|
|
497
|
-
menu.type = "command";
|
|
498
|
-
menu.selectedIndex = 0;
|
|
499
|
-
renderMenu(menu, newCursorCol);
|
|
500
|
-
}
|
|
501
|
-
else if (menu.visible) {
|
|
502
|
-
clearMenu(menu, newCursorCol);
|
|
615
|
+
// ── Escape: cancel multi-line or ignore ──
|
|
616
|
+
if (key && keyName === "escape") {
|
|
617
|
+
if (multiLineBuffer.length > 0) {
|
|
618
|
+
clearBelowArea(below, cursorCol);
|
|
619
|
+
for (let i = 0; i < multiLineBuffer.length; i++) {
|
|
620
|
+
process.stdout.write("\x1b[1A\x1b[2K");
|
|
503
621
|
}
|
|
622
|
+
process.stdout.write("\r\x1b[K");
|
|
623
|
+
multiLineBuffer.length = 0;
|
|
624
|
+
rl.line = "";
|
|
625
|
+
rl.cursor = 0;
|
|
626
|
+
rl._prompt = chalk.cyan(" › ");
|
|
627
|
+
process.stdout.write(chalk.cyan(" › "));
|
|
628
|
+
renderBelowArea(menu, below, session, PROMPT_WIDTH);
|
|
629
|
+
showPlaceholder();
|
|
630
|
+
return;
|
|
504
631
|
}
|
|
505
|
-
|
|
506
|
-
clearMenu(menu, newCursorCol);
|
|
507
|
-
}
|
|
632
|
+
return;
|
|
508
633
|
}
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
634
|
+
// ── Enter: submit or backslash-newline ──
|
|
635
|
+
if (key && isReturnKey) {
|
|
636
|
+
const currentLine = rl.line ?? "";
|
|
637
|
+
const cursor = rl.cursor ?? 0;
|
|
638
|
+
// Backslash+Enter → newline (pi-mono style, works in ALL terminals)
|
|
639
|
+
if (cursor > 0 && currentLine[cursor - 1] === "\\") {
|
|
640
|
+
clearBelowArea(below, cursorCol);
|
|
641
|
+
const before = currentLine.slice(0, cursor - 1);
|
|
642
|
+
const after = currentLine.slice(cursor);
|
|
643
|
+
multiLineBuffer.push(before + after);
|
|
644
|
+
process.stdout.write("\n");
|
|
645
|
+
rl.line = "";
|
|
646
|
+
rl.cursor = 0;
|
|
647
|
+
rl._prompt = chalk.cyan(" … ");
|
|
648
|
+
process.stdout.write(chalk.cyan(" … "));
|
|
649
|
+
resetMenu(menu);
|
|
650
|
+
renderBelowArea(menu, below, session, PROMPT_WIDTH);
|
|
651
|
+
return;
|
|
517
652
|
}
|
|
518
|
-
|
|
519
|
-
|
|
653
|
+
// Normal submit
|
|
654
|
+
clearBelowArea(below, cursorCol);
|
|
655
|
+
below.active = false;
|
|
656
|
+
if (multiLineBuffer.length > 0) {
|
|
657
|
+
const fullInput = [...multiLineBuffer, currentLine].join("\n");
|
|
658
|
+
multiLineBuffer.length = 0;
|
|
659
|
+
rl.line = fullInput;
|
|
660
|
+
rl.cursor = fullInput.length;
|
|
661
|
+
rl._prompt = chalk.cyan(" › ");
|
|
520
662
|
}
|
|
663
|
+
originalTtyWrite.call(this, s, key);
|
|
664
|
+
return;
|
|
521
665
|
}
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
666
|
+
// ── Normal key processing ──
|
|
667
|
+
const prevMenuVisible = menu.visible;
|
|
668
|
+
const prevMenuItemCount = menu.items.length;
|
|
669
|
+
const prevLine = rl.line ?? "";
|
|
670
|
+
originalTtyWrite.call(this, s, key);
|
|
671
|
+
const newLine = rl.line ?? "";
|
|
672
|
+
updateMenuForLine(newLine, session);
|
|
673
|
+
// Clear placeholder remnants when first character is typed
|
|
674
|
+
if (prevLine.length === 0 && newLine.length > 0) {
|
|
675
|
+
process.stdout.write("\x1b[K");
|
|
676
|
+
}
|
|
677
|
+
const menuChanged = menu.visible !== prevMenuVisible ||
|
|
678
|
+
(menu.visible && menu.items.length !== prevMenuItemCount);
|
|
679
|
+
if (menuChanged) {
|
|
680
|
+
renderBelowArea(menu, below, session, getCursorCol());
|
|
681
|
+
}
|
|
682
|
+
// Re-show placeholder when input is empty
|
|
683
|
+
if (newLine.length === 0 && multiLineBuffer.length === 0 && !menu.visible) {
|
|
684
|
+
showPlaceholder();
|
|
540
685
|
}
|
|
541
686
|
};
|
|
542
687
|
if (process.stdin.isTTY) {
|
|
@@ -544,13 +689,22 @@ export async function runInteractiveMode(options) {
|
|
|
544
689
|
}
|
|
545
690
|
const promptUser = () => {
|
|
546
691
|
return new Promise((resolve) => {
|
|
547
|
-
|
|
692
|
+
clearBelowArea(below, 0);
|
|
693
|
+
resetMenu(menu);
|
|
694
|
+
multiLineBuffer.length = 0;
|
|
695
|
+
below.active = true;
|
|
696
|
+
below.tip = getRandomTip(session);
|
|
697
|
+
console.log();
|
|
548
698
|
printBorder();
|
|
549
699
|
rl.question(chalk.cyan(" › "), (answer) => {
|
|
550
|
-
|
|
700
|
+
clearBelowArea(below, getCursorCol());
|
|
701
|
+
below.active = false;
|
|
551
702
|
printBorder();
|
|
552
703
|
resolve(answer);
|
|
553
704
|
});
|
|
705
|
+
// Render placeholder + underline + status below input
|
|
706
|
+
showPlaceholder();
|
|
707
|
+
renderBelowArea(menu, below, session, PROMPT_WIDTH);
|
|
554
708
|
});
|
|
555
709
|
};
|
|
556
710
|
process.on("SIGINT", () => {
|
|
@@ -563,6 +717,20 @@ export async function runInteractiveMode(options) {
|
|
|
563
717
|
process.stdout.write(chalk.yellow("\n⚡ 已中止 (Ctrl+C)\n"));
|
|
564
718
|
printSessionTip(session);
|
|
565
719
|
}
|
|
720
|
+
else if (multiLineBuffer.length > 0) {
|
|
721
|
+
clearBelowArea(below, getCursorCol());
|
|
722
|
+
for (let i = 0; i < multiLineBuffer.length; i++) {
|
|
723
|
+
process.stdout.write("\x1b[1A\x1b[2K");
|
|
724
|
+
}
|
|
725
|
+
process.stdout.write("\r\x1b[K");
|
|
726
|
+
multiLineBuffer.length = 0;
|
|
727
|
+
rl.line = "";
|
|
728
|
+
rl.cursor = 0;
|
|
729
|
+
rl._prompt = chalk.cyan(" › ");
|
|
730
|
+
process.stdout.write(chalk.cyan(" › "));
|
|
731
|
+
showPlaceholder();
|
|
732
|
+
renderBelowArea(menu, below, session, PROMPT_WIDTH);
|
|
733
|
+
}
|
|
566
734
|
else {
|
|
567
735
|
console.log(chalk.dim("\n(输入 /exit 或 Ctrl+D 退出)"));
|
|
568
736
|
}
|
|
@@ -585,9 +753,10 @@ export async function runInteractiveMode(options) {
|
|
|
585
753
|
continue;
|
|
586
754
|
}
|
|
587
755
|
try {
|
|
588
|
-
// Expand @path references into file contents
|
|
589
756
|
const { expandedText, fileContent } = extractAtReferences(trimmed, session.cwd);
|
|
590
|
-
const finalInput = fileContent
|
|
757
|
+
const finalInput = fileContent
|
|
758
|
+
? `${expandedText}\n\n<referenced_files>\n${fileContent}</referenced_files>`
|
|
759
|
+
: expandedText;
|
|
591
760
|
await session.prompt(finalInput);
|
|
592
761
|
}
|
|
593
762
|
catch (err) {
|
|
@@ -612,7 +781,6 @@ async function handleCommand(input, session) {
|
|
|
612
781
|
break;
|
|
613
782
|
case "/model": {
|
|
614
783
|
const sub = args[0];
|
|
615
|
-
// /model — show current + configured models
|
|
616
784
|
if (!sub) {
|
|
617
785
|
const cfg = await loadConfig();
|
|
618
786
|
const configuredModels = cfg.models ?? {};
|
|
@@ -639,7 +807,6 @@ async function handleCommand(input, session) {
|
|
|
639
807
|
console.log(chalk.dim(` /model rm <id> 删除模型\n`));
|
|
640
808
|
break;
|
|
641
809
|
}
|
|
642
|
-
// /model default <id> — set persistent default
|
|
643
810
|
if (sub === "default") {
|
|
644
811
|
const modelId = args[1];
|
|
645
812
|
if (!modelId) {
|
|
@@ -653,7 +820,6 @@ async function handleCommand(input, session) {
|
|
|
653
820
|
console.log(chalk.green(`\n 默认模型已设为: ${modelId} (已同步切换)\n`));
|
|
654
821
|
break;
|
|
655
822
|
}
|
|
656
|
-
// /model add <id> [baseUrl] [apiKey]
|
|
657
823
|
if (sub === "add") {
|
|
658
824
|
const modelId = args[1];
|
|
659
825
|
if (!modelId) {
|
|
@@ -675,7 +841,6 @@ async function handleCommand(input, session) {
|
|
|
675
841
|
console.log(chalk.dim(` 切换使用: /model ${modelId}\n`));
|
|
676
842
|
break;
|
|
677
843
|
}
|
|
678
|
-
// /model rm <id>
|
|
679
844
|
if (sub === "rm") {
|
|
680
845
|
const modelId = args[1];
|
|
681
846
|
if (!modelId) {
|
|
@@ -692,7 +857,6 @@ async function handleCommand(input, session) {
|
|
|
692
857
|
console.log(chalk.green(`\n 已删除: ${modelId}\n`));
|
|
693
858
|
break;
|
|
694
859
|
}
|
|
695
|
-
// /model <id> — switch model
|
|
696
860
|
try {
|
|
697
861
|
session.switchModel(sub);
|
|
698
862
|
console.log(chalk.green(`\n 已切换到: ${sub}\n`));
|
|
@@ -913,7 +1077,6 @@ async function handleCommand(input, session) {
|
|
|
913
1077
|
}
|
|
914
1078
|
break;
|
|
915
1079
|
}
|
|
916
|
-
// Try extension-registered commands
|
|
917
1080
|
const extCmd = cmd.slice(1);
|
|
918
1081
|
const extCommands = session.getExtensionCommands();
|
|
919
1082
|
if (extCommands.has(extCmd)) {
|
|
@@ -1014,7 +1177,7 @@ function countVisualLines(text, termWidth) {
|
|
|
1014
1177
|
}
|
|
1015
1178
|
function printBanner(session) {
|
|
1016
1179
|
const modelId = session.model.name || session.model.id;
|
|
1017
|
-
const dir = session.cwd
|
|
1180
|
+
const dir = shortenDir(session.cwd);
|
|
1018
1181
|
const sm = session.sessionManager;
|
|
1019
1182
|
console.log();
|
|
1020
1183
|
console.log(chalk.bold.cyan(">_") + " " + chalk.bold("欢迎使用千岛湖 Til-Work") + " " + chalk.dim(`v${VERSION}`));
|
|
@@ -1036,21 +1199,7 @@ function printBanner(session) {
|
|
|
1036
1199
|
const totalTools = extInfo.reduce((sum, e) => sum + e.toolCount, 0);
|
|
1037
1200
|
console.log(` ${chalk.dim("extensions")} ${chalk.white(String(extInfo.length))} 个已加载 (${totalTools} 工具)`);
|
|
1038
1201
|
}
|
|
1039
|
-
const
|
|
1040
|
-
"输入 / 查看所有可用命令,方向键选择",
|
|
1041
|
-
"使用 /model 切换模型",
|
|
1042
|
-
"按 Ctrl+C 或 Esc 中止正在执行的请求",
|
|
1043
|
-
"使用 /memory 查看记忆内容",
|
|
1044
|
-
"使用 /sessions 查看历史会话",
|
|
1045
|
-
"输入 @ 引用文件内容(支持搜索和方向键选择)",
|
|
1046
|
-
];
|
|
1047
|
-
if (session.skills.length > 0) {
|
|
1048
|
-
tips.push("使用 /skills 查看已加载的技能");
|
|
1049
|
-
}
|
|
1050
|
-
if (extInfo.length > 0) {
|
|
1051
|
-
tips.push("使用 /extensions 查看已加载的扩展");
|
|
1052
|
-
}
|
|
1053
|
-
const tip = tips[Math.floor(Math.random() * tips.length)];
|
|
1202
|
+
const tip = getRandomTip(session);
|
|
1054
1203
|
console.log(`\n ${chalk.bold("Tip:")} ${chalk.italic(tip)}\n`);
|
|
1055
1204
|
}
|
|
1056
1205
|
//# sourceMappingURL=interactive.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/modes/interactive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/modes/interactive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAuB,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,QAAQ,GAA2B;IACxC,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,YAAY;IACtB,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,kBAAkB;IAC1B,aAAa,EAAE,kBAAkB;IACjC,SAAS,EAAE,UAAU;IACrB,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE,aAAa;IACvB,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,QAAQ;CACjB,CAAC;AAEF,MAAM,IAAI,GAAG;IACZ,qBAAqB;IACrB,gBAAgB;IAChB,0BAA0B;IAC1B,mBAAmB;IACnB,qBAAqB;IACrB,yBAAyB;IACzB,sCAAsC;CACtC,CAAC;AAEF,mBAAmB;AAEnB,SAAS,cAAc;IACtB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,GAAG,GAAG;IAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,+BAA+B;AAE/B,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,kCAAkC;AAW1D,SAAS,SAAS,CAAC,IAAoB;IACtC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAmB;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACpE,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAChC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACN,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;KAClF,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAoB,EAAE,MAAc;IAC1D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,OAAO,CAAC;IACnC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAE,OAAmB;IAC/D,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IAEnC,OAAO,CAAC,IAAI,CAAC;QACZ,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,UAAU,SAAS,EAAE;KAC5B,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,EAAE,KAAK,SAAS;gBAAE,SAAS;YAC/B,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;gBAC7B,KAAK,EAAE,UAAU,EAAE,EAAE;aACrB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,OAAO,CAAC;IAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,GAAW;IACtD,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,KAAK,EAAE,CAAC,CAAC,OAAO;QAChB,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;QACzC,KAAK,EAAE,CAAC,CAAC,KAAK;KACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAQ3C;;;;GAIG;AACH,SAAS,eAAe,CACvB,IAAoB,EACpB,KAAiB,EACjB,OAAmB,EACnB,SAAiB;IAEjB,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO;IAE1B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,qBAAqB;IAC3C,MAAM,YAAY,GAAG,aAAa,GAAG,UAAU,CAAC;IAChD,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAExE,gEAAgE;IAChE,gEAAgE;IAChE,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,SAAS,IAAI,IAAI,CAAC;IACpE,SAAS,IAAI,QAAQ,mBAAmB,GAAG,CAAC,GAAG,CAAC;IAEhD,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,aAAa;IACb,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC;YAC5C,IAAI,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1F,CAAC;iBAAM,CAAC;gBACP,MAAM,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAChF,CAAC;YACD,MAAM,IAAI,UAAU,CAAC;QACtB,CAAC;IACF,CAAC;IAED,YAAY;IACZ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;IAE/D,cAAc;IACd,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,WAAW,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC;IAEhE,yCAAyC;IACzC,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACzD,MAAM,IAAI,UAAU,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,aAAa,GAAG,YAAY,CAAC;IAEnC,MAAM,WAAW,GAAG,CAAC,GAAG,mBAAmB,CAAC;IAC5C,MAAM,IAAI,QAAQ,WAAW,KAAK,CAAC;IACnC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,SAAS,GAAG,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,cAAc,CAAC,KAAiB,EAAE,SAAiB;IAC3D,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC;QAAE,OAAO;IAEtC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;IAE3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,UAAU,CAAC;IACtB,CAAC;IAED,MAAM,IAAI,QAAQ,UAAU,KAAK,CAAC;IAClC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,QAAQ,SAAS,GAAG,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,iFAAiF;AACjF,SAAS,eAAe;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAED,gBAAgB;AAEhB,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1E,MAAM,OAAO;IACJ,KAAK,GAA0C,IAAI,CAAC;IACpD,QAAQ,GAAG,CAAC,CAAC;IACb,IAAI,CAAS;IAErB,YAAY,IAAY;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,IAAY;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,SAAkB;QACtB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACjC,IAAI,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;QACxC,CAAC;IACF,CAAC;IAEO,MAAM;QACb,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACpE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;CACD;AAED,qBAAqB;AAErB,SAAS,eAAe,CAAC,OAAmB;IAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAmB;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;IAC/C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,oBAAoB;AAEpB,SAAS,YAAY,CAAC,OAAmB;IACxC,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,8BAA8B;AAE9B,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAuB;IAC/D,IAAI,wBAAwB,GAAsC,IAAI,CAAC;IAEvE,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAmB,EAAE;QAC9D,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACtC,wBAAwB,GAAG,OAAO,CAAC;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAChC,OAAO,CAAC,iBAAiB,GAAG,4BAA4B,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7C,cAAc,CAAC,KAAK,EAAE,CAAC;IAEvB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEjD,cAAc,CAAC,IAAI,EAAE,CAAC;IACtB,WAAW,CAAC,OAAO,CAAC,CAAC;IAErB,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAC1B,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,OAAO,GAAmB,IAAI,CAAC;IACnC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,cAAc,GAAG,EAAE,CAAC;IAExB,yBAAyB;IACzB,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,8CAA8C;IAC9C,MAAM,KAAK,GAAe,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IAEvE,OAAO,CAAC,SAAS,CAAC,CAAC,KAAiB,EAAE,EAAE;QACvC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,aAAa;gBACjB,aAAa,GAAG,EAAE,CAAC;gBACnB,gBAAgB,GAAG,EAAE,CAAC;gBACtB,WAAW,GAAG,IAAI,CAAC;gBACnB,kBAAkB,GAAG,KAAK,CAAC;gBAC3B,gBAAgB,GAAG,KAAK,CAAC;gBACzB,cAAc,GAAG,EAAE,CAAC;gBACpB,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChC,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM;YAEP,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACvB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjB,aAAa,IAAI,KAAK,CAAC,KAAK,CAAC;oBAE7B,IAAI,IAAI,GAAG,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;oBACxC,cAAc,GAAG,EAAE,CAAC;oBACpB,IAAI,UAAU,GAAG,EAAE,CAAC;oBACpB,IAAI,SAAS,GAAG,EAAE,CAAC;oBAEnB,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,IAAI,gBAAgB,EAAE,CAAC;4BACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;4BAC1C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAC;gCACrB,SAAS,IAAI,IAAI,CAAC;gCAClB,MAAM;4BACP,CAAC;4BACD,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;4BACrC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;4BAChC,gBAAgB,GAAG,KAAK,CAAC;wBAC1B,CAAC;6BAAM,CAAC;4BACP,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;4BACxC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;gCACpB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gCACzC,IAAI,UAAU,KAAK,CAAC,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;oCACvG,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oCACxC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;gCACzC,CAAC;qCAAM,CAAC;oCACP,UAAU,IAAI,IAAI,CAAC;gCACpB,CAAC;gCACD,MAAM;4BACP,CAAC;4BACD,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;4BACrC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;4BAC/B,gBAAgB,GAAG,IAAI,CAAC;wBACzB,CAAC;oBACF,CAAC;oBAED,MAAM,SAAS,GAAG,UAAU,IAAI,SAAS,CAAC;oBAC1C,IAAI,SAAS,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACtC,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,IAAI,OAAO,EAAE,CAAC;4BAAC,OAAO,CAAC,IAAI,EAAE,CAAC;4BAAC,OAAO,GAAG,IAAI,CAAC;wBAAC,CAAC;wBAChD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC5B,CAAC;oBAED,IAAI,SAAS,EAAE,CAAC;wBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;wBAClD,gBAAgB,IAAI,SAAS,CAAC;oBAC/B,CAAC;oBACD,IAAI,UAAU,EAAE,CAAC;wBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC9C,gBAAgB,IAAI,UAAU,CAAC;oBAChC,CAAC;gBACF,CAAC;gBACD,MAAM;YACP,CAAC;YAED,KAAK,aAAa,CAAC,CAAC,CAAC;gBACpB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBACxC,MAAM,YAAY,GAAG,KAAK,CAAC,OAA2B,CAAC;oBACvD,IAAI,QAAQ,GAAG,YAAY,CAAC,OAAO;yBACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;yBAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAS,CAAC,IAAI,CAAC;yBAC3B,IAAI,CAAC,EAAE,CAAC,CAAC;oBAEX,MAAM,WAAW,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;oBACjD,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAE7C,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC;wBAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;wBAC/C,MAAM,WAAW,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;wBAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;4BACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;wBACxC,CAAC;wBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;wBAElC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC5B,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;4BACnD,IAAI,YAAY,EAAE,CAAC;gCAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,CAAC;4BAC/D,CAAC;wBACF,CAAC;wBACD,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;4BACtB,IAAI,CAAC;gCACJ,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;gCAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;4BACvC,CAAC;4BAAC,MAAM,CAAC;gCACR,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;4BACxC,CAAC;wBACF,CAAC;oBACF,CAAC;oBACD,gBAAgB,GAAG,EAAE,CAAC;gBACvB,CAAC;gBACD,MAAM;YACP,CAAC;YAED,KAAK,sBAAsB;gBAC1B,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;gBACD,kBAAkB,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,MAAM,CAAC,KAAK,CACnB,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9C,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACrD,IAAI,CACJ,CAAC;gBACF,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,QAAQ,MAAM,CAAC,CAAC;gBAClD,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM;YAEP,KAAK,oBAAoB;gBACxB,IAAI,OAAO,EAAE,CAAC;oBACb,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtE,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACrC,CAAC;oBACD,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACP,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChF,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;oBAC/C,CAAC;gBACF,CAAC;gBACD,MAAM;YAEP,KAAK,kBAAkB;gBACtB,IAAI,OAAO,EAAE,CAAC;oBAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAAC,OAAO,GAAG,IAAI,CAAC;gBAAC,CAAC;gBAChD,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBACvF,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,MAAM;YAEP,KAAK,gBAAgB;gBACpB,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC/H,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;gBACD,MAAM;YAEP,KAAK,WAAW,CAAC,CAAC,CAAC;gBAClB,IAAI,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,EAAE,CAAC;oBACf,OAAO,GAAG,IAAI,CAAC;gBAChB,CAAC;gBACD,WAAW,GAAG,KAAK,CAAC;gBAEpB,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC5D,IAAI,OAAO,IAAI,YAAY,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;oBAC1E,MAAM,OAAO,GAAI,OAA4B,CAAC,YAAY,IAAI,MAAM,CAAC;oBACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,OAAO,IAAI,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBAED,MAAM,SAAS,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;gBACpD,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;gBACjD,IAAI,SAAS,EAAE,CAAC;oBACf,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;oBACzB,IAAI,OAAO,CAAC,OAAO,GAAG,EAAE;wBAAE,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;yBAC1C,IAAI,OAAO,CAAC,OAAO,GAAG,EAAE;wBAAE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;oBACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,SAAS,SAAS,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvF,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM;YACP,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAmB;QAC5B,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,EAAE;QACT,aAAa,EAAE,CAAC;QAChB,IAAI,EAAE,SAAS;KACf,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAsB,EAAE;QACtD,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;QACd,SAAS;KACT,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,YAAY,GAAG,CAAE,EAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,gBAAgB,GAAI,EAAU,CAAC,SAAS,CAAC;IAE/C,+DAA+D;IAC/D,SAAS,iBAAiB,CAAC,IAAY,EAAE,OAAmB;QAC3D,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7E,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;oBACrB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;oBACtB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACP,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,SAAS,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;gBACtB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACP,SAAS,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC1D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;oBACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;oBACnB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACP,SAAS,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,SAAS,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;IACF,CAAC;IAEA,EAAU,CAAC,SAAS,GAAG,UAAU,CAAS,EAAE,GAAiB;QAC7D,sCAAsC;QACtC,IAAI,wBAAwB,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,wBAAwB,CAAC;YACzC,wBAAwB,GAAG,IAAI,CAAC;YAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC,CAAC,CAAC;YACX,OAAO;QACR,CAAC;QAED,qCAAqC;QACrC,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,OAAO,EAAE,CAAC;oBAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAAC,OAAO,GAAG,IAAI,CAAC;gBAAC,CAAC;gBAChD,OAAO,CAAC,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACtD,eAAe,CAAC,OAAO,CAAC,CAAC;gBACzB,OAAO;YACR,CAAC;YACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC;QAC1B,MAAM,WAAW,GAAG,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,OAAO,CAAC;QAEhE,qCAAqC;QACrC,oEAAoE;QACpE,2EAA2E;QAC3E,mEAAmE;QACnE,MAAM,eAAe,GACpB,CAAC,GAAG,IAAI,WAAW,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACjE,CAAC,KAAK,IAAI;YACV,CAAC,KAAK,QAAQ,CAAC;QAEhB,IAAI,eAAe,EAAE,CAAC;YACrB,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACjC,eAAe,CAAC,IAAI,CAAE,EAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1B,EAAU,CAAC,IAAI,GAAG,EAAE,CAAC;YACrB,EAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,EAAU,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACpD,OAAO;QACR,CAAC;QAED,oDAAoD;QACpD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,GAAG,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC;oBAC3C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBACvB,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC1B,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjD,OAAO;YACR,CAAC;YAED,IAAI,GAAG,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;oBAC/D,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC1B,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjD,OAAO;YACR,CAAC;YAED,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC3B,IAAI,QAAQ,EAAE,CAAC;oBACd,SAAS,CAAC,IAAI,CAAC,CAAC;oBAEhB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;wBAC3B,EAAU,CAAC,IAAI,GAAG,EAAE,CAAC;wBACrB,EAAU,CAAC,MAAM,GAAG,CAAC,CAAC;wBACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;wBACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;wBAExC,IAAI,WAAW,EAAE,CAAC;4BACjB,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;4BACnC,EAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;4BACjC,EAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;4BAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACrC,OAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAkB,CAAC,CAAC;wBAC5E,CAAC;6BAAM,CAAC;4BACN,EAAU,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;4BACjC,EAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;4BAC3C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;4BACrC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;4BACtD,OAAO;wBACR,CAAC;oBACF,CAAC;yBAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;wBAChC,MAAM,IAAI,GAAY,EAAU,CAAC,IAAI,IAAI,EAAE,CAAC;wBAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;wBACvC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;4BACvB,MAAM,OAAO,GAAG,IAAI,QAAQ,EAAE,CAAC;4BAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;4BAC3D,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;4BAC7C,EAAU,CAAC,IAAI,GAAG,OAAO,CAAC;4BAC1B,EAAU,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;4BACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;4BACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;4BACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBAC/B,CAAC;wBACD,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;wBACtD,OAAO;oBACR,CAAC;gBACF,CAAC;YACF,CAAC;YAED,IAAI,GAAG,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACjC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjD,OAAO;YACR,CAAC;QACF,CAAC;QAED,4CAA4C;QAC5C,IAAI,GAAG,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACxC,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACjC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,EAAU,CAAC,IAAI,GAAG,EAAE,CAAC;gBACrB,EAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtB,EAAU,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxC,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACpD,eAAe,EAAE,CAAC;gBAClB,OAAO;YACR,CAAC;YACD,OAAO;QACR,CAAC;QAED,2CAA2C;QAC3C,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;YACxB,MAAM,WAAW,GAAY,EAAU,CAAC,IAAI,IAAI,EAAE,CAAC;YACnD,MAAM,MAAM,GAAY,EAAU,CAAC,MAAM,IAAI,CAAC,CAAC;YAE/C,oEAAoE;YACpE,IAAI,MAAM,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACpD,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACjC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC;gBAChD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACxC,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;gBACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC1B,EAAU,CAAC,IAAI,GAAG,EAAE,CAAC;gBACrB,EAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtB,EAAU,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAChB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;gBACpD,OAAO;YACR,CAAC;YAED,gBAAgB;YAChB,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACjC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;YACrB,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,MAAM,SAAS,GAAG,CAAC,GAAG,eAAe,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/D,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC1B,EAAU,CAAC,IAAI,GAAG,SAAS,CAAC;gBAC5B,EAAU,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;gBACrC,EAAU,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACpC,OAAO;QACR,CAAC;QAED,8BAA8B;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;QACrC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC5C,MAAM,QAAQ,GAAY,EAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QAEhD,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAEpC,MAAM,OAAO,GAAY,EAAU,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/C,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEpC,2DAA2D;QAC3D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,KAAK,eAAe;YACnD,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,iBAAiB,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC;YACjB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,0CAA0C;QAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3E,eAAe,EAAE,CAAC;QACnB,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,UAAU,GAAG,GAAoB,EAAE;QACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9B,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACpB,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YAClC,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;gBACzC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;gBACtC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBACrB,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,sDAAsD;YACtD,eAAe,EAAE,CAAC;YAClB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACzB,IAAI,WAAW,EAAE,CAAC;YACjB,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACzD,eAAe,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1B,EAAU,CAAC,IAAI,GAAG,EAAE,CAAC;YACrB,EAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YACtB,EAAU,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACxC,eAAe,EAAE,CAAC;YAClB,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACnB,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,iBAAiB;IACjB,OAAO,IAAI,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAE7B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACxB,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO;YACR,CAAC;YACD,SAAS;QACV,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAChF,MAAM,UAAU,GAAG,WAAW;gBAC7B,CAAC,CAAC,GAAG,YAAY,2BAA2B,WAAW,qBAAqB;gBAC5E,CAAC,CAAC,YAAY,CAAC;YAChB,MAAM,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;AACF,CAAC;AAED,wBAAwB;AAExB,KAAK,UAAU,aAAa,CAAC,KAAa,EAAE,OAAmB;IAC9D,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE1C,QAAQ,GAAG,EAAE,CAAC;QACb,KAAK,OAAO;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM;QAEP,KAAK,QAAQ;YACZ,OAAO,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YACnC,MAAM;QAEP,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC/B,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAE/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;gBAErE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBACpC,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBACxD,MAAM,MAAM,GAAG,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAClE,MAAM,KAAK,GAAa,EAAE,CAAC;wBAC3B,IAAI,CAAC,CAAC,OAAO;4BAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACrC,IAAI,CAAC,CAAC,MAAM;4BAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBAC/C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC1G,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;gBAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;gBACvE,MAAM;YACP,CAAC;YAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;oBAC9D,MAAM;gBACP,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC/B,GAAG,CAAC,KAAK,GAAG,OAAO,CAAC;gBACpB,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,OAAO,YAAY,CAAC,CAAC,CAAC;gBAC9D,MAAM;YACP,CAAC;YAED,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC,CAAC;oBAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC,CAAC;oBAC9F,MAAM;gBACP,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,MAAM;oBAAE,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAwB,EAAE,CAAC;gBACtC,IAAI,IAAI,CAAC,CAAC,CAAC;oBAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAI,IAAI,CAAC,CAAC,CAAC;oBAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;gBAC5B,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,OAAO,IAAI,CAAC,CAAC,CAAC;gBACtD,MAAM;YACP,CAAC;YAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;oBACzD,MAAM;gBACP,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,OAAO,SAAS,CAAC,CAAC,CAAC;oBACvD,MAAM;gBACP,CAAC;gBACD,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,OAAO,IAAI,CAAC,CAAC,CAAC;gBAClD,MAAM;YACP,CAAC;YAED,IAAI,CAAC;gBACJ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;YACtD,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,SAAS;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;YAC1D,MAAM;QAEP,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,OAAO,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YAClB,MAAM,QAAQ,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;gBAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC;gBACjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBACxD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;oBACpD,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACrE,OAAO,CAAC,GAAG,CACV,GAAG,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,OAAO,CAAC,EAAE,CAC5H,CAAC;gBACH,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;gBACrC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;gBACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAC5B,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAClG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC9D,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,EAAE,CAAC,CAAC;gBAExC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;oBACnD,MAAM;gBACP,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC;oBACJ,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;oBACvD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,MAAM;YACP,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzE,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACtC,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrD,MAAM,KAAK,GAAa,EAAE,CAAC;oBAC3B,IAAI,CAAC,CAAC,MAAM;wBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC/C,IAAI,CAAC,CAAC,OAAO;wBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC5F,CAAC;YACF,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;oBAC3B,IAAI,IAAI,CAAC,MAAM;wBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAClD,IAAI,IAAI,CAAC,OAAO;wBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACvE,CAAC;gBACF,CAAC;YACF,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC,CAAC;YAClF,MAAM;QACP,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YAChB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC,CAAC;YAC1F,CAAC;iBAAM,CAAC;gBACP,MAAM,WAAW,GAA2B,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACrG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;gBACzD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;oBACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;oBAChE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnG,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAClE,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE5C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC,CAAC;YAC9G,CAAC;iBAAM,CAAC;gBACP,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;gBACvF,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAExD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;gBAE/D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;oBAChC,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;oBAChC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC;oBACtD,MAAM,SAAS,GAAG,CAAC,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,iBAAiB,IAAI,YAAY,KAAK,KAAK,CAAC;wBAC1G,CAAC,CAAC,MAAM;wBACR,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO;4BACpC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;oBAChC,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC;oBACzE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBAElF,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACnF,IAAI,MAAM,CAAC,GAAG;wBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;oBACtE,IAAI,MAAM,CAAC,OAAO;wBAAE,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAE/G,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC/D,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;4BACnC,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;4BACtD,MAAM,OAAO,GAAG,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;4BACxF,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;wBACvD,CAAC;oBACF,CAAC;oBACD,OAAO,CAAC,GAAG,EAAE,CAAC;gBACf,CAAC;YACF,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC,CAAC;YAC3F,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;gBAC1D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC3B,MAAM,KAAK,GAAa,EAAE,CAAC;oBAC3B,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC;oBAC1D,IAAI,GAAG,CAAC,YAAY,GAAG,CAAC;wBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,YAAY,MAAM,CAAC,CAAC;oBAChE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACzC,CAAC;gBACD,OAAO,CAAC,GAAG,EAAE,CAAC;YACf,CAAC;YACD,MAAM;QACP,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC;YACtC,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAC3E,IAAI,KAAK,CAAC,SAAS;gBAAE,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;YAChG,IAAI,KAAK,CAAC,UAAU;gBAAE,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;YAClG,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YACnJ,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM;QACP,CAAC;QAED,KAAK,OAAO,CAAC;QACb,KAAK,OAAO;YACX,OAAO,MAAM,CAAC;QAEf;YACC,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;gBAC/D,IAAI,CAAC,KAAK,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,SAAS,qBAAqB,CAAC,CAAC,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC;wBACJ,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;wBACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACvC,OAAO,CAAC,GAAG,EAAE,CAAC;wBACd,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACrB,OAAO,CAAC,GAAG,EAAE,CAAC;oBACf,CAAC;oBAAC,OAAO,GAAQ,EAAE,CAAC;wBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;oBACtD,CAAC;gBACF,CAAC;gBACD,MAAM;YACP,CAAC;YAED,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;YACnD,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBAC5D,IAAI,MAAM;wBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM;YACP,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAC/D,CAAC;AACF,CAAC;AAED,2BAA2B;AAE3B,SAAS,cAAc,CAAC,QAAgB,EAAE,IAAS;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM;YACV,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAChE,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACV,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3C,KAAK,cAAc;YAClB,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7E,KAAK,aAAa;YACjB,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC;QAClD,KAAK,YAAY;YAChB,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;QACnD,KAAK,WAAW;YACf,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1C;YACC,OAAO,EAAE,CAAC;IACZ,CAAC;AACF,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAW;IACpC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,MAAM;aACX,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;aACrC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACvB,IAAI,CAAC,IAAI,CAAC;aACV,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAED,eAAe;AAEf,SAAS,oBAAoB,CAAC,IAAY;IACzC,OAAO,CACN,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,KAAK,MAAM,CAAC;QACrD,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;QAClC,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC;QACpC,CAAC,IAAI,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,CACpC,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IAClC,4CAA4C;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACjD,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;QACxB,CAAC,IAAI,oBAAoB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACvC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAG,6BAA6B,CAAC;IACzC,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO;YAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AAC3F,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY,EAAE,SAAiB;IACxD,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,OAAmB;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IAElC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3G,OAAO,CAAC,GAAG,EAAE,CAAC;IAEd,MAAM,YAAY,GAAG,EAAE,CAAC,SAAS;QAChC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,oBAAoB,OAAO,CAAC,EAAE;QACpF,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa;QAC3C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC;IAEN,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,YAAY,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACpE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,UAAU,UAAU,MAAM,CAAC,CAAC;IAC5G,CAAC;IAED,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -9,8 +9,8 @@ export interface ProcessedFiles {
|
|
|
9
9
|
export declare function processFileArguments(fileArgs: string[], cwd: string): ProcessedFiles;
|
|
10
10
|
/**
|
|
11
11
|
* Parse a user input string and extract @path references.
|
|
12
|
-
* Returns { expandedText,
|
|
13
|
-
* and
|
|
12
|
+
* Returns { expandedText, fileContent } where expandedText preserves the
|
|
13
|
+
* original @refs for LLM context and fileContent contains the loaded file blocks.
|
|
14
14
|
*/
|
|
15
15
|
export declare function extractAtReferences(input: string, cwd: string): {
|
|
16
16
|
expandedText: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-processor.d.ts","sourceRoot":"","sources":["../../src/utils/file-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAgBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAwCpF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"file-processor.d.ts","sourceRoot":"","sources":["../../src/utils/file-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB;AAgBD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAwCpF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAsB7G"}
|
|
@@ -57,29 +57,26 @@ export function processFileArguments(fileArgs, cwd) {
|
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
59
|
* Parse a user input string and extract @path references.
|
|
60
|
-
* Returns { expandedText,
|
|
61
|
-
* and
|
|
60
|
+
* Returns { expandedText, fileContent } where expandedText preserves the
|
|
61
|
+
* original @refs for LLM context and fileContent contains the loaded file blocks.
|
|
62
62
|
*/
|
|
63
63
|
export function extractAtReferences(input, cwd) {
|
|
64
|
-
// Match @path patterns: @word or @"quoted path"
|
|
65
|
-
// Note: on Windows paths may contain backslashes, but we require
|
|
66
|
-
// quoted form for paths with spaces: @"C:\path with spaces\file.txt"
|
|
67
64
|
const atPattern = /(?:^|(?<=\s))@("(?:[^"\\]|\\.)*"|[^\s]+)/g;
|
|
68
65
|
const fileArgs = [];
|
|
69
|
-
|
|
70
|
-
|
|
66
|
+
let match;
|
|
67
|
+
while ((match = atPattern.exec(input)) !== null) {
|
|
68
|
+
let filePath = match[1];
|
|
71
69
|
if (filePath.startsWith('"') && filePath.endsWith('"')) {
|
|
72
70
|
filePath = filePath.slice(1, -1).replace(/\\"/g, '"');
|
|
73
71
|
}
|
|
74
72
|
fileArgs.push(filePath);
|
|
75
|
-
|
|
76
|
-
}).replace(/\s{2,}/g, " ").trim();
|
|
73
|
+
}
|
|
77
74
|
if (fileArgs.length === 0) {
|
|
78
75
|
return { expandedText: input, fileContent: "" };
|
|
79
76
|
}
|
|
80
77
|
const processed = processFileArguments(fileArgs, cwd);
|
|
81
78
|
return {
|
|
82
|
-
expandedText:
|
|
79
|
+
expandedText: input,
|
|
83
80
|
fileContent: processed.text,
|
|
84
81
|
};
|
|
85
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-processor.js","sourceRoot":"","sources":["../../src/utils/file-processor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAO5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACrG,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAC5C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ;IAC/B,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO;IACxC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CACzC,CAAC,CAAC;AAEH,SAAS,YAAY,CAAC,IAAY;IACjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAClC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,QAAkB,EAAE,GAAW;IACnE,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YACrC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,uBAAuB,YAAY,EAAE,CAAC,CAAC;gBACnD,SAAS;YACV,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACtB,SAAS;YACV,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,CAAC,IAAI,CAAC,mBAAmB,YAAY,EAAE,CAAC,CAAC;YAC/C,SAAS;QACV,CAAC;QAED,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,yBAAyB,YAAY,EAAE,CAAC,CAAC;YACrD,SAAS;QACV,CAAC;QACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,IAAI,eAAe,YAAY,8DAA8D,CAAC;YAClG,SAAS;QACV,CAAC;QAED,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,IAAI,eAAe,YAAY,OAAO,OAAO,aAAa,CAAC;QAChE,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,kBAAkB,YAAY,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACF,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACzB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW;IAC7D,
|
|
1
|
+
{"version":3,"file":"file-processor.js","sourceRoot":"","sources":["../../src/utils/file-processor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antaif3ng/til-work",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "TIL
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "TIL Work — 运行在终端里的个人 AI 助手 (Personal AI assistant CLI powered by LLM)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"til": "dist/cli.js"
|