@stackfactor/client-api 1.19.3 → 1.20.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.
- package/dist/cjs/lib/constants.d.ts +2 -1
- package/dist/cjs/lib/constants.d.ts.map +1 -1
- package/dist/cjs/lib/constants.js +3 -1
- package/dist/cjs/lib/constants.js.map +1 -1
- package/dist/cjs/lib/knowledgeAssessmentAttempts.d.ts +22 -0
- package/dist/cjs/lib/knowledgeAssessmentAttempts.d.ts.map +1 -1
- package/dist/cjs/lib/knowledgeAssessmentAttempts.js +44 -1
- package/dist/cjs/lib/knowledgeAssessmentAttempts.js.map +1 -1
- package/dist/cjs/lib/knowledgeBase/documents.d.ts +127 -0
- package/dist/cjs/lib/knowledgeBase/documents.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/documents.js +114 -0
- package/dist/cjs/lib/knowledgeBase/documents.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase/knowledgeBases.d.ts +118 -0
- package/dist/cjs/lib/knowledgeBase/knowledgeBases.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/knowledgeBases.js +256 -0
- package/dist/cjs/lib/knowledgeBase/knowledgeBases.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase/review.d.ts +184 -0
- package/dist/cjs/lib/knowledgeBase/review.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/review.js +413 -0
- package/dist/cjs/lib/knowledgeBase/review.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase/skills.d.ts +247 -0
- package/dist/cjs/lib/knowledgeBase/skills.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/skills.js +199 -0
- package/dist/cjs/lib/knowledgeBase/skills.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase/sources.d.ts +136 -0
- package/dist/cjs/lib/knowledgeBase/sources.d.ts.map +1 -0
- package/dist/cjs/lib/knowledgeBase/sources.js +234 -0
- package/dist/cjs/lib/knowledgeBase/sources.js.map +1 -0
- package/dist/cjs/lib/knowledgeBase.d.ts +5 -785
- package/dist/cjs/lib/knowledgeBase.d.ts.map +1 -1
- package/dist/cjs/lib/knowledgeBase.js +32 -1229
- package/dist/cjs/lib/knowledgeBase.js.map +1 -1
- package/dist/cjs/lib/knowledgeBaseAgent.d.ts +109 -2
- package/dist/cjs/lib/knowledgeBaseAgent.d.ts.map +1 -1
- package/dist/cjs/lib/knowledgeBaseAgent.js +71 -8
- package/dist/cjs/lib/knowledgeBaseAgent.js.map +1 -1
- package/dist/cjs/lib/learningContent.d.ts.map +1 -1
- package/dist/cjs/lib/learningContent.js +12 -2
- package/dist/cjs/lib/learningContent.js.map +1 -1
- package/dist/cjs/lib/learningContentCohorts.d.ts +80 -0
- package/dist/cjs/lib/learningContentCohorts.d.ts.map +1 -1
- package/dist/cjs/lib/learningContentCohorts.js +80 -1
- package/dist/cjs/lib/learningContentCohorts.js.map +1 -1
- package/dist/esm/lib/constants.d.ts +2 -1
- package/dist/esm/lib/constants.d.ts.map +1 -1
- package/dist/esm/lib/constants.js +3 -1
- package/dist/esm/lib/constants.js.map +1 -1
- package/dist/esm/lib/knowledgeAssessmentAttempts.d.ts +22 -0
- package/dist/esm/lib/knowledgeAssessmentAttempts.d.ts.map +1 -1
- package/dist/esm/lib/knowledgeAssessmentAttempts.js +40 -0
- package/dist/esm/lib/knowledgeAssessmentAttempts.js.map +1 -1
- package/dist/esm/lib/knowledgeBase/documents.d.ts +127 -0
- package/dist/esm/lib/knowledgeBase/documents.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/documents.js +107 -0
- package/dist/esm/lib/knowledgeBase/documents.js.map +1 -0
- package/dist/esm/lib/knowledgeBase/knowledgeBases.d.ts +118 -0
- package/dist/esm/lib/knowledgeBase/knowledgeBases.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/knowledgeBases.js +242 -0
- package/dist/esm/lib/knowledgeBase/knowledgeBases.js.map +1 -0
- package/dist/esm/lib/knowledgeBase/review.d.ts +184 -0
- package/dist/esm/lib/knowledgeBase/review.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/review.js +392 -0
- package/dist/esm/lib/knowledgeBase/review.js.map +1 -0
- package/dist/esm/lib/knowledgeBase/skills.d.ts +247 -0
- package/dist/esm/lib/knowledgeBase/skills.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/skills.js +189 -0
- package/dist/esm/lib/knowledgeBase/skills.js.map +1 -0
- package/dist/esm/lib/knowledgeBase/sources.d.ts +136 -0
- package/dist/esm/lib/knowledgeBase/sources.d.ts.map +1 -0
- package/dist/esm/lib/knowledgeBase/sources.js +221 -0
- package/dist/esm/lib/knowledgeBase/sources.js.map +1 -0
- package/dist/esm/lib/knowledgeBase.d.ts +5 -785
- package/dist/esm/lib/knowledgeBase.d.ts.map +1 -1
- package/dist/esm/lib/knowledgeBase.js +18 -1175
- package/dist/esm/lib/knowledgeBase.js.map +1 -1
- package/dist/esm/lib/knowledgeBaseAgent.d.ts +109 -2
- package/dist/esm/lib/knowledgeBaseAgent.d.ts.map +1 -1
- package/dist/esm/lib/knowledgeBaseAgent.js +66 -7
- package/dist/esm/lib/knowledgeBaseAgent.js.map +1 -1
- package/dist/esm/lib/learningContent.d.ts.map +1 -1
- package/dist/esm/lib/learningContent.js +12 -2
- package/dist/esm/lib/learningContent.js.map +1 -1
- package/dist/esm/lib/learningContentCohorts.d.ts +80 -0
- package/dist/esm/lib/learningContentCohorts.d.ts.map +1 -1
- package/dist/esm/lib/learningContentCohorts.js +66 -0
- package/dist/esm/lib/learningContentCohorts.js.map +1 -1
- package/package.json +1 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../../src/lib/knowledgeBase/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.groupMicroSkills = exports.getMicroSkillGrouping = exports.listMicroSkills = exports.getSkillSuggestions = exports.getSkillCoverage = exports.setSkillMappings = exports.listSkills = void 0;
|
|
4
|
+
const axiosClient_js_1 = require("../axiosClient.js");
|
|
5
|
+
/**
|
|
6
|
+
* List the skills a knowledge base's content was labelled with, across its
|
|
7
|
+
* processed documents, most named first: `{ items, total, limit }`, each item
|
|
8
|
+
* `{ name, nameNormalized, scope, proficiencyLevels, documentCount }`, where
|
|
9
|
+
* `scope` is "organization", "general" or null (labelled before skills had one).
|
|
10
|
+
* GET /api/v1/knowledge-base/:id/skills
|
|
11
|
+
* @param {String} id The knowledge base id
|
|
12
|
+
* @param {SkillListParams} params Optional limit
|
|
13
|
+
* @param {String} authToken Authentication token
|
|
14
|
+
* @returns {Promise<object>}
|
|
15
|
+
*/
|
|
16
|
+
const listSkills = (id, params, authToken) => {
|
|
17
|
+
return new Promise((resolve, reject) => {
|
|
18
|
+
const request = axiosClient_js_1.client.get(`/api/v1/knowledge-base/${id}/skills`, {
|
|
19
|
+
headers: { authorization: authToken },
|
|
20
|
+
params: params,
|
|
21
|
+
});
|
|
22
|
+
request
|
|
23
|
+
.then((response) => {
|
|
24
|
+
resolve(response.data);
|
|
25
|
+
})
|
|
26
|
+
.catch((error) => {
|
|
27
|
+
reject(error);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
exports.listSkills = listSkills;
|
|
32
|
+
/**
|
|
33
|
+
* Set how a knowledge base's skills are named, and rename them on every
|
|
34
|
+
* document and chunk already labelled; every document labelled later takes
|
|
35
|
+
* them too. The mappings replace the ones before; an empty list gives back
|
|
36
|
+
* every skill as labelling named it. Owner or editor only; refused while a sync
|
|
37
|
+
* of one of its sources is under way (409) and for mappings that do not hold —
|
|
38
|
+
* a skill mapped twice, or mappings that lead a skill back to itself (400).
|
|
39
|
+
* PUT /api/v1/knowledge-base/:id/skill-mappings
|
|
40
|
+
* @param {String} id The knowledge base id
|
|
41
|
+
* @param {SkillMapping[]} skillMappings The mappings, `[{ from, to }]`
|
|
42
|
+
* @param {String} authToken Authentication token
|
|
43
|
+
* @returns {Promise<object>} { knowledgeBase, documents, chunks }: the knowledge
|
|
44
|
+
* base with the mappings as stored, and how many documents and chunks were
|
|
45
|
+
* rewritten
|
|
46
|
+
*/
|
|
47
|
+
const setSkillMappings = (id, skillMappings, authToken) => {
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
const request = axiosClient_js_1.client.put(`/api/v1/knowledge-base/${id}/skill-mappings`, { skillMappings }, { headers: { authorization: authToken } });
|
|
50
|
+
request
|
|
51
|
+
.then((response) => {
|
|
52
|
+
resolve(response.data);
|
|
53
|
+
})
|
|
54
|
+
.catch((error) => {
|
|
55
|
+
reject(error);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
exports.setSkillMappings = setSkillMappings;
|
|
60
|
+
/**
|
|
61
|
+
* What the knowledge bases the caller can open hold about one skill: how many
|
|
62
|
+
* of their documents name it (any spelling, under the names set with Edit
|
|
63
|
+
* skill names), in which knowledge bases, and the microskills their passages
|
|
64
|
+
* cover. The skill and skill template Additional Information dialogs ask it
|
|
65
|
+
* before they offer StackFactor as a data source. Only what the caller may
|
|
66
|
+
* open counts: their role on each knowledge base and each document's source
|
|
67
|
+
* permissions decide. Requires VIEW_KNOWLEDGE_BASE; the name must be 1 to 200
|
|
68
|
+
* characters (400 otherwise).
|
|
69
|
+
* GET /api/v1/knowledge-base/skill-coverage
|
|
70
|
+
* @param {String} skill The skill's or skill template's name
|
|
71
|
+
* @param {String} authToken Authentication token
|
|
72
|
+
* @returns {Promise<SkillCoverage>}
|
|
73
|
+
*/
|
|
74
|
+
const getSkillCoverage = (skill, authToken) => {
|
|
75
|
+
return new Promise((resolve, reject) => {
|
|
76
|
+
const request = axiosClient_js_1.client.get(`/api/v1/knowledge-base/skill-coverage`, {
|
|
77
|
+
headers: { authorization: authToken },
|
|
78
|
+
params: { skill },
|
|
79
|
+
});
|
|
80
|
+
request
|
|
81
|
+
.then((response) => {
|
|
82
|
+
resolve(response.data);
|
|
83
|
+
})
|
|
84
|
+
.catch((error) => {
|
|
85
|
+
reject(error);
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
exports.getSkillCoverage = getSkillCoverage;
|
|
90
|
+
/**
|
|
91
|
+
* The skill names the knowledge bases the caller can open suggest while a
|
|
92
|
+
* skill's or skill template's name is typed: the skills their documents were
|
|
93
|
+
* classified with whose name has a word starting with what was typed, in any
|
|
94
|
+
* spelling ("gov" suggests "AI Governance"), one per skill, most documents
|
|
95
|
+
* first. Only what the caller may open counts, as for `getSkillCoverage`.
|
|
96
|
+
* Fewer than 2 characters to match answer no suggestions. Requires
|
|
97
|
+
* VIEW_KNOWLEDGE_BASE; `q` is at most 200 characters (400 otherwise).
|
|
98
|
+
* GET /api/v1/knowledge-base/skill-suggestions
|
|
99
|
+
* @param {String} q What was typed
|
|
100
|
+
* @param {SkillSuggestionParams} params Optional limit, catalog and the id of
|
|
101
|
+
* the skill or skill template being edited
|
|
102
|
+
* @param {String} authToken Authentication token
|
|
103
|
+
* @returns {Promise<SkillSuggestion[]>}
|
|
104
|
+
*/
|
|
105
|
+
const getSkillSuggestions = (q, params, authToken) => {
|
|
106
|
+
return new Promise((resolve, reject) => {
|
|
107
|
+
const request = axiosClient_js_1.client.get(`/api/v1/knowledge-base/skill-suggestions`, {
|
|
108
|
+
headers: { authorization: authToken },
|
|
109
|
+
params: { ...params, q },
|
|
110
|
+
});
|
|
111
|
+
request
|
|
112
|
+
.then((response) => {
|
|
113
|
+
resolve(response.data);
|
|
114
|
+
})
|
|
115
|
+
.catch((error) => {
|
|
116
|
+
reject(error);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
exports.getSkillSuggestions = getSkillSuggestions;
|
|
121
|
+
/**
|
|
122
|
+
* One of a knowledge base's skills, opened on its page: its microskills, as
|
|
123
|
+
* grouped, each with how many passages teach it, most first, and where the
|
|
124
|
+
* knowledge base's grouping stands (`grouping`). Any spelling of the skill
|
|
125
|
+
* matches. Requires VIEW_KNOWLEDGE_BASE and a role on the knowledge base; the
|
|
126
|
+
* name must be 1 to 200 characters (400 otherwise).
|
|
127
|
+
* GET /api/v1/knowledge-base/:id/skills/micro-skills
|
|
128
|
+
* @param {String} id The knowledge base id
|
|
129
|
+
* @param {String} skill The skill's name
|
|
130
|
+
* @param {String} authToken Authentication token
|
|
131
|
+
* @returns {Promise<KnowledgeBaseMicroSkills>}
|
|
132
|
+
*/
|
|
133
|
+
const listMicroSkills = (id, skill, authToken) => {
|
|
134
|
+
return new Promise((resolve, reject) => {
|
|
135
|
+
const request = axiosClient_js_1.client.get(`/api/v1/knowledge-base/${id}/skills/micro-skills`, {
|
|
136
|
+
headers: { authorization: authToken },
|
|
137
|
+
params: { skill },
|
|
138
|
+
});
|
|
139
|
+
request
|
|
140
|
+
.then((response) => {
|
|
141
|
+
resolve(response.data);
|
|
142
|
+
})
|
|
143
|
+
.catch((error) => {
|
|
144
|
+
reject(error);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
exports.listMicroSkills = listMicroSkills;
|
|
149
|
+
/**
|
|
150
|
+
* Where a knowledge base's microskill grouping stands: queued, running or
|
|
151
|
+
* idle, and when the last one ended. What a page polls while a grouping is
|
|
152
|
+
* under way, rather than `listMicroSkills`: the platform reads the knowledge
|
|
153
|
+
* base and nothing else. Requires VIEW_KNOWLEDGE_BASE and a role on the
|
|
154
|
+
* knowledge base.
|
|
155
|
+
* GET /api/v1/knowledge-base/:id/skills/micro-skills/grouping
|
|
156
|
+
* @param {String} id The knowledge base id
|
|
157
|
+
* @param {String} authToken Authentication token
|
|
158
|
+
* @returns {Promise<KnowledgeBaseMicroSkillGrouping>}
|
|
159
|
+
*/
|
|
160
|
+
const getMicroSkillGrouping = (id, authToken) => {
|
|
161
|
+
return new Promise((resolve, reject) => {
|
|
162
|
+
const request = axiosClient_js_1.client.get(`/api/v1/knowledge-base/${id}/skills/micro-skills/grouping`, { headers: { authorization: authToken } });
|
|
163
|
+
request
|
|
164
|
+
.then((response) => {
|
|
165
|
+
resolve(response.data);
|
|
166
|
+
})
|
|
167
|
+
.catch((error) => {
|
|
168
|
+
reject(error);
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
exports.getMicroSkillGrouping = getMicroSkillGrouping;
|
|
173
|
+
/**
|
|
174
|
+
* Group now: groups the knowledge base's skills' passage tags into their
|
|
175
|
+
* microskills, in the background. Owner or editor only, as setting how its
|
|
176
|
+
* skills are named (403 otherwise; 404 for no such knowledge base). Asked
|
|
177
|
+
* while a grouping runs, nothing more is asked: the answer is that it is
|
|
178
|
+
* running. `getMicroSkillGrouping` says when it is done (no longer queued or
|
|
179
|
+
* running). The skills whose grouping failed are sent again now.
|
|
180
|
+
* POST /api/v1/knowledge-base/:id/skills/micro-skills/group
|
|
181
|
+
* @param {String} id The knowledge base id
|
|
182
|
+
* @param {String} authToken Authentication token
|
|
183
|
+
* @returns {Promise<KnowledgeBaseMicroSkillGrouping>} Where the grouping
|
|
184
|
+
* stands: queued or running, and when the last one ended
|
|
185
|
+
*/
|
|
186
|
+
const groupMicroSkills = (id, authToken) => {
|
|
187
|
+
return new Promise((resolve, reject) => {
|
|
188
|
+
const request = axiosClient_js_1.client.post(`/api/v1/knowledge-base/${id}/skills/micro-skills/group`, {}, { headers: { authorization: authToken } });
|
|
189
|
+
request
|
|
190
|
+
.then((response) => {
|
|
191
|
+
resolve(response.data);
|
|
192
|
+
})
|
|
193
|
+
.catch((error) => {
|
|
194
|
+
reject(error);
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
exports.groupMicroSkills = groupMicroSkills;
|
|
199
|
+
//# 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,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveSourceMappings = exports.updateSourceMapping = exports.listSourceMappings = exports.testSource = exports.reprocessSource = exports.syncSource = exports.deleteSource = exports.updateSource = exports.addSource = exports.listSourceConnectors = void 0;
|
|
4
|
+
const axiosClient_js_1 = require("../axiosClient.js");
|
|
5
|
+
// ── Source Management ─────────────────────────────────────────────────────────
|
|
6
|
+
/**
|
|
7
|
+
* List the available KB_SOURCE_CONNECTOR integrations (enabled integrations +
|
|
8
|
+
* capability manifests for the source-creation form).
|
|
9
|
+
* GET /api/v1/knowledge-base/source-connectors
|
|
10
|
+
* @param {String} authToken Authentication token
|
|
11
|
+
* @returns {Promise<object>}
|
|
12
|
+
*/
|
|
13
|
+
const listSourceConnectors = (authToken) => {
|
|
14
|
+
return new Promise((resolve, reject) => {
|
|
15
|
+
const request = axiosClient_js_1.client.get(`/api/v1/knowledge-base/source-connectors`, {
|
|
16
|
+
headers: { authorization: authToken },
|
|
17
|
+
});
|
|
18
|
+
request
|
|
19
|
+
.then((response) => {
|
|
20
|
+
resolve(response.data);
|
|
21
|
+
})
|
|
22
|
+
.catch((error) => {
|
|
23
|
+
reject(error);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
exports.listSourceConnectors = listSourceConnectors;
|
|
28
|
+
//
|
|
29
|
+
// Between `listSourceConnectors` and `addSource` sit three calls that act on the
|
|
30
|
+
// CONNECTOR itself rather than on a knowledge base — asking it what it accepts,
|
|
31
|
+
// how the user signs in, and how much data is behind the resulting credentials.
|
|
32
|
+
// Those live in the `knowledgeBaseSourceConnectors` module (they take a
|
|
33
|
+
// connection id, not a KB id, and are mounted under
|
|
34
|
+
// /api/v1/exceed/knowledgebasesourceconnectors).
|
|
35
|
+
//
|
|
36
|
+
/**
|
|
37
|
+
* Add a source to a knowledge base (`integrationId` + credentials +
|
|
38
|
+
* `syncFrequencyDays`, default 7). Publishes a kb-source-event (changeType="add").
|
|
39
|
+
* POST /api/v1/knowledge-base/:id/sources
|
|
40
|
+
* @param {String} id The knowledge base id
|
|
41
|
+
* @param {SourceInput} source The source configuration
|
|
42
|
+
* @param {String} authToken Authentication token
|
|
43
|
+
* @returns {Promise<object>}
|
|
44
|
+
*/
|
|
45
|
+
const addSource = (id, source, authToken) => {
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
const request = axiosClient_js_1.client.post(`/api/v1/knowledge-base/${id}/sources`, source, { headers: { authorization: authToken } });
|
|
48
|
+
request
|
|
49
|
+
.then((response) => {
|
|
50
|
+
resolve(response.data);
|
|
51
|
+
})
|
|
52
|
+
.catch((error) => {
|
|
53
|
+
reject(error);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
};
|
|
57
|
+
exports.addSource = addSource;
|
|
58
|
+
/**
|
|
59
|
+
* Update a knowledge base source. Publishes a kb-source-event per changed source.
|
|
60
|
+
* PUT /api/v1/knowledge-base/:id/sources/:sourceId
|
|
61
|
+
* @param {String} id The knowledge base id
|
|
62
|
+
* @param {String} sourceId The source id
|
|
63
|
+
* @param {SourceInput} source The updated source configuration
|
|
64
|
+
* @param {String} authToken Authentication token
|
|
65
|
+
* @returns {Promise<object>}
|
|
66
|
+
*/
|
|
67
|
+
const updateSource = (id, sourceId, source, authToken) => {
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
const request = axiosClient_js_1.client.put(`/api/v1/knowledge-base/${id}/sources/${sourceId}`, source, { headers: { authorization: authToken } });
|
|
70
|
+
request
|
|
71
|
+
.then((response) => {
|
|
72
|
+
resolve(response.data);
|
|
73
|
+
})
|
|
74
|
+
.catch((error) => {
|
|
75
|
+
reject(error);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
exports.updateSource = updateSource;
|
|
80
|
+
/**
|
|
81
|
+
* Remove a source from a knowledge base. Publishes a kb-source-event
|
|
82
|
+
* (changeType="delete").
|
|
83
|
+
* DELETE /api/v1/knowledge-base/:id/sources/:sourceId
|
|
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
|
+
const deleteSource = (id, sourceId, authToken) => {
|
|
90
|
+
return new Promise((resolve, reject) => {
|
|
91
|
+
const request = axiosClient_js_1.client.delete(`/api/v1/knowledge-base/${id}/sources/${sourceId}`, { headers: { authorization: authToken } });
|
|
92
|
+
request
|
|
93
|
+
.then((response) => {
|
|
94
|
+
resolve(response.data);
|
|
95
|
+
})
|
|
96
|
+
.catch((error) => {
|
|
97
|
+
reject(error);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
exports.deleteSource = deleteSource;
|
|
102
|
+
/**
|
|
103
|
+
* Trigger a manual re-sync of a source. Publishes a kb-source-event
|
|
104
|
+
* (changeType="update", trigger="manual_sync").
|
|
105
|
+
* POST /api/v1/knowledge-base/:id/sources/:sourceId/sync
|
|
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
|
+
const syncSource = (id, sourceId, authToken) => {
|
|
112
|
+
return new Promise((resolve, reject) => {
|
|
113
|
+
const request = axiosClient_js_1.client.post(`/api/v1/knowledge-base/${id}/sources/${sourceId}/sync`, {}, { headers: { authorization: authToken } });
|
|
114
|
+
request
|
|
115
|
+
.then((response) => {
|
|
116
|
+
resolve(response.data);
|
|
117
|
+
})
|
|
118
|
+
.catch((error) => {
|
|
119
|
+
reject(error);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
};
|
|
123
|
+
exports.syncSource = syncSource;
|
|
124
|
+
/**
|
|
125
|
+
* Process every processed document of a source again — classification, labels,
|
|
126
|
+
* chunks and embeddings redone — on a run of the source. Quarantined and blocked
|
|
127
|
+
* documents are left as they are. A run starts now, or a follow-up run is owed
|
|
128
|
+
* while one is outstanding (trigger="reprocess").
|
|
129
|
+
* POST /api/v1/knowledge-base/:id/sources/:sourceId/reprocess
|
|
130
|
+
* @param {String} id The knowledge base id
|
|
131
|
+
* @param {String} sourceId The source id
|
|
132
|
+
* @param {String} authToken Authentication token
|
|
133
|
+
* @returns {Promise<object>} { ok, documents, correlationId, started }: how many
|
|
134
|
+
* documents were marked, the run, and whether it started now
|
|
135
|
+
*/
|
|
136
|
+
const reprocessSource = (id, sourceId, authToken) => {
|
|
137
|
+
return new Promise((resolve, reject) => {
|
|
138
|
+
const request = axiosClient_js_1.client.post(`/api/v1/knowledge-base/${id}/sources/${sourceId}/reprocess`, {}, { headers: { authorization: authToken } });
|
|
139
|
+
request
|
|
140
|
+
.then((response) => {
|
|
141
|
+
resolve(response.data);
|
|
142
|
+
})
|
|
143
|
+
.catch((error) => {
|
|
144
|
+
reject(error);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
exports.reprocessSource = reprocessSource;
|
|
149
|
+
/**
|
|
150
|
+
* Test a source's connector credentials (dispatches TEST_CONNECTION).
|
|
151
|
+
* POST /api/v1/knowledge-base/:id/sources/:sourceId/test
|
|
152
|
+
* @param {String} id The knowledge base id
|
|
153
|
+
* @param {String} sourceId The source id
|
|
154
|
+
* @param {String} authToken Authentication token
|
|
155
|
+
* @returns {Promise<object>}
|
|
156
|
+
*/
|
|
157
|
+
const testSource = (id, sourceId, authToken) => {
|
|
158
|
+
return new Promise((resolve, reject) => {
|
|
159
|
+
const request = axiosClient_js_1.client.post(`/api/v1/knowledge-base/${id}/sources/${sourceId}/test`, {}, { headers: { authorization: authToken } });
|
|
160
|
+
request
|
|
161
|
+
.then((response) => {
|
|
162
|
+
resolve(response.data);
|
|
163
|
+
})
|
|
164
|
+
.catch((error) => {
|
|
165
|
+
reject(error);
|
|
166
|
+
});
|
|
167
|
+
});
|
|
168
|
+
};
|
|
169
|
+
exports.testSource = testSource;
|
|
170
|
+
// ── Identity Mapping ──────────────────────────────────────────────────────────
|
|
171
|
+
// (design §14 — maps source-side principals to tenant users for KB source ACLs.)
|
|
172
|
+
/**
|
|
173
|
+
* List the current user's source-side identities.
|
|
174
|
+
* GET /api/v1/identity/source-mappings
|
|
175
|
+
* @param {String} authToken Authentication token
|
|
176
|
+
* @returns {Promise<object>}
|
|
177
|
+
*/
|
|
178
|
+
const listSourceMappings = (authToken) => {
|
|
179
|
+
return new Promise((resolve, reject) => {
|
|
180
|
+
const request = axiosClient_js_1.client.get(`/api/v1/identity/source-mappings`, {
|
|
181
|
+
headers: { authorization: authToken },
|
|
182
|
+
});
|
|
183
|
+
request
|
|
184
|
+
.then((response) => {
|
|
185
|
+
resolve(response.data);
|
|
186
|
+
})
|
|
187
|
+
.catch((error) => {
|
|
188
|
+
reject(error);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
exports.listSourceMappings = listSourceMappings;
|
|
193
|
+
/**
|
|
194
|
+
* Tenant-admin override for a user's source identity mapping.
|
|
195
|
+
* PUT /api/v1/identity/source-mappings/:sourceType
|
|
196
|
+
* @param {String} sourceType The source type key
|
|
197
|
+
* @param {object} data The mapping override
|
|
198
|
+
* @param {String} authToken Authentication token
|
|
199
|
+
* @returns {Promise<object>}
|
|
200
|
+
*/
|
|
201
|
+
const updateSourceMapping = (sourceType, data, authToken) => {
|
|
202
|
+
return new Promise((resolve, reject) => {
|
|
203
|
+
const request = axiosClient_js_1.client.put(`/api/v1/identity/source-mappings/${sourceType}`, data, { headers: { authorization: authToken } });
|
|
204
|
+
request
|
|
205
|
+
.then((response) => {
|
|
206
|
+
resolve(response.data);
|
|
207
|
+
})
|
|
208
|
+
.catch((error) => {
|
|
209
|
+
reject(error);
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
};
|
|
213
|
+
exports.updateSourceMapping = updateSourceMapping;
|
|
214
|
+
/**
|
|
215
|
+
* Bulk-resolve source principal IDs → tenant users (internal / service-to-service).
|
|
216
|
+
* POST /api/v1/identity/source-mappings/resolve
|
|
217
|
+
* @param {object} data Body carrying the principal IDs to resolve
|
|
218
|
+
* @param {String} authToken Authentication token
|
|
219
|
+
* @returns {Promise<object>}
|
|
220
|
+
*/
|
|
221
|
+
const resolveSourceMappings = (data, authToken) => {
|
|
222
|
+
return new Promise((resolve, reject) => {
|
|
223
|
+
const request = axiosClient_js_1.client.post(`/api/v1/identity/source-mappings/resolve`, data, { headers: { authorization: authToken } });
|
|
224
|
+
request
|
|
225
|
+
.then((response) => {
|
|
226
|
+
resolve(response.data);
|
|
227
|
+
})
|
|
228
|
+
.catch((error) => {
|
|
229
|
+
reject(error);
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
exports.resolveSourceMappings = resolveSourceMappings;
|
|
234
|
+
//# 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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"}
|