@iblai/iblai-js 2.11.3 → 2.11.4
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.
|
@@ -3620,7 +3620,10 @@ var datasetsTabLabels$3 = {
|
|
|
3620
3620
|
description: "This dataset is currently untrained. You can train it to make it available for your agent, or permanently delete it if it's no longer needed.",
|
|
3621
3621
|
"delete": "Delete",
|
|
3622
3622
|
train: "Train",
|
|
3623
|
-
training: "Training..."
|
|
3623
|
+
training: "Training...",
|
|
3624
|
+
userAgentLabel: "User-Agent (optional)",
|
|
3625
|
+
userAgentPlaceholder: "Iblai-bot/1.0 (+https://ibl.ai/bot)",
|
|
3626
|
+
userAgentHelpText: "Optional. Overrides the default crawler User-Agent for every request. Leave blank to keep the current setting."
|
|
3624
3627
|
},
|
|
3625
3628
|
retrainScheduleModal: {
|
|
3626
3629
|
title: "Schedule Retraining",
|
|
@@ -10934,7 +10937,10 @@ var datasetsTabLabels$2 = {
|
|
|
10934
10937
|
description: "Ce jeu de données n'est pas encore entraîné. Vous pouvez l'entraîner pour le rendre disponible à votre agent, ou le supprimer définitivement s'il n'est plus nécessaire.",
|
|
10935
10938
|
"delete": "Supprimer",
|
|
10936
10939
|
train: "Entraîner",
|
|
10937
|
-
training: "Entraînement..."
|
|
10940
|
+
training: "Entraînement...",
|
|
10941
|
+
userAgentLabel: "User-Agent (facultatif)",
|
|
10942
|
+
userAgentPlaceholder: "Iblai-bot/1.0 (+https://ibl.ai/bot)",
|
|
10943
|
+
userAgentHelpText: "Facultatif. Remplace le User-Agent par defaut du robot d'exploration pour chaque requete. Laissez vide pour conserver le reglage actuel."
|
|
10938
10944
|
},
|
|
10939
10945
|
retrainScheduleModal: {
|
|
10940
10946
|
title: "Planifier le réentraînement",
|
|
@@ -18082,7 +18088,10 @@ var datasetsTabLabels$1 = {
|
|
|
18082
18088
|
description: "Este conjunto de datos no está entrenado actualmente. Puede entrenarlo para que esté disponible para su agente, o eliminarlo permanentemente si ya no lo necesita.",
|
|
18083
18089
|
"delete": "Eliminar",
|
|
18084
18090
|
train: "Entrenar",
|
|
18085
|
-
training: "Entrenando..."
|
|
18091
|
+
training: "Entrenando...",
|
|
18092
|
+
userAgentLabel: "User-Agent (opcional)",
|
|
18093
|
+
userAgentPlaceholder: "Iblai-bot/1.0 (+https://ibl.ai/bot)",
|
|
18094
|
+
userAgentHelpText: "Opcional. Sustituye el User-Agent predeterminado del rastreador en cada solicitud. Dejalo en blanco para conservar la configuracion actual."
|
|
18086
18095
|
},
|
|
18087
18096
|
retrainScheduleModal: {
|
|
18088
18097
|
title: "Programar reentrenamiento",
|
|
@@ -25230,7 +25239,10 @@ var datasetsTabLabels = {
|
|
|
25230
25239
|
description: "该数据集当前未经训练。您可以对其进行训练以使其可供您的代理使用,或者如果不再需要则将其永久删除。",
|
|
25231
25240
|
"delete": "删除",
|
|
25232
25241
|
train: "训练",
|
|
25233
|
-
training: "训练中..."
|
|
25242
|
+
training: "训练中...",
|
|
25243
|
+
userAgentLabel: "User-Agent(可选)",
|
|
25244
|
+
userAgentPlaceholder: "Iblai-bot/1.0 (+https://ibl.ai/bot)",
|
|
25245
|
+
userAgentHelpText: "可选。为每个请求覆盖默认的抓取工具 User-Agent。留空则保留当前设置。"
|
|
25234
25246
|
},
|
|
25235
25247
|
retrainScheduleModal: {
|
|
25236
25248
|
title: "计划重新训练",
|
|
@@ -241464,6 +241476,25 @@ const RetrainScheduleModal$1 = dynamic(() => Promise.resolve().then(function ()
|
|
|
241464
241476
|
const TrainOrDeleteModal$1 = dynamic(() => Promise.resolve().then(function () { return trainOrDeleteModal; }).then((mod) => ({
|
|
241465
241477
|
default: mod.TrainOrDeleteModal,
|
|
241466
241478
|
})));
|
|
241479
|
+
/**
|
|
241480
|
+
* Crawlable documents are re-fetched over HTTP on retrain, so crawler options
|
|
241481
|
+
* (such as a custom User-Agent) apply to them. Local uploads and cloud-provider
|
|
241482
|
+
* documents are not re-fetched, so they are not crawlable.
|
|
241483
|
+
*/
|
|
241484
|
+
function isCrawlableDocType(documentType) {
|
|
241485
|
+
const docType = documentType === null || documentType === void 0 ? void 0 : documentType.toLowerCase();
|
|
241486
|
+
// Uploaded documents (local files like PDF, DOCX, etc.)
|
|
241487
|
+
const uploadedFileTypes = ['file'];
|
|
241488
|
+
if (uploadedFileTypes.some((type) => docType === null || docType === void 0 ? void 0 : docType.includes(type))) {
|
|
241489
|
+
return false;
|
|
241490
|
+
}
|
|
241491
|
+
// Cloud storage providers
|
|
241492
|
+
const cloudProviders = ['google drive', 'onedrive', 'dropbox', 'one drive'];
|
|
241493
|
+
if (cloudProviders.some((provider) => docType === null || docType === void 0 ? void 0 : docType.includes(provider))) {
|
|
241494
|
+
return false;
|
|
241495
|
+
}
|
|
241496
|
+
return true;
|
|
241497
|
+
}
|
|
241467
241498
|
function DatasetItem({ dataset, onSelect, isSelected, labels }) {
|
|
241468
241499
|
var _a, _b, _c, _d, _e;
|
|
241469
241500
|
const t = useT();
|
|
@@ -241492,10 +241523,12 @@ function DatasetItem({ dataset, onSelect, isSelected, labels }) {
|
|
|
241492
241523
|
console.error(JSON.stringify({ tenant: tenantKey, error }));
|
|
241493
241524
|
}
|
|
241494
241525
|
};
|
|
241495
|
-
const handleTrainDataset = async () => {
|
|
241526
|
+
const handleTrainDataset = async (userAgent) => {
|
|
241527
|
+
const trimmedUserAgent = userAgent === null || userAgent === void 0 ? void 0 : userAgent.trim();
|
|
241496
241528
|
await handleEditTrainingDocument({
|
|
241497
241529
|
url: dataset.url,
|
|
241498
241530
|
train: true,
|
|
241531
|
+
...(trimmedUserAgent ? { crawler_extra_headers: { 'User-Agent': trimmedUserAgent } } : {}),
|
|
241499
241532
|
});
|
|
241500
241533
|
setIsTrainOrDeleteModalOpen(false);
|
|
241501
241534
|
};
|
|
@@ -241505,23 +241538,12 @@ function DatasetItem({ dataset, onSelect, isSelected, labels }) {
|
|
|
241505
241538
|
};
|
|
241506
241539
|
// Helper function to check if retrain should be disabled
|
|
241507
241540
|
const isRetrainDisabled = () => {
|
|
241508
|
-
var _a;
|
|
241509
241541
|
// Disable if the dataset is not trained yet
|
|
241510
241542
|
if (!dataset.is_trained) {
|
|
241511
241543
|
return true;
|
|
241512
241544
|
}
|
|
241513
|
-
|
|
241514
|
-
|
|
241515
|
-
const uploadedFileTypes = ['file'];
|
|
241516
|
-
if (uploadedFileTypes.some((type) => docType === null || docType === void 0 ? void 0 : docType.includes(type))) {
|
|
241517
|
-
return true;
|
|
241518
|
-
}
|
|
241519
|
-
// Disable for cloud storage providers
|
|
241520
|
-
const cloudProviders = ['google drive', 'onedrive', 'dropbox', 'one drive'];
|
|
241521
|
-
if (cloudProviders.some((provider) => docType === null || docType === void 0 ? void 0 : docType.includes(provider))) {
|
|
241522
|
-
return true;
|
|
241523
|
-
}
|
|
241524
|
-
return false;
|
|
241545
|
+
// Disable for uploaded documents and cloud storage providers
|
|
241546
|
+
return !isCrawlableDocType(dataset.document_type);
|
|
241525
241547
|
};
|
|
241526
241548
|
return (jsxs(Fragment$1, { children: [jsxs(TableRow, { className: `border-b last:border-0 ${onSelect ? 'hover:bg-muted/50 cursor-pointer' : ''} ${isSelected ? 'bg-blue-50' : ''}`, onClick: onSelect ? () => onSelect(dataset) : undefined, children: [jsxs(Tooltip$1, { children: [jsx(TooltipTrigger, { asChild: true, children: jsx(TableCell, { className: "max-w-[200px] truncate p-3 font-medium whitespace-nowrap text-[#646464]", children: jsx(WithFormPermissions, { name: ['document_name', 'url'],
|
|
241527
241549
|
// @ts-ignore
|
|
@@ -241549,7 +241571,7 @@ function DatasetItem({ dataset, onSelect, isSelected, labels }) {
|
|
|
241549
241571
|
}
|
|
241550
241572
|
}, className: "text-gray-500 hover:text-gray-700", disabled: isEditTrainingDocumentLoading || disabled, children: dataset.access === 'private' ? (jsxs(Fragment$1, { children: [jsx(EyeOff, { className: "h-4 w-4" }), jsx("span", { className: "sr-only", children: t('datasetsTabDatasetItem.makePublic') })] })) : (jsxs(Fragment$1, { children: [jsx(Eye, { className: "h-4 w-4" }), jsx("span", { className: "sr-only", children: t('datasetsTabDatasetItem.makePrivate') })] })) })) }) }), jsx(TableCell, { className: "p-3 whitespace-nowrap", children: jsx(WithFormPermissions, { name: "is_trained",
|
|
241551
241573
|
// @ts-ignore
|
|
241552
|
-
permissions: (_e = dataset === null || dataset === void 0 ? void 0 : dataset.permissions) === null || _e === void 0 ? void 0 : _e.field, children: ({ disabled }) => (jsx(TrainingStatusSwitch, { is_trained: dataset.is_trained, url: dataset.url, disabled: disabled, training_status: dataset.training_status, handleEditTrainingDocument: handleEditTrainingDocument, onUntrainSuccess: () => setIsDeleteDatasetModalOpen(true), onTrainRequest: () => setIsTrainOrDeleteModalOpen(true) })) }) })] }, dataset.id), isDeleteDatasetModalOpen && (jsx(DeleteDatasetModal$1, { isOpen: isDeleteDatasetModalOpen, onClose: () => setIsDeleteDatasetModalOpen(false), dataset: dataset, labels: labels })), isRetrainScheduleModalOpen && (jsx(RetrainScheduleModal$1, { isOpen: isRetrainScheduleModalOpen, onClose: () => setIsRetrainScheduleModalOpen(false), dataset: dataset, labels: labels })), isTrainOrDeleteModalOpen && (jsx(TrainOrDeleteModal$1, { isOpen: isTrainOrDeleteModalOpen, onClose: () => setIsTrainOrDeleteModalOpen(false), onTrain: handleTrainDataset, onDelete: handleDeleteFromTrainModal, isLoading: isEditTrainingDocumentLoading, labels: labels }))] }));
|
|
241574
|
+
permissions: (_e = dataset === null || dataset === void 0 ? void 0 : dataset.permissions) === null || _e === void 0 ? void 0 : _e.field, children: ({ disabled }) => (jsx(TrainingStatusSwitch, { is_trained: dataset.is_trained, url: dataset.url, disabled: disabled, training_status: dataset.training_status, handleEditTrainingDocument: handleEditTrainingDocument, onUntrainSuccess: () => setIsDeleteDatasetModalOpen(true), onTrainRequest: () => setIsTrainOrDeleteModalOpen(true) })) }) })] }, dataset.id), isDeleteDatasetModalOpen && (jsx(DeleteDatasetModal$1, { isOpen: isDeleteDatasetModalOpen, onClose: () => setIsDeleteDatasetModalOpen(false), dataset: dataset, labels: labels })), isRetrainScheduleModalOpen && (jsx(RetrainScheduleModal$1, { isOpen: isRetrainScheduleModalOpen, onClose: () => setIsRetrainScheduleModalOpen(false), dataset: dataset, labels: labels })), isTrainOrDeleteModalOpen && (jsx(TrainOrDeleteModal$1, { isOpen: isTrainOrDeleteModalOpen, onClose: () => setIsTrainOrDeleteModalOpen(false), onTrain: handleTrainDataset, onDelete: handleDeleteFromTrainModal, showUserAgentField: isCrawlableDocType(dataset.document_type), isLoading: isEditTrainingDocumentLoading, labels: labels }))] }));
|
|
241553
241575
|
}
|
|
241554
241576
|
function TrainingStatusSwitch({ is_trained, url, training_status, disabled, handleEditTrainingDocument, onUntrainSuccess, onTrainRequest, }) {
|
|
241555
241577
|
const t = useT();
|
|
@@ -241622,6 +241644,9 @@ const AGENT_DATASETS_TAB_LABELS = {
|
|
|
241622
241644
|
delete: 'Delete',
|
|
241623
241645
|
train: 'Train',
|
|
241624
241646
|
training: 'Training...',
|
|
241647
|
+
userAgentLabel: 'User-Agent (optional)',
|
|
241648
|
+
userAgentPlaceholder: 'Iblai-bot/1.0 (+https://ibl.ai/bot)',
|
|
241649
|
+
userAgentHelpText: 'Optional. Overrides the default crawler User-Agent for every request. Leave blank to keep the current setting.',
|
|
241625
241650
|
},
|
|
241626
241651
|
retrainScheduleModal: {
|
|
241627
241652
|
title: 'Schedule Retraining',
|
|
@@ -241682,6 +241707,9 @@ function buildDatasetsTabLabels(t) {
|
|
|
241682
241707
|
delete: t('datasetsTabLabels.trainOrDeleteModal.delete'),
|
|
241683
241708
|
train: t('datasetsTabLabels.trainOrDeleteModal.train'),
|
|
241684
241709
|
training: t('datasetsTabLabels.trainOrDeleteModal.training'),
|
|
241710
|
+
userAgentLabel: t('datasetsTabLabels.trainOrDeleteModal.userAgentLabel'),
|
|
241711
|
+
userAgentPlaceholder: t('datasetsTabLabels.trainOrDeleteModal.userAgentPlaceholder'),
|
|
241712
|
+
userAgentHelpText: t('datasetsTabLabels.trainOrDeleteModal.userAgentHelpText'),
|
|
241685
241713
|
},
|
|
241686
241714
|
retrainScheduleModal: {
|
|
241687
241715
|
title: t('datasetsTabLabels.retrainScheduleModal.title'),
|
|
@@ -245681,8 +245709,9 @@ var retrainScheduleModal = /*#__PURE__*/Object.freeze({
|
|
|
245681
245709
|
RetrainScheduleModal: RetrainScheduleModal
|
|
245682
245710
|
});
|
|
245683
245711
|
|
|
245684
|
-
function TrainOrDeleteModal({ isOpen, onClose, onTrain, onDelete, isLoading, labels, }) {
|
|
245685
|
-
|
|
245712
|
+
function TrainOrDeleteModal({ isOpen, onClose, onTrain, onDelete, isLoading, showUserAgentField, labels, }) {
|
|
245713
|
+
const [userAgent, setUserAgent] = React__default.useState('');
|
|
245714
|
+
return (jsx(Dialog, { open: isOpen, onOpenChange: onClose, children: jsxs(DialogContent, { "aria-describedby": "train-or-delete-description", className: "gap-0", children: [jsx(DialogHeader, { children: jsx(DialogTitle, { className: "ibl-dialog-title", children: labels.trainOrDeleteModal.title }) }), jsx("div", { className: "my-5", children: jsx("p", { id: "train-or-delete-description", className: "text-sm text-[#646464]", children: labels.trainOrDeleteModal.description }) }), showUserAgentField && (jsxs("div", { className: "mb-5 space-y-2", children: [jsx(Label$2, { htmlFor: "train-user-agent", className: "text-sm font-medium", children: labels.trainOrDeleteModal.userAgentLabel }), jsx(Input, { id: "train-user-agent", type: "text", value: userAgent, onChange: (e) => setUserAgent(e.target.value), disabled: isLoading, placeholder: labels.trainOrDeleteModal.userAgentPlaceholder, className: "h-10" }), jsx("p", { className: "text-muted-foreground text-xs", children: labels.trainOrDeleteModal.userAgentHelpText })] })), jsxs(DialogFooter, { className: "gap-3", children: [jsx(Button$1, { variant: "outline", onClick: onDelete, disabled: isLoading, children: labels.trainOrDeleteModal.delete }), jsx(Button$1, { className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", onClick: () => onTrain(userAgent.trim() || undefined), disabled: isLoading, children: isLoading ? labels.trainOrDeleteModal.training : labels.trainOrDeleteModal.train })] })] }) }));
|
|
245686
245715
|
}
|
|
245687
245716
|
|
|
245688
245717
|
var trainOrDeleteModal = /*#__PURE__*/Object.freeze({
|
|
@@ -98403,7 +98403,10 @@ var datasetsTabLabels$3 = {
|
|
|
98403
98403
|
description: "This dataset is currently untrained. You can train it to make it available for your agent, or permanently delete it if it's no longer needed.",
|
|
98404
98404
|
"delete": "Delete",
|
|
98405
98405
|
train: "Train",
|
|
98406
|
-
training: "Training..."
|
|
98406
|
+
training: "Training...",
|
|
98407
|
+
userAgentLabel: "User-Agent (optional)",
|
|
98408
|
+
userAgentPlaceholder: "Iblai-bot/1.0 (+https://ibl.ai/bot)",
|
|
98409
|
+
userAgentHelpText: "Optional. Overrides the default crawler User-Agent for every request. Leave blank to keep the current setting."
|
|
98407
98410
|
},
|
|
98408
98411
|
retrainScheduleModal: {
|
|
98409
98412
|
title: "Schedule Retraining",
|
|
@@ -105717,7 +105720,10 @@ var datasetsTabLabels$2 = {
|
|
|
105717
105720
|
description: "Ce jeu de données n'est pas encore entraîné. Vous pouvez l'entraîner pour le rendre disponible à votre agent, ou le supprimer définitivement s'il n'est plus nécessaire.",
|
|
105718
105721
|
"delete": "Supprimer",
|
|
105719
105722
|
train: "Entraîner",
|
|
105720
|
-
training: "Entraînement..."
|
|
105723
|
+
training: "Entraînement...",
|
|
105724
|
+
userAgentLabel: "User-Agent (facultatif)",
|
|
105725
|
+
userAgentPlaceholder: "Iblai-bot/1.0 (+https://ibl.ai/bot)",
|
|
105726
|
+
userAgentHelpText: "Facultatif. Remplace le User-Agent par defaut du robot d'exploration pour chaque requete. Laissez vide pour conserver le reglage actuel."
|
|
105721
105727
|
},
|
|
105722
105728
|
retrainScheduleModal: {
|
|
105723
105729
|
title: "Planifier le réentraînement",
|
|
@@ -112865,7 +112871,10 @@ var datasetsTabLabels$1 = {
|
|
|
112865
112871
|
description: "Este conjunto de datos no está entrenado actualmente. Puede entrenarlo para que esté disponible para su agente, o eliminarlo permanentemente si ya no lo necesita.",
|
|
112866
112872
|
"delete": "Eliminar",
|
|
112867
112873
|
train: "Entrenar",
|
|
112868
|
-
training: "Entrenando..."
|
|
112874
|
+
training: "Entrenando...",
|
|
112875
|
+
userAgentLabel: "User-Agent (opcional)",
|
|
112876
|
+
userAgentPlaceholder: "Iblai-bot/1.0 (+https://ibl.ai/bot)",
|
|
112877
|
+
userAgentHelpText: "Opcional. Sustituye el User-Agent predeterminado del rastreador en cada solicitud. Dejalo en blanco para conservar la configuracion actual."
|
|
112869
112878
|
},
|
|
112870
112879
|
retrainScheduleModal: {
|
|
112871
112880
|
title: "Programar reentrenamiento",
|
|
@@ -120013,7 +120022,10 @@ var datasetsTabLabels = {
|
|
|
120013
120022
|
description: "该数据集当前未经训练。您可以对其进行训练以使其可供您的代理使用,或者如果不再需要则将其永久删除。",
|
|
120014
120023
|
"delete": "删除",
|
|
120015
120024
|
train: "训练",
|
|
120016
|
-
training: "训练中..."
|
|
120025
|
+
training: "训练中...",
|
|
120026
|
+
userAgentLabel: "User-Agent(可选)",
|
|
120027
|
+
userAgentPlaceholder: "Iblai-bot/1.0 (+https://ibl.ai/bot)",
|
|
120028
|
+
userAgentHelpText: "可选。为每个请求覆盖默认的抓取工具 User-Agent。留空则保留当前设置。"
|
|
120017
120029
|
},
|
|
120018
120030
|
retrainScheduleModal: {
|
|
120019
120031
|
title: "计划重新训练",
|
|
@@ -262655,6 +262667,25 @@ const RetrainScheduleModal$1 = dynamic(() => Promise.resolve().then(function ()
|
|
|
262655
262667
|
const TrainOrDeleteModal$1 = dynamic(() => Promise.resolve().then(function () { return trainOrDeleteModal; }).then((mod) => ({
|
|
262656
262668
|
default: mod.TrainOrDeleteModal,
|
|
262657
262669
|
})));
|
|
262670
|
+
/**
|
|
262671
|
+
* Crawlable documents are re-fetched over HTTP on retrain, so crawler options
|
|
262672
|
+
* (such as a custom User-Agent) apply to them. Local uploads and cloud-provider
|
|
262673
|
+
* documents are not re-fetched, so they are not crawlable.
|
|
262674
|
+
*/
|
|
262675
|
+
function isCrawlableDocType(documentType) {
|
|
262676
|
+
const docType = documentType === null || documentType === void 0 ? void 0 : documentType.toLowerCase();
|
|
262677
|
+
// Uploaded documents (local files like PDF, DOCX, etc.)
|
|
262678
|
+
const uploadedFileTypes = ['file'];
|
|
262679
|
+
if (uploadedFileTypes.some((type) => docType === null || docType === void 0 ? void 0 : docType.includes(type))) {
|
|
262680
|
+
return false;
|
|
262681
|
+
}
|
|
262682
|
+
// Cloud storage providers
|
|
262683
|
+
const cloudProviders = ['google drive', 'onedrive', 'dropbox', 'one drive'];
|
|
262684
|
+
if (cloudProviders.some((provider) => docType === null || docType === void 0 ? void 0 : docType.includes(provider))) {
|
|
262685
|
+
return false;
|
|
262686
|
+
}
|
|
262687
|
+
return true;
|
|
262688
|
+
}
|
|
262658
262689
|
function DatasetItem({ dataset, onSelect, isSelected, labels }) {
|
|
262659
262690
|
var _a, _b, _c, _d, _e;
|
|
262660
262691
|
const t = useT();
|
|
@@ -262683,10 +262714,12 @@ function DatasetItem({ dataset, onSelect, isSelected, labels }) {
|
|
|
262683
262714
|
console.error(JSON.stringify({ tenant: tenantKey, error }));
|
|
262684
262715
|
}
|
|
262685
262716
|
};
|
|
262686
|
-
const handleTrainDataset = async () => {
|
|
262717
|
+
const handleTrainDataset = async (userAgent) => {
|
|
262718
|
+
const trimmedUserAgent = userAgent === null || userAgent === void 0 ? void 0 : userAgent.trim();
|
|
262687
262719
|
await handleEditTrainingDocument({
|
|
262688
262720
|
url: dataset.url,
|
|
262689
262721
|
train: true,
|
|
262722
|
+
...(trimmedUserAgent ? { crawler_extra_headers: { 'User-Agent': trimmedUserAgent } } : {}),
|
|
262690
262723
|
});
|
|
262691
262724
|
setIsTrainOrDeleteModalOpen(false);
|
|
262692
262725
|
};
|
|
@@ -262696,23 +262729,12 @@ function DatasetItem({ dataset, onSelect, isSelected, labels }) {
|
|
|
262696
262729
|
};
|
|
262697
262730
|
// Helper function to check if retrain should be disabled
|
|
262698
262731
|
const isRetrainDisabled = () => {
|
|
262699
|
-
var _a;
|
|
262700
262732
|
// Disable if the dataset is not trained yet
|
|
262701
262733
|
if (!dataset.is_trained) {
|
|
262702
262734
|
return true;
|
|
262703
262735
|
}
|
|
262704
|
-
|
|
262705
|
-
|
|
262706
|
-
const uploadedFileTypes = ['file'];
|
|
262707
|
-
if (uploadedFileTypes.some((type) => docType === null || docType === void 0 ? void 0 : docType.includes(type))) {
|
|
262708
|
-
return true;
|
|
262709
|
-
}
|
|
262710
|
-
// Disable for cloud storage providers
|
|
262711
|
-
const cloudProviders = ['google drive', 'onedrive', 'dropbox', 'one drive'];
|
|
262712
|
-
if (cloudProviders.some((provider) => docType === null || docType === void 0 ? void 0 : docType.includes(provider))) {
|
|
262713
|
-
return true;
|
|
262714
|
-
}
|
|
262715
|
-
return false;
|
|
262736
|
+
// Disable for uploaded documents and cloud storage providers
|
|
262737
|
+
return !isCrawlableDocType(dataset.document_type);
|
|
262716
262738
|
};
|
|
262717
262739
|
return (jsxs(Fragment$1, { children: [jsxs(TableRow$1, { className: `border-b last:border-0 ${onSelect ? 'hover:bg-muted/50 cursor-pointer' : ''} ${isSelected ? 'bg-blue-50' : ''}`, onClick: onSelect ? () => onSelect(dataset) : undefined, children: [jsxs(Tooltip$1, { children: [jsx(TooltipTrigger, { asChild: true, children: jsx(TableCell$1, { className: "max-w-[200px] truncate p-3 font-medium whitespace-nowrap text-[#646464]", children: jsx(WithFormPermissions, { name: ['document_name', 'url'],
|
|
262718
262740
|
// @ts-ignore
|
|
@@ -262740,7 +262762,7 @@ function DatasetItem({ dataset, onSelect, isSelected, labels }) {
|
|
|
262740
262762
|
}
|
|
262741
262763
|
}, className: "text-gray-500 hover:text-gray-700", disabled: isEditTrainingDocumentLoading || disabled, children: dataset.access === 'private' ? (jsxs(Fragment$1, { children: [jsx(EyeOff, { className: "h-4 w-4" }), jsx("span", { className: "sr-only", children: t('datasetsTabDatasetItem.makePublic') })] })) : (jsxs(Fragment$1, { children: [jsx(Eye, { className: "h-4 w-4" }), jsx("span", { className: "sr-only", children: t('datasetsTabDatasetItem.makePrivate') })] })) })) }) }), jsx(TableCell$1, { className: "p-3 whitespace-nowrap", children: jsx(WithFormPermissions, { name: "is_trained",
|
|
262742
262764
|
// @ts-ignore
|
|
262743
|
-
permissions: (_e = dataset === null || dataset === void 0 ? void 0 : dataset.permissions) === null || _e === void 0 ? void 0 : _e.field, children: ({ disabled }) => (jsx(TrainingStatusSwitch, { is_trained: dataset.is_trained, url: dataset.url, disabled: disabled, training_status: dataset.training_status, handleEditTrainingDocument: handleEditTrainingDocument, onUntrainSuccess: () => setIsDeleteDatasetModalOpen(true), onTrainRequest: () => setIsTrainOrDeleteModalOpen(true) })) }) })] }, dataset.id), isDeleteDatasetModalOpen && (jsx(DeleteDatasetModal$1, { isOpen: isDeleteDatasetModalOpen, onClose: () => setIsDeleteDatasetModalOpen(false), dataset: dataset, labels: labels })), isRetrainScheduleModalOpen && (jsx(RetrainScheduleModal$1, { isOpen: isRetrainScheduleModalOpen, onClose: () => setIsRetrainScheduleModalOpen(false), dataset: dataset, labels: labels })), isTrainOrDeleteModalOpen && (jsx(TrainOrDeleteModal$1, { isOpen: isTrainOrDeleteModalOpen, onClose: () => setIsTrainOrDeleteModalOpen(false), onTrain: handleTrainDataset, onDelete: handleDeleteFromTrainModal, isLoading: isEditTrainingDocumentLoading, labels: labels }))] }));
|
|
262765
|
+
permissions: (_e = dataset === null || dataset === void 0 ? void 0 : dataset.permissions) === null || _e === void 0 ? void 0 : _e.field, children: ({ disabled }) => (jsx(TrainingStatusSwitch, { is_trained: dataset.is_trained, url: dataset.url, disabled: disabled, training_status: dataset.training_status, handleEditTrainingDocument: handleEditTrainingDocument, onUntrainSuccess: () => setIsDeleteDatasetModalOpen(true), onTrainRequest: () => setIsTrainOrDeleteModalOpen(true) })) }) })] }, dataset.id), isDeleteDatasetModalOpen && (jsx(DeleteDatasetModal$1, { isOpen: isDeleteDatasetModalOpen, onClose: () => setIsDeleteDatasetModalOpen(false), dataset: dataset, labels: labels })), isRetrainScheduleModalOpen && (jsx(RetrainScheduleModal$1, { isOpen: isRetrainScheduleModalOpen, onClose: () => setIsRetrainScheduleModalOpen(false), dataset: dataset, labels: labels })), isTrainOrDeleteModalOpen && (jsx(TrainOrDeleteModal$1, { isOpen: isTrainOrDeleteModalOpen, onClose: () => setIsTrainOrDeleteModalOpen(false), onTrain: handleTrainDataset, onDelete: handleDeleteFromTrainModal, showUserAgentField: isCrawlableDocType(dataset.document_type), isLoading: isEditTrainingDocumentLoading, labels: labels }))] }));
|
|
262744
262766
|
}
|
|
262745
262767
|
function TrainingStatusSwitch({ is_trained, url, training_status, disabled, handleEditTrainingDocument, onUntrainSuccess, onTrainRequest, }) {
|
|
262746
262768
|
const t = useT();
|
|
@@ -262813,6 +262835,9 @@ const AGENT_DATASETS_TAB_LABELS = {
|
|
|
262813
262835
|
delete: 'Delete',
|
|
262814
262836
|
train: 'Train',
|
|
262815
262837
|
training: 'Training...',
|
|
262838
|
+
userAgentLabel: 'User-Agent (optional)',
|
|
262839
|
+
userAgentPlaceholder: 'Iblai-bot/1.0 (+https://ibl.ai/bot)',
|
|
262840
|
+
userAgentHelpText: 'Optional. Overrides the default crawler User-Agent for every request. Leave blank to keep the current setting.',
|
|
262816
262841
|
},
|
|
262817
262842
|
retrainScheduleModal: {
|
|
262818
262843
|
title: 'Schedule Retraining',
|
|
@@ -262873,6 +262898,9 @@ function buildDatasetsTabLabels(t) {
|
|
|
262873
262898
|
delete: t('datasetsTabLabels.trainOrDeleteModal.delete'),
|
|
262874
262899
|
train: t('datasetsTabLabels.trainOrDeleteModal.train'),
|
|
262875
262900
|
training: t('datasetsTabLabels.trainOrDeleteModal.training'),
|
|
262901
|
+
userAgentLabel: t('datasetsTabLabels.trainOrDeleteModal.userAgentLabel'),
|
|
262902
|
+
userAgentPlaceholder: t('datasetsTabLabels.trainOrDeleteModal.userAgentPlaceholder'),
|
|
262903
|
+
userAgentHelpText: t('datasetsTabLabels.trainOrDeleteModal.userAgentHelpText'),
|
|
262876
262904
|
},
|
|
262877
262905
|
retrainScheduleModal: {
|
|
262878
262906
|
title: t('datasetsTabLabels.retrainScheduleModal.title'),
|
|
@@ -288579,8 +288607,9 @@ var retrainScheduleModal = /*#__PURE__*/Object.freeze({
|
|
|
288579
288607
|
RetrainScheduleModal: RetrainScheduleModal
|
|
288580
288608
|
});
|
|
288581
288609
|
|
|
288582
|
-
function TrainOrDeleteModal({ isOpen, onClose, onTrain, onDelete, isLoading, labels, }) {
|
|
288583
|
-
|
|
288610
|
+
function TrainOrDeleteModal({ isOpen, onClose, onTrain, onDelete, isLoading, showUserAgentField, labels, }) {
|
|
288611
|
+
const [userAgent, setUserAgent] = React__default.useState('');
|
|
288612
|
+
return (jsx(Dialog, { open: isOpen, onOpenChange: onClose, children: jsxs(DialogContent, { "aria-describedby": "train-or-delete-description", className: "gap-0", children: [jsx(DialogHeader, { children: jsx(DialogTitle, { className: "ibl-dialog-title", children: labels.trainOrDeleteModal.title }) }), jsx("div", { className: "my-5", children: jsx("p", { id: "train-or-delete-description", className: "text-sm text-[#646464]", children: labels.trainOrDeleteModal.description }) }), showUserAgentField && (jsxs("div", { className: "mb-5 space-y-2", children: [jsx(Label$1, { htmlFor: "train-user-agent", className: "text-sm font-medium", children: labels.trainOrDeleteModal.userAgentLabel }), jsx(Input, { id: "train-user-agent", type: "text", value: userAgent, onChange: (e) => setUserAgent(e.target.value), disabled: isLoading, placeholder: labels.trainOrDeleteModal.userAgentPlaceholder, className: "h-10" }), jsx("p", { className: "text-muted-foreground text-xs", children: labels.trainOrDeleteModal.userAgentHelpText })] })), jsxs(DialogFooter, { className: "gap-3", children: [jsx(Button$1, { variant: "outline", onClick: onDelete, disabled: isLoading, children: labels.trainOrDeleteModal.delete }), jsx(Button$1, { className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", onClick: () => onTrain(userAgent.trim() || undefined), disabled: isLoading, children: isLoading ? labels.trainOrDeleteModal.training : labels.trainOrDeleteModal.train })] })] }) }));
|
|
288584
288613
|
}
|
|
288585
288614
|
|
|
288586
288615
|
var trainOrDeleteModal = /*#__PURE__*/Object.freeze({
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iblai/iblai-js",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.4",
|
|
4
4
|
"description": "Unified JavaScript SDK for IBL.ai — re-exports data-layer, web-containers, and web-utils under a single package",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -76,9 +76,9 @@
|
|
|
76
76
|
"axios": "1.13.6",
|
|
77
77
|
"dotenv": "16.6.1",
|
|
78
78
|
"winston": "3.19.0",
|
|
79
|
-
"@iblai/mcp": "1.12.14",
|
|
80
|
-
"@iblai/web-containers": "1.20.2",
|
|
81
79
|
"@iblai/data-layer": "1.13.5",
|
|
80
|
+
"@iblai/mcp": "1.12.14",
|
|
81
|
+
"@iblai/web-containers": "1.20.3",
|
|
82
82
|
"@iblai/web-utils": "2.4.6"
|
|
83
83
|
},
|
|
84
84
|
"peerDependencies": {
|