You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add multi-adapter support (claude / codex / opencode) (#14)
* Add multi-adapter support (claude / codex / opencode)
Allow selecting the execution adapter via TRIVIA_ADAPTER env var
(or `make agent ADAPTER=codex`). This demonstrates WINK's portability
across harnesses. Default remains claude for backward compatibility.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Allow Bedrock auth for claude adapter in integration tests
The skip logic only checked ANTHROPIC_API_KEY but the agent also
supports CLAUDE_CODE_USE_BEDROCK for authentication. Accept either.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Update README to document multi-adapter support
Reflect that the same agent runs on Claude, Codex, and OpenCode
adapters. Update Quick Start, Configuration Reference, architecture
diagram, development commands, and troubleshooting sections.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
**WINK's thesis**: Harnesses keep changing (and increasingly come from vendor runtimes), but your agent definition should not. WINK makes the definition a first-class artifact you can version, review, test, and port across runtimes via adapters.
41
+
**WINK's thesis**: Harnesses keep changing (and increasingly come from vendor runtimes), but your agent definition should not. WINK makes the definition a first-class artifact you can version, review, test, and port across runtimes via adapters. This starter demonstrates that portability — the same trivia agent runs on **Claude Agent SDK**, **Codex App Server**, and **OpenCode ACP** by switching a single environment variable.
42
42
43
43
## Project Structure
44
44
@@ -84,17 +84,30 @@ make install
84
84
make redis
85
85
```
86
86
87
-
### 3. Set your API key
87
+
### 3. Configure authentication
88
+
89
+
The starter supports three execution adapters. Set up credentials for the one you plan to use:
88
90
89
91
```bash
92
+
# Claude (default) — Anthropic API or AWS Bedrock
90
93
export ANTHROPIC_API_KEY=your-api-key
94
+
# or
95
+
export CLAUDE_CODE_USE_BEDROCK=1
96
+
97
+
# Codex — requires the codex CLI on PATH
98
+
# (no extra env vars needed)
99
+
100
+
# OpenCode — requires the opencode CLI on PATH
101
+
# (no extra env vars needed)
91
102
```
92
103
93
104
### 4. Run the agent
94
105
95
106
In one terminal, start the worker:
96
107
```bash
97
-
make agent
108
+
make agent # Claude adapter (default)
109
+
make agent ADAPTER=codex # Codex adapter
110
+
make agent ADAPTER=opencode # OpenCode adapter
98
111
```
99
112
100
113
In another terminal, ask about secrets:
@@ -296,7 +309,8 @@ The evaluator checks:
296
309
297
310
| Variable | Required | Default | Description |
298
311
|----------|----------|---------|-------------|
299
-
|`ANTHROPIC_API_KEY`| Yes | - | Anthropic API key |
312
+
|`TRIVIA_ADAPTER`| No |`claude`| Adapter backend: `claude`, `codex`, or `opencode`|
313
+
|`ANTHROPIC_API_KEY`| Claude only | - | Anthropic API key (or set `CLAUDE_CODE_USE_BEDROCK`) |
300
314
|`REDIS_URL`| No |`redis://localhost:6379`| Redis connection URL |
301
315
|`TRIVIA_REQUESTS_QUEUE`| No |`trivia:requests`| Request queue name |
302
316
|`TRIVIA_EVAL_REQUESTS_QUEUE`| No |`trivia:eval:requests`| Eval queue name |
@@ -308,7 +322,9 @@ The evaluator checks:
308
322
```bash
309
323
make check # Format, lint, typecheck, test
310
324
make test# Run unit tests with coverage
311
-
make integration-test # Run integration tests (requires Redis + API key)
325
+
make integration-test # Run integration tests (default: claude adapter)
326
+
make integration-test ADAPTER=codex # Integration tests with Codex
327
+
make integration-test ADAPTER=opencode # Integration tests with OpenCode
0 commit comments