mirror of https://github.com/garrytan/gstack.git
21 lines
819 B
TypeScript
21 lines
819 B
TypeScript
export interface ProviderProcessError {
|
|
stderr?: Buffer | string;
|
|
message?: string;
|
|
}
|
|
|
|
/** Combine subprocess diagnostics without duplicating identical text. */
|
|
export function providerErrorDetail(error: ProviderProcessError): string {
|
|
const stderr = typeof error.stderr === 'string'
|
|
? error.stderr
|
|
: error.stderr?.toString() ?? '';
|
|
const message = error.message ?? '';
|
|
return stderr && message.includes(stderr)
|
|
? message
|
|
: [stderr, message].filter(Boolean).join('\n');
|
|
}
|
|
|
|
/** Provider/model saturation is transient and distinct from auth or quota. */
|
|
export function isCapacityError(detail: string): boolean {
|
|
return /(?:selected\s+)?model\s+is\s+at\s+capacity|\bat\s+capacity\b|\bmodel\s+capacity\b|\boverloaded\b|temporarily unavailable due to (?:high )?(?:load|demand)/i.test(detail);
|
|
}
|