@zhivex-ai/meta 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # @zhivex-ai/meta
2
+
3
+ Meta Model API adapter for Zhivex AI SDK.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ bun add @zhivex-ai/meta
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { generateText } from "@zhivex-ai/core";
15
+ import { createMeta } from "@zhivex-ai/meta";
16
+
17
+ const meta = createMeta({
18
+ apiKey: process.env.MODEL_API_KEY
19
+ });
20
+
21
+ const result = await generateText({
22
+ model: meta("muse-spark-1.1"),
23
+ prompt: "Explain tool calling in one sentence."
24
+ });
25
+
26
+ console.log(result.text);
27
+ ```
28
+
29
+ The adapter defaults to `https://api.meta.ai/v1` and reads `MODEL_API_KEY` when no key is passed explicitly.
30
+
31
+ Repository and full documentation:
32
+
33
+ - <https://github.com/Zhivex/zhivex-ai-sdk>
@@ -0,0 +1,49 @@
1
+ import { type CallableProviderAdapter, type JsonValue, type ProviderAdapter } from "@zhivex-ai/core";
2
+ export interface MetaProviderOptions {
3
+ apiKey?: string;
4
+ baseURL?: string;
5
+ fetch?: typeof globalThis.fetch;
6
+ }
7
+ export interface MetaLanguageModelOptions {
8
+ apiMode?: "chat" | "responses";
9
+ top_p?: number;
10
+ frequency_penalty?: number;
11
+ presence_penalty?: number;
12
+ stop?: string | string[];
13
+ user?: string;
14
+ include?: string[];
15
+ store?: boolean;
16
+ parallel_tool_calls?: boolean;
17
+ [key: string]: unknown;
18
+ }
19
+ export interface MetaFileOptions {
20
+ purpose?: "user_data" | "batch" | string;
21
+ [key: string]: unknown;
22
+ }
23
+ export interface MetaWebSearchToolConfig {
24
+ search_context_size?: "low" | "medium" | "high";
25
+ user_location?: {
26
+ type: "approximate";
27
+ city?: string;
28
+ region?: string;
29
+ country?: string;
30
+ timezone?: string;
31
+ };
32
+ include_results?: boolean;
33
+ [key: string]: JsonValue | undefined;
34
+ }
35
+ export interface MetaToolSearchToolConfig {
36
+ [key: string]: JsonValue | undefined;
37
+ }
38
+ export declare const createMeta: (options?: MetaProviderOptions) => CallableProviderAdapter & ProviderAdapter & {
39
+ rawFetch: typeof globalThis.fetch;
40
+ };
41
+ export declare const metaWebSearchTool: (config?: MetaWebSearchToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
42
+ export declare const metaToolSearchTool: (config?: MetaToolSearchToolConfig) => import("@zhivex-ai/core").HostedToolDefinition<JsonValue>;
43
+ export declare const metaFilePart: (fileId: string, mediaType?: string, filename?: string) => {
44
+ type: "file";
45
+ data: string;
46
+ mediaType: string;
47
+ filename: string | undefined;
48
+ };
49
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAYL,KAAK,uBAAuB,EAS5B,KAAK,SAAS,EAKd,KAAK,eAAe,EAGrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;IACzC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,mBAAmB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChD,aAAa,CAAC,EAAE;QACd,IAAI,EAAE,aAAa,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;CACtC;AA+gCD,eAAO,MAAM,UAAU,GACrB,UAAS,mBAAwB,KAChC,uBAAuB,GAAG,eAAe,GAAG;IAAE,QAAQ,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAgBjF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAQ,uBAA4B,8DAWrE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAQ,wBAA6B,8DAUvE,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,kBAAsC,EAAE,WAAW,MAAM;;;;;CAKpG,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,940 @@
1
+ import { toJSONSchema } from "zod";
2
+ import { ConfigurationError, ProviderHTTPError, UnsupportedFeatureError, createProviderAdapter, hostedTool, isCallableToolDefinition, normalizeFinishReason, providerDataPart, streamSSE, withRetry, withTimeoutSignal } from "@zhivex-ai/core";
3
+ const capabilities = {
4
+ streaming: true,
5
+ tools: true,
6
+ structuredOutput: true,
7
+ jsonMode: true,
8
+ toolChoice: true,
9
+ parallelToolCalls: true,
10
+ vision: true,
11
+ files: true,
12
+ audioInput: false,
13
+ audioOutput: false,
14
+ embeddings: false,
15
+ reasoning: true,
16
+ webSearch: true,
17
+ contextCaching: true,
18
+ agentCapabilities: {
19
+ supportTier: "tier-b",
20
+ toolChoiceNone: true,
21
+ approvalRequests: false,
22
+ hostedWebSearch: true,
23
+ hostedFileSearch: false,
24
+ remoteMcp: false,
25
+ computerUse: false,
26
+ codeExecution: false,
27
+ toolSearch: true,
28
+ toolsets: false
29
+ }
30
+ };
31
+ const jsonHeaders = (apiKey) => ({
32
+ "content-type": "application/json",
33
+ authorization: `Bearer ${apiKey}`
34
+ });
35
+ const stripProviderOptions = (options) => {
36
+ if (!options) {
37
+ return {};
38
+ }
39
+ const { apiMode: _apiMode, ...rest } = options;
40
+ return rest;
41
+ };
42
+ const parseJson = async (response) => {
43
+ if (!response.ok) {
44
+ const body = await response.text();
45
+ throw new ProviderHTTPError(`Meta request failed with status ${response.status}.`, response.status, {
46
+ responseBody: body
47
+ });
48
+ }
49
+ return response.json();
50
+ };
51
+ const blobFromData = (data, mediaType) => {
52
+ if (data instanceof Blob) {
53
+ return data;
54
+ }
55
+ if (typeof data === "string") {
56
+ return new Blob([Buffer.from(data, "base64")], { type: mediaType });
57
+ }
58
+ return new Blob([data instanceof Uint8Array ? data.buffer : data], { type: mediaType });
59
+ };
60
+ const isUrlLike = (value) => /^https?:\/\//i.test(value) || /^data:/i.test(value);
61
+ const isFileId = (value) => /^file-[A-Za-z0-9_-]+/.test(value);
62
+ const isImage = (mediaType) => mediaType?.toLowerCase().startsWith("image/");
63
+ const isVideo = (mediaType) => mediaType?.toLowerCase().startsWith("video/");
64
+ const mapChatContentParts = (message) => {
65
+ const textParts = message.parts.filter((part) => part.type === "text");
66
+ const imageParts = message.parts.filter((part) => part.type === "image");
67
+ if (!imageParts.length) {
68
+ return textParts.map((part) => part.text).join("");
69
+ }
70
+ return [
71
+ ...textParts.map((part) => ({
72
+ type: "text",
73
+ text: part.text
74
+ })),
75
+ ...imageParts.map((part) => ({
76
+ type: "image_url",
77
+ image_url: {
78
+ url: part.image
79
+ }
80
+ }))
81
+ ];
82
+ };
83
+ const mapChatMessages = (messages) => messages.map((message) => {
84
+ if (message.role === "tool") {
85
+ const toolResult = message.parts.find((part) => part.type === "tool-result");
86
+ return {
87
+ role: "tool",
88
+ tool_call_id: toolResult?.type === "tool-result" ? toolResult.toolResult.toolCallId : undefined,
89
+ content: toolResult?.type === "tool-result"
90
+ ? JSON.stringify(toolResult.toolResult.isError ? toolResult.toolResult.error : toolResult.toolResult.output)
91
+ : ""
92
+ };
93
+ }
94
+ const toolCalls = message.parts
95
+ .filter((part) => part.type === "tool-call")
96
+ .map((part) => ({
97
+ id: part.toolCall.id,
98
+ type: "function",
99
+ function: {
100
+ name: part.toolCall.name,
101
+ arguments: JSON.stringify(part.toolCall.input)
102
+ }
103
+ }));
104
+ const payload = {
105
+ role: message.role,
106
+ content: mapChatContentParts(message)
107
+ };
108
+ if (toolCalls.length) {
109
+ payload.tool_calls = toolCalls;
110
+ }
111
+ return payload;
112
+ });
113
+ const mapChatTools = (input) => input
114
+ ? Object.values(input).map((tool) => {
115
+ if (isCallableToolDefinition(tool)) {
116
+ return {
117
+ type: "function",
118
+ function: {
119
+ name: tool.name,
120
+ description: tool.description,
121
+ parameters: toJSONSchema(tool.schema)
122
+ }
123
+ };
124
+ }
125
+ throw new UnsupportedFeatureError('Provider "meta" supports hosted tools through the Responses API only.');
126
+ })
127
+ : undefined;
128
+ const mapResponsesTools = (input) => input
129
+ ? Object.values(input).map((tool) => {
130
+ if (isCallableToolDefinition(tool)) {
131
+ return {
132
+ type: "function",
133
+ name: tool.name,
134
+ description: tool.description,
135
+ parameters: toJSONSchema(tool.schema)
136
+ };
137
+ }
138
+ if (tool.provider && tool.provider !== "meta") {
139
+ throw new UnsupportedFeatureError(`Provider "meta" does not support hosted tools declared for provider "${tool.provider}".`);
140
+ }
141
+ return {
142
+ type: tool.type,
143
+ ...(tool.config && typeof tool.config === "object" ? tool.config : {})
144
+ };
145
+ })
146
+ : undefined;
147
+ const hasHostedTools = (tools) => Object.values(tools ?? {}).some((tool) => !isCallableToolDefinition(tool));
148
+ const hasFileParts = (messages) => messages.some((message) => message.parts.some((part) => part.type === "file"));
149
+ const mapToolChoice = (toolChoice) => {
150
+ if (!toolChoice) {
151
+ return undefined;
152
+ }
153
+ if (typeof toolChoice === "string") {
154
+ return toolChoice;
155
+ }
156
+ return {
157
+ type: "function",
158
+ function: {
159
+ name: toolChoice.toolName
160
+ }
161
+ };
162
+ };
163
+ const mapStructuredOutput = (input) => {
164
+ if (!input.structuredOutput || input.structuredOutput.mode !== "native") {
165
+ return undefined;
166
+ }
167
+ return {
168
+ type: "json_schema",
169
+ json_schema: {
170
+ name: input.structuredOutput.name ?? "response",
171
+ strict: true,
172
+ schema: toJSONSchema(input.structuredOutput.schema)
173
+ }
174
+ };
175
+ };
176
+ const mapResponsesStructuredOutput = (input) => {
177
+ if (!input.structuredOutput || input.structuredOutput.mode !== "native") {
178
+ return undefined;
179
+ }
180
+ return {
181
+ format: {
182
+ type: "json_schema",
183
+ name: input.structuredOutput.name ?? "response",
184
+ strict: true,
185
+ schema: toJSONSchema(input.structuredOutput.schema)
186
+ }
187
+ };
188
+ };
189
+ const assertReasoningSupported = (input) => {
190
+ if (!input.reasoning) {
191
+ return;
192
+ }
193
+ if (input.reasoning.budgetTokens !== undefined) {
194
+ throw new UnsupportedFeatureError('Provider "meta" does not support "reasoning.budgetTokens".');
195
+ }
196
+ if (input.reasoning.effort === "none") {
197
+ throw new UnsupportedFeatureError('Provider "meta" does not support "reasoning.effort=none".');
198
+ }
199
+ };
200
+ const mapChatReasoning = (input) => {
201
+ assertReasoningSupported(input);
202
+ return input.reasoning?.effort
203
+ ? {
204
+ reasoning_effort: input.reasoning.effort
205
+ }
206
+ : {};
207
+ };
208
+ const mapResponsesReasoning = (input) => {
209
+ assertReasoningSupported(input);
210
+ return input.reasoning?.effort
211
+ ? {
212
+ reasoning: {
213
+ effort: input.reasoning.effort
214
+ }
215
+ }
216
+ : {};
217
+ };
218
+ const getProviderResponseId = (messages) => {
219
+ for (let index = messages.length - 1; index >= 0; index -= 1) {
220
+ const message = messages[index];
221
+ if (message.role !== "assistant") {
222
+ continue;
223
+ }
224
+ const providerData = message.parts.find((part) => part.type === "provider-data" &&
225
+ part.provider === "meta" &&
226
+ part.data &&
227
+ typeof part.data === "object" &&
228
+ typeof part.data.responseId === "string");
229
+ if (providerData?.type === "provider-data") {
230
+ return {
231
+ responseId: providerData.data.responseId,
232
+ index
233
+ };
234
+ }
235
+ }
236
+ return undefined;
237
+ };
238
+ const serializeToolOutput = (message) => message.parts
239
+ .filter((part) => part.type === "tool-result")
240
+ .map((part) => ({
241
+ type: "function_call_output",
242
+ call_id: part.toolResult.toolCallId,
243
+ output: JSON.stringify(part.toolResult.isError ? part.toolResult.error : part.toolResult.output ?? null)
244
+ }));
245
+ const mapFilePartToResponsesContent = (part) => {
246
+ if (isFileId(part.data)) {
247
+ return {
248
+ type: "input_file",
249
+ file_id: part.data
250
+ };
251
+ }
252
+ if (isImage(part.mediaType) && isUrlLike(part.data)) {
253
+ return {
254
+ type: "input_image",
255
+ image_url: part.data
256
+ };
257
+ }
258
+ if (isVideo(part.mediaType) && isUrlLike(part.data)) {
259
+ return {
260
+ type: "input_video",
261
+ video_url: part.data
262
+ };
263
+ }
264
+ if (/^https?:\/\//i.test(part.data)) {
265
+ return {
266
+ type: "input_file",
267
+ file_url: part.data
268
+ };
269
+ }
270
+ return {
271
+ type: "input_file",
272
+ filename: part.filename,
273
+ file_data: part.data
274
+ };
275
+ };
276
+ const toResponsesInput = (messages) => {
277
+ const input = [];
278
+ for (const message of messages) {
279
+ if (message.role === "tool") {
280
+ input.push(...serializeToolOutput(message));
281
+ continue;
282
+ }
283
+ const content = [];
284
+ for (const part of message.parts) {
285
+ switch (part.type) {
286
+ case "text":
287
+ content.push({
288
+ type: message.role === "assistant" ? "output_text" : "input_text",
289
+ text: part.text
290
+ });
291
+ break;
292
+ case "image":
293
+ content.push({ type: "input_image", image_url: part.image });
294
+ break;
295
+ case "file":
296
+ content.push(mapFilePartToResponsesContent(part));
297
+ break;
298
+ case "tool-call":
299
+ if (message.role === "assistant") {
300
+ input.push({
301
+ type: "function_call",
302
+ call_id: part.toolCall.id,
303
+ name: part.toolCall.name,
304
+ arguments: JSON.stringify(part.toolCall.input)
305
+ });
306
+ }
307
+ break;
308
+ }
309
+ }
310
+ if (content.length) {
311
+ input.push({
312
+ type: "message",
313
+ role: message.role,
314
+ content
315
+ });
316
+ }
317
+ }
318
+ return input;
319
+ };
320
+ const parseAssistantMessage = (message) => ({
321
+ role: "assistant",
322
+ parts: [
323
+ ...(typeof message.content === "string" && message.content ? [{ type: "text", text: message.content }] : []),
324
+ ...((message.tool_calls ?? []).map((call) => ({
325
+ type: "tool-call",
326
+ toolCall: {
327
+ id: call.id,
328
+ name: call.function.name,
329
+ input: JSON.parse(call.function.arguments ?? "{}")
330
+ }
331
+ })) ?? [])
332
+ ]
333
+ });
334
+ const parseResponsesProviderData = (item) => {
335
+ if (!item || typeof item !== "object") {
336
+ return undefined;
337
+ }
338
+ const typedItem = item;
339
+ if (typeof typedItem.type !== "string" || ["message", "function_call"].includes(typedItem.type)) {
340
+ return undefined;
341
+ }
342
+ return item;
343
+ };
344
+ const parseResponsesAssistantMessage = (json) => {
345
+ const parts = [];
346
+ for (const [index, item] of (json.output ?? []).entries()) {
347
+ if (item?.type === "message") {
348
+ for (const content of item.content ?? []) {
349
+ if (typeof content?.text === "string" && content.text) {
350
+ parts.push({ type: "text", text: content.text });
351
+ }
352
+ }
353
+ continue;
354
+ }
355
+ if (item?.type === "function_call") {
356
+ parts.push({
357
+ type: "tool-call",
358
+ toolCall: {
359
+ id: item.call_id ?? item.id ?? `${item.name}-${index}`,
360
+ name: item.name,
361
+ input: JSON.parse(item.arguments ?? "{}")
362
+ }
363
+ });
364
+ continue;
365
+ }
366
+ const providerData = parseResponsesProviderData(item);
367
+ if (providerData) {
368
+ parts.push(providerDataPart("meta", providerData));
369
+ }
370
+ }
371
+ if (!parts.some((part) => part.type === "text") && typeof json.output_text === "string" && json.output_text) {
372
+ parts.push({ type: "text", text: json.output_text });
373
+ }
374
+ if (typeof json.id === "string") {
375
+ parts.push({
376
+ type: "provider-data",
377
+ provider: "meta",
378
+ data: {
379
+ responseId: json.id
380
+ }
381
+ });
382
+ }
383
+ return {
384
+ role: "assistant",
385
+ parts
386
+ };
387
+ };
388
+ const extractMessageText = (message) => message.parts
389
+ .filter((part) => part.type === "text")
390
+ .map((part) => part.text)
391
+ .join("");
392
+ const normalizeResponsesFinishReason = (status, hasToolCalls) => {
393
+ if (hasToolCalls) {
394
+ return "tool-calls";
395
+ }
396
+ if (status === "completed") {
397
+ return "stop";
398
+ }
399
+ if (status === "failed") {
400
+ return "error";
401
+ }
402
+ return normalizeFinishReason(status);
403
+ };
404
+ const streamResponses = async function* (response) {
405
+ const toolBuffers = new Map();
406
+ let sawToolCalls = false;
407
+ const emitToolCall = (key) => {
408
+ const toolCall = toolBuffers.get(key);
409
+ if (!toolCall || toolCall.emitted || !toolCall.name) {
410
+ return undefined;
411
+ }
412
+ toolCall.emitted = true;
413
+ sawToolCalls = true;
414
+ return {
415
+ type: "tool-call",
416
+ toolCall: {
417
+ id: toolCall.callId,
418
+ name: toolCall.name,
419
+ input: JSON.parse(toolCall.args || "{}")
420
+ }
421
+ };
422
+ };
423
+ for await (const event of streamSSE(response)) {
424
+ if (event.data === "[DONE]") {
425
+ return;
426
+ }
427
+ const json = JSON.parse(event.data);
428
+ const type = json.type;
429
+ if (type === "response.output_text.delta" && typeof json.delta === "string") {
430
+ yield { type: "text-delta", textDelta: json.delta };
431
+ continue;
432
+ }
433
+ if (type === "response.output_item.added" || type === "response.output_item.done") {
434
+ const item = json.item;
435
+ if (item?.type === "function_call") {
436
+ const key = item.id ?? json.item_id ?? `${json.output_index ?? toolBuffers.size}`;
437
+ const existing = toolBuffers.get(key) ?? {
438
+ callId: item.call_id ?? key,
439
+ name: item.name ?? "",
440
+ args: "",
441
+ emitted: false
442
+ };
443
+ existing.callId = item.call_id ?? existing.callId;
444
+ existing.name ||= item.name ?? "";
445
+ if (typeof item.arguments === "string") {
446
+ existing.args = item.arguments;
447
+ }
448
+ toolBuffers.set(key, existing);
449
+ if (type === "response.output_item.done") {
450
+ const emitted = emitToolCall(key);
451
+ if (emitted) {
452
+ yield emitted;
453
+ }
454
+ }
455
+ }
456
+ const providerData = parseResponsesProviderData(item);
457
+ if (providerData && type === "response.output_item.done") {
458
+ yield {
459
+ type: "provider-data",
460
+ provider: "meta",
461
+ data: providerData
462
+ };
463
+ }
464
+ continue;
465
+ }
466
+ if (type === "response.function_call_arguments.delta") {
467
+ const key = json.item_id ?? `${json.output_index ?? toolBuffers.size}`;
468
+ const existing = toolBuffers.get(key) ?? {
469
+ callId: key,
470
+ name: "",
471
+ args: "",
472
+ emitted: false
473
+ };
474
+ existing.args += typeof json.delta === "string" ? json.delta : "";
475
+ toolBuffers.set(key, existing);
476
+ continue;
477
+ }
478
+ if (type === "response.function_call_arguments.done") {
479
+ const key = json.item_id ?? `${json.output_index ?? toolBuffers.size}`;
480
+ const existing = toolBuffers.get(key) ?? {
481
+ callId: key,
482
+ name: "",
483
+ args: "",
484
+ emitted: false
485
+ };
486
+ if (typeof json.arguments === "string") {
487
+ existing.args = json.arguments;
488
+ }
489
+ toolBuffers.set(key, existing);
490
+ const emitted = emitToolCall(key);
491
+ if (emitted) {
492
+ yield emitted;
493
+ }
494
+ continue;
495
+ }
496
+ if (type === "response.completed" || type === "response.failed" || type === "response.incomplete") {
497
+ const responseData = json.response ?? {};
498
+ yield {
499
+ type: "finish",
500
+ finishReason: normalizeResponsesFinishReason(responseData.status, sawToolCalls),
501
+ providerFinishReason: responseData.status,
502
+ usage: responseData.usage
503
+ ? {
504
+ inputTokens: responseData.usage.input_tokens,
505
+ outputTokens: responseData.usage.output_tokens,
506
+ totalTokens: responseData.usage.total_tokens
507
+ }
508
+ : undefined
509
+ };
510
+ }
511
+ }
512
+ };
513
+ const extractSources = (value) => {
514
+ const sources = [];
515
+ const visit = (node) => {
516
+ if (!node || typeof node !== "object") {
517
+ return;
518
+ }
519
+ if (typeof node.url === "string") {
520
+ sources.push({
521
+ title: typeof node.title === "string" ? node.title : undefined,
522
+ url: node.url,
523
+ snippet: typeof node.snippet === "string" ? node.snippet : undefined,
524
+ providerMetadata: node
525
+ });
526
+ }
527
+ for (const child of Object.values(node)) {
528
+ if (Array.isArray(child)) {
529
+ child.forEach(visit);
530
+ }
531
+ else if (child && typeof child === "object") {
532
+ visit(child);
533
+ }
534
+ }
535
+ };
536
+ visit(value);
537
+ return sources.filter((source, index, list) => list.findIndex((candidate) => candidate.url === source.url) === index);
538
+ };
539
+ class MetaLanguageModel {
540
+ modelId;
541
+ apiKey;
542
+ baseURL;
543
+ fetcher;
544
+ provider = "meta";
545
+ capabilities = capabilities;
546
+ constructor(modelId, apiKey, baseURL, fetcher) {
547
+ this.modelId = modelId;
548
+ this.apiKey = apiKey;
549
+ this.baseURL = baseURL;
550
+ this.fetcher = fetcher;
551
+ }
552
+ usesResponsesAPI(input) {
553
+ return input.providerOptions?.apiMode === "responses" || hasHostedTools(input.tools) || hasFileParts(input.messages);
554
+ }
555
+ async generateViaResponses(input, signal) {
556
+ const previousResponse = getProviderResponseId(input.messages);
557
+ const messages = previousResponse && previousResponse.index < input.messages.length - 1
558
+ ? input.messages.slice(previousResponse.index + 1)
559
+ : input.messages;
560
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/responses`, {
561
+ method: "POST",
562
+ headers: jsonHeaders(this.apiKey),
563
+ signal,
564
+ body: JSON.stringify({
565
+ ...stripProviderOptions(input.providerOptions),
566
+ model: this.modelId,
567
+ ...(previousResponse ? { previous_response_id: previousResponse.responseId } : {}),
568
+ ...(messages.length ? { input: toResponsesInput(messages) } : {}),
569
+ tools: mapResponsesTools(input.tools),
570
+ tool_choice: mapToolChoice(input.toolChoice),
571
+ text: mapResponsesStructuredOutput(input),
572
+ temperature: input.temperature,
573
+ max_output_tokens: input.maxTokens,
574
+ ...mapResponsesReasoning(input)
575
+ })
576
+ }), input);
577
+ const json = await parseJson(response);
578
+ const assistantMessage = parseResponsesAssistantMessage(json);
579
+ const hasToolCalls = assistantMessage.parts.some((part) => part.type === "tool-call");
580
+ return {
581
+ messages: [assistantMessage],
582
+ text: extractMessageText(assistantMessage),
583
+ finishReason: normalizeResponsesFinishReason(json.status, hasToolCalls),
584
+ providerFinishReason: json.status,
585
+ usage: {
586
+ inputTokens: json.usage?.input_tokens,
587
+ outputTokens: json.usage?.output_tokens,
588
+ totalTokens: json.usage?.total_tokens
589
+ },
590
+ rawResponse: json
591
+ };
592
+ }
593
+ async generate(input) {
594
+ const { signal, cleanup } = withTimeoutSignal(input);
595
+ try {
596
+ if (this.usesResponsesAPI(input)) {
597
+ return await this.generateViaResponses(input, signal);
598
+ }
599
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/chat/completions`, {
600
+ method: "POST",
601
+ headers: jsonHeaders(this.apiKey),
602
+ signal,
603
+ body: JSON.stringify({
604
+ ...stripProviderOptions(input.providerOptions),
605
+ model: this.modelId,
606
+ messages: mapChatMessages(input.messages),
607
+ tools: mapChatTools(input.tools),
608
+ tool_choice: mapToolChoice(input.toolChoice),
609
+ response_format: mapStructuredOutput(input),
610
+ temperature: input.temperature,
611
+ max_tokens: input.maxTokens,
612
+ ...mapChatReasoning(input),
613
+ stream: false
614
+ })
615
+ }), input);
616
+ const json = await parseJson(response);
617
+ const choice = json.choices?.[0];
618
+ const assistantMessage = parseAssistantMessage(choice?.message ?? {});
619
+ return {
620
+ messages: [assistantMessage],
621
+ text: extractMessageText(assistantMessage),
622
+ finishReason: normalizeFinishReason(choice?.finish_reason),
623
+ providerFinishReason: choice?.finish_reason,
624
+ usage: {
625
+ inputTokens: json.usage?.prompt_tokens,
626
+ outputTokens: json.usage?.completion_tokens,
627
+ totalTokens: json.usage?.total_tokens
628
+ },
629
+ rawResponse: json
630
+ };
631
+ }
632
+ finally {
633
+ cleanup();
634
+ }
635
+ }
636
+ async stream(input) {
637
+ const { signal, cleanup } = withTimeoutSignal(input);
638
+ if (this.usesResponsesAPI(input)) {
639
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/responses`, {
640
+ method: "POST",
641
+ headers: jsonHeaders(this.apiKey),
642
+ signal,
643
+ body: JSON.stringify({
644
+ ...stripProviderOptions(input.providerOptions),
645
+ model: this.modelId,
646
+ input: toResponsesInput(input.messages),
647
+ tools: mapResponsesTools(input.tools),
648
+ tool_choice: mapToolChoice(input.toolChoice),
649
+ text: mapResponsesStructuredOutput(input),
650
+ temperature: input.temperature,
651
+ max_output_tokens: input.maxTokens,
652
+ ...mapResponsesReasoning(input),
653
+ stream: true
654
+ })
655
+ }), input);
656
+ return (async function* () {
657
+ try {
658
+ yield* streamResponses(response);
659
+ }
660
+ finally {
661
+ cleanup();
662
+ }
663
+ })();
664
+ }
665
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/chat/completions`, {
666
+ method: "POST",
667
+ headers: jsonHeaders(this.apiKey),
668
+ signal,
669
+ body: JSON.stringify({
670
+ ...stripProviderOptions(input.providerOptions),
671
+ model: this.modelId,
672
+ messages: mapChatMessages(input.messages),
673
+ tools: mapChatTools(input.tools),
674
+ tool_choice: mapToolChoice(input.toolChoice),
675
+ response_format: mapStructuredOutput(input),
676
+ temperature: input.temperature,
677
+ max_tokens: input.maxTokens,
678
+ ...mapChatReasoning(input),
679
+ stream: true,
680
+ stream_options: { include_usage: true }
681
+ })
682
+ }), input);
683
+ return (async function* () {
684
+ try {
685
+ const toolBuffers = new Map();
686
+ for await (const event of streamSSE(response)) {
687
+ if (event.data === "[DONE]") {
688
+ return;
689
+ }
690
+ const json = JSON.parse(event.data);
691
+ const choice = json.choices?.[0];
692
+ const delta = choice?.delta;
693
+ if (delta?.content) {
694
+ yield { type: "text-delta", textDelta: delta.content };
695
+ }
696
+ for (const toolCall of delta?.tool_calls ?? []) {
697
+ const id = toolCall.id ?? `${toolCall.index}`;
698
+ const existing = toolBuffers.get(id) ?? {
699
+ name: toolCall.function?.name ?? "",
700
+ args: ""
701
+ };
702
+ existing.name ||= toolCall.function?.name ?? "";
703
+ existing.args += toolCall.function?.arguments ?? "";
704
+ toolBuffers.set(id, existing);
705
+ }
706
+ if (choice?.finish_reason === "tool_calls") {
707
+ for (const [id, toolCall] of toolBuffers) {
708
+ yield {
709
+ type: "tool-call",
710
+ toolCall: {
711
+ id,
712
+ name: toolCall.name,
713
+ input: JSON.parse(toolCall.args || "{}")
714
+ }
715
+ };
716
+ }
717
+ }
718
+ if (choice?.finish_reason || json.usage) {
719
+ yield {
720
+ type: "finish",
721
+ finishReason: normalizeFinishReason(choice?.finish_reason),
722
+ providerFinishReason: choice?.finish_reason,
723
+ usage: json.usage
724
+ ? {
725
+ inputTokens: json.usage.prompt_tokens,
726
+ outputTokens: json.usage.completion_tokens,
727
+ totalTokens: json.usage.total_tokens
728
+ }
729
+ : undefined
730
+ };
731
+ }
732
+ }
733
+ }
734
+ finally {
735
+ cleanup();
736
+ }
737
+ })();
738
+ }
739
+ }
740
+ class MetaGroundedLanguageModel {
741
+ modelId;
742
+ apiKey;
743
+ baseURL;
744
+ fetcher;
745
+ provider = "meta";
746
+ capabilities = capabilities;
747
+ constructor(modelId, apiKey, baseURL, fetcher) {
748
+ this.modelId = modelId;
749
+ this.apiKey = apiKey;
750
+ this.baseURL = baseURL;
751
+ this.fetcher = fetcher;
752
+ }
753
+ async generate(input) {
754
+ const { signal, cleanup } = withTimeoutSignal(input);
755
+ const messages = [
756
+ ...(input.system ? [{ role: "system", parts: [{ type: "text", text: input.system }] }] : []),
757
+ ...(input.messages ?? (input.prompt ? [{ role: "user", parts: [{ type: "text", text: input.prompt }] }] : []))
758
+ ];
759
+ try {
760
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/responses`, {
761
+ method: "POST",
762
+ headers: jsonHeaders(this.apiKey),
763
+ signal,
764
+ body: JSON.stringify({
765
+ ...stripProviderOptions(input.providerOptions),
766
+ model: this.modelId,
767
+ input: toResponsesInput(messages),
768
+ tools: [{ type: "web_search" }],
769
+ include: ["web_search_call.results"],
770
+ temperature: input.temperature,
771
+ max_output_tokens: input.maxTokens,
772
+ ...mapResponsesReasoning({
773
+ messages,
774
+ reasoning: input.reasoning
775
+ })
776
+ })
777
+ }), input);
778
+ const json = await parseJson(response);
779
+ return {
780
+ text: typeof json.output_text === "string" ? json.output_text : extractMessageText(parseResponsesAssistantMessage(json)),
781
+ sources: extractSources(json),
782
+ finishReason: normalizeResponsesFinishReason(json.status, false),
783
+ providerFinishReason: json.status,
784
+ usage: {
785
+ inputTokens: json.usage?.input_tokens,
786
+ outputTokens: json.usage?.output_tokens,
787
+ totalTokens: json.usage?.total_tokens
788
+ },
789
+ rawResponse: json
790
+ };
791
+ }
792
+ finally {
793
+ cleanup();
794
+ }
795
+ }
796
+ }
797
+ const normalizeUploadedFile = (json) => ({
798
+ name: json.id ?? json.name,
799
+ uri: json.id ?? json.uri,
800
+ mimeType: json.mime_type ?? json.mimeType,
801
+ sizeBytes: json.bytes ?? json.size_bytes ?? json.sizeBytes,
802
+ state: json.status ?? json.state,
803
+ displayName: json.filename ?? json.display_name ?? json.displayName,
804
+ rawResponse: json,
805
+ providerMetadata: json
806
+ });
807
+ const appendQuery = (url, query) => {
808
+ const parsed = new URL(url);
809
+ for (const [key, value] of Object.entries(query)) {
810
+ if (value !== undefined) {
811
+ parsed.searchParams.set(key, String(value));
812
+ }
813
+ }
814
+ return parsed.toString();
815
+ };
816
+ class MetaFilesClient {
817
+ apiKey;
818
+ baseURL;
819
+ fetcher;
820
+ constructor(apiKey, baseURL, fetcher) {
821
+ this.apiKey = apiKey;
822
+ this.baseURL = baseURL;
823
+ this.fetcher = fetcher;
824
+ }
825
+ async upload(input) {
826
+ const { signal, cleanup } = withTimeoutSignal(input);
827
+ const form = new FormData();
828
+ const filename = input.filename ?? input.displayName ?? input.name ?? "file";
829
+ form.set("file", blobFromData(input.data, input.mediaType), filename);
830
+ form.set("purpose", input.providerOptions?.purpose ?? "user_data");
831
+ for (const [key, value] of Object.entries(input.providerOptions ?? {})) {
832
+ if (key !== "purpose" && value !== undefined) {
833
+ form.set(key, typeof value === "string" ? value : JSON.stringify(value));
834
+ }
835
+ }
836
+ try {
837
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/files`, {
838
+ method: "POST",
839
+ headers: { authorization: `Bearer ${this.apiKey}` },
840
+ signal,
841
+ body: form
842
+ }), input);
843
+ return normalizeUploadedFile(await parseJson(response));
844
+ }
845
+ finally {
846
+ cleanup();
847
+ }
848
+ }
849
+ async get(input) {
850
+ const { signal, cleanup } = withTimeoutSignal(input);
851
+ try {
852
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/files/${input.name}`, {
853
+ method: "GET",
854
+ headers: jsonHeaders(this.apiKey),
855
+ signal
856
+ }), input);
857
+ return normalizeUploadedFile(await parseJson(response));
858
+ }
859
+ finally {
860
+ cleanup();
861
+ }
862
+ }
863
+ async list(input = {}) {
864
+ const { signal, cleanup } = withTimeoutSignal(input);
865
+ try {
866
+ const response = await withRetry(() => this.fetcher(appendQuery(`${this.baseURL}/files`, { limit: input.pageSize, after: input.pageToken }), {
867
+ method: "GET",
868
+ headers: jsonHeaders(this.apiKey),
869
+ signal
870
+ }), input);
871
+ const json = await parseJson(response);
872
+ return {
873
+ files: (json.data ?? json.files ?? []).map(normalizeUploadedFile),
874
+ nextPageToken: json.next ?? json.nextPageToken,
875
+ rawResponse: json
876
+ };
877
+ }
878
+ finally {
879
+ cleanup();
880
+ }
881
+ }
882
+ async delete(input) {
883
+ const { signal, cleanup } = withTimeoutSignal(input);
884
+ try {
885
+ const response = await withRetry(() => this.fetcher(`${this.baseURL}/files/${input.name}`, {
886
+ method: "DELETE",
887
+ headers: jsonHeaders(this.apiKey),
888
+ signal
889
+ }), input);
890
+ return {
891
+ name: input.name,
892
+ rawResponse: await parseJson(response)
893
+ };
894
+ }
895
+ finally {
896
+ cleanup();
897
+ }
898
+ }
899
+ }
900
+ export const createMeta = (options = {}) => {
901
+ const apiKey = options.apiKey ?? process.env.MODEL_API_KEY;
902
+ if (!apiKey) {
903
+ throw new ConfigurationError("Missing Meta Model API key.");
904
+ }
905
+ const baseURL = (options.baseURL ?? "https://api.meta.ai/v1").replace(/\/+$/, "");
906
+ const fetcher = options.fetch ?? globalThis.fetch;
907
+ return createProviderAdapter({
908
+ name: "meta",
909
+ languageModel: (modelId) => new MetaLanguageModel(modelId, apiKey, baseURL, fetcher),
910
+ groundedLanguageModel: (modelId) => new MetaGroundedLanguageModel(modelId, apiKey, baseURL, fetcher),
911
+ files: new MetaFilesClient(apiKey, baseURL, fetcher),
912
+ rawFetch: fetcher
913
+ });
914
+ };
915
+ export const metaWebSearchTool = (config = {}) => {
916
+ const { include_results: _includeResults, ...toolConfig } = config;
917
+ const sanitizedConfig = Object.fromEntries(Object.entries(toolConfig).filter(([, value]) => value !== undefined));
918
+ return hostedTool({
919
+ name: "web_search",
920
+ provider: "meta",
921
+ type: "web_search",
922
+ config: sanitizedConfig
923
+ });
924
+ };
925
+ export const metaToolSearchTool = (config = {}) => {
926
+ const sanitizedConfig = Object.fromEntries(Object.entries(config).filter(([, value]) => value !== undefined));
927
+ return hostedTool({
928
+ name: "tool_search",
929
+ provider: "meta",
930
+ type: "tool_search",
931
+ config: sanitizedConfig
932
+ });
933
+ };
934
+ export const metaFilePart = (fileId, mediaType = "application/octet-stream", filename) => ({
935
+ type: "file",
936
+ data: fileId,
937
+ mediaType,
938
+ filename
939
+ });
940
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@zhivex-ai/meta",
3
+ "version": "0.1.0",
4
+ "description": "Meta Model API adapter for Zhivex AI SDK.",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "engines": {
10
+ "node": ">=18.18.0",
11
+ "bun": ">=1.3.7"
12
+ },
13
+ "exports": {
14
+ ".": {
15
+ "types": "./dist/index.d.ts",
16
+ "import": "./dist/index.js"
17
+ }
18
+ },
19
+ "files": [
20
+ "dist",
21
+ "README.md"
22
+ ],
23
+ "sideEffects": false,
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/Zhivex/zhivex-ai-sdk.git",
27
+ "directory": "packages/meta"
28
+ },
29
+ "homepage": "https://github.com/Zhivex/zhivex-ai-sdk#readme",
30
+ "bugs": {
31
+ "url": "https://github.com/Zhivex/zhivex-ai-sdk/issues"
32
+ },
33
+ "keywords": [
34
+ "ai",
35
+ "sdk",
36
+ "meta",
37
+ "muse",
38
+ "llm",
39
+ "typescript"
40
+ ],
41
+ "publishConfig": {
42
+ "access": "public"
43
+ },
44
+ "dependencies": {
45
+ "@zhivex-ai/core": "^0.15.1",
46
+ "zod": "^4.4.3"
47
+ }
48
+ }