@chllming/wave-orchestration 0.7.0 → 0.7.1
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 +25 -0
- package/README.md +9 -8
- package/docs/guides/planner.md +19 -0
- package/docs/guides/terminal-surfaces.md +12 -0
- package/docs/plans/current-state.md +1 -1
- package/docs/plans/examples/wave-example-live-proof.md +1 -1
- package/docs/plans/migration.md +26 -0
- package/docs/plans/wave-orchestrator.md +4 -7
- package/docs/reference/cli-reference.md +547 -0
- package/docs/reference/coordination-and-closure.md +1 -1
- package/docs/reference/npmjs-trusted-publishing.md +2 -2
- package/docs/reference/runtime-config/README.md +2 -2
- package/docs/reference/runtime-config/codex.md +2 -1
- package/docs/reference/sample-waves.md +4 -4
- package/package.json +1 -1
- package/releases/manifest.json +24 -2
- package/scripts/wave-orchestrator/agent-state.mjs +11 -2
- package/scripts/wave-orchestrator/control-cli.mjs +112 -19
- package/scripts/wave-orchestrator/dashboard-renderer.mjs +82 -2
- package/scripts/wave-orchestrator/install.mjs +98 -3
- package/scripts/wave-orchestrator/launcher-runtime.mjs +9 -9
- package/scripts/wave-orchestrator/launcher.mjs +88 -1
- package/scripts/wave-orchestrator/terminals.mjs +1 -1
- package/scripts/wave-orchestrator/wave-files.mjs +127 -18
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "CLI Reference"
|
|
3
|
+
summary: "Complete syntax reference for all wave CLI commands, flags, and operator surfaces."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# CLI Reference
|
|
7
|
+
|
|
8
|
+
Complete syntax for every `wave` command. All commands use `pnpm exec wave` as the entry point.
|
|
9
|
+
|
|
10
|
+
## wave launch
|
|
11
|
+
|
|
12
|
+
Launch waves for execution.
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
wave launch [options]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
| Flag | Default | Description |
|
|
19
|
+
|------|---------|-------------|
|
|
20
|
+
| `--lane <name>` | `main` | Lane name |
|
|
21
|
+
| `--start-wave <n>` | `0` | First wave to launch |
|
|
22
|
+
| `--end-wave <n>` | last available | Last wave to launch |
|
|
23
|
+
| `--auto-next` | off | Start from next unfinished wave and continue |
|
|
24
|
+
| `--resume-control-state` | off | Preserve the prior auto-generated relaunch plan instead of treating the launch as a fresh wave start |
|
|
25
|
+
| `--executor <id>` | lane config | Default executor: `codex`, `claude`, `opencode`, `local` |
|
|
26
|
+
| `--codex-sandbox <mode>` | `danger-full-access` | Codex sandbox isolation level |
|
|
27
|
+
| `--timeout-minutes <n>` | `60` | Max minutes to wait per wave |
|
|
28
|
+
| `--max-retries-per-wave <n>` | `3` | Relaunch failed agents per wave |
|
|
29
|
+
| `--agent-rate-limit-retries <n>` | `3` | Per-agent retries for 429 errors |
|
|
30
|
+
| `--agent-rate-limit-base-delay-seconds <n>` | `1` | Base exponential backoff for 429 |
|
|
31
|
+
| `--agent-rate-limit-max-delay-seconds <n>` | `60` | Max backoff delay for 429 |
|
|
32
|
+
| `--agent-launch-stagger-ms <n>` | `250` | Delay between agent launches |
|
|
33
|
+
| `--terminal-surface <mode>` | configured | `tmux`, `vscode`, or `none` |
|
|
34
|
+
| `--no-dashboard` | off | Disable per-wave tmux dashboard |
|
|
35
|
+
| `--cleanup-sessions` | on | Kill lane tmux sessions after each wave |
|
|
36
|
+
| `--keep-sessions` | off | Keep lane tmux sessions |
|
|
37
|
+
| `--keep-terminals` | off | Keep temporary terminal entries |
|
|
38
|
+
| `--orchestrator-id <id>` | generated | Stable orchestrator identity |
|
|
39
|
+
| `--resident-orchestrator` | off | Launch long-running non-owning orchestrator session |
|
|
40
|
+
| `--no-telemetry` | off | Disable Wave Control event publication |
|
|
41
|
+
| `--no-context7` | off | Disable Context7 prefetch |
|
|
42
|
+
| `--dry-run` | off | Parse and validate only; do not execute |
|
|
43
|
+
| `--reconcile-status` | off | Reconcile run-state from status files and exit |
|
|
44
|
+
| `--state-file <path>` | default | Path to run-state JSON |
|
|
45
|
+
| `--manifest-out <path>` | default | Write parsed manifest JSON |
|
|
46
|
+
|
|
47
|
+
## wave autonomous
|
|
48
|
+
|
|
49
|
+
Continuous wave execution without manual wave-by-wave invocation.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
wave autonomous [options]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
| Flag | Default | Description |
|
|
56
|
+
|------|---------|-------------|
|
|
57
|
+
| `--lane <name>` | `main` | Lane name |
|
|
58
|
+
| `--executor <id>` | lane config | `codex`, `claude`, or `opencode` (not `local`) |
|
|
59
|
+
| `--codex-sandbox <mode>` | `danger-full-access` | Codex sandbox mode |
|
|
60
|
+
| `--timeout-minutes <n>` | `60` | Per-wave timeout passed to launcher |
|
|
61
|
+
| `--max-retries-per-wave <n>` | `3` | Per-wave relaunches inside launcher |
|
|
62
|
+
| `--max-attempts-per-wave <n>` | `1` | External attempts per wave |
|
|
63
|
+
| `--agent-rate-limit-retries <n>` | `3` | Per-agent 429 retries |
|
|
64
|
+
| `--agent-rate-limit-base-delay-seconds <n>` | `1` | Base 429 backoff |
|
|
65
|
+
| `--agent-rate-limit-max-delay-seconds <n>` | `60` | Max 429 backoff |
|
|
66
|
+
| `--agent-launch-stagger-ms <n>` | `250` | Delay between agent launches |
|
|
67
|
+
| `--orchestrator-id <id>` | `<lane>-autonomous` | Orchestrator identity |
|
|
68
|
+
| `--resident-orchestrator` | off | Launch resident orchestrator for each wave |
|
|
69
|
+
| `--dashboard` | off | Enable dashboards |
|
|
70
|
+
| `--keep-sessions` | off | Keep tmux sessions between waves |
|
|
71
|
+
| `--keep-terminals` | off | Keep terminal entries between waves |
|
|
72
|
+
|
|
73
|
+
## wave control
|
|
74
|
+
|
|
75
|
+
Unified operator control surface. Preferred over legacy `wave coord`, `wave retry`, and `wave proof`.
|
|
76
|
+
|
|
77
|
+
### wave control status
|
|
78
|
+
|
|
79
|
+
Read-only view: blocking edges, logical agent state, tasks, dependencies, rerun intent, proof bundles, and next timers.
|
|
80
|
+
|
|
81
|
+
When a launcher attempt is already running, `wave control status` treats that active attempt as the authoritative current fan-out. Older relaunch plans or unrelated closure blockers remain visible in the payload, but they do not override the live attempt view.
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
wave control status --lane <lane> --wave <n> [--agent <id>] [--run <id>] [--json]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### wave control telemetry
|
|
88
|
+
|
|
89
|
+
Inspect and deliver the local Wave Control event queue.
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
wave control telemetry status --lane <lane> [--run <id>] [--json]
|
|
93
|
+
wave control telemetry flush --lane <lane> [--run <id>] [--json]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### wave control task
|
|
97
|
+
|
|
98
|
+
Operator task surface for coordination records.
|
|
99
|
+
|
|
100
|
+
**Create a task:**
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
wave control task create \
|
|
104
|
+
--lane <lane> --wave <n> --agent <id> \
|
|
105
|
+
--kind <kind> --summary "<text>" \
|
|
106
|
+
[--detail "<text>"] [--target <agent-or-capability>] \
|
|
107
|
+
[--priority normal|high] [--depends-on <id>] \
|
|
108
|
+
[--artifact <ref>] [--operator <name>] [--json]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Valid `--kind` values: `request`, `blocker`, `clarification`, `handoff`, `evidence`, `claim`, `decision`, `human-input`.
|
|
112
|
+
|
|
113
|
+
Only `request`, `blocker`, `clarification`, `human-input`, and `escalation` are treated as blocking edges by `wave control status`. The rest (`handoff`, `evidence`, `claim`, `decision`) are informational.
|
|
114
|
+
|
|
115
|
+
**List tasks:**
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
wave control task list --lane <lane> --wave <n> [--agent <id>] [--json]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Get a single task:**
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
wave control task get --lane <lane> --wave <n> --id <task-id> [--json]
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Act on a task:**
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
wave control task act <action> \
|
|
131
|
+
--lane <lane> --wave <n> --id <task-id> \
|
|
132
|
+
[--detail "<text>"] [--operator <name>] [--json]
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Actions:
|
|
136
|
+
|
|
137
|
+
| Action | Extra flags | Effect |
|
|
138
|
+
|--------|------------|--------|
|
|
139
|
+
| `start` | — | Mark task in-progress |
|
|
140
|
+
| `resolve` | `[--detail]` | Close the task as resolved |
|
|
141
|
+
| `dismiss` | `[--detail]` | Close the task as not applicable |
|
|
142
|
+
| `cancel` | `[--detail]` | Cancel the task |
|
|
143
|
+
| `reassign` | `--to <agent>` | Supersede the original, reroute to a new agent |
|
|
144
|
+
| `answer` | `--response "<text>"` | Answer a human-input or escalation task |
|
|
145
|
+
| `escalate` | `[--detail]` | Escalate to human feedback queue |
|
|
146
|
+
|
|
147
|
+
**Operator answer example** (responding to a human-input escalation):
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
pnpm exec wave control task act answer \
|
|
151
|
+
--lane main --wave 4 --id escalation-clarify-a7-rollout \
|
|
152
|
+
--response "The rollout strategy is canary-then-full. Use the Railway MCP health endpoint." \
|
|
153
|
+
--operator ops-lead
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### wave control rerun
|
|
157
|
+
|
|
158
|
+
Targeted rerun intent with agent selection, reuse control, and component invalidation.
|
|
159
|
+
|
|
160
|
+
**Request a rerun:**
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
wave control rerun request \
|
|
164
|
+
--lane <lane> --wave <n> \
|
|
165
|
+
[--agent <id> ...] \
|
|
166
|
+
[--clear-reuse <id> ...] [--preserve-reuse <id> ...] \
|
|
167
|
+
[--invalidate-component <id> ...] \
|
|
168
|
+
[--resume-cursor <cursor>] \
|
|
169
|
+
[--reuse-attempt <id> ...] [--reuse-proof <id> ...] \
|
|
170
|
+
[--reuse-derived-summaries true|false] \
|
|
171
|
+
[--requested-by <name>] [--reason "<text>"] [--json]
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
`--agent` is repeatable or comma-separated. At least one of `--agent` or `--resume-cursor` is required.
|
|
175
|
+
|
|
176
|
+
**Get active rerun request:**
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
wave control rerun get --lane <lane> --wave <n> [--json]
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Clear rerun request:**
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
wave control rerun clear --lane <lane> --wave <n>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### wave control proof
|
|
189
|
+
|
|
190
|
+
Authoritative proof bundle lifecycle (active → superseded → revoked).
|
|
191
|
+
|
|
192
|
+
**Register a proof bundle:**
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
wave control proof register \
|
|
196
|
+
--lane <lane> --wave <n> --agent <id> \
|
|
197
|
+
--artifact <path> [--artifact <path> ...] \
|
|
198
|
+
[--component <id[:level]> ...] \
|
|
199
|
+
[--authoritative] [--satisfy-owned-components] \
|
|
200
|
+
[--completion <level>] [--durability <level>] [--proof-level <level>] \
|
|
201
|
+
[--doc-delta <state>] [--operator <name>] [--detail "<text>"] [--json]
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Get proof bundles:**
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
wave control proof get --lane <lane> --wave <n> [--agent <id>] [--id <bundle-id>] [--json]
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
**Supersede a bundle** (register new evidence and mark the old bundle superseded):
|
|
211
|
+
|
|
212
|
+
```
|
|
213
|
+
wave control proof supersede \
|
|
214
|
+
--lane <lane> --wave <n> --id <old-bundle-id> \
|
|
215
|
+
--agent <id> --artifact <path> [--artifact <path> ...] \
|
|
216
|
+
[same options as register] [--json]
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
**Revoke a bundle:**
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
wave control proof revoke \
|
|
223
|
+
--lane <lane> --wave <n> --id <bundle-id> \
|
|
224
|
+
[--operator <name>] [--detail "<text>"] [--json]
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## wave coord
|
|
228
|
+
|
|
229
|
+
Coordination log access. Legacy surface; prefer `wave control task` for new work.
|
|
230
|
+
|
|
231
|
+
**Post a coordination record:**
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
wave coord post \
|
|
235
|
+
--lane <lane> --wave <n> --agent <id> \
|
|
236
|
+
--kind <kind> --summary "<text>" \
|
|
237
|
+
[--detail "<text>"] [--target <agent>] \
|
|
238
|
+
[--priority normal|high] [--depends-on <id>] \
|
|
239
|
+
[--artifact <ref>] [--status <status>] [--dry-run]
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**Show materialized coordination state:**
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
wave coord show --lane <lane> --wave <n> [--dry-run] [--json]
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Render markdown board from JSONL log:**
|
|
249
|
+
|
|
250
|
+
```
|
|
251
|
+
wave coord render --lane <lane> --wave <n> [--dry-run]
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
**Compile shared summary and agent inbox:**
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
wave coord inbox --lane <lane> --wave <n> --agent <id> [--dry-run]
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**Explain why blocked or retrying:**
|
|
261
|
+
|
|
262
|
+
```
|
|
263
|
+
wave coord explain --lane <lane> --wave <n> [--agent <id>] [--json]
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Act on a coordination record:**
|
|
267
|
+
|
|
268
|
+
```
|
|
269
|
+
wave coord act <operation> --lane <lane> --wave <n> --id <id> [options]
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
| Operation | Extra flags | Effect |
|
|
273
|
+
|-----------|------------|--------|
|
|
274
|
+
| `resolve` | `[--detail]` | Resolve the record |
|
|
275
|
+
| `dismiss` | `[--detail]` | Dismiss the record |
|
|
276
|
+
| `reroute` | `--to <agent>` | Reroute to another agent |
|
|
277
|
+
| `reassign` | `--to <agent>` | Reassign to another agent |
|
|
278
|
+
| `escalate` | `[--detail]` | Escalate to human feedback |
|
|
279
|
+
| `answer-human` | `--response "<text>"` | Answer a human feedback request |
|
|
280
|
+
|
|
281
|
+
All `wave coord` subcommands accept `--run <id>` as a shorthand that sets the lane and wave to 0 for ad-hoc runs.
|
|
282
|
+
|
|
283
|
+
## wave feedback
|
|
284
|
+
|
|
285
|
+
Human feedback request queue. Final escalation layer after orchestrator-first triage.
|
|
286
|
+
|
|
287
|
+
**Create a feedback request:**
|
|
288
|
+
|
|
289
|
+
```
|
|
290
|
+
wave feedback ask \
|
|
291
|
+
--lane <lane> --wave <n> --agent <id> \
|
|
292
|
+
--question "<text>" [--context "<text>"] \
|
|
293
|
+
[--orchestrator-id <id>] [--wait] [--timeout-seconds <n>]
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Respond to a feedback request:**
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
wave feedback respond \
|
|
300
|
+
--id <request-id> --response "<text>" \
|
|
301
|
+
[--operator <name>] [--force]
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
`--force` overrides a previously answered request.
|
|
305
|
+
|
|
306
|
+
**List feedback requests:**
|
|
307
|
+
|
|
308
|
+
```
|
|
309
|
+
wave feedback list [--lane <lane>] [--wave <n>] [--agent <id>] [--pending] [--json]
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
**Watch for new requests:**
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
wave feedback watch [--lane <lane>] [--wave <n>] [--agent <id>] [--pending] [--refresh-ms <n>]
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**Show a single request:**
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
wave feedback show --id <request-id>
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## wave dep
|
|
325
|
+
|
|
326
|
+
Cross-lane dependency management.
|
|
327
|
+
|
|
328
|
+
**Post a dependency ticket:**
|
|
329
|
+
|
|
330
|
+
```
|
|
331
|
+
wave dep post \
|
|
332
|
+
--owner-lane <lane> --requester-lane <lane> \
|
|
333
|
+
--owner-wave <n> --requester-wave <n> \
|
|
334
|
+
--agent <id> --summary "<text>" \
|
|
335
|
+
[--detail "<text>"] [--target <agent>] \
|
|
336
|
+
[--artifact <ref>] [--priority normal|high] \
|
|
337
|
+
[--closure-condition "<text>"] [--required] [--json]
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
`--required` means the dependency blocks autonomous launch and lane finalization.
|
|
341
|
+
|
|
342
|
+
**Show dependencies:**
|
|
343
|
+
|
|
344
|
+
```
|
|
345
|
+
wave dep show --lane <lane> [--wave <n>] [--json]
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
**Resolve a dependency:**
|
|
349
|
+
|
|
350
|
+
```
|
|
351
|
+
wave dep resolve --lane <lane> --id <id> --agent <id> [--detail "<text>"] [--status resolved|closed]
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
**Render dependency snapshot:**
|
|
355
|
+
|
|
356
|
+
```
|
|
357
|
+
wave dep render --lane <lane> [--wave <n>] [--json]
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
## wave benchmark
|
|
361
|
+
|
|
362
|
+
Local and external benchmark execution.
|
|
363
|
+
|
|
364
|
+
**List local cases:**
|
|
365
|
+
|
|
366
|
+
```
|
|
367
|
+
wave benchmark list [--json]
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
**Show a case definition:**
|
|
371
|
+
|
|
372
|
+
```
|
|
373
|
+
wave benchmark show --case <id> [--json]
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
**Run local benchmark cases:**
|
|
377
|
+
|
|
378
|
+
```
|
|
379
|
+
wave benchmark run [--case <id>] [--family <id>] [--benchmark <id>] [--arm <id>] [--output-dir <path>] [--json]
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
**List external adapters:**
|
|
383
|
+
|
|
384
|
+
```
|
|
385
|
+
wave benchmark adapters [--json]
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
**External benchmark commands:**
|
|
389
|
+
|
|
390
|
+
```
|
|
391
|
+
wave benchmark external-list [--adapter <id>] [--json]
|
|
392
|
+
wave benchmark external-show --adapter <id> --manifest <path> [--json]
|
|
393
|
+
wave benchmark external-run --adapter <id> --manifest <path> [--arm <id>] [--model <id>] [options]
|
|
394
|
+
wave benchmark external-pilots --adapter <id> [--json]
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
## wave retry
|
|
398
|
+
|
|
399
|
+
Legacy retry control. Prefer `wave control rerun`.
|
|
400
|
+
|
|
401
|
+
**Show active retry override:**
|
|
402
|
+
|
|
403
|
+
```
|
|
404
|
+
wave retry show --lane <lane> --wave <n> [--json]
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
**Apply a retry override:**
|
|
408
|
+
|
|
409
|
+
```
|
|
410
|
+
wave retry apply --lane <lane> --wave <n> \
|
|
411
|
+
[--agent <id> ...] \
|
|
412
|
+
[--clear-reuse <id> ...] [--preserve-reuse <id> ...] \
|
|
413
|
+
[--resume-phase <phase>] \
|
|
414
|
+
[--requested-by <name>] [--reason "<text>"] [--json]
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Requires either `--agent` or `--resume-phase`.
|
|
418
|
+
|
|
419
|
+
**Clear retry override:**
|
|
420
|
+
|
|
421
|
+
```
|
|
422
|
+
wave retry clear --lane <lane> --wave <n>
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
## wave proof
|
|
426
|
+
|
|
427
|
+
Legacy proof registration. Prefer `wave control proof`.
|
|
428
|
+
|
|
429
|
+
**Show proof registry:**
|
|
430
|
+
|
|
431
|
+
```
|
|
432
|
+
wave proof show --lane <lane> --wave <n> [--agent <id>] [--json]
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
**Register proof:**
|
|
436
|
+
|
|
437
|
+
```
|
|
438
|
+
wave proof register --lane <lane> --wave <n> --agent <id> \
|
|
439
|
+
--artifact <path> [--artifact <path> ...] \
|
|
440
|
+
[--component <id[:level]> ...] \
|
|
441
|
+
[--authoritative] [--satisfy-owned-components] \
|
|
442
|
+
[--completion <level>] [--durability <level>] [--proof-level <level>] \
|
|
443
|
+
[--doc-delta <state>] [--operator <name>] [--detail "<text>"] [--json]
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
## wave local
|
|
447
|
+
|
|
448
|
+
Smoke executor for testing prompt generation and closure signal extraction.
|
|
449
|
+
|
|
450
|
+
```
|
|
451
|
+
wave local --prompt <path> [--log <path>] [--status <path>]
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
## wave dashboard
|
|
455
|
+
|
|
456
|
+
Live dashboard viewer.
|
|
457
|
+
|
|
458
|
+
```
|
|
459
|
+
wave dashboard --dashboard-file <path> [--lane <lane>] [--message-board <path>] [--watch] [--refresh-ms <n>]
|
|
460
|
+
wave dashboard --lane <lane> --attach current|global
|
|
461
|
+
```
|
|
462
|
+
|
|
463
|
+
## Workspace Commands
|
|
464
|
+
|
|
465
|
+
**Initialize workspace:**
|
|
466
|
+
|
|
467
|
+
```
|
|
468
|
+
wave init [--adopt-existing]
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
**Upgrade workspace after package update:**
|
|
472
|
+
|
|
473
|
+
```
|
|
474
|
+
wave upgrade
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
**One-command package update:**
|
|
478
|
+
|
|
479
|
+
```
|
|
480
|
+
wave self-update
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
**Show changelog since installed version:**
|
|
484
|
+
|
|
485
|
+
```
|
|
486
|
+
wave changelog [--since-installed]
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
**Health check:**
|
|
490
|
+
|
|
491
|
+
```
|
|
492
|
+
wave doctor [--json]
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
## Planner Commands
|
|
496
|
+
|
|
497
|
+
**Setup project profile:**
|
|
498
|
+
|
|
499
|
+
```
|
|
500
|
+
wave project setup
|
|
501
|
+
wave project show [--json]
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
**Draft waves:**
|
|
505
|
+
|
|
506
|
+
```
|
|
507
|
+
wave draft --wave <n> [--template implementation|qa|infra|release]
|
|
508
|
+
wave draft --agentic --task "<description>" --from-wave <n>
|
|
509
|
+
wave draft --show-run <run-id>
|
|
510
|
+
wave draft --apply-run <run-id>
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
## Ad-Hoc Task Commands
|
|
514
|
+
|
|
515
|
+
**Plan and run ad-hoc tasks:**
|
|
516
|
+
|
|
517
|
+
```
|
|
518
|
+
wave adhoc plan --task "<description>"
|
|
519
|
+
wave adhoc run --task "<description>" [--yes] [--executor <id>]
|
|
520
|
+
wave adhoc list [--json]
|
|
521
|
+
wave adhoc show --run <id> [--json]
|
|
522
|
+
wave adhoc promote --run <id> --wave <n>
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
## Common Patterns
|
|
526
|
+
|
|
527
|
+
### Lane and wave targeting
|
|
528
|
+
|
|
529
|
+
Most coordination commands accept `--lane` (default: `main`) and `--wave` (required). For ad-hoc runs, use `--run <id>` which sets the lane and defaults wave to 0.
|
|
530
|
+
|
|
531
|
+
### JSON output
|
|
532
|
+
|
|
533
|
+
Most commands accept `--json` for machine-readable output.
|
|
534
|
+
|
|
535
|
+
### Operator attribution
|
|
536
|
+
|
|
537
|
+
Commands that modify state accept `--operator <name>` (default: `human-operator`) for audit trails.
|
|
538
|
+
|
|
539
|
+
### Repeatable flags
|
|
540
|
+
|
|
541
|
+
Flags like `--agent`, `--artifact`, `--component`, `--target`, and `--depends-on` can be repeated or comma-separated:
|
|
542
|
+
|
|
543
|
+
```bash
|
|
544
|
+
# These are equivalent:
|
|
545
|
+
wave control rerun request --lane main --wave 0 --agent A2 --agent A7
|
|
546
|
+
wave control rerun request --lane main --wave 0 --agent A2,A7
|
|
547
|
+
```
|
|
@@ -164,7 +164,7 @@ What happens next:
|
|
|
164
164
|
- that assignment is written into the assignment snapshot
|
|
165
165
|
- the shared summary and A8 inbox now show the open helper work
|
|
166
166
|
|
|
167
|
-
`wave control task list` and `wave control task get` surface both blocking and informative coordination kinds. `wave control status` only turns `request`, `blocker`, `clarification-request`, `human-feedback`, and `human-escalation` into blocking task edges; plain `handoff`, `evidence`, `claim`, and `decision` records stay visible without falsely blocking the owner.
|
|
167
|
+
`wave control task list` and `wave control task get` surface both blocking and informative coordination kinds. `wave control status` only turns `request`, `blocker`, `clarification-request`, `human-feedback`, and `human-escalation` into blocking task edges; plain `handoff`, `evidence`, `claim`, and `decision` records stay visible without falsely blocking the owner. When a launcher attempt is already running, status scopes the top-level blocking edge to that active attempt instead of letting stale relaunch metadata or unrelated closure tasks dominate the wave-level view.
|
|
168
168
|
|
|
169
169
|
### Step 3: Why A1 Can Be Done But The Wave Is Still Blocked
|
|
170
170
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This repo now includes a dedicated npmjs publish workflow at [publish-npm.yml](../../.github/workflows/publish-npm.yml).
|
|
4
4
|
|
|
5
|
-
The current `0.7.
|
|
5
|
+
The current `0.7.1` release procedure publishes through a repository Actions secret named `NPM_TOKEN`.
|
|
6
6
|
|
|
7
7
|
## What This Repo Already Does
|
|
8
8
|
|
|
@@ -47,6 +47,6 @@ If this repo later needs private npm dependencies during CI, consider a separate
|
|
|
47
47
|
1. Confirm [publish-npm.yml](../../.github/workflows/publish-npm.yml) is on the default branch.
|
|
48
48
|
2. Confirm `NPM_TOKEN` exists in the GitHub repo secrets.
|
|
49
49
|
3. Confirm the package version has been bumped and committed.
|
|
50
|
-
4. Push the release commit and release tag, for example `v0.7.
|
|
50
|
+
4. Push the release commit and release tag, for example `v0.7.1`.
|
|
51
51
|
5. Verify both `publish-npm.yml` and `publish-package.yml` start from the tag push.
|
|
52
52
|
6. Verify the npmjs publish completes successfully for the tagged source.
|
|
@@ -141,7 +141,7 @@ Wave writes runtime artifacts here:
|
|
|
141
141
|
|
|
142
142
|
Common files:
|
|
143
143
|
|
|
144
|
-
- `launch-preview.json`: resolved invocation lines, env vars, retry mode, and structured attempt/turn-limit metadata
|
|
144
|
+
- `launch-preview.json`: resolved invocation lines, env vars, retry mode, and structured attempt/turn-limit metadata for both dry-run and live launches
|
|
145
145
|
- `skills.resolved.md`: compact metadata-first skill catalog for the selected agent and runtime
|
|
146
146
|
- `skills.expanded.md`: full canonical/debug skill payload with `SKILL.md` bodies and adapters
|
|
147
147
|
- `skills.metadata.json`: resolved skill ids, activation metadata, permissions, hashes, and generated artifact paths
|
|
@@ -161,7 +161,7 @@ Runtime-specific delivery:
|
|
|
161
161
|
- OpenCode injects the compact catalog into `opencode.json` and attaches `skill.json`, `SKILL.md`, the selected adapter, and recursive `references/**` files through `--file`.
|
|
162
162
|
- Local keeps skills prompt-only.
|
|
163
163
|
|
|
164
|
-
`launch-preview.json` also records the resolved skill metadata plus a `limits` section. For Claude and OpenCode, that section reports the known turn ceiling and whether it came from the runtime-specific setting or generic `budget.turns`. For Codex, it explicitly records that Wave emitted no turn-limit flag and that any effective ceiling may come from the selected Codex profile or upstream runtime.
|
|
164
|
+
`launch-preview.json` also records the resolved skill metadata plus a `limits` section. For Claude and OpenCode, that section reports the known turn ceiling and whether it came from the runtime-specific setting or generic `budget.turns`. For Codex, it explicitly records that Wave emitted no turn-limit flag and that any effective ceiling may come from the selected Codex profile or upstream runtime. If a live Codex run later terminates with a visible `Reached max turns (N)` log line, Wave appends that observed ceiling back into the live `launch-preview.json` as runtime evidence rather than pretending Wave set it.
|
|
165
165
|
|
|
166
166
|
## Recommended Validation Path
|
|
167
167
|
|
|
@@ -21,6 +21,7 @@ Wave launches Codex with `codex exec` and pipes the generated task prompt throug
|
|
|
21
21
|
|
|
22
22
|
- There is no `executors.codex.model` key today. Use profile `model` or per-agent `model`.
|
|
23
23
|
- Generic `budget.turns` does not set a Codex turn limit. If Codex stops on a turn ceiling, that limit came from the selected Codex profile or upstream Codex runtime, not from a Wave-emitted CLI flag.
|
|
24
|
+
- Live runs still write `launch-preview.json`. If Codex later logs `Reached max turns (N)`, Wave records that observed ceiling under `limits.observedTurnLimit` with source `runtime-log`.
|
|
24
25
|
- `codex.images`, `codex.add_dirs`, and `codex.config` accept either a string array in `wave.config.json` or a comma-separated list in a wave file.
|
|
25
26
|
- Relative paths are passed to Codex relative to the repository root because Wave launches the executor from the repo workspace.
|
|
26
27
|
|
|
@@ -78,4 +79,4 @@ For a dry run, inspect:
|
|
|
78
79
|
- `launch-preview.json` for the final `codex exec` command
|
|
79
80
|
- any referenced prompt file under `.tmp/<lane>-wave-launcher/dry-run/prompts/`
|
|
80
81
|
|
|
81
|
-
The preview records the exact `--profile`, repeated `-c`, `--image`, and `--add-dir` flags that Wave would use in a live launch. It also includes a `limits` block that makes Wave's Codex visibility explicit: `turnLimitSource: "not-set-by-wave"` means Wave emitted no Codex turn-limit flag, so any effective ceiling is external to the Wave CLI invocation.
|
|
82
|
+
The preview records the exact `--profile`, repeated `-c`, `--image`, and `--add-dir` flags that Wave would use in a live launch. It also includes a `limits` block that makes Wave's Codex visibility explicit: `turnLimitSource: "not-set-by-wave"` means Wave emitted no Codex turn-limit flag, so any effective ceiling is external to the Wave CLI invocation. On a live run, that same preview file may later gain `observedTurnLimit` if the Codex runtime reports the ceiling in its log output.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Sample Waves"
|
|
3
|
-
summary: "Showcase-first sample waves that demonstrate the current 0.7.
|
|
3
|
+
summary: "Showcase-first sample waves that demonstrate the current 0.7.1 Wave surface."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Sample Waves
|
|
7
7
|
|
|
8
|
-
This guide points to showcase-first sample waves that demonstrate the current `0.7.
|
|
8
|
+
This guide points to showcase-first sample waves that demonstrate the current `0.7.1` authored Wave surface.
|
|
9
9
|
|
|
10
10
|
The examples are intentionally denser than typical production waves. Their job is to teach the current authoring and runtime surface quickly, not to be the smallest possible launch-ready files.
|
|
11
11
|
|
|
@@ -15,7 +15,7 @@ The examples are intentionally denser than typical production waves. Their job i
|
|
|
15
15
|
Shows what a good `repo-landed` outcome looks like when one promoted component only closes honestly if desired-state records, reconcile-loop substrate, and cluster-view surfaces land together. It emphasizes maturity discipline, explicit deliverables, and shared-plan closure without drifting into `pilot-live` claims.
|
|
16
16
|
|
|
17
17
|
- [Full modern sample wave](../plans/examples/wave-example-live-proof.md)
|
|
18
|
-
Shows the combined `0.7.
|
|
18
|
+
Shows the combined `0.7.1` authored surface in one file: closure roles, `E0`, optional security review, delegated and pinned benchmark targets, richer executor config, `### Skills`, `### Capabilities`, `### Deliverables`, `### Exit contract`, `### Proof artifacts`, sticky retry, deploy environments, and proof-first live-wave structure.
|
|
19
19
|
|
|
20
20
|
## What These Examples Teach
|
|
21
21
|
|
|
@@ -38,7 +38,7 @@ The examples are intentionally denser than typical production waves. Their job i
|
|
|
38
38
|
|
|
39
39
|
## Feature Coverage Map
|
|
40
40
|
|
|
41
|
-
Together these samples cover the main surfaces added or hardened for `0.7.
|
|
41
|
+
Together these samples cover the main surfaces added or hardened for `0.7.1`:
|
|
42
42
|
|
|
43
43
|
- repo-landed maturity discipline and anti-overclaim framing
|
|
44
44
|
- explicit shared-plan closure for future-wave safety
|