@iblai/iblai-js 2.3.14 → 2.3.16

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.
@@ -97445,6 +97445,10 @@ var analyticsAccessTimeHeatmap$3 = {
97445
97445
  tooltipActiveUsers: "{count} active users"
97446
97446
  };
97447
97447
  var analyticsAnalyticsAuditLogStats$3 = {
97448
+ scopeAgent: "Agent",
97449
+ scopePlatform: "Platform",
97450
+ scopeAgentHint: "Configuration changes for this agent.",
97451
+ scopePlatformHint: "Platform-wide changes and security events.",
97448
97452
  noPermission: "You do not have permission to view audit logs.",
97449
97453
  searchForUser: "Search for User",
97450
97454
  searchUserPlaceholder: "Search user...",
@@ -102595,9 +102599,9 @@ var profileApplicationsTab$3 = {
102595
102599
  linkCopied: "Copied",
102596
102600
  formsHeading: "Application forms",
102597
102601
  formsDescription: "Every application form of this platform. One form is the default applicants land on.",
102598
- blockedUsers: "Blocked users",
102602
+ blockedUsers: "Blocked Users",
102599
102603
  blockedUsersDescription: "Families barred from reapplying. Unblocking lets them apply again.",
102600
- allSubmissions: "All submissions ({count})",
102604
+ allSubmissions: "All Submissions ({count})",
102601
102605
  newForm: "New form",
102602
102606
  postApproval_enrolled: "Enrolled",
102603
102607
  postApproval_enrollment_in_progress: "Enrollment in progress",
@@ -102615,7 +102619,7 @@ var profileApplicationsTab$3 = {
102615
102619
  noForms: "No application forms yet. Create one to turn on applications.",
102616
102620
  backToForms: "Back to forms",
102617
102621
  submissionsFor: "Submissions — {form}",
102618
- allSubmissionsHeading: "All submissions",
102622
+ allSubmissionsHeading: "All Submissions",
102619
102623
  candidateFilterPlaceholder: "Student filter, e.g. grade=6",
102620
102624
  sortLabel: "Sort",
102621
102625
  sortNewest: "Newest first",
@@ -102948,6 +102952,81 @@ var graderTabLabels$3 = {
102948
102952
  overrideButtonAria: "Override grade for {email}"
102949
102953
  }
102950
102954
  };
102955
+ var analyticsAnalyticsPlatformAuditLog$3 = {
102956
+ eventTypeLabel: "Event type",
102957
+ allEventTypes: "All Event Types",
102958
+ actionLabel: "Action",
102959
+ allActions: "All Actions",
102960
+ actorUsernameLabel: "Actor username",
102961
+ actorUsernamePlaceholder: "Filter by username",
102962
+ actorEmailLabel: "Actor email",
102963
+ actorEmailPlaceholder: "Filter by email",
102964
+ pickDateRange: "Pick a Date Range",
102965
+ clearFilters: "Clear filters",
102966
+ narrowSuggestion: "{count} entries match. Narrow the date range to review them without paging through everything.",
102967
+ colTimestamp: "TIMESTAMP ({timezone})",
102968
+ colEvent: "EVENT / ACTION",
102969
+ colActor: "ACTOR",
102970
+ colResource: "RESOURCE",
102971
+ colIpAddress: "IP ADDRESS",
102972
+ colDetails: "Details",
102973
+ kindModelChange: "Model change",
102974
+ kindEvent: "Security event",
102975
+ viewDetails: "View",
102976
+ notAvailable: "—",
102977
+ loadError: "An error occurred while loading audit logs.",
102978
+ noEntries: "No audit log entries have been recorded for this platform yet.",
102979
+ noFilteredEntries: "No audit log entries match these filters.",
102980
+ forbiddenTitle: "You do not have permission to view platform audit logs.",
102981
+ forbiddenBody: "Ask a platform administrator to grant you audit log access.",
102982
+ resultSummary: "Showing {shown} of {total} entries."
102983
+ };
102984
+ var analyticsPlatformAuditLogDetailSheet$3 = {
102985
+ title: "Audit entry",
102986
+ description: "Read-only detail for this audit log entry.",
102987
+ timestamp: "Timestamp",
102988
+ event: "Event",
102989
+ action: "Action",
102990
+ actor: "Actor",
102991
+ resource: "Resource",
102992
+ ipAddress: "IP address",
102993
+ entryId: "Entry ID",
102994
+ changesHeading: "Changes",
102995
+ metadataHeading: "Metadata",
102996
+ noMetadata: "This event carries no metadata.",
102997
+ notAvailable: "—"
102998
+ };
102999
+ var analyticsAuditLogJsonView$3 = {
103000
+ "null": "null",
103001
+ empty: "(empty)",
103002
+ emptyString: "(empty string)",
103003
+ emptyList: "(empty list)",
103004
+ emptyObject: "(empty object)",
103005
+ truncated: "(nested too deeply to display)",
103006
+ itemCount: "{count, plural, one {# item} other {# items}}",
103007
+ keyCount: "{count, plural, one {# key} other {# keys}}",
103008
+ noPayload: "No additional data recorded.",
103009
+ noChanges: "No field changes recorded.",
103010
+ fieldColumn: "Field",
103011
+ beforeColumn: "Before",
103012
+ afterColumn: "After"
103013
+ };
103014
+ var analyticsUsePlatformAuditLabels$3 = {
103015
+ eventTypeLogin: "Login",
103016
+ eventTypeLogout: "Logout",
103017
+ eventTypeLoginFailed: "Failed login",
103018
+ eventTypePasswordChange: "Password change",
103019
+ eventTypeExport: "Export",
103020
+ eventTypeDownloadFile: "File download",
103021
+ eventTypeApiCall: "API call",
103022
+ eventTypeViewStudentRecord: "Student record viewed",
103023
+ eventTypeChangeGrade: "Grade change",
103024
+ eventTypeAdminAction: "Admin action",
103025
+ actionCreate: "Create",
103026
+ actionUpdate: "Update",
103027
+ actionDelete: "Delete",
103028
+ actionAccess: "Access"
103029
+ };
102951
103030
  var en = {
102952
103031
  accessTabAddAccess: accessTabAddAccess$3,
102953
103032
  accessTabLabels: accessTabLabels$3,
@@ -103205,7 +103284,11 @@ var en = {
103205
103284
  applyApplyWizard: applyApplyWizard$3,
103206
103285
  profileApplicationsTab: profileApplicationsTab$3,
103207
103286
  profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor$3,
103208
- graderTabLabels: graderTabLabels$3
103287
+ graderTabLabels: graderTabLabels$3,
103288
+ analyticsAnalyticsPlatformAuditLog: analyticsAnalyticsPlatformAuditLog$3,
103289
+ analyticsPlatformAuditLogDetailSheet: analyticsPlatformAuditLogDetailSheet$3,
103290
+ analyticsAuditLogJsonView: analyticsAuditLogJsonView$3,
103291
+ analyticsUsePlatformAuditLabels: analyticsUsePlatformAuditLabels$3
103209
103292
  };
103210
103293
 
103211
103294
  var accessTabAddAccess$2 = {
@@ -103826,6 +103909,10 @@ var analyticsAccessTimeHeatmap$2 = {
103826
103909
  tooltipActiveUsers: "{count} utilisateurs actifs"
103827
103910
  };
103828
103911
  var analyticsAnalyticsAuditLogStats$2 = {
103912
+ scopeAgent: "Agent",
103913
+ scopePlatform: "Plateforme",
103914
+ scopeAgentHint: "Modifications de configuration de cet agent.",
103915
+ scopePlatformHint: "Modifications et événements de sécurité de la plateforme.",
103829
103916
  noPermission: "Vous n'avez pas la permission de consulter les journaux d'audit.",
103830
103917
  searchForUser: "Rechercher un utilisateur",
103831
103918
  searchUserPlaceholder: "Rechercher un utilisateur...",
@@ -109329,6 +109416,81 @@ var skillsTabLabels$2 = {
109329
109416
  notBaseAgent: "Les compétences ne sont disponibles que pour les agents de base.",
109330
109417
  loading: "Chargement..."
109331
109418
  };
109419
+ var analyticsAnalyticsPlatformAuditLog$2 = {
109420
+ eventTypeLabel: "Type d'événement",
109421
+ allEventTypes: "Tous les types d'événement",
109422
+ actionLabel: "Action",
109423
+ allActions: "Toutes les actions",
109424
+ actorUsernameLabel: "Nom d'utilisateur de l'auteur",
109425
+ actorUsernamePlaceholder: "Filtrer par nom d'utilisateur",
109426
+ actorEmailLabel: "E-mail de l'auteur",
109427
+ actorEmailPlaceholder: "Filtrer par e-mail",
109428
+ pickDateRange: "Choisir une période",
109429
+ clearFilters: "Effacer les filtres",
109430
+ narrowSuggestion: "{count} entrées correspondent. Restreignez la période pour les consulter sans parcourir toutes les pages.",
109431
+ colTimestamp: "HORODATAGE ({timezone})",
109432
+ colEvent: "ÉVÉNEMENT / ACTION",
109433
+ colActor: "AUTEUR",
109434
+ colResource: "RESSOURCE",
109435
+ colIpAddress: "ADRESSE IP",
109436
+ colDetails: "Détails",
109437
+ kindModelChange: "Modification de modèle",
109438
+ kindEvent: "Événement de sécurité",
109439
+ viewDetails: "Voir",
109440
+ notAvailable: "—",
109441
+ loadError: "Une erreur s'est produite lors du chargement des journaux d'audit.",
109442
+ noEntries: "Aucune entrée d'audit n'a encore été enregistrée pour cette plateforme.",
109443
+ noFilteredEntries: "Aucune entrée d'audit ne correspond à ces filtres.",
109444
+ forbiddenTitle: "Vous n'avez pas l'autorisation de consulter les journaux d'audit de la plateforme.",
109445
+ forbiddenBody: "Demandez à un administrateur de la plateforme de vous accorder l'accès aux journaux d'audit.",
109446
+ resultSummary: "Affichage de {shown} entrées sur {total}."
109447
+ };
109448
+ var analyticsPlatformAuditLogDetailSheet$2 = {
109449
+ title: "Entrée d'audit",
109450
+ description: "Détail en lecture seule de cette entrée d'audit.",
109451
+ timestamp: "Horodatage",
109452
+ event: "Événement",
109453
+ action: "Action",
109454
+ actor: "Auteur",
109455
+ resource: "Ressource",
109456
+ ipAddress: "Adresse IP",
109457
+ entryId: "ID de l'entrée",
109458
+ changesHeading: "Modifications",
109459
+ metadataHeading: "Métadonnées",
109460
+ noMetadata: "Cet événement ne contient aucune métadonnée.",
109461
+ notAvailable: "—"
109462
+ };
109463
+ var analyticsAuditLogJsonView$2 = {
109464
+ "null": "null",
109465
+ empty: "(vide)",
109466
+ emptyString: "(chaîne vide)",
109467
+ emptyList: "(liste vide)",
109468
+ emptyObject: "(objet vide)",
109469
+ truncated: "(trop imbriqué pour être affiché)",
109470
+ itemCount: "{count, plural, one {# élément} other {# éléments}}",
109471
+ keyCount: "{count, plural, one {# clé} other {# clés}}",
109472
+ noPayload: "Aucune donnée supplémentaire enregistrée.",
109473
+ noChanges: "Aucune modification de champ enregistrée.",
109474
+ fieldColumn: "Champ",
109475
+ beforeColumn: "Avant",
109476
+ afterColumn: "Après"
109477
+ };
109478
+ var analyticsUsePlatformAuditLabels$2 = {
109479
+ eventTypeLogin: "Connexion",
109480
+ eventTypeLogout: "Déconnexion",
109481
+ eventTypeLoginFailed: "Échec de connexion",
109482
+ eventTypePasswordChange: "Changement de mot de passe",
109483
+ eventTypeExport: "Exportation",
109484
+ eventTypeDownloadFile: "Téléchargement de fichier",
109485
+ eventTypeApiCall: "Appel d'API",
109486
+ eventTypeViewStudentRecord: "Dossier étudiant consulté",
109487
+ eventTypeChangeGrade: "Modification de note",
109488
+ eventTypeAdminAction: "Action d'administration",
109489
+ actionCreate: "Créer",
109490
+ actionUpdate: "Mettre à jour",
109491
+ actionDelete: "Supprimer",
109492
+ actionAccess: "Accéder"
109493
+ };
109332
109494
  var fr = {
109333
109495
  accessTabAddAccess: accessTabAddAccess$2,
109334
109496
  accessTabLabels: accessTabLabels$2,
@@ -109586,7 +109748,11 @@ var fr = {
109586
109748
  profileApplicationsTab: profileApplicationsTab$2,
109587
109749
  profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor$2,
109588
109750
  slashSkillPicker: slashSkillPicker$2,
109589
- skillsTabLabels: skillsTabLabels$2
109751
+ skillsTabLabels: skillsTabLabels$2,
109752
+ analyticsAnalyticsPlatformAuditLog: analyticsAnalyticsPlatformAuditLog$2,
109753
+ analyticsPlatformAuditLogDetailSheet: analyticsPlatformAuditLogDetailSheet$2,
109754
+ analyticsAuditLogJsonView: analyticsAuditLogJsonView$2,
109755
+ analyticsUsePlatformAuditLabels: analyticsUsePlatformAuditLabels$2
109590
109756
  };
109591
109757
 
109592
109758
  var accessTabAddAccess$1 = {
@@ -110207,6 +110373,10 @@ var analyticsAccessTimeHeatmap$1 = {
110207
110373
  tooltipActiveUsers: "{count} usuarios activos"
110208
110374
  };
110209
110375
  var analyticsAnalyticsAuditLogStats$1 = {
110376
+ scopeAgent: "Agente",
110377
+ scopePlatform: "Plataforma",
110378
+ scopeAgentHint: "Cambios de configuración de este agente.",
110379
+ scopePlatformHint: "Cambios y eventos de seguridad de toda la plataforma.",
110210
110380
  noPermission: "No tienes permiso para ver los registros de auditoría.",
110211
110381
  searchForUser: "Buscar usuario",
110212
110382
  searchUserPlaceholder: "Buscar usuario...",
@@ -115710,6 +115880,81 @@ var skillsTabLabels$1 = {
115710
115880
  notBaseAgent: "Las habilidades solo están disponibles para los agentes base.",
115711
115881
  loading: "Cargando..."
115712
115882
  };
115883
+ var analyticsAnalyticsPlatformAuditLog$1 = {
115884
+ eventTypeLabel: "Tipo de evento",
115885
+ allEventTypes: "Todos los tipos de evento",
115886
+ actionLabel: "Acción",
115887
+ allActions: "Todas las acciones",
115888
+ actorUsernameLabel: "Nombre de usuario del actor",
115889
+ actorUsernamePlaceholder: "Filtrar por nombre de usuario",
115890
+ actorEmailLabel: "Correo del actor",
115891
+ actorEmailPlaceholder: "Filtrar por correo",
115892
+ pickDateRange: "Elige un rango de fechas",
115893
+ clearFilters: "Borrar filtros",
115894
+ narrowSuggestion: "{count} registros coinciden. Acota el rango de fechas para revisarlos sin recorrer todas las páginas.",
115895
+ colTimestamp: "FECHA Y HORA ({timezone})",
115896
+ colEvent: "EVENTO / ACCIÓN",
115897
+ colActor: "ACTOR",
115898
+ colResource: "RECURSO",
115899
+ colIpAddress: "DIRECCIÓN IP",
115900
+ colDetails: "Detalles",
115901
+ kindModelChange: "Cambio de modelo",
115902
+ kindEvent: "Evento de seguridad",
115903
+ viewDetails: "Ver",
115904
+ notAvailable: "—",
115905
+ loadError: "Se produjo un error al cargar los registros de auditoría.",
115906
+ noEntries: "Todavía no se han registrado entradas de auditoría para esta plataforma.",
115907
+ noFilteredEntries: "Ninguna entrada de auditoría coincide con estos filtros.",
115908
+ forbiddenTitle: "No tienes permiso para ver los registros de auditoría de la plataforma.",
115909
+ forbiddenBody: "Pide a un administrador de la plataforma que te dé acceso a los registros de auditoría.",
115910
+ resultSummary: "Mostrando {shown} de {total} entradas."
115911
+ };
115912
+ var analyticsPlatformAuditLogDetailSheet$1 = {
115913
+ title: "Entrada de auditoría",
115914
+ description: "Detalle de solo lectura de esta entrada de auditoría.",
115915
+ timestamp: "Fecha y hora",
115916
+ event: "Evento",
115917
+ action: "Acción",
115918
+ actor: "Actor",
115919
+ resource: "Recurso",
115920
+ ipAddress: "Dirección IP",
115921
+ entryId: "ID de entrada",
115922
+ changesHeading: "Cambios",
115923
+ metadataHeading: "Metadatos",
115924
+ noMetadata: "Este evento no incluye metadatos.",
115925
+ notAvailable: "—"
115926
+ };
115927
+ var analyticsAuditLogJsonView$1 = {
115928
+ "null": "null",
115929
+ empty: "(vacío)",
115930
+ emptyString: "(cadena vacía)",
115931
+ emptyList: "(lista vacía)",
115932
+ emptyObject: "(objeto vacío)",
115933
+ truncated: "(demasiado anidado para mostrarlo)",
115934
+ itemCount: "{count, plural, one {# elemento} other {# elementos}}",
115935
+ keyCount: "{count, plural, one {# clave} other {# claves}}",
115936
+ noPayload: "No se registraron datos adicionales.",
115937
+ noChanges: "No se registraron cambios de campos.",
115938
+ fieldColumn: "Campo",
115939
+ beforeColumn: "Antes",
115940
+ afterColumn: "Después"
115941
+ };
115942
+ var analyticsUsePlatformAuditLabels$1 = {
115943
+ eventTypeLogin: "Inicio de sesión",
115944
+ eventTypeLogout: "Cierre de sesión",
115945
+ eventTypeLoginFailed: "Inicio de sesión fallido",
115946
+ eventTypePasswordChange: "Cambio de contraseña",
115947
+ eventTypeExport: "Exportación",
115948
+ eventTypeDownloadFile: "Descarga de archivo",
115949
+ eventTypeApiCall: "Llamada a la API",
115950
+ eventTypeViewStudentRecord: "Expediente de estudiante consultado",
115951
+ eventTypeChangeGrade: "Cambio de calificación",
115952
+ eventTypeAdminAction: "Acción de administrador",
115953
+ actionCreate: "Crear",
115954
+ actionUpdate: "Actualizar",
115955
+ actionDelete: "Eliminar",
115956
+ actionAccess: "Acceder"
115957
+ };
115713
115958
  var es = {
115714
115959
  accessTabAddAccess: accessTabAddAccess$1,
115715
115960
  accessTabLabels: accessTabLabels$1,
@@ -115967,7 +116212,11 @@ var es = {
115967
116212
  profileApplicationsTab: profileApplicationsTab$1,
115968
116213
  profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor$1,
115969
116214
  slashSkillPicker: slashSkillPicker$1,
115970
- skillsTabLabels: skillsTabLabels$1
116215
+ skillsTabLabels: skillsTabLabels$1,
116216
+ analyticsAnalyticsPlatformAuditLog: analyticsAnalyticsPlatformAuditLog$1,
116217
+ analyticsPlatformAuditLogDetailSheet: analyticsPlatformAuditLogDetailSheet$1,
116218
+ analyticsAuditLogJsonView: analyticsAuditLogJsonView$1,
116219
+ analyticsUsePlatformAuditLabels: analyticsUsePlatformAuditLabels$1
115971
116220
  };
115972
116221
 
115973
116222
  var accessTabAddAccess = {
@@ -116588,6 +116837,10 @@ var analyticsAccessTimeHeatmap = {
116588
116837
  tooltipActiveUsers: "{count} 位活跃用户"
116589
116838
  };
116590
116839
  var analyticsAnalyticsAuditLogStats = {
116840
+ scopeAgent: "智能体",
116841
+ scopePlatform: "平台",
116842
+ scopeAgentHint: "此智能体的配置变更。",
116843
+ scopePlatformHint: "全平台的变更与安全事件。",
116591
116844
  noPermission: "您没有查看审计日志的权限。",
116592
116845
  searchForUser: "搜索用户",
116593
116846
  searchUserPlaceholder: "搜索用户...",
@@ -122091,6 +122344,81 @@ var skillsTabLabels = {
122091
122344
  notBaseAgent: "技能仅适用于基础智能体。",
122092
122345
  loading: "加载中..."
122093
122346
  };
122347
+ var analyticsAnalyticsPlatformAuditLog = {
122348
+ eventTypeLabel: "事件类型",
122349
+ allEventTypes: "所有事件类型",
122350
+ actionLabel: "操作",
122351
+ allActions: "所有操作",
122352
+ actorUsernameLabel: "操作者用户名",
122353
+ actorUsernamePlaceholder: "按用户名筛选",
122354
+ actorEmailLabel: "操作者邮箱",
122355
+ actorEmailPlaceholder: "按邮箱筛选",
122356
+ pickDateRange: "选择日期范围",
122357
+ clearFilters: "清除筛选",
122358
+ narrowSuggestion: "共有 {count} 条记录匹配。缩小日期范围可避免逐页翻阅。",
122359
+ colTimestamp: "时间 ({timezone})",
122360
+ colEvent: "事件 / 操作",
122361
+ colActor: "操作者",
122362
+ colResource: "资源",
122363
+ colIpAddress: "IP 地址",
122364
+ colDetails: "详情",
122365
+ kindModelChange: "数据变更",
122366
+ kindEvent: "安全事件",
122367
+ viewDetails: "查看",
122368
+ notAvailable: "—",
122369
+ loadError: "加载审计日志时出错。",
122370
+ noEntries: "该平台尚未记录任何审计日志。",
122371
+ noFilteredEntries: "没有符合这些筛选条件的审计日志。",
122372
+ forbiddenTitle: "您没有查看平台审计日志的权限。",
122373
+ forbiddenBody: "请联系平台管理员为您开通审计日志访问权限。",
122374
+ resultSummary: "显示 {total} 条中的 {shown} 条。"
122375
+ };
122376
+ var analyticsPlatformAuditLogDetailSheet = {
122377
+ title: "审计记录",
122378
+ description: "该审计日志记录的只读详情。",
122379
+ timestamp: "时间",
122380
+ event: "事件",
122381
+ action: "操作",
122382
+ actor: "操作者",
122383
+ resource: "资源",
122384
+ ipAddress: "IP 地址",
122385
+ entryId: "记录 ID",
122386
+ changesHeading: "变更内容",
122387
+ metadataHeading: "元数据",
122388
+ noMetadata: "该事件没有元数据。",
122389
+ notAvailable: "—"
122390
+ };
122391
+ var analyticsAuditLogJsonView = {
122392
+ "null": "null",
122393
+ empty: "(空)",
122394
+ emptyString: "(空字符串)",
122395
+ emptyList: "(空列表)",
122396
+ emptyObject: "(空对象)",
122397
+ truncated: "(嵌套层级过深,无法显示)",
122398
+ itemCount: "{count} 项",
122399
+ keyCount: "{count} 个键",
122400
+ noPayload: "没有记录额外数据。",
122401
+ noChanges: "没有记录字段变更。",
122402
+ fieldColumn: "字段",
122403
+ beforeColumn: "变更前",
122404
+ afterColumn: "变更后"
122405
+ };
122406
+ var analyticsUsePlatformAuditLabels = {
122407
+ eventTypeLogin: "登录",
122408
+ eventTypeLogout: "登出",
122409
+ eventTypeLoginFailed: "登录失败",
122410
+ eventTypePasswordChange: "修改密码",
122411
+ eventTypeExport: "导出",
122412
+ eventTypeDownloadFile: "文件下载",
122413
+ eventTypeApiCall: "API 调用",
122414
+ eventTypeViewStudentRecord: "查看学生记录",
122415
+ eventTypeChangeGrade: "成绩变更",
122416
+ eventTypeAdminAction: "管理员操作",
122417
+ actionCreate: "创建",
122418
+ actionUpdate: "更新",
122419
+ actionDelete: "删除",
122420
+ actionAccess: "访问"
122421
+ };
122094
122422
  var zh = {
122095
122423
  accessTabAddAccess: accessTabAddAccess,
122096
122424
  accessTabLabels: accessTabLabels,
@@ -122348,7 +122676,11 @@ var zh = {
122348
122676
  profileApplicationsTab: profileApplicationsTab,
122349
122677
  profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor,
122350
122678
  slashSkillPicker: slashSkillPicker,
122351
- skillsTabLabels: skillsTabLabels
122679
+ skillsTabLabels: skillsTabLabels,
122680
+ analyticsAnalyticsPlatformAuditLog: analyticsAnalyticsPlatformAuditLog,
122681
+ analyticsPlatformAuditLogDetailSheet: analyticsPlatformAuditLogDetailSheet,
122682
+ analyticsAuditLogJsonView: analyticsAuditLogJsonView,
122683
+ analyticsUsePlatformAuditLabels: analyticsUsePlatformAuditLabels
122352
122684
  };
122353
122685
 
122354
122686
  /**
@@ -182015,14 +182347,15 @@ const PAGE_SIZE$8 = 20;
182015
182347
  const SEARCH_DEBOUNCE_MS = 300;
182016
182348
  /**
182017
182349
  * The public application URL on the auth SPA for one form of a platform
182018
- * (`<auth-url>/applications/<platform-key>/<form-id>?app=<spa>`), or null when
182019
- * the auth SPA URL cannot be resolved. `authSpaUrl` (prop) wins; otherwise the
182020
- * runtime-injected env (`window.__ENV__.NEXT_PUBLIC_AUTH_URL`) is used. With no
182021
- * `formId` the link resolves the platform's default form (404 when none). The
182022
- * `app` param carries the SPA the applicant is sent to after submitting;
182023
- * absent/unknown means the mentor SPA.
182024
- */
182025
- function buildApplicationLink(platformKey, formId, authSpaUrl, app) {
182350
+ * (`<auth-url>/applications/<platform-key>/<form-id>?redirect-to=<origin>`), or
182351
+ * null when the auth SPA URL cannot be resolved. `authSpaUrl` (prop) wins;
182352
+ * otherwise the runtime-injected env (`window.__ENV__.NEXT_PUBLIC_AUTH_URL`) is
182353
+ * used. With no `formId` the link resolves the platform's default form (404
182354
+ * when none). The `redirect-to` param carries the origin the applicant is sent
182355
+ * back to after submitting — by default the origin the link is copied from — and
182356
+ * is omitted when no origin can be read (no DOM).
182357
+ */
182358
+ function buildApplicationLink(platformKey, formId, authSpaUrl, redirectTo) {
182026
182359
  var _a, _b;
182027
182360
  const base = (_b = authSpaUrl !== null && authSpaUrl !== void 0 ? authSpaUrl : (typeof window !== 'undefined'
182028
182361
  ? (_a = window.__ENV__) === null || _a === void 0 ? void 0 : _a.NEXT_PUBLIC_AUTH_URL
@@ -182031,7 +182364,8 @@ function buildApplicationLink(platformKey, formId, authSpaUrl, app) {
182031
182364
  return null;
182032
182365
  const root = `${trimTrailingSlashes(base)}/applications/${encodeURIComponent(platformKey)}`;
182033
182366
  const path = formId != null ? `${root}/${encodeURIComponent(String(formId))}` : root;
182034
- return `${path}?app=${encodeURIComponent(app || 'mentor')}`;
182367
+ const target = (typeof window !== 'undefined' ? window.location.origin : undefined);
182368
+ return target ? `${path}?redirect-to=${encodeURIComponent(target)}` : path;
182035
182369
  }
182036
182370
  /**
182037
182371
  * Applications management. Entry view lists the platform's application forms
@@ -182039,7 +182373,7 @@ function buildApplicationLink(platformKey, formId, authSpaUrl, app) {
182039
182373
  * per-form (or all-form) submission pipelines, the submission workspace with
182040
182374
  * per-student decisions, the form/question editor, and the ban list.
182041
182375
  */
182042
- function ApplicationsTab({ platformKey, authSpaUrl, currentSpa, }) {
182376
+ function ApplicationsTab({ platformKey, authSpaUrl, }) {
182043
182377
  const [view, setView] = useState({ name: 'forms' });
182044
182378
  if (view.name === 'editor') {
182045
182379
  return (jsx(QuestionsEditor, { platformKey: platformKey, initialFormId: view.formId, startNew: view.startNew, onBack: () => setView({ name: 'forms' }) }));
@@ -182053,10 +182387,10 @@ function ApplicationsTab({ platformKey, authSpaUrl, currentSpa, }) {
182053
182387
  if (view.name === 'submissions') {
182054
182388
  return (jsx(SubmissionsPipeline, { platformKey: platformKey, form: view.form, onBack: () => setView({ name: 'forms' }), onOpen: (submissionId) => setView({ name: 'detail', submissionId, form: view.form }) }));
182055
182389
  }
182056
- return (jsx(FormsList, { platformKey: platformKey, authSpaUrl: authSpaUrl, currentSpa: currentSpa, onViewSubmissions: (form) => setView({ name: 'submissions', form }), onEditForm: (formId) => setView({ name: 'editor', formId, startNew: false }), onNewForm: () => setView({ name: 'editor', formId: null, startNew: true }), onViewBlocks: () => setView({ name: 'blocks' }) }));
182390
+ return (jsx(FormsList, { platformKey: platformKey, authSpaUrl: authSpaUrl, onViewSubmissions: (form) => setView({ name: 'submissions', form }), onEditForm: (formId) => setView({ name: 'editor', formId, startNew: false }), onNewForm: () => setView({ name: 'editor', formId: null, startNew: true }), onViewBlocks: () => setView({ name: 'blocks' }) }));
182057
182391
  }
182058
182392
  /** The entry view: every application form of the platform, with actions. */
182059
- function FormsList({ platformKey, authSpaUrl, currentSpa, onViewSubmissions, onEditForm, onNewForm, onViewBlocks, }) {
182393
+ function FormsList({ platformKey, authSpaUrl, onViewSubmissions, onEditForm, onNewForm, onViewBlocks, }) {
182060
182394
  const t = useT();
182061
182395
  /** The form id whose link was just copied (transient "Copied" feedback). */
182062
182396
  const [copiedFormId, setCopiedFormId] = useState(null);
@@ -182070,7 +182404,7 @@ function FormsList({ platformKey, authSpaUrl, currentSpa, onViewSubmissions, onE
182070
182404
  const counts = statsCounts(stats);
182071
182405
  const total = Object.values(counts).reduce((sum, n) => sum + n, 0);
182072
182406
  const handleCopyLink = async (form) => {
182073
- const link = buildApplicationLink(platformKey, form.id, authSpaUrl, currentSpa);
182407
+ const link = buildApplicationLink(platformKey, form.id, authSpaUrl);
182074
182408
  if (!link)
182075
182409
  return;
182076
182410
  try {
@@ -182090,7 +182424,7 @@ function FormsList({ platformKey, authSpaUrl, currentSpa, onViewSubmissions, onE
182090
182424
  ? 'bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-900/30 dark:text-blue-300 dark:border-blue-900'
182091
182425
  : 'bg-gray-100 text-gray-600 border-gray-200 dark:bg-gray-700 dark:text-gray-300 dark:border-gray-600', children: t(form.enabled
182092
182426
  ? 'profileApplicationsTab.formEnabled'
182093
- : 'profileApplicationsTab.formDisabled') }) }), jsx("td", { className: "whitespace-nowrap px-6 py-4 text-right", children: jsxs("div", { className: "flex items-center justify-end gap-1", children: [buildApplicationLink(platformKey, form.id, authSpaUrl, currentSpa) && (jsxs(Tooltip$1, { children: [jsx(TooltipTrigger, { asChild: true, children: jsxs(Button$1, { variant: "ghost", className: copiedFormId === form.id
182427
+ : 'profileApplicationsTab.formDisabled') }) }), jsx("td", { className: "whitespace-nowrap px-6 py-4 text-right", children: jsxs("div", { className: "flex items-center justify-end gap-1", children: [buildApplicationLink(platformKey, form.id, authSpaUrl) && (jsxs(Tooltip$1, { children: [jsx(TooltipTrigger, { asChild: true, children: jsxs(Button$1, { variant: "ghost", className: copiedFormId === form.id
182094
182428
  ? 'h-8 w-8 p-0 text-blue-600 dark:text-blue-400'
182095
182429
  : 'h-8 w-8 p-0 text-gray-500 hover:text-gray-900 dark:text-gray-400 dark:hover:text-gray-100', onClick: () => handleCopyLink(form), "aria-label": t('profileApplicationsTab.copyFormLink', {
182096
182430
  form: ((_b = form.schema) === null || _b === void 0 ? void 0 : _b.title) ||
@@ -182201,7 +182535,7 @@ const TabDescription = ({ icon, title, children }) => {
182201
182535
  };
182202
182536
  const Admin = ({ tenant, onInviteClick, hasUserTabPermission = false, hasGroupsTabPermission = false, hasRolesTabPermission = false, hasPoliciesTabPermission = false, hasTeamsTabPermission = false, hasAlertsTabPermission = false, hasInviteUserPermission = false, hasCreateTeamPermission = false, onLoadGroupPermissions, rbacPermissions = {}, enableRbac = false, showGradebookTab = false, currentSpa, authSpaUrl, }) => {
182203
182537
  const t = useT();
182204
- return (jsx("div", { className: "border border-gray-200 rounded-lg p-6", children: jsxs(Tabs, { defaultValue: "users", "aria-label": t('profileAdmin.rbacManagementTabsAriaLabel'), children: [jsxs(TabsList, { "aria-label": t('profileAdmin.managementTabsAriaLabel'), className: "max-w-full overflow-x-auto justify-start px-1", children: [hasUserTabPermission && (jsx(TabsTrigger, { value: "users", children: t('profileAdmin.usersTab') })), hasGroupsTabPermission && (jsx(TabsTrigger, { value: "groups", children: t('profileAdmin.groupsTab') })), hasRolesTabPermission && (jsx(TabsTrigger, { value: "roles", children: t('profileAdmin.rolesTab') })), hasPoliciesTabPermission && (jsx(TabsTrigger, { value: "policies", children: t('profileAdmin.policiesTab') })), hasTeamsTabPermission && (jsx(TabsTrigger, { value: "teams", children: t('profileAdmin.teamsTab') })), hasAlertsTabPermission && (jsx(TabsTrigger, { value: "alerts", children: t('profileAdmin.alertsTab') })), jsx(TabsTrigger, { value: "applications", children: t('profileAdmin.applicationsTab') })] }), hasUserTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "users", children: [jsx(TabDescription, { icon: jsx(Users, { className: "w-5 h-5" }), title: t('profileAdmin.usersTab'), children: t('profileAdmin.usersDescription') }), jsx(UsersTab, { tenant: tenant, onInviteClick: onInviteClick, currentSpa: currentSpa, showGradebookTab: showGradebookTab })] })), hasGroupsTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "groups", children: [jsx(TabDescription, { icon: jsx(UsersRound, { className: "w-5 h-5" }), title: t('profileAdmin.groupsTab'), children: t('profileAdmin.groupsDescription') }), jsx(GroupsTab, { tenant: tenant })] })), hasRolesTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "roles", children: [jsx(TabDescription, { icon: jsx(UserCog, { className: "w-5 h-5" }), title: t('profileAdmin.rolesTab'), children: t('profileAdmin.rolesDescription') }), jsx(RolesTab, { tenant: tenant })] })), hasPoliciesTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "policies", children: [jsx(TabDescription, { icon: jsx(ScrollText, { className: "w-5 h-5" }), title: t('profileAdmin.policiesTab'), children: t('profileAdmin.policiesDescription') }), jsx(PoliciesTab, { tenant: tenant })] })), hasTeamsTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "teams", children: [jsx(TabDescription, { icon: jsx(Shield, { className: "w-5 h-5" }), title: t('profileAdmin.teamsTab'), children: t('profileAdmin.teamsDescription') }), jsx(GroupsTab, { tenant: tenant, isTeam: true, onInviteClick: onInviteClick, hasInviteUserPermission: hasInviteUserPermission, hasCreateTeamPermission: hasCreateTeamPermission, onLoadGroupPermissions: onLoadGroupPermissions, rbacPermissions: rbacPermissions, enableRbac: enableRbac })] })), hasAlertsTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "alerts", children: [jsx(TabDescription, { icon: jsx(BellRing, { className: "w-5 h-5" }), title: t('profileAdmin.alertsTab'), children: t('profileAdmin.alertsDescription') }), jsx(AlertsTab, { tenant: tenant })] })), jsxs(TabsContent, { className: "mt-4", value: "applications", children: [jsx(TabDescription, { icon: jsx(ClipboardList, { className: "w-5 h-5" }), title: t('profileAdmin.applicationsTab'), children: t('profileAdmin.applicationsTabDescription') }), jsx(ApplicationsTab, { platformKey: tenant, authSpaUrl: authSpaUrl, currentSpa: currentSpa })] })] }) }));
182538
+ return (jsx("div", { className: "border border-gray-200 rounded-lg p-6", children: jsxs(Tabs, { defaultValue: "users", "aria-label": t('profileAdmin.rbacManagementTabsAriaLabel'), children: [jsxs(TabsList, { "aria-label": t('profileAdmin.managementTabsAriaLabel'), className: "max-w-full overflow-x-auto justify-start px-1", children: [hasUserTabPermission && (jsx(TabsTrigger, { value: "users", children: t('profileAdmin.usersTab') })), hasGroupsTabPermission && (jsx(TabsTrigger, { value: "groups", children: t('profileAdmin.groupsTab') })), hasRolesTabPermission && (jsx(TabsTrigger, { value: "roles", children: t('profileAdmin.rolesTab') })), hasPoliciesTabPermission && (jsx(TabsTrigger, { value: "policies", children: t('profileAdmin.policiesTab') })), hasTeamsTabPermission && (jsx(TabsTrigger, { value: "teams", children: t('profileAdmin.teamsTab') })), hasAlertsTabPermission && (jsx(TabsTrigger, { value: "alerts", children: t('profileAdmin.alertsTab') })), jsx(TabsTrigger, { value: "applications", children: t('profileAdmin.applicationsTab') })] }), hasUserTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "users", children: [jsx(TabDescription, { icon: jsx(Users, { className: "w-5 h-5" }), title: t('profileAdmin.usersTab'), children: t('profileAdmin.usersDescription') }), jsx(UsersTab, { tenant: tenant, onInviteClick: onInviteClick, currentSpa: currentSpa, showGradebookTab: showGradebookTab })] })), hasGroupsTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "groups", children: [jsx(TabDescription, { icon: jsx(UsersRound, { className: "w-5 h-5" }), title: t('profileAdmin.groupsTab'), children: t('profileAdmin.groupsDescription') }), jsx(GroupsTab, { tenant: tenant })] })), hasRolesTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "roles", children: [jsx(TabDescription, { icon: jsx(UserCog, { className: "w-5 h-5" }), title: t('profileAdmin.rolesTab'), children: t('profileAdmin.rolesDescription') }), jsx(RolesTab, { tenant: tenant })] })), hasPoliciesTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "policies", children: [jsx(TabDescription, { icon: jsx(ScrollText, { className: "w-5 h-5" }), title: t('profileAdmin.policiesTab'), children: t('profileAdmin.policiesDescription') }), jsx(PoliciesTab, { tenant: tenant })] })), hasTeamsTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "teams", children: [jsx(TabDescription, { icon: jsx(Shield, { className: "w-5 h-5" }), title: t('profileAdmin.teamsTab'), children: t('profileAdmin.teamsDescription') }), jsx(GroupsTab, { tenant: tenant, isTeam: true, onInviteClick: onInviteClick, hasInviteUserPermission: hasInviteUserPermission, hasCreateTeamPermission: hasCreateTeamPermission, onLoadGroupPermissions: onLoadGroupPermissions, rbacPermissions: rbacPermissions, enableRbac: enableRbac })] })), hasAlertsTabPermission && (jsxs(TabsContent, { className: "mt-4", value: "alerts", children: [jsx(TabDescription, { icon: jsx(BellRing, { className: "w-5 h-5" }), title: t('profileAdmin.alertsTab'), children: t('profileAdmin.alertsDescription') }), jsx(AlertsTab, { tenant: tenant })] })), jsxs(TabsContent, { className: "mt-4", value: "applications", children: [jsx(TabDescription, { icon: jsx(ClipboardList, { className: "w-5 h-5" }), title: t('profileAdmin.applicationsTab'), children: t('profileAdmin.applicationsTabDescription') }), jsx(ApplicationsTab, { platformKey: tenant, authSpaUrl: authSpaUrl })] })] }) }));
182205
182539
  };
182206
182540
 
182207
182541
  function DeleteApiModal$1({ isOpen, onClose, apiKey, tenantKey }) {
@@ -252825,6 +253159,33 @@ function Markdown({ children, className }) {
252825
253159
  const AnalyticsSettingsContext = createContext({});
252826
253160
  AnalyticsSettingsContext.Provider;
252827
253161
 
253162
+ function Sheet({ ...props }) {
253163
+ return jsx(DialogPrimitive.Root, { "data-slot": "sheet", ...props });
253164
+ }
253165
+ function SheetPortal({ ...props }) {
253166
+ return jsx(DialogPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
253167
+ }
253168
+ function SheetOverlay({ className, ...props }) {
253169
+ return (jsx(DialogPrimitive.Overlay, { "data-slot": "sheet-overlay", className: cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50', className), ...props }));
253170
+ }
253171
+ function SheetContent({ className, children, side = 'right', ...props }) {
253172
+ const t = useT();
253173
+ return (jsxs(SheetPortal, { children: [jsx(SheetOverlay, {}), jsxs(DialogPrimitive.Content, { "data-slot": "sheet-content", className: cn('bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500', side === 'right' &&
253174
+ 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm', side === 'left' &&
253175
+ 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm', side === 'top' &&
253176
+ 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b', side === 'bottom' &&
253177
+ 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t', className), ...props, children: [children, jsxs(DialogPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [jsx(X$2, { className: "size-4" }), jsx("span", { className: "sr-only", children: t('uiSheet.close') })] })] })] }));
253178
+ }
253179
+ function SheetHeader({ className, ...props }) {
253180
+ return (jsx("div", { "data-slot": "sheet-header", className: cn('flex flex-col gap-1.5 p-4', className), ...props }));
253181
+ }
253182
+ function SheetTitle({ className, ...props }) {
253183
+ return (jsx(DialogPrimitive.Title, { "data-slot": "sheet-title", className: cn('text-foreground font-semibold', className), ...props }));
253184
+ }
253185
+ function SheetDescription({ className, ...props }) {
253186
+ return (jsx(DialogPrimitive.Description, { "data-slot": "sheet-description", className: cn('text-muted-foreground text-sm', className), ...props }));
253187
+ }
253188
+
252828
253189
  /**
252829
253190
  * Core agent search hook — thin wrapper around `useGetAiSearchMentorsQuery`.
252830
253191
  *
@@ -253888,33 +254249,6 @@ const CourseOutline = () => {
253888
254249
  : 'text-gray-600 hover:bg-gray-50'}`, children: [jsx("div", { className: "mr-2 flex-shrink-0", children: jsx(CompletionIcon, { node: sublesson }) }), jsx("span", { children: sublesson.display_name })] }, sublesson.id))) }))] }, lesson.id))) }))] }, module.id)))) }));
253889
254250
  };
253890
254251
 
253891
- function Sheet({ ...props }) {
253892
- return jsx(DialogPrimitive.Root, { "data-slot": "sheet", ...props });
253893
- }
253894
- function SheetPortal({ ...props }) {
253895
- return jsx(DialogPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
253896
- }
253897
- function SheetOverlay({ className, ...props }) {
253898
- return (jsx(DialogPrimitive.Overlay, { "data-slot": "sheet-overlay", className: cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50', className), ...props }));
253899
- }
253900
- function SheetContent({ className, children, side = 'right', ...props }) {
253901
- const t = useT();
253902
- return (jsxs(SheetPortal, { children: [jsx(SheetOverlay, {}), jsxs(DialogPrimitive.Content, { "data-slot": "sheet-content", className: cn('bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500', side === 'right' &&
253903
- 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm', side === 'left' &&
253904
- 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm', side === 'top' &&
253905
- 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b', side === 'bottom' &&
253906
- 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t', className), ...props, children: [children, jsxs(DialogPrimitive.Close, { className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none", children: [jsx(X$2, { className: "size-4" }), jsx("span", { className: "sr-only", children: t('uiSheet.close') })] })] })] }));
253907
- }
253908
- function SheetHeader({ className, ...props }) {
253909
- return (jsx("div", { "data-slot": "sheet-header", className: cn('flex flex-col gap-1.5 p-4', className), ...props }));
253910
- }
253911
- function SheetTitle({ className, ...props }) {
253912
- return (jsx(DialogPrimitive.Title, { "data-slot": "sheet-title", className: cn('text-foreground font-semibold', className), ...props }));
253913
- }
253914
- function SheetDescription({ className, ...props }) {
253915
- return (jsx(DialogPrimitive.Description, { "data-slot": "sheet-description", className: cn('text-muted-foreground text-sm', className), ...props }));
253916
- }
253917
-
253918
254252
  /**
253919
254253
  * Mobile drawer wrapping `<CourseOutline />` in a `Sheet` for responsive
253920
254254
  * course navigation. Ported from skillsai's `course-outline-drawer.tsx`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iblai/iblai-js",
3
- "version": "2.3.14",
3
+ "version": "2.3.16",
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,10 +76,10 @@
76
76
  "axios": "1.13.6",
77
77
  "dotenv": "16.6.1",
78
78
  "winston": "3.19.0",
79
- "@iblai/data-layer": "1.12.4",
80
- "@iblai/mcp": "1.8.12",
81
- "@iblai/web-containers": "1.16.10",
82
- "@iblai/web-utils": "2.1.12"
79
+ "@iblai/data-layer": "1.12.5",
80
+ "@iblai/mcp": "1.8.13",
81
+ "@iblai/web-containers": "1.16.12",
82
+ "@iblai/web-utils": "2.1.13"
83
83
  },
84
84
  "peerDependencies": {
85
85
  "@iblai/iblai-api": "4.166.0-ai",