@iblai/iblai-js 2.2.9 → 2.2.10
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.
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default, { useRef, useEffect, useState, useCallback, useLayoutEffect, forwardRef, createElement as createElement$1, createContext, useContext, useMemo, useReducer, useImperativeHandle, isValidElement, Children, PureComponent, cloneElement, Component, useId as useId$2, useDebugValue, lazy, Suspense } from 'react';
|
|
3
3
|
import { useDispatch, useSelector } from 'react-redux';
|
|
4
|
-
import { selectSessionId, selectActiveChatMessages, useCachedSessionId, chatActions, LOCAL_STORAGE_KEYS, TimeTracker, getInitials, useTenantMetadata, WithPermissions, useStripeUpgrade, openExternalUrl, CHAT_AREA_SIZE, isAlphaNumeric32, checkRbacPermission, getTimeAgo, REQUIRED_ACTIONS_FOR_GROUPS, formatRelativeTime as formatRelativeTime$2, ANONYMOUS_USERNAME, combineCSVData, redirectToAuthSpaJoinTenant, redirectToAuthSpa, getAuthSpaJoinUrl, useOS, selectNumberOfActiveChatMessages, useUsername, selectStreaming, isLoggedIn, TOOLS, hasRemoteAiConfig, isSafariBrowser, useShowAttachment, useShowVoiceCall, useShowVoiceRecorder, useMentorSettings, selectShowingSharedChat, selectRbacPermissions, useShowFreeTrialDialog, useEmbedMode, chatInputSliceSelectors, useResponsive, useAccessingPublicRoute, useVisitingTenant, useModelFileUploadCapabilities, useChatFileUpload, useVoiceChat, selectAttachedFiles, MENTOR_CHAT_DOCUMENTS_EXTENSIONS,
|
|
4
|
+
import { selectSessionId, selectActiveChatMessages, useCachedSessionId, chatActions, LOCAL_STORAGE_KEYS, TimeTracker, getInitials, useTenantMetadata, WithPermissions, useStripeUpgrade, openExternalUrl, CHAT_AREA_SIZE, isAlphaNumeric32, checkRbacPermission, getTimeAgo, REQUIRED_ACTIONS_FOR_GROUPS, formatRelativeTime as formatRelativeTime$2, ANONYMOUS_USERNAME, combineCSVData, redirectToAuthSpaJoinTenant, redirectToAuthSpa, getAuthSpaJoinUrl, useOS, selectNumberOfActiveChatMessages, useUsername, selectStreaming, isLoggedIn, TOOLS, hasRemoteAiConfig, isSafariBrowser, useShowAttachment, useShowVoiceCall, useShowVoiceRecorder, useMentorSettings, selectShowingSharedChat, selectRbacPermissions, useShowFreeTrialDialog, useEmbedMode, chatInputSliceSelectors, useResponsive, useAccessingPublicRoute, useVisitingTenant, useModelFileUploadCapabilities, useChatFileUpload, useVoiceChat, selectAttachedFiles, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, chatInputSliceActions, removeFile, WithFormPermissions, MENTOR_VISIBILITY } from '@iblai/web-utils';
|
|
5
5
|
import * as dataLayer from '@iblai/data-layer';
|
|
6
|
-
import { useCreateSessionIdMutation, useTimeTrackingMutation, useGetUserMetadataQuery, useGetUserMetadataEdxQuery, useUpdateUserMetadataMutation, useUpdateUserMetadataEdxMutation, useUploadProfileImageMutation, useResetPasswordMutation, useSelfRetireMutation, useCreateUserInstitutionMutation, useGetUserInstitutionsQuery, useCreateUserEducationMutation, useUpdateUserEducationMutation, useDeleteUserEducationMutation, useGetUserEducationQuery, useCreateUserCompanyMutation, useGetUserCompaniesQuery, useCreateUserExperienceMutation, useUpdateUserExperienceMutation, useDeleteUserExperienceMutation, useGetUserExperienceQuery, useGetUserResumeQuery, useCreateUserResumeMutation, useGetMySubscriptionsQuery, useGetItemSubscriptionQuery, useCancelSubscriptionMutation, useGetLearnerDetailsQuery, useGetUserEnrolledCoursesQuery, useGetUserEnrolledProgramsQuery, useGetUserCatalogPathwaysQuery, useGetUsersAsAssertionsQuery, useGetUserEarnedSkillsQuery, useGetUserReportedSkillsQuery, useGetUserDesiredSkillsQuery, useCreateGlobalMemoryMutation, useGetMemsearchStatusQuery, useGetUserMemorySettingsQuery, useUpdateUserMemorySettingsMutation, useGetGlobalMemoriesQuery, useDeleteGlobalMemoryMutation, useInviteUserMutation, usePlatformInvitationsQuery, useCreateCatalogInvitationCourseBulkMutation, useGetCatalogInvitationsCourseQuery, useLazyPlatformUsersQuery, useLazyPlatformUserGroupsQuery, useGetPersonnalizedSearchQuery, useCreateCatalogInvitationProgramBulkMutation, useGetCatalogInvitationsProgramQuery, useUpdateUserRoleMutation, useUpdateUserStatusMutation, useUpdatePlatformUserRoleWithPoliciesMutation, usePlatformUsersQuery, isPoliciesResponse, platformApiSlice, featureTags, useLazyGetRbacTeamsAccessListQuery, useCreateRbacTeamsAccessMutation, useGetRbacGroupsQuery, usePlatformUserGroupsQuery, useCreateRbacGroupMutation, useUpdateRbacGroupMutation, useDeleteRbacGroupMutation, useCreatePlatformUserGroupMutation, useUpdatePlatformUserGroupMutation, useDeletePlatformUserGroupMutation, useGetRbacGroupDetailsQuery, useGetPlatformUserGroupDetailsQuery, useGetRbacPermissionsMutation, useGetRbacRolesQuery, useCreateRbacRoleMutation, useUpdateRbacRoleMutation, useDeleteRbacRoleMutation, useGetRbacRoleDetailsQuery, useGetRbacActionsDefinitionQuery, useGetRbacResourceDiscoveryQuery, useGetRbacResourceListQuery, useGetRbacPoliciesQuery, useCreateRbacPolicyMutation, useUpdateRbacPolicyMutation, useDeleteRbacPolicyMutation, useGetRbacPolicyDetailsQuery, useGetWatchedGroupsQuery, useCreateWatchedGroupMutation, useUpdateWatchedGroupMutation, useDeleteWatchedGroupMutation, useAddWatchedUserMutation, useRemoveWatchedUserMutation, useAddWatcherMutation, useUpdateWatcherMutation, useDeleteWatcherMutation, useGetWatchedUsersQuery, useGetWatchersQuery, WATCHER_NOTIFICATION_EVENTS, WATCHER_NOTIFICATION_EVENT_LABELS, useGetApplicationFormsQuery, useGetApplicationFormDetailQuery, useCreateApplicationFormMutation, useUpdateApplicationFormMutation, useGetApplicationAdminDetailQuery, useInviteApplicationCandidateMutation, useLazyGetApplicationAttachmentFileQuery, useCreateApplicationWaiverMutation, useDeleteApplicationWaiverMutation, useSubmitApplicationOverrideMutation, useUpdateApplicationPlacementMutation, useDeleteApplicationCourseAssignmentMutation, useCreateApplicationNoteMutation, useUpdateApplicationNoteMutation, useDeleteApplicationNoteMutation, useTransitionApplicationMutation, useLinkApplicationCandidateMutation, useCreateApplicationPlacementsMutation, useGetCustomMentorsQuery, useCreateApplicationCourseAssignmentsMutation, useGetApplicationBlocksQuery, useDeleteApplicationBlockMutation, useGetApplicationsPipelineStatsQuery, useGetApplicationsPipelineQuery, useDeleteApiKeyMutation, useGetApiKeysQuery, useCreateApiKeyMutation, useCreateLLMCredentialMutation, useGetCredentialsSchemaQuery, useGetMaskedLLMCredentialsQuery, useGetLlmsQuery, useDeleteIntegrationCredentialMutation, useDeleteCredentialMutation, useCreateIntegrationCredentialMutation, useGetIntegrationCredentialsSchemaQuery, useGetMaskedIntegrationCredentialsQuery, useGetAccountBillingInfoQuery, useUpdateAutoRechargeInfoMutation, useTriggerAutoRechargeMutation, useCreateStripeCustomerPortalMutation, useSetPlatformConfigurationsMutation, useGetPlatformConfigurationsQuery, useUpdatePlatformMembershipMutation, useGetPlatformMembershipQuery, useGetCustomDomainsQuery, useCreateCustomDomainMutation, useDeleteCustomDomainMutation, useGetStudentMentorCreationStatusQuery, useSetStudentMentorCreationStatusMutation, coreApiSlice, recommendationPromptTypeEnum, useGetRecommendedPromptsListQuery, useCreateRecommendedPromptMutation, useUpdateRecommendedPromptMutation, useDeleteRecommendedPromptMutation, useLazyGetPublicPlatformImageAssetFileUrlQuery, useUpdateTenantMetadataMutation, useCreatePlatformImageAssetMutation, useGetProviderConfigQuery, useCreateProviderConfigMutation, useDeleteProviderConfigMutation, useGetExternalMappingQuery, useGetCredentialsListQuery, useCreateExternalMappingMutation, useDeleteExternalMappingMutation, useGetMemsearchConfigQuery, useUpdateMemsearchConfigMutation, useGetStripeConnectStatusQuery, useStartStripeConnectOnboardingMutation, useLazyGetStripeConnectDashboardQuery, useGetAiSearchMentorsQuery, useListPaywallsQuery, useListPricesQuery, useCreatePriceMutation, useUpdatePriceMutation, useDeletePriceMutation, useGetPaywallConfigQuery, useEnablePaywallMutation, useUpdatePaywallMutation, useGetNotificationsCountQuery, useLazyGetNotificationsQuery, useMarkAllAsReadMutation, useCreateNotificationPreviewMutation, useSendNotificationMutation, useGetMentorsQuery, useUpdateTemplateMutation, useGetTemplateDetailsQuery, useGetTemplatesQuery, useLazyGetTemplateDetailsQuery, useToggleTemplateMutation, useGetTopicsStatsQuery, useGetUsersStatsQuery, useGetSessionStatsQuery, useGetTopicsDetailsStatsQuery, useGetAccessTimeHeatmapQuery, useGetUserDetailsStatsQuery, useGetTranscriptsConversationHeadlineQuery, useGetAverageRatingQuery, useGetFinancialStatsQuery, useGetDetailedFinancialStatsQuery, useGetTranscriptsMessagesDetailsQuery, useGetTranscriptsMessagesQuery, useGetReportDetailQuery, useLazyGetDownloadReportFromURLQuery, useGetMentorPublicSettingsQuery, useGetReportsQuery, useCreateReportMutation, useGetContentAnalyticsQuery, useGetContentAnalyticsDetailsQuery, useGetRevenueQuery, useListSubscribersQuery, useGetAuditLogsQuery, useLazyGetCourseMetaDataQuery, useLazyGetCourseCompletionOutlinesQuery, useLazyGetCourseEligibilityQuery, useLazyGetUserEnrolledCoursesQuery, useLazyGetUserAssignedCoursesQuery, useLazyGetUserCredentialsQuery, useLazyGetOverTimeActivityQuery, useLazyGetCatalogSearchQuery, useCreateOrUpdateUserReportedSkillMutation, useCreateOrUpdateUserDesiredSkillMutation, useLazyGetPathwayListQuery, useLazyGetUserAssignedPathwaysQuery, useLazyGetUserEnrolledPathwaysQuery, useLazyGetPathwayCompletionQuery, useLazyGetProgramListQuery, useLazyGetProgramCompletionQuery, useLazyGetUserEnrolledProgramsQuery, useLazyGetAssignedProgramsQuery, useLazyGetUserSkillsPointsQuery, useLazyGetUserReportedSkillsQuery, useLazyGetUserDesiredSkillsQuery, useLazyGetUserCatalogPathwaysQuery, useLazyGetPerLearnerInfoQuery, useLazyGetEdxSSOTokenQuery, useCreateCourseEnrollmentMutation, useCreateStripeCheckoutSessionMutation, useLazyGetCourseProgressQuery, useLazyGetCourseCompletionQuery, useLazyGetPersonnalizedSearchQuery, useUpdateExamAttemptMutation, useStartExamMutation, useLazyGetExamInfoQuery, useGetClawMentorConfigQuery, useGetClawInstancesQuery, useGetAgentConfigQuery, useUpdateClawMentorConfigMutation, useCreateClawMentorConfigMutation, useDeleteClawMentorConfigMutation, usePushClawConfigMutation, useCreateClawInstanceMutation, useDeleteClawInstanceMutation, useUpdateAgentConfigMutation, useHealthCheckClawInstanceMutation, useTestConnectivityClawInstanceMutation, useUpdateClawInstanceMutation, useGetAgentSkillsQuery, useGetMentorSkillAssignmentsQuery, useCreateMentorSkillAssignmentMutation, useUpdateMentorSkillAssignmentMutation, useDeleteMentorSkillAssignmentMutation, useCreateAgentSkillMutation, useUpdateAgentSkillMutation, useDeleteAgentSkillMutation, useCreateCheckoutMutation, useGetUserProjectsQuery, useUpdateUserProjectMutation, useGetTrainingDocumentsQuery, useGetVectorDocumentsQuery, useGetMentorMemoriesListQuery, useGetMemoryCategoriesAdminQuery, useDeleteMentorMemoryMutation, useUpdateMentorMemoryMutation, useCreateMentorMemoryMutation, useLazyGetConnectedServiceAuthUrlQuery, useCreateUserProjectMutation, useDeleteUserProjectMutation, useGetUserProjectDetailsQuery, useEditTrainingDocumentMutation, useAddTrainingDocumentMutation, useLazyGetCredentialsQuery, useGetMentorSettingsQuery, useEditMentorMutation, useGetMentorCategoriesQuery, useCreateMentorMutation, useUpdateUserPlatformMetadataMutation, useGetApplicationStatusQuery, useListOwnApplicationsQuery, useGetApplicationFormQuery, useWithdrawApplicationMutation, useRenewApplicationMutation, useCreateApplicationDraftMutation, useSubmitApplicationMutation, useUpdateApplicationMutation, useUploadApplicationAttachmentMutation, useDeleteApplicationAttachmentMutation, useGetPromptCategoriesQuery, useCreatePromptMutation, useDeletePromptMutation, useGetPromptsSearchQuery, useUpdatePromptMutation, useDeleteTrainingDocumentMutation, useGetTrainingDocumentRetrainScheduleQuery, useCreateTrainingDocumentRetrainScheduleMutation } from '@iblai/data-layer';
|
|
6
|
+
import { useCreateSessionIdMutation, useTimeTrackingMutation, useGetUserMetadataQuery, useGetUserMetadataEdxQuery, useUpdateUserMetadataMutation, useUpdateUserMetadataEdxMutation, useUploadProfileImageMutation, useResetPasswordMutation, useSelfRetireMutation, useCreateUserInstitutionMutation, useGetUserInstitutionsQuery, useCreateUserEducationMutation, useUpdateUserEducationMutation, useDeleteUserEducationMutation, useGetUserEducationQuery, useCreateUserCompanyMutation, useGetUserCompaniesQuery, useCreateUserExperienceMutation, useUpdateUserExperienceMutation, useDeleteUserExperienceMutation, useGetUserExperienceQuery, useGetUserResumeQuery, useCreateUserResumeMutation, useGetMySubscriptionsQuery, useGetItemSubscriptionQuery, useCancelSubscriptionMutation, useGetLearnerDetailsQuery, useGetUserEnrolledCoursesQuery, useGetUserEnrolledProgramsQuery, useGetUserCatalogPathwaysQuery, useGetUsersAsAssertionsQuery, useGetUserEarnedSkillsQuery, useGetUserReportedSkillsQuery, useGetUserDesiredSkillsQuery, useCreateGlobalMemoryMutation, useGetMemsearchStatusQuery, useGetUserMemorySettingsQuery, useUpdateUserMemorySettingsMutation, useGetGlobalMemoriesQuery, useDeleteGlobalMemoryMutation, useInviteUserMutation, usePlatformInvitationsQuery, useCreateCatalogInvitationCourseBulkMutation, useGetCatalogInvitationsCourseQuery, useLazyPlatformUsersQuery, useLazyPlatformUserGroupsQuery, useGetPersonnalizedSearchQuery, useCreateCatalogInvitationProgramBulkMutation, useGetCatalogInvitationsProgramQuery, useUpdateUserRoleMutation, useUpdateUserStatusMutation, useUpdatePlatformUserRoleWithPoliciesMutation, usePlatformUsersQuery, isPoliciesResponse, platformApiSlice, featureTags, useLazyGetRbacTeamsAccessListQuery, useCreateRbacTeamsAccessMutation, useGetRbacGroupsQuery, usePlatformUserGroupsQuery, useCreateRbacGroupMutation, useUpdateRbacGroupMutation, useDeleteRbacGroupMutation, useCreatePlatformUserGroupMutation, useUpdatePlatformUserGroupMutation, useDeletePlatformUserGroupMutation, useGetRbacGroupDetailsQuery, useGetPlatformUserGroupDetailsQuery, useGetRbacPermissionsMutation, useGetRbacRolesQuery, useCreateRbacRoleMutation, useUpdateRbacRoleMutation, useDeleteRbacRoleMutation, useGetRbacRoleDetailsQuery, useGetRbacActionsDefinitionQuery, useGetRbacResourceDiscoveryQuery, useGetRbacResourceListQuery, useGetRbacPoliciesQuery, useCreateRbacPolicyMutation, useUpdateRbacPolicyMutation, useDeleteRbacPolicyMutation, useGetRbacPolicyDetailsQuery, useGetWatchedGroupsQuery, useCreateWatchedGroupMutation, useUpdateWatchedGroupMutation, useDeleteWatchedGroupMutation, useAddWatchedUserMutation, useRemoveWatchedUserMutation, useAddWatcherMutation, useUpdateWatcherMutation, useDeleteWatcherMutation, useGetWatchedUsersQuery, useGetWatchersQuery, WATCHER_NOTIFICATION_EVENTS, WATCHER_NOTIFICATION_EVENT_LABELS, useGetApplicationFormsQuery, useGetApplicationFormDetailQuery, useCreateApplicationFormMutation, useUpdateApplicationFormMutation, useGetApplicationAdminDetailQuery, useInviteApplicationCandidateMutation, useLazyGetApplicationAttachmentFileQuery, useCreateApplicationWaiverMutation, useDeleteApplicationWaiverMutation, useSubmitApplicationOverrideMutation, useUpdateApplicationPlacementMutation, useDeleteApplicationCourseAssignmentMutation, useCreateApplicationNoteMutation, useUpdateApplicationNoteMutation, useDeleteApplicationNoteMutation, useTransitionApplicationMutation, useLinkApplicationCandidateMutation, useCreateApplicationPlacementsMutation, useGetCustomMentorsQuery, useCreateApplicationCourseAssignmentsMutation, useGetApplicationBlocksQuery, useDeleteApplicationBlockMutation, useGetApplicationsPipelineStatsQuery, useGetApplicationsPipelineQuery, useDeleteApiKeyMutation, useGetApiKeysQuery, useCreateApiKeyMutation, useCreateLLMCredentialMutation, useGetCredentialsSchemaQuery, useGetMaskedLLMCredentialsQuery, useGetLlmsQuery, useDeleteIntegrationCredentialMutation, useDeleteCredentialMutation, useCreateIntegrationCredentialMutation, useGetIntegrationCredentialsSchemaQuery, useGetMaskedIntegrationCredentialsQuery, useGetAccountBillingInfoQuery, useUpdateAutoRechargeInfoMutation, useTriggerAutoRechargeMutation, useCreateStripeCustomerPortalMutation, useSetPlatformConfigurationsMutation, useGetPlatformConfigurationsQuery, useUpdatePlatformMembershipMutation, useGetPlatformMembershipQuery, useGetCustomDomainsQuery, useCreateCustomDomainMutation, useDeleteCustomDomainMutation, useGetStudentMentorCreationStatusQuery, useSetStudentMentorCreationStatusMutation, coreApiSlice, recommendationPromptTypeEnum, useGetRecommendedPromptsListQuery, useCreateRecommendedPromptMutation, useUpdateRecommendedPromptMutation, useDeleteRecommendedPromptMutation, useLazyGetPublicPlatformImageAssetFileUrlQuery, useUpdateTenantMetadataMutation, useCreatePlatformImageAssetMutation, useGetProviderConfigQuery, useCreateProviderConfigMutation, useDeleteProviderConfigMutation, useGetExternalMappingQuery, useGetCredentialsListQuery, useCreateExternalMappingMutation, useDeleteExternalMappingMutation, useGetMemsearchConfigQuery, useUpdateMemsearchConfigMutation, useGetStripeConnectStatusQuery, useStartStripeConnectOnboardingMutation, useLazyGetStripeConnectDashboardQuery, useGetAiSearchMentorsQuery, useListPaywallsQuery, useListPricesQuery, useCreatePriceMutation, useUpdatePriceMutation, useDeletePriceMutation, useGetPaywallConfigQuery, useEnablePaywallMutation, useUpdatePaywallMutation, useGetNotificationsCountQuery, useLazyGetNotificationsQuery, useMarkAllAsReadMutation, useCreateNotificationPreviewMutation, useSendNotificationMutation, useGetMentorsQuery, useUpdateTemplateMutation, useGetTemplateDetailsQuery, useGetTemplatesQuery, useLazyGetTemplateDetailsQuery, useToggleTemplateMutation, useGetTopicsStatsQuery, useGetUsersStatsQuery, useGetSessionStatsQuery, useGetTopicsDetailsStatsQuery, useGetAccessTimeHeatmapQuery, useGetUserDetailsStatsQuery, useGetTranscriptsConversationHeadlineQuery, useGetAverageRatingQuery, useGetFinancialStatsQuery, useGetDetailedFinancialStatsQuery, useGetTranscriptsMessagesDetailsQuery, useGetTranscriptsMessagesQuery, useGetReportDetailQuery, useLazyGetDownloadReportFromURLQuery, useGetMentorPublicSettingsQuery, useGetReportsQuery, useCreateReportMutation, useGetContentAnalyticsQuery, useGetContentAnalyticsDetailsQuery, useGetRevenueQuery, useListSubscribersQuery, useGetAuditLogsQuery, useLazyGetCourseMetaDataQuery, useLazyGetCourseCompletionOutlinesQuery, useLazyGetCourseEligibilityQuery, useLazyGetUserEnrolledCoursesQuery, useLazyGetUserAssignedCoursesQuery, useLazyGetUserCredentialsQuery, useLazyGetOverTimeActivityQuery, useLazyGetCatalogSearchQuery, useCreateOrUpdateUserReportedSkillMutation, useCreateOrUpdateUserDesiredSkillMutation, useLazyGetPathwayListQuery, useLazyGetUserAssignedPathwaysQuery, useLazyGetUserEnrolledPathwaysQuery, useLazyGetPathwayCompletionQuery, useLazyGetProgramListQuery, useLazyGetProgramCompletionQuery, useLazyGetUserEnrolledProgramsQuery, useLazyGetAssignedProgramsQuery, useLazyGetUserSkillsPointsQuery, useLazyGetUserReportedSkillsQuery, useLazyGetUserDesiredSkillsQuery, useLazyGetUserCatalogPathwaysQuery, useLazyGetPerLearnerInfoQuery, useLazyGetEdxSSOTokenQuery, useCreateCourseEnrollmentMutation, useCreateStripeCheckoutSessionMutation, useLazyGetCourseProgressQuery, useLazyGetCourseCompletionQuery, useLazyGetPersonnalizedSearchQuery, useUpdateExamAttemptMutation, useStartExamMutation, useLazyGetExamInfoQuery, useGetClawMentorConfigQuery, useGetClawInstancesQuery, useGetAgentConfigQuery, useUpdateClawMentorConfigMutation, useCreateClawMentorConfigMutation, useDeleteClawMentorConfigMutation, usePushClawConfigMutation, useCreateClawInstanceMutation, useDeleteClawInstanceMutation, useUpdateAgentConfigMutation, useHealthCheckClawInstanceMutation, useTestConnectivityClawInstanceMutation, useUpdateClawInstanceMutation, useGetAgentSkillResourcesQuery, useCreateAgentSkillResourceMutation, useUpdateAgentSkillResourceMutation, useUploadAgentSkillResourceAssetMutation, useDeleteAgentSkillResourceMutation, useGetAgentSkillsQuery, useGetMentorSkillAssignmentsQuery, useCreateMentorSkillAssignmentMutation, useUpdateMentorSkillAssignmentMutation, useDeleteMentorSkillAssignmentMutation, useCreateAgentSkillMutation, useUpdateAgentSkillMutation, useDeleteAgentSkillMutation, resolveEffectiveAgentSkills, filterSlashSkills, useCreateCheckoutMutation, useGetUserProjectsQuery, useUpdateUserProjectMutation, useGetTrainingDocumentsQuery, useGetVectorDocumentsQuery, useGetMentorMemoriesListQuery, useGetMemoryCategoriesAdminQuery, useDeleteMentorMemoryMutation, useUpdateMentorMemoryMutation, useCreateMentorMemoryMutation, useLazyGetConnectedServiceAuthUrlQuery, useCreateUserProjectMutation, useDeleteUserProjectMutation, useGetUserProjectDetailsQuery, useEditTrainingDocumentMutation, useAddTrainingDocumentMutation, useLazyGetCredentialsQuery, useGetMentorSettingsQuery, useEditMentorMutation, useGetMentorCategoriesQuery, useCreateMentorMutation, useUpdateUserPlatformMetadataMutation, useGetApplicationStatusQuery, useListOwnApplicationsQuery, useGetApplicationFormQuery, useWithdrawApplicationMutation, useRenewApplicationMutation, useCreateApplicationDraftMutation, useSubmitApplicationMutation, useUpdateApplicationMutation, useUploadApplicationAttachmentMutation, useDeleteApplicationAttachmentMutation, useGetPromptCategoriesQuery, useCreatePromptMutation, useDeletePromptMutation, useGetPromptsSearchQuery, useUpdatePromptMutation, useDeleteTrainingDocumentMutation, useGetTrainingDocumentRetrainScheduleQuery, useCreateTrainingDocumentRetrainScheduleMutation } from '@iblai/data-layer';
|
|
7
7
|
import { toast } from 'sonner';
|
|
8
8
|
import { jsx, Fragment as Fragment$1, jsxs } from 'react/jsx-runtime';
|
|
9
9
|
import * as ReactDOM from 'react-dom';
|
|
@@ -54758,7 +54758,7 @@ const createLucideIcon = (iconName, iconNode) => {
|
|
|
54758
54758
|
*/
|
|
54759
54759
|
|
|
54760
54760
|
|
|
54761
|
-
const __iconNode$
|
|
54761
|
+
const __iconNode$2l = [
|
|
54762
54762
|
[
|
|
54763
54763
|
"path",
|
|
54764
54764
|
{
|
|
@@ -54767,7 +54767,7 @@ const __iconNode$2k = [
|
|
|
54767
54767
|
}
|
|
54768
54768
|
]
|
|
54769
54769
|
];
|
|
54770
|
-
const Activity = createLucideIcon("activity", __iconNode$
|
|
54770
|
+
const Activity = createLucideIcon("activity", __iconNode$2l);
|
|
54771
54771
|
|
|
54772
54772
|
/**
|
|
54773
54773
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54777,12 +54777,12 @@ const Activity = createLucideIcon("activity", __iconNode$2k);
|
|
|
54777
54777
|
*/
|
|
54778
54778
|
|
|
54779
54779
|
|
|
54780
|
-
const __iconNode$
|
|
54780
|
+
const __iconNode$2k = [
|
|
54781
54781
|
["path", { d: "M17 12H7", key: "16if0g" }],
|
|
54782
54782
|
["path", { d: "M19 18H5", key: "18s9l3" }],
|
|
54783
54783
|
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
54784
54784
|
];
|
|
54785
|
-
const AlignCenter = createLucideIcon("align-center", __iconNode$
|
|
54785
|
+
const AlignCenter = createLucideIcon("align-center", __iconNode$2k);
|
|
54786
54786
|
|
|
54787
54787
|
/**
|
|
54788
54788
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54792,12 +54792,12 @@ const AlignCenter = createLucideIcon("align-center", __iconNode$2j);
|
|
|
54792
54792
|
*/
|
|
54793
54793
|
|
|
54794
54794
|
|
|
54795
|
-
const __iconNode$
|
|
54795
|
+
const __iconNode$2j = [
|
|
54796
54796
|
["path", { d: "M15 12H3", key: "6jk70r" }],
|
|
54797
54797
|
["path", { d: "M17 18H3", key: "1amg6g" }],
|
|
54798
54798
|
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
54799
54799
|
];
|
|
54800
|
-
const AlignLeft = createLucideIcon("align-left", __iconNode$
|
|
54800
|
+
const AlignLeft = createLucideIcon("align-left", __iconNode$2j);
|
|
54801
54801
|
|
|
54802
54802
|
/**
|
|
54803
54803
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54807,12 +54807,12 @@ const AlignLeft = createLucideIcon("align-left", __iconNode$2i);
|
|
|
54807
54807
|
*/
|
|
54808
54808
|
|
|
54809
54809
|
|
|
54810
|
-
const __iconNode$
|
|
54810
|
+
const __iconNode$2i = [
|
|
54811
54811
|
["path", { d: "M21 12H9", key: "dn1m92" }],
|
|
54812
54812
|
["path", { d: "M21 18H7", key: "1ygte8" }],
|
|
54813
54813
|
["path", { d: "M21 6H3", key: "1jwq7v" }]
|
|
54814
54814
|
];
|
|
54815
|
-
const AlignRight = createLucideIcon("align-right", __iconNode$
|
|
54815
|
+
const AlignRight = createLucideIcon("align-right", __iconNode$2i);
|
|
54816
54816
|
|
|
54817
54817
|
/**
|
|
54818
54818
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54822,12 +54822,12 @@ const AlignRight = createLucideIcon("align-right", __iconNode$2h);
|
|
|
54822
54822
|
*/
|
|
54823
54823
|
|
|
54824
54824
|
|
|
54825
|
-
const __iconNode$
|
|
54825
|
+
const __iconNode$2h = [
|
|
54826
54826
|
["rect", { width: "20", height: "5", x: "2", y: "3", rx: "1", key: "1wp1u1" }],
|
|
54827
54827
|
["path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8", key: "1s80jp" }],
|
|
54828
54828
|
["path", { d: "M10 12h4", key: "a56b0p" }]
|
|
54829
54829
|
];
|
|
54830
|
-
const Archive = createLucideIcon("archive", __iconNode$
|
|
54830
|
+
const Archive = createLucideIcon("archive", __iconNode$2h);
|
|
54831
54831
|
|
|
54832
54832
|
/**
|
|
54833
54833
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54837,11 +54837,11 @@ const Archive = createLucideIcon("archive", __iconNode$2g);
|
|
|
54837
54837
|
*/
|
|
54838
54838
|
|
|
54839
54839
|
|
|
54840
|
-
const __iconNode$
|
|
54840
|
+
const __iconNode$2g = [
|
|
54841
54841
|
["path", { d: "M12 5v14", key: "s699le" }],
|
|
54842
54842
|
["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
|
|
54843
54843
|
];
|
|
54844
|
-
const ArrowDown = createLucideIcon("arrow-down", __iconNode$
|
|
54844
|
+
const ArrowDown = createLucideIcon("arrow-down", __iconNode$2g);
|
|
54845
54845
|
|
|
54846
54846
|
/**
|
|
54847
54847
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54851,11 +54851,11 @@ const ArrowDown = createLucideIcon("arrow-down", __iconNode$2f);
|
|
|
54851
54851
|
*/
|
|
54852
54852
|
|
|
54853
54853
|
|
|
54854
|
-
const __iconNode$
|
|
54854
|
+
const __iconNode$2f = [
|
|
54855
54855
|
["path", { d: "m12 19-7-7 7-7", key: "1l729n" }],
|
|
54856
54856
|
["path", { d: "M19 12H5", key: "x3x0zl" }]
|
|
54857
54857
|
];
|
|
54858
|
-
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$
|
|
54858
|
+
const ArrowLeft = createLucideIcon("arrow-left", __iconNode$2f);
|
|
54859
54859
|
|
|
54860
54860
|
/**
|
|
54861
54861
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54865,11 +54865,11 @@ const ArrowLeft = createLucideIcon("arrow-left", __iconNode$2e);
|
|
|
54865
54865
|
*/
|
|
54866
54866
|
|
|
54867
54867
|
|
|
54868
|
-
const __iconNode$
|
|
54868
|
+
const __iconNode$2e = [
|
|
54869
54869
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
54870
54870
|
["path", { d: "m12 5 7 7-7 7", key: "xquz4c" }]
|
|
54871
54871
|
];
|
|
54872
|
-
const ArrowRight = createLucideIcon("arrow-right", __iconNode$
|
|
54872
|
+
const ArrowRight = createLucideIcon("arrow-right", __iconNode$2e);
|
|
54873
54873
|
|
|
54874
54874
|
/**
|
|
54875
54875
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54879,11 +54879,11 @@ const ArrowRight = createLucideIcon("arrow-right", __iconNode$2d);
|
|
|
54879
54879
|
*/
|
|
54880
54880
|
|
|
54881
54881
|
|
|
54882
|
-
const __iconNode$
|
|
54882
|
+
const __iconNode$2d = [
|
|
54883
54883
|
["path", { d: "m5 12 7-7 7 7", key: "hav0vg" }],
|
|
54884
54884
|
["path", { d: "M12 19V5", key: "x0mq9r" }]
|
|
54885
54885
|
];
|
|
54886
|
-
const ArrowUp = createLucideIcon("arrow-up", __iconNode$
|
|
54886
|
+
const ArrowUp = createLucideIcon("arrow-up", __iconNode$2d);
|
|
54887
54887
|
|
|
54888
54888
|
/**
|
|
54889
54889
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54893,7 +54893,7 @@ const ArrowUp = createLucideIcon("arrow-up", __iconNode$2c);
|
|
|
54893
54893
|
*/
|
|
54894
54894
|
|
|
54895
54895
|
|
|
54896
|
-
const __iconNode$
|
|
54896
|
+
const __iconNode$2c = [
|
|
54897
54897
|
[
|
|
54898
54898
|
"path",
|
|
54899
54899
|
{
|
|
@@ -54903,7 +54903,7 @@ const __iconNode$2b = [
|
|
|
54903
54903
|
],
|
|
54904
54904
|
["circle", { cx: "12", cy: "8", r: "6", key: "1vp47v" }]
|
|
54905
54905
|
];
|
|
54906
|
-
const Award = createLucideIcon("award", __iconNode$
|
|
54906
|
+
const Award = createLucideIcon("award", __iconNode$2c);
|
|
54907
54907
|
|
|
54908
54908
|
/**
|
|
54909
54909
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54913,11 +54913,11 @@ const Award = createLucideIcon("award", __iconNode$2b);
|
|
|
54913
54913
|
*/
|
|
54914
54914
|
|
|
54915
54915
|
|
|
54916
|
-
const __iconNode$
|
|
54916
|
+
const __iconNode$2b = [
|
|
54917
54917
|
["path", { d: "M4.929 4.929 19.07 19.071", key: "196cmz" }],
|
|
54918
54918
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]
|
|
54919
54919
|
];
|
|
54920
|
-
const Ban = createLucideIcon("ban", __iconNode$
|
|
54920
|
+
const Ban = createLucideIcon("ban", __iconNode$2b);
|
|
54921
54921
|
|
|
54922
54922
|
/**
|
|
54923
54923
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54927,12 +54927,12 @@ const Ban = createLucideIcon("ban", __iconNode$2a);
|
|
|
54927
54927
|
*/
|
|
54928
54928
|
|
|
54929
54929
|
|
|
54930
|
-
const __iconNode$
|
|
54930
|
+
const __iconNode$2a = [
|
|
54931
54931
|
["rect", { width: "20", height: "12", x: "2", y: "6", rx: "2", key: "9lu3g6" }],
|
|
54932
54932
|
["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }],
|
|
54933
54933
|
["path", { d: "M6 12h.01M18 12h.01", key: "113zkx" }]
|
|
54934
54934
|
];
|
|
54935
|
-
const Banknote = createLucideIcon("banknote", __iconNode$
|
|
54935
|
+
const Banknote = createLucideIcon("banknote", __iconNode$2a);
|
|
54936
54936
|
|
|
54937
54937
|
/**
|
|
54938
54938
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54942,7 +54942,7 @@ const Banknote = createLucideIcon("banknote", __iconNode$29);
|
|
|
54942
54942
|
*/
|
|
54943
54943
|
|
|
54944
54944
|
|
|
54945
|
-
const __iconNode$
|
|
54945
|
+
const __iconNode$29 = [
|
|
54946
54946
|
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
|
|
54947
54947
|
["path", { d: "M22 8c0-2.3-.8-4.3-2-6", key: "5bb3ad" }],
|
|
54948
54948
|
[
|
|
@@ -54954,7 +54954,7 @@ const __iconNode$28 = [
|
|
|
54954
54954
|
],
|
|
54955
54955
|
["path", { d: "M4 2C2.8 3.7 2 5.7 2 8", key: "tap9e0" }]
|
|
54956
54956
|
];
|
|
54957
|
-
const BellRing = createLucideIcon("bell-ring", __iconNode$
|
|
54957
|
+
const BellRing = createLucideIcon("bell-ring", __iconNode$29);
|
|
54958
54958
|
|
|
54959
54959
|
/**
|
|
54960
54960
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54964,7 +54964,7 @@ const BellRing = createLucideIcon("bell-ring", __iconNode$28);
|
|
|
54964
54964
|
*/
|
|
54965
54965
|
|
|
54966
54966
|
|
|
54967
|
-
const __iconNode$
|
|
54967
|
+
const __iconNode$28 = [
|
|
54968
54968
|
["path", { d: "M10.268 21a2 2 0 0 0 3.464 0", key: "vwvbt9" }],
|
|
54969
54969
|
[
|
|
54970
54970
|
"path",
|
|
@@ -54974,7 +54974,7 @@ const __iconNode$27 = [
|
|
|
54974
54974
|
}
|
|
54975
54975
|
]
|
|
54976
54976
|
];
|
|
54977
|
-
const Bell = createLucideIcon("bell", __iconNode$
|
|
54977
|
+
const Bell = createLucideIcon("bell", __iconNode$28);
|
|
54978
54978
|
|
|
54979
54979
|
/**
|
|
54980
54980
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -54984,13 +54984,13 @@ const Bell = createLucideIcon("bell", __iconNode$27);
|
|
|
54984
54984
|
*/
|
|
54985
54985
|
|
|
54986
54986
|
|
|
54987
|
-
const __iconNode$
|
|
54987
|
+
const __iconNode$27 = [
|
|
54988
54988
|
[
|
|
54989
54989
|
"path",
|
|
54990
54990
|
{ d: "M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8", key: "mg9rjx" }
|
|
54991
54991
|
]
|
|
54992
54992
|
];
|
|
54993
|
-
const Bold$1 = createLucideIcon("bold", __iconNode$
|
|
54993
|
+
const Bold$1 = createLucideIcon("bold", __iconNode$27);
|
|
54994
54994
|
|
|
54995
54995
|
/**
|
|
54996
54996
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55000,7 +55000,7 @@ const Bold$1 = createLucideIcon("bold", __iconNode$26);
|
|
|
55000
55000
|
*/
|
|
55001
55001
|
|
|
55002
55002
|
|
|
55003
|
-
const __iconNode$
|
|
55003
|
+
const __iconNode$26 = [
|
|
55004
55004
|
["path", { d: "M12 7v14", key: "1akyts" }],
|
|
55005
55005
|
[
|
|
55006
55006
|
"path",
|
|
@@ -55010,7 +55010,7 @@ const __iconNode$25 = [
|
|
|
55010
55010
|
}
|
|
55011
55011
|
]
|
|
55012
55012
|
];
|
|
55013
|
-
const BookOpen = createLucideIcon("book-open", __iconNode$
|
|
55013
|
+
const BookOpen = createLucideIcon("book-open", __iconNode$26);
|
|
55014
55014
|
|
|
55015
55015
|
/**
|
|
55016
55016
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55020,7 +55020,7 @@ const BookOpen = createLucideIcon("book-open", __iconNode$25);
|
|
|
55020
55020
|
*/
|
|
55021
55021
|
|
|
55022
55022
|
|
|
55023
|
-
const __iconNode$
|
|
55023
|
+
const __iconNode$25 = [
|
|
55024
55024
|
["path", { d: "M12 8V4H8", key: "hb8ula" }],
|
|
55025
55025
|
["rect", { width: "16", height: "12", x: "4", y: "8", rx: "2", key: "enze0r" }],
|
|
55026
55026
|
["path", { d: "M2 14h2", key: "vft8re" }],
|
|
@@ -55028,7 +55028,7 @@ const __iconNode$24 = [
|
|
|
55028
55028
|
["path", { d: "M15 13v2", key: "1xurst" }],
|
|
55029
55029
|
["path", { d: "M9 13v2", key: "rq6x2g" }]
|
|
55030
55030
|
];
|
|
55031
|
-
const Bot = createLucideIcon("bot", __iconNode$
|
|
55031
|
+
const Bot = createLucideIcon("bot", __iconNode$25);
|
|
55032
55032
|
|
|
55033
55033
|
/**
|
|
55034
55034
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55038,11 +55038,11 @@ const Bot = createLucideIcon("bot", __iconNode$24);
|
|
|
55038
55038
|
*/
|
|
55039
55039
|
|
|
55040
55040
|
|
|
55041
|
-
const __iconNode$
|
|
55041
|
+
const __iconNode$24 = [
|
|
55042
55042
|
["path", { d: "M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16", key: "jecpp" }],
|
|
55043
55043
|
["rect", { width: "20", height: "14", x: "2", y: "6", rx: "2", key: "i6l2r4" }]
|
|
55044
55044
|
];
|
|
55045
|
-
const Briefcase = createLucideIcon("briefcase", __iconNode$
|
|
55045
|
+
const Briefcase = createLucideIcon("briefcase", __iconNode$24);
|
|
55046
55046
|
|
|
55047
55047
|
/**
|
|
55048
55048
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55052,7 +55052,7 @@ const Briefcase = createLucideIcon("briefcase", __iconNode$23);
|
|
|
55052
55052
|
*/
|
|
55053
55053
|
|
|
55054
55054
|
|
|
55055
|
-
const __iconNode$
|
|
55055
|
+
const __iconNode$23 = [
|
|
55056
55056
|
["path", { d: "M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z", key: "1b4qmf" }],
|
|
55057
55057
|
["path", { d: "M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2", key: "i71pzd" }],
|
|
55058
55058
|
["path", { d: "M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2", key: "10jefs" }],
|
|
@@ -55061,7 +55061,7 @@ const __iconNode$22 = [
|
|
|
55061
55061
|
["path", { d: "M10 14h4", key: "kelpxr" }],
|
|
55062
55062
|
["path", { d: "M10 18h4", key: "1ulq68" }]
|
|
55063
55063
|
];
|
|
55064
|
-
const Building2 = createLucideIcon("building-2", __iconNode$
|
|
55064
|
+
const Building2 = createLucideIcon("building-2", __iconNode$23);
|
|
55065
55065
|
|
|
55066
55066
|
/**
|
|
55067
55067
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55071,13 +55071,13 @@ const Building2 = createLucideIcon("building-2", __iconNode$22);
|
|
|
55071
55071
|
*/
|
|
55072
55072
|
|
|
55073
55073
|
|
|
55074
|
-
const __iconNode$
|
|
55074
|
+
const __iconNode$22 = [
|
|
55075
55075
|
["path", { d: "M8 2v4", key: "1cmpym" }],
|
|
55076
55076
|
["path", { d: "M16 2v4", key: "4m81vk" }],
|
|
55077
55077
|
["rect", { width: "18", height: "18", x: "3", y: "4", rx: "2", key: "1hopcy" }],
|
|
55078
55078
|
["path", { d: "M3 10h18", key: "8toen8" }]
|
|
55079
55079
|
];
|
|
55080
|
-
const Calendar$1 = createLucideIcon("calendar", __iconNode$
|
|
55080
|
+
const Calendar$1 = createLucideIcon("calendar", __iconNode$22);
|
|
55081
55081
|
|
|
55082
55082
|
/**
|
|
55083
55083
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55087,11 +55087,11 @@ const Calendar$1 = createLucideIcon("calendar", __iconNode$21);
|
|
|
55087
55087
|
*/
|
|
55088
55088
|
|
|
55089
55089
|
|
|
55090
|
-
const __iconNode$
|
|
55090
|
+
const __iconNode$21 = [
|
|
55091
55091
|
["path", { d: "M18 6 7 17l-5-5", key: "116fxf" }],
|
|
55092
55092
|
["path", { d: "m22 10-7.5 7.5L13 16", key: "ke71qq" }]
|
|
55093
55093
|
];
|
|
55094
|
-
const CheckCheck = createLucideIcon("check-check", __iconNode$
|
|
55094
|
+
const CheckCheck = createLucideIcon("check-check", __iconNode$21);
|
|
55095
55095
|
|
|
55096
55096
|
/**
|
|
55097
55097
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55101,8 +55101,8 @@ const CheckCheck = createLucideIcon("check-check", __iconNode$20);
|
|
|
55101
55101
|
*/
|
|
55102
55102
|
|
|
55103
55103
|
|
|
55104
|
-
const __iconNode$
|
|
55105
|
-
const Check = createLucideIcon("check", __iconNode$
|
|
55104
|
+
const __iconNode$20 = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
|
|
55105
|
+
const Check = createLucideIcon("check", __iconNode$20);
|
|
55106
55106
|
|
|
55107
55107
|
/**
|
|
55108
55108
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55112,8 +55112,8 @@ const Check = createLucideIcon("check", __iconNode$1$);
|
|
|
55112
55112
|
*/
|
|
55113
55113
|
|
|
55114
55114
|
|
|
55115
|
-
const __iconNode$
|
|
55116
|
-
const ChevronDown = createLucideIcon("chevron-down", __iconNode$
|
|
55115
|
+
const __iconNode$1$ = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
|
|
55116
|
+
const ChevronDown = createLucideIcon("chevron-down", __iconNode$1$);
|
|
55117
55117
|
|
|
55118
55118
|
/**
|
|
55119
55119
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55123,11 +55123,11 @@ const ChevronDown = createLucideIcon("chevron-down", __iconNode$1_);
|
|
|
55123
55123
|
*/
|
|
55124
55124
|
|
|
55125
55125
|
|
|
55126
|
-
const __iconNode$
|
|
55126
|
+
const __iconNode$1_ = [
|
|
55127
55127
|
["path", { d: "m17 18-6-6 6-6", key: "1yerx2" }],
|
|
55128
55128
|
["path", { d: "M7 6v12", key: "1p53r6" }]
|
|
55129
55129
|
];
|
|
55130
|
-
const ChevronFirst = createLucideIcon("chevron-first", __iconNode$
|
|
55130
|
+
const ChevronFirst = createLucideIcon("chevron-first", __iconNode$1_);
|
|
55131
55131
|
|
|
55132
55132
|
/**
|
|
55133
55133
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55137,11 +55137,11 @@ const ChevronFirst = createLucideIcon("chevron-first", __iconNode$1Z);
|
|
|
55137
55137
|
*/
|
|
55138
55138
|
|
|
55139
55139
|
|
|
55140
|
-
const __iconNode$
|
|
55140
|
+
const __iconNode$1Z = [
|
|
55141
55141
|
["path", { d: "m7 18 6-6-6-6", key: "lwmzdw" }],
|
|
55142
55142
|
["path", { d: "M17 6v12", key: "1o0aio" }]
|
|
55143
55143
|
];
|
|
55144
|
-
const ChevronLast = createLucideIcon("chevron-last", __iconNode$
|
|
55144
|
+
const ChevronLast = createLucideIcon("chevron-last", __iconNode$1Z);
|
|
55145
55145
|
|
|
55146
55146
|
/**
|
|
55147
55147
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55151,8 +55151,8 @@ const ChevronLast = createLucideIcon("chevron-last", __iconNode$1Y);
|
|
|
55151
55151
|
*/
|
|
55152
55152
|
|
|
55153
55153
|
|
|
55154
|
-
const __iconNode$
|
|
55155
|
-
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$
|
|
55154
|
+
const __iconNode$1Y = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
|
|
55155
|
+
const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1Y);
|
|
55156
55156
|
|
|
55157
55157
|
/**
|
|
55158
55158
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55162,8 +55162,8 @@ const ChevronLeft = createLucideIcon("chevron-left", __iconNode$1X);
|
|
|
55162
55162
|
*/
|
|
55163
55163
|
|
|
55164
55164
|
|
|
55165
|
-
const __iconNode$
|
|
55166
|
-
const ChevronRight = createLucideIcon("chevron-right", __iconNode$
|
|
55165
|
+
const __iconNode$1X = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
|
|
55166
|
+
const ChevronRight = createLucideIcon("chevron-right", __iconNode$1X);
|
|
55167
55167
|
|
|
55168
55168
|
/**
|
|
55169
55169
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55173,8 +55173,8 @@ const ChevronRight = createLucideIcon("chevron-right", __iconNode$1W);
|
|
|
55173
55173
|
*/
|
|
55174
55174
|
|
|
55175
55175
|
|
|
55176
|
-
const __iconNode$
|
|
55177
|
-
const ChevronUp = createLucideIcon("chevron-up", __iconNode$
|
|
55176
|
+
const __iconNode$1W = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
|
|
55177
|
+
const ChevronUp = createLucideIcon("chevron-up", __iconNode$1W);
|
|
55178
55178
|
|
|
55179
55179
|
/**
|
|
55180
55180
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55184,11 +55184,11 @@ const ChevronUp = createLucideIcon("chevron-up", __iconNode$1V);
|
|
|
55184
55184
|
*/
|
|
55185
55185
|
|
|
55186
55186
|
|
|
55187
|
-
const __iconNode$
|
|
55187
|
+
const __iconNode$1V = [
|
|
55188
55188
|
["path", { d: "m11 17-5-5 5-5", key: "13zhaf" }],
|
|
55189
55189
|
["path", { d: "m18 17-5-5 5-5", key: "h8a8et" }]
|
|
55190
55190
|
];
|
|
55191
|
-
const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$
|
|
55191
|
+
const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$1V);
|
|
55192
55192
|
|
|
55193
55193
|
/**
|
|
55194
55194
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55198,11 +55198,11 @@ const ChevronsLeft = createLucideIcon("chevrons-left", __iconNode$1U);
|
|
|
55198
55198
|
*/
|
|
55199
55199
|
|
|
55200
55200
|
|
|
55201
|
-
const __iconNode$
|
|
55201
|
+
const __iconNode$1U = [
|
|
55202
55202
|
["path", { d: "m6 17 5-5-5-5", key: "xnjwq" }],
|
|
55203
55203
|
["path", { d: "m13 17 5-5-5-5", key: "17xmmf" }]
|
|
55204
55204
|
];
|
|
55205
|
-
const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$
|
|
55205
|
+
const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$1U);
|
|
55206
55206
|
|
|
55207
55207
|
/**
|
|
55208
55208
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55212,11 +55212,11 @@ const ChevronsRight = createLucideIcon("chevrons-right", __iconNode$1T);
|
|
|
55212
55212
|
*/
|
|
55213
55213
|
|
|
55214
55214
|
|
|
55215
|
-
const __iconNode$
|
|
55215
|
+
const __iconNode$1T = [
|
|
55216
55216
|
["path", { d: "m7 15 5 5 5-5", key: "1hf1tw" }],
|
|
55217
55217
|
["path", { d: "m7 9 5-5 5 5", key: "sgt6xg" }]
|
|
55218
55218
|
];
|
|
55219
|
-
const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$
|
|
55219
|
+
const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$1T);
|
|
55220
55220
|
|
|
55221
55221
|
/**
|
|
55222
55222
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55226,12 +55226,12 @@ const ChevronsUpDown = createLucideIcon("chevrons-up-down", __iconNode$1S);
|
|
|
55226
55226
|
*/
|
|
55227
55227
|
|
|
55228
55228
|
|
|
55229
|
-
const __iconNode$
|
|
55229
|
+
const __iconNode$1S = [
|
|
55230
55230
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
55231
55231
|
["line", { x1: "12", x2: "12", y1: "8", y2: "12", key: "1pkeuh" }],
|
|
55232
55232
|
["line", { x1: "12", x2: "12.01", y1: "16", y2: "16", key: "4dfq90" }]
|
|
55233
55233
|
];
|
|
55234
|
-
const CircleAlert = createLucideIcon("circle-alert", __iconNode$
|
|
55234
|
+
const CircleAlert = createLucideIcon("circle-alert", __iconNode$1S);
|
|
55235
55235
|
|
|
55236
55236
|
/**
|
|
55237
55237
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55241,11 +55241,11 @@ const CircleAlert = createLucideIcon("circle-alert", __iconNode$1R);
|
|
|
55241
55241
|
*/
|
|
55242
55242
|
|
|
55243
55243
|
|
|
55244
|
-
const __iconNode$
|
|
55244
|
+
const __iconNode$1R = [
|
|
55245
55245
|
["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
|
|
55246
55246
|
["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
|
|
55247
55247
|
];
|
|
55248
|
-
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$
|
|
55248
|
+
const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$1R);
|
|
55249
55249
|
|
|
55250
55250
|
/**
|
|
55251
55251
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -55255,11 +55255,25 @@ const CircleCheckBig = createLucideIcon("circle-check-big", __iconNode$1Q);
|
|
|
55255
55255
|
*/
|
|
55256
55256
|
|
|
55257
55257
|
|
|
55258
|
-
const __iconNode$
|
|
55258
|
+
const __iconNode$1Q = [
|
|
55259
55259
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
55260
55260
|
["path", { d: "m9 12 2 2 4-4", key: "dzmm74" }]
|
|
55261
55261
|
];
|
|
55262
|
-
const CircleCheck = createLucideIcon("circle-check", __iconNode$
|
|
55262
|
+
const CircleCheck = createLucideIcon("circle-check", __iconNode$1Q);
|
|
55263
|
+
|
|
55264
|
+
/**
|
|
55265
|
+
* @license lucide-react v0.528.0 - ISC
|
|
55266
|
+
*
|
|
55267
|
+
* This source code is licensed under the ISC license.
|
|
55268
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
55269
|
+
*/
|
|
55270
|
+
|
|
55271
|
+
|
|
55272
|
+
const __iconNode$1P = [
|
|
55273
|
+
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
55274
|
+
["path", { d: "M8 12h8", key: "1wcyev" }]
|
|
55275
|
+
];
|
|
55276
|
+
const CircleMinus$1 = createLucideIcon("circle-minus", __iconNode$1P);
|
|
55263
55277
|
|
|
55264
55278
|
/**
|
|
55265
55279
|
* @license lucide-react v0.528.0 - ISC
|
|
@@ -61011,118 +61025,6 @@ var gradebookGradebookTab$3 = {
|
|
|
61011
61025
|
previousPage: "Previous",
|
|
61012
61026
|
nextPage: "Next"
|
|
61013
61027
|
};
|
|
61014
|
-
var graderTabLabels$3 = {
|
|
61015
|
-
header: {
|
|
61016
|
-
title: "Grader",
|
|
61017
|
-
description: "Set up how your agent grades work against a rubric you define."
|
|
61018
|
-
},
|
|
61019
|
-
capability: {
|
|
61020
|
-
title: "Grading",
|
|
61021
|
-
description: "Let your agent grade work. When this is on, the agent scores what people submit against the rubric you set up below and shares the result as feedback — great for essays, projects, and practice exercises.",
|
|
61022
|
-
offHint: "Turn it on to write grading instructions and build your rubric. Anything you set up here is kept safe if you later turn it off."
|
|
61023
|
-
},
|
|
61024
|
-
subTabs: {
|
|
61025
|
-
setup: "Grading setup",
|
|
61026
|
-
rubric: "Rubric"
|
|
61027
|
-
},
|
|
61028
|
-
denied: {
|
|
61029
|
-
title: "No access to grading settings",
|
|
61030
|
-
description: "You don't have permission to view this agent's grading setup. Ask an administrator for access."
|
|
61031
|
-
},
|
|
61032
|
-
warnings: {
|
|
61033
|
-
noConfig: "Grading is on but not set up yet — the agent will fail when asked to grade. Save your grading instructions in Grading setup to finish.",
|
|
61034
|
-
noCriteria: "Grading is on but the rubric is empty — the agent will fail when asked to grade. Add at least one criterion in the Rubric tab."
|
|
61035
|
-
},
|
|
61036
|
-
config: {
|
|
61037
|
-
sectionTitle: "Grading setup",
|
|
61038
|
-
gradingMode: {
|
|
61039
|
-
label: "What gets graded",
|
|
61040
|
-
options: {
|
|
61041
|
-
submission: "A submission",
|
|
61042
|
-
conversation: "The conversation"
|
|
61043
|
-
},
|
|
61044
|
-
help: {
|
|
61045
|
-
submission: "The agent grades a piece of work the person hands in, like an essay or answer.",
|
|
61046
|
-
conversation: "The agent grades how the whole conversation went."
|
|
61047
|
-
}
|
|
61048
|
-
},
|
|
61049
|
-
feedbackMode: {
|
|
61050
|
-
label: "Feedback shared with the person",
|
|
61051
|
-
options: {
|
|
61052
|
-
overall: "Overall feedback only",
|
|
61053
|
-
perCriteria: "Feedback per criterion",
|
|
61054
|
-
both: "Overall + per criterion"
|
|
61055
|
-
},
|
|
61056
|
-
help: "The overall score is always calculated — this only controls how much detail is shared back."
|
|
61057
|
-
},
|
|
61058
|
-
instructions: {
|
|
61059
|
-
label: "Grading instructions",
|
|
61060
|
-
placeholder: "Describe what's being graded and anything the grader should know beyond the rubric. E.g. 'You are grading a 500-word persuasive essay on climate policy written by a high-school student. Be encouraging but honest.'",
|
|
61061
|
-
help: "Required. This is the context the agent uses every time it grades."
|
|
61062
|
-
},
|
|
61063
|
-
saveButton: "Save",
|
|
61064
|
-
savingButton: "Saving…"
|
|
61065
|
-
},
|
|
61066
|
-
criteria: {
|
|
61067
|
-
sectionTitle: "Rubric",
|
|
61068
|
-
description: "Each row is one thing the agent looks for and how many points it is worth. The overall score is points earned out of the total.",
|
|
61069
|
-
needsConfigHint: "Save your grading setup first, then add rubric criteria here.",
|
|
61070
|
-
emptyState: "No criteria yet. Add your first one — for example \"Clarity\", 10 points.",
|
|
61071
|
-
addButton: "Add criterion",
|
|
61072
|
-
columns: {
|
|
61073
|
-
name: "Name",
|
|
61074
|
-
criteria: "Criteria",
|
|
61075
|
-
points: "Points"
|
|
61076
|
-
},
|
|
61077
|
-
actionsAria: "Actions for {name}",
|
|
61078
|
-
edit: "Edit",
|
|
61079
|
-
"delete": "Delete",
|
|
61080
|
-
totalPoints: "Total possible points: {total}",
|
|
61081
|
-
scoreHint: "Overall score = points earned ÷ {total}.",
|
|
61082
|
-
lastCriterionHint: "A rubric needs at least one criterion — add another before removing this one.",
|
|
61083
|
-
modal: {
|
|
61084
|
-
addTitle: "Add criterion",
|
|
61085
|
-
editTitle: "Edit criterion",
|
|
61086
|
-
name: {
|
|
61087
|
-
label: "Name",
|
|
61088
|
-
placeholder: "e.g. Clarity",
|
|
61089
|
-
required: "Name is required"
|
|
61090
|
-
},
|
|
61091
|
-
criteria: {
|
|
61092
|
-
label: "Criteria",
|
|
61093
|
-
placeholder: "e.g. The argument is easy to follow and each paragraph makes one clear point.",
|
|
61094
|
-
required: "Criteria is required"
|
|
61095
|
-
},
|
|
61096
|
-
points: {
|
|
61097
|
-
label: "Points",
|
|
61098
|
-
placeholder: "10",
|
|
61099
|
-
positive: "Points must be a positive number"
|
|
61100
|
-
},
|
|
61101
|
-
save: "Save",
|
|
61102
|
-
saving: "Saving…",
|
|
61103
|
-
cancel: "Cancel"
|
|
61104
|
-
},
|
|
61105
|
-
deleteModal: {
|
|
61106
|
-
title: "Delete criterion",
|
|
61107
|
-
confirmationPrefix: "Are you sure you want to remove",
|
|
61108
|
-
confirmationSuffix: " from the rubric?",
|
|
61109
|
-
cancel: "Cancel",
|
|
61110
|
-
"delete": "Delete",
|
|
61111
|
-
deleting: "Deleting…"
|
|
61112
|
-
}
|
|
61113
|
-
},
|
|
61114
|
-
toasts: {
|
|
61115
|
-
toggleOn: "Grading turned on",
|
|
61116
|
-
toggleOff: "Grading turned off — your rubric is kept for next time",
|
|
61117
|
-
toggleError: "Couldn't update grading",
|
|
61118
|
-
configSaved: "Grading setup saved",
|
|
61119
|
-
configError: "Couldn't save grading setup",
|
|
61120
|
-
criterionAdded: "Criterion added",
|
|
61121
|
-
criterionUpdated: "Criterion updated",
|
|
61122
|
-
criterionDeleted: "Criterion deleted",
|
|
61123
|
-
criterionError: "Couldn't update the rubric"
|
|
61124
|
-
}
|
|
61125
|
-
};
|
|
61126
61028
|
var careerExperienceDialog$3 = {
|
|
61127
61029
|
pleaseSelectACompany: "Please select a company",
|
|
61128
61030
|
endDateCannotBeBeforeStartDate: "End date cannot be before start date",
|
|
@@ -61436,7 +61338,57 @@ var clawSandboxAgentSkills$3 = {
|
|
|
61436
61338
|
fieldVersionPlaceholder: "e.g. 1.0.0",
|
|
61437
61339
|
fieldDescription: "Description",
|
|
61438
61340
|
fieldDescriptionPlaceholder: "e.g. Search the web for information",
|
|
61439
|
-
fieldInstruction: "Instruction"
|
|
61341
|
+
fieldInstruction: "Instruction",
|
|
61342
|
+
sessionNote: "Skills added or removed here apply to new chat sessions only. Edits to a skill's instructions apply immediately, including in conversations already in progress.",
|
|
61343
|
+
effectiveHeading: "This agent's skills",
|
|
61344
|
+
catalogHeading: "Available skills",
|
|
61345
|
+
noEffectiveSkills: "No skills enabled for this agent yet. Add one from the available skills below.",
|
|
61346
|
+
addToAgent: "Add",
|
|
61347
|
+
addToAgentLabel: "Add {name} to this agent",
|
|
61348
|
+
removeFromAgent: "Remove from agent",
|
|
61349
|
+
skillAdded: "{name} added",
|
|
61350
|
+
skillRemoved: "{name} removed",
|
|
61351
|
+
featuredBadge: "Featured",
|
|
61352
|
+
nativeBadge: "Native",
|
|
61353
|
+
privateBadge: "Only this agent",
|
|
61354
|
+
fieldCategory: "Category",
|
|
61355
|
+
fieldCategoryPlaceholder: "e.g. web, code, data",
|
|
61356
|
+
privateToAgent: "Only this agent",
|
|
61357
|
+
privateToAgentHint: "Private skills are available to this agent only and take precedence over platform skills with the same slug.",
|
|
61358
|
+
instructionHint: "The playbook the agent follows when the skill is used. Edits apply immediately, including in conversations already in progress.",
|
|
61359
|
+
filesHint: "Optional resources the agent can use with this skill. References and scripts are text files; assets are uploaded files.",
|
|
61360
|
+
filesAfterCreateHint: "You can attach resources to this skill after creating it (reopen it with Edit).",
|
|
61361
|
+
noFiles: "No resources attached yet.",
|
|
61362
|
+
loadingFiles: "Loading resources...",
|
|
61363
|
+
fileTypeLabel: "Type",
|
|
61364
|
+
fileTypeReference: "Reference",
|
|
61365
|
+
fileTypeScript: "Script",
|
|
61366
|
+
fileTypeAsset: "Asset",
|
|
61367
|
+
fileNameLabel: "File name",
|
|
61368
|
+
fileNamePlaceholder: "e.g. rubric.md",
|
|
61369
|
+
fileContentLabel: "Content",
|
|
61370
|
+
fileContentPlaceholder: "The file's text content",
|
|
61371
|
+
addFileButton: "Add resource",
|
|
61372
|
+
adding: "Adding...",
|
|
61373
|
+
uploading: "Uploading...",
|
|
61374
|
+
fileAdded: "Resource added",
|
|
61375
|
+
fileUploaded: "Resource uploaded",
|
|
61376
|
+
fileSaved: "Resource saved",
|
|
61377
|
+
fileDeleted: "Resource deleted",
|
|
61378
|
+
failedToSaveFile: "Failed to save resource",
|
|
61379
|
+
failedToUploadFile: "Failed to upload resource",
|
|
61380
|
+
failedToDeleteFile: "Failed to delete resource",
|
|
61381
|
+
detailsTab: "General",
|
|
61382
|
+
filesTab: "Resources",
|
|
61383
|
+
newFile: "New Resource",
|
|
61384
|
+
newFileDialogTitle: "New Resource",
|
|
61385
|
+
editFileDialogTitle: "Edit Resource",
|
|
61386
|
+
deleteFileDialogTitle: "Delete Resource",
|
|
61387
|
+
deleteFileConfirmation: "Are you sure you want to delete {name}? This action cannot be undone.",
|
|
61388
|
+
chooseFile: "Choose file",
|
|
61389
|
+
upload: "Upload",
|
|
61390
|
+
download: "Download",
|
|
61391
|
+
resourcesItemLabel: "resources"
|
|
61440
61392
|
};
|
|
61441
61393
|
var clawSandboxHelpers$3 = {
|
|
61442
61394
|
unknown: "Unknown",
|
|
@@ -63701,7 +63653,7 @@ var safetyTabLabels$3 = {
|
|
|
63701
63653
|
};
|
|
63702
63654
|
var screenshareTabLabels$3 = {
|
|
63703
63655
|
header: {
|
|
63704
|
-
title: "Screen
|
|
63656
|
+
title: "Screen",
|
|
63705
63657
|
description: "How your agent behaves when a user shares their screen during a voice call."
|
|
63706
63658
|
},
|
|
63707
63659
|
capability: {
|
|
@@ -65340,6 +65292,19 @@ var platformNavbar$3 = {
|
|
|
65340
65292
|
placementExamsHeader: "Placement exams",
|
|
65341
65293
|
placementExamFallback: "Placement exam"
|
|
65342
65294
|
};
|
|
65295
|
+
var slashSkillPicker$3 = {
|
|
65296
|
+
listLabel: "Agent skills",
|
|
65297
|
+
resultsAnnouncement: "{count} skills available. Use arrow keys to browse and Enter to select.",
|
|
65298
|
+
loading: "Loading..."
|
|
65299
|
+
};
|
|
65300
|
+
var skillsTabLabels$3 = {
|
|
65301
|
+
header: {
|
|
65302
|
+
title: "Skills",
|
|
65303
|
+
description: "Reusable playbooks you can attach to this agent — each one is a set of instructions for a job. In chat, type / to use one."
|
|
65304
|
+
},
|
|
65305
|
+
notBaseAgent: "Skills are only available to Base Agents.",
|
|
65306
|
+
loading: "Loading..."
|
|
65307
|
+
};
|
|
65343
65308
|
var placementExam$3 = {
|
|
65344
65309
|
title: "Placement exam",
|
|
65345
65310
|
back: "Back"
|
|
@@ -65636,6 +65601,118 @@ var profileApplicationsQuestionsEditor$3 = {
|
|
|
65636
65601
|
collapseSection: "Collapse section",
|
|
65637
65602
|
expandSection: "Expand section"
|
|
65638
65603
|
};
|
|
65604
|
+
var graderTabLabels$3 = {
|
|
65605
|
+
header: {
|
|
65606
|
+
title: "Grader",
|
|
65607
|
+
description: "Set up how your agent grades work against a rubric you define."
|
|
65608
|
+
},
|
|
65609
|
+
capability: {
|
|
65610
|
+
title: "Grading",
|
|
65611
|
+
description: "Let your agent grade work. When this is on, the agent scores what people submit against the rubric you set up below and shares the result as feedback — great for essays, projects, and practice exercises.",
|
|
65612
|
+
offHint: "Turn it on to write grading instructions and build your rubric. Anything you set up here is kept safe if you later turn it off."
|
|
65613
|
+
},
|
|
65614
|
+
subTabs: {
|
|
65615
|
+
setup: "Grading setup",
|
|
65616
|
+
rubric: "Rubric"
|
|
65617
|
+
},
|
|
65618
|
+
denied: {
|
|
65619
|
+
title: "No access to grading settings",
|
|
65620
|
+
description: "You don't have permission to view this agent's grading setup. Ask an administrator for access."
|
|
65621
|
+
},
|
|
65622
|
+
warnings: {
|
|
65623
|
+
noConfig: "Grading is on but not set up yet — the agent will fail when asked to grade. Save your grading instructions in Grading setup to finish.",
|
|
65624
|
+
noCriteria: "Grading is on but the rubric is empty — the agent will fail when asked to grade. Add at least one criterion in the Rubric tab."
|
|
65625
|
+
},
|
|
65626
|
+
config: {
|
|
65627
|
+
sectionTitle: "Grading setup",
|
|
65628
|
+
gradingMode: {
|
|
65629
|
+
label: "What gets graded",
|
|
65630
|
+
options: {
|
|
65631
|
+
submission: "A submission",
|
|
65632
|
+
conversation: "The conversation"
|
|
65633
|
+
},
|
|
65634
|
+
help: {
|
|
65635
|
+
submission: "The agent grades a piece of work the person hands in, like an essay or answer.",
|
|
65636
|
+
conversation: "The agent grades how the whole conversation went."
|
|
65637
|
+
}
|
|
65638
|
+
},
|
|
65639
|
+
feedbackMode: {
|
|
65640
|
+
label: "Feedback shared with the person",
|
|
65641
|
+
options: {
|
|
65642
|
+
overall: "Overall feedback only",
|
|
65643
|
+
perCriteria: "Feedback per criterion",
|
|
65644
|
+
both: "Overall + per criterion"
|
|
65645
|
+
},
|
|
65646
|
+
help: "The overall score is always calculated — this only controls how much detail is shared back."
|
|
65647
|
+
},
|
|
65648
|
+
instructions: {
|
|
65649
|
+
label: "Grading instructions",
|
|
65650
|
+
placeholder: "Describe what's being graded and anything the grader should know beyond the rubric. E.g. 'You are grading a 500-word persuasive essay on climate policy written by a high-school student. Be encouraging but honest.'",
|
|
65651
|
+
help: "Required. This is the context the agent uses every time it grades."
|
|
65652
|
+
},
|
|
65653
|
+
saveButton: "Save",
|
|
65654
|
+
savingButton: "Saving…"
|
|
65655
|
+
},
|
|
65656
|
+
criteria: {
|
|
65657
|
+
sectionTitle: "Rubric",
|
|
65658
|
+
description: "Each row is one thing the agent looks for and how many points it is worth. The overall score is points earned out of the total.",
|
|
65659
|
+
needsConfigHint: "Save your grading setup first, then add rubric criteria here.",
|
|
65660
|
+
emptyState: "No criteria yet. Add your first one — for example \"Clarity\", 10 points.",
|
|
65661
|
+
addButton: "Add criterion",
|
|
65662
|
+
columns: {
|
|
65663
|
+
name: "Name",
|
|
65664
|
+
criteria: "Criteria",
|
|
65665
|
+
points: "Points"
|
|
65666
|
+
},
|
|
65667
|
+
actionsAria: "Actions for {name}",
|
|
65668
|
+
edit: "Edit",
|
|
65669
|
+
"delete": "Delete",
|
|
65670
|
+
totalPoints: "Total possible points: {total}",
|
|
65671
|
+
scoreHint: "Overall score = points earned ÷ {total}.",
|
|
65672
|
+
lastCriterionHint: "A rubric needs at least one criterion — add another before removing this one.",
|
|
65673
|
+
modal: {
|
|
65674
|
+
addTitle: "Add criterion",
|
|
65675
|
+
editTitle: "Edit criterion",
|
|
65676
|
+
name: {
|
|
65677
|
+
label: "Name",
|
|
65678
|
+
placeholder: "e.g. Clarity",
|
|
65679
|
+
required: "Name is required"
|
|
65680
|
+
},
|
|
65681
|
+
criteria: {
|
|
65682
|
+
label: "Criteria",
|
|
65683
|
+
placeholder: "e.g. The argument is easy to follow and each paragraph makes one clear point.",
|
|
65684
|
+
required: "Criteria is required"
|
|
65685
|
+
},
|
|
65686
|
+
points: {
|
|
65687
|
+
label: "Points",
|
|
65688
|
+
placeholder: "10",
|
|
65689
|
+
positive: "Points must be a positive number"
|
|
65690
|
+
},
|
|
65691
|
+
save: "Save",
|
|
65692
|
+
saving: "Saving…",
|
|
65693
|
+
cancel: "Cancel"
|
|
65694
|
+
},
|
|
65695
|
+
deleteModal: {
|
|
65696
|
+
title: "Delete criterion",
|
|
65697
|
+
confirmationPrefix: "Are you sure you want to remove",
|
|
65698
|
+
confirmationSuffix: " from the rubric?",
|
|
65699
|
+
cancel: "Cancel",
|
|
65700
|
+
"delete": "Delete",
|
|
65701
|
+
deleting: "Deleting…"
|
|
65702
|
+
}
|
|
65703
|
+
},
|
|
65704
|
+
toasts: {
|
|
65705
|
+
toggleOn: "Grading turned on",
|
|
65706
|
+
toggleOff: "Grading turned off — your rubric is kept for next time",
|
|
65707
|
+
toggleError: "Couldn't update grading",
|
|
65708
|
+
configSaved: "Grading setup saved",
|
|
65709
|
+
configError: "Couldn't save grading setup",
|
|
65710
|
+
criterionAdded: "Criterion added",
|
|
65711
|
+
criterionUpdated: "Criterion updated",
|
|
65712
|
+
criterionDeleted: "Criterion deleted",
|
|
65713
|
+
criterionError: "Couldn't update the rubric"
|
|
65714
|
+
}
|
|
65715
|
+
};
|
|
65639
65716
|
var en = {
|
|
65640
65717
|
accessTabAddAccess: accessTabAddAccess$3,
|
|
65641
65718
|
accessTabLabels: accessTabLabels$3,
|
|
@@ -65690,7 +65767,6 @@ var en = {
|
|
|
65690
65767
|
careerEducationDialog: careerEducationDialog$3,
|
|
65691
65768
|
careerEducationTab: careerEducationTab$3,
|
|
65692
65769
|
gradebookGradebookTab: gradebookGradebookTab$3,
|
|
65693
|
-
graderTabLabels: graderTabLabels$3,
|
|
65694
65770
|
careerExperienceDialog: careerExperienceDialog$3,
|
|
65695
65771
|
careerExperienceTab: careerExperienceTab$3,
|
|
65696
65772
|
careerInstitutionDialog: careerInstitutionDialog$3,
|
|
@@ -65884,10 +65960,13 @@ var en = {
|
|
|
65884
65960
|
benchmarksAddItemsModal: benchmarksAddItemsModal$3,
|
|
65885
65961
|
platformSidebar: platformSidebar$3,
|
|
65886
65962
|
platformNavbar: platformNavbar$3,
|
|
65963
|
+
slashSkillPicker: slashSkillPicker$3,
|
|
65964
|
+
skillsTabLabels: skillsTabLabels$3,
|
|
65887
65965
|
placementExam: placementExam$3,
|
|
65888
65966
|
applyApplyWizard: applyApplyWizard$3,
|
|
65889
65967
|
profileApplicationsTab: profileApplicationsTab$3,
|
|
65890
|
-
profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor$3
|
|
65968
|
+
profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor$3,
|
|
65969
|
+
graderTabLabels: graderTabLabels$3
|
|
65891
65970
|
};
|
|
65892
65971
|
|
|
65893
65972
|
var accessTabAddAccess$2 = {
|
|
@@ -67557,7 +67636,57 @@ var clawSandboxAgentSkills$2 = {
|
|
|
67557
67636
|
fieldVersionPlaceholder: "ex. 1.0.0",
|
|
67558
67637
|
fieldDescription: "Description",
|
|
67559
67638
|
fieldDescriptionPlaceholder: "ex. Rechercher des informations sur le web",
|
|
67560
|
-
fieldInstruction: "Instruction"
|
|
67639
|
+
fieldInstruction: "Instruction",
|
|
67640
|
+
sessionNote: "Les compétences ajoutées ou supprimées ici ne s'appliquent qu'aux nouvelles sessions de chat. Les modifications des instructions d'une compétence s'appliquent immédiatement, y compris dans les conversations en cours.",
|
|
67641
|
+
effectiveHeading: "Compétences de cet agent",
|
|
67642
|
+
catalogHeading: "Compétences disponibles",
|
|
67643
|
+
noEffectiveSkills: "Cet agent n'a pas encore de compétences activées. Ajoutez-en une depuis les compétences disponibles.",
|
|
67644
|
+
addToAgent: "Ajouter",
|
|
67645
|
+
addToAgentLabel: "Ajouter {name} à cet agent",
|
|
67646
|
+
removeFromAgent: "Retirer de l'agent",
|
|
67647
|
+
skillAdded: "{name} ajoutée",
|
|
67648
|
+
skillRemoved: "{name} retirée",
|
|
67649
|
+
featuredBadge: "En vedette",
|
|
67650
|
+
nativeBadge: "Native",
|
|
67651
|
+
privateBadge: "Cet agent uniquement",
|
|
67652
|
+
fieldCategory: "Catégorie",
|
|
67653
|
+
fieldCategoryPlaceholder: "p. ex. web, code, données",
|
|
67654
|
+
privateToAgent: "Cet agent uniquement",
|
|
67655
|
+
privateToAgentHint: "Les compétences privées ne sont disponibles que pour cet agent et priment sur les compétences de la plateforme portant le même slug.",
|
|
67656
|
+
instructionHint: "Le guide que l'agent suit lorsque la compétence est utilisée. Les modifications s'appliquent immédiatement, y compris dans les conversations en cours.",
|
|
67657
|
+
filesHint: "Ressources facultatives que l'agent peut utiliser avec cette compétence. Les références et les scripts sont des fichiers texte ; les assets sont des fichiers téléversés.",
|
|
67658
|
+
filesAfterCreateHint: "Vous pouvez joindre des ressources à cette compétence après sa création (rouvrez-la avec Modifier).",
|
|
67659
|
+
noFiles: "Aucune ressource jointe pour le moment.",
|
|
67660
|
+
loadingFiles: "Chargement des ressources...",
|
|
67661
|
+
fileTypeLabel: "Type",
|
|
67662
|
+
fileTypeReference: "Référence",
|
|
67663
|
+
fileTypeScript: "Script",
|
|
67664
|
+
fileTypeAsset: "Ressource",
|
|
67665
|
+
fileNameLabel: "Nom du fichier",
|
|
67666
|
+
fileNamePlaceholder: "p. ex. grille.md",
|
|
67667
|
+
fileContentLabel: "Contenu",
|
|
67668
|
+
fileContentPlaceholder: "Le contenu texte du fichier",
|
|
67669
|
+
addFileButton: "Ajouter la ressource",
|
|
67670
|
+
adding: "Ajout...",
|
|
67671
|
+
uploading: "Téléversement...",
|
|
67672
|
+
fileAdded: "Ressource ajoutée",
|
|
67673
|
+
fileUploaded: "Ressource téléversée",
|
|
67674
|
+
fileSaved: "Ressource enregistrée",
|
|
67675
|
+
fileDeleted: "Ressource supprimée",
|
|
67676
|
+
failedToSaveFile: "Impossible d'enregistrer la ressource",
|
|
67677
|
+
failedToUploadFile: "Impossible de téléverser la ressource",
|
|
67678
|
+
failedToDeleteFile: "Impossible de supprimer la ressource",
|
|
67679
|
+
detailsTab: "Général",
|
|
67680
|
+
filesTab: "Ressources",
|
|
67681
|
+
newFile: "Nouvelle ressource",
|
|
67682
|
+
newFileDialogTitle: "Nouvelle ressource",
|
|
67683
|
+
editFileDialogTitle: "Modifier la ressource",
|
|
67684
|
+
deleteFileDialogTitle: "Supprimer la ressource",
|
|
67685
|
+
deleteFileConfirmation: "Voulez-vous vraiment supprimer {name} ? Cette action est irréversible.",
|
|
67686
|
+
chooseFile: "Choisir un fichier",
|
|
67687
|
+
upload: "Téléverser",
|
|
67688
|
+
download: "Télécharger",
|
|
67689
|
+
resourcesItemLabel: "ressources"
|
|
67561
67690
|
};
|
|
67562
67691
|
var clawSandboxHelpers$2 = {
|
|
67563
67692
|
unknown: "Inconnu",
|
|
@@ -69822,7 +69951,7 @@ var safetyTabLabels$2 = {
|
|
|
69822
69951
|
};
|
|
69823
69952
|
var screenshareTabLabels$2 = {
|
|
69824
69953
|
header: {
|
|
69825
|
-
title: "
|
|
69954
|
+
title: "Écran",
|
|
69826
69955
|
description: "Comment votre agent se comporte lorsqu’un utilisateur partage son écran pendant un appel vocal."
|
|
69827
69956
|
},
|
|
69828
69957
|
capability: {
|
|
@@ -71757,6 +71886,19 @@ var profileApplicationsQuestionsEditor$2 = {
|
|
|
71757
71886
|
collapseSection: "Réduire la section",
|
|
71758
71887
|
expandSection: "Développer la section"
|
|
71759
71888
|
};
|
|
71889
|
+
var slashSkillPicker$2 = {
|
|
71890
|
+
listLabel: "Compétences de l'agent",
|
|
71891
|
+
resultsAnnouncement: "{count} compétences disponibles. Utilisez les flèches pour parcourir et Entrée pour sélectionner.",
|
|
71892
|
+
loading: "Chargement..."
|
|
71893
|
+
};
|
|
71894
|
+
var skillsTabLabels$2 = {
|
|
71895
|
+
header: {
|
|
71896
|
+
title: "Compétences",
|
|
71897
|
+
description: "Des guides réutilisables à attacher à cet agent — chacun est un ensemble d'instructions pour une tâche. Dans le chat, tapez / pour en utiliser un."
|
|
71898
|
+
},
|
|
71899
|
+
notBaseAgent: "Les compétences ne sont disponibles que pour les agents de base.",
|
|
71900
|
+
loading: "Chargement..."
|
|
71901
|
+
};
|
|
71760
71902
|
var fr = {
|
|
71761
71903
|
accessTabAddAccess: accessTabAddAccess$2,
|
|
71762
71904
|
accessTabLabels: accessTabLabels$2,
|
|
@@ -72008,7 +72150,9 @@ var fr = {
|
|
|
72008
72150
|
placementExam: placementExam$2,
|
|
72009
72151
|
applyApplyWizard: applyApplyWizard$2,
|
|
72010
72152
|
profileApplicationsTab: profileApplicationsTab$2,
|
|
72011
|
-
profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor$2
|
|
72153
|
+
profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor$2,
|
|
72154
|
+
slashSkillPicker: slashSkillPicker$2,
|
|
72155
|
+
skillsTabLabels: skillsTabLabels$2
|
|
72012
72156
|
};
|
|
72013
72157
|
|
|
72014
72158
|
var accessTabAddAccess$1 = {
|
|
@@ -73678,7 +73822,57 @@ var clawSandboxAgentSkills$1 = {
|
|
|
73678
73822
|
fieldVersionPlaceholder: "ej. 1.0.0",
|
|
73679
73823
|
fieldDescription: "Descripción",
|
|
73680
73824
|
fieldDescriptionPlaceholder: "ej. Buscar información en la web",
|
|
73681
|
-
fieldInstruction: "Instrucción"
|
|
73825
|
+
fieldInstruction: "Instrucción",
|
|
73826
|
+
sessionNote: "Las habilidades añadidas o eliminadas aquí solo se aplican a las nuevas sesiones de chat. Los cambios en las instrucciones de una habilidad se aplican de inmediato, incluso en conversaciones en curso.",
|
|
73827
|
+
effectiveHeading: "Habilidades de este agente",
|
|
73828
|
+
catalogHeading: "Habilidades disponibles",
|
|
73829
|
+
noEffectiveSkills: "Este agente aún no tiene habilidades habilitadas. Añade una desde las habilidades disponibles.",
|
|
73830
|
+
addToAgent: "Añadir",
|
|
73831
|
+
addToAgentLabel: "Añadir {name} a este agente",
|
|
73832
|
+
removeFromAgent: "Quitar del agente",
|
|
73833
|
+
skillAdded: "{name} añadida",
|
|
73834
|
+
skillRemoved: "{name} eliminada",
|
|
73835
|
+
featuredBadge: "Destacada",
|
|
73836
|
+
nativeBadge: "Nativa",
|
|
73837
|
+
privateBadge: "Solo este agente",
|
|
73838
|
+
fieldCategory: "Categoría",
|
|
73839
|
+
fieldCategoryPlaceholder: "p. ej. web, código, datos",
|
|
73840
|
+
privateToAgent: "Solo este agente",
|
|
73841
|
+
privateToAgentHint: "Las habilidades privadas solo están disponibles para este agente y tienen prioridad sobre las habilidades de la plataforma con el mismo slug.",
|
|
73842
|
+
instructionHint: "La guía que sigue el agente cuando se usa la habilidad. Los cambios se aplican de inmediato, incluso en conversaciones en curso.",
|
|
73843
|
+
filesHint: "Recursos opcionales que el agente puede usar con esta habilidad. Las referencias y los scripts son archivos de texto; los assets son archivos subidos.",
|
|
73844
|
+
filesAfterCreateHint: "Puedes adjuntar recursos a esta habilidad después de crearla (vuelve a abrirla con Editar).",
|
|
73845
|
+
noFiles: "Aún no hay recursos adjuntos.",
|
|
73846
|
+
loadingFiles: "Cargando recursos...",
|
|
73847
|
+
fileTypeLabel: "Tipo",
|
|
73848
|
+
fileTypeReference: "Referencia",
|
|
73849
|
+
fileTypeScript: "Script",
|
|
73850
|
+
fileTypeAsset: "Recurso",
|
|
73851
|
+
fileNameLabel: "Nombre del archivo",
|
|
73852
|
+
fileNamePlaceholder: "p. ej. rubrica.md",
|
|
73853
|
+
fileContentLabel: "Contenido",
|
|
73854
|
+
fileContentPlaceholder: "El contenido de texto del archivo",
|
|
73855
|
+
addFileButton: "Añadir recurso",
|
|
73856
|
+
adding: "Añadiendo...",
|
|
73857
|
+
uploading: "Subiendo...",
|
|
73858
|
+
fileAdded: "Recurso añadido",
|
|
73859
|
+
fileUploaded: "Recurso subido",
|
|
73860
|
+
fileSaved: "Recurso guardado",
|
|
73861
|
+
fileDeleted: "Recurso eliminado",
|
|
73862
|
+
failedToSaveFile: "No se pudo guardar el recurso",
|
|
73863
|
+
failedToUploadFile: "No se pudo subir el recurso",
|
|
73864
|
+
failedToDeleteFile: "No se pudo eliminar el recurso",
|
|
73865
|
+
detailsTab: "General",
|
|
73866
|
+
filesTab: "Recursos",
|
|
73867
|
+
newFile: "Nuevo recurso",
|
|
73868
|
+
newFileDialogTitle: "Nuevo recurso",
|
|
73869
|
+
editFileDialogTitle: "Editar recurso",
|
|
73870
|
+
deleteFileDialogTitle: "Eliminar recurso",
|
|
73871
|
+
deleteFileConfirmation: "¿Seguro que quieres eliminar {name}? Esta acción no se puede deshacer.",
|
|
73872
|
+
chooseFile: "Elegir archivo",
|
|
73873
|
+
upload: "Subir",
|
|
73874
|
+
download: "Descargar",
|
|
73875
|
+
resourcesItemLabel: "recursos"
|
|
73682
73876
|
};
|
|
73683
73877
|
var clawSandboxHelpers$1 = {
|
|
73684
73878
|
unknown: "Desconocido",
|
|
@@ -75943,7 +76137,7 @@ var safetyTabLabels$1 = {
|
|
|
75943
76137
|
};
|
|
75944
76138
|
var screenshareTabLabels$1 = {
|
|
75945
76139
|
header: {
|
|
75946
|
-
title: "Pantalla
|
|
76140
|
+
title: "Pantalla",
|
|
75947
76141
|
description: "Cómo se comporta tu agente cuando un usuario comparte su pantalla durante una llamada de voz."
|
|
75948
76142
|
},
|
|
75949
76143
|
capability: {
|
|
@@ -77878,6 +78072,19 @@ var profileApplicationsQuestionsEditor$1 = {
|
|
|
77878
78072
|
collapseSection: "Contraer sección",
|
|
77879
78073
|
expandSection: "Expandir sección"
|
|
77880
78074
|
};
|
|
78075
|
+
var slashSkillPicker$1 = {
|
|
78076
|
+
listLabel: "Habilidades del agente",
|
|
78077
|
+
resultsAnnouncement: "{count} habilidades disponibles. Usa las flechas para navegar y Enter para seleccionar.",
|
|
78078
|
+
loading: "Cargando..."
|
|
78079
|
+
};
|
|
78080
|
+
var skillsTabLabels$1 = {
|
|
78081
|
+
header: {
|
|
78082
|
+
title: "Habilidades",
|
|
78083
|
+
description: "Guías reutilizables que puedes adjuntar a este agente: cada una es un conjunto de instrucciones para una tarea. En el chat, escribe / para usar una."
|
|
78084
|
+
},
|
|
78085
|
+
notBaseAgent: "Las habilidades solo están disponibles para los agentes base.",
|
|
78086
|
+
loading: "Cargando..."
|
|
78087
|
+
};
|
|
77881
78088
|
var es = {
|
|
77882
78089
|
accessTabAddAccess: accessTabAddAccess$1,
|
|
77883
78090
|
accessTabLabels: accessTabLabels$1,
|
|
@@ -78129,7 +78336,9 @@ var es = {
|
|
|
78129
78336
|
placementExam: placementExam$1,
|
|
78130
78337
|
applyApplyWizard: applyApplyWizard$1,
|
|
78131
78338
|
profileApplicationsTab: profileApplicationsTab$1,
|
|
78132
|
-
profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor$1
|
|
78339
|
+
profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor$1,
|
|
78340
|
+
slashSkillPicker: slashSkillPicker$1,
|
|
78341
|
+
skillsTabLabels: skillsTabLabels$1
|
|
78133
78342
|
};
|
|
78134
78343
|
|
|
78135
78344
|
var accessTabAddAccess = {
|
|
@@ -79799,7 +80008,57 @@ var clawSandboxAgentSkills = {
|
|
|
79799
80008
|
fieldVersionPlaceholder: "例如:1.0.0",
|
|
79800
80009
|
fieldDescription: "描述",
|
|
79801
80010
|
fieldDescriptionPlaceholder: "例如:在网络上搜索信息",
|
|
79802
|
-
fieldInstruction: "指令"
|
|
80011
|
+
fieldInstruction: "指令",
|
|
80012
|
+
sessionNote: "在此添加或移除的技能仅对新的聊天会话生效。技能指令的修改会立即生效,包括正在进行的对话。",
|
|
80013
|
+
effectiveHeading: "此智能体的技能",
|
|
80014
|
+
catalogHeading: "可用技能",
|
|
80015
|
+
noEffectiveSkills: "此智能体尚未启用任何技能。请从下方的可用技能中添加。",
|
|
80016
|
+
addToAgent: "添加",
|
|
80017
|
+
addToAgentLabel: "将 {name} 添加到此智能体",
|
|
80018
|
+
removeFromAgent: "从智能体中移除",
|
|
80019
|
+
skillAdded: "已添加 {name}",
|
|
80020
|
+
skillRemoved: "已移除 {name}",
|
|
80021
|
+
featuredBadge: "精选",
|
|
80022
|
+
nativeBadge: "原生",
|
|
80023
|
+
privateBadge: "仅此智能体",
|
|
80024
|
+
fieldCategory: "分类",
|
|
80025
|
+
fieldCategoryPlaceholder: "例如 web、代码、数据",
|
|
80026
|
+
privateToAgent: "仅此智能体",
|
|
80027
|
+
privateToAgentHint: "私有技能仅对此智能体可用,并优先于具有相同 slug 的平台技能。",
|
|
80028
|
+
instructionHint: "使用该技能时智能体遵循的操作指南。修改会立即生效,包括正在进行的对话。",
|
|
80029
|
+
filesHint: "智能体在使用此技能时可参考的可选资源。参考资料和脚本是文本文件;资产是上传的文件。",
|
|
80030
|
+
filesAfterCreateHint: "创建技能后即可附加资源(通过“编辑”重新打开)。",
|
|
80031
|
+
noFiles: "尚未附加任何资源。",
|
|
80032
|
+
loadingFiles: "正在加载资源...",
|
|
80033
|
+
fileTypeLabel: "类型",
|
|
80034
|
+
fileTypeReference: "参考资料",
|
|
80035
|
+
fileTypeScript: "脚本",
|
|
80036
|
+
fileTypeAsset: "资源",
|
|
80037
|
+
fileNameLabel: "文件名",
|
|
80038
|
+
fileNamePlaceholder: "例如 rubric.md",
|
|
80039
|
+
fileContentLabel: "内容",
|
|
80040
|
+
fileContentPlaceholder: "文件的文本内容",
|
|
80041
|
+
addFileButton: "添加资源",
|
|
80042
|
+
adding: "添加中...",
|
|
80043
|
+
uploading: "上传中...",
|
|
80044
|
+
fileAdded: "资源已添加",
|
|
80045
|
+
fileUploaded: "资源已上传",
|
|
80046
|
+
fileSaved: "资源已保存",
|
|
80047
|
+
fileDeleted: "资源已删除",
|
|
80048
|
+
failedToSaveFile: "保存资源失败",
|
|
80049
|
+
failedToUploadFile: "上传资源失败",
|
|
80050
|
+
failedToDeleteFile: "删除资源失败",
|
|
80051
|
+
detailsTab: "常规",
|
|
80052
|
+
filesTab: "资源",
|
|
80053
|
+
newFile: "新建资源",
|
|
80054
|
+
newFileDialogTitle: "新建资源",
|
|
80055
|
+
editFileDialogTitle: "编辑资源",
|
|
80056
|
+
deleteFileDialogTitle: "删除资源",
|
|
80057
|
+
deleteFileConfirmation: "确定要删除 {name} 吗?此操作无法撤销。",
|
|
80058
|
+
chooseFile: "选择文件",
|
|
80059
|
+
upload: "上传",
|
|
80060
|
+
download: "下载",
|
|
80061
|
+
resourcesItemLabel: "资源"
|
|
79803
80062
|
};
|
|
79804
80063
|
var clawSandboxHelpers = {
|
|
79805
80064
|
unknown: "未知",
|
|
@@ -82064,7 +82323,7 @@ var safetyTabLabels = {
|
|
|
82064
82323
|
};
|
|
82065
82324
|
var screenshareTabLabels = {
|
|
82066
82325
|
header: {
|
|
82067
|
-
title: "
|
|
82326
|
+
title: "屏幕",
|
|
82068
82327
|
description: "当用户在语音通话中共享屏幕时,您的智能体的表现方式。"
|
|
82069
82328
|
},
|
|
82070
82329
|
capability: {
|
|
@@ -83999,6 +84258,19 @@ var profileApplicationsQuestionsEditor = {
|
|
|
83999
84258
|
collapseSection: "折叠板块",
|
|
84000
84259
|
expandSection: "展开板块"
|
|
84001
84260
|
};
|
|
84261
|
+
var slashSkillPicker = {
|
|
84262
|
+
listLabel: "智能体技能",
|
|
84263
|
+
resultsAnnouncement: "{count} 个技能可用。使用方向键浏览,按 Enter 选择。",
|
|
84264
|
+
loading: "加载中..."
|
|
84265
|
+
};
|
|
84266
|
+
var skillsTabLabels = {
|
|
84267
|
+
header: {
|
|
84268
|
+
title: "技能",
|
|
84269
|
+
description: "可附加到此智能体的可复用操作指南——每个技能都是完成一项任务的指令集。在聊天中输入 / 即可使用。"
|
|
84270
|
+
},
|
|
84271
|
+
notBaseAgent: "技能仅适用于基础智能体。",
|
|
84272
|
+
loading: "加载中..."
|
|
84273
|
+
};
|
|
84002
84274
|
var zh = {
|
|
84003
84275
|
accessTabAddAccess: accessTabAddAccess,
|
|
84004
84276
|
accessTabLabels: accessTabLabels,
|
|
@@ -84250,7 +84522,9 @@ var zh = {
|
|
|
84250
84522
|
placementExam: placementExam,
|
|
84251
84523
|
applyApplyWizard: applyApplyWizard,
|
|
84252
84524
|
profileApplicationsTab: profileApplicationsTab,
|
|
84253
|
-
profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor
|
|
84525
|
+
profileApplicationsQuestionsEditor: profileApplicationsQuestionsEditor,
|
|
84526
|
+
slashSkillPicker: slashSkillPicker,
|
|
84527
|
+
skillsTabLabels: skillsTabLabels
|
|
84254
84528
|
};
|
|
84255
84529
|
|
|
84256
84530
|
/**
|
|
@@ -227076,27 +227350,192 @@ function AgentConfigPrompts({ platformKey, mentorUniqueId }) {
|
|
|
227076
227350
|
}) }), editingField && (jsx(EditFieldModal, { isOpen: !!editingField, onClose: () => setEditingField(null), label: editingField.label, value: editingField.value, onSave: handleSaveField, isSaving: isUpdating }))] }));
|
|
227077
227351
|
}
|
|
227078
227352
|
|
|
227353
|
+
/** Page size for the resources list inside the Edit Skill dialog. */
|
|
227354
|
+
const RESOURCES_PAGE_SIZE = 20;
|
|
227355
|
+
const EMPTY_RESOURCE_FORM = {
|
|
227356
|
+
file_type: 'reference',
|
|
227357
|
+
filename: '',
|
|
227358
|
+
content: '',
|
|
227359
|
+
};
|
|
227360
|
+
/**
|
|
227361
|
+
* File attachments for a skill (agent-skill-resources). `reference`/`script`
|
|
227362
|
+
* files are text (filename + content); `asset` files are binary uploads.
|
|
227363
|
+
* Rendered as the Files tab of the Edit Skill dialog: a list with row
|
|
227364
|
+
* actions, a New File popup for add/edit, and a delete confirmation.
|
|
227365
|
+
*/
|
|
227366
|
+
function SkillResourcesSection({ platformKey, skillId }) {
|
|
227367
|
+
var _a, _b, _c;
|
|
227368
|
+
const t = useT();
|
|
227369
|
+
const [page, setPage] = useState(1);
|
|
227370
|
+
const { data: resourcePage, isLoading } = useGetAgentSkillResourcesQuery({
|
|
227371
|
+
org: platformKey,
|
|
227372
|
+
skill: skillId,
|
|
227373
|
+
limit: RESOURCES_PAGE_SIZE,
|
|
227374
|
+
offset: (page - 1) * RESOURCES_PAGE_SIZE,
|
|
227375
|
+
});
|
|
227376
|
+
const resources = (_a = resourcePage === null || resourcePage === void 0 ? void 0 : resourcePage.results) !== null && _a !== void 0 ? _a : [];
|
|
227377
|
+
const totalCount = (_b = resourcePage === null || resourcePage === void 0 ? void 0 : resourcePage.count) !== null && _b !== void 0 ? _b : 0;
|
|
227378
|
+
const totalPages = Math.max(1, Math.ceil(totalCount / RESOURCES_PAGE_SIZE));
|
|
227379
|
+
// Deleting the last item of the last page leaves the page out of range —
|
|
227380
|
+
// snap back to the new last page.
|
|
227381
|
+
useEffect(() => {
|
|
227382
|
+
if (page > totalPages)
|
|
227383
|
+
setPage(totalPages);
|
|
227384
|
+
}, [page, totalPages]);
|
|
227385
|
+
const [createResource, { isLoading: isCreating }] = useCreateAgentSkillResourceMutation();
|
|
227386
|
+
const [updateResource, { isLoading: isUpdating }] = useUpdateAgentSkillResourceMutation();
|
|
227387
|
+
const [uploadAsset, { isLoading: isUploading }] = useUploadAgentSkillResourceAssetMutation();
|
|
227388
|
+
const [deleteResource, { isLoading: isDeleting }] = useDeleteAgentSkillResourceMutation();
|
|
227389
|
+
const [showFileDialog, setShowFileDialog] = useState(false);
|
|
227390
|
+
const [editingResource, setEditingResource] = useState(null);
|
|
227391
|
+
const [deletingResource, setDeletingResource] = useState(null);
|
|
227392
|
+
const [form, setForm] = useState(EMPTY_RESOURCE_FORM);
|
|
227393
|
+
const [assetFile, setAssetFile] = useState(null);
|
|
227394
|
+
const fileInputRef = useRef(null);
|
|
227395
|
+
const isSaving = isCreating || isUpdating || isUploading;
|
|
227396
|
+
const isAssetForm = form.file_type === 'asset' && !editingResource;
|
|
227397
|
+
const canSubmitFile = isAssetForm ? !!assetFile : !!form.filename && !!form.content;
|
|
227398
|
+
const typeLabel = (fileType) => {
|
|
227399
|
+
switch (fileType) {
|
|
227400
|
+
case 'script':
|
|
227401
|
+
return t('clawSandboxAgentSkills.fileTypeScript');
|
|
227402
|
+
case 'asset':
|
|
227403
|
+
return t('clawSandboxAgentSkills.fileTypeAsset');
|
|
227404
|
+
default:
|
|
227405
|
+
return t('clawSandboxAgentSkills.fileTypeReference');
|
|
227406
|
+
}
|
|
227407
|
+
};
|
|
227408
|
+
const openNewFileDialog = () => {
|
|
227409
|
+
setForm(EMPTY_RESOURCE_FORM);
|
|
227410
|
+
setAssetFile(null);
|
|
227411
|
+
setEditingResource(null);
|
|
227412
|
+
setShowFileDialog(true);
|
|
227413
|
+
};
|
|
227414
|
+
const openEditFileDialog = (resource) => {
|
|
227415
|
+
var _a, _b;
|
|
227416
|
+
setForm({
|
|
227417
|
+
file_type: (_a = resource.file_type) !== null && _a !== void 0 ? _a : 'reference',
|
|
227418
|
+
filename: resource.filename,
|
|
227419
|
+
content: (_b = resource.content) !== null && _b !== void 0 ? _b : '',
|
|
227420
|
+
});
|
|
227421
|
+
setAssetFile(null);
|
|
227422
|
+
setEditingResource(resource);
|
|
227423
|
+
setShowFileDialog(true);
|
|
227424
|
+
};
|
|
227425
|
+
const closeFileDialog = () => {
|
|
227426
|
+
setShowFileDialog(false);
|
|
227427
|
+
setEditingResource(null);
|
|
227428
|
+
setForm(EMPTY_RESOURCE_FORM);
|
|
227429
|
+
setAssetFile(null);
|
|
227430
|
+
};
|
|
227431
|
+
const handleSubmitFile = async () => {
|
|
227432
|
+
try {
|
|
227433
|
+
if (editingResource) {
|
|
227434
|
+
await updateResource({
|
|
227435
|
+
org: platformKey,
|
|
227436
|
+
id: editingResource.id,
|
|
227437
|
+
filename: form.filename,
|
|
227438
|
+
content: form.content,
|
|
227439
|
+
}).unwrap();
|
|
227440
|
+
toast.success(t('clawSandboxAgentSkills.fileSaved'));
|
|
227441
|
+
}
|
|
227442
|
+
else if (isAssetForm) {
|
|
227443
|
+
if (!assetFile)
|
|
227444
|
+
return;
|
|
227445
|
+
await uploadAsset({
|
|
227446
|
+
org: platformKey,
|
|
227447
|
+
skill: skillId,
|
|
227448
|
+
file: assetFile,
|
|
227449
|
+
filename: assetFile.name,
|
|
227450
|
+
}).unwrap();
|
|
227451
|
+
toast.success(t('clawSandboxAgentSkills.fileUploaded'));
|
|
227452
|
+
}
|
|
227453
|
+
else {
|
|
227454
|
+
await createResource({
|
|
227455
|
+
org: platformKey,
|
|
227456
|
+
skill: skillId,
|
|
227457
|
+
file_type: form.file_type,
|
|
227458
|
+
filename: form.filename,
|
|
227459
|
+
content: form.content,
|
|
227460
|
+
}).unwrap();
|
|
227461
|
+
toast.success(t('clawSandboxAgentSkills.fileAdded'));
|
|
227462
|
+
}
|
|
227463
|
+
closeFileDialog();
|
|
227464
|
+
}
|
|
227465
|
+
catch (_a) {
|
|
227466
|
+
toast.error(t(isAssetForm
|
|
227467
|
+
? 'clawSandboxAgentSkills.failedToUploadFile'
|
|
227468
|
+
: 'clawSandboxAgentSkills.failedToSaveFile'));
|
|
227469
|
+
}
|
|
227470
|
+
};
|
|
227471
|
+
const handleDeleteFile = async () => {
|
|
227472
|
+
if (!deletingResource)
|
|
227473
|
+
return;
|
|
227474
|
+
try {
|
|
227475
|
+
await deleteResource({ org: platformKey, id: deletingResource.id }).unwrap();
|
|
227476
|
+
toast.success(t('clawSandboxAgentSkills.fileDeleted'));
|
|
227477
|
+
setDeletingResource(null);
|
|
227478
|
+
}
|
|
227479
|
+
catch (_a) {
|
|
227480
|
+
toast.error(t('clawSandboxAgentSkills.failedToDeleteFile'));
|
|
227481
|
+
}
|
|
227482
|
+
};
|
|
227483
|
+
const submitLabel = () => {
|
|
227484
|
+
if (editingResource) {
|
|
227485
|
+
return isUpdating ? t('clawSandboxAgentSkills.saving') : t('clawSandboxAgentSkills.save');
|
|
227486
|
+
}
|
|
227487
|
+
if (isAssetForm) {
|
|
227488
|
+
return isUploading
|
|
227489
|
+
? t('clawSandboxAgentSkills.uploading')
|
|
227490
|
+
: t('clawSandboxAgentSkills.upload');
|
|
227491
|
+
}
|
|
227492
|
+
return isCreating ? t('clawSandboxAgentSkills.adding') : t('clawSandboxAgentSkills.addFileButton');
|
|
227493
|
+
};
|
|
227494
|
+
return (jsxs("div", { className: "space-y-4", "data-testid": "skill-resources-section", children: [jsxs("div", { className: "flex items-start justify-between gap-4", children: [jsx("p", { className: "text-xs text-gray-500", children: t('clawSandboxAgentSkills.filesHint') }), jsxs(Button$1, { onClick: openNewFileDialog, size: "sm", className: "shrink-0 cursor-pointer bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", children: [jsx(Plus, { className: "h-4 w-4" }), t('clawSandboxAgentSkills.newFile')] })] }), isLoading ? (jsxs("div", { className: "flex items-center gap-2 p-4", role: "status", children: [jsx(LoaderCircle, { className: "h-4 w-4 animate-spin text-blue-500" }), jsx("span", { className: "text-sm text-gray-500", children: t('clawSandboxAgentSkills.loadingFiles') })] })) : resources.length === 0 ? (jsx("div", { className: "flex items-center justify-center rounded-lg border p-6", children: jsx("p", { className: "text-sm text-gray-500", children: t('clawSandboxAgentSkills.noFiles') }) })) : (jsxs("div", { className: "space-y-3", children: [resources.map((resource) => (jsxs("div", { className: "flex items-center justify-between gap-4 rounded-lg border p-4", children: [jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [jsx(Paperclip, { className: "h-4 w-4 shrink-0 text-gray-400" }), jsx("span", { className: "truncate text-sm font-medium text-gray-700", children: resource.filename }), jsx("span", { className: "rounded-full bg-gray-100 px-2 py-0.5 text-[0.625rem] text-gray-500", children: typeLabel(resource.file_type) })] }), jsx(FloatingPortalContainerContext.Provider, { value: null, children: jsxs(DropdownMenu, { children: [jsx(DropdownMenuTrigger, { asChild: true, children: jsx(Button$1, { variant: "ghost", size: "sm", "aria-label": t('clawSandboxAgentSkills.skillActions', {
|
|
227495
|
+
name: resource.filename,
|
|
227496
|
+
}), children: jsx(Ellipsis, { className: "h-4 w-4" }) }) }), jsxs(DropdownMenuContent, { align: "end", className: "z-[110]", children: [resource.file_type === 'asset' && resource.file && (jsx(DropdownMenuItem, { asChild: true, className: "cursor-pointer", children: jsxs("a", { href: resource.file, target: "_blank", rel: "noreferrer", download: true, children: [jsx(Download, { className: "mr-2 h-4 w-4" }), t('clawSandboxAgentSkills.download')] }) })), resource.file_type !== 'asset' && (jsxs(DropdownMenuItem, { className: "cursor-pointer", onClick: () => openEditFileDialog(resource), children: [jsx(Pen, { className: "mr-2 h-4 w-4" }), t('clawSandboxAgentSkills.edit')] })), jsxs(DropdownMenuItem, { variant: "destructive", className: "cursor-pointer", onClick: () => setDeletingResource(resource), children: [jsx(Trash2, { className: "mr-2 h-4 w-4" }), t('clawSandboxAgentSkills.delete')] })] })] }) })] }, resource.id))), jsx(AdvancedPagination, { currentPage: page, totalPages: totalPages, onPageChange: setPage, totalCount: totalCount, itemsPerPage: RESOURCES_PAGE_SIZE, itemLabel: t('clawSandboxAgentSkills.resourcesItemLabel') })] })), jsxs(OverlayModal, { open: showFileDialog, onClose: closeFileDialog, title: t(editingResource
|
|
227497
|
+
? 'clawSandboxAgentSkills.editFileDialogTitle'
|
|
227498
|
+
: 'clawSandboxAgentSkills.newFileDialogTitle'), className: "max-w-lg", children: [jsxs("div", { className: "mt-4 grid gap-4", children: [!editingResource && (jsxs("div", { className: "space-y-2", children: [jsx(Label$2, { htmlFor: "resource-type", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fileTypeLabel') }), jsxs(Select$1, { value: form.file_type, onValueChange: (value) => setForm({ ...form, file_type: value }), children: [jsx(SelectTrigger, { id: "resource-type", className: "w-full", children: jsx(SelectValue, {}) }), jsxs(SelectContent, { children: [jsx(SelectItem, { value: "reference", children: t('clawSandboxAgentSkills.fileTypeReference') }), jsx(SelectItem, { value: "script", children: t('clawSandboxAgentSkills.fileTypeScript') }), jsx(SelectItem, { value: "asset", children: t('clawSandboxAgentSkills.fileTypeAsset') })] })] })] })), isAssetForm ? (jsxs("div", { className: "space-y-2", children: [jsx(Label$2, { htmlFor: "resource-file", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fileNameLabel') }), jsx("input", { ref: fileInputRef, id: "resource-file", type: "file", className: "hidden", onChange: (e) => { var _a, _b; return setAssetFile((_b = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null); }, "data-testid": "resource-file-input" }), jsxs("div", { className: "flex items-center gap-2", children: [jsxs(Button$1, { variant: "outline", size: "sm", onClick: () => { var _a; return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click(); }, children: [jsx(Paperclip, { className: "h-4 w-4" }), t('clawSandboxAgentSkills.chooseFile')] }), assetFile && (jsx("span", { className: "truncate text-sm text-gray-600", children: assetFile.name }))] })] })) : (jsxs(Fragment$1, { children: [jsxs("div", { className: "space-y-2", children: [jsx(Label$2, { htmlFor: "resource-filename", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fileNameLabel') }), jsx(Input, { id: "resource-filename", name: "resource-filename", value: form.filename, onChange: (e) => setForm({ ...form, filename: e.target.value }), placeholder: t('clawSandboxAgentSkills.fileNamePlaceholder'), className: "py-6" })] }), jsxs("div", { className: "space-y-2", children: [jsx(Label$2, { htmlFor: "resource-content", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fileContentLabel') }), jsx(Textarea, { id: "resource-content", name: "resource-content", value: form.content, onChange: (e) => setForm({ ...form, content: e.target.value }), placeholder: t('clawSandboxAgentSkills.fileContentPlaceholder'), rows: 6 })] })] }))] }), jsxs("div", { className: "flex justify-end gap-2 pt-2", children: [jsx(Button$1, { variant: "outline", onClick: closeFileDialog, children: t('clawSandboxAgentSkills.cancel') }), jsx(Button$1, { onClick: handleSubmitFile, disabled: isSaving || !canSubmitFile, className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", children: submitLabel() })] })] }), jsxs(OverlayModal, { open: !!deletingResource, onClose: () => setDeletingResource(null), title: t('clawSandboxAgentSkills.deleteFileDialogTitle'), className: "max-w-md", children: [jsx("p", { className: "mt-2 text-sm text-gray-600", children: t('clawSandboxAgentSkills.deleteFileConfirmation', {
|
|
227499
|
+
name: (_c = deletingResource === null || deletingResource === void 0 ? void 0 : deletingResource.filename) !== null && _c !== void 0 ? _c : '',
|
|
227500
|
+
}) }), jsxs("div", { className: "flex justify-end gap-2 pt-2", children: [jsx(Button$1, { variant: "outline", onClick: () => setDeletingResource(null), children: t('clawSandboxAgentSkills.cancel') }), jsx(Button$1, { onClick: handleDeleteFile, disabled: isDeleting, className: "bg-red-600 text-white hover:bg-red-700", children: isDeleting
|
|
227501
|
+
? t('clawSandboxAgentSkills.deleting')
|
|
227502
|
+
: t('clawSandboxAgentSkills.delete') })] })] })] }));
|
|
227503
|
+
}
|
|
227504
|
+
|
|
227079
227505
|
const EMPTY_SKILL_FORM = {
|
|
227080
227506
|
name: '',
|
|
227081
227507
|
slug: '',
|
|
227082
227508
|
description: '',
|
|
227083
227509
|
version: '1.0.0',
|
|
227510
|
+
category: '',
|
|
227084
227511
|
instruction: '',
|
|
227512
|
+
privateToAgent: false,
|
|
227085
227513
|
};
|
|
227514
|
+
// The builder resolves the effective skill set client-side, which needs the
|
|
227515
|
+
// complete catalog and assignment lists. Request one explicit large page so
|
|
227516
|
+
// the result is deterministic even if the backend later configures a default
|
|
227517
|
+
// page size (the list endpoints unwrap paginated envelopes to `results`).
|
|
227518
|
+
const FULL_LIST_LIMIT = 1000;
|
|
227086
227519
|
function AgentSkills({ platformKey, mentorUniqueId }) {
|
|
227087
227520
|
var _a;
|
|
227088
227521
|
const t = useT();
|
|
227089
227522
|
// Skills are managed independently of the sandbox connection — org-level
|
|
227090
227523
|
// skills and the mentor's assignments both resolve without a wired Claw
|
|
227091
227524
|
// instance, so we always fetch and let admins add/assign skills freely.
|
|
227525
|
+
// Always fetch — the backend enforces read access; RBAC here only gates
|
|
227526
|
+
// the write affordances (a partial permissions map must not blank the UI).
|
|
227092
227527
|
const { data: availableSkills, isLoading: isLoadingSkills } = useGetAgentSkillsQuery({
|
|
227093
227528
|
org: platformKey,
|
|
227529
|
+
limit: FULL_LIST_LIMIT,
|
|
227530
|
+
offset: 0,
|
|
227094
227531
|
});
|
|
227095
227532
|
const { data: assignments, isLoading: isLoadingAssignments } = useGetMentorSkillAssignmentsQuery({
|
|
227096
227533
|
org: platformKey,
|
|
227097
227534
|
mentorUniqueId,
|
|
227535
|
+
limit: FULL_LIST_LIMIT,
|
|
227536
|
+
offset: 0,
|
|
227098
227537
|
});
|
|
227099
|
-
// Assignment mutations (toggle on
|
|
227538
|
+
// Assignment mutations (attach/detach/toggle on the agent)
|
|
227100
227539
|
const [createAssignment, { isLoading: isCreatingAssignment }] = useCreateMentorSkillAssignmentMutation();
|
|
227101
227540
|
const [updateAssignment, { isLoading: isUpdatingAssignment }] = useUpdateMentorSkillAssignmentMutation();
|
|
227102
227541
|
const [deleteAssignment, { isLoading: isDeletingAssignment }] = useDeleteMentorSkillAssignmentMutation();
|
|
@@ -227109,59 +227548,95 @@ function AgentSkills({ platformKey, mentorUniqueId }) {
|
|
|
227109
227548
|
const [deletingSkill, setDeletingSkill] = useState(null);
|
|
227110
227549
|
const [form, setForm] = useState(EMPTY_SKILL_FORM);
|
|
227111
227550
|
const isLoading = isLoadingSkills || isLoadingAssignments;
|
|
227112
|
-
const
|
|
227113
|
-
const
|
|
227114
|
-
|
|
227115
|
-
const
|
|
227551
|
+
const isMutatingAgentSkill = isCreatingAssignment || isUpdatingAssignment || isDeletingAssignment || isUpdatingSkill;
|
|
227552
|
+
const allSkills = availableSkills !== null && availableSkills !== void 0 ? availableSkills : [];
|
|
227553
|
+
const effectiveSkills = resolveEffectiveAgentSkills(allSkills, assignments !== null && assignments !== void 0 ? assignments : [], mentorUniqueId);
|
|
227554
|
+
const effectiveUniqueIds = new Set(effectiveSkills.map((s) => s.unique_id));
|
|
227555
|
+
const effectiveSlugs = new Set(effectiveSkills.map((s) => s.slug));
|
|
227556
|
+
// Catalog skills this agent could still attach: enabled, platform-wide
|
|
227557
|
+
// (never another agent's private skills), and not already effective. A
|
|
227558
|
+
// skill whose slug is already effective (e.g. shadowed by a private skill)
|
|
227559
|
+
// would dedupe away after attaching — don't offer an Add that does nothing.
|
|
227560
|
+
const attachableSkills = allSkills.filter((skill) => skill.enabled &&
|
|
227561
|
+
!skill.mentor &&
|
|
227562
|
+
!effectiveUniqueIds.has(skill.unique_id) &&
|
|
227563
|
+
!effectiveSlugs.has(skill.slug));
|
|
227564
|
+
// Featured skills from the `main` platform are read-only for tenants — the
|
|
227565
|
+
// API 404s writes against them, so hide the edit/delete affordances.
|
|
227566
|
+
const isSkillEditable = (skill) => {
|
|
227567
|
+
if (!skill)
|
|
227568
|
+
return false;
|
|
227569
|
+
return skill.platform_key ? skill.platform_key === platformKey : !skill.is_featured;
|
|
227570
|
+
};
|
|
227116
227571
|
const resetForm = () => setForm(EMPTY_SKILL_FORM);
|
|
227117
|
-
const
|
|
227118
|
-
const existing = assignmentsBySkillUniqueId.get(skill.unique_id);
|
|
227572
|
+
const handleToggleEffective = async (effective, shouldEnable) => {
|
|
227119
227573
|
try {
|
|
227120
|
-
if (
|
|
227121
|
-
|
|
227122
|
-
|
|
227123
|
-
|
|
227124
|
-
|
|
227125
|
-
|
|
227126
|
-
enabled: true,
|
|
227127
|
-
}).unwrap();
|
|
227128
|
-
}
|
|
227129
|
-
else {
|
|
227130
|
-
await createAssignment({
|
|
227131
|
-
org: platformKey,
|
|
227132
|
-
mentorUniqueId,
|
|
227133
|
-
skill: skill.unique_id,
|
|
227134
|
-
enabled: true,
|
|
227135
|
-
}).unwrap();
|
|
227136
|
-
}
|
|
227137
|
-
toast.success(t('clawSandboxAgentSkills.skillEnabled', { name: skill.name }));
|
|
227574
|
+
if (effective.origin === 'private' && effective.skill) {
|
|
227575
|
+
await updateSkill({
|
|
227576
|
+
org: platformKey,
|
|
227577
|
+
id: effective.skill.id,
|
|
227578
|
+
enabled: shouldEnable,
|
|
227579
|
+
}).unwrap();
|
|
227138
227580
|
}
|
|
227139
|
-
else {
|
|
227140
|
-
|
|
227141
|
-
return;
|
|
227142
|
-
await deleteAssignment({
|
|
227581
|
+
else if (effective.assignmentId !== undefined) {
|
|
227582
|
+
await updateAssignment({
|
|
227143
227583
|
org: platformKey,
|
|
227144
227584
|
mentorUniqueId,
|
|
227145
|
-
assignmentPk:
|
|
227585
|
+
assignmentPk: effective.assignmentId,
|
|
227586
|
+
enabled: shouldEnable,
|
|
227146
227587
|
}).unwrap();
|
|
227147
|
-
toast.success(t('clawSandboxAgentSkills.skillDisabled', { name: skill.name }));
|
|
227148
227588
|
}
|
|
227589
|
+
toast.success(t(shouldEnable
|
|
227590
|
+
? 'clawSandboxAgentSkills.skillEnabled'
|
|
227591
|
+
: 'clawSandboxAgentSkills.skillDisabled', { name: effective.name }));
|
|
227592
|
+
}
|
|
227593
|
+
catch (_a) {
|
|
227594
|
+
toast.error(t('clawSandboxAgentSkills.failedToUpdateSkill', { name: effective.name }));
|
|
227595
|
+
}
|
|
227596
|
+
};
|
|
227597
|
+
const handleAttach = async (skill) => {
|
|
227598
|
+
try {
|
|
227599
|
+
await createAssignment({
|
|
227600
|
+
org: platformKey,
|
|
227601
|
+
mentorUniqueId,
|
|
227602
|
+
skill: skill.unique_id,
|
|
227603
|
+
enabled: true,
|
|
227604
|
+
}).unwrap();
|
|
227605
|
+
toast.success(t('clawSandboxAgentSkills.skillAdded', { name: skill.name }));
|
|
227149
227606
|
}
|
|
227150
227607
|
catch (_a) {
|
|
227151
227608
|
toast.error(t('clawSandboxAgentSkills.failedToUpdateSkill', { name: skill.name }));
|
|
227152
227609
|
}
|
|
227153
227610
|
};
|
|
227611
|
+
const handleDetach = async (effective) => {
|
|
227612
|
+
if (effective.assignmentId === undefined)
|
|
227613
|
+
return;
|
|
227614
|
+
try {
|
|
227615
|
+
await deleteAssignment({
|
|
227616
|
+
org: platformKey,
|
|
227617
|
+
mentorUniqueId,
|
|
227618
|
+
assignmentPk: effective.assignmentId,
|
|
227619
|
+
}).unwrap();
|
|
227620
|
+
toast.success(t('clawSandboxAgentSkills.skillRemoved', { name: effective.name }));
|
|
227621
|
+
}
|
|
227622
|
+
catch (_a) {
|
|
227623
|
+
toast.error(t('clawSandboxAgentSkills.failedToUpdateSkill', { name: effective.name }));
|
|
227624
|
+
}
|
|
227625
|
+
};
|
|
227154
227626
|
const openNewSkillDialog = () => {
|
|
227155
227627
|
resetForm();
|
|
227156
227628
|
setShowNewDialog(true);
|
|
227157
227629
|
};
|
|
227158
227630
|
const openEditSkillDialog = (skill) => {
|
|
227631
|
+
var _a;
|
|
227159
227632
|
setForm({
|
|
227160
227633
|
name: skill.name,
|
|
227161
227634
|
slug: skill.slug,
|
|
227162
227635
|
description: skill.description,
|
|
227163
227636
|
version: skill.version,
|
|
227637
|
+
category: (_a = skill.category) !== null && _a !== void 0 ? _a : '',
|
|
227164
227638
|
instruction: skill.instruction,
|
|
227639
|
+
privateToAgent: skill.mentor === mentorUniqueId,
|
|
227165
227640
|
});
|
|
227166
227641
|
setEditingSkill(skill);
|
|
227167
227642
|
};
|
|
@@ -227182,6 +227657,8 @@ function AgentSkills({ platformKey, mentorUniqueId }) {
|
|
|
227182
227657
|
slug: form.slug,
|
|
227183
227658
|
description: form.description,
|
|
227184
227659
|
version: form.version || '1.0.0',
|
|
227660
|
+
...(form.category && { category: form.category }),
|
|
227661
|
+
...(form.privateToAgent && { mentor: mentorUniqueId }),
|
|
227185
227662
|
instruction: form.instruction,
|
|
227186
227663
|
enabled: true,
|
|
227187
227664
|
}).unwrap();
|
|
@@ -227207,6 +227684,7 @@ function AgentSkills({ platformKey, mentorUniqueId }) {
|
|
|
227207
227684
|
slug: form.slug,
|
|
227208
227685
|
description: form.description,
|
|
227209
227686
|
version: form.version,
|
|
227687
|
+
category: form.category,
|
|
227210
227688
|
instruction: form.instruction,
|
|
227211
227689
|
}).unwrap();
|
|
227212
227690
|
toast.success(t('clawSandboxAgentSkills.skillUpdated'));
|
|
@@ -227228,32 +227706,169 @@ function AgentSkills({ platformKey, mentorUniqueId }) {
|
|
|
227228
227706
|
toast.error(t('clawSandboxAgentSkills.failedToDeleteSkill'));
|
|
227229
227707
|
}
|
|
227230
227708
|
};
|
|
227709
|
+
const renderBadges = (skill, effective) => {
|
|
227710
|
+
var _a, _b, _c;
|
|
227711
|
+
const category = (_a = effective === null || effective === void 0 ? void 0 : effective.category) !== null && _a !== void 0 ? _a : skill === null || skill === void 0 ? void 0 : skill.category;
|
|
227712
|
+
const skillType = (_b = effective === null || effective === void 0 ? void 0 : effective.skill_type) !== null && _b !== void 0 ? _b : skill === null || skill === void 0 ? void 0 : skill.skill_type;
|
|
227713
|
+
const isFeatured = (_c = effective === null || effective === void 0 ? void 0 : effective.is_featured) !== null && _c !== void 0 ? _c : skill === null || skill === void 0 ? void 0 : skill.is_featured;
|
|
227714
|
+
return (jsxs("span", { className: "flex flex-wrap items-center gap-1", children: [category && (jsx("span", { className: "rounded-full bg-gray-100 px-2 py-0.5 text-[0.625rem] text-gray-500", children: category })), skillType === 'native' && (jsx("span", { className: "rounded-full bg-purple-50 px-2 py-0.5 text-[0.625rem] text-purple-600", children: t('clawSandboxAgentSkills.nativeBadge') })), isFeatured && (jsx("span", { className: "rounded-full bg-amber-50 px-2 py-0.5 text-[0.625rem] text-amber-600", children: t('clawSandboxAgentSkills.featuredBadge') })), (effective === null || effective === void 0 ? void 0 : effective.origin) === 'private' && (jsx("span", { className: "rounded-full bg-blue-50 px-2 py-0.5 text-[0.625rem] text-blue-600", children: t('clawSandboxAgentSkills.privateBadge') }))] }));
|
|
227715
|
+
};
|
|
227716
|
+
const renderSkillMenu = (skill, effective) => {
|
|
227717
|
+
var _a, _b;
|
|
227718
|
+
const editable = isSkillEditable(skill);
|
|
227719
|
+
const showEdit = editable;
|
|
227720
|
+
const showDelete = editable;
|
|
227721
|
+
const detachable = (effective === null || effective === void 0 ? void 0 : effective.origin) === 'assignment';
|
|
227722
|
+
if (!showEdit && !showDelete && !detachable)
|
|
227723
|
+
return null;
|
|
227724
|
+
const name = (_b = (_a = effective === null || effective === void 0 ? void 0 : effective.name) !== null && _a !== void 0 ? _a : skill === null || skill === void 0 ? void 0 : skill.name) !== null && _b !== void 0 ? _b : '';
|
|
227725
|
+
return (jsxs(DropdownMenu, { children: [jsx(DropdownMenuTrigger, { asChild: true, children: jsx(Button$1, { variant: "ghost", size: "sm", "aria-label": t('clawSandboxAgentSkills.skillActions', { name }), children: jsx(Ellipsis, { className: "h-4 w-4" }) }) }), jsxs(DropdownMenuContent, { align: "end", children: [detachable && (jsxs(DropdownMenuItem, { className: "cursor-pointer", onClick: () => effective && handleDetach(effective), children: [jsx(CircleMinus$1, { className: "mr-2 h-4 w-4" }), t('clawSandboxAgentSkills.removeFromAgent')] })), showEdit && skill && (jsxs(DropdownMenuItem, { className: "cursor-pointer", onClick: () => openEditSkillDialog(skill), children: [jsx(Pen, { className: "mr-2 h-4 w-4" }), t('clawSandboxAgentSkills.edit')] })), showDelete && skill && (jsxs(DropdownMenuItem, { variant: "destructive", className: "cursor-pointer", onClick: () => setDeletingSkill(skill), children: [jsx(Trash2, { className: "mr-2 h-4 w-4" }), t('clawSandboxAgentSkills.delete')] }))] })] }));
|
|
227726
|
+
};
|
|
227231
227727
|
if (isLoading) {
|
|
227232
227728
|
return (jsxs("div", { className: "flex items-center gap-2 p-4", children: [jsx(LoaderCircle, { className: "h-4 w-4 animate-spin text-blue-500" }), jsx("span", { className: "text-sm text-gray-500", children: t('clawSandboxAgentSkills.loadingSkills') })] }));
|
|
227233
227729
|
}
|
|
227234
|
-
return (jsxs("div", { className: "space-y-4", "data-testid": "agent-skills-content", children: [
|
|
227235
|
-
|
|
227236
|
-
|
|
227237
|
-
|
|
227238
|
-
|
|
227239
|
-
|
|
227240
|
-
|
|
227241
|
-
|
|
227242
|
-
|
|
227243
|
-
|
|
227244
|
-
}), children: jsx(Ellipsis, { className: "h-4 w-4" }) }) }), jsxs(DropdownMenuContent, { align: "end", children: [jsxs(DropdownMenuItem, { className: "cursor-pointer", onClick: () => openEditSkillDialog(skill), children: [jsx(Pen, { className: "mr-2 h-4 w-4" }), t('clawSandboxAgentSkills.edit')] }), jsxs(DropdownMenuItem, { variant: "destructive", className: "cursor-pointer", onClick: () => setDeletingSkill(skill), children: [jsx(Trash2, { className: "mr-2 h-4 w-4" }), t('clawSandboxAgentSkills.delete')] })] })] })] })] }, skill.id));
|
|
227245
|
-
}) })), jsxs(OverlayModal, { open: showNewDialog, onClose: closeAllDialogs, title: t('clawSandboxAgentSkills.newSkillDialogTitle'), className: "max-w-2xl", children: [jsx(SkillForm, { form: form, onChange: setForm }), jsxs("div", { className: "flex justify-end gap-2 pt-2", children: [jsx(Button$1, { variant: "outline", onClick: closeAllDialogs, children: t('clawSandboxAgentSkills.cancel') }), jsx(Button$1, { onClick: handleCreateSkill, disabled: isCreatingSkill || !form.name || !form.slug, className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", children: isCreatingSkill
|
|
227246
|
-
? t('clawSandboxAgentSkills.creating')
|
|
227247
|
-
: t('clawSandboxAgentSkills.create') })] })] }), jsxs(OverlayModal, { open: !!editingSkill, onClose: closeAllDialogs, title: t('clawSandboxAgentSkills.editSkillDialogTitle'), className: "max-w-2xl", children: [jsx(SkillForm, { form: form, onChange: setForm }), jsxs("div", { className: "flex justify-end gap-2 pt-2", children: [jsx(Button$1, { variant: "outline", onClick: closeAllDialogs, children: t('clawSandboxAgentSkills.cancel') }), jsx(Button$1, { onClick: handleUpdateSkill, disabled: isUpdatingSkill || !form.name || !form.slug, className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", children: isUpdatingSkill
|
|
227248
|
-
? t('clawSandboxAgentSkills.saving')
|
|
227249
|
-
: t('clawSandboxAgentSkills.save') })] })] }), jsxs(OverlayModal, { open: !!deletingSkill, onClose: () => setDeletingSkill(null), title: t('clawSandboxAgentSkills.deleteSkillDialogTitle'), className: "max-w-md", children: [jsx("p", { className: "mt-2 text-sm text-gray-600", children: t('clawSandboxAgentSkills.deleteConfirmation', { name: (_a = deletingSkill === null || deletingSkill === void 0 ? void 0 : deletingSkill.name) !== null && _a !== void 0 ? _a : '' }) }), jsxs("div", { className: "flex justify-end gap-2 pt-2", children: [jsx(Button$1, { variant: "outline", onClick: () => setDeletingSkill(null), children: t('clawSandboxAgentSkills.cancel') }), jsx(Button$1, { onClick: handleDeleteSkill, disabled: isDeletingSkill, className: "bg-red-600 text-white hover:bg-red-700", children: isDeletingSkill
|
|
227730
|
+
return (jsxs("div", { className: "space-y-4", "data-testid": "agent-skills-content", children: [jsxs("div", { className: "flex items-start justify-between gap-4", children: [jsxs("p", { className: "flex items-start gap-2 text-xs text-gray-500", children: [jsx(Info$3, { className: "mt-0.5 h-4 w-4 shrink-0 text-gray-400" }), jsx("span", { children: t('clawSandboxAgentSkills.sessionNote') })] }), jsxs(Button$1, { onClick: openNewSkillDialog, size: "sm", className: "shrink-0 cursor-pointer bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", children: [jsx(Plus, { className: "h-4 w-4" }), t('clawSandboxAgentSkills.newSkill')] })] }), jsxs("div", { className: "space-y-2", children: [jsx("h3", { className: "text-sm font-semibold text-gray-700", children: t('clawSandboxAgentSkills.effectiveHeading') }), effectiveSkills.length === 0 ? (jsx("div", { className: "flex items-center justify-center rounded-lg border p-6", children: jsx("p", { className: "text-sm text-gray-500", children: t('clawSandboxAgentSkills.noEffectiveSkills') }) })) : (jsx("div", { className: "space-y-3", children: effectiveSkills.map((effective) => {
|
|
227731
|
+
var _a;
|
|
227732
|
+
return (jsxs("div", { className: "flex items-center justify-between gap-4 rounded-lg border p-4", children: [jsxs("div", { className: "min-w-0 space-y-1", children: [jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [jsx("span", { className: "text-sm font-medium text-gray-700", children: effective.name }), ((_a = effective.skill) === null || _a === void 0 ? void 0 : _a.version) && (jsxs("span", { className: "hidden text-xs text-gray-400 sm:inline", children: ["v", effective.skill.version] })), renderBadges(effective.skill, effective)] }), effective.description && (jsx("p", { className: "line-clamp-2 text-xs text-gray-500", children: effective.description }))] }), jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [jsx(Switch, { checked: effective.enabled, onCheckedChange: (checked) => handleToggleEffective(effective, checked), disabled: isMutatingAgentSkill, className: "cursor-pointer data-[state=checked]:bg-blue-500", "aria-label": t(effective.enabled
|
|
227733
|
+
? 'clawSandboxAgentSkills.skillEnabledLabel'
|
|
227734
|
+
: 'clawSandboxAgentSkills.skillDisabledLabel', { name: effective.name }) }), renderSkillMenu(effective.skill, effective)] })] }, effective.unique_id));
|
|
227735
|
+
}) }))] }), jsxs("div", { className: "space-y-2", children: [jsx("h3", { className: "text-sm font-semibold text-gray-700", children: t('clawSandboxAgentSkills.catalogHeading') }), attachableSkills.length === 0 ? (jsx("div", { className: "flex items-center justify-center rounded-lg border p-6", children: jsx("p", { className: "text-sm text-gray-500", children: t('clawSandboxAgentSkills.noSkillsAvailable') }) })) : (jsx("div", { className: "space-y-3", children: attachableSkills.map((skill) => (jsxs("div", { className: "flex items-center justify-between gap-4 rounded-lg border p-4", children: [jsxs("div", { className: "min-w-0 space-y-1", children: [jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [jsx("span", { className: "text-sm font-medium text-gray-700", children: skill.name }), jsxs("span", { className: "hidden text-xs text-gray-400 sm:inline", children: ["v", skill.version] }), renderBadges(skill)] }), skill.description && (jsx("p", { className: "line-clamp-2 text-xs text-gray-500", children: skill.description }))] }), jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [jsxs(Button$1, { variant: "outline", size: "sm", className: "cursor-pointer", disabled: isMutatingAgentSkill, onClick: () => handleAttach(skill), "aria-label": t('clawSandboxAgentSkills.addToAgentLabel', { name: skill.name }), children: [jsx(Plus, { className: "h-4 w-4" }), t('clawSandboxAgentSkills.addToAgent')] }), renderSkillMenu(skill)] })] }, skill.id))) }))] }), jsx(OverlayModal, { open: showNewDialog, onClose: closeAllDialogs, title: t('clawSandboxAgentSkills.newSkillDialogTitle'), className: "max-w-2xl", children: jsxs("div", { className: "flex h-[min(75dvh,46rem)] flex-col", children: [jsxs("div", { className: "flex-1 space-y-4 overflow-y-auto pb-4 pr-1", children: [jsx(SkillForm, { form: form, onChange: setForm, showPrivateToggle: true }), jsx("p", { className: "text-xs text-gray-500", children: t('clawSandboxAgentSkills.filesAfterCreateHint') })] }), jsxs("div", { className: "flex justify-end gap-2 border-t pt-4", children: [jsx(Button$1, { variant: "outline", onClick: closeAllDialogs, children: t('clawSandboxAgentSkills.cancel') }), jsx(Button$1, { onClick: handleCreateSkill, disabled: isCreatingSkill || !form.name || !form.slug, className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", children: isCreatingSkill
|
|
227736
|
+
? t('clawSandboxAgentSkills.creating')
|
|
227737
|
+
: t('clawSandboxAgentSkills.create') })] })] }) }), jsx(OverlayModal, { open: !!editingSkill, onClose: closeAllDialogs, title: t('clawSandboxAgentSkills.editSkillDialogTitle'), className: "max-w-2xl", children: jsxs(Tabs, { defaultValue: "details", className: "w-full", children: [jsxs(TabsList, { "aria-label": t('clawSandboxAgentSkills.editSkillDialogTitle'), "data-testid": "skill-dialog-tabs", children: [jsx(TabsTrigger, { value: "details", "data-testid": "skill-dialog-tab-details", children: t('clawSandboxAgentSkills.detailsTab') }), jsx(TabsTrigger, { value: "files", "data-testid": "skill-dialog-tab-files", children: t('clawSandboxAgentSkills.filesTab') })] }), jsx(TabsContent, { value: "details", children: jsxs("div", { className: "flex h-[min(75dvh,46rem)] flex-col", children: [jsx("div", { className: "flex-1 space-y-4 overflow-y-auto pb-4 pr-1", children: jsx(SkillForm, { form: form, onChange: setForm }) }), jsxs("div", { className: "flex justify-end gap-2 border-t pt-4", children: [jsx(Button$1, { variant: "outline", onClick: closeAllDialogs, children: t('clawSandboxAgentSkills.cancel') }), jsx(Button$1, { onClick: handleUpdateSkill, disabled: isUpdatingSkill || !form.name || !form.slug, className: "bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white hover:opacity-90", children: isUpdatingSkill
|
|
227738
|
+
? t('clawSandboxAgentSkills.saving')
|
|
227739
|
+
: t('clawSandboxAgentSkills.save') })] })] }) }), jsx(TabsContent, { value: "files", children: jsx("div", { className: "flex h-[min(75dvh,46rem)] flex-col", children: jsx("div", { className: "flex-1 space-y-4 overflow-y-auto pb-4 pr-1", children: editingSkill && (jsx(SkillResourcesSection, { platformKey: platformKey, skillId: editingSkill.id })) }) }) })] }) }), jsxs(OverlayModal, { open: !!deletingSkill, onClose: () => setDeletingSkill(null), title: t('clawSandboxAgentSkills.deleteSkillDialogTitle'), className: "max-w-md", children: [jsx("p", { className: "mt-2 text-sm text-gray-600", children: t('clawSandboxAgentSkills.deleteConfirmation', { name: (_a = deletingSkill === null || deletingSkill === void 0 ? void 0 : deletingSkill.name) !== null && _a !== void 0 ? _a : '' }) }), jsxs("div", { className: "flex justify-end gap-2 pt-2", children: [jsx(Button$1, { variant: "outline", onClick: () => setDeletingSkill(null), children: t('clawSandboxAgentSkills.cancel') }), jsx(Button$1, { onClick: handleDeleteSkill, disabled: isDeletingSkill, className: "bg-red-600 text-white hover:bg-red-700", children: isDeletingSkill
|
|
227250
227740
|
? t('clawSandboxAgentSkills.deleting')
|
|
227251
227741
|
: t('clawSandboxAgentSkills.delete') })] })] })] }));
|
|
227252
227742
|
}
|
|
227253
227743
|
// ── Shared Skill Form ────────────────────────────────────────────────────────
|
|
227254
|
-
function SkillForm({ form, onChange, }) {
|
|
227744
|
+
function SkillForm({ form, onChange, showPrivateToggle = false, }) {
|
|
227745
|
+
const t = useT();
|
|
227746
|
+
return (jsxs("div", { className: "mt-4 grid gap-4", children: [jsxs("div", { className: "space-y-2", children: [jsx(Label$2, { htmlFor: "skill-name", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fieldName') }), jsx(Input, { id: "skill-name", name: "skill-name", value: form.name, onChange: (e) => onChange({ ...form, name: e.target.value }), placeholder: t('clawSandboxAgentSkills.fieldNamePlaceholder'), className: "py-6" })] }), jsxs("div", { className: "space-y-2", children: [jsx(Label$2, { htmlFor: "skill-slug", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fieldSlug') }), jsx(Input, { id: "skill-slug", name: "skill-slug", value: form.slug, onChange: (e) => onChange({ ...form, slug: e.target.value }), placeholder: t('clawSandboxAgentSkills.fieldSlugPlaceholder'), className: "py-6" })] }), jsxs("div", { className: "space-y-2", children: [jsx(Label$2, { htmlFor: "skill-version", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fieldVersion') }), jsx(Input, { id: "skill-version", name: "skill-version", value: form.version, onChange: (e) => onChange({ ...form, version: e.target.value }), placeholder: t('clawSandboxAgentSkills.fieldVersionPlaceholder'), className: "py-6" })] }), jsxs("div", { className: "space-y-2", children: [jsx(Label$2, { htmlFor: "skill-category", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fieldCategory') }), jsx(Input, { id: "skill-category", name: "skill-category", value: form.category, onChange: (e) => onChange({ ...form, category: e.target.value }), placeholder: t('clawSandboxAgentSkills.fieldCategoryPlaceholder'), className: "py-6" })] }), jsxs("div", { className: "space-y-2", children: [jsx(Label$2, { htmlFor: "skill-description", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fieldDescription') }), jsx(Input, { id: "skill-description", name: "skill-description", value: form.description, onChange: (e) => onChange({ ...form, description: e.target.value }), placeholder: t('clawSandboxAgentSkills.fieldDescriptionPlaceholder'), className: "py-6" })] }), showPrivateToggle && (jsxs("div", { className: "flex items-center justify-between rounded-lg border p-4", children: [jsxs("div", { className: "space-y-1", children: [jsx(Label$2, { htmlFor: "skill-private", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.privateToAgent') }), jsx("p", { className: "text-xs text-gray-500", children: t('clawSandboxAgentSkills.privateToAgentHint') })] }), jsx(Switch, { id: "skill-private", checked: form.privateToAgent, onCheckedChange: (checked) => onChange({ ...form, privateToAgent: checked }), className: "cursor-pointer data-[state=checked]:bg-blue-500" })] })), jsxs("div", { className: "space-y-2 overflow-hidden", children: [jsx(Label$2, { htmlFor: "skill-instruction", className: "text-sm font-medium text-[#646464]", children: t('clawSandboxAgentSkills.fieldInstruction') }), jsx("p", { className: "text-xs text-gray-500", children: t('clawSandboxAgentSkills.instructionHint') }), jsx(RichTextEditor, { value: form.instruction, onChange: (value) => onChange({ ...form, instruction: value }) })] })] }));
|
|
227747
|
+
}
|
|
227748
|
+
|
|
227749
|
+
/** Distance (px) from the list bottom at which the next page is requested. */
|
|
227750
|
+
const LOAD_MORE_THRESHOLD_PX = 48;
|
|
227751
|
+
/**
|
|
227752
|
+
* Listbox half of the chat `/` skill combobox. The composer textarea owns
|
|
227753
|
+
* focus and keyboard handling (see `useSlashSkillPicker`); options here are
|
|
227754
|
+
* referenced via `aria-activedescendant` and selected on click. Scrolling
|
|
227755
|
+
* near the bottom lazily loads the next page of skills.
|
|
227756
|
+
*/
|
|
227757
|
+
function SlashSkillPicker({ skills, activeIndex, listboxId, onSelect, onActiveIndexChange, isLoading = false, isFetchingMore = false, hasMore = false, onLoadMore, }) {
|
|
227255
227758
|
const t = useT();
|
|
227256
|
-
|
|
227759
|
+
const listRef = useRef(null);
|
|
227760
|
+
// Keep the active option scrolled into view during arrow-key browsing.
|
|
227761
|
+
useEffect(() => {
|
|
227762
|
+
var _a;
|
|
227763
|
+
const option = (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.children[activeIndex];
|
|
227764
|
+
option === null || option === void 0 ? void 0 : option.scrollIntoView({ block: 'nearest' });
|
|
227765
|
+
}, [activeIndex]);
|
|
227766
|
+
if (skills.length === 0 && !isLoading)
|
|
227767
|
+
return null;
|
|
227768
|
+
const handleScroll = (event) => {
|
|
227769
|
+
if (!hasMore || isFetchingMore || !onLoadMore)
|
|
227770
|
+
return;
|
|
227771
|
+
const el = event.currentTarget;
|
|
227772
|
+
if (el.scrollTop + el.clientHeight >= el.scrollHeight - LOAD_MORE_THRESHOLD_PX) {
|
|
227773
|
+
onLoadMore();
|
|
227774
|
+
}
|
|
227775
|
+
};
|
|
227776
|
+
return (jsxs("div", { className: "absolute right-0 bottom-full left-0 z-50 mb-2", children: [jsx("div", { "aria-live": "polite", className: "sr-only", children: isLoading
|
|
227777
|
+
? t('slashSkillPicker.loading')
|
|
227778
|
+
: t('slashSkillPicker.resultsAnnouncement', { count: skills.length }) }), isLoading ? (jsxs("div", { role: "status", className: "flex items-center gap-2 rounded-xl border border-gray-200 bg-white px-3 py-3 shadow-lg", "data-testid": "slash-skill-picker-loading", children: [jsx(LoaderCircle, { className: "h-4 w-4 animate-spin text-blue-500" }), jsx("span", { className: "text-sm text-gray-500", children: t('slashSkillPicker.loading') })] })) : (jsxs("ul", { ref: listRef, id: listboxId, role: "listbox", "aria-label": t('slashSkillPicker.listLabel'), onScroll: handleScroll, className: "max-h-64 overflow-y-auto rounded-xl border border-gray-200 bg-white p-1 shadow-lg", "data-testid": "slash-skill-picker", children: [skills.map((skill, index) => (jsxs("li", { id: `${listboxId}-option-${index}`, role: "option", "aria-selected": index === activeIndex, className: cn('flex cursor-pointer flex-col gap-0.5 rounded-lg px-3 py-2', index === activeIndex ? 'bg-blue-50' : 'hover:bg-gray-50'), onMouseEnter: () => onActiveIndexChange(index),
|
|
227779
|
+
// onMouseDown so selection wins over the textarea losing focus.
|
|
227780
|
+
onMouseDown: (e) => {
|
|
227781
|
+
e.preventDefault();
|
|
227782
|
+
onSelect(skill);
|
|
227783
|
+
}, children: [jsxs("span", { className: "flex items-baseline gap-2", children: [jsx("span", { className: "text-sm font-medium text-gray-800", children: skill.name }), jsxs("span", { className: "text-xs text-gray-400", children: ["/", skill.slug] }), skill.category && (jsx("span", { className: "ml-auto rounded-full bg-gray-100 px-2 py-0.5 text-[0.625rem] text-gray-500", children: skill.category }))] }), skill.description && (jsx("span", { className: "line-clamp-2 text-xs text-gray-500", children: skill.description }))] }, skill.unique_id))), isFetchingMore && (jsxs("li", { role: "presentation", className: "flex items-center gap-2 px-3 py-2", "data-testid": "slash-skill-picker-loading-more", children: [jsx(LoaderCircle, { className: "h-4 w-4 animate-spin text-blue-500" }), jsx("span", { className: "text-xs text-gray-500", children: t('slashSkillPicker.loading') })] }))] }))] }));
|
|
227784
|
+
}
|
|
227785
|
+
|
|
227786
|
+
/** Matches a composer value that is a single `/`-prefixed token (no whitespace). */
|
|
227787
|
+
const SLASH_TOKEN_RE = /^\/\S*$/;
|
|
227788
|
+
/** Whether the composer text is a `/` skill token (single word, leading slash). */
|
|
227789
|
+
function isSlashCommandToken(value) {
|
|
227790
|
+
return SLASH_TOKEN_RE.test(value);
|
|
227791
|
+
}
|
|
227792
|
+
/**
|
|
227793
|
+
* State machine for the chat `/` skill picker. Opens while the composer holds
|
|
227794
|
+
* a single `/`-prefixed token and at least one enabled skill matches; `Esc`
|
|
227795
|
+
* dismisses until the token is cleared, so plain text starting with `/` is
|
|
227796
|
+
* never blocked.
|
|
227797
|
+
*/
|
|
227798
|
+
function useSlashSkillPicker({ inputValue, setInputValue, skills, isLoading = false, }) {
|
|
227799
|
+
const listboxId = useId$2();
|
|
227800
|
+
const [dismissed, setDismissed] = useState(false);
|
|
227801
|
+
const [activeIndex, setActiveIndex] = useState(0);
|
|
227802
|
+
const isSlashToken = SLASH_TOKEN_RE.test(inputValue);
|
|
227803
|
+
const query = isSlashToken ? inputValue.slice(1) : '';
|
|
227804
|
+
const filteredSkills = useMemo(() => (isSlashToken ? filterSlashSkills(skills, query) : []), [isSlashToken, skills, query]);
|
|
227805
|
+
// Loading keeps the picker open (with a loading row) so the user knows
|
|
227806
|
+
// something is coming; once loaded, zero matches closes it.
|
|
227807
|
+
const open = isSlashToken && !dismissed && (filteredSkills.length > 0 || isLoading);
|
|
227808
|
+
// Re-arm the picker once the slash token is gone (text sent or cleared).
|
|
227809
|
+
useEffect(() => {
|
|
227810
|
+
if (!isSlashToken && dismissed)
|
|
227811
|
+
setDismissed(false);
|
|
227812
|
+
}, [isSlashToken, dismissed]);
|
|
227813
|
+
// Keep the active option valid as the query narrows the list.
|
|
227814
|
+
const filteredLength = filteredSkills.length;
|
|
227815
|
+
const previousLength = useRef(filteredLength);
|
|
227816
|
+
useEffect(() => {
|
|
227817
|
+
if (previousLength.current !== filteredLength) {
|
|
227818
|
+
previousLength.current = filteredLength;
|
|
227819
|
+
setActiveIndex(0);
|
|
227820
|
+
}
|
|
227821
|
+
}, [filteredLength]);
|
|
227822
|
+
const selectSkill = (skill) => {
|
|
227823
|
+
setInputValue(`/${skill.slug} `);
|
|
227824
|
+
setActiveIndex(0);
|
|
227825
|
+
};
|
|
227826
|
+
const handleKeyDown = (event) => {
|
|
227827
|
+
if (!open)
|
|
227828
|
+
return false;
|
|
227829
|
+
switch (event.key) {
|
|
227830
|
+
case 'ArrowDown':
|
|
227831
|
+
if (!filteredSkills.length)
|
|
227832
|
+
return false;
|
|
227833
|
+
event.preventDefault();
|
|
227834
|
+
setActiveIndex((index) => (index + 1) % filteredSkills.length);
|
|
227835
|
+
return true;
|
|
227836
|
+
case 'ArrowUp':
|
|
227837
|
+
if (!filteredSkills.length)
|
|
227838
|
+
return false;
|
|
227839
|
+
event.preventDefault();
|
|
227840
|
+
setActiveIndex((index) => (index - 1 + filteredSkills.length) % filteredSkills.length);
|
|
227841
|
+
return true;
|
|
227842
|
+
case 'Enter':
|
|
227843
|
+
if (event.shiftKey || !filteredSkills.length)
|
|
227844
|
+
return false;
|
|
227845
|
+
event.preventDefault();
|
|
227846
|
+
selectSkill(filteredSkills[activeIndex]);
|
|
227847
|
+
return true;
|
|
227848
|
+
case 'Tab':
|
|
227849
|
+
if (!filteredSkills.length)
|
|
227850
|
+
return false;
|
|
227851
|
+
event.preventDefault();
|
|
227852
|
+
selectSkill(filteredSkills[activeIndex]);
|
|
227853
|
+
return true;
|
|
227854
|
+
case 'Escape':
|
|
227855
|
+
event.preventDefault();
|
|
227856
|
+
setDismissed(true);
|
|
227857
|
+
return true;
|
|
227858
|
+
default:
|
|
227859
|
+
return false;
|
|
227860
|
+
}
|
|
227861
|
+
};
|
|
227862
|
+
return {
|
|
227863
|
+
open,
|
|
227864
|
+
filteredSkills,
|
|
227865
|
+
activeIndex,
|
|
227866
|
+
setActiveIndex,
|
|
227867
|
+
listboxId,
|
|
227868
|
+
activeOptionId: open && filteredSkills.length > 0 ? `${listboxId}-option-${activeIndex}` : undefined,
|
|
227869
|
+
selectSkill,
|
|
227870
|
+
handleKeyDown,
|
|
227871
|
+
};
|
|
227257
227872
|
}
|
|
227258
227873
|
|
|
227259
227874
|
/**
|
|
@@ -228718,7 +229333,7 @@ const CSS_CLASS_NAMES = {
|
|
|
228718
229333
|
STOP_STREAMING_BUTTON: 'chat-stop-streaming-button',
|
|
228719
229334
|
}};
|
|
228720
229335
|
|
|
228721
|
-
const AutoResizeTextarea = ({ allowEmptySubmit = false, value, onChange, onSubmit, disabled = false, placeholder = '', sessionId = null, isPreviewMode = false, textAreaRows = 3, className = '', style = {}, allowAnonymousAccess = false, embedMode = false, ...props }) => {
|
|
229336
|
+
const AutoResizeTextarea = ({ allowEmptySubmit = false, value, onChange, onSubmit, onComposerKeyDown, disabled = false, placeholder = '', sessionId = null, isPreviewMode = false, textAreaRows = 3, className = '', style = {}, allowAnonymousAccess = false, embedMode = false, ...props }) => {
|
|
228722
229337
|
const textareaRef = useRef(null);
|
|
228723
229338
|
const [isResizing, setIsResizing] = useState(false);
|
|
228724
229339
|
const numberOfMessages = useSelector(selectNumberOfActiveChatMessages);
|
|
@@ -228766,6 +229381,8 @@ const AutoResizeTextarea = ({ allowEmptySubmit = false, value, onChange, onSubmi
|
|
|
228766
229381
|
const handleKeyDown = (e) => {
|
|
228767
229382
|
if (isPreviewMode && !allowAnonymousAccess)
|
|
228768
229383
|
return;
|
|
229384
|
+
if (onComposerKeyDown === null || onComposerKeyDown === void 0 ? void 0 : onComposerKeyDown(e))
|
|
229385
|
+
return;
|
|
228769
229386
|
if (e.key === 'Enter' && !e.shiftKey) {
|
|
228770
229387
|
e.preventDefault();
|
|
228771
229388
|
if (value.trim() || allowEmptySubmit) {
|
|
@@ -229655,7 +230272,7 @@ function SubmitMessageButton({ isPreviewMode, allowAnonymousAccess, isUploading,
|
|
|
229655
230272
|
const PromptGalleryModal$1 = dynamic(() => Promise.resolve().then(function () { return promptGalleryModal; }).then((mod) => mod.PromptGalleryModal), {
|
|
229656
230273
|
ssr: false,
|
|
229657
230274
|
});
|
|
229658
|
-
function ChatInputForm({ onSubmit, onScreenSharingClick, isScreenSharingModalOpen, onPhoneCallClick, sessionId, stopGenerating, mentorId, tenantKey, isPublicRoute, userIsStudent, username, isPreviewMode, enableWebBrowsing, isStreaming, updateSessionTools, setSessionTools, activeTools, screenSharing, deepResearch, studyMode, imageGeneration, codeInterpreter, promptsIsEnabled, googleSlidesIsEnabled, googleDocumentIsEnabled, artifactsEnabled, compactMode = false, chatAreaMaxWidth, isConnecting = false, stopStreamingButtonRef, }) {
|
|
230275
|
+
function ChatInputForm({ onSubmit, onScreenSharingClick, isScreenSharingModalOpen, onPhoneCallClick, sessionId, stopGenerating, mentorId, tenantKey, isPublicRoute, userIsStudent, username, isPreviewMode, enableWebBrowsing, isStreaming, updateSessionTools, setSessionTools, activeTools, screenSharing, deepResearch, studyMode, imageGeneration, codeInterpreter, promptsIsEnabled, googleSlidesIsEnabled, googleDocumentIsEnabled, artifactsEnabled, compactMode = false, chatAreaMaxWidth, isConnecting = false, stopStreamingButtonRef, slashSkills, slashSkillsLoading = false, }) {
|
|
229659
230276
|
var _a, _b, _c, _d, _e;
|
|
229660
230277
|
const t = useT();
|
|
229661
230278
|
const dispatch = useDispatch();
|
|
@@ -229709,6 +230326,15 @@ function ChatInputForm({ onSubmit, onScreenSharingClick, isScreenSharingModalOpe
|
|
|
229709
230326
|
const setInputValue = (input) => {
|
|
229710
230327
|
dispatch(chatInputSliceActions.setTextareaInput(input));
|
|
229711
230328
|
};
|
|
230329
|
+
// `/` skill picker — active only when the host supplies the agent's
|
|
230330
|
+
// effective skills (or reports them loading). No fetching happens here.
|
|
230331
|
+
const effectiveSlashSkills = slashSkills !== null && slashSkills !== void 0 ? slashSkills : [];
|
|
230332
|
+
const slashPicker = useSlashSkillPicker({
|
|
230333
|
+
inputValue,
|
|
230334
|
+
setInputValue,
|
|
230335
|
+
skills: effectiveSlashSkills,
|
|
230336
|
+
isLoading: slashSkillsLoading,
|
|
230337
|
+
});
|
|
229712
230338
|
const handleSelectPrompt = (promptText) => {
|
|
229713
230339
|
setInputValue(promptText);
|
|
229714
230340
|
setIsPromptGalleryOpen(false);
|
|
@@ -229773,9 +230399,18 @@ function ChatInputForm({ onSubmit, onScreenSharingClick, isScreenSharingModalOpe
|
|
|
229773
230399
|
}
|
|
229774
230400
|
return persistentChatInputLabel ? '' : t('chatInputForm.askAnything');
|
|
229775
230401
|
};
|
|
229776
|
-
return (jsxs(Fragment$1, { children: [isTabletOrMobile && !isPreviewMode && !embedMode && !compactMode && (jsx("div", { className: "mx-auto flex w-full justify-end pt-4 pl-4", style: chatAreaMaxWidth ? { maxWidth: `${chatAreaMaxWidth}px` } : undefined, children: jsx(RetrievedDocumentsButton, { sessionId: sessionId }) })), ((_c = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.data) === null || _c === void 0 ? void 0 : _c.disclaimer) && !compactMode && (jsx("div", { className: "mx-auto mt-1 w-full pb-1", style: chatAreaMaxWidth ? { maxWidth: `${chatAreaMaxWidth}px` } : undefined, children: jsx("p", { id: "chat-input-disclaimer", className: "text-center text-[0.625rem] text-gray-500 italic", children: (_d = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.data) === null || _d === void 0 ? void 0 : _d.disclaimer }) })), jsxs("form", { ref: containerRef, onSubmit: handleSubmit, className: cn('mx-auto mt-4 w-full pb-2', CSS_CLASS_NAMES.CHAT.TEXTAREA), style: chatAreaMaxWidth ? { maxWidth: `${chatAreaMaxWidth}px` } : undefined, children: [jsxs("div", { className: "relative overflow-hidden rounded-2xl border border-gray-200 bg-[#fbfbfb] pb-3 shadow-xs", children: [jsx(FileAttachmentsList, { attachedFiles: attachedFiles, onRemoveFile: handleRemoveFile, onRetryFile: retryUpload }), fileAddedNotification && (jsxs("div", { className: "animate-in slide-in-from-bottom-5 absolute top-0 right-0 left-0 -mt-10 flex items-center gap-2 rounded-md bg-blue-50 p-2 text-xs text-blue-600 duration-300", children: [jsx(FileText, { className: "h-3 w-3" }), jsx("span", { className: "truncate", children: fileAddedNotification })] })), jsxs("div", { className: "grid", children: [jsx("label", { id: "chat-input-label", htmlFor: "chat-input-textarea", className: cn(persistentChatInputLabel
|
|
230402
|
+
return (jsxs(Fragment$1, { children: [isTabletOrMobile && !isPreviewMode && !embedMode && !compactMode && (jsx("div", { className: "mx-auto flex w-full justify-end pt-4 pl-4", style: chatAreaMaxWidth ? { maxWidth: `${chatAreaMaxWidth}px` } : undefined, children: jsx(RetrievedDocumentsButton, { sessionId: sessionId }) })), ((_c = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.data) === null || _c === void 0 ? void 0 : _c.disclaimer) && !compactMode && (jsx("div", { className: "mx-auto mt-1 w-full pb-1", style: chatAreaMaxWidth ? { maxWidth: `${chatAreaMaxWidth}px` } : undefined, children: jsx("p", { id: "chat-input-disclaimer", className: "text-center text-[0.625rem] text-gray-500 italic", children: (_d = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.data) === null || _d === void 0 ? void 0 : _d.disclaimer }) })), jsxs("form", { ref: containerRef, onSubmit: handleSubmit, className: cn('relative mx-auto mt-4 w-full pb-2', CSS_CLASS_NAMES.CHAT.TEXTAREA), style: chatAreaMaxWidth ? { maxWidth: `${chatAreaMaxWidth}px` } : undefined, children: [slashPicker.open && (jsx(SlashSkillPicker, { skills: slashPicker.filteredSkills, activeIndex: slashPicker.activeIndex, listboxId: slashPicker.listboxId, onSelect: slashPicker.selectSkill, onActiveIndexChange: slashPicker.setActiveIndex, isLoading: slashSkillsLoading })), jsxs("div", { className: "relative overflow-hidden rounded-2xl border border-gray-200 bg-[#fbfbfb] pb-3 shadow-xs", children: [jsx(FileAttachmentsList, { attachedFiles: attachedFiles, onRemoveFile: handleRemoveFile, onRetryFile: retryUpload }), fileAddedNotification && (jsxs("div", { className: "animate-in slide-in-from-bottom-5 absolute top-0 right-0 left-0 -mt-10 flex items-center gap-2 rounded-md bg-blue-50 p-2 text-xs text-blue-600 duration-300", children: [jsx(FileText, { className: "h-3 w-3" }), jsx("span", { className: "truncate", children: fileAddedNotification })] })), jsxs("div", { className: "grid", children: [jsx("label", { id: "chat-input-label", htmlFor: "chat-input-textarea", className: cn(persistentChatInputLabel
|
|
229777
230403
|
? 'block px-[18.5px] pt-3 text-xs font-medium text-gray-600'
|
|
229778
|
-
: 'sr-only'), children: t('chatInputForm.askAnything') }), jsx(AutoResizeTextarea, { id: "chat-input-textarea", "aria-labelledby": "chat-input-label", "aria-describedby": ((_e = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.data) === null || _e === void 0 ? void 0 : _e.disclaimer) ? 'chat-input-disclaimer' : undefined,
|
|
230404
|
+
: 'sr-only'), children: t('chatInputForm.askAnything') }), jsx(AutoResizeTextarea, { id: "chat-input-textarea", "aria-labelledby": "chat-input-label", "aria-describedby": ((_e = mentorSettings === null || mentorSettings === void 0 ? void 0 : mentorSettings.data) === null || _e === void 0 ? void 0 : _e.disclaimer) ? 'chat-input-disclaimer' : undefined, ...((effectiveSlashSkills.length > 0 || slashPicker.open) && {
|
|
230405
|
+
role: 'combobox',
|
|
230406
|
+
'aria-expanded': slashPicker.open,
|
|
230407
|
+
'aria-haspopup': 'listbox',
|
|
230408
|
+
'aria-controls': slashPicker.open && slashPicker.filteredSkills.length > 0
|
|
230409
|
+
? slashPicker.listboxId
|
|
230410
|
+
: undefined,
|
|
230411
|
+
'aria-activedescendant': slashPicker.activeOptionId,
|
|
230412
|
+
'aria-autocomplete': 'list',
|
|
230413
|
+
}), value: inputValue, onChange: handleInputChange, onSubmit: handleSubmit, onComposerKeyDown: slashPicker.handleKeyDown, sessionId: sessionId, isPreviewMode: isPreviewMode, textAreaRows: textAreaRows, placeholder: isChatDisabledByRbac ? t('chatInputForm.noChatPermission') : textAreaPlaceholder(), disabled: isChatDisabledByRbac || hasUploadingFiles, allowEmptySubmit: attachedFiles.length > 0, allowAnonymousAccess: isMentorViewableByAnyone || showingSharedChat || !!userIsVisiting, embedMode: embedMode }), jsxs("div", { className: "flex items-center gap-2 px-2", children: [visibleToLoggedInUsersOnly && !compactMode && (jsx(UploadMenu, { onFileInputTrigger: () => executeWithTrialCheck(triggerFileInput), disabled: isChatDisabledByRbac || !sessionId, mentorId: mentorId, tenantKey: tenantKey, isPublicRoute: isPublicRoute })), visibleToLoggedInUsersOnly && !compactMode && (jsx(InsideButtons, { containerWidth: containerWidth, activeOptions: activeTools, onOptionClick: updateSessionTools, deepResearch: deepResearch, artifactsEnabled: artifactsEnabled, disabled: isChatDisabledByRbac, onOpenPromptGallery: openPromptGallery, embedMode: embedMode, promptsIsEnabled: promptsIsEnabled, studyMode: studyMode, memoryEnabled: mentorSettings.data.memoryEnabled, mentorId: mentorId, tenantKey: tenantKey, username: username })), jsxs("div", { className: "ml-auto flex", children: [visibleToLoggedInUsersOnly && !compactMode && (jsx(ScreenSharingButton, { onClick: onScreenSharingClick, isScreenSharingModalOpen: isScreenSharingModalOpen, screenSharing: screenSharing, isPreviewMode: isPreviewMode, disabled: isChatDisabledByRbac })), visibleToLoggedInUsersOnly && !compactMode && (jsx(VoiceChatButton, { isPreviewMode: isPreviewMode, handleMicrophoneBtnClick: () => executeWithTrialCheck(handleMicrophoneBtnClick), processing: processing, recording: recording, disabled: isChatDisabledByRbac, mentorId: mentorId, tenantKey: tenantKey, isPublicRoute: isPublicRoute })), visibleToLoggedInUsersOnly && !compactMode && (jsx(VoiceCallButton, { isPreviewMode: isPreviewMode, onClick: () => executeWithTrialCheck(onPhoneCallClick), disabled: isChatDisabledByRbac, mentorId: mentorId, tenantKey: tenantKey, isPublicRoute: isPublicRoute })), isStreaming ? (jsx(StopStreamingButton, { ref: stopStreamingButtonRef, stopGenerating: stopGenerating })) : (jsx(SubmitMessageButton, { isPreviewMode: isPreviewMode, allowAnonymousAccess: isMentorViewableByAnyone, isUploading: hasUploadingFiles, disabled: isChatDisabledByRbac || !sessionId, isConnecting: isConnecting }))] })] })] }), jsx("input", { type: "file", ref: fileUploadInputRef, className: "hidden", onChange: handleFileInputChange, accept: fileUploadCapabilities.allSupportedTypes.length > 0
|
|
229779
230414
|
? fileUploadCapabilities.allSupportedTypes.join(',')
|
|
229780
230415
|
: MENTOR_CHAT_DOCUMENTS_EXTENSIONS.join(','), multiple: true, disabled: isChatDisabledByRbac || !sessionId })] }), visibleToLoggedInUsersOnly && !compactMode && (jsx("div", { className: "flex w-full justify-center", children: jsx(OutsideButtons, { activeOptions: activeTools, onOptionClick: updateSessionTools, setSessionTools: setSessionTools, onCrossClick: updateSessionTools, containerWidth: containerWidth, enableWebBrowsing: enableWebBrowsing, imageGeneration: imageGeneration, codeInterpreter: codeInterpreter, googleSlidesIsEnabled: googleSlidesIsEnabled, googleDocumentIsEnabled: googleDocumentIsEnabled, tenantKey: tenantKey, userId: username, disabled: isChatDisabledByRbac }) }))] }), isPromptGalleryOpen && (jsx(PromptGalleryModal$1, { isOpen: isPromptGalleryOpen, onClose: () => setIsPromptGalleryOpen(false), onSelectPrompt: handleSelectPrompt, mentorId: mentorId, tenantKey: tenantKey, userIsStudent: userIsStudent })), isFreeTrialModalOpen && FreeTrialDialog && (jsx(FreeTrialDialog, { isOpen: isFreeTrialModalOpen, onClose: closeFreeTrialModal }))] }));
|
|
229781
230416
|
}
|
|
@@ -233912,5 +234547,5 @@ var trainOrDeleteModal = /*#__PURE__*/Object.freeze({
|
|
|
233912
234547
|
TrainOrDeleteModal: TrainOrDeleteModal
|
|
233913
234548
|
});
|
|
233914
234549
|
|
|
233915
|
-
export { ACCESS_COURSE_LABEL, AccessTimeHeatmap, AccessiblePaginate, AddMentorToProjectModal, AddSkillDialog, Admin, AdvancedTab, AgentConfigPrompts, AgentSkills, AlertsTab, AnalyticsAuditLogStats, AnalyticsCourseDetail, AnalyticsCourses, AnalyticsFinancialStats, AnalyticsLayout, AnalyticsMonetizationStats, AnalyticsOverview, AnalyticsProgramDetail, AnalyticsPrograms, AnalyticsReportDownload, AnalyticsReports, AnalyticsSettingsProvider, AnalyticsTopicsStats, AnalyticsTranscriptsStats, AnalyticsUsersStats, AppleRestrictionModal, ApplyWizard, BUY_NOW_LABEL, BillingTab, CATALOGS, CREATE_AGENT_LABELS, CategorizedDropdownMenu, ChartCardWrapper, ChartFiltersProvider, ChartLoading, ChatContext, ChatPrivacyToggle, ChatProvider, CompanyDialog, ConnectorManagementDialog, CopyButtonIcon, CourseAccessGuard, CourseCardSkeleton, CourseContentLoading, CourseOutline, CourseOutlineContext, CourseOutlineDrawer, CreateAgentForm, CreateAgentModal, CreateProjectModal, CreateWorkflowModal, CredentialBox, CredentialMiniBoxSkeleton, CredentialsList, CreditBalance, CustomDateRangePicker, CustomTooltip, DEFAULT_COWORK_REQUIRED_SIZE_GB, DEFAULT_LOCALE, DefaultEmptyBox, DeleteProjectModal, DeleteWorkflowModal, DiscoverContentCard, DiscoverFacetsFilter, DiscoverFilterDrawer, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ENROLL_NOW_COURSE_STARTING_SOON_LABEL, ENROLL_NOW_LABEL, EditAlertDialog, EducationBox, EducationDialog, EducationTab, EdxIframeContext, EmptyStats, ExperienceBox, ExperienceDialog, ExperienceTab, FacetFilterContext, Footer, GHOST_OS_REPO_URL, GHOST_OS_TAURI_COMMANDS, GHOST_OS_TAURI_EVENTS, GradebookTab, GroupsFilterDropdown, INVITATION_ONLY_LABEL, InstitutionDialog, IntegrationsTab, InviteUserContent, InviteUserDialog, InvitedUsersDialog, LOCAL_MODELS, Loader, LocalLLMTab, LocalModelsContent, LoginButton, MACOS_PERMISSIONS_COMMANDS, Markdown, MinimumMentorAlert, MonetizationTab, NotificationDisplay, NotificationDropdown, ONBOARDING_SECTORS, OnboardingShell, OnboardingWizard, PaywallModal, PlacementExam, PlacementExamsDropdown, PlatformNavbar, PlatformNavbarSearch, Profile, ProfileTimeChart, ProgressDots, ProjectActionButtons, ProjectFilesModal, ProjectInstructionsModal, ProjectLandingPage, ProjectMentorsList, ProjectsPage, REQUEST_ACCESS_COURSE_STARTING_SOON_LABEL, REQUEST_ACCESS_LABEL, RenameProjectModal, ResumeBox, ResumeTab, RichTextEditor, SUPPORTED_LOCALES, SandboxConfig, SearchableMultiSelect, SendNotificationDialog, SignupButton, SkeletonActivityStatBox, SkeletonAddSkillsLoading, SkeletonCreatePathwaySearchList, SkeletonDiscoverFilterBox, SkeletonEducationBox, SkeletonMultiplier, SkeletonPathwayBox, SkeletonProfileInfoCard, SkeletonSkillBox, SkillBox, SkillDetailModal, SkillLeaderboardChart, SkillsBox, SkillsList, Spinner, StatCard, StepHeader, TAURI_COMMANDS, TAURI_EVENTS, TenantSwitcher, TimeFilter, TimeTrackingProvider, TimedExam, ToolDialogs, TopBanner, UpgradePackageModal, UserAvatar, Version, WebContainersI18nProvider, WorkflowSidebar, addBookmarksTab, availablePlacementExams, findLastResumeBlock, findSequentialParent, flattenVerticalBlocks, getCatalog, getFirstAvailableUnit, getLocalLLMModel, getLocalLLMToolSupport, getNextUnitIframe, getOrg, getParentBlockById, getParentsInfosFromSublessonId, getPreviousUnitIframe, getRandomCourseImage, getSectorById, getTenant, getUnitToIframe, getUserId, getUserName, inBrowserPrint, inIframe, initialGhostOsInstallState, initialModelDownloadState, isCoworkEnabled, isLocalLLMEnabled, isPlatformNavbarCreditBalanceVisible, isTauriApp, isValidLocale, components as markdownComponents, modelSupportsCowork, onboardingPrimaryButtonClass, onboardingSecondaryButtonClass, resolveCreateAgentLabels, sanitizeCss, setCoworkEnabled, setLocalLLMEnabled, setLocalLLMModel, setLocalLLMToolSupport, smallestCoworkModel, useAnalyticsSettings, useAuditLog, useCatalogSearch, useChartFilters, useChatPrivacy, useChatState, useCourseDetail, useCourseMetadata, useCourses, useDiscover, useEdxIframe, useFinancial, useGhostOs, useIframeMessageHandler, useLocalStorage, useModelDownload, useMonetization, useOverview, useProfileActivityStats, useProfileCredentials, useProfilePathways, useProfilePrograms, useProfileSkills, useProfileTimeSpent, usePrograms, useReports, useT, useTauri, useTimeTracking, useTopics, useTranscripts, useUserCourses, useUserMetadata, useUsers, useWebContainersI18n, useWebContainersLocale };
|
|
234550
|
+
export { ACCESS_COURSE_LABEL, AccessTimeHeatmap, AccessiblePaginate, AddMentorToProjectModal, AddSkillDialog, Admin, AdvancedTab, AgentConfigPrompts, AgentSkills, AlertsTab, AnalyticsAuditLogStats, AnalyticsCourseDetail, AnalyticsCourses, AnalyticsFinancialStats, AnalyticsLayout, AnalyticsMonetizationStats, AnalyticsOverview, AnalyticsProgramDetail, AnalyticsPrograms, AnalyticsReportDownload, AnalyticsReports, AnalyticsSettingsProvider, AnalyticsTopicsStats, AnalyticsTranscriptsStats, AnalyticsUsersStats, AppleRestrictionModal, ApplyWizard, BUY_NOW_LABEL, BillingTab, CATALOGS, CREATE_AGENT_LABELS, CategorizedDropdownMenu, ChartCardWrapper, ChartFiltersProvider, ChartLoading, ChatContext, ChatPrivacyToggle, ChatProvider, CompanyDialog, ConnectorManagementDialog, CopyButtonIcon, CourseAccessGuard, CourseCardSkeleton, CourseContentLoading, CourseOutline, CourseOutlineContext, CourseOutlineDrawer, CreateAgentForm, CreateAgentModal, CreateProjectModal, CreateWorkflowModal, CredentialBox, CredentialMiniBoxSkeleton, CredentialsList, CreditBalance, CustomDateRangePicker, CustomTooltip, DEFAULT_COWORK_REQUIRED_SIZE_GB, DEFAULT_LOCALE, DefaultEmptyBox, DeleteProjectModal, DeleteWorkflowModal, DiscoverContentCard, DiscoverFacetsFilter, DiscoverFilterDrawer, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ENROLL_NOW_COURSE_STARTING_SOON_LABEL, ENROLL_NOW_LABEL, EditAlertDialog, EducationBox, EducationDialog, EducationTab, EdxIframeContext, EmptyStats, ExperienceBox, ExperienceDialog, ExperienceTab, FacetFilterContext, Footer, GHOST_OS_REPO_URL, GHOST_OS_TAURI_COMMANDS, GHOST_OS_TAURI_EVENTS, GradebookTab, GroupsFilterDropdown, INVITATION_ONLY_LABEL, InstitutionDialog, IntegrationsTab, InviteUserContent, InviteUserDialog, InvitedUsersDialog, LOCAL_MODELS, Loader, LocalLLMTab, LocalModelsContent, LoginButton, MACOS_PERMISSIONS_COMMANDS, Markdown, MinimumMentorAlert, MonetizationTab, NotificationDisplay, NotificationDropdown, ONBOARDING_SECTORS, OnboardingShell, OnboardingWizard, PaywallModal, PlacementExam, PlacementExamsDropdown, PlatformNavbar, PlatformNavbarSearch, Profile, ProfileTimeChart, ProgressDots, ProjectActionButtons, ProjectFilesModal, ProjectInstructionsModal, ProjectLandingPage, ProjectMentorsList, ProjectsPage, REQUEST_ACCESS_COURSE_STARTING_SOON_LABEL, REQUEST_ACCESS_LABEL, RenameProjectModal, ResumeBox, ResumeTab, RichTextEditor, SUPPORTED_LOCALES, SandboxConfig, SearchableMultiSelect, SendNotificationDialog, SignupButton, SkeletonActivityStatBox, SkeletonAddSkillsLoading, SkeletonCreatePathwaySearchList, SkeletonDiscoverFilterBox, SkeletonEducationBox, SkeletonMultiplier, SkeletonPathwayBox, SkeletonProfileInfoCard, SkeletonSkillBox, SkillBox, SkillDetailModal, SkillLeaderboardChart, SkillsBox, SkillsList, SlashSkillPicker, Spinner, StatCard, StepHeader, TAURI_COMMANDS, TAURI_EVENTS, TenantSwitcher, TimeFilter, TimeTrackingProvider, TimedExam, ToolDialogs, TopBanner, UpgradePackageModal, UserAvatar, Version, WebContainersI18nProvider, WorkflowSidebar, addBookmarksTab, availablePlacementExams, findLastResumeBlock, findSequentialParent, flattenVerticalBlocks, getCatalog, getFirstAvailableUnit, getLocalLLMModel, getLocalLLMToolSupport, getNextUnitIframe, getOrg, getParentBlockById, getParentsInfosFromSublessonId, getPreviousUnitIframe, getRandomCourseImage, getSectorById, getTenant, getUnitToIframe, getUserId, getUserName, inBrowserPrint, inIframe, initialGhostOsInstallState, initialModelDownloadState, isCoworkEnabled, isLocalLLMEnabled, isPlatformNavbarCreditBalanceVisible, isSlashCommandToken, isTauriApp, isValidLocale, components as markdownComponents, modelSupportsCowork, onboardingPrimaryButtonClass, onboardingSecondaryButtonClass, resolveCreateAgentLabels, sanitizeCss, setCoworkEnabled, setLocalLLMEnabled, setLocalLLMModel, setLocalLLMToolSupport, smallestCoworkModel, useAnalyticsSettings, useAuditLog, useCatalogSearch, useChartFilters, useChatPrivacy, useChatState, useCourseDetail, useCourseMetadata, useCourses, useDiscover, useEdxIframe, useFinancial, useGhostOs, useIframeMessageHandler, useLocalStorage, useModelDownload, useMonetization, useOverview, useProfileActivityStats, useProfileCredentials, useProfilePathways, useProfilePrograms, useProfileSkills, useProfileTimeSpent, usePrograms, useReports, useSlashSkillPicker, useT, useTauri, useTimeTracking, useTopics, useTranscripts, useUserCourses, useUserMetadata, useUsers, useWebContainersI18n, useWebContainersLocale };
|
|
233916
234551
|
//# sourceMappingURL=index.esm.js.map
|