@mrciphersmith/keryx 0.2.22 → 0.2.23
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 +21 -4
- 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 } : {}
|
|
@@ -45178,7 +45195,7 @@ init_shell_config();
|
|
|
45178
45195
|
// package.json
|
|
45179
45196
|
var package_default = {
|
|
45180
45197
|
name: "@mrciphersmith/keryx",
|
|
45181
|
-
version: "0.2.
|
|
45198
|
+
version: "0.2.23",
|
|
45182
45199
|
description: "Version-controlled project context for AI coding agents: code graph, architecture wiki, project memory, relevant tests, quality signals, and task flows.",
|
|
45183
45200
|
private: false,
|
|
45184
45201
|
publishConfig: {
|
|
@@ -45318,7 +45335,7 @@ async function detectProviders(deps) {
|
|
|
45318
45335
|
detected.push({
|
|
45319
45336
|
name: p.name,
|
|
45320
45337
|
models: [...p.models],
|
|
45321
|
-
baseUrl: p.
|
|
45338
|
+
baseUrl: resolveProviderBaseUrl(p, deps.env),
|
|
45322
45339
|
label: p.label,
|
|
45323
45340
|
...p.chatPath !== undefined ? { chatPath: p.chatPath } : {},
|
|
45324
45341
|
...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.23",
|
|
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": {
|