@probelabs/probe 0.6.0-rc317 → 0.6.0-rc318

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.
@@ -84,9 +84,32 @@ export function resolveApiKey(providerName) {
84
84
  }
85
85
  }
86
86
 
87
+ /**
88
+ * Resolve base URL for a provider from environment variables.
89
+ * Mirrors the env-var resolution in ProbeAgent and FallbackManager so that
90
+ * lightweight LLM calls (dedup, etc.) route through the same API gateway.
91
+ * @param {string} providerName
92
+ * @returns {string|undefined}
93
+ */
94
+ export function resolveBaseUrl(providerName) {
95
+ const llmBaseUrl = process.env.LLM_BASE_URL;
96
+ switch (providerName) {
97
+ case 'anthropic':
98
+ return process.env.ANTHROPIC_API_URL || process.env.ANTHROPIC_BASE_URL || llmBaseUrl;
99
+ case 'openai':
100
+ return process.env.OPENAI_API_URL || llmBaseUrl;
101
+ case 'google':
102
+ return process.env.GOOGLE_API_URL || llmBaseUrl;
103
+ case 'bedrock':
104
+ return process.env.AWS_BEDROCK_BASE_URL || llmBaseUrl;
105
+ default:
106
+ return llmBaseUrl;
107
+ }
108
+ }
109
+
87
110
  /**
88
111
  * Create a language model instance from provider name + model name.
89
- * Resolves API keys from environment automatically.
112
+ * Resolves API keys and base URLs from environment automatically.
90
113
  * Returns null on failure (graceful degradation for optional features).
91
114
  * @param {string} providerName - 'anthropic' | 'openai' | 'google' | 'bedrock'
92
115
  * @param {string} modelName - Model identifier (e.g., 'gemini-2.0-flash')
@@ -98,7 +121,8 @@ export async function createLanguageModel(providerName, modelName) {
98
121
  if (!resolvedModel) return null;
99
122
  try {
100
123
  const apiKey = resolveApiKey(providerName);
101
- const provider = createProviderInstance({ provider: providerName, ...(apiKey ? { apiKey } : {}) });
124
+ const baseURL = resolveBaseUrl(providerName);
125
+ const provider = createProviderInstance({ provider: providerName, ...(apiKey ? { apiKey } : {}), ...(baseURL ? { baseURL } : {}) });
102
126
  return provider(resolvedModel);
103
127
  } catch {
104
128
  return null;
@@ -26155,13 +26155,29 @@ function resolveApiKey(providerName) {
26155
26155
  return void 0;
26156
26156
  }
26157
26157
  }
26158
+ function resolveBaseUrl(providerName) {
26159
+ const llmBaseUrl = process.env.LLM_BASE_URL;
26160
+ switch (providerName) {
26161
+ case "anthropic":
26162
+ return process.env.ANTHROPIC_API_URL || process.env.ANTHROPIC_BASE_URL || llmBaseUrl;
26163
+ case "openai":
26164
+ return process.env.OPENAI_API_URL || llmBaseUrl;
26165
+ case "google":
26166
+ return process.env.GOOGLE_API_URL || llmBaseUrl;
26167
+ case "bedrock":
26168
+ return process.env.AWS_BEDROCK_BASE_URL || llmBaseUrl;
26169
+ default:
26170
+ return llmBaseUrl;
26171
+ }
26172
+ }
26158
26173
  async function createLanguageModel(providerName, modelName) {
26159
26174
  if (!providerName) return null;
26160
26175
  const resolvedModel = modelName || DEFAULT_MODELS[providerName];
26161
26176
  if (!resolvedModel) return null;
26162
26177
  try {
26163
26178
  const apiKey = resolveApiKey(providerName);
26164
- const provider = createProviderInstance({ provider: providerName, ...apiKey ? { apiKey } : {} });
26179
+ const baseURL = resolveBaseUrl(providerName);
26180
+ const provider = createProviderInstance({ provider: providerName, ...apiKey ? { apiKey } : {}, ...baseURL ? { baseURL } : {} });
26165
26181
  return provider(resolvedModel);
26166
26182
  } catch {
26167
26183
  return null;
package/cjs/index.cjs CHANGED
@@ -28084,13 +28084,29 @@ function resolveApiKey(providerName) {
28084
28084
  return void 0;
28085
28085
  }
28086
28086
  }
28087
+ function resolveBaseUrl(providerName) {
28088
+ const llmBaseUrl = process.env.LLM_BASE_URL;
28089
+ switch (providerName) {
28090
+ case "anthropic":
28091
+ return process.env.ANTHROPIC_API_URL || process.env.ANTHROPIC_BASE_URL || llmBaseUrl;
28092
+ case "openai":
28093
+ return process.env.OPENAI_API_URL || llmBaseUrl;
28094
+ case "google":
28095
+ return process.env.GOOGLE_API_URL || llmBaseUrl;
28096
+ case "bedrock":
28097
+ return process.env.AWS_BEDROCK_BASE_URL || llmBaseUrl;
28098
+ default:
28099
+ return llmBaseUrl;
28100
+ }
28101
+ }
28087
28102
  async function createLanguageModel(providerName, modelName) {
28088
28103
  if (!providerName) return null;
28089
28104
  const resolvedModel = modelName || DEFAULT_MODELS[providerName];
28090
28105
  if (!resolvedModel) return null;
28091
28106
  try {
28092
28107
  const apiKey = resolveApiKey(providerName);
28093
- const provider = createProviderInstance({ provider: providerName, ...apiKey ? { apiKey } : {} });
28108
+ const baseURL = resolveBaseUrl(providerName);
28109
+ const provider = createProviderInstance({ provider: providerName, ...apiKey ? { apiKey } : {}, ...baseURL ? { baseURL } : {} });
28094
28110
  return provider(resolvedModel);
28095
28111
  } catch {
28096
28112
  return null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@probelabs/probe",
3
- "version": "0.6.0-rc317",
3
+ "version": "0.6.0-rc318",
4
4
  "description": "Node.js wrapper for the probe code search tool",
5
5
  "main": "src/index.js",
6
6
  "module": "src/index.js",
@@ -84,9 +84,32 @@ export function resolveApiKey(providerName) {
84
84
  }
85
85
  }
86
86
 
87
+ /**
88
+ * Resolve base URL for a provider from environment variables.
89
+ * Mirrors the env-var resolution in ProbeAgent and FallbackManager so that
90
+ * lightweight LLM calls (dedup, etc.) route through the same API gateway.
91
+ * @param {string} providerName
92
+ * @returns {string|undefined}
93
+ */
94
+ export function resolveBaseUrl(providerName) {
95
+ const llmBaseUrl = process.env.LLM_BASE_URL;
96
+ switch (providerName) {
97
+ case 'anthropic':
98
+ return process.env.ANTHROPIC_API_URL || process.env.ANTHROPIC_BASE_URL || llmBaseUrl;
99
+ case 'openai':
100
+ return process.env.OPENAI_API_URL || llmBaseUrl;
101
+ case 'google':
102
+ return process.env.GOOGLE_API_URL || llmBaseUrl;
103
+ case 'bedrock':
104
+ return process.env.AWS_BEDROCK_BASE_URL || llmBaseUrl;
105
+ default:
106
+ return llmBaseUrl;
107
+ }
108
+ }
109
+
87
110
  /**
88
111
  * Create a language model instance from provider name + model name.
89
- * Resolves API keys from environment automatically.
112
+ * Resolves API keys and base URLs from environment automatically.
90
113
  * Returns null on failure (graceful degradation for optional features).
91
114
  * @param {string} providerName - 'anthropic' | 'openai' | 'google' | 'bedrock'
92
115
  * @param {string} modelName - Model identifier (e.g., 'gemini-2.0-flash')
@@ -98,7 +121,8 @@ export async function createLanguageModel(providerName, modelName) {
98
121
  if (!resolvedModel) return null;
99
122
  try {
100
123
  const apiKey = resolveApiKey(providerName);
101
- const provider = createProviderInstance({ provider: providerName, ...(apiKey ? { apiKey } : {}) });
124
+ const baseURL = resolveBaseUrl(providerName);
125
+ const provider = createProviderInstance({ provider: providerName, ...(apiKey ? { apiKey } : {}), ...(baseURL ? { baseURL } : {}) });
102
126
  return provider(resolvedModel);
103
127
  } catch {
104
128
  return null;