@sky.ui/mcp 0.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.
Files changed (184) hide show
  1. package/LICENSE.md +139 -0
  2. package/README.md +182 -0
  3. package/data/chart-api-sections.json +4185 -0
  4. package/data/component-tier.json +25 -0
  5. package/data/design-guidelines/p0-guidelines.json +13381 -0
  6. package/data/reactivity-readme-snapshot.json +1 -0
  7. package/data/theme-authoring-contract.json +598 -0
  8. package/data/utils-suggestion-snapshot.json +1 -0
  9. package/dist/cache.d.ts +3 -0
  10. package/dist/cache.d.ts.map +1 -0
  11. package/dist/cache.js +15 -0
  12. package/dist/cache.js.map +1 -0
  13. package/dist/catalog.d.ts +60 -0
  14. package/dist/catalog.d.ts.map +1 -0
  15. package/dist/catalog.js +343 -0
  16. package/dist/catalog.js.map +1 -0
  17. package/dist/cem.d.ts +26 -0
  18. package/dist/cem.d.ts.map +1 -0
  19. package/dist/cem.js +348 -0
  20. package/dist/cem.js.map +1 -0
  21. package/dist/chart-usage-tool.d.ts +20 -0
  22. package/dist/chart-usage-tool.d.ts.map +1 -0
  23. package/dist/chart-usage-tool.js +153 -0
  24. package/dist/chart-usage-tool.js.map +1 -0
  25. package/dist/component-docs-tool.d.ts +45 -0
  26. package/dist/component-docs-tool.d.ts.map +1 -0
  27. package/dist/component-docs-tool.js +217 -0
  28. package/dist/component-docs-tool.js.map +1 -0
  29. package/dist/component-method-filter.d.ts +3 -0
  30. package/dist/component-method-filter.d.ts.map +1 -0
  31. package/dist/component-method-filter.js +32 -0
  32. package/dist/component-method-filter.js.map +1 -0
  33. package/dist/component-tier.d.ts +20 -0
  34. package/dist/component-tier.d.ts.map +1 -0
  35. package/dist/component-tier.js +59 -0
  36. package/dist/component-tier.js.map +1 -0
  37. package/dist/component-usage-tool.d.ts +20 -0
  38. package/dist/component-usage-tool.d.ts.map +1 -0
  39. package/dist/component-usage-tool.js +90 -0
  40. package/dist/component-usage-tool.js.map +1 -0
  41. package/dist/design-guidelines/a11y-engine.d.ts +22 -0
  42. package/dist/design-guidelines/a11y-engine.d.ts.map +1 -0
  43. package/dist/design-guidelines/a11y-engine.js +78 -0
  44. package/dist/design-guidelines/a11y-engine.js.map +1 -0
  45. package/dist/design-guidelines/compatibility-engine.d.ts +20 -0
  46. package/dist/design-guidelines/compatibility-engine.d.ts.map +1 -0
  47. package/dist/design-guidelines/compatibility-engine.js +57 -0
  48. package/dist/design-guidelines/compatibility-engine.js.map +1 -0
  49. package/dist/design-guidelines/component-guideline-engine.d.ts +19 -0
  50. package/dist/design-guidelines/component-guideline-engine.d.ts.map +1 -0
  51. package/dist/design-guidelines/component-guideline-engine.js +40 -0
  52. package/dist/design-guidelines/component-guideline-engine.js.map +1 -0
  53. package/dist/design-guidelines/composition-engine.d.ts +10 -0
  54. package/dist/design-guidelines/composition-engine.d.ts.map +1 -0
  55. package/dist/design-guidelines/composition-engine.js +29 -0
  56. package/dist/design-guidelines/composition-engine.js.map +1 -0
  57. package/dist/design-guidelines/pattern-engine.d.ts +20 -0
  58. package/dist/design-guidelines/pattern-engine.d.ts.map +1 -0
  59. package/dist/design-guidelines/pattern-engine.js +58 -0
  60. package/dist/design-guidelines/pattern-engine.js.map +1 -0
  61. package/dist/design-guidelines/recommendation-engine.d.ts +11 -0
  62. package/dist/design-guidelines/recommendation-engine.d.ts.map +1 -0
  63. package/dist/design-guidelines/recommendation-engine.js +88 -0
  64. package/dist/design-guidelines/recommendation-engine.js.map +1 -0
  65. package/dist/design-guidelines/repository.d.ts +19 -0
  66. package/dist/design-guidelines/repository.d.ts.map +1 -0
  67. package/dist/design-guidelines/repository.js +71 -0
  68. package/dist/design-guidelines/repository.js.map +1 -0
  69. package/dist/design-guidelines/review-engine.d.ts +20 -0
  70. package/dist/design-guidelines/review-engine.d.ts.map +1 -0
  71. package/dist/design-guidelines/review-engine.js +179 -0
  72. package/dist/design-guidelines/review-engine.js.map +1 -0
  73. package/dist/design-guidelines/schema.d.ts +256 -0
  74. package/dist/design-guidelines/schema.d.ts.map +1 -0
  75. package/dist/design-guidelines/schema.js +124 -0
  76. package/dist/design-guidelines/schema.js.map +1 -0
  77. package/dist/design-guidelines/token-engine.d.ts +23 -0
  78. package/dist/design-guidelines/token-engine.d.ts.map +1 -0
  79. package/dist/design-guidelines/token-engine.js +119 -0
  80. package/dist/design-guidelines/token-engine.js.map +1 -0
  81. package/dist/docs-read.d.ts +28 -0
  82. package/dist/docs-read.d.ts.map +1 -0
  83. package/dist/docs-read.js +102 -0
  84. package/dist/docs-read.js.map +1 -0
  85. package/dist/docs.d.ts +73 -0
  86. package/dist/docs.d.ts.map +1 -0
  87. package/dist/docs.js +323 -0
  88. package/dist/docs.js.map +1 -0
  89. package/dist/example-site-doc-enrichment.d.ts +27 -0
  90. package/dist/example-site-doc-enrichment.d.ts.map +1 -0
  91. package/dist/example-site-doc-enrichment.js +171 -0
  92. package/dist/example-site-doc-enrichment.js.map +1 -0
  93. package/dist/example-site-fetch.d.ts +44 -0
  94. package/dist/example-site-fetch.d.ts.map +1 -0
  95. package/dist/example-site-fetch.js +255 -0
  96. package/dist/example-site-fetch.js.map +1 -0
  97. package/dist/framework-wrappers.d.ts +46 -0
  98. package/dist/framework-wrappers.d.ts.map +1 -0
  99. package/dist/framework-wrappers.js +131 -0
  100. package/dist/framework-wrappers.js.map +1 -0
  101. package/dist/mcp-response-truth.d.ts +18 -0
  102. package/dist/mcp-response-truth.d.ts.map +1 -0
  103. package/dist/mcp-response-truth.js +45 -0
  104. package/dist/mcp-response-truth.js.map +1 -0
  105. package/dist/mcp-runtime-status.d.ts +37 -0
  106. package/dist/mcp-runtime-status.d.ts.map +1 -0
  107. package/dist/mcp-runtime-status.js +96 -0
  108. package/dist/mcp-runtime-status.js.map +1 -0
  109. package/dist/mcp-stdio-entry.d.ts +3 -0
  110. package/dist/mcp-stdio-entry.d.ts.map +1 -0
  111. package/dist/mcp-stdio-entry.js +35 -0
  112. package/dist/mcp-stdio-entry.js.map +1 -0
  113. package/dist/mcp-tool-errors.d.ts +35 -0
  114. package/dist/mcp-tool-errors.d.ts.map +1 -0
  115. package/dist/mcp-tool-errors.js +42 -0
  116. package/dist/mcp-tool-errors.js.map +1 -0
  117. package/dist/parse-component-ast.d.ts +112 -0
  118. package/dist/parse-component-ast.d.ts.map +1 -0
  119. package/dist/parse-component-ast.js +695 -0
  120. package/dist/parse-component-ast.js.map +1 -0
  121. package/dist/post-endpoint-server.d.ts +19 -0
  122. package/dist/post-endpoint-server.d.ts.map +1 -0
  123. package/dist/post-endpoint-server.js +777 -0
  124. package/dist/post-endpoint-server.js.map +1 -0
  125. package/dist/reactivity-info.d.ts +22 -0
  126. package/dist/reactivity-info.d.ts.map +1 -0
  127. package/dist/reactivity-info.js +99 -0
  128. package/dist/reactivity-info.js.map +1 -0
  129. package/dist/reactivity-layer-tool.d.ts +18 -0
  130. package/dist/reactivity-layer-tool.d.ts.map +1 -0
  131. package/dist/reactivity-layer-tool.js +58 -0
  132. package/dist/reactivity-layer-tool.js.map +1 -0
  133. package/dist/reactivity-readme-topics.d.ts +46 -0
  134. package/dist/reactivity-readme-topics.d.ts.map +1 -0
  135. package/dist/reactivity-readme-topics.js +206 -0
  136. package/dist/reactivity-readme-topics.js.map +1 -0
  137. package/dist/read-only-tool-allowlist.d.ts +7 -0
  138. package/dist/read-only-tool-allowlist.d.ts.map +1 -0
  139. package/dist/read-only-tool-allowlist.js +17 -0
  140. package/dist/read-only-tool-allowlist.js.map +1 -0
  141. package/dist/server.d.ts +7 -0
  142. package/dist/server.d.ts.map +1 -0
  143. package/dist/server.js +786 -0
  144. package/dist/server.js.map +1 -0
  145. package/dist/source-read.d.ts +31 -0
  146. package/dist/source-read.d.ts.map +1 -0
  147. package/dist/source-read.js +213 -0
  148. package/dist/source-read.js.map +1 -0
  149. package/dist/theme-authoring/contract-schema.d.ts +191 -0
  150. package/dist/theme-authoring/contract-schema.d.ts.map +1 -0
  151. package/dist/theme-authoring/contract-schema.js +49 -0
  152. package/dist/theme-authoring/contract-schema.js.map +1 -0
  153. package/dist/theme-authoring/repository.d.ts +18 -0
  154. package/dist/theme-authoring/repository.d.ts.map +1 -0
  155. package/dist/theme-authoring/repository.js +55 -0
  156. package/dist/theme-authoring/repository.js.map +1 -0
  157. package/dist/theme-tool.d.ts +26 -0
  158. package/dist/theme-tool.d.ts.map +1 -0
  159. package/dist/theme-tool.js +312 -0
  160. package/dist/theme-tool.js.map +1 -0
  161. package/dist/utils-guide-topics.d.ts +39 -0
  162. package/dist/utils-guide-topics.d.ts.map +1 -0
  163. package/dist/utils-guide-topics.js +202 -0
  164. package/dist/utils-guide-topics.js.map +1 -0
  165. package/dist/utils-info.d.ts +75 -0
  166. package/dist/utils-info.d.ts.map +1 -0
  167. package/dist/utils-info.js +219 -0
  168. package/dist/utils-info.js.map +1 -0
  169. package/dist/utils-suggestion-grounding.d.ts +59 -0
  170. package/dist/utils-suggestion-grounding.d.ts.map +1 -0
  171. package/dist/utils-suggestion-grounding.js +267 -0
  172. package/dist/utils-suggestion-grounding.js.map +1 -0
  173. package/docs/agent-recipe-example-site.md +91 -0
  174. package/docs/ai-design-mcp-blueprint.md +75 -0
  175. package/docs/cross-model-mcp-playbook.md +127 -0
  176. package/docs/example-site-and-mcp-training.md +82 -0
  177. package/docs/mcp-capability-status.md +51 -0
  178. package/docs/mcp-tooling-roadmap.md +36 -0
  179. package/docs/sky-chart-option-api.md +47 -0
  180. package/docs/starter-prompt.md +17 -0
  181. package/docs/theme-config-guide.md +178 -0
  182. package/docs/utils-usage-guide.md +110 -0
  183. package/docs/vue-wrapper-v-model.md +36 -0
  184. package/package.json +63 -0
package/dist/cem.js ADDED
@@ -0,0 +1,348 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { createRequire } from 'node:module';
4
+ import { packagesDir, resolveMainPackageRoot, resolveMainProPackageRoot } from './catalog.js';
5
+ function str(v) {
6
+ return typeof v === 'string' ? v : undefined;
7
+ }
8
+ function cemPathForRoot(mainRoot) {
9
+ return join(mainRoot, 'dist', 'custom-elements.json');
10
+ }
11
+ function cemPath() {
12
+ const mainRoot = resolveMainPackageRoot();
13
+ if (mainRoot) {
14
+ return cemPathForRoot(mainRoot);
15
+ }
16
+ return join(packagesDir(), 'main', 'dist', 'custom-elements.json');
17
+ }
18
+ function cemProPath() {
19
+ const proRoot = resolveMainProPackageRoot();
20
+ if (proRoot)
21
+ return cemPathForRoot(proRoot);
22
+ const mono = join(packagesDir(), 'main-pro', 'dist', 'custom-elements.json');
23
+ return existsSync(mono) ? mono : null;
24
+ }
25
+ function resolvePublishedCemPath(packageName) {
26
+ try {
27
+ const req = createRequire(import.meta.url);
28
+ return req.resolve(`${packageName}/custom-elements.json`);
29
+ }
30
+ catch {
31
+ return null;
32
+ }
33
+ }
34
+ function readCemPackageFromPath(p) {
35
+ if (!existsSync(p))
36
+ return null;
37
+ try {
38
+ const raw = JSON.parse(readFileSync(p, 'utf8'));
39
+ if (!raw || !Array.isArray(raw.modules))
40
+ return null;
41
+ return raw;
42
+ }
43
+ catch {
44
+ return null;
45
+ }
46
+ }
47
+ function mergeCemPackages(packages) {
48
+ const modules = [];
49
+ for (const pkg of packages) {
50
+ modules.push(...pkg.modules);
51
+ }
52
+ if (modules.length === 0)
53
+ return null;
54
+ return { schemaVersion: packages[0]?.schemaVersion ?? '1.0.0', modules };
55
+ }
56
+ function firstAvailableCemPath() {
57
+ const preferred = cemPath();
58
+ if (existsSync(preferred))
59
+ return preferred;
60
+ const published = resolvePublishedCemPath('@sky.ui/core');
61
+ if (published && existsSync(published))
62
+ return published;
63
+ return null;
64
+ }
65
+ function allAvailableCemPackages() {
66
+ const out = [];
67
+ const freePath = firstAvailableCemPath();
68
+ if (freePath) {
69
+ const pkg = readCemPackageFromPath(freePath);
70
+ if (pkg)
71
+ out.push(pkg);
72
+ }
73
+ const proCandidates = [
74
+ cemProPath(),
75
+ resolvePublishedCemPath('@sky.ui.pro/core')
76
+ ].filter((p) => Boolean(p));
77
+ for (const p of proCandidates) {
78
+ const pkg = readCemPackageFromPath(p);
79
+ if (pkg) {
80
+ out.push(pkg);
81
+ break;
82
+ }
83
+ }
84
+ return out;
85
+ }
86
+ export function isCemManifestPresent() {
87
+ return firstAvailableCemPath() != null;
88
+ }
89
+ /** Raw JSON string of the manifest, or null if missing. */
90
+ export function readCustomElementsManifestText() {
91
+ const p = firstAvailableCemPath();
92
+ if (!p) {
93
+ return null;
94
+ }
95
+ try {
96
+ return readFileSync(p, 'utf8');
97
+ }
98
+ catch {
99
+ return null;
100
+ }
101
+ }
102
+ export function loadCemPackage() {
103
+ const merged = mergeCemPackages(allAvailableCemPackages());
104
+ return merged;
105
+ }
106
+ export function getCemSummaryForTag(tagName) {
107
+ const hit = findCemDeclaration(tagName);
108
+ if (!hit) {
109
+ return null;
110
+ }
111
+ const desc = str(hit.declaration.description);
112
+ if (!desc) {
113
+ return null;
114
+ }
115
+ const line = desc.split('\n').find((l) => l.trim().length > 0);
116
+ return line?.trim() ?? null;
117
+ }
118
+ export function findCemDeclaration(tagName) {
119
+ const pkg = loadCemPackage();
120
+ if (!pkg) {
121
+ return null;
122
+ }
123
+ for (const mod of pkg.modules) {
124
+ if (!mod.declarations) {
125
+ continue;
126
+ }
127
+ for (const decl of mod.declarations) {
128
+ if (!decl || typeof decl !== 'object') {
129
+ continue;
130
+ }
131
+ const d = decl;
132
+ if (d.kind === 'class' && d.customElement === true && d.tagName === tagName) {
133
+ return { modulePath: mod.path, declaration: d };
134
+ }
135
+ }
136
+ }
137
+ return null;
138
+ }
139
+ function mapCemMembersToProperties(members) {
140
+ if (!Array.isArray(members)) {
141
+ return [];
142
+ }
143
+ const out = [];
144
+ for (const m of members) {
145
+ if (!m || typeof m !== 'object') {
146
+ continue;
147
+ }
148
+ const row = m;
149
+ if (row.kind !== 'field') {
150
+ continue;
151
+ }
152
+ /** Static fields (e.g. `dependencies`, `formAssociated`) are not instance props for consumers. */
153
+ if (row.static === true) {
154
+ continue;
155
+ }
156
+ const privacy = str(row.privacy);
157
+ if (privacy === 'private' || privacy === 'protected') {
158
+ continue;
159
+ }
160
+ const name = str(row.name);
161
+ if (!name || name.startsWith('_')) {
162
+ continue;
163
+ }
164
+ let typeStr;
165
+ if (typeof row.type === 'string') {
166
+ typeStr = row.type;
167
+ }
168
+ else if (row.type && typeof row.type === 'object' && row.type !== null && 'text' in row.type) {
169
+ typeStr = String(row.type.text);
170
+ }
171
+ const description = str(row.description);
172
+ out.push({ name, type: typeStr, description });
173
+ }
174
+ return out;
175
+ }
176
+ function mapCemAttributes(attributes) {
177
+ if (!Array.isArray(attributes)) {
178
+ return [];
179
+ }
180
+ const out = [];
181
+ for (const a of attributes) {
182
+ if (!a || typeof a !== 'object') {
183
+ continue;
184
+ }
185
+ const row = a;
186
+ if (row.kind !== 'attribute') {
187
+ continue;
188
+ }
189
+ const name = str(row.name);
190
+ if (!name) {
191
+ continue;
192
+ }
193
+ let typeStr;
194
+ if (typeof row.type === 'string') {
195
+ typeStr = row.type;
196
+ }
197
+ else if (row.type && typeof row.type === 'object' && row.type !== null && 'text' in row.type) {
198
+ typeStr = String(row.type.text);
199
+ }
200
+ out.push({ name, type: typeStr, description: str(row.description) });
201
+ }
202
+ return out;
203
+ }
204
+ function mapCemSlots(slots) {
205
+ if (!Array.isArray(slots)) {
206
+ return [];
207
+ }
208
+ const out = [];
209
+ for (const s of slots) {
210
+ if (!s || typeof s !== 'object') {
211
+ continue;
212
+ }
213
+ const o = s;
214
+ const name = str(o.name) ?? '';
215
+ const description = str(o.description);
216
+ out.push({ name, description });
217
+ }
218
+ return out;
219
+ }
220
+ function mapCemEvents(events) {
221
+ if (!Array.isArray(events)) {
222
+ return [];
223
+ }
224
+ const out = [];
225
+ for (const e of events) {
226
+ if (!e || typeof e !== 'object') {
227
+ continue;
228
+ }
229
+ const o = e;
230
+ const name = str(o.name) ?? str(o.eventName);
231
+ if (!name) {
232
+ continue;
233
+ }
234
+ let type;
235
+ if (o.type && typeof o.type === 'object' && 'text' in o.type) {
236
+ type = str(o.type.text);
237
+ }
238
+ else if (typeof o.type === 'string') {
239
+ type = o.type;
240
+ }
241
+ else if (o.type && typeof o.type === 'object') {
242
+ const t = o.type;
243
+ type = str(t.text) ?? str(t.name);
244
+ }
245
+ out.push({ name, type, description: str(o.description) });
246
+ }
247
+ return out;
248
+ }
249
+ function mapCemMethods(members) {
250
+ if (!Array.isArray(members))
251
+ return [];
252
+ const out = [];
253
+ for (const m of members) {
254
+ if (!m || typeof m !== 'object')
255
+ continue;
256
+ const row = m;
257
+ if (row.kind !== 'method')
258
+ continue;
259
+ if (str(row.privacy) && str(row.privacy) !== 'public')
260
+ continue;
261
+ const name = str(row.name);
262
+ if (!name || name.startsWith('_'))
263
+ continue;
264
+ const paramsRaw = Array.isArray(row.parameters) ? row.parameters : [];
265
+ const params = [];
266
+ for (const p of paramsRaw) {
267
+ if (!p || typeof p !== 'object')
268
+ continue;
269
+ const pr = p;
270
+ const pName = str(pr.name);
271
+ if (!pName)
272
+ continue;
273
+ let typeStr;
274
+ if (typeof pr.type === 'string')
275
+ typeStr = pr.type;
276
+ else if (pr.type && typeof pr.type === 'object' && 'text' in pr.type)
277
+ typeStr = str(pr.type.text);
278
+ params.push({
279
+ name: pName,
280
+ type: typeStr,
281
+ optional: Boolean(pr.optional)
282
+ });
283
+ }
284
+ let returnType;
285
+ if (typeof row.return === 'string')
286
+ returnType = row.return;
287
+ else if (row.return && typeof row.return === 'object' && 'type' in row.return) {
288
+ const rt = row.return.type;
289
+ if (typeof rt === 'string')
290
+ returnType = rt;
291
+ else if (rt && typeof rt === 'object' && 'text' in rt)
292
+ returnType = str(rt.text);
293
+ }
294
+ out.push({
295
+ name,
296
+ description: str(row.description),
297
+ params,
298
+ returns: returnType ? { type: returnType } : undefined
299
+ });
300
+ }
301
+ return out;
302
+ }
303
+ /**
304
+ * Map a CEM class declaration into the same structured shape the AST path uses,
305
+ * so MCP clients always see one JSON schema.
306
+ */
307
+ export function declarationToComponentDocumentation(tagName, componentFolderName, npmImport, modulePath, declaration, sourcePackage = 'main') {
308
+ const description = str(declaration.description);
309
+ const members = declaration.members;
310
+ const attrs = mapCemAttributes(declaration.attributes);
311
+ const fromMembers = mapCemMembersToProperties(members);
312
+ const propByName = new Map();
313
+ for (const p of fromMembers) {
314
+ propByName.set(p.name, p);
315
+ }
316
+ for (const a of attrs) {
317
+ if (!propByName.has(a.name)) {
318
+ propByName.set(a.name, a);
319
+ }
320
+ }
321
+ const properties = [...propByName.values()];
322
+ const slots = mapCemSlots(declaration.slots);
323
+ const events = mapCemEvents(declaration.events);
324
+ const methods = mapCemMethods(members);
325
+ const cssParts = mapCemSlots(declaration.cssParts); // same shape {name, description}
326
+ return {
327
+ schemaVersion: 1,
328
+ dataSource: 'cem',
329
+ name: componentFolderName,
330
+ tagName,
331
+ npmImport,
332
+ sourceFile: join(packagesDir(), sourcePackage, modulePath),
333
+ className: str(declaration.name),
334
+ summary: description,
335
+ documentation: undefined,
336
+ status: undefined,
337
+ since: undefined,
338
+ element: tagName,
339
+ slots,
340
+ properties,
341
+ cssParts,
342
+ events,
343
+ methods,
344
+ examples: [],
345
+ miscTags: []
346
+ };
347
+ }
348
+ //# sourceMappingURL=cem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cem.js","sourceRoot":"","sources":["../src/cem.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAc9F,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,OAAO;IACd,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAC1C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,OAAO,GAAG,yBAAyB,EAAE,CAAC;IAC5C,IAAI,OAAO;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC7E,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED,SAAS,uBAAuB,CAAC,WAAmB;IAClD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,WAAW,uBAAuB,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,CAAS;IACvC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAe,CAAC;QAC9D,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAsB;IAC9C,MAAM,OAAO,GAAgB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,aAAa,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;AAC3E,CAAC;AAED,SAAS,qBAAqB;IAC5B,MAAM,SAAS,GAAG,OAAO,EAAE,CAAC;IAC5B,IAAI,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,SAAS,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,SAAS,IAAI,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACzD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,GAAG,GAAiB,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,GAAG;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,aAAa,GAAG;QACpB,UAAU,EAAE;QACZ,uBAAuB,CAAC,kBAAkB,CAAC;KAC5C,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACd,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,qBAAqB,EAAE,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,8BAA8B;IAC5C,MAAM,CAAC,GAAG,qBAAqB,EAAE,CAAC;IAClC,IAAI,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,MAAM,GAAG,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,GAAG,GAAG,cAAc,EAAE,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,SAAS;YACX,CAAC;YACD,MAAM,CAAC,GAAG,IAA+B,CAAC;YAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;gBAC5E,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,yBAAyB,CAAC,OAAgB;IACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAyC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,CAA4B,CAAC;QACzC,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QACD,kGAAkG;QAClG,IAAI,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACxB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YACrD,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,SAAS;QACX,CAAC;QACD,IAAI,OAA2B,CAAC;QAChC,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/F,OAAO,GAAG,MAAM,CAAE,GAAG,CAAC,IAAyB,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,gBAAgB,CAAC,UAAmB;IAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAyC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,CAA4B,CAAC;QACzC,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QACD,IAAI,OAA2B,CAAC;QAChC,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/F,OAAO,GAAG,MAAM,CAAE,GAAG,CAAC,IAAyB,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAoC,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,CAA4B,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACvC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,YAAY,CAAC,MAAe;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAqC,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,CAA4B,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,SAAS;QACX,CAAC;QACD,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAK,CAAC,CAAC,IAAe,EAAE,CAAC;YACzE,IAAI,GAAG,GAAG,CAAE,CAAC,CAAC,IAA0B,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAChB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,CAAC,CAAC,IAA+B,CAAC;YAC5C,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,OAAgB;IACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,GAAG,GAAsC,EAAE,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAC1C,MAAM,GAAG,GAAG,CAA4B,CAAC;QACzC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACpC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ;YAAE,SAAS;QAChE,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,MAAM,MAAM,GAA0D,EAAE,CAAC;QACzE,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,SAAS;YAC1C,MAAM,EAAE,GAAG,CAA4B,CAAC;YACxC,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,IAAI,OAA2B,CAAC;YAChC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;iBAC9C,IAAI,EAAE,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,IAAI,EAAE,CAAC,IAAI;gBAAE,OAAO,GAAG,GAAG,CAAE,EAAE,CAAC,IAA0B,CAAC,IAAI,CAAC,CAAC;YACzH,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,UAA8B,CAAC;QACnC,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;YAAE,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC;aACvD,IAAI,GAAG,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAK,GAAG,CAAC,MAAiB,EAAE,CAAC;YAC1F,MAAM,EAAE,GAAI,GAAG,CAAC,MAA6B,CAAC,IAAI,CAAC;YACnD,IAAI,OAAO,EAAE,KAAK,QAAQ;gBAAE,UAAU,GAAG,EAAE,CAAC;iBACvC,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,IAAK,EAAa;gBAAE,UAAU,GAAG,GAAG,CAAE,EAAwB,CAAC,IAAI,CAAC,CAAC;QACtH,CAAC;QACD,GAAG,CAAC,IAAI,CAAC;YACP,IAAI;YACJ,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YACjC,MAAM;YACN,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS;SACvD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CACjD,OAAe,EACf,mBAA2B,EAC3B,SAA6B,EAC7B,UAAkB,EAClB,WAAoC,EACpC,gBAAqC,MAAM;IAE3C,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;IACpC,MAAM,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAmC,CAAC;IAC9D,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,iCAAiC;IAErF,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,mBAAmB;QACzB,OAAO;QACP,SAAS;QACT,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC;QAC1D,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;QAChC,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,SAAS;QACxB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,OAAO;QAChB,KAAK;QACL,UAAU;QACV,QAAQ;QACR,MAAM;QACN,OAAO;QACP,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;KACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { type WrapperImportStyle } from './framework-wrappers.js';
2
+ export type ChartUsageOperation = 'list_types' | 'get_type' | 'option_guide';
3
+ export type ChartUsageRequest = {
4
+ operation: 'list_types';
5
+ } | {
6
+ operation: 'get_type';
7
+ chart_type: string;
8
+ framework?: 'lit' | 'react' | 'vue';
9
+ import_style?: WrapperImportStyle;
10
+ } | {
11
+ operation: 'option_guide';
12
+ max_bytes?: number;
13
+ };
14
+ export declare function handleGetChartUsage(input: ChartUsageRequest): {
15
+ content: {
16
+ type: "text";
17
+ text: string;
18
+ }[];
19
+ };
20
+ //# sourceMappingURL=chart-usage-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-usage-tool.d.ts","sourceRoot":"","sources":["../src/chart-usage-tool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAiC,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAOjG,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,UAAU,GAAG,cAAc,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GACzB;IAAE,SAAS,EAAE,YAAY,CAAA;CAAE,GAC3B;IAAE,SAAS,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;IAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAAE,GACrH;IAAE,SAAS,EAAE,cAAc,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAiFtD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,iBAAiB;;;;;EA6E3D"}
@@ -0,0 +1,153 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { getDocsPage, SKY_CHART_OPTION_API_GUIDE_RELATIVE_PATH } from './docs-read.js';
4
+ import { mcpPackageRoot } from './catalog.js';
5
+ import { buildUsageSnippetForFramework } from './framework-wrappers.js';
6
+ import { McpErrorCode, mcpToolErr } from './mcp-tool-errors.js';
7
+ import { withSkyUiMcpMeta } from './mcp-response-truth.js';
8
+ import { npmMainImport } from './component-tier.js';
9
+ const CHART_CORE_IMPORT = npmMainImport('sky-chart', 'pro');
10
+ let cachedChartApi = null;
11
+ function loadChartApiData() {
12
+ if (cachedChartApi)
13
+ return cachedChartApi;
14
+ const p = join(mcpPackageRoot(), 'data', 'chart-api-sections.json');
15
+ if (!existsSync(p))
16
+ return null;
17
+ try {
18
+ cachedChartApi = JSON.parse(readFileSync(p, 'utf8'));
19
+ return cachedChartApi;
20
+ }
21
+ catch {
22
+ return null;
23
+ }
24
+ }
25
+ function normalizeChartType(input) {
26
+ const n = input.trim();
27
+ if (!n)
28
+ return null;
29
+ const data = loadChartApiData();
30
+ const types = data?.types ?? FALLBACK_CHART_TYPES;
31
+ if (types.includes(n))
32
+ return n;
33
+ const lower = n.toLowerCase();
34
+ const hit = types.find((t) => t.toLowerCase() === lower);
35
+ return hit ?? null;
36
+ }
37
+ const FALLBACK_CHART_TYPES = [
38
+ 'bar',
39
+ 'line',
40
+ 'pie',
41
+ 'funnel',
42
+ 'scatter',
43
+ 'gauge',
44
+ 'boxplot',
45
+ 'candlestick',
46
+ 'heatmap',
47
+ 'lines',
48
+ 'parallel',
49
+ 'graph',
50
+ 'map',
51
+ 'sunburst',
52
+ 'treemap',
53
+ 'custom',
54
+ 'radar',
55
+ 'sankey',
56
+ 'pictorialBar',
57
+ 'themeRiver',
58
+ 'calendar',
59
+ 'brush',
60
+ 'waterfall'
61
+ ];
62
+ function litChartSnippet(type) {
63
+ return `import { html, LitElement } from 'lit';
64
+ import '@sky.ui.pro/core/sky-chart';
65
+
66
+ const option = {
67
+ title: { text: 'My ${type} chart', left: 'center' },
68
+ series: [{ type: '${type === 'waterfall' ? 'waterfall' : type}', data: [] }]
69
+ };
70
+
71
+ export class DemoChart extends LitElement {
72
+ render() {
73
+ return html\`<sky-chart type="${type === 'waterfall' ? 'bar' : type}" .option=\${option}></sky-chart>\`;
74
+ }
75
+ }`;
76
+ }
77
+ function jsonText(payload, layer = 'static_reference') {
78
+ return {
79
+ content: [{ type: 'text', text: JSON.stringify(withSkyUiMcpMeta(payload, layer), null, 2) }]
80
+ };
81
+ }
82
+ export function handleGetChartUsage(input) {
83
+ if (input.operation === 'list_types') {
84
+ const data = loadChartApiData();
85
+ const types = data?.types ?? FALLBACK_CHART_TYPES;
86
+ return jsonText({
87
+ code: 'OK',
88
+ component: 'sky-chart',
89
+ import: CHART_CORE_IMPORT,
90
+ types,
91
+ count: types.length,
92
+ relatedTools: [
93
+ 'get_sky_component_docs with name sky-chart for props, events, and typeDefinitions',
94
+ 'get_chart_usage operation option_guide for root EChartsOption mental model',
95
+ 'get_component_usage for React/Vue wrapper snippets'
96
+ ],
97
+ ...(data?.notes ? { notes: data.notes } : {})
98
+ });
99
+ }
100
+ if (input.operation === 'option_guide') {
101
+ const r = getDocsPage(SKY_CHART_OPTION_API_GUIDE_RELATIVE_PATH, { max_bytes: input.max_bytes });
102
+ if (!r.ok) {
103
+ return mcpToolErr(McpErrorCode.DOCS_READ_FAILED, r.error);
104
+ }
105
+ return jsonText({
106
+ code: 'OK',
107
+ path: r.path,
108
+ mimeType: r.mimeType,
109
+ truncated: r.truncated,
110
+ content: r.content
111
+ });
112
+ }
113
+ const chartType = normalizeChartType(input.chart_type);
114
+ if (!chartType) {
115
+ const data = loadChartApiData();
116
+ return mcpToolErr(McpErrorCode.CHART_USAGE_UNKNOWN_TYPE, `Unknown chart type: ${input.chart_type}`, {
117
+ knownTypes: data?.types ?? FALLBACK_CHART_TYPES
118
+ });
119
+ }
120
+ const data = loadChartApiData();
121
+ const hostType = chartType === 'waterfall' ? 'bar' : chartType;
122
+ const sections = data?.sectionsByType?.[chartType] ?? [];
123
+ const fw = input.framework ?? 'lit';
124
+ let snippet;
125
+ if (fw === 'lit') {
126
+ snippet = litChartSnippet(chartType);
127
+ }
128
+ else {
129
+ const built = buildUsageSnippetForFramework(fw, 'sky-chart', input.import_style ?? 'per_component');
130
+ if (!built.ok) {
131
+ return mcpToolErr(McpErrorCode.USAGE_SNIPPET_FAILED, built.error);
132
+ }
133
+ snippet = `${built.snippet}\n\n// Set host type="${hostType}" and bind option (ECharts-shaped object).`;
134
+ }
135
+ return jsonText({
136
+ code: 'OK',
137
+ chartType,
138
+ hostType,
139
+ component: 'sky-chart',
140
+ import: CHART_CORE_IMPORT,
141
+ framework: fw,
142
+ snippet,
143
+ apiSections: sections,
144
+ accuracyRules: [
145
+ 'Confirm props and events with get_sky_component_docs(name: sky-chart).',
146
+ 'option is ECharts-shaped JSON — validate untrusted config before binding.',
147
+ chartType === 'brush'
148
+ ? 'brush is a range UI: use host start/end (0–100), not a plot renderer.'
149
+ : `Keep option.series consistent with host type="${hostType}".`
150
+ ]
151
+ }, 'api_source');
152
+ }
153
+ //# sourceMappingURL=chart-usage-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-usage-tool.js","sourceRoot":"","sources":["../src/chart-usage-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { ComponentDocumentation } from './parse-component-ast.js';
2
+ export type DocSurface = 'props' | 'events' | 'slots' | 'methods';
3
+ export type ComponentDocsRequest = {
4
+ name?: string;
5
+ names?: string[];
6
+ surface?: DocSurface;
7
+ include_deprecations?: boolean | null;
8
+ max_example_chars?: number | null;
9
+ include_raw_lead?: boolean | null;
10
+ include_internal_lifecycle_methods?: boolean | null;
11
+ };
12
+ export declare function buildDeprecationsPayload(doc: ComponentDocumentation, dataSource: string): {
13
+ name: string;
14
+ tagName: string;
15
+ dataSource: string;
16
+ component: {
17
+ deprecated: boolean;
18
+ replacement: string | null;
19
+ };
20
+ members: {
21
+ properties: {
22
+ name: string;
23
+ description: string | null;
24
+ replacement: string | null;
25
+ }[];
26
+ events: {
27
+ name: string;
28
+ description: string | null;
29
+ replacement: string | null;
30
+ }[];
31
+ slots: {
32
+ name: string;
33
+ description: string | null;
34
+ replacement: string | null;
35
+ }[];
36
+ };
37
+ foundAnyDeprecation: boolean;
38
+ };
39
+ export declare function handleGetSkyComponentDocs(input: ComponentDocsRequest): Promise<{
40
+ content: {
41
+ type: "text";
42
+ text: string;
43
+ }[];
44
+ }>;
45
+ //# sourceMappingURL=component-docs-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-docs-tool.d.ts","sourceRoot":"","sources":["../src/component-docs-tool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIvE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,oBAAoB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACtC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAClC,kCAAkC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACrD,CAAC;AAqBF,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDvF;AAqHD,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,oBAAoB;;;;;GAmD1E"}