smart-model-run 0.1.0 → 0.2.0

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/README.md CHANGED
@@ -36,12 +36,50 @@ const result = await smartRun({
36
36
  });
37
37
  ```
38
38
 
39
- The library fetches model benchmark metadata from `aistupidlevel.info`, caches it at `~/.pi/agent/model-rankings.json` for 6 hours, and falls back to cached rankings on network failure.
39
+ The library fetches model benchmark metadata from `aistupidlevel.info`, caches it at
40
+ `~/.pi/agent/model-rankings.json` for 6 hours, and falls back to cached rankings
41
+ on network failure.
42
+
43
+ ## Local-only mode
44
+
45
+ Use `local: true` when callers must stay on local providers (`ollama/*`,
46
+ `lmstudio/*`, or `local/*`):
47
+
48
+ ```ts
49
+ await smartRun({
50
+ prompt,
51
+ budget: "cheap",
52
+ local: true,
53
+ needs: ["correctness", "codeQuality"],
54
+ modelRegistry,
55
+ runner,
56
+ thinking: "low",
57
+ tools: ["read", "grep", "find", "ls"],
58
+ cwd: process.cwd(),
59
+ });
60
+ ```
61
+
62
+ Local mode prefers enumerable local models from the Pi model registry, ranks them
63
+ for code/review work, skips remote benchmark fetching by default, and appends
64
+ this fallback chain for brittle or non-enumerable local setups:
65
+
66
+ 1. `ollama/ornith:35b`
67
+ 2. `ollama/qwen2.5-coder:32b`
68
+ 3. `ollama/qwen2.5-coder:14b`
69
+ 4. `ollama/ornith:9b`
70
+ 5. `ollama/ornith:7b`
71
+ 6. `ollama/qwen2.5-coder:7b`
72
+ 7. `ollama/llama3.1:8b`
73
+
74
+ Local runs also use a longer default timeout of 10 minutes unless `timeoutMs` is
75
+ provided.
40
76
 
41
77
  ## Core exports
42
78
 
43
79
  - `smartRun()` — select ranked candidates, run them, and fallback on failure.
44
80
  - `pickModels()` — rank models within a budget tier.
45
- - `pickModelsAcrossBudget()` — escalate across allowed budget tiers when no model meets `minMatch`.
46
- - `getRankings()` / `forceRefreshRankings()` — fetch and cache live benchmark rankings.
81
+ - `pickModelsAcrossBudget()` — escalate across allowed budget tiers when no model
82
+ meets `minMatch`.
83
+ - `getRankings()` / `forceRefreshRankings()` — fetch and cache live benchmark
84
+ rankings.
47
85
  - `formatSmartRunSummary()` / `formatRankings()` — human-readable summaries.
@@ -19,6 +19,7 @@
19
19
  */
20
20
  import { type AxisName, type ModelRanking, type RankingsTable } from "./model-rankings.js";
21
21
  export type Tier = "cheap" | "mid" | "high";
22
+ export declare const DEFAULT_LOCAL_FALLBACK_SELECTORS: readonly ["ollama/ornith:35b", "ollama/qwen2.5-coder:32b", "ollama/qwen2.5-coder:14b", "ollama/ornith:9b", "ollama/ornith:7b", "ollama/qwen2.5-coder:7b", "ollama/llama3.1:8b"];
22
23
  export type Need = "tools" | "reliable-tools" | "thinking" | AxisName;
23
24
  export type ModelMatch = {
24
25
  selector: string;
@@ -52,10 +53,13 @@ export type SmartRunResult = {
52
53
  export type AgentRunner = (input: SmartRunInput) => Promise<SmartRunResult>;
53
54
  type ModelRegistryLike = {
54
55
  find?: (provider: string, id: string) => unknown;
56
+ getAvailable?: () => unknown[];
55
57
  };
56
58
  export declare function pickModels(table: RankingsTable, tier: Tier, opts?: {
57
59
  registry?: ModelRegistryLike;
58
60
  needs?: Need[];
61
+ local?: boolean;
62
+ fallbackSelectors?: readonly string[];
59
63
  }): ModelMatch[];
60
64
  /**
61
65
  * Start at `budget`, escalate up to `ceiling` if nothing meets `minMatch`.
@@ -66,6 +70,8 @@ export declare function pickModelsAcrossBudget(table: RankingsTable, budget: Tie
66
70
  registry?: ModelRegistryLike;
67
71
  needs?: Need[];
68
72
  minMatch?: number;
73
+ local?: boolean;
74
+ fallbackSelectors?: readonly string[];
69
75
  }): {
70
76
  tier: Tier;
71
77
  escalated: boolean;
@@ -89,6 +95,8 @@ export type SmartRunOptions = {
89
95
  signal?: AbortSignal;
90
96
  extensionPaths?: string[];
91
97
  modelRegistry?: ModelRegistryLike;
98
+ /** Restrict selection and fallback to local providers (ollama/lmstudio/local) */
99
+ local?: boolean;
92
100
  /** Safety-net selectors tried after all ranked models */
93
101
  fallbackSelectors?: string[];
94
102
  /** Inject rankings (for testing); undefined = fetch live, null = skip */
@@ -1 +1 @@
1
- {"version":3,"file":"smart-run.d.ts","sourceRoot":"","sources":["../src/smart-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-run.d.ts","sourceRoot":"","sources":["../src/smart-run.ts"],"names":[],"mappings":"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"}
package/dist/smart-run.js CHANGED
@@ -23,6 +23,17 @@ const OUTPUT_COST_CEILING = {
23
23
  mid: 15,
24
24
  high: Number.MAX_SAFE_INTEGER,
25
25
  };
26
+ const LOCAL_PROVIDERS = new Set(["ollama", "lmstudio", "local"]);
27
+ export const DEFAULT_LOCAL_FALLBACK_SELECTORS = [
28
+ "ollama/ornith:35b",
29
+ "ollama/qwen2.5-coder:32b",
30
+ "ollama/qwen2.5-coder:14b",
31
+ "ollama/ornith:9b",
32
+ "ollama/ornith:7b",
33
+ "ollama/qwen2.5-coder:7b",
34
+ "ollama/llama3.1:8b",
35
+ ];
36
+ const LOCAL_TIMEOUT_MS = 10 * 60_000;
26
37
  const TIER_ORDER = ["cheap", "mid", "high"];
27
38
  function tiersInRange(budget, ceiling) {
28
39
  const start = TIER_ORDER.indexOf(budget);
@@ -93,6 +104,9 @@ const VENDOR_TO_PROVIDER = {
93
104
  deepseek: "deepseek",
94
105
  kimi: "openrouter",
95
106
  glm: "openrouter",
107
+ ollama: "ollama",
108
+ lmstudio: "lmstudio",
109
+ local: "local",
96
110
  };
97
111
  function toPiSelector(model) {
98
112
  const provider = VENDOR_TO_PROVIDER[model.vendor] ?? "openrouter";
@@ -112,8 +126,184 @@ function isAvailable(selector, registry) {
112
126
  return false;
113
127
  return Boolean(registry.find(split.provider, split.id));
114
128
  }
129
+ function isLocalProvider(provider) {
130
+ return LOCAL_PROVIDERS.has(provider.toLowerCase());
131
+ }
132
+ function isLocalSelector(selector) {
133
+ const split = splitSelector(selector);
134
+ return split ? isLocalProvider(split.provider) : false;
135
+ }
136
+ function registryModels(registry) {
137
+ if (!registry?.getAvailable)
138
+ return [];
139
+ try {
140
+ return registry
141
+ .getAvailable()
142
+ .filter((m) => Boolean(m && typeof m === "object"));
143
+ }
144
+ catch {
145
+ return [];
146
+ }
147
+ }
148
+ function selectorFromRegistryModel(model) {
149
+ if (!model.provider || !model.id)
150
+ return undefined;
151
+ return `${model.provider}/${model.id}`;
152
+ }
153
+ function parseParameterCount(value) {
154
+ const matches = Array.from(value
155
+ .toLowerCase()
156
+ .matchAll(/(^|[^a-z0-9])(\d+(?:\.\d+)?)(b|m)(?=$|[^a-z0-9])/g));
157
+ if (matches.length === 0)
158
+ return 0;
159
+ return Math.max(...matches.map((match) => {
160
+ const amount = Number.parseFloat(match[2]);
161
+ return match[3] === "m" ? amount / 1000 : amount;
162
+ }));
163
+ }
164
+ function localCuratedScore(selector) {
165
+ const normalized = selector.toLowerCase();
166
+ const exactIndex = DEFAULT_LOCAL_FALLBACK_SELECTORS.findIndex((fallback) => fallback === normalized);
167
+ if (exactIndex >= 0)
168
+ return 1000 - exactIndex;
169
+ if (normalized.includes("ornith"))
170
+ return 900;
171
+ if (normalized.includes("qwen2.5-coder"))
172
+ return 850;
173
+ if (normalized.includes("qwen3-coder"))
174
+ return 825;
175
+ if (normalized.includes("deepseek-coder"))
176
+ return 800;
177
+ if (normalized.includes("devstral"))
178
+ return 775;
179
+ if (normalized.includes("codestral"))
180
+ return 750;
181
+ return 0;
182
+ }
183
+ function localOrientationScore(selector) {
184
+ const normalized = selector.toLowerCase();
185
+ let score = 0;
186
+ if (/coder|coding|code|dev|program/.test(normalized))
187
+ score += 3;
188
+ if (/instruct|it|reason|review/.test(normalized))
189
+ score += 2;
190
+ if (/chat|base/.test(normalized))
191
+ score -= 1;
192
+ return score;
193
+ }
194
+ function makeLocalRanking(selector, registryModel, ranking) {
195
+ const split = splitSelector(selector);
196
+ const name = registryModel?.name ?? ranking?.name ?? split?.id ?? selector;
197
+ const reasoning = registryModel?.reasoning ?? ranking?.usesReasoningEffort ?? false;
198
+ const heuristicAxes = localCuratedScore(selector) > 0 || localOrientationScore(selector) > 0
199
+ ? 0.75
200
+ : 0.5;
201
+ return {
202
+ id: ranking?.id ?? selector,
203
+ name,
204
+ vendor: split?.provider ?? ranking?.vendor ?? "local",
205
+ score: ranking?.score ?? localCuratedScore(selector),
206
+ confidenceLower: ranking?.confidenceLower ?? 0,
207
+ confidenceUpper: ranking?.confidenceUpper ?? 0,
208
+ trend: ranking?.trend ?? "local",
209
+ costInput: registryModel?.cost?.input ?? ranking?.costInput ?? 0,
210
+ costOutput: registryModel?.cost?.output ?? ranking?.costOutput ?? 0,
211
+ costNote: ranking?.costNote ?? "local",
212
+ axes: ranking?.axes ?? {
213
+ correctness: heuristicAxes,
214
+ spec: heuristicAxes,
215
+ codeQuality: heuristicAxes,
216
+ efficiency: 0.5,
217
+ stability: 0.5,
218
+ refusal: 0,
219
+ recovery: 0.5,
220
+ },
221
+ supportsToolCalling: ranking?.supportsToolCalling ?? true,
222
+ toolCallReliability: ranking?.toolCallReliability ?? 0.8,
223
+ maxToolsPerCall: ranking?.maxToolsPerCall ?? 16,
224
+ usesReasoningEffort: reasoning,
225
+ };
226
+ }
227
+ function localCandidateSortScore(candidate) {
228
+ let sourceScore = 0;
229
+ if (candidate.source === "registry")
230
+ sourceScore = 2;
231
+ else if (candidate.source === "rankings")
232
+ sourceScore = 1;
233
+ const selectorAndName = `${candidate.selector} ${candidate.model.name}`;
234
+ return [
235
+ sourceScore,
236
+ localCuratedScore(candidate.selector),
237
+ parseParameterCount(selectorAndName),
238
+ localOrientationScore(selectorAndName),
239
+ candidate.contextWindow,
240
+ ];
241
+ }
242
+ function sortLocalCandidates(a, b) {
243
+ const aScore = localCandidateSortScore(a);
244
+ const bScore = localCandidateSortScore(b);
245
+ for (let i = 0; i < aScore.length; i++) {
246
+ if (bScore[i] !== aScore[i])
247
+ return bScore[i] - aScore[i];
248
+ }
249
+ return a.selector.localeCompare(b.selector);
250
+ }
251
+ function pickLocalModels(table, opts) {
252
+ const bySelector = new Map();
253
+ const rankingBySelector = new Map();
254
+ for (const ranking of table.models) {
255
+ const selector = toPiSelector(ranking);
256
+ if (!isLocalSelector(selector))
257
+ continue;
258
+ rankingBySelector.set(selector, ranking);
259
+ bySelector.set(selector, {
260
+ selector,
261
+ model: ranking,
262
+ source: "rankings",
263
+ contextWindow: 0,
264
+ });
265
+ }
266
+ for (const registryModel of registryModels(opts?.registry)) {
267
+ const selector = selectorFromRegistryModel(registryModel);
268
+ if (!selector || !isLocalSelector(selector))
269
+ continue;
270
+ bySelector.set(selector, {
271
+ selector,
272
+ model: makeLocalRanking(selector, registryModel, rankingBySelector.get(selector)),
273
+ source: "registry",
274
+ contextWindow: registryModel.contextWindow ?? 0,
275
+ });
276
+ }
277
+ for (const selector of opts?.fallbackSelectors ??
278
+ DEFAULT_LOCAL_FALLBACK_SELECTORS) {
279
+ if (!isLocalSelector(selector) || bySelector.has(selector))
280
+ continue;
281
+ bySelector.set(selector, {
282
+ selector,
283
+ model: makeLocalRanking(selector),
284
+ source: "fallback",
285
+ contextWindow: 0,
286
+ });
287
+ }
288
+ const needs = opts?.needs ?? [];
289
+ return Array.from(bySelector.values())
290
+ .sort(sortLocalCandidates)
291
+ .map((candidate) => {
292
+ const { matchScore, met, partial, unmet } = scoreModel(candidate.model, needs);
293
+ return {
294
+ selector: candidate.selector,
295
+ model: candidate.model,
296
+ matchScore,
297
+ met,
298
+ partial,
299
+ unmet,
300
+ };
301
+ });
302
+ }
115
303
  // ── Core: pick + rank models in a single tier ──
116
304
  export function pickModels(table, tier, opts) {
305
+ if (opts?.local)
306
+ return pickLocalModels(table, opts);
117
307
  const ceiling = OUTPUT_COST_CEILING[tier];
118
308
  const needs = opts?.needs ?? [];
119
309
  const inBudget = table.models.filter((m) => {
@@ -148,12 +338,23 @@ export function pickModels(table, tier, opts) {
148
338
  * If no ceiling, stays in the budget tier.
149
339
  */
150
340
  export function pickModelsAcrossBudget(table, budget, opts) {
341
+ if (opts?.local) {
342
+ return {
343
+ tier: budget,
344
+ escalated: false,
345
+ models: pickModels(table, budget, opts),
346
+ };
347
+ }
151
348
  const tiers = tiersInRange(budget, opts?.ceiling);
152
349
  const needs = opts?.needs ?? [];
153
350
  const minMatch = opts?.minMatch ?? 0.5;
154
351
  for (const tier of tiers) {
155
352
  const models = pickModels(table, tier, { registry: opts?.registry, needs });
156
- const acceptable = models.filter((m) => m.matchScore >= minMatch);
353
+ const acceptable = [];
354
+ for (const model of models) {
355
+ if (model.matchScore >= minMatch)
356
+ acceptable.push(model);
357
+ }
157
358
  if (acceptable.length > 0) {
158
359
  return { tier, escalated: tier !== budget, models: acceptable };
159
360
  }
@@ -171,17 +372,33 @@ export function pickModelsAcrossBudget(table, budget, opts) {
171
372
  const DEFAULT_TIMEOUT_MS = 3 * 60_000;
172
373
  export async function smartRun(opts) {
173
374
  const attempts = [];
174
- const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
175
- const table = opts._rankings !== undefined ? opts._rankings : await getRankings();
375
+ const defaultTimeoutMs = opts.local ? LOCAL_TIMEOUT_MS : DEFAULT_TIMEOUT_MS;
376
+ const timeoutMs = opts.timeoutMs ?? defaultTimeoutMs;
377
+ let table;
378
+ if (opts.local) {
379
+ table = opts._rankings ?? null;
380
+ }
381
+ else if (opts._rankings !== undefined) {
382
+ table = opts._rankings;
383
+ }
384
+ else {
385
+ table = await getRankings();
386
+ }
176
387
  let candidates = [];
177
388
  let tier = null;
178
389
  let escalated = false;
179
- if (table) {
180
- const pick = pickModelsAcrossBudget(table, opts.budget, {
390
+ const localFallbackSelectors = opts.local
391
+ ? [...DEFAULT_LOCAL_FALLBACK_SELECTORS, ...(opts.fallbackSelectors ?? [])]
392
+ : opts.fallbackSelectors;
393
+ const selectionTable = table ?? { fetchedAt: "local", models: [] };
394
+ if (table || opts.local) {
395
+ const pick = pickModelsAcrossBudget(selectionTable, opts.budget, {
181
396
  ceiling: opts.ceiling,
182
397
  registry: opts.modelRegistry,
183
398
  needs: opts.needs,
184
399
  minMatch: opts.minMatch,
400
+ local: opts.local,
401
+ fallbackSelectors: localFallbackSelectors,
185
402
  });
186
403
  tier = pick.tier;
187
404
  escalated = pick.escalated;
@@ -193,8 +410,13 @@ export async function smartRun(opts) {
193
410
  }));
194
411
  const minMatch = opts.minMatch ?? 0.5;
195
412
  const bestMatch = candidates[0]?.matchScore ?? 0;
196
- if (opts.needs && opts.needs.length > 0 && bestMatch < minMatch) {
197
- const allModels = pickModels(table, "high", { needs: opts.needs });
413
+ if (!opts.local &&
414
+ opts.needs &&
415
+ opts.needs.length > 0 &&
416
+ bestMatch < minMatch) {
417
+ const allModels = pickModels(selectionTable, "high", {
418
+ needs: opts.needs,
419
+ });
198
420
  const bestAvailable = allModels[0];
199
421
  const reason = bestAvailable
200
422
  ? `Best match across all tiers: ${bestAvailable.selector} (match=${(bestAvailable.matchScore * 100).toFixed(0)}%, unmet: ${bestAvailable.unmet.join(", ")})`
@@ -207,16 +429,18 @@ export async function smartRun(opts) {
207
429
  attempts: [],
208
430
  tier,
209
431
  escalated,
210
- rankings: { fetchedAt: table.fetchedAt, candidateCount: 0 },
432
+ rankings: { fetchedAt: selectionTable.fetchedAt, candidateCount: 0 },
211
433
  noMatchReason: reason,
212
434
  };
213
435
  }
214
436
  candidates = [];
215
437
  }
216
438
  }
217
- if (opts.fallbackSelectors) {
439
+ if (localFallbackSelectors) {
218
440
  const seen = new Set(candidates.map((c) => c.selector));
219
- for (const sel of opts.fallbackSelectors) {
441
+ for (const sel of localFallbackSelectors) {
442
+ if (opts.local && !isLocalSelector(sel))
443
+ continue;
220
444
  if (!seen.has(sel)) {
221
445
  candidates.push({
222
446
  selector: sel,
@@ -1 +1 @@
1
- {"version":3,"file":"smart-run.js","sourceRoot":"","sources":["../src/smart-run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-run.js","sourceRoot":"","sources":["../src/smart-run.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smart-model-run",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Benchmark-driven smart model selection and fallback runner for agent workloads.",
5
5
  "type": "module",
6
6
  "license": "MIT",