playmaker-cli 0.5.0__tar.gz → 0.5.1__tar.gz
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.
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/CHANGELOG.md +15 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/PKG-INFO +5 -5
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/README.md +4 -4
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/pyproject.toml +1 -1
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/skills/playmaker-coach/SKILL.md +20 -14
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/agents/agy.py +7 -4
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/cli.py +5 -4
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/.gitignore +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/LICENSE +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/__init__.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/__main__.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/agents/__init__.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/agents/base.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/agents/claude.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/agents/codex.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/agents/gemini.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/config.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/notify.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/quotas.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/registry.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/state.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/src/playmaker/watcher.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/tests/__init__.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/tests/test_agy.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/tests/test_claude.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/tests/test_codex.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/tests/test_permissions.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/tests/test_quotas_antigravity.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/tests/test_registry.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/tests/test_skill.py +0 -0
- {playmaker_cli-0.5.0 → playmaker_cli-0.5.1}/tests/test_state.py +0 -0
|
@@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.5.1] - 2026-07-27
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- **The bundled coach skill taught agy model names agy no longer accepts.**
|
|
13
|
+
`agy models` switched from quoted display strings (`"Claude Opus 4.6
|
|
14
|
+
(Thinking)"`) to bare slugs (`claude-opus-4-6-thinking`), so every agy
|
|
15
|
+
dispatch the skill proposed failed model validation. The skill now says to
|
|
16
|
+
read the live roster from `agy models` instead of spelling names from
|
|
17
|
+
memory. It also recommended `codex -m gpt-5-codex`, which fails on accounts
|
|
18
|
+
whose plan lacks that model; codex dispatches now default to the account's
|
|
19
|
+
own default model. Both fixes landed on main just after v0.5.0 was tagged —
|
|
20
|
+
this release exists because the skill ships inside the wheel, so doc fixes
|
|
21
|
+
are not live until published.
|
|
22
|
+
|
|
8
23
|
## [0.5.0] - 2026-07-27
|
|
9
24
|
|
|
10
25
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: playmaker-cli
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.1
|
|
4
4
|
Summary: Playing-coach CLI for orchestrating Claude Code, Codex and Antigravity sub-agents in parallel.
|
|
5
5
|
Project-URL: Homepage, https://github.com/vladsafedev/playmaker
|
|
6
6
|
Project-URL: Repository, https://github.com/vladsafedev/playmaker
|
|
@@ -41,9 +41,9 @@ parses their native session files, and pings you when they land.
|
|
|
41
41
|
```console
|
|
42
42
|
$ B=dashboard # one label for the whole fan-out
|
|
43
43
|
|
|
44
|
-
$ playmaker dispatch codex --batch $B
|
|
44
|
+
$ playmaker dispatch codex --batch $B -p "Add PATCH /users/:id …"
|
|
45
45
|
session: 9f2c1a4e-… pid: 48211 (detached)
|
|
46
|
-
$ playmaker dispatch agy --batch $B --model
|
|
46
|
+
$ playmaker dispatch agy --batch $B --model gemini-3.6-flash-high -p "pytest coverage for …"
|
|
47
47
|
session: 4b1f9c02-… pid: 48219 (detached)
|
|
48
48
|
$ playmaker dispatch claude --batch $B --model sonnet -p "Update the API docs for …"
|
|
49
49
|
session: c07d5511-… pid: 48244 (detached)
|
|
@@ -168,8 +168,8 @@ playmaker agents # which agent CLIs are reachable
|
|
|
168
168
|
| Agent | Install | Notes |
|
|
169
169
|
|---|---|---|
|
|
170
170
|
| **Claude Code** | `npm i -g @anthropic-ai/claude-code` | `--model sonnet` / `opus` / `haiku` |
|
|
171
|
-
| **Codex CLI** | `npm i -g @openai/codex` | `--model
|
|
172
|
-
| **Antigravity (`agy`)** | bundled with [Antigravity](https://antigravity.google) |
|
|
171
|
+
| **Codex CLI** | `npm i -g @openai/codex` | the model roster depends on your plan; omit `--model` to use the account default |
|
|
172
|
+
| **Antigravity (`agy`)** | bundled with [Antigravity](https://antigravity.google) | `--model claude-opus-4-6-thinking` — the roster moves, so read it from `agy models` |
|
|
173
173
|
| **Gemini CLI** (legacy) | `npm i -g @google/gemini-cli` | still supported, superseded by `agy` |
|
|
174
174
|
|
|
175
175
|
At least one is required; `playmaker agents` tells you which it can see.
|
|
@@ -14,9 +14,9 @@ parses their native session files, and pings you when they land.
|
|
|
14
14
|
```console
|
|
15
15
|
$ B=dashboard # one label for the whole fan-out
|
|
16
16
|
|
|
17
|
-
$ playmaker dispatch codex --batch $B
|
|
17
|
+
$ playmaker dispatch codex --batch $B -p "Add PATCH /users/:id …"
|
|
18
18
|
session: 9f2c1a4e-… pid: 48211 (detached)
|
|
19
|
-
$ playmaker dispatch agy --batch $B --model
|
|
19
|
+
$ playmaker dispatch agy --batch $B --model gemini-3.6-flash-high -p "pytest coverage for …"
|
|
20
20
|
session: 4b1f9c02-… pid: 48219 (detached)
|
|
21
21
|
$ playmaker dispatch claude --batch $B --model sonnet -p "Update the API docs for …"
|
|
22
22
|
session: c07d5511-… pid: 48244 (detached)
|
|
@@ -141,8 +141,8 @@ playmaker agents # which agent CLIs are reachable
|
|
|
141
141
|
| Agent | Install | Notes |
|
|
142
142
|
|---|---|---|
|
|
143
143
|
| **Claude Code** | `npm i -g @anthropic-ai/claude-code` | `--model sonnet` / `opus` / `haiku` |
|
|
144
|
-
| **Codex CLI** | `npm i -g @openai/codex` | `--model
|
|
145
|
-
| **Antigravity (`agy`)** | bundled with [Antigravity](https://antigravity.google) |
|
|
144
|
+
| **Codex CLI** | `npm i -g @openai/codex` | the model roster depends on your plan; omit `--model` to use the account default |
|
|
145
|
+
| **Antigravity (`agy`)** | bundled with [Antigravity](https://antigravity.google) | `--model claude-opus-4-6-thinking` — the roster moves, so read it from `agy models` |
|
|
146
146
|
| **Gemini CLI** (legacy) | `npm i -g @google/gemini-cli` | still supported, superseded by `agy` |
|
|
147
147
|
|
|
148
148
|
At least one is required; `playmaker agents` tells you which it can see.
|
|
@@ -7,7 +7,9 @@ description: Playing-coach orchestration of Claude/Codex/Antigravity (agy) sub-a
|
|
|
7
7
|
|
|
8
8
|
Use the `playmaker` CLI as a facade to dispatch sub-tasks to Codex / Antigravity (`agy`) / a sibling Claude, monitor them, read their threads, review their diffs, and feed back. The coach (this thread) does its own portion of the work in parallel.
|
|
9
9
|
|
|
10
|
-
> **`agy` (Antigravity CLI)** does not only serve Google models:
|
|
10
|
+
> **`agy` (Antigravity CLI)** does not only serve Google models: alongside the Gemini Flash and Pro tiers, `agy models` carries **Claude Sonnet and Opus** and a **GPT-OSS** mid-tier. Opus via agy runs on *Google's* quota pool — top-tier Claude work that does not touch the Anthropic subscription's scarce Opus weekly bucket: `--model claude-opus-4-6-thinking`.
|
|
11
|
+
>
|
|
12
|
+
> **Never write an agy model name from memory — run `agy models` and copy a line.** Both the roster *and its spelling* move with Antigravity releases: names used to be quoted display strings like `"Claude Opus 4.6 (Thinking)"` and are now bare slugs. playmaker validates `--model` against the live roster and fails the dispatch on a stale name, so a wrong guess costs you a round-trip.
|
|
11
13
|
|
|
12
14
|
**The point of the coach pattern:** all available models do useful work in parallel under your direction. The coach's job is *orchestration*, not *production*. A coach that does its own implementation, runs its own codebase recon, and reviews everything line by line burns the same budget delegation was meant to save. Treat your own context window as the most expensive resource on the table — every byte you read or generate yourself is a byte that could have come from a cheaper model. Push out as much as you can: implementation, recon, summarization, even drafting the per-subtask prompts when the task is large enough.
|
|
13
15
|
|
|
@@ -31,7 +33,7 @@ All Claude work — coach, internal sub-agents, external `claude -p` — draws f
|
|
|
31
33
|
| is an independent stream you'll monitor / continue separately | **external `dispatch claude --model sonnet`** | tracked & detached; Sonnet's own weekly bucket spares Opus |
|
|
32
34
|
| is heavy reasoning only the coach can do | **coach** | top-tier Opus, serial |
|
|
33
35
|
| is write-heavy and can leave Claude | **codex / agy** | their own quotas |
|
|
34
|
-
| needs top-tier Claude but the Anthropic Opus weekly is precious | **`dispatch agy --model
|
|
36
|
+
| needs top-tier Claude but the Anthropic Opus weekly is precious | **`dispatch agy --model claude-opus-4-6-thinking`** | Opus quality on Google's pool |
|
|
35
37
|
|
|
36
38
|
**Sonnet is your cheap parallel Claude worker** — a separate weekly bucket that usually sits idle while Opus depletes. Reach for it (via `dispatch claude --model sonnet`, or by pointing an internal sub-agent at Sonnet) instead of burning Opus on mid-tier work.
|
|
37
39
|
|
|
@@ -69,7 +71,7 @@ Codebase exploration ("find where the User entity lives, list its existing field
|
|
|
69
71
|
Pattern: dispatch a recon subtask with an explicit deliverable.
|
|
70
72
|
|
|
71
73
|
```bash
|
|
72
|
-
playmaker dispatch agy --model
|
|
74
|
+
playmaker dispatch agy --model gemini-3.6-flash-low --cwd $(pwd) --sync \
|
|
73
75
|
--prompt "Recon only — do not edit any files. In apps/backend/, locate: (a) the User entity/schema and the migration tooling used (Prisma vs TypeORM vs other), (b) the auth middleware that resolves the current user, (c) where DTOs are defined for user PATCH endpoints if any. Report under 200 words as a numbered list with file paths and line ranges."
|
|
74
76
|
```
|
|
75
77
|
|
|
@@ -89,9 +91,9 @@ Break the task into 2-5 subtasks (don't go finer-grained than that on first run
|
|
|
89
91
|
|
|
90
92
|
1. Sort *models* (not agents) by remaining capacity — freshest at the top. A provider with one fresh model and one depleted model is two separate buckets.
|
|
91
93
|
2. **Tier-match each subtask to the cheapest model that can finish it cleanly:**
|
|
92
|
-
- **Architectural / spec judgment / cross-module integration:** top tier (Opus, agy
|
|
93
|
-
- **Pattern-following implementation, well-scoped CRUD, mechanical refactor, test scaffolding, writing inside an existing convention:** mid tier (Claude Sonnet, agy
|
|
94
|
-
- **Recon, summarization, mechanical loops over many files, name normalization:** cheap tier (agy
|
|
94
|
+
- **Architectural / spec judgment / cross-module integration:** top tier (Opus, agy `claude-opus-4-6-thinking` / `gemini-3.1-pro-high`, Codex top-tier). The coach lives here; agy-Opus is the overflow lane when the Anthropic Opus weekly is precious.
|
|
95
|
+
- **Pattern-following implementation, well-scoped CRUD, mechanical refactor, test scaffolding, writing inside an existing convention:** mid tier (Claude Sonnet, agy `claude-sonnet-4-6` / `gemini-3.5-flash-high` / `gemini-3.1-pro-low`, mid-tier Codex). This is where the bulk of delegated implementation goes.
|
|
96
|
+
- **Recon, summarization, mechanical loops over many files, name normalization:** cheap tier (agy's lowest Flash tiers, **Claude Haiku**, Sonnet for recon-with-judgment).
|
|
95
97
|
|
|
96
98
|
For Claude specifically, tier is orthogonal to **lane** (see "Execution lanes"): pick the model tier here, then decide *internal sub-agent* (coach integrates the result) vs *external `-p`* (tracked detached stream).
|
|
97
99
|
3. Pass the model explicitly: `playmaker dispatch <agent> --model <name> ...`. Without `--model`, the agent CLI uses its default — which is usually fine but means the coach gives up control over tier-matching. **For sibling Claude, default to `--model sonnet`** (Haiku for trivial mechanical work); never omit it and let the CLI pick Opus — that burns the scarce shared Opus weekly bucket.
|
|
@@ -112,7 +114,7 @@ To make a subtask finishable, every dispatch must carry:
|
|
|
112
114
|
2. **Acceptance criteria as a check the agent runs itself.** A green command — `npx prisma validate`, `pnpm test users.spec.ts`, `tsc --noEmit`, an `eslint` pass on a specific file. The agent is told to keep iterating until that command exits 0 and to surface its output in the final answer. This replaces coach-side review for ~80% of the work.
|
|
113
115
|
3. **Done definition in one sentence**, written so the coach can confirm it in seconds without reading the diff line by line. "Column added, migration generated, prisma validate green." If the coach can't write such a sentence, the subtask isn't sized right yet — split or specify further before dispatching.
|
|
114
116
|
4. **Context the agent needs but doesn't have.** Spec section excerpts, naming conventions, the one related file it should mirror. Paste these into the prompt; don't make the agent find them by reading half the repo. If your team keeps durable notes (a docs folder, a wiki, a notes vault), pass the *exact* paths worth reading rather than asking the agent to go looking.
|
|
115
|
-
5. **Match to capability.** Codex / agy-Gemini do well on pattern-following, well-scoped CRUD, test scaffolding, mechanical refactors, and writing within an existing convention. They do poorly on architectural decisions across files they haven't been pointed at, novel API design, and judging whether a spec rule applies. Keep those for the coach — or for agy's
|
|
117
|
+
5. **Match to capability.** Codex / agy-Gemini do well on pattern-following, well-scoped CRUD, test scaffolding, mechanical refactors, and writing within an existing convention. They do poorly on architectural decisions across files they haven't been pointed at, novel API design, and judging whether a spec rule applies. Keep those for the coach — or for agy's `claude-opus-4-6-thinking` when the subtask genuinely needs top-tier judgment but should not burn the Anthropic Opus weekly. If a profile in `.playmaker/agents/<name>.md` exists, trust its guidance over these defaults.
|
|
116
118
|
|
|
117
119
|
A useful smell test before dispatching: *"If this came back done, would I review by running one command and reading one paragraph — or would I need to read the whole diff and think hard about whether it's right?"* If the latter, re-scope before sending.
|
|
118
120
|
|
|
@@ -121,7 +123,7 @@ Output the plan as a short proposal:
|
|
|
121
123
|
Plan:
|
|
122
124
|
- Coach (me): schema design + integration glue
|
|
123
125
|
- Codex: FastAPI handlers in apps/api/
|
|
124
|
-
- agy (
|
|
126
|
+
- agy (gemini-3.6-flash-high): pytest tests + README
|
|
125
127
|
|
|
126
128
|
Quotas: Claude session 93% / weekly 80%, Codex 100%,
|
|
127
129
|
agy Gemini 5h 100% / weekly 96%, Claude/GPT 5h 88% / weekly 71%.
|
|
@@ -151,7 +153,11 @@ playmaker dispatch <agent> --model <name> --prompt "<scoped prompt>" --cwd $(pwd
|
|
|
151
153
|
|
|
152
154
|
Always pass `--cwd $(pwd)` — `playmaker`'s default is the *coach process's* current dir, which is not always what you want.
|
|
153
155
|
|
|
154
|
-
Always pass `--model` when you've made a tier-matching decision in step 3. Without it, the agent CLI uses its own default (which may be its top-tier model, defeating the load-distribution effort). Model name is what the agent's native CLI accepts: `claude --model sonnet`, `
|
|
156
|
+
Always pass `--model` when you've made a tier-matching decision in step 3. Without it, the agent CLI uses its own default (which may be its top-tier model, defeating the load-distribution effort). Model name is what the agent's native CLI accepts: `claude --model sonnet`, `agy --model gemini-3.6-flash-high` — for agy, copy the line from `agy models` rather than typing it.
|
|
157
|
+
|
|
158
|
+
Two exceptions to "always pass `--model`":
|
|
159
|
+
- **codex** — its model roster depends on the account plan, and an unavailable name fails the whole dispatch (`codex turn failed: … not supported when using Codex with a ChatGPT account`). Omitting `--model` uses whatever that account actually has, which is usually what you want.
|
|
160
|
+
- **agy** — its own default is a top-tier model, so omitting `--model` on a dispatch meant to be cheap silently spends the expensive bucket. Always pass it here.
|
|
155
161
|
|
|
156
162
|
**agy prompt discipline:** the agy agent's shell lives in a private scratch directory, not the workspace. playmaker automatically prepends a workspace preamble to every agy dispatch, but reinforce it: word file instructions with paths relative to the workspace root or absolute paths, never "in the current directory".
|
|
157
163
|
|
|
@@ -163,8 +169,8 @@ Always pass `--model` when you've made a tier-matching decision in step 3. Witho
|
|
|
163
169
|
|
|
164
170
|
```bash
|
|
165
171
|
B=admin-dashboard # any short label shared across this fan-out
|
|
166
|
-
playmaker dispatch codex --batch "$B" --
|
|
167
|
-
playmaker dispatch agy --batch "$B" --model
|
|
172
|
+
playmaker dispatch codex --batch "$B" --prompt "..." --cwd $(pwd)
|
|
173
|
+
playmaker dispatch agy --batch "$B" --model gemini-3.6-flash-high --prompt "..." --cwd $(pwd)
|
|
168
174
|
```
|
|
169
175
|
|
|
170
176
|
`playmaker continue <id> --model <name>` overrides the model for one follow-up turn while keeping the live session; without `--model` it inherits the parent session's model.
|
|
@@ -173,7 +179,7 @@ For sequential delegation (e.g. "I'll do schema first, then Codex builds on top"
|
|
|
173
179
|
|
|
174
180
|
```bash
|
|
175
181
|
git commit -am "checkpoint: schema before backend dispatch"
|
|
176
|
-
playmaker dispatch codex --
|
|
182
|
+
playmaker dispatch codex --prompt "..." --cwd $(pwd) --sync # blocks, prints output
|
|
177
183
|
```
|
|
178
184
|
|
|
179
185
|
### 6. Coach's own work
|
|
@@ -263,9 +269,9 @@ playmaker watch # Rich live TUI of sessions
|
|
|
263
269
|
|
|
264
270
|
Every command takes `--json` for machine-readable output.
|
|
265
271
|
|
|
266
|
-
`--model NAME` is forwarded to the agent's native CLI: `claude --model sonnet`, `
|
|
272
|
+
`--model NAME` is forwarded to the agent's native CLI: `claude --model sonnet`, `agy --model claude-opus-4-6-thinking`, `codex -m <whatever that account has>`. Without it the agent CLI uses its own default. Model is stored on the session row, so detached re-runs and `continue` inherit it; `continue --model X` overrides for that one turn.
|
|
267
273
|
|
|
268
|
-
agy
|
|
274
|
+
**The agy roster is not documented here on purpose** — it changes with Antigravity releases, and so does the spelling convention. Run `agy models` and copy a line. At the time of writing it returns bare slugs in the shape `gemini-3.6-flash-{low,medium,high}`, `gemini-3.1-pro-{low,high}`, `claude-sonnet-4-6`, `claude-opus-4-6-thinking`, `gpt-oss-120b-medium` — but treat that as an example of the *shape*, not a list to copy from.
|
|
269
275
|
|
|
270
276
|
## Anti-patterns
|
|
271
277
|
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
"""Antigravity CLI (`agy`) handler.
|
|
2
2
|
|
|
3
3
|
Empirically (agy 1.1.1):
|
|
4
|
-
- oneshot: `agy -p "<prompt>" [--model
|
|
4
|
+
- oneshot: `agy -p "<prompt>" [--model <name>] [--dangerously-skip-permissions]
|
|
5
5
|
[--print-timeout 60m] [--log-file <path>]`; stdout is the final response as
|
|
6
6
|
plain text (no JSON envelope).
|
|
7
7
|
- resume: `agy --conversation <uuid> -p "..."` — keeps the same conversation id.
|
|
8
|
-
-
|
|
9
|
-
"
|
|
8
|
+
- `--model` takes a name from `agy models` verbatim, e.g.
|
|
9
|
+
"claude-opus-4-6-thinking", "gemini-3.6-flash-high". Both the roster and its
|
|
10
|
+
*spelling* move with Antigravity releases — earlier builds took display names
|
|
11
|
+
like "Claude Opus 4.6 (Thinking)" — which is why _validate_model() reads the
|
|
12
|
+
live list instead of trusting a hardcoded one.
|
|
10
13
|
- the conversation id is NOT printed to stdout; it is recovered from the CLI
|
|
11
14
|
debug log (`--log-file`) via the `Created conversation <uuid>` line, which
|
|
12
15
|
appears a few seconds in — that is our early on_session_started signal.
|
|
@@ -53,7 +56,7 @@ class AgyHandler:
|
|
|
53
56
|
@staticmethod
|
|
54
57
|
@functools.lru_cache(maxsize=1)
|
|
55
58
|
def available_models() -> tuple[str, ...]:
|
|
56
|
-
"""Exact model
|
|
59
|
+
"""Exact model names agy accepts, from `agy models`.
|
|
57
60
|
|
|
58
61
|
agy resolves an unknown `--model` to its default *silently* (no error,
|
|
59
62
|
wrong model runs), so we validate against this list before dispatch.
|
|
@@ -131,8 +131,8 @@ def dispatch(
|
|
|
131
131
|
"--model",
|
|
132
132
|
"-m",
|
|
133
133
|
help="forwarded to the agent CLI's --model (e.g. claude 'opus'/'sonnet', "
|
|
134
|
-
"
|
|
135
|
-
"
|
|
134
|
+
"agy 'claude-opus-4-6-thinking' — exact names from `agy models`); "
|
|
135
|
+
"omitted = agent default, which is the safe choice for codex",
|
|
136
136
|
),
|
|
137
137
|
sync: bool = typer.Option(
|
|
138
138
|
False,
|
|
@@ -977,8 +977,9 @@ binary = "codex"
|
|
|
977
977
|
|
|
978
978
|
[agents.agy]
|
|
979
979
|
binary = "agy"
|
|
980
|
-
# Antigravity CLI. Model names
|
|
981
|
-
#
|
|
980
|
+
# Antigravity CLI. Model names come from `agy models` verbatim, e.g.
|
|
981
|
+
# "claude-opus-4-6-thinking", "gemini-3.6-flash-high". The roster changes
|
|
982
|
+
# with Antigravity releases, so read it rather than copying from docs.
|
|
982
983
|
#
|
|
983
984
|
# agy has no per-mode permission flag — a detached run either auto-approves or
|
|
984
985
|
# comes back having done nothing — so this defaults to on.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|