/** Applicability helpers for pxpipe's production-safe model scope. */ export type PxpipeApplicabilityReason = 'eligible' | 'unsupported_model' | 'unsupported_method' | 'unsupported_path' | 'empty_body'; export interface PxpipeApplicabilityInput { readonly model?: string | null; readonly method?: string | null; readonly path?: string | null; readonly bodyBytes?: number | null; } /** Built-in default scope when PXPIPE_MODELS is unset: Fable 5, Gemini 3.6 Flash, and Gemini 3.7 Flash. * Everything else is opt-in via dashboard chips or PXPIPE_MODELS: * - Opus 4.7/4.8 — worse at reading imaged content (FINDINGS.md 2026-06-16: * Opus 4.8 ~2pp arithmetic, 6/15 dense-hex vs Fable 100/100). * - GPT 5.5 — degrades on imaged history/context. * - GPT 5.6 Sol — 98/100 production arithmetic, but 79/93 completed gist, * 4/15 completed guard confabulations, and 0/15 dense hex. * - Grok 4.5 — native 14px: 100/100 arithmetic, 97/98 gist, 17/18 state; hex 0/15. * - Opus 5 — 2/15 exact recall on imaged context (DeepSWE v1.1 eval); * task pass rate holds but dense recall does not. * All remain available for explicit opt-in. * Silently imaging weak or unvalidated readers is the wrong default. */ /** Model bases imaged with no configuration at all. * * Exported so documentation can be checked against it instead of restating it. * The README and this list disagreed once already: Opus 5 was dropped here after * a measured recall regression and stayed in the README's stated default, so a * reader following the docs believed a model was being imaged that was not. */ export declare const DEFAULT_MODEL_BASES: string[]; /** Current effective allowed-model scope (Claude + GPT). */ export declare function getAllowedModelBases(): string[]; /** PXPIPE_MODELS env / default scope, independent of runtime override. * Dashboard unions this into its chip set so env-enabled models are always shown as toggles. */ export declare function getConfiguredModelBases(): string[]; /** Set the dashboard runtime override. Empty array = compress nothing; null = clear override. Not persisted. */ export declare function setAllowedModelBases(list: readonly string[] | null): void; /** True when pxpipe may transform this Anthropic model. */ export declare function isPxpipeSupportedModel(model: string | null | undefined): boolean; /** True when pxpipe may transform this GPT model. Shares the single PXPIPE_MODELS scope. */ export declare function isPxpipeSupportedGptModel(model: string | null | undefined): boolean; /** Canonical set of Anthropic Messages routes pxpipe transforms. Shared with * createProxy (src/core/proxy.ts) so the public applicability helper and the * proxy router can never disagree on which paths are eligible — they did: the * proxy accepts /anthropic/messages, but the helper's old `endsWith` check * rejected it (and would have wrongly accepted /foo/v1/messages). Exact matches * only, so /v1/messages/count_tokens stays unsupported. */ export declare function isAnthropicMessagesPath(pathname: string): boolean; export declare function shouldTransformAnthropicMessages(input: PxpipeApplicabilityInput): { eligible: boolean; reason: PxpipeApplicabilityReason; }; //# sourceMappingURL=applicability.d.ts.map