@scenario-labs/sdk 2.2.1 → 2.3.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 (139) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/index.d.mts +1 -0
  3. package/index.d.mts.map +1 -1
  4. package/index.d.ts +1 -0
  5. package/index.d.ts.map +1 -1
  6. package/index.js +3 -1
  7. package/index.js.map +1 -1
  8. package/index.mjs +1 -0
  9. package/index.mjs.map +1 -1
  10. package/lib/auth-refresh.d.mts +52 -0
  11. package/lib/auth-refresh.d.mts.map +1 -0
  12. package/lib/auth-refresh.d.ts +52 -0
  13. package/lib/auth-refresh.d.ts.map +1 -0
  14. package/lib/auth-refresh.js +81 -0
  15. package/lib/auth-refresh.js.map +1 -0
  16. package/lib/auth-refresh.mjs +78 -0
  17. package/lib/auth-refresh.mjs.map +1 -0
  18. package/lib/generate.js +7 -7
  19. package/lib/generate.js.map +1 -1
  20. package/lib/generate.mjs +7 -7
  21. package/lib/generate.mjs.map +1 -1
  22. package/lib/job.d.mts +15 -3
  23. package/lib/job.d.mts.map +1 -1
  24. package/lib/job.d.ts +15 -3
  25. package/lib/job.d.ts.map +1 -1
  26. package/lib/job.js +22 -8
  27. package/lib/job.js.map +1 -1
  28. package/lib/job.mjs +22 -8
  29. package/lib/job.mjs.map +1 -1
  30. package/lib/models.d.mts +8 -2
  31. package/lib/models.d.mts.map +1 -1
  32. package/lib/models.d.ts +8 -2
  33. package/lib/models.d.ts.map +1 -1
  34. package/lib/models.js +13 -5
  35. package/lib/models.js.map +1 -1
  36. package/lib/models.mjs +13 -5
  37. package/lib/models.mjs.map +1 -1
  38. package/lib/scenario.d.mts +28 -13
  39. package/lib/scenario.d.mts.map +1 -1
  40. package/lib/scenario.d.ts +28 -13
  41. package/lib/scenario.d.ts.map +1 -1
  42. package/lib/scenario.js +31 -12
  43. package/lib/scenario.js.map +1 -1
  44. package/lib/scenario.mjs +31 -12
  45. package/lib/scenario.mjs.map +1 -1
  46. package/lib/scope.d.mts +41 -0
  47. package/lib/scope.d.mts.map +1 -0
  48. package/lib/scope.d.ts +41 -0
  49. package/lib/scope.d.ts.map +1 -0
  50. package/lib/scope.js +55 -0
  51. package/lib/scope.js.map +1 -0
  52. package/lib/scope.mjs +49 -0
  53. package/lib/scope.mjs.map +1 -0
  54. package/lib/upload.d.mts +15 -3
  55. package/lib/upload.d.mts.map +1 -1
  56. package/lib/upload.d.ts +15 -3
  57. package/lib/upload.d.ts.map +1 -1
  58. package/lib/upload.js +29 -12
  59. package/lib/upload.js.map +1 -1
  60. package/lib/upload.mjs +29 -12
  61. package/lib/upload.mjs.map +1 -1
  62. package/lib/workflow.d.mts +8 -2
  63. package/lib/workflow.d.mts.map +1 -1
  64. package/lib/workflow.d.ts +8 -2
  65. package/lib/workflow.d.ts.map +1 -1
  66. package/lib/workflow.js +14 -6
  67. package/lib/workflow.js.map +1 -1
  68. package/lib/workflow.mjs +14 -6
  69. package/lib/workflow.mjs.map +1 -1
  70. package/lib/workflow_converter.d.mts +1 -4
  71. package/lib/workflow_converter.d.mts.map +1 -1
  72. package/lib/workflow_converter.d.ts +1 -4
  73. package/lib/workflow_converter.d.ts.map +1 -1
  74. package/lib/workflow_converter.js +19 -1
  75. package/lib/workflow_converter.js.map +1 -1
  76. package/lib/workflow_converter.mjs +19 -1
  77. package/lib/workflow_converter.mjs.map +1 -1
  78. package/package.json +1 -1
  79. package/resources/assets/assets.d.mts +1 -1
  80. package/resources/assets/assets.d.mts.map +1 -1
  81. package/resources/assets/assets.d.ts +1 -1
  82. package/resources/assets/assets.d.ts.map +1 -1
  83. package/resources/generate.d.mts +8 -8
  84. package/resources/generate.d.mts.map +1 -1
  85. package/resources/generate.d.ts +8 -8
  86. package/resources/generate.d.ts.map +1 -1
  87. package/resources/jobs.d.mts +3 -3
  88. package/resources/jobs.d.mts.map +1 -1
  89. package/resources/jobs.d.ts +3 -3
  90. package/resources/jobs.d.ts.map +1 -1
  91. package/resources/models/examples.d.mts +2 -2
  92. package/resources/models/examples.d.mts.map +1 -1
  93. package/resources/models/examples.d.ts +2 -2
  94. package/resources/models/examples.d.ts.map +1 -1
  95. package/resources/models/models.d.mts +126 -7
  96. package/resources/models/models.d.mts.map +1 -1
  97. package/resources/models/models.d.ts +126 -7
  98. package/resources/models/models.d.ts.map +1 -1
  99. package/resources/models/models.js.map +1 -1
  100. package/resources/models/models.mjs.map +1 -1
  101. package/resources/models/train.d.mts +37 -3
  102. package/resources/models/train.d.mts.map +1 -1
  103. package/resources/models/train.d.ts +37 -3
  104. package/resources/models/train.d.ts.map +1 -1
  105. package/resources/usages.d.mts +1 -1
  106. package/resources/usages.d.mts.map +1 -1
  107. package/resources/usages.d.ts +1 -1
  108. package/resources/usages.d.ts.map +1 -1
  109. package/resources/workflows.d.mts +22 -5
  110. package/resources/workflows.d.mts.map +1 -1
  111. package/resources/workflows.d.ts +22 -5
  112. package/resources/workflows.d.ts.map +1 -1
  113. package/resources/workflows.js +4 -1
  114. package/resources/workflows.js.map +1 -1
  115. package/resources/workflows.mjs +4 -1
  116. package/resources/workflows.mjs.map +1 -1
  117. package/src/index.ts +1 -0
  118. package/src/lib/auth-refresh.ts +98 -0
  119. package/src/lib/generate.ts +7 -7
  120. package/src/lib/job.ts +29 -7
  121. package/src/lib/models.ts +14 -4
  122. package/src/lib/scenario.ts +51 -13
  123. package/src/lib/scope.ts +68 -0
  124. package/src/lib/upload.ts +36 -11
  125. package/src/lib/workflow.ts +15 -5
  126. package/src/lib/workflow_converter.ts +26 -4
  127. package/src/resources/assets/assets.ts +1 -1
  128. package/src/resources/generate.ts +8 -8
  129. package/src/resources/jobs.ts +3 -3
  130. package/src/resources/models/examples.ts +2 -2
  131. package/src/resources/models/models.ts +189 -7
  132. package/src/resources/models/train.ts +55 -3
  133. package/src/resources/usages.ts +1 -1
  134. package/src/resources/workflows.ts +24 -5
  135. package/src/version.ts +1 -1
  136. package/version.d.mts +1 -1
  137. package/version.d.ts +1 -1
  138. package/version.js +1 -1
  139. package/version.mjs +1 -1
package/lib/job.js CHANGED
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EnhancedJobs = exports.Job = exports.JobMethods = void 0;
4
4
  exports.enhanceJob = enhanceJob;
5
5
  const jobs_1 = require("../resources/jobs.js");
6
+ const scope_1 = require("./scope.js");
6
7
  const TERMINAL_STATUSES = new Set(['success', 'failure', 'canceled']);
7
8
  /** Job methods added on top of the original job fields. */
8
9
  class JobMethods {
@@ -19,21 +20,24 @@ class JobMethods {
19
20
  async wait(options) {
20
21
  const intervalMs = options?.intervalMs ?? 3_000;
21
22
  const timeoutMs = options?.timeoutMs ?? 120_000;
23
+ const scope = waitOverrideScope(options) ?? this._scope;
22
24
  let elapsed = 0;
23
25
  while (elapsed < timeoutMs) {
24
- const response = await this._client.jobs.retrieve(this.jobId);
26
+ const response = await this._client.jobs.retrieve(this.jobId, (0, scope_1.withScope)(scope));
25
27
  if (TERMINAL_STATUSES.has(response.job.status)) {
26
- return exports.Job.from(this._client, response.job);
28
+ return exports.Job.from(this._client, response.job, scope);
27
29
  }
28
30
  await new Promise((resolve) => setTimeout(resolve, intervalMs));
29
31
  elapsed += intervalMs;
30
32
  }
31
33
  throw new Error(`Job ${this.jobId} did not complete within ${timeoutMs / 1_000}s`);
32
34
  }
33
- /** @internal Create a Job from raw job data. */
34
- static from(client, data) {
35
+ /** @internal Create a Job from raw job data, optionally remembering the originating scope. */
36
+ static from(client, data, scope) {
35
37
  const job = Object.assign(Object.create(JobMethods.prototype), data);
36
38
  Object.defineProperty(job, '_client', { value: client, enumerable: false });
39
+ if (scope)
40
+ Object.defineProperty(job, '_scope', { value: scope, enumerable: false });
37
41
  return job;
38
42
  }
39
43
  }
@@ -41,11 +45,15 @@ exports.JobMethods = JobMethods;
41
45
  exports.Job = JobMethods;
42
46
  /**
43
47
  * @internal Wrap `_thenUnwrap` to replace `response.job` with an enhanced Job.
48
+ * Captures the effective scope (per-call override or client default) so
49
+ * `.wait()` can replay it on every poll — keeping follow-up calls in sync
50
+ * with the project the job was originally created in.
44
51
  */
45
- function enhanceJob(client, promise) {
52
+ function enhanceJob(client, promise, options) {
53
+ const scope = (0, scope_1.effectiveScope)(options, (0, scope_1.clientProjectId)(client));
46
54
  return promise._thenUnwrap((data) => ({
47
55
  ...data,
48
- job: exports.Job.from(client, data.job),
56
+ job: exports.Job.from(client, data.job, scope),
49
57
  }));
50
58
  }
51
59
  /**
@@ -57,11 +65,17 @@ function enhanceJob(client, promise) {
57
65
  */
58
66
  class EnhancedJobs extends jobs_1.Jobs {
59
67
  retrieve(jobID, options) {
60
- return enhanceJob(this._client, super.retrieve(jobID, options));
68
+ return enhanceJob(this._client, super.retrieve(jobID, options), options);
61
69
  }
62
70
  triggerAction(jobID, params, options) {
63
- return enhanceJob(this._client, super.triggerAction(jobID, params, options));
71
+ return enhanceJob(this._client, super.triggerAction(jobID, params, options), options);
64
72
  }
65
73
  }
66
74
  exports.EnhancedJobs = EnhancedJobs;
75
+ /** Resolve the scope override carried by a `WaitOptions`, if any. */
76
+ function waitOverrideScope(options) {
77
+ if (!options?.projectId)
78
+ return undefined;
79
+ return { projectId: options.projectId };
80
+ }
67
81
  //# sourceMappingURL=job.js.map
package/lib/job.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/lib/job.ts"],"names":[],"mappings":";;;AA2EA,gCAQC;AAhFD,+CAK2B;AAW3B,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,KAAK,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,OAAO,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,KAAK,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;AAED;;;;;;GAMG;AACH,MAAa,YAAa,SAAQ,WAAI;IAC3B,QAAQ,CAAC,KAAa,EAAE,OAAwB;QACvD,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAEQ,aAAa,CACpB,KAAa,EACb,MAA8B,EAC9B,OAAwB;QAExB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF;AAZD,oCAYC"}
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../src/lib/job.ts"],"names":[],"mappings":"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"}
package/lib/job.mjs CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Jobs, } from "../resources/jobs.mjs";
2
+ import { clientProjectId, effectiveScope, withScope } from "./scope.mjs";
2
3
  const TERMINAL_STATUSES = new Set(['success', 'failure', 'canceled']);
3
4
  /** Job methods added on top of the original job fields. */
4
5
  export class JobMethods {
@@ -15,32 +16,39 @@ export class JobMethods {
15
16
  async wait(options) {
16
17
  const intervalMs = options?.intervalMs ?? 3_000;
17
18
  const timeoutMs = options?.timeoutMs ?? 120_000;
19
+ const scope = waitOverrideScope(options) ?? this._scope;
18
20
  let elapsed = 0;
19
21
  while (elapsed < timeoutMs) {
20
- const response = await this._client.jobs.retrieve(this.jobId);
22
+ const response = await this._client.jobs.retrieve(this.jobId, withScope(scope));
21
23
  if (TERMINAL_STATUSES.has(response.job.status)) {
22
- return Job.from(this._client, response.job);
24
+ return Job.from(this._client, response.job, scope);
23
25
  }
24
26
  await new Promise((resolve) => setTimeout(resolve, intervalMs));
25
27
  elapsed += intervalMs;
26
28
  }
27
29
  throw new Error(`Job ${this.jobId} did not complete within ${timeoutMs / 1_000}s`);
28
30
  }
29
- /** @internal Create a Job from raw job data. */
30
- static from(client, data) {
31
+ /** @internal Create a Job from raw job data, optionally remembering the originating scope. */
32
+ static from(client, data, scope) {
31
33
  const job = Object.assign(Object.create(JobMethods.prototype), data);
32
34
  Object.defineProperty(job, '_client', { value: client, enumerable: false });
35
+ if (scope)
36
+ Object.defineProperty(job, '_scope', { value: scope, enumerable: false });
33
37
  return job;
34
38
  }
35
39
  }
36
40
  export const Job = JobMethods;
37
41
  /**
38
42
  * @internal Wrap `_thenUnwrap` to replace `response.job` with an enhanced Job.
43
+ * Captures the effective scope (per-call override or client default) so
44
+ * `.wait()` can replay it on every poll — keeping follow-up calls in sync
45
+ * with the project the job was originally created in.
39
46
  */
40
- export function enhanceJob(client, promise) {
47
+ export function enhanceJob(client, promise, options) {
48
+ const scope = effectiveScope(options, clientProjectId(client));
41
49
  return promise._thenUnwrap((data) => ({
42
50
  ...data,
43
- job: Job.from(client, data.job),
51
+ job: Job.from(client, data.job, scope),
44
52
  }));
45
53
  }
46
54
  /**
@@ -52,10 +60,16 @@ export function enhanceJob(client, promise) {
52
60
  */
53
61
  export class EnhancedJobs extends Jobs {
54
62
  retrieve(jobID, options) {
55
- return enhanceJob(this._client, super.retrieve(jobID, options));
63
+ return enhanceJob(this._client, super.retrieve(jobID, options), options);
56
64
  }
57
65
  triggerAction(jobID, params, options) {
58
- return enhanceJob(this._client, super.triggerAction(jobID, params, options));
66
+ return enhanceJob(this._client, super.triggerAction(jobID, params, options), options);
59
67
  }
60
68
  }
69
+ /** Resolve the scope override carried by a `WaitOptions`, if any. */
70
+ function waitOverrideScope(options) {
71
+ if (!options?.projectId)
72
+ return undefined;
73
+ return { projectId: options.projectId };
74
+ }
61
75
  //# sourceMappingURL=job.mjs.map
package/lib/job.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"job.mjs","sourceRoot":"","sources":["../src/lib/job.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,IAAI,GAIL,8BAA0B;AAW3B,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,KAAK,CAAC;QAChD,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,OAAO,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,KAAK,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;AAED;;;;;;GAMG;AACH,MAAM,OAAO,YAAa,SAAQ,IAAI;IAC3B,QAAQ,CAAC,KAAa,EAAE,OAAwB;QACvD,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAEQ,aAAa,CACpB,KAAa,EACb,MAA8B,EAC9B,OAAwB;QAExB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF"}
1
+ {"version":3,"file":"job.mjs","sourceRoot":"","sources":["../src/lib/job.ts"],"names":[],"mappings":"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"}
package/lib/models.d.mts CHANGED
@@ -4,6 +4,7 @@ import type { GenerateRunModelParams, GenerateRunModelResponse } from "../resour
4
4
  import { Models, type ModelRetrieveParams, type ModelRetrieveResponse } from "../resources/models/models.mjs";
5
5
  import { Train, type TrainTriggerParams, type TrainTriggerResponse } from "../resources/models/train.mjs";
6
6
  import { type WithJob } from "./job.mjs";
7
+ import { type Scope } from "./scope.mjs";
7
8
  import type { Scenario } from "./scenario.mjs";
8
9
  /**
9
10
  * Enhanced Model entity with helper methods.
@@ -18,15 +19,20 @@ import type { Scenario } from "./scenario.mjs";
18
19
  */
19
20
  export declare class ModelEntity {
20
21
  /** @internal */ readonly _client: Scenario;
22
+ /** @internal scope captured from the retrieve call — replayed when `.run()` is invoked without an explicit query override. */
23
+ readonly _scope?: Scope;
21
24
  /**
22
25
  * Generate with this model. Shortcut for
23
26
  * `client.generate.runModel(this.id, params)`.
24
27
  *
25
28
  * Returns an enhanced response where `response.job` has `.wait()`.
29
+ * If the model was fetched with a `projectId` scope (per-call override or
30
+ * client default), that scope is reused unless overridden by
31
+ * `options.query`.
26
32
  */
27
33
  run(this: ModelEntity & ModelRetrieveResponse.Model, params: GenerateRunModelParams, options?: RequestOptions): APIPromise<WithJob<GenerateRunModelResponse>>;
28
- /** @internal Create a ModelEntity wrapping raw model data. */
29
- static from(client: Scenario, data: ModelRetrieveResponse.Model): ModelRetrieveResponse.Model & ModelEntity;
34
+ /** @internal Create a ModelEntity wrapping raw model data, optionally remembering the originating scope. */
35
+ static from(client: Scenario, data: ModelRetrieveResponse.Model, scope?: Scope): ModelRetrieveResponse.Model & ModelEntity;
30
36
  }
31
37
  /** Enhanced retrieve response where `model` has `.run()` on top of its original fields. */
32
38
  export type EnhancedModelRetrieveResponse = Omit<ModelRetrieveResponse, 'model'> & {
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.mts","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gCAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,wCAAoC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,kCAA8B;AAC9F,OAAO,EAAE,MAAM,EAAE,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,uCAAmC;AAC1G,OAAO,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,sCAAkC;AACtG,OAAO,EAAE,KAAK,OAAO,EAAc,kBAAc;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAmB;AAE3C;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IACtB,gBAAgB,CAAC,SAAiB,OAAO,EAAE,QAAQ,CAAC;IAEpD;;;;;OAKG;IACH,GAAG,CACD,IAAI,EAAE,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAC/C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAIhD,8DAA8D;IAC9D,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,qBAAqB,CAAC,KAAK,GAChC,qBAAqB,CAAC,KAAK,GAAG,WAAW;CAK7C;AAED,2FAA2F;AAC3F,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG;IACjF,KAAK,EAAE,qBAAqB,CAAC,KAAK,GAAG,WAAW,CAAC;CAClD,CAAC;AAEF;;;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;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,MAAM;IAC/B,KAAK,EAAE,aAAa,CAAmC;IAEvD,QAAQ,CACf,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,mBAAmB,GAAG,IAAI,GAAG,SAAc,EAClD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,6BAA6B,CAAC;CAM7C"}
1
+ {"version":3,"file":"models.d.mts","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gCAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,wCAAoC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,kCAA8B;AAC9F,OAAO,EAAE,MAAM,EAAE,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,uCAAmC;AAC1G,OAAO,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,sCAAkC;AACtG,OAAO,EAAE,KAAK,OAAO,EAAc,kBAAc;AACjD,OAAO,EAAE,KAAK,KAAK,EAA6B,oBAAgB;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAmB;AAE3C;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IACtB,gBAAgB,CAAC,SAAiB,OAAO,EAAE,QAAQ,CAAC;IACpD,8HAA8H;IAC9H,SAAiB,MAAM,CAAC,EAAE,KAAK,CAAC;IAEhC;;;;;;;;OAQG;IACH,GAAG,CACD,IAAI,EAAE,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAC/C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAIhD,4GAA4G;IAC5G,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,qBAAqB,CAAC,KAAK,EACjC,KAAK,CAAC,EAAE,KAAK,GACZ,qBAAqB,CAAC,KAAK,GAAG,WAAW;CAM7C;AAED,2FAA2F;AAC3F,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG;IACjF,KAAK,EAAE,qBAAqB,CAAC,KAAK,GAAG,WAAW,CAAC;CAClD,CAAC;AAEF;;;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;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,MAAM;IAC/B,KAAK,EAAE,aAAa,CAAmC;IAEvD,QAAQ,CACf,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,mBAAmB,GAAG,IAAI,GAAG,SAAc,EAClD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,6BAA6B,CAAC;CAQ7C"}
package/lib/models.d.ts CHANGED
@@ -4,6 +4,7 @@ import type { GenerateRunModelParams, GenerateRunModelResponse } from "../resour
4
4
  import { Models, type ModelRetrieveParams, type ModelRetrieveResponse } from "../resources/models/models.js";
5
5
  import { Train, type TrainTriggerParams, type TrainTriggerResponse } from "../resources/models/train.js";
6
6
  import { type WithJob } from "./job.js";
7
+ import { type Scope } from "./scope.js";
7
8
  import type { Scenario } from "./scenario.js";
8
9
  /**
9
10
  * Enhanced Model entity with helper methods.
@@ -18,15 +19,20 @@ import type { Scenario } from "./scenario.js";
18
19
  */
19
20
  export declare class ModelEntity {
20
21
  /** @internal */ readonly _client: Scenario;
22
+ /** @internal scope captured from the retrieve call — replayed when `.run()` is invoked without an explicit query override. */
23
+ readonly _scope?: Scope;
21
24
  /**
22
25
  * Generate with this model. Shortcut for
23
26
  * `client.generate.runModel(this.id, params)`.
24
27
  *
25
28
  * Returns an enhanced response where `response.job` has `.wait()`.
29
+ * If the model was fetched with a `projectId` scope (per-call override or
30
+ * client default), that scope is reused unless overridden by
31
+ * `options.query`.
26
32
  */
27
33
  run(this: ModelEntity & ModelRetrieveResponse.Model, params: GenerateRunModelParams, options?: RequestOptions): APIPromise<WithJob<GenerateRunModelResponse>>;
28
- /** @internal Create a ModelEntity wrapping raw model data. */
29
- static from(client: Scenario, data: ModelRetrieveResponse.Model): ModelRetrieveResponse.Model & ModelEntity;
34
+ /** @internal Create a ModelEntity wrapping raw model data, optionally remembering the originating scope. */
35
+ static from(client: Scenario, data: ModelRetrieveResponse.Model, scope?: Scope): ModelRetrieveResponse.Model & ModelEntity;
30
36
  }
31
37
  /** Enhanced retrieve response where `model` has `.run()` on top of its original fields. */
32
38
  export type EnhancedModelRetrieveResponse = Omit<ModelRetrieveResponse, 'model'> & {
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,+BAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,uCAAoC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,iCAA8B;AAC9F,OAAO,EAAE,MAAM,EAAE,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,sCAAmC;AAC1G,OAAO,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,qCAAkC;AACtG,OAAO,EAAE,KAAK,OAAO,EAAc,iBAAc;AAEjD,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAmB;AAE3C;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IACtB,gBAAgB,CAAC,SAAiB,OAAO,EAAE,QAAQ,CAAC;IAEpD;;;;;OAKG;IACH,GAAG,CACD,IAAI,EAAE,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAC/C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAIhD,8DAA8D;IAC9D,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,qBAAqB,CAAC,KAAK,GAChC,qBAAqB,CAAC,KAAK,GAAG,WAAW;CAK7C;AAED,2FAA2F;AAC3F,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG;IACjF,KAAK,EAAE,qBAAqB,CAAC,KAAK,GAAG,WAAW,CAAC;CAClD,CAAC;AAEF;;;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;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,MAAM;IAC/B,KAAK,EAAE,aAAa,CAAmC;IAEvD,QAAQ,CACf,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,mBAAmB,GAAG,IAAI,GAAG,SAAc,EAClD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,6BAA6B,CAAC;CAM7C"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,+BAA4B;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,uCAAoC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,iCAA8B;AAC9F,OAAO,EAAE,MAAM,EAAE,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,sCAAmC;AAC1G,OAAO,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,KAAK,oBAAoB,EAAE,qCAAkC;AACtG,OAAO,EAAE,KAAK,OAAO,EAAc,iBAAc;AACjD,OAAO,EAAE,KAAK,KAAK,EAA6B,mBAAgB;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAmB;AAE3C;;;;;;;;;;GAUG;AACH,qBAAa,WAAW;IACtB,gBAAgB,CAAC,SAAiB,OAAO,EAAE,QAAQ,CAAC;IACpD,8HAA8H;IAC9H,SAAiB,MAAM,CAAC,EAAE,KAAK,CAAC;IAEhC;;;;;;;;OAQG;IACH,GAAG,CACD,IAAI,EAAE,WAAW,GAAG,qBAAqB,CAAC,KAAK,EAC/C,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAIhD,4GAA4G;IAC5G,MAAM,CAAC,IAAI,CACT,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,qBAAqB,CAAC,KAAK,EACjC,KAAK,CAAC,EAAE,KAAK,GACZ,qBAAqB,CAAC,KAAK,GAAG,WAAW;CAM7C;AAED,2FAA2F;AAC3F,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAAC,qBAAqB,EAAE,OAAO,CAAC,GAAG;IACjF,KAAK,EAAE,qBAAqB,CAAC,KAAK,GAAG,WAAW,CAAC;CAClD,CAAC;AAEF;;;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;;;;;GAKG;AACH,qBAAa,cAAe,SAAQ,MAAM;IAC/B,KAAK,EAAE,aAAa,CAAmC;IAEvD,QAAQ,CACf,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,mBAAmB,GAAG,IAAI,GAAG,SAAc,EAClD,OAAO,CAAC,EAAE,cAAc,GACvB,UAAU,CAAC,6BAA6B,CAAC;CAQ7C"}
package/lib/models.js CHANGED
@@ -4,6 +4,7 @@ exports.EnhancedModels = exports.EnhancedTrain = exports.ModelEntity = void 0;
4
4
  const models_1 = require("../resources/models/models.js");
5
5
  const train_1 = require("../resources/models/train.js");
6
6
  const job_1 = require("./job.js");
7
+ const scope_1 = require("./scope.js");
7
8
  /**
8
9
  * Enhanced Model entity with helper methods.
9
10
  * Has all original model fields plus `.run()`.
@@ -21,14 +22,19 @@ class ModelEntity {
21
22
  * `client.generate.runModel(this.id, params)`.
22
23
  *
23
24
  * Returns an enhanced response where `response.job` has `.wait()`.
25
+ * If the model was fetched with a `projectId` scope (per-call override or
26
+ * client default), that scope is reused unless overridden by
27
+ * `options.query`.
24
28
  */
25
29
  run(params, options) {
26
- return this._client.generate.runModel(this.id, params, options);
30
+ return this._client.generate.runModel(this.id, params, (0, scope_1.withScope)(this._scope, options));
27
31
  }
28
- /** @internal Create a ModelEntity wrapping raw model data. */
29
- static from(client, data) {
32
+ /** @internal Create a ModelEntity wrapping raw model data, optionally remembering the originating scope. */
33
+ static from(client, data, scope) {
30
34
  const entity = Object.assign(Object.create(ModelEntity.prototype), data);
31
35
  Object.defineProperty(entity, '_client', { value: client, enumerable: false });
36
+ if (scope)
37
+ Object.defineProperty(entity, '_scope', { value: scope, enumerable: false });
32
38
  return entity;
33
39
  }
34
40
  }
@@ -39,7 +45,7 @@ exports.ModelEntity = ModelEntity;
39
45
  */
40
46
  class EnhancedTrain extends train_1.Train {
41
47
  trigger(modelID, params, options) {
42
- return (0, job_1.enhanceJob)(this._client, super.trigger(modelID, params, options));
48
+ return (0, job_1.enhanceJob)(this._client, super.trigger(modelID, params, options), options);
43
49
  }
44
50
  }
45
51
  exports.EnhancedTrain = EnhancedTrain;
@@ -52,9 +58,11 @@ exports.EnhancedTrain = EnhancedTrain;
52
58
  class EnhancedModels extends models_1.Models {
53
59
  train = new EnhancedTrain(this._client);
54
60
  retrieve(modelID, query = {}, options) {
61
+ const client = this._client;
62
+ const scope = (0, scope_1.effectiveScope)(options, client.projectId);
55
63
  return super.retrieve(modelID, query, options)._thenUnwrap((data) => ({
56
64
  ...data,
57
- model: ModelEntity.from(this._client, data.model),
65
+ model: ModelEntity.from(client, data.model, scope),
58
66
  }));
59
67
  }
60
68
  }
package/lib/models.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":";;;AAGA,0DAA0G;AAC1G,wDAAsG;AACtG,kCAAiD;AAIjD;;;;;;;;;;GAUG;AACH,MAAa,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;AA1BD,kCA0BC;AAOD;;;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;;;;;GAKG;AACH,MAAa,cAAe,SAAQ,eAAM;IAC/B,KAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvD,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;AAbD,wCAaC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":";;;AAGA,0DAA0G;AAC1G,wDAAsG;AACtG,kCAAiD;AACjD,sCAAgE;AAIhE;;;;;;;;;;GAUG;AACH,MAAa,WAAW;IAKtB;;;;;;;;OAQG;IACH,GAAG,CAED,MAA8B,EAC9B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAA,iBAAS,EAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,4GAA4G;IAC5G,MAAM,CAAC,IAAI,CACT,MAAgB,EAChB,IAAiC,EACjC,KAAa;QAEb,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,IAAI,KAAK;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACxF,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAjCD,kCAiCC;AAOD;;;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,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;CACF;AARD,sCAQC;AAED;;;;;GAKG;AACH,MAAa,cAAe,SAAQ,eAAM;IAC/B,KAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvD,QAAQ,CACf,OAAe,EACf,QAAgD,EAAE,EAClD,OAAwB;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAmB,CAAC;QACxC,MAAM,KAAK,GAAG,IAAA,sBAAc,EAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACxD,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,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;SACnD,CAAC,CAAC,CAAC;IACN,CAAC;CACF;AAfD,wCAeC"}
package/lib/models.mjs CHANGED
@@ -1,6 +1,7 @@
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
+ import { effectiveScope, withScope } from "./scope.mjs";
4
5
  /**
5
6
  * Enhanced Model entity with helper methods.
6
7
  * Has all original model fields plus `.run()`.
@@ -18,14 +19,19 @@ export class ModelEntity {
18
19
  * `client.generate.runModel(this.id, params)`.
19
20
  *
20
21
  * Returns an enhanced response where `response.job` has `.wait()`.
22
+ * If the model was fetched with a `projectId` scope (per-call override or
23
+ * client default), that scope is reused unless overridden by
24
+ * `options.query`.
21
25
  */
22
26
  run(params, options) {
23
- return this._client.generate.runModel(this.id, params, options);
27
+ return this._client.generate.runModel(this.id, params, withScope(this._scope, options));
24
28
  }
25
- /** @internal Create a ModelEntity wrapping raw model data. */
26
- static from(client, data) {
29
+ /** @internal Create a ModelEntity wrapping raw model data, optionally remembering the originating scope. */
30
+ static from(client, data, scope) {
27
31
  const entity = Object.assign(Object.create(ModelEntity.prototype), data);
28
32
  Object.defineProperty(entity, '_client', { value: client, enumerable: false });
33
+ if (scope)
34
+ Object.defineProperty(entity, '_scope', { value: scope, enumerable: false });
29
35
  return entity;
30
36
  }
31
37
  }
@@ -35,7 +41,7 @@ export class ModelEntity {
35
41
  */
36
42
  export class EnhancedTrain extends Train {
37
43
  trigger(modelID, params, options) {
38
- return enhanceJob(this._client, super.trigger(modelID, params, options));
44
+ return enhanceJob(this._client, super.trigger(modelID, params, options), options);
39
45
  }
40
46
  }
41
47
  /**
@@ -47,9 +53,11 @@ export class EnhancedTrain extends Train {
47
53
  export class EnhancedModels extends Models {
48
54
  train = new EnhancedTrain(this._client);
49
55
  retrieve(modelID, query = {}, options) {
56
+ const client = this._client;
57
+ const scope = effectiveScope(options, client.projectId);
50
58
  return super.retrieve(modelID, query, options)._thenUnwrap((data) => ({
51
59
  ...data,
52
- model: ModelEntity.from(this._client, data.model),
60
+ model: ModelEntity.from(client, data.model, scope),
53
61
  }));
54
62
  }
55
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"models.mjs","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAwD,uCAAmC;AAC1G,OAAO,EAAE,KAAK,EAAsD,sCAAkC;AACtG,OAAO,EAAgB,UAAU,EAAE,kBAAc;AAIjD;;;;;;;;;;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;IAC/B,KAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvD,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
+ {"version":3,"file":"models.mjs","sourceRoot":"","sources":["../src/lib/models.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAwD,uCAAmC;AAC1G,OAAO,EAAE,KAAK,EAAsD,sCAAkC;AACtG,OAAO,EAAgB,UAAU,EAAE,kBAAc;AACjD,OAAO,EAAc,cAAc,EAAE,SAAS,EAAE,oBAAgB;AAIhE;;;;;;;;;;GAUG;AACH,MAAM,OAAO,WAAW;IAKtB;;;;;;;;OAQG;IACH,GAAG,CAED,MAA8B,EAC9B,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1F,CAAC;IAED,4GAA4G;IAC5G,MAAM,CAAC,IAAI,CACT,MAAgB,EAChB,IAAiC,EACjC,KAAa;QAEb,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,IAAI,KAAK;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACxF,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,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,MAAM;IAC/B,KAAK,GAAkB,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvD,QAAQ,CACf,OAAe,EACf,QAAgD,EAAE,EAClD,OAAwB;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAmB,CAAC;QACxC,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACxD,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,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;SACnD,CAAC,CAAC,CAAC;IACN,CAAC;CACF"}
@@ -1,10 +1,26 @@
1
- import { Scenario as BaseScenario } from "../client.mjs";
1
+ import { Scenario as BaseScenario, type ClientOptions as BaseClientOptions } from "../client.mjs";
2
2
  import { EnhancedAssets } from "./asset.mjs";
3
3
  import { EnhancedGenerate } from "./generate.mjs";
4
4
  import { EnhancedJobs } from "./job.mjs";
5
5
  import { EnhancedModels } from "./models.mjs";
6
6
  import { EnhancedUploads } from "./upload.mjs";
7
7
  import { EnhancedWorkflows } from "./workflow.mjs";
8
+ export interface ClientOptions extends BaseClientOptions {
9
+ /**
10
+ * Default project to scope every request to (sent as `?projectId=...`).
11
+ *
12
+ * Useful with `bearerAuth` when the user belongs to multiple projects —
13
+ * the server derives the team from the project, so `teamId` doesn't need
14
+ * to be configured at construction time. With `apiKey` auth, the project
15
+ * is already implied by the key and this option is unnecessary.
16
+ *
17
+ * Per-call `options.query.projectId` overrides this default for a single
18
+ * request. SDK helpers (`.wait()`, `model.run()`, ...) reuse the scope
19
+ * effective on the originating call, so an action created in project A
20
+ * keeps polling in project A even if the client default changes later.
21
+ */
22
+ projectId?: string | null | undefined;
23
+ }
8
24
  /**
9
25
  * Enhanced Scenario client.
10
26
  *
@@ -16,23 +32,19 @@ import { EnhancedWorkflows } from "./workflow.mjs";
16
32
  * ```ts
17
33
  * import Scenario from '@scenario-labs/sdk';
18
34
  *
19
- * const client = new Scenario({ apiKey: '...' });
35
+ * // With API key — project is implied by the key.
36
+ * const client = new Scenario({ apiKey: '...', apiSecret: '...' });
37
+ *
38
+ * // With bearer JWT — pin a default project for all requests.
39
+ * const client = new Scenario({ bearerAuth: jwt, projectId: 'proj_abc' });
20
40
  *
21
- * // All generated methods work as-is
22
- * const list = await client.assets.list({});
41
+ * // Per-call override (one request only):
42
+ * await client.uploads.uploadFile(params, { query: { projectId: 'proj_other' } });
23
43
  *
24
- * // Enhanced: response.job.wait()
44
+ * // Enhanced: response.job.wait() — auto-reuses the scope of the call that produced the job
25
45
  * const run = await client.workflows.run(workflowId, { body });
26
46
  * const completed = await run.job.wait();
27
47
  *
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
48
  * // Enhanced: upload.wait()
37
49
  * const res = await client.uploads.retrieve(uploadId);
38
50
  * const imported = await res.upload.wait();
@@ -49,5 +61,8 @@ export declare class Scenario extends BaseScenario {
49
61
  uploads: EnhancedUploads;
50
62
  assets: EnhancedAssets;
51
63
  jobs: EnhancedJobs;
64
+ /** The default project this client scopes every request to, or `null` if unset. */
65
+ readonly projectId: string | null;
66
+ constructor(options?: ClientOptions);
52
67
  }
53
68
  //# sourceMappingURL=scenario.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.d.mts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,sBAAkB;AACrD,OAAO,EAAE,cAAc,EAAE,oBAAgB;AACzC,OAAO,EAAE,gBAAgB,EAAE,uBAAmB;AAC9C,OAAO,EAAE,YAAY,EAAE,kBAAc;AACrC,OAAO,EAAE,cAAc,EAAE,qBAAiB;AAC1C,OAAO,EAAE,eAAe,EAAE,qBAAiB;AAC3C,OAAO,EAAE,iBAAiB,EAAE,uBAAmB;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"scenario.d.mts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,KAAK,aAAa,IAAI,iBAAiB,EAAE,sBAAkB;AAC9F,OAAO,EAAE,cAAc,EAAE,oBAAgB;AACzC,OAAO,EAAE,gBAAgB,EAAE,uBAAmB;AAC9C,OAAO,EAAE,YAAY,EAAE,kBAAc;AACrC,OAAO,EAAE,cAAc,EAAE,qBAAiB;AAC1C,OAAO,EAAE,eAAe,EAAE,qBAAiB;AAC3C,OAAO,EAAE,iBAAiB,EAAE,uBAAmB;AAE/C,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;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;IAErD,mFAAmF;IACnF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEtB,OAAO,GAAE,aAAkB;CAexC"}
package/lib/scenario.d.ts CHANGED
@@ -1,10 +1,26 @@
1
- import { Scenario as BaseScenario } from "../client.js";
1
+ import { Scenario as BaseScenario, type ClientOptions as BaseClientOptions } from "../client.js";
2
2
  import { EnhancedAssets } from "./asset.js";
3
3
  import { EnhancedGenerate } from "./generate.js";
4
4
  import { EnhancedJobs } from "./job.js";
5
5
  import { EnhancedModels } from "./models.js";
6
6
  import { EnhancedUploads } from "./upload.js";
7
7
  import { EnhancedWorkflows } from "./workflow.js";
8
+ export interface ClientOptions extends BaseClientOptions {
9
+ /**
10
+ * Default project to scope every request to (sent as `?projectId=...`).
11
+ *
12
+ * Useful with `bearerAuth` when the user belongs to multiple projects —
13
+ * the server derives the team from the project, so `teamId` doesn't need
14
+ * to be configured at construction time. With `apiKey` auth, the project
15
+ * is already implied by the key and this option is unnecessary.
16
+ *
17
+ * Per-call `options.query.projectId` overrides this default for a single
18
+ * request. SDK helpers (`.wait()`, `model.run()`, ...) reuse the scope
19
+ * effective on the originating call, so an action created in project A
20
+ * keeps polling in project A even if the client default changes later.
21
+ */
22
+ projectId?: string | null | undefined;
23
+ }
8
24
  /**
9
25
  * Enhanced Scenario client.
10
26
  *
@@ -16,23 +32,19 @@ import { EnhancedWorkflows } from "./workflow.js";
16
32
  * ```ts
17
33
  * import Scenario from '@scenario-labs/sdk';
18
34
  *
19
- * const client = new Scenario({ apiKey: '...' });
35
+ * // With API key — project is implied by the key.
36
+ * const client = new Scenario({ apiKey: '...', apiSecret: '...' });
37
+ *
38
+ * // With bearer JWT — pin a default project for all requests.
39
+ * const client = new Scenario({ bearerAuth: jwt, projectId: 'proj_abc' });
20
40
  *
21
- * // All generated methods work as-is
22
- * const list = await client.assets.list({});
41
+ * // Per-call override (one request only):
42
+ * await client.uploads.uploadFile(params, { query: { projectId: 'proj_other' } });
23
43
  *
24
- * // Enhanced: response.job.wait()
44
+ * // Enhanced: response.job.wait() — auto-reuses the scope of the call that produced the job
25
45
  * const run = await client.workflows.run(workflowId, { body });
26
46
  * const completed = await run.job.wait();
27
47
  *
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
48
  * // Enhanced: upload.wait()
37
49
  * const res = await client.uploads.retrieve(uploadId);
38
50
  * const imported = await res.upload.wait();
@@ -49,5 +61,8 @@ export declare class Scenario extends BaseScenario {
49
61
  uploads: EnhancedUploads;
50
62
  assets: EnhancedAssets;
51
63
  jobs: EnhancedJobs;
64
+ /** The default project this client scopes every request to, or `null` if unset. */
65
+ readonly projectId: string | null;
66
+ constructor(options?: ClientOptions);
52
67
  }
53
68
  //# sourceMappingURL=scenario.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,qBAAkB;AACrD,OAAO,EAAE,cAAc,EAAE,mBAAgB;AACzC,OAAO,EAAE,gBAAgB,EAAE,sBAAmB;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAc;AACrC,OAAO,EAAE,cAAc,EAAE,oBAAiB;AAC1C,OAAO,EAAE,eAAe,EAAE,oBAAiB;AAC3C,OAAO,EAAE,iBAAiB,EAAE,sBAAmB;AAE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"scenario.d.ts","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,KAAK,aAAa,IAAI,iBAAiB,EAAE,qBAAkB;AAC9F,OAAO,EAAE,cAAc,EAAE,mBAAgB;AACzC,OAAO,EAAE,gBAAgB,EAAE,sBAAmB;AAC9C,OAAO,EAAE,YAAY,EAAE,iBAAc;AACrC,OAAO,EAAE,cAAc,EAAE,oBAAiB;AAC1C,OAAO,EAAE,eAAe,EAAE,oBAAiB;AAC3C,OAAO,EAAE,iBAAiB,EAAE,sBAAmB;AAE/C,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;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;IAErD,mFAAmF;IACnF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEtB,OAAO,GAAE,aAAkB;CAexC"}
package/lib/scenario.js CHANGED
@@ -19,23 +19,19 @@ const workflow_1 = require("./workflow.js");
19
19
  * ```ts
20
20
  * import Scenario from '@scenario-labs/sdk';
21
21
  *
22
- * const client = new Scenario({ apiKey: '...' });
22
+ * // With API key — project is implied by the key.
23
+ * const client = new Scenario({ apiKey: '...', apiSecret: '...' });
23
24
  *
24
- * // All generated methods work as-is
25
- * const list = await client.assets.list({});
25
+ * // With bearer JWT — pin a default project for all requests.
26
+ * const client = new Scenario({ bearerAuth: jwt, projectId: 'proj_abc' });
26
27
  *
27
- * // Enhanced: response.job.wait()
28
+ * // Per-call override (one request only):
29
+ * await client.uploads.uploadFile(params, { query: { projectId: 'proj_other' } });
30
+ *
31
+ * // Enhanced: response.job.wait() — auto-reuses the scope of the call that produced the job
28
32
  * const run = await client.workflows.run(workflowId, { body });
29
33
  * const completed = await run.job.wait();
30
34
  *
31
- * // Enhanced: response.workflow.findNode()
32
- * const wf = await client.workflows.retrieve(workflowId);
33
- * wf.workflow.findNode('final_image');
34
- *
35
- * // Enhanced: generate job.wait()
36
- * const gen = await client.generate.runModel(modelId, { body });
37
- * const done = await gen.job.wait();
38
- *
39
35
  * // Enhanced: upload.wait()
40
36
  * const res = await client.uploads.retrieve(uploadId);
41
37
  * const imported = await res.upload.wait();
@@ -52,6 +48,29 @@ class Scenario extends client_1.Scenario {
52
48
  uploads = new upload_1.EnhancedUploads(this);
53
49
  assets = new asset_1.EnhancedAssets(this);
54
50
  jobs = new job_1.EnhancedJobs(this);
51
+ /** The default project this client scopes every request to, or `null` if unset. */
52
+ projectId;
53
+ constructor(options = {}) {
54
+ const { projectId, defaultQuery, ...rest } = options;
55
+ // Strip any stale projectId from defaultQuery so the typed field is the
56
+ // single source of truth (matters when `withOptions` reconstructs the client).
57
+ const cleanedDefaultQuery = stripKey(defaultQuery, 'projectId');
58
+ super({
59
+ ...rest,
60
+ // Pass projectId through so it lands in `_options` and survives a
61
+ // `withOptions()` round-trip. The base ClientOptions doesn't declare
62
+ // this field, hence the cast.
63
+ projectId,
64
+ defaultQuery: projectId ? { ...cleanedDefaultQuery, projectId } : cleanedDefaultQuery,
65
+ });
66
+ this.projectId = projectId ?? null;
67
+ }
55
68
  }
56
69
  exports.Scenario = Scenario;
70
+ function stripKey(obj, key) {
71
+ if (!obj || !(key in obj))
72
+ return obj;
73
+ const { [key]: _omit, ...rest } = obj;
74
+ return rest;
75
+ }
57
76
  //# sourceMappingURL=scenario.js.map
@@ -1 +1 @@
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;IAC/B,SAAS,GAAsB,IAAI,4BAAiB,CAAC,IAAI,CAAC,CAAC;IAC3D,QAAQ,GAAqB,IAAI,2BAAgB,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,GAAmB,IAAI,uBAAc,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,GAAoB,IAAI,wBAAe,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,GAAmB,IAAI,sBAAc,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,GAAiB,IAAI,kBAAY,CAAC,IAAI,CAAC,CAAC;CACtD;AAPD,4BAOC"}
1
+ {"version":3,"file":"scenario.js","sourceRoot":"","sources":["../src/lib/scenario.ts"],"names":[],"mappings":";;;AAAA,yCAA8F;AAC9F,sCAAyC;AACzC,4CAA8C;AAC9C,kCAAqC;AACrC,wCAA0C;AAC1C,wCAA2C;AAC3C,4CAA+C;AAmB/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAa,QAAS,SAAQ,iBAAY;IAC/B,SAAS,GAAsB,IAAI,4BAAiB,CAAC,IAAI,CAAC,CAAC;IAC3D,QAAQ,GAAqB,IAAI,2BAAgB,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,GAAmB,IAAI,uBAAc,CAAC,IAAI,CAAC,CAAC;IAClD,OAAO,GAAoB,IAAI,wBAAe,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,GAAmB,IAAI,sBAAc,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,GAAiB,IAAI,kBAAY,CAAC,IAAI,CAAC,CAAC;IAErD,mFAAmF;IAC1E,SAAS,CAAgB;IAElC,YAAY,UAAyB,EAAE;QACrC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QACrD,wEAAwE;QACxE,+EAA+E;QAC/E,MAAM,mBAAmB,GAAG,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAChE,KAAK,CAAC;YACJ,GAAG,IAAI;YACP,kEAAkE;YAClE,qEAAqE;YACrE,8BAA8B;YAC9B,SAAS;YACT,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,mBAAmB,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,mBAAmB;SACjE,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC;IACrC,CAAC;CACF;AA1BD,4BA0BC;AAED,SAAS,QAAQ,CAAmB,GAAkB,EAAE,GAAW;IACjE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC;IACtC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,GAA8B,CAAC;IACjE,OAAO,IAAkB,CAAC;AAC5B,CAAC"}