@astralkit/mcp 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -0
- package/dist/api.js +2 -2
- package/dist/auth.js +4 -2
- package/dist/auth.js.map +1 -1
- package/dist/capture.d.ts +34 -0
- package/dist/capture.d.ts.map +1 -0
- package/dist/capture.js +120 -0
- package/dist/capture.js.map +1 -0
- package/dist/data/polish.d.ts.map +1 -1
- package/dist/data/polish.js +9 -2
- package/dist/data/polish.js.map +1 -1
- package/dist/data/screens.js +1 -1
- package/dist/data/screens.js.map +1 -1
- package/dist/data/visual.d.ts +7 -0
- package/dist/data/visual.d.ts.map +1 -0
- package/dist/data/visual.js +105 -0
- package/dist/data/visual.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +262 -35
- package/dist/server.js.map +1 -1
- package/package.json +8 -5
package/README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# @astralkit/mcp
|
|
2
|
+
|
|
3
|
+
The **AstralKit MCP server** — search, preview, and build with the AstralKit UI
|
|
4
|
+
component library from any MCP-capable AI coding tool (Claude Code, Cursor,
|
|
5
|
+
Windsurf, Copilot, …). AstralKit is a premium, design-token-based component
|
|
6
|
+
library; this server lets your agent build **from real library components**
|
|
7
|
+
instead of freestyling look-alike UI.
|
|
8
|
+
|
|
9
|
+
Requires a **Pro or higher** AstralKit subscription. Get an API key at
|
|
10
|
+
<https://astralkit.com/settings>.
|
|
11
|
+
|
|
12
|
+
## Install / configure
|
|
13
|
+
|
|
14
|
+
The server runs via `npx` — no global install needed. Add it to your MCP client
|
|
15
|
+
config with your API key:
|
|
16
|
+
|
|
17
|
+
```jsonc
|
|
18
|
+
{
|
|
19
|
+
"mcpServers": {
|
|
20
|
+
"astralkit": {
|
|
21
|
+
"command": "npx",
|
|
22
|
+
"args": ["@astralkit/mcp@latest"],
|
|
23
|
+
"env": { "ASTRALKIT_API_KEY": "ak_your_key_here" }
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- **Claude Code:** `claude mcp add astralkit -e ASTRALKIT_API_KEY=ak_… -- npx @astralkit/mcp@latest`
|
|
30
|
+
- **Cursor / Windsurf / others:** add the JSON block above to the client's MCP settings.
|
|
31
|
+
|
|
32
|
+
Optional env: `ASTRALKIT_API_URL` (defaults to `https://astralkit.com`; must be HTTPS except localhost).
|
|
33
|
+
|
|
34
|
+
## The golden path
|
|
35
|
+
|
|
36
|
+
For any UI request the agent should: `get_coding_standards` → `get_design_tokens`
|
|
37
|
+
→ `search_components` → `get_preview` → `get_component` (recipe) →
|
|
38
|
+
`install_component` → `get_icons` / `get_setup` → `validate_code` + `review_app`
|
|
39
|
+
→ build → `verify_visual` (screenshot the render, compare it against the
|
|
40
|
+
reference preview, fix every FAIL). The library is the source of truth — install
|
|
41
|
+
and re-content real components; don't hand-write what the library already
|
|
42
|
+
provides — and never declare UI done without the eyes-on check.
|
|
43
|
+
|
|
44
|
+
## Tools
|
|
45
|
+
|
|
46
|
+
**Discover:** `search_components`, `list_components`, `list_categories`,
|
|
47
|
+
`get_preview`, `install_component`, `search_logos`
|
|
48
|
+
**Build:** `get_component`, `get_coding_standards`, `get_design_tokens`,
|
|
49
|
+
`get_icons`, `get_setup`
|
|
50
|
+
**Structure & quality:** `get_build_standards`, `get_screen_blueprint`,
|
|
51
|
+
`polish_ui`, `validate_code`, `review_app`
|
|
52
|
+
**Visual verification:** `verify_visual` (screenshot your render vs the
|
|
53
|
+
reference preview + comparison rubric), `screenshot_ui` (screenshot + self-review
|
|
54
|
+
rubric). Both drive the system Chrome/Edge headlessly — no browser download;
|
|
55
|
+
they need the app's dev server running.
|
|
56
|
+
**Boosters** (Plus/Lifetime): `list_boosters`, `get_booster`
|
|
57
|
+
|
|
58
|
+
All tools are read-only. Resources (`astralkit://tokens`, `://rules`, `://icons`,
|
|
59
|
+
`://setup`, `://catalog`) mirror the static references for clients that support
|
|
60
|
+
MCP resources.
|
|
61
|
+
|
|
62
|
+
## License
|
|
63
|
+
|
|
64
|
+
Proprietary — see `LICENSE`. © Blue Beacon Creative LLC.
|
package/dist/api.js
CHANGED
|
@@ -35,8 +35,8 @@ async function request(path) {
|
|
|
35
35
|
const url = `${apiBase}${path}`;
|
|
36
36
|
const headers = {
|
|
37
37
|
'Accept': 'application/json',
|
|
38
|
-
'User-Agent': '@astralkit/mcp/1.
|
|
39
|
-
'X-AstralKit-CLI': 'mcp-1.
|
|
38
|
+
'User-Agent': '@astralkit/mcp/1.8.0',
|
|
39
|
+
'X-AstralKit-CLI': 'mcp-1.8.0',
|
|
40
40
|
};
|
|
41
41
|
if (apiKey) {
|
|
42
42
|
headers['x-api-key'] = apiKey;
|
package/dist/auth.js
CHANGED
|
@@ -20,9 +20,11 @@ export async function validatePremiumAccess(apiKey) {
|
|
|
20
20
|
if (err.code === 'AUTH_REQUIRED') {
|
|
21
21
|
throw new AuthError('Invalid or expired API key. Get a new one at https://astralkit.com/settings');
|
|
22
22
|
}
|
|
23
|
+
// Network/timeout is TRANSIENT — re-throw the original ApiError (NOT an
|
|
24
|
+
// AuthError) so the caller can tell "connectivity blip" apart from "key is
|
|
25
|
+
// invalid" and avoid permanently revoking a valid subscriber.
|
|
23
26
|
if (err.code === 'NETWORK_ERROR' || err.code === 'TIMEOUT') {
|
|
24
|
-
throw
|
|
25
|
-
'Check your internet connection and try again.');
|
|
27
|
+
throw err;
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
throw err;
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAQ9C,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAqB;IAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,SAAS,CACjB,wEAAwE;YACxE,wDAAwD;YACxD,wDAAwD;YACxD,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CACjB,iFAAiF;YACjF,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACjC,MAAM,IAAI,SAAS,CACjB,6EAA6E,CAC9E,CAAC;YACJ,CAAC;YACD,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC3D,MAAM,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAQ9C,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,MAAqB;IAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,SAAS,CACjB,wEAAwE;YACxE,wDAAwD;YACxD,wDAAwD;YACxD,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CACjB,iFAAiF;YACjF,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACjC,MAAM,IAAI,SAAS,CACjB,6EAA6E,CAC9E,CAAC;YACJ,CAAC;YACD,wEAAwE;YACxE,2EAA2E;YAC3E,8DAA8D;YAC9D,IAAI,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC3D,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,SAAS,CACjB,kFAAkF,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,SAAS,CACjB,wDAAwD;YACxD,sBAAsB,MAAM,CAAC,IAAI,MAAM;YACvC,0CAA0C,CAC3C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare class BrowserUnavailableError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class CaptureError extends Error {
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
}
|
|
7
|
+
export declare const VIEWPORTS: {
|
|
8
|
+
readonly desktop: {
|
|
9
|
+
readonly width: 1440;
|
|
10
|
+
readonly height: 900;
|
|
11
|
+
};
|
|
12
|
+
readonly mobile: {
|
|
13
|
+
readonly width: 390;
|
|
14
|
+
readonly height: 844;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export type ViewportName = keyof typeof VIEWPORTS;
|
|
18
|
+
export interface CaptureOptions {
|
|
19
|
+
url: string;
|
|
20
|
+
viewport?: ViewportName;
|
|
21
|
+
/** Capture the full scrollable page (default) or just the viewport. */
|
|
22
|
+
fullPage?: boolean;
|
|
23
|
+
/** Optional CSS selector — capture just that element (e.g. the component region inside an app shell). */
|
|
24
|
+
selector?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface CaptureResult {
|
|
27
|
+
base64: string;
|
|
28
|
+
mimeType: string;
|
|
29
|
+
viewport: ViewportName;
|
|
30
|
+
/** What was captured: 'full-page' | 'viewport' | the selector. */
|
|
31
|
+
scope: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function captureScreenshot(opts: CaptureOptions): Promise<CaptureResult>;
|
|
34
|
+
//# sourceMappingURL=capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"AASA,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,eAAO,MAAM,SAAS;;;;;;;;;CAGZ,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,MAAM,OAAO,SAAS,CAAC;AAElD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACf;AA8CD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CA8DpF"}
|
package/dist/capture.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// Headless screenshot capture for verify_visual / screenshot_ui.
|
|
2
|
+
//
|
|
3
|
+
// Uses playwright-core driving the SYSTEM Chrome/Edge (no bundled-browser
|
|
4
|
+
// download — playwright-core is ~3 MB and the browser the user already has does
|
|
5
|
+
// the rendering). Resolution order: ASTRALKIT_BROWSER_PATH env override →
|
|
6
|
+
// Chrome → Edge. Every failure surfaces as BrowserUnavailableError so the tool
|
|
7
|
+
// layer can degrade gracefully (return the rubric + tell the agent to capture
|
|
8
|
+
// with its own tooling) instead of hard-failing the verification step.
|
|
9
|
+
export class BrowserUnavailableError extends Error {
|
|
10
|
+
constructor(message) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'BrowserUnavailableError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
export class CaptureError extends Error {
|
|
16
|
+
constructor(message) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.name = 'CaptureError';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export const VIEWPORTS = {
|
|
22
|
+
desktop: { width: 1440, height: 900 },
|
|
23
|
+
mobile: { width: 390, height: 844 },
|
|
24
|
+
};
|
|
25
|
+
const NAV_TIMEOUT_MS = 25_000;
|
|
26
|
+
const SELECTOR_TIMEOUT_MS = 8_000;
|
|
27
|
+
/** Let fonts/images/entrance animations settle before the shot. */
|
|
28
|
+
const SETTLE_MS = 600;
|
|
29
|
+
/** Full-page shots taller than this are re-taken viewport-only (a 20k-px landing page as one JPEG is useless to a vision model). */
|
|
30
|
+
const MAX_FULLPAGE_HEIGHT = 4_500;
|
|
31
|
+
async function loadPlaywright() {
|
|
32
|
+
try {
|
|
33
|
+
return await import('playwright-core');
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
throw new BrowserUnavailableError('playwright-core is not installed (reinstall @astralkit/mcp, or npm i -g playwright-core).');
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
async function launchBrowser(chromium) {
|
|
40
|
+
const envPath = process.env.ASTRALKIT_BROWSER_PATH;
|
|
41
|
+
if (envPath) {
|
|
42
|
+
try {
|
|
43
|
+
return await chromium.launch({ headless: true, executablePath: envPath });
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
throw new BrowserUnavailableError(`Could not launch the browser at ASTRALKIT_BROWSER_PATH="${envPath}": ${err instanceof Error ? err.message.split('\n')[0] : 'unknown error'}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
for (const channel of ['chrome', 'msedge']) {
|
|
50
|
+
try {
|
|
51
|
+
return await chromium.launch({ headless: true, channel });
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
/* try next channel */
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
throw new BrowserUnavailableError('No system Chrome or Edge found. Install Google Chrome or Microsoft Edge, ' +
|
|
58
|
+
'or set ASTRALKIT_BROWSER_PATH to a Chromium executable.');
|
|
59
|
+
}
|
|
60
|
+
export async function captureScreenshot(opts) {
|
|
61
|
+
const { chromium } = await loadPlaywright();
|
|
62
|
+
const browser = await launchBrowser(chromium);
|
|
63
|
+
try {
|
|
64
|
+
const viewportName = opts.viewport ?? 'desktop';
|
|
65
|
+
const page = await browser.newPage({
|
|
66
|
+
viewport: VIEWPORTS[viewportName],
|
|
67
|
+
deviceScaleFactor: 1,
|
|
68
|
+
reducedMotion: 'no-preference',
|
|
69
|
+
});
|
|
70
|
+
page.setDefaultTimeout(NAV_TIMEOUT_MS);
|
|
71
|
+
try {
|
|
72
|
+
await page.goto(opts.url, { waitUntil: 'networkidle', timeout: NAV_TIMEOUT_MS });
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
const msg = err instanceof Error ? err.message.split('\n')[0] : 'unknown error';
|
|
76
|
+
// networkidle can time out on pages with long-polling/HMR sockets — if the
|
|
77
|
+
// load event fired, proceed with what rendered; otherwise it's a real failure.
|
|
78
|
+
if (!/Timeout/i.test(msg)) {
|
|
79
|
+
throw new CaptureError(`Could not load ${opts.url}: ${msg}. Is the dev server running? (next dev / vite)`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
await page.evaluate(() => document.fonts?.ready).catch(() => { });
|
|
83
|
+
await page.waitForTimeout(SETTLE_MS);
|
|
84
|
+
const jpeg = { type: 'jpeg', quality: 80 };
|
|
85
|
+
let buf;
|
|
86
|
+
let scope;
|
|
87
|
+
if (opts.selector) {
|
|
88
|
+
const el = page.locator(opts.selector).first();
|
|
89
|
+
try {
|
|
90
|
+
await el.waitFor({ state: 'visible', timeout: SELECTOR_TIMEOUT_MS });
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
throw new CaptureError(`Selector "${opts.selector}" did not match a visible element on ${opts.url}. ` +
|
|
94
|
+
'Check the selector, or omit it to capture the page.');
|
|
95
|
+
}
|
|
96
|
+
buf = await el.screenshot(jpeg);
|
|
97
|
+
scope = `selector ${opts.selector}`;
|
|
98
|
+
}
|
|
99
|
+
else if (opts.fullPage === false) {
|
|
100
|
+
buf = await page.screenshot(jpeg);
|
|
101
|
+
scope = 'viewport';
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
const pageHeight = await page.evaluate(() => document.documentElement.scrollHeight).catch(() => 0);
|
|
105
|
+
if (pageHeight > MAX_FULLPAGE_HEIGHT) {
|
|
106
|
+
buf = await page.screenshot(jpeg);
|
|
107
|
+
scope = `viewport (page is ${pageHeight}px tall — full-page skipped; pass a selector or scroll targets to inspect below the fold)`;
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
buf = await page.screenshot({ ...jpeg, fullPage: true });
|
|
111
|
+
scope = 'full-page';
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return { base64: buf.toString('base64'), mimeType: 'image/jpeg', viewport: viewportName, scope };
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
await browser.close().catch(() => { });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../src/capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polish.d.ts","sourceRoot":"","sources":["../../src/data/polish.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,kIAAkI;IAClI,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAKD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAsJxD,CAAC;AAEF,eAAO,MAAM,cAAc,UAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"polish.d.ts","sourceRoot":"","sources":["../../src/data/polish.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,cAAc;IAC7B,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;IACjB,kIAAkI;IAClI,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAKD,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAsJxD,CAAC;AAEF,eAAO,MAAM,cAAc,UAA6B,CAAC;AAqEzD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAuC9D"}
|
package/dist/data/polish.js
CHANGED
|
@@ -180,7 +180,11 @@ Run these 6 phases in order:
|
|
|
180
180
|
additive structural changes allowed below.
|
|
181
181
|
5. SELF-CHECK — run the Before/After Self-Check. If any item fails, go back to APPLY.
|
|
182
182
|
6. BUILD — run validate_code and fix every diff, then actually build/typecheck. The
|
|
183
|
-
output must render with identical content and intact behavior
|
|
183
|
+
output must render with identical content and intact behavior.
|
|
184
|
+
7. LOOK — call screenshot_ui on the polished route (or verify_visual with the reference
|
|
185
|
+
slug you matched in phase 3) and answer its rubric item by item. Code checks cannot
|
|
186
|
+
see a missing image, a shrunken logo, or an unloaded font — this step can. Fix every
|
|
187
|
+
FAIL and re-capture until clean.`;
|
|
184
188
|
const SMELL_RUBRIC = `## Design-Smell Rubric (diagnose, then fix to target)
|
|
185
189
|
|
|
186
190
|
| Smell | Fix → target |
|
|
@@ -215,7 +219,10 @@ const SELF_CHECK = `## Before/After Self-Check (the gate — all must pass)
|
|
|
215
219
|
- [ ] Surfaces: cards/panels use border-ak-border, NOT shadow? Gradients only in hero?
|
|
216
220
|
- [ ] Accent: is the accent color ≤ ~10% of the surface (60-30-10)?
|
|
217
221
|
- [ ] Fidelity: is ALL original content present and are ALL handlers/props intact?
|
|
218
|
-
- [ ] validate_code returns clean AND the project builds/type-checks
|
|
222
|
+
- [ ] validate_code returns clean AND the project builds/type-checks.
|
|
223
|
+
- [ ] SEEN, not assumed: screenshot_ui / verify_visual was run on the final render and
|
|
224
|
+
every rubric item passed (images render, logo proportionate, no stray dark bands,
|
|
225
|
+
fonts loaded, nothing clipped).`;
|
|
219
226
|
/**
|
|
220
227
|
* Build the polish guidance string. With no archetypes, returns the full procedure +
|
|
221
228
|
* rubric + structural rules + self-check + the archetype taxonomy. With archetypes,
|
package/dist/data/polish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polish.js","sourceRoot":"","sources":["../../src/data/polish.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"polish.js","sourceRoot":"","sources":["../../src/data/polish.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wFAAwF;AACxF,EAAE;AACF,6EAA6E;AAC7E,kFAAkF;AAClF,+EAA+E;AAC/E,0CAA0C;AAa1C,oFAAoF;AACpF,iFAAiF;AACjF,oEAAoE;AACpE,MAAM,CAAC,MAAM,aAAa,GAAmC;IAC3D,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI;QACxD,KAAK,EAAE;YACL,2EAA2E;YAC3E,yEAAyE;YACzE,2EAA2E;YAC3E,mEAAmE;YACnE,mEAAmE;SACpE;KACF;IACD,YAAY,EAAE;QACZ,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa;QACvC,KAAK,EAAE;YACL,uEAAuE;YACvE,wFAAwF;YACxF,2CAA2C;SAC5C;KACF;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI;QACpD,KAAK,EAAE;YACL,2EAA2E;YAC3E,oFAAoF;YACpF,sFAAsF;YACtF,4EAA4E;YAC5E,0DAA0D;SAC3D;KACF;IACD,OAAO,EAAE;QACP,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,IAAI;QACnE,KAAK,EAAE;YACL,4FAA4F;YAC5F,8EAA8E;YAC9E,gEAAgE;YAChE,mEAAmE;SACpE;KACF;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe;QAC9C,KAAK,EAAE;YACL,+CAA+C;YAC/C,4DAA4D;YAC5D,uDAAuD;SACxD;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;QAChC,KAAK,EAAE;YACL,iFAAiF;YACjF,0EAA0E;YAC1E,qDAAqD;SACtD;KACF;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW;QACrC,KAAK,EAAE;YACL,gFAAgF;YAChF,kGAAkG;YAClG,8EAA8E;YAC9E,iEAAiE;SAClE;KACF;IACD,WAAW,EAAE;QACX,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;QAC3C,KAAK,EAAE;YACL,0FAA0F;YAC1F,kEAAkE;SACnE;KACF;IACD,UAAU,EAAE;QACV,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe;QACzC,KAAK,EAAE;YACL,2DAA2D;YAC3D,+EAA+E;SAChF;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY;QACvC,KAAK,EAAE;YACL,4EAA4E;YAC5E,0DAA0D;YAC1D,4CAA4C;SAC7C;KACF;IACD,SAAS,EAAE;QACT,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB;QAC/C,KAAK,EAAE;YACL,uEAAuE;YACvE,kEAAkE;SACnE;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB;QAC9C,KAAK,EAAE;YACL,8DAA8D;YAC9D,4EAA4E;SAC7E;KACF;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;QAC3C,KAAK,EAAE;YACL,2EAA2E;YAC3E,oEAAoE;YACpE,wCAAwC;SACzC;KACF;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc;QAC3C,KAAK,EAAE;YACL,8EAA8E;YAC9E,4EAA4E;SAC7E;KACF;IACD,QAAQ,EAAE;QACR,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc;QAC3C,KAAK,EAAE;YACL,+DAA+D;YAC/D,iEAAiE;SAClE;KACF;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc;QAC1C,KAAK,EAAE;YACL,kEAAkE;YAClE,6BAA6B;SAC9B;KACF;IACD,aAAa,EAAE;QACb,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa;QAC1C,KAAK,EAAE;YACL,4FAA4F;YAC5F,wCAAwC;SACzC;KACF;IACD,gBAAgB,EAAE;QAChB,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,wBAAwB;QACtD,KAAK,EAAE;YACL,6DAA6D;YAC7D,uEAAuE;SACxE;KACF;IACD,IAAI,EAAE;QACJ,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI;QAC5D,KAAK,EAAE;YACL,6DAA6D;YAC7D,mEAAmE;YACnE,uDAAuD;SACxD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAEzD,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;oCAwBkB,CAAC;AAErC,MAAM,YAAY,GAAG;;;;;;;;;;uFAUkE,CAAC;AAExF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;sEAc6C,CAAC;AAEvE,MAAM,UAAU,GAAG;;;;;;;;;;;sCAWmB,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAqB;IACpD,MAAM,KAAK,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAEtE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CACR,6IAA6I;YAC3I,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CACpD,CAAC;QACF,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,CAAC,IAAI,CACT,OAAO,GAAG,GAAG,IAAI,IAAI;YACnB,+BAA+B,KAAK,CAAC,KAAK,IAAI;YAC9C,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,0DAA0D;YAC1D,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,GAAG,mCAAmC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1E,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,SAAS;YACP,8BAA8B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACtD,qFAAqF;gBACrF,gFAAgF,CAAC;IACrF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
|
package/dist/data/screens.js
CHANGED
|
@@ -154,7 +154,7 @@ export function buildScreenBlueprint(screenType) {
|
|
|
154
154
|
if (bp) {
|
|
155
155
|
return (bp +
|
|
156
156
|
`\n\n---\nEvery data view here owes the four-state contract (get_build_standards topic "state-lifecycle"). ` +
|
|
157
|
-
`
|
|
157
|
+
`INSTALL the named pieces: search_components -> get_preview -> get_component (recipe) -> install_component, then RE-CONTENT them to THIS app (nav, copy, logo, data) and match the app theme. Do not freestyle the screen. Finish with validate_code + review_app.`);
|
|
158
158
|
}
|
|
159
159
|
return (`No blueprint for "${screenType}". Available screen types: ${SCREEN_TYPES.join(', ')}.`);
|
|
160
160
|
}
|
package/dist/data/screens.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/data/screens.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,6EAA6E;AAC7E,EAAE;AACF,uEAAuE;AACvE,iFAAiF;AACjF,mEAAmE;AAEnE,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;4EAiB0D,CAAC;AAE7E,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;8CAkBkC,CAAC;AAE/C,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;6EAkB6D,CAAC;AAE9E,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;2FAiByE,CAAC;AAE5F,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;6DAkBgD,CAAC;AAE9D,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;qEAkBkD,CAAC;AAEtE,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;8DAiB6C,CAAC;AAE/D,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,SAAS,EAAE,SAAS;IACpB,GAAG,EAAE,GAAG;IACR,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAE3D,iEAAiE;AACjE,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,EAAE,EAAE,CAAC;QACP,OAAO,CACL,EAAE;YACF,4GAA4G;YAC5G,
|
|
1
|
+
{"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/data/screens.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,2EAA2E;AAC3E,8EAA8E;AAC9E,iFAAiF;AACjF,8EAA8E;AAC9E,6EAA6E;AAC7E,EAAE;AACF,uEAAuE;AACvE,iFAAiF;AACjF,mEAAmE;AAEnE,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;4EAiB0D,CAAC;AAE7E,MAAM,GAAG,GAAG;;;;;;;;;;;;;;;;;;8CAkBkC,CAAC;AAE/C,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;6EAkB6D,CAAC;AAE9E,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;2FAiByE,CAAC;AAE5F,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;6DAkBgD,CAAC;AAE9D,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;qEAkBkD,CAAC;AAEtE,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;8DAiB6C,CAAC;AAE/D,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,SAAS,EAAE,SAAS;IACpB,GAAG,EAAE,GAAG;IACR,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,UAAU;IACtB,QAAQ,EAAE,QAAQ;CACnB,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAE3D,iEAAiE;AACjE,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,EAAE,EAAE,CAAC;QACP,OAAO,CACL,EAAE;YACF,4GAA4G;YAC5G,mQAAmQ,CACpQ,CAAC;IACJ,CAAC;IACD,OAAO,CACL,qBAAqB,UAAU,8BAA8B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** verify_visual with a reference image: reference + render + forced compare. */
|
|
2
|
+
export declare function buildVisualVerdictGuide(slug: string, scope: string, viewport: string): string;
|
|
3
|
+
/** screenshot_ui / verify_visual without a slug: self-review against the same failure classes. */
|
|
4
|
+
export declare function buildVisualSelfReviewGuide(scope: string, viewport: string): string;
|
|
5
|
+
/** Graceful degradation when no local browser can be launched. */
|
|
6
|
+
export declare function buildBrowserFallbackGuide(reason: string, hasReference: boolean): string;
|
|
7
|
+
//# sourceMappingURL=visual.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual.d.ts","sourceRoot":"","sources":["../../src/data/visual.ts"],"names":[],"mappings":"AA4EA,iFAAiF;AACjF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW7F;AAED,kGAAkG;AAClG,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAUlF;AAED,kEAAkE;AAClE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,MAAM,CAavF"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// The visual verification contract for verify_visual / screenshot_ui.
|
|
2
|
+
//
|
|
3
|
+
// validate_code / review_app are static text checks — they cannot see a banner
|
|
4
|
+
// with no image, an undersized logo, an unintended dark band, or a font that
|
|
5
|
+
// silently fell back to system-ui. This rubric is what the model runs its EYES
|
|
6
|
+
// over. It is deliberately a FORCED per-item audit: models shown their own
|
|
7
|
+
// render tend to self-grade "looks good" and move on, so the protocol demands
|
|
8
|
+
// an explicit PASS/FAIL + evidence line for every item before any conclusion.
|
|
9
|
+
/** Failure classes that are invisible to static analysis and obvious in a screenshot. */
|
|
10
|
+
const RUBRIC_ITEMS = [
|
|
11
|
+
{
|
|
12
|
+
id: 'completeness',
|
|
13
|
+
check: 'Every region of the reference exists in the render — banner/hero, nav, media panel, form, footer, badges. ' +
|
|
14
|
+
'Nothing was dropped or collapsed during re-contenting.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: 'imagery',
|
|
18
|
+
check: 'Every image/illustration ACTUALLY renders: no empty gray/dark boxes, no broken-image icons, no missing hero ' +
|
|
19
|
+
'photo, no blank <img>. A region the reference fills with a photo must show a real photo (or a deliberate, styled replacement — never a void).',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: 'brand',
|
|
23
|
+
check: 'The logo is present and proportionate — same relative size/prominence as the reference (a logo that shrank to a ' +
|
|
24
|
+
'favicon-sized mark is a FAIL). Brand marks are crisp, not stretched.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: 'surfaces',
|
|
28
|
+
check: 'No unintended background bands, halos, or dark/mismatched blocks around regions. Surface roles read correctly: ' +
|
|
29
|
+
'page canvas vs card vs inverse panel. Nothing looks like a misapplied wrapper.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'typography',
|
|
33
|
+
check: 'Fonts visibly LOADED (Inter — not a system-ui fallback; compare letterforms against the reference), and the ' +
|
|
34
|
+
'hierarchy shows real size jumps: display/heading vs body vs meta, matching the reference\'s rhythm.',
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: 'spacing',
|
|
38
|
+
check: 'Spacing rhythm matches the reference: consistent card padding, even gaps, breathing room around sections. ' +
|
|
39
|
+
'No cramped clusters, no accidental double-gaps (a collapsed ak-* token renders as MISSING space — look for it).',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 'theme',
|
|
43
|
+
check: 'The app\'s theme is preserved (a dark app stayed dark, a light app stayed light) and colors follow 60-30-10: ' +
|
|
44
|
+
'neutral canvas dominates, accent only on CTAs/active states. Nothing rendered transparent or washed out.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'integrity',
|
|
48
|
+
check: 'Nothing is clipped, overlapping, or overflowing: no cut-off text, no elements escaping their container, ' +
|
|
49
|
+
'no horizontal scrollbar, controls aligned on their rows.',
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
function rubricBlock() {
|
|
53
|
+
return RUBRIC_ITEMS.map((r, i) => `${i + 1}. [${r.id}] ${r.check}`).join('\n');
|
|
54
|
+
}
|
|
55
|
+
const PROTOCOL = `## Verdict protocol (mandatory — do not skip)
|
|
56
|
+
|
|
57
|
+
For EACH rubric item output one line: \`<id>: PASS|FAIL — <one sentence of visual evidence>\`.
|
|
58
|
+
You must cite what you SEE (e.g. "banner region renders a gray void where the reference has a photo"), not what the code says.
|
|
59
|
+
|
|
60
|
+
- ANY FAIL → fix the code, then call verify_visual again. Do NOT declare the work done with an open FAIL.
|
|
61
|
+
- Stop after 3 iterations if something still fails and report the remaining gap honestly.
|
|
62
|
+
- Content is SUPPOSED to differ from the reference (your copy, your logo, your data) — judge structure, completeness,
|
|
63
|
+
and treatment, never literal pixels or literal text.
|
|
64
|
+
- Also glance beyond the rubric: if something looks broken that no item names, treat it as a FAIL too.`;
|
|
65
|
+
/** verify_visual with a reference image: reference + render + forced compare. */
|
|
66
|
+
export function buildVisualVerdictGuide(slug, scope, viewport) {
|
|
67
|
+
return `# Visual verification — compare your render against the reference
|
|
68
|
+
|
|
69
|
+
Image 1 is the AstralKit reference preview ("${slug}" — the quality bar).
|
|
70
|
+
Image 2 is YOUR render (${scope}, ${viewport} viewport), captured just now.
|
|
71
|
+
|
|
72
|
+
Compare them REGION BY REGION against this rubric:
|
|
73
|
+
|
|
74
|
+
${rubricBlock()}
|
|
75
|
+
|
|
76
|
+
${PROTOCOL}`;
|
|
77
|
+
}
|
|
78
|
+
/** screenshot_ui / verify_visual without a slug: self-review against the same failure classes. */
|
|
79
|
+
export function buildVisualSelfReviewGuide(scope, viewport) {
|
|
80
|
+
return `# Visual self-review — audit your render
|
|
81
|
+
|
|
82
|
+
This is YOUR render (${scope}, ${viewport} viewport), captured just now. There is no single reference component;
|
|
83
|
+
audit it against the AstralKit bar using this rubric (interpret "reference" as the design you were asked to match,
|
|
84
|
+
or the library's quality standard):
|
|
85
|
+
|
|
86
|
+
${rubricBlock()}
|
|
87
|
+
|
|
88
|
+
${PROTOCOL}`;
|
|
89
|
+
}
|
|
90
|
+
/** Graceful degradation when no local browser can be launched. */
|
|
91
|
+
export function buildBrowserFallbackGuide(reason, hasReference) {
|
|
92
|
+
return `# Screenshot capture unavailable — verify visually anyway
|
|
93
|
+
|
|
94
|
+
Could not drive a local browser: ${reason}
|
|
95
|
+
|
|
96
|
+
The visual check is still REQUIRED. Do it with your own tooling:
|
|
97
|
+
1. Capture the page yourself (your client's browser/screenshot tool, or ask the user for a screenshot of the route).
|
|
98
|
+
${hasReference ? '2. The reference preview image is included above — compare your capture against it region by region.' : '2. Compare your capture against the design you were asked to match.'}
|
|
99
|
+
3. Run the full rubric below and output the per-item verdict lines. Fix every FAIL and re-check.
|
|
100
|
+
|
|
101
|
+
${rubricBlock()}
|
|
102
|
+
|
|
103
|
+
${PROTOCOL}`;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=visual.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visual.js","sourceRoot":"","sources":["../../src/data/visual.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAC/E,2EAA2E;AAC3E,8EAA8E;AAC9E,8EAA8E;AAE9E,yFAAyF;AACzF,MAAM,YAAY,GAAyC;IACzD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EACH,4GAA4G;YAC5G,wDAAwD;KAC3D;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EACH,8GAA8G;YAC9G,+IAA+I;KAClJ;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EACH,kHAAkH;YAClH,sEAAsE;KACzE;IACD;QACE,EAAE,EAAE,UAAU;QACd,KAAK,EACH,iHAAiH;YACjH,gFAAgF;KACnF;IACD;QACE,EAAE,EAAE,YAAY;QAChB,KAAK,EACH,8GAA8G;YAC9G,qGAAqG;KACxG;IACD;QACE,EAAE,EAAE,SAAS;QACb,KAAK,EACH,4GAA4G;YAC5G,iHAAiH;KACpH;IACD;QACE,EAAE,EAAE,OAAO;QACX,KAAK,EACH,+GAA+G;YAC/G,0GAA0G;KAC7G;IACD;QACE,EAAE,EAAE,WAAW;QACf,KAAK,EACH,0GAA0G;YAC1G,0DAA0D;KAC7D;CACF,CAAC;AAEF,SAAS,WAAW;IAClB,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,QAAQ,GAAG;;;;;;;;;uGASsF,CAAC;AAExG,iFAAiF;AACjF,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,KAAa,EAAE,QAAgB;IACnF,OAAO;;+CAEsC,IAAI;0BACzB,KAAK,KAAK,QAAQ;;;;EAI1C,WAAW,EAAE;;EAEb,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,kGAAkG;AAClG,MAAM,UAAU,0BAA0B,CAAC,KAAa,EAAE,QAAgB;IACxE,OAAO;;uBAEc,KAAK,KAAK,QAAQ;;;;EAIvC,WAAW,EAAE;;EAEb,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,yBAAyB,CAAC,MAAc,EAAE,YAAqB;IAC7E,OAAO;;mCAE0B,MAAM;;;;EAIvC,YAAY,CAAC,CAAC,CAAC,sGAAsG,CAAC,CAAC,CAAC,qEAAqE;;;EAG7L,WAAW,EAAE;;EAEb,QAAQ,EAAE,CAAC;AACb,CAAC"}
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AA+uCA,wBAAsB,WAAW,kBA2BhC"}
|
package/dist/server.js
CHANGED
|
@@ -12,7 +12,9 @@ import { buildPolishGuide, ARCHETYPE_KEYS } from './data/polish.js';
|
|
|
12
12
|
import { buildStandardsGuide, BUILD_STANDARD_TOPICS } from './data/build-standards.js';
|
|
13
13
|
import { buildScreenBlueprint, SCREEN_TYPES } from './data/screens.js';
|
|
14
14
|
import { reviewApp } from './review.js';
|
|
15
|
-
|
|
15
|
+
import { captureScreenshot, BrowserUnavailableError, CaptureError, VIEWPORTS } from './capture.js';
|
|
16
|
+
import { buildVisualVerdictGuide, buildVisualSelfReviewGuide, buildBrowserFallbackGuide } from './data/visual.js';
|
|
17
|
+
const VERSION = '1.8.0';
|
|
16
18
|
/** Build "raw → ak" suggestions for a list of flagged raw classes (for validate_code). */
|
|
17
19
|
function tokenSuggestions(classes) {
|
|
18
20
|
const seen = new Set();
|
|
@@ -29,26 +31,30 @@ function tokenSuggestions(classes) {
|
|
|
29
31
|
}
|
|
30
32
|
// The golden path — surfaced as server `instructions` so even a naive agent
|
|
31
33
|
// (one that just gets "build X") self-guides to design-system-quality output.
|
|
32
|
-
const SERVER_INSTRUCTIONS = `AstralKit builds polished, accessible, on-brand UI
|
|
34
|
+
const SERVER_INSTRUCTIONS = `AstralKit builds polished, accessible, on-brand UI. The AstralKit COMPONENT LIBRARY is the source of truth — build FROM real library components; do NOT freestyle UI. Hand-writing a component the library already provides is a failure, even if it is token-compliant.
|
|
33
35
|
|
|
34
|
-
GOLDEN PATH —
|
|
36
|
+
GOLDEN PATH — for ANY UI request (build, redesign, or improve a page/section/component):
|
|
35
37
|
1. get_coding_standards — the mandatory rules. Read first.
|
|
36
38
|
2. get_design_tokens — use ONLY ak-* tokens. NEVER raw Tailwind colors (bg-gray-*), NEVER arbitrary values (p-[1rem]).
|
|
37
|
-
3. search_components —
|
|
38
|
-
4. get_preview — SEE
|
|
39
|
-
5. get_component (mode:"recipe") —
|
|
40
|
-
6.
|
|
41
|
-
7.
|
|
42
|
-
8. validate_code — run
|
|
43
|
-
9.
|
|
39
|
+
3. search_components — ALWAYS do this before writing any UI. Find the closest real component(s) for what you are building; never skip straight to JSX.
|
|
40
|
+
4. get_preview — SEE candidates (returns an image) and pick the best-looking fit.
|
|
41
|
+
5. get_component (mode:"recipe") — get the real component and REUSE it: keep its structure, layout, and polish. "Adapt" = RE-CONTENT, not rebuild — swap its placeholder copy, nav items, logo, and sample data for the app's real content, and match the app's theme. Do NOT regenerate the layout into something generic, and do NOT freestyle a replacement.
|
|
42
|
+
6. install_component — install the chosen component(s) into the project (e.g. components/ui) and import them. The library piece is what ships; your job is to wire it in + re-content it.
|
|
43
|
+
7. get_icons — confirm Phosphor names exist (never guess). get_setup — the CSS imports + font-load step.
|
|
44
|
+
8. validate_code + review_app — fix every issue, then BUILD (run tsc / next build — validate_code is NOT a compiler; it won't catch syntax errors).
|
|
45
|
+
9. verify_visual — the FINAL gate. With the dev server running, pass your route URL + the reference slug: it screenshots YOUR render and returns it next to the reference preview with a comparison rubric. Code checks cannot see a banner with no image, a shrunken logo, an unintended dark band, or an unloaded font — only this step can. Fix every FAIL and re-run until clean.
|
|
44
46
|
|
|
45
|
-
|
|
47
|
+
IF NOTHING FITS EXACTLY: still start from the CLOSEST component's recipe and modify it (adjust layout/content as needed) — NEVER from a blank file. The reference sets the quality bar; match it.
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
REDESIGN / IMPROVE AN EXISTING APP: for each bespoke piece (sidebar, top bar, cards, forms, hero…) search the AstralKit equivalent, install it, and REPLACE the bespoke one — then RE-CONTENT it with the app's real nav, logo, copy, and data. PRESERVE the app's existing theme: if the app is dark, keep it dark (set the matching data-ak-theme — never flip dark↔light). Never invent colors. ("*-light" showcase components are LIGHT demos — match them to the app's theme, don't drag the app to light.)
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
TOKENIZE (source already well-designed, only needs ak-* tokens): get_coding_standards → get_design_tokens (raw-Tailwind→ak CROSSWALK) → map every raw class → swap icons to Phosphor → validate_code → build. PRESERVE the source theme — the crosswalk assumes a LIGHT source, so for a dark app map to dark surfaces / inverse roles, not the light defaults (mapping a dark app naively flips it to a broken light theme).
|
|
50
52
|
|
|
51
|
-
|
|
53
|
+
POLISH / REVAMP (weak hierarchy, cramped spacing, off-brand surfaces): call polish_ui FIRST. It keeps the original layout, content, and behavior. Finish with screenshot_ui (or verify_visual with a reference slug) to SEE the result before declaring done.
|
|
54
|
+
|
|
55
|
+
BUILD IT RIGHT (architecture & screen UX): get_build_standards (atomic design, separation of concerns, the loading/empty/error/populated state contract, error handling, responsive/mobile-menu, radix; pass a topic). For a specific screen call get_screen_blueprint(screen_type) — it tells you WHICH AstralKit components to install for that screen + the must-haves. Audit existing/AI-generated code with review_app.
|
|
56
|
+
|
|
57
|
+
Hard rules: build from library components, never freestyle; 16px body floor (text-ak-base); 48px touch targets; Phosphor icons only; semantic color tokens; PRESERVE the app's theme; never declare UI work done without the verify_visual/screenshot_ui eyes-on check. Prefer the resources astralkit://tokens, ://rules, ://icons, ://setup, ://standards if your client supports them.`;
|
|
52
58
|
// ─── Security: Input validation ───────────────────────────────────────────────
|
|
53
59
|
const MAX_QUERY_LENGTH = 200;
|
|
54
60
|
const MAX_SLUG_LENGTH = 100;
|
|
@@ -62,8 +68,27 @@ function validateSlug(slug) {
|
|
|
62
68
|
return 'Invalid slug format. Slugs contain only lowercase letters, numbers, and hyphens.';
|
|
63
69
|
return null;
|
|
64
70
|
}
|
|
71
|
+
const MAX_URL_LENGTH = 2_000;
|
|
72
|
+
function validatePageUrl(url) {
|
|
73
|
+
if (url.length > MAX_URL_LENGTH)
|
|
74
|
+
return 'URL too long (max 2000 characters).';
|
|
75
|
+
try {
|
|
76
|
+
const parsed = new URL(url);
|
|
77
|
+
if (parsed.protocol !== 'http:' && parsed.protocol !== 'https:') {
|
|
78
|
+
return 'Only http:// and https:// URLs can be captured.';
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return 'Invalid URL. Pass an absolute URL, e.g. http://localhost:3000/dashboard.';
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
65
86
|
// ─── Security: Periodic auth revalidation ─────────────────────────────────────
|
|
66
87
|
const REVALIDATION_INTERVAL_MS = 10 * 60 * 1000; // 10 minutes
|
|
88
|
+
// During a transient network outage, keep serving on the last good validation
|
|
89
|
+
// for up to this long rather than bricking a valid subscriber. A genuinely
|
|
90
|
+
// invalid/expired key is still caught immediately (that's an AuthError, not transient).
|
|
91
|
+
const AUTH_GRACE_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
67
92
|
class AuthGuard {
|
|
68
93
|
lastCheck;
|
|
69
94
|
apiKey;
|
|
@@ -85,11 +110,17 @@ class AuthGuard {
|
|
|
85
110
|
}
|
|
86
111
|
catch (err) {
|
|
87
112
|
if (err instanceof AuthError) {
|
|
113
|
+
// Genuine auth failure (invalid key / plan downgrade) — revoke immediately.
|
|
88
114
|
this.revoked = true;
|
|
89
115
|
console.error('[astralkit-mcp] Subscription revalidation failed — access revoked.');
|
|
116
|
+
throw err;
|
|
117
|
+
}
|
|
118
|
+
// Transient (network/timeout, ApiError). Do NOT revoke: keep serving on the
|
|
119
|
+
// last good validation within the grace window, and let the next call retry.
|
|
120
|
+
if (Date.now() - this.lastCheck < AUTH_GRACE_MS) {
|
|
121
|
+
console.error('[astralkit-mcp] Revalidation network error; serving on cached auth (will retry).');
|
|
122
|
+
return;
|
|
90
123
|
}
|
|
91
|
-
// Network errors (ApiError with TIMEOUT/NETWORK_ERROR) are transient —
|
|
92
|
-
// don't permanently revoke; the next check will retry.
|
|
93
124
|
throw err;
|
|
94
125
|
}
|
|
95
126
|
}
|
|
@@ -115,14 +146,61 @@ function imageResult(base64, mimeType) {
|
|
|
115
146
|
}
|
|
116
147
|
// ─── Recipe extraction (makes get_component build-ready / self-describing) ─────
|
|
117
148
|
const VALID_ICONS = new Set(PHOSPHOR_ICON_NAMES);
|
|
118
|
-
/**
|
|
149
|
+
/**
|
|
150
|
+
* Strip block, line, and JSX comments to shrink the recipe payload — string-aware,
|
|
151
|
+
* so it never eats comment-like text INSIDE a string/template literal (e.g. a glob
|
|
152
|
+
* "src/**\/*.tsx" or a protocol-relative URL "//cdn.example.com"). A naive regex
|
|
153
|
+
* pass corrupts such source; this walks the code tracking literal context.
|
|
154
|
+
*/
|
|
119
155
|
function stripComments(code) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
.
|
|
156
|
+
let out = '';
|
|
157
|
+
const n = code.length;
|
|
158
|
+
for (let i = 0; i < n;) {
|
|
159
|
+
const c = code[i];
|
|
160
|
+
const c2 = code[i + 1];
|
|
161
|
+
// string / template literal — copy verbatim (incl. escapes), never scan for comments inside
|
|
162
|
+
if (c === '"' || c === "'" || c === '`') {
|
|
163
|
+
const q = c;
|
|
164
|
+
out += c;
|
|
165
|
+
i++;
|
|
166
|
+
while (i < n) {
|
|
167
|
+
if (code[i] === '\\') {
|
|
168
|
+
out += code[i] + (code[i + 1] ?? '');
|
|
169
|
+
i += 2;
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
out += code[i];
|
|
173
|
+
const done = code[i] === q;
|
|
174
|
+
i++;
|
|
175
|
+
if (done)
|
|
176
|
+
break;
|
|
177
|
+
}
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
// JSX comment {/* ... */}
|
|
181
|
+
if (c === '{' && c2 === '/' && code[i + 2] === '*') {
|
|
182
|
+
const end = code.indexOf('*/}', i + 3);
|
|
183
|
+
if (end !== -1) {
|
|
184
|
+
i = end + 3;
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// block comment /* ... */
|
|
189
|
+
if (c === '/' && c2 === '*') {
|
|
190
|
+
const end = code.indexOf('*/', i + 2);
|
|
191
|
+
i = end === -1 ? n : end + 2;
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
// line comment // ...
|
|
195
|
+
if (c === '/' && c2 === '/') {
|
|
196
|
+
while (i < n && code[i] !== '\n')
|
|
197
|
+
i++;
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
out += c;
|
|
201
|
+
i++;
|
|
202
|
+
}
|
|
203
|
+
return out.replace(/[ \t]+$/gm, '').replace(/\n{3,}/g, '\n\n').trim();
|
|
126
204
|
}
|
|
127
205
|
/** Every ak-* token/utility referenced in the code (for tokensUsed). */
|
|
128
206
|
function extractAkTokens(code) {
|
|
@@ -149,10 +227,10 @@ function createServer(auth, guard, apiKey) {
|
|
|
149
227
|
server.registerTool('search_components', {
|
|
150
228
|
title: 'Search Components',
|
|
151
229
|
description: 'START HERE when building any UI with AstralKit. Search components by name, description, or category ' +
|
|
152
|
-
'to find
|
|
230
|
+
'to find the real component to INSTALL & REUSE (never freestyle one the library already has). ' +
|
|
153
231
|
'Read the descriptions: the library ranges from minimal to BOLD showcase designs (watermarks, oversized display type, complex/asymmetric layouts) — prefer the most striking option that fits the brand, not just the most literal keyword match. ' +
|
|
154
|
-
'Each result includes a previewImage URL; call get_preview(slug) to SEE a candidate and pick the best
|
|
155
|
-
'Returns matching components with metadata. (Golden path: get_coding_standards → get_design_tokens → search_components → get_preview → get_component →
|
|
232
|
+
'Each result includes a previewImage URL; call get_preview(slug) to SEE a candidate and pick the best fit, then get_component (recipe) + install_component to reuse it. ' +
|
|
233
|
+
'Returns matching components with metadata. (Golden path: get_coding_standards → get_design_tokens → search_components → get_preview → get_component → install_component (reuse + re-content) → validate_code.)',
|
|
156
234
|
inputSchema: {
|
|
157
235
|
query: z.string().max(MAX_QUERY_LENGTH).describe('Search query (component name, description, or keyword)'),
|
|
158
236
|
category: z.string().max(MAX_SLUG_LENGTH).optional().describe('Filter by category slug'),
|
|
@@ -266,7 +344,7 @@ function createServer(auth, guard, apiKey) {
|
|
|
266
344
|
});
|
|
267
345
|
server.registerTool('get_component', {
|
|
268
346
|
title: 'Get Component',
|
|
269
|
-
description: 'Get a build-ready AstralKit component to
|
|
347
|
+
description: 'Get a real, build-ready AstralKit component to INSTALL and REUSE — keep its structure/layout/polish and re-content it (swap copy, nav, logo, data) to fit the app; do not freestyle a replacement. ' +
|
|
270
348
|
'Call search_components/list_components first to find the slug. ' +
|
|
271
349
|
'Default mode "recipe" returns a lean, self-describing payload: source (comments stripped) plus ' +
|
|
272
350
|
'the exact ak-* tokens, Phosphor icons, intended font, setup, and dependencies it uses — so you never guess. ' +
|
|
@@ -306,7 +384,7 @@ function createServer(auth, guard, apiKey) {
|
|
|
306
384
|
slug: result.slug,
|
|
307
385
|
framework: fw,
|
|
308
386
|
previewImage: result.previewImage,
|
|
309
|
-
howToAdapt: '
|
|
387
|
+
howToAdapt: 'REUSE this component — install it into the project and keep its structure, layout, spacing, and polish (watermarks, display type, complex layout, effects ARE the premium character). ADAPT = RE-CONTENT only: replace placeholder copy, nav items, logo, and sample data with the real app content, and match the app theme (preserve dark/light — never flip it). Do NOT regenerate the layout into something generic, and do NOT freestyle a replacement. If it is not an exact fit, modify THIS recipe rather than building from a blank file.',
|
|
310
388
|
intendedFont: 'Inter via font-ak-sans (load with next/font and wire to --font-ak-sans — see get_setup)',
|
|
311
389
|
tokensUsed,
|
|
312
390
|
iconsUsed: icons.used,
|
|
@@ -416,7 +494,7 @@ function createServer(auth, guard, apiKey) {
|
|
|
416
494
|
title: 'Get Screen Blueprint',
|
|
417
495
|
description: 'Get a UX blueprint for a specific screen type — structure, must-haves, anti-patterns, the ' +
|
|
418
496
|
'four-state (loading/empty/error/populated) requirement, responsive/mobile notes, and exactly ' +
|
|
419
|
-
'which AstralKit categories
|
|
497
|
+
'which AstralKit components to INSTALL for this screen (categories + ready search_components queries + polish_ui archetypes) — reuse and re-content them, do not freestyle. ' +
|
|
420
498
|
'Call this FIRST when building a dashboard, navigation, pricing page, marketing/landing page, ' +
|
|
421
499
|
'auth screen, onboarding flow, or settings page, so the screen is built right and on-library.',
|
|
422
500
|
inputSchema: {
|
|
@@ -534,8 +612,9 @@ function createServer(auth, guard, apiKey) {
|
|
|
534
612
|
server.registerTool('get_preview', {
|
|
535
613
|
title: 'Get Preview Image',
|
|
536
614
|
description: 'Get a rendered PREVIEW IMAGE of a component so you can SEE its design before building. ' +
|
|
537
|
-
'Use it to compare candidates from search_components and pick the
|
|
538
|
-
'then call get_component (recipe) to
|
|
615
|
+
'Use it to compare candidates from search_components and pick the best fit — ' +
|
|
616
|
+
'then call get_component (recipe) to install and reuse the chosen one. Returns the image. ' +
|
|
617
|
+
'(After you build, close the loop with verify_visual: it screenshots YOUR render and compares it against this reference.)',
|
|
539
618
|
inputSchema: {
|
|
540
619
|
slug: z.string().max(MAX_SLUG_LENGTH).describe('Component slug to preview'),
|
|
541
620
|
},
|
|
@@ -563,6 +642,151 @@ function createServer(auth, guard, apiKey) {
|
|
|
563
642
|
return errorResult(`Failed to get preview: ${err instanceof Error ? redactApiKey(err.message, apiKey) : 'Unknown error'}`);
|
|
564
643
|
}
|
|
565
644
|
});
|
|
645
|
+
// ─── Visual verification (capture → compare → iterate) ───────────────
|
|
646
|
+
const viewportSchema = z.enum(Object.keys(VIEWPORTS)).optional().default('desktop')
|
|
647
|
+
.describe('Viewport to render at: "desktop" (1440x900, default) or "mobile" (390x844). Run desktop first, mobile after it passes.');
|
|
648
|
+
async function tryCapture(opts) {
|
|
649
|
+
try {
|
|
650
|
+
return { ok: true, shot: await captureScreenshot(opts) };
|
|
651
|
+
}
|
|
652
|
+
catch (err) {
|
|
653
|
+
if (err instanceof BrowserUnavailableError)
|
|
654
|
+
return { ok: false, failure: { kind: 'no-browser', reason: err.message } };
|
|
655
|
+
if (err instanceof CaptureError)
|
|
656
|
+
return { ok: false, failure: { kind: 'capture-error', message: err.message } };
|
|
657
|
+
throw err;
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
/** Resolve a component's reference preview image (same non-Pro-gated path as get_preview). */
|
|
661
|
+
async function fetchReferenceImage(slug) {
|
|
662
|
+
const list = await listComponents({ search: slug, limit: 10 });
|
|
663
|
+
const url = list.components.find(c => c.slug === slug)?.previewImage;
|
|
664
|
+
if (!url)
|
|
665
|
+
return { error: `No preview available for "${slug}". Use search_components to find a valid slug.` };
|
|
666
|
+
try {
|
|
667
|
+
const res = await fetch(url, { signal: AbortSignal.timeout(12_000) });
|
|
668
|
+
if (!res.ok)
|
|
669
|
+
return null;
|
|
670
|
+
const buf = Buffer.from(await res.arrayBuffer());
|
|
671
|
+
return { base64: buf.toString('base64'), mimeType: res.headers.get('content-type') || 'image/jpeg' };
|
|
672
|
+
}
|
|
673
|
+
catch {
|
|
674
|
+
return null; // transient fetch failure — verify without the reference rather than blocking the gate
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
server.registerTool('verify_visual', {
|
|
678
|
+
title: 'Verify Visual (screenshot vs reference)',
|
|
679
|
+
description: 'The FINAL quality gate for any UI work — ALWAYS call this after validate_code + build succeed, before declaring done. ' +
|
|
680
|
+
'Screenshots YOUR rendered page (needs the dev server running) and returns it NEXT TO the AstralKit reference preview ' +
|
|
681
|
+
'plus a region-by-region comparison rubric you must answer item by item. This catches what code checks cannot: a banner ' +
|
|
682
|
+
'with no image, a shrunken logo, an unintended dark background, an unloaded font, broken spacing. ' +
|
|
683
|
+
'Pass the route URL and the slug of the reference component you built from; omit slug for a reference-free self-review. ' +
|
|
684
|
+
'Fix every FAIL it surfaces and call it again — iterate until all items pass (max 3 rounds).',
|
|
685
|
+
inputSchema: {
|
|
686
|
+
url: z.string().max(MAX_URL_LENGTH).describe('The page to capture — your running app route, e.g. http://localhost:3000/dashboard'),
|
|
687
|
+
slug: z.string().max(MAX_SLUG_LENGTH).optional()
|
|
688
|
+
.describe('Slug of the reference component you built from (adds its preview image to compare against). Omit if there is no single reference.'),
|
|
689
|
+
selector: z.string().max(MAX_QUERY_LENGTH).optional()
|
|
690
|
+
.describe('Optional CSS selector to capture just the rebuilt region (e.g. "main", "#hero") when it sits inside a larger app shell.'),
|
|
691
|
+
viewport: viewportSchema,
|
|
692
|
+
fullPage: z.boolean().optional().default(true).describe('Capture the full scrollable page (default true) or just the viewport.'),
|
|
693
|
+
},
|
|
694
|
+
}, async ({ url, slug, selector, viewport, fullPage }) => {
|
|
695
|
+
const urlErr = validatePageUrl(url);
|
|
696
|
+
if (urlErr)
|
|
697
|
+
return errorResult(urlErr);
|
|
698
|
+
if (slug) {
|
|
699
|
+
const slugErr = validateSlug(slug);
|
|
700
|
+
if (slugErr)
|
|
701
|
+
return errorResult(slugErr);
|
|
702
|
+
}
|
|
703
|
+
try {
|
|
704
|
+
await guard.check();
|
|
705
|
+
let reference = null;
|
|
706
|
+
let referenceNote = '';
|
|
707
|
+
if (slug) {
|
|
708
|
+
const ref = await fetchReferenceImage(slug);
|
|
709
|
+
if (ref && 'error' in ref)
|
|
710
|
+
return errorResult(ref.error);
|
|
711
|
+
if (ref)
|
|
712
|
+
reference = ref;
|
|
713
|
+
else
|
|
714
|
+
referenceNote = `\n\n(Note: the reference preview for "${slug}" could not be fetched right now — run the rubric as a self-review against the recipe you installed.)`;
|
|
715
|
+
}
|
|
716
|
+
const result = await tryCapture({ url, selector, viewport, fullPage });
|
|
717
|
+
if (!result.ok) {
|
|
718
|
+
if (result.failure.kind === 'capture-error')
|
|
719
|
+
return errorResult(result.failure.message);
|
|
720
|
+
const content = [];
|
|
721
|
+
if (reference) {
|
|
722
|
+
content.push({ type: 'text', text: `REFERENCE preview ("${slug}") — the quality bar:` });
|
|
723
|
+
content.push({ type: 'image', data: reference.base64, mimeType: reference.mimeType });
|
|
724
|
+
}
|
|
725
|
+
content.push({ type: 'text', text: buildBrowserFallbackGuide(result.failure.reason, !!reference) });
|
|
726
|
+
return { content };
|
|
727
|
+
}
|
|
728
|
+
const { shot } = result;
|
|
729
|
+
const content = [];
|
|
730
|
+
if (reference) {
|
|
731
|
+
content.push({ type: 'text', text: `Image 1 of 2 — REFERENCE preview ("${slug}"), the quality bar:` });
|
|
732
|
+
content.push({ type: 'image', data: reference.base64, mimeType: reference.mimeType });
|
|
733
|
+
content.push({ type: 'text', text: `Image 2 of 2 — YOUR render (${shot.scope}, ${shot.viewport} viewport):` });
|
|
734
|
+
content.push({ type: 'image', data: shot.base64, mimeType: shot.mimeType });
|
|
735
|
+
content.push({ type: 'text', text: buildVisualVerdictGuide(slug, shot.scope, shot.viewport) + referenceNote });
|
|
736
|
+
}
|
|
737
|
+
else {
|
|
738
|
+
content.push({ type: 'text', text: `YOUR render (${shot.scope}, ${shot.viewport} viewport):` });
|
|
739
|
+
content.push({ type: 'image', data: shot.base64, mimeType: shot.mimeType });
|
|
740
|
+
content.push({ type: 'text', text: buildVisualSelfReviewGuide(shot.scope, shot.viewport) + referenceNote });
|
|
741
|
+
}
|
|
742
|
+
return { content };
|
|
743
|
+
}
|
|
744
|
+
catch (err) {
|
|
745
|
+
if (err instanceof AuthError)
|
|
746
|
+
return errorResult(err.message);
|
|
747
|
+
return errorResult(`Visual verification failed: ${err instanceof Error ? redactApiKey(err.message, apiKey) : 'Unknown error'}`);
|
|
748
|
+
}
|
|
749
|
+
});
|
|
750
|
+
server.registerTool('screenshot_ui', {
|
|
751
|
+
title: 'Screenshot UI (see your own render)',
|
|
752
|
+
description: 'Screenshot a page of YOUR running app (dev server must be up) and get the image back with a visual self-review ' +
|
|
753
|
+
'rubric — so you can SEE what you actually rendered instead of assuming. Use during polish/revamp work or any time ' +
|
|
754
|
+
'you changed UI without a single reference component. When you built from a specific library component, prefer ' +
|
|
755
|
+
'verify_visual (it adds the reference preview to compare against).',
|
|
756
|
+
inputSchema: {
|
|
757
|
+
url: z.string().max(MAX_URL_LENGTH).describe('The page to capture, e.g. http://localhost:3000/settings'),
|
|
758
|
+
selector: z.string().max(MAX_QUERY_LENGTH).optional()
|
|
759
|
+
.describe('Optional CSS selector to capture one region (e.g. "main", "#pricing").'),
|
|
760
|
+
viewport: viewportSchema,
|
|
761
|
+
fullPage: z.boolean().optional().default(true).describe('Capture the full scrollable page (default true) or just the viewport.'),
|
|
762
|
+
},
|
|
763
|
+
}, async ({ url, selector, viewport, fullPage }) => {
|
|
764
|
+
const urlErr = validatePageUrl(url);
|
|
765
|
+
if (urlErr)
|
|
766
|
+
return errorResult(urlErr);
|
|
767
|
+
try {
|
|
768
|
+
await guard.check();
|
|
769
|
+
const result = await tryCapture({ url, selector, viewport, fullPage });
|
|
770
|
+
if (!result.ok) {
|
|
771
|
+
if (result.failure.kind === 'capture-error')
|
|
772
|
+
return errorResult(result.failure.message);
|
|
773
|
+
return textResult(buildBrowserFallbackGuide(result.failure.reason, false));
|
|
774
|
+
}
|
|
775
|
+
const { shot } = result;
|
|
776
|
+
return {
|
|
777
|
+
content: [
|
|
778
|
+
{ type: 'text', text: `YOUR render (${shot.scope}, ${shot.viewport} viewport):` },
|
|
779
|
+
{ type: 'image', data: shot.base64, mimeType: shot.mimeType },
|
|
780
|
+
{ type: 'text', text: buildVisualSelfReviewGuide(shot.scope, shot.viewport) },
|
|
781
|
+
],
|
|
782
|
+
};
|
|
783
|
+
}
|
|
784
|
+
catch (err) {
|
|
785
|
+
if (err instanceof AuthError)
|
|
786
|
+
return errorResult(err.message);
|
|
787
|
+
return errorResult(`Screenshot failed: ${err instanceof Error ? redactApiKey(err.message, apiKey) : 'Unknown error'}`);
|
|
788
|
+
}
|
|
789
|
+
});
|
|
566
790
|
server.registerTool('install_component', {
|
|
567
791
|
title: 'Install Component',
|
|
568
792
|
description: 'Get the CLI command to install an AstralKit component into the user\'s project. ' +
|
|
@@ -620,9 +844,12 @@ function createServer(auth, guard, apiKey) {
|
|
|
620
844
|
fix: `Replace with the nearest AstralKit token — ${tokenSuggestions([...new Set(rawTailwindColors)])}. (Full crosswalk via get_design_tokens.)`,
|
|
621
845
|
});
|
|
622
846
|
}
|
|
623
|
-
|
|
847
|
+
// Negative lookbehind for a word-char/hyphen so `h-[…]` inside `min-h-[…]`
|
|
848
|
+
// (and `w-[…]` inside `max-w-[…]`) is NOT falsely captured — those min-/max-
|
|
849
|
+
// prefixed values are legitimate (min-h touch targets, max-w width clamps).
|
|
850
|
+
const arbitraryValues = code.match(/(?<![\w-])(p|px|py|pt|pb|pl|pr|m|mx|my|mt|mb|ml|mr|gap|space-[xy]|w|h|text|rounded|leading)-\[[^\]]+\]/g);
|
|
624
851
|
if (arbitraryValues) {
|
|
625
|
-
const nonExempt = arbitraryValues.filter(v => !v.startsWith('
|
|
852
|
+
const nonExempt = arbitraryValues.filter(v => !v.startsWith('h-14'));
|
|
626
853
|
if (nonExempt.length > 0) {
|
|
627
854
|
issues.push({
|
|
628
855
|
rule: 'arbitrary-value',
|
|
@@ -750,8 +977,8 @@ function createServer(auth, guard, apiKey) {
|
|
|
750
977
|
issueCount: issues.length,
|
|
751
978
|
issues,
|
|
752
979
|
summary: issues.length === 0
|
|
753
|
-
? 'Code follows AstralKit conventions. NOTE: this checks conventions, NOT that the code compiles — always run a real build/typecheck (tsc / next build)
|
|
754
|
-
: `Found ${issues.length} issue${issues.length === 1 ? '' : 's'}. Apply each fix and re-run validate_code until clean. (validate_code checks conventions, not compilation — also run a real build/typecheck.)`,
|
|
980
|
+
? 'Code follows AstralKit conventions. NOTE: this checks conventions, NOT that the code compiles — always run a real build/typecheck (tsc / next build). Then finish with verify_visual (screenshot vs reference): convention checks cannot see a missing banner image, a shrunken logo, or an unloaded font — only the visual gate can.'
|
|
981
|
+
: `Found ${issues.length} issue${issues.length === 1 ? '' : 's'}. Apply each fix and re-run validate_code until clean. (validate_code checks conventions, not compilation — also run a real build/typecheck, then verify_visual as the final gate.)`,
|
|
755
982
|
});
|
|
756
983
|
});
|
|
757
984
|
server.registerTool('review_app', {
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astralkit/mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "AstralKit MCP Server — search, browse, and install UI components from any AI coding tool",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"files": [
|
|
11
11
|
"bin",
|
|
12
12
|
"dist",
|
|
13
|
-
"LICENSE"
|
|
13
|
+
"LICENSE",
|
|
14
|
+
"README.md"
|
|
14
15
|
],
|
|
15
16
|
"engines": {
|
|
16
17
|
"node": ">=18.0.0"
|
|
@@ -42,14 +43,16 @@
|
|
|
42
43
|
"scripts": {
|
|
43
44
|
"build": "tsc",
|
|
44
45
|
"dev": "tsc --watch",
|
|
45
|
-
"start": "node bin/index.js"
|
|
46
|
+
"start": "node bin/index.js",
|
|
47
|
+
"prepublishOnly": "tsc"
|
|
46
48
|
},
|
|
47
49
|
"dependencies": {
|
|
48
50
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
51
|
+
"playwright-core": "^1.61.1",
|
|
49
52
|
"zod": "^3.24.0"
|
|
50
53
|
},
|
|
51
54
|
"devDependencies": {
|
|
52
|
-
"
|
|
53
|
-
"
|
|
55
|
+
"@types/node": "^22.0.0",
|
|
56
|
+
"typescript": "^5.7.0"
|
|
54
57
|
}
|
|
55
58
|
}
|