@osdk/aip-core 0.2.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.
Files changed (131) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +211 -0
  3. package/ai-sdk.d.ts +17 -0
  4. package/build/browser/ai-sdk/convert-prompt.js +136 -0
  5. package/build/browser/ai-sdk/convert-prompt.js.map +1 -0
  6. package/build/browser/ai-sdk/foundry-chat-language-model.js +386 -0
  7. package/build/browser/ai-sdk/foundry-chat-language-model.js.map +1 -0
  8. package/build/browser/ai-sdk/map-finish-reason.js +42 -0
  9. package/build/browser/ai-sdk/map-finish-reason.js.map +1 -0
  10. package/build/browser/ai-sdk/provider.js +62 -0
  11. package/build/browser/ai-sdk/provider.js.map +1 -0
  12. package/build/browser/ai-sdk/types.js +2 -0
  13. package/build/browser/ai-sdk/types.js.map +1 -0
  14. package/build/browser/generateText.js +76 -0
  15. package/build/browser/generateText.js.map +1 -0
  16. package/build/browser/index.js +23 -0
  17. package/build/browser/index.js.map +1 -0
  18. package/build/browser/internal/__test__/mockPlatformClient.js +36 -0
  19. package/build/browser/internal/__test__/mockPlatformClient.js.map +1 -0
  20. package/build/browser/internal/ids.js +23 -0
  21. package/build/browser/internal/ids.js.map +1 -0
  22. package/build/browser/internal/openAi.js +293 -0
  23. package/build/browser/internal/openAi.js.map +1 -0
  24. package/build/browser/internal/options.js +58 -0
  25. package/build/browser/internal/options.js.map +1 -0
  26. package/build/browser/internal/runStep.js +107 -0
  27. package/build/browser/internal/runStep.js.map +1 -0
  28. package/build/browser/internal/streamStep.js +223 -0
  29. package/build/browser/internal/streamStep.js.map +1 -0
  30. package/build/browser/internal/uiMessageBridge.js +55 -0
  31. package/build/browser/internal/uiMessageBridge.js.map +1 -0
  32. package/build/browser/lmsChatTransport.js +185 -0
  33. package/build/browser/lmsChatTransport.js.map +1 -0
  34. package/build/browser/model.js +74 -0
  35. package/build/browser/model.js.map +1 -0
  36. package/build/browser/public/ai-sdk.js +18 -0
  37. package/build/browser/public/ai-sdk.js.map +1 -0
  38. package/build/browser/streamText.js +210 -0
  39. package/build/browser/streamText.js.map +1 -0
  40. package/build/browser/types.js +2 -0
  41. package/build/browser/types.js.map +1 -0
  42. package/build/browser/uiMessage.js +34 -0
  43. package/build/browser/uiMessage.js.map +1 -0
  44. package/build/cjs/index.cjs +1012 -0
  45. package/build/cjs/index.cjs.map +1 -0
  46. package/build/cjs/index.d.cts +467 -0
  47. package/build/cjs/model-B5uS56VB.d.cts +45 -0
  48. package/build/cjs/public/ai-sdk.cjs +534 -0
  49. package/build/cjs/public/ai-sdk.cjs.map +1 -0
  50. package/build/cjs/public/ai-sdk.d.cts +49 -0
  51. package/build/esm/ai-sdk/convert-prompt.js +136 -0
  52. package/build/esm/ai-sdk/convert-prompt.js.map +1 -0
  53. package/build/esm/ai-sdk/foundry-chat-language-model.js +386 -0
  54. package/build/esm/ai-sdk/foundry-chat-language-model.js.map +1 -0
  55. package/build/esm/ai-sdk/map-finish-reason.js +42 -0
  56. package/build/esm/ai-sdk/map-finish-reason.js.map +1 -0
  57. package/build/esm/ai-sdk/provider.js +62 -0
  58. package/build/esm/ai-sdk/provider.js.map +1 -0
  59. package/build/esm/ai-sdk/types.js +2 -0
  60. package/build/esm/ai-sdk/types.js.map +1 -0
  61. package/build/esm/generateText.js +76 -0
  62. package/build/esm/generateText.js.map +1 -0
  63. package/build/esm/index.js +23 -0
  64. package/build/esm/index.js.map +1 -0
  65. package/build/esm/internal/__test__/mockPlatformClient.js +36 -0
  66. package/build/esm/internal/__test__/mockPlatformClient.js.map +1 -0
  67. package/build/esm/internal/ids.js +23 -0
  68. package/build/esm/internal/ids.js.map +1 -0
  69. package/build/esm/internal/openAi.js +293 -0
  70. package/build/esm/internal/openAi.js.map +1 -0
  71. package/build/esm/internal/options.js +58 -0
  72. package/build/esm/internal/options.js.map +1 -0
  73. package/build/esm/internal/runStep.js +107 -0
  74. package/build/esm/internal/runStep.js.map +1 -0
  75. package/build/esm/internal/streamStep.js +223 -0
  76. package/build/esm/internal/streamStep.js.map +1 -0
  77. package/build/esm/internal/uiMessageBridge.js +55 -0
  78. package/build/esm/internal/uiMessageBridge.js.map +1 -0
  79. package/build/esm/lmsChatTransport.js +185 -0
  80. package/build/esm/lmsChatTransport.js.map +1 -0
  81. package/build/esm/model.js +74 -0
  82. package/build/esm/model.js.map +1 -0
  83. package/build/esm/public/ai-sdk.js +18 -0
  84. package/build/esm/public/ai-sdk.js.map +1 -0
  85. package/build/esm/streamText.js +210 -0
  86. package/build/esm/streamText.js.map +1 -0
  87. package/build/esm/types.js +2 -0
  88. package/build/esm/types.js.map +1 -0
  89. package/build/esm/uiMessage.js +34 -0
  90. package/build/esm/uiMessage.js.map +1 -0
  91. package/build/types/ai-sdk/convert-prompt.d.ts +19 -0
  92. package/build/types/ai-sdk/convert-prompt.d.ts.map +1 -0
  93. package/build/types/ai-sdk/foundry-chat-language-model.d.ts +20 -0
  94. package/build/types/ai-sdk/foundry-chat-language-model.d.ts.map +1 -0
  95. package/build/types/ai-sdk/map-finish-reason.d.ts +2 -0
  96. package/build/types/ai-sdk/map-finish-reason.d.ts.map +1 -0
  97. package/build/types/ai-sdk/provider.d.ts +46 -0
  98. package/build/types/ai-sdk/provider.d.ts.map +1 -0
  99. package/build/types/ai-sdk/types.d.ts +1 -0
  100. package/build/types/ai-sdk/types.d.ts.map +1 -0
  101. package/build/types/generateText.d.ts +56 -0
  102. package/build/types/generateText.d.ts.map +1 -0
  103. package/build/types/index.d.ts +12 -0
  104. package/build/types/index.d.ts.map +1 -0
  105. package/build/types/internal/__test__/mockPlatformClient.d.ts +13 -0
  106. package/build/types/internal/__test__/mockPlatformClient.d.ts.map +1 -0
  107. package/build/types/internal/ids.d.ts +1 -0
  108. package/build/types/internal/ids.d.ts.map +1 -0
  109. package/build/types/internal/openAi.d.ts +107 -0
  110. package/build/types/internal/openAi.d.ts.map +1 -0
  111. package/build/types/internal/options.d.ts +4 -0
  112. package/build/types/internal/options.d.ts.map +1 -0
  113. package/build/types/internal/runStep.d.ts +29 -0
  114. package/build/types/internal/runStep.d.ts.map +1 -0
  115. package/build/types/internal/streamStep.d.ts +52 -0
  116. package/build/types/internal/streamStep.d.ts.map +1 -0
  117. package/build/types/internal/uiMessageBridge.d.ts +15 -0
  118. package/build/types/internal/uiMessageBridge.d.ts.map +1 -0
  119. package/build/types/lmsChatTransport.d.ts +35 -0
  120. package/build/types/lmsChatTransport.d.ts.map +1 -0
  121. package/build/types/model.d.ts +42 -0
  122. package/build/types/model.d.ts.map +1 -0
  123. package/build/types/public/ai-sdk.d.ts +2 -0
  124. package/build/types/public/ai-sdk.d.ts.map +1 -0
  125. package/build/types/streamText.d.ts +82 -0
  126. package/build/types/streamText.d.ts.map +1 -0
  127. package/build/types/types.d.ts +189 -0
  128. package/build/types/types.d.ts.map +1 -0
  129. package/build/types/uiMessage.d.ts +85 -0
  130. package/build/types/uiMessage.d.ts.map +1 -0
  131. package/package.json +87 -0
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAEE,uBAEA,uBACK,kBAAmB;AAE1B,iBAAiB,cAAc;CAC7B,MAAM,WAAW,SAAS,cAAc;CACxC,kBAAkB,MAAM;EAAE,MAAM;EAAQ;CAAc;CACtD,aAAa,MAAM;CACnB;AACD;AAED,iBAAiB,wBAAwB;CACvC;CACA,MAAM;CACN,UAAU;EAAE;EAAc;CAAmB;AAC9C;AAED,OAAO,iBAAS,cACdA,QAAQ,uBACRC,UAAU,MAAM,mBACf,MAAM","names":["prompt: LanguageModelV3Prompt","warnings: Array<SharedV3Warning>"],"sources":["../../../src/ai-sdk/convert-prompt.ts"],"version":3,"file":"convert-prompt.d.ts"}
@@ -0,0 +1,20 @@
1
+ import type { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult } from "@ai-sdk/provider";
2
+ import type { PlatformClient } from "@osdk/client";
3
+ import type { ModelIdentifier } from "./types.js";
4
+ export interface FoundryChatLanguageModelConfig {
5
+ client: PlatformClient;
6
+ identifier: ModelIdentifier;
7
+ }
8
+ export declare class FoundryChatLanguageModel implements LanguageModelV3 {
9
+ readonly specificationVersion = "v3";
10
+ readonly provider: string;
11
+ readonly modelId: string;
12
+ readonly supportedUrls: Record<string, RegExp[]>;
13
+ private readonly config;
14
+ constructor(modelId: string, config: FoundryChatLanguageModelConfig);
15
+ doGenerate(options: LanguageModelV3CallOptions): Promise<LanguageModelV3GenerateResult>;
16
+ doStream(options: LanguageModelV3CallOptions): Promise<LanguageModelV3StreamResult>;
17
+ private buildRequest;
18
+ private parseGenerateResponse;
19
+ private parseStreamResponse;
20
+ }
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cACE,iBACA,4BAGA,+BAEA,mCAIK,kBAAmB;AAC1B,cAAc,sBAAsB,cAAe;AAKnD,cAAc,uBAAuB,YAAa;AAElD,iBAAiB,+BAA+B;CAC9C,QAAQ;CACR,YAAY;AACb;AAED,OAAO,cAAM,oCAAoC,gBAAgB;CAC/D,SAAS,uBAAuB;CAChC,SAAS;CACT,SAAS;CACT,SAAS,eAAe,eAAe;CAEvC,iBAAiB;CAEjB,YAAYA,iBAAiBC,QAAQ;CAMrC,AAAM,WACJC,SAAS,6BACR,QAAQ;CA2BX,AAAM,SACJA,SAAS,6BACR,QAAQ;CAgCX,QAAQ;CAuER,QAAQ;CAkDR,QAAQ;AA0IT","names":["modelId: string","config: FoundryChatLanguageModelConfig","options: LanguageModelV3CallOptions"],"sources":["../../../src/ai-sdk/foundry-chat-language-model.ts"],"version":3,"file":"foundry-chat-language-model.d.ts"}
@@ -0,0 +1,2 @@
1
+ import type { LanguageModelV3FinishReason } from "@ai-sdk/provider";
2
+ export declare function mapFinishReason(raw: string | undefined): LanguageModelV3FinishReason;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,mCAAmC,kBAAmB;AAEpE,OAAO,iBAAS,gBACdA,0BACC","names":["raw: string | undefined"],"sources":["../../../src/ai-sdk/map-finish-reason.ts"],"version":3,"file":"map-finish-reason.d.ts"}
@@ -0,0 +1,46 @@
1
+ import type { LanguageModelV3 } from "@ai-sdk/provider";
2
+ import type { PlatformClient } from "@osdk/client";
3
+ import type { ModelIdentifier } from "./types.js";
4
+ export interface FoundryAIProviderOptions {
5
+ /** Foundry PlatformClient providing the auth token + base URL. */
6
+ client: PlatformClient;
7
+ }
8
+ /**
9
+ * A Foundry AI provider for the AI SDK.
10
+ *
11
+ * Can be called directly as a function to get a language model, or use
12
+ * the `.languageModel()` method.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { generateText } from "ai";
17
+ * import { createFoundryAI } from "@osdk/aip-core/ai-sdk";
18
+ *
19
+ * const foundryAI = createFoundryAI({ client });
20
+ * const { text } = await generateText({
21
+ * model: foundryAI("gpt-4o"),
22
+ * prompt: "Hello, world",
23
+ * });
24
+ * ```
25
+ */
26
+ export interface FoundryAIProvider {
27
+ /**
28
+ * Create a language model for the given model name or identifier.
29
+ *
30
+ * @param model - LMS model API name (e.g. "gpt-4o") or a structured ModelIdentifier.
31
+ */
32
+ (model: string | ModelIdentifier): LanguageModelV3;
33
+ /**
34
+ * Create a language model for the given model name or identifier.
35
+ *
36
+ * @param model - LMS model API name (e.g. "gpt-4o") or a structured ModelIdentifier.
37
+ */
38
+ languageModel(model: string | ModelIdentifier): LanguageModelV3;
39
+ }
40
+ /**
41
+ * Create a Foundry AI provider for the AI SDK.
42
+ *
43
+ * @param options - Configuration including the Foundry PlatformClient.
44
+ * @returns A provider that can be called directly or via `.languageModel()`.
45
+ */
46
+ export declare function createFoundryAI(options: FoundryAIProviderOptions): FoundryAIProvider;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,uBAAuB,kBAAmB;AACxD,cAAc,sBAAsB,cAAe;AAEnD,cAAc,uBAAuB,YAAa;AAElD,iBAAiB,yBAAyB;;CAExC,QAAQ;AACT;;;;;;;;;;;;;;;;;;;AAoBD,iBAAiB,kBAAkB;;;;;;EAMhCA,gBAAgB,kBAAkB;;;;;;CAOnC,cAAcA,gBAAgB,kBAAkB;AACjD;;;;;;;AAQD,OAAO,iBAAS,gBACdC,SAAS,2BACR","names":["model: string | ModelIdentifier","options: FoundryAIProviderOptions"],"sources":["../../../src/ai-sdk/provider.ts"],"version":3,"file":"provider.d.ts"}
@@ -0,0 +1 @@
1
+ export type { ModelIdentifier } from "../model.js";
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,uBAAuB","names":[],"sources":["../../../src/ai-sdk/types.ts"],"version":3,"file":"types.d.ts"}
@@ -0,0 +1,56 @@
1
+ import type { LanguageModel } from "./model.js";
2
+ import type { LanguageModelUsage, ModelMessage, StepResult, SystemModelMessage, ToolChoice, ToolSet } from "./types.js";
3
+ /**
4
+ * Options for {@link generateText}.
5
+ */
6
+ export interface GenerateTextOptions<TOOLS extends ToolSet = ToolSet> {
7
+ /** The language model to use. Build one via `foundryModel(...)`. */
8
+ model: LanguageModel;
9
+ /** Plain text prompt. Mutually exclusive with `messages`. */
10
+ prompt?: string | Array<ModelMessage>;
11
+ /** Conversation history. Mutually exclusive with `prompt`. */
12
+ messages?: Array<ModelMessage>;
13
+ /** System instructions, prepended to the conversation. */
14
+ system?: string | SystemModelMessage | Array<SystemModelMessage>;
15
+ tools?: TOOLS;
16
+ toolChoice?: ToolChoice<TOOLS>;
17
+ maxOutputTokens?: number;
18
+ temperature?: number;
19
+ topP?: number;
20
+ presencePenalty?: number;
21
+ frequencyPenalty?: number;
22
+ stopSequences?: Array<string>;
23
+ seed?: number;
24
+ abortSignal?: AbortSignal;
25
+ headers?: Record<string, string | undefined>;
26
+ onStepFinish?: (step: StepResult<TOOLS>) => void | Promise<void>;
27
+ onFinish?: (event: StepResult<TOOLS> & {
28
+ steps: Array<StepResult<TOOLS>>
29
+ totalUsage: LanguageModelUsage
30
+ }) => void | PromiseLike<void>;
31
+ }
32
+ /**
33
+ * Result of {@link generateText}.
34
+ */
35
+ export type GenerateTextResult<TOOLS extends ToolSet = ToolSet> = StepResult<TOOLS> & {
36
+ totalUsage: LanguageModelUsage
37
+ steps: Array<StepResult<TOOLS>>
38
+ };
39
+ /**
40
+ * Generate a text completion via the Foundry Language Model Service.
41
+ *
42
+ * v0: single-step. Multi-step tool execution loops, image/file content,
43
+ * structured output, and Zod tool schemas are not yet supported.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * import { foundryModel, generateText } from "@osdk/aip-core";
48
+ *
49
+ * const { text } = await generateText({
50
+ * model: foundryModel({ client, model: "gpt-4o" }),
51
+ * system: "You are a concise assistant.",
52
+ * prompt: "Summarise this PR.",
53
+ * });
54
+ * ```
55
+ */
56
+ export declare function generateText<TOOLS extends ToolSet = ToolSet>(options: GenerateTextOptions<TOOLS>): Promise<GenerateTextResult<TOOLS>>;
@@ -0,0 +1 @@
1
+ {"mappings":"AAkBA,cAAc,qBAAqB,YAAa;AAChD,cACE,oBACA,cACA,YACA,oBACA,YACA,eACK,YAAa;;;;AAKpB,iBAAiB,oBAAoB,cAAc,UAAU,SAAS;;CAEpE,OAAO;;CAGP,kBAAkB,MAAM;;CAGxB,WAAW,MAAM;;CAGjB,kBAAkB,qBAAqB,MAAM;CAI7C,QAAQ;CACR,aAAa,WAAW;CAIxB;CACA;CACA;CACA;CACA;CACA,gBAAgB;CAChB;CAIA,cAAc;CACd,UAAU;CAIV,gBAAgBA,MAAM,WAAW,kBAAkB;CACnD,YACEC,OACI,WAAW,SACX;EAAE,OAAO,MAAM,WAAW;EAAS,YAAY;CAAoB,aAC7D;AACb;;;;AAKD,YAAY,mBAAmB,cAAc,UAAU,WACnD,WAAW,SACX;CACA,YAAY;CACZ,OAAO,MAAM,WAAW;AACzB;;;;;;;;;;;;;;;;;;AAmBH,OAAO,iBAAe,aAAa,cAAc,UAAU,SACzDC,SAAS,oBAAoB,SAC5B,QAAQ,mBAAmB","names":["step: StepResult<TOOLS>","event:\n & StepResult<TOOLS>\n & { steps: Array<StepResult<TOOLS>>; totalUsage: LanguageModelUsage }","options: GenerateTextOptions<TOOLS>"],"sources":["../../src/generateText.ts"],"version":3,"file":"generateText.d.ts"}
@@ -0,0 +1,12 @@
1
+ export { generateText } from "./generateText.js";
2
+ export type { GenerateTextOptions, GenerateTextResult } from "./generateText.js";
3
+ export { streamText } from "./streamText.js";
4
+ export type { StreamTextOptions, StreamTextResult, TextStreamChunk } from "./streamText.js";
5
+ export { LmsChatTransport } from "./lmsChatTransport.js";
6
+ export type { LmsChatTransportOptions } from "./lmsChatTransport.js";
7
+ export { foundryModel } from "./model.js";
8
+ export type { FoundryModelOptions, LanguageModel, ModelIdentifier } from "./model.js";
9
+ export { generateMessageId } from "./internal/ids.js";
10
+ export { getUIMessageText } from "./uiMessage.js";
11
+ export type { ChatTransport, ChatTransportReconnectArgs, ChatTransportSendMessagesArgs, ChatTransportTrigger, UIMessage, UIMessageChunk, UIMessagePart, UIMessageRole } from "./uiMessage.js";
12
+ export type { AssistantModelMessage, ContentPart, FilePart, FinishReason, ImagePart, LanguageModelUsage, ModelMessage, ProviderMetadata, ProviderOptions, ReasoningOutput, ReasoningPart, RequestMetadata, ResponseMetadata, Role, StepResult, SystemModelMessage, TextPart, Tool, ToolCall, ToolCallPart, ToolChoice, ToolModelMessage, ToolResult, ToolResultOutput, ToolResultPart, ToolSet, UserModelMessage, Warning } from "./types.js";
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,SAAS,oBAAoB;AAC7B,cACE,qBACA,0BACK;AAEP,SAAS,kBAAkB;AAC3B,cACE,mBACA,kBACA,uBACK;AAEP,SAAS,wBAAwB;AACjC,cAAc,+BAA+B;AAE7C,SAAS,oBAAoB;AAC7B,cACE,qBACA,eACA,uBACK;AAEP,SAAS,yBAAyB;AAElC,SAAS,wBAAwB;AACjC,cACE,eACA,4BACA,+BACA,sBACA,WACA,gBACA,eACA,qBACK;AAEP,cACE,uBACA,aACA,UACA,cACA,WACA,oBACA,cACA,kBACA,iBACA,iBACA,eACA,iBACA,kBACA,MACA,YACA,oBACA,UACA,MACA,UACA,cACA,YACA,kBACA,YACA,kBACA,gBACA,SACA,kBACA,eACK","names":[],"sources":["../../src/index.ts"],"version":3,"file":"index.d.ts"}
@@ -0,0 +1,13 @@
1
+ import type { PlatformClient } from "@osdk/client";
2
+ /**
3
+ * Build a typed `PlatformClient` for tests. `PlatformClient` is structurally
4
+ * `{ baseUrl, fetch, tokenProvider }`; we satisfy that shape directly so
5
+ * tests don't reach for `as unknown as PlatformClient`.
6
+ */
7
+ export declare function mockPlatformClient(args: {
8
+ baseUrl: string
9
+ fetch: typeof globalThis.fetch
10
+ token?: string
11
+ }): PlatformClient;
12
+ /** Throws with a labelled error if `value` is null/undefined. */
13
+ export declare function assertDefined<T>(value: T, label: string): asserts value is NonNullable<T>;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,sBAAsB,cAAe;;;;;;AAOnD,OAAO,iBAAS,mBAAmBA,MAAM;CACvC;CACA,cAAc,WAAW;CACzB;AACD,IAAG;;AASJ,OAAO,iBAAS,cAAc,GAC5BC,OAAO,GACPC,wBACS,SAAS,YAAY","names":["args: {\n baseUrl: string;\n fetch: typeof globalThis.fetch;\n token?: string;\n}","value: T","label: string"],"sources":["../../../../src/internal/__test__/mockPlatformClient.ts"],"version":3,"file":"mockPlatformClient.d.ts"}
@@ -0,0 +1 @@
1
+ export declare function generateMessageId(): string;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,OAAO,iBAAS","names":[],"sources":["../../../src/internal/ids.ts"],"version":3,"file":"ids.d.ts"}
@@ -0,0 +1,107 @@
1
+ import { type LanguageModel, type ModelIdentifier } from "../model.js";
2
+ import type { AssistantModelMessage, FinishReason, LanguageModelUsage, ModelMessage, ToolCall, ToolChoice, ToolSet, Warning } from "../types.js";
3
+ export interface OpenAiMessage {
4
+ role: "system" | "user" | "assistant" | "tool";
5
+ content: string | Array<OpenAiContentPart> | null;
6
+ tool_calls?: Array<OpenAiAssistantToolCall>;
7
+ tool_call_id?: string;
8
+ }
9
+ type OpenAiContentPart = {
10
+ type: "text"
11
+ text: string
12
+ };
13
+ export interface OpenAiTool {
14
+ type: "function";
15
+ function: {
16
+ name: string
17
+ description?: string
18
+ parameters: unknown
19
+ };
20
+ }
21
+ export type OpenAiToolChoice = "auto" | "none" | "required" | {
22
+ type: "function"
23
+ function: {
24
+ name: string
25
+ }
26
+ };
27
+ export interface OpenAiAssistantToolCall {
28
+ id: string;
29
+ type: "function";
30
+ function: {
31
+ name: string
32
+ arguments: string
33
+ };
34
+ }
35
+ export declare function getModelApiName(identifier: ModelIdentifier): string;
36
+ export interface OpenAiUsageRaw {
37
+ prompt_tokens: number;
38
+ completion_tokens: number;
39
+ total_tokens: number;
40
+ completion_tokens_details?: {
41
+ reasoning_tokens?: number
42
+ };
43
+ prompt_tokens_details?: {
44
+ cached_tokens?: number
45
+ };
46
+ }
47
+ export declare function mapUsage(raw: OpenAiUsageRaw): LanguageModelUsage;
48
+ export declare const EMPTY_USAGE: LanguageModelUsage;
49
+ export declare function mapFinishReason(reason: string): FinishReason;
50
+ export declare function convertMessage(m: ModelMessage, warnings: Array<Warning>): Array<OpenAiMessage>;
51
+ export declare function convertTools<TOOLS extends ToolSet>(tools: TOOLS, warnings: Array<Warning>): Array<OpenAiTool>;
52
+ export declare function convertToolChoice<TOOLS extends ToolSet>(choice: ToolChoice<TOOLS> | undefined): OpenAiToolChoice | undefined;
53
+ export declare function parseToolArguments(args: string, warnings: Array<Warning>): unknown;
54
+ export interface BuildRequestBodyArgs<TOOLS extends ToolSet> {
55
+ apiName: string;
56
+ messages: ReadonlyArray<ModelMessage>;
57
+ tools: TOOLS | undefined;
58
+ toolChoice: ToolChoice<TOOLS> | undefined;
59
+ maxOutputTokens: number | undefined;
60
+ temperature: number | undefined;
61
+ topP: number | undefined;
62
+ stopSequences: ReadonlyArray<string> | undefined;
63
+ seed: number | undefined;
64
+ presencePenalty: number | undefined;
65
+ frequencyPenalty: number | undefined;
66
+ warnings: Array<Warning>;
67
+ }
68
+ interface OpenAiChatRequestCommon {
69
+ model: string;
70
+ messages: Array<OpenAiMessage>;
71
+ max_tokens?: number;
72
+ temperature?: number;
73
+ top_p?: number;
74
+ stop?: ReadonlyArray<string>;
75
+ seed?: number;
76
+ presence_penalty?: number;
77
+ frequency_penalty?: number;
78
+ tools?: Array<OpenAiTool>;
79
+ tool_choice?: OpenAiToolChoice;
80
+ }
81
+ export type OpenAiChatRequestNonStreaming = OpenAiChatRequestCommon & {
82
+ stream: false
83
+ };
84
+ export type OpenAiChatRequestStreaming = OpenAiChatRequestCommon & {
85
+ stream: true
86
+ stream_options?: {
87
+ include_usage?: boolean
88
+ }
89
+ };
90
+ export declare function buildOpenAiRequestBody<TOOLS extends ToolSet>(args: BuildRequestBodyArgs<TOOLS>, streaming: false): OpenAiChatRequestNonStreaming;
91
+ export declare function buildOpenAiRequestBody<TOOLS extends ToolSet>(args: BuildRequestBodyArgs<TOOLS>, streaming: true): OpenAiChatRequestStreaming;
92
+ export declare function buildAssistantContent(text: string, toolCalls: ReadonlyArray<ToolCall>): AssistantModelMessage["content"];
93
+ export declare function filterHeaders(input: Record<string, string | undefined>): Record<string, string>;
94
+ export declare function safeReadText(res: Response): Promise<string | undefined>;
95
+ export interface PostChatCompletionsArgs {
96
+ model: LanguageModel;
97
+ body: OpenAiChatRequestNonStreaming | OpenAiChatRequestStreaming;
98
+ accept: "application/json" | "text/event-stream";
99
+ headers: Record<string, string | undefined> | undefined;
100
+ abortSignal: AbortSignal | undefined;
101
+ }
102
+ /**
103
+ * POST against the LMS OpenAI proxy's chat/completions endpoint and return
104
+ * the raw response. Throws on a non-2xx response.
105
+ */
106
+ export declare function postChatCompletions(args: PostChatCompletionsArgs): Promise<Response>;
107
+ export {};
@@ -0,0 +1 @@
1
+ {"mappings":"AAiBA,cAEO,oBACA,uBACA,aAAc;AACrB,cACE,uBACA,cACA,oBACA,cACA,UACA,YAEA,SACA,eACK,aAAc;AAErB,iBAAiB,cAAc;CAC7B,MAAM,WAAW,SAAS,cAAc;CACxC,kBAAkB,MAAM;CACxB,aAAa,MAAM;CACnB;AACD;KAEI,oBAAoB;CAAE,MAAM;CAAQ;AAAc;AAEvD,iBAAiB,WAAW;CAC1B,MAAM;CACN,UAAU;EACR;EACA;EACA;CACD;AACF;AAED,YAAY,mBACR,SACA,SACA,aACA;CAAE,MAAM;CAAY,UAAU;EAAE;CAAc;AAAE;AAEpD,iBAAiB,wBAAwB;CACvC;CACA,MAAM;CACN,UAAU;EAAE;EAAc;CAAmB;AAC9C;AAED,OAAO,iBAAS,gBAAgBA,YAAY;AAM5C,iBAAiB,eAAe;CAC9B;CACA;CACA;CACA,4BAA4B;EAAE;CAA2B;CACzD,wBAAwB;EAAE;CAAwB;AACnD;AAED,OAAO,iBAAS,SAASC,KAAK,iBAAiB;AAU/C,OAAO,cAAMC,aAAa;AAM1B,OAAO,iBAAS,gBAAgBC,iBAAiB;AAgBjD,OAAO,iBAAS,eACdC,GAAG,cACHC,UAAU,MAAM,WACf,MAAM;AAkGT,OAAO,iBAAS,aAAa,cAAc,SACzCC,OAAO,OACPD,UAAU,MAAM,WACf,MAAM;AAqBT,OAAO,iBAAS,kBAAkB,cAAc,SAC9CE,QAAQ,WAAW,qBAClB;AAyBH,OAAO,iBAAS,mBACdC,cACAH,UAAU,MAAM;AAiBlB,iBAAiB,qBAAqB,cAAc,SAAS;CAC3D;CACA,UAAU,cAAc;CACxB,OAAO;CACP,YAAY,WAAW;CACvB;CACA;CACA;CACA,eAAe;CACf;CACA;CACA;CACA,UAAU,MAAM;AACjB;UAES,wBAAwB;CAChC;CACA,UAAU,MAAM;CAChB;CACA;CACA;CACA,OAAO;CACP;CACA;CACA;CACA,QAAQ,MAAM;CACd,cAAc;AACf;AAED,YAAY,gCAAgC,0BAA0B;CACpE,QAAQ;AACT;AAED,YAAY,6BAA6B,0BAA0B;CACjE,QAAQ;CACR,iBAAiB;EAAE;CAAyB;AAC7C;AAED,OAAO,iBAAS,uBAAuB,cAAc,SACnDI,MAAM,qBAAqB,QAC3BC,WAAW,QACV;AACH,OAAO,iBAAS,uBAAuB,cAAc,SACnDD,MAAM,qBAAqB,QAC3BE,WAAW,OACV;AA0BH,OAAO,iBAAS,sBACdC,cACAC,WAAW,cAAc,YACxB,sBAAsB;AA0BzB,OAAO,iBAAS,cACdC,OAAO,qCACN;AAUH,OAAO,iBAAe,aACpBC,KAAK,WACJ;AAQH,iBAAiB,wBAAwB;CACvC,OAAO;CACP,MAAM,gCAAgC;CACtC,QAAQ,qBAAqB;CAC7B,SAAS;CACT,aAAa;AACd;;;;;AAMD,OAAO,iBAAe,oBACpBC,MAAM,0BACL,QAAQ","names":["identifier: ModelIdentifier","raw: OpenAiUsageRaw","EMPTY_USAGE: LanguageModelUsage","reason: string","m: ModelMessage","warnings: Array<Warning>","tools: TOOLS","choice: ToolChoice<TOOLS> | undefined","args: string","args: BuildRequestBodyArgs<TOOLS>","streaming: false","streaming: true","text: string","toolCalls: ReadonlyArray<ToolCall>","input: Record<string, string | undefined>","res: Response","args: PostChatCompletionsArgs"],"sources":["../../../src/internal/openAi.ts"],"version":3,"file":"openAi.d.ts"}
@@ -0,0 +1,4 @@
1
+ import type { ModelMessage, SystemModelMessage } from "../types.js";
2
+ export type SystemOption = string | SystemModelMessage | Array<SystemModelMessage> | undefined;
3
+ export type PromptOption = string | Array<ModelMessage> | undefined;
4
+ export declare function resolveMessages(callerLabel: string, system: SystemOption, prompt: PromptOption, messages: Array<ModelMessage> | undefined): Array<ModelMessage>;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,cAAc,0BAA0B,aAAc;AAEpE,YAAY,wBAER,qBACA,MAAM;AAGV,YAAY,wBAAwB,MAAM;AAE1C,OAAO,iBAAS,gBACdA,qBACAC,QAAQ,cACRC,QAAQ,cACRC,UAAU,MAAM,4BACf,MAAM","names":["callerLabel: string","system: SystemOption","prompt: PromptOption","messages: Array<ModelMessage> | undefined"],"sources":["../../../src/internal/options.ts"],"version":3,"file":"options.d.ts"}
@@ -0,0 +1,29 @@
1
+ import type { LanguageModel } from "../model.js";
2
+ import type { ModelMessage, StepResult, ToolChoice, ToolSet, Warning } from "../types.js";
3
+ export interface RunStepInput<TOOLS extends ToolSet> {
4
+ model: LanguageModel;
5
+ /** System messages flattened into the head of this list. */
6
+ messages: ReadonlyArray<ModelMessage>;
7
+ tools: TOOLS | undefined;
8
+ toolChoice: ToolChoice<TOOLS> | undefined;
9
+ maxOutputTokens: number | undefined;
10
+ temperature: number | undefined;
11
+ topP: number | undefined;
12
+ stopSequences: ReadonlyArray<string> | undefined;
13
+ seed: number | undefined;
14
+ presencePenalty: number | undefined;
15
+ frequencyPenalty: number | undefined;
16
+ abortSignal: AbortSignal | undefined;
17
+ headers: Record<string, string | undefined> | undefined;
18
+ /**
19
+ * Mutated in place — additional warnings discovered while building the
20
+ * request are appended here.
21
+ */
22
+ warnings: Array<Warning>;
23
+ }
24
+ /**
25
+ * Performs a single non-streaming chat completion against the LMS OpenAI proxy
26
+ * and returns a {@link StepResult}. Caller is responsible for prepending any
27
+ * system messages before invoking.
28
+ */
29
+ export declare function runStep<TOOLS extends ToolSet>(input: RunStepInput<TOOLS>): Promise<StepResult<TOOLS>>;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,qBAAqB,aAAc;AAEjD,cAIE,cAEA,YAEA,YACA,SACA,eACK,aAAc;AAcrB,iBAAiB,aAAa,cAAc,SAAS;CACnD,OAAO;;CAEP,UAAU,cAAc;CACxB,OAAO;CACP,YAAY,WAAW;CACvB;CACA;CACA;CACA,eAAe;CACf;CACA;CACA;CACA,aAAa;CACb,SAAS;;;;;CAKT,UAAU,MAAM;AACjB;;;;;;AAOD,OAAO,iBAAe,QAAQ,cAAc,SAC1CA,OAAO,aAAa,SACnB,QAAQ,WAAW","names":["input: RunStepInput<TOOLS>"],"sources":["../../../src/internal/runStep.ts"],"version":3,"file":"runStep.d.ts"}
@@ -0,0 +1,52 @@
1
+ import { type LanguageModel } from "../model.js";
2
+ import type { FinishReason, LanguageModelUsage, ModelMessage, RequestMetadata, ResponseMetadata, ToolCall, ToolChoice, ToolSet, Warning } from "../types.js";
3
+ export type StreamChunkEvent = {
4
+ type: "text-delta"
5
+ id: string
6
+ delta: string
7
+ } | {
8
+ type: "reasoning-delta"
9
+ id: string
10
+ delta: string
11
+ } | {
12
+ type: "tool-call"
13
+ toolCallId: string
14
+ toolName: string
15
+ input: unknown
16
+ } | {
17
+ type: "finish"
18
+ finishReason: FinishReason
19
+ rawFinishReason: string | undefined
20
+ usage: LanguageModelUsage
21
+ } | {
22
+ type: "error"
23
+ error: Error
24
+ };
25
+ export interface StreamStepInput<TOOLS extends ToolSet> {
26
+ model: LanguageModel;
27
+ messages: ReadonlyArray<ModelMessage>;
28
+ tools: TOOLS | undefined;
29
+ toolChoice: ToolChoice<TOOLS> | undefined;
30
+ maxOutputTokens: number | undefined;
31
+ temperature: number | undefined;
32
+ topP: number | undefined;
33
+ stopSequences: ReadonlyArray<string> | undefined;
34
+ seed: number | undefined;
35
+ presencePenalty: number | undefined;
36
+ frequencyPenalty: number | undefined;
37
+ abortSignal: AbortSignal | undefined;
38
+ headers: Record<string, string | undefined> | undefined;
39
+ warnings: Array<Warning>;
40
+ onChunk: (chunk: StreamChunkEvent) => void | Promise<void>;
41
+ }
42
+ export interface StreamStepResult {
43
+ text: string;
44
+ reasoningText: string | undefined;
45
+ toolCalls: Array<ToolCall>;
46
+ finishReason: FinishReason;
47
+ rawFinishReason: string | undefined;
48
+ usage: LanguageModelUsage;
49
+ request: RequestMetadata;
50
+ response: ResponseMetadata;
51
+ }
52
+ export declare function streamStep<TOOLS extends ToolSet>(input: StreamStepInput<TOOLS>): Promise<StreamStepResult>;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAmC,qBAAqB,aAAc;AACtE,cACE,cACA,oBACA,cACA,iBACA,kBACA,UACA,YACA,SACA,eACK,aAAc;AAYrB,YAAY,mBACR;CAAE,MAAM;CAAc;CAAY;AAAe,IACjD;CAAE,MAAM;CAAmB;CAAY;AAAe,IACtD;CACA,MAAM;CACN;CACA;CACA;AACD,IACC;CACA,MAAM;CACN,cAAc;CACd;CACA,OAAO;AACR,IACC;CAAE,MAAM;CAAS,OAAO;AAAO;AAEnC,iBAAiB,gBAAgB,cAAc,SAAS;CACtD,OAAO;CACP,UAAU,cAAc;CACxB,OAAO;CACP,YAAY,WAAW;CACvB;CACA;CACA;CACA,eAAe;CACf;CACA;CACA;CACA,aAAa;CACb,SAAS;CACT,UAAU,MAAM;CAChB,UAAUA,OAAO,4BAA4B;AAC9C;AAED,iBAAiB,iBAAiB;CAChC;CACA;CACA,WAAW,MAAM;CACjB,cAAc;CACd;CACA,OAAO;CACP,SAAS;CACT,UAAU;AACX;AAsCD,OAAO,iBAAe,WAAW,cAAc,SAC7CC,OAAO,gBAAgB,SACtB,QAAQ","names":["chunk: StreamChunkEvent","input: StreamStepInput<TOOLS>"],"sources":["../../../src/internal/streamStep.ts"],"version":3,"file":"streamStep.d.ts"}
@@ -0,0 +1,15 @@
1
+ import type { ModelMessage } from "../types.js";
2
+ import { type UIMessage } from "../uiMessage.js";
3
+ /**
4
+ * Convert `UIMessage[]` (the conversation shape rendered in the UI) into
5
+ * `ModelMessage[]` (the shape `streamText` accepts).
6
+ *
7
+ * v0: text-only. File parts, reasoning parts, source parts, and tool-related
8
+ * parts are dropped. Tool-result UIMessages (none in v0 either) would map to
9
+ * `ToolModelMessage` once tool round-trips are wired up.
10
+ *
11
+ * When `system` is provided, any system-role messages already in `ui` are
12
+ * dropped so the prompt isn't double-prepended — the transport-level
13
+ * `system` wins.
14
+ */
15
+ export declare function uiMessagesToModelMessages(ui: ReadonlyArray<UIMessage>, system?: string): Array<ModelMessage>;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,oBAAoB,aAAc;AAChD,cAAgC,iBAAiB,iBAAkB;;;;;;;;;;;;;AAcnE,OAAO,iBAAS,0BACdA,IAAI,cAAc,YAClBC,kBACC,MAAM","names":["ui: ReadonlyArray<UIMessage>","system?: string"],"sources":["../../../src/internal/uiMessageBridge.ts"],"version":3,"file":"uiMessageBridge.d.ts"}
@@ -0,0 +1,35 @@
1
+ import type { LanguageModel } from "./model.js";
2
+ import type { ChatTransport, ChatTransportReconnectArgs, ChatTransportSendMessagesArgs, UIMessage, UIMessageChunk } from "./uiMessage.js";
3
+ type SendMessagesArgs = ChatTransportSendMessagesArgs<UIMessage>;
4
+ /**
5
+ * Options for {@link LmsChatTransport}. Configures the streamed chat
6
+ * completion against the Foundry Language Model Service.
7
+ */
8
+ export interface LmsChatTransportOptions {
9
+ /** Foundry-LMS-backed language model. Build via `foundryModel(...)`. */
10
+ model: LanguageModel;
11
+ /** System prompt prepended to every request. */
12
+ system?: string;
13
+ /** Sampling controls. */
14
+ temperature?: number;
15
+ maxOutputTokens?: number;
16
+ topP?: number;
17
+ presencePenalty?: number;
18
+ frequencyPenalty?: number;
19
+ stopSequences?: Array<string>;
20
+ seed?: number;
21
+ /** Extra HTTP headers forwarded to LMS. */
22
+ headers?: Record<string, string | undefined>;
23
+ }
24
+ /**
25
+ * Stream chat completions through the Foundry Language Model Service via
26
+ * `streamText`. Implements `ChatTransport`, so any consumer that accepts a
27
+ * transport can plug it in (e.g. to inject custom sampling).
28
+ */
29
+ export declare class LmsChatTransport implements ChatTransport<UIMessage> {
30
+ private readonly opts;
31
+ constructor(opts: LmsChatTransportOptions);
32
+ sendMessages: (args: SendMessagesArgs) => Promise<ReadableStream<UIMessageChunk>>;
33
+ reconnectToStream: (_args: ChatTransportReconnectArgs) => Promise<ReadableStream<UIMessageChunk> | null>;
34
+ }
35
+ export {};
@@ -0,0 +1 @@
1
+ {"mappings":"AAiBA,cAAc,qBAAqB,YAAa;AAEhD,cACE,eACA,4BACA,+BACA,WACA,sBACK,gBAAiB;KAEnB,mBAAmB,8BAA8B;;;;;AAMtD,iBAAiB,wBAAwB;;CAEvC,OAAO;;CAGP;;CAGA;CACA;CACA;CACA;CACA;CACA,gBAAgB;CAChB;;CAGA,UAAU;AACX;;;;;;AAOD,OAAO,cAAM,4BAA4B,cAAc,WAAW;CAChE,iBAAiB;CAEjB,YAAYA,MAAM;CAIlB,eACEC,MAAM,qBACL,QAAQ,eAAe;CAwH1B,oBACEC,OAAO,+BACN,QAAQ,eAAe;AAG3B","names":["opts: LmsChatTransportOptions","args: SendMessagesArgs","_args: ChatTransportReconnectArgs"],"sources":["../../src/lmsChatTransport.ts"],"version":3,"file":"lmsChatTransport.d.ts"}
@@ -0,0 +1,42 @@
1
+ import type { PlatformClient } from "@osdk/client";
2
+ /**
3
+ * Identifies a model in the Foundry Language Model Service.
4
+ *
5
+ * - `lmsModel`: a built-in LMS model addressed by `apiName` (e.g. "gpt-4o")
6
+ * - `registeredModel`: a customer-registered model addressed by RID
7
+ */
8
+ export type ModelIdentifier = {
9
+ type: "lmsModel"
10
+ apiName: string
11
+ } | {
12
+ type: "registeredModel"
13
+ registeredModelRid: string
14
+ };
15
+ /** Opaque language model handle accepted by `generateText` / `streamText`. */
16
+ export interface LanguageModel {
17
+ /** Stable identifier for logging / telemetry, e.g. "foundry/gpt-4o". */
18
+ readonly modelId: string;
19
+ /** Provider tag — `"foundry-lms"` for the built-in LMS adapter. */
20
+ readonly provider: string;
21
+ }
22
+ export interface FoundryModelOptions {
23
+ /** Foundry PlatformClient providing the auth token + base URL. */
24
+ client: PlatformClient;
25
+ /** LMS model API name or registered model RID. */
26
+ model: string | ModelIdentifier;
27
+ }
28
+ /**
29
+ * Construct a Foundry-LMS-backed {@link LanguageModel}.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * import { foundryModel, generateText } from "@osdk/aip-core";
34
+ *
35
+ * const model = foundryModel({ client, model: "gpt-4o" });
36
+ * const { text } = await generateText({
37
+ * model,
38
+ * prompt: "Hello, world",
39
+ * });
40
+ * ```
41
+ */
42
+ export declare function foundryModel(options: FoundryModelOptions): LanguageModel;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,sBAAsB,cAAe;;;;;;;AAQnD,YAAY,kBACR;CAAE,MAAM;CAAY;AAAiB,IACrC;CAAE,MAAM;CAAmB;AAA4B;;AAG3D,iBAAiB,cAAc;;UAEpB;;UAEA;AACV;AAED,iBAAiB,oBAAoB;;CAEnC,QAAQ;;CAER,gBAAgB;AACjB;;;;;;;;;;;;;;;AAwBD,OAAO,iBAAS,aAAaA,SAAS,sBAAsB","names":["options: FoundryModelOptions"],"sources":["../../src/model.ts"],"version":3,"file":"model.d.ts"}
@@ -0,0 +1,2 @@
1
+ export { createFoundryAI } from "../ai-sdk/provider.js";
2
+ export type { FoundryAIProvider, FoundryAIProviderOptions } from "../ai-sdk/provider.js";
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,SAAS,uBAAuB;AAChC,cACE,mBACA,gCACK","names":[],"sources":["../../../src/public/ai-sdk.ts"],"version":3,"file":"ai-sdk.d.ts"}
@@ -0,0 +1,82 @@
1
+ import { type StreamChunkEvent } from "./internal/streamStep.js";
2
+ import type { LanguageModel } from "./model.js";
3
+ import type { FinishReason, LanguageModelUsage, ModelMessage, RequestMetadata, ResponseMetadata, SystemModelMessage, ToolCall, ToolChoice, ToolSet, Warning } from "./types.js";
4
+ /**
5
+ * Options for {@link streamText}.
6
+ */
7
+ export interface StreamTextOptions<TOOLS extends ToolSet = ToolSet> {
8
+ /** The language model to use. Build one via `foundryModel(...)`. */
9
+ model: LanguageModel;
10
+ /** Plain text prompt. Mutually exclusive with `messages`. */
11
+ prompt?: string | Array<ModelMessage>;
12
+ /** Conversation history. Mutually exclusive with `prompt`. */
13
+ messages?: Array<ModelMessage>;
14
+ /** System instructions, prepended to the conversation. */
15
+ system?: string | SystemModelMessage | Array<SystemModelMessage>;
16
+ tools?: TOOLS;
17
+ toolChoice?: ToolChoice<TOOLS>;
18
+ maxOutputTokens?: number;
19
+ temperature?: number;
20
+ topP?: number;
21
+ presencePenalty?: number;
22
+ frequencyPenalty?: number;
23
+ stopSequences?: Array<string>;
24
+ seed?: number;
25
+ abortSignal?: AbortSignal;
26
+ headers?: Record<string, string | undefined>;
27
+ /** Fires for every chunk emitted on `fullStream`. */
28
+ onChunk?: (chunk: TextStreamChunk) => void | PromiseLike<void>;
29
+ /** Fires when the stream errors out. The same error is also emitted via the stream. */
30
+ onError?: (error: Error) => void | PromiseLike<void>;
31
+ /** Fires once after the stream completes successfully. */
32
+ onFinish?: (event: {
33
+ finishReason: FinishReason
34
+ text: string
35
+ reasoningText: string | undefined
36
+ toolCalls: Array<ToolCall>
37
+ usage: LanguageModelUsage
38
+ totalUsage: LanguageModelUsage
39
+ warnings: Array<Warning> | undefined
40
+ response: ResponseMetadata | undefined
41
+ request: RequestMetadata | undefined
42
+ }) => void | PromiseLike<void>;
43
+ }
44
+ /**
45
+ * Single chunk emitted on a {@link StreamTextResult.fullStream}.
46
+ *
47
+ * `toolName` is a runtime string — the model returns whatever it returns,
48
+ * so the chunk's tool name is not statically narrowed against the user's
49
+ * `TOOLS` set.
50
+ */
51
+ export type TextStreamChunk = StreamChunkEvent;
52
+ /**
53
+ * Result of {@link streamText}.
54
+ *
55
+ * `fullStream` is a `ReadableStream` (not an async iterable) so it can be
56
+ * `pipeThrough`-ed with browser-native transforms.
57
+ */
58
+ export interface StreamTextResult {
59
+ /** Stream of all chunk events. */
60
+ fullStream: ReadableStream<TextStreamChunk>;
61
+ /** Stream of just text-delta strings (convenience). */
62
+ textStream: ReadableStream<string>;
63
+ /** Resolves to the final accumulated assistant text. */
64
+ text: Promise<string>;
65
+ /** Resolves to the final accumulated reasoning text, if any. */
66
+ reasoningText: Promise<string | undefined>;
67
+ /** Resolves to the final usage. */
68
+ usage: Promise<LanguageModelUsage>;
69
+ /** Resolves to the same usage (single-step v0). */
70
+ totalUsage: Promise<LanguageModelUsage>;
71
+ /** Resolves to the finish reason. */
72
+ finishReason: Promise<FinishReason>;
73
+ /** Resolves to the accumulated tool calls. */
74
+ toolCalls: Promise<Array<ToolCall>>;
75
+ /** Resolves to v0 warnings, if any. */
76
+ warnings: Promise<Array<Warning> | undefined>;
77
+ /** Resolves to response metadata once the stream finishes. */
78
+ response: Promise<ResponseMetadata | undefined>;
79
+ /** Resolves to the request metadata. */
80
+ request: Promise<RequestMetadata | undefined>;
81
+ }
82
+ export declare function streamText<TOOLS extends ToolSet = ToolSet>(options: StreamTextOptions<TOOLS>): StreamTextResult;
@@ -0,0 +1 @@
1
+ {"mappings":"AAiBA,cAAc,wBAAoC,0BAA2B;AAC7E,cAAc,qBAAqB,YAAa;AAChD,cACE,cACA,oBACA,cACA,iBACA,kBACA,oBACA,UACA,YACA,SACA,eACK,YAAa;;;;AAKpB,iBAAiB,kBAAkB,cAAc,UAAU,SAAS;;CAElE,OAAO;;CAGP,kBAAkB,MAAM;;CAGxB,WAAW,MAAM;;CAGjB,kBAAkB,qBAAqB,MAAM;CAI7C,QAAQ;CACR,aAAa,WAAW;CAIxB;CACA;CACA;CACA;CACA;CACA,gBAAgB;CAChB;CAIA,cAAc;CACd,UAAU;;CAKV,WAAWA,OAAO,2BAA2B;;CAG7C,WAAWC,OAAO,iBAAiB;;CAGnC,YACEC,OAAO;EACL,cAAc;EACd;EACA;EACA,WAAW,MAAM;EACjB,OAAO;EACP,YAAY;EACZ,UAAU,MAAM;EAChB,UAAU;EACV,SAAS;CACV,aACS;AACb;;;;;;;;AASD,YAAY,kBAAkB;;;;;;;AAQ9B,iBAAiB,iBAAiB;;CAEhC,YAAY,eAAe;;CAE3B,YAAY;;CAEZ,MAAM;;CAEN,eAAe;;CAEf,OAAO,QAAQ;;CAEf,YAAY,QAAQ;;CAEpB,cAAc,QAAQ;;CAEtB,WAAW,QAAQ,MAAM;;CAEzB,UAAU,QAAQ,MAAM;;CAExB,UAAU,QAAQ;;CAElB,SAAS,QAAQ;AAClB;AAqCD,OAAO,iBAAS,WAAW,cAAc,UAAU,SACjDC,SAAS,kBAAkB,SAC1B","names":["chunk: TextStreamChunk","error: Error","event: {\n finishReason: FinishReason;\n text: string;\n reasoningText: string | undefined;\n toolCalls: Array<ToolCall>;\n usage: LanguageModelUsage;\n totalUsage: LanguageModelUsage;\n warnings: Array<Warning> | undefined;\n response: ResponseMetadata | undefined;\n request: RequestMetadata | undefined;\n }","options: StreamTextOptions<TOOLS>"],"sources":["../../src/streamText.ts"],"version":3,"file":"streamText.d.ts"}