@chllming/wave-orchestration 0.5.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 +41 -0
- package/README.md +549 -0
- package/docs/agents/wave-deploy-verifier-role.md +34 -0
- package/docs/agents/wave-documentation-role.md +30 -0
- package/docs/agents/wave-evaluator-role.md +43 -0
- package/docs/agents/wave-infra-role.md +34 -0
- package/docs/agents/wave-integration-role.md +32 -0
- package/docs/agents/wave-launcher-role.md +37 -0
- package/docs/context7/bundles.json +91 -0
- package/docs/plans/component-cutover-matrix.json +112 -0
- package/docs/plans/component-cutover-matrix.md +49 -0
- package/docs/plans/context7-wave-orchestrator.md +130 -0
- package/docs/plans/current-state.md +44 -0
- package/docs/plans/master-plan.md +16 -0
- package/docs/plans/migration.md +23 -0
- package/docs/plans/wave-orchestrator.md +254 -0
- package/docs/plans/waves/wave-0.md +165 -0
- package/docs/reference/github-packages-setup.md +52 -0
- package/docs/reference/migration-0.2-to-0.5.md +622 -0
- package/docs/reference/npmjs-trusted-publishing.md +55 -0
- package/docs/reference/repository-guidance.md +18 -0
- package/docs/reference/runtime-config/README.md +85 -0
- package/docs/reference/runtime-config/claude.md +105 -0
- package/docs/reference/runtime-config/codex.md +81 -0
- package/docs/reference/runtime-config/opencode.md +93 -0
- package/docs/research/agent-context-sources.md +57 -0
- package/docs/roadmap.md +626 -0
- package/package.json +53 -0
- package/releases/manifest.json +101 -0
- package/scripts/context7-api-check.sh +21 -0
- package/scripts/context7-export-env.sh +52 -0
- package/scripts/research/agent-context-archive.mjs +472 -0
- package/scripts/research/generate-agent-context-indexes.mjs +85 -0
- package/scripts/research/import-agent-context-archive.mjs +793 -0
- package/scripts/research/manifests/harness-and-blackboard-2026-03-21.mjs +201 -0
- package/scripts/wave-autonomous.mjs +13 -0
- package/scripts/wave-cli-bootstrap.mjs +27 -0
- package/scripts/wave-dashboard.mjs +11 -0
- package/scripts/wave-human-feedback.mjs +11 -0
- package/scripts/wave-launcher.mjs +11 -0
- package/scripts/wave-local-executor.mjs +13 -0
- package/scripts/wave-orchestrator/agent-state.mjs +416 -0
- package/scripts/wave-orchestrator/autonomous.mjs +367 -0
- package/scripts/wave-orchestrator/clarification-triage.mjs +605 -0
- package/scripts/wave-orchestrator/config.mjs +848 -0
- package/scripts/wave-orchestrator/context7.mjs +464 -0
- package/scripts/wave-orchestrator/coord-cli.mjs +286 -0
- package/scripts/wave-orchestrator/coordination-store.mjs +987 -0
- package/scripts/wave-orchestrator/coordination.mjs +768 -0
- package/scripts/wave-orchestrator/dashboard-renderer.mjs +254 -0
- package/scripts/wave-orchestrator/dashboard-state.mjs +473 -0
- package/scripts/wave-orchestrator/dep-cli.mjs +219 -0
- package/scripts/wave-orchestrator/docs-queue.mjs +75 -0
- package/scripts/wave-orchestrator/executors.mjs +385 -0
- package/scripts/wave-orchestrator/feedback.mjs +372 -0
- package/scripts/wave-orchestrator/install.mjs +540 -0
- package/scripts/wave-orchestrator/launcher.mjs +3879 -0
- package/scripts/wave-orchestrator/ledger.mjs +332 -0
- package/scripts/wave-orchestrator/local-executor.mjs +263 -0
- package/scripts/wave-orchestrator/replay.mjs +246 -0
- package/scripts/wave-orchestrator/roots.mjs +10 -0
- package/scripts/wave-orchestrator/routing-state.mjs +542 -0
- package/scripts/wave-orchestrator/shared.mjs +405 -0
- package/scripts/wave-orchestrator/terminals.mjs +209 -0
- package/scripts/wave-orchestrator/traces.mjs +1094 -0
- package/scripts/wave-orchestrator/wave-files.mjs +1923 -0
- package/scripts/wave.mjs +103 -0
- package/wave.config.json +115 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Runtime Configuration Reference
|
|
2
|
+
|
|
3
|
+
This directory is the canonical reference for executor configuration in Wave `0.5.x`.
|
|
4
|
+
|
|
5
|
+
Use it when you need the full supported surface for:
|
|
6
|
+
|
|
7
|
+
- `wave.config.json`
|
|
8
|
+
- `lanes.<lane>.executors`
|
|
9
|
+
- `executors.profiles.<profile>`
|
|
10
|
+
- per-agent `### Executor` blocks inside a wave file
|
|
11
|
+
|
|
12
|
+
## Naming Conventions
|
|
13
|
+
|
|
14
|
+
- `wave.config.json` uses camelCase keys such as `profileName`, `addDirs`, `settingsJson`, and `allowedHttpHookUrls`.
|
|
15
|
+
- Wave markdown `### Executor` blocks use snake_case after the runtime prefix, such as `codex.profile_name`, `codex.add_dirs`, `claude.settings_json`, and `claude.allowed_http_hook_urls`.
|
|
16
|
+
|
|
17
|
+
## Resolution Order
|
|
18
|
+
|
|
19
|
+
Executor id selection resolves in this order:
|
|
20
|
+
|
|
21
|
+
1. agent `### Executor` `id`
|
|
22
|
+
2. agent `### Executor` `profile` -> `executors.profiles.<profile>.id`
|
|
23
|
+
3. `lanes.<lane>.runtimePolicy.defaultExecutorByRole`
|
|
24
|
+
4. launcher `--executor`
|
|
25
|
+
5. `executors.default`
|
|
26
|
+
|
|
27
|
+
Runtime settings resolve in layers:
|
|
28
|
+
|
|
29
|
+
1. `executors.<runtime>` global defaults
|
|
30
|
+
2. `lanes.<lane>.executors.<runtime>` lane overrides
|
|
31
|
+
3. `executors.profiles.<profile>` or `lanes.<lane>.executors.profiles.<profile>`
|
|
32
|
+
4. agent `### Executor`
|
|
33
|
+
|
|
34
|
+
Merge behavior:
|
|
35
|
+
|
|
36
|
+
- scalar values override from later layers
|
|
37
|
+
- list values merge for profile plus agent resolution on top of the lane base
|
|
38
|
+
- lane executor overrides replace the corresponding global runtime fields before profile and agent resolution
|
|
39
|
+
- a lane profile with the same name as a global profile replaces that profile definition for the lane
|
|
40
|
+
|
|
41
|
+
## Common Fields
|
|
42
|
+
|
|
43
|
+
These fields are shared across runtimes:
|
|
44
|
+
|
|
45
|
+
| Surface | `wave.config.json` / profile key | Wave `### Executor` key | Notes |
|
|
46
|
+
| --- | --- | --- | --- |
|
|
47
|
+
| Executor id | `id` in profile only | `id` | Runtime id: `codex`, `claude`, `opencode`, `local` |
|
|
48
|
+
| Profile selection | n/a | `profile` | Selects `executors.profiles.<name>` |
|
|
49
|
+
| Model | `model` in profile, `executors.claude.model`, `executors.opencode.model` | `model` | Codex uses shared `model` from profile or agent only |
|
|
50
|
+
| Fallbacks | `fallbacks` in profile | `fallbacks` | Runtime ids used for retry-time reassignment |
|
|
51
|
+
| Tags | `tags` in profile | `tags` | Stored in resolved executor state for policy and traces |
|
|
52
|
+
| Budget turns | `budget.turns` in profile | `budget.turns` | Seeds Claude `maxTurns` and OpenCode `steps` when runtime-specific values are absent |
|
|
53
|
+
| Budget minutes | `budget.minutes` in profile | `budget.minutes` | Caps attempt timeout |
|
|
54
|
+
|
|
55
|
+
## Runtime Pages
|
|
56
|
+
|
|
57
|
+
- [codex.md](./codex.md)
|
|
58
|
+
- [claude.md](./claude.md)
|
|
59
|
+
- [opencode.md](./opencode.md)
|
|
60
|
+
|
|
61
|
+
## Generated Artifacts
|
|
62
|
+
|
|
63
|
+
Wave writes runtime artifacts here:
|
|
64
|
+
|
|
65
|
+
- live runs: `.tmp/<lane>-wave-launcher/executors/wave-<n>/<agent-slug>/`
|
|
66
|
+
- dry-run previews: `.tmp/<lane>-wave-launcher/dry-run/executors/wave-<n>/<agent-slug>/`
|
|
67
|
+
|
|
68
|
+
Common files:
|
|
69
|
+
|
|
70
|
+
- `launch-preview.json`: resolved invocation lines, env vars, and retry mode
|
|
71
|
+
- `claude-system-prompt.txt`: generated Claude harness prompt overlay
|
|
72
|
+
- `claude-settings.json`: generated Claude settings overlay when inline settings data is present
|
|
73
|
+
- `opencode-agent-prompt.txt`: generated OpenCode harness prompt overlay
|
|
74
|
+
- `opencode.json`: generated OpenCode runtime config overlay
|
|
75
|
+
|
|
76
|
+
## Recommended Validation Path
|
|
77
|
+
|
|
78
|
+
Use dry-run before relying on a new runtime configuration:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
pnpm exec wave doctor
|
|
82
|
+
pnpm exec wave launch --lane main --dry-run --no-dashboard
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Then inspect the generated preview and overlay files under `.tmp/<lane>-wave-launcher/dry-run/executors/`.
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Claude Runtime Configuration
|
|
2
|
+
|
|
3
|
+
Wave launches Claude headlessly with `claude -p --no-session-persistence`.
|
|
4
|
+
|
|
5
|
+
## Supported Configuration
|
|
6
|
+
|
|
7
|
+
| Behavior | `wave.config.json` / profile key | Wave `### Executor` key | Launch effect |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| Command | `executors.claude.command`, `executors.profiles.<name>.claude.command` | `claude.command` | Selects the executable |
|
|
10
|
+
| Default model | `executors.claude.model`, `executors.profiles.<name>.model` | `model` | Adds `--model <name>` |
|
|
11
|
+
| Agent | `executors.claude.agent`, `executors.profiles.<name>.claude.agent` | `claude.agent` | Adds `--agent <name>` |
|
|
12
|
+
| Prompt mode | `executors.claude.appendSystemPromptMode` | n/a | Uses `--append-system-prompt-file` or `--system-prompt-file` |
|
|
13
|
+
| Permission mode | `executors.claude.permissionMode`, `executors.profiles.<name>.claude.permissionMode` | `claude.permission_mode` | Adds `--permission-mode <mode>` |
|
|
14
|
+
| Permission prompt tool | `executors.claude.permissionPromptTool`, `executors.profiles.<name>.claude.permissionPromptTool` | `claude.permission_prompt_tool` | Adds `--permission-prompt-tool <tool>` |
|
|
15
|
+
| Max turns | `executors.claude.maxTurns`, `executors.profiles.<name>.claude.maxTurns` | `claude.max_turns` | Adds `--max-turns <n>` |
|
|
16
|
+
| MCP config | `executors.claude.mcpConfig`, `executors.profiles.<name>.claude.mcpConfig` | `claude.mcp_config` | Adds repeated `--mcp-config <path>` |
|
|
17
|
+
| Strict MCP mode | `executors.claude.strictMcpConfig`, `executors.profiles.<name>.claude.strictMcpConfig` | n/a | Adds `--strict-mcp-config` |
|
|
18
|
+
| Base settings file | `executors.claude.settings`, `executors.profiles.<name>.claude.settings` | `claude.settings` | Passed through `--settings` when no inline overlay is generated, or used as the base for the generated overlay |
|
|
19
|
+
| Inline settings JSON | `executors.claude.settingsJson`, `executors.profiles.<name>.claude.settingsJson` | `claude.settings_json` | Merged into generated settings overlay |
|
|
20
|
+
| Inline hooks JSON | `executors.claude.hooksJson`, `executors.profiles.<name>.claude.hooksJson` | `claude.hooks_json` | Written under top-level `hooks` in the generated settings overlay |
|
|
21
|
+
| Allowed HTTP hook URLs | `executors.claude.allowedHttpHookUrls`, `executors.profiles.<name>.claude.allowedHttpHookUrls` | `claude.allowed_http_hook_urls` | Written under top-level `allowedHttpHookUrls` in the generated settings overlay |
|
|
22
|
+
| Output format | `executors.claude.outputFormat`, `executors.profiles.<name>.claude.outputFormat` | `claude.output_format` | Adds `--output-format text|json|stream-json` |
|
|
23
|
+
| Allowed tools | `executors.claude.allowedTools`, `executors.profiles.<name>.claude.allowedTools` | `claude.allowed_tools` | Adds repeated `--allowedTools <tool>` |
|
|
24
|
+
| Disallowed tools | `executors.claude.disallowedTools`, `executors.profiles.<name>.claude.disallowedTools` | `claude.disallowed_tools` | Adds repeated `--disallowedTools <tool>` |
|
|
25
|
+
|
|
26
|
+
## Overlay Behavior
|
|
27
|
+
|
|
28
|
+
Wave always writes `claude-system-prompt.txt` for the harness runtime instructions.
|
|
29
|
+
|
|
30
|
+
Wave writes `claude-settings.json` only when at least one inline overlay input is present:
|
|
31
|
+
|
|
32
|
+
- `settingsJson`
|
|
33
|
+
- `hooksJson`
|
|
34
|
+
- `allowedHttpHookUrls`
|
|
35
|
+
|
|
36
|
+
Merge order:
|
|
37
|
+
|
|
38
|
+
1. base `claude.settings` JSON file, if provided
|
|
39
|
+
2. inline `settingsJson`
|
|
40
|
+
3. inline `hooksJson` under top-level `hooks`
|
|
41
|
+
4. inline `allowedHttpHookUrls` under top-level `allowedHttpHookUrls`
|
|
42
|
+
|
|
43
|
+
If no inline overlay data is present, Wave passes the base `claude.settings` file directly through `--settings` without generating `claude-settings.json`.
|
|
44
|
+
|
|
45
|
+
## Example: `wave.config.json`
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"executors": {
|
|
50
|
+
"profiles": {
|
|
51
|
+
"deep-review": {
|
|
52
|
+
"id": "claude",
|
|
53
|
+
"model": "claude-sonnet-4-6",
|
|
54
|
+
"budget": {
|
|
55
|
+
"turns": 10,
|
|
56
|
+
"minutes": 30
|
|
57
|
+
},
|
|
58
|
+
"claude": {
|
|
59
|
+
"agent": "reviewer",
|
|
60
|
+
"permissionMode": "plan",
|
|
61
|
+
"allowedTools": ["Read"],
|
|
62
|
+
"disallowedTools": ["Edit"]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"claude": {
|
|
67
|
+
"command": "claude",
|
|
68
|
+
"appendSystemPromptMode": "append",
|
|
69
|
+
"outputFormat": "text",
|
|
70
|
+
"settingsJson": {
|
|
71
|
+
"permissions": {
|
|
72
|
+
"allow": ["Read"]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Example: Wave `### Executor`
|
|
81
|
+
|
|
82
|
+
````md
|
|
83
|
+
### Executor
|
|
84
|
+
|
|
85
|
+
- id: claude
|
|
86
|
+
- model: claude-sonnet-4-6
|
|
87
|
+
- claude.permission_mode: plan
|
|
88
|
+
- claude.max_turns: 4
|
|
89
|
+
- claude.settings_json: {"permissions":{"allow":["Read"]}}
|
|
90
|
+
- claude.hooks_json: {"Stop":[{"command":"echo stop"}]}
|
|
91
|
+
- claude.allowed_http_hook_urls: https://example.com/hooks
|
|
92
|
+
- claude.output_format: json
|
|
93
|
+
- claude.allowed_tools: Read
|
|
94
|
+
- claude.disallowed_tools: Edit
|
|
95
|
+
````
|
|
96
|
+
|
|
97
|
+
## Dry-Run Output
|
|
98
|
+
|
|
99
|
+
For a dry run, inspect:
|
|
100
|
+
|
|
101
|
+
- `claude-system-prompt.txt`
|
|
102
|
+
- `claude-settings.json`, when generated
|
|
103
|
+
- `launch-preview.json`
|
|
104
|
+
|
|
105
|
+
`launch-preview.json` shows the final `claude -p` invocation and whether `--settings`, `--allowedTools`, `--disallowedTools`, `--mcp-config`, or `--system-prompt-file` were included.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Codex Runtime Configuration
|
|
2
|
+
|
|
3
|
+
Wave launches Codex with `codex exec` and pipes the generated task prompt through stdin.
|
|
4
|
+
|
|
5
|
+
## Supported Configuration
|
|
6
|
+
|
|
7
|
+
| Behavior | `wave.config.json` / profile key | Wave `### Executor` key | Launch effect |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| Command | `executors.codex.command`, `executors.profiles.<name>.codex.command` | `codex.command` | Selects the executable |
|
|
10
|
+
| Sandbox | `executors.codex.sandbox`, `executors.profiles.<name>.codex.sandbox` | `codex.sandbox` | Sets `--sandbox`; if absent on a selected Codex agent, launcher `--codex-sandbox` can supply the runtime default |
|
|
11
|
+
| CLI profile | `executors.codex.profileName`, `executors.profiles.<name>.codex.profileName` | `codex.profile_name` | Adds `--profile <name>` |
|
|
12
|
+
| Inline config overrides | `executors.codex.config`, `executors.profiles.<name>.codex.config` | `codex.config` | Adds repeated `-c key=value` |
|
|
13
|
+
| Search | `executors.codex.search`, `executors.profiles.<name>.codex.search` | `codex.search` | Adds `--search` |
|
|
14
|
+
| Images | `executors.codex.images`, `executors.profiles.<name>.codex.images` | `codex.images` | Adds repeated `--image <path>` |
|
|
15
|
+
| Extra directories | `executors.codex.addDirs`, `executors.profiles.<name>.codex.addDirs` | `codex.add_dirs` | Adds repeated `--add-dir <path>` |
|
|
16
|
+
| JSON mode | `executors.codex.json`, `executors.profiles.<name>.codex.json` | `codex.json` | Adds `--json` |
|
|
17
|
+
| Ephemeral session | `executors.codex.ephemeral`, `executors.profiles.<name>.codex.ephemeral` | `codex.ephemeral` | Adds `--ephemeral` |
|
|
18
|
+
| Model | `executors.profiles.<name>.model` | `model` | Adds `--model <name>` |
|
|
19
|
+
|
|
20
|
+
## Notes
|
|
21
|
+
|
|
22
|
+
- There is no `executors.codex.model` key today. Use profile `model` or per-agent `model`.
|
|
23
|
+
- `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.
|
|
24
|
+
- Relative paths are passed to Codex relative to the repository root because Wave launches the executor from the repo workspace.
|
|
25
|
+
|
|
26
|
+
## Example: `wave.config.json`
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"executors": {
|
|
31
|
+
"default": "codex",
|
|
32
|
+
"profiles": {
|
|
33
|
+
"implement-fast": {
|
|
34
|
+
"id": "codex",
|
|
35
|
+
"model": "gpt-5-codex",
|
|
36
|
+
"fallbacks": ["claude", "opencode"],
|
|
37
|
+
"budget": {
|
|
38
|
+
"turns": 12,
|
|
39
|
+
"minutes": 45
|
|
40
|
+
},
|
|
41
|
+
"codex": {
|
|
42
|
+
"profileName": "review",
|
|
43
|
+
"config": ["model_reasoning_effort=medium"],
|
|
44
|
+
"search": true
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
"codex": {
|
|
49
|
+
"command": "codex",
|
|
50
|
+
"sandbox": "danger-full-access",
|
|
51
|
+
"json": false,
|
|
52
|
+
"ephemeral": false
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Example: Wave `### Executor`
|
|
59
|
+
|
|
60
|
+
````md
|
|
61
|
+
### Executor
|
|
62
|
+
|
|
63
|
+
- id: codex
|
|
64
|
+
- model: gpt-5-codex
|
|
65
|
+
- codex.profile_name: review
|
|
66
|
+
- codex.config: model_reasoning_effort=high,model_verbosity=low
|
|
67
|
+
- codex.search: true
|
|
68
|
+
- codex.images: docs/mock-ui.png
|
|
69
|
+
- codex.add_dirs: ../shared,../infra
|
|
70
|
+
- codex.json: true
|
|
71
|
+
- codex.ephemeral: true
|
|
72
|
+
````
|
|
73
|
+
|
|
74
|
+
## Dry-Run Output
|
|
75
|
+
|
|
76
|
+
For a dry run, inspect:
|
|
77
|
+
|
|
78
|
+
- `launch-preview.json` for the final `codex exec` command
|
|
79
|
+
- any referenced prompt file under `.tmp/<lane>-wave-launcher/dry-run/prompts/`
|
|
80
|
+
|
|
81
|
+
The preview records the exact `--profile`, repeated `-c`, `--image`, and `--add-dir` flags that Wave would use in a live launch.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# OpenCode Runtime Configuration
|
|
2
|
+
|
|
3
|
+
Wave launches OpenCode with `opencode run` and points `OPENCODE_CONFIG` at a generated overlay.
|
|
4
|
+
|
|
5
|
+
## Supported Configuration
|
|
6
|
+
|
|
7
|
+
| Behavior | `wave.config.json` / profile key | Wave `### Executor` key | Launch effect |
|
|
8
|
+
| --- | --- | --- | --- |
|
|
9
|
+
| Command | `executors.opencode.command`, `executors.profiles.<name>.opencode.command` | `opencode.command` | Selects the executable |
|
|
10
|
+
| Default model | `executors.opencode.model`, `executors.profiles.<name>.model` | `model` | Adds `--model <name>` |
|
|
11
|
+
| Agent name | `executors.opencode.agent`, `executors.profiles.<name>.opencode.agent` | `opencode.agent` | Selects the injected agent name used with `--agent <name>` |
|
|
12
|
+
| Single attachment | `executors.opencode.attach`, `executors.profiles.<name>.opencode.attach` | `opencode.attach` | Adds `--attach <path>` |
|
|
13
|
+
| Multiple files | `executors.opencode.files`, `executors.profiles.<name>.opencode.files` | `opencode.files` | Adds repeated `--file <path>` |
|
|
14
|
+
| Output format | `executors.opencode.format`, `executors.profiles.<name>.opencode.format` | `opencode.format` | Adds `--format default|json` |
|
|
15
|
+
| Step limit | `executors.opencode.steps`, `executors.profiles.<name>.opencode.steps` | `opencode.steps` | Stored in the generated agent config |
|
|
16
|
+
| Instructions | `executors.opencode.instructions`, `executors.profiles.<name>.opencode.instructions` | `opencode.instructions` | Merged into top-level `instructions` in the generated overlay |
|
|
17
|
+
| Permission JSON | `executors.opencode.permission`, `executors.profiles.<name>.opencode.permission` | `opencode.permission` | Stored in the generated agent config |
|
|
18
|
+
| Config overlay JSON | `executors.opencode.configJson`, `executors.profiles.<name>.opencode.configJson` | `opencode.config_json` | Deep-merged into the generated `opencode.json` |
|
|
19
|
+
|
|
20
|
+
## Overlay Behavior
|
|
21
|
+
|
|
22
|
+
Wave always writes:
|
|
23
|
+
|
|
24
|
+
- `opencode-agent-prompt.txt`
|
|
25
|
+
- `opencode.json`
|
|
26
|
+
|
|
27
|
+
Merge order for `opencode.json`:
|
|
28
|
+
|
|
29
|
+
1. inline `configJson` from config, profile, and agent resolution
|
|
30
|
+
2. generated `$schema` if the merged config does not already define one
|
|
31
|
+
3. merged top-level `instructions`
|
|
32
|
+
4. generated or merged `agent.<resolved-name>` entry that points to `opencode-agent-prompt.txt`
|
|
33
|
+
|
|
34
|
+
Wave then exports `OPENCODE_CONFIG=<generated-path>` for the run.
|
|
35
|
+
|
|
36
|
+
## Example: `wave.config.json`
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"executors": {
|
|
41
|
+
"profiles": {
|
|
42
|
+
"ops-triage": {
|
|
43
|
+
"id": "opencode",
|
|
44
|
+
"model": "anthropic/claude-sonnet-4-20250514",
|
|
45
|
+
"budget": {
|
|
46
|
+
"turns": 8,
|
|
47
|
+
"minutes": 20
|
|
48
|
+
},
|
|
49
|
+
"opencode": {
|
|
50
|
+
"instructions": ["Keep findings concise."],
|
|
51
|
+
"permission": {
|
|
52
|
+
"task": "ask"
|
|
53
|
+
},
|
|
54
|
+
"configJson": {
|
|
55
|
+
"plugins": ["./plugins/runtime.mjs"]
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"opencode": {
|
|
61
|
+
"command": "opencode",
|
|
62
|
+
"format": "default"
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Example: Wave `### Executor`
|
|
69
|
+
|
|
70
|
+
````md
|
|
71
|
+
### Executor
|
|
72
|
+
|
|
73
|
+
- id: opencode
|
|
74
|
+
- model: anthropic/claude-sonnet-4-20250514
|
|
75
|
+
- opencode.agent: docs-runner
|
|
76
|
+
- opencode.attach: docs/plans/current-state.md
|
|
77
|
+
- opencode.files: README.md,docs/plans/current-state.md
|
|
78
|
+
- opencode.format: json
|
|
79
|
+
- opencode.steps: 6
|
|
80
|
+
- opencode.instructions: Keep shared-plan edits concise.
|
|
81
|
+
- opencode.permission: {"task":"ask"}
|
|
82
|
+
- opencode.config_json: {"plugins":["./plugins/runtime.mjs"]}
|
|
83
|
+
````
|
|
84
|
+
|
|
85
|
+
## Dry-Run Output
|
|
86
|
+
|
|
87
|
+
For a dry run, inspect:
|
|
88
|
+
|
|
89
|
+
- `opencode-agent-prompt.txt`
|
|
90
|
+
- `opencode.json`
|
|
91
|
+
- `launch-preview.json`
|
|
92
|
+
|
|
93
|
+
`launch-preview.json` shows the final `opencode run` command and the exported `OPENCODE_CONFIG` path.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Agent Context Sources"
|
|
3
|
+
summary: "Primary external sources used as inspiration for harness design, long-running agents, blackboard coordination, and repository-context evaluation."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Context Sources
|
|
7
|
+
|
|
8
|
+
This repository does not commit converted paper/article caches. Keep any hydrated local copies under `docs/research/agent-context-cache/` or another ignored cache directory.
|
|
9
|
+
|
|
10
|
+
## Harnesses and Long-Running Agents
|
|
11
|
+
|
|
12
|
+
- [Harness engineering: leveraging Codex in an agent-first world](https://openai.com/index/harness-engineering/)
|
|
13
|
+
- [Unlocking the Codex harness: how we built the App Server](https://openai.com/index/unlocking-the-codex-harness/)
|
|
14
|
+
- [Effective harnesses for long-running agents](https://www.anthropic.com/engineering/effective-harnesses-for-long-running-agents)
|
|
15
|
+
- [Building Effective AI Coding Agents for the Terminal: Scaffolding, Harness, Context Engineering, and Lessons Learned](https://arxiv.org/abs/2603.05344)
|
|
16
|
+
- [VeRO: An Evaluation Harness for Agents to Optimize Agents](https://arxiv.org/abs/2602.22480)
|
|
17
|
+
- [EvoClaw: Evaluating AI Agents on Continuous Software Evolution](https://arxiv.org/abs/2603.13428)
|
|
18
|
+
|
|
19
|
+
## Blackboard and Shared Workspaces
|
|
20
|
+
|
|
21
|
+
- [LLM-Based Multi-Agent Blackboard System for Information Discovery in Data Science](https://arxiv.org/abs/2510.01285)
|
|
22
|
+
- [Exploring Advanced LLM Multi-Agent Systems Based on Blackboard Architecture](https://arxiv.org/abs/2507.01701)
|
|
23
|
+
- [DOVA: Deliberation-First Multi-Agent Orchestration for Autonomous Research Automation](https://arxiv.org/abs/2603.13327)
|
|
24
|
+
- [SYMPHONY: Synergistic Multi-agent Planning with Heterogeneous Language Model Assembly](https://arxiv.org/abs/2601.22623)
|
|
25
|
+
- [Silo-Bench: A Scalable Environment for Evaluating Distributed Coordination in Multi-Agent LLM Systems](https://arxiv.org/abs/2603.01045)
|
|
26
|
+
- [An Open Agent Architecture](https://cdn.aaai.org/Symposia/Spring/1994/SS-94-03/SS94-03-001.pdf)
|
|
27
|
+
|
|
28
|
+
## Repo Context and Evaluation
|
|
29
|
+
|
|
30
|
+
- [Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents?](https://arxiv.org/html/2602.11988v1)
|
|
31
|
+
- [VeRO: An Evaluation Harness for Agents to Optimize Agents](https://arxiv.org/abs/2602.22480)
|
|
32
|
+
- [EvoClaw: Evaluating AI Agents on Continuous Software Evolution](https://arxiv.org/abs/2603.13428)
|
|
33
|
+
- [Silo-Bench: A Scalable Environment for Evaluating Distributed Coordination in Multi-Agent LLM Systems](https://arxiv.org/abs/2603.01045)
|
|
34
|
+
|
|
35
|
+
## Adjacent Context and Memory
|
|
36
|
+
|
|
37
|
+
- [Memory for Autonomous LLM Agents: Mechanisms, Evaluation, and Emerging Frontiers](https://arxiv.org/abs/2603.07670)
|
|
38
|
+
- [Effective context engineering for AI agents](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)
|
|
39
|
+
- [Run long horizon tasks with Codex](https://developers.openai.com/blog/run-long-horizon-tasks-with-codex/)
|
|
40
|
+
- [Prompt guidance for GPT-5](https://developers.openai.com/api/docs/guides/prompt-guidance/)
|
|
41
|
+
- [Codex Prompting Guide](https://developers.openai.com/cookbook/examples/gpt-5/codex_prompting_guide/)
|
|
42
|
+
- [Writing effective tools for agents](https://www.anthropic.com/engineering/writing-tools-for-agents)
|
|
43
|
+
- [Building effective agents](https://www.anthropic.com/engineering/building-effective-agents)
|
|
44
|
+
- [Context Engineering for AI Agents in Open-Source Software](https://arxiv.org/abs/2510.21413)
|
|
45
|
+
- [ReAct: Synergizing Reasoning and Acting in Language Models](https://arxiv.org/abs/2210.03629)
|
|
46
|
+
- [Toolformer: Language Models Can Teach Themselves to Use Tools](https://arxiv.org/abs/2302.04761)
|
|
47
|
+
- [Plan-and-Solve Prompting](https://arxiv.org/abs/2305.04091)
|
|
48
|
+
- [Augmenting Language Models with Long-Term Memory](https://arxiv.org/abs/2306.07174)
|
|
49
|
+
- [MemGPT: Towards LLMs as Operating Systems](https://arxiv.org/abs/2310.08560)
|
|
50
|
+
- [Lost in the Middle: How Language Models Use Long Contexts](https://direct.mit.edu/tacl/article/doi/10.1162/tacl_a_00638/119630/Lost-in-the-Middle-How-Language-Models-Use-Long)
|
|
51
|
+
- [ReSum: Unlocking Long-Horizon Search Intelligence via Context Summarization](https://arxiv.org/abs/2509.13313)
|
|
52
|
+
|
|
53
|
+
## Notes
|
|
54
|
+
|
|
55
|
+
- Use these sources as inspiration and comparison points, not as canonical repo policy.
|
|
56
|
+
- Context7 bundles should be narrow and task-scoped.
|
|
57
|
+
- Cached local exports belong in ignored paths only.
|