@calibrate-ds/cli 0.1.87 → 0.1.88

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 CHANGED
@@ -768,6 +768,6 @@ See [PTB.md](./PTB.md) for architecture, type definitions, the generator interfa
768
768
  ```bash
769
769
  pnpm install
770
770
  pnpm build
771
- pnpm test # 586 tests across core, generator, and CLI
771
+ pnpm test # 593 tests across core, generator, and CLI
772
772
  node apps/cli/dist/index.js --help
773
773
  ```
@@ -293,7 +293,9 @@ DIVISION OF LABOR WITH FIGMA MCP (composite workflow — most accurate):
293
293
  TYPICAL WORKFLOW:
294
294
  1. Call start_work("<name>") — read blockedBy and tokenConflicts first
295
295
  2. For each blocker: call start_work("<dep>"), implement, call submit_work("<dep>")
296
- 3. Read contextFile for the full implementation brief
296
+ 3. Read contextFile for the full implementation brief (it contains promptText, the
297
+ render tree, and variantDiffs — these are intentionally NOT inlined in this
298
+ response because they exceed the tool-call size limit on large components)
297
299
  4. Implement the requested component
298
300
  5. Call submit_work("<name>") when done`, { name: z.string().describe("Component to start working on, e.g. 'SearchBar'") }, async ({ name }) => {
299
301
  let ctx;
@@ -411,7 +413,11 @@ TYPICAL WORKFLOW:
411
413
  layout: context.layout,
412
414
  size: context.size,
413
415
  docs: buildDocsPayload(context, codeName, ctx),
414
- promptText: promptPackage.promptText,
416
+ // NEW-8: promptText (often 100 KB+) is NOT inlined here — it blew the
417
+ // MCP tool-call token limit (94.7% of the payload) and failed the call
418
+ // outright on large component-sets. The full brief lives in contextFile
419
+ // (unchanged — it still contains promptText and every detail); read it
420
+ // from there. Only the compact instructions/summary travel in the payload.
415
421
  instructions: promptPackage.instructions,
416
422
  structureSummary: promptPackage.structureSummary,
417
423
  // Token conflicts: slots where PTB's resolved token hex differs from
@@ -700,7 +706,9 @@ recursively when you call it for that dependency.`, { name: z.string().describe(
700
706
  layout: context.layout,
701
707
  size: context.size,
702
708
  docs: buildDocsPayload(context, codeName, ctx),
703
- promptText: promptPackage.promptText,
709
+ // NEW-8: promptText is NOT inlined (it exceeds the MCP tool-call token
710
+ // limit on large components). The full brief — including promptText — is
711
+ // in contextFile, which is unchanged; read it from there.
704
712
  instructions: promptPackage.instructions,
705
713
  structureSummary: promptPackage.structureSummary,
706
714
  ...(context.tokenConflicts?.length
@@ -3,6 +3,13 @@ import * as path from "node:path";
3
3
  import { z } from "zod";
4
4
  import { resolveToken } from "@calibrate-ds/core";
5
5
  const UPGRADE_CHECKLIST = {
6
+ "0.1.88": [
7
+ "0.1.87 audit fixes (docs/PTB_0187_REPORT.md). Closes the last functional beta blocker plus the emitter-parity residuals. Six-plus releases, zero regressions.",
8
+ "FIX (NEW-8, open since .79 — was FAILING HARD): start_work's MCP response inlined promptText (100 KB+, 94.7% of the payload), so start_work on a large component-set EXCEEDED the tool-call token limit and the call failed outright. promptText is no longer inlined in the response. The contextFile on disk is UNCHANGED — it still contains promptText and every detail; read the full brief from there (the tool description says so). This unblocks the primary agent entry point.",
9
+ "FIX (E-19 parity): multi-mode themes (e.g. Light/Dark) reached the canonical tokens.css but NOT the per-collection css/<name>.css or the TS export <name>.ts. All three emitters now emit every mode — per-collection CSS gets [data-theme] blocks; the TS export carries a valuesByMode field per token.",
10
+ "FIX (E-9 parity): a malformed hex value (e.g. #GGGGGG) was dropped from CSS but still leaked into the TS export. It's now skipped by every emitter, including <name>.ts. A shared token-value guard + a cross-emitter parity test prevent this fix-one-emitter class from recurring.",
11
+ "Re-run 'ptb generate-tokens' (or let start_work regenerate) to pick up the emitter fixes. No re-scan needed for these. Restart your IDE's MCP server for the start_work payload change. 593 tests.",
12
+ ],
6
13
  "0.1.87": [
7
14
  "LICENSE CHANGE release — no code changes. Calibrate is now licensed under the Functional Source License (FSL-1.1-MIT), a source-available license, instead of Apache-2.0.",
8
15
  "What it means: you may still read, use, copy, modify, and redistribute the software freely for any purpose EXCEPT a Competing Use (offering it as a commercial product/service that substitutes for Calibrate). Each version additionally becomes MIT-licensed two years after its release.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@calibrate-ds/cli",
3
- "version": "0.1.87",
3
+ "version": "0.1.88",
4
4
  "license": "FSL-1.1-MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -44,10 +44,10 @@
44
44
  "commander": "^14.0.3",
45
45
  "openai": "^6.34.0",
46
46
  "zod": "^4.3.6",
47
- "@calibrate-ds/figma-client": "^0.1.87",
48
- "@calibrate-ds/generator-react": "^0.1.87",
49
- "@calibrate-ds/core": "^0.1.87",
50
- "@calibrate-ds/shared-types": "^0.1.87"
47
+ "@calibrate-ds/core": "^0.1.88",
48
+ "@calibrate-ds/figma-client": "^0.1.88",
49
+ "@calibrate-ds/generator-react": "^0.1.88",
50
+ "@calibrate-ds/shared-types": "^0.1.88"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/node": "^22.13.5",