@expressivecss/mcp-server 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/CHANGELOG.md +7 -0
- package/capability-roadmap.json +1 -1
- package/component-decisions.json +1 -1
- package/component-guides.json +42 -42
- package/contract.json +4 -3
- package/package.json +1 -1
- package/semantics-data.json +1 -1
- package/server.js +1 -1
- package/smoke.mjs +7 -0
package/contract.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"generatedBy": "scripts/gen-expressivecss-skill.mjs",
|
|
4
|
-
"frameworkVersion": "0.
|
|
4
|
+
"frameworkVersion": "0.11.0",
|
|
5
5
|
"skillVersion": "0.7.0",
|
|
6
|
-
"matchingTag": "v0.
|
|
6
|
+
"matchingTag": "v0.11.0",
|
|
7
7
|
"releaseTags": [
|
|
8
8
|
"v0.10.0",
|
|
9
9
|
"v0.10.1",
|
|
10
|
+
"v0.11.0",
|
|
10
11
|
"v0.5.0",
|
|
11
12
|
"v0.6.0",
|
|
12
13
|
"v0.7.0",
|
|
@@ -23,5 +24,5 @@
|
|
|
23
24
|
"package.json",
|
|
24
25
|
"CHANGELOG.md"
|
|
25
26
|
],
|
|
26
|
-
"sourceHash": "
|
|
27
|
+
"sourceHash": "425faa2b1b68a0dd95d0718e81b94405ff8ab3b34a2c95e5cfc1b71ef2894a65"
|
|
27
28
|
}
|
package/package.json
CHANGED
package/semantics-data.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"generatedBy": "mcp/expressivecss/scripts/sync-guides.mjs",
|
|
4
|
-
"frameworkVersion": "0.
|
|
4
|
+
"frameworkVersion": "0.11.0",
|
|
5
5
|
"semantics": {
|
|
6
6
|
"about": "Normative HTML semantics for ExpressiveCSS. This data file is the single source of truth: SEMANTICS.md is generated from it by scripts/gen-semantics.mjs, and tests/semantics.test.js enforces it. One row per roster entry, each stating its kind - component, foundation or behavior, as CONTEXT.md defines them. CONTEXT.md defines the rest of the vocabulary.",
|
|
7
7
|
"scope": "Element choice, landmark structure, and the ARIA that element choice implies. Keyboard interaction, focus management and colour contrast are deliberately out of scope.",
|
package/server.js
CHANGED
|
@@ -987,7 +987,7 @@ export function inspectAuthoringRules(
|
|
|
987
987
|
}
|
|
988
988
|
|
|
989
989
|
const autoInit = /(?:Expressive\.)?AutoInit\s*\(/u.test(snippet);
|
|
990
|
-
const manualInitPattern = /(?:(?:const|let|var)\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=\s*)?(?:Expressive\.)?[A-Z][A-Za-z0-9]*\.init\s*\(/gu;
|
|
990
|
+
const manualInitPattern = /(?<![A-Za-z0-9_$])(?:(?:const|let|var)\s+([A-Za-z_$][A-Za-z0-9_$]*)\s*=\s*)?(?:Expressive\.)?[A-Z][A-Za-z0-9]*\.init\s*\(/gu;
|
|
991
991
|
let manualInit;
|
|
992
992
|
while ((manualInit = manualInitPattern.exec(snippet)) !== null) {
|
|
993
993
|
const stop = inspectionStopReason(issues, maxIssues, deadline);
|
package/smoke.mjs
CHANGED
|
@@ -428,6 +428,13 @@ try {
|
|
|
428
428
|
assert.equal(nestedMarkup.structuredContent.status, 'blocked');
|
|
429
429
|
assert.ok(nestedMarkup.structuredContent.blockedChecks.includes('static inspection limit reached'));
|
|
430
430
|
|
|
431
|
+
const identifierRunStartedAt = Date.now();
|
|
432
|
+
await client.callTool({
|
|
433
|
+
name: 'rules_enforcer',
|
|
434
|
+
arguments: { projectRoot: packageDir, snippet: 'A'.repeat(200_000) },
|
|
435
|
+
});
|
|
436
|
+
assert.ok(Date.now() - identifierRunStartedAt < 5_000);
|
|
437
|
+
|
|
431
438
|
const validRail = await client.callTool({
|
|
432
439
|
name: 'rules_enforcer',
|
|
433
440
|
arguments: {
|