@tendrilapp/cli 0.1.30 → 0.1.32
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/SKILL.md +6 -1
- package/dist/tendril-mcp.js +19 -8
- package/dist/tendril.js +1876 -775
- package/package.json +1 -1
package/dist/SKILL.md
CHANGED
|
@@ -131,7 +131,12 @@ Batch runs (several components in one session):
|
|
|
131
131
|
2. `tendril_record_plan` with the response text passed VERBATIM via
|
|
132
132
|
`metadataParts` (one array entry per response block, in order —
|
|
133
133
|
single-block responses may use `metadata` instead; nothing is saved
|
|
134
|
-
to a file, and never hand-join blocks)
|
|
134
|
+
to a file, and never hand-join blocks), AND `figmaFile` set to the
|
|
135
|
+
file key from the URL you were handed (figma.com/design/<KEY>/… —
|
|
136
|
+
pass exactly KEY): it is recorded as the set's file identity for
|
|
137
|
+
cross-bundle composition, captured at plan time only and never
|
|
138
|
+
backfillable — a set planned without it can never join across
|
|
139
|
+
bundles → the queue plan. The plan
|
|
135
140
|
records the FULL variant matrix — every pose the set defines
|
|
136
141
|
(sampling exists only as a human-run CLI flag; the MCP surface
|
|
137
142
|
cannot sample). CROSS-CHECK `variantsFound` in the plan output
|
package/dist/tendril-mcp.js
CHANGED
|
@@ -37,7 +37,8 @@ var TOOLS = [
|
|
|
37
37
|
metadata: optStr("ONLY when get_metadata genuinely returned one single block: its text verbatim (otherwise use metadataParts)"),
|
|
38
38
|
metadataFiles: z.array(z.string()).optional().describe('saved verbatim get_metadata envelope file paths \u2014 JSON shape {"content":[{"type":"text","text":"<frame \u2026>"}]}; optionally <file>@<frameId>. Prefer metadataParts: no file to write'),
|
|
39
39
|
defaults: z.array(z.string()).optional().describe(`axis defaults as "Axis=Value" (from the user's defaultsToConfirm answers; may re-plan a set with nothing recorded yet)`),
|
|
40
|
-
componentSet: optStr("record only this component set (the user's pick from a multiple-component-sets error)")
|
|
40
|
+
componentSet: optStr("record only this component set (the user's pick from a multiple-component-sets error)"),
|
|
41
|
+
figmaFile: optStr("the Figma file key from the design URL you were handed \u2014 figma.com/design/<KEY>/\u2026, pass exactly <KEY>. ALWAYS pass it on a fresh plan: it is the set's recorded file identity for cross-bundle composition (ADR-013), captured at plan time only and never backfillable later")
|
|
41
42
|
}),
|
|
42
43
|
// Texts ride temp files, never argv: Windows caps a command line at
|
|
43
44
|
// ~32 KB and metadata envelopes can exceed it.
|
|
@@ -60,7 +61,11 @@ var TOOLS = [
|
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
if (argvOut.length === 6) throw new Error("nothing to plan from \u2014 pass metadataParts (normal), metadata (single-block), or metadataFiles");
|
|
63
|
-
argvOut.push(
|
|
64
|
+
argvOut.push(
|
|
65
|
+
...i["defaults"] !== void 0 ? ["--default", ...i["defaults"]] : [],
|
|
66
|
+
...i["componentSet"] !== void 0 ? ["--component-set", i["componentSet"]] : [],
|
|
67
|
+
...typeof i["figmaFile"] === "string" ? ["--figma-file", i["figmaFile"]] : []
|
|
68
|
+
);
|
|
64
69
|
return argvOut;
|
|
65
70
|
}
|
|
66
71
|
},
|
|
@@ -220,7 +225,8 @@ var TOOLS = [
|
|
|
220
225
|
// choose, declare, and state the reason in your report.
|
|
221
226
|
model: str("the model that will WRITE the implementation \u2014 ask the user when interactive; declare your reasoned choice when not"),
|
|
222
227
|
bar: optStr("pass (default) or cert"),
|
|
223
|
-
out: optStr("payload file path override")
|
|
228
|
+
out: optStr("payload file path override"),
|
|
229
|
+
library: optStr("workspace root holding confirmed partners generated bundles (ADR-013 composed pins; default: the server's working directory)")
|
|
224
230
|
}),
|
|
225
231
|
argv: (i) => [
|
|
226
232
|
"engine",
|
|
@@ -229,7 +235,8 @@ var TOOLS = [
|
|
|
229
235
|
"--model",
|
|
230
236
|
i["model"],
|
|
231
237
|
...i["bar"] !== void 0 ? ["--bar", i["bar"]] : [],
|
|
232
|
-
...i["out"] !== void 0 ? ["--out", i["out"]] : []
|
|
238
|
+
...i["out"] !== void 0 ? ["--out", i["out"]] : [],
|
|
239
|
+
...i["library"] !== void 0 ? ["--library", i["library"]] : []
|
|
233
240
|
]
|
|
234
241
|
},
|
|
235
242
|
{
|
|
@@ -241,7 +248,8 @@ var TOOLS = [
|
|
|
241
248
|
bar: optStr("pass (default) or cert"),
|
|
242
249
|
host: optStr("your host identity (e.g. claude-code, cursor, codex) \u2014 recorded as self-reported provenance"),
|
|
243
250
|
model: str("the model that proposed the candidate \u2014 REQUIRED; recorded as self-reported provenance, and the CLI refuses to score without it"),
|
|
244
|
-
rebind: z.boolean().optional().describe("explicitly re-bind an already-bound bundle to a DIFFERENT recording set \u2014 scoring refuses this otherwise, because rebinding silently rewrites the bundle's verification identity; only pass after telling the user")
|
|
251
|
+
rebind: z.boolean().optional().describe("explicitly re-bind an already-bound bundle to a DIFFERENT recording set \u2014 scoring refuses this otherwise, because rebinding silently rewrites the bundle's verification identity; only pass after telling the user"),
|
|
252
|
+
library: optStr("workspace root holding confirmed partners generated bundles (ADR-013 composed pins; default: the server's working directory) \u2014 pass the same root the brief used")
|
|
245
253
|
}),
|
|
246
254
|
argv: (i) => [
|
|
247
255
|
"engine",
|
|
@@ -252,7 +260,8 @@ var TOOLS = [
|
|
|
252
260
|
...i["host"] !== void 0 ? ["--host", i["host"]] : [],
|
|
253
261
|
"--model",
|
|
254
262
|
i["model"],
|
|
255
|
-
...i["rebind"] === true ? ["--rebind"] : []
|
|
263
|
+
...i["rebind"] === true ? ["--rebind"] : [],
|
|
264
|
+
...i["library"] !== void 0 ? ["--library", i["library"]] : []
|
|
256
265
|
]
|
|
257
266
|
},
|
|
258
267
|
{
|
|
@@ -279,13 +288,15 @@ var TOOLS = [
|
|
|
279
288
|
schema: z.object({
|
|
280
289
|
bundleDir: str("bundle directory to verify"),
|
|
281
290
|
bar: optStr("pass (default) or cert"),
|
|
282
|
-
set: optStr("recording-set directory override")
|
|
291
|
+
set: optStr("recording-set directory override"),
|
|
292
|
+
library: optStr("workspace root holding confirmed partners generated bundles (ADR-013 composed pins; default: the server's working directory)")
|
|
283
293
|
}),
|
|
284
294
|
argv: (i) => [
|
|
285
295
|
"verify",
|
|
286
296
|
i["bundleDir"],
|
|
287
297
|
...i["bar"] !== void 0 ? ["--bar", i["bar"]] : [],
|
|
288
|
-
...i["set"] !== void 0 ? ["--set", i["set"]] : []
|
|
298
|
+
...i["set"] !== void 0 ? ["--set", i["set"]] : [],
|
|
299
|
+
...i["library"] !== void 0 ? ["--library", i["library"]] : []
|
|
289
300
|
]
|
|
290
301
|
},
|
|
291
302
|
{
|