@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/contract.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "generatedBy": "scripts/gen-expressivecss-skill.mjs",
4
- "frameworkVersion": "0.10.1",
4
+ "frameworkVersion": "0.11.0",
5
5
  "skillVersion": "0.7.0",
6
- "matchingTag": "v0.10.1",
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": "98b9da3400da3b8e16a86e4b52989317a369033dc3b6446441f955d8abfbe09e"
27
+ "sourceHash": "425faa2b1b68a0dd95d0718e81b94405ff8ab3b34a2c95e5cfc1b71ef2894a65"
27
28
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expressivecss/mcp-server",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "ExpressiveCSS MCP server with Design→QA workflow tools.",
5
5
  "homepage": "https://www.expressivecss.com",
6
6
  "repository": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "generatedBy": "mcp/expressivecss/scripts/sync-guides.mjs",
4
- "frameworkVersion": "0.10.1",
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: {