bazilion 0.12.0 → 0.12.2
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 +3 -3
- package/dist/cli.js +20 -14
- package/dist/cli.js.map +1 -1
- package/dist/daemon.js +259 -197
- package/dist/daemon.js.map +1 -1
- package/dist/web/client/assets/{ProductionTeamPolicyEditor-CSL3W7XM.js → ProductionTeamPolicyEditor-CsWpTsy6.js} +1 -1
- package/dist/web/client/assets/{ProfileCommunicationEditor-CwU0QkmE.js → ProfileCommunicationEditor-C43HvUe-.js} +1 -1
- package/dist/web/client/assets/{TeamTabs-C1Hakkff.js → TeamTabs-DvqWieCq.js} +1 -1
- package/dist/web/client/assets/{TemplatesTabs-klEydJ8-.js → TemplatesTabs-6Jd_xQj7.js} +1 -1
- package/dist/web/client/assets/{_id-e4u7dmBb.js → _id-AOAT0H_5.js} +1 -1
- package/dist/web/client/assets/{_id-wkjjWLz0.js → _id-BUuz7Drv.js} +1 -1
- package/dist/web/client/assets/{_id-BOC7ioJu.js → _id-BegmVRmT.js} +1 -1
- package/dist/web/client/assets/{_id-CnVq-rED.js → _id-BrA4Crh_.js} +1 -1
- package/dist/web/client/assets/{activity-uqhwzmiy.js → activity-n0Fw9_w3.js} +1 -1
- package/dist/web/client/assets/{agents-FaQtkAWs.js → agents-B33VQtbl.js} +1 -1
- package/dist/web/client/assets/{agents-B2usE-L_.js → agents-C50pdxp7.js} +1 -1
- package/dist/web/client/assets/{approvals-DqLE6ttw.js → approvals-DVW0hX8h.js} +1 -1
- package/dist/web/client/assets/{attention-CkGozYnJ.js → attention-B2490jcN.js} +1 -1
- package/dist/web/client/assets/chevron-down-B0aNNOyn.js +1 -0
- package/dist/web/client/assets/{config-xrXoDEWM.js → config-CMMxxeX2.js} +2 -2
- package/dist/web/client/assets/{context-ZWqx3uiC.js → context-DcFzsfZ3.js} +1 -1
- package/dist/web/client/assets/{inbox-BoIvl9ZF.js → inbox-Bn1GbUsJ.js} +1 -1
- package/dist/web/client/assets/{index-nb2MV8X1.js → index-3nrK5iFr.js} +2 -2
- package/dist/web/client/assets/{learning-6_oYn1l7.js → learning-BUX1MFu2.js} +1 -1
- package/dist/web/client/assets/{login-DM1ytxQL.js → login-CMWpGDKv.js} +1 -1
- package/dist/web/client/assets/{mcp-CetZbyUh.js → mcp-lZV08dqc.js} +1 -1
- package/dist/web/client/assets/{members-DdqWtwZd.js → members-DAeaY2Cy.js} +1 -1
- package/dist/web/client/assets/{memory-FNrxFHmC.js → memory-HmMWxxdF.js} +1 -1
- package/dist/web/client/assets/plus-CPzRJg1V.js +1 -0
- package/dist/web/client/assets/{policy-BKPejYRI.js → policy-DaijITy7.js} +1 -1
- package/dist/web/client/assets/{routes-CH1ZTTo-.js → routes-BNk270AM.js} +1 -1
- package/dist/web/client/assets/{services-zk9SqN06.js → services-DtrpJrdo.js} +1 -1
- package/dist/web/client/assets/{skills-tXDpomHW.js → skills-Cv93A3P3.js} +1 -1
- package/dist/web/client/assets/{teams-D1c8zlxs.js → teams-CCFnSNKi.js} +1 -1
- package/dist/web/client/assets/{teams-BZYjekBN.js → teams-D92R9Pb7.js} +1 -1
- package/dist/web/client/assets/{telegram-DCe1CWMt.js → telegram-BF1vdgDB.js} +1 -1
- package/dist/web/client/assets/{tokens-DAPjRS0N.js → tokens-BXj6hWW-.js} +1 -1
- package/dist/web/client/assets/{triggers-D8R-5guA.js → triggers-NT24i4hZ.js} +1 -1
- package/dist/web/client/assets/{welcome-CuK0shDJ.js → welcome-D0cy68eZ.js} +1 -1
- package/dist/web/server/assets/{_tanstack-start-manifest_v-fLsYERQ-.js → _tanstack-start-manifest_v-BGDBdnUs.js} +53 -53
- package/dist/web/server/assets/{config-TeIoyYYc.js → config-1w2GiJUn.js} +1 -1
- package/dist/web/server/assets/{config-D2LAsud2.js → config-BmixCpz-.js} +17 -15
- package/dist/web/server/assets/{router-CQuj7553.js → router-CIVjTgNp.js} +2 -2
- package/dist/web/server/assets/{welcome-IYHGurWx.js → welcome-DDB11L5j.js} +2 -2
- package/dist/web/server/server.js +2 -2
- package/dist/worker.js +198 -135
- package/dist/worker.js.map +1 -1
- package/package.json +6 -6
- package/dist/web/client/assets/chevron-down-CJk0zGNT.js +0 -1
- package/dist/web/client/assets/plus-C3GroITC.js +0 -1
package/dist/worker.js
CHANGED
|
@@ -279,6 +279,20 @@ var SERVICES = [
|
|
|
279
279
|
hint: "MiniMax M2/M3 family via the China endpoint",
|
|
280
280
|
fields: [{ envVar: "MINIMAX_CN_API_KEY", kind: "secret", label: "API key" }]
|
|
281
281
|
},
|
|
282
|
+
{
|
|
283
|
+
id: "qwen-token-plan",
|
|
284
|
+
displayName: "Qwen Token Plan",
|
|
285
|
+
category: "provider",
|
|
286
|
+
hint: "Coding-model subscription endpoint in Singapore",
|
|
287
|
+
fields: [{ envVar: "QWEN_TOKEN_PLAN_API_KEY", kind: "secret", label: "API key" }]
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
id: "qwen-token-plan-cn",
|
|
291
|
+
displayName: "Qwen Token Plan (CN)",
|
|
292
|
+
category: "provider",
|
|
293
|
+
hint: "Coding-model subscription endpoint in China",
|
|
294
|
+
fields: [{ envVar: "QWEN_TOKEN_PLAN_CN_API_KEY", kind: "secret", label: "API key" }]
|
|
295
|
+
},
|
|
282
296
|
{
|
|
283
297
|
id: "xiaomi",
|
|
284
298
|
displayName: "Xiaomi MiMo",
|
|
@@ -1177,37 +1191,142 @@ function piMessagesToProviderView(messages) {
|
|
|
1177
1191
|
import { existsSync as existsSync13, mkdirSync as mkdirSync5, readdirSync as readdirSync8, statSync as statSync5 } from "fs";
|
|
1178
1192
|
import { basename as basename3, join as join18 } from "path";
|
|
1179
1193
|
import {
|
|
1180
|
-
AuthStorage,
|
|
1181
1194
|
createAgentSession,
|
|
1182
|
-
|
|
1183
|
-
ModelRegistry,
|
|
1195
|
+
DefaultResourceLoader,
|
|
1184
1196
|
SessionManager,
|
|
1185
1197
|
SettingsManager
|
|
1186
1198
|
} from "@earendil-works/pi-coding-agent";
|
|
1187
1199
|
|
|
1188
|
-
// ../daemon/src/runtime/providers/pi-
|
|
1189
|
-
import {
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1200
|
+
// ../daemon/src/runtime/providers/pi-runtime.ts
|
|
1201
|
+
import { InMemoryCredentialStore } from "@earendil-works/pi-ai";
|
|
1202
|
+
import { ModelRuntime } from "@earendil-works/pi-coding-agent";
|
|
1203
|
+
var PROVIDER_ALIASES = {
|
|
1204
|
+
bedrock: "amazon-bedrock",
|
|
1205
|
+
"azure-openai": "azure-openai-responses"
|
|
1206
|
+
};
|
|
1207
|
+
var LOCAL_PROVIDERS = {
|
|
1208
|
+
lmstudio: {
|
|
1209
|
+
baseUrl: "http://127.0.0.1:1234/v1",
|
|
1210
|
+
apiKey: "lm-studio",
|
|
1211
|
+
authHeader: false
|
|
1212
|
+
},
|
|
1213
|
+
ollama: { baseUrl: "http://127.0.0.1:11434/v1", apiKey: "ollama", authHeader: false },
|
|
1214
|
+
llamacpp: { baseUrl: "http://127.0.0.1:8080/v1", apiKey: "no-key", authHeader: true }
|
|
1215
|
+
};
|
|
1216
|
+
var API_KEY_ENV = {
|
|
1217
|
+
anthropic: ["ANTHROPIC_OAUTH_TOKEN", "ANTHROPIC_API_KEY"],
|
|
1218
|
+
openai: ["OPENAI_API_KEY"],
|
|
1219
|
+
google: ["GEMINI_API_KEY"],
|
|
1220
|
+
"azure-openai": ["AZURE_OPENAI_API_KEY"],
|
|
1221
|
+
mistral: ["MISTRAL_API_KEY"],
|
|
1222
|
+
groq: ["GROQ_API_KEY"],
|
|
1223
|
+
cerebras: ["CEREBRAS_API_KEY"],
|
|
1224
|
+
xai: ["XAI_API_KEY"],
|
|
1225
|
+
zai: ["ZAI_API_KEY"],
|
|
1226
|
+
huggingface: ["HF_TOKEN"],
|
|
1227
|
+
openrouter: ["OPENROUTER_API_KEY"],
|
|
1228
|
+
"vercel-ai-gateway": ["AI_GATEWAY_API_KEY"],
|
|
1229
|
+
deepseek: ["DEEPSEEK_API_KEY"],
|
|
1230
|
+
fireworks: ["FIREWORKS_API_KEY"],
|
|
1231
|
+
together: ["TOGETHER_API_KEY"],
|
|
1232
|
+
moonshotai: ["MOONSHOT_API_KEY"],
|
|
1233
|
+
"moonshotai-cn": ["MOONSHOT_CN_API_KEY"],
|
|
1234
|
+
"kimi-coding": ["KIMI_API_KEY"],
|
|
1235
|
+
minimax: ["MINIMAX_API_KEY"],
|
|
1236
|
+
"minimax-cn": ["MINIMAX_CN_API_KEY"],
|
|
1237
|
+
"qwen-token-plan": ["QWEN_TOKEN_PLAN_API_KEY"],
|
|
1238
|
+
"qwen-token-plan-cn": ["QWEN_TOKEN_PLAN_CN_API_KEY"],
|
|
1239
|
+
xiaomi: ["XIAOMI_API_KEY"],
|
|
1240
|
+
"xiaomi-token-plan-ams": ["XIAOMI_TOKEN_PLAN_AMS_API_KEY"],
|
|
1241
|
+
"xiaomi-token-plan-cn": ["XIAOMI_TOKEN_PLAN_CN_API_KEY"],
|
|
1242
|
+
"xiaomi-token-plan-sgp": ["XIAOMI_TOKEN_PLAN_SGP_API_KEY"],
|
|
1243
|
+
"ant-ling": ["ANT_LING_API_KEY"],
|
|
1244
|
+
nvidia: ["NVIDIA_API_KEY"],
|
|
1245
|
+
opencode: ["OPENCODE_API_KEY"],
|
|
1246
|
+
"opencode-go": ["OPENCODE_GO_API_KEY"],
|
|
1247
|
+
"zai-coding-cn": ["ZAI_CODING_CN_API_KEY"],
|
|
1248
|
+
"github-copilot": ["COPILOT_GITHUB_TOKEN"],
|
|
1249
|
+
"cloudflare-ai-gateway": ["CLOUDFLARE_API_KEY"],
|
|
1250
|
+
"cloudflare-workers-ai": ["CLOUDFLARE_API_KEY"],
|
|
1251
|
+
lmstudio: ["LMSTUDIO_API_KEY"],
|
|
1252
|
+
ollama: ["OLLAMA_API_KEY"],
|
|
1253
|
+
llamacpp: ["LLAMACPP_API_KEY"]
|
|
1254
|
+
};
|
|
1255
|
+
var PROVIDER_ENV = {
|
|
1256
|
+
bedrock: [
|
|
1257
|
+
"AWS_PROFILE",
|
|
1258
|
+
"AWS_BEARER_TOKEN_BEDROCK",
|
|
1259
|
+
"AWS_ACCESS_KEY_ID",
|
|
1260
|
+
"AWS_SECRET_ACCESS_KEY",
|
|
1261
|
+
"AWS_SESSION_TOKEN",
|
|
1262
|
+
"AWS_REGION",
|
|
1263
|
+
"AWS_DEFAULT_REGION"
|
|
1264
|
+
],
|
|
1265
|
+
"google-vertex": [
|
|
1266
|
+
"GOOGLE_CLOUD_PROJECT",
|
|
1267
|
+
"GOOGLE_CLOUD_LOCATION",
|
|
1268
|
+
"GOOGLE_APPLICATION_CREDENTIALS"
|
|
1269
|
+
],
|
|
1270
|
+
"cloudflare-ai-gateway": ["CLOUDFLARE_API_KEY", "CLOUDFLARE_ACCOUNT_ID", "CLOUDFLARE_GATEWAY_ID"],
|
|
1271
|
+
"cloudflare-workers-ai": ["CLOUDFLARE_API_KEY", "CLOUDFLARE_ACCOUNT_ID"]
|
|
1272
|
+
};
|
|
1273
|
+
function piProviderName(providerName) {
|
|
1274
|
+
return PROVIDER_ALIASES[providerName] ?? providerName;
|
|
1275
|
+
}
|
|
1276
|
+
function providerApiKey(providerName, env) {
|
|
1277
|
+
for (const name of API_KEY_ENV[providerName] ?? []) {
|
|
1278
|
+
const value = env[name];
|
|
1279
|
+
if (value) return value;
|
|
1280
|
+
}
|
|
1281
|
+
return LOCAL_PROVIDERS[providerName]?.apiKey;
|
|
1282
|
+
}
|
|
1283
|
+
function providerBaseUrl(providerName, env) {
|
|
1195
1284
|
switch (providerName) {
|
|
1196
1285
|
case "lmstudio":
|
|
1197
|
-
return
|
|
1286
|
+
return env.LMSTUDIO_URL ?? LOCAL_PROVIDERS.lmstudio?.baseUrl;
|
|
1198
1287
|
case "ollama":
|
|
1199
|
-
return
|
|
1288
|
+
return env.OLLAMA_URL ?? LOCAL_PROVIDERS.ollama?.baseUrl;
|
|
1289
|
+
case "llamacpp":
|
|
1290
|
+
return env.LLAMACPP_URL ?? LOCAL_PROVIDERS.llamacpp?.baseUrl;
|
|
1291
|
+
case "vercel-ai-gateway":
|
|
1292
|
+
return env.AI_GATEWAY_BASE_URL;
|
|
1293
|
+
default:
|
|
1294
|
+
return void 0;
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
function providerCredentialEnv(providerName, env) {
|
|
1298
|
+
const result = {};
|
|
1299
|
+
for (const name of PROVIDER_ENV[providerName] ?? []) {
|
|
1300
|
+
const value = env[name];
|
|
1301
|
+
if (value !== void 0) result[name] = value;
|
|
1302
|
+
}
|
|
1303
|
+
return Object.keys(result).length > 0 ? result : void 0;
|
|
1304
|
+
}
|
|
1305
|
+
function fallbackApi(providerName) {
|
|
1306
|
+
switch (providerName) {
|
|
1307
|
+
case "anthropic":
|
|
1308
|
+
return "anthropic-messages";
|
|
1309
|
+
case "google":
|
|
1310
|
+
return "google-generative-ai";
|
|
1311
|
+
case "google-vertex":
|
|
1312
|
+
return "google-vertex";
|
|
1313
|
+
case "azure-openai":
|
|
1314
|
+
return "azure-openai-responses";
|
|
1315
|
+
case "bedrock":
|
|
1316
|
+
return "bedrock-converse-stream";
|
|
1317
|
+
case "openai-codex":
|
|
1318
|
+
return "openai-codex-responses";
|
|
1200
1319
|
default:
|
|
1201
|
-
return "";
|
|
1320
|
+
return "openai-completions";
|
|
1202
1321
|
}
|
|
1203
1322
|
}
|
|
1204
|
-
function
|
|
1323
|
+
function fallbackPiModel(providerName, modelId, baseUrl) {
|
|
1205
1324
|
return {
|
|
1206
1325
|
id: modelId,
|
|
1207
1326
|
name: modelId,
|
|
1208
|
-
api:
|
|
1209
|
-
provider:
|
|
1210
|
-
baseUrl:
|
|
1327
|
+
api: fallbackApi(providerName),
|
|
1328
|
+
provider: piProviderName(providerName),
|
|
1329
|
+
baseUrl: baseUrl ?? "",
|
|
1211
1330
|
reasoning: false,
|
|
1212
1331
|
input: ["text"],
|
|
1213
1332
|
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
@@ -1215,24 +1334,50 @@ function buildModelLiteral(cfg, modelId) {
|
|
|
1215
1334
|
maxTokens: 4096
|
|
1216
1335
|
};
|
|
1217
1336
|
}
|
|
1218
|
-
function
|
|
1219
|
-
const
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1337
|
+
async function createBazilionPiRuntime(options) {
|
|
1338
|
+
const providerName = options.providerName;
|
|
1339
|
+
const canonicalName = piProviderName(providerName);
|
|
1340
|
+
const credentials = new InMemoryCredentialStore();
|
|
1341
|
+
const apiKey = options.apiKey ?? providerApiKey(providerName, options.env);
|
|
1342
|
+
const credentialEnv = providerCredentialEnv(providerName, options.env);
|
|
1343
|
+
if (apiKey || credentialEnv) {
|
|
1344
|
+
await credentials.modify(canonicalName, async () => ({
|
|
1345
|
+
type: "api_key",
|
|
1346
|
+
...apiKey ? { key: apiKey } : {},
|
|
1347
|
+
...credentialEnv ? { env: credentialEnv } : {}
|
|
1348
|
+
}));
|
|
1349
|
+
}
|
|
1350
|
+
const runtime = await ModelRuntime.create({ credentials, modelsPath: null });
|
|
1351
|
+
const local = LOCAL_PROVIDERS[providerName];
|
|
1352
|
+
const baseUrl = options.baseUrl ?? providerBaseUrl(providerName, options.env);
|
|
1353
|
+
if (local) {
|
|
1354
|
+
const modelId = options.modelId ?? "model-name";
|
|
1355
|
+
const model = fallbackPiModel(providerName, modelId, baseUrl ?? local.baseUrl);
|
|
1356
|
+
runtime.registerProvider(canonicalName, {
|
|
1357
|
+
baseUrl: baseUrl ?? local.baseUrl,
|
|
1358
|
+
api: "openai-completions",
|
|
1359
|
+
authHeader: local.authHeader,
|
|
1360
|
+
apiKey: apiKey ?? local.apiKey,
|
|
1361
|
+
models: [model]
|
|
1362
|
+
});
|
|
1363
|
+
} else if (baseUrl) {
|
|
1364
|
+
runtime.registerProvider(canonicalName, { baseUrl });
|
|
1230
1365
|
}
|
|
1231
|
-
return
|
|
1366
|
+
return runtime;
|
|
1367
|
+
}
|
|
1368
|
+
function resolvePiModel(runtime, providerName, modelId, baseUrl) {
|
|
1369
|
+
const known = runtime.getModel(piProviderName(providerName), modelId);
|
|
1370
|
+
if (known) return baseUrl ? { ...known, baseUrl } : known;
|
|
1371
|
+
return fallbackPiModel(providerName, modelId, baseUrl);
|
|
1232
1372
|
}
|
|
1233
1373
|
|
|
1234
1374
|
// ../daemon/src/runtime/auth/openai-codex.ts
|
|
1235
|
-
import {
|
|
1375
|
+
import { openaiCodexProvider } from "@earendil-works/pi-ai/providers/openai-codex";
|
|
1376
|
+
|
|
1377
|
+
// ../daemon/src/runtime/providers/pi-adapter.ts
|
|
1378
|
+
import {
|
|
1379
|
+
Type
|
|
1380
|
+
} from "@earendil-works/pi-ai";
|
|
1236
1381
|
|
|
1237
1382
|
// ../daemon/src/runtime/session/prompt.ts
|
|
1238
1383
|
import { existsSync as existsSync10, readdirSync as readdirSync6, readFileSync as readFileSync9 } from "fs";
|
|
@@ -3713,30 +3858,16 @@ async function createBazilionSession(opts) {
|
|
|
3713
3858
|
if (enabledProviders.size > 0 && !enabledProviders.has(providerName)) {
|
|
3714
3859
|
throw new Error(`${providerName} provider is disabled \u2014 enable it on the /config page`);
|
|
3715
3860
|
}
|
|
3716
|
-
const
|
|
3717
|
-
const
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
},
|
|
3861
|
+
const apiKey = opts.apiKey ?? providerApiKey(providerName, env);
|
|
3862
|
+
const baseUrl = providerBaseUrl(providerName, env);
|
|
3863
|
+
const modelRuntime = await createBazilionPiRuntime({
|
|
3864
|
+
providerName,
|
|
3865
|
+
env,
|
|
3866
|
+
...apiKey ? { apiKey } : {},
|
|
3867
|
+
...baseUrl ? { baseUrl } : {},
|
|
3724
3868
|
modelId
|
|
3725
|
-
);
|
|
3726
|
-
const
|
|
3727
|
-
const authStorage = AuthStorage.inMemory();
|
|
3728
|
-
if (apiKey) {
|
|
3729
|
-
authStorage.setRuntimeApiKey(piProviderName, apiKey);
|
|
3730
|
-
}
|
|
3731
|
-
const modelRegistry = ModelRegistry.inMemory(authStorage);
|
|
3732
|
-
if (providerName === "lmstudio" || providerName === "ollama") {
|
|
3733
|
-
modelRegistry.registerProvider(piProviderName, {
|
|
3734
|
-
baseUrl: model.baseUrl,
|
|
3735
|
-
api: "openai-completions",
|
|
3736
|
-
authHeader: false,
|
|
3737
|
-
apiKey: apiKey ?? "dummy"
|
|
3738
|
-
});
|
|
3739
|
-
}
|
|
3869
|
+
});
|
|
3870
|
+
const model = resolvePiModel(modelRuntime, providerName, modelId, baseUrl);
|
|
3740
3871
|
const cwd = agent.team.path;
|
|
3741
3872
|
if (!existsSync13(cwd)) mkdirSync5(cwd, { recursive: true });
|
|
3742
3873
|
const promptSkills = restricted ? [] : loadPromptSkills(paths.skillsDir, agent.skills);
|
|
@@ -3766,7 +3897,17 @@ async function createBazilionSession(opts) {
|
|
|
3766
3897
|
skills: promptSkills,
|
|
3767
3898
|
sandboxMode: shellTools?.config.sandboxMode ?? "off"
|
|
3768
3899
|
});
|
|
3769
|
-
const resourceLoader =
|
|
3900
|
+
const resourceLoader = new DefaultResourceLoader({
|
|
3901
|
+
cwd,
|
|
3902
|
+
agentDir: join18(paths.home, "pi"),
|
|
3903
|
+
settingsManager,
|
|
3904
|
+
noExtensions: true,
|
|
3905
|
+
noSkills: true,
|
|
3906
|
+
noPromptTemplates: true,
|
|
3907
|
+
noThemes: true,
|
|
3908
|
+
noContextFiles: true,
|
|
3909
|
+
appendSystemPrompt: bazilionPrompt ? [bazilionPrompt] : void 0
|
|
3910
|
+
});
|
|
3770
3911
|
await resourceLoader.reload();
|
|
3771
3912
|
const bazilionTools = restricted ? restricted.tools : createBazilionCustomTools({
|
|
3772
3913
|
agent,
|
|
@@ -3790,13 +3931,12 @@ async function createBazilionSession(opts) {
|
|
|
3790
3931
|
customTools,
|
|
3791
3932
|
sessionManager,
|
|
3792
3933
|
settingsManager,
|
|
3793
|
-
|
|
3794
|
-
modelRegistry,
|
|
3934
|
+
modelRuntime,
|
|
3795
3935
|
resourceLoader
|
|
3796
3936
|
});
|
|
3797
3937
|
if (refreshApiKey) {
|
|
3798
3938
|
session.agent.getApiKey = async (requestedProvider) => {
|
|
3799
|
-
if (requestedProvider !== piProviderName) return void 0;
|
|
3939
|
+
if (requestedProvider !== piProviderName(providerName)) return void 0;
|
|
3800
3940
|
try {
|
|
3801
3941
|
return await refreshApiKey(providerName);
|
|
3802
3942
|
} catch {
|
|
@@ -3818,67 +3958,6 @@ function splitModelString(s) {
|
|
|
3818
3958
|
}
|
|
3819
3959
|
return { providerName: s.slice(0, idx), modelId: s.slice(idx + 1) };
|
|
3820
3960
|
}
|
|
3821
|
-
function mapProviderName(name) {
|
|
3822
|
-
if (name === "bedrock") return "amazon-bedrock";
|
|
3823
|
-
return name;
|
|
3824
|
-
}
|
|
3825
|
-
function pickFallbackApi(providerName) {
|
|
3826
|
-
switch (providerName) {
|
|
3827
|
-
case "anthropic":
|
|
3828
|
-
return "anthropic-messages";
|
|
3829
|
-
case "google":
|
|
3830
|
-
return "google-generative-ai";
|
|
3831
|
-
case "google-vertex":
|
|
3832
|
-
return "google-vertex";
|
|
3833
|
-
case "azure-openai":
|
|
3834
|
-
return "azure-openai-responses";
|
|
3835
|
-
case "bedrock":
|
|
3836
|
-
return "bedrock-converse-stream";
|
|
3837
|
-
case "openai-codex":
|
|
3838
|
-
return "openai-codex-responses";
|
|
3839
|
-
default:
|
|
3840
|
-
return "openai-completions";
|
|
3841
|
-
}
|
|
3842
|
-
}
|
|
3843
|
-
function resolveBaseUrl(providerName, env) {
|
|
3844
|
-
if (providerName === "lmstudio") return env.LMSTUDIO_URL ?? "http://127.0.0.1:1234/v1";
|
|
3845
|
-
if (providerName === "ollama") return env.OLLAMA_URL ?? "http://127.0.0.1:11434/v1";
|
|
3846
|
-
return void 0;
|
|
3847
|
-
}
|
|
3848
|
-
function resolveApiKey(providerName, env) {
|
|
3849
|
-
switch (providerName) {
|
|
3850
|
-
case "anthropic":
|
|
3851
|
-
return env.ANTHROPIC_OAUTH_TOKEN ?? env.ANTHROPIC_API_KEY;
|
|
3852
|
-
case "openai":
|
|
3853
|
-
return env.OPENAI_API_KEY;
|
|
3854
|
-
case "google":
|
|
3855
|
-
return env.GEMINI_API_KEY;
|
|
3856
|
-
case "mistral":
|
|
3857
|
-
return env.MISTRAL_API_KEY;
|
|
3858
|
-
case "groq":
|
|
3859
|
-
return env.GROQ_API_KEY;
|
|
3860
|
-
case "cerebras":
|
|
3861
|
-
return env.CEREBRAS_API_KEY;
|
|
3862
|
-
case "xai":
|
|
3863
|
-
return env.XAI_API_KEY;
|
|
3864
|
-
case "zai":
|
|
3865
|
-
return env.ZAI_API_KEY;
|
|
3866
|
-
case "huggingface":
|
|
3867
|
-
return env.HF_TOKEN;
|
|
3868
|
-
case "openrouter":
|
|
3869
|
-
return env.OPENROUTER_API_KEY;
|
|
3870
|
-
case "vercel-ai-gateway":
|
|
3871
|
-
return env.AI_GATEWAY_API_KEY;
|
|
3872
|
-
case "azure-openai":
|
|
3873
|
-
return env.AZURE_OPENAI_API_KEY;
|
|
3874
|
-
case "lmstudio":
|
|
3875
|
-
return env.LMSTUDIO_API_KEY ?? "lm-studio";
|
|
3876
|
-
case "ollama":
|
|
3877
|
-
return env.OLLAMA_API_KEY ?? "ollama";
|
|
3878
|
-
default:
|
|
3879
|
-
return void 0;
|
|
3880
|
-
}
|
|
3881
|
-
}
|
|
3882
3961
|
function toPiThinkingLevel(level) {
|
|
3883
3962
|
switch (level) {
|
|
3884
3963
|
case "off":
|
|
@@ -3892,22 +3971,6 @@ function toPiThinkingLevel(level) {
|
|
|
3892
3971
|
return "medium";
|
|
3893
3972
|
}
|
|
3894
3973
|
}
|
|
3895
|
-
function createBazilionResourceLoader(appendSystemPrompt) {
|
|
3896
|
-
const extensions = { extensions: [], errors: [], runtime: createExtensionRuntime() };
|
|
3897
|
-
return {
|
|
3898
|
-
getExtensions: () => extensions,
|
|
3899
|
-
getSkills: () => ({ skills: [], diagnostics: [] }),
|
|
3900
|
-
getPrompts: () => ({ prompts: [], diagnostics: [] }),
|
|
3901
|
-
getThemes: () => ({ themes: [], diagnostics: [] }),
|
|
3902
|
-
getAgentsFiles: () => ({ agentsFiles: [] }),
|
|
3903
|
-
getSystemPrompt: () => void 0,
|
|
3904
|
-
getAppendSystemPrompt: () => appendSystemPrompt ? [appendSystemPrompt] : [],
|
|
3905
|
-
extendResources: () => {
|
|
3906
|
-
},
|
|
3907
|
-
async reload() {
|
|
3908
|
-
}
|
|
3909
|
-
};
|
|
3910
|
-
}
|
|
3911
3974
|
function findMostRecent(sessionDir) {
|
|
3912
3975
|
if (!existsSync13(sessionDir)) return null;
|
|
3913
3976
|
let newest = null;
|