opencode-puter-auth 1.0.35 → 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 +170 -18
- package/dist/ai-provider/puter-chat-language-model.d.ts +4 -0
- package/dist/ai-provider/puter-chat-language-model.d.ts.map +1 -1
- package/dist/ai-provider/puter-chat-language-model.js +35 -4
- package/dist/ai-provider/puter-chat-language-model.js.map +1 -1
- 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/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +97 -9
- package/dist/cli.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 +2 -1
package/dist/cli.js
CHANGED
|
@@ -1,17 +1,105 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Puter Auth CLI for OpenCode
|
|
4
|
+
*
|
|
5
|
+
* Provides command-line authentication management for the Puter.com provider.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* puter-auth login - Authenticate with Puter.com
|
|
9
|
+
* puter-auth logout - Remove all stored credentials
|
|
10
|
+
* puter-auth status - Show current authentication status
|
|
11
|
+
* puter-auth --help - Show this help message
|
|
12
|
+
*/
|
|
2
13
|
import { createPuterAuthManager } from './auth.js';
|
|
3
14
|
import { homedir } from 'os';
|
|
4
15
|
import { join } from 'path';
|
|
5
16
|
const configDir = join(homedir(), '.config', 'opencode');
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
17
|
+
const HELP = `
|
|
18
|
+
puter-auth - Puter.com Authentication for OpenCode
|
|
19
|
+
|
|
20
|
+
USAGE:
|
|
21
|
+
puter-auth <command>
|
|
22
|
+
|
|
23
|
+
COMMANDS:
|
|
24
|
+
login Authenticate with Puter.com (opens browser)
|
|
25
|
+
logout Remove all stored Puter credentials
|
|
26
|
+
status Show current authentication status
|
|
27
|
+
help Show this help message
|
|
28
|
+
|
|
29
|
+
EXAMPLES:
|
|
30
|
+
puter-auth login # Start browser authentication
|
|
31
|
+
puter-auth status # Check if authenticated
|
|
32
|
+
puter-auth logout # Clear credentials
|
|
33
|
+
|
|
34
|
+
After authenticating, use Puter models in OpenCode:
|
|
35
|
+
opencode -m puter/claude-sonnet-4-5 "Your prompt"
|
|
36
|
+
opencode models puter # List available models
|
|
37
|
+
|
|
38
|
+
For more info: https://github.com/Mihai-Codes/opencode-puter-auth
|
|
39
|
+
`;
|
|
40
|
+
async function main() {
|
|
41
|
+
const args = process.argv.slice(2);
|
|
42
|
+
const command = args[0]?.toLowerCase();
|
|
43
|
+
// Handle help
|
|
44
|
+
if (!command || command === 'help' || command === '--help' || command === '-h') {
|
|
45
|
+
console.log(HELP);
|
|
46
|
+
process.exit(0);
|
|
47
|
+
}
|
|
48
|
+
const authManager = createPuterAuthManager(configDir);
|
|
49
|
+
await authManager.init();
|
|
50
|
+
switch (command) {
|
|
51
|
+
case 'login': {
|
|
52
|
+
console.log('Starting Puter authentication...\n');
|
|
53
|
+
const result = await authManager.login();
|
|
54
|
+
if (result.success) {
|
|
55
|
+
console.log('\n✅ Authentication successful!');
|
|
56
|
+
console.log(` Account: ${result.account?.username}`);
|
|
57
|
+
console.log('\nYou can now use Puter models in OpenCode:');
|
|
58
|
+
console.log(' opencode -m puter/claude-sonnet-4-5 "Your prompt"');
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.error('\n❌ Authentication failed:', result.error);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case 'logout': {
|
|
67
|
+
await authManager.logout();
|
|
68
|
+
console.log('✅ Logged out from Puter. All credentials removed.');
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
case 'status': {
|
|
72
|
+
const accounts = authManager.getAllAccounts();
|
|
73
|
+
const active = authManager.getActiveAccount();
|
|
74
|
+
if (accounts.length === 0) {
|
|
75
|
+
console.log('❌ Not authenticated with Puter.');
|
|
76
|
+
console.log(' Run: puter-auth login');
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
console.log('✅ Puter Authentication Status\n');
|
|
80
|
+
console.log(`Active account: ${active?.username || 'none'}`);
|
|
81
|
+
console.log(`Total accounts: ${accounts.length}`);
|
|
82
|
+
console.log('');
|
|
83
|
+
for (let i = 0; i < accounts.length; i++) {
|
|
84
|
+
const acc = accounts[i];
|
|
85
|
+
const isActive = i === authManager.getAllAccounts().indexOf(active);
|
|
86
|
+
const marker = isActive ? '→' : ' ';
|
|
87
|
+
const temp = acc.isTemporary ? ' (temporary)' : '';
|
|
88
|
+
console.log(`${marker} ${i + 1}. ${acc.username}${temp}`);
|
|
89
|
+
if (acc.lastUsed) {
|
|
90
|
+
console.log(` Last used: ${new Date(acc.lastUsed).toLocaleString()}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
default:
|
|
96
|
+
console.error(`Unknown command: ${command}`);
|
|
97
|
+
console.log(HELP);
|
|
98
|
+
process.exit(1);
|
|
99
|
+
}
|
|
12
100
|
}
|
|
13
|
-
|
|
14
|
-
console.error('
|
|
101
|
+
main().catch(err => {
|
|
102
|
+
console.error('Error:', err.message);
|
|
15
103
|
process.exit(1);
|
|
16
|
-
}
|
|
104
|
+
});
|
|
17
105
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.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"}
|