opencode-puter-auth 1.0.49 → 1.0.50
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/fallback.d.ts +37 -1
- package/dist/fallback.d.ts.map +1 -1
- package/dist/fallback.js +183 -23
- package/dist/fallback.js.map +1 -1
- package/package.json +1 -1
package/dist/fallback.d.ts
CHANGED
|
@@ -35,6 +35,10 @@ export declare const DEFAULT_FALLBACK_MODELS: string[];
|
|
|
35
35
|
* Default cooldown duration in milliseconds (60 seconds)
|
|
36
36
|
*/
|
|
37
37
|
export declare const DEFAULT_COOLDOWN_MS = 60000;
|
|
38
|
+
/**
|
|
39
|
+
* Error type classification for better debugging
|
|
40
|
+
*/
|
|
41
|
+
export type FallbackErrorType = 'rate_limit' | 'forbidden' | 'server_error' | 'timeout' | 'auth_error' | 'not_found' | 'context_length' | 'unknown';
|
|
38
42
|
/**
|
|
39
43
|
* Configuration options for FallbackManager
|
|
40
44
|
*/
|
|
@@ -45,6 +49,10 @@ export interface FallbackOptions {
|
|
|
45
49
|
cooldownMs?: number;
|
|
46
50
|
/** Whether fallback is enabled */
|
|
47
51
|
enabled?: boolean;
|
|
52
|
+
/** Verbose logging - show detailed info about each attempt */
|
|
53
|
+
verbose?: boolean;
|
|
54
|
+
/** Quiet mode - only show errors, suppress info/warnings */
|
|
55
|
+
quiet?: boolean;
|
|
48
56
|
}
|
|
49
57
|
/**
|
|
50
58
|
* Record of a single model attempt
|
|
@@ -56,7 +64,11 @@ export interface FallbackAttempt {
|
|
|
56
64
|
success: boolean;
|
|
57
65
|
/** Error message if failed */
|
|
58
66
|
error?: string;
|
|
59
|
-
/**
|
|
67
|
+
/** Classified error type */
|
|
68
|
+
errorType?: FallbackErrorType;
|
|
69
|
+
/** HTTP status code if available */
|
|
70
|
+
httpStatus?: number;
|
|
71
|
+
/** Whether the error was a rate limit (deprecated, use errorType) */
|
|
60
72
|
isRateLimit?: boolean;
|
|
61
73
|
/** Duration of the attempt in ms */
|
|
62
74
|
durationMs?: number;
|
|
@@ -93,6 +105,24 @@ export declare class FallbackExhaustedError extends Error {
|
|
|
93
105
|
* @returns true if the error is a rate limit error
|
|
94
106
|
*/
|
|
95
107
|
export declare function isRateLimitError(error: unknown): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Extract HTTP status code from error message
|
|
110
|
+
*
|
|
111
|
+
* @param error - The error to extract status from
|
|
112
|
+
* @returns HTTP status code or undefined
|
|
113
|
+
*/
|
|
114
|
+
export declare function extractHttpStatus(error: unknown): number | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* Classify an error into a FallbackErrorType
|
|
117
|
+
*
|
|
118
|
+
* @param error - The error to classify
|
|
119
|
+
* @returns The error type classification
|
|
120
|
+
*/
|
|
121
|
+
export declare function classifyError(error: unknown): FallbackErrorType;
|
|
122
|
+
/**
|
|
123
|
+
* Get a human-readable description of an error type
|
|
124
|
+
*/
|
|
125
|
+
export declare function getErrorTypeDescription(errorType: FallbackErrorType): string;
|
|
96
126
|
/**
|
|
97
127
|
* Manages automatic model fallback when rate limits are encountered.
|
|
98
128
|
*
|
|
@@ -104,6 +134,8 @@ export declare class FallbackManager {
|
|
|
104
134
|
private fallbackModels;
|
|
105
135
|
private cooldownMs;
|
|
106
136
|
private enabled;
|
|
137
|
+
private verbose;
|
|
138
|
+
private quiet;
|
|
107
139
|
constructor(options?: FallbackOptions);
|
|
108
140
|
/**
|
|
109
141
|
* Check if a model is currently on cooldown
|
|
@@ -173,6 +205,10 @@ export declare class FallbackManager {
|
|
|
173
205
|
* ```
|
|
174
206
|
*/
|
|
175
207
|
executeWithFallback<T>(primaryModel: string, operation: (model: string) => Promise<T>, logger?: Logger): Promise<FallbackResult<T>>;
|
|
208
|
+
/**
|
|
209
|
+
* Format a model name for display (truncate long OpenRouter names)
|
|
210
|
+
*/
|
|
211
|
+
private formatModelName;
|
|
176
212
|
/**
|
|
177
213
|
* Clear all cooldowns (useful for testing or manual reset)
|
|
178
214
|
*/
|
package/dist/fallback.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../src/fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,UAanC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"fallback.d.ts","sourceRoot":"","sources":["../src/fallback.ts"],"names":[],"mappings":"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"}
|
package/dist/fallback.js
CHANGED
|
@@ -96,6 +96,107 @@ export function isRateLimitError(error) {
|
|
|
96
96
|
];
|
|
97
97
|
return rateLimitPatterns.some(pattern => message.includes(pattern));
|
|
98
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Extract HTTP status code from error message
|
|
101
|
+
*
|
|
102
|
+
* @param error - The error to extract status from
|
|
103
|
+
* @returns HTTP status code or undefined
|
|
104
|
+
*/
|
|
105
|
+
export function extractHttpStatus(error) {
|
|
106
|
+
if (!(error instanceof Error))
|
|
107
|
+
return undefined;
|
|
108
|
+
const message = error.message;
|
|
109
|
+
// Match patterns like "(429)", "status 429", "HTTP 429", "code: 429"
|
|
110
|
+
const patterns = [
|
|
111
|
+
/\((\d{3})\)/, // (429)
|
|
112
|
+
/status[:\s]+(\d{3})/i, // status 429, status: 429
|
|
113
|
+
/HTTP[:\s]+(\d{3})/i, // HTTP 429, HTTP: 429
|
|
114
|
+
/code[:\s]+(\d{3})/i, // code 429, code: 429
|
|
115
|
+
/(\d{3})\s+error/i, // 429 error
|
|
116
|
+
];
|
|
117
|
+
for (const pattern of patterns) {
|
|
118
|
+
const match = message.match(pattern);
|
|
119
|
+
if (match && match[1]) {
|
|
120
|
+
const status = parseInt(match[1], 10);
|
|
121
|
+
if (status >= 100 && status < 600) {
|
|
122
|
+
return status;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Classify an error into a FallbackErrorType
|
|
130
|
+
*
|
|
131
|
+
* @param error - The error to classify
|
|
132
|
+
* @returns The error type classification
|
|
133
|
+
*/
|
|
134
|
+
export function classifyError(error) {
|
|
135
|
+
if (!(error instanceof Error))
|
|
136
|
+
return 'unknown';
|
|
137
|
+
const message = error.message.toLowerCase();
|
|
138
|
+
const httpStatus = extractHttpStatus(error);
|
|
139
|
+
// Check by HTTP status first
|
|
140
|
+
if (httpStatus) {
|
|
141
|
+
switch (httpStatus) {
|
|
142
|
+
case 429: return 'rate_limit';
|
|
143
|
+
case 403: return 'forbidden';
|
|
144
|
+
case 401: return 'auth_error';
|
|
145
|
+
case 404: return 'not_found';
|
|
146
|
+
case 500:
|
|
147
|
+
case 502:
|
|
148
|
+
case 503:
|
|
149
|
+
case 504: return 'server_error';
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// Check by message patterns
|
|
153
|
+
if (isRateLimitError(error))
|
|
154
|
+
return 'rate_limit';
|
|
155
|
+
if (message.includes('timeout') || message.includes('timed out')) {
|
|
156
|
+
return 'timeout';
|
|
157
|
+
}
|
|
158
|
+
if (message.includes('context') && (message.includes('length') || message.includes('too long') || message.includes('exceed'))) {
|
|
159
|
+
return 'context_length';
|
|
160
|
+
}
|
|
161
|
+
if (message.includes('auth') || message.includes('unauthorized') || message.includes('invalid key') || message.includes('invalid token')) {
|
|
162
|
+
return 'auth_error';
|
|
163
|
+
}
|
|
164
|
+
if (message.includes('not found') || message.includes('does not exist') || message.includes('unknown model')) {
|
|
165
|
+
return 'not_found';
|
|
166
|
+
}
|
|
167
|
+
if (message.includes('internal') || message.includes('server error') || message.includes('unavailable')) {
|
|
168
|
+
return 'server_error';
|
|
169
|
+
}
|
|
170
|
+
return 'unknown';
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get a human-readable description of an error type
|
|
174
|
+
*/
|
|
175
|
+
export function getErrorTypeDescription(errorType) {
|
|
176
|
+
switch (errorType) {
|
|
177
|
+
case 'rate_limit': return 'Rate Limited';
|
|
178
|
+
case 'forbidden': return 'Access Denied';
|
|
179
|
+
case 'server_error': return 'Server Error';
|
|
180
|
+
case 'timeout': return 'Timeout';
|
|
181
|
+
case 'auth_error': return 'Auth Error';
|
|
182
|
+
case 'not_found': return 'Not Found';
|
|
183
|
+
case 'context_length': return 'Context Too Long';
|
|
184
|
+
case 'unknown': return 'Error';
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Format a duration in milliseconds to a human-readable string
|
|
189
|
+
*/
|
|
190
|
+
function formatDuration(ms) {
|
|
191
|
+
if (ms < 1000)
|
|
192
|
+
return `${ms}ms`;
|
|
193
|
+
const secs = Math.round(ms / 1000);
|
|
194
|
+
if (secs < 60)
|
|
195
|
+
return `${secs}s`;
|
|
196
|
+
const mins = Math.floor(secs / 60);
|
|
197
|
+
const remainingSecs = secs % 60;
|
|
198
|
+
return remainingSecs > 0 ? `${mins}m ${remainingSecs}s` : `${mins}m`;
|
|
199
|
+
}
|
|
99
200
|
/**
|
|
100
201
|
* Manages automatic model fallback when rate limits are encountered.
|
|
101
202
|
*
|
|
@@ -107,10 +208,14 @@ export class FallbackManager {
|
|
|
107
208
|
fallbackModels;
|
|
108
209
|
cooldownMs;
|
|
109
210
|
enabled;
|
|
211
|
+
verbose;
|
|
212
|
+
quiet;
|
|
110
213
|
constructor(options = {}) {
|
|
111
214
|
this.fallbackModels = options.fallbackModels ?? DEFAULT_FALLBACK_MODELS;
|
|
112
215
|
this.cooldownMs = options.cooldownMs ?? DEFAULT_COOLDOWN_MS;
|
|
113
216
|
this.enabled = options.enabled ?? true;
|
|
217
|
+
this.verbose = options.verbose ?? false;
|
|
218
|
+
this.quiet = options.quiet ?? false;
|
|
114
219
|
}
|
|
115
220
|
/**
|
|
116
221
|
* Check if a model is currently on cooldown
|
|
@@ -261,27 +366,49 @@ export class FallbackManager {
|
|
|
261
366
|
}
|
|
262
367
|
const modelQueue = this.buildModelQueue(primaryModel);
|
|
263
368
|
const attempts = [];
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
369
|
+
const totalModels = modelQueue.length;
|
|
370
|
+
// Log queue info in verbose mode
|
|
371
|
+
if (this.verbose && !this.quiet) {
|
|
372
|
+
logger?.debug(`Fallback queue: [${modelQueue.join(' → ')}] (${totalModels} models)`);
|
|
373
|
+
// Show any models on cooldown
|
|
374
|
+
const cooldownStatus = this.getCooldownStatus();
|
|
375
|
+
if (cooldownStatus.size > 0) {
|
|
376
|
+
for (const [model, status] of cooldownStatus) {
|
|
377
|
+
logger?.debug(` ⏳ ${model} on cooldown (${formatDuration(status.remainingMs)} remaining)`);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
for (let i = 0; i < modelQueue.length; i++) {
|
|
382
|
+
const model = modelQueue[i];
|
|
383
|
+
const attemptNum = i + 1;
|
|
270
384
|
const startTime = Date.now();
|
|
271
385
|
const isFallback = model !== primaryModel;
|
|
272
|
-
|
|
273
|
-
|
|
386
|
+
const progress = `[${attemptNum}/${totalModels}]`;
|
|
387
|
+
// Log attempt start (only if not quiet)
|
|
388
|
+
if (!this.quiet) {
|
|
389
|
+
if (isFallback) {
|
|
390
|
+
logger?.info(`${progress} Trying fallback: ${this.formatModelName(model)}`);
|
|
391
|
+
}
|
|
392
|
+
else if (this.verbose) {
|
|
393
|
+
logger?.debug(`${progress} Trying primary: ${this.formatModelName(model)}`);
|
|
394
|
+
}
|
|
274
395
|
}
|
|
275
396
|
try {
|
|
276
397
|
const result = await operation(model);
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
398
|
+
const durationMs = Date.now() - startTime;
|
|
399
|
+
// Success! Log it (unless quiet)
|
|
400
|
+
if (!this.quiet) {
|
|
401
|
+
if (isFallback) {
|
|
402
|
+
logger?.info(`${progress} ✓ Fallback succeeded: ${this.formatModelName(model)} (${formatDuration(durationMs)})`);
|
|
403
|
+
}
|
|
404
|
+
else if (this.verbose) {
|
|
405
|
+
logger?.debug(`${progress} ✓ Primary succeeded: ${this.formatModelName(model)} (${formatDuration(durationMs)})`);
|
|
406
|
+
}
|
|
280
407
|
}
|
|
281
408
|
attempts.push({
|
|
282
409
|
model,
|
|
283
410
|
success: true,
|
|
284
|
-
durationMs
|
|
411
|
+
durationMs,
|
|
285
412
|
});
|
|
286
413
|
return {
|
|
287
414
|
result,
|
|
@@ -292,32 +419,57 @@ export class FallbackManager {
|
|
|
292
419
|
}
|
|
293
420
|
catch (error) {
|
|
294
421
|
const durationMs = Date.now() - startTime;
|
|
295
|
-
const
|
|
422
|
+
const errorType = classifyError(error);
|
|
423
|
+
const httpStatus = extractHttpStatus(error);
|
|
296
424
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
425
|
+
const errorDesc = getErrorTypeDescription(errorType);
|
|
426
|
+
// Should we add to cooldown?
|
|
427
|
+
const shouldCooldown = errorType === 'rate_limit' || errorType === 'forbidden' || errorType === 'server_error';
|
|
297
428
|
attempts.push({
|
|
298
429
|
model,
|
|
299
430
|
success: false,
|
|
300
431
|
error: errorMessage,
|
|
301
|
-
|
|
432
|
+
errorType,
|
|
433
|
+
httpStatus,
|
|
434
|
+
isRateLimit: errorType === 'rate_limit',
|
|
302
435
|
durationMs,
|
|
303
436
|
});
|
|
304
|
-
if (
|
|
305
|
-
// Add to cooldown and continue to next model
|
|
437
|
+
if (shouldCooldown) {
|
|
306
438
|
this.addToCooldown(model, errorMessage);
|
|
307
|
-
const
|
|
308
|
-
|
|
439
|
+
const cooldownRemaining = formatDuration(this.cooldownMs);
|
|
440
|
+
if (!this.quiet) {
|
|
441
|
+
const statusStr = httpStatus ? ` (${httpStatus})` : '';
|
|
442
|
+
logger?.warn(`${progress} ✗ ${this.formatModelName(model)}: ${errorDesc}${statusStr} → cooldown ${cooldownRemaining}`);
|
|
443
|
+
}
|
|
309
444
|
}
|
|
310
445
|
else {
|
|
311
|
-
// Non-
|
|
312
|
-
|
|
313
|
-
|
|
446
|
+
// Non-cooldown error - log differently
|
|
447
|
+
if (!this.quiet) {
|
|
448
|
+
const statusStr = httpStatus ? ` (${httpStatus})` : '';
|
|
449
|
+
logger?.warn(`${progress} ✗ ${this.formatModelName(model)}: ${errorDesc}${statusStr}`);
|
|
450
|
+
}
|
|
451
|
+
// For verbose mode, also show the full error message
|
|
452
|
+
if (this.verbose && !this.quiet) {
|
|
453
|
+
logger?.debug(` Error details: ${errorMessage.substring(0, 200)}`);
|
|
454
|
+
}
|
|
314
455
|
}
|
|
315
456
|
// Continue to next model in queue
|
|
316
457
|
}
|
|
317
458
|
}
|
|
318
459
|
// All models exhausted
|
|
319
|
-
|
|
320
|
-
|
|
460
|
+
const exhaustedError = new FallbackExhaustedError(attempts);
|
|
461
|
+
logger?.error(`All ${totalModels} models failed`, exhaustedError);
|
|
462
|
+
throw exhaustedError;
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* Format a model name for display (truncate long OpenRouter names)
|
|
466
|
+
*/
|
|
467
|
+
formatModelName(model) {
|
|
468
|
+
// Remove 'openrouter:' prefix for cleaner display
|
|
469
|
+
if (model.startsWith('openrouter:')) {
|
|
470
|
+
return model.replace('openrouter:', '');
|
|
471
|
+
}
|
|
472
|
+
return model;
|
|
321
473
|
}
|
|
322
474
|
/**
|
|
323
475
|
* Clear all cooldowns (useful for testing or manual reset)
|
|
@@ -338,6 +490,12 @@ export class FallbackManager {
|
|
|
338
490
|
if (options.enabled !== undefined) {
|
|
339
491
|
this.enabled = options.enabled;
|
|
340
492
|
}
|
|
493
|
+
if (options.verbose !== undefined) {
|
|
494
|
+
this.verbose = options.verbose;
|
|
495
|
+
}
|
|
496
|
+
if (options.quiet !== undefined) {
|
|
497
|
+
this.quiet = options.quiet;
|
|
498
|
+
}
|
|
341
499
|
}
|
|
342
500
|
/**
|
|
343
501
|
* Get current configuration
|
|
@@ -347,6 +505,8 @@ export class FallbackManager {
|
|
|
347
505
|
fallbackModels: [...this.fallbackModels],
|
|
348
506
|
cooldownMs: this.cooldownMs,
|
|
349
507
|
enabled: this.enabled,
|
|
508
|
+
verbose: this.verbose,
|
|
509
|
+
quiet: this.quiet,
|
|
350
510
|
};
|
|
351
511
|
}
|
|
352
512
|
}
|
package/dist/fallback.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.js","sourceRoot":"","sources":["../src/fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,6CAA6C;IAC7C,sCAAsC,EAAQ,yBAAyB;IACvE,2CAA2C,EAAG,+BAA+B;IAC7E,yCAAyC,EAAK,uBAAuB;IAErE,oCAAoC;IACpC,kCAAkC,EAAY,wBAAwB;IACtE,6CAA6C,EAAC,wBAAwB;IAEtE,+BAA+B;IAC/B,6CAA6C;IAC7C,qCAAqC;CACtC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC;AA4CzC;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/B,QAAQ,CAAoB;IAE5C,YAAY,QAA2B;QACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,KAAK,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE5C,gDAAgD;IAChD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7E,gDAAgD;IAChD,MAAM,iBAAiB,GAAG;QACxB,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,mBAAmB;QACnB,sBAAsB;QACtB,aAAa;QACb,UAAU;QACV,YAAY;QACZ,iBAAiB;KAClB,CAAC;IAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC;AAYD;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAClB,WAAW,GAA+B,IAAI,GAAG,EAAE,CAAC;IACpD,cAAc,CAAW;IACzB,UAAU,CAAS;IACnB,OAAO,CAAU;IAEzB,YAAY,UAA2B,EAAE;QACvC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,uBAAuB,CAAC;QACxE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC;QAC5D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACI,iBAAiB,CAAC,KAAa;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAEzB,gCAAgC;QAChC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACI,oBAAoB,CAAC,KAAa;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAErB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,OAAO,CAAC,CAAC;QACX,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAC,KAAa,EAAE,MAAc,EAAE,UAAmB;QACrE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE;YAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;YACvD,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,KAAa;QACrC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,iBAAiB;QACtB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmD,CAAC;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC;YACxC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YACtE,CAAC;iBAAM,CAAC;gBACN,2BAA2B;gBAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACI,eAAe,CAAC,YAAoB;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,6CAA6C;QAC7C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;QAED,8CAA8C;QAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxC,0DAA0D;YAC1D,IAAI,KAAK,KAAK,YAAY;gBAAE,SAAS;YACrC,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBAAE,SAAS;YAC5C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;QAED,qEAAqE;QACrE,uDAAuD;QACvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,CAAC,mBAAmB,CAC9B,YAAoB,EACpB,SAAwC,EACxC,MAAe;QAEf,2DAA2D;QAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;gBAC7C,OAAO;oBACL,MAAM;oBACN,SAAS,EAAE,YAAY;oBACvB,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,CAAC;4BACT,KAAK,EAAE,YAAY;4BACnB,OAAO,EAAE,IAAI;4BACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;yBACnC,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAsB,EAAE,CAAC;QAEvC,MAAM,EAAE,KAAK,CAAC,sBAAsB,EAAE;YACpC,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;YAC5B,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI;SACjC,CAAC,CAAC;QAEH,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,KAAK,KAAK,YAAY,CAAC;YAE1C,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,EAAE,IAAI,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;gBAEtC,0CAA0C;gBAC1C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,EAAE,IAAI,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;gBACrD,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK;oBACL,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC,CAAC;gBAEH,OAAO;oBACL,MAAM;oBACN,SAAS,EAAE,KAAK;oBAChB,WAAW,EAAE,UAAU;oBACvB,QAAQ;iBACT,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAC1C,MAAM,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE5E,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,YAAY;oBACnB,WAAW;oBACX,UAAU;iBACX,CAAC,CAAC;gBAEH,IAAI,WAAW,EAAE,CAAC;oBAChB,6CAA6C;oBAC7C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;oBACxC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;oBACxD,MAAM,EAAE,IAAI,CAAC,SAAS,KAAK,2BAA2B,YAAY,GAAG,CAAC,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACN,iDAAiD;oBACjD,6CAA6C;oBAC7C,MAAM,EAAE,IAAI,CAAC,SAAS,KAAK,YAAY,YAAY,EAAE,CAAC,CAAC;gBACzD,CAAC;gBAED,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,EAAE,KAAK,CAAC,sBAAsB,EAAE,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5E,MAAM,IAAI,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,cAAc;QACnB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACI,SAAS,CAAC,OAAiC;QAChD,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC/C,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACvC,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACI,SAAS;QACd,OAAO;YACL,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YACxC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAED;;;GAGG;AACH,IAAI,qBAAqB,GAA2B,IAAI,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAyB;IAChE,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,qBAAqB,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;SAAM,IAAI,OAAO,EAAE,CAAC;QACnB,oCAAoC;QACpC,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B;IACxC,qBAAqB,GAAG,IAAI,CAAC;AAC/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"fallback.js","sourceRoot":"","sources":["../src/fallback.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-puter-auth",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.50",
|
|
4
4
|
"description": "Puter.com OAuth plugin for OpenCode - Easy access to Claude, GPT, Gemini & 500+ AI models. No API keys needed, credit-based usage.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"puter-auth": "dist/cli.js"
|