@miller-tech/uap 1.64.3 → 1.65.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/dist/.tsbuildinfo +1 -1
- package/dist/bin/cli.js +15 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/cli/design.d.ts +9 -0
- package/dist/cli/design.d.ts.map +1 -0
- package/dist/cli/design.js +187 -0
- package/dist/cli/design.js.map +1 -0
- package/dist/cli/react.d.ts.map +1 -1
- package/dist/cli/react.js +4 -0
- package/dist/cli/react.js.map +1 -1
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +36 -0
- package/dist/cli/setup.js.map +1 -1
- package/dist/coordination/reactor.d.ts.map +1 -1
- package/dist/coordination/reactor.js +25 -2
- package/dist/coordination/reactor.js.map +1 -1
- package/dist/design/gate.d.ts +16 -0
- package/dist/design/gate.d.ts.map +1 -0
- package/dist/design/gate.js +79 -0
- package/dist/design/gate.js.map +1 -0
- package/dist/design/interrogate.d.ts +17 -0
- package/dist/design/interrogate.d.ts.map +1 -0
- package/dist/design/interrogate.js +258 -0
- package/dist/design/interrogate.js.map +1 -0
- package/dist/design/reactor-inject.d.ts +8 -0
- package/dist/design/reactor-inject.d.ts.map +1 -0
- package/dist/design/reactor-inject.js +37 -0
- package/dist/design/reactor-inject.js.map +1 -0
- package/dist/design/tokens.d.ts +62 -0
- package/dist/design/tokens.d.ts.map +1 -0
- package/dist/design/tokens.js +185 -0
- package/dist/design/tokens.js.map +1 -0
- package/dist/mcp-router/tools/react.d.ts.map +1 -1
- package/dist/mcp-router/tools/react.js +2 -0
- package/dist/mcp-router/tools/react.js.map +1 -1
- package/package.json +1 -1
- package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
- package/src/policies/enforcers/design_token_gate.py +145 -0
- package/src/policies/schemas/policies/design-token-gate.md +38 -0
- package/tools/agents/scripts/anthropic_proxy.py +22 -6
- package/tools/agents/tests/test_turn_count_breaker_periodic.py +64 -0
package/dist/cli/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../src/coordination/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../src/coordination/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAoB,MAAM,qBAAqB,CAAC;AAGtE,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,aAAa,CAAC;AAE/G,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS,GAAG,WAAW,CAAC;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAcD,wBAAgB,OAAO,CACrB,GAAG,EAAE,cAAc,EACnB,IAAI,CAAC,EAAE,cAAc,EACrB,IAAI,CAAC,EAAE,WAAW,GACjB,aAAa,CAqKf"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getCapabilityRouter } from './capability-router.js';
|
|
2
2
|
import { getPatternRouter } from './pattern-router.js';
|
|
3
|
+
import { maybeDesignInjection } from '../design/reactor-inject.js';
|
|
3
4
|
const DEFAULT_INJECT_THRESHOLD = 0.30;
|
|
4
5
|
const DEFAULT_AUTO_SPAWN_THRESHOLD = 0.80;
|
|
5
6
|
const DEFAULT_MAX_INJECT_CHARS = 1200;
|
|
@@ -33,7 +34,22 @@ export function resolve(ctx, opts, deps) {
|
|
|
33
34
|
}, ctx.changedFiles ?? []);
|
|
34
35
|
const confidence = routeResult.confidence;
|
|
35
36
|
const matchedPatterns = patternRouter.matchPatterns(ctx.promptText);
|
|
37
|
+
// DESIGN.md "guide new": when this is UI/UX work and the project has a
|
|
38
|
+
// DESIGN.md, surface the design-system summary so new UI stays on-token. This
|
|
39
|
+
// can fire independently of routing confidence (it's keyed off file/prompt
|
|
40
|
+
// signals), and is deduped per session via the `design:system` surfaced key.
|
|
41
|
+
const designKey = 'design:system';
|
|
42
|
+
const designInject = ctx.cwd && !(ctx.surfaced ?? []).includes(designKey)
|
|
43
|
+
? maybeDesignInjection(ctx.cwd, ctx.promptText, ctx.changedFiles)
|
|
44
|
+
: null;
|
|
36
45
|
if (confidence < injectThreshold && (!matchedPatterns || matchedPatterns.length === 0)) {
|
|
46
|
+
// No experts/patterns — but still inject design guidance if this is UI work.
|
|
47
|
+
if (designInject) {
|
|
48
|
+
result.inject = `## Design system (DESIGN.md)\n${designInject}`;
|
|
49
|
+
result.reason = 'DESIGN.md design-system guidance for UI work';
|
|
50
|
+
result.surfacedKeys = [designKey];
|
|
51
|
+
result.confidence = confidence;
|
|
52
|
+
}
|
|
37
53
|
return result;
|
|
38
54
|
}
|
|
39
55
|
const recommendedDroids = routeResult.recommendedDroids ?? [];
|
|
@@ -118,9 +134,16 @@ export function resolve(ctx, opts, deps) {
|
|
|
118
134
|
});
|
|
119
135
|
}
|
|
120
136
|
}
|
|
121
|
-
|
|
137
|
+
// Prepend the DESIGN.md guidance (if UI work) ahead of expert/pattern items.
|
|
138
|
+
if (designInject) {
|
|
139
|
+
result.inject = `## Design system (DESIGN.md)\n${designInject}${inject ? '\n\n' + inject : ''}`;
|
|
140
|
+
surfacedKeys.push(designKey);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
result.inject = inject;
|
|
144
|
+
}
|
|
122
145
|
result.block = false;
|
|
123
|
-
result.reason = `Routing confidence ${confidence.toFixed(2)}${matchedPatterns && matchedPatterns.length > 0 ? ', patterns matched' : ''}`;
|
|
146
|
+
result.reason = `Routing confidence ${confidence.toFixed(2)}${matchedPatterns && matchedPatterns.length > 0 ? ', patterns matched' : ''}${designInject ? ', design-system surfaced' : ''}`;
|
|
124
147
|
result.actions = actions;
|
|
125
148
|
result.surfacedKeys = surfacedKeys;
|
|
126
149
|
result.confidence = confidence;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../src/coordination/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAiB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../src/coordination/reactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { TokenAllowList } from './tokens.js';
|
|
2
|
+
export interface OffTokenFinding {
|
|
3
|
+
line: number;
|
|
4
|
+
value: string;
|
|
5
|
+
kind: 'color' | 'spacing';
|
|
6
|
+
}
|
|
7
|
+
export declare function isUiFile(path: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Scan `content` for off-token colors/spacing. Returns findings; empty = clean.
|
|
10
|
+
* Values that appear in the allow-list, inside `var(--…)`, or as `{token.ref}`
|
|
11
|
+
* are considered on-token.
|
|
12
|
+
*/
|
|
13
|
+
export declare function scanOffToken(content: string, filePath: string, allow: TokenAllowList): OffTokenFinding[];
|
|
14
|
+
/** Human-readable block message for the gate. */
|
|
15
|
+
export declare function formatGateMessage(findings: OffTokenFinding[], allow: TokenAllowList): string;
|
|
16
|
+
//# sourceMappingURL=gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../../src/design/gate.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,GAAG,SAAS,CAAC;CAC3B;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE9C;AAYD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,cAAc,GACpB,eAAe,EAAE,CAgCnB;AAED,iDAAiD;AACjD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAuB5F"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Off-token scanner shared by `uap design check` and (mirrored in pure stdlib)
|
|
3
|
+
* the Python design-token gate. Detects hardcoded colors / spacing in UI files
|
|
4
|
+
* that are not part of the project's DESIGN.md token allow-list.
|
|
5
|
+
*
|
|
6
|
+
* Colors are gated strictly (highest signal). Spacing is gated with a small
|
|
7
|
+
* ignore set (0–4px borders/hairlines, token values) to avoid false blocks.
|
|
8
|
+
*/
|
|
9
|
+
import { extname } from 'path';
|
|
10
|
+
import { normalizeColor } from './tokens.js';
|
|
11
|
+
const UI_EXT = new Set(['.css', '.scss', '.sass', '.less', '.tsx', '.jsx', '.vue', '.svelte', '.html', '.astro']);
|
|
12
|
+
/** Spacing px values that are structural, not design-scale (borders, hairlines). */
|
|
13
|
+
const SPACING_IGNORE = new Set(['0px', '1px', '2px', '3px', '4px']);
|
|
14
|
+
export function isUiFile(path) {
|
|
15
|
+
return UI_EXT.has(extname(path).toLowerCase());
|
|
16
|
+
}
|
|
17
|
+
const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g;
|
|
18
|
+
const FUNC_COLOR_RE = /\b(?:rgba?|hsla?|hwb|oklch|oklab|lch|lab)\([^)]*\)/gi;
|
|
19
|
+
const PX_RE = /\b\d{1,4}px\b/g;
|
|
20
|
+
/** Lines that are pure comments or token/var references should be ignored. */
|
|
21
|
+
function isIgnorableLine(line) {
|
|
22
|
+
const t = line.trim();
|
|
23
|
+
return t.startsWith('//') || t.startsWith('*') || t.startsWith('/*');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Scan `content` for off-token colors/spacing. Returns findings; empty = clean.
|
|
27
|
+
* Values that appear in the allow-list, inside `var(--…)`, or as `{token.ref}`
|
|
28
|
+
* are considered on-token.
|
|
29
|
+
*/
|
|
30
|
+
export function scanOffToken(content, filePath, allow) {
|
|
31
|
+
if (!isUiFile(filePath))
|
|
32
|
+
return [];
|
|
33
|
+
const allowColors = new Set(allow.colors.map(normalizeColor));
|
|
34
|
+
const allowSpacing = new Set([...allow.spacing, ...allow.radii, ...allow.fontSizes]);
|
|
35
|
+
const findings = [];
|
|
36
|
+
const lines = content.split('\n');
|
|
37
|
+
lines.forEach((raw, i) => {
|
|
38
|
+
if (isIgnorableLine(raw))
|
|
39
|
+
return;
|
|
40
|
+
// Strip var(--x) and {token.ref} usages so their inner text isn't matched.
|
|
41
|
+
// The ref pattern is a dotted path only — it must NOT match CSS `{...}`
|
|
42
|
+
// declaration blocks (those contain `:` / `;`), or whole rules vanish.
|
|
43
|
+
const line = raw.replace(/var\(--[^)]*\)/g, '').replace(/\{[\w.-]+\}/g, '');
|
|
44
|
+
for (const m of line.matchAll(HEX_RE)) {
|
|
45
|
+
const c = normalizeColor(m[0]);
|
|
46
|
+
if (!allowColors.has(c))
|
|
47
|
+
findings.push({ line: i + 1, value: m[0], kind: 'color' });
|
|
48
|
+
}
|
|
49
|
+
for (const m of line.matchAll(FUNC_COLOR_RE)) {
|
|
50
|
+
const c = m[0].replace(/\s+/g, '').toLowerCase();
|
|
51
|
+
if (!allowColors.has(c))
|
|
52
|
+
findings.push({ line: i + 1, value: m[0], kind: 'color' });
|
|
53
|
+
}
|
|
54
|
+
for (const m of line.matchAll(PX_RE)) {
|
|
55
|
+
const px = m[0];
|
|
56
|
+
if (!SPACING_IGNORE.has(px) && !allowSpacing.has(px)) {
|
|
57
|
+
findings.push({ line: i + 1, value: px, kind: 'spacing' });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
return findings;
|
|
62
|
+
}
|
|
63
|
+
/** Human-readable block message for the gate. */
|
|
64
|
+
export function formatGateMessage(findings, allow) {
|
|
65
|
+
const colors = findings.filter((f) => f.kind === 'color');
|
|
66
|
+
const spacing = findings.filter((f) => f.kind === 'spacing');
|
|
67
|
+
const parts = [
|
|
68
|
+
`design-token gate: this UI edit introduces values not in the "${allow.name}" design system.`,
|
|
69
|
+
];
|
|
70
|
+
if (colors.length) {
|
|
71
|
+
parts.push(` off-token colors: ${[...new Set(colors.map((c) => c.value))].slice(0, 6).join(', ')}`, ` → use a DESIGN.md color token (${allow.colors.slice(0, 5).join(', ')}${allow.colors.length > 5 ? ', …' : ''}) or a CSS var.`);
|
|
72
|
+
}
|
|
73
|
+
if (spacing.length) {
|
|
74
|
+
parts.push(` off-scale spacing: ${[...new Set(spacing.map((s) => s.value))].slice(0, 6).join(', ')}`, ` → use a spacing token (${allow.spacing.join(', ') || 'define spacing in DESIGN.md'}).`);
|
|
75
|
+
}
|
|
76
|
+
parts.push(' Add the value to DESIGN.md (then run `uap design sync`), reference an existing token,', ' or bypass once with UAP_DESIGN_GATE_OFF=1.');
|
|
77
|
+
return parts.join('\n');
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/design/gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type DesignTokens } from './tokens.js';
|
|
2
|
+
export interface InterrogationResult {
|
|
3
|
+
tokens: DesignTokens;
|
|
4
|
+
prose: string;
|
|
5
|
+
/** Diagnostic counts for the CLI summary. */
|
|
6
|
+
stats: {
|
|
7
|
+
filesScanned: number;
|
|
8
|
+
colorsFound: number;
|
|
9
|
+
fontsFound: number;
|
|
10
|
+
spacingFound: number;
|
|
11
|
+
source: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function interrogate(projectDir: string): InterrogationResult;
|
|
15
|
+
/** Serialize an InterrogationResult to a full DESIGN.md string. */
|
|
16
|
+
export declare function renderDesignMd(result: InterrogationResult): string;
|
|
17
|
+
//# sourceMappingURL=interrogate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interrogate.d.ts","sourceRoot":"","sources":["../../src/design/interrogate.ts"],"names":[],"mappings":"AAYA,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAShE,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAuED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CA+GnE;AAiDD,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAGlE"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-interrogation: reverse-engineer a DESIGN.md from an existing UI codebase.
|
|
3
|
+
*
|
|
4
|
+
* Scans the common sources of a project's visual identity — CSS custom
|
|
5
|
+
* properties, Tailwind theme config, theme/token modules, and raw color/spacing
|
|
6
|
+
* usage in components — then synthesizes a best-effort DESIGN.md (token front
|
|
7
|
+
* matter + prose scaffold) for the agent to refine. This is the "autointerrogate
|
|
8
|
+
* existing" half; Google's CLI only lints/diffs, it does not derive.
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync, readFileSync, readdirSync, statSync } from 'fs';
|
|
11
|
+
import { join, extname, basename } from 'path';
|
|
12
|
+
import yaml from 'js-yaml';
|
|
13
|
+
import { normalizeColor } from './tokens.js';
|
|
14
|
+
const UI_EXT = new Set(['.css', '.scss', '.sass', '.less', '.tsx', '.jsx', '.vue', '.svelte', '.html', '.ts', '.js']);
|
|
15
|
+
const SKIP_DIRS = new Set([
|
|
16
|
+
'node_modules', '.git', 'dist', 'build', '.next', '.nuxt', 'coverage',
|
|
17
|
+
'.worktrees', 'vendor', '.cache', 'out', '.uap-backups',
|
|
18
|
+
]);
|
|
19
|
+
const MAX_FILES = 4000;
|
|
20
|
+
function walk(dir, acc, depth = 0) {
|
|
21
|
+
if (acc.length >= MAX_FILES || depth > 12)
|
|
22
|
+
return;
|
|
23
|
+
let entries;
|
|
24
|
+
try {
|
|
25
|
+
entries = readdirSync(dir);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
for (const e of entries) {
|
|
31
|
+
if (acc.length >= MAX_FILES)
|
|
32
|
+
return;
|
|
33
|
+
if (e.startsWith('.') && e !== '.') {
|
|
34
|
+
if (SKIP_DIRS.has(e))
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
const full = join(dir, e);
|
|
38
|
+
let st;
|
|
39
|
+
try {
|
|
40
|
+
st = statSync(full);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (st.isDirectory()) {
|
|
46
|
+
if (SKIP_DIRS.has(e))
|
|
47
|
+
continue;
|
|
48
|
+
walk(full, acc, depth + 1);
|
|
49
|
+
}
|
|
50
|
+
else if (UI_EXT.has(extname(e))) {
|
|
51
|
+
acc.push(full);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const HEX_RE = /#[0-9a-fA-F]{3,8}\b/g;
|
|
56
|
+
const RGB_RE = /\brgba?\([^)]*\)/g;
|
|
57
|
+
const PX_RE = /\b(\d{1,4})px\b/g;
|
|
58
|
+
const FONT_FAMILY_RE = /font-family\s*:\s*([^;{}\n]+)/gi;
|
|
59
|
+
/** Pull the Tailwind theme (colors/fontFamily/spacing/borderRadius) if present. */
|
|
60
|
+
function readTailwind(projectDir) {
|
|
61
|
+
for (const name of ['tailwind.config.js', 'tailwind.config.cjs', 'tailwind.config.ts', 'tailwind.config.mjs']) {
|
|
62
|
+
const p = join(projectDir, name);
|
|
63
|
+
if (!existsSync(p))
|
|
64
|
+
continue;
|
|
65
|
+
const src = readFileSync(p, 'utf-8');
|
|
66
|
+
const out = {};
|
|
67
|
+
// Colors: capture "key": "#hex" or key: '#hex' pairs anywhere in the theme.
|
|
68
|
+
const colors = {};
|
|
69
|
+
for (const m of src.matchAll(/['"]?([\w-]+)['"]?\s*:\s*['"](#[0-9a-fA-F]{3,8}|rgba?\([^)]*\))['"]/g)) {
|
|
70
|
+
colors[m[1]] = m[2];
|
|
71
|
+
}
|
|
72
|
+
if (Object.keys(colors).length)
|
|
73
|
+
out.colors = colors;
|
|
74
|
+
return out;
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
/** Parse `--name: value;` CSS custom properties into colors/spacing buckets. */
|
|
79
|
+
function readCssVars(text, colors, spacing) {
|
|
80
|
+
for (const m of text.matchAll(/--([\w-]+)\s*:\s*([^;}{]+);/g)) {
|
|
81
|
+
const name = m[1];
|
|
82
|
+
const val = m[2].trim();
|
|
83
|
+
if (/#[0-9a-fA-F]{3,8}\b/.test(val) || /\brgba?\(/.test(val)) {
|
|
84
|
+
colors[name] = val;
|
|
85
|
+
}
|
|
86
|
+
else if (/^\d{1,4}px$/.test(val) && /space|gap|size|pad|margin|spacing/i.test(name)) {
|
|
87
|
+
spacing[name] = val;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function topN(counts, n) {
|
|
92
|
+
return [...counts.entries()].sort((a, b) => b[1] - a[1]).slice(0, n).map((x) => x[0]);
|
|
93
|
+
}
|
|
94
|
+
export function interrogate(projectDir) {
|
|
95
|
+
const files = [];
|
|
96
|
+
walk(projectDir, files);
|
|
97
|
+
const colorCounts = new Map();
|
|
98
|
+
const fontCounts = new Map();
|
|
99
|
+
const spacingCounts = new Map();
|
|
100
|
+
const cssVarColors = {};
|
|
101
|
+
const cssVarSpacing = {};
|
|
102
|
+
for (const f of files) {
|
|
103
|
+
let text;
|
|
104
|
+
try {
|
|
105
|
+
text = readFileSync(f, 'utf-8');
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
if (text.length > 600_000)
|
|
111
|
+
continue;
|
|
112
|
+
if (extname(f) === '.css' || extname(f) === '.scss' || extname(f) === '.less' || extname(f) === '.sass') {
|
|
113
|
+
readCssVars(text, cssVarColors, cssVarSpacing);
|
|
114
|
+
}
|
|
115
|
+
for (const m of text.matchAll(HEX_RE))
|
|
116
|
+
colorCounts.set(normalizeColor(m[0]), (colorCounts.get(normalizeColor(m[0])) ?? 0) + 1);
|
|
117
|
+
for (const m of text.matchAll(RGB_RE)) {
|
|
118
|
+
const c = m[0].replace(/\s+/g, '').toLowerCase();
|
|
119
|
+
colorCounts.set(c, (colorCounts.get(c) ?? 0) + 1);
|
|
120
|
+
}
|
|
121
|
+
for (const m of text.matchAll(PX_RE)) {
|
|
122
|
+
const px = `${m[1]}px`;
|
|
123
|
+
spacingCounts.set(px, (spacingCounts.get(px) ?? 0) + 1);
|
|
124
|
+
}
|
|
125
|
+
for (const m of text.matchAll(FONT_FAMILY_RE)) {
|
|
126
|
+
const fam = m[1].split(',')[0].replace(/['"]/g, '').trim();
|
|
127
|
+
if (fam && !/^var\(|^inherit|^initial|^unset/.test(fam)) {
|
|
128
|
+
fontCounts.set(fam, (fontCounts.get(fam) ?? 0) + 1);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const tw = readTailwind(projectDir);
|
|
133
|
+
// ---- Assemble colors ----
|
|
134
|
+
const colors = {};
|
|
135
|
+
const roleNames = ['primary', 'secondary', 'tertiary', 'neutral', 'accent', 'surface'];
|
|
136
|
+
// Prefer named sources (tailwind, css vars) then fall back to frequency.
|
|
137
|
+
const named = { ...(tw?.colors ?? {}), ...cssVarColors };
|
|
138
|
+
for (const [k, v] of Object.entries(named))
|
|
139
|
+
colors[k] = v;
|
|
140
|
+
// Fill role slots from the most-used raw colors not already present.
|
|
141
|
+
const usedVals = new Set(Object.values(colors).map((v) => normalizeColor(v)));
|
|
142
|
+
const freqColors = topN(colorCounts, 12).filter((c) => !usedVals.has(c));
|
|
143
|
+
let roleIdx = 0;
|
|
144
|
+
for (const c of freqColors) {
|
|
145
|
+
if (roleIdx >= roleNames.length)
|
|
146
|
+
break;
|
|
147
|
+
while (roleIdx < roleNames.length && colors[roleNames[roleIdx]])
|
|
148
|
+
roleIdx++;
|
|
149
|
+
if (roleIdx < roleNames.length) {
|
|
150
|
+
colors[roleNames[roleIdx]] = c;
|
|
151
|
+
roleIdx++;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// ---- Typography ----
|
|
155
|
+
const fonts = topN(fontCounts, 2);
|
|
156
|
+
const typography = {};
|
|
157
|
+
if (fonts[0]) {
|
|
158
|
+
typography['h1'] = { fontFamily: fonts[0], fontSize: '32px', fontWeight: 700, lineHeight: 1.2 };
|
|
159
|
+
typography['body-md'] = { fontFamily: fonts[0], fontSize: '16px', fontWeight: 400, lineHeight: 1.5 };
|
|
160
|
+
}
|
|
161
|
+
if (fonts[1]) {
|
|
162
|
+
typography['label'] = { fontFamily: fonts[1], fontSize: '12px', fontWeight: 500 };
|
|
163
|
+
}
|
|
164
|
+
// ---- Spacing & radius ----
|
|
165
|
+
const spacing = {};
|
|
166
|
+
const scaleNames = ['xs', 'sm', 'md', 'lg', 'xl'];
|
|
167
|
+
const cssSpacingVals = Object.values(cssVarSpacing);
|
|
168
|
+
const freqSpacing = (cssSpacingVals.length ? cssSpacingVals : topN(spacingCounts, 6))
|
|
169
|
+
.map((s) => parseInt(String(s), 10))
|
|
170
|
+
.filter((n) => Number.isFinite(n) && n > 0 && n <= 128)
|
|
171
|
+
.sort((a, b) => a - b);
|
|
172
|
+
const uniqSpacing = [...new Set(freqSpacing)].slice(0, scaleNames.length);
|
|
173
|
+
uniqSpacing.forEach((n, i) => {
|
|
174
|
+
spacing[scaleNames[i]] = `${n}px`;
|
|
175
|
+
});
|
|
176
|
+
const tokens = {
|
|
177
|
+
version: 'alpha',
|
|
178
|
+
name: guessName(projectDir),
|
|
179
|
+
description: 'Auto-interrogated from existing UI. Refine the prose and token roles.',
|
|
180
|
+
};
|
|
181
|
+
if (Object.keys(colors).length)
|
|
182
|
+
tokens.colors = colors;
|
|
183
|
+
if (typography && Object.keys(typography).length)
|
|
184
|
+
tokens.typography = typography;
|
|
185
|
+
if (Object.keys(spacing).length)
|
|
186
|
+
tokens.spacing = spacing;
|
|
187
|
+
const source = tw?.colors
|
|
188
|
+
? 'tailwind'
|
|
189
|
+
: Object.keys(cssVarColors).length
|
|
190
|
+
? 'css-vars'
|
|
191
|
+
: colorCounts.size
|
|
192
|
+
? 'usage'
|
|
193
|
+
: 'none';
|
|
194
|
+
return {
|
|
195
|
+
tokens,
|
|
196
|
+
prose: renderProse(tokens, source),
|
|
197
|
+
stats: {
|
|
198
|
+
filesScanned: files.length,
|
|
199
|
+
colorsFound: colorCounts.size,
|
|
200
|
+
fontsFound: fontCounts.size,
|
|
201
|
+
spacingFound: spacingCounts.size,
|
|
202
|
+
source,
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function guessName(projectDir) {
|
|
207
|
+
try {
|
|
208
|
+
const pkg = join(projectDir, 'package.json');
|
|
209
|
+
if (existsSync(pkg)) {
|
|
210
|
+
const name = JSON.parse(readFileSync(pkg, 'utf-8')).name;
|
|
211
|
+
if (name)
|
|
212
|
+
return String(name).replace(/^@[^/]+\//, '').replace(/[-_]/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase());
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
/* ignore */
|
|
217
|
+
}
|
|
218
|
+
return basename(projectDir).replace(/[-_]/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase());
|
|
219
|
+
}
|
|
220
|
+
/** Render the DESIGN.md prose scaffold from the derived tokens. */
|
|
221
|
+
function renderProse(tokens, source) {
|
|
222
|
+
const colorLines = Object.entries(tokens.colors ?? {})
|
|
223
|
+
.map(([k, v]) => `- **${k} (${v}):** _describe the role of this color._`)
|
|
224
|
+
.join('\n');
|
|
225
|
+
const fontList = [...new Set(Object.values(tokens.typography ?? {}).map((t) => t.fontFamily).filter(Boolean))];
|
|
226
|
+
return [
|
|
227
|
+
'## Overview',
|
|
228
|
+
'',
|
|
229
|
+
`_Auto-interrogated from existing UI (source: ${source}). This is a starting point —`,
|
|
230
|
+
'describe the brand personality, audience, and the feeling the UI should evoke, then',
|
|
231
|
+
'correct any mis-assigned token roles above._',
|
|
232
|
+
'',
|
|
233
|
+
'## Colors',
|
|
234
|
+
'',
|
|
235
|
+
'The palette below was derived from the most prevalent colors in the codebase.',
|
|
236
|
+
'Re-map roles (primary/secondary/tertiary/neutral) to match the real design intent.',
|
|
237
|
+
'',
|
|
238
|
+
colorLines || '_No colors detected._',
|
|
239
|
+
'',
|
|
240
|
+
'## Typography',
|
|
241
|
+
'',
|
|
242
|
+
fontList.length
|
|
243
|
+
? `Primary typeface: **${fontList[0]}**.${fontList[1] ? ` Secondary: **${fontList[1]}**.` : ''} Refine the type scale in the front matter.`
|
|
244
|
+
: '_No font families detected — set them in the front matter._',
|
|
245
|
+
'',
|
|
246
|
+
"## Do's and Don'ts",
|
|
247
|
+
'',
|
|
248
|
+
"- **Do** use the tokens above for all new UI.",
|
|
249
|
+
"- **Don't** hardcode off-token colors or spacing — the UAP design gate blocks them.",
|
|
250
|
+
'',
|
|
251
|
+
].join('\n');
|
|
252
|
+
}
|
|
253
|
+
/** Serialize an InterrogationResult to a full DESIGN.md string. */
|
|
254
|
+
export function renderDesignMd(result) {
|
|
255
|
+
const fm = yaml.dump(result.tokens, { lineWidth: 100, quotingType: '"', forceQuotes: false }).trimEnd();
|
|
256
|
+
return `---\n${fm}\n---\n\n# ${result.tokens.name}\n\n${result.prose}`;
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=interrogate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interrogate.js","sourceRoot":"","sources":["../../src/design/interrogate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** True when the reactor context looks like UI/UX work. */
|
|
2
|
+
export declare function isUiWork(promptText?: string, changedFiles?: string[]): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Build the design-system injection string, or null if not applicable.
|
|
5
|
+
* `cwd` is the project root the reactor is operating in.
|
|
6
|
+
*/
|
|
7
|
+
export declare function maybeDesignInjection(cwd: string, promptText?: string, changedFiles?: string[]): string | null;
|
|
8
|
+
//# sourceMappingURL=reactor-inject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactor-inject.d.ts","sourceRoot":"","sources":["../../src/design/reactor-inject.ts"],"names":[],"mappings":"AAcA,2DAA2D;AAC3D,wBAAgB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAI9E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,MAAM,GAAG,IAAI,CAUf"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reactor hook for DESIGN.md: when a prompt or changed-file set indicates UI/UX
|
|
3
|
+
* work, surface the project's design-system summary so new UI stays on-token
|
|
4
|
+
* ("guide new"). Returns null when it's not UI work or the project has no
|
|
5
|
+
* DESIGN.md — keeping the reactor silent for non-design tasks.
|
|
6
|
+
*/
|
|
7
|
+
import { extname } from 'path';
|
|
8
|
+
import { loadDesign, summarizeForReactor } from './tokens.js';
|
|
9
|
+
const UI_EXT = new Set(['.css', '.scss', '.sass', '.less', '.tsx', '.jsx', '.vue', '.svelte', '.html', '.astro']);
|
|
10
|
+
const UI_PROMPT_RE = /\b(ui|ux|css|scss|style|styl(?:e|ing)|button|component|colou?r|palette|theme|theming|design|layout|font|typograph|spacing|tailwind|frontend|front-end|page|screen|view|modal|navbar|sidebar|header|footer|card|form|landing|hero|brand)\b/i;
|
|
11
|
+
/** True when the reactor context looks like UI/UX work. */
|
|
12
|
+
export function isUiWork(promptText, changedFiles) {
|
|
13
|
+
if (changedFiles?.some((f) => UI_EXT.has(extname(f).toLowerCase())))
|
|
14
|
+
return true;
|
|
15
|
+
if (promptText && UI_PROMPT_RE.test(promptText))
|
|
16
|
+
return true;
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Build the design-system injection string, or null if not applicable.
|
|
21
|
+
* `cwd` is the project root the reactor is operating in.
|
|
22
|
+
*/
|
|
23
|
+
export function maybeDesignInjection(cwd, promptText, changedFiles) {
|
|
24
|
+
if (!isUiWork(promptText, changedFiles))
|
|
25
|
+
return null;
|
|
26
|
+
let loaded;
|
|
27
|
+
try {
|
|
28
|
+
loaded = loadDesign(cwd);
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
if (!loaded)
|
|
34
|
+
return null;
|
|
35
|
+
return summarizeForReactor(loaded.parsed);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=reactor-inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactor-inject.js","sourceRoot":"","sources":["../../src/design/reactor-inject.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAElH,MAAM,YAAY,GAChB,4OAA4O,CAAC;AAE/O,2DAA2D;AAC3D,MAAM,UAAU,QAAQ,CAAC,UAAmB,EAAE,YAAuB;IACnE,IAAI,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjF,IAAI,UAAU,IAAI,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,GAAW,EACX,UAAmB,EACnB,YAAuB;IAEvB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IACrD,IAAI,MAAqC,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,OAAO,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC"}
|