instar 1.3.742 → 1.3.743
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/IntelligenceRouter.d.ts +27 -0
- package/dist/core/IntelligenceRouter.d.ts.map +1 -1
- package/dist/core/IntelligenceRouter.js +51 -1
- package/dist/core/IntelligenceRouter.js.map +1 -1
- package/dist/data/llmBenchCoverage.d.ts +44 -0
- package/dist/data/llmBenchCoverage.d.ts.map +1 -1
- package/dist/data/llmBenchCoverage.js +36 -0
- package/dist/data/llmBenchCoverage.js.map +1 -1
- package/package.json +4 -2
- package/scripts/lint-no-opus-claude-cli-gating.js +226 -0
- package/scripts/lint-routing-registry-freshness.js +128 -0
- package/src/data/builtin-manifest.json +2 -2
- package/src/data/llmBenchCoverage.ts +83 -0
- package/src/scaffold/templates/jobs/instar/bench-refresh.md +47 -0
- package/upgrades/1.3.743.md +29 -0
- package/upgrades/side-effects/task4-bench-application.md +88 -0
|
@@ -174,6 +174,33 @@ export interface IntelligenceRouterOptions {
|
|
|
174
174
|
* Exported for direct unit testing (pure function, no router state).
|
|
175
175
|
*/
|
|
176
176
|
export declare function resolveSwapCap(target: IntelligenceFramework, globalCap: number | undefined, byFramework: Partial<Record<IntelligenceFramework, number>> | undefined, maxCap: number | undefined): number | undefined;
|
|
177
|
+
/**
|
|
178
|
+
* SAFETY GUARDRAIL — INSTAR-Bench v3, Task-4 S2 (bench rules R1/R2).
|
|
179
|
+
*
|
|
180
|
+
* The `capable` tier resolves to Opus on `claude-code`, and Opus-via-Claude-Code-CLI
|
|
181
|
+
* is the one MEASURED-BANNED route for bounded/gating verdicts: identical Opus 4.8
|
|
182
|
+
* scores 99.1% via clean API but 81.7% via the Claude Code CLI (a 17.4-pt door
|
|
183
|
+
* penalty), and on the emergency-stop classifier it missed canonical STOP commands
|
|
184
|
+
* (73%). The Claude Code harness wraps every prompt in ~20k tokens of "helpful
|
|
185
|
+
* coding agent" framing, turning a skeptical judge into a credulous assistant.
|
|
186
|
+
*
|
|
187
|
+
* A failure-swap only ever fires on a GATING or DEFERRABLE call (the swap loop is
|
|
188
|
+
* unreachable otherwise), and those are exactly the bounded-verdict calls R1
|
|
189
|
+
* forbids on that door. So when a swap lands on `claude-code` requesting the
|
|
190
|
+
* `capable` tier, we CLAMP the tier down to `balanced` (Sonnet 4.6 CLI — 99.5%,
|
|
191
|
+
* 28/28 adversarial, the sanctioned injection-safe Claude-CLI reserve). This only
|
|
192
|
+
* ever NARROWS a dangerous fallback (Opus→Sonnet on one specific door) — it is
|
|
193
|
+
* strictly the safe direction and never upgrades or blocks a call. It does NOT
|
|
194
|
+
* touch the CHAIN WRITE quality lane, where `claude-code`+Opus is the resolved
|
|
195
|
+
* PRIMARY framework (open-ended writing) rather than a bounded-verdict swap target.
|
|
196
|
+
*
|
|
197
|
+
* Returns the model tier the swap attempt should actually request, and whether a
|
|
198
|
+
* clamp occurred (so the caller can emit an audit/degrade note).
|
|
199
|
+
*/
|
|
200
|
+
export declare function clampClaudeCliSwapModel(target: IntelligenceFramework, requested: IntelligenceOptions['model'] | undefined): {
|
|
201
|
+
model: IntelligenceOptions['model'] | undefined;
|
|
202
|
+
clamped: boolean;
|
|
203
|
+
};
|
|
177
204
|
export declare class IntelligenceRouter implements IntelligenceProvider {
|
|
178
205
|
private readonly opts;
|
|
179
206
|
private readonly cache;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntelligenceRouter.d.ts","sourceRoot":"","sources":["../../src/core/IntelligenceRouter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"IntelligenceRouter.d.ts","sourceRoot":"","sources":["../../src/core/IntelligenceRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EACL,KAAK,iBAAiB,EAGvB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,yBAAyB;IACxC,iGAAiG;IACjG,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC,CAAC;IACvE,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAClD,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC9B;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,EAAE,EAAE,qBAAqB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CACL,IAAI,EAAE,aAAa,GAAG,YAAY,EAClC,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,EAC5C,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,6HAA6H;IAC7H,eAAe,EAAE,oBAAoB,CAAC;IACtC,8CAA8C;IAC9C,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,sHAAsH;IACtH,aAAa,EAAE,MAAM,yBAAyB,GAAG,SAAS,CAAC;IAC3D;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;OAOG;IACH,+BAA+B,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC;;;;;;;;OAQG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B;;;;OAIG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,qBAAqB,KAAK,oBAAoB,GAAG,IAAI,CAAC;IACjF,wGAAwG;IACxG,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC9C;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACxE,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE;QACP,mGAAmG;QACnG,oBAAoB,EAAE,MAAM,CAAC;QAC7B,sEAAsE;QACtE,cAAc,EAAE,OAAO,CAAC;QACxB,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,SAAS,EAAE,MAAM,CAAA;SAAE,CAAC;QACvG,kGAAkG;QAClG,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,iGAAiG;QACjG,qBAAqB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;CACH;AAmCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,EACvE,MAAM,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,GAAG,SAAS,CAMpB;AAuCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,qBAAqB,EAC7B,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,GAClD;IAAE,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAKvE;AAED,qBAAa,kBAAmB,YAAW,oBAAoB;IAMjD,OAAO,CAAC,QAAQ,CAAC,IAAI;IALjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqD;IAE3E,yFAAyF;IACzF,OAAO,CAAC,oBAAoB,CAAC,CAAc;gBAEd,IAAI,EAAE,yBAAyB;IAE5D;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAgB9B;;;;;OAKG;IACH,IAAI,gBAAgB,IAAI,qBAAqB,CAE5C;IAED,8EAA8E;IAC9E,gBAAgB,CACd,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,QAAQ,EAAE,iBAAiB,EAC3B,GAAG,EAAE,yBAAyB,GAAG,SAAS,GACzC,qBAAqB;IAQxB;;;OAGG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,GAAG;QAC5D,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,iBAAiB,CAAC;QAC5B,SAAS,EAAE,qBAAqB,CAAC;QACjC,SAAS,EAAE,OAAO,CAAC;KACpB;IAQD,+FAA+F;IAC/F,OAAO,CAAC,WAAW;IAcnB,4GAA4G;IAC5G,OAAO,CAAC,eAAe;IAIjB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+M9E;;;;;;;;;;OAUG;YACW,kBAAkB;CAoCjC"}
|
|
@@ -107,6 +107,35 @@ function isRateLimitError(e) {
|
|
|
107
107
|
return false;
|
|
108
108
|
return e.name === 'RateLimitError' || /rate.?limit|usage.?limit|too many requests|\b429\b/i.test(e.message);
|
|
109
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* SAFETY GUARDRAIL — INSTAR-Bench v3, Task-4 S2 (bench rules R1/R2).
|
|
112
|
+
*
|
|
113
|
+
* The `capable` tier resolves to Opus on `claude-code`, and Opus-via-Claude-Code-CLI
|
|
114
|
+
* is the one MEASURED-BANNED route for bounded/gating verdicts: identical Opus 4.8
|
|
115
|
+
* scores 99.1% via clean API but 81.7% via the Claude Code CLI (a 17.4-pt door
|
|
116
|
+
* penalty), and on the emergency-stop classifier it missed canonical STOP commands
|
|
117
|
+
* (73%). The Claude Code harness wraps every prompt in ~20k tokens of "helpful
|
|
118
|
+
* coding agent" framing, turning a skeptical judge into a credulous assistant.
|
|
119
|
+
*
|
|
120
|
+
* A failure-swap only ever fires on a GATING or DEFERRABLE call (the swap loop is
|
|
121
|
+
* unreachable otherwise), and those are exactly the bounded-verdict calls R1
|
|
122
|
+
* forbids on that door. So when a swap lands on `claude-code` requesting the
|
|
123
|
+
* `capable` tier, we CLAMP the tier down to `balanced` (Sonnet 4.6 CLI — 99.5%,
|
|
124
|
+
* 28/28 adversarial, the sanctioned injection-safe Claude-CLI reserve). This only
|
|
125
|
+
* ever NARROWS a dangerous fallback (Opus→Sonnet on one specific door) — it is
|
|
126
|
+
* strictly the safe direction and never upgrades or blocks a call. It does NOT
|
|
127
|
+
* touch the CHAIN WRITE quality lane, where `claude-code`+Opus is the resolved
|
|
128
|
+
* PRIMARY framework (open-ended writing) rather than a bounded-verdict swap target.
|
|
129
|
+
*
|
|
130
|
+
* Returns the model tier the swap attempt should actually request, and whether a
|
|
131
|
+
* clamp occurred (so the caller can emit an audit/degrade note).
|
|
132
|
+
*/
|
|
133
|
+
export function clampClaudeCliSwapModel(target, requested) {
|
|
134
|
+
if (target === 'claude-code' && requested === 'capable') {
|
|
135
|
+
return { model: 'balanced', clamped: true };
|
|
136
|
+
}
|
|
137
|
+
return { model: requested, clamped: false };
|
|
138
|
+
}
|
|
110
139
|
export class IntelligenceRouter {
|
|
111
140
|
opts;
|
|
112
141
|
cache = new Map();
|
|
@@ -316,9 +345,30 @@ export class IntelligenceRouter {
|
|
|
316
345
|
// otherwise-UNcapped attempt (no per-target cap, global ≤0/unset).
|
|
317
346
|
cap = cap === undefined ? remaining : Math.min(cap, remaining);
|
|
318
347
|
}
|
|
348
|
+
// SAFETY (S2, R1/R2): a bounded/gating swap onto claude-code that requests
|
|
349
|
+
// the `capable` tier would resolve to Opus-via-Claude-CLI — the measured-banned
|
|
350
|
+
// door (81.7% vs 99.1% API). Clamp it down to `balanced` (Sonnet CLI reserve).
|
|
351
|
+
// Only ever narrows a dangerous fallback; never upgrades/blocks a call.
|
|
352
|
+
const { model: clampedModel, clamped: modelClamped } = clampClaudeCliSwapModel(target, options?.model);
|
|
353
|
+
if (modelClamped) {
|
|
354
|
+
this.opts.onDegrade?.({
|
|
355
|
+
component: component ?? '(none)',
|
|
356
|
+
category,
|
|
357
|
+
from: framework,
|
|
358
|
+
to: target,
|
|
359
|
+
reason: `failure-swap-model-clamp: '${target}' capable→balanced ` +
|
|
360
|
+
`(Opus-via-Claude-CLI is banned for bounded/gating verdicts — R1/R2)`,
|
|
361
|
+
});
|
|
362
|
+
}
|
|
319
363
|
// Pass the cap through as the provider's per-call timeout so the subprocess
|
|
320
364
|
// self-terminates at the bound (no AbortSignal exists on IntelligenceOptions).
|
|
321
|
-
const attemptOptions = cap !== undefined
|
|
365
|
+
const attemptOptions = cap !== undefined || modelClamped
|
|
366
|
+
? {
|
|
367
|
+
...(options ?? {}),
|
|
368
|
+
...(cap !== undefined ? { timeoutMs: cap } : {}),
|
|
369
|
+
...(modelClamped ? { model: clampedModel } : {}),
|
|
370
|
+
}
|
|
371
|
+
: options;
|
|
322
372
|
try {
|
|
323
373
|
// withSwapTimeout keeps the shipped, crash-safe Promise.race pattern
|
|
324
374
|
// (InputGuard precedent): it attaches a settlement handler to EACH input,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntelligenceRouter.js","sourceRoot":"","sources":["../../src/core/IntelligenceRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,EAEL,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AA4IlC;;;;;GAKG;AACH,MAAM,gBAAgB,GAAwB,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE5G,mGAAmG;AACnG,MAAM,mCAAmC,GAAG,OAAO,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC;;;;;GAKG;AACH,SAAS,SAAS,CAAC,CAAU;IAC3B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA6B,EAC7B,SAA6B,EAC7B,WAAuE,EACvE,MAA0B;IAE1B,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAmC,CAAC;IAChF,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,eAAe,CAAI,OAAmB,EAAE,KAAa,EAAE,MAAc;IAClF,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/B,KAAK,GAAG,UAAU,CAChB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,MAAM,KAAK,KAAK,KAAK,CAAC,CAAC,EACvE,KAAK,CACN,CAAC;YACJ,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,CAAU;IAClC,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,qDAAqD,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC9G,CAAC;AAED,MAAM,OAAO,kBAAkB;IAMA;IALZ,KAAK,GAAG,IAAI,GAAG,EAA0C,CAAC;IAE3E,yFAAyF;IACjF,oBAAoB,CAAe;IAE3C,YAA6B,IAA+B;QAA/B,SAAI,GAAJ,IAAI,CAA2B;IAAG,CAAC;IAEhE;;;;;;OAMG;IACK,sBAAsB,CAC5B,WAAuE;QAEvE,IAAI,CAAC,WAAW;YAAE,OAAO;QACzB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACxC,IAAI,CAAC,IAAI,CAAC,oBAAoB;gBAAE,IAAI,CAAC,oBAAoB,GAAG,IAAI,GAAG,EAAE,CAAC;YACtE,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YACjD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,OAAO,CAAC,IAAI,CACV,8CAA8C,GAAG,yCAAyC;gBACxF,0EAA0E,CAC7E,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACpC,CAAC;IAED,8EAA8E;IAC9E,gBAAgB,CACd,SAA6B,EAC7B,QAA2B,EAC3B,GAA0C;QAE1C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC5C,IAAI,SAAS,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;YAAE,OAAO,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,OAAO,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,GAAG,CAAC,SAAiB,EAAE,gBAAoC;QAMzD,MAAM,QAAQ,GAAG,gBAAgB,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;QACzG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IACvD,CAAC;IAED,+FAA+F;IACvF,WAAW,CAAC,SAAgC;QAClD,IAAI,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;QAC/E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,QAAQ,CAAC;QACnC,IAAI,QAAQ,GAAgC,IAAI,CAAC;QACjD,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,IAAI,CAAC,CAAC,oDAAoD;QACvE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4GAA4G;IACpG,eAAe,CAAC,SAAgC;QACtD,OAAO,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC5G,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAA6B;QAC1D,MAAM,SAAS,GAAG,OAAO,EAAE,WAAW,EAAE,SAAS,CAAC;QAClD,MAAM,gBAAgB,GAAI,OAAO,EAAE,WAAkD,EAAE,QAAQ,CAAC;QAChG,MAAM,QAAQ,GAAsB,mBAAmB,CAAC,gBAAgB,CAAC;YACvE,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAEpC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACtC,2CAA2C;QAC3C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAEhD,mFAAmF;QACnF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CACb,kCAAkC,SAAS,oBAAoB,SAAS,IAAI,QAAQ,IAAI;oBACtF,wCAAwC,CAC3C,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,SAAS,EAAE,SAAS,IAAI,QAAQ;gBAChC,QAAQ;gBACR,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB;gBAC9B,MAAM,EAAE,cAAc,SAAS,kEAAkE;aAClG,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7D,CAAC;QAED,8EAA8E;QAC9E,6EAA6E;QAC7E,gFAAgF;QAChF,iFAAiF;QACjF,+EAA+E;QAC/E,8EAA8E;QAC9E,MAAM,MAAM,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;QACrD,mGAAmG;QACnG,6FAA6F;QAC7F,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,OAAO,EAAE,WAAW,EAAE,UAAU,KAAK,IAAI,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,0FAA0F;QAC1F,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,4FAA4F;QAC5F,iGAAiG;QACjG,MAAM,gBAAgB,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjG,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,oDAAoD;YAC9G,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,GAAG,GAAG,QAAQ,CAAC;YACf,2FAA2F;YAC3F,4FAA4F;YAC5F,6FAA6F;YAC7F,8CAA8C;YAC9C,IAAI,UAAU,IAAI,MAAM,EAAE,cAAc,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;gBACzB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;oBACzD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;oBAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;oBACxF,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;wBACnG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,sCAAsC;wBAChG,OAAO,QAAQ,CAAC;oBAClB,CAAC;oBAAC,OAAO,QAAQ,EAAE,CAAC;wBAClB,GAAG,GAAG,QAAQ,CAAC;wBACf,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;4BAAE,MAAM,CAAC,8CAA8C;oBACxF,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,+FAA+F;gBAC/F,8FAA8F;gBAC9F,6DAA6D;gBAC7D,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;oBAC9G,IAAI,CAAC,CAAC,EAAE;wBAAE,OAAO,CAAC,CAAC,MAAM,CAAC;gBAC5B,CAAC;gBACD,0FAA0F;gBAC1F,yEAAyE;gBACzE,IAAI,CAAC,MAAM;oBAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,CAAC,CAAC;gBAClF,MAAM,GAAG,CAAC,CAAC,kEAAkE;YAC/E,CAAC;YACD,iEAAiE;YACjE,4EAA4E;YAC5E,wEAAwE;YACxE,4EAA4E;YAC5E,4EAA4E;YAC5E,+EAA+E;YAC/E,+EAA+E;YAC/E,gFAAgF;YAChF,+EAA+E;YAC/E,mFAAmF;YACnF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC;YAC9D,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;YACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;YAClG,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;YACzE,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC;YACrC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;gBACjC,0FAA0F;gBAC1F,2FAA2F;gBAC3F,6DAA6D;gBAC7D,IAAI,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB;oBAAE,MAAM;gBAC3E,IAAI,MAAM,KAAK,SAAS;oBAAE,SAAS,CAAC,6CAA6C;gBACjF,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,CAAC,EAAE;oBAAE,SAAS,CAAC,+BAA+B;gBAClD,IAAI,GAAG,GAAG,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;gBACrE,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,MAAM,SAAS,GAAG,QAAQ,GAAG,CAAC,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC;oBAC9D,2EAA2E;oBAC3E,IAAI,SAAS,IAAI,4BAA4B;wBAAE,MAAM;oBACrD,wEAAwE;oBACxE,oEAAoE;oBACpE,yEAAyE;oBACzE,mEAAmE;oBACnE,GAAG,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACjE,CAAC;gBACD,4EAA4E;gBAC5E,+EAA+E;gBAC/E,MAAM,cAAc,GAClB,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACvE,IAAI,CAAC;oBACH,qEAAqE;oBACrE,0EAA0E;oBAC1E,uEAAuE;oBACvE,uEAAuE;oBACvE,wEAAwE;oBACxE,8CAA8C;oBAC9C,MAAM,MAAM,GACV,GAAG,KAAK,SAAS;wBACf,CAAC,CAAC,MAAM,eAAe,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC;wBACzE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;oBAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;wBACpB,SAAS,EAAE,SAAS,IAAI,QAAQ;wBAChC,QAAQ;wBACR,IAAI,EAAE,SAAS;wBACf,EAAE,EAAE,MAAM;wBACV,MAAM,EAAE,kBAAkB,SAAS,aAAa,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,iBAAiB,MAAM,GAAG;qBACvH,CAAC,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,sCAAsC;oBAChG,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,2EAA2E;oBAC3E,2EAA2E;oBAC3E,qEAAqE;oBACrE,IACE,UAAU,YAAY,KAAK;wBAC3B,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,CAAC,EACtD,CAAC;wBACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;4BACpB,SAAS,EAAE,SAAS,IAAI,QAAQ;4BAChC,QAAQ;4BACR,IAAI,EAAE,SAAS;4BACf,EAAE,EAAE,MAAM;4BACV,MAAM,EAAE,yBAAyB,MAAM,EAAE;yBAC1C,CAAC,CAAC;oBACL,CAAC;oBACD,SAAS,CAAC,uEAAuE;gBACnF,CAAC;YACH,CAAC;YACD,8FAA8F;YAC9F,6FAA6F;YAC7F,4FAA4F;YAC5F,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAC9G,IAAI,CAAC,CAAC,EAAE;oBAAE,OAAO,CAAC,CAAC,MAAM,CAAC;YAC5B,CAAC;YACD,iFAAiF;YACjF,8FAA8F;YAC9F,yFAAyF;YACzF,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,CAAC,CAAC;YAClF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,CAAC,kBAAkB,CAC9B,OAA6B,EAC7B,MAAc,EACd,OAAwC,EACxC,SAAiB,EACjB,SAAgC,EAChC,QAA2B;QAE3B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY;YAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,CAAC,qBAAqB,IAAI,CAAC,CAAC;QAChD,MAAM,cAAc,GAClB,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;YAC7F,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,SAAS;gBACT,QAAQ;gBACR,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,SAAS;gBACb,MAAM,EAAE,6EAA6E;aACtF,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,6CAA6C;YAC3F,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,SAAS;gBACT,QAAQ;gBACR,IAAI,EAAE,SAAS;gBACf,EAAE,EAAE,SAAS;gBACb,MAAM,EAAE,0GAA0G;aACnH,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"IntelligenceRouter.js","sourceRoot":"","sources":["../../src/core/IntelligenceRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,4 +61,48 @@ export type ParserContractFlag = {
|
|
|
61
61
|
false: string;
|
|
62
62
|
};
|
|
63
63
|
export declare const LLM_PARSER_CONTRACT: Readonly<Record<string, ParserContractFlag>>;
|
|
64
|
+
/**
|
|
65
|
+
* Routing nature/chain map — INSTAR-Bench v3 (2026-07-03) JOIN between bench
|
|
66
|
+
* COVERAGE (does a component have a benchmark?) and bench-cited ROUTING (which
|
|
67
|
+
* task-nature did the bench establish it is, and which production chain should
|
|
68
|
+
* it ride?). This is the G1 join of Task-4 Piece 3: `LLM_BENCH_COVERAGE` says
|
|
69
|
+
* "benched"; THIS map says "benched, and here is the winner-nature the v3 bench
|
|
70
|
+
* established for it" — so routing (not just existence) is benchmark-cited.
|
|
71
|
+
*
|
|
72
|
+
* NATURE (task-nature taxonomy — docs/LLM-ROUTING-REGISTRY.md §taxonomy):
|
|
73
|
+
* A = simple bounded verdict (classify / boolean gate / strict-JSON extract —
|
|
74
|
+
* one right answer, terse; speed + format-obedience; reasoning models CLIP)
|
|
75
|
+
* B = nuanced / critical judgment (safety gate, irreversible-action class,
|
|
76
|
+
* completion-stop judge — being RIGHT beats fast/cheap)
|
|
77
|
+
* D = high-volume background (digests, batch classify, summaries, doc-tree)
|
|
78
|
+
* E = deep unbounded reasoning (rare; no output-budget pressure)
|
|
79
|
+
* CHAIN (the four production default→fallback ladders — ELI16 §11):
|
|
80
|
+
* FAST = latency-sensitive quick-sort (Flash-Lite → GPT-5.4 API → … )
|
|
81
|
+
* SORT = background quick-sort (GPT-5.4-mini codex → GPT-5.5 pi → …)
|
|
82
|
+
* JUDGE = careful judgment (GPT-5.5 pi → … → Opus-4.8 API, NEVER CLI)
|
|
83
|
+
* WRITE = open-ended writing (GPT-5.4-mini codex → … → Opus-4.8 CLI)
|
|
84
|
+
*
|
|
85
|
+
* SCOPE — deliberately advisory + NOT (yet) exhaustive over COMPONENT_CATEGORY.
|
|
86
|
+
* This map covers the components whose task-nature the v3 bench established
|
|
87
|
+
* UNAMBIGUOUSLY (a single nature letter in the registry's callsite inventory).
|
|
88
|
+
* Genuinely multi-nature callsites (A/B, B/D) and the router-bypass callsites
|
|
89
|
+
* are left for S4 (the nature-axis router), which ACTUATES this data into
|
|
90
|
+
* IntelligenceRouter model selection and therefore touches critical-gate
|
|
91
|
+
* routing — spec-converge + operator-review gated. Adding an entry HERE changes
|
|
92
|
+
* NO routing today; it is read-only, bench-cited metadata those pieces consume.
|
|
93
|
+
*
|
|
94
|
+
* Ratchet — tests/unit/llm-routing-nature-ratchet.test.ts — enforces:
|
|
95
|
+
* - every key exists in COMPONENT_CATEGORY (no dangling routing claim),
|
|
96
|
+
* - every key present here is bench-COVERED in LLM_BENCH_COVERAGE (you may not
|
|
97
|
+
* cite a routing nature for an unbenched component — cite-the-bench),
|
|
98
|
+
* - nature ∈ {A,B,D,E}, chain ∈ {FAST,SORT,JUDGE,WRITE},
|
|
99
|
+
* - nature→chain coherence: A→FAST|SORT, B→JUDGE, D→SORT|WRITE, E→JUDGE.
|
|
100
|
+
*/
|
|
101
|
+
export type TaskNature = 'A' | 'B' | 'D' | 'E';
|
|
102
|
+
export type RoutingChain = 'FAST' | 'SORT' | 'JUDGE' | 'WRITE';
|
|
103
|
+
export interface RoutingNature {
|
|
104
|
+
readonly nature: TaskNature;
|
|
105
|
+
readonly chain: RoutingChain;
|
|
106
|
+
}
|
|
107
|
+
export declare const LLM_ROUTING_NATURE: Readonly<Record<string, RoutingNature>>;
|
|
64
108
|
//# sourceMappingURL=llmBenchCoverage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmBenchCoverage.d.ts","sourceRoot":"","sources":["../../src/data/llmBenchCoverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvB,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAqFtE,CAAC;AA4BF,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAiF5E,CAAC;AA+CF;;;;6EAI6E;AAC7E,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;AAE3E,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,SAAS,CAIhD,CAAC;AAEF;;;;oFAIoF;AACpF,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAmExE,CAAC;AAgDF,MAAM,MAAM,kBAAkB,GAC1B;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAAA;CAAE,GAClD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtB,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAmJ5E,CAAC"}
|
|
1
|
+
{"version":3,"file":"llmBenchCoverage.d.ts","sourceRoot":"","sources":["../../src/data/llmBenchCoverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAAE,GAChC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvB,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAqFtE,CAAC;AA4BF,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAiF5E,CAAC;AA+CF;;;;6EAI6E;AAC7E,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,aAAa,GAAG,cAAc,CAAC;AAE3E,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,SAAS,CAIhD,CAAC;AAEF;;;;oFAIoF;AACpF,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GAAG,KAAK,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAmExE,CAAC;AAgDF,MAAM,MAAM,kBAAkB,GAC1B;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAAA;CAAE,GAClD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtB,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAmJ5E,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAC/C,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAC/D,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAED,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAqCtE,CAAC"}
|
|
@@ -356,4 +356,40 @@ export const LLM_PARSER_CONTRACT = {
|
|
|
356
356
|
false: 'enriches standards-coverage rows with content — no closed taught verdict vocabulary a prompt promises and a parser accepts',
|
|
357
357
|
},
|
|
358
358
|
};
|
|
359
|
+
export const LLM_ROUTING_NATURE = {
|
|
360
|
+
// ── Nature A — bounded verdicts (background → SORT; latency-critical → FAST) ──
|
|
361
|
+
// MessageSentinel = the emergency-stop classifier: latency-critical AND rule
|
|
362
|
+
// R2 (never rides Opus-via-Claude-CLI — missed canonical STOPs at 73%).
|
|
363
|
+
MessageSentinel: { nature: 'A', chain: 'FAST' },
|
|
364
|
+
// Usher = per-turn topic routing: latency-sensitive quick-sort.
|
|
365
|
+
Usher: { nature: 'A', chain: 'FAST' },
|
|
366
|
+
CommitmentSentinel: { nature: 'A', chain: 'SORT' },
|
|
367
|
+
TemporalCoherenceChecker: { nature: 'A', chain: 'SORT' },
|
|
368
|
+
PresenceProxy: { nature: 'A', chain: 'SORT' },
|
|
369
|
+
ResumeQueueDrainer: { nature: 'A', chain: 'SORT' },
|
|
370
|
+
PromptGate: { nature: 'A', chain: 'SORT' },
|
|
371
|
+
WarrantsReplyGate: { nature: 'A', chain: 'SORT' },
|
|
372
|
+
InputClassifier: { nature: 'A', chain: 'SORT' },
|
|
373
|
+
TelegramAdapter: { nature: 'A', chain: 'SORT' },
|
|
374
|
+
SlackAdapter: { nature: 'A', chain: 'SORT' },
|
|
375
|
+
OverrideDetector: { nature: 'A', chain: 'SORT' },
|
|
376
|
+
TaskClassifier: { nature: 'A', chain: 'SORT' },
|
|
377
|
+
ResumeValidator: { nature: 'A', chain: 'SORT' },
|
|
378
|
+
TopicIntentExtractor: { nature: 'A', chain: 'SORT' },
|
|
379
|
+
// ── Nature B — critical judgment gates (→ JUDGE; Opus only via API, never CLI) ──
|
|
380
|
+
MessagingToneGate: { nature: 'B', chain: 'JUDGE' },
|
|
381
|
+
CompletionEvaluator: { nature: 'B', chain: 'JUDGE' },
|
|
382
|
+
ExternalOperationGate: { nature: 'B', chain: 'JUDGE' },
|
|
383
|
+
LLMSanitizer: { nature: 'B', chain: 'JUDGE' },
|
|
384
|
+
CoherenceReviewer: { nature: 'B', chain: 'JUDGE' },
|
|
385
|
+
InputGuard: { nature: 'B', chain: 'JUDGE' },
|
|
386
|
+
StallTriageNurse: { nature: 'B', chain: 'JUDGE' },
|
|
387
|
+
ProjectDriftChecker: { nature: 'B', chain: 'JUDGE' },
|
|
388
|
+
SessionWatchdog: { nature: 'B', chain: 'JUDGE' },
|
|
389
|
+
UnjustifiedStopGate: { nature: 'B', chain: 'JUDGE' },
|
|
390
|
+
// ── Nature D — background digests/summaries (→ SORT; R7 redaction on secret-bearing) ──
|
|
391
|
+
SessionActivitySentinel: { nature: 'D', chain: 'SORT' },
|
|
392
|
+
SessionSummarySentinel: { nature: 'D', chain: 'SORT' },
|
|
393
|
+
'correction-learning': { nature: 'D', chain: 'SORT' },
|
|
394
|
+
};
|
|
359
395
|
//# sourceMappingURL=llmBenchCoverage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmBenchCoverage.js","sourceRoot":"","sources":["../../src/data/llmBenchCoverage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"llmBenchCoverage.js","sourceRoot":"","sources":["../../src/data/llmBenchCoverage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "instar",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.743",
|
|
4
4
|
"description": "Coherence infrastructure for self-evolving AI agents — on the Claude Code or Codex subscription you already have.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
"test:contract": "node scripts/run-contract-tests.js",
|
|
29
29
|
"test:contract:raw": "vitest run --config vitest.contract.config.ts",
|
|
30
30
|
"test:all": "vitest run && vitest run --config vitest.integration.config.ts && vitest run --config vitest.e2e.config.ts",
|
|
31
|
-
"lint": "tsc --noEmit && node scripts/lint-no-direct-destructive.js && node scripts/lint-no-direct-llm-http.js && node scripts/lint-no-direct-url-log.js && node scripts/lint-no-unfunneled-topic-creation.js && node scripts/lint-no-unfunneled-headless-launch.js && node scripts/lint-no-unbounded-llm-spawn.js && node scripts/lint-no-unfunneled-credential-write.js && node scripts/lint-state-registry.js && node scripts/lint-store-retention-declared.js && node scripts/lint-no-wholefile-sync-read.js && node scripts/lint-cas-emit-placement.js && node scripts/lint-journal-actuation-ban.js && node scripts/lint-no-blocking-process-scans.js && node scripts/lint-sync-subprocess-chokepoint.js && node scripts/lint-dev-agent-dark-gate.js && node scripts/lint-guard-manifest.js && node scripts/lint-llm-attribution.js && node scripts/lint-no-mainthread-cartographer-walk.js && node scripts/lint-scrape-fixture-realness.js && node scripts/check-codex-rule1-drift.js",
|
|
31
|
+
"lint": "tsc --noEmit && node scripts/lint-no-direct-destructive.js && node scripts/lint-no-direct-llm-http.js && node scripts/lint-no-direct-url-log.js && node scripts/lint-no-unfunneled-topic-creation.js && node scripts/lint-no-unfunneled-headless-launch.js && node scripts/lint-no-unbounded-llm-spawn.js && node scripts/lint-no-unfunneled-credential-write.js && node scripts/lint-state-registry.js && node scripts/lint-store-retention-declared.js && node scripts/lint-no-wholefile-sync-read.js && node scripts/lint-cas-emit-placement.js && node scripts/lint-journal-actuation-ban.js && node scripts/lint-no-blocking-process-scans.js && node scripts/lint-sync-subprocess-chokepoint.js && node scripts/lint-dev-agent-dark-gate.js && node scripts/lint-guard-manifest.js && node scripts/lint-llm-attribution.js && node scripts/lint-no-mainthread-cartographer-walk.js && node scripts/lint-scrape-fixture-realness.js && node scripts/check-codex-rule1-drift.js && node scripts/lint-routing-registry-freshness.js && node scripts/lint-no-opus-claude-cli-gating.js",
|
|
32
|
+
"lint:routing-registry": "node scripts/lint-routing-registry-freshness.js",
|
|
33
|
+
"lint:no-opus-claude-cli-gating": "node scripts/lint-no-opus-claude-cli-gating.js",
|
|
32
34
|
"lint:no-unbounded-llm-spawn": "node scripts/lint-no-unbounded-llm-spawn.js",
|
|
33
35
|
"lint:no-unbounded-llm-spawn:staged": "node scripts/lint-no-unbounded-llm-spawn.js --staged",
|
|
34
36
|
"lint:destructive": "node scripts/lint-no-direct-destructive.js",
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* lint-no-opus-claude-cli-gating.js — INSTAR-Bench v3, Task-4 S2 (bench rules R1/R2).
|
|
4
|
+
*
|
|
5
|
+
* Opus-via-Claude-Code-CLI is the one MEASURED-BANNED route for bounded/gating
|
|
6
|
+
* verdicts: identical Opus 4.8 scores 99.1% via clean API vs 81.7% via the Claude
|
|
7
|
+
* Code CLI (a 17.4-pt door penalty), and on the emergency-stop classifier it missed
|
|
8
|
+
* canonical STOP commands (73%). The Claude Code harness wraps every prompt in ~20k
|
|
9
|
+
* tokens of "helpful coding agent" framing, turning a skeptical judge into a
|
|
10
|
+
* credulous assistant. R1 forbids routing bounded verdicts through that door; R2
|
|
11
|
+
* forbids the emergency-stop classifier on it specifically.
|
|
12
|
+
*
|
|
13
|
+
* This lint enforces the ban STRUCTURALLY, in two prongs:
|
|
14
|
+
*
|
|
15
|
+
* PRONG A — the runtime guardrail must stay intact. The IntelligenceRouter clamps
|
|
16
|
+
* a bounded/gating failure-swap onto `claude-code` from the `capable` tier
|
|
17
|
+
* (=Opus) down to `balanced` (=Sonnet CLI reserve). If someone deletes that
|
|
18
|
+
* clamp, a swap could once again land Opus-via-CLI on a gate. The lint fails if
|
|
19
|
+
* the `clampClaudeCliSwapModel` guardrail is missing from src/core/
|
|
20
|
+
* IntelligenceRouter.ts or is no longer invoked in the swap loop. Structure >
|
|
21
|
+
* Willpower: the guard cannot be silently removed.
|
|
22
|
+
*
|
|
23
|
+
* PRONG B — no committed config statically routes a gating call to opus×claude-CLI.
|
|
24
|
+
* Scans committed JSON config for the dangerous COMBINATION: `frameworkDefaultModels
|
|
25
|
+
* ['claude-code']` set to an Opus model AND `claude-code` reachable as a gating
|
|
26
|
+
* route (listed in `componentFrameworks.failureSwap`, or set as the framework for
|
|
27
|
+
* the `sentinel`/`gate` categories, or a per-component override). Either alone is
|
|
28
|
+
* fine (Opus-CLI as the CHAIN WRITE quality lane is legitimate); the two together
|
|
29
|
+
* are the banned bounded-verdict route.
|
|
30
|
+
*
|
|
31
|
+
* Exit codes: 0 — clean; 1 — guardrail missing (A) or a dangerous config found (B).
|
|
32
|
+
*
|
|
33
|
+
* Usage:
|
|
34
|
+
* node scripts/lint-no-opus-claude-cli-gating.js
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
import fs from 'node:fs';
|
|
38
|
+
import path from 'node:path';
|
|
39
|
+
import { fileURLToPath } from 'node:url';
|
|
40
|
+
|
|
41
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
42
|
+
const __dirname = path.dirname(__filename);
|
|
43
|
+
const ROOT = path.resolve(__dirname, '..');
|
|
44
|
+
|
|
45
|
+
const ROUTER_SRC = path.join(ROOT, 'src', 'core', 'IntelligenceRouter.ts');
|
|
46
|
+
|
|
47
|
+
/** Model ids / tier aliases that resolve to Opus on claude-code. */
|
|
48
|
+
const OPUS_MODELS = ['capable', 'opus', 'claude-opus'];
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* PRONG A — the router still contains AND invokes the R1/R2 clamp guardrail.
|
|
52
|
+
* @param {string} routerSrc
|
|
53
|
+
* @returns {string[]} problems (empty = OK)
|
|
54
|
+
*/
|
|
55
|
+
export function checkGuardrailIntact(routerSrc) {
|
|
56
|
+
const problems = [];
|
|
57
|
+
// The helper must be DEFINED (exported for its unit test) …
|
|
58
|
+
if (!/export function clampClaudeCliSwapModel\b/.test(routerSrc)) {
|
|
59
|
+
problems.push(
|
|
60
|
+
'src/core/IntelligenceRouter.ts: the R1/R2 guardrail `clampClaudeCliSwapModel` is missing — ' +
|
|
61
|
+
'a bounded/gating failure-swap could once again resolve to Opus-via-Claude-CLI.',
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
// … AND invoked inside the swap path (a defined-but-unused helper guards nothing).
|
|
65
|
+
const invocations = (routerSrc.match(/clampClaudeCliSwapModel\s*\(/g) || []).length;
|
|
66
|
+
// One for the `export function` signature, at least one real call site.
|
|
67
|
+
if (invocations < 2) {
|
|
68
|
+
problems.push(
|
|
69
|
+
'src/core/IntelligenceRouter.ts: `clampClaudeCliSwapModel` is defined but never invoked in the ' +
|
|
70
|
+
'failure-swap loop — the R1/R2 clamp is inert. Wire it where the swap `attemptOptions` is built.',
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
return problems;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @param {unknown} model
|
|
78
|
+
* @returns {boolean} true if this model string resolves to Opus.
|
|
79
|
+
*/
|
|
80
|
+
function isOpusModel(model) {
|
|
81
|
+
if (typeof model !== 'string') return false;
|
|
82
|
+
const m = model.toLowerCase();
|
|
83
|
+
return OPUS_MODELS.some((o) => m.includes(o));
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Extract a `componentFrameworks`-shaped block from a parsed config object,
|
|
88
|
+
* checking both the top level and the `sessions` nesting used in .instar/config.json.
|
|
89
|
+
* @param {any} cfg
|
|
90
|
+
* @returns {{ componentFrameworks?: any, frameworkDefaultModels?: any } | null}
|
|
91
|
+
*/
|
|
92
|
+
function extractRoutingConfig(cfg) {
|
|
93
|
+
if (!cfg || typeof cfg !== 'object') return null;
|
|
94
|
+
const sessions = cfg.sessions && typeof cfg.sessions === 'object' ? cfg.sessions : {};
|
|
95
|
+
const componentFrameworks = cfg.componentFrameworks ?? sessions.componentFrameworks;
|
|
96
|
+
const frameworkDefaultModels = cfg.frameworkDefaultModels ?? sessions.frameworkDefaultModels;
|
|
97
|
+
if (componentFrameworks === undefined && frameworkDefaultModels === undefined) return null;
|
|
98
|
+
return { componentFrameworks, frameworkDefaultModels };
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* PRONG B — is `claude-code` reachable as a GATING route in this componentFrameworks
|
|
103
|
+
* block? (failureSwap tail, or the framework for a gate/sentinel category, or an override.)
|
|
104
|
+
* @param {any} componentFrameworks
|
|
105
|
+
* @returns {boolean}
|
|
106
|
+
*/
|
|
107
|
+
function claudeCodeIsGatingRoute(componentFrameworks) {
|
|
108
|
+
if (!componentFrameworks || typeof componentFrameworks !== 'object') return false;
|
|
109
|
+
const cf = componentFrameworks;
|
|
110
|
+
if (Array.isArray(cf.failureSwap) && cf.failureSwap.includes('claude-code')) return true;
|
|
111
|
+
if (cf.categories && typeof cf.categories === 'object') {
|
|
112
|
+
if (cf.categories.gate === 'claude-code' || cf.categories.sentinel === 'claude-code') return true;
|
|
113
|
+
}
|
|
114
|
+
if (cf.overrides && typeof cf.overrides === 'object') {
|
|
115
|
+
if (Object.values(cf.overrides).includes('claude-code')) return true;
|
|
116
|
+
}
|
|
117
|
+
if (cf.default === 'claude-code') return true;
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* PRONG B — evaluate one parsed config object. Returns a reason string if it routes
|
|
123
|
+
* a gating call to Opus×claude-CLI, else null.
|
|
124
|
+
* @param {any} cfg
|
|
125
|
+
* @returns {string | null}
|
|
126
|
+
*/
|
|
127
|
+
export function checkConfigObject(cfg) {
|
|
128
|
+
const routing = extractRoutingConfig(cfg);
|
|
129
|
+
if (!routing) return null;
|
|
130
|
+
const claudeDefault = routing.frameworkDefaultModels?.['claude-code'];
|
|
131
|
+
if (!isOpusModel(claudeDefault)) return null; // claude-code default isn't Opus → safe
|
|
132
|
+
if (!claudeCodeIsGatingRoute(routing.componentFrameworks)) return null; // not a gating route → safe
|
|
133
|
+
return (
|
|
134
|
+
`frameworkDefaultModels['claude-code'] = '${claudeDefault}' (Opus) AND claude-code is reachable as a ` +
|
|
135
|
+
`gating route (failureSwap / gate|sentinel category / override) — this is the banned Opus×claude-CLI ` +
|
|
136
|
+
`bounded-verdict door (R1/R2). Use a non-Opus tier for the claude-code gating fallback (sonnet/haiku), ` +
|
|
137
|
+
`or remove claude-code from the gating route.`
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Recursively collect committed JSON config files worth scanning. We only care
|
|
143
|
+
* about files that could carry a componentFrameworks block; scanning every JSON in
|
|
144
|
+
* the tree is wasteful and node_modules is excluded.
|
|
145
|
+
* @param {string} dir
|
|
146
|
+
* @param {string[]} acc
|
|
147
|
+
*/
|
|
148
|
+
function collectConfigJson(dir, acc) {
|
|
149
|
+
let entries;
|
|
150
|
+
try {
|
|
151
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
152
|
+
} catch {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
for (const e of entries) {
|
|
156
|
+
if (e.name === 'node_modules' || e.name === '.git' || e.name === 'dist') continue;
|
|
157
|
+
const full = path.join(dir, e.name);
|
|
158
|
+
if (e.isDirectory()) {
|
|
159
|
+
collectConfigJson(full, acc);
|
|
160
|
+
} else if (e.isFile() && e.name.endsWith('.json')) {
|
|
161
|
+
acc.push(full);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* @param {string[]} files
|
|
168
|
+
* @returns {{ file: string, reason: string }[]}
|
|
169
|
+
*/
|
|
170
|
+
export function scanConfigFiles(files) {
|
|
171
|
+
const problems = [];
|
|
172
|
+
for (const file of files) {
|
|
173
|
+
let raw;
|
|
174
|
+
try {
|
|
175
|
+
raw = fs.readFileSync(file, 'utf8');
|
|
176
|
+
} catch {
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
// Cheap pre-filter: only parse files that mention componentFrameworks.
|
|
180
|
+
if (!raw.includes('componentFrameworks')) continue;
|
|
181
|
+
let parsed;
|
|
182
|
+
try {
|
|
183
|
+
parsed = JSON.parse(raw);
|
|
184
|
+
} catch {
|
|
185
|
+
continue; // not our concern — other lints/CI cover malformed JSON
|
|
186
|
+
}
|
|
187
|
+
const reason = checkConfigObject(parsed);
|
|
188
|
+
if (reason) problems.push({ file, reason });
|
|
189
|
+
}
|
|
190
|
+
return problems;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function main() {
|
|
194
|
+
const problems = [];
|
|
195
|
+
|
|
196
|
+
// PRONG A
|
|
197
|
+
let routerSrc = '';
|
|
198
|
+
try {
|
|
199
|
+
routerSrc = fs.readFileSync(ROUTER_SRC, 'utf8');
|
|
200
|
+
} catch (err) {
|
|
201
|
+
console.error(`lint-no-opus-claude-cli-gating: cannot read IntelligenceRouter.ts — ${err.message}`);
|
|
202
|
+
process.exit(1);
|
|
203
|
+
}
|
|
204
|
+
problems.push(...checkGuardrailIntact(routerSrc));
|
|
205
|
+
|
|
206
|
+
// PRONG B
|
|
207
|
+
const configFiles = [];
|
|
208
|
+
collectConfigJson(ROOT, configFiles);
|
|
209
|
+
const configProblems = scanConfigFiles(configFiles);
|
|
210
|
+
for (const p of configProblems) {
|
|
211
|
+
problems.push(`${path.relative(ROOT, p.file)}: ${p.reason}`);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
if (problems.length === 0) {
|
|
215
|
+
console.log(
|
|
216
|
+
'lint-no-opus-claude-cli-gating: OK — R1/R2 clamp intact; no config routes a gating call to Opus×claude-CLI.',
|
|
217
|
+
);
|
|
218
|
+
process.exit(0);
|
|
219
|
+
}
|
|
220
|
+
console.error('lint-no-opus-claude-cli-gating: FAILED (INSTAR-Bench v3 R1/R2):');
|
|
221
|
+
for (const p of problems) console.error(` - ${p}`);
|
|
222
|
+
process.exit(1);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
const isDirectRun = process.argv[1] && path.resolve(process.argv[1]) === __filename;
|
|
226
|
+
if (isDirectRun) main();
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* lint-routing-registry-freshness.js — the human intentional-defaults layer
|
|
4
|
+
* (docs/LLM-ROUTING-REGISTRY.md) must stay EXHAUSTIVE over the LLM callsite set.
|
|
5
|
+
*
|
|
6
|
+
* INSTAR-Bench v3, Task-4 Piece 3 (gap G2). The routing registry is the layer
|
|
7
|
+
* where a HUMAN records, per benched component, the intended default route +
|
|
8
|
+
* nature — the decision layer above `COMPONENT_CATEGORY` (which framework?) and
|
|
9
|
+
* `LLM_BENCH_COVERAGE` (which benchmark?). If a component exists in the category
|
|
10
|
+
* map but is ABSENT from the registry doc, its routing default was never
|
|
11
|
+
* intentionally decided — an unmeasured routing decision, the exact gap the
|
|
12
|
+
* benchmark discipline exists to close. This lint fails when that happens.
|
|
13
|
+
*
|
|
14
|
+
* WHAT IT CHECKS: every key of `COMPONENT_CATEGORY`
|
|
15
|
+
* (src/core/componentCategories.ts) must appear — as a literal substring — SOME-
|
|
16
|
+
* WHERE in docs/LLM-ROUTING-REGISTRY.md. Substring (not table-row) matching is
|
|
17
|
+
* deliberate: the doc legitimately groups aliases ("TaskClassifier /
|
|
18
|
+
* OverrideDetector / …") and annotates counts ("SessionActivitySentinel ×3"),
|
|
19
|
+
* so a strict per-row parse would false-positive. The invariant is presence, not
|
|
20
|
+
* shape — mirrors the shrink-only spirit of the bench-coverage ratchet.
|
|
21
|
+
*
|
|
22
|
+
* ALLOWLIST: seeded EMPTY. A component that genuinely has no registry row (e.g.
|
|
23
|
+
* a router-bypass callsite documented elsewhere) must be added here WITH A
|
|
24
|
+
* REASON — a visible, reviewed act, exactly like the bench-coverage exemptions.
|
|
25
|
+
* The companion ratchet test (tests/unit/routing-registry-freshness.test.ts)
|
|
26
|
+
* pins the same invariant in CI over the real imported symbol.
|
|
27
|
+
*
|
|
28
|
+
* Exit codes: 0 — every key present; 1 — at least one missing (or a stale
|
|
29
|
+
* allowlist entry: an allowlisted name that is now present fails with "remove me").
|
|
30
|
+
*
|
|
31
|
+
* Usage:
|
|
32
|
+
* node scripts/lint-routing-registry-freshness.js
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
import fs from 'node:fs';
|
|
36
|
+
import path from 'node:path';
|
|
37
|
+
import { fileURLToPath } from 'node:url';
|
|
38
|
+
|
|
39
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
40
|
+
const __dirname = path.dirname(__filename);
|
|
41
|
+
const ROOT = path.resolve(__dirname, '..');
|
|
42
|
+
|
|
43
|
+
const CATEGORY_SRC = path.join(ROOT, 'src', 'core', 'componentCategories.ts');
|
|
44
|
+
const REGISTRY_DOC = path.join(ROOT, 'docs', 'LLM-ROUTING-REGISTRY.md');
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Components with no registry row, each with a REASON. Seeded EMPTY (the doc is
|
|
48
|
+
* exhaustive today). Adding a name is a visible, reviewed act; an entry that is
|
|
49
|
+
* no longer missing fails this lint with "remove me".
|
|
50
|
+
* @type {Record<string,string>}
|
|
51
|
+
*/
|
|
52
|
+
export const REGISTRY_FRESHNESS_ALLOWLIST = {};
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Extract COMPONENT_CATEGORY keys from the TypeScript source by lexical scan
|
|
56
|
+
* (the house pattern for lint scripts — they run pre-compile, so they read
|
|
57
|
+
* source text, not the compiled module). Matches `Name: 'category'` and
|
|
58
|
+
* `'quoted-name': 'category'` where category is a known ComponentCategory.
|
|
59
|
+
* @param {string} src
|
|
60
|
+
* @returns {string[]}
|
|
61
|
+
*/
|
|
62
|
+
export function extractCategoryKeys(src) {
|
|
63
|
+
const start = src.indexOf('COMPONENT_CATEGORY: Readonly');
|
|
64
|
+
if (start < 0) throw new Error('COMPONENT_CATEGORY object not found in componentCategories.ts');
|
|
65
|
+
const body = src.slice(start, src.indexOf('};', start));
|
|
66
|
+
const keyRe =
|
|
67
|
+
/^\s*(?:([A-Za-z][A-Za-z0-9_]*)|["']([^"']+)["'])\s*:\s*["'](?:sentinel|gate|job|reflector|other)["']/gm;
|
|
68
|
+
const keys = [];
|
|
69
|
+
let m;
|
|
70
|
+
while ((m = keyRe.exec(body)) !== null) keys.push(m[1] || m[2]);
|
|
71
|
+
return [...new Set(keys)];
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @param {string} categorySrc
|
|
76
|
+
* @param {string} docText
|
|
77
|
+
* @param {Record<string,string>} allowlist
|
|
78
|
+
* @returns {{ missing: string[], staleAllowlist: string[] }}
|
|
79
|
+
*/
|
|
80
|
+
export function runRegistryFreshness(categorySrc, docText, allowlist = REGISTRY_FRESHNESS_ALLOWLIST) {
|
|
81
|
+
const keys = extractCategoryKeys(categorySrc);
|
|
82
|
+
const missing = [];
|
|
83
|
+
for (const k of keys) {
|
|
84
|
+
if (docText.includes(k)) continue;
|
|
85
|
+
if (k in allowlist) continue;
|
|
86
|
+
missing.push(k);
|
|
87
|
+
}
|
|
88
|
+
// Stale allowlist: an allowlisted name that IS present in the doc now.
|
|
89
|
+
const staleAllowlist = Object.keys(allowlist).filter((k) => docText.includes(k));
|
|
90
|
+
return { missing, staleAllowlist };
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function main() {
|
|
94
|
+
let categorySrc;
|
|
95
|
+
let docText;
|
|
96
|
+
try {
|
|
97
|
+
categorySrc = fs.readFileSync(CATEGORY_SRC, 'utf8');
|
|
98
|
+
docText = fs.readFileSync(REGISTRY_DOC, 'utf8');
|
|
99
|
+
} catch (err) {
|
|
100
|
+
console.error(`lint-routing-registry-freshness: cannot read inputs — ${err.message}`);
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
const { missing, staleAllowlist } = runRegistryFreshness(categorySrc, docText);
|
|
104
|
+
if (missing.length === 0 && staleAllowlist.length === 0) {
|
|
105
|
+
console.log('lint-routing-registry-freshness: OK — every COMPONENT_CATEGORY key has a registry row.');
|
|
106
|
+
process.exit(0);
|
|
107
|
+
}
|
|
108
|
+
if (missing.length > 0) {
|
|
109
|
+
console.error(
|
|
110
|
+
'lint-routing-registry-freshness: the following LLM component(s) have NO row in ' +
|
|
111
|
+
'docs/LLM-ROUTING-REGISTRY.md (their routing default was never intentionally decided):\n' +
|
|
112
|
+
missing.map((m) => ` - ${m}`).join('\n') +
|
|
113
|
+
'\n\nAdd a row for each to docs/LLM-ROUTING-REGISTRY.md (the callsite inventory), or — if it ' +
|
|
114
|
+
'genuinely has no registry row — add it to REGISTRY_FRESHNESS_ALLOWLIST with a reason. ' +
|
|
115
|
+
'INSTAR-Bench v3, Task-4 Piece 3 (G2).',
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
if (staleAllowlist.length > 0) {
|
|
119
|
+
console.error(
|
|
120
|
+
'\nlint-routing-registry-freshness: allowlist entries that are now present in the doc — remove me:\n' +
|
|
121
|
+
staleAllowlist.map((m) => ` - ${m}`).join('\n'),
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const isDirectRun = process.argv[1] && path.resolve(process.argv[1]) === __filename;
|
|
128
|
+
if (isDirectRun) main();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-07-
|
|
5
|
-
"instarVersion": "1.3.
|
|
4
|
+
"generatedAt": "2026-07-04T00:03:12.209Z",
|
|
5
|
+
"instarVersion": "1.3.743",
|
|
6
6
|
"entryCount": 202,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -560,3 +560,86 @@ export const LLM_PARSER_CONTRACT: Readonly<Record<string, ParserContractFlag>> =
|
|
|
560
560
|
'enriches standards-coverage rows with content — no closed taught verdict vocabulary a prompt promises and a parser accepts',
|
|
561
561
|
},
|
|
562
562
|
};
|
|
563
|
+
|
|
564
|
+
/**
|
|
565
|
+
* Routing nature/chain map — INSTAR-Bench v3 (2026-07-03) JOIN between bench
|
|
566
|
+
* COVERAGE (does a component have a benchmark?) and bench-cited ROUTING (which
|
|
567
|
+
* task-nature did the bench establish it is, and which production chain should
|
|
568
|
+
* it ride?). This is the G1 join of Task-4 Piece 3: `LLM_BENCH_COVERAGE` says
|
|
569
|
+
* "benched"; THIS map says "benched, and here is the winner-nature the v3 bench
|
|
570
|
+
* established for it" — so routing (not just existence) is benchmark-cited.
|
|
571
|
+
*
|
|
572
|
+
* NATURE (task-nature taxonomy — docs/LLM-ROUTING-REGISTRY.md §taxonomy):
|
|
573
|
+
* A = simple bounded verdict (classify / boolean gate / strict-JSON extract —
|
|
574
|
+
* one right answer, terse; speed + format-obedience; reasoning models CLIP)
|
|
575
|
+
* B = nuanced / critical judgment (safety gate, irreversible-action class,
|
|
576
|
+
* completion-stop judge — being RIGHT beats fast/cheap)
|
|
577
|
+
* D = high-volume background (digests, batch classify, summaries, doc-tree)
|
|
578
|
+
* E = deep unbounded reasoning (rare; no output-budget pressure)
|
|
579
|
+
* CHAIN (the four production default→fallback ladders — ELI16 §11):
|
|
580
|
+
* FAST = latency-sensitive quick-sort (Flash-Lite → GPT-5.4 API → … )
|
|
581
|
+
* SORT = background quick-sort (GPT-5.4-mini codex → GPT-5.5 pi → …)
|
|
582
|
+
* JUDGE = careful judgment (GPT-5.5 pi → … → Opus-4.8 API, NEVER CLI)
|
|
583
|
+
* WRITE = open-ended writing (GPT-5.4-mini codex → … → Opus-4.8 CLI)
|
|
584
|
+
*
|
|
585
|
+
* SCOPE — deliberately advisory + NOT (yet) exhaustive over COMPONENT_CATEGORY.
|
|
586
|
+
* This map covers the components whose task-nature the v3 bench established
|
|
587
|
+
* UNAMBIGUOUSLY (a single nature letter in the registry's callsite inventory).
|
|
588
|
+
* Genuinely multi-nature callsites (A/B, B/D) and the router-bypass callsites
|
|
589
|
+
* are left for S4 (the nature-axis router), which ACTUATES this data into
|
|
590
|
+
* IntelligenceRouter model selection and therefore touches critical-gate
|
|
591
|
+
* routing — spec-converge + operator-review gated. Adding an entry HERE changes
|
|
592
|
+
* NO routing today; it is read-only, bench-cited metadata those pieces consume.
|
|
593
|
+
*
|
|
594
|
+
* Ratchet — tests/unit/llm-routing-nature-ratchet.test.ts — enforces:
|
|
595
|
+
* - every key exists in COMPONENT_CATEGORY (no dangling routing claim),
|
|
596
|
+
* - every key present here is bench-COVERED in LLM_BENCH_COVERAGE (you may not
|
|
597
|
+
* cite a routing nature for an unbenched component — cite-the-bench),
|
|
598
|
+
* - nature ∈ {A,B,D,E}, chain ∈ {FAST,SORT,JUDGE,WRITE},
|
|
599
|
+
* - nature→chain coherence: A→FAST|SORT, B→JUDGE, D→SORT|WRITE, E→JUDGE.
|
|
600
|
+
*/
|
|
601
|
+
export type TaskNature = 'A' | 'B' | 'D' | 'E';
|
|
602
|
+
export type RoutingChain = 'FAST' | 'SORT' | 'JUDGE' | 'WRITE';
|
|
603
|
+
export interface RoutingNature {
|
|
604
|
+
readonly nature: TaskNature;
|
|
605
|
+
readonly chain: RoutingChain;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
export const LLM_ROUTING_NATURE: Readonly<Record<string, RoutingNature>> = {
|
|
609
|
+
// ── Nature A — bounded verdicts (background → SORT; latency-critical → FAST) ──
|
|
610
|
+
// MessageSentinel = the emergency-stop classifier: latency-critical AND rule
|
|
611
|
+
// R2 (never rides Opus-via-Claude-CLI — missed canonical STOPs at 73%).
|
|
612
|
+
MessageSentinel: { nature: 'A', chain: 'FAST' },
|
|
613
|
+
// Usher = per-turn topic routing: latency-sensitive quick-sort.
|
|
614
|
+
Usher: { nature: 'A', chain: 'FAST' },
|
|
615
|
+
CommitmentSentinel: { nature: 'A', chain: 'SORT' },
|
|
616
|
+
TemporalCoherenceChecker: { nature: 'A', chain: 'SORT' },
|
|
617
|
+
PresenceProxy: { nature: 'A', chain: 'SORT' },
|
|
618
|
+
ResumeQueueDrainer: { nature: 'A', chain: 'SORT' },
|
|
619
|
+
PromptGate: { nature: 'A', chain: 'SORT' },
|
|
620
|
+
WarrantsReplyGate: { nature: 'A', chain: 'SORT' },
|
|
621
|
+
InputClassifier: { nature: 'A', chain: 'SORT' },
|
|
622
|
+
TelegramAdapter: { nature: 'A', chain: 'SORT' },
|
|
623
|
+
SlackAdapter: { nature: 'A', chain: 'SORT' },
|
|
624
|
+
OverrideDetector: { nature: 'A', chain: 'SORT' },
|
|
625
|
+
TaskClassifier: { nature: 'A', chain: 'SORT' },
|
|
626
|
+
ResumeValidator: { nature: 'A', chain: 'SORT' },
|
|
627
|
+
TopicIntentExtractor: { nature: 'A', chain: 'SORT' },
|
|
628
|
+
|
|
629
|
+
// ── Nature B — critical judgment gates (→ JUDGE; Opus only via API, never CLI) ──
|
|
630
|
+
MessagingToneGate: { nature: 'B', chain: 'JUDGE' },
|
|
631
|
+
CompletionEvaluator: { nature: 'B', chain: 'JUDGE' },
|
|
632
|
+
ExternalOperationGate: { nature: 'B', chain: 'JUDGE' },
|
|
633
|
+
LLMSanitizer: { nature: 'B', chain: 'JUDGE' },
|
|
634
|
+
CoherenceReviewer: { nature: 'B', chain: 'JUDGE' },
|
|
635
|
+
InputGuard: { nature: 'B', chain: 'JUDGE' },
|
|
636
|
+
StallTriageNurse: { nature: 'B', chain: 'JUDGE' },
|
|
637
|
+
ProjectDriftChecker: { nature: 'B', chain: 'JUDGE' },
|
|
638
|
+
SessionWatchdog: { nature: 'B', chain: 'JUDGE' },
|
|
639
|
+
UnjustifiedStopGate: { nature: 'B', chain: 'JUDGE' },
|
|
640
|
+
|
|
641
|
+
// ── Nature D — background digests/summaries (→ SORT; R7 redaction on secret-bearing) ──
|
|
642
|
+
SessionActivitySentinel: { nature: 'D', chain: 'SORT' },
|
|
643
|
+
SessionSummarySentinel: { nature: 'D', chain: 'SORT' },
|
|
644
|
+
'correction-learning': { nature: 'D', chain: 'SORT' },
|
|
645
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: LLM Bench Refresh
|
|
3
|
+
description: "Cadenced INSTAR-Bench refresh + routing-defaults drift check. On the maintainer/benching agent (the only agent that carries the bench harness under research/llm-pathway-bench/), it runs the bench harness + parity-check and raises ONE operator attention item with the routing-defaults DIFF — it NEVER auto-applies a routing change to a critical gate (operator-review-gated by design, INSTAR-Bench-v2 spec §7/§8). On every other agent the harness is absent, so the job exits silently — it is a no-op. Monthly cadence (spec §7: monthly full run + on-demand after a prompt ships / a new model is enrolled; the on-demand triggers + the versioned auto-reslot catalog are S6, tracked follow-ups). Ships OFF by default (like feedback-factory-process) — a bench run is metered/cost-bearing ($3-20/run, spec §7 budget), so it must be a deliberate opt-in. Tier-1 supervised: this haiku job wraps the deterministic harness + parity-check and sanity-checks the run before it dares surface a diff. Spec: research/llm-pathway-bench/INSTAR-BENCH-V2-SPEC.md §7 (cadence) + §9 (provenance); docs/LLM-ROUTING-REGISTRY.md (the routing defaults it diffs against)."
|
|
4
|
+
schedule: "0 4 1 * *"
|
|
5
|
+
priority: low
|
|
6
|
+
expectedDurationMinutes: 20
|
|
7
|
+
model: haiku
|
|
8
|
+
supervision: tier1
|
|
9
|
+
enabled: false
|
|
10
|
+
tags:
|
|
11
|
+
- cat:bench
|
|
12
|
+
- role:worker
|
|
13
|
+
- exec:prompt
|
|
14
|
+
gate: curl -sf http://localhost:${INSTAR_PORT:-4042}/health >/dev/null 2>&1
|
|
15
|
+
toolAllowlist: "*"
|
|
16
|
+
unrestrictedTools: true
|
|
17
|
+
mcpAccess: none
|
|
18
|
+
---
|
|
19
|
+
Run one INSTAR-Bench refresh + routing-defaults drift check. This is a deliberate, cost-bearing maintainer job (a bench run spends metered API budget). It is OFF by default and only meaningful on the agent that carries the bench harness. Do NOT auto-apply any routing change — this job only ever RAISES a diff for the operator to review (critical-gate routing is operator-review-gated by design).
|
|
20
|
+
|
|
21
|
+
AUTH="${INSTAR_AUTH_TOKEN:-$(python3 -c "import json; v=json.load(open('.instar/config.json')).get('authToken',''); print(v if isinstance(v, str) else '')" 2>/dev/null)}"
|
|
22
|
+
AGENT_ID="${INSTAR_AGENT_ID:-$(python3 -c "import json; print(json.load(open('.instar/config.json')).get('projectName',''))" 2>/dev/null)}"
|
|
23
|
+
PORT="${INSTAR_PORT:-4042}"
|
|
24
|
+
BENCH_DIR="research/llm-pathway-bench/instar-bench-v2"
|
|
25
|
+
|
|
26
|
+
1. **Harness-presence gate.** Confirm this agent actually carries the bench harness:
|
|
27
|
+
`test -f "$BENCH_DIR/run2.mjs" && test -f "$BENCH_DIR/parity-check.mjs" && echo present || echo absent`
|
|
28
|
+
If `absent`, this agent is not the benching agent — EXIT SILENTLY, there is nothing to do (this is the no-op path every non-maintainer agent takes). Do not message anyone.
|
|
29
|
+
|
|
30
|
+
2. **Parity-check FIRST (the cheap, non-metered gate).** A stale battery makes a whole refresh untrustworthy, so verify the batteries still match PRODUCTION prompt text before spending any budget:
|
|
31
|
+
`node "$BENCH_DIR/parity-check.mjs" 2>&1 | tail -40`
|
|
32
|
+
A stale battery is a NAMED failing verdict (spec §9). If parity FAILS, do NOT run the metered bench — surface the parity failure as ONE attention item (step 5, title "bench-refresh: battery parity FAILED") and stop. The batteries must be re-synced to production prompts before a refresh means anything.
|
|
33
|
+
|
|
34
|
+
3. **Run the refresh at the Wave-1 (cheap smoke) scope.** Full runs cost $12-20 and are a deliberate manual act; the scheduled cadence runs the cheap Wave-1 smoke ($3-5, spec §7). State the cap up front; an unknown price REFUSES to run (spec §7 budget discipline):
|
|
35
|
+
`node "$BENCH_DIR/run2.mjs" --wave 1 2>&1 | tail -60`
|
|
36
|
+
(If `run2.mjs` does not accept `--wave`, read its `--help` and use the documented cheapest-smoke flag; never run the full universe from the scheduled cadence.) The run writes a `run-manifest.json` (bench SHA, per-battery SHA256, price/caps SHA, observed door→model resolution, a `reproduce` command) — that manifest is the provenance record for this refresh.
|
|
37
|
+
|
|
38
|
+
4. **Tier-1 supervision (your job) — sanity-check BEFORE surfacing anything.** Do not trust a run blindly:
|
|
39
|
+
- The run must have completed with a written manifest and a non-empty results set. A crashed/partial run (no manifest, zero cells) is NOT a signal — note it once and exit; the next cadence retries.
|
|
40
|
+
- Compare the run's per-task winners against the current intentional defaults in `docs/LLM-ROUTING-REGISTRY.md`. A DIFF is only real when it clears the noise floor (spec: <~1.5-pt differences at 218 cells/route are noise — 99.5% vs 99.1% is a TIE, not a diff). Discard sub-noise-floor "changes".
|
|
41
|
+
- If a diff would move a CRITICAL gate (completion/stop/tone/external-op/sanitizer/coherence), it is ALWAYS operator-review — never auto-apply, never present it as "I changed the routing."
|
|
42
|
+
|
|
43
|
+
5. **Raise the diff as ONE operator attention item (never auto-apply).** Only if step 4 found a real, above-noise diff (or a parity failure from step 2):
|
|
44
|
+
`curl -s -X POST -H "Authorization: Bearer $AUTH" -H "X-Instar-AgentId: $AGENT_ID" http://localhost:$PORT/attention -H 'Content-Type: application/json' -d '{"id":"bench-refresh:routing-diff","title":"<short>","body":"<the per-task old-chain → new-chain diff + the manifest reproduce command>","priority":"medium","source":"agent"}'`
|
|
45
|
+
Use a STABLE `id` (`bench-refresh:routing-diff`) so a re-run updates the one item instead of flooding. If step 4 found NO real diff, raise NOTHING and exit silently — a clean refresh is not news.
|
|
46
|
+
|
|
47
|
+
6. Exit. This job produces a review artifact for the operator, not a running commentary. Do NOT relay progress to Telegram, do NOT summarize a clean run, and do NOT retry-flood a failed curl (the failure is recorded server-side). The routing defaults change only when the operator reviews the diff and acts — this job never touches config.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Upgrade Guide — vNEXT
|
|
2
|
+
|
|
3
|
+
<!-- assembled-by: assemble-next-md -->
|
|
4
|
+
<!-- bump: patch -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
INSTAR-Bench v3 established the "door penalty": the identical Opus 4.8 model scores 99.1% on bounded judging via a clean API but only 81.7% through the Claude Code CLI door (73% on emergency-stop) — the CLI harness's ~20k-token coding-agent framing turns a skeptical judge credulous. Rules R1/R2 forbid routing any bounded/gating verdict through that door. This ships the three low-risk, dark/reversible pieces of applying that finding to routing, without moving any live routing default (the nature-axis router is separately spec-gated):
|
|
9
|
+
|
|
10
|
+
- **S2 — safety guardrail (the load-bearing piece).** The IntelligenceRouter's failure-swap now clamps a bounded/gating swap that lands on `claude-code` from the `capable` tier (Opus) down to `balanced` (Sonnet 4.6 CLI — 99.5%, 28/28 adversarial). It only ever NARROWS a fallback in the safe direction; it never blocks a call and never touches the open-ended-writing quality lane where Opus-via-CLI is the legitimate primary. A new lint (`lint-no-opus-claude-cli-gating.js`) keeps the clamp intact and refuses any committed config that routes a gating call to Opus×claude-CLI.
|
|
11
|
+
- **S1 — cite-the-bench, extended.** A new registry-doc freshness lint (`lint-routing-registry-freshness.js`) fails the build if any benched component lacks a row in `docs/LLM-ROUTING-REGISTRY.md`, and a new `LLM_ROUTING_NATURE` map records each component's bench-cited task-nature (A/B/D/E) and production chain (FAST/SORT/JUDGE/WRITE). Read-only metadata — it changes no routing today.
|
|
12
|
+
- **S5 — bench-refresh job.** A scaffolded, OFF-by-default, tier-1-supervised monthly job that reruns the bench harness + parity-check and raises ONE operator-review diff when a routing default looks stale. It never auto-applies a change and no-ops on any machine without the bench harness.
|
|
13
|
+
|
|
14
|
+
## What to Tell Your User
|
|
15
|
+
|
|
16
|
+
Under the hood I tightened how I pick which AI model runs my background safety checks. A benchmark found that one strong model becomes unreliable at yes/no judging when it's called through a particular tool door, so I added an automatic safeguard: if one of those checks ever falls back to that door, I quietly step down to a model that stays sharp there. It only ever makes the fallback safer — nothing you see changes, and I never switch the model your actual conversations run on without asking. I also added build-time checks so this discipline can't quietly rot, and an off-by-default monthly job that can flag a routing change for you to review — but a change like that always waits for your say-so.
|
|
17
|
+
|
|
18
|
+
## Summary of New Capabilities
|
|
19
|
+
|
|
20
|
+
- A structural clamp making the measured-banned Opus×claude-CLI route unreachable via a bounded/gating fallback swap.
|
|
21
|
+
- Two new CI lints: routing-registry freshness (every benched component has an intentional-defaults row) and no-opus-claude-cli-gating (the R1/R2 guard).
|
|
22
|
+
- A bench-cited nature/chain map joining benchmark coverage to routing.
|
|
23
|
+
- An off-by-default monthly bench-refresh job that surfaces routing drift for operator review.
|
|
24
|
+
|
|
25
|
+
## Evidence
|
|
26
|
+
|
|
27
|
+
- `tests/unit/opus-claude-cli-gating-guardrail.test.ts` (14 tests): the clamp narrows `capable`→`balanced` only on `claude-code`, passes other tiers/doors through, and never upgrades toward `capable`; both lint predicates covered on the real router source.
|
|
28
|
+
- `tests/unit/llm-routing-nature-ratchet.test.ts` (6), `tests/unit/routing-registry-freshness.test.ts` (2), `tests/unit/bench-refresh-job-template.test.ts` (8) — all green.
|
|
29
|
+
- `npm run lint` green with both new lints; `tsc --noEmit` clean; the affected router + ratchet suites (98 tests) green. Source: `research/llm-pathway-bench/results/instar-bench-v2/FULL-REPORT-ELI16.md` §7.7/§9 (door penalty, R1/R2).
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Side-Effects Review — Benchmark Application (S1/S2/S5): routing-registry freshness lint, Opus×claude-CLI gating clamp, bench-refresh job
|
|
2
|
+
|
|
3
|
+
**Version / slug:** `task4-bench-application`
|
|
4
|
+
**Date:** 2026-07-03
|
|
5
|
+
**Author:** Echo (build helper)
|
|
6
|
+
**Second-pass reviewer:** not required (Tier-1 dark/reversible increment)
|
|
7
|
+
|
|
8
|
+
## Summary of the change
|
|
9
|
+
|
|
10
|
+
INSTAR-Bench v3 established that routing must be per-task-NATURE and that one route is measured-banned for bounded verdicts: Opus-4.8 via the Claude Code CLI scores 99.1% via clean API but 81.7% via the CLI door (a 17.4-pt penalty; 73% on emergency-stop). This change lands the three low-risk, direct pieces of "apply the bench to routing" — S1, S2, S5 — all dark/reversible, none of which moves a live routing default:
|
|
11
|
+
|
|
12
|
+
- **S1 (cite-the-bench, extended):** a new registry-doc freshness lint (`scripts/lint-routing-registry-freshness.js`) that fails if any `COMPONENT_CATEGORY` key lacks a row in `docs/LLM-ROUTING-REGISTRY.md`, plus a new `LLM_ROUTING_NATURE` map in `src/data/llmBenchCoverage.ts` carrying each benched component's bench-cited task-nature (A/B/D/E) + production chain (FAST/SORT/JUDGE/WRITE). Read-only metadata; the actuating router (S4) is out of scope.
|
|
13
|
+
- **S2 (the safety guardrail):** a runtime clamp (`clampClaudeCliSwapModel` in `src/core/IntelligenceRouter.ts`) that narrows a bounded/gating failure-swap onto `claude-code` from the `capable` tier (=Opus) down to `balanced` (=Sonnet CLI reserve), plus a lint (`scripts/lint-no-opus-claude-cli-gating.js`) that keeps the clamp intact and refuses any config that routes a gating call to Opus×claude-CLI.
|
|
14
|
+
- **S5 (bench-refresh job):** a scaffolded, OFF-by-default, tier-1-supervised monthly job template (`src/scaffold/templates/jobs/instar/bench-refresh.md`) that runs the bench harness + parity-check and raises ONE operator-review attention diff — never auto-applies.
|
|
15
|
+
|
|
16
|
+
Files touched: `src/core/IntelligenceRouter.ts`, `src/data/llmBenchCoverage.ts`, `docs/LLM-ROUTING-REGISTRY.md`, `package.json`, `scripts/lint-routing-registry-freshness.js` (new), `scripts/lint-no-opus-claude-cli-gating.js` (new), `src/scaffold/templates/jobs/instar/bench-refresh.md` (new), + four new unit test files.
|
|
17
|
+
|
|
18
|
+
## Decision-point inventory
|
|
19
|
+
|
|
20
|
+
- `IntelligenceRouter` failure-swap model selection — **modify** — the swap loop now clamps `capable`→`balanced` when the swap target is `claude-code` (S2). This is the only behavioral decision-point change; it only ever NARROWS a fallback.
|
|
21
|
+
- `LLM_ROUTING_NATURE` (new read-only map) — **add** — advisory bench-cited nature/chain metadata; consumed by no live router yet.
|
|
22
|
+
- `bench-refresh` job — **add** — off by default; a cadence trigger, no config authority.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 1. Over-block
|
|
27
|
+
|
|
28
|
+
The S2 clamp has no block/allow surface — it never rejects a call; it downgrades a model tier on one specific fallback door. Worst case it serves a bounded/gating gate on Sonnet-CLI (99.5%, 28/28 adversarial) instead of Opus-CLI (81.7%) — strictly an improvement, never an over-block. The two lints can "block" a build: the freshness lint fails a genuinely-missing registry row (correct — that IS the gap it exists to catch); the opus-gating lint fails only the exact banned combination or a removed guardrail. Both are seeded to pass on current main (verified green).
|
|
29
|
+
|
|
30
|
+
## 2. Under-block
|
|
31
|
+
|
|
32
|
+
The S2 clamp only covers the failure-SWAP path onto claude-code. It does NOT touch a call whose RESOLVED PRIMARY framework is claude-code requesting `capable` (the CHAIN WRITE open-ended-writing quality lane, where Opus-CLI is legitimately the best route) — correctly, since that is not a bounded verdict. The opus-gating lint's config scan is a static best-effort over committed JSON; the runtime `.instar/config.json` is not in the repo, so the load-bearing protection is the code clamp (prong A), not the config scan (prong B). This is acknowledged and correct: the clamp is the guarantee; the lint is the tripwire against the clamp's removal.
|
|
33
|
+
|
|
34
|
+
## 3. Level-of-abstraction fit
|
|
35
|
+
|
|
36
|
+
Correct layer. The clamp lives at the single failure-swap funnel in `IntelligenceRouter` (the one place every gating swap passes through), not scattered per-component. The nature map is data, not logic. The lints are pre-compile source scans (the house pattern). Nothing re-implements a primitive that already exists; S1's freshness lint deliberately mirrors the shrink-only shape of the existing bench-coverage ratchet.
|
|
37
|
+
|
|
38
|
+
## 4. Signal vs authority compliance
|
|
39
|
+
|
|
40
|
+
- [x] No — this change produces a signal / narrows a fallback; it holds no new brittle block authority.
|
|
41
|
+
|
|
42
|
+
The S2 clamp is a mechanical, deterministic narrowing (capable→balanced on one door) — not a judgment call, and it never blocks a message. The lints are CI signals. The nature map is advisory. None of this owns block authority over an outbound message or an action.
|
|
43
|
+
|
|
44
|
+
## 5. Interactions
|
|
45
|
+
|
|
46
|
+
- **Shadowing:** the clamp runs INSIDE the existing swap loop, just before `attemptOptions` is built. It composes with the per-target-swap-timeout cap (both now fold into the same `attemptOptions` object). Verified: the existing per-target-swap-timeout and provider-fallback-swap tests still pass (36 tests green) — the cap path is unchanged when no clamp fires.
|
|
47
|
+
- **Double-fire:** none — the clamp mutates a local options object for one attempt; no shared state.
|
|
48
|
+
- **Races:** none — pure per-call local computation.
|
|
49
|
+
- **Feedback loops:** none.
|
|
50
|
+
|
|
51
|
+
## 6. External surfaces
|
|
52
|
+
|
|
53
|
+
- Other agents / install base: the bench-refresh job template ships to every agent via `InstallBuiltinJobs` (directory-scanned), but is `enabled: false` and no-ops (exits silently) on any agent lacking the research harness — so it is inert on the fleet. The two new lints join `npm run lint` (CI) — they gate builds, not runtime.
|
|
54
|
+
- External systems: none. The job, when a maintainer enables it, only POSTs to the local `/attention` endpoint — never auto-applies a routing change.
|
|
55
|
+
- Persistent state: none. No new ledger, no migration.
|
|
56
|
+
- **Operator surface (Mobile-Complete):** no operator-facing action added. The bench-refresh diff lands on the existing `/attention` queue (already phone-complete). Not applicable otherwise.
|
|
57
|
+
|
|
58
|
+
## 6b. Operator-surface quality
|
|
59
|
+
|
|
60
|
+
No operator surface — not applicable. No dashboard renderer, approval page, or grant/secret form is touched.
|
|
61
|
+
|
|
62
|
+
## 7. Multi-machine posture
|
|
63
|
+
|
|
64
|
+
**machine-local BY DESIGN.** The S2 clamp is pure per-call routing logic — identical on every machine, no state to replicate. The bench-refresh job is machine-local by design: it only does real work on the machine that physically carries the bench harness under `research/llm-pathway-bench/` (a maintainer machine); every other machine's copy is a silent no-op. It holds no durable state, strands nothing on topic transfer, and generates no URLs. The nature map and lints are source, identical fleet-wide.
|
|
65
|
+
|
|
66
|
+
## 8. Rollback cost
|
|
67
|
+
|
|
68
|
+
Pure code + data + template change. Back-out = revert the commit and ship a patch. No persistent state, no migration, no user-visible regression during the rollback window. The S2 clamp only ever improved a fallback's model choice; reverting it restores the (latent, never-observed-in-the-wild) risk of an Opus-CLI gating swap — i.e. rollback is strictly safe.
|
|
69
|
+
|
|
70
|
+
## Framework generality
|
|
71
|
+
|
|
72
|
+
The S2 clamp is deliberately framework-SPECIFIC and correct: it targets `claude-code` because the banned door is the Claude Code CLI harness (its ~20k-token coding-agent framing is what credulity-poisons a bounded judge). `codex-cli`, `pi-cli`, and `gemini-cli` swap targets are untouched (`capable` passes through) — Opus/GPT-5.5 via a clean API/thin-wrapper door is fine. This is framework-optimizing, not a Claude-only blind spot: the clamp encodes a measured per-door finding, and the nature map's chains name the right door per nature for every framework.
|
|
73
|
+
|
|
74
|
+
## Conclusion
|
|
75
|
+
|
|
76
|
+
Three low-risk, dark/reversible pieces that lock in the benchmark discipline (S1), close the one measured safety hole in the current failure-swap config (S2), and scaffold the refresh cadence (S5) — without moving any live routing default (that is S4, spec-converge-gated, out of scope). The S2 clamp is the highest-value piece: it makes the banned Opus×claude-CLI bounded-verdict route structurally unreachable via a fallback swap, in the safe direction only. Clear to ship.
|
|
77
|
+
|
|
78
|
+
## Evidence pointers
|
|
79
|
+
|
|
80
|
+
- `tests/unit/opus-claude-cli-gating-guardrail.test.ts` — 14 tests: clamp narrows capable→balanced on claude-code only, never upgrades, never touches other doors; lint prong A/B predicates.
|
|
81
|
+
- `tests/unit/llm-routing-nature-ratchet.test.ts` — 6 tests: nature map cites only benched components, valid enums, nature→chain coherence, R2 regression pin.
|
|
82
|
+
- `tests/unit/routing-registry-freshness.test.ts` — 2 tests: every category key has a registry row; no stale allowlist.
|
|
83
|
+
- `tests/unit/bench-refresh-job-template.test.ts` — 8 tests: ships off, tier-1, monthly, harness-gated, never auto-applies.
|
|
84
|
+
- `npm run lint` green (both new lints pass); `tsc --noEmit` clean; the router/ratchet suites (98 tests) green.
|
|
85
|
+
|
|
86
|
+
## Class-Closure Declaration (display-only mirror)
|
|
87
|
+
|
|
88
|
+
No agent-authored-artifact defect — not applicable. This change adds guardrails/lints/metadata; it does not fix a defect in an LLM prompt, hook, config, skill, or standards text.
|