@cleocode/core 2026.8.2 → 2026.8.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.
- package/dist/check/pr-gate.d.ts.map +1 -1
- package/dist/check/pr-gate.js +9 -0
- package/dist/check/pr-gate.js.map +1 -1
- package/dist/docs/export-document.js +66 -16
- package/dist/docs/export-document.js.map +3 -3
- package/dist/hooks/registry.d.ts +2 -2
- package/dist/hooks/registry.d.ts.map +1 -1
- package/dist/hooks/registry.js +5 -0
- package/dist/hooks/registry.js.map +1 -1
- package/dist/hooks/types.d.ts +59 -0
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/init/scaffold-workflows.d.ts +12 -0
- package/dist/init/scaffold-workflows.d.ts.map +1 -1
- package/dist/init/scaffold-workflows.js +16 -0
- package/dist/init/scaffold-workflows.js.map +1 -1
- package/dist/init/upgrade-workflows.d.ts.map +1 -1
- package/dist/init/upgrade-workflows.js +16 -0
- package/dist/init/upgrade-workflows.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +16 -1
- package/dist/init.js.map +1 -1
- package/dist/internal.d.ts +1 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +2 -0
- package/dist/internal.js.map +1 -1
- package/dist/llm/credentials.d.ts +16 -1
- package/dist/llm/credentials.d.ts.map +1 -1
- package/dist/llm/credentials.js.map +1 -1
- package/dist/llm/cross-provider-selector.d.ts +25 -0
- package/dist/llm/cross-provider-selector.d.ts.map +1 -1
- package/dist/llm/cross-provider-selector.js +76 -3
- package/dist/llm/cross-provider-selector.js.map +1 -1
- package/dist/llm/local-inference-probe.d.ts +101 -0
- package/dist/llm/local-inference-probe.d.ts.map +1 -0
- package/dist/llm/local-inference-probe.js +174 -0
- package/dist/llm/local-inference-probe.js.map +1 -0
- package/dist/llm/plugin-facade.js +199 -21
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/role-executor.d.ts.map +1 -1
- package/dist/llm/role-executor.js +95 -9
- package/dist/llm/role-executor.js.map +1 -1
- package/dist/llm/role-resolver.d.ts +10 -0
- package/dist/llm/role-resolver.d.ts.map +1 -1
- package/dist/llm/role-resolver.js +92 -1
- package/dist/llm/role-resolver.js.map +1 -1
- package/dist/llm/system-resolver.d.ts.map +1 -1
- package/dist/llm/system-resolver.js +2 -0
- package/dist/llm/system-resolver.js.map +1 -1
- package/dist/memory/brain-search.d.ts +109 -0
- package/dist/memory/brain-search.d.ts.map +1 -1
- package/dist/memory/brain-search.js +149 -37
- package/dist/memory/brain-search.js.map +1 -1
- package/dist/memory/brain-stub-prune.d.ts +109 -0
- package/dist/memory/brain-stub-prune.d.ts.map +1 -0
- package/dist/memory/brain-stub-prune.js +155 -0
- package/dist/memory/brain-stub-prune.js.map +1 -0
- package/dist/memory/engine-compat.d.ts.map +1 -1
- package/dist/memory/engine-compat.js +61 -3
- package/dist/memory/engine-compat.js.map +1 -1
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +28 -0
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/context.d.ts.map +1 -1
- package/dist/nexus/context.js +3 -3
- package/dist/nexus/context.js.map +1 -1
- package/dist/nexus/impact.d.ts.map +1 -1
- package/dist/nexus/impact.js +3 -3
- package/dist/nexus/impact.js.map +1 -1
- package/dist/nexus/symbol-miss.d.ts +132 -0
- package/dist/nexus/symbol-miss.d.ts.map +1 -0
- package/dist/nexus/symbol-miss.js +168 -0
- package/dist/nexus/symbol-miss.js.map +1 -0
- package/dist/orchestrate/spawn-ops.d.ts +21 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +39 -2
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestrate/worker-verify.d.ts.map +1 -1
- package/dist/orchestrate/worker-verify.js +22 -0
- package/dist/orchestrate/worker-verify.js.map +1 -1
- package/dist/release/changesets-aggregator.d.ts.map +1 -1
- package/dist/release/changesets-aggregator.js +15 -1
- package/dist/release/changesets-aggregator.js.map +1 -1
- package/dist/release/open.d.ts +29 -2
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +48 -11
- package/dist/release/open.js.map +1 -1
- package/dist/resources/governor.d.ts +12 -2
- package/dist/resources/governor.d.ts.map +1 -1
- package/dist/resources/governor.js +12 -3
- package/dist/resources/governor.js.map +1 -1
- package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
- package/dist/scaffold/ensure-dirs.js +14 -2
- package/dist/scaffold/ensure-dirs.js.map +1 -1
- package/dist/scaffold/project-detection.d.ts.map +1 -1
- package/dist/scaffold/project-detection.js +2 -1
- package/dist/scaffold/project-detection.js.map +1 -1
- package/dist/selfimprove/draft-pr.d.ts +14 -1
- package/dist/selfimprove/draft-pr.d.ts.map +1 -1
- package/dist/selfimprove/draft-pr.js.map +1 -1
- package/dist/selfimprove/fix-gen.d.ts +0 -21
- package/dist/selfimprove/fix-gen.d.ts.map +1 -1
- package/dist/selfimprove/fix-gen.js +276 -76
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/selfimprove/run-loop.d.ts.map +1 -1
- package/dist/selfimprove/run-loop.js +50 -19
- package/dist/selfimprove/run-loop.js.map +1 -1
- package/dist/selfimprove/scenarios/dhq-replay-find/golden.json +114 -4
- package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +3 -3
- package/dist/sentient/dream-cycle.d.ts +20 -19
- package/dist/sentient/dream-cycle.d.ts.map +1 -1
- package/dist/sentient/dream-cycle.js +322 -11
- package/dist/sentient/dream-cycle.js.map +1 -1
- package/dist/sentient/dream-watermark.d.ts +134 -0
- package/dist/sentient/dream-watermark.d.ts.map +1 -0
- package/dist/sentient/dream-watermark.js +156 -0
- package/dist/sentient/dream-watermark.js.map +1 -0
- package/dist/sentient/state.d.ts +17 -0
- package/dist/sentient/state.d.ts.map +1 -1
- package/dist/sentient/state.js +22 -3
- package/dist/sentient/state.js.map +1 -1
- package/dist/sentient/tick.d.ts.map +1 -1
- package/dist/sentient/tick.js +79 -2
- package/dist/sentient/tick.js.map +1 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +5 -1
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/snapshot.d.ts.map +1 -1
- package/dist/sessions/snapshot.js +6 -3
- package/dist/sessions/snapshot.js.map +1 -1
- package/dist/store/checkpoint-git-dir.d.ts +95 -0
- package/dist/store/checkpoint-git-dir.d.ts.map +1 -0
- package/dist/store/checkpoint-git-dir.js +111 -0
- package/dist/store/checkpoint-git-dir.js.map +1 -0
- package/dist/store/git-checkpoint.d.ts.map +1 -1
- package/dist/store/git-checkpoint.js +6 -5
- package/dist/store/git-checkpoint.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +2 -1
- package/dist/system/health.js.map +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +40 -4
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/collection.d.ts +51 -0
- package/dist/tasks/collection.d.ts.map +1 -0
- package/dist/tasks/collection.js +81 -0
- package/dist/tasks/collection.js.map +1 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +8 -3
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +17 -0
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/find.d.ts +50 -0
- package/dist/tasks/find.d.ts.map +1 -1
- package/dist/tasks/find.js +63 -2
- package/dist/tasks/find.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +1 -1
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +83 -0
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/tasks/tool-semaphore.d.ts +82 -12
- package/dist/tasks/tool-semaphore.d.ts.map +1 -1
- package/dist/tasks/tool-semaphore.js +79 -17
- package/dist/tasks/tool-semaphore.js.map +1 -1
- package/package.json +13 -13
- package/templates/CLEO-INJECTION.md +40 -25
- package/templates/workflows/release-prepare.yml.tmpl +73 -16
|
@@ -45,6 +45,7 @@ import { getLogger } from '../logger.js';
|
|
|
45
45
|
import { refreshExpiredOAuthForProvider } from './credential-pool.js';
|
|
46
46
|
import { resolveCredentials } from './credentials.js';
|
|
47
47
|
import { listCredentials, pickCredentialForProviderSync } from './credentials-store.js';
|
|
48
|
+
import { detectLocalInference, listOllamaModels } from './local-inference-probe.js';
|
|
48
49
|
const logger = getLogger('llm-cross-provider-selector');
|
|
49
50
|
// ---------------------------------------------------------------------------
|
|
50
51
|
// Constants
|
|
@@ -261,6 +262,42 @@ function isProvisioned(provider) {
|
|
|
261
262
|
const cred = resolveCredentials(provider); // llm-resolve-allowed: provisioning probe only — checks if cred exists; never constructs a transport or client
|
|
262
263
|
return (cred.apiKey?.trim().length ?? 0) > 0;
|
|
263
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* Intersect the RAM-preferred Ollama model with the models actually installed.
|
|
267
|
+
*
|
|
268
|
+
* Resolution order:
|
|
269
|
+
* 1. exact tag match — the preferred model is pulled, use it;
|
|
270
|
+
* 2. same family — `gemma4:e4b` preferred, `gemma4:e2b` installed;
|
|
271
|
+
* 3. first installed model — some local inference beats none;
|
|
272
|
+
* 4. the preference unchanged, when the installed set is unknown (empty),
|
|
273
|
+
* because an empty list means "could not ask", not "nothing installed".
|
|
274
|
+
*
|
|
275
|
+
* @param preferred - model chosen by the RAM/tier heuristic.
|
|
276
|
+
* @param installed - model ids the daemon reports, in daemon order.
|
|
277
|
+
* @returns the model to call.
|
|
278
|
+
*
|
|
279
|
+
* @example
|
|
280
|
+
* ```ts
|
|
281
|
+
* reconcileOllamaModel('gemma4:e4b', ['qwen2.5-coder:3b']); // → 'qwen2.5-coder:3b'
|
|
282
|
+
* reconcileOllamaModel('gemma4:e4b', ['gemma4:e2b']); // → 'gemma4:e2b'
|
|
283
|
+
* reconcileOllamaModel('gemma4:e4b', []); // → 'gemma4:e4b'
|
|
284
|
+
* ```
|
|
285
|
+
*
|
|
286
|
+
* @task T12082
|
|
287
|
+
*/
|
|
288
|
+
export function reconcileOllamaModel(preferred, installed) {
|
|
289
|
+
if (installed.length === 0)
|
|
290
|
+
return preferred;
|
|
291
|
+
if (installed.includes(preferred))
|
|
292
|
+
return preferred;
|
|
293
|
+
const family = preferred.split(':')[0];
|
|
294
|
+
if (family !== undefined && family !== '') {
|
|
295
|
+
const sameFamily = installed.find((m) => m.split(':')[0] === family);
|
|
296
|
+
if (sameFamily !== undefined)
|
|
297
|
+
return sameFamily;
|
|
298
|
+
}
|
|
299
|
+
return installed[0] ?? preferred;
|
|
300
|
+
}
|
|
264
301
|
// ---------------------------------------------------------------------------
|
|
265
302
|
// Scoring
|
|
266
303
|
// ---------------------------------------------------------------------------
|
|
@@ -498,6 +535,7 @@ export async function enumerateProvisionedProviders(taskTier = 'frontier') {
|
|
|
498
535
|
*/
|
|
499
536
|
export async function selectBestProvisioned(role, opts) {
|
|
500
537
|
const taskTier = roleTierFor(role);
|
|
538
|
+
const excluded = new Set(opts.exclude ?? []);
|
|
501
539
|
// Refresh-on-use (T11986 · DHQ-087): attempt to refresh any expired-but-
|
|
502
540
|
// refreshable OAuth credential for each provider BEFORE the provisioning
|
|
503
541
|
// probe. This ensures an expired OAT with a valid refresh token is renewed
|
|
@@ -531,10 +569,34 @@ export async function selectBestProvisioned(role, opts) {
|
|
|
531
569
|
// tokens are visible to the sync credential store reader).
|
|
532
570
|
const provisionedIds = [];
|
|
533
571
|
for (const id of BUILTIN_PROVIDER_IDS) {
|
|
572
|
+
if (excluded.has(id))
|
|
573
|
+
continue;
|
|
534
574
|
if (isProvisioned(id)) {
|
|
535
575
|
provisionedIds.push(id);
|
|
536
576
|
}
|
|
537
577
|
}
|
|
578
|
+
// T12082: a RUNNING local daemon is its own provisioning evidence.
|
|
579
|
+
//
|
|
580
|
+
// `isProvisioned` cannot probe (it is sync), so it settles for "OLLAMA_HOST
|
|
581
|
+
// is set OR the store has an entry" — and liveness was then probed only for
|
|
582
|
+
// providers already in the provisioned set, which is circular: an unlisted
|
|
583
|
+
// ollama could never be probed, so it could never be listed.
|
|
584
|
+
//
|
|
585
|
+
// The cost of that circularity is total, not marginal. On a machine whose
|
|
586
|
+
// cloud credentials had all expired, every role resolved to
|
|
587
|
+
// `no-provisioned-provider` — no consolidation, no extraction, no hygiene,
|
|
588
|
+
// no dream cycle — while an Ollama daemon with models loaded answered on
|
|
589
|
+
// loopback in 24 ms. A provider that needs no key should not have to be
|
|
590
|
+
// declared; it only has to answer.
|
|
591
|
+
let localModels = [];
|
|
592
|
+
if (!excluded.has('ollama') && !provisionedIds.includes('ollama')) {
|
|
593
|
+
const local = await detectLocalInference();
|
|
594
|
+
if (local !== null && local.name === 'ollama') {
|
|
595
|
+
provisionedIds.push('ollama');
|
|
596
|
+
localModels = local.models;
|
|
597
|
+
logger.debug({ baseUrl: local.baseUrl, models: local.models }, 'cross-provider-selector: unlisted ollama daemon is live — admitting as provisioned');
|
|
598
|
+
}
|
|
599
|
+
}
|
|
538
600
|
if (provisionedIds.length === 0) {
|
|
539
601
|
logger.warn({
|
|
540
602
|
providers_checked: BUILTIN_PROVIDER_IDS.slice(),
|
|
@@ -548,13 +610,19 @@ export async function selectBestProvisioned(role, opts) {
|
|
|
548
610
|
const { getProviderProfile } = await import('./provider-registry/index.js');
|
|
549
611
|
const { resolveProviderDefaultModel, catalogKeyForProvider } = await import('./catalog-model-resolver.js');
|
|
550
612
|
const { pickCredentialForProvider } = await import('./credentials-store.js');
|
|
551
|
-
// Probe ollama liveness only when ollama is in the provisioned set.
|
|
613
|
+
// Probe ollama liveness only when ollama is in the provisioned set. A daemon
|
|
614
|
+
// admitted by the live-probe above is alive by construction — re-probing it
|
|
615
|
+
// through a second code path would only add a way for the two to disagree.
|
|
552
616
|
const ollamaProvisioned = provisionedIds.includes('ollama');
|
|
553
|
-
let ollamaAlive =
|
|
554
|
-
if (ollamaProvisioned) {
|
|
617
|
+
let ollamaAlive = localModels.length > 0;
|
|
618
|
+
if (ollamaProvisioned && !ollamaAlive) {
|
|
555
619
|
const profile = await getProviderProfile('ollama');
|
|
556
620
|
const ollamaBase = profile?.baseUrl ?? 'http://localhost:11434';
|
|
557
621
|
ollamaAlive = await probeOllamaAlive(ollamaBase);
|
|
622
|
+
// Declared-and-live: ask the daemon what it actually holds, so the RAM
|
|
623
|
+
// heuristic below can be intersected with the installed set.
|
|
624
|
+
if (ollamaAlive)
|
|
625
|
+
localModels = await listOllamaModels(ollamaBase);
|
|
558
626
|
}
|
|
559
627
|
const scored = [];
|
|
560
628
|
for (const id of provisionedIds) {
|
|
@@ -599,6 +667,11 @@ export async function selectBestProvisioned(role, opts) {
|
|
|
599
667
|
// Proof-of-life floor — logged as warning by ollamaDefaultModelForTier.
|
|
600
668
|
model = ollamaDefaultModelForTier(winner.tier, ramBytes);
|
|
601
669
|
}
|
|
670
|
+
// T12082: the RAM gate answers "what could this machine run", not "what is
|
|
671
|
+
// pulled". A resolved model the daemon does not hold is a 404 at call time,
|
|
672
|
+
// which reads as "local inference is broken" rather than "that tag is not
|
|
673
|
+
// installed" — so intersect the fit heuristic with the installed set.
|
|
674
|
+
model = reconcileOllamaModel(model, localModels);
|
|
602
675
|
// Log hint if gemma4 family is not in catalog
|
|
603
676
|
const catalogKey = catalogKeyForProvider(winner.id);
|
|
604
677
|
const catalogModel = resolveProviderDefaultModel(catalogKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-provider-selector.js","sourceRoot":"","sources":["../../src/llm/cross-provider-selector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cross-provider-selector.js","sourceRoot":"","sources":["../../src/llm/cross-provider-selector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime detection of a reachable local inference server (T12082).
|
|
3
|
+
*
|
|
4
|
+
* ## Why CLEO should find this by itself
|
|
5
|
+
*
|
|
6
|
+
* The auxiliary fallback chain exists so that "context compression, brain dream
|
|
7
|
+
* cycles, hygiene scans" do not fail silently when the primary provider is
|
|
8
|
+
* unavailable. Its default chain is `anthropic → openrouter → groq` — all
|
|
9
|
+
* cloud. When every cloud credential is unusable, the chain is exhausted and
|
|
10
|
+
* the capability simply stops.
|
|
11
|
+
*
|
|
12
|
+
* That is exactly the state this machine was in on 2026-08-06: the anthropic
|
|
13
|
+
* credential was consent-gated, the openai one returned 401 — and an Ollama
|
|
14
|
+
* server was running the whole time with `qwen2.5-coder:3b` loaded. The dream
|
|
15
|
+
* cycle reported "no usable LLM client" while free local inference sat one
|
|
16
|
+
* HTTP request away. Nothing was broken except that nobody looked.
|
|
17
|
+
*
|
|
18
|
+
* A background consolidation pass is precisely the workload that should degrade
|
|
19
|
+
* to a small local model rather than stop: it is not latency-critical, it is
|
|
20
|
+
* not user-facing, and a shallow synthesis is worth more than none. So the
|
|
21
|
+
* chain now ends with a local tier that is included ONLY when a server actually
|
|
22
|
+
* answers.
|
|
23
|
+
*
|
|
24
|
+
* ## Why a probe rather than a config flag
|
|
25
|
+
*
|
|
26
|
+
* A config flag would need the operator to know their own machine's state and
|
|
27
|
+
* keep it current. A 300 ms probe against loopback is cheap, is cached for the
|
|
28
|
+
* process, and is correct by construction — it reports what is true now.
|
|
29
|
+
*
|
|
30
|
+
* @task T12082
|
|
31
|
+
*/
|
|
32
|
+
/** A detected, reachable local inference server. */
|
|
33
|
+
export interface LocalInference {
|
|
34
|
+
/** Which server answered (`ollama`, `lm-studio`). */
|
|
35
|
+
readonly name: string;
|
|
36
|
+
/**
|
|
37
|
+
* Server ROOT url, e.g. `http://127.0.0.1:11434`.
|
|
38
|
+
*
|
|
39
|
+
* The two forms are NOT interchangeable and mixing them fails late: the
|
|
40
|
+
* native Ollama transport appends `/api/chat`, so handing it the `/v1`
|
|
41
|
+
* form produces `/v1/api/chat` and a 404 that reads like the daemon is
|
|
42
|
+
* broken. Use {@link LocalInference.openAiBaseUrl} for OpenAI-compatible
|
|
43
|
+
* transports and this for native ones.
|
|
44
|
+
*/
|
|
45
|
+
readonly baseUrl: string;
|
|
46
|
+
/** OpenAI-compatible base URL, e.g. `http://127.0.0.1:11434/v1`. */
|
|
47
|
+
readonly openAiBaseUrl: string;
|
|
48
|
+
/** Model ids the server reports, in the order it reported them. */
|
|
49
|
+
readonly models: readonly string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Detect a reachable local inference server with at least one model loaded.
|
|
53
|
+
*
|
|
54
|
+
* Cached for the process lifetime: a background tick may consult this many
|
|
55
|
+
* times and the answer does not change mid-run in practice.
|
|
56
|
+
*
|
|
57
|
+
* Never throws — a probe failure means "not available", which is a normal
|
|
58
|
+
* result rather than an error.
|
|
59
|
+
*
|
|
60
|
+
* @param opts - `force` re-probes, ignoring the cache (tests).
|
|
61
|
+
* @returns the detected server, or `null` when none answers.
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```ts
|
|
65
|
+
* const local = await detectLocalInference();
|
|
66
|
+
* if (local) console.log(`${local.name} has ${local.models.length} model(s)`);
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @task T12082
|
|
70
|
+
*/
|
|
71
|
+
export declare function detectLocalInference(opts?: {
|
|
72
|
+
force?: boolean;
|
|
73
|
+
}): Promise<LocalInference | null>;
|
|
74
|
+
/**
|
|
75
|
+
* List the models an Ollama daemon actually has pulled.
|
|
76
|
+
*
|
|
77
|
+
* The cross-provider selector picks an Ollama model from a RAM heuristic
|
|
78
|
+
* alone, which answers "what could this machine run", not "what is installed".
|
|
79
|
+
* Those differ constantly — this machine has 62 GB of RAM and therefore scored
|
|
80
|
+
* into the `gemma4:e4b` tier while holding only `qwen2.5-coder:3b` and
|
|
81
|
+
* `qwen2:0.5b`, so the resolved model would have 404'd at the daemon. The fit
|
|
82
|
+
* heuristic is still right; it just has to be intersected with reality.
|
|
83
|
+
*
|
|
84
|
+
* Not cached — the installed set changes whenever the operator pulls a model,
|
|
85
|
+
* and the call is one loopback request.
|
|
86
|
+
*
|
|
87
|
+
* Never throws.
|
|
88
|
+
*
|
|
89
|
+
* @param baseUrl - Ollama root URL, e.g. `http://localhost:11434` (no `/v1`).
|
|
90
|
+
* @returns installed model ids in daemon order, empty when unreachable.
|
|
91
|
+
*
|
|
92
|
+
* @task T12082
|
|
93
|
+
*/
|
|
94
|
+
export declare function listOllamaModels(baseUrl: string): Promise<string[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Clear the probe cache. Tests only.
|
|
97
|
+
*
|
|
98
|
+
* @task T12082
|
|
99
|
+
*/
|
|
100
|
+
export declare function _resetLocalInferenceCacheForTests(): void;
|
|
101
|
+
//# sourceMappingURL=local-inference-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-inference-probe.d.ts","sourceRoot":"","sources":["../../src/llm/local-inference-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AA8BH,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAsCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7B,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAiChC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASzE;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,IAAI,IAAI,CAExD"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime detection of a reachable local inference server (T12082).
|
|
3
|
+
*
|
|
4
|
+
* ## Why CLEO should find this by itself
|
|
5
|
+
*
|
|
6
|
+
* The auxiliary fallback chain exists so that "context compression, brain dream
|
|
7
|
+
* cycles, hygiene scans" do not fail silently when the primary provider is
|
|
8
|
+
* unavailable. Its default chain is `anthropic → openrouter → groq` — all
|
|
9
|
+
* cloud. When every cloud credential is unusable, the chain is exhausted and
|
|
10
|
+
* the capability simply stops.
|
|
11
|
+
*
|
|
12
|
+
* That is exactly the state this machine was in on 2026-08-06: the anthropic
|
|
13
|
+
* credential was consent-gated, the openai one returned 401 — and an Ollama
|
|
14
|
+
* server was running the whole time with `qwen2.5-coder:3b` loaded. The dream
|
|
15
|
+
* cycle reported "no usable LLM client" while free local inference sat one
|
|
16
|
+
* HTTP request away. Nothing was broken except that nobody looked.
|
|
17
|
+
*
|
|
18
|
+
* A background consolidation pass is precisely the workload that should degrade
|
|
19
|
+
* to a small local model rather than stop: it is not latency-critical, it is
|
|
20
|
+
* not user-facing, and a shallow synthesis is worth more than none. So the
|
|
21
|
+
* chain now ends with a local tier that is included ONLY when a server actually
|
|
22
|
+
* answers.
|
|
23
|
+
*
|
|
24
|
+
* ## Why a probe rather than a config flag
|
|
25
|
+
*
|
|
26
|
+
* A config flag would need the operator to know their own machine's state and
|
|
27
|
+
* keep it current. A 300 ms probe against loopback is cheap, is cached for the
|
|
28
|
+
* process, and is correct by construction — it reports what is true now.
|
|
29
|
+
*
|
|
30
|
+
* @task T12082
|
|
31
|
+
*/
|
|
32
|
+
/** Loopback endpoints checked, in order. Ollama first — it is the common case. */
|
|
33
|
+
const LOCAL_ENDPOINTS = [
|
|
34
|
+
{
|
|
35
|
+
name: 'ollama',
|
|
36
|
+
tagsUrl: 'http://127.0.0.1:11434/api/tags',
|
|
37
|
+
baseUrl: 'http://127.0.0.1:11434',
|
|
38
|
+
openAiBaseUrl: 'http://127.0.0.1:11434/v1',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
name: 'lm-studio',
|
|
42
|
+
tagsUrl: 'http://127.0.0.1:1234/v1/models',
|
|
43
|
+
baseUrl: 'http://127.0.0.1:1234',
|
|
44
|
+
openAiBaseUrl: 'http://127.0.0.1:1234/v1',
|
|
45
|
+
},
|
|
46
|
+
];
|
|
47
|
+
/** Probe timeout. Loopback either answers immediately or is not there. */
|
|
48
|
+
const PROBE_TIMEOUT_MS = 300;
|
|
49
|
+
/** Process-lifetime cache — `undefined` = not yet probed, `null` = none found. */
|
|
50
|
+
let cached;
|
|
51
|
+
/**
|
|
52
|
+
* Extract model ids from either an Ollama `/api/tags` or an OpenAI `/v1/models`
|
|
53
|
+
* payload, whichever shape came back.
|
|
54
|
+
*
|
|
55
|
+
* @param body - parsed JSON response.
|
|
56
|
+
* @returns model ids, possibly empty.
|
|
57
|
+
*/
|
|
58
|
+
function extractModels(body) {
|
|
59
|
+
if (body === null || typeof body !== 'object')
|
|
60
|
+
return [];
|
|
61
|
+
const rec = body;
|
|
62
|
+
// Ollama: { models: [{ name, model, … }] }
|
|
63
|
+
if (Array.isArray(rec.models)) {
|
|
64
|
+
return rec.models
|
|
65
|
+
.map((m) => m !== null && typeof m === 'object'
|
|
66
|
+
? (m.name ?? m.model)
|
|
67
|
+
: undefined)
|
|
68
|
+
.filter((n) => typeof n === 'string');
|
|
69
|
+
}
|
|
70
|
+
// OpenAI-compatible: { data: [{ id }] }
|
|
71
|
+
if (Array.isArray(rec.data)) {
|
|
72
|
+
return rec.data
|
|
73
|
+
.map((m) => (m !== null && typeof m === 'object' ? m.id : undefined))
|
|
74
|
+
.filter((n) => typeof n === 'string');
|
|
75
|
+
}
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Detect a reachable local inference server with at least one model loaded.
|
|
80
|
+
*
|
|
81
|
+
* Cached for the process lifetime: a background tick may consult this many
|
|
82
|
+
* times and the answer does not change mid-run in practice.
|
|
83
|
+
*
|
|
84
|
+
* Never throws — a probe failure means "not available", which is a normal
|
|
85
|
+
* result rather than an error.
|
|
86
|
+
*
|
|
87
|
+
* @param opts - `force` re-probes, ignoring the cache (tests).
|
|
88
|
+
* @returns the detected server, or `null` when none answers.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* const local = await detectLocalInference();
|
|
93
|
+
* if (local) console.log(`${local.name} has ${local.models.length} model(s)`);
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* @task T12082
|
|
97
|
+
*/
|
|
98
|
+
export async function detectLocalInference(opts = {}) {
|
|
99
|
+
// Operator opt-out. Two audiences: someone on a shared or metered box who
|
|
100
|
+
// does not want background work routed to a daemon they run for other
|
|
101
|
+
// purposes, and the test suite — which must produce the same result whether
|
|
102
|
+
// or not the developer happens to have Ollama running.
|
|
103
|
+
if (process.env['CLEO_DISABLE_LOCAL_INFERENCE']?.trim())
|
|
104
|
+
return null;
|
|
105
|
+
if (!opts.force && cached !== undefined)
|
|
106
|
+
return cached;
|
|
107
|
+
for (const endpoint of LOCAL_ENDPOINTS) {
|
|
108
|
+
try {
|
|
109
|
+
const response = await fetch(endpoint.tagsUrl, {
|
|
110
|
+
signal: AbortSignal.timeout(PROBE_TIMEOUT_MS),
|
|
111
|
+
});
|
|
112
|
+
if (!response.ok)
|
|
113
|
+
continue;
|
|
114
|
+
const models = extractModels(await response.json());
|
|
115
|
+
// A server with no models loaded cannot serve a completion, so it is not
|
|
116
|
+
// a usable fallback — treat it as absent rather than advertising it.
|
|
117
|
+
if (models.length === 0)
|
|
118
|
+
continue;
|
|
119
|
+
cached = {
|
|
120
|
+
name: endpoint.name,
|
|
121
|
+
baseUrl: endpoint.baseUrl,
|
|
122
|
+
openAiBaseUrl: endpoint.openAiBaseUrl,
|
|
123
|
+
models,
|
|
124
|
+
};
|
|
125
|
+
return cached;
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
// Unreachable / timed out / non-JSON — try the next endpoint.
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
cached = null;
|
|
132
|
+
return cached;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* List the models an Ollama daemon actually has pulled.
|
|
136
|
+
*
|
|
137
|
+
* The cross-provider selector picks an Ollama model from a RAM heuristic
|
|
138
|
+
* alone, which answers "what could this machine run", not "what is installed".
|
|
139
|
+
* Those differ constantly — this machine has 62 GB of RAM and therefore scored
|
|
140
|
+
* into the `gemma4:e4b` tier while holding only `qwen2.5-coder:3b` and
|
|
141
|
+
* `qwen2:0.5b`, so the resolved model would have 404'd at the daemon. The fit
|
|
142
|
+
* heuristic is still right; it just has to be intersected with reality.
|
|
143
|
+
*
|
|
144
|
+
* Not cached — the installed set changes whenever the operator pulls a model,
|
|
145
|
+
* and the call is one loopback request.
|
|
146
|
+
*
|
|
147
|
+
* Never throws.
|
|
148
|
+
*
|
|
149
|
+
* @param baseUrl - Ollama root URL, e.g. `http://localhost:11434` (no `/v1`).
|
|
150
|
+
* @returns installed model ids in daemon order, empty when unreachable.
|
|
151
|
+
*
|
|
152
|
+
* @task T12082
|
|
153
|
+
*/
|
|
154
|
+
export async function listOllamaModels(baseUrl) {
|
|
155
|
+
try {
|
|
156
|
+
const url = `${baseUrl.replace(/\/+$/, '')}/api/tags`;
|
|
157
|
+
const response = await fetch(url, { signal: AbortSignal.timeout(PROBE_TIMEOUT_MS) });
|
|
158
|
+
if (!response.ok)
|
|
159
|
+
return [];
|
|
160
|
+
return extractModels(await response.json());
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
return [];
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Clear the probe cache. Tests only.
|
|
168
|
+
*
|
|
169
|
+
* @task T12082
|
|
170
|
+
*/
|
|
171
|
+
export function _resetLocalInferenceCacheForTests() {
|
|
172
|
+
cached = undefined;
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=local-inference-probe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-inference-probe.js","sourceRoot":"","sources":["../../src/llm/local-inference-probe.ts"],"names":[],"mappings":"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"}
|