@scenario-labs/sdk 0.1.2 → 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 +31 -0
  2. package/LICENSE +4 -198
  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 +14 -4
  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
@@ -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"}
@@ -0,0 +1,54 @@
1
+ import { Workflows, } from "../resources/workflows.mjs";
2
+ import { enhanceJob } from "./job.mjs";
3
+ /**
4
+ * Enhanced workflow object with helper methods.
5
+ * Has all original workflow fields plus `findNode()`, `getNodesByType()`.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const response = await client.workflows.retrieve(workflowId);
10
+ * response.workflow.findNode('final_image');
11
+ * response.workflow.getNodesByType('custom-model');
12
+ * response.workflow.name; // original fields still work
13
+ * ```
14
+ */
15
+ export class WorkflowEntity {
16
+ /** Find a node in the workflow definition by ID. */
17
+ findNode(nodeId) {
18
+ return this.flow.find((node) => node.id === nodeId);
19
+ }
20
+ /** Get all nodes of a specific type from the workflow definition. */
21
+ getNodesByType(type) {
22
+ return this.flow.filter((node) => node.type === type);
23
+ }
24
+ /** @internal Create a WorkflowEntity from raw workflow data. */
25
+ static from(data) {
26
+ return Object.assign(Object.create(WorkflowEntity.prototype), data);
27
+ }
28
+ }
29
+ /**
30
+ * Enhanced Workflows resource.
31
+ * Extends the generated {@link Workflows} — all original methods are inherited.
32
+ * Overrides `retrieve()`, `run()`, and `approveUser()` to return enriched response objects.
33
+ */
34
+ export class EnhancedWorkflows extends Workflows {
35
+ /**
36
+ * Get workflow by ID. Returns an enhanced response where `workflow` has
37
+ * `findNode()` and `getNodesByType()`.
38
+ */
39
+ retrieve(workflowID, options) {
40
+ return super.retrieve(workflowID, options)._thenUnwrap((data) => ({
41
+ ...data,
42
+ workflow: WorkflowEntity.from(data.workflow),
43
+ }));
44
+ }
45
+ /** Run a workflow. Returns an enhanced response where `job` has `.wait()`. */
46
+ run(workflowID, params, options) {
47
+ return enhanceJob(this._client, super.run(workflowID, params, options));
48
+ }
49
+ /** Approve a user approval node. Returns an enhanced response where `job` has `.wait()`. */
50
+ approveUser(workflowID, body, options) {
51
+ return enhanceJob(this._client, super.approveUser(workflowID, body, options));
52
+ }
53
+ }
54
+ //# sourceMappingURL=workflow.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.mjs","sourceRoot":"","sources":["../src/lib/workflow.ts"],"names":[],"mappings":"OAEO,EACL,SAAS,GAMV;OACM,EAAgB,UAAU,EAAE;AAKnC;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,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;AAOD;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,SAAS;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,UAAU,CAAC,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,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAChF,CAAC;CACF"}
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@scenario-labs/sdk",
3
- "version": "0.1.2",
4
- "description": "The official TypeScript library for the Scenario SDK API",
5
- "author": "Scenario SDK <support@scenario.com>",
3
+ "version": "0.2.0",
4
+ "description": "The official TypeScript library for the Scenario API",
5
+ "author": "Scenario <support@scenario.com>",
6
6
  "types": "./index.d.ts",
7
7
  "main": "./index.js",
8
8
  "type": "commonjs",
9
9
  "repository": "github:scenario-labs/scenario-sdk-typescript",
10
- "license": "Apache-2.0",
10
+ "license": "MIT",
11
11
  "files": [
12
12
  "**/*"
13
13
  ],
@@ -81,6 +81,16 @@
81
81
  "./index.mjs": {
82
82
  "default": "./index.mjs"
83
83
  },
84
+ "./lib/*.mjs": {
85
+ "default": "./lib/*.mjs"
86
+ },
87
+ "./lib/*.js": {
88
+ "default": "./lib/*.js"
89
+ },
90
+ "./lib/*": {
91
+ "import": "./lib/*.mjs",
92
+ "require": "./lib/*.js"
93
+ },
84
94
  "./resource": {
85
95
  "import": "./resource.mjs",
86
96
  "require": "./resource.js"