opencode-puter-auth 1.0.34 → 1.0.37
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 +87 -35
- 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/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/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +303 -6
- package/dist/plugin.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
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
|
|
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.
|
|
9
9
|
|
|
10
|
-
Enable OpenCode to authenticate with [Puter.com](https://puter.com) via OAuth, giving you
|
|
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
|
|
|
12
12
|
## What You Get
|
|
13
13
|
|
|
@@ -22,13 +22,36 @@ Enable OpenCode to authenticate with [Puter.com](https://puter.com) via OAuth, g
|
|
|
22
22
|
|
|
23
23
|
## How It Works
|
|
24
24
|
|
|
25
|
-
Puter.com uses a **
|
|
25
|
+
Puter.com uses a **"User-Pays" model**:
|
|
26
26
|
|
|
27
27
|
1. **No API keys** - Just sign in with your Puter account
|
|
28
|
-
2. **
|
|
29
|
-
3. **
|
|
28
|
+
2. **Users pay their own usage** - Each Puter account has its own credit allocation
|
|
29
|
+
3. **Free tier available** - New accounts get free credits to start
|
|
30
|
+
4. **Credits run out** - When exhausted, you pay Puter directly or create a new account
|
|
30
31
|
|
|
31
|
-
> **Important:**
|
|
32
|
+
> **Important Reality Check:** Puter's marketing says "Free, Unlimited" but this is misleading. In practice:
|
|
33
|
+
> - Free tier limits exist but are **undocumented** ([GitHub Issue #1704](https://github.com/HeyPuter/puter/issues/1704))
|
|
34
|
+
> - Users report limits trigger after "minimal usage" ([GitHub Issue #1291](https://github.com/HeyPuter/puter/issues/1291))
|
|
35
|
+
> - When limits hit, you'll see: `"usage-limited-chat": Permission denied`
|
|
36
|
+
|
|
37
|
+
## Understanding the "User-Pays" Model
|
|
38
|
+
|
|
39
|
+
### For App Developers (Building apps for others)
|
|
40
|
+
**Great fit!** Your infrastructure cost is $0. Each of YOUR users authenticates with their OWN Puter account and pays for their own AI usage.
|
|
41
|
+
|
|
42
|
+
### For Personal/Development Use (Using it yourself)
|
|
43
|
+
**Caution:** When YOU use this plugin during development, YOU are the user. YOUR Puter account's free tier gets consumed. Based on community reports, the free tier is limited and undocumented.
|
|
44
|
+
|
|
45
|
+
### Free Tier Reality
|
|
46
|
+
|
|
47
|
+
| Aspect | What Puter Claims | What Actually Happens |
|
|
48
|
+
|--------|-------------------|----------------------|
|
|
49
|
+
| **Pricing** | "Free, Unlimited" | Free tier exists but has limits |
|
|
50
|
+
| **Limits** | "No usage restrictions" | Undocumented limits trigger unexpectedly |
|
|
51
|
+
| **Documentation** | Not specified | Limits are not publicly documented |
|
|
52
|
+
| **When exceeded** | Not mentioned | Error: `usage-limited-chat: Permission denied` |
|
|
53
|
+
|
|
54
|
+
**Estimated free tier:** ~100 requests/day (unconfirmed, based on third-party reports)
|
|
32
55
|
|
|
33
56
|
## Installation
|
|
34
57
|
|
|
@@ -124,13 +147,25 @@ https://raw.githubusercontent.com/Mihai-Codes/opencode-puter-auth/main/README.md
|
|
|
124
147
|
2. **Authenticate with Puter:**
|
|
125
148
|
|
|
126
149
|
```bash
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
#
|
|
150
|
+
# Using the included CLI
|
|
151
|
+
npx opencode-puter-auth login
|
|
152
|
+
|
|
153
|
+
# Or if you have the plugin installed globally
|
|
154
|
+
puter-auth login
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
This opens a browser window for Puter.com login. Enter your Puter username and password.
|
|
158
|
+
|
|
159
|
+
> **Note:** Puter is a custom provider, so it won't appear in `opencode auth login`. Use the CLI above to authenticate.
|
|
160
|
+
|
|
161
|
+
3. **Verify authentication:**
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
puter-auth status
|
|
165
|
+
# Or: npx opencode-puter-auth status
|
|
131
166
|
```
|
|
132
167
|
|
|
133
|
-
|
|
168
|
+
4. **Use it:**
|
|
134
169
|
|
|
135
170
|
```bash
|
|
136
171
|
opencode --model=puter/claude-opus-4-5
|
|
@@ -225,20 +260,33 @@ The plugin adds these tools to OpenCode:
|
|
|
225
260
|
- **`puter-models`** - List all available Puter models
|
|
226
261
|
- **`puter-account`** - Show current account info
|
|
227
262
|
|
|
228
|
-
## Comparison: Puter vs Antigravity
|
|
229
|
-
|
|
230
|
-
| Feature | Puter | Antigravity |
|
|
231
|
-
|
|
232
|
-
| **
|
|
233
|
-
| **
|
|
234
|
-
| **Claude
|
|
235
|
-
| **
|
|
236
|
-
| **
|
|
237
|
-
| **
|
|
238
|
-
| **
|
|
239
|
-
| **
|
|
240
|
-
|
|
241
|
-
|
|
263
|
+
## Comparison: Puter vs Antigravity vs Alternatives
|
|
264
|
+
|
|
265
|
+
| Feature | Puter | Antigravity | Netlify AI Gateway |
|
|
266
|
+
|---------|-------|-------------|-------------------|
|
|
267
|
+
| **Free Quota** | Undocumented limits | ~300K tokens/day | 300 credits/mo |
|
|
268
|
+
| **Limits Documented?** | No | Unofficial | Yes |
|
|
269
|
+
| **Claude Opus 4.5** | Yes | Yes | Yes |
|
|
270
|
+
| **Claude Sonnet 4.5** | Yes | Yes | Yes |
|
|
271
|
+
| **GPT-5** | Yes | No | No |
|
|
272
|
+
| **DeepSeek R1** | Yes | No | No |
|
|
273
|
+
| **Gemini 3** | No | Yes | No |
|
|
274
|
+
| **Best For** | App builders | Dev work | Very light use |
|
|
275
|
+
|
|
276
|
+
### Recommendations by Use Case
|
|
277
|
+
|
|
278
|
+
| Use Case | Recommended Provider |
|
|
279
|
+
|----------|---------------------|
|
|
280
|
+
| **Building apps** (users pay their own usage) | **Puter** |
|
|
281
|
+
| **Development/testing** (you are the user) | **Antigravity** (more predictable) |
|
|
282
|
+
| **Heavy development work** | Paid API (Anthropic, OpenAI) |
|
|
283
|
+
| **Occasional Claude access** | Puter (while free tier lasts) |
|
|
284
|
+
| **GPT-5 / DeepSeek access** | **Puter** (only option) |
|
|
285
|
+
|
|
286
|
+
**Bottom line**:
|
|
287
|
+
- Use **Puter** for building apps where your users authenticate with their own accounts
|
|
288
|
+
- Use **Antigravity** for your own development (more predictable ~300K tokens/day)
|
|
289
|
+
- Use **Puter** if you specifically need GPT-5 or DeepSeek (not available elsewhere free)
|
|
242
290
|
|
|
243
291
|
## Migrating from Old Config (v1.0.27 and earlier)
|
|
244
292
|
|
|
@@ -295,28 +343,30 @@ If you were using the old configuration format that piggybacked on Google (`goog
|
|
|
295
343
|
|
|
296
344
|
4. **Re-authenticate:**
|
|
297
345
|
```bash
|
|
298
|
-
opencode
|
|
299
|
-
#
|
|
346
|
+
npx opencode-puter-auth login
|
|
347
|
+
# Or: puter-auth login
|
|
300
348
|
```
|
|
301
349
|
|
|
302
350
|
### Why the Change?
|
|
303
351
|
|
|
304
352
|
The new standalone provider offers:
|
|
305
353
|
- **Direct API access** - No routing through Google/Antigravity infrastructure
|
|
306
|
-
- **
|
|
354
|
+
- **Dedicated CLI** - Use `puter-auth login` for authentication
|
|
307
355
|
- **Better reliability** - Direct connection to Puter's API
|
|
308
356
|
- **Cleaner model names** - `puter/claude-opus-4-5` instead of `google/puter-claude-opus-4-5`
|
|
309
357
|
|
|
310
358
|
## Troubleshooting
|
|
311
359
|
|
|
312
|
-
### "You have reached your AI usage limit"
|
|
360
|
+
### "usage-limited-chat: Permission denied" or "You have reached your AI usage limit"
|
|
313
361
|
|
|
314
|
-
This means your Puter account has exhausted its credits.
|
|
362
|
+
This means your Puter account has exhausted its free tier credits. Despite Puter's "Free Unlimited" marketing, limits do exist.
|
|
315
363
|
|
|
316
364
|
**Solutions:**
|
|
317
|
-
1.
|
|
318
|
-
2.
|
|
319
|
-
3. Create a new Puter account (new accounts get
|
|
365
|
+
1. **Wait** - Limits may reset (timing undocumented)
|
|
366
|
+
2. **Add credits** on [Puter.com](https://puter.com) (paid)
|
|
367
|
+
3. **New account** - Create a new Puter account (new accounts get free credits)
|
|
368
|
+
4. **Switch providers** - Use Antigravity, OpenRouter free tier, or other free providers
|
|
369
|
+
5. **Use lighter models** - Haiku/Flash models may consume fewer credits than Opus
|
|
320
370
|
|
|
321
371
|
### Clear cached plugin and reinstall
|
|
322
372
|
|
|
@@ -343,10 +393,12 @@ http://localhost:19847
|
|
|
343
393
|
### "Not authenticated" error
|
|
344
394
|
|
|
345
395
|
```bash
|
|
346
|
-
opencode
|
|
347
|
-
#
|
|
396
|
+
npx opencode-puter-auth login
|
|
397
|
+
# Or: puter-auth login
|
|
348
398
|
```
|
|
349
399
|
|
|
400
|
+
> **Note:** Puter is a custom provider and won't appear in `opencode auth login`. You must use the plugin's CLI.
|
|
401
|
+
|
|
350
402
|
### API timeout errors
|
|
351
403
|
|
|
352
404
|
Increase timeout in `puter.json`:
|
|
@@ -47,6 +47,10 @@ export declare class PuterChatLanguageModel implements LanguageModelV3 {
|
|
|
47
47
|
* Map Puter usage to AI SDK format.
|
|
48
48
|
*/
|
|
49
49
|
private mapUsage;
|
|
50
|
+
/**
|
|
51
|
+
* Extract text from response content (handles both string and array formats).
|
|
52
|
+
*/
|
|
53
|
+
private extractTextContent;
|
|
50
54
|
/**
|
|
51
55
|
* Non-streaming generation using Puter SDK.
|
|
52
56
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puter-chat-language-model.d.ts","sourceRoot":"","sources":["../../src/ai-provider/puter-chat-language-model.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAW5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"puter-chat-language-model.d.ts","sourceRoot":"","sources":["../../src/ai-provider/puter-chat-language-model.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAC1B,6BAA6B,EAC7B,2BAA2B,EAW5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAiGnF;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D,QAAQ,CAAC,oBAAoB,EAAG,IAAI,CAAU;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,aAAa,CAAyB;gBAG5C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,eAAe;IAQzB;;OAEG;YACW,YAAY;IA0B1B;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAE5C;IAED;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA4E/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiCvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAgBhB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAyD7F;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC;CA2E1F"}
|
|
@@ -213,6 +213,23 @@ export class PuterChatLanguageModel {
|
|
|
213
213
|
},
|
|
214
214
|
};
|
|
215
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Extract text from response content (handles both string and array formats).
|
|
218
|
+
*/
|
|
219
|
+
extractTextContent(content) {
|
|
220
|
+
if (!content)
|
|
221
|
+
return '';
|
|
222
|
+
if (typeof content === 'string') {
|
|
223
|
+
return content;
|
|
224
|
+
}
|
|
225
|
+
if (Array.isArray(content)) {
|
|
226
|
+
return content
|
|
227
|
+
.filter((block) => block.type === 'text' && typeof block.text === 'string')
|
|
228
|
+
.map(block => block.text)
|
|
229
|
+
.join('');
|
|
230
|
+
}
|
|
231
|
+
return '';
|
|
232
|
+
}
|
|
216
233
|
/**
|
|
217
234
|
* Non-streaming generation using Puter SDK.
|
|
218
235
|
*/
|
|
@@ -223,14 +240,28 @@ export class PuterChatLanguageModel {
|
|
|
223
240
|
const warnings = [];
|
|
224
241
|
const response = await puter.ai.chat(messages, sdkOptions);
|
|
225
242
|
const content = [];
|
|
226
|
-
//
|
|
227
|
-
|
|
243
|
+
// Extract text content (handles both string and array formats)
|
|
244
|
+
const textContent = this.extractTextContent(response.message?.content);
|
|
245
|
+
if (textContent) {
|
|
228
246
|
content.push({
|
|
229
247
|
type: 'text',
|
|
230
|
-
text:
|
|
248
|
+
text: textContent,
|
|
231
249
|
});
|
|
232
250
|
}
|
|
233
|
-
//
|
|
251
|
+
// Handle tool use from Claude-style content blocks
|
|
252
|
+
if (Array.isArray(response.message?.content)) {
|
|
253
|
+
for (const block of response.message.content) {
|
|
254
|
+
if (block.type === 'tool_use' && block.id && block.name) {
|
|
255
|
+
content.push({
|
|
256
|
+
type: 'tool-call',
|
|
257
|
+
toolCallId: block.id,
|
|
258
|
+
toolName: block.name,
|
|
259
|
+
input: typeof block.input === 'string' ? block.input : JSON.stringify(block.input || {}),
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
// Add tool calls from legacy format
|
|
234
265
|
if (response.message?.tool_calls) {
|
|
235
266
|
for (const tc of response.message.tool_calls) {
|
|
236
267
|
content.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puter-chat-language-model.js","sourceRoot":"","sources":["../../src/ai-provider/puter-chat-language-model.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"puter-chat-language-model.js","sourceRoot":"","sources":["../../src/ai-provider/puter-chat-language-model.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
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
|
export {};
|
|
3
14
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;GAUG"}
|
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/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* opencode-puter-auth - Puter.com OAuth Plugin for OpenCode
|
|
3
3
|
*
|
|
4
|
-
* Provides
|
|
4
|
+
* Provides access to Claude Opus 4.5, Sonnet 4.5, GPT-5, Gemini,
|
|
5
5
|
* and 500+ AI models through Puter.com's "User-Pays" model.
|
|
6
|
+
* Free tier available with undocumented limits.
|
|
6
7
|
*
|
|
7
8
|
* @author chindris-mihai-alexandru
|
|
8
9
|
* @license MIT
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* opencode-puter-auth - Puter.com OAuth Plugin for OpenCode
|
|
3
3
|
*
|
|
4
|
-
* Provides
|
|
4
|
+
* Provides access to Claude Opus 4.5, Sonnet 4.5, GPT-5, Gemini,
|
|
5
5
|
* and 500+ AI models through Puter.com's "User-Pays" model.
|
|
6
|
+
* Free tier available with undocumented limits.
|
|
6
7
|
*
|
|
7
8
|
* @author chindris-mihai-alexandru
|
|
8
9
|
* @license MIT
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAsB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAsB,MAAM,qBAAqB,CAAC;AAmWtE;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAoS7B,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -33,6 +33,305 @@ let pluginConfig = {};
|
|
|
33
33
|
// OAuth server state
|
|
34
34
|
const CALLBACK_PORT = 19847;
|
|
35
35
|
const AUTH_TIMEOUT_MS = 300000;
|
|
36
|
+
/**
|
|
37
|
+
* Generate the HTML login page for Puter authentication.
|
|
38
|
+
* Puter uses username/password login via REST API, not OAuth redirects.
|
|
39
|
+
* This page handles the login flow entirely in the browser, including 2FA.
|
|
40
|
+
*/
|
|
41
|
+
function getLoginPage(callbackPort) {
|
|
42
|
+
return `<!DOCTYPE html>
|
|
43
|
+
<html lang="en">
|
|
44
|
+
<head>
|
|
45
|
+
<meta charset="UTF-8">
|
|
46
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
47
|
+
<title>Sign in to Puter - OpenCode</title>
|
|
48
|
+
<style>
|
|
49
|
+
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
50
|
+
body {
|
|
51
|
+
font-family: system-ui, -apple-system, sans-serif;
|
|
52
|
+
min-height: 100vh;
|
|
53
|
+
display: flex;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
align-items: center;
|
|
56
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
57
|
+
padding: 20px;
|
|
58
|
+
}
|
|
59
|
+
.card {
|
|
60
|
+
background: white;
|
|
61
|
+
padding: 40px;
|
|
62
|
+
border-radius: 16px;
|
|
63
|
+
box-shadow: 0 10px 40px rgba(0,0,0,0.2);
|
|
64
|
+
width: 100%;
|
|
65
|
+
max-width: 400px;
|
|
66
|
+
}
|
|
67
|
+
.logo {
|
|
68
|
+
text-align: center;
|
|
69
|
+
margin-bottom: 24px;
|
|
70
|
+
}
|
|
71
|
+
.logo h1 {
|
|
72
|
+
font-size: 28px;
|
|
73
|
+
color: #333;
|
|
74
|
+
}
|
|
75
|
+
.logo p {
|
|
76
|
+
color: #666;
|
|
77
|
+
font-size: 14px;
|
|
78
|
+
margin-top: 8px;
|
|
79
|
+
}
|
|
80
|
+
.form-group {
|
|
81
|
+
margin-bottom: 20px;
|
|
82
|
+
}
|
|
83
|
+
label {
|
|
84
|
+
display: block;
|
|
85
|
+
font-weight: 500;
|
|
86
|
+
margin-bottom: 6px;
|
|
87
|
+
color: #333;
|
|
88
|
+
}
|
|
89
|
+
input {
|
|
90
|
+
width: 100%;
|
|
91
|
+
padding: 12px 16px;
|
|
92
|
+
border: 2px solid #e2e8f0;
|
|
93
|
+
border-radius: 8px;
|
|
94
|
+
font-size: 16px;
|
|
95
|
+
transition: border-color 0.2s;
|
|
96
|
+
}
|
|
97
|
+
input:focus {
|
|
98
|
+
outline: none;
|
|
99
|
+
border-color: #667eea;
|
|
100
|
+
}
|
|
101
|
+
button {
|
|
102
|
+
width: 100%;
|
|
103
|
+
padding: 14px;
|
|
104
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
105
|
+
color: white;
|
|
106
|
+
border: none;
|
|
107
|
+
border-radius: 8px;
|
|
108
|
+
font-size: 16px;
|
|
109
|
+
font-weight: 600;
|
|
110
|
+
cursor: pointer;
|
|
111
|
+
transition: opacity 0.2s;
|
|
112
|
+
}
|
|
113
|
+
button:hover { opacity: 0.9; }
|
|
114
|
+
button:disabled {
|
|
115
|
+
opacity: 0.6;
|
|
116
|
+
cursor: not-allowed;
|
|
117
|
+
}
|
|
118
|
+
.error {
|
|
119
|
+
background: #fee2e2;
|
|
120
|
+
border: 1px solid #fca5a5;
|
|
121
|
+
color: #dc2626;
|
|
122
|
+
padding: 12px;
|
|
123
|
+
border-radius: 8px;
|
|
124
|
+
margin-bottom: 20px;
|
|
125
|
+
display: none;
|
|
126
|
+
}
|
|
127
|
+
.info {
|
|
128
|
+
background: #dbeafe;
|
|
129
|
+
border: 1px solid #93c5fd;
|
|
130
|
+
color: #1d4ed8;
|
|
131
|
+
padding: 12px;
|
|
132
|
+
border-radius: 8px;
|
|
133
|
+
margin-bottom: 20px;
|
|
134
|
+
font-size: 14px;
|
|
135
|
+
}
|
|
136
|
+
.signup-link {
|
|
137
|
+
text-align: center;
|
|
138
|
+
margin-top: 20px;
|
|
139
|
+
font-size: 14px;
|
|
140
|
+
color: #666;
|
|
141
|
+
}
|
|
142
|
+
.signup-link a {
|
|
143
|
+
color: #667eea;
|
|
144
|
+
text-decoration: none;
|
|
145
|
+
}
|
|
146
|
+
.signup-link a:hover { text-decoration: underline; }
|
|
147
|
+
#otp-section { display: none; }
|
|
148
|
+
.spinner {
|
|
149
|
+
display: inline-block;
|
|
150
|
+
width: 16px;
|
|
151
|
+
height: 16px;
|
|
152
|
+
border: 2px solid transparent;
|
|
153
|
+
border-top: 2px solid white;
|
|
154
|
+
border-radius: 50%;
|
|
155
|
+
animation: spin 1s linear infinite;
|
|
156
|
+
margin-right: 8px;
|
|
157
|
+
vertical-align: middle;
|
|
158
|
+
}
|
|
159
|
+
@keyframes spin { to { transform: rotate(360deg); } }
|
|
160
|
+
</style>
|
|
161
|
+
</head>
|
|
162
|
+
<body>
|
|
163
|
+
<div class="card">
|
|
164
|
+
<div class="logo">
|
|
165
|
+
<h1>Puter</h1>
|
|
166
|
+
<p>Sign in to access 500+ AI models via OpenCode</p>
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
<div class="error" id="error"></div>
|
|
170
|
+
|
|
171
|
+
<div class="info">
|
|
172
|
+
Sign in with your Puter.com account. If you don't have one,
|
|
173
|
+
<a href="https://puter.com" target="_blank">create a free account</a> first.
|
|
174
|
+
</div>
|
|
175
|
+
|
|
176
|
+
<form id="login-form">
|
|
177
|
+
<div id="credentials-section">
|
|
178
|
+
<div class="form-group">
|
|
179
|
+
<label for="username">Username</label>
|
|
180
|
+
<input type="text" id="username" name="username" required autocomplete="username">
|
|
181
|
+
</div>
|
|
182
|
+
<div class="form-group">
|
|
183
|
+
<label for="password">Password</label>
|
|
184
|
+
<input type="password" id="password" name="password" required autocomplete="current-password">
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
<div id="otp-section">
|
|
189
|
+
<div class="form-group">
|
|
190
|
+
<label for="otp">Authenticator Code (2FA)</label>
|
|
191
|
+
<input type="text" id="otp" name="otp" maxlength="6" pattern="[0-9]{6}"
|
|
192
|
+
placeholder="Enter 6-digit code" autocomplete="one-time-code">
|
|
193
|
+
</div>
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<button type="submit" id="submit-btn">Sign In</button>
|
|
197
|
+
</form>
|
|
198
|
+
|
|
199
|
+
<div class="signup-link">
|
|
200
|
+
Don't have an account? <a href="https://puter.com" target="_blank">Sign up for Puter</a>
|
|
201
|
+
</div>
|
|
202
|
+
</div>
|
|
203
|
+
|
|
204
|
+
<script>
|
|
205
|
+
const form = document.getElementById('login-form');
|
|
206
|
+
const errorDiv = document.getElementById('error');
|
|
207
|
+
const submitBtn = document.getElementById('submit-btn');
|
|
208
|
+
const credentialsSection = document.getElementById('credentials-section');
|
|
209
|
+
const otpSection = document.getElementById('otp-section');
|
|
210
|
+
const otpInput = document.getElementById('otp');
|
|
211
|
+
|
|
212
|
+
let otpJwtToken = null; // For 2FA flow
|
|
213
|
+
|
|
214
|
+
function showError(message) {
|
|
215
|
+
errorDiv.textContent = message;
|
|
216
|
+
errorDiv.style.display = 'block';
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
function hideError() {
|
|
220
|
+
errorDiv.style.display = 'none';
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
function setLoading(loading) {
|
|
224
|
+
submitBtn.disabled = loading;
|
|
225
|
+
submitBtn.innerHTML = loading
|
|
226
|
+
? '<span class="spinner"></span>Signing in...'
|
|
227
|
+
: 'Sign In';
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
async function handleLogin(e) {
|
|
231
|
+
e.preventDefault();
|
|
232
|
+
hideError();
|
|
233
|
+
setLoading(true);
|
|
234
|
+
|
|
235
|
+
try {
|
|
236
|
+
let response, data;
|
|
237
|
+
|
|
238
|
+
if (otpJwtToken) {
|
|
239
|
+
// 2FA step
|
|
240
|
+
const otp = otpInput.value.trim();
|
|
241
|
+
if (otp.length !== 6) {
|
|
242
|
+
showError('Please enter a 6-digit code');
|
|
243
|
+
setLoading(false);
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
response = await fetch('https://puter.com/login/otp', {
|
|
248
|
+
method: 'POST',
|
|
249
|
+
headers: {
|
|
250
|
+
'Content-Type': 'application/json',
|
|
251
|
+
'Origin': 'https://puter.com',
|
|
252
|
+
'Referer': 'https://puter.com/'
|
|
253
|
+
},
|
|
254
|
+
body: JSON.stringify({
|
|
255
|
+
token: otpJwtToken,
|
|
256
|
+
code: otp
|
|
257
|
+
})
|
|
258
|
+
});
|
|
259
|
+
} else {
|
|
260
|
+
// Initial login
|
|
261
|
+
const username = document.getElementById('username').value.trim();
|
|
262
|
+
const password = document.getElementById('password').value;
|
|
263
|
+
|
|
264
|
+
response = await fetch('https://puter.com/login', {
|
|
265
|
+
method: 'POST',
|
|
266
|
+
headers: {
|
|
267
|
+
'Content-Type': 'application/json',
|
|
268
|
+
'Origin': 'https://puter.com',
|
|
269
|
+
'Referer': 'https://puter.com/'
|
|
270
|
+
},
|
|
271
|
+
body: JSON.stringify({ username, password })
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
const contentType = response.headers.get('content-type') || '';
|
|
276
|
+
if (!contentType.includes('application/json')) {
|
|
277
|
+
const text = await response.text();
|
|
278
|
+
throw new Error(text || 'Login failed');
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
data = await response.json();
|
|
282
|
+
|
|
283
|
+
// Handle multi-step login (2FA)
|
|
284
|
+
while (data.proceed && data.next_step) {
|
|
285
|
+
if (data.next_step === 'otp') {
|
|
286
|
+
// Show 2FA input
|
|
287
|
+
otpJwtToken = data.otp_jwt_token;
|
|
288
|
+
credentialsSection.style.display = 'none';
|
|
289
|
+
otpSection.style.display = 'block';
|
|
290
|
+
submitBtn.textContent = 'Verify Code';
|
|
291
|
+
setLoading(false);
|
|
292
|
+
otpInput.focus();
|
|
293
|
+
return; // Wait for user to submit OTP
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (data.next_step === 'complete') {
|
|
297
|
+
break;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
throw new Error('Unrecognized login step: ' + data.next_step);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
// Success - we have the token
|
|
304
|
+
if (data.proceed && data.token) {
|
|
305
|
+
// Get user info to get username
|
|
306
|
+
let username = document.getElementById('username').value.trim();
|
|
307
|
+
|
|
308
|
+
// Redirect to callback with token
|
|
309
|
+
const callbackUrl = new URL('http://localhost:${callbackPort}/callback');
|
|
310
|
+
callbackUrl.searchParams.set('token', data.token);
|
|
311
|
+
callbackUrl.searchParams.set('username', username);
|
|
312
|
+
if (data.email) {
|
|
313
|
+
callbackUrl.searchParams.set('email', data.email);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
window.location.href = callbackUrl.toString();
|
|
317
|
+
} else {
|
|
318
|
+
throw new Error('Login failed. Please check your credentials.');
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
} catch (err) {
|
|
322
|
+
showError(err.message || 'Login failed');
|
|
323
|
+
setLoading(false);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
form.addEventListener('submit', handleLogin);
|
|
328
|
+
|
|
329
|
+
// Focus username on load
|
|
330
|
+
document.getElementById('username').focus();
|
|
331
|
+
</script>
|
|
332
|
+
</body>
|
|
333
|
+
</html>`;
|
|
334
|
+
}
|
|
36
335
|
/**
|
|
37
336
|
* Load plugin configuration from puter.json
|
|
38
337
|
*/
|
|
@@ -175,11 +474,9 @@ export const PuterAuthPlugin = async (_input) => {
|
|
|
175
474
|
}
|
|
176
475
|
}
|
|
177
476
|
else if (url.pathname === '/') {
|
|
178
|
-
//
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
res.writeHead(302, { Location: authUrl });
|
|
182
|
-
res.end();
|
|
477
|
+
// Serve login page - Puter uses username/password, not OAuth redirects
|
|
478
|
+
res.writeHead(200, { 'Content-Type': 'text/html' });
|
|
479
|
+
res.end(getLoginPage(CALLBACK_PORT));
|
|
183
480
|
}
|
|
184
481
|
else {
|
|
185
482
|
res.writeHead(404);
|
|
@@ -204,7 +501,7 @@ export const PuterAuthPlugin = async (_input) => {
|
|
|
204
501
|
});
|
|
205
502
|
resolve({
|
|
206
503
|
url: `http://localhost:${CALLBACK_PORT}`,
|
|
207
|
-
instructions: 'Opening browser for Puter.com
|
|
504
|
+
instructions: 'Opening browser for Puter.com login. Enter your Puter username and password to authenticate.',
|
|
208
505
|
method: 'auto',
|
|
209
506
|
callback: () => callbackPromise,
|
|
210
507
|
});
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.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.37",
|
|
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"
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
"@ai-sdk/provider": "^3.0.3",
|
|
89
89
|
"@ai-sdk/provider-utils": "^4.0.7",
|
|
90
90
|
"@heyputer/puter.js": "^2.2.5",
|
|
91
|
+
"ai": "^6.0.39",
|
|
91
92
|
"open": "^11.0.0",
|
|
92
93
|
"xdg-basedir": "^5.1.0",
|
|
93
94
|
"zod": "^4.3.5"
|