@ank1015/agents-provider-fireworks 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/CHANGELOG.md ADDED
@@ -0,0 +1,7 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@ank1015/agents-provider-fireworks` will be documented in this file.
4
+
5
+ ## 0.1.0 - Initial Release
6
+
7
+ - Added the Fireworks Chat Completions runtime adapter.
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # @ank1015/agents-provider-fireworks
2
+
3
+ Runtime Fireworks Chat Completions provider adapter for the `@ank1015/agents` packages.
4
+
5
+ This package uses Fireworks' OpenAI-compatible Chat Completions endpoint through the `openai` SDK. It streams Fireworks chunks into the normalized assistant event stream used by `@ank1015/agents-contracts`.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ pnpm add @ank1015/agents-provider-fireworks
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ ```ts
16
+ import { createFireworksProviderAdapter } from '@ank1015/agents-provider-fireworks';
17
+
18
+ const adapter = createFireworksProviderAdapter({
19
+ provider: 'fireworks',
20
+ apiKey: {
21
+ type: 'env',
22
+ name: 'FIREWORKS_API_KEY',
23
+ },
24
+ });
25
+ ```
26
+
27
+ The default base URL is `https://api.fireworks.ai/inference/v1`. Pass `baseUrl` in provider config to override it.
28
+
29
+ ## Notes
30
+
31
+ - Runtime model support is catalog-only through `@ank1015/agents-provider-fireworks-spec`.
32
+ - `max_tokens` is only sent when callers provide `providerOptions.max_tokens`.
33
+ - Fireworks custom grammar tools are not accepted through generic request `tools`; use `providerOptions.response_format` with `type: 'grammar'` instead.
@@ -0,0 +1,36 @@
1
+ import type { AssistantMessageEventStreamSource, LLMProviderAdapter, LLMProviderAdapterFactory, LLMRequest, Model } from '@ank1015/agents-contracts';
2
+ import type { FireworksProvider, FireworksProviderConfig } from '@ank1015/agents-provider-fireworks-spec';
3
+ import { type FireworksChatCompletionChunk, type FireworksChatCompletionCreateParamsStreaming } from './mapping.js';
4
+ export declare const FIREWORKS_DEFAULT_BASE_URL = "https://api.fireworks.ai/inference/v1";
5
+ export interface FireworksChatCompletionsClient {
6
+ chat: {
7
+ completions: {
8
+ create(params: FireworksChatCompletionCreateParamsStreaming, options?: {
9
+ signal?: AbortSignal;
10
+ }): AsyncIterable<FireworksChatCompletionChunk> | Promise<AsyncIterable<FireworksChatCompletionChunk>>;
11
+ };
12
+ };
13
+ }
14
+ export interface FireworksProviderAdapterDeps {
15
+ readonly client?: FireworksChatCompletionsClient;
16
+ readonly createClient?: (config: FireworksProviderConfig) => FireworksChatCompletionsClient;
17
+ readonly createMessageId?: () => string;
18
+ readonly now?: () => number;
19
+ /** Resolves a model id to its descriptor. Defaults to the package's static catalog. */
20
+ readonly resolveModel?: (modelId: string) => Model<FireworksProvider> | undefined;
21
+ }
22
+ export declare class FireworksProviderAdapter implements LLMProviderAdapter<FireworksProvider> {
23
+ #private;
24
+ readonly provider: "fireworks";
25
+ constructor(config: FireworksProviderConfig, deps?: FireworksProviderAdapterDeps);
26
+ stream(request: LLMRequest<FireworksProvider>): AssistantMessageEventStreamSource<FireworksProvider>;
27
+ }
28
+ export declare class FireworksProviderAdapterFactory implements LLMProviderAdapterFactory<FireworksProvider> {
29
+ #private;
30
+ readonly provider: "fireworks";
31
+ constructor(deps?: FireworksProviderAdapterDeps);
32
+ create(config: FireworksProviderConfig): FireworksProviderAdapter;
33
+ }
34
+ export declare function createFireworksProviderAdapter(config: FireworksProviderConfig, deps?: FireworksProviderAdapterDeps): FireworksProviderAdapter;
35
+ export declare function createFireworksProviderAdapterFactory(deps?: FireworksProviderAdapterDeps): FireworksProviderAdapterFactory;
36
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,iCAAiC,EAMjC,kBAAkB,EAClB,yBAAyB,EACzB,UAAU,EACV,KAAK,EAIN,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAKV,iBAAiB,EACjB,uBAAuB,EAExB,MAAM,yCAAyC,CAAC;AAOjD,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,4CAA4C,EAClD,MAAM,cAAc,CAAC;AAEtB,eAAO,MAAM,0BAA0B,0CAA0C,CAAC;AAElF,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,MAAM,CACJ,MAAM,EAAE,4CAA4C,EACpD,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,EAAE,WAAW,CAAA;aAAE,GAEhC,aAAa,CAAC,4BAA4B,CAAC,GAC3C,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC;SAC1D,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,8BAA8B,CAAC;IACjD,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,8BAA8B,CAAC;IAC5F,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,uFAAuF;IACvF,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;CACnF;AAqDD,qBAAa,wBAAyB,YAAW,kBAAkB,CAAC,iBAAiB,CAAC;;IACpF,QAAQ,CAAC,QAAQ,cAAsB;gBAO3B,MAAM,EAAE,uBAAuB,EAAE,IAAI,GAAE,4BAAiC;IASpF,MAAM,CACJ,OAAO,EAAE,UAAU,CAAC,iBAAiB,CAAC,GACrC,iCAAiC,CAAC,iBAAiB,CAAC;CA+JxD;AAED,qBAAa,+BACX,YAAW,yBAAyB,CAAC,iBAAiB,CAAC;;IAEvD,QAAQ,CAAC,QAAQ,cAAsB;gBAG3B,IAAI,GAAE,4BAAiC;IAInD,MAAM,CAAC,MAAM,EAAE,uBAAuB,GAAG,wBAAwB;CAGlE;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,uBAAuB,EAC/B,IAAI,CAAC,EAAE,4BAA4B,GAClC,wBAAwB,CAE1B;AAED,wBAAgB,qCAAqC,CACnD,IAAI,CAAC,EAAE,4BAA4B,GAClC,+BAA+B,CAEjC"}
@@ -0,0 +1,529 @@
1
+ import OpenAI from 'openai';
2
+ import { createEventStream } from '@ank1015/agents-contracts';
3
+ import { FIREWORKS_PROVIDER, fireworksProviderConfigSchema, getFireworksModel, } from '@ank1015/agents-provider-fireworks-spec';
4
+ import { getFireworksErrorDetails, isAbortError } from './errors.js';
5
+ import { buildFireworksChatCompletionParams, } from './mapping.js';
6
+ export const FIREWORKS_DEFAULT_BASE_URL = 'https://api.fireworks.ai/inference/v1';
7
+ export class FireworksProviderAdapter {
8
+ provider = FIREWORKS_PROVIDER;
9
+ #config;
10
+ #client;
11
+ #createMessageId;
12
+ #now;
13
+ #resolveModel;
14
+ constructor(config, deps = {}) {
15
+ this.#config = fireworksProviderConfigSchema.parse(config);
16
+ this.#client =
17
+ deps.client ?? deps.createClient?.(this.#config) ?? createFireworksClient(this.#config);
18
+ this.#createMessageId = deps.createMessageId ?? createDefaultMessageId;
19
+ this.#now = deps.now ?? Date.now;
20
+ this.#resolveModel = deps.resolveModel ?? getFireworksModel;
21
+ }
22
+ stream(request) {
23
+ const stream = createEventStream();
24
+ void this.#produce(request, stream);
25
+ return stream;
26
+ }
27
+ async #produce(request, stream) {
28
+ const model = this.#resolveModel(request.modelId);
29
+ if (!model) {
30
+ const message = this.#buildUnknownModelMessage(request);
31
+ stream.push({ type: 'error', reason: 'error', message });
32
+ stream.end(message);
33
+ return;
34
+ }
35
+ const state = {
36
+ request,
37
+ model,
38
+ stream,
39
+ startedAt: this.#now(),
40
+ content: [],
41
+ blocks: [],
42
+ toolCallBlocksByIndex: new Map(),
43
+ };
44
+ try {
45
+ const params = buildFireworksChatCompletionParams(request, model);
46
+ const requestOptions = request.signal ? { signal: request.signal } : undefined;
47
+ const fireworksStream = await this.#client.chat.completions.create(params, requestOptions);
48
+ stream.push({ type: 'start' });
49
+ for await (const chunk of fireworksStream) {
50
+ handleStreamChunk(state, chunk);
51
+ }
52
+ if (request.signal?.aborted) {
53
+ const message = this.#buildAbortedMessage(state);
54
+ stream.push({ type: 'aborted', reason: 'aborted', message });
55
+ stream.end(message);
56
+ return;
57
+ }
58
+ closeOpenBlocks(state);
59
+ if (!state.finishReason) {
60
+ throw new Error('Fireworks stream ended without finish_reason.');
61
+ }
62
+ const message = this.#buildSuccessfulMessage(state);
63
+ stream.push({ type: 'done', reason: message.stopReason, message });
64
+ stream.end(message);
65
+ }
66
+ catch (error) {
67
+ closeOpenBlocks(state, { allowInvalidToolJson: true });
68
+ if (request.signal?.aborted || isAbortError(error)) {
69
+ const message = this.#buildAbortedMessage(state);
70
+ stream.push({ type: 'aborted', reason: 'aborted', message });
71
+ stream.end(message);
72
+ return;
73
+ }
74
+ const message = this.#buildFailedMessage(state, error);
75
+ stream.push({ type: 'error', reason: 'error', message });
76
+ stream.end(message);
77
+ }
78
+ }
79
+ #buildSuccessfulMessage(state) {
80
+ const nativeMessage = buildNativeMessage(state);
81
+ if (!nativeMessage) {
82
+ throw new Error('Cannot build a successful Fireworks message without a response.');
83
+ }
84
+ return {
85
+ role: 'assistant',
86
+ id: this.#createMessageId(),
87
+ model: modelRef(state),
88
+ usage: usageFromResponse(state, state.model),
89
+ duration: this.#now() - state.startedAt,
90
+ nativeMessage,
91
+ content: state.content,
92
+ timestamp: this.#now(),
93
+ stopReason: mapDoneStopReason(state.finishReason, state.content),
94
+ };
95
+ }
96
+ #buildFailedMessage(state, error) {
97
+ const message = {
98
+ role: 'assistant',
99
+ id: this.#createMessageId(),
100
+ model: modelRef(state),
101
+ usage: usageFromResponse(state, state.model),
102
+ duration: this.#now() - state.startedAt,
103
+ content: state.content,
104
+ timestamp: this.#now(),
105
+ stopReason: 'error',
106
+ error: getFireworksErrorDetails(error),
107
+ };
108
+ const nativeMessage = buildNativeMessage(state);
109
+ if (nativeMessage) {
110
+ message.nativeMessage = nativeMessage;
111
+ }
112
+ return message;
113
+ }
114
+ #buildAbortedMessage(state) {
115
+ const message = {
116
+ role: 'assistant',
117
+ id: this.#createMessageId(),
118
+ model: modelRef(state),
119
+ usage: usageFromResponse(state, state.model),
120
+ duration: this.#now() - state.startedAt,
121
+ content: state.content,
122
+ timestamp: this.#now(),
123
+ stopReason: 'aborted',
124
+ };
125
+ const nativeMessage = buildNativeMessage(state);
126
+ if (nativeMessage) {
127
+ message.nativeMessage = nativeMessage;
128
+ }
129
+ return message;
130
+ }
131
+ #buildUnknownModelMessage(request) {
132
+ return {
133
+ role: 'assistant',
134
+ id: this.#createMessageId(),
135
+ model: { provider: FIREWORKS_PROVIDER, id: request.modelId },
136
+ duration: 0,
137
+ content: [],
138
+ timestamp: this.#now(),
139
+ stopReason: 'error',
140
+ error: {
141
+ message: `Model "${request.modelId}" is not a known Fireworks model.`,
142
+ canRetry: false,
143
+ },
144
+ };
145
+ }
146
+ }
147
+ export class FireworksProviderAdapterFactory {
148
+ provider = FIREWORKS_PROVIDER;
149
+ #deps;
150
+ constructor(deps = {}) {
151
+ this.#deps = deps;
152
+ }
153
+ create(config) {
154
+ return new FireworksProviderAdapter(config, this.#deps);
155
+ }
156
+ }
157
+ export function createFireworksProviderAdapter(config, deps) {
158
+ return new FireworksProviderAdapter(config, deps);
159
+ }
160
+ export function createFireworksProviderAdapterFactory(deps) {
161
+ return new FireworksProviderAdapterFactory(deps);
162
+ }
163
+ function createFireworksClient(config) {
164
+ return new OpenAI({
165
+ apiKey: resolveSecret(config.apiKey),
166
+ baseURL: config.baseUrl ?? FIREWORKS_DEFAULT_BASE_URL,
167
+ defaultHeaders: config.headers,
168
+ });
169
+ }
170
+ function resolveSecret(secret) {
171
+ if (secret.type === 'value') {
172
+ return secret.value;
173
+ }
174
+ return resolveEnvSecret(secret.name);
175
+ }
176
+ function resolveEnvSecret(name) {
177
+ const processLike = globalThis.process;
178
+ const value = processLike?.env?.[name];
179
+ if (!value) {
180
+ throw new Error(`Fireworks API key environment variable "${name}" is not set.`);
181
+ }
182
+ return value;
183
+ }
184
+ function handleStreamChunk(state, chunk) {
185
+ state.responseId = state.responseId ?? chunk.id;
186
+ state.created = state.created ?? chunk.created;
187
+ state.responseModel = chunk.model || state.responseModel;
188
+ if (chunk.usage) {
189
+ state.usage = chunk.usage;
190
+ }
191
+ if (chunk.perf_metrics !== undefined) {
192
+ state.perfMetrics = chunk.perf_metrics;
193
+ }
194
+ if (chunk.prompt_token_ids !== undefined) {
195
+ state.promptTokenIds = chunk.prompt_token_ids;
196
+ }
197
+ for (const choice of chunk.choices) {
198
+ if (choice.index !== 0) {
199
+ continue;
200
+ }
201
+ if (choice.finish_reason) {
202
+ state.finishReason = choice.finish_reason;
203
+ }
204
+ if (choice.logprobs !== undefined) {
205
+ state.choiceLogprobs = choice.logprobs;
206
+ }
207
+ if (choice.raw_output !== undefined) {
208
+ state.choiceRawOutput = choice.raw_output;
209
+ }
210
+ if (choice.token_ids !== undefined) {
211
+ state.choiceTokenIds = choice.token_ids;
212
+ }
213
+ if (choice.prompt_token_ids !== undefined) {
214
+ state.promptTokenIds = choice.prompt_token_ids;
215
+ }
216
+ const reasoningDelta = choice.delta.reasoning_content;
217
+ if (reasoningDelta) {
218
+ appendThinkingDelta(state, reasoningDelta);
219
+ }
220
+ const textDelta = choice.delta.content;
221
+ if (textDelta) {
222
+ appendTextDelta(state, textDelta);
223
+ }
224
+ if (choice.delta.tool_calls) {
225
+ for (const toolCall of choice.delta.tool_calls) {
226
+ appendToolCallDelta(state, toolCall);
227
+ }
228
+ }
229
+ }
230
+ }
231
+ function appendTextDelta(state, delta) {
232
+ const block = ensureResponseBlock(state);
233
+ block.content.response.content += delta;
234
+ state.stream.push({ type: 'text_delta', contentIndex: block.contentIndex, delta });
235
+ }
236
+ function appendThinkingDelta(state, delta) {
237
+ const block = ensureThinkingBlock(state);
238
+ block.content.thinkingText += delta;
239
+ state.stream.push({ type: 'thinking_delta', contentIndex: block.contentIndex, delta });
240
+ }
241
+ function appendToolCallDelta(state, delta) {
242
+ const streamIndex = typeof delta.index === 'number' ? delta.index : state.toolCallBlocksByIndex.size;
243
+ const block = getToolCallBlock(state, streamIndex);
244
+ if (delta.id) {
245
+ block.toolCallId = delta.id;
246
+ }
247
+ if (delta.function?.name) {
248
+ block.name = delta.function.name;
249
+ }
250
+ openToolCallBlockIfReady(state, block);
251
+ if (delta.function?.arguments) {
252
+ block.partialJson += delta.function.arguments;
253
+ updateToolCallArguments(state, block, parsePartialJsonObject(block.partialJson));
254
+ if (block.contentIndex !== undefined) {
255
+ state.stream.push({
256
+ type: 'toolcall_delta',
257
+ contentIndex: block.contentIndex,
258
+ delta: delta.function.arguments,
259
+ });
260
+ }
261
+ }
262
+ }
263
+ function ensureResponseBlock(state) {
264
+ const existing = state.blocks.find((block) => block.type === 'response');
265
+ if (existing?.type === 'response') {
266
+ return existing;
267
+ }
268
+ const content = {
269
+ type: 'response',
270
+ response: { type: 'text', content: '' },
271
+ };
272
+ const block = {
273
+ type: 'response',
274
+ contentIndex: state.content.push(content) - 1,
275
+ content,
276
+ ended: false,
277
+ };
278
+ state.blocks.push(block);
279
+ state.stream.push({ type: 'text_start', contentIndex: block.contentIndex });
280
+ return block;
281
+ }
282
+ function ensureThinkingBlock(state) {
283
+ const existing = state.blocks.find((block) => block.type === 'thinking');
284
+ if (existing?.type === 'thinking') {
285
+ return existing;
286
+ }
287
+ const content = { type: 'thinking', thinkingText: '' };
288
+ const block = {
289
+ type: 'thinking',
290
+ contentIndex: state.content.push(content) - 1,
291
+ content,
292
+ ended: false,
293
+ };
294
+ state.blocks.push(block);
295
+ state.stream.push({ type: 'thinking_start', contentIndex: block.contentIndex });
296
+ return block;
297
+ }
298
+ function getToolCallBlock(state, streamIndex) {
299
+ const existing = state.toolCallBlocksByIndex.get(streamIndex);
300
+ if (existing) {
301
+ return existing;
302
+ }
303
+ const block = {
304
+ type: 'tool_call',
305
+ streamIndex,
306
+ partialJson: '',
307
+ ended: false,
308
+ };
309
+ state.toolCallBlocksByIndex.set(streamIndex, block);
310
+ return block;
311
+ }
312
+ function openToolCallBlockIfReady(state, block) {
313
+ if (block.contentIndex !== undefined ||
314
+ block.toolCallId === undefined ||
315
+ block.name === undefined) {
316
+ return;
317
+ }
318
+ const toolCall = {
319
+ type: 'toolCall',
320
+ toolCallId: block.toolCallId,
321
+ name: block.name,
322
+ arguments: parsePartialJsonObject(block.partialJson),
323
+ };
324
+ block.contentIndex = state.content.push(toolCall) - 1;
325
+ state.blocks.push(block);
326
+ state.stream.push({
327
+ type: 'toolcall_start',
328
+ contentIndex: block.contentIndex,
329
+ toolCallId: block.toolCallId,
330
+ name: block.name,
331
+ });
332
+ }
333
+ function updateToolCallArguments(state, block, args) {
334
+ if (block.contentIndex === undefined) {
335
+ return;
336
+ }
337
+ const content = state.content[block.contentIndex];
338
+ if (content?.type === 'toolCall') {
339
+ content.arguments = args;
340
+ }
341
+ }
342
+ function closeOpenBlocks(state, options = {}) {
343
+ for (const block of state.blocks) {
344
+ finishBlock(state, block, options);
345
+ }
346
+ }
347
+ function finishBlock(state, block, options = {}) {
348
+ if (block.ended) {
349
+ return;
350
+ }
351
+ if (block.type === 'response') {
352
+ block.ended = true;
353
+ state.stream.push({
354
+ type: 'text_end',
355
+ contentIndex: block.contentIndex,
356
+ content: block.content,
357
+ });
358
+ return;
359
+ }
360
+ if (block.type === 'thinking') {
361
+ block.ended = true;
362
+ state.stream.push({
363
+ type: 'thinking_end',
364
+ contentIndex: block.contentIndex,
365
+ content: block.content,
366
+ });
367
+ return;
368
+ }
369
+ if (block.contentIndex === undefined || !block.toolCallId || !block.name) {
370
+ if (options.allowInvalidToolJson) {
371
+ return;
372
+ }
373
+ throw new Error('Fireworks tool call ended without an id and name.');
374
+ }
375
+ const args = options.allowInvalidToolJson
376
+ ? parsePartialJsonObject(block.partialJson)
377
+ : parseJsonObject(block.partialJson);
378
+ updateToolCallArguments(state, block, args);
379
+ const toolCall = {
380
+ type: 'toolCall',
381
+ toolCallId: block.toolCallId,
382
+ name: block.name,
383
+ arguments: args,
384
+ };
385
+ block.ended = true;
386
+ state.stream.push({
387
+ type: 'toolcall_end',
388
+ contentIndex: block.contentIndex,
389
+ toolCall,
390
+ });
391
+ }
392
+ function buildNativeMessage(state) {
393
+ if (!state.responseId) {
394
+ return undefined;
395
+ }
396
+ const message = buildNativeAssistantMessage(state.content);
397
+ const choice = {
398
+ index: 0,
399
+ message,
400
+ finish_reason: state.finishReason ?? null,
401
+ };
402
+ if (state.choiceLogprobs !== undefined) {
403
+ choice.logprobs = state.choiceLogprobs;
404
+ }
405
+ if (state.choiceRawOutput !== undefined) {
406
+ choice.raw_output = state.choiceRawOutput;
407
+ }
408
+ if (state.choiceTokenIds !== undefined) {
409
+ choice.token_ids = state.choiceTokenIds;
410
+ }
411
+ const response = {
412
+ id: state.responseId,
413
+ object: 'chat.completion',
414
+ created: state.created ?? Math.floor(state.startedAt / 1000),
415
+ model: state.responseModel ?? state.request.modelId,
416
+ choices: [choice],
417
+ };
418
+ if (state.usage !== undefined) {
419
+ response.usage = state.usage;
420
+ }
421
+ if (state.perfMetrics !== undefined) {
422
+ response.perf_metrics = state.perfMetrics;
423
+ }
424
+ if (state.promptTokenIds !== undefined) {
425
+ response.prompt_token_ids = state.promptTokenIds;
426
+ }
427
+ return response;
428
+ }
429
+ function buildNativeAssistantMessage(content) {
430
+ const text = content
431
+ .filter((part) => part.type === 'response')
432
+ .map((part) => part.response.content)
433
+ .join('');
434
+ const thinking = content
435
+ .filter((part) => part.type === 'thinking')
436
+ .map((part) => part.thinkingText)
437
+ .filter(Boolean)
438
+ .join('\n\n');
439
+ const toolCalls = content
440
+ .filter((part) => part.type === 'toolCall')
441
+ .map((part) => ({
442
+ id: part.toolCallId,
443
+ type: 'function',
444
+ function: {
445
+ name: part.name,
446
+ arguments: typeof part.arguments === 'string'
447
+ ? part.arguments
448
+ : JSON.stringify(part.arguments),
449
+ },
450
+ }));
451
+ return {
452
+ role: 'assistant',
453
+ content: text.length > 0 ? text : toolCalls.length > 0 ? null : '',
454
+ ...(thinking.length > 0 ? { reasoning_content: thinking } : {}),
455
+ ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),
456
+ };
457
+ }
458
+ function usageFromResponse(state, model) {
459
+ if (!state.usage) {
460
+ return undefined;
461
+ }
462
+ const promptTokens = state.usage.prompt_tokens;
463
+ const cacheRead = state.usage.prompt_tokens_details?.cached_tokens ?? 0;
464
+ const input = Math.max(promptTokens - cacheRead, 0);
465
+ const output = state.usage.completion_tokens ?? Math.max(state.usage.total_tokens - promptTokens, 0);
466
+ const cacheWrite = 0;
467
+ const cost = {
468
+ input: costForTokens(input, model.cost.input),
469
+ output: costForTokens(output, model.cost.output),
470
+ cacheRead: costForTokens(cacheRead, model.cost.cacheRead),
471
+ cacheWrite: costForTokens(cacheWrite, model.cost.cacheWrite),
472
+ total: 0,
473
+ };
474
+ cost.total = cost.input + cost.output + cost.cacheRead + cost.cacheWrite;
475
+ return {
476
+ input,
477
+ output,
478
+ cacheRead,
479
+ cacheWrite,
480
+ cost,
481
+ };
482
+ }
483
+ function costForTokens(tokens, costPerMillion) {
484
+ return (tokens * costPerMillion) / 1_000_000;
485
+ }
486
+ function mapDoneStopReason(reason, content) {
487
+ switch (reason) {
488
+ case 'stop':
489
+ return 'stop';
490
+ case 'length':
491
+ return 'length';
492
+ case 'function_call':
493
+ case 'tool_calls':
494
+ return 'toolUse';
495
+ case 'content_filter':
496
+ return 'contentFilter';
497
+ default:
498
+ if (!reason && content.some((part) => part.type === 'toolCall')) {
499
+ return 'toolUse';
500
+ }
501
+ throw new Error(`Fireworks finish_reason: ${String(reason)}`);
502
+ }
503
+ }
504
+ function modelRef(state) {
505
+ return {
506
+ provider: FIREWORKS_PROVIDER,
507
+ id: state.request.modelId,
508
+ name: state.model.name,
509
+ };
510
+ }
511
+ function parsePartialJsonObject(value) {
512
+ try {
513
+ return parseJsonObject(value);
514
+ }
515
+ catch {
516
+ return {};
517
+ }
518
+ }
519
+ function parseJsonObject(value) {
520
+ const parsed = JSON.parse(value || '{}');
521
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
522
+ throw new Error('Fireworks tool call arguments must be a JSON object.');
523
+ }
524
+ return parsed;
525
+ }
526
+ function createDefaultMessageId() {
527
+ return `msg_${globalThis.crypto?.randomUUID?.() ?? `${Date.now()}_${Math.random().toString(36).slice(2)}`}`;
528
+ }
529
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { AssistantError } from '@ank1015/agents-contracts';
2
+ export declare function isAbortError(error: unknown): boolean;
3
+ export declare function canRetryFireworksError(error: unknown): boolean;
4
+ export declare function getFireworksErrorDetails(error: unknown): AssistantError;
5
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAkChE,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKpD;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAoC9D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAKvE"}
package/dist/errors.js ADDED
@@ -0,0 +1,66 @@
1
+ import { APIConnectionError, APIConnectionTimeoutError, APIError, APIUserAbortError, ConflictError, InternalServerError, RateLimitError, } from 'openai/core/error.js';
2
+ function isObject(value) {
3
+ return typeof value === 'object' && value !== null;
4
+ }
5
+ function getErrorMessage(error) {
6
+ if (error instanceof APIError && isObject(error.error)) {
7
+ const nested = error.error.error;
8
+ if (isObject(nested) && typeof nested.message === 'string') {
9
+ return nested.message;
10
+ }
11
+ if (typeof error.error.message === 'string') {
12
+ return error.error.message;
13
+ }
14
+ }
15
+ if (error instanceof Error) {
16
+ return error.message;
17
+ }
18
+ try {
19
+ return JSON.stringify(error) ?? String(error);
20
+ }
21
+ catch {
22
+ return String(error);
23
+ }
24
+ }
25
+ function getErrorCode(error) {
26
+ const code = error?.code;
27
+ return typeof code === 'string' ? code : undefined;
28
+ }
29
+ export function isAbortError(error) {
30
+ return (error instanceof APIUserAbortError ||
31
+ error?.name === 'AbortError');
32
+ }
33
+ export function canRetryFireworksError(error) {
34
+ if (error instanceof APIUserAbortError) {
35
+ return false;
36
+ }
37
+ if (error instanceof APIConnectionTimeoutError || error instanceof APIConnectionError) {
38
+ return true;
39
+ }
40
+ if (error instanceof ConflictError ||
41
+ error instanceof RateLimitError ||
42
+ error instanceof InternalServerError) {
43
+ return true;
44
+ }
45
+ if (error instanceof APIError) {
46
+ return (error.status === 408 ||
47
+ error.status === 409 ||
48
+ error.status === 429 ||
49
+ (typeof error.status === 'number' && error.status >= 500));
50
+ }
51
+ const status = error?.status;
52
+ const code = getErrorCode(error);
53
+ return (status === 408 ||
54
+ status === 409 ||
55
+ status === 429 ||
56
+ (typeof status === 'number' && status >= 500) ||
57
+ code === 'rate_limit_exceeded' ||
58
+ code === 'server_error');
59
+ }
60
+ export function getFireworksErrorDetails(error) {
61
+ return {
62
+ message: getErrorMessage(error),
63
+ canRetry: canRetryFireworksError(error),
64
+ };
65
+ }
66
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './adapter.js';
2
+ export * from '@ank1015/agents-provider-fireworks-spec';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,yCAAyC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './adapter.js';
2
+ export * from '@ank1015/agents-provider-fireworks-spec';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,yCAAyC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { LLMRequest, Model, ToolDefinition } from '@ank1015/agents-contracts';
2
+ import type { FireworksChatCompletionResponse, FireworksChatMessage, FireworksJsonObject, FireworksProvider, FireworksProviderOptions } from '@ank1015/agents-provider-fireworks-spec';
3
+ export interface FireworksChatCompletionTool {
4
+ type: 'function';
5
+ function: {
6
+ name: string;
7
+ description?: string | null;
8
+ parameters?: FireworksJsonObject;
9
+ strict?: boolean | null;
10
+ };
11
+ }
12
+ export type FireworksChatCompletionMessageParam = FireworksChatMessage;
13
+ export type FireworksChatCompletionCreateParamsStreaming = FireworksProviderOptions & {
14
+ model: string;
15
+ messages: FireworksChatCompletionMessageParam[];
16
+ stream: true;
17
+ tools?: FireworksChatCompletionTool[];
18
+ };
19
+ export interface FireworksChatCompletionChunkChoice {
20
+ index: number;
21
+ delta: {
22
+ role?: string | null;
23
+ content?: string | null;
24
+ reasoning_content?: string | null;
25
+ tool_calls?: Array<{
26
+ index?: number;
27
+ id?: string | null;
28
+ type?: 'function' | (string & {}) | null;
29
+ function?: {
30
+ name?: string | null;
31
+ arguments?: string | null;
32
+ } | null;
33
+ }> | null;
34
+ };
35
+ finish_reason?: 'stop' | 'length' | 'function_call' | 'tool_calls' | 'content_filter' | (string & {}) | null;
36
+ logprobs?: unknown;
37
+ raw_output?: unknown;
38
+ prompt_token_ids?: number[] | null;
39
+ token_ids?: number[] | null;
40
+ }
41
+ export interface FireworksChatCompletionChunk {
42
+ id: string;
43
+ object: 'chat.completion.chunk' | (string & {});
44
+ created: number;
45
+ model: string;
46
+ choices: FireworksChatCompletionChunkChoice[];
47
+ usage?: FireworksChatCompletionResponse['usage'];
48
+ perf_metrics?: FireworksJsonObject | null;
49
+ prompt_token_ids?: number[] | null;
50
+ }
51
+ export declare function buildFireworksChatCompletionParams(request: LLMRequest<FireworksProvider>, model: Model<FireworksProvider>): FireworksChatCompletionCreateParamsStreaming;
52
+ export declare function buildFireworksMessages(request: LLMRequest<FireworksProvider>, model: Model<FireworksProvider>): FireworksChatCompletionMessageParam[];
53
+ export declare function convertTools(tools: readonly ToolDefinition[]): FireworksChatCompletionTool[];
54
+ export declare function isFireworksChatCompletionResponse(value: unknown): value is FireworksChatCompletionResponse;
55
+ //# sourceMappingURL=mapping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,145 @@
1
+ import { toolParametersToJsonSchema } from '@ank1015/agents-contracts';
2
+ import { FIREWORKS_PROVIDER, assertFireworksToolsSupported, } from '@ank1015/agents-provider-fireworks-spec';
3
+ export function buildFireworksChatCompletionParams(request, model) {
4
+ const providerOptions = request.providerOptions ?? {};
5
+ const params = {
6
+ ...providerOptions,
7
+ model: request.modelId,
8
+ messages: buildFireworksMessages(request, model),
9
+ stream: true,
10
+ };
11
+ if (request.tools?.length) {
12
+ params.tools = convertTools(request.tools);
13
+ }
14
+ return params;
15
+ }
16
+ export function buildFireworksMessages(request, model) {
17
+ const messages = [];
18
+ if (request.instructions !== undefined) {
19
+ messages.push({
20
+ role: 'system',
21
+ content: request.instructions,
22
+ });
23
+ }
24
+ for (const message of request.messages) {
25
+ messages.push(...buildMessageInput(message, model));
26
+ }
27
+ return messages;
28
+ }
29
+ export function convertTools(tools) {
30
+ assertFireworksToolsSupported(tools);
31
+ return tools.map((tool) => ({
32
+ type: 'function',
33
+ function: {
34
+ name: tool.name,
35
+ description: tool.description,
36
+ parameters: toolParametersToJsonSchema(tool.parameters),
37
+ strict: tool.strict ?? null,
38
+ },
39
+ }));
40
+ }
41
+ export function isFireworksChatCompletionResponse(value) {
42
+ return (typeof value === 'object' &&
43
+ value !== null &&
44
+ value.object === 'chat.completion' &&
45
+ Array.isArray(value.choices));
46
+ }
47
+ function buildMessageInput(message, model) {
48
+ switch (message.role) {
49
+ case 'user': {
50
+ const content = contentToChatContent(message.content, model);
51
+ return content.length > 0 ? [{ role: 'user', content }] : [];
52
+ }
53
+ case 'toolResult':
54
+ return [buildToolResultMessage(message)];
55
+ case 'assistant':
56
+ return buildAssistantMessages(message);
57
+ case 'custom':
58
+ return [];
59
+ }
60
+ }
61
+ function buildToolResultMessage(message) {
62
+ return {
63
+ role: 'tool',
64
+ tool_call_id: message.toolCallId,
65
+ content: contentToToolResultText(message),
66
+ };
67
+ }
68
+ function buildAssistantMessages(message) {
69
+ if (message.model.provider === FIREWORKS_PROVIDER &&
70
+ isFireworksChatCompletionResponse(message.nativeMessage)) {
71
+ const native = message.nativeMessage.choices[0]?.message;
72
+ return native ? [native] : [];
73
+ }
74
+ const rebuilt = assistantResponseToMessage(message.content);
75
+ return rebuilt ? [rebuilt] : [];
76
+ }
77
+ function assistantResponseToMessage(content) {
78
+ let text = '';
79
+ const thinking = [];
80
+ const toolCalls = [];
81
+ for (const part of content) {
82
+ if (part.type === 'response') {
83
+ text += part.response.content;
84
+ continue;
85
+ }
86
+ if (part.type === 'thinking') {
87
+ if (part.thinkingText.length > 0) {
88
+ thinking.push(part.thinkingText);
89
+ }
90
+ continue;
91
+ }
92
+ toolCalls.push({
93
+ id: part.toolCallId,
94
+ type: 'function',
95
+ function: {
96
+ name: part.name,
97
+ arguments: typeof part.arguments === 'string'
98
+ ? part.arguments
99
+ : JSON.stringify(part.arguments),
100
+ },
101
+ });
102
+ }
103
+ if (text.length === 0 && thinking.length === 0 && toolCalls.length === 0) {
104
+ return undefined;
105
+ }
106
+ return {
107
+ role: 'assistant',
108
+ content: text.length > 0 ? text : toolCalls.length > 0 ? null : '',
109
+ ...(thinking.length > 0 ? { reasoning_content: thinking.join('\n\n') } : {}),
110
+ ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),
111
+ };
112
+ }
113
+ function contentToChatContent(content, model) {
114
+ return content.map((part) => {
115
+ if (part.type === 'text') {
116
+ return {
117
+ type: 'text',
118
+ text: part.content,
119
+ };
120
+ }
121
+ assertImageInputSupported(model);
122
+ return {
123
+ type: 'image_url',
124
+ image_url: {
125
+ url: `data:${part.mimeType};base64,${part.data}`,
126
+ },
127
+ };
128
+ });
129
+ }
130
+ function contentToToolResultText(message) {
131
+ const text = message.content
132
+ .filter((part) => part.type === 'text')
133
+ .map((part) => part.content)
134
+ .join('\n');
135
+ if (text.length > 0) {
136
+ return message.isError ? `[TOOL ERROR] ${text}` : text;
137
+ }
138
+ return message.isError ? '[TOOL ERROR]' : '';
139
+ }
140
+ function assertImageInputSupported(model) {
141
+ if (!model.input.includes('image')) {
142
+ throw new Error(`Model "${model.id}" does not support image input.`);
143
+ }
144
+ }
145
+ //# sourceMappingURL=mapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAUvE,OAAO,EACL,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,yCAAyC,CAAC;AA8DjD,MAAM,UAAU,kCAAkC,CAChD,OAAsC,EACtC,KAA+B;IAE/B,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;IACtD,MAAM,MAAM,GAAiD;QAC3D,GAAG,eAAe;QAClB,KAAK,EAAE,OAAO,CAAC,OAAO;QACtB,QAAQ,EAAE,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC;QAChD,MAAM,EAAE,IAAI;KACb,CAAC;IAEF,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,OAAsC,EACtC,KAA+B;IAE/B,MAAM,QAAQ,GAA0C,EAAE,CAAC;IAE3D,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,OAAO,CAAC,YAAY;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAgC;IAEhC,6BAA6B,CAAC,KAAK,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAwB;YAC9E,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI;SAC5B;KACF,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAA8B,CAAC,MAAM,KAAK,iBAAiB;QAC5D,KAAK,CAAC,OAAO,CAAE,KAA+B,CAAC,OAAO,CAAC,CACxD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,OAAgB,EAChB,KAA+B;IAE/B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC7D,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,CAAC;QAED,KAAK,YAAY;YACf,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;QAE3C,KAAK,WAAW;YACd,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEzC,KAAK,QAAQ;YACX,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAA0B;IAE1B,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,OAAO,CAAC,UAAU;QAChC,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC;KAC1C,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,OAA8B;IAE9B,IACE,OAAO,CAAC,KAAK,CAAC,QAAQ,KAAK,kBAAkB;QAC7C,iCAAiC,CAAC,OAAO,CAAC,aAAa,CAAC,EACxD,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;QACzD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,CAAC;IAED,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,0BAA0B,CACjC,OAA0B;IAE1B,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAA6C,EAAE,CAAC;IAE/D,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC;YACD,SAAS;QACX,CAAC;QAED,SAAS,CAAC,IAAI,CAAC;YACb,EAAE,EAAE,IAAI,CAAC,UAAU;YACnB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACR,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EACP,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;oBAChC,CAAC,CAAC,IAAI,CAAC,SAAS;oBAChB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;aACrC;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAClE,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAgB,EAChB,KAA+B;IAE/B,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAA+B,EAAE;QACvD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,OAAO;aACnB,CAAC;QACJ,CAAC;QAED,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE;gBACT,GAAG,EAAE,QAAQ,IAAI,CAAC,QAAQ,WAAW,IAAI,CAAC,IAAI,EAAE;aACjD;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,OAA0B;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO;SACzB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;SACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;SAC3B,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,yBAAyB,CAAC,KAA+B;IAChE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,iCAAiC,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@ank1015/agents-provider-fireworks",
3
+ "version": "0.1.0",
4
+ "description": "Fireworks Chat Completions runtime adapter for @ank1015/agents.",
5
+ "keywords": [
6
+ "agents",
7
+ "fireworks",
8
+ "llm",
9
+ "chat-completions",
10
+ "typescript"
11
+ ],
12
+ "license": "UNLICENSED",
13
+ "type": "module",
14
+ "sideEffects": false,
15
+ "main": "./dist/index.js",
16
+ "types": "./dist/index.d.ts",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/ank1015/agent.git",
20
+ "directory": "packages/provider-fireworks"
21
+ },
22
+ "bugs": {
23
+ "url": "https://github.com/ank1015/agent/issues"
24
+ },
25
+ "homepage": "https://github.com/ank1015/agent#readme",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/index.d.ts",
29
+ "import": "./dist/index.js"
30
+ },
31
+ "./adapter": {
32
+ "types": "./dist/adapter.d.ts",
33
+ "import": "./dist/adapter.js"
34
+ }
35
+ },
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "files": [
40
+ "dist",
41
+ "README.md",
42
+ "CHANGELOG.md"
43
+ ],
44
+ "scripts": {
45
+ "prepack": "tsc -b",
46
+ "build": "tsc -b",
47
+ "check": "tsc -b --pretty false",
48
+ "test": "vitest run && tsc --noEmit --strict --skipLibCheck --module NodeNext --moduleResolution NodeNext --target ES2022 --ignoreConfig tests/*.test.ts",
49
+ "clean": "rm -rf dist ../../.tsbuildinfo/provider-fireworks.tsbuildinfo"
50
+ },
51
+ "dependencies": {
52
+ "@ank1015/agents-contracts": "^0.1.1",
53
+ "@ank1015/agents-provider-fireworks-spec": "^0.1.0",
54
+ "openai": "^6.42.0",
55
+ "zod": "^4.4.3"
56
+ },
57
+ "devDependencies": {
58
+ "vitest": "^4.1.9"
59
+ }
60
+ }