@ask-llm/plugin 0.17.0 → 0.18.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/.claude-plugin/plugin.json +1 -1
- package/.cursor-plugin/plugin.json +1 -1
- package/CHANGELOG.md +20 -0
- package/README.md +8 -8
- package/agents/brainstorm-coordinator.md +17 -16
- package/agents/codex-reviewer.md +1 -1
- package/agents/sol-reviewer.md +5 -5
- package/codex-pair-defaults.json +1 -1
- package/dist/brainstorm-panel.d.ts +1 -1
- package/dist/brainstorm-panel.d.ts.map +1 -1
- package/dist/brainstorm-panel.js +8 -8
- package/dist/brainstorm-panel.js.map +1 -1
- package/dist/brainstorm-run.js +1 -1
- package/dist/brainstorm-run.js.map +1 -1
- package/package.json +7 -7
- package/pi/extensions/codex-pair.ts +2 -1
- package/pi/extensions/provider-tools.ts +1 -1
- package/scripts/codex-pair-watch.mjs +3 -2
- package/scripts/sol-review-transport.mjs +1 -1
- package/skills/brainstorm/SKILL.md +9 -9
- package/skills/codex-image/SKILL.md +2 -2
- package/skills/codex-pair/SKILL.md +4 -3
- package/skills/codex-review/SKILL.md +1 -1
- package/skills/grok-pair/SKILL.md +3 -3
- package/skills/sol-review/SKILL.md +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @ask-llm/plugin
|
|
2
2
|
|
|
3
|
+
## 0.18.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#336](https://github.com/Lykhoyda/ask-llm/pull/336) [`8d7ff9f`](https://github.com/Lykhoyda/ask-llm/commit/8d7ff9fdbd7ee76aa40a45a500d67910662c2002) Thanks [@Lykhoyda](https://github.com/Lykhoyda)! - Adopt Codex's bundled `gpt-6-astra` as the factory default, keep Terra as the quota fallback, and fail closed when Astra is selected on Codex CLI older than 0.153.0. `/sol-review` and the Cursor brainstorm Sol catalog IDs stay explicit Sol pins.
|
|
8
|
+
|
|
9
|
+
- [#334](https://github.com/Lykhoyda/ask-llm/pull/334) [`51d2c32`](https://github.com/Lykhoyda/ask-llm/commit/51d2c32b658cf356f61ed02986680525b95f810e) Thanks [@Lykhoyda](https://github.com/Lykhoyda)! - Accept Codex's catalog-backed `ultra` reasoning effort as explicit opt-in. Keep ordinary defaults at `medium` and `/codex-review`/`/brainstorm` at `high`. Unified Grok still rejects `max` and `ultra`.
|
|
10
|
+
|
|
11
|
+
- [#337](https://github.com/Lykhoyda/ask-llm/pull/337) [`3a9a8e5`](https://github.com/Lykhoyda/ask-llm/commit/3a9a8e5f773d2d6aab8ea7c4c42d8e5b4c473e0a) Thanks [@Lykhoyda](https://github.com/Lykhoyda)! - Pin codex-pair, /sol-review, and the Cursor brainstorm participant to GPT-6 Sol (`gpt-6-sol`, Cursor `gpt-6-sol-high`). Pair effort is medium. Grok defaults are grok-4.7 on both harnesses, and current Opus pins are Claude Opus 5.5. Astra stays the ask-codex default.
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Updated dependencies [[`8d7ff9f`](https://github.com/Lykhoyda/ask-llm/commit/8d7ff9fdbd7ee76aa40a45a500d67910662c2002), [`51d2c32`](https://github.com/Lykhoyda/ask-llm/commit/51d2c32b658cf356f61ed02986680525b95f810e), [`3a9a8e5`](https://github.com/Lykhoyda/ask-llm/commit/3a9a8e5f773d2d6aab8ea7c4c42d8e5b4c473e0a)]:
|
|
16
|
+
- @ask-llm/codex-mcp@0.8.0
|
|
17
|
+
- @ask-llm/mcp@0.11.0
|
|
18
|
+
- @ask-llm/grok-mcp@0.2.0
|
|
19
|
+
- @ask-llm/gemini-mcp@1.9.2
|
|
20
|
+
- @ask-llm/ollama-mcp@0.6.3
|
|
21
|
+
- @ask-llm/antigravity-mcp@0.7.7
|
|
22
|
+
|
|
3
23
|
## 0.17.0
|
|
4
24
|
|
|
5
25
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -84,29 +84,29 @@ See the [Pi host guide](https://lykhoyda.github.io/ask-llm/plugin/pi) for securi
|
|
|
84
84
|
| `/gemini-review` | Gemini-only code review with confidence filtering |
|
|
85
85
|
| `/codex-review` | Codex-only code review (precision-first, ≥80 confidence — default for routine PR review) |
|
|
86
86
|
| `/fable-review` | Isolated, read-only review requesting native Fable, with runtime verification limits disclosed |
|
|
87
|
-
| `/sol-review` | Model-pinned GPT-
|
|
87
|
+
| `/sol-review` | Model-pinned GPT-6 Sol review: prefer bundled or user-scoped `ask-codex`, then fully pinned unified `ask-llm`, then the disclosed CLI fallback |
|
|
88
88
|
| `/ollama-review` | Local review — no data leaves your machine |
|
|
89
|
-
| `/brainstorm` | Explicit multi-model brainstorm (default external: Antigravity + Codex); supports an exact no-Gemini Grok + GPT-
|
|
89
|
+
| `/brainstorm` | Explicit multi-model brainstorm (default external: Antigravity + Codex); supports an exact no-Gemini Grok + GPT-6 Sol panel through Cursor Agent |
|
|
90
90
|
| `/grok-review` | Grok review through explicit xAI API or Grok CLI harness; no fallback |
|
|
91
91
|
| `/grok-pair` | Consent-gated iterative Grok reviewer through exact Cursor Agent, xAI API, or Grok CLI route; no fallback |
|
|
92
92
|
| `/codex-pair` | Claude/Pi per-edit pairing dashboard; Cursor on-demand session adapter with explicit Thread ID continuity |
|
|
93
93
|
| `/brainstorm-all` | Brainstorm with all five external providers (Gemini, Codex, Grok, Ollama, Antigravity) + Claude Opus research |
|
|
94
94
|
| `/compare` | Side-by-side raw responses from multiple providers (no synthesis, no consensus extraction) |
|
|
95
95
|
|
|
96
|
-
### Exact Grok + GPT-
|
|
96
|
+
### Exact Grok + GPT-6 Sol brainstorm
|
|
97
97
|
|
|
98
98
|
The preferred architect panel routes both models through the model-neutral Cursor Agent harness with provider and exact account-catalog ID kept separate:
|
|
99
99
|
|
|
100
100
|
```text
|
|
101
|
-
/brainstorm grok@cursor-agent:
|
|
101
|
+
/brainstorm grok@cursor-agent:grok-4.7-high,codex@cursor-agent:gpt-6-sol-high "review this architecture"
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
This panel calls exactly Grok and GPT-
|
|
104
|
+
This panel calls exactly Grok and GPT-6 Sol—never Gemini. Cursor `Auto`, model rewriting, and harness/provider fallback are forbidden. If one participant fails, the result is partial and cannot be presented as two-model consensus. Catalogs are account-specific; confirm these exact IDs with `agent --list-models` and replace an unavailable ID explicitly.
|
|
105
105
|
|
|
106
106
|
Official Grok Build remains an explicit alternative when its installed headless contract is supported:
|
|
107
107
|
|
|
108
108
|
```text
|
|
109
|
-
/brainstorm grok@grok-cli:grok-
|
|
109
|
+
/brainstorm grok@grok-cli:grok-4.7,codex@cursor-agent:gpt-6-sol-high "review this architecture"
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
A Grok CLI failure remains a Grok CLI failure; the workflow does not pivot to Cursor or xAI.
|
|
@@ -118,7 +118,7 @@ A Grok CLI failure remains a Grok CLI failure; the workflow does not pivot to Cu
|
|
|
118
118
|
| gemini-reviewer | cyan | 4-phase: context, prompt, synthesis, validation |
|
|
119
119
|
| codex-reviewer | green | 4-phase: context, prompt, synthesis, validation |
|
|
120
120
|
| fable-reviewer | purple | Fable-requested review with source-verified findings |
|
|
121
|
-
| sol-reviewer | blue | GPT-
|
|
121
|
+
| sol-reviewer | blue | GPT-6 Sol review through Codex with source validation |
|
|
122
122
|
| ollama-reviewer | yellow | 4-phase: context, prompt, synthesis, validation (local) |
|
|
123
123
|
| brainstorm-coordinator | magenta | Source-grounded research + parallel multi-model consultation; exact two-model mode keeps the host non-voting and partial failures out of consensus |
|
|
124
124
|
|
|
@@ -164,7 +164,7 @@ To disable:
|
|
|
164
164
|
| Just this session | `/plugin disable ask-llm` |
|
|
165
165
|
| Just this command | `CODEX_PAIR_DISABLED=1 <command>` |
|
|
166
166
|
|
|
167
|
-
**Usage characteristics**: GPT-
|
|
167
|
+
**Usage characteristics**: GPT-6 Sol at medium effort by default, with Terra quota fallback; ~13–50s per file. Files >20KB skipped (override with `CODEX_PAIR_MAX_FILE_BYTES`). node_modules/dist/lockfiles/images skipped automatically.
|
|
168
168
|
|
|
169
169
|
**When to enable**: any project where missed correctness issues cost more than the per-edit review (~$0.04–0.07). The decision is about *code characteristics*, not domain — codex-pair catches bugs earlier wherever a project has implicit invariants the model can't infer from one file in isolation (which most projects do, somewhere). **When NOT to enable**: routine refactors, glue code, simple CRUD where `/codex-review` at PR time is sufficient (~1/4 the cost). The four-task benchmark in ADR-077 has the full task-agnostic evidence trail; ADR-095 is the lived-experience replication on this very repo.
|
|
170
170
|
|
|
@@ -32,7 +32,7 @@ The frontmatter and detailed implementation below define Claude Code subagent ex
|
|
|
32
32
|
|
|
33
33
|
You are a brainstorming coordinator powered by Claude Opus. You have two jobs:
|
|
34
34
|
|
|
35
|
-
1. **Research independently before dispatch.** Perform deep analysis of the topic — read the actual files, trace real code paths, and factor in framework-specific semantics. In standard mode this is a peer participant. In the exact Grok + GPT-
|
|
35
|
+
1. **Research independently before dispatch.** Perform deep analysis of the topic — read the actual files, trace real code paths, and factor in framework-specific semantics. In standard mode this is a peer participant. In the exact Grok + GPT-6 Sol mode it is a non-voting evidence memo: the requested panel must remain exactly two models.
|
|
36
36
|
2. **Orchestrate explicit consultations.** Dispatch only the selected external participants (Antigravity, Codex, Grok, Ollama, Gemini — default: antigravity,codex) via a **single blocking foreground Bash call**, collect responses, and synthesize with provider, harness, requested model, independently observed served model (direct xAI API / Grok CLI only), and Cursor display label kept separate; a harness-echoed requested ID is selected-only and is never presented as the actual model.
|
|
37
37
|
|
|
38
38
|
You run on Opus and have filesystem access. Never skip the independent research phase, but never count it as a third panel vote in exact two-model mode.
|
|
@@ -126,14 +126,14 @@ The user specifies which external providers to use. Default is `antigravity,code
|
|
|
126
126
|
|
|
127
127
|
Participant specs use `provider@harness:exact-model-id`. The preferred Grok route is Cursor Agent. The supported exact architect panel is:
|
|
128
128
|
|
|
129
|
-
- `grok@cursor-agent:
|
|
130
|
-
- `codex@cursor-agent:gpt-
|
|
129
|
+
- `grok@cursor-agent:grok-4.7-high`
|
|
130
|
+
- `codex@cursor-agent:gpt-6-sol-high`
|
|
131
131
|
|
|
132
|
-
Account catalogs can change; an unavailable exact ID is a clear failure, not permission to choose Auto or another ID. Grok Build remains explicit as `grok@grok-cli:grok-
|
|
132
|
+
Account catalogs can change; an unavailable exact ID is a clear failure, not permission to choose Auto or another ID. Grok Build remains explicit as `grok@grok-cli:grok-4.7` when the installed CLI supports the canonical contract. The exact panel contains no Gemini and must never launch a Gemini process/tool.
|
|
133
133
|
|
|
134
|
-
A list that mixes routed specs with bare provider names (for example `grok@cursor-agent:
|
|
134
|
+
A list that mixes routed specs with bare provider names (for example `grok@cursor-agent:grok-4.7-high,antigravity`) is unsupported: stop before Phase 3A, report `Mixed brainstorm participant lists are not supported: routed "<spec>" cannot be combined with bare "<provider>". Use either an all-bare provider list or the exact routed Grok + GPT-6 Sol panel. No participant was substituted, rerouted, or dispatched.`, and dispatch nothing. Never downgrade a routed spec to `grok-run.js`/`codex-run.js` or promote a bare name into a routed spec; `brainstorm-run.js` refuses such lists with the same error. Generalized mixed panels are deferred to a future ADR.
|
|
135
135
|
|
|
136
|
-
**Exact Grok + GPT-
|
|
136
|
+
**Exact Grok + GPT-6 Sol branch (preferred architect workflow):**
|
|
137
137
|
|
|
138
138
|
Use this branch instead of the generic template whenever the selected providers are exactly Grok and Codex with explicit route specs. Validate both specs first, then make one foreground call:
|
|
139
139
|
|
|
@@ -146,8 +146,8 @@ cat > "$workdir/prompt.md" <<'PROMPT_EOF'
|
|
|
146
146
|
PROMPT_EOF
|
|
147
147
|
|
|
148
148
|
node "${CLAUDE_PLUGIN_ROOT}/dist/brainstorm-run.js" \
|
|
149
|
-
--participant 'grok@cursor-agent:
|
|
150
|
-
--participant 'codex@cursor-agent:gpt-
|
|
149
|
+
--participant 'grok@cursor-agent:grok-4.7-high' \
|
|
150
|
+
--participant 'codex@cursor-agent:gpt-6-sol-high' \
|
|
151
151
|
< "$workdir/prompt.md" > "$workdir/panel.json" 2> "$workdir/panel.err"
|
|
152
152
|
rc_panel=$?
|
|
153
153
|
echo "===== GROK + GPT-5.6 SOL PANEL (rc=$rc_panel) ====="
|
|
@@ -156,7 +156,7 @@ echo "===== PANEL STDERR ====="
|
|
|
156
156
|
cat "$workdir/panel.err"
|
|
157
157
|
```
|
|
158
158
|
|
|
159
|
-
Substitute only user-supplied, grammar-validated exact specs. For the explicit Grok Build alternative, substitute only the Grok spec with `grok@grok-cli:grok-
|
|
159
|
+
Substitute only user-supplied, grammar-validated exact specs. For the explicit Grok Build alternative, substitute only the Grok spec with `grok@grok-cli:grok-4.7`; do not change the Sol route. `brainstorm-run.js` starts both participants concurrently, preserves input order and identity, returns `complete | partial | failed`, and exits 2 for partial/failed participant execution. Parse its JSON even when rc=2. It does not know or support Gemini, and it does not pivot routes.
|
|
160
160
|
|
|
161
161
|
**Required Bash tool call parameters:**
|
|
162
162
|
- `timeout: 600000` — 10 minutes, the Bash tool maximum. The default 2 minutes will kill Codex at high reasoning effort mid-response, recreating the same silent-failure class this phase is designed to avoid.
|
|
@@ -205,18 +205,19 @@ gemini -p "@$workdir/prompt.md" > "$workdir/gemini.out" 2> "$workdir/gemini.err"
|
|
|
205
205
|
pid_gemini=$!
|
|
206
206
|
|
|
207
207
|
# Only include this block if codex was requested (in the default set).
|
|
208
|
-
# GPT-
|
|
209
|
-
# Terra preserves the lower-cost fallback role.
|
|
208
|
+
# GPT-6 Astra at high effort is the quality-first default for unpinned
|
|
209
|
+
# brainstorming; Terra preserves the lower-cost fallback role. The exact Cursor
|
|
210
|
+
# architect panel stays gpt-6-sol-high (ADR-148). ASK_CODEX_PREFERRED_MODEL and
|
|
210
211
|
# ASK_CODEX_REASONING_EFFORT remain escape hatches. prompt.md is a FILE (not a
|
|
211
212
|
# pipe), so both attempts can re-read it. The whole `{ ...; }` group is
|
|
212
213
|
# backgrounded as one job so pid_codex/`wait` capture the final code.
|
|
213
|
-
codex_model="${ASK_CODEX_PREFERRED_MODEL:-${ASK_CODEX_MODEL:-gpt-
|
|
214
|
+
codex_model="${ASK_CODEX_PREFERRED_MODEL:-${ASK_CODEX_MODEL:-gpt-6-astra}}"
|
|
214
215
|
codex_fallback="${ASK_CODEX_FALLBACK_MODEL:-gpt-5.6-terra}"
|
|
215
216
|
codex_effort="${ASK_CODEX_REASONING_EFFORT:-high}"
|
|
216
217
|
# Keep the raw env override aligned with ask-codex's public enum so malformed
|
|
217
218
|
# config fragments never reach the Codex CLI.
|
|
218
219
|
case "$codex_effort" in
|
|
219
|
-
low|medium|high|xhigh|max) ;;
|
|
220
|
+
low|medium|high|xhigh|max|ultra) ;;
|
|
220
221
|
*) codex_effort="high" ;;
|
|
221
222
|
esac
|
|
222
223
|
{ codex exec --sandbox read-only -c "model_reasoning_effort=\"$codex_effort\"" -m "$codex_model" - < "$workdir/prompt.md" \
|
|
@@ -312,9 +313,9 @@ Surface this grade as the first line of the synthesis output (see Output Format
|
|
|
312
313
|
|
|
313
314
|
### Participants Consulted
|
|
314
315
|
- ℹ️ Claude Opus: non-voting evidence verifier (exact two-model mode; verified against real files: path/to/a, path/to/b)
|
|
315
|
-
- ✅ Grok via Cursor Agent — requested `
|
|
316
|
-
- ✅ Codex via Cursor Agent — requested `gpt-
|
|
317
|
-
- (direct route example) ✅ Grok via xAI API — requested `grok-4.
|
|
316
|
+
- ✅ Grok via Cursor Agent — requested `grok-4.7-high` (selected-unverified: Cursor echoes the requested ID); reported display label `Grok 4.7` (label, not a catalog ID)
|
|
317
|
+
- ✅ Codex via Cursor Agent — requested `gpt-6-sol-high` (selected-unverified); reported display label `GPT-6 Sol 1M High`
|
|
318
|
+
- (direct route example) ✅ Grok via xAI API — requested `grok-4.7`; observed served `grok-4.7-<snapshot>` (observed-alias, disclosed same-product resolution)
|
|
318
319
|
- 🚫 Gemini: explicitly excluded (not called)
|
|
319
320
|
|
|
320
321
|
### Consensus (high confidence; omit for a partial exact panel)
|
package/agents/codex-reviewer.md
CHANGED
|
@@ -63,7 +63,7 @@ You are a code review coordinator that leverages OpenAI Codex for independent an
|
|
|
63
63
|
|
|
64
64
|
### Phase 2: Review Prompt Construction
|
|
65
65
|
|
|
66
|
-
When calling Codex, leave `model` and `preferred` unset and set `reasoningEffort: "high"` plus `sandbox: "read-only"`. This uses GPT-
|
|
66
|
+
When calling Codex, leave `model` and `preferred` unset and set `reasoningEffort: "high"` plus `sandbox: "read-only"`. This uses GPT-6 Astra at high effort and transparently falls back to GPT-5.6 Terra on quota.
|
|
67
67
|
|
|
68
68
|
Prefer an exact `ask-codex` leaf (`mcp__codex__ask-codex` or `mcp__plugin_ask-llm_codex__ask-codex`). If none is exposed, call `mcp__ask-llm__ask-llm` with `provider: "codex"` and the same options. Inspect the unified input schema first: if it lacks `reasoningEffort`, `includeDirs`, `preferred`, or `sandbox`, stop and tell the user to upgrade `@ask-llm/mcp` (`npx -y @ask-llm/mcp@latest` or `npm install -g @ask-llm/mcp`); do not omit those fields to make the call succeed. Never make an unpinned generic `ask-llm` call.
|
|
69
69
|
|
package/agents/sol-reviewer.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sol-reviewer
|
|
3
|
-
description: Coordinates an isolated, read-only code review explicitly pinned to OpenAI GPT-
|
|
3
|
+
description: Coordinates an isolated, read-only code review explicitly pinned to OpenAI GPT-6 Sol and reports only source-verified, high-confidence correctness findings.
|
|
4
4
|
model: opus
|
|
5
5
|
effort: high
|
|
6
6
|
color: blue
|
|
@@ -13,7 +13,7 @@ disallowedTools:
|
|
|
13
13
|
<!-- PORTABLE-CONTRACT:START -->
|
|
14
14
|
## Portable contract
|
|
15
15
|
|
|
16
|
-
Review only the supplied changes with Codex explicitly pinned to GPT-
|
|
16
|
+
Review only the supplied changes with Codex explicitly pinned to GPT-6 Sol, high effort, and read-only sandbox. Verify every candidate against source, report only high-confidence correctness findings, and disclose any model or transport fallback.
|
|
17
17
|
<!-- PORTABLE-CONTRACT:END -->
|
|
18
18
|
|
|
19
19
|
<!-- HOST-ADAPTER:CLAUDE-CODE:START -->
|
|
@@ -23,14 +23,14 @@ The frontmatter and detailed implementation below define Claude Code subagent ex
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
You are a code review coordinator for a model-pinned OpenAI GPT-
|
|
26
|
+
You are a code review coordinator for a model-pinned OpenAI GPT-6 Sol review. Send the changes to Codex, then independently validate every candidate against the current source.
|
|
27
27
|
|
|
28
28
|
## Workflow
|
|
29
29
|
|
|
30
30
|
1. Inspect `git diff` and `git diff --cached`. Read each affected file around the changed lines.
|
|
31
31
|
2. Apply the nearest `CLAUDE.md` instructions and inspect any ADR explicitly cited by changed code.
|
|
32
32
|
3. Call an available Ask LLM Codex transport with:
|
|
33
|
-
- `model: "gpt-
|
|
33
|
+
- `model: "gpt-6-sol"`
|
|
34
34
|
- `reasoningEffort: "high"`
|
|
35
35
|
- `sandbox: "read-only"`
|
|
36
36
|
- `preferred` unset
|
|
@@ -45,7 +45,7 @@ You are a code review coordinator for a model-pinned OpenAI GPT-5.6 Sol review.
|
|
|
45
45
|
node "${CLAUDE_PLUGIN_ROOT}/scripts/sol-review-transport.mjs" --fallback --plugin-dir "${CLAUDE_PLUGIN_ROOT}" --cli-path "$(command -v codex || true)"
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
Before executing Codex, the runner queries the active Claude MCP inventory again with the active plugin preserved; mirror any session-local `--mcp-config`, `--settings`, `--setting-sources`, and `--strict-mcp-config` flags on the runner command. When the resolved tool is unified `ask-llm`, pass `--tool "<resolved tool name>" --tool-schema "<advertised input JSON schema>"` so an older schema is classified as `unsupported-schema` rather than being called. This makes a parent `preferred` or `unified` result followed by an absent or disconnected subagent tool a registered-but-unavailable state with the corresponding remediation. If the MCP call itself fails at the transport/service boundary, rerun the same fallback command with `--mcp-failed`; do not use that flag for a provider/model response. The runner then executes `codex exec -m gpt-
|
|
48
|
+
Before executing Codex, the runner queries the active Claude MCP inventory again with the active plugin preserved; mirror any session-local `--mcp-config`, `--settings`, `--setting-sources`, and `--strict-mcp-config` flags on the runner command. When the resolved tool is unified `ask-llm`, pass `--tool "<resolved tool name>" --tool-schema "<advertised input JSON schema>"` so an older schema is classified as `unsupported-schema` rather than being called. This makes a parent `preferred` or `unified` result followed by an absent or disconnected subagent tool a registered-but-unavailable state with the corresponding remediation. If the MCP call itself fails at the transport/service boundary, rerun the same fallback command with `--mcp-failed`; do not use that flag for a provider/model response. The runner then executes `codex exec -m gpt-6-sol -c model_reasoning_effort="high" -s read-only --ignore-user-config --ignore-rules --skip-git-repo-check`. The model pin, reasoning-effort override, read-only sandbox, and isolation flags are load-bearing; never drop or substitute them. On a quota or rate-limit failure only, the runner retries once with `${ASK_CODEX_FALLBACK_MODEL:-gpt-5.6-terra}` and identical flags, matching the MCP executor's configurable quota ladder. It writes the review result to stdout unchanged so the validated findings can be relayed without loss. If the `codex` CLI is also unavailable, stop and report that the Sol review could not run. Do not review on another transport, on any model outside the Sol-to-fallback ladder, or in another sandbox mode.
|
|
49
49
|
4. Ask Sol for concrete correctness, security, data-loss, concurrency, resource-lifecycle, and compatibility failures with confidence scores and reproduction conditions.
|
|
50
50
|
5. Read the reported source locations and trace each reproduction path. Drop style preferences, speculative improvements, pre-existing issues, linter/type-checker findings, and behavior documented as intentional.
|
|
51
51
|
6. Report only validated findings with confidence of at least 80/100. Never invent findings to fill a report.
|
package/codex-pair-defaults.json
CHANGED
|
@@ -27,7 +27,7 @@ export interface BrainstormParticipantResult extends BrainstormParticipant {
|
|
|
27
27
|
error?: string;
|
|
28
28
|
}
|
|
29
29
|
export interface BrainstormPanelReport {
|
|
30
|
-
panel: "grok+gpt-
|
|
30
|
+
panel: "grok+gpt-6-sol";
|
|
31
31
|
status: "complete" | "partial" | "failed";
|
|
32
32
|
consensusEligible: boolean;
|
|
33
33
|
synthesisRule: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brainstorm-panel.d.ts","sourceRoot":"","sources":["../src/brainstorm-panel.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,YAAI,MAAM,EAAE,OAAO,CAAU,CAAC;AACrE,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAC3F,eAAO,MAAM,yBAAyB,YAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAU,CAAC;AACvG,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,sBAAsB,EAAE,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,2BAA2B,GACnC,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"brainstorm-panel.d.ts","sourceRoot":"","sources":["../src/brainstorm-panel.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,0BAA0B,YAAI,MAAM,EAAE,OAAO,CAAU,CAAC;AACrE,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAClF,MAAM,MAAM,sBAAsB,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAC3F,eAAO,MAAM,yBAAyB,YAAI,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAU,CAAC;AACvG,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,MAAM,MAAM,yBAAyB,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,sBAAsB,EAAE,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,qBAAqB,EAAE,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,2BAA2B,GACnC,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,uBAAuB,CAAC;IAClC,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,2BAA2B,CAAC;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,2BAA2B,EAAE,CAAC;CAC7C;AAYD,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAqB9E;AAMD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,yBAAyB,CAoBzF;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,qBAAqB,EAAE,GAAG,IAAI,CA4BnF;AAID,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CASpF;AAuLD,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAiBjC"}
|
package/dist/brainstorm-panel.js
CHANGED
|
@@ -13,7 +13,7 @@ function routeAllowed(participant) {
|
|
|
13
13
|
export function parseBrainstormParticipant(spec) {
|
|
14
14
|
const match = spec.match(/^(grok|codex)@(cursor-agent|grok-cli|xai-api|codex-cli):(.+)$/);
|
|
15
15
|
if (!match) {
|
|
16
|
-
throw new Error(`Invalid brainstorm participant "${spec}". Use provider@harness:exact-model-id (for example grok@cursor-agent:
|
|
16
|
+
throw new Error(`Invalid brainstorm participant "${spec}". Use provider@harness:exact-model-id (for example grok@cursor-agent:grok-4.7-high).`);
|
|
17
17
|
}
|
|
18
18
|
const participant = {
|
|
19
19
|
provider: match[1],
|
|
@@ -38,7 +38,7 @@ export function parseBrainstormParticipantList(specs) {
|
|
|
38
38
|
const bare = trimmed.filter((spec) => !spec.includes("@"));
|
|
39
39
|
const routed = trimmed.filter((spec) => spec.includes("@"));
|
|
40
40
|
if (bare.length > 0 && routed.length > 0) {
|
|
41
|
-
throw new Error(`Mixed brainstorm participant lists are not supported: routed ${routed.map((spec) => `"${spec}"`).join(", ")} cannot be combined with bare ${bare.map((spec) => `"${spec}"`).join(", ")}. Use either an all-bare provider list or the exact routed Grok + GPT-
|
|
41
|
+
throw new Error(`Mixed brainstorm participant lists are not supported: routed ${routed.map((spec) => `"${spec}"`).join(", ")} cannot be combined with bare ${bare.map((spec) => `"${spec}"`).join(", ")}. Use either an all-bare provider list or the exact routed Grok + GPT-6 Sol panel. No participant was substituted, rerouted, or dispatched.`);
|
|
42
42
|
}
|
|
43
43
|
if (routed.length > 0) {
|
|
44
44
|
return { mode: "exact", participants: routed.map(parseBrainstormParticipant) };
|
|
@@ -51,15 +51,15 @@ export function parseBrainstormParticipantList(specs) {
|
|
|
51
51
|
}
|
|
52
52
|
export function validateBrainstormPanel(participants) {
|
|
53
53
|
if (participants.length !== 2) {
|
|
54
|
-
throw new Error("The Grok + GPT-
|
|
54
|
+
throw new Error("The Grok + GPT-6 Sol panel requires exactly two participants.");
|
|
55
55
|
}
|
|
56
56
|
const providers = participants.map(({ provider }) => provider);
|
|
57
57
|
if (new Set(providers).size !== providers.length) {
|
|
58
|
-
throw new Error("The Grok + GPT-
|
|
58
|
+
throw new Error("The Grok + GPT-6 Sol panel requires one Grok participant and one Codex participant.");
|
|
59
59
|
}
|
|
60
60
|
for (const required of BRAINSTORM_PANEL_PROVIDERS) {
|
|
61
61
|
if (!providers.includes(required)) {
|
|
62
|
-
throw new Error(`The Grok + GPT-
|
|
62
|
+
throw new Error(`The Grok + GPT-6 Sol panel is missing provider "${required}".`);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
for (const participant of participants) {
|
|
@@ -69,8 +69,8 @@ export function validateBrainstormPanel(participants) {
|
|
|
69
69
|
if (!routeAllowed(participant)) {
|
|
70
70
|
throw new Error(`Unsupported brainstorm route ${participant.provider}@${participant.harness}. No provider or harness fallback was attempted.`);
|
|
71
71
|
}
|
|
72
|
-
if (participant.provider === "codex" && !participant.model.toLowerCase().includes("gpt-
|
|
73
|
-
throw new Error(`The Codex participant must request an exact GPT-
|
|
72
|
+
if (participant.provider === "codex" && !participant.model.toLowerCase().includes("gpt-6-sol")) {
|
|
73
|
+
throw new Error(`The Codex participant must request an exact GPT-6 Sol model ID; received "${participant.model}". No model substitution was attempted.`);
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
}
|
|
@@ -237,7 +237,7 @@ export async function runBrainstormPanel(options) {
|
|
|
237
237
|
const participants = await Promise.all(options.participants.map((participant) => invokeParticipant(participant, options.prompt, options.signal, options.onProgress)));
|
|
238
238
|
const successCount = participants.filter(({ status }) => status === "fulfilled").length;
|
|
239
239
|
return {
|
|
240
|
-
panel: "grok+gpt-
|
|
240
|
+
panel: "grok+gpt-6-sol",
|
|
241
241
|
status: successCount === 2 ? "complete" : successCount === 1 ? "partial" : "failed",
|
|
242
242
|
consensusEligible: successCount === 2,
|
|
243
243
|
synthesisRule: SYNTHESIS_RULE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brainstorm-panel.js","sourceRoot":"","sources":["../src/brainstorm-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AAGrE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAU,CAAC;AAuCvG,MAAM,cAAc,GAClB,yOAAyO,CAAC;AAE5O,SAAS,YAAY,CAAC,WAAkC;IACtD,IAAI,WAAW,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,cAAc,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC1F,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,
|
|
1
|
+
{"version":3,"file":"brainstorm-panel.js","sourceRoot":"","sources":["../src/brainstorm-panel.ts"],"names":[],"mappings":"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"}
|
package/dist/brainstorm-run.js
CHANGED
|
@@ -29,7 +29,7 @@ async function main() {
|
|
|
29
29
|
const specs = parseArgs(process.argv.slice(2));
|
|
30
30
|
const list = parseBrainstormParticipantList(specs);
|
|
31
31
|
if (list.mode !== "exact") {
|
|
32
|
-
throw new Error(`ask-brainstorm-run executes only the exact routed Grok + GPT-
|
|
32
|
+
throw new Error(`ask-brainstorm-run executes only the exact routed Grok + GPT-6 Sol panel; bare providers (${list.providers.join(", ")}) use the standard coordinator dispatch. No participant was dispatched.`);
|
|
33
33
|
}
|
|
34
34
|
const prompt = await readStdin();
|
|
35
35
|
const report = await runBrainstormPanel({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brainstorm-run.js","sourceRoot":"","sources":["../src/brainstorm-run.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3F,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACtF,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,yDAAyD,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb
|
|
1
|
+
{"version":3,"file":"brainstorm-run.js","sourceRoot":"","sources":["../src/brainstorm-run.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,8BAA8B,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3F,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACtF,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACX,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,yDAAyD,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,KAAK,UAAU,SAAS;IACtB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,6FAA6F,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,yEAAyE,CAChM,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACtC,MAAM;YACN,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;SAChD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ask-llm/plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.0",
|
|
4
4
|
"description": "Ask LLM review, comparison, brainstorming, image, verification, and pairing workflows for Claude Code, Cursor Agent, and Pi",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -83,12 +83,12 @@
|
|
|
83
83
|
]
|
|
84
84
|
},
|
|
85
85
|
"dependencies": {
|
|
86
|
-
"@ask-llm/antigravity-mcp": "^0.7.
|
|
87
|
-
"@ask-llm/codex-mcp": "^0.
|
|
88
|
-
"@ask-llm/gemini-mcp": "^1.9.
|
|
89
|
-
"@ask-llm/grok-mcp": "^0.
|
|
90
|
-
"@ask-llm/mcp": "^0.
|
|
91
|
-
"@ask-llm/ollama-mcp": "^0.6.
|
|
86
|
+
"@ask-llm/antigravity-mcp": "^0.7.7",
|
|
87
|
+
"@ask-llm/codex-mcp": "^0.8.0",
|
|
88
|
+
"@ask-llm/gemini-mcp": "^1.9.2",
|
|
89
|
+
"@ask-llm/grok-mcp": "^0.2.0",
|
|
90
|
+
"@ask-llm/mcp": "^0.11.0",
|
|
91
|
+
"@ask-llm/ollama-mcp": "^0.6.3"
|
|
92
92
|
},
|
|
93
93
|
"peerDependencies": {
|
|
94
94
|
"@earendil-works/pi-ai": "*",
|
|
@@ -280,7 +280,7 @@ function parseNumberFrontmatter(content: string, key: string, fallback: number):
|
|
|
280
280
|
async function readConfig(markerDir: string): Promise<{ config: PairConfig; context: string }> {
|
|
281
281
|
const context = await readFile(join(markerDir, ".codex-pair", "context.md"), "utf8");
|
|
282
282
|
const threshold = context.match(/^surfaceThreshold:\s*(high|med|low)\s*$/m)?.[1];
|
|
283
|
-
const model = context.match(/^model:\s*([^\n]+)$/m)?.[1]?.trim() || "gpt-
|
|
283
|
+
const model = context.match(/^model:\s*([^\n]+)$/m)?.[1]?.trim() || "gpt-6-sol";
|
|
284
284
|
return {
|
|
285
285
|
context,
|
|
286
286
|
config: {
|
|
@@ -693,6 +693,7 @@ export function registerCodexPair(pi: ExtensionAPI): void {
|
|
|
693
693
|
const result = await executeCodexCLI({
|
|
694
694
|
prompt,
|
|
695
695
|
model: config.model,
|
|
696
|
+
reasoningEffort: "medium",
|
|
696
697
|
sandbox: "read-only",
|
|
697
698
|
signal: controller.signal,
|
|
698
699
|
});
|
|
@@ -41,7 +41,7 @@ const prompt = Type.String({ minLength: 1, maxLength: 100000, description: "Prom
|
|
|
41
41
|
const codexSchema = Type.Object({
|
|
42
42
|
prompt,
|
|
43
43
|
model: Type.Optional(Type.String({ minLength: 1 })),
|
|
44
|
-
reasoningEffort: Type.Optional(StringEnum(["low", "medium", "high", "xhigh", "max"] as const)),
|
|
44
|
+
reasoningEffort: Type.Optional(StringEnum(["low", "medium", "high", "xhigh", "max", "ultra"] as const)),
|
|
45
45
|
sessionId: Type.Optional(Type.String()),
|
|
46
46
|
includeDirs: Type.Optional(relativeDirs),
|
|
47
47
|
preferred: Type.Optional(Type.Boolean()),
|
|
@@ -84,7 +84,7 @@ const DEFAULTS_PATH = join(SCRIPT_DIR, "..", "codex-pair-defaults.json");
|
|
|
84
84
|
// without duplicating literals across files. A structural test links the
|
|
85
85
|
// JSON values to constants.ts so drift fails CI. If the file is missing or
|
|
86
86
|
// malformed, fall through to env vars and hardcoded literals.
|
|
87
|
-
let CODEX_PAIR_DEFAULTS = { model: "gpt-
|
|
87
|
+
let CODEX_PAIR_DEFAULTS = { model: "gpt-6-sol", fallbackModel: "gpt-5.6-terra" };
|
|
88
88
|
try {
|
|
89
89
|
CODEX_PAIR_DEFAULTS = JSON.parse(readFileSync(DEFAULTS_PATH, "utf8"));
|
|
90
90
|
} catch {
|
|
@@ -98,7 +98,7 @@ const MARKER_FILE = join(PAIR_ROOT_DIR, CONTEXT_FILENAME);
|
|
|
98
98
|
const WATCHED_TOOLS = new Set(["Edit", "Write", "MultiEdit"]);
|
|
99
99
|
const DEFAULT_MODEL = process.env.ASK_CODEX_MODEL ?? CODEX_PAIR_DEFAULTS.model;
|
|
100
100
|
const FALLBACK_MODEL = process.env.ASK_CODEX_FALLBACK_MODEL ?? CODEX_PAIR_DEFAULTS.fallbackModel;
|
|
101
|
-
const CODEX_REASONING_EFFORTS = new Set(["low", "medium", "high", "xhigh", "max"]);
|
|
101
|
+
const CODEX_REASONING_EFFORTS = new Set(["low", "medium", "high", "xhigh", "max", "ultra"]);
|
|
102
102
|
const configuredReasoningEffort = process.env.ASK_CODEX_REASONING_EFFORT;
|
|
103
103
|
const DEFAULT_REASONING_EFFORT = CODEX_REASONING_EFFORTS.has(configuredReasoningEffort)
|
|
104
104
|
? configuredReasoningEffort
|
|
@@ -833,6 +833,7 @@ async function runWithBroker({ prompt, timeoutMs, model, markerDir }) {
|
|
|
833
833
|
baseInstructions: "",
|
|
834
834
|
prompt,
|
|
835
835
|
model,
|
|
836
|
+
effort: DEFAULT_REASONING_EFFORT,
|
|
836
837
|
timeoutMs,
|
|
837
838
|
});
|
|
838
839
|
} finally {
|
|
@@ -10,7 +10,7 @@ export const ASK_CODEX_TOOL = "ask-codex";
|
|
|
10
10
|
export const ASK_LLM_PACKAGE = "@ask-llm/mcp";
|
|
11
11
|
export const ASK_LLM_TOOL = "ask-llm";
|
|
12
12
|
export const UNIFIED_CODEX_OPTION_KEYS = ["reasoningEffort", "includeDirs", "preferred", "sandbox"];
|
|
13
|
-
export const SOL_MODEL = "gpt-
|
|
13
|
+
export const SOL_MODEL = "gpt-6-sol";
|
|
14
14
|
export const TERRA_MODEL = "gpt-5.6-terra";
|
|
15
15
|
|
|
16
16
|
const MISSING_REGISTRATION_REMEDIATION =
|
|
@@ -6,7 +6,7 @@ description: Send a topic to an explicit multi-model panel, then synthesize find
|
|
|
6
6
|
<!-- PORTABLE-CONTRACT:START -->
|
|
7
7
|
## Portable contract
|
|
8
8
|
|
|
9
|
-
For the standard workflow, the current host model records an independent analysis before seeing external answers, then sends the same bounded topic and Context Brief concurrently to the selected providers. For the exact Grok + GPT-
|
|
9
|
+
For the standard workflow, the current host model records an independent analysis before seeing external answers, then sends the same bounded topic and Context Brief concurrently to the selected providers. For the exact Grok + GPT-6 Sol workflow, the host is a non-voting evidence verifier/synthesizer: the brainstorming panel has exactly those two requested participants. Cross-check source where possible and synthesize consensus, unique insights, contradictions, rejected false positives, failures, and confidence. Keep provider, harness, requested model ID, independently observed served model ID, and Cursor's reported display label separate. Only direct xAI API / Grok CLI routes can report a served ID, and only when the provider/CLI payload actually carries one; a disclosed same-product alias/snapshot resolution (for example `grok-4.7` served as a dated `grok-4.7-<snapshot>`, or `grok-4-latest` served as `grok-4-<snapshot>`) stays eligible, while a different model is a mismatch and ineligible. A direct route whose payload omits the model stays selected-only. Cursor Agent and Codex CLI echo the requested ID, so that attribution is selected-only and unverifiable—never call a requested or selected ID the actual model. Never select Cursor Auto, infer a requested ID from a display label, silently change a model, or pivot to another harness/provider.
|
|
10
10
|
<!-- PORTABLE-CONTRACT:END -->
|
|
11
11
|
|
|
12
12
|
## Host adapters
|
|
@@ -15,8 +15,8 @@ For the standard workflow, the current host model records an independent analysi
|
|
|
15
15
|
|
|
16
16
|
The current Pi host model completes its independent evidence memo first. Standard provider lists use native `ask-multi`. A routed participant uses the matching native tool instead: `provider@cursor-agent:model` calls `ask-cursor-agent` with separate `provider` and exact `model`; direct Grok calls `ask-grok` with the explicit `harness` and exact model. A participant list mixing routed `provider@harness:exact-model-id` entries with bare provider names is refused before any tool call; nothing is dispatched or substituted. For the exact Grok + Sol panel, issue only these two consultations (concurrently when the host supports it):
|
|
17
17
|
|
|
18
|
-
- `ask-cursor-agent({ provider: "grok", model: "
|
|
19
|
-
- `ask-cursor-agent({ provider: "codex", model: "gpt-
|
|
18
|
+
- `ask-cursor-agent({ provider: "grok", model: "grok-4.7-high", prompt })`
|
|
19
|
+
- `ask-cursor-agent({ provider: "codex", model: "gpt-6-sol-high", prompt })`
|
|
20
20
|
|
|
21
21
|
Do not call `ask-multi` for that panel because it cannot express Cursor harness identity, and do not call Gemini. Treat the host memo as non-voting verification evidence, not a third panel answer. If either participant fails, label the run partial and do not claim two-model consensus.
|
|
22
22
|
|
|
@@ -38,19 +38,19 @@ Consult an explicitly selected panel on a topic, then synthesize the responses a
|
|
|
38
38
|
- Bare `grok` retains the existing direct canonical runner and its explicit `ASK_GROK_HARNESS` selection (`xai-api` default or `grok-cli`) for compatibility. That direct route never falls back.
|
|
39
39
|
- Preferred explicit syntax is `provider@harness:exact-model-id`. Supported routed participants are:
|
|
40
40
|
- `grok@cursor-agent:<exact ID from agent --list-models>` (preferred Grok route)
|
|
41
|
-
- `codex@cursor-agent:<exact GPT-
|
|
41
|
+
- `codex@cursor-agent:<exact GPT-6 Sol ID from agent --list-models>`
|
|
42
42
|
- `grok@grok-cli:<exact ID from grok models>` (explicit Grok Build alternative)
|
|
43
43
|
- `grok@xai-api:<exact ID from GET /v1/models>`
|
|
44
|
-
- `codex@codex-cli:gpt-
|
|
44
|
+
- `codex@codex-cli:gpt-6-sol` (explicit direct Codex alternative; any reported fallback makes the exact panel partial)
|
|
45
45
|
- Never accept `Auto`, map a display label to an ID, or substitute a route. A missing registration/harness, unavailable model, auth failure, or unsupported provider/harness pair is a participant failure with its actionable error preserved.
|
|
46
|
-
- A participant list must be either all bare provider names or all routed `provider@harness:exact-model-id` specs. A mixed list (for example `grok@cursor-agent:
|
|
46
|
+
- A participant list must be either all bare provider names or all routed `provider@harness:exact-model-id` specs. A mixed list (for example `grok@cursor-agent:grok-4.7-high,antigravity`) is refused before any dispatch with the "Mixed brainstorm participant lists are not supported" error; no participant is rerouted to a bare runner, substituted, or dispatched. Generalized mixed panels are deferred to a future ADR.
|
|
47
47
|
- Everything after the participant list is the topic.
|
|
48
48
|
- In standard mode, Claude Opus remains a participant. In the exact Grok + Sol mode below, Claude is only the non-voting evidence verifier/synthesizer so the panel has exactly two participants.
|
|
49
49
|
|
|
50
|
-
**Architect workflow — exactly Grok + GPT-
|
|
50
|
+
**Architect workflow — exactly Grok + GPT-6 Sol, no Gemini:**
|
|
51
51
|
|
|
52
52
|
```text
|
|
53
|
-
/brainstorm grok@cursor-agent:
|
|
53
|
+
/brainstorm grok@cursor-agent:grok-4.7-high,codex@cursor-agent:gpt-6-sol-high "review this architecture"
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
These IDs are exact catalog examples verified for this workflow; account catalogs can change, so use `agent --list-models` and replace an unavailable ID explicitly. The coordinator must not call Gemini, the direct Grok runner, xAI API, Grok Build, or Codex CLI for this invocation.
|
|
@@ -58,7 +58,7 @@ These IDs are exact catalog examples verified for this workflow; account catalog
|
|
|
58
58
|
**Explicit Grok Build alternative (still no Gemini):**
|
|
59
59
|
|
|
60
60
|
```text
|
|
61
|
-
/brainstorm grok@grok-cli:grok-
|
|
61
|
+
/brainstorm grok@grok-cli:grok-4.7,codex@cursor-agent:gpt-6-sol-high "review this architecture"
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
This route is valid only when the installed Grok Build contract supports Ask LLM's headless JSON/read-only flags. Failure is terminal for the Grok participant; do not pivot to Cursor or xAI.
|
|
@@ -82,7 +82,7 @@ After saving, confirm the absolute path of the created file and its byte size in
|
|
|
82
82
|
|
|
83
83
|
**Sandbox:** pass `sandbox: "workspace-write"` on this `ask-codex` or fully pinned `ask-llm({ provider: "codex", ... })` call. Codex defaults to the read-only review sandbox (ADR-136), under which it cannot write the PNG to disk; image generation is the sanctioned exception that needs Codex to write the output file itself. The unified server will not silently strip `sandbox`; an older `@ask-llm/mcp` that cannot honor it must fail closed.
|
|
84
84
|
|
|
85
|
-
**Default model:** let `ask-codex` use its default (`gpt-
|
|
85
|
+
**Default model:** let `ask-codex` use its default (`gpt-6-astra`). The image_generation tool is invoked by the model regardless of which Codex chat model is selected — model selection here is about the orchestrating agent, not the image model itself.
|
|
86
86
|
|
|
87
87
|
**Wall time expectation:** with gpt-image-2, simple images typically render in **under a minute** end-to-end; complex prompts or high-resolution (up to 4K) renders can take a **few minutes** because gpt-image-2's thinking mode plans layout and self-checks before generating. This is normal; do not retry assuming a hang. The first call in a session is slowest because the image_generation tool definitions aren't cached yet; subsequent calls in the same session are faster (Codex CLI prompt-caches aggressively).
|
|
88
88
|
|
|
@@ -113,7 +113,7 @@ Phase 3 — `ask-codex` is called with the prompt template above.
|
|
|
113
113
|
|
|
114
114
|
Phase 4 — `ls -la /tmp/codex-images/2026-04-24/cat-reading-a-book.png` shows a 248KB file. Skill returns:
|
|
115
115
|
|
|
116
|
-
> Generated **/tmp/codex-images/2026-04-24/cat-reading-a-book.png** (248 KB) via gpt-image-2. Used Codex (gpt-
|
|
116
|
+
> Generated **/tmp/codex-images/2026-04-24/cat-reading-a-book.png** (248 KB) via gpt-image-2. Used Codex (gpt-6-sol) as orchestrator. Refined prompt: *minimalist illustration of a cat reading a book, flat vector style, two-tone palette, no human figures, square framing, transparent background*. Reading inline below.
|
|
117
117
|
|
|
118
118
|
[image renders]
|
|
119
119
|
|
|
@@ -24,7 +24,7 @@ Cursor discovers this `SKILL.md` through its supported Agent Skills surface; `/c
|
|
|
24
24
|
{"mcpServers":{"ask-llm":{"command":"npx","args":["-y","@ask-llm/mcp"]}}}
|
|
25
25
|
```
|
|
26
26
|
Save that as project `.cursor/mcp.json` or user `~/.cursor/mcp.json`, ensure `codex` is authenticated, reload the server from Cursor Settings → Tools & MCP or restart Cursor Agent, and invoke `/codex-pair` again. A split `codex` entry using `@ask-llm/codex-mcp` is an explicit user-installed alternative when only the `ask-codex` leaf is desired; keep one registration per server (the plugin already provides `ask-llm`, so do not add a second `ask-llm` entry merely to duplicate it).
|
|
27
|
-
2. Require both `model=<exact ID>` and `effort=low|medium|high|xhigh|max`; parse optional `include=dir1,dir2`. If model or effort is omitted, ask the user to
|
|
27
|
+
2. Require both `model=<exact ID>` and `effort=low|medium|high|xhigh|max|ultra`; parse optional `include=dir1,dir2`. If model or effort is omitted, ask the user to confirm the pair defaults `model=gpt-6-sol` and `effort=medium`, then stop before reading extra context, requesting consent, or calling a provider. Do not infer either value from the Cursor host environment: the MCP server may resolve different `ASK_CODEX_MODEL` or `ASK_CODEX_REASONING_EFFORT` values. Reject absolute, `..`, and `~` include paths; cap at 32. Build a bounded context manifest (20 KB/file, 100 KB/request) from task requirements, relevant project instructions, changed files, and tests. Do not send secrets or unrelated files.
|
|
28
28
|
3. Before the first provider call, show host=`Cursor Agent`, reviewer provider=`codex`, selected transport=`ask-codex` or unified `ask-llm`, exact user-supplied model, exact user-supplied reasoning effort, include directories, read-only behavior, data/quota boundary, and fresh persisted-session intent. Ask for explicit confirmation using Cursor's normal conversational approval surface. Refusal ends `cancelled` with no provider call.
|
|
29
29
|
4. First call exactly one of these protocol shapes, substituting the already disclosed explicit choices:
|
|
30
30
|
```json
|
|
@@ -196,7 +196,8 @@ Render a status table:
|
|
|
196
196
|
codex-pair status — <MARKER_DIR>
|
|
197
197
|
|
|
198
198
|
State: ACTIVE ✓
|
|
199
|
-
Marker model: <model from frontmatter of context.md, or "default (gpt-
|
|
199
|
+
Marker model: <model from frontmatter of context.md, or "default (gpt-6-sol)">
|
|
200
|
+
Reasoning effort: medium (override with ASK_CODEX_REASONING_EFFORT)
|
|
200
201
|
Surface threshold: <surfaceThreshold from frontmatter, or "med">
|
|
201
202
|
Cost/review: varies by Codex plan and workload / ~13–50s wall-clock
|
|
202
203
|
|
|
@@ -303,7 +304,7 @@ Claude edits src/billing/charge.ts
|
|
|
303
304
|
|
|
304
305
|
## Cost characteristics
|
|
305
306
|
|
|
306
|
-
- Usage varies by Codex plan and workload (`gpt-
|
|
307
|
+
- Usage varies by Codex plan and workload (`gpt-6-sol` with reasoning tokens)
|
|
307
308
|
- ~13–50s per file wall-clock
|
|
308
309
|
- Files >20 KB skipped (override with `CODEX_PAIR_MAX_FILE_BYTES`)
|
|
309
310
|
- node_modules, dist, lockfiles, images skipped automatically
|
|
@@ -47,6 +47,6 @@ For **recall-first** review on hot-path code (money handling, security paths, sp
|
|
|
47
47
|
|
|
48
48
|
2. If the diff is empty, inform the user there are no changes to review.
|
|
49
49
|
|
|
50
|
-
3. Launch the `codex-reviewer` agent with the diff content. The agent handles the Codex prompt structure and output formatting, using GPT-
|
|
50
|
+
3. Launch the `codex-reviewer` agent with the diff content. The agent handles the Codex prompt structure and output formatting, using GPT-6 Astra at `high` reasoning effort with automatic Terra fallback.
|
|
51
51
|
|
|
52
52
|
<!-- HOST-ADAPTER:CLAUDE-CODE:END -->
|
|
@@ -35,9 +35,9 @@ Run an iterative pair-programming session in which Claude remains the sole edito
|
|
|
35
35
|
Accept optional command text in this form (ask for any missing choice):
|
|
36
36
|
|
|
37
37
|
```text
|
|
38
|
-
/grok-pair route=cursor-agent model=
|
|
39
|
-
/grok-pair route=xai-api model=grok-4.
|
|
40
|
-
/grok-pair route=grok-cli model=grok-
|
|
38
|
+
/grok-pair route=cursor-agent model=grok-4.7-high include=packages/api,packages/shared <task>
|
|
39
|
+
/grok-pair route=xai-api model=grok-4.7 effort=xhigh <task>
|
|
40
|
+
/grok-pair route=grok-cli model=grok-4.7 effort=high <task>
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
Supported routes:
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sol-review
|
|
3
|
-
description: Review the current code changes specifically with OpenAI GPT-
|
|
3
|
+
description: Review the current code changes specifically with OpenAI GPT-6 Sol. Use when the user asks for a Sol review, says "review with Sol", wants a model-pinned Codex review, or invokes /sol-review.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<!-- PORTABLE-CONTRACT:START -->
|
|
7
7
|
## Portable contract
|
|
8
8
|
|
|
9
|
-
Gather a bounded diff and context brief, request a read-only Codex review explicitly pinned to `gpt-
|
|
9
|
+
Gather a bounded diff and context brief, request a read-only Codex review explicitly pinned to `gpt-6-sol` with `reasoningEffort: "high"`, verify findings against source, and disclose any model or transport fallback. Do not silently substitute another provider.
|
|
10
10
|
<!-- PORTABLE-CONTRACT:END -->
|
|
11
11
|
|
|
12
12
|
## Host adapters
|
|
13
13
|
|
|
14
14
|
### Pi adapter
|
|
15
15
|
|
|
16
|
-
Call `ask-codex` with `model: "gpt-
|
|
16
|
+
Call `ask-codex` with `model: "gpt-6-sol"`, `reasoningEffort: "high"`, and `sandbox: "read-only"`; apply only the portable contract in `../../agents/sol-reviewer.md` and disclose fallback metadata.
|
|
17
17
|
|
|
18
18
|
<!-- HOST-ADAPTER:CLAUDE-CODE:START -->
|
|
19
19
|
### Claude Code adapter
|
|
@@ -24,7 +24,7 @@ The existing detailed workflow below is the Claude Code adapter. Its Agent, MCP,
|
|
|
24
24
|
|
|
25
25
|
# Sol Code Review
|
|
26
26
|
|
|
27
|
-
Run a read-only, precision-first review explicitly pinned to GPT-
|
|
27
|
+
Run a read-only, precision-first review explicitly pinned to GPT-6 Sol at high reasoning effort.
|
|
28
28
|
|
|
29
29
|
## Workflow
|
|
30
30
|
|
|
@@ -40,6 +40,6 @@ Run a read-only, precision-first review explicitly pinned to GPT-5.6 Sol at high
|
|
|
40
40
|
6. Launch the `sol-reviewer` agent with the diff and a compact context brief containing the changed files, applicable conventions, referenced ADRs, the user's requested review focus, and the complete preflight result.
|
|
41
41
|
7. Return the agent's validated findings without adding unverified issues.
|
|
42
42
|
|
|
43
|
-
The reviewer must call `ask-codex` with `model: "gpt-
|
|
43
|
+
The reviewer must call `ask-codex` with `model: "gpt-6-sol"`, `reasoningEffort: "high"`, and `sandbox: "read-only"`, or the unified `ask-llm` equivalent with `provider: "codex"` and those same fields, or use the shipped CLI fallback runner when no usable MCP tool is available, its schema cannot honor those options, or its invocation fails at the transport/service boundary. That runner executes the sanctioned `codex exec -m gpt-6-sol -c model_reasoning_effort="high" -s read-only --ignore-user-config --ignore-rules --skip-git-repo-check` contract and relays its result unchanged. This explicit pin distinguishes `/sol-review` from `/codex-review`, which follows the configured Codex default. Both fallback kinds must be disclosed in the report: a Terra quota fallback means the requested Sol review did not complete on Sol, and a CLI transport fallback must report missing registration, registered-service unavailability, an unsupported unified schema, or an unreadable inventory without claiming a state that could not be determined.
|
|
44
44
|
|
|
45
45
|
<!-- HOST-ADAPTER:CLAUDE-CODE:END -->
|