ocmm 0.5.4 → 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.
Files changed (195) hide show
  1. package/.codex/agents/dw-builder.toml +1 -1
  2. package/.codex/agents/dw-clarifier.toml +1 -1
  3. package/.codex/agents/dw-code-search.toml +1 -1
  4. package/.codex/agents/dw-coding.toml +1 -1
  5. package/.codex/agents/dw-complex.toml +1 -1
  6. package/.codex/agents/dw-creative.toml +1 -1
  7. package/.codex/agents/dw-deep.toml +1 -1
  8. package/.codex/agents/dw-doc-search.toml +1 -1
  9. package/.codex/agents/dw-documenting.toml +1 -1
  10. package/.codex/agents/dw-explore.toml +1 -1
  11. package/.codex/agents/dw-frontend.toml +1 -1
  12. package/.codex/agents/dw-hard-reasoning.toml +1 -1
  13. package/.codex/agents/dw-media-reader.toml +1 -1
  14. package/.codex/agents/dw-normal-task.toml +1 -1
  15. package/.codex/agents/dw-oracle-2nd.toml +8 -0
  16. package/.codex/agents/dw-oracle.toml +1 -1
  17. package/.codex/agents/dw-orchestrator.toml +1 -1
  18. package/.codex/agents/dw-plan-critic.toml +1 -1
  19. package/.codex/agents/dw-planner.toml +1 -1
  20. package/.codex/agents/dw-quick.toml +1 -1
  21. package/.codex/agents/dw-research.toml +1 -1
  22. package/.codex/agents/dw-reviewer.toml +1 -1
  23. package/README.md +158 -13
  24. package/dist/cli/shim.d.ts +4 -2
  25. package/dist/cli/shim.js +26 -11
  26. package/dist/cli/shim.js.map +1 -1
  27. package/dist/codex/plugin-generator.js +82 -56
  28. package/dist/codex/plugin-generator.js.map +1 -1
  29. package/dist/config/load.d.ts +32 -23
  30. package/dist/config/load.js +384 -90
  31. package/dist/config/load.js.map +1 -1
  32. package/dist/config/merge.d.ts +18 -0
  33. package/dist/config/merge.js +46 -0
  34. package/dist/config/merge.js.map +1 -0
  35. package/dist/config/normalize.d.ts +1 -0
  36. package/dist/config/normalize.js +22 -16
  37. package/dist/config/normalize.js.map +1 -1
  38. package/dist/config/profile-aliases.d.ts +12 -0
  39. package/dist/config/profile-aliases.js +127 -0
  40. package/dist/config/profile-aliases.js.map +1 -0
  41. package/dist/config/profile-types.d.ts +13 -0
  42. package/dist/config/profile-types.js +2 -0
  43. package/dist/config/profile-types.js.map +1 -0
  44. package/dist/config/review-agent-migration.d.ts +89 -0
  45. package/dist/config/review-agent-migration.js +237 -0
  46. package/dist/config/review-agent-migration.js.map +1 -0
  47. package/dist/config/schema.d.ts +1364 -222
  48. package/dist/config/schema.js +169 -37
  49. package/dist/config/schema.js.map +1 -1
  50. package/dist/config/tolerant-parse.d.ts +41 -0
  51. package/dist/config/tolerant-parse.js +164 -0
  52. package/dist/config/tolerant-parse.js.map +1 -0
  53. package/dist/data/agents.d.ts +1 -1
  54. package/dist/data/agents.js +7 -7
  55. package/dist/data/agents.js.map +1 -1
  56. package/dist/hooks/chat-params.d.ts +2 -0
  57. package/dist/hooks/chat-params.js +113 -4
  58. package/dist/hooks/chat-params.js.map +1 -1
  59. package/dist/hooks/config.d.ts +14 -2
  60. package/dist/hooks/config.js +538 -60
  61. package/dist/hooks/config.js.map +1 -1
  62. package/dist/hooks/event.d.ts +3 -11
  63. package/dist/hooks/event.js +5 -9
  64. package/dist/hooks/event.js.map +1 -1
  65. package/dist/index.js +21 -14
  66. package/dist/index.js.map +1 -1
  67. package/dist/permissions/index.d.ts +3 -0
  68. package/dist/permissions/index.js +43 -28
  69. package/dist/permissions/index.js.map +1 -1
  70. package/dist/review-agents/expand.d.ts +36 -0
  71. package/dist/review-agents/expand.js +157 -0
  72. package/dist/review-agents/expand.js.map +1 -0
  73. package/dist/review-agents/names.d.ts +16 -0
  74. package/dist/review-agents/names.js +55 -0
  75. package/dist/review-agents/names.js.map +1 -0
  76. package/dist/routing/effective-route.d.ts +19 -0
  77. package/dist/routing/effective-route.js +133 -0
  78. package/dist/routing/effective-route.js.map +1 -0
  79. package/dist/routing/model-upgrades.d.ts +5 -0
  80. package/dist/routing/model-upgrades.js +59 -12
  81. package/dist/routing/model-upgrades.js.map +1 -1
  82. package/dist/routing/resolver.d.ts +8 -1
  83. package/dist/routing/resolver.js +29 -9
  84. package/dist/routing/resolver.js.map +1 -1
  85. package/dist/routing/route-registry.d.ts +13 -0
  86. package/dist/routing/route-registry.js +84 -0
  87. package/dist/routing/route-registry.js.map +1 -0
  88. package/dist/runtime-fallback/dispatcher.d.ts +1 -0
  89. package/dist/runtime-fallback/dispatcher.js +7 -5
  90. package/dist/runtime-fallback/dispatcher.js.map +1 -1
  91. package/dist/runtime-fallback/error-classifier.d.ts +3 -1
  92. package/dist/runtime-fallback/error-classifier.js +135 -1
  93. package/dist/runtime-fallback/error-classifier.js.map +1 -1
  94. package/dist/runtime-fallback/event-handler-generic-fallback.d.ts +26 -0
  95. package/dist/runtime-fallback/event-handler-generic-fallback.js +54 -0
  96. package/dist/runtime-fallback/event-handler-generic-fallback.js.map +1 -0
  97. package/dist/runtime-fallback/event-handler-idle-continuation.d.ts +9 -0
  98. package/dist/runtime-fallback/event-handler-idle-continuation.js +48 -0
  99. package/dist/runtime-fallback/event-handler-idle-continuation.js.map +1 -0
  100. package/dist/runtime-fallback/event-handler-support.d.ts +39 -0
  101. package/dist/runtime-fallback/event-handler-support.js +194 -0
  102. package/dist/runtime-fallback/event-handler-support.js.map +1 -0
  103. package/dist/runtime-fallback/event-handler-test-fixtures.d.ts +874 -0
  104. package/dist/runtime-fallback/event-handler-test-fixtures.js +150 -0
  105. package/dist/runtime-fallback/event-handler-test-fixtures.js.map +1 -0
  106. package/dist/runtime-fallback/event-handler.d.ts +13 -1
  107. package/dist/runtime-fallback/event-handler.js +334 -192
  108. package/dist/runtime-fallback/event-handler.js.map +1 -1
  109. package/dist/runtime-fallback/fallback-state.d.ts +8 -5
  110. package/dist/runtime-fallback/fallback-state.js +9 -6
  111. package/dist/runtime-fallback/fallback-state.js.map +1 -1
  112. package/dist/runtime-fallback/index.d.ts +21 -1
  113. package/dist/runtime-fallback/index.js +7 -1
  114. package/dist/runtime-fallback/index.js.map +1 -1
  115. package/dist/runtime-fallback/interruption-output-adapter.d.ts +7 -0
  116. package/dist/runtime-fallback/interruption-output-adapter.js +91 -0
  117. package/dist/runtime-fallback/interruption-output-adapter.js.map +1 -0
  118. package/dist/runtime-fallback/subagent-429-controller-fixture.d.ts +105 -0
  119. package/dist/runtime-fallback/subagent-429-controller-fixture.js +116 -0
  120. package/dist/runtime-fallback/subagent-429-controller-fixture.js.map +1 -0
  121. package/dist/runtime-fallback/subagent-429-controller.d.ts +167 -0
  122. package/dist/runtime-fallback/subagent-429-controller.js +334 -0
  123. package/dist/runtime-fallback/subagent-429-controller.js.map +1 -0
  124. package/dist/runtime-fallback/subagent-429-policy.d.ts +13 -0
  125. package/dist/runtime-fallback/subagent-429-policy.js +37 -0
  126. package/dist/runtime-fallback/subagent-429-policy.js.map +1 -0
  127. package/dist/runtime-fallback/subagent-429-session.d.ts +48 -0
  128. package/dist/runtime-fallback/subagent-429-session.js +316 -0
  129. package/dist/runtime-fallback/subagent-429-session.js.map +1 -0
  130. package/dist/shared/opencode-events.d.ts +22 -0
  131. package/dist/shared/opencode-events.js +75 -0
  132. package/dist/shared/opencode-events.js.map +1 -0
  133. package/dist/shared/types.d.ts +12 -1
  134. package/package.json +1 -1
  135. package/plugins/deepwork/.codex-plugin/plugin.json +1 -1
  136. package/plugins/deepwork/README.md +2 -1
  137. package/plugins/deepwork/agents/dw-builder.toml +1 -1
  138. package/plugins/deepwork/agents/dw-clarifier.toml +1 -1
  139. package/plugins/deepwork/agents/dw-code-search.toml +1 -1
  140. package/plugins/deepwork/agents/dw-coding.toml +1 -1
  141. package/plugins/deepwork/agents/dw-complex.toml +1 -1
  142. package/plugins/deepwork/agents/dw-creative.toml +1 -1
  143. package/plugins/deepwork/agents/dw-deep.toml +1 -1
  144. package/plugins/deepwork/agents/dw-doc-search.toml +1 -1
  145. package/plugins/deepwork/agents/dw-documenting.toml +1 -1
  146. package/plugins/deepwork/agents/dw-explore.toml +1 -1
  147. package/plugins/deepwork/agents/dw-frontend.toml +1 -1
  148. package/plugins/deepwork/agents/dw-hard-reasoning.toml +1 -1
  149. package/plugins/deepwork/agents/dw-media-reader.toml +1 -1
  150. package/plugins/deepwork/agents/dw-normal-task.toml +1 -1
  151. package/plugins/deepwork/agents/dw-oracle-2nd.toml +8 -0
  152. package/plugins/deepwork/agents/dw-oracle.toml +1 -1
  153. package/plugins/deepwork/agents/dw-orchestrator.toml +1 -1
  154. package/plugins/deepwork/agents/dw-plan-critic.toml +1 -1
  155. package/plugins/deepwork/agents/dw-planner.toml +1 -1
  156. package/plugins/deepwork/agents/dw-quick.toml +1 -1
  157. package/plugins/deepwork/agents/dw-research.toml +1 -1
  158. package/plugins/deepwork/agents/dw-reviewer.toml +1 -1
  159. package/plugins/deepwork/dist/cli/shim.d.ts +4 -2
  160. package/plugins/deepwork/dist/cli/shim.js +26 -11
  161. package/plugins/deepwork/dist/cli/shim.js.map +1 -1
  162. package/plugins/deepwork/dist/shared/opencode-events.d.ts +22 -0
  163. package/plugins/deepwork/dist/shared/opencode-events.js +75 -0
  164. package/plugins/deepwork/dist/shared/opencode-events.js.map +1 -0
  165. package/plugins/deepwork/dist/shared/types.d.ts +12 -1
  166. package/plugins/deepwork/package.json +1 -1
  167. package/plugins/deepwork/skills/deepwork/SKILL.md +30 -14
  168. package/plugins/deepwork/skills/deepwork-requesting-code-review/SKILL.md +53 -31
  169. package/plugins/deepwork/skills/deepwork-requesting-code-review/code-reviewer.md +11 -7
  170. package/plugins/deepwork/skills/deepwork-subagent-driven-development/SKILL.md +28 -19
  171. package/plugins/deepwork/skills/deepwork-subagent-driven-development/implementer-prompt.md +10 -3
  172. package/prompts/codex/agents/clarifier.md +4 -0
  173. package/prompts/codex/agents/orchestrator.md +12 -2
  174. package/prompts/codex/agents/plan-critic.md +4 -0
  175. package/prompts/codex/agents/planner.md +15 -10
  176. package/prompts/codex/agents/reviewer.md +8 -2
  177. package/prompts/codex/deepwork/gpt-5.6.md +20 -37
  178. package/prompts/omo/agents/clarifier.md +4 -0
  179. package/prompts/omo/agents/orchestrator.md +11 -0
  180. package/prompts/omo/agents/plan-critic.md +4 -0
  181. package/prompts/omo/agents/planner.md +15 -3
  182. package/prompts/omo/agents/reviewer.md +8 -2
  183. package/prompts/omo/deepwork/gpt-5.6.md +20 -37
  184. package/prompts/v1/agents/clarifier.md +4 -0
  185. package/prompts/v1/agents/orchestrator.md +12 -2
  186. package/prompts/v1/agents/plan-critic.md +4 -0
  187. package/prompts/v1/agents/planner.md +15 -10
  188. package/prompts/v1/agents/reviewer.md +8 -2
  189. package/prompts/v1/deepwork/gpt-5.6.md +20 -37
  190. package/skills/v1/requesting-code-review/SKILL.md +53 -31
  191. package/skills/v1/requesting-code-review/code-reviewer.md +11 -7
  192. package/skills/v1/subagent-driven-development/SKILL.md +28 -19
  193. package/skills/v1/subagent-driven-development/implementer-prompt.md +10 -3
  194. package/.codex/agents/dw-oracle-high.toml +0 -8
  195. package/plugins/deepwork/agents/dw-oracle-high.toml +0 -8
@@ -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([
@@ -9,12 +10,37 @@ const GPT_LANE_BY_AGENT = new Map([
9
10
  ["clarifier", "sol"],
10
11
  ["plan-critic", "sol"],
11
12
  ["oracle", "terra"],
12
- ["oracle-high", "sol"],
13
13
  ["hard-reasoning", "sol"],
14
14
  ["deep", "sol"],
15
15
  ["complex", "terra"],
16
16
  ["normal-task", "terra"],
17
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
+ }
18
44
  function compareVersion(a, b) {
19
45
  for (let index = 0; index < a.length; index += 1) {
20
46
  const delta = a[index] - b[index];
@@ -44,8 +70,16 @@ function parseGlmSuccessor(model) {
44
70
  return null;
45
71
  return [Number(match[1]), Number(match[2]), Number(match[3] ?? 0)];
46
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
+ }
47
81
  function compatibleEntry(requirement, providerID, predicate) {
48
- return requirement.fallbackChain.find((entry) => predicate(entry) && (providerID === undefined || entry.providers.includes(providerID)));
82
+ return compatibleEntryWithIndex(requirement, providerID, predicate)?.entry;
49
83
  }
50
84
  function synthesizeSuccessor(baseline, providerID, modelID) {
51
85
  return {
@@ -75,9 +109,11 @@ export function selectCatalogModel(target, agentName, requirement) {
75
109
  const providers = isRecord(target.provider) ? target.provider : undefined;
76
110
  if (!providers)
77
111
  return undefined;
78
- const lane = GPT_LANE_BY_AGENT.get(agentName);
112
+ const review = parseReviewAgentName(agentName);
113
+ const isCanonicalOracleFirstSlot = review?.canonicalSlot === "oracle";
114
+ const lane = gptLaneForAgent(agentName);
79
115
  const gptBaseline = compatibleEntry(requirement, undefined, (entry) => parseGptVersion(entry.model) !== null);
80
- if (agentName === "oracle") {
116
+ if (isCanonicalOracleFirstSlot) {
81
117
  for (const entry of requirement.fallbackChain) {
82
118
  if (parseGptVersion(entry.model) === null)
83
119
  continue;
@@ -125,26 +161,37 @@ export function selectCatalogModel(target, agentName, requirement) {
125
161
  const best = candidates[0];
126
162
  return best ? `${best.provider}/${best.model}` : undefined;
127
163
  }
128
- export function matchRequirementSuccessor(requirement, providerID, modelID) {
164
+ export function matchRequirementSuccessorWithIndex(requirement, providerID, modelID) {
129
165
  const gpt = parseGptLane(modelID);
130
166
  if (gpt && compareVersion(gpt.version, MIN_GPT_VERSION) >= 0) {
131
- const sameLaneBaseline = compatibleEntry(requirement, providerID, (entry) => {
167
+ const sameLaneBaseline = compatibleEntryWithIndex(requirement, providerID, (entry) => {
132
168
  const parsed = parseGptLane(entry.model);
133
169
  return parsed !== null && parsed.lane === gpt.lane && compareVersion(gpt.version, parsed.version) >= 0;
134
170
  });
135
- const baseline = sameLaneBaseline ?? compatibleEntry(requirement, providerID, (entry) => {
171
+ const baseline = sameLaneBaseline ?? compatibleEntryWithIndex(requirement, providerID, (entry) => {
136
172
  const version = parseGptVersion(entry.model);
137
173
  return version !== null && compareVersion(gpt.version, version) >= 0;
138
174
  });
139
- if (baseline)
140
- return synthesizeSuccessor(baseline, providerID, modelID);
175
+ if (baseline) {
176
+ return {
177
+ entry: synthesizeSuccessor(baseline.entry, providerID, modelID),
178
+ baselineIndex: baseline.baselineIndex,
179
+ };
180
+ }
141
181
  }
142
182
  const glm = parseGlmSuccessor(modelID);
143
183
  if (glm && compareVersion(glm, MIN_GLM_VERSION) >= 0) {
144
- const baseline = compatibleEntry(requirement, providerID, (entry) => entry.model.toLowerCase() === "glm-5.1");
145
- if (baseline)
146
- return synthesizeSuccessor(baseline, providerID, modelID);
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
+ }
147
191
  }
148
192
  return null;
149
193
  }
194
+ export function matchRequirementSuccessor(requirement, providerID, modelID) {
195
+ return matchRequirementSuccessorWithIndex(requirement, providerID, modelID)?.entry ?? null;
196
+ }
150
197
  //# sourceMappingURL=model-upgrades.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-upgrades.js","sourceRoot":"","sources":["../../src/routing/model-upgrades.ts"],"names":[],"mappings":"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"}
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"];
@@ -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, agentsConfig, categoriesConfig } = opts;
159
- if (agentName) {
160
- const effective = resolveEffectiveRequirement({ agentName, agentsConfig, categoriesConfig });
161
- if (effective) {
162
- const r = resolveAgainstRequirement(effective.requirement, providerID, modelID, inputVariant, effective.source);
163
- if (r)
164
- return applyCategoryVariantPolicy(r, agentName, inputVariant);
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":"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"}
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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"}
@@ -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
- try {
59
- await client.session.abort({ path: { id: sessionID } });
60
- }
61
- catch (err) {
62
- log.debug(`abort failed (best-effort): ${err.message}`);
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 {
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/runtime-fallback/dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/runtime-fallback/dispatcher.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,9 @@ export type ErrorClassification = {
11
11
  statusCode?: number;
12
12
  errorName?: string;
13
13
  message: string;
14
+ recoveryDelayMs?: number;
14
15
  };
16
+ export declare function extractRecoveryDelayMs(error: unknown, now?: number): number | undefined;
15
17
  export declare function extractStatusCode(error: unknown): number | undefined;
16
18
  export declare function extractErrorName(error: unknown): string | undefined;
17
- export declare function classifyError(error: unknown, cfg: RuntimeFallbackConfig): ErrorClassification;
19
+ export declare function classifyError(error: unknown, cfg: RuntimeFallbackConfig, now?: number): ErrorClassification;