pi-clawbay 0.0.18 → 0.0.19
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 +37 -2
- package/dist/constants.d.ts +2 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -2
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/model-cache.d.ts +5 -1
- package/dist/model-cache.d.ts.map +1 -1
- package/dist/model-cache.js +65 -21
- package/dist/model-cache.js.map +1 -1
- package/dist/models.d.ts.map +1 -1
- package/dist/models.js +3 -3
- package/dist/models.js.map +1 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +1 -0
- package/dist/provider.js.map +1 -1
- package/dist/quota.d.ts.map +1 -1
- package/dist/quota.js +17 -5
- package/dist/quota.js.map +1 -1
- package/dist/transport.d.ts +4 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +67 -11
- package/dist/transport.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ Model IDs are discovered dynamically at extension load from:
|
|
|
54
54
|
|
|
55
55
|
- `GET https://api.theclawbay.com/v1/models`
|
|
56
56
|
|
|
57
|
-
If discovery fails or `THECLAWBAY_API_KEY` is not set yet, the extension falls back to the last successful discovery cache, then to a bundled default list so `/model` still works on startup. Live discovery refreshes the cache in the background after the provider has been registered.
|
|
57
|
+
If discovery fails or `THECLAWBAY_API_KEY` is not set yet, the extension falls back to the last successful discovery cache, even if it is stale, then to a bundled default list so `/model` still works on startup. Live discovery refreshes the cache in the background after the provider has been registered.
|
|
58
58
|
|
|
59
59
|
Requests for `theclawbay/*` models are sent through TheClawBay's native Codex route:
|
|
60
60
|
|
|
@@ -97,7 +97,7 @@ Why split it?
|
|
|
97
97
|
|
|
98
98
|
- `gpt-5.4` is configured with a `272,000` token context window.
|
|
99
99
|
- `gpt-5.4[1m]` is configured with a `1,050,000` token context window.
|
|
100
|
-
- Current non-5.4 GPT-5/Codex variants default to `
|
|
100
|
+
- Current non-5.4 GPT-5/Codex variants default to `272,000` context and `128,000` max output tokens.
|
|
101
101
|
|
|
102
102
|
### Example Model List
|
|
103
103
|
|
|
@@ -113,6 +113,8 @@ Current fallback list in this package:
|
|
|
113
113
|
- `gpt-5.1-codex-max`
|
|
114
114
|
- `gpt-5.1-codex-mini`
|
|
115
115
|
|
|
116
|
+
Image-generation models returned by discovery, such as `gpt-image-*`, are intentionally hidden from `/model` until this extension has a dedicated, tested image-generation flow.
|
|
117
|
+
|
|
116
118
|
## Usage
|
|
117
119
|
|
|
118
120
|
### Select a Model
|
|
@@ -131,8 +133,12 @@ This extension currently registers:
|
|
|
131
133
|
|
|
132
134
|
```text
|
|
133
135
|
/quota
|
|
136
|
+
/clawbay-quota
|
|
137
|
+
/clawbay-refresh-models
|
|
134
138
|
```
|
|
135
139
|
|
|
140
|
+
`/quota` and `/clawbay-quota` show current usage. `/clawbay-refresh-models` refreshes live model discovery, updates the local cache, and re-registers the provider without needing `/reload`.
|
|
141
|
+
|
|
136
142
|
`/cachehit` was removed.
|
|
137
143
|
|
|
138
144
|
### Programmatic Usage
|
|
@@ -186,6 +192,35 @@ Common error codes:
|
|
|
186
192
|
| `invalid_api_key` | Key missing or malformed |
|
|
187
193
|
| `model_not_found` | Requested model unavailable |
|
|
188
194
|
|
|
195
|
+
## Debugging and Verification
|
|
196
|
+
|
|
197
|
+
Enable extension debug logs with:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
PI_CLAWBAY_DEBUG=1 pi --no-extensions -e /path/to/pi-clawbay --model theclawbay/gpt-5.4 --thinking low -p "Respond with OK only."
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Useful smoke checks:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Model registration and hidden image models
|
|
207
|
+
PI_CLAWBAY_DEBUG=1 pi --no-extensions -e /path/to/pi-clawbay --list-models theclawbay
|
|
208
|
+
|
|
209
|
+
# Basic reasoning/cache path
|
|
210
|
+
PI_CLAWBAY_DEBUG=1 pi --no-extensions -e /path/to/pi-clawbay --model theclawbay/gpt-5.4 --thinking low --no-session -p "Say OK and nothing else."
|
|
211
|
+
|
|
212
|
+
# Tool-call path
|
|
213
|
+
PI_CLAWBAY_DEBUG=1 pi --no-extensions -e /path/to/pi-clawbay --model theclawbay/gpt-5.4 --thinking low --tools ls -p "Use the ls tool on the current directory, then summarize whether package.json exists."
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Troubleshooting
|
|
217
|
+
|
|
218
|
+
- `THECLAWBAY_API_KEY is not set`: export a valid key before selecting `theclawbay/*` models.
|
|
219
|
+
- `401` or `invalid_api_key`: verify the key in the TheClawBay dashboard and in your shell environment.
|
|
220
|
+
- `429`, `weekly_cost_limit_reached`, or `5h_cost_limit_reached`: run `/quota` or `/clawbay-quota` and wait for the reset window.
|
|
221
|
+
- Model missing from `/model`: run `/clawbay-refresh-models`; if discovery still omits it, TheClawBay may not expose it for your account.
|
|
222
|
+
- `gpt-image-*` missing: image-generation models are intentionally hidden until this extension has a dedicated tested image flow.
|
|
223
|
+
|
|
189
224
|
## Building
|
|
190
225
|
|
|
191
226
|
```bash
|
package/dist/constants.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare const THECLAWBAY_CODEX_API = "theclawbay-codex-responses";
|
|
|
7
7
|
export declare const THECLAWBAY_CHATGPT_ACCOUNT_ID = "theclawbay";
|
|
8
8
|
export declare const MODEL_CACHE_VERSION = 1;
|
|
9
9
|
export declare const MODEL_CACHE_TTL_MS: number;
|
|
10
|
+
export declare const MODEL_DISCOVERY_TIMEOUT_MS = 10000;
|
|
10
11
|
export declare const GPT_54_UPSTREAM_MODEL_ID = "gpt-5.4";
|
|
11
12
|
export declare const GPT_54_DEFAULT_MODEL_ID = "gpt-5.4";
|
|
12
13
|
export declare const GPT_54_1M_MODEL_ID = "gpt-5.4[1m]";
|
|
@@ -26,6 +27,7 @@ export declare const OPENAI_CODEX_CONTEXT_WINDOW = 272000;
|
|
|
26
27
|
export declare const OPENAI_DEFAULT_CONTEXT_WINDOW = 272000;
|
|
27
28
|
export declare const OPENAI_FRONTIER_CONTEXT_WINDOW = 1050000;
|
|
28
29
|
export declare const OPENAI_DEFAULT_MAX_TOKENS = 128000;
|
|
30
|
+
export declare const HIDDEN_MODEL_ID_PREFIXES: readonly ["gpt-image-"];
|
|
29
31
|
export declare const PINNED_MODEL_IDS: string[];
|
|
30
32
|
export declare const FALLBACK_OPENAI_MODEL_IDS: string[];
|
|
31
33
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,eAAO,MAAM,oCAAoC,kCAAkC,CAAC;AACpF,eAAO,MAAM,yBAAyB,iDAAiD,CAAC;AACxF,eAAO,MAAM,oBAAoB,mDAAmD,CAAC;AACrF,eAAO,MAAM,4BAA4B,yCAAmD,CAAC;AAC7F,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AACjE,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,kBAAkB,QAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,eAAO,MAAM,oCAAoC,kCAAkC,CAAC;AACpF,eAAO,MAAM,yBAAyB,iDAAiD,CAAC;AACxF,eAAO,MAAM,oBAAoB,mDAAmD,CAAC;AACrF,eAAO,MAAM,4BAA4B,yCAAmD,CAAC;AAC7F,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AACjE,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAE1D,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,kBAAkB,QAAqB,CAAC;AACrD,eAAO,MAAM,0BAA0B,QAAS,CAAC;AAEjD,eAAO,MAAM,wBAAwB,YAAY,CAAC;AAClD,eAAO,MAAM,uBAAuB,YAAY,CAAC;AACjD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAEhD,eAAO,MAAM,YAAY,4BAA6B,CAAC;AACvD,eAAO,MAAM,+BAA+B;;;CAA8C,CAAC;AAC3F,eAAO,MAAM,SAAS;;;;;CAAgE,CAAC;AACvF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAU1E,CAAC;AACF,eAAO,MAAM,2BAA2B,SAAS,CAAC;AAClD,eAAO,MAAM,6BAA6B,SAA8B,CAAC;AACzE,eAAO,MAAM,8BAA8B,UAAU,CAAC;AACtD,eAAO,MAAM,yBAAyB,SAAS,CAAC;AAEhD,eAAO,MAAM,wBAAwB,yBAA0B,CAAC;AAChE,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAAO,CAAC;AAC7C,eAAO,MAAM,yBAAyB,UAUrC,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -6,6 +6,7 @@ export const THECLAWBAY_CODEX_API = "theclawbay-codex-responses";
|
|
|
6
6
|
export const THECLAWBAY_CHATGPT_ACCOUNT_ID = "theclawbay";
|
|
7
7
|
export const MODEL_CACHE_VERSION = 1;
|
|
8
8
|
export const MODEL_CACHE_TTL_MS = 6 * 60 * 60 * 1000;
|
|
9
|
+
export const MODEL_DISCOVERY_TIMEOUT_MS = 10_000;
|
|
9
10
|
export const GPT_54_UPSTREAM_MODEL_ID = "gpt-5.4";
|
|
10
11
|
export const GPT_54_DEFAULT_MODEL_ID = "gpt-5.4";
|
|
11
12
|
export const GPT_54_1M_MODEL_ID = "gpt-5.4[1m]";
|
|
@@ -27,7 +28,8 @@ export const OPENAI_CODEX_CONTEXT_WINDOW = 272000;
|
|
|
27
28
|
export const OPENAI_DEFAULT_CONTEXT_WINDOW = OPENAI_CODEX_CONTEXT_WINDOW;
|
|
28
29
|
export const OPENAI_FRONTIER_CONTEXT_WINDOW = 1050000;
|
|
29
30
|
export const OPENAI_DEFAULT_MAX_TOKENS = 128000;
|
|
30
|
-
export const
|
|
31
|
+
export const HIDDEN_MODEL_ID_PREFIXES = ["gpt-image-"];
|
|
32
|
+
export const PINNED_MODEL_IDS = [];
|
|
31
33
|
export const FALLBACK_OPENAI_MODEL_IDS = [
|
|
32
34
|
"gpt-5.5",
|
|
33
35
|
GPT_54_DEFAULT_MODEL_ID,
|
|
@@ -38,6 +40,5 @@ export const FALLBACK_OPENAI_MODEL_IDS = [
|
|
|
38
40
|
"gpt-5.2",
|
|
39
41
|
"gpt-5.1-codex-max",
|
|
40
42
|
"gpt-5.1-codex-mini",
|
|
41
|
-
...PINNED_MODEL_IDS,
|
|
42
43
|
];
|
|
43
44
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,oCAAoC,GAAG,+BAA+B,CAAC;AACpF,MAAM,CAAC,MAAM,yBAAyB,GAAG,8CAA8C,CAAC;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAG,gDAAgD,CAAC;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,oCAAoC,SAAS,CAAC;AAC7F,MAAM,CAAC,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAoBpE,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,GAAG,IAAI,CAiB/C"}
|
package/dist/index.js
CHANGED
|
@@ -16,9 +16,14 @@
|
|
|
16
16
|
*
|
|
17
17
|
* Get your API key at: https://theclawbay.com
|
|
18
18
|
*/
|
|
19
|
-
import { loadProviderModels, refreshProviderModels } from "./model-cache.js";
|
|
19
|
+
import { loadProviderModels, refreshProviderModels, registerModelRefreshCommand } from "./model-cache.js";
|
|
20
20
|
import { registerProviders } from "./provider.js";
|
|
21
21
|
import { getApiKey, registerQuotaCommand } from "./quota.js";
|
|
22
|
+
function debugLog(message) {
|
|
23
|
+
if (process.env.PI_CLAWBAY_DEBUG === "1") {
|
|
24
|
+
console.info(`[theclawbay:debug] ${message}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
22
27
|
function warnMissingApiKey() {
|
|
23
28
|
console.warn("\x1b[33m⚠️ TheClawBay API key not set.\x1b[0m\n" +
|
|
24
29
|
" Set THECLAWBAY_API_KEY environment variable:\n" +
|
|
@@ -30,11 +35,13 @@ export default function (pi) {
|
|
|
30
35
|
if (!apiKey) {
|
|
31
36
|
warnMissingApiKey();
|
|
32
37
|
}
|
|
33
|
-
const { models } = loadProviderModels();
|
|
38
|
+
const { models, source } = loadProviderModels();
|
|
39
|
+
debugLog(`Registering ${models.length} model(s) from ${source}.`);
|
|
34
40
|
registerProviders(pi, models);
|
|
35
41
|
if (apiKey) {
|
|
36
42
|
refreshProviderModels(pi, apiKey);
|
|
37
43
|
}
|
|
38
44
|
registerQuotaCommand(pi);
|
|
45
|
+
registerModelRefreshCommand(pi, getApiKey);
|
|
39
46
|
}
|
|
40
47
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC1G,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAE7D,SAAS,QAAQ,CAAC,OAAe;IAChC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,sBAAsB,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC;AACF,CAAC;AAED,SAAS,iBAAiB;IACzB,OAAO,CAAC,IAAI,CACX,kDAAkD;QACjD,mDAAmD;QACnD,8CAA8C;QAC9C,8CAA8C,CAC/C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,OAAO,WAAW,EAAgB;IACxC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,iBAAiB,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,EAAE,CAAC;IAChD,QAAQ,CAAC,eAAe,MAAM,CAAC,MAAM,kBAAkB,MAAM,GAAG,CAAC,CAAC;IAClE,iBAAiB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAE9B,IAAI,MAAM,EAAE,CAAC;QACZ,qBAAqB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACzB,2BAA2B,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC"}
|
package/dist/model-cache.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import type { ExtensionAPI, ProviderModelConfig } from "@earendil-works/pi-coding-agent";
|
|
2
2
|
export declare function getModelCachePath(): string;
|
|
3
|
-
export declare function readCachedModelIds(now?: number
|
|
3
|
+
export declare function readCachedModelIds(now?: number, options?: {
|
|
4
|
+
allowStale?: boolean;
|
|
5
|
+
}): string[] | null;
|
|
4
6
|
export declare function writeCachedModelIds(ids: string[], now?: number): void;
|
|
5
7
|
export declare function fetchOpenAIModelIds(apiKey: string): Promise<string[] | null>;
|
|
8
|
+
export declare function refreshProviderModelsNow(pi: ExtensionAPI, apiKey: string): Promise<number | null>;
|
|
6
9
|
export declare function refreshProviderModels(pi: ExtensionAPI, apiKey: string): void;
|
|
10
|
+
export declare function registerModelRefreshCommand(pi: ExtensionAPI, getApiKey: () => string | undefined): void;
|
|
7
11
|
export declare function loadProviderModels(): {
|
|
8
12
|
models: ProviderModelConfig[];
|
|
9
13
|
source: "fallback" | "cache";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-cache.d.ts","sourceRoot":"","sources":["../src/model-cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"model-cache.d.ts","sourceRoot":"","sources":["../src/model-cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAA2B,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAMlH,wBAAgB,iBAAiB,IAAI,MAAM,CAQ1C;AAQD,wBAAgB,kBAAkB,CAAC,GAAG,SAAa,EAAE,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAYxG;AAsBD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,SAAa,GAAG,IAAI,CASzE;AAUD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAqBlF;AAQD,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUvG;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAW5E;AAED,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,GAAG,IAAI,CA2BvG;AAED,wBAAgB,kBAAkB,IAAI;IAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAA;CAAE,CAOpG"}
|
package/dist/model-cache.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { dirname, join } from "node:path";
|
|
4
|
-
import { MODEL_CACHE_TTL_MS, MODEL_CACHE_VERSION, THECLAWBAY_OPENAI_MODELS_URL } from "./constants.js";
|
|
4
|
+
import { MODEL_CACHE_TTL_MS, MODEL_CACHE_VERSION, MODEL_DISCOVERY_TIMEOUT_MS, THECLAWBAY_OPENAI_MODELS_URL } from "./constants.js";
|
|
5
5
|
import { buildFallbackOpenAIModels, buildOpenAIModels, normalizeOpenAIModelIds } from "./models.js";
|
|
6
6
|
import { registerProviders } from "./provider.js";
|
|
7
7
|
export function getModelCachePath() {
|
|
@@ -12,25 +12,34 @@ export function getModelCachePath() {
|
|
|
12
12
|
const agentDir = process.env.PI_CODING_AGENT_DIR?.trim() || join(homedir(), ".pi", "agent");
|
|
13
13
|
return join(agentDir, "cache", "pi-clawbay", "models.json");
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
function debugLog(message) {
|
|
16
|
+
if (process.env.PI_CLAWBAY_DEBUG === "1") {
|
|
17
|
+
console.info(`[theclawbay:debug] ${message}`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export function readCachedModelIds(now = Date.now(), options) {
|
|
16
21
|
try {
|
|
17
22
|
const cachePath = getModelCachePath();
|
|
18
23
|
if (!existsSync(cachePath)) {
|
|
19
24
|
return null;
|
|
20
25
|
}
|
|
21
|
-
return readValidCacheFile(cachePath, now);
|
|
26
|
+
return readValidCacheFile(cachePath, now, options);
|
|
22
27
|
}
|
|
23
|
-
catch {
|
|
28
|
+
catch (error) {
|
|
29
|
+
debugLog(`Ignoring unreadable model cache: ${error instanceof Error ? error.message : String(error)}`);
|
|
24
30
|
return null;
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
|
-
function readValidCacheFile(cachePath, now) {
|
|
33
|
+
function readValidCacheFile(cachePath, now, options) {
|
|
28
34
|
const parsed = JSON.parse(readFileSync(cachePath, "utf8"));
|
|
29
35
|
if (parsed.version !== MODEL_CACHE_VERSION || !Array.isArray(parsed.modelIds) || typeof parsed.fetchedAt !== "string") {
|
|
30
36
|
return null;
|
|
31
37
|
}
|
|
32
38
|
const fetchedAt = Date.parse(parsed.fetchedAt);
|
|
33
|
-
if (!Number.isFinite(fetchedAt)
|
|
39
|
+
if (!Number.isFinite(fetchedAt)) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
if (!options?.allowStale && now - fetchedAt > MODEL_CACHE_TTL_MS) {
|
|
34
43
|
return null;
|
|
35
44
|
}
|
|
36
45
|
const rawIds = parsed.modelIds.filter((id) => typeof id === "string" && id.length > 0);
|
|
@@ -43,8 +52,9 @@ export function writeCachedModelIds(ids, now = Date.now()) {
|
|
|
43
52
|
mkdirSync(dirname(cachePath), { recursive: true });
|
|
44
53
|
writeFileSync(cachePath, `${JSON.stringify(buildCacheFile(ids, now), null, 2)}\n`, "utf8");
|
|
45
54
|
}
|
|
46
|
-
catch {
|
|
55
|
+
catch (error) {
|
|
47
56
|
// Cache writes are best-effort; provider registration should not fail if the cache is unavailable.
|
|
57
|
+
debugLog(`Failed to write model cache: ${error instanceof Error ? error.message : String(error)}`);
|
|
48
58
|
}
|
|
49
59
|
}
|
|
50
60
|
function buildCacheFile(ids, now) {
|
|
@@ -60,15 +70,18 @@ export async function fetchOpenAIModelIds(apiKey) {
|
|
|
60
70
|
headers: {
|
|
61
71
|
Authorization: `Bearer ${apiKey}`,
|
|
62
72
|
},
|
|
73
|
+
signal: AbortSignal.timeout(MODEL_DISCOVERY_TIMEOUT_MS),
|
|
63
74
|
});
|
|
64
75
|
if (!response.ok) {
|
|
76
|
+
debugLog(`Model discovery failed with HTTP ${response.status}`);
|
|
65
77
|
return null;
|
|
66
78
|
}
|
|
67
79
|
const payload = (await response.json());
|
|
68
80
|
const ids = normalizeOpenAIModelIds(extractModelIds(payload), { includePinned: true });
|
|
69
81
|
return ids.length > 0 ? ids : null;
|
|
70
82
|
}
|
|
71
|
-
catch {
|
|
83
|
+
catch (error) {
|
|
84
|
+
debugLog(`Model discovery failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
72
85
|
return null;
|
|
73
86
|
}
|
|
74
87
|
}
|
|
@@ -77,25 +90,56 @@ function extractModelIds(payload) {
|
|
|
77
90
|
.map((entry) => entry.id?.trim())
|
|
78
91
|
.filter((id) => typeof id === "string" && id.length > 0);
|
|
79
92
|
}
|
|
93
|
+
export async function refreshProviderModelsNow(pi, apiKey) {
|
|
94
|
+
const ids = await fetchOpenAIModelIds(apiKey);
|
|
95
|
+
if (!ids) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
writeCachedModelIds(ids);
|
|
99
|
+
const models = buildOpenAIModels(ids);
|
|
100
|
+
registerProviders(pi, models);
|
|
101
|
+
return models.length;
|
|
102
|
+
}
|
|
80
103
|
export function refreshProviderModels(pi, apiKey) {
|
|
81
|
-
void
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
}
|
|
85
|
-
writeCachedModelIds(ids);
|
|
86
|
-
const models = buildOpenAIModels(ids);
|
|
87
|
-
try {
|
|
88
|
-
registerProviders(pi, models);
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
console.warn(`[theclawbay] Skipped live model refresh: ${error instanceof Error ? error.message : String(error)}`);
|
|
104
|
+
void refreshProviderModelsNow(pi, apiKey)
|
|
105
|
+
.then((count) => {
|
|
106
|
+
if (count === null) {
|
|
92
107
|
return;
|
|
93
108
|
}
|
|
94
|
-
console.info(`[theclawbay] Registered ${
|
|
109
|
+
console.info(`[theclawbay] Registered ${count} OpenAI-compatible models from live model discovery.`);
|
|
110
|
+
})
|
|
111
|
+
.catch((error) => {
|
|
112
|
+
console.warn(`[theclawbay] Skipped live model refresh: ${error instanceof Error ? error.message : String(error)}`);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
export function registerModelRefreshCommand(pi, getApiKey) {
|
|
116
|
+
pi.registerCommand("clawbay-refresh-models", {
|
|
117
|
+
description: "Refresh TheClawBay models from live discovery",
|
|
118
|
+
handler: async (_args, ctx) => {
|
|
119
|
+
const apiKey = getApiKey();
|
|
120
|
+
if (!apiKey) {
|
|
121
|
+
ctx.ui.notify("THECLAWBAY_API_KEY is not set", "error");
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
let count;
|
|
125
|
+
try {
|
|
126
|
+
count = await refreshProviderModelsNow(pi, apiKey);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
ctx.ui.notify(`Failed to refresh TheClawBay models: ${error instanceof Error ? error.message : String(error)}`, "error");
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (count === null) {
|
|
133
|
+
ctx.ui.notify("Failed to refresh TheClawBay models from live discovery", "error");
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const noun = count === 1 ? "model" : "models";
|
|
137
|
+
ctx.ui.notify(`Refreshed ${count} TheClawBay ${noun} from live discovery`, "info");
|
|
138
|
+
},
|
|
95
139
|
});
|
|
96
140
|
}
|
|
97
141
|
export function loadProviderModels() {
|
|
98
|
-
const cachedIds = readCachedModelIds();
|
|
142
|
+
const cachedIds = readCachedModelIds(Date.now(), { allowStale: true });
|
|
99
143
|
if (cachedIds) {
|
|
100
144
|
return { models: buildOpenAIModels(cachedIds), source: "cache" };
|
|
101
145
|
}
|
package/dist/model-cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-cache.js","sourceRoot":"","sources":["../src/model-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"model-cache.js","sourceRoot":"","sources":["../src/model-cache.ts"],"names":[],"mappings":"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"}
|
package/dist/models.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAkB3E,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAYjD;AA8ED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAEtE;AAED,wBAAgB,yBAAyB,IAAI,mBAAmB,EAAE,CAEjE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAGtG;AAcD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMzD"}
|
package/dist/models.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FALLBACK_OPENAI_MODEL_IDS, GPT_54_1M_MODEL_ID, GPT_54_DEFAULT_MODEL_ID, GPT_54_UPSTREAM_MODEL_ID, MODEL_INPUTS, OPENAI_CODEX_CONTEXT_WINDOW, OPENAI_CODEX_THINKING_LEVEL_MAP, OPENAI_DEFAULT_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS, OPENAI_FRONTIER_CONTEXT_WINDOW, OPENAI_KNOWN_COSTS, PINNED_MODEL_IDS, ZERO_COST, } from "./constants.js";
|
|
1
|
+
import { FALLBACK_OPENAI_MODEL_IDS, HIDDEN_MODEL_ID_PREFIXES, GPT_54_1M_MODEL_ID, GPT_54_DEFAULT_MODEL_ID, GPT_54_UPSTREAM_MODEL_ID, MODEL_INPUTS, OPENAI_CODEX_CONTEXT_WINDOW, OPENAI_CODEX_THINKING_LEVEL_MAP, OPENAI_DEFAULT_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS, OPENAI_FRONTIER_CONTEXT_WINDOW, OPENAI_KNOWN_COSTS, PINNED_MODEL_IDS, ZERO_COST, } from "./constants.js";
|
|
2
2
|
export function dedupeIds(ids) {
|
|
3
3
|
const seen = new Set();
|
|
4
4
|
const deduped = [];
|
|
@@ -39,7 +39,7 @@ function isGpt54Or55Model(id) {
|
|
|
39
39
|
return id.startsWith("gpt-5.4") || id.startsWith("gpt-5.5");
|
|
40
40
|
}
|
|
41
41
|
function isImageGenerationModel(id) {
|
|
42
|
-
return id.startsWith(
|
|
42
|
+
return HIDDEN_MODEL_ID_PREFIXES.some((prefix) => id.startsWith(prefix));
|
|
43
43
|
}
|
|
44
44
|
function createModelConfig(id, name, cost, contextWindow, maxTokens) {
|
|
45
45
|
const isReasoningModel = !isImageGenerationModel(id);
|
|
@@ -75,7 +75,7 @@ export function normalizeOpenAIModelIds(ids, options) {
|
|
|
75
75
|
return options?.includePinned ? dedupeIds([...normalized, ...PINNED_MODEL_IDS]) : normalized;
|
|
76
76
|
}
|
|
77
77
|
function normalizeOpenAIModelId(id) {
|
|
78
|
-
if (id.startsWith("claude-") || id === "gpt-5.4-pro") {
|
|
78
|
+
if (id.startsWith("claude-") || id === "gpt-5.4-pro" || isImageGenerationModel(id)) {
|
|
79
79
|
return [];
|
|
80
80
|
}
|
|
81
81
|
if (id === GPT_54_UPSTREAM_MODEL_ID) {
|
package/dist/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AACA,OAAO,EACN,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,2BAA2B,EAC3B,+BAA+B,EAC/B,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,GACT,MAAM,gBAAgB,CAAC;AAExB,MAAM,UAAU,SAAS,CAAC,GAAa;IACtC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,qBAAqB,CAAC,EAAU;IACxC,IAAI,EAAE,KAAK,uBAAuB,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,IAAI,EAAE,KAAK,kBAAkB,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC;IACvB,CAAC;IAED,OAAO,sBAAsB,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAU;IACzC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,OAAO,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACxC,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAU;IACnC,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,sBAAsB,CAAC,EAAU;IACzC,OAAO,EAAE,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAIzF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAIzF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,GAAG,IAAI,CAS7F"}
|
package/dist/provider.js
CHANGED
|
@@ -2,6 +2,7 @@ import { THECLAWBAY_CODEX_API, THECLAWBAY_CODEX_BASE_URL } from "./constants.js"
|
|
|
2
2
|
import { streamSimpleTheClawBayCodexResponses } from "./transport.js";
|
|
3
3
|
export function registerProviders(pi, openaiModels) {
|
|
4
4
|
pi.registerProvider("theclawbay", {
|
|
5
|
+
name: "TheClawBay",
|
|
5
6
|
baseUrl: THECLAWBAY_CODEX_BASE_URL,
|
|
6
7
|
apiKey: "THECLAWBAY_API_KEY",
|
|
7
8
|
api: THECLAWBAY_CODEX_API,
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,oCAAoC,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,UAAU,iBAAiB,CAAC,EAAgB,EAAE,YAAmC;IACtF,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE;QACjC,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,oBAAoB;QAC5B,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,oCAAoC;QAClD,MAAM,EAAE,YAAY;KACpB,CAAC,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,oCAAoC,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,UAAU,iBAAiB,CAAC,EAAgB,EAAE,YAAmC;IACtF,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE;QACjC,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,oBAAoB;QAC5B,GAAG,EAAE,oBAAoB;QACzB,YAAY,EAAE,oCAAoC;QAClD,MAAM,EAAE,YAAY;KACpB,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/quota.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,iCAAiC,CAAC;AAE7F,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAE7D,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAgB9E;AAED,wBAAgB,SAAS,IAAI,MAAM,GAAG,SAAS,CAE9C;AA2DD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAsB3D"}
|
package/dist/quota.js
CHANGED
|
@@ -44,7 +44,7 @@ function formatDuration(seconds) {
|
|
|
44
44
|
return time;
|
|
45
45
|
}
|
|
46
46
|
function formatQuotaDetails(label, window) {
|
|
47
|
-
if (!window) {
|
|
47
|
+
if (!window || typeof window.percentUsed !== "number" || !Number.isFinite(window.percentUsed)) {
|
|
48
48
|
return `${label}: N/A`;
|
|
49
49
|
}
|
|
50
50
|
const percent = formatPercent(window.percentUsed);
|
|
@@ -54,8 +54,19 @@ function formatQuotaDetails(label, window) {
|
|
|
54
54
|
const usage = hasUsd ? `${percent} ($${costUsed.toFixed(2)}/$${costLimit.toFixed(2)})` : percent;
|
|
55
55
|
return `${label}: ${usage} • ${window.requestCount ?? 0} req • resets ${formatDuration(window.secondsUntilReset)}`;
|
|
56
56
|
}
|
|
57
|
+
function getQuotaLevel(quota) {
|
|
58
|
+
const { fiveHour, weekly } = getQuotaWindows(quota);
|
|
59
|
+
return quota.anyLimitReached || quota.fiveHourLimitReached || quota.weeklyLimitReached || fiveHour?.limitReached || weekly?.limitReached
|
|
60
|
+
? "warning"
|
|
61
|
+
: "info";
|
|
62
|
+
}
|
|
63
|
+
function formatQuotaMessage(quota) {
|
|
64
|
+
const { fiveHour, weekly } = getQuotaWindows(quota);
|
|
65
|
+
const details = `${formatQuotaDetails("5h", fiveHour)} | ${formatQuotaDetails("Week", weekly)}`;
|
|
66
|
+
return quota.usageLimitPresentation ? `${quota.usageLimitPresentation} | ${details}` : details;
|
|
67
|
+
}
|
|
57
68
|
export function registerQuotaCommand(pi) {
|
|
58
|
-
|
|
69
|
+
const command = {
|
|
59
70
|
description: "Check TheClawBay quota usage",
|
|
60
71
|
handler: async (_args, ctx) => {
|
|
61
72
|
const currentApiKey = getApiKey();
|
|
@@ -68,9 +79,10 @@ export function registerQuotaCommand(pi) {
|
|
|
68
79
|
ctx.ui.notify("Failed to fetch quota from TheClawBay", "error");
|
|
69
80
|
return;
|
|
70
81
|
}
|
|
71
|
-
|
|
72
|
-
ctx.ui.notify(`${formatQuotaDetails("5h", fiveHour)} | ${formatQuotaDetails("Week", weekly)}`, "info");
|
|
82
|
+
ctx.ui.notify(formatQuotaMessage(quota), getQuotaLevel(quota));
|
|
73
83
|
},
|
|
74
|
-
}
|
|
84
|
+
};
|
|
85
|
+
pi.registerCommand("quota", command);
|
|
86
|
+
pi.registerCommand("clawbay-quota", command);
|
|
75
87
|
}
|
|
76
88
|
//# sourceMappingURL=quota.js.map
|
package/dist/quota.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGtD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC9C,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,EAAE;YAClD,OAAO,EAAE;gBACR,aAAa,EAAE,UAAU,MAAM,EAAE;aACjC;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAkB,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,SAAS;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACvC,CAAC;AAED,SAAS,eAAe,CAAC,KAAoB;IAC5C,OAAO;QACN,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ;QAC/B,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM;KAC3B,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACrC,MAAM,MAAM,GAAG,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7E,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;AACtC,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACvC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,GAAG,KAAK,KAAK,OAAO,GAAG,CAAC;IAErC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,MAAoB;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../src/quota.ts"],"names":[],"mappings":"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"}
|
package/dist/transport.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import { type AssistantMessageEventStream, type Context, type SimpleStreamOptions } from "@earendil-works/pi-ai";
|
|
1
|
+
import { type Api, type AssistantMessageEventStream, type Context, type Model, type SimpleStreamOptions } from "@earendil-works/pi-ai";
|
|
2
2
|
export declare function buildTheClawBayHeaders(options?: SimpleStreamOptions): Record<string, string>;
|
|
3
3
|
export declare function buildTheClawBayPayload(payload: unknown, context: Context): unknown;
|
|
4
|
+
export declare function createTheClawBayStreamModel(model: Model<Api>): Model<"openai-responses">;
|
|
5
|
+
export declare function createTheClawBayStreamContext(context: Context, originalModel: Pick<Model<Api>, "api" | "id" | "provider">, streamModel: Pick<Model<Api>, "api" | "id" | "provider">): Context;
|
|
6
|
+
export declare function restoreTheClawBayEventProvider<T>(event: T, originalModel: Pick<Model<Api>, "api" | "id" | "provider">): T;
|
|
4
7
|
export declare function streamSimpleTheClawBayCodexResponses(model: unknown, context: unknown, options?: unknown): AssistantMessageEventStream;
|
|
5
8
|
//# sourceMappingURL=transport.d.ts.map
|
package/dist/transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,GAAG,EACR,KAAK,2BAA2B,EAChC,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,mBAAmB,EACxB,MAAM,uBAAuB,CAAC;AAI/B,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ5F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAgBlF;AAuBD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAOxF;AAED,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC,EAC1D,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC,GACtD,OAAO,CAgBT;AAaD,wBAAgB,8BAA8B,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAUzH;AAeD,wBAAgB,oCAAoC,CACnD,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,GACf,2BAA2B,CAmB7B"}
|
package/dist/transport.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { streamSimpleOpenAIResponses } from "@earendil-works/pi-ai";
|
|
1
|
+
import { createAssistantMessageEventStream, streamSimpleOpenAIResponses, } from "@earendil-works/pi-ai";
|
|
2
2
|
import { THECLAWBAY_CHATGPT_ACCOUNT_ID } from "./constants.js";
|
|
3
3
|
import { dedupeIds, resolveUpstreamModelId } from "./models.js";
|
|
4
4
|
export function buildTheClawBayHeaders(options) {
|
|
@@ -17,13 +17,13 @@ export function buildTheClawBayPayload(payload, context) {
|
|
|
17
17
|
const source = payload;
|
|
18
18
|
return {
|
|
19
19
|
...source,
|
|
20
|
-
instructions: context.systemPrompt,
|
|
20
|
+
instructions: context.systemPrompt ?? source.instructions,
|
|
21
21
|
input: removeSystemInputs(source.input),
|
|
22
22
|
include: dedupeIds([...getIncludeValues(source.include), "reasoning.encrypted_content"]),
|
|
23
|
-
text: { verbosity: "medium" },
|
|
24
|
-
tool_choice: "auto",
|
|
25
|
-
parallel_tool_calls: true,
|
|
26
|
-
store: false,
|
|
23
|
+
text: source.text ?? { verbosity: "medium" },
|
|
24
|
+
tool_choice: source.tool_choice ?? "auto",
|
|
25
|
+
parallel_tool_calls: source.parallel_tool_calls ?? true,
|
|
26
|
+
store: source.store ?? false,
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
function getIncludeValues(include) {
|
|
@@ -42,20 +42,76 @@ function isSystemInputItem(item) {
|
|
|
42
42
|
const role = item.role;
|
|
43
43
|
return role === "developer" || role === "system";
|
|
44
44
|
}
|
|
45
|
+
export function createTheClawBayStreamModel(model) {
|
|
46
|
+
return {
|
|
47
|
+
...model,
|
|
48
|
+
id: resolveUpstreamModelId(model.id),
|
|
49
|
+
provider: "openai-codex",
|
|
50
|
+
api: "openai-responses",
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export function createTheClawBayStreamContext(context, originalModel, streamModel) {
|
|
54
|
+
return {
|
|
55
|
+
...context,
|
|
56
|
+
messages: context.messages.map((message) => {
|
|
57
|
+
if (message.role !== "assistant" || message.provider !== originalModel.provider || message.api !== originalModel.api) {
|
|
58
|
+
return message;
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
...message,
|
|
62
|
+
api: streamModel.api,
|
|
63
|
+
provider: streamModel.provider,
|
|
64
|
+
model: streamModel.id,
|
|
65
|
+
};
|
|
66
|
+
}),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function restoreAssistantMessageProvider(message, originalModel) {
|
|
70
|
+
if (!message || typeof message !== "object") {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const assistantMessage = message;
|
|
74
|
+
assistantMessage.api = originalModel.api;
|
|
75
|
+
assistantMessage.provider = originalModel.provider;
|
|
76
|
+
assistantMessage.model = originalModel.id;
|
|
77
|
+
}
|
|
78
|
+
export function restoreTheClawBayEventProvider(event, originalModel) {
|
|
79
|
+
if (!event || typeof event !== "object") {
|
|
80
|
+
return event;
|
|
81
|
+
}
|
|
82
|
+
const candidate = event;
|
|
83
|
+
restoreAssistantMessageProvider(candidate.partial, originalModel);
|
|
84
|
+
restoreAssistantMessageProvider(candidate.message, originalModel);
|
|
85
|
+
restoreAssistantMessageProvider(candidate.error, originalModel);
|
|
86
|
+
return event;
|
|
87
|
+
}
|
|
88
|
+
function wrapTheClawBayStream(source, originalModel) {
|
|
89
|
+
const stream = createAssistantMessageEventStream();
|
|
90
|
+
void (async () => {
|
|
91
|
+
for await (const event of source) {
|
|
92
|
+
stream.push(restoreTheClawBayEventProvider(event, originalModel));
|
|
93
|
+
}
|
|
94
|
+
stream.end();
|
|
95
|
+
})();
|
|
96
|
+
return stream;
|
|
97
|
+
}
|
|
45
98
|
export function streamSimpleTheClawBayCodexResponses(model, context, options) {
|
|
46
99
|
const typedModel = model;
|
|
47
100
|
const typedContext = context;
|
|
48
101
|
const typedOptions = options;
|
|
49
102
|
const originalOnPayload = typedOptions?.onPayload;
|
|
50
|
-
const
|
|
51
|
-
|
|
103
|
+
const streamModel = createTheClawBayStreamModel(typedModel);
|
|
104
|
+
const streamOptions = {
|
|
52
105
|
...typedOptions,
|
|
106
|
+
apiKey: typedOptions?.apiKey ?? process.env.THECLAWBAY_API_KEY,
|
|
53
107
|
headers: buildTheClawBayHeaders(typedOptions),
|
|
54
|
-
onPayload: async (payload,
|
|
108
|
+
onPayload: async (payload, requestModel) => {
|
|
55
109
|
const transformedPayload = buildTheClawBayPayload(payload, typedContext);
|
|
56
|
-
const nextPayload = await originalOnPayload?.(transformedPayload,
|
|
110
|
+
const nextPayload = await originalOnPayload?.(transformedPayload, requestModel);
|
|
57
111
|
return nextPayload === undefined ? transformedPayload : nextPayload;
|
|
58
112
|
},
|
|
59
|
-
}
|
|
113
|
+
};
|
|
114
|
+
const streamContext = createTheClawBayStreamContext(typedContext, typedModel, streamModel);
|
|
115
|
+
return wrapTheClawBayStream(streamSimpleOpenAIResponses(streamModel, streamContext, streamOptions), typedModel);
|
|
60
116
|
}
|
|
61
117
|
//# sourceMappingURL=transport.js.map
|
package/dist/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACvC,IAAI,CAAC,EAAE,KAAK,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,uBAAuB;IACvC,IAAI,CAAC,EAAE,KAAK,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,KAAK,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,WAAW,CAAC;QACvB,MAAM,CAAC,EAAE,WAAW,CAAC;KACrB,CAAC;IACF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC1B"}
|