@miller-tech/uap 1.163.13 → 1.164.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 (108) hide show
  1. package/README.md +1 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/bin/cli.js +5 -4
  4. package/dist/bin/cli.js.map +1 -1
  5. package/dist/cli/deliver.d.ts +5 -3
  6. package/dist/cli/deliver.d.ts.map +1 -1
  7. package/dist/cli/deliver.js +95 -19
  8. package/dist/cli/deliver.js.map +1 -1
  9. package/dist/cli/guided-setup.d.ts.map +1 -1
  10. package/dist/cli/guided-setup.js +13 -1
  11. package/dist/cli/guided-setup.js.map +1 -1
  12. package/dist/cli/model.d.ts.map +1 -1
  13. package/dist/cli/model.js +9 -1
  14. package/dist/cli/model.js.map +1 -1
  15. package/dist/cli/proxy-lifecycle.d.ts +66 -13
  16. package/dist/cli/proxy-lifecycle.d.ts.map +1 -1
  17. package/dist/cli/proxy-lifecycle.js +116 -49
  18. package/dist/cli/proxy-lifecycle.js.map +1 -1
  19. package/dist/cli/proxy.d.ts +46 -0
  20. package/dist/cli/proxy.d.ts.map +1 -1
  21. package/dist/cli/proxy.js +353 -23
  22. package/dist/cli/proxy.js.map +1 -1
  23. package/dist/cli/wizard-config.d.ts +4 -0
  24. package/dist/cli/wizard-config.d.ts.map +1 -1
  25. package/dist/cli/wizard-config.js +14 -3
  26. package/dist/cli/wizard-config.js.map +1 -1
  27. package/dist/config/settings-registry.d.ts.map +1 -1
  28. package/dist/config/settings-registry.js +25 -0
  29. package/dist/config/settings-registry.js.map +1 -1
  30. package/dist/coordination/effort-profile.d.ts +39 -0
  31. package/dist/coordination/effort-profile.d.ts.map +1 -0
  32. package/dist/coordination/effort-profile.js +74 -0
  33. package/dist/coordination/effort-profile.js.map +1 -0
  34. package/dist/dashboard/server.d.ts.map +1 -1
  35. package/dist/dashboard/server.js +68 -10
  36. package/dist/dashboard/server.js.map +1 -1
  37. package/dist/delivery/convergence-loop.d.ts +37 -0
  38. package/dist/delivery/convergence-loop.d.ts.map +1 -1
  39. package/dist/delivery/convergence-loop.js +51 -4
  40. package/dist/delivery/convergence-loop.js.map +1 -1
  41. package/dist/delivery/critic.d.ts +7 -0
  42. package/dist/delivery/critic.d.ts.map +1 -1
  43. package/dist/delivery/critic.js.map +1 -1
  44. package/dist/delivery/decompose.d.ts +9 -0
  45. package/dist/delivery/decompose.d.ts.map +1 -1
  46. package/dist/delivery/decompose.js +11 -0
  47. package/dist/delivery/decompose.js.map +1 -1
  48. package/dist/delivery/graph-safety.d.ts +75 -0
  49. package/dist/delivery/graph-safety.d.ts.map +1 -0
  50. package/dist/delivery/graph-safety.js +98 -0
  51. package/dist/delivery/graph-safety.js.map +1 -0
  52. package/dist/delivery/per-phase-escalation-controller.d.ts +37 -0
  53. package/dist/delivery/per-phase-escalation-controller.d.ts.map +1 -0
  54. package/dist/delivery/per-phase-escalation-controller.js +68 -0
  55. package/dist/delivery/per-phase-escalation-controller.js.map +1 -0
  56. package/dist/delivery/per-phase-escalation.d.ts +53 -0
  57. package/dist/delivery/per-phase-escalation.d.ts.map +1 -0
  58. package/dist/delivery/per-phase-escalation.js +57 -0
  59. package/dist/delivery/per-phase-escalation.js.map +1 -0
  60. package/dist/delivery/reflect.d.ts +56 -0
  61. package/dist/delivery/reflect.d.ts.map +1 -0
  62. package/dist/delivery/reflect.js +79 -0
  63. package/dist/delivery/reflect.js.map +1 -0
  64. package/dist/delivery/verification-provenance.d.ts +47 -0
  65. package/dist/delivery/verification-provenance.d.ts.map +1 -0
  66. package/dist/delivery/verification-provenance.js +48 -0
  67. package/dist/delivery/verification-provenance.js.map +1 -0
  68. package/dist/models/complexity.d.ts +36 -0
  69. package/dist/models/complexity.d.ts.map +1 -0
  70. package/dist/models/complexity.js +75 -0
  71. package/dist/models/complexity.js.map +1 -0
  72. package/dist/models/router.d.ts.map +1 -1
  73. package/dist/models/router.js +39 -10
  74. package/dist/models/router.js.map +1 -1
  75. package/dist/models/types.d.ts +60 -10
  76. package/dist/models/types.d.ts.map +1 -1
  77. package/dist/models/types.js +128 -11
  78. package/dist/models/types.js.map +1 -1
  79. package/dist/self-tuning/prompt-variants.d.ts +93 -0
  80. package/dist/self-tuning/prompt-variants.d.ts.map +1 -0
  81. package/dist/self-tuning/prompt-variants.js +143 -0
  82. package/dist/self-tuning/prompt-variants.js.map +1 -0
  83. package/dist/tasks/types.d.ts +2 -2
  84. package/dist/types/config.d.ts +8 -0
  85. package/dist/types/config.d.ts.map +1 -1
  86. package/docs/INDEX.md +1 -1
  87. package/docs/benchmarks/COMPREHENSIVE_BENCHMARKS.md +47 -53
  88. package/docs/benchmarks/VALIDATION_RESULTS.md +0 -2
  89. package/docs/guides/COORDINATION.md +1 -1
  90. package/docs/guides/DEPLOY_BATCHING.md +1 -1
  91. package/docs/guides/DROIDS_AND_SKILLS.md +1 -1
  92. package/docs/guides/LOCAL_MODELS.md +1 -1
  93. package/docs/guides/MCP_ROUTER.md +1 -1
  94. package/docs/guides/MEMORY.md +2 -2
  95. package/docs/guides/MULTI_MODEL.md +1 -1
  96. package/docs/guides/POLICIES.md +1 -1
  97. package/docs/guides/PROXY.md +47 -4
  98. package/docs/guides/SANDBOX.md +1 -1
  99. package/docs/guides/WORKTREE_WORKFLOW.md +1 -1
  100. package/docs/reference/CLI.md +16 -3
  101. package/docs/reference/CONFIGURATION.md +1 -1
  102. package/docs/reference/FEATURES.md +1 -1
  103. package/package.json +1 -1
  104. package/src/policies/enforcers/__pycache__/_common.cpython-312.pyc +0 -0
  105. package/templates/hooks/__pycache__/deliver_autoroute.cpython-312.pyc +0 -0
  106. package/templates/hooks/session-end.sh +9 -0
  107. package/templates/hooks/session-start.sh +10 -0
  108. package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-312.pyc +0 -0
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Unified complexity classifier (S2).
3
+ *
4
+ * Before this module UAP had two disconnected notions of complexity:
5
+ * - router.ts → low | medium | high | critical (keyword-driven)
6
+ * - query-complexity → simple | moderate | complex (heuristic scorer)
7
+ * bridged one-way by deliver.ts's COMPLEXITY_TO_TIER, which silently DROPPED
8
+ * `critical`. This module is the single source of truth: one 5-level `Tier`
9
+ * (adds `trivial` as a floor) that composes the existing scorer and preserves
10
+ * `critical` end-to-end. It is CHEAP-FIRST — a pure heuristic, no model call —
11
+ * so classifying a task adds no overhead. `source` leaves room for a future
12
+ * model-assisted tie-break in the ambiguous band without changing callers.
13
+ */
14
+ import { measureQueryComplexity } from '../utils/query-complexity.js';
15
+ // Security/risk keywords force `critical` — the tier the old bridge could never
16
+ // emit. Scoped to genuinely security-relevant terms: `\bauth\b` matches "auth"
17
+ // but not "author"; generic words (token/schema/migration) are deliberately
18
+ // EXCLUDED — they are noise in a token-optimization/schema-diff codebase and
19
+ // would over-escalate benign work (review C2). `authoriz\w*`/`authenticat\w*`
20
+ // cover authorize/authentication without matching "author".
21
+ const CRITICAL_KW = /(\bsecurity\b|\bauth\b|authenticat\w*|authoriz\w*|\bauthn\b|\bauthz\b|\boauth\b|\bcredential\w*|\bsecret\w*|\bpassword\w*|\bjwt\b|\bcsrf\b|\bxss\b|\binjection\b|\bsanitiz\w*|\bprivileg\w*|\bpermission\w*|\brbac\b|\bvulnerabilit\w*|\bcve\b|\bexploit\w*|\bencrypt\w*|\bdecrypt\w*|\bpayment\w*|\bcertificate\w*|\btls\b|\bssl\b|\bcors\b|\bssrf\b|\bdeserializ\w*|\bgdpr\b|\bhipaa\b|\bpci\b|breaking\s+change)/i;
22
+ // High-complexity engineering signals (folded in from router.ts COMPLEXITY_KEYWORDS
23
+ // so the unified classifier preserves the router's `high` intent — Q2). These are
24
+ // architecture/systems-level terms, not security (which is `critical` above).
25
+ const HIGH_KW = /(architect\w*|refactor\w*|\bdistributed\b|concurren\w*|microservice\w*|algorithm\w*|optimiz\w*|\bperformance\b|scalab\w*|multi-?step|redesign\w*|\bconsensus\b)/i;
26
+ // Trivial keywords + short + single-file → the near-zero-overhead floor.
27
+ const TRIVIAL_KW = /\b(typo|rename|comment|whitespace|lint|formatting|format|bump\s+version|one[-\s]?liner|doc\s*typo)\b/i;
28
+ const SCORE = {
29
+ trivial: 0.05,
30
+ low: 0.25,
31
+ medium: 0.55,
32
+ high: 0.8,
33
+ critical: 0.95,
34
+ };
35
+ /**
36
+ * Classify task complexity into one 5-level tier. PURE, no model call.
37
+ * Precedence: risk/critical > trivial-floor > 3-level scorer (low/medium/high),
38
+ * with a file-count bump.
39
+ */
40
+ export function classifyComplexity(input) {
41
+ const text = input.instruction ?? '';
42
+ const files = input.affectedFiles?.length ?? 0;
43
+ const reasons = [];
44
+ const hasRiskFlags = (input.riskFlags?.length ?? 0) > 0;
45
+ const hasCriticalKw = CRITICAL_KW.test(text);
46
+ if (hasRiskFlags || hasCriticalKw) {
47
+ if (hasRiskFlags)
48
+ reasons.push(`riskFlags=[${input.riskFlags.join(',')}]`);
49
+ if (hasCriticalKw)
50
+ reasons.push('critical keyword');
51
+ return { tier: 'critical', score: SCORE.critical, reasons, source: 'heuristic' };
52
+ }
53
+ if (TRIVIAL_KW.test(text) && text.length < 200 && files <= 1) {
54
+ reasons.push('trivial keyword, short, ≤1 file');
55
+ return { tier: 'trivial', score: SCORE.trivial, reasons, source: 'heuristic' };
56
+ }
57
+ if (HIGH_KW.test(text)) {
58
+ reasons.push('high-complexity keyword');
59
+ return { tier: 'high', score: SCORE.high, reasons, source: 'heuristic' };
60
+ }
61
+ const q = measureQueryComplexity(text, { moderate: 1, complex: 2 });
62
+ reasons.push(`query-complexity=${q}`);
63
+ let tier = q === 'simple' ? 'low' : q === 'moderate' ? 'medium' : 'high';
64
+ // Many files raises the floor a notch (capped at high; critical is keyword-only).
65
+ if (files >= 5 && tier !== 'high') {
66
+ tier = tier === 'low' ? 'medium' : 'high';
67
+ reasons.push(`${files} files → bumped`);
68
+ }
69
+ return { tier, score: SCORE[tier], reasons, source: 'heuristic' };
70
+ }
71
+ /** Map the 5-level tier onto the 4-level routing scale (trivial folds to low). */
72
+ export function tierToRouting(tier) {
73
+ return tier === 'trivial' ? 'low' : tier;
74
+ }
75
+ //# sourceMappingURL=complexity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"complexity.js","sourceRoot":"","sources":["../../src/models/complexity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/models/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,WAAW,EAEX,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,WAAW,EAEX,SAAS,EACV,MAAM,YAAY,CAAC;AAyFpB;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,eAAe,CAAyB;gBAEpC,MAAM,EAAE,gBAAgB;IAmBpC,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,uBAAuB;IAS/B;;;OAGG;IACH,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,wBAAwB;IA+E/D;;;;;;;OAOG;IACH,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc;IA4E7F;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,cAAc;IAwBtB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAqF3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiE3B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAMnF;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIlD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS;IAKzD;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAI7B;;OAEG;IACH,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG;QACvC,cAAc,EAAE,wBAAwB,CAAC;QACzC,YAAY,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,WAAW,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7E,cAAc,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD;IA8DD;;OAEG;WACW,mBAAmB,IAAI,gBAAgB;CAYtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAElE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,WAAW,CAkBvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,WAAW,CAYrD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,WAAW,CAE7C"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/models/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,WAAW,EAEX,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,WAAW,EAEX,SAAS,EAGV,MAAM,YAAY,CAAC;AA0FpB;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,eAAe,CAAyB;gBAEpC,MAAM,EAAE,gBAAgB;IAmBpC,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,uBAAuB;IAS/B;;;OAGG;IACH,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,wBAAwB;IAgF/D;;;;;;;OAOG;IACH,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc;IAwG7F;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,cAAc;IAwBtB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAqF3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiE3B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAMnF;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIlD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS;IAKzD;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAI7B;;OAEG;IACH,cAAc,CAAC,eAAe,EAAE,MAAM,GAAG;QACvC,cAAc,EAAE,wBAAwB,CAAC;QACzC,YAAY,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,WAAW,CAAC;YAAC,OAAO,EAAE,OAAO,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7E,cAAc,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACxD;IA8DD;;OAEG;WACW,mBAAmB,IAAI,gBAAgB;CAYtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAElE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,WAAW,CAkBvD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,WAAW,CAYrD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,WAAW,CAE7C"}
@@ -7,7 +7,8 @@
7
7
  * - Cost optimization strategy
8
8
  * - Available model capabilities
9
9
  */
10
- import { ModelPresets, DEFAULT_ROUTING_RULES, } from './types.js';
10
+ import { ModelPresets, DEFAULT_ROUTING_RULES, RoutingPresets, resolvePhaseChain, } from './types.js';
11
+ import { classifyComplexity, tierToRouting } from './complexity.js';
11
12
  import { createLogger } from '../utils/logger.js';
12
13
  import { AdaptiveCache } from '../utils/adaptive-cache.js';
13
14
  const log = createLogger('model-router-exec');
@@ -174,16 +175,17 @@ export class ModelRouter {
174
175
  }
175
176
  const lowerTask = taskDescription.toLowerCase();
176
177
  const words = lowerTask.split(/\s+/);
177
- // Detect complexity
178
- let complexity = 'medium';
178
+ // Detect complexity. Q2: the keyword scan is retained only for the
179
+ // confidence signal / matched-keywords; the AUTHORITATIVE tier comes from
180
+ // the unified classifier so router.classifyTask and deliver's tier lookups
181
+ // agree (trivial folds to low for the 4-level routing scale).
179
182
  let maxComplexityScore = 0;
180
- for (const [level, keywords] of Object.entries(COMPLEXITY_KEYWORDS)) {
183
+ for (const keywords of Object.values(COMPLEXITY_KEYWORDS)) {
181
184
  const score = keywords.filter((kw) => lowerTask.includes(kw)).length;
182
- if (score > maxComplexityScore) {
185
+ if (score > maxComplexityScore)
183
186
  maxComplexityScore = score;
184
- complexity = level;
185
- }
186
187
  }
188
+ const complexity = tierToRouting(classifyComplexity({ instruction: taskDescription }).tier);
187
189
  // Detect task type
188
190
  let taskType = 'coding';
189
191
  let maxTypeScore = 0;
@@ -239,9 +241,36 @@ export class ModelRouter {
239
241
  */
240
242
  selectModel(complexity, taskType, keywords) {
241
243
  const strategy = this.config.routingStrategy || 'balanced';
242
- // Check routingMatrix override first - user-specified per-complexity model
243
- // assignments. Two accepted forms: a single model id string (new, tier
244
- // routing) or the legacy { planner, executor } pair.
244
+ // Q4: when a routing PRESET is persisted, resolve from the CANONICAL
245
+ // per-phase source (resolvePhaseChain) the flat routingMatrix below is the
246
+ // fallback for configs that predate `routingPreset`. This keeps the preset's
247
+ // full per-phase intent authoritative at runtime rather than the flattened
248
+ // execute-primary the matrix records.
249
+ if (this.config.routingPreset) {
250
+ const preset = RoutingPresets[this.config.routingPreset];
251
+ // Only engage the canonical per-phase path for presets that actually carry
252
+ // per-complexity `tiers`. A tier-less preset (e.g. fable-local-opus) has no
253
+ // complexity routing, so resolvePhaseChain would return the executor role
254
+ // for EVERY tier — dropping the strategy's role escalation of hard tasks.
255
+ // Those fall through to the routingMatrix/strategy logic unchanged.
256
+ if (preset && preset.tiers) {
257
+ const modelId = resolvePhaseChain(preset, { complexity, phase: 'execute' })[0];
258
+ const model = this.models.get(modelId) || ModelPresets[modelId];
259
+ if (model) {
260
+ return {
261
+ model,
262
+ fallback: undefined,
263
+ role: 'executor',
264
+ reasoning: `routingPreset '${preset.id}' (canonical per-phase, tier '${complexity}'): ${model.name}`,
265
+ estimatedCost: this.estimateCost(model, 10000, 5000),
266
+ };
267
+ }
268
+ }
269
+ }
270
+ // Check routingMatrix override next - user-specified per-complexity model
271
+ // assignments (LEGACY flat form; the preset path above supersedes it). Two
272
+ // accepted forms: a single model id string (tier routing) or the legacy
273
+ // { planner, executor } pair.
245
274
  if (this.config.routingMatrix?.[complexity]) {
246
275
  const matrixEntry = this.config.routingMatrix[complexity];
247
276
  const isHigh = complexity === 'critical' || complexity === 'high';
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/models/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/models/router.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,22 @@ export type ModelPresetId = keyof typeof ModelPresets;
65
65
  * against Anthropic and work with a Claude Max plan via the proxy's OAuth
66
66
  * passthrough; local roles run free on llama.cpp.
67
67
  */
68
+ /** An ordered escalation chain of model ids: index 0 is the primary; later
69
+ * entries are the models to escalate to on failure (consumed in S5). */
70
+ export type ModelChain = string[];
71
+ /** A lifecycle phase a task turn runs in. `reflect` is used by the GEPA reflect
72
+ * phase (S6); `fallback` is the last-resort model. */
73
+ export type Phase = 'plan' | 'execute' | 'review' | 'reflect' | 'fallback';
74
+ /** Per-phase model chains for one complexity tier. A phase omitted from an
75
+ * explicit PhaseModels tier is *skippable* (see `resolvePhaseChain` allowSkip),
76
+ * which is how trivial/low tiers get near-zero overhead (S4). */
77
+ export interface PhaseModels {
78
+ plan?: ModelChain;
79
+ execute?: ModelChain;
80
+ review?: ModelChain;
81
+ reflect?: ModelChain;
82
+ fallback?: ModelChain;
83
+ }
68
84
  export interface RoutingPreset {
69
85
  id: string;
70
86
  name: string;
@@ -84,26 +100,57 @@ export interface RoutingPreset {
84
100
  * map stays coherent. Consumed by `uap model routing use`, which materializes
85
101
  * it into the router's routingMatrix.
86
102
  */
87
- tiers?: Partial<Record<TaskComplexity, string>>;
103
+ tiers?: Partial<Record<TaskComplexity, string | PhaseModels>>;
88
104
  models: string[];
89
105
  routingStrategy?: string;
90
106
  }
91
107
  export declare const RoutingPresets: Record<string, RoutingPreset>;
92
108
  /**
93
- * Materialize a preset's complexity tiers into the router's routingMatrix
94
- * (single-model-per-tier form). Tiers absent from the preset are omitted, so
95
- * the router falls back to the executor role for them coherent by default.
96
- * Exported + pure for testing and for `uap model routing use`.
109
+ * Resolve the ordered model chain for a (complexity, phase) pair. PURE.
110
+ * - string tier → it IS the execute model: `execute`→[string], other phases →
111
+ * the role-model (single-element chain), preserving legacy behavior.
112
+ * - PhaseModels → the phase's chain, or (when the phase is omitted) the
113
+ * role-model fallback — unless `allowSkip`, which returns [] so callers can
114
+ * treat the phase as skipped (S4 effort dial).
115
+ * - no tier → the role-model (single-element chain).
116
+ */
117
+ export declare function resolvePhaseChain(preset: RoutingPreset, opts: {
118
+ complexity?: TaskComplexity;
119
+ phase: Phase;
120
+ allowSkip?: boolean;
121
+ }): ModelChain;
122
+ /**
123
+ * LEGACY COMPATIBILITY SHIM (Q4). Materialize a preset's complexity tiers into
124
+ * router.ts's single-model routingMatrix. String tiers pass through; PhaseModels
125
+ * tiers contribute their EXECUTE primary (losing the per-phase chain). This is
126
+ * DERIVED from the canonical per-phase source (resolvePhaseChain /
127
+ * selectPhaseModel); new code should select through those, not this flat matrix.
128
+ * Retained so router.ts's existing routingMatrix path keeps working. Pure.
97
129
  */
98
130
  export declare function tiersToRoutingMatrix(preset: RoutingPreset): Record<string, string> | undefined;
99
131
  /**
100
- * Resolve the model for a (complexity, role) pair against a preset: the
101
- * complexity tier wins for the execution path; otherwise the role model.
102
- * Pure — the single source of truth for "which model does this task get".
132
+ * Resolve the single model for a (complexity, role/phase) pair against a
133
+ * preset. Returns the primary of the resolved phase chain. Pure — the source
134
+ * of truth for "which model does this task get". Back-compat: `{complexity,
135
+ * role:'executor'}` on a string tier returns that tier model, exactly as before.
103
136
  */
104
137
  export declare function resolvePresetModel(preset: RoutingPreset, opts: {
105
138
  complexity?: TaskComplexity;
106
139
  role?: keyof RoutingPreset['roles'];
140
+ phase?: Phase;
141
+ }): string;
142
+ /**
143
+ * CANONICAL per-phase model selector (Q4). `resolvePhaseChain` is the single
144
+ * source of truth for "which model does this (tier, phase) get"; this returns
145
+ * its primary. New code should route model selection through this (or
146
+ * `resolvePhaseChain` for the full escalation chain), NOT through the flattened
147
+ * `tiersToRoutingMatrix` — that matrix is a LEGACY COMPATIBILITY SHIM for
148
+ * router.ts's single-model routingMatrix and loses the per-phase chain. The flat
149
+ * matrix is derived FROM this canonical source, never the other way round.
150
+ */
151
+ export declare function selectPhaseModel(preset: RoutingPreset, opts: {
152
+ complexity?: TaskComplexity;
153
+ phase: Phase;
107
154
  }): string;
108
155
  /**
109
156
  * Compute the `ANTHROPIC_PASSTHROUGH_MODELS` proxy env value for a routing
@@ -126,13 +173,13 @@ export declare const RoleAssignmentSchema: z.ZodObject<{
126
173
  maxTokensPerRequest: z.ZodOptional<z.ZodNumber>;
127
174
  timeout: z.ZodDefault<z.ZodNumber>;
128
175
  }, "strip", z.ZodTypeAny, {
129
- modelId: string;
130
176
  role: "planner" | "executor" | "reviewer" | "fallback";
177
+ modelId: string;
131
178
  timeout: number;
132
179
  maxTokensPerRequest?: number | undefined;
133
180
  }, {
134
- modelId: string;
135
181
  role: "planner" | "executor" | "reviewer" | "fallback";
182
+ modelId: string;
136
183
  maxTokensPerRequest?: number | undefined;
137
184
  timeout?: number | undefined;
138
185
  }>;
@@ -267,6 +314,7 @@ export declare const MultiModelConfigSchema: z.ZodObject<{
267
314
  executor: string;
268
315
  }>]>>>;
269
316
  routingStrategy: z.ZodDefault<z.ZodEnum<["cost-optimized", "performance-first", "balanced", "adaptive"]>>;
317
+ routingPreset: z.ZodOptional<z.ZodString>;
270
318
  plannerSettings: z.ZodOptional<z.ZodObject<{
271
319
  complexityThreshold: z.ZodDefault<z.ZodEnum<["low", "medium", "high"]>>;
272
320
  maxPlanningTokens: z.ZodDefault<z.ZodNumber>;
@@ -333,6 +381,7 @@ export declare const MultiModelConfigSchema: z.ZodObject<{
333
381
  planner: string;
334
382
  executor: string;
335
383
  }>> | undefined;
384
+ routingPreset?: string | undefined;
336
385
  plannerSettings?: {
337
386
  complexityThreshold: "low" | "medium" | "high";
338
387
  maxPlanningTokens: number;
@@ -383,6 +432,7 @@ export declare const MultiModelConfigSchema: z.ZodObject<{
383
432
  executor: string;
384
433
  }>> | undefined;
385
434
  routingStrategy?: "balanced" | "performance-first" | "cost-optimized" | "adaptive" | undefined;
435
+ routingPreset?: string | undefined;
386
436
  plannerSettings?: {
387
437
  complexityThreshold?: "low" | "medium" | "high" | undefined;
388
438
  maxPlanningTokens?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/models/types.ts"],"names":[],"mappings":"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"}
@@ -286,6 +286,50 @@ export const RoutingPresets = {
286
286
  models: ['sonnet-5', 'opus-4.8', 'qwen36-a3b'],
287
287
  routingStrategy: 'balanced',
288
288
  },
289
+ 'adaptive-tiered': {
290
+ id: 'adaptive-tiered',
291
+ name: 'Adaptive per-phase (complexity × plan/execute/review escalation)',
292
+ description: 'Per-phase model chains that escalate on failure. Low-tier work skips ' +
293
+ 'plan+review for near-zero overhead; high/critical add planning, a distinct ' +
294
+ 'reviewer, a reflect model, and per-phase escalation. Execute local→cloud, ' +
295
+ 'fall back to Opus. Requires the per-phase resolvers (resolvePhaseChain).',
296
+ roles: {
297
+ planner: 'sonnet-5',
298
+ executor: 'qwen36-a3b',
299
+ reviewer: 'sonnet-5',
300
+ fallback: 'opus-4.8',
301
+ },
302
+ tiers: {
303
+ // trivial folds to low for routing; low omits plan+review → they are
304
+ // skipped (overhead control), execute escalates local→cloud.
305
+ low: { execute: ['qwen36-a3b', 'sonnet-5'], fallback: ['sonnet-5'] },
306
+ medium: {
307
+ plan: ['sonnet-5'],
308
+ execute: ['sonnet-5', 'opus-4.8'],
309
+ review: ['sonnet-5'],
310
+ fallback: ['opus-4.8'],
311
+ },
312
+ high: {
313
+ plan: ['sonnet-5', 'opus-4.8'],
314
+ // execute primary is sonnet (not local qwen): hard work should not START
315
+ // on the weakest model, and it keeps the flattened matrix monotonic
316
+ // (medium→sonnet, high→sonnet) rather than inverting to qwen (review C3).
317
+ execute: ['sonnet-5', 'opus-4.8'],
318
+ review: ['sonnet-5', 'opus-4.8'],
319
+ reflect: ['opus-4.8'],
320
+ fallback: ['opus-4.8'],
321
+ },
322
+ critical: {
323
+ plan: ['opus-4.8'],
324
+ execute: ['sonnet-5', 'opus-4.8'],
325
+ review: ['opus-4.8'],
326
+ reflect: ['opus-4.8'],
327
+ fallback: ['opus-4.8'],
328
+ },
329
+ },
330
+ models: ['fable-5', 'qwen36-a3b', 'haiku-4.5', 'sonnet-5', 'opus-4.8'],
331
+ routingStrategy: 'adaptive',
332
+ },
289
333
  };
290
334
  /**
291
335
  * Materialize a preset's complexity tiers into the router's routingMatrix
@@ -293,26 +337,91 @@ export const RoutingPresets = {
293
337
  * the router falls back to the executor role for them — coherent by default.
294
338
  * Exported + pure for testing and for `uap model routing use`.
295
339
  */
340
+ /** Map a lifecycle phase to the closest lifecycle role (role-model fallback). */
341
+ const PHASE_TO_ROLE = {
342
+ plan: 'planner',
343
+ execute: 'executor',
344
+ review: 'reviewer',
345
+ reflect: 'reviewer',
346
+ fallback: 'fallback',
347
+ };
348
+ /** Map a lifecycle role to its phase (for role→phase resolution). */
349
+ const ROLE_TO_PHASE = {
350
+ planner: 'plan',
351
+ executor: 'execute',
352
+ reviewer: 'review',
353
+ fallback: 'fallback',
354
+ };
355
+ /**
356
+ * Resolve the ordered model chain for a (complexity, phase) pair. PURE.
357
+ * - string tier → it IS the execute model: `execute`→[string], other phases →
358
+ * the role-model (single-element chain), preserving legacy behavior.
359
+ * - PhaseModels → the phase's chain, or (when the phase is omitted) the
360
+ * role-model fallback — unless `allowSkip`, which returns [] so callers can
361
+ * treat the phase as skipped (S4 effort dial).
362
+ * - no tier → the role-model (single-element chain).
363
+ */
364
+ export function resolvePhaseChain(preset, opts) {
365
+ const { complexity, phase, allowSkip } = opts;
366
+ const roleModel = preset.roles[PHASE_TO_ROLE[phase]];
367
+ const tier = complexity ? preset.tiers?.[complexity] : undefined;
368
+ if (tier === undefined)
369
+ return [roleModel];
370
+ if (typeof tier === 'string') {
371
+ return phase === 'execute' ? [tier] : [roleModel];
372
+ }
373
+ const chain = tier[phase];
374
+ if (chain && chain.length > 0)
375
+ return [...chain];
376
+ return allowSkip ? [] : [roleModel];
377
+ }
378
+ /**
379
+ * LEGACY COMPATIBILITY SHIM (Q4). Materialize a preset's complexity tiers into
380
+ * router.ts's single-model routingMatrix. String tiers pass through; PhaseModels
381
+ * tiers contribute their EXECUTE primary (losing the per-phase chain). This is
382
+ * DERIVED from the canonical per-phase source (resolvePhaseChain /
383
+ * selectPhaseModel); new code should select through those, not this flat matrix.
384
+ * Retained so router.ts's existing routingMatrix path keeps working. Pure.
385
+ */
296
386
  export function tiersToRoutingMatrix(preset) {
297
387
  if (!preset.tiers)
298
388
  return undefined;
299
389
  const matrix = {};
300
- for (const [complexity, modelId] of Object.entries(preset.tiers)) {
301
- if (modelId)
302
- matrix[complexity] = modelId;
390
+ for (const [complexity, value] of Object.entries(preset.tiers)) {
391
+ if (!value)
392
+ continue;
393
+ if (typeof value === 'string') {
394
+ matrix[complexity] = value;
395
+ }
396
+ else if (value.execute && value.execute.length > 0) {
397
+ matrix[complexity] = value.execute[0];
398
+ }
303
399
  }
304
400
  return Object.keys(matrix).length > 0 ? matrix : undefined;
305
401
  }
306
402
  /**
307
- * Resolve the model for a (complexity, role) pair against a preset: the
308
- * complexity tier wins for the execution path; otherwise the role model.
309
- * Pure — the single source of truth for "which model does this task get".
403
+ * Resolve the single model for a (complexity, role/phase) pair against a
404
+ * preset. Returns the primary of the resolved phase chain. Pure — the source
405
+ * of truth for "which model does this task get". Back-compat: `{complexity,
406
+ * role:'executor'}` on a string tier returns that tier model, exactly as before.
310
407
  */
311
408
  export function resolvePresetModel(preset, opts) {
312
- const { complexity, role = 'executor' } = opts;
313
- if (complexity && preset.tiers?.[complexity])
314
- return preset.tiers[complexity];
315
- return preset.roles[role];
409
+ const { complexity, role = 'executor', phase } = opts;
410
+ const resolvedPhase = phase ?? ROLE_TO_PHASE[role];
411
+ const chain = resolvePhaseChain(preset, { complexity, phase: resolvedPhase });
412
+ return chain[0] ?? preset.roles[role];
413
+ }
414
+ /**
415
+ * CANONICAL per-phase model selector (Q4). `resolvePhaseChain` is the single
416
+ * source of truth for "which model does this (tier, phase) get"; this returns
417
+ * its primary. New code should route model selection through this (or
418
+ * `resolvePhaseChain` for the full escalation chain), NOT through the flattened
419
+ * `tiersToRoutingMatrix` — that matrix is a LEGACY COMPATIBILITY SHIM for
420
+ * router.ts's single-model routingMatrix and loses the per-phase chain. The flat
421
+ * matrix is derived FROM this canonical source, never the other way round.
422
+ */
423
+ export function selectPhaseModel(preset, opts) {
424
+ return resolvePhaseChain(preset, opts)[0] ?? preset.roles.executor;
316
425
  }
317
426
  /**
318
427
  * Compute the `ANTHROPIC_PASSTHROUGH_MODELS` proxy env value for a routing
@@ -388,7 +497,10 @@ export const MultiModelConfigSchema = z.object({
388
497
  fallbackThreshold: z.number().default(3),
389
498
  })
390
499
  .optional(),
391
- // Custom routing matrix override
500
+ // Custom routing matrix (per-complexity model). NOTE: this is a FALLBACK —
501
+ // when `routingPreset` is set and resolvable, the router selects from the
502
+ // canonical per-phase source (resolvePhaseChain) and this matrix is ignored
503
+ // for selection (it is retained for legacy configs and display).
392
504
  routingMatrix: z
393
505
  .record(z.enum(['low', 'medium', 'high', 'critical']), z.union([
394
506
  z.string(), // new: one model id for this complexity tier
@@ -404,6 +516,11 @@ export const MultiModelConfigSchema = z.object({
404
516
  'adaptive', // Learn from task results
405
517
  ])
406
518
  .default('balanced'),
519
+ // Q4: the source RoutingPreset id. When set and resolvable, the router selects
520
+ // models from the CANONICAL per-phase source (resolvePhaseChain) rather than
521
+ // the flattened routingMatrix — which is demoted to a fallback for configs that
522
+ // predate this field. Persisted by `uap model routing use`.
523
+ routingPreset: z.string().optional(),
407
524
  // Planner-specific settings
408
525
  plannerSettings: z
409
526
  .object({