@memberjunction/server 6.1.0-edge.1 → 6.1.0-edge.2

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 (136) hide show
  1. package/dist/auth/exampleNewUserSubClass.js +1 -1
  2. package/dist/auth/exampleNewUserSubClass.js.map +1 -1
  3. package/dist/auth/index.d.ts.map +1 -1
  4. package/dist/auth/index.js +9 -5
  5. package/dist/auth/index.js.map +1 -1
  6. package/dist/auth/magicLink/MagicLinkService.js +1 -1
  7. package/dist/auth/magicLink/MagicLinkService.js.map +1 -1
  8. package/dist/auth/newUsers.js +1 -1
  9. package/dist/auth/newUsers.js.map +1 -1
  10. package/dist/context.js +2 -2
  11. package/dist/context.js.map +1 -1
  12. package/dist/generated/generated.d.ts +45 -4
  13. package/dist/generated/generated.d.ts.map +1 -1
  14. package/dist/generated/generated.js +229 -21
  15. package/dist/generated/generated.js.map +1 -1
  16. package/dist/generic/ResolverBase.d.ts +19 -3
  17. package/dist/generic/ResolverBase.d.ts.map +1 -1
  18. package/dist/generic/ResolverBase.js +51 -17
  19. package/dist/generic/ResolverBase.js.map +1 -1
  20. package/dist/index.d.ts +1 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +85 -41
  23. package/dist/index.js.map +1 -1
  24. package/dist/logging/secretRedactor.d.ts +9 -0
  25. package/dist/logging/secretRedactor.d.ts.map +1 -1
  26. package/dist/logging/secretRedactor.js +39 -0
  27. package/dist/logging/secretRedactor.js.map +1 -1
  28. package/dist/middleware/BaseServerMiddleware.d.ts +5 -0
  29. package/dist/middleware/BaseServerMiddleware.d.ts.map +1 -1
  30. package/dist/middleware/BaseServerMiddleware.js +5 -0
  31. package/dist/middleware/BaseServerMiddleware.js.map +1 -1
  32. package/dist/realtimeWidget/WidgetSessionService.js +1 -1
  33. package/dist/realtimeWidget/WidgetSessionService.js.map +1 -1
  34. package/dist/realtimeWidget/widgetGuestElevation.js +1 -1
  35. package/dist/realtimeWidget/widgetGuestElevation.js.map +1 -1
  36. package/dist/resolvers/ActionResolver.d.ts.map +1 -1
  37. package/dist/resolvers/ActionResolver.js +12 -0
  38. package/dist/resolvers/ActionResolver.js.map +1 -1
  39. package/dist/resolvers/ComponentRegistryResolver.js +1 -1
  40. package/dist/resolvers/ComponentRegistryResolver.js.map +1 -1
  41. package/dist/resolvers/EntityPermissionResolver.js +1 -1
  42. package/dist/resolvers/EntityPermissionResolver.js.map +1 -1
  43. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts +9 -0
  44. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
  45. package/dist/resolvers/IntegrationDiscoveryResolver.js +3 -1
  46. package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
  47. package/dist/resolvers/PotentialDuplicateRecordResolver.js +1 -1
  48. package/dist/resolvers/PotentialDuplicateRecordResolver.js.map +1 -1
  49. package/dist/resolvers/RealtimeClientSessionResolver.d.ts +10 -0
  50. package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
  51. package/dist/resolvers/RealtimeClientSessionResolver.js +5 -0
  52. package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
  53. package/dist/resolvers/SearchEntitiesResolver.js +1 -1
  54. package/dist/resolvers/SearchEntitiesResolver.js.map +1 -1
  55. package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
  56. package/dist/resolvers/SqlLoggingConfigResolver.js +1 -1
  57. package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
  58. package/dist/resolvers/SyncRolesUsersResolver.js +2 -2
  59. package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
  60. package/dist/resolvers/UserFavoriteResolver.js +1 -1
  61. package/dist/resolvers/UserFavoriteResolver.js.map +1 -1
  62. package/dist/rest/OAuthCallbackHandler.js +1 -1
  63. package/dist/rest/OAuthCallbackHandler.js.map +1 -1
  64. package/dist/rest/SignatureWebhookHandler.js +1 -1
  65. package/dist/rest/SignatureWebhookHandler.js.map +1 -1
  66. package/dist/services/DurableEntityActionTaskSubmitter.d.ts +26 -0
  67. package/dist/services/DurableEntityActionTaskSubmitter.d.ts.map +1 -0
  68. package/dist/services/DurableEntityActionTaskSubmitter.js +55 -0
  69. package/dist/services/DurableEntityActionTaskSubmitter.js.map +1 -0
  70. package/dist/services/ScheduledJobsService.js +1 -1
  71. package/dist/services/ScheduledJobsService.js.map +1 -1
  72. package/dist/services/StartTaskGraphDispatcher.d.ts.map +1 -1
  73. package/dist/services/StartTaskGraphDispatcher.js +16 -1
  74. package/dist/services/StartTaskGraphDispatcher.js.map +1 -1
  75. package/dist/services/TaskGraphActionRunner.d.ts +34 -0
  76. package/dist/services/TaskGraphActionRunner.d.ts.map +1 -0
  77. package/dist/services/TaskGraphActionRunner.js +95 -0
  78. package/dist/services/TaskGraphActionRunner.js.map +1 -0
  79. package/dist/services/TaskGraphAgentRunner.d.ts +13 -0
  80. package/dist/services/TaskGraphAgentRunner.d.ts.map +1 -1
  81. package/dist/services/TaskGraphAgentRunner.js +30 -0
  82. package/dist/services/TaskGraphAgentRunner.js.map +1 -1
  83. package/dist/services/TaskGraphPromptRunner.d.ts +31 -0
  84. package/dist/services/TaskGraphPromptRunner.d.ts.map +1 -0
  85. package/dist/services/TaskGraphPromptRunner.js +134 -0
  86. package/dist/services/TaskGraphPromptRunner.js.map +1 -0
  87. package/dist/telephony/RingCentralTelephonyService.js +1 -1
  88. package/dist/telephony/RingCentralTelephonyService.js.map +1 -1
  89. package/dist/telephony/TwilioTelephonyRouter.js +1 -1
  90. package/dist/telephony/TwilioTelephonyRouter.js.map +1 -1
  91. package/dist/telephony/VonageTelephonyRouter.js +1 -1
  92. package/dist/telephony/VonageTelephonyRouter.js.map +1 -1
  93. package/package.json +90 -90
  94. package/src/__tests__/RealtimeClientSessionResolver.test.ts +1 -1
  95. package/src/__tests__/ResolverBase.frozenRecordMapping.test.ts +133 -0
  96. package/src/__tests__/ResolverBase.transportMapping.test.ts +289 -0
  97. package/src/__tests__/SessionManager.test.ts +1 -1
  98. package/src/__tests__/WidgetSessionService.test.ts +1 -1
  99. package/src/__tests__/databaseAbstraction.test.ts +1 -1
  100. package/src/__tests__/magicLinkService.provisionLog.test.ts +1 -1
  101. package/src/__tests__/resolverBase.rls.test.ts +3 -0
  102. package/src/__tests__/secretRedactor.failOpen.test.ts +135 -0
  103. package/src/__tests__/widgetGuestElevation.test.ts +1 -1
  104. package/src/auth/exampleNewUserSubClass.ts +1 -1
  105. package/src/auth/index.ts +10 -6
  106. package/src/auth/magicLink/MagicLinkService.ts +1 -1
  107. package/src/auth/newUsers.ts +1 -1
  108. package/src/context.ts +2 -2
  109. package/src/generated/generated.ts +166 -17
  110. package/src/generic/ResolverBase.ts +52 -17
  111. package/src/index.ts +92 -42
  112. package/src/logging/secretRedactor.ts +43 -0
  113. package/src/middleware/BaseServerMiddleware.ts +5 -0
  114. package/src/realtimeWidget/WidgetSessionService.ts +1 -1
  115. package/src/realtimeWidget/widgetGuestElevation.ts +1 -1
  116. package/src/resolvers/ActionResolver.ts +13 -0
  117. package/src/resolvers/ComponentRegistryResolver.ts +1 -1
  118. package/src/resolvers/EntityPermissionResolver.ts +1 -1
  119. package/src/resolvers/IntegrationDiscoveryResolver.ts +12 -2
  120. package/src/resolvers/PotentialDuplicateRecordResolver.ts +1 -1
  121. package/src/resolvers/RealtimeClientSessionResolver.ts +13 -0
  122. package/src/resolvers/SearchEntitiesResolver.ts +1 -1
  123. package/src/resolvers/SqlLoggingConfigResolver.ts +1 -2
  124. package/src/resolvers/SyncRolesUsersResolver.ts +2 -2
  125. package/src/resolvers/UserFavoriteResolver.ts +1 -1
  126. package/src/rest/OAuthCallbackHandler.ts +1 -1
  127. package/src/rest/SignatureWebhookHandler.ts +1 -1
  128. package/src/services/DurableEntityActionTaskSubmitter.ts +78 -0
  129. package/src/services/ScheduledJobsService.ts +1 -1
  130. package/src/services/StartTaskGraphDispatcher.ts +17 -0
  131. package/src/services/TaskGraphActionRunner.ts +99 -0
  132. package/src/services/TaskGraphAgentRunner.ts +35 -1
  133. package/src/services/TaskGraphPromptRunner.ts +144 -0
  134. package/src/telephony/RingCentralTelephonyService.ts +1 -1
  135. package/src/telephony/TwilioTelephonyRouter.ts +1 -1
  136. package/src/telephony/VonageTelephonyRouter.ts +1 -1
@@ -1528,11 +1528,6 @@ __decorate([
1528
1528
  MaxLength(100),
1529
1529
  __metadata("design:type", String)
1530
1530
  ], MJActionExecutionLog_.prototype, "User", void 0);
1531
- __decorate([
1532
- Field({ nullable: true }),
1533
- MaxLength(425),
1534
- __metadata("design:type", String)
1535
- ], MJActionExecutionLog_.prototype, "EntityAction", void 0);
1536
1531
  __decorate([
1537
1532
  Field({ nullable: true }),
1538
1533
  MaxLength(255),
@@ -3206,6 +3201,10 @@ __decorate([
3206
3201
  Field(() => [MJAISkillAction_]),
3207
3202
  __metadata("design:type", Array)
3208
3203
  ], MJAction_.prototype, "MJAISkillActions_ActionIDArray", void 0);
3204
+ __decorate([
3205
+ Field(() => [MJTask_]),
3206
+ __metadata("design:type", Array)
3207
+ ], MJAction_.prototype, "MJTasks_ActionIDArray", void 0);
3209
3208
  MJAction_ = __decorate([
3210
3209
  ObjectType({ description: `Stores action definitions, including prompts, generated code, user comments, and status.` })
3211
3210
  ], MJAction_);
@@ -3603,6 +3602,14 @@ let MJActionResolver = class MJActionResolver extends ResolverBase {
3603
3602
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Skill Actions', rows, this.GetUserFromPayload(userPayload));
3604
3603
  return result;
3605
3604
  }
3605
+ async MJTasks_ActionIDArray(mjaction_, { userPayload, providers }, pubSub) {
3606
+ this.CheckUserReadPermissions('MJ: Tasks', userPayload);
3607
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
3608
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTasks')} WHERE ${provider.QuoteIdentifier('ActionID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tasks', userPayload, EntityPermissionType.Read, 'AND');
3609
+ const rows = await provider.ExecuteSQL(sSQL, [mjaction_.ID], undefined, this.GetUserFromPayload(userPayload));
3610
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tasks', rows, this.GetUserFromPayload(userPayload));
3611
+ return result;
3612
+ }
3606
3613
  async CreateMJAction(input, { providers, userPayload }, pubSub) {
3607
3614
  const provider = GetReadWriteProvider(providers);
3608
3615
  return this.CreateRecord('MJ: Actions', input, provider, userPayload, pubSub);
@@ -3770,6 +3777,15 @@ __decorate([
3770
3777
  __metadata("design:paramtypes", [MJAction_, Object, PubSubEngine]),
3771
3778
  __metadata("design:returntype", Promise)
3772
3779
  ], MJActionResolver.prototype, "MJAISkillActions_ActionIDArray", null);
3780
+ __decorate([
3781
+ FieldResolver(() => [MJTask_]),
3782
+ __param(0, Root()),
3783
+ __param(1, Ctx()),
3784
+ __param(2, PubSub()),
3785
+ __metadata("design:type", Function),
3786
+ __metadata("design:paramtypes", [MJAction_, Object, PubSubEngine]),
3787
+ __metadata("design:returntype", Promise)
3788
+ ], MJActionResolver.prototype, "MJTasks_ActionIDArray", null);
3773
3789
  __decorate([
3774
3790
  Mutation(() => MJAction_),
3775
3791
  __param(0, Arg('input', () => CreateMJActionInput)),
@@ -10904,6 +10920,11 @@ __decorate([
10904
10920
  MaxLength(20),
10905
10921
  __metadata("design:type", String)
10906
10922
  ], MJAIAgentRequest_.prototype, "ResponseSource", void 0);
10923
+ __decorate([
10924
+ Field({ nullable: true, description: `The workflow step (MJ: Tasks row) waiting on this request, when it came from a task graph rather than from a running agent. Distinct from OriginatingAgentRunStepID: a task graph outlives the agent run that submitted it, so the task — not the run — is what resumes when a person answers. NULL for requests raised by a run directly.` }),
10925
+ MaxLength(36),
10926
+ __metadata("design:type", String)
10927
+ ], MJAIAgentRequest_.prototype, "OriginatingTaskID", void 0);
10907
10928
  __decorate([
10908
10929
  Field({ nullable: true }),
10909
10930
  MaxLength(255),
@@ -10939,6 +10960,11 @@ __decorate([
10939
10960
  MaxLength(255),
10940
10961
  __metadata("design:type", String)
10941
10962
  ], MJAIAgentRequest_.prototype, "ResumingAgentRun", void 0);
10963
+ __decorate([
10964
+ Field({ nullable: true }),
10965
+ MaxLength(255),
10966
+ __metadata("design:type", String)
10967
+ ], MJAIAgentRequest_.prototype, "OriginatingTask", void 0);
10942
10968
  MJAIAgentRequest_ = __decorate([
10943
10969
  ObjectType({ description: `Table to log AI Agent requests, responses, and their statuses.` })
10944
10970
  ], MJAIAgentRequest_);
@@ -11024,6 +11050,10 @@ __decorate([
11024
11050
  Field({ nullable: true }),
11025
11051
  __metadata("design:type", String)
11026
11052
  ], CreateMJAIAgentRequestInput.prototype, "ResponseSource", void 0);
11053
+ __decorate([
11054
+ Field({ nullable: true }),
11055
+ __metadata("design:type", String)
11056
+ ], CreateMJAIAgentRequestInput.prototype, "OriginatingTaskID", void 0);
11027
11057
  __decorate([
11028
11058
  Field(() => RestoreContextInput, { nullable: true }),
11029
11059
  __metadata("design:type", RestoreContextInput)
@@ -11113,6 +11143,10 @@ __decorate([
11113
11143
  Field({ nullable: true }),
11114
11144
  __metadata("design:type", String)
11115
11145
  ], UpdateMJAIAgentRequestInput.prototype, "ResponseSource", void 0);
11146
+ __decorate([
11147
+ Field({ nullable: true }),
11148
+ __metadata("design:type", String)
11149
+ ], UpdateMJAIAgentRequestInput.prototype, "OriginatingTaskID", void 0);
11116
11150
  __decorate([
11117
11151
  Field(() => [KeyValuePairInput], { nullable: true }),
11118
11152
  __metadata("design:type", Array)
@@ -23871,6 +23905,10 @@ __decorate([
23871
23905
  Field({ nullable: true, description: `Default fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Use {{prefill}} as a placeholder for the actual prefill text. Example: "IMPORTANT: You must begin your response with exactly: {{prefill}}". Individual AI Model Vendor records can override this. If null, a generic fallback is used.` }),
23872
23906
  __metadata("design:type", String)
23873
23907
  ], MJAIModelType_.prototype, "PrefillFallbackText", void 0);
23908
+ __decorate([
23909
+ Field({ nullable: true, description: `Type-wide default of the per-modality model-configuration bag (JSON, IAIModelConfiguration shape: LLM / Realtime / Vision / Audio sections). Base layer of the ModelConfiguration cascade — AIModel and AIModelVendor rows inherit from it per key and may override. NULL = contributes nothing.` }),
23910
+ __metadata("design:type", String)
23911
+ ], MJAIModelType_.prototype, "ModelConfiguration", void 0);
23874
23912
  __decorate([
23875
23913
  Field(),
23876
23914
  MaxLength(50),
@@ -23926,6 +23964,10 @@ __decorate([
23926
23964
  Field({ nullable: true }),
23927
23965
  __metadata("design:type", String)
23928
23966
  ], CreateMJAIModelTypeInput.prototype, "PrefillFallbackText", void 0);
23967
+ __decorate([
23968
+ Field({ nullable: true }),
23969
+ __metadata("design:type", String)
23970
+ ], CreateMJAIModelTypeInput.prototype, "ModelConfiguration", void 0);
23929
23971
  __decorate([
23930
23972
  Field(() => RestoreContextInput, { nullable: true }),
23931
23973
  __metadata("design:type", RestoreContextInput)
@@ -23967,6 +24009,10 @@ __decorate([
23967
24009
  Field({ nullable: true }),
23968
24010
  __metadata("design:type", String)
23969
24011
  ], UpdateMJAIModelTypeInput.prototype, "PrefillFallbackText", void 0);
24012
+ __decorate([
24013
+ Field({ nullable: true }),
24014
+ __metadata("design:type", String)
24015
+ ], UpdateMJAIModelTypeInput.prototype, "ModelConfiguration", void 0);
23970
24016
  __decorate([
23971
24017
  Field(() => [KeyValuePairInput], { nullable: true }),
23972
24018
  __metadata("design:type", Array)
@@ -24256,6 +24302,10 @@ __decorate([
24256
24302
  Field({ nullable: true, description: `Model-specific fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Overrides the AI Model Type default. Use {{prefill}} as a placeholder. Allows tuning the fallback instruction per model since different models respond better to different phrasing.` }),
24257
24303
  __metadata("design:type", String)
24258
24304
  ], MJAIModelVendor_.prototype, "PrefillFallbackText", void 0);
24305
+ __decorate([
24306
+ Field({ nullable: true, description: `Most-specific layer of the per-modality model-configuration bag (JSON, IAIModelConfiguration shape) — configuration for THIS model on THIS provider. Deep-merges per key over the model and type layers. NULL = inherit the merged model/type configuration unchanged.` }),
24307
+ __metadata("design:type", String)
24308
+ ], MJAIModelVendor_.prototype, "ModelConfiguration", void 0);
24259
24309
  __decorate([
24260
24310
  Field(),
24261
24311
  MaxLength(50),
@@ -24348,6 +24398,10 @@ __decorate([
24348
24398
  Field({ nullable: true }),
24349
24399
  __metadata("design:type", String)
24350
24400
  ], CreateMJAIModelVendorInput.prototype, "PrefillFallbackText", void 0);
24401
+ __decorate([
24402
+ Field({ nullable: true }),
24403
+ __metadata("design:type", String)
24404
+ ], CreateMJAIModelVendorInput.prototype, "ModelConfiguration", void 0);
24351
24405
  __decorate([
24352
24406
  Field(() => RestoreContextInput, { nullable: true }),
24353
24407
  __metadata("design:type", RestoreContextInput)
@@ -24425,6 +24479,10 @@ __decorate([
24425
24479
  Field({ nullable: true }),
24426
24480
  __metadata("design:type", String)
24427
24481
  ], UpdateMJAIModelVendorInput.prototype, "PrefillFallbackText", void 0);
24482
+ __decorate([
24483
+ Field({ nullable: true }),
24484
+ __metadata("design:type", String)
24485
+ ], UpdateMJAIModelVendorInput.prototype, "ModelConfiguration", void 0);
24428
24486
  __decorate([
24429
24487
  Field(() => [KeyValuePairInput], { nullable: true }),
24430
24488
  __metadata("design:type", Array)
@@ -24664,6 +24722,10 @@ __decorate([
24664
24722
  Field({ nullable: true, description: `Model-level fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Overrides the AI Model Type default, can be further overridden per-vendor in AI Model Vendor. Use {{prefill}} as a placeholder.` }),
24665
24723
  __metadata("design:type", String)
24666
24724
  ], MJAIModel_.prototype, "PrefillFallbackText", void 0);
24725
+ __decorate([
24726
+ Field({ nullable: true, description: `Per-model layer of the per-modality model-configuration bag (JSON, IAIModelConfiguration shape). Deep-merges per key over the AIModelType default; AIModelVendor rows may override per key on top. NULL = inherit the type default unchanged.` }),
24727
+ __metadata("design:type", String)
24728
+ ], MJAIModel_.prototype, "ModelConfiguration", void 0);
24667
24729
  __decorate([
24668
24730
  Field(),
24669
24731
  MaxLength(50),
@@ -24871,6 +24933,10 @@ __decorate([
24871
24933
  Field({ nullable: true }),
24872
24934
  __metadata("design:type", String)
24873
24935
  ], CreateMJAIModelInput.prototype, "PrefillFallbackText", void 0);
24936
+ __decorate([
24937
+ Field({ nullable: true }),
24938
+ __metadata("design:type", String)
24939
+ ], CreateMJAIModelInput.prototype, "ModelConfiguration", void 0);
24874
24940
  __decorate([
24875
24941
  Field({ nullable: true }),
24876
24942
  __metadata("design:type", String)
@@ -24964,6 +25030,10 @@ __decorate([
24964
25030
  Field({ nullable: true }),
24965
25031
  __metadata("design:type", String)
24966
25032
  ], UpdateMJAIModelInput.prototype, "PrefillFallbackText", void 0);
25033
+ __decorate([
25034
+ Field({ nullable: true }),
25035
+ __metadata("design:type", String)
25036
+ ], UpdateMJAIModelInput.prototype, "ModelConfiguration", void 0);
24967
25037
  __decorate([
24968
25038
  Field({ nullable: true }),
24969
25039
  __metadata("design:type", String)
@@ -28817,6 +28887,10 @@ __decorate([
28817
28887
  Field(() => [MJAIAgentType_]),
28818
28888
  __metadata("design:type", Array)
28819
28889
  ], MJAIPrompt_.prototype, "MJAIAgentTypes_ConversationSummaryPromptIDArray", void 0);
28890
+ __decorate([
28891
+ Field(() => [MJTask_]),
28892
+ __metadata("design:type", Array)
28893
+ ], MJAIPrompt_.prototype, "MJTasks_PromptIDArray", void 0);
28820
28894
  MJAIPrompt_ = __decorate([
28821
28895
  ObjectType({ description: `Stores AI prompts, including references to categories, types, and templates.` })
28822
28896
  ], MJAIPrompt_);
@@ -29494,6 +29568,14 @@ let MJAIPromptResolver = class MJAIPromptResolver extends ResolverBase {
29494
29568
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Agent Types', rows, this.GetUserFromPayload(userPayload));
29495
29569
  return result;
29496
29570
  }
29571
+ async MJTasks_PromptIDArray(mjaiprompt_, { userPayload, providers }, pubSub) {
29572
+ this.CheckUserReadPermissions('MJ: Tasks', userPayload);
29573
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
29574
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwTasks')} WHERE ${provider.QuoteIdentifier('PromptID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Tasks', userPayload, EntityPermissionType.Read, 'AND');
29575
+ const rows = await provider.ExecuteSQL(sSQL, [mjaiprompt_.ID], undefined, this.GetUserFromPayload(userPayload));
29576
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tasks', rows, this.GetUserFromPayload(userPayload));
29577
+ return result;
29578
+ }
29497
29579
  async CreateMJAIPrompt(input, { providers, userPayload }, pubSub) {
29498
29580
  const provider = GetReadWriteProvider(providers);
29499
29581
  return this.CreateRecord('MJ: AI Prompts', input, provider, userPayload, pubSub);
@@ -29733,6 +29815,15 @@ __decorate([
29733
29815
  __metadata("design:paramtypes", [MJAIPrompt_, Object, PubSubEngine]),
29734
29816
  __metadata("design:returntype", Promise)
29735
29817
  ], MJAIPromptResolver.prototype, "MJAIAgentTypes_ConversationSummaryPromptIDArray", null);
29818
+ __decorate([
29819
+ FieldResolver(() => [MJTask_]),
29820
+ __param(0, Root()),
29821
+ __param(1, Ctx()),
29822
+ __param(2, PubSub()),
29823
+ __metadata("design:type", Function),
29824
+ __metadata("design:paramtypes", [MJAIPrompt_, Object, PubSubEngine]),
29825
+ __metadata("design:returntype", Promise)
29826
+ ], MJAIPromptResolver.prototype, "MJTasks_PromptIDArray", null);
29736
29827
  __decorate([
29737
29828
  Mutation(() => MJAIPrompt_),
29738
29829
  __param(0, Arg('input', () => CreateMJAIPromptInput)),
@@ -70697,11 +70788,6 @@ __decorate([
70697
70788
  Field(),
70698
70789
  __metadata("design:type", Date)
70699
70790
  ], MJEntityActionFilter_.prototype, "_mj__UpdatedAt", void 0);
70700
- __decorate([
70701
- Field(),
70702
- MaxLength(425),
70703
- __metadata("design:type", String)
70704
- ], MJEntityActionFilter_.prototype, "EntityAction", void 0);
70705
70791
  __decorate([
70706
70792
  Field(),
70707
70793
  __metadata("design:type", String)
@@ -71239,11 +71325,6 @@ __decorate([
71239
71325
  MaxLength(255),
71240
71326
  __metadata("design:type", String)
71241
71327
  ], MJEntityActionInvocation_.prototype, "RuntimeUXDriverClass", void 0);
71242
- __decorate([
71243
- Field(),
71244
- MaxLength(425),
71245
- __metadata("design:type", String)
71246
- ], MJEntityActionInvocation_.prototype, "EntityAction", void 0);
71247
71328
  __decorate([
71248
71329
  Field(),
71249
71330
  MaxLength(255),
@@ -71509,11 +71590,6 @@ __decorate([
71509
71590
  Field(() => Boolean, { nullable: true, description: `Optional per-binding override of ActionParam.LogValue. NULL (the default) inherits the parameter definition. Set to 0 when this particular binding passes something sensitive through a parameter that is ordinarily safe to log - a message body through a generic Text parameter, for instance. Cannot re-enable logging for a value type the hard rule suppresses.` }),
71510
71591
  __metadata("design:type", Boolean)
71511
71592
  ], MJEntityActionParam_.prototype, "LogValue", void 0);
71512
- __decorate([
71513
- Field(),
71514
- MaxLength(425),
71515
- __metadata("design:type", String)
71516
- ], MJEntityActionParam_.prototype, "EntityAction", void 0);
71517
71593
  __decorate([
71518
71594
  Field(),
71519
71595
  MaxLength(255),
@@ -71802,6 +71878,11 @@ __decorate([
71802
71878
  MaxLength(20),
71803
71879
  __metadata("design:type", String)
71804
71880
  ], MJEntityAction_.prototype, "LoggingMode", void 0);
71881
+ __decorate([
71882
+ Field({ description: `How an After* dispatch of this binding executes. Inline (the default) runs it fire-and-forget in the saving process, which is fast but lost if that process dies. Durable submits a single-node task graph instead, so the work survives a restart and is reclaimed by the dispatcher — at the cost of a Task row, a dispatcher hop of latency, and the action's parameters being persisted (redacted) at rest. Ignored for Validate and Before* invocations, which run inside the save and cannot be deferred without changing whether the save succeeds.` }),
71883
+ MaxLength(20),
71884
+ __metadata("design:type", String)
71885
+ ], MJEntityAction_.prototype, "RunMode", void 0);
71805
71886
  __decorate([
71806
71887
  Field(),
71807
71888
  MaxLength(255),
@@ -71874,6 +71955,10 @@ __decorate([
71874
71955
  Field({ nullable: true }),
71875
71956
  __metadata("design:type", String)
71876
71957
  ], CreateMJEntityActionInput.prototype, "LoggingMode", void 0);
71958
+ __decorate([
71959
+ Field({ nullable: true }),
71960
+ __metadata("design:type", String)
71961
+ ], CreateMJEntityActionInput.prototype, "RunMode", void 0);
71877
71962
  __decorate([
71878
71963
  Field(() => RestoreContextInput, { nullable: true }),
71879
71964
  __metadata("design:type", RestoreContextInput)
@@ -71919,6 +72004,10 @@ __decorate([
71919
72004
  Field({ nullable: true }),
71920
72005
  __metadata("design:type", String)
71921
72006
  ], UpdateMJEntityActionInput.prototype, "LoggingMode", void 0);
72007
+ __decorate([
72008
+ Field({ nullable: true }),
72009
+ __metadata("design:type", String)
72010
+ ], UpdateMJEntityActionInput.prototype, "RunMode", void 0);
71922
72011
  __decorate([
71923
72012
  Field(() => [KeyValuePairInput], { nullable: true }),
71924
72013
  __metadata("design:type", Array)
@@ -122775,6 +122864,19 @@ __decorate([
122775
122864
  Field({ nullable: true, description: `Optional boolean expression gating this dependency edge. NULL (the default, and the value every pre-existing row carries) means the edge is unconditional, so adding this column changes the meaning of no existing graph. When present it is evaluated by the shared GraphTraversalEngine against the same context a design-time AIAgentStepPath.Condition sees, which is what lets a runtime task graph and a flow-editor graph be the same graph. A condition that evaluates false skips the edge; one that fails to evaluate ALSO skips it, but is reported distinctly so a graph stalled by a malformed expression cannot be mistaken for one that finished normally.` }),
122776
122865
  __metadata("design:type", String)
122777
122866
  ], MJTaskDependency_.prototype, "Condition", void 0);
122867
+ __decorate([
122868
+ Field(() => Int, { description: `Ordering within an exclusive group — higher wins. Mirrors AIAgentStepPath.Priority so a compiled workflow chooses the same branch the flow editor shows. Ignored for edges that are not part of an ExclusiveGroup.` }),
122869
+ __metadata("design:type", Number)
122870
+ ], MJTaskDependency_.prototype, "Priority", void 0);
122871
+ __decorate([
122872
+ Field(() => Int, { description: `Deterministic tiebreak when two edges in an ExclusiveGroup share a Priority, applied ascending. Load-bearing rather than cosmetic: compiled dependencies get fresh UUIDs and Priority defaults to 0, so without a stored ordinal a tie would resolve by row order and the same workflow could take a different branch on a different machine.` }),
122873
+ __metadata("design:type", Number)
122874
+ ], MJTaskDependency_.prototype, "Sequence", void 0);
122875
+ __decorate([
122876
+ Field({ nullable: true, description: `XOR group key: sibling edges leaving the same origin that share a non-null ExclusiveGroup are an exclusive fan-out. The highest-Priority satisfied edge wins, ties broken by ascending Sequence; the rest are Skipped. NULL (the default) means an ordinary dependency, so existing graphs are unaffected. An unevaluable condition anywhere in the group holds the whole group rather than firing every branch.` }),
122877
+ MaxLength(255),
122878
+ __metadata("design:type", String)
122879
+ ], MJTaskDependency_.prototype, "ExclusiveGroup", void 0);
122778
122880
  __decorate([
122779
122881
  Field(),
122780
122882
  MaxLength(255),
@@ -122814,6 +122916,18 @@ __decorate([
122814
122916
  Field({ nullable: true }),
122815
122917
  __metadata("design:type", String)
122816
122918
  ], CreateMJTaskDependencyInput.prototype, "Condition", void 0);
122919
+ __decorate([
122920
+ Field(() => Int, { nullable: true }),
122921
+ __metadata("design:type", Number)
122922
+ ], CreateMJTaskDependencyInput.prototype, "Priority", void 0);
122923
+ __decorate([
122924
+ Field(() => Int, { nullable: true }),
122925
+ __metadata("design:type", Number)
122926
+ ], CreateMJTaskDependencyInput.prototype, "Sequence", void 0);
122927
+ __decorate([
122928
+ Field({ nullable: true }),
122929
+ __metadata("design:type", String)
122930
+ ], CreateMJTaskDependencyInput.prototype, "ExclusiveGroup", void 0);
122817
122931
  __decorate([
122818
122932
  Field(() => RestoreContextInput, { nullable: true }),
122819
122933
  __metadata("design:type", RestoreContextInput)
@@ -122847,6 +122961,18 @@ __decorate([
122847
122961
  Field({ nullable: true }),
122848
122962
  __metadata("design:type", String)
122849
122963
  ], UpdateMJTaskDependencyInput.prototype, "Condition", void 0);
122964
+ __decorate([
122965
+ Field(() => Int, { nullable: true }),
122966
+ __metadata("design:type", Number)
122967
+ ], UpdateMJTaskDependencyInput.prototype, "Priority", void 0);
122968
+ __decorate([
122969
+ Field(() => Int, { nullable: true }),
122970
+ __metadata("design:type", Number)
122971
+ ], UpdateMJTaskDependencyInput.prototype, "Sequence", void 0);
122972
+ __decorate([
122973
+ Field({ nullable: true }),
122974
+ __metadata("design:type", String)
122975
+ ], UpdateMJTaskDependencyInput.prototype, "ExclusiveGroup", void 0);
122850
122976
  __decorate([
122851
122977
  Field(() => [KeyValuePairInput], { nullable: true }),
122852
122978
  __metadata("design:type", Array)
@@ -123302,7 +123428,7 @@ __decorate([
123302
123428
  __metadata("design:type", String)
123303
123429
  ], MJTask_.prototype, "AgentID", void 0);
123304
123430
  __decorate([
123305
- Field({ description: `Current status of the task (Pending, In Progress, Complete, Cancelled, Failed, Blocked, Deferred)` }),
123431
+ Field({ description: `Lifecycle state. Pending awaits prerequisites; In Progress is claimed and running; Complete succeeded; Failed did not; Blocked can never run because a prerequisite is unsatisfiable; Cancelled was stopped deliberately; Deferred is waiting on a schedule. Skipped is a branch that was NOT TAKEN at an exclusive fan-out — a normal outcome, not a failure: it satisfies dependents (so a join downstream of a fork still runs) and is invisible to failure precedence when the parent rolls up.` }),
123306
123432
  MaxLength(50),
123307
123433
  __metadata("design:type", String)
123308
123434
  ], MJTask_.prototype, "Status", void 0);
@@ -123356,6 +123482,25 @@ __decorate([
123356
123482
  Field({ nullable: true, description: `When the current dispatcher claim lapses. Long-running tasks extend it by heartbeat; reconciliation treats an expired claim as an orphaned task and returns it to Pending.` }),
123357
123483
  __metadata("design:type", Date)
123358
123484
  ], MJTask_.prototype, "ClaimExpiresAt", void 0);
123485
+ __decorate([
123486
+ Field({ nullable: true, description: `The Action this task executes, when the node is action-assigned rather than agent-assigned or awaiting a person. Mutually exclusive with UserID and AgentID (CK_Task_Assignment). Set by durable entity-action dispatch, where a single-node graph carries one action to run with restart recovery.` }),
123487
+ MaxLength(36),
123488
+ __metadata("design:type", String)
123489
+ ], MJTask_.prototype, "ActionID", void 0);
123490
+ __decorate([
123491
+ Field({ nullable: true, description: `Which kind of workflow step this task represents. NULL for a task that is not part of a workflow, such as a hand-authored to-do. Determines which of AgentID/ActionID/PromptID/UserID is meaningful and how Configuration is read. This is the executable vocabulary and is deliberately not the same value list as AIAgentStep.StepType, which describes a step at design time.` }),
123492
+ MaxLength(20),
123493
+ __metadata("design:type", String)
123494
+ ], MJTask_.prototype, "StepType", void 0);
123495
+ __decorate([
123496
+ Field({ nullable: true }),
123497
+ MaxLength(36),
123498
+ __metadata("design:type", String)
123499
+ ], MJTask_.prototype, "PromptID", void 0);
123500
+ __decorate([
123501
+ Field({ nullable: true, description: `Everything about this step that has no column of its own, as JSON: the loop definition for a ForEach or While step, an agent step's message and template parameters, the mappings that move data between this step and the workflow payload, and the execution policy (timeout, retries, what to do on failure). Typed by ITaskStepConfiguration.` }),
123502
+ __metadata("design:type", String)
123503
+ ], MJTask_.prototype, "Configuration", void 0);
123359
123504
  __decorate([
123360
123505
  Field({ nullable: true }),
123361
123506
  MaxLength(255),
@@ -123396,6 +123541,16 @@ __decorate([
123396
123541
  MaxLength(255),
123397
123542
  __metadata("design:type", String)
123398
123543
  ], MJTask_.prototype, "AgentRun", void 0);
123544
+ __decorate([
123545
+ Field({ nullable: true }),
123546
+ MaxLength(425),
123547
+ __metadata("design:type", String)
123548
+ ], MJTask_.prototype, "Action", void 0);
123549
+ __decorate([
123550
+ Field({ nullable: true }),
123551
+ MaxLength(255),
123552
+ __metadata("design:type", String)
123553
+ ], MJTask_.prototype, "Prompt", void 0);
123399
123554
  __decorate([
123400
123555
  Field({ nullable: true }),
123401
123556
  MaxLength(36),
@@ -123409,6 +123564,10 @@ __decorate([
123409
123564
  Field(() => [MJTaskDependency_]),
123410
123565
  __metadata("design:type", Array)
123411
123566
  ], MJTask_.prototype, "MJTaskDependencies_DependsOnTaskIDArray", void 0);
123567
+ __decorate([
123568
+ Field(() => [MJAIAgentRequest_]),
123569
+ __metadata("design:type", Array)
123570
+ ], MJTask_.prototype, "MJAIAgentRequests_OriginatingTaskIDArray", void 0);
123412
123571
  __decorate([
123413
123572
  Field(() => [MJTask_]),
123414
123573
  __metadata("design:type", Array)
@@ -123506,6 +123665,22 @@ __decorate([
123506
123665
  Field({ nullable: true }),
123507
123666
  __metadata("design:type", Date)
123508
123667
  ], CreateMJTaskInput.prototype, "ClaimExpiresAt", void 0);
123668
+ __decorate([
123669
+ Field({ nullable: true }),
123670
+ __metadata("design:type", String)
123671
+ ], CreateMJTaskInput.prototype, "ActionID", void 0);
123672
+ __decorate([
123673
+ Field({ nullable: true }),
123674
+ __metadata("design:type", String)
123675
+ ], CreateMJTaskInput.prototype, "StepType", void 0);
123676
+ __decorate([
123677
+ Field({ nullable: true }),
123678
+ __metadata("design:type", String)
123679
+ ], CreateMJTaskInput.prototype, "PromptID", void 0);
123680
+ __decorate([
123681
+ Field({ nullable: true }),
123682
+ __metadata("design:type", String)
123683
+ ], CreateMJTaskInput.prototype, "Configuration", void 0);
123509
123684
  __decorate([
123510
123685
  Field(() => RestoreContextInput, { nullable: true }),
123511
123686
  __metadata("design:type", RestoreContextInput)
@@ -123603,6 +123778,22 @@ __decorate([
123603
123778
  Field({ nullable: true }),
123604
123779
  __metadata("design:type", Date)
123605
123780
  ], UpdateMJTaskInput.prototype, "ClaimExpiresAt", void 0);
123781
+ __decorate([
123782
+ Field({ nullable: true }),
123783
+ __metadata("design:type", String)
123784
+ ], UpdateMJTaskInput.prototype, "ActionID", void 0);
123785
+ __decorate([
123786
+ Field({ nullable: true }),
123787
+ __metadata("design:type", String)
123788
+ ], UpdateMJTaskInput.prototype, "StepType", void 0);
123789
+ __decorate([
123790
+ Field({ nullable: true }),
123791
+ __metadata("design:type", String)
123792
+ ], UpdateMJTaskInput.prototype, "PromptID", void 0);
123793
+ __decorate([
123794
+ Field({ nullable: true }),
123795
+ __metadata("design:type", String)
123796
+ ], UpdateMJTaskInput.prototype, "Configuration", void 0);
123606
123797
  __decorate([
123607
123798
  Field(() => [KeyValuePairInput], { nullable: true }),
123608
123799
  __metadata("design:type", Array)
@@ -123690,6 +123881,14 @@ let MJTaskResolver = class MJTaskResolver extends ResolverBase {
123690
123881
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Task Dependencies', rows, this.GetUserFromPayload(userPayload));
123691
123882
  return result;
123692
123883
  }
123884
+ async MJAIAgentRequests_OriginatingTaskIDArray(mjtask_, { userPayload, providers }, pubSub) {
123885
+ this.CheckUserReadPermissions('MJ: AI Agent Requests', userPayload);
123886
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
123887
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIAgentRequests')} WHERE ${provider.QuoteIdentifier('OriginatingTaskID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Agent Requests', userPayload, EntityPermissionType.Read, 'AND');
123888
+ const rows = await provider.ExecuteSQL(sSQL, [mjtask_.ID], undefined, this.GetUserFromPayload(userPayload));
123889
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Agent Requests', rows, this.GetUserFromPayload(userPayload));
123890
+ return result;
123891
+ }
123693
123892
  async MJTasks_ParentIDArray(mjtask_, { userPayload, providers }, pubSub) {
123694
123893
  this.CheckUserReadPermissions('MJ: Tasks', userPayload);
123695
123894
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
@@ -123766,6 +123965,15 @@ __decorate([
123766
123965
  __metadata("design:paramtypes", [MJTask_, Object, PubSubEngine]),
123767
123966
  __metadata("design:returntype", Promise)
123768
123967
  ], MJTaskResolver.prototype, "MJTaskDependencies_DependsOnTaskIDArray", null);
123968
+ __decorate([
123969
+ FieldResolver(() => [MJAIAgentRequest_]),
123970
+ __param(0, Root()),
123971
+ __param(1, Ctx()),
123972
+ __param(2, PubSub()),
123973
+ __metadata("design:type", Function),
123974
+ __metadata("design:paramtypes", [MJTask_, Object, PubSubEngine]),
123975
+ __metadata("design:returntype", Promise)
123976
+ ], MJTaskResolver.prototype, "MJAIAgentRequests_OriginatingTaskIDArray", null);
123769
123977
  __decorate([
123770
123978
  FieldResolver(() => [MJTask_]),
123771
123979
  __param(0, Root()),