agentmail 0.5.7 → 0.5.9

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 (192) hide show
  1. package/dist/cjs/BaseClient.js +2 -2
  2. package/dist/cjs/Client.d.ts +3 -0
  3. package/dist/cjs/Client.js +25 -20
  4. package/dist/cjs/api/resources/auth/client/Client.d.ts +28 -0
  5. package/dist/cjs/api/resources/auth/client/Client.js +114 -0
  6. package/dist/cjs/api/resources/auth/client/index.d.ts +1 -0
  7. package/dist/cjs/api/resources/auth/client/index.js +2 -0
  8. package/dist/cjs/api/resources/auth/exports.d.ts +2 -0
  9. package/dist/cjs/api/resources/auth/exports.js +21 -0
  10. package/dist/cjs/api/resources/auth/index.d.ts +2 -0
  11. package/dist/cjs/api/resources/auth/index.js +18 -0
  12. package/dist/cjs/api/resources/auth/types/Identity.d.ts +19 -0
  13. package/dist/cjs/api/resources/auth/types/Identity.js +3 -0
  14. package/dist/cjs/api/resources/auth/types/ScopeType.d.ts +7 -0
  15. package/dist/cjs/api/resources/auth/types/ScopeType.js +10 -0
  16. package/dist/cjs/api/resources/auth/types/index.d.ts +2 -0
  17. package/dist/cjs/api/resources/auth/types/index.js +18 -0
  18. package/dist/cjs/api/resources/inboxes/resources/messages/client/Client.d.ts +26 -0
  19. package/dist/cjs/api/resources/inboxes/resources/messages/client/Client.js +101 -1
  20. package/dist/cjs/api/resources/inboxes/resources/messages/client/requests/ListMessagesRequest.d.ts +6 -0
  21. package/dist/cjs/api/resources/inboxes/resources/messages/client/requests/SearchMessagesRequest.d.ts +14 -0
  22. package/dist/cjs/api/resources/inboxes/resources/messages/client/requests/SearchMessagesRequest.js +3 -0
  23. package/dist/cjs/api/resources/inboxes/resources/messages/client/requests/index.d.ts +1 -0
  24. package/dist/cjs/api/resources/inboxes/resources/threads/client/Client.d.ts +25 -0
  25. package/dist/cjs/api/resources/inboxes/resources/threads/client/Client.js +100 -1
  26. package/dist/cjs/api/resources/inboxes/resources/threads/client/requests/ListThreadsRequest.d.ts +6 -0
  27. package/dist/cjs/api/resources/inboxes/resources/threads/client/requests/SearchThreadsRequest.d.ts +14 -0
  28. package/dist/cjs/api/resources/inboxes/resources/threads/client/requests/SearchThreadsRequest.js +3 -0
  29. package/dist/cjs/api/resources/inboxes/resources/threads/client/requests/index.d.ts +1 -0
  30. package/dist/cjs/api/resources/index.d.ts +2 -0
  31. package/dist/cjs/api/resources/index.js +3 -1
  32. package/dist/cjs/api/resources/messages/types/SearchMessageHighlights.d.ts +15 -0
  33. package/dist/cjs/api/resources/messages/types/SearchMessageHighlights.js +3 -0
  34. package/dist/cjs/api/resources/messages/types/SearchMessageItem.d.ts +5 -0
  35. package/dist/cjs/api/resources/messages/types/SearchMessageItem.js +3 -0
  36. package/dist/cjs/api/resources/messages/types/SearchMessagesResponse.d.ts +8 -0
  37. package/dist/cjs/api/resources/messages/types/SearchMessagesResponse.js +3 -0
  38. package/dist/cjs/api/resources/messages/types/index.d.ts +3 -0
  39. package/dist/cjs/api/resources/messages/types/index.js +3 -0
  40. package/dist/cjs/api/resources/pods/resources/threads/client/Client.d.ts +25 -0
  41. package/dist/cjs/api/resources/pods/resources/threads/client/Client.js +100 -1
  42. package/dist/cjs/api/resources/pods/resources/threads/client/requests/ListThreadsRequest.d.ts +6 -0
  43. package/dist/cjs/api/resources/pods/resources/threads/client/requests/SearchThreadsRequest.d.ts +14 -0
  44. package/dist/cjs/api/resources/pods/resources/threads/client/requests/SearchThreadsRequest.js +3 -0
  45. package/dist/cjs/api/resources/pods/resources/threads/client/requests/index.d.ts +1 -0
  46. package/dist/cjs/api/resources/threads/client/Client.d.ts +26 -0
  47. package/dist/cjs/api/resources/threads/client/Client.js +101 -1
  48. package/dist/cjs/api/resources/threads/client/requests/ListThreadsRequest.d.ts +6 -0
  49. package/dist/cjs/api/resources/threads/client/requests/SearchThreadsRequest.d.ts +14 -0
  50. package/dist/cjs/api/resources/threads/client/requests/SearchThreadsRequest.js +3 -0
  51. package/dist/cjs/api/resources/threads/client/requests/index.d.ts +1 -0
  52. package/dist/cjs/api/resources/threads/types/SearchThreadHighlights.d.ts +15 -0
  53. package/dist/cjs/api/resources/threads/types/SearchThreadHighlights.js +3 -0
  54. package/dist/cjs/api/resources/threads/types/SearchThreadItem.d.ts +5 -0
  55. package/dist/cjs/api/resources/threads/types/SearchThreadItem.js +3 -0
  56. package/dist/cjs/api/resources/threads/types/SearchThreadsResponse.d.ts +8 -0
  57. package/dist/cjs/api/resources/threads/types/SearchThreadsResponse.js +3 -0
  58. package/dist/cjs/api/resources/threads/types/index.d.ts +3 -0
  59. package/dist/cjs/api/resources/threads/types/index.js +3 -0
  60. package/dist/cjs/api/types/Query.d.ts +5 -0
  61. package/dist/cjs/api/types/Query.js +3 -0
  62. package/dist/cjs/api/types/index.d.ts +1 -0
  63. package/dist/cjs/api/types/index.js +1 -0
  64. package/dist/cjs/serialization/resources/auth/index.d.ts +1 -0
  65. package/dist/cjs/serialization/resources/auth/index.js +17 -0
  66. package/dist/cjs/serialization/resources/auth/types/Identity.d.ts +16 -0
  67. package/dist/cjs/serialization/resources/auth/types/Identity.js +48 -0
  68. package/dist/cjs/serialization/resources/auth/types/ScopeType.d.ts +7 -0
  69. package/dist/cjs/serialization/resources/auth/types/ScopeType.js +39 -0
  70. package/dist/cjs/serialization/resources/auth/types/index.d.ts +2 -0
  71. package/dist/cjs/serialization/resources/auth/types/index.js +18 -0
  72. package/dist/cjs/serialization/resources/index.d.ts +2 -0
  73. package/dist/cjs/serialization/resources/index.js +3 -1
  74. package/dist/cjs/serialization/resources/messages/types/SearchMessageHighlights.d.ts +12 -0
  75. package/dist/cjs/serialization/resources/messages/types/SearchMessageHighlights.js +44 -0
  76. package/dist/cjs/serialization/resources/messages/types/SearchMessageItem.d.ts +11 -0
  77. package/dist/cjs/serialization/resources/messages/types/SearchMessageItem.js +45 -0
  78. package/dist/cjs/serialization/resources/messages/types/SearchMessagesResponse.d.ts +16 -0
  79. package/dist/cjs/serialization/resources/messages/types/SearchMessagesResponse.js +48 -0
  80. package/dist/cjs/serialization/resources/messages/types/index.d.ts +3 -0
  81. package/dist/cjs/serialization/resources/messages/types/index.js +3 -0
  82. package/dist/cjs/serialization/resources/threads/types/SearchThreadHighlights.d.ts +12 -0
  83. package/dist/cjs/serialization/resources/threads/types/SearchThreadHighlights.js +44 -0
  84. package/dist/cjs/serialization/resources/threads/types/SearchThreadItem.d.ts +11 -0
  85. package/dist/cjs/serialization/resources/threads/types/SearchThreadItem.js +45 -0
  86. package/dist/cjs/serialization/resources/threads/types/SearchThreadsResponse.d.ts +16 -0
  87. package/dist/cjs/serialization/resources/threads/types/SearchThreadsResponse.js +48 -0
  88. package/dist/cjs/serialization/resources/threads/types/index.d.ts +3 -0
  89. package/dist/cjs/serialization/resources/threads/types/index.js +3 -0
  90. package/dist/cjs/serialization/types/Query.d.ts +7 -0
  91. package/dist/cjs/serialization/types/Query.js +39 -0
  92. package/dist/cjs/serialization/types/index.d.ts +1 -0
  93. package/dist/cjs/serialization/types/index.js +1 -0
  94. package/dist/cjs/version.d.ts +1 -1
  95. package/dist/cjs/version.js +1 -1
  96. package/dist/esm/BaseClient.mjs +2 -2
  97. package/dist/esm/Client.d.mts +3 -0
  98. package/dist/esm/Client.mjs +5 -0
  99. package/dist/esm/api/resources/auth/client/Client.d.mts +28 -0
  100. package/dist/esm/api/resources/auth/client/Client.mjs +77 -0
  101. package/dist/esm/api/resources/auth/client/index.d.mts +1 -0
  102. package/dist/esm/api/resources/auth/client/index.mjs +1 -0
  103. package/dist/esm/api/resources/auth/exports.d.mts +2 -0
  104. package/dist/esm/api/resources/auth/exports.mjs +3 -0
  105. package/dist/esm/api/resources/auth/index.d.mts +2 -0
  106. package/dist/esm/api/resources/auth/index.mjs +2 -0
  107. package/dist/esm/api/resources/auth/types/Identity.d.mts +19 -0
  108. package/dist/esm/api/resources/auth/types/Identity.mjs +2 -0
  109. package/dist/esm/api/resources/auth/types/ScopeType.d.mts +7 -0
  110. package/dist/esm/api/resources/auth/types/ScopeType.mjs +7 -0
  111. package/dist/esm/api/resources/auth/types/index.d.mts +2 -0
  112. package/dist/esm/api/resources/auth/types/index.mjs +2 -0
  113. package/dist/esm/api/resources/inboxes/resources/messages/client/Client.d.mts +26 -0
  114. package/dist/esm/api/resources/inboxes/resources/messages/client/Client.mjs +101 -1
  115. package/dist/esm/api/resources/inboxes/resources/messages/client/requests/ListMessagesRequest.d.mts +6 -0
  116. package/dist/esm/api/resources/inboxes/resources/messages/client/requests/SearchMessagesRequest.d.mts +14 -0
  117. package/dist/esm/api/resources/inboxes/resources/messages/client/requests/SearchMessagesRequest.mjs +2 -0
  118. package/dist/esm/api/resources/inboxes/resources/messages/client/requests/index.d.mts +1 -0
  119. package/dist/esm/api/resources/inboxes/resources/threads/client/Client.d.mts +25 -0
  120. package/dist/esm/api/resources/inboxes/resources/threads/client/Client.mjs +100 -1
  121. package/dist/esm/api/resources/inboxes/resources/threads/client/requests/ListThreadsRequest.d.mts +6 -0
  122. package/dist/esm/api/resources/inboxes/resources/threads/client/requests/SearchThreadsRequest.d.mts +14 -0
  123. package/dist/esm/api/resources/inboxes/resources/threads/client/requests/SearchThreadsRequest.mjs +2 -0
  124. package/dist/esm/api/resources/inboxes/resources/threads/client/requests/index.d.mts +1 -0
  125. package/dist/esm/api/resources/index.d.mts +2 -0
  126. package/dist/esm/api/resources/index.mjs +2 -0
  127. package/dist/esm/api/resources/messages/types/SearchMessageHighlights.d.mts +15 -0
  128. package/dist/esm/api/resources/messages/types/SearchMessageHighlights.mjs +2 -0
  129. package/dist/esm/api/resources/messages/types/SearchMessageItem.d.mts +5 -0
  130. package/dist/esm/api/resources/messages/types/SearchMessageItem.mjs +2 -0
  131. package/dist/esm/api/resources/messages/types/SearchMessagesResponse.d.mts +8 -0
  132. package/dist/esm/api/resources/messages/types/SearchMessagesResponse.mjs +2 -0
  133. package/dist/esm/api/resources/messages/types/index.d.mts +3 -0
  134. package/dist/esm/api/resources/messages/types/index.mjs +3 -0
  135. package/dist/esm/api/resources/pods/resources/threads/client/Client.d.mts +25 -0
  136. package/dist/esm/api/resources/pods/resources/threads/client/Client.mjs +100 -1
  137. package/dist/esm/api/resources/pods/resources/threads/client/requests/ListThreadsRequest.d.mts +6 -0
  138. package/dist/esm/api/resources/pods/resources/threads/client/requests/SearchThreadsRequest.d.mts +14 -0
  139. package/dist/esm/api/resources/pods/resources/threads/client/requests/SearchThreadsRequest.mjs +2 -0
  140. package/dist/esm/api/resources/pods/resources/threads/client/requests/index.d.mts +1 -0
  141. package/dist/esm/api/resources/threads/client/Client.d.mts +26 -0
  142. package/dist/esm/api/resources/threads/client/Client.mjs +101 -1
  143. package/dist/esm/api/resources/threads/client/requests/ListThreadsRequest.d.mts +6 -0
  144. package/dist/esm/api/resources/threads/client/requests/SearchThreadsRequest.d.mts +14 -0
  145. package/dist/esm/api/resources/threads/client/requests/SearchThreadsRequest.mjs +2 -0
  146. package/dist/esm/api/resources/threads/client/requests/index.d.mts +1 -0
  147. package/dist/esm/api/resources/threads/types/SearchThreadHighlights.d.mts +15 -0
  148. package/dist/esm/api/resources/threads/types/SearchThreadHighlights.mjs +2 -0
  149. package/dist/esm/api/resources/threads/types/SearchThreadItem.d.mts +5 -0
  150. package/dist/esm/api/resources/threads/types/SearchThreadItem.mjs +2 -0
  151. package/dist/esm/api/resources/threads/types/SearchThreadsResponse.d.mts +8 -0
  152. package/dist/esm/api/resources/threads/types/SearchThreadsResponse.mjs +2 -0
  153. package/dist/esm/api/resources/threads/types/index.d.mts +3 -0
  154. package/dist/esm/api/resources/threads/types/index.mjs +3 -0
  155. package/dist/esm/api/types/Query.d.mts +5 -0
  156. package/dist/esm/api/types/Query.mjs +2 -0
  157. package/dist/esm/api/types/index.d.mts +1 -0
  158. package/dist/esm/api/types/index.mjs +1 -0
  159. package/dist/esm/serialization/resources/auth/index.d.mts +1 -0
  160. package/dist/esm/serialization/resources/auth/index.mjs +1 -0
  161. package/dist/esm/serialization/resources/auth/types/Identity.d.mts +16 -0
  162. package/dist/esm/serialization/resources/auth/types/Identity.mjs +12 -0
  163. package/dist/esm/serialization/resources/auth/types/ScopeType.d.mts +7 -0
  164. package/dist/esm/serialization/resources/auth/types/ScopeType.mjs +3 -0
  165. package/dist/esm/serialization/resources/auth/types/index.d.mts +2 -0
  166. package/dist/esm/serialization/resources/auth/types/index.mjs +2 -0
  167. package/dist/esm/serialization/resources/index.d.mts +2 -0
  168. package/dist/esm/serialization/resources/index.mjs +2 -0
  169. package/dist/esm/serialization/resources/messages/types/SearchMessageHighlights.d.mts +12 -0
  170. package/dist/esm/serialization/resources/messages/types/SearchMessageHighlights.mjs +8 -0
  171. package/dist/esm/serialization/resources/messages/types/SearchMessageItem.d.mts +11 -0
  172. package/dist/esm/serialization/resources/messages/types/SearchMessageItem.mjs +9 -0
  173. package/dist/esm/serialization/resources/messages/types/SearchMessagesResponse.d.mts +16 -0
  174. package/dist/esm/serialization/resources/messages/types/SearchMessagesResponse.mjs +12 -0
  175. package/dist/esm/serialization/resources/messages/types/index.d.mts +3 -0
  176. package/dist/esm/serialization/resources/messages/types/index.mjs +3 -0
  177. package/dist/esm/serialization/resources/threads/types/SearchThreadHighlights.d.mts +12 -0
  178. package/dist/esm/serialization/resources/threads/types/SearchThreadHighlights.mjs +8 -0
  179. package/dist/esm/serialization/resources/threads/types/SearchThreadItem.d.mts +11 -0
  180. package/dist/esm/serialization/resources/threads/types/SearchThreadItem.mjs +9 -0
  181. package/dist/esm/serialization/resources/threads/types/SearchThreadsResponse.d.mts +16 -0
  182. package/dist/esm/serialization/resources/threads/types/SearchThreadsResponse.mjs +12 -0
  183. package/dist/esm/serialization/resources/threads/types/index.d.mts +3 -0
  184. package/dist/esm/serialization/resources/threads/types/index.mjs +3 -0
  185. package/dist/esm/serialization/types/Query.d.mts +7 -0
  186. package/dist/esm/serialization/types/Query.mjs +3 -0
  187. package/dist/esm/serialization/types/index.d.mts +1 -0
  188. package/dist/esm/serialization/types/index.mjs +1 -0
  189. package/dist/esm/version.d.mts +1 -1
  190. package/dist/esm/version.mjs +1 -1
  191. package/package.json +12 -1
  192. package/reference.md +380 -0
@@ -58,6 +58,11 @@ class ThreadsClient {
58
58
  this._options = (0, BaseClient_js_1.normalizeClientOptionsWithAuth)(options);
59
59
  }
60
60
  /**
61
+ * Lists threads in the inbox, most recent first. Pass `senders`,
62
+ * `recipients`, or `subject` to filter by substring. Filtered requests are
63
+ * served by search, which caps `limit` at 100. For relevance-ranked
64
+ * full-text search, use `Search Threads`.
65
+ *
61
66
  * **CLI:**
62
67
  * ```bash
63
68
  * agentmail inboxes:threads list --inbox-id <inbox_id>
@@ -78,7 +83,7 @@ class ThreadsClient {
78
83
  __list(inbox_id_1) {
79
84
  return __awaiter(this, arguments, void 0, function* (inbox_id, request = {}, requestOptions) {
80
85
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
81
- const { limit, pageToken, labels, before, after, ascending, includeSpam, includeBlocked, includeUnauthenticated, includeTrash, } = request;
86
+ const { limit, pageToken, labels, before, after, ascending, includeSpam, includeBlocked, includeUnauthenticated, includeTrash, senders, recipients, subject, } = request;
82
87
  const _queryParams = {
83
88
  limit,
84
89
  page_token: pageToken,
@@ -99,6 +104,9 @@ class ThreadsClient {
99
104
  include_blocked: includeBlocked,
100
105
  include_unauthenticated: includeUnauthenticated,
101
106
  include_trash: includeTrash,
107
+ senders: senders != null ? (0, json_js_1.toJson)(senders) : undefined,
108
+ recipients: recipients != null ? (0, json_js_1.toJson)(recipients) : undefined,
109
+ subject: subject != null ? (0, json_js_1.toJson)(subject) : undefined,
102
110
  };
103
111
  const _authRequest = yield this._options.authProvider.getAuthRequest();
104
112
  const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
@@ -147,6 +155,97 @@ class ThreadsClient {
147
155
  return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "GET", "/v0/inboxes/{inbox_id}/threads");
148
156
  });
149
157
  }
158
+ /**
159
+ * Full-text search across threads in the inbox, ranked by relevance. The
160
+ * query is matched against senders, recipients, and subject (substring)
161
+ * and the message body (tokenized full text). Spam, trash, blocked, and
162
+ * unauthenticated threads are always excluded. `limit` cannot exceed 100.
163
+ *
164
+ * @param {AgentMail.inboxes.InboxId} inbox_id
165
+ * @param {AgentMail.inboxes.SearchThreadsRequest} request
166
+ * @param {ThreadsClient.RequestOptions} requestOptions - Request-specific configuration.
167
+ *
168
+ * @throws {@link AgentMail.ValidationError}
169
+ * @throws {@link AgentMail.NotFoundError}
170
+ *
171
+ * @example
172
+ * await client.inboxes.threads.search("inbox_id", {
173
+ * q: "q"
174
+ * })
175
+ */
176
+ search(inbox_id, request, requestOptions) {
177
+ return core.HttpResponsePromise.fromPromise(this.__search(inbox_id, request, requestOptions));
178
+ }
179
+ __search(inbox_id, request, requestOptions) {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
182
+ const { q, limit, pageToken, before, after } = request;
183
+ const _queryParams = {
184
+ q,
185
+ limit,
186
+ page_token: pageToken,
187
+ before: before != null
188
+ ? serializers.Before.jsonOrThrow(before, { unrecognizedObjectKeys: "strip", omitUndefined: true })
189
+ : undefined,
190
+ after: after != null
191
+ ? serializers.After.jsonOrThrow(after, { unrecognizedObjectKeys: "strip", omitUndefined: true })
192
+ : undefined,
193
+ };
194
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
195
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
196
+ const _response = yield core.fetcher({
197
+ url: core.url.join((_b = (yield core.Supplier.get(this._options.baseUrl))) !== null && _b !== void 0 ? _b : ((_c = (yield core.Supplier.get(this._options.environment))) !== null && _c !== void 0 ? _c : environments.AgentMailEnvironment.Prod)
198
+ .http, `/v0/inboxes/${core.url.encodePathParam(serializers.inboxes.InboxId.jsonOrThrow(inbox_id, { omitUndefined: true }))}/threads/search`),
199
+ method: "GET",
200
+ headers: _headers,
201
+ queryParameters: Object.assign(Object.assign({}, _queryParams), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams),
202
+ timeoutMs: ((_f = (_d = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _d !== void 0 ? _d : (_e = this._options) === null || _e === void 0 ? void 0 : _e.timeoutInSeconds) !== null && _f !== void 0 ? _f : 60) * 1000,
203
+ maxRetries: (_g = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _g !== void 0 ? _g : (_h = this._options) === null || _h === void 0 ? void 0 : _h.maxRetries,
204
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
205
+ fetchFn: (_j = this._options) === null || _j === void 0 ? void 0 : _j.fetch,
206
+ logging: this._options.logging,
207
+ });
208
+ if (_response.ok) {
209
+ return {
210
+ data: serializers.SearchThreadsResponse.parseOrThrow(_response.body, {
211
+ unrecognizedObjectKeys: "passthrough",
212
+ allowUnrecognizedUnionMembers: true,
213
+ allowUnrecognizedEnumValues: true,
214
+ skipValidation: true,
215
+ breadcrumbsPrefix: ["response"],
216
+ }),
217
+ rawResponse: _response.rawResponse,
218
+ };
219
+ }
220
+ if (_response.error.reason === "status-code") {
221
+ switch (_response.error.statusCode) {
222
+ case 400:
223
+ throw new AgentMail.ValidationError(serializers.ValidationErrorResponse.parseOrThrow(_response.error.body, {
224
+ unrecognizedObjectKeys: "passthrough",
225
+ allowUnrecognizedUnionMembers: true,
226
+ allowUnrecognizedEnumValues: true,
227
+ skipValidation: true,
228
+ breadcrumbsPrefix: ["response"],
229
+ }), _response.rawResponse);
230
+ case 404:
231
+ throw new AgentMail.NotFoundError(serializers.ErrorResponse.parseOrThrow(_response.error.body, {
232
+ unrecognizedObjectKeys: "passthrough",
233
+ allowUnrecognizedUnionMembers: true,
234
+ allowUnrecognizedEnumValues: true,
235
+ skipValidation: true,
236
+ breadcrumbsPrefix: ["response"],
237
+ }), _response.rawResponse);
238
+ default:
239
+ throw new errors.AgentMailError({
240
+ statusCode: _response.error.statusCode,
241
+ body: _response.error.body,
242
+ rawResponse: _response.rawResponse,
243
+ });
244
+ }
245
+ }
246
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "GET", "/v0/inboxes/{inbox_id}/threads/search");
247
+ });
248
+ }
150
249
  /**
151
250
  * **CLI:**
152
251
  * ```bash
@@ -14,4 +14,10 @@ export interface ListThreadsRequest {
14
14
  includeBlocked?: AgentMail.IncludeBlocked;
15
15
  includeUnauthenticated?: AgentMail.IncludeUnauthenticated;
16
16
  includeTrash?: AgentMail.IncludeTrash;
17
+ /** Filter to threads whose senders contain this value (substring match). Repeatable; all values must match. */
18
+ senders?: string[];
19
+ /** Filter to threads whose recipients contain this value (substring match). Repeatable; all values must match. */
20
+ recipients?: string[];
21
+ /** Filter to threads whose subject contains this value (substring match). Repeatable; all values must match. */
22
+ subject?: string[];
17
23
  }
@@ -0,0 +1,14 @@
1
+ import type * as AgentMail from "../../../../../../index.js";
2
+ /**
3
+ * @example
4
+ * {
5
+ * q: "q"
6
+ * }
7
+ */
8
+ export interface SearchThreadsRequest {
9
+ q: AgentMail.Query;
10
+ limit?: AgentMail.Limit;
11
+ pageToken?: AgentMail.PageToken;
12
+ before?: AgentMail.Before;
13
+ after?: AgentMail.After;
14
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +1,3 @@
1
1
  export type { DeleteThreadRequest } from "./DeleteThreadRequest.js";
2
2
  export type { ListThreadsRequest } from "./ListThreadsRequest.js";
3
+ export type { SearchThreadsRequest } from "./SearchThreadsRequest.js";
@@ -5,6 +5,8 @@ export * as apiKeys from "./apiKeys/index.js";
5
5
  export * from "./apiKeys/types/index.js";
6
6
  export * as attachments from "./attachments/index.js";
7
7
  export * from "./attachments/types/index.js";
8
+ export * as auth from "./auth/index.js";
9
+ export * from "./auth/types/index.js";
8
10
  export * from "./domains/client/requests/index.js";
9
11
  export * as domains from "./domains/index.js";
10
12
  export * from "./domains/types/index.js";
@@ -36,7 +36,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.websockets = exports.webhooks = exports.threads = exports.pods = exports.organizations = exports.metrics = exports.messages = exports.lists = exports.inboxes = exports.inboxEvents = exports.events = exports.drafts = exports.domains = exports.attachments = exports.apiKeys = exports.agent = void 0;
39
+ exports.websockets = exports.webhooks = exports.threads = exports.pods = exports.organizations = exports.metrics = exports.messages = exports.lists = exports.inboxes = exports.inboxEvents = exports.events = exports.drafts = exports.domains = exports.auth = exports.attachments = exports.apiKeys = exports.agent = void 0;
40
40
  exports.agent = __importStar(require("./agent/index.js"));
41
41
  __exportStar(require("./agent/types/index.js"), exports);
42
42
  __exportStar(require("./apiKeys/client/requests/index.js"), exports);
@@ -44,6 +44,8 @@ exports.apiKeys = __importStar(require("./apiKeys/index.js"));
44
44
  __exportStar(require("./apiKeys/types/index.js"), exports);
45
45
  exports.attachments = __importStar(require("./attachments/index.js"));
46
46
  __exportStar(require("./attachments/types/index.js"), exports);
47
+ exports.auth = __importStar(require("./auth/index.js"));
48
+ __exportStar(require("./auth/types/index.js"), exports);
47
49
  __exportStar(require("./domains/client/requests/index.js"), exports);
48
50
  exports.domains = __importStar(require("./domains/index.js"));
49
51
  __exportStar(require("./domains/types/index.js"), exports);
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Matched fragments per field on a message search result, with matched terms
3
+ * wrapped in `**`. A field key is present only when the query matched that
4
+ * field, so the present keys also tell you which fields produced the hit.
5
+ */
6
+ export interface SearchMessageHighlights {
7
+ /** Matched fragments from the sender address. */
8
+ from?: string[];
9
+ /** Matched fragments from the recipient addresses (to, cc, or bcc). */
10
+ recipients?: string[];
11
+ /** Matched fragments from the subject. */
12
+ subject?: string[];
13
+ /** Matched fragments from the message body. */
14
+ text?: string[];
15
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ import type * as AgentMail from "../../../index.js";
2
+ export interface SearchMessageItem extends AgentMail.MessageItem {
3
+ /** Matched fragments per field. Present only when the query matched an indexed field. */
4
+ highlights?: AgentMail.SearchMessageHighlights;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import type * as AgentMail from "../../../index.js";
2
+ export interface SearchMessagesResponse {
3
+ count: AgentMail.Count;
4
+ limit?: AgentMail.Limit;
5
+ nextPageToken?: AgentMail.PageToken;
6
+ /** Ordered by relevance, best match first. */
7
+ messages: AgentMail.SearchMessageItem[];
8
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -28,6 +28,9 @@ export * from "./RawMessageResponse.js";
28
28
  export * from "./ReplyAll.js";
29
29
  export * from "./ReplyAllMessageRequest.js";
30
30
  export * from "./ReplyToMessageRequest.js";
31
+ export * from "./SearchMessageHighlights.js";
32
+ export * from "./SearchMessageItem.js";
33
+ export * from "./SearchMessagesResponse.js";
31
34
  export * from "./SendMessageAttachments.js";
32
35
  export * from "./SendMessageBcc.js";
33
36
  export * from "./SendMessageCc.js";
@@ -44,6 +44,9 @@ __exportStar(require("./RawMessageResponse.js"), exports);
44
44
  __exportStar(require("./ReplyAll.js"), exports);
45
45
  __exportStar(require("./ReplyAllMessageRequest.js"), exports);
46
46
  __exportStar(require("./ReplyToMessageRequest.js"), exports);
47
+ __exportStar(require("./SearchMessageHighlights.js"), exports);
48
+ __exportStar(require("./SearchMessageItem.js"), exports);
49
+ __exportStar(require("./SearchMessagesResponse.js"), exports);
47
50
  __exportStar(require("./SendMessageAttachments.js"), exports);
48
51
  __exportStar(require("./SendMessageBcc.js"), exports);
49
52
  __exportStar(require("./SendMessageCc.js"), exports);
@@ -11,6 +11,11 @@ export declare class ThreadsClient {
11
11
  protected readonly _options: NormalizedClientOptionsWithAuth<ThreadsClient.Options>;
12
12
  constructor(options?: ThreadsClient.Options);
13
13
  /**
14
+ * Lists threads in the pod, most recent first. Pass `senders`,
15
+ * `recipients`, or `subject` to filter by substring. Filtered requests are
16
+ * served by search, which caps `limit` at 100. For relevance-ranked
17
+ * full-text search, use `Search Threads`.
18
+ *
14
19
  * **CLI:**
15
20
  * ```bash
16
21
  * agentmail pods:threads list --pod-id <pod_id>
@@ -27,6 +32,26 @@ export declare class ThreadsClient {
27
32
  */
28
33
  list(pod_id: AgentMail.pods.PodId, request?: AgentMail.pods.ListThreadsRequest, requestOptions?: ThreadsClient.RequestOptions): core.HttpResponsePromise<AgentMail.ListThreadsResponse>;
29
34
  private __list;
35
+ /**
36
+ * Full-text search across threads in the pod, ranked by relevance. The
37
+ * query is matched against senders, recipients, and subject (substring)
38
+ * and the message body (tokenized full text). Spam, trash, blocked, and
39
+ * unauthenticated threads are always excluded. `limit` cannot exceed 100.
40
+ *
41
+ * @param {AgentMail.pods.PodId} pod_id
42
+ * @param {AgentMail.pods.SearchThreadsRequest} request
43
+ * @param {ThreadsClient.RequestOptions} requestOptions - Request-specific configuration.
44
+ *
45
+ * @throws {@link AgentMail.ValidationError}
46
+ * @throws {@link AgentMail.NotFoundError}
47
+ *
48
+ * @example
49
+ * await client.pods.threads.search("pod_id", {
50
+ * q: "q"
51
+ * })
52
+ */
53
+ search(pod_id: AgentMail.pods.PodId, request: AgentMail.pods.SearchThreadsRequest, requestOptions?: ThreadsClient.RequestOptions): core.HttpResponsePromise<AgentMail.SearchThreadsResponse>;
54
+ private __search;
30
55
  /**
31
56
  * **CLI:**
32
57
  * ```bash
@@ -58,6 +58,11 @@ class ThreadsClient {
58
58
  this._options = (0, BaseClient_js_1.normalizeClientOptionsWithAuth)(options);
59
59
  }
60
60
  /**
61
+ * Lists threads in the pod, most recent first. Pass `senders`,
62
+ * `recipients`, or `subject` to filter by substring. Filtered requests are
63
+ * served by search, which caps `limit` at 100. For relevance-ranked
64
+ * full-text search, use `Search Threads`.
65
+ *
61
66
  * **CLI:**
62
67
  * ```bash
63
68
  * agentmail pods:threads list --pod-id <pod_id>
@@ -78,7 +83,7 @@ class ThreadsClient {
78
83
  __list(pod_id_1) {
79
84
  return __awaiter(this, arguments, void 0, function* (pod_id, request = {}, requestOptions) {
80
85
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
81
- const { limit, pageToken, labels, before, after, ascending, includeSpam, includeBlocked, includeUnauthenticated, includeTrash, } = request;
86
+ const { limit, pageToken, labels, before, after, ascending, includeSpam, includeBlocked, includeUnauthenticated, includeTrash, senders, recipients, subject, } = request;
82
87
  const _queryParams = {
83
88
  limit,
84
89
  page_token: pageToken,
@@ -99,6 +104,9 @@ class ThreadsClient {
99
104
  include_blocked: includeBlocked,
100
105
  include_unauthenticated: includeUnauthenticated,
101
106
  include_trash: includeTrash,
107
+ senders: senders != null ? (0, json_js_1.toJson)(senders) : undefined,
108
+ recipients: recipients != null ? (0, json_js_1.toJson)(recipients) : undefined,
109
+ subject: subject != null ? (0, json_js_1.toJson)(subject) : undefined,
102
110
  };
103
111
  const _authRequest = yield this._options.authProvider.getAuthRequest();
104
112
  const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
@@ -147,6 +155,97 @@ class ThreadsClient {
147
155
  return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "GET", "/v0/pods/{pod_id}/threads");
148
156
  });
149
157
  }
158
+ /**
159
+ * Full-text search across threads in the pod, ranked by relevance. The
160
+ * query is matched against senders, recipients, and subject (substring)
161
+ * and the message body (tokenized full text). Spam, trash, blocked, and
162
+ * unauthenticated threads are always excluded. `limit` cannot exceed 100.
163
+ *
164
+ * @param {AgentMail.pods.PodId} pod_id
165
+ * @param {AgentMail.pods.SearchThreadsRequest} request
166
+ * @param {ThreadsClient.RequestOptions} requestOptions - Request-specific configuration.
167
+ *
168
+ * @throws {@link AgentMail.ValidationError}
169
+ * @throws {@link AgentMail.NotFoundError}
170
+ *
171
+ * @example
172
+ * await client.pods.threads.search("pod_id", {
173
+ * q: "q"
174
+ * })
175
+ */
176
+ search(pod_id, request, requestOptions) {
177
+ return core.HttpResponsePromise.fromPromise(this.__search(pod_id, request, requestOptions));
178
+ }
179
+ __search(pod_id, request, requestOptions) {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
182
+ const { q, limit, pageToken, before, after } = request;
183
+ const _queryParams = {
184
+ q,
185
+ limit,
186
+ page_token: pageToken,
187
+ before: before != null
188
+ ? serializers.Before.jsonOrThrow(before, { unrecognizedObjectKeys: "strip", omitUndefined: true })
189
+ : undefined,
190
+ after: after != null
191
+ ? serializers.After.jsonOrThrow(after, { unrecognizedObjectKeys: "strip", omitUndefined: true })
192
+ : undefined,
193
+ };
194
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
195
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
196
+ const _response = yield core.fetcher({
197
+ url: core.url.join((_b = (yield core.Supplier.get(this._options.baseUrl))) !== null && _b !== void 0 ? _b : ((_c = (yield core.Supplier.get(this._options.environment))) !== null && _c !== void 0 ? _c : environments.AgentMailEnvironment.Prod)
198
+ .http, `/v0/pods/${core.url.encodePathParam(serializers.pods.PodId.jsonOrThrow(pod_id, { omitUndefined: true }))}/threads/search`),
199
+ method: "GET",
200
+ headers: _headers,
201
+ queryParameters: Object.assign(Object.assign({}, _queryParams), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams),
202
+ timeoutMs: ((_f = (_d = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _d !== void 0 ? _d : (_e = this._options) === null || _e === void 0 ? void 0 : _e.timeoutInSeconds) !== null && _f !== void 0 ? _f : 60) * 1000,
203
+ maxRetries: (_g = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _g !== void 0 ? _g : (_h = this._options) === null || _h === void 0 ? void 0 : _h.maxRetries,
204
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
205
+ fetchFn: (_j = this._options) === null || _j === void 0 ? void 0 : _j.fetch,
206
+ logging: this._options.logging,
207
+ });
208
+ if (_response.ok) {
209
+ return {
210
+ data: serializers.SearchThreadsResponse.parseOrThrow(_response.body, {
211
+ unrecognizedObjectKeys: "passthrough",
212
+ allowUnrecognizedUnionMembers: true,
213
+ allowUnrecognizedEnumValues: true,
214
+ skipValidation: true,
215
+ breadcrumbsPrefix: ["response"],
216
+ }),
217
+ rawResponse: _response.rawResponse,
218
+ };
219
+ }
220
+ if (_response.error.reason === "status-code") {
221
+ switch (_response.error.statusCode) {
222
+ case 400:
223
+ throw new AgentMail.ValidationError(serializers.ValidationErrorResponse.parseOrThrow(_response.error.body, {
224
+ unrecognizedObjectKeys: "passthrough",
225
+ allowUnrecognizedUnionMembers: true,
226
+ allowUnrecognizedEnumValues: true,
227
+ skipValidation: true,
228
+ breadcrumbsPrefix: ["response"],
229
+ }), _response.rawResponse);
230
+ case 404:
231
+ throw new AgentMail.NotFoundError(serializers.ErrorResponse.parseOrThrow(_response.error.body, {
232
+ unrecognizedObjectKeys: "passthrough",
233
+ allowUnrecognizedUnionMembers: true,
234
+ allowUnrecognizedEnumValues: true,
235
+ skipValidation: true,
236
+ breadcrumbsPrefix: ["response"],
237
+ }), _response.rawResponse);
238
+ default:
239
+ throw new errors.AgentMailError({
240
+ statusCode: _response.error.statusCode,
241
+ body: _response.error.body,
242
+ rawResponse: _response.rawResponse,
243
+ });
244
+ }
245
+ }
246
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "GET", "/v0/pods/{pod_id}/threads/search");
247
+ });
248
+ }
150
249
  /**
151
250
  * **CLI:**
152
251
  * ```bash
@@ -14,4 +14,10 @@ export interface ListThreadsRequest {
14
14
  includeBlocked?: AgentMail.IncludeBlocked;
15
15
  includeUnauthenticated?: AgentMail.IncludeUnauthenticated;
16
16
  includeTrash?: AgentMail.IncludeTrash;
17
+ /** Filter to threads whose senders contain this value (substring match). Repeatable; all values must match. */
18
+ senders?: string[];
19
+ /** Filter to threads whose recipients contain this value (substring match). Repeatable; all values must match. */
20
+ recipients?: string[];
21
+ /** Filter to threads whose subject contains this value (substring match). Repeatable; all values must match. */
22
+ subject?: string[];
17
23
  }
@@ -0,0 +1,14 @@
1
+ import type * as AgentMail from "../../../../../../index.js";
2
+ /**
3
+ * @example
4
+ * {
5
+ * q: "q"
6
+ * }
7
+ */
8
+ export interface SearchThreadsRequest {
9
+ q: AgentMail.Query;
10
+ limit?: AgentMail.Limit;
11
+ pageToken?: AgentMail.PageToken;
12
+ before?: AgentMail.Before;
13
+ after?: AgentMail.After;
14
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // This file was auto-generated by Fern from our API Definition.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +1,3 @@
1
1
  export type { DeleteThreadRequest } from "./DeleteThreadRequest.js";
2
2
  export type { ListThreadsRequest } from "./ListThreadsRequest.js";
3
+ export type { SearchThreadsRequest } from "./SearchThreadsRequest.js";
@@ -11,6 +11,12 @@ export declare class ThreadsClient {
11
11
  protected readonly _options: NormalizedClientOptionsWithAuth<ThreadsClient.Options>;
12
12
  constructor(options?: ThreadsClient.Options);
13
13
  /**
14
+ * Lists threads, most recent first. Pass `senders`, `recipients`, or
15
+ * `subject` to filter by substring. Filtered requests are served by
16
+ * search, which caps `limit` at 100. For relevance-ranked full-text
17
+ * search across senders, recipients, subject, and message body, use
18
+ * `Search Threads`.
19
+ *
14
20
  * **CLI:**
15
21
  * ```bash
16
22
  * agentmail threads list
@@ -26,6 +32,26 @@ export declare class ThreadsClient {
26
32
  */
27
33
  list(request?: AgentMail.ListThreadsRequest, requestOptions?: ThreadsClient.RequestOptions): core.HttpResponsePromise<AgentMail.ListThreadsResponse>;
28
34
  private __list;
35
+ /**
36
+ * Full-text search across threads in the organization, ranked by
37
+ * relevance. The query is matched against senders, recipients, and
38
+ * subject (substring) and the message body (tokenized full text). Spam,
39
+ * trash, blocked, and unauthenticated threads are always excluded.
40
+ * `limit` cannot exceed 100.
41
+ *
42
+ * @param {AgentMail.SearchThreadsRequest} request
43
+ * @param {ThreadsClient.RequestOptions} requestOptions - Request-specific configuration.
44
+ *
45
+ * @throws {@link AgentMail.ValidationError}
46
+ * @throws {@link AgentMail.NotFoundError}
47
+ *
48
+ * @example
49
+ * await client.threads.search({
50
+ * q: "q"
51
+ * })
52
+ */
53
+ search(request: AgentMail.SearchThreadsRequest, requestOptions?: ThreadsClient.RequestOptions): core.HttpResponsePromise<AgentMail.SearchThreadsResponse>;
54
+ private __search;
29
55
  /**
30
56
  * **CLI:**
31
57
  * ```bash
@@ -58,6 +58,12 @@ class ThreadsClient {
58
58
  this._options = (0, BaseClient_js_1.normalizeClientOptionsWithAuth)(options);
59
59
  }
60
60
  /**
61
+ * Lists threads, most recent first. Pass `senders`, `recipients`, or
62
+ * `subject` to filter by substring. Filtered requests are served by
63
+ * search, which caps `limit` at 100. For relevance-ranked full-text
64
+ * search across senders, recipients, subject, and message body, use
65
+ * `Search Threads`.
66
+ *
61
67
  * **CLI:**
62
68
  * ```bash
63
69
  * agentmail threads list
@@ -77,7 +83,7 @@ class ThreadsClient {
77
83
  __list() {
78
84
  return __awaiter(this, arguments, void 0, function* (request = {}, requestOptions) {
79
85
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
80
- const { limit, pageToken, labels, before, after, ascending, includeSpam, includeBlocked, includeUnauthenticated, includeTrash, } = request;
86
+ const { limit, pageToken, labels, before, after, ascending, includeSpam, includeBlocked, includeUnauthenticated, includeTrash, senders, recipients, subject, } = request;
81
87
  const _queryParams = {
82
88
  limit,
83
89
  page_token: pageToken,
@@ -98,6 +104,9 @@ class ThreadsClient {
98
104
  include_blocked: includeBlocked,
99
105
  include_unauthenticated: includeUnauthenticated,
100
106
  include_trash: includeTrash,
107
+ senders: senders != null ? (0, json_js_1.toJson)(senders) : undefined,
108
+ recipients: recipients != null ? (0, json_js_1.toJson)(recipients) : undefined,
109
+ subject: subject != null ? (0, json_js_1.toJson)(subject) : undefined,
101
110
  };
102
111
  const _authRequest = yield this._options.authProvider.getAuthRequest();
103
112
  const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
@@ -146,6 +155,97 @@ class ThreadsClient {
146
155
  return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "GET", "/v0/threads");
147
156
  });
148
157
  }
158
+ /**
159
+ * Full-text search across threads in the organization, ranked by
160
+ * relevance. The query is matched against senders, recipients, and
161
+ * subject (substring) and the message body (tokenized full text). Spam,
162
+ * trash, blocked, and unauthenticated threads are always excluded.
163
+ * `limit` cannot exceed 100.
164
+ *
165
+ * @param {AgentMail.SearchThreadsRequest} request
166
+ * @param {ThreadsClient.RequestOptions} requestOptions - Request-specific configuration.
167
+ *
168
+ * @throws {@link AgentMail.ValidationError}
169
+ * @throws {@link AgentMail.NotFoundError}
170
+ *
171
+ * @example
172
+ * await client.threads.search({
173
+ * q: "q"
174
+ * })
175
+ */
176
+ search(request, requestOptions) {
177
+ return core.HttpResponsePromise.fromPromise(this.__search(request, requestOptions));
178
+ }
179
+ __search(request, requestOptions) {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
182
+ const { q, limit, pageToken, before, after } = request;
183
+ const _queryParams = {
184
+ q,
185
+ limit,
186
+ page_token: pageToken,
187
+ before: before != null
188
+ ? serializers.Before.jsonOrThrow(before, { unrecognizedObjectKeys: "strip", omitUndefined: true })
189
+ : undefined,
190
+ after: after != null
191
+ ? serializers.After.jsonOrThrow(after, { unrecognizedObjectKeys: "strip", omitUndefined: true })
192
+ : undefined,
193
+ };
194
+ const _authRequest = yield this._options.authProvider.getAuthRequest();
195
+ const _headers = (0, headers_js_1.mergeHeaders)(_authRequest.headers, (_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
196
+ const _response = yield core.fetcher({
197
+ url: core.url.join((_b = (yield core.Supplier.get(this._options.baseUrl))) !== null && _b !== void 0 ? _b : ((_c = (yield core.Supplier.get(this._options.environment))) !== null && _c !== void 0 ? _c : environments.AgentMailEnvironment.Prod)
198
+ .http, "/v0/threads/search"),
199
+ method: "GET",
200
+ headers: _headers,
201
+ queryParameters: Object.assign(Object.assign({}, _queryParams), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams),
202
+ timeoutMs: ((_f = (_d = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) !== null && _d !== void 0 ? _d : (_e = this._options) === null || _e === void 0 ? void 0 : _e.timeoutInSeconds) !== null && _f !== void 0 ? _f : 60) * 1000,
203
+ maxRetries: (_g = requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries) !== null && _g !== void 0 ? _g : (_h = this._options) === null || _h === void 0 ? void 0 : _h.maxRetries,
204
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
205
+ fetchFn: (_j = this._options) === null || _j === void 0 ? void 0 : _j.fetch,
206
+ logging: this._options.logging,
207
+ });
208
+ if (_response.ok) {
209
+ return {
210
+ data: serializers.SearchThreadsResponse.parseOrThrow(_response.body, {
211
+ unrecognizedObjectKeys: "passthrough",
212
+ allowUnrecognizedUnionMembers: true,
213
+ allowUnrecognizedEnumValues: true,
214
+ skipValidation: true,
215
+ breadcrumbsPrefix: ["response"],
216
+ }),
217
+ rawResponse: _response.rawResponse,
218
+ };
219
+ }
220
+ if (_response.error.reason === "status-code") {
221
+ switch (_response.error.statusCode) {
222
+ case 400:
223
+ throw new AgentMail.ValidationError(serializers.ValidationErrorResponse.parseOrThrow(_response.error.body, {
224
+ unrecognizedObjectKeys: "passthrough",
225
+ allowUnrecognizedUnionMembers: true,
226
+ allowUnrecognizedEnumValues: true,
227
+ skipValidation: true,
228
+ breadcrumbsPrefix: ["response"],
229
+ }), _response.rawResponse);
230
+ case 404:
231
+ throw new AgentMail.NotFoundError(serializers.ErrorResponse.parseOrThrow(_response.error.body, {
232
+ unrecognizedObjectKeys: "passthrough",
233
+ allowUnrecognizedUnionMembers: true,
234
+ allowUnrecognizedEnumValues: true,
235
+ skipValidation: true,
236
+ breadcrumbsPrefix: ["response"],
237
+ }), _response.rawResponse);
238
+ default:
239
+ throw new errors.AgentMailError({
240
+ statusCode: _response.error.statusCode,
241
+ body: _response.error.body,
242
+ rawResponse: _response.rawResponse,
243
+ });
244
+ }
245
+ }
246
+ return (0, handleNonStatusCodeError_js_1.handleNonStatusCodeError)(_response.error, _response.rawResponse, "GET", "/v0/threads/search");
247
+ });
248
+ }
149
249
  /**
150
250
  * **CLI:**
151
251
  * ```bash