@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.
@@ -14,12 +14,16 @@
14
14
  *
15
15
  * ## LLM Integration
16
16
  *
17
- * Uses `resolveLlmBackend('cold')` from `llm-backend-resolver.ts` so this
18
- * module never imports PSYCHE's `llm/` layer directly. The LLM call uses
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 `ANTHROPIC_API_KEY`, no local Ollama),
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('cold')` for the LLM call so that
84
- * no new network egress paths are introduced. When no LLM backend is available,
85
- * returns empty `DialecticInsights` so the caller can continue safely.
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAiFvF;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"}
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('cold')` from `llm-backend-resolver.ts` so this
18
- * module never imports PSYCHE's `llm/` layer directly. The LLM call uses
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 `ANTHROPIC_API_KEY`, no local Ollama),
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('cold')` for the LLM call so that
287
- * no new network egress paths are introduced. When no LLM backend is available,
288
- * returns empty `DialecticInsights` so the caller can continue safely.
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
- const backend = await resolveLlmBackend('cold');
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":"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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7C;;;;;;;GAOG;AACH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;AAErF;;;;;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,CAqB7F;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAS1D"}
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":"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"}
1
+ {"version":3,"file":"llm-backend-resolver.js","sourceRoot":"","sources":["../../src/memory/llm-backend-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAqCH;;;;;;;;;;;GAWG;AACH,MAAM,qBAAqB,GAAG;IAC5B,eAAe,EAAE,wDAAwD;IACzE,eAAe,EAAE,oDAAoD;IACrE,YAAY,EAAE,6DAA6D;IAC3E,WAAW;IACX,aAAa;IACb,UAAU;CACF,CAAC;AAEX,sEAAsE;AACtE,MAAM,eAAe,GAAG,mBAA4B,CAAC;AAErD,6EAA6E;AAC7E,MAAM,2BAA2B,GAAG,sCAA+C,CAAC;AAEpF,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAoB;IAC1D,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,+DAA+D;IAC/D,MAAM,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAClD,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,mEAAmE;QACnE,MAAM,aAAa,GAAG,MAAM,SAAS,EAAE,CAAC;QACxC,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QAExC,8DAA8D;QAC9D,MAAM,mBAAmB,GAAG,MAAM,eAAe,EAAE,CAAC;QACpD,IAAI,mBAAmB;YAAE,OAAO,mBAAmB,CAAC;QAEpD,0DAA0D;QAC1D,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,uDAAuD;QACvD,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,CAAC;QAC7D,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,iCAAiC,EAAE;YACzD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,EAAE,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;;GAMG;AACH,KAAK,UAAU,SAAS;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,iCAAiC,EAAE;YACzD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAE7B,CAAC;QACF,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhG,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE9C,uBAAuB;QACvB,IAAI,aAAiC,CAAC;QACtC,KAAK,MAAM,SAAS,IAAI,qBAAqB,EAAE,CAAC;YAC9C,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1F,aAAa,GAAG,SAAS,CAAC;gBAC1B,MAAM;YACR,CAAC;QACH,CAAC;QACD,mCAAmC;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,2EAA2E;QAC3E,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAC7E,MAAM,cAAc,GAAG,sBAAsB,CAAC;YAC5C,OAAO,EAAE,2BAA2B;YACpC,IAAI,EAAE,QAAQ;SACf,CAAC,CAAC;QAEH,OAAO;YACL,KAAK,EAAE,cAAc,CAAC,aAAa,CAAC;YACpC,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,aAAa;SACvB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,oEAAoE;QACpE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAC1D,gEAAgE;QAChE,IAAI,OAAO,GAAG,KAAK,WAAW;YAAE,OAAO,IAAI,CAAC;QAE5C,oEAAoE;QACpE,gEAAgE;QAChE,OAAO;YACL,4EAA4E;YAC5E,KAAK,EAAE,IAAgC;YACvC,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,2BAA2B;SACrC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,YAAY,CAAC,OAAe;IACzC,IAAI,CAAC;QACH,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC9D,MAAM,iBAAiB,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtD,OAAO;YACL,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC;YACjC,IAAI,EAAE,WAAW;YACjB,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,6BAA6B,GAAG,2BAAoC,CAAC;AAE3E;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,8BAA8B,CAAC,QAAgB;IAC5D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAC;QACjF,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,2BAA2B,CAAC;IACrC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,KAAK,UAAU,kBAAkB;IAC/B,IAAI,CAAC;QACH,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEvD,qEAAqE;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC;QAEnD,IAAI,QAAQ,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;YAC9D,MAAM,iBAAiB,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACtD,OAAO;gBACL,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxC,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,QAAQ,CAAC,KAAK;aACxB,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACrE,MAAM,OAAO,GAAG,MAAM,8BAA8B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC1B,yEAAyE;YACzE,0EAA0E;YAC1E,mEAAmE;YACnE,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,sBAAsB,CAAC;gBACtC,OAAO;gBACP,IAAI,EAAE,QAAQ,CAAC,QAAQ;gBACvB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC,CAAC;YACH,OAAO;gBACL,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/B,IAAI,EAAE,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;gBAC1D,OAAO,EAAE,QAAQ,CAAC,KAAK;aACxB,CAAC;QACJ,CAAC;QAED,8EAA8E;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/core",
3
- "version": "2026.6.4",
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.4",
433
- "@cleocode/agents": "2026.6.4",
434
- "@cleocode/contracts": "2026.6.4",
435
- "@cleocode/git-shim": "2026.6.4",
436
- "@cleocode/caamp": "2026.6.4",
437
- "@cleocode/worktree": "2026.6.4",
438
- "@cleocode/skills": "2026.6.4",
439
- "@cleocode/nexus": "2026.6.4",
440
- "@cleocode/lafs": "2026.6.4",
441
- "@cleocode/paths": "2026.6.4"
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.4"
475
+ "@cleocode/studio": "^2026.6.5"
476
476
  },
477
477
  "scripts": {
478
478
  "build": "tsc",