@scenario-labs/sdk 0.3.0 → 1.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.
Files changed (232) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +40 -8
  3. package/client.d.mts +36 -16
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +36 -16
  6. package/client.d.ts.map +1 -1
  7. package/client.js +10 -0
  8. package/client.js.map +1 -1
  9. package/client.mjs +10 -0
  10. package/client.mjs.map +1 -1
  11. package/core/pagination.d.mts +153 -0
  12. package/core/pagination.d.mts.map +1 -0
  13. package/core/pagination.d.ts +153 -0
  14. package/core/pagination.d.ts.map +1 -0
  15. package/core/pagination.js +276 -0
  16. package/core/pagination.js.map +1 -0
  17. package/core/pagination.mjs +263 -0
  18. package/core/pagination.mjs.map +1 -0
  19. package/index.d.mts +5 -1
  20. package/index.d.mts.map +1 -1
  21. package/index.d.ts +5 -1
  22. package/index.d.ts.map +1 -1
  23. package/index.js +14 -1
  24. package/index.js.map +1 -1
  25. package/index.mjs +5 -1
  26. package/index.mjs.map +1 -1
  27. package/lib/asset.d.mts +55 -0
  28. package/lib/asset.d.mts.map +1 -0
  29. package/lib/asset.d.ts +55 -0
  30. package/lib/asset.d.ts.map +1 -0
  31. package/lib/asset.js +60 -0
  32. package/lib/asset.js.map +1 -0
  33. package/lib/asset.mjs +54 -0
  34. package/lib/asset.mjs.map +1 -0
  35. package/lib/job.d.mts +13 -1
  36. package/lib/job.d.mts.map +1 -1
  37. package/lib/job.d.ts +13 -1
  38. package/lib/job.d.ts.map +1 -1
  39. package/lib/job.js +18 -1
  40. package/lib/job.js.map +1 -1
  41. package/lib/job.mjs +16 -0
  42. package/lib/job.mjs.map +1 -1
  43. package/lib/models.d.mts +34 -2
  44. package/lib/models.d.mts.map +1 -1
  45. package/lib/models.d.ts +34 -2
  46. package/lib/models.d.ts.map +1 -1
  47. package/lib/models.js +39 -2
  48. package/lib/models.js.map +1 -1
  49. package/lib/models.mjs +37 -1
  50. package/lib/models.mjs.map +1 -1
  51. package/lib/scenario.d.mts +14 -0
  52. package/lib/scenario.d.mts.map +1 -1
  53. package/lib/scenario.d.ts +14 -0
  54. package/lib/scenario.d.ts.map +1 -1
  55. package/lib/scenario.js +14 -0
  56. package/lib/scenario.js.map +1 -1
  57. package/lib/scenario.mjs +14 -0
  58. package/lib/scenario.mjs.map +1 -1
  59. package/lib/upload.d.mts +143 -0
  60. package/lib/upload.d.mts.map +1 -0
  61. package/lib/upload.d.ts +143 -0
  62. package/lib/upload.d.ts.map +1 -0
  63. package/lib/upload.js +242 -0
  64. package/lib/upload.js.map +1 -0
  65. package/lib/upload.mjs +203 -0
  66. package/lib/upload.mjs.map +1 -0
  67. package/lib/workflow.d.mts +13 -2
  68. package/lib/workflow.d.mts.map +1 -1
  69. package/lib/workflow.d.ts +13 -2
  70. package/lib/workflow.d.ts.map +1 -1
  71. package/lib/workflow.js +17 -4
  72. package/lib/workflow.js.map +1 -1
  73. package/lib/workflow.mjs +17 -4
  74. package/lib/workflow.mjs.map +1 -1
  75. package/lib/workflow_import_validator.d.mts +40 -0
  76. package/lib/workflow_import_validator.d.mts.map +1 -0
  77. package/lib/workflow_import_validator.d.ts +40 -0
  78. package/lib/workflow_import_validator.d.ts.map +1 -0
  79. package/lib/workflow_import_validator.js +69 -0
  80. package/lib/workflow_import_validator.js.map +1 -0
  81. package/lib/workflow_import_validator.mjs +64 -0
  82. package/lib/workflow_import_validator.mjs.map +1 -0
  83. package/package.json +11 -1
  84. package/pagination.d.mts +2 -0
  85. package/pagination.d.mts.map +1 -0
  86. package/pagination.d.ts +2 -0
  87. package/pagination.d.ts.map +1 -0
  88. package/pagination.js +6 -0
  89. package/pagination.js.map +1 -0
  90. package/pagination.mjs +2 -0
  91. package/pagination.mjs.map +1 -0
  92. package/resources/assets/assets.d.mts +646 -669
  93. package/resources/assets/assets.d.mts.map +1 -1
  94. package/resources/assets/assets.d.ts +646 -669
  95. package/resources/assets/assets.d.ts.map +1 -1
  96. package/resources/assets/assets.js +3 -2
  97. package/resources/assets/assets.js.map +1 -1
  98. package/resources/assets/assets.mjs +3 -2
  99. package/resources/assets/assets.mjs.map +1 -1
  100. package/resources/assets/index.d.mts +1 -1
  101. package/resources/assets/index.d.mts.map +1 -1
  102. package/resources/assets/index.d.ts +1 -1
  103. package/resources/assets/index.d.ts.map +1 -1
  104. package/resources/assets/index.js.map +1 -1
  105. package/resources/assets/index.mjs.map +1 -1
  106. package/resources/assets/public.d.mts +12 -12
  107. package/resources/assets/public.d.mts.map +1 -1
  108. package/resources/assets/public.d.ts +12 -12
  109. package/resources/assets/public.d.ts.map +1 -1
  110. package/resources/collections/collections.d.mts +38 -49
  111. package/resources/collections/collections.d.mts.map +1 -1
  112. package/resources/collections/collections.d.ts +38 -49
  113. package/resources/collections/collections.d.ts.map +1 -1
  114. package/resources/collections/collections.js +5 -1
  115. package/resources/collections/collections.js.map +1 -1
  116. package/resources/collections/collections.mjs +5 -1
  117. package/resources/collections/collections.mjs.map +1 -1
  118. package/resources/collections/index.d.mts +1 -1
  119. package/resources/collections/index.d.mts.map +1 -1
  120. package/resources/collections/index.d.ts +1 -1
  121. package/resources/collections/index.d.ts.map +1 -1
  122. package/resources/collections/index.js.map +1 -1
  123. package/resources/collections/index.mjs.map +1 -1
  124. package/resources/generate.d.mts +1027 -242
  125. package/resources/generate.d.mts.map +1 -1
  126. package/resources/generate.d.ts +1027 -242
  127. package/resources/generate.d.ts.map +1 -1
  128. package/resources/generate.js +7 -0
  129. package/resources/generate.js.map +1 -1
  130. package/resources/generate.mjs +7 -0
  131. package/resources/generate.mjs.map +1 -1
  132. package/resources/index.d.mts +8 -8
  133. package/resources/index.d.mts.map +1 -1
  134. package/resources/index.d.ts +8 -8
  135. package/resources/index.d.ts.map +1 -1
  136. package/resources/index.js.map +1 -1
  137. package/resources/index.mjs.map +1 -1
  138. package/resources/jobs.d.mts +369 -380
  139. package/resources/jobs.d.mts.map +1 -1
  140. package/resources/jobs.d.ts +369 -380
  141. package/resources/jobs.d.ts.map +1 -1
  142. package/resources/jobs.js +2 -1
  143. package/resources/jobs.js.map +1 -1
  144. package/resources/jobs.mjs +2 -1
  145. package/resources/jobs.mjs.map +1 -1
  146. package/resources/models/description.d.mts +2 -2
  147. package/resources/models/description.d.mts.map +1 -1
  148. package/resources/models/description.d.ts +2 -2
  149. package/resources/models/description.d.ts.map +1 -1
  150. package/resources/models/examples.d.mts +4 -4
  151. package/resources/models/examples.d.mts.map +1 -1
  152. package/resources/models/examples.d.ts +4 -4
  153. package/resources/models/examples.d.ts.map +1 -1
  154. package/resources/models/index.d.mts +1 -1
  155. package/resources/models/index.d.mts.map +1 -1
  156. package/resources/models/index.d.ts +1 -1
  157. package/resources/models/index.d.ts.map +1 -1
  158. package/resources/models/index.js.map +1 -1
  159. package/resources/models/index.mjs.map +1 -1
  160. package/resources/models/models.d.mts +845 -856
  161. package/resources/models/models.d.mts.map +1 -1
  162. package/resources/models/models.d.ts +845 -856
  163. package/resources/models/models.d.ts.map +1 -1
  164. package/resources/models/models.js +2 -1
  165. package/resources/models/models.js.map +1 -1
  166. package/resources/models/models.mjs +2 -1
  167. package/resources/models/models.mjs.map +1 -1
  168. package/resources/models/train.d.mts +2 -2
  169. package/resources/models/train.d.mts.map +1 -1
  170. package/resources/models/train.d.ts +2 -2
  171. package/resources/models/train.d.ts.map +1 -1
  172. package/resources/search.d.mts +215 -295
  173. package/resources/search.d.mts.map +1 -1
  174. package/resources/search.d.ts +215 -295
  175. package/resources/search.d.ts.map +1 -1
  176. package/resources/search.js +9 -2
  177. package/resources/search.js.map +1 -1
  178. package/resources/search.mjs +9 -2
  179. package/resources/search.mjs.map +1 -1
  180. package/resources/tags.d.mts +23 -35
  181. package/resources/tags.d.mts.map +1 -1
  182. package/resources/tags.d.ts +23 -35
  183. package/resources/tags.d.ts.map +1 -1
  184. package/resources/tags.js +2 -1
  185. package/resources/tags.js.map +1 -1
  186. package/resources/tags.mjs +2 -1
  187. package/resources/tags.mjs.map +1 -1
  188. package/resources/usages.d.mts +3 -3
  189. package/resources/usages.d.mts.map +1 -1
  190. package/resources/usages.d.ts +3 -3
  191. package/resources/usages.d.ts.map +1 -1
  192. package/resources/workflows.d.mts +688 -704
  193. package/resources/workflows.d.mts.map +1 -1
  194. package/resources/workflows.d.ts +688 -704
  195. package/resources/workflows.d.ts.map +1 -1
  196. package/resources/workflows.js +5 -1
  197. package/resources/workflows.js.map +1 -1
  198. package/resources/workflows.mjs +5 -1
  199. package/resources/workflows.mjs.map +1 -1
  200. package/src/client.ts +107 -2
  201. package/src/core/pagination.ts +497 -0
  202. package/src/index.ts +11 -1
  203. package/src/lib/asset.ts +85 -0
  204. package/src/lib/job.ts +28 -1
  205. package/src/lib/models.ts +62 -2
  206. package/src/lib/scenario.ts +14 -0
  207. package/src/lib/upload.ts +344 -0
  208. package/src/lib/workflow.ts +29 -4
  209. package/src/lib/workflow_import_validator.ts +104 -0
  210. package/src/pagination.ts +2 -0
  211. package/src/resources/assets/assets.ts +930 -909
  212. package/src/resources/assets/index.ts +2 -0
  213. package/src/resources/assets/public.ts +17 -7
  214. package/src/resources/collections/collections.ts +45 -54
  215. package/src/resources/collections/index.ts +1 -0
  216. package/src/resources/generate.ts +1227 -136
  217. package/src/resources/index.ts +11 -1
  218. package/src/resources/jobs.ts +613 -622
  219. package/src/resources/models/description.ts +4 -0
  220. package/src/resources/models/examples.ts +8 -0
  221. package/src/resources/models/index.ts +1 -0
  222. package/src/resources/models/models.ts +1066 -1064
  223. package/src/resources/models/train.ts +4 -0
  224. package/src/resources/search.ts +239 -327
  225. package/src/resources/tags.ts +32 -39
  226. package/src/resources/usages.ts +5 -0
  227. package/src/resources/workflows.ts +850 -864
  228. package/src/version.ts +1 -1
  229. package/version.d.mts +1 -1
  230. package/version.d.ts +1 -1
  231. package/version.js +1 -1
  232. package/version.mjs +1 -1
package/lib/models.mjs CHANGED
@@ -1,6 +1,34 @@
1
1
  import { Models } from "../resources/models/models.mjs";
2
2
  import { Train } from "../resources/models/train.mjs";
3
3
  import { enhanceJob } from "./job.mjs";
4
+ /**
5
+ * Enhanced Model entity with helper methods.
6
+ * Has all original model fields plus `.run()`.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const { model } = await client.models.retrieve(modelId);
11
+ * const gen = await model.run({ body: { prompt: 'a red car' } });
12
+ * const completed = await gen.job.wait();
13
+ * ```
14
+ */
15
+ export class ModelEntity {
16
+ /**
17
+ * Generate with this model. Shortcut for
18
+ * `client.generate.runModel(this.id, params)`.
19
+ *
20
+ * Returns an enhanced response where `response.job` has `.wait()`.
21
+ */
22
+ run(params, options) {
23
+ return this._client.generate.runModel(this.id, params, options);
24
+ }
25
+ /** @internal Create a ModelEntity wrapping raw model data. */
26
+ static from(client, data) {
27
+ const entity = Object.assign(Object.create(ModelEntity.prototype), data);
28
+ Object.defineProperty(entity, '_client', { value: client, enumerable: false });
29
+ return entity;
30
+ }
31
+ }
4
32
  /**
5
33
  * Enhanced Train resource.
6
34
  * `trigger()` returns a response where `job` has `.wait()`.
@@ -12,12 +40,20 @@ export class EnhancedTrain extends Train {
12
40
  }
13
41
  /**
14
42
  * Enhanced Models resource.
15
- * All original methods inherited. `train` is an {@link EnhancedTrain}.
43
+ * All original methods inherited.
44
+ * - `train` is an {@link EnhancedTrain}
45
+ * - `retrieve()` returns a response where `model` has `.run()`
16
46
  */
17
47
  export class EnhancedModels extends Models {
18
48
  constructor() {
19
49
  super(...arguments);
20
50
  this.train = new EnhancedTrain(this._client);
21
51
  }
52
+ retrieve(modelID, query = {}, options) {
53
+ return super.retrieve(modelID, query, options)._thenUnwrap((data) => ({
54
+ ...data,
55
+ model: ModelEntity.from(this._client, data.model),
56
+ }));
57
+ }
22
58
  }
23
59
  //# sourceMappingURL=models.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.mjs","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"OAEO,EAAE,MAAM,EAAE;OACV,EAAE,KAAK,EAAsD;OAC7D,EAAgB,UAAU,EAAE;AAEnC;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,OAAO,CACd,OAAe,EACf,MAA0B,EAC1B,OAAwB;QAExB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,MAAM;IAA1C;;QACW,UAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;CAAA"}
1
+ {"version":3,"file":"models.mjs","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"OAGO,EAAE,MAAM,EAAwD;OAChE,EAAE,KAAK,EAAsD;OAC7D,EAAgB,UAAU,EAAE;AAInC;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IAGtB;;;;;OAKG;IACH,GAAG,CAED,MAA8B,EAC9B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,8DAA8D;IAC9D,MAAM,CAAC,IAAI,CACT,MAAgB,EAChB,IAAiC;QAEjC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;QACzE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAOD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAC7B,OAAO,CACd,OAAe,EACf,MAA0B,EAC1B,OAAwB;QAExB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,MAAM;IAA1C;;QACW,UAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAYlE,CAAC;IAVU,QAAQ,CACf,OAAe,EACf,QAAgD,EAAE,EAClD,OAAwB;QAExB,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpE,GAAG,IAAI;YACP,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAmB,EAAE,IAAI,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
@@ -1,6 +1,9 @@
1
1
  import { Scenario as BaseScenario } from "../client.mjs";
2
+ import { EnhancedAssets } from "./asset.mjs";
2
3
  import { EnhancedGenerate } from "./generate.mjs";
4
+ import { EnhancedJobs } from "./job.mjs";
3
5
  import { EnhancedModels } from "./models.mjs";
6
+ import { EnhancedUploads } from "./upload.mjs";
4
7
  import { EnhancedWorkflows } from "./workflow.mjs";
5
8
  /**
6
9
  * Enhanced Scenario client.
@@ -29,11 +32,22 @@ import { EnhancedWorkflows } from "./workflow.mjs";
29
32
  * // Enhanced: generate job.wait()
30
33
  * const gen = await client.generate.runModel(modelId, { body });
31
34
  * const done = await gen.job.wait();
35
+ *
36
+ * // Enhanced: upload.wait()
37
+ * const res = await client.uploads.retrieve(uploadId);
38
+ * const imported = await res.upload.wait();
39
+ *
40
+ * // Enhanced: asset.download()
41
+ * const a = await client.assets.retrieve(assetId);
42
+ * const bytes = await a.asset.download();
32
43
  * ```
33
44
  */
34
45
  export declare class Scenario extends BaseScenario {
35
46
  workflows: EnhancedWorkflows;
36
47
  generate: EnhancedGenerate;
37
48
  models: EnhancedModels;
49
+ uploads: EnhancedUploads;
50
+ assets: EnhancedAssets;
51
+ jobs: EnhancedJobs;
38
52
  }
39
53
  //# sourceMappingURL=scenario.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.d.mts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,gBAAgB,EAAE;OACpB,EAAE,cAAc,EAAE;OAClB,EAAE,iBAAiB,EAAE;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,QAAS,SAAQ,YAAY;IAC/B,SAAS,EAAE,iBAAiB,CAA+B;IAC3D,QAAQ,EAAE,gBAAgB,CAA8B;IACxD,MAAM,EAAE,cAAc,CAA4B;CAC5D"}
1
+ {"version":3,"file":"scenario.d.mts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,cAAc,EAAE;OAClB,EAAE,gBAAgB,EAAE;OACpB,EAAE,YAAY,EAAE;OAChB,EAAE,cAAc,EAAE;OAClB,EAAE,eAAe,EAAE;OACnB,EAAE,iBAAiB,EAAE;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,QAAS,SAAQ,YAAY;IAC/B,SAAS,EAAE,iBAAiB,CAA+B;IAC3D,QAAQ,EAAE,gBAAgB,CAA8B;IACxD,MAAM,EAAE,cAAc,CAA4B;IAClD,OAAO,EAAE,eAAe,CAA6B;IACrD,MAAM,EAAE,cAAc,CAA4B;IAClD,IAAI,EAAE,YAAY,CAA0B;CACtD"}
package/lib/scenario.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { Scenario as BaseScenario } from "../client.js";
2
+ import { EnhancedAssets } from "./asset.js";
2
3
  import { EnhancedGenerate } from "./generate.js";
4
+ import { EnhancedJobs } from "./job.js";
3
5
  import { EnhancedModels } from "./models.js";
6
+ import { EnhancedUploads } from "./upload.js";
4
7
  import { EnhancedWorkflows } from "./workflow.js";
5
8
  /**
6
9
  * Enhanced Scenario client.
@@ -29,11 +32,22 @@ import { EnhancedWorkflows } from "./workflow.js";
29
32
  * // Enhanced: generate job.wait()
30
33
  * const gen = await client.generate.runModel(modelId, { body });
31
34
  * const done = await gen.job.wait();
35
+ *
36
+ * // Enhanced: upload.wait()
37
+ * const res = await client.uploads.retrieve(uploadId);
38
+ * const imported = await res.upload.wait();
39
+ *
40
+ * // Enhanced: asset.download()
41
+ * const a = await client.assets.retrieve(assetId);
42
+ * const bytes = await a.asset.download();
32
43
  * ```
33
44
  */
34
45
  export declare class Scenario extends BaseScenario {
35
46
  workflows: EnhancedWorkflows;
36
47
  generate: EnhancedGenerate;
37
48
  models: EnhancedModels;
49
+ uploads: EnhancedUploads;
50
+ assets: EnhancedAssets;
51
+ jobs: EnhancedJobs;
38
52
  }
39
53
  //# sourceMappingURL=scenario.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,gBAAgB,EAAE;OACpB,EAAE,cAAc,EAAE;OAClB,EAAE,iBAAiB,EAAE;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,QAAS,SAAQ,YAAY;IAC/B,SAAS,EAAE,iBAAiB,CAA+B;IAC3D,QAAQ,EAAE,gBAAgB,CAA8B;IACxD,MAAM,EAAE,cAAc,CAA4B;CAC5D"}
1
+ {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,cAAc,EAAE;OAClB,EAAE,gBAAgB,EAAE;OACpB,EAAE,YAAY,EAAE;OAChB,EAAE,cAAc,EAAE;OAClB,EAAE,eAAe,EAAE;OACnB,EAAE,iBAAiB,EAAE;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,QAAS,SAAQ,YAAY;IAC/B,SAAS,EAAE,iBAAiB,CAA+B;IAC3D,QAAQ,EAAE,gBAAgB,CAA8B;IACxD,MAAM,EAAE,cAAc,CAA4B;IAClD,OAAO,EAAE,eAAe,CAA6B;IACrD,MAAM,EAAE,cAAc,CAA4B;IAClD,IAAI,EAAE,YAAY,CAA0B;CACtD"}
package/lib/scenario.js CHANGED
@@ -2,8 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Scenario = void 0;
4
4
  const client_1 = require("../client.js");
5
+ const asset_1 = require("./asset.js");
5
6
  const generate_1 = require("./generate.js");
7
+ const job_1 = require("./job.js");
6
8
  const models_1 = require("./models.js");
9
+ const upload_1 = require("./upload.js");
7
10
  const workflow_1 = require("./workflow.js");
8
11
  /**
9
12
  * Enhanced Scenario client.
@@ -32,6 +35,14 @@ const workflow_1 = require("./workflow.js");
32
35
  * // Enhanced: generate job.wait()
33
36
  * const gen = await client.generate.runModel(modelId, { body });
34
37
  * const done = await gen.job.wait();
38
+ *
39
+ * // Enhanced: upload.wait()
40
+ * const res = await client.uploads.retrieve(uploadId);
41
+ * const imported = await res.upload.wait();
42
+ *
43
+ * // Enhanced: asset.download()
44
+ * const a = await client.assets.retrieve(assetId);
45
+ * const bytes = await a.asset.download();
35
46
  * ```
36
47
  */
37
48
  class Scenario extends client_1.Scenario {
@@ -40,6 +51,9 @@ class Scenario extends client_1.Scenario {
40
51
  this.workflows = new workflow_1.EnhancedWorkflows(this);
41
52
  this.generate = new generate_1.EnhancedGenerate(this);
42
53
  this.models = new models_1.EnhancedModels(this);
54
+ this.uploads = new upload_1.EnhancedUploads(this);
55
+ this.assets = new asset_1.EnhancedAssets(this);
56
+ this.jobs = new job_1.EnhancedJobs(this);
43
57
  }
44
58
  }
45
59
  exports.Scenario = Scenario;
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":";;;AAAA,yCAAqD;AACrD,4CAA8C;AAC9C,wCAA0C;AAC1C,4CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAa,QAAS,SAAQ,iBAAY;IAA1C;;QACW,cAAS,GAAsB,IAAI,4BAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,aAAQ,GAAqB,IAAI,2BAAgB,CAAC,IAAI,CAAC,CAAC;QACxD,WAAM,GAAmB,IAAI,uBAAc,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;CAAA;AAJD,4BAIC"}
1
+ {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":";;;AAAA,yCAAqD;AACrD,sCAAyC;AACzC,4CAA8C;AAC9C,kCAAqC;AACrC,wCAA0C;AAC1C,wCAA2C;AAC3C,4CAA+C;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAa,QAAS,SAAQ,iBAAY;IAA1C;;QACW,cAAS,GAAsB,IAAI,4BAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,aAAQ,GAAqB,IAAI,2BAAgB,CAAC,IAAI,CAAC,CAAC;QACxD,WAAM,GAAmB,IAAI,uBAAc,CAAC,IAAI,CAAC,CAAC;QAClD,YAAO,GAAoB,IAAI,wBAAe,CAAC,IAAI,CAAC,CAAC;QACrD,WAAM,GAAmB,IAAI,sBAAc,CAAC,IAAI,CAAC,CAAC;QAClD,SAAI,GAAiB,IAAI,kBAAY,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;CAAA;AAPD,4BAOC"}
package/lib/scenario.mjs CHANGED
@@ -1,6 +1,9 @@
1
1
  import { Scenario as BaseScenario } from "../client.mjs";
2
+ import { EnhancedAssets } from "./asset.mjs";
2
3
  import { EnhancedGenerate } from "./generate.mjs";
4
+ import { EnhancedJobs } from "./job.mjs";
3
5
  import { EnhancedModels } from "./models.mjs";
6
+ import { EnhancedUploads } from "./upload.mjs";
4
7
  import { EnhancedWorkflows } from "./workflow.mjs";
5
8
  /**
6
9
  * Enhanced Scenario client.
@@ -29,6 +32,14 @@ import { EnhancedWorkflows } from "./workflow.mjs";
29
32
  * // Enhanced: generate job.wait()
30
33
  * const gen = await client.generate.runModel(modelId, { body });
31
34
  * const done = await gen.job.wait();
35
+ *
36
+ * // Enhanced: upload.wait()
37
+ * const res = await client.uploads.retrieve(uploadId);
38
+ * const imported = await res.upload.wait();
39
+ *
40
+ * // Enhanced: asset.download()
41
+ * const a = await client.assets.retrieve(assetId);
42
+ * const bytes = await a.asset.download();
32
43
  * ```
33
44
  */
34
45
  export class Scenario extends BaseScenario {
@@ -37,6 +48,9 @@ export class Scenario extends BaseScenario {
37
48
  this.workflows = new EnhancedWorkflows(this);
38
49
  this.generate = new EnhancedGenerate(this);
39
50
  this.models = new EnhancedModels(this);
51
+ this.uploads = new EnhancedUploads(this);
52
+ this.assets = new EnhancedAssets(this);
53
+ this.jobs = new EnhancedJobs(this);
40
54
  }
41
55
  }
42
56
  //# sourceMappingURL=scenario.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.mjs","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,gBAAgB,EAAE;OACpB,EAAE,cAAc,EAAE;OAClB,EAAE,iBAAiB,EAAE;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,QAAS,SAAQ,YAAY;IAA1C;;QACW,cAAS,GAAsB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,aAAQ,GAAqB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxD,WAAM,GAAmB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;CAAA"}
1
+ {"version":3,"file":"scenario.mjs","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE;OAC5B,EAAE,cAAc,EAAE;OAClB,EAAE,gBAAgB,EAAE;OACpB,EAAE,YAAY,EAAE;OAChB,EAAE,cAAc,EAAE;OAClB,EAAE,eAAe,EAAE;OACnB,EAAE,iBAAiB,EAAE;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,OAAO,QAAS,SAAQ,YAAY;IAA1C;;QACW,cAAS,GAAsB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3D,aAAQ,GAAqB,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACxD,WAAM,GAAmB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,YAAO,GAAoB,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACrD,WAAM,GAAmB,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;QAClD,SAAI,GAAiB,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;CAAA"}
@@ -0,0 +1,143 @@
1
+ import type { Scenario } from "../client.mjs";
2
+ import type { APIPromise } from "../core/api-promise.mjs";
3
+ import type { RequestOptions } from "../internal/request-options.mjs";
4
+ import { Uploads, type UploadCreateParams, type UploadCreateResponse, type UploadRetrieveResponse, type UploadTriggerActionParams, type UploadTriggerActionResponse } from "../resources/uploads.mjs";
5
+ import type { AssetRetrieveResponse } from "../resources/assets/assets.mjs";
6
+ import type { ModelRetrieveResponse } from "../resources/models/models.mjs";
7
+ type UploadKind = NonNullable<UploadCreateParams['kind']>;
8
+ /** The resolved entity returned after a successful upload, narrowed by `kind`. */
9
+ export type UploadResult<K extends UploadKind> = K extends 'model' ? ModelRetrieveResponse : AssetRetrieveResponse;
10
+ /**
11
+ * Accepted upload inputs.
12
+ * - `string` — a local file path, read from disk (Node only; throws in browsers).
13
+ * - `Uint8Array` — raw bytes. `Buffer` is a `Uint8Array` and works too.
14
+ * - `Blob` / `File` — browser-native, or Node ≥ 18 via `fs.openAsBlob()` /
15
+ * constructors.
16
+ */
17
+ export type UploadFileInput = string | Uint8Array | Blob;
18
+ export interface UploadFileParams<K extends UploadKind> {
19
+ /**
20
+ * The file to upload. Accepts a local path (Node), a `Uint8Array` / `Buffer`,
21
+ * or a `Blob` / `File`.
22
+ */
23
+ file: UploadFileInput;
24
+ /** Original filename (e.g. `"my-model.safetensors"`). */
25
+ fileName: string;
26
+ /** MIME type (e.g. `"application/octet-stream"`, `"image/png"`). */
27
+ contentType: string;
28
+ /** The kind of upload. Determines the returned entity type. */
29
+ kind: K;
30
+ /**
31
+ * Extra asset options. Ignored when `kind === 'model'` — models don't
32
+ * produce an asset, so these options are not applicable server-side.
33
+ */
34
+ assetOptions?: UploadCreateParams['assetOptions'];
35
+ /**
36
+ * Maximum number of parts uploaded to S3 in parallel.
37
+ * @default 4
38
+ */
39
+ partConcurrency?: number;
40
+ /**
41
+ * Polling interval for the final "upload imported" check, in ms.
42
+ * @default 2000
43
+ */
44
+ pollIntervalMs?: number;
45
+ /**
46
+ * Maximum time to wait for the upload to reach a terminal state, in ms.
47
+ * Throws if exceeded.
48
+ * @default 300000
49
+ */
50
+ pollTimeoutMs?: number;
51
+ }
52
+ export interface UploadWaitOptions {
53
+ /** Polling interval in milliseconds. Default: 2000 */
54
+ intervalMs?: number;
55
+ /** Maximum wait time in milliseconds. Default: 300000 */
56
+ timeoutMs?: number;
57
+ }
58
+ /** Upload methods added on top of the original upload fields. */
59
+ export declare class UploadMethods {
60
+ /** @internal */ readonly _client: Scenario;
61
+ /**
62
+ * Poll until the upload has been processed into an entity (asset or model),
63
+ * or reaches a terminal state (`imported`, `complete`, `failed`). Resolves
64
+ * with the latest upload data so you can read `entityId`, `status`, or
65
+ * `errorMessage` without a follow-up retrieve.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * const res = await client.uploads.retrieve(uploadId);
70
+ * const done = await res.upload.wait();
71
+ * if (done.status === 'failed') throw new Error(done.errorMessage);
72
+ * console.log(done.entityId);
73
+ * ```
74
+ */
75
+ wait(this: Upload, options?: UploadWaitOptions): Promise<Upload>;
76
+ /** @internal Create an Upload from raw upload data. */
77
+ static from(client: Scenario, data: UploadRetrieveResponse['upload']): Upload;
78
+ }
79
+ /** An upload with all original fields plus `.wait()`. */
80
+ export type Upload = UploadRetrieveResponse.Upload & UploadMethods;
81
+ export declare const Upload: typeof UploadMethods;
82
+ /**
83
+ * @internal Helper type: adds `.wait()` to the `upload` field of a response.
84
+ * Uses intersection so the original response type is preserved — a `WithUpload<T>` is still assignable to `T`.
85
+ */
86
+ export type WithUpload<T extends {
87
+ upload: unknown;
88
+ }> = T & {
89
+ upload: UploadMethods;
90
+ };
91
+ /**
92
+ * @internal Wrap `_thenUnwrap` to replace `response.upload` with an enhanced Upload.
93
+ */
94
+ export declare function enhanceUpload<T extends {
95
+ upload: {
96
+ id: string;
97
+ status: string;
98
+ };
99
+ }>(client: Scenario, promise: APIPromise<T>): APIPromise<WithUpload<T>>;
100
+ /**
101
+ * Enhanced Uploads resource.
102
+ * All original methods (`create`, `retrieve`, `triggerAction`) are inherited,
103
+ * with each response's `upload` field enriched with a `.wait()` helper.
104
+ * Adds `uploadFile()` — a one-call wrapper around the 4-step upload flow:
105
+ * init → PUT parts to S3 → trigger complete → poll until imported.
106
+ */
107
+ export declare class EnhancedUploads extends Uploads {
108
+ create(body: UploadCreateParams, options?: RequestOptions): APIPromise<WithUpload<UploadCreateResponse>>;
109
+ retrieve(uploadID: string, options?: RequestOptions): APIPromise<WithUpload<UploadRetrieveResponse>>;
110
+ triggerAction(uploadID: string, body: UploadTriggerActionParams, options?: RequestOptions): APIPromise<WithUpload<UploadTriggerActionResponse>>;
111
+ /**
112
+ * Upload a file end-to-end. Computes an optimal part size (within AWS's
113
+ * 5 MiB / 5 GiB / 10,000-part bounds), uploads all parts in parallel,
114
+ * triggers completion, polls until the server has validated and imported
115
+ * the file, and returns the resolved entity.
116
+ *
117
+ * The returned type narrows on `kind`: `'model'` returns a Model,
118
+ * everything else returns an Asset.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * // From a file path (Node)
123
+ * const { asset } = await client.uploads.uploadFile({
124
+ * file: './photo.jpg',
125
+ * fileName: 'photo.jpg',
126
+ * contentType: 'image/jpeg',
127
+ * kind: 'image',
128
+ * });
129
+ * console.log(asset.id, asset.url);
130
+ *
131
+ * // Or from bytes / Blob — anything you already have in memory
132
+ * await client.uploads.uploadFile({
133
+ * file: new Blob([pngBytes], { type: 'image/png' }),
134
+ * fileName: 'generated.png',
135
+ * contentType: 'image/png',
136
+ * kind: 'image',
137
+ * });
138
+ * ```
139
+ */
140
+ uploadFile<K extends UploadKind>(params: UploadFileParams<K>, options?: RequestOptions): Promise<UploadResult<K>>;
141
+ }
142
+ export {};
143
+ //# sourceMappingURL=upload.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.mts","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ import type { Scenario } from "../client.js";
2
+ import type { APIPromise } from "../core/api-promise.js";
3
+ import type { RequestOptions } from "../internal/request-options.js";
4
+ import { Uploads, type UploadCreateParams, type UploadCreateResponse, type UploadRetrieveResponse, type UploadTriggerActionParams, type UploadTriggerActionResponse } from "../resources/uploads.js";
5
+ import type { AssetRetrieveResponse } from "../resources/assets/assets.js";
6
+ import type { ModelRetrieveResponse } from "../resources/models/models.js";
7
+ type UploadKind = NonNullable<UploadCreateParams['kind']>;
8
+ /** The resolved entity returned after a successful upload, narrowed by `kind`. */
9
+ export type UploadResult<K extends UploadKind> = K extends 'model' ? ModelRetrieveResponse : AssetRetrieveResponse;
10
+ /**
11
+ * Accepted upload inputs.
12
+ * - `string` — a local file path, read from disk (Node only; throws in browsers).
13
+ * - `Uint8Array` — raw bytes. `Buffer` is a `Uint8Array` and works too.
14
+ * - `Blob` / `File` — browser-native, or Node ≥ 18 via `fs.openAsBlob()` /
15
+ * constructors.
16
+ */
17
+ export type UploadFileInput = string | Uint8Array | Blob;
18
+ export interface UploadFileParams<K extends UploadKind> {
19
+ /**
20
+ * The file to upload. Accepts a local path (Node), a `Uint8Array` / `Buffer`,
21
+ * or a `Blob` / `File`.
22
+ */
23
+ file: UploadFileInput;
24
+ /** Original filename (e.g. `"my-model.safetensors"`). */
25
+ fileName: string;
26
+ /** MIME type (e.g. `"application/octet-stream"`, `"image/png"`). */
27
+ contentType: string;
28
+ /** The kind of upload. Determines the returned entity type. */
29
+ kind: K;
30
+ /**
31
+ * Extra asset options. Ignored when `kind === 'model'` — models don't
32
+ * produce an asset, so these options are not applicable server-side.
33
+ */
34
+ assetOptions?: UploadCreateParams['assetOptions'];
35
+ /**
36
+ * Maximum number of parts uploaded to S3 in parallel.
37
+ * @default 4
38
+ */
39
+ partConcurrency?: number;
40
+ /**
41
+ * Polling interval for the final "upload imported" check, in ms.
42
+ * @default 2000
43
+ */
44
+ pollIntervalMs?: number;
45
+ /**
46
+ * Maximum time to wait for the upload to reach a terminal state, in ms.
47
+ * Throws if exceeded.
48
+ * @default 300000
49
+ */
50
+ pollTimeoutMs?: number;
51
+ }
52
+ export interface UploadWaitOptions {
53
+ /** Polling interval in milliseconds. Default: 2000 */
54
+ intervalMs?: number;
55
+ /** Maximum wait time in milliseconds. Default: 300000 */
56
+ timeoutMs?: number;
57
+ }
58
+ /** Upload methods added on top of the original upload fields. */
59
+ export declare class UploadMethods {
60
+ /** @internal */ readonly _client: Scenario;
61
+ /**
62
+ * Poll until the upload has been processed into an entity (asset or model),
63
+ * or reaches a terminal state (`imported`, `complete`, `failed`). Resolves
64
+ * with the latest upload data so you can read `entityId`, `status`, or
65
+ * `errorMessage` without a follow-up retrieve.
66
+ *
67
+ * @example
68
+ * ```ts
69
+ * const res = await client.uploads.retrieve(uploadId);
70
+ * const done = await res.upload.wait();
71
+ * if (done.status === 'failed') throw new Error(done.errorMessage);
72
+ * console.log(done.entityId);
73
+ * ```
74
+ */
75
+ wait(this: Upload, options?: UploadWaitOptions): Promise<Upload>;
76
+ /** @internal Create an Upload from raw upload data. */
77
+ static from(client: Scenario, data: UploadRetrieveResponse['upload']): Upload;
78
+ }
79
+ /** An upload with all original fields plus `.wait()`. */
80
+ export type Upload = UploadRetrieveResponse.Upload & UploadMethods;
81
+ export declare const Upload: typeof UploadMethods;
82
+ /**
83
+ * @internal Helper type: adds `.wait()` to the `upload` field of a response.
84
+ * Uses intersection so the original response type is preserved — a `WithUpload<T>` is still assignable to `T`.
85
+ */
86
+ export type WithUpload<T extends {
87
+ upload: unknown;
88
+ }> = T & {
89
+ upload: UploadMethods;
90
+ };
91
+ /**
92
+ * @internal Wrap `_thenUnwrap` to replace `response.upload` with an enhanced Upload.
93
+ */
94
+ export declare function enhanceUpload<T extends {
95
+ upload: {
96
+ id: string;
97
+ status: string;
98
+ };
99
+ }>(client: Scenario, promise: APIPromise<T>): APIPromise<WithUpload<T>>;
100
+ /**
101
+ * Enhanced Uploads resource.
102
+ * All original methods (`create`, `retrieve`, `triggerAction`) are inherited,
103
+ * with each response's `upload` field enriched with a `.wait()` helper.
104
+ * Adds `uploadFile()` — a one-call wrapper around the 4-step upload flow:
105
+ * init → PUT parts to S3 → trigger complete → poll until imported.
106
+ */
107
+ export declare class EnhancedUploads extends Uploads {
108
+ create(body: UploadCreateParams, options?: RequestOptions): APIPromise<WithUpload<UploadCreateResponse>>;
109
+ retrieve(uploadID: string, options?: RequestOptions): APIPromise<WithUpload<UploadRetrieveResponse>>;
110
+ triggerAction(uploadID: string, body: UploadTriggerActionParams, options?: RequestOptions): APIPromise<WithUpload<UploadTriggerActionResponse>>;
111
+ /**
112
+ * Upload a file end-to-end. Computes an optimal part size (within AWS's
113
+ * 5 MiB / 5 GiB / 10,000-part bounds), uploads all parts in parallel,
114
+ * triggers completion, polls until the server has validated and imported
115
+ * the file, and returns the resolved entity.
116
+ *
117
+ * The returned type narrows on `kind`: `'model'` returns a Model,
118
+ * everything else returns an Asset.
119
+ *
120
+ * @example
121
+ * ```ts
122
+ * // From a file path (Node)
123
+ * const { asset } = await client.uploads.uploadFile({
124
+ * file: './photo.jpg',
125
+ * fileName: 'photo.jpg',
126
+ * contentType: 'image/jpeg',
127
+ * kind: 'image',
128
+ * });
129
+ * console.log(asset.id, asset.url);
130
+ *
131
+ * // Or from bytes / Blob — anything you already have in memory
132
+ * await client.uploads.uploadFile({
133
+ * file: new Blob([pngBytes], { type: 'image/png' }),
134
+ * fileName: 'generated.png',
135
+ * contentType: 'image/png',
136
+ * kind: 'image',
137
+ * });
138
+ * ```
139
+ */
140
+ uploadFile<K extends UploadKind>(params: UploadFileParams<K>, options?: RequestOptions): Promise<UploadResult<K>>;
141
+ }
142
+ export {};
143
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../src/lib/upload.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,QAAQ,EAAE;OACjB,KAAK,EAAE,UAAU,EAAE;OACnB,KAAK,EAAE,cAAc,EAAE;OACvB,EACL,OAAO,EACP,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EACjC;OACM,KAAK,EAAE,qBAAqB,EAAE;OAC9B,KAAK,EAAE,qBAAqB,EAAE;AAErC,KAAK,UAAU,GAAG,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;AAE1D,kFAAkF;AAClF,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,UAAU,IAC3C,CAAC,SAAS,OAAO,GAAG,qBAAqB,GAAG,qBAAqB,CAAC;AAEpE;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC;AAEzD,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,UAAU;IACpD;;;OAGG;IACH,IAAI,EAAE,eAAe,CAAC;IACtB,yDAAyD;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,IAAI,EAAE,CAAC,CAAC;IACR;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IAClD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAgBD,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iEAAiE;AACjE,qBAAa,aAAa;IACxB,gBAAgB,CAAC,SAAiB,OAAO,EAAE,QAAQ,CAAC;IAEpD;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC;IAStE,uDAAuD;IACvD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,CAAC,QAAQ,CAAC,GAAG,MAAM;CAK9E;AAED,yDAAyD;AACzD,MAAM,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,GAAG,aAAa,CAAC;AACnE,eAAO,MAAM,MAAM,sBAAgB,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,IAAI,CAAC,GAAG;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC;AAEtF;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAChF,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GACrB,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAK3B;AAED;;;;;;GAMG;AACH,qBAAa,eAAgB,SAAQ,OAAO;IACjC,MAAM,CACb,IAAI,EAAE,kBAAkB,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAItC,QAAQ,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IAIxC,aAAa,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,UAAU,CAAC,2BAA2B,CAAC,CAAC;IAItD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,UAAU,CAAC,CAAC,SAAS,UAAU,EACnC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAuE5B"}