agentfootprint 8.0.0 → 8.1.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/AGENTS.md +14 -9
- package/README.md +11 -7
- package/ai-instructions/claude-code/SKILL.md +1 -1
- package/ai-instructions/clinerules +1 -1
- package/ai-instructions/copilot-instructions.md +1 -1
- package/ai-instructions/cursor/agentfootprint.md +1 -1
- package/ai-instructions/kiro/agentfootprint.md +1 -1
- package/ai-instructions/windsurfrules +1 -1
- package/dist/adapters/llm/OllamaProvider.js +628 -0
- package/dist/adapters/llm/OllamaProvider.js.map +1 -0
- package/dist/adapters/llm/OpenAIProvider.js +12 -21
- package/dist/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/adapters/llm/createProvider.js +35 -6
- package/dist/adapters/llm/createProvider.js.map +1 -1
- package/dist/core/agent/window/errors.js +4 -3
- package/dist/core/agent/window/errors.js.map +1 -1
- package/dist/core/agent/window/strategies/slidingWindow.js +2 -2
- package/dist/esm/adapters/llm/OllamaProvider.d.ts +182 -0
- package/dist/esm/adapters/llm/OllamaProvider.js +622 -0
- package/dist/esm/adapters/llm/OllamaProvider.js.map +1 -0
- package/dist/esm/adapters/llm/OpenAIProvider.d.ts +0 -12
- package/dist/esm/adapters/llm/OpenAIProvider.js +11 -19
- package/dist/esm/adapters/llm/OpenAIProvider.js.map +1 -1
- package/dist/esm/adapters/llm/createProvider.d.ts +25 -8
- package/dist/esm/adapters/llm/createProvider.js +35 -6
- package/dist/esm/adapters/llm/createProvider.js.map +1 -1
- package/dist/esm/core/agent/window/errors.js +4 -3
- package/dist/esm/core/agent/window/errors.js.map +1 -1
- package/dist/esm/core/agent/window/strategies/slidingWindow.d.ts +2 -2
- package/dist/esm/core/agent/window/strategies/slidingWindow.js +2 -2
- package/dist/esm/providers.d.ts +13 -5
- package/dist/esm/providers.js +13 -5
- package/dist/esm/providers.js.map +1 -1
- package/dist/esm/thinking/OllamaThinkingHandler.d.ts +60 -0
- package/dist/esm/thinking/OllamaThinkingHandler.js +107 -0
- package/dist/esm/thinking/OllamaThinkingHandler.js.map +1 -0
- package/dist/esm/thinking/index.d.ts +1 -0
- package/dist/esm/thinking/index.js +1 -0
- package/dist/esm/thinking/index.js.map +1 -1
- package/dist/esm/thinking/registry.js +2 -0
- package/dist/esm/thinking/registry.js.map +1 -1
- package/dist/providers.js +16 -6
- package/dist/providers.js.map +1 -1
- package/dist/thinking/OllamaThinkingHandler.js +111 -0
- package/dist/thinking/OllamaThinkingHandler.js.map +1 -0
- package/dist/thinking/index.js +4 -1
- package/dist/thinking/index.js.map +1 -1
- package/dist/thinking/registry.js +2 -0
- package/dist/thinking/registry.js.map +1 -1
- package/dist/types/adapters/llm/OllamaProvider.d.ts +183 -0
- package/dist/types/adapters/llm/OllamaProvider.d.ts.map +1 -0
- package/dist/types/adapters/llm/OpenAIProvider.d.ts +0 -12
- package/dist/types/adapters/llm/OpenAIProvider.d.ts.map +1 -1
- package/dist/types/adapters/llm/createProvider.d.ts +25 -8
- package/dist/types/adapters/llm/createProvider.d.ts.map +1 -1
- package/dist/types/core/agent/window/errors.d.ts.map +1 -1
- package/dist/types/core/agent/window/strategies/slidingWindow.d.ts +2 -2
- package/dist/types/providers.d.ts +13 -5
- package/dist/types/providers.d.ts.map +1 -1
- package/dist/types/thinking/OllamaThinkingHandler.d.ts +61 -0
- package/dist/types/thinking/OllamaThinkingHandler.d.ts.map +1 -0
- package/dist/types/thinking/index.d.ts +1 -0
- package/dist/types/thinking/index.d.ts.map +1 -1
- package/dist/types/thinking/registry.d.ts.map +1 -1
- package/package.json +3 -1
|
@@ -273,25 +273,17 @@ function resolveAzureClient(options) {
|
|
|
273
273
|
...(deployment && { deployment }),
|
|
274
274
|
});
|
|
275
275
|
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
const inner = openai({
|
|
288
|
-
...options,
|
|
289
|
-
baseURL: options.baseURL ?? `${host}/v1`,
|
|
290
|
-
apiKey: options.apiKey ?? 'ollama', // Ollama ignores the key; SDK requires non-empty.
|
|
291
|
-
defaultModel: options.defaultModel ?? 'llama3.2',
|
|
292
|
-
});
|
|
293
|
-
return { ...inner, name: 'ollama' };
|
|
294
|
-
}
|
|
276
|
+
// ─── Ollama ─────────────────────────────────────────────────────────
|
|
277
|
+
//
|
|
278
|
+
// `ollama()` used to live here as a thin wrapper over `openai({ baseURL })`.
|
|
279
|
+
// It moved to its own native adapter in 8.1.0 (`./OllamaProvider.ts`) so the
|
|
280
|
+
// free rung of the ladder stops needing the `openai` package, stops labelling
|
|
281
|
+
// its failures `[openai]`, and starts reporting real token counts.
|
|
282
|
+
//
|
|
283
|
+
// The OpenAI-compatible endpoint still works and is still supported — it is
|
|
284
|
+
// now something you ask for explicitly:
|
|
285
|
+
//
|
|
286
|
+
// openai({ baseURL: 'http://localhost:11434/v1', apiKey: 'ollama' })
|
|
295
287
|
// ─── Internals ──────────────────────────────────────────────────────
|
|
296
288
|
function resolveClient(options) {
|
|
297
289
|
if (options._client)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/OpenAIProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OpenAIProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/OpenAIProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* defaultModel: process.env.LLM_MODEL,
|
|
16
16
|
* } as CreateProviderOptions);
|
|
17
17
|
*
|
|
18
|
-
* For provider-specific options (Bedrock region, Ollama
|
|
18
|
+
* For provider-specific options (Bedrock region, Ollama baseUrl, Browser
|
|
19
19
|
* apiUrl, etc.) construct the underlying factory directly — this
|
|
20
20
|
* helper deliberately exposes only the common subset.
|
|
21
21
|
*/
|
|
@@ -23,6 +23,7 @@ import type { LLMProvider } from '../types.js';
|
|
|
23
23
|
import { type MockProviderOptions } from './MockProvider.js';
|
|
24
24
|
import { type AnthropicProviderOptions } from './AnthropicProvider.js';
|
|
25
25
|
import { type OpenAIProviderOptions } from './OpenAIProvider.js';
|
|
26
|
+
import { type OllamaProviderOptions } from './OllamaProvider.js';
|
|
26
27
|
import { type BedrockProviderOptions } from './BedrockProvider.js';
|
|
27
28
|
import { type BrowserAnthropicProviderOptions } from './BrowserAnthropicProvider.js';
|
|
28
29
|
import { type BrowserOpenAIProviderOptions } from './BrowserOpenAIProvider.js';
|
|
@@ -42,9 +43,7 @@ export type CreateProviderOptions = ({
|
|
|
42
43
|
readonly kind: 'openai';
|
|
43
44
|
} & OpenAIProviderOptions) | ({
|
|
44
45
|
readonly kind: 'ollama';
|
|
45
|
-
} &
|
|
46
|
-
readonly host?: string;
|
|
47
|
-
}) | ({
|
|
46
|
+
} & OllamaProviderOptions) | ({
|
|
48
47
|
readonly kind: 'bedrock';
|
|
49
48
|
} & BedrockProviderOptions) | ({
|
|
50
49
|
readonly kind: 'browser-anthropic';
|
|
@@ -60,7 +59,7 @@ export declare function createProvider(options: CreateProviderOptions): LLMProvi
|
|
|
60
59
|
export interface ProviderFromEnv {
|
|
61
60
|
readonly provider: LLMProvider;
|
|
62
61
|
readonly model: string;
|
|
63
|
-
readonly kind: 'azure-openai' | 'anthropic' | 'openai' | 'mock';
|
|
62
|
+
readonly kind: 'ollama' | 'azure-openai' | 'anthropic' | 'openai' | 'mock';
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
65
|
* Resolve an `LLMProvider` from environment variables — drop your company's
|
|
@@ -69,12 +68,30 @@ export interface ProviderFromEnv {
|
|
|
69
68
|
* only for the detected provider.)
|
|
70
69
|
*
|
|
71
70
|
* Detection order (first match wins):
|
|
72
|
-
* 1. **
|
|
71
|
+
* 1. **Ollama (local)** — `OLLAMA_MODEL` names a model, e.g. `qwen3`
|
|
72
|
+
* [+ `OLLAMA_HOST` for a runtime that isn't on localhost]
|
|
73
|
+
* 2. **Azure OpenAI** — `AZURE_OPENAI_API_KEY` + (`AZURE_OPENAI_ENDPOINT` |
|
|
73
74
|
* `OPENAI_BASE_URL`) [+ `AZURE_OPENAI_API_VERSION`, `AZURE_OPENAI_DEPLOYMENT`|`MODEL_NAME`]
|
|
74
|
-
*
|
|
75
|
-
*
|
|
75
|
+
* 3. **Anthropic** — `ANTHROPIC_API_KEY`
|
|
76
|
+
* 4. **OpenAI** — `OPENAI_API_KEY`
|
|
76
77
|
* Otherwise throws (or returns the mock when `{ fallbackToMock: true }`).
|
|
77
78
|
*
|
|
79
|
+
* **Why the local model goes first.** Every other arm triggers on a
|
|
80
|
+
* CREDENTIAL, and credentials arrive in a shell by accident all the time —
|
|
81
|
+
* a key exported in `.zshrc` two months ago for something else. `OLLAMA_MODEL`
|
|
82
|
+
* triggers on a NAME you had to choose and type, so its presence is a
|
|
83
|
+
* declaration rather than a leftover: someone who writes `OLLAMA_MODEL=qwen3`
|
|
84
|
+
* has said which model they want this run to use, and honoring the cloud key
|
|
85
|
+
* instead would both ignore them and cost them money. (`OLLAMA_HOST` alone is
|
|
86
|
+
* NOT a trigger — people export it just to run Ollama, and it must not hijack
|
|
87
|
+
* an app that never asked for a local model.)
|
|
88
|
+
*
|
|
89
|
+
* **No probing.** This function reads environment variables and nothing else.
|
|
90
|
+
* It never opens a socket to see whether a daemon is up — its answer stays
|
|
91
|
+
* deterministic, instant, and identical on a laptop and in CI. If `OLLAMA_MODEL`
|
|
92
|
+
* is set and the daemon is down, you get the provider, and the refusal arrives
|
|
93
|
+
* from the call itself with `ollama serve` in the message.
|
|
94
|
+
*
|
|
78
95
|
* @example
|
|
79
96
|
* import { providerFromEnv } from 'agentfootprint';
|
|
80
97
|
* const { provider, model, kind } = providerFromEnv({ fallbackToMock: true });
|
|
@@ -15,13 +15,14 @@
|
|
|
15
15
|
* defaultModel: process.env.LLM_MODEL,
|
|
16
16
|
* } as CreateProviderOptions);
|
|
17
17
|
*
|
|
18
|
-
* For provider-specific options (Bedrock region, Ollama
|
|
18
|
+
* For provider-specific options (Bedrock region, Ollama baseUrl, Browser
|
|
19
19
|
* apiUrl, etc.) construct the underlying factory directly — this
|
|
20
20
|
* helper deliberately exposes only the common subset.
|
|
21
21
|
*/
|
|
22
22
|
import { mock } from './MockProvider.js';
|
|
23
23
|
import { anthropic } from './AnthropicProvider.js';
|
|
24
|
-
import { openai,
|
|
24
|
+
import { openai, azureOpenai } from './OpenAIProvider.js';
|
|
25
|
+
import { ollama } from './OllamaProvider.js';
|
|
25
26
|
import { bedrock } from './BedrockProvider.js';
|
|
26
27
|
import { browserAnthropic, } from './BrowserAnthropicProvider.js';
|
|
27
28
|
import { browserOpenai } from './BrowserOpenAIProvider.js';
|
|
@@ -58,12 +59,30 @@ export function createProvider(options) {
|
|
|
58
59
|
* only for the detected provider.)
|
|
59
60
|
*
|
|
60
61
|
* Detection order (first match wins):
|
|
61
|
-
* 1. **
|
|
62
|
+
* 1. **Ollama (local)** — `OLLAMA_MODEL` names a model, e.g. `qwen3`
|
|
63
|
+
* [+ `OLLAMA_HOST` for a runtime that isn't on localhost]
|
|
64
|
+
* 2. **Azure OpenAI** — `AZURE_OPENAI_API_KEY` + (`AZURE_OPENAI_ENDPOINT` |
|
|
62
65
|
* `OPENAI_BASE_URL`) [+ `AZURE_OPENAI_API_VERSION`, `AZURE_OPENAI_DEPLOYMENT`|`MODEL_NAME`]
|
|
63
|
-
*
|
|
64
|
-
*
|
|
66
|
+
* 3. **Anthropic** — `ANTHROPIC_API_KEY`
|
|
67
|
+
* 4. **OpenAI** — `OPENAI_API_KEY`
|
|
65
68
|
* Otherwise throws (or returns the mock when `{ fallbackToMock: true }`).
|
|
66
69
|
*
|
|
70
|
+
* **Why the local model goes first.** Every other arm triggers on a
|
|
71
|
+
* CREDENTIAL, and credentials arrive in a shell by accident all the time —
|
|
72
|
+
* a key exported in `.zshrc` two months ago for something else. `OLLAMA_MODEL`
|
|
73
|
+
* triggers on a NAME you had to choose and type, so its presence is a
|
|
74
|
+
* declaration rather than a leftover: someone who writes `OLLAMA_MODEL=qwen3`
|
|
75
|
+
* has said which model they want this run to use, and honoring the cloud key
|
|
76
|
+
* instead would both ignore them and cost them money. (`OLLAMA_HOST` alone is
|
|
77
|
+
* NOT a trigger — people export it just to run Ollama, and it must not hijack
|
|
78
|
+
* an app that never asked for a local model.)
|
|
79
|
+
*
|
|
80
|
+
* **No probing.** This function reads environment variables and nothing else.
|
|
81
|
+
* It never opens a socket to see whether a daemon is up — its answer stays
|
|
82
|
+
* deterministic, instant, and identical on a laptop and in CI. If `OLLAMA_MODEL`
|
|
83
|
+
* is set and the daemon is down, you get the provider, and the refusal arrives
|
|
84
|
+
* from the call itself with `ollama serve` in the message.
|
|
85
|
+
*
|
|
67
86
|
* @example
|
|
68
87
|
* import { providerFromEnv } from 'agentfootprint';
|
|
69
88
|
* const { provider, model, kind } = providerFromEnv({ fallbackToMock: true });
|
|
@@ -71,6 +90,15 @@ export function createProvider(options) {
|
|
|
71
90
|
*/
|
|
72
91
|
export function providerFromEnv(opts = {}) {
|
|
73
92
|
const env = (typeof process !== 'undefined' ? process.env : {});
|
|
93
|
+
if (env.OLLAMA_MODEL) {
|
|
94
|
+
return {
|
|
95
|
+
provider: ollama(env.OLLAMA_MODEL, {
|
|
96
|
+
...(env.OLLAMA_HOST && { baseUrl: env.OLLAMA_HOST }),
|
|
97
|
+
}),
|
|
98
|
+
model: env.OLLAMA_MODEL,
|
|
99
|
+
kind: 'ollama',
|
|
100
|
+
};
|
|
101
|
+
}
|
|
74
102
|
const azureEndpoint = env.AZURE_OPENAI_ENDPOINT ?? env.OPENAI_BASE_URL;
|
|
75
103
|
if (env.AZURE_OPENAI_API_KEY && azureEndpoint) {
|
|
76
104
|
return {
|
|
@@ -107,7 +135,8 @@ export function providerFromEnv(opts = {}) {
|
|
|
107
135
|
kind: 'mock',
|
|
108
136
|
};
|
|
109
137
|
}
|
|
110
|
-
throw new Error('providerFromEnv: no provider
|
|
138
|
+
throw new Error('providerFromEnv: no provider declared in the environment. Set one of:\n' +
|
|
139
|
+
' • Ollama: OLLAMA_MODEL (a local model, e.g. qwen3 — free, no API key)\n' +
|
|
111
140
|
' • Azure: AZURE_OPENAI_API_KEY + (AZURE_OPENAI_ENDPOINT | OPENAI_BASE_URL)\n' +
|
|
112
141
|
' + AZURE_OPENAI_API_VERSION + (AZURE_OPENAI_DEPLOYMENT | MODEL_NAME)\n' +
|
|
113
142
|
' • Anthropic: ANTHROPIC_API_KEY\n' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/createProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,IAAI,EAA4B,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAiC,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"createProvider.js","sourceRoot":"","sources":["../../../../src/adapters/llm/createProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,9 +27,10 @@ export class CompactionUnmeasurableError extends Error {
|
|
|
27
27
|
`tokens for the last call, so the window cannot be measured against thresholdTokens. ` +
|
|
28
28
|
`Compaction refuses rather than guess the size of the window or leave a configured ` +
|
|
29
29
|
`budget silently unenforced. Fixes: use a provider that reports usage (anthropic, ` +
|
|
30
|
-
`openai, bedrock and the mock provider all do), or remove .compaction() from
|
|
31
|
-
`Note that
|
|
32
|
-
`streaming
|
|
30
|
+
`openai, bedrock, ollama and the mock provider all do), or remove .compaction() from ` +
|
|
31
|
+
`this agent. Note that an OpenAI-COMPATIBLE endpoint reached through openai({ baseURL }) ` +
|
|
32
|
+
`may not send usage while streaming — for a local model, ollama() talks the native API ` +
|
|
33
|
+
`and always reports it.`);
|
|
33
34
|
this.provider = provider;
|
|
34
35
|
}
|
|
35
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../src/core/agent/window/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAClC,IAAI,GAAG,6BAA6B,CAAC;IACvD,4DAA4D;IACnD,QAAQ,CAAS;IAE1B,YAAY,QAAgB;QAC1B,KAAK,CACH,iDAAiD,QAAQ,kCAAkC;YACzF,sFAAsF;YACtF,oFAAoF;YACpF,mFAAmF;YACnF,0FAA0F;YAC1F,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../src/core/agent/window/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAClC,IAAI,GAAG,6BAA6B,CAAC;IACvD,4DAA4D;IACnD,QAAQ,CAAS;IAE1B,YAAY,QAAgB;QAC1B,KAAK,CACH,iDAAiD,QAAQ,kCAAkC;YACzF,sFAAsF;YACtF,oFAAoF;YACpF,mFAAmF;YACnF,sFAAsF;YACtF,0FAA0F;YAC1F,wFAAwF;YACxF,wBAAwB,CAC3B,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -37,10 +37,10 @@ export declare const SLIDING_WINDOW = "sliding-window";
|
|
|
37
37
|
* @example
|
|
38
38
|
* ```ts
|
|
39
39
|
* import { Agent, slidingWindow } from 'agentfootprint';
|
|
40
|
-
* import { ollama } from 'agentfootprint/
|
|
40
|
+
* import { ollama } from 'agentfootprint/providers';
|
|
41
41
|
*
|
|
42
42
|
* // Works on a provider that reports no usage at all: the trigger is turns.
|
|
43
|
-
* const agent = Agent.create({ provider: ollama(), model: 'llama3' })
|
|
43
|
+
* const agent = Agent.create({ provider: ollama('llama3.2'), model: 'llama3.2' })
|
|
44
44
|
* .window(slidingWindow({ keepRecentTurns: 12 }))
|
|
45
45
|
* .build();
|
|
46
46
|
* ```
|
|
@@ -37,10 +37,10 @@ export const SLIDING_WINDOW = 'sliding-window';
|
|
|
37
37
|
* @example
|
|
38
38
|
* ```ts
|
|
39
39
|
* import { Agent, slidingWindow } from 'agentfootprint';
|
|
40
|
-
* import { ollama } from 'agentfootprint/
|
|
40
|
+
* import { ollama } from 'agentfootprint/providers';
|
|
41
41
|
*
|
|
42
42
|
* // Works on a provider that reports no usage at all: the trigger is turns.
|
|
43
|
-
* const agent = Agent.create({ provider: ollama(), model: 'llama3' })
|
|
43
|
+
* const agent = Agent.create({ provider: ollama('llama3.2'), model: 'llama3.2' })
|
|
44
44
|
* .window(slidingWindow({ keepRecentTurns: 12 }))
|
|
45
45
|
* .build();
|
|
46
46
|
* ```
|
package/dist/esm/providers.d.ts
CHANGED
|
@@ -14,18 +14,26 @@
|
|
|
14
14
|
*
|
|
15
15
|
* What's here today:
|
|
16
16
|
* • `mock` / `MockProvider` — deterministic + realistic-mode mock
|
|
17
|
+
* • `ollama` / `OllamaProvider` — local models, free, no API key
|
|
17
18
|
* • `anthropic` / `AnthropicProvider` — real provider (Claude)
|
|
18
19
|
* • `openai` / `OpenAIProvider` — real provider (GPT)
|
|
20
|
+
* • `bedrock`, `azureOpenai`, and the `browser*` variants
|
|
21
|
+
*
|
|
22
|
+
* The ladder these are FOR: `mock()` while you shape the logic →
|
|
23
|
+
* `ollama('<model>')` for a real model that costs nothing and needs no
|
|
24
|
+
* key → a paid API in production. The agent code above them does not
|
|
25
|
+
* change between the three; that is the whole point of the port.
|
|
19
26
|
*
|
|
20
27
|
* Bring your own (BYO):
|
|
21
|
-
* For
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
28
|
+
* For Cohere / on-prem / fine-tuned models, implement the
|
|
29
|
+
* `LLMProvider` interface (see `LLMProvider` exported from the main
|
|
30
|
+
* barrel) — `complete()` is required, `stream()` is optional. The
|
|
31
|
+
* `MockProvider` source is the canonical reference.
|
|
25
32
|
*/
|
|
26
33
|
export { MockProvider, mock, type MockProviderOptions, type MockReply, type LatencyMs, } from './adapters/llm/MockProvider.js';
|
|
27
34
|
export { anthropic, AnthropicProvider, type AnthropicProviderOptions, } from './adapters/llm/AnthropicProvider.js';
|
|
28
|
-
export { openai, OpenAIProvider,
|
|
35
|
+
export { openai, OpenAIProvider, azureOpenai, type OpenAIProviderOptions, type AzureOpenAIProviderOptions, } from './adapters/llm/OpenAIProvider.js';
|
|
36
|
+
export { ollama, OllamaProvider, OllamaUnavailableError, type OllamaProviderOptions, type ThinkLevel, } from './adapters/llm/OllamaProvider.js';
|
|
29
37
|
export { bedrock, BedrockProvider, type BedrockProviderOptions, } from './adapters/llm/BedrockProvider.js';
|
|
30
38
|
export { browserAnthropic, BrowserAnthropicProvider, type BrowserAnthropicProviderOptions, } from './adapters/llm/BrowserAnthropicProvider.js';
|
|
31
39
|
export { browserOpenai, BrowserOpenAIProvider, type BrowserOpenAIProviderOptions, browserAzureOpenai, BrowserAzureOpenAIProvider, type BrowserAzureOpenAIProviderOptions, } from './adapters/llm/BrowserOpenAIProvider.js';
|
package/dist/esm/providers.js
CHANGED
|
@@ -14,18 +14,26 @@
|
|
|
14
14
|
*
|
|
15
15
|
* What's here today:
|
|
16
16
|
* • `mock` / `MockProvider` — deterministic + realistic-mode mock
|
|
17
|
+
* • `ollama` / `OllamaProvider` — local models, free, no API key
|
|
17
18
|
* • `anthropic` / `AnthropicProvider` — real provider (Claude)
|
|
18
19
|
* • `openai` / `OpenAIProvider` — real provider (GPT)
|
|
20
|
+
* • `bedrock`, `azureOpenai`, and the `browser*` variants
|
|
21
|
+
*
|
|
22
|
+
* The ladder these are FOR: `mock()` while you shape the logic →
|
|
23
|
+
* `ollama('<model>')` for a real model that costs nothing and needs no
|
|
24
|
+
* key → a paid API in production. The agent code above them does not
|
|
25
|
+
* change between the three; that is the whole point of the port.
|
|
19
26
|
*
|
|
20
27
|
* Bring your own (BYO):
|
|
21
|
-
* For
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
28
|
+
* For Cohere / on-prem / fine-tuned models, implement the
|
|
29
|
+
* `LLMProvider` interface (see `LLMProvider` exported from the main
|
|
30
|
+
* barrel) — `complete()` is required, `stream()` is optional. The
|
|
31
|
+
* `MockProvider` source is the canonical reference.
|
|
25
32
|
*/
|
|
26
33
|
export { MockProvider, mock, } from './adapters/llm/MockProvider.js';
|
|
27
34
|
export { anthropic, AnthropicProvider, } from './adapters/llm/AnthropicProvider.js';
|
|
28
|
-
export { openai, OpenAIProvider,
|
|
35
|
+
export { openai, OpenAIProvider, azureOpenai, } from './adapters/llm/OpenAIProvider.js';
|
|
36
|
+
export { ollama, OllamaProvider, OllamaUnavailableError, } from './adapters/llm/OllamaProvider.js';
|
|
29
37
|
export { bedrock, BedrockProvider, } from './adapters/llm/BedrockProvider.js';
|
|
30
38
|
export { browserAnthropic, BrowserAnthropicProvider, } from './adapters/llm/BrowserAnthropicProvider.js';
|
|
31
39
|
export { browserOpenai, BrowserOpenAIProvider, browserAzureOpenai, BrowserAzureOpenAIProvider, } from './adapters/llm/BrowserOpenAIProvider.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EACL,YAAY,EACZ,IAAI,GAIL,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,SAAS,EACT,iBAAiB,GAElB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,MAAM,EACN,cAAc,EACd,WAAW,GAGZ,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,MAAM,EACN,cAAc,EACd,sBAAsB,GAGvB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,OAAO,EACP,eAAe,GAEhB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GAEzB,MAAM,4CAA4C,CAAC;AAEpD,OAAO,EACL,aAAa,EACb,qBAAqB,EAErB,kBAAkB,EAClB,0BAA0B,GAE3B,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,cAAc,GAGf,MAAM,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OllamaThinkingHandler — normalizes a local reasoning model's thinking
|
|
3
|
+
* into the framework's `ThinkingBlock[]` contract.
|
|
4
|
+
*
|
|
5
|
+
* Local reasoning models (deepseek-r1, qwen3, gpt-oss, …) reason in the
|
|
6
|
+
* open, and where that reasoning LANDS depends on how they were asked:
|
|
7
|
+
*
|
|
8
|
+
* 1. ASKED (`ollama('qwen3', { think: true })`, or the agent's
|
|
9
|
+
* `.thinking({ budget })`) — Ollama lifts the reasoning out of the
|
|
10
|
+
* answer into `message.thinking`. The adapter forwards it as
|
|
11
|
+
* `{ kind: 'field', thinking }`. This is the good path.
|
|
12
|
+
*
|
|
13
|
+
* 2. NOT ASKED — the same model writes `<think>…</think>` straight into
|
|
14
|
+
* the answer text. The adapter recognizes the shape and forwards the
|
|
15
|
+
* whole answer as `{ kind: 'inline', content }`.
|
|
16
|
+
*
|
|
17
|
+
* **The library recognizes the inline shape; it never rewrites the
|
|
18
|
+
* answer.** Blocks produced from case 2 describe text that is STILL
|
|
19
|
+
* present, verbatim, in `LLMResponse.content` — because silently editing
|
|
20
|
+
* a model's answer is a meaning change, and that is the application's
|
|
21
|
+
* decision to make, not this library's. If you want the reasoning out of
|
|
22
|
+
* the answer, ask for it: turn `think` on, and the model stops putting it
|
|
23
|
+
* there.
|
|
24
|
+
*
|
|
25
|
+
* **No signature** — nothing on this wire is signed, so there is no
|
|
26
|
+
* round-trip integrity invariant (unlike Anthropic). `signature` stays
|
|
27
|
+
* undefined.
|
|
28
|
+
*
|
|
29
|
+
* **No `summary` flag** — this is raw reasoning, not a structured summary
|
|
30
|
+
* (unlike OpenAI's `reasoning_summary`).
|
|
31
|
+
*
|
|
32
|
+
* **`parseChunk`** — the adapter already emits `LLMChunk.thinkingDelta`
|
|
33
|
+
* directly while streaming (Ollama sends `message.thinking` deltas frame
|
|
34
|
+
* by frame), so the framework does not need this to see live reasoning.
|
|
35
|
+
* It is implemented anyway for consumers driving the handler themselves.
|
|
36
|
+
*/
|
|
37
|
+
import type { ThinkingHandler } from './types.js';
|
|
38
|
+
/**
|
|
39
|
+
* What `OllamaProvider` puts on `LLMResponse.rawThinking`.
|
|
40
|
+
*
|
|
41
|
+
* Tagged rather than a bare string so the handler never has to GUESS which
|
|
42
|
+
* of the two situations it is looking at — and so a consumer reading the
|
|
43
|
+
* raw value can tell whether the reasoning is also sitting in the answer.
|
|
44
|
+
*/
|
|
45
|
+
export type OllamaRawThinking = {
|
|
46
|
+
readonly kind: 'field';
|
|
47
|
+
readonly thinking: string;
|
|
48
|
+
} | {
|
|
49
|
+
readonly kind: 'inline';
|
|
50
|
+
readonly content: string;
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Pull the reasoning out of text that carries `<think>` tags.
|
|
54
|
+
*
|
|
55
|
+
* All tag PARSING lives here, in the handler — the adapter only notices
|
|
56
|
+
* that a `<think` substring is present and tags the payload accordingly.
|
|
57
|
+
* Exported so a consumer driving normalization by hand can reuse it.
|
|
58
|
+
*/
|
|
59
|
+
export declare function extractInlineThinking(text: string): readonly string[];
|
|
60
|
+
export declare const ollamaThinkingHandler: ThinkingHandler;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OllamaThinkingHandler — normalizes a local reasoning model's thinking
|
|
3
|
+
* into the framework's `ThinkingBlock[]` contract.
|
|
4
|
+
*
|
|
5
|
+
* Local reasoning models (deepseek-r1, qwen3, gpt-oss, …) reason in the
|
|
6
|
+
* open, and where that reasoning LANDS depends on how they were asked:
|
|
7
|
+
*
|
|
8
|
+
* 1. ASKED (`ollama('qwen3', { think: true })`, or the agent's
|
|
9
|
+
* `.thinking({ budget })`) — Ollama lifts the reasoning out of the
|
|
10
|
+
* answer into `message.thinking`. The adapter forwards it as
|
|
11
|
+
* `{ kind: 'field', thinking }`. This is the good path.
|
|
12
|
+
*
|
|
13
|
+
* 2. NOT ASKED — the same model writes `<think>…</think>` straight into
|
|
14
|
+
* the answer text. The adapter recognizes the shape and forwards the
|
|
15
|
+
* whole answer as `{ kind: 'inline', content }`.
|
|
16
|
+
*
|
|
17
|
+
* **The library recognizes the inline shape; it never rewrites the
|
|
18
|
+
* answer.** Blocks produced from case 2 describe text that is STILL
|
|
19
|
+
* present, verbatim, in `LLMResponse.content` — because silently editing
|
|
20
|
+
* a model's answer is a meaning change, and that is the application's
|
|
21
|
+
* decision to make, not this library's. If you want the reasoning out of
|
|
22
|
+
* the answer, ask for it: turn `think` on, and the model stops putting it
|
|
23
|
+
* there.
|
|
24
|
+
*
|
|
25
|
+
* **No signature** — nothing on this wire is signed, so there is no
|
|
26
|
+
* round-trip integrity invariant (unlike Anthropic). `signature` stays
|
|
27
|
+
* undefined.
|
|
28
|
+
*
|
|
29
|
+
* **No `summary` flag** — this is raw reasoning, not a structured summary
|
|
30
|
+
* (unlike OpenAI's `reasoning_summary`).
|
|
31
|
+
*
|
|
32
|
+
* **`parseChunk`** — the adapter already emits `LLMChunk.thinkingDelta`
|
|
33
|
+
* directly while streaming (Ollama sends `message.thinking` deltas frame
|
|
34
|
+
* by frame), so the framework does not need this to see live reasoning.
|
|
35
|
+
* It is implemented anyway for consumers driving the handler themselves.
|
|
36
|
+
*/
|
|
37
|
+
/** `<think>…</think>`, including an unclosed one from a truncated answer. */
|
|
38
|
+
const THINK_TAG = /<think>([\s\S]*?)(?:<\/think>|$)/gi;
|
|
39
|
+
/**
|
|
40
|
+
* Pull the reasoning out of text that carries `<think>` tags.
|
|
41
|
+
*
|
|
42
|
+
* All tag PARSING lives here, in the handler — the adapter only notices
|
|
43
|
+
* that a `<think` substring is present and tags the payload accordingly.
|
|
44
|
+
* Exported so a consumer driving normalization by hand can reuse it.
|
|
45
|
+
*/
|
|
46
|
+
export function extractInlineThinking(text) {
|
|
47
|
+
if (!text.includes('<think'))
|
|
48
|
+
return [];
|
|
49
|
+
const out = [];
|
|
50
|
+
// `matchAll` needs the /g flag and a fresh lastIndex per call.
|
|
51
|
+
THINK_TAG.lastIndex = 0;
|
|
52
|
+
for (const match of text.matchAll(THINK_TAG)) {
|
|
53
|
+
const inner = (match[1] ?? '').trim();
|
|
54
|
+
if (inner.length > 0)
|
|
55
|
+
out.push(inner);
|
|
56
|
+
}
|
|
57
|
+
return out;
|
|
58
|
+
}
|
|
59
|
+
function isRawThinking(raw) {
|
|
60
|
+
return typeof raw === 'object' && raw !== null && 'kind' in raw;
|
|
61
|
+
}
|
|
62
|
+
export const ollamaThinkingHandler = {
|
|
63
|
+
id: 'ollama',
|
|
64
|
+
providerNames: ['ollama'],
|
|
65
|
+
normalize(raw) {
|
|
66
|
+
if (raw === undefined || raw === null)
|
|
67
|
+
return [];
|
|
68
|
+
// Bare string — a hand-fed value, or a consumer-authored adapter that
|
|
69
|
+
// passes `message.thinking` straight through. Treat it as reasoning,
|
|
70
|
+
// but still honor tags if they are in there.
|
|
71
|
+
if (typeof raw === 'string')
|
|
72
|
+
return blocksFromText(raw);
|
|
73
|
+
if (isRawThinking(raw)) {
|
|
74
|
+
if (raw.kind === 'field') {
|
|
75
|
+
return typeof raw.thinking === 'string' ? blocksFromText(raw.thinking) : [];
|
|
76
|
+
}
|
|
77
|
+
if (raw.kind === 'inline') {
|
|
78
|
+
if (typeof raw.content !== 'string')
|
|
79
|
+
return [];
|
|
80
|
+
return extractInlineThinking(raw.content).map(toBlock);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Unknown shape — empty rather than throw. The framework catches throws
|
|
84
|
+
// and emits parse_failed; graceful empty is the right answer for a
|
|
85
|
+
// wire that may grow fields we have not seen yet.
|
|
86
|
+
return [];
|
|
87
|
+
},
|
|
88
|
+
parseChunk(chunk) {
|
|
89
|
+
if (typeof chunk !== 'object' || chunk === null)
|
|
90
|
+
return {};
|
|
91
|
+
const message = chunk.message;
|
|
92
|
+
const thinking = message?.thinking;
|
|
93
|
+
return typeof thinking === 'string' && thinking.length > 0 ? { thinkingDelta: thinking } : {};
|
|
94
|
+
},
|
|
95
|
+
};
|
|
96
|
+
/** Text → blocks. Tagged text yields one block per tag; plain text one block. */
|
|
97
|
+
function blocksFromText(text) {
|
|
98
|
+
const tagged = extractInlineThinking(text);
|
|
99
|
+
if (tagged.length > 0)
|
|
100
|
+
return tagged.map(toBlock);
|
|
101
|
+
const trimmed = text.trim();
|
|
102
|
+
return trimmed.length > 0 ? [toBlock(trimmed)] : [];
|
|
103
|
+
}
|
|
104
|
+
function toBlock(content) {
|
|
105
|
+
return { type: 'thinking', content };
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=OllamaThinkingHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OllamaThinkingHandler.js","sourceRoot":"","sources":["../../../src/thinking/OllamaThinkingHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -52,4 +52,5 @@ export type { ThinkingBlock, ThinkingHandler } from './types.js';
|
|
|
52
52
|
export { mockThinkingHandler, mockAnthropicRaw, mockOpenAIRaw } from './MockThinkingHandler.js';
|
|
53
53
|
export { anthropicThinkingHandler } from './AnthropicThinkingHandler.js';
|
|
54
54
|
export { openAIThinkingHandler } from './OpenAIThinkingHandler.js';
|
|
55
|
+
export { ollamaThinkingHandler, extractInlineThinking, type OllamaRawThinking, } from './OllamaThinkingHandler.js';
|
|
55
56
|
export { SHIPPED_THINKING_HANDLERS, findThinkingHandler } from './registry.js';
|
|
@@ -51,5 +51,6 @@
|
|
|
51
51
|
export { mockThinkingHandler, mockAnthropicRaw, mockOpenAIRaw } from './MockThinkingHandler.js';
|
|
52
52
|
export { anthropicThinkingHandler } from './AnthropicThinkingHandler.js';
|
|
53
53
|
export { openAIThinkingHandler } from './OpenAIThinkingHandler.js';
|
|
54
|
+
export { ollamaThinkingHandler, extractInlineThinking, } from './OllamaThinkingHandler.js';
|
|
54
55
|
export { SHIPPED_THINKING_HANDLERS, findThinkingHandler } from './registry.js';
|
|
55
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/thinking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAIH,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/thinking/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAIH,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEhG,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EACL,qBAAqB,EACrB,qBAAqB,GAEtB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { anthropicThinkingHandler } from './AnthropicThinkingHandler.js';
|
|
17
17
|
import { mockThinkingHandler } from './MockThinkingHandler.js';
|
|
18
|
+
import { ollamaThinkingHandler } from './OllamaThinkingHandler.js';
|
|
18
19
|
import { openAIThinkingHandler } from './OpenAIThinkingHandler.js';
|
|
19
20
|
/**
|
|
20
21
|
* All thinking handlers shipped with the library. Append in alphabetical
|
|
@@ -23,6 +24,7 @@ import { openAIThinkingHandler } from './OpenAIThinkingHandler.js';
|
|
|
23
24
|
export const SHIPPED_THINKING_HANDLERS = [
|
|
24
25
|
anthropicThinkingHandler,
|
|
25
26
|
mockThinkingHandler,
|
|
27
|
+
ollamaThinkingHandler,
|
|
26
28
|
openAIThinkingHandler,
|
|
27
29
|
];
|
|
28
30
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/thinking/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA+B;IACnE,wBAAwB;IACxB,mBAAmB;IACnB,qBAAqB;CACtB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,KAAK,MAAM,OAAO,IAAI,yBAAyB,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/thinking/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA+B;IACnE,wBAAwB;IACxB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,KAAK,MAAM,OAAO,IAAI,yBAAyB,EAAE,CAAC;QAChD,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;YAAE,OAAO,OAAO,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|