ocmm 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex/agents/dw-builder.toml +3 -3
- package/.codex/agents/dw-clarifier.toml +2 -2
- package/.codex/agents/dw-code-search.toml +2 -2
- package/.codex/agents/dw-coding.toml +2 -2
- package/.codex/agents/dw-complex.toml +2 -2
- package/.codex/agents/dw-creative.toml +2 -2
- package/.codex/agents/dw-deep.toml +3 -3
- package/.codex/agents/dw-doc-search.toml +2 -2
- package/.codex/agents/dw-documenting.toml +2 -2
- package/.codex/agents/dw-explore.toml +2 -2
- package/.codex/agents/dw-frontend.toml +2 -2
- package/.codex/agents/dw-hard-reasoning.toml +2 -2
- package/.codex/agents/dw-media-reader.toml +2 -2
- package/.codex/agents/dw-normal-task.toml +2 -2
- package/.codex/agents/dw-oracle-2nd.toml +8 -0
- package/.codex/agents/dw-oracle.toml +3 -3
- package/.codex/agents/dw-orchestrator.toml +2 -2
- package/.codex/agents/dw-plan-critic.toml +2 -2
- package/.codex/agents/dw-planner.toml +3 -3
- package/.codex/agents/dw-quick.toml +2 -2
- package/.codex/agents/dw-research.toml +2 -2
- package/.codex/agents/dw-reviewer.toml +2 -2
- package/README.md +193 -46
- package/dist/cli/shim.d.ts +4 -2
- package/dist/cli/shim.js +26 -11
- package/dist/cli/shim.js.map +1 -1
- package/dist/codex/plugin-generator.js +121 -96
- package/dist/codex/plugin-generator.js.map +1 -1
- package/dist/config/load.d.ts +32 -23
- package/dist/config/load.js +384 -90
- package/dist/config/load.js.map +1 -1
- package/dist/config/merge.d.ts +18 -0
- package/dist/config/merge.js +46 -0
- package/dist/config/merge.js.map +1 -0
- package/dist/config/normalize.d.ts +1 -0
- package/dist/config/normalize.js +22 -16
- package/dist/config/normalize.js.map +1 -1
- package/dist/config/profile-aliases.d.ts +12 -0
- package/dist/config/profile-aliases.js +127 -0
- package/dist/config/profile-aliases.js.map +1 -0
- package/dist/config/profile-types.d.ts +13 -0
- package/dist/config/profile-types.js +2 -0
- package/dist/config/profile-types.js.map +1 -0
- package/dist/config/review-agent-migration.d.ts +89 -0
- package/dist/config/review-agent-migration.js +237 -0
- package/dist/config/review-agent-migration.js.map +1 -0
- package/dist/config/schema.d.ts +1364 -219
- package/dist/config/schema.js +169 -36
- package/dist/config/schema.js.map +1 -1
- package/dist/config/tolerant-parse.d.ts +41 -0
- package/dist/config/tolerant-parse.js +164 -0
- package/dist/config/tolerant-parse.js.map +1 -0
- package/dist/data/agents.d.ts +2 -1
- package/dist/data/agents.js +25 -10
- package/dist/data/agents.js.map +1 -1
- package/dist/data/categories.js +2 -1
- package/dist/data/categories.js.map +1 -1
- package/dist/hooks/chat-params.d.ts +2 -0
- package/dist/hooks/chat-params.js +182 -16
- package/dist/hooks/chat-params.js.map +1 -1
- package/dist/hooks/config.d.ts +14 -2
- package/dist/hooks/config.js +538 -60
- package/dist/hooks/config.js.map +1 -1
- package/dist/hooks/event.d.ts +3 -11
- package/dist/hooks/event.js +5 -9
- package/dist/hooks/event.js.map +1 -1
- package/dist/index.js +21 -14
- package/dist/index.js.map +1 -1
- package/dist/intent/model-family.d.ts +2 -0
- package/dist/intent/model-family.js +11 -0
- package/dist/intent/model-family.js.map +1 -1
- package/dist/intent/prompt-loader.d.ts +3 -3
- package/dist/intent/prompt-loader.js +3 -3
- package/dist/permissions/index.d.ts +3 -0
- package/dist/permissions/index.js +43 -28
- package/dist/permissions/index.js.map +1 -1
- package/dist/review-agents/expand.d.ts +36 -0
- package/dist/review-agents/expand.js +157 -0
- package/dist/review-agents/expand.js.map +1 -0
- package/dist/review-agents/names.d.ts +16 -0
- package/dist/review-agents/names.js +55 -0
- package/dist/review-agents/names.js.map +1 -0
- package/dist/routing/effective-route.d.ts +19 -0
- package/dist/routing/effective-route.js +133 -0
- package/dist/routing/effective-route.js.map +1 -0
- package/dist/routing/model-upgrades.d.ts +5 -0
- package/dist/routing/model-upgrades.js +59 -11
- package/dist/routing/model-upgrades.js.map +1 -1
- package/dist/routing/resolver.d.ts +8 -1
- package/dist/routing/resolver.js +29 -9
- package/dist/routing/resolver.js.map +1 -1
- package/dist/routing/route-registry.d.ts +13 -0
- package/dist/routing/route-registry.js +84 -0
- package/dist/routing/route-registry.js.map +1 -0
- package/dist/routing/variant-translator.js +7 -4
- package/dist/routing/variant-translator.js.map +1 -1
- package/dist/runtime-fallback/dispatcher.d.ts +1 -0
- package/dist/runtime-fallback/dispatcher.js +7 -5
- package/dist/runtime-fallback/dispatcher.js.map +1 -1
- package/dist/runtime-fallback/error-classifier.d.ts +3 -1
- package/dist/runtime-fallback/error-classifier.js +135 -1
- package/dist/runtime-fallback/error-classifier.js.map +1 -1
- package/dist/runtime-fallback/event-handler-generic-fallback.d.ts +26 -0
- package/dist/runtime-fallback/event-handler-generic-fallback.js +54 -0
- package/dist/runtime-fallback/event-handler-generic-fallback.js.map +1 -0
- package/dist/runtime-fallback/event-handler-idle-continuation.d.ts +9 -0
- package/dist/runtime-fallback/event-handler-idle-continuation.js +48 -0
- package/dist/runtime-fallback/event-handler-idle-continuation.js.map +1 -0
- package/dist/runtime-fallback/event-handler-support.d.ts +39 -0
- package/dist/runtime-fallback/event-handler-support.js +194 -0
- package/dist/runtime-fallback/event-handler-support.js.map +1 -0
- package/dist/runtime-fallback/event-handler-test-fixtures.d.ts +874 -0
- package/dist/runtime-fallback/event-handler-test-fixtures.js +150 -0
- package/dist/runtime-fallback/event-handler-test-fixtures.js.map +1 -0
- package/dist/runtime-fallback/event-handler.d.ts +13 -1
- package/dist/runtime-fallback/event-handler.js +334 -192
- package/dist/runtime-fallback/event-handler.js.map +1 -1
- package/dist/runtime-fallback/fallback-state.d.ts +8 -5
- package/dist/runtime-fallback/fallback-state.js +9 -6
- package/dist/runtime-fallback/fallback-state.js.map +1 -1
- package/dist/runtime-fallback/index.d.ts +21 -1
- package/dist/runtime-fallback/index.js +7 -1
- package/dist/runtime-fallback/index.js.map +1 -1
- package/dist/runtime-fallback/interruption-output-adapter.d.ts +7 -0
- package/dist/runtime-fallback/interruption-output-adapter.js +91 -0
- package/dist/runtime-fallback/interruption-output-adapter.js.map +1 -0
- package/dist/runtime-fallback/subagent-429-controller-fixture.d.ts +105 -0
- package/dist/runtime-fallback/subagent-429-controller-fixture.js +116 -0
- package/dist/runtime-fallback/subagent-429-controller-fixture.js.map +1 -0
- package/dist/runtime-fallback/subagent-429-controller.d.ts +167 -0
- package/dist/runtime-fallback/subagent-429-controller.js +334 -0
- package/dist/runtime-fallback/subagent-429-controller.js.map +1 -0
- package/dist/runtime-fallback/subagent-429-policy.d.ts +13 -0
- package/dist/runtime-fallback/subagent-429-policy.js +37 -0
- package/dist/runtime-fallback/subagent-429-policy.js.map +1 -0
- package/dist/runtime-fallback/subagent-429-session.d.ts +48 -0
- package/dist/runtime-fallback/subagent-429-session.js +316 -0
- package/dist/runtime-fallback/subagent-429-session.js.map +1 -0
- package/dist/shared/opencode-events.d.ts +22 -0
- package/dist/shared/opencode-events.js +75 -0
- package/dist/shared/opencode-events.js.map +1 -0
- package/dist/shared/types.d.ts +12 -1
- package/package.json +1 -1
- package/plugins/deepwork/.codex-plugin/plugin.json +1 -1
- package/plugins/deepwork/README.md +3 -2
- package/plugins/deepwork/agents/dw-builder.toml +3 -3
- package/plugins/deepwork/agents/dw-clarifier.toml +2 -2
- package/plugins/deepwork/agents/dw-code-search.toml +2 -2
- package/plugins/deepwork/agents/dw-coding.toml +2 -2
- package/plugins/deepwork/agents/dw-complex.toml +2 -2
- package/plugins/deepwork/agents/dw-creative.toml +2 -2
- package/plugins/deepwork/agents/dw-deep.toml +3 -3
- package/plugins/deepwork/agents/dw-doc-search.toml +2 -2
- package/plugins/deepwork/agents/dw-documenting.toml +2 -2
- package/plugins/deepwork/agents/dw-explore.toml +2 -2
- package/plugins/deepwork/agents/dw-frontend.toml +2 -2
- package/plugins/deepwork/agents/dw-hard-reasoning.toml +2 -2
- package/plugins/deepwork/agents/dw-media-reader.toml +2 -2
- package/plugins/deepwork/agents/dw-normal-task.toml +2 -2
- package/plugins/deepwork/agents/dw-oracle-2nd.toml +8 -0
- package/plugins/deepwork/agents/dw-oracle.toml +3 -3
- package/plugins/deepwork/agents/dw-orchestrator.toml +2 -2
- package/plugins/deepwork/agents/dw-plan-critic.toml +2 -2
- package/plugins/deepwork/agents/dw-planner.toml +3 -3
- package/plugins/deepwork/agents/dw-quick.toml +2 -2
- package/plugins/deepwork/agents/dw-research.toml +2 -2
- package/plugins/deepwork/agents/dw-reviewer.toml +2 -2
- package/plugins/deepwork/dist/cli/shim.d.ts +4 -2
- package/plugins/deepwork/dist/cli/shim.js +26 -11
- package/plugins/deepwork/dist/cli/shim.js.map +1 -1
- package/plugins/deepwork/dist/shared/opencode-events.d.ts +22 -0
- package/plugins/deepwork/dist/shared/opencode-events.js +75 -0
- package/plugins/deepwork/dist/shared/opencode-events.js.map +1 -0
- package/plugins/deepwork/dist/shared/types.d.ts +12 -1
- package/plugins/deepwork/package.json +1 -1
- package/plugins/deepwork/skills/deepwork/SKILL.md +74 -58
- package/plugins/deepwork/skills/deepwork-requesting-code-review/SKILL.md +53 -27
- package/plugins/deepwork/skills/deepwork-requesting-code-review/code-reviewer.md +11 -7
- package/plugins/deepwork/skills/deepwork-subagent-driven-development/SKILL.md +34 -21
- package/plugins/deepwork/skills/deepwork-subagent-driven-development/implementer-prompt.md +10 -3
- package/prompts/codex/agents/clarifier.md +4 -0
- package/prompts/codex/agents/orchestrator.md +12 -2
- package/prompts/codex/agents/plan-critic.md +4 -0
- package/prompts/codex/agents/planner.md +15 -10
- package/prompts/codex/agents/reviewer.md +8 -2
- package/prompts/codex/deepwork/gpt-5.6.md +20 -37
- package/prompts/omo/agents/clarifier.md +4 -0
- package/prompts/omo/agents/orchestrator.md +11 -0
- package/prompts/omo/agents/plan-critic.md +4 -0
- package/prompts/omo/agents/planner.md +15 -3
- package/prompts/omo/agents/reviewer.md +8 -2
- package/prompts/omo/deepwork/gpt-5.6.md +20 -37
- package/prompts/v1/agents/clarifier.md +4 -0
- package/prompts/v1/agents/orchestrator.md +12 -2
- package/prompts/v1/agents/plan-critic.md +4 -0
- package/prompts/v1/agents/planner.md +15 -10
- package/prompts/v1/agents/reviewer.md +8 -2
- package/prompts/v1/deepwork/gpt-5.6.md +20 -37
- package/skills/v1/requesting-code-review/SKILL.md +53 -27
- package/skills/v1/requesting-code-review/code-reviewer.md +11 -7
- package/skills/v1/subagent-driven-development/SKILL.md +34 -21
- package/skills/v1/subagent-driven-development/implementer-prompt.md +10 -3
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { matchRequirementSuccessorWithIndex } from "./model-upgrades.js";
|
|
2
|
+
function parseSelectedModelIdentity(selectedModel) {
|
|
3
|
+
const separator = selectedModel.indexOf("/");
|
|
4
|
+
if (separator <= 0 || separator === selectedModel.length - 1)
|
|
5
|
+
return null;
|
|
6
|
+
const providerID = selectedModel.slice(0, separator);
|
|
7
|
+
const modelID = selectedModel.slice(separator + 1);
|
|
8
|
+
return providerID && modelID ? { providerID, modelID } : null;
|
|
9
|
+
}
|
|
10
|
+
function cloneEntry(entry) {
|
|
11
|
+
return {
|
|
12
|
+
...entry,
|
|
13
|
+
providers: [...entry.providers],
|
|
14
|
+
...(entry.thinking ? { thinking: { ...entry.thinking } } : {}),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function cloneRequirement(requirement) {
|
|
18
|
+
return {
|
|
19
|
+
...requirement,
|
|
20
|
+
fallbackChain: requirement.fallbackChain.map(cloneEntry),
|
|
21
|
+
...(requirement.requiresProvider !== undefined ? { requiresProvider: [...requirement.requiresProvider] } : {}),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function entryIdentity(entry) {
|
|
25
|
+
return JSON.stringify([entry.providers, entry.model]);
|
|
26
|
+
}
|
|
27
|
+
function stableDedupe(entries) {
|
|
28
|
+
const identities = new Set();
|
|
29
|
+
const deduped = [];
|
|
30
|
+
for (const entry of entries) {
|
|
31
|
+
const identity = entryIdentity(entry);
|
|
32
|
+
if (identities.has(identity))
|
|
33
|
+
continue;
|
|
34
|
+
identities.add(identity);
|
|
35
|
+
deduped.push(cloneEntry(entry));
|
|
36
|
+
}
|
|
37
|
+
return deduped;
|
|
38
|
+
}
|
|
39
|
+
function entryMatchesBoundaryPrefix(entry, providerID, modelID) {
|
|
40
|
+
if (!entry.providers.includes(providerID) || !modelID.startsWith(entry.model))
|
|
41
|
+
return false;
|
|
42
|
+
const boundary = modelID[entry.model.length];
|
|
43
|
+
return boundary === "-" || boundary === "_" || boundary === ".";
|
|
44
|
+
}
|
|
45
|
+
function pinnedSelectedEntry(entry, providerID, modelID) {
|
|
46
|
+
return { ...cloneEntry(entry), providers: [providerID], model: modelID };
|
|
47
|
+
}
|
|
48
|
+
function mappedCandidate(value, selected) {
|
|
49
|
+
return value !== "" && value !== selected.modelID ? value : null;
|
|
50
|
+
}
|
|
51
|
+
export function parseFastModeValue(value) {
|
|
52
|
+
return value === "1" || value === "true";
|
|
53
|
+
}
|
|
54
|
+
export function materializeSelectedPrimary(requirement, selectedModel) {
|
|
55
|
+
const selected = parseSelectedModelIdentity(selectedModel);
|
|
56
|
+
const cloned = cloneRequirement(requirement);
|
|
57
|
+
if (!selected)
|
|
58
|
+
return cloned;
|
|
59
|
+
let baselineIndex = -1;
|
|
60
|
+
let primary;
|
|
61
|
+
for (const [index, entry] of requirement.fallbackChain.entries()) {
|
|
62
|
+
if (entry.providers.includes(selected.providerID) && entry.model === selected.modelID) {
|
|
63
|
+
baselineIndex = index;
|
|
64
|
+
primary = pinnedSelectedEntry(entry, selected.providerID, selected.modelID);
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (!primary) {
|
|
69
|
+
const successor = matchRequirementSuccessorWithIndex(requirement, selected.providerID, selected.modelID);
|
|
70
|
+
if (successor) {
|
|
71
|
+
baselineIndex = successor.baselineIndex;
|
|
72
|
+
primary = pinnedSelectedEntry(successor.entry, selected.providerID, selected.modelID);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (!primary) {
|
|
76
|
+
for (const [index, entry] of requirement.fallbackChain.entries()) {
|
|
77
|
+
if (entryMatchesBoundaryPrefix(entry, selected.providerID, selected.modelID)) {
|
|
78
|
+
baselineIndex = index;
|
|
79
|
+
primary = pinnedSelectedEntry(entry, selected.providerID, selected.modelID);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (!primary) {
|
|
85
|
+
primary = {
|
|
86
|
+
providers: [selected.providerID],
|
|
87
|
+
model: selected.modelID,
|
|
88
|
+
...(requirement.variant !== undefined ? { variant: requirement.variant } : {}),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const remainder = cloned.fallbackChain.filter((_, index) => index !== baselineIndex);
|
|
92
|
+
return { ...cloned, fallbackChain: stableDedupe([primary, ...remainder]) };
|
|
93
|
+
}
|
|
94
|
+
export function selectFastCandidate(args) {
|
|
95
|
+
if (!args.fastMode)
|
|
96
|
+
return null;
|
|
97
|
+
const selected = parseSelectedModelIdentity(args.selectedModel);
|
|
98
|
+
if (!selected || !args.fastModels.providers?.includes(selected.providerID))
|
|
99
|
+
return null;
|
|
100
|
+
const mappings = args.fastModels.mappings ?? {};
|
|
101
|
+
if (Object.prototype.hasOwnProperty.call(mappings, args.selectedModel)) {
|
|
102
|
+
return mappedCandidate(mappings[args.selectedModel], selected);
|
|
103
|
+
}
|
|
104
|
+
if (selected.modelID.endsWith("-fast"))
|
|
105
|
+
return null;
|
|
106
|
+
const candidate = `${selected.modelID}-fast`;
|
|
107
|
+
return args.catalogModels?.has(candidate) ? candidate : null;
|
|
108
|
+
}
|
|
109
|
+
export function buildEffectiveModelRoute(args) {
|
|
110
|
+
const requirement = materializeSelectedPrimary(args.requirement, args.selectedModel);
|
|
111
|
+
const candidate = selectFastCandidate(args);
|
|
112
|
+
const selected = parseSelectedModelIdentity(args.selectedModel);
|
|
113
|
+
if (!candidate || !selected) {
|
|
114
|
+
return {
|
|
115
|
+
model: args.selectedModel,
|
|
116
|
+
requirement,
|
|
117
|
+
requirementSource: args.requirementSource,
|
|
118
|
+
primarySource: args.primarySource,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const original = requirement.fallbackChain[0];
|
|
122
|
+
const fast = { ...cloneEntry(original), providers: [selected.providerID], model: candidate };
|
|
123
|
+
return {
|
|
124
|
+
model: `${selected.providerID}/${candidate}`,
|
|
125
|
+
requirement: {
|
|
126
|
+
...requirement,
|
|
127
|
+
fallbackChain: stableDedupe([fast, ...requirement.fallbackChain]),
|
|
128
|
+
},
|
|
129
|
+
requirementSource: args.requirementSource,
|
|
130
|
+
primarySource: args.primarySource,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=effective-route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effective-route.js","sourceRoot":"","sources":["../../src/routing/effective-route.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
1
|
import type { FallbackEntry, ModelRequirement } from "../shared/types.ts";
|
|
2
|
+
export type RequirementSuccessorMatch = {
|
|
3
|
+
entry: FallbackEntry;
|
|
4
|
+
baselineIndex: number;
|
|
5
|
+
};
|
|
2
6
|
export declare function selectCatalogModel(target: Record<string, unknown>, agentName: string, requirement: ModelRequirement): string | undefined;
|
|
7
|
+
export declare function matchRequirementSuccessorWithIndex(requirement: ModelRequirement, providerID: string | undefined, modelID: string): RequirementSuccessorMatch | null;
|
|
3
8
|
export declare function matchRequirementSuccessor(requirement: ModelRequirement, providerID: string | undefined, modelID: string): FallbackEntry | null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isRecord } from "../shared/logger.js";
|
|
2
|
+
import { parseReviewAgentName } from "../review-agents/names.js";
|
|
2
3
|
const MIN_GPT_VERSION = [5, 6, 0];
|
|
3
4
|
const MIN_GLM_VERSION = [5, 2, 0];
|
|
4
5
|
const GPT_LANE_BY_AGENT = new Map([
|
|
@@ -14,6 +15,32 @@ const GPT_LANE_BY_AGENT = new Map([
|
|
|
14
15
|
["complex", "terra"],
|
|
15
16
|
["normal-task", "terra"],
|
|
16
17
|
]);
|
|
18
|
+
/**
|
|
19
|
+
* Resolve the GPT lane (Sol/Terra) for an agent name.
|
|
20
|
+
*
|
|
21
|
+
* Review agents (oracle/reviewer and their logical tiers/runtime aliases) are
|
|
22
|
+
* classified by canonical slot identity, not the runtime suffix:
|
|
23
|
+
* - reviewer -> Sol
|
|
24
|
+
* - oracle (slot 1, any tier) -> Terra
|
|
25
|
+
* - oracle-2nd (slot 2) -> Sol
|
|
26
|
+
* - later oracle slots -> no invented lane (rely on explicit requirement)
|
|
27
|
+
*
|
|
28
|
+
* Logical tier suffixes (-low/-high/-max) never change the canonical slot's
|
|
29
|
+
* lane. Non-review agent names fall back to the static map.
|
|
30
|
+
*/
|
|
31
|
+
function gptLaneForAgent(agentName) {
|
|
32
|
+
const review = parseReviewAgentName(agentName);
|
|
33
|
+
if (review) {
|
|
34
|
+
if (review.role === "reviewer")
|
|
35
|
+
return "sol";
|
|
36
|
+
if (review.canonicalSlot === "oracle")
|
|
37
|
+
return "terra";
|
|
38
|
+
if (review.canonicalSlot === "oracle-2nd")
|
|
39
|
+
return "sol";
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
return GPT_LANE_BY_AGENT.get(agentName);
|
|
43
|
+
}
|
|
17
44
|
function compareVersion(a, b) {
|
|
18
45
|
for (let index = 0; index < a.length; index += 1) {
|
|
19
46
|
const delta = a[index] - b[index];
|
|
@@ -43,8 +70,16 @@ function parseGlmSuccessor(model) {
|
|
|
43
70
|
return null;
|
|
44
71
|
return [Number(match[1]), Number(match[2]), Number(match[3] ?? 0)];
|
|
45
72
|
}
|
|
73
|
+
function compatibleEntryWithIndex(requirement, providerID, predicate) {
|
|
74
|
+
for (const [baselineIndex, entry] of requirement.fallbackChain.entries()) {
|
|
75
|
+
if (predicate(entry) && (providerID === undefined || entry.providers.includes(providerID))) {
|
|
76
|
+
return { entry, baselineIndex };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
46
81
|
function compatibleEntry(requirement, providerID, predicate) {
|
|
47
|
-
return requirement
|
|
82
|
+
return compatibleEntryWithIndex(requirement, providerID, predicate)?.entry;
|
|
48
83
|
}
|
|
49
84
|
function synthesizeSuccessor(baseline, providerID, modelID) {
|
|
50
85
|
return {
|
|
@@ -74,9 +109,11 @@ export function selectCatalogModel(target, agentName, requirement) {
|
|
|
74
109
|
const providers = isRecord(target.provider) ? target.provider : undefined;
|
|
75
110
|
if (!providers)
|
|
76
111
|
return undefined;
|
|
77
|
-
const
|
|
112
|
+
const review = parseReviewAgentName(agentName);
|
|
113
|
+
const isCanonicalOracleFirstSlot = review?.canonicalSlot === "oracle";
|
|
114
|
+
const lane = gptLaneForAgent(agentName);
|
|
78
115
|
const gptBaseline = compatibleEntry(requirement, undefined, (entry) => parseGptVersion(entry.model) !== null);
|
|
79
|
-
if (
|
|
116
|
+
if (isCanonicalOracleFirstSlot) {
|
|
80
117
|
for (const entry of requirement.fallbackChain) {
|
|
81
118
|
if (parseGptVersion(entry.model) === null)
|
|
82
119
|
continue;
|
|
@@ -124,26 +161,37 @@ export function selectCatalogModel(target, agentName, requirement) {
|
|
|
124
161
|
const best = candidates[0];
|
|
125
162
|
return best ? `${best.provider}/${best.model}` : undefined;
|
|
126
163
|
}
|
|
127
|
-
export function
|
|
164
|
+
export function matchRequirementSuccessorWithIndex(requirement, providerID, modelID) {
|
|
128
165
|
const gpt = parseGptLane(modelID);
|
|
129
166
|
if (gpt && compareVersion(gpt.version, MIN_GPT_VERSION) >= 0) {
|
|
130
|
-
const sameLaneBaseline =
|
|
167
|
+
const sameLaneBaseline = compatibleEntryWithIndex(requirement, providerID, (entry) => {
|
|
131
168
|
const parsed = parseGptLane(entry.model);
|
|
132
169
|
return parsed !== null && parsed.lane === gpt.lane && compareVersion(gpt.version, parsed.version) >= 0;
|
|
133
170
|
});
|
|
134
|
-
const baseline = sameLaneBaseline ??
|
|
171
|
+
const baseline = sameLaneBaseline ?? compatibleEntryWithIndex(requirement, providerID, (entry) => {
|
|
135
172
|
const version = parseGptVersion(entry.model);
|
|
136
173
|
return version !== null && compareVersion(gpt.version, version) >= 0;
|
|
137
174
|
});
|
|
138
|
-
if (baseline)
|
|
139
|
-
return
|
|
175
|
+
if (baseline) {
|
|
176
|
+
return {
|
|
177
|
+
entry: synthesizeSuccessor(baseline.entry, providerID, modelID),
|
|
178
|
+
baselineIndex: baseline.baselineIndex,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
140
181
|
}
|
|
141
182
|
const glm = parseGlmSuccessor(modelID);
|
|
142
183
|
if (glm && compareVersion(glm, MIN_GLM_VERSION) >= 0) {
|
|
143
|
-
const baseline =
|
|
144
|
-
if (baseline)
|
|
145
|
-
return
|
|
184
|
+
const baseline = compatibleEntryWithIndex(requirement, providerID, (entry) => entry.model.toLowerCase() === "glm-5.1");
|
|
185
|
+
if (baseline) {
|
|
186
|
+
return {
|
|
187
|
+
entry: synthesizeSuccessor(baseline.entry, providerID, modelID),
|
|
188
|
+
baselineIndex: baseline.baselineIndex,
|
|
189
|
+
};
|
|
190
|
+
}
|
|
146
191
|
}
|
|
147
192
|
return null;
|
|
148
193
|
}
|
|
194
|
+
export function matchRequirementSuccessor(requirement, providerID, modelID) {
|
|
195
|
+
return matchRequirementSuccessorWithIndex(requirement, providerID, modelID)?.entry ?? null;
|
|
196
|
+
}
|
|
149
197
|
//# sourceMappingURL=model-upgrades.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-upgrades.js","sourceRoot":"","sources":["../../src/routing/model-upgrades.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"model-upgrades.js","sourceRoot":"","sources":["../../src/routing/model-upgrades.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import type { AgentEntry, CategoryEntry } from "../config/schema.ts";
|
|
2
|
-
import type { FallbackEntry, ModelRequirement, Variant } from "../shared/types.ts";
|
|
2
|
+
import type { FallbackEntry, ModelRequirement, RequirementSource, Variant } from "../shared/types.ts";
|
|
3
|
+
export type EffectiveRequirementOverride = {
|
|
4
|
+
requirement: ModelRequirement;
|
|
5
|
+
source: RequirementSource;
|
|
6
|
+
};
|
|
3
7
|
export type ResolveOpts = {
|
|
4
8
|
agentName?: string | undefined;
|
|
5
9
|
modelID: string;
|
|
6
10
|
providerID?: string | undefined;
|
|
7
11
|
inputVariant?: string | undefined;
|
|
12
|
+
effectiveRequirement?: EffectiveRequirementOverride | null;
|
|
8
13
|
agentsConfig?: Record<string, AgentEntry>;
|
|
9
14
|
categoriesConfig?: Record<string, CategoryEntry>;
|
|
15
|
+
disabledAgents?: readonly string[];
|
|
10
16
|
};
|
|
11
17
|
export type Resolution = {
|
|
12
18
|
entry: FallbackEntry;
|
|
@@ -19,6 +25,7 @@ export declare function resolveEffectiveRequirement(opts: {
|
|
|
19
25
|
agentName: string;
|
|
20
26
|
agentsConfig?: Record<string, AgentEntry>;
|
|
21
27
|
categoriesConfig?: Record<string, CategoryEntry>;
|
|
28
|
+
disabledAgents?: readonly string[];
|
|
22
29
|
}): {
|
|
23
30
|
requirement: ModelRequirement;
|
|
24
31
|
source: Resolution["source"];
|
package/dist/routing/resolver.js
CHANGED
|
@@ -2,6 +2,8 @@ import { BUILTIN_AGENT_INDEX } from "../data/agents.js";
|
|
|
2
2
|
import { BUILTIN_CATEGORY_INDEX } from "../data/categories.js";
|
|
3
3
|
import { normalizeAgentShorthand, normalizeShorthand } from "../config/normalize.js";
|
|
4
4
|
import { matchRequirementSuccessor } from "./model-upgrades.js";
|
|
5
|
+
import { expandedReviewAgentMap } from "../review-agents/expand.js";
|
|
6
|
+
import { parseReviewAgentName } from "../review-agents/names.js";
|
|
5
7
|
const VARIANT_SET = new Set([
|
|
6
8
|
"low",
|
|
7
9
|
"medium",
|
|
@@ -132,7 +134,20 @@ function resolveAgainstRequirement(req, providerID, modelID, inputVariant, sourc
|
|
|
132
134
|
return null;
|
|
133
135
|
}
|
|
134
136
|
export function resolveEffectiveRequirement(opts) {
|
|
135
|
-
const { agentName, agentsConfig, categoriesConfig } = opts;
|
|
137
|
+
const { agentName, agentsConfig, categoriesConfig, disabledAgents } = opts;
|
|
138
|
+
// Review agent names (oracle, oracle-2nd, oracle-2nd-low, reviewer-low,
|
|
139
|
+
// runtime alias oracle-second, etc.) resolve exclusively from the expanded
|
|
140
|
+
// profile map. Disabled profiles are filtered at expansion time, so a
|
|
141
|
+
// disabled canonical name returns null here. Do not fall through to ordinary
|
|
142
|
+
// built-in/category resolution for review names - those paths no longer
|
|
143
|
+
// understand the canonical tier grammar.
|
|
144
|
+
const reviewIdentity = parseReviewAgentName(agentName);
|
|
145
|
+
if (reviewIdentity) {
|
|
146
|
+
const profile = expandedReviewAgentMap({ agents: agentsConfig, disabledAgents }).get(reviewIdentity.canonicalName);
|
|
147
|
+
if (!profile)
|
|
148
|
+
return null;
|
|
149
|
+
return { requirement: profile.requirement, source: profile.resolutionSource };
|
|
150
|
+
}
|
|
136
151
|
const canonicalName = canonicalAgentName(agentName);
|
|
137
152
|
const canonicalUserReq = canonicalName !== agentName
|
|
138
153
|
? userAgentRequirementWithAlias(canonicalName, agentsConfig)
|
|
@@ -155,14 +170,19 @@ export function resolveEffectiveRequirement(opts) {
|
|
|
155
170
|
return null;
|
|
156
171
|
}
|
|
157
172
|
export function resolveModelRouting(opts) {
|
|
158
|
-
const { agentName, modelID, providerID, inputVariant
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
173
|
+
const { agentName, modelID, providerID, inputVariant } = opts;
|
|
174
|
+
const effective = opts.effectiveRequirement === undefined
|
|
175
|
+
? (opts.agentName ? resolveEffectiveRequirement({
|
|
176
|
+
agentName: opts.agentName,
|
|
177
|
+
agentsConfig: opts.agentsConfig,
|
|
178
|
+
categoriesConfig: opts.categoriesConfig,
|
|
179
|
+
disabledAgents: opts.disabledAgents,
|
|
180
|
+
}) : null)
|
|
181
|
+
: opts.effectiveRequirement;
|
|
182
|
+
if (effective) {
|
|
183
|
+
const r = resolveAgainstRequirement(effective.requirement, providerID, modelID, inputVariant, effective.source);
|
|
184
|
+
if (r)
|
|
185
|
+
return applyCategoryVariantPolicy(r, agentName, inputVariant);
|
|
166
186
|
}
|
|
167
187
|
if (inputVariant && isValidVariant(inputVariant)) {
|
|
168
188
|
return applyCategoryVariantPolicy({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/routing/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACpF,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/routing/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { EffectiveModelRoute } from "../shared/types.ts";
|
|
2
|
+
export type EffectiveRouteSnapshot = Readonly<{
|
|
3
|
+
published: boolean;
|
|
4
|
+
snapshotId: number;
|
|
5
|
+
routes: ReadonlyMap<string, EffectiveModelRoute>;
|
|
6
|
+
}>;
|
|
7
|
+
export type EffectiveRouteRegistry = {
|
|
8
|
+
beginBuild(): number;
|
|
9
|
+
publish(generation: number, routes: ReadonlyMap<string, EffectiveModelRoute>): boolean;
|
|
10
|
+
snapshot(): EffectiveRouteSnapshot;
|
|
11
|
+
isCurrentSnapshot(snapshotId: number): boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare function createEffectiveRouteRegistry(): EffectiveRouteRegistry;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
function freezeArray(values) {
|
|
2
|
+
return Object.freeze(values);
|
|
3
|
+
}
|
|
4
|
+
function cloneAndFreezeRoute(route) {
|
|
5
|
+
const fallbackChain = freezeArray(route.requirement.fallbackChain.map((entry) => {
|
|
6
|
+
const copy = {
|
|
7
|
+
...entry,
|
|
8
|
+
providers: freezeArray([...entry.providers]),
|
|
9
|
+
...(entry.thinking === undefined ? {} : { thinking: Object.freeze({ ...entry.thinking }) }),
|
|
10
|
+
};
|
|
11
|
+
return Object.freeze(copy);
|
|
12
|
+
}));
|
|
13
|
+
const requirement = {
|
|
14
|
+
...route.requirement,
|
|
15
|
+
fallbackChain,
|
|
16
|
+
...(route.requirement.requiresProvider === undefined
|
|
17
|
+
? {}
|
|
18
|
+
: { requiresProvider: freezeArray([...route.requirement.requiresProvider]) }),
|
|
19
|
+
};
|
|
20
|
+
return Object.freeze({ ...route, requirement: Object.freeze(requirement) });
|
|
21
|
+
}
|
|
22
|
+
function createReadonlyMapView(source) {
|
|
23
|
+
const copied = new Map(source);
|
|
24
|
+
let view;
|
|
25
|
+
view = Object.freeze({
|
|
26
|
+
get size() {
|
|
27
|
+
return copied.size;
|
|
28
|
+
},
|
|
29
|
+
has(key) {
|
|
30
|
+
return copied.has(key);
|
|
31
|
+
},
|
|
32
|
+
get(key) {
|
|
33
|
+
return copied.get(key);
|
|
34
|
+
},
|
|
35
|
+
entries() {
|
|
36
|
+
return copied.entries();
|
|
37
|
+
},
|
|
38
|
+
keys() {
|
|
39
|
+
return copied.keys();
|
|
40
|
+
},
|
|
41
|
+
values() {
|
|
42
|
+
return copied.values();
|
|
43
|
+
},
|
|
44
|
+
forEach(callbackfn, thisArg) {
|
|
45
|
+
copied.forEach((value, key) => callbackfn.call(thisArg, value, key, view));
|
|
46
|
+
},
|
|
47
|
+
[Symbol.iterator]() {
|
|
48
|
+
return copied[Symbol.iterator]();
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
return view;
|
|
52
|
+
}
|
|
53
|
+
function createSnapshot(published, snapshotId, routes) {
|
|
54
|
+
return Object.freeze({
|
|
55
|
+
published,
|
|
56
|
+
snapshotId,
|
|
57
|
+
routes: createReadonlyMapView(routes),
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
export function createEffectiveRouteRegistry() {
|
|
61
|
+
let latestStartedGeneration = 0;
|
|
62
|
+
let currentSnapshot = createSnapshot(false, 0, new Map());
|
|
63
|
+
function beginBuild() {
|
|
64
|
+
latestStartedGeneration += 1;
|
|
65
|
+
return latestStartedGeneration;
|
|
66
|
+
}
|
|
67
|
+
function publish(generation, routes) {
|
|
68
|
+
if (generation !== latestStartedGeneration)
|
|
69
|
+
return false;
|
|
70
|
+
const frozenRoutes = new Map();
|
|
71
|
+
for (const [name, route] of routes)
|
|
72
|
+
frozenRoutes.set(name, cloneAndFreezeRoute(route));
|
|
73
|
+
currentSnapshot = createSnapshot(true, currentSnapshot.snapshotId + 1, frozenRoutes);
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
function snapshot() {
|
|
77
|
+
return currentSnapshot;
|
|
78
|
+
}
|
|
79
|
+
function isCurrentSnapshot(snapshotId) {
|
|
80
|
+
return snapshotId === currentSnapshot.snapshotId;
|
|
81
|
+
}
|
|
82
|
+
return { beginBuild, publish, snapshot, isCurrentSnapshot };
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=route-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-registry.js","sourceRoot":"","sources":["../../src/routing/route-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* Explicit user variants bypass built-in minimum-level normalization; concrete
|
|
14
14
|
* reasoningEffort/thinking fields are handled by the chat.params hook.
|
|
15
15
|
*/
|
|
16
|
-
import { isMiniModel } from "../intent/model-family.js";
|
|
16
|
+
import { isMiniModel, supportsNativeGptMaxReasoning } from "../intent/model-family.js";
|
|
17
17
|
const NEUTRAL = {};
|
|
18
18
|
/**
|
|
19
19
|
* Map a variant to OpenAI-style reasoningEffort.
|
|
@@ -21,7 +21,7 @@ const NEUTRAL = {};
|
|
|
21
21
|
* Mini models keep the full ladder. Non-mini GPT/Codex built-ins normalize any
|
|
22
22
|
* below-high or no-op request to high before this function is called.
|
|
23
23
|
*/
|
|
24
|
-
function gptVariant(variant) {
|
|
24
|
+
function gptVariant(variant, modelID = "") {
|
|
25
25
|
switch (variant) {
|
|
26
26
|
case "none":
|
|
27
27
|
return NEUTRAL;
|
|
@@ -36,8 +36,9 @@ function gptVariant(variant) {
|
|
|
36
36
|
case "thinking":
|
|
37
37
|
return { reasoningEffort: "high" };
|
|
38
38
|
case "xhigh":
|
|
39
|
-
case "max":
|
|
40
39
|
return { reasoningEffort: "xhigh" };
|
|
40
|
+
case "max":
|
|
41
|
+
return { reasoningEffort: supportsNativeGptMaxReasoning(modelID) ? "max" : "xhigh" };
|
|
41
42
|
default:
|
|
42
43
|
return NEUTRAL;
|
|
43
44
|
}
|
|
@@ -180,6 +181,8 @@ function deepSeekVariant(variant, respectExplicit = false) {
|
|
|
180
181
|
export function normalizeVariantForModel(opts) {
|
|
181
182
|
const { family, modelID, variant } = opts;
|
|
182
183
|
if ((family === "gpt" || family === "codex") && !isMiniModel(modelID)) {
|
|
184
|
+
if (variant === "max" && !supportsNativeGptMaxReasoning(modelID))
|
|
185
|
+
return "xhigh";
|
|
183
186
|
return atLeastHigh(variant);
|
|
184
187
|
}
|
|
185
188
|
if (family === "claude-opus-47-plus" || family === "glm" || family === "deepseek") {
|
|
@@ -194,7 +197,7 @@ export function translateVariant(family, variant, opts) {
|
|
|
194
197
|
switch (family) {
|
|
195
198
|
case "gpt":
|
|
196
199
|
case "codex":
|
|
197
|
-
return gptVariant(effectiveVariant);
|
|
200
|
+
return gptVariant(effectiveVariant, opts?.modelID);
|
|
198
201
|
case "claude-opus-47-plus":
|
|
199
202
|
return NEUTRAL;
|
|
200
203
|
case "claude":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"variant-translator.js","sourceRoot":"","sources":["../../src/routing/variant-translator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAAoB,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"variant-translator.js","sourceRoot":"","sources":["../../src/routing/variant-translator.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ export type DispatchArgs = {
|
|
|
33
33
|
agent?: string;
|
|
34
34
|
newEntry: FallbackEntry;
|
|
35
35
|
reason: string;
|
|
36
|
+
abortBeforeDispatch?: boolean;
|
|
36
37
|
};
|
|
37
38
|
export declare function isDispatchInFlight(sessionID: string): boolean;
|
|
38
39
|
export declare function dispatchFallbackRetry(args: DispatchArgs): Promise<boolean>;
|
|
@@ -55,11 +55,13 @@ export async function dispatchFallbackRetry(args) {
|
|
|
55
55
|
}
|
|
56
56
|
inFlight.add(sessionID);
|
|
57
57
|
try {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
58
|
+
if (args.abortBeforeDispatch !== false) {
|
|
59
|
+
try {
|
|
60
|
+
await client.session.abort({ path: { id: sessionID } });
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
log.debug(`abort failed (best-effort): ${err.message}`);
|
|
64
|
+
}
|
|
63
65
|
}
|
|
64
66
|
let parts = [];
|
|
65
67
|
try {
|