@tiny-fish/sdk 0.0.5 → 0.0.7

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 (56) hide show
  1. package/README.md +231 -206
  2. package/dist/_utils/client.d.ts +14 -9
  3. package/dist/_utils/client.d.ts.map +1 -1
  4. package/dist/_utils/client.js +93 -41
  5. package/dist/_utils/client.js.map +1 -1
  6. package/dist/agent/index.d.ts +3 -3
  7. package/dist/agent/index.d.ts.map +1 -1
  8. package/dist/agent/index.js +39 -65
  9. package/dist/agent/index.js.map +1 -1
  10. package/dist/agent/types.d.ts +258 -127
  11. package/dist/agent/types.d.ts.map +1 -1
  12. package/dist/agent/types.js +133 -41
  13. package/dist/agent/types.js.map +1 -1
  14. package/dist/browser/index.d.ts +16 -0
  15. package/dist/browser/index.d.ts.map +1 -0
  16. package/dist/browser/index.js +29 -0
  17. package/dist/browser/index.js.map +1 -0
  18. package/dist/browser/types.d.ts +17 -0
  19. package/dist/browser/types.d.ts.map +1 -0
  20. package/dist/browser/types.js +15 -0
  21. package/dist/browser/types.js.map +1 -0
  22. package/dist/client.d.ts +6 -0
  23. package/dist/client.d.ts.map +1 -1
  24. package/dist/client.js +9 -0
  25. package/dist/client.js.map +1 -1
  26. package/dist/fetch/index.d.ts +10 -0
  27. package/dist/fetch/index.d.ts.map +1 -0
  28. package/dist/fetch/index.js +37 -0
  29. package/dist/fetch/index.js.map +1 -0
  30. package/dist/fetch/types.d.ts +176 -0
  31. package/dist/fetch/types.d.ts.map +1 -0
  32. package/dist/fetch/types.js +69 -0
  33. package/dist/fetch/types.js.map +1 -0
  34. package/dist/index.d.ts +9 -3
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +8 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/runs/index.d.ts +1 -1
  39. package/dist/runs/index.d.ts.map +1 -1
  40. package/dist/runs/index.js +25 -16
  41. package/dist/runs/index.js.map +1 -1
  42. package/dist/runs/types.d.ts +114 -66
  43. package/dist/runs/types.d.ts.map +1 -1
  44. package/dist/runs/types.js +48 -6
  45. package/dist/runs/types.js.map +1 -1
  46. package/dist/search/index.d.ts +10 -0
  47. package/dist/search/index.d.ts.map +1 -0
  48. package/dist/search/index.js +29 -0
  49. package/dist/search/index.js.map +1 -0
  50. package/dist/search/types.d.ts +34 -0
  51. package/dist/search/types.d.ts.map +1 -0
  52. package/dist/search/types.js +25 -0
  53. package/dist/search/types.js.map +1 -0
  54. package/dist/version.d.ts +1 -1
  55. package/dist/version.js +1 -1
  56. package/package.json +3 -2
@@ -58,53 +58,105 @@ export class BaseClient {
58
58
  }
59
59
  return nextBody;
60
60
  }
61
+ _buildRequestSignal(callerSignal) {
62
+ const timeoutSignal = AbortSignal.timeout(this.timeout);
63
+ if (!callerSignal) {
64
+ return {
65
+ signal: timeoutSignal,
66
+ timeoutSignal,
67
+ cleanup: () => { },
68
+ };
69
+ }
70
+ if (typeof AbortSignal.any === "function") {
71
+ return {
72
+ signal: AbortSignal.any([callerSignal, timeoutSignal]),
73
+ timeoutSignal,
74
+ cleanup: () => { },
75
+ };
76
+ }
77
+ const controller = new AbortController();
78
+ const abortFromCaller = () => controller.abort(callerSignal.reason);
79
+ const abortFromTimeout = () => controller.abort(timeoutSignal.reason);
80
+ if (callerSignal.aborted) {
81
+ abortFromCaller();
82
+ }
83
+ else if (timeoutSignal.aborted) {
84
+ abortFromTimeout();
85
+ }
86
+ else {
87
+ callerSignal.addEventListener("abort", abortFromCaller, { once: true });
88
+ timeoutSignal.addEventListener("abort", abortFromTimeout, { once: true });
89
+ }
90
+ return {
91
+ signal: controller.signal,
92
+ timeoutSignal,
93
+ cleanup: () => {
94
+ callerSignal.removeEventListener("abort", abortFromCaller);
95
+ timeoutSignal.removeEventListener("abort", abortFromTimeout);
96
+ },
97
+ };
98
+ }
61
99
  /**
62
100
  * Core request method with retry and error mapping.
63
101
  * All public methods (get, post, postStream) delegate here.
64
102
  */
65
- async _request(method, path, body) {
103
+ async _request(method, path, body, options) {
66
104
  const url = `${this.baseURL}${path}`;
67
105
  const headers = this._buildHeaders();
68
106
  const requestBody = BaseClient._injectIntegration(body);
69
- return pRetry(async () => {
70
- try {
71
- const response = await fetch(url, {
72
- method,
73
- headers,
74
- body: requestBody !== undefined ? JSON.stringify(requestBody) : undefined,
75
- signal: AbortSignal.timeout(this.timeout),
76
- });
77
- if (response.ok) {
78
- return response;
79
- }
80
- const sdkError = await this._makeStatusError(response);
81
- // Non-retryable status codes abort immediately
82
- const status = response.status;
83
- if (status !== 408 && status !== 429 && status < 500) {
84
- throw new AbortError(sdkError);
85
- }
86
- // Retryable let p-retry handle backoff
87
- throw sdkError;
88
- }
89
- catch (error) {
90
- // Re-throw AbortError and SDK errors as-is
91
- if (error instanceof AbortError || error instanceof SDKError) {
92
- throw error;
107
+ // The timeout signal spans the entire retry sequence, not each individual attempt.
108
+ const { signal: requestSignal, timeoutSignal, cleanup, } = this._buildRequestSignal(options?.signal);
109
+ try {
110
+ return await pRetry(async () => {
111
+ try {
112
+ const response = await fetch(url, {
113
+ method,
114
+ headers,
115
+ body: requestBody !== undefined ? JSON.stringify(requestBody) : undefined,
116
+ signal: requestSignal,
117
+ });
118
+ if (response.ok) {
119
+ return response;
120
+ }
121
+ const sdkError = await this._makeStatusError(response);
122
+ // Non-retryable status codes abort immediately
123
+ const status = response.status;
124
+ if (status !== 408 && status !== 429 && status < 500) {
125
+ throw new AbortError(sdkError);
126
+ }
127
+ // Retryable — let p-retry handle backoff
128
+ throw sdkError;
93
129
  }
94
- // AbortSignal.timeout throws a DOMException with name "TimeoutError"
95
- // Not retried timeouts indicate the operation is slow, not a transient issue
96
- if (error instanceof DOMException && error.name === "TimeoutError") {
97
- throw new AbortError(new APITimeoutError(`Request timed out after ${this.timeout}ms`));
130
+ catch (error) {
131
+ // Re-throw AbortError and SDK errors as-is
132
+ if (error instanceof AbortError || error instanceof SDKError) {
133
+ throw error;
134
+ }
135
+ if (options?.signal?.aborted && !timeoutSignal.aborted) {
136
+ const reason = options.signal.reason instanceof Error
137
+ ? options.signal.reason
138
+ : new DOMException("Request aborted", "AbortError");
139
+ throw new AbortError(reason);
140
+ }
141
+ // AbortSignal.timeout throws a DOMException with name "TimeoutError"
142
+ // Not retried — timeouts indicate the operation is slow, not a transient issue
143
+ if (timeoutSignal.aborted ||
144
+ (error instanceof DOMException && error.name === "TimeoutError")) {
145
+ throw new AbortError(new APITimeoutError(`Request timed out after ${this.timeout}ms`));
146
+ }
147
+ // Network failures (DNS, refused, etc.)
148
+ throw new APIConnectionError(error instanceof Error ? error.message : "Connection failed");
98
149
  }
99
- // Network failures (DNS, refused, etc.)
100
- throw new APIConnectionError(error instanceof Error ? error.message : "Connection failed");
101
- }
102
- }, {
103
- retries: this.maxRetries,
104
- minTimeout: 500,
105
- maxTimeout: 8_000,
106
- factor: 2,
107
- });
150
+ }, {
151
+ retries: this.maxRetries,
152
+ minTimeout: 500,
153
+ maxTimeout: 8_000,
154
+ factor: 2,
155
+ });
156
+ }
157
+ finally {
158
+ cleanup();
159
+ }
108
160
  }
109
161
  /**
110
162
  * Extracts a human-readable error message from the response body.
@@ -180,15 +232,15 @@ export class BaseClient {
180
232
  const searchParams = new URLSearchParams(filtered);
181
233
  url = `${path}?${searchParams.toString()}`;
182
234
  }
183
- const response = await this._request("GET", url);
235
+ const response = await this._request("GET", url, undefined, options);
184
236
  return (await response.json());
185
237
  }
186
238
  async post(path, options) {
187
- const response = await this._request("POST", path, options?.json);
239
+ const response = await this._request("POST", path, options?.json, options);
188
240
  return (await response.json());
189
241
  }
190
242
  async postStream(path, options) {
191
- const response = await this._request("POST", path, options?.json);
243
+ const response = await this._request("POST", path, options?.json, options);
192
244
  if (!response.body) {
193
245
  throw new SDKError("Response body is null — server did not return a stream");
194
246
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/_utils/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/_utils/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EACN,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,wBAAwB,GACxB,MAAM,aAAa,CAAC;AA2BrB,MAAM,gBAAgB,GAAG,2BAA2B,CAAC;AACrD,MAAM,eAAe,GAAG,OAAO,CAAC,CAAC,iCAAiC;AAClE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,OAAO,UAAU;IACL,OAAO,CAAS;IACxB,OAAO,CAAS;IAChB,OAAO,CAAS;IAChB,UAAU,CAAS;IAE5B,YAAY,UAAyB,EAAE;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,QAAQ,CACjB,qGAAqG,CACrG,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,MAAM;QACL,OAAO;YACN,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACtB,CAAC;IAES,aAAa;QACtB,OAAO;YACN,WAAW,EAAE,IAAI,CAAC,OAAO;YACzB,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;YAC1B,YAAY,EAAE,uBAAuB,OAAO,EAAE;YAC9C,qBAAqB,EAAE,aAAa;SACpC,CAAC;IACH,CAAC;IAED,6EAA6E;IACrE,MAAM,CAAC,kBAAkB,CAAC,IAAa;QAC9C,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjF,MAAM,QAAQ,GAAG,EAAE,GAAI,IAAgC,EAAE,CAAC;QAC1D,MAAM,WAAW,GAChB,UACA,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC;QAC/C,IAAI,WAAW,EAAE,CAAC;YACjB,QAAQ,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC;QAC3C,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,mBAAmB,CAAC,YAA0B;QACrD,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,OAAO;gBACN,MAAM,EAAE,aAAa;gBACrB,aAAa;gBACb,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aACjB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,WAAW,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YAC3C,OAAO;gBACN,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;gBACtD,aAAa;gBACb,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC;aACjB,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEtE,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,eAAe,EAAE,CAAC;QACnB,CAAC;aAAM,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAClC,gBAAgB,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACP,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACxE,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO;YACN,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,aAAa;YACb,OAAO,EAAE,GAAG,EAAE;gBACb,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;gBAC3D,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC9D,CAAC;SACD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,QAAQ,CACrB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,OAAwB;QAExB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACxD,mFAAmF;QACnF,MAAM,EACL,MAAM,EAAE,aAAa,EACrB,aAAa,EACb,OAAO,GACP,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC;YACJ,OAAO,MAAM,MAAM,CAClB,KAAK,IAAI,EAAE;gBACV,IAAI,CAAC;oBACJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;wBACjC,MAAM;wBACN,OAAO;wBACP,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;wBACzE,MAAM,EAAE,aAAa;qBACrB,CAAC,CAAC;oBAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;wBACjB,OAAO,QAAQ,CAAC;oBACjB,CAAC;oBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBAEvD,+CAA+C;oBAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAC/B,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;wBACtD,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAChC,CAAC;oBAED,yCAAyC;oBACzC,MAAM,QAAQ,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,2CAA2C;oBAC3C,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;wBAC9D,MAAM,KAAK,CAAC;oBACb,CAAC;oBAED,IAAI,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;wBACxD,MAAM,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,MAAM,YAAY,KAAK;4BACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM;4BACvB,CAAC,CAAC,IAAI,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;wBACtD,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;oBAC9B,CAAC;oBAED,qEAAqE;oBACrE,+EAA+E;oBAC/E,IACC,aAAa,CAAC,OAAO;wBACrB,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,EAC/D,CAAC;wBACF,MAAM,IAAI,UAAU,CACnB,IAAI,eAAe,CAAC,2BAA2B,IAAI,CAAC,OAAO,IAAI,CAAC,CAChE,CAAC;oBACH,CAAC;oBAED,wCAAwC;oBACxC,MAAM,IAAI,kBAAkB,CAC3B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAC5D,CAAC;gBACH,CAAC;YACF,CAAC,EACD;gBACC,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,CAAC;aACT,CACD,CAAC;QACH,CAAC;gBAAS,CAAC;YACV,OAAO,EAAE,CAAC;QACX,CAAC;IACF,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAAC,QAAkB;QAClD,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC;gBACJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA+C,CAAC;gBAC5E,MAAM,QAAQ,GAAG,IAAI,EAAE,CAAC,OAAO,CAA+C,CAAC;gBAC/E,MAAM,GAAG,GAAI,QAAQ,EAAE,CAAC,SAAS,CAAY,IAAK,IAAI,EAAE,CAAC,SAAS,CAAY,CAAC;gBAC/E,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/C,OAAO,GAAG,CAAC;gBACZ,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,0CAA0C;YAC3C,CAAC;YACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,4BAA4B;QAC7B,CAAC;QAED,OAAO,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,8FAA8F;IACtF,KAAK,CAAC,gBAAgB,CAAC,QAAkB;QAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC;QAE1B,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzB,KAAK,GAAG;gBACP,OAAO,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvC,KAAK,GAAG;gBACP,OAAO,IAAI,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3C,KAAK,GAAG;gBACP,OAAO,IAAI,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7C,KAAK,GAAG;gBACP,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrC,KAAK,GAAG;gBACP,OAAO,IAAI,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC3C,KAAK,GAAG;gBACP,OAAO,IAAI,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrC,KAAK,GAAG;gBACP,OAAO,IAAI,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAChD,KAAK,GAAG;gBACP,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACtC;gBACC,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBAC5B,OAAO,IAAI,mBAAmB,CAAC,GAAG,EAAE;wBACnC,QAAQ;wBACR,UAAU,EAAE,QAAQ,CAAC,MAAM;qBAC3B,CAAC,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,cAAc,CAAC,GAAG,EAAE;oBAC9B,QAAQ;oBACR,UAAU,EAAE,QAAQ,CAAC,MAAM;iBAC3B,CAAC,CAAC;QACL,CAAC;IACF,CAAC;IAED,KAAK,CAAC,GAAG,CAAc,IAAY,EAAE,OAA2B;QAC/D,IAAI,GAAG,GAAG,IAAI,CAAC;QACf,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,QAAQ,GAA2B,EAAE,CAAC;YAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACzB,QAAQ,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACF,CAAC;YACD,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC;YACnD,GAAG,GAAG,GAAG,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC5C,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACrE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAc,IAAY,EAAE,OAA4B;QACjE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3E,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,OAA4B;QAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAE3E,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,QAAQ,CAAC,wDAAwD,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;IAC3D,CAAC;CACD"}
@@ -2,7 +2,7 @@
2
2
  * Browser automation resource.
3
3
  */
4
4
  import { APIResource } from "../_utils/resource.js";
5
- import { type AgentRunAsyncResponse, type AgentRunParams, type AgentRunResponse, type AgentRunWithStreamingResponse, type StreamOptions } from "./types.js";
5
+ import { type AgentRequestOptions, type AgentRunAsyncResponse, type AgentRunParams, type AgentRunResponse, type AgentRunWithStreamingResponse, type StreamOptions } from "./types.js";
6
6
  /** Async-iterable wrapper around an SSE event stream, this is what we return when they call the stream endpoint */
7
7
  export declare class AgentStream {
8
8
  private _generator;
@@ -19,14 +19,14 @@ export declare class AgentResource extends APIResource {
19
19
  *
20
20
  * Returns a promise that resolves with the completed agent run output.
21
21
  */
22
- run(params: AgentRunParams): Promise<AgentRunResponse>;
22
+ run(params: AgentRunParams, options?: AgentRequestOptions): Promise<AgentRunResponse>;
23
23
  /**
24
24
  * Queue a browser automation and return immediately.
25
25
  *
26
26
  * Does not wait for the run to complete — returns a `run_id` straight away.
27
27
  * Use `client.runs.get(run_id)` to poll for the result.
28
28
  */
29
- queue(params: AgentRunParams): Promise<AgentRunAsyncResponse>;
29
+ queue(params: AgentRunParams, options?: AgentRequestOptions): Promise<AgentRunAsyncResponse>;
30
30
  /**
31
31
  * Stream live events from a browser automation run.
32
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACN,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EASlC,KAAK,aAAa,EAElB,MAAM,YAAY,CAAC;AAqBpB,mHAAmH;AACnH,qBAAa,WAAW;IACvB,OAAO,CAAC,UAAU,CAAgD;IAClE,OAAO,CAAC,UAAU,CAAyB;gBAG1C,SAAS,EAAE,cAAc,CAAC,6BAA6B,CAAC,EACxD,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC;IAMlC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,6BAA6B,CAAC;IAIvE,iEAAiE;IAC3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B;AAqHD,kCAAkC;AAClC,qBAAa,aAAc,SAAQ,WAAW;IAC7C;;;;OAIG;IACG,GAAG,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAM5D;;;;;OAKG;IACG,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAMnE;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;CAgBvF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACN,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAKlC,KAAK,aAAa,EAUlB,MAAM,YAAY,CAAC;AAsBpB,mHAAmH;AACnH,qBAAa,WAAW;IACvB,OAAO,CAAC,UAAU,CAAgD;IAClE,OAAO,CAAC,UAAU,CAAyB;gBAG1C,SAAS,EAAE,cAAc,CAAC,6BAA6B,CAAC,EACxD,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC;IAMlC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,6BAA6B,CAAC;IAIvE,iEAAiE;IAC3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B;AAsED,kCAAkC;AAClC,qBAAa,aAAc,SAAQ,WAAW;IAC7C;;;;OAIG;IACG,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAQ/F;;;;;OAKG;IACG,KAAK,CACV,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,mBAAwB,GAC/B,OAAO,CAAC,qBAAqB,CAAC;IAQjC;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;CAiBvF"}
@@ -1,19 +1,25 @@
1
1
  /**
2
2
  * Browser automation resource.
3
3
  */
4
+ import { SDKError } from "../_utils/errors.js";
4
5
  import { APIResource } from "../_utils/resource.js";
5
6
  import { parseSSEStream } from "../_utils/sse.js";
6
- import { RunStatus, } from "./types.js";
7
+ import { agentRunAsyncResponseSchema, agentRunParamsSchema, agentRunResponseSchema, completeEventSchema, heartbeatEventSchema, progressEventSchema, startedEventSchema, streamingUrlEventSchema, } from "./types.js";
7
8
  /**
8
9
  * Build the JSON request body from typed params.
9
10
  * Optional fields are omitted rather than sent as undefined/null.
10
11
  */
11
12
  function buildRunBody(params) {
12
- const body = { goal: params.goal, url: params.url };
13
- if (params.browser_profile !== undefined)
14
- body.browser_profile = params.browser_profile;
15
- if (params.proxy_config !== undefined)
16
- body.proxy_config = params.proxy_config;
13
+ const parsed = agentRunParamsSchema.safeParse(params);
14
+ if (!parsed.success) {
15
+ const issue = parsed.error.issues[0];
16
+ throw new SDKError(issue?.message ?? "Invalid agent request");
17
+ }
18
+ const body = { goal: parsed.data.goal, url: parsed.data.url };
19
+ if (parsed.data.browser_profile !== undefined)
20
+ body.browser_profile = parsed.data.browser_profile;
21
+ if (parsed.data.proxy_config !== undefined)
22
+ body.proxy_config = parsed.data.proxy_config;
17
23
  return body;
18
24
  }
19
25
  /** Async-iterable wrapper around an SSE event stream, this is what we return when they call the stream endpoint */
@@ -33,74 +39,37 @@ export class AgentStream {
33
39
  await this._rawStream.cancel();
34
40
  }
35
41
  }
36
- const VALID_RUN_STATUSES = new Set(Object.values(RunStatus));
37
- /** Check that a value is a valid RunStatus enum member. */
38
- function isRunStatus(value) {
39
- return typeof value === "string" && VALID_RUN_STATUSES.has(value);
40
- }
41
- /** Check that a value looks like a RunError (has at least a message string). */
42
- function isRunError(value) {
43
- return (typeof value === "object" &&
44
- value !== null &&
45
- typeof value["message"] === "string");
46
- }
47
42
  /** Validate raw SSE data into a typed event. Returns null for malformed or unknown events. */
48
43
  function validateEvent(data) {
49
- const type = data["type"];
50
- if (typeof type !== "string")
51
- return null;
52
- switch (type) {
44
+ switch (data["type"]) {
53
45
  case "STARTED": {
54
- if (typeof data["run_id"] !== "string" || typeof data["timestamp"] !== "string")
55
- return null;
56
- return { type: "STARTED", run_id: data["run_id"], timestamp: data["timestamp"] };
46
+ const result = startedEventSchema.safeParse(data);
47
+ return result.success ? result.data : null;
57
48
  }
58
49
  case "STREAMING_URL": {
59
- if (typeof data["run_id"] !== "string" ||
60
- typeof data["streaming_url"] !== "string" ||
61
- typeof data["timestamp"] !== "string")
62
- return null;
63
- return {
64
- type: "STREAMING_URL",
65
- run_id: data["run_id"],
66
- streaming_url: data["streaming_url"],
67
- timestamp: data["timestamp"],
68
- };
50
+ const result = streamingUrlEventSchema.safeParse(data);
51
+ return result.success ? result.data : null;
69
52
  }
70
53
  case "PROGRESS": {
71
- if (typeof data["run_id"] !== "string" ||
72
- typeof data["purpose"] !== "string" ||
73
- typeof data["timestamp"] !== "string")
74
- return null;
75
- return {
76
- type: "PROGRESS",
77
- run_id: data["run_id"],
78
- purpose: data["purpose"],
79
- timestamp: data["timestamp"],
80
- };
54
+ const result = progressEventSchema.safeParse(data);
55
+ return result.success ? result.data : null;
81
56
  }
82
57
  case "HEARTBEAT": {
83
- if (typeof data["timestamp"] !== "string")
84
- return null;
85
- return { type: "HEARTBEAT", timestamp: data["timestamp"] };
58
+ const result = heartbeatEventSchema.safeParse(data);
59
+ return result.success ? result.data : null;
86
60
  }
87
61
  case "COMPLETE": {
88
- if (typeof data["run_id"] !== "string" ||
89
- !isRunStatus(data["status"]) ||
90
- typeof data["timestamp"] !== "string")
91
- return null;
92
- const result = data["result"];
93
- const error = data["error"];
94
- return {
95
- type: "COMPLETE",
96
- run_id: data["run_id"],
97
- status: data["status"],
98
- timestamp: data["timestamp"],
99
- result: typeof result === "object" && result !== null
100
- ? result
62
+ const normalized = {
63
+ ...data,
64
+ result: typeof data["result"] === "object" && data["result"] !== null ? data["result"] : null,
65
+ error: typeof data["error"] === "object" &&
66
+ data["error"] !== null &&
67
+ typeof data["error"]["message"] === "string"
68
+ ? data["error"]
101
69
  : null,
102
- error: isRunError(error) ? error : null,
103
70
  };
71
+ const result = completeEventSchema.safeParse(normalized);
72
+ return result.success ? result.data : null;
104
73
  }
105
74
  default:
106
75
  return null;
@@ -137,10 +106,12 @@ export class AgentResource extends APIResource {
137
106
  *
138
107
  * Returns a promise that resolves with the completed agent run output.
139
108
  */
140
- async run(params) {
141
- return this._client.post("/v1/automation/run", {
109
+ async run(params, options = {}) {
110
+ const response = await this._client.post("/v1/automation/run", {
142
111
  json: buildRunBody(params),
112
+ signal: options.signal,
143
113
  });
114
+ return agentRunResponseSchema.parse(response);
144
115
  }
145
116
  /**
146
117
  * Queue a browser automation and return immediately.
@@ -148,10 +119,12 @@ export class AgentResource extends APIResource {
148
119
  * Does not wait for the run to complete — returns a `run_id` straight away.
149
120
  * Use `client.runs.get(run_id)` to poll for the result.
150
121
  */
151
- async queue(params) {
152
- return this._client.post("/v1/automation/run-async", {
122
+ async queue(params, options = {}) {
123
+ const response = await this._client.post("/v1/automation/run-async", {
153
124
  json: buildRunBody(params),
125
+ signal: options.signal,
154
126
  });
127
+ return agentRunAsyncResponseSchema.parse(response);
155
128
  }
156
129
  /**
157
130
  * Stream live events from a browser automation run.
@@ -172,6 +145,7 @@ export class AgentResource extends APIResource {
172
145
  async stream(params, options = {}) {
173
146
  const raw = await this._client.postStream("/v1/automation/run-sse", {
174
147
  json: buildRunBody(params),
148
+ signal: options.signal,
175
149
  });
176
150
  async function* generate() {
177
151
  for await (const data of parseSSEStream(raw)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"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"}