@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
@@ -0,0 +1,189 @@
1
+ import { client } from "../axiosClient.js";
2
+ /**
3
+ * List the skills a knowledge base's content was labelled with, across its
4
+ * processed documents, most named first: `{ items, total, limit }`, each item
5
+ * `{ name, nameNormalized, scope, proficiencyLevels, documentCount }`, where
6
+ * `scope` is "organization", "general" or null (labelled before skills had one).
7
+ * GET /api/v1/knowledge-base/:id/skills
8
+ * @param {String} id The knowledge base id
9
+ * @param {SkillListParams} params Optional limit
10
+ * @param {String} authToken Authentication token
11
+ * @returns {Promise<object>}
12
+ */
13
+ export const listSkills = (id, params, authToken) => {
14
+ return new Promise((resolve, reject) => {
15
+ const request = client.get(`/api/v1/knowledge-base/${id}/skills`, {
16
+ headers: { authorization: authToken },
17
+ params: params,
18
+ });
19
+ request
20
+ .then((response) => {
21
+ resolve(response.data);
22
+ })
23
+ .catch((error) => {
24
+ reject(error);
25
+ });
26
+ });
27
+ };
28
+ /**
29
+ * Set how a knowledge base's skills are named, and rename them on every
30
+ * document and chunk already labelled; every document labelled later takes
31
+ * them too. The mappings replace the ones before; an empty list gives back
32
+ * every skill as labelling named it. Owner or editor only; refused while a sync
33
+ * of one of its sources is under way (409) and for mappings that do not hold —
34
+ * a skill mapped twice, or mappings that lead a skill back to itself (400).
35
+ * PUT /api/v1/knowledge-base/:id/skill-mappings
36
+ * @param {String} id The knowledge base id
37
+ * @param {SkillMapping[]} skillMappings The mappings, `[{ from, to }]`
38
+ * @param {String} authToken Authentication token
39
+ * @returns {Promise<object>} { knowledgeBase, documents, chunks }: the knowledge
40
+ * base with the mappings as stored, and how many documents and chunks were
41
+ * rewritten
42
+ */
43
+ export const setSkillMappings = (id, skillMappings, authToken) => {
44
+ return new Promise((resolve, reject) => {
45
+ const request = client.put(`/api/v1/knowledge-base/${id}/skill-mappings`, { skillMappings }, { headers: { authorization: authToken } });
46
+ request
47
+ .then((response) => {
48
+ resolve(response.data);
49
+ })
50
+ .catch((error) => {
51
+ reject(error);
52
+ });
53
+ });
54
+ };
55
+ /**
56
+ * What the knowledge bases the caller can open hold about one skill: how many
57
+ * of their documents name it (any spelling, under the names set with Edit
58
+ * skill names), in which knowledge bases, and the microskills their passages
59
+ * cover. The skill and skill template Additional Information dialogs ask it
60
+ * before they offer StackFactor as a data source. Only what the caller may
61
+ * open counts: their role on each knowledge base and each document's source
62
+ * permissions decide. Requires VIEW_KNOWLEDGE_BASE; the name must be 1 to 200
63
+ * characters (400 otherwise).
64
+ * GET /api/v1/knowledge-base/skill-coverage
65
+ * @param {String} skill The skill's or skill template's name
66
+ * @param {String} authToken Authentication token
67
+ * @returns {Promise<SkillCoverage>}
68
+ */
69
+ export const getSkillCoverage = (skill, authToken) => {
70
+ return new Promise((resolve, reject) => {
71
+ const request = client.get(`/api/v1/knowledge-base/skill-coverage`, {
72
+ headers: { authorization: authToken },
73
+ params: { skill },
74
+ });
75
+ request
76
+ .then((response) => {
77
+ resolve(response.data);
78
+ })
79
+ .catch((error) => {
80
+ reject(error);
81
+ });
82
+ });
83
+ };
84
+ /**
85
+ * The skill names the knowledge bases the caller can open suggest while a
86
+ * skill's or skill template's name is typed: the skills their documents were
87
+ * classified with whose name has a word starting with what was typed, in any
88
+ * spelling ("gov" suggests "AI Governance"), one per skill, most documents
89
+ * first. Only what the caller may open counts, as for `getSkillCoverage`.
90
+ * Fewer than 2 characters to match answer no suggestions. Requires
91
+ * VIEW_KNOWLEDGE_BASE; `q` is at most 200 characters (400 otherwise).
92
+ * GET /api/v1/knowledge-base/skill-suggestions
93
+ * @param {String} q What was typed
94
+ * @param {SkillSuggestionParams} params Optional limit, catalog and the id of
95
+ * the skill or skill template being edited
96
+ * @param {String} authToken Authentication token
97
+ * @returns {Promise<SkillSuggestion[]>}
98
+ */
99
+ export const getSkillSuggestions = (q, params, authToken) => {
100
+ return new Promise((resolve, reject) => {
101
+ const request = client.get(`/api/v1/knowledge-base/skill-suggestions`, {
102
+ headers: { authorization: authToken },
103
+ params: { ...params, q },
104
+ });
105
+ request
106
+ .then((response) => {
107
+ resolve(response.data);
108
+ })
109
+ .catch((error) => {
110
+ reject(error);
111
+ });
112
+ });
113
+ };
114
+ /**
115
+ * One of a knowledge base's skills, opened on its page: its microskills, as
116
+ * grouped, each with how many passages teach it, most first, and where the
117
+ * knowledge base's grouping stands (`grouping`). Any spelling of the skill
118
+ * matches. Requires VIEW_KNOWLEDGE_BASE and a role on the knowledge base; the
119
+ * name must be 1 to 200 characters (400 otherwise).
120
+ * GET /api/v1/knowledge-base/:id/skills/micro-skills
121
+ * @param {String} id The knowledge base id
122
+ * @param {String} skill The skill's name
123
+ * @param {String} authToken Authentication token
124
+ * @returns {Promise<KnowledgeBaseMicroSkills>}
125
+ */
126
+ export const listMicroSkills = (id, skill, authToken) => {
127
+ return new Promise((resolve, reject) => {
128
+ const request = client.get(`/api/v1/knowledge-base/${id}/skills/micro-skills`, {
129
+ headers: { authorization: authToken },
130
+ params: { skill },
131
+ });
132
+ request
133
+ .then((response) => {
134
+ resolve(response.data);
135
+ })
136
+ .catch((error) => {
137
+ reject(error);
138
+ });
139
+ });
140
+ };
141
+ /**
142
+ * Where a knowledge base's microskill grouping stands: queued, running or
143
+ * idle, and when the last one ended. What a page polls while a grouping is
144
+ * under way, rather than `listMicroSkills`: the platform reads the knowledge
145
+ * base and nothing else. Requires VIEW_KNOWLEDGE_BASE and a role on the
146
+ * knowledge base.
147
+ * GET /api/v1/knowledge-base/:id/skills/micro-skills/grouping
148
+ * @param {String} id The knowledge base id
149
+ * @param {String} authToken Authentication token
150
+ * @returns {Promise<KnowledgeBaseMicroSkillGrouping>}
151
+ */
152
+ export const getMicroSkillGrouping = (id, authToken) => {
153
+ return new Promise((resolve, reject) => {
154
+ const request = client.get(`/api/v1/knowledge-base/${id}/skills/micro-skills/grouping`, { headers: { authorization: authToken } });
155
+ request
156
+ .then((response) => {
157
+ resolve(response.data);
158
+ })
159
+ .catch((error) => {
160
+ reject(error);
161
+ });
162
+ });
163
+ };
164
+ /**
165
+ * Group now: groups the knowledge base's skills' passage tags into their
166
+ * microskills, in the background. Owner or editor only, as setting how its
167
+ * skills are named (403 otherwise; 404 for no such knowledge base). Asked
168
+ * while a grouping runs, nothing more is asked: the answer is that it is
169
+ * running. `getMicroSkillGrouping` says when it is done (no longer queued or
170
+ * running). The skills whose grouping failed are sent again now.
171
+ * POST /api/v1/knowledge-base/:id/skills/micro-skills/group
172
+ * @param {String} id The knowledge base id
173
+ * @param {String} authToken Authentication token
174
+ * @returns {Promise<KnowledgeBaseMicroSkillGrouping>} Where the grouping
175
+ * stands: queued or running, and when the last one ended
176
+ */
177
+ export const groupMicroSkills = (id, authToken) => {
178
+ return new Promise((resolve, reject) => {
179
+ const request = client.post(`/api/v1/knowledge-base/${id}/skills/micro-skills/group`, {}, { headers: { authorization: authToken } });
180
+ request
181
+ .then((response) => {
182
+ resolve(response.data);
183
+ })
184
+ .catch((error) => {
185
+ reject(error);
186
+ });
187
+ });
188
+ };
189
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../../src/lib/knowledgeBase/skills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import type { SkillSettings } from "./skills.js";
2
+ /**
3
+ * What happens to sensitive data found in content: it is masked and the
4
+ * document indexed (`"redact_in_place"`), the document is held for review
5
+ * (`"quarantine"`), or it is refused (`"fail"`). `providerIntegrationId` names
6
+ * a DLP_PROVIDER integration; null falls back to the tenant's default.
7
+ */
8
+ export interface RedactionPolicy {
9
+ behavior: "redact_in_place" | "quarantine" | "fail";
10
+ providerIntegrationId?: string | null;
11
+ }
12
+ /**
13
+ * A connection's configuration, as `addSource` and `updateSource` send it.
14
+ *
15
+ * `skillSettings` and `redactionPolicy` are the connection's — the knowledge
16
+ * base holds neither. Omitted on add, a connection discovers and redacts in
17
+ * place; omitted on update, they are left as they are; null is refused.
18
+ * Setting `redactionPolicy` asks for MANAGE_COMPLIANCE; without it the call is
19
+ * refused (403) and nothing else in the same payload is saved either. Changing
20
+ * `skillSettings` labels that connection's documents again on the sync the
21
+ * save raises. A knowledge base read gives every connection both.
22
+ */
23
+ export interface SourceInput {
24
+ name?: string;
25
+ /** The KB_SOURCE_CONNECTOR integration to sync through. */
26
+ integrationId?: string;
27
+ type?: string | null;
28
+ url?: string;
29
+ /** The connector's own selection rules, or null for none. */
30
+ syncFilters?: object | null;
31
+ /** 1 to 365 days, or null for manual-only. Default 7. */
32
+ syncFrequencyDays?: number | null;
33
+ /** One-time handle for credentials parked at OAuth exchange. */
34
+ authenticationHandle?: string;
35
+ /** `null` clears the stored credentials; omitted leaves them alone. */
36
+ authentication?: object | null;
37
+ /** What labelling looks for in this connection's content. */
38
+ skillSettings?: SkillSettings;
39
+ /** What happens to sensitive data found in it. Needs MANAGE_COMPLIANCE. */
40
+ redactionPolicy?: RedactionPolicy;
41
+ }
42
+ /**
43
+ * List the available KB_SOURCE_CONNECTOR integrations (enabled integrations +
44
+ * capability manifests for the source-creation form).
45
+ * GET /api/v1/knowledge-base/source-connectors
46
+ * @param {String} authToken Authentication token
47
+ * @returns {Promise<object>}
48
+ */
49
+ export declare const listSourceConnectors: (authToken: string) => Promise<object>;
50
+ /**
51
+ * Add a source to a knowledge base (`integrationId` + credentials +
52
+ * `syncFrequencyDays`, default 7). Publishes a kb-source-event (changeType="add").
53
+ * POST /api/v1/knowledge-base/:id/sources
54
+ * @param {String} id The knowledge base id
55
+ * @param {SourceInput} source The source configuration
56
+ * @param {String} authToken Authentication token
57
+ * @returns {Promise<object>}
58
+ */
59
+ export declare const addSource: (id: string, source: SourceInput, authToken: string) => Promise<object>;
60
+ /**
61
+ * Update a knowledge base source. Publishes a kb-source-event per changed source.
62
+ * PUT /api/v1/knowledge-base/:id/sources/:sourceId
63
+ * @param {String} id The knowledge base id
64
+ * @param {String} sourceId The source id
65
+ * @param {SourceInput} source The updated source configuration
66
+ * @param {String} authToken Authentication token
67
+ * @returns {Promise<object>}
68
+ */
69
+ export declare const updateSource: (id: string, sourceId: string, source: SourceInput, authToken: string) => Promise<object>;
70
+ /**
71
+ * Remove a source from a knowledge base. Publishes a kb-source-event
72
+ * (changeType="delete").
73
+ * DELETE /api/v1/knowledge-base/:id/sources/:sourceId
74
+ * @param {String} id The knowledge base id
75
+ * @param {String} sourceId The source id
76
+ * @param {String} authToken Authentication token
77
+ * @returns {Promise<object>}
78
+ */
79
+ export declare const deleteSource: (id: string, sourceId: string, authToken: string) => Promise<object>;
80
+ /**
81
+ * Trigger a manual re-sync of a source. Publishes a kb-source-event
82
+ * (changeType="update", trigger="manual_sync").
83
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/sync
84
+ * @param {String} id The knowledge base id
85
+ * @param {String} sourceId The source id
86
+ * @param {String} authToken Authentication token
87
+ * @returns {Promise<object>}
88
+ */
89
+ export declare const syncSource: (id: string, sourceId: string, authToken: string) => Promise<object>;
90
+ /**
91
+ * Process every processed document of a source again — classification, labels,
92
+ * chunks and embeddings redone — on a run of the source. Quarantined and blocked
93
+ * documents are left as they are. A run starts now, or a follow-up run is owed
94
+ * while one is outstanding (trigger="reprocess").
95
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/reprocess
96
+ * @param {String} id The knowledge base id
97
+ * @param {String} sourceId The source id
98
+ * @param {String} authToken Authentication token
99
+ * @returns {Promise<object>} { ok, documents, correlationId, started }: how many
100
+ * documents were marked, the run, and whether it started now
101
+ */
102
+ export declare const reprocessSource: (id: string, sourceId: string, authToken: string) => Promise<object>;
103
+ /**
104
+ * Test a source's connector credentials (dispatches TEST_CONNECTION).
105
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/test
106
+ * @param {String} id The knowledge base id
107
+ * @param {String} sourceId The source id
108
+ * @param {String} authToken Authentication token
109
+ * @returns {Promise<object>}
110
+ */
111
+ export declare const testSource: (id: string, sourceId: string, authToken: string) => Promise<object>;
112
+ /**
113
+ * List the current user's source-side identities.
114
+ * GET /api/v1/identity/source-mappings
115
+ * @param {String} authToken Authentication token
116
+ * @returns {Promise<object>}
117
+ */
118
+ export declare const listSourceMappings: (authToken: string) => Promise<object>;
119
+ /**
120
+ * Tenant-admin override for a user's source identity mapping.
121
+ * PUT /api/v1/identity/source-mappings/:sourceType
122
+ * @param {String} sourceType The source type key
123
+ * @param {object} data The mapping override
124
+ * @param {String} authToken Authentication token
125
+ * @returns {Promise<object>}
126
+ */
127
+ export declare const updateSourceMapping: (sourceType: string, data: object, authToken: string) => Promise<object>;
128
+ /**
129
+ * Bulk-resolve source principal IDs → tenant users (internal / service-to-service).
130
+ * POST /api/v1/identity/source-mappings/resolve
131
+ * @param {object} data Body carrying the principal IDs to resolve
132
+ * @param {String} authToken Authentication token
133
+ * @returns {Promise<object>}
134
+ */
135
+ export declare const resolveSourceMappings: (data: object, authToken: string) => Promise<object>;
136
+ //# sourceMappingURL=sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../../src/lib/knowledgeBase/sources.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOjD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,iBAAiB,GAAG,YAAY,GAAG,MAAM,CAAC;IACpD,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,6DAA6D;IAC7D,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,2EAA2E;IAC3E,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAID;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAatE,CAAC;AAWF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GACpB,IAAI,MAAM,EACV,QAAQ,WAAW,EACnB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,IAAI,MAAM,EACV,UAAU,MAAM,EAChB,QAAQ,WAAW,EACnB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GACvB,IAAI,MAAM,EACV,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAchB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GACrB,IAAI,MAAM,EACV,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAC1B,IAAI,MAAM,EACV,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,GACrB,IAAI,MAAM,EACV,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAKF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAapE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,EAClB,MAAM,MAAM,EACZ,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,WAAW,MAAM,KAChB,OAAO,CAAC,MAAM,CAehB,CAAC"}
@@ -0,0 +1,221 @@
1
+ import { client } from "../axiosClient.js";
2
+ // ── Source Management ─────────────────────────────────────────────────────────
3
+ /**
4
+ * List the available KB_SOURCE_CONNECTOR integrations (enabled integrations +
5
+ * capability manifests for the source-creation form).
6
+ * GET /api/v1/knowledge-base/source-connectors
7
+ * @param {String} authToken Authentication token
8
+ * @returns {Promise<object>}
9
+ */
10
+ export const listSourceConnectors = (authToken) => {
11
+ return new Promise((resolve, reject) => {
12
+ const request = client.get(`/api/v1/knowledge-base/source-connectors`, {
13
+ headers: { authorization: authToken },
14
+ });
15
+ request
16
+ .then((response) => {
17
+ resolve(response.data);
18
+ })
19
+ .catch((error) => {
20
+ reject(error);
21
+ });
22
+ });
23
+ };
24
+ //
25
+ // Between `listSourceConnectors` and `addSource` sit three calls that act on the
26
+ // CONNECTOR itself rather than on a knowledge base — asking it what it accepts,
27
+ // how the user signs in, and how much data is behind the resulting credentials.
28
+ // Those live in the `knowledgeBaseSourceConnectors` module (they take a
29
+ // connection id, not a KB id, and are mounted under
30
+ // /api/v1/exceed/knowledgebasesourceconnectors).
31
+ //
32
+ /**
33
+ * Add a source to a knowledge base (`integrationId` + credentials +
34
+ * `syncFrequencyDays`, default 7). Publishes a kb-source-event (changeType="add").
35
+ * POST /api/v1/knowledge-base/:id/sources
36
+ * @param {String} id The knowledge base id
37
+ * @param {SourceInput} source The source configuration
38
+ * @param {String} authToken Authentication token
39
+ * @returns {Promise<object>}
40
+ */
41
+ export const addSource = (id, source, authToken) => {
42
+ return new Promise((resolve, reject) => {
43
+ const request = client.post(`/api/v1/knowledge-base/${id}/sources`, source, { headers: { authorization: authToken } });
44
+ request
45
+ .then((response) => {
46
+ resolve(response.data);
47
+ })
48
+ .catch((error) => {
49
+ reject(error);
50
+ });
51
+ });
52
+ };
53
+ /**
54
+ * Update a knowledge base source. Publishes a kb-source-event per changed source.
55
+ * PUT /api/v1/knowledge-base/:id/sources/:sourceId
56
+ * @param {String} id The knowledge base id
57
+ * @param {String} sourceId The source id
58
+ * @param {SourceInput} source The updated source configuration
59
+ * @param {String} authToken Authentication token
60
+ * @returns {Promise<object>}
61
+ */
62
+ export const updateSource = (id, sourceId, source, authToken) => {
63
+ return new Promise((resolve, reject) => {
64
+ const request = client.put(`/api/v1/knowledge-base/${id}/sources/${sourceId}`, source, { headers: { authorization: authToken } });
65
+ request
66
+ .then((response) => {
67
+ resolve(response.data);
68
+ })
69
+ .catch((error) => {
70
+ reject(error);
71
+ });
72
+ });
73
+ };
74
+ /**
75
+ * Remove a source from a knowledge base. Publishes a kb-source-event
76
+ * (changeType="delete").
77
+ * DELETE /api/v1/knowledge-base/:id/sources/:sourceId
78
+ * @param {String} id The knowledge base id
79
+ * @param {String} sourceId The source id
80
+ * @param {String} authToken Authentication token
81
+ * @returns {Promise<object>}
82
+ */
83
+ export const deleteSource = (id, sourceId, authToken) => {
84
+ return new Promise((resolve, reject) => {
85
+ const request = client.delete(`/api/v1/knowledge-base/${id}/sources/${sourceId}`, { headers: { authorization: authToken } });
86
+ request
87
+ .then((response) => {
88
+ resolve(response.data);
89
+ })
90
+ .catch((error) => {
91
+ reject(error);
92
+ });
93
+ });
94
+ };
95
+ /**
96
+ * Trigger a manual re-sync of a source. Publishes a kb-source-event
97
+ * (changeType="update", trigger="manual_sync").
98
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/sync
99
+ * @param {String} id The knowledge base id
100
+ * @param {String} sourceId The source id
101
+ * @param {String} authToken Authentication token
102
+ * @returns {Promise<object>}
103
+ */
104
+ export const syncSource = (id, sourceId, authToken) => {
105
+ return new Promise((resolve, reject) => {
106
+ const request = client.post(`/api/v1/knowledge-base/${id}/sources/${sourceId}/sync`, {}, { headers: { authorization: authToken } });
107
+ request
108
+ .then((response) => {
109
+ resolve(response.data);
110
+ })
111
+ .catch((error) => {
112
+ reject(error);
113
+ });
114
+ });
115
+ };
116
+ /**
117
+ * Process every processed document of a source again — classification, labels,
118
+ * chunks and embeddings redone — on a run of the source. Quarantined and blocked
119
+ * documents are left as they are. A run starts now, or a follow-up run is owed
120
+ * while one is outstanding (trigger="reprocess").
121
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/reprocess
122
+ * @param {String} id The knowledge base id
123
+ * @param {String} sourceId The source id
124
+ * @param {String} authToken Authentication token
125
+ * @returns {Promise<object>} { ok, documents, correlationId, started }: how many
126
+ * documents were marked, the run, and whether it started now
127
+ */
128
+ export const reprocessSource = (id, sourceId, authToken) => {
129
+ return new Promise((resolve, reject) => {
130
+ const request = client.post(`/api/v1/knowledge-base/${id}/sources/${sourceId}/reprocess`, {}, { headers: { authorization: authToken } });
131
+ request
132
+ .then((response) => {
133
+ resolve(response.data);
134
+ })
135
+ .catch((error) => {
136
+ reject(error);
137
+ });
138
+ });
139
+ };
140
+ /**
141
+ * Test a source's connector credentials (dispatches TEST_CONNECTION).
142
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/test
143
+ * @param {String} id The knowledge base id
144
+ * @param {String} sourceId The source id
145
+ * @param {String} authToken Authentication token
146
+ * @returns {Promise<object>}
147
+ */
148
+ export const testSource = (id, sourceId, authToken) => {
149
+ return new Promise((resolve, reject) => {
150
+ const request = client.post(`/api/v1/knowledge-base/${id}/sources/${sourceId}/test`, {}, { headers: { authorization: authToken } });
151
+ request
152
+ .then((response) => {
153
+ resolve(response.data);
154
+ })
155
+ .catch((error) => {
156
+ reject(error);
157
+ });
158
+ });
159
+ };
160
+ // ── Identity Mapping ──────────────────────────────────────────────────────────
161
+ // (design §14 — maps source-side principals to tenant users for KB source ACLs.)
162
+ /**
163
+ * List the current user's source-side identities.
164
+ * GET /api/v1/identity/source-mappings
165
+ * @param {String} authToken Authentication token
166
+ * @returns {Promise<object>}
167
+ */
168
+ export const listSourceMappings = (authToken) => {
169
+ return new Promise((resolve, reject) => {
170
+ const request = client.get(`/api/v1/identity/source-mappings`, {
171
+ headers: { authorization: authToken },
172
+ });
173
+ request
174
+ .then((response) => {
175
+ resolve(response.data);
176
+ })
177
+ .catch((error) => {
178
+ reject(error);
179
+ });
180
+ });
181
+ };
182
+ /**
183
+ * Tenant-admin override for a user's source identity mapping.
184
+ * PUT /api/v1/identity/source-mappings/:sourceType
185
+ * @param {String} sourceType The source type key
186
+ * @param {object} data The mapping override
187
+ * @param {String} authToken Authentication token
188
+ * @returns {Promise<object>}
189
+ */
190
+ export const updateSourceMapping = (sourceType, data, authToken) => {
191
+ return new Promise((resolve, reject) => {
192
+ const request = client.put(`/api/v1/identity/source-mappings/${sourceType}`, data, { headers: { authorization: authToken } });
193
+ request
194
+ .then((response) => {
195
+ resolve(response.data);
196
+ })
197
+ .catch((error) => {
198
+ reject(error);
199
+ });
200
+ });
201
+ };
202
+ /**
203
+ * Bulk-resolve source principal IDs → tenant users (internal / service-to-service).
204
+ * POST /api/v1/identity/source-mappings/resolve
205
+ * @param {object} data Body carrying the principal IDs to resolve
206
+ * @param {String} authToken Authentication token
207
+ * @returns {Promise<object>}
208
+ */
209
+ export const resolveSourceMappings = (data, authToken) => {
210
+ return new Promise((resolve, reject) => {
211
+ const request = client.post(`/api/v1/identity/source-mappings/resolve`, data, { headers: { authorization: authToken } });
212
+ request
213
+ .then((response) => {
214
+ resolve(response.data);
215
+ })
216
+ .catch((error) => {
217
+ reject(error);
218
+ });
219
+ });
220
+ };
221
+ //# sourceMappingURL=sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../../src/lib/knowledgeBase/sources.ts"],"names":[],"mappings":"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"}