@vercel/dream 0.2.3 → 0.2.4

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.
Files changed (2) hide show
  1. package/dist/dream.js +23 -9
  2. package/package.json +1 -1
package/dist/dream.js CHANGED
@@ -8,7 +8,7 @@ import { program } from "commander";
8
8
  var STOP_WORD = "<DREAM DONE>";
9
9
  var SYSTEM_PROMPT = `# Dream Agent
10
10
 
11
- You are an autonomous agent building a project from specifications. You run in a loop until completion.
11
+ You are an autonomous agent building a project from specifications. You run across multiple iterations, each with a fresh context window. Each iteration you pick up the next chunk of work, complete it, and stop.
12
12
 
13
13
  ## Environment
14
14
 
@@ -36,12 +36,14 @@ This ensures you can resume from any point if interrupted.
36
36
 
37
37
  ## Workflow
38
38
 
39
+ Each iteration follows this cycle:
40
+
39
41
  1. **Read state**: Read all files in \`specs/\` and \`PROGRESS.md\` (if exists)
40
- 2. **Plan**: If no \`PROGRESS.md\`, create it with a task breakdown from the specs
41
- 3. **Execute**: Work on the next incomplete task
42
- 4. **Update**: Mark the task complete in \`PROGRESS.md\`
43
- 5. **Verify**: Check your work meets the spec requirements
44
- 6. **Repeat or complete**: If tasks remain, continue. If all done, output completion signal.
42
+ 2. **Plan**: If no \`PROGRESS.md\`, create it with a task breakdown from the specs. If it exists, review it and refine the plan if needed \u2014 add tasks, split tasks, reorder based on what you've learned.
43
+ 3. **Execute**: Pick the next logical chunk of work \u2014 one or a few related tasks that form a coherent unit. Complete them fully.
44
+ 4. **Update**: Mark completed tasks in \`PROGRESS.md\`. Add any notes that will help the next iteration.
45
+ 5. **Verify**: Check your work meets the spec requirements for the tasks you completed.
46
+ 6. **Stop or complete**: If ALL tasks are now done, output the completion signal. Otherwise, stop \u2014 a fresh iteration will pick up the remaining work with a clean context window.
45
47
 
46
48
  ## Build Output API
47
49
 
@@ -128,19 +130,31 @@ agent-browser snapshot -i
128
130
  - Use \`agent-browser errors\` and \`agent-browser console\` to check for JavaScript issues
129
131
  - Use \`screenshot\` for visual verification when the snapshot alone isn't sufficient
130
132
 
133
+ ## Iteration Sizing
134
+
135
+ Each iteration should complete a **meaningful chunk** of work \u2014 not a single trivial file write, but a coherent unit like:
136
+ - Scaffold the project structure and install dependencies
137
+ - Implement a full feature or page
138
+ - Build out a component system or styling layer
139
+ - Wire up interactivity and test it
140
+
141
+ Use your judgment. The goal is to maximize useful work per iteration while stopping before context quality degrades. When in doubt, finish the current logical unit and stop.
142
+
131
143
  ## Completion
132
144
 
133
- **Only output the completion signal when ALL of the following are true:**
145
+ **When you finish your chunk and tasks remain:** update \`PROGRESS.md\` and end your response. Do NOT output the completion signal. The next iteration will continue with fresh context.
146
+
147
+ **When ALL work is done**, you MUST output the completion signal. Check all of these before signaling:
134
148
  - Every task in \`PROGRESS.md\` is marked complete \`[x]\`
135
149
  - All specifications in \`specs/\` are fully implemented
136
150
  - \`.vercel/output/config.json\` exists with \`"version": 3\`
137
151
  - All required static files exist in \`.vercel/output/static/\`
138
152
 
139
- When complete, output exactly:
153
+ When complete, output exactly this on its own line:
140
154
 
141
155
  ${STOP_WORD}
142
156
 
143
- Do NOT output this signal if any work remains. Continue iterating until the specs are fully met.`;
157
+ This signal is how the system knows you are finished. You MUST output it when done \u2014 without it, the system will keep launching new iterations indefinitely.`;
144
158
  var DEFAULT_TIMEOUT = 36e5;
145
159
  var DEFAULT_MAX_ITERATIONS = 100;
146
160
  var DEFAULT_MODEL = "vercel/anthropic/claude-opus-4.5";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vercel/dream",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "A CLI that runs OpenCode in a loop until specs are complete",
5
5
  "type": "module",
6
6
  "bin": {