@stackfactor/client-api 1.19.0 → 1.20.1

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 (87) hide show
  1. package/dist/cjs/lib/constants.d.ts +2 -1
  2. package/dist/cjs/lib/constants.d.ts.map +1 -1
  3. package/dist/cjs/lib/constants.js +3 -1
  4. package/dist/cjs/lib/constants.js.map +1 -1
  5. package/dist/cjs/lib/knowledgeAssessmentAttempts.d.ts +22 -0
  6. package/dist/cjs/lib/knowledgeAssessmentAttempts.d.ts.map +1 -1
  7. package/dist/cjs/lib/knowledgeAssessmentAttempts.js +44 -1
  8. package/dist/cjs/lib/knowledgeAssessmentAttempts.js.map +1 -1
  9. package/dist/cjs/lib/knowledgeBase/documents.d.ts +127 -0
  10. package/dist/cjs/lib/knowledgeBase/documents.d.ts.map +1 -0
  11. package/dist/cjs/lib/knowledgeBase/documents.js +114 -0
  12. package/dist/cjs/lib/knowledgeBase/documents.js.map +1 -0
  13. package/dist/cjs/lib/knowledgeBase/knowledgeBases.d.ts +118 -0
  14. package/dist/cjs/lib/knowledgeBase/knowledgeBases.d.ts.map +1 -0
  15. package/dist/cjs/lib/knowledgeBase/knowledgeBases.js +256 -0
  16. package/dist/cjs/lib/knowledgeBase/knowledgeBases.js.map +1 -0
  17. package/dist/cjs/lib/knowledgeBase/review.d.ts +184 -0
  18. package/dist/cjs/lib/knowledgeBase/review.d.ts.map +1 -0
  19. package/dist/cjs/lib/knowledgeBase/review.js +413 -0
  20. package/dist/cjs/lib/knowledgeBase/review.js.map +1 -0
  21. package/dist/cjs/lib/knowledgeBase/skills.d.ts +247 -0
  22. package/dist/cjs/lib/knowledgeBase/skills.d.ts.map +1 -0
  23. package/dist/cjs/lib/knowledgeBase/skills.js +199 -0
  24. package/dist/cjs/lib/knowledgeBase/skills.js.map +1 -0
  25. package/dist/cjs/lib/knowledgeBase/sources.d.ts +136 -0
  26. package/dist/cjs/lib/knowledgeBase/sources.d.ts.map +1 -0
  27. package/dist/cjs/lib/knowledgeBase/sources.js +234 -0
  28. package/dist/cjs/lib/knowledgeBase/sources.js.map +1 -0
  29. package/dist/cjs/lib/knowledgeBase.d.ts +5 -642
  30. package/dist/cjs/lib/knowledgeBase.d.ts.map +1 -1
  31. package/dist/cjs/lib/knowledgeBase.js +32 -1111
  32. package/dist/cjs/lib/knowledgeBase.js.map +1 -1
  33. package/dist/cjs/lib/knowledgeBaseAgent.d.ts +33 -1
  34. package/dist/cjs/lib/knowledgeBaseAgent.d.ts.map +1 -1
  35. package/dist/cjs/lib/knowledgeBaseAgent.js +18 -3
  36. package/dist/cjs/lib/knowledgeBaseAgent.js.map +1 -1
  37. package/dist/cjs/lib/learningContent.d.ts.map +1 -1
  38. package/dist/cjs/lib/learningContent.js +12 -2
  39. package/dist/cjs/lib/learningContent.js.map +1 -1
  40. package/dist/cjs/lib/learningContentCohorts.d.ts +80 -0
  41. package/dist/cjs/lib/learningContentCohorts.d.ts.map +1 -1
  42. package/dist/cjs/lib/learningContentCohorts.js +80 -1
  43. package/dist/cjs/lib/learningContentCohorts.js.map +1 -1
  44. package/dist/esm/lib/constants.d.ts +2 -1
  45. package/dist/esm/lib/constants.d.ts.map +1 -1
  46. package/dist/esm/lib/constants.js +3 -1
  47. package/dist/esm/lib/constants.js.map +1 -1
  48. package/dist/esm/lib/knowledgeAssessmentAttempts.d.ts +22 -0
  49. package/dist/esm/lib/knowledgeAssessmentAttempts.d.ts.map +1 -1
  50. package/dist/esm/lib/knowledgeAssessmentAttempts.js +40 -0
  51. package/dist/esm/lib/knowledgeAssessmentAttempts.js.map +1 -1
  52. package/dist/esm/lib/knowledgeBase/documents.d.ts +127 -0
  53. package/dist/esm/lib/knowledgeBase/documents.d.ts.map +1 -0
  54. package/dist/esm/lib/knowledgeBase/documents.js +107 -0
  55. package/dist/esm/lib/knowledgeBase/documents.js.map +1 -0
  56. package/dist/esm/lib/knowledgeBase/knowledgeBases.d.ts +118 -0
  57. package/dist/esm/lib/knowledgeBase/knowledgeBases.d.ts.map +1 -0
  58. package/dist/esm/lib/knowledgeBase/knowledgeBases.js +242 -0
  59. package/dist/esm/lib/knowledgeBase/knowledgeBases.js.map +1 -0
  60. package/dist/esm/lib/knowledgeBase/review.d.ts +184 -0
  61. package/dist/esm/lib/knowledgeBase/review.d.ts.map +1 -0
  62. package/dist/esm/lib/knowledgeBase/review.js +392 -0
  63. package/dist/esm/lib/knowledgeBase/review.js.map +1 -0
  64. package/dist/esm/lib/knowledgeBase/skills.d.ts +247 -0
  65. package/dist/esm/lib/knowledgeBase/skills.d.ts.map +1 -0
  66. package/dist/esm/lib/knowledgeBase/skills.js +189 -0
  67. package/dist/esm/lib/knowledgeBase/skills.js.map +1 -0
  68. package/dist/esm/lib/knowledgeBase/sources.d.ts +136 -0
  69. package/dist/esm/lib/knowledgeBase/sources.d.ts.map +1 -0
  70. package/dist/esm/lib/knowledgeBase/sources.js +221 -0
  71. package/dist/esm/lib/knowledgeBase/sources.js.map +1 -0
  72. package/dist/esm/lib/knowledgeBase.d.ts +5 -642
  73. package/dist/esm/lib/knowledgeBase.d.ts.map +1 -1
  74. package/dist/esm/lib/knowledgeBase.js +18 -1062
  75. package/dist/esm/lib/knowledgeBase.js.map +1 -1
  76. package/dist/esm/lib/knowledgeBaseAgent.d.ts +33 -1
  77. package/dist/esm/lib/knowledgeBaseAgent.d.ts.map +1 -1
  78. package/dist/esm/lib/knowledgeBaseAgent.js +16 -2
  79. package/dist/esm/lib/knowledgeBaseAgent.js.map +1 -1
  80. package/dist/esm/lib/learningContent.d.ts.map +1 -1
  81. package/dist/esm/lib/learningContent.js +12 -2
  82. package/dist/esm/lib/learningContent.js.map +1 -1
  83. package/dist/esm/lib/learningContentCohorts.d.ts +80 -0
  84. package/dist/esm/lib/learningContentCohorts.d.ts.map +1 -1
  85. package/dist/esm/lib/learningContentCohorts.js +66 -0
  86. package/dist/esm/lib/learningContentCohorts.js.map +1 -1
  87. package/package.json +1 -3
@@ -1,1065 +1,21 @@
1
- import { client } from "./axiosClient.js";
2
- // ── Knowledge Base CRUD ───────────────────────────────────────────────────────
3
- /**
4
- * List the knowledge bases the caller can see.
5
- * GET /api/v1/knowledge-base
6
- * @param {String} authToken Authentication token
7
- * @returns {Promise<object>}
8
- */
9
- export const listKnowledgeBases = (authToken) => {
10
- return new Promise((resolve, reject) => {
11
- const request = client.get(`/api/v1/knowledge-base`, {
12
- headers: { authorization: authToken },
13
- });
14
- request
15
- .then((response) => {
16
- resolve(response.data);
17
- })
18
- .catch((error) => {
19
- reject(error);
20
- });
21
- });
22
- };
23
- /**
24
- * Create a knowledge base (the creator becomes owner automatically). Requires the
25
- * global CREATE_KNOWLEDGE_BASE capability.
26
- * POST /api/v1/knowledge-base
27
- * @param {KnowledgeBaseInput} data KB metadata (at minimum `name`)
28
- * @param {String} authToken Authentication token
29
- * @returns {Promise<object>}
30
- */
31
- export const createKnowledgeBase = (data, authToken) => {
32
- return new Promise((resolve, reject) => {
33
- const request = client.post(`/api/v1/knowledge-base`, data, {
34
- headers: { authorization: authToken },
35
- });
36
- request
37
- .then((response) => {
38
- resolve(response.data);
39
- })
40
- .catch((error) => {
41
- reject(error);
42
- });
43
- });
44
- };
45
- /**
46
- * Get a single knowledge base (plus stats).
47
- * GET /api/v1/knowledge-base/:id
48
- * @param {String} id The knowledge base id
49
- * @param {String} authToken Authentication token
50
- * @returns {Promise<object>}
51
- */
52
- export const getKnowledgeBase = (id, authToken) => {
53
- return new Promise((resolve, reject) => {
54
- const request = client.get(`/api/v1/knowledge-base/${id}`, {
55
- headers: { authorization: authToken },
56
- });
57
- request
58
- .then((response) => {
59
- resolve(response.data);
60
- })
61
- .catch((error) => {
62
- reject(error);
63
- });
64
- });
65
- };
66
- /**
67
- * Update a knowledge base's metadata. Owner or editor only. Does not touch
68
- * `access[]`, `sources`, or `createdBy` — those have their own gated flows.
69
- * PUT /api/v1/knowledge-base/:id
70
- * @param {String} id The knowledge base id
71
- * @param {KnowledgeBaseInput} data The fields to update
72
- * @param {String} authToken Authentication token
73
- * @returns {Promise<object>}
74
- */
75
- export const updateKnowledgeBase = (id, data, authToken) => {
76
- return new Promise((resolve, reject) => {
77
- const request = client.put(`/api/v1/knowledge-base/${id}`, data, {
78
- headers: { authorization: authToken },
79
- });
80
- request
81
- .then((response) => {
82
- resolve(response.data);
83
- })
84
- .catch((error) => {
85
- reject(error);
86
- });
87
- });
88
- };
89
- /**
90
- * Delete a knowledge base (cascades to its chunks). Owner only.
91
- * DELETE /api/v1/knowledge-base/:id
92
- * @param {String} id The knowledge base id
93
- * @param {String} authToken Authentication token
94
- * @returns {Promise<object>}
95
- */
96
- export const deleteKnowledgeBase = (id, authToken) => {
97
- return new Promise((resolve, reject) => {
98
- const request = client.delete(`/api/v1/knowledge-base/${id}`, {
99
- headers: { authorization: authToken },
100
- });
101
- request
102
- .then((response) => {
103
- resolve(response.data);
104
- })
105
- .catch((error) => {
106
- reject(error);
107
- });
108
- });
109
- };
110
- // ── Source Management ─────────────────────────────────────────────────────────
111
- /**
112
- * List the available KB_SOURCE_CONNECTOR integrations (enabled integrations +
113
- * capability manifests for the source-creation form).
114
- * GET /api/v1/knowledge-base/source-connectors
115
- * @param {String} authToken Authentication token
116
- * @returns {Promise<object>}
117
- */
118
- export const listSourceConnectors = (authToken) => {
119
- return new Promise((resolve, reject) => {
120
- const request = client.get(`/api/v1/knowledge-base/source-connectors`, {
121
- headers: { authorization: authToken },
122
- });
123
- request
124
- .then((response) => {
125
- resolve(response.data);
126
- })
127
- .catch((error) => {
128
- reject(error);
129
- });
130
- });
131
- };
132
1
  //
133
- // Between `listSourceConnectors` and `addSource` sit three calls that act on the
134
- // CONNECTOR itself rather than on a knowledge base — asking it what it accepts,
135
- // how the user signs in, and how much data is behind the resulting credentials.
136
- // Those live in the `knowledgeBaseSourceConnectors` module (they take a
137
- // connection id, not a KB id, and are mounted under
138
- // /api/v1/exceed/knowledgebasesourceconnectors).
2
+ // Knowledge Base management operations.
139
3
  //
140
- /**
141
- * Add a source to a knowledge base (`integrationId` + credentials +
142
- * `syncFrequencyDays`, default 7). Publishes a kb-source-event (changeType="add").
143
- * POST /api/v1/knowledge-base/:id/sources
144
- * @param {String} id The knowledge base id
145
- * @param {object} source The source configuration
146
- * @param {String} authToken Authentication token
147
- * @returns {Promise<object>}
148
- */
149
- export const addSource = (id, source, authToken) => {
150
- return new Promise((resolve, reject) => {
151
- const request = client.post(`/api/v1/knowledge-base/${id}/sources`, source, { headers: { authorization: authToken } });
152
- request
153
- .then((response) => {
154
- resolve(response.data);
155
- })
156
- .catch((error) => {
157
- reject(error);
158
- });
159
- });
160
- };
161
- /**
162
- * Update a knowledge base source. Publishes a kb-source-event per changed source.
163
- * PUT /api/v1/knowledge-base/:id/sources/:sourceId
164
- * @param {String} id The knowledge base id
165
- * @param {String} sourceId The source id
166
- * @param {object} source The updated source configuration
167
- * @param {String} authToken Authentication token
168
- * @returns {Promise<object>}
169
- */
170
- export const updateSource = (id, sourceId, source, authToken) => {
171
- return new Promise((resolve, reject) => {
172
- const request = client.put(`/api/v1/knowledge-base/${id}/sources/${sourceId}`, source, { headers: { authorization: authToken } });
173
- request
174
- .then((response) => {
175
- resolve(response.data);
176
- })
177
- .catch((error) => {
178
- reject(error);
179
- });
180
- });
181
- };
182
- /**
183
- * Remove a source from a knowledge base. Publishes a kb-source-event
184
- * (changeType="delete").
185
- * DELETE /api/v1/knowledge-base/:id/sources/:sourceId
186
- * @param {String} id The knowledge base id
187
- * @param {String} sourceId The source id
188
- * @param {String} authToken Authentication token
189
- * @returns {Promise<object>}
190
- */
191
- export const deleteSource = (id, sourceId, authToken) => {
192
- return new Promise((resolve, reject) => {
193
- const request = client.delete(`/api/v1/knowledge-base/${id}/sources/${sourceId}`, { headers: { authorization: authToken } });
194
- request
195
- .then((response) => {
196
- resolve(response.data);
197
- })
198
- .catch((error) => {
199
- reject(error);
200
- });
201
- });
202
- };
203
- /**
204
- * Trigger a manual re-sync of a source. Publishes a kb-source-event
205
- * (changeType="update", trigger="manual_sync").
206
- * POST /api/v1/knowledge-base/:id/sources/:sourceId/sync
207
- * @param {String} id The knowledge base id
208
- * @param {String} sourceId The source id
209
- * @param {String} authToken Authentication token
210
- * @returns {Promise<object>}
211
- */
212
- export const syncSource = (id, sourceId, authToken) => {
213
- return new Promise((resolve, reject) => {
214
- const request = client.post(`/api/v1/knowledge-base/${id}/sources/${sourceId}/sync`, {}, { headers: { authorization: authToken } });
215
- request
216
- .then((response) => {
217
- resolve(response.data);
218
- })
219
- .catch((error) => {
220
- reject(error);
221
- });
222
- });
223
- };
224
- /**
225
- * Process every processed document of a source again — classification, labels,
226
- * chunks and embeddings redone — on a run of the source. Quarantined and blocked
227
- * documents are left as they are. A run starts now, or a follow-up run is owed
228
- * while one is outstanding (trigger="reprocess").
229
- * POST /api/v1/knowledge-base/:id/sources/:sourceId/reprocess
230
- * @param {String} id The knowledge base id
231
- * @param {String} sourceId The source id
232
- * @param {String} authToken Authentication token
233
- * @returns {Promise<object>} { ok, documents, correlationId, started }: how many
234
- * documents were marked, the run, and whether it started now
235
- */
236
- export const reprocessSource = (id, sourceId, authToken) => {
237
- return new Promise((resolve, reject) => {
238
- const request = client.post(`/api/v1/knowledge-base/${id}/sources/${sourceId}/reprocess`, {}, { headers: { authorization: authToken } });
239
- request
240
- .then((response) => {
241
- resolve(response.data);
242
- })
243
- .catch((error) => {
244
- reject(error);
245
- });
246
- });
247
- };
248
- /**
249
- * Test a source's connector credentials (dispatches TEST_CONNECTION).
250
- * POST /api/v1/knowledge-base/:id/sources/:sourceId/test
251
- * @param {String} id The knowledge base id
252
- * @param {String} sourceId The source id
253
- * @param {String} authToken Authentication token
254
- * @returns {Promise<object>}
255
- */
256
- export const testSource = (id, sourceId, authToken) => {
257
- return new Promise((resolve, reject) => {
258
- const request = client.post(`/api/v1/knowledge-base/${id}/sources/${sourceId}/test`, {}, { headers: { authorization: authToken } });
259
- request
260
- .then((response) => {
261
- resolve(response.data);
262
- })
263
- .catch((error) => {
264
- reject(error);
265
- });
266
- });
267
- };
268
- // ── Document Management ───────────────────────────────────────────────────────
269
- /**
270
- * List a knowledge base's documents (paginated, with status + lastSync). There is
271
- * no upload endpoint — documents are only ingested via configured sources.
272
- * GET /api/v1/knowledge-base/:id/documents
273
- * @param {String} id The knowledge base id
274
- * @param {DocumentListParams} params Optional pagination / status filters
275
- * @param {String} authToken Authentication token
276
- * @returns {Promise<object>}
277
- */
278
- export const listDocuments = (id, params, authToken) => {
279
- return new Promise((resolve, reject) => {
280
- const request = client.get(`/api/v1/knowledge-base/${id}/documents`, {
281
- headers: { authorization: authToken },
282
- params: params,
283
- });
284
- request
285
- .then((response) => {
286
- resolve(response.data);
287
- })
288
- .catch((error) => {
289
- reject(error);
290
- });
291
- });
292
- };
293
- /**
294
- * Get one knowledge base document and what the RAG holds for it: its chunks,
295
- * after redaction, in order (the first 1000; `truncated` says when there are
296
- * more). No chunks while the document is not processed, or is held for review
297
- * or blocked. Needs the knowledge base access search needs, and the
298
- * document's own source permissions (403); 404 when either is missing.
299
- * GET /api/v1/knowledge-base/:id/documents/:docId
300
- * @param {String} id The knowledge base id
301
- * @param {String} docId The document id
302
- * @param {String} authToken Authentication token
303
- * @returns {Promise<KnowledgeBaseDocumentContent>}
304
- */
305
- export const getDocument = (id, docId, authToken) => {
306
- return new Promise((resolve, reject) => {
307
- const request = client.get(`/api/v1/knowledge-base/${id}/documents/${docId}`, { headers: { authorization: authToken } });
308
- request
309
- .then((response) => {
310
- resolve(response.data);
311
- })
312
- .catch((error) => {
313
- reject(error);
314
- });
315
- });
316
- };
317
- /**
318
- * List the skills a knowledge base's content was labelled with, across its
319
- * processed documents, most named first: `{ items, total, limit }`, each item
320
- * `{ name, nameNormalized, scope, proficiencyLevels, documentCount }`, where
321
- * `scope` is "organization", "general" or null (labelled before skills had one).
322
- * GET /api/v1/knowledge-base/:id/skills
323
- * @param {String} id The knowledge base id
324
- * @param {SkillListParams} params Optional limit
325
- * @param {String} authToken Authentication token
326
- * @returns {Promise<object>}
327
- */
328
- export const listSkills = (id, params, authToken) => {
329
- return new Promise((resolve, reject) => {
330
- const request = client.get(`/api/v1/knowledge-base/${id}/skills`, {
331
- headers: { authorization: authToken },
332
- params: params,
333
- });
334
- request
335
- .then((response) => {
336
- resolve(response.data);
337
- })
338
- .catch((error) => {
339
- reject(error);
340
- });
341
- });
342
- };
343
- /**
344
- * Set how a knowledge base's skills are named, and rename them on every
345
- * document and chunk already labelled; every document labelled later takes
346
- * them too. The mappings replace the ones before; an empty list gives back
347
- * every skill as labelling named it. Owner or editor only; refused while a sync
348
- * of one of its sources is under way (409) and for mappings that do not hold —
349
- * a skill mapped twice, or mappings that lead a skill back to itself (400).
350
- * PUT /api/v1/knowledge-base/:id/skill-mappings
351
- * @param {String} id The knowledge base id
352
- * @param {SkillMapping[]} skillMappings The mappings, `[{ from, to }]`
353
- * @param {String} authToken Authentication token
354
- * @returns {Promise<object>} { knowledgeBase, documents, chunks }: the knowledge
355
- * base with the mappings as stored, and how many documents and chunks were
356
- * rewritten
357
- */
358
- export const setSkillMappings = (id, skillMappings, authToken) => {
359
- return new Promise((resolve, reject) => {
360
- const request = client.put(`/api/v1/knowledge-base/${id}/skill-mappings`, { skillMappings }, { headers: { authorization: authToken } });
361
- request
362
- .then((response) => {
363
- resolve(response.data);
364
- })
365
- .catch((error) => {
366
- reject(error);
367
- });
368
- });
369
- };
370
- /**
371
- * What the knowledge bases the caller can open hold about one skill: how many
372
- * of their documents name it (any spelling, under the names set with Edit
373
- * skill names), in which knowledge bases, and the microskills their passages
374
- * cover. The skill and skill template Additional Information dialogs ask it
375
- * before they offer StackFactor as a data source. Only what the caller may
376
- * open counts: their role on each knowledge base and each document's source
377
- * permissions decide. Requires VIEW_KNOWLEDGE_BASE; the name must be 1 to 200
378
- * characters (400 otherwise).
379
- * GET /api/v1/knowledge-base/skill-coverage
380
- * @param {String} skill The skill's or skill template's name
381
- * @param {String} authToken Authentication token
382
- * @returns {Promise<SkillCoverage>}
383
- */
384
- export const getSkillCoverage = (skill, authToken) => {
385
- return new Promise((resolve, reject) => {
386
- const request = client.get(`/api/v1/knowledge-base/skill-coverage`, {
387
- headers: { authorization: authToken },
388
- params: { skill },
389
- });
390
- request
391
- .then((response) => {
392
- resolve(response.data);
393
- })
394
- .catch((error) => {
395
- reject(error);
396
- });
397
- });
398
- };
399
- /**
400
- * One of a knowledge base's skills, opened on its page: its microskills, as
401
- * grouped after the last sync, each with how many passages teach it, most
402
- * first. Any spelling of the skill matches. Requires VIEW_KNOWLEDGE_BASE and a
403
- * role on the knowledge base; the name must be 1 to 200 characters (400
404
- * otherwise).
405
- * GET /api/v1/knowledge-base/:id/skills/micro-skills
406
- * @param {String} id The knowledge base id
407
- * @param {String} skill The skill's name
408
- * @param {String} authToken Authentication token
409
- * @returns {Promise<KnowledgeBaseMicroSkills>}
410
- */
411
- export const listMicroSkills = (id, skill, authToken) => {
412
- return new Promise((resolve, reject) => {
413
- const request = client.get(`/api/v1/knowledge-base/${id}/skills/micro-skills`, {
414
- headers: { authorization: authToken },
415
- params: { skill },
416
- });
417
- request
418
- .then((response) => {
419
- resolve(response.data);
420
- })
421
- .catch((error) => {
422
- reject(error);
423
- });
424
- });
425
- };
426
- /**
427
- * Delete a single document (cascades to chunks + S3 images + dependent entity
428
- * flags).
429
- * DELETE /api/v1/knowledge-base/:id/documents/:docId
430
- * @param {String} id The knowledge base id
431
- * @param {String} docId The document id
432
- * @param {String} authToken Authentication token
433
- * @returns {Promise<object>}
434
- */
435
- export const deleteDocument = (id, docId, authToken) => {
436
- return new Promise((resolve, reject) => {
437
- const request = client.delete(`/api/v1/knowledge-base/${id}/documents/${docId}`, { headers: { authorization: authToken } });
438
- request
439
- .then((response) => {
440
- resolve(response.data);
441
- })
442
- .catch((error) => {
443
- reject(error);
444
- });
445
- });
446
- };
447
- // ── KB Access Management (owner only) ─────────────────────────────────────────
448
- /**
449
- * List a knowledge base's access entries.
450
- * GET /api/v1/knowledge-base/:id/access
451
- * @param {String} id The knowledge base id
452
- * @param {String} authToken Authentication token
453
- * @returns {Promise<object>}
454
- */
455
- export const listAccess = (id, authToken) => {
456
- return new Promise((resolve, reject) => {
457
- const request = client.get(`/api/v1/knowledge-base/${id}/access`, {
458
- headers: { authorization: authToken },
459
- });
460
- request
461
- .then((response) => {
462
- resolve(response.data);
463
- })
464
- .catch((error) => {
465
- reject(error);
466
- });
467
- });
468
- };
469
- /**
470
- * Grant (upsert) an access entry. Owner only. Access is keyed by
471
- * `(subjectType, subjectId)`, so re-granting a subject that already has an entry
472
- * updates its role — there is no separate "update role" endpoint.
473
- * POST /api/v1/knowledge-base/:id/access
474
- * @param {String} id The knowledge base id
475
- * @param {AccessEntryInput} entry The `{ subjectType, subjectId, role }` grant
476
- * @param {String} authToken Authentication token
477
- * @returns {Promise<object>}
478
- */
479
- export const grantAccess = (id, entry, authToken) => {
480
- return new Promise((resolve, reject) => {
481
- const request = client.post(`/api/v1/knowledge-base/${id}/access`, entry, {
482
- headers: { authorization: authToken },
483
- });
484
- request
485
- .then((response) => {
486
- resolve(response.data);
487
- })
488
- .catch((error) => {
489
- reject(error);
490
- });
491
- });
492
- };
493
- /**
494
- * Revoke a subject's access. Owner only. Keyed by `(subjectType, subjectId)` — the
495
- * same composite key `grantAccess` upserts on. The backend refuses to remove the
496
- * last owner.
497
- * DELETE /api/v1/knowledge-base/:id/access
498
- * @param {String} id The knowledge base id
499
- * @param {String} subjectType One of `KNOWLEDGE_BASE.SUBJECT_TYPE`
500
- * @param {String} subjectId The subject whose access is revoked
501
- * @param {String} authToken Authentication token
502
- * @returns {Promise<object>}
503
- */
504
- export const revokeAccess = (id, subjectType, subjectId, authToken) => {
505
- return new Promise((resolve, reject) => {
506
- const request = client.delete(`/api/v1/knowledge-base/${id}/access`, {
507
- headers: { authorization: authToken },
508
- data: { subjectType: subjectType, subjectId: subjectId },
509
- });
510
- request
511
- .then((response) => {
512
- resolve(response.data);
513
- })
514
- .catch((error) => {
515
- reject(error);
516
- });
517
- });
518
- };
519
- // ── Compliance + Redaction Configuration ──────────────────────────────────────
520
- /**
521
- * Read a knowledge base's redaction policy.
522
- * GET /api/v1/knowledge-base/:id/redaction-policy
523
- * @param {String} id The knowledge base id
524
- * @param {String} authToken Authentication token
525
- * @returns {Promise<object>}
526
- */
527
- export const getRedactionPolicy = (id, authToken) => {
528
- return new Promise((resolve, reject) => {
529
- const request = client.get(`/api/v1/knowledge-base/${id}/redaction-policy`, { headers: { authorization: authToken } });
530
- request
531
- .then((response) => {
532
- resolve(response.data);
533
- })
534
- .catch((error) => {
535
- reject(error);
536
- });
537
- });
538
- };
539
- /**
540
- * Set a knowledge base's per-KB redaction behavior + DLP provider.
541
- * PUT /api/v1/knowledge-base/:id/redaction-policy
542
- * @param {String} id The knowledge base id
543
- * @param {object} policy The redaction policy
544
- * @param {String} authToken Authentication token
545
- * @returns {Promise<object>}
546
- */
547
- export const updateRedactionPolicy = (id, policy, authToken) => {
548
- return new Promise((resolve, reject) => {
549
- const request = client.put(`/api/v1/knowledge-base/${id}/redaction-policy`, policy, { headers: { authorization: authToken } });
550
- request
551
- .then((response) => {
552
- resolve(response.data);
553
- })
554
- .catch((error) => {
555
- reject(error);
556
- });
557
- });
558
- };
559
- /**
560
- * Read the tenant's compliance profile (admin only). Governs which RAG processors
561
- * a KB may route to (e.g. HIPAA tenants → BAA-eligible processors only).
562
- * GET /api/v1/tenants/compliance-profile
563
- * @param {String} authToken Authentication token
564
- * @returns {Promise<object>}
565
- */
566
- export const getComplianceProfile = (authToken) => {
567
- return new Promise((resolve, reject) => {
568
- const request = client.get(`/api/v1/tenants/compliance-profile`, {
569
- headers: { authorization: authToken },
570
- });
571
- request
572
- .then((response) => {
573
- resolve(response.data);
574
- })
575
- .catch((error) => {
576
- reject(error);
577
- });
578
- });
579
- };
580
- /**
581
- * Update the tenant's compliance profile (admin only; not exposed via the KB UI).
582
- * PUT /api/v1/tenants/compliance-profile
583
- * @param {object} profile The compliance profile
584
- * @param {String} authToken Authentication token
585
- * @returns {Promise<object>}
586
- */
587
- export const updateComplianceProfile = (profile, authToken) => {
588
- return new Promise((resolve, reject) => {
589
- const request = client.put(`/api/v1/tenants/compliance-profile`, profile, { headers: { authorization: authToken } });
590
- request
591
- .then((response) => {
592
- resolve(response.data);
593
- })
594
- .catch((error) => {
595
- reject(error);
596
- });
597
- });
598
- };
599
- /**
600
- * Trigger a GDPR subject-purge ("right to be forgotten"; admin only).
601
- * POST /api/v1/compliance/right-to-be-forgotten
602
- * @param {object} data The subject-purge request
603
- * @param {String} authToken Authentication token
604
- * @returns {Promise<object>}
605
- */
606
- export const rightToBeForgotten = (data, authToken) => {
607
- return new Promise((resolve, reject) => {
608
- const request = client.post(`/api/v1/compliance/right-to-be-forgotten`, data, { headers: { authorization: authToken } });
609
- request
610
- .then((response) => {
611
- resolve(response.data);
612
- })
613
- .catch((error) => {
614
- reject(error);
615
- });
616
- });
617
- };
618
- // ── Review Center — overview ──────────────────────────────────────────────────
619
- /**
620
- * Overview of all Review Center streams + counts for a knowledge base.
621
- * GET /api/v1/knowledge-base/:id/review
622
- * @param {String} id The knowledge base id
623
- * @param {String} authToken Authentication token
624
- * @returns {Promise<object>}
625
- */
626
- export const getReviewOverview = (id, authToken) => {
627
- return new Promise((resolve, reject) => {
628
- const request = client.get(`/api/v1/knowledge-base/${id}/review`, {
629
- headers: { authorization: authToken },
630
- });
631
- request
632
- .then((response) => {
633
- resolve(response.data);
634
- })
635
- .catch((error) => {
636
- reject(error);
637
- });
638
- });
639
- };
640
- // ── Review Center — Stream 1: Quarantine release ──────────────────────────────
641
- /**
642
- * List QUARANTINED documents (Review Center stream 1).
643
- * GET /api/v1/knowledge-base/:id/review/quarantine
644
- * @param {String} id The knowledge base id
645
- * @param {String} authToken Authentication token
646
- * @returns {Promise<object>}
647
- */
648
- export const listQuarantine = (id, authToken) => {
649
- return new Promise((resolve, reject) => {
650
- const request = client.get(`/api/v1/knowledge-base/${id}/review/quarantine`, { headers: { authorization: authToken } });
651
- request
652
- .then((response) => {
653
- resolve(response.data);
654
- })
655
- .catch((error) => {
656
- reject(error);
657
- });
658
- });
659
- };
660
- /**
661
- * List the documents released from review (Review Center stream 1): every one
662
- * released and not held again since, the newest release first, each with
663
- * `quarantineReleasedAt` and `quarantineReleasedByName` (who released it, or
664
- * null). Requires RELEASE_QUARANTINE + owner|editor, as the held list does.
665
- * GET /api/v1/knowledge-base/:id/review/quarantine?state=released
666
- * @param {String} id The knowledge base id
667
- * @param {String} authToken Authentication token
668
- * @returns {Promise<object>}
669
- */
670
- export const listReleased = (id, authToken) => {
671
- return new Promise((resolve, reject) => {
672
- const request = client.get(`/api/v1/knowledge-base/${id}/review/quarantine`, { headers: { authorization: authToken }, params: { state: "released" } });
673
- request
674
- .then((response) => {
675
- resolve(response.data);
676
- })
677
- .catch((error) => {
678
- reject(error);
679
- });
680
- });
681
- };
682
- /**
683
- * Release a quarantined document. Requires RELEASE_QUARANTINE + owner|editor.
684
- * POST /api/v1/knowledge-base/:id/review/quarantine/:docId/release
685
- * @param {String} id The knowledge base id
686
- * @param {String} docId The document id
687
- * @param {String} authToken Authentication token
688
- * @returns {Promise<object>}
689
- */
690
- export const releaseQuarantine = (id, docId, authToken) => {
691
- return new Promise((resolve, reject) => {
692
- const request = client.post(`/api/v1/knowledge-base/${id}/review/quarantine/${docId}/release`, {}, { headers: { authorization: authToken } });
693
- request
694
- .then((response) => {
695
- resolve(response.data);
696
- })
697
- .catch((error) => {
698
- reject(error);
699
- });
700
- });
701
- };
702
- /**
703
- * Apply a reviewer's decisions to many held documents at once: release each
704
- * named document back through ingestion, keep it in quarantine as reviewed, or
705
- * block it from the knowledge base. One run per source released into is asked
706
- * for, never one per document. Requires RELEASE_QUARANTINE + owner|editor.
707
- * POST /api/v1/knowledge-base/:id/review/quarantine/decisions
708
- * @param {String} id The knowledge base id
709
- * @param {Array<{documentId: string, decision: "release"|"quarantine"|"block", reason?: string}>} decisions One decision per document, at most 500
710
- * @param {String} authToken Authentication token
711
- * @returns {Promise<object>} `{ results: [{ documentId, decision, outcome }], runs: [{ sourceId, correlationId, started }] }`
712
- */
713
- export const decideQuarantine = (id, decisions, authToken) => {
714
- return new Promise((resolve, reject) => {
715
- const request = client.post(`/api/v1/knowledge-base/${id}/review/quarantine/decisions`, { decisions }, { headers: { authorization: authToken } });
716
- request
717
- .then((response) => {
718
- resolve(response.data);
719
- })
720
- .catch((error) => {
721
- reject(error);
722
- });
723
- });
724
- };
725
- /**
726
- * Re-ingest a quarantined document (optionally with an updated redaction policy).
727
- * Publishes a kb-source-event (trigger="quarantine_re_ingest"). Requires
728
- * RELEASE_QUARANTINE + owner.
729
- * POST /api/v1/knowledge-base/:id/review/quarantine/:docId/re-ingest
730
- * @param {String} id The knowledge base id
731
- * @param {String} docId The document id
732
- * @param {object} data Optional body, e.g. `{ updatedRedactionPolicy }`
733
- * @param {String} authToken Authentication token
734
- * @returns {Promise<object>}
735
- */
736
- export const reingestQuarantine = (id, docId, data, authToken) => {
737
- return new Promise((resolve, reject) => {
738
- const request = client.post(`/api/v1/knowledge-base/${id}/review/quarantine/${docId}/re-ingest`, data, { headers: { authorization: authToken } });
739
- request
740
- .then((response) => {
741
- resolve(response.data);
742
- })
743
- .catch((error) => {
744
- reject(error);
745
- });
746
- });
747
- };
748
- /**
749
- * Delete a quarantined document. Requires RELEASE_QUARANTINE + owner.
750
- * POST /api/v1/knowledge-base/:id/review/quarantine/:docId/delete
751
- * @param {String} id The knowledge base id
752
- * @param {String} docId The document id
753
- * @param {String} authToken Authentication token
754
- * @returns {Promise<object>}
755
- */
756
- export const deleteQuarantine = (id, docId, authToken) => {
757
- return new Promise((resolve, reject) => {
758
- const request = client.post(`/api/v1/knowledge-base/${id}/review/quarantine/${docId}/delete`, {}, { headers: { authorization: authToken } });
759
- request
760
- .then((response) => {
761
- resolve(response.data);
762
- })
763
- .catch((error) => {
764
- reject(error);
765
- });
766
- });
767
- };
768
- // ── Review Center — Stream 2: Generated content review ────────────────────────
769
- /**
770
- * List generated artifacts awaiting review (needsReview=true).
771
- * Requires GENERATE_FROM_KB + owner|editor.
772
- * GET /api/v1/knowledge-base/:id/review/generated
773
- * @param {String} id The knowledge base id
774
- * @param {String} authToken Authentication token
775
- * @returns {Promise<object>}
776
- */
777
- export const listGeneratedReview = (id, authToken) => {
778
- return new Promise((resolve, reject) => {
779
- const request = client.get(`/api/v1/knowledge-base/${id}/review/generated`, { headers: { authorization: authToken } });
780
- request
781
- .then((response) => {
782
- resolve(response.data);
783
- })
784
- .catch((error) => {
785
- reject(error);
786
- });
787
- });
788
- };
789
- /**
790
- * Approve a generated artifact. Requires GENERATE_FROM_KB + owner|editor.
791
- * POST /api/v1/knowledge-base/:id/review/generated/:entityId/approve
792
- * @param {String} id The knowledge base id
793
- * @param {String} entityId The artifact/entity id
794
- * @param {object} data Body `{ entityType, notes? }`
795
- * @param {String} authToken Authentication token
796
- * @returns {Promise<object>}
797
- */
798
- export const approveGenerated = (id, entityId, data, authToken) => {
799
- return new Promise((resolve, reject) => {
800
- const request = client.post(`/api/v1/knowledge-base/${id}/review/generated/${entityId}/approve`, data, { headers: { authorization: authToken } });
801
- request
802
- .then((response) => {
803
- resolve(response.data);
804
- })
805
- .catch((error) => {
806
- reject(error);
807
- });
808
- });
809
- };
810
- /**
811
- * Approve a generated artifact with edits.
812
- * Requires GENERATE_FROM_KB + owner|editor.
813
- * POST /api/v1/knowledge-base/:id/review/generated/:entityId/edit-approve
814
- * @param {String} id The knowledge base id
815
- * @param {String} entityId The artifact/entity id
816
- * @param {object} data Body `{ entityType, edits, notes? }`
817
- * @param {String} authToken Authentication token
818
- * @returns {Promise<object>}
819
- */
820
- export const editApproveGenerated = (id, entityId, data, authToken) => {
821
- return new Promise((resolve, reject) => {
822
- const request = client.post(`/api/v1/knowledge-base/${id}/review/generated/${entityId}/edit-approve`, data, { headers: { authorization: authToken } });
823
- request
824
- .then((response) => {
825
- resolve(response.data);
826
- })
827
- .catch((error) => {
828
- reject(error);
829
- });
830
- });
831
- };
832
- /**
833
- * Reject a generated artifact. Requires GENERATE_FROM_KB + owner|editor.
834
- * POST /api/v1/knowledge-base/:id/review/generated/:entityId/reject
835
- * @param {String} id The knowledge base id
836
- * @param {String} entityId The artifact/entity id
837
- * @param {object} data Body `{ entityType, reason }`
838
- * @param {String} authToken Authentication token
839
- * @returns {Promise<object>}
840
- */
841
- export const rejectGenerated = (id, entityId, data, authToken) => {
842
- return new Promise((resolve, reject) => {
843
- const request = client.post(`/api/v1/knowledge-base/${id}/review/generated/${entityId}/reject`, data, { headers: { authorization: authToken } });
844
- request
845
- .then((response) => {
846
- resolve(response.data);
847
- })
848
- .catch((error) => {
849
- reject(error);
850
- });
851
- });
852
- };
853
- /**
854
- * Regenerate a generated artifact using current chunks.
855
- * Requires GENERATE_FROM_KB + owner|editor.
856
- * POST /api/v1/knowledge-base/:id/review/generated/:entityId/regenerate
857
- * @param {String} id The knowledge base id
858
- * @param {String} entityId The artifact/entity id
859
- * @param {object} data Body `{ entityType, regenerationHints? }`
860
- * @param {String} authToken Authentication token
861
- * @returns {Promise<object>}
862
- */
863
- export const regenerateGenerated = (id, entityId, data, authToken) => {
864
- return new Promise((resolve, reject) => {
865
- const request = client.post(`/api/v1/knowledge-base/${id}/review/generated/${entityId}/regenerate`, data, { headers: { authorization: authToken } });
866
- request
867
- .then((response) => {
868
- resolve(response.data);
869
- })
870
- .catch((error) => {
871
- reject(error);
872
- });
873
- });
874
- };
875
- // ── Review Center — Stream 3: Contradiction flags ─────────────────────────────
876
- /**
877
- * List chunks with non-empty contradictionFlags[].
878
- * Requires GENERATE_FROM_KB + owner|editor.
879
- * GET /api/v1/knowledge-base/:id/review/contradictions
880
- * @param {String} id The knowledge base id
881
- * @param {String} authToken Authentication token
882
- * @returns {Promise<object>}
883
- */
884
- export const listContradictions = (id, authToken) => {
885
- return new Promise((resolve, reject) => {
886
- const request = client.get(`/api/v1/knowledge-base/${id}/review/contradictions`, { headers: { authorization: authToken } });
887
- request
888
- .then((response) => {
889
- resolve(response.data);
890
- })
891
- .catch((error) => {
892
- reject(error);
893
- });
894
- });
895
- };
896
- /**
897
- * Decide a contradiction between two chunks.
898
- * Requires GENERATE_FROM_KB + owner|editor.
899
- * POST /api/v1/knowledge-base/:id/review/contradictions/:chunkId/decide
900
- * @param {String} id The knowledge base id
901
- * @param {String} chunkId The chunk id carrying the contradiction flag
902
- * @param {object} data Body `{ decision, otherChunkId, notes }` — `decision` is one
903
- * of `KNOWLEDGE_BASE.CONTRADICTION_DECISION`
904
- * @param {String} authToken Authentication token
905
- * @returns {Promise<object>}
906
- */
907
- export const decideContradiction = (id, chunkId, data, authToken) => {
908
- return new Promise((resolve, reject) => {
909
- const request = client.post(`/api/v1/knowledge-base/${id}/review/contradictions/${chunkId}/decide`, data, { headers: { authorization: authToken } });
910
- request
911
- .then((response) => {
912
- resolve(response.data);
913
- })
914
- .catch((error) => {
915
- reject(error);
916
- });
917
- });
918
- };
919
- // ── Out-of-Sync Notification Actions ──────────────────────────────────────────
920
- // (design §14 / §14A — surfaced as notifications, acted on per-artifact.
921
- // Requires GENERATE_FROM_KB + owner|editor on the KB.)
922
- /**
923
- * Regenerate a stale artifact from a notification using current chunks.
924
- * POST /api/v1/notifications/:notificationId/artifacts/:artifactId/regenerate
925
- * @param {String} notificationId The notification id
926
- * @param {String} artifactId The artifact id
927
- * @param {object} data Body `{ entityType }`
928
- * @param {String} authToken Authentication token
929
- * @returns {Promise<object>}
930
- */
931
- export const regenerateArtifact = (notificationId, artifactId, data, authToken) => {
932
- return new Promise((resolve, reject) => {
933
- const request = client.post(`/api/v1/notifications/${notificationId}/artifacts/${artifactId}/regenerate`, data, { headers: { authorization: authToken } });
934
- request
935
- .then((response) => {
936
- resolve(response.data);
937
- })
938
- .catch((error) => {
939
- reject(error);
940
- });
941
- });
942
- };
943
- /**
944
- * Retire (soft-delete) a stale artifact from a notification.
945
- * POST /api/v1/notifications/:notificationId/artifacts/:artifactId/retire
946
- * @param {String} notificationId The notification id
947
- * @param {String} artifactId The artifact id
948
- * @param {object} data Body `{ entityType }`
949
- * @param {String} authToken Authentication token
950
- * @returns {Promise<object>}
951
- */
952
- export const retireArtifact = (notificationId, artifactId, data, authToken) => {
953
- return new Promise((resolve, reject) => {
954
- const request = client.post(`/api/v1/notifications/${notificationId}/artifacts/${artifactId}/retire`, data, { headers: { authorization: authToken } });
955
- request
956
- .then((response) => {
957
- resolve(response.data);
958
- })
959
- .catch((error) => {
960
- reject(error);
961
- });
962
- });
963
- };
964
- /**
965
- * Dismiss a stale-artifact flag (mark the staleness acceptable).
966
- * POST /api/v1/notifications/:notificationId/artifacts/:artifactId/dismiss
967
- * @param {String} notificationId The notification id
968
- * @param {String} artifactId The artifact id
969
- * @param {object} data Body `{ entityType, reason? }`
970
- * @param {String} authToken Authentication token
971
- * @returns {Promise<object>}
972
- */
973
- export const dismissArtifact = (notificationId, artifactId, data, authToken) => {
974
- return new Promise((resolve, reject) => {
975
- const request = client.post(`/api/v1/notifications/${notificationId}/artifacts/${artifactId}/dismiss`, data, { headers: { authorization: authToken } });
976
- request
977
- .then((response) => {
978
- resolve(response.data);
979
- })
980
- .catch((error) => {
981
- reject(error);
982
- });
983
- });
984
- };
985
- /**
986
- * Dismiss an entire out-of-sync notification (all artifacts).
987
- * POST /api/v1/notifications/:notificationId/dismiss-all
988
- * @param {String} notificationId The notification id
989
- * @param {String} authToken Authentication token
990
- * @returns {Promise<object>}
991
- */
992
- export const dismissAllArtifacts = (notificationId, authToken) => {
993
- return new Promise((resolve, reject) => {
994
- const request = client.post(`/api/v1/notifications/${notificationId}/dismiss-all`, {}, { headers: { authorization: authToken } });
995
- request
996
- .then((response) => {
997
- resolve(response.data);
998
- })
999
- .catch((error) => {
1000
- reject(error);
1001
- });
1002
- });
1003
- };
1004
- // ── Identity Mapping ──────────────────────────────────────────────────────────
1005
- // (design §14 — maps source-side principals to tenant users for KB source ACLs.)
1006
- /**
1007
- * List the current user's source-side identities.
1008
- * GET /api/v1/identity/source-mappings
1009
- * @param {String} authToken Authentication token
1010
- * @returns {Promise<object>}
1011
- */
1012
- export const listSourceMappings = (authToken) => {
1013
- return new Promise((resolve, reject) => {
1014
- const request = client.get(`/api/v1/identity/source-mappings`, {
1015
- headers: { authorization: authToken },
1016
- });
1017
- request
1018
- .then((response) => {
1019
- resolve(response.data);
1020
- })
1021
- .catch((error) => {
1022
- reject(error);
1023
- });
1024
- });
1025
- };
1026
- /**
1027
- * Tenant-admin override for a user's source identity mapping.
1028
- * PUT /api/v1/identity/source-mappings/:sourceType
1029
- * @param {String} sourceType The source type key
1030
- * @param {object} data The mapping override
1031
- * @param {String} authToken Authentication token
1032
- * @returns {Promise<object>}
1033
- */
1034
- export const updateSourceMapping = (sourceType, data, authToken) => {
1035
- return new Promise((resolve, reject) => {
1036
- const request = client.put(`/api/v1/identity/source-mappings/${sourceType}`, data, { headers: { authorization: authToken } });
1037
- request
1038
- .then((response) => {
1039
- resolve(response.data);
1040
- })
1041
- .catch((error) => {
1042
- reject(error);
1043
- });
1044
- });
1045
- };
1046
- /**
1047
- * Bulk-resolve source principal IDs → tenant users (internal / service-to-service).
1048
- * POST /api/v1/identity/source-mappings/resolve
1049
- * @param {object} data Body carrying the principal IDs to resolve
1050
- * @param {String} authToken Authentication token
1051
- * @returns {Promise<object>}
1052
- */
1053
- export const resolveSourceMappings = (data, authToken) => {
1054
- return new Promise((resolve, reject) => {
1055
- const request = client.post(`/api/v1/identity/source-mappings/resolve`, data, { headers: { authorization: authToken } });
1056
- request
1057
- .then((response) => {
1058
- resolve(response.data);
1059
- })
1060
- .catch((error) => {
1061
- reject(error);
1062
- });
1063
- });
1064
- };
4
+ // Thin client wrappers over the user-facing KB *management* endpoints
5
+ // (design §14 — "KB management endpoints ... remain user-facing; they configure
6
+ // the KB, they don't perform RAG"). RAG retrieval / Q&A / generation are
7
+ // internal-only and intentionally NOT exposed here.
8
+ //
9
+ // Sections mirror design §14: CRUD · Sources · Documents · Access · Compliance &
10
+ // Redaction · Review Center (3 streams) · Out-of-Sync Notification Actions ·
11
+ // Identity Mapping.
12
+ //
13
+ // The operations live in `./knowledgeBase/`, one module per area; this file
14
+ // re-exports all of them so every import path and name stays as it was.
15
+ //
16
+ export * from "./knowledgeBase/knowledgeBases.js";
17
+ export * from "./knowledgeBase/sources.js";
18
+ export * from "./knowledgeBase/documents.js";
19
+ export * from "./knowledgeBase/skills.js";
20
+ export * from "./knowledgeBase/review.js";
1065
21
  //# sourceMappingURL=knowledgeBase.js.map