@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.
- package/README.md +20 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/agentSessions/SessionJanitor.d.ts +91 -30
- package/dist/agentSessions/SessionJanitor.d.ts.map +1 -1
- package/dist/agentSessions/SessionJanitor.js +311 -81
- package/dist/agentSessions/SessionJanitor.js.map +1 -1
- package/dist/agentSessions/SessionManager.d.ts +5 -1
- package/dist/agentSessions/SessionManager.d.ts.map +1 -1
- package/dist/agentSessions/SessionManager.js +13 -1
- package/dist/agentSessions/SessionManager.js.map +1 -1
- package/dist/apiRoot.d.ts +32 -0
- package/dist/apiRoot.d.ts.map +1 -0
- package/dist/apiRoot.js +67 -0
- package/dist/apiRoot.js.map +1 -0
- package/dist/auth/AuthProviderCatalogRouter.d.ts.map +1 -1
- package/dist/auth/AuthProviderCatalogRouter.js +25 -0
- package/dist/auth/AuthProviderCatalogRouter.js.map +1 -1
- package/dist/auth/LoginScreenEngine.d.ts +22 -0
- package/dist/auth/LoginScreenEngine.d.ts.map +1 -0
- package/dist/auth/LoginScreenEngine.js +57 -0
- package/dist/auth/LoginScreenEngine.js.map +1 -0
- package/dist/auth/index.d.ts +1 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/magicLink/MagicLinkRouter.d.ts.map +1 -1
- package/dist/auth/magicLink/MagicLinkRouter.js +3 -2
- package/dist/auth/magicLink/MagicLinkRouter.js.map +1 -1
- package/dist/config.d.ts +136 -22
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +43 -4
- package/dist/config.js.map +1 -1
- package/dist/coreRoutes.d.ts +29 -0
- package/dist/coreRoutes.d.ts.map +1 -0
- package/dist/coreRoutes.js +142 -0
- package/dist/coreRoutes.js.map +1 -0
- package/dist/generated/graphql-schemas/__mj.d.ts +369 -3
- package/dist/generated/graphql-schemas/__mj.d.ts.map +1 -1
- package/dist/generated/graphql-schemas/__mj.js +1750 -7
- package/dist/generated/graphql-schemas/__mj.js.map +1 -1
- package/dist/generic/CacheInvalidationResolver.d.ts +43 -8
- package/dist/generic/CacheInvalidationResolver.d.ts.map +1 -1
- package/dist/generic/CacheInvalidationResolver.js +59 -19
- package/dist/generic/CacheInvalidationResolver.js.map +1 -1
- package/dist/generic/PushStatusResolver.js +1 -1
- package/dist/generic/PushStatusResolver.js.map +1 -1
- package/dist/generic/ResolverBase.d.ts +103 -44
- package/dist/generic/ResolverBase.d.ts.map +1 -1
- package/dist/generic/ResolverBase.js +264 -305
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +12 -0
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/globalCors.d.ts +33 -0
- package/dist/globalCors.d.ts.map +1 -0
- package/dist/globalCors.js +58 -0
- package/dist/globalCors.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +112 -160
- package/dist/index.js.map +1 -1
- package/dist/multiTenancy/index.d.ts.map +1 -1
- package/dist/multiTenancy/index.js +22 -2
- package/dist/multiTenancy/index.js.map +1 -1
- package/dist/realtimeSessions/RealtimeSessionVerificationService.d.ts.map +1 -1
- package/dist/realtimeSessions/RealtimeSessionVerificationService.js +2 -1
- package/dist/realtimeSessions/RealtimeSessionVerificationService.js.map +1 -1
- package/dist/realtimeSessions/RealtimeVerifyRouter.d.ts.map +1 -1
- package/dist/realtimeSessions/RealtimeVerifyRouter.js +2 -1
- package/dist/realtimeSessions/RealtimeVerifyRouter.js.map +1 -1
- package/dist/realtimeSessions/RecordingAssemblyScheduler.d.ts +100 -0
- package/dist/realtimeSessions/RecordingAssemblyScheduler.d.ts.map +1 -0
- package/dist/realtimeSessions/RecordingAssemblyScheduler.js +173 -0
- package/dist/realtimeSessions/RecordingAssemblyScheduler.js.map +1 -0
- package/dist/realtimeSessions/index.d.ts +2 -0
- package/dist/realtimeSessions/index.d.ts.map +1 -1
- package/dist/realtimeSessions/index.js +2 -0
- package/dist/realtimeSessions/index.js.map +1 -1
- package/dist/realtimeSessions/ownedRealtimeSession.d.ts +30 -0
- package/dist/realtimeSessions/ownedRealtimeSession.d.ts.map +1 -0
- package/dist/realtimeSessions/ownedRealtimeSession.js +47 -0
- package/dist/realtimeSessions/ownedRealtimeSession.js.map +1 -0
- package/dist/realtimeSessions/sessionAccess.d.ts +6 -0
- package/dist/realtimeSessions/sessionAccess.d.ts.map +1 -1
- package/dist/realtimeSessions/sessionAccess.js +7 -3
- package/dist/realtimeSessions/sessionAccess.js.map +1 -1
- package/dist/resolvers/ArtifactFileResolver.d.ts +5 -1
- package/dist/resolvers/ArtifactFileResolver.d.ts.map +1 -1
- package/dist/resolvers/ArtifactFileResolver.js +9 -7
- package/dist/resolvers/ArtifactFileResolver.js.map +1 -1
- package/dist/resolvers/ConversationRunEventsResolver.d.ts +8 -4
- package/dist/resolvers/ConversationRunEventsResolver.d.ts.map +1 -1
- package/dist/resolvers/ConversationRunEventsResolver.js +6 -6
- package/dist/resolvers/ConversationRunEventsResolver.js.map +1 -1
- package/dist/resolvers/DatasetResolver.d.ts +24 -3
- package/dist/resolvers/DatasetResolver.d.ts.map +1 -1
- package/dist/resolvers/DatasetResolver.js +57 -8
- package/dist/resolvers/DatasetResolver.js.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts +2 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.js +3 -2
- package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts +18 -3
- package/dist/resolvers/FetchEntityVectorsResolver.d.ts.map +1 -1
- package/dist/resolvers/FetchEntityVectorsResolver.js +100 -35
- package/dist/resolvers/FetchEntityVectorsResolver.js.map +1 -1
- package/dist/resolvers/FileResolver.d.ts +82 -11
- package/dist/resolvers/FileResolver.d.ts.map +1 -1
- package/dist/resolvers/FileResolver.js +279 -101
- package/dist/resolvers/FileResolver.js.map +1 -1
- package/dist/resolvers/GetDataContextDataResolver.d.ts +33 -7
- package/dist/resolvers/GetDataContextDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataContextDataResolver.js +117 -38
- package/dist/resolvers/GetDataContextDataResolver.js.map +1 -1
- package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataResolver.js +6 -3
- package/dist/resolvers/GetDataResolver.js.map +1 -1
- package/dist/resolvers/IntegrationDiscoveryResolver.d.ts.map +1 -1
- package/dist/resolvers/IntegrationDiscoveryResolver.js +4 -2
- package/dist/resolvers/IntegrationDiscoveryResolver.js.map +1 -1
- package/dist/resolvers/QueryResolver.d.ts +2 -0
- package/dist/resolvers/QueryResolver.d.ts.map +1 -1
- package/dist/resolvers/QueryResolver.js +13 -0
- package/dist/resolvers/QueryResolver.js.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts +2 -8
- package/dist/resolvers/RealtimeClientSessionResolver.d.ts.map +1 -1
- package/dist/resolvers/RealtimeClientSessionResolver.js +10 -26
- package/dist/resolvers/RealtimeClientSessionResolver.js.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +35 -6
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts +12 -1
- package/dist/resolvers/SearchKnowledgeStreamResolver.d.ts.map +1 -1
- package/dist/resolvers/SearchKnowledgeStreamResolver.js +15 -2
- package/dist/resolvers/SearchKnowledgeStreamResolver.js.map +1 -1
- package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
- package/dist/resolvers/SqlLoggingConfigResolver.js +2 -3
- package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
- package/dist/resolvers/TaskGraphFrameResolver.d.ts +2 -1
- package/dist/resolvers/TaskGraphFrameResolver.d.ts.map +1 -1
- package/dist/resolvers/TaskGraphFrameResolver.js +28 -1
- package/dist/resolvers/TaskGraphFrameResolver.js.map +1 -1
- package/dist/resolvers/TestQuerySQLResolver.d.ts +24 -0
- package/dist/resolvers/TestQuerySQLResolver.d.ts.map +1 -1
- package/dist/resolvers/TestQuerySQLResolver.js +65 -13
- package/dist/resolvers/TestQuerySQLResolver.js.map +1 -1
- package/dist/resolvers/TransactionGroupResolver.d.ts +19 -2
- package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
- package/dist/resolvers/TransactionGroupResolver.js +102 -24
- package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
- package/dist/resolvers/agent-run-data-guard.d.ts +31 -0
- package/dist/resolvers/agent-run-data-guard.d.ts.map +1 -0
- package/dist/resolvers/agent-run-data-guard.js +72 -0
- package/dist/resolvers/agent-run-data-guard.js.map +1 -0
- package/dist/rest/RealtimeRecordingHandler.d.ts +49 -0
- package/dist/rest/RealtimeRecordingHandler.d.ts.map +1 -0
- package/dist/rest/RealtimeRecordingHandler.js +383 -0
- package/dist/rest/RealtimeRecordingHandler.js.map +1 -0
- package/dist/rest/ViewOperationsHandler.d.ts +3 -1
- package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
- package/dist/rest/ViewOperationsHandler.js +21 -12
- package/dist/rest/ViewOperationsHandler.js.map +1 -1
- package/dist/rest/setupRESTEndpoints.d.ts +6 -0
- package/dist/rest/setupRESTEndpoints.d.ts.map +1 -1
- package/dist/rest/setupRESTEndpoints.js +6 -0
- package/dist/rest/setupRESTEndpoints.js.map +1 -1
- package/dist/serverExtensionReservedRoots.d.ts +12 -10
- package/dist/serverExtensionReservedRoots.d.ts.map +1 -1
- package/dist/serverExtensionReservedRoots.js +14 -17
- package/dist/serverExtensionReservedRoots.js.map +1 -1
- package/dist/services/MJStorageBlobStore.d.ts +8 -1
- package/dist/services/MJStorageBlobStore.d.ts.map +1 -1
- package/dist/services/MJStorageBlobStore.js +25 -19
- package/dist/services/MJStorageBlobStore.js.map +1 -1
- package/dist/services/StartTaskGraphDispatcher.js +2 -2
- package/dist/services/StartTaskGraphDispatcher.js.map +1 -1
- package/dist/services/TaskGraphActionRunner.d.ts +5 -3
- package/dist/services/TaskGraphActionRunner.d.ts.map +1 -1
- package/dist/services/TaskGraphActionRunner.js +27 -5
- package/dist/services/TaskGraphActionRunner.js.map +1 -1
- package/dist/services/TaskGraphAgentRunner.d.ts +14 -2
- package/dist/services/TaskGraphAgentRunner.d.ts.map +1 -1
- package/dist/services/TaskGraphAgentRunner.js +157 -9
- package/dist/services/TaskGraphAgentRunner.js.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.d.ts +54 -2
- package/dist/services/TaskGraphContinuationDeliverer.d.ts.map +1 -1
- package/dist/services/TaskGraphContinuationDeliverer.js +598 -15
- package/dist/services/TaskGraphContinuationDeliverer.js.map +1 -1
- package/dist/sharedCache.d.ts.map +1 -1
- package/dist/sharedCache.js +3 -0
- package/dist/sharedCache.js.map +1 -1
- package/package.json +99 -98
- package/src/__tests__/DatasetResolver.itemFilters.test.ts +201 -0
- package/src/__tests__/EntityRecordNameResolver.rowSecurity.test.ts +152 -0
- package/src/__tests__/FetchEntityVectorsResolver.test.ts +163 -15
- package/src/__tests__/FileResolver.storageAccess.test.ts +562 -0
- package/src/__tests__/GetDataContextDataResolver.sqlItems.test.ts +416 -0
- package/src/__tests__/ListOperationsResolver.adhocScreen.test.ts +137 -0
- package/src/__tests__/LoginScreenEngine.test.ts +86 -0
- package/src/__tests__/MJStorageBlobStore.storageGate.test.ts +63 -0
- package/src/__tests__/RecordingAssemblyScheduler.test.ts +178 -0
- package/src/__tests__/ResolverBase.adhocReadScope.test.ts +133 -2
- package/src/__tests__/ResolverBase.balancedClause.test.ts +155 -0
- package/src/__tests__/ResolverBase.clauseUnscopedRead.test.ts +127 -0
- package/src/__tests__/ResolverBase.clientOldValues.test.ts +209 -6
- package/src/__tests__/ResolverBase.filterEscaping.test.ts +5 -2
- package/src/__tests__/RunAIAgentResolver.branch.test.ts +1 -0
- package/src/__tests__/RunAIAgentResolver.historyFrom.test.ts +5 -3
- package/src/__tests__/RunAIAgentResolver.runDataGuard.test.ts +258 -0
- package/src/__tests__/RunViewResolver.cacheCheckScreen.test.ts +165 -0
- package/src/__tests__/SearchKnowledgeStreamResolver.test.ts +161 -0
- package/src/__tests__/SessionJanitor.test.ts +365 -10
- package/src/__tests__/SessionManager.test.ts +27 -0
- package/src/__tests__/TaskGraphActionRunner.durablePayload.test.ts +25 -0
- package/src/__tests__/TaskGraphAgentRunner.test.ts +266 -0
- package/src/__tests__/TaskGraphContinuationDeliverer.test.ts +356 -22
- package/src/__tests__/TaskGraphFrameResolver.test.ts +22 -0
- package/src/__tests__/TestQuerySQLResolver.test.ts +274 -0
- package/src/__tests__/TransactionGroupResolver.refusals.test.ts +98 -1
- package/src/__tests__/UpdateMJDataContextItem.oldValues.test.ts +220 -0
- package/src/__tests__/ViewOperationsHandler.clauseScreen.test.ts +157 -0
- package/src/__tests__/agent-run-data-guard.test.ts +130 -0
- package/src/__tests__/apiRootBoot.test.ts +202 -0
- package/src/__tests__/cacheInvalidationRecordData.test.ts +64 -0
- package/src/__tests__/conversationRunEvents.test.ts +56 -14
- package/src/__tests__/globalCors.test.ts +217 -0
- package/src/__tests__/multiTenancy.postgresRewrite.test.ts +181 -0
- package/src/__tests__/multiTenancy.security.test.ts +51 -0
- package/src/__tests__/multiTenancy.test.ts +1 -1
- package/src/__tests__/ownedRealtimeSession.test.ts +39 -0
- package/src/__tests__/pushStatusResolver.filter.test.ts +7 -0
- package/src/__tests__/realtimeRecordingHandler.test.ts +652 -0
- package/src/__tests__/serverExtensionHostOverlay.test.ts +66 -0
- package/src/__tests__/serverExtensionReservedRoots.test.ts +11 -98
- package/src/__tests__/sharedCache.test.ts +5 -3
- package/src/agentSessions/SessionJanitor.ts +369 -93
- package/src/agentSessions/SessionManager.ts +13 -1
- package/src/apiRoot.ts +78 -0
- package/src/auth/AuthProviderCatalogRouter.ts +26 -0
- package/src/auth/LoginScreenEngine.ts +50 -0
- package/src/auth/index.ts +1 -0
- package/src/auth/magicLink/MagicLinkRouter.ts +3 -2
- package/src/config.ts +46 -5
- package/src/coreRoutes.ts +166 -0
- package/src/generated/graphql-schemas/__mj.ts +1273 -10
- package/src/generic/CacheInvalidationResolver.ts +73 -18
- package/src/generic/PushStatusResolver.ts +1 -1
- package/src/generic/ResolverBase.ts +304 -325
- package/src/generic/RunViewResolver.ts +17 -0
- package/src/globalCors.ts +71 -0
- package/src/index.ts +116 -174
- package/src/multiTenancy/index.ts +24 -2
- package/src/realtimeSessions/RealtimeSessionVerificationService.ts +2 -1
- package/src/realtimeSessions/RealtimeVerifyRouter.ts +2 -1
- package/src/realtimeSessions/RecordingAssemblyScheduler.ts +234 -0
- package/src/realtimeSessions/index.ts +2 -0
- package/src/realtimeSessions/ownedRealtimeSession.ts +55 -0
- package/src/realtimeSessions/sessionAccess.ts +7 -3
- package/src/resolvers/ArtifactFileResolver.ts +9 -8
- package/src/resolvers/ConversationRunEventsResolver.ts +15 -11
- package/src/resolvers/DatasetResolver.ts +70 -10
- package/src/resolvers/EntityRecordNameResolver.ts +3 -2
- package/src/resolvers/FetchEntityVectorsResolver.ts +121 -39
- package/src/resolvers/FileResolver.ts +321 -106
- package/src/resolvers/GetDataContextDataResolver.ts +139 -41
- package/src/resolvers/GetDataResolver.ts +6 -3
- package/src/resolvers/IntegrationDiscoveryResolver.ts +4 -2
- package/src/resolvers/QueryResolver.ts +11 -0
- package/src/resolvers/RealtimeClientSessionResolver.ts +10 -33
- package/src/resolvers/RunAIAgentResolver.ts +39 -4
- package/src/resolvers/SearchKnowledgeStreamResolver.ts +19 -3
- package/src/resolvers/SqlLoggingConfigResolver.ts +2 -4
- package/src/resolvers/TaskGraphFrameResolver.ts +33 -1
- package/src/resolvers/TestQuerySQLResolver.ts +68 -13
- package/src/resolvers/TransactionGroupResolver.ts +131 -27
- package/src/resolvers/__tests__/GetDataResolver.validation.test.ts +95 -0
- package/src/resolvers/agent-run-data-guard.ts +89 -0
- package/src/rest/RealtimeRecordingHandler.ts +464 -0
- package/src/rest/ViewOperationsHandler.ts +29 -13
- package/src/rest/setupRESTEndpoints.ts +6 -0
- package/src/serverExtensionReservedRoots.ts +14 -17
- package/src/services/MJStorageBlobStore.ts +31 -30
- package/src/services/StartTaskGraphDispatcher.ts +2 -2
- package/src/services/TaskGraphActionRunner.ts +25 -5
- package/src/services/TaskGraphAgentRunner.ts +188 -11
- package/src/services/TaskGraphContinuationDeliverer.ts +704 -14
- 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/
|
|
9
|
-
*
|
|
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
|
|
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
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
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(
|
|
29
|
-
/** @deprecated Use {@link CoreReservedServerExtensionRoots}. */
|
|
30
|
-
export declare function coreReservedServerExtensionRoots(
|
|
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
|
|
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/
|
|
9
|
-
*
|
|
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
|
|
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
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
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(
|
|
41
|
-
|
|
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(
|
|
50
|
-
return CoreReservedServerExtensionRoots(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
152
|
-
|
|
153
|
-
const
|
|
154
|
-
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAA+B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;
|
|
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;
|
|
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
|
|
24
|
-
*
|
|
25
|
-
*
|
|
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
|
|
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
|
|
87
|
-
*
|
|
88
|
-
*
|
|
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":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,MAAM,OAAO,qBAAqB;IACvB,KAAK,CAAC,gBAAgB,CAAC,MAA2B;QACrD,IAAI,CAAC;YACD,MAAM,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClG,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,MAAM,CAAC,QAAQ,mCAAmC,EAAE,CAAC;YAC1G,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC;gBACvD,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;gBAChC,oFAAoF;gBACpF,qFAAqF;gBACrF,4EAA4E;gBAC5E,iFAAiF;gBACjF,OAAO,EAAE,EAAE;aACd,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC/
|
|
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
|
|
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
|
-
/**
|
|
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":"
|
|
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"}
|