@memberjunction/server 3.3.0 → 4.0.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 (296) hide show
  1. package/README.md +59 -0
  2. package/dist/agents/skip-agent.d.ts +65 -0
  3. package/dist/agents/skip-agent.d.ts.map +1 -1
  4. package/dist/agents/skip-agent.js +63 -5
  5. package/dist/agents/skip-agent.js.map +1 -1
  6. package/dist/agents/skip-sdk.d.ts +163 -0
  7. package/dist/agents/skip-sdk.d.ts.map +1 -1
  8. package/dist/agents/skip-sdk.js +143 -12
  9. package/dist/agents/skip-sdk.js.map +1 -1
  10. package/dist/apolloServer/TransactionPlugin.d.ts +4 -0
  11. package/dist/apolloServer/TransactionPlugin.d.ts.map +1 -0
  12. package/dist/apolloServer/TransactionPlugin.js +46 -0
  13. package/dist/apolloServer/TransactionPlugin.js.map +1 -0
  14. package/dist/apolloServer/index.d.ts +0 -1
  15. package/dist/apolloServer/index.d.ts.map +1 -1
  16. package/dist/auth/APIKeyScopeAuth.d.ts +82 -0
  17. package/dist/auth/APIKeyScopeAuth.d.ts.map +1 -1
  18. package/dist/auth/APIKeyScopeAuth.js +78 -0
  19. package/dist/auth/APIKeyScopeAuth.js.map +1 -1
  20. package/dist/auth/AuthProviderFactory.d.ts +35 -0
  21. package/dist/auth/AuthProviderFactory.d.ts.map +1 -1
  22. package/dist/auth/AuthProviderFactory.js +51 -4
  23. package/dist/auth/AuthProviderFactory.js.map +1 -1
  24. package/dist/auth/BaseAuthProvider.d.ts +22 -0
  25. package/dist/auth/BaseAuthProvider.d.ts.map +1 -1
  26. package/dist/auth/BaseAuthProvider.js +25 -8
  27. package/dist/auth/BaseAuthProvider.js.map +1 -1
  28. package/dist/auth/IAuthProvider.d.ts +33 -0
  29. package/dist/auth/IAuthProvider.d.ts.map +1 -1
  30. package/dist/auth/__tests__/backward-compatibility.test.d.ts +2 -0
  31. package/dist/auth/__tests__/backward-compatibility.test.d.ts.map +1 -0
  32. package/dist/auth/__tests__/backward-compatibility.test.js +135 -0
  33. package/dist/auth/__tests__/backward-compatibility.test.js.map +1 -0
  34. package/dist/auth/exampleNewUserSubClass.d.ts +5 -1
  35. package/dist/auth/exampleNewUserSubClass.d.ts.map +1 -1
  36. package/dist/auth/exampleNewUserSubClass.js +21 -6
  37. package/dist/auth/exampleNewUserSubClass.js.map +1 -1
  38. package/dist/auth/index.d.ts +14 -0
  39. package/dist/auth/index.d.ts.map +1 -1
  40. package/dist/auth/index.js +35 -22
  41. package/dist/auth/index.js.map +1 -1
  42. package/dist/auth/initializeProviders.d.ts +3 -0
  43. package/dist/auth/initializeProviders.d.ts.map +1 -1
  44. package/dist/auth/initializeProviders.js +6 -0
  45. package/dist/auth/initializeProviders.js.map +1 -1
  46. package/dist/auth/newUsers.js +11 -2
  47. package/dist/auth/newUsers.js.map +1 -1
  48. package/dist/auth/providers/Auth0Provider.d.ts +9 -0
  49. package/dist/auth/providers/Auth0Provider.d.ts.map +1 -1
  50. package/dist/auth/providers/Auth0Provider.js +10 -0
  51. package/dist/auth/providers/Auth0Provider.js.map +1 -1
  52. package/dist/auth/providers/CognitoProvider.d.ts +9 -0
  53. package/dist/auth/providers/CognitoProvider.d.ts.map +1 -1
  54. package/dist/auth/providers/CognitoProvider.js +10 -0
  55. package/dist/auth/providers/CognitoProvider.js.map +1 -1
  56. package/dist/auth/providers/GoogleProvider.d.ts +9 -0
  57. package/dist/auth/providers/GoogleProvider.d.ts.map +1 -1
  58. package/dist/auth/providers/GoogleProvider.js +11 -1
  59. package/dist/auth/providers/GoogleProvider.js.map +1 -1
  60. package/dist/auth/providers/MSALProvider.d.ts +9 -0
  61. package/dist/auth/providers/MSALProvider.d.ts.map +1 -1
  62. package/dist/auth/providers/MSALProvider.js +10 -0
  63. package/dist/auth/providers/MSALProvider.js.map +1 -1
  64. package/dist/auth/providers/OktaProvider.d.ts +9 -0
  65. package/dist/auth/providers/OktaProvider.d.ts.map +1 -1
  66. package/dist/auth/providers/OktaProvider.js +10 -0
  67. package/dist/auth/providers/OktaProvider.js.map +1 -1
  68. package/dist/config.d.ts +12 -0
  69. package/dist/config.d.ts.map +1 -1
  70. package/dist/config.js +44 -10
  71. package/dist/config.js.map +1 -1
  72. package/dist/context.d.ts +8 -1
  73. package/dist/context.d.ts.map +1 -1
  74. package/dist/context.js +26 -4
  75. package/dist/context.js.map +1 -1
  76. package/dist/directives/Public.js +2 -0
  77. package/dist/directives/Public.js.map +1 -1
  78. package/dist/entitySubclasses/entityPermissions.server.d.ts +7 -2
  79. package/dist/entitySubclasses/entityPermissions.server.d.ts.map +1 -1
  80. package/dist/entitySubclasses/entityPermissions.server.js +26 -8
  81. package/dist/entitySubclasses/entityPermissions.server.js.map +1 -1
  82. package/dist/generated/generated.d.ts +954 -2
  83. package/dist/generated/generated.d.ts.map +1 -1
  84. package/dist/generated/generated.js +12183 -14532
  85. package/dist/generated/generated.js.map +1 -1
  86. package/dist/generic/DeleteOptionsInput.d.ts +3 -0
  87. package/dist/generic/DeleteOptionsInput.d.ts.map +1 -1
  88. package/dist/generic/DeleteOptionsInput.js +3 -2
  89. package/dist/generic/DeleteOptionsInput.js.map +1 -1
  90. package/dist/generic/KeyInputOutputTypes.js +0 -6
  91. package/dist/generic/KeyInputOutputTypes.js.map +1 -1
  92. package/dist/generic/KeyValuePairInput.d.ts +4 -0
  93. package/dist/generic/KeyValuePairInput.d.ts.map +1 -1
  94. package/dist/generic/KeyValuePairInput.js +4 -2
  95. package/dist/generic/KeyValuePairInput.js.map +1 -1
  96. package/dist/generic/PushStatusResolver.js +0 -3
  97. package/dist/generic/PushStatusResolver.js.map +1 -1
  98. package/dist/generic/ResolverBase.d.ts +59 -0
  99. package/dist/generic/ResolverBase.d.ts.map +1 -1
  100. package/dist/generic/ResolverBase.js +233 -18
  101. package/dist/generic/ResolverBase.js.map +1 -1
  102. package/dist/generic/RunViewResolver.d.ts +22 -0
  103. package/dist/generic/RunViewResolver.d.ts.map +1 -1
  104. package/dist/generic/RunViewResolver.js +42 -108
  105. package/dist/generic/RunViewResolver.js.map +1 -1
  106. package/dist/index.d.ts +2 -2
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +84 -39
  109. package/dist/index.js.map +1 -1
  110. package/dist/orm.d.ts.map +1 -1
  111. package/dist/orm.js +2 -1
  112. package/dist/orm.js.map +1 -1
  113. package/dist/resolvers/APIKeyResolver.d.ts +76 -1
  114. package/dist/resolvers/APIKeyResolver.d.ts.map +1 -1
  115. package/dist/resolvers/APIKeyResolver.js +53 -11
  116. package/dist/resolvers/APIKeyResolver.js.map +1 -1
  117. package/dist/resolvers/ActionResolver.d.ts +191 -1
  118. package/dist/resolvers/ActionResolver.d.ts.map +1 -1
  119. package/dist/resolvers/ActionResolver.js +156 -22
  120. package/dist/resolvers/ActionResolver.js.map +1 -1
  121. package/dist/resolvers/ColorResolver.js +0 -5
  122. package/dist/resolvers/ColorResolver.js.map +1 -1
  123. package/dist/resolvers/ComponentRegistryResolver.d.ts +65 -0
  124. package/dist/resolvers/ComponentRegistryResolver.d.ts.map +1 -1
  125. package/dist/resolvers/ComponentRegistryResolver.js +118 -40
  126. package/dist/resolvers/ComponentRegistryResolver.js.map +1 -1
  127. package/dist/resolvers/CreateQueryResolver.d.ts +47 -0
  128. package/dist/resolvers/CreateQueryResolver.d.ts.map +1 -1
  129. package/dist/resolvers/CreateQueryResolver.js +92 -116
  130. package/dist/resolvers/CreateQueryResolver.js.map +1 -1
  131. package/dist/resolvers/DatasetResolver.d.ts +5 -4
  132. package/dist/resolvers/DatasetResolver.d.ts.map +1 -1
  133. package/dist/resolvers/DatasetResolver.js +9 -18
  134. package/dist/resolvers/DatasetResolver.js.map +1 -1
  135. package/dist/resolvers/EntityCommunicationsResolver.d.ts +42 -1
  136. package/dist/resolvers/EntityCommunicationsResolver.d.ts.map +1 -1
  137. package/dist/resolvers/EntityCommunicationsResolver.js +5 -37
  138. package/dist/resolvers/EntityCommunicationsResolver.js.map +1 -1
  139. package/dist/resolvers/EntityRecordNameResolver.js +0 -7
  140. package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
  141. package/dist/resolvers/FileCategoryResolver.js +13 -1
  142. package/dist/resolvers/FileCategoryResolver.js.map +1 -1
  143. package/dist/resolvers/FileResolver.d.ts +16 -0
  144. package/dist/resolvers/FileResolver.d.ts.map +1 -1
  145. package/dist/resolvers/FileResolver.js +59 -74
  146. package/dist/resolvers/FileResolver.js.map +1 -1
  147. package/dist/resolvers/GetDataContextDataResolver.d.ts +20 -2
  148. package/dist/resolvers/GetDataContextDataResolver.d.ts.map +1 -1
  149. package/dist/resolvers/GetDataContextDataResolver.js +27 -12
  150. package/dist/resolvers/GetDataContextDataResolver.js.map +1 -1
  151. package/dist/resolvers/GetDataResolver.d.ts +19 -0
  152. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  153. package/dist/resolvers/GetDataResolver.js +35 -35
  154. package/dist/resolvers/GetDataResolver.js.map +1 -1
  155. package/dist/resolvers/InfoResolver.d.ts.map +1 -1
  156. package/dist/resolvers/InfoResolver.js +4 -7
  157. package/dist/resolvers/InfoResolver.js.map +1 -1
  158. package/dist/resolvers/MCPResolver.d.ts +361 -0
  159. package/dist/resolvers/MCPResolver.d.ts.map +1 -0
  160. package/dist/resolvers/MCPResolver.js +1270 -0
  161. package/dist/resolvers/MCPResolver.js.map +1 -0
  162. package/dist/resolvers/MergeRecordsResolver.d.ts +2 -1
  163. package/dist/resolvers/MergeRecordsResolver.d.ts.map +1 -1
  164. package/dist/resolvers/MergeRecordsResolver.js +6 -30
  165. package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
  166. package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts.map +1 -1
  167. package/dist/resolvers/PotentialDuplicateRecordResolver.js +0 -3
  168. package/dist/resolvers/PotentialDuplicateRecordResolver.js.map +1 -1
  169. package/dist/resolvers/QueryResolver.d.ts +22 -1
  170. package/dist/resolvers/QueryResolver.d.ts.map +1 -1
  171. package/dist/resolvers/QueryResolver.js +50 -37
  172. package/dist/resolvers/QueryResolver.js.map +1 -1
  173. package/dist/resolvers/ReportResolver.d.ts +5 -1
  174. package/dist/resolvers/ReportResolver.d.ts.map +1 -1
  175. package/dist/resolvers/ReportResolver.js +13 -11
  176. package/dist/resolvers/ReportResolver.js.map +1 -1
  177. package/dist/resolvers/RunAIAgentResolver.d.ts +54 -0
  178. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  179. package/dist/resolvers/RunAIAgentResolver.js +118 -40
  180. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  181. package/dist/resolvers/RunAIPromptResolver.d.ts +42 -0
  182. package/dist/resolvers/RunAIPromptResolver.d.ts.map +1 -1
  183. package/dist/resolvers/RunAIPromptResolver.js +98 -22
  184. package/dist/resolvers/RunAIPromptResolver.js.map +1 -1
  185. package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
  186. package/dist/resolvers/RunTemplateResolver.js +10 -6
  187. package/dist/resolvers/RunTemplateResolver.js.map +1 -1
  188. package/dist/resolvers/RunTestResolver.d.ts +12 -0
  189. package/dist/resolvers/RunTestResolver.d.ts.map +1 -1
  190. package/dist/resolvers/RunTestResolver.js +35 -21
  191. package/dist/resolvers/RunTestResolver.js.map +1 -1
  192. package/dist/resolvers/SqlLoggingConfigResolver.d.ts +312 -0
  193. package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
  194. package/dist/resolvers/SqlLoggingConfigResolver.js +295 -45
  195. package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
  196. package/dist/resolvers/SyncDataResolver.d.ts +21 -0
  197. package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
  198. package/dist/resolvers/SyncDataResolver.js +36 -22
  199. package/dist/resolvers/SyncDataResolver.js.map +1 -1
  200. package/dist/resolvers/SyncRolesUsersResolver.d.ts +14 -0
  201. package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -1
  202. package/dist/resolvers/SyncRolesUsersResolver.js +54 -21
  203. package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
  204. package/dist/resolvers/TaskResolver.d.ts +13 -0
  205. package/dist/resolvers/TaskResolver.d.ts.map +1 -1
  206. package/dist/resolvers/TaskResolver.js +23 -7
  207. package/dist/resolvers/TaskResolver.js.map +1 -1
  208. package/dist/resolvers/TelemetryResolver.d.ts +22 -0
  209. package/dist/resolvers/TelemetryResolver.d.ts.map +1 -1
  210. package/dist/resolvers/TelemetryResolver.js +45 -79
  211. package/dist/resolvers/TelemetryResolver.js.map +1 -1
  212. package/dist/resolvers/TransactionGroupResolver.js +11 -13
  213. package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
  214. package/dist/resolvers/UserFavoriteResolver.js +3 -12
  215. package/dist/resolvers/UserFavoriteResolver.js.map +1 -1
  216. package/dist/resolvers/UserResolver.d.ts.map +1 -1
  217. package/dist/resolvers/UserResolver.js +14 -0
  218. package/dist/resolvers/UserResolver.js.map +1 -1
  219. package/dist/resolvers/UserViewResolver.js +4 -0
  220. package/dist/resolvers/UserViewResolver.js.map +1 -1
  221. package/dist/resolvers/VersionHistoryResolver.d.ts +39 -0
  222. package/dist/resolvers/VersionHistoryResolver.d.ts.map +1 -0
  223. package/dist/resolvers/VersionHistoryResolver.js +208 -0
  224. package/dist/resolvers/VersionHistoryResolver.js.map +1 -0
  225. package/dist/rest/EntityCRUDHandler.d.ts +19 -0
  226. package/dist/rest/EntityCRUDHandler.d.ts.map +1 -1
  227. package/dist/rest/EntityCRUDHandler.js +55 -0
  228. package/dist/rest/EntityCRUDHandler.js.map +1 -1
  229. package/dist/rest/OAuthCallbackHandler.d.ts +143 -0
  230. package/dist/rest/OAuthCallbackHandler.d.ts.map +1 -0
  231. package/dist/rest/OAuthCallbackHandler.js +634 -0
  232. package/dist/rest/OAuthCallbackHandler.js.map +1 -0
  233. package/dist/rest/RESTEndpointHandler.d.ts +120 -0
  234. package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
  235. package/dist/rest/RESTEndpointHandler.js +213 -24
  236. package/dist/rest/RESTEndpointHandler.js.map +1 -1
  237. package/dist/rest/ViewOperationsHandler.d.ts +19 -0
  238. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  239. package/dist/rest/ViewOperationsHandler.js +39 -0
  240. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  241. package/dist/rest/index.d.ts +1 -0
  242. package/dist/rest/index.d.ts.map +1 -1
  243. package/dist/rest/index.js +1 -0
  244. package/dist/rest/index.js.map +1 -1
  245. package/dist/rest/setupRESTEndpoints.d.ts +35 -0
  246. package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
  247. package/dist/rest/setupRESTEndpoints.js +15 -1
  248. package/dist/rest/setupRESTEndpoints.js.map +1 -1
  249. package/dist/services/ScheduledJobsService.d.ts +31 -0
  250. package/dist/services/ScheduledJobsService.d.ts.map +1 -1
  251. package/dist/services/ScheduledJobsService.js +38 -4
  252. package/dist/services/ScheduledJobsService.js.map +1 -1
  253. package/dist/services/TaskOrchestrator.d.ts +73 -0
  254. package/dist/services/TaskOrchestrator.d.ts.map +1 -1
  255. package/dist/services/TaskOrchestrator.js +137 -15
  256. package/dist/services/TaskOrchestrator.js.map +1 -1
  257. package/dist/types.d.ts +14 -0
  258. package/dist/types.d.ts.map +1 -1
  259. package/dist/types.js +0 -13
  260. package/dist/types.js.map +1 -1
  261. package/dist/util.d.ts +37 -1
  262. package/dist/util.d.ts.map +1 -1
  263. package/dist/util.js +55 -8
  264. package/dist/util.js.map +1 -1
  265. package/package.json +79 -77
  266. package/src/auth/BaseAuthProvider.ts +3 -0
  267. package/src/auth/IAuthProvider.ts +5 -0
  268. package/src/auth/exampleNewUserSubClass.ts +1 -5
  269. package/src/config.ts +2 -2
  270. package/src/entitySubclasses/entityPermissions.server.ts +1 -3
  271. package/src/generated/generated.ts +6245 -2558
  272. package/src/generic/ResolverBase.ts +89 -3
  273. package/src/index.ts +71 -64
  274. package/src/resolvers/APIKeyResolver.ts +8 -1
  275. package/src/resolvers/ActionResolver.ts +8 -1
  276. package/src/resolvers/DatasetResolver.ts +11 -4
  277. package/src/resolvers/EntityCommunicationsResolver.ts +5 -1
  278. package/src/resolvers/GetDataContextDataResolver.ts +14 -6
  279. package/src/resolvers/InfoResolver.ts +5 -1
  280. package/src/resolvers/MCPResolver.ts +1380 -0
  281. package/src/resolvers/MergeRecordsResolver.ts +5 -1
  282. package/src/resolvers/PotentialDuplicateRecordResolver.ts +0 -4
  283. package/src/resolvers/QueryResolver.ts +17 -3
  284. package/src/resolvers/ReportResolver.ts +8 -1
  285. package/src/resolvers/RunAIAgentResolver.ts +6 -0
  286. package/src/resolvers/RunAIPromptResolver.ts +10 -1
  287. package/src/resolvers/RunTemplateResolver.ts +4 -1
  288. package/src/resolvers/TaskResolver.ts +3 -0
  289. package/src/resolvers/UserResolver.ts +15 -3
  290. package/src/resolvers/VersionHistoryResolver.ts +177 -0
  291. package/src/rest/OAuthCallbackHandler.ts +766 -0
  292. package/src/rest/RESTEndpointHandler.ts +58 -35
  293. package/src/rest/index.ts +2 -1
  294. package/src/rest/setupRESTEndpoints.ts +13 -12
  295. package/src/resolvers/AskSkipResolver.ts +0 -3446
  296. package/src/scheduler/LearningCycleScheduler.ts +0 -320
@@ -1,15 +1,10 @@
1
1
  import { Metadata, RunView, LogError, LogStatus } from '@memberjunction/core';
2
2
  import { AgentRunner } from '@memberjunction/ai-agents';
3
3
  import { PUSH_STATUS_UPDATES_TOPIC } from '../generic/PushStatusResolver.js';
4
+ /**
5
+ * TaskOrchestrator handles multi-step task execution with dependencies
6
+ */
4
7
  export class TaskOrchestrator {
5
- contextUser;
6
- pubSub;
7
- sessionId;
8
- userPayload;
9
- createNotifications;
10
- conversationDetailId;
11
- JSON_ARTIFACT_TYPE_ID = 'ae674c7e-ea0d-49ea-89e4-0649f5eb20d4';
12
- taskTypeId = null;
13
8
  constructor(contextUser, pubSub, sessionId, userPayload, createNotifications = false, conversationDetailId) {
14
9
  this.contextUser = contextUser;
15
10
  this.pubSub = pubSub;
@@ -17,7 +12,13 @@ export class TaskOrchestrator {
17
12
  this.userPayload = userPayload;
18
13
  this.createNotifications = createNotifications;
19
14
  this.conversationDetailId = conversationDetailId;
15
+ // Default artifact type ID for JSON (when agent doesn't specify DefaultArtifactTypeID)
16
+ this.JSON_ARTIFACT_TYPE_ID = 'ae674c7e-ea0d-49ea-89e4-0649f5eb20d4';
17
+ this.taskTypeId = null;
20
18
  }
19
+ /**
20
+ * Initialize the orchestrator by finding/creating the AI Agent Task type
21
+ */
21
22
  async ensureTaskType() {
22
23
  if (this.taskTypeId) {
23
24
  return this.taskTypeId;
@@ -32,6 +33,7 @@ export class TaskOrchestrator {
32
33
  this.taskTypeId = result.Results[0].ID;
33
34
  return this.taskTypeId;
34
35
  }
36
+ // Create the task type if it doesn't exist
35
37
  const md = new Metadata();
36
38
  const taskType = await md.GetEntityObject('MJ: Task Types', this.contextUser);
37
39
  taskType.Name = 'AI Agent Execution';
@@ -43,23 +45,32 @@ export class TaskOrchestrator {
43
45
  this.taskTypeId = taskType.ID;
44
46
  return this.taskTypeId;
45
47
  }
48
+ /**
49
+ * Create tasks from LLM task graph response
50
+ * @param taskGraph Task graph from Conversation Manager
51
+ * @param conversationDetailId ID of the conversation detail that triggered this
52
+ * @param environmentId Environment ID
53
+ * @returns Object with parentTaskId and map of tempId -> actual TaskEntity ID
54
+ */
46
55
  async createTasksFromGraph(taskGraph, conversationDetailId, environmentId) {
47
56
  const taskTypeId = await this.ensureTaskType();
48
57
  const md = new Metadata();
49
58
  const tempIdToRealId = new Map();
59
+ // Create parent workflow task
50
60
  const parentTask = await md.GetEntityObject('MJ: Tasks', this.contextUser);
51
61
  parentTask.Name = taskGraph.workflowName;
52
62
  parentTask.Description = taskGraph.reasoning || 'AI-orchestrated workflow';
53
63
  parentTask.TypeID = taskTypeId;
54
64
  parentTask.EnvironmentID = environmentId;
55
- parentTask.ConversationDetailID = conversationDetailId;
56
- parentTask.Status = 'In Progress';
65
+ parentTask.ConversationDetailID = conversationDetailId; // Parent links to conversation
66
+ parentTask.Status = 'In Progress'; // Workflow is in progress
57
67
  parentTask.PercentComplete = 0;
58
68
  const parentSaved = await parentTask.Save();
59
69
  if (!parentSaved) {
60
70
  throw new Error('Failed to create parent workflow task');
61
71
  }
62
72
  LogStatus(`Created parent workflow task: ${parentTask.Name} (${parentTask.ID})`);
73
+ // Deduplicate tasks by tempId (LLM sometimes returns duplicates)
63
74
  const seenTempIds = new Set();
64
75
  const uniqueTasks = taskGraph.tasks.filter(task => {
65
76
  if (seenTempIds.has(task.tempId)) {
@@ -70,8 +81,10 @@ export class TaskOrchestrator {
70
81
  return true;
71
82
  });
72
83
  LogStatus(`Creating ${uniqueTasks.length} unique child tasks (${taskGraph.tasks.length - uniqueTasks.length} duplicates filtered)`);
84
+ // Create all child tasks
73
85
  for (const taskDef of uniqueTasks) {
74
86
  const task = await md.GetEntityObject('MJ: Tasks', this.contextUser);
87
+ // Find agent by name
75
88
  const agent = await this.findAgentByName(taskDef.agentName);
76
89
  if (!agent) {
77
90
  LogError(`Agent not found: ${taskDef.agentName}`);
@@ -81,16 +94,18 @@ export class TaskOrchestrator {
81
94
  task.Description = taskDef.description;
82
95
  task.TypeID = taskTypeId;
83
96
  task.EnvironmentID = environmentId;
84
- task.ParentID = parentTask.ID;
85
- task.ConversationDetailID = conversationDetailId;
97
+ task.ParentID = parentTask.ID; // Link to parent task
98
+ task.ConversationDetailID = conversationDetailId; // Link to conversation so agent runs can be tracked
86
99
  task.AgentID = agent.ID;
87
100
  task.Status = 'Pending';
88
101
  task.PercentComplete = 0;
102
+ // Store input payload if provided
89
103
  if (taskDef.inputPayload) {
90
104
  const metadata = {
91
105
  inputPayload: taskDef.inputPayload,
92
106
  tempId: taskDef.tempId
93
107
  };
108
+ // Store in a well-known format at the end of description
94
109
  task.Description = `${taskDef.description}\n\n__TASK_METADATA__\n${JSON.stringify(metadata)}`;
95
110
  }
96
111
  const saved = await task.Save();
@@ -99,6 +114,7 @@ export class TaskOrchestrator {
99
114
  LogStatus(`Created child task: ${task.Name} (${task.ID}) under parent ${parentTask.ID}`);
100
115
  }
101
116
  }
117
+ // Create dependencies between child tasks
102
118
  for (const taskDef of uniqueTasks) {
103
119
  const taskId = tempIdToRealId.get(taskDef.tempId);
104
120
  if (!taskId)
@@ -122,6 +138,9 @@ export class TaskOrchestrator {
122
138
  taskIdMap: tempIdToRealId
123
139
  };
124
140
  }
141
+ /**
142
+ * Publish task progress update via PubSub
143
+ */
125
144
  publishTaskProgress(taskName, message, percentComplete) {
126
145
  if (!this.pubSub || !this.sessionId || !this.userPayload) {
127
146
  LogStatus(`⚠️ PubSub not available for progress updates (pubSub: ${!!this.pubSub}, sessionId: ${!!this.sessionId}, userPayload: ${!!this.userPayload})`);
@@ -146,6 +165,9 @@ export class TaskOrchestrator {
146
165
  this.pubSub.publish(PUSH_STATUS_UPDATES_TOPIC, payload);
147
166
  LogStatus(`[Task: ${taskName}] ${message} (${percentComplete}%)`);
148
167
  }
168
+ /**
169
+ * Publish agent progress update (nested within task)
170
+ */
149
171
  publishAgentProgress(taskName, agentStep, agentMessage) {
150
172
  if (!this.pubSub || !this.sessionId || !this.userPayload) {
151
173
  LogStatus(`⚠️ PubSub not available for agent progress (pubSub: ${!!this.pubSub}, sessionId: ${!!this.sessionId}, userPayload: ${!!this.userPayload})`);
@@ -170,6 +192,9 @@ export class TaskOrchestrator {
170
192
  this.pubSub.publish(PUSH_STATUS_UPDATES_TOPIC, payload);
171
193
  LogStatus(`[Task: ${taskName}] → ${agentStep}: ${agentMessage}`);
172
194
  }
195
+ /**
196
+ * Find agent by name
197
+ */
173
198
  async findAgentByName(agentName) {
174
199
  const rv = new RunView();
175
200
  const result = await rv.RunView({
@@ -182,38 +207,56 @@ export class TaskOrchestrator {
182
207
  }
183
208
  return null;
184
209
  }
210
+ /**
211
+ * Execute all pending tasks for a parent task, respecting dependencies
212
+ * @param parentTaskId Parent task ID
213
+ * @returns Array of execution results
214
+ */
185
215
  async executeTasksForParent(parentTaskId) {
186
216
  const results = [];
187
217
  let hasMore = true;
218
+ // Get parent task for progress updates
188
219
  const md = new Metadata();
189
220
  const parentTask = await md.GetEntityObject('MJ: Tasks', this.contextUser);
190
221
  await parentTask.Load(parentTaskId);
222
+ // Publish workflow start
191
223
  this.publishTaskProgress(parentTask.Name, 'Starting workflow execution', 0);
192
224
  while (hasMore) {
225
+ // Find tasks that are pending and have no incomplete dependencies
193
226
  const eligibleTasks = await this.findEligibleTasks(parentTaskId);
194
227
  if (eligibleTasks.length === 0) {
195
228
  hasMore = false;
196
229
  break;
197
230
  }
231
+ // Execute eligible tasks (could be parallelized in the future)
198
232
  for (const task of eligibleTasks) {
233
+ // Publish task start
199
234
  this.publishTaskProgress(task.Name, 'Starting task', 0);
200
235
  const result = await this.executeTask(task);
201
236
  results.push(result);
237
+ // Publish task complete
202
238
  if (result.success) {
203
239
  this.publishTaskProgress(task.Name, 'Task completed successfully', 100);
204
240
  }
205
241
  else {
206
242
  this.publishTaskProgress(task.Name, `Task failed: ${result.error}`, 100);
207
243
  }
244
+ // Update parent task progress after each child completes
208
245
  await this.updateParentTaskProgress(parentTaskId);
209
246
  }
210
247
  }
248
+ // Mark parent task as complete
211
249
  await this.completeParentTask(parentTaskId);
250
+ // Publish workflow complete
212
251
  this.publishTaskProgress(parentTask.Name, 'Workflow completed', 100);
213
252
  return results;
214
253
  }
254
+ /**
255
+ * Find tasks that are ready to execute (pending with no incomplete dependencies)
256
+ */
215
257
  async findEligibleTasks(parentTaskId) {
216
258
  const rv = new RunView();
259
+ // Get all pending tasks for this parent
217
260
  const tasksResult = await rv.RunView({
218
261
  EntityName: 'MJ: Tasks',
219
262
  ExtraFilter: `ParentID='${parentTaskId}' AND Status='Pending'`,
@@ -223,6 +266,7 @@ export class TaskOrchestrator {
223
266
  return [];
224
267
  }
225
268
  const eligibleTasks = [];
269
+ // Check each task for incomplete dependencies
226
270
  for (const task of tasksResult.Results) {
227
271
  const hasIncompleteDeps = await this.hasIncompleteDependencies(task.ID);
228
272
  if (!hasIncompleteDeps) {
@@ -231,6 +275,9 @@ export class TaskOrchestrator {
231
275
  }
232
276
  return eligibleTasks;
233
277
  }
278
+ /**
279
+ * Update parent task progress based on child task completion
280
+ */
234
281
  async updateParentTaskProgress(parentTaskId) {
235
282
  const md = new Metadata();
236
283
  const parentTask = await md.GetEntityObject('MJ: Tasks', this.contextUser);
@@ -238,6 +285,7 @@ export class TaskOrchestrator {
238
285
  if (!loaded)
239
286
  return;
240
287
  const rv = new RunView();
288
+ // Get all child tasks
241
289
  const childrenResult = await rv.RunView({
242
290
  EntityName: 'MJ: Tasks',
243
291
  ExtraFilter: `ParentID='${parentTaskId}'`,
@@ -249,10 +297,14 @@ export class TaskOrchestrator {
249
297
  const children = childrenResult.Results;
250
298
  const completedCount = children.filter(t => t.Status === 'Complete').length;
251
299
  const totalCount = children.length;
300
+ // Update percent complete
252
301
  parentTask.PercentComplete = Math.round((completedCount / totalCount) * 100);
253
302
  await parentTask.Save();
254
303
  LogStatus(`Parent task ${parentTask.Name} is ${parentTask.PercentComplete}% complete (${completedCount}/${totalCount} tasks)`);
255
304
  }
305
+ /**
306
+ * Mark parent task as complete when all children are done
307
+ */
256
308
  async completeParentTask(parentTaskId) {
257
309
  const md = new Metadata();
258
310
  const parentTask = await md.GetEntityObject('MJ: Tasks', this.contextUser);
@@ -264,50 +316,68 @@ export class TaskOrchestrator {
264
316
  parentTask.CompletedAt = new Date();
265
317
  const saved = await parentTask.Save();
266
318
  LogStatus(`Parent workflow task completed: ${parentTask.Name}`);
319
+ // If notifications enabled, create user notification
267
320
  if (this.createNotifications && saved) {
268
321
  await this.createTaskGraphCompletionNotification(parentTask);
269
322
  }
270
323
  }
324
+ /**
325
+ * Check if a task has incomplete dependencies
326
+ */
271
327
  async hasIncompleteDependencies(taskId) {
272
328
  const rv = new RunView();
329
+ // Get dependencies
273
330
  const depsResult = await rv.RunView({
274
331
  EntityName: 'MJ: Task Dependencies',
275
332
  ExtraFilter: `TaskID='${taskId}'`,
276
333
  ResultType: 'entity_object'
277
334
  }, this.contextUser);
278
335
  if (!depsResult.Success || !depsResult.Results || depsResult.Results.length === 0) {
279
- return false;
336
+ return false; // No dependencies
280
337
  }
338
+ // Check if any dependency is not complete
281
339
  for (const dep of depsResult.Results) {
282
340
  const dependsOnTask = await this.loadTask(dep.DependsOnTaskID);
283
341
  if (dependsOnTask && dependsOnTask.Status !== 'Complete') {
284
- return true;
342
+ return true; // Has incomplete dependency
285
343
  }
286
344
  }
287
345
  return false;
288
346
  }
347
+ /**
348
+ * Load a task by ID
349
+ */
289
350
  async loadTask(taskId) {
290
351
  const md = new Metadata();
291
352
  const task = await md.GetEntityObject('MJ: Tasks', this.contextUser);
292
353
  const loaded = await task.Load(taskId);
293
354
  return loaded ? task : null;
294
355
  }
356
+ /**
357
+ * Execute a single task
358
+ */
295
359
  async executeTask(task) {
296
360
  try {
297
361
  LogStatus(`Executing task: ${task.Name} (${task.ID})`);
362
+ // Update status to In Progress
298
363
  task.Status = 'In Progress';
299
364
  task.StartedAt = new Date();
300
365
  await task.Save();
366
+ // Load the agent entity
301
367
  const md = new Metadata();
302
368
  const agentEntity = await md.GetEntityObject('AI Agents', this.contextUser);
303
369
  const loaded = await agentEntity.Load(task.AgentID);
304
370
  if (!loaded) {
305
371
  throw new Error(`Agent with ID ${task.AgentID} not found`);
306
372
  }
373
+ // Build conversation messages with task input and dependent outputs as markdown
307
374
  const messages = await this.buildConversationMessages(task);
375
+ // Create progress callback to publish agent progress nested under task
308
376
  const onProgress = (progress) => {
309
377
  this.publishAgentProgress(task.Name, progress.step || 'processing', progress.message || '');
310
378
  };
379
+ // Run the agent - use only conversationMessages, no payload parameter
380
+ // Payload should only be used when passing an agent its own prior output for modification
311
381
  const agentRunner = new AgentRunner();
312
382
  const agentResult = await agentRunner.RunAgent({
313
383
  agent: agentEntity,
@@ -317,18 +387,23 @@ export class TaskOrchestrator {
317
387
  onProgress: onProgress
318
388
  });
319
389
  if (agentResult.success) {
390
+ // Extract output - check both message and payload
320
391
  const output = this.extractAgentOutput(agentResult);
392
+ // Store output in task metadata
321
393
  const outputMetadata = {
322
394
  outputType: output.type,
323
395
  output: output.content,
324
396
  agentRunId: agentResult.agentRun?.ID
325
397
  };
398
+ // Update task with success
326
399
  task.Status = 'Complete';
327
400
  task.CompletedAt = new Date();
328
401
  task.PercentComplete = 100;
402
+ // Store output in description (would be better as a separate column)
329
403
  task.Description = `${task.Description}\n\n__TASK_OUTPUT__\n${JSON.stringify(outputMetadata)}`;
330
404
  await task.Save();
331
405
  LogStatus(`Task completed: ${task.Name} (output type: ${output.type})`);
406
+ // Always create artifact for task output (both message and payload results)
332
407
  let conversationDetailId = task.ConversationDetailID;
333
408
  if (!conversationDetailId && task.ParentID) {
334
409
  const parentTask = await this.loadTask(task.ParentID);
@@ -347,6 +422,7 @@ export class TaskOrchestrator {
347
422
  };
348
423
  }
349
424
  else {
425
+ // Update task with failure
350
426
  task.Status = 'Failed';
351
427
  task.CompletedAt = new Date();
352
428
  await task.Save();
@@ -361,6 +437,7 @@ export class TaskOrchestrator {
361
437
  }
362
438
  catch (error) {
363
439
  LogError(error);
440
+ // Update task with failure
364
441
  task.Status = 'Failed';
365
442
  task.CompletedAt = new Date();
366
443
  await task.Save();
@@ -371,6 +448,9 @@ export class TaskOrchestrator {
371
448
  };
372
449
  }
373
450
  }
451
+ /**
452
+ * Extract input payload from task metadata
453
+ */
374
454
  extractInputPayload(task) {
375
455
  if (!task.Description)
376
456
  return null;
@@ -385,9 +465,13 @@ export class TaskOrchestrator {
385
465
  return null;
386
466
  }
387
467
  }
468
+ /**
469
+ * Get outputs from tasks that this task depends on
470
+ */
388
471
  async getDependentTaskOutputs(taskId) {
389
472
  const outputs = new Map();
390
473
  const rv = new RunView();
474
+ // Get dependencies
391
475
  const depsResult = await rv.RunView({
392
476
  EntityName: 'MJ: Task Dependencies',
393
477
  ExtraFilter: `TaskID='${taskId}'`,
@@ -396,6 +480,7 @@ export class TaskOrchestrator {
396
480
  if (!depsResult.Success || !depsResult.Results) {
397
481
  return outputs;
398
482
  }
483
+ // Get output from each dependency
399
484
  for (const dep of depsResult.Results) {
400
485
  const dependsOnTask = await this.loadTask(dep.DependsOnTaskID);
401
486
  if (!dependsOnTask || !dependsOnTask.Description)
@@ -413,11 +498,18 @@ export class TaskOrchestrator {
413
498
  }
414
499
  return outputs;
415
500
  }
501
+ /**
502
+ * Build conversation messages with task input and dependent outputs formatted as markdown
503
+ */
416
504
  async buildConversationMessages(task) {
417
505
  const messages = [];
506
+ // Start with task description/name as base content
418
507
  let userContent = task.Description || task.Name;
508
+ // Extract input payload from task metadata if it exists
419
509
  const inputPayload = this.extractInputPayload(task);
510
+ // Get dependent task outputs
420
511
  const dependentOutputs = await this.getDependentTaskOutputs(task.ID);
512
+ // If there are dependent outputs, format them as markdown blocks
421
513
  if (dependentOutputs.size > 0) {
422
514
  userContent += '\n\n## Results from Dependent Tasks:\n\n';
423
515
  for (const [taskId, outputData] of dependentOutputs.entries()) {
@@ -426,6 +518,7 @@ export class TaskOrchestrator {
426
518
  userContent += `### ${taskName}\n\`\`\`json\n${JSON.stringify(outputData, null, 2)}\n\`\`\`\n\n`;
427
519
  }
428
520
  }
521
+ // If input payload exists, add it as a separate section
429
522
  if (inputPayload) {
430
523
  userContent += '\n\n## Task Input:\n\`\`\`json\n' + JSON.stringify(inputPayload, null, 2) + '\n\`\`\`';
431
524
  }
@@ -435,25 +528,38 @@ export class TaskOrchestrator {
435
528
  });
436
529
  return messages;
437
530
  }
531
+ /**
532
+ * Extract agent output - check both message and payload
533
+ */
438
534
  extractAgentOutput(agentResult) {
535
+ // Check if agent returned a message (text response)
439
536
  if (agentResult.agentRun?.Message) {
440
537
  return { type: 'message', content: agentResult.agentRun.Message };
441
538
  }
539
+ // Check if agent returned a payload (structured data)
442
540
  if (agentResult.payload && Object.keys(agentResult.payload).length > 0) {
443
541
  return { type: 'payload', content: agentResult.payload };
444
542
  }
543
+ // No output
445
544
  return { type: 'message', content: '' };
446
545
  }
546
+ /**
547
+ * Create artifact from task output (handles both message and payload types)
548
+ */
447
549
  async createArtifactFromOutput(output, conversationDetailId, agent, taskName) {
448
550
  try {
449
551
  const md = new Metadata();
552
+ // Create Artifact header
450
553
  const artifact = await md.GetEntityObject('MJ: Artifacts', this.contextUser);
451
554
  artifact.Name = `${agent.Name} - ${taskName} - ${new Date().toLocaleString()}`;
452
555
  artifact.Description = `Artifact generated by ${agent.Name} for task: ${taskName} (${output.type})`;
556
+ // Use agent's DefaultArtifactTypeID if available, otherwise fall back to JSON
453
557
  const defaultArtifactTypeId = agent.DefaultArtifactTypeID;
454
558
  artifact.TypeID = defaultArtifactTypeId || this.JSON_ARTIFACT_TYPE_ID;
455
559
  artifact.UserID = this.contextUser.ID;
456
560
  artifact.EnvironmentID = this.contextUser.EnvironmentID || 'F51358F3-9447-4176-B313-BF8025FD8D09';
561
+ // Set visibility based on agent's ArtifactCreationMode
562
+ // Will compile after CodeGen adds the new fields
457
563
  const creationMode = agent.ArtifactCreationMode;
458
564
  if (creationMode === 'System Only') {
459
565
  artifact.Visibility = 'System Only';
@@ -468,9 +574,11 @@ export class TaskOrchestrator {
468
574
  return;
469
575
  }
470
576
  LogStatus(`Created artifact: ${artifact.Name} (${artifact.ID})`);
577
+ // Create Artifact Version with content
471
578
  const version = await md.GetEntityObject('MJ: Artifact Versions', this.contextUser);
472
579
  version.ArtifactID = artifact.ID;
473
580
  version.VersionNumber = 1;
581
+ // Store content based on output type
474
582
  if (output.type === 'message') {
475
583
  version.Content = output.content;
476
584
  }
@@ -484,19 +592,23 @@ export class TaskOrchestrator {
484
592
  return;
485
593
  }
486
594
  LogStatus(`Created artifact version: ${version.ID}`);
595
+ // Check for extracted Name attribute and update artifact with better name
487
596
  const nameAttr = version.Attributes?.find((attr) => attr.StandardProperty === 'name' || attr.Name?.toLowerCase() === 'name');
597
+ // Check for valid name value (not null, not empty, not string "null")
488
598
  let extractedName = nameAttr?.Value?.trim();
489
599
  if (extractedName && extractedName.toLowerCase() !== 'null') {
600
+ // Strip surrounding quotes (double or single) from start and end
490
601
  extractedName = extractedName.replace(/^["']|["']$/g, '');
491
602
  artifact.Name = extractedName;
492
603
  if (await artifact.Save()) {
493
604
  LogStatus(`✨ Updated artifact name to: ${artifact.Name}`);
494
605
  }
495
606
  }
607
+ // Create M2M relationship linking artifact to conversation detail
496
608
  const junction = await md.GetEntityObject('MJ: Conversation Detail Artifacts', this.contextUser);
497
609
  junction.ConversationDetailID = conversationDetailId;
498
610
  junction.ArtifactVersionID = version.ID;
499
- junction.Direction = 'Output';
611
+ junction.Direction = 'Output'; // Artifact produced as output from task
500
612
  const junctionSaved = await junction.Save();
501
613
  if (!junctionSaved) {
502
614
  LogError('Failed to create artifact-conversation association');
@@ -508,6 +620,10 @@ export class TaskOrchestrator {
508
620
  LogError(`Error creating artifact from output: ${error}`);
509
621
  }
510
622
  }
623
+ /**
624
+ * Create user notification for task graph completion
625
+ * Notifies user that their multi-step workflow has completed
626
+ */
511
627
  async createTaskGraphCompletionNotification(parentTask) {
512
628
  try {
513
629
  if (!parentTask.ConversationDetailID) {
@@ -515,10 +631,12 @@ export class TaskOrchestrator {
515
631
  return;
516
632
  }
517
633
  const md = new Metadata();
634
+ // Load conversation detail to get conversation ID
518
635
  const detail = await md.GetEntityObject('Conversation Details', this.contextUser);
519
636
  if (!(await detail.Load(parentTask.ConversationDetailID))) {
520
637
  throw new Error(`Failed to load conversation detail ${parentTask.ConversationDetailID}`);
521
638
  }
639
+ // Count child tasks and success rate
522
640
  const rv = new RunView();
523
641
  const tasksResult = await rv.RunView({
524
642
  EntityName: 'MJ: Tasks',
@@ -528,10 +646,12 @@ export class TaskOrchestrator {
528
646
  const childTasks = tasksResult.Success ? (tasksResult.Results || []) : [];
529
647
  const successCount = childTasks.filter(t => t.Status === 'Complete').length;
530
648
  const totalCount = childTasks.length;
649
+ // Create notification
531
650
  const notification = await md.GetEntityObject('User Notifications', this.contextUser);
532
651
  notification.UserID = this.contextUser.ID;
533
652
  notification.Title = `Workflow "${parentTask.Name}" completed`;
534
653
  notification.Message = `Your ${totalCount}-step workflow has finished. ${successCount} of ${totalCount} tasks completed successfully.`;
654
+ // Navigation configuration
535
655
  notification.ResourceConfiguration = JSON.stringify({
536
656
  type: 'conversation',
537
657
  conversationId: detail.ConversationID,
@@ -543,6 +663,7 @@ export class TaskOrchestrator {
543
663
  throw new Error('Failed to save notification');
544
664
  }
545
665
  LogStatus(`📬 Created task graph notification ${notification.ID} for user ${this.contextUser.ID}`);
666
+ // Publish real-time event if pubSub available
546
667
  if (this.pubSub && this.userPayload) {
547
668
  this.pubSub.publish(PUSH_STATUS_UPDATES_TOPIC, {
548
669
  userPayload: JSON.stringify(this.userPayload),
@@ -559,6 +680,7 @@ export class TaskOrchestrator {
559
680
  }
560
681
  catch (error) {
561
682
  LogError(`Failed to create task graph notification: ${error.message}`);
683
+ // Don't throw - notification failure shouldn't fail the task
562
684
  }
563
685
  }
564
686
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TaskOrchestrator.js","sourceRoot":"","sources":["../../src/services/TaskOrchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskOrchestrator.js","sourceRoot":"","sources":["../../src/services/TaskOrchestrator.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -8,14 +8,28 @@ export type UserPayload = {
8
8
  sessionId: string;
9
9
  isSystemUser?: boolean;
10
10
  apiKey?: string;
11
+ /** ID of the MJ API key used for authentication (when using mj_sk_* format keys) */
11
12
  apiKeyId?: string;
13
+ /** SHA-256 hash of the MJ API key (used for scope authorization) */
12
14
  apiKeyHash?: string;
13
15
  };
16
+ /**
17
+ * AppContext is the context object that is passed to all resolvers.
18
+ */
14
19
  export type AppContext = {
20
+ /**
21
+ * The default and backwards compatible connection pool.
22
+ */
15
23
  dataSource: sql.ConnectionPool;
16
24
  userPayload: UserPayload;
17
25
  queryRunner?: sql.Request;
26
+ /**
27
+ * Array of connection pools that have additional information about their intended use e.g. Admin, Read-Write, Read-Only.
28
+ */
18
29
  dataSources: DataSourceInfo[];
30
+ /**
31
+ * Per-request DatabaseProviderBase instances
32
+ */
19
33
  providers: Array<ProviderInfo>;
20
34
  };
21
35
  export declare class ProviderInfo {