opencode-enhancer 1.0.6 → 1.1.0
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 +2 -2
- package/dist/cli.js +85 -5
- package/dist/cli.js.map +1 -1
- package/dist/providers/auth.d.ts +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +142 -48
- package/dist/providers/auth.js.map +1 -1
- package/dist/providers/chutes.d.ts +1 -1
- package/dist/providers/chutes.d.ts.map +1 -1
- package/dist/providers/chutes.js +19 -16
- package/dist/providers/chutes.js.map +1 -1
- package/dist/providers/codex.d.ts +1 -1
- package/dist/providers/codex.d.ts.map +1 -1
- package/dist/providers/codex.js +60 -35
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/copilot.d.ts +1 -1
- package/dist/providers/copilot.d.ts.map +1 -1
- package/dist/providers/copilot.js +96 -60
- package/dist/providers/copilot.js.map +1 -1
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +23 -0
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/opencode.d.ts.map +1 -1
- package/dist/providers/opencode.js +23 -10
- package/dist/providers/opencode.js.map +1 -1
- package/dist/providers/types.d.ts +10 -4
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/zai.d.ts +1 -1
- package/dist/providers/zai.d.ts.map +1 -1
- package/dist/providers/zai.js +41 -14
- package/dist/providers/zai.js.map +1 -1
- package/dist/rotation.d.ts.map +1 -1
- package/dist/rotation.js +13 -3
- package/dist/rotation.js.map +1 -1
- package/dist/usage-command.d.ts.map +1 -1
- package/dist/usage-command.js +589 -85
- package/dist/usage-command.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# opencode-enhancer
|
|
2
2
|
|
|
3
|
-
OpenCode enhancer for Codex accounts, usage tracking, plugin updates
|
|
3
|
+
OpenCode enhancer for Codex accounts, usage tracking, plugin updates.
|
|
4
4
|
|
|
5
5
|
## What It Does
|
|
6
6
|
|
|
@@ -57,7 +57,7 @@ Other registry plugins are still updated with `@latest`.
|
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
59
|
opencode-enhancer add <alias>
|
|
60
|
-
opencode-enhancer remove
|
|
60
|
+
opencode-enhancer remove
|
|
61
61
|
opencode-enhancer list
|
|
62
62
|
opencode-enhancer status
|
|
63
63
|
opencode-enhancer usage
|
package/dist/cli.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { createInterface } from 'node:readline/promises';
|
|
3
|
+
import { stdin as input, stdout as output } from 'node:process';
|
|
2
4
|
import { loginAccount } from './auth.js';
|
|
3
5
|
import { removeAccount, listAccounts, getStorePath, loadStore } from './store.js';
|
|
4
6
|
import { runPluginsUpdateCommand } from './plugin-updates.js';
|
|
@@ -15,6 +17,74 @@ function getFlagValue(flag) {
|
|
|
15
17
|
function hasFlag(flag) {
|
|
16
18
|
return args.includes(flag);
|
|
17
19
|
}
|
|
20
|
+
function formatAccountUsageHint(account) {
|
|
21
|
+
const parts = [];
|
|
22
|
+
const fiveHour = account.rateLimits?.fiveHour;
|
|
23
|
+
if (typeof fiveHour?.remaining === 'number') {
|
|
24
|
+
if (typeof fiveHour.limit === 'number' && fiveHour.limit !== 100) {
|
|
25
|
+
parts.push(`5h ${fiveHour.remaining}/${fiveHour.limit} left`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
parts.push(`5h ${fiveHour.remaining}% left`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const weekly = account.rateLimits?.weekly;
|
|
32
|
+
if (typeof weekly?.remaining === 'number') {
|
|
33
|
+
if (typeof weekly.limit === 'number' && weekly.limit !== 100) {
|
|
34
|
+
parts.push(`weekly ${weekly.remaining}/${weekly.limit} left`);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
parts.push(`weekly ${weekly.remaining}% left`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return parts.join(' · ');
|
|
41
|
+
}
|
|
42
|
+
function formatAccountOption(account, activeAlias) {
|
|
43
|
+
const primary = account.email?.trim() || account.alias;
|
|
44
|
+
const secondary = primary === account.alias ? '' : ` (${account.alias})`;
|
|
45
|
+
const active = account.alias === activeAlias ? ' [active]' : '';
|
|
46
|
+
const usage = formatAccountUsageHint(account);
|
|
47
|
+
return usage ? `${primary}${secondary}${active} - ${usage}` : `${primary}${secondary}${active}`;
|
|
48
|
+
}
|
|
49
|
+
async function selectAccountAliasForRemoval() {
|
|
50
|
+
const accounts = listAccounts();
|
|
51
|
+
if (accounts.length === 0) {
|
|
52
|
+
console.log('No accounts configured.');
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
if (!input.isTTY || !output.isTTY) {
|
|
56
|
+
throw new Error('Interactive account selection requires a TTY.');
|
|
57
|
+
}
|
|
58
|
+
const store = loadStore();
|
|
59
|
+
console.log('\nSelect account to remove:\n');
|
|
60
|
+
for (const [index, account] of accounts.entries()) {
|
|
61
|
+
console.log(` ${index + 1}. ${formatAccountOption(account, store.activeAlias)}`);
|
|
62
|
+
}
|
|
63
|
+
console.log(' 0. Cancel\n');
|
|
64
|
+
const rl = createInterface({ input, output });
|
|
65
|
+
try {
|
|
66
|
+
while (true) {
|
|
67
|
+
const answer = (await rl.question('Choose account: ')).trim();
|
|
68
|
+
const choice = Number.parseInt(answer, 10);
|
|
69
|
+
if (Number.isNaN(choice)) {
|
|
70
|
+
console.log('Enter a number from the list.');
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
if (choice === 0) {
|
|
74
|
+
console.log('Removal cancelled.');
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
const selected = accounts[choice - 1];
|
|
78
|
+
if (selected) {
|
|
79
|
+
return selected.alias;
|
|
80
|
+
}
|
|
81
|
+
console.log(`Choose a number between 0 and ${accounts.length}.`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
rl.close();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
18
88
|
async function main() {
|
|
19
89
|
switch (command) {
|
|
20
90
|
case 'add':
|
|
@@ -37,12 +107,22 @@ async function main() {
|
|
|
37
107
|
}
|
|
38
108
|
case 'remove':
|
|
39
109
|
case 'rm': {
|
|
40
|
-
if (
|
|
41
|
-
console.error('Usage: opencode-enhancer remove
|
|
110
|
+
if (alias) {
|
|
111
|
+
console.error('Usage: opencode-enhancer remove');
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
try {
|
|
115
|
+
const selectedAlias = await selectAccountAliasForRemoval();
|
|
116
|
+
if (!selectedAlias) {
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
removeAccount(selectedAlias);
|
|
120
|
+
console.log(`Account "${selectedAlias}" removed.`);
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
console.error(`Failed to remove account: ${err}`);
|
|
42
124
|
process.exit(1);
|
|
43
125
|
}
|
|
44
|
-
removeAccount(alias);
|
|
45
|
-
console.log(`Account "${alias}" removed.`);
|
|
46
126
|
break;
|
|
47
127
|
}
|
|
48
128
|
case 'list':
|
|
@@ -124,7 +204,7 @@ opencode-enhancer - OpenCode enhancer for Codex accounts, usage, plugin updates,
|
|
|
124
204
|
|
|
125
205
|
Commands:
|
|
126
206
|
add <alias> Add a new account (opens browser for OAuth)
|
|
127
|
-
remove
|
|
207
|
+
remove Remove an account (opens selector)
|
|
128
208
|
list List all configured accounts
|
|
129
209
|
status Show detailed account status
|
|
130
210
|
usage Check usage/quota across all connected providers
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAClC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACvB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AAErB,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9B,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAA;IAChC,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;AACtB,CAAC;AAED,SAAS,OAAO,CAAC,IAAY;IAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,KAAK,CAAC;QACX,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;gBACrD,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;gBACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,CAAA;gBACzC,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,uBAAuB,CAAC,CAAA;gBACvD,OAAO,CAAC,GAAG,CAAC,UAAU,OAAO,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC,CAAA;YACrD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAA;gBAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACjB,CAAC;YACD,MAAK;QACP,CAAC;QAED,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,IAAI,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/providers/auth.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"AAUA,UAAU,eAAe;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8ID,kGAAkG;AAClG,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK7D;AAED,oDAAoD;AACpD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKpE;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAK3E;AAED,2FAA2F;AAC3F,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQzD;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOlD;AAED,6DAA6D;AAC7D,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAGD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAyBD,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,SAAS,CAqClE"}
|
package/dist/providers/auth.js
CHANGED
|
@@ -1,84 +1,172 @@
|
|
|
1
1
|
// Read auth tokens from OpenCode's auth.json file
|
|
2
2
|
// Located at ~/.local/share/opencode/auth.json (XDG_DATA_HOME/opencode/auth.json)
|
|
3
|
-
import { readFileSync, existsSync } from
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { readFileSync, existsSync } from "node:fs";
|
|
4
|
+
import { createRequire } from "node:module";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { homedir } from "node:os";
|
|
7
|
+
const require = createRequire(import.meta.url);
|
|
6
8
|
let cachedAuth = null;
|
|
7
9
|
let cacheTimestamp = 0;
|
|
8
10
|
const CACHE_TTL_MS = 10_000; // 10 seconds
|
|
11
|
+
const AUTH_KEY_ALIASES = {
|
|
12
|
+
opencode: ["opencode-go"],
|
|
13
|
+
"opencode-go": ["opencode"],
|
|
14
|
+
google: ["google.oauth"],
|
|
15
|
+
"google.oauth": ["google"],
|
|
16
|
+
};
|
|
17
|
+
function getAuthFileCandidates() {
|
|
18
|
+
const xdgData = process.env.XDG_DATA_HOME || join(homedir(), ".local", "share");
|
|
19
|
+
const xdgConfig = process.env.XDG_CONFIG_HOME || join(homedir(), ".config");
|
|
20
|
+
const candidates = [
|
|
21
|
+
join(xdgData, "opencode", "auth.json"),
|
|
22
|
+
join(xdgData, "opencode", "auth.js"),
|
|
23
|
+
join(xdgConfig, "opencode", "auth.json"),
|
|
24
|
+
join(xdgConfig, "opencode", "auth.js"),
|
|
25
|
+
];
|
|
26
|
+
return [...new Set(candidates)];
|
|
27
|
+
}
|
|
9
28
|
function getAuthFilePath() {
|
|
10
|
-
|
|
11
|
-
|
|
29
|
+
return (getAuthFileCandidates().find((filePath) => existsSync(filePath)) || getAuthFileCandidates()[0]);
|
|
30
|
+
}
|
|
31
|
+
function parseAuthObject(value) {
|
|
32
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
33
|
+
return undefined;
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
function parseAuthJsSource(raw) {
|
|
37
|
+
const trimmed = raw.trim();
|
|
38
|
+
const candidates = [
|
|
39
|
+
trimmed,
|
|
40
|
+
trimmed.replace(/^export\s+default\s+/, "").replace(/;\s*$/, ""),
|
|
41
|
+
trimmed.replace(/^module\.exports\s*=\s*/, "").replace(/;\s*$/, ""),
|
|
42
|
+
];
|
|
43
|
+
for (const candidate of candidates) {
|
|
44
|
+
if (!candidate ||
|
|
45
|
+
(candidate === trimmed &&
|
|
46
|
+
(trimmed.startsWith("export ") || trimmed.startsWith("module.exports")))) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
const parsed = Function(`"use strict"; return (${candidate})`)();
|
|
51
|
+
const auth = parseAuthObject(parsed);
|
|
52
|
+
if (auth)
|
|
53
|
+
return auth;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
function loadAuthFromPath(filePath) {
|
|
62
|
+
try {
|
|
63
|
+
const raw = readFileSync(filePath, "utf-8");
|
|
64
|
+
const fromJson = parseAuthObject(JSON.parse(raw));
|
|
65
|
+
if (fromJson)
|
|
66
|
+
return fromJson;
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
// Fall through to .js parsing / require below.
|
|
70
|
+
}
|
|
71
|
+
if (!filePath.endsWith(".js"))
|
|
72
|
+
return undefined;
|
|
73
|
+
try {
|
|
74
|
+
const resolved = require.resolve(filePath);
|
|
75
|
+
delete require.cache[resolved];
|
|
76
|
+
const loaded = require(filePath);
|
|
77
|
+
const auth = parseAuthObject(loaded?.default ?? loaded);
|
|
78
|
+
if (auth)
|
|
79
|
+
return auth;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// Fall through to raw object-literal parsing.
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
const raw = readFileSync(filePath, "utf-8");
|
|
86
|
+
return parseAuthJsSource(raw);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function getCredential(auth, key) {
|
|
93
|
+
const keys = [key, ...(AUTH_KEY_ALIASES[key] || [])];
|
|
94
|
+
for (const candidate of keys) {
|
|
95
|
+
const credential = auth[candidate];
|
|
96
|
+
if (credential)
|
|
97
|
+
return credential;
|
|
98
|
+
}
|
|
99
|
+
return undefined;
|
|
12
100
|
}
|
|
13
101
|
function loadAuthFile() {
|
|
14
102
|
const now = Date.now();
|
|
15
103
|
if (cachedAuth && now - cacheTimestamp < CACHE_TTL_MS) {
|
|
16
104
|
return cachedAuth;
|
|
17
105
|
}
|
|
18
|
-
const
|
|
19
|
-
|
|
106
|
+
const filePaths = getAuthFileCandidates();
|
|
107
|
+
const existingPaths = filePaths.filter((filePath) => existsSync(filePath));
|
|
108
|
+
if (existingPaths.length === 0) {
|
|
20
109
|
cachedAuth = {};
|
|
21
110
|
cacheTimestamp = now;
|
|
22
111
|
return cachedAuth;
|
|
23
112
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
catch {
|
|
31
|
-
cachedAuth = {};
|
|
32
|
-
cacheTimestamp = now;
|
|
33
|
-
return cachedAuth;
|
|
113
|
+
const mergedAuth = {};
|
|
114
|
+
for (const filePath of existingPaths) {
|
|
115
|
+
const parsed = loadAuthFromPath(filePath);
|
|
116
|
+
if (parsed) {
|
|
117
|
+
Object.assign(mergedAuth, parsed);
|
|
118
|
+
}
|
|
34
119
|
}
|
|
120
|
+
cachedAuth = mergedAuth;
|
|
121
|
+
cacheTimestamp = now;
|
|
122
|
+
return cachedAuth;
|
|
35
123
|
}
|
|
36
124
|
/** Get an OAuth access token for a provider key (e.g. 'anthropic', 'openai', 'github-copilot') */
|
|
37
125
|
export function getOAuthToken(key) {
|
|
38
126
|
const auth = loadAuthFile();
|
|
39
|
-
const cred = auth
|
|
40
|
-
if (!cred || cred.type !==
|
|
127
|
+
const cred = getCredential(auth, key);
|
|
128
|
+
if (!cred || cred.type !== "oauth")
|
|
41
129
|
return undefined;
|
|
42
130
|
return cred.access || undefined;
|
|
43
131
|
}
|
|
44
132
|
/** Get an OAuth refresh token for a provider key */
|
|
45
133
|
export function getOAuthRefreshToken(key) {
|
|
46
134
|
const auth = loadAuthFile();
|
|
47
|
-
const cred = auth
|
|
48
|
-
if (!cred || cred.type !==
|
|
135
|
+
const cred = getCredential(auth, key);
|
|
136
|
+
if (!cred || cred.type !== "oauth")
|
|
49
137
|
return undefined;
|
|
50
138
|
return cred.refresh || undefined;
|
|
51
139
|
}
|
|
52
140
|
/** Get an OAuth credential object for a provider key */
|
|
53
141
|
export function getOAuthCredential(key) {
|
|
54
142
|
const auth = loadAuthFile();
|
|
55
|
-
const cred = auth
|
|
56
|
-
if (!cred || cred.type !==
|
|
143
|
+
const cred = getCredential(auth, key);
|
|
144
|
+
if (!cred || cred.type !== "oauth")
|
|
57
145
|
return undefined;
|
|
58
146
|
return cred;
|
|
59
147
|
}
|
|
60
148
|
/** Get an API key for a provider key (e.g. 'openrouter', 'opencode', 'kimi-for-coding') */
|
|
61
149
|
export function getApiKey(key) {
|
|
62
150
|
const auth = loadAuthFile();
|
|
63
|
-
const cred = auth
|
|
151
|
+
const cred = getCredential(auth, key);
|
|
64
152
|
if (!cred)
|
|
65
153
|
return undefined;
|
|
66
|
-
if (cred.type ===
|
|
154
|
+
if (cred.type === "apikey" || cred.type === "api")
|
|
67
155
|
return cred.key || undefined;
|
|
68
156
|
// Some providers may store key in access field with oauth type
|
|
69
|
-
if (cred.type ===
|
|
157
|
+
if (cred.type === "oauth")
|
|
70
158
|
return cred.access || undefined;
|
|
71
159
|
return undefined;
|
|
72
160
|
}
|
|
73
161
|
/** Check if a provider key has any credential configured */
|
|
74
162
|
export function hasCredential(key) {
|
|
75
163
|
const auth = loadAuthFile();
|
|
76
|
-
const cred = auth
|
|
164
|
+
const cred = getCredential(auth, key);
|
|
77
165
|
if (!cred)
|
|
78
166
|
return false;
|
|
79
|
-
if (cred.type ===
|
|
167
|
+
if (cred.type === "apikey" || cred.type === "api")
|
|
80
168
|
return !!cred.key;
|
|
81
|
-
if (cred.type ===
|
|
169
|
+
if (cred.type === "oauth")
|
|
82
170
|
return !!cred.access;
|
|
83
171
|
return false;
|
|
84
172
|
}
|
|
@@ -91,27 +179,41 @@ export function invalidateAuthCache() {
|
|
|
91
179
|
export function getAuthPath() {
|
|
92
180
|
return getAuthFilePath();
|
|
93
181
|
}
|
|
182
|
+
function buildGeminiOAuthCreds(refreshToken, clientId, clientSecret) {
|
|
183
|
+
const resolvedClientId = clientId ||
|
|
184
|
+
process.env.OPENCODE_ENHANCER_GOOGLE_CLIENT_ID ||
|
|
185
|
+
process.env.OPENCODE_MULTI_AUTH_GOOGLE_CLIENT_ID;
|
|
186
|
+
const resolvedClientSecret = clientSecret ||
|
|
187
|
+
process.env.OPENCODE_ENHANCER_GOOGLE_CLIENT_SECRET ||
|
|
188
|
+
process.env.OPENCODE_MULTI_AUTH_GOOGLE_CLIENT_SECRET;
|
|
189
|
+
if (!resolvedClientId || !resolvedClientSecret)
|
|
190
|
+
return undefined;
|
|
191
|
+
return {
|
|
192
|
+
client_id: resolvedClientId,
|
|
193
|
+
client_secret: resolvedClientSecret,
|
|
194
|
+
refresh_token: refreshToken,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
94
197
|
export function getGeminiOAuthCreds() {
|
|
95
198
|
// Try multiple locations
|
|
96
199
|
const paths = [
|
|
97
|
-
join(homedir(),
|
|
98
|
-
join(homedir(),
|
|
200
|
+
join(homedir(), ".gemini", "oauth_creds.json"),
|
|
201
|
+
join(homedir(), ".config", "opencode", "antigravity-accounts.json"),
|
|
99
202
|
];
|
|
100
203
|
for (const p of paths) {
|
|
101
204
|
if (!existsSync(p))
|
|
102
205
|
continue;
|
|
103
206
|
try {
|
|
104
|
-
const raw = readFileSync(p,
|
|
207
|
+
const raw = readFileSync(p, "utf-8");
|
|
105
208
|
const parsed = JSON.parse(raw);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
return parsed;
|
|
209
|
+
if (parsed.refresh_token) {
|
|
210
|
+
return buildGeminiOAuthCreds(parsed.refresh_token, parsed.client_id, parsed.client_secret);
|
|
109
211
|
}
|
|
110
212
|
// Antigravity accounts format — take first account
|
|
111
213
|
if (Array.isArray(parsed)) {
|
|
112
214
|
const first = parsed[0];
|
|
113
|
-
if (first?.
|
|
114
|
-
return first;
|
|
215
|
+
if (first?.refresh_token) {
|
|
216
|
+
return buildGeminiOAuthCreds(first.refresh_token, first.client_id, first.client_secret);
|
|
115
217
|
}
|
|
116
218
|
}
|
|
117
219
|
}
|
|
@@ -121,17 +223,9 @@ export function getGeminiOAuthCreds() {
|
|
|
121
223
|
}
|
|
122
224
|
// Also check opencode auth.json for google.oauth
|
|
123
225
|
const auth = loadAuthFile();
|
|
124
|
-
const googleOAuth = auth[
|
|
125
|
-
if (googleOAuth && googleOAuth.type ===
|
|
126
|
-
|
|
127
|
-
const clientSecret = process.env.OPENCODE_ENHANCER_GOOGLE_CLIENT_SECRET || process.env.OPENCODE_MULTI_AUTH_GOOGLE_CLIENT_SECRET || '';
|
|
128
|
-
if (!clientId || !clientSecret)
|
|
129
|
-
return undefined;
|
|
130
|
-
return {
|
|
131
|
-
client_id: clientId,
|
|
132
|
-
client_secret: clientSecret,
|
|
133
|
-
refresh_token: googleOAuth.refresh,
|
|
134
|
-
};
|
|
226
|
+
const googleOAuth = auth["google.oauth"] || auth["google"];
|
|
227
|
+
if (googleOAuth && googleOAuth.type === "oauth" && googleOAuth.refresh) {
|
|
228
|
+
return buildGeminiOAuthCreds(googleOAuth.refresh);
|
|
135
229
|
}
|
|
136
230
|
return undefined;
|
|
137
231
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,kFAAkF;AAElF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/providers/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chutes.d.ts","sourceRoot":"","sources":["../../src/providers/chutes.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAkB,aAAa,EAAe,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"chutes.d.ts","sourceRoot":"","sources":["../../src/providers/chutes.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAkB,aAAa,EAAe,MAAM,YAAY,CAAC;AAiB7E,eAAO,MAAM,cAAc,EAAE,aAwG5B,CAAC"}
|
package/dist/providers/chutes.js
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
// Quotas: GET https://api.chutes.ai/users/me/quotas
|
|
4
4
|
// Usage: GET https://api.chutes.ai/users/me/quota_usage/{chute_id}
|
|
5
5
|
// Auth: raw key in Authorization header (no Bearer prefix)
|
|
6
|
-
import { getApiKey, hasCredential } from
|
|
7
|
-
import { fetchWithTimeout } from
|
|
8
|
-
const AUTH_KEY =
|
|
9
|
-
const BASE_URL =
|
|
6
|
+
import { getApiKey, hasCredential } from "./auth.js";
|
|
7
|
+
import { fetchWithTimeout } from "./types.js";
|
|
8
|
+
const AUTH_KEY = "chutes";
|
|
9
|
+
const BASE_URL = "https://api.chutes.ai";
|
|
10
10
|
export const chutesProvider = {
|
|
11
|
-
id:
|
|
12
|
-
name:
|
|
13
|
-
billingType:
|
|
11
|
+
id: "chutes",
|
|
12
|
+
name: "Chutes AI",
|
|
13
|
+
billingType: "quotaBased",
|
|
14
14
|
async isConfigured() {
|
|
15
15
|
return hasCredential(AUTH_KEY);
|
|
16
16
|
},
|
|
@@ -21,7 +21,7 @@ export const chutesProvider = {
|
|
|
21
21
|
providerId: this.id,
|
|
22
22
|
providerName: this.name,
|
|
23
23
|
billingType: this.billingType,
|
|
24
|
-
status:
|
|
24
|
+
status: "not_configured",
|
|
25
25
|
fetchedAt: Date.now(),
|
|
26
26
|
};
|
|
27
27
|
}
|
|
@@ -30,12 +30,12 @@ export const chutesProvider = {
|
|
|
30
30
|
// Fetch quotas
|
|
31
31
|
const quotasRes = await fetchWithTimeout(`${BASE_URL}/users/me/quotas`, { headers });
|
|
32
32
|
if (!quotasRes.ok) {
|
|
33
|
-
const text = await quotasRes.text().catch(() =>
|
|
33
|
+
const text = await quotasRes.text().catch(() => "");
|
|
34
34
|
return {
|
|
35
35
|
providerId: this.id,
|
|
36
36
|
providerName: this.name,
|
|
37
37
|
billingType: this.billingType,
|
|
38
|
-
status: quotasRes.status === 401 || quotasRes.status === 403 ?
|
|
38
|
+
status: quotasRes.status === 401 || quotasRes.status === 403 ? "auth_expired" : "error",
|
|
39
39
|
error: `HTTP ${quotasRes.status}: ${text.slice(0, 200)}`,
|
|
40
40
|
fetchedAt: Date.now(),
|
|
41
41
|
};
|
|
@@ -47,8 +47,8 @@ export const chutesProvider = {
|
|
|
47
47
|
providerId: this.id,
|
|
48
48
|
providerName: this.name,
|
|
49
49
|
billingType: this.billingType,
|
|
50
|
-
status:
|
|
51
|
-
usage: { type:
|
|
50
|
+
status: "ok",
|
|
51
|
+
usage: { type: "quotaBased", utilization: 0, windows: [] },
|
|
52
52
|
fetchedAt: Date.now(),
|
|
53
53
|
};
|
|
54
54
|
}
|
|
@@ -59,21 +59,24 @@ export const chutesProvider = {
|
|
|
59
59
|
if (usageRes.ok) {
|
|
60
60
|
const usage = (await usageRes.json());
|
|
61
61
|
utilization = usage.quota > 0 ? (usage.used / usage.quota) * 100 : 0;
|
|
62
|
+
const remaining = usage.quota > 0 ? Math.max(0, usage.quota - usage.used) : undefined;
|
|
62
63
|
windows.push({
|
|
63
64
|
utilization,
|
|
64
65
|
resetsAt: defaultQuota.payment_refresh_date
|
|
65
66
|
? new Date(defaultQuota.payment_refresh_date).getTime()
|
|
66
67
|
: undefined,
|
|
67
|
-
label:
|
|
68
|
+
label: "monthly",
|
|
69
|
+
remaining,
|
|
70
|
+
entitlement: usage.quota,
|
|
68
71
|
});
|
|
69
72
|
}
|
|
70
73
|
return {
|
|
71
74
|
providerId: this.id,
|
|
72
75
|
providerName: this.name,
|
|
73
76
|
billingType: this.billingType,
|
|
74
|
-
status:
|
|
77
|
+
status: "ok",
|
|
75
78
|
usage: {
|
|
76
|
-
type:
|
|
79
|
+
type: "quotaBased",
|
|
77
80
|
utilization,
|
|
78
81
|
remaining: defaultQuota.quota
|
|
79
82
|
? Math.max(0, defaultQuota.quota - (utilization * defaultQuota.quota) / 100)
|
|
@@ -89,7 +92,7 @@ export const chutesProvider = {
|
|
|
89
92
|
providerId: this.id,
|
|
90
93
|
providerName: this.name,
|
|
91
94
|
billingType: this.billingType,
|
|
92
|
-
status:
|
|
95
|
+
status: "error",
|
|
93
96
|
error: `${err}`,
|
|
94
97
|
fetchedAt: Date.now(),
|
|
95
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chutes.js","sourceRoot":"","sources":["../../src/providers/chutes.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,8CAA8C;AAC9C,oDAAoD;AACpD,mEAAmE;AACnE,2DAA2D;AAE3D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"chutes.js","sourceRoot":"","sources":["../../src/providers/chutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAyC,aAAa,EAAe,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAyC,aAAa,EAAe,MAAM,YAAY,CAAC;AAEpG,eAAO,MAAM,aAAa,EAAE,aA2L3B,CAAC"}
|