lastlight 0.10.2 → 0.10.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-bootstrap.js","sourceRoot":"","sources":["../../src/config/overlay-bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overlay-bootstrap.js","sourceRoot":"","sources":["../../src/config/overlay-bootstrap.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { refreshGitAuth } from "./github/git-auth.js";
4
4
  import { GITHUB_PERMISSION_PROFILES, } from "./github/profiles.js";
5
5
  import { getDockerSandboxOtelEnv, getOtelEnvForSandbox, safeSpanAttributes, withSpan } from "../telemetry/index.js";
6
6
  import { DEFAULT_MODEL } from "./executors/shared.js";
7
+ import { PROVIDER_ENV_KEYS } from "../providers.js";
7
8
  import { runSandboxedAgent, runSandboxedCommand, } from "./executors/orchestrator.js";
8
9
  // Re-exported for back-compat with existing importers (tests, dashboards,
9
10
  // workflow phase executor).
@@ -91,15 +92,15 @@ async function prepareRun(config, opts) {
91
92
  ghEnv.GITHUB_TOKEN = process.env.GITHUB_TOKEN;
92
93
  ghEnv.GIT_TOKEN = process.env.GITHUB_TOKEN;
93
94
  }
94
- // Provider API keys.
95
- if (process.env.OPENAI_API_KEY)
96
- ghEnv.OPENAI_API_KEY = process.env.OPENAI_API_KEY;
97
- if (process.env.ANTHROPIC_API_KEY)
98
- ghEnv.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
99
- if (process.env.OPENROUTER_API_KEY)
100
- ghEnv.OPENROUTER_API_KEY = process.env.OPENROUTER_API_KEY;
101
- if (process.env.FIREWORKS_API_KEY)
102
- ghEnv.FIREWORKS_API_KEY = process.env.FIREWORKS_API_KEY;
95
+ // Provider API keys. Forwarded in registry order — see `src/providers.ts`
96
+ // (the single source of truth for wizard-able providers). Every entry a
97
+ // user can pick in the setup wizard is reachable from the sandbox because
98
+ // the egress firewall list is also derived from the same registry's hosts.
99
+ for (const envKey of PROVIDER_ENV_KEYS) {
100
+ const v = process.env[envKey];
101
+ if (v)
102
+ ghEnv[envKey] = v;
103
+ }
103
104
  // Web-search provider keys. Forwarded only when the workflow opted into
104
105
  // web search (scoped to explore today; see webSearchEnabledForWorkflow
105
106
  // in workflows/runner.ts). agentic-pi auto-detects the provider from
@@ -1 +1 @@
1
- {"version":3,"file":"agent-executor.js","sourceRoot":"","sources":["../../src/engine/agent-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-executor.js","sourceRoot":"","sources":["../../src/engine/agent-executor.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,27 @@
1
1
  /**
2
2
  * Thin one-shot LLM chat helper used by the prompt-injection screener and the
3
- * intent classifier. Provider is selected by the model id prefix so callers
4
- * don't need to wire provider-specific code paths:
3
+ * intent classifier. Powered by `src/providers.ts` — that registry is the
4
+ * single source of truth for which providers this helper can call.
5
5
  *
6
- * "anthropic/claude-…" or unprefixed "claude-…" → Anthropic Messages API
7
- * "openai/gpt-…" or unprefixed "gpt-…" → OpenAI Chat Completions API
8
- * "openrouter/vendor/model" → OpenRouter Chat Completions
6
+ * The screener + classifier are deliberately small and explicit. They need a
7
+ * cheap/fast model on the SAME provider the user picked (or any registered
8
+ * provider whose key is present) so the agent's primary model and the cheap
9
+ * helper share one footprint. We support two request families:
9
10
  *
10
- * Scope: this helper supports Anthropic, OpenAI, and OpenRouter. OpenCode
11
- * workflow phases are provider-agnostic (whatever OpenCode supports), but the
12
- * screener/classifier path is deliberately small and explicit.
11
+ * `openai-completions` — body `{ model, messages, <maxTokensField> }`,
12
+ * response `choices[0].message.content`. Covers
13
+ * OpenAI, OpenRouter, Groq, Cerebras, xAI,
14
+ * Hugging Face, Moonshot, NVIDIA, Fireworks,
15
+ * Together, DeepSeek, Z.AI, and Google/Mistral
16
+ * via their OpenAI-compatible endpoints.
17
+ * `anthropic-messages` — `system` field + content-block response.
18
+ * Covers Anthropic, Kimi for Coding, MiniMax.
19
+ *
20
+ * Scope: this helper supports the providers listed in `src/providers.ts`.
21
+ * Workflow phases themselves are provider-agnostic (whatever pi-ai
22
+ * supports); only the screener/classifier path is constrained here.
13
23
  */
24
+ import { type ApiType } from "../providers.js";
14
25
  export type ChatRole = "system" | "user" | "assistant";
15
26
  export interface ChatMessage {
16
27
  role: ChatRole;
@@ -24,24 +35,36 @@ export interface ChatOptions {
24
35
  }
25
36
  export type CallLlmOptions = ChatOptions;
26
37
  export type ChatFunction = (model: string, messages: ChatMessage[], opts?: ChatOptions) => Promise<string>;
27
- type ProviderName = "anthropic" | "openai" | "openrouter";
38
+ /** Resolved routing for a `provider/model` spec. */
39
+ export interface ResolvedProvider {
40
+ /** Pi-ai-style provider prefix (`anthropic`, `openai`, `openrouter`, …). */
41
+ provider: string;
42
+ /** Model id the upstream API expects (prefix stripped, nested tail preserved if applicable). */
43
+ modelId: string;
44
+ /** Which request family to use. */
45
+ api: ApiType;
46
+ }
28
47
  /**
29
- * Make a provider-agnostic chat call and return the final assistant text.
48
+ * Resolve a `provider/model` spec (or a bare model id) into a routing
49
+ * decision. Prefers an explicit `<prefix>/<model>` over name-inference.
30
50
  *
31
- * @throws if the relevant API key isn't set or the upstream returns non-2xx
51
+ * @throws if the prefix is present but not registered — silently
52
+ * mis-routing a `xai/grok-4` to OpenAI would bill the wrong account and
53
+ * fail at request time with a confusing error, so we surface it early.
32
54
  */
33
- export declare function chat(model: string, messages: ChatMessage[], opts?: ChatOptions): Promise<string>;
34
- /** Compatibility wrapper for older single-turn call sites. */
35
- export declare function callLlm(model: string, systemPrompt: string, userPrompt: string, opts?: CallLlmOptions): Promise<string>;
55
+ export declare function resolveProvider(model: string): ResolvedProvider;
36
56
  /**
37
57
  * Resolve the model id for a tiny one-shot helper call (classifier / screener).
38
58
  * Prefers explicit per-task overrides from OPENCODE_MODELS, then the first
39
- * configured provider in PROVIDERS order. That registry is the single source
40
- * of precedence (currently anthropic > openai > openrouter).
59
+ * configured provider in `PROVIDERS` order (registry order: Anthropic first,
60
+ * then OpenAI, OpenRouter, then the rest — see `src/providers.ts`).
41
61
  */
42
62
  export declare function defaultFastModel(taskType?: string): string;
43
- export declare function resolveProvider(model: string): {
44
- provider: ProviderName;
45
- modelId: string;
46
- };
47
- export {};
63
+ /**
64
+ * Make a provider-agnostic chat call and return the final assistant text.
65
+ *
66
+ * @throws if the relevant API key isn't set or the upstream returns non-2xx
67
+ */
68
+ export declare function chat(model: string, messages: ChatMessage[], opts?: ChatOptions): Promise<string>;
69
+ /** Compatibility wrapper for older single-turn call sites. */
70
+ export declare function callLlm(model: string, systemPrompt: string, userPrompt: string, opts?: CallLlmOptions): Promise<string>;
@@ -1,126 +1,223 @@
1
1
  /**
2
2
  * Thin one-shot LLM chat helper used by the prompt-injection screener and the
3
- * intent classifier. Provider is selected by the model id prefix so callers
4
- * don't need to wire provider-specific code paths:
3
+ * intent classifier. Powered by `src/providers.ts` — that registry is the
4
+ * single source of truth for which providers this helper can call.
5
5
  *
6
- * "anthropic/claude-…" or unprefixed "claude-…" → Anthropic Messages API
7
- * "openai/gpt-…" or unprefixed "gpt-…" → OpenAI Chat Completions API
8
- * "openrouter/vendor/model" → OpenRouter Chat Completions
6
+ * The screener + classifier are deliberately small and explicit. They need a
7
+ * cheap/fast model on the SAME provider the user picked (or any registered
8
+ * provider whose key is present) so the agent's primary model and the cheap
9
+ * helper share one footprint. We support two request families:
9
10
  *
10
- * Scope: this helper supports Anthropic, OpenAI, and OpenRouter. OpenCode
11
- * workflow phases are provider-agnostic (whatever OpenCode supports), but the
12
- * screener/classifier path is deliberately small and explicit.
11
+ * `openai-completions` — body `{ model, messages, <maxTokensField> }`,
12
+ * response `choices[0].message.content`. Covers
13
+ * OpenAI, OpenRouter, Groq, Cerebras, xAI,
14
+ * Hugging Face, Moonshot, NVIDIA, Fireworks,
15
+ * Together, DeepSeek, Z.AI, and Google/Mistral
16
+ * via their OpenAI-compatible endpoints.
17
+ * `anthropic-messages` — `system` field + content-block response.
18
+ * Covers Anthropic, Kimi for Coding, MiniMax.
19
+ *
20
+ * Scope: this helper supports the providers listed in `src/providers.ts`.
21
+ * Workflow phases themselves are provider-agnostic (whatever pi-ai
22
+ * supports); only the screener/classifier path is constrained here.
23
+ */
24
+ import { PROVIDERS, providerByPrefix } from "../providers.js";
25
+ // ── Resolvers (exported for unit tests) ──────────────────────────────────────
26
+ /**
27
+ * Resolve a `provider/model` spec (or a bare model id) into a routing
28
+ * decision. Prefers an explicit `<prefix>/<model>` over name-inference.
29
+ *
30
+ * @throws if the prefix is present but not registered — silently
31
+ * mis-routing a `xai/grok-4` to OpenAI would bill the wrong account and
32
+ * fail at request time with a confusing error, so we surface it early.
13
33
  */
14
- const PROVIDERS = [
15
- {
16
- name: "anthropic",
17
- prefix: "anthropic",
18
- envKey: "ANTHROPIC_API_KEY",
19
- defaultModel: "anthropic/claude-haiku-4-5-20251001",
20
- resolveModelId: (model) => (model.toLowerCase().startsWith("claude") ? model : undefined),
21
- buildRequest: ({ modelId, messages, opts, apiKey, signal }) => {
22
- const system = messages
23
- .filter((message) => message.role === "system")
24
- .map((message) => message.content)
25
- .join("\n");
34
+ export function resolveProvider(model) {
35
+ const slash = model.indexOf("/");
36
+ if (slash > 0) {
37
+ const prefix = model.slice(0, slash).toLowerCase();
38
+ const tail = model.slice(slash + 1);
39
+ const spec = providerByPrefix(prefix);
40
+ if (spec) {
26
41
  return {
27
- url: "https://api.anthropic.com/v1/messages",
28
- init: {
29
- method: "POST",
30
- signal,
31
- headers: {
32
- "content-type": "application/json",
33
- "x-api-key": apiKey,
34
- "anthropic-version": "2023-06-01",
35
- },
36
- body: JSON.stringify({
37
- model: modelId,
38
- max_tokens: opts.maxTokens ?? 256,
39
- ...(system ? { system } : {}),
40
- messages: messages
41
- .filter((message) => message.role !== "system")
42
- .map((message) => ({ role: message.role, content: message.content })),
43
- }),
44
- },
42
+ provider: spec.prefix,
43
+ modelId: tail,
44
+ api: spec.api,
45
45
  };
46
+ }
47
+ throw new Error(`llm helper: unsupported provider prefix "${prefix}" ` +
48
+ `(registered: ${PROVIDERS.map((p) => p.prefix).join(", ")})`);
49
+ }
50
+ // Bare model id — fall back to inference by name. OpenRouter's nested
51
+ // `vendor/model` ids are handled above (its prefix is "openrouter").
52
+ if (/^claude/i.test(model)) {
53
+ return { provider: "anthropic", modelId: model, api: "anthropic-messages" };
54
+ }
55
+ if (/^gpt/i.test(model) || /^o\d/.test(model)) {
56
+ return { provider: "openai", modelId: model, api: "openai-completions" };
57
+ }
58
+ // Anything else: assume OpenAI-completions shape against an OpenAI endpoint.
59
+ return { provider: "openai", modelId: model, api: "openai-completions" };
60
+ }
61
+ /**
62
+ * Resolve the model id for a tiny one-shot helper call (classifier / screener).
63
+ * Prefers explicit per-task overrides from OPENCODE_MODELS, then the first
64
+ * configured provider in `PROVIDERS` order (registry order: Anthropic first,
65
+ * then OpenAI, OpenRouter, then the rest — see `src/providers.ts`).
66
+ */
67
+ export function defaultFastModel(taskType) {
68
+ if (taskType) {
69
+ const override = readOpencodeModelOverride(taskType);
70
+ if (override)
71
+ return override;
72
+ }
73
+ for (const spec of PROVIDERS) {
74
+ if (process.env[spec.envKey])
75
+ return `${spec.prefix}/${spec.fastModel}`;
76
+ }
77
+ // No keys set — fall back to the OpenAI default; chat() will then throw a
78
+ // clear "OPENAI_API_KEY not set" error at call time.
79
+ const openaiSpec = providerByPrefix("openai");
80
+ return `${openaiSpec.prefix}/${openaiSpec.fastModel}`;
81
+ }
82
+ function readOpencodeModelOverride(taskType) {
83
+ const raw = process.env.OPENCODE_MODELS;
84
+ if (!raw)
85
+ return undefined;
86
+ try {
87
+ const parsed = JSON.parse(raw);
88
+ const v = parsed?.[taskType];
89
+ return typeof v === "string" ? v : undefined;
90
+ }
91
+ catch {
92
+ return undefined;
93
+ }
94
+ }
95
+ // ── Request builders ────────────────────────────────────────────────────────
96
+ function apiKeyFor(spec) {
97
+ const apiKey = process.env[spec.envKey];
98
+ if (!apiKey)
99
+ throw new Error(`${spec.envKey} not set`);
100
+ return apiKey;
101
+ }
102
+ /** Append `/messages` (Anthropic-style) taking baseUrl shape into account. */
103
+ function anthropicUrl(spec) {
104
+ return spec.baseUrl.endsWith("/v1")
105
+ ? `${spec.baseUrl}/messages`
106
+ : `${spec.baseUrl}/v1/messages`;
107
+ }
108
+ /** Append `/chat/completions` (OpenAI-style). */
109
+ function openaiUrl(spec) {
110
+ return `${spec.baseUrl}/chat/completions`;
111
+ }
112
+ function buildRequest(spec, modelId, messages, opts, apiKey, signal) {
113
+ if (spec.api === "anthropic-messages") {
114
+ return buildAnthropicMessages({ spec, modelId, messages, opts, apiKey, signal });
115
+ }
116
+ return buildOpenaiCompletions({ spec, modelId, messages, opts, apiKey, signal });
117
+ }
118
+ function buildAnthropicMessages(args) {
119
+ const { spec, modelId, messages, opts, apiKey, signal } = args;
120
+ const system = messages
121
+ .filter((m) => m.role === "system")
122
+ .map((m) => m.content)
123
+ .join("\n");
124
+ return {
125
+ url: anthropicUrl(spec),
126
+ init: {
127
+ method: "POST",
128
+ signal,
129
+ headers: {
130
+ "content-type": "application/json",
131
+ "x-api-key": apiKey,
132
+ "anthropic-version": "2023-06-01",
133
+ },
134
+ body: JSON.stringify({
135
+ model: modelId,
136
+ max_tokens: opts.maxTokens ?? 256,
137
+ ...(system ? { system } : {}),
138
+ messages: messages
139
+ .filter((m) => m.role !== "system")
140
+ .map((m) => ({ role: m.role, content: m.content })),
141
+ }),
46
142
  },
47
- extractText: (data) => {
48
- const content = data.content ?? [];
49
- return content
50
- .filter((block) => block.type === "text" && typeof block.text === "string")
51
- .map((block) => block.text)
52
- .join("");
143
+ };
144
+ }
145
+ function buildOpenaiCompletions(args) {
146
+ const { spec, modelId, messages, opts, apiKey, signal } = args;
147
+ // OpenAI's `max_completion_tokens` (newer family) vs. the cross-provider
148
+ // `max_tokens`. Almost every OpenAI-completions provider accepts `max_tokens`;
149
+ // OpenAI itself prefers `max_completion_tokens` so we surface that as a
150
+ // per-provider override in the registry.
151
+ const maxField = spec.maxTokensField ?? "max_tokens";
152
+ const headers = {
153
+ "content-type": "application/json",
154
+ authorization: `Bearer ${apiKey}`,
155
+ };
156
+ if (spec.extraHeaders) {
157
+ for (const [k, v] of Object.entries(spec.extraHeaders))
158
+ headers[k] = v;
159
+ }
160
+ return {
161
+ url: openaiUrl(spec),
162
+ init: {
163
+ method: "POST",
164
+ signal,
165
+ headers,
166
+ body: JSON.stringify({
167
+ model: modelId,
168
+ [maxField]: opts.maxTokens ?? 256,
169
+ messages,
170
+ }),
53
171
  },
54
- },
55
- {
56
- name: "openai",
57
- prefix: "openai",
58
- envKey: "OPENAI_API_KEY",
59
- defaultModel: "openai/gpt-5.4-mini",
60
- resolveModelId: (model) => model,
61
- buildRequest: ({ modelId, messages, opts, apiKey, signal }) => ({
62
- url: "https://api.openai.com/v1/chat/completions",
63
- init: {
64
- method: "POST",
65
- signal,
66
- headers: {
67
- "content-type": "application/json",
68
- authorization: `Bearer ${apiKey}`,
69
- },
70
- body: JSON.stringify({
71
- model: modelId,
72
- max_completion_tokens: opts.maxTokens ?? 256,
73
- messages,
74
- }),
75
- },
76
- }),
77
- extractText: (data) => data.choices?.[0]?.message?.content ?? "",
78
- },
79
- {
80
- name: "openrouter",
81
- prefix: "openrouter",
82
- envKey: "OPENROUTER_API_KEY",
83
- defaultModel: "openrouter/google/gemini-2.5-flash",
84
- resolveModelId: () => undefined,
85
- buildRequest: ({ modelId, messages, opts, apiKey, signal }) => ({
86
- url: "https://openrouter.ai/api/v1/chat/completions",
87
- init: {
88
- method: "POST",
89
- signal,
90
- headers: {
91
- "content-type": "application/json",
92
- authorization: `Bearer ${apiKey}`,
93
- "HTTP-Referer": "https://github.com/cliftonc/lastlight",
94
- "X-Title": "Last Light",
95
- },
96
- body: JSON.stringify({
97
- model: modelId,
98
- max_tokens: opts.maxTokens ?? 256,
99
- messages,
100
- }),
101
- },
102
- }),
103
- extractText: (data) => data.choices?.[0]?.message?.content ?? "",
104
- },
105
- ];
172
+ };
173
+ }
174
+ // ── Response extractors ─────────────────────────────────────────────────────
175
+ function extractAnthropicText(data) {
176
+ const content = data.content ?? [];
177
+ return content
178
+ .filter((block) => block.type === "text" && typeof block.text === "string")
179
+ .map((block) => block.text)
180
+ .join("");
181
+ }
182
+ function extractOpenaiText(data) {
183
+ return (data.choices?.[0]?.message?.content ??
184
+ "");
185
+ }
186
+ function extractText(spec, data) {
187
+ return spec.api === "anthropic-messages" ? extractAnthropicText(data) : extractOpenaiText(data);
188
+ }
189
+ // ── Public API ───────────────────────────────────────────────────────────────
106
190
  /**
107
191
  * Make a provider-agnostic chat call and return the final assistant text.
108
192
  *
109
193
  * @throws if the relevant API key isn't set or the upstream returns non-2xx
110
194
  */
111
195
  export async function chat(model, messages, opts = {}) {
112
- const { provider, modelId } = resolveProvider(model);
113
- const adapter = adapterFor(provider);
196
+ const { provider, modelId, api } = resolveProvider(model);
197
+ const spec = providerByPrefix(provider);
198
+ // For bare-id inference where the prefix isn't in the registry (the
199
+ // generic "assume OpenAI" fallback), synthesize a pseudo-spec so the
200
+ // OpenAI-completions builder still runs.
201
+ const resolvedSpec = spec ?? {
202
+ prefix: provider,
203
+ displayName: provider,
204
+ envKey: "OPENAI_API_KEY",
205
+ baseUrl: "https://api.openai.com/v1",
206
+ api,
207
+ host: "openai.com",
208
+ fastModel: modelId,
209
+ sampleModel: modelId,
210
+ };
114
211
  return withRetry(async (signal) => {
115
- const apiKey = apiKeyFor(adapter);
116
- const { url, init } = adapter.buildRequest({ modelId, messages, opts, apiKey, signal });
212
+ const apiKey = apiKeyFor(resolvedSpec);
213
+ const { url, init } = buildRequest(resolvedSpec, modelId, messages, opts, apiKey, signal);
117
214
  const res = await fetch(url, init);
118
215
  if (!res.ok) {
119
216
  const text = await res.text().catch(() => "");
120
- throw new Error(`${adapter.name} api ${res.status}: ${text}`);
217
+ throw new Error(`${resolvedSpec.prefix} api ${res.status}: ${text}`);
121
218
  }
122
219
  const data = await res.json();
123
- return adapter.extractText(data);
220
+ return extractText(resolvedSpec, data);
124
221
  }, opts.timeoutMs ?? 30_000);
125
222
  }
126
223
  /** Compatibility wrapper for older single-turn call sites. */
@@ -156,66 +253,4 @@ async function withRetry(call, timeoutMs) {
156
253
  // Unreachable — loop either returns or throws.
157
254
  throw new Error("chat: retry loop fell through");
158
255
  }
159
- /**
160
- * Resolve the model id for a tiny one-shot helper call (classifier / screener).
161
- * Prefers explicit per-task overrides from OPENCODE_MODELS, then the first
162
- * configured provider in PROVIDERS order. That registry is the single source
163
- * of precedence (currently anthropic > openai > openrouter).
164
- */
165
- export function defaultFastModel(taskType) {
166
- if (taskType) {
167
- const override = readOpencodeModelOverride(taskType);
168
- if (override)
169
- return override;
170
- }
171
- for (const adapter of PROVIDERS) {
172
- if (process.env[adapter.envKey])
173
- return adapter.defaultModel;
174
- }
175
- // No keys set — fall back to the OpenAI default; chat() will then throw a
176
- // clear "OPENAI_API_KEY not set" error at call time.
177
- return adapterFor("openai").defaultModel;
178
- }
179
- function readOpencodeModelOverride(taskType) {
180
- const raw = process.env.OPENCODE_MODELS;
181
- if (!raw)
182
- return undefined;
183
- try {
184
- const parsed = JSON.parse(raw);
185
- const v = parsed?.[taskType];
186
- return typeof v === "string" ? v : undefined;
187
- }
188
- catch {
189
- return undefined;
190
- }
191
- }
192
- export function resolveProvider(model) {
193
- const slash = model.indexOf("/");
194
- if (slash > 0) {
195
- const head = model.slice(0, slash).toLowerCase();
196
- const tail = model.slice(slash + 1);
197
- const adapter = PROVIDERS.find((candidate) => candidate.prefix === head);
198
- if (adapter)
199
- return { provider: adapter.name, modelId: tail };
200
- throw new Error(`llm helper: unsupported provider prefix "${head}" (only "anthropic", "openai", and "openrouter" are supported)`);
201
- }
202
- for (const adapter of PROVIDERS) {
203
- const modelId = adapter.resolveModelId(model);
204
- if (modelId)
205
- return { provider: adapter.name, modelId };
206
- }
207
- return { provider: "openai", modelId: model };
208
- }
209
- function adapterFor(provider) {
210
- const adapter = PROVIDERS.find((candidate) => candidate.name === provider);
211
- if (!adapter)
212
- throw new Error(`llm helper: unsupported provider "${provider}"`);
213
- return adapter;
214
- }
215
- function apiKeyFor(adapter) {
216
- const apiKey = process.env[adapter.envKey];
217
- if (!apiKey)
218
- throw new Error(`${adapter.envKey} not set`);
219
- return apiKey;
220
- }
221
256
  //# sourceMappingURL=llm.js.map