@decartai/sdk 0.1.8 → 0.1.10

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.
@@ -143,7 +143,7 @@ interface PromptInput {
143
143
  * This allows different models to have field-specific documentation while maintaining type safety.
144
144
  * Specific models are checked first, then falls back to category-based selection.
145
145
  */
146
- type ModelSpecificInputs<T extends ModelDefinition> = T["name"] extends "lucy-pro-i2i" | "lucy-image-2" ? ImageEditingInputs : T["name"] extends "lucy-restyle-v2v" | "lucy-restyle-2" ? VideoRestyleInputs : T["name"] extends "lucy-2.1" | "lucy-2.1-vton" | "lucy-vton-2" | "lucy-vton-3" | "lucy-vton" | "lucy-2.1-vton-2" | "lucy-vton-latest" ? VideoEdit2Inputs : T["name"] extends "lucy-pro-v2v" | "lucy-clip" ? VideoEditInputs : T["name"] extends ImageModels ? ImageGenerationInputs : T["name"] extends VideoModels ? VideoModelInputs : PromptInput;
146
+ type ModelSpecificInputs<T extends ModelDefinition> = T["name"] extends "lucy-pro-i2i" | "lucy-image-2" ? ImageEditingInputs : T["name"] extends "lucy-restyle-v2v" | "lucy-restyle-2" ? VideoRestyleInputs : T["name"] extends "lucy-2.1" | "lucy-vton-2" | "lucy-vton-3" | "lucy-2.1-vton-2" | "lucy-vton-latest" ? VideoEdit2Inputs : T["name"] extends "lucy-pro-v2v" | "lucy-clip" ? VideoEditInputs : T["name"] extends ImageModels ? ImageGenerationInputs : T["name"] extends VideoModels ? VideoModelInputs : PromptInput;
147
147
  interface ProcessInputs {
148
148
  /**
149
149
  * Random seed for reproducible results.
@@ -98,6 +98,7 @@ type RealTimeClient = {
98
98
  * - `null`: clear the current image.
99
99
  */
100
100
  setImage: (image: Blob | File | string | null, options?: ImageSetOptions) => Promise<void>;
101
+ replaceVideoTrack: (track: MediaStreamTrack) => Promise<void>;
101
102
  };
102
103
  //#endregion
103
104
  export { Events, RealTimeClient, RealTimeClientConnectOptions, RealTimeClientInitialState };
@@ -64,6 +64,13 @@ var MediaChannel = class {
64
64
  await this.publishTracks(this.config.localStream);
65
65
  this.config.observability?.endPhase("publish-local-track", { success: true });
66
66
  }
67
+ async replaceVideoTrack(track) {
68
+ const room = this.room;
69
+ if (!room) throw new Error("Cannot replace video track: media channel is not connected");
70
+ const videoTrack = [...room.localParticipant.videoTrackPublications.values()][0]?.videoTrack;
71
+ if (!videoTrack) throw new Error("Cannot replace video track: no published video track");
72
+ await videoTrack.replaceTrack(track);
73
+ }
67
74
  disconnect() {
68
75
  const room = this.room;
69
76
  this.room = null;
@@ -50,9 +50,13 @@ const realtimeMethods = (session, imageToBase64) => {
50
50
  timeout: REALTIME_CONFIG.methods.promptTimeoutMs
51
51
  });
52
52
  };
53
+ const replaceVideoTrack = async (track) => {
54
+ await session.replaceVideoTrack(track);
55
+ };
53
56
  return {
54
57
  set,
55
- setPrompt
58
+ setPrompt,
59
+ replaceVideoTrack
56
60
  };
57
61
  };
58
62
  //#endregion
@@ -71,6 +71,12 @@ var StreamSession = class {
71
71
  this.assertConnected();
72
72
  return this.signaling.setImage(payload, opts);
73
73
  }
74
+ async replaceVideoTrack(track) {
75
+ this.assertConnected();
76
+ await this.media.replaceVideoTrack(track);
77
+ const previous = this.config.localStream;
78
+ this.config.localStream = new MediaStream(previous ? [track, ...previous.getAudioTracks()] : [track]);
79
+ }
74
80
  disconnect() {
75
81
  this.disposed = true;
76
82
  this.tearDown();
@@ -162,10 +168,6 @@ var StreamSession = class {
162
168
  prompt: this.config.initialPrompt.text,
163
169
  enhance: this.config.initialPrompt.enhance
164
170
  };
165
- if (this.config.localStream) return {
166
- image: null,
167
- prompt: null
168
- };
169
171
  }
170
172
  wireSignalingEvents() {
171
173
  this.signaling.on("queuePosition", (qp) => {
@@ -4,7 +4,6 @@ import { z } from "zod";
4
4
 
5
5
  declare const canonicalModelSchema: z.ZodEnum<{
6
6
  "lucy-2.1": "lucy-2.1";
7
- "lucy-2.1-vton": "lucy-2.1-vton";
8
7
  "lucy-vton-2": "lucy-vton-2";
9
8
  "lucy-vton-3": "lucy-vton-3";
10
9
  "lucy-restyle-2": "lucy-restyle-2";
@@ -18,7 +17,6 @@ type CanonicalModel = z.infer<typeof canonicalModelSchema>;
18
17
  */
19
18
  declare const modelAliases: {
20
19
  readonly mirage_v2: "lucy-restyle-2";
21
- readonly "lucy-vton": "lucy-2.1-vton";
22
20
  readonly "lucy-2.1-vton-2": "lucy-vton-2";
23
21
  readonly "lucy-pro-v2v": "lucy-clip";
24
22
  readonly "lucy-restyle-v2v": "lucy-restyle-2";
@@ -26,10 +24,10 @@ declare const modelAliases: {
26
24
  };
27
25
  /** @internal Test-only helper to reset deprecation warning tracking */
28
26
 
29
- declare const realtimeModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-2.1-vton">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"mirage_v2">, z.ZodLiteral<"lucy-vton">, z.ZodLiteral<"lucy-2.1-vton-2">]>;
30
- declare const videoModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-clip">, z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-2.1-vton">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"lucy-clip-latest">, z.ZodLiteral<"lucy-vton">, z.ZodLiteral<"lucy-2.1-vton-2">, z.ZodLiteral<"lucy-pro-v2v">, z.ZodLiteral<"lucy-restyle-v2v">]>;
27
+ declare const realtimeModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"mirage_v2">, z.ZodLiteral<"lucy-2.1-vton-2">]>;
28
+ declare const videoModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-clip">, z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"lucy-clip-latest">, z.ZodLiteral<"lucy-2.1-vton-2">, z.ZodLiteral<"lucy-pro-v2v">, z.ZodLiteral<"lucy-restyle-v2v">]>;
31
29
  declare const imageModels: z.ZodUnion<readonly [z.ZodLiteral<"lucy-image-2">, z.ZodLiteral<"lucy-image-latest">, z.ZodLiteral<"lucy-pro-i2i">]>;
32
- declare const modelSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-2.1-vton">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"mirage_v2">, z.ZodLiteral<"lucy-vton">, z.ZodLiteral<"lucy-2.1-vton-2">]>, z.ZodUnion<readonly [z.ZodLiteral<"lucy-clip">, z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-2.1-vton">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"lucy-clip-latest">, z.ZodLiteral<"lucy-vton">, z.ZodLiteral<"lucy-2.1-vton-2">, z.ZodLiteral<"lucy-pro-v2v">, z.ZodLiteral<"lucy-restyle-v2v">]>, z.ZodUnion<readonly [z.ZodLiteral<"lucy-image-2">, z.ZodLiteral<"lucy-image-latest">, z.ZodLiteral<"lucy-pro-i2i">]>]>;
30
+ declare const modelSchema: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"mirage_v2">, z.ZodLiteral<"lucy-2.1-vton-2">]>, z.ZodUnion<readonly [z.ZodLiteral<"lucy-clip">, z.ZodLiteral<"lucy-2.1">, z.ZodLiteral<"lucy-vton-2">, z.ZodLiteral<"lucy-vton-3">, z.ZodLiteral<"lucy-restyle-2">, z.ZodLiteral<"lucy-latest">, z.ZodLiteral<"lucy-vton-latest">, z.ZodLiteral<"lucy-restyle-latest">, z.ZodLiteral<"lucy-clip-latest">, z.ZodLiteral<"lucy-2.1-vton-2">, z.ZodLiteral<"lucy-pro-v2v">, z.ZodLiteral<"lucy-restyle-v2v">]>, z.ZodUnion<readonly [z.ZodLiteral<"lucy-image-2">, z.ZodLiteral<"lucy-image-latest">, z.ZodLiteral<"lucy-pro-i2i">]>]>;
33
31
  type Model = z.infer<typeof modelSchema>;
34
32
  type RealTimeModels = z.infer<typeof realtimeModels>;
35
33
  type VideoModels = z.infer<typeof videoModels>;
@@ -119,22 +117,6 @@ declare const modelInputSchemas: {
119
117
  resolution: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"720p">>>;
120
118
  enhance_prompt: z.ZodOptional<z.ZodBoolean>;
121
119
  }, z.core.$strip>;
122
- readonly "lucy-2.1-vton": z.ZodObject<{
123
- prompt: z.ZodString;
124
- reference_image: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
125
- uri: z.ZodString;
126
- type: z.ZodString;
127
- name: z.ZodString;
128
- }, z.core.$strip>]>>;
129
- data: z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
130
- uri: z.ZodString;
131
- type: z.ZodString;
132
- name: z.ZodString;
133
- }, z.core.$strip>]>;
134
- seed: z.ZodOptional<z.ZodNumber>;
135
- resolution: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"720p">>>;
136
- enhance_prompt: z.ZodOptional<z.ZodBoolean>;
137
- }, z.core.$strip>;
138
120
  readonly "lucy-vton-2": z.ZodObject<{
139
121
  prompt: z.ZodString;
140
122
  reference_image: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
@@ -250,22 +232,6 @@ declare const modelInputSchemas: {
250
232
  }>>>;
251
233
  enhance_prompt: z.ZodOptional<z.ZodBoolean>;
252
234
  }, z.core.$strip>;
253
- readonly "lucy-vton": z.ZodObject<{
254
- prompt: z.ZodString;
255
- reference_image: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
256
- uri: z.ZodString;
257
- type: z.ZodString;
258
- name: z.ZodString;
259
- }, z.core.$strip>]>>;
260
- data: z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
261
- uri: z.ZodString;
262
- type: z.ZodString;
263
- name: z.ZodString;
264
- }, z.core.$strip>]>;
265
- seed: z.ZodOptional<z.ZodNumber>;
266
- resolution: z.ZodDefault<z.ZodOptional<z.ZodLiteral<"720p">>>;
267
- enhance_prompt: z.ZodOptional<z.ZodBoolean>;
268
- }, z.core.$strip>;
269
235
  readonly "lucy-2.1-vton-2": z.ZodObject<{
270
236
  prompt: z.ZodString;
271
237
  reference_image: z.ZodOptional<z.ZodUnion<readonly [z.ZodCustom<File, File>, z.ZodCustom<Blob, Blob>, z.ZodCustom<ReadableStream<unknown>, ReadableStream<unknown>>, z.ZodCustom<URL, URL>, z.ZodURL, z.ZodObject<{
@@ -395,7 +361,6 @@ declare const models: {
395
361
  *
396
362
  * Available options:
397
363
  * - `"lucy-2.1"` - Lucy 2.1 realtime video editing
398
- * - `"lucy-2.1-vton"` - Lucy 2.1 virtual try-on
399
364
  * - `"lucy-vton-2"` - Lucy virtual try-on 2
400
365
  * - `"lucy-vton-3"` - Lucy virtual try-on 3
401
366
  * - `"lucy-restyle-2"` - Realtime video restyling
@@ -407,7 +372,6 @@ declare const models: {
407
372
  * Available options:
408
373
  * - `"lucy-clip"` - Video-to-video editing
409
374
  * - `"lucy-2.1"` - Long-form video editing (Lucy 2.1)
410
- * - `"lucy-2.1-vton"` - Virtual try-on video editing
411
375
  * - `"lucy-vton-2"` - Virtual try-on 2 video editing
412
376
  * - `"lucy-vton-3"` - Virtual try-on 3 video editing
413
377
  * - `"lucy-restyle-2"` - Video restyling
@@ -3,7 +3,6 @@ import { z } from "zod";
3
3
  //#region src/shared/model.ts
4
4
  const CANONICAL_MODEL_NAMES = [
5
5
  "lucy-2.1",
6
- "lucy-2.1-vton",
7
6
  "lucy-vton-2",
8
7
  "lucy-vton-3",
9
8
  "lucy-restyle-2",
@@ -12,7 +11,6 @@ const CANONICAL_MODEL_NAMES = [
12
11
  ];
13
12
  const CANONICAL_REALTIME_MODEL_NAMES = [
14
13
  "lucy-2.1",
15
- "lucy-2.1-vton",
16
14
  "lucy-vton-2",
17
15
  "lucy-vton-3",
18
16
  "lucy-restyle-2"
@@ -20,7 +18,6 @@ const CANONICAL_REALTIME_MODEL_NAMES = [
20
18
  const CANONICAL_VIDEO_MODEL_NAMES = [
21
19
  "lucy-clip",
22
20
  "lucy-2.1",
23
- "lucy-2.1-vton",
24
21
  "lucy-vton-2",
25
22
  "lucy-vton-3",
26
23
  "lucy-restyle-2"
@@ -36,7 +33,6 @@ const canonicalModelSchema = z.enum(CANONICAL_MODEL_NAMES);
36
33
  */
37
34
  const modelAliases = {
38
35
  mirage_v2: "lucy-restyle-2",
39
- "lucy-vton": "lucy-2.1-vton",
40
36
  "lucy-2.1-vton-2": "lucy-vton-2",
41
37
  "lucy-pro-v2v": "lucy-clip",
42
38
  "lucy-restyle-v2v": "lucy-restyle-2",
@@ -52,7 +48,6 @@ function warnDeprecated(model) {
52
48
  }
53
49
  const realtimeModels = z.union([
54
50
  z.literal("lucy-2.1"),
55
- z.literal("lucy-2.1-vton"),
56
51
  z.literal("lucy-vton-2"),
57
52
  z.literal("lucy-vton-3"),
58
53
  z.literal("lucy-restyle-2"),
@@ -60,13 +55,11 @@ const realtimeModels = z.union([
60
55
  z.literal("lucy-vton-latest"),
61
56
  z.literal("lucy-restyle-latest"),
62
57
  z.literal("mirage_v2"),
63
- z.literal("lucy-vton"),
64
58
  z.literal("lucy-2.1-vton-2")
65
59
  ]);
66
60
  const videoModels = z.union([
67
61
  z.literal("lucy-clip"),
68
62
  z.literal("lucy-2.1"),
69
- z.literal("lucy-2.1-vton"),
70
63
  z.literal("lucy-vton-2"),
71
64
  z.literal("lucy-vton-3"),
72
65
  z.literal("lucy-restyle-2"),
@@ -74,7 +67,6 @@ const videoModels = z.union([
74
67
  z.literal("lucy-vton-latest"),
75
68
  z.literal("lucy-restyle-latest"),
76
69
  z.literal("lucy-clip-latest"),
77
- z.literal("lucy-vton"),
78
70
  z.literal("lucy-2.1-vton-2"),
79
71
  z.literal("lucy-pro-v2v"),
80
72
  z.literal("lucy-restyle-v2v")
@@ -186,7 +178,6 @@ const modelInputSchemas = {
186
178
  "lucy-image-2": imageEditSchema,
187
179
  "lucy-restyle-2": restyleSchema,
188
180
  "lucy-2.1": videoEdit2Schema,
189
- "lucy-2.1-vton": videoEdit2Schema,
190
181
  "lucy-vton-2": videoEdit2Schema,
191
182
  "lucy-vton-3": videoEdit2Schema,
192
183
  "lucy-latest": videoEdit2Schema,
@@ -194,7 +185,6 @@ const modelInputSchemas = {
194
185
  "lucy-restyle-latest": restyleSchema,
195
186
  "lucy-clip-latest": videoEditSchema,
196
187
  "lucy-image-latest": imageEditSchema,
197
- "lucy-vton": videoEdit2Schema,
198
188
  "lucy-2.1-vton-2": videoEdit2Schema,
199
189
  "lucy-pro-v2v": videoEditSchema,
200
190
  "lucy-pro-i2i": imageEditSchema,
@@ -231,17 +221,6 @@ const _models = {
231
221
  height: 624,
232
222
  inputSchema: z.object({})
233
223
  },
234
- "lucy-2.1-vton": {
235
- urlPath: "/v1/stream",
236
- name: "lucy-2.1-vton",
237
- fps: {
238
- ideal: 30,
239
- max: 30
240
- },
241
- width: 1088,
242
- height: 624,
243
- inputSchema: z.object({})
244
- },
245
224
  "lucy-vton-2": {
246
225
  urlPath: "/v1/stream",
247
226
  name: "lucy-vton-2",
@@ -319,17 +298,6 @@ const _models = {
319
298
  height: 704,
320
299
  inputSchema: z.object({})
321
300
  },
322
- "lucy-vton": {
323
- urlPath: "/v1/stream",
324
- name: "lucy-vton",
325
- fps: {
326
- ideal: 30,
327
- max: 30
328
- },
329
- width: 1088,
330
- height: 624,
331
- inputSchema: z.object({})
332
- },
333
301
  "lucy-2.1-vton-2": {
334
302
  urlPath: "/v1/stream",
335
303
  name: "lucy-2.1-vton-2",
@@ -390,15 +358,6 @@ const _models = {
390
358
  height: 624,
391
359
  inputSchema: modelInputSchemas["lucy-2.1"]
392
360
  },
393
- "lucy-2.1-vton": {
394
- urlPath: "/v1/generate/lucy-2.1-vton",
395
- queueUrlPath: "/v1/jobs/lucy-2.1-vton",
396
- name: "lucy-2.1-vton",
397
- fps: 20,
398
- width: 1088,
399
- height: 624,
400
- inputSchema: modelInputSchemas["lucy-2.1-vton"]
401
- },
402
361
  "lucy-vton-2": {
403
362
  urlPath: "/v1/generate/lucy-vton-2",
404
363
  queueUrlPath: "/v1/jobs/lucy-vton-2",
@@ -462,15 +421,6 @@ const _models = {
462
421
  height: 704,
463
422
  inputSchema: modelInputSchemas["lucy-clip-latest"]
464
423
  },
465
- "lucy-vton": {
466
- urlPath: "/v1/generate/lucy-vton",
467
- queueUrlPath: "/v1/jobs/lucy-vton",
468
- name: "lucy-vton",
469
- fps: 20,
470
- width: 1088,
471
- height: 624,
472
- inputSchema: modelInputSchemas["lucy-vton"]
473
- },
474
424
  "lucy-2.1-vton-2": {
475
425
  urlPath: "/v1/generate/lucy-2.1-vton-2",
476
426
  queueUrlPath: "/v1/jobs/lucy-2.1-vton-2",
@@ -25,6 +25,8 @@ type CreateTokenOptions = {
25
25
  };
26
26
  type CreateTokenResponse = {
27
27
  apiKey: string;
28
+ /** Signed JWT mirroring `apiKey`, verifiable offline via the public JWKS. */
29
+ token?: string;
28
30
  expiresAt: string;
29
31
  /** Present when `allowedModels` and/or `allowedOrigins` were set on the request. */
30
32
  permissions?: {
@@ -48,7 +50,7 @@ type TokensClient = {
48
50
  * ```ts
49
51
  * const client = createDecartClient({ apiKey: process.env.DECART_API_KEY });
50
52
  * const token = await client.tokens.create();
51
- * // Returns: { apiKey: "ek_...", expiresAt: "2024-12-15T12:10:00Z" }
53
+ * // Returns: { apiKey: "ek_...", token: "eyJhbGciOiJFZERTQS...", expiresAt: "2024-12-15T12:10:00Z" }
52
54
  *
53
55
  * // With metadata:
54
56
  * const token = await client.tokens.create({ metadata: { role: "viewer" } });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decartai/sdk",
3
- "version": "0.1.8",
3
+ "version": "0.1.10",
4
4
  "description": "Decart's JavaScript SDK",
5
5
  "type": "module",
6
6
  "license": "MIT",