pi-smart-router 0.2.0 → 0.4.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 (61) hide show
  1. package/.pi/extensions/smart-router/index.ts +9 -0
  2. package/.pi/extensions/smart-router/pi-model-scope.ts +127 -20
  3. package/.pi/extensions/smart-router/planning-delegate.ts +318 -0
  4. package/.pi/extensions/smart-router/route-and-delegate.ts +21 -1
  5. package/.pi/extensions/smart-router/types.ts +3 -0
  6. package/README.md +51 -0
  7. package/config/benchmark-profiles.json +145 -0
  8. package/config/models.yaml.example +5 -0
  9. package/config/routing-calibration.json.example +14 -2
  10. package/dist/config/defaults.d.ts +2 -2
  11. package/dist/config/defaults.d.ts.map +1 -1
  12. package/dist/config/defaults.js +5 -3
  13. package/dist/config/defaults.js.map +1 -1
  14. package/dist/config/pi-model-mapper.d.ts +12 -2
  15. package/dist/config/pi-model-mapper.d.ts.map +1 -1
  16. package/dist/config/pi-model-mapper.js +91 -6
  17. package/dist/config/pi-model-mapper.js.map +1 -1
  18. package/dist/domain/matching/hydra-input.d.ts +6 -5
  19. package/dist/domain/matching/hydra-input.d.ts.map +1 -1
  20. package/dist/domain/matching/hydra-input.js +73 -6
  21. package/dist/domain/matching/hydra-input.js.map +1 -1
  22. package/dist/domain/pipeline/router-pipeline.d.ts +22 -1
  23. package/dist/domain/pipeline/router-pipeline.d.ts.map +1 -1
  24. package/dist/domain/pipeline/router-pipeline.js +135 -22
  25. package/dist/domain/pipeline/router-pipeline.js.map +1 -1
  26. package/dist/domain/routing/isotonic-calibrator.d.ts +56 -0
  27. package/dist/domain/routing/isotonic-calibrator.d.ts.map +1 -0
  28. package/dist/domain/routing/isotonic-calibrator.js +187 -0
  29. package/dist/domain/routing/isotonic-calibrator.js.map +1 -0
  30. package/dist/domain/routing/p-success-classifier.d.ts +53 -7
  31. package/dist/domain/routing/p-success-classifier.d.ts.map +1 -1
  32. package/dist/domain/routing/p-success-classifier.js +205 -21
  33. package/dist/domain/routing/p-success-classifier.js.map +1 -1
  34. package/dist/domain/types/entities.d.ts +54 -0
  35. package/dist/domain/types/entities.d.ts.map +1 -1
  36. package/dist/domain/types/index.d.ts +1 -1
  37. package/dist/domain/types/index.d.ts.map +1 -1
  38. package/dist/domain/types/schemas.d.ts +29 -0
  39. package/dist/domain/types/schemas.d.ts.map +1 -1
  40. package/dist/domain/types/schemas.js +57 -0
  41. package/dist/domain/types/schemas.js.map +1 -1
  42. package/dist/infrastructure/persistence/sqlite-store.d.ts.map +1 -1
  43. package/dist/infrastructure/persistence/sqlite-store.js +2 -1
  44. package/dist/infrastructure/persistence/sqlite-store.js.map +1 -1
  45. package/dist/infrastructure/telemetry/routing-telemetry.d.ts +20 -1
  46. package/dist/infrastructure/telemetry/routing-telemetry.d.ts.map +1 -1
  47. package/dist/infrastructure/telemetry/routing-telemetry.js +82 -2
  48. package/dist/infrastructure/telemetry/routing-telemetry.js.map +1 -1
  49. package/package.json +6 -3
  50. package/specs/001-build-smart-router/contracts/telemetry-contrib.schema.json +29 -1
  51. package/src/config/defaults.ts +6 -2
  52. package/src/config/pi-model-mapper.ts +110 -6
  53. package/src/domain/matching/hydra-input.ts +86 -7
  54. package/src/domain/pipeline/router-pipeline.ts +195 -29
  55. package/src/domain/routing/isotonic-calibrator.ts +255 -0
  56. package/src/domain/routing/p-success-classifier.ts +299 -26
  57. package/src/domain/types/entities.ts +58 -0
  58. package/src/domain/types/index.ts +4 -0
  59. package/src/domain/types/schemas.ts +73 -0
  60. package/src/infrastructure/persistence/sqlite-store.ts +2 -0
  61. package/src/infrastructure/telemetry/routing-telemetry.ts +127 -7
@@ -21,6 +21,10 @@ export const BREAKEVEN_BLOCKED = 'breakeven_blocked';
21
21
  export const BREAKEVEN_PASS = 'breakeven_pass';
22
22
  export const SAAR_BUFFER_ACTIVE = 'saar_buffer_active';
23
23
  export const SAAR_HARD_LOCK = 'saar_hard_lock';
24
+ export const PLANNING_DELEGATE = 'planning_delegate';
25
+ export const PLANNING_DIRECT_FRONTIER = 'planning_direct_frontier';
26
+ export const PLANNING_DELEGATE_DISABLED = 'planning_delegate_disabled';
27
+ export const PLANNING_DELEGATE_UNAVAILABLE = 'planning_delegate_unavailable';
24
28
  const TURN_ENVELOPE_TIER_MAP = {
25
29
  planning: 'frontier-cloud',
26
30
  tool_result: 'economical-cloud',
@@ -233,6 +237,8 @@ function buildLowIntensityBreakdown(features) {
233
237
  tier_hint_reason_code: features.tier_hint_reason_code,
234
238
  tier_selection_reason_code: resolveTierSelectionReasonCode(features),
235
239
  p_success_cheap: features.p_success_cheap,
240
+ p_success_raw: features.p_success_raw,
241
+ p_success_calibrated: features.p_success_calibrated,
236
242
  p_success_alpha: features.p_success_alpha,
237
243
  rejected_tiers: extractRejectedTiers(features.candidates),
238
244
  };
@@ -328,6 +334,35 @@ function resolveSaarReasonCode(decision) {
328
334
  }
329
335
  return null;
330
336
  }
337
+ /** Build planning delegate observability from routing decision features (SP-142). */
338
+ export function buildPlanningDelegateObservability(decision) {
339
+ return decision.features?.planning_delegate ?? null;
340
+ }
341
+ /** Construct planning delegate observability for pipeline and tests (SP-142). */
342
+ export function createPlanningDelegateObservability(input) {
343
+ return {
344
+ path: input.path,
345
+ primary_model_id: input.primary_model_id ?? null,
346
+ delegate_model_id: input.delegate_model_id ?? null,
347
+ compressed_context: input.compressed_context ?? null,
348
+ planning_delegate_reason_code: input.planning_delegate_reason_code,
349
+ fallback_reason: input.fallback_reason ?? null,
350
+ };
351
+ }
352
+ /** Attach planning delegate observability to routing decision features (SP-142). */
353
+ export function enrichRoutingDecisionWithPlanningDelegate(decision, planningDelegate) {
354
+ const observability = planningDelegate ?? buildPlanningDelegateObservability(decision);
355
+ if (!observability) {
356
+ return decision;
357
+ }
358
+ return {
359
+ ...decision,
360
+ features: {
361
+ ...(decision.features ?? emptyFeatureSidecar()),
362
+ planning_delegate: observability,
363
+ },
364
+ };
365
+ }
331
366
  /** Build privacy-safe SAAR pin state for explain and telemetry (SP-126). */
332
367
  export function buildSaarObservability(input) {
333
368
  const { request, decision, sessionPinner, saarConfig } = input;
@@ -402,6 +437,36 @@ function defaultSaarTelemetry() {
402
437
  export const DEFAULT_BREAKEVEN_TELEMETRY_FIELDS = defaultBreakevenTelemetry();
403
438
  /** Default SAAR telemetry scalars for tests and legacy store reads. */
404
439
  export const DEFAULT_SAAR_TELEMETRY_FIELDS = defaultSaarTelemetry();
440
+ function defaultPlanningDelegateTelemetry() {
441
+ return {
442
+ planning_delegate_path: null,
443
+ planning_delegate_primary_model_id: null,
444
+ planning_delegate_model_id: null,
445
+ planning_delegate_reason_code: null,
446
+ planning_delegate_fallback_reason: null,
447
+ planning_delegate_max_messages: null,
448
+ planning_delegate_max_tokens: null,
449
+ planning_delegate_exclude_execution_history: null,
450
+ };
451
+ }
452
+ /** Default planning delegate telemetry scalars for tests and legacy store reads. */
453
+ export const DEFAULT_PLANNING_DELEGATE_TELEMETRY_FIELDS = defaultPlanningDelegateTelemetry();
454
+ function planningDelegateTelemetryFromDecision(decision) {
455
+ const observability = buildPlanningDelegateObservability(decision);
456
+ if (!observability) {
457
+ return defaultPlanningDelegateTelemetry();
458
+ }
459
+ return {
460
+ planning_delegate_path: observability.path === 'none' ? null : observability.path,
461
+ planning_delegate_primary_model_id: observability.primary_model_id,
462
+ planning_delegate_model_id: observability.delegate_model_id,
463
+ planning_delegate_reason_code: observability.planning_delegate_reason_code,
464
+ planning_delegate_fallback_reason: observability.fallback_reason,
465
+ planning_delegate_max_messages: observability.compressed_context?.max_messages ?? null,
466
+ planning_delegate_max_tokens: observability.compressed_context?.max_tokens ?? null,
467
+ planning_delegate_exclude_execution_history: observability.compressed_context?.exclude_execution_history ?? null,
468
+ };
469
+ }
405
470
  function pinEconomicsTelemetryFromInput(input) {
406
471
  const breakeven = buildBreakevenObservability(input);
407
472
  const saar = buildSaarObservability(input);
@@ -455,6 +520,8 @@ function emptyFeatureSidecar() {
455
520
  tier_hint_reason_code: null,
456
521
  low_intensity_score: null,
457
522
  p_success_cheap: null,
523
+ p_success_raw: null,
524
+ p_success_calibrated: null,
458
525
  p_success_alpha: null,
459
526
  local_eligible_reason: null,
460
527
  };
@@ -488,7 +555,7 @@ export async function enrichRoutingDecisionForExplain(request, decision, options
488
555
  clusterMatchTable = null;
489
556
  }
490
557
  }
491
- return enrichRoutingDecisionWithPinEconomics(request, enrichRoutingDecisionWithTierSelection(withContextFit, clusterMatchTable), pinEconomicsOptionsFromExplain(options));
558
+ return enrichRoutingDecisionWithPinEconomics(request, enrichRoutingDecisionWithPlanningDelegate(enrichRoutingDecisionWithTierSelection(withContextFit, clusterMatchTable)), pinEconomicsOptionsFromExplain(options));
492
559
  }
493
560
  function pinEconomicsOptionsFromExplain(options) {
494
561
  return {
@@ -520,7 +587,7 @@ export function enrichRoutingDecisionWithContextFit(request, decision, fleet, co
520
587
  }
521
588
  /** JSON payload for SMART_ROUTER_LOG_ROUTING=1 stderr lines (SP-110). */
522
589
  export function buildRoutingDecisionLogPayload(request, decision, delegate, fleet, contextFitConfig, pinEconomics) {
523
- const enriched = enrichRoutingDecisionWithPinEconomics(request, enrichRoutingDecisionWithTierSelection(enrichRoutingDecisionWithContextFit(request, decision, fleet, contextFitConfig)), {
590
+ const enriched = enrichRoutingDecisionWithPinEconomics(request, enrichRoutingDecisionWithPlanningDelegate(enrichRoutingDecisionWithTierSelection(enrichRoutingDecisionWithContextFit(request, decision, fleet, contextFitConfig))), {
524
591
  ...(fleet !== undefined ? { fleet } : {}),
525
592
  ...(pinEconomics?.sessionPinner !== undefined
526
593
  ? { sessionPinner: pinEconomics.sessionPinner }
@@ -532,6 +599,7 @@ export function buildRoutingDecisionLogPayload(request, decision, delegate, flee
532
599
  const tierSelection = enriched.features?.tier_selection;
533
600
  const breakeven = enriched.features?.breakeven;
534
601
  const saar = enriched.features?.saar;
602
+ const planningDelegate = enriched.features?.planning_delegate;
535
603
  return {
536
604
  request_id: enriched.request_id,
537
605
  selected_model_id: enriched.selected_model_id,
@@ -570,6 +638,16 @@ export function buildRoutingDecisionLogPayload(request, decision, delegate, flee
570
638
  saar_reason_code: saar.saar_reason_code,
571
639
  }
572
640
  : null,
641
+ planning_delegate_summary: planningDelegate
642
+ ? {
643
+ path: planningDelegate.path,
644
+ primary_model_id: planningDelegate.primary_model_id,
645
+ delegate_model_id: planningDelegate.delegate_model_id,
646
+ compressed_context: planningDelegate.compressed_context,
647
+ planning_delegate_reason_code: planningDelegate.planning_delegate_reason_code,
648
+ fallback_reason: planningDelegate.fallback_reason,
649
+ }
650
+ : null,
573
651
  delegate,
574
652
  };
575
653
  }
@@ -695,6 +773,7 @@ export class RoutingTelemetryEmitter {
695
773
  : {}),
696
774
  ...(this.saarConfig !== undefined ? { saarConfig: this.saarConfig } : {}),
697
775
  });
776
+ const planningDelegateFields = planningDelegateTelemetryFromDecision(decision);
698
777
  const record = {
699
778
  timestamp: this.clock(),
700
779
  session_id: request.session_id,
@@ -729,6 +808,7 @@ export class RoutingTelemetryEmitter {
729
808
  saar_hard_lock: pinEconomicsFields.saar_hard_lock,
730
809
  turn_index_in_session: pinEconomicsFields.turn_index_in_session,
731
810
  saar_reason_code: pinEconomicsFields.saar_reason_code,
811
+ ...planningDelegateFields,
732
812
  };
733
813
  this.entries.push(record);
734
814
  this.onRecord?.(record);
@@ -1 +1 @@
1
- {"version":3,"file":"routing-telemetry.js","sourceRoot":"","sources":["../../../src/infrastructure/telemetry/routing-telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routing-telemetry.js","sourceRoot":"","sources":["../../../src/infrastructure/telemetry/routing-telemetry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-smart-router",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Auto-model router middleware for the pi.dev coding agent",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -60,6 +60,8 @@
60
60
  "routing:bootstrap-centroids": "node --experimental-strip-types scripts/bootstrap-routing-centroids.ts",
61
61
  "routing:calibration-aggregate": "node --experimental-strip-types scripts/calibration-aggregate.ts",
62
62
  "routing:train-calibration": "node --experimental-strip-types scripts/train-routing-calibration.ts",
63
+ "routing:ingest-benchmarks": "tsx scripts/ingest-benchmark-profiles.ts",
64
+ "routing:verify-benchmark-profiles": "vitest run tests/unit/ingest-benchmark-profiles.test.ts -t \"checked-in artifact matches fixture ingest\"",
63
65
  "routing:verify-calibration": "npm run build && node --experimental-strip-types scripts/verify-routing-calibration.ts",
64
66
  "routing:test-projection": "npm run build && node --experimental-strip-types scripts/test-hydra-projection.ts",
65
67
  "verify:ci": "npm run build && npm run typecheck && npm run lint && npm test && npm run coverage:check"
@@ -82,15 +84,16 @@
82
84
  "@types/node": "^22.15.21",
83
85
  "@typescript-eslint/eslint-plugin": "^8.62.1",
84
86
  "@typescript-eslint/parser": "^8.62.1",
87
+ "@vitest/coverage-v8": "^3.2.3",
85
88
  "ajv": "^8.20.0",
86
89
  "ajv-formats": "^3.0.1",
87
90
  "eslint": "^8.57.1",
91
+ "tsx": "^4.23.0",
88
92
  "typescript": "^5.8.3",
89
- "@vitest/coverage-v8": "^3.2.3",
90
93
  "vitest": "^3.2.3"
91
94
  },
92
95
  "dependencies": {
93
- "@earendil-works/pi-ai": "^0.80.3",
96
+ "@earendil-works/pi-ai": "*",
94
97
  "@huggingface/transformers": "^4.2.0",
95
98
  "better-sqlite3": "^12.11.1",
96
99
  "yaml": "^2.9.0",
@@ -143,9 +143,37 @@
143
143
  "model_override",
144
144
  "compaction_pin_break",
145
145
  "feedback_good",
146
- "feedback_bad"
146
+ "feedback_bad",
147
+ "tool_failure_chain",
148
+ "stop_reason_invalid",
149
+ "reprompt_detected",
150
+ "high_edit_distance",
151
+ "provider_failover",
152
+ "stop_reason_length",
153
+ "infra_error"
147
154
  ]
148
155
  }
156
+ },
157
+ "tool_failure_chain_count": {
158
+ "type": ["integer", "null"],
159
+ "minimum": 0,
160
+ "description": "Consecutive identical tool failures at routing time (privacy-safe scalar)."
161
+ },
162
+ "stop_reason_invalid": {
163
+ "type": ["boolean", "null"],
164
+ "description": "True when provider stop_reason indicates invalid task completion."
165
+ },
166
+ "reprompt_rate": {
167
+ "type": ["number", "null"],
168
+ "minimum": 0,
169
+ "maximum": 1,
170
+ "description": "Normalized session re-prompt rate without storing prompt text."
171
+ },
172
+ "edit_distance_proxy": {
173
+ "type": ["number", "null"],
174
+ "minimum": 0,
175
+ "maximum": 1,
176
+ "description": "Normalized prompt-length delta proxy for edit/re-prompt detection."
149
177
  }
150
178
  }
151
179
  }
@@ -4,21 +4,24 @@
4
4
  */
5
5
 
6
6
  import {
7
+ DEFAULT_PLANNING_DELEGATE_CONFIG,
7
8
  DEFAULT_SAAR_CONFIG,
9
+ resolvePlanningDelegateConfigFromEnv,
8
10
  resolveSaarConfigFromEnv,
9
11
  type OperatorConfig,
10
12
  } from '../domain/types/schemas.js';
11
13
  import { DEFAULT_LOW_INTENSITY_WEIGHTS } from '../domain/routing/tier-features.js';
12
14
 
13
- export { DEFAULT_SAAR_CONFIG, resolveSaarConfigFromEnv } from '../domain/types/schemas.js';
15
+ export { DEFAULT_PLANNING_DELEGATE_CONFIG, DEFAULT_SAAR_CONFIG, resolvePlanningDelegateConfigFromEnv, resolveSaarConfigFromEnv } from '../domain/types/schemas.js';
14
16
 
15
- /** Merge operator env overrides onto defaults (SAAR section only today). */
17
+ /** Merge operator env overrides onto defaults (SAAR and planning delegate sections). */
16
18
  export function resolveOperatorConfigFromEnv(
17
19
  base: OperatorConfig = DEFAULT_OPERATOR_CONFIG,
18
20
  ): OperatorConfig {
19
21
  return {
20
22
  ...base,
21
23
  saar: resolveSaarConfigFromEnv(base.saar),
24
+ planning_delegate: resolvePlanningDelegateConfigFromEnv(base.planning_delegate),
22
25
  };
23
26
  }
24
27
 
@@ -49,4 +52,5 @@ export const DEFAULT_OPERATOR_CONFIG: Readonly<OperatorConfig> = {
49
52
  p_success_alpha: 0.5,
50
53
  },
51
54
  saar: DEFAULT_SAAR_CONFIG,
55
+ planning_delegate: DEFAULT_PLANNING_DELEGATE_CONFIG,
52
56
  } as const;
@@ -2,10 +2,17 @@
2
2
  * Pi model registry → ModelProfile mapper.
3
3
  *
4
4
  * Maps pi `Model` objects (provider + id) to router fleet entries using
5
- * pattern-based lookup for known families. Unknown models receive conservative
6
- * economical-cloud defaults.
5
+ * pattern-based lookup for known families. When `config/benchmark-profiles.json`
6
+ * contains a row for the model id (SP-134/136 ingest output), capability
7
+ * vectors are grounded in benchmark scores instead of regex defaults.
8
+ * Unknown models or missing benchmark rows receive conservative pattern defaults.
7
9
  */
8
10
 
11
+ import { existsSync, readFileSync } from 'node:fs';
12
+ import { resolve } from 'node:path';
13
+
14
+ import { z } from 'zod';
15
+
9
16
  import type {
10
17
  ModelCapabilities,
11
18
  ModelLimits,
@@ -15,6 +22,103 @@ import type {
15
22
  Tier,
16
23
  } from '../domain/types/entities.js';
17
24
 
25
+ /** Checked-in ingest artifact from `npm run routing:ingest-benchmarks` (SP-134). */
26
+ export const DEFAULT_BENCHMARK_PROFILES_PATH = resolve('config', 'benchmark-profiles.json');
27
+
28
+ const benchmarkCapabilitiesSchema = z.object({
29
+ reasoning: z.number().min(0).max(1),
30
+ code_gen: z.number().min(0).max(1),
31
+ tool_use: z.number().min(0).max(1),
32
+ });
33
+
34
+ const benchmarkModelRowSchema = z.object({
35
+ model_id: z.string().min(1),
36
+ capabilities: benchmarkCapabilitiesSchema,
37
+ });
38
+
39
+ const benchmarkProfilesArtifactSchema = z.object({
40
+ version: z.literal(1),
41
+ models: z.array(benchmarkModelRowSchema).min(1),
42
+ });
43
+
44
+ let benchmarkProfilesPathOverride: string | null | undefined;
45
+ let benchmarkCapabilitiesByModelId: ReadonlyMap<string, ModelCapabilities> | null | undefined;
46
+
47
+ /**
48
+ * Test hook — override benchmark artifact path (null disables benchmark grounding).
49
+ */
50
+ export function setBenchmarkProfilesPathForTests(filePath: string | null): void {
51
+ benchmarkProfilesPathOverride = filePath;
52
+ benchmarkCapabilitiesByModelId = undefined;
53
+ }
54
+
55
+ /** Test hook — clear cached benchmark artifact between cases. */
56
+ export function resetBenchmarkProfilesCacheForTests(): void {
57
+ benchmarkProfilesPathOverride = undefined;
58
+ benchmarkCapabilitiesByModelId = undefined;
59
+ }
60
+
61
+ function resolveBenchmarkProfilesPath(): string | null {
62
+ if (benchmarkProfilesPathOverride === null) {
63
+ return null;
64
+ }
65
+ return benchmarkProfilesPathOverride ?? DEFAULT_BENCHMARK_PROFILES_PATH;
66
+ }
67
+
68
+ function loadBenchmarkCapabilitiesMap(): ReadonlyMap<string, ModelCapabilities> | null {
69
+ if (benchmarkCapabilitiesByModelId !== undefined) {
70
+ return benchmarkCapabilitiesByModelId;
71
+ }
72
+
73
+ const filePath = resolveBenchmarkProfilesPath();
74
+ if (filePath === null || !existsSync(filePath)) {
75
+ benchmarkCapabilitiesByModelId = null;
76
+ return null;
77
+ }
78
+
79
+ try {
80
+ const raw = readFileSync(filePath, 'utf8');
81
+ const parsed: unknown = JSON.parse(raw);
82
+ const result = benchmarkProfilesArtifactSchema.safeParse(parsed);
83
+ if (!result.success) {
84
+ throw new Error(result.error.message);
85
+ }
86
+
87
+ const map = new Map<string, ModelCapabilities>();
88
+ for (const row of result.data.models) {
89
+ map.set(row.model_id, { ...row.capabilities });
90
+ }
91
+ benchmarkCapabilitiesByModelId = map;
92
+ return map;
93
+ } catch (err: unknown) {
94
+ console.warn('benchmark profiles artifact invalid; using regex capability defaults', {
95
+ path: filePath,
96
+ error: err instanceof Error ? err.message : String(err),
97
+ });
98
+ benchmarkCapabilitiesByModelId = null;
99
+ return null;
100
+ }
101
+ }
102
+
103
+ function lookupBenchmarkCapabilities(modelId: string): ModelCapabilities | undefined {
104
+ return loadBenchmarkCapabilitiesMap()?.get(modelId);
105
+ }
106
+
107
+ function withBenchmarkCapabilities(
108
+ defaults: ModelFamilyDefaults,
109
+ modelId: string,
110
+ ): ModelFamilyDefaults {
111
+ const grounded = lookupBenchmarkCapabilities(modelId);
112
+ if (grounded === undefined) {
113
+ return defaults;
114
+ }
115
+
116
+ return {
117
+ ...defaults,
118
+ capabilities: { ...grounded },
119
+ };
120
+ }
121
+
18
122
  /** Pi registry `Model.cost` shape — per-token USD rates. */
19
123
  export interface PiRegistryCost {
20
124
  readonly input: number;
@@ -262,19 +366,19 @@ export function mapPiModelToProfile(input: PiModelInput): ModelProfile {
262
366
  id: input.id,
263
367
  ...(input.name !== undefined ? { name: input.name } : {}),
264
368
  };
265
- return buildProfile(localInput, LOCAL_DEFAULTS);
369
+ return buildProfile(localInput, withBenchmarkCapabilities(LOCAL_DEFAULTS, input.id));
266
370
  }
267
371
 
268
372
  if (input.id === OPAQUE_FLEET_DEFAULT_ID) {
269
- return buildProfile(input, CURSOR_AUTO_DEFAULTS);
373
+ return buildProfile(input, withBenchmarkCapabilities(CURSOR_AUTO_DEFAULTS, input.id));
270
374
  }
271
375
 
272
376
  const matched = matchPatternRules(input.id);
273
377
  if (matched) {
274
- return buildProfile(input, matched);
378
+ return buildProfile(input, withBenchmarkCapabilities(matched, input.id));
275
379
  }
276
380
 
277
- return buildProfile(input, UNKNOWN_DEFAULTS);
381
+ return buildProfile(input, withBenchmarkCapabilities(UNKNOWN_DEFAULTS, input.id));
278
382
  }
279
383
 
280
384
  /**
@@ -1,13 +1,26 @@
1
1
  /**
2
- * HyDRA embedding input builder — SP-112, GitHub #60.
2
+ * HyDRA embedding input builder — SP-112, SP-138, GitHub #60, #76.
3
3
  *
4
- * Prefixes prompt text with session metadata so requirement vectors reflect
5
- * turn context, not only the latest user string.
4
+ * Prefixes the latest user turn with session metadata so requirement vectors
5
+ * reflect turn context, not only the latest user string. Prior assistant
6
+ * responses are excluded from the encoder body per HyDRA reference (#76).
6
7
  */
7
8
 
8
- import type { RoutingRequest } from '../types/index.js';
9
+ import type { Message, RoutingRequest } from '../types/index.js';
9
10
  import type { TriageResult } from '../triage/triage-engine.js';
10
11
 
12
+ const FAILURE_PATTERNS = [
13
+ 'error',
14
+ 'fail',
15
+ 'exception',
16
+ 'timed out',
17
+ 'timeout',
18
+ 'econnrefused',
19
+ 'enotfound',
20
+ 'econnreset',
21
+ 'epipe',
22
+ ] as const;
23
+
11
24
  function resolveMessageCount(request: RoutingRequest): number {
12
25
  return request.messages?.length ?? 0;
13
26
  }
@@ -28,10 +41,73 @@ function resolveTurnType(request: RoutingRequest): string {
28
41
  return request.turn_type ?? 'unknown';
29
42
  }
30
43
 
44
+ function resolveCompactionFlag(request: RoutingRequest): 0 | 1 {
45
+ return request.compaction_flag ? 1 : 0;
46
+ }
47
+
48
+ function looksLikeToolFailure(content: string): boolean {
49
+ const lower = content.toLowerCase();
50
+ return FAILURE_PATTERNS.some((pattern) => lower.includes(pattern));
51
+ }
52
+
53
+ /**
54
+ * Observational loop-pressure flag: 1 when the latest tool message looks
55
+ * like a failure. Mirrors loop-escalation heuristics without session pin state.
56
+ */
57
+ function resolveLoopPressure(request: RoutingRequest): 0 | 1 {
58
+ const messages = request.messages;
59
+ if (!messages || messages.length === 0) {
60
+ return 0;
61
+ }
62
+
63
+ for (let i = messages.length - 1; i >= 0; i--) {
64
+ const message = messages[i]!;
65
+ if (message.role === 'tool') {
66
+ return looksLikeToolFailure(message.content) ? 1 : 0;
67
+ }
68
+ }
69
+
70
+ return 0;
71
+ }
72
+
73
+ function messageHasAttachmentIndicator(message: Message): boolean {
74
+ if (message.tool_blocks && message.tool_blocks.length > 0) {
75
+ return true;
76
+ }
77
+
78
+ if (message.role !== 'user') {
79
+ return false;
80
+ }
81
+
82
+ const lower = message.content.toLowerCase();
83
+ return lower.includes('data:image');
84
+ }
85
+
86
+ function resolveAttachmentFlag(request: RoutingRequest): 0 | 1 {
87
+ return request.messages?.some((message) => messageHasAttachmentIndicator(message)) ? 1 : 0;
88
+ }
89
+
90
+ /**
91
+ * Latest user turn text only — excludes prior assistant responses (#76).
92
+ */
93
+ function resolveHydraPromptText(request: RoutingRequest): string {
94
+ const messages = request.messages;
95
+ if (messages) {
96
+ for (let i = messages.length - 1; i >= 0; i--) {
97
+ const message = messages[i]!;
98
+ if (message.role === 'user' && message.content.trim()) {
99
+ return message.content;
100
+ }
101
+ }
102
+ }
103
+
104
+ return request.prompt_text;
105
+ }
106
+
31
107
  /**
32
- * Build HyDRA encoder input: metadata prefix + prompt text.
108
+ * Build HyDRA encoder input: seven-flag metadata prefix + latest user text.
33
109
  *
34
- * Format: `[turns:N|tools:0|tokens:N|type:...] {prompt_text}`
110
+ * Format: `[turns:N|tools:0|tokens:N|type:...|compact:0|loop:0|attach:0] {text}`
35
111
  *
36
112
  * Metadata affects capability prediction only; tier selection uses the
37
113
  * cluster/feature gate (SP-103) separately.
@@ -47,7 +123,10 @@ export function buildHydraInput(
47
123
  `tools:${resolveHasToolContext(request) ? 1 : 0}`,
48
124
  `tokens:${resolveEstimatedInputTokens(request)}`,
49
125
  `type:${resolveTurnType(request)}`,
126
+ `compact:${resolveCompactionFlag(request)}`,
127
+ `loop:${resolveLoopPressure(request)}`,
128
+ `attach:${resolveAttachmentFlag(request)}`,
50
129
  ].join('|');
51
130
 
52
- return `[${flags}] ${request.prompt_text}`;
131
+ return `[${flags}] ${resolveHydraPromptText(request)}`;
53
132
  }