opencode-key-rotator 0.1.6 → 0.1.7
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 +7 -17
- package/dist/config.js +1 -13
- package/dist/config.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -22,13 +22,14 @@ Automatically swaps to the next saved key when OpenCode encounters rate limits (
|
|
|
22
22
|
## Installation
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
|
|
25
|
+
npx -y opencode-key-rotator init
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
Or
|
|
28
|
+
Or install it globally:
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
|
|
31
|
+
npm install -g opencode-key-rotator
|
|
32
|
+
opencode-key-rotator init
|
|
32
33
|
```
|
|
33
34
|
|
|
34
35
|
## Setup
|
|
@@ -91,17 +92,7 @@ Create a sidecar config file at `~/.config/opencode/opencode-key-rotator/config.
|
|
|
91
92
|
"rotation": {
|
|
92
93
|
"enabled": true,
|
|
93
94
|
"dedupTtlMs": 300000,
|
|
94
|
-
"patterns": [
|
|
95
|
-
"\\b429\\b",
|
|
96
|
-
"rate\\s*limit",
|
|
97
|
-
"too many requests",
|
|
98
|
-
"quota",
|
|
99
|
-
"resource exhausted",
|
|
100
|
-
"usage limit",
|
|
101
|
-
"requests per minute",
|
|
102
|
-
"tokens per minute",
|
|
103
|
-
"insufficient quota"
|
|
104
|
-
]
|
|
95
|
+
"patterns": ["\\b429\\b", "rate\\s*limit", "quota", "resource exhausted", "usage limit", "insufficient quota"]
|
|
105
96
|
},
|
|
106
97
|
"storage": {
|
|
107
98
|
"maxBackups": 10,
|
|
@@ -115,9 +106,8 @@ Create a sidecar config file at `~/.config/opencode/opencode-key-rotator/config.
|
|
|
115
106
|
|
|
116
107
|
The config file supports JSONC (comments and trailing commas). Resolution order:
|
|
117
108
|
|
|
118
|
-
1. `
|
|
119
|
-
2.
|
|
120
|
-
3. Built-in defaults
|
|
109
|
+
1. `${configDir}/opencode-key-rotator/config.json`
|
|
110
|
+
2. Built-in defaults
|
|
121
111
|
|
|
122
112
|
## How rotation works
|
|
123
113
|
|
package/dist/config.js
CHANGED
|
@@ -2,17 +2,7 @@ import * as fs from "node:fs";
|
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
import { parse as parseJsonc } from "jsonc-parser";
|
|
4
4
|
import { getOpencodeRuntimeDirs } from "./opencode-runtime-paths.js";
|
|
5
|
-
export const DEFAULT_ROTATION_PATTERNS = [
|
|
6
|
-
"\\b429\\b",
|
|
7
|
-
"rate\\s*limit",
|
|
8
|
-
"too many requests",
|
|
9
|
-
"quota",
|
|
10
|
-
"resource exhausted",
|
|
11
|
-
"usage limit",
|
|
12
|
-
"requests per minute",
|
|
13
|
-
"tokens per minute",
|
|
14
|
-
"insufficient quota",
|
|
15
|
-
];
|
|
5
|
+
export const DEFAULT_ROTATION_PATTERNS = ["\\b429\\b", "rate\\s*limit", "quota", "resource exhausted", "usage limit", "insufficient quota"];
|
|
16
6
|
const DEFAULT_CONFIG = {
|
|
17
7
|
rotation: {
|
|
18
8
|
enabled: true,
|
|
@@ -59,8 +49,6 @@ export function writeDefaultConfig(configDir) {
|
|
|
59
49
|
function resolveConfigPath(options) {
|
|
60
50
|
if (options?.configPath)
|
|
61
51
|
return path.resolve(options.configPath);
|
|
62
|
-
if (process.env.OPENCODE_KEY_ROTATOR_CONFIG)
|
|
63
|
-
return path.resolve(process.env.OPENCODE_KEY_ROTATOR_CONFIG);
|
|
64
52
|
const configDir = options?.configDir ?? getOpencodeRuntimeDirs().configDir;
|
|
65
53
|
return path.join(configDir, "opencode-key-rotator", "config.json");
|
|
66
54
|
}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAiBrE,MAAM,CAAC,MAAM,yBAAyB,GAAG
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-key-rotator",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Reactive OpenCode plugin that automatically rotates provider API keys on rate limits and quota errors, with built-in TUI key management.",
|
|
5
5
|
"author": "dmmop <2412013-dmmop@users.noreply.gitlab.com>",
|
|
6
6
|
"license": "MIT",
|