@tendrilapp/cli 0.1.44 → 0.1.46

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.
@@ -106,6 +106,20 @@ var TOOLS = [
106
106
  schema: z.object({}),
107
107
  argv: () => ["login", "--device-wait"]
108
108
  },
109
+ {
110
+ name: "tendril_figma_connect",
111
+ description: "Grant this machine read access to the user's Figma files over Figma's API \u2014 phase one of the browser Figma connection. Recording over the Figma MCP transport pays a hard per-day call quota; this connection lets recording fetch over Figma's REST API instead (per-minute, batched), so large component sets stop hitting daily limits. Starts the handshake and returns a connect link \u2014 RELAY IT to the user verbatim: they sign in to their portal account if asked, then click Allow on Figma's consent screen (read-only file access; revocable any time in their Figma settings). Then call tendril_figma_connect_wait to finish. You cannot consent for them: the portal only accepts the browser's signed-in click, never this machine's token. Offer it when a recording plan warns about Figma call limits; requires a portal session (tendril_login).",
112
+ schema: z.object({
113
+ portal: optStr("portal origin override for self-hosted portals (defaults to the stored session's portal)")
114
+ }),
115
+ argv: (i) => ["figma-connect", "--start", ...typeof i["portal"] === "string" ? ["--to", i["portal"]] : []]
116
+ },
117
+ {
118
+ name: "tendril_figma_connect_wait",
119
+ description: "Phase two of the browser Figma connection: waits (with live progress) for the user's Allow click on Figma's consent screen, then stores the credential on this machine (it renews itself from then on). Call it right after relaying the connect link. A decline, a lapse, and success each come back as their own sentence \u2014 report the outcome to the user.",
120
+ schema: z.object({}),
121
+ argv: () => ["figma-connect", "--wait"]
122
+ },
109
123
  {
110
124
  name: "tendril_publish",
111
125
  description: "Publish a VERIFIED bundle to the user's portal \u2014 phase one of the browser-approved publish. Re-publishing an already-published component completes in one call. A component's FIRST publish is a human-only decision the portal enforces: this call requests the approval and returns the approve-page link \u2014 RELAY IT to the user verbatim, along with which account the result says to be signed in as (they click Approve in the browser; approving includes accepting the design system's publishing terms, which is their decision to make, never yours to urge). Then call tendril_publish_wait to finish. You cannot approve this yourself: the portal only accepts the decision from their signed-in browser, never from this machine's token. Requires a green verify (the CLI refuses a declined run) and a portal session (tendril_login).",
@@ -131,6 +145,12 @@ var TOOLS = [
131
145
  schema: z.object({ setDir: str("recording set directory") }),
132
146
  argv: (i) => ["record", "next", "--set", i["setDir"]]
133
147
  },
148
+ {
149
+ name: "tendril_record_rest_fetch",
150
+ description: "Fetch a recording set's pixels+geometry over Figma's REST API \u2014 the step `record next` names as rest_fetch when the set's REST channel is active. The CLI makes these requests itself with the user's connected Figma credential (tendril_figma_connect); you make NO Figma call for it and none can substitute. It first self-checks one or two probe poses against their MCP-recorded references (zero-pixel tolerance) and falls the whole set back to MCP recording if the transports disagree; then it bulk-fetches the rest, batched and paced, spending no MCP quota. Requires the probe poses to be recorded first \u2014 record next tells you when.",
151
+ schema: z.object({ setDir: str("recording set directory") }),
152
+ argv: (i) => ["record", "rest-fetch", "--set", i["setDir"]]
153
+ },
134
154
  {
135
155
  name: "tendril_record_fetch",
136
156
  description: "Download a Figma asset URL (from get_screenshot's image_url) straight to disk and ingest it as the rep's envelope \u2014 the fallback when only the screenshot piece needs (re-)recording; for a rep's standard three recordings PREFER tendril_record_ingest_rep. Never download the image yourself: the bytes must not pass through your context.",