@mrciphersmith/keryx 0.2.22 → 0.2.24
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/cli.js +26 -6
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -8045,6 +8045,23 @@ function isProviderPlatformSupported(provider, platform = process.platform) {
|
|
|
8045
8045
|
}
|
|
8046
8046
|
return provider.platforms.includes(platform);
|
|
8047
8047
|
}
|
|
8048
|
+
function providerBaseUrlEnvKey(providerName) {
|
|
8049
|
+
return `KERYX_${providerName.replace(/[^a-zA-Z0-9]+/g, "_").toUpperCase()}_BASE_URL`;
|
|
8050
|
+
}
|
|
8051
|
+
function resolveProviderBaseUrl(provider, env = process.env) {
|
|
8052
|
+
const override = env[providerBaseUrlEnvKey(provider.name)]?.trim();
|
|
8053
|
+
if (override === undefined || override.length === 0)
|
|
8054
|
+
return provider.baseUrl;
|
|
8055
|
+
try {
|
|
8056
|
+
const url = new URL(override);
|
|
8057
|
+
if (url.protocol !== "http:" && url.protocol !== "https:" || url.username.length > 0 || url.password.length > 0) {
|
|
8058
|
+
return provider.baseUrl;
|
|
8059
|
+
}
|
|
8060
|
+
return override.replace(/\/+$/, "");
|
|
8061
|
+
} catch {
|
|
8062
|
+
return provider.baseUrl;
|
|
8063
|
+
}
|
|
8064
|
+
}
|
|
8048
8065
|
function providerByName(name) {
|
|
8049
8066
|
return OPENAI_COMPAT_PROVIDERS.find((p) => p.name === name);
|
|
8050
8067
|
}
|
|
@@ -8091,7 +8108,7 @@ async function resolveModelsForPicker(fetchFn, provider, env = process.env, opts
|
|
|
8091
8108
|
const envKey = provider.envKey ?? compat.envKey;
|
|
8092
8109
|
const raw = envKey === undefined ? undefined : env[envKey];
|
|
8093
8110
|
const apiKey = typeof raw === "string" && raw.length > 0 ? raw : undefined;
|
|
8094
|
-
return fetchOpenAiCompatModelsDetailed(fetchFn, compat, apiKey, opts);
|
|
8111
|
+
return fetchOpenAiCompatModelsDetailed(fetchFn, { ...compat, ...provider.baseUrl !== undefined ? { baseUrl: provider.baseUrl } : {} }, apiKey, opts);
|
|
8095
8112
|
}
|
|
8096
8113
|
var DEFAULT_MODELS_PATH = "/v1/models", OPENAI_COMPAT_PROVIDERS, MODELS_FETCH_TIMEOUT_MS = 1e4;
|
|
8097
8114
|
var init_providers = __esm(() => {
|
|
@@ -9867,7 +9884,7 @@ function makeProvider(name, _model, opts) {
|
|
|
9867
9884
|
}
|
|
9868
9885
|
const grant = {
|
|
9869
9886
|
network: true,
|
|
9870
|
-
baseUrl: opts.baseUrl ?? compat
|
|
9887
|
+
baseUrl: opts.baseUrl ?? resolveProviderBaseUrl(compat, env),
|
|
9871
9888
|
...compat.allowLoopback === true ? { allowLoopback: true } : {},
|
|
9872
9889
|
...compat.chatPath !== undefined ? { chatPath: compat.chatPath } : {},
|
|
9873
9890
|
...apiKey !== undefined ? { apiKey } : {}
|
|
@@ -40343,7 +40360,10 @@ var AGENT_SLASH_COMMANDS = [
|
|
|
40343
40360
|
{
|
|
40344
40361
|
name: "/provider",
|
|
40345
40362
|
description: "Switch provider \u2014 /provider <name>, or no arg to re-select",
|
|
40346
|
-
modes:
|
|
40363
|
+
modes: BOTH,
|
|
40364
|
+
modeDescriptions: {
|
|
40365
|
+
agent: "Switch provider / API key (interactive picker)"
|
|
40366
|
+
}
|
|
40347
40367
|
},
|
|
40348
40368
|
{ name: "/think", description: "Expand the last reasoning block", modes: AGENT_ONLY },
|
|
40349
40369
|
{ name: "/expand", description: "Expand the last tool output block", modes: AGENT_ONLY },
|
|
@@ -44657,7 +44677,7 @@ Staying in the current session.
|
|
|
44657
44677
|
`);
|
|
44658
44678
|
return;
|
|
44659
44679
|
}
|
|
44660
|
-
if (command.name === "/connect") {
|
|
44680
|
+
if (command.name === "/connect" || command.name === "/provider") {
|
|
44661
44681
|
(async () => {
|
|
44662
44682
|
const detected = opts.redetect !== undefined ? await opts.redetect() : opts.detected;
|
|
44663
44683
|
const ns = await chrome.withOverlay(() => selectProviderModelInTui(otui, r, detected));
|
|
@@ -45178,7 +45198,7 @@ init_shell_config();
|
|
|
45178
45198
|
// package.json
|
|
45179
45199
|
var package_default = {
|
|
45180
45200
|
name: "@mrciphersmith/keryx",
|
|
45181
|
-
version: "0.2.
|
|
45201
|
+
version: "0.2.24",
|
|
45182
45202
|
description: "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
|
|
45183
45203
|
private: false,
|
|
45184
45204
|
publishConfig: {
|
|
@@ -45318,7 +45338,7 @@ async function detectProviders(deps) {
|
|
|
45318
45338
|
detected.push({
|
|
45319
45339
|
name: p.name,
|
|
45320
45340
|
models: [...p.models],
|
|
45321
|
-
baseUrl: p.
|
|
45341
|
+
baseUrl: resolveProviderBaseUrl(p, deps.env),
|
|
45322
45342
|
label: p.label,
|
|
45323
45343
|
...p.chatPath !== undefined ? { chatPath: p.chatPath } : {},
|
|
45324
45344
|
...p.modelsPath !== undefined ? { modelsPath: p.modelsPath } : {},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrciphersmith/keryx",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.24",
|
|
4
4
|
"description": "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|