feat(codex): advance Codex/OpenAI model defaults to GPT-5.6 (Sol/Terra/Luna)
Update runtimeTierDefaults.codex and providerPresets.openai in model-catalog.json to the GPT-5.6 family (gpt-5.6-sol/terra/luna), advancing from the superseded GPT-5.4/5.5 generation. Model IDs verified against OpenAI developer API docs: - gpt-5.6-sol: flagship, /, reasoning xhigh - gpt-5.6-terra: balanced, .50/, reasoning medium - gpt-5.6-luna: fast/cheap, /, reasoning medium Tier mapping is 1:1 (Sol↔flagship, Terra↔balanced, Luna↔fast), so profile semantics are unchanged — only the underlying IDs advance. Updates: catalog JSON, test assertions (catalog defaults), docs (CONFIGURATION.md + zh-CN/pt-BR translations, workflow settings), and changeset. Closes #2122
This commit is contained in:
5
.changeset/2122-codex-gpt56-model-defaults.md
Normal file
5
.changeset/2122-codex-gpt56-model-defaults.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
type: Changed
|
||||
pr: 0
|
||||
---
|
||||
**Codex/OpenAI default models advance to the GPT-5.6 family (Sol/Terra/Luna)** — the Codex runtime tier defaults and the `openai` provider preset now resolve to current-generation model IDs instead of the superseded GPT-5.4/5.5 line, so Codex users on default profiles get improved agentic coding (Sol) and lower costs (Terra/Luna) without changing any config. (#2122)
|
||||
@@ -1419,7 +1419,7 @@ When `runtime` is set, profile tiers (`opus`/`sonnet`/`haiku`) resolve to runtim
|
||||
| Runtime | `opus` | `sonnet` | `haiku` | reasoning_effort |
|
||||
|---------|--------|----------|---------|------------------|
|
||||
| `claude` | `claude-opus-4-8` | `claude-sonnet-5` | `claude-haiku-4-5` | (not used) |
|
||||
| `codex` | `gpt-5.5` | `gpt-5.4` | `gpt-5.4-mini` | `xhigh` / `medium` / `medium` |
|
||||
| `codex` | `gpt-5.6-sol` | `gpt-5.6-terra` | `gpt-5.6-luna` | `xhigh` / `medium` / `medium` |
|
||||
| `qwen` | `qwen3-max-2026-01-23` | `qwen3-coder-plus` | `qwen3-coder-next` | (not used) |
|
||||
| `opencode` | `anthropic/claude-opus-4-8` | `anthropic/claude-sonnet-5` | `anthropic/claude-haiku-4-5` | (not used) |
|
||||
| `copilot` | `claude-opus-4-8` | `claude-sonnet-5` | `claude-haiku-4-5` | (not used) |
|
||||
@@ -1437,7 +1437,7 @@ When `runtime` is set, profile tiers (`opus`/`sonnet`/`haiku`) resolve to runtim
|
||||
}
|
||||
```
|
||||
|
||||
This resolves `gsd-planner` → `gpt-5.5` (xhigh), `gsd-executor` → `gpt-5.4` (medium), `gsd-codebase-mapper` → `gpt-5.4-mini` (medium). The Codex installer embeds `model = "..."` and `model_reasoning_effort = "..."` in each generated agent TOML.
|
||||
This resolves `gsd-planner` → `gpt-5.6-sol` (xhigh), `gsd-executor` → `gpt-5.6-terra` (medium), `gsd-codebase-mapper` → `gpt-5.6-luna` (medium). The Codex installer embeds `model = "..."` and `model_reasoning_effort = "..."` in each generated agent TOML.
|
||||
|
||||
**Claude example** — explicit opt-in resolves to full Claude IDs (no `resolve_model_ids: true` needed):
|
||||
|
||||
@@ -1502,9 +1502,9 @@ Choose a provider and budget level via the settings workflow; GSD writes the can
|
||||
"model_policy": {
|
||||
"provider": "openai",
|
||||
"budget": "medium",
|
||||
"high": "gpt-5.5",
|
||||
"medium": "gpt-5.4",
|
||||
"low": "gpt-5.4-mini"
|
||||
"high": "gpt-5.6-sol",
|
||||
"medium": "gpt-5.6-terra",
|
||||
"low": "gpt-5.6-luna"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -1520,9 +1520,9 @@ For advanced per-runtime control, `runtime_tiers` accepts explicit entries using
|
||||
"provider": "openai",
|
||||
"runtime_tiers": {
|
||||
"codex": {
|
||||
"opus": { "model": "gpt-5.5", "reasoning_effort": "high" },
|
||||
"sonnet": { "model": "gpt-5.4", "reasoning_effort": "medium" },
|
||||
"haiku": { "model": "gpt-5.4-mini", "reasoning_effort": "low" }
|
||||
"opus": { "model": "gpt-5.6-sol", "reasoning_effort": "high" },
|
||||
"sonnet": { "model": "gpt-5.6-terra", "reasoning_effort": "medium" },
|
||||
"haiku": { "model": "gpt-5.6-luna", "reasoning_effort": "low" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1140,7 +1140,7 @@ A saída JSON de `resolve-model` inclui `reasoning_effort` quando o nível de ru
|
||||
| Runtime | `opus` | `sonnet` | `haiku` | reasoning_effort |
|
||||
|---------|--------|----------|---------|------------------|
|
||||
| `claude` | `claude-opus-4-8` | `claude-sonnet-5` | `claude-haiku-4-5` | (não usado) |
|
||||
| `codex` | `gpt-5.5` | `gpt-5.3-codex` | `gpt-5.4-mini` | `xhigh` / `medium` / `medium` |
|
||||
| `codex` | `gpt-5.6-sol` | `gpt-5.6-terra` | `gpt-5.6-luna` | `xhigh` / `medium` / `medium` |
|
||||
| `gemini` | `gemini-3-pro` | `gemini-3-flash` | `gemini-2.5-flash-lite` | (não usado) |
|
||||
| `qwen` | `qwen3-max-2026-01-23` | `qwen3-coder-plus` | `qwen3-coder-next` | (não usado) |
|
||||
| `opencode` | `anthropic/claude-opus-4-8` | `anthropic/claude-sonnet-5` | `anthropic/claude-haiku-4-5` | (não usado) |
|
||||
@@ -1157,7 +1157,7 @@ A saída JSON de `resolve-model` inclui `reasoning_effort` quando o nível de ru
|
||||
}
|
||||
```
|
||||
|
||||
Isso resolve `gsd-planner` → `gpt-5.5` (xhigh), `gsd-executor` → `gpt-5.3-codex` (medium), `gsd-codebase-mapper` → `gpt-5.4-mini` (medium). O instalador do Codex incorpora `model = "..."` e `model_reasoning_effort = "..."` em cada TOML de agente gerado.
|
||||
Isso resolve `gsd-planner` → `gpt-5.6-sol` (xhigh), `gsd-executor` → `gpt-5.6-terra` (medium), `gsd-codebase-mapper` → `gpt-5.6-luna` (medium). O instalador do Codex incorpora `model = "..."` e `model_reasoning_effort = "..."` em cada TOML de agente gerado.
|
||||
|
||||
**Exemplo Claude** — opt-in explícito resolve para IDs Claude completos (sem necessidade de `resolve_model_ids: true`):
|
||||
|
||||
@@ -1222,9 +1222,9 @@ Escolha um provedor e nível de orçamento via o fluxo de configurações; o GSD
|
||||
"model_policy": {
|
||||
"provider": "openai",
|
||||
"budget": "medium",
|
||||
"high": "gpt-5.5",
|
||||
"medium": "gpt-5.3-codex",
|
||||
"low": "gpt-5.4-mini"
|
||||
"high": "gpt-5.6-sol",
|
||||
"medium": "gpt-5.6-terra",
|
||||
"low": "gpt-5.6-luna"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -1240,9 +1240,9 @@ Para controle avançado por runtime, `runtime_tiers` aceita entradas explícitas
|
||||
"provider": "openai",
|
||||
"runtime_tiers": {
|
||||
"codex": {
|
||||
"opus": { "model": "gpt-5.5", "reasoning_effort": "high" },
|
||||
"sonnet": { "model": "gpt-5.3-codex", "reasoning_effort": "medium" },
|
||||
"haiku": { "model": "gpt-5.4-mini", "reasoning_effort": "low" }
|
||||
"opus": { "model": "gpt-5.6-sol", "reasoning_effort": "high" },
|
||||
"sonnet": { "model": "gpt-5.6-terra", "reasoning_effort": "medium" },
|
||||
"haiku": { "model": "gpt-5.6-luna", "reasoning_effort": "low" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1109,7 +1109,7 @@ minimal < low < medium < high < xhigh < max
|
||||
| 运行时 | `opus` | `sonnet` | `haiku` | reasoning_effort |
|
||||
|---------|--------|----------|---------|------------------|
|
||||
| `claude` | `claude-opus-4-8` | `claude-sonnet-5` | `claude-haiku-4-5` | (不使用) |
|
||||
| `codex` | `gpt-5.5` | `gpt-5.3-codex` | `gpt-5.4-mini` | `xhigh` / `medium` / `medium` |
|
||||
| `codex` | `gpt-5.6-sol` | `gpt-5.6-terra` | `gpt-5.6-luna` | `xhigh` / `medium` / `medium` |
|
||||
| `gemini` | `gemini-3-pro` | `gemini-3-flash` | `gemini-2.5-flash-lite` | (不使用) |
|
||||
| `qwen` | `qwen3-max-2026-01-23` | `qwen3-coder-plus` | `qwen3-coder-next` | (不使用) |
|
||||
| `opencode` | `anthropic/claude-opus-4-8` | `anthropic/claude-sonnet-5` | `anthropic/claude-haiku-4-5` | (不使用) |
|
||||
@@ -1126,7 +1126,7 @@ minimal < low < medium < high < xhigh < max
|
||||
}
|
||||
```
|
||||
|
||||
这将 `gsd-planner` 解析为 `gpt-5.5`(xhigh),`gsd-executor` 解析为 `gpt-5.3-codex`(medium),`gsd-codebase-mapper` 解析为 `gpt-5.4-mini`(medium)。Codex 安装器将 `model = "..."` 和 `model_reasoning_effort = "..."` 嵌入每个生成的 agent TOML。
|
||||
这将 `gsd-planner` 解析为 `gpt-5.6-sol`(xhigh),`gsd-executor` 解析为 `gpt-5.6-terra`(medium),`gsd-codebase-mapper` 解析为 `gpt-5.6-luna`(medium)。Codex 安装器将 `model = "..."` 和 `model_reasoning_effort = "..."` 嵌入每个生成的 agent TOML。
|
||||
|
||||
**Claude 示例** — 显式选择解析到完整 Claude ID(无需 `resolve_model_ids: true`):
|
||||
|
||||
@@ -1191,9 +1191,9 @@ minimal < low < medium < high < xhigh < max
|
||||
"model_policy": {
|
||||
"provider": "openai",
|
||||
"budget": "medium",
|
||||
"high": "gpt-5.5",
|
||||
"medium": "gpt-5.3-codex",
|
||||
"low": "gpt-5.4-mini"
|
||||
"high": "gpt-5.6-sol",
|
||||
"medium": "gpt-5.6-terra",
|
||||
"low": "gpt-5.6-luna"
|
||||
}
|
||||
}
|
||||
```
|
||||
@@ -1209,9 +1209,9 @@ minimal < low < medium < high < xhigh < max
|
||||
"provider": "openai",
|
||||
"runtime_tiers": {
|
||||
"codex": {
|
||||
"opus": { "model": "gpt-5.5", "reasoning_effort": "high" },
|
||||
"sonnet": { "model": "gpt-5.3-codex", "reasoning_effort": "medium" },
|
||||
"haiku": { "model": "gpt-5.4-mini", "reasoning_effort": "low" }
|
||||
"opus": { "model": "gpt-5.6-sol", "reasoning_effort": "high" },
|
||||
"sonnet": { "model": "gpt-5.6-terra", "reasoning_effort": "medium" },
|
||||
"haiku": { "model": "gpt-5.6-luna", "reasoning_effort": "low" }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
"haiku": { "model": "claude-haiku-4-5" }
|
||||
},
|
||||
"codex": {
|
||||
"opus": { "model": "gpt-5.5", "reasoning_effort": "xhigh" },
|
||||
"sonnet": { "model": "gpt-5.4", "reasoning_effort": "medium" },
|
||||
"haiku": { "model": "gpt-5.4-mini", "reasoning_effort": "medium" }
|
||||
"opus": { "model": "gpt-5.6-sol", "reasoning_effort": "xhigh" },
|
||||
"sonnet": { "model": "gpt-5.6-terra", "reasoning_effort": "medium" },
|
||||
"haiku": { "model": "gpt-5.6-luna", "reasoning_effort": "medium" }
|
||||
},
|
||||
"qwen": {
|
||||
"opus": { "model": "qwen3-max-2026-01-23" },
|
||||
@@ -100,9 +100,9 @@
|
||||
"haiku": { "low": { "model": "claude-haiku-4-5" }, "medium": { "model": "claude-haiku-4-5" }, "high": { "model": "claude-sonnet-5" } }
|
||||
},
|
||||
"openai": {
|
||||
"opus": { "low": { "model": "gpt-5.4", "reasoning_effort": "medium" }, "medium": { "model": "gpt-5.5", "reasoning_effort": "high" }, "high": { "model": "gpt-5.5", "reasoning_effort": "xhigh" } },
|
||||
"sonnet": { "low": { "model": "gpt-5.4-mini", "reasoning_effort": "low" }, "medium": { "model": "gpt-5.4", "reasoning_effort": "medium" }, "high": { "model": "gpt-5.5", "reasoning_effort": "medium" } },
|
||||
"haiku": { "low": { "model": "gpt-5.4-mini", "reasoning_effort": "minimal" }, "medium": { "model": "gpt-5.4-mini", "reasoning_effort": "medium" }, "high": { "model": "gpt-5.4", "reasoning_effort": "medium" } }
|
||||
"opus": { "low": { "model": "gpt-5.6-terra", "reasoning_effort": "medium" }, "medium": { "model": "gpt-5.6-sol", "reasoning_effort": "high" }, "high": { "model": "gpt-5.6-sol", "reasoning_effort": "xhigh" } },
|
||||
"sonnet": { "low": { "model": "gpt-5.6-luna", "reasoning_effort": "low" }, "medium": { "model": "gpt-5.6-terra", "reasoning_effort": "medium" }, "high": { "model": "gpt-5.6-sol", "reasoning_effort": "medium" } },
|
||||
"haiku": { "low": { "model": "gpt-5.6-luna", "reasoning_effort": "minimal" }, "medium": { "model": "gpt-5.6-luna", "reasoning_effort": "medium" }, "high": { "model": "gpt-5.6-terra", "reasoning_effort": "medium" } }
|
||||
},
|
||||
"google": {
|
||||
"opus": { "low": { "model": "gemini-2.5-flash-lite" }, "medium": { "model": "gemini-3-flash" }, "high": { "model": "gemini-3.1-pro-preview" } },
|
||||
|
||||
@@ -354,7 +354,7 @@ Built-in tier defaults by runtime:
|
||||
| Runtime | `opus` | `sonnet` | `haiku` |
|
||||
|------------|-------------------------------|---------------------------------|-------------------------------|
|
||||
| `claude` | `claude-opus-4-8` | `claude-sonnet-5` | `claude-haiku-4-5` |
|
||||
| `codex` | `gpt-5.5` | `gpt-5.4` | `gpt-5.4-mini` |
|
||||
| `codex` | `gpt-5.6-sol` | `gpt-5.6-terra` | `gpt-5.6-luna` |
|
||||
| `gemini` | `gemini-3.1-pro-preview` | `gemini-3-flash` | `gemini-2.5-flash-lite` |
|
||||
| `qwen` | `qwen3-max-2026-01-23` | `qwen3-coder-plus` | `qwen3-coder-next` |
|
||||
| `opencode` | `anthropic/claude-opus-4-8` | `anthropic/claude-sonnet-5` | `anthropic/claude-haiku-4-5` |
|
||||
@@ -627,7 +627,7 @@ AskUserQuestion([
|
||||
options: [
|
||||
{ label: "anthropic", description: "claude-opus-4-8 / claude-sonnet-5 / claude-haiku-4-5 (Anthropic / Claude)" },
|
||||
{ label: "anthropic-fable", description: "claude-fable-5 / claude-sonnet-5 / claude-haiku-4-5 (Anthropic / Claude Fable opt-in)" },
|
||||
{ label: "openai", description: "gpt-5.5 / gpt-5.4 / gpt-5.4-mini (OpenAI / Codex)" },
|
||||
{ label: "openai", description: "gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna (OpenAI / Codex)" },
|
||||
{ label: "Other known provider", description: "Type google or qwen; both still use the canonical tier mapping." }
|
||||
]
|
||||
}
|
||||
@@ -662,9 +662,9 @@ Canonical tier mappings by provider and budget:
|
||||
| anthropic-fable | high | claude-fable-5 | claude-fable-5 | claude-sonnet-5 |
|
||||
| anthropic-fable | medium | claude-opus-4-8 | claude-sonnet-5 | claude-haiku-4-5 |
|
||||
| anthropic-fable | low | claude-haiku-4-5 | claude-haiku-4-5 | claude-haiku-4-5 |
|
||||
| openai | high | gpt-5.5 | gpt-5.5 | gpt-5.5 |
|
||||
| openai | medium | gpt-5.5 | gpt-5.4 | gpt-5.4-mini |
|
||||
| openai | low | gpt-5.4-mini | gpt-5.4-mini | gpt-5.4-mini |
|
||||
| openai | high | gpt-5.6-sol | gpt-5.6-sol | gpt-5.6-sol |
|
||||
| openai | medium | gpt-5.6-sol | gpt-5.6-terra | gpt-5.6-luna |
|
||||
| openai | low | gpt-5.6-luna | gpt-5.6-luna | gpt-5.6-luna |
|
||||
| google | high | gemini-3.1-pro-preview | gemini-3.1-pro-preview | gemini-3.1-pro-preview |
|
||||
| google | medium | gemini-3.1-pro-preview | gemini-3-flash | gemini-2.5-flash-lite |
|
||||
| google | low | gemini-2.5-flash-lite | gemini-2.5-flash-lite | gemini-2.5-flash-lite |
|
||||
|
||||
@@ -73,8 +73,8 @@ Parse current values (default to `true` if not present):
|
||||
```
|
||||
Note: Quality, Balanced, Budget, and Adaptive profiles assign semantic tiers
|
||||
(Opus/Sonnet/Haiku) to each agent. When `runtime` is set in .planning/config.json,
|
||||
tiers resolve to runtime-native model IDs — on Codex that's gpt-5.5 / gpt-5.4 /
|
||||
gpt-5.4-mini with appropriate reasoning effort. See "Runtime-Aware Profiles" in
|
||||
tiers resolve to runtime-native model IDs — on Codex that's gpt-5.6-sol / gpt-5.6-terra /
|
||||
gpt-5.6-luna with appropriate reasoning effort. See "Runtime-Aware Profiles" in
|
||||
docs/CONFIGURATION.md.
|
||||
|
||||
If `runtime` is unset on a non-Claude runtime, the profile tiers have no effect on
|
||||
|
||||
@@ -121,7 +121,7 @@ function countMatches(content, pattern) {
|
||||
}
|
||||
|
||||
function assertNoDraftRootKeys(content) {
|
||||
assert.ok(!content.includes('model = "gpt-5.4"'), 'does not inject draft model default');
|
||||
assert.ok(!content.includes('model = "gpt-5.6-terra"'), 'does not inject draft model default');
|
||||
assert.ok(!content.includes('model_reasoning_effort = "high"'), 'does not inject draft reasoning default');
|
||||
assert.ok(!content.includes('disable_response_storage = true'), 'does not inject draft storage default');
|
||||
}
|
||||
|
||||
@@ -1204,7 +1204,7 @@ describe('resolve-model command', () => {
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
|
||||
const output = JSON.parse(result.output);
|
||||
assert.strictEqual(output.model, 'gpt-5.5');
|
||||
assert.strictEqual(output.model, 'gpt-5.6-sol');
|
||||
assert.strictEqual(output.profile, 'balanced');
|
||||
// #443: effort is now the unified field (xhigh for gsd-planner heavy tier default)
|
||||
assert.strictEqual(output.effort, 'xhigh');
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "8bc541aabc2e143c",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -288,9 +288,9 @@
|
||||
"gsd-core/workflows/scan.md": "a7fecd67e5cd655f",
|
||||
"gsd-core/workflows/secure-phase.md": "96b199dfac00e60f",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "f2f8c750101cb9ee",
|
||||
"gsd-core/workflows/settings-advanced.md": "b7050fcf24175188",
|
||||
"gsd-core/workflows/settings-integrations.md": "4d3001ad2b5dad8f",
|
||||
"gsd-core/workflows/settings.md": "4017f3f235051902",
|
||||
"gsd-core/workflows/settings.md": "8258f7bd3700d608",
|
||||
"gsd-core/workflows/ship.md": "984bd7660e7791fd",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "0f842a609851a401",
|
||||
"gsd-core/workflows/sketch.md": "314b7d323c6b57eb",
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -359,9 +359,9 @@
|
||||
"gsd-core/workflows/scan.md": "003883d71c37da7d",
|
||||
"gsd-core/workflows/secure-phase.md": "29fc6b62c5c5dc62",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "b57c947edee905bc",
|
||||
"gsd-core/workflows/settings-advanced.md": "77ada5fe336ed9f7",
|
||||
"gsd-core/workflows/settings-integrations.md": "70515c5838fb9826",
|
||||
"gsd-core/workflows/settings.md": "b2d39d972650f5f3",
|
||||
"gsd-core/workflows/settings.md": "d96ddf01fb85e61e",
|
||||
"gsd-core/workflows/ship.md": "7b8fe9f89143e648",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "5f5ebb6a80d610c6",
|
||||
"gsd-core/workflows/sketch.md": "8319cedf3f93fc35",
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -358,9 +358,9 @@
|
||||
"gsd-core/workflows/scan.md": "75c670d08cee8680",
|
||||
"gsd-core/workflows/secure-phase.md": "64ec4d06ca85720a",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "2fc2738442f4f9de",
|
||||
"gsd-core/workflows/settings-advanced.md": "0c8a218bad054722",
|
||||
"gsd-core/workflows/settings-integrations.md": "dfe3672c4fabf139",
|
||||
"gsd-core/workflows/settings.md": "ba138b058d91fd38",
|
||||
"gsd-core/workflows/settings.md": "acdd79110699a608",
|
||||
"gsd-core/workflows/ship.md": "44af1c72d86e153b",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "d52a5462bafda830",
|
||||
"gsd-core/workflows/sketch.md": "dbe6acc4d976060c",
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -287,9 +287,9 @@
|
||||
"gsd-core/workflows/scan.md": "47371c2073d6c0be",
|
||||
"gsd-core/workflows/secure-phase.md": "59d3c50aba8c9a6c",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "02f7ef84f976bda4",
|
||||
"gsd-core/workflows/settings-advanced.md": "38e4e7b92b396e3c",
|
||||
"gsd-core/workflows/settings-integrations.md": "53649313d20694ae",
|
||||
"gsd-core/workflows/settings.md": "3d994d669d3fb321",
|
||||
"gsd-core/workflows/settings.md": "7e7458cdb2b68ec5",
|
||||
"gsd-core/workflows/ship.md": "12e8e58c077a891a",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "121ed4b8127abf04",
|
||||
"gsd-core/workflows/sketch.md": "737c0492686fea2d",
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -291,9 +291,9 @@
|
||||
"gsd-core/workflows/scan.md": "dfd92717caea0ce7",
|
||||
"gsd-core/workflows/secure-phase.md": "cf78183f06a02582",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "e08245a5a65dcec2",
|
||||
"gsd-core/workflows/settings-advanced.md": "30dcd0980f4ae882",
|
||||
"gsd-core/workflows/settings-integrations.md": "76eee76d6eb57657",
|
||||
"gsd-core/workflows/settings.md": "f6c7aa7ceb99078b",
|
||||
"gsd-core/workflows/settings.md": "3701faed09d55247",
|
||||
"gsd-core/workflows/ship.md": "5f931a25ea9102a4",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "1f44789553180d84",
|
||||
"gsd-core/workflows/sketch.md": "2226779b6003a71c",
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -359,9 +359,9 @@
|
||||
"gsd-core/workflows/scan.md": "003883d71c37da7d",
|
||||
"gsd-core/workflows/secure-phase.md": "29fc6b62c5c5dc62",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "b57c947edee905bc",
|
||||
"gsd-core/workflows/settings-advanced.md": "77ada5fe336ed9f7",
|
||||
"gsd-core/workflows/settings-integrations.md": "70515c5838fb9826",
|
||||
"gsd-core/workflows/settings.md": "b2d39d972650f5f3",
|
||||
"gsd-core/workflows/settings.md": "d96ddf01fb85e61e",
|
||||
"gsd-core/workflows/ship.md": "7b8fe9f89143e648",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "2aba89ecd8f41a0d",
|
||||
"gsd-core/workflows/sketch.md": "5eedd93f9a5b49d5",
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -394,9 +394,9 @@
|
||||
"gsd-core/workflows/scan.md": "1a3caa5d724d39e9",
|
||||
"gsd-core/workflows/secure-phase.md": "db91810d16964b1e",
|
||||
"gsd-core/workflows/session-report.md": "dd8fa011c9394075",
|
||||
"gsd-core/workflows/settings-advanced.md": "2cbb05c302f1df5e",
|
||||
"gsd-core/workflows/settings-advanced.md": "14de66e631f172d7",
|
||||
"gsd-core/workflows/settings-integrations.md": "77730321d3d6d317",
|
||||
"gsd-core/workflows/settings.md": "1e19b0245851afc0",
|
||||
"gsd-core/workflows/settings.md": "054c8c31b3905ced",
|
||||
"gsd-core/workflows/ship.md": "d86233c9a365effd",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "07724a390fbb43f6",
|
||||
"gsd-core/workflows/sketch.md": "576f300dfdde1b7d",
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "10226e9512dd44bf",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -289,9 +289,9 @@
|
||||
"gsd-core/workflows/scan.md": "dcc2f76d0850e2fb",
|
||||
"gsd-core/workflows/secure-phase.md": "d87bd706f85bcad6",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "85f19b66b7d5040f",
|
||||
"gsd-core/workflows/settings-advanced.md": "d46274308c4e2584",
|
||||
"gsd-core/workflows/settings-integrations.md": "a1d146d6bfd14db5",
|
||||
"gsd-core/workflows/settings.md": "95aa4a9bc0b51e92",
|
||||
"gsd-core/workflows/settings.md": "f611f14f2f447f1e",
|
||||
"gsd-core/workflows/ship.md": "b9dc0aaee0ff68e7",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "f2590cb6ddbfad94",
|
||||
"gsd-core/workflows/sketch.md": "e2063966439af8c1",
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -359,9 +359,9 @@
|
||||
"gsd-core/workflows/scan.md": "47371c2073d6c0be",
|
||||
"gsd-core/workflows/secure-phase.md": "c55975672c4e1895",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "3817a94612e4b588",
|
||||
"gsd-core/workflows/settings-advanced.md": "6828a746997784d8",
|
||||
"gsd-core/workflows/settings-integrations.md": "166ca51b1f33c2a3",
|
||||
"gsd-core/workflows/settings.md": "1e285d00022e00ce",
|
||||
"gsd-core/workflows/settings.md": "0623c673eaf04799",
|
||||
"gsd-core/workflows/ship.md": "38830806d244fe9c",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "5be73b7bdf96b539",
|
||||
"gsd-core/workflows/sketch.md": "373bc0d83368a411",
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -288,9 +288,9 @@
|
||||
"gsd-core/workflows/scan.md": "b28f65d88c522767",
|
||||
"gsd-core/workflows/secure-phase.md": "f2957d4b88fb3746",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "9a45f0e5b8acf83d",
|
||||
"gsd-core/workflows/settings-advanced.md": "dd44be875331ccb9",
|
||||
"gsd-core/workflows/settings-integrations.md": "1dce76db0aca08a5",
|
||||
"gsd-core/workflows/settings.md": "cb2b6be87c519df9",
|
||||
"gsd-core/workflows/settings.md": "0845d073009a4619",
|
||||
"gsd-core/workflows/ship.md": "dbf8bf636cb196c0",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "f1ece50ac65ea281",
|
||||
"gsd-core/workflows/sketch.md": "d5887983e62b574a",
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -359,9 +359,9 @@
|
||||
"gsd-core/workflows/scan.md": "47371c2073d6c0be",
|
||||
"gsd-core/workflows/secure-phase.md": "e8855104c1e0417c",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "03c647793401655b",
|
||||
"gsd-core/workflows/settings-advanced.md": "40af6774a38adb07",
|
||||
"gsd-core/workflows/settings-integrations.md": "3ea8095d5fad891b",
|
||||
"gsd-core/workflows/settings.md": "05e35aeb442b7e20",
|
||||
"gsd-core/workflows/settings.md": "1925ecc2225c2216",
|
||||
"gsd-core/workflows/ship.md": "afd77be2093535f8",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "888c0548e63197b3",
|
||||
"gsd-core/workflows/sketch.md": "34a0c10fa56af7ea",
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -324,9 +324,9 @@
|
||||
"gsd-core/workflows/scan.md": "003883d71c37da7d",
|
||||
"gsd-core/workflows/secure-phase.md": "29fc6b62c5c5dc62",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "b57c947edee905bc",
|
||||
"gsd-core/workflows/settings-advanced.md": "77ada5fe336ed9f7",
|
||||
"gsd-core/workflows/settings-integrations.md": "70515c5838fb9826",
|
||||
"gsd-core/workflows/settings.md": "b2d39d972650f5f3",
|
||||
"gsd-core/workflows/settings.md": "d96ddf01fb85e61e",
|
||||
"gsd-core/workflows/ship.md": "7b8fe9f89143e648",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "b767a1d3db129a8a",
|
||||
"gsd-core/workflows/sketch.md": "88cfdf4edcf222ab",
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -359,9 +359,9 @@
|
||||
"gsd-core/workflows/scan.md": "ad8ebcad4626d4a8",
|
||||
"gsd-core/workflows/secure-phase.md": "e9a488cec3b4efdc",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "f62c8e4fa6d3a3d9",
|
||||
"gsd-core/workflows/settings-advanced.md": "afa9c38b68500b29",
|
||||
"gsd-core/workflows/settings-integrations.md": "d1711a95f44fdbde",
|
||||
"gsd-core/workflows/settings.md": "bbbcad8d95d5e813",
|
||||
"gsd-core/workflows/settings.md": "2e42ee34c791378a",
|
||||
"gsd-core/workflows/ship.md": "924c79e3cfd1e42b",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "681800323681c5c6",
|
||||
"gsd-core/workflows/sketch.md": "fcb7af914159ef7b",
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -288,9 +288,9 @@
|
||||
"gsd-core/workflows/scan.md": "949692db4834dd27",
|
||||
"gsd-core/workflows/secure-phase.md": "6758f1acf4113e9e",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "8d850d15f1d06dd6",
|
||||
"gsd-core/workflows/settings-advanced.md": "6f11a48034be4fa5",
|
||||
"gsd-core/workflows/settings-integrations.md": "29c5de27fbbb18e9",
|
||||
"gsd-core/workflows/settings.md": "da0b7567d648b80a",
|
||||
"gsd-core/workflows/settings.md": "26b9b7979d3a5747",
|
||||
"gsd-core/workflows/ship.md": "9f94d0b155eb041e",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "89e0eab2af946b04",
|
||||
"gsd-core/workflows/sketch.md": "483387542d6fc3af",
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -288,9 +288,9 @@
|
||||
"gsd-core/workflows/scan.md": "63631467651d9ca8",
|
||||
"gsd-core/workflows/secure-phase.md": "6cc236e53c2e7d56",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "252d3f848c95220e",
|
||||
"gsd-core/workflows/settings-advanced.md": "72d9c0759cc01d99",
|
||||
"gsd-core/workflows/settings-integrations.md": "f8f756709ec02363",
|
||||
"gsd-core/workflows/settings.md": "01cf9ffd340cff64",
|
||||
"gsd-core/workflows/settings.md": "44b10c59215633b8",
|
||||
"gsd-core/workflows/ship.md": "c08f0fe3025d2c86",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "dbec602d104cb951",
|
||||
"gsd-core/workflows/sketch.md": "44ff275150b6d045",
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -288,9 +288,9 @@
|
||||
"gsd-core/workflows/scan.md": "12c11b2edc165df9",
|
||||
"gsd-core/workflows/secure-phase.md": "7bf923689bf58288",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "4c030adc097d1746",
|
||||
"gsd-core/workflows/settings-advanced.md": "76399a40da18f0b4",
|
||||
"gsd-core/workflows/settings-integrations.md": "b082fc518b484c07",
|
||||
"gsd-core/workflows/settings.md": "13ca50dba129c17b",
|
||||
"gsd-core/workflows/settings.md": "002eb0ce3c10c741",
|
||||
"gsd-core/workflows/ship.md": "c035bb8b3bb7efbb",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "10063f56c2c7f141",
|
||||
"gsd-core/workflows/sketch.md": "25c1f8f7acfb1da9",
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
"gsd-core/bin/gsd_run": "62d9b647ede212e6",
|
||||
"gsd-core/bin/shared/config-defaults.manifest.json": "517e6a7c1e9f4f16",
|
||||
"gsd-core/bin/shared/config-schema.manifest.json": "6bba2b9c9fa47cb8",
|
||||
"gsd-core/bin/shared/model-catalog.json": "e554a288fcbc1b2e",
|
||||
"gsd-core/bin/shared/model-catalog.json": "eee64a2cf3b94c00",
|
||||
"gsd-core/bin/shared/runtime-aliases.manifest.json": "2df2c5ac1957911a",
|
||||
"gsd-core/bin/verify-reapply-patches.cjs": "caec5dbce11e3904",
|
||||
"gsd-core/contexts/dev.md": "dcb0de9dce33cf41",
|
||||
@@ -359,9 +359,9 @@
|
||||
"gsd-core/workflows/scan.md": "003883d71c37da7d",
|
||||
"gsd-core/workflows/secure-phase.md": "29fc6b62c5c5dc62",
|
||||
"gsd-core/workflows/session-report.md": "2e5b1205324ddefa",
|
||||
"gsd-core/workflows/settings-advanced.md": "b57c947edee905bc",
|
||||
"gsd-core/workflows/settings-advanced.md": "77ada5fe336ed9f7",
|
||||
"gsd-core/workflows/settings-integrations.md": "70515c5838fb9826",
|
||||
"gsd-core/workflows/settings.md": "b2d39d972650f5f3",
|
||||
"gsd-core/workflows/settings.md": "d96ddf01fb85e61e",
|
||||
"gsd-core/workflows/ship.md": "7b8fe9f89143e648",
|
||||
"gsd-core/workflows/sketch-wrap-up.md": "86db87b16548117e",
|
||||
"gsd-core/workflows/sketch.md": "e96f1866d3e60cab",
|
||||
|
||||
@@ -3448,7 +3448,7 @@ describe('#443 Config-driven: effort.agent_overrides drives install-time effort'
|
||||
const tomlContent = fs.readFileSync(
|
||||
path.join(codexHome, 'agents', 'gsd-planner.toml'), 'utf8'
|
||||
);
|
||||
assert.match(tomlContent, /^model\s*=\s*"gpt-5.5"$/m,
|
||||
assert.match(tomlContent, /^model\s*=\s*"gpt-5.6-sol"$/m,
|
||||
`gsd-planner.toml should pin Codex model when runtime:"codex" is configured\nActual:\n${tomlContent.slice(0, 500)}`);
|
||||
assert.match(tomlContent, /^model_reasoning_effort\s*=\s*"low"$/m,
|
||||
`gsd-planner.toml should have model_reasoning_effort = "low" from config override\nActual:\n${tomlContent.slice(0, 500)}`);
|
||||
@@ -3474,7 +3474,7 @@ describe('#443 Config-driven: effort.agent_overrides drives install-time effort'
|
||||
const tomlContent = fs.readFileSync(
|
||||
path.join(codexHome, 'agents', 'gsd-planner.toml'), 'utf8'
|
||||
);
|
||||
assert.match(tomlContent, /^model\s*=\s*"gpt-5.5"$/m,
|
||||
assert.match(tomlContent, /^model\s*=\s*"gpt-5.6-sol"$/m,
|
||||
`gsd-planner.toml should pin Codex model when runtime:"codex" is configured\nActual:\n${tomlContent.slice(0, 500)}`);
|
||||
// Codex does not support 'max' → clamped to 'xhigh'
|
||||
assert.match(tomlContent, /^model_reasoning_effort\s*=\s*"xhigh"$/m,
|
||||
@@ -3559,7 +3559,7 @@ describe('#443 resolveInstallTimeEffort: invalid tokens fall through to valid ef
|
||||
const tomlContent = fs.readFileSync(
|
||||
path.join(codexHome, 'agents', 'gsd-planner.toml'), 'utf8'
|
||||
);
|
||||
assert.match(tomlContent, /^model\s*=\s*"gpt-5.5"$/m,
|
||||
assert.match(tomlContent, /^model\s*=\s*"gpt-5.6-sol"$/m,
|
||||
`gsd-planner.toml should pin Codex model when runtime:"codex" is configured\nActual:\n${tomlContent.slice(0, 500)}`);
|
||||
const match = tomlContent.match(/^model_reasoning_effort\s*=\s*"([^"]+)"/m);
|
||||
assert.ok(match, `model_reasoning_effort must be present in .toml\nActual:\n${tomlContent.slice(0, 500)}`);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
* When `runtime` is set to a non-Claude value, profile tiers resolve to runtime-
|
||||
* native model IDs.
|
||||
*
|
||||
* Codex: opus -> gpt-5.5 (xhigh), sonnet -> gpt-5.4 (medium), haiku -> gpt-5.4-mini (medium)
|
||||
* Codex: opus -> gpt-5.6-sol (xhigh), sonnet -> gpt-5.6-terra (medium), haiku -> gpt-5.6-luna (medium)
|
||||
*
|
||||
* `runtime: "claude"` is the implicit default and is treated as a no-op for
|
||||
* resolution — it does not override `resolve_model_ids: "omit"` or any other
|
||||
@@ -170,10 +170,10 @@ describe('issue #2517: runtime "codex" — Codex tier resolution', () => {
|
||||
beforeEach(() => { isolateHome(); tmpDir = createTempProject(); resetRuntimeWarningCaches(); });
|
||||
afterEach(() => { cleanup(tmpDir); restoreHome(); });
|
||||
|
||||
test('opus tier -> gpt-5.5 model; heavy-tier agent -> xhigh effort on codex', () => {
|
||||
test('opus tier -> gpt-5.6-sol model; heavy-tier agent -> xhigh effort on codex', () => {
|
||||
writeConfig(tmpDir, { runtime: 'codex', model_profile: 'quality' });
|
||||
// gsd-planner quality -> opus -> gpt-5.5 (model unchanged)
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.5');
|
||||
// gsd-planner quality -> opus -> gpt-5.6-sol (model unchanged)
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.6-sol');
|
||||
// gsd-planner is heavy routing tier → effort 'xhigh' → rendered model_reasoning_effort
|
||||
const eff = resolveEffortInternal(tmpDir, 'gsd-planner');
|
||||
const rendered = renderEffortForRuntime('codex', eff);
|
||||
@@ -181,9 +181,9 @@ describe('issue #2517: runtime "codex" — Codex tier resolution', () => {
|
||||
assert.strictEqual(rendered.value, 'xhigh');
|
||||
});
|
||||
|
||||
test('sonnet tier -> gpt-5.4 model; heavy-tier agent -> xhigh effort on codex', () => {
|
||||
test('sonnet tier -> gpt-5.6-terra model; heavy-tier agent -> xhigh effort on codex', () => {
|
||||
writeConfig(tmpDir, { runtime: 'codex', model_profile: 'balanced' });
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-roadmapper'), 'gpt-5.4');
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-roadmapper'), 'gpt-5.6-terra');
|
||||
// gsd-roadmapper is heavy routing tier → effort 'xhigh' (not catalog medium)
|
||||
const eff = resolveEffortInternal(tmpDir, 'gsd-roadmapper');
|
||||
const rendered = renderEffortForRuntime('codex', eff);
|
||||
@@ -191,9 +191,9 @@ describe('issue #2517: runtime "codex" — Codex tier resolution', () => {
|
||||
assert.strictEqual(rendered.value, 'xhigh');
|
||||
});
|
||||
|
||||
test('haiku tier -> gpt-5.4-mini model; light-tier agent -> low effort on codex', () => {
|
||||
test('haiku tier -> gpt-5.6-luna model; light-tier agent -> low effort on codex', () => {
|
||||
writeConfig(tmpDir, { runtime: 'codex', model_profile: 'budget' });
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-codebase-mapper'), 'gpt-5.4-mini');
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-codebase-mapper'), 'gpt-5.6-luna');
|
||||
// gsd-codebase-mapper is light routing tier → effort 'low' (not catalog medium)
|
||||
const eff = resolveEffortInternal(tmpDir, 'gsd-codebase-mapper');
|
||||
const rendered = renderEffortForRuntime('codex', eff);
|
||||
@@ -203,10 +203,10 @@ describe('issue #2517: runtime "codex" — Codex tier resolution', () => {
|
||||
|
||||
test('adaptive profile resolves on Codex (no #1713/#1806 regression)', () => {
|
||||
writeConfig(tmpDir, { runtime: 'codex', model_profile: 'adaptive' });
|
||||
// gsd-planner adaptive -> opus -> gpt-5.5
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.5');
|
||||
// gsd-codebase-mapper adaptive -> haiku -> gpt-5.4-mini
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-codebase-mapper'), 'gpt-5.4-mini');
|
||||
// gsd-planner adaptive -> opus -> gpt-5.6-sol
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.6-sol');
|
||||
// gsd-codebase-mapper adaptive -> haiku -> gpt-5.6-luna
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-codebase-mapper'), 'gpt-5.6-luna');
|
||||
});
|
||||
|
||||
test('inherit profile still returns "inherit" on Codex; effort still resolves universally', () => {
|
||||
@@ -226,7 +226,7 @@ describe('issue #2517: runtime "codex" — Codex tier resolution', () => {
|
||||
model_profile: 'quality',
|
||||
resolve_model_ids: 'omit',
|
||||
});
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.5');
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.6-sol');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -240,9 +240,9 @@ describe('issue #2517: precedence chain', () => {
|
||||
writeConfig(tmpDir, {
|
||||
runtime: 'codex',
|
||||
model_profile: 'quality',
|
||||
model_overrides: { 'gsd-planner': 'gpt-5.4-mini' },
|
||||
model_overrides: { 'gsd-planner': 'gpt-5.6-luna' },
|
||||
});
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.4-mini');
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.6-luna');
|
||||
});
|
||||
|
||||
test('model_profile_overrides[runtime][tier] beats built-in defaults', () => {
|
||||
@@ -255,9 +255,8 @@ describe('issue #2517: precedence chain', () => {
|
||||
});
|
||||
// gsd-planner quality -> opus -> overridden to gpt-5-pro
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5-pro');
|
||||
// haiku not overridden — fall back to spec defaults
|
||||
// gsd-codebase-mapper quality -> sonnet -> gpt-5.4
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-codebase-mapper'), 'gpt-5.4');
|
||||
// gsd-codebase-mapper quality -> sonnet -> gpt-5.6-terra
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-codebase-mapper'), 'gpt-5.6-terra');
|
||||
});
|
||||
|
||||
test('partial profile_overrides — only opus overridden, sonnet uses default', () => {
|
||||
@@ -271,7 +270,7 @@ describe('issue #2517: precedence chain', () => {
|
||||
// gsd-planner balanced -> opus -> overridden to gpt-5-pro
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5-pro');
|
||||
// gsd-roadmapper balanced -> sonnet -> spec default
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-roadmapper'), 'gpt-5.4');
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-roadmapper'), 'gpt-5.6-terra');
|
||||
});
|
||||
|
||||
test('per-agent override beats profile override beats default', () => {
|
||||
@@ -316,7 +315,7 @@ describe('issue #2517: field-merge of overrides with built-in defaults (finding
|
||||
model_profile: 'quality',
|
||||
model_profile_overrides: { codex: { opus: { reasoning_effort: 'low' } } },
|
||||
});
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.5');
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.6-sol');
|
||||
const eff = resolveEffortInternal(tmpDir, 'gsd-planner');
|
||||
const rendered = renderEffortForRuntime('codex', eff);
|
||||
assert.strictEqual(rendered.param, 'model_reasoning_effort');
|
||||
@@ -355,7 +354,7 @@ describe('issue #2517: field-merge of overrides with built-in defaults (finding
|
||||
tier: 'opus',
|
||||
overrides: { codex: { opus: { reasoning_effort: 'low' } } },
|
||||
});
|
||||
assert.deepStrictEqual(entry, { model: 'gpt-5.5', reasoning_effort: 'low' });
|
||||
assert.deepStrictEqual(entry, { model: 'gpt-5.6-sol', reasoning_effort: 'low' });
|
||||
});
|
||||
|
||||
test('resolveTierEntry helper: unknown runtime + no overrides -> null', () => {
|
||||
@@ -396,7 +395,7 @@ describe('issue #2517: unknown runtime render param is null (effort does not lea
|
||||
writeConfig(tmpDir, {
|
||||
runtime: 'codx',
|
||||
model_profile: 'quality',
|
||||
model_profile_overrides: { codx: { opus: { model: 'gpt-5.4', reasoning_effort: 'xhigh' } } },
|
||||
model_profile_overrides: { codx: { opus: { model: 'gpt-5.6-terra', reasoning_effort: 'xhigh' } } },
|
||||
});
|
||||
const eff = resolveEffortInternal(tmpDir, 'gsd-planner');
|
||||
const rendered = renderEffortForRuntime('codx', eff);
|
||||
@@ -412,9 +411,9 @@ describe('issue #2517: unknown runtime + safe fallback', () => {
|
||||
|
||||
test('unknown runtime falls back to Claude-alias safe default (no Codex IDs leaked)', () => {
|
||||
writeConfig(tmpDir, { runtime: 'mystery-runtime', model_profile: 'quality' });
|
||||
// Should NOT emit gpt-5.4 — should fall back to Claude alias
|
||||
// Should NOT emit gpt-5.6-sol — should fall back to Claude alias
|
||||
const resolved = resolveModelInternal(tmpDir, 'gsd-planner');
|
||||
assert.notStrictEqual(resolved, 'gpt-5.4');
|
||||
assert.notStrictEqual(resolved, 'gpt-5.6-sol');
|
||||
assert.strictEqual(resolved, 'opus');
|
||||
});
|
||||
|
||||
@@ -432,7 +431,7 @@ describe('issue #2517: unknown runtime + safe fallback', () => {
|
||||
test('runtime:"codex" but missing model_profile_overrides[codex] uses spec defaults', () => {
|
||||
writeConfig(tmpDir, { runtime: 'codex', model_profile: 'quality' });
|
||||
// No model_profile_overrides at all — built-in Codex defaults take over
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.5');
|
||||
assert.strictEqual(resolveModelInternal(tmpDir, 'gsd-planner'), 'gpt-5.6-sol');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -556,7 +555,7 @@ describe('issue #2517: install end-to-end — per-project config reaches Codex T
|
||||
assert.ok(resolver, 'expected a resolver from per-project config');
|
||||
assert.strictEqual(resolver.runtime, 'codex');
|
||||
const entry = resolver.resolve('gsd-planner');
|
||||
assert.deepStrictEqual(entry, { model: 'gpt-5.5', reasoning_effort: 'xhigh' });
|
||||
assert.deepStrictEqual(entry, { model: 'gpt-5.6-sol', reasoning_effort: 'xhigh' });
|
||||
});
|
||||
|
||||
test('per-project config wins over global ~/.gsd/defaults.json', () => {
|
||||
@@ -569,7 +568,7 @@ describe('issue #2517: install end-to-end — per-project config reaches Codex T
|
||||
const resolver = readGsdRuntimeProfileResolver(tmpDir);
|
||||
assert.strictEqual(resolver.runtime, 'codex');
|
||||
const entry = resolver.resolve('gsd-planner');
|
||||
assert.strictEqual(entry.model, 'gpt-5.5');
|
||||
assert.strictEqual(entry.model, 'gpt-5.6-sol');
|
||||
});
|
||||
|
||||
test('generated Codex TOML embeds model = and model_reasoning_effort = lines', () => {
|
||||
@@ -581,7 +580,7 @@ describe('issue #2517: install end-to-end — per-project config reaches Codex T
|
||||
null,
|
||||
resolver
|
||||
);
|
||||
assert.match(toml, /^model = "gpt-5\.5"$/m);
|
||||
assert.match(toml, /^model = "gpt-5\.6-sol"$/m);
|
||||
assert.match(toml, /^model_reasoning_effort = "xhigh"$/m);
|
||||
});
|
||||
|
||||
@@ -636,7 +635,7 @@ describe('issue #2517: RUNTIME_PROFILE_MAP single source of truth (finding #16)'
|
||||
// entries through `resolveTierEntry`, so any future drift between the two
|
||||
// files would surface as a test failure here rather than a silent bug.
|
||||
const codexOpus = RUNTIME_PROFILE_MAP.codex?.opus;
|
||||
assert.deepStrictEqual(codexOpus, { model: 'gpt-5.5', reasoning_effort: 'xhigh' });
|
||||
assert.deepStrictEqual(codexOpus, { model: 'gpt-5.6-sol', reasoning_effort: 'xhigh' });
|
||||
const claudeOpus = RUNTIME_PROFILE_MAP.claude?.opus;
|
||||
assert.deepStrictEqual(claudeOpus, { model: 'claude-opus-4-8' });
|
||||
});
|
||||
|
||||
@@ -68,9 +68,9 @@
|
||||
"scan.md": 7732,
|
||||
"secure-phase.md": 13520,
|
||||
"session-report.md": 4044,
|
||||
"settings-advanced.md": 39718,
|
||||
"settings-advanced.md": 39728,
|
||||
"settings-integrations.md": 15892,
|
||||
"settings.md": 33457,
|
||||
"settings.md": 33467,
|
||||
"ship.md": 24691,
|
||||
"sketch-wrap-up.md": 14267,
|
||||
"sketch.md": 20004,
|
||||
|
||||
Reference in New Issue
Block a user