ralphctl 0.16.0 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{cli-KZ4IYDKB.mjs → cli-WTLOGLWF.mjs} +225 -95
- package/dist/cli.mjs +1 -1
- package/dist/manifest.json +2 -2
- package/dist/prompts/_partials/conventions-agents-md.md +5 -5
- package/dist/prompts/_partials/conventions-claude-md.md +7 -8
- package/dist/prompts/_partials/conventions-copilot-instructions.md +5 -7
- package/dist/prompts/_partials/decisions.md +1 -0
- package/dist/prompts/_partials/validation-checklist.md +5 -6
- package/dist/prompts/apply-feedback/template.md +5 -11
- package/dist/prompts/create-pr/template.md +6 -8
- package/dist/prompts/detect-scripts/template.md +11 -8
- package/dist/prompts/detect-skills/template.md +7 -6
- package/dist/prompts/distill-learnings/template.md +2 -0
- package/dist/prompts/evaluate/template.md +44 -36
- package/dist/prompts/evaluate-continuation/template.md +32 -14
- package/dist/prompts/ideate/template.md +32 -11
- package/dist/prompts/implement/template.md +57 -45
- package/dist/prompts/implement-continuation/template.md +17 -9
- package/dist/prompts/plan/template.md +17 -4
- package/dist/prompts/readiness/template.md +12 -9
- package/dist/prompts/refine/template.md +13 -17
- package/dist/skills/ralphctl-abstraction-first/SKILL.md +1 -1
- package/dist/skills/ralphctl-alignment/SKILL.md +1 -1
- package/dist/skills/ralphctl-iterative-review/SKILL.md +1 -1
- package/package.json +1 -1
|
@@ -624,6 +624,7 @@ var CLAUDE_MODELS = [
|
|
|
624
624
|
"claude-sonnet-5",
|
|
625
625
|
"claude-opus-4-8",
|
|
626
626
|
"claude-opus-4-8[1m]",
|
|
627
|
+
"claude-opus-5",
|
|
627
628
|
"claude-fable-5",
|
|
628
629
|
"claude-fable-5[1m]"
|
|
629
630
|
];
|
|
@@ -631,12 +632,12 @@ var isClaudeModel = (s) => CLAUDE_MODELS.includes(s);
|
|
|
631
632
|
|
|
632
633
|
// src/domain/value/settings-models/codex.ts
|
|
633
634
|
var CODEX_MODELS = [
|
|
635
|
+
"gpt-5.6-sol",
|
|
636
|
+
"gpt-5.6-terra",
|
|
637
|
+
"gpt-5.6-luna",
|
|
634
638
|
"gpt-5.5",
|
|
635
639
|
"gpt-5.4",
|
|
636
640
|
"gpt-5.4-mini",
|
|
637
|
-
"gpt-5.3-codex-spark",
|
|
638
|
-
"gpt-5.3-codex",
|
|
639
|
-
"gpt-5.2",
|
|
640
641
|
"codex-auto-review"
|
|
641
642
|
];
|
|
642
643
|
var isCodexModel = (s) => CODEX_MODELS.includes(s);
|
|
@@ -650,13 +651,17 @@ var COPILOT_MODELS = [
|
|
|
650
651
|
"gpt-5.4-mini",
|
|
651
652
|
"gpt-5.4-nano",
|
|
652
653
|
"gpt-5.5",
|
|
654
|
+
"gpt-5.6-sol",
|
|
655
|
+
"gpt-5.6-terra",
|
|
656
|
+
"gpt-5.6-luna",
|
|
653
657
|
// Anthropic
|
|
654
658
|
"claude-haiku-4.5",
|
|
655
659
|
"claude-opus-4.5",
|
|
656
660
|
"claude-opus-4.6",
|
|
657
|
-
"claude-opus-4.6-fast",
|
|
658
661
|
"claude-opus-4.7",
|
|
659
662
|
"claude-opus-4.8",
|
|
663
|
+
"claude-opus-4.8-fast",
|
|
664
|
+
"claude-opus-5",
|
|
660
665
|
"claude-fable-5",
|
|
661
666
|
"claude-sonnet-4.5",
|
|
662
667
|
"claude-sonnet-4.6",
|
|
@@ -666,8 +671,11 @@ var COPILOT_MODELS = [
|
|
|
666
671
|
"gemini-3-flash",
|
|
667
672
|
"gemini-3.1-pro-preview",
|
|
668
673
|
"gemini-3.5-flash",
|
|
674
|
+
"gemini-3.6-flash",
|
|
669
675
|
// Microsoft
|
|
670
676
|
"mai-code-1-flash",
|
|
677
|
+
// Moonshot
|
|
678
|
+
"kimi-k2.7-code",
|
|
671
679
|
// Fine-tuned
|
|
672
680
|
"raptor-mini-preview"
|
|
673
681
|
];
|
|
@@ -680,14 +688,16 @@ var FLOW_IDS = ["refine", "plan", "implement", "readiness", "ideate", "createPr"
|
|
|
680
688
|
var CURRENT_SCHEMA_VERSION = 2;
|
|
681
689
|
var LogLevelSchema = z.enum(["silent", "debug", "info", "warn", "error"]);
|
|
682
690
|
var PROVIDER_CLAUDE_CODE = "claude-code";
|
|
691
|
+
var PROVIDER_GITHUB_COPILOT = "github-copilot";
|
|
692
|
+
var PROVIDER_OPENAI_CODEX = "openai-codex";
|
|
683
693
|
var AiProviderSchema = z.enum([
|
|
684
694
|
PROVIDER_CLAUDE_CODE,
|
|
685
|
-
|
|
686
|
-
|
|
695
|
+
PROVIDER_GITHUB_COPILOT,
|
|
696
|
+
PROVIDER_OPENAI_CODEX
|
|
687
697
|
]);
|
|
688
698
|
var ClaudeEffortSchema = z.enum(["low", "medium", "high", "xhigh", "max"]);
|
|
689
699
|
var CopilotEffortSchema = z.enum(["none", "low", "medium", "high", "xhigh", "max"]);
|
|
690
|
-
var CodexEffortSchema = z.enum(["
|
|
700
|
+
var CodexEffortSchema = z.enum(["low", "medium", "high", "xhigh", "max", "ultra"]);
|
|
691
701
|
var GlobalEffortSchema = z.enum(["low", "medium", "high", "xhigh", "max"]);
|
|
692
702
|
var CustomModelStringSchema = z.string().trim().min(1, "model id must be a non-empty trimmed string");
|
|
693
703
|
var ClaudeModelSchema = z.union([z.enum(CLAUDE_MODELS), CustomModelStringSchema]);
|
|
@@ -699,12 +709,12 @@ var ClaudeFlowRowSchema = z.object({
|
|
|
699
709
|
effort: ClaudeEffortSchema.optional()
|
|
700
710
|
});
|
|
701
711
|
var CopilotFlowRowSchema = z.object({
|
|
702
|
-
provider: z.literal(
|
|
712
|
+
provider: z.literal(PROVIDER_GITHUB_COPILOT),
|
|
703
713
|
model: CopilotModelSchema,
|
|
704
714
|
effort: CopilotEffortSchema.optional()
|
|
705
715
|
});
|
|
706
716
|
var CodexFlowRowSchema = z.object({
|
|
707
|
-
provider: z.literal(
|
|
717
|
+
provider: z.literal(PROVIDER_OPENAI_CODEX),
|
|
708
718
|
model: CodexModelSchema,
|
|
709
719
|
effort: CodexEffortSchema.optional()
|
|
710
720
|
});
|
|
@@ -739,35 +749,43 @@ var seedLegacyCreatePrRow = (ai) => {
|
|
|
739
749
|
if (!("provider" in refine)) return ai;
|
|
740
750
|
return { ...aiObj, createPr: { ...refine } };
|
|
741
751
|
};
|
|
742
|
-
var
|
|
743
|
-
|
|
744
|
-
|
|
752
|
+
var RETIRED_MODEL_REMAPS = [
|
|
753
|
+
{ provider: PROVIDER_CLAUDE_CODE, from: "claude-opus-4-7", to: "claude-opus-4-8" },
|
|
754
|
+
{ provider: PROVIDER_GITHUB_COPILOT, from: "claude-opus-4.6-fast", to: "claude-opus-4.8-fast" },
|
|
755
|
+
{ provider: PROVIDER_OPENAI_CODEX, from: "gpt-5.2", to: "gpt-5.5" },
|
|
756
|
+
{ provider: PROVIDER_OPENAI_CODEX, from: "gpt-5.3-codex", to: "gpt-5.5" },
|
|
757
|
+
{ provider: PROVIDER_OPENAI_CODEX, from: "gpt-5.3-codex-spark", to: "gpt-5.5" }
|
|
758
|
+
];
|
|
759
|
+
var RETIRED_CODEX_EFFORT = "minimal";
|
|
760
|
+
var migrateStaleRow = (row) => {
|
|
745
761
|
if (typeof row !== "object" || row === null) return row;
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
762
|
+
let next = row;
|
|
763
|
+
const remap = RETIRED_MODEL_REMAPS.find((r) => next["provider"] === r.provider && next["model"] === r.from);
|
|
764
|
+
if (remap !== void 0) next = { ...next, model: remap.to };
|
|
765
|
+
if (next["provider"] === PROVIDER_OPENAI_CODEX && next["effort"] === RETIRED_CODEX_EFFORT) {
|
|
766
|
+
next = { ...next, effort: "low" };
|
|
749
767
|
}
|
|
750
|
-
return
|
|
768
|
+
return next;
|
|
751
769
|
};
|
|
752
|
-
var
|
|
770
|
+
var migrateStaleAiRows = (ai) => {
|
|
753
771
|
if (typeof ai !== "object" || ai === null) return ai;
|
|
754
772
|
const aiObj = ai;
|
|
755
773
|
const next = { ...aiObj };
|
|
756
774
|
for (const flow of ["refine", "plan", "readiness", "ideate", "createPr"]) {
|
|
757
|
-
if (flow in next) next[flow] =
|
|
775
|
+
if (flow in next) next[flow] = migrateStaleRow(next[flow]);
|
|
758
776
|
}
|
|
759
777
|
const implement = next["implement"];
|
|
760
778
|
if (typeof implement === "object" && implement !== null) {
|
|
761
779
|
const implObj = implement;
|
|
762
780
|
next["implement"] = {
|
|
763
781
|
...implObj,
|
|
764
|
-
generator:
|
|
765
|
-
evaluator:
|
|
782
|
+
generator: migrateStaleRow(implObj["generator"]),
|
|
783
|
+
evaluator: migrateStaleRow(implObj["evaluator"])
|
|
766
784
|
};
|
|
767
785
|
}
|
|
768
786
|
return next;
|
|
769
787
|
};
|
|
770
|
-
var promoteLegacyAiRows = (ai) =>
|
|
788
|
+
var promoteLegacyAiRows = (ai) => migrateStaleAiRows(seedLegacyCreatePrRow(promoteLegacyImplementRow(ai)));
|
|
771
789
|
var healHarnessCrossKnobs = (harness) => {
|
|
772
790
|
if (typeof harness !== "object" || harness === null) return harness;
|
|
773
791
|
const h = harness;
|
|
@@ -993,9 +1011,10 @@ var uniqueProvidersFromAi = (ai) => {
|
|
|
993
1011
|
|
|
994
1012
|
// src/business/settings/defaults.ts
|
|
995
1013
|
var CLAUDE_SONNET = "claude-sonnet-5";
|
|
996
|
-
var CLAUDE_OPUS = "claude-opus-
|
|
1014
|
+
var CLAUDE_OPUS = "claude-opus-5";
|
|
997
1015
|
var GPT_5_MINI = "gpt-5-mini";
|
|
998
1016
|
var GPT_5_4_MINI = "gpt-5.4-mini";
|
|
1017
|
+
var GPT_5_6_SOL = "gpt-5.6-sol";
|
|
999
1018
|
var DEFAULT_MODELS_BY_PROVIDER = {
|
|
1000
1019
|
"claude-code": {
|
|
1001
1020
|
refine: CLAUDE_SONNET,
|
|
@@ -1017,13 +1036,12 @@ var DEFAULT_MODELS_BY_PROVIDER = {
|
|
|
1017
1036
|
},
|
|
1018
1037
|
"openai-codex": {
|
|
1019
1038
|
refine: GPT_5_4_MINI,
|
|
1020
|
-
plan:
|
|
1021
|
-
// `gpt-5.
|
|
1022
|
-
//
|
|
1023
|
-
|
|
1024
|
-
implement: "gpt-5.5",
|
|
1039
|
+
plan: GPT_5_6_SOL,
|
|
1040
|
+
// `gpt-5.6-sol` is the codex flagship (codex CLI ≥ 0.145); it tops the Codex escalation
|
|
1041
|
+
// ladder, so the reset-to-codex implement default and the ladder top stay aligned.
|
|
1042
|
+
implement: GPT_5_6_SOL,
|
|
1025
1043
|
readiness: GPT_5_4_MINI,
|
|
1026
|
-
ideate:
|
|
1044
|
+
ideate: GPT_5_6_SOL,
|
|
1027
1045
|
createPr: GPT_5_4_MINI
|
|
1028
1046
|
}
|
|
1029
1047
|
};
|
|
@@ -1045,7 +1063,7 @@ var DEFAULT_SETTINGS = {
|
|
|
1045
1063
|
...defaultAiSettingsForProvider("claude-code"),
|
|
1046
1064
|
implement: {
|
|
1047
1065
|
generator: { provider: "claude-code", model: CLAUDE_OPUS },
|
|
1048
|
-
evaluator: { provider: "openai-codex", model:
|
|
1066
|
+
evaluator: { provider: "openai-codex", model: GPT_5_6_SOL }
|
|
1049
1067
|
}
|
|
1050
1068
|
},
|
|
1051
1069
|
harness: {
|
|
@@ -3038,10 +3056,10 @@ var resolveWritableRoots = (session) => {
|
|
|
3038
3056
|
};
|
|
3039
3057
|
|
|
3040
3058
|
// src/domain/value/settings-models/suspended-models.ts
|
|
3041
|
-
var SUSPENDED_MODELS = [
|
|
3059
|
+
var SUSPENDED_MODELS = [];
|
|
3042
3060
|
var isSuspendedModel = (s) => SUSPENDED_MODELS.includes(s);
|
|
3043
3061
|
var SUSPENSION_NOTE = "suspended";
|
|
3044
|
-
var suspendedModelMessage = (model) => `'${model}' is temporarily suspended by
|
|
3062
|
+
var suspendedModelMessage = (model) => `'${model}' is temporarily suspended by its provider \u2014 pick another model until access is restored`;
|
|
3045
3063
|
|
|
3046
3064
|
// src/integration/ai/providers/_engine/bounded-tail.ts
|
|
3047
3065
|
var STDERR_TAIL_CAP = 16384;
|
|
@@ -3494,6 +3512,8 @@ var CONTEXT_WINDOW = {
|
|
|
3494
3512
|
// Sonnet 5 always runs at its native 1M window on the Anthropic API — no `[1m]` selector, so
|
|
3495
3513
|
// the bare id carries the 1M figure directly.
|
|
3496
3514
|
"claude-sonnet-5": 1e6,
|
|
3515
|
+
// Opus 5 — natively 1M in Claude Code — no `[1m]` selector; the bare id carries the figure.
|
|
3516
|
+
"claude-opus-5": 1e6,
|
|
3497
3517
|
// `[1m]` is Claude Code's 1M-token long-context selector — the window IS the id suffix.
|
|
3498
3518
|
"claude-opus-4-8[1m]": 1e6,
|
|
3499
3519
|
"claude-fable-5[1m]": 1e6
|
|
@@ -6004,7 +6024,7 @@ var createNpmVersionChecker = (deps) => {
|
|
|
6004
6024
|
// package.json
|
|
6005
6025
|
var package_default = {
|
|
6006
6026
|
name: "ralphctl",
|
|
6007
|
-
version: "0.
|
|
6027
|
+
version: "0.17.1",
|
|
6008
6028
|
description: "Agent harness for long-running AI coding tasks \u2014 orchestrates Claude Code, GitHub Copilot, and OpenAI Codex across repositories",
|
|
6009
6029
|
homepage: "https://github.com/lukas-grigis/ralphctl",
|
|
6010
6030
|
type: "module",
|
|
@@ -6120,18 +6140,25 @@ var CLI_METADATA = {
|
|
|
6120
6140
|
|
|
6121
6141
|
// src/business/task/escalation-map.ts
|
|
6122
6142
|
var DEFAULT_ESCALATION_MAP = {
|
|
6123
|
-
// Claude (Claude-Code
|
|
6143
|
+
// Claude (Claude-Code dash-form) — Haiku → Sonnet 5 → Opus 5; legacy tiers chain through their
|
|
6144
|
+
// own generation (Sonnet 4.6 → Opus 4.8 → Opus 5) and converge at the flagship.
|
|
6124
6145
|
"claude-haiku-4-5": "claude-sonnet-5",
|
|
6125
|
-
"claude-sonnet-5": "claude-opus-
|
|
6146
|
+
"claude-sonnet-5": "claude-opus-5",
|
|
6126
6147
|
"claude-sonnet-4-6": "claude-opus-4-8",
|
|
6127
|
-
|
|
6148
|
+
"claude-opus-4-8": "claude-opus-5",
|
|
6149
|
+
// Claude (Copilot dot-form) — Haiku → Sonnet 4.6 → Opus 4.8. Opus 4.8 is deliberately the
|
|
6150
|
+
// dot-form top: claude-opus-5 is plan-gated on Copilot, so the default ladder never steers a
|
|
6151
|
+
// mid-task spawn into a model many accounts cannot use (add a rung via escalationMap to opt in).
|
|
6128
6152
|
"claude-haiku-4.5": "claude-sonnet-4.6",
|
|
6129
6153
|
"claude-sonnet-4.6": "claude-opus-4.8",
|
|
6130
|
-
// Copilot/Codex GPT —
|
|
6131
|
-
//
|
|
6154
|
+
// Copilot/Codex GPT — minis step to the 5.5 full tier; the 5.5/5.4 generation chains into the
|
|
6155
|
+
// 5.6 family; within 5.6, luna → terra → sol (sol is the flagship top rung).
|
|
6132
6156
|
"gpt-5-mini": "gpt-5.5",
|
|
6133
6157
|
"gpt-5.4-mini": "gpt-5.5",
|
|
6134
|
-
"gpt-5.4": "gpt-5.5"
|
|
6158
|
+
"gpt-5.4": "gpt-5.5",
|
|
6159
|
+
"gpt-5.5": "gpt-5.6-sol",
|
|
6160
|
+
"gpt-5.6-luna": "gpt-5.6-terra",
|
|
6161
|
+
"gpt-5.6-terra": "gpt-5.6-sol"
|
|
6135
6162
|
};
|
|
6136
6163
|
var mergeEscalationMap = (user) => ({
|
|
6137
6164
|
...DEFAULT_ESCALATION_MAP,
|
|
@@ -6155,7 +6182,9 @@ var escalationLadderCyclicFrom = (map, start) => {
|
|
|
6155
6182
|
return false;
|
|
6156
6183
|
};
|
|
6157
6184
|
var EFFORT_ESCALATION_TARGET = "high";
|
|
6185
|
+
var CODEX_EFFORT_ESCALATION_TARGET = "xhigh";
|
|
6158
6186
|
var EFFORT_AT_OR_ABOVE_TARGET = /* @__PURE__ */ new Set(["high", "xhigh", "max"]);
|
|
6187
|
+
var CODEX_EFFORT_AT_OR_ABOVE_TARGET = /* @__PURE__ */ new Set(["xhigh", "max", "ultra"]);
|
|
6159
6188
|
var EFFORT_CAPABLE_PROVIDERS = /* @__PURE__ */ new Set([
|
|
6160
6189
|
"claude-code",
|
|
6161
6190
|
"github-copilot",
|
|
@@ -6179,8 +6208,12 @@ var claudeEffortRung = (model, currentEffort) => {
|
|
|
6179
6208
|
var nextEffortRung = (provider, model, currentEffort) => {
|
|
6180
6209
|
if (provider === void 0 || !EFFORT_CAPABLE_PROVIDERS.has(provider)) return void 0;
|
|
6181
6210
|
if (provider === "claude-code") return claudeEffortRung(model, currentEffort);
|
|
6182
|
-
if (
|
|
6183
|
-
|
|
6211
|
+
if (provider === "github-copilot") {
|
|
6212
|
+
if (currentEffort !== void 0 && EFFORT_AT_OR_ABOVE_TARGET.has(currentEffort)) return void 0;
|
|
6213
|
+
return EFFORT_ESCALATION_TARGET;
|
|
6214
|
+
}
|
|
6215
|
+
if (currentEffort !== void 0 && CODEX_EFFORT_AT_OR_ABOVE_TARGET.has(currentEffort)) return void 0;
|
|
6216
|
+
return CODEX_EFFORT_ESCALATION_TARGET;
|
|
6184
6217
|
};
|
|
6185
6218
|
|
|
6186
6219
|
// src/integration/ai/skills/_engine/filesystem-skills-adapter.ts
|
|
@@ -13978,7 +14011,7 @@ var resolveEffortForRow = (row, globalEffort) => {
|
|
|
13978
14011
|
return _floorForProvider(globalEffort, row.provider);
|
|
13979
14012
|
};
|
|
13980
14013
|
var clampEffortToProvider = (effort, provider) => {
|
|
13981
|
-
if (provider === "openai-codex" &&
|
|
14014
|
+
if (provider === "openai-codex" && effort === "max") return "xhigh";
|
|
13982
14015
|
return effort;
|
|
13983
14016
|
};
|
|
13984
14017
|
var _floorForProvider = (effort, provider) => clampEffortToProvider(effort, provider);
|
|
@@ -15286,7 +15319,7 @@ var validateSignalsFile = async (outputDir, contract) => {
|
|
|
15286
15319
|
}
|
|
15287
15320
|
const wrapper = current;
|
|
15288
15321
|
const inner = wrapper.signals;
|
|
15289
|
-
const defaulted = defaultMissingTimestamps(inner);
|
|
15322
|
+
const defaulted = renameNarrativeBodyToText(defaultMissingTimestamps(inner));
|
|
15290
15323
|
const parsed = contract.signalsSchema.safeParse(defaulted);
|
|
15291
15324
|
if (!parsed.success) {
|
|
15292
15325
|
return Result.error(
|
|
@@ -15304,6 +15337,18 @@ var describeJsonError = (cause) => {
|
|
|
15304
15337
|
if (cause instanceof Error) return cause.message;
|
|
15305
15338
|
return String(cause);
|
|
15306
15339
|
};
|
|
15340
|
+
var NARRATIVE_SIGNAL_KINDS = /* @__PURE__ */ new Set(["learning", "note", "decision"]);
|
|
15341
|
+
var renameNarrativeBodyToText = (inner) => {
|
|
15342
|
+
if (!Array.isArray(inner)) return inner;
|
|
15343
|
+
return inner.map((sig) => {
|
|
15344
|
+
if (typeof sig !== "object" || sig === null) return sig;
|
|
15345
|
+
const s = sig;
|
|
15346
|
+
if (typeof s.type !== "string" || !NARRATIVE_SIGNAL_KINDS.has(s.type)) return sig;
|
|
15347
|
+
if (typeof s.text === "string" || typeof s.body !== "string") return sig;
|
|
15348
|
+
const { body, ...rest } = s;
|
|
15349
|
+
return { ...rest, text: body };
|
|
15350
|
+
});
|
|
15351
|
+
};
|
|
15307
15352
|
var defaultMissingTimestamps = (inner) => {
|
|
15308
15353
|
if (!Array.isArray(inner)) return inner;
|
|
15309
15354
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
@@ -15394,6 +15439,16 @@ var refineExampleSignals = [
|
|
|
15394
15439
|
type: "decision",
|
|
15395
15440
|
text: "Scoped export to CSV only for v1; XLSX deferred to a follow-up ticket.",
|
|
15396
15441
|
timestamp: EXAMPLE_TS
|
|
15442
|
+
},
|
|
15443
|
+
{
|
|
15444
|
+
type: "learning",
|
|
15445
|
+
text: "The export path already streams; the ticket must not assume an in-memory buffer.",
|
|
15446
|
+
timestamp: EXAMPLE_TS
|
|
15447
|
+
},
|
|
15448
|
+
{
|
|
15449
|
+
type: "note",
|
|
15450
|
+
text: "The user ruled column ordering out of scope \u2014 captured as a deferred item rather than an AC.",
|
|
15451
|
+
timestamp: EXAMPLE_TS
|
|
15397
15452
|
}
|
|
15398
15453
|
];
|
|
15399
15454
|
var refineOutputContract = {
|
|
@@ -16420,7 +16475,12 @@ var renderPlateauDirectiveSection = (plateauBreak) => {
|
|
|
16420
16475
|
"Step back and rethink. Re-read the task contract and the prior critique, question the assumption",
|
|
16421
16476
|
"that led the earlier attempts astray, and implement a **fundamentally different** solution \u2014 a",
|
|
16422
16477
|
"different design, data flow, or code path. Then verify the failing criteria directly before",
|
|
16423
|
-
"signalling completion."
|
|
16478
|
+
"signalling completion.",
|
|
16479
|
+
"",
|
|
16480
|
+
"Before you choose that different approach, name which failure mode you were stuck in \u2014",
|
|
16481
|
+
"re-exploring code you already understood, looping on the same failing edit, over-polishing",
|
|
16482
|
+
"criteria that already pass, or fixing the wrong",
|
|
16483
|
+
'location entirely \u2014 then change that specific behaviour, not just "try something different."'
|
|
16424
16484
|
].join("\n");
|
|
16425
16485
|
};
|
|
16426
16486
|
|
|
@@ -16802,6 +16862,21 @@ var planExampleSignals = [
|
|
|
16802
16862
|
type: "task-plan",
|
|
16803
16863
|
tasksJson: '[{"name":"Wire export endpoint","ticketRef":"<ticket-uuid>","projectPath":"/abs/repo","steps":["..."],"verificationCriteria":["..."]}]',
|
|
16804
16864
|
timestamp: EXAMPLE_TS2
|
|
16865
|
+
},
|
|
16866
|
+
{
|
|
16867
|
+
type: "decision",
|
|
16868
|
+
text: "Split the export work into endpoint + serializer tasks so the shared file is owned by exactly one task.",
|
|
16869
|
+
timestamp: EXAMPLE_TS2
|
|
16870
|
+
},
|
|
16871
|
+
{
|
|
16872
|
+
type: "learning",
|
|
16873
|
+
text: "The repo runs its integration suite from a separate config; the root test command does not cover it.",
|
|
16874
|
+
timestamp: EXAMPLE_TS2
|
|
16875
|
+
},
|
|
16876
|
+
{
|
|
16877
|
+
type: "note",
|
|
16878
|
+
text: "Two approved tickets touch the same route file; sequenced them via blockedBy rather than splitting the file.",
|
|
16879
|
+
timestamp: EXAMPLE_TS2
|
|
16805
16880
|
}
|
|
16806
16881
|
];
|
|
16807
16882
|
var planOutputContract = {
|
|
@@ -18501,7 +18576,7 @@ var composeCriteriaHistory = (input) => {
|
|
|
18501
18576
|
var requireNonEmpty = (field, message) => (v) => v.trim().length === 0 ? Result.error(new ValidationError({ field, value: v, message })) : Result.ok(v);
|
|
18502
18577
|
var implementPromptDef = {
|
|
18503
18578
|
templateName: "implement",
|
|
18504
|
-
description: "One-shot task execution. The agent reads the task body
|
|
18579
|
+
description: "One-shot task execution. The agent reads the task body and emits harness signals; the harness runs the verify script as the post-task gate and snapshots the signals into progress.md.",
|
|
18505
18580
|
parameters: {
|
|
18506
18581
|
taskName: {
|
|
18507
18582
|
placeholder: "TASK_NAME",
|
|
@@ -18732,7 +18807,17 @@ var generatorExampleSignals = [
|
|
|
18732
18807
|
appliesTo: "config / io layer",
|
|
18733
18808
|
timestamp: EXAMPLE_TS3
|
|
18734
18809
|
},
|
|
18735
|
-
{
|
|
18810
|
+
{
|
|
18811
|
+
type: "decision",
|
|
18812
|
+
text: "Centralised the parse in one helper rather than patching both call sites, to avoid future drift.",
|
|
18813
|
+
timestamp: EXAMPLE_TS3
|
|
18814
|
+
},
|
|
18815
|
+
{
|
|
18816
|
+
type: "note",
|
|
18817
|
+
text: "Left the unrelated typo at src/baz.ts:8 alone \u2014 out of scope for this task.",
|
|
18818
|
+
timestamp: EXAMPLE_TS3
|
|
18819
|
+
},
|
|
18820
|
+
{ type: "task-verified", output: "$ <project test command>\n... 42 passed", timestamp: EXAMPLE_TS3 },
|
|
18736
18821
|
{
|
|
18737
18822
|
type: COMMIT_MESSAGE_KIND,
|
|
18738
18823
|
subject: "feat(foo): add helper for bar",
|
|
@@ -20399,7 +20484,7 @@ var evaluatorExampleSignals = [
|
|
|
20399
20484
|
dimension: "correctness",
|
|
20400
20485
|
passed: false,
|
|
20401
20486
|
finding: "C1 command exited 1: empty-input test failed at src/foo.ts:23",
|
|
20402
|
-
executionEvidence: "
|
|
20487
|
+
executionEvidence: "<project test command>\n \u2717 handles empty input (expected 400, got 500)\n 1 failing"
|
|
20403
20488
|
},
|
|
20404
20489
|
{ dimension: "completeness", passed: true, finding: "all declared steps shipped" },
|
|
20405
20490
|
{ dimension: "safety", passed: true, finding: "inputs validated at the request boundary" },
|
|
@@ -20407,11 +20492,25 @@ var evaluatorExampleSignals = [
|
|
|
20407
20492
|
{ dimension: "robustness", passed: true, finding: "error path retries the write once before surfacing" }
|
|
20408
20493
|
],
|
|
20409
20494
|
criteria: [
|
|
20410
|
-
{
|
|
20495
|
+
{
|
|
20496
|
+
id: "C1",
|
|
20497
|
+
passed: false,
|
|
20498
|
+
evidence: "<project test command> exited 1 \u2014 empty-input case failed at src/foo.ts:23"
|
|
20499
|
+
},
|
|
20411
20500
|
{ id: "C2", passed: true, evidence: "request boundary validates input at src/foo.ts:11" }
|
|
20412
20501
|
],
|
|
20413
20502
|
critique: "Correctness: add edge-case handling for empty input at src/foo.ts:23.",
|
|
20414
20503
|
timestamp: EXAMPLE_TS4
|
|
20504
|
+
},
|
|
20505
|
+
{
|
|
20506
|
+
type: "learning",
|
|
20507
|
+
text: "The suite needs a built fixture; a cold checkout fails the C1 command for reasons unrelated to the task.",
|
|
20508
|
+
timestamp: EXAMPLE_TS4
|
|
20509
|
+
},
|
|
20510
|
+
{
|
|
20511
|
+
type: "note",
|
|
20512
|
+
text: "C2 was checked by reading the call site \u2014 the criterion is manual, so no command was run.",
|
|
20513
|
+
timestamp: EXAMPLE_TS4
|
|
20415
20514
|
}
|
|
20416
20515
|
];
|
|
20417
20516
|
var evaluatorOutputContract = {
|
|
@@ -27833,7 +27932,14 @@ var readinessPromptDef = {
|
|
|
27833
27932
|
partials: {
|
|
27834
27933
|
HARNESS_CONTEXT: "harness-context"
|
|
27835
27934
|
},
|
|
27836
|
-
expectedSignals: [
|
|
27935
|
+
expectedSignals: [
|
|
27936
|
+
"agents-md-proposal",
|
|
27937
|
+
"setup-skill-proposal",
|
|
27938
|
+
"verify-skill-proposal",
|
|
27939
|
+
"skill-suggestions",
|
|
27940
|
+
"note",
|
|
27941
|
+
"learning"
|
|
27942
|
+
]
|
|
27837
27943
|
};
|
|
27838
27944
|
var renderCurrentTool = (tool) => tool;
|
|
27839
27945
|
var renderExistingContextFile = (body) => {
|
|
@@ -27958,20 +28064,30 @@ var readinessExampleSignals = [
|
|
|
27958
28064
|
{
|
|
27959
28065
|
type: "agents-md-proposal",
|
|
27960
28066
|
tag: "claude-md",
|
|
27961
|
-
content: "# Project Context\n\n## Build & Run\n\n
|
|
28067
|
+
content: "# Project Context\n\n## Build & Run\n\n`<dev server command>` \u2014 runs the dev server.",
|
|
27962
28068
|
timestamp: EXAMPLE_TS6
|
|
27963
28069
|
},
|
|
27964
28070
|
{
|
|
27965
28071
|
type: "setup-skill-proposal",
|
|
27966
|
-
content: "# Setup\n\nRun
|
|
28072
|
+
content: "# Setup\n\nRun `<install command>` to install dependencies.",
|
|
27967
28073
|
timestamp: EXAMPLE_TS6
|
|
27968
28074
|
},
|
|
27969
28075
|
{
|
|
27970
28076
|
type: "verify-skill-proposal",
|
|
27971
|
-
content: "# Verify\n\nRun
|
|
28077
|
+
content: "# Verify\n\nRun `<verify command>` (typecheck + lint + test).",
|
|
27972
28078
|
timestamp: EXAMPLE_TS6
|
|
27973
28079
|
},
|
|
27974
|
-
{ type: "skill-suggestions", names: ["typescript-strict", "
|
|
28080
|
+
{ type: "skill-suggestions", names: ["typescript-strict", "code-style-conventions"], timestamp: EXAMPLE_TS6 },
|
|
28081
|
+
{
|
|
28082
|
+
type: "learning",
|
|
28083
|
+
text: "The verify command lives in a workspace package script, not the repo root manifest.",
|
|
28084
|
+
timestamp: EXAMPLE_TS6
|
|
28085
|
+
},
|
|
28086
|
+
{
|
|
28087
|
+
type: "note",
|
|
28088
|
+
text: "No lint config found, so the proposed verify skill covers typecheck + test only.",
|
|
28089
|
+
timestamp: EXAMPLE_TS6
|
|
28090
|
+
}
|
|
27975
28091
|
];
|
|
27976
28092
|
var readinessOutputContract = {
|
|
27977
28093
|
schemaVersion: 1,
|
|
@@ -28287,8 +28403,7 @@ var resolveEffortForRow2 = (ai, flow) => {
|
|
|
28287
28403
|
if (row.effort !== void 0) return row.effort;
|
|
28288
28404
|
const globalEffort = ai.effort;
|
|
28289
28405
|
if (globalEffort === void 0) return void 0;
|
|
28290
|
-
|
|
28291
|
-
return globalEffort;
|
|
28406
|
+
return clampEffortToProvider(globalEffort, row.provider);
|
|
28292
28407
|
};
|
|
28293
28408
|
var PROVIDER_INFRASTRUCTURE_ERROR_CODES = /* @__PURE__ */ new Set([ErrorCode.Probe, ErrorCode.RateLimit]);
|
|
28294
28409
|
var wrapProviderContinue = (eventBus, provider, inner) => ({
|
|
@@ -28564,17 +28679,17 @@ var EXAMPLE_TS7 = "2026-05-22T10:00:00.000Z";
|
|
|
28564
28679
|
var EXAMPLE_SIGNALS2 = [
|
|
28565
28680
|
{
|
|
28566
28681
|
type: SETUP_SKILL_PROPOSAL,
|
|
28567
|
-
content: "This repo pins tool versions with mise. Before editing anything, run mise install to activate the exact versions declared in mise.toml. Then run the project install command documented in
|
|
28682
|
+
content: "This repo pins tool versions with mise. Before editing anything, run mise install to activate the exact versions declared in mise.toml. Then run the project install command documented in the coding-agent context file to hydrate the dependency tree.",
|
|
28568
28683
|
timestamp: EXAMPLE_TS7
|
|
28569
28684
|
},
|
|
28570
28685
|
{
|
|
28571
28686
|
type: VERIFY_SKILL_PROPOSAL,
|
|
28572
|
-
content: "Verification runs three gates in sequence documented in
|
|
28687
|
+
content: "Verification runs three gates in sequence documented in the coding-agent context file: typecheck, lint, then tests. A failure in any gate stops the chain; read the first failing gate output \u2014 later gates have not run yet.",
|
|
28573
28688
|
timestamp: EXAMPLE_TS7
|
|
28574
28689
|
},
|
|
28575
28690
|
{
|
|
28576
28691
|
type: "note",
|
|
28577
|
-
text: "Skills authored from
|
|
28692
|
+
text: "Skills authored from the coding-agent context file and mise.toml.",
|
|
28578
28693
|
timestamp: EXAMPLE_TS7
|
|
28579
28694
|
}
|
|
28580
28695
|
];
|
|
@@ -29024,23 +29139,23 @@ var wrapLegacyArray8 = (raw) => {
|
|
|
29024
29139
|
};
|
|
29025
29140
|
var EXAMPLE_TS8 = "2026-05-22T10:00:00.000Z";
|
|
29026
29141
|
var EXAMPLE_SIGNALS3 = [
|
|
29027
|
-
{ type: "setup-script", command: "
|
|
29142
|
+
{ type: "setup-script", command: "<tool> install", timestamp: EXAMPLE_TS8 },
|
|
29028
29143
|
{
|
|
29029
29144
|
type: "verify-script",
|
|
29030
|
-
command: "
|
|
29145
|
+
command: "<tool> typecheck && <tool> lint && <tool> test",
|
|
29031
29146
|
timestamp: EXAMPLE_TS8
|
|
29032
29147
|
},
|
|
29033
29148
|
{
|
|
29034
29149
|
type: "verify-gates",
|
|
29035
29150
|
gates: [
|
|
29036
|
-
{ pathPrefix: "services/api/", command: "
|
|
29037
|
-
{ pathPrefix: "services/web/", command: "
|
|
29151
|
+
{ pathPrefix: "services/api/", command: "<tool> --filter api test" },
|
|
29152
|
+
{ pathPrefix: "services/web/", command: "<tool> --filter web test" }
|
|
29038
29153
|
],
|
|
29039
29154
|
timestamp: EXAMPLE_TS8
|
|
29040
29155
|
},
|
|
29041
29156
|
{
|
|
29042
29157
|
type: "note",
|
|
29043
|
-
text: "Commands lifted verbatim from
|
|
29158
|
+
text: "Commands lifted verbatim from the coding-agent context file.",
|
|
29044
29159
|
timestamp: EXAMPLE_TS8
|
|
29045
29160
|
}
|
|
29046
29161
|
];
|
|
@@ -29584,6 +29699,21 @@ var ideateExampleSignals = [
|
|
|
29584
29699
|
type: "ideated-tickets",
|
|
29585
29700
|
outputJson: '{"requirements":"# Export CSV\\n\\n## Problem\\n\u2026","tasks":[{"name":"Wire endpoint","projectPath":"/abs/repo","steps":["\u2026"],"verificationCriteria":["\u2026"]}]}',
|
|
29586
29701
|
timestamp: EXAMPLE_TS9
|
|
29702
|
+
},
|
|
29703
|
+
{
|
|
29704
|
+
type: "decision",
|
|
29705
|
+
text: "Scoped export to CSV only for v1; XLSX deferred to a follow-up ticket.",
|
|
29706
|
+
timestamp: EXAMPLE_TS9
|
|
29707
|
+
},
|
|
29708
|
+
{
|
|
29709
|
+
type: "learning",
|
|
29710
|
+
text: "The repo runs its integration suite from a separate config; the root test command does not cover it.",
|
|
29711
|
+
timestamp: EXAMPLE_TS9
|
|
29712
|
+
},
|
|
29713
|
+
{
|
|
29714
|
+
type: "note",
|
|
29715
|
+
text: "The user ruled out changing the existing download endpoint, so the new route is additive.",
|
|
29716
|
+
timestamp: EXAMPLE_TS9
|
|
29587
29717
|
}
|
|
29588
29718
|
];
|
|
29589
29719
|
var ideateOutputContract = {
|
|
@@ -30848,7 +30978,7 @@ var evaluateTriggers = (triggers, inputs) => {
|
|
|
30848
30978
|
var PROVIDER_EFFORT_LEVELS = {
|
|
30849
30979
|
"claude-code": ["low", "medium", "high", "xhigh", "max"],
|
|
30850
30980
|
"github-copilot": ["none", "low", "medium", "high", "xhigh", "max"],
|
|
30851
|
-
"openai-codex": ["
|
|
30981
|
+
"openai-codex": ["low", "medium", "high", "xhigh", "max", "ultra"]
|
|
30852
30982
|
};
|
|
30853
30983
|
|
|
30854
30984
|
// src/application/ui/tui/views/flows-customize-picker.ts
|
|
@@ -36483,16 +36613,18 @@ var isPresetName = (raw) => PRESET_NAMES.includes(raw);
|
|
|
36483
36613
|
var CLAUDE = "claude-code";
|
|
36484
36614
|
var COPILOT = "github-copilot";
|
|
36485
36615
|
var CODEX = "openai-codex";
|
|
36486
|
-
var OPUS = "claude-opus-
|
|
36616
|
+
var OPUS = "claude-opus-5";
|
|
36487
36617
|
var SONNET = "claude-sonnet-5";
|
|
36488
36618
|
var HAIKU = "claude-haiku-4-5";
|
|
36489
36619
|
var COPILOT_OPUS = "claude-opus-4.8";
|
|
36490
36620
|
var COPILOT_SONNET = "claude-sonnet-4.6";
|
|
36491
36621
|
var GPT_5_MINI2 = "gpt-5-mini";
|
|
36492
36622
|
var GPT_5_4_MINI2 = "gpt-5.4-mini";
|
|
36623
|
+
var GPT_5_6_SOL2 = "gpt-5.6-sol";
|
|
36624
|
+
var GPT_5_6_TERRA = "gpt-5.6-terra";
|
|
36493
36625
|
var MIXED = {
|
|
36494
36626
|
effort: "high",
|
|
36495
|
-
refine: { provider: CODEX, model:
|
|
36627
|
+
refine: { provider: CODEX, model: GPT_5_6_SOL2 },
|
|
36496
36628
|
plan: { provider: COPILOT, model: COPILOT_SONNET, effort: "xhigh" },
|
|
36497
36629
|
implement: {
|
|
36498
36630
|
generator: { provider: CLAUDE, model: OPUS, effort: "xhigh" },
|
|
@@ -36530,16 +36662,14 @@ var COPILOT_ONLY = {
|
|
|
36530
36662
|
};
|
|
36531
36663
|
var CODEX_ONLY = {
|
|
36532
36664
|
effort: "high",
|
|
36533
|
-
refine: { provider: CODEX, model:
|
|
36534
|
-
plan: { provider: CODEX, model:
|
|
36665
|
+
refine: { provider: CODEX, model: GPT_5_6_TERRA },
|
|
36666
|
+
plan: { provider: CODEX, model: GPT_5_6_SOL2, effort: "xhigh" },
|
|
36535
36667
|
implement: {
|
|
36536
|
-
|
|
36537
|
-
|
|
36538
|
-
generator: { provider: CODEX, model: "gpt-5.5", effort: "high" },
|
|
36539
|
-
evaluator: { provider: CODEX, model: "gpt-5.5", effort: "high" }
|
|
36668
|
+
generator: { provider: CODEX, model: GPT_5_6_SOL2, effort: "xhigh" },
|
|
36669
|
+
evaluator: { provider: CODEX, model: GPT_5_6_SOL2, effort: "xhigh" }
|
|
36540
36670
|
},
|
|
36541
36671
|
readiness: { provider: CODEX, model: GPT_5_4_MINI2, effort: "medium" },
|
|
36542
|
-
ideate: { provider: CODEX, model:
|
|
36672
|
+
ideate: { provider: CODEX, model: GPT_5_6_SOL2 },
|
|
36543
36673
|
createPr: { provider: CODEX, model: GPT_5_4_MINI2 }
|
|
36544
36674
|
};
|
|
36545
36675
|
var MIXED_ECONOMIC = {
|
|
@@ -36581,13 +36711,13 @@ var COPILOT_ECONOMIC = {
|
|
|
36581
36711
|
var CODEX_ECONOMIC = {
|
|
36582
36712
|
effort: "high",
|
|
36583
36713
|
refine: { provider: CODEX, model: GPT_5_4_MINI2 },
|
|
36584
|
-
plan: { provider: CODEX, model:
|
|
36714
|
+
plan: { provider: CODEX, model: GPT_5_6_TERRA, effort: "high" },
|
|
36585
36715
|
implement: {
|
|
36586
|
-
generator: { provider: CODEX, model:
|
|
36587
|
-
evaluator: { provider: CODEX, model:
|
|
36716
|
+
generator: { provider: CODEX, model: GPT_5_6_TERRA, effort: "high" },
|
|
36717
|
+
evaluator: { provider: CODEX, model: GPT_5_6_TERRA, effort: "high" }
|
|
36588
36718
|
},
|
|
36589
36719
|
readiness: { provider: CODEX, model: GPT_5_4_MINI2, effort: "medium" },
|
|
36590
|
-
ideate: { provider: CODEX, model:
|
|
36720
|
+
ideate: { provider: CODEX, model: GPT_5_6_TERRA },
|
|
36591
36721
|
createPr: { provider: CODEX, model: GPT_5_4_MINI2 }
|
|
36592
36722
|
};
|
|
36593
36723
|
var CLAUDE_STRONG_GATE = {
|
|
@@ -36631,14 +36761,15 @@ var COPILOT_STRONG_GATE = {
|
|
|
36631
36761
|
var CODEX_STRONG_GATE = {
|
|
36632
36762
|
effort: "high",
|
|
36633
36763
|
refine: { provider: CODEX, model: GPT_5_4_MINI2 },
|
|
36634
|
-
plan: { provider: CODEX, model:
|
|
36764
|
+
plan: { provider: CODEX, model: GPT_5_6_SOL2, effort: "xhigh" },
|
|
36635
36765
|
implement: {
|
|
36636
|
-
// Narrowest gate of the family:
|
|
36637
|
-
|
|
36638
|
-
|
|
36766
|
+
// Narrowest gate of the family: terra author climbs the single default-ladder rung to the
|
|
36767
|
+
// sol gate.
|
|
36768
|
+
generator: { provider: CODEX, model: GPT_5_6_TERRA, effort: "high" },
|
|
36769
|
+
evaluator: { provider: CODEX, model: GPT_5_6_SOL2, effort: "xhigh" }
|
|
36639
36770
|
},
|
|
36640
36771
|
readiness: { provider: CODEX, model: GPT_5_4_MINI2, effort: "medium" },
|
|
36641
|
-
ideate: { provider: CODEX, model:
|
|
36772
|
+
ideate: { provider: CODEX, model: GPT_5_6_SOL2 },
|
|
36642
36773
|
createPr: { provider: CODEX, model: GPT_5_4_MINI2 }
|
|
36643
36774
|
};
|
|
36644
36775
|
var MIXED_FAST = {
|
|
@@ -36679,19 +36810,19 @@ var COPILOT_FAST = {
|
|
|
36679
36810
|
};
|
|
36680
36811
|
var CODEX_FAST = {
|
|
36681
36812
|
effort: "low",
|
|
36682
|
-
refine: { provider: CODEX, model: GPT_5_4_MINI2
|
|
36813
|
+
refine: { provider: CODEX, model: GPT_5_4_MINI2 },
|
|
36683
36814
|
plan: { provider: CODEX, model: GPT_5_4_MINI2, effort: "low" },
|
|
36684
36815
|
implement: {
|
|
36685
36816
|
generator: { provider: CODEX, model: GPT_5_4_MINI2, effort: "low" },
|
|
36686
36817
|
evaluator: { provider: CODEX, model: GPT_5_4_MINI2, effort: "low" }
|
|
36687
36818
|
},
|
|
36688
|
-
readiness: { provider: CODEX, model: GPT_5_4_MINI2
|
|
36819
|
+
readiness: { provider: CODEX, model: GPT_5_4_MINI2 },
|
|
36689
36820
|
ideate: { provider: CODEX, model: GPT_5_4_MINI2 },
|
|
36690
|
-
createPr: { provider: CODEX, model: GPT_5_4_MINI2
|
|
36821
|
+
createPr: { provider: CODEX, model: GPT_5_4_MINI2 }
|
|
36691
36822
|
};
|
|
36692
36823
|
var MIXED_FRONTIER = {
|
|
36693
36824
|
effort: "max",
|
|
36694
|
-
refine: { provider: CODEX, model:
|
|
36825
|
+
refine: { provider: CODEX, model: GPT_5_6_SOL2 },
|
|
36695
36826
|
plan: { provider: CLAUDE, model: OPUS, effort: "max" },
|
|
36696
36827
|
implement: {
|
|
36697
36828
|
generator: { provider: CLAUDE, model: OPUS, effort: "max" },
|
|
@@ -36699,7 +36830,7 @@ var MIXED_FRONTIER = {
|
|
|
36699
36830
|
},
|
|
36700
36831
|
readiness: { provider: CLAUDE, model: OPUS, effort: "high" },
|
|
36701
36832
|
ideate: { provider: CLAUDE, model: OPUS },
|
|
36702
|
-
createPr: { provider: CODEX, model:
|
|
36833
|
+
createPr: { provider: CODEX, model: GPT_5_6_SOL2 }
|
|
36703
36834
|
};
|
|
36704
36835
|
var CLAUDE_FRONTIER = {
|
|
36705
36836
|
effort: "max",
|
|
@@ -36726,17 +36857,16 @@ var COPILOT_FRONTIER = {
|
|
|
36726
36857
|
createPr: { provider: COPILOT, model: COPILOT_OPUS }
|
|
36727
36858
|
};
|
|
36728
36859
|
var CODEX_FRONTIER = {
|
|
36729
|
-
|
|
36730
|
-
|
|
36731
|
-
|
|
36732
|
-
plan: { provider: CODEX, model: "gpt-5.5", effort: "high" },
|
|
36860
|
+
effort: "max",
|
|
36861
|
+
refine: { provider: CODEX, model: GPT_5_6_SOL2 },
|
|
36862
|
+
plan: { provider: CODEX, model: GPT_5_6_SOL2, effort: "max" },
|
|
36733
36863
|
implement: {
|
|
36734
|
-
generator: { provider: CODEX, model:
|
|
36735
|
-
evaluator: { provider: CODEX, model:
|
|
36864
|
+
generator: { provider: CODEX, model: GPT_5_6_SOL2, effort: "max" },
|
|
36865
|
+
evaluator: { provider: CODEX, model: GPT_5_6_SOL2, effort: "max" }
|
|
36736
36866
|
},
|
|
36737
|
-
readiness: { provider: CODEX, model:
|
|
36738
|
-
ideate: { provider: CODEX, model:
|
|
36739
|
-
createPr: { provider: CODEX, model:
|
|
36867
|
+
readiness: { provider: CODEX, model: GPT_5_6_SOL2, effort: "high" },
|
|
36868
|
+
ideate: { provider: CODEX, model: GPT_5_6_SOL2 },
|
|
36869
|
+
createPr: { provider: CODEX, model: GPT_5_6_SOL2 }
|
|
36740
36870
|
};
|
|
36741
36871
|
var PRESETS = {
|
|
36742
36872
|
mixed: { ai: MIXED, escalateOnPlateau: true },
|