@memberjunction/server 5.11.0 → 5.13.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.
Files changed (67) hide show
  1. package/dist/agents/skip-sdk.d.ts.map +1 -1
  2. package/dist/agents/skip-sdk.js +1 -0
  3. package/dist/agents/skip-sdk.js.map +1 -1
  4. package/dist/generated/generated.d.ts +163 -0
  5. package/dist/generated/generated.d.ts.map +1 -1
  6. package/dist/generated/generated.js +897 -0
  7. package/dist/generated/generated.js.map +1 -1
  8. package/dist/generic/ResolverBase.js +3 -3
  9. package/dist/generic/ResolverBase.js.map +1 -1
  10. package/dist/index.d.ts +2 -3
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +121 -90
  13. package/dist/index.js.map +1 -1
  14. package/dist/middleware/BaseServerMiddleware.d.ts +103 -0
  15. package/dist/middleware/BaseServerMiddleware.d.ts.map +1 -0
  16. package/dist/middleware/BaseServerMiddleware.js +104 -0
  17. package/dist/middleware/BaseServerMiddleware.js.map +1 -0
  18. package/dist/middleware/MJTenantFilterMiddleware.d.ts +22 -0
  19. package/dist/middleware/MJTenantFilterMiddleware.d.ts.map +1 -0
  20. package/dist/middleware/MJTenantFilterMiddleware.js +41 -0
  21. package/dist/middleware/MJTenantFilterMiddleware.js.map +1 -0
  22. package/dist/middleware/index.d.ts +3 -0
  23. package/dist/middleware/index.d.ts.map +1 -0
  24. package/dist/middleware/index.js +3 -0
  25. package/dist/middleware/index.js.map +1 -0
  26. package/dist/resolvers/AdhocQueryResolver.d.ts.map +1 -1
  27. package/dist/resolvers/AdhocQueryResolver.js +8 -0
  28. package/dist/resolvers/AdhocQueryResolver.js.map +1 -1
  29. package/dist/resolvers/CreateQueryResolver.d.ts +2 -0
  30. package/dist/resolvers/CreateQueryResolver.d.ts.map +1 -1
  31. package/dist/resolvers/CreateQueryResolver.js +11 -0
  32. package/dist/resolvers/CreateQueryResolver.js.map +1 -1
  33. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  34. package/dist/resolvers/GetDataResolver.js +16 -2
  35. package/dist/resolvers/GetDataResolver.js.map +1 -1
  36. package/dist/resolvers/QueryResolver.d.ts +2 -0
  37. package/dist/resolvers/QueryResolver.d.ts.map +1 -1
  38. package/dist/resolvers/QueryResolver.js +20 -0
  39. package/dist/resolvers/QueryResolver.js.map +1 -1
  40. package/dist/resolvers/RunAIAgentResolver.d.ts +24 -0
  41. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  42. package/dist/resolvers/RunAIAgentResolver.js +264 -1
  43. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  44. package/package.json +59 -59
  45. package/src/__tests__/bcsaas-integration.test.ts +1 -1
  46. package/src/agents/skip-sdk.ts +1 -0
  47. package/src/generated/generated.ts +623 -1
  48. package/src/generic/ResolverBase.ts +3 -3
  49. package/src/index.ts +139 -96
  50. package/src/middleware/BaseServerMiddleware.ts +141 -0
  51. package/src/middleware/MJTenantFilterMiddleware.ts +39 -0
  52. package/src/middleware/index.ts +2 -0
  53. package/src/resolvers/AdhocQueryResolver.ts +8 -0
  54. package/src/resolvers/CreateQueryResolver.ts +9 -0
  55. package/src/resolvers/GetDataResolver.ts +18 -2
  56. package/src/resolvers/QueryResolver.ts +18 -0
  57. package/src/resolvers/RunAIAgentResolver.ts +301 -2
  58. package/dist/hooks.d.ts +0 -65
  59. package/dist/hooks.d.ts.map +0 -1
  60. package/dist/hooks.js +0 -14
  61. package/dist/hooks.js.map +0 -1
  62. package/dist/test-dynamic-plugin.d.ts +0 -6
  63. package/dist/test-dynamic-plugin.d.ts.map +0 -1
  64. package/dist/test-dynamic-plugin.js +0 -18
  65. package/dist/test-dynamic-plugin.js.map +0 -1
  66. package/src/hooks.ts +0 -77
  67. package/src/test-dynamic-plugin.ts +0 -36
@@ -18,7 +18,7 @@ import { mj_core_schema } from '../config.js';
18
18
 
19
19
 
20
20
 
21
- import { MJAccessControlRuleEntity, MJActionAuthorizationEntity, MJActionCategoryEntity, MJActionContextTypeEntity, MJActionContextEntity, MJActionExecutionLogEntity, MJActionFilterEntity, MJActionLibraryEntity, MJActionParamEntity, MJActionResultCodeEntity, MJActionEntity, MJAIActionEntity, MJAIAgentActionEntity, MJAIAgentArtifactTypeEntity, MJAIAgentConfigurationEntity, MJAIAgentDataSourceEntity, MJAIAgentExampleEntity, MJAIAgentLearningCycleEntity, MJAIAgentModalityEntity, MJAIAgentModelEntity, MJAIAgentNoteTypeEntity, MJAIAgentNoteEntity, MJAIAgentPermissionEntity, MJAIAgentPromptEntity, MJAIAgentRelationshipEntity, MJAIAgentRequestEntity, MJAIAgentRunMediaEntity, MJAIAgentRunStepEntity, MJAIAgentRunEntity, MJAIAgentStepPathEntity, MJAIAgentStepEntity, MJAIAgentTypeEntity, MJAIAgentEntity, MJAIArchitectureEntity, MJAIConfigurationParamEntity, MJAIConfigurationEntity, MJAICredentialBindingEntity, MJAIModalityEntity, MJAIModelActionEntity, MJAIModelArchitectureEntity, MJAIModelCostEntity, MJAIModelModalityEntity, MJAIModelPriceTypeEntity, MJAIModelPriceUnitTypeEntity, MJAIModelTypeEntity, MJAIModelVendorEntity, MJAIModelEntity, MJAIPromptCategoryEntity, MJAIPromptModelEntity, MJAIPromptRunMediaEntity, MJAIPromptRunEntity, MJAIPromptTypeEntity, MJAIPromptEntity, MJAIResultCacheEntity, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeEntity, MJAIVendorEntity, MJAPIApplicationScopeEntity, MJAPIApplicationEntity, MJAPIKeyApplicationEntity, MJAPIKeyScopeEntity, MJAPIKeyUsageLogEntity, MJAPIKeyEntity, MJAPIScopeEntity, MJApplicationEntityEntity, MJApplicationSettingEntity, MJApplicationEntity, MJArtifactPermissionEntity, MJArtifactTypeEntity, MJArtifactUseEntity, MJArtifactVersionAttributeEntity, MJArtifactVersionEntity, MJArtifactEntity, MJAuditLogTypeEntity, MJAuditLogEntity, MJAuthorizationRoleEntity, MJAuthorizationEntity, MJCollectionArtifactEntity, MJCollectionPermissionEntity, MJCollectionEntity, MJCommunicationBaseMessageTypeEntity, MJCommunicationLogEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderEntity, MJCommunicationRunEntity, MJCompanyEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunEntity, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationEntity, MJComponentDependencyEntity, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentRegistryEntity, MJComponentEntity, MJContentFileTypeEntity, MJContentItemAttributeEntity, MJContentItemTagEntity, MJContentItemEntity, MJContentProcessRunEntity, MJContentSourceParamEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeEntity, MJContentSourceEntity, MJContentTypeAttributeEntity, MJContentTypeEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactVersionEntity, MJConversationArtifactEntity, MJConversationDetailArtifactEntity, MJConversationDetailAttachmentEntity, MJConversationDetailRatingEntity, MJConversationDetailEntity, MJConversationEntity, MJCredentialCategoryEntity, MJCredentialTypeEntity, MJCredentialEntity, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryPermissionEntity, MJDashboardPartTypeEntity, MJDashboardPermissionEntity, MJDashboardUserPreferenceEntity, MJDashboardUserStateEntity, MJDashboardEntity, MJDataContextItemEntity, MJDataContextEntity, MJDatasetItemEntity, MJDatasetEntity, MJDuplicateRunDetailMatchEntity, MJDuplicateRunDetailEntity, MJDuplicateRunEntity, MJEmployeeCompanyIntegrationEntity, MJEmployeeRoleEntity, MJEmployeeSkillEntity, MJEmployeeEntity, MJEncryptionAlgorithmEntity, MJEncryptionKeySourceEntity, MJEncryptionKeyEntity, MJEntityEntity, MJEntityActionFilterEntity, MJEntityActionInvocationTypeEntity, MJEntityActionInvocationEntity, MJEntityActionParamEntity, MJEntityActionEntity, MJEntityAIActionEntity, MJEntityCommunicationFieldEntity, MJEntityCommunicationMessageTypeEntity, MJEntityDocumentRunEntity, MJEntityDocumentSettingEntity, MJEntityDocumentTypeEntity, MJEntityDocumentEntity, MJEntityFieldValueEntity, MJEntityFieldEntity, MJEntityPermissionEntity, MJEntityRecordDocumentEntity, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipEntity, MJEntitySettingEntity, MJEnvironmentEntity, MJErrorLogEntity, MJExplorerNavigationItemEntity, MJFileCategoryEntity, MJFileEntityRecordLinkEntity, MJFileStorageAccountEntity, MJFileStorageProviderEntity, MJFileEntity, MJGeneratedCodeCategoryEntity, MJGeneratedCodeEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectEntity, MJIntegrationSourceTypeEntity, MJIntegrationURLFormatEntity, MJIntegrationEntity, MJLibraryEntity, MJLibraryItemEntity, MJListCategoryEntity, MJListDetailEntity, MJListInvitationEntity, MJListShareEntity, MJListEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionToolEntity, MJMCPServerConnectionEntity, MJMCPServerToolEntity, MJMCPServerEntity, MJMCPToolExecutionLogEntity, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthorizationStateEntity, MJOAuthClientRegistrationEntity, MJOAuthTokenEntity, MJOpenAppDependencyEntity, MJOpenAppInstallHistoryEntity, MJOpenAppEntity, MJOutputDeliveryTypeEntity, MJOutputFormatTypeEntity, MJOutputTriggerTypeEntity, MJProjectEntity, MJPublicLinkEntity, MJQueryEntity, MJQueryCategoryEntity, MJQueryDependencyEntity, MJQueryEntityEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryPermissionEntity, MJQuerySQLEntity, MJQueueTaskEntity, MJQueueTypeEntity, MJQueueEntity, MJRecommendationItemEntity, MJRecommendationProviderEntity, MJRecommendationRunEntity, MJRecommendationEntity, MJRecordChangeReplayRunEntity, MJRecordChangeEntity, MJRecordLinkEntity, MJRecordMergeDeletionLogEntity, MJRecordMergeLogEntity, MJReportCategoryEntity, MJReportSnapshotEntity, MJReportUserStateEntity, MJReportVersionEntity, MJReportEntity, MJResourceLinkEntity, MJResourcePermissionEntity, MJResourceTypeEntity, MJRoleEntity, MJRowLevelSecurityFilterEntity, MJScheduledActionParamEntity, MJScheduledActionEntity, MJScheduledJobRunEntity, MJScheduledJobTypeEntity, MJScheduledJobEntity, MJSchemaInfoEntity, MJSkillEntity, MJSQLDialectEntity, MJTaggedItemEntity, MJTagEntity, MJTaskDependencyEntity, MJTaskTypeEntity, MJTaskEntity, MJTemplateCategoryEntity, MJTemplateContentTypeEntity, MJTemplateContentEntity, MJTemplateParamEntity, MJTemplateEntity, MJTestRubricEntity, MJTestRunFeedbackEntity, MJTestRunOutputTypeEntity, MJTestRunOutputEntity, MJTestRunEntity, MJTestSuiteRunEntity, MJTestSuiteTestEntity, MJTestSuiteEntity, MJTestTypeEntity, MJTestEntity, MJUserApplicationEntityEntity, MJUserApplicationEntity, MJUserFavoriteEntity, MJUserNotificationPreferenceEntity, MJUserNotificationTypeEntity, MJUserNotificationEntity, MJUserRecordLogEntity, MJUserRoleEntity, MJUserSettingEntity, MJUserViewCategoryEntity, MJUserViewRunDetailEntity, MJUserViewRunEntity, MJUserViewEntity, MJUserEntity, MJVectorDatabaseEntity, MJVectorIndexEntity, MJVersionInstallationEntity, MJVersionLabelItemEntity, MJVersionLabelRestoreEntity, MJVersionLabelEntity, MJWorkflowEngineEntity, MJWorkflowRunEntity, MJWorkflowEntity, MJWorkspaceItemEntity, MJWorkspaceEntity } from '@memberjunction/core-entities';
21
+ import { MJAccessControlRuleEntity, MJActionAuthorizationEntity, MJActionCategoryEntity, MJActionContextTypeEntity, MJActionContextEntity, MJActionExecutionLogEntity, MJActionFilterEntity, MJActionLibraryEntity, MJActionParamEntity, MJActionResultCodeEntity, MJActionEntity, MJAIActionEntity, MJAIAgentActionEntity, MJAIAgentArtifactTypeEntity, MJAIAgentCategoryEntity, MJAIAgentConfigurationEntity, MJAIAgentDataSourceEntity, MJAIAgentExampleEntity, MJAIAgentLearningCycleEntity, MJAIAgentModalityEntity, MJAIAgentModelEntity, MJAIAgentNoteTypeEntity, MJAIAgentNoteEntity, MJAIAgentPermissionEntity, MJAIAgentPromptEntity, MJAIAgentRelationshipEntity, MJAIAgentRequestTypeEntity, MJAIAgentRequestEntity, MJAIAgentRunMediaEntity, MJAIAgentRunStepEntity, MJAIAgentRunEntity, MJAIAgentStepPathEntity, MJAIAgentStepEntity, MJAIAgentTypeEntity, MJAIAgentEntity, MJAIArchitectureEntity, MJAIConfigurationParamEntity, MJAIConfigurationEntity, MJAICredentialBindingEntity, MJAIModalityEntity, MJAIModelActionEntity, MJAIModelArchitectureEntity, MJAIModelCostEntity, MJAIModelModalityEntity, MJAIModelPriceTypeEntity, MJAIModelPriceUnitTypeEntity, MJAIModelTypeEntity, MJAIModelVendorEntity, MJAIModelEntity, MJAIPromptCategoryEntity, MJAIPromptModelEntity, MJAIPromptRunMediaEntity, MJAIPromptRunEntity, MJAIPromptTypeEntity, MJAIPromptEntity, MJAIResultCacheEntity, MJAIVendorTypeDefinitionEntity, MJAIVendorTypeEntity, MJAIVendorEntity, MJAPIApplicationScopeEntity, MJAPIApplicationEntity, MJAPIKeyApplicationEntity, MJAPIKeyScopeEntity, MJAPIKeyUsageLogEntity, MJAPIKeyEntity, MJAPIScopeEntity, MJApplicationEntityEntity, MJApplicationSettingEntity, MJApplicationEntity, MJArtifactPermissionEntity, MJArtifactTypeEntity, MJArtifactUseEntity, MJArtifactVersionAttributeEntity, MJArtifactVersionEntity, MJArtifactEntity, MJAuditLogTypeEntity, MJAuditLogEntity, MJAuthorizationRoleEntity, MJAuthorizationEntity, MJCollectionArtifactEntity, MJCollectionPermissionEntity, MJCollectionEntity, MJCommunicationBaseMessageTypeEntity, MJCommunicationLogEntity, MJCommunicationProviderMessageTypeEntity, MJCommunicationProviderEntity, MJCommunicationRunEntity, MJCompanyEntity, MJCompanyIntegrationEntityMapEntity, MJCompanyIntegrationFieldMapEntity, MJCompanyIntegrationRecordMapEntity, MJCompanyIntegrationRunAPILogEntity, MJCompanyIntegrationRunDetailEntity, MJCompanyIntegrationRunEntity, MJCompanyIntegrationSyncWatermarkEntity, MJCompanyIntegrationEntity, MJComponentDependencyEntity, MJComponentLibraryEntity, MJComponentLibraryLinkEntity, MJComponentRegistryEntity, MJComponentEntity, MJContentFileTypeEntity, MJContentItemAttributeEntity, MJContentItemTagEntity, MJContentItemEntity, MJContentProcessRunEntity, MJContentSourceParamEntity, MJContentSourceTypeParamEntity, MJContentSourceTypeEntity, MJContentSourceEntity, MJContentTypeAttributeEntity, MJContentTypeEntity, MJConversationArtifactPermissionEntity, MJConversationArtifactVersionEntity, MJConversationArtifactEntity, MJConversationDetailArtifactEntity, MJConversationDetailAttachmentEntity, MJConversationDetailRatingEntity, MJConversationDetailEntity, MJConversationEntity, MJCredentialCategoryEntity, MJCredentialTypeEntity, MJCredentialEntity, MJDashboardCategoryEntity, MJDashboardCategoryLinkEntity, MJDashboardCategoryPermissionEntity, MJDashboardPartTypeEntity, MJDashboardPermissionEntity, MJDashboardUserPreferenceEntity, MJDashboardUserStateEntity, MJDashboardEntity, MJDataContextItemEntity, MJDataContextEntity, MJDatasetItemEntity, MJDatasetEntity, MJDuplicateRunDetailMatchEntity, MJDuplicateRunDetailEntity, MJDuplicateRunEntity, MJEmployeeCompanyIntegrationEntity, MJEmployeeRoleEntity, MJEmployeeSkillEntity, MJEmployeeEntity, MJEncryptionAlgorithmEntity, MJEncryptionKeySourceEntity, MJEncryptionKeyEntity, MJEntityEntity, MJEntityActionFilterEntity, MJEntityActionInvocationTypeEntity, MJEntityActionInvocationEntity, MJEntityActionParamEntity, MJEntityActionEntity, MJEntityAIActionEntity, MJEntityCommunicationFieldEntity, MJEntityCommunicationMessageTypeEntity, MJEntityDocumentRunEntity, MJEntityDocumentSettingEntity, MJEntityDocumentTypeEntity, MJEntityDocumentEntity, MJEntityFieldValueEntity, MJEntityFieldEntity, MJEntityPermissionEntity, MJEntityRecordDocumentEntity, MJEntityRelationshipDisplayComponentEntity, MJEntityRelationshipEntity, MJEntitySettingEntity, MJEnvironmentEntity, MJErrorLogEntity, MJExplorerNavigationItemEntity, MJFileCategoryEntity, MJFileEntityRecordLinkEntity, MJFileStorageAccountEntity, MJFileStorageProviderEntity, MJFileEntity, MJGeneratedCodeCategoryEntity, MJGeneratedCodeEntity, MJIntegrationObjectFieldEntity, MJIntegrationObjectEntity, MJIntegrationSourceTypeEntity, MJIntegrationURLFormatEntity, MJIntegrationEntity, MJLibraryEntity, MJLibraryItemEntity, MJListCategoryEntity, MJListDetailEntity, MJListInvitationEntity, MJListShareEntity, MJListEntity, MJMCPServerConnectionPermissionEntity, MJMCPServerConnectionToolEntity, MJMCPServerConnectionEntity, MJMCPServerToolEntity, MJMCPServerEntity, MJMCPToolExecutionLogEntity, MJOAuthAuthServerMetadataCacheEntity, MJOAuthAuthorizationStateEntity, MJOAuthClientRegistrationEntity, MJOAuthTokenEntity, MJOpenAppDependencyEntity, MJOpenAppInstallHistoryEntity, MJOpenAppEntity, MJOutputDeliveryTypeEntity, MJOutputFormatTypeEntity, MJOutputTriggerTypeEntity, MJProjectEntity, MJPublicLinkEntity, MJQueryEntity, MJQueryCategoryEntity, MJQueryDependencyEntity, MJQueryEntityEntity, MJQueryFieldEntity, MJQueryParameterEntity, MJQueryPermissionEntity, MJQuerySQLEntity, MJQueueTaskEntity, MJQueueTypeEntity, MJQueueEntity, MJRecommendationItemEntity, MJRecommendationProviderEntity, MJRecommendationRunEntity, MJRecommendationEntity, MJRecordChangeReplayRunEntity, MJRecordChangeEntity, MJRecordLinkEntity, MJRecordMergeDeletionLogEntity, MJRecordMergeLogEntity, MJReportCategoryEntity, MJReportSnapshotEntity, MJReportUserStateEntity, MJReportVersionEntity, MJReportEntity, MJResourceLinkEntity, MJResourcePermissionEntity, MJResourceTypeEntity, MJRoleEntity, MJRowLevelSecurityFilterEntity, MJScheduledActionParamEntity, MJScheduledActionEntity, MJScheduledJobRunEntity, MJScheduledJobTypeEntity, MJScheduledJobEntity, MJSchemaInfoEntity, MJSkillEntity, MJSQLDialectEntity, MJTaggedItemEntity, MJTagEntity, MJTaskDependencyEntity, MJTaskTypeEntity, MJTaskEntity, MJTemplateCategoryEntity, MJTemplateContentTypeEntity, MJTemplateContentEntity, MJTemplateParamEntity, MJTemplateEntity, MJTestRubricEntity, MJTestRunFeedbackEntity, MJTestRunOutputTypeEntity, MJTestRunOutputEntity, MJTestRunEntity, MJTestSuiteRunEntity, MJTestSuiteTestEntity, MJTestSuiteEntity, MJTestTypeEntity, MJTestEntity, MJUserApplicationEntityEntity, MJUserApplicationEntity, MJUserFavoriteEntity, MJUserNotificationPreferenceEntity, MJUserNotificationTypeEntity, MJUserNotificationEntity, MJUserRecordLogEntity, MJUserRoleEntity, MJUserSettingEntity, MJUserViewCategoryEntity, MJUserViewRunDetailEntity, MJUserViewRunEntity, MJUserViewEntity, MJUserEntity, MJVectorDatabaseEntity, MJVectorIndexEntity, MJVersionInstallationEntity, MJVersionLabelItemEntity, MJVersionLabelRestoreEntity, MJVersionLabelEntity, MJWorkflowEngineEntity, MJWorkflowRunEntity, MJWorkflowEntity, MJWorkspaceItemEntity, MJWorkspaceEntity } from '@memberjunction/core-entities';
22
22
 
23
23
 
24
24
  //****************************************************************************
@@ -1988,6 +1988,9 @@ export class MJAction_ {
1988
1988
  @MaxLength(36)
1989
1989
  DefaultCompactPromptID?: string;
1990
1990
 
1991
+ @Field({nullable: true, description: `Optional JSON configuration for the action. For integration actions, contains routing info: integrationName, objectName, verb, and optional connectorConfig. Non-integration actions leave this NULL.`})
1992
+ Config?: string;
1993
+
1991
1994
  @Field({nullable: true})
1992
1995
  @MaxLength(255)
1993
1996
  Category?: string;
@@ -2113,6 +2116,9 @@ export class CreateMJActionInput {
2113
2116
 
2114
2117
  @Field({ nullable: true })
2115
2118
  DefaultCompactPromptID: string | null;
2119
+
2120
+ @Field({ nullable: true })
2121
+ Config: string | null;
2116
2122
  }
2117
2123
 
2118
2124
 
@@ -2184,6 +2190,9 @@ export class UpdateMJActionInput {
2184
2190
  @Field({ nullable: true })
2185
2191
  DefaultCompactPromptID?: string | null;
2186
2192
 
2193
+ @Field({ nullable: true })
2194
+ Config?: string | null;
2195
+
2187
2196
  @Field(() => [KeyValuePairInput], { nullable: true })
2188
2197
  OldValues___?: KeyValuePairInput[];
2189
2198
  }
@@ -3001,6 +3010,213 @@ export class MJAIAgentArtifactTypeResolver extends ResolverBase {
3001
3010
 
3002
3011
  }
3003
3012
 
3013
+ //****************************************************************************
3014
+ // ENTITY CLASS for MJ: AI Agent Categories
3015
+ //****************************************************************************
3016
+ @ObjectType({ description: `Hierarchical organizational grouping for AI agents. Categories form a tree via the ParentID self-referencing foreign key and can carry inherited assignment strategies.` })
3017
+ export class MJAIAgentCategory_ {
3018
+ @Field({description: `Primary key for the AIAgentCategory record.`})
3019
+ @MaxLength(36)
3020
+ ID: string;
3021
+
3022
+ @Field({description: `Unique display name for the category (e.g., Research, Customer Support, Data Processing).`})
3023
+ @MaxLength(200)
3024
+ Name: string;
3025
+
3026
+ @Field({nullable: true, description: `Optional description explaining the purpose and scope of this category.`})
3027
+ Description?: string;
3028
+
3029
+ @Field({nullable: true, description: `Self-referencing foreign key to the parent category, forming a tree hierarchy. NULL for root categories.`})
3030
+ @MaxLength(36)
3031
+ ParentID?: string;
3032
+
3033
+ @Field({nullable: true, description: `JSON-serialized AgentRequestAssignmentStrategy defining who receives feedback requests for agents in this category. Inherited by child categories that do not define their own strategy.`})
3034
+ AssignmentStrategy?: string;
3035
+
3036
+ @Field({description: `Whether this category is Active, Disabled, or Pending.`})
3037
+ @MaxLength(20)
3038
+ Status: string;
3039
+
3040
+ @Field()
3041
+ _mj__CreatedAt: Date;
3042
+
3043
+ @Field()
3044
+ _mj__UpdatedAt: Date;
3045
+
3046
+ @Field({nullable: true})
3047
+ @MaxLength(200)
3048
+ Parent?: string;
3049
+
3050
+ @Field({nullable: true})
3051
+ @MaxLength(36)
3052
+ RootParentID?: string;
3053
+
3054
+ @Field(() => [MJAIAgentCategory_])
3055
+ MJAIAgentCategories_ParentIDArray: MJAIAgentCategory_[]; // Link to MJAIAgentCategories
3056
+
3057
+ @Field(() => [MJAIAgent_])
3058
+ MJAIAgents_CategoryIDArray: MJAIAgent_[]; // Link to MJAIAgents
3059
+
3060
+ }
3061
+
3062
+ //****************************************************************************
3063
+ // INPUT TYPE for MJ: AI Agent Categories
3064
+ //****************************************************************************
3065
+ @InputType()
3066
+ export class CreateMJAIAgentCategoryInput {
3067
+ @Field({ nullable: true })
3068
+ ID?: string;
3069
+
3070
+ @Field({ nullable: true })
3071
+ Name?: string;
3072
+
3073
+ @Field({ nullable: true })
3074
+ Description: string | null;
3075
+
3076
+ @Field({ nullable: true })
3077
+ ParentID: string | null;
3078
+
3079
+ @Field({ nullable: true })
3080
+ AssignmentStrategy: string | null;
3081
+
3082
+ @Field({ nullable: true })
3083
+ Status?: string;
3084
+ }
3085
+
3086
+
3087
+ //****************************************************************************
3088
+ // INPUT TYPE for MJ: AI Agent Categories
3089
+ //****************************************************************************
3090
+ @InputType()
3091
+ export class UpdateMJAIAgentCategoryInput {
3092
+ @Field()
3093
+ ID: string;
3094
+
3095
+ @Field({ nullable: true })
3096
+ Name?: string;
3097
+
3098
+ @Field({ nullable: true })
3099
+ Description?: string | null;
3100
+
3101
+ @Field({ nullable: true })
3102
+ ParentID?: string | null;
3103
+
3104
+ @Field({ nullable: true })
3105
+ AssignmentStrategy?: string | null;
3106
+
3107
+ @Field({ nullable: true })
3108
+ Status?: string;
3109
+
3110
+ @Field(() => [KeyValuePairInput], { nullable: true })
3111
+ OldValues___?: KeyValuePairInput[];
3112
+ }
3113
+
3114
+ //****************************************************************************
3115
+ // RESOLVER for MJ: AI Agent Categories
3116
+ //****************************************************************************
3117
+ @ObjectType()
3118
+ export class RunMJAIAgentCategoryViewResult {
3119
+ @Field(() => [MJAIAgentCategory_])
3120
+ Results: MJAIAgentCategory_[];
3121
+
3122
+ @Field(() => String, {nullable: true})
3123
+ UserViewRunID?: string;
3124
+
3125
+ @Field(() => Int, {nullable: true})
3126
+ RowCount: number;
3127
+
3128
+ @Field(() => Int, {nullable: true})
3129
+ TotalRowCount: number;
3130
+
3131
+ @Field(() => Int, {nullable: true})
3132
+ ExecutionTime: number;
3133
+
3134
+ @Field({nullable: true})
3135
+ ErrorMessage?: string;
3136
+
3137
+ @Field(() => Boolean, {nullable: false})
3138
+ Success: boolean;
3139
+ }
3140
+
3141
+ @Resolver(MJAIAgentCategory_)
3142
+ export class MJAIAgentCategoryResolver extends ResolverBase {
3143
+ @Query(() => RunMJAIAgentCategoryViewResult)
3144
+ async RunMJAIAgentCategoryViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
3145
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
3146
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
3147
+ }
3148
+
3149
+ @Query(() => RunMJAIAgentCategoryViewResult)
3150
+ async RunMJAIAgentCategoryViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
3151
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
3152
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
3153
+ }
3154
+
3155
+ @Query(() => RunMJAIAgentCategoryViewResult)
3156
+ async RunMJAIAgentCategoryDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
3157
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
3158
+ input.EntityName = 'MJ: AI Agent Categories';
3159
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
3160
+ }
3161
+ @Query(() => MJAIAgentCategory_, { nullable: true })
3162
+ async MJAIAgentCategory(@Arg('ID', () => String) ID: string, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<MJAIAgentCategory_ | null> {
3163
+ this.CheckUserReadPermissions('MJ: AI Agent Categories', userPayload);
3164
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
3165
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIAgentCategories')} WHERE ${provider.QuoteIdentifier('ID')}='${ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Agent Categories', userPayload, EntityPermissionType.Read, 'AND');
3166
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
3167
+ const result = await this.MapFieldNamesToCodeNames('MJ: AI Agent Categories', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
3168
+ return result;
3169
+ }
3170
+
3171
+ @FieldResolver(() => [MJAIAgentCategory_])
3172
+ async MJAIAgentCategories_ParentIDArray(@Root() mjaiagentcategory_: MJAIAgentCategory_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
3173
+ this.CheckUserReadPermissions('MJ: AI Agent Categories', userPayload);
3174
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
3175
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIAgentCategories')} WHERE ${provider.QuoteIdentifier('ParentID')}='${mjaiagentcategory_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Agent Categories', userPayload, EntityPermissionType.Read, 'AND');
3176
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
3177
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Agent Categories', rows, this.GetUserFromPayload(userPayload));
3178
+ return result;
3179
+ }
3180
+
3181
+ @FieldResolver(() => [MJAIAgent_])
3182
+ async MJAIAgents_CategoryIDArray(@Root() mjaiagentcategory_: MJAIAgentCategory_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
3183
+ this.CheckUserReadPermissions('MJ: AI Agents', userPayload);
3184
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
3185
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIAgents')} WHERE ${provider.QuoteIdentifier('CategoryID')}='${mjaiagentcategory_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Agents', userPayload, EntityPermissionType.Read, 'AND');
3186
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
3187
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Agents', rows, this.GetUserFromPayload(userPayload));
3188
+ return result;
3189
+ }
3190
+
3191
+ @Mutation(() => MJAIAgentCategory_)
3192
+ async CreateMJAIAgentCategory(
3193
+ @Arg('input', () => CreateMJAIAgentCategoryInput) input: CreateMJAIAgentCategoryInput,
3194
+ @Ctx() { providers, userPayload }: AppContext,
3195
+ @PubSub() pubSub: PubSubEngine
3196
+ ) {
3197
+ const provider = GetReadWriteProvider(providers);
3198
+ return this.CreateRecord('MJ: AI Agent Categories', input, provider, userPayload, pubSub)
3199
+ }
3200
+
3201
+ @Mutation(() => MJAIAgentCategory_)
3202
+ async UpdateMJAIAgentCategory(
3203
+ @Arg('input', () => UpdateMJAIAgentCategoryInput) input: UpdateMJAIAgentCategoryInput,
3204
+ @Ctx() { providers, userPayload }: AppContext,
3205
+ @PubSub() pubSub: PubSubEngine
3206
+ ) {
3207
+ const provider = GetReadWriteProvider(providers);
3208
+ return this.UpdateRecord('MJ: AI Agent Categories', input, provider, userPayload, pubSub);
3209
+ }
3210
+
3211
+ @Mutation(() => MJAIAgentCategory_)
3212
+ async DeleteMJAIAgentCategory(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
3213
+ const provider = GetReadWriteProvider(providers);
3214
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
3215
+ return this.DeleteRecord('MJ: AI Agent Categories', key, options, provider, userPayload, pubSub);
3216
+ }
3217
+
3218
+ }
3219
+
3004
3220
  //****************************************************************************
3005
3221
  // ENTITY CLASS for MJ: AI Agent Configurations
3006
3222
  //****************************************************************************
@@ -5579,6 +5795,209 @@ export class MJAIAgentRelationshipResolver extends ResolverBase {
5579
5795
 
5580
5796
  }
5581
5797
 
5798
+ //****************************************************************************
5799
+ // ENTITY CLASS for MJ: AI Agent Request Types
5800
+ //****************************************************************************
5801
+ @ObjectType({ description: `Lookup table categorizing the types of requests an agent can make to a human (e.g., Approval, Information, Choice, Review, Custom).` })
5802
+ export class MJAIAgentRequestType_ {
5803
+ @Field({description: `Primary key for the AIAgentRequestType record.`})
5804
+ @MaxLength(36)
5805
+ ID: string;
5806
+
5807
+ @Field({description: `Unique display name for the request type (e.g., Approval, Information, Choice).`})
5808
+ @MaxLength(100)
5809
+ Name: string;
5810
+
5811
+ @Field({nullable: true, description: `Explains when and how this request type should be used by agents.`})
5812
+ Description?: string;
5813
+
5814
+ @Field({nullable: true, description: `Font Awesome icon class for UI rendering of this request type.`})
5815
+ @MaxLength(100)
5816
+ Icon?: string;
5817
+
5818
+ @Field()
5819
+ _mj__CreatedAt: Date;
5820
+
5821
+ @Field()
5822
+ _mj__UpdatedAt: Date;
5823
+
5824
+ @Field({nullable: true, description: `JSON-serialized AgentRequestAssignmentStrategy defining the default assignment strategy for requests of this type. Used as the lowest-priority fallback in the resolution chain.`})
5825
+ DefaultAssignmentStrategy?: string;
5826
+
5827
+ @Field(() => Int, {nullable: true, description: `Default priority (1-100) for requests of this type when no explicit priority is provided. NULL means use the system default of 50.`})
5828
+ DefaultPriority?: number;
5829
+
5830
+ @Field(() => Int, {nullable: true, description: `Default expiration time in minutes for requests of this type. NULL means requests do not expire by default.`})
5831
+ DefaultExpirationMinutes?: number;
5832
+
5833
+ @Field(() => Boolean, {description: `Whether requests of this type require a structured response from the human before the agent can resume. When 0, the agent may proceed with just an acknowledgment.`})
5834
+ RequiresResponse: boolean;
5835
+
5836
+ @Field(() => [MJAIAgentRequest_])
5837
+ MJAIAgentRequests_RequestTypeIDArray: MJAIAgentRequest_[]; // Link to MJAIAgentRequests
5838
+
5839
+ }
5840
+
5841
+ //****************************************************************************
5842
+ // INPUT TYPE for MJ: AI Agent Request Types
5843
+ //****************************************************************************
5844
+ @InputType()
5845
+ export class CreateMJAIAgentRequestTypeInput {
5846
+ @Field({ nullable: true })
5847
+ ID?: string;
5848
+
5849
+ @Field({ nullable: true })
5850
+ Name?: string;
5851
+
5852
+ @Field({ nullable: true })
5853
+ Description: string | null;
5854
+
5855
+ @Field({ nullable: true })
5856
+ Icon: string | null;
5857
+
5858
+ @Field({ nullable: true })
5859
+ DefaultAssignmentStrategy: string | null;
5860
+
5861
+ @Field(() => Int, { nullable: true })
5862
+ DefaultPriority: number | null;
5863
+
5864
+ @Field(() => Int, { nullable: true })
5865
+ DefaultExpirationMinutes: number | null;
5866
+
5867
+ @Field(() => Boolean, { nullable: true })
5868
+ RequiresResponse?: boolean;
5869
+ }
5870
+
5871
+
5872
+ //****************************************************************************
5873
+ // INPUT TYPE for MJ: AI Agent Request Types
5874
+ //****************************************************************************
5875
+ @InputType()
5876
+ export class UpdateMJAIAgentRequestTypeInput {
5877
+ @Field()
5878
+ ID: string;
5879
+
5880
+ @Field({ nullable: true })
5881
+ Name?: string;
5882
+
5883
+ @Field({ nullable: true })
5884
+ Description?: string | null;
5885
+
5886
+ @Field({ nullable: true })
5887
+ Icon?: string | null;
5888
+
5889
+ @Field({ nullable: true })
5890
+ DefaultAssignmentStrategy?: string | null;
5891
+
5892
+ @Field(() => Int, { nullable: true })
5893
+ DefaultPriority?: number | null;
5894
+
5895
+ @Field(() => Int, { nullable: true })
5896
+ DefaultExpirationMinutes?: number | null;
5897
+
5898
+ @Field(() => Boolean, { nullable: true })
5899
+ RequiresResponse?: boolean;
5900
+
5901
+ @Field(() => [KeyValuePairInput], { nullable: true })
5902
+ OldValues___?: KeyValuePairInput[];
5903
+ }
5904
+
5905
+ //****************************************************************************
5906
+ // RESOLVER for MJ: AI Agent Request Types
5907
+ //****************************************************************************
5908
+ @ObjectType()
5909
+ export class RunMJAIAgentRequestTypeViewResult {
5910
+ @Field(() => [MJAIAgentRequestType_])
5911
+ Results: MJAIAgentRequestType_[];
5912
+
5913
+ @Field(() => String, {nullable: true})
5914
+ UserViewRunID?: string;
5915
+
5916
+ @Field(() => Int, {nullable: true})
5917
+ RowCount: number;
5918
+
5919
+ @Field(() => Int, {nullable: true})
5920
+ TotalRowCount: number;
5921
+
5922
+ @Field(() => Int, {nullable: true})
5923
+ ExecutionTime: number;
5924
+
5925
+ @Field({nullable: true})
5926
+ ErrorMessage?: string;
5927
+
5928
+ @Field(() => Boolean, {nullable: false})
5929
+ Success: boolean;
5930
+ }
5931
+
5932
+ @Resolver(MJAIAgentRequestType_)
5933
+ export class MJAIAgentRequestTypeResolver extends ResolverBase {
5934
+ @Query(() => RunMJAIAgentRequestTypeViewResult)
5935
+ async RunMJAIAgentRequestTypeViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
5936
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
5937
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
5938
+ }
5939
+
5940
+ @Query(() => RunMJAIAgentRequestTypeViewResult)
5941
+ async RunMJAIAgentRequestTypeViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
5942
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
5943
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
5944
+ }
5945
+
5946
+ @Query(() => RunMJAIAgentRequestTypeViewResult)
5947
+ async RunMJAIAgentRequestTypeDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
5948
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
5949
+ input.EntityName = 'MJ: AI Agent Request Types';
5950
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
5951
+ }
5952
+ @Query(() => MJAIAgentRequestType_, { nullable: true })
5953
+ async MJAIAgentRequestType(@Arg('ID', () => String) ID: string, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<MJAIAgentRequestType_ | null> {
5954
+ this.CheckUserReadPermissions('MJ: AI Agent Request Types', userPayload);
5955
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
5956
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIAgentRequestTypes')} WHERE ${provider.QuoteIdentifier('ID')}='${ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Agent Request Types', userPayload, EntityPermissionType.Read, 'AND');
5957
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
5958
+ const result = await this.MapFieldNamesToCodeNames('MJ: AI Agent Request Types', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
5959
+ return result;
5960
+ }
5961
+
5962
+ @FieldResolver(() => [MJAIAgentRequest_])
5963
+ async MJAIAgentRequests_RequestTypeIDArray(@Root() mjaiagentrequesttype_: MJAIAgentRequestType_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
5964
+ this.CheckUserReadPermissions('MJ: AI Agent Requests', userPayload);
5965
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
5966
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIAgentRequests')} WHERE ${provider.QuoteIdentifier('RequestTypeID')}='${mjaiagentrequesttype_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Agent Requests', userPayload, EntityPermissionType.Read, 'AND');
5967
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
5968
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Agent Requests', rows, this.GetUserFromPayload(userPayload));
5969
+ return result;
5970
+ }
5971
+
5972
+ @Mutation(() => MJAIAgentRequestType_)
5973
+ async CreateMJAIAgentRequestType(
5974
+ @Arg('input', () => CreateMJAIAgentRequestTypeInput) input: CreateMJAIAgentRequestTypeInput,
5975
+ @Ctx() { providers, userPayload }: AppContext,
5976
+ @PubSub() pubSub: PubSubEngine
5977
+ ) {
5978
+ const provider = GetReadWriteProvider(providers);
5979
+ return this.CreateRecord('MJ: AI Agent Request Types', input, provider, userPayload, pubSub)
5980
+ }
5981
+
5982
+ @Mutation(() => MJAIAgentRequestType_)
5983
+ async UpdateMJAIAgentRequestType(
5984
+ @Arg('input', () => UpdateMJAIAgentRequestTypeInput) input: UpdateMJAIAgentRequestTypeInput,
5985
+ @Ctx() { providers, userPayload }: AppContext,
5986
+ @PubSub() pubSub: PubSubEngine
5987
+ ) {
5988
+ const provider = GetReadWriteProvider(providers);
5989
+ return this.UpdateRecord('MJ: AI Agent Request Types', input, provider, userPayload, pubSub);
5990
+ }
5991
+
5992
+ @Mutation(() => MJAIAgentRequestType_)
5993
+ async DeleteMJAIAgentRequestType(@Arg('ID', () => String) ID: string, @Arg('options___', () => DeleteOptionsInput) options: DeleteOptionsInput, @Ctx() { providers, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
5994
+ const provider = GetReadWriteProvider(providers);
5995
+ const key = new CompositeKey([{FieldName: 'ID', Value: ID}]);
5996
+ return this.DeleteRecord('MJ: AI Agent Request Types', key, options, provider, userPayload, pubSub);
5997
+ }
5998
+
5999
+ }
6000
+
5582
6001
  //****************************************************************************
5583
6002
  // ENTITY CLASS for MJ: AI Agent Requests
5584
6003
  //****************************************************************************
@@ -5625,6 +6044,38 @@ export class MJAIAgentRequest_ {
5625
6044
  @Field()
5626
6045
  _mj__UpdatedAt: Date;
5627
6046
 
6047
+ @Field({nullable: true, description: `Foreign key to AIAgentRequestType. Categorizes the purpose of this request (Approval, Information, Choice, Review, Custom).`})
6048
+ @MaxLength(36)
6049
+ RequestTypeID?: string;
6050
+
6051
+ @Field({nullable: true, description: `JSON-serialized AgentResponseForm defining the structured input form the agent presents to the human. Uses the same form types as ConversationDetail.ResponseForm.`})
6052
+ ResponseSchema?: string;
6053
+
6054
+ @Field({nullable: true, description: `JSON structured response data provided by the human, conforming to the ResponseSchema definition.`})
6055
+ ResponseData?: string;
6056
+
6057
+ @Field(() => Int, {description: `Urgency level of the request as an integer from 1 (lowest) to 100 (highest). Default is 50. Suggested ranges: 1-25 Low, 26-50 Normal, 51-75 High, 76-100 Critical. Used for notification routing and dashboard sorting.`})
6058
+ Priority: number;
6059
+
6060
+ @Field({nullable: true, description: `Optional deadline for the human to respond. After this time the request may be marked Expired by a background process.`})
6061
+ ExpiresAt?: Date;
6062
+
6063
+ @Field({nullable: true, description: `Foreign key to AIAgentRun. The agent run that created this request. Used to trace request origin in run chains.`})
6064
+ @MaxLength(36)
6065
+ OriginatingAgentRunID?: string;
6066
+
6067
+ @Field({nullable: true, description: `Foreign key to AIAgentRunStep. The specific execution step that triggered this request.`})
6068
+ @MaxLength(36)
6069
+ OriginatingAgentRunStepID?: string;
6070
+
6071
+ @Field({nullable: true, description: `Foreign key to AIAgentRun. The new agent run spawned after the human responds. NULL until a response triggers a resuming run.`})
6072
+ @MaxLength(36)
6073
+ ResumingAgentRunID?: string;
6074
+
6075
+ @Field({nullable: true, description: `Identifies where the response originated: Conversation (handled by chat resolver), Dashboard (slide-in panel), or API (external integration). Used by the server-side entity subclass to determine whether agent resumption is needed.`})
6076
+ @MaxLength(20)
6077
+ ResponseSource?: string;
6078
+
5628
6079
  @Field({nullable: true})
5629
6080
  @MaxLength(255)
5630
6081
  Agent?: string;
@@ -5637,6 +6088,22 @@ export class MJAIAgentRequest_ {
5637
6088
  @MaxLength(100)
5638
6089
  ResponseByUser?: string;
5639
6090
 
6091
+ @Field({nullable: true})
6092
+ @MaxLength(100)
6093
+ RequestType?: string;
6094
+
6095
+ @Field({nullable: true})
6096
+ @MaxLength(255)
6097
+ OriginatingAgentRun?: string;
6098
+
6099
+ @Field({nullable: true})
6100
+ @MaxLength(255)
6101
+ OriginatingAgentRunStep?: string;
6102
+
6103
+ @Field({nullable: true})
6104
+ @MaxLength(255)
6105
+ ResumingAgentRun?: string;
6106
+
5640
6107
  }
5641
6108
 
5642
6109
  //****************************************************************************
@@ -5673,6 +6140,33 @@ export class CreateMJAIAgentRequestInput {
5673
6140
 
5674
6141
  @Field({ nullable: true })
5675
6142
  Comments: string | null;
6143
+
6144
+ @Field({ nullable: true })
6145
+ RequestTypeID: string | null;
6146
+
6147
+ @Field({ nullable: true })
6148
+ ResponseSchema: string | null;
6149
+
6150
+ @Field({ nullable: true })
6151
+ ResponseData: string | null;
6152
+
6153
+ @Field(() => Int, { nullable: true })
6154
+ Priority?: number;
6155
+
6156
+ @Field({ nullable: true })
6157
+ ExpiresAt: Date | null;
6158
+
6159
+ @Field({ nullable: true })
6160
+ OriginatingAgentRunID: string | null;
6161
+
6162
+ @Field({ nullable: true })
6163
+ OriginatingAgentRunStepID: string | null;
6164
+
6165
+ @Field({ nullable: true })
6166
+ ResumingAgentRunID: string | null;
6167
+
6168
+ @Field({ nullable: true })
6169
+ ResponseSource: string | null;
5676
6170
  }
5677
6171
 
5678
6172
 
@@ -5711,6 +6205,33 @@ export class UpdateMJAIAgentRequestInput {
5711
6205
  @Field({ nullable: true })
5712
6206
  Comments?: string | null;
5713
6207
 
6208
+ @Field({ nullable: true })
6209
+ RequestTypeID?: string | null;
6210
+
6211
+ @Field({ nullable: true })
6212
+ ResponseSchema?: string | null;
6213
+
6214
+ @Field({ nullable: true })
6215
+ ResponseData?: string | null;
6216
+
6217
+ @Field(() => Int, { nullable: true })
6218
+ Priority?: number;
6219
+
6220
+ @Field({ nullable: true })
6221
+ ExpiresAt?: Date | null;
6222
+
6223
+ @Field({ nullable: true })
6224
+ OriginatingAgentRunID?: string | null;
6225
+
6226
+ @Field({ nullable: true })
6227
+ OriginatingAgentRunStepID?: string | null;
6228
+
6229
+ @Field({ nullable: true })
6230
+ ResumingAgentRunID?: string | null;
6231
+
6232
+ @Field({ nullable: true })
6233
+ ResponseSource?: string | null;
6234
+
5714
6235
  @Field(() => [KeyValuePairInput], { nullable: true })
5715
6236
  OldValues___?: KeyValuePairInput[];
5716
6237
  }
@@ -6191,6 +6712,9 @@ detailed information about what validation rules failed.`})
6191
6712
  @Field(() => [MJAIAgentRunStep_])
6192
6713
  MJAIAgentRunSteps_ParentIDArray: MJAIAgentRunStep_[]; // Link to MJAIAgentRunSteps
6193
6714
 
6715
+ @Field(() => [MJAIAgentRequest_])
6716
+ MJAIAgentRequests_OriginatingAgentRunStepIDArray: MJAIAgentRequest_[]; // Link to MJAIAgentRequests
6717
+
6194
6718
  }
6195
6719
 
6196
6720
  //****************************************************************************
@@ -6396,6 +6920,16 @@ export class MJAIAgentRunStepResolver extends ResolverBase {
6396
6920
  return result;
6397
6921
  }
6398
6922
 
6923
+ @FieldResolver(() => [MJAIAgentRequest_])
6924
+ async MJAIAgentRequests_OriginatingAgentRunStepIDArray(@Root() mjaiagentrunstep_: MJAIAgentRunStep_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
6925
+ this.CheckUserReadPermissions('MJ: AI Agent Requests', userPayload);
6926
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
6927
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIAgentRequests')} WHERE ${provider.QuoteIdentifier('OriginatingAgentRunStepID')}='${mjaiagentrunstep_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Agent Requests', userPayload, EntityPermissionType.Read, 'AND');
6928
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
6929
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Agent Requests', rows, this.GetUserFromPayload(userPayload));
6930
+ return result;
6931
+ }
6932
+
6399
6933
  @Mutation(() => MJAIAgentRunStep_)
6400
6934
  async CreateMJAIAgentRunStep(
6401
6935
  @Arg('input', () => CreateMJAIAgentRunStepInput) input: CreateMJAIAgentRunStepInput,
@@ -6655,6 +7189,12 @@ each time the agent processes a prompt step.`})
6655
7189
  @Field(() => [MJAIAgentRunMedia_])
6656
7190
  MJAIAgentRunMedias_AgentRunIDArray: MJAIAgentRunMedia_[]; // Link to MJAIAgentRunMedias
6657
7191
 
7192
+ @Field(() => [MJAIAgentRequest_])
7193
+ MJAIAgentRequests_OriginatingAgentRunIDArray: MJAIAgentRequest_[]; // Link to MJAIAgentRequests
7194
+
7195
+ @Field(() => [MJAIAgentRequest_])
7196
+ MJAIAgentRequests_ResumingAgentRunIDArray: MJAIAgentRequest_[]; // Link to MJAIAgentRequests
7197
+
6658
7198
  @Field(() => [MJAIPromptRun_])
6659
7199
  MJAIPromptRuns_AgentRunIDArray: MJAIPromptRun_[]; // Link to MJAIPromptRuns
6660
7200
 
@@ -7044,6 +7584,26 @@ export class MJAIAgentRunResolver extends ResolverBase {
7044
7584
  return result;
7045
7585
  }
7046
7586
 
7587
+ @FieldResolver(() => [MJAIAgentRequest_])
7588
+ async MJAIAgentRequests_OriginatingAgentRunIDArray(@Root() mjaiagentrun_: MJAIAgentRun_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
7589
+ this.CheckUserReadPermissions('MJ: AI Agent Requests', userPayload);
7590
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
7591
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIAgentRequests')} WHERE ${provider.QuoteIdentifier('OriginatingAgentRunID')}='${mjaiagentrun_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Agent Requests', userPayload, EntityPermissionType.Read, 'AND');
7592
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
7593
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Agent Requests', rows, this.GetUserFromPayload(userPayload));
7594
+ return result;
7595
+ }
7596
+
7597
+ @FieldResolver(() => [MJAIAgentRequest_])
7598
+ async MJAIAgentRequests_ResumingAgentRunIDArray(@Root() mjaiagentrun_: MJAIAgentRun_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
7599
+ this.CheckUserReadPermissions('MJ: AI Agent Requests', userPayload);
7600
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
7601
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIAgentRequests')} WHERE ${provider.QuoteIdentifier('ResumingAgentRunID')}='${mjaiagentrun_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Agent Requests', userPayload, EntityPermissionType.Read, 'AND');
7602
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
7603
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Agent Requests', rows, this.GetUserFromPayload(userPayload));
7604
+ return result;
7605
+ }
7606
+
7047
7607
  @FieldResolver(() => [MJAIPromptRun_])
7048
7608
  async MJAIPromptRuns_AgentRunIDArray(@Root() mjaiagentrun_: MJAIAgentRun_, @Ctx() { userPayload, providers }: AppContext, @PubSub() pubSub: PubSubEngine) {
7049
7609
  this.CheckUserReadPermissions('MJ: AI Prompt Runs', userPayload);
@@ -7690,6 +8250,9 @@ export class MJAIAgentType_ {
7690
8250
  @Field({nullable: true, 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.`})
7691
8251
  PromptParamsSchema?: string;
7692
8252
 
8253
+ @Field({nullable: true, 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.`})
8254
+ AssignmentStrategy?: string;
8255
+
7693
8256
  @Field({nullable: true})
7694
8257
  @MaxLength(255)
7695
8258
  SystemPrompt?: string;
@@ -7736,6 +8299,9 @@ export class CreateMJAIAgentTypeInput {
7736
8299
 
7737
8300
  @Field({ nullable: true })
7738
8301
  PromptParamsSchema: string | null;
8302
+
8303
+ @Field({ nullable: true })
8304
+ AssignmentStrategy: string | null;
7739
8305
  }
7740
8306
 
7741
8307
 
@@ -7777,6 +8343,9 @@ export class UpdateMJAIAgentTypeInput {
7777
8343
  @Field({ nullable: true })
7778
8344
  PromptParamsSchema?: string | null;
7779
8345
 
8346
+ @Field({ nullable: true })
8347
+ AssignmentStrategy?: string | null;
8348
+
7780
8349
  @Field(() => [KeyValuePairInput], { nullable: true })
7781
8350
  OldValues___?: KeyValuePairInput[];
7782
8351
  }
@@ -8095,6 +8664,10 @@ if this limit is exceeded.`})
8095
8664
  @Field({nullable: true, 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.`})
8096
8665
  RerankerConfiguration?: string;
8097
8666
 
8667
+ @Field({nullable: true, description: `Foreign key to AIAgentCategory. Assigns this agent to an organizational category for grouping, filtering, and inherited assignment strategy resolution.`})
8668
+ @MaxLength(36)
8669
+ CategoryID?: string;
8670
+
8098
8671
  @Field({nullable: true})
8099
8672
  @MaxLength(255)
8100
8673
  Parent?: string;
@@ -8119,6 +8692,10 @@ if this limit is exceeded.`})
8119
8692
  @MaxLength(50)
8120
8693
  AttachmentStorageProvider?: string;
8121
8694
 
8695
+ @Field({nullable: true})
8696
+ @MaxLength(200)
8697
+ Category?: string;
8698
+
8122
8699
  @Field({nullable: true})
8123
8700
  @MaxLength(36)
8124
8701
  RootParentID?: string;
@@ -8372,6 +8949,9 @@ export class CreateMJAIAgentInput {
8372
8949
 
8373
8950
  @Field({ nullable: true })
8374
8951
  RerankerConfiguration: string | null;
8952
+
8953
+ @Field({ nullable: true })
8954
+ CategoryID: string | null;
8375
8955
  }
8376
8956
 
8377
8957
 
@@ -8557,6 +9137,9 @@ export class UpdateMJAIAgentInput {
8557
9137
  @Field({ nullable: true })
8558
9138
  RerankerConfiguration?: string | null;
8559
9139
 
9140
+ @Field({ nullable: true })
9141
+ CategoryID?: string | null;
9142
+
8560
9143
  @Field(() => [KeyValuePairInput], { nullable: true })
8561
9144
  OldValues___?: KeyValuePairInput[];
8562
9145
  }
@@ -42828,6 +43411,18 @@ export class MJIntegrationObject_ {
42828
43411
  @Field()
42829
43412
  _mj__UpdatedAt: Date;
42830
43413
 
43414
+ @Field({nullable: true, description: `API path for create/update operations when different from the read APIPath. If NULL, the read APIPath is used for writes as well.`})
43415
+ @MaxLength(500)
43416
+ WriteAPIPath?: string;
43417
+
43418
+ @Field({nullable: true, description: `HTTP method for create operations. Defaults to POST.`})
43419
+ @MaxLength(10)
43420
+ WriteMethod?: string;
43421
+
43422
+ @Field({nullable: true, description: `HTTP method for delete operations. Defaults to DELETE.`})
43423
+ @MaxLength(10)
43424
+ DeleteMethod?: string;
43425
+
42831
43426
  @Field()
42832
43427
  @MaxLength(100)
42833
43428
  Integration: string;
@@ -42895,6 +43490,15 @@ export class CreateMJIntegrationObjectInput {
42895
43490
 
42896
43491
  @Field({ nullable: true })
42897
43492
  Status?: string;
43493
+
43494
+ @Field({ nullable: true })
43495
+ WriteAPIPath: string | null;
43496
+
43497
+ @Field({ nullable: true })
43498
+ WriteMethod?: string | null;
43499
+
43500
+ @Field({ nullable: true })
43501
+ DeleteMethod?: string | null;
42898
43502
  }
42899
43503
 
42900
43504
 
@@ -42954,6 +43558,15 @@ export class UpdateMJIntegrationObjectInput {
42954
43558
  @Field({ nullable: true })
42955
43559
  Status?: string;
42956
43560
 
43561
+ @Field({ nullable: true })
43562
+ WriteAPIPath?: string | null;
43563
+
43564
+ @Field({ nullable: true })
43565
+ WriteMethod?: string | null;
43566
+
43567
+ @Field({ nullable: true })
43568
+ DeleteMethod?: string | null;
43569
+
42957
43570
  @Field(() => [KeyValuePairInput], { nullable: true })
42958
43571
  OldValues___?: KeyValuePairInput[];
42959
43572
  }
@@ -43482,6 +44095,9 @@ export class MJIntegration_ {
43482
44095
  @MaxLength(36)
43483
44096
  CredentialTypeID?: string;
43484
44097
 
44098
+ @Field({nullable: true, description: `Icon for the integration. Supports Font Awesome CSS classes, image URLs, or base64 data URIs.`})
44099
+ Icon?: string;
44100
+
43485
44101
  @Field({nullable: true})
43486
44102
  @MaxLength(100)
43487
44103
  CredentialType?: string;
@@ -43531,6 +44147,9 @@ export class CreateMJIntegrationInput {
43531
44147
 
43532
44148
  @Field({ nullable: true })
43533
44149
  CredentialTypeID: string | null;
44150
+
44151
+ @Field({ nullable: true })
44152
+ Icon: string | null;
43534
44153
  }
43535
44154
 
43536
44155
 
@@ -43566,6 +44185,9 @@ export class UpdateMJIntegrationInput {
43566
44185
  @Field({ nullable: true })
43567
44186
  CredentialTypeID?: string | null;
43568
44187
 
44188
+ @Field({ nullable: true })
44189
+ Icon?: string | null;
44190
+
43569
44191
  @Field(() => [KeyValuePairInput], { nullable: true })
43570
44192
  OldValues___?: KeyValuePairInput[];
43571
44193
  }