opencode-gemini-cli-oauth 1.1.18 → 1.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/plugin.d.ts CHANGED
@@ -13,9 +13,6 @@ export default function loadPlugin(context: PluginContext): Promise<{
13
13
  provider: string;
14
14
  loader: (getAuth: any, provider: string) => Promise<{
15
15
  apiKey: string;
16
- client: {
17
- name: string;
18
- };
19
16
  fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
20
17
  }>;
21
18
  methods: {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;GAGG;AACH,wBAA8B,UAAU,CAAC,OAAO,EAAE,aAAa;;;0BAoDjC,GAAG,YAAY,MAAM;;;;;2BA1CV,WAAW,GAAG,GAAG,SAAS,WAAW,KAAG,OAAO,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;GA6EjG"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAchD;;;GAGG;AACH,wBAA8B,UAAU,CAAC,OAAO,EAAE,aAAa;;;0BAqDjC,GAAG,YAAY,MAAM;;2BA5CV,WAAW,GAAG,GAAG,SAAS,WAAW,KAAG,OAAO,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;GA8EjG"}
package/dist/plugin.js CHANGED
@@ -3,33 +3,44 @@
3
3
  * Copyright 2025 Yusuf
4
4
  * SPDX-License-Identifier: MIT
5
5
  */
6
+ import * as fs from 'fs';
6
7
  import { oauth } from './auth/oauth.js';
8
+ const LOG_FILE = '/tmp/gemini_plugin_debug.log';
9
+ function log(message) {
10
+ const timestamp = new Date().toISOString();
11
+ const logMessage = `[${timestamp}] ${message}\n`;
12
+ try {
13
+ fs.appendFileSync(LOG_FILE, logMessage);
14
+ }
15
+ catch (e) {
16
+ // Ignore logging errors
17
+ }
18
+ }
7
19
  /**
8
20
  * OpenCode Plugin for Gemini CLI OAuth Authentication
9
21
  * Refactored based on Architectural Analysis (Factory Function Pattern)
10
22
  */
11
23
  export default async function loadPlugin(context) {
12
- console.log('🚀 Loading Gemini CLI OAuth plugin (v1.1.18) - Unrestricted Interceptor...');
13
- // 1. Capture original fetcher (Middleware pattern)
14
- // Fallback to global fetch if context.client.fetch is not available
24
+ log('🚀 Loading Gemini CLI OAuth plugin (v1.1.20)...');
25
+ // 1. Capture original fetcher
15
26
  const nextFetch = (context.client && context.client.fetch)
16
27
  ? context.client.fetch.bind(context.client)
17
28
  : globalThis.fetch.bind(globalThis);
18
29
  // 2. Define the interceptor
19
30
  const interceptedFetch = async (input, init) => {
20
- // Logging for debug
21
31
  const urlStr = typeof input === 'string' ? input : input instanceof URL ? input.href : input.url;
22
- console.log(`📡 [Gemini OAuth] Intercepting request to: ${urlStr}`);
32
+ log(`📡 Intercepting request to: ${urlStr}`);
23
33
  try {
24
34
  // 3. Auth Check & Token Retrieval
25
35
  const token = await oauth.getAccessToken();
26
- // 4. Clone init to avoid mutation side-effects
36
+ log('🔑 Token retrieved successfully');
37
+ // 4. Clone init
27
38
  const newInit = { ...init };
28
39
  const headers = new Headers(newInit.headers);
29
- // 5. Inject Header (Always inject, trusting that this fetcher is only used for this provider)
40
+ // 5. Inject Header
30
41
  headers.set('Authorization', `Bearer ${token}`);
31
42
  newInit.headers = headers;
32
- // Remove API key query param if present
43
+ // Remove API key query param
33
44
  let targetInput = input;
34
45
  if (typeof input === 'string' && input.includes('key=')) {
35
46
  const urlObj = new URL(input);
@@ -41,11 +52,13 @@ export default async function loadPlugin(context) {
41
52
  urlObj.searchParams.delete('key');
42
53
  targetInput = urlObj;
43
54
  }
44
- return nextFetch(targetInput, newInit);
55
+ log(`📤 Forwarding request with Auth header`);
56
+ const response = await nextFetch(targetInput, newInit);
57
+ log(`pw Response status: ${response.status}`);
58
+ return response;
45
59
  }
46
60
  catch (error) {
47
- console.error('❌ [Gemini OAuth] Token error:', error);
48
- // Fallback: try request without auth injection
61
+ log(`❌ Token error or fetch failed: ${error}`);
49
62
  return nextFetch(input, init);
50
63
  }
51
64
  };
@@ -53,11 +66,10 @@ export default async function loadPlugin(context) {
53
66
  auth: {
54
67
  provider: 'gemini-cli-oauth',
55
68
  loader: async (getAuth, provider) => {
56
- console.log(`🔌 Initializing auth strategy for ${provider} (v1.1.18)`);
57
- // Return a structure that mimics a fully initialized client
69
+ log(`🔌 Initializing auth strategy for ${provider} (v1.1.20)`);
70
+ // Return minimal structure required for Google provider
58
71
  return {
59
- apiKey: 'gemini-cli-oauth-managed', // Dummy key to satisfy checks
60
- client: { name: 'gemini-cli-oauth-client' }, // Dummy client object
72
+ apiKey: 'AIzaSyDummyTokenForGeminiCliOAuthBypassValidation',
61
73
  fetch: interceptedFetch
62
74
  };
63
75
  },
@@ -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-gemini-cli-oauth",
3
- "version": "1.1.18",
3
+ "version": "1.1.20",
4
4
  "description": "OpenCode plugin for Gemini CLI OAuth authentication - use Google account quota without API keys",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",