@velven/cli 0.3.0 → 0.5.0
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/CHANGELOG.md +130 -4
- package/README.md +122 -22
- package/dist/velven.js +1254 -184
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,135 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
Needs the Velven of the same release, which speaks only this version: update to 0.5.0. 0.3.0 and 0.4.0 can no longer
|
|
6
|
+
send a message (every send now carries an id), and no earlier version can publish without an account (each sends the
|
|
7
|
+
claim token in the finish's body too, which Velven now refuses: it takes the token only in the `x-velven-claim`
|
|
8
|
+
header). Publishing with an account is unchanged.
|
|
9
|
+
|
|
10
|
+
- A message sent while a turn runs joins that turn when the turn is writing code: "Sent to the running turn
|
|
11
|
+
(<turn>).", then the CLI follows the project until the turn ends, prints "Taken into account." once the running
|
|
12
|
+
agent has read it, the turn's reply (which says what it did with your words) and how the turn ended (exit 0 when it
|
|
13
|
+
ended done, 1 otherwise). `--detach` prints the watch command instead. A turn takes up to five such messages, within
|
|
14
|
+
its own credits and time; a message with a picture, an answer, `--effort`, a plan flag or `--build` never joins a
|
|
15
|
+
turn, so it waits and keeps them.
|
|
16
|
+
- Otherwise it waits, and the CLI says why: "Queued: the turn is not writing code now, so it runs after the turn.",
|
|
17
|
+
"the turn is finishing, so it runs next", "five messages already joined this turn", or "it runs after the turn that
|
|
18
|
+
is running" for `--queue` (always wait), a picture, an answer, `--effort`, a plan flag or `--build`. A message that joined too late to be read is queued
|
|
19
|
+
the same way ("Could not be taken this turn; queued as the next message.", or, when the project's queue is paused,
|
|
20
|
+
"queued, but the queue is paused ... Start it: velven create resume").
|
|
21
|
+
- `send` makes an id for each message and, when the send gets no answer (a dropped connection, or an error on Velven's
|
|
22
|
+
side other than a turn that could not start), sends it once more with the same id: Velven answers what it did with
|
|
23
|
+
the first, nothing is started or held twice, and the line starts with "(already sent)". The estimate and the message
|
|
24
|
+
no longer carry `queue`.
|
|
25
|
+
- `--answer <n>` answers Velven's open question with its choice n: the chip's words, or yours when you give some. The CLI
|
|
26
|
+
keeps the last question it printed, following a turn or a project, in its state file, and forgets it once any
|
|
27
|
+
message is sent to the project or a stream shows it answered or superseded; with none for the project it stops
|
|
28
|
+
with exit 2. A question now says `Answer: velven create send --answer 1 (a choice's number), or in your own
|
|
29
|
+
words.`
|
|
30
|
+
- A failed or stopped turn pauses the messages waiting on its project. `velven create resume` starts them again ("Resumed:
|
|
31
|
+
2 waiting. The first starts now: velven create watch <turn>", or "Nothing was paused."); `velven create queue` starts
|
|
32
|
+
with "Paused after a failed turn" (or "a stopped turn") and marks a message sent while a turn ran; `velven create
|
|
33
|
+
cancel` says when it paused messages, and says a running turn stopped at once (its run was gone) is stopped with
|
|
34
|
+
the credits it used, never that its credits are back. A send while the queue is paused and a turn runs says so.
|
|
35
|
+
- `velven create queue edit <id> <text>` changes a waiting message (`--build` sends it as Build it), and `velven create
|
|
36
|
+
queue move <id> <place>` moves one in line (it sends the whole order, and reads the queue again once when it changed
|
|
37
|
+
meanwhile), paused or not.
|
|
38
|
+
- `velven create versions` lists the project's versions newest first (each turn that saved the game, then 0, the
|
|
39
|
+
template), marking `head`, `rolled back` and `preview`. `velven create restore <version>` goes back or forward to one,
|
|
40
|
+
instantly and for no credits: "Went back to version 2 (commit 2222222).", "Already on version 2.", and "Its preview
|
|
41
|
+
expired; Velven is rebuilding it (no credits)." when it is. An unknown version, a restore while a turn runs and a
|
|
42
|
+
version whose files are gone exit 4.
|
|
43
|
+
- `velven create watch <project>` follows a project's whole chat: its newest turns under their headers, then each
|
|
44
|
+
message, question, plan, design, run, tool call, picture, build, playtest, review, commit (once saved, or "Not saved"
|
|
45
|
+
when its turn failed before the history held it), preview and restore as it lands, each turn's phase and end, the queue and its pause, the newest failure, and "Up to date." once caught up. It
|
|
46
|
+
reconnects from its place; Ctrl+C ends it with exit 0; `--until-idle` ends it once nothing runs and no message waits to start; `--from <n>` reads
|
|
47
|
+
what came after event n; `--json` prints each event on its line. `watch <turn>` is as before.
|
|
48
|
+
- `velven create show` says what the project is doing: "Running: coding (turn 4)", "A preview of version 2 is being
|
|
49
|
+
rebuilt.", a paused queue, and the newest turn's failure with "Try again." when sending it again may work; "Latest
|
|
50
|
+
commit" names its version. `show --json` carries the project's `summary`.
|
|
51
|
+
- A failed turn's class decides what the CLI suggests: following it prints "Try again: velven create send ... with the
|
|
52
|
+
same words." when sending it again may work, and `--json` answers carry `failure: { class, retryable }`.
|
|
53
|
+
- Pictures, screenshots and clips are printed as stable Velven links (`/api/v1/create/media/<id>`) that do not expire:
|
|
54
|
+
they open in the browser you approved the CLI from, signed in (signed out, Velven asks you to sign in first),
|
|
55
|
+
instead of signed links that lasted 15 minutes. `--json` output carries each picture, screenshot, clip and frame by
|
|
56
|
+
its media id (`media`, `frame`) only: the events and `show --json` no longer carry `url`, `frame_url`, `clip_url` or
|
|
57
|
+
`expires_at` for them.
|
|
58
|
+
- `velven create refs` reads how many messages carried each picture from every answer ("sent" for an answer without
|
|
59
|
+
the count is gone).
|
|
60
|
+
- While a turn runs on the project, `send` prints no estimate: the message joins the turn or waits, holding nothing.
|
|
61
|
+
A waiting message that was taken out of the queue, or refused as it came to start, prints "Taken out of the queue;
|
|
62
|
+
it will not run." (a send again of it says the same). A later small change's step is "Making the change".
|
|
63
|
+
- `watch <project>` prints a tool call once it has its note or has ended, a finished run's end after its tool calls and
|
|
64
|
+
pictures in a chat it reloads, "Build it: ..." only under a plan that ends its turn (never one a Build it turn drafts
|
|
65
|
+
and builds), and a restore to a later version as "Went forward to version N". `show` prints "Next turn: ..." only
|
|
66
|
+
after a turn sent with `--effort` or a plan flag.
|
|
67
|
+
|
|
68
|
+
## 0.4.0
|
|
69
|
+
|
|
70
|
+
- `velven create send` lets Velven pick how much to do when you pass neither `--effort` nor `--plan`/`--no-plan`:
|
|
71
|
+
a quick change, a full build it playtests and fixes, or a plan when you ask for one. Its line before sending reads "Velven picks how much to do: about 20 credits for a small change, at most
|
|
72
|
+
1500 held. You have 3200 available.", or on a project that never built "about 51 credits for a first build (its
|
|
73
|
+
pictures are made before the first preview)". With `--effort` or a plan flag the turn is as before; a later
|
|
74
|
+
message with neither flag is Velven's pick again (the help no longer says the flags are kept for every message).
|
|
75
|
+
- `--build` sends the message as Build it: no more questions, Velven fills in what the plan leaves open. Words beyond
|
|
76
|
+
a bare build (`--build "make it 2D"`) change the plan first, then it is built; `--build "Build it"` builds the plan as
|
|
77
|
+
it is, at once.
|
|
78
|
+
- `--ref <file>` (up to 4) uploads a reference picture (up to 10 MB) to the project and attaches it to the message:
|
|
79
|
+
the picture goes straight to Velven's storage through a link, then Velven keeps it. `--ref ref-3` sends a picture
|
|
80
|
+
the project already keeps, with no upload. A refused picture stops the CLI with Velven's sentence and exit 4, before
|
|
81
|
+
anything is sent; one over 10 MB is refused before it is uploaded.
|
|
82
|
+
- Following a turn Velven routes says "Started: Velven is choosing the work", then what it chose in words, with the
|
|
83
|
+
work and the reason on standard error. A question prints with its numbered choices and the commands that answer it.
|
|
84
|
+
- `velven create refs` lists the project's reference pictures (id, when added, size, how many messages carried each),
|
|
85
|
+
and `velven create refs rm <ref-n>` deletes one. A send whose picture finds the project's 16 full names both.
|
|
86
|
+
- A question Velven asks is printed once, with its choices: the turn's reply, the same question, is no longer printed
|
|
87
|
+
again at the end. `velven create watch <turn>` names the turn's own project in how to answer it, not the current one.
|
|
88
|
+
- A picture refused because the project has given out all 999 picture numbers stops with its own sentence and
|
|
89
|
+
`reference_numbers_used`, without the hint about removing a picture.
|
|
90
|
+
- `velven create stats` heads a routed group with its work ("quick fast first builds", "standard full later builds",
|
|
91
|
+
"quick interview turns", "quick routed plan turns"), and `velven create show --timeline` names a routed turn's work
|
|
92
|
+
and first build from its router step.
|
|
93
|
+
- `velven create new` without `--genre` makes an open game: Velven follows your idea instead of arcade's rules
|
|
94
|
+
(`--genre arcade` holds a project to them). Without `--engine`, Velven picks 2D (`phaser`) or 3D (`three`) from your
|
|
95
|
+
idea, 3D unless it is clearly 2D. A project made with `--engine` keeps its engine.
|
|
96
|
+
- A new game starts with a short conversation: Velven asks a question or two (2D or 3D, the style, at most four in
|
|
97
|
+
all), each with numbered choices and `Just build it: velven create send --build "Just build it"` (the style question
|
|
98
|
+
also offers `--ref <file>`), then sketches a short plan, printed as a card with `Build it: velven create send --build
|
|
99
|
+
"Build it"`. `velven create plan` prints the project's plan again (`--json` too).
|
|
100
|
+
- Following a build prints its plain steps ("Designing your game", "Painting the art", "Building the world", "Trying it
|
|
101
|
+
out", "Polishing", "Finishing up"), a first build's design once it is settled ("Designing <title>: <pitch>" with its
|
|
102
|
+
style and palette), and each picture as it lands ("Painted sky (1024 by 512)" and a link to it). The plan and the
|
|
103
|
+
brief as they are written are printed only with `watch --json`.
|
|
104
|
+
- A message sent while a turn runs on the project waits behind it instead of being refused (the CLI asks for that:
|
|
105
|
+
`queue=true` on the estimate, `queue: true` on the message; Velven still refuses a send that does not ask, as it
|
|
106
|
+
refused 0.3.0's): "Queued: it runs after the turn that is running. velven create queue lists what waits." (exit 0;
|
|
107
|
+
`--json` prints `{ ok, queued }`). It starts when that turn ends, and following that turn prints "Your next message
|
|
108
|
+
is running: velven create watch <turn>". `velven create queue` lists the waiting messages (and any Velven could not
|
|
109
|
+
start, with why); `velven create queue rm <id>` removes one.
|
|
110
|
+
- `velven create stats` heads a new game's plan turns "quick draft turns", and `velven create show --timeline` names a
|
|
111
|
+
draft or interview turn from its interviewer step.
|
|
112
|
+
- After a turn that ends with a playable game, following it prints "Where it could go next:" with two to four short
|
|
113
|
+
suggestions Velven wrote for this game, and the command that sends the first one; send any of them as an ordinary
|
|
114
|
+
message.
|
|
115
|
+
- `velven create usage` lists what each of your turns held and used, newest first (`--project <id>` for one project,
|
|
116
|
+
`--before <turn>` for the page before, `--json`).
|
|
117
|
+
- When Velven kept a turn quick because the day's credits would not cover more, its route line says so in words. A
|
|
118
|
+
reply may end "You're running low on credits for today." and, after a question, the CLI now prints what follows the
|
|
119
|
+
question in the reply.
|
|
120
|
+
- `velven create stats` adds a line under each group saying how the next message reacted to its turns (moved on,
|
|
121
|
+
corrected it, asked for checks), when any was labelled.
|
|
122
|
+
- On a project that never built, a message without `--build` is priced as what Velven answers it with first: "about 2
|
|
123
|
+
credits for a question or a short plan"; with `--build`, as a first build.
|
|
124
|
+
- A message sent while a turn runs that starts at once (the turn ended as it was queued) is followed as a turn ("Turn
|
|
125
|
+
<id> is on its way.", or "Turn <id> waits for room on Velven and starts on its own." when Velven's daily room holds
|
|
126
|
+
it back); one Velven refused when it came to start prints why and exits 4, instead of "Queued".
|
|
127
|
+
- "Your next message is running" names the project ("on project <id>") when the message that started waited on
|
|
128
|
+
another of your projects.
|
|
129
|
+
- When a new game's first build stops before it made the game (nothing saved, or only its design), the CLI prints
|
|
130
|
+
`Try again: velven create send --build "Build it"` under the reply.
|
|
131
|
+
|
|
132
|
+
## 0.3.0
|
|
4
133
|
|
|
5
134
|
- `velven create show --timeline` draws a turn's timeline as a text waterfall: every phase, step, model and tool call
|
|
6
135
|
with its bar, start and time, the critical path marked with `*`. `--turn <id>` picks the turn (the current project's
|
|
@@ -17,9 +146,6 @@
|
|
|
17
146
|
first build, `velven create show --timeline` calls such a turn "a quick first build", and `velven create stats` heads
|
|
18
147
|
its groups "quick first builds", "quick later builds", "quick build turns" (turns from before first builds were told
|
|
19
148
|
apart) and "quick plan turns". An older Velven's answers, without these fields, read as before.
|
|
20
|
-
|
|
21
|
-
## 0.3.0
|
|
22
|
-
|
|
23
149
|
- A version holds up to 512 MB and 5,000 files when you're signed in, so a game engine's web export fits. Without an
|
|
24
150
|
account it's still 50 MB and 1,000 files.
|
|
25
151
|
- A file over 32 MB is sent in parts of 32 MB, each through its own upload link. A dropped upload resumes where it
|
package/README.md
CHANGED
|
@@ -153,37 +153,118 @@ to pick another.
|
|
|
153
153
|
it and give you a preview link to play. It needs an account, since every turn spends credits.
|
|
154
154
|
|
|
155
155
|
```sh
|
|
156
|
-
velven create new "
|
|
157
|
-
velven create send "a
|
|
156
|
+
velven create new "Petal Drift"
|
|
157
|
+
velven create send "a cozy game where you grow a garden on a floating island"
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
| Command | What it does |
|
|
161
161
|
| --- | --- |
|
|
162
|
-
| `velven create new [title]` | Start a project. It becomes the current project. `--
|
|
163
|
-
| `velven create send <text>` | Send the current project a message. The CLI prints the estimate, asks before sending in a terminal, then follows the turn to its end |
|
|
162
|
+
| `velven create new [title]` | Start a project. It becomes the current project. Without `--genre` it is an open game: Velven follows your idea (`--genre arcade` holds it to arcade's rules). Without `--engine`, Velven picks 2D (`phaser`) or 3D (`three`) from your idea: 3D unless it is clearly 2D |
|
|
163
|
+
| `velven create send <text>` | Send the current project a message. Velven picks how much to do unless you pass `--effort` or a plan flag. The CLI prints the estimate (none while a turn runs on the project: the message joins it or waits, holding nothing), asks before sending in a terminal, then follows the turn to its end. `--build` builds now, `--ref <file>` attaches a picture (`--ref ref-3` one the project keeps), `--answer <n>` answers Velven's question with its choice n. Sent while a turn runs on the project, the message joins that turn when the turn is writing code, else waits and runs when it ends; `--queue` always waits, as does a message with `--effort`, a plan flag, `--build`, `--ref` or `--answer` |
|
|
164
|
+
| `velven create plan` | A new game's short plan: what the game is, how it plays, its look, what is in it, how it ends. `--project <id>` picks another project |
|
|
165
|
+
| `velven create queue` | The messages waiting on the project, in the order they run, whether the queue is paused, and any Velven could not start with why. `--project <id>` picks another project |
|
|
166
|
+
| `velven create queue edit <id> <text>` | Change a waiting message's words (`--build` sends it as Build it), paused or not |
|
|
167
|
+
| `velven create queue move <id> <place>` | Move a waiting message to a place in line (1 runs next), paused or not |
|
|
168
|
+
| `velven create queue rm <id>` | Remove a waiting message before it runs |
|
|
169
|
+
| `velven create resume` | Start the waiting messages again after a failed or stopped turn paused them: the first starts at once when no turn runs |
|
|
164
170
|
| `velven create watch [turn]` | Follow a turn, by default the last one you sent or watched. `--from <n>` starts from that event |
|
|
165
|
-
| `velven create
|
|
171
|
+
| `velven create watch <project>` | Follow a project's whole chat: its turns, messages, questions, pictures, previews, queue and versions, as they come. `--from <n>` reads only what came after that event, `--until-idle` ends once nothing runs on the project and no message waits to start |
|
|
172
|
+
| `velven create cancel [turn]` | Stop a turn. What it finished is saved, unused credits come back, and the messages waiting on the project pause until you resume them |
|
|
173
|
+
| `velven create versions` | The project's versions, newest first: each turn that saved the game, then 0, the template. Marks the one the project is on (`head`), the ones a restore left (`rolled back`) and those with a ready preview |
|
|
174
|
+
| `velven create restore <version>` | Go back, or forward, to a version: instant and free (no turn, no credits). When its preview has expired, Velven rebuilds it in the background, also for no credits |
|
|
166
175
|
| `velven create list` | Your projects. `*` marks the current one |
|
|
167
|
-
| `velven create show [project]` | A project, its newest turn and a fresh preview link (it works for 24 hours) |
|
|
176
|
+
| `velven create show [project]` | A project, what it is doing (the running turn's phase, a preview being rebuilt, a paused queue, the newest turn's failure), its newest turn, the version it is on and a fresh preview link (it works for 24 hours); after a turn you sent with `--effort` or a plan flag, the effort and plan mode the next such send keeps |
|
|
168
177
|
| `velven create show --timeline` | The newest turn's timeline as a waterfall (see below). `--turn <id>` picks another turn, `--all` lists every tool call |
|
|
178
|
+
| `velven create refs` | The project's reference pictures: each id, when it was added, its size and how many messages carried it. `--project <id>` picks another project |
|
|
179
|
+
| `velven create refs rm <ref-n>` | Delete a reference picture, sent or not. The messages that carried it keep its number, and the number is never given to another picture |
|
|
169
180
|
| `velven create credits` | Your credits: today's allowance, your balance, what open turns hold, and the latest entries |
|
|
181
|
+
| `velven create usage` | What each of your turns held and used, newest first. `--project <id>` keeps one project's, `--before <turn>` reads the page before (the last line names it), `--json` prints the page |
|
|
170
182
|
| `velven create stats` | For Velven's admins: p50 and p90 over recent turns. `--days <n>` (1 to 90, 7 by default), `--origin <origin>` |
|
|
171
183
|
|
|
172
184
|
`velven create send` options:
|
|
173
185
|
|
|
174
|
-
- `--effort
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
186
|
+
- Without `--effort`, `--plan` or `--no-plan`, Velven picks the turn's work from your message: a quick change, a full
|
|
187
|
+
build that it also playtests and fixes, or a plan. The CLI prints "Velven picks how much to do: about 20 credits
|
|
188
|
+
for a small change, at most 1500 held." first (on a project that never built, the figure is a first build's, and
|
|
189
|
+
the line says so); what is not spent comes back when the turn ends. Effort and plan mode then stay as the project
|
|
190
|
+
had them.
|
|
191
|
+
- A new game starts with a short conversation: Velven asks what matters most and is still open (2D or 3D, the style,
|
|
192
|
+
at most four questions in all, fewer for a specific idea), then sketches a short plan. A question comes with
|
|
193
|
+
numbered choices and how to answer it: `--answer <n>` sends choice n (its words, or yours when you give some:
|
|
194
|
+
`velven create send --answer 2 "painted, but darker"`), or send your own words, or `--build "Just build it"`; the
|
|
195
|
+
style question also takes a picture with `--ref <file>`. The CLI keeps the last question it printed (following a
|
|
196
|
+
turn or a project) in its state file, so `--answer` needs no id, and forgets it once you send the project any
|
|
197
|
+
message or a stream shows it answered or superseded; with no question kept for the project it stops with exit 2. The line names the turn's own project, also when you follow it
|
|
198
|
+
with `velven create watch` from another. The plan prints as a card (the title, the pitch, 2D or 3D and the camera,
|
|
199
|
+
how it plays, the look and palette, what is in it, how it ends, a score or not); send a change in words to reshape
|
|
200
|
+
it, or `--build "Build it"` to build it. `velven create plan` prints it again.
|
|
201
|
+
- `--build` builds now: no more questions, and Velven fills in what the plan leaves open (writing the plan first when
|
|
202
|
+
there is none). Words beyond a bare build change the plan first (`--build "make it 2D"`: the plan is written again
|
|
203
|
+
in 2D, then built); `--build "Build it"` builds the plan as it is. Velven still picks how much to do.
|
|
204
|
+
- `--ref <file>` attaches a reference picture (PNG, JPEG or WebP, up to 10 MB, up to 4 on a message): the CLI uploads
|
|
205
|
+
each to the project first (straight to Velven's storage through a link Velven gives, then Velven keeps it), then
|
|
206
|
+
sends the message with them. `--ref ref-3` sends a picture the project already keeps, by the id Velven printed when
|
|
207
|
+
it was attached, with no upload. Velven's agents read a picture's style, a character or a game's screen from it. A
|
|
208
|
+
picture Velven refuses, or one over 10 MB, stops the CLI with its sentence and exit 4, before the message is sent.
|
|
209
|
+
A project keeps up to 16 pictures. One no message carried goes a day after it was last uploaded; a sent one stays
|
|
210
|
+
until you delete it. When a project is full, the CLI says so and names `velven create refs` and
|
|
211
|
+
`velven create refs rm <ref-n>`. A project that has given out all 999 picture numbers takes no new one (exit 4,
|
|
212
|
+
`reference_numbers_used`): start a new project.
|
|
213
|
+
- `--effort quick|standard|deep` sets how much the turn may do, in place of Velven's pick. A quick turn writes and
|
|
214
|
+
builds the game. A standard turn also plays it and has its code reviewed. Deep is not available yet.
|
|
215
|
+
- `--plan` turns on plan mode, in place of Velven's pick: the turn writes or updates the project's design document and
|
|
216
|
+
changes no game files. `--no-plan` turns it off.
|
|
217
|
+
- The project keeps the effort and plan mode you last passed, for a later message that passes only one of them (with
|
|
218
|
+
`--effort` alone, a new standard or deep effort turns plan mode on, quick turns it off). A message with neither is
|
|
219
|
+
Velven's pick again, whatever you passed before; the CLI sends them only when you pass them.
|
|
179
220
|
- `--yes` sends without asking. Outside a terminal, the CLI never asks.
|
|
180
221
|
- `--detach` sends the message and returns at once. Follow the turn later with `velven create watch`.
|
|
181
222
|
- `--project <id>` sends to a project other than the current one.
|
|
223
|
+
- A message sent while a turn runs on the project joins that turn when the turn is writing code: the CLI prints "Sent
|
|
224
|
+
to the running turn (<turn>).", then follows the project until the turn ends, printing "Taken into account." once
|
|
225
|
+
the running agent has read it (from its next step; it keeps to the turn's credits and time), the turn's reply, and
|
|
226
|
+
how the turn ended (exit 0 when it ended done, 1 otherwise). The reply says what it did with your words. A turn
|
|
227
|
+
takes up to five such messages, and a message with a picture, an answer, `--effort`, a plan flag or `--build` never
|
|
228
|
+
joins a turn: those are a turn's own, so it waits and keeps them.
|
|
229
|
+
- Otherwise the message waits behind the turn (at most five a project), holding no credits, and starts on its own when
|
|
230
|
+
that turn ends; the CLI says why it did not join and exits 0: "Queued: the turn is not writing code now, so it runs
|
|
231
|
+
after the turn." (it is planning, building, playtesting, saving), "the turn is finishing, so it runs next" (it is
|
|
232
|
+
past its time or wrapping up), "five messages already joined this turn", or "it runs after the turn that is running"
|
|
233
|
+
for `--queue`, a picture, an answer, `--effort`, a plan flag or `--build`. A message that joined a turn too late to be read is queued the same way, and
|
|
234
|
+
following it prints "Could not be taken this turn; queued as the next message." A waiting message you take out of
|
|
235
|
+
the queue (or that is refused as it comes to start) shows "Taken out of the queue; it will not run." Following the turn that ends prints
|
|
236
|
+
"Your next message is running: velven create watch <turn>" (with "on project <id>" when the message that started
|
|
237
|
+
waited on another of your projects; one waiting on the same project starts first). A queued message that starts at
|
|
238
|
+
once but waits for room on Velven says "Turn <id> waits for room on Velven and starts on its own.", as any such send.
|
|
239
|
+
- A turn that fails or that you stop pauses the messages waiting on its project: they stay in line and nothing starts
|
|
240
|
+
until you run `velven create resume` (the first starts at once when no turn runs; "Resumed: 2 waiting. The first
|
|
241
|
+
starts now: velven create watch <turn>"). A message you send while the queue is paused and no turn runs starts at
|
|
242
|
+
once; one sent while a turn runs joins the paused line ("Queued, but the queue is paused...", a message the running
|
|
243
|
+
turn could not take included: "Could not be taken this turn; queued, but the queue is paused..."). `velven create queue`
|
|
244
|
+
starts with "Paused after a failed turn" (or "a stopped turn"), `queue edit` and `queue move` change the line paused
|
|
245
|
+
or not, and removing the last waiting message clears the pause. `velven create cancel` says when it paused messages.
|
|
246
|
+
- Each send carries an id the CLI makes for it. When the send gets no answer (the connection dropped, or Velven
|
|
247
|
+
answered with an error on its side), the CLI sends it once more with the same id, and Velven answers what it did
|
|
248
|
+
with the first: nothing is started or held twice, and the CLI prints "(already sent)" before its line.
|
|
182
249
|
|
|
183
250
|
The CLI says what the turn does as it goes. What the agents write goes to standard output, and their progress goes to
|
|
184
|
-
standard error.
|
|
185
|
-
|
|
186
|
-
its
|
|
251
|
+
standard error. When Velven picked the work, it says so in words first ("I'll make the change."; when the day's
|
|
252
|
+
credits kept it from a fuller turn, "I'll make the change. I kept this one quick to save credits."), with the work it
|
|
253
|
+
picked and why on standard error. On a build it prints the plain step it is at ("Designing your game", "Painting the art", "Building the world", "Trying it out", "Polishing", "Finishing up"; a later small change says "Making the change" for its work), and on a first build the design as it is settled ("Designing Petal Drift: ..." with its style and palette) and each picture once it lands ("Painted sky (1024 by 512)" with a link to look at it). You see what each step changed, the live link while the game is being built, each playtest's preview
|
|
254
|
+
link (the first playable one, before the turn ends), its screenshots and its clip. When the turn ends, it prints the reply (when the turn asked a question, which it already printed with its choices, only what follows it), then, after a turn that ended with a playable game, "Where it could go next:" with two to four short suggestions for this game and the command that sends the first (`velven create send "Add a boss at the end"`; each is an ordinary message), then the preview link and the credits used. A reply may end with one sentence on what the turn took from your pictures, and with "You're running low on credits for today." when what is left would not cover another small change. A turn that stops at
|
|
255
|
+
its credit cap or time limit saves what it finished and ends with exit 0. A failed turn costs nothing. When a new game's
|
|
256
|
+
first build stops before it made the game (it saved nothing, or only its design), the reply ends "Press Build it to try
|
|
257
|
+
again." and the CLI prints `Try again: velven create send --build "Build it"`; "try again" typed after it builds too.
|
|
258
|
+
|
|
259
|
+
Links to pictures, screenshots and clips are stable Velven links (`https://velven.ai/api/v1/create/media/<id>`) that
|
|
260
|
+
do not expire: open one in the browser you approved the CLI from, where you are signed in (signed out, Velven asks you
|
|
261
|
+
to sign in first, then shows it). A preview link carries its own 24-hour view token, as before.
|
|
262
|
+
|
|
263
|
+
A turn that fails says why in a sentence, and its class says what to do: a turn that failed for Velven's capacity, the
|
|
264
|
+
model service, the workspace or something unexpected on Velven's side may work when you send the message again (the
|
|
265
|
+
CLI prints `Try again`); one refused for credits or because its build was refused needs a change first. A failed turn
|
|
266
|
+
costs nothing. `--json` answers carry the class as `failure: { class, retryable }` (classes `credits`, `capacity`,
|
|
267
|
+
`model`, `sandbox`, `build`, `unknown`).
|
|
187
268
|
|
|
188
269
|
When Velven is busy, a turn waits for room and starts on its own. The CLI prints "Still waiting for room on Velven."
|
|
189
270
|
and keeps following it, however long it waits. If the connection drops, the CLI reconnects and carries on where it
|
|
@@ -192,6 +273,24 @@ it again.
|
|
|
192
273
|
|
|
193
274
|
Ctrl+C stops following the turn, but the turn goes on. The CLI prints how to watch or cancel it, and exits 1.
|
|
194
275
|
|
|
276
|
+
`velven create watch <project>` (any id that is not a turn number) follows the project's chat instead of one turn:
|
|
277
|
+
the newest turns so far, each under its header ("Turn 3 (done, version 2)"), then every change as it comes, saying
|
|
278
|
+
each thing once. A person's message prints as `> words` with what happened to it while a turn ran; Velven's replies,
|
|
279
|
+
questions with their choices, plans, designs, pictures with their links, commits, previews, playtests, reviews and
|
|
280
|
+
restores ("Went back to version 1") print as they land; the engine's runs, tool calls, changed files and builds go
|
|
281
|
+
to standard error. It also says each turn's phase and end, how many messages wait and whether the queue is paused, the
|
|
282
|
+
newest failure, and "Up to date." once it has caught up. It reconnects from where it left off. Ctrl+C stops watching
|
|
283
|
+
with exit 0: nothing is lost, `watch` again picks up the project as it is. `--until-idle` ends once it has caught up
|
|
284
|
+
and no turn runs, no preview is being rebuilt and no message waits to start (one waiting on a paused queue starts only
|
|
285
|
+
on `velven create resume`, so it does not count).
|
|
286
|
+
|
|
287
|
+
`velven create versions` lists the project's versions, and `velven create restore <version>` goes to one: "Went back
|
|
288
|
+
to version 2 (commit 2222222).", or "Went forward to …" for a later one. It is instant and costs nothing; the turns after it are marked rolled back and stay
|
|
289
|
+
listed, and restoring one of them goes forward again. The next message builds on the version you went to. A restore
|
|
290
|
+
waits for a running turn to end (exit 4 while one runs), and an expired preview is rebuilt in the background ("Its
|
|
291
|
+
preview expired; Velven is rebuilding it (no credits)."); a message you send meanwhile stops the rebuild and makes its
|
|
292
|
+
own preview.
|
|
293
|
+
|
|
195
294
|
While it follows a turn, the CLI also says how long things took: a step of a second or more gets a line with its
|
|
196
295
|
parts (` openWorkspace 10.9 s: sandbox.get 4.1 s, setup 0.1 s, describe 0.4 s`), each tool call's line ends with its
|
|
197
296
|
time, and the engine programmer's last line says how its run went (`Engine programmer done in 3 min 12 s: 14 model
|
|
@@ -207,17 +306,18 @@ More than 20 tool calls or screenshots under one line fold into one; `--all` lis
|
|
|
207
306
|
newest turn of the current project, or of the project you name.
|
|
208
307
|
|
|
209
308
|
`velven create stats` is for Velven's admins (anyone else is told so, with exit 4). It prints one table for each effort,
|
|
210
|
-
plan mode and
|
|
309
|
+
plan mode, engine and, for the turns Velven routed, the work it picked ("quick fast first builds", "standard full later
|
|
310
|
+
builds", "quick interview turns", "quick draft turns" for a new game's short plan) over the turns created in the last `--days` days (`--origin` keeps the turns sent from one place:
|
|
211
311
|
`web`, `api`, `cli`, `mcp` or `benchmark`): how many finished and failed, p50 and p90 of the first live link, the first
|
|
212
312
|
change, the first playable preview and the whole turn, each phase, each job's cost in credits and USD cents and its model time, and the
|
|
213
|
-
single steps worth comparing, longest first.
|
|
313
|
+
single steps worth comparing, longest first. Under a group's heading, "the next message:" says how the message after its turns reacted to them, as Velven's router labelled it (moved on, corrected it, asked for checks), when any was labelled.
|
|
214
314
|
|
|
215
|
-
With `--json`, `new`, `send`, `list`, `show`, `credits` and `stats` print one JSON object, and `send` prints only the
|
|
216
|
-
finished turn; `show --timeline --json`
|
|
217
|
-
is different: it prints each event of the turn as it comes, one JSON object per line.
|
|
315
|
+
With `--json`, `new`, `send`, `list`, `show`, `plan`, `queue`, `refs`, `versions`, `restore`, `resume`, `credits`, `usage` and `stats` print one JSON object, and `send` prints only the
|
|
316
|
+
finished turn (or the waiting message and why, `queued` and `why`; or for a message that joined a turn, the message, `steer` and the turn as it ended), with `again: true` when Velven had the send already; `show --json` carries the project's `summary`, `show --timeline --json` the turn's id and its timeline (`started_at` and the spans). `watch --json`
|
|
317
|
+
is different: it prints each event of the turn, or of the project, as it comes, one JSON object per line (the plan and the brief as they are written included, which text mode leaves out until the last).
|
|
218
318
|
|
|
219
|
-
The current project and the last
|
|
220
|
-
`VELVEN_API` points at.
|
|
319
|
+
The current project, the last turn and the last question are saved in `~/.config/velven/create.json`, one set for
|
|
320
|
+
each Velven `VELVEN_API` points at.
|
|
221
321
|
|
|
222
322
|
## Without an account
|
|
223
323
|
|
|
@@ -262,7 +362,7 @@ settings.
|
|
|
262
362
|
| 1 | Failed: the network, a server error, a failed upload, or you cancelled. For `velven create`: a turn that failed or was cancelled, or that you stopped following |
|
|
263
363
|
| 2 | A mistake in the command or in `velven.json`, such as a missing field, or a `thumbnail` or `clip` that breaks one of the rules above (`invalid_media`) |
|
|
264
364
|
| 3 | You're not signed in, or your token was refused, for something that needs an account, such as `--prod` |
|
|
265
|
-
| 4 | Refused by Velven: not your space, too large, too many files, a program, installer or coin miner in the folder (`refused_file`, before anything is uploaded), or not found. For `velven create`: not enough credits, the builder is closed,
|
|
365
|
+
| 4 | Refused by Velven: not your space, too large, too many files, a program, installer or coin miner in the folder (`refused_file`, before anything is uploaded), or not found. For `velven create`: not enough credits, the builder is closed, too many turns open or messages waiting, a restore while a turn runs, an unknown version, or the effort is not available |
|
|
266
366
|
| 5 | Rate limited: try again later |
|
|
267
367
|
| 6 | Not published: Velven refused the version, or with `--wait`, couldn't judge it |
|
|
268
368
|
|