@scenario-labs/sdk 0.1.3 → 0.2.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 (275) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/LICENSE +1 -1
  3. package/README.md +29 -29
  4. package/client.d.mts +35 -18
  5. package/client.d.mts.map +1 -1
  6. package/client.d.ts +35 -18
  7. package/client.d.ts.map +1 -1
  8. package/client.js +88 -50
  9. package/client.js.map +1 -1
  10. package/client.mjs +86 -48
  11. package/client.mjs.map +1 -1
  12. package/core/api-promise.d.mts +2 -2
  13. package/core/api-promise.d.mts.map +1 -1
  14. package/core/api-promise.d.ts +2 -2
  15. package/core/api-promise.d.ts.map +1 -1
  16. package/core/api-promise.js.map +1 -1
  17. package/core/api-promise.mjs.map +1 -1
  18. package/core/error.d.mts +2 -2
  19. package/core/error.d.mts.map +1 -1
  20. package/core/error.d.ts +2 -2
  21. package/core/error.d.ts.map +1 -1
  22. package/core/error.js +4 -4
  23. package/core/error.js.map +1 -1
  24. package/core/error.mjs +2 -2
  25. package/core/error.mjs.map +1 -1
  26. package/core/resource.d.mts +3 -3
  27. package/core/resource.d.mts.map +1 -1
  28. package/core/resource.d.ts +3 -3
  29. package/core/resource.d.ts.map +1 -1
  30. package/core/resource.js.map +1 -1
  31. package/core/resource.mjs.map +1 -1
  32. package/index.d.mts +8 -3
  33. package/index.d.mts.map +1 -1
  34. package/index.d.ts +8 -3
  35. package/index.d.ts.map +1 -1
  36. package/index.js +16 -6
  37. package/index.js.map +1 -1
  38. package/index.mjs +7 -3
  39. package/index.mjs.map +1 -1
  40. package/internal/parse.d.mts +2 -2
  41. package/internal/parse.d.mts.map +1 -1
  42. package/internal/parse.d.ts +2 -2
  43. package/internal/parse.d.ts.map +1 -1
  44. package/internal/parse.js.map +1 -1
  45. package/internal/parse.mjs.map +1 -1
  46. package/internal/request-options.d.mts +4 -0
  47. package/internal/request-options.d.mts.map +1 -1
  48. package/internal/request-options.d.ts +4 -0
  49. package/internal/request-options.d.ts.map +1 -1
  50. package/internal/request-options.js.map +1 -1
  51. package/internal/request-options.mjs.map +1 -1
  52. package/internal/shims.js +1 -1
  53. package/internal/shims.js.map +1 -1
  54. package/internal/shims.mjs +1 -1
  55. package/internal/shims.mjs.map +1 -1
  56. package/internal/uploads.d.mts +4 -4
  57. package/internal/uploads.d.mts.map +1 -1
  58. package/internal/uploads.d.ts +4 -4
  59. package/internal/uploads.d.ts.map +1 -1
  60. package/internal/uploads.js.map +1 -1
  61. package/internal/uploads.mjs.map +1 -1
  62. package/internal/utils/base64.js +2 -2
  63. package/internal/utils/base64.js.map +1 -1
  64. package/internal/utils/base64.mjs +3 -3
  65. package/internal/utils/base64.mjs.map +1 -1
  66. package/internal/utils/log.d.mts +3 -3
  67. package/internal/utils/log.d.mts.map +1 -1
  68. package/internal/utils/log.d.ts +3 -3
  69. package/internal/utils/log.d.ts.map +1 -1
  70. package/internal/utils/log.js.map +1 -1
  71. package/internal/utils/log.mjs.map +1 -1
  72. package/internal/utils/path.js +1 -1
  73. package/internal/utils/path.js.map +1 -1
  74. package/internal/utils/path.mjs +2 -2
  75. package/internal/utils/path.mjs.map +1 -1
  76. package/internal/utils/values.js +5 -5
  77. package/internal/utils/values.js.map +1 -1
  78. package/internal/utils/values.mjs +6 -6
  79. package/internal/utils/values.mjs.map +1 -1
  80. package/lib/generate.d.mts +19 -0
  81. package/lib/generate.d.mts.map +1 -0
  82. package/lib/generate.d.ts +19 -0
  83. package/lib/generate.d.ts.map +1 -0
  84. package/lib/generate.js +35 -0
  85. package/lib/generate.js.map +1 -0
  86. package/lib/generate.mjs +31 -0
  87. package/lib/generate.mjs.map +1 -0
  88. package/lib/job.d.mts +48 -0
  89. package/lib/job.d.mts.map +1 -0
  90. package/lib/job.d.ts +48 -0
  91. package/lib/job.d.ts.map +1 -0
  92. package/lib/job.js +50 -0
  93. package/lib/job.js.map +1 -0
  94. package/lib/job.mjs +45 -0
  95. package/lib/job.mjs.map +1 -0
  96. package/lib/models.d.mts +20 -0
  97. package/lib/models.d.mts.map +1 -0
  98. package/lib/models.d.ts +20 -0
  99. package/lib/models.d.ts.map +1 -0
  100. package/lib/models.js +28 -0
  101. package/lib/models.js.map +1 -0
  102. package/lib/models.mjs +23 -0
  103. package/lib/models.mjs.map +1 -0
  104. package/lib/scenario.d.mts +39 -0
  105. package/lib/scenario.d.mts.map +1 -0
  106. package/lib/scenario.d.ts +39 -0
  107. package/lib/scenario.d.ts.map +1 -0
  108. package/lib/scenario.js +46 -0
  109. package/lib/scenario.js.map +1 -0
  110. package/lib/scenario.mjs +42 -0
  111. package/lib/scenario.mjs.map +1 -0
  112. package/lib/workflow.d.mts +48 -0
  113. package/lib/workflow.d.mts.map +1 -0
  114. package/lib/workflow.d.ts +48 -0
  115. package/lib/workflow.d.ts.map +1 -0
  116. package/lib/workflow.js +59 -0
  117. package/lib/workflow.js.map +1 -0
  118. package/lib/workflow.mjs +54 -0
  119. package/lib/workflow.mjs.map +1 -0
  120. package/package.json +13 -3
  121. package/resources/assets/assets.d.mts +401 -96
  122. package/resources/assets/assets.d.mts.map +1 -1
  123. package/resources/assets/assets.d.ts +401 -96
  124. package/resources/assets/assets.d.ts.map +1 -1
  125. package/resources/assets/assets.js +2 -2
  126. package/resources/assets/assets.js.map +1 -1
  127. package/resources/assets/assets.mjs +2 -2
  128. package/resources/assets/assets.mjs.map +1 -1
  129. package/resources/assets/index.d.mts +1 -1
  130. package/resources/assets/index.d.mts.map +1 -1
  131. package/resources/assets/index.d.ts +1 -1
  132. package/resources/assets/index.d.ts.map +1 -1
  133. package/resources/assets/index.js.map +1 -1
  134. package/resources/assets/index.mjs.map +1 -1
  135. package/resources/assets/public.d.mts +30 -27
  136. package/resources/assets/public.d.mts.map +1 -1
  137. package/resources/assets/public.d.ts +30 -27
  138. package/resources/assets/public.d.ts.map +1 -1
  139. package/resources/assets/public.js +2 -2
  140. package/resources/assets/public.js.map +1 -1
  141. package/resources/assets/public.mjs +2 -2
  142. package/resources/assets/public.mjs.map +1 -1
  143. package/resources/collections/assets.d.mts +2 -8
  144. package/resources/collections/assets.d.mts.map +1 -1
  145. package/resources/collections/assets.d.ts +2 -8
  146. package/resources/collections/assets.d.ts.map +1 -1
  147. package/resources/collections/assets.js +2 -2
  148. package/resources/collections/assets.js.map +1 -1
  149. package/resources/collections/assets.mjs +2 -2
  150. package/resources/collections/assets.mjs.map +1 -1
  151. package/resources/collections/collections.d.mts +5 -5
  152. package/resources/collections/collections.d.mts.map +1 -1
  153. package/resources/collections/collections.d.ts +5 -5
  154. package/resources/collections/collections.d.ts.map +1 -1
  155. package/resources/collections/collections.js.map +1 -1
  156. package/resources/collections/collections.mjs.map +1 -1
  157. package/resources/collections/index.d.mts +2 -2
  158. package/resources/collections/index.d.mts.map +1 -1
  159. package/resources/collections/index.d.ts +2 -2
  160. package/resources/collections/index.d.ts.map +1 -1
  161. package/resources/collections/index.js.map +1 -1
  162. package/resources/collections/index.mjs +2 -2
  163. package/resources/collections/index.mjs.map +1 -1
  164. package/resources/collections/models.d.mts +2 -8
  165. package/resources/collections/models.d.mts.map +1 -1
  166. package/resources/collections/models.d.ts +2 -8
  167. package/resources/collections/models.d.ts.map +1 -1
  168. package/resources/collections/models.js +2 -2
  169. package/resources/collections/models.js.map +1 -1
  170. package/resources/collections/models.mjs +2 -2
  171. package/resources/collections/models.mjs.map +1 -1
  172. package/resources/generate.d.mts +4188 -1370
  173. package/resources/generate.d.mts.map +1 -1
  174. package/resources/generate.d.ts +4188 -1370
  175. package/resources/generate.d.ts.map +1 -1
  176. package/resources/index.d.mts +2 -2
  177. package/resources/index.d.mts.map +1 -1
  178. package/resources/index.d.ts +2 -2
  179. package/resources/index.d.ts.map +1 -1
  180. package/resources/index.js.map +1 -1
  181. package/resources/index.mjs.map +1 -1
  182. package/resources/jobs.d.mts +943 -33
  183. package/resources/jobs.d.mts.map +1 -1
  184. package/resources/jobs.d.ts +943 -33
  185. package/resources/jobs.d.ts.map +1 -1
  186. package/resources/jobs.js +3 -2
  187. package/resources/jobs.js.map +1 -1
  188. package/resources/jobs.mjs +3 -2
  189. package/resources/jobs.mjs.map +1 -1
  190. package/resources/models/description.d.mts +8 -8
  191. package/resources/models/description.d.mts.map +1 -1
  192. package/resources/models/description.d.ts +8 -8
  193. package/resources/models/description.d.ts.map +1 -1
  194. package/resources/models/examples.d.mts +640 -34
  195. package/resources/models/examples.d.mts.map +1 -1
  196. package/resources/models/examples.d.ts +640 -34
  197. package/resources/models/examples.d.ts.map +1 -1
  198. package/resources/models/models.d.mts +1323 -301
  199. package/resources/models/models.d.mts.map +1 -1
  200. package/resources/models/models.d.ts +1323 -301
  201. package/resources/models/models.d.ts.map +1 -1
  202. package/resources/models/models.js.map +1 -1
  203. package/resources/models/models.mjs.map +1 -1
  204. package/resources/models/train.d.mts +718 -90
  205. package/resources/models/train.d.mts.map +1 -1
  206. package/resources/models/train.d.ts +718 -90
  207. package/resources/models/train.d.ts.map +1 -1
  208. package/resources/models/train.js +9 -4
  209. package/resources/models/train.js.map +1 -1
  210. package/resources/models/train.mjs +9 -4
  211. package/resources/models/train.mjs.map +1 -1
  212. package/resources/models/training-images.d.mts +2 -2
  213. package/resources/models/training-images.d.mts.map +1 -1
  214. package/resources/models/training-images.d.ts +2 -2
  215. package/resources/models/training-images.d.ts.map +1 -1
  216. package/resources/search.d.mts +6 -31
  217. package/resources/search.d.mts.map +1 -1
  218. package/resources/search.d.ts +6 -31
  219. package/resources/search.d.ts.map +1 -1
  220. package/resources/search.js +6 -2
  221. package/resources/search.js.map +1 -1
  222. package/resources/search.mjs +6 -2
  223. package/resources/search.mjs.map +1 -1
  224. package/resources/tags.d.mts +1 -1
  225. package/resources/tags.d.ts +1 -1
  226. package/resources/usages.d.mts +401 -16
  227. package/resources/usages.d.mts.map +1 -1
  228. package/resources/usages.d.ts +401 -16
  229. package/resources/usages.d.ts.map +1 -1
  230. package/resources/workflows.d.mts +2738 -101
  231. package/resources/workflows.d.mts.map +1 -1
  232. package/resources/workflows.d.ts +2738 -101
  233. package/resources/workflows.d.ts.map +1 -1
  234. package/src/client.ts +102 -44
  235. package/src/core/api-promise.ts +4 -4
  236. package/src/core/error.ts +2 -2
  237. package/src/core/resource.ts +3 -3
  238. package/src/index.ts +8 -3
  239. package/src/internal/parse.ts +2 -2
  240. package/src/internal/request-options.ts +2 -0
  241. package/src/internal/shims.ts +1 -1
  242. package/src/internal/uploads.ts +5 -5
  243. package/src/internal/utils/base64.ts +3 -3
  244. package/src/internal/utils/log.ts +3 -3
  245. package/src/internal/utils/path.ts +2 -2
  246. package/src/internal/utils/values.ts +6 -6
  247. package/src/lib/generate.ts +77 -0
  248. package/src/lib/job.ts +78 -0
  249. package/src/lib/models.ts +27 -0
  250. package/src/lib/scenario.ts +39 -0
  251. package/src/lib/workflow.ts +90 -0
  252. package/src/resources/assets/assets.ts +742 -212
  253. package/src/resources/assets/index.ts +0 -1
  254. package/src/resources/assets/public.ts +151 -29
  255. package/src/resources/collections/assets.ts +2 -14
  256. package/src/resources/collections/collections.ts +3 -5
  257. package/src/resources/collections/index.ts +2 -14
  258. package/src/resources/collections/models.ts +2 -14
  259. package/src/resources/generate.ts +6254 -2217
  260. package/src/resources/index.ts +2 -3
  261. package/src/resources/jobs.ts +1355 -26
  262. package/src/resources/models/description.ts +50 -8
  263. package/src/resources/models/examples.ts +906 -56
  264. package/src/resources/models/models.ts +1867 -330
  265. package/src/resources/models/train.ts +976 -98
  266. package/src/resources/models/training-images.ts +2 -2
  267. package/src/resources/search.ts +13 -39
  268. package/src/resources/tags.ts +1 -1
  269. package/src/resources/usages.ts +544 -11
  270. package/src/resources/workflows.ts +4586 -914
  271. package/src/version.ts +1 -1
  272. package/version.d.mts +1 -1
  273. package/version.d.ts +1 -1
  274. package/version.js +1 -1
  275. package/version.mjs +1 -1
package/lib/job.d.ts ADDED
@@ -0,0 +1,48 @@
1
+ import type { Scenario } from "../client.js";
2
+ import type { APIPromise } from "../core/api-promise.js";
3
+ import type { JobRetrieveResponse } from "../resources/jobs.js";
4
+ export interface WaitOptions {
5
+ /** Polling interval in milliseconds. Default: 3000 */
6
+ intervalMs?: number;
7
+ /** Maximum wait time in milliseconds. Default: 120000 */
8
+ timeoutMs?: number;
9
+ }
10
+ /** Job methods added on top of the original job fields. */
11
+ export declare class JobMethods {
12
+ /** @internal */ readonly _client: Scenario;
13
+ /**
14
+ * Poll until the job reaches a terminal status (success, failure, or canceled).
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const response = await client.workflows.run(workflowId, { body });
19
+ * const completed = await response.job.wait();
20
+ * console.log(completed.status);
21
+ * ```
22
+ */
23
+ wait(this: Job, options?: WaitOptions): Promise<Job>;
24
+ /** @internal Create a Job from raw job data. */
25
+ static from(client: Scenario, data: JobRetrieveResponse['job']): Job;
26
+ }
27
+ /** A job with all original fields plus `.wait()`. */
28
+ export type Job = JobRetrieveResponse.Job & JobMethods;
29
+ export declare const Job: typeof JobMethods;
30
+ /**
31
+ * @internal Helper type: adds `.wait()` to the `job` field of a response.
32
+ * Uses intersection so the original response type is preserved — a `WithJob<T>` is still assignable to `T`.
33
+ */
34
+ export type WithJob<T extends {
35
+ job: unknown;
36
+ }> = T & {
37
+ job: JobMethods;
38
+ };
39
+ /**
40
+ * @internal Wrap `_thenUnwrap` to replace `response.job` with an enhanced Job.
41
+ */
42
+ export declare function enhanceJob<T extends {
43
+ job: {
44
+ jobId: string;
45
+ status: string;
46
+ };
47
+ }>(client: Scenario, promise: APIPromise<T>): APIPromise<WithJob<T>>;
48
+ //# sourceMappingURL=job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../src/lib/job.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,QAAQ,EAAE;OACjB,KAAK,EAAE,UAAU,EAAE;OACnB,KAAK,EAAE,mBAAmB,EAAE;AAEnC,MAAM,WAAW,WAAW;IAC1B,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD,2DAA2D;AAC3D,qBAAa,UAAU;IACrB,gBAAgB,CAAC,SAAiB,OAAO,EAAE,QAAQ,CAAC;IAEpD;;;;;;;;;OASG;IACG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAmB1D,gDAAgD;IAChD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,GAAG,GAAG;CAKrE;AAED,qDAAqD;AACrD,MAAM,MAAM,GAAG,GAAG,mBAAmB,CAAC,GAAG,GAAG,UAAU,CAAC;AACvD,eAAO,MAAM,GAAG,mBAAa,CAAC;AAE9B;;;GAGG;AACH,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,IAAI,CAAC,GAAG;IAAE,GAAG,EAAE,UAAU,CAAA;CAAE,CAAC;AAE1E;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAC7E,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GACrB,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAKxB"}
package/lib/job.js ADDED
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Job = exports.JobMethods = void 0;
4
+ exports.enhanceJob = enhanceJob;
5
+ const TERMINAL_STATUSES = new Set(['success', 'failure', 'canceled']);
6
+ /** Job methods added on top of the original job fields. */
7
+ class JobMethods {
8
+ /**
9
+ * Poll until the job reaches a terminal status (success, failure, or canceled).
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const response = await client.workflows.run(workflowId, { body });
14
+ * const completed = await response.job.wait();
15
+ * console.log(completed.status);
16
+ * ```
17
+ */
18
+ async wait(options) {
19
+ const intervalMs = options?.intervalMs ?? 3000;
20
+ const timeoutMs = options?.timeoutMs ?? 120000;
21
+ let elapsed = 0;
22
+ while (elapsed < timeoutMs) {
23
+ const response = await this._client.jobs.retrieve(this.jobId);
24
+ if (TERMINAL_STATUSES.has(response.job.status)) {
25
+ return exports.Job.from(this._client, response.job);
26
+ }
27
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
28
+ elapsed += intervalMs;
29
+ }
30
+ throw new Error(`Job ${this.jobId} did not complete within ${timeoutMs / 1000}s`);
31
+ }
32
+ /** @internal Create a Job from raw job data. */
33
+ static from(client, data) {
34
+ const job = Object.assign(Object.create(JobMethods.prototype), data);
35
+ Object.defineProperty(job, '_client', { value: client, enumerable: false });
36
+ return job;
37
+ }
38
+ }
39
+ exports.JobMethods = JobMethods;
40
+ exports.Job = JobMethods;
41
+ /**
42
+ * @internal Wrap `_thenUnwrap` to replace `response.job` with an enhanced Job.
43
+ */
44
+ function enhanceJob(client, promise) {
45
+ return promise._thenUnwrap((data) => ({
46
+ ...data,
47
+ job: exports.Job.from(client, data.job),
48
+ }));
49
+ }
50
+ //# sourceMappingURL=job.js.map
package/lib/job.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/lib/job.ts"],"names":[],"mappings":";;;AAqEA,gCAQC;AAhED,MAAM,iBAAiB,GAAmB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEtF,2DAA2D;AAC3D,MAAa,UAAU;IAGrB;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAY,OAAqB;QACzC,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAK,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,MAAO,CAAC;QAChD,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,OAAO,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE9D,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/C,OAAO,WAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YAChE,OAAO,IAAI,UAAU,CAAC;QACxB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,4BAA4B,SAAS,GAAG,IAAK,GAAG,CAAC,CAAC;IACrF,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,IAAI,CAAC,MAAgB,EAAE,IAAgC;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,CAAQ,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAtCD,gCAsCC;AAIY,QAAA,GAAG,GAAG,UAAU,CAAC;AAQ9B;;GAEG;AACH,SAAgB,UAAU,CACxB,MAAgB,EAChB,OAAsB;IAEtB,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,GAAG,IAAI;QACP,GAAG,EAAE,WAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAiC,CAAC;KAC9D,CAAC,CAAC,CAAC;AACN,CAAC"}
package/lib/job.mjs ADDED
@@ -0,0 +1,45 @@
1
+ const TERMINAL_STATUSES = new Set(['success', 'failure', 'canceled']);
2
+ /** Job methods added on top of the original job fields. */
3
+ export class JobMethods {
4
+ /**
5
+ * Poll until the job reaches a terminal status (success, failure, or canceled).
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const response = await client.workflows.run(workflowId, { body });
10
+ * const completed = await response.job.wait();
11
+ * console.log(completed.status);
12
+ * ```
13
+ */
14
+ async wait(options) {
15
+ const intervalMs = options?.intervalMs ?? 3000;
16
+ const timeoutMs = options?.timeoutMs ?? 120000;
17
+ let elapsed = 0;
18
+ while (elapsed < timeoutMs) {
19
+ const response = await this._client.jobs.retrieve(this.jobId);
20
+ if (TERMINAL_STATUSES.has(response.job.status)) {
21
+ return Job.from(this._client, response.job);
22
+ }
23
+ await new Promise((resolve) => setTimeout(resolve, intervalMs));
24
+ elapsed += intervalMs;
25
+ }
26
+ throw new Error(`Job ${this.jobId} did not complete within ${timeoutMs / 1000}s`);
27
+ }
28
+ /** @internal Create a Job from raw job data. */
29
+ static from(client, data) {
30
+ const job = Object.assign(Object.create(JobMethods.prototype), data);
31
+ Object.defineProperty(job, '_client', { value: client, enumerable: false });
32
+ return job;
33
+ }
34
+ }
35
+ export const Job = JobMethods;
36
+ /**
37
+ * @internal Wrap `_thenUnwrap` to replace `response.job` with an enhanced Job.
38
+ */
39
+ export function enhanceJob(client, promise) {
40
+ return promise._thenUnwrap((data) => ({
41
+ ...data,
42
+ job: Job.from(client, data.job),
43
+ }));
44
+ }
45
+ //# sourceMappingURL=job.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"job.mjs","sourceRoot":"","sources":["../src/lib/job.ts"],"names":[],"mappings":"AAaA,MAAM,iBAAiB,GAAmB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;AAEtF,2DAA2D;AAC3D,MAAM,OAAO,UAAU;IAGrB;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAY,OAAqB;QACzC,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAK,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,MAAO,CAAC;QAChD,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,OAAO,GAAG,SAAS,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE9D,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/C,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YAChE,OAAO,IAAI,UAAU,CAAC;QACxB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,4BAA4B,SAAS,GAAG,IAAK,GAAG,CAAC,CAAC;IACrF,CAAC;IAED,gDAAgD;IAChD,MAAM,CAAC,IAAI,CAAC,MAAgB,EAAE,IAAgC;QAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,IAAI,CAAQ,CAAC;QAC5E,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAID,MAAM,CAAC,MAAM,GAAG,GAAG,UAAU,CAAC;AAQ9B;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,MAAgB,EAChB,OAAsB;IAEtB,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,GAAG,IAAI;QACP,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAiC,CAAC;KAC9D,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { APIPromise } from "../core/api-promise.mjs";
2
+ import type { RequestOptions } from "../internal/request-options.mjs";
3
+ import { Models } from "../resources/models/models.mjs";
4
+ import { Train, type TrainTriggerParams, type TrainTriggerResponse } from "../resources/models/train.mjs";
5
+ import { type WithJob } from "./job.mjs";
6
+ /**
7
+ * Enhanced Train resource.
8
+ * `trigger()` returns a response where `job` has `.wait()`.
9
+ */
10
+ export declare class EnhancedTrain extends Train {
11
+ trigger(modelID: string, params: TrainTriggerParams, options?: RequestOptions): APIPromise<WithJob<TrainTriggerResponse>>;
12
+ }
13
+ /**
14
+ * Enhanced Models resource.
15
+ * All original methods inherited. `train` is an {@link EnhancedTrain}.
16
+ */
17
+ export declare class EnhancedModels extends Models {
18
+ train: EnhancedTrain;
19
+ }
20
+ //# sourceMappingURL=models.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.mts","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,UAAU,EAAE;OACnB,KAAK,EAAE,cAAc,EAAE;OACvB,EAAE,MAAM,EAAE;OACV,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE;OAC7D,EAAE,KAAK,OAAO,EAAc;AAEnC;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAC7B,OAAO,CACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAG7C;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,MAAM;IAC/B,KAAK,EAAE,aAAa,CAAmC;CACjE"}
@@ -0,0 +1,20 @@
1
+ import type { APIPromise } from "../core/api-promise.js";
2
+ import type { RequestOptions } from "../internal/request-options.js";
3
+ import { Models } from "../resources/models/models.js";
4
+ import { Train, type TrainTriggerParams, type TrainTriggerResponse } from "../resources/models/train.js";
5
+ import { type WithJob } from "./job.js";
6
+ /**
7
+ * Enhanced Train resource.
8
+ * `trigger()` returns a response where `job` has `.wait()`.
9
+ */
10
+ export declare class EnhancedTrain extends Train {
11
+ trigger(modelID: string, params: TrainTriggerParams, options?: RequestOptions): APIPromise<WithJob<TrainTriggerResponse>>;
12
+ }
13
+ /**
14
+ * Enhanced Models resource.
15
+ * All original methods inherited. `train` is an {@link EnhancedTrain}.
16
+ */
17
+ export declare class EnhancedModels extends Models {
18
+ train: EnhancedTrain;
19
+ }
20
+ //# sourceMappingURL=models.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,UAAU,EAAE;OACnB,KAAK,EAAE,cAAc,EAAE;OACvB,EAAE,MAAM,EAAE;OACV,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE;OAC7D,EAAE,KAAK,OAAO,EAAc;AAEnC;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAC7B,OAAO,CACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,kBAAkB,EAC1B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAG7C;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,MAAM;IAC/B,KAAK,EAAE,aAAa,CAAmC;CACjE"}
package/lib/models.js ADDED
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnhancedModels = exports.EnhancedTrain = void 0;
4
+ const models_1 = require("../resources/models/models.js");
5
+ const train_1 = require("../resources/models/train.js");
6
+ const job_1 = require("./job.js");
7
+ /**
8
+ * Enhanced Train resource.
9
+ * `trigger()` returns a response where `job` has `.wait()`.
10
+ */
11
+ class EnhancedTrain extends train_1.Train {
12
+ trigger(modelID, params, options) {
13
+ return (0, job_1.enhanceJob)(this._client, super.trigger(modelID, params, options));
14
+ }
15
+ }
16
+ exports.EnhancedTrain = EnhancedTrain;
17
+ /**
18
+ * Enhanced Models resource.
19
+ * All original methods inherited. `train` is an {@link EnhancedTrain}.
20
+ */
21
+ class EnhancedModels extends models_1.Models {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.train = new EnhancedTrain(this._client);
25
+ }
26
+ }
27
+ exports.EnhancedModels = EnhancedModels;
28
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":";;;AAEA,0DAAoD;AACpD,wDAAsG;AACtG,kCAAiD;AAEjD;;;GAGG;AACH,MAAa,aAAc,SAAQ,aAAK;IAC7B,OAAO,CACd,OAAe,EACf,MAA0B,EAC1B,OAAwB;QAExB,OAAO,IAAA,gBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC3E,CAAC;CACF;AARD,sCAQC;AAED;;;GAGG;AACH,MAAa,cAAe,SAAQ,eAAM;IAA1C;;QACW,UAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;CAAA;AAFD,wCAEC"}
package/lib/models.mjs ADDED
@@ -0,0 +1,23 @@
1
+ import { Models } from "../resources/models/models.mjs";
2
+ import { Train } from "../resources/models/train.mjs";
3
+ import { enhanceJob } from "./job.mjs";
4
+ /**
5
+ * Enhanced Train resource.
6
+ * `trigger()` returns a response where `job` has `.wait()`.
7
+ */
8
+ export class EnhancedTrain extends Train {
9
+ trigger(modelID, params, options) {
10
+ return enhanceJob(this._client, super.trigger(modelID, params, options));
11
+ }
12
+ }
13
+ /**
14
+ * Enhanced Models resource.
15
+ * All original methods inherited. `train` is an {@link EnhancedTrain}.
16
+ */
17
+ export class EnhancedModels extends Models {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.train = new EnhancedTrain(this._client);
21
+ }
22
+ }
23
+ //# sourceMappingURL=models.mjs.map
@@ -0,0 +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"}
@@ -0,0 +1,39 @@
1
+ import { Scenario as BaseScenario } from "../client.mjs";
2
+ import { EnhancedGenerate } from "./generate.mjs";
3
+ import { EnhancedModels } from "./models.mjs";
4
+ import { EnhancedWorkflows } from "./workflow.mjs";
5
+ /**
6
+ * Enhanced Scenario client.
7
+ *
8
+ * Extends the generated client — all original methods are inherited.
9
+ * Job-producing methods return responses where `job` has `.wait()`.
10
+ * Workflow retrieve returns a response where `workflow` has `.findNode()`.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import Scenario from '@scenario-labs/sdk';
15
+ *
16
+ * const client = new Scenario({ apiKey: '...' });
17
+ *
18
+ * // All generated methods work as-is
19
+ * const list = await client.assets.list({});
20
+ *
21
+ * // Enhanced: response.job.wait()
22
+ * const run = await client.workflows.run(workflowId, { body });
23
+ * const completed = await run.job.wait();
24
+ *
25
+ * // Enhanced: response.workflow.findNode()
26
+ * const wf = await client.workflows.retrieve(workflowId);
27
+ * wf.workflow.findNode('final_image');
28
+ *
29
+ * // Enhanced: generate job.wait()
30
+ * const gen = await client.generate.runModel(modelId, { body });
31
+ * const done = await gen.job.wait();
32
+ * ```
33
+ */
34
+ export declare class Scenario extends BaseScenario {
35
+ workflows: EnhancedWorkflows;
36
+ generate: EnhancedGenerate;
37
+ models: EnhancedModels;
38
+ }
39
+ //# sourceMappingURL=scenario.d.mts.map
@@ -0,0 +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"}
@@ -0,0 +1,39 @@
1
+ import { Scenario as BaseScenario } from "../client.js";
2
+ import { EnhancedGenerate } from "./generate.js";
3
+ import { EnhancedModels } from "./models.js";
4
+ import { EnhancedWorkflows } from "./workflow.js";
5
+ /**
6
+ * Enhanced Scenario client.
7
+ *
8
+ * Extends the generated client — all original methods are inherited.
9
+ * Job-producing methods return responses where `job` has `.wait()`.
10
+ * Workflow retrieve returns a response where `workflow` has `.findNode()`.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import Scenario from '@scenario-labs/sdk';
15
+ *
16
+ * const client = new Scenario({ apiKey: '...' });
17
+ *
18
+ * // All generated methods work as-is
19
+ * const list = await client.assets.list({});
20
+ *
21
+ * // Enhanced: response.job.wait()
22
+ * const run = await client.workflows.run(workflowId, { body });
23
+ * const completed = await run.job.wait();
24
+ *
25
+ * // Enhanced: response.workflow.findNode()
26
+ * const wf = await client.workflows.retrieve(workflowId);
27
+ * wf.workflow.findNode('final_image');
28
+ *
29
+ * // Enhanced: generate job.wait()
30
+ * const gen = await client.generate.runModel(modelId, { body });
31
+ * const done = await gen.job.wait();
32
+ * ```
33
+ */
34
+ export declare class Scenario extends BaseScenario {
35
+ workflows: EnhancedWorkflows;
36
+ generate: EnhancedGenerate;
37
+ models: EnhancedModels;
38
+ }
39
+ //# sourceMappingURL=scenario.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Scenario = void 0;
4
+ const client_1 = require("../client.js");
5
+ const generate_1 = require("./generate.js");
6
+ const models_1 = require("./models.js");
7
+ const workflow_1 = require("./workflow.js");
8
+ /**
9
+ * Enhanced Scenario client.
10
+ *
11
+ * Extends the generated client — all original methods are inherited.
12
+ * Job-producing methods return responses where `job` has `.wait()`.
13
+ * Workflow retrieve returns a response where `workflow` has `.findNode()`.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import Scenario from '@scenario-labs/sdk';
18
+ *
19
+ * const client = new Scenario({ apiKey: '...' });
20
+ *
21
+ * // All generated methods work as-is
22
+ * const list = await client.assets.list({});
23
+ *
24
+ * // Enhanced: response.job.wait()
25
+ * const run = await client.workflows.run(workflowId, { body });
26
+ * const completed = await run.job.wait();
27
+ *
28
+ * // Enhanced: response.workflow.findNode()
29
+ * const wf = await client.workflows.retrieve(workflowId);
30
+ * wf.workflow.findNode('final_image');
31
+ *
32
+ * // Enhanced: generate job.wait()
33
+ * const gen = await client.generate.runModel(modelId, { body });
34
+ * const done = await gen.job.wait();
35
+ * ```
36
+ */
37
+ class Scenario extends client_1.Scenario {
38
+ constructor() {
39
+ super(...arguments);
40
+ this.workflows = new workflow_1.EnhancedWorkflows(this);
41
+ this.generate = new generate_1.EnhancedGenerate(this);
42
+ this.models = new models_1.EnhancedModels(this);
43
+ }
44
+ }
45
+ exports.Scenario = Scenario;
46
+ //# sourceMappingURL=scenario.js.map
@@ -0,0 +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"}
@@ -0,0 +1,42 @@
1
+ import { Scenario as BaseScenario } from "../client.mjs";
2
+ import { EnhancedGenerate } from "./generate.mjs";
3
+ import { EnhancedModels } from "./models.mjs";
4
+ import { EnhancedWorkflows } from "./workflow.mjs";
5
+ /**
6
+ * Enhanced Scenario client.
7
+ *
8
+ * Extends the generated client — all original methods are inherited.
9
+ * Job-producing methods return responses where `job` has `.wait()`.
10
+ * Workflow retrieve returns a response where `workflow` has `.findNode()`.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import Scenario from '@scenario-labs/sdk';
15
+ *
16
+ * const client = new Scenario({ apiKey: '...' });
17
+ *
18
+ * // All generated methods work as-is
19
+ * const list = await client.assets.list({});
20
+ *
21
+ * // Enhanced: response.job.wait()
22
+ * const run = await client.workflows.run(workflowId, { body });
23
+ * const completed = await run.job.wait();
24
+ *
25
+ * // Enhanced: response.workflow.findNode()
26
+ * const wf = await client.workflows.retrieve(workflowId);
27
+ * wf.workflow.findNode('final_image');
28
+ *
29
+ * // Enhanced: generate job.wait()
30
+ * const gen = await client.generate.runModel(modelId, { body });
31
+ * const done = await gen.job.wait();
32
+ * ```
33
+ */
34
+ export class Scenario extends BaseScenario {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.workflows = new EnhancedWorkflows(this);
38
+ this.generate = new EnhancedGenerate(this);
39
+ this.models = new EnhancedModels(this);
40
+ }
41
+ }
42
+ //# sourceMappingURL=scenario.mjs.map
@@ -0,0 +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"}
@@ -0,0 +1,48 @@
1
+ import type { APIPromise } from "../core/api-promise.mjs";
2
+ import type { RequestOptions } from "../internal/request-options.mjs";
3
+ import { Workflows, type WorkflowApproveUserParams, type WorkflowApproveUserResponse, type WorkflowRetrieveResponse, type WorkflowRunParams, type WorkflowRunResponse } from "../resources/workflows.mjs";
4
+ import { type WithJob } from "./job.mjs";
5
+ type DefinitionFlow = WorkflowRetrieveResponse.Workflow.Flow;
6
+ type NodeType = DefinitionFlow['type'];
7
+ /**
8
+ * Enhanced workflow object with helper methods.
9
+ * Has all original workflow fields plus `findNode()`, `getNodesByType()`.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const response = await client.workflows.retrieve(workflowId);
14
+ * response.workflow.findNode('final_image');
15
+ * response.workflow.getNodesByType('custom-model');
16
+ * response.workflow.name; // original fields still work
17
+ * ```
18
+ */
19
+ export declare class WorkflowEntity {
20
+ /** Find a node in the workflow definition by ID. */
21
+ findNode(this: WorkflowEntity & WorkflowRetrieveResponse.Workflow, nodeId: string): DefinitionFlow | undefined;
22
+ /** Get all nodes of a specific type from the workflow definition. */
23
+ getNodesByType(this: WorkflowEntity & WorkflowRetrieveResponse.Workflow, type: NodeType): DefinitionFlow[];
24
+ /** @internal Create a WorkflowEntity from raw workflow data. */
25
+ static from(data: WorkflowRetrieveResponse.Workflow): WorkflowRetrieveResponse.Workflow & WorkflowEntity;
26
+ }
27
+ /** Enhanced retrieve response with workflow entity methods. */
28
+ export type EnhancedWorkflowRetrieveResponse = Omit<WorkflowRetrieveResponse, 'workflow'> & {
29
+ workflow: WorkflowRetrieveResponse.Workflow & WorkflowEntity;
30
+ };
31
+ /**
32
+ * Enhanced Workflows resource.
33
+ * Extends the generated {@link Workflows} — all original methods are inherited.
34
+ * Overrides `retrieve()`, `run()`, and `approveUser()` to return enriched response objects.
35
+ */
36
+ export declare class EnhancedWorkflows extends Workflows {
37
+ /**
38
+ * Get workflow by ID. Returns an enhanced response where `workflow` has
39
+ * `findNode()` and `getNodesByType()`.
40
+ */
41
+ retrieve(workflowID: string, options?: RequestOptions): APIPromise<EnhancedWorkflowRetrieveResponse>;
42
+ /** Run a workflow. Returns an enhanced response where `job` has `.wait()`. */
43
+ run(workflowID: string, params: WorkflowRunParams, options?: RequestOptions): APIPromise<WithJob<WorkflowRunResponse>>;
44
+ /** Approve a user approval node. Returns an enhanced response where `job` has `.wait()`. */
45
+ approveUser(workflowID: string, body: WorkflowApproveUserParams, options?: RequestOptions): APIPromise<WithJob<WorkflowApproveUserResponse>>;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=workflow.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.mts","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,UAAU,EAAE;OACnB,KAAK,EAAE,cAAc,EAAE;OACvB,EACL,SAAS,EACT,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB;OACM,EAAE,KAAK,OAAO,EAAc;AAEnC,KAAK,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7D,KAAK,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAEvC;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACzB,oDAAoD;IACpD,QAAQ,CACN,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EACxD,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS;IAI7B,qEAAqE;IACrE,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,cAAc,EAAE;IAI1G,gEAAgE;IAChE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,GAAG,cAAc;CAGzG;AAED,+DAA+D;AAC/D,MAAM,MAAM,gCAAgC,GAAG,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,GAAG;IAC1F,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,GAAG,cAAc,CAAC;CAC9D,CAAC;AAEF;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C;;;OAGG;IACM,QAAQ,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,gCAAgC,CAAC;IAO/C,8EAA8E;IACrE,GAAG,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAI3C,4FAA4F;IACnF,WAAW,CAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAGpD"}
@@ -0,0 +1,48 @@
1
+ import type { APIPromise } from "../core/api-promise.js";
2
+ import type { RequestOptions } from "../internal/request-options.js";
3
+ import { Workflows, type WorkflowApproveUserParams, type WorkflowApproveUserResponse, type WorkflowRetrieveResponse, type WorkflowRunParams, type WorkflowRunResponse } from "../resources/workflows.js";
4
+ import { type WithJob } from "./job.js";
5
+ type DefinitionFlow = WorkflowRetrieveResponse.Workflow.Flow;
6
+ type NodeType = DefinitionFlow['type'];
7
+ /**
8
+ * Enhanced workflow object with helper methods.
9
+ * Has all original workflow fields plus `findNode()`, `getNodesByType()`.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * const response = await client.workflows.retrieve(workflowId);
14
+ * response.workflow.findNode('final_image');
15
+ * response.workflow.getNodesByType('custom-model');
16
+ * response.workflow.name; // original fields still work
17
+ * ```
18
+ */
19
+ export declare class WorkflowEntity {
20
+ /** Find a node in the workflow definition by ID. */
21
+ findNode(this: WorkflowEntity & WorkflowRetrieveResponse.Workflow, nodeId: string): DefinitionFlow | undefined;
22
+ /** Get all nodes of a specific type from the workflow definition. */
23
+ getNodesByType(this: WorkflowEntity & WorkflowRetrieveResponse.Workflow, type: NodeType): DefinitionFlow[];
24
+ /** @internal Create a WorkflowEntity from raw workflow data. */
25
+ static from(data: WorkflowRetrieveResponse.Workflow): WorkflowRetrieveResponse.Workflow & WorkflowEntity;
26
+ }
27
+ /** Enhanced retrieve response with workflow entity methods. */
28
+ export type EnhancedWorkflowRetrieveResponse = Omit<WorkflowRetrieveResponse, 'workflow'> & {
29
+ workflow: WorkflowRetrieveResponse.Workflow & WorkflowEntity;
30
+ };
31
+ /**
32
+ * Enhanced Workflows resource.
33
+ * Extends the generated {@link Workflows} — all original methods are inherited.
34
+ * Overrides `retrieve()`, `run()`, and `approveUser()` to return enriched response objects.
35
+ */
36
+ export declare class EnhancedWorkflows extends Workflows {
37
+ /**
38
+ * Get workflow by ID. Returns an enhanced response where `workflow` has
39
+ * `findNode()` and `getNodesByType()`.
40
+ */
41
+ retrieve(workflowID: string, options?: RequestOptions): APIPromise<EnhancedWorkflowRetrieveResponse>;
42
+ /** Run a workflow. Returns an enhanced response where `job` has `.wait()`. */
43
+ run(workflowID: string, params: WorkflowRunParams, options?: RequestOptions): APIPromise<WithJob<WorkflowRunResponse>>;
44
+ /** Approve a user approval node. Returns an enhanced response where `job` has `.wait()`. */
45
+ approveUser(workflowID: string, body: WorkflowApproveUserParams, options?: RequestOptions): APIPromise<WithJob<WorkflowApproveUserResponse>>;
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,UAAU,EAAE;OACnB,KAAK,EAAE,cAAc,EAAE;OACvB,EACL,SAAS,EACT,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB;OACM,EAAE,KAAK,OAAO,EAAc;AAEnC,KAAK,cAAc,GAAG,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC7D,KAAK,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAEvC;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACzB,oDAAoD;IACpD,QAAQ,CACN,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EACxD,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS;IAI7B,qEAAqE;IACrE,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,wBAAwB,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,cAAc,EAAE;IAI1G,gEAAgE;IAChE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,wBAAwB,CAAC,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,GAAG,cAAc;CAGzG;AAED,+DAA+D;AAC/D,MAAM,MAAM,gCAAgC,GAAG,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,GAAG;IAC1F,QAAQ,EAAE,wBAAwB,CAAC,QAAQ,GAAG,cAAc,CAAC;CAC9D,CAAC;AAEF;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,SAAS;IAC9C;;;OAGG;IACM,QAAQ,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,gCAAgC,CAAC;IAO/C,8EAA8E;IACrE,GAAG,CACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,iBAAiB,EACzB,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAI3C,4FAA4F;IACnF,WAAW,CAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAGpD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EnhancedWorkflows = exports.WorkflowEntity = void 0;
4
+ const workflows_1 = require("../resources/workflows.js");
5
+ const job_1 = require("./job.js");
6
+ /**
7
+ * Enhanced workflow object with helper methods.
8
+ * Has all original workflow fields plus `findNode()`, `getNodesByType()`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const response = await client.workflows.retrieve(workflowId);
13
+ * response.workflow.findNode('final_image');
14
+ * response.workflow.getNodesByType('custom-model');
15
+ * response.workflow.name; // original fields still work
16
+ * ```
17
+ */
18
+ class WorkflowEntity {
19
+ /** Find a node in the workflow definition by ID. */
20
+ findNode(nodeId) {
21
+ return this.flow.find((node) => node.id === nodeId);
22
+ }
23
+ /** Get all nodes of a specific type from the workflow definition. */
24
+ getNodesByType(type) {
25
+ return this.flow.filter((node) => node.type === type);
26
+ }
27
+ /** @internal Create a WorkflowEntity from raw workflow data. */
28
+ static from(data) {
29
+ return Object.assign(Object.create(WorkflowEntity.prototype), data);
30
+ }
31
+ }
32
+ exports.WorkflowEntity = WorkflowEntity;
33
+ /**
34
+ * Enhanced Workflows resource.
35
+ * Extends the generated {@link Workflows} — all original methods are inherited.
36
+ * Overrides `retrieve()`, `run()`, and `approveUser()` to return enriched response objects.
37
+ */
38
+ class EnhancedWorkflows extends workflows_1.Workflows {
39
+ /**
40
+ * Get workflow by ID. Returns an enhanced response where `workflow` has
41
+ * `findNode()` and `getNodesByType()`.
42
+ */
43
+ retrieve(workflowID, options) {
44
+ return super.retrieve(workflowID, options)._thenUnwrap((data) => ({
45
+ ...data,
46
+ workflow: WorkflowEntity.from(data.workflow),
47
+ }));
48
+ }
49
+ /** Run a workflow. Returns an enhanced response where `job` has `.wait()`. */
50
+ run(workflowID, params, options) {
51
+ return (0, job_1.enhanceJob)(this._client, super.run(workflowID, params, options));
52
+ }
53
+ /** Approve a user approval node. Returns an enhanced response where `job` has `.wait()`. */
54
+ approveUser(workflowID, body, options) {
55
+ return (0, job_1.enhanceJob)(this._client, super.approveUser(workflowID, body, options));
56
+ }
57
+ }
58
+ exports.EnhancedWorkflows = EnhancedWorkflows;
59
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":";;;AAEA,yDAOgC;AAChC,kCAAiD;AAKjD;;;;;;;;;;;GAWG;AACH,MAAa,cAAc;IACzB,oDAAoD;IACpD,QAAQ,CAEN,MAAc;QAEd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,qEAAqE;IACrE,cAAc,CAA2D,IAAc;QACrF,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,gEAAgE;IAChE,MAAM,CAAC,IAAI,CAAC,IAAuC;QACjD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;CACF;AAlBD,wCAkBC;AAOD;;;;GAIG;AACH,MAAa,iBAAkB,SAAQ,qBAAS;IAC9C;;;OAGG;IACM,QAAQ,CACf,UAAkB,EAClB,OAAwB;QAExB,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChE,GAAG,IAAI;YACP,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;SAC7C,CAAC,CAAC,CAAC;IACN,CAAC;IAED,8EAA8E;IACrE,GAAG,CACV,UAAkB,EAClB,MAAyB,EACzB,OAAwB;QAExB,OAAO,IAAA,gBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,4FAA4F;IACnF,WAAW,CAClB,UAAkB,EAClB,IAA+B,EAC/B,OAAwB;QAExB,OAAO,IAAA,gBAAU,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAChF,CAAC;CACF;AAhCD,8CAgCC"}