pi-clawbay 0.0.2 → 0.0.4
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/index.d.ts.map +1 -1
- package/dist/index.js +72 -56
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,+BAA+B,CAAC;AA+OpF;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QA0GxC"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@ const THECLAWBAY_OPENAI_BASE_URL = "https://api.theclawbay.com/v1";
|
|
|
20
20
|
const THECLAWBAY_ANTHROPIC_BASE_URL = "https://api.theclawbay.com/anthropic";
|
|
21
21
|
const THECLAWBAY_QUOTA_URL = "https://theclawbay.com/api/codex-auth/v1/quota";
|
|
22
22
|
const THECLAWBAY_PROVIDERS = ["theclawbay", "theclawbay-claude"];
|
|
23
|
+
const THECLAWBAY_QUOTA_STATUS_KEY = "theclawbay-quota";
|
|
23
24
|
/**
|
|
24
25
|
* GPT and Codex models available through TheClawBay OpenAI-compatible endpoint
|
|
25
26
|
*/
|
|
@@ -129,6 +130,12 @@ async function fetchQuota(apiKey) {
|
|
|
129
130
|
return null;
|
|
130
131
|
}
|
|
131
132
|
}
|
|
133
|
+
function getApiKey() {
|
|
134
|
+
return process.env.THECLAWBAY_API_KEY;
|
|
135
|
+
}
|
|
136
|
+
function isTheClawBayProvider(provider) {
|
|
137
|
+
return provider !== undefined && THECLAWBAY_PROVIDERS.includes(provider);
|
|
138
|
+
}
|
|
132
139
|
function getQuotaWindows(quota) {
|
|
133
140
|
return {
|
|
134
141
|
fiveHour: quota.usage?.fiveHour,
|
|
@@ -177,11 +184,36 @@ function formatQuotaDetails(label, window) {
|
|
|
177
184
|
: percent;
|
|
178
185
|
return `${label}: ${usage} • ${window.requestCount ?? 0} req • resets ${formatDuration(window.secondsUntilReset)}`;
|
|
179
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Update quota status in the status line
|
|
189
|
+
*/
|
|
190
|
+
function updateQuotaStatus(ctx, quota) {
|
|
191
|
+
const theme = ctx.ui.theme;
|
|
192
|
+
const { fiveHour, weekly } = getQuotaWindows(quota);
|
|
193
|
+
const parts = [];
|
|
194
|
+
if (fiveHour) {
|
|
195
|
+
const five = formatPercent(fiveHour.percentUsed);
|
|
196
|
+
parts.push(theme.fg(five.color, `5h:${five.text}`));
|
|
197
|
+
}
|
|
198
|
+
if (weekly) {
|
|
199
|
+
const week = formatPercent(weekly.percentUsed);
|
|
200
|
+
parts.push(theme.fg(week.color, `w:${week.text}`));
|
|
201
|
+
}
|
|
202
|
+
if (parts.length > 0) {
|
|
203
|
+
ctx.ui.setStatus(THECLAWBAY_QUOTA_STATUS_KEY, parts.join(" "));
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
ctx.ui.setStatus(THECLAWBAY_QUOTA_STATUS_KEY, theme.fg("dim", "Quota: N/A"));
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
function clearQuotaStatus(ctx) {
|
|
210
|
+
ctx.ui.setStatus(THECLAWBAY_QUOTA_STATUS_KEY, undefined);
|
|
211
|
+
}
|
|
180
212
|
/**
|
|
181
213
|
* Register TheClawBay providers with pi coding agent
|
|
182
214
|
*/
|
|
183
215
|
export default function (pi) {
|
|
184
|
-
const apiKey =
|
|
216
|
+
const apiKey = getApiKey();
|
|
185
217
|
if (!apiKey) {
|
|
186
218
|
console.warn("\x1b[33m⚠️ TheClawBay API key not set.\x1b[0m\n" +
|
|
187
219
|
" Set THECLAWBAY_API_KEY environment variable:\n" +
|
|
@@ -218,73 +250,57 @@ export default function (pi) {
|
|
|
218
250
|
maxTokens: m.maxTokens,
|
|
219
251
|
})),
|
|
220
252
|
});
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
if (!usingTheClawBay) {
|
|
228
|
-
ctx.ui.setStatus("theclawbay-quota", undefined);
|
|
253
|
+
/**
|
|
254
|
+
* Refresh quota status for the current model
|
|
255
|
+
*/
|
|
256
|
+
const refreshQuotaStatus = async (ctx, provider) => {
|
|
257
|
+
if (!isTheClawBayProvider(provider)) {
|
|
258
|
+
clearQuotaStatus(ctx);
|
|
229
259
|
return;
|
|
230
260
|
}
|
|
231
|
-
const
|
|
232
|
-
if (
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
});
|
|
236
|
-
pi.on("turn_end", async (_event, ctx) => {
|
|
237
|
-
if (!usingTheClawBay) {
|
|
261
|
+
const currentApiKey = getApiKey();
|
|
262
|
+
if (!currentApiKey) {
|
|
263
|
+
ctx.ui.setStatus(THECLAWBAY_QUOTA_STATUS_KEY, ctx.ui.theme.fg("dim", "Quota: no key"));
|
|
238
264
|
return;
|
|
239
265
|
}
|
|
240
|
-
const quota = await fetchQuota(
|
|
241
|
-
if (quota) {
|
|
242
|
-
updateQuotaStatus(ctx, quota, true);
|
|
243
|
-
}
|
|
244
|
-
});
|
|
245
|
-
const showQuota = async (ctx) => {
|
|
246
|
-
const quota = await fetchQuota(apiKey);
|
|
266
|
+
const quota = await fetchQuota(currentApiKey);
|
|
247
267
|
if (!quota) {
|
|
248
|
-
ctx.ui.
|
|
268
|
+
ctx.ui.setStatus(THECLAWBAY_QUOTA_STATUS_KEY, ctx.ui.theme.fg("dim", "Quota: unavailable"));
|
|
249
269
|
return;
|
|
250
270
|
}
|
|
251
|
-
updateQuotaStatus(ctx, quota
|
|
252
|
-
const { fiveHour, weekly } = getQuotaWindows(quota);
|
|
253
|
-
ctx.ui.notify(`${formatQuotaDetails("5h", fiveHour)} | ${formatQuotaDetails("Week", weekly)}`, "info");
|
|
271
|
+
updateQuotaStatus(ctx, quota);
|
|
254
272
|
};
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
273
|
+
// Current provider tracking (updated via events)
|
|
274
|
+
let currentProvider;
|
|
275
|
+
// Update quota status when model is selected (covers initial load, switches, and restores)
|
|
276
|
+
pi.on("model_select", async (event, ctx) => {
|
|
277
|
+
currentProvider = event.model.provider;
|
|
278
|
+
await refreshQuotaStatus(ctx, currentProvider);
|
|
279
|
+
});
|
|
280
|
+
// Update quota after each turn (usage changes)
|
|
281
|
+
pi.on("turn_end", async (_event, ctx) => {
|
|
282
|
+
if (isTheClawBayProvider(currentProvider)) {
|
|
283
|
+
await refreshQuotaStatus(ctx, currentProvider);
|
|
284
|
+
}
|
|
260
285
|
});
|
|
261
|
-
|
|
286
|
+
// Register single quota command
|
|
287
|
+
pi.registerCommand("quota", {
|
|
262
288
|
description: "Check TheClawBay quota usage",
|
|
263
289
|
handler: async (_args, ctx) => {
|
|
264
|
-
|
|
290
|
+
const currentApiKey = getApiKey();
|
|
291
|
+
if (!currentApiKey) {
|
|
292
|
+
ctx.ui.notify("THECLAWBAY_API_KEY is not set", "error");
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
295
|
+
const quota = await fetchQuota(currentApiKey);
|
|
296
|
+
if (!quota) {
|
|
297
|
+
ctx.ui.notify("Failed to fetch quota from TheClawBay", "error");
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
updateQuotaStatus(ctx, quota);
|
|
301
|
+
const { fiveHour, weekly } = getQuotaWindows(quota);
|
|
302
|
+
ctx.ui.notify(`${formatQuotaDetails("5h", fiveHour)} | ${formatQuotaDetails("Week", weekly)}`, "info");
|
|
265
303
|
},
|
|
266
304
|
});
|
|
267
305
|
}
|
|
268
|
-
/**
|
|
269
|
-
* Update quota status in the status line
|
|
270
|
-
*/
|
|
271
|
-
function updateQuotaStatus(ctx, quota, force = false) {
|
|
272
|
-
const theme = ctx.ui.theme;
|
|
273
|
-
const { fiveHour, weekly } = getQuotaWindows(quota);
|
|
274
|
-
const parts = [];
|
|
275
|
-
if (fiveHour) {
|
|
276
|
-
const five = formatPercent(fiveHour.percentUsed);
|
|
277
|
-
parts.push(theme.fg(five.color, `5h:${five.text}`));
|
|
278
|
-
}
|
|
279
|
-
if (weekly) {
|
|
280
|
-
const week = formatPercent(weekly.percentUsed);
|
|
281
|
-
parts.push(theme.fg(week.color, `w:${week.text}`));
|
|
282
|
-
}
|
|
283
|
-
if (parts.length > 0) {
|
|
284
|
-
ctx.ui.setStatus("theclawbay-quota", parts.join(" "));
|
|
285
|
-
}
|
|
286
|
-
else if (force) {
|
|
287
|
-
ctx.ui.setStatus("theclawbay-quota", theme.fg("dim", "Quota: N/A"));
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
306
|
//# 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;AAIH,MAAM,0BAA0B,GAAG,+BAA+B,CAAC;AACnE,MAAM,6BAA6B,GAAG,sCAAsC,CAAC;AAC7E,MAAM,oBAAoB,GAAG,gDAAgD,CAAC;AAE9E,MAAM,oBAAoB,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|