@lidia.poet/sdk 0.2.1 → 0.3.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.
package/dist/index.js CHANGED
@@ -41,6 +41,7 @@ __export(index_exports, {
41
41
  LidiaClient: () => LidiaClient,
42
42
  LidiaError: () => LidiaError,
43
43
  LidiaSDK: () => LidiaSDK,
44
+ LidiaWebSocket: () => LidiaWebSocket,
44
45
  MessageSenderType: () => MessageSenderType,
45
46
  MessageService: () => MessageService,
46
47
  MessageStatus: () => MessageStatus,
@@ -342,6 +343,312 @@ var LidiaClient = class {
342
343
  }
343
344
  };
344
345
 
346
+ // src/client/LidiaWebSocket.ts
347
+ var LidiaWebSocket = class {
348
+ constructor(config) {
349
+ this.ws = null;
350
+ this.state = "disconnected";
351
+ this.pingTimer = null;
352
+ this.reconnectTimer = null;
353
+ this.reconnectAttempts = 0;
354
+ this.intentionalClose = false;
355
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
356
+ this.listeners = /* @__PURE__ */ new Map();
357
+ this.wildcardListeners = /* @__PURE__ */ new Set();
358
+ this.config = {
359
+ wsUrl: config.wsUrl,
360
+ accessToken: config.accessToken,
361
+ debug: config.debug ?? false,
362
+ pingInterval: config.pingInterval ?? 3e4,
363
+ reconnectDelay: config.reconnectDelay ?? 2e3,
364
+ maxReconnectAttempts: config.maxReconnectAttempts ?? 10
365
+ };
366
+ }
367
+ /** Current connection state */
368
+ getState() {
369
+ return this.state;
370
+ }
371
+ /** Connect to the WebSocket server */
372
+ connect() {
373
+ if (this.state !== "disconnected") return;
374
+ this.intentionalClose = false;
375
+ this.state = "connecting";
376
+ this.log("Connecting to", this.config.wsUrl);
377
+ this.ws = new WebSocket(this.config.wsUrl, [
378
+ "Authorization",
379
+ this.config.accessToken
380
+ ]);
381
+ this.ws.onopen = () => {
382
+ this.state = "connected";
383
+ this.reconnectAttempts = 0;
384
+ this.startPing();
385
+ this.log("Connected");
386
+ this.emit("_connected", {});
387
+ };
388
+ this.ws.onmessage = (event) => {
389
+ this.handleMessage(event);
390
+ };
391
+ this.ws.onclose = () => {
392
+ this.cleanup();
393
+ this.log("Disconnected");
394
+ this.emit("_disconnected", {});
395
+ if (!this.intentionalClose) {
396
+ this.scheduleReconnect();
397
+ }
398
+ };
399
+ this.ws.onerror = (error) => {
400
+ this.log("WebSocket error", error);
401
+ this.emit("_error", { error });
402
+ };
403
+ }
404
+ /** Disconnect from the WebSocket server */
405
+ disconnect() {
406
+ this.intentionalClose = true;
407
+ this.cleanup();
408
+ if (this.ws) {
409
+ this.ws.close();
410
+ this.ws = null;
411
+ }
412
+ this.state = "disconnected";
413
+ }
414
+ /** Update the access token (e.g. after refresh) */
415
+ updateToken(accessToken) {
416
+ this.config.accessToken = accessToken;
417
+ if (this.state === "connected") {
418
+ this.disconnect();
419
+ this.connect();
420
+ }
421
+ }
422
+ /** Subscribe to a specific event type */
423
+ on(action, listener) {
424
+ if (!this.listeners.has(action)) {
425
+ this.listeners.set(action, /* @__PURE__ */ new Set());
426
+ }
427
+ this.listeners.get(action).add(listener);
428
+ return () => {
429
+ var _a;
430
+ (_a = this.listeners.get(action)) == null ? void 0 : _a.delete(listener);
431
+ };
432
+ }
433
+ /** Subscribe to all events */
434
+ onAny(listener) {
435
+ this.wildcardListeners.add(listener);
436
+ return () => {
437
+ this.wildcardListeners.delete(listener);
438
+ };
439
+ }
440
+ /** Subscribe to internal lifecycle events */
441
+ onState(event, listener) {
442
+ const wrappedListener = listener;
443
+ if (!this.listeners.has(event)) {
444
+ this.listeners.set(event, /* @__PURE__ */ new Set());
445
+ }
446
+ this.listeners.get(event).add(wrappedListener);
447
+ return () => {
448
+ var _a;
449
+ (_a = this.listeners.get(event)) == null ? void 0 : _a.delete(wrappedListener);
450
+ };
451
+ }
452
+ /**
453
+ * Wait for a specific event matching a filter.
454
+ * Resolves with the first matching event, or rejects on timeout.
455
+ */
456
+ waitFor(action, filter, timeoutMs = 6e4) {
457
+ return new Promise((resolve, reject) => {
458
+ const timer = setTimeout(() => {
459
+ unsub();
460
+ reject(new Error(`Timeout waiting for event "${action}"`));
461
+ }, timeoutMs);
462
+ const unsub = this.on(action, (event) => {
463
+ if (!filter || filter(event)) {
464
+ clearTimeout(timer);
465
+ unsub();
466
+ resolve(event);
467
+ }
468
+ });
469
+ });
470
+ }
471
+ /**
472
+ * Collect streaming delta events for a specific message into an AsyncGenerator.
473
+ * Yields each delta text chunk and returns the full accumulated text.
474
+ */
475
+ async *streamMessage(conversationId, messageId, timeoutMs = 12e4) {
476
+ let accumulated = "";
477
+ let done = false;
478
+ let error = null;
479
+ const chunks = [];
480
+ let resolve = null;
481
+ const onChunk = () => {
482
+ if (resolve) {
483
+ resolve();
484
+ resolve = null;
485
+ }
486
+ };
487
+ const matchesMessage = (e) => e.conversationId === conversationId && e.messageId === messageId;
488
+ const unsubs = [
489
+ this.on("streaming.message.delta", (e) => {
490
+ if (matchesMessage(e)) {
491
+ chunks.push(e.eventText);
492
+ onChunk();
493
+ }
494
+ }),
495
+ this.on("streaming.message.stop", (e) => {
496
+ if (matchesMessage(e)) {
497
+ done = true;
498
+ onChunk();
499
+ }
500
+ }),
501
+ this.on("streaming.message.error", (e) => {
502
+ if (matchesMessage(e)) {
503
+ error = e.error;
504
+ done = true;
505
+ onChunk();
506
+ }
507
+ }),
508
+ this.on("streaming.smart_answer.delta", (e) => {
509
+ if (matchesMessage(e)) {
510
+ chunks.push(e.eventText);
511
+ onChunk();
512
+ }
513
+ }),
514
+ this.on("streaming.smart_answer.stop", (e) => {
515
+ if (matchesMessage(e)) {
516
+ done = true;
517
+ onChunk();
518
+ }
519
+ }),
520
+ this.on("streaming.smart_answer.error", (e) => {
521
+ if (matchesMessage(e)) {
522
+ error = e.eventText;
523
+ done = true;
524
+ onChunk();
525
+ }
526
+ }),
527
+ this.on("streaming.legal_search.message_delta", (e) => {
528
+ if (matchesMessage(e)) {
529
+ chunks.push(e.eventText);
530
+ onChunk();
531
+ }
532
+ }),
533
+ this.on("streaming.legal_search.stop", (e) => {
534
+ if (matchesMessage(e)) {
535
+ done = true;
536
+ onChunk();
537
+ }
538
+ }),
539
+ this.on("streaming.legal_search.error", (e) => {
540
+ if (matchesMessage(e)) {
541
+ done = true;
542
+ error = "Legal search error";
543
+ onChunk();
544
+ }
545
+ }),
546
+ this.on("conversation.message.new", (e) => {
547
+ if (matchesMessage(e)) {
548
+ done = true;
549
+ onChunk();
550
+ }
551
+ })
552
+ ];
553
+ const timeout = setTimeout(() => {
554
+ error = "Stream timeout";
555
+ done = true;
556
+ onChunk();
557
+ }, timeoutMs);
558
+ try {
559
+ while (!done) {
560
+ if (chunks.length === 0) {
561
+ await new Promise((r) => {
562
+ resolve = r;
563
+ });
564
+ }
565
+ while (chunks.length > 0) {
566
+ const chunk = chunks.shift();
567
+ accumulated += chunk;
568
+ yield chunk;
569
+ }
570
+ }
571
+ if (error) {
572
+ throw new Error(error);
573
+ }
574
+ return accumulated;
575
+ } finally {
576
+ clearTimeout(timeout);
577
+ unsubs.forEach((unsub) => unsub());
578
+ }
579
+ }
580
+ // ── Private ──────────────────────────────────────────────
581
+ handleMessage(event) {
582
+ let data;
583
+ try {
584
+ data = JSON.parse(String(event.data));
585
+ } catch {
586
+ this.log("Failed to parse WS message:", event.data);
587
+ return;
588
+ }
589
+ if (!data.action) return;
590
+ this.log("Event:", data.action);
591
+ const actionListeners = this.listeners.get(data.action);
592
+ if (actionListeners) {
593
+ for (const listener of actionListeners) {
594
+ listener(data);
595
+ }
596
+ }
597
+ for (const listener of this.wildcardListeners) {
598
+ listener(data);
599
+ }
600
+ }
601
+ emit(action, event) {
602
+ const actionListeners = this.listeners.get(action);
603
+ if (actionListeners) {
604
+ for (const listener of actionListeners) {
605
+ listener(event);
606
+ }
607
+ }
608
+ }
609
+ startPing() {
610
+ this.stopPing();
611
+ this.pingTimer = setInterval(() => {
612
+ var _a;
613
+ if (((_a = this.ws) == null ? void 0 : _a.readyState) === WebSocket.OPEN) {
614
+ this.ws.send(JSON.stringify({ action: "ping" }));
615
+ }
616
+ }, this.config.pingInterval);
617
+ }
618
+ stopPing() {
619
+ if (this.pingTimer) {
620
+ clearInterval(this.pingTimer);
621
+ this.pingTimer = null;
622
+ }
623
+ }
624
+ cleanup() {
625
+ this.stopPing();
626
+ if (this.reconnectTimer) {
627
+ clearTimeout(this.reconnectTimer);
628
+ this.reconnectTimer = null;
629
+ }
630
+ }
631
+ scheduleReconnect() {
632
+ if (this.config.maxReconnectAttempts === 0) return;
633
+ if (this.reconnectAttempts >= this.config.maxReconnectAttempts) {
634
+ this.log("Max reconnect attempts reached");
635
+ return;
636
+ }
637
+ this.reconnectAttempts++;
638
+ const delay = this.config.reconnectDelay * Math.pow(2, this.reconnectAttempts - 1);
639
+ this.log(`Reconnecting in ${delay}ms (attempt ${this.reconnectAttempts}/${this.config.maxReconnectAttempts})`);
640
+ this.reconnectTimer = setTimeout(() => {
641
+ this.state = "disconnected";
642
+ this.connect();
643
+ }, delay);
644
+ }
645
+ log(...args) {
646
+ if (this.config.debug) {
647
+ console.log("[Lidia WS]", ...args);
648
+ }
649
+ }
650
+ };
651
+
345
652
  // src/services/AuthorizationService.ts
346
653
  var AuthorizationService = class {
347
654
  // Refresh 5 minutes before expiry
@@ -935,6 +1242,11 @@ var LegisratioService = class {
935
1242
  var MessageService = class {
936
1243
  constructor(client) {
937
1244
  this.client = client;
1245
+ this.ws = null;
1246
+ }
1247
+ /** Inject WebSocket reference (called by LidiaSDK) */
1248
+ setWebSocket(ws) {
1249
+ this.ws = ws;
938
1250
  }
939
1251
  /** List messages with pagination */
940
1252
  async find(params) {
@@ -969,10 +1281,45 @@ var MessageService = class {
969
1281
  async getUrlRegistry(id, urlRegistryKey) {
970
1282
  return this.client.get(`/messages/${id}/url-registry/${urlRegistryKey}`);
971
1283
  }
1284
+ /** Get message status (lightweight polling endpoint) */
1285
+ async getStatus(id) {
1286
+ return this.client.get(`/messages/${id}/status`);
1287
+ }
972
1288
  /** Export a specific message */
973
1289
  async export(id, exportType, exportMedium) {
974
1290
  return this.client.post(`/messages/${id}/export/${exportType}/${exportMedium}`);
975
1291
  }
1292
+ /**
1293
+ * Create a message and stream the response via WebSocket.
1294
+ * Yields each text chunk as it arrives. The return value is the full accumulated text.
1295
+ *
1296
+ * Requires an active WebSocket connection (sdk.connectWebSocket()).
1297
+ *
1298
+ * @example
1299
+ * ```ts
1300
+ * await sdk.connectWebSocket();
1301
+ * const stream = sdk.messages.createAndStream({
1302
+ * conversationId: 'conv-123',
1303
+ * conversationType: 'smartAnswer',
1304
+ * message: 'What are the key terms?',
1305
+ * relevantDocumentIds: ['doc-1'],
1306
+ * });
1307
+ *
1308
+ * for await (const chunk of stream) {
1309
+ * process.stdout.write(chunk);
1310
+ * }
1311
+ * ```
1312
+ */
1313
+ async *createAndStream(data, timeoutMs = 12e4) {
1314
+ if (!this.ws) {
1315
+ throw new Error(
1316
+ "WebSocket not connected. Call sdk.connectWebSocket() before using createAndStream()."
1317
+ );
1318
+ }
1319
+ const message = await this.create(data);
1320
+ yield* this.ws.streamMessage(data.conversationId, message.id, timeoutMs);
1321
+ return "";
1322
+ }
976
1323
  };
977
1324
 
978
1325
  // src/services/NotificationService.ts
@@ -1172,16 +1519,19 @@ var WorkflowService = class {
1172
1519
  var ENVIRONMENT_PRESETS = {
1173
1520
  ["Production" /* PRODUCTION */]: {
1174
1521
  baseUrl: "https://api.lidiatech.ai",
1522
+ wsUrl: "wss://ws.lidiatech.ai",
1175
1523
  region: "eu-central-1",
1176
1524
  clientId: "10lnfbvtu9lrg1ujeemf2uk0sa"
1177
1525
  },
1178
1526
  ["Development" /* DEVELOPMENT */]: {
1179
1527
  baseUrl: "https://api.dev.lidiatech.ai",
1528
+ wsUrl: "wss://ws.dev.lidiatech.ai",
1180
1529
  region: "eu-west-1",
1181
1530
  clientId: "4uep6n7bmk8o1b7hs7e5ts7u9"
1182
1531
  },
1183
1532
  ["Staging" /* STAGING */]: {
1184
1533
  baseUrl: "https://api.staging.lidiatech.ai",
1534
+ wsUrl: "wss://ws.staging.lidiatech.ai",
1185
1535
  region: "eu-west-1",
1186
1536
  clientId: "5og664h80v1tv1md0fsgtmln2u"
1187
1537
  }
@@ -1214,8 +1564,10 @@ function isNodeEnvironment() {
1214
1564
 
1215
1565
  // src/LidiaSDK.ts
1216
1566
  var LidiaSDK = class {
1217
- constructor(config) {
1218
- const mergedConfig = this.mergeConfigWithEnv(config);
1567
+ constructor(config = {}) {
1568
+ /** WebSocket client for real-time events (available after connectWebSocket()) */
1569
+ this.ws = null;
1570
+ const mergedConfig = this.mergedConfig = this.mergeConfigWithEnv(config);
1219
1571
  this.client = new LidiaClient(mergedConfig);
1220
1572
  this.cases = new CaseService(this.client);
1221
1573
  this.conversations = new ConversationService(this.client);
@@ -1278,6 +1630,13 @@ var LidiaSDK = class {
1278
1630
  }
1279
1631
  }
1280
1632
  }
1633
+ if (!mergedConfig.wsUrl) {
1634
+ if (isNodeEnvironment()) {
1635
+ mergedConfig.wsUrl = process.env["LIDIA_WS_URL"] ?? preset.wsUrl;
1636
+ } else {
1637
+ mergedConfig.wsUrl = preset.wsUrl;
1638
+ }
1639
+ }
1281
1640
  if (!mergedConfig.baseUrl) {
1282
1641
  mergedConfig.baseUrl = preset.baseUrl;
1283
1642
  }
@@ -1353,6 +1712,39 @@ var LidiaSDK = class {
1353
1712
  getClient() {
1354
1713
  return this.client;
1355
1714
  }
1715
+ /**
1716
+ * Connect to Lidia WebSocket for real-time events (streaming messages, document updates, etc.).
1717
+ * Requires authentication (call login() or waitForAuthentication() first).
1718
+ */
1719
+ connectWebSocket(options) {
1720
+ const tokens = this.getAuthTokens();
1721
+ if (!(tokens == null ? void 0 : tokens.accessToken)) {
1722
+ throw new Error("Cannot connect WebSocket: not authenticated. Call login() or waitForAuthentication() first.");
1723
+ }
1724
+ const wsUrl = this.mergedConfig.wsUrl;
1725
+ if (!wsUrl) {
1726
+ throw new Error("WebSocket URL not configured. Set wsUrl in config or LIDIA_WS_URL env var.");
1727
+ }
1728
+ if (this.ws) {
1729
+ this.ws.disconnect();
1730
+ }
1731
+ this.ws = new LidiaWebSocket({
1732
+ wsUrl,
1733
+ accessToken: tokens.accessToken,
1734
+ debug: this.mergedConfig.debug,
1735
+ ...options
1736
+ });
1737
+ this.messages.setWebSocket(this.ws);
1738
+ this.ws.connect();
1739
+ return this.ws;
1740
+ }
1741
+ /** Disconnect WebSocket */
1742
+ disconnectWebSocket() {
1743
+ if (this.ws) {
1744
+ this.ws.disconnect();
1745
+ this.ws = null;
1746
+ }
1747
+ }
1356
1748
  };
1357
1749
 
1358
1750
  // src/types/case.ts
@@ -1426,6 +1818,8 @@ var MessageSenderType = /* @__PURE__ */ ((MessageSenderType2) => {
1426
1818
  })(MessageSenderType || {});
1427
1819
  var MessageStatus = /* @__PURE__ */ ((MessageStatus2) => {
1428
1820
  MessageStatus2["PROCESSING"] = "PROCESSING";
1821
+ MessageStatus2["STREAMING"] = "STREAMING";
1822
+ MessageStatus2["LOADING_SOURCES"] = "LOADING_SOURCES";
1429
1823
  MessageStatus2["DONE"] = "DONE";
1430
1824
  MessageStatus2["FAILED"] = "FAILED";
1431
1825
  MessageStatus2["CANCELED"] = "CANCELED";
@@ -1507,6 +1901,7 @@ var ValidationError = class _ValidationError extends Error {
1507
1901
  LidiaClient,
1508
1902
  LidiaError,
1509
1903
  LidiaSDK,
1904
+ LidiaWebSocket,
1510
1905
  MessageSenderType,
1511
1906
  MessageService,
1512
1907
  MessageStatus,
@@ -1,8 +1,12 @@
1
1
  import { LidiaClient } from '../client/LidiaClient';
2
+ import { LidiaWebSocket } from '../client/LidiaWebSocket';
2
3
  import { MessageDto, MessageListResponseDto, ShowMessageResponse, MessageQueryParams, CreateMessageDto, ContinueMessageDto, PatchMessageDto, CitationDto } from '../types/message';
3
4
  export declare class MessageService {
4
5
  private client;
6
+ private ws;
5
7
  constructor(client: LidiaClient);
8
+ /** Inject WebSocket reference (called by LidiaSDK) */
9
+ setWebSocket(ws: LidiaWebSocket): void;
6
10
  /** List messages with pagination */
7
11
  find(params: MessageQueryParams): Promise<MessageListResponseDto>;
8
12
  /** Get message by ID */
@@ -21,7 +25,31 @@ export declare class MessageService {
21
25
  getUrlRegistry(id: string, urlRegistryKey: string): Promise<{
22
26
  url: string;
23
27
  }>;
28
+ /** Get message status (lightweight polling endpoint) */
29
+ getStatus(id: string): Promise<ShowMessageResponse>;
24
30
  /** Export a specific message */
25
31
  export(id: string, exportType: string, exportMedium: string): Promise<void>;
32
+ /**
33
+ * Create a message and stream the response via WebSocket.
34
+ * Yields each text chunk as it arrives. The return value is the full accumulated text.
35
+ *
36
+ * Requires an active WebSocket connection (sdk.connectWebSocket()).
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * await sdk.connectWebSocket();
41
+ * const stream = sdk.messages.createAndStream({
42
+ * conversationId: 'conv-123',
43
+ * conversationType: 'smartAnswer',
44
+ * message: 'What are the key terms?',
45
+ * relevantDocumentIds: ['doc-1'],
46
+ * });
47
+ *
48
+ * for await (const chunk of stream) {
49
+ * process.stdout.write(chunk);
50
+ * }
51
+ * ```
52
+ */
53
+ createAndStream(data: CreateMessageDto, timeoutMs?: number): AsyncGenerator<string, string, undefined>;
26
54
  }
27
55
  //# sourceMappingURL=MessageService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,cAAc;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,WAAW;IAEvC,oCAAoC;IAC9B,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKvE,wBAAwB;IAClB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIvD,2BAA2B;IACrB,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIzD,kCAAkC;IAC5B,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpE,6CAA6C;IACvC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,yCAAyC;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,uCAAuC;IACjC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxE,6CAA6C;IACvC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAIlF,gCAAgC;IAC1B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlF"}
1
+ {"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,cAAc;IAGb,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,EAAE,CAA+B;gBAErB,MAAM,EAAE,WAAW;IAEvC,sDAAsD;IACtD,YAAY,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI;IAItC,oCAAoC;IAC9B,IAAI,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKvE,wBAAwB;IAClB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIvD,2BAA2B;IACrB,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIzD,kCAAkC;IAC5B,eAAe,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpE,6CAA6C;IACvC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,yCAAyC;IACnC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,uCAAuC;IACjC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIxE,6CAA6C;IACvC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAIlF,wDAAwD;IAClD,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIzD,gCAAgC;IAC1B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjF;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,eAAe,CACpB,IAAI,EAAE,gBAAgB,EACtB,SAAS,SAAU,GAClB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;CAe7C"}
@@ -7,6 +7,8 @@ export declare enum LidiaEnvironment {
7
7
  export interface LidiaConfig {
8
8
  /** Base URL for the Lidia API */
9
9
  baseUrl?: string;
10
+ /** WebSocket URL for real-time events (auto-resolved from environment if not set) */
11
+ wsUrl?: string;
10
12
  /** Deployment environment (Production, Development, Staging). Defaults to Production. */
11
13
  environment?: LidiaEnvironment;
12
14
  /** OAuth access token (set automatically after login) */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,oBAAY,gBAAgB;IAC1B,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,OAAO,CAAC,EAAE;QACR,iBAAiB;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,wBAAwB;QACxB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0BAA0B;IAC1B,KAAK,CAAC,EAAE;QACN,+BAA+B;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,4CAA4C;QAC5C,KAAK,EAAE,MAAM,CAAC;QACd,0CAA0C;QAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,oBAAY,gBAAgB;IAC1B,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yFAAyF;IACzF,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,OAAO,CAAC,EAAE;QACR,iBAAiB;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,wBAAwB;QACxB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2BAA2B;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0BAA0B;IAC1B,KAAK,CAAC,EAAE;QACN,+BAA+B;QAC/B,QAAQ,EAAE,MAAM,CAAC;QACjB,4CAA4C;QAC5C,KAAK,EAAE,MAAM,CAAC;QACd,0CAA0C;QAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH"}
@@ -6,6 +6,8 @@ export declare enum MessageSenderType {
6
6
  }
7
7
  export declare enum MessageStatus {
8
8
  PROCESSING = "PROCESSING",
9
+ STREAMING = "STREAMING",
10
+ LOADING_SOURCES = "LOADING_SOURCES",
9
11
  DONE = "DONE",
10
12
  FAILED = "FAILED",
11
13
  CANCELED = "CANCELED"
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"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"}