refactor(native): build every model rejection result in one place

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
DottaandClaude committed 2026-11-10 02:46:07 -06:00
1 parent 263ef18098
commit 05e89386e8
1 file changed
+11 -21
@@ -293,27 +293,17 @@ export function createNativeProviderFailureObservation(provider: { kind: string;
errorMessage: NATIVE_PROVIDER_OVERLOADED_MESSAGE, errorMessage: NATIVE_PROVIDER_OVERLOADED_MESSAGE,
diagnostic: { ...NATIVE_PROVIDER_OVERLOADED_DIAGNOSTIC }, diagnostic: { ...NATIVE_PROVIDER_OVERLOADED_DIAGNOSTIC },
}; };
if (turnId === missingModelTurnId) return { // Every model rejection shares one result; only its closed diagnostic differs.
errorCode: "native_provider_model_rejected" as const, const modelRejection = <T>(diagnostic: T) => ({
errorMessage: NATIVE_MODEL_REJECTION_MESSAGE, errorCode: "native_provider_model_rejected" as const, errorMessage: NATIVE_MODEL_REJECTION_MESSAGE, diagnostic,
diagnostic: { ...NATIVE_MODEL_NOT_FOUND_DIAGNOSTIC }, });
}; if (turnId === missingModelTurnId) return modelRejection({ ...NATIVE_MODEL_NOT_FOUND_DIAGNOSTIC });
if (turnId !== rejectedTurnId) { if (turnId === rejectedTurnId) return modelRejection({ ...NATIVE_MODEL_REJECTION_DIAGNOSTIC });
// A driver's closed category marks a rejected model for any provider. Only an // A driver's closed category marks a rejected model for any provider. Only an
// action-required rejection qualifies; a transient one may succeed on retry. // action-required rejection qualifies; a transient one may succeed on retry.
if (!modelUnavailableTurn(turnId)) return null; if (!modelUnavailableTurn(turnId)) return null;
const failure = providerFailures.get(turnId)!; const failure = providerFailures.get(turnId)!;
return { return modelRejection(failedTurns.get(turnId) ?? { provider: failure.provider, category: failure.category });
errorCode: "native_provider_model_rejected" as const,
errorMessage: NATIVE_MODEL_REJECTION_MESSAGE,
diagnostic: failedTurns.get(turnId) ?? { provider: failure.provider, category: failure.category },
};
}
return {
errorCode: "native_provider_model_rejected" as const,
errorMessage: NATIVE_MODEL_REJECTION_MESSAGE,
diagnostic: { ...NATIVE_MODEL_REJECTION_DIAGNOSTIC },
};
}, },
/** Diagnostics only: the failed turn that `forTerminal` did not classify. */ /** Diagnostics only: the failed turn that `forTerminal` did not classify. */
unclassifiedTurnFailure(turnId: string | null | undefined, terminal: PrpTerminalState) { unclassifiedTurnFailure(turnId: string | null | undefined, terminal: PrpTerminalState) {