pi-clawbay 0.0.14 → 0.0.16
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 +149 -105
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +495 -11
- package/dist/index.js.map +1 -1
- package/package.json +10 -4
- package/skills/theclawbay-imagegen/SKILL.md +85 -0
package/README.md
CHANGED
|
@@ -1,107 +1,76 @@
|
|
|
1
1
|
# TheClawBay Provider for Pi Coding Agent
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
`pi-clawbay` is a Pi Coding Agent provider extension for [TheClawBay](https://theclawbay.com). It exposes TheClawBay GPT/Codex models through Pi and includes experimental Codex-style hosted image generation support.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **
|
|
8
|
-
- **
|
|
9
|
-
- **
|
|
10
|
-
- **
|
|
11
|
-
- **
|
|
7
|
+
- **Single Pi provider:** registers `theclawbay`.
|
|
8
|
+
- **Codex Responses transport:** sends requests to TheClawBay's native Codex route over HTTP streaming.
|
|
9
|
+
- **Dynamic model discovery:** loads model IDs from TheClawBay's `/v1/models` endpoint and caches successful discovery results.
|
|
10
|
+
- **GPT-5.4 variants:** exposes `gpt-5.4` and `gpt-5.4[1m]` as separate Pi selections while remapping both to the upstream `gpt-5.4` model ID.
|
|
11
|
+
- **Hosted image generation:** optional Codex-style `image_generation` hosted tool support behind an explicit feature flag.
|
|
12
|
+
- **Quota command:** adds `/quota` for current TheClawBay usage information.
|
|
12
13
|
|
|
13
14
|
## Installation
|
|
14
15
|
|
|
15
|
-
### Recommended:
|
|
16
|
+
### Recommended: npm
|
|
16
17
|
|
|
17
18
|
```bash
|
|
18
19
|
pi install npm:pi-clawbay@latest
|
|
19
20
|
```
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
Use the npm package form above. Do not install `npm:chrislopez24/pi-clawbay`; npm treats that as a GitHub-style dependency and it can leave broken global symlinks.
|
|
22
23
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
pi install npm:chrislopez24/pi-clawbay
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
That form is treated as a GitHub install, not a registry package install, and it can leave broken global symlinks behind.
|
|
30
|
-
|
|
31
|
-
### Local Development
|
|
24
|
+
### Local development
|
|
32
25
|
|
|
33
26
|
```bash
|
|
34
27
|
pi -e /path/to/pi-clawbay
|
|
35
28
|
```
|
|
36
29
|
|
|
37
|
-
Use
|
|
30
|
+
Use local loading only while developing or testing this extension.
|
|
38
31
|
|
|
39
32
|
## Configuration
|
|
40
33
|
|
|
41
|
-
### Environment Variable
|
|
42
|
-
|
|
43
34
|
Set your TheClawBay API key:
|
|
44
35
|
|
|
45
36
|
```bash
|
|
46
37
|
export THECLAWBAY_API_KEY=your-api-key-here
|
|
47
38
|
```
|
|
48
39
|
|
|
49
|
-
Get
|
|
40
|
+
Get an API key from the [TheClawBay Dashboard](https://theclawbay.com).
|
|
50
41
|
|
|
51
|
-
|
|
42
|
+
## Provider transport
|
|
52
43
|
|
|
53
|
-
|
|
44
|
+
The provider sends `theclawbay/*` requests to TheClawBay's native Codex route:
|
|
54
45
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
Requests for `theclawbay/*` models are sent through TheClawBay's native Codex route:
|
|
60
|
-
|
|
61
|
-
- `https://api.theclawbay.com/backend-api/codex`
|
|
46
|
+
```text
|
|
47
|
+
https://api.theclawbay.com/backend-api/codex
|
|
48
|
+
```
|
|
62
49
|
|
|
63
|
-
|
|
50
|
+
The extension uses a custom HTTP streaming Responses transport. It sends:
|
|
64
51
|
|
|
65
52
|
- `Authorization: Bearer $THECLAWBAY_API_KEY`
|
|
66
53
|
- `chatgpt-account-id: theclawbay`
|
|
67
|
-
- `
|
|
54
|
+
- `originator: pi`
|
|
55
|
+
- `OpenAI-Beta: responses=experimental`
|
|
56
|
+
- `session_id` when Pi provides a session ID
|
|
68
57
|
- `prompt_cache_key` in the request body
|
|
69
58
|
|
|
70
|
-
|
|
59
|
+
It intentionally does not use Pi's built-in Codex WebSocket transport. That path expects ChatGPT/Codex JWT-style credentials and can fail with normal TheClawBay API keys.
|
|
71
60
|
|
|
72
|
-
|
|
61
|
+
## Model discovery and filtering
|
|
73
62
|
|
|
74
|
-
|
|
75
|
-
- Native Codex config uses `https://api.theclawbay.com/backend-api/codex`
|
|
76
|
-
- The docs recommend calling `/models` first and selecting an available model dynamically
|
|
63
|
+
At startup, the extension calls:
|
|
77
64
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
- `theclawbay/gpt-5.4` → standard variant, capped to `272k` context in Pi
|
|
83
|
-
- `theclawbay/gpt-5.4[1m]` → long-context variant, configured to `1,050,000`
|
|
84
|
-
|
|
85
|
-
Internally:
|
|
86
|
-
|
|
87
|
-
- `gpt-5.4` stays as-is
|
|
88
|
-
- `gpt-5.4[1m]` is remapped to upstream `gpt-5.4` before the request is sent
|
|
89
|
-
|
|
90
|
-
Why split it?
|
|
91
|
-
|
|
92
|
-
- `gpt-5.4` is the cheaper/default option
|
|
93
|
-
- `gpt-5.4[1m]` gives explicit access to long context
|
|
94
|
-
- both end up using the same official upstream model id from TheClawBay
|
|
95
|
-
|
|
96
|
-
### Model Limits
|
|
65
|
+
```text
|
|
66
|
+
GET https://api.theclawbay.com/v1/models
|
|
67
|
+
```
|
|
97
68
|
|
|
98
|
-
|
|
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 `400,000` context and `128,000` max output tokens.
|
|
69
|
+
If live discovery fails, it falls back to the last successful cache and then to the bundled default list.
|
|
101
70
|
|
|
102
|
-
|
|
71
|
+
Selectable Pi chat models are filtered to GPT/Codex-compatible models. Image API models such as `gpt-image-2` and `gpt-image-1.5` are intentionally not exposed in `/model`; they are image-generation API models, not chat/Codex models.
|
|
103
72
|
|
|
104
|
-
|
|
73
|
+
### Default fallback models
|
|
105
74
|
|
|
106
75
|
- `gpt-5.5`
|
|
107
76
|
- `gpt-5.4`
|
|
@@ -113,92 +82,167 @@ Current fallback list in this package:
|
|
|
113
82
|
- `gpt-5.1-codex-max`
|
|
114
83
|
- `gpt-5.1-codex-mini`
|
|
115
84
|
|
|
116
|
-
|
|
85
|
+
### GPT-5.4 variants
|
|
117
86
|
|
|
118
|
-
|
|
87
|
+
The upstream TheClawBay model ID is `gpt-5.4`. This extension exposes two Pi entries for clearer cost/context selection:
|
|
119
88
|
|
|
120
|
-
|
|
89
|
+
| Pi model | Upstream model | Context configured in Pi |
|
|
90
|
+
|----------|----------------|--------------------------|
|
|
91
|
+
| `theclawbay/gpt-5.4` | `gpt-5.4` | `272,000` tokens |
|
|
92
|
+
| `theclawbay/gpt-5.4[1m]` | `gpt-5.4` | `1,050,000` tokens |
|
|
93
|
+
|
|
94
|
+
Other GPT/Codex fallback models use a `272,000` token context window and `128,000` max output tokens.
|
|
95
|
+
|
|
96
|
+
## Image generation
|
|
97
|
+
|
|
98
|
+
`pi-clawbay` supports experimental hosted image generation in the Codex style used by OpenAI Codex CLI.
|
|
99
|
+
|
|
100
|
+
Enable it explicitly:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
export PI_CLAWBAY_IMAGE_GENERATION=hosted
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Then select a text/Codex model, for example:
|
|
121
107
|
|
|
122
108
|
```text
|
|
123
109
|
/model theclawbay/gpt-5.5
|
|
124
|
-
/model theclawbay/gpt-5.4
|
|
125
|
-
/model theclawbay/gpt-5.4[1m]
|
|
126
110
|
```
|
|
127
111
|
|
|
128
|
-
|
|
112
|
+
Ask for an image naturally:
|
|
129
113
|
|
|
130
|
-
|
|
114
|
+
```text
|
|
115
|
+
Generate a minimalist black sailboat icon on a white background. No text.
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
When the feature flag is enabled, the provider adds the hosted Responses tool:
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{ "type": "image_generation", "output_format": "png" }
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
The stream parser handles `image_generation_call` items, decodes the returned base64 PNG, and saves it to:
|
|
131
125
|
|
|
132
126
|
```text
|
|
133
|
-
/
|
|
127
|
+
~/.pi/agent/generated_images/<session_id>/<image_generation_call_id>.png
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
The assistant response includes:
|
|
131
|
+
|
|
132
|
+
- a `file://` URL
|
|
133
|
+
- the filesystem path
|
|
134
|
+
- the revised prompt, when returned by TheClawBay
|
|
135
|
+
|
|
136
|
+
For tests or automation, override the output root:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
export PI_CLAWBAY_GENERATED_IMAGES_DIR=/absolute/output/dir
|
|
134
140
|
```
|
|
135
141
|
|
|
136
|
-
|
|
142
|
+
### Image model IDs
|
|
137
143
|
|
|
138
|
-
|
|
144
|
+
The current TheClawBay image model ID is:
|
|
145
|
+
|
|
146
|
+
```text
|
|
147
|
+
gpt-image-2
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
It is not `gpt-image-2.0`. The extension keeps `gpt-image-*` out of the Pi chat model list. Hosted image generation is invoked from a text/Codex model through the `image_generation` hosted tool.
|
|
151
|
+
|
|
152
|
+
### Skill guidance
|
|
153
|
+
|
|
154
|
+
This package includes a Pi skill:
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
theclawbay-imagegen
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
The skill documents the recommended image-generation workflow and fallback behavior. It is helpful guidance for the agent, but it is not a separate runtime requirement. The provider stream implements the actual hosted image generation support.
|
|
161
|
+
|
|
162
|
+
If needed, load it explicitly inside Pi:
|
|
163
|
+
|
|
164
|
+
```text
|
|
165
|
+
/skill:theclawbay-imagegen
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Direct Images API fallback
|
|
169
|
+
|
|
170
|
+
For programmatic image generation outside the Pi provider loop, call TheClawBay's OpenAI-compatible Images API directly:
|
|
171
|
+
|
|
172
|
+
```http
|
|
173
|
+
POST https://api.theclawbay.com/v1/images/generations
|
|
174
|
+
Authorization: Bearer $THECLAWBAY_API_KEY
|
|
175
|
+
Content-Type: application/json
|
|
176
|
+
```
|
|
139
177
|
|
|
140
|
-
|
|
141
|
-
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
|
|
178
|
+
Example payload:
|
|
142
179
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
180
|
+
```json
|
|
181
|
+
{
|
|
182
|
+
"model": "gpt-image-2",
|
|
183
|
+
"prompt": "A minimalist black sailboat icon on a white background. No text.",
|
|
184
|
+
"size": "1024x1024",
|
|
185
|
+
"quality": "low",
|
|
186
|
+
"output_format": "png"
|
|
150
187
|
}
|
|
151
188
|
```
|
|
152
189
|
|
|
153
|
-
|
|
190
|
+
Use the direct API only when you need programmatic image generation outside Pi or when hosted generation is unavailable.
|
|
154
191
|
|
|
155
|
-
|
|
192
|
+
## Usage
|
|
156
193
|
|
|
157
|
-
|
|
158
|
-
|----------|----------|----------|
|
|
159
|
-
| `theclawbay` | `https://api.theclawbay.com/backend-api/codex` | OpenAI Codex Responses |
|
|
194
|
+
### Select a model
|
|
160
195
|
|
|
161
|
-
|
|
196
|
+
```text
|
|
197
|
+
/model theclawbay/gpt-5.5
|
|
198
|
+
/model theclawbay/gpt-5.4
|
|
199
|
+
/model theclawbay/gpt-5.4[1m]
|
|
200
|
+
```
|
|
162
201
|
|
|
163
|
-
|
|
202
|
+
### Commands
|
|
164
203
|
|
|
165
204
|
```text
|
|
166
|
-
|
|
205
|
+
/quota
|
|
167
206
|
```
|
|
168
207
|
|
|
169
|
-
|
|
208
|
+
`/quota` shows current TheClawBay usage windows and reset times.
|
|
170
209
|
|
|
171
|
-
|
|
210
|
+
## API reference
|
|
211
|
+
|
|
212
|
+
| Provider | Base URL | API type |
|
|
213
|
+
|----------|----------|----------|
|
|
214
|
+
| `theclawbay` | `https://api.theclawbay.com/backend-api/codex` | Responses over HTTP streaming |
|
|
215
|
+
|
|
216
|
+
All provider requests use Bearer token authentication:
|
|
217
|
+
|
|
218
|
+
```text
|
|
219
|
+
Authorization: Bearer $THECLAWBAY_API_KEY
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Quota endpoint:
|
|
172
223
|
|
|
173
224
|
```bash
|
|
174
225
|
curl "https://theclawbay.com/api/codex-auth/v1/quota" \
|
|
175
226
|
-H "Authorization: Bearer $THECLAWBAY_API_KEY"
|
|
176
227
|
```
|
|
177
228
|
|
|
178
|
-
##
|
|
179
|
-
|
|
180
|
-
Common error codes:
|
|
181
|
-
|
|
182
|
-
| Code | Description |
|
|
183
|
-
|------|-------------|
|
|
184
|
-
| `weekly_cost_limit_reached` | Weekly spend cap hit |
|
|
185
|
-
| `5h_cost_limit_reached` | 5-hour spend cap hit |
|
|
186
|
-
| `invalid_api_key` | Key missing or malformed |
|
|
187
|
-
| `model_not_found` | Requested model unavailable |
|
|
188
|
-
|
|
189
|
-
## Building
|
|
229
|
+
## Build and test
|
|
190
230
|
|
|
191
231
|
```bash
|
|
192
232
|
npm install
|
|
193
|
-
npm run
|
|
233
|
+
npm run check
|
|
234
|
+
npm test
|
|
194
235
|
npm pack --dry-run
|
|
195
236
|
```
|
|
196
237
|
|
|
197
238
|
## Publishing
|
|
198
239
|
|
|
240
|
+
Publishing is handled by the GitHub Actions workflow in `.github/workflows/publish.yml`.
|
|
241
|
+
|
|
242
|
+
Manual local publishing is not recommended. Use the workflow so npm provenance is attached:
|
|
243
|
+
|
|
199
244
|
```bash
|
|
200
|
-
|
|
201
|
-
npm publish
|
|
245
|
+
gh workflow run publish.yml --ref main
|
|
202
246
|
```
|
|
203
247
|
|
|
204
248
|
## Resources
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAqBH,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,+BAA+B,CAAC;AA49BvF,MAAM,CAAC,OAAO,WAAW,EAAE,EAAE,YAAY,QAsCxC"}
|
package/dist/index.js
CHANGED
|
@@ -19,20 +19,24 @@
|
|
|
19
19
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
20
20
|
import { homedir } from "node:os";
|
|
21
21
|
import { dirname, join } from "node:path";
|
|
22
|
-
import {
|
|
22
|
+
import { pathToFileURL } from "node:url";
|
|
23
|
+
import { calculateCost, clampThinkingLevel, createAssistantMessageEventStream, parseStreamingJson, streamSimpleOpenAIResponses, } from "@mariozechner/pi-ai";
|
|
23
24
|
const THECLAWBAY_OPENAI_DISCOVERY_BASE_URL = "https://api.theclawbay.com/v1";
|
|
24
25
|
const THECLAWBAY_CODEX_BASE_URL = "https://api.theclawbay.com/backend-api/codex";
|
|
25
26
|
const THECLAWBAY_QUOTA_URL = "https://theclawbay.com/api/codex-auth/v1/quota";
|
|
26
27
|
const THECLAWBAY_OPENAI_MODELS_URL = `${THECLAWBAY_OPENAI_DISCOVERY_BASE_URL}/models`;
|
|
27
28
|
const THECLAWBAY_CODEX_API = "theclawbay-codex-responses";
|
|
28
29
|
const THECLAWBAY_CHATGPT_ACCOUNT_ID = "theclawbay";
|
|
30
|
+
const IMAGE_GENERATION_ENV = "PI_CLAWBAY_IMAGE_GENERATION";
|
|
31
|
+
const GENERATED_IMAGES_DIR_ENV = "PI_CLAWBAY_GENERATED_IMAGES_DIR";
|
|
32
|
+
const HOSTED_IMAGE_GENERATION_TOOL = { type: "image_generation", output_format: "png" };
|
|
29
33
|
const MODEL_CACHE_VERSION = 1;
|
|
30
34
|
const MODEL_CACHE_TTL_MS = 6 * 60 * 60 * 1000;
|
|
31
35
|
const GPT_54_UPSTREAM_MODEL_ID = "gpt-5.4";
|
|
32
36
|
const GPT_54_DEFAULT_MODEL_ID = "gpt-5.4";
|
|
33
37
|
const GPT_54_1M_MODEL_ID = "gpt-5.4[1m]";
|
|
34
38
|
const MODEL_INPUTS = ["text", "image"];
|
|
35
|
-
const
|
|
39
|
+
const OPENAI_CODEX_THINKING_LEVEL_MAP = { xhigh: "xhigh", minimal: "low" };
|
|
36
40
|
const ZERO_COST = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };
|
|
37
41
|
const OPENAI_KNOWN_COSTS = {
|
|
38
42
|
"gpt-5.5": { input: 5.0, output: 30.0, cacheRead: 0.5, cacheWrite: 5.0 },
|
|
@@ -45,8 +49,8 @@ const OPENAI_KNOWN_COSTS = {
|
|
|
45
49
|
"gpt-5.1-codex-max": { input: 1.25, output: 10.0, cacheRead: 0.125, cacheWrite: 1.25 },
|
|
46
50
|
"gpt-5.1-codex-mini": { input: 0.25, output: 2.0, cacheRead: 0.025, cacheWrite: 0.25 },
|
|
47
51
|
};
|
|
48
|
-
const
|
|
49
|
-
const
|
|
52
|
+
const OPENAI_CODEX_CONTEXT_WINDOW = 272000;
|
|
53
|
+
const OPENAI_DEFAULT_CONTEXT_WINDOW = OPENAI_CODEX_CONTEXT_WINDOW;
|
|
50
54
|
const OPENAI_FRONTIER_CONTEXT_WINDOW = 1050000;
|
|
51
55
|
const OPENAI_DEFAULT_MAX_TOKENS = 128000;
|
|
52
56
|
const FALLBACK_OPENAI_MODEL_IDS = [
|
|
@@ -100,12 +104,16 @@ function formatOpenAIModelName(id) {
|
|
|
100
104
|
function isGpt54Or55Model(id) {
|
|
101
105
|
return id.startsWith("gpt-5.4") || id.startsWith("gpt-5.5");
|
|
102
106
|
}
|
|
107
|
+
function isImageGenerationModel(id) {
|
|
108
|
+
return id.startsWith("gpt-image-");
|
|
109
|
+
}
|
|
103
110
|
function createModelConfig(id, name, cost, contextWindow, maxTokens) {
|
|
111
|
+
const isReasoningModel = !isImageGenerationModel(id);
|
|
104
112
|
return {
|
|
105
113
|
id,
|
|
106
114
|
name,
|
|
107
|
-
reasoning:
|
|
108
|
-
...(isGpt54Or55Model(id) ? { thinkingLevelMap: { ...
|
|
115
|
+
reasoning: isReasoningModel,
|
|
116
|
+
...(isReasoningModel && isGpt54Or55Model(id) ? { thinkingLevelMap: { ...OPENAI_CODEX_THINKING_LEVEL_MAP } } : {}),
|
|
109
117
|
input: [...MODEL_INPUTS],
|
|
110
118
|
cost: { ...cost },
|
|
111
119
|
contextWindow,
|
|
@@ -115,7 +123,7 @@ function createModelConfig(id, name, cost, contextWindow, maxTokens) {
|
|
|
115
123
|
function createOpenAIModel(id) {
|
|
116
124
|
const cost = OPENAI_KNOWN_COSTS[id] ?? ZERO_COST;
|
|
117
125
|
if (id === GPT_54_DEFAULT_MODEL_ID) {
|
|
118
|
-
return createModelConfig(id, formatOpenAIModelName(id), cost,
|
|
126
|
+
return createModelConfig(id, formatOpenAIModelName(id), cost, OPENAI_CODEX_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS);
|
|
119
127
|
}
|
|
120
128
|
if (id === GPT_54_1M_MODEL_ID) {
|
|
121
129
|
return createModelConfig(id, formatOpenAIModelName(id), cost, OPENAI_FRONTIER_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS);
|
|
@@ -123,14 +131,14 @@ function createOpenAIModel(id) {
|
|
|
123
131
|
return createModelConfig(id, formatOpenAIModelName(id), cost, OPENAI_DEFAULT_CONTEXT_WINDOW, OPENAI_DEFAULT_MAX_TOKENS);
|
|
124
132
|
}
|
|
125
133
|
function buildOpenAIModels(ids) {
|
|
126
|
-
return dedupeIds(ids).map((id) => createOpenAIModel(id));
|
|
134
|
+
return dedupeIds(ids).filter((id) => !isImageGenerationModel(id)).map((id) => createOpenAIModel(id));
|
|
127
135
|
}
|
|
128
136
|
function buildFallbackOpenAIModels() {
|
|
129
137
|
return buildOpenAIModels(FALLBACK_OPENAI_MODEL_IDS);
|
|
130
138
|
}
|
|
131
139
|
function normalizeOpenAIModelIds(ids) {
|
|
132
140
|
return dedupeIds(ids.flatMap((id) => {
|
|
133
|
-
if (id.startsWith("claude-")) {
|
|
141
|
+
if (id.startsWith("claude-") || isImageGenerationModel(id)) {
|
|
134
142
|
return [];
|
|
135
143
|
}
|
|
136
144
|
if (id === GPT_54_UPSTREAM_MODEL_ID) {
|
|
@@ -157,7 +165,15 @@ function buildTheClawBayHeaders(options) {
|
|
|
157
165
|
...(options?.sessionId ? { session_id: options.sessionId } : {}),
|
|
158
166
|
};
|
|
159
167
|
}
|
|
160
|
-
function
|
|
168
|
+
function isHostedImageGenerationEnabled() {
|
|
169
|
+
return process.env[IMAGE_GENERATION_ENV]?.trim().toLowerCase() === "hosted";
|
|
170
|
+
}
|
|
171
|
+
function appendHostedImageGenerationTool(tools) {
|
|
172
|
+
const existing = Array.isArray(tools) ? tools.filter((tool) => tool && typeof tool === "object") : [];
|
|
173
|
+
const hasHostedImageTool = existing.some((tool) => tool.type === HOSTED_IMAGE_GENERATION_TOOL.type);
|
|
174
|
+
return hasHostedImageTool ? existing : [...existing, { ...HOSTED_IMAGE_GENERATION_TOOL }];
|
|
175
|
+
}
|
|
176
|
+
function buildTheClawBayPayload(payload, context, options) {
|
|
161
177
|
if (!payload || typeof payload !== "object" || Array.isArray(payload)) {
|
|
162
178
|
return payload;
|
|
163
179
|
}
|
|
@@ -178,6 +194,7 @@ function buildTheClawBayPayload(payload, context) {
|
|
|
178
194
|
...source,
|
|
179
195
|
instructions: context.systemPrompt,
|
|
180
196
|
input,
|
|
197
|
+
...(options?.includeHostedImageGeneration ? { tools: appendHostedImageGenerationTool(source.tools) } : {}),
|
|
181
198
|
include: dedupeIds([...include, "reasoning.encrypted_content"]),
|
|
182
199
|
text: { verbosity: "medium" },
|
|
183
200
|
tool_choice: "auto",
|
|
@@ -185,6 +202,456 @@ function buildTheClawBayPayload(payload, context) {
|
|
|
185
202
|
store: false,
|
|
186
203
|
};
|
|
187
204
|
}
|
|
205
|
+
function sanitizeGeneratedImagePathPart(value, fallback) {
|
|
206
|
+
const sanitized = (value?.trim() || fallback).replace(/[^a-zA-Z0-9_-]/g, "_").replace(/_+/g, "_").replace(/^_+|_+$/g, "");
|
|
207
|
+
return (sanitized || fallback).slice(0, 128);
|
|
208
|
+
}
|
|
209
|
+
function getGeneratedImagesRoot() {
|
|
210
|
+
const overrideDir = process.env[GENERATED_IMAGES_DIR_ENV]?.trim();
|
|
211
|
+
if (overrideDir) {
|
|
212
|
+
return overrideDir;
|
|
213
|
+
}
|
|
214
|
+
const agentDir = process.env.PI_CODING_AGENT_DIR?.trim() || join(homedir(), ".pi", "agent");
|
|
215
|
+
return join(agentDir, "generated_images");
|
|
216
|
+
}
|
|
217
|
+
function getGeneratedImagePath(sessionId, callId) {
|
|
218
|
+
return join(getGeneratedImagesRoot(), sanitizeGeneratedImagePathPart(sessionId, "session"), `${sanitizeGeneratedImagePathPart(callId, "image_generation_call")}.png`);
|
|
219
|
+
}
|
|
220
|
+
function saveImageGenerationResult(sessionId, callId, result) {
|
|
221
|
+
const filePath = getGeneratedImagePath(sessionId, callId);
|
|
222
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
223
|
+
writeFileSync(filePath, Buffer.from(result, "base64"));
|
|
224
|
+
return filePath;
|
|
225
|
+
}
|
|
226
|
+
function responseInputContent(content) {
|
|
227
|
+
if (typeof content === "string") {
|
|
228
|
+
return [{ type: "input_text", text: content }];
|
|
229
|
+
}
|
|
230
|
+
return content.map((item) => {
|
|
231
|
+
if (item.type === "text") {
|
|
232
|
+
return { type: "input_text", text: item.text };
|
|
233
|
+
}
|
|
234
|
+
return {
|
|
235
|
+
type: "input_image",
|
|
236
|
+
detail: "auto",
|
|
237
|
+
image_url: `data:${item.mimeType};base64,${item.data}`,
|
|
238
|
+
};
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
function convertTheClawBayResponsesMessages(context, model) {
|
|
242
|
+
const messages = [];
|
|
243
|
+
for (const msg of context.messages) {
|
|
244
|
+
if (msg.role === "user") {
|
|
245
|
+
const content = responseInputContent(msg.content);
|
|
246
|
+
if (Array.isArray(content) && content.length > 0) {
|
|
247
|
+
messages.push({ role: "user", content });
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
else if (msg.role === "assistant") {
|
|
251
|
+
for (const block of msg.content) {
|
|
252
|
+
if (block.type === "thinking" && block.thinkingSignature) {
|
|
253
|
+
try {
|
|
254
|
+
messages.push(JSON.parse(block.thinkingSignature));
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
// Ignore malformed opaque reasoning history.
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else if (block.type === "text") {
|
|
261
|
+
messages.push({
|
|
262
|
+
type: "message",
|
|
263
|
+
role: "assistant",
|
|
264
|
+
content: [{ type: "output_text", text: block.text, annotations: [] }],
|
|
265
|
+
status: "completed",
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
else if (block.type === "toolCall") {
|
|
269
|
+
const [callId, itemId] = block.id.split("|");
|
|
270
|
+
messages.push({
|
|
271
|
+
type: "function_call",
|
|
272
|
+
id: itemId,
|
|
273
|
+
call_id: callId,
|
|
274
|
+
name: block.name,
|
|
275
|
+
arguments: JSON.stringify(block.arguments),
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
else if (msg.role === "toolResult") {
|
|
281
|
+
const textResult = msg.content
|
|
282
|
+
.filter((item) => item.type === "text")
|
|
283
|
+
.map((item) => item.text)
|
|
284
|
+
.join("\n");
|
|
285
|
+
const imageResults = msg.content.filter((item) => item.type === "image");
|
|
286
|
+
const [callId] = msg.toolCallId.split("|");
|
|
287
|
+
const output = imageResults.length > 0 && model.input.includes("image")
|
|
288
|
+
? [
|
|
289
|
+
...(textResult ? [{ type: "input_text", text: textResult }] : []),
|
|
290
|
+
...imageResults.map((item) => ({
|
|
291
|
+
type: "input_image",
|
|
292
|
+
detail: "auto",
|
|
293
|
+
image_url: `data:${item.mimeType};base64,${item.data}`,
|
|
294
|
+
})),
|
|
295
|
+
]
|
|
296
|
+
: textResult || "(see attached image)";
|
|
297
|
+
messages.push({ type: "function_call_output", call_id: callId, output });
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
return messages;
|
|
301
|
+
}
|
|
302
|
+
function convertTheClawBayResponsesTools(context) {
|
|
303
|
+
const functionTools = context.tools?.map((tool) => ({
|
|
304
|
+
type: "function",
|
|
305
|
+
name: tool.name,
|
|
306
|
+
description: tool.description,
|
|
307
|
+
parameters: tool.parameters,
|
|
308
|
+
strict: null,
|
|
309
|
+
}));
|
|
310
|
+
return appendHostedImageGenerationTool(functionTools);
|
|
311
|
+
}
|
|
312
|
+
function buildHostedImageGenerationPayload(model, context, options) {
|
|
313
|
+
const body = {
|
|
314
|
+
model: model.id,
|
|
315
|
+
store: false,
|
|
316
|
+
stream: true,
|
|
317
|
+
instructions: context.systemPrompt,
|
|
318
|
+
input: convertTheClawBayResponsesMessages(context, model),
|
|
319
|
+
text: { verbosity: "medium" },
|
|
320
|
+
include: ["reasoning.encrypted_content"],
|
|
321
|
+
prompt_cache_key: options?.sessionId,
|
|
322
|
+
tool_choice: "auto",
|
|
323
|
+
parallel_tool_calls: true,
|
|
324
|
+
tools: convertTheClawBayResponsesTools(context),
|
|
325
|
+
};
|
|
326
|
+
if (options?.temperature !== undefined) {
|
|
327
|
+
body.temperature = options.temperature;
|
|
328
|
+
}
|
|
329
|
+
if (options?.maxTokens !== undefined) {
|
|
330
|
+
body.max_output_tokens = options.maxTokens;
|
|
331
|
+
}
|
|
332
|
+
if (model.reasoning) {
|
|
333
|
+
const clampedReasoning = options?.reasoning ? clampThinkingLevel(model, options.reasoning) : undefined;
|
|
334
|
+
if (clampedReasoning && clampedReasoning !== "off") {
|
|
335
|
+
body.reasoning = {
|
|
336
|
+
effort: model.thinkingLevelMap?.[clampedReasoning] ?? clampedReasoning,
|
|
337
|
+
summary: "auto",
|
|
338
|
+
};
|
|
339
|
+
}
|
|
340
|
+
else if (model.thinkingLevelMap?.off !== null) {
|
|
341
|
+
body.reasoning = { effort: model.thinkingLevelMap?.off ?? "none" };
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return body;
|
|
345
|
+
}
|
|
346
|
+
function resolveTheClawBayCodexResponsesUrl(baseUrl) {
|
|
347
|
+
const normalized = baseUrl.replace(/\/+$/, "");
|
|
348
|
+
if (normalized.endsWith("/responses")) {
|
|
349
|
+
return normalized;
|
|
350
|
+
}
|
|
351
|
+
return `${normalized}/responses`;
|
|
352
|
+
}
|
|
353
|
+
async function* parseTheClawBaySse(response) {
|
|
354
|
+
if (!response.body) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
const reader = response.body.getReader();
|
|
358
|
+
const decoder = new TextDecoder();
|
|
359
|
+
let buffer = "";
|
|
360
|
+
try {
|
|
361
|
+
while (true) {
|
|
362
|
+
const { done, value } = await reader.read();
|
|
363
|
+
if (done) {
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
buffer += decoder.decode(value, { stream: true });
|
|
367
|
+
let index = buffer.indexOf("\n\n");
|
|
368
|
+
while (index !== -1) {
|
|
369
|
+
const chunk = buffer.slice(0, index);
|
|
370
|
+
buffer = buffer.slice(index + 2);
|
|
371
|
+
const data = chunk
|
|
372
|
+
.split("\n")
|
|
373
|
+
.filter((line) => line.startsWith("data:"))
|
|
374
|
+
.map((line) => line.slice(5).trim())
|
|
375
|
+
.join("\n")
|
|
376
|
+
.trim();
|
|
377
|
+
if (data && data !== "[DONE]") {
|
|
378
|
+
yield JSON.parse(data);
|
|
379
|
+
}
|
|
380
|
+
index = buffer.indexOf("\n\n");
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
finally {
|
|
385
|
+
try {
|
|
386
|
+
await reader.cancel();
|
|
387
|
+
}
|
|
388
|
+
catch {
|
|
389
|
+
// Ignore stream cleanup errors.
|
|
390
|
+
}
|
|
391
|
+
try {
|
|
392
|
+
reader.releaseLock();
|
|
393
|
+
}
|
|
394
|
+
catch {
|
|
395
|
+
// Ignore stream cleanup errors.
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
function isRecord(value) {
|
|
400
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
401
|
+
}
|
|
402
|
+
function getEventType(event) {
|
|
403
|
+
return typeof event.type === "string" ? event.type : undefined;
|
|
404
|
+
}
|
|
405
|
+
function getEventItem(event) {
|
|
406
|
+
return isRecord(event.item) ? event.item : undefined;
|
|
407
|
+
}
|
|
408
|
+
function getBlockIndex(output) {
|
|
409
|
+
return output.content.length - 1;
|
|
410
|
+
}
|
|
411
|
+
function pushGeneratedImageText(stream, output, filePath, revisedPrompt) {
|
|
412
|
+
const lines = [`Generated image saved to: ${pathToFileURL(filePath).href}`, `Path: ${filePath}`];
|
|
413
|
+
if (revisedPrompt) {
|
|
414
|
+
lines.push(`Revised prompt: ${revisedPrompt}`);
|
|
415
|
+
}
|
|
416
|
+
const text = lines.join("\n");
|
|
417
|
+
output.content.push({ type: "text", text });
|
|
418
|
+
const contentIndex = getBlockIndex(output);
|
|
419
|
+
stream.push({ type: "text_start", contentIndex, partial: output });
|
|
420
|
+
stream.push({ type: "text_delta", contentIndex, delta: text, partial: output });
|
|
421
|
+
stream.push({ type: "text_end", contentIndex, content: text, partial: output });
|
|
422
|
+
}
|
|
423
|
+
function readResponseUsage(response, output, model) {
|
|
424
|
+
if (!isRecord(response.usage)) {
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
const usage = response.usage;
|
|
428
|
+
const inputTokens = typeof usage.input_tokens === "number" ? usage.input_tokens : 0;
|
|
429
|
+
const outputTokens = typeof usage.output_tokens === "number" ? usage.output_tokens : 0;
|
|
430
|
+
const totalTokens = typeof usage.total_tokens === "number" ? usage.total_tokens : inputTokens + outputTokens;
|
|
431
|
+
const inputDetails = isRecord(usage.input_tokens_details) ? usage.input_tokens_details : undefined;
|
|
432
|
+
const cachedTokens = typeof inputDetails?.cached_tokens === "number" ? inputDetails.cached_tokens : 0;
|
|
433
|
+
output.usage = {
|
|
434
|
+
input: inputTokens - cachedTokens,
|
|
435
|
+
output: outputTokens,
|
|
436
|
+
cacheRead: cachedTokens,
|
|
437
|
+
cacheWrite: 0,
|
|
438
|
+
totalTokens,
|
|
439
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
|
|
440
|
+
};
|
|
441
|
+
calculateCost(model, output.usage);
|
|
442
|
+
}
|
|
443
|
+
function mapResponseStopReason(status) {
|
|
444
|
+
if (status === "incomplete") {
|
|
445
|
+
return "length";
|
|
446
|
+
}
|
|
447
|
+
if (status === "failed" || status === "cancelled") {
|
|
448
|
+
return "error";
|
|
449
|
+
}
|
|
450
|
+
return "stop";
|
|
451
|
+
}
|
|
452
|
+
async function processTheClawBayHostedImageStream(events, output, stream, model, options) {
|
|
453
|
+
let currentItem = null;
|
|
454
|
+
let currentBlock = null;
|
|
455
|
+
for await (const event of events) {
|
|
456
|
+
const eventType = getEventType(event);
|
|
457
|
+
if (eventType === "response.created" && isRecord(event.response) && typeof event.response.id === "string") {
|
|
458
|
+
output.responseId = event.response.id;
|
|
459
|
+
}
|
|
460
|
+
else if (eventType === "response.output_item.added") {
|
|
461
|
+
const item = getEventItem(event);
|
|
462
|
+
if (!item || typeof item.type !== "string") {
|
|
463
|
+
continue;
|
|
464
|
+
}
|
|
465
|
+
currentItem = item;
|
|
466
|
+
if (item.type === "reasoning") {
|
|
467
|
+
currentBlock = { type: "thinking", thinking: "" };
|
|
468
|
+
output.content.push(currentBlock);
|
|
469
|
+
stream.push({ type: "thinking_start", contentIndex: getBlockIndex(output), partial: output });
|
|
470
|
+
}
|
|
471
|
+
else if (item.type === "message") {
|
|
472
|
+
currentBlock = { type: "text", text: "" };
|
|
473
|
+
output.content.push(currentBlock);
|
|
474
|
+
stream.push({ type: "text_start", contentIndex: getBlockIndex(output), partial: output });
|
|
475
|
+
}
|
|
476
|
+
else if (item.type === "function_call") {
|
|
477
|
+
currentBlock = {
|
|
478
|
+
type: "toolCall",
|
|
479
|
+
id: `${String(item.call_id ?? "call")}|${String(item.id ?? "fc")}`,
|
|
480
|
+
name: String(item.name ?? ""),
|
|
481
|
+
arguments: {},
|
|
482
|
+
partialJson: typeof item.arguments === "string" ? item.arguments : "",
|
|
483
|
+
};
|
|
484
|
+
output.content.push(currentBlock);
|
|
485
|
+
stream.push({ type: "toolcall_start", contentIndex: getBlockIndex(output), partial: output });
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
else if (eventType === "response.content_part.added") {
|
|
489
|
+
if (currentItem?.type === "message" && isRecord(event.part)) {
|
|
490
|
+
const content = Array.isArray(currentItem.content) ? currentItem.content : [];
|
|
491
|
+
currentItem.content = [...content, event.part];
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
else if (eventType === "response.output_text.delta") {
|
|
495
|
+
if (currentItem?.type === "message" && currentBlock?.type === "text" && typeof event.delta === "string") {
|
|
496
|
+
currentBlock.text += event.delta;
|
|
497
|
+
stream.push({ type: "text_delta", contentIndex: getBlockIndex(output), delta: event.delta, partial: output });
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
else if (eventType === "response.output_text.done") {
|
|
501
|
+
if (currentItem?.type === "message" && currentBlock?.type === "text" && typeof event.text === "string") {
|
|
502
|
+
const delta = event.text.startsWith(currentBlock.text) ? event.text.slice(currentBlock.text.length) : event.text;
|
|
503
|
+
currentBlock.text = event.text;
|
|
504
|
+
if (delta) {
|
|
505
|
+
stream.push({ type: "text_delta", contentIndex: getBlockIndex(output), delta, partial: output });
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
else if (eventType === "response.reasoning_summary_text.delta") {
|
|
510
|
+
if (currentItem?.type === "reasoning" && currentBlock?.type === "thinking" && typeof event.delta === "string") {
|
|
511
|
+
currentBlock.thinking += event.delta;
|
|
512
|
+
stream.push({ type: "thinking_delta", contentIndex: getBlockIndex(output), delta: event.delta, partial: output });
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
else if (eventType === "response.function_call_arguments.delta") {
|
|
516
|
+
if (currentItem?.type === "function_call" && currentBlock?.type === "toolCall" && typeof event.delta === "string") {
|
|
517
|
+
currentBlock.partialJson = (currentBlock.partialJson ?? "") + event.delta;
|
|
518
|
+
currentBlock.arguments = parseStreamingJson(currentBlock.partialJson);
|
|
519
|
+
stream.push({ type: "toolcall_delta", contentIndex: getBlockIndex(output), delta: event.delta, partial: output });
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
else if (eventType === "response.function_call_arguments.done") {
|
|
523
|
+
if (currentItem?.type === "function_call" && currentBlock?.type === "toolCall" && typeof event.arguments === "string") {
|
|
524
|
+
const previous = currentBlock.partialJson ?? "";
|
|
525
|
+
currentBlock.partialJson = event.arguments;
|
|
526
|
+
currentBlock.arguments = parseStreamingJson(event.arguments || "{}");
|
|
527
|
+
const delta = event.arguments.startsWith(previous) ? event.arguments.slice(previous.length) : event.arguments;
|
|
528
|
+
if (delta) {
|
|
529
|
+
stream.push({ type: "toolcall_delta", contentIndex: getBlockIndex(output), delta, partial: output });
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
else if (eventType === "response.output_item.done") {
|
|
534
|
+
const item = getEventItem(event);
|
|
535
|
+
if (!item || typeof item.type !== "string") {
|
|
536
|
+
continue;
|
|
537
|
+
}
|
|
538
|
+
if (item.type === "message" && currentBlock?.type === "text") {
|
|
539
|
+
if (Array.isArray(item.content)) {
|
|
540
|
+
currentBlock.text = item.content
|
|
541
|
+
.map((contentItem) => (isRecord(contentItem) && typeof contentItem.text === "string" ? contentItem.text : ""))
|
|
542
|
+
.join("");
|
|
543
|
+
}
|
|
544
|
+
stream.push({ type: "text_end", contentIndex: getBlockIndex(output), content: currentBlock.text, partial: output });
|
|
545
|
+
currentBlock = null;
|
|
546
|
+
}
|
|
547
|
+
else if (item.type === "reasoning" && currentBlock?.type === "thinking") {
|
|
548
|
+
currentBlock.thinkingSignature = JSON.stringify(item);
|
|
549
|
+
stream.push({ type: "thinking_end", contentIndex: getBlockIndex(output), content: currentBlock.thinking, partial: output });
|
|
550
|
+
currentBlock = null;
|
|
551
|
+
}
|
|
552
|
+
else if (item.type === "function_call") {
|
|
553
|
+
if (currentBlock?.type === "toolCall") {
|
|
554
|
+
currentBlock.arguments = parseStreamingJson(currentBlock.partialJson || (typeof item.arguments === "string" ? item.arguments : "{}"));
|
|
555
|
+
delete currentBlock.partialJson;
|
|
556
|
+
stream.push({ type: "toolcall_end", contentIndex: getBlockIndex(output), toolCall: currentBlock, partial: output });
|
|
557
|
+
}
|
|
558
|
+
currentBlock = null;
|
|
559
|
+
}
|
|
560
|
+
else if (item.type === "image_generation_call") {
|
|
561
|
+
if (typeof item.id === "string" && typeof item.result === "string") {
|
|
562
|
+
const filePath = saveImageGenerationResult(options?.sessionId, item.id, item.result);
|
|
563
|
+
pushGeneratedImageText(stream, output, filePath, typeof item.revised_prompt === "string" ? item.revised_prompt : undefined);
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
else if (eventType === "response.completed" && isRecord(event.response)) {
|
|
568
|
+
if (typeof event.response.id === "string") {
|
|
569
|
+
output.responseId = event.response.id;
|
|
570
|
+
}
|
|
571
|
+
readResponseUsage(event.response, output, model);
|
|
572
|
+
output.stopReason = mapResponseStopReason(event.response.status);
|
|
573
|
+
if (output.content.some((block) => block.type === "toolCall") && output.stopReason === "stop") {
|
|
574
|
+
output.stopReason = "toolUse";
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
else if (eventType === "response.failed") {
|
|
578
|
+
const response = isRecord(event.response) ? event.response : undefined;
|
|
579
|
+
const error = isRecord(response?.error) ? response.error : undefined;
|
|
580
|
+
const message = typeof error?.message === "string" ? error.message : "TheClawBay response failed";
|
|
581
|
+
throw new Error(message);
|
|
582
|
+
}
|
|
583
|
+
else if (eventType === "error") {
|
|
584
|
+
throw new Error(typeof event.message === "string" ? event.message : "TheClawBay stream error");
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
function streamHostedImageGenerationTheClawBayCodexResponses(model, context, options) {
|
|
589
|
+
const stream = createAssistantMessageEventStream();
|
|
590
|
+
void (async () => {
|
|
591
|
+
const output = {
|
|
592
|
+
role: "assistant",
|
|
593
|
+
content: [],
|
|
594
|
+
api: model.api,
|
|
595
|
+
provider: model.provider,
|
|
596
|
+
model: model.id,
|
|
597
|
+
usage: {
|
|
598
|
+
input: 0,
|
|
599
|
+
output: 0,
|
|
600
|
+
cacheRead: 0,
|
|
601
|
+
cacheWrite: 0,
|
|
602
|
+
totalTokens: 0,
|
|
603
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
|
|
604
|
+
},
|
|
605
|
+
stopReason: "stop",
|
|
606
|
+
timestamp: Date.now(),
|
|
607
|
+
};
|
|
608
|
+
try {
|
|
609
|
+
const apiKey = options?.apiKey || process.env.THECLAWBAY_API_KEY;
|
|
610
|
+
if (!apiKey) {
|
|
611
|
+
throw new Error("No API key for provider: theclawbay");
|
|
612
|
+
}
|
|
613
|
+
let payload = buildHostedImageGenerationPayload(model, context, options);
|
|
614
|
+
const nextPayload = await options?.onPayload?.(payload, model);
|
|
615
|
+
if (nextPayload !== undefined) {
|
|
616
|
+
payload = nextPayload;
|
|
617
|
+
}
|
|
618
|
+
const response = await fetch(resolveTheClawBayCodexResponsesUrl(model.baseUrl), {
|
|
619
|
+
method: "POST",
|
|
620
|
+
headers: {
|
|
621
|
+
...buildTheClawBayHeaders(options),
|
|
622
|
+
Authorization: `Bearer ${apiKey}`,
|
|
623
|
+
"Content-Type": "application/json",
|
|
624
|
+
},
|
|
625
|
+
body: JSON.stringify(payload),
|
|
626
|
+
signal: options?.signal,
|
|
627
|
+
});
|
|
628
|
+
await options?.onResponse?.({ status: response.status, headers: Object.fromEntries(response.headers.entries()) }, model);
|
|
629
|
+
if (!response.ok) {
|
|
630
|
+
throw new Error(await response.text());
|
|
631
|
+
}
|
|
632
|
+
stream.push({ type: "start", partial: output });
|
|
633
|
+
await processTheClawBayHostedImageStream(parseTheClawBaySse(response), output, stream, model, options);
|
|
634
|
+
if (options?.signal?.aborted) {
|
|
635
|
+
throw new Error("Request was aborted");
|
|
636
|
+
}
|
|
637
|
+
if (output.stopReason === "error" || output.stopReason === "aborted") {
|
|
638
|
+
throw new Error(output.errorMessage || "TheClawBay response failed");
|
|
639
|
+
}
|
|
640
|
+
stream.push({ type: "done", reason: output.stopReason, message: output });
|
|
641
|
+
stream.end();
|
|
642
|
+
}
|
|
643
|
+
catch (error) {
|
|
644
|
+
for (const block of output.content) {
|
|
645
|
+
delete block.partialJson;
|
|
646
|
+
}
|
|
647
|
+
output.stopReason = options?.signal?.aborted ? "aborted" : "error";
|
|
648
|
+
output.errorMessage = error instanceof Error ? error.message : String(error);
|
|
649
|
+
stream.push({ type: "error", reason: output.stopReason, error: output });
|
|
650
|
+
stream.end();
|
|
651
|
+
}
|
|
652
|
+
})();
|
|
653
|
+
return stream;
|
|
654
|
+
}
|
|
188
655
|
function streamSimpleTheClawBayCodexResponses(model, context, options) {
|
|
189
656
|
const typedModel = model;
|
|
190
657
|
const typedContext = context;
|
|
@@ -195,6 +662,17 @@ function streamSimpleTheClawBayCodexResponses(model, context, options) {
|
|
|
195
662
|
...typedModel,
|
|
196
663
|
id: resolveUpstreamModelId(typedModel.id),
|
|
197
664
|
};
|
|
665
|
+
if (isHostedImageGenerationEnabled()) {
|
|
666
|
+
return streamHostedImageGenerationTheClawBayCodexResponses(remappedModel, typedContext, {
|
|
667
|
+
...typedOptions,
|
|
668
|
+
headers,
|
|
669
|
+
onPayload: async (payload, streamModel) => {
|
|
670
|
+
const transformedPayload = buildTheClawBayPayload(payload, typedContext, { includeHostedImageGeneration: true });
|
|
671
|
+
const nextPayload = await originalOnPayload?.(transformedPayload, streamModel);
|
|
672
|
+
return nextPayload === undefined ? transformedPayload : nextPayload;
|
|
673
|
+
},
|
|
674
|
+
});
|
|
675
|
+
}
|
|
198
676
|
return streamSimpleOpenAIResponses(remappedModel, typedContext, {
|
|
199
677
|
...typedOptions,
|
|
200
678
|
headers,
|
|
@@ -284,7 +762,13 @@ function refreshProviderModels(pi, apiKey) {
|
|
|
284
762
|
}
|
|
285
763
|
writeCachedModelIds(ids);
|
|
286
764
|
const models = buildOpenAIModels(ids);
|
|
287
|
-
|
|
765
|
+
try {
|
|
766
|
+
registerProviders(pi, models);
|
|
767
|
+
}
|
|
768
|
+
catch (error) {
|
|
769
|
+
console.warn(`[theclawbay] Skipped live model refresh: ${error instanceof Error ? error.message : String(error)}`);
|
|
770
|
+
return;
|
|
771
|
+
}
|
|
288
772
|
console.info(`[theclawbay] Registered ${models.length} OpenAI-compatible models from live model discovery.`);
|
|
289
773
|
});
|
|
290
774
|
}
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-clawbay",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.16",
|
|
4
4
|
"description": "TheClawBay provider extension for Pi Coding Agent - access GPT-5 and Codex models",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -13,19 +13,22 @@
|
|
|
13
13
|
},
|
|
14
14
|
"files": [
|
|
15
15
|
"dist",
|
|
16
|
-
"README.md"
|
|
16
|
+
"README.md",
|
|
17
|
+
"skills"
|
|
17
18
|
],
|
|
18
19
|
"scripts": {
|
|
19
20
|
"clean": "rm -rf dist",
|
|
20
21
|
"build": "npm run clean && tsc",
|
|
21
22
|
"check": "tsc --noEmit",
|
|
22
23
|
"prepare": "npm run build",
|
|
23
|
-
"prepack": "npm run build",
|
|
24
24
|
"test": "npm run build && node test/extension.test.mjs"
|
|
25
25
|
},
|
|
26
26
|
"pi": {
|
|
27
27
|
"extensions": [
|
|
28
28
|
"dist/index.js"
|
|
29
|
+
],
|
|
30
|
+
"skills": [
|
|
31
|
+
"skills"
|
|
29
32
|
]
|
|
30
33
|
},
|
|
31
34
|
"keywords": [
|
|
@@ -49,7 +52,7 @@
|
|
|
49
52
|
},
|
|
50
53
|
"homepage": "https://github.com/chrislopez24/pi-clawbay#readme",
|
|
51
54
|
"devDependencies": {
|
|
52
|
-
"@mariozechner/pi-
|
|
55
|
+
"@mariozechner/pi-coding-agent": "^0.73.0",
|
|
53
56
|
"@types/node": "^22.0.0",
|
|
54
57
|
"typescript": "^5.0.0"
|
|
55
58
|
},
|
|
@@ -60,5 +63,8 @@
|
|
|
60
63
|
"@mariozechner/pi-coding-agent": {
|
|
61
64
|
"optional": true
|
|
62
65
|
}
|
|
66
|
+
},
|
|
67
|
+
"dependencies": {
|
|
68
|
+
"@mariozechner/pi-ai": "^0.73.0"
|
|
63
69
|
}
|
|
64
70
|
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: theclawbay-imagegen
|
|
3
|
+
description: Use TheClawBay image generation through pi-clawbay's Codex-style hosted image_generation support. Use when the user asks to create, generate, draw, render, or save an image while using the theclawbay provider.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# TheClawBay Image Generation
|
|
7
|
+
|
|
8
|
+
Use this skill when the user asks for image generation with the `pi-clawbay` extension.
|
|
9
|
+
|
|
10
|
+
## Preferred flow
|
|
11
|
+
|
|
12
|
+
Use the extension's hosted Responses tool support:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
export THECLAWBAY_API_KEY=your-key
|
|
16
|
+
export PI_CLAWBAY_IMAGE_GENERATION=hosted
|
|
17
|
+
pi -e /path/to/pi-clawbay
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Select a text/Codex model, for example:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
/model theclawbay/gpt-5.5
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Then ask for an image naturally:
|
|
27
|
+
|
|
28
|
+
```text
|
|
29
|
+
Generate a minimalist black sailboat icon on a white background. No text.
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
When enabled, `pi-clawbay` sends TheClawBay the Codex-style hosted tool definition:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{ "type": "image_generation", "output_format": "png" }
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
The provider decodes `image_generation_call.result` and saves the PNG under:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
~/.pi/agent/generated_images/<session_id>/<image_generation_call_id>.png
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
The assistant response includes a `file://` URL, the filesystem path, and the revised prompt when one is returned.
|
|
45
|
+
|
|
46
|
+
If the generated image is needed in the project, copy it into the workspace. Leave the original generated-images artifact in place unless the user explicitly asks to delete it.
|
|
47
|
+
|
|
48
|
+
## Model guidance
|
|
49
|
+
|
|
50
|
+
- The current TheClawBay image model ID is `gpt-image-2`, not `gpt-image-2.0`.
|
|
51
|
+
- `gpt-image-2` and `gpt-image-1.5` are image API models and should not be selected with `/model`.
|
|
52
|
+
- Hosted image generation should be requested from a text/Codex model such as `gpt-5.5`.
|
|
53
|
+
|
|
54
|
+
## Transparent backgrounds
|
|
55
|
+
|
|
56
|
+
Do not claim native transparent output from `gpt-image-2`.
|
|
57
|
+
|
|
58
|
+
For transparent assets, use one of these approaches:
|
|
59
|
+
|
|
60
|
+
1. Generate with a flat chroma-key background, then remove the background with image processing.
|
|
61
|
+
2. If native transparency is required, ask the user before using the older `gpt-image-1.5` direct Images API path.
|
|
62
|
+
|
|
63
|
+
## Direct API fallback
|
|
64
|
+
|
|
65
|
+
If hosted image generation is disabled or unavailable, call TheClawBay's OpenAI-compatible Images API outside the Pi provider loop:
|
|
66
|
+
|
|
67
|
+
```http
|
|
68
|
+
POST https://api.theclawbay.com/v1/images/generations
|
|
69
|
+
Authorization: Bearer $THECLAWBAY_API_KEY
|
|
70
|
+
Content-Type: application/json
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Example payload:
|
|
74
|
+
|
|
75
|
+
```json
|
|
76
|
+
{
|
|
77
|
+
"model": "gpt-image-2",
|
|
78
|
+
"prompt": "A minimalist black sailboat icon on a white background. No text.",
|
|
79
|
+
"size": "1024x1024",
|
|
80
|
+
"quality": "low",
|
|
81
|
+
"output_format": "png"
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Use the direct API only as a fallback or when the user explicitly asks for programmatic image API usage.
|