@cleocode/core 2026.6.4 → 2026.6.5
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/memory/dialectic-evaluator.d.ts +13 -6
- package/dist/memory/dialectic-evaluator.d.ts.map +1 -1
- package/dist/memory/dialectic-evaluator.js +18 -7
- package/dist/memory/dialectic-evaluator.js.map +1 -1
- package/dist/memory/llm-backend-resolver.d.ts +23 -3
- package/dist/memory/llm-backend-resolver.d.ts.map +1 -1
- package/dist/memory/llm-backend-resolver.js +135 -0
- package/dist/memory/llm-backend-resolver.js.map +1 -1
- package/package.json +12 -12
|
@@ -14,12 +14,16 @@
|
|
|
14
14
|
*
|
|
15
15
|
* ## LLM Integration
|
|
16
16
|
*
|
|
17
|
-
* Uses `resolveLlmBackend('
|
|
18
|
-
* module never imports PSYCHE's `llm/` layer directly.
|
|
17
|
+
* Uses `resolveLlmBackend('warm')` from `llm-backend-resolver.ts` so this
|
|
18
|
+
* module never imports PSYCHE's `llm/` layer directly. Warm tier prefers the
|
|
19
|
+
* unified `extraction`-role profile + local inference (Ollama → transformers)
|
|
20
|
+
* before escalating to cold/anthropic (T11757), which is what keeps the loop
|
|
21
|
+
* running on a local model rather than dormant. The LLM call uses
|
|
19
22
|
* `generateObject()` (Vercel AI SDK) with a Zod schema that maps directly to
|
|
20
23
|
* `DialecticInsights`.
|
|
21
24
|
*
|
|
22
|
-
* When no LLM backend is available (no
|
|
25
|
+
* When no LLM backend is available (no pinned profile, no local Ollama, no
|
|
26
|
+
* `ANTHROPIC_API_KEY`),
|
|
23
27
|
* `evaluateDialectic` returns empty arrays so the caller can continue without
|
|
24
28
|
* failing. Prompt-iteration work is tracked in T1532 (confidence thresholds +
|
|
25
29
|
* few-shot examples) and T1533 (telemetry for missing backend / errors).
|
|
@@ -80,9 +84,12 @@ export declare const PEER_INSIGHT_CONFIDENCE_THRESHOLD: 0.5;
|
|
|
80
84
|
/**
|
|
81
85
|
* Analyse a single conversational turn and extract structured insights.
|
|
82
86
|
*
|
|
83
|
-
* Uses CLEO's existing `resolveLlmBackend('
|
|
84
|
-
* no new network egress paths are introduced
|
|
85
|
-
*
|
|
87
|
+
* Uses CLEO's existing `resolveLlmBackend('warm')` for the LLM call so that
|
|
88
|
+
* no new network egress paths are introduced — warm prefers the unified
|
|
89
|
+
* `extraction` profile and local inference, escalating to cold/anthropic only
|
|
90
|
+
* when no local backend is reachable (T11757). When no LLM backend is
|
|
91
|
+
* available, returns empty `DialecticInsights` so the caller can continue
|
|
92
|
+
* safely.
|
|
86
93
|
*
|
|
87
94
|
* The result is intended to be immediately passed to `applyInsights`.
|
|
88
95
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialectic-evaluator.d.ts","sourceRoot":"","sources":["../../src/memory/dialectic-evaluator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dialectic-evaluator.d.ts","sourceRoot":"","sources":["../../src/memory/dialectic-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,OAAO,KAAK,KAAK,YAAY,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,KAAK,WAAW,MAAM,iCAAiC,CAAC;AAmEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,iCAAiC,EAAG,GAAY,CAAC;AAE9D;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,EAAG,GAAY,CAAC;AAwJ9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqFvF;AAuED;;;;;;;;GAQG;AACH,wBAAgB,0CAA0C,IAAI,IAAI,CAEjE;AAMD,0DAA0D;AAC1D,KAAK,OAAO,GAAG,kBAAkB,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,mEAAmE;AACnE,KAAK,OAAO,GAAG,kBAAkB,CAAC,OAAO,YAAY,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACrE,OAAO,CAAC,IAAI,CAAC,CA6Df"}
|
|
@@ -14,12 +14,16 @@
|
|
|
14
14
|
*
|
|
15
15
|
* ## LLM Integration
|
|
16
16
|
*
|
|
17
|
-
* Uses `resolveLlmBackend('
|
|
18
|
-
* module never imports PSYCHE's `llm/` layer directly.
|
|
17
|
+
* Uses `resolveLlmBackend('warm')` from `llm-backend-resolver.ts` so this
|
|
18
|
+
* module never imports PSYCHE's `llm/` layer directly. Warm tier prefers the
|
|
19
|
+
* unified `extraction`-role profile + local inference (Ollama → transformers)
|
|
20
|
+
* before escalating to cold/anthropic (T11757), which is what keeps the loop
|
|
21
|
+
* running on a local model rather than dormant. The LLM call uses
|
|
19
22
|
* `generateObject()` (Vercel AI SDK) with a Zod schema that maps directly to
|
|
20
23
|
* `DialecticInsights`.
|
|
21
24
|
*
|
|
22
|
-
* When no LLM backend is available (no
|
|
25
|
+
* When no LLM backend is available (no pinned profile, no local Ollama, no
|
|
26
|
+
* `ANTHROPIC_API_KEY`),
|
|
23
27
|
* `evaluateDialectic` returns empty arrays so the caller can continue without
|
|
24
28
|
* failing. Prompt-iteration work is tracked in T1532 (confidence thresholds +
|
|
25
29
|
* few-shot examples) and T1533 (telemetry for missing backend / errors).
|
|
@@ -283,9 +287,12 @@ higher confidence because it describes a concrete, verifiable result.`;
|
|
|
283
287
|
/**
|
|
284
288
|
* Analyse a single conversational turn and extract structured insights.
|
|
285
289
|
*
|
|
286
|
-
* Uses CLEO's existing `resolveLlmBackend('
|
|
287
|
-
* no new network egress paths are introduced
|
|
288
|
-
*
|
|
290
|
+
* Uses CLEO's existing `resolveLlmBackend('warm')` for the LLM call so that
|
|
291
|
+
* no new network egress paths are introduced — warm prefers the unified
|
|
292
|
+
* `extraction` profile and local inference, escalating to cold/anthropic only
|
|
293
|
+
* when no local backend is reachable (T11757). When no LLM backend is
|
|
294
|
+
* available, returns empty `DialecticInsights` so the caller can continue
|
|
295
|
+
* safely.
|
|
289
296
|
*
|
|
290
297
|
* The result is intended to be immediately passed to `applyInsights`.
|
|
291
298
|
*
|
|
@@ -344,7 +351,11 @@ export async function evaluateDialectic(turn) {
|
|
|
344
351
|
if (!turn.userMessage.trim() && !turn.systemResponse.trim()) {
|
|
345
352
|
return EMPTY;
|
|
346
353
|
}
|
|
347
|
-
|
|
354
|
+
// Warm tier (T11757): prefer the unified `extraction`-role profile + local
|
|
355
|
+
// inference (Ollama → transformers) before escalating to cold/anthropic. This
|
|
356
|
+
// turns the dialectic loop ON wherever a local model or a pinned profile is
|
|
357
|
+
// available, instead of staying dormant whenever ANTHROPIC_API_KEY is absent.
|
|
358
|
+
const backend = await resolveLlmBackend('warm');
|
|
348
359
|
if (!backend || backend.name === 'none') {
|
|
349
360
|
log.warn({
|
|
350
361
|
event: 'dialectic.no_backend',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dialectic-evaluator.js","sourceRoot":"","sources":["../../src/memory/dialectic-evaluator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dialectic-evaluator.js","sourceRoot":"","sources":["../../src/memory/dialectic-evaluator.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,13 +6,27 @@
|
|
|
6
6
|
* escalating to the cloud (Claude Sonnet). Cold-tier uses Claude Sonnet
|
|
7
7
|
* exclusively (owner-mandated, NOT Haiku).
|
|
8
8
|
*
|
|
9
|
+
* ## Unified resolver convergence (T11757)
|
|
10
|
+
*
|
|
11
|
+
* Before walking the legacy fallback chain, `resolveLlmBackend` FIRST consults
|
|
12
|
+
* the unified role/profile resolver (`resolveLLMForRole('extraction')` in
|
|
13
|
+
* `../llm/role-resolver.ts`). This honours a pinned `extraction`-role profile —
|
|
14
|
+
* e.g. an openai-compatible provider (`openai`/`ollama`, optionally with a
|
|
15
|
+
* `baseUrl` override) or `anthropic` — so the sentient loop uses the SAME
|
|
16
|
+
* provider/credential machinery as the rest of CLEO. When the unified resolver
|
|
17
|
+
* yields nothing usable (no pinned profile, no credential, or a client that
|
|
18
|
+
* cannot be constructed), the call falls through to the legacy warm/cold chain
|
|
19
|
+
* below — no behavioural regression for unconfigured installs.
|
|
20
|
+
*
|
|
9
21
|
* Fallback chain (warm):
|
|
22
|
+
* 0. Unified resolver (`extraction` role profile) — anthropic OR openai-compatible
|
|
10
23
|
* 1. Ollama daemon running at localhost:11434 (gemma4:e4b-it or fallback model)
|
|
11
24
|
* 2. @huggingface/transformers (already installed; ONNX pipeline, zero extra deps)
|
|
12
25
|
* 3. Claude Sonnet via Anthropic API (cold escalation)
|
|
13
26
|
* 4. null — no backend; caller must skip extraction
|
|
14
27
|
*
|
|
15
28
|
* Fallback chain (cold):
|
|
29
|
+
* 0. Unified resolver (`extraction` role profile)
|
|
16
30
|
* 1. Claude Sonnet via Anthropic API (ANTHROPIC_API_KEY required)
|
|
17
31
|
* 2. null — no API key; caller must skip extraction
|
|
18
32
|
*
|
|
@@ -22,6 +36,7 @@
|
|
|
22
36
|
* Spec reference: `docs/specs/memory-architecture-spec.md` §7
|
|
23
37
|
*
|
|
24
38
|
* @task T730
|
|
39
|
+
* @task T11757
|
|
25
40
|
* @epic T726
|
|
26
41
|
*/
|
|
27
42
|
import type { LanguageModel } from 'ai';
|
|
@@ -30,12 +45,17 @@ export type ExtractionTier = 'warm' | 'cold';
|
|
|
30
45
|
/**
|
|
31
46
|
* The resolved backend name. Used for telemetry and logging.
|
|
32
47
|
*
|
|
33
|
-
* - `ollama` — Ollama daemon (local)
|
|
48
|
+
* - `ollama` — Ollama daemon (local), reached via its OpenAI-compatible `/v1` shim
|
|
49
|
+
* - `openai` — an OpenAI-compatible provider resolved from the unified
|
|
50
|
+
* role/profile resolver (T11757) — covers a pinned `openai`
|
|
51
|
+
* profile, including one whose `baseUrl` points at a local
|
|
52
|
+
* server. `ollama` is reported separately when the unified
|
|
53
|
+
* profile provider is literally `ollama`.
|
|
34
54
|
* - `transformers` — @huggingface/transformers ONNX pipeline (local, in-process)
|
|
35
|
-
* - `anthropic` — Claude Sonnet via Anthropic API (cloud)
|
|
55
|
+
* - `anthropic` — Claude (Sonnet) via Anthropic API (cloud)
|
|
36
56
|
* - `none` — No backend available; extraction must be skipped
|
|
37
57
|
*/
|
|
38
|
-
export type ExtractionBackendName = 'ollama' | 'transformers' | 'anthropic' | 'none';
|
|
58
|
+
export type ExtractionBackendName = 'ollama' | 'openai' | 'transformers' | 'anthropic' | 'none';
|
|
39
59
|
/**
|
|
40
60
|
* Resolved backend descriptor returned by `resolveLlmBackend`.
|
|
41
61
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-backend-resolver.d.ts","sourceRoot":"","sources":["../../src/memory/llm-backend-resolver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"llm-backend-resolver.d.ts","sourceRoot":"","sources":["../../src/memory/llm-backend-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;AAEhG;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,KAAK,EAAE,aAAa,CAAC;IACrB,kCAAkC;IAClC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;CACjB;AAiCD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA8B7F;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS1D"}
|
|
@@ -6,13 +6,27 @@
|
|
|
6
6
|
* escalating to the cloud (Claude Sonnet). Cold-tier uses Claude Sonnet
|
|
7
7
|
* exclusively (owner-mandated, NOT Haiku).
|
|
8
8
|
*
|
|
9
|
+
* ## Unified resolver convergence (T11757)
|
|
10
|
+
*
|
|
11
|
+
* Before walking the legacy fallback chain, `resolveLlmBackend` FIRST consults
|
|
12
|
+
* the unified role/profile resolver (`resolveLLMForRole('extraction')` in
|
|
13
|
+
* `../llm/role-resolver.ts`). This honours a pinned `extraction`-role profile —
|
|
14
|
+
* e.g. an openai-compatible provider (`openai`/`ollama`, optionally with a
|
|
15
|
+
* `baseUrl` override) or `anthropic` — so the sentient loop uses the SAME
|
|
16
|
+
* provider/credential machinery as the rest of CLEO. When the unified resolver
|
|
17
|
+
* yields nothing usable (no pinned profile, no credential, or a client that
|
|
18
|
+
* cannot be constructed), the call falls through to the legacy warm/cold chain
|
|
19
|
+
* below — no behavioural regression for unconfigured installs.
|
|
20
|
+
*
|
|
9
21
|
* Fallback chain (warm):
|
|
22
|
+
* 0. Unified resolver (`extraction` role profile) — anthropic OR openai-compatible
|
|
10
23
|
* 1. Ollama daemon running at localhost:11434 (gemma4:e4b-it or fallback model)
|
|
11
24
|
* 2. @huggingface/transformers (already installed; ONNX pipeline, zero extra deps)
|
|
12
25
|
* 3. Claude Sonnet via Anthropic API (cold escalation)
|
|
13
26
|
* 4. null — no backend; caller must skip extraction
|
|
14
27
|
*
|
|
15
28
|
* Fallback chain (cold):
|
|
29
|
+
* 0. Unified resolver (`extraction` role profile)
|
|
16
30
|
* 1. Claude Sonnet via Anthropic API (ANTHROPIC_API_KEY required)
|
|
17
31
|
* 2. null — no API key; caller must skip extraction
|
|
18
32
|
*
|
|
@@ -22,6 +36,7 @@
|
|
|
22
36
|
* Spec reference: `docs/specs/memory-architecture-spec.md` §7
|
|
23
37
|
*
|
|
24
38
|
* @task T730
|
|
39
|
+
* @task T11757
|
|
25
40
|
* @epic T726
|
|
26
41
|
*/
|
|
27
42
|
/**
|
|
@@ -71,6 +86,15 @@ const TRANSFORMERS_FALLBACK_MODEL = 'onnx-community/Qwen2.5-0.5B-Instruct';
|
|
|
71
86
|
* ```
|
|
72
87
|
*/
|
|
73
88
|
export async function resolveLlmBackend(tier) {
|
|
89
|
+
// 0. Unified convergence (T11757): honour a pinned `extraction`-role profile
|
|
90
|
+
// from the unified role/profile resolver before any legacy chain. This is
|
|
91
|
+
// what makes the sentient loop use the SAME provider/credential machinery
|
|
92
|
+
// as every other LLM call-site (so a pinned codex/openai/ollama/anthropic
|
|
93
|
+
// profile is reachable). Returns null when nothing usable is configured —
|
|
94
|
+
// then we fall through to the legacy warm/cold chain below.
|
|
95
|
+
const unifiedBackend = await tryUnifiedResolver();
|
|
96
|
+
if (unifiedBackend)
|
|
97
|
+
return unifiedBackend;
|
|
74
98
|
if (tier === 'warm') {
|
|
75
99
|
// 1. Try Ollama (best local quality, GPU-accelerated if available)
|
|
76
100
|
const ollamaBackend = await tryOllama();
|
|
@@ -220,4 +244,115 @@ async function tryAnthropic(modelId) {
|
|
|
220
244
|
return null;
|
|
221
245
|
}
|
|
222
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Default OpenAI-compatible base URL for the local Ollama daemon (T11757).
|
|
249
|
+
*
|
|
250
|
+
* Ollama exposes an OpenAI-compatible surface under `/v1`. The provider-registry
|
|
251
|
+
* profile records the bare host (`http://localhost:11434`); the unified backend
|
|
252
|
+
* path appends `/v1` so `createOpenAICompatible` can speak the OpenAI wire shape.
|
|
253
|
+
*/
|
|
254
|
+
const OLLAMA_OPENAI_COMPAT_BASE_URL = 'http://localhost:11434/v1';
|
|
255
|
+
/**
|
|
256
|
+
* Resolve the OpenAI-compatible base URL for a provider resolved by the unified
|
|
257
|
+
* role/profile resolver.
|
|
258
|
+
*
|
|
259
|
+
* Looks up the provider-registry profile (which carries the canonical `baseUrl`)
|
|
260
|
+
* and normalises it for the OpenAI-compatible client. For `ollama` we guarantee
|
|
261
|
+
* the `/v1` shim suffix; other openai-family providers use their registered
|
|
262
|
+
* base URL verbatim (already a `/v1`-style endpoint) and fall back to the OpenAI
|
|
263
|
+
* default when no profile is registered.
|
|
264
|
+
*
|
|
265
|
+
* @param provider - The provider id resolved by the unified resolver.
|
|
266
|
+
* @returns A base URL suitable for `createOpenAICompatible`, or `undefined`
|
|
267
|
+
* when none can be determined (caller skips the openai-compatible path).
|
|
268
|
+
*/
|
|
269
|
+
async function resolveOpenAiCompatibleBaseUrl(provider) {
|
|
270
|
+
if (provider === 'ollama') {
|
|
271
|
+
return OLLAMA_OPENAI_COMPAT_BASE_URL;
|
|
272
|
+
}
|
|
273
|
+
try {
|
|
274
|
+
const { getProviderProfile } = await import('../llm/provider-registry/index.js');
|
|
275
|
+
const profile = await getProviderProfile(provider);
|
|
276
|
+
if (profile?.baseUrl) {
|
|
277
|
+
return profile.baseUrl;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
// Registry lookup failed — fall through to the openai default below.
|
|
282
|
+
}
|
|
283
|
+
if (provider === 'openai') {
|
|
284
|
+
return 'https://api.openai.com/v1';
|
|
285
|
+
}
|
|
286
|
+
return undefined;
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Attempt to resolve an extraction backend via the unified role/profile resolver
|
|
290
|
+
* (`resolveLLMForRole('extraction')`) — the T11757 convergence point.
|
|
291
|
+
*
|
|
292
|
+
* This is consulted BEFORE the legacy warm/cold chain so a pinned `extraction`
|
|
293
|
+
* profile (or the unscoped default) drives the sentient loop with the same
|
|
294
|
+
* provider/credential machinery as every other CLEO LLM call-site:
|
|
295
|
+
*
|
|
296
|
+
* - `anthropic` provider → build via `createAnthropic` (returns `name: 'anthropic'`).
|
|
297
|
+
* - `openai` / `ollama` (openai-compatible) → build via `createOpenAICompatible`
|
|
298
|
+
* against the resolved base URL (returns `name: 'ollama'` for ollama, else
|
|
299
|
+
* `name: 'openai'`). An openai-family client whose key later 401s simply
|
|
300
|
+
* fails the downstream `generateObject` call and the caller degrades — it is
|
|
301
|
+
* NOT this resolver's job to validate the credential live.
|
|
302
|
+
*
|
|
303
|
+
* Returns `null` (so the caller falls through to the legacy chain) when:
|
|
304
|
+
* - the resolver throws or yields no usable provider, OR
|
|
305
|
+
* - no credential is reachable for the resolved provider, OR
|
|
306
|
+
* - the provider is not one we can wire here (e.g. a transport-only provider).
|
|
307
|
+
*
|
|
308
|
+
* NOTE: codex's ChatGPT-backend transport is intentionally NOT handled here
|
|
309
|
+
* (tracked separately as T11767). A codex/openai profile resolves through the
|
|
310
|
+
* openai-compatible path; if its client cannot authenticate it falls through to
|
|
311
|
+
* the warm chain rather than crashing.
|
|
312
|
+
*
|
|
313
|
+
* @task T11757
|
|
314
|
+
*/
|
|
315
|
+
async function tryUnifiedResolver() {
|
|
316
|
+
try {
|
|
317
|
+
const { resolveLLMForRole } = await import('../llm/role-resolver.js');
|
|
318
|
+
const resolved = await resolveLLMForRole('extraction');
|
|
319
|
+
// No credential reachable → let the legacy chain try local backends.
|
|
320
|
+
const apiKey = resolved.credential?.apiKey ?? null;
|
|
321
|
+
if (resolved.provider === 'anthropic') {
|
|
322
|
+
if (!apiKey)
|
|
323
|
+
return null;
|
|
324
|
+
const { createAnthropic } = await import('@ai-sdk/anthropic');
|
|
325
|
+
const anthropicProvider = createAnthropic({ apiKey });
|
|
326
|
+
return {
|
|
327
|
+
model: anthropicProvider(resolved.model),
|
|
328
|
+
name: 'anthropic',
|
|
329
|
+
modelId: resolved.model,
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
if (resolved.provider === 'openai' || resolved.provider === 'ollama') {
|
|
333
|
+
const baseURL = await resolveOpenAiCompatibleBaseUrl(resolved.provider);
|
|
334
|
+
if (!baseURL)
|
|
335
|
+
return null;
|
|
336
|
+
// Local Ollama needs no key; remote openai-compatible servers do. Use an
|
|
337
|
+
// empty placeholder when none is configured so the local path still works
|
|
338
|
+
// (mirrors tryOllama, which sends no Authorization for localhost).
|
|
339
|
+
const { createOpenAICompatible } = await import('@ai-sdk/openai-compatible');
|
|
340
|
+
const provider = createOpenAICompatible({
|
|
341
|
+
baseURL,
|
|
342
|
+
name: resolved.provider,
|
|
343
|
+
...(apiKey ? { apiKey } : {}),
|
|
344
|
+
});
|
|
345
|
+
return {
|
|
346
|
+
model: provider(resolved.model),
|
|
347
|
+
name: resolved.provider === 'ollama' ? 'ollama' : 'openai',
|
|
348
|
+
modelId: resolved.model,
|
|
349
|
+
};
|
|
350
|
+
}
|
|
351
|
+
// Provider not wireable here (transport-only) — fall through to legacy chain.
|
|
352
|
+
return null;
|
|
353
|
+
}
|
|
354
|
+
catch {
|
|
355
|
+
return null;
|
|
356
|
+
}
|
|
357
|
+
}
|
|
223
358
|
//# sourceMappingURL=llm-backend-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-backend-resolver.js","sourceRoot":"","sources":["../../src/memory/llm-backend-resolver.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"llm-backend-resolver.js","sourceRoot":"","sources":["../../src/memory/llm-backend-resolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/core",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.5",
|
|
4
4
|
"description": "CLEO core business logic kernel — tasks, sessions, memory, orchestration, lifecycle, with bundled SQLite store",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -429,16 +429,16 @@
|
|
|
429
429
|
"write-file-atomic": "^7.0.1",
|
|
430
430
|
"yaml": "^2.8.3",
|
|
431
431
|
"zod": "^4.3.6",
|
|
432
|
-
"@cleocode/adapters": "2026.6.
|
|
433
|
-
"@cleocode/agents": "2026.6.
|
|
434
|
-
"@cleocode/
|
|
435
|
-
"@cleocode/
|
|
436
|
-
"@cleocode/
|
|
437
|
-
"@cleocode/
|
|
438
|
-
"@cleocode/
|
|
439
|
-
"@cleocode/
|
|
440
|
-
"@cleocode/
|
|
441
|
-
"@cleocode/
|
|
432
|
+
"@cleocode/adapters": "2026.6.5",
|
|
433
|
+
"@cleocode/agents": "2026.6.5",
|
|
434
|
+
"@cleocode/git-shim": "2026.6.5",
|
|
435
|
+
"@cleocode/caamp": "2026.6.5",
|
|
436
|
+
"@cleocode/contracts": "2026.6.5",
|
|
437
|
+
"@cleocode/lafs": "2026.6.5",
|
|
438
|
+
"@cleocode/nexus": "2026.6.5",
|
|
439
|
+
"@cleocode/skills": "2026.6.5",
|
|
440
|
+
"@cleocode/paths": "2026.6.5",
|
|
441
|
+
"@cleocode/worktree": "2026.6.5"
|
|
442
442
|
},
|
|
443
443
|
"engines": {
|
|
444
444
|
"node": ">=24.16.0"
|
|
@@ -472,7 +472,7 @@
|
|
|
472
472
|
},
|
|
473
473
|
"optionalDependencies": {
|
|
474
474
|
"llmtxt": "^2026.5.15",
|
|
475
|
-
"@cleocode/studio": "^2026.6.
|
|
475
|
+
"@cleocode/studio": "^2026.6.5"
|
|
476
476
|
},
|
|
477
477
|
"scripts": {
|
|
478
478
|
"build": "tsc",
|