framer-dalton 0.0.22 → 0.0.23
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/cli.js
CHANGED
|
@@ -10,7 +10,7 @@ import os from 'os';
|
|
|
10
10
|
import { fileURLToPath } from 'url';
|
|
11
11
|
import { createTRPCClient, httpLink } from '@trpc/client';
|
|
12
12
|
|
|
13
|
-
/* @framer/ai CLI v0.0.
|
|
13
|
+
/* @framer/ai CLI v0.0.23 */
|
|
14
14
|
var __defProp = Object.defineProperty;
|
|
15
15
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
16
16
|
|
|
@@ -328,7 +328,7 @@ __name(markTelemetryNoticeShown, "markTelemetryNoticeShown");
|
|
|
328
328
|
// src/version.ts
|
|
329
329
|
var VERSION = (
|
|
330
330
|
// typeof is used to ensure this can be used just via tsx or node etc. without build
|
|
331
|
-
"0.0.
|
|
331
|
+
"0.0.23"
|
|
332
332
|
);
|
|
333
333
|
var trackingEndpoint = "https://events.framer.com/track";
|
|
334
334
|
var inProgressTrackings = /* @__PURE__ */ new Set();
|
|
@@ -6293,6 +6293,12 @@ var types = {
|
|
|
6293
6293
|
description: "@alpha",
|
|
6294
6294
|
optional: false
|
|
6295
6295
|
},
|
|
6296
|
+
{
|
|
6297
|
+
name: "unstable_getDependencyVersion",
|
|
6298
|
+
type: 'FramerPluginAPIAlpha["unstable_getDependencyVersion"]',
|
|
6299
|
+
description: "@alpha",
|
|
6300
|
+
optional: false
|
|
6301
|
+
},
|
|
6296
6302
|
{
|
|
6297
6303
|
name: "unstable_ensureMinimumDependencyVersion",
|
|
6298
6304
|
type: 'FramerPluginAPI["unstable_ensureMinimumDependencyVersion"]',
|
|
@@ -7205,6 +7211,24 @@ var types = {
|
|
|
7205
7211
|
description: "@alpha",
|
|
7206
7212
|
optional: false
|
|
7207
7213
|
},
|
|
7214
|
+
{
|
|
7215
|
+
name: "serializeForAgent",
|
|
7216
|
+
type: "(input: {\n id: string;\n depth?: number;\n attributeFilter?: readonly string[];\n ancestorPath?: boolean;\n }, options?: {\n pagePath?: string;\n }) => Promise<unknown>",
|
|
7217
|
+
description: "@alpha",
|
|
7218
|
+
optional: false
|
|
7219
|
+
},
|
|
7220
|
+
{
|
|
7221
|
+
name: "serializeNodesForAgent",
|
|
7222
|
+
type: "(input: {\n ids: readonly string[];\n depth?: number;\n attributeFilter?: readonly string[];\n ancestorPath?: boolean;\n }, options?: {\n pagePath?: string;\n }) => Promise<unknown>",
|
|
7223
|
+
description: "@alpha",
|
|
7224
|
+
optional: false
|
|
7225
|
+
},
|
|
7226
|
+
{
|
|
7227
|
+
name: "paginateForAgent",
|
|
7228
|
+
type: "(input: {\n items: readonly unknown[];\n keyName?: never;\n cursor?: never;\n } | {\n keyName: string;\n cursor: number;\n items?: never;\n }, options?: {\n pagePath?: string;\n }) => Promise<unknown>",
|
|
7229
|
+
description: "@alpha",
|
|
7230
|
+
optional: false
|
|
7231
|
+
},
|
|
7208
7232
|
{
|
|
7209
7233
|
name: "startAgentConversation",
|
|
7210
7234
|
type: "(prompt: string, options?: StartAgentConversationOptions) => Promise<StartAgentConversationResult>",
|
|
@@ -13092,6 +13116,13 @@ var methodsByCategory = {
|
|
|
13092
13116
|
description: 'Converts an external component into a local project component.\n\n@param input - `{ id, replaceAll? }`: the id of the external instance, and whether to replace all instances.\n@param options.pagePath - Target page path (e.g. `"/about"`). Defaults to the active page.\n@returns `success` (with the local component name), `needs_confirmation` (retry with `replaceAll`), or `blocked` with a reason.',
|
|
13093
13117
|
references: []
|
|
13094
13118
|
},
|
|
13119
|
+
{
|
|
13120
|
+
name: "[$framerApiOnly.paginateForAgent]",
|
|
13121
|
+
category: "framer",
|
|
13122
|
+
signature: "[$framerApiOnly.paginateForAgent](input: { items: readonly unknown[]; keyName?: never; cursor?: never; } | { keyName: string; cursor: number; items?: never; }, options?: { pagePath?: string; }): Promise<unknown>",
|
|
13123
|
+
description: 'Paginate a large array of values across multiple calls. The cursor is\nopaque and only valid within the same headless session and page.\n\n- First page: pass `{ items }`.\n- Continuation: pass `{ keyName, cursor }` using values returned by a previous call.\n\n@param input - `{ items }` for a fresh array, or `{ keyName, cursor }` for continuation.\n@param options.pagePath - Target page path (e.g. `"/about"`). Defaults to the active page.\n@returns The current page, including `keyName`, `cursor`, `results`, `totalResults`, and (if more pages remain) `nextCursor`.',
|
|
13124
|
+
references: []
|
|
13125
|
+
},
|
|
13095
13126
|
{
|
|
13096
13127
|
name: "[$framerApiOnly.publishForAgent]",
|
|
13097
13128
|
category: "framer",
|
|
@@ -13120,6 +13151,20 @@ var methodsByCategory = {
|
|
|
13120
13151
|
description: "Reviews changes made by prior {@link applyAgentChanges} calls in this session.\n\nConsumes accumulated diagnostics from the session's agent context.\n\n@param options.pagePath - Target page path (e.g. `\"/about\"`). Defaults to the active page.\n@returns The session's accumulated changes, errors, warnings, and deferred trait reports.",
|
|
13121
13152
|
references: []
|
|
13122
13153
|
},
|
|
13154
|
+
{
|
|
13155
|
+
name: "[$framerApiOnly.serializeForAgent]",
|
|
13156
|
+
category: "framer",
|
|
13157
|
+
signature: "[$framerApiOnly.serializeForAgent](input: { id: string; depth?: number; attributeFilter?: readonly string[]; ancestorPath?: boolean; }, options?: { pagePath?: string; }): Promise<unknown>",
|
|
13158
|
+
description: 'Serialize a single node on the page.\n\n@param input - `{ id }` plus optional serialization options:\n - `depth` \u2014 limit how many descendant levels to include.\n - `attributeFilter` \u2014 only return the listed attributes per node.\n - `ancestorPath` \u2014 also return the path of ancestors up to the page root.\n@param options.pagePath - Target page path (e.g. `"/about"`). Defaults to the active page.\n@returns The serialized node, or `null` if no node with that id exists on the page.',
|
|
13159
|
+
references: []
|
|
13160
|
+
},
|
|
13161
|
+
{
|
|
13162
|
+
name: "[$framerApiOnly.serializeNodesForAgent]",
|
|
13163
|
+
category: "framer",
|
|
13164
|
+
signature: "[$framerApiOnly.serializeNodesForAgent](input: { ids: readonly string[]; depth?: number; attributeFilter?: readonly string[]; ancestorPath?: boolean; }, options?: { pagePath?: string; }): Promise<unknown>",
|
|
13165
|
+
description: 'Serialize multiple nodes on the page. Ids that don\'t resolve to a node are skipped.\n\n@param input - `{ ids }` plus optional serialization options:\n - `depth` \u2014 limit how many descendant levels to include.\n - `attributeFilter` \u2014 only return the listed attributes per node.\n - `ancestorPath` \u2014 also return the path of ancestors up to the page root.\n@param options.pagePath - Target page path (e.g. `"/about"`). Defaults to the active page.\n@returns The serialized nodes that were found, in input order.',
|
|
13166
|
+
references: []
|
|
13167
|
+
},
|
|
13123
13168
|
{
|
|
13124
13169
|
name: "[$framerInternal.initialState]",
|
|
13125
13170
|
category: "framer",
|
|
@@ -13651,6 +13696,13 @@ var methodsByCategory = {
|
|
|
13651
13696
|
description: 'Get the current mode.\n\nA plugin can launch in a special mode where only a subset of the API is\nallowed. The mode is set when the plugin launches and never changes while\nthe plugin is active.\n\n@example\n```ts\nif (framer.mode === "image" || framer.mode === "editImage") {\n // Do image mode specific logic\n return\n}\n```\n@category settings',
|
|
13652
13697
|
references: ["Mode"]
|
|
13653
13698
|
},
|
|
13699
|
+
{
|
|
13700
|
+
name: "paginateForAgent",
|
|
13701
|
+
category: "framer",
|
|
13702
|
+
signature: "paginateForAgent(input: { items: readonly unknown[]; keyName?: never; cursor?: never; } | { keyName: string; cursor: number; items?: never; }, options?: { pagePath?: string; }): Promise<unknown>",
|
|
13703
|
+
description: 'Paginate a large array of values across multiple calls. The cursor is\nopaque and only valid within the same headless session and page.\n\n- First page: pass `{ items }`.\n- Continuation: pass `{ keyName, cursor }` using values returned by a previous call.\n\n@param input - `{ items }` for a fresh array, or `{ keyName, cursor }` for continuation.\n@param options.pagePath - Target page path (e.g. `"/about"`). Defaults to the active page.\n@returns The current page, including `keyName`, `cursor`, `results`, `totalResults`, and (if more pages remain) `nextCursor`.',
|
|
13704
|
+
references: []
|
|
13705
|
+
},
|
|
13654
13706
|
{
|
|
13655
13707
|
name: "publish",
|
|
13656
13708
|
category: "framer",
|
|
@@ -13731,6 +13783,20 @@ var methodsByCategory = {
|
|
|
13731
13783
|
description: "",
|
|
13732
13784
|
references: ["ScreenshotOptions", "ScreenshotResult"]
|
|
13733
13785
|
},
|
|
13786
|
+
{
|
|
13787
|
+
name: "serializeForAgent",
|
|
13788
|
+
category: "framer",
|
|
13789
|
+
signature: "serializeForAgent(input: { id: string; depth?: number; attributeFilter?: readonly string[]; ancestorPath?: boolean; }, options?: { pagePath?: string; }): Promise<unknown>",
|
|
13790
|
+
description: 'Serialize a single node on the page.\n\n@param input - `{ id }` plus optional serialization options:\n - `depth` \u2014 limit how many descendant levels to include.\n - `attributeFilter` \u2014 only return the listed attributes per node.\n - `ancestorPath` \u2014 also return the path of ancestors up to the page root.\n@param options.pagePath - Target page path (e.g. `"/about"`). Defaults to the active page.\n@returns The serialized node, or `null` if no node with that id exists on the page.',
|
|
13791
|
+
references: []
|
|
13792
|
+
},
|
|
13793
|
+
{
|
|
13794
|
+
name: "serializeNodesForAgent",
|
|
13795
|
+
category: "framer",
|
|
13796
|
+
signature: "serializeNodesForAgent(input: { ids: readonly string[]; depth?: number; attributeFilter?: readonly string[]; ancestorPath?: boolean; }, options?: { pagePath?: string; }): Promise<unknown>",
|
|
13797
|
+
description: 'Serialize multiple nodes on the page. Ids that don\'t resolve to a node are skipped.\n\n@param input - `{ ids }` plus optional serialization options:\n - `depth` \u2014 limit how many descendant levels to include.\n - `attributeFilter` \u2014 only return the listed attributes per node.\n - `ancestorPath` \u2014 also return the path of ancestors up to the page root.\n@param options.pagePath - Target page path (e.g. `"/about"`). Defaults to the active page.\n@returns The serialized nodes that were found, in input order.',
|
|
13798
|
+
references: []
|
|
13799
|
+
},
|
|
13734
13800
|
{
|
|
13735
13801
|
name: "sessionId",
|
|
13736
13802
|
category: "framer",
|
|
@@ -13,7 +13,7 @@ import { connect } from 'framer-api';
|
|
|
13
13
|
import { createRequire } from 'module';
|
|
14
14
|
import * as vm from 'vm';
|
|
15
15
|
|
|
16
|
-
/* @framer/ai relay server v0.0.
|
|
16
|
+
/* @framer/ai relay server v0.0.23 */
|
|
17
17
|
var __defProp = Object.defineProperty;
|
|
18
18
|
var __knownSymbol = (name2, symbol) => (symbol = Symbol[name2]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name2);
|
|
19
19
|
var __typeError = (msg) => {
|
|
@@ -159,7 +159,7 @@ __name(debug, "debug");
|
|
|
159
159
|
// src/version.ts
|
|
160
160
|
var VERSION = (
|
|
161
161
|
// typeof is used to ensure this can be used just via tsx or node etc. without build
|
|
162
|
-
"0.0.
|
|
162
|
+
"0.0.23"
|
|
163
163
|
);
|
|
164
164
|
|
|
165
165
|
// src/relay-client.ts
|
|
@@ -16,7 +16,7 @@ allowed-tools: ["Bash(npx framer-dalton:*)", "Bash(npx framer-dalton@latest:*)",
|
|
|
16
16
|
- `read-project` and `apply-changes` are one-liner CLI shortcuts for the high-frequency canvas-editing methods. Use them to read state and apply DSL inline without writing a file first:
|
|
17
17
|
- `npx framer-dalton read-project -s <sessionId> -q <queries> -p <pagePath>` — equivalent to `framer.readProjectForAgent(queries, { pagePath })`. Query types are documented in the embedded prompt below.
|
|
18
18
|
- `npx framer-dalton apply-changes -s <sessionId> -p <pagePath> -e <dsl>` — equivalent to `framer.applyAgentChanges(dsl, { pagePath })`.
|
|
19
|
-
- The embedded prompt below also references other agent-surface methods (`reviewChangesForAgent`, `publishForAgent`, `queryImagesForAgent`, `flattenComponentInstanceForAgent`, `makeExternalComponentLocalForAgent`,
|
|
19
|
+
- The embedded prompt below also references other agent-surface methods (`reviewChangesForAgent`, `publishForAgent`, `queryImagesForAgent`, `flattenComponentInstanceForAgent`, `makeExternalComponentLocalForAgent`, `getNodeForAgent` / `getNodesForAgent` / `getNodesOfTypesForAgent` / `getScopeNodeForAgent` / `getGroundNodeForAgent` / `getParentNodeForAgent` / `getAncestorsForAgent`, and `serializeForAgent` / `serializeNodesForAgent` / `paginateForAgent`). These have no dedicated shortcut; invoke via `npx framer-dalton exec -s <sessionId> -e 'console.log(await framer.<method>(<args>))'`.
|
|
20
20
|
|
|
21
21
|
## Workflow Loop
|
|
22
22
|
|
package/docs/skills/framer.md
CHANGED
|
@@ -438,6 +438,5 @@ await collection.setPluginData("lastSync", new Date().toISOString());
|
|
|
438
438
|
### Known Limitations
|
|
439
439
|
|
|
440
440
|
- **Pages**: Cannot change the path of a page
|
|
441
|
-
- **Collection Index/Detail Pages**: Cannot be created as new pages; the user must create them through the UI. Once they exist, they can be modified normally through canvas editing.
|
|
442
441
|
- **Code overrides**: Cannot assign overrides to nodes
|
|
443
442
|
- **Analytics**: No APIs exist for accessing analytics data
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "framer-dalton",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": "./dist/cli.js",
|
|
6
6
|
"main": "./dist/cli.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@trpc/client": "^11.9.0",
|
|
24
24
|
"@trpc/server": "^11.9.0",
|
|
25
25
|
"commander": "^12.1.0",
|
|
26
|
-
"framer-api": "^0.1.
|
|
26
|
+
"framer-api": "^0.1.9",
|
|
27
27
|
"zod": "^4.3.6"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|