pi-clawbay 0.0.5 → 0.0.8
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 +45 -17
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +197 -205
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ A provider extension for [pi coding agent](https://github.com/badlogic/pi-mono)
|
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **GPT-5 & Codex Models** - Access via
|
|
7
|
+
- **GPT-5 & Codex Models** - Access via Codex Responses API with session-based prompt cache
|
|
8
8
|
- **Claude Models** - Access via Anthropic-compatible Messages API
|
|
9
9
|
- **High Usage Headroom** - More capacity than standard subscriptions
|
|
10
10
|
- **Simple Setup** - Single API key for all models
|
|
@@ -49,23 +49,50 @@ Get your API key from [TheClawBay Dashboard](https://theclawbay.com).
|
|
|
49
49
|
|
|
50
50
|
### Available Models
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
Model IDs are discovered dynamically at extension load from:
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
| `gpt-5.4` | GPT-5.4 | Frontier coding model with widest headroom |
|
|
57
|
-
| `gpt-5.3-codex` | GPT-5.3 Codex | Strong daily-driver for heavier work |
|
|
58
|
-
| `gpt-5.2-codex` | GPT-5.2 Codex | Stable compatibility for older flows |
|
|
59
|
-
| `gpt-5.2` | GPT-5.2 | Balanced non-Codex option |
|
|
60
|
-
| `gpt-5.1-codex-max` | GPT-5.1 Codex Max | Higher-throughput for longer sessions |
|
|
61
|
-
| `gpt-5.1-codex-mini` | GPT-5.1 Codex Mini | Lower-cost for quick iterations |
|
|
54
|
+
- `GET https://api.theclawbay.com/v1/models`
|
|
55
|
+
- `GET https://api.theclawbay.com/anthropic/v1/models`
|
|
62
56
|
|
|
63
|
-
|
|
57
|
+
If discovery fails or `THECLAWBAY_API_KEY` is not set yet, the extension falls back to a bundled default list so `/model` still works.
|
|
64
58
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
59
|
+
Requests for `theclawbay/*` models are sent through TheClawBay's native Codex route:
|
|
60
|
+
|
|
61
|
+
- `https://api.theclawbay.com/backend-api/codex`
|
|
62
|
+
|
|
63
|
+
This is intentional. Pi's `openai-codex-responses` transport sends `session_id` and `prompt_cache_key`, which enables TheClawBay/Codex-style prompt caching. Using the generic `openai-responses` transport against `/v1` does not provide the same cache behavior.
|
|
64
|
+
|
|
65
|
+
Last verified against the live APIs on `2026-04-03`:
|
|
66
|
+
|
|
67
|
+
- OpenAI-compatible: `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.3-codex`, `gpt-5.2-codex`, `gpt-5.2`, `gpt-5.1-codex-max`, `gpt-5.1-codex-mini`
|
|
68
|
+
- Anthropic-compatible: `claude-haiku-4-5-20251001`, `claude-sonnet-4-6`, `claude-opus-4-6`
|
|
69
|
+
|
|
70
|
+
### Model Limits
|
|
71
|
+
|
|
72
|
+
- `gpt-5.4` is configured with a `1,050,000` token context window.
|
|
73
|
+
- Current GPT-5/Codex variants default to `400,000` context and `128,000` max output tokens.
|
|
74
|
+
- Claude models default to `200,000` context in this extension. Anthropic documents `1M` context for Opus 4.6 and Sonnet 4.6 behind a beta header, but this extension does not enable that beta automatically.
|
|
75
|
+
|
|
76
|
+
### Anthropic Reasoning Behavior In Pi
|
|
77
|
+
|
|
78
|
+
This extension does not set Anthropic `thinking` or `budget_tokens` itself. It only registers Claude models with `api: "anthropic-messages"` and `reasoning: true`. Pi Coding Agent handles the request mapping at runtime.
|
|
79
|
+
|
|
80
|
+
With current `pi-mono` releases:
|
|
81
|
+
|
|
82
|
+
- `claude-sonnet-4-6` and `claude-opus-4-6` use adaptive thinking automatically.
|
|
83
|
+
- `claude-haiku-4-5-20251001` uses budget-based thinking automatically.
|
|
84
|
+
- Default budget-based thinking levels in Pi map to:
|
|
85
|
+
- `minimal`: `1024`
|
|
86
|
+
- `low`: `2048`
|
|
87
|
+
- `medium`: `8192`
|
|
88
|
+
- `high`: `16384`
|
|
89
|
+
|
|
90
|
+
Anthropic does not publish canonical token budgets for "low", "medium", and "high" on budget-based models. Their guidance is to start at the minimum `1024` tokens and increase incrementally for your workload.
|
|
91
|
+
|
|
92
|
+
This means:
|
|
93
|
+
|
|
94
|
+
- Pi Coding Agent works correctly with this extension as long as your Pi version includes Anthropic adaptive-thinking support for Claude 4.6 models.
|
|
95
|
+
- OpenCode must be configured separately; it does not inherit Pi's Anthropic thinking defaults.
|
|
69
96
|
|
|
70
97
|
## Usage
|
|
71
98
|
|
|
@@ -86,8 +113,9 @@ import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
|
86
113
|
export default function (pi: ExtensionAPI) {
|
|
87
114
|
// After loading this extension, models are available:
|
|
88
115
|
// - theclawbay/gpt-5.4
|
|
89
|
-
// - theclawbay/gpt-5.
|
|
116
|
+
// - theclawbay/gpt-5.4-mini
|
|
90
117
|
// - theclawbay-claude/claude-opus-4-6
|
|
118
|
+
// - theclawbay-claude/claude-haiku-4-5-20251001
|
|
91
119
|
// - theclawbay-claude/claude-sonnet-4-6
|
|
92
120
|
}
|
|
93
121
|
```
|
|
@@ -98,7 +126,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
98
126
|
|
|
99
127
|
| Provider | Base URL | API Type |
|
|
100
128
|
|----------|----------|----------|
|
|
101
|
-
| `theclawbay` | `https://api.theclawbay.com/
|
|
129
|
+
| `theclawbay` | `https://api.theclawbay.com/backend-api/codex` | OpenAI Codex Responses |
|
|
102
130
|
| `theclawbay-claude` | `https://api.theclawbay.com/anthropic` | Anthropic Messages |
|
|
103
131
|
|
|
104
132
|
### Authentication
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAyC,MAAM,+BAA+B,CAAC;AAkXzG;;GAEG;AACH,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAmCxC"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
* - `theclawbay-claude`: Anthropic-compatible endpoint for Claude models
|
|
8
8
|
*
|
|
9
9
|
* Features:
|
|
10
|
-
* - Shows quota usage in status line (only when using TheClawBay models)
|
|
11
10
|
* - /quota command to check detailed usage
|
|
12
11
|
*
|
|
13
12
|
* Usage:
|
|
@@ -16,101 +15,205 @@
|
|
|
16
15
|
*
|
|
17
16
|
* Get your API key at: https://theclawbay.com
|
|
18
17
|
*/
|
|
19
|
-
const
|
|
18
|
+
const THECLAWBAY_OPENAI_DISCOVERY_BASE_URL = "https://api.theclawbay.com/v1";
|
|
19
|
+
const THECLAWBAY_CODEX_BASE_URL = "https://api.theclawbay.com/backend-api/codex";
|
|
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
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
{
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
id: "gpt-5.2-codex",
|
|
50
|
-
name: "GPT-5.2 Codex",
|
|
51
|
-
description: "Stable compatibility option for older Codex flows",
|
|
52
|
-
reasoning: true,
|
|
53
|
-
input: ["text", "image"],
|
|
54
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
55
|
-
contextWindow: 128000,
|
|
56
|
-
maxTokens: 16384,
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
id: "gpt-5.2",
|
|
60
|
-
name: "GPT-5.2",
|
|
61
|
-
description: "Balanced GPT-5 path when you want a non-Codex option",
|
|
62
|
-
reasoning: true,
|
|
63
|
-
input: ["text", "image"],
|
|
64
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
65
|
-
contextWindow: 128000,
|
|
66
|
-
maxTokens: 16384,
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
id: "gpt-5.1-codex-max",
|
|
70
|
-
name: "GPT-5.1 Codex Max",
|
|
71
|
-
description: "Higher-throughput option for longer coding sessions",
|
|
72
|
-
reasoning: true,
|
|
73
|
-
input: ["text", "image"],
|
|
74
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
75
|
-
contextWindow: 128000,
|
|
76
|
-
maxTokens: 16384,
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
id: "gpt-5.1-codex-mini",
|
|
80
|
-
name: "GPT-5.1 Codex Mini",
|
|
81
|
-
description: "Lower-cost Codex path for quick iterations",
|
|
82
|
-
reasoning: true,
|
|
83
|
-
input: ["text", "image"],
|
|
84
|
-
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
85
|
-
contextWindow: 128000,
|
|
86
|
-
maxTokens: 16384,
|
|
87
|
-
},
|
|
22
|
+
const THECLAWBAY_OPENAI_MODELS_URL = `${THECLAWBAY_OPENAI_DISCOVERY_BASE_URL}/models`;
|
|
23
|
+
const THECLAWBAY_ANTHROPIC_MODELS_URL = `${THECLAWBAY_ANTHROPIC_BASE_URL}/v1/models`;
|
|
24
|
+
const ANTHROPIC_VERSION_HEADER = "2023-06-01";
|
|
25
|
+
const MODEL_INPUTS = ["text", "image"];
|
|
26
|
+
const ZERO_COST = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };
|
|
27
|
+
const OPENAI_KNOWN_COSTS = {
|
|
28
|
+
"gpt-5.4": { input: 2.5, output: 15.0, cacheRead: 0.25, cacheWrite: 2.5 },
|
|
29
|
+
"gpt-5.4-mini": { input: 1.25, output: 10.0, cacheRead: 0.125, cacheWrite: 1.25 },
|
|
30
|
+
"gpt-5.3-codex": { input: 1.75, output: 14.0, cacheRead: 0.175, cacheWrite: 1.75 },
|
|
31
|
+
"gpt-5.2-codex": { input: 1.75, output: 14.0, cacheRead: 0.175, cacheWrite: 1.75 },
|
|
32
|
+
"gpt-5.2": { input: 1.75, output: 14.0, cacheRead: 0.175, cacheWrite: 1.75 },
|
|
33
|
+
"gpt-5.1-codex-max": { input: 1.25, output: 10.0, cacheRead: 0.125, cacheWrite: 1.25 },
|
|
34
|
+
"gpt-5.1-codex-mini": { input: 0.25, output: 2.0, cacheRead: 0.025, cacheWrite: 0.25 },
|
|
35
|
+
};
|
|
36
|
+
const OPENAI_DEFAULT_CONTEXT_WINDOW = 400000;
|
|
37
|
+
const OPENAI_FRONTIER_CONTEXT_WINDOW = 1050000;
|
|
38
|
+
const OPENAI_DEFAULT_MAX_TOKENS = 128000;
|
|
39
|
+
const ANTHROPIC_DEFAULT_CONTEXT_WINDOW = 200000;
|
|
40
|
+
const ANTHROPIC_DEFAULT_MAX_TOKENS = 64000;
|
|
41
|
+
const FALLBACK_OPENAI_MODEL_IDS = [
|
|
42
|
+
"gpt-5.4",
|
|
43
|
+
"gpt-5.4-mini",
|
|
44
|
+
"gpt-5.3-codex",
|
|
45
|
+
"gpt-5.2-codex",
|
|
46
|
+
"gpt-5.2",
|
|
47
|
+
"gpt-5.1-codex-max",
|
|
48
|
+
"gpt-5.1-codex-mini",
|
|
88
49
|
];
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
{
|
|
94
|
-
id: "claude-opus-4-6",
|
|
95
|
-
name: "Claude Opus 4.6",
|
|
96
|
-
description: "Anthropic's most capable model for complex tasks",
|
|
97
|
-
reasoning: true,
|
|
98
|
-
input: ["text", "image"],
|
|
99
|
-
cost: { input: 5.0, output: 25.0, cacheRead: 0.5, cacheWrite: 6.25 },
|
|
100
|
-
contextWindow: 200000,
|
|
101
|
-
maxTokens: 32000,
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
id: "claude-sonnet-4-6",
|
|
105
|
-
name: "Claude Sonnet 4.6",
|
|
106
|
-
description: "Near-Opus intelligence at a fraction of the cost",
|
|
107
|
-
reasoning: true,
|
|
108
|
-
input: ["text", "image"],
|
|
109
|
-
cost: { input: 3.0, output: 15.0, cacheRead: 0.3, cacheWrite: 3.75 },
|
|
110
|
-
contextWindow: 200000,
|
|
111
|
-
maxTokens: 16384,
|
|
112
|
-
},
|
|
50
|
+
const FALLBACK_ANTHROPIC_MODEL_IDS = [
|
|
51
|
+
"claude-opus-4-6",
|
|
52
|
+
"claude-sonnet-4-6",
|
|
53
|
+
"claude-haiku-4-5-20251001",
|
|
113
54
|
];
|
|
55
|
+
function dedupeIds(ids) {
|
|
56
|
+
const seen = new Set();
|
|
57
|
+
const deduped = [];
|
|
58
|
+
for (const id of ids) {
|
|
59
|
+
if (!seen.has(id)) {
|
|
60
|
+
seen.add(id);
|
|
61
|
+
deduped.push(id);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return deduped;
|
|
65
|
+
}
|
|
66
|
+
function toTitleCase(value) {
|
|
67
|
+
if (value.length === 0) {
|
|
68
|
+
return value;
|
|
69
|
+
}
|
|
70
|
+
return value.charAt(0).toUpperCase() + value.slice(1);
|
|
71
|
+
}
|
|
72
|
+
function formatOpenAIModelName(id) {
|
|
73
|
+
if (id.startsWith("gpt-")) {
|
|
74
|
+
const suffix = id
|
|
75
|
+
.slice(4)
|
|
76
|
+
.split("-")
|
|
77
|
+
.map((part) => (/^\d+(\.\d+)?$/.test(part) ? part : toTitleCase(part)))
|
|
78
|
+
.join(" ");
|
|
79
|
+
return `GPT-${suffix}`;
|
|
80
|
+
}
|
|
81
|
+
return id
|
|
82
|
+
.split("-")
|
|
83
|
+
.map((part) => (/^\d+(\.\d+)?$/.test(part) ? part.toUpperCase() : toTitleCase(part)))
|
|
84
|
+
.join(" ");
|
|
85
|
+
}
|
|
86
|
+
function formatClaudeModelName(id) {
|
|
87
|
+
const parts = id.split("-");
|
|
88
|
+
if (parts.length < 4 || parts[0] !== "claude") {
|
|
89
|
+
return id
|
|
90
|
+
.split("-")
|
|
91
|
+
.map((part) => toTitleCase(part))
|
|
92
|
+
.join(" ");
|
|
93
|
+
}
|
|
94
|
+
const version = `${parts[2]}.${parts[3]}`;
|
|
95
|
+
const suffix = parts.slice(4).join(" ");
|
|
96
|
+
return suffix.length > 0
|
|
97
|
+
? `Claude ${toTitleCase(parts[1])} ${version} ${suffix}`
|
|
98
|
+
: `Claude ${toTitleCase(parts[1])} ${version}`;
|
|
99
|
+
}
|
|
100
|
+
function createModelConfig(id, name, cost, contextWindow, maxTokens) {
|
|
101
|
+
return {
|
|
102
|
+
id,
|
|
103
|
+
name,
|
|
104
|
+
reasoning: true,
|
|
105
|
+
input: [...MODEL_INPUTS],
|
|
106
|
+
cost: { ...cost },
|
|
107
|
+
contextWindow,
|
|
108
|
+
maxTokens,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function createOpenAIModel(id) {
|
|
112
|
+
const cost = OPENAI_KNOWN_COSTS[id] ?? ZERO_COST;
|
|
113
|
+
if (id === "gpt-5.4") {
|
|
114
|
+
return createModelConfig(id, formatOpenAIModelName(id), cost, OPENAI_FRONTIER_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS);
|
|
115
|
+
}
|
|
116
|
+
if (id === "gpt-5.4-pro") {
|
|
117
|
+
return createModelConfig(id, formatOpenAIModelName(id), cost, OPENAI_FRONTIER_CONTEXT_WINDOW, 272000);
|
|
118
|
+
}
|
|
119
|
+
return createModelConfig(id, formatOpenAIModelName(id), cost, OPENAI_DEFAULT_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS);
|
|
120
|
+
}
|
|
121
|
+
function createAnthropicModel(id, displayName) {
|
|
122
|
+
const name = displayName?.trim() || formatClaudeModelName(id);
|
|
123
|
+
switch (id) {
|
|
124
|
+
case "claude-opus-4-6":
|
|
125
|
+
return createModelConfig(id, name, { input: 5.0, output: 25.0, cacheRead: 0.5, cacheWrite: 6.25 }, 200000, 128000);
|
|
126
|
+
case "claude-sonnet-4-6":
|
|
127
|
+
return createModelConfig(id, name, { input: 3.0, output: 15.0, cacheRead: 0.3, cacheWrite: 3.75 }, 200000, 64000);
|
|
128
|
+
case "claude-haiku-4-5":
|
|
129
|
+
case "claude-haiku-4-5-20251001":
|
|
130
|
+
return createModelConfig(id, name, { input: 1.0, output: 5.0, cacheRead: 0.1, cacheWrite: 1.25 }, 200000, 64000);
|
|
131
|
+
default:
|
|
132
|
+
return createModelConfig(id, name, ZERO_COST, ANTHROPIC_DEFAULT_CONTEXT_WINDOW, ANTHROPIC_DEFAULT_MAX_TOKENS);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function buildFallbackOpenAIModels() {
|
|
136
|
+
return dedupeIds(FALLBACK_OPENAI_MODEL_IDS).map((id) => createOpenAIModel(id));
|
|
137
|
+
}
|
|
138
|
+
function buildFallbackAnthropicModels() {
|
|
139
|
+
return dedupeIds(FALLBACK_ANTHROPIC_MODEL_IDS).map((id) => createAnthropicModel(id));
|
|
140
|
+
}
|
|
141
|
+
function registerProviders(pi, openaiModels, anthropicModels) {
|
|
142
|
+
pi.registerProvider("theclawbay", {
|
|
143
|
+
baseUrl: THECLAWBAY_CODEX_BASE_URL,
|
|
144
|
+
apiKey: "THECLAWBAY_API_KEY",
|
|
145
|
+
api: "openai-codex-responses",
|
|
146
|
+
authHeader: true,
|
|
147
|
+
models: openaiModels,
|
|
148
|
+
});
|
|
149
|
+
pi.registerProvider("theclawbay-claude", {
|
|
150
|
+
baseUrl: THECLAWBAY_ANTHROPIC_BASE_URL,
|
|
151
|
+
apiKey: "THECLAWBAY_API_KEY",
|
|
152
|
+
api: "anthropic-messages",
|
|
153
|
+
authHeader: true,
|
|
154
|
+
models: anthropicModels,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
async function fetchOpenAIModels(apiKey) {
|
|
158
|
+
try {
|
|
159
|
+
const response = await fetch(THECLAWBAY_OPENAI_MODELS_URL, {
|
|
160
|
+
headers: {
|
|
161
|
+
Authorization: `Bearer ${apiKey}`,
|
|
162
|
+
},
|
|
163
|
+
});
|
|
164
|
+
if (!response.ok) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
const payload = (await response.json());
|
|
168
|
+
const ids = dedupeIds((payload.data ?? [])
|
|
169
|
+
.map((entry) => entry.id?.trim())
|
|
170
|
+
.filter((id) => typeof id === "string" && id.length > 0 && !id.startsWith("claude-")));
|
|
171
|
+
return ids.length > 0 ? ids.map((id) => createOpenAIModel(id)) : null;
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
async function fetchAnthropicModels(apiKey) {
|
|
178
|
+
try {
|
|
179
|
+
const response = await fetch(THECLAWBAY_ANTHROPIC_MODELS_URL, {
|
|
180
|
+
headers: {
|
|
181
|
+
Authorization: `Bearer ${apiKey}`,
|
|
182
|
+
"anthropic-version": ANTHROPIC_VERSION_HEADER,
|
|
183
|
+
},
|
|
184
|
+
});
|
|
185
|
+
if (!response.ok) {
|
|
186
|
+
return null;
|
|
187
|
+
}
|
|
188
|
+
const payload = (await response.json());
|
|
189
|
+
const models = dedupeIds((payload.data ?? [])
|
|
190
|
+
.map((entry) => entry.id?.trim())
|
|
191
|
+
.filter((id) => Boolean(id))).map((id) => {
|
|
192
|
+
const match = (payload.data ?? []).find((entry) => entry.id?.trim() === id);
|
|
193
|
+
return createAnthropicModel(id, match?.display_name);
|
|
194
|
+
});
|
|
195
|
+
return models.length > 0 ? models : null;
|
|
196
|
+
}
|
|
197
|
+
catch {
|
|
198
|
+
return null;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
async function refreshProviderModels(pi) {
|
|
202
|
+
const apiKey = getApiKey();
|
|
203
|
+
if (!apiKey) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const [openaiResult, anthropicResult] = await Promise.all([
|
|
207
|
+
fetchOpenAIModels(apiKey),
|
|
208
|
+
fetchAnthropicModels(apiKey),
|
|
209
|
+
]);
|
|
210
|
+
const openaiModels = openaiResult ?? buildFallbackOpenAIModels();
|
|
211
|
+
const anthropicModels = anthropicResult ?? buildFallbackAnthropicModels();
|
|
212
|
+
registerProviders(pi, openaiModels, anthropicModels);
|
|
213
|
+
if (openaiResult || anthropicResult) {
|
|
214
|
+
console.info(`[theclawbay] Registered ${openaiModels.length} OpenAI-compatible models and ${anthropicModels.length} Anthropic-compatible models from live model discovery.`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
114
217
|
/**
|
|
115
218
|
* Fetch quota information from TheClawBay API
|
|
116
219
|
*/
|
|
@@ -133,9 +236,6 @@ async function fetchQuota(apiKey) {
|
|
|
133
236
|
function getApiKey() {
|
|
134
237
|
return process.env.THECLAWBAY_API_KEY;
|
|
135
238
|
}
|
|
136
|
-
function isTheClawBayProvider(provider) {
|
|
137
|
-
return provider !== undefined && THECLAWBAY_PROVIDERS.includes(provider);
|
|
138
|
-
}
|
|
139
239
|
function getQuotaWindows(quota) {
|
|
140
240
|
return {
|
|
141
241
|
fiveHour: quota.usage?.fiveHour,
|
|
@@ -184,34 +284,6 @@ function formatQuotaDetails(label, window) {
|
|
|
184
284
|
: percent;
|
|
185
285
|
return `${label}: ${usage} • ${window.requestCount ?? 0} req • resets ${formatDuration(window.secondsUntilReset)}`;
|
|
186
286
|
}
|
|
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
|
-
}
|
|
212
|
-
function getProviderFromContext(ctx, fallbackProvider) {
|
|
213
|
-
return ctx.model?.provider ?? fallbackProvider;
|
|
214
|
-
}
|
|
215
287
|
/**
|
|
216
288
|
* Register TheClawBay providers with pi coding agent
|
|
217
289
|
*/
|
|
@@ -223,87 +295,8 @@ export default function (pi) {
|
|
|
223
295
|
" export THECLAWBAY_API_KEY=your-key-here\n" +
|
|
224
296
|
" Get your key at: https://theclawbay.com\n");
|
|
225
297
|
}
|
|
226
|
-
pi
|
|
227
|
-
|
|
228
|
-
apiKey: "THECLAWBAY_API_KEY",
|
|
229
|
-
api: "openai-responses",
|
|
230
|
-
authHeader: true,
|
|
231
|
-
models: OPENAI_MODELS.map((m) => ({
|
|
232
|
-
id: m.id,
|
|
233
|
-
name: m.name,
|
|
234
|
-
reasoning: m.reasoning,
|
|
235
|
-
input: [...m.input],
|
|
236
|
-
cost: m.cost,
|
|
237
|
-
contextWindow: m.contextWindow,
|
|
238
|
-
maxTokens: m.maxTokens,
|
|
239
|
-
})),
|
|
240
|
-
});
|
|
241
|
-
pi.registerProvider("theclawbay-claude", {
|
|
242
|
-
baseUrl: THECLAWBAY_ANTHROPIC_BASE_URL,
|
|
243
|
-
apiKey: "THECLAWBAY_API_KEY",
|
|
244
|
-
api: "anthropic-messages",
|
|
245
|
-
authHeader: true,
|
|
246
|
-
models: ANTHROPIC_MODELS.map((m) => ({
|
|
247
|
-
id: m.id,
|
|
248
|
-
name: m.name,
|
|
249
|
-
reasoning: m.reasoning,
|
|
250
|
-
input: [...m.input],
|
|
251
|
-
cost: m.cost,
|
|
252
|
-
contextWindow: m.contextWindow,
|
|
253
|
-
maxTokens: m.maxTokens,
|
|
254
|
-
})),
|
|
255
|
-
});
|
|
256
|
-
/**
|
|
257
|
-
* Refresh quota status for the current model
|
|
258
|
-
*/
|
|
259
|
-
const refreshQuotaStatus = async (ctx, provider) => {
|
|
260
|
-
if (!isTheClawBayProvider(provider)) {
|
|
261
|
-
clearQuotaStatus(ctx);
|
|
262
|
-
return;
|
|
263
|
-
}
|
|
264
|
-
const currentApiKey = getApiKey();
|
|
265
|
-
if (!currentApiKey) {
|
|
266
|
-
ctx.ui.setStatus(THECLAWBAY_QUOTA_STATUS_KEY, ctx.ui.theme.fg("dim", "Quota: no key"));
|
|
267
|
-
return;
|
|
268
|
-
}
|
|
269
|
-
const quota = await fetchQuota(currentApiKey);
|
|
270
|
-
if (!quota) {
|
|
271
|
-
ctx.ui.setStatus(THECLAWBAY_QUOTA_STATUS_KEY, ctx.ui.theme.fg("dim", "Quota: unavailable"));
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
updateQuotaStatus(ctx, quota);
|
|
275
|
-
};
|
|
276
|
-
// Current provider tracking (updated via events)
|
|
277
|
-
let currentProvider;
|
|
278
|
-
// Update quota status when model is selected (covers switches and restores)
|
|
279
|
-
pi.on("model_select", async (event, ctx) => {
|
|
280
|
-
currentProvider = event.model.provider;
|
|
281
|
-
await refreshQuotaStatus(ctx, currentProvider);
|
|
282
|
-
});
|
|
283
|
-
// Seed status on startup even if the current model was already restored before hooks run
|
|
284
|
-
pi.on("session_start", async (_event, ctx) => {
|
|
285
|
-
currentProvider = getProviderFromContext(ctx, currentProvider);
|
|
286
|
-
await refreshQuotaStatus(ctx, currentProvider);
|
|
287
|
-
});
|
|
288
|
-
// Keep the footer in sync when moving between sessions
|
|
289
|
-
pi.on("session_switch", async (_event, ctx) => {
|
|
290
|
-
currentProvider = getProviderFromContext(ctx, currentProvider);
|
|
291
|
-
await refreshQuotaStatus(ctx, currentProvider);
|
|
292
|
-
});
|
|
293
|
-
// Ensure status appears as soon as a turn starts, even if startup restore was silent
|
|
294
|
-
pi.on("turn_start", async (_event, ctx) => {
|
|
295
|
-
currentProvider = getProviderFromContext(ctx, currentProvider);
|
|
296
|
-
if (isTheClawBayProvider(currentProvider)) {
|
|
297
|
-
await refreshQuotaStatus(ctx, currentProvider);
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
// Update quota after each turn (usage changes)
|
|
301
|
-
pi.on("turn_end", async (_event, ctx) => {
|
|
302
|
-
currentProvider = getProviderFromContext(ctx, currentProvider);
|
|
303
|
-
if (isTheClawBayProvider(currentProvider)) {
|
|
304
|
-
await refreshQuotaStatus(ctx, currentProvider);
|
|
305
|
-
}
|
|
306
|
-
});
|
|
298
|
+
registerProviders(pi, buildFallbackOpenAIModels(), buildFallbackAnthropicModels());
|
|
299
|
+
void refreshProviderModels(pi);
|
|
307
300
|
// Register single quota command
|
|
308
301
|
pi.registerCommand("quota", {
|
|
309
302
|
description: "Check TheClawBay quota usage",
|
|
@@ -318,7 +311,6 @@ export default function (pi) {
|
|
|
318
311
|
ctx.ui.notify("Failed to fetch quota from TheClawBay", "error");
|
|
319
312
|
return;
|
|
320
313
|
}
|
|
321
|
-
updateQuotaStatus(ctx, quota);
|
|
322
314
|
const { fiveHour, weekly } = getQuotaWindows(quota);
|
|
323
315
|
ctx.ui.notify(`${formatQuotaDetails("5h", fiveHour)} | ${formatQuotaDetails("Week", weekly)}`, "info");
|
|
324
316
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|