framer-dalton 0.0.18 → 0.0.21
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 +1 -50
- package/dist/cli.js +1205 -536
- package/dist/start-relay-server.js +642 -248
- package/docs/skills/framer-canvas-editing-project.md +2 -2
- package/docs/skills/framer.md +22 -7
- package/package.json +8 -5
|
@@ -25,8 +25,8 @@ allowed-tools: ["Bash(npx framer-dalton:*)", "Bash(npx framer-dalton@latest:*)",
|
|
|
25
25
|
## Workflow Loop
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
# 1) Read page structure first
|
|
29
|
-
npx framer-dalton read-project -s <sessionId> -q '<get page structure>' -p "/"
|
|
28
|
+
# 1) Read page structure first (fill in real query from Live Agent System Prompt)
|
|
29
|
+
npx framer-dalton read-project -s <sessionId> -q '<query to get page structure>' -p "/"
|
|
30
30
|
|
|
31
31
|
# 2) Request additional targeted queries only if needed
|
|
32
32
|
|
package/docs/skills/framer.md
CHANGED
|
@@ -46,12 +46,26 @@ npx framer-dalton project list
|
|
|
46
46
|
|
|
47
47
|
Use that list to infer the likely project from the names and recency. If the right project is already known, use its project ID with `session new`. If there are multiple possible matches, clarify with the user. Only ask the user for a Project URL if there is no clear match. Avoid talking about the technical contents of returned data like IDs.
|
|
48
48
|
|
|
49
|
-
Create a session:
|
|
49
|
+
Create a session against an existing project:
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
npx framer-dalton session new "<url or id>"
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
To create a brand new empty project and connect to it:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npx framer-dalton project new
|
|
59
|
+
npx framer-dalton session new "<returned project id>"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
To remix (duplicate) an existing project and connect to the copy:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx framer-dalton project remix "<url, project id, or remix link>"
|
|
66
|
+
npx framer-dalton session new "<returned project id>"
|
|
67
|
+
```
|
|
68
|
+
|
|
55
69
|
Note that during beta, you cannot connect to non-beta projects. If creating a session errors with a message about this, you need to move your project to beta.
|
|
56
70
|
|
|
57
71
|
#### 2. Look up the API (before EVERY code execution)
|
|
@@ -65,7 +79,7 @@ npx framer-dalton docs Collection.getItems # What are the parameters and return
|
|
|
65
79
|
|
|
66
80
|
#### 3. Execute code
|
|
67
81
|
|
|
68
|
-
Only after checking docs, write your code to a unique file under `{{FRAMER_TEMPORARY_DIR}}/` and execute with `-f`. Name each file `<sessionId>-<short-summary>.js` where `<short-summary>` is a brief kebab-case description (e.g., `1-read-collections.js`, `1-add-team-member.js`).
|
|
82
|
+
Only after checking docs, write your code to a unique file under `{{FRAMER_TEMPORARY_DIR}}/` and execute with `-f`. Name each file `<sessionId>-<short-summary>.js` where `<short-summary>` is a brief kebab-case description (e.g., `1-read-collections.js`, `1-add-team-member.js`).
|
|
69
83
|
|
|
70
84
|
```bash
|
|
71
85
|
npx framer-dalton exec -s 1 -f {{FRAMER_TEMPORARY_DIR}}/1-read-collections.js
|
|
@@ -81,6 +95,11 @@ Always save results you'll need again. Don't repeat API calls.
|
|
|
81
95
|
|
|
82
96
|
- Be concise. Don't narrate implementation details like field IDs, escaping, or internal steps. Just do the work and report what was accomplished in user-facing terms.
|
|
83
97
|
- Use `framer.*` for plugin API calls. Top-level methods are not globals.
|
|
98
|
+
- Before making changes that add/update/delete content that the user has not clearly and explicitly requested in this conversation, inform the user of what you plan to do and why, and ask them to confirm.
|
|
99
|
+
- You do not need to ask for confirmation when carrying out a specific add/update/delete change that the user has already clearly requested (this counts as explicit consent).
|
|
100
|
+
- You do not need to explain or ask for confirmation for non-destructive calls like reading project state.
|
|
101
|
+
- If the exact action was not agreed upon, or you are inferring a broader change or choosing between multiple reasonable options using your own judgment, ask for confirmation.
|
|
102
|
+
- Always ask for confirmation before destructive actions that the user did not explicitly request - especially deletes, cleanup, resets, or broad removals inferred by the agent.
|
|
84
103
|
|
|
85
104
|
## Context Variables
|
|
86
105
|
|
|
@@ -142,11 +161,7 @@ npx framer-dalton session list
|
|
|
142
161
|
|
|
143
162
|
## Canvas Editing
|
|
144
163
|
|
|
145
|
-
For design tasks, do not try to build or restyle pages with low-level node APIs. Instead, load the dynamically created project-scoped canvas
|
|
146
|
-
|
|
147
|
-
After session creation, load the dynamically created project-scoped skill `framer-canvas-editing-project-<projectId>` for canvas editing on the connected project. It contains the canvas editing guidance, the live agent system prompt, and the live project context for `pagePath: "/"`.
|
|
148
|
-
|
|
149
|
-
Do not call `framer.startAgentConversation()` or `framer.continueAgentConversation()` with this approach.
|
|
164
|
+
For design tasks, do not try to build or restyle pages with low-level node APIs. Instead, after session creation, load the dynamically created project-scoped skill `framer-canvas-editing-project-<projectId>` for canvas editing on the connected project. It contains the canvas editing guidance and all related documentation for how to use the relevant methods.
|
|
150
165
|
|
|
151
166
|
## Canvas Editing: Alternative Approach (“Prompt the Framer agent”)
|
|
152
167
|
|
package/package.json
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "framer-dalton",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.21",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"bin":
|
|
6
|
-
"framer-dalton": "./dist/cli.js"
|
|
7
|
-
},
|
|
5
|
+
"bin": "./dist/cli.js",
|
|
8
6
|
"main": "./dist/cli.js",
|
|
9
7
|
"types": "./dist/cli.d.ts",
|
|
10
8
|
"files": [
|
|
@@ -25,15 +23,20 @@
|
|
|
25
23
|
"@trpc/client": "^11.9.0",
|
|
26
24
|
"@trpc/server": "^11.9.0",
|
|
27
25
|
"commander": "^12.1.0",
|
|
28
|
-
"framer-api": "
|
|
26
|
+
"framer-api": "0.1.7",
|
|
29
27
|
"zod": "^4.3.6"
|
|
30
28
|
},
|
|
31
29
|
"devDependencies": {
|
|
32
30
|
"@biomejs/biome": "^2.3.13",
|
|
31
|
+
"@framerjs/framer-events": "0.0.175",
|
|
33
32
|
"@types/node": "24.10.9",
|
|
34
33
|
"tsup": "^8.0.2",
|
|
35
34
|
"tsx": "^4.19.0",
|
|
36
35
|
"typescript": "^5.9.2",
|
|
37
36
|
"vitest": "^4.0.18"
|
|
37
|
+
},
|
|
38
|
+
"packageManager": "yarn@4.13.0",
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=22"
|
|
38
41
|
}
|
|
39
42
|
}
|