opencode-puter-auth 1.0.0-beta.1

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.
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Type definitions for opencode-puter-auth plugin
3
+ */
4
+ import { z } from 'zod';
5
+ export declare const PuterAccountSchema: z.ZodObject<{
6
+ username: z.ZodString;
7
+ email: z.ZodOptional<z.ZodString>;
8
+ authToken: z.ZodString;
9
+ addedAt: z.ZodNumber;
10
+ lastUsed: z.ZodOptional<z.ZodNumber>;
11
+ isTemporary: z.ZodDefault<z.ZodBoolean>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ username: string;
14
+ authToken: string;
15
+ addedAt: number;
16
+ isTemporary: boolean;
17
+ email?: string | undefined;
18
+ lastUsed?: number | undefined;
19
+ }, {
20
+ username: string;
21
+ authToken: string;
22
+ addedAt: number;
23
+ email?: string | undefined;
24
+ lastUsed?: number | undefined;
25
+ isTemporary?: boolean | undefined;
26
+ }>;
27
+ export type PuterAccount = z.infer<typeof PuterAccountSchema>;
28
+ export declare const PuterAccountsStorageSchema: z.ZodObject<{
29
+ version: z.ZodDefault<z.ZodNumber>;
30
+ accounts: z.ZodArray<z.ZodObject<{
31
+ username: z.ZodString;
32
+ email: z.ZodOptional<z.ZodString>;
33
+ authToken: z.ZodString;
34
+ addedAt: z.ZodNumber;
35
+ lastUsed: z.ZodOptional<z.ZodNumber>;
36
+ isTemporary: z.ZodDefault<z.ZodBoolean>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ username: string;
39
+ authToken: string;
40
+ addedAt: number;
41
+ isTemporary: boolean;
42
+ email?: string | undefined;
43
+ lastUsed?: number | undefined;
44
+ }, {
45
+ username: string;
46
+ authToken: string;
47
+ addedAt: number;
48
+ email?: string | undefined;
49
+ lastUsed?: number | undefined;
50
+ isTemporary?: boolean | undefined;
51
+ }>, "many">;
52
+ activeIndex: z.ZodDefault<z.ZodNumber>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ version: number;
55
+ accounts: {
56
+ username: string;
57
+ authToken: string;
58
+ addedAt: number;
59
+ isTemporary: boolean;
60
+ email?: string | undefined;
61
+ lastUsed?: number | undefined;
62
+ }[];
63
+ activeIndex: number;
64
+ }, {
65
+ accounts: {
66
+ username: string;
67
+ authToken: string;
68
+ addedAt: number;
69
+ email?: string | undefined;
70
+ lastUsed?: number | undefined;
71
+ isTemporary?: boolean | undefined;
72
+ }[];
73
+ version?: number | undefined;
74
+ activeIndex?: number | undefined;
75
+ }>;
76
+ export type PuterAccountsStorage = z.infer<typeof PuterAccountsStorageSchema>;
77
+ export declare const PuterConfigSchema: z.ZodObject<{
78
+ quiet_mode: z.ZodDefault<z.ZodBoolean>;
79
+ debug: z.ZodDefault<z.ZodBoolean>;
80
+ log_dir: z.ZodOptional<z.ZodString>;
81
+ auto_update: z.ZodDefault<z.ZodBoolean>;
82
+ api_base_url: z.ZodDefault<z.ZodString>;
83
+ api_timeout_ms: z.ZodDefault<z.ZodNumber>;
84
+ auto_create_temp_user: z.ZodDefault<z.ZodBoolean>;
85
+ max_retries: z.ZodDefault<z.ZodNumber>;
86
+ retry_delay_ms: z.ZodDefault<z.ZodNumber>;
87
+ stream_buffer_size: z.ZodDefault<z.ZodNumber>;
88
+ }, "strip", z.ZodTypeAny, {
89
+ quiet_mode: boolean;
90
+ debug: boolean;
91
+ auto_update: boolean;
92
+ api_base_url: string;
93
+ api_timeout_ms: number;
94
+ auto_create_temp_user: boolean;
95
+ max_retries: number;
96
+ retry_delay_ms: number;
97
+ stream_buffer_size: number;
98
+ log_dir?: string | undefined;
99
+ }, {
100
+ quiet_mode?: boolean | undefined;
101
+ debug?: boolean | undefined;
102
+ log_dir?: string | undefined;
103
+ auto_update?: boolean | undefined;
104
+ api_base_url?: string | undefined;
105
+ api_timeout_ms?: number | undefined;
106
+ auto_create_temp_user?: boolean | undefined;
107
+ max_retries?: number | undefined;
108
+ retry_delay_ms?: number | undefined;
109
+ stream_buffer_size?: number | undefined;
110
+ }>;
111
+ export type PuterConfig = z.infer<typeof PuterConfigSchema>;
112
+ export interface PuterChatMessage {
113
+ role: 'system' | 'user' | 'assistant' | 'tool';
114
+ content: string | PuterContentPart[];
115
+ tool_call_id?: string;
116
+ tool_calls?: PuterToolCall[];
117
+ }
118
+ export interface PuterContentPart {
119
+ type: 'text' | 'file' | 'image_url';
120
+ text?: string;
121
+ puter_path?: string;
122
+ image_url?: {
123
+ url: string;
124
+ };
125
+ }
126
+ export interface PuterToolCall {
127
+ id: string;
128
+ type: 'function';
129
+ function: {
130
+ name: string;
131
+ arguments: string;
132
+ };
133
+ }
134
+ export interface PuterChatOptions {
135
+ model?: string;
136
+ stream?: boolean;
137
+ max_tokens?: number;
138
+ temperature?: number;
139
+ tools?: PuterTool[];
140
+ test_mode?: boolean;
141
+ }
142
+ export interface PuterTool {
143
+ type: 'function';
144
+ function: {
145
+ name: string;
146
+ description: string;
147
+ parameters: Record<string, unknown>;
148
+ strict?: boolean;
149
+ };
150
+ }
151
+ export interface PuterChatResponse {
152
+ message: {
153
+ role: 'assistant';
154
+ content: string | null;
155
+ tool_calls?: PuterToolCall[];
156
+ };
157
+ finish_reason: 'stop' | 'tool_calls' | 'length';
158
+ usage?: {
159
+ prompt_tokens: number;
160
+ completion_tokens: number;
161
+ total_tokens: number;
162
+ };
163
+ }
164
+ export interface PuterChatStreamChunk {
165
+ text?: string;
166
+ reasoning?: string;
167
+ tool_calls?: PuterToolCall[];
168
+ finish_reason?: string;
169
+ done?: boolean;
170
+ }
171
+ export interface PuterModelInfo {
172
+ id: string;
173
+ name: string;
174
+ provider: string;
175
+ context_window?: number;
176
+ max_output_tokens?: number;
177
+ supports_streaming?: boolean;
178
+ supports_tools?: boolean;
179
+ supports_vision?: boolean;
180
+ }
181
+ export interface PuterAuthResult {
182
+ success: boolean;
183
+ account?: PuterAccount;
184
+ error?: string;
185
+ }
186
+ export declare const PUTER_CLAUDE_MODELS: readonly ["claude-opus-4-5", "claude-sonnet-4-5", "claude-sonnet-4", "claude-opus-4", "claude-opus-4-1", "claude-haiku-4-5"];
187
+ export declare const PUTER_GPT_MODELS: readonly ["gpt-5-nano", "gpt-5", "gpt-5.1", "gpt-5.2", "gpt-4o", "gpt-4o-mini", "o1", "o1-mini", "o3-mini", "o4"];
188
+ export declare const PUTER_GEMINI_MODELS: readonly ["gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite", "gemini-2.0-flash"];
189
+ export type PuterModelId = typeof PUTER_CLAUDE_MODELS[number] | typeof PUTER_GPT_MODELS[number] | typeof PUTER_GEMINI_MODELS[number] | string;
190
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Type definitions for opencode-puter-auth plugin
3
+ */
4
+ import { z } from 'zod';
5
+ // Puter Account Schema
6
+ export const PuterAccountSchema = z.object({
7
+ username: z.string(),
8
+ email: z.string().email().optional(),
9
+ authToken: z.string(),
10
+ addedAt: z.number(),
11
+ lastUsed: z.number().optional(),
12
+ isTemporary: z.boolean().default(false),
13
+ });
14
+ // Puter Accounts Storage Schema
15
+ export const PuterAccountsStorageSchema = z.object({
16
+ version: z.number().default(1),
17
+ accounts: z.array(PuterAccountSchema),
18
+ activeIndex: z.number().default(0),
19
+ });
20
+ // Puter Configuration Schema
21
+ export const PuterConfigSchema = z.object({
22
+ quiet_mode: z.boolean().default(false),
23
+ debug: z.boolean().default(false),
24
+ log_dir: z.string().optional(),
25
+ auto_update: z.boolean().default(true),
26
+ // API Settings
27
+ api_base_url: z.string().default('https://api.puter.com'),
28
+ api_timeout_ms: z.number().default(120000),
29
+ // Session Settings
30
+ auto_create_temp_user: z.boolean().default(true),
31
+ // Retry Settings
32
+ max_retries: z.number().default(3),
33
+ retry_delay_ms: z.number().default(1000),
34
+ // Stream Settings
35
+ stream_buffer_size: z.number().default(1024),
36
+ });
37
+ // Available Claude Models
38
+ export const PUTER_CLAUDE_MODELS = [
39
+ 'claude-opus-4-5',
40
+ 'claude-sonnet-4-5',
41
+ 'claude-sonnet-4',
42
+ 'claude-opus-4',
43
+ 'claude-opus-4-1',
44
+ 'claude-haiku-4-5',
45
+ ];
46
+ // Available GPT Models
47
+ export const PUTER_GPT_MODELS = [
48
+ 'gpt-5-nano',
49
+ 'gpt-5',
50
+ 'gpt-5.1',
51
+ 'gpt-5.2',
52
+ 'gpt-4o',
53
+ 'gpt-4o-mini',
54
+ 'o1',
55
+ 'o1-mini',
56
+ 'o3-mini',
57
+ 'o4',
58
+ ];
59
+ // Available Gemini Models
60
+ export const PUTER_GEMINI_MODELS = [
61
+ 'gemini-2.5-pro',
62
+ 'gemini-2.5-flash',
63
+ 'gemini-2.5-flash-lite',
64
+ 'gemini-2.0-flash',
65
+ ];
66
+ //# sourceMappingURL=types.js.map
@@ -0,0 +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;CAC7C,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 ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "opencode-puter-auth",
3
+ "version": "1.0.0-beta.1",
4
+ "description": "Puter.com OAuth auth plugin for OpenCode - FREE UNLIMITED access to Claude Opus 4.5, Sonnet 4.5, GPT-5, Gemini, and 500+ AI models",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "type": "module",
8
+ "license": "MIT",
9
+ "author": "chindris-mihai-alexandru",
10
+ "funding": {
11
+ "type": "ko-fi",
12
+ "url": "https://ko-fi.com/chindrismihai"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/chindris-mihai-alexandru/opencode-puter-auth.git"
17
+ },
18
+ "homepage": "https://github.com/chindris-mihai-alexandru/opencode-puter-auth#readme",
19
+ "bugs": {
20
+ "url": "https://github.com/chindris-mihai-alexandru/opencode-puter-auth/issues"
21
+ },
22
+ "keywords": [
23
+ "opencode",
24
+ "puter",
25
+ "claude",
26
+ "opus",
27
+ "sonnet",
28
+ "anthropic",
29
+ "gpt",
30
+ "openai",
31
+ "gemini",
32
+ "free",
33
+ "unlimited",
34
+ "oauth",
35
+ "plugin",
36
+ "auth",
37
+ "ai",
38
+ "coding",
39
+ "llm"
40
+ ],
41
+ "engines": {
42
+ "node": ">=20.0.0"
43
+ },
44
+ "files": [
45
+ "dist/",
46
+ "README.md",
47
+ "LICENSE"
48
+ ],
49
+ "scripts": {
50
+ "build": "tsc -p tsconfig.build.json",
51
+ "typecheck": "tsc --noEmit",
52
+ "test": "vitest run",
53
+ "test:watch": "vitest",
54
+ "test:ui": "vitest --ui",
55
+ "test:coverage": "vitest run --coverage",
56
+ "prepublishOnly": "npm run build",
57
+ "dev": "tsc -p tsconfig.build.json --watch"
58
+ },
59
+ "peerDependencies": {
60
+ "typescript": "^5"
61
+ },
62
+ "devDependencies": {
63
+ "@opencode-ai/plugin": "^0.15.30",
64
+ "@types/node": "^24.10.1",
65
+ "@vitest/coverage-v8": "^3.0.0",
66
+ "@vitest/ui": "^3.0.0",
67
+ "typescript": "^5.0.0",
68
+ "vitest": "^3.0.0"
69
+ },
70
+ "dependencies": {
71
+ "open": "^10.1.0",
72
+ "xdg-basedir": "^5.1.0",
73
+ "zod": "^3.24.0"
74
+ }
75
+ }