@nemesis-oss/ollama-sdk 1.17.0 → 1.18.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/CHANGELOG.md +33 -0
- package/README.md +79 -0
- package/dist/{anthropic-AKbXnWJU.d.cts → anthropic-BvHOsidk.d.cts} +3 -3
- package/dist/{anthropic-CTv2acbj.d.ts → anthropic-CvGVSoVP.d.ts} +3 -3
- package/dist/generated-api.d.cts +2 -2
- package/dist/generated-api.d.ts +2 -2
- package/dist/generated-models-schemas.cjs +2 -2
- package/dist/generated-models-schemas.cjs.map +1 -1
- package/dist/generated-models-schemas.js +2 -2
- package/dist/generated-models-schemas.js.map +1 -1
- package/dist/generated-runtime.cjs +2 -2
- package/dist/generated-runtime.cjs.map +1 -1
- package/dist/generated-runtime.js +2 -2
- package/dist/generated-runtime.js.map +1 -1
- package/dist/index.cjs +84 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +220 -6
- package/dist/index.d.ts +220 -6
- package/dist/index.js +81 -7
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.json +6 -8
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,8 @@ export { L as ListResponse, x as Logprob, y as LogprobToken, z as ModelDetails,
|
|
|
3
3
|
import { H as HttpClient, F as FetchLike, M as Middleware, L as Logger, R as RequestLifecycleHook, c as OllamaStreamEvent, A as AbortableAsyncIterable, d as OllamaStreamEventType, P as ProgressStreamResult, B as BinaryBody, O as OllamaRuntime, C as ChatStreamResult, G as GenerateStreamResult, e as RawUsageSource, T as TokenUsage } from './runtime-CFuv7Ifh.js';
|
|
4
4
|
export { D as DoneEvent, E as ErrorEvent, f as HttpBody, g as HttpClientOptions, h as HttpRequestOptions, i as LifecycleErrorEvent, j as LifecycleRetryEvent, k as LifecycleStartEvent, l as LifecycleSuccessEvent, m as LogFn, n as MessageEvent, o as MiddlewareContext, N as NANOS_PER_MS, p as NANOS_PER_SECOND, q as NETWORK_ERROR_CODES, r as NOOP_LOGGER, s as NextFunction, t as OllamaAbortError, u as OllamaAgentMaxIterationsError, v as OllamaAgentMaxToolCallsError, w as OllamaAgentToolLoopError, x as OllamaAuthError, y as OllamaBadGatewayError, z as OllamaClientError, J as OllamaClientErrorOptions, K as OllamaErrorRequestContext, Q as OllamaErrorResponseContext, U as OllamaGenericClientError, V as OllamaIncompatibleModelError, W as OllamaMcpError, X as OllamaModelRoutingError, Y as OllamaNetworkError, Z as OllamaNotFoundError, _ as OllamaOverloadedError, $ as OllamaQuotaExceededError, a0 as OllamaRateLimitError, a1 as OllamaRequestTooLargeError, a2 as OllamaRequestValidationError, a3 as OllamaResponseValidationError, a4 as OllamaServerError, a5 as OllamaServerVersionUnknownError, a6 as OllamaSkillInvalidError, a7 as OllamaSkillNotFoundError, a8 as OllamaStreamError, a9 as OllamaTimeoutError, aa as OllamaToolTimeoutError, ab as OllamaToolValidationError, ac as OllamaUnsupportedCapabilityError, ad as RequestContext, ae as RequestLifecycleEvent, af as ResponseContext, ag as SseEvent, ah as ThinkingEvent, ai as TokenEvent, aj as ToolCallEvent, ak as composeMiddleware, al as createConsoleLogger, am as extractUsage, an as isNetworkLevelError, ao as mapError, ap as parseSseStream } from './runtime-CFuv7Ifh.js';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
import { R as RequestRunner, S as SystemOneChoiceAnswer, o as SystemOneNoulAnswer, p as SystemOneScoreAnswer, q as SystemOneChoiceQuestion, r as SystemOneNoulQuestion, s as SystemOneScoreQuestion, t as SystemOneRequest$1, u as SystemOneResponse$1, v as SystemOneContent, N as NativeApi, w as OpenAICompatClient, x as AnthropicCompatClient } from './anthropic-
|
|
7
|
-
export { y as AnthropicCacheControl, z as AnthropicContentBlock, B as AnthropicImageContentBlock, C as AnthropicMessage, n as AnthropicMessageStreamEvent, A as AnthropicMessagesRequest, m as AnthropicMessagesResponse, D as AnthropicMessagesStream, E as AnthropicMetadata, F as AnthropicOutputConfig, G as AnthropicRedactedThinkingContentBlock, H as AnthropicSystem, I as AnthropicSystemTextBlock, J as AnthropicTextContentBlock, K as AnthropicThinkingConfig, L as AnthropicThinkingContentBlock, M as AnthropicTool, P as AnthropicToolChoice, Q as AnthropicToolResultContentBlock, T as AnthropicToolUseContentBlock, U as AnthropicUnknownStreamEvent, V as OllamaAnthropicContentBlock, W as OllamaAnthropicMessage, X as OllamaAnthropicMessagesRequest, Y as OllamaAnthropicSystem, Z as OllamaAnthropicSystemTextBlock, _ as OllamaAnthropicTextContentBlock, $ as OllamaAnthropicThinkingConfig, a0 as OllamaAnthropicTool, a1 as OllamaAnthropicToolResultContentBlock, a2 as OllamaOpenAIChatCompletionRequest, a3 as OllamaOpenAIChatContentPart, a4 as OllamaOpenAIChatMessage, a5 as OllamaOpenAICompletionRequest, a6 as OllamaOpenAIEmbeddingRequest, a7 as OllamaOpenAIImageDataUrl, a8 as OllamaOpenAIReasoningEffort, a9 as OllamaOpenAIResponsesRequest, aa as OpenAIChatCompletionChoice, b as OpenAIChatCompletionChunk, ab as OpenAIChatCompletionChunkChoice, ac as OpenAIChatCompletionDelta, O as OpenAIChatCompletionRequest, a as OpenAIChatCompletionResponse, ad as OpenAIChatCompletionStream, ae as OpenAICompletionChoice, e as OpenAICompletionChunk, c as OpenAICompletionRequest, d as OpenAICompletionResponse, af as OpenAICompletionStream, ag as OpenAIContentPart, ah as OpenAIEmbeddingInput, ai as OpenAIEmbeddingItem, f as OpenAIEmbeddingRequest, g as OpenAIEmbeddingResponse, aj as OpenAIFunctionDefinition, ak as OpenAIImageUrlContentPart, h as OpenAIListModelsResponse, al as OpenAIMessage, i as OpenAIModelItem, am as OpenAIReasoningEffort, an as OpenAIResponseFormat, ao as OpenAIResponsesCompletedEvent, ap as OpenAIResponsesContentPartAddedEvent, aq as OpenAIResponsesContentPartDoneEvent, ar as OpenAIResponsesCreatedEvent, as as OpenAIResponsesError, at as OpenAIResponsesEventBase, au as OpenAIResponsesFailedEvent, av as OpenAIResponsesFunctionCallArgumentsDeltaEvent, aw as OpenAIResponsesFunctionCallArgumentsDoneEvent, ax as OpenAIResponsesInProgressEvent, ay as OpenAIResponsesIncompleteDetails, az as OpenAIResponsesIncompleteEvent, aA as OpenAIResponsesOutputContent, aB as OpenAIResponsesOutputFunctionCall, aC as OpenAIResponsesOutputItem, aD as OpenAIResponsesOutputItemAddedEvent, aE as OpenAIResponsesOutputItemDoneEvent, aF as OpenAIResponsesOutputMessage, aG as OpenAIResponsesOutputReasoning, aH as OpenAIResponsesOutputRefusal, aI as OpenAIResponsesOutputTextContent, aJ as OpenAIResponsesOutputTextDeltaEvent, aK as OpenAIResponsesOutputTextDoneEvent, aL as OpenAIResponsesQueuedEvent, aM as OpenAIResponsesReasoningSummaryPartAddedEvent, aN as OpenAIResponsesReasoningSummaryPartDoneEvent, aO as OpenAIResponsesReasoningSummaryTextDeltaEvent, aP as OpenAIResponsesReasoningSummaryTextDoneEvent, aQ as OpenAIResponsesReasoningTextDeltaEvent, aR as OpenAIResponsesReasoningTextDoneEvent, aS as OpenAIResponsesRefusalDeltaEvent, aT as OpenAIResponsesRefusalDoneEvent, j as OpenAIResponsesRequest, k as OpenAIResponsesResponse, aU as OpenAIResponsesStatus, aV as OpenAIResponsesStream, aW as OpenAIResponsesStreamError, l as OpenAIResponsesStreamEvent, aX as OpenAIResponsesUsage, aY as OpenAIStreamOptions, aZ as OpenAITextContentPart, a_ as OpenAITool, a$ as OpenAIToolCall, b0 as OpenAIToolCallDelta, b1 as OpenAIUsage, b2 as SystemOneConfidence, b3 as SystemOneProbabilities } from './anthropic-
|
|
6
|
+
import { R as RequestRunner, S as SystemOneChoiceAnswer, o as SystemOneNoulAnswer, p as SystemOneScoreAnswer, q as SystemOneChoiceQuestion, r as SystemOneNoulQuestion, s as SystemOneScoreQuestion, t as SystemOneRequest$1, u as SystemOneResponse$1, v as SystemOneContent, N as NativeApi, w as OpenAICompatClient, x as AnthropicCompatClient } from './anthropic-CvGVSoVP.js';
|
|
7
|
+
export { y as AnthropicCacheControl, z as AnthropicContentBlock, B as AnthropicImageContentBlock, C as AnthropicMessage, n as AnthropicMessageStreamEvent, A as AnthropicMessagesRequest, m as AnthropicMessagesResponse, D as AnthropicMessagesStream, E as AnthropicMetadata, F as AnthropicOutputConfig, G as AnthropicRedactedThinkingContentBlock, H as AnthropicSystem, I as AnthropicSystemTextBlock, J as AnthropicTextContentBlock, K as AnthropicThinkingConfig, L as AnthropicThinkingContentBlock, M as AnthropicTool, P as AnthropicToolChoice, Q as AnthropicToolResultContentBlock, T as AnthropicToolUseContentBlock, U as AnthropicUnknownStreamEvent, V as OllamaAnthropicContentBlock, W as OllamaAnthropicMessage, X as OllamaAnthropicMessagesRequest, Y as OllamaAnthropicSystem, Z as OllamaAnthropicSystemTextBlock, _ as OllamaAnthropicTextContentBlock, $ as OllamaAnthropicThinkingConfig, a0 as OllamaAnthropicTool, a1 as OllamaAnthropicToolResultContentBlock, a2 as OllamaOpenAIChatCompletionRequest, a3 as OllamaOpenAIChatContentPart, a4 as OllamaOpenAIChatMessage, a5 as OllamaOpenAICompletionRequest, a6 as OllamaOpenAIEmbeddingRequest, a7 as OllamaOpenAIImageDataUrl, a8 as OllamaOpenAIReasoningEffort, a9 as OllamaOpenAIResponsesRequest, aa as OpenAIChatCompletionChoice, b as OpenAIChatCompletionChunk, ab as OpenAIChatCompletionChunkChoice, ac as OpenAIChatCompletionDelta, O as OpenAIChatCompletionRequest, a as OpenAIChatCompletionResponse, ad as OpenAIChatCompletionStream, ae as OpenAICompletionChoice, e as OpenAICompletionChunk, c as OpenAICompletionRequest, d as OpenAICompletionResponse, af as OpenAICompletionStream, ag as OpenAIContentPart, ah as OpenAIEmbeddingInput, ai as OpenAIEmbeddingItem, f as OpenAIEmbeddingRequest, g as OpenAIEmbeddingResponse, aj as OpenAIFunctionDefinition, ak as OpenAIImageUrlContentPart, h as OpenAIListModelsResponse, al as OpenAIMessage, i as OpenAIModelItem, am as OpenAIReasoningEffort, an as OpenAIResponseFormat, ao as OpenAIResponsesCompletedEvent, ap as OpenAIResponsesContentPartAddedEvent, aq as OpenAIResponsesContentPartDoneEvent, ar as OpenAIResponsesCreatedEvent, as as OpenAIResponsesError, at as OpenAIResponsesEventBase, au as OpenAIResponsesFailedEvent, av as OpenAIResponsesFunctionCallArgumentsDeltaEvent, aw as OpenAIResponsesFunctionCallArgumentsDoneEvent, ax as OpenAIResponsesInProgressEvent, ay as OpenAIResponsesIncompleteDetails, az as OpenAIResponsesIncompleteEvent, aA as OpenAIResponsesOutputContent, aB as OpenAIResponsesOutputFunctionCall, aC as OpenAIResponsesOutputItem, aD as OpenAIResponsesOutputItemAddedEvent, aE as OpenAIResponsesOutputItemDoneEvent, aF as OpenAIResponsesOutputMessage, aG as OpenAIResponsesOutputReasoning, aH as OpenAIResponsesOutputRefusal, aI as OpenAIResponsesOutputTextContent, aJ as OpenAIResponsesOutputTextDeltaEvent, aK as OpenAIResponsesOutputTextDoneEvent, aL as OpenAIResponsesQueuedEvent, aM as OpenAIResponsesReasoningSummaryPartAddedEvent, aN as OpenAIResponsesReasoningSummaryPartDoneEvent, aO as OpenAIResponsesReasoningSummaryTextDeltaEvent, aP as OpenAIResponsesReasoningSummaryTextDoneEvent, aQ as OpenAIResponsesReasoningTextDeltaEvent, aR as OpenAIResponsesReasoningTextDoneEvent, aS as OpenAIResponsesRefusalDeltaEvent, aT as OpenAIResponsesRefusalDoneEvent, j as OpenAIResponsesRequest, k as OpenAIResponsesResponse, aU as OpenAIResponsesStatus, aV as OpenAIResponsesStream, aW as OpenAIResponsesStreamError, l as OpenAIResponsesStreamEvent, aX as OpenAIResponsesUsage, aY as OpenAIStreamOptions, aZ as OpenAITextContentPart, a_ as OpenAITool, a$ as OpenAIToolCall, b0 as OpenAIToolCallDelta, b1 as OpenAIUsage, b2 as SystemOneConfidence, b3 as SystemOneProbabilities } from './anthropic-CvGVSoVP.js';
|
|
8
8
|
import { T as ToolHandler, a as Tool, A as AnyTool, b as ToolRegistry, c as ToolExecutionResult } from './compose-CeFbHJeO.js';
|
|
9
9
|
export { d as AppliedSkillResult, e as ApplySkillOptions, P as ParsedFrontmatter, S as Skill, f as SkillFrontmatter, g as SkillSummary, h as ToolExecutionContext, i as ToolExecutionFailure, j as ToolExecutionSuccess, k as ToolRegistryOptions, l as applySkill, p as parseFrontmatter } from './compose-CeFbHJeO.js';
|
|
10
10
|
import { M as McpClientLike, a as McpToolDescriptor, b as McpTask, c as McpCallToolResult } from './types-CI-gM2u5.js';
|
|
@@ -1817,6 +1817,14 @@ interface ChoiceDecision {
|
|
|
1817
1817
|
readonly probabilities: Record<string, number>;
|
|
1818
1818
|
/** Distribution concentration (0–1). NOT a guarantee of correctness. */
|
|
1819
1819
|
readonly confidence: number;
|
|
1820
|
+
/**
|
|
1821
|
+
* Present only when `minConfidence` was configured: `true` when
|
|
1822
|
+
* `confidence >= minConfidence`. Autonomous flows should treat `false` as
|
|
1823
|
+
* "do not act on this decision" — the official System One docs warn that a
|
|
1824
|
+
* high confidence does not guarantee correctness, and a barely-majority
|
|
1825
|
+
* choice (e.g. 0.51) is rarely safe to act on unattended.
|
|
1826
|
+
*/
|
|
1827
|
+
readonly isConfident?: boolean;
|
|
1820
1828
|
/** Token usage for the call. */
|
|
1821
1829
|
readonly usage: {
|
|
1822
1830
|
readonly input_tokens: number;
|
|
@@ -1830,7 +1838,11 @@ interface ChoiceDecision {
|
|
|
1830
1838
|
interface NoulDecision {
|
|
1831
1839
|
/** Probability of true (0–1). */
|
|
1832
1840
|
readonly noul: number;
|
|
1833
|
-
/**
|
|
1841
|
+
/**
|
|
1842
|
+
* Boolean decision: `true` if `noul >= minProbability` (default 0.5).
|
|
1843
|
+
* Raise the bar for safety gates with `minProbability` — e.g. 0.8 for
|
|
1844
|
+
* irreversible actions.
|
|
1845
|
+
*/
|
|
1834
1846
|
readonly bool: boolean;
|
|
1835
1847
|
/** Token usage for the call. */
|
|
1836
1848
|
readonly usage: {
|
|
@@ -1852,6 +1864,8 @@ interface ScoreDecision {
|
|
|
1852
1864
|
readonly probabilities: Record<string, number>;
|
|
1853
1865
|
/** Distribution concentration (0–1). NOT a guarantee of correctness. */
|
|
1854
1866
|
readonly confidence: number;
|
|
1867
|
+
/** Present only when `minConfidence` was configured: `confidence >= minConfidence`. */
|
|
1868
|
+
readonly isConfident?: boolean;
|
|
1855
1869
|
/** Token usage for the call. */
|
|
1856
1870
|
readonly usage: {
|
|
1857
1871
|
readonly input_tokens: number;
|
|
@@ -1866,6 +1880,8 @@ interface RankResult<T extends string> {
|
|
|
1866
1880
|
readonly candidate: T;
|
|
1867
1881
|
readonly score: number;
|
|
1868
1882
|
readonly confidence: number;
|
|
1883
|
+
/** Present only when `minConfidence` was configured: `confidence >= minConfidence`. */
|
|
1884
|
+
readonly isConfident?: boolean;
|
|
1869
1885
|
}
|
|
1870
1886
|
/**
|
|
1871
1887
|
* Higher-level System One decision helpers.
|
|
@@ -1906,6 +1922,12 @@ interface Decision {
|
|
|
1906
1922
|
criteria: Record<string, string | null>;
|
|
1907
1923
|
images?: string[];
|
|
1908
1924
|
keepAlive?: string | number;
|
|
1925
|
+
/**
|
|
1926
|
+
* Opt-in confidence gate in (0, 1]. When set, the result carries
|
|
1927
|
+
* `isConfident: confidence >= minConfidence` so autonomous flows can
|
|
1928
|
+
* refuse to act on barely-majority decisions. Off by default.
|
|
1929
|
+
*/
|
|
1930
|
+
minConfidence?: number;
|
|
1909
1931
|
}): Promise<ChoiceDecision>;
|
|
1910
1932
|
/**
|
|
1911
1933
|
* Ask a single yes/no (noul) question. Returns the probability of
|
|
@@ -1920,6 +1942,12 @@ interface Decision {
|
|
|
1920
1942
|
instructions: SystemOneContent;
|
|
1921
1943
|
images?: string[];
|
|
1922
1944
|
keepAlive?: string | number;
|
|
1945
|
+
/**
|
|
1946
|
+
* Inclusive lower bound in (0, 1] the probability of `true` must meet
|
|
1947
|
+
* for `bool` to be `true`. Default 0.5 (a coin-flip majority). Raise it
|
|
1948
|
+
* (e.g. 0.8) for safety gates and irreversible actions.
|
|
1949
|
+
*/
|
|
1950
|
+
minProbability?: number;
|
|
1923
1951
|
}): Promise<NoulDecision>;
|
|
1924
1952
|
/**
|
|
1925
1953
|
* Ask a single score question. Returns the probability-weighted
|
|
@@ -1932,10 +1960,12 @@ interface Decision {
|
|
|
1932
1960
|
model: string;
|
|
1933
1961
|
state: SystemOneContent;
|
|
1934
1962
|
instructions: SystemOneContent;
|
|
1935
|
-
/** Ordered criteria from lowest (index 0) to highest. 2–
|
|
1963
|
+
/** Ordered criteria from lowest (index 0) to highest. 2–10 items. */
|
|
1936
1964
|
criteria: string[];
|
|
1937
1965
|
images?: string[];
|
|
1938
1966
|
keepAlive?: string | number;
|
|
1967
|
+
/** Opt-in confidence gate in (0, 1] — see {@link Decision.choice}. */
|
|
1968
|
+
minConfidence?: number;
|
|
1939
1969
|
}): Promise<ScoreDecision>;
|
|
1940
1970
|
/**
|
|
1941
1971
|
* Route a request to one of N named options. Convenience wrapper
|
|
@@ -1951,9 +1981,12 @@ interface Decision {
|
|
|
1951
1981
|
criteria: Record<T, string | null>;
|
|
1952
1982
|
images?: string[];
|
|
1953
1983
|
keepAlive?: string | number;
|
|
1984
|
+
/** Opt-in confidence gate in (0, 1] — see {@link Decision.choice}. */
|
|
1985
|
+
minConfidence?: number;
|
|
1954
1986
|
}): Promise<{
|
|
1955
1987
|
readonly route: T;
|
|
1956
1988
|
readonly confidence: number;
|
|
1989
|
+
readonly isConfident?: boolean;
|
|
1957
1990
|
}>;
|
|
1958
1991
|
/**
|
|
1959
1992
|
* Verify whether a claim is supported by evidence. Convenience
|
|
@@ -1972,6 +2005,11 @@ interface Decision {
|
|
|
1972
2005
|
instructions?: SystemOneContent;
|
|
1973
2006
|
images?: string[];
|
|
1974
2007
|
keepAlive?: string | number;
|
|
2008
|
+
/**
|
|
2009
|
+
* Inclusive lower bound in (0, 1] the probability of `true` must meet
|
|
2010
|
+
* for `verified`. Default 0.5. See {@link Decision.noul}.
|
|
2011
|
+
*/
|
|
2012
|
+
minProbability?: number;
|
|
1975
2013
|
}): Promise<{
|
|
1976
2014
|
readonly verified: boolean;
|
|
1977
2015
|
readonly probability: number;
|
|
@@ -1991,7 +2029,7 @@ interface Decision {
|
|
|
1991
2029
|
rank<T extends string>(params: {
|
|
1992
2030
|
model: string;
|
|
1993
2031
|
instructions: SystemOneContent;
|
|
1994
|
-
/** Ordered criteria from lowest (index 0) to highest. 2–
|
|
2032
|
+
/** Ordered criteria from lowest (index 0) to highest. 2–10 items. */
|
|
1995
2033
|
criteria: string[];
|
|
1996
2034
|
candidates: ReadonlyArray<{
|
|
1997
2035
|
readonly id: T;
|
|
@@ -1999,6 +2037,8 @@ interface Decision {
|
|
|
1999
2037
|
}>;
|
|
2000
2038
|
images?: string[];
|
|
2001
2039
|
keepAlive?: string | number;
|
|
2040
|
+
/** Opt-in confidence gate in (0, 1] — flags each result with `isConfident`. */
|
|
2041
|
+
minConfidence?: number;
|
|
2002
2042
|
}): Promise<ReadonlyArray<RankResult<T>>>;
|
|
2003
2043
|
}
|
|
2004
2044
|
/** Create a Decision helper bound to an OllamaClient. */
|
|
@@ -2807,6 +2847,180 @@ declare function toDataStream<TChunk, TFinal>(stream: OllamaStream<TChunk, TFina
|
|
|
2807
2847
|
*/
|
|
2808
2848
|
declare function toResponse<TChunk, TFinal>(stream: OllamaStream<TChunk, TFinal>, init?: ResponseInit): Response;
|
|
2809
2849
|
|
|
2850
|
+
/**
|
|
2851
|
+
* Typed progress callback helpers for `/api/pull` and `/api/push` streams.
|
|
2852
|
+
*
|
|
2853
|
+
* Ollama emits newline-delimited progress frames of the shape:
|
|
2854
|
+
*
|
|
2855
|
+
* ```json
|
|
2856
|
+
* {"status":"pulling manifest"}
|
|
2857
|
+
* {"status":"downloading","digest":"sha256:...","total":1234567,"completed":123}
|
|
2858
|
+
* {"status":"verifying sha256 digest"}
|
|
2859
|
+
* {"status":"writing manifest","digest":"sha256:...","total":42,"completed":42}
|
|
2860
|
+
* {"status":"success"}
|
|
2861
|
+
* ```
|
|
2862
|
+
*
|
|
2863
|
+
* The SDK already exposes these as a typed {@link OllamaStream} via
|
|
2864
|
+
* {@link ModelsClient.pull} / {@link ModelsClient.push} when called
|
|
2865
|
+
* with `{ stream: true }`. This file adds a higher-level helper that
|
|
2866
|
+
* invokes a typed callback on every progress event with a pre-computed
|
|
2867
|
+
* `percent` field — for callers who want a fire-and-forget pull/push
|
|
2868
|
+
* without manually iterating the stream.
|
|
2869
|
+
*
|
|
2870
|
+
* ## When to use this vs. the raw `OllamaStream`
|
|
2871
|
+
*
|
|
2872
|
+
* - **`onProgress(stream, cb)`** — best for download/upload UIs that
|
|
2873
|
+
* just need to render a progress bar. Resolves on `success`,
|
|
2874
|
+
* rejects on stream error.
|
|
2875
|
+
* - **Raw `for await ... of stream`** — best for callers who want
|
|
2876
|
+
* every chunk as a typed event (e.g. for structured logging, or
|
|
2877
|
+
* to react to specific `status` values like `"downloading"` vs
|
|
2878
|
+
* `"verifying sha256 digest"`).
|
|
2879
|
+
*/
|
|
2880
|
+
|
|
2881
|
+
/**
|
|
2882
|
+
* A single progress event delivered to {@link onProgress}'s callback.
|
|
2883
|
+
*
|
|
2884
|
+
* `percent` is `undefined` when the server hasn't reported byte
|
|
2885
|
+
* totals (e.g. for `pulling manifest`, `verifying sha256 digest`,
|
|
2886
|
+
* `success` — these status lines carry no `total`/`completed`).
|
|
2887
|
+
* For `downloading` / `writing manifest` / `writing layer` style
|
|
2888
|
+
* events, `percent` is the ratio of `completed / total`, clamped
|
|
2889
|
+
* to `[0, 100]` and rounded to two decimals.
|
|
2890
|
+
*
|
|
2891
|
+
* `bytesPerSecond` and `etaSeconds` are populated by {@link onProgress}
|
|
2892
|
+
* (via {@link createProgressSpeedTracker}) once at least two
|
|
2893
|
+
* byte-bearing frames for the same layer have arrived. Callers using
|
|
2894
|
+
* {@link toPullProgressEvent} directly get them from their own tracker
|
|
2895
|
+
* — the pure wrapper never measures time.
|
|
2896
|
+
*/
|
|
2897
|
+
interface PullProgressEvent {
|
|
2898
|
+
/** Ollama's status string (`"pulling manifest"`, `"downloading"`, `"success"`, …). */
|
|
2899
|
+
readonly status: string;
|
|
2900
|
+
/** SHA-256 digest of the layer being transferred, when applicable. */
|
|
2901
|
+
readonly digest?: string | undefined;
|
|
2902
|
+
/** Total bytes for this transfer, when the server has reported it. */
|
|
2903
|
+
readonly total?: number | undefined;
|
|
2904
|
+
/** Bytes transferred so far, when the server has reported it. */
|
|
2905
|
+
readonly completed?: number | undefined;
|
|
2906
|
+
/** Completion percentage in `[0, 100]`, or `undefined` when no byte total. */
|
|
2907
|
+
readonly percent?: number | undefined;
|
|
2908
|
+
/**
|
|
2909
|
+
* Cumulative-average transfer speed for the current layer, in bytes per
|
|
2910
|
+
* second (measured since the layer's first byte-bearing frame). `undefined`
|
|
2911
|
+
* until a second byte-bearing frame of the same layer arrives.
|
|
2912
|
+
*/
|
|
2913
|
+
readonly bytesPerSecond?: number | undefined;
|
|
2914
|
+
/**
|
|
2915
|
+
* Estimated seconds remaining for the current layer at the observed
|
|
2916
|
+
* speed: `(total - completed) / bytesPerSecond`. `undefined` while the
|
|
2917
|
+
* speed is unknown or the server hasn't reported a total; `0` once
|
|
2918
|
+
* `completed >= total`.
|
|
2919
|
+
*/
|
|
2920
|
+
readonly etaSeconds?: number | undefined;
|
|
2921
|
+
/** The raw upstream frame, for callers who need fields this helper skips. */
|
|
2922
|
+
readonly raw: ProgressResponse;
|
|
2923
|
+
}
|
|
2924
|
+
/**
|
|
2925
|
+
* Callback shape accepted by {@link onProgress}.
|
|
2926
|
+
*/
|
|
2927
|
+
type ProgressCallback = (event: PullProgressEvent) => void;
|
|
2928
|
+
/**
|
|
2929
|
+
* Compute the completion percentage from a progress chunk.
|
|
2930
|
+
*
|
|
2931
|
+
* Returns `undefined` when either `total` or `completed` is missing
|
|
2932
|
+
* or zero (the server emits byte totals only for `downloading` /
|
|
2933
|
+
* `writing manifest` / `writing layer` style events; for
|
|
2934
|
+
* `pulling manifest`, `verifying sha256 digest`, `success`, etc. the
|
|
2935
|
+
* totals are absent and percent is undefined).
|
|
2936
|
+
*
|
|
2937
|
+
* When both are present, returns `Math.round((completed / total) * 10000) / 100`
|
|
2938
|
+
* — i.e. percent with two decimal places (e.g. `42.37`), clamped to
|
|
2939
|
+
* `[0, 100]` to guard against upstream reporting inconsistencies
|
|
2940
|
+
* (sometimes the server briefly reports `completed > total` during
|
|
2941
|
+
* dedup / verification phases).
|
|
2942
|
+
*/
|
|
2943
|
+
declare function computeProgressPercent(chunk: ProgressResponse): number | undefined;
|
|
2944
|
+
/**
|
|
2945
|
+
* Wrap a {@link ProgressResponse} into a {@link PullProgressEvent}
|
|
2946
|
+
* with a pre-computed `percent` field.
|
|
2947
|
+
*/
|
|
2948
|
+
declare function toPullProgressEvent(chunk: ProgressResponse): PullProgressEvent;
|
|
2949
|
+
/**
|
|
2950
|
+
* Speed/ETA readings produced by {@link createProgressSpeedTracker}.
|
|
2951
|
+
*/
|
|
2952
|
+
interface ProgressSpeed {
|
|
2953
|
+
/** Cumulative-average bytes/second for the current layer, once measurable. */
|
|
2954
|
+
readonly bytesPerSecond?: number | undefined;
|
|
2955
|
+
/** Estimated seconds remaining for the current layer; `0` once complete. */
|
|
2956
|
+
readonly etaSeconds?: number | undefined;
|
|
2957
|
+
}
|
|
2958
|
+
/**
|
|
2959
|
+
* A stateful per-layer transfer-speed measurer. Feed it every raw
|
|
2960
|
+
* `ProgressResponse` chunk, in arrival order; it returns the current
|
|
2961
|
+
* speed/ETA readings for that chunk's layer.
|
|
2962
|
+
*
|
|
2963
|
+
* This is the building block {@link onProgress} uses internally, exported
|
|
2964
|
+
* for consumers who iterate the raw `OllamaStream` themselves (structured
|
|
2965
|
+
* logging, custom dashboards) and would otherwise have to hand-roll a
|
|
2966
|
+
* stateful byte counter.
|
|
2967
|
+
*
|
|
2968
|
+
* Semantics:
|
|
2969
|
+
* - **Per-layer epochs.** A pull/push transfers several layers; each has
|
|
2970
|
+
* its own `digest` and byte range, and `completed` restarts from a low
|
|
2971
|
+
* value when the next layer begins. The tracker starts a fresh epoch
|
|
2972
|
+
* whenever the digest changes or `completed` regresses, so the speed
|
|
2973
|
+
* never averages across layers.
|
|
2974
|
+
* - **Cumulative average.** Speed is measured from the layer's first
|
|
2975
|
+
* byte-bearing frame — `(completed - firstCompleted) / elapsed` — which
|
|
2976
|
+
* is stable for progress bars (instantaneous frame-to-frame rates jitter
|
|
2977
|
+
* wildly).
|
|
2978
|
+
* - **Monotonic clock.** `performance.now()`, immune to wall-clock
|
|
2979
|
+
* adjustments.
|
|
2980
|
+
*
|
|
2981
|
+
* @example
|
|
2982
|
+
* ```ts
|
|
2983
|
+
* const speed = createProgressSpeedTracker();
|
|
2984
|
+
* const stream = await client.models.pull({ model: 'llama3.2', stream: true });
|
|
2985
|
+
* for await (const event of stream) {
|
|
2986
|
+
* if (event.type === 'message') {
|
|
2987
|
+
* const { bytesPerSecond, etaSeconds } = speed(event.data.chunk);
|
|
2988
|
+
* // render: 42.37% at 8.1 MiB/s, ETA 3s
|
|
2989
|
+
* }
|
|
2990
|
+
* }
|
|
2991
|
+
* ```
|
|
2992
|
+
*/
|
|
2993
|
+
declare function createProgressSpeedTracker(): (chunk: ProgressResponse) => ProgressSpeed;
|
|
2994
|
+
/**
|
|
2995
|
+
* Subscribe to a pull/push stream with a typed progress callback.
|
|
2996
|
+
*
|
|
2997
|
+
* Iterates the stream, invokes `callback` on every progress event
|
|
2998
|
+
* with a pre-computed `percent` field, and resolves when the stream
|
|
2999
|
+
* completes (`success` status). Rejects with {@link OllamaStreamError}
|
|
3000
|
+
* if the stream emits an in-band `{"error": "..."}` frame, or with
|
|
3001
|
+
* whatever error the underlying transport surfaces for HTTP-level
|
|
3002
|
+
* failures.
|
|
3003
|
+
*
|
|
3004
|
+
* @example
|
|
3005
|
+
* ```ts
|
|
3006
|
+
* const stream = await client.models.pull({ model: 'llama3.2', stream: true });
|
|
3007
|
+
* await onProgress(stream, (event) => {
|
|
3008
|
+
* if (event.percent !== undefined) {
|
|
3009
|
+
* console.log(`${event.status}: ${event.percent}% (${event.digest?.slice(0, 12) ?? '-'})`);
|
|
3010
|
+
* } else {
|
|
3011
|
+
* console.log(event.status);
|
|
3012
|
+
* }
|
|
3013
|
+
* });
|
|
3014
|
+
* console.log('pull complete');
|
|
3015
|
+
* ```
|
|
3016
|
+
*
|
|
3017
|
+
* @param stream The `OllamaStream` returned by `models.pull({ stream: true })`.
|
|
3018
|
+
* @param callback Invoked on every progress event.
|
|
3019
|
+
* @returns A promise that resolves to the final {@link ProgressStreamResult}
|
|
3020
|
+
* (carrying `status: 'success'`) when the stream completes.
|
|
3021
|
+
*/
|
|
3022
|
+
declare function onProgress(stream: OllamaStream<ProgressResponse, ProgressStreamResult>, callback: ProgressCallback): Promise<ProgressStreamResult>;
|
|
3023
|
+
|
|
2810
3024
|
/**
|
|
2811
3025
|
* Zero-copy stream observation — the safe alternative to `ReadableStream.tee()`
|
|
2812
3026
|
* for multi-sink consumption (audit logging, token counting, telemetry taps).
|
|
@@ -4049,4 +4263,4 @@ declare class ModelAffinityScheduler {
|
|
|
4049
4263
|
/** Convenience factory — `createModelAffinityScheduler(client, opts)` reads better in setups. */
|
|
4050
4264
|
declare function createModelAffinityScheduler(client: ModelAffinityClient | OllamaClient, options?: ModelAffinitySchedulerOptions): ModelAffinityScheduler;
|
|
4051
4265
|
|
|
4052
|
-
export { ATTR_GEN_AI_OPERATION_NAME, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_SYSTEM, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_OLLAMA_AGENT_ITERATION, ATTR_OLLAMA_AGENT_MAX_ITERATIONS, ATTR_OLLAMA_ENDPOINT_ATTEMPT, ATTR_OLLAMA_ENDPOINT_NAME, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT, ATTR_URL_FULL, AbortableAsyncIterable, type AffinityRunningModel, Agent, type AgentChatClient, type AgentConfig, type AgentHooks, type AgentResult, type AgentRunInput, type AgentTurn, type AnswerFor, AnthropicCompatClient, AnyTool, type BackoffOptions, BalanceRequestOptions, type BalanceResponse, type BlobUploadResult, ChatRequestOptions, ChatResponse, ChatStreamResult, type ChoiceDecision, type CompactionOptions, type CompareDraftPerformanceOptions, type ContextCheck, type ContextCheckOptions, type ContextDiscoveryRequestOptions, type ContextLengthSignals, type ContextLengthSource, type ContextWindowSource, type ConversationSendOptions, ConversationSession, type ConversationSessionOptions, CopyRequestOptions, type CreateModelFromGgufOptions, CreateRequestOptions, type CumulativeCacheStats, DEFAULT_BACKOFF, DEFAULT_BASE_URL, DEFAULT_CONTEXT_WARNING_THRESHOLD, DEFAULT_EMBED_BATCH_SIZE, DEFAULT_EMBED_CONCURRENCY, DEFAULT_FAILOVER_CODES, DEFAULT_FETCH_BACKOFF_CONFIG, DEFAULT_RETRY_CONFIG, DEFAULT_TIMEOUT_MS, type Decision, type DefineToolOptions, DeleteRequestOptions, type DiscoveredContextLength, type DraftBenchmarkClient, type DraftPerformanceComparison, type DraftRunStats, type EmbedBatchOptions, type EmbedBatchResult, EmbedRequestOptions, EmbedResponse, EmbeddingsRequestOptions, EmbeddingsResponse, type EndpointHealth, type EndpointHealthCheckResult, EndpointRegistry, type EndpointRegistryOptions, FetchLike, type FetchWithBackoffConfig, FormatOption, type FormattedTelemetry, GEN_AI_SYSTEM_OLLAMA, GenerateRequestOptions, GenerateResponse, GenerateStreamResult, type HistorySanitizeOptions, HttpClient, IMAGE_TOKEN_ESTIMATE, type IncludedBalance, KEEP_ALIVE_INDEFINITE, KEEP_ALIVE_UNLOAD, KNOWN_DONE_REASONS, type KeepAlive, type KnownDoneReason, type LegacyBalanceLimit, type LegacyIncludedBalance, type LoadMcpToolsOptions, Logger, MAX_SYSTEM_ONE_IMAGES_BYTES, MAX_SYSTEM_ONE_REQUEST_BYTES, MESSAGE_OVERHEAD_TOKENS, McpBridge, type McpBridgeOptions, McpCallToolResult, McpClientLike, McpTask, McpToolDescriptor, Message, Middleware, type ModelAffinityClient, ModelAffinityRouter, type ModelAffinityRoutingOptions, ModelAffinityScheduler, type ModelAffinitySchedulerOptions, type ModelAffinitySnapshot, type ModelAffinityStats, type ModelCapabilities, ModelOptions, ModelResponse, ModelsClient, type NoulDecision, OLLAMA_CLOUD_BASE_URL, OLLAMA_FALLBACK_CONTEXT_LENGTH, OllamaClient, type OllamaClientConfig, type OllamaCloudFreeTierQuotaBudgets, type OllamaCredentialConfig, type OllamaEndpoint, OllamaStream, OllamaStreamEvent, OllamaStreamEventType, OpenAICompatClient, type OversizedEmbedInput, type ParallelToolCallBehavior, PingResult, ProgressResponse, ProgressStreamResult, PsResponse, PullRequestOptions, PushRequestOptions, QuotaManager, type QuotaManagerOptions, type QuotaWindowConfig, type QuotaWindowStatus, RETRYABLE_STATUS_CODES, type RankResult, type RawOllamaMetrics, RawUsageSource, RequestCancellationOptions, RequestLifecycleHook, RequestRunner, type ResponsesCreateRequest, type ResponsesCreateResponse, ResponsesModule, type ResponsesReasoningEffort, type ResponsesStreamEvent, type ResponsesToolDefinition, type ResponsesUsage, type RetryConfig, type RuntimeMode, type ScoreDecision, type SessionCompactionOptions, type SessionCompactionResult, type SessionTurn, ShowRequestOptions, ShowResponse, type SpanAttributeValue, type SpanAttributes, StatusResponse, type StreamObserverCallbacks, type StreamObserverPhase, type SupportedSchema, type SystemOneAnswer, type SystemOneAnswers, SystemOneChoiceAnswer, SystemOneChoiceQuestion, SystemOneContent, SystemOneNoulAnswer, SystemOneNoulQuestion, type SystemOneQuestion, type SystemOneQuestions, type SystemOneRequest, type SystemOneResponse, SystemOneScoreAnswer, SystemOneScoreQuestion, type SystemOneUsage, ThinkValue, ThinkingMetadata, type TimeoutSignal, TokenUsage, Tool, ToolCall, ToolCallAccumulator, ToolDefinition, ToolExecutionResult, ToolHandler, ToolParameters, ToolRegistry, type TurnCacheStats, type UsageBucket, type UsageMetrics, UsageRequestOptions, type UsageResponse, VersionResponse, VisionInput, WEB_FETCH_TOOL_NAME, WEB_SEARCH_TOOL_NAME, WebFetchRequestOptions, WebFetchResponse, type WebFetchToolParams, WebSearchRequestOptions, WebSearchResponse, type WebSearchToolParams, type WebToolsClient, type WebToolsOptions, addSpanEvent, batchEmbed, calculateBackoff, canonicalToolCallSignature, checkChatContext, checkEndpointHealth, checkGenerateContext, compactConversationHistory, compareDraftPerformance, contextWarningMessage, createDecision, createModelAffinityScheduler, createOllamaCloudFreeTierQuota, createTimeoutSignal, createWebFetchTool, createWebSearchTool, createWebTools, defineTool, detectModelCapabilities, embedBatchOverflowMessage, encodeImage, estimateChatRequestTokens, estimateGenerateRequestTokens, estimateMessageTokens, estimateSystemOneRequestBytes, estimateTokens, extractContextLength as extractNativeContextLength, extractParameterNumCtx, fetchWithBackoff, findOversizedEmbedInputs, findRunningModelContextLength, formatTelemetry, formatWebFetchResult, formatWebSearchResult, inferRuntimeMode, isKeepAliveSugar, isKnownDoneReason, isModelResident, isSameToolCall, listAllMcpTools, listAvailableModels, loadMcpTools, mergeToolCall, mergeToolCallArgumentsString, mergeToolCallArrays, normalizeChatStream, normalizeGenerateStream, normalizeKeepAlive, normalizeProgressStream, observeStream, parseNdjsonStream, parseStructuredOutput, recommendContextWindow, registerMcpTools, resolveContextLength, resolveCredentialEndpoints, sanitizeHistoryForNextTurn, setSpanError, toDataStream, toResponse, toTextStream, withRetry, withSpan, zodToJsonSchema };
|
|
4266
|
+
export { ATTR_GEN_AI_OPERATION_NAME, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_SYSTEM, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_OLLAMA_AGENT_ITERATION, ATTR_OLLAMA_AGENT_MAX_ITERATIONS, ATTR_OLLAMA_ENDPOINT_ATTEMPT, ATTR_OLLAMA_ENDPOINT_NAME, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT, ATTR_URL_FULL, AbortableAsyncIterable, type AffinityRunningModel, Agent, type AgentChatClient, type AgentConfig, type AgentHooks, type AgentResult, type AgentRunInput, type AgentTurn, type AnswerFor, AnthropicCompatClient, AnyTool, type BackoffOptions, BalanceRequestOptions, type BalanceResponse, type BlobUploadResult, ChatRequestOptions, ChatResponse, ChatStreamResult, type ChoiceDecision, type CompactionOptions, type CompareDraftPerformanceOptions, type ContextCheck, type ContextCheckOptions, type ContextDiscoveryRequestOptions, type ContextLengthSignals, type ContextLengthSource, type ContextWindowSource, type ConversationSendOptions, ConversationSession, type ConversationSessionOptions, CopyRequestOptions, type CreateModelFromGgufOptions, CreateRequestOptions, type CumulativeCacheStats, DEFAULT_BACKOFF, DEFAULT_BASE_URL, DEFAULT_CONTEXT_WARNING_THRESHOLD, DEFAULT_EMBED_BATCH_SIZE, DEFAULT_EMBED_CONCURRENCY, DEFAULT_FAILOVER_CODES, DEFAULT_FETCH_BACKOFF_CONFIG, DEFAULT_RETRY_CONFIG, DEFAULT_TIMEOUT_MS, type Decision, type DefineToolOptions, DeleteRequestOptions, type DiscoveredContextLength, type DraftBenchmarkClient, type DraftPerformanceComparison, type DraftRunStats, type EmbedBatchOptions, type EmbedBatchResult, EmbedRequestOptions, EmbedResponse, EmbeddingsRequestOptions, EmbeddingsResponse, type EndpointHealth, type EndpointHealthCheckResult, EndpointRegistry, type EndpointRegistryOptions, FetchLike, type FetchWithBackoffConfig, FormatOption, type FormattedTelemetry, GEN_AI_SYSTEM_OLLAMA, GenerateRequestOptions, GenerateResponse, GenerateStreamResult, type HistorySanitizeOptions, HttpClient, IMAGE_TOKEN_ESTIMATE, type IncludedBalance, KEEP_ALIVE_INDEFINITE, KEEP_ALIVE_UNLOAD, KNOWN_DONE_REASONS, type KeepAlive, type KnownDoneReason, type LegacyBalanceLimit, type LegacyIncludedBalance, type LoadMcpToolsOptions, Logger, MAX_SYSTEM_ONE_IMAGES_BYTES, MAX_SYSTEM_ONE_REQUEST_BYTES, MESSAGE_OVERHEAD_TOKENS, McpBridge, type McpBridgeOptions, McpCallToolResult, McpClientLike, McpTask, McpToolDescriptor, Message, Middleware, type ModelAffinityClient, ModelAffinityRouter, type ModelAffinityRoutingOptions, ModelAffinityScheduler, type ModelAffinitySchedulerOptions, type ModelAffinitySnapshot, type ModelAffinityStats, type ModelCapabilities, ModelOptions, ModelResponse, ModelsClient, type NoulDecision, OLLAMA_CLOUD_BASE_URL, OLLAMA_FALLBACK_CONTEXT_LENGTH, OllamaClient, type OllamaClientConfig, type OllamaCloudFreeTierQuotaBudgets, type OllamaCredentialConfig, type OllamaEndpoint, OllamaStream, OllamaStreamEvent, OllamaStreamEventType, OpenAICompatClient, type OversizedEmbedInput, type ParallelToolCallBehavior, PingResult, type ProgressCallback, ProgressResponse, type ProgressSpeed, ProgressStreamResult, PsResponse, type PullProgressEvent, PullRequestOptions, PushRequestOptions, QuotaManager, type QuotaManagerOptions, type QuotaWindowConfig, type QuotaWindowStatus, RETRYABLE_STATUS_CODES, type RankResult, type RawOllamaMetrics, RawUsageSource, RequestCancellationOptions, RequestLifecycleHook, RequestRunner, type ResponsesCreateRequest, type ResponsesCreateResponse, ResponsesModule, type ResponsesReasoningEffort, type ResponsesStreamEvent, type ResponsesToolDefinition, type ResponsesUsage, type RetryConfig, type RuntimeMode, type ScoreDecision, type SessionCompactionOptions, type SessionCompactionResult, type SessionTurn, ShowRequestOptions, ShowResponse, type SpanAttributeValue, type SpanAttributes, StatusResponse, type StreamObserverCallbacks, type StreamObserverPhase, type SupportedSchema, type SystemOneAnswer, type SystemOneAnswers, SystemOneChoiceAnswer, SystemOneChoiceQuestion, SystemOneContent, SystemOneNoulAnswer, SystemOneNoulQuestion, type SystemOneQuestion, type SystemOneQuestions, type SystemOneRequest, type SystemOneResponse, SystemOneScoreAnswer, SystemOneScoreQuestion, type SystemOneUsage, ThinkValue, ThinkingMetadata, type TimeoutSignal, TokenUsage, Tool, ToolCall, ToolCallAccumulator, ToolDefinition, ToolExecutionResult, ToolHandler, ToolParameters, ToolRegistry, type TurnCacheStats, type UsageBucket, type UsageMetrics, UsageRequestOptions, type UsageResponse, VersionResponse, VisionInput, WEB_FETCH_TOOL_NAME, WEB_SEARCH_TOOL_NAME, WebFetchRequestOptions, WebFetchResponse, type WebFetchToolParams, WebSearchRequestOptions, WebSearchResponse, type WebSearchToolParams, type WebToolsClient, type WebToolsOptions, addSpanEvent, batchEmbed, calculateBackoff, canonicalToolCallSignature, checkChatContext, checkEndpointHealth, checkGenerateContext, compactConversationHistory, compareDraftPerformance, computeProgressPercent, contextWarningMessage, createDecision, createModelAffinityScheduler, createOllamaCloudFreeTierQuota, createProgressSpeedTracker, createTimeoutSignal, createWebFetchTool, createWebSearchTool, createWebTools, defineTool, detectModelCapabilities, embedBatchOverflowMessage, encodeImage, estimateChatRequestTokens, estimateGenerateRequestTokens, estimateMessageTokens, estimateSystemOneRequestBytes, estimateTokens, extractContextLength as extractNativeContextLength, extractParameterNumCtx, fetchWithBackoff, findOversizedEmbedInputs, findRunningModelContextLength, formatTelemetry, formatWebFetchResult, formatWebSearchResult, inferRuntimeMode, isKeepAliveSugar, isKnownDoneReason, isModelResident, isSameToolCall, listAllMcpTools, listAvailableModels, loadMcpTools, mergeToolCall, mergeToolCallArgumentsString, mergeToolCallArrays, normalizeChatStream, normalizeGenerateStream, normalizeKeepAlive, normalizeProgressStream, observeStream, onProgress, parseNdjsonStream, parseStructuredOutput, recommendContextWindow, registerMcpTools, resolveContextLength, resolveCredentialEndpoints, sanitizeHistoryForNextTurn, setSpanError, toDataStream, toPullProgressEvent, toResponse, toTextStream, withRetry, withSpan, zodToJsonSchema };
|
package/dist/index.js
CHANGED
|
@@ -4177,7 +4177,7 @@ var SystemOneNoulQuestionSchema = z.object({
|
|
|
4177
4177
|
var SystemOneScoreQuestionSchema = z.object({
|
|
4178
4178
|
type: z.enum(["score"]),
|
|
4179
4179
|
instructions: SystemOneContentSchema,
|
|
4180
|
-
criteria: z.array(z.string()).min(2).max(
|
|
4180
|
+
criteria: z.array(z.string()).min(2).max(10)
|
|
4181
4181
|
});
|
|
4182
4182
|
|
|
4183
4183
|
// src/generated/models/SystemOneRequest.schema.ts
|
|
@@ -4212,7 +4212,7 @@ var SystemOneNoulAnswerSchema = z.object({
|
|
|
4212
4212
|
});
|
|
4213
4213
|
var SystemOneScoreAnswerSchema = z.object({
|
|
4214
4214
|
type: z.enum(["score"]),
|
|
4215
|
-
score: z.number().min(0).max(
|
|
4215
|
+
score: z.number().min(0).max(9),
|
|
4216
4216
|
legend: z.object({}).catchall(z.string()),
|
|
4217
4217
|
probabilities: SystemOneProbabilitiesSchema,
|
|
4218
4218
|
confidence: SystemOneConfidenceSchema
|
|
@@ -5523,9 +5523,16 @@ var FailoverHttpClient = class {
|
|
|
5523
5523
|
};
|
|
5524
5524
|
|
|
5525
5525
|
// src/decision.ts
|
|
5526
|
+
function validateThreshold(value, name) {
|
|
5527
|
+
if (value === void 0) return;
|
|
5528
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0 || value > 1) {
|
|
5529
|
+
throw new RangeError(`${name} must be a number in (0, 1] \u2014 got ${String(value)}`);
|
|
5530
|
+
}
|
|
5531
|
+
}
|
|
5526
5532
|
function createDecision(client) {
|
|
5527
5533
|
return {
|
|
5528
5534
|
async choice(params) {
|
|
5535
|
+
validateThreshold(params.minConfidence, "minConfidence");
|
|
5529
5536
|
const response = await client.systemOne({
|
|
5530
5537
|
model: params.model,
|
|
5531
5538
|
state: params.state,
|
|
@@ -5544,10 +5551,12 @@ function createDecision(client) {
|
|
|
5544
5551
|
choice: answer.choice,
|
|
5545
5552
|
probabilities: answer.probabilities,
|
|
5546
5553
|
confidence: answer.confidence,
|
|
5554
|
+
...params.minConfidence !== void 0 ? { isConfident: answer.confidence >= params.minConfidence } : {},
|
|
5547
5555
|
usage: response.usage
|
|
5548
5556
|
};
|
|
5549
5557
|
},
|
|
5550
5558
|
async noul(params) {
|
|
5559
|
+
validateThreshold(params.minProbability, "minProbability");
|
|
5551
5560
|
const response = await client.systemOne({
|
|
5552
5561
|
model: params.model,
|
|
5553
5562
|
state: params.state,
|
|
@@ -5563,11 +5572,12 @@ function createDecision(client) {
|
|
|
5563
5572
|
const answer = response.answers.decision;
|
|
5564
5573
|
return {
|
|
5565
5574
|
noul: answer.noul,
|
|
5566
|
-
bool: answer.noul >= 0.5,
|
|
5575
|
+
bool: answer.noul >= (params.minProbability ?? 0.5),
|
|
5567
5576
|
usage: response.usage
|
|
5568
5577
|
};
|
|
5569
5578
|
},
|
|
5570
5579
|
async score(params) {
|
|
5580
|
+
validateThreshold(params.minConfidence, "minConfidence");
|
|
5571
5581
|
const response = await client.systemOne({
|
|
5572
5582
|
model: params.model,
|
|
5573
5583
|
state: params.state,
|
|
@@ -5587,10 +5597,12 @@ function createDecision(client) {
|
|
|
5587
5597
|
legend: answer.legend,
|
|
5588
5598
|
probabilities: answer.probabilities,
|
|
5589
5599
|
confidence: answer.confidence,
|
|
5600
|
+
...params.minConfidence !== void 0 ? { isConfident: answer.confidence >= params.minConfidence } : {},
|
|
5590
5601
|
usage: response.usage
|
|
5591
5602
|
};
|
|
5592
5603
|
},
|
|
5593
5604
|
async route(params) {
|
|
5605
|
+
validateThreshold(params.minConfidence, "minConfidence");
|
|
5594
5606
|
const response = await client.systemOne({
|
|
5595
5607
|
model: params.model,
|
|
5596
5608
|
state: params.state,
|
|
@@ -5607,10 +5619,12 @@ function createDecision(client) {
|
|
|
5607
5619
|
const answer = response.answers.decision;
|
|
5608
5620
|
return {
|
|
5609
5621
|
route: answer.choice,
|
|
5610
|
-
confidence: answer.confidence
|
|
5622
|
+
confidence: answer.confidence,
|
|
5623
|
+
...params.minConfidence !== void 0 ? { isConfident: answer.confidence >= params.minConfidence } : {}
|
|
5611
5624
|
};
|
|
5612
5625
|
},
|
|
5613
5626
|
async verify(params) {
|
|
5627
|
+
validateThreshold(params.minProbability, "minProbability");
|
|
5614
5628
|
const state = {
|
|
5615
5629
|
claim: params.claim,
|
|
5616
5630
|
evidence: params.evidence
|
|
@@ -5629,11 +5643,12 @@ function createDecision(client) {
|
|
|
5629
5643
|
});
|
|
5630
5644
|
const answer = response.answers.decision;
|
|
5631
5645
|
return {
|
|
5632
|
-
verified: answer.noul >= 0.5,
|
|
5646
|
+
verified: answer.noul >= (params.minProbability ?? 0.5),
|
|
5633
5647
|
probability: answer.noul
|
|
5634
5648
|
};
|
|
5635
5649
|
},
|
|
5636
5650
|
async rank(params) {
|
|
5651
|
+
validateThreshold(params.minConfidence, "minConfidence");
|
|
5637
5652
|
const promises = params.candidates.map(async (candidate) => {
|
|
5638
5653
|
const response = await client.systemOne({
|
|
5639
5654
|
model: params.model,
|
|
@@ -5652,7 +5667,8 @@ function createDecision(client) {
|
|
|
5652
5667
|
return {
|
|
5653
5668
|
candidate: candidate.id,
|
|
5654
5669
|
score: answer.score,
|
|
5655
|
-
confidence: answer.confidence
|
|
5670
|
+
confidence: answer.confidence,
|
|
5671
|
+
...params.minConfidence !== void 0 ? { isConfident: answer.confidence >= params.minConfidence } : {}
|
|
5656
5672
|
};
|
|
5657
5673
|
});
|
|
5658
5674
|
const results = await Promise.all(promises);
|
|
@@ -6784,6 +6800,64 @@ function toResponse(stream, init = {}) {
|
|
|
6784
6800
|
return new Response(body, { ...init, headers });
|
|
6785
6801
|
}
|
|
6786
6802
|
|
|
6803
|
+
// src/streaming/progress.ts
|
|
6804
|
+
function computeProgressPercent(chunk) {
|
|
6805
|
+
if (typeof chunk.total !== "number" || typeof chunk.completed !== "number") return void 0;
|
|
6806
|
+
if (chunk.total <= 0) return void 0;
|
|
6807
|
+
const ratio = chunk.completed / chunk.total;
|
|
6808
|
+
const clamped = Math.max(0, Math.min(1, ratio));
|
|
6809
|
+
return Math.round(clamped * 1e4) / 100;
|
|
6810
|
+
}
|
|
6811
|
+
function toPullProgressEvent(chunk) {
|
|
6812
|
+
return {
|
|
6813
|
+
status: chunk.status,
|
|
6814
|
+
...chunk.digest !== void 0 ? { digest: chunk.digest } : {},
|
|
6815
|
+
...chunk.total !== void 0 ? { total: chunk.total } : {},
|
|
6816
|
+
...chunk.completed !== void 0 ? { completed: chunk.completed } : {},
|
|
6817
|
+
percent: computeProgressPercent(chunk),
|
|
6818
|
+
raw: chunk
|
|
6819
|
+
};
|
|
6820
|
+
}
|
|
6821
|
+
function createProgressSpeedTracker() {
|
|
6822
|
+
let epochDigest;
|
|
6823
|
+
let epochStartMs = 0;
|
|
6824
|
+
let epochStartCompleted = 0;
|
|
6825
|
+
return (chunk) => {
|
|
6826
|
+
if (typeof chunk.completed !== "number") return {};
|
|
6827
|
+
const digestChanged = chunk.digest !== void 0 && chunk.digest !== epochDigest;
|
|
6828
|
+
const regressed = chunk.completed < epochStartCompleted;
|
|
6829
|
+
if (digestChanged || regressed) {
|
|
6830
|
+
epochDigest = chunk.digest;
|
|
6831
|
+
epochStartMs = performance.now();
|
|
6832
|
+
epochStartCompleted = chunk.completed;
|
|
6833
|
+
return {};
|
|
6834
|
+
}
|
|
6835
|
+
const elapsedSeconds = (performance.now() - epochStartMs) / 1e3;
|
|
6836
|
+
if (elapsedSeconds <= 0) return {};
|
|
6837
|
+
const transferred = chunk.completed - epochStartCompleted;
|
|
6838
|
+
if (transferred <= 0) return {};
|
|
6839
|
+
const bytesPerSecond = transferred / elapsedSeconds;
|
|
6840
|
+
const etaSeconds = typeof chunk.total === "number" ? Math.max(0, (chunk.total - chunk.completed) / bytesPerSecond) : void 0;
|
|
6841
|
+
return { bytesPerSecond, etaSeconds };
|
|
6842
|
+
};
|
|
6843
|
+
}
|
|
6844
|
+
async function onProgress(stream, callback) {
|
|
6845
|
+
void stream.finalResult.catch(() => void 0);
|
|
6846
|
+
const speed = createProgressSpeedTracker();
|
|
6847
|
+
for await (const event of stream) {
|
|
6848
|
+
if (event.type === "message") {
|
|
6849
|
+
callback({ ...toPullProgressEvent(event.data.chunk), ...speed(event.data.chunk) });
|
|
6850
|
+
}
|
|
6851
|
+
if (event.type === "done") {
|
|
6852
|
+
return event.data.result;
|
|
6853
|
+
}
|
|
6854
|
+
if (event.type === "error") {
|
|
6855
|
+
throw event.data.error;
|
|
6856
|
+
}
|
|
6857
|
+
}
|
|
6858
|
+
throw new OllamaStreamError("Pull/push stream ended before reporting success");
|
|
6859
|
+
}
|
|
6860
|
+
|
|
6787
6861
|
// src/streaming/observe.ts
|
|
6788
6862
|
async function* observeStream(source, callbacks = {}) {
|
|
6789
6863
|
const { onChunk, onError, onDone, onAbandon, onListenerError } = callbacks;
|
|
@@ -8184,6 +8258,6 @@ function estimateSystemOneRequestBytes(request) {
|
|
|
8184
8258
|
return new TextEncoder().encode(JSON.stringify(request)).byteLength;
|
|
8185
8259
|
}
|
|
8186
8260
|
|
|
8187
|
-
export { ATTR_GEN_AI_OPERATION_NAME, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_SYSTEM, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_OLLAMA_AGENT_ITERATION, ATTR_OLLAMA_AGENT_MAX_ITERATIONS, ATTR_OLLAMA_ENDPOINT_ATTEMPT, ATTR_OLLAMA_ENDPOINT_NAME, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT, ATTR_URL_FULL, Agent, AnthropicCompatClient, AnthropicMessagesStream, ConversationSession, DEFAULT_BACKOFF, DEFAULT_BASE_URL, DEFAULT_CONTEXT_WARNING_THRESHOLD, DEFAULT_EMBED_BATCH_SIZE, DEFAULT_EMBED_CONCURRENCY, DEFAULT_FAILOVER_CODES, DEFAULT_FETCH_BACKOFF_CONFIG, DEFAULT_RETRY_CONFIG, DEFAULT_TIMEOUT_MS, EndpointRegistry, GEN_AI_SYSTEM_OLLAMA, HttpClient, IMAGE_TOKEN_ESTIMATE, KEEP_ALIVE_INDEFINITE, KEEP_ALIVE_UNLOAD, KNOWN_DONE_REASONS, MAX_SYSTEM_ONE_IMAGES_BYTES, MAX_SYSTEM_ONE_REQUEST_BYTES, MESSAGE_OVERHEAD_TOKENS, McpBridge, ModelAffinityRouter, ModelAffinityScheduler, ModelsClient, NANOS_PER_MS, NANOS_PER_SECOND, NETWORK_ERROR_CODES, NOOP_LOGGER, OLLAMA_CLOUD_BASE_URL, OLLAMA_FALLBACK_CONTEXT_LENGTH, OllamaAbortError, OllamaAgentMaxIterationsError, OllamaAgentMaxToolCallsError, OllamaAgentToolLoopError, OllamaAuthError, OllamaBadGatewayError, OllamaClient, OllamaClientError, OllamaGenericClientError, OllamaIncompatibleModelError, OllamaMcpError, OllamaModelRoutingError, OllamaNetworkError, OllamaNotFoundError, OllamaOverloadedError, OllamaQuotaExceededError, OllamaRateLimitError, OllamaRequestTooLargeError, OllamaRequestValidationError, OllamaResponseValidationError, OllamaServerError, OllamaServerVersionUnknownError, OllamaSkillInvalidError, OllamaSkillNotFoundError, OllamaStream, OllamaStreamError, OllamaTimeoutError, OllamaToolTimeoutError, OllamaToolValidationError, OllamaUnsupportedCapabilityError, OpenAIChatCompletionStream, OpenAICompatClient, OpenAICompletionStream, OpenAIResponsesStream, OpenAIResponsesStreamError, QuotaManager, RETRYABLE_STATUS_CODES, ResponsesModule, ToolCallAccumulator, ToolRegistry, WEB_FETCH_TOOL_NAME, WEB_SEARCH_TOOL_NAME, addSpanEvent, applySkill, batchEmbed, calculateBackoff, canonicalToolCallSignature, checkChatContext, checkEndpointHealth, checkGenerateContext, compactConversationHistory, compareDraftPerformance, composeMiddleware, contextWarningMessage, createConsoleLogger, createDecision, createModelAffinityScheduler, createOllamaCloudFreeTierQuota, createTimeoutSignal, createWebFetchTool, createWebSearchTool, createWebTools, defineTool, detectModelCapabilities, embedBatchOverflowMessage, encodeImage, estimateChatRequestTokens, estimateGenerateRequestTokens, estimateMessageTokens, estimateSystemOneRequestBytes, estimateTokens, extractContextLength as extractNativeContextLength, extractParameterNumCtx, extractUsage, fetchWithBackoff, findOversizedEmbedInputs, findRunningModelContextLength, formatTelemetry, formatWebFetchResult, formatWebSearchResult, imageStringNeedsResolution, inferRuntimeMode, isKeepAliveSugar, isKnownDoneReason, isModelResident, isNetworkLevelError, isSameToolCall, listAllMcpTools, listAvailableModels, loadMcpTools, mapError, mergeToolCall, mergeToolCallArgumentsString, mergeToolCallArrays, normalizeChatStream, normalizeGenerateStream, normalizeKeepAlive, normalizeProgressStream, observeStream, parseFrontmatter, parseNdjsonStream, parseSseStream, parseStructuredOutput, recommendContextWindow, registerMcpTools, resolveContextLength, resolveCredentialEndpoints, resolveImageInput, sanitizeHistoryForNextTurn, setSpanError, toDataStream, toResponse, toTextStream, withRetry, withSpan, zodToJsonSchema };
|
|
8261
|
+
export { ATTR_GEN_AI_OPERATION_NAME, ATTR_GEN_AI_REQUEST_MODEL, ATTR_GEN_AI_RESPONSE_MODEL, ATTR_GEN_AI_SYSTEM, ATTR_GEN_AI_TOOL_CALL_ID, ATTR_GEN_AI_TOOL_NAME, ATTR_GEN_AI_USAGE_INPUT_TOKENS, ATTR_GEN_AI_USAGE_OUTPUT_TOKENS, ATTR_HTTP_REQUEST_METHOD, ATTR_HTTP_RESPONSE_STATUS_CODE, ATTR_OLLAMA_AGENT_ITERATION, ATTR_OLLAMA_AGENT_MAX_ITERATIONS, ATTR_OLLAMA_ENDPOINT_ATTEMPT, ATTR_OLLAMA_ENDPOINT_NAME, ATTR_SERVER_ADDRESS, ATTR_SERVER_PORT, ATTR_URL_FULL, Agent, AnthropicCompatClient, AnthropicMessagesStream, ConversationSession, DEFAULT_BACKOFF, DEFAULT_BASE_URL, DEFAULT_CONTEXT_WARNING_THRESHOLD, DEFAULT_EMBED_BATCH_SIZE, DEFAULT_EMBED_CONCURRENCY, DEFAULT_FAILOVER_CODES, DEFAULT_FETCH_BACKOFF_CONFIG, DEFAULT_RETRY_CONFIG, DEFAULT_TIMEOUT_MS, EndpointRegistry, GEN_AI_SYSTEM_OLLAMA, HttpClient, IMAGE_TOKEN_ESTIMATE, KEEP_ALIVE_INDEFINITE, KEEP_ALIVE_UNLOAD, KNOWN_DONE_REASONS, MAX_SYSTEM_ONE_IMAGES_BYTES, MAX_SYSTEM_ONE_REQUEST_BYTES, MESSAGE_OVERHEAD_TOKENS, McpBridge, ModelAffinityRouter, ModelAffinityScheduler, ModelsClient, NANOS_PER_MS, NANOS_PER_SECOND, NETWORK_ERROR_CODES, NOOP_LOGGER, OLLAMA_CLOUD_BASE_URL, OLLAMA_FALLBACK_CONTEXT_LENGTH, OllamaAbortError, OllamaAgentMaxIterationsError, OllamaAgentMaxToolCallsError, OllamaAgentToolLoopError, OllamaAuthError, OllamaBadGatewayError, OllamaClient, OllamaClientError, OllamaGenericClientError, OllamaIncompatibleModelError, OllamaMcpError, OllamaModelRoutingError, OllamaNetworkError, OllamaNotFoundError, OllamaOverloadedError, OllamaQuotaExceededError, OllamaRateLimitError, OllamaRequestTooLargeError, OllamaRequestValidationError, OllamaResponseValidationError, OllamaServerError, OllamaServerVersionUnknownError, OllamaSkillInvalidError, OllamaSkillNotFoundError, OllamaStream, OllamaStreamError, OllamaTimeoutError, OllamaToolTimeoutError, OllamaToolValidationError, OllamaUnsupportedCapabilityError, OpenAIChatCompletionStream, OpenAICompatClient, OpenAICompletionStream, OpenAIResponsesStream, OpenAIResponsesStreamError, QuotaManager, RETRYABLE_STATUS_CODES, ResponsesModule, ToolCallAccumulator, ToolRegistry, WEB_FETCH_TOOL_NAME, WEB_SEARCH_TOOL_NAME, addSpanEvent, applySkill, batchEmbed, calculateBackoff, canonicalToolCallSignature, checkChatContext, checkEndpointHealth, checkGenerateContext, compactConversationHistory, compareDraftPerformance, composeMiddleware, computeProgressPercent, contextWarningMessage, createConsoleLogger, createDecision, createModelAffinityScheduler, createOllamaCloudFreeTierQuota, createProgressSpeedTracker, createTimeoutSignal, createWebFetchTool, createWebSearchTool, createWebTools, defineTool, detectModelCapabilities, embedBatchOverflowMessage, encodeImage, estimateChatRequestTokens, estimateGenerateRequestTokens, estimateMessageTokens, estimateSystemOneRequestBytes, estimateTokens, extractContextLength as extractNativeContextLength, extractParameterNumCtx, extractUsage, fetchWithBackoff, findOversizedEmbedInputs, findRunningModelContextLength, formatTelemetry, formatWebFetchResult, formatWebSearchResult, imageStringNeedsResolution, inferRuntimeMode, isKeepAliveSugar, isKnownDoneReason, isModelResident, isNetworkLevelError, isSameToolCall, listAllMcpTools, listAvailableModels, loadMcpTools, mapError, mergeToolCall, mergeToolCallArgumentsString, mergeToolCallArrays, normalizeChatStream, normalizeGenerateStream, normalizeKeepAlive, normalizeProgressStream, observeStream, onProgress, parseFrontmatter, parseNdjsonStream, parseSseStream, parseStructuredOutput, recommendContextWindow, registerMcpTools, resolveContextLength, resolveCredentialEndpoints, resolveImageInput, sanitizeHistoryForNextTurn, setSpanError, toDataStream, toPullProgressEvent, toResponse, toTextStream, withRetry, withSpan, zodToJsonSchema };
|
|
8188
8262
|
//# sourceMappingURL=index.js.map
|
|
8189
8263
|
//# sourceMappingURL=index.js.map
|