vskill 0.5.159 → 1.0.1
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/agents.json +1 -1
- package/dist/agents/agents-registry.d.ts +4 -14
- package/dist/agents/agents-registry.js.map +1 -1
- package/dist/eval-server/api-routes.js +32 -54
- package/dist/eval-server/api-routes.js.map +1 -1
- package/dist/eval-ui/assets/{CreateSkillPage-DOJWF3-Z.js → CreateSkillPage-DN-DGWb_.js} +5 -5
- package/dist/eval-ui/assets/{FindSkillsPalette-CEckFgA2.js → FindSkillsPalette-_QIpTcPE.js} +2 -2
- package/dist/eval-ui/assets/{SearchPaletteCore-CybKVEgq.js → SearchPaletteCore-CThylxw2.js} +1 -1
- package/dist/eval-ui/assets/{SkillDetailPanel-CYmWPegc.js → SkillDetailPanel-CYt2aARB.js} +1 -1
- package/dist/eval-ui/assets/{UpdateDropdown-B53G4Agp.js → UpdateDropdown-CO0ZyyC_.js} +1 -1
- package/dist/eval-ui/assets/index-vzRnBcdU.js +122 -0
- package/dist/eval-ui/index.html +1 -1
- package/dist/utils/skill-builder-detection.d.ts +1 -7
- package/dist/utils/skill-builder-detection.js +8 -11
- package/dist/utils/skill-builder-detection.js.map +1 -1
- package/dist/utils/skill-creator-detection.js +41 -9
- package/dist/utils/skill-creator-detection.js.map +1 -1
- package/package.json +1 -1
- package/dist/eval-ui/assets/index-DAH5iFYQ.js +0 -122
package/dist/eval-ui/index.html
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
}
|
|
47
47
|
})();
|
|
48
48
|
</script>
|
|
49
|
-
<script type="module" crossorigin src="/assets/index-
|
|
49
|
+
<script type="module" crossorigin src="/assets/index-vzRnBcdU.js"></script>
|
|
50
50
|
<link rel="stylesheet" crossorigin href="/assets/index-CycZyHaL.css">
|
|
51
51
|
<link rel="stylesheet" crossorigin href="/assets/fonts-i7Lkz2zN.css">
|
|
52
52
|
</head>
|
|
@@ -14,12 +14,6 @@ export interface SkillBuilderDetection {
|
|
|
14
14
|
* 4. Project-local agent-native: {projectRoot}/{agent.localSkillsDir}/skill-builder
|
|
15
15
|
* for every agent in AGENTS_REGISTRY (covers .claude/skills, .cursor/skills, etc.)
|
|
16
16
|
* 5. Any registered agent's global skills directory
|
|
17
|
-
* 6. Any agent's plugin cache
|
|
18
|
-
*
|
|
19
|
-
* 0786 US-002: marketplace dir is the available-plugin CATALOG, not an
|
|
20
|
-
* actual installation. Marketplace presence used to count as installed,
|
|
21
|
-
* which produced false-positives for engines that were merely visible in
|
|
22
|
-
* a connected marketplace but never installed. Detection now consults
|
|
23
|
-
* pluginCacheDir only.
|
|
17
|
+
* 6. Any agent's plugin cache or marketplace dir
|
|
24
18
|
*/
|
|
25
19
|
export declare function isSkillBuilderInstalled(projectRoot?: string): SkillBuilderDetection;
|
|
@@ -20,13 +20,7 @@ import { AGENTS_REGISTRY } from "../agents/agents-registry.js";
|
|
|
20
20
|
* 4. Project-local agent-native: {projectRoot}/{agent.localSkillsDir}/skill-builder
|
|
21
21
|
* for every agent in AGENTS_REGISTRY (covers .claude/skills, .cursor/skills, etc.)
|
|
22
22
|
* 5. Any registered agent's global skills directory
|
|
23
|
-
* 6. Any agent's plugin cache
|
|
24
|
-
*
|
|
25
|
-
* 0786 US-002: marketplace dir is the available-plugin CATALOG, not an
|
|
26
|
-
* actual installation. Marketplace presence used to count as installed,
|
|
27
|
-
* which produced false-positives for engines that were merely visible in
|
|
28
|
-
* a connected marketplace but never installed. Detection now consults
|
|
29
|
-
* pluginCacheDir only.
|
|
23
|
+
* 6. Any agent's plugin cache or marketplace dir
|
|
30
24
|
*/
|
|
31
25
|
export function isSkillBuilderInstalled(projectRoot) {
|
|
32
26
|
const home = homedir();
|
|
@@ -54,10 +48,7 @@ export function isSkillBuilderInstalled(projectRoot) {
|
|
|
54
48
|
};
|
|
55
49
|
}
|
|
56
50
|
}
|
|
57
|
-
//
|
|
58
|
-
// catalog, not a real install. The findInPluginTree helper is preserved
|
|
59
|
-
// (its `hasPluginsSubdir: true` branch may be useful for future callers
|
|
60
|
-
// that legitimately want to enumerate marketplace catalog contents).
|
|
51
|
+
// Plugin cache + marketplace search — same shape as skill-creator-detection.
|
|
61
52
|
for (const agent of AGENTS_REGISTRY) {
|
|
62
53
|
if (agent.pluginCacheDir) {
|
|
63
54
|
const cacheDir = agent.pluginCacheDir.replace("~", home);
|
|
@@ -65,6 +56,12 @@ export function isSkillBuilderInstalled(projectRoot) {
|
|
|
65
56
|
if (match)
|
|
66
57
|
return { installed: true, path: match, version: parseVersionAt(match) };
|
|
67
58
|
}
|
|
59
|
+
if (agent.pluginMarketplaceDir) {
|
|
60
|
+
const mktRoot = agent.pluginMarketplaceDir.replace("~", home);
|
|
61
|
+
const match = findInPluginTree(mktRoot, /* hasPluginsSubdir */ true);
|
|
62
|
+
if (match)
|
|
63
|
+
return { installed: true, path: match, version: parseVersionAt(match) };
|
|
64
|
+
}
|
|
68
65
|
}
|
|
69
66
|
return { installed: false, path: null, version: null };
|
|
70
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-builder-detection.js","sourceRoot":"","sources":["../../src/utils/skill-builder-detection.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAC9E,uEAAuE;AACvE,sEAAsE;AACtE,4BAA4B;AAC5B,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAQ/D
|
|
1
|
+
{"version":3,"file":"skill-builder-detection.js","sourceRoot":"","sources":["../../src/utils/skill-builder-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,12 +34,8 @@ export function isSkillCreatorInstalled(projectRoot) {
|
|
|
34
34
|
return true;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
// 3 + 4. Check every registered agent's global skills dir
|
|
38
|
-
//
|
|
39
|
-
// installation — actual installs live in pluginCacheDir. Scanning marketplace
|
|
40
|
-
// here previously caused a false-positive: skill-creator showed as "installed"
|
|
41
|
-
// when only the marketplace catalog had been synced, with no actual install
|
|
42
|
-
// on disk. Removed.
|
|
37
|
+
// 3 + 4 + 4b. Check every registered agent's global skills dir, plugin cache,
|
|
38
|
+
// and marketplace source dir.
|
|
43
39
|
for (const agent of AGENTS_REGISTRY) {
|
|
44
40
|
const resolved = agent.globalSkillsDir.replace("~", home);
|
|
45
41
|
if (existsSync(join(resolved, "skill-creator")))
|
|
@@ -60,6 +56,25 @@ export function isSkillCreatorInstalled(projectRoot) {
|
|
|
60
56
|
}
|
|
61
57
|
catch { /* ignore permission errors */ }
|
|
62
58
|
}
|
|
59
|
+
if (agent.pluginMarketplaceDir) {
|
|
60
|
+
const mktRoot = agent.pluginMarketplaceDir.replace("~", home);
|
|
61
|
+
try {
|
|
62
|
+
if (existsSync(mktRoot)) {
|
|
63
|
+
for (const mkt of readdirSync(mktRoot, { withFileTypes: true })) {
|
|
64
|
+
if (!mkt.isDirectory())
|
|
65
|
+
continue;
|
|
66
|
+
const pluginsDir = join(mktRoot, mkt.name, "plugins");
|
|
67
|
+
if (!existsSync(pluginsDir))
|
|
68
|
+
continue;
|
|
69
|
+
for (const plugin of readdirSync(pluginsDir, { withFileTypes: true })) {
|
|
70
|
+
if (plugin.isDirectory() && plugin.name.includes("skill-creator"))
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch { /* ignore permission errors */ }
|
|
77
|
+
}
|
|
63
78
|
}
|
|
64
79
|
return false;
|
|
65
80
|
}
|
|
@@ -85,9 +100,6 @@ export function findSkillCreatorPath(projectRoot) {
|
|
|
85
100
|
return candidate;
|
|
86
101
|
}
|
|
87
102
|
}
|
|
88
|
-
// 0786 US-002: marketplace dir is the available-plugin CATALOG, not an
|
|
89
|
-
// installation. Removed the marketplace branch — installation status comes
|
|
90
|
-
// from pluginCacheDir only.
|
|
91
103
|
for (const agent of AGENTS_REGISTRY) {
|
|
92
104
|
const resolved = agent.globalSkillsDir.replace("~", home);
|
|
93
105
|
const candidate = join(resolved, "skill-creator");
|
|
@@ -110,6 +122,26 @@ export function findSkillCreatorPath(projectRoot) {
|
|
|
110
122
|
}
|
|
111
123
|
catch { /* ignore permission errors */ }
|
|
112
124
|
}
|
|
125
|
+
if (agent.pluginMarketplaceDir) {
|
|
126
|
+
const mktRoot = agent.pluginMarketplaceDir.replace("~", home);
|
|
127
|
+
try {
|
|
128
|
+
if (existsSync(mktRoot)) {
|
|
129
|
+
for (const mkt of readdirSync(mktRoot, { withFileTypes: true })) {
|
|
130
|
+
if (!mkt.isDirectory())
|
|
131
|
+
continue;
|
|
132
|
+
const pluginsDir = join(mktRoot, mkt.name, "plugins");
|
|
133
|
+
if (!existsSync(pluginsDir))
|
|
134
|
+
continue;
|
|
135
|
+
for (const plugin of readdirSync(pluginsDir, { withFileTypes: true })) {
|
|
136
|
+
if (plugin.isDirectory() && plugin.name.includes("skill-creator")) {
|
|
137
|
+
return join(pluginsDir, plugin.name);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
catch { /* ignore permission errors */ }
|
|
144
|
+
}
|
|
113
145
|
}
|
|
114
146
|
return null;
|
|
115
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-creator-detection.js","sourceRoot":"","sources":["../../src/utils/skill-creator-detection.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAoB;IAC1D,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,yEAAyE;IACzE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9E,uEAAuE;IACvE,IAAI,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kFAAkF;IAClF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACxF,CAAC;IACH,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"skill-creator-detection.js","sourceRoot":"","sources":["../../src/utils/skill-creator-detection.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAE9E,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAoB;IAC1D,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,yEAAyE;IACzE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9E,uEAAuE;IACvE,IAAI,WAAW,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kFAAkF;IAClF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACxF,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,8BAA8B;IAC9B,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7D,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;wBACjE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;4BAAE,SAAS;wBACjC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;4BACpF,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;gCAAE,OAAO,IAAI,CAAC;wBACjF,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;wBAChE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;4BAAE,SAAS;wBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;wBACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;4BAAE,SAAS;wBACtC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;4BACtE,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;gCAAE,OAAO,IAAI,CAAC;wBACjF,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAoB;IACvD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IAEvB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IACzE,IAAI,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,eAAe,CAAC;IAExD,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACjF,IAAI,UAAU,CAAC,gBAAgB,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAE1D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;YAC3E,IAAI,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAClD,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAE5C,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACzD,IAAI,CAAC;gBACH,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;wBACjE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;4BAAE,SAAS;wBACjC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;4BACpF,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gCAClE,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;4BAC/C,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAC5C,CAAC;QAED,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;wBAChE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;4BAAE,SAAS;wBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;wBACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;4BAAE,SAAS;wBACtC,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;4BACtE,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gCAClE,OAAO,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;4BACvC,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,8BAA8B,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|