@byte_fluffy/nexra-sdk 0.1.0-alpha.5 → 0.1.0-alpha.52

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/dist/media.js ADDED
@@ -0,0 +1,26 @@
1
+ import {
2
+ NEXRA_GENERATION_OPERATIONS,
3
+ NEXRA_MEDIA_API_VERSION,
4
+ NEXRA_MEDIA_FEATURES,
5
+ NEXRA_MEDIA_INPUT_SCHEMAS,
6
+ NEXRA_MEDIA_OPERATIONS,
7
+ NEXRA_MEDIA_OPERATION_DEFINITIONS,
8
+ NEXRA_PUBLISHED_MEDIA_OPERATIONS,
9
+ isNexraMediaInput,
10
+ nexraMediaInputSchema,
11
+ nexraMediaInputSchemaForMode,
12
+ nexraMediaOperationForMode
13
+ } from "./chunk-LEZWVFQH.js";
14
+ export {
15
+ NEXRA_GENERATION_OPERATIONS,
16
+ NEXRA_MEDIA_API_VERSION,
17
+ NEXRA_MEDIA_FEATURES,
18
+ NEXRA_MEDIA_INPUT_SCHEMAS,
19
+ NEXRA_MEDIA_OPERATIONS,
20
+ NEXRA_MEDIA_OPERATION_DEFINITIONS,
21
+ NEXRA_PUBLISHED_MEDIA_OPERATIONS,
22
+ isNexraMediaInput,
23
+ nexraMediaInputSchema,
24
+ nexraMediaInputSchemaForMode,
25
+ nexraMediaOperationForMode
26
+ };
@@ -0,0 +1,5 @@
1
+ export { A as AssetImportRequest, a as AssetInput, b as AssetReference, c as AssetUploadOptions, d as MediaAsset, e as MediaAssetStatus, f as MediaKind, N as NexraImageLayer, g as NexraImageLayerDecompositionOutput } from './media-DzOxLGs-.js';
2
+ export { e as CreateNexraDisplayQuoteBatchRequest, C as CreateNexraQuoteRequest, F as FetchLike, M as MediaGeometryField, k as MediaGeometryProjection, z as ModelCapabilitySummary, A as ModelDateVersion, B as ModelEndpointSummary, D as ModelModality, x as ModelResourceList, E as ModelResourceOption, w as ModelSchema, u as ModelSearchParams, l as NexraBillingCurrency, g as NexraCatalogRevision, y as NexraClientOptions, f as NexraDisplayQuoteBatch, G as NexraDisplayQuoteBatchEntry, n as NexraModelOperation, h as NexraModelSpec, j as NexraModelSpecFilter, d as NexraQuote, o as NexraSalePrice, c as NexraSalePriceList, p as NexraSettlement, v as TaskModel, T as TaskModelSummary, U as UnifiedMediaGeometry } from './media-geometry-COln1N_2.js';
3
+ export { C as CursorPage, a as JsonObject, b as JsonPrimitive, J as JsonValue } from './json-Cz0MkWQn.js';
4
+ export { A as ApiErrorPayload, N as NexraError, a as PublicError, b as PublicErrorContext, P as PublicErrorFields } from './errors-DJZuAKoO.js';
5
+ export { d as CreateTaskOptions, e as CreateTaskRequest, C as CreateVoiceRequest, f as RequestDetails, b as RunResult, R as RunTaskOptions, c as Task, h as TaskCost, i as TaskError, j as TaskEvent, k as TaskEventType, l as TaskListParams, m as TaskPage, n as TaskProgress, o as TaskReceipt, c as TaskResult, p as TaskStatus, q as TaskTiming, r as TaskUsage, s as TaskWebhookConfig, t as TerminalTaskStatus, u as VerifyWebhookOptions, V as Voice, a as VoiceCreation, W as WaitTaskOptions, v as WatchTaskOptions } from './voices-xyPqhQqR.js';
package/dist/types.js ADDED
File without changes
@@ -0,0 +1,348 @@
1
+ import { c as AssetUploadOptions, d as MediaAsset, A as AssetImportRequest, h as AssetCertificationRequest, i as AssetCertification, j as AssetCertificationWaitOptions } from './media-DzOxLGs-.js';
2
+ import { H as HttpTransport, p as NexraSettlement } from './media-geometry-COln1N_2.js';
3
+ import { a as JsonObject, J as JsonValue, C as CursorPage } from './json-Cz0MkWQn.js';
4
+ import { P as PublicErrorFields, a as PublicError, b as PublicErrorContext, N as NexraError } from './errors-DJZuAKoO.js';
5
+
6
+ declare class AssetsClient {
7
+ private readonly transport;
8
+ constructor(transport: HttpTransport);
9
+ upload(file: Blob, options?: AssetUploadOptions): Promise<MediaAsset>;
10
+ import(request: AssetImportRequest, signal?: AbortSignal): Promise<MediaAsset>;
11
+ get(assetId: string, signal?: AbortSignal): Promise<MediaAsset>;
12
+ certifyForSeedance(asset: MediaAsset | string, request?: AssetCertificationRequest, signal?: AbortSignal): Promise<AssetCertification>;
13
+ getSeedanceCertification(asset: MediaAsset | string, signal?: AbortSignal): Promise<AssetCertification>;
14
+ waitForSeedanceCertification(asset: MediaAsset | string, options?: AssetCertificationWaitOptions): Promise<AssetCertification>;
15
+ download(asset: MediaAsset | string, signal?: AbortSignal): Promise<Response>;
16
+ stream(asset: MediaAsset | string, signal?: AbortSignal): Promise<ReadableStream<Uint8Array>>;
17
+ }
18
+
19
+ interface CreateTaskOptions {
20
+ quoteToken?: string;
21
+ submittedAt?: string;
22
+ metadata?: JsonObject;
23
+ callback_url?: string;
24
+ /** @deprecated Use callback_url; do not supply both. */
25
+ webhook?: TaskWebhookConfig;
26
+ schemaVersion?: number;
27
+ idempotencyKey?: string;
28
+ signal?: AbortSignal;
29
+ }
30
+ interface WatchTaskOptions {
31
+ signal?: AbortSignal;
32
+ lastEventId?: string;
33
+ maxReconnects?: number;
34
+ }
35
+ interface WaitTaskOptions extends WatchTaskOptions {
36
+ timeoutMs?: number;
37
+ pollIntervalMs?: number;
38
+ onEvent?: (event: TaskEvent) => void | Promise<void>;
39
+ }
40
+ interface RunTaskOptions extends CreateTaskOptions, WaitTaskOptions {
41
+ cancelOnAbort?: boolean;
42
+ }
43
+ declare class TasksClient {
44
+ private readonly transport;
45
+ private readonly assets;
46
+ constructor(transport: HttpTransport, assets: AssetsClient);
47
+ create<TOutput = JsonValue, TInput = Record<string, unknown>>(model: string, input: TInput, options?: CreateTaskOptions): Promise<TaskReceipt>;
48
+ get<TOutput = JsonValue>(taskId: string, signal?: AbortSignal): Promise<TaskResult<TOutput>>;
49
+ list<TOutput = JsonValue>(params?: TaskListParams, signal?: AbortSignal): Promise<CursorPage<TaskResult<TOutput>>>;
50
+ cancel<TOutput = JsonValue>(taskId: string, signal?: AbortSignal): Promise<TaskReceipt>;
51
+ watch(taskId: string, options?: WatchTaskOptions): AsyncGenerator<TaskEvent>;
52
+ wait<TOutput = JsonValue>(taskId: string, options?: WaitTaskOptions): Promise<TaskResult<TOutput>>;
53
+ run<TOutput = JsonValue, TInput = Record<string, unknown>>(model: string, input: TInput, options?: RunTaskOptions): Promise<RunResult<TOutput>>;
54
+ }
55
+
56
+ interface VerifyWebhookOptions {
57
+ toleranceSeconds?: number;
58
+ now?: Date;
59
+ }
60
+ /** @deprecated Only verifies legacy signed webhooks, not callback_url notifications. */
61
+ declare function verifyWebhook(request: Request, secret: string, options?: VerifyWebhookOptions): Promise<boolean>;
62
+
63
+ type TaskPage<TOutput = JsonValue> = CursorPage<TaskResult<TOutput>>;
64
+
65
+ declare const REQUEST_HISTORY_MODALITIES: readonly ["image", "video", "audio", "language"];
66
+ declare const REQUEST_HISTORY_KINDS: readonly ["task", "api"];
67
+ declare const REQUEST_HISTORY_DISPLAY_STATUSES: readonly ["succeeded", "failed", "delivery_failed", "running"];
68
+ type RequestHistoryFilters = Readonly<{
69
+ query?: string;
70
+ modality?: typeof REQUEST_HISTORY_MODALITIES[number];
71
+ kind?: typeof REQUEST_HISTORY_KINDS[number];
72
+ displayStatus?: typeof REQUEST_HISTORY_DISPLAY_STATUSES[number];
73
+ }>;
74
+
75
+ declare const TASK_STATUSES: readonly ["queued", "running", "succeeded", "failed", "cancelling", "cancelled"];
76
+ type TaskStatus = (typeof TASK_STATUSES)[number];
77
+ type TerminalTaskStatus = "succeeded" | "failed" | "cancelled";
78
+ interface TaskProgress {
79
+ percent?: number;
80
+ stage?: string;
81
+ message?: string;
82
+ }
83
+ type TaskError = NexraError;
84
+ interface TaskUsage {
85
+ components: Array<{
86
+ name: string;
87
+ quantity: number;
88
+ unit: string;
89
+ }>;
90
+ metadata?: JsonObject;
91
+ }
92
+ interface TaskCost {
93
+ amount: string;
94
+ currency: string;
95
+ }
96
+ type TaskBillingReason = "request_failed" | "request_cancelled" | "billing_usage_unavailable" | "billing_usage_invalid" | "billing_usage_incomplete" | "billing_evidence_invalid" | "billing_evidence_incomplete" | "billing_hold_unavailable" | "billing_price_unavailable" | "billing_pricing_unavailable" | "api_key_spending_limit_exceeded";
97
+ interface TaskQueueSnapshot {
98
+ phase: "waiting_capacity" | "waiting_channel" | "dispatch_pending" | "waiting_upstream";
99
+ since: string;
100
+ deadlineAt?: string;
101
+ /** Upstream gateway queue position, present while waiting_upstream and observed. */
102
+ queuePosition?: number;
103
+ /** Upstream gateway queue ETA in seconds, present while waiting_upstream and observed. */
104
+ etaSeconds?: number;
105
+ cancelable: boolean;
106
+ }
107
+ interface TaskTiming {
108
+ submittedAt: string;
109
+ providerSubmittedAt?: string;
110
+ providerCompletedAt?: string;
111
+ /** First public terminal response; background media may still be preparing. */
112
+ firstResponseAt?: string;
113
+ /** Background media ready response; absent while preparing or after persistence failure. */
114
+ secondResponseAt?: string;
115
+ storedAt?: string;
116
+ persistPolicy?: "terminal" | "background";
117
+ deliveryStatus?: "preparing" | "ready" | "failed";
118
+ preparationMs: number | null;
119
+ generationMs: number | null;
120
+ /** Background: elapsed persistence stage until assets are ready; terminal: measured transfer. Null when unfinished or unavailable. */
121
+ storageMs: number | null;
122
+ /** First-response time outside measured preparation/generation and any pre-response storage; not a separately instrumented stage. */
123
+ responseOverheadMs?: number | null;
124
+ /** Start of in-progress background persistence, when a worker has claimed the output. */
125
+ storageStartedAt?: string;
126
+ /** Background persistence elapsed time from first response to durable asset readiness. */
127
+ persistMs?: number | null;
128
+ totalMs: number | null;
129
+ /** Incident-only estimate of service readiness; actual public response remains in totalMs. */
130
+ correction?: {
131
+ incidentId: string;
132
+ outputReadyAt: string;
133
+ serviceReadyMs: number;
134
+ deploymentDelayMs: number;
135
+ };
136
+ startSource: "client" | "server";
137
+ /** Server clock reading taken when this snapshot was built; lets clients anchor live timers to server time. */
138
+ observedAt?: string;
139
+ }
140
+ /** Repository/console read model. HTTP clients receive TaskReceipt or TaskResult. */
141
+ interface Task<TOutput = JsonValue> extends PublicErrorFields {
142
+ id: string;
143
+ /** Original platform request ID, shared with request history. */
144
+ requestId?: string;
145
+ /** Public Run ID, when this Task belongs to a shared-input run. */
146
+ runId?: string;
147
+ model: string;
148
+ operation: string;
149
+ schemaVersion: number;
150
+ /** Model request parameters; native-managed tasks retain the upstream field structure. */
151
+ input?: JsonObject;
152
+ status: TaskStatus;
153
+ /** Present only while an asynchronous Task is queued. */
154
+ queue?: TaskQueueSnapshot;
155
+ /** Persistence policy frozen when the Task is created. Background is limited to video Tasks. */
156
+ persistPolicy?: "terminal" | "background";
157
+ /**
158
+ * Regional media availability. "preparing" means the task result is delivered
159
+ * with provider media URLs while Nexra persists them to its own object storage
160
+ * in the background; "ready" means persisted URLs; "failed" means background
161
+ * persistence exhausted its retries and the provider URLs have expired.
162
+ * Execution/billing remain terminal regardless of this value.
163
+ */
164
+ deliveryStatus?: "preparing" | "ready" | "failed";
165
+ progress?: TaskProgress;
166
+ /** Native-managed tasks preserve the final response shape and media URLs; catalog models may normalize model identifiers. */
167
+ output?: TOutput;
168
+ assets: MediaAsset[];
169
+ error?: PublicError;
170
+ usage?: TaskUsage;
171
+ cost?: TaskCost;
172
+ /** Customer billing state; absent on older servers. */
173
+ billingStatus?: "pending" | "succeeded" | "failed" | "refunded" | "unavailable";
174
+ /** Safe read-only cause; execution failures release authorization rather than failing settlement. */
175
+ billingReason?: TaskBillingReason;
176
+ /** Final customer sale settlement. Provider procurement cost is never exposed here. */
177
+ settlement?: NexraSettlement;
178
+ /**
179
+ * Caller-supplied business data, returned unchanged; never sent to the provider.
180
+ * The platform extracts the reserved string keys `callerUrl` (caller origin,
181
+ * https URL), `endUserId` (opaque end-user identifier), and `endUserIp`
182
+ * (IPv4/IPv6 address) for support diagnostics. These caller assertions are
183
+ * checked for format only and remain unchanged inside `metadata`.
184
+ */
185
+ metadata?: JsonObject;
186
+ timing?: TaskTiming;
187
+ /** Server-side Task record creation time (ISO 8601 UTC). */
188
+ createdAt: string;
189
+ /** Latest Task record update, not the generation completion time (ISO 8601 UTC). */
190
+ updatedAt: string;
191
+ /** First worker execution start; absent while queued or cancelled before execution. */
192
+ startedAt?: string;
193
+ /**
194
+ * Terminal succeeded/failed/cancelled time. Synchronously persisted tasks
195
+ * (default) reach succeeded only after required asset storage; background-
196
+ * persisted tasks are declared succeeded at result delivery while storage
197
+ * continues, signalled by `deliveryStatus` and the task timing second response.
198
+ */
199
+ completedAt?: string;
200
+ /** @deprecated Reserved; no Task expiry policy is currently enforced. Not a media URL expiry. */
201
+ expiresAt?: string;
202
+ }
203
+ /** POST /tasks returns acceptance only, including for idempotent replays. */
204
+ type TaskReceipt = Pick<Task, "id" | "status"> & PublicErrorContext;
205
+ /** Public Task result; platform diagnostics and business tags live in RequestDetails. */
206
+ type TaskResult<TOutput = JsonValue> = Pick<Task<TOutput>, "id" | "model" | "status"> & Partial<Pick<Task<TOutput>, "output" | "assets" | "persistPolicy" | "deliveryStatus" | "settlement" | "queue">> & PublicErrorFields;
207
+ /** Platform request details, used by both managed Tasks and native proxy requests. */
208
+ interface RequestDetails extends PublicErrorFields {
209
+ id: string;
210
+ /** Owning Nexra account, used to separate users in system request history. */
211
+ accountId?: string | null;
212
+ /** Owning organization for organization-key requests, including calls without a personal account. */
213
+ organizationId?: string | null;
214
+ nexraRequestId?: string;
215
+ taskId: string | null;
216
+ method: string;
217
+ path: string;
218
+ protocol?: string;
219
+ accessMode?: string | null;
220
+ model: string | null;
221
+ operation: string | null;
222
+ status: string;
223
+ /** Linked Task lifecycle when this request accepted a Task; HTTP `status` stays accepted. */
224
+ taskStatus?: string | null;
225
+ persistPolicy?: "terminal" | "background";
226
+ deliveryStatus?: Task["deliveryStatus"];
227
+ errorCode: string | null;
228
+ /** HTTP duration, never substituted with asynchronous task duration. */
229
+ durationMs: number | null;
230
+ timing?: TaskTiming;
231
+ cost?: TaskCost;
232
+ billingStatus?: Task["billingStatus"];
233
+ billingReason?: Task["billingReason"];
234
+ settlement?: NexraSettlement;
235
+ metadata?: JsonObject;
236
+ /** Caller-asserted origin recorded with the request; diagnostics display only. */
237
+ callerUrl?: string | null;
238
+ /** Client address recorded at the trusted HTTP ingress; absent on historical requests. */
239
+ clientIp?: string | null;
240
+ /** Caller-asserted end-user identifier recorded with the request; diagnostics display only. */
241
+ endUserId?: string | null;
242
+ endUserIp?: string | null;
243
+ purpose?: string | null;
244
+ sourceSessionId?: string | null;
245
+ sourceTaskId?: string | null;
246
+ /** Name of the API key that authenticated this request; diagnostics display only. */
247
+ apiKeyName?: string | null;
248
+ /** Latest known execution update; omitted when not observed. */
249
+ updatedAt?: string;
250
+ runId?: string;
251
+ schemaVersion?: number;
252
+ createdAt?: string;
253
+ startedAt?: string;
254
+ completedAt?: string;
255
+ input: JsonObject | null;
256
+ /** Present only on single-request reads (`includeOutput`). */
257
+ output?: JsonValue | null;
258
+ /** Output media with durable TOS URLs; present only on `includeOutput`. */
259
+ assets?: MediaAsset[];
260
+ receivedAt: string;
261
+ finishedAt: string | null;
262
+ }
263
+ type TaskEventType = "state" | "progress" | "preview" | "log" | "usage" | "warning" | "result";
264
+ interface TaskEvent {
265
+ id: string;
266
+ taskId: string;
267
+ sequence: number;
268
+ type: TaskEventType;
269
+ status?: TaskStatus;
270
+ progress?: TaskProgress;
271
+ asset?: MediaAsset;
272
+ message?: string;
273
+ payload?: JsonObject;
274
+ occurredAt: string;
275
+ }
276
+ /** @deprecated Use CreateTaskRequest.callback_url. Kept for existing callers. */
277
+ type TaskWebhookConfig = JsonObject & Readonly<{
278
+ url: string;
279
+ /** Shared HMAC secret used to verify Nexra callback signatures. */
280
+ secret: string;
281
+ events?: Array<"completed">;
282
+ }>;
283
+ type CreateTaskControls = Readonly<{
284
+ /** @internal Console telemetry only: browser send time before uploads, not execution time. */
285
+ submittedAt?: string;
286
+ model: string;
287
+ /** Signed Nexra quote used to lock this input to a sale-price revision. */
288
+ quoteToken?: string;
289
+ /** Optional business identifiers such as orderId, available in request details. Do not include secrets. */
290
+ metadata?: JsonObject;
291
+ /** Platform completion callback, independent of provider callback support. Never sent upstream. */
292
+ callback_url?: string;
293
+ /** @deprecated Use callback_url; do not supply both. */
294
+ webhook?: TaskWebhookConfig;
295
+ /** @deprecated Compatibility check only; the server resolves the current contract. */
296
+ schemaVersion?: number;
297
+ }>;
298
+ /** Public Nexra Task request. Category parameters are top-level fields; `input`
299
+ * is deliberately not an envelope. Persistent Task records still retain their
300
+ * own `input` snapshot after the HTTP boundary separates control fields. */
301
+ type CreateTaskRequest<TInput extends JsonObject = JsonObject> = TInput & CreateTaskControls;
302
+ interface TaskListParams extends RequestHistoryFilters {
303
+ status?: TaskStatus;
304
+ model?: string;
305
+ limit?: number;
306
+ cursor?: string;
307
+ orphanOnly?: boolean;
308
+ }
309
+ interface RunResult<TOutput = JsonValue> {
310
+ taskId: string;
311
+ output: TOutput;
312
+ assets: MediaAsset[];
313
+ usage?: TaskUsage;
314
+ cost?: TaskCost;
315
+ task: TaskResult<TOutput>;
316
+ }
317
+ declare function isTerminalTaskStatus(status: TaskStatus): status is TerminalTaskStatus;
318
+
319
+ type Voice = Readonly<{
320
+ id: string;
321
+ provider: "elevenlabs";
322
+ source: "design" | "clone";
323
+ sourceTaskId?: string;
324
+ previewId?: string;
325
+ name: string;
326
+ status: "processing" | "active" | "verification_required" | "failed" | "expired" | "deleted";
327
+ previewUrl?: string;
328
+ requiresVerification?: boolean;
329
+ createdAt: string;
330
+ expiresAt?: string;
331
+ }>;
332
+ type CreateVoiceRequest = Readonly<{
333
+ name: string;
334
+ source: Readonly<{
335
+ kind: "design";
336
+ taskId: string;
337
+ previewId: string;
338
+ }> | Readonly<{
339
+ kind: "clone";
340
+ samples: readonly string[];
341
+ }>;
342
+ }>;
343
+ type VoiceCreation = Readonly<{
344
+ taskId: string;
345
+ voice: Voice;
346
+ }>;
347
+
348
+ export { AssetsClient as A, type CreateVoiceRequest as C, type RunTaskOptions as R, TasksClient as T, type Voice as V, type WaitTaskOptions as W, type VoiceCreation as a, type RunResult as b, type TaskResult as c, type CreateTaskOptions as d, type CreateTaskRequest as e, type RequestDetails as f, TASK_STATUSES as g, type TaskCost as h, type TaskError as i, type TaskEvent as j, type TaskEventType as k, type TaskListParams as l, type TaskPage as m, type TaskProgress as n, type TaskReceipt as o, type TaskStatus as p, type TaskTiming as q, type TaskUsage as r, type TaskWebhookConfig as s, type TerminalTaskStatus as t, type VerifyWebhookOptions as u, type WatchTaskOptions as v, isTerminalTaskStatus as w, verifyWebhook as x };
package/package.json CHANGED
@@ -1,8 +1,12 @@
1
1
  {
2
2
  "name": "@byte_fluffy/nexra-sdk",
3
- "version": "0.1.0-alpha.5",
3
+ "version": "0.1.0-alpha.52",
4
4
  "type": "module",
5
+ "types": "./dist/index.d.ts",
5
6
  "sideEffects": false,
7
+ "engines": {
8
+ "node": ">=20"
9
+ },
6
10
  "repository": {
7
11
  "type": "git",
8
12
  "url": "git+https://github.com/starrank-soft/nexra-monorepo.git",
@@ -24,6 +28,18 @@
24
28
  "./decimal": {
25
29
  "types": "./dist/decimal.d.ts",
26
30
  "import": "./dist/decimal.js"
31
+ },
32
+ "./types": {
33
+ "types": "./dist/types.d.ts",
34
+ "import": "./dist/types.js"
35
+ },
36
+ "./media": {
37
+ "types": "./dist/media.d.ts",
38
+ "import": "./dist/media.js"
39
+ },
40
+ "./language": {
41
+ "types": "./dist/language.d.ts",
42
+ "import": "./dist/language.js"
27
43
  }
28
44
  },
29
45
  "publishConfig": {
@@ -34,11 +50,42 @@
34
50
  "generate": "bun scripts/generate-public-catalog.ts",
35
51
  "build": "bun run generate && tsup",
36
52
  "test": "vitest run --root ../.. packages/sdk/tests",
53
+ "verify:video-schema-drift": "bun scripts/verify-video-schema-drift.ts",
37
54
  "prepack": "bun run build"
38
55
  },
39
56
  "devDependencies": {
57
+ "@ai-sdk/anthropic": "4.0.30",
58
+ "@ai-sdk/google": "4.0.12",
59
+ "@ai-sdk/openai": "4.0.11",
60
+ "@ai-sdk/provider": "4.0.2",
61
+ "@ai-sdk/provider-utils": "5.0.21",
40
62
  "@nexra/contracts": "workspace:*",
63
+ "@nexra/models": "workspace:*",
41
64
  "tsup": "8.5.1",
42
65
  "typescript": "5.9.3"
66
+ },
67
+ "peerDependencies": {
68
+ "@ai-sdk/anthropic": "^4.0.30",
69
+ "@ai-sdk/google": "^4.0.12",
70
+ "@ai-sdk/openai": "^4.0.11",
71
+ "@ai-sdk/provider": "^4.0.2",
72
+ "@ai-sdk/provider-utils": "^5.0.21"
73
+ },
74
+ "peerDependenciesMeta": {
75
+ "@ai-sdk/anthropic": {
76
+ "optional": true
77
+ },
78
+ "@ai-sdk/google": {
79
+ "optional": true
80
+ },
81
+ "@ai-sdk/openai": {
82
+ "optional": true
83
+ },
84
+ "@ai-sdk/provider": {
85
+ "optional": true
86
+ },
87
+ "@ai-sdk/provider-utils": {
88
+ "optional": true
89
+ }
43
90
  }
44
91
  }