@trainly/react 1.4.2 → 1.4.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.
@@ -246,7 +246,7 @@ export function TrainlyProvider(_a) {
246
246
  }
247
247
  });
248
248
  }); };
249
- var ask = function (question) { return __awaiter(_this, void 0, void 0, function () {
249
+ var ask = function (question, options) { return __awaiter(_this, void 0, void 0, function () {
250
250
  var response, err_3, errorMessage, newToken, response, refreshError_1, error_3;
251
251
  return __generator(this, function (_a) {
252
252
  switch (_a.label) {
@@ -254,10 +254,10 @@ export function TrainlyProvider(_a) {
254
254
  _a.trys.push([0, 2, 10, 11]);
255
255
  setIsLoading(true);
256
256
  setError(null);
257
- return [4 /*yield*/, client.ask(question)];
257
+ return [4 /*yield*/, client.ask(question, options || {})];
258
258
  case 1:
259
259
  response = _a.sent();
260
- return [2 /*return*/, response.answer];
260
+ return [2 /*return*/, response];
261
261
  case 2:
262
262
  err_3 = _a.sent();
263
263
  errorMessage = err_3 instanceof Error ? err_3.message : String(err_3);
@@ -277,11 +277,11 @@ export function TrainlyProvider(_a) {
277
277
  return [4 /*yield*/, client.connectWithOAuthToken(newToken)];
278
278
  case 5:
279
279
  _a.sent();
280
- return [4 /*yield*/, client.ask(question)];
280
+ return [4 /*yield*/, client.ask(question, options || {})];
281
281
  case 6:
282
282
  response = _a.sent();
283
283
  console.log("✅ Query succeeded after token refresh");
284
- return [2 /*return*/, response.answer];
284
+ return [2 /*return*/, response];
285
285
  case 7: return [3 /*break*/, 9];
286
286
  case 8:
287
287
  refreshError_1 = _a.sent();
@@ -302,95 +302,23 @@ export function TrainlyProvider(_a) {
302
302
  }
303
303
  });
304
304
  }); };
305
- var askWithOptions = function (question, options) { return __awaiter(_this, void 0, void 0, function () {
306
- var response, err_4, errorMessage, newToken, response, refreshError_2, error_4;
307
- return __generator(this, function (_a) {
308
- switch (_a.label) {
309
- case 0:
310
- _a.trys.push([0, 2, 10, 11]);
311
- setIsLoading(true);
312
- setError(null);
313
- return [4 /*yield*/, client.ask(question, options || {})];
314
- case 1:
315
- response = _a.sent();
316
- return [2 /*return*/, response];
317
- case 2:
318
- err_4 = _a.sent();
319
- errorMessage = err_4 instanceof Error ? err_4.message : String(err_4);
320
- if (!(getToken &&
321
- appId &&
322
- (errorMessage.includes("401") ||
323
- errorMessage.includes("authentication") ||
324
- errorMessage.includes("Unauthorized")))) return [3 /*break*/, 9];
325
- _a.label = 3;
326
- case 3:
327
- _a.trys.push([3, 8, , 9]);
328
- console.log("🔄 Token expired, refreshing...");
329
- return [4 /*yield*/, getToken()];
330
- case 4:
331
- newToken = _a.sent();
332
- if (!newToken) return [3 /*break*/, 7];
333
- return [4 /*yield*/, client.connectWithOAuthToken(newToken)];
334
- case 5:
335
- _a.sent();
336
- return [4 /*yield*/, client.ask(question, options || {})];
337
- case 6:
338
- response = _a.sent();
339
- console.log("✅ Query succeeded after token refresh");
340
- return [2 /*return*/, response];
341
- case 7: return [3 /*break*/, 9];
342
- case 8:
343
- refreshError_2 = _a.sent();
344
- console.error("❌ Token refresh failed:", refreshError_2);
345
- return [3 /*break*/, 9];
346
- case 9:
347
- error_4 = {
348
- code: "QUERY_FAILED",
349
- message: "Failed to get answer",
350
- details: err_4,
351
- };
352
- setError(error_4);
353
- throw error_4;
354
- case 10:
355
- setIsLoading(false);
356
- return [7 /*endfinally*/];
357
- case 11: return [2 /*return*/];
358
- }
359
- });
360
- }); };
305
+ // Legacy wrapper for backward compatibility (deprecated - use ask() with options instead)
361
306
  var askWithCitations = function (question) { return __awaiter(_this, void 0, void 0, function () {
362
- var response, err_5, error_5;
307
+ var response;
363
308
  return __generator(this, function (_a) {
364
309
  switch (_a.label) {
365
- case 0:
366
- _a.trys.push([0, 2, 3, 4]);
367
- setIsLoading(true);
368
- setError(null);
369
- return [4 /*yield*/, client.ask(question, { includeCitations: true })];
310
+ case 0: return [4 /*yield*/, ask(question, { includeCitations: true })];
370
311
  case 1:
371
312
  response = _a.sent();
372
313
  return [2 /*return*/, {
373
314
  answer: response.answer,
374
315
  citations: response.citations || [],
375
316
  }];
376
- case 2:
377
- err_5 = _a.sent();
378
- error_5 = {
379
- code: "QUERY_FAILED",
380
- message: "Failed to get answer with citations",
381
- details: err_5,
382
- };
383
- setError(error_5);
384
- throw error_5;
385
- case 3:
386
- setIsLoading(false);
387
- return [7 /*endfinally*/];
388
- case 4: return [2 /*return*/];
389
317
  }
390
318
  });
391
319
  }); };
392
320
  var upload = function (file, scopeValues) { return __awaiter(_this, void 0, void 0, function () {
393
- var result, err_6, errorMessage, newToken, result, refreshError_3, error_6;
321
+ var result, err_4, errorMessage, newToken, result, refreshError_2, error_4;
394
322
  return __generator(this, function (_a) {
395
323
  switch (_a.label) {
396
324
  case 0:
@@ -402,8 +330,8 @@ export function TrainlyProvider(_a) {
402
330
  result = _a.sent();
403
331
  return [2 /*return*/, result];
404
332
  case 2:
405
- err_6 = _a.sent();
406
- errorMessage = err_6 instanceof Error ? err_6.message : String(err_6);
333
+ err_4 = _a.sent();
334
+ errorMessage = err_4 instanceof Error ? err_4.message : String(err_4);
407
335
  if (!(getToken &&
408
336
  appId &&
409
337
  (errorMessage.includes("401") ||
@@ -427,17 +355,17 @@ export function TrainlyProvider(_a) {
427
355
  return [2 /*return*/, result];
428
356
  case 7: return [3 /*break*/, 9];
429
357
  case 8:
430
- refreshError_3 = _a.sent();
431
- console.error("❌ Token refresh failed:", refreshError_3);
358
+ refreshError_2 = _a.sent();
359
+ console.error("❌ Token refresh failed:", refreshError_2);
432
360
  return [3 /*break*/, 9];
433
361
  case 9:
434
- error_6 = {
362
+ error_4 = {
435
363
  code: "UPLOAD_FAILED",
436
364
  message: "Failed to upload file",
437
- details: err_6,
365
+ details: err_4,
438
366
  };
439
- setError(error_6);
440
- throw error_6;
367
+ setError(error_4);
368
+ throw error_4;
441
369
  case 10:
442
370
  setIsLoading(false);
443
371
  return [7 /*endfinally*/];
@@ -446,7 +374,7 @@ export function TrainlyProvider(_a) {
446
374
  });
447
375
  }); };
448
376
  var bulkUploadFiles = function (files, scopeValues) { return __awaiter(_this, void 0, void 0, function () {
449
- var result, err_7, errorMessage, newToken, result, refreshError_4, error_7;
377
+ var result, err_5, errorMessage, newToken, result, refreshError_3, error_5;
450
378
  return __generator(this, function (_a) {
451
379
  switch (_a.label) {
452
380
  case 0:
@@ -458,8 +386,8 @@ export function TrainlyProvider(_a) {
458
386
  result = _a.sent();
459
387
  return [2 /*return*/, result];
460
388
  case 2:
461
- err_7 = _a.sent();
462
- errorMessage = err_7 instanceof Error ? err_7.message : String(err_7);
389
+ err_5 = _a.sent();
390
+ errorMessage = err_5 instanceof Error ? err_5.message : String(err_5);
463
391
  if (!(getToken &&
464
392
  appId &&
465
393
  (errorMessage.includes("401") ||
@@ -483,17 +411,17 @@ export function TrainlyProvider(_a) {
483
411
  return [2 /*return*/, result];
484
412
  case 7: return [3 /*break*/, 9];
485
413
  case 8:
486
- refreshError_4 = _a.sent();
487
- console.error("❌ Token refresh failed during bulk upload:", refreshError_4);
414
+ refreshError_3 = _a.sent();
415
+ console.error("❌ Token refresh failed during bulk upload:", refreshError_3);
488
416
  return [3 /*break*/, 9];
489
417
  case 9:
490
- error_7 = {
418
+ error_5 = {
491
419
  code: "BULK_UPLOAD_FAILED",
492
420
  message: "Failed to upload files",
493
- details: err_7,
421
+ details: err_5,
494
422
  };
495
- setError(error_7);
496
- throw error_7;
423
+ setError(error_5);
424
+ throw error_5;
497
425
  case 10:
498
426
  setIsLoading(false);
499
427
  return [7 /*endfinally*/];
@@ -502,7 +430,7 @@ export function TrainlyProvider(_a) {
502
430
  });
503
431
  }); };
504
432
  var listFiles = function () { return __awaiter(_this, void 0, void 0, function () {
505
- var result, err_8, errorMessage, newToken, result, refreshError_5, error_8;
433
+ var result, err_6, errorMessage, newToken, result, refreshError_4, error_6;
506
434
  return __generator(this, function (_a) {
507
435
  switch (_a.label) {
508
436
  case 0:
@@ -514,8 +442,8 @@ export function TrainlyProvider(_a) {
514
442
  result = _a.sent();
515
443
  return [2 /*return*/, result];
516
444
  case 2:
517
- err_8 = _a.sent();
518
- errorMessage = err_8 instanceof Error ? err_8.message : String(err_8);
445
+ err_6 = _a.sent();
446
+ errorMessage = err_6 instanceof Error ? err_6.message : String(err_6);
519
447
  if (!(getToken &&
520
448
  appId &&
521
449
  (errorMessage.includes("401") ||
@@ -539,17 +467,17 @@ export function TrainlyProvider(_a) {
539
467
  return [2 /*return*/, result];
540
468
  case 7: return [3 /*break*/, 9];
541
469
  case 8:
542
- refreshError_5 = _a.sent();
543
- console.error("❌ Token refresh failed:", refreshError_5);
470
+ refreshError_4 = _a.sent();
471
+ console.error("❌ Token refresh failed:", refreshError_4);
544
472
  return [3 /*break*/, 9];
545
473
  case 9:
546
- error_8 = {
474
+ error_6 = {
547
475
  code: "LIST_FILES_FAILED",
548
476
  message: "Failed to list files",
549
- details: err_8,
477
+ details: err_6,
550
478
  };
551
- setError(error_8);
552
- throw error_8;
479
+ setError(error_6);
480
+ throw error_6;
553
481
  case 10:
554
482
  setIsLoading(false);
555
483
  return [7 /*endfinally*/];
@@ -558,7 +486,7 @@ export function TrainlyProvider(_a) {
558
486
  });
559
487
  }); };
560
488
  var deleteFile = function (fileId) { return __awaiter(_this, void 0, void 0, function () {
561
- var result, err_9, errorMessage, newToken, result, refreshError_6, error_9;
489
+ var result, err_7, errorMessage, newToken, result, refreshError_5, error_7;
562
490
  return __generator(this, function (_a) {
563
491
  switch (_a.label) {
564
492
  case 0:
@@ -570,8 +498,8 @@ export function TrainlyProvider(_a) {
570
498
  result = _a.sent();
571
499
  return [2 /*return*/, result];
572
500
  case 2:
573
- err_9 = _a.sent();
574
- errorMessage = err_9 instanceof Error ? err_9.message : String(err_9);
501
+ err_7 = _a.sent();
502
+ errorMessage = err_7 instanceof Error ? err_7.message : String(err_7);
575
503
  if (!(getToken &&
576
504
  appId &&
577
505
  (errorMessage.includes("401") ||
@@ -595,17 +523,17 @@ export function TrainlyProvider(_a) {
595
523
  return [2 /*return*/, result];
596
524
  case 7: return [3 /*break*/, 9];
597
525
  case 8:
598
- refreshError_6 = _a.sent();
599
- console.error("❌ Token refresh failed:", refreshError_6);
526
+ refreshError_5 = _a.sent();
527
+ console.error("❌ Token refresh failed:", refreshError_5);
600
528
  return [3 /*break*/, 9];
601
529
  case 9:
602
- error_9 = {
530
+ error_7 = {
603
531
  code: "DELETE_FILE_FAILED",
604
532
  message: "Failed to delete file",
605
- details: err_9,
533
+ details: err_7,
606
534
  };
607
- setError(error_9);
608
- throw error_9;
535
+ setError(error_7);
536
+ throw error_7;
609
537
  case 10:
610
538
  setIsLoading(false);
611
539
  return [7 /*endfinally*/];
@@ -614,7 +542,7 @@ export function TrainlyProvider(_a) {
614
542
  });
615
543
  }); };
616
544
  var sendMessage = function (content) { return __awaiter(_this, void 0, void 0, function () {
617
- var userMessage, response, assistantMessage_1, err_10;
545
+ var userMessage, response, assistantMessage_1, err_8;
618
546
  return __generator(this, function (_a) {
619
547
  switch (_a.label) {
620
548
  case 0:
@@ -641,9 +569,9 @@ export function TrainlyProvider(_a) {
641
569
  setMessages(function (prev) { return __spreadArray(__spreadArray([], prev, true), [assistantMessage_1], false); });
642
570
  return [3 /*break*/, 4];
643
571
  case 3:
644
- err_10 = _a.sent();
572
+ err_8 = _a.sent();
645
573
  // Error is already set by askWithCitations
646
- console.error("Failed to send message:", err_10);
574
+ console.error("Failed to send message:", err_8);
647
575
  return [3 /*break*/, 4];
648
576
  case 4: return [2 /*return*/];
649
577
  }
@@ -654,8 +582,7 @@ export function TrainlyProvider(_a) {
654
582
  var clearMessages = function () { return setMessages([]); };
655
583
  var value = {
656
584
  ask: ask,
657
- askWithCitations: askWithCitations,
658
- askWithOptions: askWithOptions, // NEW: Ask with scope filters and options
585
+ askWithCitations: askWithCitations, // Deprecated - kept for backward compatibility
659
586
  upload: upload,
660
587
  bulkUploadFiles: bulkUploadFiles, // NEW: Bulk file upload method
661
588
  listFiles: listFiles, // NEW: File management methods
@@ -50,7 +50,7 @@ import { useTrainly } from "../useTrainly";
50
50
  export function TrainlyChat(_a) {
51
51
  var _this = this;
52
52
  var _b = _a.height, height = _b === void 0 ? "400px" : _b, _c = _a.className, className = _c === void 0 ? "" : _c, _d = _a.placeholder, placeholder = _d === void 0 ? "Ask me anything..." : _d, _e = _a.showCitations, showCitations = _e === void 0 ? true : _e, _f = _a.enableFileUpload, enableFileUpload = _f === void 0 ? true : _f, _g = _a.theme, theme = _g === void 0 ? "auto" : _g, scopeFilters = _a.scopeFilters, onMessage = _a.onMessage, onError = _a.onError;
53
- var askWithOptions = useTrainly().askWithOptions;
53
+ var ask = useTrainly().ask;
54
54
  var _h = React.useState(""), input = _h[0], setInput = _h[1];
55
55
  var _j = React.useState([]), messages = _j[0], setMessages = _j[1];
56
56
  var _k = React.useState(false), isLoading = _k[0], setIsLoading = _k[1];
@@ -91,7 +91,7 @@ export function TrainlyChat(_a) {
91
91
  _a.label = 1;
92
92
  case 1:
93
93
  _a.trys.push([1, 3, 4, 5]);
94
- return [4 /*yield*/, askWithOptions(messageContent, {
94
+ return [4 /*yield*/, ask(messageContent, {
95
95
  includeCitations: showCitations,
96
96
  scope_filters: scopeFilters,
97
97
  })];
package/dist/types.d.ts CHANGED
@@ -88,18 +88,17 @@ export interface TrainlyFileManagerProps {
88
88
  maxFileSize?: number;
89
89
  }
90
90
  export interface TrainlyContextValue {
91
- ask: (question: string) => Promise<string>;
92
- askWithCitations: (question: string) => Promise<{
93
- answer: string;
94
- citations: Citation[];
95
- }>;
96
- askWithOptions: (question: string, options?: {
91
+ ask: (question: string, options?: {
97
92
  includeCitations?: boolean;
98
93
  scope_filters?: Record<string, string | number | boolean>;
99
94
  }) => Promise<{
100
95
  answer: string;
101
96
  citations?: Citation[];
102
97
  }>;
98
+ askWithCitations: (question: string) => Promise<{
99
+ answer: string;
100
+ citations: Citation[];
101
+ }>;
103
102
  upload: (file: File, scopeValues?: Record<string, string | number | boolean>) => Promise<UploadResult>;
104
103
  listFiles: () => Promise<FileListResult>;
105
104
  deleteFile: (fileId: string) => Promise<FileDeleteResult>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trainly/react",
3
- "version": "1.4.2",
3
+ "version": "1.4.3",
4
4
  "description": "Dead simple RAG integration for React apps with OAuth authentication and custom scopes",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",