opencode-athena 0.2.0 → 0.3.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/README.md +141 -4
- package/config/presets/copilot-only.json +38 -0
- package/config/presets/enterprise.json +11 -2
- package/config/presets/minimal.json +8 -2
- package/config/presets/solo-quick.json +8 -2
- package/config/presets/standard.json +11 -2
- package/config/schemas/athena.schema.json +92 -2
- package/dist/cli/index.js +273 -19
- package/dist/cli/index.js.map +1 -1
- package/dist/index.d.ts +427 -4
- package/dist/index.js +152 -4
- package/dist/index.js.map +1 -1
- package/dist/plugin/index.js +152 -4
- package/dist/plugin/index.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -43,6 +43,7 @@ The interactive installer will:
|
|
|
43
43
|
- Claude Pro/Max (recommended)
|
|
44
44
|
- ChatGPT Plus/Pro
|
|
45
45
|
- Google/Gemini
|
|
46
|
+
- GitHub Copilot (Free/Pro/Pro+/Business/Enterprise)
|
|
46
47
|
|
|
47
48
|
## Commands
|
|
48
49
|
|
|
@@ -192,16 +193,152 @@ Configuration files are stored in `~/.config/opencode/`:
|
|
|
192
193
|
Use `--preset` during installation:
|
|
193
194
|
|
|
194
195
|
```bash
|
|
195
|
-
npx opencode-athena install --preset minimal
|
|
196
|
-
npx opencode-athena install --preset standard
|
|
197
|
-
npx opencode-athena install --preset enterprise
|
|
198
|
-
npx opencode-athena install --preset solo-quick
|
|
196
|
+
npx opencode-athena install --preset minimal # Bare essentials
|
|
197
|
+
npx opencode-athena install --preset standard # Recommended (default)
|
|
198
|
+
npx opencode-athena install --preset enterprise # Full features
|
|
199
|
+
npx opencode-athena install --preset solo-quick # Solo dev quick flow
|
|
200
|
+
npx opencode-athena install --preset copilot-only # GitHub Copilot users
|
|
199
201
|
```
|
|
200
202
|
|
|
201
203
|
### Project Overrides
|
|
202
204
|
|
|
203
205
|
Create `.opencode/athena.json` in your project root to override global settings.
|
|
204
206
|
|
|
207
|
+
### Model Settings
|
|
208
|
+
|
|
209
|
+
Athena provides fine-grained control over model behavior through `temperature` and `thinkingLevel` settings. These can be configured per agent role in `athena.json`:
|
|
210
|
+
|
|
211
|
+
```json
|
|
212
|
+
{
|
|
213
|
+
"models": {
|
|
214
|
+
"settings": {
|
|
215
|
+
"sisyphus": {
|
|
216
|
+
"temperature": 0.3,
|
|
217
|
+
"thinkingLevel": "medium"
|
|
218
|
+
},
|
|
219
|
+
"oracle": {
|
|
220
|
+
"thinkingLevel": "high"
|
|
221
|
+
},
|
|
222
|
+
"librarian": {
|
|
223
|
+
"temperature": 0.2
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Temperature** controls response randomness. Valid range is provider-specific:
|
|
231
|
+
- Anthropic: 0.0-1.0
|
|
232
|
+
- OpenAI: 0.0-2.0
|
|
233
|
+
- Google: 0.0-2.0
|
|
234
|
+
- GitHub Copilot: Not supported
|
|
235
|
+
|
|
236
|
+
Lower values = more focused, higher = more creative. Defaults are model-family-aware and clamped to valid ranges.
|
|
237
|
+
|
|
238
|
+
**ThinkingLevel** controls reasoning depth for supported models:
|
|
239
|
+
- `"low"` - Quick responses, minimal reasoning
|
|
240
|
+
- `"medium"` - Balanced (default)
|
|
241
|
+
- `"high"` - Deep reasoning, slower
|
|
242
|
+
|
|
243
|
+
ThinkingLevel maps to provider-specific parameters:
|
|
244
|
+
| Provider | Parameter | Values |
|
|
245
|
+
|----------|-----------|--------|
|
|
246
|
+
| Anthropic | `thinking.budget_tokens` | 4096 / 16384 / 32768 |
|
|
247
|
+
| OpenAI | `reasoning_effort` | `"low"` / `"medium"` / `"high"` |
|
|
248
|
+
| Google | `thinking_level` | `"low"` / `"medium"` / `"high"` |
|
|
249
|
+
|
|
250
|
+
Note: Temperature and thinkingLevel are not supported for GitHub Copilot-routed models.
|
|
251
|
+
|
|
252
|
+
### Custom Models
|
|
253
|
+
|
|
254
|
+
Add custom models to use models not in the built-in list. Custom models can override built-in models or add entirely new ones:
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"models": {
|
|
259
|
+
"sisyphus": "custom/my-finetuned-model",
|
|
260
|
+
"custom": [
|
|
261
|
+
{
|
|
262
|
+
"id": "custom/my-finetuned-model",
|
|
263
|
+
"name": "My Fine-tuned Model",
|
|
264
|
+
"provider": "openai",
|
|
265
|
+
"description": "Custom fine-tuned GPT for our codebase",
|
|
266
|
+
"capabilities": {
|
|
267
|
+
"thinking": false,
|
|
268
|
+
"contextWindow": 128000,
|
|
269
|
+
"supportsTemperature": true
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"id": "anthropic/claude-4-opus",
|
|
274
|
+
"name": "Claude 4 Opus (Override)",
|
|
275
|
+
"provider": "anthropic",
|
|
276
|
+
"description": "Override built-in model with custom settings"
|
|
277
|
+
}
|
|
278
|
+
]
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Custom model fields:
|
|
284
|
+
- `id` (required): Unique identifier, format: `provider/model-name`
|
|
285
|
+
- `name` (required): Display name
|
|
286
|
+
- `provider` (required): `"anthropic"`, `"openai"`, `"google"`, or `"github-copilot"`
|
|
287
|
+
- `description`: Optional description
|
|
288
|
+
- `capabilities`: Optional capability hints
|
|
289
|
+
- `thinking`: Whether the model supports extended thinking
|
|
290
|
+
- `contextWindow`: Context window size in tokens
|
|
291
|
+
- `supportsTemperature`: Whether temperature can be adjusted
|
|
292
|
+
|
|
293
|
+
## GitHub Copilot Support
|
|
294
|
+
|
|
295
|
+
Athena supports GitHub Copilot as a model provider, allowing you to use Claude, GPT, and Gemini models through your Copilot subscription. This is especially useful for enterprise users who only have access to LLMs through Copilot.
|
|
296
|
+
|
|
297
|
+
### Setup
|
|
298
|
+
|
|
299
|
+
1. Run the installer and select "GitHub Copilot" when asked about subscriptions
|
|
300
|
+
2. Select your Copilot plan level (determines available models)
|
|
301
|
+
3. After installation, authenticate:
|
|
302
|
+
```bash
|
|
303
|
+
opencode auth login github-copilot
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
Or use the `copilot-only` preset:
|
|
307
|
+
```bash
|
|
308
|
+
npx opencode-athena install --preset copilot-only
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Plan Levels and Models
|
|
312
|
+
|
|
313
|
+
Model availability depends on your GitHub Copilot plan:
|
|
314
|
+
|
|
315
|
+
| Plan | Claude Models | GPT Models | Gemini Models |
|
|
316
|
+
|------|---------------|------------|---------------|
|
|
317
|
+
| **Free** | Haiku 4.5 | GPT-4.1, GPT-5-mini | - |
|
|
318
|
+
| **Pro** | Haiku 4.5, Sonnet 4, Sonnet 4.5 | GPT-4.1, GPT-5, GPT-5-mini, GPT-5.1, GPT-5.1-codex, GPT-5.2 | Gemini 2.5 Pro, Gemini 3 Flash, Gemini 3 Pro |
|
|
319
|
+
| **Pro+** | All Pro models + Opus 4.1, Opus 4.5 | All Pro models | All Pro models |
|
|
320
|
+
| **Business** | Haiku 4.5, Sonnet 4, Sonnet 4.5 | GPT-4.1, GPT-5, GPT-5-mini, GPT-5.1, GPT-5.1-codex, GPT-5.2 | Gemini 2.5 Pro, Gemini 3 Flash, Gemini 3 Pro |
|
|
321
|
+
| **Enterprise** | All Pro models + Opus 4.1, Opus 4.5 | All Pro models | All Pro models |
|
|
322
|
+
|
|
323
|
+
### How It Works
|
|
324
|
+
|
|
325
|
+
GitHub Copilot acts as a proxy to multiple LLM providers. When you configure a Copilot-routed model (e.g., `github-copilot/claude-sonnet-4`), requests are sent through GitHub's API.
|
|
326
|
+
|
|
327
|
+
**Naming convention:** Copilot-routed models use the format `github-copilot/{model}` (e.g., `github-copilot/gpt-4o`).
|
|
328
|
+
|
|
329
|
+
**Priority behavior:** If you have both direct provider access and Copilot access (e.g., Claude Pro + Copilot), Athena prefers direct provider models for better feature support.
|
|
330
|
+
|
|
331
|
+
### Limitations
|
|
332
|
+
|
|
333
|
+
Models accessed through GitHub Copilot have some limitations compared to direct provider access:
|
|
334
|
+
|
|
335
|
+
- **No temperature control**: Copilot strips temperature parameters
|
|
336
|
+
- **No thinking/reasoning modes**: Extended thinking (Claude), reasoning effort (OpenAI), and thinking level (Google) are not supported
|
|
337
|
+
- **Rate limits**: Subject to Copilot's rate limits rather than provider limits
|
|
338
|
+
- **Feature lag**: New model features may not be immediately available
|
|
339
|
+
|
|
340
|
+
For full model capabilities, use direct provider subscriptions when possible.
|
|
341
|
+
|
|
205
342
|
## Architecture
|
|
206
343
|
|
|
207
344
|
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "../schemas/athena.schema.json",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "Configuration for users with only GitHub Copilot access (Business/Enterprise)",
|
|
5
|
+
"subscriptions": {
|
|
6
|
+
"claude": { "enabled": false, "tier": "none" },
|
|
7
|
+
"openai": { "enabled": false },
|
|
8
|
+
"google": { "enabled": false, "authMethod": "none" },
|
|
9
|
+
"githubCopilot": { "enabled": true, "plan": "business" }
|
|
10
|
+
},
|
|
11
|
+
"models": {
|
|
12
|
+
"sisyphus": "github-copilot/claude-sonnet-4.5",
|
|
13
|
+
"oracle": "github-copilot/gpt-5.1",
|
|
14
|
+
"librarian": "github-copilot/claude-haiku-4.5",
|
|
15
|
+
"frontend": "github-copilot/claude-sonnet-4.5",
|
|
16
|
+
"documentWriter": "github-copilot/gemini-2.5-pro",
|
|
17
|
+
"multimodalLooker": "github-copilot/gemini-2.5-pro"
|
|
18
|
+
},
|
|
19
|
+
"bmad": {
|
|
20
|
+
"defaultTrack": "bmad-method",
|
|
21
|
+
"autoStatusUpdate": true,
|
|
22
|
+
"parallelStoryLimit": 3
|
|
23
|
+
},
|
|
24
|
+
"features": {
|
|
25
|
+
"bmadBridge": true,
|
|
26
|
+
"autoStatus": true,
|
|
27
|
+
"parallelExecution": true,
|
|
28
|
+
"notifications": true,
|
|
29
|
+
"contextMonitor": true,
|
|
30
|
+
"commentChecker": true,
|
|
31
|
+
"lspTools": true
|
|
32
|
+
},
|
|
33
|
+
"mcps": {
|
|
34
|
+
"context7": true,
|
|
35
|
+
"exa": true,
|
|
36
|
+
"grepApp": true
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
"subscriptions": {
|
|
6
6
|
"claude": { "enabled": true, "tier": "max20x" },
|
|
7
7
|
"openai": { "enabled": true },
|
|
8
|
-
"google": { "enabled": true, "authMethod": "antigravity" }
|
|
8
|
+
"google": { "enabled": true, "authMethod": "antigravity" },
|
|
9
|
+
"githubCopilot": { "enabled": false, "plan": "none" }
|
|
9
10
|
},
|
|
10
11
|
"models": {
|
|
11
12
|
"sisyphus": "anthropic/claude-opus-4-5-thinking",
|
|
@@ -13,7 +14,15 @@
|
|
|
13
14
|
"librarian": "anthropic/claude-sonnet-4-5-thinking",
|
|
14
15
|
"frontend": "google/gemini-2.5-pro",
|
|
15
16
|
"documentWriter": "anthropic/claude-opus-4-5",
|
|
16
|
-
"multimodalLooker": "google/gemini-2.5-pro"
|
|
17
|
+
"multimodalLooker": "google/gemini-2.5-pro",
|
|
18
|
+
"settings": {
|
|
19
|
+
"sisyphus": { "thinkingLevel": "high" },
|
|
20
|
+
"oracle": { "thinkingLevel": "high" },
|
|
21
|
+
"librarian": { "thinkingLevel": "medium" },
|
|
22
|
+
"frontend": { "temperature": 0.5 },
|
|
23
|
+
"documentWriter": { "temperature": 0.4 },
|
|
24
|
+
"multimodalLooker": { "temperature": 0.2 }
|
|
25
|
+
}
|
|
17
26
|
},
|
|
18
27
|
"bmad": {
|
|
19
28
|
"defaultTrack": "enterprise",
|
|
@@ -5,12 +5,18 @@
|
|
|
5
5
|
"subscriptions": {
|
|
6
6
|
"claude": { "enabled": true, "tier": "pro" },
|
|
7
7
|
"openai": { "enabled": false },
|
|
8
|
-
"google": { "enabled": false, "authMethod": "none" }
|
|
8
|
+
"google": { "enabled": false, "authMethod": "none" },
|
|
9
|
+
"githubCopilot": { "enabled": false, "plan": "none" }
|
|
9
10
|
},
|
|
10
11
|
"models": {
|
|
11
12
|
"sisyphus": "anthropic/claude-sonnet-4-5",
|
|
12
13
|
"oracle": "anthropic/claude-sonnet-4-5",
|
|
13
|
-
"librarian": "anthropic/claude-sonnet-4-5"
|
|
14
|
+
"librarian": "anthropic/claude-sonnet-4-5",
|
|
15
|
+
"settings": {
|
|
16
|
+
"sisyphus": { "temperature": 0.2 },
|
|
17
|
+
"oracle": { "temperature": 0.1 },
|
|
18
|
+
"librarian": { "temperature": 0.3 }
|
|
19
|
+
}
|
|
14
20
|
},
|
|
15
21
|
"bmad": {
|
|
16
22
|
"defaultTrack": "quick-flow",
|
|
@@ -5,12 +5,18 @@
|
|
|
5
5
|
"subscriptions": {
|
|
6
6
|
"claude": { "enabled": true, "tier": "max5x" },
|
|
7
7
|
"openai": { "enabled": false },
|
|
8
|
-
"google": { "enabled": false, "authMethod": "none" }
|
|
8
|
+
"google": { "enabled": false, "authMethod": "none" },
|
|
9
|
+
"githubCopilot": { "enabled": false, "plan": "none" }
|
|
9
10
|
},
|
|
10
11
|
"models": {
|
|
11
12
|
"sisyphus": "anthropic/claude-sonnet-4-5-thinking",
|
|
12
13
|
"oracle": "anthropic/claude-sonnet-4-5-thinking",
|
|
13
|
-
"librarian": "anthropic/claude-sonnet-4-5"
|
|
14
|
+
"librarian": "anthropic/claude-sonnet-4-5",
|
|
15
|
+
"settings": {
|
|
16
|
+
"sisyphus": { "thinkingLevel": "medium" },
|
|
17
|
+
"oracle": { "thinkingLevel": "high" },
|
|
18
|
+
"librarian": { "temperature": 0.3 }
|
|
19
|
+
}
|
|
14
20
|
},
|
|
15
21
|
"bmad": {
|
|
16
22
|
"defaultTrack": "quick-flow",
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
"subscriptions": {
|
|
6
6
|
"claude": { "enabled": true, "tier": "max5x" },
|
|
7
7
|
"openai": { "enabled": true },
|
|
8
|
-
"google": { "enabled": true, "authMethod": "antigravity" }
|
|
8
|
+
"google": { "enabled": true, "authMethod": "antigravity" },
|
|
9
|
+
"githubCopilot": { "enabled": false, "plan": "none" }
|
|
9
10
|
},
|
|
10
11
|
"models": {
|
|
11
12
|
"sisyphus": "anthropic/claude-sonnet-4-5-thinking",
|
|
@@ -13,7 +14,15 @@
|
|
|
13
14
|
"librarian": "anthropic/claude-sonnet-4-5",
|
|
14
15
|
"frontend": "anthropic/claude-sonnet-4-5",
|
|
15
16
|
"documentWriter": "google/gemini-2.5-pro",
|
|
16
|
-
"multimodalLooker": "google/gemini-2.5-flash"
|
|
17
|
+
"multimodalLooker": "google/gemini-2.5-flash",
|
|
18
|
+
"settings": {
|
|
19
|
+
"sisyphus": { "thinkingLevel": "medium" },
|
|
20
|
+
"oracle": { "thinkingLevel": "high" },
|
|
21
|
+
"librarian": { "thinkingLevel": "low" },
|
|
22
|
+
"frontend": { "temperature": 0.5 },
|
|
23
|
+
"documentWriter": { "temperature": 0.4 },
|
|
24
|
+
"multimodalLooker": { "temperature": 0.2 }
|
|
25
|
+
}
|
|
17
26
|
},
|
|
18
27
|
"bmad": {
|
|
19
28
|
"defaultTrack": "bmad-method",
|
|
@@ -44,9 +44,25 @@
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
"required": ["enabled", "authMethod"]
|
|
47
|
+
},
|
|
48
|
+
"githubCopilot": {
|
|
49
|
+
"type": "object",
|
|
50
|
+
"properties": {
|
|
51
|
+
"enabled": { "type": "boolean" },
|
|
52
|
+
"plan": {
|
|
53
|
+
"type": "string",
|
|
54
|
+
"enum": ["none", "free", "pro", "pro-plus", "business", "enterprise"]
|
|
55
|
+
},
|
|
56
|
+
"enabledModels": {
|
|
57
|
+
"type": "array",
|
|
58
|
+
"items": { "type": "string" },
|
|
59
|
+
"description": "Optional: specific models enabled by organization admin"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"required": ["enabled", "plan"]
|
|
47
63
|
}
|
|
48
64
|
},
|
|
49
|
-
"required": ["claude", "openai", "google"]
|
|
65
|
+
"required": ["claude", "openai", "google", "githubCopilot"]
|
|
50
66
|
},
|
|
51
67
|
"models": {
|
|
52
68
|
"type": "object",
|
|
@@ -75,6 +91,28 @@
|
|
|
75
91
|
"multimodalLooker": {
|
|
76
92
|
"type": "string",
|
|
77
93
|
"description": "Model for image analysis agent"
|
|
94
|
+
},
|
|
95
|
+
"settings": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"description": "Optional agent-specific settings for temperature and thinking level",
|
|
98
|
+
"properties": {
|
|
99
|
+
"sisyphus": { "$ref": "#/definitions/agentSettings" },
|
|
100
|
+
"oracle": { "$ref": "#/definitions/agentSettings" },
|
|
101
|
+
"librarian": { "$ref": "#/definitions/agentSettings" },
|
|
102
|
+
"frontend": { "$ref": "#/definitions/agentSettings" },
|
|
103
|
+
"documentWriter": { "$ref": "#/definitions/agentSettings" },
|
|
104
|
+
"multimodalLooker": { "$ref": "#/definitions/agentSettings" },
|
|
105
|
+
"overrides": {
|
|
106
|
+
"type": "object",
|
|
107
|
+
"description": "Per-model overrides (key: model ID, value: settings)",
|
|
108
|
+
"additionalProperties": { "$ref": "#/definitions/agentSettings" }
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"custom": {
|
|
113
|
+
"type": "array",
|
|
114
|
+
"description": "User-defined custom models",
|
|
115
|
+
"items": { "$ref": "#/definitions/customModel" }
|
|
78
116
|
}
|
|
79
117
|
},
|
|
80
118
|
"required": ["sisyphus", "oracle", "librarian"]
|
|
@@ -124,5 +162,57 @@
|
|
|
124
162
|
}
|
|
125
163
|
}
|
|
126
164
|
},
|
|
127
|
-
"required": ["version", "subscriptions", "models", "bmad", "features", "mcps"]
|
|
165
|
+
"required": ["version", "subscriptions", "models", "bmad", "features", "mcps"],
|
|
166
|
+
"definitions": {
|
|
167
|
+
"agentSettings": {
|
|
168
|
+
"type": "object",
|
|
169
|
+
"description": "Settings for an agent (temperature and thinking level)",
|
|
170
|
+
"properties": {
|
|
171
|
+
"temperature": {
|
|
172
|
+
"type": "number",
|
|
173
|
+
"minimum": 0,
|
|
174
|
+
"maximum": 1,
|
|
175
|
+
"description": "Model temperature (0.0-1.0) - controls randomness/creativity"
|
|
176
|
+
},
|
|
177
|
+
"thinkingLevel": {
|
|
178
|
+
"type": "string",
|
|
179
|
+
"enum": ["off", "low", "medium", "high"],
|
|
180
|
+
"description": "Reasoning depth - maps to reasoning_effort (OpenAI), token budget (Anthropic), thinking_level (Google)"
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"customModel": {
|
|
185
|
+
"type": "object",
|
|
186
|
+
"description": "Custom model definition",
|
|
187
|
+
"properties": {
|
|
188
|
+
"id": {
|
|
189
|
+
"type": "string",
|
|
190
|
+
"description": "Model identifier (e.g., 'anthropic/claude-next-gen')"
|
|
191
|
+
},
|
|
192
|
+
"name": {
|
|
193
|
+
"type": "string",
|
|
194
|
+
"description": "Display name"
|
|
195
|
+
},
|
|
196
|
+
"provider": {
|
|
197
|
+
"type": "string",
|
|
198
|
+
"enum": ["anthropic", "openai", "google", "github-copilot"],
|
|
199
|
+
"description": "Provider name"
|
|
200
|
+
},
|
|
201
|
+
"description": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"description": "Optional description"
|
|
204
|
+
},
|
|
205
|
+
"capabilities": {
|
|
206
|
+
"type": "object",
|
|
207
|
+
"description": "Model capabilities",
|
|
208
|
+
"properties": {
|
|
209
|
+
"thinking": { "type": "boolean" },
|
|
210
|
+
"contextWindow": { "type": "number" },
|
|
211
|
+
"supportsTemperature": { "type": "boolean" }
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
"required": ["id", "name", "provider"]
|
|
216
|
+
}
|
|
217
|
+
}
|
|
128
218
|
}
|