featurebase-node 0.15.0 → 0.15.2

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 (156) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/client.d.mts +8 -2
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +8 -2
  5. package/client.d.ts.map +1 -1
  6. package/client.js +6 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +6 -0
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/audit-logs.d.mts +2 -2
  12. package/resources/audit-logs.d.mts.map +1 -1
  13. package/resources/audit-logs.d.ts +2 -2
  14. package/resources/audit-logs.d.ts.map +1 -1
  15. package/resources/changelogs/changelogs.d.mts +1166 -6
  16. package/resources/changelogs/changelogs.d.mts.map +1 -1
  17. package/resources/changelogs/changelogs.d.ts +1166 -6
  18. package/resources/changelogs/changelogs.d.ts.map +1 -1
  19. package/resources/changelogs/changelogs.js +53 -3
  20. package/resources/changelogs/changelogs.js.map +1 -1
  21. package/resources/changelogs/changelogs.mjs +53 -3
  22. package/resources/changelogs/changelogs.mjs.map +1 -1
  23. package/resources/changelogs/index.d.mts +1 -1
  24. package/resources/changelogs/index.d.mts.map +1 -1
  25. package/resources/changelogs/index.d.ts +1 -1
  26. package/resources/changelogs/index.d.ts.map +1 -1
  27. package/resources/changelogs/index.js.map +1 -1
  28. package/resources/changelogs/index.mjs.map +1 -1
  29. package/resources/conversation-attributes.d.mts +5 -0
  30. package/resources/conversation-attributes.d.mts.map +1 -1
  31. package/resources/conversation-attributes.d.ts +5 -0
  32. package/resources/conversation-attributes.d.ts.map +1 -1
  33. package/resources/feedback/comments.d.mts +4 -2
  34. package/resources/feedback/comments.d.mts.map +1 -1
  35. package/resources/feedback/comments.d.ts +4 -2
  36. package/resources/feedback/comments.d.ts.map +1 -1
  37. package/resources/feedback/custom-fields.d.mts +12 -0
  38. package/resources/feedback/custom-fields.d.mts.map +1 -1
  39. package/resources/feedback/custom-fields.d.ts +12 -0
  40. package/resources/feedback/custom-fields.d.ts.map +1 -1
  41. package/resources/feedback/posts/index.d.mts +1 -0
  42. package/resources/feedback/posts/index.d.mts.map +1 -1
  43. package/resources/feedback/posts/index.d.ts +1 -0
  44. package/resources/feedback/posts/index.d.ts.map +1 -1
  45. package/resources/feedback/posts/index.js +3 -1
  46. package/resources/feedback/posts/index.js.map +1 -1
  47. package/resources/feedback/posts/index.mjs +1 -0
  48. package/resources/feedback/posts/index.mjs.map +1 -1
  49. package/resources/feedback/posts/insights.d.mts +254 -0
  50. package/resources/feedback/posts/insights.d.mts.map +1 -0
  51. package/resources/feedback/posts/insights.d.ts +254 -0
  52. package/resources/feedback/posts/insights.d.ts.map +1 -0
  53. package/resources/feedback/posts/insights.js +269 -0
  54. package/resources/feedback/posts/insights.js.map +1 -0
  55. package/resources/feedback/posts/insights.mjs +265 -0
  56. package/resources/feedback/posts/insights.mjs.map +1 -0
  57. package/resources/feedback/posts/posts.d.mts +647 -20
  58. package/resources/feedback/posts/posts.d.mts.map +1 -1
  59. package/resources/feedback/posts/posts.d.ts +647 -20
  60. package/resources/feedback/posts/posts.d.ts.map +1 -1
  61. package/resources/feedback/posts/posts.js +199 -7
  62. package/resources/feedback/posts/posts.js.map +1 -1
  63. package/resources/feedback/posts/posts.mjs +199 -7
  64. package/resources/feedback/posts/posts.mjs.map +1 -1
  65. package/resources/index.d.mts +2 -1
  66. package/resources/index.d.mts.map +1 -1
  67. package/resources/index.d.ts +2 -1
  68. package/resources/index.d.ts.map +1 -1
  69. package/resources/index.js +3 -1
  70. package/resources/index.js.map +1 -1
  71. package/resources/index.mjs +1 -0
  72. package/resources/index.mjs.map +1 -1
  73. package/resources/reports.d.mts +101 -19
  74. package/resources/reports.d.mts.map +1 -1
  75. package/resources/reports.d.ts +101 -19
  76. package/resources/reports.d.ts.map +1 -1
  77. package/resources/reports.js +15 -8
  78. package/resources/reports.js.map +1 -1
  79. package/resources/reports.mjs +15 -8
  80. package/resources/reports.mjs.map +1 -1
  81. package/resources/support/conversations/conversations.d.mts +22 -1
  82. package/resources/support/conversations/conversations.d.mts.map +1 -1
  83. package/resources/support/conversations/conversations.d.ts +22 -1
  84. package/resources/support/conversations/conversations.d.ts.map +1 -1
  85. package/resources/support/conversations/conversations.js.map +1 -1
  86. package/resources/support/conversations/conversations.mjs.map +1 -1
  87. package/resources/support/tickets/tickets.d.mts +9 -5
  88. package/resources/support/tickets/tickets.d.mts.map +1 -1
  89. package/resources/support/tickets/tickets.d.ts +9 -5
  90. package/resources/support/tickets/tickets.d.ts.map +1 -1
  91. package/resources/support/tickets/tickets.js.map +1 -1
  92. package/resources/support/tickets/tickets.mjs.map +1 -1
  93. package/resources/training-data/files.d.mts +292 -0
  94. package/resources/training-data/files.d.mts.map +1 -0
  95. package/resources/training-data/files.d.ts +292 -0
  96. package/resources/training-data/files.d.ts.map +1 -0
  97. package/resources/training-data/files.js +171 -0
  98. package/resources/training-data/files.js.map +1 -0
  99. package/resources/training-data/files.mjs +167 -0
  100. package/resources/training-data/files.mjs.map +1 -0
  101. package/resources/training-data/index.d.mts +4 -0
  102. package/resources/training-data/index.d.mts.map +1 -0
  103. package/resources/training-data/index.d.ts +4 -0
  104. package/resources/training-data/index.d.ts.map +1 -0
  105. package/resources/training-data/index.js +11 -0
  106. package/resources/training-data/index.js.map +1 -0
  107. package/resources/training-data/index.mjs +5 -0
  108. package/resources/training-data/index.mjs.map +1 -0
  109. package/resources/training-data/qna.d.mts +370 -0
  110. package/resources/training-data/qna.d.mts.map +1 -0
  111. package/resources/training-data/qna.d.ts +370 -0
  112. package/resources/training-data/qna.d.ts.map +1 -0
  113. package/resources/training-data/qna.js +177 -0
  114. package/resources/training-data/qna.js.map +1 -0
  115. package/resources/training-data/qna.mjs +173 -0
  116. package/resources/training-data/qna.mjs.map +1 -0
  117. package/resources/training-data/training-data.d.mts +442 -0
  118. package/resources/training-data/training-data.d.mts.map +1 -0
  119. package/resources/training-data/training-data.d.ts +442 -0
  120. package/resources/training-data/training-data.d.ts.map +1 -0
  121. package/resources/training-data/training-data.js +105 -0
  122. package/resources/training-data/training-data.js.map +1 -0
  123. package/resources/training-data/training-data.mjs +100 -0
  124. package/resources/training-data/training-data.mjs.map +1 -0
  125. package/resources/training-data.d.mts +2 -0
  126. package/resources/training-data.d.mts.map +1 -0
  127. package/resources/training-data.d.ts +2 -0
  128. package/resources/training-data.d.ts.map +1 -0
  129. package/resources/training-data.js +6 -0
  130. package/resources/training-data.js.map +1 -0
  131. package/resources/training-data.mjs +3 -0
  132. package/resources/training-data.mjs.map +1 -0
  133. package/src/client.ts +22 -0
  134. package/src/resources/audit-logs.ts +12 -0
  135. package/src/resources/changelogs/changelogs.ts +2003 -51
  136. package/src/resources/changelogs/index.ts +1 -0
  137. package/src/resources/conversation-attributes.ts +6 -0
  138. package/src/resources/feedback/comments.ts +4 -2
  139. package/src/resources/feedback/custom-fields.ts +15 -0
  140. package/src/resources/feedback/posts/index.ts +7 -0
  141. package/src/resources/feedback/posts/insights.ts +340 -0
  142. package/src/resources/feedback/posts/posts.ts +764 -20
  143. package/src/resources/index.ts +8 -0
  144. package/src/resources/reports.ts +160 -19
  145. package/src/resources/support/conversations/conversations.ts +27 -1
  146. package/src/resources/support/tickets/tickets.ts +9 -5
  147. package/src/resources/training-data/files.ts +431 -0
  148. package/src/resources/training-data/index.ts +31 -0
  149. package/src/resources/training-data/qna.ts +514 -0
  150. package/src/resources/training-data/training-data.ts +603 -0
  151. package/src/resources/training-data.ts +3 -0
  152. package/src/version.ts +1 -1
  153. package/version.d.mts +1 -1
  154. package/version.d.ts +1 -1
  155. package/version.js +1 -1
  156. package/version.mjs +1 -1
@@ -0,0 +1,431 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import { APIPromise } from '../../core/api-promise';
5
+ import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
6
+ import { buildHeaders } from '../../internal/headers';
7
+ import { RequestOptions } from '../../internal/request-options';
8
+ import { path } from '../../internal/utils/path';
9
+
10
+ /**
11
+ * Training data teaches the AI agent about your product beyond your public Help Center: training files (documents, policies, internal notes) and Q&A entries (question variants with the exact answer to give). Use these endpoints to keep that knowledge in sync from your own systems — for example, pushing resolved support conversations, internal runbooks, or SOP documents automatically.
12
+ */
13
+ export class Files extends APIResource {
14
+ /**
15
+ * Adds a document the AI agent can learn from. Provide exactly one source:
16
+ *
17
+ * - **Inline text** — `{ "name": "refund-policy.md", "content": "..." }`. Markdown
18
+ * or plain text is stored as-is and indexing is attempted before the response
19
+ * returns; check `indexStatus` (`status` is `completed`). Best for content you
20
+ * generate yourself, such as an SOP compiled from resolved conversations.
21
+ * - **Remote file** — `{ "url": "https://..." }` (optional `name`). The file (PDF,
22
+ * DOCX, PPTX, XLSX, TXT, HTML, …; max 50 MB) is downloaded and converted to text
23
+ * in the background. The response returns immediately with
24
+ * `status: "processing"`; poll the file until it is `completed` or `failed`.
25
+ * - **Multipart upload** — send `multipart/form-data` with the document in a
26
+ * `file` part and, optionally, a JSON `data` field such as `{"name": "..."}`.
27
+ * Converted in the background like a remote file.
28
+ *
29
+ * **Keeping files in sync (create-or-update).** Pass your own `externalId` (unique
30
+ * per workspace) and the same request becomes idempotent: a new ID creates the
31
+ * file (`201`), a known ID with different content updates that file in place and
32
+ * re-indexes it (`200`), and a known ID with identical content is a no-op (`200`,
33
+ * no embedding work). Add a `source` label to group everything one pipeline owns,
34
+ * then list by `source` to find entries to remove. Every response carries
35
+ * `contentHash` so you can diff a whole library from the list endpoint.
36
+ *
37
+ * Without `externalId`, uploading a file whose name and bytes match an existing
38
+ * file returns the existing file with status `200` instead of creating a
39
+ * duplicate. Multipart uploads over 50 MB are rejected with `413`.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * const trainingFile =
44
+ * await client.trainingData.files.create();
45
+ * ```
46
+ */
47
+ create(
48
+ params: FileCreateParams | null | undefined = {},
49
+ options?: RequestOptions,
50
+ ): APIPromise<TrainingFile> {
51
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params ?? {};
52
+ return this._client.post('/v2/training_data/files', {
53
+ body,
54
+ ...options,
55
+ headers: buildHeaders([
56
+ {
57
+ ...(featurebaseVersion?.toString() != null ?
58
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
59
+ : undefined),
60
+ },
61
+ options?.headers,
62
+ ]),
63
+ });
64
+ }
65
+
66
+ /**
67
+ * Returns a training file including its extracted text (`content`). Poll this
68
+ * endpoint after an upload until `status` is `completed`.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * const trainingFile =
73
+ * await client.trainingData.files.retrieve(
74
+ * '67ec1234abcd5678ef901234',
75
+ * );
76
+ * ```
77
+ */
78
+ retrieve(
79
+ id: string,
80
+ params: FileRetrieveParams | null | undefined = {},
81
+ options?: RequestOptions,
82
+ ): APIPromise<TrainingFile> {
83
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
84
+ return this._client.get(path`/v2/training_data/files/${id}`, {
85
+ ...options,
86
+ headers: buildHeaders([
87
+ {
88
+ ...(featurebaseVersion?.toString() != null ?
89
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
90
+ : undefined),
91
+ },
92
+ options?.headers,
93
+ ]),
94
+ });
95
+ }
96
+
97
+ /**
98
+ * Renames a training file, replaces content, or sets externalId / source. Indexing
99
+ * is attempted before returning when content is available. Check status and
100
+ * indexStatus; HTTP success alone does not establish search readiness. Serialize
101
+ * updates to a source identity in your pipeline.
102
+ *
103
+ * @example
104
+ * ```ts
105
+ * const trainingFile = await client.trainingData.files.update(
106
+ * '67ec1234abcd5678ef901234',
107
+ * );
108
+ * ```
109
+ */
110
+ update(id: string, params: FileUpdateParams, options?: RequestOptions): APIPromise<TrainingFile> {
111
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
112
+ return this._client.patch(path`/v2/training_data/files/${id}`, {
113
+ body,
114
+ ...options,
115
+ headers: buildHeaders([
116
+ {
117
+ ...(featurebaseVersion?.toString() != null ?
118
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
119
+ : undefined),
120
+ },
121
+ options?.headers,
122
+ ]),
123
+ });
124
+ }
125
+
126
+ /**
127
+ * Returns uploaded training files, newest first, with cursor pagination. Filter by
128
+ * `externalId` (exact) or `source`. The extracted text is omitted from list
129
+ * responses — compare `contentHash` to detect changes, and retrieve a single file
130
+ * to read it.
131
+ *
132
+ * @example
133
+ * ```ts
134
+ * // Automatically fetches more pages as needed.
135
+ * for await (const trainingFile of client.trainingData.files.list()) {
136
+ * // ...
137
+ * }
138
+ * ```
139
+ */
140
+ list(
141
+ params: FileListParams | null | undefined = {},
142
+ options?: RequestOptions,
143
+ ): PagePromise<TrainingFilesCursorPage, TrainingFile> {
144
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
145
+ return this._client.getAPIList('/v2/training_data/files', CursorPage<TrainingFile>, {
146
+ query,
147
+ ...options,
148
+ headers: buildHeaders([
149
+ {
150
+ ...(featurebaseVersion?.toString() != null ?
151
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
152
+ : undefined),
153
+ },
154
+ options?.headers,
155
+ ]),
156
+ });
157
+ }
158
+
159
+ /**
160
+ * Removes a training file from the workspace and attempts search-index cleanup.
161
+ * In-flight answers may already contain earlier knowledge.
162
+ *
163
+ * @example
164
+ * ```ts
165
+ * const file = await client.trainingData.files.delete(
166
+ * '67ec1234abcd5678ef901234',
167
+ * );
168
+ * ```
169
+ */
170
+ delete(
171
+ id: string,
172
+ params: FileDeleteParams | null | undefined = {},
173
+ options?: RequestOptions,
174
+ ): APIPromise<FileDeleteResponse> {
175
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
176
+ return this._client.delete(path`/v2/training_data/files/${id}`, {
177
+ ...options,
178
+ headers: buildHeaders([
179
+ {
180
+ ...(featurebaseVersion?.toString() != null ?
181
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
182
+ : undefined),
183
+ },
184
+ options?.headers,
185
+ ]),
186
+ });
187
+ }
188
+ }
189
+
190
+ export type TrainingFilesCursorPage = CursorPage<TrainingFile>;
191
+
192
+ export interface TrainingFile {
193
+ /**
194
+ * Training file ID
195
+ */
196
+ id: string;
197
+
198
+ /**
199
+ * Characters of extracted text
200
+ */
201
+ characterCount: number | null;
202
+
203
+ /**
204
+ * SHA-256 (hex) of the stored source: for inline text and content edits the
205
+ * trimmed text, for uploads and URLs the original bytes. Compare it with your own
206
+ * hash to detect changes without downloading `content`.
207
+ */
208
+ contentHash: string | null;
209
+
210
+ /**
211
+ * First 200 characters of the extracted text
212
+ */
213
+ contentPreview: string | null;
214
+
215
+ /**
216
+ * ISO timestamp of the upload
217
+ */
218
+ createdAt: string;
219
+
220
+ /**
221
+ * Your own identifier for this file, if one was set
222
+ */
223
+ externalId: string | null;
224
+
225
+ /**
226
+ * Size of the originally uploaded source in bytes (unchanged by content edits)
227
+ */
228
+ fileSize: number | null;
229
+
230
+ /**
231
+ * Whether the content is searchable by the AI agent. `pending` while indexing,
232
+ * `indexed` when the AI agent can use it, `failed` if indexing failed (the content
233
+ * is stored and indexing is retried hourly).
234
+ */
235
+ indexStatus: 'pending' | 'indexed' | 'failed';
236
+
237
+ /**
238
+ * MIME type of the originally uploaded source
239
+ */
240
+ mimeType: string | null;
241
+
242
+ /**
243
+ * File name shown in the dashboard
244
+ */
245
+ name: string;
246
+
247
+ /**
248
+ * Object type identifier
249
+ */
250
+ object: 'training_file';
251
+
252
+ /**
253
+ * Conversion error message when `status` is `failed`
254
+ */
255
+ processingError: string | null;
256
+
257
+ /**
258
+ * Pipeline label, if one was set
259
+ */
260
+ source: string | null;
261
+
262
+ /**
263
+ * `processing` while the file is being converted to text, `completed` once the
264
+ * content is stored, `failed` if conversion failed (see `processingError`).
265
+ */
266
+ status: 'processing' | 'completed' | 'failed';
267
+
268
+ /**
269
+ * ISO timestamp of the last change
270
+ */
271
+ updatedAt: string;
272
+
273
+ /**
274
+ * Words of extracted text
275
+ */
276
+ wordCount: number | null;
277
+
278
+ /**
279
+ * Full extracted text (markdown). Returned when retrieving or updating a single
280
+ * file; omitted from list and create responses.
281
+ */
282
+ content?: string | null;
283
+
284
+ /**
285
+ * On create and update responses: `created`, `updated` (same `externalId` or same
286
+ * name and bytes, content replaced and re-indexed), or `unchanged` (identical
287
+ * content, nothing done). Absent on reads.
288
+ */
289
+ outcome?: 'created' | 'updated' | 'unchanged';
290
+ }
291
+
292
+ export interface FileDeleteResponse {
293
+ /**
294
+ * ID of the deleted training file
295
+ */
296
+ id: string;
297
+
298
+ /**
299
+ * Indicates the resource was deleted
300
+ */
301
+ deleted: true;
302
+
303
+ /**
304
+ * Object type identifier
305
+ */
306
+ object: 'training_file';
307
+ }
308
+
309
+ export interface FileCreateParams {
310
+ /**
311
+ * Body param: Text or markdown to train on. Stored as-is; indexing is attempted
312
+ * before returning. Check indexStatus. Cannot be combined with `url`.
313
+ */
314
+ content?: string;
315
+
316
+ /**
317
+ * Body param: Your own identifier for this entry (unique per workspace). When
318
+ * provided, the request creates the entry if the ID is new and otherwise updates
319
+ * the existing entry in place — an unchanged payload is a no-op. Use it to keep
320
+ * the AI agent in sync with a system of record without tracking Featurebase IDs.
321
+ */
322
+ externalId?: string;
323
+
324
+ /**
325
+ * Body param: Display name of the file. Required with `content`; optional with
326
+ * `url` (defaults to the downloaded file name) or a multipart upload (defaults to
327
+ * the uploaded file name).
328
+ */
329
+ name?: string;
330
+
331
+ /**
332
+ * Body param: Free-form label for the pipeline or system this entry came from.
333
+ * Filter lists by it to review or sweep everything from one source.
334
+ */
335
+ source?: string;
336
+
337
+ /**
338
+ * Body param: Public http(s) URL of a document to download and convert (PDF, DOCX,
339
+ * TXT, HTML, …; max 50 MB). Conversion runs in the background — poll the file
340
+ * until `status` is `completed`. Cannot be combined with `content`.
341
+ */
342
+ url?: string;
343
+
344
+ /**
345
+ * Header param: API version for this request. Defaults to your organization's
346
+ * configured API version if not specified.
347
+ */
348
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
349
+ }
350
+
351
+ export interface FileRetrieveParams {
352
+ /**
353
+ * API version for this request. Defaults to your organization's configured API
354
+ * version if not specified.
355
+ */
356
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
357
+ }
358
+
359
+ export interface FileUpdateParams {
360
+ /**
361
+ * Body param: Replacement text/markdown. Indexing is attempted before returning;
362
+ * check indexStatus.
363
+ */
364
+ content?: string;
365
+
366
+ /**
367
+ * Body param: Your own identifier for this entry (unique per workspace).
368
+ */
369
+ externalId?: string;
370
+
371
+ /**
372
+ * Body param: New display name
373
+ */
374
+ name?: string;
375
+
376
+ /**
377
+ * Body param: Free-form label for the pipeline or system this entry came from.
378
+ * Filter lists by it to review or sweep everything from one source.
379
+ */
380
+ source?: string;
381
+
382
+ /**
383
+ * Header param: API version for this request. Defaults to your organization's
384
+ * configured API version if not specified.
385
+ */
386
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
387
+ }
388
+
389
+ export interface FileListParams extends CursorPageParams {
390
+ /**
391
+ * Query param: Only return the entry with this `externalId`
392
+ */
393
+ externalId?: string;
394
+
395
+ /**
396
+ * Query param: Only return entries with this `source` label
397
+ */
398
+ source?: string;
399
+
400
+ /**
401
+ * Query param: Only return files in this processing state
402
+ */
403
+ status?: 'processing' | 'completed' | 'failed';
404
+
405
+ /**
406
+ * Header param: API version for this request. Defaults to your organization's
407
+ * configured API version if not specified.
408
+ */
409
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
410
+ }
411
+
412
+ export interface FileDeleteParams {
413
+ /**
414
+ * API version for this request. Defaults to your organization's configured API
415
+ * version if not specified.
416
+ */
417
+ 'Featurebase-Version'?: '2026-08-19.orbit' | '2026-01-01.nova' | '2025-12-12.clover';
418
+ }
419
+
420
+ export declare namespace Files {
421
+ export {
422
+ type TrainingFile as TrainingFile,
423
+ type FileDeleteResponse as FileDeleteResponse,
424
+ type TrainingFilesCursorPage as TrainingFilesCursorPage,
425
+ type FileCreateParams as FileCreateParams,
426
+ type FileRetrieveParams as FileRetrieveParams,
427
+ type FileUpdateParams as FileUpdateParams,
428
+ type FileListParams as FileListParams,
429
+ type FileDeleteParams as FileDeleteParams,
430
+ };
431
+ }
@@ -0,0 +1,31 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export {
4
+ Files,
5
+ type TrainingFile,
6
+ type FileDeleteResponse,
7
+ type FileCreateParams,
8
+ type FileRetrieveParams,
9
+ type FileUpdateParams,
10
+ type FileListParams,
11
+ type FileDeleteParams,
12
+ type TrainingFilesCursorPage,
13
+ } from './files';
14
+ export {
15
+ QnaResource,
16
+ type Qna,
17
+ type QnaDeleteResponse,
18
+ type QnaCreateParams,
19
+ type QnaRetrieveParams,
20
+ type QnaUpdateParams,
21
+ type QnaListParams,
22
+ type QnaDeleteParams,
23
+ type QnasCursorPage,
24
+ } from './qna';
25
+ export {
26
+ TrainingData,
27
+ type KnowledgeSearch,
28
+ type Oracle,
29
+ type TrainingDataOracleParams,
30
+ type TrainingDataSearchParams,
31
+ } from './training-data';