@memberjunction/server 6.2.0-edge.4 → 6.2.0-edge.5

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 (287) hide show
  1. package/README.md +20 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/agentSessions/SessionJanitor.d.ts +91 -30
  4. package/dist/agentSessions/SessionJanitor.d.ts.map +1 -1
  5. package/dist/agentSessions/SessionJanitor.js +311 -81
  6. package/dist/agentSessions/SessionJanitor.js.map +1 -1
  7. package/dist/agentSessions/SessionManager.d.ts +5 -1
  8. package/dist/agentSessions/SessionManager.d.ts.map +1 -1
  9. package/dist/agentSessions/SessionManager.js +13 -1
  10. package/dist/agentSessions/SessionManager.js.map +1 -1
  11. package/dist/apiRoot.d.ts +32 -0
  12. package/dist/apiRoot.d.ts.map +1 -0
  13. package/dist/apiRoot.js +67 -0
  14. package/dist/apiRoot.js.map +1 -0
  15. package/dist/auth/AuthProviderCatalogRouter.d.ts.map +1 -1
  16. package/dist/auth/AuthProviderCatalogRouter.js +25 -0
  17. package/dist/auth/AuthProviderCatalogRouter.js.map +1 -1
  18. package/dist/auth/LoginScreenEngine.d.ts +22 -0
  19. package/dist/auth/LoginScreenEngine.d.ts.map +1 -0
  20. package/dist/auth/LoginScreenEngine.js +57 -0
  21. package/dist/auth/LoginScreenEngine.js.map +1 -0
  22. package/dist/auth/index.d.ts +1 -0
  23. package/dist/auth/index.d.ts.map +1 -1
  24. package/dist/auth/index.js +1 -0
  25. package/dist/auth/index.js.map +1 -1
  26. package/dist/auth/magicLink/MagicLinkRouter.d.ts.map +1 -1
  27. package/dist/auth/magicLink/MagicLinkRouter.js +3 -2
  28. package/dist/auth/magicLink/MagicLinkRouter.js.map +1 -1
  29. package/dist/config.d.ts +136 -22
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +43 -4
  32. package/dist/config.js.map +1 -1
  33. package/dist/coreRoutes.d.ts +29 -0
  34. package/dist/coreRoutes.d.ts.map +1 -0
  35. package/dist/coreRoutes.js +142 -0
  36. package/dist/coreRoutes.js.map +1 -0
  37. package/dist/generated/graphql-schemas/__mj.d.ts +369 -3
  38. package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
  39. package/dist/generated/graphql-schemas/__mj.js +1750 -7
  40. package/dist/generated/graphql-schemas/__mj.js.map +1 -1
  41. package/dist/generic/CacheInvalidationResolver.d.ts +43 -8
  42. package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -1
  43. package/dist/generic/CacheInvalidationResolver.js +59 -19
  44. package/dist/generic/CacheInvalidationResolver.js.map +1 -1
  45. package/dist/generic/PushStatusResolver.js +1 -1
  46. package/dist/generic/PushStatusResolver.js.map +1 -1
  47. package/dist/generic/ResolverBase.d.ts +103 -44
  48. package/dist/generic/ResolverBase.d.ts.map +1 -1
  49. package/dist/generic/ResolverBase.js +264 -305
  50. package/dist/generic/ResolverBase.js.map +1 -1
  51. package/dist/generic/RunViewResolver.d.ts.map +1 -1
  52. package/dist/generic/RunViewResolver.js +12 -0
  53. package/dist/generic/RunViewResolver.js.map +1 -1
  54. package/dist/globalCors.d.ts +33 -0
  55. package/dist/globalCors.d.ts.map +1 -0
  56. package/dist/globalCors.js +58 -0
  57. package/dist/globalCors.js.map +1 -0
  58. package/dist/index.d.ts +11 -0
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +112 -160
  61. package/dist/index.js.map +1 -1
  62. package/dist/multiTenancy/index.d.ts.map +1 -1
  63. package/dist/multiTenancy/index.js +22 -2
  64. package/dist/multiTenancy/index.js.map +1 -1
  65. package/dist/realtimeSessions/RealtimeSessionVerificationService.d.ts.map +1 -1
  66. package/dist/realtimeSessions/RealtimeSessionVerificationService.js +2 -1
  67. package/dist/realtimeSessions/RealtimeSessionVerificationService.js.map +1 -1
  68. package/dist/realtimeSessions/RealtimeVerifyRouter.d.ts.map +1 -1
  69. package/dist/realtimeSessions/RealtimeVerifyRouter.js +2 -1
  70. package/dist/realtimeSessions/RealtimeVerifyRouter.js.map +1 -1
  71. package/dist/realtimeSessions/RecordingAssemblyScheduler.d.ts +100 -0
  72. package/dist/realtimeSessions/RecordingAssemblyScheduler.d.ts.map +1 -0
  73. package/dist/realtimeSessions/RecordingAssemblyScheduler.js +173 -0
  74. package/dist/realtimeSessions/RecordingAssemblyScheduler.js.map +1 -0
  75. package/dist/realtimeSessions/index.d.ts +2 -0
  76. package/dist/realtimeSessions/index.d.ts.map +1 -1
  77. package/dist/realtimeSessions/index.js +2 -0
  78. package/dist/realtimeSessions/index.js.map +1 -1
  79. package/dist/realtimeSessions/ownedRealtimeSession.d.ts +30 -0
  80. package/dist/realtimeSessions/ownedRealtimeSession.d.ts.map +1 -0
  81. package/dist/realtimeSessions/ownedRealtimeSession.js +47 -0
  82. package/dist/realtimeSessions/ownedRealtimeSession.js.map +1 -0
  83. package/dist/realtimeSessions/sessionAccess.d.ts +6 -0
  84. package/dist/realtimeSessions/sessionAccess.d.ts.map +1 -1
  85. package/dist/realtimeSessions/sessionAccess.js +7 -3
  86. package/dist/realtimeSessions/sessionAccess.js.map +1 -1
  87. package/dist/resolvers/ArtifactFileResolver.d.ts +5 -1
  88. package/dist/resolvers/ArtifactFileResolver.d.ts.map +1 -1
  89. package/dist/resolvers/ArtifactFileResolver.js +9 -7
  90. package/dist/resolvers/ArtifactFileResolver.js.map +1 -1
  91. package/dist/resolvers/ConversationRunEventsResolver.d.ts +8 -4
  92. package/dist/resolvers/ConversationRunEventsResolver.d.ts.map +1 -1
  93. package/dist/resolvers/ConversationRunEventsResolver.js +6 -6
  94. package/dist/resolvers/ConversationRunEventsResolver.js.map +1 -1
  95. package/dist/resolvers/DatasetResolver.d.ts +24 -3
  96. package/dist/resolvers/DatasetResolver.d.ts.map +1 -1
  97. package/dist/resolvers/DatasetResolver.js +57 -8
  98. package/dist/resolvers/DatasetResolver.js.map +1 -1
  99. package/dist/resolvers/EntityRecordNameResolver.d.ts +2 -1
  100. package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
  101. package/dist/resolvers/EntityRecordNameResolver.js +3 -2
  102. package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
  103. package/dist/resolvers/FetchEntityVectorsResolver.d.ts +18 -3
  104. package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -1
  105. package/dist/resolvers/FetchEntityVectorsResolver.js +100 -35
  106. package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
  107. package/dist/resolvers/FileResolver.d.ts +82 -11
  108. package/dist/resolvers/FileResolver.d.ts.map +1 -1
  109. package/dist/resolvers/FileResolver.js +279 -101
  110. package/dist/resolvers/FileResolver.js.map +1 -1
  111. package/dist/resolvers/GetDataContextDataResolver.d.ts +33 -7
  112. package/dist/resolvers/GetDataContextDataResolver.d.ts.map +1 -1
  113. package/dist/resolvers/GetDataContextDataResolver.js +117 -38
  114. package/dist/resolvers/GetDataContextDataResolver.js.map +1 -1
  115. package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
  116. package/dist/resolvers/GetDataResolver.js +6 -3
  117. package/dist/resolvers/GetDataResolver.js.map +1 -1
  118. package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
  119. package/dist/resolvers/IntegrationDiscoveryResolver.js +4 -2
  120. package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
  121. package/dist/resolvers/QueryResolver.d.ts +2 -0
  122. package/dist/resolvers/QueryResolver.d.ts.map +1 -1
  123. package/dist/resolvers/QueryResolver.js +13 -0
  124. package/dist/resolvers/QueryResolver.js.map +1 -1
  125. package/dist/resolvers/RealtimeClientSessionResolver.d.ts +2 -8
  126. package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
  127. package/dist/resolvers/RealtimeClientSessionResolver.js +10 -26
  128. package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
  129. package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
  130. package/dist/resolvers/RunAIAgentResolver.js +35 -6
  131. package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
  132. package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts +12 -1
  133. package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts.map +1 -1
  134. package/dist/resolvers/SearchKnowledgeStreamResolver.js +15 -2
  135. package/dist/resolvers/SearchKnowledgeStreamResolver.js.map +1 -1
  136. package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
  137. package/dist/resolvers/SqlLoggingConfigResolver.js +2 -3
  138. package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
  139. package/dist/resolvers/TaskGraphFrameResolver.d.ts +2 -1
  140. package/dist/resolvers/TaskGraphFrameResolver.d.ts.map +1 -1
  141. package/dist/resolvers/TaskGraphFrameResolver.js +28 -1
  142. package/dist/resolvers/TaskGraphFrameResolver.js.map +1 -1
  143. package/dist/resolvers/TestQuerySQLResolver.d.ts +24 -0
  144. package/dist/resolvers/TestQuerySQLResolver.d.ts.map +1 -1
  145. package/dist/resolvers/TestQuerySQLResolver.js +65 -13
  146. package/dist/resolvers/TestQuerySQLResolver.js.map +1 -1
  147. package/dist/resolvers/TransactionGroupResolver.d.ts +19 -2
  148. package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
  149. package/dist/resolvers/TransactionGroupResolver.js +102 -24
  150. package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
  151. package/dist/resolvers/agent-run-data-guard.d.ts +31 -0
  152. package/dist/resolvers/agent-run-data-guard.d.ts.map +1 -0
  153. package/dist/resolvers/agent-run-data-guard.js +72 -0
  154. package/dist/resolvers/agent-run-data-guard.js.map +1 -0
  155. package/dist/rest/RealtimeRecordingHandler.d.ts +49 -0
  156. package/dist/rest/RealtimeRecordingHandler.d.ts.map +1 -0
  157. package/dist/rest/RealtimeRecordingHandler.js +383 -0
  158. package/dist/rest/RealtimeRecordingHandler.js.map +1 -0
  159. package/dist/rest/ViewOperationsHandler.d.ts +3 -1
  160. package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
  161. package/dist/rest/ViewOperationsHandler.js +21 -12
  162. package/dist/rest/ViewOperationsHandler.js.map +1 -1
  163. package/dist/rest/setupRESTEndpoints.d.ts +6 -0
  164. package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
  165. package/dist/rest/setupRESTEndpoints.js +6 -0
  166. package/dist/rest/setupRESTEndpoints.js.map +1 -1
  167. package/dist/serverExtensionReservedRoots.d.ts +12 -10
  168. package/dist/serverExtensionReservedRoots.d.ts.map +1 -1
  169. package/dist/serverExtensionReservedRoots.js +14 -17
  170. package/dist/serverExtensionReservedRoots.js.map +1 -1
  171. package/dist/services/MJStorageBlobStore.d.ts +8 -1
  172. package/dist/services/MJStorageBlobStore.d.ts.map +1 -1
  173. package/dist/services/MJStorageBlobStore.js +25 -19
  174. package/dist/services/MJStorageBlobStore.js.map +1 -1
  175. package/dist/services/StartTaskGraphDispatcher.js +2 -2
  176. package/dist/services/StartTaskGraphDispatcher.js.map +1 -1
  177. package/dist/services/TaskGraphActionRunner.d.ts +5 -3
  178. package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
  179. package/dist/services/TaskGraphActionRunner.js +27 -5
  180. package/dist/services/TaskGraphActionRunner.js.map +1 -1
  181. package/dist/services/TaskGraphAgentRunner.d.ts +14 -2
  182. package/dist/services/TaskGraphAgentRunner.d.ts.map +1 -1
  183. package/dist/services/TaskGraphAgentRunner.js +157 -9
  184. package/dist/services/TaskGraphAgentRunner.js.map +1 -1
  185. package/dist/services/TaskGraphContinuationDeliverer.d.ts +54 -2
  186. package/dist/services/TaskGraphContinuationDeliverer.d.ts.map +1 -1
  187. package/dist/services/TaskGraphContinuationDeliverer.js +598 -15
  188. package/dist/services/TaskGraphContinuationDeliverer.js.map +1 -1
  189. package/dist/sharedCache.d.ts.map +1 -1
  190. package/dist/sharedCache.js +3 -0
  191. package/dist/sharedCache.js.map +1 -1
  192. package/package.json +99 -98
  193. package/src/__tests__/DatasetResolver.itemFilters.test.ts +201 -0
  194. package/src/__tests__/EntityRecordNameResolver.rowSecurity.test.ts +152 -0
  195. package/src/__tests__/FetchEntityVectorsResolver.test.ts +163 -15
  196. package/src/__tests__/FileResolver.storageAccess.test.ts +562 -0
  197. package/src/__tests__/GetDataContextDataResolver.sqlItems.test.ts +416 -0
  198. package/src/__tests__/ListOperationsResolver.adhocScreen.test.ts +137 -0
  199. package/src/__tests__/LoginScreenEngine.test.ts +86 -0
  200. package/src/__tests__/MJStorageBlobStore.storageGate.test.ts +63 -0
  201. package/src/__tests__/RecordingAssemblyScheduler.test.ts +178 -0
  202. package/src/__tests__/ResolverBase.adhocReadScope.test.ts +133 -2
  203. package/src/__tests__/ResolverBase.balancedClause.test.ts +155 -0
  204. package/src/__tests__/ResolverBase.clauseUnscopedRead.test.ts +127 -0
  205. package/src/__tests__/ResolverBase.clientOldValues.test.ts +209 -6
  206. package/src/__tests__/ResolverBase.filterEscaping.test.ts +5 -2
  207. package/src/__tests__/RunAIAgentResolver.branch.test.ts +1 -0
  208. package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +5 -3
  209. package/src/__tests__/RunAIAgentResolver.runDataGuard.test.ts +258 -0
  210. package/src/__tests__/RunViewResolver.cacheCheckScreen.test.ts +165 -0
  211. package/src/__tests__/SearchKnowledgeStreamResolver.test.ts +161 -0
  212. package/src/__tests__/SessionJanitor.test.ts +365 -10
  213. package/src/__tests__/SessionManager.test.ts +27 -0
  214. package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +25 -0
  215. package/src/__tests__/TaskGraphAgentRunner.test.ts +266 -0
  216. package/src/__tests__/TaskGraphContinuationDeliverer.test.ts +356 -22
  217. package/src/__tests__/TaskGraphFrameResolver.test.ts +22 -0
  218. package/src/__tests__/TestQuerySQLResolver.test.ts +274 -0
  219. package/src/__tests__/TransactionGroupResolver.refusals.test.ts +98 -1
  220. package/src/__tests__/UpdateMJDataContextItem.oldValues.test.ts +220 -0
  221. package/src/__tests__/ViewOperationsHandler.clauseScreen.test.ts +157 -0
  222. package/src/__tests__/agent-run-data-guard.test.ts +130 -0
  223. package/src/__tests__/apiRootBoot.test.ts +202 -0
  224. package/src/__tests__/cacheInvalidationRecordData.test.ts +64 -0
  225. package/src/__tests__/conversationRunEvents.test.ts +56 -14
  226. package/src/__tests__/globalCors.test.ts +217 -0
  227. package/src/__tests__/multiTenancy.postgresRewrite.test.ts +181 -0
  228. package/src/__tests__/multiTenancy.security.test.ts +51 -0
  229. package/src/__tests__/multiTenancy.test.ts +1 -1
  230. package/src/__tests__/ownedRealtimeSession.test.ts +39 -0
  231. package/src/__tests__/pushStatusResolver.filter.test.ts +7 -0
  232. package/src/__tests__/realtimeRecordingHandler.test.ts +652 -0
  233. package/src/__tests__/serverExtensionHostOverlay.test.ts +66 -0
  234. package/src/__tests__/serverExtensionReservedRoots.test.ts +11 -98
  235. package/src/__tests__/sharedCache.test.ts +5 -3
  236. package/src/agentSessions/SessionJanitor.ts +369 -93
  237. package/src/agentSessions/SessionManager.ts +13 -1
  238. package/src/apiRoot.ts +78 -0
  239. package/src/auth/AuthProviderCatalogRouter.ts +26 -0
  240. package/src/auth/LoginScreenEngine.ts +50 -0
  241. package/src/auth/index.ts +1 -0
  242. package/src/auth/magicLink/MagicLinkRouter.ts +3 -2
  243. package/src/config.ts +46 -5
  244. package/src/coreRoutes.ts +166 -0
  245. package/src/generated/graphql-schemas/__mj.ts +1273 -10
  246. package/src/generic/CacheInvalidationResolver.ts +73 -18
  247. package/src/generic/PushStatusResolver.ts +1 -1
  248. package/src/generic/ResolverBase.ts +304 -325
  249. package/src/generic/RunViewResolver.ts +17 -0
  250. package/src/globalCors.ts +71 -0
  251. package/src/index.ts +116 -174
  252. package/src/multiTenancy/index.ts +24 -2
  253. package/src/realtimeSessions/RealtimeSessionVerificationService.ts +2 -1
  254. package/src/realtimeSessions/RealtimeVerifyRouter.ts +2 -1
  255. package/src/realtimeSessions/RecordingAssemblyScheduler.ts +234 -0
  256. package/src/realtimeSessions/index.ts +2 -0
  257. package/src/realtimeSessions/ownedRealtimeSession.ts +55 -0
  258. package/src/realtimeSessions/sessionAccess.ts +7 -3
  259. package/src/resolvers/ArtifactFileResolver.ts +9 -8
  260. package/src/resolvers/ConversationRunEventsResolver.ts +15 -11
  261. package/src/resolvers/DatasetResolver.ts +70 -10
  262. package/src/resolvers/EntityRecordNameResolver.ts +3 -2
  263. package/src/resolvers/FetchEntityVectorsResolver.ts +121 -39
  264. package/src/resolvers/FileResolver.ts +321 -106
  265. package/src/resolvers/GetDataContextDataResolver.ts +139 -41
  266. package/src/resolvers/GetDataResolver.ts +6 -3
  267. package/src/resolvers/IntegrationDiscoveryResolver.ts +4 -2
  268. package/src/resolvers/QueryResolver.ts +11 -0
  269. package/src/resolvers/RealtimeClientSessionResolver.ts +10 -33
  270. package/src/resolvers/RunAIAgentResolver.ts +39 -4
  271. package/src/resolvers/SearchKnowledgeStreamResolver.ts +19 -3
  272. package/src/resolvers/SqlLoggingConfigResolver.ts +2 -4
  273. package/src/resolvers/TaskGraphFrameResolver.ts +33 -1
  274. package/src/resolvers/TestQuerySQLResolver.ts +68 -13
  275. package/src/resolvers/TransactionGroupResolver.ts +131 -27
  276. package/src/resolvers/__tests__/GetDataResolver.validation.test.ts +95 -0
  277. package/src/resolvers/agent-run-data-guard.ts +89 -0
  278. package/src/rest/RealtimeRecordingHandler.ts +464 -0
  279. package/src/rest/ViewOperationsHandler.ts +29 -13
  280. package/src/rest/setupRESTEndpoints.ts +6 -0
  281. package/src/serverExtensionReservedRoots.ts +14 -17
  282. package/src/services/MJStorageBlobStore.ts +31 -30
  283. package/src/services/StartTaskGraphDispatcher.ts +2 -2
  284. package/src/services/TaskGraphActionRunner.ts +25 -5
  285. package/src/services/TaskGraphAgentRunner.ts +188 -11
  286. package/src/services/TaskGraphContinuationDeliverer.ts +704 -14
  287. package/src/sharedCache.ts +3 -0
@@ -2,15 +2,17 @@
2
2
  * Core HTTP prefixes MJServer mounts — many of them PRE-AUTH — that an Open App
3
3
  * server extension must not claim.
4
4
  *
5
+ * Every value is relative to MJAPI's base path (`ApiRoute()` composes the real mount path).
6
+ *
5
7
  * Kept as literals (not imported `*_MOUNT_PATH` constants) so this module cannot
6
8
  * pull `config.ts` / telephony routers into every importer. Values MUST stay in
7
9
  * lockstep with the `export const *_MOUNT_PATH` declarations and the `app.use` /
8
- * `app.get` calls in `src/index.ts`. The companion unit test reads those source
9
- * files and fails if a constant drifts.
10
+ * `app.get` calls in `src/coreRoutes.ts`. The companion unit tests read the constants'
11
+ * source and boot those mounts (`apiRootBoot.test.ts`), failing if either drifts.
10
12
  *
11
13
  * `serve()` passes the result into `prepareServerExtensionConfigs({ extraReservedRoots })`.
12
14
  *
13
- * If you add a pre-auth `app.use(...)` in `serve()`, add its prefix here.
15
+ * If you add a pre-auth core mount, add its prefix here.
14
16
  */
15
17
  /** Core mounts that have no exported `*_MOUNT_PATH` constant. */
16
18
  export declare const CORE_STATIC_RESERVED_SERVER_EXTENSION_ROOTS: readonly string[];
@@ -20,12 +22,12 @@ export declare const CORE_STATIC_RESERVED_SERVER_EXTENSION_ROOTS: readonly strin
20
22
  */
21
23
  export declare const CORE_CONSTANT_RESERVED_SERVER_EXTENSION_ROOTS: readonly string[];
22
24
  /**
23
- * Reserved roots for the running process. `graphqlRootPath` is included so a
24
- * deployment that sets `GRAPHQL_ROOT_PATH=/api` (or anything other than the
25
- * static `/graphql` baseline) is still protected. `/` as graphqlRootPath is
26
- * already reserved as the server root and does not prefix-match every path.
25
+ * Reserved roots for the running process, relative to MJAPI's base path like every extension RootPath.
26
+ * `graphqlRootPath` is no longer reserved: it is only Apollo's path, and Apollo mounts last, so an extension
27
+ * route registered before it always wins (`prepareServerExtensionConfigs({ apiRootPath })` composes the
28
+ * mount path).
27
29
  */
28
- export declare function CoreReservedServerExtensionRoots(graphqlRootPath: string): string[];
29
- /** @deprecated Use {@link CoreReservedServerExtensionRoots}. */
30
- export declare function coreReservedServerExtensionRoots(graphqlRootPath: string): string[];
30
+ export declare function CoreReservedServerExtensionRoots(): string[];
31
+ /** @deprecated Use {@link CoreReservedServerExtensionRoots}. The argument is ignored. */
32
+ export declare function coreReservedServerExtensionRoots(_graphqlRootPath?: string): string[];
31
33
  //# sourceMappingURL=serverExtensionReservedRoots.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverExtensionReservedRoots.d.ts","sourceRoot":"","sources":["../src/serverExtensionReservedRoots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iEAAiE;AACjE,eAAO,MAAM,2CAA2C,EAAE,SAAS,MAAM,EAQxE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6CAA6C,EAAE,SAAS,MAAM,EAI1E,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAOlF;AAED,gEAAgE;AAChE,wBAAgB,gCAAgC,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAElF"}
1
+ {"version":3,"file":"serverExtensionReservedRoots.d.ts","sourceRoot":"","sources":["../src/serverExtensionReservedRoots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iEAAiE;AACjE,eAAO,MAAM,2CAA2C,EAAE,SAAS,MAAM,EAQxE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6CAA6C,EAAE,SAAS,MAAM,EAI1E,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,EAAE,CAE3D;AAED,yFAAyF;AACzF,wBAAgB,gCAAgC,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAEpF"}
@@ -2,15 +2,17 @@
2
2
  * Core HTTP prefixes MJServer mounts — many of them PRE-AUTH — that an Open App
3
3
  * server extension must not claim.
4
4
  *
5
+ * Every value is relative to MJAPI's base path (`ApiRoute()` composes the real mount path).
6
+ *
5
7
  * Kept as literals (not imported `*_MOUNT_PATH` constants) so this module cannot
6
8
  * pull `config.ts` / telephony routers into every importer. Values MUST stay in
7
9
  * lockstep with the `export const *_MOUNT_PATH` declarations and the `app.use` /
8
- * `app.get` calls in `src/index.ts`. The companion unit test reads those source
9
- * files and fails if a constant drifts.
10
+ * `app.get` calls in `src/coreRoutes.ts`. The companion unit tests read the constants'
11
+ * source and boot those mounts (`apiRootBoot.test.ts`), failing if either drifts.
10
12
  *
11
13
  * `serve()` passes the result into `prepareServerExtensionConfigs({ extraReservedRoots })`.
12
14
  *
13
- * If you add a pre-auth `app.use(...)` in `serve()`, add its prefix here.
15
+ * If you add a pre-auth core mount, add its prefix here.
14
16
  */
15
17
  /** Core mounts that have no exported `*_MOUNT_PATH` constant. */
16
18
  export const CORE_STATIC_RESERVED_SERVER_EXTENSION_ROOTS = [
@@ -32,21 +34,16 @@ export const CORE_CONSTANT_RESERVED_SERVER_EXTENSION_ROOTS = [
32
34
  '/widget', // WIDGET_MOUNT_PATH
33
35
  ];
34
36
  /**
35
- * Reserved roots for the running process. `graphqlRootPath` is included so a
36
- * deployment that sets `GRAPHQL_ROOT_PATH=/api` (or anything other than the
37
- * static `/graphql` baseline) is still protected. `/` as graphqlRootPath is
38
- * already reserved as the server root and does not prefix-match every path.
37
+ * Reserved roots for the running process, relative to MJAPI's base path like every extension RootPath.
38
+ * `graphqlRootPath` is no longer reserved: it is only Apollo's path, and Apollo mounts last, so an extension
39
+ * route registered before it always wins (`prepareServerExtensionConfigs({ apiRootPath })` composes the
40
+ * mount path).
39
41
  */
40
- export function CoreReservedServerExtensionRoots(graphqlRootPath) {
41
- const graphql = typeof graphqlRootPath === 'string' ? graphqlRootPath.trim() : '';
42
- return [
43
- ...(graphql ? [graphql] : []),
44
- ...CORE_CONSTANT_RESERVED_SERVER_EXTENSION_ROOTS,
45
- ...CORE_STATIC_RESERVED_SERVER_EXTENSION_ROOTS,
46
- ];
42
+ export function CoreReservedServerExtensionRoots() {
43
+ return [...CORE_CONSTANT_RESERVED_SERVER_EXTENSION_ROOTS, ...CORE_STATIC_RESERVED_SERVER_EXTENSION_ROOTS];
47
44
  }
48
- /** @deprecated Use {@link CoreReservedServerExtensionRoots}. */
49
- export function coreReservedServerExtensionRoots(graphqlRootPath) {
50
- return CoreReservedServerExtensionRoots(graphqlRootPath);
45
+ /** @deprecated Use {@link CoreReservedServerExtensionRoots}. The argument is ignored. */
46
+ export function coreReservedServerExtensionRoots(_graphqlRootPath) {
47
+ return CoreReservedServerExtensionRoots();
51
48
  }
52
49
  //# sourceMappingURL=serverExtensionReservedRoots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverExtensionReservedRoots.js","sourceRoot":"","sources":["../src/serverExtensionReservedRoots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,2CAA2C,GAAsB;IAC1E,cAAc;IACd,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,iBAAiB;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,6CAA6C,GAAsB;IAC5E,OAAO,EAAe,0BAA0B;IAChD,aAAa,EAAS,wBAAwB;IAC9C,SAAS,EAAa,oBAAoB;CAC7C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAAC,eAAuB;IACpE,MAAM,OAAO,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClF,OAAO;QACH,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,GAAG,6CAA6C;QAChD,GAAG,2CAA2C;KACjD,CAAC;AACN,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,gCAAgC,CAAC,eAAuB;IACpE,OAAO,gCAAgC,CAAC,eAAe,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"serverExtensionReservedRoots.js","sourceRoot":"","sources":["../src/serverExtensionReservedRoots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iEAAiE;AACjE,MAAM,CAAC,MAAM,2CAA2C,GAAsB;IAC1E,cAAc;IACd,aAAa;IACb,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,iBAAiB;CACpB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,6CAA6C,GAAsB;IAC5E,OAAO,EAAe,0BAA0B;IAChD,aAAa,EAAS,wBAAwB;IAC9C,SAAS,EAAa,oBAAoB;CAC7C,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC;IAC5C,OAAO,CAAC,GAAG,6CAA6C,EAAE,GAAG,2CAA2C,CAAC,CAAC;AAC9G,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,gCAAgC,CAAC,gBAAyB;IACtE,OAAO,gCAAgC,EAAE,CAAC;AAC9C,CAAC"}
@@ -31,11 +31,18 @@ export declare class MJStorageBlobStore implements IAttachmentBlobStore {
31
31
  /** @inheritdoc */
32
32
  Delete(fileId: string, contextUser: UserInfo, provider?: IMetadataProvider): Promise<boolean>;
33
33
  /**
34
- * Loads a file, its storage provider, and a driver able to act on it.
34
+ * Loads a file (as the caller), and a driver able to act on it — through the storage gate.
35
35
  *
36
36
  * Shared by download, URL and delete, which previously repeated this block three times with
37
37
  * subtly different fallbacks — the account-credential path existed in only one of them.
38
+ *
39
+ * When an account links to the file's provider, `FileStorageEngine.ResolveFileObject` resolves it and refuses unless
40
+ * the caller may use that account for `access` and may read every `MJ: Files` row tracking the object (a row can
41
+ * alias another row's object). Otherwise the environment-configured driver serves the file; there is no account to
42
+ * gate, so only the tracked-file rule applies. A refusal throws, and each caller logs it and reports failure.
38
43
  */
39
44
  private resolveFileAndDriver;
45
+ /** The environment-configured driver for a file whose provider has no account — after the tracked-file rule. */
46
+ private environmentDriverFor;
40
47
  }
41
48
  //# sourceMappingURL=MJStorageBlobStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MJStorageBlobStore.d.ts","sourceRoot":"","sources":["../../src/services/MJStorageBlobStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,iBAAiB,EAAY,MAAM,sBAAsB,CAAC;AAIvF,OAAO,KAAK,EACR,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAmB,YAAW,oBAAoB;IAC3D;;;;;;OAMG;IACU,MAAM,CACf,KAAK,EAAE,yBAAyB,EAChC,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,0BAA0B,CAAC;IAuEtC,kBAAkB;IACL,QAAQ,CACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAczB,kBAAkB;IACL,cAAc,CACvB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAWzB,kBAAkB;IACL,MAAM,CACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,OAAO,CAAC;IAkBnB;;;;;OAKG;YACW,oBAAoB;CAoCrC"}
1
+ {"version":3,"file":"MJStorageBlobStore.d.ts","sourceRoot":"","sources":["../../src/services/MJStorageBlobStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,iBAAiB,EAAY,MAAM,sBAAsB,CAAC;AAIvF,OAAO,KAAK,EACR,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACvB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;GAcG;AACH,qBAAa,kBAAmB,YAAW,oBAAoB;IAC3D;;;;;;OAMG;IACU,MAAM,CACf,KAAK,EAAE,yBAAyB,EAChC,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,0BAA0B,CAAC;IAuEtC,kBAAkB;IACL,QAAQ,CACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAczB,kBAAkB;IACL,cAAc,CACvB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAWzB,kBAAkB;IACL,MAAM,CACf,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,QAAQ,EACrB,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CAAC,OAAO,CAAC;IAkBnB;;;;;;;;;;OAUG;YACW,oBAAoB;IAmBlC,gHAAgH;YAClG,oBAAoB;CAYrC"}
@@ -1,6 +1,6 @@
1
1
  import { LogError, Metadata } from '@memberjunction/core';
2
2
  import { MJGlobal } from '@memberjunction/global';
3
- import { FileStorageBase, FileStorageEngine } from '@memberjunction/storage';
3
+ import { FileStorageBase, FileStorageEngine, StorageAccessEvaluator, StorageObjectKeyOf } from '@memberjunction/storage';
4
4
  /**
5
5
  * @fileoverview MJStorage-backed implementation of the conversation-attachment blob seam.
6
6
  *
@@ -84,7 +84,7 @@ export class MJStorageBlobStore {
84
84
  /** @inheritdoc */
85
85
  async Download(fileId, contextUser, provider) {
86
86
  try {
87
- const resolved = await this.resolveFileAndDriver(fileId, contextUser, provider);
87
+ const resolved = await this.resolveFileAndDriver(fileId, contextUser, 'Read', provider);
88
88
  if (!resolved)
89
89
  return null;
90
90
  const content = await resolved.driver.GetObject({ fullPath: resolved.objectKey });
@@ -99,7 +99,7 @@ export class MJStorageBlobStore {
99
99
  /** @inheritdoc */
100
100
  async GetDownloadUrl(fileId, contextUser, provider) {
101
101
  try {
102
- const resolved = await this.resolveFileAndDriver(fileId, contextUser, provider);
102
+ const resolved = await this.resolveFileAndDriver(fileId, contextUser, 'Read', provider);
103
103
  if (!resolved)
104
104
  return null;
105
105
  return resolved.driver.CreatePreAuthDownloadUrl(resolved.objectKey);
@@ -112,7 +112,7 @@ export class MJStorageBlobStore {
112
112
  /** @inheritdoc */
113
113
  async Delete(fileId, contextUser, provider) {
114
114
  try {
115
- const resolved = await this.resolveFileAndDriver(fileId, contextUser, provider);
115
+ const resolved = await this.resolveFileAndDriver(fileId, contextUser, 'Write', provider);
116
116
  if (!resolved)
117
117
  return false;
118
118
  const deleted = await resolved.driver.DeleteObject(resolved.objectKey);
@@ -129,32 +129,38 @@ export class MJStorageBlobStore {
129
129
  }
130
130
  }
131
131
  /**
132
- * Loads a file, its storage provider, and a driver able to act on it.
132
+ * Loads a file (as the caller), and a driver able to act on it — through the storage gate.
133
133
  *
134
134
  * Shared by download, URL and delete, which previously repeated this block three times with
135
135
  * subtly different fallbacks — the account-credential path existed in only one of them.
136
+ *
137
+ * When an account links to the file's provider, `FileStorageEngine.ResolveFileObject` resolves it and refuses unless
138
+ * the caller may use that account for `access` and may read every `MJ: Files` row tracking the object (a row can
139
+ * alias another row's object). Otherwise the environment-configured driver serves the file; there is no account to
140
+ * gate, so only the tracked-file rule applies. A refusal throws, and each caller logs it and reports failure.
136
141
  */
137
- async resolveFileAndDriver(fileId, contextUser, provider) {
142
+ async resolveFileAndDriver(fileId, contextUser, access, provider) {
138
143
  const md = provider ?? Metadata.Provider;
139
- // Load the engine before asking it anything. `Accounts` returns an empty array when it has
140
- // not been configured, so on a cold process the account-credential branch below would be
141
- // skipped silently and the driver would fall back to environment-only credentials — which
142
- // then fails to read a file that is perfectly readable. Every other MJServer call site
143
- // configures immediately before use for the same reason.
144
- await FileStorageEngine.Instance.Config(false, contextUser);
145
144
  const file = await md.GetEntityObject('MJ: Files', contextUser);
146
145
  if (!(await file.Load(fileId)))
147
146
  return null;
147
+ // Prefer account-scoped credentials (gated) when an account links to this provider. ResolveFileObject configures
148
+ // the engine first, so a cold process does not silently skip this branch.
149
+ const resolved = await FileStorageEngine.Instance.ResolveFileObject(file, contextUser, access, md);
150
+ if (resolved) {
151
+ return { file, driver: resolved.Driver, objectKey: resolved.ObjectKey };
152
+ }
153
+ return this.environmentDriverFor(file, contextUser, md);
154
+ }
155
+ /** The environment-configured driver for a file whose provider has no account — after the tracked-file rule. */
156
+ async environmentDriverFor(file, contextUser, md) {
148
157
  const storageProvider = await md.GetEntityObject('MJ: File Storage Providers', contextUser);
149
158
  if (!(await storageProvider.Load(file.ProviderID)))
150
159
  return null;
151
- // Prefer account-scoped credentials when an account links to this provider; fall back to
152
- // environment-configured credentials otherwise.
153
- const matchingAccounts = FileStorageEngine.Instance.GetAccountsByProviderID(file.ProviderID);
154
- const driver = matchingAccounts.length > 0
155
- ? await FileStorageEngine.Instance.GetDriver(matchingAccounts[0].ID, contextUser)
156
- : MJGlobal.Instance.ClassFactory.CreateInstance(FileStorageBase, storageProvider.ServerDriverKey);
157
- return { file, driver, objectKey: file.ProviderKey || file.Name };
160
+ const objectKey = StorageObjectKeyOf(file);
161
+ await StorageAccessEvaluator.Instance.AssertTrackedObjectsReadable(file.ProviderID, [objectKey], contextUser, md);
162
+ const driver = MJGlobal.Instance.ClassFactory.CreateInstance(FileStorageBase, storageProvider.ServerDriverKey);
163
+ return { file, driver, objectKey };
158
164
  }
159
165
  }
160
166
  //# sourceMappingURL=MJStorageBlobStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MJStorageBlobStore.js","sourceRoot":"","sources":["../../src/services/MJStorageBlobStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MJStorageBlobStore.js","sourceRoot":"","sources":["../../src/services/MJStorageBlobStore.ts"],"names":[],"mappings":"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"}
@@ -45,10 +45,10 @@ export async function StartTaskGraphDispatcher(pool, contextUser, instanceID) {
45
45
  { InstanceID: instanceID ?? defaultInstanceID() },
46
46
  // Without this the dispatcher had nowhere to deliver: a finished graph logged its outcome,
47
47
  // marked itself delivered, and said nothing to the conversation that asked for it.
48
- new TaskGraphContinuationDeliverer(providerFactory, contextUser),
48
+ new TaskGraphContinuationDeliverer(providerFactory, contextUser, pubSub),
49
49
  // Live signal. Supplied only when a PubSub engine exists — in a worker or a test there is
50
50
  // nobody to publish to, and the dispatcher runs identically without one.
51
- pubSub ? new TaskGraphFrameBroadcaster(pubSub) : undefined,
51
+ pubSub ? new TaskGraphFrameBroadcaster(pubSub, true) : undefined,
52
52
  // Action nodes — the third execution shape, beside agents and people. Durable After* entity
53
53
  // actions land as these.
54
54
  new TaskGraphActionRunner(),
@@ -1 +1 @@
1
- {"version":3,"file":"StartTaskGraphDispatcher.js","sourceRoot":"","sources":["../../src/services/StartTaskGraphDispatcher.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAEnF;;;;;;;;;GASG;AACH;;;;;;GAMG;AACH,SAAS,iBAAiB;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,IAAwB,EACxB,WAAqB,EACrB,UAAmB;IAEnB,uBAAuB,EAAE,CAAC;IAE1B,MAAM,eAAe,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,mBAAmB,CACtC,eAAe,EACf,IAAI,oBAAoB,EAAE,EAC1B,WAAW;IACX,wFAAwF;IACxF,0FAA0F;IAC1F,6FAA6F;IAC7F,0FAA0F;IAC1F,2FAA2F;IAC3F,iDAAiD;IACjD,EAAE,UAAU,EAAE,UAAU,IAAI,iBAAiB,EAAE,EAAE;IACjD,2FAA2F;IAC3F,mFAAmF;IACnF,IAAI,8BAA8B,CAAC,eAAe,EAAE,WAAW,CAAC;IAChE,0FAA0F;IAC1F,yEAAyE;IACzE,MAAM,CAAC,CAAC,CAAC,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;IAC1D,4FAA4F;IAC5F,yBAAyB;IACzB,IAAI,qBAAqB,EAAE;IAC3B,8EAA8E;IAC9E,kFAAkF;IAClF,4DAA4D;IAC5D,IAAI,qBAAqB,EAAE,CAC9B,CAAC;IACF,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAEzB,wFAAwF;IACxF,gGAAgG;IAChG,2EAA2E;IAC3E,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,gCAAgC,CAAC,eAAe,CAAC,CAAC,CAAC;IAErG,OAAO,UAAU,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"StartTaskGraphDispatcher.js","sourceRoot":"","sources":["../../src/services/StartTaskGraphDispatcher.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,8BAA8B,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,gCAAgC,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAEnF;;;;;;;;;GASG;AACH;;;;;;GAMG;AACH,SAAS,iBAAiB;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC;IAC7C,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,GAAG,IAAI,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC1C,IAAwB,EACxB,WAAqB,EACrB,UAAmB;IAEnB,uBAAuB,EAAE,CAAC;IAE1B,MAAM,eAAe,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC;IACnD,MAAM,UAAU,GAAG,IAAI,mBAAmB,CACtC,eAAe,EACf,IAAI,oBAAoB,EAAE,EAC1B,WAAW;IACX,wFAAwF;IACxF,0FAA0F;IAC1F,6FAA6F;IAC7F,0FAA0F;IAC1F,2FAA2F;IAC3F,iDAAiD;IACjD,EAAE,UAAU,EAAE,UAAU,IAAI,iBAAiB,EAAE,EAAE;IACjD,2FAA2F;IAC3F,mFAAmF;IACnF,IAAI,8BAA8B,CAAC,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC;IACxE,0FAA0F;IAC1F,yEAAyE;IACzE,MAAM,CAAC,CAAC,CAAC,IAAI,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;IAChE,4FAA4F;IAC5F,yBAAyB;IACzB,IAAI,qBAAqB,EAAE;IAC3B,8EAA8E;IAC9E,kFAAkF;IAClF,4DAA4D;IAC5D,IAAI,qBAAqB,EAAE,CAC9B,CAAC;IACF,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAEzB,wFAAwF;IACxF,gGAAgG;IAChG,2EAA2E;IAC3E,2BAA2B,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,gCAAgC,CAAC,eAAe,CAAC,CAAC,CAAC;IAErG,OAAO,UAAU,CAAC;AACtB,CAAC"}
@@ -20,9 +20,11 @@ export declare class TaskGraphActionRunner implements TaskActionRunner {
20
20
  * is exactly what the Demo workflow did: step 1 completed with an output payload of `{}` and
21
21
  * every downstream branch was skipped, with nothing anywhere reporting a problem.
22
22
  *
23
- * Only `Output` and `Both` params are included. Echoing the inputs back would let a step's own
24
- * parameters masquerade as its results, so an output mapping could "succeed" by reading the
25
- * value the step was given rather than the one it produced.
23
+ * Only `Output` and `Both` params are included (plus any structured JSON object returned in
24
+ * `resultMessage`, such as `Create Document`'s `{ handle, documentType, fileName }`). Echoing
25
+ * `Input`-only params back would let a step's own parameters masquerade as its results, so an
26
+ * output mapping could "succeed" by reading the value the step was given rather than the one it
27
+ * produced.
26
28
  */
27
29
  private buildOutput;
28
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TaskGraphActionRunner.d.ts","sourceRoot":"","sources":["../../src/services/TaskGraphActionRunner.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE7G,qBAAa,qBAAsB,YAAW,gBAAgB;IAC7C,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6CxF;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,WAAW;IAQnB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,WAAW;CAMtB"}
1
+ {"version":3,"file":"TaskGraphActionRunner.d.ts","sourceRoot":"","sources":["../../src/services/TaskGraphActionRunner.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE7G,qBAAa,qBAAsB,YAAW,gBAAgB;IAC7C,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA6CxF;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,WAAW;IA0BnB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,WAAW;CAMtB"}
@@ -30,7 +30,7 @@ export class TaskGraphActionRunner {
30
30
  // transition question with nothing to answer it, and fail closed on every retry.
31
31
  Filters: [],
32
32
  });
33
- const output = this.buildOutput(result.Params);
33
+ const output = this.buildOutput(result.Params, result.Message);
34
34
  const unstorable = this.findUnstorableOutput(output);
35
35
  if (unstorable) {
36
36
  const message = `Action "${action.Name}" returned output param "${unstorable.Name}", which cannot be stored ` +
@@ -83,16 +83,38 @@ export class TaskGraphActionRunner {
83
83
  * is exactly what the Demo workflow did: step 1 completed with an output payload of `{}` and
84
84
  * every downstream branch was skipped, with nothing anywhere reporting a problem.
85
85
  *
86
- * Only `Output` and `Both` params are included. Echoing the inputs back would let a step's own
87
- * parameters masquerade as its results, so an output mapping could "succeed" by reading the
88
- * value the step was given rather than the one it produced.
86
+ * Only `Output` and `Both` params are included (plus any structured JSON object returned in
87
+ * `resultMessage`, such as `Create Document`'s `{ handle, documentType, fileName }`). Echoing
88
+ * `Input`-only params back would let a step's own parameters masquerade as its results, so an
89
+ * output mapping could "succeed" by reading the value the step was given rather than the one it
90
+ * produced.
89
91
  */
90
- buildOutput(actionParams) {
92
+ buildOutput(actionParams, resultMessage) {
91
93
  const output = {};
94
+ if (typeof resultMessage === 'string') {
95
+ const trimmed = resultMessage.trim();
96
+ if (trimmed.startsWith('{') && trimmed.endsWith('}')) {
97
+ try {
98
+ const parsed = JSON.parse(trimmed);
99
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
100
+ Object.assign(output, parsed);
101
+ }
102
+ }
103
+ catch {
104
+ // Non-JSON prose message; ignore.
105
+ }
106
+ }
107
+ }
92
108
  for (const p of actionParams ?? []) {
93
109
  if (p.Type === 'Output' || p.Type === 'Both')
94
110
  output[p.Name] = p.Value;
95
111
  }
112
+ if (typeof output.handle === 'string' && output.Handle === undefined) {
113
+ output.Handle = output.handle;
114
+ }
115
+ else if (typeof output.Handle === 'string' && output.handle === undefined) {
116
+ output.handle = output.Handle;
117
+ }
96
118
  return output;
97
119
  }
98
120
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TaskGraphActionRunner.js","sourceRoot":"","sources":["../../src/services/TaskGraphActionRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskGraphActionRunner.js","sourceRoot":"","sources":["../../src/services/TaskGraphActionRunner.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,12 @@
1
1
  import type { TaskAgentRunner, TaskAgentRunParams, TaskAgentRunResult } from '@memberjunction/task-graph';
2
2
  export declare class TaskGraphAgentRunner implements TaskAgentRunner {
3
3
  RunAgentForTask(params: TaskAgentRunParams): Promise<TaskAgentRunResult>;
4
+ private resolveActingUser;
5
+ /**
6
+ * Resolves the step task's `Name`, `Description`, and originating `ConversationDetailID`
7
+ * (falling back to the parent workflow task row for `ConversationDetailID`).
8
+ */
9
+ private resolveTaskContext;
4
10
  /**
5
11
  * Adapts the agent framework's progress callback onto the dispatcher's plain sink.
6
12
  *
@@ -22,14 +28,20 @@ export declare class TaskGraphAgentRunner implements TaskAgentRunner {
22
28
  */
23
29
  private loadSubmittingRun;
24
30
  /**
25
- * Builds the agent's instruction from the task's own input plus its dependencies' outputs.
31
+ * Builds the agent's instruction from the task's name/description, its structured input payload,
32
+ * and its dependencies' outputs.
26
33
  *
27
34
  * Dependency outputs are included inline because a task's whole reason for depending on another
28
35
  * is to consume what it produced. They are rendered as labelled JSON rather than prose so the
29
36
  * agent can parse them reliably rather than inferring structure from formatting.
30
37
  */
31
38
  private buildPrompt;
32
- /** Prefers a structured payload over prose, so downstream tasks get data rather than text. */
39
+ /**
40
+ * Prefers a structured payload over prose so downstream tasks get data rather than text,
41
+ * while preserving `agentRun.Message` when the payload object has no `message`/`summary`
42
+ * property (e.g., when a sub-agent returns a clarification question or human-readable summary)
43
+ * and normalizing `results` / `result` / `succeeded` for downstream condition evaluation.
44
+ */
33
45
  private extractOutput;
34
46
  }
35
47
  //# sourceMappingURL=TaskGraphAgentRunner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskGraphAgentRunner.d.ts","sourceRoot":"","sources":["../../src/services/TaskGraphAgentRunner.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE1G,qBAAa,oBAAqB,YAAW,eAAe;IAC3C,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAmCrF;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;;;;;;;;OAWG;YACW,iBAAiB;IAkB/B;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAmBnB,8FAA8F;IAC9F,OAAO,CAAC,aAAa;CAKxB"}
1
+ {"version":3,"file":"TaskGraphAgentRunner.d.ts","sourceRoot":"","sources":["../../src/services/TaskGraphAgentRunner.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAE1G,qBAAa,oBAAqB,YAAW,eAAe;IAC3C,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiGrF,OAAO,CAAC,iBAAiB;IAgBzB;;;OAGG;YACW,kBAAkB;IAgChC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAYtB;;;;;;;;;;;OAWG;YACW,iBAAiB;IAkB/B;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW;IA4BnB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;CAiDxB"}