@memberjunction/react-runtime 5.34.0 → 5.35.0

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.
@@ -25936,9 +25936,10 @@ var EntityFieldInfo = /*#__PURE__*/function (_BaseInfo7) {
25936
25936
  *
25937
25937
  * • **CodeGen**, when emitting the SP body (which `@params` to declare
25938
25938
  * and which columns to `INSERT`/`UPDATE`), and
25939
- * • **Runtime data providers** (`SQLServerDataProvider.generateSPParams`,
25940
- * `PostgreSQLDataProvider.getWritableFields`), when building the
25941
- * EXEC / parameter list passed to the SP.
25939
+ * • **Runtime data providers**, via the `RenderSaveCallBinding` hook
25940
+ * implemented by `SQLServerDataProvider` and `PostgreSQLDataProvider`
25941
+ * (orchestrated by `GenericDatabaseProvider.GenerateSaveSQL`), when
25942
+ * building the EXEC / parameter list passed to the SP.
25942
25943
  *
25943
25944
  * Keeping both sides on the same predicate guarantees the SP signature
25944
25945
  * and the call-site argument list always agree. Drift between them
@@ -36696,6 +36697,14 @@ var LocalCacheManager = /*#__PURE__*/function (_BaseSingleton) {
36696
36697
  // Aggregate hash (or '_' for no aggregates)
36697
36698
  userSearch || '_' // User search string (generates LIKE/FTS clauses)
36698
36699
  ];
36700
+ // Keyset (AfterKey) seek cursor MUST be part of the fingerprint. Each keyset page
36701
+ // sends a different AfterKey but otherwise-identical params; without this, sequential
36702
+ // pages collide on the same fingerprint and the dedup/linger layer hands page N+1 the
36703
+ // result of page N — freezing the cursor and looping forever. Appended only when present
36704
+ // so non-keyset fingerprints stay byte-for-byte identical (no cache invalidation).
36705
+ if (params.AfterKey) {
36706
+ parts.push("ak:".concat(params.AfterKey.ToString()));
36707
+ }
36699
36708
  // Only include connection if provided
36700
36709
  if (connection) {
36701
36710
  parts.push(connection);
@@ -47692,6 +47701,17 @@ var BaseEngine = /*#__PURE__*/function (_BaseSingleton) {
47692
47701
  }
47693
47702
  return true;
47694
47703
  }
47704
+ /**
47705
+ * Returns a read-only snapshot of all engine property load states.
47706
+ * Each entry maps a property name to its load status, including entity/dataset name,
47707
+ * row count, success/failure flag, and error message if applicable.
47708
+ * Used by dev tools for diagnostics and health monitoring.
47709
+ */
47710
+ }, {
47711
+ key: "DataMapEntries",
47712
+ get: function get() {
47713
+ return this._dataMap;
47714
+ }
47695
47715
  /**
47696
47716
  * Returns the loading subject. You can call await Config() and after Config() comes back as true that means you're loaded. However you can also directly subscribe to this subject to get updates on the loading status.
47697
47717
  */
@@ -54351,7 +54371,7 @@ var UserViewEngine = /*#__PURE__*/function (_BaseEngine) {
54351
54371
 
54352
54372
  /***/ },
54353
54373
 
54354
- /***/ 346
54374
+ /***/ 760
54355
54375
  (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
54356
54376
 
54357
54377
  "use strict";
@@ -54362,7 +54382,7 @@ __webpack_require__.d(__webpack_exports__, {
54362
54382
  o1C: () => (/* reexport */ ViewInfo)
54363
54383
  });
54364
54384
 
54365
- // UNUSED EXPORTS: AIAgentPermissionProvider, AccessControlRuleProvider, ApplicationRolePermissionProvider, ArtifactExtractor, ArtifactMetadataEngine, ArtifactPermissionProvider, CollectionPermissionProvider, ConversationEngine, CreateShareNotification, DEFAULT_AGGREGATE_DISPLAY, DashboardEngine, DashboardPermissionProvider, EncryptionEngineBase, EntityPermissionProvider, EntityPermissionType, EntitySaveOptions, FileStorageEngineBase, GeoDataEngine, InstanceConfigEngine, KnowledgeHubMetadataEngine, LoadMJAccessControlRuleEntityExtended, LoadMJArtifactPermissionEntityExtended, LoadMJCollectionPermissionEntityExtended, LoadMJConversationDetailEntityExtended, LoadMJDashboardPermissionEntityExtended, LoadPermissionEntityExtensions, LoadPermissionProviders, MCPEngine, MJAIActionEntity, MJAIActionSchema, MJAIAgentActionEntity, MJAIAgentActionSchema, MJAIAgentArtifactTypeEntity, MJAIAgentArtifactTypeSchema, MJAIAgentCategoryEntity, MJAIAgentCategorySchema, MJAIAgentClientToolEntity, MJAIAgentClientToolSchema, MJAIAgentConfigurationEntity, MJAIAgentConfigurationSchema, MJAIAgentDataSourceEntity, MJAIAgentDataSourceSchema, MJAIAgentEntity, MJAIAgentExampleEntity, MJAIAgentExampleSchema, MJAIAgentLearningCycleEntity, MJAIAgentLearningCycleSchema, MJAIAgentModalityEntity, MJAIAgentModalitySchema, MJAIAgentModelEntity, MJAIAgentModelSchema, MJAIAgentNoteEntity, MJAIAgentNoteSchema, MJAIAgentNoteTypeEntity, MJAIAgentNoteTypeSchema, MJAIAgentPermissionEntity, MJAIAgentPermissionSchema, MJAIAgentPromptEntity, MJAIAgentPromptSchema, MJAIAgentRelationshipEntity, MJAIAgentRelationshipSchema, MJAIAgentRequestEntity, MJAIAgentRequestSchema, MJAIAgentRequestTypeEntity, MJAIAgentRequestTypeSchema, MJAIAgentRunEntity, MJAIAgentRunMediaEntity, MJAIAgentRunMediaSchema, MJAIAgentRunSchema, MJAIAgentRunStepEntity, MJAIAgentRunStepSchema, MJAIAgentSchema, MJAIAgentSearchScopeEntity, MJAIAgentSearchScopeSchema, MJAIAgentStepEntity, MJAIAgentStepPathEntity, MJAIAgentStepPathSchema, MJAIAgentStepSchema, MJAIAgentTypeEntity, MJAIAgentTypeSchema, MJAIArchitectureEntity, MJAIArchitectureSchema, MJAIClientToolDefinitionEntity, MJAIClientToolDefinitionSchema, MJAIConfigurationEntity, MJAIConfigurationParamEntity, MJAIConfigurationParamSchema, MJAIConfigurationSchema, MJAICredentialBindingEntity, MJAICredentialBindingSchema, MJAIModalityEntity, MJAIModalitySchema, MJAIModelActionEntity, MJAIModelActionSchema, MJAIModelArchitectureEntity, MJAIModelArchitectureSchema, MJAIModelCostEntity, MJAIModelCostSchema, MJAIModelEntity, MJAIModelModalityEntity, MJAIModelModalitySchema, MJAIModelPriceTypeEntity, MJAIModelPriceTypeSchema, MJAIModelPriceUnitTypeEntity, MJAIModelPriceUnitTypeSchema, MJAIModelSchema, MJAIModelTypeEntity, MJAIModelTypeSchema, MJAIModelVendorEntity, MJAIModelVendorSchema, MJAIPromptCategoryEntity, MJAIPromptCategorySchema, MJAIPromptEntity, MJAIPromptModelEntity, MJAIPromptModelSchema, MJAIPromptRunEntity, MJAIPromptRunMediaEntity, MJAIPromptRunMediaSchema, MJAIPromptRunSchema, MJAIPromptSchema, MJAIPromptTypeEntity, MJAIPromptTypeSchema, MJAIResultCacheEntity, MJAIResultCacheSchema, MJAIVendorEntity, MJAIVendorSchema, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeDefinitionSchema, MJAIVendorTypeEntity, MJAIVendorTypeSchema, MJAPIApplicationEntity, MJAPIApplicationSchema, MJAPIApplicationScopeEntity, MJAPIApplicationScopeSchema, MJAPIKeyApplicationEntity, MJAPIKeyApplicationSchema, MJAPIKeyEntity, MJAPIKeySchema, MJAPIKeyScopeEntity, MJAPIKeyScopeSchema, MJAPIKeyUsageLogEntity, MJAPIKeyUsageLogSchema, MJAPIScopeEntity, MJAPIScopeSchema, MJAccessControlRuleEntity, MJAccessControlRuleEntityExtended, MJAccessControlRuleSchema, MJActionAuthorizationEntity, MJActionAuthorizationSchema, MJActionCategoryEntity, MJActionCategorySchema, MJActionContextEntity, MJActionContextSchema, MJActionContextTypeEntity, MJActionContextTypeSchema, MJActionEntity, MJActionExecutionLogEntity, MJActionExecutionLogSchema, MJActionFilterEntity, MJActionFilterSchema, MJActionLibraryEntity, MJActionLibrarySchema, MJActionParamEntity, MJActionParamSchema, MJActionResultCodeEntity, MJActionResultCodeSchema, MJActionSchema, MJApplicationEntity, MJApplicationEntityEntity, MJApplicationEntitySchema, MJApplicationRoleEntity, MJApplicationRoleSchema, MJApplicationSchema, MJApplicationSettingEntity, MJApplicationSettingSchema, MJArchiveConfigurationEntity, MJArchiveConfigurationEntityEntity, MJArchiveConfigurationEntitySchema, MJArchiveConfigurationSchema, MJArchiveRunDetailEntity, MJArchiveRunDetailSchema, MJArchiveRunEntity, MJArchiveRunSchema, MJArtifactEntity, MJArtifactPermissionEntity, MJArtifactPermissionEntityExtended, MJArtifactPermissionSchema, MJArtifactSchema, MJArtifactTypeEntity, MJArtifactTypeSchema, MJArtifactUseEntity, MJArtifactUseSchema, MJArtifactVersionAttributeEntity, MJArtifactVersionAttributeSchema, MJArtifactVersionEntity, MJArtifactVersionSchema, MJAuditLogEntity, MJAuditLogSchema, MJAuditLogTypeEntity, MJAuditLogTypeSchema, MJAuthorizationEntity, MJAuthorizationRoleEntity, MJAuthorizationRoleSchema, MJAuthorizationSchema, MJCollectionArtifactEntity, MJCollectionArtifactSchema, MJCollectionEntity, MJCollectionPermissionEntity, MJCollectionPermissionEntityExtended, MJCollectionPermissionSchema, MJCollectionSchema, MJCommunicationBaseMessageTypeEntity, MJCommunicationBaseMessageTypeSchema, MJCommunicationLogEntity, MJCommunicationLogSchema, MJCommunicationProviderEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderMessageTypeSchema, MJCommunicationProviderSchema, MJCommunicationRunEntity, MJCommunicationRunSchema, MJCompanyEntity, MJCompanyIntegrationEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationEntityMapSchema, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationFieldMapSchema, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRecordMapSchema, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunAPILogSchema, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunDetailSchema, MJCompanyIntegrationRunEntity, MJCompanyIntegrationRunSchema, MJCompanyIntegrationSchema, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationSyncWatermarkSchema, MJCompanySchema, MJComponentDependencyEntity, MJComponentDependencySchema, MJComponentEntity, MJComponentEntityExtended, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentLibraryLinkSchema, MJComponentLibrarySchema, MJComponentRegistryEntity, MJComponentRegistrySchema, MJComponentSchema, MJContentFileTypeEntity, MJContentFileTypeSchema, MJContentItemAttributeEntity, MJContentItemAttributeSchema, MJContentItemDuplicateEntity, MJContentItemDuplicateSchema, MJContentItemEntity, MJContentItemSchema, MJContentItemTagEntity, MJContentItemTagSchema, MJContentProcessRunDetailEntity, MJContentProcessRunDetailSchema, MJContentProcessRunEntity, MJContentProcessRunPromptRunEntity, MJContentProcessRunPromptRunSchema, MJContentProcessRunSchema, MJContentSourceEntity, MJContentSourceParamEntity, MJContentSourceParamSchema, MJContentSourceSchema, MJContentSourceTypeEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeParamSchema, MJContentSourceTypeSchema, MJContentTypeAttributeEntity, MJContentTypeAttributeSchema, MJContentTypeEntity, MJContentTypeSchema, MJConversationArtifactEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactPermissionSchema, MJConversationArtifactSchema, MJConversationArtifactVersionEntity, MJConversationArtifactVersionSchema, MJConversationDetailArtifactEntity, MJConversationDetailArtifactSchema, MJConversationDetailAttachmentEntity, MJConversationDetailAttachmentSchema, MJConversationDetailEntity, MJConversationDetailEntityExtended, MJConversationDetailRatingEntity, MJConversationDetailRatingSchema, MJConversationDetailSchema, MJConversationEntity, MJConversationSchema, MJCountryEntity, MJCountrySchema, MJCredentialCategoryEntity, MJCredentialCategorySchema, MJCredentialEntity, MJCredentialSchema, MJCredentialTypeEntity, MJCredentialTypeSchema, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryLinkSchema, MJDashboardCategoryPermissionEntity, MJDashboardCategoryPermissionSchema, MJDashboardCategorySchema, MJDashboardEntity, MJDashboardEntityExtended, MJDashboardPartTypeEntity, MJDashboardPartTypeSchema, MJDashboardPermissionEntity, MJDashboardPermissionEntityExtended, MJDashboardPermissionSchema, MJDashboardSchema, MJDashboardUserPreferenceEntity, MJDashboardUserPreferenceSchema, MJDashboardUserStateEntity, MJDashboardUserStateSchema, MJDataContextEntity, MJDataContextItemEntity, MJDataContextItemSchema, MJDataContextSchema, MJDatasetEntity, MJDatasetItemEntity, MJDatasetItemSchema, MJDatasetSchema, MJDuplicateRunDetailEntity, MJDuplicateRunDetailMatchEntity, MJDuplicateRunDetailMatchSchema, MJDuplicateRunDetailSchema, MJDuplicateRunEntity, MJDuplicateRunSchema, MJEmployeeCompanyIntegrationEntity, MJEmployeeCompanyIntegrationSchema, MJEmployeeEntity, MJEmployeeRoleEntity, MJEmployeeRoleSchema, MJEmployeeSchema, MJEmployeeSkillEntity, MJEmployeeSkillSchema, MJEncryptionAlgorithmEntity, MJEncryptionAlgorithmSchema, MJEncryptionKeyEntity, MJEncryptionKeySchema, MJEncryptionKeySourceEntity, MJEncryptionKeySourceSchema, MJEntityAIActionEntity, MJEntityAIActionSchema, MJEntityActionEntity, MJEntityActionFilterEntity, MJEntityActionFilterSchema, MJEntityActionInvocationEntity, MJEntityActionInvocationSchema, MJEntityActionInvocationTypeEntity, MJEntityActionInvocationTypeSchema, MJEntityActionParamEntity, MJEntityActionParamSchema, MJEntityActionSchema, MJEntityCommunicationFieldEntity, MJEntityCommunicationFieldSchema, MJEntityCommunicationMessageTypeEntity, MJEntityCommunicationMessageTypeSchema, MJEntityDocumentEntity, MJEntityDocumentRunEntity, MJEntityDocumentRunSchema, MJEntityDocumentSchema, MJEntityDocumentSettingEntity, MJEntityDocumentSettingSchema, MJEntityDocumentTypeEntity, MJEntityDocumentTypeSchema, MJEntityEntity, MJEntityEntityExtended, MJEntityFieldEntity, MJEntityFieldEntityExtended, MJEntityFieldSchema, MJEntityFieldValueEntity, MJEntityFieldValueSchema, MJEntityOrganicKeyEntity, MJEntityOrganicKeyRelatedEntityEntity, MJEntityOrganicKeyRelatedEntitySchema, MJEntityOrganicKeySchema, MJEntityPermissionEntity, MJEntityPermissionSchema, MJEntityRecordDocumentEntity, MJEntityRecordDocumentSchema, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipDisplayComponentSchema, MJEntityRelationshipEntity, MJEntityRelationshipSchema, MJEntitySchema, MJEntitySettingEntity, MJEntitySettingSchema, MJEnvironmentEntity, MJEnvironmentEntityExtended, MJEnvironmentSchema, MJErrorLogEntity, MJErrorLogSchema, MJExplorerNavigationItemEntity, MJExplorerNavigationItemSchema, MJFileCategoryEntity, MJFileCategorySchema, MJFileEntity, MJFileEntityRecordLinkEntity, MJFileEntityRecordLinkSchema, MJFileSchema, MJFileStorageAccountEntity, MJFileStorageAccountPermissionEntity, MJFileStorageAccountPermissionSchema, MJFileStorageAccountSchema, MJFileStorageProviderEntity, MJFileStorageProviderSchema, MJGeneratedCodeCategoryEntity, MJGeneratedCodeCategorySchema, MJGeneratedCodeEntity, MJGeneratedCodeSchema, MJInstanceConfigurationEntity, MJInstanceConfigurationSchema, MJIntegrationEntity, MJIntegrationObjectEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectFieldSchema, MJIntegrationObjectSchema, MJIntegrationSchema, MJIntegrationSourceTypeEntity, MJIntegrationSourceTypeSchema, MJIntegrationURLFormatEntity, MJIntegrationURLFormatSchema, MJKnowledgeHubSavedSearchEntity, MJKnowledgeHubSavedSearchSchema, MJLibraryEntity, MJLibraryItemEntity, MJLibraryItemSchema, MJLibrarySchema, MJListCategoryEntity, MJListCategorySchema, MJListDetailEntity, MJListDetailEntityExtended, MJListDetailSchema, MJListEntity, MJListInvitationEntity, MJListInvitationSchema, MJListSchema, MJListShareEntity, MJListShareSchema, MJMCPServerConnectionEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionPermissionSchema, MJMCPServerConnectionSchema, MJMCPServerConnectionToolEntity, MJMCPServerConnectionToolSchema, MJMCPServerEntity, MJMCPServerSchema, MJMCPServerToolEntity, MJMCPServerToolSchema, MJMCPToolExecutionLogEntity, MJMCPToolExecutionLogSchema, MJMCPToolFavoriteEntity, MJMCPToolFavoriteSchema, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthServerMetadataCacheSchema, MJOAuthAuthorizationStateEntity, MJOAuthAuthorizationStateSchema, MJOAuthClientRegistrationEntity, MJOAuthClientRegistrationSchema, MJOAuthTokenEntity, MJOAuthTokenSchema, MJOpenAppDependencyEntity, MJOpenAppDependencySchema, MJOpenAppEntity, MJOpenAppInstallHistoryEntity, MJOpenAppInstallHistorySchema, MJOpenAppSchema, MJOutputDeliveryTypeEntity, MJOutputDeliveryTypeSchema, MJOutputFormatTypeEntity, MJOutputFormatTypeSchema, MJOutputTriggerTypeEntity, MJOutputTriggerTypeSchema, MJPermissionDomainEntity, MJPermissionDomainSchema, MJProjectEntity, MJProjectSchema, MJPublicLinkEntity, MJPublicLinkSchema, MJQueryCategoryEntity, MJQueryCategorySchema, MJQueryDependencyEntity, MJQueryDependencySchema, MJQueryEntity, MJQueryEntityEntity, MJQueryEntitySchema, MJQueryFieldEntity, MJQueryFieldSchema, MJQueryParameterEntity, MJQueryParameterSchema, MJQueryPermissionEntity, MJQueryPermissionSchema, MJQuerySQLEntity, MJQuerySQLSchema, MJQuerySchema, MJQueueEntity, MJQueueSchema, MJQueueTaskEntity, MJQueueTaskSchema, MJQueueTypeEntity, MJQueueTypeSchema, MJRecommendationEntity, MJRecommendationItemEntity, MJRecommendationItemSchema, MJRecommendationProviderEntity, MJRecommendationProviderSchema, MJRecommendationRunEntity, MJRecommendationRunSchema, MJRecommendationSchema, MJRecordChangeEntity, MJRecordChangeReplayRunEntity, MJRecordChangeReplayRunSchema, MJRecordChangeSchema, MJRecordGeoCodeEntity, MJRecordGeoCodeSchema, MJRecordLinkEntity, MJRecordLinkSchema, MJRecordMergeDeletionLogEntity, MJRecordMergeDeletionLogSchema, MJRecordMergeLogEntity, MJRecordMergeLogSchema, MJReportCategoryEntity, MJReportCategorySchema, MJReportEntity, MJReportSchema, MJReportSnapshotEntity, MJReportSnapshotSchema, MJReportUserStateEntity, MJReportUserStateSchema, MJReportVersionEntity, MJReportVersionSchema, MJResourceLinkEntity, MJResourceLinkSchema, MJResourcePermissionEntity, MJResourcePermissionEntityExtended, MJResourcePermissionSchema, MJResourceTypeEntity, MJResourceTypeSchema, MJRoleEntity, MJRoleSchema, MJRowLevelSecurityFilterEntity, MJRowLevelSecurityFilterSchema, MJSQLDialectEntity, MJSQLDialectSchema, MJScheduledActionEntity, MJScheduledActionEntityExtended, MJScheduledActionParamEntity, MJScheduledActionParamSchema, MJScheduledActionSchema, MJScheduledJobEntity, MJScheduledJobRunEntity, MJScheduledJobRunSchema, MJScheduledJobSchema, MJScheduledJobTypeEntity, MJScheduledJobTypeSchema, MJSchemaInfoEntity, MJSchemaInfoSchema, MJSearchExecutionLogEntity, MJSearchExecutionLogSchema, MJSearchProviderEntity, MJSearchProviderSchema, MJSearchScopeEntity, MJSearchScopeEntityEntity, MJSearchScopeEntitySchema, MJSearchScopeExternalIndexEntity, MJSearchScopeExternalIndexSchema, MJSearchScopePermissionEntity, MJSearchScopePermissionSchema, MJSearchScopeProviderEntity, MJSearchScopeProviderSchema, MJSearchScopeSchema, MJSearchScopeStorageAccountEntity, MJSearchScopeStorageAccountSchema, MJSearchScopeTestQueryEntity, MJSearchScopeTestQuerySchema, MJSkillEntity, MJSkillSchema, MJStateProvinceEntity, MJStateProvinceSchema, MJTagAuditLogEntity, MJTagAuditLogSchema, MJTagCoOccurrenceEntity, MJTagCoOccurrenceSchema, MJTagEntity, MJTagSchema, MJTagScopeEntity, MJTagScopeSchema, MJTagSuggestionEntity, MJTagSuggestionSchema, MJTagSynonymEntity, MJTagSynonymSchema, MJTaggedItemEntity, MJTaggedItemSchema, MJTaskDependencyEntity, MJTaskDependencySchema, MJTaskEntity, MJTaskSchema, MJTaskTypeEntity, MJTaskTypeSchema, MJTemplateCategoryEntity, MJTemplateCategorySchema, MJTemplateContentEntity, MJTemplateContentSchema, MJTemplateContentTypeEntity, MJTemplateContentTypeSchema, MJTemplateEntity, MJTemplateEntityExtended, MJTemplateParamEntity, MJTemplateParamSchema, MJTemplateSchema, MJTestEntity, MJTestRubricEntity, MJTestRubricSchema, MJTestRunEntity, MJTestRunFeedbackEntity, MJTestRunFeedbackSchema, MJTestRunOutputEntity, MJTestRunOutputSchema, MJTestRunOutputTypeEntity, MJTestRunOutputTypeSchema, MJTestRunSchema, MJTestSchema, MJTestSuiteEntity, MJTestSuiteRunEntity, MJTestSuiteRunSchema, MJTestSuiteSchema, MJTestSuiteTestEntity, MJTestSuiteTestSchema, MJTestTypeEntity, MJTestTypeSchema, MJUserApplicationEntity, MJUserApplicationEntityEntity, MJUserApplicationEntitySchema, MJUserApplicationSchema, MJUserEntity, MJUserFavoriteEntity, MJUserFavoriteSchema, MJUserNotificationEntity, MJUserNotificationPreferenceEntity, MJUserNotificationPreferenceSchema, MJUserNotificationSchema, MJUserNotificationTypeEntity, MJUserNotificationTypeSchema, MJUserRecordLogEntity, MJUserRecordLogSchema, MJUserRoleEntity, MJUserRoleSchema, MJUserSchema, MJUserSettingEntity, MJUserSettingSchema, MJUserViewCategoryEntity, MJUserViewCategorySchema, MJUserViewEntity, MJUserViewEntityExtended, MJUserViewRunDetailEntity, MJUserViewRunDetailSchema, MJUserViewRunEntity, MJUserViewRunSchema, MJUserViewSchema, MJVectorDatabaseEntity, MJVectorDatabaseSchema, MJVectorIndexEntity, MJVectorIndexSchema, MJVersionInstallationEntity, MJVersionInstallationSchema, MJVersionLabelEntity, MJVersionLabelItemEntity, MJVersionLabelItemSchema, MJVersionLabelRestoreEntity, MJVersionLabelRestoreSchema, MJVersionLabelSchema, MJWorkflowEngineEntity, MJWorkflowEngineSchema, MJWorkflowEntity, MJWorkflowRunEntity, MJWorkflowRunSchema, MJWorkflowSchema, MJWorkspaceEntity, MJWorkspaceItemEntity, MJWorkspaceItemSchema, MJWorkspaceSchema, PERMISSION_DOMAIN_ICONS, PERMISSION_DOMAIN_ICON_FALLBACK, PermissionEngine, QueryEngine, QueryPermissionProvider, RegisterShareNotificationHandler, ResourceData, ResourcePermissionEngine, ResourcePermissionProvider, SearchEngineBase, TypeTablesCache, UserInfoEngine, UserViewEngine, ViewColumnInfo, ViewFilterInfo, ViewFilterLogicInfo, ViewGridState, ViewSortDirectionInfo, ViewSortInfo, assertCallerMayCreateShare, buildActionsSummary, checkShareManagePermission, dispatchShareNotificationAfterSave, loadModule, parseConversationDetailComplete
54385
+ // UNUSED EXPORTS: AIAgentPermissionProvider, AccessControlRuleProvider, ApplicationRolePermissionProvider, ArtifactExtractor, ArtifactMetadataEngine, ArtifactPermissionProvider, BuildUnregisteredMimeError, CollectionPermissionProvider, ConversationEngine, CreateShareNotification, DEFAULT_AGGREGATE_DISPLAY, DashboardEngine, DashboardPermissionProvider, DecideInlineStorage, EncryptionEngineBase, EntityPermissionProvider, EntityPermissionType, EntitySaveOptions, ExtractBase64FromDataUrl, FileStorageEngineBase, FindArtifactTypeConflicts, GeoDataEngine, InstanceConfigEngine, IsTextyMime, KnowledgeHubMetadataEngine, LoadMJAccessControlRuleEntityExtended, LoadMJArtifactPermissionEntityExtended, LoadMJCollectionPermissionEntityExtended, LoadMJConversationDetailEntityExtended, LoadMJDashboardPermissionEntityExtended, LoadPermissionEntityExtensions, LoadPermissionProviders, MCPEngine, MJAIActionEntity, MJAIActionSchema, MJAIAgentActionEntity, MJAIAgentActionSchema, MJAIAgentArtifactTypeEntity, MJAIAgentArtifactTypeSchema, MJAIAgentCategoryEntity, MJAIAgentCategorySchema, MJAIAgentClientToolEntity, MJAIAgentClientToolSchema, MJAIAgentConfigurationEntity, MJAIAgentConfigurationSchema, MJAIAgentDataSourceEntity, MJAIAgentDataSourceSchema, MJAIAgentEntity, MJAIAgentExampleEntity, MJAIAgentExampleSchema, MJAIAgentLearningCycleEntity, MJAIAgentLearningCycleSchema, MJAIAgentModalityEntity, MJAIAgentModalitySchema, MJAIAgentModelEntity, MJAIAgentModelSchema, MJAIAgentNoteEntity, MJAIAgentNoteSchema, MJAIAgentNoteTypeEntity, MJAIAgentNoteTypeSchema, MJAIAgentPermissionEntity, MJAIAgentPermissionSchema, MJAIAgentPromptEntity, MJAIAgentPromptSchema, MJAIAgentRelationshipEntity, MJAIAgentRelationshipSchema, MJAIAgentRequestEntity, MJAIAgentRequestSchema, MJAIAgentRequestTypeEntity, MJAIAgentRequestTypeSchema, MJAIAgentRunEntity, MJAIAgentRunMediaEntity, MJAIAgentRunMediaSchema, MJAIAgentRunSchema, MJAIAgentRunStepEntity, MJAIAgentRunStepSchema, MJAIAgentSchema, MJAIAgentSearchScopeEntity, MJAIAgentSearchScopeSchema, MJAIAgentStepEntity, MJAIAgentStepPathEntity, MJAIAgentStepPathSchema, MJAIAgentStepSchema, MJAIAgentTypeEntity, MJAIAgentTypeSchema, MJAIArchitectureEntity, MJAIArchitectureSchema, MJAIClientToolDefinitionEntity, MJAIClientToolDefinitionSchema, MJAIConfigurationEntity, MJAIConfigurationParamEntity, MJAIConfigurationParamSchema, MJAIConfigurationSchema, MJAICredentialBindingEntity, MJAICredentialBindingSchema, MJAIModalityEntity, MJAIModalitySchema, MJAIModelActionEntity, MJAIModelActionSchema, MJAIModelArchitectureEntity, MJAIModelArchitectureSchema, MJAIModelCostEntity, MJAIModelCostSchema, MJAIModelEntity, MJAIModelModalityEntity, MJAIModelModalitySchema, MJAIModelPriceTypeEntity, MJAIModelPriceTypeSchema, MJAIModelPriceUnitTypeEntity, MJAIModelPriceUnitTypeSchema, MJAIModelSchema, MJAIModelTypeEntity, MJAIModelTypeSchema, MJAIModelVendorEntity, MJAIModelVendorSchema, MJAIPromptCategoryEntity, MJAIPromptCategorySchema, MJAIPromptEntity, MJAIPromptModelEntity, MJAIPromptModelSchema, MJAIPromptRunEntity, MJAIPromptRunMediaEntity, MJAIPromptRunMediaSchema, MJAIPromptRunSchema, MJAIPromptSchema, MJAIPromptTypeEntity, MJAIPromptTypeSchema, MJAIResultCacheEntity, MJAIResultCacheSchema, MJAIVendorEntity, MJAIVendorSchema, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeDefinitionSchema, MJAIVendorTypeEntity, MJAIVendorTypeSchema, MJAPIApplicationEntity, MJAPIApplicationSchema, MJAPIApplicationScopeEntity, MJAPIApplicationScopeSchema, MJAPIKeyApplicationEntity, MJAPIKeyApplicationSchema, MJAPIKeyEntity, MJAPIKeySchema, MJAPIKeyScopeEntity, MJAPIKeyScopeSchema, MJAPIKeyUsageLogEntity, MJAPIKeyUsageLogSchema, MJAPIScopeEntity, MJAPIScopeSchema, MJAccessControlRuleEntity, MJAccessControlRuleEntityExtended, MJAccessControlRuleSchema, MJActionAuthorizationEntity, MJActionAuthorizationSchema, MJActionCategoryEntity, MJActionCategorySchema, MJActionContextEntity, MJActionContextSchema, MJActionContextTypeEntity, MJActionContextTypeSchema, MJActionEntity, MJActionExecutionLogEntity, MJActionExecutionLogSchema, MJActionFilterEntity, MJActionFilterSchema, MJActionLibraryEntity, MJActionLibrarySchema, MJActionParamEntity, MJActionParamSchema, MJActionResultCodeEntity, MJActionResultCodeSchema, MJActionSchema, MJApplicationEntity, MJApplicationEntityEntity, MJApplicationEntitySchema, MJApplicationRoleEntity, MJApplicationRoleSchema, MJApplicationSchema, MJApplicationSettingEntity, MJApplicationSettingSchema, MJArchiveConfigurationEntity, MJArchiveConfigurationEntityEntity, MJArchiveConfigurationEntitySchema, MJArchiveConfigurationSchema, MJArchiveRunDetailEntity, MJArchiveRunDetailSchema, MJArchiveRunEntity, MJArchiveRunSchema, MJArtifactEntity, MJArtifactPermissionEntity, MJArtifactPermissionEntityExtended, MJArtifactPermissionSchema, MJArtifactSchema, MJArtifactTypeEntity, MJArtifactTypeSchema, MJArtifactUseEntity, MJArtifactUseSchema, MJArtifactVersionAttributeEntity, MJArtifactVersionAttributeSchema, MJArtifactVersionEntity, MJArtifactVersionSchema, MJAuditLogEntity, MJAuditLogSchema, MJAuditLogTypeEntity, MJAuditLogTypeSchema, MJAuthorizationEntity, MJAuthorizationRoleEntity, MJAuthorizationRoleSchema, MJAuthorizationSchema, MJCollectionArtifactEntity, MJCollectionArtifactSchema, MJCollectionEntity, MJCollectionPermissionEntity, MJCollectionPermissionEntityExtended, MJCollectionPermissionSchema, MJCollectionSchema, MJCommunicationBaseMessageTypeEntity, MJCommunicationBaseMessageTypeSchema, MJCommunicationLogEntity, MJCommunicationLogSchema, MJCommunicationProviderEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderMessageTypeSchema, MJCommunicationProviderSchema, MJCommunicationRunEntity, MJCommunicationRunSchema, MJCompanyEntity, MJCompanyIntegrationEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationEntityMapSchema, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationFieldMapSchema, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRecordMapSchema, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunAPILogSchema, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunDetailSchema, MJCompanyIntegrationRunEntity, MJCompanyIntegrationRunSchema, MJCompanyIntegrationSchema, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationSyncWatermarkSchema, MJCompanySchema, MJComponentDependencyEntity, MJComponentDependencySchema, MJComponentEntity, MJComponentEntityExtended, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentLibraryLinkSchema, MJComponentLibrarySchema, MJComponentRegistryEntity, MJComponentRegistrySchema, MJComponentSchema, MJContentFileTypeEntity, MJContentFileTypeSchema, MJContentItemAttributeEntity, MJContentItemAttributeSchema, MJContentItemDuplicateEntity, MJContentItemDuplicateSchema, MJContentItemEntity, MJContentItemSchema, MJContentItemTagEntity, MJContentItemTagSchema, MJContentProcessRunDetailEntity, MJContentProcessRunDetailSchema, MJContentProcessRunEntity, MJContentProcessRunPromptRunEntity, MJContentProcessRunPromptRunSchema, MJContentProcessRunSchema, MJContentSourceEntity, MJContentSourceParamEntity, MJContentSourceParamSchema, MJContentSourceSchema, MJContentSourceTypeEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeParamSchema, MJContentSourceTypeSchema, MJContentTypeAttributeEntity, MJContentTypeAttributeSchema, MJContentTypeEntity, MJContentTypeSchema, MJConversationArtifactEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactPermissionSchema, MJConversationArtifactSchema, MJConversationArtifactVersionEntity, MJConversationArtifactVersionSchema, MJConversationDetailArtifactEntity, MJConversationDetailArtifactSchema, MJConversationDetailAttachmentEntity, MJConversationDetailAttachmentSchema, MJConversationDetailEntity, MJConversationDetailEntityExtended, MJConversationDetailRatingEntity, MJConversationDetailRatingSchema, MJConversationDetailSchema, MJConversationEntity, MJConversationSchema, MJCountryEntity, MJCountrySchema, MJCredentialCategoryEntity, MJCredentialCategorySchema, MJCredentialEntity, MJCredentialSchema, MJCredentialTypeEntity, MJCredentialTypeSchema, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryLinkSchema, MJDashboardCategoryPermissionEntity, MJDashboardCategoryPermissionSchema, MJDashboardCategorySchema, MJDashboardEntity, MJDashboardEntityExtended, MJDashboardPartTypeEntity, MJDashboardPartTypeSchema, MJDashboardPermissionEntity, MJDashboardPermissionEntityExtended, MJDashboardPermissionSchema, MJDashboardSchema, MJDashboardUserPreferenceEntity, MJDashboardUserPreferenceSchema, MJDashboardUserStateEntity, MJDashboardUserStateSchema, MJDataContextEntity, MJDataContextItemEntity, MJDataContextItemSchema, MJDataContextSchema, MJDatasetEntity, MJDatasetItemEntity, MJDatasetItemSchema, MJDatasetSchema, MJDuplicateRunDetailEntity, MJDuplicateRunDetailMatchEntity, MJDuplicateRunDetailMatchSchema, MJDuplicateRunDetailSchema, MJDuplicateRunEntity, MJDuplicateRunSchema, MJEmployeeCompanyIntegrationEntity, MJEmployeeCompanyIntegrationSchema, MJEmployeeEntity, MJEmployeeRoleEntity, MJEmployeeRoleSchema, MJEmployeeSchema, MJEmployeeSkillEntity, MJEmployeeSkillSchema, MJEncryptionAlgorithmEntity, MJEncryptionAlgorithmSchema, MJEncryptionKeyEntity, MJEncryptionKeySchema, MJEncryptionKeySourceEntity, MJEncryptionKeySourceSchema, MJEntityAIActionEntity, MJEntityAIActionSchema, MJEntityActionEntity, MJEntityActionFilterEntity, MJEntityActionFilterSchema, MJEntityActionInvocationEntity, MJEntityActionInvocationSchema, MJEntityActionInvocationTypeEntity, MJEntityActionInvocationTypeSchema, MJEntityActionParamEntity, MJEntityActionParamSchema, MJEntityActionSchema, MJEntityCommunicationFieldEntity, MJEntityCommunicationFieldSchema, MJEntityCommunicationMessageTypeEntity, MJEntityCommunicationMessageTypeSchema, MJEntityDocumentEntity, MJEntityDocumentRunEntity, MJEntityDocumentRunSchema, MJEntityDocumentSchema, MJEntityDocumentSettingEntity, MJEntityDocumentSettingSchema, MJEntityDocumentTypeEntity, MJEntityDocumentTypeSchema, MJEntityEntity, MJEntityEntityExtended, MJEntityFieldEntity, MJEntityFieldEntityExtended, MJEntityFieldSchema, MJEntityFieldValueEntity, MJEntityFieldValueSchema, MJEntityOrganicKeyEntity, MJEntityOrganicKeyRelatedEntityEntity, MJEntityOrganicKeyRelatedEntitySchema, MJEntityOrganicKeySchema, MJEntityPermissionEntity, MJEntityPermissionSchema, MJEntityRecordDocumentEntity, MJEntityRecordDocumentSchema, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipDisplayComponentSchema, MJEntityRelationshipEntity, MJEntityRelationshipSchema, MJEntitySchema, MJEntitySettingEntity, MJEntitySettingSchema, MJEnvironmentEntity, MJEnvironmentEntityExtended, MJEnvironmentSchema, MJErrorLogEntity, MJErrorLogSchema, MJExplorerNavigationItemEntity, MJExplorerNavigationItemSchema, MJFileCategoryEntity, MJFileCategorySchema, MJFileEntity, MJFileEntityRecordLinkEntity, MJFileEntityRecordLinkSchema, MJFileSchema, MJFileStorageAccountEntity, MJFileStorageAccountPermissionEntity, MJFileStorageAccountPermissionSchema, MJFileStorageAccountSchema, MJFileStorageProviderEntity, MJFileStorageProviderSchema, MJGeneratedCodeCategoryEntity, MJGeneratedCodeCategorySchema, MJGeneratedCodeEntity, MJGeneratedCodeSchema, MJInstanceConfigurationEntity, MJInstanceConfigurationSchema, MJIntegrationEntity, MJIntegrationObjectEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectFieldSchema, MJIntegrationObjectSchema, MJIntegrationSchema, MJIntegrationSourceTypeEntity, MJIntegrationSourceTypeSchema, MJIntegrationURLFormatEntity, MJIntegrationURLFormatSchema, MJKnowledgeHubSavedSearchEntity, MJKnowledgeHubSavedSearchSchema, MJLibraryEntity, MJLibraryItemEntity, MJLibraryItemSchema, MJLibrarySchema, MJListCategoryEntity, MJListCategorySchema, MJListDetailEntity, MJListDetailEntityExtended, MJListDetailSchema, MJListEntity, MJListInvitationEntity, MJListInvitationSchema, MJListSchema, MJListShareEntity, MJListShareSchema, MJMCPServerConnectionEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionPermissionSchema, MJMCPServerConnectionSchema, MJMCPServerConnectionToolEntity, MJMCPServerConnectionToolSchema, MJMCPServerEntity, MJMCPServerSchema, MJMCPServerToolEntity, MJMCPServerToolSchema, MJMCPToolExecutionLogEntity, MJMCPToolExecutionLogSchema, MJMCPToolFavoriteEntity, MJMCPToolFavoriteSchema, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthServerMetadataCacheSchema, MJOAuthAuthorizationStateEntity, MJOAuthAuthorizationStateSchema, MJOAuthClientRegistrationEntity, MJOAuthClientRegistrationSchema, MJOAuthTokenEntity, MJOAuthTokenSchema, MJOpenAppDependencyEntity, MJOpenAppDependencySchema, MJOpenAppEntity, MJOpenAppInstallHistoryEntity, MJOpenAppInstallHistorySchema, MJOpenAppSchema, MJOutputDeliveryTypeEntity, MJOutputDeliveryTypeSchema, MJOutputFormatTypeEntity, MJOutputFormatTypeSchema, MJOutputTriggerTypeEntity, MJOutputTriggerTypeSchema, MJPermissionDomainEntity, MJPermissionDomainSchema, MJProjectEntity, MJProjectSchema, MJPublicLinkEntity, MJPublicLinkSchema, MJQueryCategoryEntity, MJQueryCategorySchema, MJQueryDependencyEntity, MJQueryDependencySchema, MJQueryEntity, MJQueryEntityEntity, MJQueryEntitySchema, MJQueryFieldEntity, MJQueryFieldSchema, MJQueryParameterEntity, MJQueryParameterSchema, MJQueryPermissionEntity, MJQueryPermissionSchema, MJQuerySQLEntity, MJQuerySQLSchema, MJQuerySchema, MJQueueEntity, MJQueueSchema, MJQueueTaskEntity, MJQueueTaskSchema, MJQueueTypeEntity, MJQueueTypeSchema, MJRecommendationEntity, MJRecommendationItemEntity, MJRecommendationItemSchema, MJRecommendationProviderEntity, MJRecommendationProviderSchema, MJRecommendationRunEntity, MJRecommendationRunSchema, MJRecommendationSchema, MJRecordChangeEntity, MJRecordChangeReplayRunEntity, MJRecordChangeReplayRunSchema, MJRecordChangeSchema, MJRecordGeoCodeEntity, MJRecordGeoCodeSchema, MJRecordLinkEntity, MJRecordLinkSchema, MJRecordMergeDeletionLogEntity, MJRecordMergeDeletionLogSchema, MJRecordMergeLogEntity, MJRecordMergeLogSchema, MJReportCategoryEntity, MJReportCategorySchema, MJReportEntity, MJReportSchema, MJReportSnapshotEntity, MJReportSnapshotSchema, MJReportUserStateEntity, MJReportUserStateSchema, MJReportVersionEntity, MJReportVersionSchema, MJResourceLinkEntity, MJResourceLinkSchema, MJResourcePermissionEntity, MJResourcePermissionEntityExtended, MJResourcePermissionSchema, MJResourceTypeEntity, MJResourceTypeSchema, MJRoleEntity, MJRoleSchema, MJRowLevelSecurityFilterEntity, MJRowLevelSecurityFilterSchema, MJSQLDialectEntity, MJSQLDialectSchema, MJScheduledActionEntity, MJScheduledActionEntityExtended, MJScheduledActionParamEntity, MJScheduledActionParamSchema, MJScheduledActionSchema, MJScheduledJobEntity, MJScheduledJobRunEntity, MJScheduledJobRunSchema, MJScheduledJobSchema, MJScheduledJobTypeEntity, MJScheduledJobTypeSchema, MJSchemaInfoEntity, MJSchemaInfoSchema, MJSearchExecutionLogEntity, MJSearchExecutionLogSchema, MJSearchProviderEntity, MJSearchProviderSchema, MJSearchScopeEntity, MJSearchScopeEntityEntity, MJSearchScopeEntitySchema, MJSearchScopeExternalIndexEntity, MJSearchScopeExternalIndexSchema, MJSearchScopePermissionEntity, MJSearchScopePermissionSchema, MJSearchScopeProviderEntity, MJSearchScopeProviderSchema, MJSearchScopeSchema, MJSearchScopeStorageAccountEntity, MJSearchScopeStorageAccountSchema, MJSearchScopeTestQueryEntity, MJSearchScopeTestQuerySchema, MJSkillEntity, MJSkillSchema, MJStateProvinceEntity, MJStateProvinceSchema, MJTagAuditLogEntity, MJTagAuditLogSchema, MJTagCoOccurrenceEntity, MJTagCoOccurrenceSchema, MJTagEntity, MJTagSchema, MJTagScopeEntity, MJTagScopeSchema, MJTagSuggestionEntity, MJTagSuggestionSchema, MJTagSynonymEntity, MJTagSynonymSchema, MJTaggedItemEntity, MJTaggedItemSchema, MJTaskDependencyEntity, MJTaskDependencySchema, MJTaskEntity, MJTaskSchema, MJTaskTypeEntity, MJTaskTypeSchema, MJTemplateCategoryEntity, MJTemplateCategorySchema, MJTemplateContentEntity, MJTemplateContentSchema, MJTemplateContentTypeEntity, MJTemplateContentTypeSchema, MJTemplateEntity, MJTemplateEntityExtended, MJTemplateParamEntity, MJTemplateParamSchema, MJTemplateSchema, MJTestEntity, MJTestRubricEntity, MJTestRubricSchema, MJTestRunEntity, MJTestRunFeedbackEntity, MJTestRunFeedbackSchema, MJTestRunOutputEntity, MJTestRunOutputSchema, MJTestRunOutputTypeEntity, MJTestRunOutputTypeSchema, MJTestRunSchema, MJTestSchema, MJTestSuiteEntity, MJTestSuiteRunEntity, MJTestSuiteRunSchema, MJTestSuiteSchema, MJTestSuiteTestEntity, MJTestSuiteTestSchema, MJTestTypeEntity, MJTestTypeSchema, MJUserApplicationEntity, MJUserApplicationEntityEntity, MJUserApplicationEntitySchema, MJUserApplicationSchema, MJUserEntity, MJUserFavoriteEntity, MJUserFavoriteSchema, MJUserNotificationEntity, MJUserNotificationPreferenceEntity, MJUserNotificationPreferenceSchema, MJUserNotificationSchema, MJUserNotificationTypeEntity, MJUserNotificationTypeSchema, MJUserRecordLogEntity, MJUserRecordLogSchema, MJUserRoleEntity, MJUserRoleSchema, MJUserSchema, MJUserSettingEntity, MJUserSettingSchema, MJUserViewCategoryEntity, MJUserViewCategorySchema, MJUserViewEntity, MJUserViewEntityExtended, MJUserViewRunDetailEntity, MJUserViewRunDetailSchema, MJUserViewRunEntity, MJUserViewRunSchema, MJUserViewSchema, MJVectorDatabaseEntity, MJVectorDatabaseSchema, MJVectorIndexEntity, MJVectorIndexSchema, MJVersionInstallationEntity, MJVersionInstallationSchema, MJVersionLabelEntity, MJVersionLabelItemEntity, MJVersionLabelItemSchema, MJVersionLabelRestoreEntity, MJVersionLabelRestoreSchema, MJVersionLabelSchema, MJWorkflowEngineEntity, MJWorkflowEngineSchema, MJWorkflowEntity, MJWorkflowRunEntity, MJWorkflowRunSchema, MJWorkflowSchema, MJWorkspaceEntity, MJWorkspaceItemEntity, MJWorkspaceItemSchema, MJWorkspaceSchema, PERMISSION_DOMAIN_ICONS, PERMISSION_DOMAIN_ICON_FALLBACK, PermissionEngine, QueryEngine, QueryPermissionProvider, RegisterShareNotificationHandler, ResolveArtifactTypeByMime, ResourceData, ResourcePermissionEngine, ResourcePermissionProvider, SearchEngineBase, TypeTablesCache, UserInfoEngine, UserViewEngine, ViewColumnInfo, ViewFilterInfo, ViewFilterLogicInfo, ViewGridState, ViewSortDirectionInfo, ViewSortInfo, assertCallerMayCreateShare, buildActionsSummary, checkShareManagePermission, dispatchShareNotificationAfterSave, loadModule, parseConversationDetailComplete
54366
54386
 
54367
54387
  // EXTERNAL MODULE: ../../MJCore/dist/index.js + 81 modules
54368
54388
  var dist = __webpack_require__(310);
@@ -58839,7 +58859,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
58839
58859
  * zod schema definition for the entity MJ: AI Agent Run Medias
58840
58860
  */var MJAIAgentRunMediaSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),AgentRunID:z.string().describe("\n * * Field Name: AgentRunID\n * * Display Name: Agent Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Runs (vwAIAgentRuns.ID)"),SourcePromptRunMediaID:z.string().nullable().describe("\n * * Field Name: SourcePromptRunMediaID\n * * Display Name: Source Prompt Run Media\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Prompt Run Medias (vwAIPromptRunMedias.ID)"),ModalityID:z.string().describe("\n * * Field Name: ModalityID\n * * Display Name: Modality\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Modalities (vwAIModalities.ID)"),MimeType:z.string().describe("\n * * Field Name: MimeType\n * * Display Name: Mime Type\n * * SQL Data Type: nvarchar(100)"),FileName:z.string().nullable().describe("\n * * Field Name: FileName\n * * Display Name: File Name\n * * SQL Data Type: nvarchar(255)"),FileSizeBytes:z.number().nullable().describe("\n * * Field Name: FileSizeBytes\n * * Display Name: File Size Bytes\n * * SQL Data Type: int"),Width:z.number().nullable().describe("\n * * Field Name: Width\n * * Display Name: Width\n * * SQL Data Type: int"),Height:z.number().nullable().describe("\n * * Field Name: Height\n * * Display Name: Height\n * * SQL Data Type: int"),DurationSeconds:z.number().nullable().describe("\n * * Field Name: DurationSeconds\n * * Display Name: Duration Seconds\n * * SQL Data Type: decimal(10, 2)"),InlineData:z.string().nullable().describe("\n * * Field Name: InlineData\n * * Display Name: Inline Data\n * * SQL Data Type: nvarchar(MAX)"),FileID:z.string().nullable().describe("\n * * Field Name: FileID\n * * Display Name: File ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)"),ThumbnailBase64:z.string().nullable().describe("\n * * Field Name: ThumbnailBase64\n * * Display Name: Thumbnail Base64\n * * SQL Data Type: nvarchar(MAX)"),Label:z.string().nullable().describe("\n * * Field Name: Label\n * * Display Name: Label\n * * SQL Data Type: nvarchar(255)"),Metadata:z.string().nullable().describe("\n * * Field Name: Metadata\n * * Display Name: Metadata\n * * SQL Data Type: nvarchar(MAX)"),DisplayOrder:z.number().describe("\n * * Field Name: DisplayOrder\n * * Display Name: Display Order\n * * SQL Data Type: int\n * * Default Value: 0"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Agent notes describing what this media represents. Used for internal tracking and can be displayed in UI."),AgentRun:z.string().nullable().describe("\n * * Field Name: AgentRun\n * * Display Name: Agent Run\n * * SQL Data Type: nvarchar(255)"),SourcePromptRunMedia:z.string().nullable().describe("\n * * Field Name: SourcePromptRunMedia\n * * Display Name: Source Prompt Run Media\n * * SQL Data Type: nvarchar(255)"),Modality:z.string().describe("\n * * Field Name: Modality\n * * Display Name: Modality\n * * SQL Data Type: nvarchar(50)"),File:z.string().nullable().describe("\n * * Field Name: File\n * * Display Name: File\n * * SQL Data Type: nvarchar(500)")});/**
58841
58861
  * zod schema definition for the entity MJ: AI Agent Run Steps
58842
- */var MJAIAgentRunStepSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Unique identifier for this execution step"),AgentRunID:z.string().describe("\n * * Field Name: AgentRunID\n * * Display Name: Agent Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Runs (vwAIAgentRuns.ID)\n * * Description: Reference to the parent AIAgentRun that contains this step"),StepNumber:z.number().describe("\n * * Field Name: StepNumber\n * * Display Name: Step Number\n * * SQL Data Type: int\n * * Description: Sequential number of this step within the agent run, starting from 1"),StepType:z.union([z.literal('Actions'),z.literal('Chat'),z.literal('Decision'),z.literal('ForEach'),z.literal('Prompt'),z.literal('Sub-Agent'),z.literal('Validation'),z.literal('While')]).describe("\n * * Field Name: StepType\n * * Display Name: Step Type\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Prompt\n * * Value List Type: List\n * * Possible Values \n * * Actions\n * * Chat\n * * Decision\n * * ForEach\n * * Prompt\n * * Sub-Agent\n * * Validation\n * * While\n * * Description: Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation"),StepName:z.string().describe("\n * * Field Name: StepName\n * * Display Name: Step Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Human-readable name of what this step accomplishes"),TargetID:z.string().nullable().describe("\n * * Field Name: TargetID\n * * Display Name: Target\n * * SQL Data Type: uniqueidentifier\n * * Description: ID of the specific target being executed (AIPrompt.ID, AIAction.ID, AIAgent.ID, etc.). NULL for steps that don't target a specific entity."),Status:z.union([z.literal('Cancelled'),z.literal('Completed'),z.literal('Failed'),z.literal('Running')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Running\n * * Value List Type: List\n * * Possible Values \n * * Cancelled\n * * Completed\n * * Failed\n * * Running\n * * Description: Current execution status of this step: Running, Completed, Failed, Cancelled"),StartedAt:z.date().describe("\n * * Field Name: StartedAt\n * * Display Name: Started At\n * * SQL Data Type: datetimeoffset\n * * Default Value: sysdatetimeoffset()\n * * Description: Timestamp when this step began execution"),CompletedAt:z.date().nullable().describe("\n * * Field Name: CompletedAt\n * * Display Name: Completed At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when this step completed. NULL while still running."),Success:z.boolean().nullable().describe("\n * * Field Name: Success\n * * Display Name: Success\n * * SQL Data Type: bit\n * * Description: Whether this step completed successfully. NULL while running, TRUE/FALSE when completed."),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Error message if this step failed. NULL for successful steps."),InputData:z.string().nullable().describe("\n * * Field Name: InputData\n * * Display Name: Input Data\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of input data passed to this step for execution"),OutputData:z.string().nullable().describe("\n * * Field Name: OutputData\n * * Display Name: Output Data\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of the output data produced by this step"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),TargetLogID:z.string().nullable().describe("\n * * Field Name: TargetLogID\n * * Display Name: Target Log\n * * SQL Data Type: uniqueidentifier\n * * Description: ID of the execution log/run record created for this step (ActionExecutionLog.ID for action steps, AIAgentRun.ID for subagent steps, AIPromptRun.ID for prompt steps)"),PayloadAtStart:z.string().nullable().describe("\n * * Field Name: PayloadAtStart\n * * Display Name: Payload At Start\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of the Payload state at the start of this step"),PayloadAtEnd:z.string().nullable().describe("\n * * Field Name: PayloadAtEnd\n * * Display Name: Payload At End\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of the Payload state at the end of this step"),FinalPayloadValidationResult:z.union([z.literal('Fail'),z.literal('Fail'),z.literal('Pass'),z.literal('Pass'),z.literal('Retry'),z.literal('Retry'),z.literal('Warn'),z.literal('Warn')]).nullable().describe("\n * * Field Name: FinalPayloadValidationResult\n * * Display Name: Validation Result\n * * SQL Data Type: nvarchar(25)\n * * Value List Type: List\n * * Possible Values \n * * Fail\n * * Fail\n * * Pass\n * * Pass\n * * Retry\n * * Retry\n * * Warn\n * * Warn\n * * Description: Result of the final payload validation for this step. Pass indicates successful\nvalidation, Retry means validation failed but will retry, Fail means validation failed\npermanently, Warn means validation failed but execution continues."),FinalPayloadValidationMessages:z.string().nullable().describe("\n * * Field Name: FinalPayloadValidationMessages\n * * Display Name: Validation Messages\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Validation error messages or warnings from final payload validation. Contains\ndetailed information about what validation rules failed."),ParentID:z.string().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent Step\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Run Steps (vwAIAgentRunSteps.ID)\n * * Description: Optional reference to parent step for tracking hierarchical relationships like code->test->fix->code cycles"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Human-readable notes and comments about this agent run step"),AgentRun:z.string().nullable().describe("\n * * Field Name: AgentRun\n * * Display Name: Agent Run\n * * SQL Data Type: nvarchar(255)"),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent Step\n * * SQL Data Type: nvarchar(255)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent Step\n * * SQL Data Type: uniqueidentifier")});/**
58862
+ */var MJAIAgentRunStepSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Unique identifier for this execution step"),AgentRunID:z.string().describe("\n * * Field Name: AgentRunID\n * * Display Name: Agent Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Runs (vwAIAgentRuns.ID)\n * * Description: Reference to the parent AIAgentRun that contains this step"),StepNumber:z.number().describe("\n * * Field Name: StepNumber\n * * Display Name: Step Number\n * * SQL Data Type: int\n * * Description: Sequential number of this step within the agent run, starting from 1"),StepType:z.union([z.literal('Actions'),z.literal('Chat'),z.literal('Decision'),z.literal('ForEach'),z.literal('Prompt'),z.literal('Sub-Agent'),z.literal('Tool'),z.literal('Validation'),z.literal('While')]).describe("\n * * Field Name: StepType\n * * Display Name: Step Type\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Prompt\n * * Value List Type: List\n * * Possible Values \n * * Actions\n * * Chat\n * * Decision\n * * ForEach\n * * Prompt\n * * Sub-Agent\n * * Tool\n * * Validation\n * * While\n * * Description: Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation, ForEach, While, Tool"),StepName:z.string().describe("\n * * Field Name: StepName\n * * Display Name: Step Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Human-readable name of what this step accomplishes"),TargetID:z.string().nullable().describe("\n * * Field Name: TargetID\n * * Display Name: Target\n * * SQL Data Type: uniqueidentifier\n * * Description: ID of the specific target being executed (AIPrompt.ID, AIAction.ID, AIAgent.ID, etc.). NULL for steps that don't target a specific entity."),Status:z.union([z.literal('Cancelled'),z.literal('Completed'),z.literal('Failed'),z.literal('Running')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Running\n * * Value List Type: List\n * * Possible Values \n * * Cancelled\n * * Completed\n * * Failed\n * * Running\n * * Description: Current execution status of this step: Running, Completed, Failed, Cancelled"),StartedAt:z.date().describe("\n * * Field Name: StartedAt\n * * Display Name: Started At\n * * SQL Data Type: datetimeoffset\n * * Default Value: sysdatetimeoffset()\n * * Description: Timestamp when this step began execution"),CompletedAt:z.date().nullable().describe("\n * * Field Name: CompletedAt\n * * Display Name: Completed At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when this step completed. NULL while still running."),Success:z.boolean().nullable().describe("\n * * Field Name: Success\n * * Display Name: Success\n * * SQL Data Type: bit\n * * Description: Whether this step completed successfully. NULL while running, TRUE/FALSE when completed."),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Error message if this step failed. NULL for successful steps."),InputData:z.string().nullable().describe("\n * * Field Name: InputData\n * * Display Name: Input Data\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of input data passed to this step for execution"),OutputData:z.string().nullable().describe("\n * * Field Name: OutputData\n * * Display Name: Output Data\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of the output data produced by this step"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),TargetLogID:z.string().nullable().describe("\n * * Field Name: TargetLogID\n * * Display Name: Target Log\n * * SQL Data Type: uniqueidentifier\n * * Description: ID of the execution log/run record created for this step (ActionExecutionLog.ID for action steps, AIAgentRun.ID for subagent steps, AIPromptRun.ID for prompt steps)"),PayloadAtStart:z.string().nullable().describe("\n * * Field Name: PayloadAtStart\n * * Display Name: Payload At Start\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of the Payload state at the start of this step"),PayloadAtEnd:z.string().nullable().describe("\n * * Field Name: PayloadAtEnd\n * * Display Name: Payload At End\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of the Payload state at the end of this step"),FinalPayloadValidationResult:z.union([z.literal('Fail'),z.literal('Fail'),z.literal('Pass'),z.literal('Pass'),z.literal('Retry'),z.literal('Retry'),z.literal('Warn'),z.literal('Warn')]).nullable().describe("\n * * Field Name: FinalPayloadValidationResult\n * * Display Name: Validation Result\n * * SQL Data Type: nvarchar(25)\n * * Value List Type: List\n * * Possible Values \n * * Fail\n * * Fail\n * * Pass\n * * Pass\n * * Retry\n * * Retry\n * * Warn\n * * Warn\n * * Description: Result of the final payload validation for this step. Pass indicates successful\nvalidation, Retry means validation failed but will retry, Fail means validation failed\npermanently, Warn means validation failed but execution continues."),FinalPayloadValidationMessages:z.string().nullable().describe("\n * * Field Name: FinalPayloadValidationMessages\n * * Display Name: Validation Messages\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Validation error messages or warnings from final payload validation. Contains\ndetailed information about what validation rules failed."),ParentID:z.string().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent Step\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Run Steps (vwAIAgentRunSteps.ID)\n * * Description: Optional reference to parent step for tracking hierarchical relationships like code->test->fix->code cycles"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Human-readable notes and comments about this agent run step"),AgentRun:z.string().nullable().describe("\n * * Field Name: AgentRun\n * * Display Name: Agent Run\n * * SQL Data Type: nvarchar(255)"),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent Step\n * * SQL Data Type: nvarchar(255)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent Step\n * * SQL Data Type: uniqueidentifier")});/**
58843
58863
  * zod schema definition for the entity MJ: AI Agent Runs
58844
58864
  */var MJAIAgentRunSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Unique identifier for this agent run"),AgentID:z.string().describe("\n * * Field Name: AgentID\n * * Display Name: Agent\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)\n * * Description: Reference to the AIAgent that is being executed in this run"),ParentRunID:z.string().nullable().describe("\n * * Field Name: ParentRunID\n * * Display Name: Parent Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Runs (vwAIAgentRuns.ID)\n * * Description: Reference to the parent agent run if this is a sub-agent execution. NULL for root-level agent runs. Enables hierarchical execution tracking."),Status:z.union([z.literal('AwaitingFeedback'),z.literal('Cancelled'),z.literal('Completed'),z.literal('Failed'),z.literal('Paused'),z.literal('Running')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Running\n * * Value List Type: List\n * * Possible Values \n * * AwaitingFeedback\n * * Cancelled\n * * Completed\n * * Failed\n * * Paused\n * * Running\n * * Description: Current status of the agent run. Running -> Completed/Failed/Cancelled"),StartedAt:z.date().describe("\n * * Field Name: StartedAt\n * * Display Name: Started At\n * * SQL Data Type: datetimeoffset\n * * Default Value: sysdatetimeoffset()\n * * Description: Timestamp when the agent run began execution"),CompletedAt:z.date().nullable().describe("\n * * Field Name: CompletedAt\n * * Display Name: Completed At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp when the agent run completed (successfully or with failure). NULL while running."),Success:z.boolean().nullable().describe("\n * * Field Name: Success\n * * Display Name: Success\n * * SQL Data Type: bit\n * * Description: Indicates whether the agent run completed successfully. NULL while running, TRUE/FALSE when completed."),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Error message if the agent run failed. NULL for successful runs."),ConversationID:z.string().nullable().describe("\n * * Field Name: ConversationID\n * * Display Name: Conversation\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversations (vwConversations.ID)\n * * Description: Identifier linking multiple agent runs that are part of the same conversation or user session"),UserID:z.string().nullable().describe("\n * * Field Name: UserID\n * * Display Name: User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: User context identifier for authentication and permissions during the agent run"),Result:z.string().nullable().describe("\n * * Field Name: Result\n * * Display Name: Result\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Final result or output from the agent execution, stored as JSON or text"),AgentState:z.string().nullable().describe("\n * * Field Name: AgentState\n * * Display Name: Agent State\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of the complete agent state, including conversation context, variables, and execution state. Enables pause/resume functionality."),TotalTokensUsed:z.number().nullable().describe("\n * * Field Name: TotalTokensUsed\n * * Display Name: Total Tokens Used\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Total number of tokens consumed by all LLM calls during this agent run"),TotalCost:z.number().nullable().describe("\n * * Field Name: TotalCost\n * * Display Name: Total Cost\n * * SQL Data Type: decimal(18, 6)\n * * Default Value: 0.000000\n * * Description: Total estimated cost for all AI model usage during this agent run"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),TotalPromptTokensUsed:z.number().nullable().describe("\n * * Field Name: TotalPromptTokensUsed\n * * Display Name: Total Prompt Tokens Used\n * * SQL Data Type: int\n * * Description: Total number of prompt/input tokens used across all AIPromptRun executions during this agent run. This provides a breakdown of the TotalTokensUsed field to help analyze the ratio of input vs output tokens consumed by the agent."),TotalCompletionTokensUsed:z.number().nullable().describe("\n * * Field Name: TotalCompletionTokensUsed\n * * Display Name: Total Completion Tokens Used\n * * SQL Data Type: int\n * * Description: Total number of completion/output tokens generated across all AIPromptRun executions during this agent run. This provides a breakdown of the TotalTokensUsed field to help analyze the ratio of input vs output tokens consumed by the agent."),TotalTokensUsedRollup:z.number().nullable().describe("\n * * Field Name: TotalTokensUsedRollup\n * * Display Name: Total Tokens Used (Rollup)\n * * SQL Data Type: int\n * * Description: Total tokens used including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalTokensUsed. For parent agents, this includes the sum of all descendant agent tokens. Calculated as TotalPromptTokensUsedRollup + TotalCompletionTokensUsedRollup."),TotalPromptTokensUsedRollup:z.number().nullable().describe("\n * * Field Name: TotalPromptTokensUsedRollup\n * * Display Name: Total Prompt Tokens Used (Rollup)\n * * SQL Data Type: int\n * * Description: Total prompt/input tokens including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalPromptTokensUsed. For parent agents, this includes the sum of all descendant agent prompt tokens."),TotalCompletionTokensUsedRollup:z.number().nullable().describe("\n * * Field Name: TotalCompletionTokensUsedRollup\n * * Display Name: Total Completion Tokens Used (Rollup)\n * * SQL Data Type: int\n * * Description: Total completion/output tokens including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalCompletionTokensUsed. For parent agents, this includes the sum of all descendant agent completion tokens."),TotalCostRollup:z.number().nullable().describe("\n * * Field Name: TotalCostRollup\n * * Display Name: Total Cost (Rollup)\n * * SQL Data Type: decimal(19, 8)\n * * Description: Total cost including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalCost. For parent agents, this includes the sum of all descendant agent costs. Note: This assumes all costs are in the same currency for accurate rollup."),ConversationDetailID:z.string().nullable().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)\n * * Description: Optional tracking of a specific conversation detail (e.g. a specific message) that spawned this agent run"),ConversationDetailSequence:z.number().nullable().describe("\n * * Field Name: ConversationDetailSequence\n * * Display Name: Conversation Detail Sequence\n * * SQL Data Type: int\n * * Description: If a conversation detail spawned multiple agent runs, tracks the order of their spawn/execution"),CancellationReason:z.union([z.literal('System'),z.literal('Timeout'),z.literal('User Request')]).nullable().describe("\n * * Field Name: CancellationReason\n * * Display Name: Cancellation Reason\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * System\n * * Timeout\n * * User Request\n * * Description: Reason for cancellation if the agent run was cancelled"),FinalStep:z.union([z.literal('Actions'),z.literal('Chat'),z.literal('Failed'),z.literal('ForEach'),z.literal('Retry'),z.literal('Sub-Agent'),z.literal('Success'),z.literal('While')]).nullable().describe("\n * * Field Name: FinalStep\n * * Display Name: Final Step\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * Actions\n * * Chat\n * * Failed\n * * ForEach\n * * Retry\n * * Sub-Agent\n * * Success\n * * While\n * * Description: The final step type that concluded the agent run"),FinalPayload:z.string().nullable().describe("\n * * Field Name: FinalPayload\n * * Display Name: Final Payload\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialization of the final Payload state at the end of the agent run"),Message:z.string().nullable().describe("\n * * Field Name: Message\n * * Display Name: Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Final message from the agent to the end user at the end of a run"),LastRunID:z.string().nullable().describe("\n * * Field Name: LastRunID\n * * Display Name: Last Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Runs (vwAIAgentRuns.ID)\n * * Description: Links to the previous run in a chain. Different from ParentRunID which is for sub-agent hierarchy."),StartingPayload:z.string().nullable().describe("\n * * Field Name: StartingPayload\n * * Display Name: Starting Payload\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The initial payload provided at the start of this run. Can be populated from the FinalPayload of the LastRun."),TotalPromptIterations:z.number().describe("\n * * Field Name: TotalPromptIterations\n * * Display Name: Total Prompt Iterations\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Total number of prompt iterations executed during this agent run. Incremented\neach time the agent processes a prompt step."),ConfigurationID:z.string().nullable().describe("\n * * Field Name: ConfigurationID\n * * Display Name: Configuration\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Configurations (vwAIConfigurations.ID)\n * * Description: The AI Configuration used for this agent execution. When set, this configuration was used for all prompts executed by this agent and its sub-agents."),OverrideModelID:z.string().nullable().describe("\n * * Field Name: OverrideModelID\n * * Display Name: Override Model\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)\n * * Description: Runtime model override that was used for this execution. When set, this model took precedence over all other model selection methods."),OverrideVendorID:z.string().nullable().describe("\n * * Field Name: OverrideVendorID\n * * Display Name: Override Vendor\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Vendors (vwAIVendors.ID)\n * * Description: Runtime vendor override that was used for this execution. When set along with OverrideModelID, this vendor was used to provide the model."),Data:z.string().nullable().describe("\n * * Field Name: Data\n * * Display Name: Data\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON serialized data that was passed for template rendering and prompt execution. This data was passed to the agent's prompt as well as all sub-agents."),Verbose:z.boolean().nullable().describe("\n * * Field Name: Verbose\n * * Display Name: Verbose Logging\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Indicates whether verbose logging was enabled during this agent execution. When true, detailed decision-making and execution flow was logged."),EffortLevel:z.number().nullable().describe("\n * * Field Name: EffortLevel\n * * Display Name: Effort Level\n * * SQL Data Type: int\n * * Description: Effort level that was actually used during this agent run execution (1-100, where 1=minimal effort, 100=maximum effort). This is the resolved effort level after applying the precedence hierarchy: runtime override > agent default > prompt defaults."),RunName:z.string().nullable().describe("\n * * Field Name: RunName\n * * Display Name: Run Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional name for the agent run to help identify and tag runs for easier reference"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Human-readable notes and comments about this agent run"),ScheduledJobRunID:z.string().nullable().describe("\n * * Field Name: ScheduledJobRunID\n * * Display Name: Scheduled Job Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Scheduled Job Runs (vwScheduledJobRuns.ID)\n * * Description: Links to the scheduled job run that triggered this agent execution. NULL for manually-triggered agent runs. Enables tracking which scheduled jobs spawned which agent executions."),TestRunID:z.string().nullable().describe("\n * * Field Name: TestRunID\n * * Display Name: Test Run\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Test Runs (vwTestRuns.ID)\n * * Description: Optional Foreign Key - Links this agent run to a test run if this execution was part of a test. Allows navigation from agent execution to test context."),PrimaryScopeEntityID:z.string().nullable().describe("\n * * Field Name: PrimaryScopeEntityID\n * * Display Name: Primary Scope Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Foreign key to Entity table identifying which entity type is used for primary scoping (e.g., Organizations, Tenants)"),PrimaryScopeRecordID:z.string().nullable().describe("\n * * Field Name: PrimaryScopeRecordID\n * * Display Name: Primary Scope Record\n * * SQL Data Type: nvarchar(100)\n * * Description: The record ID within the primary scope entity (e.g., the specific OrganizationID). Indexed for fast multi-tenant filtering."),SecondaryScopes:z.string().nullable().describe("\n * * Field Name: SecondaryScopes\n * * Display Name: Secondary Scopes\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON object containing additional scope dimensions beyond the primary scope. Example: {\"ContactID\":\"abc-123\",\"TeamID\":\"team-456\"}"),ExternalReferenceID:z.string().nullable().describe("\n * * Field Name: ExternalReferenceID\n * * Display Name: External Reference ID\n * * SQL Data Type: nvarchar(200)\n * * Description: Optional reference ID from an external system that initiated this agent run. Enables correlation between the caller's agent run and this execution. For example, when Skip SaaS is called via SkipProxyAgent, this stores the MJ-side Agent Run ID."),CompanyID:z.string().nullable().describe("\n * * Field Name: CompanyID\n * * Display Name: Company ID\n * * SQL Data Type: uniqueidentifier\n * * Description: Optional company scope for multi-tenant memory. When populated, Memory Manager uses this to scope extracted notes to the company. Flows from ExecuteAgentParams.companyId at agent invocation time."),Agent:z.string().nullable().describe("\n * * Field Name: Agent\n * * Display Name: Agent Name\n * * SQL Data Type: nvarchar(255)"),ParentRun:z.string().nullable().describe("\n * * Field Name: ParentRun\n * * Display Name: Parent Run Name\n * * SQL Data Type: nvarchar(255)"),Conversation:z.string().nullable().describe("\n * * Field Name: Conversation\n * * Display Name: Conversation Name\n * * SQL Data Type: nvarchar(255)"),User:z.string().nullable().describe("\n * * Field Name: User\n * * Display Name: User Name\n * * SQL Data Type: nvarchar(100)"),ConversationDetail:z.string().nullable().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail Name\n * * SQL Data Type: nvarchar(MAX)"),LastRun:z.string().nullable().describe("\n * * Field Name: LastRun\n * * Display Name: Last Run Name\n * * SQL Data Type: nvarchar(255)"),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration Name\n * * SQL Data Type: nvarchar(100)"),OverrideModel:z.string().nullable().describe("\n * * Field Name: OverrideModel\n * * Display Name: Override Model Name\n * * SQL Data Type: nvarchar(50)"),OverrideVendor:z.string().nullable().describe("\n * * Field Name: OverrideVendor\n * * Display Name: Override Vendor Name\n * * SQL Data Type: nvarchar(50)"),ScheduledJobRun:z.string().nullable().describe("\n * * Field Name: ScheduledJobRun\n * * Display Name: Scheduled Job Run Name\n * * SQL Data Type: nvarchar(200)"),TestRun:z.string().nullable().describe("\n * * Field Name: TestRun\n * * Display Name: Test Run Name\n * * SQL Data Type: nvarchar(255)"),PrimaryScopeEntity:z.string().nullable().describe("\n * * Field Name: PrimaryScopeEntity\n * * Display Name: Primary Scope Entity Name\n * * SQL Data Type: nvarchar(255)"),RootParentRunID:z.string().nullable().describe("\n * * Field Name: RootParentRunID\n * * Display Name: Root Parent Run\n * * SQL Data Type: uniqueidentifier"),RootLastRunID:z.string().nullable().describe("\n * * Field Name: RootLastRunID\n * * Display Name: Root Last Run\n * * SQL Data Type: uniqueidentifier")});/**
58845
58865
  * zod schema definition for the entity MJ: AI Agent Search Scopes
@@ -58851,7 +58871,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
58851
58871
  * zod schema definition for the entity MJ: AI Agent Types
58852
58872
  */var MJAIAgentTypeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: Unique identifier for the agent type"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)\n * * Description: Unique name of the agent type (e.g., \"Base\", \"CustomerSupport\", \"DataAnalysis\"). Used for programmatic identification and factory instantiation."),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed description of the agent type, its purpose, and typical use cases"),SystemPromptID:z.string().nullable().describe("\n * * Field Name: SystemPromptID\n * * Display Name: System Prompt\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)\n * * Description: Reference to the AI Prompt that contains the system-level instructions for all agents of this type. This prompt will be blended with individual agent prompts."),IsActive:z.boolean().describe("\n * * Field Name: IsActive\n * * Display Name: Active\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates whether this agent type is available for use. Inactive types cannot be assigned to new agents."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),AgentPromptPlaceholder:z.string().nullable().describe("\n * * Field Name: AgentPromptPlaceholder\n * * Display Name: Agent Prompt Placeholder\n * * SQL Data Type: nvarchar(255)\n * * Description: The placeholder name used in the system prompt template where the agent prompt result should be injected. For example, if the system prompt contains \"{{ agentPrompt }}\", this field should contain \"agentPrompt\". This enables proper hierarchical prompt execution where the agent type's system prompt acts as the parent and the agent's specific prompt acts as the child."),DriverClass:z.string().nullable().describe("\n * * Field Name: DriverClass\n * * Display Name: Driver Class\n * * SQL Data Type: nvarchar(255)\n * * Description: The class name used by the MemberJunction class factory to instantiate the specific agent type implementation. For example, \"LoopAgentType\" for a looping agent pattern. If not specified, defaults to using the agent type Name for the DriverClass lookup key."),UIFormSectionKey:z.string().nullable().describe("\n * * Field Name: UIFormSectionKey\n * * Display Name: UI Form Section Key\n * * SQL Data Type: nvarchar(500)\n * * Description: Optional Angular component key name for a subclass of BaseFormSectionComponent that provides a custom form section for this agent type. When specified, this component will be dynamically loaded and displayed as the first expandable section in the AI Agent form. This allows agent types to have specialized UI elements. The class must be registered with the MemberJunction class factory via @RegisterClass"),UIFormKey:z.string().nullable().describe("\n * * Field Name: UIFormKey\n * * Display Name: UI Form Key\n * * SQL Data Type: nvarchar(500)\n * * Description: Optional Angular component key name for a subclass of BaseFormComponent that will completely overrides the default AI Agent form for this agent type. When specified, this component will be used instead of the standard AI Agent form, allowing for completely custom form implementations. The class must be registered with the MemberJunction class factory via @RegisterClass. If both UIFormClass and UIFormSectionClass are specified, UIFormClass takes precedence."),UIFormSectionExpandedByDefault:z.boolean().describe("\n * * Field Name: UIFormSectionExpandedByDefault\n * * Display Name: UI Form Section Expanded By Default\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Determines whether the custom form section (specified by UIFormSectionClass) should be expanded by default when the AI Agent form loads. True means the section starts expanded, False means it starts collapsed. Only applies when UIFormSectionClass is specified. Defaults to 1 (expanded)."),PromptParamsSchema:z.string().nullable().describe("\n * * Field Name: PromptParamsSchema\n * * Display Name: Prompt Params Schema\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON Schema defining the available prompt parameters for this agent type. Includes property definitions with types, defaults, and descriptions. Used by agents of this type to customize which prompt sections are included in the system prompt. The schema follows JSON Schema draft-07 format."),AssignmentStrategy:z.string().nullable().describe("\n * * Field Name: AssignmentStrategy\n * * Display Name: Assignment Strategy\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON-serialized AgentRequestAssignmentStrategy defining the default assignment strategy for all agents of this type. Overridden by per-invocation or category-level strategies in the resolution chain."),DefaultStorageAccountID:z.string().nullable().describe("\n * * Field Name: DefaultStorageAccountID\n * * Display Name: Default Storage Account\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: File Storage Accounts (vwFileStorageAccounts.ID)\n * * Description: Default file storage account for agents of this type. Lowest priority in the resolution chain (Type \u2192 Category tree \u2192 Agent \u2192 Runtime override). When set, all agents of this type use this storage account unless overridden at a more specific level. FK to FileStorageAccount."),SystemPrompt:z.string().nullable().describe("\n * * Field Name: SystemPrompt\n * * Display Name: System Prompt\n * * SQL Data Type: nvarchar(255)"),DefaultStorageAccount:z.string().nullable().describe("\n * * Field Name: DefaultStorageAccount\n * * Display Name: Default Storage Account Name\n * * SQL Data Type: nvarchar(200)")});/**
58853
58873
  * zod schema definition for the entity MJ: AI Agents
58854
- */var MJAIAgentSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: The unique identifier for each AI agent. Serves as the primary key."),Name:z.string().nullable().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: The name of the AI agent."),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: A detailed description of the AI agent."),LogoURL:z.string().nullable().describe("\n * * Field Name: LogoURL\n * * Display Name: Logo URL\n * * SQL Data Type: nvarchar(255)\n * * Description: URL to an image file or base64 data URI (e.g., data:image/png;base64,...) for the agent logo. Takes precedence over IconClass in UI display."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ParentID:z.string().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent Agent\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)\n * * Description: References the parent agent in the hierarchical structure. If NULL, this is a root (top-level) agent."),ExposeAsAction:z.boolean().describe("\n * * Field Name: ExposeAsAction\n * * Display Name: Expose As Action\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, this agent can be exposed as an action for use by other agents. Only valid for root agents."),ExecutionOrder:z.number().describe("\n * * Field Name: ExecutionOrder\n * * Display Name: Execution Order\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: The order in which this agent should be executed among its siblings under the same parent."),ExecutionMode:z.union([z.literal('Parallel'),z.literal('Sequential')]).describe("\n * * Field Name: ExecutionMode\n * * Display Name: Execution Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Sequential\n * * Value List Type: List\n * * Possible Values \n * * Parallel\n * * Sequential\n * * Description: Controls how this agent's child agents are executed. Sequential runs children in order, Parallel runs them simultaneously."),EnableContextCompression:z.boolean().describe("\n * * Field Name: EnableContextCompression\n * * Display Name: Enable Context Compression\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, enables automatic compression of conversation context when the message threshold is reached."),ContextCompressionMessageThreshold:z.number().nullable().describe("\n * * Field Name: ContextCompressionMessageThreshold\n * * Display Name: Message Threshold\n * * SQL Data Type: int\n * * Description: Number of messages that triggers context compression when EnableContextCompression is true."),ContextCompressionPromptID:z.string().nullable().describe("\n * * Field Name: ContextCompressionPromptID\n * * Display Name: Compression Prompt\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)"),ContextCompressionMessageRetentionCount:z.number().nullable().describe("\n * * Field Name: ContextCompressionMessageRetentionCount\n * * Display Name: Retention Count\n * * SQL Data Type: int\n * * Description: Number of recent messages to keep uncompressed when context compression is applied."),TypeID:z.string().nullable().describe("\n * * Field Name: TypeID\n * * Display Name: Agent Type\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Types (vwAIAgentTypes.ID)\n * * Description: Reference to the AIAgentType that defines the category and system-level behavior for this agent. Cannot be null."),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Disabled\n * * Pending\n * * Description: Current status of the AI agent. Active agents can be executed, Disabled agents are inactive, and Pending agents are awaiting configuration or approval. Allowed values: Active, Disabled, Pending."),DriverClass:z.string().nullable().describe("\n * * Field Name: DriverClass\n * * Display Name: Driver Class\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional override for the class name used by the MemberJunction class factory to instantiate this specific agent. If specified, this overrides the agent type's DriverClass. Useful for specialized agent implementations."),IconClass:z.string().nullable().describe("\n * * Field Name: IconClass\n * * Display Name: Icon Class\n * * SQL Data Type: nvarchar(100)\n * * Description: Font Awesome icon class (e.g., fa-robot, fa-brain) for the agent. Used as fallback when LogoURL is not set or fails to load."),ModelSelectionMode:z.union([z.literal('Agent'),z.literal('Agent Type')]).describe("\n * * Field Name: ModelSelectionMode\n * * Display Name: Model Selection Mode\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Agent Type\n * * Value List Type: List\n * * Possible Values \n * * Agent\n * * Agent Type\n * * Description: Controls whether model selection is driven by the Agent Type's system prompt or the Agent's specific prompt. Default is Agent Type for backward compatibility."),PayloadDownstreamPaths:z.string().describe("\n * * Field Name: PayloadDownstreamPaths\n * * Display Name: Downstream Paths\n * * SQL Data Type: nvarchar(MAX)\n * * Default Value: [\"*\"]\n * * Description: JSON array of paths that define which parts of the payload should be sent downstream to sub-agents. Use [\"*\"] to send entire payload, or specify paths like [\"customer.id\", \"campaign.*\", \"analysis.sentiment\"]"),PayloadUpstreamPaths:z.string().describe("\n * * Field Name: PayloadUpstreamPaths\n * * Display Name: Upstream Paths\n * * SQL Data Type: nvarchar(MAX)\n * * Default Value: [\"*\"]\n * * Description: JSON array of paths that define which parts of the payload sub-agents are allowed to write back upstream. Use [\"*\"] to allow all writes, or specify paths like [\"analysis.results\", \"recommendations.*\"]"),PayloadSelfReadPaths:z.string().nullable().describe("\n * * Field Name: PayloadSelfReadPaths\n * * Display Name: Self Read Paths\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can read. Controls downstream data \nflow when the agent executes its own prompt step."),PayloadSelfWritePaths:z.string().nullable().describe("\n * * Field Name: PayloadSelfWritePaths\n * * Display Name: Self Write Paths\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can write back. Controls upstream \ndata flow when the agent executes its own prompt step."),PayloadScope:z.string().nullable().describe("\n * * Field Name: PayloadScope\n * * Display Name: Payload Scope\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Defines the scope/path within the parent payload that this sub-agent operates on. When set, the sub-agent receives only this portion of the payload and all change requests are relative to this scope. Format: /path/to/scope (e.g. /PropA/SubProp1)"),FinalPayloadValidation:z.string().nullable().describe("\n * * Field Name: FinalPayloadValidation\n * * Display Name: Final Payload Validation\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional JSON schema or requirements that define the expected structure and content of the agent's final payload. Used to validate the output when the agent declares success. Similar to OutputExample in AI Prompts."),FinalPayloadValidationMode:z.union([z.literal('Fail'),z.literal('Retry'),z.literal('Warn')]).describe("\n * * Field Name: FinalPayloadValidationMode\n * * Display Name: Final Validation Mode\n * * SQL Data Type: nvarchar(25)\n * * Default Value: Retry\n * * Value List Type: List\n * * Possible Values \n * * Fail\n * * Retry\n * * Warn\n * * Description: Determines how to handle validation failures when FinalPayloadValidation is specified. Options: Retry (default) - retry the agent with validation feedback, Fail - fail the agent run immediately, Warn - log a warning but allow success."),FinalPayloadValidationMaxRetries:z.number().describe("\n * * Field Name: FinalPayloadValidationMaxRetries\n * * Display Name: Max Validation Retries\n * * SQL Data Type: int\n * * Default Value: 3\n * * Description: Maximum number of retry attempts allowed when FinalPayloadValidation fails with\nRetry mode. After reaching this limit, the validation will fail permanently."),MaxCostPerRun:z.number().nullable().describe("\n * * Field Name: MaxCostPerRun\n * * Display Name: Max Cost Per Run\n * * SQL Data Type: decimal(10, 4)\n * * Description: Maximum cost in dollars allowed for a single agent run. Run will be terminated\nif this limit is exceeded."),MaxTokensPerRun:z.number().nullable().describe("\n * * Field Name: MaxTokensPerRun\n * * Display Name: Max Tokens Per Run\n * * SQL Data Type: int\n * * Description: Maximum total tokens (input + output) allowed for a single agent run. Run will\nbe terminated if this limit is exceeded."),MaxIterationsPerRun:z.number().nullable().describe("\n * * Field Name: MaxIterationsPerRun\n * * Display Name: Max Iterations Per Run\n * * SQL Data Type: int\n * * Description: Maximum number of prompt iterations allowed for a single agent run. Run will be\nterminated if this limit is exceeded."),MaxTimePerRun:z.number().nullable().describe("\n * * Field Name: MaxTimePerRun\n * * Display Name: Max Time Per Run\n * * SQL Data Type: int\n * * Description: Maximum time in seconds allowed for a single agent run. Run will be terminated\nif this limit is exceeded."),MinExecutionsPerRun:z.number().nullable().describe("\n * * Field Name: MinExecutionsPerRun\n * * Display Name: Min Executions Per Run\n * * SQL Data Type: int\n * * Description: When acting as a sub-agent, minimum number of times this agent must be executed per parent agent run"),MaxExecutionsPerRun:z.number().nullable().describe("\n * * Field Name: MaxExecutionsPerRun\n * * Display Name: Max Executions Per Run\n * * SQL Data Type: int\n * * Description: When acting as a sub-agent, maximum number of times this agent can be executed per parent agent run"),StartingPayloadValidation:z.string().nullable().describe("\n * * Field Name: StartingPayloadValidation\n * * Display Name: Starting Payload Validation\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional JSON schema validation to apply to the input payload before agent execution begins. Uses the same JSONValidator format as FinalPayloadValidation."),StartingPayloadValidationMode:z.union([z.literal('Fail'),z.literal('Warn')]).describe("\n * * Field Name: StartingPayloadValidationMode\n * * Display Name: Starting Validation Mode\n * * SQL Data Type: nvarchar(25)\n * * Default Value: Fail\n * * Value List Type: List\n * * Possible Values \n * * Fail\n * * Warn\n * * Description: Determines how to handle StartingPayloadValidation failures. Fail = reject invalid input, Warn = log warning but proceed."),DefaultPromptEffortLevel:z.number().nullable().describe("\n * * Field Name: DefaultPromptEffortLevel\n * * Display Name: Default Effort Level\n * * SQL Data Type: int\n * * Description: Default effort level for all prompts executed by this agent (1-100, where 1=minimal effort, 100=maximum effort). Takes precedence over individual prompt EffortLevel settings but can be overridden by runtime parameters. Inherited by sub-agents unless explicitly overridden."),ChatHandlingOption:z.union([z.literal('Failed'),z.literal('Retry'),z.literal('Success')]).nullable().describe("\n * * Field Name: ChatHandlingOption\n * * Display Name: Chat Handling Option\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * Failed\n * * Retry\n * * Success\n * * Description: Controls how Chat next steps are handled. When null (default), Chat propagates to caller. When set to Success, Failed, or Retry, Chat steps are remapped to that value and re-validated."),DefaultArtifactTypeID:z.string().nullable().describe("\n * * Field Name: DefaultArtifactTypeID\n * * Display Name: Default Artifact Type\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Types (vwArtifactTypes.ID)\n * * Description: Default artifact type produced by this agent. This is the primary artifact type; additional artifact types can be linked via AIAgentArtifactType junction table. Can be NULL if agent does not produce artifacts by default."),OwnerUserID:z.string().describe("\n * * Field Name: OwnerUserID\n * * Display Name: Owner\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Default Value: ECAFCCEC-6A37-EF11-86D4-000D3A4E707E\n * * Description: The user who owns and created this AI agent. Automatically set to the current user if not specified. Owner has full permissions (view, run, edit, delete) regardless of ACL entries."),InvocationMode:z.union([z.literal('Any'),z.literal('Sub-Agent'),z.literal('Top-Level')]).describe("\n * * Field Name: InvocationMode\n * * Display Name: Invocation Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Any\n * * Value List Type: List\n * * Possible Values \n * * Any\n * * Sub-Agent\n * * Top-Level\n * * Description: Controls how the agent can be invoked: Any (default - can be top-level or sub-agent), Top-Level (only callable as primary agent), Sub-Agent (only callable as sub-agent). Used to filter available agents in tools like Sage."),ArtifactCreationMode:z.union([z.literal('Always'),z.literal('Never'),z.literal('System Only')]).describe("\n * * Field Name: ArtifactCreationMode\n * * Display Name: Artifact Creation Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Always\n * * Value List Type: List\n * * Possible Values \n * * Always\n * * Never\n * * System Only\n * * Description: Controls how artifacts are created from this agent's payloads. \"Always\" creates visible artifacts, \"Never\" skips artifact creation, \"System Only\" creates hidden system artifacts."),FunctionalRequirements:z.string().nullable().describe("\n * * Field Name: FunctionalRequirements\n * * Display Name: Functional Requirements\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed markdown formatted requirements that explain the business goals of the agent without specific technical implementation details."),TechnicalDesign:z.string().nullable().describe("\n * * Field Name: TechnicalDesign\n * * Display Name: Technical Design\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed markdown that explains the structure of the agent including agent architecture, actions, sub-agents, prompts, and payload structure."),InjectNotes:z.boolean().describe("\n * * Field Name: InjectNotes\n * * Display Name: Inject Notes\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When enabled, agent notes will be automatically injected into the agent context based on scoping rules."),MaxNotesToInject:z.number().describe("\n * * Field Name: MaxNotesToInject\n * * Display Name: Max Notes to Inject\n * * SQL Data Type: int\n * * Default Value: 5\n * * Description: Maximum number of notes to inject into agent context per request."),NoteInjectionStrategy:z.union([z.literal('All'),z.literal('Recent'),z.literal('Relevant')]).describe("\n * * Field Name: NoteInjectionStrategy\n * * Display Name: Note Injection Strategy\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Relevant\n * * Value List Type: List\n * * Possible Values \n * * All\n * * Recent\n * * Relevant\n * * Description: Strategy for selecting which notes to inject: Relevant (semantic search), Recent (most recent first), or All (up to max limit)."),InjectExamples:z.boolean().describe("\n * * Field Name: InjectExamples\n * * Display Name: Inject Examples\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When enabled, agent examples will be automatically injected into the agent context based on scoping rules."),MaxExamplesToInject:z.number().describe("\n * * Field Name: MaxExamplesToInject\n * * Display Name: Max Examples to Inject\n * * SQL Data Type: int\n * * Default Value: 3\n * * Description: Maximum number of examples to inject into agent context per request."),ExampleInjectionStrategy:z.union([z.literal('Rated'),z.literal('Recent'),z.literal('Semantic')]).describe("\n * * Field Name: ExampleInjectionStrategy\n * * Display Name: Example Injection Strategy\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Semantic\n * * Value List Type: List\n * * Possible Values \n * * Rated\n * * Recent\n * * Semantic\n * * Description: Strategy for selecting which examples to inject: Semantic (vector similarity), Recent (most recent first), or Rated (highest success score first)."),IsRestricted:z.boolean().describe("\n * * Field Name: IsRestricted\n * * Display Name: Is Restricted\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, agent is restricted to system/scheduled use only and hidden from user selection, Agent Manager, and MCP/A2A discovery."),MessageMode:z.union([z.literal('All'),z.literal('Bookend'),z.literal('Latest'),z.literal('None')]).describe("\n * * Field Name: MessageMode\n * * Display Name: Message Mode\n * * SQL Data Type: nvarchar(50)\n * * Default Value: None\n * * Value List Type: List\n * * Possible Values \n * * All\n * * Bookend\n * * Latest\n * * None\n * * Description: Specifies how conversation messages are passed from parent agent to this child sub-agent (when this agent is a child via ParentID). Valid values: 'None' (fresh start - only context and task message, default), 'All' (all parent conversation history), 'Latest' (most recent MaxMessages messages), 'Bookend' (first 2 messages + most recent MaxMessages-2 messages with indicator between). Stored on child agent because each child has only one parent relationship."),MaxMessages:z.number().nullable().describe("\n * * Field Name: MaxMessages\n * * Display Name: Max Messages\n * * SQL Data Type: int\n * * Description: Maximum number of conversation messages to include when MessageMode is 'Latest' or 'Bookend'. NULL means no limit (ignored for 'None' and 'All' modes). Must be greater than 0 if specified. For 'Latest': keeps most recent N messages. For 'Bookend': keeps first 2 + most recent (N-2) messages."),AttachmentStorageProviderID:z.string().nullable().describe("\n * * Field Name: AttachmentStorageProviderID\n * * Display Name: Storage Provider\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: File Storage Providers (vwFileStorageProviders.ID)\n * * Description: File storage provider for large attachments. Overrides the default from AIConfiguration. NULL uses system default."),AttachmentRootPath:z.string().nullable().describe("\n * * Field Name: AttachmentRootPath\n * * Display Name: Root Path\n * * SQL Data Type: nvarchar(500)\n * * Description: Base path within the storage provider for this agent's attachments. Agent run ID and sequence number are appended to create unique paths. Format: /folder/subfolder"),InlineStorageThresholdBytes:z.number().nullable().describe("\n * * Field Name: InlineStorageThresholdBytes\n * * Display Name: Inline Storage Threshold\n * * SQL Data Type: int\n * * Description: File size threshold for inline storage. Files <= this size are stored as base64 inline, larger files use MJStorage. NULL uses system default (1MB). Set to 0 to always use MJStorage."),AgentTypePromptParams:z.string().nullable().describe("\n * * Field Name: AgentTypePromptParams\n * * Display Name: Prompt Parameters\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON object containing parameter values that customize how this agent's type-level system prompt is rendered. The schema is defined by the agent type's PromptParamsSchema field. Allows per-agent control over which prompt sections are included, enabling token savings by excluding unused documentation."),ScopeConfig:z.string().nullable().describe("\n * * Field Name: ScopeConfig\n * * Display Name: Scope Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON configuration defining scope dimensions for multi-tenant deployments. Example: {\"dimensions\":[{\"name\":\"OrganizationID\",\"entityId\":\"...\",\"isPrimary\":true,\"required\":true},{\"name\":\"ContactID\",\"entityId\":\"...\",\"isPrimary\":false,\"required\":false}],\"inheritanceMode\":\"cascading\"}"),NoteRetentionDays:z.number().nullable().describe("\n * * Field Name: NoteRetentionDays\n * * Display Name: Note Retention Days\n * * SQL Data Type: int\n * * Default Value: 90\n * * Description: Number of days to retain notes before archiving due to inactivity. Default 90. NULL means use system default."),ExampleRetentionDays:z.number().nullable().describe("\n * * Field Name: ExampleRetentionDays\n * * Display Name: Example Retention Days\n * * SQL Data Type: int\n * * Default Value: 180\n * * Description: Number of days to retain examples before archiving due to inactivity. Default 180. NULL means use system default."),AutoArchiveEnabled:z.boolean().describe("\n * * Field Name: AutoArchiveEnabled\n * * Display Name: Auto Archive Enabled\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether automatic archival of stale notes/examples is enabled for this agent. Default true."),RerankerConfiguration:z.string().nullable().describe("\n * * Field Name: RerankerConfiguration\n * * Display Name: Reranker Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON configuration for optional reranking of retrieved memory items. Schema: { enabled: boolean, rerankerModelId: string, retrievalMultiplier: number (default 3), minRelevanceThreshold: number (default 0.5), rerankPromptId?: string, contextFields?: string[], fallbackOnError: boolean (default true) }. When null or disabled, vector search results are used directly without reranking."),CategoryID:z.string().nullable().describe("\n * * Field Name: CategoryID\n * * Display Name: Category\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Categories (vwAIAgentCategories.ID)\n * * Description: Foreign key to AIAgentCategory. Assigns this agent to an organizational category for grouping, filtering, and inherited assignment strategy resolution."),AllowEphemeralClientTools:z.boolean().describe("\n * * Field Name: AllowEphemeralClientTools\n * * Display Name: Allow Ephemeral Tools\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true (default), this agent accepts runtime-registered ephemeral client tools that are not defined in metadata. Set to false for agents that require strict tool governance."),DefaultStorageAccountID:z.string().nullable().describe("\n * * Field Name: DefaultStorageAccountID\n * * Display Name: Default Storage Account\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: File Storage Accounts (vwFileStorageAccounts.ID)\n * * Description: Default file storage account for this specific agent. Overrides both Type-level and Category-level defaults. Can be further overridden at runtime via ExecuteAgentParams.override.storageAccountId. FK to FileStorageAccount."),SearchScopeAccess:z.union([z.literal('All'),z.literal('Assigned'),z.literal('None')]).describe("\n * * Field Name: SearchScopeAccess\n * * Display Name: Search Scope Access\n * * SQL Data Type: nvarchar(20)\n * * Default Value: None\n * * Value List Type: List\n * * Possible Values \n * * All\n * * Assigned\n * * None\n * * Description: Controls the agent's search capability. All = may use any scope including Global; search action does not restrict. Assigned = may use ONLY scopes explicitly linked via AIAgentSearchScope; scoped search action enforces this. None = agent has no search capability; the scoped search action rejects all requests."),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent Name\n * * SQL Data Type: nvarchar(255)"),ContextCompressionPrompt:z.string().nullable().describe("\n * * Field Name: ContextCompressionPrompt\n * * Display Name: Compression Prompt Name\n * * SQL Data Type: nvarchar(255)"),Type:z.string().nullable().describe("\n * * Field Name: Type\n * * Display Name: Type Name\n * * SQL Data Type: nvarchar(100)"),DefaultArtifactType:z.string().nullable().describe("\n * * Field Name: DefaultArtifactType\n * * Display Name: Default Artifact Type Name\n * * SQL Data Type: nvarchar(100)"),OwnerUser:z.string().describe("\n * * Field Name: OwnerUser\n * * Display Name: Owner Name\n * * SQL Data Type: nvarchar(100)"),AttachmentStorageProvider:z.string().nullable().describe("\n * * Field Name: AttachmentStorageProvider\n * * Display Name: Storage Provider Name\n * * SQL Data Type: nvarchar(50)"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category Name\n * * SQL Data Type: nvarchar(200)"),DefaultStorageAccount:z.string().nullable().describe("\n * * Field Name: DefaultStorageAccount\n * * Display Name: Default Storage Account Name\n * * SQL Data Type: nvarchar(200)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent\n * * SQL Data Type: uniqueidentifier")});/**
58874
+ */var MJAIAgentSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()\n * * Description: The unique identifier for each AI agent. Serves as the primary key."),Name:z.string().nullable().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: The name of the AI agent."),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: A detailed description of the AI agent."),LogoURL:z.string().nullable().describe("\n * * Field Name: LogoURL\n * * Display Name: Logo URL\n * * SQL Data Type: nvarchar(255)\n * * Description: URL to an image file or base64 data URI (e.g., data:image/png;base64,...) for the agent logo. Takes precedence over IconClass in UI display."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ParentID:z.string().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent Agent\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)\n * * Description: References the parent agent in the hierarchical structure. If NULL, this is a root (top-level) agent."),ExposeAsAction:z.boolean().describe("\n * * Field Name: ExposeAsAction\n * * Display Name: Expose As Action\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, this agent can be exposed as an action for use by other agents. Only valid for root agents."),ExecutionOrder:z.number().describe("\n * * Field Name: ExecutionOrder\n * * Display Name: Execution Order\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: The order in which this agent should be executed among its siblings under the same parent."),ExecutionMode:z.union([z.literal('Parallel'),z.literal('Sequential')]).describe("\n * * Field Name: ExecutionMode\n * * Display Name: Execution Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Sequential\n * * Value List Type: List\n * * Possible Values \n * * Parallel\n * * Sequential\n * * Description: Controls how this agent's child agents are executed. Sequential runs children in order, Parallel runs them simultaneously."),EnableContextCompression:z.boolean().describe("\n * * Field Name: EnableContextCompression\n * * Display Name: Enable Context Compression\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, enables automatic compression of conversation context when the message threshold is reached."),ContextCompressionMessageThreshold:z.number().nullable().describe("\n * * Field Name: ContextCompressionMessageThreshold\n * * Display Name: Compression Message Threshold\n * * SQL Data Type: int\n * * Description: Number of messages that triggers context compression when EnableContextCompression is true."),ContextCompressionPromptID:z.string().nullable().describe("\n * * Field Name: ContextCompressionPromptID\n * * Display Name: Compression Prompt\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)"),ContextCompressionMessageRetentionCount:z.number().nullable().describe("\n * * Field Name: ContextCompressionMessageRetentionCount\n * * Display Name: Compression Retention Count\n * * SQL Data Type: int\n * * Description: Number of recent messages to keep uncompressed when context compression is applied."),TypeID:z.string().nullable().describe("\n * * Field Name: TypeID\n * * Display Name: Agent Type\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Types (vwAIAgentTypes.ID)\n * * Description: Reference to the AIAgentType that defines the category and system-level behavior for this agent. Cannot be null."),Status:z.union([z.literal('Active'),z.literal('Disabled'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Pending\n * * Value List Type: List\n * * Possible Values \n * * Active\n * * Disabled\n * * Pending\n * * Description: Current status of the AI agent. Active agents can be executed, Disabled agents are inactive, and Pending agents are awaiting configuration or approval. Allowed values: Active, Disabled, Pending."),DriverClass:z.string().nullable().describe("\n * * Field Name: DriverClass\n * * Display Name: Driver Class\n * * SQL Data Type: nvarchar(255)\n * * Description: Optional override for the class name used by the MemberJunction class factory to instantiate this specific agent. If specified, this overrides the agent type's DriverClass. Useful for specialized agent implementations."),IconClass:z.string().nullable().describe("\n * * Field Name: IconClass\n * * Display Name: Icon Class\n * * SQL Data Type: nvarchar(100)\n * * Description: Font Awesome icon class (e.g., fa-robot, fa-brain) for the agent. Used as fallback when LogoURL is not set or fails to load."),ModelSelectionMode:z.union([z.literal('Agent'),z.literal('Agent Type')]).describe("\n * * Field Name: ModelSelectionMode\n * * Display Name: Model Selection Mode\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Agent Type\n * * Value List Type: List\n * * Possible Values \n * * Agent\n * * Agent Type\n * * Description: Controls whether model selection is driven by the Agent Type's system prompt or the Agent's specific prompt. Default is Agent Type for backward compatibility."),PayloadDownstreamPaths:z.string().describe("\n * * Field Name: PayloadDownstreamPaths\n * * Display Name: Payload Downstream Paths\n * * SQL Data Type: nvarchar(MAX)\n * * Default Value: [\"*\"]\n * * Description: JSON array of paths that define which parts of the payload should be sent downstream to sub-agents. Use [\"*\"] to send entire payload, or specify paths like [\"customer.id\", \"campaign.*\", \"analysis.sentiment\"]"),PayloadUpstreamPaths:z.string().describe("\n * * Field Name: PayloadUpstreamPaths\n * * Display Name: Payload Upstream Paths\n * * SQL Data Type: nvarchar(MAX)\n * * Default Value: [\"*\"]\n * * Description: JSON array of paths that define which parts of the payload sub-agents are allowed to write back upstream. Use [\"*\"] to allow all writes, or specify paths like [\"analysis.results\", \"recommendations.*\"]"),PayloadSelfReadPaths:z.string().nullable().describe("\n * * Field Name: PayloadSelfReadPaths\n * * Display Name: Payload Self Read Paths\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can read. Controls downstream data \nflow when the agent executes its own prompt step."),PayloadSelfWritePaths:z.string().nullable().describe("\n * * Field Name: PayloadSelfWritePaths\n * * Display Name: Payload Self Write Paths\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can write back. Controls upstream \ndata flow when the agent executes its own prompt step."),PayloadScope:z.string().nullable().describe("\n * * Field Name: PayloadScope\n * * Display Name: Payload Scope\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Defines the scope/path within the parent payload that this sub-agent operates on. When set, the sub-agent receives only this portion of the payload and all change requests are relative to this scope. Format: /path/to/scope (e.g. /PropA/SubProp1)"),FinalPayloadValidation:z.string().nullable().describe("\n * * Field Name: FinalPayloadValidation\n * * Display Name: Final Payload Validation\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional JSON schema or requirements that define the expected structure and content of the agent's final payload. Used to validate the output when the agent declares success. Similar to OutputExample in AI Prompts."),FinalPayloadValidationMode:z.union([z.literal('Fail'),z.literal('Retry'),z.literal('Warn')]).describe("\n * * Field Name: FinalPayloadValidationMode\n * * Display Name: Final Payload Validation Mode\n * * SQL Data Type: nvarchar(25)\n * * Default Value: Retry\n * * Value List Type: List\n * * Possible Values \n * * Fail\n * * Retry\n * * Warn\n * * Description: Determines how to handle validation failures when FinalPayloadValidation is specified. Options: Retry (default) - retry the agent with validation feedback, Fail - fail the agent run immediately, Warn - log a warning but allow success."),FinalPayloadValidationMaxRetries:z.number().describe("\n * * Field Name: FinalPayloadValidationMaxRetries\n * * Display Name: Final Payload Validation Max Retries\n * * SQL Data Type: int\n * * Default Value: 3\n * * Description: Maximum number of retry attempts allowed when FinalPayloadValidation fails with\nRetry mode. After reaching this limit, the validation will fail permanently."),MaxCostPerRun:z.number().nullable().describe("\n * * Field Name: MaxCostPerRun\n * * Display Name: Max Cost Per Run\n * * SQL Data Type: decimal(10, 4)\n * * Description: Maximum cost in dollars allowed for a single agent run. Run will be terminated\nif this limit is exceeded."),MaxTokensPerRun:z.number().nullable().describe("\n * * Field Name: MaxTokensPerRun\n * * Display Name: Max Tokens Per Run\n * * SQL Data Type: int\n * * Description: Maximum total tokens (input + output) allowed for a single agent run. Run will\nbe terminated if this limit is exceeded."),MaxIterationsPerRun:z.number().nullable().describe("\n * * Field Name: MaxIterationsPerRun\n * * Display Name: Max Iterations Per Run\n * * SQL Data Type: int\n * * Description: Maximum number of prompt iterations allowed for a single agent run. Run will be\nterminated if this limit is exceeded."),MaxTimePerRun:z.number().nullable().describe("\n * * Field Name: MaxTimePerRun\n * * Display Name: Max Time Per Run\n * * SQL Data Type: int\n * * Description: Maximum time in seconds allowed for a single agent run. Run will be terminated\nif this limit is exceeded."),MinExecutionsPerRun:z.number().nullable().describe("\n * * Field Name: MinExecutionsPerRun\n * * Display Name: Min Executions Per Run\n * * SQL Data Type: int\n * * Description: When acting as a sub-agent, minimum number of times this agent must be executed per parent agent run"),MaxExecutionsPerRun:z.number().nullable().describe("\n * * Field Name: MaxExecutionsPerRun\n * * Display Name: Max Executions Per Run\n * * SQL Data Type: int\n * * Description: When acting as a sub-agent, maximum number of times this agent can be executed per parent agent run"),StartingPayloadValidation:z.string().nullable().describe("\n * * Field Name: StartingPayloadValidation\n * * Display Name: Starting Payload Validation\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional JSON schema validation to apply to the input payload before agent execution begins. Uses the same JSONValidator format as FinalPayloadValidation."),StartingPayloadValidationMode:z.union([z.literal('Fail'),z.literal('Warn')]).describe("\n * * Field Name: StartingPayloadValidationMode\n * * Display Name: Starting Payload Validation Mode\n * * SQL Data Type: nvarchar(25)\n * * Default Value: Fail\n * * Value List Type: List\n * * Possible Values \n * * Fail\n * * Warn\n * * Description: Determines how to handle StartingPayloadValidation failures. Fail = reject invalid input, Warn = log warning but proceed."),DefaultPromptEffortLevel:z.number().nullable().describe("\n * * Field Name: DefaultPromptEffortLevel\n * * Display Name: Default Prompt Effort Level\n * * SQL Data Type: int\n * * Description: Default effort level for all prompts executed by this agent (1-100, where 1=minimal effort, 100=maximum effort). Takes precedence over individual prompt EffortLevel settings but can be overridden by runtime parameters. Inherited by sub-agents unless explicitly overridden."),ChatHandlingOption:z.union([z.literal('Failed'),z.literal('Retry'),z.literal('Success')]).nullable().describe("\n * * Field Name: ChatHandlingOption\n * * Display Name: Chat Handling Option\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * Failed\n * * Retry\n * * Success\n * * Description: Controls how Chat next steps are handled. When null (default), Chat propagates to caller. When set to Success, Failed, or Retry, Chat steps are remapped to that value and re-validated."),DefaultArtifactTypeID:z.string().nullable().describe("\n * * Field Name: DefaultArtifactTypeID\n * * Display Name: Default Artifact Type\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Types (vwArtifactTypes.ID)\n * * Description: Default artifact type produced by this agent. This is the primary artifact type; additional artifact types can be linked via AIAgentArtifactType junction table. Can be NULL if agent does not produce artifacts by default."),OwnerUserID:z.string().describe("\n * * Field Name: OwnerUserID\n * * Display Name: Owner\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Default Value: ECAFCCEC-6A37-EF11-86D4-000D3A4E707E\n * * Description: The user who owns and created this AI agent. Automatically set to the current user if not specified. Owner has full permissions (view, run, edit, delete) regardless of ACL entries."),InvocationMode:z.union([z.literal('Any'),z.literal('Sub-Agent'),z.literal('Top-Level')]).describe("\n * * Field Name: InvocationMode\n * * Display Name: Invocation Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Any\n * * Value List Type: List\n * * Possible Values \n * * Any\n * * Sub-Agent\n * * Top-Level\n * * Description: Controls how the agent can be invoked: Any (default - can be top-level or sub-agent), Top-Level (only callable as primary agent), Sub-Agent (only callable as sub-agent). Used to filter available agents in tools like Sage."),ArtifactCreationMode:z.union([z.literal('Always'),z.literal('Never'),z.literal('System Only')]).describe("\n * * Field Name: ArtifactCreationMode\n * * Display Name: Artifact Creation Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Always\n * * Value List Type: List\n * * Possible Values \n * * Always\n * * Never\n * * System Only\n * * Description: Controls how artifacts are created from this agent's payloads. \"Always\" creates visible artifacts, \"Never\" skips artifact creation, \"System Only\" creates hidden system artifacts."),FunctionalRequirements:z.string().nullable().describe("\n * * Field Name: FunctionalRequirements\n * * Display Name: Functional Requirements\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed markdown formatted requirements that explain the business goals of the agent without specific technical implementation details."),TechnicalDesign:z.string().nullable().describe("\n * * Field Name: TechnicalDesign\n * * Display Name: Technical Design\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed markdown that explains the structure of the agent including agent architecture, actions, sub-agents, prompts, and payload structure."),InjectNotes:z.boolean().describe("\n * * Field Name: InjectNotes\n * * Display Name: Inject Notes\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When enabled, agent notes will be automatically injected into the agent context based on scoping rules."),MaxNotesToInject:z.number().describe("\n * * Field Name: MaxNotesToInject\n * * Display Name: Max Notes To Inject\n * * SQL Data Type: int\n * * Default Value: 5\n * * Description: Maximum number of notes to inject into agent context per request."),NoteInjectionStrategy:z.union([z.literal('All'),z.literal('Recent'),z.literal('Relevant')]).describe("\n * * Field Name: NoteInjectionStrategy\n * * Display Name: Note Injection Strategy\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Relevant\n * * Value List Type: List\n * * Possible Values \n * * All\n * * Recent\n * * Relevant\n * * Description: Strategy for selecting which notes to inject: Relevant (semantic search), Recent (most recent first), or All (up to max limit)."),InjectExamples:z.boolean().describe("\n * * Field Name: InjectExamples\n * * Display Name: Inject Examples\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When enabled, agent examples will be automatically injected into the agent context based on scoping rules."),MaxExamplesToInject:z.number().describe("\n * * Field Name: MaxExamplesToInject\n * * Display Name: Max Examples To Inject\n * * SQL Data Type: int\n * * Default Value: 3\n * * Description: Maximum number of examples to inject into agent context per request."),ExampleInjectionStrategy:z.union([z.literal('Rated'),z.literal('Recent'),z.literal('Semantic')]).describe("\n * * Field Name: ExampleInjectionStrategy\n * * Display Name: Example Injection Strategy\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Semantic\n * * Value List Type: List\n * * Possible Values \n * * Rated\n * * Recent\n * * Semantic\n * * Description: Strategy for selecting which examples to inject: Semantic (vector similarity), Recent (most recent first), or Rated (highest success score first)."),IsRestricted:z.boolean().describe("\n * * Field Name: IsRestricted\n * * Display Name: Is Restricted\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: When true, agent is restricted to system/scheduled use only and hidden from user selection, Agent Manager, and MCP/A2A discovery."),MessageMode:z.union([z.literal('All'),z.literal('Bookend'),z.literal('Latest'),z.literal('None')]).describe("\n * * Field Name: MessageMode\n * * Display Name: Message Mode\n * * SQL Data Type: nvarchar(50)\n * * Default Value: None\n * * Value List Type: List\n * * Possible Values \n * * All\n * * Bookend\n * * Latest\n * * None\n * * Description: Specifies how conversation messages are passed from parent agent to this child sub-agent (when this agent is a child via ParentID). Valid values: 'None' (fresh start - only context and task message, default), 'All' (all parent conversation history), 'Latest' (most recent MaxMessages messages), 'Bookend' (first 2 messages + most recent MaxMessages-2 messages with indicator between). Stored on child agent because each child has only one parent relationship."),MaxMessages:z.number().nullable().describe("\n * * Field Name: MaxMessages\n * * Display Name: Max Messages\n * * SQL Data Type: int\n * * Description: Maximum number of conversation messages to include when MessageMode is 'Latest' or 'Bookend'. NULL means no limit (ignored for 'None' and 'All' modes). Must be greater than 0 if specified. For 'Latest': keeps most recent N messages. For 'Bookend': keeps first 2 + most recent (N-2) messages."),AttachmentStorageProviderID:z.string().nullable().describe("\n * * Field Name: AttachmentStorageProviderID\n * * Display Name: Attachment Storage Provider\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: File Storage Providers (vwFileStorageProviders.ID)\n * * Description: File storage provider for large attachments. Overrides the default from AIConfiguration. NULL uses system default."),AttachmentRootPath:z.string().nullable().describe("\n * * Field Name: AttachmentRootPath\n * * Display Name: Attachment Root Path\n * * SQL Data Type: nvarchar(500)\n * * Description: Base path within the storage provider for this agent's attachments. Agent run ID and sequence number are appended to create unique paths. Format: /folder/subfolder"),InlineStorageThresholdBytes:z.number().nullable().describe("\n * * Field Name: InlineStorageThresholdBytes\n * * Display Name: Inline Storage Threshold Bytes\n * * SQL Data Type: int\n * * Description: File size threshold for inline storage. Files <= this size are stored as base64 inline, larger files use MJStorage. NULL uses system default (1MB). Set to 0 to always use MJStorage."),AgentTypePromptParams:z.string().nullable().describe("\n * * Field Name: AgentTypePromptParams\n * * Display Name: Agent Type Prompt Params\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON object containing parameter values that customize how this agent's type-level system prompt is rendered. The schema is defined by the agent type's PromptParamsSchema field. Allows per-agent control over which prompt sections are included, enabling token savings by excluding unused documentation."),ScopeConfig:z.string().nullable().describe("\n * * Field Name: ScopeConfig\n * * Display Name: Scope Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON configuration defining scope dimensions for multi-tenant deployments. Example: {\"dimensions\":[{\"name\":\"OrganizationID\",\"entityId\":\"...\",\"isPrimary\":true,\"required\":true},{\"name\":\"ContactID\",\"entityId\":\"...\",\"isPrimary\":false,\"required\":false}],\"inheritanceMode\":\"cascading\"}"),NoteRetentionDays:z.number().nullable().describe("\n * * Field Name: NoteRetentionDays\n * * Display Name: Note Retention Days\n * * SQL Data Type: int\n * * Default Value: 90\n * * Description: Number of days to retain notes before archiving due to inactivity. Default 90. NULL means use system default."),ExampleRetentionDays:z.number().nullable().describe("\n * * Field Name: ExampleRetentionDays\n * * Display Name: Example Retention Days\n * * SQL Data Type: int\n * * Default Value: 180\n * * Description: Number of days to retain examples before archiving due to inactivity. Default 180. NULL means use system default."),AutoArchiveEnabled:z.boolean().describe("\n * * Field Name: AutoArchiveEnabled\n * * Display Name: Auto Archive Enabled\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether automatic archival of stale notes/examples is enabled for this agent. Default true."),RerankerConfiguration:z.string().nullable().describe("\n * * Field Name: RerankerConfiguration\n * * Display Name: Reranker Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON configuration for optional reranking of retrieved memory items. Schema: { enabled: boolean, rerankerModelId: string, retrievalMultiplier: number (default 3), minRelevanceThreshold: number (default 0.5), rerankPromptId?: string, contextFields?: string[], fallbackOnError: boolean (default true) }. When null or disabled, vector search results are used directly without reranking."),CategoryID:z.string().nullable().describe("\n * * Field Name: CategoryID\n * * Display Name: Category\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Agent Categories (vwAIAgentCategories.ID)\n * * Description: Foreign key to AIAgentCategory. Assigns this agent to an organizational category for grouping, filtering, and inherited assignment strategy resolution."),AllowEphemeralClientTools:z.boolean().describe("\n * * Field Name: AllowEphemeralClientTools\n * * Display Name: Allow Ephemeral Client Tools\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: When true (default), this agent accepts runtime-registered ephemeral client tools that are not defined in metadata. Set to false for agents that require strict tool governance."),DefaultStorageAccountID:z.string().nullable().describe("\n * * Field Name: DefaultStorageAccountID\n * * Display Name: Default Storage Account\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: File Storage Accounts (vwFileStorageAccounts.ID)\n * * Description: Default file storage account for this specific agent. Overrides both Type-level and Category-level defaults. Can be further overridden at runtime via ExecuteAgentParams.override.storageAccountId. FK to FileStorageAccount."),SearchScopeAccess:z.union([z.literal('All'),z.literal('Assigned'),z.literal('None')]).describe("\n * * Field Name: SearchScopeAccess\n * * Display Name: Search Scope Access\n * * SQL Data Type: nvarchar(20)\n * * Default Value: None\n * * Value List Type: List\n * * Possible Values \n * * All\n * * Assigned\n * * None\n * * Description: Controls the agent's search capability. All = may use any scope including Global; search action does not restrict. Assigned = may use ONLY scopes explicitly linked via AIAgentSearchScope; scoped search action enforces this. None = agent has no search capability; the scoped search action rejects all requests."),AcceptUnregisteredFiles:z.boolean().describe("\n * * Field Name: AcceptUnregisteredFiles\n * * Display Name: Accept Unregistered Files\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Per-agent opt-in to a Generic Binary fallback for file uploads whose MIME type does not match any registered Artifact Type. When false (default), unrecognized uploads are rejected at upload time with an actionable error. When true, unrecognized uploads resolve to the Generic Binary artifact type, exposing only get_full and get_metadata tools. Scoped per agent \u2014 there is no system-wide global flag."),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent Name\n * * SQL Data Type: nvarchar(255)"),ContextCompressionPrompt:z.string().nullable().describe("\n * * Field Name: ContextCompressionPrompt\n * * Display Name: Compression Prompt Text\n * * SQL Data Type: nvarchar(255)"),Type:z.string().nullable().describe("\n * * Field Name: Type\n * * Display Name: Type\n * * SQL Data Type: nvarchar(100)"),DefaultArtifactType:z.string().nullable().describe("\n * * Field Name: DefaultArtifactType\n * * Display Name: Default Artifact Type Name\n * * SQL Data Type: nvarchar(100)"),OwnerUser:z.string().describe("\n * * Field Name: OwnerUser\n * * Display Name: Owner Name\n * * SQL Data Type: nvarchar(100)"),AttachmentStorageProvider:z.string().nullable().describe("\n * * Field Name: AttachmentStorageProvider\n * * Display Name: Attachment Storage Provider Name\n * * SQL Data Type: nvarchar(50)"),Category:z.string().nullable().describe("\n * * Field Name: Category\n * * Display Name: Category Name\n * * SQL Data Type: nvarchar(200)"),DefaultStorageAccount:z.string().nullable().describe("\n * * Field Name: DefaultStorageAccount\n * * Display Name: Default Storage Account Name\n * * SQL Data Type: nvarchar(200)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent\n * * SQL Data Type: uniqueidentifier")});/**
58855
58875
  * zod schema definition for the entity MJ: AI Architectures
58856
58876
  */var MJAIArchitectureSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Architecture Name\n * * SQL Data Type: nvarchar(100)"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)"),Category:z.union([z.literal('Core'),z.literal('Hybrid'),z.literal('Optimization'),z.literal('Specialized')]).describe("\n * * Field Name: Category\n * * Display Name: Category\n * * SQL Data Type: nvarchar(50)\n * * Value List Type: List\n * * Possible Values \n * * Core\n * * Hybrid\n * * Optimization\n * * Specialized"),ParentArchitectureID:z.string().nullable().describe("\n * * Field Name: ParentArchitectureID\n * * Display Name: Parent Architecture ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Architectures (vwAIArchitectures.ID)\n * * Description: Hierarchical relationship to parent architecture. Used for variants like Sparse Transformer being a child of Transformer."),WikipediaURL:z.string().nullable().describe("\n * * Field Name: WikipediaURL\n * * Display Name: Wikipedia URL\n * * SQL Data Type: nvarchar(500)"),YearIntroduced:z.number().nullable().describe("\n * * Field Name: YearIntroduced\n * * Display Name: Year Introduced\n * * SQL Data Type: int"),KeyPaper:z.string().nullable().describe("\n * * Field Name: KeyPaper\n * * Display Name: Key Paper\n * * SQL Data Type: nvarchar(500)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ParentArchitecture:z.string().nullable().describe("\n * * Field Name: ParentArchitecture\n * * Display Name: Parent Architecture\n * * SQL Data Type: nvarchar(100)"),RootParentArchitectureID:z.string().nullable().describe("\n * * Field Name: RootParentArchitectureID\n * * Display Name: Root Parent Architecture ID\n * * SQL Data Type: uniqueidentifier")});/**
58857
58877
  * zod schema definition for the entity MJ: AI Client Tool Definitions
@@ -58935,13 +58955,13 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
58935
58955
  * zod schema definition for the entity MJ: Artifact Permissions
58936
58956
  */var MJArtifactPermissionSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactID:z.string().describe("\n * * Field Name: ArtifactID\n * * Display Name: Artifact ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifacts (vwArtifacts.ID)"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),CanRead:z.boolean().describe("\n * * Field Name: CanRead\n * * Display Name: Can Read\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Whether the user can view/read the artifact"),CanEdit:z.boolean().describe("\n * * Field Name: CanEdit\n * * Display Name: Can Edit\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether the user can modify the artifact or create new versions"),CanDelete:z.boolean().describe("\n * * Field Name: CanDelete\n * * Display Name: Can Delete\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether the user can delete the artifact"),CanShare:z.boolean().describe("\n * * Field Name: CanShare\n * * Display Name: Can Share\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: Whether the user can share the artifact with other users"),SharedByUserID:z.string().nullable().describe("\n * * Field Name: SharedByUserID\n * * Display Name: Shared By User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: Foreign key to the User who shared this artifact (if shared)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Artifact:z.string().describe("\n * * Field Name: Artifact\n * * Display Name: Artifact\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),SharedByUser:z.string().nullable().describe("\n * * Field Name: SharedByUser\n * * Display Name: Shared By User\n * * SQL Data Type: nvarchar(100)")});/**
58937
58957
  * zod schema definition for the entity MJ: Artifact Types
58938
- */var MJArtifactTypeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)\n * * Description: Display name of the artifact type"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed description of the artifact type"),ContentType:z.string().describe("\n * * Field Name: ContentType\n * * Display Name: Content Type\n * * SQL Data Type: nvarchar(100)\n * * Description: MIME type or content identifier for this artifact type"),IsEnabled:z.boolean().describe("\n * * Field Name: IsEnabled\n * * Display Name: Is Enabled\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if this artifact type is currently available for use"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ParentID:z.string().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Types (vwArtifactTypes.ID)\n * * Description: Parent artifact type ID for hierarchical artifact type organization. Child types inherit ExtractRules from parent but can override."),ExtractRules:z.string().nullable().describe("\n * * Field Name: ExtractRules\n * * Display Name: Extraction Rules\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON array of extraction rules defining how to extract attributes from artifact content. Each rule has: name (string), description (string), type (TypeScript type), standardProperty ('name'|'description'|'displayMarkdown'|'displayHtml'|null), extractor (JavaScript code string). Child types inherit parent rules and can override by name."),DriverClass:z.string().nullable().describe("\n * * Field Name: DriverClass\n * * Display Name: Driver Class\n * * SQL Data Type: nvarchar(255)\n * * Description: Driver class name for the artifact viewer plugin. References Angular component registered with @RegisterClass decorator."),Icon:z.string().nullable().describe("\n * * Field Name: Icon\n * * Display Name: Icon\n * * SQL Data Type: nvarchar(255)\n * * Description: Font Awesome icon class name for displaying this artifact type in the UI (e.g., fa-file-code, fa-chart-line)"),ContentCategory:z.union([z.literal('File'),z.literal('Text')]).describe("\n * * Field Name: ContentCategory\n * * Display Name: Content Category\n * * SQL Data Type: nvarchar(10)\n * * Default Value: Text\n * * Value List Type: List\n * * Possible Values \n * * File\n * * Text\n * * Description: Classifies whether this artifact type stores text content ('Text', the default for all existing types) or a binary file in MJStorage ('File'). Used by AgentRunner and viewer components to route file-based artifacts correctly."),ToolLibraryClass:z.string().nullable().describe("\n * * Field Name: ToolLibraryClass\n * * Display Name: Tool Library Class\n * * SQL Data Type: nvarchar(100)\n * * Description: Class name for the BaseArtifactToolLibrary subclass that provides type-specific artifact exploration tools for agents. Resolved via ClassFactory. When NULL, ArtifactToolManager uses name-based fallback resolution."),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent\n * * SQL Data Type: nvarchar(100)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent ID\n * * SQL Data Type: uniqueidentifier")});/**
58958
+ */var MJArtifactTypeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(100)\n * * Description: Display name of the artifact type"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed description of the artifact type"),ContentType:z.string().describe("\n * * Field Name: ContentType\n * * Display Name: Content Type\n * * SQL Data Type: nvarchar(100)\n * * Description: MIME type or content identifier for this artifact type"),IsEnabled:z.boolean().describe("\n * * Field Name: IsEnabled\n * * Display Name: Is Enabled\n * * SQL Data Type: bit\n * * Default Value: 1\n * * Description: Indicates if this artifact type is currently available for use"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ParentID:z.string().nullable().describe("\n * * Field Name: ParentID\n * * Display Name: Parent ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Types (vwArtifactTypes.ID)\n * * Description: Parent artifact type ID for hierarchical artifact type organization. Child types inherit ExtractRules from parent but can override."),ExtractRules:z.string().nullable().describe("\n * * Field Name: ExtractRules\n * * Display Name: Extraction Rules\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON array of extraction rules defining how to extract attributes from artifact content. Each rule has: name (string), description (string), type (TypeScript type), standardProperty ('name'|'description'|'displayMarkdown'|'displayHtml'|null), extractor (JavaScript code string). Child types inherit parent rules and can override by name."),DriverClass:z.string().nullable().describe("\n * * Field Name: DriverClass\n * * Display Name: Driver Class\n * * SQL Data Type: nvarchar(255)\n * * Description: Driver class name for the artifact viewer plugin. References Angular component registered with @RegisterClass decorator."),Icon:z.string().nullable().describe("\n * * Field Name: Icon\n * * Display Name: Icon\n * * SQL Data Type: nvarchar(255)\n * * Description: Font Awesome icon class name for displaying this artifact type in the UI (e.g., fa-file-code, fa-chart-line)"),ContentCategory:z.union([z.literal('File'),z.literal('Text')]).describe("\n * * Field Name: ContentCategory\n * * Display Name: Content Category\n * * SQL Data Type: nvarchar(10)\n * * Default Value: Text\n * * Value List Type: List\n * * Possible Values \n * * File\n * * Text\n * * Description: Classifies whether this artifact type stores text content ('Text', the default for all existing types) or a binary file in MJStorage ('File'). Used by AgentRunner and viewer components to route file-based artifacts correctly."),ToolLibraryClass:z.string().nullable().describe("\n * * Field Name: ToolLibraryClass\n * * Display Name: Tool Library Class\n * * SQL Data Type: nvarchar(100)\n * * Description: Class name for the BaseArtifactToolLibrary subclass that provides type-specific artifact exploration tools for agents. Resolved via ClassFactory. When NULL, ArtifactToolManager uses name-based fallback resolution."),Priority:z.number().describe("\n * * Field Name: Priority\n * * Display Name: Priority\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Deterministic tiebreaker when multiple Artifact Types match the same MIME pattern. Higher values win. Within a specificity tier (exact > subtype-wildcard), the resolver sorts by Priority desc, then SystemSupplied = false beats SystemSupplied = true, then lowest ID wins."),DefaultDeliveryMode:z.union([z.literal('Inline'),z.literal('ToolsOnly')]).describe("\n * * Field Name: DefaultDeliveryMode\n * * Display Name: Default Delivery Mode\n * * SQL Data Type: nvarchar(20)\n * * Default Value: ToolsOnly\n * * Value List Type: List\n * * Possible Values \n * * Inline\n * * ToolsOnly\n * * Description: How artifacts of this type are delivered to the LLM by default. Inline: emitted as an inline content block (image_url, audio_url, small text, etc.) when the model supports the modality and the size is under the inline cap. ToolsOnly: never inlined; the agent reaches the bytes only through tool calls (get_full, library-specific tools). Per-instance override is one-way via ConversationArtifactVersion.ForceToolsOnly \u2014 an instance can opt out of inline but never opt in when the type default is ToolsOnly."),SystemSupplied:z.boolean().describe("\n * * Field Name: SystemSupplied\n * * Display Name: System Supplied\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: True for Artifact Types shipped as part of the MemberJunction default registry (JSON, PDF, Office variants, Image/Audio/Video, Generic Text, Generic Binary). False for user/org-supplied customizations. Used as a tiebreaker in MIME pattern resolution: user customizations win over shipped defaults at equal Priority."),Parent:z.string().nullable().describe("\n * * Field Name: Parent\n * * Display Name: Parent\n * * SQL Data Type: nvarchar(100)"),RootParentID:z.string().nullable().describe("\n * * Field Name: RootParentID\n * * Display Name: Root Parent ID\n * * SQL Data Type: uniqueidentifier")});/**
58939
58959
  * zod schema definition for the entity MJ: Artifact Uses
58940
58960
  */var MJArtifactUseSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: The specific version of the artifact being used."),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: The user performing the action."),UsageType:z.union([z.literal('Exported'),z.literal('Opened'),z.literal('Saved'),z.literal('Shared'),z.literal('Viewed')]).describe("\n * * Field Name: UsageType\n * * Display Name: Usage Type\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * Exported\n * * Opened\n * * Saved\n * * Shared\n * * Viewed\n * * Description: Type of usage: Viewed (artifact displayed), Opened (artifact accessed), Shared (artifact shared with others), Saved (artifact bookmarked), or Exported (artifact downloaded)."),UsageContext:z.string().nullable().describe("\n * * Field Name: UsageContext\n * * Display Name: Usage Context\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional JSON context with additional metadata about the usage event (e.g., source page, referrer, device info)."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ArtifactVersion:z.string().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)")});/**
58941
58961
  * zod schema definition for the entity MJ: Artifact Version Attributes
58942
58962
  */var MJArtifactVersionAttributeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: The artifact version this attribute belongs to"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of the extracted attribute (matches ExtractRule.name)"),Type:z.string().describe("\n * * Field Name: Type\n * * Display Name: Type\n * * SQL Data Type: nvarchar(500)\n * * Description: TypeScript type definition of the value (e.g., 'string', 'number', 'Date', 'Array<{x: number, y: string}>')"),Value:z.string().nullable().describe("\n * * Field Name: Value\n * * Display Name: Value\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON-serialized extracted value"),StandardProperty:z.union([z.literal('description'),z.literal('displayHtml'),z.literal('displayMarkdown'),z.literal('name')]).nullable().describe("\n * * Field Name: StandardProperty\n * * Display Name: Standard Property\n * * SQL Data Type: nvarchar(50)\n * * Value List Type: List\n * * Possible Values \n * * description\n * * displayHtml\n * * displayMarkdown\n * * name\n * * Description: Maps this attribute to a standard property for UI rendering: 'name', 'description', 'displayMarkdown', 'displayHtml', or NULL for custom attributes"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ArtifactVersion:z.string().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version\n * * SQL Data Type: nvarchar(255)")});/**
58943
58963
  * zod schema definition for the entity MJ: Artifact Versions
58944
- */var MJArtifactVersionSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactID:z.string().describe("\n * * Field Name: ArtifactID\n * * Display Name: Artifact\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifacts (vwArtifacts.ID)"),VersionNumber:z.number().describe("\n * * Field Name: VersionNumber\n * * Display Name: Version Number\n * * SQL Data Type: int\n * * Description: Sequential version number for this artifact"),Content:z.string().nullable().describe("\n * * Field Name: Content\n * * Display Name: Content\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The content of the artifact at this version"),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON configuration for this version"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: User comments specific to this version"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ContentHash:z.string().nullable().describe("\n * * Field Name: ContentHash\n * * Display Name: Content Hash\n * * SQL Data Type: nvarchar(500)\n * * Description: SHA-256 hash of the Content field for duplicate detection and version comparison"),Name:z.string().nullable().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of this artifact version. Can differ from Artifact.Name as it may evolve with versions."),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of this artifact version. Can differ from Artifact.Description as it may evolve with versions."),FileID:z.string().nullable().describe("\n * * Field Name: FileID\n * * Display Name: File\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)\n * * Description: Foreign key to the MJ: Files entity. When ContentMode is 'File', this references the binary file stored in MJStorage. NULL when ContentMode is 'Text'."),ContentMode:z.union([z.literal('File'),z.literal('Text')]).describe("\n * * Field Name: ContentMode\n * * Display Name: Content Mode\n * * SQL Data Type: nvarchar(10)\n * * Default Value: Text\n * * Value List Type: List\n * * Possible Values \n * * File\n * * Text\n * * Description: Determines how artifact content is stored. 'Text' (default) means the Content column holds the data. 'File' means FileID references a binary file in MJStorage and Content is unused."),MimeType:z.string().nullable().describe("\n * * Field Name: MimeType\n * * Display Name: MIME Type\n * * SQL Data Type: nvarchar(200)\n * * Description: MIME type of the stored file (e.g. application/pdf). Denormalized from the File entity for display without joins. Only populated when ContentMode is 'File'."),FileName:z.string().nullable().describe("\n * * Field Name: FileName\n * * Display Name: File Name\n * * SQL Data Type: nvarchar(500)\n * * Description: Original filename of the stored file (e.g. report.pdf). Denormalized from the File entity for display without joins. Only populated when ContentMode is 'File'."),ContentSizeBytes:z.number().nullable().describe("\n * * Field Name: ContentSizeBytes\n * * Display Name: Content Size Bytes\n * * SQL Data Type: bigint\n * * Description: Size of the stored file in bytes. Denormalized for display without loading the file. Only populated when ContentMode is 'File'."),Artifact:z.string().describe("\n * * Field Name: Artifact\n * * Display Name: Artifact\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),File:z.string().nullable().describe("\n * * Field Name: File\n * * Display Name: File\n * * SQL Data Type: nvarchar(500)")});/**
58964
+ */var MJArtifactVersionSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ArtifactID:z.string().describe("\n * * Field Name: ArtifactID\n * * Display Name: Artifact\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifacts (vwArtifacts.ID)"),VersionNumber:z.number().describe("\n * * Field Name: VersionNumber\n * * Display Name: Version Number\n * * SQL Data Type: int\n * * Description: Sequential version number for this artifact"),Content:z.string().nullable().describe("\n * * Field Name: Content\n * * Display Name: Content\n * * SQL Data Type: nvarchar(MAX)\n * * Description: The content of the artifact at this version"),Configuration:z.string().nullable().describe("\n * * Field Name: Configuration\n * * Display Name: Configuration\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON configuration for this version"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: User comments specific to this version"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ContentHash:z.string().nullable().describe("\n * * Field Name: ContentHash\n * * Display Name: Content Hash\n * * SQL Data Type: nvarchar(500)\n * * Description: SHA-256 hash of the Content field for duplicate detection and version comparison"),Name:z.string().nullable().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Name of this artifact version. Can differ from Artifact.Name as it may evolve with versions."),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of this artifact version. Can differ from Artifact.Description as it may evolve with versions."),FileID:z.string().nullable().describe("\n * * Field Name: FileID\n * * Display Name: File ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)\n * * Description: Foreign key to the MJ: Files entity. When ContentMode is 'File', this references the binary file stored in MJStorage. NULL when ContentMode is 'Text'."),ContentMode:z.union([z.literal('File'),z.literal('Text')]).describe("\n * * Field Name: ContentMode\n * * Display Name: Content Mode\n * * SQL Data Type: nvarchar(10)\n * * Default Value: Text\n * * Value List Type: List\n * * Possible Values \n * * File\n * * Text\n * * Description: Determines how artifact content is stored. 'Text' (default) means the Content column holds the data. 'File' means FileID references a binary file in MJStorage and Content is unused."),MimeType:z.string().nullable().describe("\n * * Field Name: MimeType\n * * Display Name: MIME Type\n * * SQL Data Type: nvarchar(200)\n * * Description: MIME type of the stored file (e.g. application/pdf). Denormalized from the File entity for display without joins. Only populated when ContentMode is 'File'."),FileName:z.string().nullable().describe("\n * * Field Name: FileName\n * * Display Name: File Name\n * * SQL Data Type: nvarchar(500)\n * * Description: Original filename of the stored file (e.g. report.pdf). Denormalized from the File entity for display without joins. Only populated when ContentMode is 'File'."),ContentSizeBytes:z.number().nullable().describe("\n * * Field Name: ContentSizeBytes\n * * Display Name: Content Size (Bytes)\n * * SQL Data Type: bigint\n * * Description: Size of the stored file in bytes. Denormalized for display without loading the file. Only populated when ContentMode is 'File'."),ForceToolsOnly:z.boolean().describe("\n * * Field Name: ForceToolsOnly\n * * Display Name: Force Tools Only\n * * SQL Data Type: bit\n * * Default Value: 0\n * * Description: One-way override that forces this artifact version to be delivered via tools regardless of the Artifact Type's DefaultDeliveryMode. When true, the resolver never emits an inline content block for this version. There is no inverse override \u2014 an instance cannot be widened from ToolsOnly to Inline. Default false."),Artifact:z.string().describe("\n * * Field Name: Artifact\n * * Display Name: Artifact\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),File:z.string().nullable().describe("\n * * Field Name: File\n * * Display Name: File\n * * SQL Data Type: nvarchar(500)")});/**
58945
58965
  * zod schema definition for the entity MJ: Artifacts
58946
58966
  */var MJArtifactSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EnvironmentID:z.string().describe("\n * * Field Name: EnvironmentID\n * * Display Name: Environment ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Environments (vwEnvironments.ID)\n * * Default Value: F51358F3-9447-4176-B313-BF8025FD8D09"),Name:z.string().describe("\n * * Field Name: Name\n * * Display Name: Name\n * * SQL Data Type: nvarchar(255)\n * * Description: Display name for the artifact"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Detailed description of the artifact contents and purpose"),TypeID:z.string().describe("\n * * Field Name: TypeID\n * * Display Name: Type ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Types (vwArtifactTypes.ID)"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: User comments about the artifact"),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Visibility:z.union([z.literal('Always'),z.literal('System Only')]).describe("\n * * Field Name: Visibility\n * * Display Name: Visibility\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Always\n * * Value List Type: List\n * * Possible Values \n * * Always\n * * System Only\n * * Description: Controls artifact visibility in user-facing lists. \"Always\" shows in all lists, \"System Only\" hides from normal views (for system-generated artifacts like agent routing payloads)."),Environment:z.string().describe("\n * * Field Name: Environment\n * * Display Name: Environment\n * * SQL Data Type: nvarchar(255)"),Type:z.string().describe("\n * * Field Name: Type\n * * Display Name: Type\n * * SQL Data Type: nvarchar(100)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)")});/**
58947
58967
  * zod schema definition for the entity MJ: Audit Log Types
@@ -59033,7 +59053,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
59033
59053
  * zod schema definition for the entity MJ: Conversation Detail Artifacts
59034
59054
  */var MJConversationDetailArtifactSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ConversationDetailID:z.string().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)\n * * Description: Foreign key to ConversationDetail - the conversation message associated with this artifact"),ArtifactVersionID:z.string().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: Foreign key to ArtifactVersion - the specific artifact version linked to this conversation message"),Direction:z.union([z.literal('Input'),z.literal('Output')]).describe("\n * * Field Name: Direction\n * * Display Name: Direction\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Output\n * * Value List Type: List\n * * Possible Values \n * * Input\n * * Output\n * * Description: Direction of artifact flow: Input (fed to agent) or Output (produced by agent)"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ConversationDetail:z.string().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail Summary\n * * SQL Data Type: nvarchar(MAX)"),ArtifactVersion:z.string().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version Summary\n * * SQL Data Type: nvarchar(255)")});/**
59035
59055
  * zod schema definition for the entity MJ: Conversation Detail Attachments
59036
- */var MJConversationDetailAttachmentSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ConversationDetailID:z.string().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)"),ModalityID:z.string().describe("\n * * Field Name: ModalityID\n * * Display Name: Modality\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Modalities (vwAIModalities.ID)\n * * Description: The modality type of this attachment (Image, Audio, Video, File, etc.). References the AIModality table."),MimeType:z.string().describe("\n * * Field Name: MimeType\n * * Display Name: MIME Type\n * * SQL Data Type: nvarchar(100)\n * * Description: MIME type of the attachment (e.g., image/png, video/mp4, audio/mp3)."),FileName:z.string().nullable().describe("\n * * Field Name: FileName\n * * Display Name: File Name\n * * SQL Data Type: nvarchar(4000)\n * * Description: Original filename of the attachment. Supports long cloud storage paths up to 4000 characters."),FileSizeBytes:z.number().describe("\n * * Field Name: FileSizeBytes\n * * Display Name: File Size (Bytes)\n * * SQL Data Type: int\n * * Description: Size of the attachment in bytes."),Width:z.number().nullable().describe("\n * * Field Name: Width\n * * Display Name: Width\n * * SQL Data Type: int\n * * Description: Width in pixels for images and videos."),Height:z.number().nullable().describe("\n * * Field Name: Height\n * * Display Name: Height\n * * SQL Data Type: int\n * * Description: Height in pixels for images and videos."),DurationSeconds:z.number().nullable().describe("\n * * Field Name: DurationSeconds\n * * Display Name: Duration (Seconds)\n * * SQL Data Type: int\n * * Description: Duration in seconds for audio and video files."),InlineData:z.string().nullable().describe("\n * * Field Name: InlineData\n * * Display Name: Inline Data\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Base64-encoded file data for small attachments stored inline. Mutually exclusive with FileID - exactly one must be populated."),FileID:z.string().nullable().describe("\n * * Field Name: FileID\n * * Display Name: File ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)\n * * Description: Reference to File entity for large attachments stored in MJStorage. Mutually exclusive with InlineData - exactly one must be populated."),DisplayOrder:z.number().describe("\n * * Field Name: DisplayOrder\n * * Display Name: Display Order\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Display order for multiple attachments in a message. Lower numbers appear first."),ThumbnailBase64:z.string().nullable().describe("\n * * Field Name: ThumbnailBase64\n * * Display Name: Thumbnail\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Base64-encoded thumbnail image for quick preview display. Max 200px on longest side."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of the attachment providing context about its content and purpose."),ConversationDetail:z.string().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail\n * * SQL Data Type: nvarchar(MAX)"),Modality:z.string().describe("\n * * Field Name: Modality\n * * Display Name: Modality\n * * SQL Data Type: nvarchar(50)"),File:z.string().nullable().describe("\n * * Field Name: File\n * * Display Name: File\n * * SQL Data Type: nvarchar(500)")});/**
59056
+ */var MJConversationDetailAttachmentSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ConversationDetailID:z.string().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)"),ModalityID:z.string().describe("\n * * Field Name: ModalityID\n * * Display Name: Modality\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: AI Modalities (vwAIModalities.ID)\n * * Description: The modality type of this attachment (Image, Audio, Video, File, etc.). References the AIModality table."),MimeType:z.string().describe("\n * * Field Name: MimeType\n * * Display Name: MIME Type\n * * SQL Data Type: nvarchar(100)\n * * Description: MIME type of the attachment (e.g., image/png, video/mp4, audio/mp3)."),FileName:z.string().nullable().describe("\n * * Field Name: FileName\n * * Display Name: File Name\n * * SQL Data Type: nvarchar(4000)\n * * Description: Original filename of the attachment. Supports long cloud storage paths up to 4000 characters."),FileSizeBytes:z.number().describe("\n * * Field Name: FileSizeBytes\n * * Display Name: File Size (Bytes)\n * * SQL Data Type: int\n * * Description: Size of the attachment in bytes."),Width:z.number().nullable().describe("\n * * Field Name: Width\n * * Display Name: Width\n * * SQL Data Type: int\n * * Description: Width in pixels for images and videos."),Height:z.number().nullable().describe("\n * * Field Name: Height\n * * Display Name: Height\n * * SQL Data Type: int\n * * Description: Height in pixels for images and videos."),DurationSeconds:z.number().nullable().describe("\n * * Field Name: DurationSeconds\n * * Display Name: Duration (Seconds)\n * * SQL Data Type: int\n * * Description: Duration in seconds for audio and video files."),InlineData:z.string().nullable().describe("\n * * Field Name: InlineData\n * * Display Name: Inline Data\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Base64-encoded file data for small attachments stored inline. Mutually exclusive with FileID - exactly one must be populated."),FileID:z.string().nullable().describe("\n * * Field Name: FileID\n * * Display Name: File ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)\n * * Description: Reference to File entity for large attachments stored in MJStorage. Mutually exclusive with InlineData - exactly one must be populated."),DisplayOrder:z.number().describe("\n * * Field Name: DisplayOrder\n * * Display Name: Display Order\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Display order for multiple attachments in a message. Lower numbers appear first."),ThumbnailBase64:z.string().nullable().describe("\n * * Field Name: ThumbnailBase64\n * * Display Name: Thumbnail\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Base64-encoded thumbnail image for quick preview display. Max 200px on longest side."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Description:z.string().nullable().describe("\n * * Field Name: Description\n * * Display Name: Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Description of the attachment providing context about its content and purpose."),ArtifactVersionID:z.string().nullable().describe("\n * * Field Name: ArtifactVersionID\n * * Display Name: Artifact Version ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)\n * * Description: Foreign key to the ArtifactVersion created alongside this attachment by the storage-unification path. When set, the agent resolver routes via the artifact path (manifest + tool dispatch) and skips inline embedding of the attachment to avoid double-processing. NULL for pre-v5.35 attachment rows authored before storage unification."),ConversationDetail:z.string().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail Record\n * * SQL Data Type: nvarchar(MAX)"),Modality:z.string().describe("\n * * Field Name: Modality\n * * Display Name: Modality Record\n * * SQL Data Type: nvarchar(50)"),File:z.string().nullable().describe("\n * * Field Name: File\n * * Display Name: File Record\n * * SQL Data Type: nvarchar(500)"),ArtifactVersion:z.string().nullable().describe("\n * * Field Name: ArtifactVersion\n * * Display Name: Artifact Version Record\n * * SQL Data Type: nvarchar(255)")});/**
59037
59057
  * zod schema definition for the entity MJ: Conversation Detail Ratings
59038
59058
  */var MJConversationDetailRatingSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),ConversationDetailID:z.string().describe("\n * * Field Name: ConversationDetailID\n * * Display Name: Conversation Detail\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)\n * * Description: The conversation message being rated."),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)\n * * Description: The user providing the rating."),Rating:z.number().describe("\n * * Field Name: Rating\n * * Display Name: Rating\n * * SQL Data Type: int\n * * Description: Rating on a 1-10 scale where 1 is thumbs down and 10 is thumbs up."),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional textual feedback from the user about this message."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),ConversationDetail:z.string().describe("\n * * Field Name: ConversationDetail\n * * Display Name: Conversation Detail\n * * SQL Data Type: nvarchar(MAX)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)")});/**
59039
59059
  * zod schema definition for the entity MJ: Conversation Details
@@ -59261,7 +59281,7 @@ function _regenerator(){/*! regenerator-runtime -- Copyright (c) 2014-present, F
59261
59281
  * zod schema definition for the entity MJ: Record Changes
59262
59282
  */var MJRecordChangeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record ID\n * * SQL Data Type: nvarchar(750)\n * * Description: Field RecordID for entity Record Changes."),UserID:z.string().describe("\n * * Field Name: UserID\n * * Display Name: User ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)"),Type:z.union([z.literal('Create'),z.literal('Delete'),z.literal('Snapshot'),z.literal('Update')]).describe("\n * * Field Name: Type\n * * Display Name: Change Type\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Create\n * * Value List Type: List\n * * Possible Values \n * * Create\n * * Delete\n * * Snapshot\n * * Update\n * * Description: Create, Update, or Delete"),Source:z.union([z.literal('External'),z.literal('Internal'),z.literal('Restore')]).describe("\n * * Field Name: Source\n * * Display Name: Source\n * * SQL Data Type: nvarchar(20)\n * * Default Value: Internal\n * * Value List Type: List\n * * Possible Values \n * * External\n * * Internal\n * * Restore\n * * Description: Internal or External"),ChangedAt:z.date().describe("\n * * Field Name: ChangedAt\n * * Display Name: Changed At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()\n * * Description: The date/time that the change occured."),ChangesJSON:z.string().describe("\n * * Field Name: ChangesJSON\n * * Display Name: Changes JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON structure that describes what was changed in a structured format."),ChangesDescription:z.string().describe("\n * * Field Name: ChangesDescription\n * * Display Name: Changes Description\n * * SQL Data Type: nvarchar(MAX)\n * * Description: A generated, human-readable description of what was changed."),FullRecordJSON:z.string().describe("\n * * Field Name: FullRecordJSON\n * * Display Name: Full Record JSON\n * * SQL Data Type: nvarchar(MAX)\n * * Description: A complete snapshot of the record AFTER the change was applied in a JSON format that can be parsed."),Status:z.union([z.literal('Complete'),z.literal('Error'),z.literal('Pending')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Complete\n * * Value List Type: List\n * * Possible Values \n * * Complete\n * * Error\n * * Pending\n * * Description: For internal record changes generated within MJ, the status is immediately Complete. For external changes that are detected, the workflow starts off as Pending, then In Progress and finally either Complete or Error"),ErrorLog:z.string().nullable().describe("\n * * Field Name: ErrorLog\n * * Display Name: Error Log\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Field ErrorLog for entity Record Changes."),ReplayRunID:z.string().nullable().describe("\n * * Field Name: ReplayRunID\n * * Display Name: Replay Run ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Change Replay Runs (vwRecordChangeReplayRuns.ID)"),IntegrationID:z.string().nullable().describe("\n * * Field Name: IntegrationID\n * * Display Name: Integration ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Integrations (vwIntegrations.ID)"),Comments:z.string().nullable().describe("\n * * Field Name: Comments\n * * Display Name: Comments\n * * SQL Data Type: nvarchar(MAX)"),CreatedAt:z.date().describe("\n * * Field Name: CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()\n * * Description: Field CreatedAt for entity Record Changes."),UpdatedAt:z.date().describe("\n * * Field Name: UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()\n * * Description: Field UpdatedAt for entity Record Changes."),RestoredFromID:z.string().nullable().describe("\n * * Field Name: RestoredFromID\n * * Display Name: Restored From ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Record Changes (vwRecordChanges.ID)\n * * Description: When this RecordChange was produced by a restore operation, points at the historical RecordChange whose state was restored. NULL for ordinary changes. Together with Source='Restore' this builds the version-chain lineage for auditing and timeline navigation."),RestoreReason:z.string().nullable().describe("\n * * Field Name: RestoreReason\n * * Display Name: Restore Reason\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Optional user-entered explanation captured at restore time. Persisted for audit purposes (regulated industries often require a reason for every reversal). NULL when the user did not enter one or when the change was not a restore."),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),User:z.string().describe("\n * * Field Name: User\n * * Display Name: User\n * * SQL Data Type: nvarchar(100)"),ReplayRun:z.string().nullable().describe("\n * * Field Name: ReplayRun\n * * Display Name: Replay Run\n * * SQL Data Type: nvarchar(100)"),Integration:z.string().nullable().describe("\n * * Field Name: Integration\n * * Display Name: Integration\n * * SQL Data Type: nvarchar(100)"),RestoredFrom:z.string().nullable().describe("\n * * Field Name: RestoredFrom\n * * Display Name: Restored From\n * * SQL Data Type: nvarchar(750)"),RootRestoredFromID:z.string().nullable().describe("\n * * Field Name: RootRestoredFromID\n * * Display Name: Root Restored From ID\n * * SQL Data Type: uniqueidentifier")});/**
59263
59283
  * zod schema definition for the entity MJ: Record Geo Codes
59264
- */var MJRecordGeoCodeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Foreign key to Entity. Identifies which entity this geocode belongs to."),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record\n * * SQL Data Type: nvarchar(450)\n * * Description: MJ composite primary key format string identifying the source record (e.g., \"ID|<uuid>\"). Max 450 chars for SQL Server index support."),LocationType:z.string().describe("\n * * Field Name: LocationType\n * * Display Name: Location Type\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Primary\n * * Description: Discriminator for multi-location entities. Default \"Primary\" for single-address entities. Multi-address examples: \"Home\", \"Business\", \"Mailing\", \"PO Box\"."),Latitude:z.number().nullable().describe("\n * * Field Name: Latitude\n * * Display Name: Latitude\n * * SQL Data Type: decimal(10, 6)\n * * Description: Geocoded latitude coordinate. NULL when Status is \"pending\" or \"failed\"."),Longitude:z.number().nullable().describe("\n * * Field Name: Longitude\n * * Display Name: Longitude\n * * SQL Data Type: decimal(10, 6)\n * * Description: Geocoded longitude coordinate. NULL when Status is \"pending\" or \"failed\"."),Precision:z.union([z.literal('city'),z.literal('country'),z.literal('county'),z.literal('exact'),z.literal('postal_code'),z.literal('state_province')]).nullable().describe("\n * * Field Name: Precision\n * * Display Name: Precision\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * city\n * * country\n * * county\n * * exact\n * * postal_code\n * * state_province\n * * Description: Precision level of the geocoded result: exact (street address), postal_code, city, county, state_province, or country."),CountryID:z.string().nullable().describe("\n * * Field Name: CountryID\n * * Display Name: Country\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Countries (vwCountries.ID)\n * * Description: Optional FK to Country reference table. Populated alongside lat/lng to enable choropleth grouping without reverse-geocoding at render time."),StateProvinceID:z.string().nullable().describe("\n * * Field Name: StateProvinceID\n * * Display Name: State Province\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: State Provinces (vwStateProvinces.ID)\n * * Description: Optional FK to StateProvince reference table. Populated alongside lat/lng to enable state-level choropleth grouping."),Status:z.union([z.literal('failed'),z.literal('pending'),z.literal('success')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: pending\n * * Value List Type: List\n * * Possible Values \n * * failed\n * * pending\n * * success\n * * Description: Current geocoding status: \"pending\" (awaiting geocode), \"success\" (geocoded), or \"failed\" (geocoding error). Used by scheduled job for retry logic."),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Error details when Status is \"failed\". Captures API error messages, rate limit info, etc. for debugging."),RetryCount:z.number().describe("\n * * Field Name: RetryCount\n * * Display Name: Retry Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Number of geocoding attempts. Used for exponential backoff in the scheduled retry job. Stops retrying at configurable maxRetries (default 3)."),SourceFieldHash:z.string().nullable().describe("\n * * Field Name: SourceFieldHash\n * * Display Name: Source Field Hash\n * * SQL Data Type: nvarchar(64)\n * * Description: SHA-256 hash of the source field values that produced this geocode. When source fields change on save, the hash won't match and re-geocoding is triggered. Format: SHA-256(concat(field1, \"|\", field2, ...))."),GeocodedAt:z.date().nullable().describe("\n * * Field Name: GeocodedAt\n * * Display Name: Geocoded At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp of when geocoding was last attempted (success or failure)."),GeocodingSource:z.union([z.literal('google'),z.literal('ip_geolocation'),z.literal('manual'),z.literal('native'),z.literal('reference_data'),z.literal('reverse')]).nullable().describe("\n * * Field Name: GeocodingSource\n * * Display Name: Geocoding Source\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * google\n * * ip_geolocation\n * * manual\n * * native\n * * reference_data\n * * reverse\n * * Description: How this geocode was produced: google (Google Geocoding API), reference_data (resolved via Country/StateProvince tables), manual (user-entered), ip_geolocation (IP lookup), native (copied from entity lat/lng fields), reverse (reverse geocode from coordinates)."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),Country:z.string().nullable().describe("\n * * Field Name: Country\n * * Display Name: Country Name\n * * SQL Data Type: nvarchar(200)"),StateProvince:z.string().nullable().describe("\n * * Field Name: StateProvince\n * * Display Name: State Province Name\n * * SQL Data Type: nvarchar(200)")});/**
59284
+ */var MJRecordGeoCodeSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),EntityID:z.string().describe("\n * * Field Name: EntityID\n * * Display Name: Entity\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)\n * * Description: Foreign key to Entity. Identifies which entity this geocode belongs to."),RecordID:z.string().describe("\n * * Field Name: RecordID\n * * Display Name: Record\n * * SQL Data Type: nvarchar(450)\n * * Description: MJ composite primary key format string identifying the source record (e.g., \"ID|<uuid>\"). Max 450 chars for SQL Server index support."),LocationType:z.string().describe("\n * * Field Name: LocationType\n * * Display Name: Location Type\n * * SQL Data Type: nvarchar(50)\n * * Default Value: Primary\n * * Description: Discriminator for multi-location entities. Default \"Primary\" for single-address entities. Multi-address examples: \"Home\", \"Business\", \"Mailing\", \"PO Box\"."),Latitude:z.number().nullable().describe("\n * * Field Name: Latitude\n * * Display Name: Latitude\n * * SQL Data Type: decimal(10, 6)\n * * Description: Geocoded latitude coordinate. NULL when Status is \"pending\" or \"failed\"."),Longitude:z.number().nullable().describe("\n * * Field Name: Longitude\n * * Display Name: Longitude\n * * SQL Data Type: decimal(10, 6)\n * * Description: Geocoded longitude coordinate. NULL when Status is \"pending\" or \"failed\"."),Precision:z.union([z.literal('city'),z.literal('country'),z.literal('county'),z.literal('exact'),z.literal('postal_code'),z.literal('state_province')]).nullable().describe("\n * * Field Name: Precision\n * * Display Name: Precision\n * * SQL Data Type: nvarchar(20)\n * * Value List Type: List\n * * Possible Values \n * * city\n * * country\n * * county\n * * exact\n * * postal_code\n * * state_province\n * * Description: Precision level of the geocoded result: exact (street address), postal_code, city, county, state_province, or country."),CountryID:z.string().nullable().describe("\n * * Field Name: CountryID\n * * Display Name: Country\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Countries (vwCountries.ID)\n * * Description: Optional FK to Country reference table. Populated alongside lat/lng to enable choropleth grouping without reverse-geocoding at render time."),StateProvinceID:z.string().nullable().describe("\n * * Field Name: StateProvinceID\n * * Display Name: State Province\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: State Provinces (vwStateProvinces.ID)\n * * Description: Optional FK to StateProvince reference table. Populated alongside lat/lng to enable state-level choropleth grouping."),Status:z.union([z.literal('failed'),z.literal('pending'),z.literal('success')]).describe("\n * * Field Name: Status\n * * Display Name: Status\n * * SQL Data Type: nvarchar(20)\n * * Default Value: pending\n * * Value List Type: List\n * * Possible Values \n * * failed\n * * pending\n * * success\n * * Description: Current geocoding status: \"pending\" (awaiting geocode), \"success\" (geocoded), or \"failed\" (geocoding error). Used by scheduled job for retry logic."),ErrorMessage:z.string().nullable().describe("\n * * Field Name: ErrorMessage\n * * Display Name: Error Message\n * * SQL Data Type: nvarchar(MAX)\n * * Description: Error details when Status is \"failed\". Captures API error messages, rate limit info, etc. for debugging."),RetryCount:z.number().describe("\n * * Field Name: RetryCount\n * * Display Name: Retry Count\n * * SQL Data Type: int\n * * Default Value: 0\n * * Description: Number of geocoding attempts. Used for exponential backoff in the scheduled retry job. Stops retrying at configurable maxRetries (default 3)."),SourceFieldHash:z.string().nullable().describe("\n * * Field Name: SourceFieldHash\n * * Display Name: Source Field Hash\n * * SQL Data Type: nvarchar(64)\n * * Description: SHA-256 hash of the source field values that produced this geocode. When source fields change on save, the hash won't match and re-geocoding is triggered. Format: SHA-256(concat(field1, \"|\", field2, ...))."),GeocodedAt:z.date().nullable().describe("\n * * Field Name: GeocodedAt\n * * Display Name: Geocoded At\n * * SQL Data Type: datetimeoffset\n * * Description: Timestamp of when geocoding was last attempted (success or failure)."),GeocodingSource:z.union([z.literal('geocodio'),z.literal('google'),z.literal('here'),z.literal('ip_geolocation'),z.literal('manual'),z.literal('native'),z.literal('reference_data'),z.literal('reverse')]).nullable().describe("\n * * Field Name: GeocodingSource\n * * Display Name: Geocoding Source\n * * SQL Data Type: nvarchar(30)\n * * Value List Type: List\n * * Possible Values \n * * geocodio\n * * google\n * * here\n * * ip_geolocation\n * * manual\n * * native\n * * reference_data\n * * reverse\n * * Description: Source that produced this geocode. One of: google, geocodio, here, reference_data, manual, ip_geolocation, native, reverse."),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),Entity:z.string().describe("\n * * Field Name: Entity\n * * Display Name: Entity Name\n * * SQL Data Type: nvarchar(255)"),Country:z.string().nullable().describe("\n * * Field Name: Country\n * * Display Name: Country Name\n * * SQL Data Type: nvarchar(200)"),StateProvince:z.string().nullable().describe("\n * * Field Name: StateProvince\n * * Display Name: State Province Name\n * * SQL Data Type: nvarchar(200)")});/**
59265
59285
  * zod schema definition for the entity MJ: Record Links
59266
59286
  */var MJRecordLinkSchema=z.object({ID:z.string().describe("\n * * Field Name: ID\n * * Display Name: ID\n * * SQL Data Type: uniqueidentifier\n * * Default Value: newsequentialid()"),SourceEntityID:z.string().describe("\n * * Field Name: SourceEntityID\n * * Display Name: Source Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),SourceRecordID:z.string().describe("\n * * Field Name: SourceRecordID\n * * Display Name: Source Record ID\n * * SQL Data Type: nvarchar(500)\n * * Description: Primary key value(s) of the source record - scalar for simple PKs or JSON KeyValuePair array for composite PKs"),TargetEntityID:z.string().describe("\n * * Field Name: TargetEntityID\n * * Display Name: Target Entity ID\n * * SQL Data Type: uniqueidentifier\n * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)"),TargetRecordID:z.string().describe("\n * * Field Name: TargetRecordID\n * * Display Name: Target Record ID\n * * SQL Data Type: nvarchar(500)\n * * Description: Primary key value(s) of the target record - scalar for simple PKs or JSON KeyValuePair array for composite PKs"),LinkType:z.string().nullable().describe("\n * * Field Name: LinkType\n * * Display Name: Link Type\n * * SQL Data Type: nvarchar(50)\n * * Description: Application-specific relationship type describing how the records are related"),Sequence:z.number().nullable().describe("\n * * Field Name: Sequence\n * * Display Name: Sequence\n * * SQL Data Type: int\n * * Description: Display sequence for ordering linked records in UI"),Metadata:z.string().nullable().describe("\n * * Field Name: Metadata\n * * Display Name: Metadata\n * * SQL Data Type: nvarchar(MAX)\n * * Description: JSON field for storing additional link-specific metadata"),__mj_CreatedAt:z.date().describe("\n * * Field Name: __mj_CreatedAt\n * * Display Name: Created At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),__mj_UpdatedAt:z.date().describe("\n * * Field Name: __mj_UpdatedAt\n * * Display Name: Updated At\n * * SQL Data Type: datetimeoffset\n * * Default Value: getutcdate()"),SourceEntity:z.string().describe("\n * * Field Name: SourceEntity\n * * Display Name: Source Entity\n * * SQL Data Type: nvarchar(255)"),TargetEntity:z.string().describe("\n * * Field Name: TargetEntity\n * * Display Name: Target Entity\n * * SQL Data Type: nvarchar(255)")});/**
59267
59287
  * zod schema definition for the entity MJ: Record Merge Deletion Logs
@@ -62580,9 +62600,10 @@ _context31.p=1;_context31.n=2;return provider.BeginTransaction();case 2:_context
62580
62600
  * * ForEach
62581
62601
  * * Prompt
62582
62602
  * * Sub-Agent
62603
+ * * Tool
62583
62604
  * * Validation
62584
62605
  * * While
62585
- * * Description: Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation
62606
+ * * Description: Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation, ForEach, While, Tool
62586
62607
  */},{key:"StepType",get:function get(){return this.Get('StepType');},set:function set(value){this.Set('StepType',value);}/**
62587
62608
  * * Field Name: StepName
62588
62609
  * * Display Name: Step Name
@@ -63744,7 +63765,7 @@ _context40.p=1;_context40.n=2;return provider.BeginTransaction();case 2:_context
63744
63765
  * * Description: When true, enables automatic compression of conversation context when the message threshold is reached.
63745
63766
  */},{key:"EnableContextCompression",get:function get(){return this.Get('EnableContextCompression');},set:function set(value){this.Set('EnableContextCompression',value);}/**
63746
63767
  * * Field Name: ContextCompressionMessageThreshold
63747
- * * Display Name: Message Threshold
63768
+ * * Display Name: Compression Message Threshold
63748
63769
  * * SQL Data Type: int
63749
63770
  * * Description: Number of messages that triggers context compression when EnableContextCompression is true.
63750
63771
  */},{key:"ContextCompressionMessageThreshold",get:function get(){return this.Get('ContextCompressionMessageThreshold');},set:function set(value){this.Set('ContextCompressionMessageThreshold',value);}/**
@@ -63754,7 +63775,7 @@ _context40.p=1;_context40.n=2;return provider.BeginTransaction();case 2:_context
63754
63775
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
63755
63776
  */},{key:"ContextCompressionPromptID",get:function get(){return this.Get('ContextCompressionPromptID');},set:function set(value){this.Set('ContextCompressionPromptID',value);}/**
63756
63777
  * * Field Name: ContextCompressionMessageRetentionCount
63757
- * * Display Name: Retention Count
63778
+ * * Display Name: Compression Retention Count
63758
63779
  * * SQL Data Type: int
63759
63780
  * * Description: Number of recent messages to keep uncompressed when context compression is applied.
63760
63781
  */},{key:"ContextCompressionMessageRetentionCount",get:function get(){return this.Get('ContextCompressionMessageRetentionCount');},set:function set(value){this.Set('ContextCompressionMessageRetentionCount',value);}/**
@@ -63796,25 +63817,25 @@ _context40.p=1;_context40.n=2;return provider.BeginTransaction();case 2:_context
63796
63817
  * * Description: Controls whether model selection is driven by the Agent Type's system prompt or the Agent's specific prompt. Default is Agent Type for backward compatibility.
63797
63818
  */},{key:"ModelSelectionMode",get:function get(){return this.Get('ModelSelectionMode');},set:function set(value){this.Set('ModelSelectionMode',value);}/**
63798
63819
  * * Field Name: PayloadDownstreamPaths
63799
- * * Display Name: Downstream Paths
63820
+ * * Display Name: Payload Downstream Paths
63800
63821
  * * SQL Data Type: nvarchar(MAX)
63801
63822
  * * Default Value: ["*"]
63802
63823
  * * Description: JSON array of paths that define which parts of the payload should be sent downstream to sub-agents. Use ["*"] to send entire payload, or specify paths like ["customer.id", "campaign.*", "analysis.sentiment"]
63803
63824
  */},{key:"PayloadDownstreamPaths",get:function get(){return this.Get('PayloadDownstreamPaths');},set:function set(value){this.Set('PayloadDownstreamPaths',value);}/**
63804
63825
  * * Field Name: PayloadUpstreamPaths
63805
- * * Display Name: Upstream Paths
63826
+ * * Display Name: Payload Upstream Paths
63806
63827
  * * SQL Data Type: nvarchar(MAX)
63807
63828
  * * Default Value: ["*"]
63808
63829
  * * Description: JSON array of paths that define which parts of the payload sub-agents are allowed to write back upstream. Use ["*"] to allow all writes, or specify paths like ["analysis.results", "recommendations.*"]
63809
63830
  */},{key:"PayloadUpstreamPaths",get:function get(){return this.Get('PayloadUpstreamPaths');},set:function set(value){this.Set('PayloadUpstreamPaths',value);}/**
63810
63831
  * * Field Name: PayloadSelfReadPaths
63811
- * * Display Name: Self Read Paths
63832
+ * * Display Name: Payload Self Read Paths
63812
63833
  * * SQL Data Type: nvarchar(MAX)
63813
63834
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can read. Controls downstream data
63814
63835
  flow when the agent executes its own prompt step.
63815
63836
  */},{key:"PayloadSelfReadPaths",get:function get(){return this.Get('PayloadSelfReadPaths');},set:function set(value){this.Set('PayloadSelfReadPaths',value);}/**
63816
63837
  * * Field Name: PayloadSelfWritePaths
63817
- * * Display Name: Self Write Paths
63838
+ * * Display Name: Payload Self Write Paths
63818
63839
  * * SQL Data Type: nvarchar(MAX)
63819
63840
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can write back. Controls upstream
63820
63841
  data flow when the agent executes its own prompt step.
@@ -63830,7 +63851,7 @@ data flow when the agent executes its own prompt step.
63830
63851
  * * Description: Optional JSON schema or requirements that define the expected structure and content of the agent's final payload. Used to validate the output when the agent declares success. Similar to OutputExample in AI Prompts.
63831
63852
  */},{key:"FinalPayloadValidation",get:function get(){return this.Get('FinalPayloadValidation');},set:function set(value){this.Set('FinalPayloadValidation',value);}/**
63832
63853
  * * Field Name: FinalPayloadValidationMode
63833
- * * Display Name: Final Validation Mode
63854
+ * * Display Name: Final Payload Validation Mode
63834
63855
  * * SQL Data Type: nvarchar(25)
63835
63856
  * * Default Value: Retry
63836
63857
  * * Value List Type: List
@@ -63841,7 +63862,7 @@ data flow when the agent executes its own prompt step.
63841
63862
  * * Description: Determines how to handle validation failures when FinalPayloadValidation is specified. Options: Retry (default) - retry the agent with validation feedback, Fail - fail the agent run immediately, Warn - log a warning but allow success.
63842
63863
  */},{key:"FinalPayloadValidationMode",get:function get(){return this.Get('FinalPayloadValidationMode');},set:function set(value){this.Set('FinalPayloadValidationMode',value);}/**
63843
63864
  * * Field Name: FinalPayloadValidationMaxRetries
63844
- * * Display Name: Max Validation Retries
63865
+ * * Display Name: Final Payload Validation Max Retries
63845
63866
  * * SQL Data Type: int
63846
63867
  * * Default Value: 3
63847
63868
  * * Description: Maximum number of retry attempts allowed when FinalPayloadValidation fails with
@@ -63887,7 +63908,7 @@ if this limit is exceeded.
63887
63908
  * * Description: Optional JSON schema validation to apply to the input payload before agent execution begins. Uses the same JSONValidator format as FinalPayloadValidation.
63888
63909
  */},{key:"StartingPayloadValidation",get:function get(){return this.Get('StartingPayloadValidation');},set:function set(value){this.Set('StartingPayloadValidation',value);}/**
63889
63910
  * * Field Name: StartingPayloadValidationMode
63890
- * * Display Name: Starting Validation Mode
63911
+ * * Display Name: Starting Payload Validation Mode
63891
63912
  * * SQL Data Type: nvarchar(25)
63892
63913
  * * Default Value: Fail
63893
63914
  * * Value List Type: List
@@ -63897,7 +63918,7 @@ if this limit is exceeded.
63897
63918
  * * Description: Determines how to handle StartingPayloadValidation failures. Fail = reject invalid input, Warn = log warning but proceed.
63898
63919
  */},{key:"StartingPayloadValidationMode",get:function get(){return this.Get('StartingPayloadValidationMode');},set:function set(value){this.Set('StartingPayloadValidationMode',value);}/**
63899
63920
  * * Field Name: DefaultPromptEffortLevel
63900
- * * Display Name: Default Effort Level
63921
+ * * Display Name: Default Prompt Effort Level
63901
63922
  * * SQL Data Type: int
63902
63923
  * * Description: Default effort level for all prompts executed by this agent (1-100, where 1=minimal effort, 100=maximum effort). Takes precedence over individual prompt EffortLevel settings but can be overridden by runtime parameters. Inherited by sub-agents unless explicitly overridden.
63903
63924
  */},{key:"DefaultPromptEffortLevel",get:function get(){return this.Get('DefaultPromptEffortLevel');},set:function set(value){this.Set('DefaultPromptEffortLevel',value);}/**
@@ -63963,7 +63984,7 @@ if this limit is exceeded.
63963
63984
  * * Description: When enabled, agent notes will be automatically injected into the agent context based on scoping rules.
63964
63985
  */},{key:"InjectNotes",get:function get(){return this.Get('InjectNotes');},set:function set(value){this.Set('InjectNotes',value);}/**
63965
63986
  * * Field Name: MaxNotesToInject
63966
- * * Display Name: Max Notes to Inject
63987
+ * * Display Name: Max Notes To Inject
63967
63988
  * * SQL Data Type: int
63968
63989
  * * Default Value: 5
63969
63990
  * * Description: Maximum number of notes to inject into agent context per request.
@@ -63986,7 +64007,7 @@ if this limit is exceeded.
63986
64007
  * * Description: When enabled, agent examples will be automatically injected into the agent context based on scoping rules.
63987
64008
  */},{key:"InjectExamples",get:function get(){return this.Get('InjectExamples');},set:function set(value){this.Set('InjectExamples',value);}/**
63988
64009
  * * Field Name: MaxExamplesToInject
63989
- * * Display Name: Max Examples to Inject
64010
+ * * Display Name: Max Examples To Inject
63990
64011
  * * SQL Data Type: int
63991
64012
  * * Default Value: 3
63992
64013
  * * Description: Maximum number of examples to inject into agent context per request.
@@ -64026,23 +64047,23 @@ if this limit is exceeded.
64026
64047
  * * Description: Maximum number of conversation messages to include when MessageMode is 'Latest' or 'Bookend'. NULL means no limit (ignored for 'None' and 'All' modes). Must be greater than 0 if specified. For 'Latest': keeps most recent N messages. For 'Bookend': keeps first 2 + most recent (N-2) messages.
64027
64048
  */},{key:"MaxMessages",get:function get(){return this.Get('MaxMessages');},set:function set(value){this.Set('MaxMessages',value);}/**
64028
64049
  * * Field Name: AttachmentStorageProviderID
64029
- * * Display Name: Storage Provider
64050
+ * * Display Name: Attachment Storage Provider
64030
64051
  * * SQL Data Type: uniqueidentifier
64031
64052
  * * Related Entity/Foreign Key: MJ: File Storage Providers (vwFileStorageProviders.ID)
64032
64053
  * * Description: File storage provider for large attachments. Overrides the default from AIConfiguration. NULL uses system default.
64033
64054
  */},{key:"AttachmentStorageProviderID",get:function get(){return this.Get('AttachmentStorageProviderID');},set:function set(value){this.Set('AttachmentStorageProviderID',value);}/**
64034
64055
  * * Field Name: AttachmentRootPath
64035
- * * Display Name: Root Path
64056
+ * * Display Name: Attachment Root Path
64036
64057
  * * SQL Data Type: nvarchar(500)
64037
64058
  * * Description: Base path within the storage provider for this agent's attachments. Agent run ID and sequence number are appended to create unique paths. Format: /folder/subfolder
64038
64059
  */},{key:"AttachmentRootPath",get:function get(){return this.Get('AttachmentRootPath');},set:function set(value){this.Set('AttachmentRootPath',value);}/**
64039
64060
  * * Field Name: InlineStorageThresholdBytes
64040
- * * Display Name: Inline Storage Threshold
64061
+ * * Display Name: Inline Storage Threshold Bytes
64041
64062
  * * SQL Data Type: int
64042
64063
  * * Description: File size threshold for inline storage. Files <= this size are stored as base64 inline, larger files use MJStorage. NULL uses system default (1MB). Set to 0 to always use MJStorage.
64043
64064
  */},{key:"InlineStorageThresholdBytes",get:function get(){return this.Get('InlineStorageThresholdBytes');},set:function set(value){this.Set('InlineStorageThresholdBytes',value);}/**
64044
64065
  * * Field Name: AgentTypePromptParams
64045
- * * Display Name: Prompt Parameters
64066
+ * * Display Name: Agent Type Prompt Params
64046
64067
  * * SQL Data Type: nvarchar(MAX)
64047
64068
  * * Description: JSON object containing parameter values that customize how this agent's type-level system prompt is rendered. The schema is defined by the agent type's PromptParamsSchema field. Allows per-agent control over which prompt sections are included, enabling token savings by excluding unused documentation.
64048
64069
  */},{key:"AgentTypePromptParams",get:function get(){return this.Get('AgentTypePromptParams');},set:function set(value){this.Set('AgentTypePromptParams',value);}/**
@@ -64081,7 +64102,7 @@ if this limit is exceeded.
64081
64102
  * * Description: Foreign key to AIAgentCategory. Assigns this agent to an organizational category for grouping, filtering, and inherited assignment strategy resolution.
64082
64103
  */},{key:"CategoryID",get:function get(){return this.Get('CategoryID');},set:function set(value){this.Set('CategoryID',value);}/**
64083
64104
  * * Field Name: AllowEphemeralClientTools
64084
- * * Display Name: Allow Ephemeral Tools
64105
+ * * Display Name: Allow Ephemeral Client Tools
64085
64106
  * * SQL Data Type: bit
64086
64107
  * * Default Value: 1
64087
64108
  * * Description: When true (default), this agent accepts runtime-registered ephemeral client tools that are not defined in metadata. Set to false for agents that require strict tool governance.
@@ -64103,16 +64124,22 @@ if this limit is exceeded.
64103
64124
  * * None
64104
64125
  * * Description: Controls the agent's search capability. All = may use any scope including Global; search action does not restrict. Assigned = may use ONLY scopes explicitly linked via AIAgentSearchScope; scoped search action enforces this. None = agent has no search capability; the scoped search action rejects all requests.
64105
64126
  */},{key:"SearchScopeAccess",get:function get(){return this.Get('SearchScopeAccess');},set:function set(value){this.Set('SearchScopeAccess',value);}/**
64127
+ * * Field Name: AcceptUnregisteredFiles
64128
+ * * Display Name: Accept Unregistered Files
64129
+ * * SQL Data Type: bit
64130
+ * * Default Value: 0
64131
+ * * Description: Per-agent opt-in to a Generic Binary fallback for file uploads whose MIME type does not match any registered Artifact Type. When false (default), unrecognized uploads are rejected at upload time with an actionable error. When true, unrecognized uploads resolve to the Generic Binary artifact type, exposing only get_full and get_metadata tools. Scoped per agent — there is no system-wide global flag.
64132
+ */},{key:"AcceptUnregisteredFiles",get:function get(){return this.Get('AcceptUnregisteredFiles');},set:function set(value){this.Set('AcceptUnregisteredFiles',value);}/**
64106
64133
  * * Field Name: Parent
64107
64134
  * * Display Name: Parent Name
64108
64135
  * * SQL Data Type: nvarchar(255)
64109
64136
  */},{key:"Parent",get:function get(){return this.Get('Parent');}/**
64110
64137
  * * Field Name: ContextCompressionPrompt
64111
- * * Display Name: Compression Prompt Name
64138
+ * * Display Name: Compression Prompt Text
64112
64139
  * * SQL Data Type: nvarchar(255)
64113
64140
  */},{key:"ContextCompressionPrompt",get:function get(){return this.Get('ContextCompressionPrompt');}/**
64114
64141
  * * Field Name: Type
64115
- * * Display Name: Type Name
64142
+ * * Display Name: Type
64116
64143
  * * SQL Data Type: nvarchar(100)
64117
64144
  */},{key:"Type",get:function get(){return this.Get('Type');}/**
64118
64145
  * * Field Name: DefaultArtifactType
@@ -64124,7 +64151,7 @@ if this limit is exceeded.
64124
64151
  * * SQL Data Type: nvarchar(100)
64125
64152
  */},{key:"OwnerUser",get:function get(){return this.Get('OwnerUser');}/**
64126
64153
  * * Field Name: AttachmentStorageProvider
64127
- * * Display Name: Storage Provider Name
64154
+ * * Display Name: Attachment Storage Provider Name
64128
64155
  * * SQL Data Type: nvarchar(50)
64129
64156
  */},{key:"AttachmentStorageProvider",get:function get(){return this.Get('AttachmentStorageProvider');}/**
64130
64157
  * * Field Name: Category
@@ -68874,6 +68901,28 @@ _context64.p=1;_context64.n=2;return provider.BeginTransaction();case 2:_context
68874
68901
  * * SQL Data Type: nvarchar(100)
68875
68902
  * * Description: Class name for the BaseArtifactToolLibrary subclass that provides type-specific artifact exploration tools for agents. Resolved via ClassFactory. When NULL, ArtifactToolManager uses name-based fallback resolution.
68876
68903
  */},{key:"ToolLibraryClass",get:function get(){return this.Get('ToolLibraryClass');},set:function set(value){this.Set('ToolLibraryClass',value);}/**
68904
+ * * Field Name: Priority
68905
+ * * Display Name: Priority
68906
+ * * SQL Data Type: int
68907
+ * * Default Value: 0
68908
+ * * Description: Deterministic tiebreaker when multiple Artifact Types match the same MIME pattern. Higher values win. Within a specificity tier (exact > subtype-wildcard), the resolver sorts by Priority desc, then SystemSupplied = false beats SystemSupplied = true, then lowest ID wins.
68909
+ */},{key:"Priority",get:function get(){return this.Get('Priority');},set:function set(value){this.Set('Priority',value);}/**
68910
+ * * Field Name: DefaultDeliveryMode
68911
+ * * Display Name: Default Delivery Mode
68912
+ * * SQL Data Type: nvarchar(20)
68913
+ * * Default Value: ToolsOnly
68914
+ * * Value List Type: List
68915
+ * * Possible Values
68916
+ * * Inline
68917
+ * * ToolsOnly
68918
+ * * Description: How artifacts of this type are delivered to the LLM by default. Inline: emitted as an inline content block (image_url, audio_url, small text, etc.) when the model supports the modality and the size is under the inline cap. ToolsOnly: never inlined; the agent reaches the bytes only through tool calls (get_full, library-specific tools). Per-instance override is one-way via ConversationArtifactVersion.ForceToolsOnly — an instance can opt out of inline but never opt in when the type default is ToolsOnly.
68919
+ */},{key:"DefaultDeliveryMode",get:function get(){return this.Get('DefaultDeliveryMode');},set:function set(value){this.Set('DefaultDeliveryMode',value);}/**
68920
+ * * Field Name: SystemSupplied
68921
+ * * Display Name: System Supplied
68922
+ * * SQL Data Type: bit
68923
+ * * Default Value: 0
68924
+ * * Description: True for Artifact Types shipped as part of the MemberJunction default registry (JSON, PDF, Office variants, Image/Audio/Video, Generic Text, Generic Binary). False for user/org-supplied customizations. Used as a tiebreaker in MIME pattern resolution: user customizations win over shipped defaults at equal Priority.
68925
+ */},{key:"SystemSupplied",get:function get(){return this.Get('SystemSupplied');},set:function set(value){this.Set('SystemSupplied',value);}/**
68877
68926
  * * Field Name: Parent
68878
68927
  * * Display Name: Parent
68879
68928
  * * SQL Data Type: nvarchar(100)
@@ -69076,7 +69125,7 @@ _context64.p=1;_context64.n=2;return provider.BeginTransaction();case 2:_context
69076
69125
  * * Description: User comments specific to this version
69077
69126
  */},{key:"Comments",get:function get(){return this.Get('Comments');},set:function set(value){this.Set('Comments',value);}/**
69078
69127
  * * Field Name: UserID
69079
- * * Display Name: User
69128
+ * * Display Name: User ID
69080
69129
  * * SQL Data Type: uniqueidentifier
69081
69130
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
69082
69131
  */},{key:"UserID",get:function get(){return this.Get('UserID');},set:function set(value){this.Set('UserID',value);}/**
@@ -69106,7 +69155,7 @@ _context64.p=1;_context64.n=2;return provider.BeginTransaction();case 2:_context
69106
69155
  * * Description: Description of this artifact version. Can differ from Artifact.Description as it may evolve with versions.
69107
69156
  */},{key:"Description",get:function get(){return this.Get('Description');},set:function set(value){this.Set('Description',value);}/**
69108
69157
  * * Field Name: FileID
69109
- * * Display Name: File
69158
+ * * Display Name: File ID
69110
69159
  * * SQL Data Type: uniqueidentifier
69111
69160
  * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)
69112
69161
  * * Description: Foreign key to the MJ: Files entity. When ContentMode is 'File', this references the binary file stored in MJStorage. NULL when ContentMode is 'Text'.
@@ -69132,10 +69181,16 @@ _context64.p=1;_context64.n=2;return provider.BeginTransaction();case 2:_context
69132
69181
  * * Description: Original filename of the stored file (e.g. report.pdf). Denormalized from the File entity for display without joins. Only populated when ContentMode is 'File'.
69133
69182
  */},{key:"FileName",get:function get(){return this.Get('FileName');},set:function set(value){this.Set('FileName',value);}/**
69134
69183
  * * Field Name: ContentSizeBytes
69135
- * * Display Name: Content Size Bytes
69184
+ * * Display Name: Content Size (Bytes)
69136
69185
  * * SQL Data Type: bigint
69137
69186
  * * Description: Size of the stored file in bytes. Denormalized for display without loading the file. Only populated when ContentMode is 'File'.
69138
69187
  */},{key:"ContentSizeBytes",get:function get(){return this.Get('ContentSizeBytes');},set:function set(value){this.Set('ContentSizeBytes',value);}/**
69188
+ * * Field Name: ForceToolsOnly
69189
+ * * Display Name: Force Tools Only
69190
+ * * SQL Data Type: bit
69191
+ * * Default Value: 0
69192
+ * * Description: One-way override that forces this artifact version to be delivered via tools regardless of the Artifact Type's DefaultDeliveryMode. When true, the resolver never emits an inline content block for this version. There is no inverse override — an instance cannot be widened from ToolsOnly to Inline. Default false.
69193
+ */},{key:"ForceToolsOnly",get:function get(){return this.Get('ForceToolsOnly');},set:function set(value){this.Set('ForceToolsOnly',value);}/**
69139
69194
  * * Field Name: Artifact
69140
69195
  * * Display Name: Artifact
69141
69196
  * * SQL Data Type: nvarchar(255)
@@ -73076,6 +73131,7 @@ _context134.p=1;_context134.n=2;return provider.BeginTransaction();case 2:_conte
73076
73131
  * @extends {BaseEntity}
73077
73132
  * @class
73078
73133
  * @public
73134
+ * @deprecated This entity is deprecated and will be removed in a future version. Using it will result in console warnings.
73079
73135
  */var MJConversationDetailAttachmentEntity=/*#__PURE__*/function(_BaseEntity126){function MJConversationDetailAttachmentEntity(){_classCallCheck(this,MJConversationDetailAttachmentEntity);return _callSuper(this,MJConversationDetailAttachmentEntity,arguments);}_inherits(MJConversationDetailAttachmentEntity,_BaseEntity126);return _createClass(MJConversationDetailAttachmentEntity,[{key:"Load",value:(/**
73080
73136
  * Loads the MJ: Conversation Detail Attachments record from the database
73081
73137
  * @param ID: string - primary key value to load the MJ: Conversation Detail Attachments record.
@@ -73182,18 +73238,28 @@ if(this.InlineData==null&&this.FileID==null){result.Errors.push(new dist/* Valid
73182
73238
  * * SQL Data Type: nvarchar(MAX)
73183
73239
  * * Description: Description of the attachment providing context about its content and purpose.
73184
73240
  */},{key:"Description",get:function get(){return this.Get('Description');},set:function set(value){this.Set('Description',value);}/**
73241
+ * * Field Name: ArtifactVersionID
73242
+ * * Display Name: Artifact Version ID
73243
+ * * SQL Data Type: uniqueidentifier
73244
+ * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)
73245
+ * * Description: Foreign key to the ArtifactVersion created alongside this attachment by the storage-unification path. When set, the agent resolver routes via the artifact path (manifest + tool dispatch) and skips inline embedding of the attachment to avoid double-processing. NULL for pre-v5.35 attachment rows authored before storage unification.
73246
+ */},{key:"ArtifactVersionID",get:function get(){return this.Get('ArtifactVersionID');},set:function set(value){this.Set('ArtifactVersionID',value);}/**
73185
73247
  * * Field Name: ConversationDetail
73186
- * * Display Name: Conversation Detail
73248
+ * * Display Name: Conversation Detail Record
73187
73249
  * * SQL Data Type: nvarchar(MAX)
73188
73250
  */},{key:"ConversationDetail",get:function get(){return this.Get('ConversationDetail');}/**
73189
73251
  * * Field Name: Modality
73190
- * * Display Name: Modality
73252
+ * * Display Name: Modality Record
73191
73253
  * * SQL Data Type: nvarchar(50)
73192
73254
  */},{key:"Modality",get:function get(){return this.Get('Modality');}/**
73193
73255
  * * Field Name: File
73194
- * * Display Name: File
73256
+ * * Display Name: File Record
73195
73257
  * * SQL Data Type: nvarchar(500)
73196
- */},{key:"File",get:function get(){return this.Get('File');}}]);}(dist/* BaseEntity */.HCJ);MJConversationDetailAttachmentEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Conversation Detail Attachments')],MJConversationDetailAttachmentEntity);/**
73258
+ */},{key:"File",get:function get(){return this.Get('File');}/**
73259
+ * * Field Name: ArtifactVersion
73260
+ * * Display Name: Artifact Version Record
73261
+ * * SQL Data Type: nvarchar(255)
73262
+ */},{key:"ArtifactVersion",get:function get(){return this.Get('ArtifactVersion');}}]);}(dist/* BaseEntity */.HCJ);MJConversationDetailAttachmentEntity=__decorate([(0,MJGlobal_dist/* RegisterClass */.Y5)(dist/* BaseEntity */.HCJ,'MJ: Conversation Detail Attachments')],MJConversationDetailAttachmentEntity);/**
73197
73263
  * MJ: Conversation Detail Ratings - strongly typed entity sub-class
73198
73264
  * * Schema: __mj
73199
73265
  * * Base Table: ConversationDetailRating
@@ -83962,13 +84028,15 @@ _context237.p=1;_context237.n=2;return provider.BeginTransaction();case 2:_conte
83962
84028
  * * SQL Data Type: nvarchar(30)
83963
84029
  * * Value List Type: List
83964
84030
  * * Possible Values
84031
+ * * geocodio
83965
84032
  * * google
84033
+ * * here
83966
84034
  * * ip_geolocation
83967
84035
  * * manual
83968
84036
  * * native
83969
84037
  * * reference_data
83970
84038
  * * reverse
83971
- * * Description: How this geocode was produced: google (Google Geocoding API), reference_data (resolved via Country/StateProvince tables), manual (user-entered), ip_geolocation (IP lookup), native (copied from entity lat/lng fields), reverse (reverse geocode from coordinates).
84039
+ * * Description: Source that produced this geocode. One of: google, geocodio, here, reference_data, manual, ip_geolocation, native, reverse.
83972
84040
  */},{key:"GeocodingSource",get:function get(){return this.Get('GeocodingSource');},set:function set(value){this.Set('GeocodingSource',value);}/**
83973
84041
  * * Field Name: __mj_CreatedAt
83974
84042
  * * Display Name: Created At
@@ -94356,8 +94424,171 @@ function LoadMJConversationDetailEntityExtended() {
94356
94424
  }
94357
94425
  // EXTERNAL MODULE: ../../../node_modules/rxjs/dist/esm5/internal/BehaviorSubject.js
94358
94426
  var BehaviorSubject = __webpack_require__(156);
94427
+ ;// ../../MJCoreEntities/dist/engines/artifact-mime-resolver.js
94428
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || artifact_mime_resolver_unsupportedIterableToArray(r) || _nonIterableSpread(); }
94429
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
94430
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
94431
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return artifact_mime_resolver_arrayLikeToArray(r); }
94432
+ function artifact_mime_resolver_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = artifact_mime_resolver_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
94433
+ function artifact_mime_resolver_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return artifact_mime_resolver_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? artifact_mime_resolver_arrayLikeToArray(r, a) : void 0; } }
94434
+ function artifact_mime_resolver_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
94435
+ /**
94436
+ * Pure resolver for matching an upload's MIME type (and optional file
94437
+ * extension) to a registered Artifact Type. Has no entity dependency — takes
94438
+ * a list of plain matcher records, returns the chosen ID (or undefined when
94439
+ * nothing matches).
94440
+ *
94441
+ * Resolution algorithm (per plans/artifact-attachment-unification.md §6):
94442
+ * 1. Filter to types whose ContentType pattern matches the upload MIME.
94443
+ * 2. Bucket by specificity: exact > subtype-wildcard (e.g. `image/*`).
94444
+ * 3. Within the highest-specificity bucket, sort by Priority desc.
94445
+ * 4. Tiebreaker if priorities are equal:
94446
+ * a. SystemSupplied = false beats SystemSupplied = true
94447
+ * b. otherwise lowest ID wins (deterministic).
94448
+ *
94449
+ * Octet-stream uploads also consider a file-extension hint when given.
94450
+ *
94451
+ * Conflict detection: callers can pass the same list to
94452
+ * `FindArtifactTypeConflicts` to surface ambiguous registrations at engine
94453
+ * boot, where two types share the same (ContentType, Priority, SystemSupplied)
94454
+ * triple — almost always a configuration mistake.
94455
+ */
94456
+ var SUBTYPE_WILDCARD_SUFFIX = '/*';
94457
+ function ResolveArtifactTypeByMime(matchers, mimeType, fileExtension) {
94458
+ var _ranked$;
94459
+ var normalizedMime = normalizeMime(mimeType);
94460
+ if (!normalizedMime) return undefined;
94461
+ var candidates = collectCandidates(matchers, normalizedMime, fileExtension);
94462
+ if (candidates.length === 0) return undefined;
94463
+ var ranked = rankCandidates(candidates);
94464
+ return (_ranked$ = ranked[0]) === null || _ranked$ === void 0 ? void 0 : _ranked$.matcher;
94465
+ }
94466
+ function FindArtifactTypeConflicts(matchers) {
94467
+ var groups = new Map();
94468
+ var _iterator = artifact_mime_resolver_createForOfIteratorHelper(matchers),
94469
+ _step;
94470
+ try {
94471
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
94472
+ var _normalizeMime, _groups$get;
94473
+ var m = _step.value;
94474
+ var key = "".concat((_normalizeMime = normalizeMime(m.contentType)) !== null && _normalizeMime !== void 0 ? _normalizeMime : '', "|").concat(m.priority, "|").concat(m.systemSupplied);
94475
+ var list = (_groups$get = groups.get(key)) !== null && _groups$get !== void 0 ? _groups$get : [];
94476
+ list.push(m);
94477
+ groups.set(key, list);
94478
+ }
94479
+ } catch (err) {
94480
+ _iterator.e(err);
94481
+ } finally {
94482
+ _iterator.f();
94483
+ }
94484
+ var conflicts = [];
94485
+ var _iterator2 = artifact_mime_resolver_createForOfIteratorHelper(groups.values()),
94486
+ _step2;
94487
+ try {
94488
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
94489
+ var _list = _step2.value;
94490
+ if (_list.length < 2) continue;
94491
+ conflicts.push({
94492
+ contentType: _list[0].contentType,
94493
+ priority: _list[0].priority,
94494
+ systemSupplied: _list[0].systemSupplied,
94495
+ matcherIds: _list.map(function (m) {
94496
+ return m.id;
94497
+ }),
94498
+ matcherNames: _list.map(function (m) {
94499
+ return m.name;
94500
+ })
94501
+ });
94502
+ }
94503
+ } catch (err) {
94504
+ _iterator2.e(err);
94505
+ } finally {
94506
+ _iterator2.f();
94507
+ }
94508
+ return conflicts;
94509
+ }
94510
+ function collectCandidates(matchers, mime, fileExtension) {
94511
+ var out = [];
94512
+ var ext = normalizeExtension(fileExtension);
94513
+ var isOctetStream = mime === 'application/octet-stream';
94514
+ var _iterator3 = artifact_mime_resolver_createForOfIteratorHelper(matchers),
94515
+ _step3;
94516
+ try {
94517
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
94518
+ var _m$fileExtensions;
94519
+ var m = _step3.value;
94520
+ var pattern = normalizeMime(m.contentType);
94521
+ if (!pattern) continue;
94522
+ if (pattern === mime) {
94523
+ out.push({
94524
+ matcher: m,
94525
+ specificity: 2
94526
+ });
94527
+ continue;
94528
+ }
94529
+ if (pattern.endsWith(SUBTYPE_WILDCARD_SUFFIX)) {
94530
+ var prefix = pattern.slice(0, -SUBTYPE_WILDCARD_SUFFIX.length);
94531
+ if (mime.startsWith(prefix + '/')) {
94532
+ out.push({
94533
+ matcher: m,
94534
+ specificity: 1
94535
+ });
94536
+ continue;
94537
+ }
94538
+ }
94539
+ // octet-stream extension hint: if the upload has no useful MIME but we
94540
+ // have an extension hint, allow types that registered the extension.
94541
+ if (isOctetStream && ext && (_m$fileExtensions = m.fileExtensions) !== null && _m$fileExtensions !== void 0 && _m$fileExtensions.includes(ext)) {
94542
+ out.push({
94543
+ matcher: m,
94544
+ specificity: 2
94545
+ });
94546
+ }
94547
+ }
94548
+ } catch (err) {
94549
+ _iterator3.e(err);
94550
+ } finally {
94551
+ _iterator3.f();
94552
+ }
94553
+ return out;
94554
+ }
94555
+ function rankCandidates(candidates) {
94556
+ // Highest specificity first, then Priority desc, then SystemSupplied false
94557
+ // wins over true, then lowest ID for determinism.
94558
+ var maxSpecificity = Math.max.apply(Math, _toConsumableArray(candidates.map(function (c) {
94559
+ return c.specificity;
94560
+ })));
94561
+ var topBucket = candidates.filter(function (c) {
94562
+ return c.specificity === maxSpecificity;
94563
+ });
94564
+ return _toConsumableArray(topBucket).sort(function (a, b) {
94565
+ if (b.matcher.priority !== a.matcher.priority) {
94566
+ return b.matcher.priority - a.matcher.priority;
94567
+ }
94568
+ if (a.matcher.systemSupplied !== b.matcher.systemSupplied) {
94569
+ return a.matcher.systemSupplied ? 1 : -1;
94570
+ }
94571
+ return a.matcher.id.localeCompare(b.matcher.id);
94572
+ });
94573
+ }
94574
+ function normalizeMime(value) {
94575
+ if (!value) return undefined;
94576
+ var trimmed = value.trim().toLowerCase();
94577
+ if (!trimmed) return undefined;
94578
+ // Strip any `; charset=...` parameters that browsers sometimes attach.
94579
+ var semi = trimmed.indexOf(';');
94580
+ return semi === -1 ? trimmed : trimmed.slice(0, semi).trim();
94581
+ }
94582
+ function normalizeExtension(value) {
94583
+ if (!value) return undefined;
94584
+ var trimmed = value.trim().toLowerCase().replace(/^\./, '');
94585
+ return trimmed || undefined;
94586
+ }
94359
94587
  ;// ../../MJCoreEntities/dist/engines/artifacts.js
94360
94588
  function artifacts_typeof(o) { "@babel/helpers - typeof"; return artifacts_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, artifacts_typeof(o); }
94589
+ function artifacts_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = artifacts_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
94590
+ function artifacts_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return artifacts_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? artifacts_arrayLikeToArray(r, a) : void 0; } }
94591
+ function artifacts_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
94361
94592
  function artifacts_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return artifacts_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (artifacts_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, artifacts_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, artifacts_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), artifacts_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", artifacts_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), artifacts_regeneratorDefine2(u), artifacts_regeneratorDefine2(u, o, "Generator"), artifacts_regeneratorDefine2(u, n, function () { return this; }), artifacts_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (artifacts_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
94362
94593
  function artifacts_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } artifacts_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { artifacts_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, artifacts_regeneratorDefine2(e, r, n, t); }
94363
94594
  function artifacts_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
@@ -94378,6 +94609,7 @@ function artifacts_getPrototypeOf(t) { return artifacts_getPrototypeOf = Object.
94378
94609
  function artifacts_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && artifacts_setPrototypeOf(t, e); }
94379
94610
  function artifacts_setPrototypeOf(t, e) { return artifacts_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, artifacts_setPrototypeOf(t, e); }
94380
94611
 
94612
+
94381
94613
  /**
94382
94614
  * Caching of metadata for artifacts, artifact versions, and artifact types.
94383
94615
  */
@@ -94513,18 +94745,59 @@ var ArtifactMetadataEngine = /*#__PURE__*/function (_BaseEngine) {
94513
94745
  return (version === null || version === void 0 ? void 0 : version.ContentMode) === 'File';
94514
94746
  }
94515
94747
  /**
94516
- * Finds the artifact type whose ContentType (MIME type) matches the given
94517
- * mimeType string (case-insensitive). Used by AgentRunner to resolve the
94518
- * correct ArtifactType for file outputs such as PDFs and spreadsheets.
94748
+ * Resolves an upload's MIME type (and optional file extension) to the
94749
+ * highest-priority registered Artifact Type. Supports exact matches and
94750
+ * subtype wildcards (e.g. `text/*`, `image/*`), with deterministic
94751
+ * tiebreaking via Priority → SystemSupplied → ID. See
94752
+ * `artifact-mime-resolver.ts` for the full algorithm.
94519
94753
  */
94520
94754
  }, {
94521
94755
  key: "GetArtifactTypeByMimeType",
94522
- value: function GetArtifactTypeByMimeType(mimeType) {
94523
- if (!mimeType) return undefined;
94524
- var lower = mimeType.trim().toLowerCase();
94525
- return this._artifactTypes.find(function (t) {
94526
- return t.ContentType.trim().toLowerCase() === lower;
94756
+ value: function GetArtifactTypeByMimeType(mimeType, fileExtension) {
94757
+ var _this2 = this;
94758
+ var matchers = this._artifactTypes.map(function (t) {
94759
+ return _this2.toMatcher(t);
94527
94760
  });
94761
+ var found = ResolveArtifactTypeByMime(matchers, mimeType, fileExtension);
94762
+ return found ? this.FindArtifactTypeByID(found.id) : undefined;
94763
+ }
94764
+ /**
94765
+ * Logs WARN for any pair of registered Artifact Types that share an
94766
+ * identical (ContentType, Priority, SystemSupplied) triple — almost always
94767
+ * a configuration mistake, and the ID-tiebreaker would otherwise hide it.
94768
+ * Call after Config() to surface registry ambiguity at boot.
94769
+ */
94770
+ }, {
94771
+ key: "LogArtifactTypeRegistryConflicts",
94772
+ value: function LogArtifactTypeRegistryConflicts() {
94773
+ var _this3 = this;
94774
+ var matchers = this._artifactTypes.map(function (t) {
94775
+ return _this3.toMatcher(t);
94776
+ });
94777
+ var conflicts = FindArtifactTypeConflicts(matchers);
94778
+ var _iterator = artifacts_createForOfIteratorHelper(conflicts),
94779
+ _step;
94780
+ try {
94781
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
94782
+ var c = _step.value;
94783
+ (0,dist/* LogStatus */.b09)("WARN ArtifactMetadataEngine: ".concat(c.matcherNames.length, " Artifact Types share (ContentType=").concat(c.contentType, ", Priority=").concat(c.priority, ", SystemSupplied=").concat(c.systemSupplied, "): ").concat(c.matcherNames.join(', '), ". Resolution will use lowest-ID tiebreaker \u2014 set Priority explicitly to disambiguate."));
94784
+ }
94785
+ } catch (err) {
94786
+ _iterator.e(err);
94787
+ } finally {
94788
+ _iterator.f();
94789
+ }
94790
+ }
94791
+ }, {
94792
+ key: "toMatcher",
94793
+ value: function toMatcher(t) {
94794
+ return {
94795
+ id: t.ID,
94796
+ name: t.Name,
94797
+ contentType: t.ContentType,
94798
+ priority: t.Priority,
94799
+ systemSupplied: t.SystemSupplied
94800
+ };
94528
94801
  }
94529
94802
  }], [{
94530
94803
  key: "Instance",
@@ -94539,10 +94812,10 @@ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLim
94539
94812
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
94540
94813
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
94541
94814
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
94542
- function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || conversations_unsupportedIterableToArray(r) || _nonIterableSpread(); }
94543
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
94544
- function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
94545
- function _arrayWithoutHoles(r) { if (Array.isArray(r)) return conversations_arrayLikeToArray(r); }
94815
+ function conversations_toConsumableArray(r) { return conversations_arrayWithoutHoles(r) || conversations_iterableToArray(r) || conversations_unsupportedIterableToArray(r) || conversations_nonIterableSpread(); }
94816
+ function conversations_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
94817
+ function conversations_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
94818
+ function conversations_arrayWithoutHoles(r) { if (Array.isArray(r)) return conversations_arrayLikeToArray(r); }
94546
94819
  function conversations_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = conversations_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
94547
94820
  function conversations_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return conversations_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? conversations_arrayLikeToArray(r, a) : void 0; } }
94548
94821
  function conversations_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
@@ -94929,7 +95202,7 @@ var ConversationEngine = /*#__PURE__*/function (_BaseEngine) {
94929
95202
  throw new Error(((_conversation$LatestR = conversation.LatestResult) === null || _conversation$LatestR === void 0 ? void 0 : _conversation$LatestR.Message) || 'Failed to create conversation');
94930
95203
  case 3:
94931
95204
  // Prepend to the list and emit
94932
- updated = [conversation].concat(_toConsumableArray(this._conversations$.value));
95205
+ updated = [conversation].concat(conversations_toConsumableArray(this._conversations$.value));
94933
95206
  this._conversations$.next(updated);
94934
95207
  return _context4.a(2, conversation);
94935
95208
  }
@@ -94997,7 +95270,7 @@ var ConversationEngine = /*#__PURE__*/function (_BaseEngine) {
94997
95270
  }
94998
95271
  // Delete failed — restore to list
94999
95272
  current = this._conversations$.value;
95000
- this._conversations$.next([conversation].concat(_toConsumableArray(current)));
95273
+ this._conversations$.next([conversation].concat(conversations_toConsumableArray(current)));
95001
95274
  throw new Error(((_conversation$LatestR2 = conversation.LatestResult) === null || _conversation$LatestR2 === void 0 ? void 0 : _conversation$LatestR2.Message) || 'Failed to delete conversation');
95002
95275
  case 6:
95003
95276
  _context5.p = 6;
@@ -95163,7 +95436,7 @@ var ConversationEngine = /*#__PURE__*/function (_BaseEngine) {
95163
95436
  return _context8.f(6);
95164
95437
  case 7:
95165
95438
  // Re-emit the list so subscribers see the update
95166
- this._conversations$.next(_toConsumableArray(this._conversations$.value));
95439
+ this._conversations$.next(conversations_toConsumableArray(this._conversations$.value));
95167
95440
  return _context8.a(2, true);
95168
95441
  }
95169
95442
  }, _callee8, this, [[4,, 6, 7]]);
@@ -96190,7 +96463,7 @@ var ConversationEngine = /*#__PURE__*/function (_BaseEngine) {
96190
96463
  var existing = this.GetConversation(id);
96191
96464
  if (existing) {
96192
96465
  this.mergeDataOntoRecord(existing, data);
96193
- this._conversations$.next(_toConsumableArray(this._conversations$.value));
96466
+ this._conversations$.next(conversations_toConsumableArray(this._conversations$.value));
96194
96467
  }
96195
96468
  } else if (action === 'delete') {
96196
96469
  var _existing = this.GetConversation(id);
@@ -96416,7 +96689,7 @@ var ConversationEngine = /*#__PURE__*/function (_BaseEngine) {
96416
96689
  }, {
96417
96690
  key: "sortConversations",
96418
96691
  value: function sortConversations(conversations) {
96419
- return _toConsumableArray(conversations).sort(function (a, b) {
96692
+ return conversations_toConsumableArray(conversations).sort(function (a, b) {
96420
96693
  var _a$__mj_UpdatedAt$get, _a$__mj_UpdatedAt, _b$__mj_UpdatedAt$get, _b$__mj_UpdatedAt;
96421
96694
  // Pinned conversations first
96422
96695
  if (a.IsPinned && !b.IsPinned) return -1;
@@ -97621,6 +97894,70 @@ var TypeTablesCache = /*#__PURE__*/(/* unused pure expression or super */ null &
97621
97894
  }
97622
97895
  }]);
97623
97896
  }(BaseEngine)));
97897
+ ;// ../../MJCoreEntities/dist/engines/artifact-content-storage.js
97898
+ /**
97899
+ * Pure helpers for how artifact content is stored and unwrapped across the
97900
+ * upload, gather, and resolver paths. Living in MJCoreEntities so both the
97901
+ * server-side entity hook (MJConversationDetailAttachmentEntityServer) and
97902
+ * the agent runtime (AgentRunner.gatherConversationArtifacts) share a single
97903
+ * source of truth — and so they're unit-testable without mounting either
97904
+ * the entity stack or the agent runtime.
97905
+ */
97906
+ var TEXTY_NON_TEXT_PREFIXED_MIMES = new Set(['application/json', 'application/xml', 'application/javascript', 'application/typescript', 'application/sql', 'application/csv']);
97907
+ /**
97908
+ * Returns true when bytes for this MIME should be stored as raw UTF-8 text
97909
+ * (so artifact tool libraries can JSON.parse / split-by-line directly).
97910
+ * Returns false for binary types whose tools work with the data-URL wrapper
97911
+ * or a FileID reference.
97912
+ */
97913
+ function IsTextyMime(mime) {
97914
+ var lower = mime.toLowerCase();
97915
+ if (lower.startsWith('text/')) return true;
97916
+ return TEXTY_NON_TEXT_PREFIXED_MIMES.has(lower);
97917
+ }
97918
+ /**
97919
+ * Decides how to store inline content on the paired ArtifactVersion for a
97920
+ * given MIME + base64 InlineData input. Text-y MIMEs get decoded to UTF-8
97921
+ * so artifact tool libraries can parse directly; binary MIMEs keep the
97922
+ * `data:<mime>;base64,…` wrapper so the resolver can recognize media for
97923
+ * inline routing and the gather path can re-decode to a Buffer for binary
97924
+ * tool libraries (xlsx, docx, pdf).
97925
+ */
97926
+ function DecideInlineStorage(mime, inlineData) {
97927
+ if (!inlineData) return {
97928
+ contentMode: 'Text',
97929
+ content: ''
97930
+ };
97931
+ if (IsTextyMime(mime)) {
97932
+ return {
97933
+ contentMode: 'Text',
97934
+ content: Buffer.from(inlineData, 'base64').toString('utf-8')
97935
+ };
97936
+ }
97937
+ return {
97938
+ contentMode: 'Text',
97939
+ content: "data:".concat(mime, ";base64,").concat(inlineData)
97940
+ };
97941
+ }
97942
+ /**
97943
+ * Builds the user-facing error string returned when an attachment's MIME
97944
+ * isn't registered with any ArtifactType.
97945
+ */
97946
+ function BuildUnregisteredMimeError(fileName, _mime) {
97947
+ var safeName = fileName !== null && fileName !== void 0 ? fileName : 'this file';
97948
+ return "\"".concat(safeName, "\" can't be attached \u2014 its file type isn't supported here. Try a PDF, Word, Excel, image, audio, video, JSON, CSV, XML, or plain-text file.");
97949
+ }
97950
+ /**
97951
+ * Decodes a `data:<mime>;base64,<payload>` URL into a raw Buffer when the
97952
+ * input matches that shape. Returns the input unchanged otherwise. Used by
97953
+ * the AgentRunner gather path so binary tool libraries (xlsx, docx, pdf)
97954
+ * receive a parseable Buffer instead of the wrapped data URL string.
97955
+ */
97956
+ function ExtractBase64FromDataUrl(input) {
97957
+ var match = /^data:[^;]+;base64,([^]*)$/.exec(input);
97958
+ if (!match) return input;
97959
+ return Buffer.from(match[1], 'base64');
97960
+ }
97624
97961
  ;// ../../MJCoreEntities/dist/engines/EncryptionEngineBase.js
97625
97962
  function EncryptionEngineBase_regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return EncryptionEngineBase_regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (EncryptionEngineBase_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, EncryptionEngineBase_regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, EncryptionEngineBase_regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), EncryptionEngineBase_regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", EncryptionEngineBase_regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), EncryptionEngineBase_regeneratorDefine2(u), EncryptionEngineBase_regeneratorDefine2(u, o, "Generator"), EncryptionEngineBase_regeneratorDefine2(u, n, function () { return this; }), EncryptionEngineBase_regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (EncryptionEngineBase_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
97626
97963
  function EncryptionEngineBase_regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } EncryptionEngineBase_regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { EncryptionEngineBase_regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, EncryptionEngineBase_regeneratorDefine2(e, r, n, t); }
@@ -107776,6 +108113,8 @@ function LoadPermissionEntityExtensions() {
107776
108113
 
107777
108114
 
107778
108115
 
108116
+
108117
+
107779
108118
 
107780
108119
 
107781
108120
 
@@ -107833,7 +108172,8 @@ var MJEventType = {
107833
108172
  LoginFailed: 'LoginFailed',
107834
108173
  LogoutFailed: 'LogoutFailed',
107835
108174
  ManualResizeRequest: 'ManualResizeRequest',
107836
- DisplaySimpleNotificationRequest: 'DisplaySimpleNotificationRequest'
108175
+ DisplaySimpleNotificationRequest: 'DisplaySimpleNotificationRequest',
108176
+ TenantChanged: 'TenantChanged'
107837
108177
  };
107838
108178
  // EXTERNAL MODULE: ../../../node_modules/uuid/dist/v4.js + 3 modules
107839
108179
  var v4 = __webpack_require__(718);
@@ -117081,8 +117421,8 @@ var ComponentRegistry = /*#__PURE__*/function () {
117081
117421
  var dist = __webpack_require__(310);
117082
117422
  // EXTERNAL MODULE: ../../MJGlobal/dist/index.js + 17 modules
117083
117423
  var MJGlobal_dist = __webpack_require__(232);
117084
- // EXTERNAL MODULE: ../../MJCoreEntities/dist/index.js + 47 modules
117085
- var MJCoreEntities_dist = __webpack_require__(346);
117424
+ // EXTERNAL MODULE: ../../MJCoreEntities/dist/index.js + 49 modules
117425
+ var MJCoreEntities_dist = __webpack_require__(760);
117086
117426
  ;// ./dist/registry/component-registry-service.js
117087
117427
  function component_registry_service_typeof(o) { "@babel/helpers - typeof"; return component_registry_service_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, component_registry_service_typeof(o); }
117088
117428
  var _ComponentRegistryService;
@@ -119538,7 +119878,7 @@ var ComponentManager = /*#__PURE__*/function () {
119538
119878
  stats.compiled++;
119539
119879
  }
119540
119880
  }
119541
- dependencies = spec.dependencies || ((_result$spec2 = result.spec) === null || _result$spec2 === void 0 ? void 0 : _result$spec2.dependencies);
119881
+ dependencies = this.resolveDependencies(spec.dependencies, (_result$spec2 = result.spec) === null || _result$spec2 === void 0 ? void 0 : _result$spec2.dependencies);
119542
119882
  if (!dependencies) {
119543
119883
  _context5.n = 9;
119544
119884
  break;
@@ -119635,6 +119975,20 @@ var ComponentManager = /*#__PURE__*/function () {
119635
119975
  }
119636
119976
  return loadDependenciesBatched;
119637
119977
  }()
119978
+ }, {
119979
+ key: "resolveDependencies",
119980
+ value: function resolveDependencies(inputDeps, fetchedDeps) {
119981
+ var inputHasDeps = inputDeps && inputDeps.length > 0;
119982
+ var inputHasCode = inputHasDeps && inputDeps.some(function (d) {
119983
+ return !!d.code;
119984
+ });
119985
+ if (inputHasCode) return inputDeps;
119986
+ if (!inputHasDeps) return fetchedDeps || inputDeps;
119987
+ if (fetchedDeps !== null && fetchedDeps !== void 0 && fetchedDeps.some(function (d) {
119988
+ return !!d.code;
119989
+ })) return fetchedDeps;
119990
+ return inputDeps;
119991
+ }
119638
119992
  }, {
119639
119993
  key: "needsFetch",
119640
119994
  value: function needsFetch(spec) {