@stackfactor/client-api 1.20.1 → 1.20.3

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/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)
1
+ Commercial License
2
2
 
3
- You are free to:
3
+ Copyright (c) 2026 StackFactor Inc. All rights reserved.
4
4
 
5
- Share — copy and redistribute the material in any medium or format
6
- for any purpose, even commercially.
5
+ This software and associated documentation files (the "Software") are the
6
+ proprietary property of StackFactor Inc. Unauthorized copying, modification,
7
+ distribution, or use of this Software, in whole or in part, is strictly
8
+ prohibited without the prior written consent of StackFactor Inc.
7
9
 
8
- Under the following terms:
10
+ The Software is licensed, not sold. StackFactor Inc retains all rights, title,
11
+ and interest in and to the Software, including all intellectual property rights.
9
12
 
10
- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
13
+ Use of this Software is permitted only under the terms of a valid commercial
14
+ license agreement with StackFactor Inc.
11
15
 
12
- NoDerivatives — If you remix, transform, or build upon the material, you may not distribute the modified material.
13
-
14
- No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.
15
-
16
- Notices:
17
- You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation.
18
- No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.
19
-
20
- For the full license text, see:
21
- https://creativecommons.org/licenses/by-nd/4.0/legalcode
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19
+ STACKFACTOR INC BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -66,6 +66,16 @@ export interface SyncOutcome {
66
66
  /** How many documents the source holds, when the run counted them. */
67
67
  count?: number;
68
68
  lastError?: string | null;
69
+ /**
70
+ * True when the run listed the whole source, so the backend may remove what
71
+ * the source no longer holds. A run that registered can say so even if it was
72
+ * cancelled or failed while processing.
73
+ */
74
+ exhaustive?: boolean;
75
+ /** Listed ids the run did not ingest; ignored by the backend for a run that registered. */
76
+ notIngested?: string[];
77
+ /** True when the run registered its listing (the two-phase flow). */
78
+ registered?: boolean;
69
79
  }
70
80
  /** Which page of the source to list. */
71
81
  export interface DocumentPage {
@@ -89,10 +99,33 @@ export interface ListedDocument {
89
99
  mimeType?: string;
90
100
  [field: string]: unknown;
91
101
  }
102
+ /** What registering one page of the listing came to: counts of the entries it held. */
103
+ export interface RegisteredDocuments {
104
+ /** Every entry accepted: `toProcess + unchanged + blocked + inProgress + repeated`. */
105
+ registered: number;
106
+ /** New, changed since its last ingest, not settled, or listed without a version: to be ingested in full. */
107
+ toProcess: number;
108
+ /** Settled and unchanged: only their ACL is read. */
109
+ unchanged: number;
110
+ /** Left as they are: held by a reviewer. */
111
+ blocked: number;
112
+ /** Left as they are: being ingested by another request. */
113
+ inProgress: number;
114
+ /** An id this run had already registered, so counted once. */
115
+ repeated: number;
116
+ }
117
+ /** A registered document handed out for ingestion. */
118
+ export interface QueuedDocument {
119
+ /** The document's id in the knowledge base, to ingest by. */
120
+ documentId: string;
121
+ /** The source's own id for it. */
122
+ externalId: string;
123
+ name: string | null;
124
+ }
92
125
  /** What ingesting one document came to. */
93
126
  export interface IngestOutcome {
94
127
  documentId: string | null;
95
- /** created · updated · unchanged_bytes · unchanged_content · failed · in_progress */
128
+ /** created · updated · unchanged_bytes · unchanged_content · unchanged_version · failed · quarantined · blocked · in_progress */
96
129
  outcome: string;
97
130
  /** Why it failed, for a failed outcome. */
98
131
  error?: string;
@@ -137,7 +170,7 @@ export declare const startSync: (knowledgeBaseId: string, sourceId: string, corr
137
170
  * POST /api/v1/knowledge-base/:id/sources/:sourceId/sync/finish
138
171
  * @param {String} knowledgeBaseId The knowledge base
139
172
  * @param {String} sourceId The source subdocument
140
- * @param {SyncOutcome} outcome `completed`, and `count`, `lastError`, `correlationId` when there are any
173
+ * @param {SyncOutcome} outcome `completed`, and `count`, `lastError`, `correlationId`, `exhaustive`, `notIngested`, `registered` when there are any
141
174
  * @param {String} token The run's AGENT token
142
175
  * @returns {Promise<{ok: true}>}
143
176
  */
@@ -198,4 +231,46 @@ export declare const listSourceDocuments: (knowledgeBaseId: string, sourceId: st
198
231
  * @returns {Promise<IngestOutcome>}
199
232
  */
200
233
  export declare const ingestDocument: (knowledgeBaseId: string, sourceId: string, document: ListedDocument, correlationId: string | null, token: string) => Promise<IngestOutcome>;
234
+ /**
235
+ * Registers one listed page: the backend stores each entry, tells which
236
+ * documents changed since their last ingest, and marks them for this run. The
237
+ * run calls it once per page and ingests nothing until the listing has ended.
238
+ * An id listed twice in the run is counted once (`repeated`).
239
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents/register
240
+ * @param {String} knowledgeBaseId The knowledge base
241
+ * @param {String} sourceId The source subdocument
242
+ * @param {String} correlationId The run's own correlation id; the backend refuses any other
243
+ * @param {ListedDocument[]} documents One page of entries, as the connector listed them
244
+ * @param {String} token The run's AGENT token
245
+ * @returns {Promise<RegisteredDocuments>}
246
+ */
247
+ export declare const registerSourceDocuments: (knowledgeBaseId: string, sourceId: string, correlationId: string, documents: ListedDocument[], token: string) => Promise<RegisteredDocuments>;
248
+ /**
249
+ * Pulls the next documents this run is to process. Each document is handed out
250
+ * once, so concurrent pullers never get the same one; an empty list means
251
+ * nothing is left.
252
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents/next
253
+ * @param {String} knowledgeBaseId The knowledge base
254
+ * @param {String} sourceId The source subdocument
255
+ * @param {String} correlationId The run's correlation id; the backend refuses any other
256
+ * @param {Number} limit How many at most, 1–50; the backend refuses any other
257
+ * @param {String} token The run's AGENT token
258
+ * @returns {Promise<{documents: QueuedDocument[]}>}
259
+ */
260
+ export declare const nextSourceDocuments: (knowledgeBaseId: string, sourceId: string, correlationId: string, limit: number, token: string) => Promise<{
261
+ documents: QueuedDocument[];
262
+ }>;
263
+ /**
264
+ * Ingests a document the run registered, by its id: the backend already holds
265
+ * the listed entry. Answers as `ingestDocument` does; a document that could not
266
+ * be ingested is an outcome, not a rejection.
267
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents
268
+ * @param {String} knowledgeBaseId The knowledge base
269
+ * @param {String} sourceId The source subdocument
270
+ * @param {String} documentId The `documentId` of a `QueuedDocument`
271
+ * @param {String} correlationId The run's correlation id
272
+ * @param {String} token The run's AGENT token
273
+ * @returns {Promise<IngestOutcome>}
274
+ */
275
+ export declare const ingestRegisteredDocument: (knowledgeBaseId: string, sourceId: string, documentId: string, correlationId: string, token: string) => Promise<IngestOutcome>;
201
276
  //# sourceMappingURL=knowledgeBaseAgent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledgeBaseAgent.d.ts","sourceRoot":"","sources":["../../../src/lib/knowledgeBaseAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledgeBaseAgent.d.ts","sourceRoot":"","sources":["../../../src/lib/knowledgeBaseAgent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ingestDocument = exports.listSourceDocuments = exports.reportAccounts = exports.finishSync = exports.startSync = exports.search = void 0;
3
+ exports.ingestRegisteredDocument = exports.nextSourceDocuments = exports.registerSourceDocuments = exports.ingestDocument = exports.listSourceDocuments = exports.reportAccounts = exports.finishSync = exports.startSync = exports.search = void 0;
4
4
  const axiosClient_js_1 = require("./axiosClient.js");
5
5
  //
6
6
  // The knowledge-base calls an agent run makes.
@@ -13,10 +13,15 @@ const axiosClient_js_1 = require("./axiosClient.js");
13
13
  // to synchronise (and to report a source's accounts). There is no user-facing
14
14
  // search: retrieval is internal to the agents by design.
15
15
  //
16
- // The sync agent is data-blind. It orchestrates — one page of documents at a
17
- // time, one document at a time — and the backend does the work: fetching,
18
- // parsing, chunking and embedding happen there, and the answers carry outcomes
19
- // and counts, never the content.
16
+ // The sync agent is data-blind. It orchestrates and the backend does the work:
17
+ // fetching, parsing, chunking and embedding happen there, and the answers carry
18
+ // outcomes and counts, never the content. A run lists, registers, then pulls:
19
+ // it lists the source page by page and registers each page
20
+ // (`registerSourceDocuments`), so the whole source is known before any
21
+ // document is ingested; it then asks for the documents to process in batches
22
+ // (`nextSourceDocuments`) and ingests each by id
23
+ // (`ingestRegisteredDocument`). `ingestDocument`, which takes the listed entry
24
+ // itself, stays for agents still running the page-by-page flow.
20
25
  //
21
26
  const BASE = "/api/v1/knowledge-base";
22
27
  const sourceOf = (knowledgeBaseId, sourceId) => `${BASE}/${encodeURIComponent(knowledgeBaseId)}/sources/${encodeURIComponent(sourceId)}`;
@@ -60,7 +65,7 @@ exports.startSync = startSync;
60
65
  * POST /api/v1/knowledge-base/:id/sources/:sourceId/sync/finish
61
66
  * @param {String} knowledgeBaseId The knowledge base
62
67
  * @param {String} sourceId The source subdocument
63
- * @param {SyncOutcome} outcome `completed`, and `count`, `lastError`, `correlationId` when there are any
68
+ * @param {SyncOutcome} outcome `completed`, and `count`, `lastError`, `correlationId`, `exhaustive`, `notIngested`, `registered` when there are any
64
69
  * @param {String} token The run's AGENT token
65
70
  * @returns {Promise<{ok: true}>}
66
71
  */
@@ -110,4 +115,47 @@ exports.listSourceDocuments = listSourceDocuments;
110
115
  */
111
116
  const ingestDocument = (knowledgeBaseId, sourceId, document, correlationId, token) => answer(axiosClient_js_1.client.post(`${sourceOf(knowledgeBaseId, sourceId)}/documents`, { document, ...(correlationId ? { correlationId } : {}) }, headers(token)));
112
117
  exports.ingestDocument = ingestDocument;
118
+ /**
119
+ * Registers one listed page: the backend stores each entry, tells which
120
+ * documents changed since their last ingest, and marks them for this run. The
121
+ * run calls it once per page and ingests nothing until the listing has ended.
122
+ * An id listed twice in the run is counted once (`repeated`).
123
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents/register
124
+ * @param {String} knowledgeBaseId The knowledge base
125
+ * @param {String} sourceId The source subdocument
126
+ * @param {String} correlationId The run's own correlation id; the backend refuses any other
127
+ * @param {ListedDocument[]} documents One page of entries, as the connector listed them
128
+ * @param {String} token The run's AGENT token
129
+ * @returns {Promise<RegisteredDocuments>}
130
+ */
131
+ const registerSourceDocuments = (knowledgeBaseId, sourceId, correlationId, documents, token) => answer(axiosClient_js_1.client.post(`${sourceOf(knowledgeBaseId, sourceId)}/documents/register`, { correlationId, documents }, headers(token)));
132
+ exports.registerSourceDocuments = registerSourceDocuments;
133
+ /**
134
+ * Pulls the next documents this run is to process. Each document is handed out
135
+ * once, so concurrent pullers never get the same one; an empty list means
136
+ * nothing is left.
137
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents/next
138
+ * @param {String} knowledgeBaseId The knowledge base
139
+ * @param {String} sourceId The source subdocument
140
+ * @param {String} correlationId The run's correlation id; the backend refuses any other
141
+ * @param {Number} limit How many at most, 1–50; the backend refuses any other
142
+ * @param {String} token The run's AGENT token
143
+ * @returns {Promise<{documents: QueuedDocument[]}>}
144
+ */
145
+ const nextSourceDocuments = (knowledgeBaseId, sourceId, correlationId, limit, token) => answer(axiosClient_js_1.client.post(`${sourceOf(knowledgeBaseId, sourceId)}/documents/next`, { correlationId, limit }, headers(token)));
146
+ exports.nextSourceDocuments = nextSourceDocuments;
147
+ /**
148
+ * Ingests a document the run registered, by its id: the backend already holds
149
+ * the listed entry. Answers as `ingestDocument` does; a document that could not
150
+ * be ingested is an outcome, not a rejection.
151
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents
152
+ * @param {String} knowledgeBaseId The knowledge base
153
+ * @param {String} sourceId The source subdocument
154
+ * @param {String} documentId The `documentId` of a `QueuedDocument`
155
+ * @param {String} correlationId The run's correlation id
156
+ * @param {String} token The run's AGENT token
157
+ * @returns {Promise<IngestOutcome>}
158
+ */
159
+ const ingestRegisteredDocument = (knowledgeBaseId, sourceId, documentId, correlationId, token) => answer(axiosClient_js_1.client.post(`${sourceOf(knowledgeBaseId, sourceId)}/documents`, { documentId, correlationId }, headers(token)));
160
+ exports.ingestRegisteredDocument = ingestRegisteredDocument;
113
161
  //# sourceMappingURL=knowledgeBaseAgent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledgeBaseAgent.js","sourceRoot":"","sources":["../../../src/lib/knowledgeBaseAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledgeBaseAgent.js","sourceRoot":"","sources":["../../../src/lib/knowledgeBaseAgent.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,16 @@ export interface SyncOutcome {
66
66
  /** How many documents the source holds, when the run counted them. */
67
67
  count?: number;
68
68
  lastError?: string | null;
69
+ /**
70
+ * True when the run listed the whole source, so the backend may remove what
71
+ * the source no longer holds. A run that registered can say so even if it was
72
+ * cancelled or failed while processing.
73
+ */
74
+ exhaustive?: boolean;
75
+ /** Listed ids the run did not ingest; ignored by the backend for a run that registered. */
76
+ notIngested?: string[];
77
+ /** True when the run registered its listing (the two-phase flow). */
78
+ registered?: boolean;
69
79
  }
70
80
  /** Which page of the source to list. */
71
81
  export interface DocumentPage {
@@ -89,10 +99,33 @@ export interface ListedDocument {
89
99
  mimeType?: string;
90
100
  [field: string]: unknown;
91
101
  }
102
+ /** What registering one page of the listing came to: counts of the entries it held. */
103
+ export interface RegisteredDocuments {
104
+ /** Every entry accepted: `toProcess + unchanged + blocked + inProgress + repeated`. */
105
+ registered: number;
106
+ /** New, changed since its last ingest, not settled, or listed without a version: to be ingested in full. */
107
+ toProcess: number;
108
+ /** Settled and unchanged: only their ACL is read. */
109
+ unchanged: number;
110
+ /** Left as they are: held by a reviewer. */
111
+ blocked: number;
112
+ /** Left as they are: being ingested by another request. */
113
+ inProgress: number;
114
+ /** An id this run had already registered, so counted once. */
115
+ repeated: number;
116
+ }
117
+ /** A registered document handed out for ingestion. */
118
+ export interface QueuedDocument {
119
+ /** The document's id in the knowledge base, to ingest by. */
120
+ documentId: string;
121
+ /** The source's own id for it. */
122
+ externalId: string;
123
+ name: string | null;
124
+ }
92
125
  /** What ingesting one document came to. */
93
126
  export interface IngestOutcome {
94
127
  documentId: string | null;
95
- /** created · updated · unchanged_bytes · unchanged_content · failed · in_progress */
128
+ /** created · updated · unchanged_bytes · unchanged_content · unchanged_version · failed · quarantined · blocked · in_progress */
96
129
  outcome: string;
97
130
  /** Why it failed, for a failed outcome. */
98
131
  error?: string;
@@ -137,7 +170,7 @@ export declare const startSync: (knowledgeBaseId: string, sourceId: string, corr
137
170
  * POST /api/v1/knowledge-base/:id/sources/:sourceId/sync/finish
138
171
  * @param {String} knowledgeBaseId The knowledge base
139
172
  * @param {String} sourceId The source subdocument
140
- * @param {SyncOutcome} outcome `completed`, and `count`, `lastError`, `correlationId` when there are any
173
+ * @param {SyncOutcome} outcome `completed`, and `count`, `lastError`, `correlationId`, `exhaustive`, `notIngested`, `registered` when there are any
141
174
  * @param {String} token The run's AGENT token
142
175
  * @returns {Promise<{ok: true}>}
143
176
  */
@@ -198,4 +231,46 @@ export declare const listSourceDocuments: (knowledgeBaseId: string, sourceId: st
198
231
  * @returns {Promise<IngestOutcome>}
199
232
  */
200
233
  export declare const ingestDocument: (knowledgeBaseId: string, sourceId: string, document: ListedDocument, correlationId: string | null, token: string) => Promise<IngestOutcome>;
234
+ /**
235
+ * Registers one listed page: the backend stores each entry, tells which
236
+ * documents changed since their last ingest, and marks them for this run. The
237
+ * run calls it once per page and ingests nothing until the listing has ended.
238
+ * An id listed twice in the run is counted once (`repeated`).
239
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents/register
240
+ * @param {String} knowledgeBaseId The knowledge base
241
+ * @param {String} sourceId The source subdocument
242
+ * @param {String} correlationId The run's own correlation id; the backend refuses any other
243
+ * @param {ListedDocument[]} documents One page of entries, as the connector listed them
244
+ * @param {String} token The run's AGENT token
245
+ * @returns {Promise<RegisteredDocuments>}
246
+ */
247
+ export declare const registerSourceDocuments: (knowledgeBaseId: string, sourceId: string, correlationId: string, documents: ListedDocument[], token: string) => Promise<RegisteredDocuments>;
248
+ /**
249
+ * Pulls the next documents this run is to process. Each document is handed out
250
+ * once, so concurrent pullers never get the same one; an empty list means
251
+ * nothing is left.
252
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents/next
253
+ * @param {String} knowledgeBaseId The knowledge base
254
+ * @param {String} sourceId The source subdocument
255
+ * @param {String} correlationId The run's correlation id; the backend refuses any other
256
+ * @param {Number} limit How many at most, 1–50; the backend refuses any other
257
+ * @param {String} token The run's AGENT token
258
+ * @returns {Promise<{documents: QueuedDocument[]}>}
259
+ */
260
+ export declare const nextSourceDocuments: (knowledgeBaseId: string, sourceId: string, correlationId: string, limit: number, token: string) => Promise<{
261
+ documents: QueuedDocument[];
262
+ }>;
263
+ /**
264
+ * Ingests a document the run registered, by its id: the backend already holds
265
+ * the listed entry. Answers as `ingestDocument` does; a document that could not
266
+ * be ingested is an outcome, not a rejection.
267
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents
268
+ * @param {String} knowledgeBaseId The knowledge base
269
+ * @param {String} sourceId The source subdocument
270
+ * @param {String} documentId The `documentId` of a `QueuedDocument`
271
+ * @param {String} correlationId The run's correlation id
272
+ * @param {String} token The run's AGENT token
273
+ * @returns {Promise<IngestOutcome>}
274
+ */
275
+ export declare const ingestRegisteredDocument: (knowledgeBaseId: string, sourceId: string, documentId: string, correlationId: string, token: string) => Promise<IngestOutcome>;
201
276
  //# sourceMappingURL=knowledgeBaseAgent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledgeBaseAgent.d.ts","sourceRoot":"","sources":["../../../src/lib/knowledgeBaseAgent.ts"],"names":[],"mappings":"AAwCA,yGAAyG;AACzG,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,kEAAkE;AAClE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,2DAA2D;IAC3D,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,uCAAuC;IACvC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,oGAAoG;AACpG,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;KACpC,CAAC;IACF,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,aAAa,EAAE,MAAM,CAAC;IACtB,iGAAiG;IACjG,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,4BAA4B;AAC5B,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,2FAA2F;IAC3F,SAAS,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wCAAwC;AACxC,MAAM,WAAW,YAAY;IAC3B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,4FAA4F;IAC5F,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1C;AAED,qEAAqE;AACrE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,mGAAmG;AACnG,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,2CAA2C;AAC3C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,GACjB,iBAAiB,MAAM,EACvB,OAAO,MAAM,EACb,SAAS,aAAa,EACtB,OAAO,MAAM,KACZ,OAAO,CAAC;IAAE,MAAM,EAAE,cAAc,EAAE,CAAA;CAAE,CAOpC,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,SAAS,GACpB,iBAAiB,MAAM,EACvB,UAAU,MAAM,EAChB,eAAe,MAAM,EACrB,OAAO,MAAM,KACZ,OAAO,CAAC,WAAW,CAOnB,CAAC;AAEJ;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GACrB,iBAAiB,MAAM,EACvB,UAAU,MAAM,EAChB,SAAS,WAAW,EACpB,OAAO,MAAM,KACZ,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,CAOpB,CAAC;AAEJ;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,OAAO,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GACzB,iBAAiB,MAAM,EACvB,UAAU,MAAM,EAChB,MAAM;IAAE,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,EAChC,OAAO,MAAM,KACZ,OAAO,CAAC,aAAa,CAOrB,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,GAC9B,iBAAiB,MAAM,EACvB,UAAU,MAAM,EAChB,MAAM,YAAY,EAClB,OAAO,MAAM,KACZ,OAAO,CAAC,eAAe,CAOvB,CAAC;AAEJ;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,GACzB,iBAAiB,MAAM,EACvB,UAAU,MAAM,EAChB,UAAU,cAAc,EACxB,eAAe,MAAM,GAAG,IAAI,EAC5B,OAAO,MAAM,KACZ,OAAO,CAAC,aAAa,CAOrB,CAAC"}
1
+ {"version":3,"file":"knowledgeBaseAgent.d.ts","sourceRoot":"","sources":["../../../src/lib/knowledgeBaseAgent.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,15 @@ import { client } from "./axiosClient.js";
10
10
  // to synchronise (and to report a source's accounts). There is no user-facing
11
11
  // search: retrieval is internal to the agents by design.
12
12
  //
13
- // The sync agent is data-blind. It orchestrates — one page of documents at a
14
- // time, one document at a time — and the backend does the work: fetching,
15
- // parsing, chunking and embedding happen there, and the answers carry outcomes
16
- // and counts, never the content.
13
+ // The sync agent is data-blind. It orchestrates and the backend does the work:
14
+ // fetching, parsing, chunking and embedding happen there, and the answers carry
15
+ // outcomes and counts, never the content. A run lists, registers, then pulls:
16
+ // it lists the source page by page and registers each page
17
+ // (`registerSourceDocuments`), so the whole source is known before any
18
+ // document is ingested; it then asks for the documents to process in batches
19
+ // (`nextSourceDocuments`) and ingests each by id
20
+ // (`ingestRegisteredDocument`). `ingestDocument`, which takes the listed entry
21
+ // itself, stays for agents still running the page-by-page flow.
17
22
  //
18
23
  const BASE = "/api/v1/knowledge-base";
19
24
  const sourceOf = (knowledgeBaseId, sourceId) => `${BASE}/${encodeURIComponent(knowledgeBaseId)}/sources/${encodeURIComponent(sourceId)}`;
@@ -55,7 +60,7 @@ export const startSync = (knowledgeBaseId, sourceId, correlationId, token) => an
55
60
  * POST /api/v1/knowledge-base/:id/sources/:sourceId/sync/finish
56
61
  * @param {String} knowledgeBaseId The knowledge base
57
62
  * @param {String} sourceId The source subdocument
58
- * @param {SyncOutcome} outcome `completed`, and `count`, `lastError`, `correlationId` when there are any
63
+ * @param {SyncOutcome} outcome `completed`, and `count`, `lastError`, `correlationId`, `exhaustive`, `notIngested`, `registered` when there are any
59
64
  * @param {String} token The run's AGENT token
60
65
  * @returns {Promise<{ok: true}>}
61
66
  */
@@ -101,4 +106,44 @@ export const listSourceDocuments = (knowledgeBaseId, sourceId, page, token) => a
101
106
  * @returns {Promise<IngestOutcome>}
102
107
  */
103
108
  export const ingestDocument = (knowledgeBaseId, sourceId, document, correlationId, token) => answer(client.post(`${sourceOf(knowledgeBaseId, sourceId)}/documents`, { document, ...(correlationId ? { correlationId } : {}) }, headers(token)));
109
+ /**
110
+ * Registers one listed page: the backend stores each entry, tells which
111
+ * documents changed since their last ingest, and marks them for this run. The
112
+ * run calls it once per page and ingests nothing until the listing has ended.
113
+ * An id listed twice in the run is counted once (`repeated`).
114
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents/register
115
+ * @param {String} knowledgeBaseId The knowledge base
116
+ * @param {String} sourceId The source subdocument
117
+ * @param {String} correlationId The run's own correlation id; the backend refuses any other
118
+ * @param {ListedDocument[]} documents One page of entries, as the connector listed them
119
+ * @param {String} token The run's AGENT token
120
+ * @returns {Promise<RegisteredDocuments>}
121
+ */
122
+ export const registerSourceDocuments = (knowledgeBaseId, sourceId, correlationId, documents, token) => answer(client.post(`${sourceOf(knowledgeBaseId, sourceId)}/documents/register`, { correlationId, documents }, headers(token)));
123
+ /**
124
+ * Pulls the next documents this run is to process. Each document is handed out
125
+ * once, so concurrent pullers never get the same one; an empty list means
126
+ * nothing is left.
127
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents/next
128
+ * @param {String} knowledgeBaseId The knowledge base
129
+ * @param {String} sourceId The source subdocument
130
+ * @param {String} correlationId The run's correlation id; the backend refuses any other
131
+ * @param {Number} limit How many at most, 1–50; the backend refuses any other
132
+ * @param {String} token The run's AGENT token
133
+ * @returns {Promise<{documents: QueuedDocument[]}>}
134
+ */
135
+ export const nextSourceDocuments = (knowledgeBaseId, sourceId, correlationId, limit, token) => answer(client.post(`${sourceOf(knowledgeBaseId, sourceId)}/documents/next`, { correlationId, limit }, headers(token)));
136
+ /**
137
+ * Ingests a document the run registered, by its id: the backend already holds
138
+ * the listed entry. Answers as `ingestDocument` does; a document that could not
139
+ * be ingested is an outcome, not a rejection.
140
+ * POST /api/v1/knowledge-base/:id/sources/:sourceId/documents
141
+ * @param {String} knowledgeBaseId The knowledge base
142
+ * @param {String} sourceId The source subdocument
143
+ * @param {String} documentId The `documentId` of a `QueuedDocument`
144
+ * @param {String} correlationId The run's correlation id
145
+ * @param {String} token The run's AGENT token
146
+ * @returns {Promise<IngestOutcome>}
147
+ */
148
+ export const ingestRegisteredDocument = (knowledgeBaseId, sourceId, documentId, correlationId, token) => answer(client.post(`${sourceOf(knowledgeBaseId, sourceId)}/documents`, { documentId, correlationId }, headers(token)));
104
149
  //# sourceMappingURL=knowledgeBaseAgent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"knowledgeBaseAgent.js","sourceRoot":"","sources":["../../../src/lib/knowledgeBaseAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledgeBaseAgent.js","sourceRoot":"","sources":["../../../src/lib/knowledgeBaseAgent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackfactor/client-api",
3
- "version": "1.20.1",
3
+ "version": "1.20.3",
4
4
  "description": "Node.js library for the StackFactor API",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -43,7 +43,7 @@
43
43
  "url": "git+https://github.com/StackFactor/stackfactor-client-api.git"
44
44
  },
45
45
  "author": "StackFactor Inc",
46
- "license": "ISC",
46
+ "license": "LicenseRef-StackFactor-Proprietary",
47
47
  "bugs": {
48
48
  "url": "https://github.com/StackFactor/stackfactor-client-api/issues"
49
49
  },