@elqnt/kg 3.0.1 → 3.0.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/api/index.d.mts +92 -3
- package/dist/api/index.d.ts +92 -3
- package/dist/api/index.js +16 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +15 -1
- package/dist/api/server.d.mts +1 -0
- package/dist/api/server.d.ts +1 -0
- package/dist/{chunk-HCDFJCQL.mjs → chunk-5D7RJC7D.mjs} +105 -5
- package/dist/chunk-5D7RJC7D.mjs.map +1 -0
- package/dist/chunk-B33SF6DB.js +2 -0
- package/dist/{chunk-W4XVBGE7.js.map → chunk-B33SF6DB.js.map} +1 -1
- package/dist/chunk-BP2I7KWY.js +1031 -0
- package/dist/chunk-BP2I7KWY.js.map +1 -0
- package/dist/{chunk-2TJCYLTP.js → chunk-CNWOI7LX.js} +104 -4
- package/dist/chunk-CNWOI7LX.js.map +1 -0
- package/dist/chunk-MAEB7UOW.mjs +257 -0
- package/dist/chunk-MAEB7UOW.mjs.map +1 -0
- package/dist/chunk-SUDQ45LY.mjs +2 -0
- package/dist/chunk-WYRCAPY4.js +257 -0
- package/dist/chunk-WYRCAPY4.js.map +1 -0
- package/dist/chunk-ZEPJC46Z.mjs +1031 -0
- package/dist/chunk-ZEPJC46Z.mjs.map +1 -0
- package/dist/hooks/index.d.mts +446 -79
- package/dist/hooks/index.d.ts +446 -79
- package/dist/hooks/index.js +8 -3
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +9 -4
- package/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +24 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +31 -12
- package/dist/index.mjs.map +1 -1
- package/dist/models/index.d.mts +213 -0
- package/dist/models/index.d.ts +213 -0
- package/dist/models/index.js +1 -1
- package/dist/models/index.mjs +1 -1
- package/dist/transport/index.d.mts +365 -0
- package/dist/transport/index.d.ts +365 -0
- package/dist/transport/index.js +10 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/index.mjs +10 -0
- package/dist/transport/index.mjs.map +1 -0
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.mjs +1 -1
- package/package.json +3 -3
- package/dist/chunk-2TJCYLTP.js.map +0 -1
- package/dist/chunk-7RW5MHP5.js +0 -497
- package/dist/chunk-7RW5MHP5.js.map +0 -1
- package/dist/chunk-HCDFJCQL.mjs.map +0 -1
- package/dist/chunk-JZ7UXVRW.mjs +0 -497
- package/dist/chunk-JZ7UXVRW.mjs.map +0 -1
- package/dist/chunk-NJNBEGDB.mjs +0 -2
- package/dist/chunk-W4XVBGE7.js +0 -2
- /package/dist/{chunk-NJNBEGDB.mjs.map → chunk-SUDQ45LY.mjs.map} +0 -0
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
import { KGApiOptions } from '../api/index.mjs';
|
|
2
|
+
import '@elqnt/api-client';
|
|
3
|
+
import '@elqnt/types';
|
|
4
|
+
import '../models/kg.mjs';
|
|
5
|
+
import '../models/kg-designer.mjs';
|
|
6
|
+
import '../models/index.mjs';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Quick Ingestion SSE Transport
|
|
10
|
+
*
|
|
11
|
+
* Handles real-time progress updates for quick ingestion jobs.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { createQuickIngestTransport } from "@elqnt/kg/transport";
|
|
16
|
+
*
|
|
17
|
+
* const transport = createQuickIngestTransport({ debug: true });
|
|
18
|
+
* await transport.connect({ baseUrl, orgId });
|
|
19
|
+
*
|
|
20
|
+
* transport.on("item_start", (event) => {
|
|
21
|
+
* console.log("Started processing:", event.itemId);
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* transport.on("item_progress", (event) => {
|
|
25
|
+
* console.log(`Progress: ${event.progress}% - ${event.text}`);
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* transport.on("item_complete", (event) => {
|
|
29
|
+
* console.log(`Completed: ${event.articles} articles, ${event.topics} topics`);
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
* transport.on("job_complete", (event) => {
|
|
33
|
+
* console.log(`Job done: ${event.totalArticles} articles, ${event.totalTopics} topics`);
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* transport.subscribeToJob("qij_xyz789");
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Transport configuration
|
|
42
|
+
*/
|
|
43
|
+
interface QuickIngestTransportConfig {
|
|
44
|
+
/** Base URL for the API */
|
|
45
|
+
baseUrl: string;
|
|
46
|
+
/** Organization ID */
|
|
47
|
+
orgId: string;
|
|
48
|
+
/** Optional graph ID */
|
|
49
|
+
graphId?: string;
|
|
50
|
+
/** User ID for authentication */
|
|
51
|
+
userId?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Transport options
|
|
55
|
+
*/
|
|
56
|
+
interface QuickIngestTransportOptions {
|
|
57
|
+
/** Enable debug logging */
|
|
58
|
+
debug?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Event when an item starts processing
|
|
62
|
+
*/
|
|
63
|
+
interface QuickIngestItemStartEvent {
|
|
64
|
+
type: "item_start";
|
|
65
|
+
itemId: string;
|
|
66
|
+
timestamp: number;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Event when an item has progress update
|
|
70
|
+
*/
|
|
71
|
+
interface QuickIngestItemProgressEvent {
|
|
72
|
+
type: "item_progress";
|
|
73
|
+
itemId: string;
|
|
74
|
+
progress: number;
|
|
75
|
+
text: string;
|
|
76
|
+
timestamp: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Event when an item completes successfully
|
|
80
|
+
*/
|
|
81
|
+
interface QuickIngestItemCompleteEvent {
|
|
82
|
+
type: "item_complete";
|
|
83
|
+
itemId: string;
|
|
84
|
+
articles: number;
|
|
85
|
+
topics: number;
|
|
86
|
+
timestamp: number;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Event when an item encounters an error
|
|
90
|
+
*/
|
|
91
|
+
interface QuickIngestItemErrorEvent {
|
|
92
|
+
type: "item_error";
|
|
93
|
+
itemId: string;
|
|
94
|
+
error: string;
|
|
95
|
+
timestamp: number;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Event when the entire job completes
|
|
99
|
+
*/
|
|
100
|
+
interface QuickIngestJobCompleteEvent {
|
|
101
|
+
type: "job_complete";
|
|
102
|
+
totalArticles: number;
|
|
103
|
+
totalTopics: number;
|
|
104
|
+
timestamp: number;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Union of all quick ingest events
|
|
108
|
+
*/
|
|
109
|
+
type QuickIngestEvent = QuickIngestItemStartEvent | QuickIngestItemProgressEvent | QuickIngestItemCompleteEvent | QuickIngestItemErrorEvent | QuickIngestJobCompleteEvent;
|
|
110
|
+
/**
|
|
111
|
+
* Event handler function type
|
|
112
|
+
*/
|
|
113
|
+
type QuickIngestEventHandler<T = QuickIngestEvent> = (event: T) => void;
|
|
114
|
+
/**
|
|
115
|
+
* Unsubscribe function
|
|
116
|
+
*/
|
|
117
|
+
type Unsubscribe = () => void;
|
|
118
|
+
/**
|
|
119
|
+
* Quick Ingest Transport interface
|
|
120
|
+
*/
|
|
121
|
+
interface QuickIngestTransport {
|
|
122
|
+
/**
|
|
123
|
+
* Connect to the transport
|
|
124
|
+
*/
|
|
125
|
+
connect(options: KGApiOptions): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Subscribe to a specific job's events
|
|
128
|
+
*/
|
|
129
|
+
subscribeToJob(jobId: string): void;
|
|
130
|
+
/**
|
|
131
|
+
* Subscribe to specific event type
|
|
132
|
+
*/
|
|
133
|
+
on<T extends QuickIngestEvent["type"]>(eventType: T, handler: QuickIngestEventHandler<Extract<QuickIngestEvent, {
|
|
134
|
+
type: T;
|
|
135
|
+
}>>): Unsubscribe;
|
|
136
|
+
/**
|
|
137
|
+
* Disconnect from the transport
|
|
138
|
+
*/
|
|
139
|
+
disconnect(): void;
|
|
140
|
+
/**
|
|
141
|
+
* Get current connection state
|
|
142
|
+
*/
|
|
143
|
+
getState(): "disconnected" | "connecting" | "connected";
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Create a Quick Ingest SSE transport
|
|
147
|
+
*/
|
|
148
|
+
declare function createQuickIngestTransport(options?: QuickIngestTransportOptions): QuickIngestTransport;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Full Ingestion SSE Transport
|
|
152
|
+
*
|
|
153
|
+
* Handles real-time progress updates and node streaming for full ingestion extraction.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* import { createFullIngestTransport } from "@elqnt/kg/transport";
|
|
158
|
+
*
|
|
159
|
+
* const transport = createFullIngestTransport({ debug: true });
|
|
160
|
+
* await transport.connect({ baseUrl, orgId });
|
|
161
|
+
*
|
|
162
|
+
* transport.on("progress", (event) => {
|
|
163
|
+
* console.log(`Extracting page ${event.currentPage} of ${event.totalPages}`);
|
|
164
|
+
* });
|
|
165
|
+
*
|
|
166
|
+
* transport.on("node", (event) => {
|
|
167
|
+
* console.log("Extracted node:", event.label, event.fields);
|
|
168
|
+
* });
|
|
169
|
+
*
|
|
170
|
+
* transport.on("complete", (event) => {
|
|
171
|
+
* console.log(`Extraction done: ${event.totalNodes} nodes`);
|
|
172
|
+
* });
|
|
173
|
+
*
|
|
174
|
+
* transport.subscribeToJob("fij_extract_789");
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* Transport configuration
|
|
180
|
+
*/
|
|
181
|
+
interface FullIngestTransportConfig {
|
|
182
|
+
/** Base URL for the API */
|
|
183
|
+
baseUrl: string;
|
|
184
|
+
/** Organization ID */
|
|
185
|
+
orgId: string;
|
|
186
|
+
/** Optional graph ID */
|
|
187
|
+
graphId?: string;
|
|
188
|
+
/** User ID for authentication */
|
|
189
|
+
userId?: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Transport options
|
|
193
|
+
*/
|
|
194
|
+
interface FullIngestTransportOptions {
|
|
195
|
+
/** Enable debug logging */
|
|
196
|
+
debug?: boolean;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Event for extraction progress
|
|
200
|
+
*/
|
|
201
|
+
interface FullIngestProgressEvent {
|
|
202
|
+
type: "progress";
|
|
203
|
+
currentPage: number;
|
|
204
|
+
totalPages: number;
|
|
205
|
+
timestamp: number;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Event when a node is extracted
|
|
209
|
+
*/
|
|
210
|
+
interface FullIngestNodeEvent {
|
|
211
|
+
type: "node";
|
|
212
|
+
id: string;
|
|
213
|
+
label: string;
|
|
214
|
+
fields: Record<string, unknown>;
|
|
215
|
+
timestamp: number;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Event when consolidation is starting
|
|
219
|
+
*/
|
|
220
|
+
interface FullIngestConsolidatingEvent {
|
|
221
|
+
type: "consolidating";
|
|
222
|
+
message: string;
|
|
223
|
+
rawCount?: number;
|
|
224
|
+
timestamp: number;
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Event when consolidation progress updates
|
|
228
|
+
*/
|
|
229
|
+
interface FullIngestConsolidateProgressEvent {
|
|
230
|
+
type: "consolidate_progress";
|
|
231
|
+
message: string;
|
|
232
|
+
timestamp: number;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Event when consolidation completes
|
|
236
|
+
*/
|
|
237
|
+
interface FullIngestConsolidatedEvent {
|
|
238
|
+
type: "consolidated";
|
|
239
|
+
totalNodes: number;
|
|
240
|
+
mergedCount: number;
|
|
241
|
+
message: string;
|
|
242
|
+
timestamp: number;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Event when linking/relationship extraction starts
|
|
246
|
+
*/
|
|
247
|
+
interface FullIngestLinkingEvent {
|
|
248
|
+
type: "linking";
|
|
249
|
+
message: string;
|
|
250
|
+
timestamp: number;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Event when linking completes
|
|
254
|
+
*/
|
|
255
|
+
interface FullIngestLinkedEvent {
|
|
256
|
+
type: "linked";
|
|
257
|
+
message: string;
|
|
258
|
+
timestamp: number;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Event when an edge is extracted
|
|
262
|
+
*/
|
|
263
|
+
interface FullIngestEdgeEvent {
|
|
264
|
+
type: "edge";
|
|
265
|
+
id: string;
|
|
266
|
+
fromLabel: string;
|
|
267
|
+
fromName: string;
|
|
268
|
+
toLabel: string;
|
|
269
|
+
toName: string;
|
|
270
|
+
edgeLabel: string;
|
|
271
|
+
confidence: number;
|
|
272
|
+
timestamp: number;
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Event when extraction completes
|
|
276
|
+
*/
|
|
277
|
+
interface FullIngestCompleteEvent {
|
|
278
|
+
type: "complete";
|
|
279
|
+
totalNodes: number;
|
|
280
|
+
totalEdges?: number;
|
|
281
|
+
message?: string;
|
|
282
|
+
timestamp: number;
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Event when extraction encounters an error
|
|
286
|
+
*/
|
|
287
|
+
interface FullIngestErrorEvent {
|
|
288
|
+
type: "error";
|
|
289
|
+
message: string;
|
|
290
|
+
timestamp: number;
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Event when ingestion to KG starts
|
|
294
|
+
*/
|
|
295
|
+
interface FullIngestIngestingEvent {
|
|
296
|
+
type: "ingesting";
|
|
297
|
+
message: string;
|
|
298
|
+
totalNodes: number;
|
|
299
|
+
totalEdges: number;
|
|
300
|
+
timestamp: number;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Event for ingestion progress (node/edge being ingested)
|
|
304
|
+
*/
|
|
305
|
+
interface FullIngestIngestProgressEvent {
|
|
306
|
+
type: "ingest_progress";
|
|
307
|
+
message: string;
|
|
308
|
+
currentNode: number;
|
|
309
|
+
totalNodes: number;
|
|
310
|
+
currentEdge: number;
|
|
311
|
+
totalEdges: number;
|
|
312
|
+
timestamp: number;
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Event when ingestion to KG completes
|
|
316
|
+
*/
|
|
317
|
+
interface FullIngestIngestCompleteEvent {
|
|
318
|
+
type: "ingest_complete";
|
|
319
|
+
message: string;
|
|
320
|
+
nodesIngested: number;
|
|
321
|
+
edgesIngested: number;
|
|
322
|
+
timestamp: number;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Union of all full ingest events
|
|
326
|
+
*/
|
|
327
|
+
type FullIngestEvent = FullIngestProgressEvent | FullIngestNodeEvent | FullIngestConsolidatingEvent | FullIngestConsolidateProgressEvent | FullIngestConsolidatedEvent | FullIngestLinkingEvent | FullIngestLinkedEvent | FullIngestEdgeEvent | FullIngestCompleteEvent | FullIngestErrorEvent | FullIngestIngestingEvent | FullIngestIngestProgressEvent | FullIngestIngestCompleteEvent;
|
|
328
|
+
/**
|
|
329
|
+
* Event handler function type
|
|
330
|
+
*/
|
|
331
|
+
type FullIngestEventHandler<T = FullIngestEvent> = (event: T) => void;
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Full Ingest Transport interface
|
|
335
|
+
*/
|
|
336
|
+
interface FullIngestTransport {
|
|
337
|
+
/**
|
|
338
|
+
* Connect to the transport
|
|
339
|
+
*/
|
|
340
|
+
connect(options: KGApiOptions): Promise<void>;
|
|
341
|
+
/**
|
|
342
|
+
* Subscribe to a specific job's events
|
|
343
|
+
*/
|
|
344
|
+
subscribeToJob(jobId: string): void;
|
|
345
|
+
/**
|
|
346
|
+
* Subscribe to specific event type
|
|
347
|
+
*/
|
|
348
|
+
on<T extends FullIngestEvent["type"]>(eventType: T, handler: FullIngestEventHandler<Extract<FullIngestEvent, {
|
|
349
|
+
type: T;
|
|
350
|
+
}>>): Unsubscribe;
|
|
351
|
+
/**
|
|
352
|
+
* Disconnect from the transport
|
|
353
|
+
*/
|
|
354
|
+
disconnect(): void;
|
|
355
|
+
/**
|
|
356
|
+
* Get current connection state
|
|
357
|
+
*/
|
|
358
|
+
getState(): "disconnected" | "connecting" | "connected";
|
|
359
|
+
}
|
|
360
|
+
/**
|
|
361
|
+
* Create a Full Ingest SSE transport
|
|
362
|
+
*/
|
|
363
|
+
declare function createFullIngestTransport(options?: FullIngestTransportOptions): FullIngestTransport;
|
|
364
|
+
|
|
365
|
+
export { type FullIngestCompleteEvent, type FullIngestConsolidateProgressEvent, type FullIngestConsolidatedEvent, type FullIngestConsolidatingEvent, type FullIngestEdgeEvent, type FullIngestErrorEvent, type FullIngestEvent, type FullIngestEventHandler, type FullIngestIngestCompleteEvent, type FullIngestIngestProgressEvent, type FullIngestIngestingEvent, type FullIngestLinkedEvent, type FullIngestLinkingEvent, type FullIngestNodeEvent, type FullIngestProgressEvent, type FullIngestTransport, type FullIngestTransportConfig, type FullIngestTransportOptions, type QuickIngestEvent, type QuickIngestEventHandler, type QuickIngestItemCompleteEvent, type QuickIngestItemErrorEvent, type QuickIngestItemProgressEvent, type QuickIngestItemStartEvent, type QuickIngestJobCompleteEvent, type QuickIngestTransport, type QuickIngestTransportConfig, type QuickIngestTransportOptions, type Unsubscribe, createFullIngestTransport, createQuickIngestTransport };
|