@pixelbyte-software/pixcode 1.33.4 → 1.33.6
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/assets/{index-D0qriZVb.js → index-D6ErCuvV.js} +49 -49
- package/dist/index.html +1 -1
- package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js +44 -12
- package/dist-server/server/modules/providers/list/opencode/opencode-sessions.provider.js.map +1 -1
- package/dist-server/server/opencode-cli.js +26 -7
- package/dist-server/server/opencode-cli.js.map +1 -1
- package/dist-server/server/opencode-response-handler.js +19 -9
- package/dist-server/server/opencode-response-handler.js.map +1 -1
- package/dist-server/server/projects.js +111 -1
- package/dist-server/server/projects.js.map +1 -1
- package/dist-server/server/qwen-code-cli.js +4 -1
- package/dist-server/server/qwen-code-cli.js.map +1 -1
- package/dist-server/server/services/provider-models.js +172 -8
- package/dist-server/server/services/provider-models.js.map +1 -1
- package/dist-server/shared/modelConstants.js +30 -11
- package/dist-server/shared/modelConstants.js.map +1 -1
- package/package.json +1 -1
- package/server/modules/providers/list/opencode/opencode-sessions.provider.ts +37 -8
- package/server/opencode-cli.js +24 -7
- package/server/opencode-response-handler.js +17 -9
- package/server/projects.js +112 -0
- package/server/qwen-code-cli.js +4 -1
- package/server/services/provider-models.js +164 -8
- package/shared/modelConstants.js +34 -11
|
@@ -68,7 +68,10 @@ function normalizeList(list) {
|
|
|
68
68
|
seen.add(value);
|
|
69
69
|
const label = typeof item.label === 'string' && item.label.trim() ? item.label.trim() : value;
|
|
70
70
|
const source = item.source === 'api' ? 'api' : 'static';
|
|
71
|
-
|
|
71
|
+
const entry = { value, label, source };
|
|
72
|
+
if (typeof item.free === 'boolean')
|
|
73
|
+
entry.free = item.free;
|
|
74
|
+
out.push(entry);
|
|
72
75
|
}
|
|
73
76
|
return out;
|
|
74
77
|
}
|
|
@@ -106,8 +109,18 @@ async function discoverOpenAiCompat(apiKey, baseUrl, fallbackBase) {
|
|
|
106
109
|
const response = await fetch(endpoint, {
|
|
107
110
|
headers: { Authorization: `Bearer ${apiKey}` },
|
|
108
111
|
});
|
|
109
|
-
if (!response.ok)
|
|
112
|
+
if (!response.ok) {
|
|
113
|
+
// 401 specifically means our key is bad — but for codex/qwen/etc.
|
|
114
|
+
// users often log in via OAuth (`codex login`, `qwen auth`) which
|
|
115
|
+
// doesn't expose an OpenAI-compatible API key. Surface a clean
|
|
116
|
+
// "no live discovery available" rather than a scary 401 trace.
|
|
117
|
+
if (response.status === 401) {
|
|
118
|
+
const err = new Error('OpenAI-compatible /v1/models requires an API key. The static catalog is shown instead — that\'s expected when you signed in via OAuth (e.g. `codex login`).');
|
|
119
|
+
err.code = 'OAUTH_NO_API_KEY';
|
|
120
|
+
throw err;
|
|
121
|
+
}
|
|
110
122
|
throw new Error(`${endpoint} returned ${response.status}`);
|
|
123
|
+
}
|
|
111
124
|
const data = await response.json();
|
|
112
125
|
const rows = Array.isArray(data?.data) ? data.data : [];
|
|
113
126
|
return rows
|
|
@@ -118,6 +131,130 @@ async function discoverOpenAiCompat(apiKey, baseUrl, fallbackBase) {
|
|
|
118
131
|
source: 'api',
|
|
119
132
|
}));
|
|
120
133
|
}
|
|
134
|
+
/**
|
|
135
|
+
* Detect whether the user is authenticated via the provider's OAuth flow
|
|
136
|
+
* (codex login / qwen auth) so we can skip live model discovery silently
|
|
137
|
+
* — those flows don't surface a usable OpenAI-compatible API key, and the
|
|
138
|
+
* SDK calls the upstream APIs through its own internal auth path.
|
|
139
|
+
*/
|
|
140
|
+
async function hasProviderOauthAuth(provider) {
|
|
141
|
+
if (provider === 'codex') {
|
|
142
|
+
try {
|
|
143
|
+
await fs.access(path.join(os.homedir(), '.codex', 'auth.json'));
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (provider === 'qwen') {
|
|
151
|
+
try {
|
|
152
|
+
await fs.access(path.join(os.homedir(), '.qwen', 'oauth_creds.json'));
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* OpenCode is multi-provider — its "model" picker isn't a single API list,
|
|
163
|
+
* it's the union of every provider it can route to (Anthropic, OpenAI,
|
|
164
|
+
* Google, xAI, OpenRouter, OpenCode Zen, Ollama, etc.). The canonical
|
|
165
|
+
* catalog lives at https://models.dev/api.json (no auth, ~1.8 MB JSON, 115
|
|
166
|
+
* providers as of 2026-04). We pull that, filter to providers the user
|
|
167
|
+
* has authenticated with (read `~/.local/share/opencode/auth.json`) plus
|
|
168
|
+
* always include the OpenCode Zen tier (works without explicit auth on
|
|
169
|
+
* the free models), drop deprecated entries, and tag free models.
|
|
170
|
+
*/
|
|
171
|
+
async function discoverOpencode() {
|
|
172
|
+
const url = process.env.OPENCODE_MODELS_URL || 'https://models.dev/api.json';
|
|
173
|
+
const response = await fetch(url, {
|
|
174
|
+
// OpenCode itself caches this for hours; we cache for 6h via the
|
|
175
|
+
// outer wrapper so a single 7s fetch on cold start is acceptable.
|
|
176
|
+
signal: AbortSignal.timeout(15000),
|
|
177
|
+
});
|
|
178
|
+
if (!response.ok)
|
|
179
|
+
throw new Error(`models.dev/api.json returned ${response.status}`);
|
|
180
|
+
const data = await response.json();
|
|
181
|
+
if (!data || typeof data !== 'object')
|
|
182
|
+
throw new Error('models.dev returned a non-object payload');
|
|
183
|
+
// Read OpenCode's auth.json to know which providers the user can
|
|
184
|
+
// actually call. Missing file → only show always-free Zen.
|
|
185
|
+
const authedProviders = new Set(['opencode']);
|
|
186
|
+
try {
|
|
187
|
+
const authPath = path.join(os.homedir(), '.local', 'share', 'opencode', 'auth.json');
|
|
188
|
+
const raw = await fs.readFile(authPath, 'utf8');
|
|
189
|
+
const auth = JSON.parse(raw);
|
|
190
|
+
if (auth && typeof auth === 'object') {
|
|
191
|
+
for (const k of Object.keys(auth))
|
|
192
|
+
authedProviders.add(k);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch { /* no auth.json → only Zen free models surface */ }
|
|
196
|
+
// Common env-var providers OpenCode picks up automatically. If the user
|
|
197
|
+
// exported one in their shell, surface those models too even without
|
|
198
|
+
// auth.json. Mirrors the env list in opencode-auth.provider.ts.
|
|
199
|
+
const envProviderHints = {
|
|
200
|
+
anthropic: ['ANTHROPIC_API_KEY'],
|
|
201
|
+
openai: ['OPENAI_API_KEY'],
|
|
202
|
+
google: ['GOOGLE_GENERATIVE_AI_API_KEY', 'GEMINI_API_KEY'],
|
|
203
|
+
'google-vertex': ['GOOGLE_APPLICATION_CREDENTIALS'],
|
|
204
|
+
xai: ['XAI_API_KEY'],
|
|
205
|
+
groq: ['GROQ_API_KEY'],
|
|
206
|
+
cerebras: ['CEREBRAS_API_KEY'],
|
|
207
|
+
openrouter: ['OPENROUTER_API_KEY'],
|
|
208
|
+
};
|
|
209
|
+
for (const [providerId, envVars] of Object.entries(envProviderHints)) {
|
|
210
|
+
if (envVars.some((v) => process.env[v]?.trim()))
|
|
211
|
+
authedProviders.add(providerId);
|
|
212
|
+
}
|
|
213
|
+
const out = [];
|
|
214
|
+
for (const [providerId, providerCfg] of Object.entries(data)) {
|
|
215
|
+
if (!authedProviders.has(providerId))
|
|
216
|
+
continue;
|
|
217
|
+
if (!providerCfg || typeof providerCfg !== 'object')
|
|
218
|
+
continue;
|
|
219
|
+
const models = providerCfg.models;
|
|
220
|
+
if (!models || typeof models !== 'object')
|
|
221
|
+
continue;
|
|
222
|
+
const providerName = typeof providerCfg.name === 'string' && providerCfg.name.trim()
|
|
223
|
+
? providerCfg.name
|
|
224
|
+
: providerId;
|
|
225
|
+
for (const [modelId, modelCfg] of Object.entries(models)) {
|
|
226
|
+
if (!modelCfg || typeof modelCfg !== 'object')
|
|
227
|
+
continue;
|
|
228
|
+
// Skip deprecated entries from the default list — users can
|
|
229
|
+
// still hand-type them if they really need to.
|
|
230
|
+
if (modelCfg.status === 'deprecated')
|
|
231
|
+
continue;
|
|
232
|
+
const cost = modelCfg.cost && typeof modelCfg.cost === 'object' ? modelCfg.cost : null;
|
|
233
|
+
const free = !cost || (Number(cost.input) === 0 && Number(cost.output) === 0);
|
|
234
|
+
const ctx = modelCfg.limit?.context;
|
|
235
|
+
const ctxLabel = typeof ctx === 'number' && ctx > 0
|
|
236
|
+
? ` · ${ctx >= 1_000_000 ? `${(ctx / 1_000_000).toFixed(1)}M` : `${Math.round(ctx / 1000)}K`}`
|
|
237
|
+
: '';
|
|
238
|
+
const freeLabel = free ? ' · Free' : '';
|
|
239
|
+
const modelName = typeof modelCfg.name === 'string' && modelCfg.name.trim()
|
|
240
|
+
? modelCfg.name
|
|
241
|
+
: modelId;
|
|
242
|
+
out.push({
|
|
243
|
+
value: `${providerId}/${modelId}`,
|
|
244
|
+
label: `${providerName} · ${modelName}${ctxLabel}${freeLabel}`,
|
|
245
|
+
source: 'api',
|
|
246
|
+
free,
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
// Sort: free first (handy when the user is unauthed), then by label.
|
|
251
|
+
out.sort((a, b) => {
|
|
252
|
+
if (a.free !== b.free)
|
|
253
|
+
return a.free ? -1 : 1;
|
|
254
|
+
return a.label.localeCompare(b.label);
|
|
255
|
+
});
|
|
256
|
+
return out;
|
|
257
|
+
}
|
|
121
258
|
async function discoverGoogle(apiKey) {
|
|
122
259
|
// Google Generative Language API — public models list, API key as query.
|
|
123
260
|
const endpoint = `https://generativelanguage.googleapis.com/v1beta/models?key=${encodeURIComponent(apiKey)}`;
|
|
@@ -157,6 +294,22 @@ export async function getProviderModels(provider, opts = {}) {
|
|
|
157
294
|
fromCache: true,
|
|
158
295
|
};
|
|
159
296
|
}
|
|
297
|
+
// OpenCode is the odd one out: its catalog is models.dev, not a per-key
|
|
298
|
+
// API endpoint. Skip the credential plumbing and dispatch straight.
|
|
299
|
+
let liveModels = [];
|
|
300
|
+
let error;
|
|
301
|
+
if (provider === 'opencode') {
|
|
302
|
+
try {
|
|
303
|
+
liveModels = await discoverOpencode();
|
|
304
|
+
}
|
|
305
|
+
catch (err) {
|
|
306
|
+
error = err?.message || String(err);
|
|
307
|
+
}
|
|
308
|
+
const merged = mergeCatalogs(normalizeList(liveModels), staticCatalog);
|
|
309
|
+
const entry = { models: merged, error };
|
|
310
|
+
await saveCacheEntry(provider, entry).catch(() => { });
|
|
311
|
+
return { models: merged, fetchedAt: new Date().toISOString(), error, fromCache: false };
|
|
312
|
+
}
|
|
160
313
|
// Pick up credentials from Pixcode's UI store first, then fall back to
|
|
161
314
|
// the native env vars so a user who already exported ANTHROPIC_API_KEY
|
|
162
315
|
// (or authenticated Claude Code via OAuth — the SDK writes the key into
|
|
@@ -176,12 +329,17 @@ export async function getProviderModels(provider, opts = {}) {
|
|
|
176
329
|
}[provider];
|
|
177
330
|
const apiKey = creds?.apiKey || envKey;
|
|
178
331
|
const baseUrl = creds?.baseUrl || envBase || undefined;
|
|
179
|
-
let liveModels = [];
|
|
180
|
-
let error;
|
|
181
332
|
if (!apiKey) {
|
|
182
|
-
//
|
|
183
|
-
//
|
|
184
|
-
|
|
333
|
+
// Codex and Qwen support OAuth (`codex login`, `qwen auth`) which
|
|
334
|
+
// DOESN'T expose a usable API key — the SDK auths against the
|
|
335
|
+
// upstream API directly. Skip the discovery step silently in that
|
|
336
|
+
// case; the static catalog is the right answer.
|
|
337
|
+
const oauthOnly = await hasProviderOauthAuth(provider);
|
|
338
|
+
if (!oauthOnly) {
|
|
339
|
+
// Be explicit so the UI can surface a useful hint rather than just
|
|
340
|
+
// showing the static baseline with no reason given.
|
|
341
|
+
error = `No ${provider} API key configured. Save one in Settings > Agents > API Key, or sign in via the CLI (e.g. \`codex login\`).`;
|
|
342
|
+
}
|
|
185
343
|
}
|
|
186
344
|
else {
|
|
187
345
|
try {
|
|
@@ -199,7 +357,13 @@ export async function getProviderModels(provider, opts = {}) {
|
|
|
199
357
|
}
|
|
200
358
|
}
|
|
201
359
|
catch (err) {
|
|
202
|
-
|
|
360
|
+
// OAuth users get a clean message instead of a raw 401 stack.
|
|
361
|
+
if (err?.code === 'OAUTH_NO_API_KEY') {
|
|
362
|
+
error = err.message;
|
|
363
|
+
}
|
|
364
|
+
else {
|
|
365
|
+
error = err?.message || String(err);
|
|
366
|
+
}
|
|
203
367
|
}
|
|
204
368
|
}
|
|
205
369
|
const merged = mergeCatalogs(normalizeList(liveModels), staticCatalog);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-models.js","sourceRoot":"","sources":["../../../server/services/provider-models.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;AAC/E,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,UAAU;AAEnD,KAAK,UAAU,SAAS;IACpB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,IAAI;IAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,eAAe,CAAC,QAAQ;IACnC,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,QAAQ,EAAE,KAAK;IACzC,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IACpE,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,aAAa,CAAC,IAAI;IACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,SAAS;QAChD,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9F,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;QACxD,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,OAAO,EAAE,SAAS;IACrC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,gEAAgE;AAEhE,KAAK,UAAU,iBAAiB,CAAC,MAAM,EAAE,OAAO;IAC5C,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,2BAA2B,CAAC,GAAG,YAAY,CAAC;IAC9F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACnC,OAAO,EAAE;YACL,WAAW,EAAE,MAAM;YACnB,mBAAmB,EAAE,YAAY;SACpC;KACJ,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,IAAI;SACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,QAAQ,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,EAAE;QACX,KAAK,EAAE,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAC1F,MAAM,EAAE,KAAK;KAChB,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY;IAC7D,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,GAAG,SAAS,CAAC;IAC5E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACnC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE;KACjD,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,aAAa,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,IAAI;SACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,QAAQ,CAAC;SACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,EAAE;QACX,KAAK,EAAE,CAAC,CAAC,EAAE;QACX,MAAM,EAAE,KAAK;KAChB,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,MAAM;IAChC,yEAAyE;IACzE,MAAM,QAAQ,GAAG,+DAA+D,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;IAC7G,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,OAAO,IAAI;SACN,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SACxE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACP,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC3C,OAAO;YACH,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YACrF,MAAM,EAAE,KAAK;SAChB,CAAC;IACN,CAAC,CAAC,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE;IACvD,MAAM,EAAE,YAAY,GAAG,KAAK,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC;IACvD,MAAM,aAAa,GAAG,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzF,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,EAAE,SAAS;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,YAAY;QAC1D,CAAC,CAAC,KAAK,CAAC;IAEZ,IAAI,CAAC,YAAY,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAC/D,OAAO;YACH,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;YAClE,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,IAAI;SAClB,CAAC;IACN,CAAC;IAED,uEAAuE;IACvE,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG;QACX,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;QACrC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QACjC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY;QAC5D,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;KACrC,CAAC,QAAQ,CAAC,CAAC;IACZ,MAAM,OAAO,GAAG;QACZ,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;QACtC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QAClC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QACjC,MAAM,EAAE,SAAS;KACpB,CAAC,QAAQ,CAAC,CAAC;IACZ,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC;IACvC,MAAM,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,OAAO,IAAI,SAAS,CAAC;IAEvD,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,KAAK,CAAC;IACV,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,mEAAmE;QACnE,oDAAoD;QACpD,KAAK,GAAG,MAAM,QAAQ,wFAAwF,CAAC;IACnH,CAAC;SAAM,CAAC;QACJ,IAAI,CAAC;YACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACxB,UAAU,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC9B,UAAU,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,2BAA2B,CAAC,CAAC;YAC1F,CAAC;iBAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC7B,UAAU,GAAG,MAAM,oBAAoB,CACnC,MAAM,EACN,OAAO,EACP,wDAAwD,CAC3D,CAAC;YACN,CAAC;iBAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC/B,UAAU,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,KAAK,GAAG,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACxC,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAmB,CAAC,CAAC,CAAC;IACvE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAC5F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,QAAQ;IAClD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;IAChC,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;;QAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"provider-models.js","sourceRoot":"","sources":["../../../server/services/provider-models.js"],"names":[],"mappings":"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"}
|
|
@@ -86,24 +86,43 @@ export const QWEN_MODELS = {
|
|
|
86
86
|
DEFAULT: "qwen3-coder-plus",
|
|
87
87
|
};
|
|
88
88
|
/**
|
|
89
|
-
* OpenCode Models
|
|
89
|
+
* OpenCode Models — STATIC FALLBACK ONLY.
|
|
90
90
|
*
|
|
91
|
-
* OpenCode is multi-provider
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
*
|
|
95
|
-
*
|
|
91
|
+
* OpenCode is multi-provider and the live model catalog rotates often
|
|
92
|
+
* (Zen free models come and go; new Anthropic/OpenAI/Google models ship
|
|
93
|
+
* every few weeks). The runtime fetches the live catalog from
|
|
94
|
+
* `https://models.dev/api.json` via server/services/provider-models.js
|
|
95
|
+
* and merges it on top of this list — these entries only show when the
|
|
96
|
+
* fetch fails (offline install, firewalled host).
|
|
97
|
+
*
|
|
98
|
+
* Curated current free Zen tier + canonical paid picks. Update when the
|
|
99
|
+
* fallback feels stale, but the live fetch is the source of truth.
|
|
96
100
|
*/
|
|
97
101
|
export const OPENCODE_MODELS = {
|
|
98
102
|
OPTIONS: [
|
|
99
|
-
|
|
100
|
-
|
|
103
|
+
// OpenCode Zen — free tier (no charge, may rate-limit). The "limited
|
|
104
|
+
// time" Zen freebies rotate, so this is the safest small set.
|
|
105
|
+
{ value: "opencode/big-pickle", label: "OpenCode Zen · Big Pickle (Free)", free: true },
|
|
106
|
+
{ value: "opencode/minimax-m2.5-free", label: "OpenCode Zen · MiniMax M2.5 (Free)", free: true },
|
|
107
|
+
{ value: "opencode/hy3-preview-free", label: "OpenCode Zen · Hy3 Preview (Free)", free: true },
|
|
108
|
+
{ value: "opencode/ling-2.6-flash-free", label: "OpenCode Zen · Ling 2.6 Flash (Free)", free: true },
|
|
109
|
+
{ value: "opencode/nemotron-3-super-free", label: "OpenCode Zen · Nemotron 3 Super (Free)", free: true },
|
|
110
|
+
{ value: "opencode/gpt-5-nano", label: "OpenCode Zen · GPT-5 Nano (Free)", free: true },
|
|
111
|
+
// Anthropic — current flagship + cheap.
|
|
112
|
+
{ value: "anthropic/claude-opus-4-7", label: "Claude Opus 4.7 (Anthropic)" },
|
|
101
113
|
{ value: "anthropic/claude-sonnet-4-6", label: "Claude Sonnet 4.6 (Anthropic)" },
|
|
102
|
-
{ value: "anthropic/claude-
|
|
114
|
+
{ value: "anthropic/claude-haiku-4-5", label: "Claude Haiku 4.5 (Anthropic)" },
|
|
115
|
+
// OpenAI — current GPT-5 family.
|
|
103
116
|
{ value: "openai/gpt-5.4", label: "GPT-5.4 (OpenAI)" },
|
|
104
|
-
{ value: "
|
|
117
|
+
{ value: "openai/gpt-5.1-codex", label: "GPT-5.1 Codex (OpenAI)" },
|
|
118
|
+
// Google — current Gemini 3 family.
|
|
119
|
+
{ value: "google/gemini-3.1-pro-preview", label: "Gemini 3.1 Pro (Google)" },
|
|
120
|
+
{ value: "google/gemini-3-flash-preview", label: "Gemini 3 Flash (Google)" },
|
|
121
|
+
// xAI — fast & cheap coding model.
|
|
122
|
+
{ value: "xai/grok-code-fast-1", label: "Grok Code Fast 1 (xAI)" },
|
|
105
123
|
],
|
|
106
|
-
|
|
124
|
+
// Free Zen freebie that historically works for unauthed installs.
|
|
125
|
+
DEFAULT: "opencode/big-pickle",
|
|
107
126
|
};
|
|
108
127
|
/**
|
|
109
128
|
* Gemini Models
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelConstants.js","sourceRoot":"","sources":["../../shared/modelConstants.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"modelConstants.js","sourceRoot":"","sources":["../../shared/modelConstants.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixelbyte-software/pixcode",
|
|
3
|
-
"version": "1.33.
|
|
3
|
+
"version": "1.33.6",
|
|
4
4
|
"description": "Pixcode — a desktop and mobile web UI for Claude Code, Cursor CLI, Codex, Gemini CLI, Qwen Code, and OpenCode.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist-server/server/index.js",
|
|
@@ -87,15 +87,44 @@ export class OpencodeSessionsProvider implements IProviderSessions {
|
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
if (raw.type === 'error') {
|
|
90
|
+
// OpenCode `--format json` emits errors as
|
|
91
|
+
// { type:"error", error:{ name, data:{ message, statusCode?, isRetryable? } } }
|
|
92
|
+
// — `error` is always an object wrapper, never a plain string. Older
|
|
93
|
+
// builds put the message at `error.message`; current builds nest it
|
|
94
|
+
// under `error.data.message`. Map known error class names to friendly
|
|
95
|
+
// copy so the user gets actionable text instead of a class identifier.
|
|
90
96
|
const rawErr = raw.error ?? raw.message;
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
const errObj = rawErr && typeof rawErr === 'object' ? rawErr as Record<string, unknown> : null;
|
|
98
|
+
const data = errObj && typeof errObj.data === 'object' && errObj.data
|
|
99
|
+
? errObj.data as Record<string, unknown>
|
|
100
|
+
: null;
|
|
101
|
+
const dataMessage = data && typeof data.message === 'string' ? data.message : null;
|
|
102
|
+
const errMessage = errObj && typeof errObj.message === 'string' ? errObj.message : null;
|
|
103
|
+
const errName = errObj && typeof errObj.name === 'string' ? errObj.name : null;
|
|
104
|
+
const statusCode = data && typeof data.statusCode === 'number' ? data.statusCode : null;
|
|
105
|
+
|
|
106
|
+
let content: string;
|
|
107
|
+
if (typeof rawErr === 'string') {
|
|
108
|
+
content = rawErr;
|
|
109
|
+
} else if (dataMessage) {
|
|
110
|
+
content = dataMessage;
|
|
111
|
+
} else if (errMessage) {
|
|
112
|
+
content = errMessage;
|
|
113
|
+
} else if (errName) {
|
|
114
|
+
const friendly: Record<string, string> = {
|
|
115
|
+
ProviderModelNotFoundError: 'Model not found. Open Settings → Agents → OpenCode and pick a model from the live catalog (or run `opencode models --refresh`).',
|
|
116
|
+
ProviderInitError: 'OpenCode provider config is invalid. Try `opencode auth login` or remove `~/.local/share/opencode/auth.json` and re-authenticate.',
|
|
117
|
+
MessageOutputLengthError: 'OpenCode response was truncated by the model output cap. Try shortening the prompt or pick a model with a larger output limit.',
|
|
118
|
+
AI_APICallError: 'OpenCode upstream API call failed. Clearing `~/.cache/opencode` and retrying usually fixes this.',
|
|
119
|
+
APIError: statusCode === 429
|
|
120
|
+
? 'OpenCode hit a rate limit (429). Wait a few seconds and try again, or switch to a different model.'
|
|
121
|
+
: 'OpenCode upstream API error.',
|
|
122
|
+
};
|
|
123
|
+
content = friendly[errName] ?? errName;
|
|
124
|
+
} else {
|
|
125
|
+
try { content = JSON.stringify(rawErr); }
|
|
126
|
+
catch { content = 'Unknown OpenCode streaming error'; }
|
|
127
|
+
}
|
|
99
128
|
return [createNormalizedMessage({
|
|
100
129
|
id: baseId,
|
|
101
130
|
sessionId,
|
package/server/opencode-cli.js
CHANGED
|
@@ -275,17 +275,31 @@ async function spawnOpencode(command, options = {}, ws) {
|
|
|
275
275
|
});
|
|
276
276
|
|
|
277
277
|
opencodeProcess.stderr.on('data', (data) => {
|
|
278
|
-
const
|
|
278
|
+
const rawMsg = data.toString();
|
|
279
279
|
// Suppress known cosmetic noise.
|
|
280
|
-
if (
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
280
|
+
if (rawMsg.includes('[DEP0040]') ||
|
|
281
|
+
rawMsg.includes('DeprecationWarning') ||
|
|
282
|
+
rawMsg.includes('--trace-deprecation') ||
|
|
283
|
+
rawMsg.includes('punycode')) {
|
|
284
284
|
return;
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
+
// Pre-stream validation errors land on stderr as plain text BEFORE
|
|
288
|
+
// the JSON event stream opens (e.g. "Model must be in the format
|
|
289
|
+
// provider/model"). Map the common ones to actionable copy.
|
|
290
|
+
let friendly = rawMsg.trim();
|
|
291
|
+
if (/Model must be in the format/i.test(friendly)) {
|
|
292
|
+
friendly = 'Model id must use the `provider/model` format (e.g. `opencode/big-pickle` or `anthropic/claude-sonnet-4-5`). Pick one from Settings → Agents → OpenCode → Model.';
|
|
293
|
+
} else if (/ProviderModelNotFoundError/.test(friendly)) {
|
|
294
|
+
friendly = 'OpenCode does not recognize the selected model. Run `opencode models --refresh` or pick a different model from the picker.';
|
|
295
|
+
} else if (/ProviderInitError/.test(friendly)) {
|
|
296
|
+
friendly = 'OpenCode provider config is invalid. Try `opencode auth login`, or clear `~/.local/share/opencode/auth.json` and re-authenticate.';
|
|
297
|
+
} else if (/AI_APICallError/.test(friendly)) {
|
|
298
|
+
friendly = 'OpenCode upstream call failed. Clearing `~/.cache/opencode` and retrying usually resolves this.';
|
|
299
|
+
}
|
|
300
|
+
|
|
287
301
|
const socketSessionId = typeof ws.getSessionId === 'function' ? ws.getSessionId() : (capturedSessionId || sessionId);
|
|
288
|
-
ws.send(createNormalizedMessage({ kind: 'error', content:
|
|
302
|
+
ws.send(createNormalizedMessage({ kind: 'error', content: friendly, sessionId: socketSessionId, provider: 'opencode' }));
|
|
289
303
|
});
|
|
290
304
|
|
|
291
305
|
opencodeProcess.on('close', async (code) => {
|
|
@@ -346,10 +360,13 @@ async function spawnOpencode(command, options = {}, ws) {
|
|
|
346
360
|
const installed = await providerAuthService.isProviderInstalled('opencode');
|
|
347
361
|
const errorContent = !installed
|
|
348
362
|
? 'OpenCode CLI is not installed. Install it from the Settings → Agents → OpenCode tab, or run: npm install -g opencode-ai'
|
|
349
|
-
: error
|
|
363
|
+
: (error?.message || String(error));
|
|
350
364
|
|
|
351
365
|
const errorSessionId = typeof ws.getSessionId === 'function' ? ws.getSessionId() : finalSessionId;
|
|
352
366
|
ws.send(createNormalizedMessage({ kind: 'error', content: errorContent, sessionId: errorSessionId, provider: 'opencode' }));
|
|
367
|
+
// Always emit `complete` so the UI's "Processing..." state clears
|
|
368
|
+
// even when spawn fails (ENOENT, EACCES) and `close` never fires.
|
|
369
|
+
ws.send(createNormalizedMessage({ kind: 'complete', exitCode: 1, isNewSession: !sessionId && !!command, sessionId: errorSessionId, provider: 'opencode' }));
|
|
353
370
|
notifyTerminalState({ error });
|
|
354
371
|
|
|
355
372
|
reject(error);
|
|
@@ -45,25 +45,33 @@ class OpencodeResponseHandler {
|
|
|
45
45
|
return;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
// OpenCode emits
|
|
49
|
-
//
|
|
50
|
-
|
|
48
|
+
// OpenCode emits assistant text as either a top-level `text` event
|
|
49
|
+
// (current `--format json` shape: `{ type: "text", part: { text } }`)
|
|
50
|
+
// or as `message`/`part` legacy shapes from earlier builds. Cover all
|
|
51
|
+
// three so we don't drop tokens on a CLI version we haven't matched.
|
|
52
|
+
if (event.type === 'text' && event.part && typeof event.part.text === 'string') {
|
|
53
|
+
if (this.onContentFragment && event.part.text) this.onContentFragment(event.part.text);
|
|
54
|
+
} else if (event.type === 'message' && event.role === 'assistant') {
|
|
51
55
|
const content = event.content || event.text || '';
|
|
52
56
|
if (this.onContentFragment && content) this.onContentFragment(content);
|
|
53
57
|
} else if (event.type === 'part' && event.part_type === 'text') {
|
|
54
58
|
const content = event.text || event.content || '';
|
|
55
59
|
if (this.onContentFragment && content) this.onContentFragment(content);
|
|
56
60
|
} else if (event.type === 'tool_use' || event.type === 'tool-use' || event.type === 'tool.start') {
|
|
61
|
+
// Tool-use shape on `--format json`: `{ type:"tool_use", part:{ callID, tool, state:{ input } } }`
|
|
62
|
+
const part = event.part || event;
|
|
57
63
|
if (this.onToolUse) this.onToolUse({
|
|
58
|
-
tool_id:
|
|
59
|
-
tool_name:
|
|
60
|
-
parameters:
|
|
64
|
+
tool_id: part.callID || part.id || event.tool_id,
|
|
65
|
+
tool_name: part.tool || part.name || event.tool_name,
|
|
66
|
+
parameters: part.state?.input || part.input || event.parameters || {},
|
|
61
67
|
});
|
|
62
68
|
} else if (event.type === 'tool_result' || event.type === 'tool-result' || event.type === 'tool.end') {
|
|
69
|
+
const part = event.part || event;
|
|
70
|
+
const state = part.state || {};
|
|
63
71
|
if (this.onToolResult) this.onToolResult({
|
|
64
|
-
tool_id:
|
|
65
|
-
output: event.output ?? event.result ?? '',
|
|
66
|
-
status: event.status || (event.isError ? 'error' : 'ok'),
|
|
72
|
+
tool_id: part.callID || part.id || event.tool_id,
|
|
73
|
+
output: state.output ?? part.output ?? event.output ?? event.result ?? '',
|
|
74
|
+
status: state.status || event.status || (event.isError ? 'error' : 'ok'),
|
|
67
75
|
});
|
|
68
76
|
}
|
|
69
77
|
|