lastlight 0.10.2 → 0.10.3

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.
@@ -0,0 +1,245 @@
1
+ /**
2
+ * Provider registry — single source of truth for the LLM providers Last Light
3
+ * knows how to wire end-to-end.
4
+ *
5
+ * pi-ai (`@earendil-works/pi-ai`) is provider-agnostic and supports 15+
6
+ * providers out of the box. Of those, only a subset is "wizard-able" here:
7
+ * they authenticate with a single API-key env var and expose a stable
8
+ * endpoint reachable from the sandbox egress firewall. Excluded are the
9
+ * OAuth-only providers (`openai-codex`, `github-copilot`), the multi-env
10
+ * Ambient-cred ones (`amazon-bedrock`, `google-vertex`, `azure-openai-*`,
11
+ * `cloudflare-*`), and the regional-CN variants.
12
+ *
13
+ * This registry is consumed by:
14
+ * - `src/engine/llm.ts` — the cheap one-shot helper used by the
15
+ * prompt screener + intent classifier. It builds requests for the
16
+ * `openai-completions` family (which is most wizard-able providers —
17
+ * Google and Mistral are routed through their OpenAI-compatible
18
+ * endpoints) and the `anthropic-messages` family (Kimi for Coding,
19
+ * MiniMax, Anthropic itself).
20
+ * - `src/engine/agent-executor.ts` — forwards each provider's env var
21
+ * into the sandbox so agentic-pi can auth.
22
+ * - `src/sandbox/egress-allowlist.ts` — the SNI/firewall allowlist is
23
+ * seeded from each provider's `host`.
24
+ * - `src/cli/setup.ts` — the install wizard's step-4 provider picker.
25
+ *
26
+ * Keep this list aligned with pi-ai's provider registry. When pi-ai adds a
27
+ * new provider that we want to surface, add an entry here and everything
28
+ * else (forwarding, egress, wizard UI) follows automatically.
29
+ */
30
+ /**
31
+ * The registry. Order matters — `defaultFastModel()` in `llm.ts` selects
32
+ * a fast model by iterating this list and picking the first provider
33
+ * whose env var is present. Always keep Anthropic first (best raw-latency
34
+ * cheap helper) then OpenAI then OpenRouter, then the rest grouped by
35
+ * families so the array is easy to scan.
36
+ */
37
+ export const PROVIDERS = [
38
+ // ── Anthropic-messages family ───────────────────────────────────────
39
+ {
40
+ prefix: "anthropic",
41
+ displayName: "Anthropic",
42
+ envKey: "ANTHROPIC_API_KEY",
43
+ baseUrl: "https://api.anthropic.com/v1",
44
+ api: "anthropic-messages",
45
+ host: "anthropic.com",
46
+ fastModel: "claude-haiku-4-5-20251001",
47
+ sampleModel: "claude-sonnet-4-6",
48
+ keyPrefix: "sk-ant-",
49
+ },
50
+ {
51
+ prefix: "kimi-coding",
52
+ displayName: "Kimi for Coding (Moonshot)",
53
+ envKey: "KIMI_API_KEY",
54
+ baseUrl: "https://api.kimi.com/coding",
55
+ api: "anthropic-messages",
56
+ host: "kimi.com",
57
+ fastModel: "kimi-latest",
58
+ sampleModel: "kimi-latest",
59
+ },
60
+ {
61
+ prefix: "minimax",
62
+ displayName: "MiniMax",
63
+ envKey: "MINIMAX_API_KEY",
64
+ baseUrl: "https://api.minimax.io/anthropic",
65
+ api: "anthropic-messages",
66
+ host: "minimax.io",
67
+ fastModel: "MiniMax-M1",
68
+ sampleModel: "MiniMax-M2",
69
+ },
70
+ // ── OpenAI-completions family — first-party OpenAI ──────────────────
71
+ {
72
+ prefix: "openai",
73
+ displayName: "OpenAI",
74
+ envKey: "OPENAI_API_KEY",
75
+ baseUrl: "https://api.openai.com/v1",
76
+ api: "openai-completions",
77
+ host: "openai.com",
78
+ fastModel: "gpt-5.4-mini",
79
+ sampleModel: "gpt-5.5",
80
+ maxTokensField: "max_completion_tokens",
81
+ keyPrefix: "sk-",
82
+ },
83
+ // ── Google Gemini — routed through Google's OpenAI-compatible endpoint ──
84
+ {
85
+ prefix: "google",
86
+ displayName: "Google AI Studio (Gemini)",
87
+ envKey: "GEMINI_API_KEY",
88
+ baseUrl: "https://generativelanguage.googleapis.com/v1beta/openai",
89
+ api: "openai-completions",
90
+ host: "generativelanguage.googleapis.com",
91
+ fastModel: "gemini-2.5-flash",
92
+ sampleModel: "gemini-2.5-pro",
93
+ keyPrefix: "AIza",
94
+ },
95
+ // ── Mistral — Mistral exposes an OpenAI-compatible path ──────────────
96
+ {
97
+ prefix: "mistral",
98
+ displayName: "Mistral",
99
+ envKey: "MISTRAL_API_KEY",
100
+ baseUrl: "https://api.mistral.ai/v1",
101
+ api: "openai-completions",
102
+ host: "mistral.ai",
103
+ fastModel: "mistral-small-latest",
104
+ sampleModel: "mistral-large-latest",
105
+ },
106
+ // ── OpenAI-compatible inference specialists ──────────────────────────
107
+ {
108
+ prefix: "groq",
109
+ displayName: "Groq",
110
+ envKey: "GROQ_API_KEY",
111
+ baseUrl: "https://api.groq.com/openai/v1",
112
+ api: "openai-completions",
113
+ host: "groq.com",
114
+ fastModel: "llama-3.3-70b-versatile",
115
+ sampleModel: "llama-3.3-70b-versatile",
116
+ },
117
+ {
118
+ prefix: "cerebras",
119
+ displayName: "Cerebras",
120
+ envKey: "CEREBRAS_API_KEY",
121
+ baseUrl: "https://api.cerebras.ai/v1",
122
+ api: "openai-completions",
123
+ host: "cerebras.ai",
124
+ fastModel: "llama-3.3-70b",
125
+ sampleModel: "llama-3.3-70b",
126
+ },
127
+ {
128
+ prefix: "xai",
129
+ displayName: "xAI (Grok)",
130
+ envKey: "XAI_API_KEY",
131
+ baseUrl: "https://api.x.ai/v1",
132
+ api: "openai-completions",
133
+ host: "x.ai",
134
+ fastModel: "grok-3-mini",
135
+ sampleModel: "grok-4",
136
+ },
137
+ {
138
+ prefix: "huggingface",
139
+ displayName: "Hugging Face",
140
+ envKey: "HF_TOKEN",
141
+ baseUrl: "https://router.huggingface.co/v1",
142
+ api: "openai-completions",
143
+ host: "huggingface.co",
144
+ fastModel: "meta-llama/Llama-3.3-70B-Instruct",
145
+ sampleModel: "meta-llama/Llama-3.3-70B-Instruct",
146
+ keyPrefix: "hf_",
147
+ },
148
+ {
149
+ prefix: "moonshotai",
150
+ displayName: "Moonshot AI",
151
+ envKey: "MOONSHOT_API_KEY",
152
+ baseUrl: "https://api.moonshot.ai/v1",
153
+ api: "openai-completions",
154
+ host: "moonshot.ai",
155
+ fastModel: "kimi-k2",
156
+ sampleModel: "kimi-k2",
157
+ },
158
+ {
159
+ prefix: "nvidia",
160
+ displayName: "NVIDIA NIM",
161
+ envKey: "NVIDIA_API_KEY",
162
+ baseUrl: "https://integrate.api.nvidia.com/v1",
163
+ api: "openai-completions",
164
+ host: "integrate.api.nvidia.com",
165
+ fastModel: "meta/llama-3.3-70b-instruct",
166
+ sampleModel: "meta/llama-3.3-70b-instruct",
167
+ },
168
+ {
169
+ prefix: "fireworks",
170
+ displayName: "Fireworks",
171
+ envKey: "FIREWORKS_API_KEY",
172
+ baseUrl: "https://api.fireworks.ai/inference/v1",
173
+ api: "openai-completions",
174
+ host: "fireworks.ai",
175
+ fastModel: "accounts/fireworks/models/llama-v3p3-70b-instruct",
176
+ sampleModel: "accounts/fireworks/models/llama-v3p3-70b-instruct",
177
+ },
178
+ {
179
+ prefix: "together",
180
+ displayName: "Together",
181
+ envKey: "TOGETHER_API_KEY",
182
+ baseUrl: "https://api.together.ai/v1",
183
+ api: "openai-completions",
184
+ host: "together.ai",
185
+ fastModel: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
186
+ sampleModel: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
187
+ },
188
+ {
189
+ prefix: "deepseek",
190
+ displayName: "DeepSeek",
191
+ envKey: "DEEPSEEK_API_KEY",
192
+ baseUrl: "https://api.deepseek.com/v1",
193
+ api: "openai-completions",
194
+ host: "deepseek.com",
195
+ fastModel: "deepseek-chat",
196
+ sampleModel: "deepseek-chat",
197
+ },
198
+ {
199
+ prefix: "zai",
200
+ displayName: "Z.AI (GLM)",
201
+ envKey: "ZAI_API_KEY",
202
+ baseUrl: "https://api.z.ai/api/coding/paas/v4",
203
+ api: "openai-completions",
204
+ host: "z.ai",
205
+ fastModel: "glm-4.6",
206
+ sampleModel: "glm-4.6",
207
+ },
208
+ // ── OpenRouter — aggregator (take any pi.dev-listed model via one key) ──
209
+ {
210
+ prefix: "openrouter",
211
+ displayName: "OpenRouter (aggregator — Anthropic, Google, xAI, …)",
212
+ envKey: "OPENROUTER_API_KEY",
213
+ baseUrl: "https://openrouter.ai/api/v1",
214
+ api: "openai-completions",
215
+ host: "openrouter.ai",
216
+ fastModel: "google/gemini-2.5-flash",
217
+ sampleModel: "anthropic/claude-sonnet-4.5",
218
+ preserveNestedModelId: true,
219
+ extraHeaders: {
220
+ "HTTP-Referer": "https://github.com/cliftonc/lastlight",
221
+ "X-Title": "Last Light",
222
+ },
223
+ keyPrefix: "sk-or-",
224
+ },
225
+ ];
226
+ const PREFIX_INDEX = new Map(PROVIDERS.map((p) => [p.prefix, p]));
227
+ const ENV_INDEX = new Map(PROVIDERS.map((p) => [p.envKey, p]));
228
+ export function providerByPrefix(prefix) {
229
+ return PREFIX_INDEX.get(prefix.toLowerCase());
230
+ }
231
+ export function providerByEnvKey(envKey) {
232
+ return ENV_INDEX.get(envKey);
233
+ }
234
+ /** All the env var names a harness must forward to reach every registered provider. */
235
+ export const PROVIDER_ENV_KEYS = PROVIDERS.map((p) => p.envKey);
236
+ /** All the hosts the sandbox egress firewall must allowlist to reach these providers. */
237
+ export const PROVIDER_HOSTS = PROVIDERS.map((p) => p.host);
238
+ /**
239
+ * Default model spec shipped with the harness. Keep aligned with the
240
+ * `OPENCODE_MODEL` default in `config/default.yaml` and the wizard's
241
+ * initial provider selection.
242
+ */
243
+ export const DEFAULT_PROVIDER = "anthropic";
244
+ export const DEFAULT_MODEL = "anthropic/claude-sonnet-4-6";
245
+ //# sourceMappingURL=providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,11 @@ export declare const GITHUB_HOSTS: readonly string[];
43
43
  * so the call originates from the host and these hosts aren't strictly
44
44
  * required inside the VM — they're kept here so a single allowlist can
45
45
  * cover both paths without surprises.
46
+ *
47
+ * The list is derived from the provider registry (`src/providers.ts`) —
48
+ * every wizard-able provider has a `host` entry there, so adding a new
49
+ * provider automatically seeds this allowlist. Each entry matches the
50
+ * apex AND all subdomains (see `normalizeAllowlistHost`).
46
51
  */
47
52
  export declare const PROVIDER_HOSTS: readonly string[];
48
53
  /**
@@ -1,4 +1,5 @@
1
1
  import { isIP } from "node:net";
2
+ import { PROVIDER_HOSTS as REGISTRY_PROVIDER_HOSTS } from "../providers.js";
2
3
  /**
3
4
  * Single source of truth for sandbox HTTP egress allowlists.
4
5
  *
@@ -49,14 +50,13 @@ export const GITHUB_HOSTS = [
49
50
  * so the call originates from the host and these hosts aren't strictly
50
51
  * required inside the VM — they're kept here so a single allowlist can
51
52
  * cover both paths without surprises.
53
+ *
54
+ * The list is derived from the provider registry (`src/providers.ts`) —
55
+ * every wizard-able provider has a `host` entry there, so adding a new
56
+ * provider automatically seeds this allowlist. Each entry matches the
57
+ * apex AND all subdomains (see `normalizeAllowlistHost`).
52
58
  */
53
- export const PROVIDER_HOSTS = [
54
- "anthropic.com",
55
- "openai.com",
56
- "openrouter.ai",
57
- // Fireworks — api.fireworks.ai is the inference endpoint.
58
- "fireworks.ai",
59
- ];
59
+ export const PROVIDER_HOSTS = REGISTRY_PROVIDER_HOSTS;
60
60
  /**
61
61
  * Public package registries the executor may hit during `npm install`,
62
62
  * etc. Apex-plus-subdomain matching covers auth / CDN / mirror
@@ -1 +1 @@
1
- {"version":3,"file":"egress-allowlist.js","sourceRoot":"","sources":["../../src/sandbox/egress-allowlist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"egress-allowlist.js","sourceRoot":"","sources":["../../src/sandbox/egress-allowlist.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lastlight",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "description": "GitHub repository maintenance agent — Agent SDK harness",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin.json",
3
3
  "name": "lastlight",
4
4
  "displayName": "Last Light",
5
- "version": "0.10.2",
5
+ "version": "0.10.3",
6
6
  "description": "Install, configure and operate Last Light (GitHub maintenance agent) — its server, CLI client, deployment overlay, and the Last Light Evals harness.",
7
7
  "author": {
8
8
  "name": "Clifton Cunningham"