opencode-puter-auth 1.0.37 → 1.0.38
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/README.md +146 -8
- package/dist/auth.d.ts +2 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +16 -1
- package/dist/auth.js.map +1 -1
- package/dist/client.d.ts +20 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +127 -26
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +100 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +185 -0
- package/dist/logger.js.map +1 -0
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
[](https://ko-fi.com/chindrismihai)
|
|
7
7
|
|
|
8
|
-
> Access Claude Opus 4.5, Sonnet 4.5, GPT-5, Gemini, DeepSeek, and 500+ AI models through Puter.com OAuth. No API keys needed - free tier available with undocumented limits.
|
|
8
|
+
> Access Claude Opus 4.5, Sonnet 4.5, GPT-5, Gemini, DeepSeek, and 500+ AI models through Puter.com OAuth. Includes 400+ FREE OpenRouter models. No API keys needed - free tier available with undocumented limits.
|
|
9
9
|
|
|
10
10
|
Enable OpenCode to authenticate with [Puter.com](https://puter.com) via OAuth, giving you access to premium AI models through your Puter account. Ideal for app developers using the "User-Pays" model where each user covers their own AI costs.
|
|
11
11
|
|
|
@@ -16,6 +16,7 @@ Enable OpenCode to authenticate with [Puter.com](https://puter.com) via OAuth, g
|
|
|
16
16
|
- **Gemini 2.5 Pro** - 1M context window
|
|
17
17
|
- **DeepSeek R1** - Advanced reasoning model
|
|
18
18
|
- **500+ More Models** - Mistral, Llama, Grok, and more
|
|
19
|
+
- **400+ FREE OpenRouter Models** - Including MiMo-V2-Flash (#1 on SWE-bench), Qwen3 Coder, and GPT-OSS
|
|
19
20
|
- **Real-time SSE Streaming** - Full streaming support
|
|
20
21
|
- **Tool Calling** - Native function calling support
|
|
21
22
|
- **Vision Support** - Image analysis capabilities
|
|
@@ -205,6 +206,114 @@ opencode --model=puter/claude-opus-4-5
|
|
|
205
206
|
|-------|-------------|---------|----------|
|
|
206
207
|
| `puter/deepseek-r1` | Advanced reasoning | 128K | Complex problem solving |
|
|
207
208
|
|
|
209
|
+
## OpenRouter Models (400+ Free Models via Puter)
|
|
210
|
+
|
|
211
|
+
Puter acts as a gateway to **OpenRouter**, giving you access to 400+ additional models. Many of these have FREE tiers (`:free` suffix) with more generous limits than premium models.
|
|
212
|
+
|
|
213
|
+
### How It Works
|
|
214
|
+
|
|
215
|
+
Use the `openrouter:` prefix to access any OpenRouter model through Puter:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# Format: puter/openrouter:provider/model-name
|
|
219
|
+
opencode --model=puter/openrouter:deepseek/deepseek-r1-0528:free
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Configuration for OpenRouter Models
|
|
223
|
+
|
|
224
|
+
Add these to your `opencode.json` models section:
|
|
225
|
+
|
|
226
|
+
```json
|
|
227
|
+
{
|
|
228
|
+
"provider": {
|
|
229
|
+
"puter": {
|
|
230
|
+
"npm": "opencode-puter-auth",
|
|
231
|
+
"name": "Puter.com (500+ AI Models)",
|
|
232
|
+
"models": {
|
|
233
|
+
"openrouter:xiaomi/mimo-v2-flash:free": {
|
|
234
|
+
"name": "MiMo-V2-Flash (Free - Best Open Source)",
|
|
235
|
+
"limit": { "context": 262000, "output": 32768 },
|
|
236
|
+
"modalities": { "input": ["text"], "output": ["text"] }
|
|
237
|
+
},
|
|
238
|
+
"openrouter:mistralai/devstral-2512:free": {
|
|
239
|
+
"name": "Devstral 2 (Free - Agentic Coding)",
|
|
240
|
+
"limit": { "context": 262000, "output": 32768 },
|
|
241
|
+
"modalities": { "input": ["text"], "output": ["text"] }
|
|
242
|
+
},
|
|
243
|
+
"openrouter:deepseek/deepseek-r1-0528:free": {
|
|
244
|
+
"name": "DeepSeek R1 0528 (Free - o1-level Reasoning)",
|
|
245
|
+
"limit": { "context": 164000, "output": 32768 },
|
|
246
|
+
"modalities": { "input": ["text"], "output": ["text"] }
|
|
247
|
+
},
|
|
248
|
+
"openrouter:qwen/qwen3-coder:free": {
|
|
249
|
+
"name": "Qwen3 Coder 480B (Free - Massive Coder)",
|
|
250
|
+
"limit": { "context": 262000, "output": 32768 },
|
|
251
|
+
"modalities": { "input": ["text"], "output": ["text"] }
|
|
252
|
+
},
|
|
253
|
+
"openrouter:meta-llama/llama-3.3-70b-instruct:free": {
|
|
254
|
+
"name": "Llama 3.3 70B (Free - Multilingual)",
|
|
255
|
+
"limit": { "context": 131000, "output": 32768 },
|
|
256
|
+
"modalities": { "input": ["text"], "output": ["text"] }
|
|
257
|
+
},
|
|
258
|
+
"openrouter:google/gemma-3-27b-it:free": {
|
|
259
|
+
"name": "Gemma 3 27B (Free - Multimodal)",
|
|
260
|
+
"limit": { "context": 131000, "output": 32768 },
|
|
261
|
+
"modalities": { "input": ["text", "image"], "output": ["text"] }
|
|
262
|
+
},
|
|
263
|
+
"openrouter:openai/gpt-oss-120b:free": {
|
|
264
|
+
"name": "GPT-OSS 120B (Free - OpenAI Open Weights)",
|
|
265
|
+
"limit": { "context": 131000, "output": 32768 },
|
|
266
|
+
"modalities": { "input": ["text"], "output": ["text"] }
|
|
267
|
+
},
|
|
268
|
+
"openrouter:google/gemini-2.0-flash-exp:free": {
|
|
269
|
+
"name": "Gemini 2.0 Flash Exp (Free - 1M Context)",
|
|
270
|
+
"limit": { "context": 1050000, "output": 65536 },
|
|
271
|
+
"modalities": { "input": ["text", "image"], "output": ["text"] }
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Top Free OpenRouter Models (January 2026)
|
|
280
|
+
|
|
281
|
+
These models are completely FREE via Puter's OpenRouter gateway:
|
|
282
|
+
|
|
283
|
+
| Model | Parameters | Context | Best For |
|
|
284
|
+
|-------|------------|---------|----------|
|
|
285
|
+
| `puter/openrouter:xiaomi/mimo-v2-flash:free` | 309B MoE | 262K | **#1 on SWE-bench** - Comparable to Claude Sonnet 4.5 |
|
|
286
|
+
| `puter/openrouter:mistralai/devstral-2512:free` | 123B | 262K | Agentic coding, multi-file changes |
|
|
287
|
+
| `puter/openrouter:deepseek/deepseek-r1-0528:free` | 671B MoE | 164K | o1-level reasoning, fully open-source |
|
|
288
|
+
| `puter/openrouter:qwen/qwen3-coder:free` | 480B MoE | 262K | Massive coding model, tool use |
|
|
289
|
+
| `puter/openrouter:openai/gpt-oss-120b:free` | 117B MoE | 131K | OpenAI's open-weight model |
|
|
290
|
+
| `puter/openrouter:openai/gpt-oss-20b:free` | 21B MoE | 131K | Lightweight, single-GPU deployable |
|
|
291
|
+
| `puter/openrouter:meta-llama/llama-3.3-70b-instruct:free` | 70B | 131K | Multilingual, general purpose |
|
|
292
|
+
| `puter/openrouter:google/gemma-3-27b-it:free` | 27B | 131K | Vision + 140 languages |
|
|
293
|
+
| `puter/openrouter:google/gemini-2.0-flash-exp:free` | - | 1M | Fastest Gemini, huge context |
|
|
294
|
+
| `puter/openrouter:nousresearch/hermes-3-llama-3.1-405b:free` | 405B | 131K | Frontier-level, agentic |
|
|
295
|
+
|
|
296
|
+
### Why Use OpenRouter Models?
|
|
297
|
+
|
|
298
|
+
1. **More Generous Free Limits** - The `:free` models often have better rate limits than premium Puter models
|
|
299
|
+
2. **Open Source** - Many are fully open-source with transparent weights
|
|
300
|
+
3. **Specialized** - Models optimized for specific tasks (coding, reasoning, etc.)
|
|
301
|
+
4. **Fallback Options** - When premium models are rate-limited, fall back to free alternatives
|
|
302
|
+
|
|
303
|
+
### Accessing Any OpenRouter Model
|
|
304
|
+
|
|
305
|
+
You can use ANY model from [OpenRouter's catalog](https://openrouter.ai/models) by adding it to your config:
|
|
306
|
+
|
|
307
|
+
```json
|
|
308
|
+
"openrouter:anthropic/claude-opus-4.5": {
|
|
309
|
+
"name": "Claude Opus 4.5 (via OpenRouter)",
|
|
310
|
+
"limit": { "context": 200000, "output": 64000 },
|
|
311
|
+
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] }
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
Note: Non-free models will consume your Puter credits based on OpenRouter pricing.
|
|
316
|
+
|
|
208
317
|
## AI SDK Provider (Standalone Usage)
|
|
209
318
|
|
|
210
319
|
You can also use the Puter AI SDK provider directly in your own applications:
|
|
@@ -241,17 +350,45 @@ Create `~/.config/opencode/puter.json` for advanced settings:
|
|
|
241
350
|
"debug": false,
|
|
242
351
|
"api_timeout_ms": 120000,
|
|
243
352
|
"auto_create_temp_user": true,
|
|
244
|
-
"max_retries": 3
|
|
353
|
+
"max_retries": 3,
|
|
354
|
+
"cache_ttl_ms": 300000
|
|
245
355
|
}
|
|
246
356
|
```
|
|
247
357
|
|
|
248
358
|
| Option | Default | Description |
|
|
249
359
|
|--------|---------|-------------|
|
|
250
360
|
| `quiet_mode` | `false` | Suppress status messages |
|
|
251
|
-
| `debug` | `false` | Enable debug logging |
|
|
361
|
+
| `debug` | `false` | Enable verbose debug logging (see below) |
|
|
252
362
|
| `api_timeout_ms` | `120000` | Request timeout (2 min) |
|
|
253
363
|
| `auto_create_temp_user` | `true` | Auto-create temp account |
|
|
254
364
|
| `max_retries` | `3` | Retry failed requests |
|
|
365
|
+
| `cache_ttl_ms` | `300000` | Model list cache TTL (5 min) |
|
|
366
|
+
|
|
367
|
+
### Debug Logging
|
|
368
|
+
|
|
369
|
+
When `debug: true` is set, the plugin outputs detailed logs with timestamps:
|
|
370
|
+
|
|
371
|
+
```
|
|
372
|
+
[puter-auth] 15:30:45 Request: POST /drivers/call method=complete model=claude-opus-4-5 stream=true messages=3
|
|
373
|
+
[puter-auth] 15:30:45 Stream connected duration=234ms
|
|
374
|
+
[puter-auth] 15:30:47 Response: 200 Stream complete (2.1s)
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
If a request fails and retries:
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
[puter-auth] 15:30:45 Request: POST /drivers/call method=complete model=claude-opus-4-5
|
|
381
|
+
[puter-auth] 15:30:45 Retry 1/3: Rate limited (429), waiting 1000ms
|
|
382
|
+
[puter-auth] 15:30:46 Retry 2/3: Rate limited (429), waiting 2000ms
|
|
383
|
+
[puter-auth] 15:30:48 Response: 200 OK (3.2s)
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
Auth state changes:
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
[puter-auth] 15:30:45 Auth: Account added - username
|
|
390
|
+
[puter-auth] 15:30:45 Auth: Switched account - other_user
|
|
391
|
+
```
|
|
255
392
|
|
|
256
393
|
## Custom Tools
|
|
257
394
|
|
|
@@ -362,11 +499,12 @@ The new standalone provider offers:
|
|
|
362
499
|
This means your Puter account has exhausted its free tier credits. Despite Puter's "Free Unlimited" marketing, limits do exist.
|
|
363
500
|
|
|
364
501
|
**Solutions:**
|
|
365
|
-
1. **
|
|
366
|
-
2. **
|
|
367
|
-
3. **
|
|
368
|
-
4. **
|
|
369
|
-
5. **
|
|
502
|
+
1. **Switch to FREE OpenRouter models** - Use `puter/openrouter:xiaomi/mimo-v2-flash:free` or other `:free` models (see OpenRouter section above)
|
|
503
|
+
2. **Wait** - Limits may reset (timing undocumented)
|
|
504
|
+
3. **Add credits** on [Puter.com](https://puter.com) (paid)
|
|
505
|
+
4. **New account** - Create a new Puter account (new accounts get free credits)
|
|
506
|
+
5. **Switch providers** - Use Antigravity, OpenRouter free tier, or other free providers
|
|
507
|
+
6. **Use lighter models** - Haiku/Flash models may consume fewer credits than Opus
|
|
370
508
|
|
|
371
509
|
### Clear cached plugin and reinstall
|
|
372
510
|
|
package/dist/auth.d.ts
CHANGED
|
@@ -12,7 +12,8 @@ declare class PuterAuthManagerInternal {
|
|
|
12
12
|
private configDir;
|
|
13
13
|
private accountsFile;
|
|
14
14
|
private storage;
|
|
15
|
-
|
|
15
|
+
private logger;
|
|
16
|
+
constructor(configDir: string, config?: Partial<PuterConfig>);
|
|
16
17
|
/**
|
|
17
18
|
* Initialize the auth manager and load existing accounts
|
|
18
19
|
*/
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EACf,WAAW,EACZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EACf,WAAW,EACZ,MAAM,YAAY,CAAC;AAmLpB,cAAM,wBAAwB;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,MAAM,CAAS;gBAEX,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAMhE;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQlC;;OAEG;YACW,eAAe;IAQ7B;;OAEG;YACW,YAAY;IAe1B;;OAEG;YACW,YAAY;IAO1B;;OAEG;IACI,gBAAgB,IAAI,YAAY,GAAG,IAAI;IAO9C;;OAEG;IACI,cAAc,IAAI,YAAY,EAAE;IAIvC;;OAEG;IACI,eAAe,IAAI,OAAO;IAIjC;;;;;OAKG;IACU,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IA+G9C;;OAEG;IACU,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB7D;;OAEG;IACU,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa3D;;OAEG;IACU,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkB3D;;OAEG;IACU,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhD;;OAEG;IACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CASrC;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,CAAC;AAExD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,gBAAgB,CAE7G"}
|
package/dist/auth.js
CHANGED
|
@@ -12,6 +12,7 @@ import path from 'node:path';
|
|
|
12
12
|
import http from 'node:http';
|
|
13
13
|
import { URL } from 'node:url';
|
|
14
14
|
import { PuterAccountsStorageSchema } from './types.js';
|
|
15
|
+
import { createLoggerFromConfig } from './logger.js';
|
|
15
16
|
const DEFAULT_CALLBACK_PORT = 19847;
|
|
16
17
|
const AUTH_TIMEOUT_MS = 300000; // 5 minutes
|
|
17
18
|
/**
|
|
@@ -189,16 +190,21 @@ class PuterAuthManagerInternal {
|
|
|
189
190
|
configDir;
|
|
190
191
|
accountsFile;
|
|
191
192
|
storage = null;
|
|
192
|
-
|
|
193
|
+
logger;
|
|
194
|
+
constructor(configDir, config = {}) {
|
|
193
195
|
this.configDir = configDir;
|
|
194
196
|
this.accountsFile = path.join(configDir, 'puter-accounts.json');
|
|
197
|
+
this.logger = createLoggerFromConfig(config);
|
|
195
198
|
}
|
|
196
199
|
/**
|
|
197
200
|
* Initialize the auth manager and load existing accounts
|
|
198
201
|
*/
|
|
199
202
|
async init() {
|
|
203
|
+
this.logger.debug('Initializing auth manager');
|
|
200
204
|
await this.ensureConfigDir();
|
|
201
205
|
await this.loadAccounts();
|
|
206
|
+
const accountCount = this.storage?.accounts.length || 0;
|
|
207
|
+
this.logger.debug('Auth manager initialized', { accounts: accountCount });
|
|
202
208
|
}
|
|
203
209
|
/**
|
|
204
210
|
* Ensure the config directory exists
|
|
@@ -380,11 +386,13 @@ class PuterAuthManagerInternal {
|
|
|
380
386
|
// Update existing
|
|
381
387
|
this.storage.accounts[existingIndex] = account;
|
|
382
388
|
this.storage.activeIndex = existingIndex;
|
|
389
|
+
this.logger.auth('Account updated', account.username);
|
|
383
390
|
}
|
|
384
391
|
else {
|
|
385
392
|
// Add new
|
|
386
393
|
this.storage.accounts.push(account);
|
|
387
394
|
this.storage.activeIndex = this.storage.accounts.length - 1;
|
|
395
|
+
this.logger.auth('Account added', account.username);
|
|
388
396
|
}
|
|
389
397
|
await this.saveAccounts();
|
|
390
398
|
}
|
|
@@ -393,10 +401,13 @@ class PuterAuthManagerInternal {
|
|
|
393
401
|
*/
|
|
394
402
|
async switchAccount(index) {
|
|
395
403
|
if (!this.storage || index < 0 || index >= this.storage.accounts.length) {
|
|
404
|
+
this.logger.warn('Invalid account switch attempt', { index });
|
|
396
405
|
return false;
|
|
397
406
|
}
|
|
398
407
|
this.storage.activeIndex = index;
|
|
399
408
|
await this.saveAccounts();
|
|
409
|
+
const username = this.storage.accounts[index]?.username;
|
|
410
|
+
this.logger.auth('Switched account', username);
|
|
400
411
|
return true;
|
|
401
412
|
}
|
|
402
413
|
/**
|
|
@@ -404,13 +415,16 @@ class PuterAuthManagerInternal {
|
|
|
404
415
|
*/
|
|
405
416
|
async removeAccount(index) {
|
|
406
417
|
if (!this.storage || index < 0 || index >= this.storage.accounts.length) {
|
|
418
|
+
this.logger.warn('Invalid account remove attempt', { index });
|
|
407
419
|
return false;
|
|
408
420
|
}
|
|
421
|
+
const username = this.storage.accounts[index]?.username;
|
|
409
422
|
this.storage.accounts.splice(index, 1);
|
|
410
423
|
if (this.storage.activeIndex >= this.storage.accounts.length) {
|
|
411
424
|
this.storage.activeIndex = Math.max(0, this.storage.accounts.length - 1);
|
|
412
425
|
}
|
|
413
426
|
await this.saveAccounts();
|
|
427
|
+
this.logger.auth('Account removed', username);
|
|
414
428
|
return true;
|
|
415
429
|
}
|
|
416
430
|
/**
|
|
@@ -427,6 +441,7 @@ class PuterAuthManagerInternal {
|
|
|
427
441
|
* Logout - remove all accounts
|
|
428
442
|
*/
|
|
429
443
|
async logout() {
|
|
444
|
+
this.logger.auth('Logging out', 'all accounts');
|
|
430
445
|
this.storage = {
|
|
431
446
|
version: 1,
|
|
432
447
|
accounts: [],
|
package/dist/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAO/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -8,8 +8,13 @@ import type { PuterChatMessage, PuterChatOptions, PuterChatResponse, PuterChatSt
|
|
|
8
8
|
export declare class PuterClient {
|
|
9
9
|
private authToken;
|
|
10
10
|
private config;
|
|
11
|
-
private
|
|
11
|
+
private logger;
|
|
12
|
+
private modelCache;
|
|
12
13
|
constructor(authToken: string, config?: Partial<PuterConfig>);
|
|
14
|
+
/**
|
|
15
|
+
* Get the cache TTL in milliseconds
|
|
16
|
+
*/
|
|
17
|
+
private get cacheTtl();
|
|
13
18
|
/**
|
|
14
19
|
* Get the API base URL
|
|
15
20
|
*/
|
|
@@ -24,8 +29,16 @@ export declare class PuterClient {
|
|
|
24
29
|
private get retryOptions();
|
|
25
30
|
/**
|
|
26
31
|
* Update the auth token
|
|
32
|
+
*
|
|
33
|
+
* Note: This invalidates the model cache since models might differ per account.
|
|
27
34
|
*/
|
|
28
35
|
setAuthToken(token: string): void;
|
|
36
|
+
/**
|
|
37
|
+
* Invalidate the model cache
|
|
38
|
+
*
|
|
39
|
+
* Forces the next `listModels()` call to fetch fresh data from the API.
|
|
40
|
+
*/
|
|
41
|
+
invalidateModelCache(): void;
|
|
29
42
|
/**
|
|
30
43
|
* Send a chat completion request (non-streaming)
|
|
31
44
|
*
|
|
@@ -70,16 +83,21 @@ export declare class PuterClient {
|
|
|
70
83
|
* List available models from Puter API
|
|
71
84
|
*
|
|
72
85
|
* Falls back to a default model list if the API is unavailable.
|
|
86
|
+
* Results are cached in memory with configurable TTL (default: 5 minutes).
|
|
73
87
|
*
|
|
88
|
+
* @param forceRefresh - Bypass cache and fetch fresh data from API
|
|
74
89
|
* @returns Array of available model information
|
|
75
90
|
*
|
|
76
91
|
* @example
|
|
77
92
|
* ```ts
|
|
78
93
|
* const models = await client.listModels();
|
|
79
94
|
* models.forEach(m => console.log(`${m.id}: ${m.name}`));
|
|
95
|
+
*
|
|
96
|
+
* // Force refresh from API
|
|
97
|
+
* const freshModels = await client.listModels(true);
|
|
80
98
|
* ```
|
|
81
99
|
*/
|
|
82
|
-
listModels(): Promise<PuterModelInfo[]>;
|
|
100
|
+
listModels(forceRefresh?: boolean): Promise<PuterModelInfo[]>;
|
|
83
101
|
/**
|
|
84
102
|
* Get default model list (fallback)
|
|
85
103
|
*/
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AAkBpB,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAA2B;gBAEjC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM;IAMhE;;OAEG;IACH,OAAO,KAAK,QAAQ,GAEnB;IAED;;OAEG;IACH,OAAO,KAAK,MAAM,GAEjB;IAED;;OAEG;IACH,OAAO,KAAK,OAAO,GAElB;IAED;;OAEG;IACH,OAAO,KAAK,YAAY,GAsBvB;IAED;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQxC;;;;OAIG;IACI,oBAAoB,IAAI,IAAI;IAOnC;;;;;;;;;;;;;;;;;;OAkBG;IACU,IAAI,CACf,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAkC7B;;;;;;;;;;;;;;;;;;OAkBG;IACW,UAAU,CACtB,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,OAAO,GAAE,gBAAqB,GAC7B,cAAc,CAAC,oBAAoB,CAAC;IAqGvC;;;;;;;;;;;;;;;;;OAiBG;IACU,UAAU,CAAC,YAAY,UAAQ,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA4DxE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;;;;;;;;OASG;YACW,WAAW;IAqCzB;;;;;;;;;;;;;;;OAeG;IACU,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;CAehD"}
|
package/dist/client.js
CHANGED
|
@@ -5,18 +5,27 @@
|
|
|
5
5
|
* Includes automatic retry with exponential backoff for transient failures.
|
|
6
6
|
*/
|
|
7
7
|
import { withRetry } from './retry.js';
|
|
8
|
+
import { createLoggerFromConfig } from './logger.js';
|
|
8
9
|
const DEFAULT_API_URL = 'https://api.puter.com';
|
|
9
10
|
const DEFAULT_TIMEOUT = 120000;
|
|
10
11
|
const DEFAULT_MAX_RETRIES = 3;
|
|
11
12
|
const DEFAULT_RETRY_DELAY = 1000;
|
|
13
|
+
const DEFAULT_CACHE_TTL = 300000; // 5 minutes
|
|
12
14
|
export class PuterClient {
|
|
13
15
|
authToken;
|
|
14
16
|
config;
|
|
15
|
-
|
|
17
|
+
logger;
|
|
18
|
+
modelCache = null;
|
|
16
19
|
constructor(authToken, config = {}) {
|
|
17
20
|
this.authToken = authToken;
|
|
18
21
|
this.config = config;
|
|
19
|
-
this.
|
|
22
|
+
this.logger = createLoggerFromConfig(config);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the cache TTL in milliseconds
|
|
26
|
+
*/
|
|
27
|
+
get cacheTtl() {
|
|
28
|
+
return this.config.cache_ttl_ms ?? DEFAULT_CACHE_TTL;
|
|
20
29
|
}
|
|
21
30
|
/**
|
|
22
31
|
* Get the API base URL
|
|
@@ -37,18 +46,41 @@ export class PuterClient {
|
|
|
37
46
|
return {
|
|
38
47
|
maxRetries: this.config.max_retries ?? DEFAULT_MAX_RETRIES,
|
|
39
48
|
initialDelay: this.config.retry_delay_ms ?? DEFAULT_RETRY_DELAY,
|
|
40
|
-
onRetry:
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
onRetry: (attempt, error, delay) => {
|
|
50
|
+
// Extract status code from error message if present
|
|
51
|
+
const statusMatch = error.message.match(/\((\d+)\)/);
|
|
52
|
+
const status = statusMatch ? statusMatch[1] : 'error';
|
|
53
|
+
const reason = error.message.includes('429') || error.message.includes('rate limit')
|
|
54
|
+
? `Rate limited (${status})`
|
|
55
|
+
: error.message.includes('timeout')
|
|
56
|
+
? 'Timeout'
|
|
57
|
+
: `Error (${status})`;
|
|
58
|
+
this.logger.retry(attempt, this.config.max_retries ?? DEFAULT_MAX_RETRIES, reason, delay);
|
|
59
|
+
},
|
|
45
60
|
};
|
|
46
61
|
}
|
|
47
62
|
/**
|
|
48
63
|
* Update the auth token
|
|
64
|
+
*
|
|
65
|
+
* Note: This invalidates the model cache since models might differ per account.
|
|
49
66
|
*/
|
|
50
67
|
setAuthToken(token) {
|
|
51
|
-
this.authToken
|
|
68
|
+
if (this.authToken !== token) {
|
|
69
|
+
this.authToken = token;
|
|
70
|
+
this.modelCache = null; // Invalidate cache on token change
|
|
71
|
+
this.logger.debug('Auth token updated, cache invalidated');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Invalidate the model cache
|
|
76
|
+
*
|
|
77
|
+
* Forces the next `listModels()` call to fetch fresh data from the API.
|
|
78
|
+
*/
|
|
79
|
+
invalidateModelCache() {
|
|
80
|
+
if (this.modelCache) {
|
|
81
|
+
this.modelCache = null;
|
|
82
|
+
this.logger.debug('Model cache invalidated');
|
|
83
|
+
}
|
|
52
84
|
}
|
|
53
85
|
/**
|
|
54
86
|
* Send a chat completion request (non-streaming)
|
|
@@ -70,15 +102,34 @@ export class PuterClient {
|
|
|
70
102
|
* ```
|
|
71
103
|
*/
|
|
72
104
|
async chat(messages, options = {}) {
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
105
|
+
const model = options.model || 'gpt-5-nano';
|
|
106
|
+
const startTime = Date.now();
|
|
107
|
+
this.logger.request('POST', '/drivers/call', {
|
|
108
|
+
method: 'complete',
|
|
109
|
+
model,
|
|
76
110
|
stream: false,
|
|
77
|
-
|
|
78
|
-
temperature: options.temperature,
|
|
79
|
-
tools: options.tools,
|
|
111
|
+
messages: messages.length,
|
|
80
112
|
});
|
|
81
|
-
|
|
113
|
+
try {
|
|
114
|
+
const response = await this.makeRequest('complete', {
|
|
115
|
+
messages,
|
|
116
|
+
model,
|
|
117
|
+
stream: false,
|
|
118
|
+
max_tokens: options.max_tokens,
|
|
119
|
+
temperature: options.temperature,
|
|
120
|
+
tools: options.tools,
|
|
121
|
+
});
|
|
122
|
+
const duration = Date.now() - startTime;
|
|
123
|
+
this.logger.response(200, 'OK', duration);
|
|
124
|
+
return response.result;
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
const duration = Date.now() - startTime;
|
|
128
|
+
const statusMatch = error instanceof Error && error.message.match(/\((\d+)\)/);
|
|
129
|
+
const status = statusMatch ? parseInt(statusMatch[1], 10) : 500;
|
|
130
|
+
this.logger.response(status, error instanceof Error ? error.message : 'Unknown error', duration);
|
|
131
|
+
throw error;
|
|
132
|
+
}
|
|
82
133
|
}
|
|
83
134
|
/**
|
|
84
135
|
* Send a streaming chat completion request
|
|
@@ -102,6 +153,14 @@ export class PuterClient {
|
|
|
102
153
|
async *chatStream(messages, options = {}) {
|
|
103
154
|
const controller = new AbortController();
|
|
104
155
|
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
156
|
+
const model = options.model || 'gpt-5-nano';
|
|
157
|
+
const startTime = Date.now();
|
|
158
|
+
this.logger.request('POST', '/drivers/call', {
|
|
159
|
+
method: 'complete',
|
|
160
|
+
model,
|
|
161
|
+
stream: true,
|
|
162
|
+
messages: messages.length,
|
|
163
|
+
});
|
|
105
164
|
try {
|
|
106
165
|
// Retry the initial connection
|
|
107
166
|
const response = await withRetry(async () => {
|
|
@@ -116,7 +175,7 @@ export class PuterClient {
|
|
|
116
175
|
method: 'complete',
|
|
117
176
|
args: {
|
|
118
177
|
messages,
|
|
119
|
-
model
|
|
178
|
+
model,
|
|
120
179
|
stream: true,
|
|
121
180
|
max_tokens: options.max_tokens,
|
|
122
181
|
temperature: options.temperature,
|
|
@@ -132,6 +191,8 @@ export class PuterClient {
|
|
|
132
191
|
}
|
|
133
192
|
return res;
|
|
134
193
|
}, this.retryOptions);
|
|
194
|
+
const connectionTime = Date.now() - startTime;
|
|
195
|
+
this.logger.debug('Stream connected', { duration: `${connectionTime}ms` });
|
|
135
196
|
if (!response.body) {
|
|
136
197
|
throw new Error('No response body for streaming');
|
|
137
198
|
}
|
|
@@ -152,6 +213,8 @@ export class PuterClient {
|
|
|
152
213
|
const chunk = JSON.parse(line);
|
|
153
214
|
yield chunk;
|
|
154
215
|
if (chunk.done) {
|
|
216
|
+
const totalDuration = Date.now() - startTime;
|
|
217
|
+
this.logger.response(200, 'Stream complete', totalDuration);
|
|
155
218
|
return;
|
|
156
219
|
}
|
|
157
220
|
}
|
|
@@ -171,6 +234,8 @@ export class PuterClient {
|
|
|
171
234
|
// Ignore
|
|
172
235
|
}
|
|
173
236
|
}
|
|
237
|
+
const totalDuration = Date.now() - startTime;
|
|
238
|
+
this.logger.response(200, 'Stream ended', totalDuration);
|
|
174
239
|
}
|
|
175
240
|
finally {
|
|
176
241
|
clearTimeout(timeoutId);
|
|
@@ -180,18 +245,37 @@ export class PuterClient {
|
|
|
180
245
|
* List available models from Puter API
|
|
181
246
|
*
|
|
182
247
|
* Falls back to a default model list if the API is unavailable.
|
|
248
|
+
* Results are cached in memory with configurable TTL (default: 5 minutes).
|
|
183
249
|
*
|
|
250
|
+
* @param forceRefresh - Bypass cache and fetch fresh data from API
|
|
184
251
|
* @returns Array of available model information
|
|
185
252
|
*
|
|
186
253
|
* @example
|
|
187
254
|
* ```ts
|
|
188
255
|
* const models = await client.listModels();
|
|
189
256
|
* models.forEach(m => console.log(`${m.id}: ${m.name}`));
|
|
257
|
+
*
|
|
258
|
+
* // Force refresh from API
|
|
259
|
+
* const freshModels = await client.listModels(true);
|
|
190
260
|
* ```
|
|
191
261
|
*/
|
|
192
|
-
async listModels() {
|
|
262
|
+
async listModels(forceRefresh = false) {
|
|
263
|
+
// Check cache first
|
|
264
|
+
if (!forceRefresh && this.modelCache) {
|
|
265
|
+
const cacheAge = Date.now() - this.modelCache.timestamp;
|
|
266
|
+
if (cacheAge < this.cacheTtl) {
|
|
267
|
+
this.logger.debug('Using cached models', {
|
|
268
|
+
count: this.modelCache.models.length,
|
|
269
|
+
age: `${Math.round(cacheAge / 1000)}s`
|
|
270
|
+
});
|
|
271
|
+
return this.modelCache.models;
|
|
272
|
+
}
|
|
273
|
+
this.logger.debug('Model cache expired', { age: `${Math.round(cacheAge / 1000)}s` });
|
|
274
|
+
}
|
|
275
|
+
const startTime = Date.now();
|
|
276
|
+
this.logger.request('GET', '/puterai/chat/models/details', { forceRefresh });
|
|
193
277
|
try {
|
|
194
|
-
|
|
278
|
+
const models = await withRetry(async () => {
|
|
195
279
|
const response = await fetch(`${this.apiUrl}/puterai/chat/models/details`, {
|
|
196
280
|
method: 'GET',
|
|
197
281
|
headers: {
|
|
@@ -204,13 +288,26 @@ export class PuterClient {
|
|
|
204
288
|
const data = await response.json();
|
|
205
289
|
return data.models || data || [];
|
|
206
290
|
}, this.retryOptions);
|
|
291
|
+
const duration = Date.now() - startTime;
|
|
292
|
+
this.logger.response(200, `OK (${models.length} models)`, duration);
|
|
293
|
+
// Cache the results
|
|
294
|
+
this.modelCache = {
|
|
295
|
+
models,
|
|
296
|
+
timestamp: Date.now(),
|
|
297
|
+
};
|
|
298
|
+
this.logger.debug('Model list cached', { count: models.length, ttl: `${this.cacheTtl / 1000}s` });
|
|
299
|
+
return models;
|
|
207
300
|
}
|
|
208
|
-
catch {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
301
|
+
catch (error) {
|
|
302
|
+
const duration = Date.now() - startTime;
|
|
303
|
+
this.logger.warn('Failed to fetch models, using defaults', { duration: `${duration}ms` });
|
|
304
|
+
// Cache the defaults too, but with a shorter TTL (30 seconds)
|
|
305
|
+
const defaults = this.getDefaultModels();
|
|
306
|
+
this.modelCache = {
|
|
307
|
+
models: defaults,
|
|
308
|
+
timestamp: Date.now() - (this.cacheTtl - 30000), // Expire in 30 seconds
|
|
309
|
+
};
|
|
310
|
+
return defaults;
|
|
214
311
|
}
|
|
215
312
|
}
|
|
216
313
|
/**
|
|
@@ -291,11 +388,15 @@ export class PuterClient {
|
|
|
291
388
|
* ```
|
|
292
389
|
*/
|
|
293
390
|
async testConnection() {
|
|
391
|
+
this.logger.debug('Testing connection');
|
|
294
392
|
try {
|
|
295
393
|
const response = await this.chat([{ role: 'user', content: 'Say "OK" and nothing else.' }], { model: 'gpt-5-nano', max_tokens: 10 });
|
|
296
|
-
|
|
394
|
+
const success = !!response.message?.content;
|
|
395
|
+
this.logger.debug('Connection test', { success });
|
|
396
|
+
return success;
|
|
297
397
|
}
|
|
298
|
-
catch {
|
|
398
|
+
catch (error) {
|
|
399
|
+
this.logger.debug('Connection test failed', error instanceof Error ? error.message : 'Unknown error');
|
|
299
400
|
return false;
|
|
300
401
|
}
|
|
301
402
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,5 +12,7 @@ export { PuterAuthPlugin } from './plugin.js';
|
|
|
12
12
|
export { createPuter as default } from './ai-provider/index.js';
|
|
13
13
|
export { createPuter } from './ai-provider/index.js';
|
|
14
14
|
export type { PuterProvider, PuterChatSettings, PuterProviderConfig, PuterChatConfig } from './ai-provider/index.js';
|
|
15
|
+
export { createLogger, createLoggerFromConfig, nullLogger, LogLevel } from './logger.js';
|
|
16
|
+
export type { Logger, LoggerOptions } from './logger.js';
|
|
15
17
|
export type { PuterConfig, PuterAccount, PuterChatOptions, PuterChatResponse, PuterChatMessage, PuterChatStreamChunk, PuterModelInfo } from './types.js';
|
|
16
18
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGrH,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9C,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGrH,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACzF,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGzD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -19,4 +19,6 @@ export { PuterAuthPlugin } from './plugin.js';
|
|
|
19
19
|
export { createPuter as default } from './ai-provider/index.js';
|
|
20
20
|
// AI SDK Provider exports
|
|
21
21
|
export { createPuter } from './ai-provider/index.js';
|
|
22
|
+
// Logger exports for debug mode
|
|
23
|
+
export { createLogger, createLoggerFromConfig, nullLogger, LogLevel } from './logger.js';
|
|
22
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,kDAAkD;AAClD,2DAA2D;AAC3D,wEAAwE;AACxE,yFAAyF;AACzF,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,gEAAgE;AAChE,uEAAuE;AACvE,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEhE,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,kDAAkD;AAClD,2DAA2D;AAC3D,wEAAwE;AACxE,yFAAyF;AACzF,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,gEAAgE;AAChE,uEAAuE;AACvE,OAAO,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEhE,0BAA0B;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,gCAAgC;AAChC,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug Logger for opencode-puter-auth
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent, timestamped logging with configurable verbosity.
|
|
5
|
+
* All logs respect the `debug` and `quiet_mode` configuration options.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const logger = createLogger({ debug: true, quiet_mode: false });
|
|
10
|
+
* logger.debug('Request', { model: 'claude-opus-4-5', method: 'complete' });
|
|
11
|
+
* logger.info('Connected to Puter');
|
|
12
|
+
* logger.warn('Rate limited, retrying...');
|
|
13
|
+
* logger.error('Authentication failed', new Error('Invalid token'));
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
import type { PuterConfig } from './types.js';
|
|
17
|
+
/**
|
|
18
|
+
* Log levels in order of verbosity
|
|
19
|
+
*/
|
|
20
|
+
export declare enum LogLevel {
|
|
21
|
+
DEBUG = 0,
|
|
22
|
+
INFO = 1,
|
|
23
|
+
WARN = 2,
|
|
24
|
+
ERROR = 3,
|
|
25
|
+
SILENT = 4
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Logger configuration options
|
|
29
|
+
*/
|
|
30
|
+
export interface LoggerOptions {
|
|
31
|
+
/** Enable debug-level logging */
|
|
32
|
+
debug?: boolean;
|
|
33
|
+
/** Suppress all non-error output */
|
|
34
|
+
quiet_mode?: boolean;
|
|
35
|
+
/** Custom prefix for log messages (default: 'puter-auth') */
|
|
36
|
+
prefix?: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Logger interface
|
|
40
|
+
*/
|
|
41
|
+
export interface Logger {
|
|
42
|
+
/** Log debug-level messages (only when debug: true) */
|
|
43
|
+
debug(message: string, data?: unknown): void;
|
|
44
|
+
/** Log info-level messages (suppressed in quiet_mode) */
|
|
45
|
+
info(message: string, data?: unknown): void;
|
|
46
|
+
/** Log warning messages (suppressed in quiet_mode) */
|
|
47
|
+
warn(message: string, data?: unknown): void;
|
|
48
|
+
/** Log error messages (always shown) */
|
|
49
|
+
error(message: string, error?: Error | unknown): void;
|
|
50
|
+
/** Log request details (debug only) */
|
|
51
|
+
request(method: string, endpoint: string, details?: Record<string, unknown>): void;
|
|
52
|
+
/** Log response details (debug only) */
|
|
53
|
+
response(status: number, message: string, duration?: number): void;
|
|
54
|
+
/** Log retry attempt (debug only) */
|
|
55
|
+
retry(attempt: number, maxAttempts: number, reason: string, delayMs: number): void;
|
|
56
|
+
/** Log auth state change */
|
|
57
|
+
auth(action: string, details?: string): void;
|
|
58
|
+
/** Check if debug logging is enabled */
|
|
59
|
+
isDebugEnabled(): boolean;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Create a logger instance
|
|
63
|
+
*
|
|
64
|
+
* @param options - Logger configuration
|
|
65
|
+
* @returns Logger instance
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```ts
|
|
69
|
+
* const logger = createLogger({ debug: true });
|
|
70
|
+
*
|
|
71
|
+
* // Debug logs (only shown when debug: true)
|
|
72
|
+
* logger.debug('Processing request');
|
|
73
|
+
*
|
|
74
|
+
* // Request logging
|
|
75
|
+
* logger.request('POST', '/drivers/call', { model: 'claude-opus-4-5' });
|
|
76
|
+
* // Output: [puter-auth] 15:30:45 Request: POST /drivers/call model=claude-opus-4-5
|
|
77
|
+
*
|
|
78
|
+
* // Response logging with duration
|
|
79
|
+
* logger.response(200, 'OK', 1234);
|
|
80
|
+
* // Output: [puter-auth] 15:30:46 Response: 200 OK (1.2s)
|
|
81
|
+
*
|
|
82
|
+
* // Retry logging
|
|
83
|
+
* logger.retry(1, 3, 'Rate limited (429)', 1000);
|
|
84
|
+
* // Output: [puter-auth] 15:30:46 Retry 1/3: Rate limited (429), waiting 1000ms
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function createLogger(options?: LoggerOptions): Logger;
|
|
88
|
+
/**
|
|
89
|
+
* Create a logger from PuterConfig
|
|
90
|
+
*
|
|
91
|
+
* @param config - Puter configuration object
|
|
92
|
+
* @returns Logger instance
|
|
93
|
+
*/
|
|
94
|
+
export declare function createLoggerFromConfig(config?: Partial<PuterConfig>): Logger;
|
|
95
|
+
/**
|
|
96
|
+
* No-op logger that discards all messages
|
|
97
|
+
* Useful for testing or when logging should be completely disabled
|
|
98
|
+
*/
|
|
99
|
+
export declare const nullLogger: Logger;
|
|
100
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;IACT,MAAM,IAAI;CACX;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,uDAAuD;IACvD,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,yDAAyD;IACzD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5C,sDAAsD;IACtD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5C,wCAAwC;IACxC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;IACtD,uCAAuC;IACvC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACnF,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,qCAAqC;IACrC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnF,4BAA4B;IAC5B,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,wCAAwC;IACxC,cAAc,IAAI,OAAO,CAAC;CAC3B;AAqDD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE,aAAkB,GAAG,MAAM,CAkEhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,MAAM,CAKhF;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,MAUxB,CAAC"}
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Debug Logger for opencode-puter-auth
|
|
3
|
+
*
|
|
4
|
+
* Provides consistent, timestamped logging with configurable verbosity.
|
|
5
|
+
* All logs respect the `debug` and `quiet_mode` configuration options.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* const logger = createLogger({ debug: true, quiet_mode: false });
|
|
10
|
+
* logger.debug('Request', { model: 'claude-opus-4-5', method: 'complete' });
|
|
11
|
+
* logger.info('Connected to Puter');
|
|
12
|
+
* logger.warn('Rate limited, retrying...');
|
|
13
|
+
* logger.error('Authentication failed', new Error('Invalid token'));
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Log levels in order of verbosity
|
|
18
|
+
*/
|
|
19
|
+
export var LogLevel;
|
|
20
|
+
(function (LogLevel) {
|
|
21
|
+
LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
|
|
22
|
+
LogLevel[LogLevel["INFO"] = 1] = "INFO";
|
|
23
|
+
LogLevel[LogLevel["WARN"] = 2] = "WARN";
|
|
24
|
+
LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
|
|
25
|
+
LogLevel[LogLevel["SILENT"] = 4] = "SILENT";
|
|
26
|
+
})(LogLevel || (LogLevel = {}));
|
|
27
|
+
/**
|
|
28
|
+
* Format a timestamp as HH:MM:SS
|
|
29
|
+
*/
|
|
30
|
+
function formatTime(date = new Date()) {
|
|
31
|
+
return date.toLocaleTimeString('en-US', {
|
|
32
|
+
hour12: false,
|
|
33
|
+
hour: '2-digit',
|
|
34
|
+
minute: '2-digit',
|
|
35
|
+
second: '2-digit',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Format data for logging
|
|
40
|
+
*/
|
|
41
|
+
function formatData(data) {
|
|
42
|
+
if (data === undefined || data === null) {
|
|
43
|
+
return '';
|
|
44
|
+
}
|
|
45
|
+
if (typeof data === 'string') {
|
|
46
|
+
return data;
|
|
47
|
+
}
|
|
48
|
+
if (data instanceof Error) {
|
|
49
|
+
return data.message;
|
|
50
|
+
}
|
|
51
|
+
try {
|
|
52
|
+
// For objects, format key=value pairs on one line
|
|
53
|
+
if (typeof data === 'object' && !Array.isArray(data)) {
|
|
54
|
+
const entries = Object.entries(data)
|
|
55
|
+
.map(([key, value]) => {
|
|
56
|
+
if (typeof value === 'string') {
|
|
57
|
+
return `${key}=${value}`;
|
|
58
|
+
}
|
|
59
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
60
|
+
return `${key}=${value}`;
|
|
61
|
+
}
|
|
62
|
+
return `${key}=${JSON.stringify(value)}`;
|
|
63
|
+
})
|
|
64
|
+
.join(' ');
|
|
65
|
+
return entries;
|
|
66
|
+
}
|
|
67
|
+
return JSON.stringify(data);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return String(data);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a logger instance
|
|
75
|
+
*
|
|
76
|
+
* @param options - Logger configuration
|
|
77
|
+
* @returns Logger instance
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```ts
|
|
81
|
+
* const logger = createLogger({ debug: true });
|
|
82
|
+
*
|
|
83
|
+
* // Debug logs (only shown when debug: true)
|
|
84
|
+
* logger.debug('Processing request');
|
|
85
|
+
*
|
|
86
|
+
* // Request logging
|
|
87
|
+
* logger.request('POST', '/drivers/call', { model: 'claude-opus-4-5' });
|
|
88
|
+
* // Output: [puter-auth] 15:30:45 Request: POST /drivers/call model=claude-opus-4-5
|
|
89
|
+
*
|
|
90
|
+
* // Response logging with duration
|
|
91
|
+
* logger.response(200, 'OK', 1234);
|
|
92
|
+
* // Output: [puter-auth] 15:30:46 Response: 200 OK (1.2s)
|
|
93
|
+
*
|
|
94
|
+
* // Retry logging
|
|
95
|
+
* logger.retry(1, 3, 'Rate limited (429)', 1000);
|
|
96
|
+
* // Output: [puter-auth] 15:30:46 Retry 1/3: Rate limited (429), waiting 1000ms
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export function createLogger(options = {}) {
|
|
100
|
+
const { debug = false, quiet_mode = false, prefix = 'puter-auth', } = options;
|
|
101
|
+
const effectiveLevel = quiet_mode
|
|
102
|
+
? LogLevel.ERROR
|
|
103
|
+
: debug
|
|
104
|
+
? LogLevel.DEBUG
|
|
105
|
+
: LogLevel.INFO;
|
|
106
|
+
const formatPrefix = () => `[${prefix}] ${formatTime()}`;
|
|
107
|
+
return {
|
|
108
|
+
debug(message, data) {
|
|
109
|
+
if (effectiveLevel > LogLevel.DEBUG)
|
|
110
|
+
return;
|
|
111
|
+
const dataStr = formatData(data);
|
|
112
|
+
console.log(`${formatPrefix()} ${message}${dataStr ? ' ' + dataStr : ''}`);
|
|
113
|
+
},
|
|
114
|
+
info(message, data) {
|
|
115
|
+
if (effectiveLevel > LogLevel.INFO)
|
|
116
|
+
return;
|
|
117
|
+
const dataStr = formatData(data);
|
|
118
|
+
console.log(`${formatPrefix()} ${message}${dataStr ? ' ' + dataStr : ''}`);
|
|
119
|
+
},
|
|
120
|
+
warn(message, data) {
|
|
121
|
+
if (effectiveLevel > LogLevel.WARN)
|
|
122
|
+
return;
|
|
123
|
+
const dataStr = formatData(data);
|
|
124
|
+
console.warn(`${formatPrefix()} ${message}${dataStr ? ' ' + dataStr : ''}`);
|
|
125
|
+
},
|
|
126
|
+
error(message, error) {
|
|
127
|
+
// Errors are always shown
|
|
128
|
+
const errorMsg = error instanceof Error ? error.message : error ? String(error) : '';
|
|
129
|
+
console.error(`${formatPrefix()} ERROR: ${message}${errorMsg ? ' - ' + errorMsg : ''}`);
|
|
130
|
+
},
|
|
131
|
+
request(method, endpoint, details) {
|
|
132
|
+
if (effectiveLevel > LogLevel.DEBUG)
|
|
133
|
+
return;
|
|
134
|
+
const detailsStr = details ? ' ' + formatData(details) : '';
|
|
135
|
+
console.log(`${formatPrefix()} Request: ${method} ${endpoint}${detailsStr}`);
|
|
136
|
+
},
|
|
137
|
+
response(status, message, duration) {
|
|
138
|
+
if (effectiveLevel > LogLevel.DEBUG)
|
|
139
|
+
return;
|
|
140
|
+
const durationStr = duration !== undefined ? ` (${(duration / 1000).toFixed(1)}s)` : '';
|
|
141
|
+
console.log(`${formatPrefix()} Response: ${status} ${message}${durationStr}`);
|
|
142
|
+
},
|
|
143
|
+
retry(attempt, maxAttempts, reason, delayMs) {
|
|
144
|
+
if (effectiveLevel > LogLevel.DEBUG)
|
|
145
|
+
return;
|
|
146
|
+
console.log(`${formatPrefix()} Retry ${attempt}/${maxAttempts}: ${reason}, waiting ${delayMs}ms`);
|
|
147
|
+
},
|
|
148
|
+
auth(action, details) {
|
|
149
|
+
if (effectiveLevel > LogLevel.INFO)
|
|
150
|
+
return;
|
|
151
|
+
console.log(`${formatPrefix()} Auth: ${action}${details ? ' - ' + details : ''}`);
|
|
152
|
+
},
|
|
153
|
+
isDebugEnabled() {
|
|
154
|
+
return effectiveLevel <= LogLevel.DEBUG;
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Create a logger from PuterConfig
|
|
160
|
+
*
|
|
161
|
+
* @param config - Puter configuration object
|
|
162
|
+
* @returns Logger instance
|
|
163
|
+
*/
|
|
164
|
+
export function createLoggerFromConfig(config = {}) {
|
|
165
|
+
return createLogger({
|
|
166
|
+
debug: config.debug ?? false,
|
|
167
|
+
quiet_mode: config.quiet_mode ?? false,
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* No-op logger that discards all messages
|
|
172
|
+
* Useful for testing or when logging should be completely disabled
|
|
173
|
+
*/
|
|
174
|
+
export const nullLogger = {
|
|
175
|
+
debug: () => { },
|
|
176
|
+
info: () => { },
|
|
177
|
+
warn: () => { },
|
|
178
|
+
error: () => { },
|
|
179
|
+
request: () => { },
|
|
180
|
+
response: () => { },
|
|
181
|
+
retry: () => { },
|
|
182
|
+
auth: () => { },
|
|
183
|
+
isDebugEnabled: () => false,
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;IACT,2CAAU,CAAA;AACZ,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB;AAsCD;;GAEG;AACH,SAAS,UAAU,CAAC,OAAa,IAAI,IAAI,EAAE;IACzC,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;QACtC,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI,YAAY,KAAK,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,CAAC;QACH,kDAAkD;QAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAA+B,CAAC;iBAC5D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC3B,CAAC;gBACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC5D,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC3B,CAAC;gBACD,OAAO,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3C,CAAC,CAAC;iBACD,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,YAAY,CAAC,UAAyB,EAAE;IACtD,MAAM,EACJ,KAAK,GAAG,KAAK,EACb,UAAU,GAAG,KAAK,EAClB,MAAM,GAAG,YAAY,GACtB,GAAG,OAAO,CAAC;IAEZ,MAAM,cAAc,GAAG,UAAU;QAC/B,CAAC,CAAC,QAAQ,CAAC,KAAK;QAChB,CAAC,CAAC,KAAK;YACL,CAAC,CAAC,QAAQ,CAAC,KAAK;YAChB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;IAEpB,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,MAAM,KAAK,UAAU,EAAE,EAAE,CAAC;IAEzD,OAAO;QACL,KAAK,CAAC,OAAe,EAAE,IAAc;YACnC,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK;gBAAE,OAAO;YAC5C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,OAAe,EAAE,IAAc;YAClC,IAAI,cAAc,GAAG,QAAQ,CAAC,IAAI;gBAAE,OAAO;YAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,OAAe,EAAE,IAAc;YAClC,IAAI,cAAc,GAAG,QAAQ,CAAC,IAAI;gBAAE,OAAO;YAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,EAAE,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,KAAK,CAAC,OAAe,EAAE,KAAuB;YAC5C,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,EAAE,WAAW,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,OAAO,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAiC;YACzE,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK;gBAAE,OAAO;YAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,aAAa,MAAM,IAAI,QAAQ,GAAG,UAAU,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,QAAQ,CAAC,MAAc,EAAE,OAAe,EAAE,QAAiB;YACzD,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK;gBAAE,OAAO;YAC5C,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,cAAc,MAAM,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC,CAAC;QAChF,CAAC;QAED,KAAK,CAAC,OAAe,EAAE,WAAmB,EAAE,MAAc,EAAE,OAAe;YACzE,IAAI,cAAc,GAAG,QAAQ,CAAC,KAAK;gBAAE,OAAO;YAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,UAAU,OAAO,IAAI,WAAW,KAAK,MAAM,aAAa,OAAO,IAAI,CAAC,CAAC;QACpG,CAAC;QAED,IAAI,CAAC,MAAc,EAAE,OAAgB;YACnC,IAAI,cAAc,GAAG,QAAQ,CAAC,IAAI;gBAAE,OAAO;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE,UAAU,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,cAAc;YACZ,OAAO,cAAc,IAAI,QAAQ,CAAC,KAAK,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAA+B,EAAE;IACtE,OAAO,YAAY,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;QAC5B,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,KAAK;KACvC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAW;IAChC,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;IACjB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,cAAc,EAAE,GAAG,EAAE,CAAC,KAAK;CAC5B,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export declare const PuterConfigSchema: z.ZodObject<{
|
|
|
35
35
|
max_retries: z.ZodDefault<z.ZodNumber>;
|
|
36
36
|
retry_delay_ms: z.ZodDefault<z.ZodNumber>;
|
|
37
37
|
stream_buffer_size: z.ZodDefault<z.ZodNumber>;
|
|
38
|
+
cache_ttl_ms: z.ZodDefault<z.ZodNumber>;
|
|
38
39
|
}, z.core.$strip>;
|
|
39
40
|
export type PuterConfig = z.infer<typeof PuterConfigSchema>;
|
|
40
41
|
export interface PuterChatMessage {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,kBAAkB;;;;;;;iBAO7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAG9D,eAAO,MAAM,0BAA0B;;;;;;;;;;;iBAIrC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAG9E,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -33,6 +33,8 @@ export const PuterConfigSchema = z.object({
|
|
|
33
33
|
retry_delay_ms: z.number().default(1000),
|
|
34
34
|
// Stream Settings
|
|
35
35
|
stream_buffer_size: z.number().default(1024),
|
|
36
|
+
// Cache Settings
|
|
37
|
+
cache_ttl_ms: z.number().default(300000), // 5 minutes
|
|
36
38
|
});
|
|
37
39
|
// Available Claude Models
|
|
38
40
|
export const PUTER_CLAUDE_MODELS = [
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uBAAuB;AACvB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACxC,CAAC,CAAC;AAIH,gCAAgC;AAChC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CACnC,CAAC,CAAC;AAIH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEtC,eAAe;IACf,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACzD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAE1C,mBAAmB;IACnB,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEhD,iBAAiB;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAExC,kBAAkB;IAClB,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,uBAAuB;AACvB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACxC,CAAC,CAAC;AAIH,gCAAgC;AAChC,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;CACnC,CAAC,CAAC;AAIH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACtC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACjC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEtC,eAAe;IACf,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACzD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAE1C,mBAAmB;IACnB,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAEhD,iBAAiB;IACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAExC,kBAAkB;IAClB,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IAE5C,iBAAiB;IACjB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,YAAY;CACvD,CAAC,CAAC;AA2FH,0BAA0B;AAC1B,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,eAAe;IACf,iBAAiB;IACjB,kBAAkB;CACV,CAAC;AAEX,uBAAuB;AACvB,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY;IACZ,OAAO;IACP,SAAS;IACT,SAAS;IACT,QAAQ;IACR,aAAa;IACb,IAAI;IACJ,SAAS;IACT,SAAS;IACT,IAAI;CACI,CAAC;AAEX,0BAA0B;AAC1B,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,gBAAgB;IAChB,kBAAkB;IAClB,uBAAuB;IACvB,kBAAkB;CACV,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-puter-auth",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.38",
|
|
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"
|