Files
reverse-engineering-anything/src/domain/providerConfigurationRefusal.ts
T
morluto c42232f566 fix(adb): share actionable provider configuration refusals
Catch binary selection failures at the adapter boundary and share the domain error projection with apktool. Missing and relative adb paths now report capability_unavailable with host configuration guidance in both message and remediation.

Validation: ADB/apktool provider suites and public CLI refusal suites pass. No connected-device behavior changed or verified. Refs #1952.
2026-10-12 04:33:34 +08:00

22 lines
759 B
TypeScript

import { AnalysisCapabilityUnavailableError } from "./analysisErrorCore.js";
import type { JsonValue } from "./jsonValue.js";
/** Convert a provider's host configuration failure into actionable refusal evidence. */
export const providerConfigurationRefusal = (
providerId: string,
operation: string,
failure: Error & {
readonly diagnostics?: Readonly<Record<string, JsonValue>>;
},
): AnalysisCapabilityUnavailableError => {
const remediation = failure.diagnostics?.remediation;
const reason =
typeof remediation === "string"
? `${failure.message}. ${remediation}.`
: `${failure.message}.`;
return new AnalysisCapabilityUnavailableError(providerId, operation, reason, {
cause: failure,
userMessage: reason,
});
};