@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.
- package/dist/TrainlyProvider.js +48 -121
- package/dist/components/TrainlyChat.js +2 -2
- package/dist/types.d.ts +5 -6
- package/package.json +1 -1
package/dist/TrainlyProvider.js
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|
-
|
|
406
|
-
errorMessage =
|
|
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
|
-
|
|
431
|
-
console.error("❌ Token refresh failed:",
|
|
358
|
+
refreshError_2 = _a.sent();
|
|
359
|
+
console.error("❌ Token refresh failed:", refreshError_2);
|
|
432
360
|
return [3 /*break*/, 9];
|
|
433
361
|
case 9:
|
|
434
|
-
|
|
362
|
+
error_4 = {
|
|
435
363
|
code: "UPLOAD_FAILED",
|
|
436
364
|
message: "Failed to upload file",
|
|
437
|
-
details:
|
|
365
|
+
details: err_4,
|
|
438
366
|
};
|
|
439
|
-
setError(
|
|
440
|
-
throw
|
|
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,
|
|
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
|
-
|
|
462
|
-
errorMessage =
|
|
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
|
-
|
|
487
|
-
console.error("❌ Token refresh failed during bulk upload:",
|
|
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
|
-
|
|
418
|
+
error_5 = {
|
|
491
419
|
code: "BULK_UPLOAD_FAILED",
|
|
492
420
|
message: "Failed to upload files",
|
|
493
|
-
details:
|
|
421
|
+
details: err_5,
|
|
494
422
|
};
|
|
495
|
-
setError(
|
|
496
|
-
throw
|
|
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,
|
|
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
|
-
|
|
518
|
-
errorMessage =
|
|
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
|
-
|
|
543
|
-
console.error("❌ Token refresh failed:",
|
|
470
|
+
refreshError_4 = _a.sent();
|
|
471
|
+
console.error("❌ Token refresh failed:", refreshError_4);
|
|
544
472
|
return [3 /*break*/, 9];
|
|
545
473
|
case 9:
|
|
546
|
-
|
|
474
|
+
error_6 = {
|
|
547
475
|
code: "LIST_FILES_FAILED",
|
|
548
476
|
message: "Failed to list files",
|
|
549
|
-
details:
|
|
477
|
+
details: err_6,
|
|
550
478
|
};
|
|
551
|
-
setError(
|
|
552
|
-
throw
|
|
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,
|
|
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
|
-
|
|
574
|
-
errorMessage =
|
|
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
|
-
|
|
599
|
-
console.error("❌ Token refresh failed:",
|
|
526
|
+
refreshError_5 = _a.sent();
|
|
527
|
+
console.error("❌ Token refresh failed:", refreshError_5);
|
|
600
528
|
return [3 /*break*/, 9];
|
|
601
529
|
case 9:
|
|
602
|
-
|
|
530
|
+
error_7 = {
|
|
603
531
|
code: "DELETE_FILE_FAILED",
|
|
604
532
|
message: "Failed to delete file",
|
|
605
|
-
details:
|
|
533
|
+
details: err_7,
|
|
606
534
|
};
|
|
607
|
-
setError(
|
|
608
|
-
throw
|
|
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,
|
|
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
|
-
|
|
572
|
+
err_8 = _a.sent();
|
|
645
573
|
// Error is already set by askWithCitations
|
|
646
|
-
console.error("Failed to send message:",
|
|
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
|
|
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*/,
|
|
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
|
|
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>;
|