@ank1015/providers 0.0.1 → 0.0.2

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 (169) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -383
  3. package/dist/agent/conversation.d.ts +97 -0
  4. package/dist/agent/conversation.d.ts.map +1 -0
  5. package/dist/agent/conversation.js +328 -0
  6. package/dist/agent/conversation.js.map +1 -0
  7. package/dist/agent/runner.d.ts +37 -0
  8. package/dist/agent/runner.d.ts.map +1 -0
  9. package/dist/agent/runner.js +169 -0
  10. package/dist/agent/runner.js.map +1 -0
  11. package/dist/agent/tools/calculate.d.ts +15 -0
  12. package/dist/agent/tools/calculate.d.ts.map +1 -0
  13. package/dist/agent/tools/calculate.js +23 -0
  14. package/dist/agent/tools/calculate.js.map +1 -0
  15. package/dist/agent/tools/get-current-time.d.ts +15 -0
  16. package/dist/agent/tools/get-current-time.d.ts.map +1 -0
  17. package/dist/agent/tools/get-current-time.js +38 -0
  18. package/dist/agent/tools/get-current-time.js.map +1 -0
  19. package/dist/agent/tools/index.d.ts +3 -0
  20. package/dist/agent/tools/index.d.ts.map +1 -0
  21. package/dist/agent/tools/index.js +3 -0
  22. package/dist/agent/tools/index.js.map +1 -0
  23. package/dist/agent/types.d.ts +53 -31
  24. package/dist/agent/types.d.ts.map +1 -1
  25. package/dist/agent/types.js +1 -2
  26. package/dist/agent/utils.d.ts +14 -0
  27. package/dist/agent/utils.d.ts.map +1 -0
  28. package/dist/agent/utils.js +59 -0
  29. package/dist/agent/utils.js.map +1 -0
  30. package/dist/index.d.ts +16 -9
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +16 -28
  33. package/dist/index.js.map +1 -1
  34. package/dist/llm.d.ts +15 -0
  35. package/dist/llm.d.ts.map +1 -0
  36. package/dist/llm.js +92 -0
  37. package/dist/llm.js.map +1 -0
  38. package/dist/models.d.ts +8 -1
  39. package/dist/models.d.ts.map +1 -1
  40. package/dist/models.generated.d.ts +25 -112
  41. package/dist/models.generated.d.ts.map +1 -1
  42. package/dist/models.generated.js +72 -227
  43. package/dist/models.generated.js.map +1 -1
  44. package/dist/models.js +30 -32
  45. package/dist/models.js.map +1 -1
  46. package/dist/providers/google/complete.d.ts +3 -0
  47. package/dist/providers/google/complete.d.ts.map +1 -0
  48. package/dist/providers/google/complete.js +53 -0
  49. package/dist/providers/google/complete.js.map +1 -0
  50. package/dist/providers/google/index.d.ts +6 -0
  51. package/dist/providers/google/index.d.ts.map +1 -0
  52. package/dist/providers/google/index.js +6 -0
  53. package/dist/providers/google/index.js.map +1 -0
  54. package/dist/providers/google/stream.d.ts +3 -0
  55. package/dist/providers/google/stream.d.ts.map +1 -0
  56. package/dist/providers/{google.js → google/stream.js} +67 -231
  57. package/dist/providers/google/stream.js.map +1 -0
  58. package/dist/providers/google/types.d.ts +8 -0
  59. package/dist/providers/google/types.d.ts.map +1 -0
  60. package/dist/providers/google/types.js +2 -0
  61. package/dist/providers/google/types.js.map +1 -0
  62. package/dist/providers/google/utils.d.ts +30 -0
  63. package/dist/providers/google/utils.d.ts.map +1 -0
  64. package/dist/providers/google/utils.js +354 -0
  65. package/dist/providers/google/utils.js.map +1 -0
  66. package/dist/providers/openai/complete.d.ts +3 -0
  67. package/dist/providers/openai/complete.d.ts.map +1 -0
  68. package/dist/providers/openai/complete.js +57 -0
  69. package/dist/providers/openai/complete.js.map +1 -0
  70. package/dist/providers/openai/index.d.ts +4 -0
  71. package/dist/providers/openai/index.d.ts.map +1 -0
  72. package/dist/providers/openai/index.js +4 -0
  73. package/dist/providers/openai/index.js.map +1 -0
  74. package/dist/providers/openai/stream.d.ts +3 -0
  75. package/dist/providers/openai/stream.d.ts.map +1 -0
  76. package/dist/providers/{openai.js → openai/stream.js} +74 -152
  77. package/dist/providers/openai/stream.js.map +1 -0
  78. package/dist/providers/openai/types.d.ts +8 -0
  79. package/dist/providers/openai/types.d.ts.map +1 -0
  80. package/dist/providers/openai/types.js +2 -0
  81. package/dist/providers/openai/types.js.map +1 -0
  82. package/dist/providers/openai/utils.d.ts +13 -0
  83. package/dist/providers/openai/utils.d.ts.map +1 -0
  84. package/dist/providers/openai/utils.js +285 -0
  85. package/dist/providers/openai/utils.js.map +1 -0
  86. package/dist/types.d.ts +95 -87
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/types.js +1 -9
  89. package/dist/types.js.map +1 -1
  90. package/dist/utils/event-stream.d.ts +2 -2
  91. package/dist/utils/event-stream.d.ts.map +1 -1
  92. package/dist/utils/event-stream.js +2 -7
  93. package/dist/utils/event-stream.js.map +1 -1
  94. package/dist/utils/json-parse.js +3 -6
  95. package/dist/utils/json-parse.js.map +1 -1
  96. package/dist/utils/overflow.d.ts +51 -0
  97. package/dist/utils/overflow.d.ts.map +1 -0
  98. package/dist/utils/overflow.js +106 -0
  99. package/dist/utils/overflow.js.map +1 -0
  100. package/dist/utils/sanitize-unicode.js +1 -4
  101. package/dist/utils/sanitize-unicode.js.map +1 -1
  102. package/dist/utils/uuid.d.ts +6 -0
  103. package/dist/utils/uuid.d.ts.map +1 -0
  104. package/dist/utils/uuid.js +9 -0
  105. package/dist/utils/uuid.js.map +1 -0
  106. package/dist/utils/validation.d.ts +10 -3
  107. package/dist/utils/validation.d.ts.map +1 -1
  108. package/dist/utils/validation.js +20 -12
  109. package/dist/utils/validation.js.map +1 -1
  110. package/package.json +45 -8
  111. package/biome.json +0 -43
  112. package/dist/agent/agent-loop.d.ts +0 -5
  113. package/dist/agent/agent-loop.d.ts.map +0 -1
  114. package/dist/agent/agent-loop.js +0 -219
  115. package/dist/agent/agent-loop.js.map +0 -1
  116. package/dist/providers/convert.d.ts +0 -6
  117. package/dist/providers/convert.d.ts.map +0 -1
  118. package/dist/providers/convert.js +0 -207
  119. package/dist/providers/convert.js.map +0 -1
  120. package/dist/providers/google.d.ts +0 -26
  121. package/dist/providers/google.d.ts.map +0 -1
  122. package/dist/providers/google.js.map +0 -1
  123. package/dist/providers/openai.d.ts +0 -17
  124. package/dist/providers/openai.d.ts.map +0 -1
  125. package/dist/providers/openai.js.map +0 -1
  126. package/dist/stream.d.ts +0 -4
  127. package/dist/stream.d.ts.map +0 -1
  128. package/dist/stream.js +0 -40
  129. package/dist/stream.js.map +0 -1
  130. package/dist/test-google-agent-loop.d.ts +0 -2
  131. package/dist/test-google-agent-loop.d.ts.map +0 -1
  132. package/dist/test-google-agent-loop.js +0 -186
  133. package/dist/test-google-agent-loop.js.map +0 -1
  134. package/dist/test-google.d.ts +0 -2
  135. package/dist/test-google.d.ts.map +0 -1
  136. package/dist/test-google.js +0 -41
  137. package/dist/test-google.js.map +0 -1
  138. package/src/agent/agent-loop.ts +0 -275
  139. package/src/agent/types.ts +0 -80
  140. package/src/index.ts +0 -72
  141. package/src/models.generated.ts +0 -314
  142. package/src/models.ts +0 -45
  143. package/src/providers/convert.ts +0 -222
  144. package/src/providers/google.ts +0 -496
  145. package/src/providers/openai.ts +0 -437
  146. package/src/stream.ts +0 -60
  147. package/src/types.ts +0 -198
  148. package/src/utils/event-stream.ts +0 -60
  149. package/src/utils/json-parse.ts +0 -28
  150. package/src/utils/sanitize-unicode.ts +0 -25
  151. package/src/utils/validation.ts +0 -69
  152. package/test/core/agent-loop.test.ts +0 -958
  153. package/test/core/stream.test.ts +0 -409
  154. package/test/data/red-circle.png +0 -0
  155. package/test/data/superintelligentwill.pdf +0 -0
  156. package/test/edge-cases/general.test.ts +0 -565
  157. package/test/integration/e2e.test.ts +0 -530
  158. package/test/models/cost.test.ts +0 -499
  159. package/test/models/registry.test.ts +0 -298
  160. package/test/providers/convert.test.ts +0 -846
  161. package/test/providers/google-schema.test.ts +0 -666
  162. package/test/providers/google-stream.test.ts +0 -369
  163. package/test/providers/openai-stream.test.ts +0 -251
  164. package/test/utils/event-stream.test.ts +0 -289
  165. package/test/utils/json-parse.test.ts +0 -344
  166. package/test/utils/sanitize-unicode.test.ts +0 -329
  167. package/test/utils/validation.test.ts +0 -614
  168. package/tsconfig.json +0 -21
  169. package/vitest.config.ts +0 -9
@@ -0,0 +1,285 @@
1
+ import OpenAI from "openai";
2
+ import { sanitizeSurrogates } from "../../utils/sanitize-unicode.js";
3
+ import { calculateCost } from "../../models.js";
4
+ export function createClient(model, apiKey) {
5
+ if (!apiKey) {
6
+ if (!process.env.OPENAI_API_KEY) {
7
+ throw new Error("OpenAI API key is required. Set OPENAI_API_KEY environment variable or pass it as an argument.");
8
+ }
9
+ apiKey = process.env.OPENAI_API_KEY;
10
+ }
11
+ return new OpenAI({
12
+ apiKey,
13
+ baseURL: model.baseUrl,
14
+ dangerouslyAllowBrowser: true,
15
+ defaultHeaders: model.headers,
16
+ });
17
+ }
18
+ export function getResponseAssistantResponse(response) {
19
+ const assistantResponse = [];
20
+ if (response.output) {
21
+ for (const item of response.output) {
22
+ if (item.type === 'reasoning' && item.summary) {
23
+ // Convert reasoning to thinking content
24
+ const thinkingText = item.summary.map(s => s.text).join('\n\n');
25
+ assistantResponse.push({
26
+ type: 'thinking',
27
+ thinkingText: thinkingText
28
+ });
29
+ }
30
+ else if (item.type === 'message' && item.content) {
31
+ // Convert message to text content
32
+ const textContent = item.content
33
+ .map(c => {
34
+ if (c.type === 'output_text')
35
+ return c.text;
36
+ if (c.type === 'refusal')
37
+ return c.refusal;
38
+ return '';
39
+ })
40
+ .join('');
41
+ if (textContent) {
42
+ assistantResponse.push({
43
+ type: 'response',
44
+ content: [{
45
+ type: 'text',
46
+ content: textContent
47
+ }]
48
+ });
49
+ }
50
+ }
51
+ else if (item.type === 'image_generation_call' && item.result) {
52
+ assistantResponse.push({
53
+ type: 'response',
54
+ content: [{
55
+ type: 'image',
56
+ data: item.result,
57
+ mimeType: 'image/png'
58
+ }]
59
+ });
60
+ }
61
+ else if (item.type === 'function_call') {
62
+ // Convert function call to tool call
63
+ assistantResponse.push({
64
+ type: 'toolCall',
65
+ toolCallId: item.call_id,
66
+ name: item.name,
67
+ arguments: JSON.parse(item.arguments || '{}')
68
+ });
69
+ }
70
+ }
71
+ }
72
+ return assistantResponse;
73
+ }
74
+ export function getResponseUsage(response, model) {
75
+ const cachedTokens = response.usage?.input_tokens_details?.cached_tokens || 0;
76
+ const usage = {
77
+ input: (response.usage?.input_tokens || 0) - cachedTokens,
78
+ output: response.usage?.output_tokens || 0,
79
+ cacheRead: cachedTokens,
80
+ cacheWrite: 0,
81
+ totalTokens: response.usage?.total_tokens || 0,
82
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 }
83
+ };
84
+ calculateCost(model, usage);
85
+ return usage;
86
+ }
87
+ export function buildParams(model, context, options) {
88
+ const messages = buildOpenAIMessages(model, context);
89
+ const { apiKey, signal, ...openaiOptions } = options;
90
+ const params = {
91
+ ...openaiOptions,
92
+ stream: false
93
+ };
94
+ params.model = model.id;
95
+ params.input = messages;
96
+ const tools = [];
97
+ if (context.tools && model.tools.includes('function_calling')) {
98
+ const convertedTools = convertTools(context.tools);
99
+ for (const convertedTool of convertedTools) {
100
+ tools.push(convertedTool);
101
+ }
102
+ }
103
+ if (openaiOptions.tools) {
104
+ for (const optionTool of openaiOptions.tools) {
105
+ tools.push(optionTool);
106
+ }
107
+ }
108
+ params.tools = tools;
109
+ return params;
110
+ }
111
+ export function buildOpenAIMessages(model, context) {
112
+ const openAIMessages = [];
113
+ if (context.systemPrompt) {
114
+ openAIMessages.push({
115
+ role: 'developer',
116
+ content: sanitizeSurrogates(context.systemPrompt)
117
+ });
118
+ }
119
+ ;
120
+ for (const message of context.messages) {
121
+ if (message.role === 'user') {
122
+ const contents = [];
123
+ for (let p = 0; p < message.content.length; p++) {
124
+ const content = message.content[p];
125
+ if (content.type === 'text') {
126
+ contents.push({
127
+ type: 'input_text',
128
+ text: sanitizeSurrogates(content.content)
129
+ });
130
+ }
131
+ if (content.type === 'image' && model.input.includes("image")) {
132
+ contents.push({
133
+ type: 'input_image',
134
+ detail: 'auto',
135
+ image_url: `data:${content.mimeType};base64,${content.data}`
136
+ });
137
+ }
138
+ if (content.type === 'file' && model.input.includes("file")) {
139
+ contents.push({
140
+ type: 'input_file',
141
+ filename: content.filename,
142
+ file_data: `data:${content.mimeType};base64,${content.data}`
143
+ });
144
+ }
145
+ }
146
+ openAIMessages.push({
147
+ role: 'user',
148
+ content: contents
149
+ });
150
+ }
151
+ // normalize for tool results
152
+ if (message.role === 'toolResult') {
153
+ const toolOutputs = [];
154
+ let hasText = false;
155
+ let hasImg = false;
156
+ let hasFile = false;
157
+ for (let p = 0; p < message.content.length; p++) {
158
+ const content = message.content[p];
159
+ if (content.type === 'text') {
160
+ // Prefix error messages so LLM knows the tool failed
161
+ const textContent = message.isError
162
+ ? `[TOOL ERROR] ${content.content}`
163
+ : content.content;
164
+ toolOutputs.push({
165
+ type: 'input_text',
166
+ text: sanitizeSurrogates(textContent)
167
+ });
168
+ hasText = true;
169
+ }
170
+ if (content.type === 'image' && model.input.includes("image")) {
171
+ toolOutputs.push({
172
+ type: 'input_image',
173
+ detail: 'auto',
174
+ image_url: `data:${content.mimeType};base64,${content.data}`
175
+ });
176
+ hasImg = true;
177
+ }
178
+ if (content.type === 'file' && model.input.includes("file")) {
179
+ toolOutputs.push({
180
+ type: 'input_file',
181
+ file_data: `data:${content.mimeType};base64,${content.data}`
182
+ });
183
+ hasFile = true;
184
+ }
185
+ }
186
+ if (!hasText && (hasImg || hasFile)) {
187
+ toolOutputs.push({
188
+ type: 'input_text',
189
+ text: message.isError ? '[TOOL ERROR] (see attached)' : '(see attached)'
190
+ });
191
+ }
192
+ const toolResultInput = {
193
+ call_id: message.toolCallId,
194
+ output: toolOutputs,
195
+ type: 'function_call_output',
196
+ };
197
+ openAIMessages.push(toolResultInput);
198
+ }
199
+ // normalize for Assistant message
200
+ if (message.role === 'assistant') {
201
+ if (message.model.api === 'openai') {
202
+ const baseMessage = message;
203
+ for (let p = 0; p < baseMessage.message.output.length; p++) {
204
+ const outputPart = baseMessage.message.output[p];
205
+ if (outputPart.type === 'function_call' || outputPart.type === 'message' || outputPart.type === 'reasoning') {
206
+ openAIMessages.push(outputPart);
207
+ }
208
+ }
209
+ }
210
+ // TODO Implement other provider conversions
211
+ else {
212
+ throw new Error(`Cannot convert ${message.model.api} assistant message to ${model.api} format. ` +
213
+ `Cross-provider conversion for ${message.model.api} → ${model.api} is not yet implemented.`);
214
+ }
215
+ }
216
+ }
217
+ return openAIMessages;
218
+ }
219
+ export function convertTools(tools) {
220
+ return tools.map((tool) => ({
221
+ type: "function",
222
+ name: tool.name,
223
+ description: tool.description,
224
+ parameters: tool.parameters, // TypeBox already generates JSON Schema
225
+ strict: null,
226
+ }));
227
+ }
228
+ export function mapStopReason(status) {
229
+ if (!status)
230
+ return "stop";
231
+ switch (status) {
232
+ case "completed":
233
+ return "stop";
234
+ case "incomplete":
235
+ return "length";
236
+ case "failed":
237
+ case "cancelled":
238
+ return "error";
239
+ // These two are wonky ...
240
+ case "in_progress":
241
+ case "queued":
242
+ return "stop";
243
+ default: {
244
+ const _exhaustive = status;
245
+ throw new Error(`Unhandled stop reason: ${_exhaustive}`);
246
+ }
247
+ }
248
+ }
249
+ export function getMockOpenaiMessage() {
250
+ return {
251
+ id: "resp_123",
252
+ object: "response",
253
+ created_at: 1740855869,
254
+ output_text: '',
255
+ status: "completed",
256
+ incomplete_details: null,
257
+ parallel_tool_calls: false,
258
+ error: null,
259
+ instructions: null,
260
+ max_output_tokens: null,
261
+ model: "gpt-4o-mini-2024-07-18",
262
+ output: [],
263
+ previous_response_id: null,
264
+ temperature: 1,
265
+ text: {},
266
+ tool_choice: "auto",
267
+ tools: [],
268
+ top_p: 1,
269
+ truncation: "disabled",
270
+ usage: {
271
+ input_tokens: 0,
272
+ output_tokens: 0,
273
+ output_tokens_details: {
274
+ reasoning_tokens: 0
275
+ },
276
+ input_tokens_details: {
277
+ cached_tokens: 0
278
+ },
279
+ total_tokens: 0
280
+ },
281
+ user: undefined,
282
+ metadata: {}
283
+ };
284
+ }
285
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/openai/utils.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { Response } from "openai/resources/responses/responses.js";
2
- import type { TSchema } from "@sinclair/typebox";
3
- import { OpenAIProviderOptions } from "./providers/openai";
4
- import { AssistantMessageEventStream } from "./utils/event-stream";
5
- import { GoogleProviderOptions } from "./providers/google";
6
2
  import type { GenerateContentResponse } from "@google/genai";
7
- export type Api = 'openai' | 'google';
3
+ import type { TSchema } from "@sinclair/typebox";
4
+ import { OpenAIProviderOptions } from "./providers/openai/index.js";
5
+ import { GoogleProviderOptions } from "./providers/google/index.js";
6
+ import { AssistantMessageEventStream } from "./utils/event-stream.js";
7
+ export declare const KnownApis: readonly ["openai", "google"];
8
+ export type Api = typeof KnownApis[number];
8
9
  export interface Model<TApi extends Api> {
9
10
  id: string;
10
11
  name: string;
@@ -21,17 +22,40 @@ export interface Model<TApi extends Api> {
21
22
  contextWindow: number;
22
23
  maxTokens: number;
23
24
  headers?: Record<string, string>;
25
+ tools: string[];
26
+ excludeSettings?: string[];
27
+ }
28
+ export interface TextContent {
29
+ type: 'text';
30
+ content: string;
31
+ metadata?: Record<string, any>;
24
32
  }
33
+ export interface ImageContent {
34
+ type: "image";
35
+ data: string;
36
+ mimeType: string;
37
+ metadata?: Record<string, any>;
38
+ }
39
+ export interface FileContent {
40
+ type: "file";
41
+ data: string;
42
+ mimeType: string;
43
+ filename: string;
44
+ metadata?: Record<string, any>;
45
+ }
46
+ export type Content = (TextContent | ImageContent | FileContent)[];
25
47
  export interface UserMessage {
26
48
  role: "user";
27
- timestamp: number;
28
- content: (UserTextContent | UserImageContent | UserFileContent)[];
49
+ id: string;
50
+ timestamp?: number;
51
+ content: Content;
29
52
  }
30
53
  export interface ToolResultMessage<TDetails = any> {
31
54
  role: "toolResult";
55
+ id: string;
32
56
  toolName: string;
33
- toolCallId?: string;
34
- content: (UserTextContent | UserImageContent | UserFileContent)[];
57
+ toolCallId: string;
58
+ content: Content;
35
59
  details?: TDetails;
36
60
  isError: boolean;
37
61
  error?: {
@@ -41,45 +65,22 @@ export interface ToolResultMessage<TDetails = any> {
41
65
  };
42
66
  timestamp: number;
43
67
  }
44
- export interface UserImageContent {
45
- type: "image";
46
- data: string;
47
- mimeType: string;
48
- }
49
- export interface UserFileContent {
50
- type: "file";
51
- data: string;
52
- mimeType: string;
53
- }
54
- export interface UserTextContent {
55
- type: 'text';
56
- content: string;
57
- }
58
- export interface NativeOpenAIMessage {
59
- role: "assistant";
60
- _provider: 'openai';
61
- message: Response;
62
- }
63
- export interface NativeGoogleMessage {
64
- role: "assistant";
65
- _provider: 'google';
66
- message: GenerateContentResponse;
68
+ export type StopReason = "stop" | "length" | "toolUse" | "error" | "aborted";
69
+ export interface AssistantResponseContent {
70
+ type: 'response';
71
+ content: Content;
67
72
  }
68
- export type NativeAssistantMessage = NativeOpenAIMessage | NativeGoogleMessage;
69
- export type Message = UserMessage | NativeAssistantMessage | ToolResultMessage;
70
- export interface Tool<TParameters extends TSchema = TSchema, TName extends string = string> {
71
- name: TName;
72
- description: string;
73
- parameters: TParameters;
73
+ export interface AssistantThinkingContent {
74
+ type: 'thinking';
75
+ thinkingText: string;
74
76
  }
75
- export type ToolName<TTool extends Tool> = TTool["name"];
76
- export type ToolNames<TTools extends readonly Tool[]> = TTools[number]["name"];
77
- export declare function defineTool<TParameters extends TSchema, TName extends string>(tool: Tool<TParameters, TName>): Tool<TParameters, TName>;
78
- export interface Context<TTools extends readonly Tool[] = readonly Tool[]> {
79
- messages: Message[];
80
- systemPrompt?: string;
81
- tools?: TTools;
77
+ export interface AssistantToolCall {
78
+ type: "toolCall";
79
+ name: string;
80
+ arguments: Record<string, any>;
81
+ toolCallId: string;
82
82
  }
83
+ export type AssistantResponse = (AssistantResponseContent | AssistantThinkingContent | AssistantToolCall)[];
83
84
  export interface Usage {
84
85
  input: number;
85
86
  output: number;
@@ -94,94 +95,101 @@ export interface Usage {
94
95
  total: number;
95
96
  };
96
97
  }
97
- export type StopReason = "stop" | "length" | "toolUse" | "error" | "aborted";
98
- export interface AssistantMessage {
98
+ export interface ApiNativeAssistantMessageMap {
99
+ "openai": Response;
100
+ "google": GenerateContentResponse;
101
+ }
102
+ export type NativeAssistantMessageForApi<TApi extends Api> = ApiNativeAssistantMessageMap[TApi];
103
+ export interface BaseAssistantMessage<TApi extends Api> {
99
104
  role: "assistant";
100
- content: (AssistantTextContent | AssistantThinkingContent | AssistantToolCall | AbstractedImageContent)[];
101
- api: Api;
102
- model: string;
103
- usage: Usage;
104
- stopReason: StopReason;
105
+ message: NativeAssistantMessageForApi<TApi>;
106
+ api: string;
107
+ id: string;
108
+ model: Model<TApi>;
105
109
  errorMessage?: string;
106
110
  timestamp: number;
111
+ duration: number;
112
+ stopReason: StopReason;
113
+ content: AssistantResponse;
114
+ usage: Usage;
107
115
  }
108
- export interface AssistantTextContent {
109
- type: 'text';
110
- text: string;
111
- }
112
- export interface AssistantThinkingContent {
113
- type: 'thinking';
114
- thinking: string;
115
- }
116
- export interface AssistantToolCall {
117
- type: "toolCall";
118
- name: string;
119
- arguments: Record<string, any>;
120
- id?: string;
121
- }
122
- export interface AbstractedImageContent {
123
- type: "image";
124
- data: string;
125
- mimeType: string;
116
+ export interface CustomMessage {
117
+ role: "custom";
118
+ id: string;
119
+ content: Record<string, any>;
120
+ timestamp?: number;
126
121
  }
127
- export type AssistantMessageEvent = {
122
+ export type Message = UserMessage | ToolResultMessage | BaseAssistantMessage<Api> | CustomMessage;
123
+ export type BaseAssistantEventMessage<TApi extends Api> = Omit<BaseAssistantMessage<TApi>, 'message'>;
124
+ export type BaseAssistantEvent<TApi extends Api> = {
128
125
  type: "start";
129
- partial: AssistantMessage;
126
+ message: BaseAssistantEventMessage<Api>;
130
127
  } | {
131
128
  type: "text_start";
132
129
  contentIndex: number;
133
- partial: AssistantMessage;
130
+ message: BaseAssistantEventMessage<Api>;
134
131
  } | {
135
132
  type: "text_delta";
136
133
  contentIndex: number;
137
134
  delta: string;
138
- partial: AssistantMessage;
135
+ message: BaseAssistantEventMessage<Api>;
139
136
  } | {
140
137
  type: "text_end";
141
138
  contentIndex: number;
142
- content: string;
143
- partial: AssistantMessage;
139
+ content: Content;
140
+ message: BaseAssistantEventMessage<Api>;
144
141
  } | {
145
142
  type: "thinking_start";
146
143
  contentIndex: number;
147
- partial: AssistantMessage;
144
+ message: BaseAssistantEventMessage<Api>;
148
145
  } | {
149
146
  type: "thinking_delta";
150
147
  contentIndex: number;
151
148
  delta: string;
152
- partial: AssistantMessage;
149
+ message: BaseAssistantEventMessage<Api>;
153
150
  } | {
154
151
  type: "thinking_end";
155
152
  contentIndex: number;
156
153
  content: string;
157
- partial: AssistantMessage;
154
+ message: BaseAssistantEventMessage<Api>;
158
155
  } | {
159
156
  type: "toolcall_start";
160
157
  contentIndex: number;
161
- partial: AssistantMessage;
158
+ message: BaseAssistantEventMessage<Api>;
162
159
  } | {
163
160
  type: "toolcall_delta";
164
161
  contentIndex: number;
165
162
  delta: string;
166
- partial: AssistantMessage;
163
+ message: BaseAssistantEventMessage<Api>;
167
164
  } | {
168
165
  type: "toolcall_end";
169
166
  contentIndex: number;
170
167
  toolCall: AssistantToolCall;
171
- partial: AssistantMessage;
168
+ message: BaseAssistantEventMessage<Api>;
172
169
  } | {
173
170
  type: "done";
174
171
  reason: Extract<StopReason, "stop" | "length" | "toolUse">;
175
- message: AssistantMessage;
172
+ message: BaseAssistantEventMessage<Api>;
176
173
  } | {
177
174
  type: "error";
178
175
  reason: Extract<StopReason, "aborted" | "error">;
179
- error: AssistantMessage;
176
+ message: BaseAssistantEventMessage<Api>;
180
177
  };
178
+ export interface Tool<TParameters extends TSchema = TSchema, TName extends string = string> {
179
+ name: TName;
180
+ description: string;
181
+ parameters: TParameters;
182
+ }
183
+ export interface Context {
184
+ messages: Message[];
185
+ systemPrompt?: string;
186
+ tools?: Tool[];
187
+ }
181
188
  export interface ApiOptionsMap {
182
- "openai": OpenAIProviderOptions;
183
- "google": GoogleProviderOptions;
189
+ 'openai': OpenAIProviderOptions;
190
+ 'google': GoogleProviderOptions;
184
191
  }
185
192
  export type OptionsForApi<TApi extends Api> = ApiOptionsMap[TApi];
186
- export type StreamFunction<TApi extends Api> = (model: Model<TApi>, context: Context, options: OptionsForApi<TApi>) => AssistantMessageEventStream;
193
+ export type CompleteFunction<TApi extends Api> = (model: Model<TApi>, context: Context, optionsForApi: OptionsForApi<TApi>, id: string) => Promise<BaseAssistantMessage<TApi>>;
194
+ export type StreamFunction<TApi extends Api> = (model: Model<TApi>, context: Context, optionsForApi: OptionsForApi<TApi>, id: string) => AssistantMessageEventStream<TApi>;
187
195
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,10 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineTool = defineTool;
4
- // Helper function to create a tool with better type inference
5
- // Use 'as const' on the tool array for best autocomplete:
6
- // const tools = [defineTool({ name: "calculator", ... }), ...] as const
7
- function defineTool(tool) {
8
- return tool;
9
- }
1
+ export const KnownApis = ['openai', 'google'];
10
2
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;AAqGA,gCAIC;AAPD,8DAA8D;AAC9D,0DAA0D;AAC1D,wEAAwE;AACxE,SAAgB,UAAU,CACzB,IAA8B;IAE9B,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC"}
@@ -1,4 +1,4 @@
1
- import { NativeAssistantMessage, AssistantMessageEvent } from "../types";
1
+ import { BaseAssistantMessage, BaseAssistantEvent, Api } from "../types.js";
2
2
  export declare class EventStream<T, R = T> implements AsyncIterable<T> {
3
3
  private queue;
4
4
  private waiting;
@@ -11,6 +11,6 @@ export declare class EventStream<T, R = T> implements AsyncIterable<T> {
11
11
  [Symbol.asyncIterator](): AsyncIterator<T>;
12
12
  result(): Promise<R>;
13
13
  }
14
- export declare class AssistantMessageEventStream extends EventStream<AssistantMessageEvent, NativeAssistantMessage> {
14
+ export declare class AssistantMessageEventStream<TApi extends Api> extends EventStream<BaseAssistantEvent<TApi>, BaseAssistantMessage<TApi>> {
15
15
  }
16
16
  //# sourceMappingURL=event-stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../src/utils/event-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAGzE,qBAAa,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,kBAAkB,CAAuB;;IAQjD,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAYpB,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAYb,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;IAcjD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;CAGpB;AAED,qBAAa,2BAA4B,SAAQ,WAAW,CAAC,qBAAqB,EAAE,sBAAsB,CAAC;CAAG"}
1
+ {"version":3,"file":"event-stream.d.ts","sourceRoot":"","sources":["../../src/utils/event-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAG5E,qBAAa,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,kBAAkB,CAAuB;;IAQjD,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAYpB,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAYb,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC;IAcjD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC;CAGpB;AAED,qBAAa,2BAA2B,CAAC,IAAI,SAAS,GAAG,CAAE,SAAQ,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;CAAG"}