@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.
- package/LICENSE.md +139 -0
- package/README.md +182 -0
- package/data/chart-api-sections.json +4185 -0
- package/data/component-tier.json +25 -0
- package/data/design-guidelines/p0-guidelines.json +13381 -0
- package/data/reactivity-readme-snapshot.json +1 -0
- package/data/theme-authoring-contract.json +598 -0
- package/data/utils-suggestion-snapshot.json +1 -0
- package/dist/cache.d.ts +3 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +15 -0
- package/dist/cache.js.map +1 -0
- package/dist/catalog.d.ts +60 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +343 -0
- package/dist/catalog.js.map +1 -0
- package/dist/cem.d.ts +26 -0
- package/dist/cem.d.ts.map +1 -0
- package/dist/cem.js +348 -0
- package/dist/cem.js.map +1 -0
- package/dist/chart-usage-tool.d.ts +20 -0
- package/dist/chart-usage-tool.d.ts.map +1 -0
- package/dist/chart-usage-tool.js +153 -0
- package/dist/chart-usage-tool.js.map +1 -0
- package/dist/component-docs-tool.d.ts +45 -0
- package/dist/component-docs-tool.d.ts.map +1 -0
- package/dist/component-docs-tool.js +217 -0
- package/dist/component-docs-tool.js.map +1 -0
- package/dist/component-method-filter.d.ts +3 -0
- package/dist/component-method-filter.d.ts.map +1 -0
- package/dist/component-method-filter.js +32 -0
- package/dist/component-method-filter.js.map +1 -0
- package/dist/component-tier.d.ts +20 -0
- package/dist/component-tier.d.ts.map +1 -0
- package/dist/component-tier.js +59 -0
- package/dist/component-tier.js.map +1 -0
- package/dist/component-usage-tool.d.ts +20 -0
- package/dist/component-usage-tool.d.ts.map +1 -0
- package/dist/component-usage-tool.js +90 -0
- package/dist/component-usage-tool.js.map +1 -0
- package/dist/design-guidelines/a11y-engine.d.ts +22 -0
- package/dist/design-guidelines/a11y-engine.d.ts.map +1 -0
- package/dist/design-guidelines/a11y-engine.js +78 -0
- package/dist/design-guidelines/a11y-engine.js.map +1 -0
- package/dist/design-guidelines/compatibility-engine.d.ts +20 -0
- package/dist/design-guidelines/compatibility-engine.d.ts.map +1 -0
- package/dist/design-guidelines/compatibility-engine.js +57 -0
- package/dist/design-guidelines/compatibility-engine.js.map +1 -0
- package/dist/design-guidelines/component-guideline-engine.d.ts +19 -0
- package/dist/design-guidelines/component-guideline-engine.d.ts.map +1 -0
- package/dist/design-guidelines/component-guideline-engine.js +40 -0
- package/dist/design-guidelines/component-guideline-engine.js.map +1 -0
- package/dist/design-guidelines/composition-engine.d.ts +10 -0
- package/dist/design-guidelines/composition-engine.d.ts.map +1 -0
- package/dist/design-guidelines/composition-engine.js +29 -0
- package/dist/design-guidelines/composition-engine.js.map +1 -0
- package/dist/design-guidelines/pattern-engine.d.ts +20 -0
- package/dist/design-guidelines/pattern-engine.d.ts.map +1 -0
- package/dist/design-guidelines/pattern-engine.js +58 -0
- package/dist/design-guidelines/pattern-engine.js.map +1 -0
- package/dist/design-guidelines/recommendation-engine.d.ts +11 -0
- package/dist/design-guidelines/recommendation-engine.d.ts.map +1 -0
- package/dist/design-guidelines/recommendation-engine.js +88 -0
- package/dist/design-guidelines/recommendation-engine.js.map +1 -0
- package/dist/design-guidelines/repository.d.ts +19 -0
- package/dist/design-guidelines/repository.d.ts.map +1 -0
- package/dist/design-guidelines/repository.js +71 -0
- package/dist/design-guidelines/repository.js.map +1 -0
- package/dist/design-guidelines/review-engine.d.ts +20 -0
- package/dist/design-guidelines/review-engine.d.ts.map +1 -0
- package/dist/design-guidelines/review-engine.js +179 -0
- package/dist/design-guidelines/review-engine.js.map +1 -0
- package/dist/design-guidelines/schema.d.ts +256 -0
- package/dist/design-guidelines/schema.d.ts.map +1 -0
- package/dist/design-guidelines/schema.js +124 -0
- package/dist/design-guidelines/schema.js.map +1 -0
- package/dist/design-guidelines/token-engine.d.ts +23 -0
- package/dist/design-guidelines/token-engine.d.ts.map +1 -0
- package/dist/design-guidelines/token-engine.js +119 -0
- package/dist/design-guidelines/token-engine.js.map +1 -0
- package/dist/docs-read.d.ts +28 -0
- package/dist/docs-read.d.ts.map +1 -0
- package/dist/docs-read.js +102 -0
- package/dist/docs-read.js.map +1 -0
- package/dist/docs.d.ts +73 -0
- package/dist/docs.d.ts.map +1 -0
- package/dist/docs.js +323 -0
- package/dist/docs.js.map +1 -0
- package/dist/example-site-doc-enrichment.d.ts +27 -0
- package/dist/example-site-doc-enrichment.d.ts.map +1 -0
- package/dist/example-site-doc-enrichment.js +171 -0
- package/dist/example-site-doc-enrichment.js.map +1 -0
- package/dist/example-site-fetch.d.ts +44 -0
- package/dist/example-site-fetch.d.ts.map +1 -0
- package/dist/example-site-fetch.js +255 -0
- package/dist/example-site-fetch.js.map +1 -0
- package/dist/framework-wrappers.d.ts +46 -0
- package/dist/framework-wrappers.d.ts.map +1 -0
- package/dist/framework-wrappers.js +131 -0
- package/dist/framework-wrappers.js.map +1 -0
- package/dist/mcp-response-truth.d.ts +18 -0
- package/dist/mcp-response-truth.d.ts.map +1 -0
- package/dist/mcp-response-truth.js +45 -0
- package/dist/mcp-response-truth.js.map +1 -0
- package/dist/mcp-runtime-status.d.ts +37 -0
- package/dist/mcp-runtime-status.d.ts.map +1 -0
- package/dist/mcp-runtime-status.js +96 -0
- package/dist/mcp-runtime-status.js.map +1 -0
- package/dist/mcp-stdio-entry.d.ts +3 -0
- package/dist/mcp-stdio-entry.d.ts.map +1 -0
- package/dist/mcp-stdio-entry.js +35 -0
- package/dist/mcp-stdio-entry.js.map +1 -0
- package/dist/mcp-tool-errors.d.ts +35 -0
- package/dist/mcp-tool-errors.d.ts.map +1 -0
- package/dist/mcp-tool-errors.js +42 -0
- package/dist/mcp-tool-errors.js.map +1 -0
- package/dist/parse-component-ast.d.ts +112 -0
- package/dist/parse-component-ast.d.ts.map +1 -0
- package/dist/parse-component-ast.js +695 -0
- package/dist/parse-component-ast.js.map +1 -0
- package/dist/post-endpoint-server.d.ts +19 -0
- package/dist/post-endpoint-server.d.ts.map +1 -0
- package/dist/post-endpoint-server.js +777 -0
- package/dist/post-endpoint-server.js.map +1 -0
- package/dist/reactivity-info.d.ts +22 -0
- package/dist/reactivity-info.d.ts.map +1 -0
- package/dist/reactivity-info.js +99 -0
- package/dist/reactivity-info.js.map +1 -0
- package/dist/reactivity-layer-tool.d.ts +18 -0
- package/dist/reactivity-layer-tool.d.ts.map +1 -0
- package/dist/reactivity-layer-tool.js +58 -0
- package/dist/reactivity-layer-tool.js.map +1 -0
- package/dist/reactivity-readme-topics.d.ts +46 -0
- package/dist/reactivity-readme-topics.d.ts.map +1 -0
- package/dist/reactivity-readme-topics.js +206 -0
- package/dist/reactivity-readme-topics.js.map +1 -0
- package/dist/read-only-tool-allowlist.d.ts +7 -0
- package/dist/read-only-tool-allowlist.d.ts.map +1 -0
- package/dist/read-only-tool-allowlist.js +17 -0
- package/dist/read-only-tool-allowlist.js.map +1 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +786 -0
- package/dist/server.js.map +1 -0
- package/dist/source-read.d.ts +31 -0
- package/dist/source-read.d.ts.map +1 -0
- package/dist/source-read.js +213 -0
- package/dist/source-read.js.map +1 -0
- package/dist/theme-authoring/contract-schema.d.ts +191 -0
- package/dist/theme-authoring/contract-schema.d.ts.map +1 -0
- package/dist/theme-authoring/contract-schema.js +49 -0
- package/dist/theme-authoring/contract-schema.js.map +1 -0
- package/dist/theme-authoring/repository.d.ts +18 -0
- package/dist/theme-authoring/repository.d.ts.map +1 -0
- package/dist/theme-authoring/repository.js +55 -0
- package/dist/theme-authoring/repository.js.map +1 -0
- package/dist/theme-tool.d.ts +26 -0
- package/dist/theme-tool.d.ts.map +1 -0
- package/dist/theme-tool.js +312 -0
- package/dist/theme-tool.js.map +1 -0
- package/dist/utils-guide-topics.d.ts +39 -0
- package/dist/utils-guide-topics.d.ts.map +1 -0
- package/dist/utils-guide-topics.js +202 -0
- package/dist/utils-guide-topics.js.map +1 -0
- package/dist/utils-info.d.ts +75 -0
- package/dist/utils-info.d.ts.map +1 -0
- package/dist/utils-info.js +219 -0
- package/dist/utils-info.js.map +1 -0
- package/dist/utils-suggestion-grounding.d.ts +59 -0
- package/dist/utils-suggestion-grounding.d.ts.map +1 -0
- package/dist/utils-suggestion-grounding.js +267 -0
- package/dist/utils-suggestion-grounding.js.map +1 -0
- package/docs/agent-recipe-example-site.md +91 -0
- package/docs/ai-design-mcp-blueprint.md +75 -0
- package/docs/cross-model-mcp-playbook.md +127 -0
- package/docs/example-site-and-mcp-training.md +82 -0
- package/docs/mcp-capability-status.md +51 -0
- package/docs/mcp-tooling-roadmap.md +36 -0
- package/docs/sky-chart-option-api.md +47 -0
- package/docs/starter-prompt.md +17 -0
- package/docs/theme-config-guide.md +178 -0
- package/docs/utils-usage-guide.md +110 -0
- package/docs/vue-wrapper-v-model.md +36 -0
- package/package.json +63 -0
package/dist/cache.d.ts
ADDED
|
@@ -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"}
|
package/dist/catalog.js
ADDED
|
@@ -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"}
|