@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
@@ -0,0 +1,3 @@
1
+ export declare function getCached<T>(key: string, ttlMs: number, factory: () => T): T;
2
+ export declare function clearCacheKey(key: string): void;
3
+ //# sourceMappingURL=cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAS5E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE/C"}
package/dist/cache.js ADDED
@@ -0,0 +1,15 @@
1
+ const store = new Map();
2
+ export function getCached(key, ttlMs, factory) {
3
+ const now = Date.now();
4
+ const hit = store.get(key);
5
+ if (hit && hit.expiresAt > now) {
6
+ return hit.value;
7
+ }
8
+ const value = factory();
9
+ store.set(key, { value, expiresAt: now + ttlMs });
10
+ return value;
11
+ }
12
+ export function clearCacheKey(key) {
13
+ store.delete(key);
14
+ }
15
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../src/cache.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEhD,MAAM,UAAU,SAAS,CAAI,GAAW,EAAE,KAAa,EAAE,OAAgB;IACvE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAyB,CAAC;IACnD,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC;IACxB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpB,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { type SkyComponentTier } from './component-tier.js';
2
+ export type { SkyComponentTier };
3
+ export type SkyComponentEntry = {
4
+ /** Subpath name without scope, e.g. sky-button */
5
+ name: string;
6
+ /** free (@sky.ui/*) or pro (@sky.ui.pro/*) */
7
+ tier: SkyComponentTier;
8
+ /** Recommended core side-effect import for apps */
9
+ npmImport: string;
10
+ /** Framework wrapper subpath imports */
11
+ vueImport: string;
12
+ reactImport: string;
13
+ /** Resolved path inside published core package (for maintainers) */
14
+ distImport?: string;
15
+ typesPath?: string;
16
+ };
17
+ export type ResolvedComponent = {
18
+ entry: SkyComponentEntry;
19
+ match: 'exact' | 'compact' | 'fuzzy';
20
+ requested: string;
21
+ };
22
+ /** Parent of `packages/mcp` (i.e. `packages/`) — works for both `src/` and `dist/` entrypoints */
23
+ export declare function packagesDir(): string;
24
+ /** Root of the `@sky.ui/mcp` package (directory containing `dist/`) — works when published to npm. */
25
+ export declare function mcpPackageRoot(): string;
26
+ export declare function resolveMainPackageRoot(): string | null;
27
+ export declare function resolveMainProPackageRoot(): string | null;
28
+ export declare function resolveMainRootForEntry(entry: SkyComponentEntry): string | null;
29
+ /** Normalize user input to a `sky-*` export name */
30
+ export declare function normalizeComponentKey(input: string): string;
31
+ /**
32
+ * Resolve user-entered component identifiers with exact, compact, then fuzzy matching.
33
+ * Handles: "theme switcher", "ThemeSwitcher", "themeswitcher", minor typos, etc.
34
+ */
35
+ export declare function resolveComponentEntry(input: string, components: SkyComponentEntry[]): ResolvedComponent | null;
36
+ export declare function loadSkyComponents(): {
37
+ ok: true;
38
+ path: string;
39
+ components: SkyComponentEntry[];
40
+ } | {
41
+ ok: false;
42
+ error: string;
43
+ };
44
+ /** Cached catalog parse (TTL) to reduce repeated package.json + exports parsing. */
45
+ export declare function loadSkyComponentsCached(): {
46
+ ok: true;
47
+ path: string;
48
+ components: SkyComponentEntry[];
49
+ } | {
50
+ ok: false;
51
+ error: string;
52
+ };
53
+ export declare function getMainPackageVersion(): string | undefined;
54
+ export declare function loadMonorepoVersion(): string | undefined;
55
+ export declare function loadPackageSummaries(): {
56
+ name: string;
57
+ version?: string;
58
+ description?: string;
59
+ }[];
60
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAKA,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,IAAI,EAAE,gBAAgB,CAAC;IACvB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,kGAAkG;AAClG,wBAAgB,WAAW,IAAI,MAAM,CAGpC;AAED,sGAAsG;AACtG,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAgDD,wBAAgB,sBAAsB,IAAI,MAAM,GAAG,IAAI,CAGtD;AAED,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAEzD;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CAE/E;AAED,oDAAoD;AACpD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAoB3D;AAyBD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,iBAAiB,EAAE,GAC9B,iBAAiB,GAAG,IAAI,CAgC1B;AA8ED,wBAAgB,iBAAiB,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,iBAAiB,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwB9H;AAED,oFAAoF;AACpF,wBAAgB,uBAAuB,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,iBAAiB,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAEpI;AAED,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAU1D;AAED,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAWxD;AA+BD,wBAAgB,oBAAoB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,CAsCjG"}
@@ -0,0 +1,343 @@
1
+ import { readFileSync, existsSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { createRequire } from 'node:module';
5
+ import { getCached } from './cache.js';
6
+ import { componentTier, loadProComponentTags, npmMainImport, npmReactImport, npmVueImport } from './component-tier.js';
7
+ /** Parent of `packages/mcp` (i.e. `packages/`) — works for both `src/` and `dist/` entrypoints */
8
+ export function packagesDir() {
9
+ const here = dirname(fileURLToPath(import.meta.url));
10
+ return join(here, '..', '..');
11
+ }
12
+ /** Root of the `@sky.ui/mcp` package (directory containing `dist/`) — works when published to npm. */
13
+ export function mcpPackageRoot() {
14
+ const here = dirname(fileURLToPath(import.meta.url));
15
+ return join(here, '..');
16
+ }
17
+ function requireFromHere() {
18
+ return createRequire(import.meta.url);
19
+ }
20
+ function findPackageRootFromResolvedEntry(resolvedFile, packageName) {
21
+ let dir = dirname(resolvedFile);
22
+ for (let i = 0; i < 8; i++) {
23
+ const maybePkg = join(dir, 'package.json');
24
+ if (existsSync(maybePkg)) {
25
+ try {
26
+ const raw = readJson(maybePkg);
27
+ if (raw.name === packageName) {
28
+ return dir;
29
+ }
30
+ }
31
+ catch {
32
+ // continue climbing
33
+ }
34
+ }
35
+ const parent = dirname(dir);
36
+ if (parent === dir)
37
+ break;
38
+ dir = parent;
39
+ }
40
+ return null;
41
+ }
42
+ function resolvePackageRoot(packageName, envVar, monorepoFolder) {
43
+ const envRoot = envVar?.trim();
44
+ if (envRoot) {
45
+ const abs = resolve(envRoot);
46
+ if (existsSync(join(abs, 'package.json'))) {
47
+ return abs;
48
+ }
49
+ }
50
+ const monorepoRoot = join(packagesDir(), monorepoFolder);
51
+ if (existsSync(join(monorepoRoot, 'package.json'))) {
52
+ return monorepoRoot;
53
+ }
54
+ try {
55
+ const req = requireFromHere();
56
+ const resolved = req.resolve(packageName);
57
+ return findPackageRootFromResolvedEntry(resolved, packageName);
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ export function resolveMainPackageRoot() {
64
+ /** Lets tooling (e.g. sky-ui-example sync:component-docs) pin `@sky.ui/core` when run outside the monorepo layout. */
65
+ return resolvePackageRoot('@sky.ui/core', process.env.SKY_UI_MAIN_PACKAGE_ROOT, 'main');
66
+ }
67
+ export function resolveMainProPackageRoot() {
68
+ return resolvePackageRoot('@sky.ui.pro/core', process.env.SKY_UI_MAIN_PRO_PACKAGE_ROOT, 'main-pro');
69
+ }
70
+ export function resolveMainRootForEntry(entry) {
71
+ return entry.tier === 'pro' ? resolveMainProPackageRoot() : resolveMainPackageRoot();
72
+ }
73
+ /** Normalize user input to a `sky-*` export name */
74
+ export function normalizeComponentKey(input) {
75
+ // 1) Split camel/Pascal case boundaries: SkyButton -> Sky-Button
76
+ let key = input
77
+ .trim()
78
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
79
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2');
80
+ // 2) Convert common separators/spaces to hyphen
81
+ key = key
82
+ .replace(/[\s_/\\.]+/g, '-')
83
+ // 3) Drop everything except alnum/hyphen
84
+ .replace(/[^a-zA-Z0-9-]/g, '')
85
+ // 4) Collapse repeated hyphens
86
+ .replace(/-+/g, '-')
87
+ .replace(/^-|-$/g, '')
88
+ .toLowerCase();
89
+ // 5) Strip optional leading "sky" token variants before prefixing once
90
+ key = key.replace(/^sky-?/, '');
91
+ return `sky-${key}`;
92
+ }
93
+ function compactComponentText(input) {
94
+ return input.toLowerCase().replace(/[^a-z0-9]/g, '');
95
+ }
96
+ function levenshtein(a, b) {
97
+ const m = a.length;
98
+ const n = b.length;
99
+ if (m === 0)
100
+ return n;
101
+ if (n === 0)
102
+ return m;
103
+ const dp = Array.from({ length: n + 1 }, (_, i) => i);
104
+ for (let i = 1; i <= m; i++) {
105
+ let prev = dp[0];
106
+ dp[0] = i;
107
+ for (let j = 1; j <= n; j++) {
108
+ const tmp = dp[j];
109
+ const cost = a[i - 1] === b[j - 1] ? 0 : 1;
110
+ dp[j] = Math.min(dp[j] + 1, dp[j - 1] + 1, prev + cost);
111
+ prev = tmp;
112
+ }
113
+ }
114
+ return dp[n];
115
+ }
116
+ /**
117
+ * Resolve user-entered component identifiers with exact, compact, then fuzzy matching.
118
+ * Handles: "theme switcher", "ThemeSwitcher", "themeswitcher", minor typos, etc.
119
+ */
120
+ export function resolveComponentEntry(input, components) {
121
+ const exactKey = normalizeComponentKey(input);
122
+ const exact = components.find((c) => c.name === exactKey);
123
+ if (exact)
124
+ return { entry: exact, match: 'exact', requested: input };
125
+ const inCompact = compactComponentText(input).replace(/^sky/, '');
126
+ // compact match (remove separators/casing): themeswitcher -> sky-theme-switcher
127
+ for (const c of components) {
128
+ const cCompact = compactComponentText(c.name).replace(/^sky/, '');
129
+ if (cCompact === inCompact && inCompact.length > 0) {
130
+ return { entry: c, match: 'compact', requested: input };
131
+ }
132
+ }
133
+ // fuzzy fallback with conservative threshold to avoid wild mismatches
134
+ let best = null;
135
+ for (const c of components) {
136
+ const cCompact = compactComponentText(c.name).replace(/^sky/, '');
137
+ if (!cCompact || !inCompact)
138
+ continue;
139
+ const d = levenshtein(inCompact, cCompact);
140
+ if (!best || d < best.d)
141
+ best = { c, d };
142
+ }
143
+ if (!best)
144
+ return null;
145
+ const maxLen = Math.max(compactComponentText(best.c.name).replace(/^sky/, '').length, inCompact.length);
146
+ const threshold = Math.max(1, Math.floor(maxLen * 0.2)); // <=20% edits
147
+ if (best.d <= threshold) {
148
+ return { entry: best.c, match: 'fuzzy', requested: input };
149
+ }
150
+ return null;
151
+ }
152
+ function mainPackageJsonPath() {
153
+ const root = resolveMainPackageRoot();
154
+ return root ? join(root, 'package.json') : join(packagesDir(), 'main', 'package.json');
155
+ }
156
+ function readJson(path) {
157
+ return JSON.parse(readFileSync(path, 'utf8'));
158
+ }
159
+ function parseCoreComponents(mainPkgPath, expectedTier) {
160
+ const raw = readJson(mainPkgPath);
161
+ const exp = raw.exports;
162
+ if (!exp || typeof exp !== 'object') {
163
+ return [];
164
+ }
165
+ const list = [];
166
+ for (const [key, val] of Object.entries(exp)) {
167
+ if (key.includes('*')) {
168
+ continue;
169
+ }
170
+ const m = /^\.\/(sky-[a-z0-9-]+)$/.exec(key);
171
+ if (!m) {
172
+ continue;
173
+ }
174
+ const name = m[1];
175
+ const tier = componentTier(name);
176
+ if (tier !== expectedTier) {
177
+ continue;
178
+ }
179
+ let distImport;
180
+ let typesPath;
181
+ if (typeof val === 'string') {
182
+ distImport = val;
183
+ }
184
+ else if (val && typeof val === 'object') {
185
+ if (typeof val.import === 'string') {
186
+ distImport = val.import;
187
+ }
188
+ if (typeof val.types === 'string') {
189
+ typesPath = val.types;
190
+ }
191
+ }
192
+ list.push(makeComponentEntry(name, tier, distImport, typesPath));
193
+ }
194
+ list.sort((a, b) => a.name.localeCompare(b.name));
195
+ return list;
196
+ }
197
+ function makeComponentEntry(name, tier, distImport, typesPath) {
198
+ return {
199
+ name,
200
+ tier,
201
+ npmImport: npmMainImport(name, tier),
202
+ vueImport: npmVueImport(name, tier),
203
+ reactImport: npmReactImport(name, tier),
204
+ distImport,
205
+ typesPath
206
+ };
207
+ }
208
+ function proFallbackComponents(existing) {
209
+ const seen = new Set(existing.map((c) => c.name));
210
+ const out = [];
211
+ for (const name of [...loadProComponentTags()].sort()) {
212
+ if (seen.has(name))
213
+ continue;
214
+ out.push(makeComponentEntry(name, 'pro'));
215
+ }
216
+ return out;
217
+ }
218
+ export function loadSkyComponents() {
219
+ const freePath = mainPackageJsonPath();
220
+ if (!existsSync(freePath)) {
221
+ return {
222
+ ok: false,
223
+ error: `Could not find @sky.ui/core package.json at ${freePath}. Install @sky.ui/core (or run inside the sky-ui monorepo).`
224
+ };
225
+ }
226
+ try {
227
+ const free = parseCoreComponents(freePath, 'free');
228
+ const proRoot = resolveMainProPackageRoot();
229
+ const proPath = proRoot ? join(proRoot, 'package.json') : join(packagesDir(), 'main-pro', 'package.json');
230
+ let pro = [];
231
+ if (existsSync(proPath)) {
232
+ pro = parseCoreComponents(proPath, 'pro');
233
+ }
234
+ pro = [...pro, ...proFallbackComponents([...free, ...pro])];
235
+ const components = [...free, ...pro].sort((a, b) => a.name.localeCompare(b.name));
236
+ const pathLabel = pro.length > 0 ? `${freePath} + ${proPath}` : freePath;
237
+ return { ok: true, path: pathLabel, components };
238
+ }
239
+ catch (e) {
240
+ const msg = e instanceof Error ? e.message : String(e);
241
+ return { ok: false, error: `Failed to read component catalog: ${msg}` };
242
+ }
243
+ }
244
+ /** Cached catalog parse (TTL) to reduce repeated package.json + exports parsing. */
245
+ export function loadSkyComponentsCached() {
246
+ return getCached('sky-components-catalog', 60_000, () => loadSkyComponents());
247
+ }
248
+ export function getMainPackageVersion() {
249
+ const root = resolveMainPackageRoot();
250
+ if (!root)
251
+ return undefined;
252
+ try {
253
+ const p = join(root, 'package.json');
254
+ const pkg = readJson(p);
255
+ return pkg.version;
256
+ }
257
+ catch {
258
+ return undefined;
259
+ }
260
+ }
261
+ export function loadMonorepoVersion() {
262
+ const rootJson = join(packagesDir(), '..', 'package.json');
263
+ if (!existsSync(rootJson)) {
264
+ return undefined;
265
+ }
266
+ try {
267
+ const pkg = readJson(rootJson);
268
+ return pkg.version;
269
+ }
270
+ catch {
271
+ return undefined;
272
+ }
273
+ }
274
+ function loadInstalledPackageSummary(packageName) {
275
+ try {
276
+ const req = requireFromHere();
277
+ const resolvedEntry = req.resolve(packageName);
278
+ let dir = dirname(resolvedEntry);
279
+ for (let i = 0; i < 8; i++) {
280
+ const pkgPath = join(dir, 'package.json');
281
+ if (existsSync(pkgPath)) {
282
+ const pkg = readJson(pkgPath);
283
+ if (pkg.name === packageName) {
284
+ return {
285
+ name: pkg.name,
286
+ version: pkg.version,
287
+ description: pkg.description
288
+ };
289
+ }
290
+ }
291
+ const parent = dirname(dir);
292
+ if (parent === dir)
293
+ break;
294
+ dir = parent;
295
+ }
296
+ return null;
297
+ }
298
+ catch {
299
+ return null;
300
+ }
301
+ }
302
+ export function loadPackageSummaries() {
303
+ const root = packagesDir();
304
+ const names = ['main', 'main-pro', 'react', 'react-pro', 'vue', 'vue-pro', 'reactivity', 'utils'];
305
+ const out = [];
306
+ for (const n of names) {
307
+ const p = join(root, n, 'package.json');
308
+ if (!existsSync(p)) {
309
+ continue;
310
+ }
311
+ try {
312
+ const pkg = readJson(p);
313
+ out.push({
314
+ name: pkg.name ?? `@sky.ui/${n}`,
315
+ version: pkg.version,
316
+ description: pkg.description
317
+ });
318
+ }
319
+ catch {
320
+ /* skip */
321
+ }
322
+ }
323
+ // Published mode fallback: inspect installed package metadata from node_modules.
324
+ if (out.length === 0) {
325
+ const packageNames = [
326
+ '@sky.ui/core',
327
+ '@sky.ui/react',
328
+ '@sky.ui/vue',
329
+ '@sky.ui.pro/core',
330
+ '@sky.ui.pro/react',
331
+ '@sky.ui.pro/vue',
332
+ '@sky.ui/reactivity',
333
+ '@sky.ui/utils'
334
+ ];
335
+ for (const packageName of packageNames) {
336
+ const summary = loadInstalledPackageSummary(packageName);
337
+ if (summary)
338
+ out.push(summary);
339
+ }
340
+ }
341
+ return out;
342
+ }
343
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
package/dist/cem.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import type { ComponentDocumentation } from './parse-component-ast.js';
2
+ /** Minimal typing for Custom Elements Manifest (schema 1.0.0). */
3
+ type CemModule = {
4
+ path: string;
5
+ declarations?: unknown[];
6
+ };
7
+ type CemPackage = {
8
+ schemaVersion: string;
9
+ modules: CemModule[];
10
+ };
11
+ export declare function isCemManifestPresent(): boolean;
12
+ /** Raw JSON string of the manifest, or null if missing. */
13
+ export declare function readCustomElementsManifestText(): string | null;
14
+ export declare function loadCemPackage(): CemPackage | null;
15
+ export declare function getCemSummaryForTag(tagName: string): string | null;
16
+ export declare function findCemDeclaration(tagName: string): {
17
+ modulePath: string;
18
+ declaration: Record<string, unknown>;
19
+ } | null;
20
+ /**
21
+ * Map a CEM class declaration into the same structured shape the AST path uses,
22
+ * so MCP clients always see one JSON schema.
23
+ */
24
+ export declare function declarationToComponentDocumentation(tagName: string, componentFolderName: string, npmImport: string | undefined, modulePath: string, declaration: Record<string, unknown>, sourcePackage?: 'main' | 'main-pro'): ComponentDocumentation;
25
+ export {};
26
+ //# sourceMappingURL=cem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cem.d.ts","sourceRoot":"","sources":["../src/cem.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,kEAAkE;AAClE,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;CAC1B,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,SAAS,EAAE,CAAC;CACtB,CAAC;AAmFF,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,2DAA2D;AAC3D,wBAAgB,8BAA8B,IAAI,MAAM,GAAG,IAAI,CAU9D;AAED,wBAAgB,cAAc,IAAI,UAAU,GAAG,IAAI,CAGlD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWlE;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,IAAI,CAoBvH;AA4JD;;;GAGG;AACH,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,MAAM,EACf,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,aAAa,GAAE,MAAM,GAAG,UAAmB,GAC1C,sBAAsB,CAyCxB"}