@memberjunction/server 2.112.0 → 2.113.1

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 (250) hide show
  1. package/dist/agents/skip-agent.d.ts +4 -4
  2. package/dist/agents/skip-agent.d.ts.map +1 -1
  3. package/dist/agents/skip-agent.js +951 -808
  4. package/dist/agents/skip-agent.js.map +1 -1
  5. package/dist/agents/skip-sdk.d.ts +1 -1
  6. package/dist/agents/skip-sdk.d.ts.map +1 -1
  7. package/dist/agents/skip-sdk.js +43 -53
  8. package/dist/agents/skip-sdk.js.map +1 -1
  9. package/dist/apolloServer/index.js +1 -1
  10. package/dist/auth/AuthProviderFactory.d.ts +1 -1
  11. package/dist/auth/AuthProviderFactory.d.ts.map +1 -1
  12. package/dist/auth/AuthProviderFactory.js +3 -1
  13. package/dist/auth/AuthProviderFactory.js.map +1 -1
  14. package/dist/auth/BaseAuthProvider.d.ts +1 -1
  15. package/dist/auth/BaseAuthProvider.d.ts.map +1 -1
  16. package/dist/auth/BaseAuthProvider.js +2 -3
  17. package/dist/auth/BaseAuthProvider.js.map +1 -1
  18. package/dist/auth/IAuthProvider.d.ts +1 -1
  19. package/dist/auth/IAuthProvider.d.ts.map +1 -1
  20. package/dist/auth/exampleNewUserSubClass.d.ts.map +1 -1
  21. package/dist/auth/exampleNewUserSubClass.js +1 -1
  22. package/dist/auth/exampleNewUserSubClass.js.map +1 -1
  23. package/dist/auth/index.d.ts +1 -1
  24. package/dist/auth/index.d.ts.map +1 -1
  25. package/dist/auth/index.js +6 -6
  26. package/dist/auth/index.js.map +1 -1
  27. package/dist/auth/initializeProviders.js +1 -1
  28. package/dist/auth/initializeProviders.js.map +1 -1
  29. package/dist/auth/newUsers.d.ts +1 -1
  30. package/dist/auth/newUsers.d.ts.map +1 -1
  31. package/dist/auth/newUsers.js +7 -7
  32. package/dist/auth/newUsers.js.map +1 -1
  33. package/dist/auth/providers/Auth0Provider.d.ts +1 -1
  34. package/dist/auth/providers/Auth0Provider.d.ts.map +1 -1
  35. package/dist/auth/providers/Auth0Provider.js +1 -1
  36. package/dist/auth/providers/Auth0Provider.js.map +1 -1
  37. package/dist/auth/providers/CognitoProvider.d.ts +1 -1
  38. package/dist/auth/providers/CognitoProvider.d.ts.map +1 -1
  39. package/dist/auth/providers/CognitoProvider.js +6 -3
  40. package/dist/auth/providers/CognitoProvider.js.map +1 -1
  41. package/dist/auth/providers/GoogleProvider.d.ts +1 -1
  42. package/dist/auth/providers/GoogleProvider.d.ts.map +1 -1
  43. package/dist/auth/providers/GoogleProvider.js +1 -1
  44. package/dist/auth/providers/GoogleProvider.js.map +1 -1
  45. package/dist/auth/providers/MSALProvider.d.ts +1 -1
  46. package/dist/auth/providers/MSALProvider.d.ts.map +1 -1
  47. package/dist/auth/providers/MSALProvider.js +1 -1
  48. package/dist/auth/providers/MSALProvider.js.map +1 -1
  49. package/dist/auth/providers/OktaProvider.d.ts +1 -1
  50. package/dist/auth/providers/OktaProvider.d.ts.map +1 -1
  51. package/dist/auth/providers/OktaProvider.js +1 -1
  52. package/dist/auth/providers/OktaProvider.js.map +1 -1
  53. package/dist/config.d.ts.map +1 -1
  54. package/dist/config.js +10 -22
  55. package/dist/config.js.map +1 -1
  56. package/dist/context.d.ts +1 -1
  57. package/dist/context.d.ts.map +1 -1
  58. package/dist/context.js +7 -9
  59. package/dist/context.js.map +1 -1
  60. package/dist/entitySubclasses/entityPermissions.server.d.ts +1 -1
  61. package/dist/entitySubclasses/entityPermissions.server.d.ts.map +1 -1
  62. package/dist/entitySubclasses/entityPermissions.server.js +1 -1
  63. package/dist/entitySubclasses/entityPermissions.server.js.map +1 -1
  64. package/dist/generated/generated.d.ts +788 -658
  65. package/dist/generated/generated.d.ts.map +1 -1
  66. package/dist/generated/generated.js +2050 -3054
  67. package/dist/generated/generated.js.map +1 -1
  68. package/dist/generic/KeyInputOutputTypes.d.ts +1 -1
  69. package/dist/generic/KeyInputOutputTypes.d.ts.map +1 -1
  70. package/dist/generic/KeyInputOutputTypes.js +1 -1
  71. package/dist/generic/KeyInputOutputTypes.js.map +1 -1
  72. package/dist/generic/ResolverBase.d.ts +1 -1
  73. package/dist/generic/ResolverBase.d.ts.map +1 -1
  74. package/dist/generic/ResolverBase.js +10 -15
  75. package/dist/generic/ResolverBase.js.map +1 -1
  76. package/dist/generic/RunViewResolver.d.ts +1 -1
  77. package/dist/generic/RunViewResolver.d.ts.map +1 -1
  78. package/dist/generic/RunViewResolver.js +15 -15
  79. package/dist/generic/RunViewResolver.js.map +1 -1
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +13 -18
  82. package/dist/index.js.map +1 -1
  83. package/dist/resolvers/ActionResolver.d.ts +2 -2
  84. package/dist/resolvers/ActionResolver.d.ts.map +1 -1
  85. package/dist/resolvers/ActionResolver.js +30 -28
  86. package/dist/resolvers/ActionResolver.js.map +1 -1
  87. package/dist/resolvers/AskSkipResolver.d.ts +2 -2
  88. package/dist/resolvers/AskSkipResolver.d.ts.map +1 -1
  89. package/dist/resolvers/AskSkipResolver.js +50 -60
  90. package/dist/resolvers/AskSkipResolver.js.map +1 -1
  91. package/dist/resolvers/ComponentRegistryResolver.d.ts.map +1 -1
  92. package/dist/resolvers/ComponentRegistryResolver.js +38 -36
  93. package/dist/resolvers/ComponentRegistryResolver.js.map +1 -1
  94. package/dist/resolvers/CreateQueryResolver.d.ts +1 -1
  95. package/dist/resolvers/CreateQueryResolver.d.ts.map +1 -1
  96. package/dist/resolvers/CreateQueryResolver.js +40 -43
  97. package/dist/resolvers/CreateQueryResolver.js.map +1 -1
  98. package/dist/resolvers/DatasetResolver.d.ts.map +1 -1
  99. package/dist/resolvers/DatasetResolver.js +1 -1
  100. package/dist/resolvers/DatasetResolver.js.map +1 -1
  101. package/dist/resolvers/EntityRecordNameResolver.d.ts +1 -1
  102. package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
  103. package/dist/resolvers/EntityRecordNameResolver.js +1 -1
  104. package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
  105. package/dist/resolvers/EntityResolver.d.ts.map +1 -1
  106. package/dist/resolvers/EntityResolver.js +1 -1
  107. package/dist/resolvers/EntityResolver.js.map +1 -1
  108. package/dist/resolvers/FileCategoryResolver.js +1 -1
  109. package/dist/resolvers/FileCategoryResolver.js.map +1 -1
  110. package/dist/resolvers/FileResolver.js +1 -1
  111. package/dist/resolvers/FileResolver.js.map +1 -1
  112. package/dist/resolvers/GetDataContextDataResolver.d.ts +1 -1
  113. package/dist/resolvers/GetDataContextDataResolver.d.ts.map +1 -1
  114. package/dist/resolvers/GetDataContextDataResolver.js +5 -5
  115. package/dist/resolvers/GetDataContextDataResolver.js.map +1 -1
  116. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  117. package/dist/resolvers/GetDataResolver.js +6 -8
  118. package/dist/resolvers/GetDataResolver.js.map +1 -1
  119. package/dist/resolvers/MergeRecordsResolver.d.ts +3 -3
  120. package/dist/resolvers/MergeRecordsResolver.d.ts.map +1 -1
  121. package/dist/resolvers/MergeRecordsResolver.js +3 -3
  122. package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
  123. package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts +1 -1
  124. package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts.map +1 -1
  125. package/dist/resolvers/PotentialDuplicateRecordResolver.js +1 -1
  126. package/dist/resolvers/PotentialDuplicateRecordResolver.js.map +1 -1
  127. package/dist/resolvers/QueryResolver.d.ts.map +1 -1
  128. package/dist/resolvers/QueryResolver.js +11 -11
  129. package/dist/resolvers/QueryResolver.js.map +1 -1
  130. package/dist/resolvers/ReportResolver.js +1 -1
  131. package/dist/resolvers/ReportResolver.js.map +1 -1
  132. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  133. package/dist/resolvers/RunAIAgentResolver.js +28 -27
  134. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  135. package/dist/resolvers/RunAIPromptResolver.d.ts.map +1 -1
  136. package/dist/resolvers/RunAIPromptResolver.js +31 -31
  137. package/dist/resolvers/RunAIPromptResolver.js.map +1 -1
  138. package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
  139. package/dist/resolvers/RunTemplateResolver.js +9 -9
  140. package/dist/resolvers/RunTemplateResolver.js.map +1 -1
  141. package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
  142. package/dist/resolvers/SqlLoggingConfigResolver.js +10 -10
  143. package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
  144. package/dist/resolvers/SyncDataResolver.d.ts +1 -1
  145. package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
  146. package/dist/resolvers/SyncDataResolver.js +14 -15
  147. package/dist/resolvers/SyncDataResolver.js.map +1 -1
  148. package/dist/resolvers/SyncRolesUsersResolver.d.ts +1 -1
  149. package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -1
  150. package/dist/resolvers/SyncRolesUsersResolver.js +44 -48
  151. package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
  152. package/dist/resolvers/TaskResolver.d.ts.map +1 -1
  153. package/dist/resolvers/TaskResolver.js +7 -7
  154. package/dist/resolvers/TaskResolver.js.map +1 -1
  155. package/dist/resolvers/TransactionGroupResolver.d.ts +1 -1
  156. package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
  157. package/dist/resolvers/TransactionGroupResolver.js +12 -12
  158. package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
  159. package/dist/resolvers/UserFavoriteResolver.d.ts +1 -1
  160. package/dist/resolvers/UserFavoriteResolver.d.ts.map +1 -1
  161. package/dist/resolvers/UserFavoriteResolver.js +1 -1
  162. package/dist/resolvers/UserFavoriteResolver.js.map +1 -1
  163. package/dist/resolvers/UserViewResolver.d.ts.map +1 -1
  164. package/dist/resolvers/UserViewResolver.js.map +1 -1
  165. package/dist/rest/EntityCRUDHandler.d.ts +1 -1
  166. package/dist/rest/EntityCRUDHandler.d.ts.map +1 -1
  167. package/dist/rest/EntityCRUDHandler.js +16 -14
  168. package/dist/rest/EntityCRUDHandler.js.map +1 -1
  169. package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
  170. package/dist/rest/RESTEndpointHandler.js +25 -23
  171. package/dist/rest/RESTEndpointHandler.js.map +1 -1
  172. package/dist/rest/ViewOperationsHandler.d.ts +1 -1
  173. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  174. package/dist/rest/ViewOperationsHandler.js +21 -17
  175. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  176. package/dist/scheduler/LearningCycleScheduler.d.ts.map +1 -1
  177. package/dist/scheduler/LearningCycleScheduler.js.map +1 -1
  178. package/dist/services/ScheduledJobsService.d.ts.map +1 -1
  179. package/dist/services/ScheduledJobsService.js +6 -4
  180. package/dist/services/ScheduledJobsService.js.map +1 -1
  181. package/dist/services/TaskOrchestrator.d.ts +1 -1
  182. package/dist/services/TaskOrchestrator.d.ts.map +1 -1
  183. package/dist/services/TaskOrchestrator.js +30 -30
  184. package/dist/services/TaskOrchestrator.js.map +1 -1
  185. package/dist/types.d.ts +3 -3
  186. package/dist/types.d.ts.map +1 -1
  187. package/dist/types.js +1 -0
  188. package/dist/types.js.map +1 -1
  189. package/dist/util.d.ts +1 -1
  190. package/dist/util.d.ts.map +1 -1
  191. package/dist/util.js +2 -2
  192. package/dist/util.js.map +1 -1
  193. package/package.json +39 -36
  194. package/src/agents/skip-agent.ts +1200 -1067
  195. package/src/agents/skip-sdk.ts +851 -877
  196. package/src/apolloServer/index.ts +2 -2
  197. package/src/auth/AuthProviderFactory.ts +14 -8
  198. package/src/auth/BaseAuthProvider.ts +4 -5
  199. package/src/auth/IAuthProvider.ts +2 -2
  200. package/src/auth/exampleNewUserSubClass.ts +2 -9
  201. package/src/auth/index.ts +26 -31
  202. package/src/auth/initializeProviders.ts +3 -3
  203. package/src/auth/newUsers.ts +134 -166
  204. package/src/auth/providers/Auth0Provider.ts +5 -5
  205. package/src/auth/providers/CognitoProvider.ts +10 -7
  206. package/src/auth/providers/GoogleProvider.ts +5 -4
  207. package/src/auth/providers/MSALProvider.ts +5 -5
  208. package/src/auth/providers/OktaProvider.ts +7 -6
  209. package/src/config.ts +54 -63
  210. package/src/context.ts +30 -42
  211. package/src/entitySubclasses/entityPermissions.server.ts +3 -3
  212. package/src/generated/generated.ts +40442 -48106
  213. package/src/generic/KeyInputOutputTypes.ts +6 -3
  214. package/src/generic/ResolverBase.ts +78 -119
  215. package/src/generic/RunViewResolver.ts +23 -27
  216. package/src/index.ts +48 -66
  217. package/src/resolvers/ActionResolver.ts +57 -46
  218. package/src/resolvers/AskSkipResolver.ts +533 -607
  219. package/src/resolvers/ComponentRegistryResolver.ts +562 -547
  220. package/src/resolvers/CreateQueryResolver.ts +655 -683
  221. package/src/resolvers/DatasetResolver.ts +6 -5
  222. package/src/resolvers/EntityCommunicationsResolver.ts +1 -1
  223. package/src/resolvers/EntityRecordNameResolver.ts +5 -9
  224. package/src/resolvers/EntityResolver.ts +7 -9
  225. package/src/resolvers/FileCategoryResolver.ts +2 -2
  226. package/src/resolvers/FileResolver.ts +4 -4
  227. package/src/resolvers/GetDataContextDataResolver.ts +118 -106
  228. package/src/resolvers/GetDataResolver.ts +205 -194
  229. package/src/resolvers/MergeRecordsResolver.ts +5 -5
  230. package/src/resolvers/PotentialDuplicateRecordResolver.ts +1 -1
  231. package/src/resolvers/QueryResolver.ts +78 -95
  232. package/src/resolvers/ReportResolver.ts +2 -2
  233. package/src/resolvers/RunAIAgentResolver.ts +828 -818
  234. package/src/resolvers/RunAIPromptResolver.ts +709 -693
  235. package/src/resolvers/RunTemplateResolver.ts +103 -105
  236. package/src/resolvers/SqlLoggingConfigResolver.ts +72 -69
  237. package/src/resolvers/SyncDataResolver.ts +352 -386
  238. package/src/resolvers/SyncRolesUsersResolver.ts +350 -387
  239. package/src/resolvers/TaskResolver.ts +115 -110
  240. package/src/resolvers/TransactionGroupResolver.ts +138 -143
  241. package/src/resolvers/UserFavoriteResolver.ts +8 -17
  242. package/src/resolvers/UserViewResolver.ts +12 -17
  243. package/src/rest/EntityCRUDHandler.ts +268 -291
  244. package/src/rest/RESTEndpointHandler.ts +776 -782
  245. package/src/rest/ViewOperationsHandler.ts +195 -191
  246. package/src/scheduler/LearningCycleScheduler.ts +52 -8
  247. package/src/services/ScheduledJobsService.ts +132 -129
  248. package/src/services/TaskOrchestrator.ts +776 -792
  249. package/src/types.ts +9 -15
  250. package/src/util.ts +109 -112
@@ -1,6 +1,6 @@
1
1
  import { Resolver, Mutation, Arg, Ctx, ObjectType, Field } from 'type-graphql';
2
2
  import { AppContext, UserPayload } from '../types.js';
3
- import { LogError, LogStatus, Metadata, RunView } from '@memberjunction/global';
3
+ import { LogError, LogStatus, Metadata, RunView } from '@memberjunction/core';
4
4
  import { TemplateContentEntity, TemplateEntityExtended } from '@memberjunction/core-entities';
5
5
  import { TemplateEngineServer } from '@memberjunction/templates';
6
6
  import { ResolverBase } from '../generic/ResolverBase.js';
@@ -8,124 +8,122 @@ import { GetReadWriteProvider } from '../util.js';
8
8
 
9
9
  @ObjectType()
10
10
  export class TemplateRunResult {
11
- @Field()
12
- success: boolean;
11
+ @Field()
12
+ success: boolean;
13
13
 
14
- @Field({ nullable: true })
15
- output?: string;
14
+ @Field({ nullable: true })
15
+ output?: string;
16
16
 
17
- @Field({ nullable: true })
18
- error?: string;
17
+ @Field({ nullable: true })
18
+ error?: string;
19
19
 
20
- @Field({ nullable: true })
21
- executionTimeMs?: number;
20
+ @Field({ nullable: true })
21
+ executionTimeMs?: number;
22
22
  }
23
23
 
24
24
  @Resolver()
25
25
  export class RunTemplateResolver extends ResolverBase {
26
- @Mutation(() => TemplateRunResult)
27
- async RunTemplate(
28
- @Arg('templateId') templateId: string,
29
- @Ctx() { userPayload, providers }: AppContext,
30
- @Arg('contextData', { nullable: true }) contextData?: string
31
- ): Promise<TemplateRunResult> {
32
- const startTime = Date.now();
33
-
34
- try {
35
- LogStatus(`=== RUNNING TEMPLATE FOR ID: ${templateId} ===`);
36
-
37
- // Parse context data (JSON string)
38
- let data = {};
39
- if (contextData) {
26
+ @Mutation(() => TemplateRunResult)
27
+ async RunTemplate(
28
+ @Arg('templateId') templateId: string,
29
+ @Ctx() { userPayload, providers }: AppContext,
30
+ @Arg('contextData', { nullable: true }) contextData?: string
31
+ ): Promise<TemplateRunResult> {
32
+ const startTime = Date.now();
33
+
40
34
  try {
41
- data = JSON.parse(contextData);
42
- } catch (parseError) {
43
- return {
44
- success: false,
45
- error: `Invalid JSON in context data: ${(parseError as Error).message}`,
46
- executionTimeMs: Date.now() - startTime,
47
- };
48
- }
49
- }
35
+ LogStatus(`=== RUNNING TEMPLATE FOR ID: ${templateId} ===`);
50
36
 
51
- // Get current user from payload
52
- const currentUser = this.GetUserFromPayload(userPayload);
53
- if (!currentUser) {
54
- return {
55
- success: false,
56
- error: 'Unable to determine current user',
57
- executionTimeMs: Date.now() - startTime,
58
- };
59
- }
37
+ // Parse context data (JSON string)
38
+ let data = {};
39
+ if (contextData) {
40
+ try {
41
+ data = JSON.parse(contextData);
42
+ } catch (parseError) {
43
+ return {
44
+ success: false,
45
+ error: `Invalid JSON in context data: ${(parseError as Error).message}`,
46
+ executionTimeMs: Date.now() - startTime
47
+ };
48
+ }
49
+ }
60
50
 
61
- const p = GetReadWriteProvider(providers);
62
- // Load the template entity
63
- const templateEntity = await p.GetEntityObject<TemplateEntityExtended>('Templates', currentUser);
64
- await templateEntity.Load(templateId);
51
+ // Get current user from payload
52
+ const currentUser = this.GetUserFromPayload(userPayload);
53
+ if (!currentUser) {
54
+ return {
55
+ success: false,
56
+ error: 'Unable to determine current user',
57
+ executionTimeMs: Date.now() - startTime
58
+ };
59
+ }
60
+
61
+ const p = GetReadWriteProvider(providers);
62
+ // Load the template entity
63
+ const templateEntity = await p.GetEntityObject<TemplateEntityExtended>('Templates', currentUser);
64
+ await templateEntity.Load(templateId);
65
+
66
+ if (!templateEntity.IsSaved) {
67
+ return {
68
+ success: false,
69
+ error: `Template with ID ${templateId} not found`,
70
+ executionTimeMs: Date.now() - startTime
71
+ };
72
+ }
65
73
 
66
- if (!templateEntity.IsSaved) {
67
- return {
68
- success: false,
69
- error: `Template with ID ${templateId} not found`,
70
- executionTimeMs: Date.now() - startTime,
71
- };
72
- }
74
+ // Load template content (get the first/highest priority content)
75
+ const rv = new RunView();
76
+ const templateContentResult = await rv.RunView<TemplateContentEntity>({
77
+ EntityName: 'Template Contents',
78
+ ExtraFilter: `TemplateID = '${templateId}'`,
79
+ OrderBy: 'Priority ASC',
80
+ MaxRows: 1,
81
+ ResultType: 'entity_object'
82
+ }, currentUser);
73
83
 
74
- // Load template content (get the first/highest priority content)
75
- const rv = new RunView();
76
- const templateContentResult = await rv.RunView<TemplateContentEntity>(
77
- {
78
- EntityName: 'Template Contents',
79
- ExtraFilter: `TemplateID = '${templateId}'`,
80
- OrderBy: 'Priority ASC',
81
- MaxRows: 1,
82
- ResultType: 'entity_object',
83
- },
84
- currentUser
85
- );
84
+ if (!templateContentResult.Results || templateContentResult.Results.length === 0) {
85
+ return {
86
+ success: false,
87
+ error: `No template content found for template ${templateEntity.Name}`,
88
+ executionTimeMs: Date.now() - startTime
89
+ };
90
+ }
86
91
 
87
- if (!templateContentResult.Results || templateContentResult.Results.length === 0) {
88
- return {
89
- success: false,
90
- error: `No template content found for template ${templateEntity.Name}`,
91
- executionTimeMs: Date.now() - startTime,
92
- };
93
- }
92
+ // Configure and render the template
93
+ await TemplateEngineServer.Instance.Config(true /*always refresh to get latest templates*/, currentUser);
94
+ const result = await TemplateEngineServer.Instance.RenderTemplate(
95
+ templateEntity,
96
+ templateContentResult.Results[0],
97
+ data,
98
+ true // skip validation for execution
99
+ );
94
100
 
95
- // Configure and render the template
96
- await TemplateEngineServer.Instance.Config(true /*always refresh to get latest templates*/, currentUser);
97
- const result = await TemplateEngineServer.Instance.RenderTemplate(
98
- templateEntity,
99
- templateContentResult.Results[0],
100
- data,
101
- true // skip validation for execution
102
- );
101
+ const executionTime = Date.now() - startTime;
103
102
 
104
- const executionTime = Date.now() - startTime;
103
+ if (result.Success) {
104
+ LogStatus(`=== TEMPLATE RUN COMPLETED FOR: ${templateEntity.Name} (${executionTime}ms) ===`);
105
+ return {
106
+ success: true,
107
+ output: result.Output,
108
+ executionTimeMs: executionTime
109
+ };
110
+ } else {
111
+ LogError(`Template run failed for ${templateEntity.Name}: ${result.Message}`);
112
+ return {
113
+ success: false,
114
+ error: result.Message,
115
+ executionTimeMs: executionTime
116
+ };
117
+ }
105
118
 
106
- if (result.Success) {
107
- LogStatus(`=== TEMPLATE RUN COMPLETED FOR: ${templateEntity.Name} (${executionTime}ms) ===`);
108
- return {
109
- success: true,
110
- output: result.Output,
111
- executionTimeMs: executionTime,
112
- };
113
- } else {
114
- LogError(`Template run failed for ${templateEntity.Name}: ${result.Message}`);
115
- return {
116
- success: false,
117
- error: result.Message,
118
- executionTimeMs: executionTime,
119
- };
120
- }
121
- } catch (error) {
122
- const executionTime = Date.now() - startTime;
123
- LogError(`Template run failed:`, undefined, error);
124
- return {
125
- success: false,
126
- error: (error as Error).message || 'Unknown error occurred',
127
- executionTimeMs: executionTime,
128
- };
119
+ } catch (error) {
120
+ const executionTime = Date.now() - startTime;
121
+ LogError(`Template run failed:`, undefined, error);
122
+ return {
123
+ success: false,
124
+ error: (error as Error).message || 'Unknown error occurred',
125
+ executionTimeMs: executionTime
126
+ };
127
+ }
129
128
  }
130
- }
131
- }
129
+ }