Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion agent/ambiguity-analyst.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: >-
Read-only planning analyst for uncovering assumptions, unknowns, and decision forks.
mode: subagent
model: openai/gpt-5.6-sol
model: openai/gpt-6.1-sol
tools:
bash: false
read: true
Expand Down
2 changes: 1 addition & 1 deletion agent/explore.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: >-
Read-only internal codebase scout for fast discovery of implementation locations and local patterns.
mode: subagent
model: openai/gpt-5.6-luna
model: openai/gpt-6-luna
tools:
bash: false
read: true
Expand Down
2 changes: 1 addition & 1 deletion agent/oracle.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: >-
Read-only technical advisor for hard architecture and debugging decisions under uncertainty.
mode: subagent
model: openai/gpt-5.6-sol
model: openai/gpt-6.1-sol
tools:
bash: false
read: true
Expand Down
2 changes: 1 addition & 1 deletion agent/plan-critic.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: >-
Read-only plan reviewer focused on feasibility, risk coverage, and testability before execution.
mode: subagent
model: openai/gpt-5.6-sol
model: openai/gpt-6.1-sol
tools:
bash: false
read: true
Expand Down
2 changes: 1 addition & 1 deletion agent/release-scribe.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: >-
Read-only release documentation specialist for PR summaries, changelog entries, and concise release notes.
mode: subagent
model: openai/gpt-5.6-luna
model: openai/gpt-6-luna
tools:
bash: true
read: true
Expand Down
2 changes: 1 addition & 1 deletion agent/reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: >-
Read-only implementation reviewer focused on correctness, maintainability, safety, and regressions.
mode: subagent
model: openai/gpt-5.6-sol
model: openai/gpt-6.1-sol
tools:
bash: false
read: true
Expand Down
2 changes: 1 addition & 1 deletion agent/specs/ambiguity-analyst.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "ambiguity-analyst",
"mode": "subagent",
"model": "openai/gpt-5.6-sol",
"model": "openai/gpt-6.1-sol",
"description_template": "Read-only planning analyst for uncovering assumptions, unknowns, and decision forks.",
"tools": {
"bash": false,
Expand Down
2 changes: 1 addition & 1 deletion agent/specs/explore.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "explore",
"mode": "subagent",
"model": "openai/gpt-5.6-luna",
"model": "openai/gpt-6-luna",
"description_template": "Read-only internal codebase scout for fast discovery of implementation locations and local patterns.",
"tools": {
"bash": false,
Expand Down
2 changes: 1 addition & 1 deletion agent/specs/oracle.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "oracle",
"mode": "subagent",
"model": "openai/gpt-5.6-sol",
"model": "openai/gpt-6.1-sol",
"description_template": "Read-only technical advisor for hard architecture and debugging decisions under uncertainty.",
"tools": {
"bash": false,
Expand Down
2 changes: 1 addition & 1 deletion agent/specs/plan-critic.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "plan-critic",
"mode": "subagent",
"model": "openai/gpt-5.6-sol",
"model": "openai/gpt-6.1-sol",
"description_template": "Read-only plan reviewer focused on feasibility, risk coverage, and testability before execution.",
"tools": {
"bash": false,
Expand Down
2 changes: 1 addition & 1 deletion agent/specs/release-scribe.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "release-scribe",
"mode": "subagent",
"model": "openai/gpt-5.6-luna",
"model": "openai/gpt-6-luna",
"description_template": "Read-only release documentation specialist for PR summaries, changelog entries, and concise release notes.",
"tools": {
"bash": true,
Expand Down
2 changes: 1 addition & 1 deletion agent/specs/reviewer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "reviewer",
"mode": "subagent",
"model": "openai/gpt-5.6-sol",
"model": "openai/gpt-6.1-sol",
"description_template": "Read-only implementation reviewer focused on correctness, maintainability, safety, and regressions.",
"tools": {
"bash": false,
Expand Down
2 changes: 1 addition & 1 deletion agent/specs/strategic-planner.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "strategic-planner",
"mode": "subagent",
"model": "openai/gpt-5.6-sol",
"model": "openai/gpt-6.1-sol",
"description_template": "Read-only planning specialist for sequencing, milestones, and execution structure.",
"tools": {
"bash": false,
Expand Down
2 changes: 1 addition & 1 deletion agent/specs/verifier.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "verifier",
"mode": "subagent",
"model": "openai/gpt-5.6-luna",
"model": "openai/gpt-6-luna",
"description_template": "Read-only validation specialist for test/lint/build execution and failure triage.",
"tools": {
"bash": true,
Expand Down
2 changes: 1 addition & 1 deletion agent/strategic-planner.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: >-
Read-only planning specialist for sequencing, milestones, and execution structure.
mode: subagent
model: openai/gpt-5.6-sol
model: openai/gpt-6.1-sol
tools:
bash: false
read: true
Expand Down
2 changes: 1 addition & 1 deletion agent/verifier.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
description: >-
Read-only validation specialist for test/lint/build execution and failure triage.
mode: subagent
model: openai/gpt-5.6-luna
model: openai/gpt-6-luna
tools:
bash: true
read: true
Expand Down
12 changes: 6 additions & 6 deletions docs/model-allocation-policy.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ This policy keeps OpenAI Codex as the default path and uses Copilot-provided non

| Band | Routing Category | Default Model | Reasoning | Use Case |
| --- | --- | --- | --- | --- |
| fast | `quick` | `openai/gpt-5.6-luna` | `low` | high-frequency discovery/verification loops |
| fast | `quick` | `openai/gpt-6-luna` | `low` | high-frequency discovery/verification loops |
| standard | `balanced` | `openai/gpt-5.6-terra` | `medium` | normal implementation and planning |
| standard | `visual` | `openai/gpt-5.6-terra` | `medium` | browser-first UX/UI audits and design-heavy refinement |
| standard | `writing` | `openai/gpt-5.6-terra` | `medium` | planning capture and writing-heavy artifact work |
| complex | `deep` | `openai/gpt-5.6-sol` | `medium` | multi-module architecture/debug work |
| critical | `critical` | `openai/gpt-5.6-sol` | `medium` | final risk review, release/security sign-off |
| complex | `deep` | `openai/gpt-6.1-sol` | `medium` | multi-module architecture/debug work |
| critical | `critical` | `openai/gpt-6.1-sol` | `medium` | final risk review, release/security sign-off |

## Default Agent Routing

Expand Down Expand Up @@ -49,10 +49,10 @@ Agent specs explicitly pin category models when a fixed model is required. The p

| Category | Primary | Fallback 1 | Fallback 2 |
| --- | --- | --- | --- |
| `quick` | `openai/gpt-5.6-luna` | Copilot low-latency coding model | Copilot balanced coding model |
| `quick` | `openai/gpt-6-luna` | Copilot low-latency coding model | Copilot balanced coding model |
| `balanced` | `openai/gpt-5.6-terra` (`medium`) | Copilot balanced reasoning model | Copilot high-reasoning model |
| `deep` | `openai/gpt-5.6-sol` (`medium`) | Copilot high-reasoning model | Copilot balanced reasoning model |
| `critical` | `openai/gpt-5.6-sol` (`medium`) | Copilot highest-reasoning available model | Copilot high-reasoning model |
| `deep` | `openai/gpt-6.1-sol` (`medium`) | Copilot high-reasoning model | Copilot balanced reasoning model |
| `critical` | `openai/gpt-6.1-sol` (`medium`) | Copilot highest-reasoning available model | Copilot high-reasoning model |
| `visual` | `openai/gpt-5.6-terra` (`medium`) | Copilot visual-capable reasoning model | Copilot balanced model |
| `writing` | `openai/gpt-5.6-terra` (`medium`) | Copilot strong writing/reasoning model | Copilot balanced model |

Expand Down
6 changes: 3 additions & 3 deletions instructions/model_routing_schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ Task 5.2 adds deterministic settings resolution:

Current default model targets:

- `quick` -> `openai/gpt-5.6-luna`
- `quick` -> `openai/gpt-6-luna`
- `balanced` -> `openai/gpt-5.6-terra`
- `deep` -> `openai/gpt-5.6-sol`
- `critical` -> `openai/gpt-5.6-sol`
- `deep` -> `openai/gpt-6.1-sol`
- `critical` -> `openai/gpt-6.1-sol`

Resolution order is:

Expand Down
6 changes: 3 additions & 3 deletions plugin/gateway-core/routing-profiles.data.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"profiles": {
"quick": {
"description": "Fast responses for routine operational tasks",
"model": "openai/gpt-5.6-luna",
"model": "openai/gpt-6-luna",
"temperature": 0.1,
"reasoning": "low",
"verbosity": "low"
Expand All @@ -17,14 +17,14 @@
},
"deep": {
"description": "Higher-reliability analysis for complex engineering work",
"model": "openai/gpt-5.6-sol",
"model": "openai/gpt-6.1-sol",
"temperature": 0.1,
"reasoning": "medium",
"verbosity": "medium"
},
"critical": {
"description": "Critical-risk analysis and final safety review",
"model": "openai/gpt-5.6-sol",
"model": "openai/gpt-6.1-sol",
"temperature": 0.0,
"reasoning": "medium",
"verbosity": "medium"
Expand Down
10 changes: 5 additions & 5 deletions plugin/gateway-core/test/agent-model-resolver-hook.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ test("agent-model-resolver keeps routing metadata out of the provider prompt", a
assert.equal(prompt, `${traceMarker}\n\n${callerPrompt}`)
assert.equal(prompt.length - callerPrompt.length, 32)
const legacyPrompt = [
"[MODEL ROUTING] Preferred category=quick; model=openai/gpt-5.6-luna; reasoning=low; fallback_policy=openai-default-with-alt-fallback.",
"[MODEL ROUTING] Preferred category=quick; model=openai/gpt-6-luna; reasoning=low; fallback_policy=openai-default-with-alt-fallback.",
"[TOOL SURFACE] subagent=explore; allowed=read,list,glob,grep; denied=bash,write,edit,webfetch,task,todowrite,todoread.",
"",
"[SESSION FLOW] parent_session_id=session-parent; trace_id=trace-fixed",
Expand All @@ -82,8 +82,8 @@ test("agent-model-resolver keeps routing metadata out of the provider prompt", a
].join("\n")
const legacyOverhead = legacyPrompt.length - callerPrompt.length
const resolverOverhead = prompt.length - callerPrompt.length
assert.equal(legacyOverhead, 497)
assert.equal(legacyOverhead - resolverOverhead, 465)
assert.equal(legacyOverhead, 495)
assert.equal(legacyOverhead - resolverOverhead, 463)
assert.equal(output.metadata?.gateway?.delegation?.subagentType, "explore")
assert.equal(output.metadata?.gateway?.delegation?.category, "quick")
assert.equal(output.metadata?.gateway?.delegation?.traceId, "trace-fixed")
Expand Down Expand Up @@ -124,7 +124,7 @@ test("agent-model-resolver removes legacy provider context across reroutes", asy
"Scout repository patterns",
].join("\n"),
prompt: [
"[MODEL ROUTING] Preferred category=quick; model=openai/gpt-5.6-luna; reasoning=low; fallback_policy=openai-default-with-alt-fallback.",
"[MODEL ROUTING] Preferred category=quick; model=openai/gpt-6-luna; reasoning=low; fallback_policy=openai-default-with-alt-fallback.",
"[DELEGATION ROUTER] inferred subagent_type=explore from delegation intent.",
"[TOOL SURFACE] subagent=explore; allowed=read,list,glob,grep; denied=bash,write,edit,webfetch,task,todowrite,todoread.",
"[SESSION FLOW] parent_session_id=session-parent; trace_id=trace-reroute",
Expand Down Expand Up @@ -264,7 +264,7 @@ test("agent-model-resolver emits metadata-first routing telemetry", { concurrenc
assert.equal(resolved.tool_surface_injected, "false")
assert.equal(resolved.tool_policy_source, "agent_spec")
assert.equal(resolved.recommended_category, "quick")
assert.equal(resolved.model, "openai/gpt-5.6-luna")
assert.equal(resolved.model, "openai/gpt-6-luna")
assert.equal(resolved.reasoning, "low")
assert.equal(resolved.route_source, "explicit_subagent_type")
assert.equal(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ test("provider-model-budget-enforcer honors explicit category override and deep
)

assert.equal(reservation?.category, "deep")
assert.equal(reservation?.model, "openai/gpt-5.6-sol")
assert.equal(reservation?.model, "openai/gpt-6.1-sol")
} finally {
if (previousAudit === undefined) {
delete process.env.MY_OPENCODE_GATEWAY_EVENT_AUDIT
Expand Down
14 changes: 7 additions & 7 deletions plugin/gateway-core/test/routing-profiles-shared.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@ import {
routingModelForCategory,
} from "../dist/hooks/shared/routing-profiles.js"

test("routing profiles use the intended GPT-5.6 tiers", () => {
assert.equal(routingModelForCategory("quick"), "openai/gpt-5.6-luna")
test("routing profiles use the intended GPT-6 tiers", () => {
assert.equal(routingModelForCategory("quick"), "openai/gpt-6-luna")
assert.equal(routingModelForCategory("balanced"), "openai/gpt-5.6-terra")
assert.equal(routingModelForCategory("deep"), "openai/gpt-5.6-sol")
assert.equal(routingModelForCategory("critical"), "openai/gpt-5.6-sol")
assert.equal(routingModelForCategory("deep"), "openai/gpt-6.1-sol")
assert.equal(routingModelForCategory("critical"), "openai/gpt-6.1-sol")
assert.equal(routingModelForCategory("visual"), "openai/gpt-5.6-terra")
assert.equal(routingModelForCategory("writing"), "openai/gpt-5.6-terra")
})

test("routing downgrade policy moves between GPT-5.6 tiers", () => {
test("routing downgrade policy moves between GPT-6 tiers", () => {
assert.equal(downgradeRoutingCategory("critical"), "balanced")
assert.equal(downgradeRoutingCategory("deep"), "balanced")
assert.equal(downgradeRoutingModel("openai/gpt-5.6-sol", "critical"), "openai/gpt-5.6-terra")
assert.equal(downgradeRoutingModel("openai/gpt-5.6-terra", "balanced"), "openai/gpt-5.6-luna")
assert.equal(downgradeRoutingModel("openai/gpt-6.1-sol", "critical"), "openai/gpt-5.6-terra")
assert.equal(downgradeRoutingModel("openai/gpt-5.6-terra", "balanced"), "openai/gpt-6-luna")
assert.equal(downgradeRoutingModel("openai/gpt-5.6-terra", "writing"), "openai/gpt-5.6-terra")
})
2 changes: 1 addition & 1 deletion plugin/gateway-core/test/session-recovery-hook.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1288,7 +1288,7 @@ test("session-recovery downgrades repeated provider header timeouts to a lighter
info: {
role: "user",
agent: "build",
model: { providerID: "openai", modelID: "gpt-5.6-sol" },
model: { providerID: "openai", modelID: "gpt-6.1-sol" },
},
},
],
Expand Down
Loading
Loading