@vertesia/workflow 1.1.1-dev.20260505.163000Z → 1.3.0-dev.20260620.061059Z
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 +1 -2
- package/lib/{types/activities → activities}/advanced/createDocumentTypeFromInteractionRun.d.ts +2 -2
- package/lib/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/advanced/createDocumentTypeFromInteractionRun.js +9 -9
- package/lib/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
- package/lib/{types/activities → activities}/advanced/createOrUpdateDocumentFromInteractionRun.d.ts +2 -2
- package/lib/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/advanced/createOrUpdateDocumentFromInteractionRun.js +29 -22
- package/lib/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
- package/lib/{types/activities → activities}/advanced/updateDocumentFromInteractionRun.d.ts +1 -1
- package/lib/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +1 -0
- package/lib/activities/advanced/updateDocumentFromInteractionRun.js +16 -0
- package/lib/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
- package/lib/{types/activities → activities}/chunkDocument.d.ts +3 -3
- package/lib/activities/chunkDocument.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/chunkDocument.js +38 -33
- package/lib/activities/chunkDocument.js.map +1 -0
- package/lib/{types/activities → activities}/createDocumentFromOther.d.ts +1 -1
- package/lib/activities/createDocumentFromOther.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/createDocumentFromOther.js +15 -13
- package/lib/activities/createDocumentFromOther.js.map +1 -0
- package/lib/{types/activities → activities}/executeInteraction.d.ts +19 -10
- package/lib/activities/executeInteraction.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/executeInteraction.js +100 -79
- package/lib/activities/executeInteraction.js.map +1 -0
- package/lib/{types/activities → activities}/executeRemoteActivity.d.ts +4 -4
- package/lib/activities/executeRemoteActivity.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/executeRemoteActivity.js +48 -23
- package/lib/activities/executeRemoteActivity.js.map +1 -0
- package/lib/{types/activities → activities}/extractDocumentText.d.ts +3 -3
- package/lib/activities/extractDocumentText.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/extractDocumentText.js +65 -52
- package/lib/activities/extractDocumentText.js.map +1 -0
- package/lib/{types/activities → activities}/generateDocumentProperties.d.ts +4 -4
- package/lib/activities/generateDocumentProperties.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/generateDocumentProperties.js +37 -33
- package/lib/activities/generateDocumentProperties.js.map +1 -0
- package/lib/{types/activities → activities}/generateEmbeddings.d.ts +3 -3
- package/lib/activities/generateEmbeddings.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/generateEmbeddings.js +80 -80
- package/lib/activities/generateEmbeddings.js.map +1 -0
- package/lib/{types/activities → activities}/generateOrAssignContentType.d.ts +4 -4
- package/lib/activities/generateOrAssignContentType.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/generateOrAssignContentType.js +51 -49
- package/lib/activities/generateOrAssignContentType.js.map +1 -0
- package/lib/{types/activities → activities}/getObjectFromStore.d.ts +1 -1
- package/lib/activities/getObjectFromStore.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/getObjectFromStore.js +4 -3
- package/lib/activities/getObjectFromStore.js.map +1 -0
- package/lib/{types/activities → activities}/handleError.d.ts +1 -1
- package/lib/activities/handleError.d.ts.map +1 -0
- package/lib/activities/handleError.js +37 -0
- package/lib/activities/handleError.js.map +1 -0
- package/lib/activities/index-dsl.d.ts +31 -0
- package/lib/activities/index-dsl.d.ts.map +1 -0
- package/lib/activities/index-dsl.js +29 -0
- package/lib/activities/index-dsl.js.map +1 -0
- package/lib/{types/activities → activities}/index.d.ts +1 -1
- package/lib/activities/index.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/index.js +1 -1
- package/lib/activities/index.js.map +1 -0
- package/lib/{types/activities → activities}/loadChildWorkflowSpec.d.ts +1 -1
- package/lib/activities/loadChildWorkflowSpec.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/loadChildWorkflowSpec.js +4 -2
- package/lib/activities/loadChildWorkflowSpec.js.map +1 -0
- package/lib/{types/activities → activities}/media/prepareAudio.d.ts +1 -1
- package/lib/activities/media/prepareAudio.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/prepareAudio.js +27 -23
- package/lib/activities/media/prepareAudio.js.map +1 -0
- package/lib/{types/activities → activities}/media/prepareVideo.d.ts +2 -2
- package/lib/activities/media/prepareVideo.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/prepareVideo.js +72 -54
- package/lib/activities/media/prepareVideo.js.map +1 -0
- package/lib/{types/activities → activities}/media/probeMediaStreams.d.ts +2 -3
- package/lib/activities/media/probeMediaStreams.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/probeMediaStreams.js +7 -5
- package/lib/activities/media/probeMediaStreams.js.map +1 -0
- package/lib/{types/activities → activities}/media/processPdfWithTextract.d.ts +3 -3
- package/lib/activities/media/processPdfWithTextract.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/processPdfWithTextract.js +43 -26
- package/lib/activities/media/processPdfWithTextract.js.map +1 -0
- package/lib/{types/activities → activities}/media/saveGladiaTranscription.d.ts +2 -2
- package/lib/activities/media/saveGladiaTranscription.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/saveGladiaTranscription.js +35 -25
- package/lib/activities/media/saveGladiaTranscription.js.map +1 -0
- package/lib/{types/activities → activities}/media/transcribeMediaWithGladia.d.ts +2 -2
- package/lib/activities/media/transcribeMediaWithGladia.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/media/transcribeMediaWithGladia.js +26 -21
- package/lib/activities/media/transcribeMediaWithGladia.js.map +1 -0
- package/lib/{types/activities → activities}/mergeChildArtifacts.d.ts +1 -1
- package/lib/activities/mergeChildArtifacts.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/mergeChildArtifacts.js +27 -26
- package/lib/activities/mergeChildArtifacts.js.map +1 -0
- package/lib/{types/activities → activities}/notifyWebhook.d.ts +6 -5
- package/lib/activities/notifyWebhook.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/notifyWebhook.js +20 -17
- package/lib/activities/notifyWebhook.js.map +1 -0
- package/lib/{types/activities → activities}/rateLimiter.d.ts +1 -1
- package/lib/activities/rateLimiter.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/rateLimiter.js +4 -3
- package/lib/activities/rateLimiter.js.map +1 -0
- package/lib/{types/activities → activities}/renditions/generateImageRendition.d.ts +3 -3
- package/lib/activities/renditions/generateImageRendition.d.ts.map +1 -0
- package/lib/activities/renditions/generateImageRendition.js +75 -0
- package/lib/activities/renditions/generateImageRendition.js.map +1 -0
- package/lib/{types/activities → activities}/renditions/generateVideoRendition.d.ts +3 -3
- package/lib/activities/renditions/generateVideoRendition.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/renditions/generateVideoRendition.js +51 -54
- package/lib/activities/renditions/generateVideoRendition.js.map +1 -0
- package/lib/{types/activities → activities}/resolveRemoteActivities.d.ts +3 -4
- package/lib/activities/resolveRemoteActivities.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/resolveRemoteActivities.js +16 -15
- package/lib/activities/resolveRemoteActivities.js.map +1 -0
- package/lib/{types/activities → activities}/setDocumentStatus.d.ts +1 -1
- package/lib/activities/setDocumentStatus.d.ts.map +1 -0
- package/lib/{esm/activities → activities}/setDocumentStatus.js +5 -3
- package/lib/activities/setDocumentStatus.js.map +1 -0
- package/lib/{types/bulk-import.d.ts → bulk-import.d.ts} +10 -1
- package/lib/bulk-import.d.ts.map +1 -0
- package/lib/bulk-import.js.map +1 -0
- package/lib/{types/conversion → conversion}/TextractProcessor.d.ts +7 -4
- package/lib/conversion/TextractProcessor.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/TextractProcessor.js +38 -38
- package/lib/conversion/TextractProcessor.js.map +1 -0
- package/lib/conversion/image.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/image.js +35 -35
- package/lib/conversion/image.js.map +1 -0
- package/lib/conversion/markitdown.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/markitdown.js +11 -11
- package/lib/conversion/markitdown.js.map +1 -0
- package/lib/conversion/mutool.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/mutool.js +19 -24
- package/lib/conversion/mutool.js.map +1 -0
- package/lib/conversion/pandoc.d.ts.map +1 -0
- package/lib/{esm/conversion → conversion}/pandoc.js +11 -11
- package/lib/conversion/pandoc.js.map +1 -0
- package/lib/dsl/conditions.d.ts +2 -0
- package/lib/dsl/conditions.d.ts.map +1 -0
- package/lib/dsl/conditions.js +90 -0
- package/lib/dsl/conditions.js.map +1 -0
- package/lib/{types/dsl → dsl}/dsl-workflow.d.ts +2 -2
- package/lib/dsl/dsl-workflow.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/dsl-workflow.js +93 -65
- package/lib/dsl/dsl-workflow.js.map +1 -0
- package/lib/dsl/dslProxyActivities.d.ts +7 -0
- package/lib/dsl/dslProxyActivities.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/dslProxyActivities.js +10 -1
- package/lib/dsl/dslProxyActivities.js.map +1 -0
- package/lib/dsl/projections.d.ts +4 -0
- package/lib/dsl/projections.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/projections.js +22 -8
- package/lib/dsl/projections.js.map +1 -0
- package/lib/{types/dsl → dsl}/setup/ActivityContext.d.ts +4 -4
- package/lib/dsl/setup/ActivityContext.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/setup/ActivityContext.js +24 -27
- package/lib/dsl/setup/ActivityContext.js.map +1 -0
- package/lib/{types/dsl → dsl}/setup/fetch/DataProvider.d.ts +3 -3
- package/lib/dsl/setup/fetch/DataProvider.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/setup/fetch/DataProvider.js +2 -1
- package/lib/dsl/setup/fetch/DataProvider.js.map +1 -0
- package/lib/dsl/setup/fetch/index.d.ts +6 -0
- package/lib/dsl/setup/fetch/index.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/setup/fetch/index.js +1 -1
- package/lib/dsl/setup/fetch/index.js.map +1 -0
- package/lib/{types/dsl → dsl}/setup/fetch/providers.d.ts +6 -6
- package/lib/dsl/setup/fetch/providers.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/setup/fetch/providers.js +30 -16
- package/lib/dsl/setup/fetch/providers.js.map +1 -0
- package/lib/dsl/test/test-child-workflow.d.ts +4 -0
- package/lib/dsl/test/test-child-workflow.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/test/test-child-workflow.js +1 -1
- package/lib/dsl/test/test-child-workflow.js.map +1 -0
- package/lib/{types/dsl → dsl}/validation.d.ts +1 -1
- package/lib/dsl/validation.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/validation.js +8 -8
- package/lib/dsl/validation.js.map +1 -0
- package/lib/{types/dsl → dsl}/vars.d.ts +16 -16
- package/lib/dsl/vars.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/vars.js +20 -15
- package/lib/dsl/vars.js.map +1 -0
- package/lib/dsl/walk.d.ts +18 -0
- package/lib/dsl/walk.d.ts.map +1 -0
- package/lib/{esm/dsl → dsl}/walk.js +37 -16
- package/lib/dsl/walk.js.map +1 -0
- package/lib/dsl.d.ts +4 -0
- package/lib/dsl.d.ts.map +1 -0
- package/lib/dsl.js +4 -0
- package/lib/dsl.js.map +1 -0
- package/lib/{types/errors.d.ts → errors.d.ts} +2 -2
- package/lib/errors.d.ts.map +1 -0
- package/lib/{esm/errors.js → errors.js} +22 -17
- package/lib/errors.js.map +1 -0
- package/lib/index.d.ts +36 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +37 -0
- package/lib/index.js.map +1 -0
- package/lib/result-types.d.ts.map +1 -0
- package/lib/result-types.js.map +1 -0
- package/lib/security/ssrf.d.ts.map +1 -0
- package/lib/security/ssrf.js.map +1 -0
- package/lib/system/notifyWebhookWorkflow.d.ts +8 -0
- package/lib/system/notifyWebhookWorkflow.d.ts.map +1 -0
- package/lib/{esm/system → system}/notifyWebhookWorkflow.js +13 -12
- package/lib/system/notifyWebhookWorkflow.js.map +1 -0
- package/lib/{types/system → system}/recalculateEmbeddingsWorkflow.d.ts +1 -1
- package/lib/system/recalculateEmbeddingsWorkflow.d.ts.map +1 -0
- package/lib/{esm/system → system}/recalculateEmbeddingsWorkflow.js +7 -7
- package/lib/system/recalculateEmbeddingsWorkflow.js.map +1 -0
- package/lib/utils/activity-info.d.ts +12 -0
- package/lib/utils/activity-info.d.ts.map +1 -0
- package/lib/utils/activity-info.js +15 -0
- package/lib/utils/activity-info.js.map +1 -0
- package/lib/{types/utils → utils}/auth.d.ts +1 -1
- package/lib/utils/auth.d.ts.map +1 -0
- package/lib/utils/auth.js.map +1 -0
- package/lib/{types/utils → utils}/blobs.d.ts +1 -1
- package/lib/utils/blobs.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/blobs.js +17 -16
- package/lib/utils/blobs.js.map +1 -0
- package/lib/utils/chunks.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/chunks.js +1 -1
- package/lib/utils/chunks.js.map +1 -0
- package/lib/utils/client.d.ts +8 -0
- package/lib/utils/client.d.ts.map +1 -0
- package/lib/utils/client.js +57 -0
- package/lib/utils/client.js.map +1 -0
- package/lib/{types/utils → utils}/expand-vars.d.ts +1 -1
- package/lib/utils/expand-vars.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/expand-vars.js +4 -1
- package/lib/utils/expand-vars.js.map +1 -0
- package/lib/{types/utils → utils}/renditions.d.ts +2 -2
- package/lib/utils/renditions.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/renditions.js +29 -18
- package/lib/utils/renditions.js.map +1 -0
- package/lib/{types/utils → utils}/storage.d.ts +2 -2
- package/lib/utils/storage.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/storage.js +13 -12
- package/lib/utils/storage.js.map +1 -0
- package/lib/{types/utils → utils}/text-preview-utils.d.ts +2 -2
- package/lib/utils/text-preview-utils.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/text-preview-utils.js +4 -4
- package/lib/utils/text-preview-utils.js.map +1 -0
- package/lib/{types/utils → utils}/tokens.d.ts +1 -1
- package/lib/utils/tokens.d.ts.map +1 -0
- package/lib/{esm/utils → utils}/tokens.js +3 -3
- package/lib/utils/tokens.js.map +1 -0
- package/lib/vars.d.ts +3 -0
- package/lib/vars.d.ts.map +1 -0
- package/lib/vars.js +4 -0
- package/lib/vars.js.map +1 -0
- package/lib/workflows-bundle.js +6201 -3026
- package/lib/workflows.d.ts +7 -0
- package/lib/workflows.d.ts.map +1 -0
- package/lib/workflows.js +7 -0
- package/lib/workflows.js.map +1 -0
- package/package.json +49 -89
- package/src/activities/advanced/createDocumentTypeFromInteractionRun.ts +30 -17
- package/src/activities/advanced/createOrUpdateDocumentFromInteractionRun.ts +51 -37
- package/src/activities/advanced/updateDocumentFromInteractionRun.ts +12 -11
- package/src/activities/chunkDocument.ts +87 -77
- package/src/activities/createDocumentFromOther.ts +19 -25
- package/src/activities/executeInteraction.test.ts +156 -0
- package/src/activities/executeInteraction.ts +150 -103
- package/src/activities/executeRemoteActivity.test.ts +61 -67
- package/src/activities/executeRemoteActivity.ts +56 -29
- package/src/activities/extractDocumentText.ts +75 -64
- package/src/activities/generateDocumentProperties.ts +69 -50
- package/src/activities/generateEmbeddings.test.ts +114 -0
- package/src/activities/generateEmbeddings.ts +113 -141
- package/src/activities/generateOrAssignContentType.ts +219 -231
- package/src/activities/getObjectFromStore.ts +11 -10
- package/src/activities/handleError.ts +23 -11
- package/src/activities/index-dsl.ts +30 -30
- package/src/activities/index.ts +1 -1
- package/src/activities/loadChildWorkflowSpec.ts +8 -3
- package/src/activities/media/prepareAudio.ts +47 -56
- package/src/activities/media/prepareVideo.ts +107 -122
- package/src/activities/media/probeMediaStreams.test.ts +11 -13
- package/src/activities/media/probeMediaStreams.ts +13 -15
- package/src/activities/media/processPdfWithTextract.ts +65 -46
- package/src/activities/media/saveGladiaTranscription.test.ts +122 -121
- package/src/activities/media/saveGladiaTranscription.ts +52 -26
- package/src/activities/media/transcribeMediaWithGladia.test.ts +173 -165
- package/src/activities/media/transcribeMediaWithGladia.ts +44 -28
- package/src/activities/mergeChildArtifacts.ts +36 -38
- package/src/activities/notifyWebhook.test.ts +223 -217
- package/src/activities/notifyWebhook.ts +67 -40
- package/src/activities/rateLimiter.ts +31 -30
- package/src/activities/renditions/generateImageRendition.ts +54 -64
- package/src/activities/renditions/generateVideoRendition.ts +87 -141
- package/src/activities/resolveRemoteActivities.test.ts +96 -88
- package/src/activities/resolveRemoteActivities.ts +32 -23
- package/src/activities/setDocumentStatus.ts +11 -7
- package/src/bulk-import.ts +11 -5
- package/src/conversion/TextractProcessor.ts +69 -71
- package/src/conversion/image.test.ts +31 -31
- package/src/conversion/image.ts +41 -38
- package/src/conversion/markitdown.ts +11 -11
- package/src/conversion/mutool.test.ts +77 -62
- package/src/conversion/mutool.ts +27 -49
- package/src/conversion/pandoc.test.ts +5 -6
- package/src/conversion/pandoc.ts +11 -11
- package/src/dsl/conditions.ts +35 -17
- package/src/dsl/dsl-workflow.test.ts +49 -39
- package/src/dsl/dsl-workflow.ts +200 -112
- package/src/dsl/dslProxyActivities.test.ts +23 -0
- package/src/dsl/dslProxyActivities.ts +46 -26
- package/src/dsl/ms.d.ts +34 -3
- package/src/dsl/projections.test.ts +108 -100
- package/src/dsl/projections.ts +46 -26
- package/src/dsl/setup/ActivityContext.test.ts +22 -23
- package/src/dsl/setup/ActivityContext.ts +41 -84
- package/src/dsl/setup/fetch/DataProvider.ts +11 -8
- package/src/dsl/setup/fetch/index.ts +6 -8
- package/src/dsl/setup/fetch/providers.ts +38 -24
- package/src/dsl/test/test-child-workflow.ts +3 -2
- package/src/dsl/validation.test.ts +232 -213
- package/src/dsl/validation.ts +17 -12
- package/src/dsl/vars.test.ts +143 -140
- package/src/dsl/vars.ts +61 -54
- package/src/dsl/walk.test.ts +61 -56
- package/src/dsl/walk.ts +61 -35
- package/src/dsl/workflow-exec-child.test.ts +77 -61
- package/src/dsl/workflow-fetch.test.ts +40 -38
- package/src/dsl/workflow-import.test.ts +27 -27
- package/src/dsl/workflow.test.ts +34 -33
- package/src/dsl.ts +3 -4
- package/src/errors.ts +31 -23
- package/src/index.ts +28 -33
- package/src/result-types.ts +6 -9
- package/src/system/notifyWebhookWorkflow.ts +23 -23
- package/src/system/recalculateEmbeddingsWorkflow.ts +14 -17
- package/src/utils/activity-info.ts +15 -0
- package/src/utils/auth.ts +1 -1
- package/src/utils/blobs.ts +19 -18
- package/src/utils/chunks.ts +7 -8
- package/src/utils/client.ts +45 -17
- package/src/utils/expand-vars.ts +9 -6
- package/src/utils/renditions.ts +68 -72
- package/src/utils/storage.ts +18 -22
- package/src/utils/text-preview-utils.ts +9 -19
- package/src/utils/tokens.ts +9 -11
- package/src/vars.ts +2 -2
- package/src/workflows.ts +3 -4
- package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js +0 -33
- package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js.map +0 -1
- package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +0 -73
- package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +0 -1
- package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js +0 -19
- package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js.map +0 -1
- package/lib/cjs/activities/chunkDocument.js +0 -111
- package/lib/cjs/activities/chunkDocument.js.map +0 -1
- package/lib/cjs/activities/createDocumentFromOther.js +0 -64
- package/lib/cjs/activities/createDocumentFromOther.js.map +0 -1
- package/lib/cjs/activities/executeInteraction.js +0 -239
- package/lib/cjs/activities/executeInteraction.js.map +0 -1
- package/lib/cjs/activities/executeRemoteActivity.js +0 -126
- package/lib/cjs/activities/executeRemoteActivity.js.map +0 -1
- package/lib/cjs/activities/extractDocumentText.js +0 -196
- package/lib/cjs/activities/extractDocumentText.js.map +0 -1
- package/lib/cjs/activities/generateDocumentProperties.js +0 -109
- package/lib/cjs/activities/generateDocumentProperties.js.map +0 -1
- package/lib/cjs/activities/generateEmbeddings.js +0 -269
- package/lib/cjs/activities/generateEmbeddings.js.map +0 -1
- package/lib/cjs/activities/generateOrAssignContentType.js +0 -173
- package/lib/cjs/activities/generateOrAssignContentType.js.map +0 -1
- package/lib/cjs/activities/getObjectFromStore.js +0 -31
- package/lib/cjs/activities/getObjectFromStore.js.map +0 -1
- package/lib/cjs/activities/handleError.js +0 -29
- package/lib/cjs/activities/handleError.js.map +0 -1
- package/lib/cjs/activities/index-dsl.js +0 -59
- package/lib/cjs/activities/index-dsl.js.map +0 -1
- package/lib/cjs/activities/index.js +0 -21
- package/lib/cjs/activities/index.js.map +0 -1
- package/lib/cjs/activities/loadChildWorkflowSpec.js +0 -15
- package/lib/cjs/activities/loadChildWorkflowSpec.js.map +0 -1
- package/lib/cjs/activities/media/prepareAudio.js +0 -240
- package/lib/cjs/activities/media/prepareAudio.js.map +0 -1
- package/lib/cjs/activities/media/prepareVideo.js +0 -432
- package/lib/cjs/activities/media/prepareVideo.js.map +0 -1
- package/lib/cjs/activities/media/probeMediaStreams.js +0 -49
- package/lib/cjs/activities/media/probeMediaStreams.js.map +0 -1
- package/lib/cjs/activities/media/processPdfWithTextract.js +0 -103
- package/lib/cjs/activities/media/processPdfWithTextract.js.map +0 -1
- package/lib/cjs/activities/media/saveGladiaTranscription.js +0 -103
- package/lib/cjs/activities/media/saveGladiaTranscription.js.map +0 -1
- package/lib/cjs/activities/media/transcribeMediaWithGladia.js +0 -107
- package/lib/cjs/activities/media/transcribeMediaWithGladia.js.map +0 -1
- package/lib/cjs/activities/mergeChildArtifacts.js +0 -150
- package/lib/cjs/activities/mergeChildArtifacts.js.map +0 -1
- package/lib/cjs/activities/notifyWebhook.js +0 -167
- package/lib/cjs/activities/notifyWebhook.js.map +0 -1
- package/lib/cjs/activities/rateLimiter.js +0 -30
- package/lib/cjs/activities/rateLimiter.js.map +0 -1
- package/lib/cjs/activities/renditions/generateImageRendition.js +0 -66
- package/lib/cjs/activities/renditions/generateImageRendition.js.map +0 -1
- package/lib/cjs/activities/renditions/generateVideoRendition.js +0 -200
- package/lib/cjs/activities/renditions/generateVideoRendition.js.map +0 -1
- package/lib/cjs/activities/resolveRemoteActivities.js +0 -133
- package/lib/cjs/activities/resolveRemoteActivities.js.map +0 -1
- package/lib/cjs/activities/setDocumentStatus.js +0 -26
- package/lib/cjs/activities/setDocumentStatus.js.map +0 -1
- package/lib/cjs/bulk-import.js +0 -12
- package/lib/cjs/bulk-import.js.map +0 -1
- package/lib/cjs/conversion/TextractProcessor.js +0 -417
- package/lib/cjs/conversion/TextractProcessor.js.map +0 -1
- package/lib/cjs/conversion/image.js +0 -149
- package/lib/cjs/conversion/image.js.map +0 -1
- package/lib/cjs/conversion/markitdown.js +0 -42
- package/lib/cjs/conversion/markitdown.js.map +0 -1
- package/lib/cjs/conversion/mutool.js +0 -147
- package/lib/cjs/conversion/mutool.js.map +0 -1
- package/lib/cjs/conversion/pandoc.js +0 -39
- package/lib/cjs/conversion/pandoc.js.map +0 -1
- package/lib/cjs/dsl/conditions.js +0 -81
- package/lib/cjs/dsl/conditions.js.map +0 -1
- package/lib/cjs/dsl/dsl-workflow.js +0 -458
- package/lib/cjs/dsl/dsl-workflow.js.map +0 -1
- package/lib/cjs/dsl/dslProxyActivities.js +0 -23
- package/lib/cjs/dsl/dslProxyActivities.js.map +0 -1
- package/lib/cjs/dsl/projections.js +0 -59
- package/lib/cjs/dsl/projections.js.map +0 -1
- package/lib/cjs/dsl/setup/ActivityContext.js +0 -188
- package/lib/cjs/dsl/setup/ActivityContext.js.map +0 -1
- package/lib/cjs/dsl/setup/fetch/DataProvider.js +0 -51
- package/lib/cjs/dsl/setup/fetch/DataProvider.js.map +0 -1
- package/lib/cjs/dsl/setup/fetch/index.js +0 -16
- package/lib/cjs/dsl/setup/fetch/index.js.map +0 -1
- package/lib/cjs/dsl/setup/fetch/providers.js +0 -67
- package/lib/cjs/dsl/setup/fetch/providers.js.map +0 -1
- package/lib/cjs/dsl/test/test-child-workflow.js +0 -10
- package/lib/cjs/dsl/test/test-child-workflow.js.map +0 -1
- package/lib/cjs/dsl/validation.js +0 -122
- package/lib/cjs/dsl/validation.js.map +0 -1
- package/lib/cjs/dsl/vars.js +0 -341
- package/lib/cjs/dsl/vars.js.map +0 -1
- package/lib/cjs/dsl/walk.js +0 -100
- package/lib/cjs/dsl/walk.js.map +0 -1
- package/lib/cjs/dsl.js +0 -20
- package/lib/cjs/dsl.js.map +0 -1
- package/lib/cjs/errors.js +0 -89
- package/lib/cjs/errors.js.map +0 -1
- package/lib/cjs/index.js +0 -57
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/extractToc.js +0 -47
- package/lib/cjs/iterative-generation/activities/extractToc.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/finalizeOutput.js +0 -72
- package/lib/cjs/iterative-generation/activities/finalizeOutput.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/generatePart.js +0 -78
- package/lib/cjs/iterative-generation/activities/generatePart.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/generateToc.js +0 -86
- package/lib/cjs/iterative-generation/activities/generateToc.js.map +0 -1
- package/lib/cjs/iterative-generation/activities/index.js +0 -12
- package/lib/cjs/iterative-generation/activities/index.js.map +0 -1
- package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js +0 -56
- package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js.map +0 -1
- package/lib/cjs/iterative-generation/types.js +0 -5
- package/lib/cjs/iterative-generation/types.js.map +0 -1
- package/lib/cjs/iterative-generation/utils.js +0 -121
- package/lib/cjs/iterative-generation/utils.js.map +0 -1
- package/lib/cjs/package.json +0 -3
- package/lib/cjs/result-types.js +0 -10
- package/lib/cjs/result-types.js.map +0 -1
- package/lib/cjs/security/ssrf.js +0 -34
- package/lib/cjs/security/ssrf.js.map +0 -1
- package/lib/cjs/system/notifyWebhookWorkflow.js +0 -53
- package/lib/cjs/system/notifyWebhookWorkflow.js.map +0 -1
- package/lib/cjs/system/recalculateEmbeddingsWorkflow.js +0 -33
- package/lib/cjs/system/recalculateEmbeddingsWorkflow.js.map +0 -1
- package/lib/cjs/utils/auth.js +0 -15
- package/lib/cjs/utils/auth.js.map +0 -1
- package/lib/cjs/utils/blobs.js +0 -64
- package/lib/cjs/utils/blobs.js.map +0 -1
- package/lib/cjs/utils/chunks.js +0 -14
- package/lib/cjs/utils/chunks.js.map +0 -1
- package/lib/cjs/utils/client.js +0 -31
- package/lib/cjs/utils/client.js.map +0 -1
- package/lib/cjs/utils/expand-vars.js +0 -33
- package/lib/cjs/utils/expand-vars.js.map +0 -1
- package/lib/cjs/utils/memory.js +0 -65
- package/lib/cjs/utils/memory.js.map +0 -1
- package/lib/cjs/utils/renditions.js +0 -92
- package/lib/cjs/utils/renditions.js.map +0 -1
- package/lib/cjs/utils/storage.js +0 -54
- package/lib/cjs/utils/storage.js.map +0 -1
- package/lib/cjs/utils/text-preview-utils.js +0 -43
- package/lib/cjs/utils/text-preview-utils.js.map +0 -1
- package/lib/cjs/utils/tokens.js +0 -38
- package/lib/cjs/utils/tokens.js.map +0 -1
- package/lib/cjs/vars.js +0 -20
- package/lib/cjs/vars.js.map +0 -1
- package/lib/cjs/workflows.js +0 -15
- package/lib/cjs/workflows.js.map +0 -1
- package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js.map +0 -1
- package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +0 -1
- package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js +0 -16
- package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js.map +0 -1
- package/lib/esm/activities/chunkDocument.js.map +0 -1
- package/lib/esm/activities/createDocumentFromOther.js.map +0 -1
- package/lib/esm/activities/executeInteraction.js.map +0 -1
- package/lib/esm/activities/executeRemoteActivity.js.map +0 -1
- package/lib/esm/activities/extractDocumentText.js.map +0 -1
- package/lib/esm/activities/generateDocumentProperties.js.map +0 -1
- package/lib/esm/activities/generateEmbeddings.js.map +0 -1
- package/lib/esm/activities/generateOrAssignContentType.js.map +0 -1
- package/lib/esm/activities/getObjectFromStore.js.map +0 -1
- package/lib/esm/activities/handleError.js +0 -26
- package/lib/esm/activities/handleError.js.map +0 -1
- package/lib/esm/activities/index-dsl.js +0 -29
- package/lib/esm/activities/index-dsl.js.map +0 -1
- package/lib/esm/activities/index.js.map +0 -1
- package/lib/esm/activities/loadChildWorkflowSpec.js.map +0 -1
- package/lib/esm/activities/media/prepareAudio.js.map +0 -1
- package/lib/esm/activities/media/prepareVideo.js.map +0 -1
- package/lib/esm/activities/media/probeMediaStreams.js.map +0 -1
- package/lib/esm/activities/media/processPdfWithTextract.js.map +0 -1
- package/lib/esm/activities/media/saveGladiaTranscription.js.map +0 -1
- package/lib/esm/activities/media/transcribeMediaWithGladia.js.map +0 -1
- package/lib/esm/activities/mergeChildArtifacts.js.map +0 -1
- package/lib/esm/activities/notifyWebhook.js.map +0 -1
- package/lib/esm/activities/rateLimiter.js.map +0 -1
- package/lib/esm/activities/renditions/generateImageRendition.js +0 -63
- package/lib/esm/activities/renditions/generateImageRendition.js.map +0 -1
- package/lib/esm/activities/renditions/generateVideoRendition.js.map +0 -1
- package/lib/esm/activities/resolveRemoteActivities.js.map +0 -1
- package/lib/esm/activities/setDocumentStatus.js.map +0 -1
- package/lib/esm/bulk-import.js.map +0 -1
- package/lib/esm/conversion/TextractProcessor.js.map +0 -1
- package/lib/esm/conversion/image.js.map +0 -1
- package/lib/esm/conversion/markitdown.js.map +0 -1
- package/lib/esm/conversion/mutool.js.map +0 -1
- package/lib/esm/conversion/pandoc.js.map +0 -1
- package/lib/esm/dsl/conditions.js +0 -75
- package/lib/esm/dsl/conditions.js.map +0 -1
- package/lib/esm/dsl/dsl-workflow.js.map +0 -1
- package/lib/esm/dsl/dslProxyActivities.js.map +0 -1
- package/lib/esm/dsl/projections.js.map +0 -1
- package/lib/esm/dsl/setup/ActivityContext.js.map +0 -1
- package/lib/esm/dsl/setup/fetch/DataProvider.js.map +0 -1
- package/lib/esm/dsl/setup/fetch/index.js.map +0 -1
- package/lib/esm/dsl/setup/fetch/providers.js.map +0 -1
- package/lib/esm/dsl/test/test-child-workflow.js.map +0 -1
- package/lib/esm/dsl/validation.js.map +0 -1
- package/lib/esm/dsl/vars.js.map +0 -1
- package/lib/esm/dsl/walk.js.map +0 -1
- package/lib/esm/dsl.js +0 -4
- package/lib/esm/dsl.js.map +0 -1
- package/lib/esm/errors.js.map +0 -1
- package/lib/esm/index.js +0 -39
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/iterative-generation/activities/extractToc.js +0 -44
- package/lib/esm/iterative-generation/activities/extractToc.js.map +0 -1
- package/lib/esm/iterative-generation/activities/finalizeOutput.js +0 -69
- package/lib/esm/iterative-generation/activities/finalizeOutput.js.map +0 -1
- package/lib/esm/iterative-generation/activities/generatePart.js +0 -75
- package/lib/esm/iterative-generation/activities/generatePart.js.map +0 -1
- package/lib/esm/iterative-generation/activities/generateToc.js +0 -83
- package/lib/esm/iterative-generation/activities/generateToc.js.map +0 -1
- package/lib/esm/iterative-generation/activities/index.js +0 -5
- package/lib/esm/iterative-generation/activities/index.js.map +0 -1
- package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js +0 -53
- package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js.map +0 -1
- package/lib/esm/iterative-generation/types.js +0 -2
- package/lib/esm/iterative-generation/types.js.map +0 -1
- package/lib/esm/iterative-generation/utils.js +0 -112
- package/lib/esm/iterative-generation/utils.js.map +0 -1
- package/lib/esm/result-types.js.map +0 -1
- package/lib/esm/security/ssrf.js.map +0 -1
- package/lib/esm/system/notifyWebhookWorkflow.js.map +0 -1
- package/lib/esm/system/recalculateEmbeddingsWorkflow.js.map +0 -1
- package/lib/esm/utils/auth.js.map +0 -1
- package/lib/esm/utils/blobs.js.map +0 -1
- package/lib/esm/utils/chunks.js.map +0 -1
- package/lib/esm/utils/client.js +0 -27
- package/lib/esm/utils/client.js.map +0 -1
- package/lib/esm/utils/expand-vars.js.map +0 -1
- package/lib/esm/utils/memory.js +0 -55
- package/lib/esm/utils/memory.js.map +0 -1
- package/lib/esm/utils/renditions.js.map +0 -1
- package/lib/esm/utils/storage.js.map +0 -1
- package/lib/esm/utils/text-preview-utils.js.map +0 -1
- package/lib/esm/utils/tokens.js.map +0 -1
- package/lib/esm/vars.js +0 -4
- package/lib/esm/vars.js.map +0 -1
- package/lib/esm/workflows.js +0 -8
- package/lib/esm/workflows.js.map +0 -1
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +0 -1
- package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +0 -1
- package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +0 -1
- package/lib/types/activities/chunkDocument.d.ts.map +0 -1
- package/lib/types/activities/createDocumentFromOther.d.ts.map +0 -1
- package/lib/types/activities/executeInteraction.d.ts.map +0 -1
- package/lib/types/activities/executeRemoteActivity.d.ts.map +0 -1
- package/lib/types/activities/extractDocumentText.d.ts.map +0 -1
- package/lib/types/activities/generateDocumentProperties.d.ts.map +0 -1
- package/lib/types/activities/generateEmbeddings.d.ts.map +0 -1
- package/lib/types/activities/generateOrAssignContentType.d.ts.map +0 -1
- package/lib/types/activities/getObjectFromStore.d.ts.map +0 -1
- package/lib/types/activities/handleError.d.ts.map +0 -1
- package/lib/types/activities/index-dsl.d.ts +0 -31
- package/lib/types/activities/index-dsl.d.ts.map +0 -1
- package/lib/types/activities/index.d.ts.map +0 -1
- package/lib/types/activities/loadChildWorkflowSpec.d.ts.map +0 -1
- package/lib/types/activities/media/prepareAudio.d.ts.map +0 -1
- package/lib/types/activities/media/prepareVideo.d.ts.map +0 -1
- package/lib/types/activities/media/probeMediaStreams.d.ts.map +0 -1
- package/lib/types/activities/media/processPdfWithTextract.d.ts.map +0 -1
- package/lib/types/activities/media/saveGladiaTranscription.d.ts.map +0 -1
- package/lib/types/activities/media/transcribeMediaWithGladia.d.ts.map +0 -1
- package/lib/types/activities/mergeChildArtifacts.d.ts.map +0 -1
- package/lib/types/activities/notifyWebhook.d.ts.map +0 -1
- package/lib/types/activities/rateLimiter.d.ts.map +0 -1
- package/lib/types/activities/renditions/generateImageRendition.d.ts.map +0 -1
- package/lib/types/activities/renditions/generateVideoRendition.d.ts.map +0 -1
- package/lib/types/activities/resolveRemoteActivities.d.ts.map +0 -1
- package/lib/types/activities/setDocumentStatus.d.ts.map +0 -1
- package/lib/types/bulk-import.d.ts.map +0 -1
- package/lib/types/conversion/TextractProcessor.d.ts.map +0 -1
- package/lib/types/conversion/image.d.ts.map +0 -1
- package/lib/types/conversion/markitdown.d.ts.map +0 -1
- package/lib/types/conversion/mutool.d.ts.map +0 -1
- package/lib/types/conversion/pandoc.d.ts.map +0 -1
- package/lib/types/dsl/conditions.d.ts +0 -2
- package/lib/types/dsl/conditions.d.ts.map +0 -1
- package/lib/types/dsl/dsl-workflow.d.ts.map +0 -1
- package/lib/types/dsl/dslProxyActivities.d.ts +0 -10
- package/lib/types/dsl/dslProxyActivities.d.ts.map +0 -1
- package/lib/types/dsl/projections.d.ts +0 -4
- package/lib/types/dsl/projections.d.ts.map +0 -1
- package/lib/types/dsl/setup/ActivityContext.d.ts.map +0 -1
- package/lib/types/dsl/setup/fetch/DataProvider.d.ts.map +0 -1
- package/lib/types/dsl/setup/fetch/index.d.ts +0 -6
- package/lib/types/dsl/setup/fetch/index.d.ts.map +0 -1
- package/lib/types/dsl/setup/fetch/providers.d.ts.map +0 -1
- package/lib/types/dsl/test/test-child-workflow.d.ts +0 -4
- package/lib/types/dsl/test/test-child-workflow.d.ts.map +0 -1
- package/lib/types/dsl/validation.d.ts.map +0 -1
- package/lib/types/dsl/vars.d.ts.map +0 -1
- package/lib/types/dsl/walk.d.ts +0 -18
- package/lib/types/dsl/walk.d.ts.map +0 -1
- package/lib/types/dsl.d.ts +0 -4
- package/lib/types/dsl.d.ts.map +0 -1
- package/lib/types/errors.d.ts.map +0 -1
- package/lib/types/index.d.ts +0 -38
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/extractToc.d.ts +0 -10
- package/lib/types/iterative-generation/activities/extractToc.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/finalizeOutput.d.ts +0 -3
- package/lib/types/iterative-generation/activities/finalizeOutput.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/generatePart.d.ts +0 -3
- package/lib/types/iterative-generation/activities/generatePart.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/generateToc.d.ts +0 -4
- package/lib/types/iterative-generation/activities/generateToc.d.ts.map +0 -1
- package/lib/types/iterative-generation/activities/index.d.ts +0 -5
- package/lib/types/iterative-generation/activities/index.d.ts.map +0 -1
- package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts +0 -3
- package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts.map +0 -1
- package/lib/types/iterative-generation/types.d.ts +0 -79
- package/lib/types/iterative-generation/types.d.ts.map +0 -1
- package/lib/types/iterative-generation/utils.d.ts +0 -26
- package/lib/types/iterative-generation/utils.d.ts.map +0 -1
- package/lib/types/result-types.d.ts.map +0 -1
- package/lib/types/security/ssrf.d.ts.map +0 -1
- package/lib/types/system/notifyWebhookWorkflow.d.ts +0 -8
- package/lib/types/system/notifyWebhookWorkflow.d.ts.map +0 -1
- package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts.map +0 -1
- package/lib/types/utils/auth.d.ts.map +0 -1
- package/lib/types/utils/blobs.d.ts.map +0 -1
- package/lib/types/utils/chunks.d.ts.map +0 -1
- package/lib/types/utils/client.d.ts +0 -8
- package/lib/types/utils/client.d.ts.map +0 -1
- package/lib/types/utils/expand-vars.d.ts.map +0 -1
- package/lib/types/utils/memory.d.ts +0 -8
- package/lib/types/utils/memory.d.ts.map +0 -1
- package/lib/types/utils/renditions.d.ts.map +0 -1
- package/lib/types/utils/storage.d.ts.map +0 -1
- package/lib/types/utils/text-preview-utils.d.ts.map +0 -1
- package/lib/types/utils/tokens.d.ts.map +0 -1
- package/lib/types/vars.d.ts +0 -3
- package/lib/types/vars.d.ts.map +0 -1
- package/lib/types/workflows.d.ts +0 -8
- package/lib/types/workflows.d.ts.map +0 -1
- package/src/iterative-generation/activities/extractToc.ts +0 -63
- package/src/iterative-generation/activities/finalizeOutput.ts +0 -100
- package/src/iterative-generation/activities/generatePart.ts +0 -123
- package/src/iterative-generation/activities/generateToc.ts +0 -116
- package/src/iterative-generation/activities/index.ts +0 -4
- package/src/iterative-generation/iterativeGenerationWorkflow.ts +0 -68
- package/src/iterative-generation/types.ts +0 -99
- package/src/iterative-generation/utils.ts +0 -126
- package/src/utils/memory.ts +0 -61
- /package/lib/{esm/bulk-import.js → bulk-import.js} +0 -0
- /package/lib/{types/conversion → conversion}/image.d.ts +0 -0
- /package/lib/{types/conversion → conversion}/markitdown.d.ts +0 -0
- /package/lib/{types/conversion → conversion}/mutool.d.ts +0 -0
- /package/lib/{types/conversion → conversion}/pandoc.d.ts +0 -0
- /package/lib/{types/result-types.d.ts → result-types.d.ts} +0 -0
- /package/lib/{esm/result-types.js → result-types.js} +0 -0
- /package/lib/{types/security → security}/ssrf.d.ts +0 -0
- /package/lib/{esm/security → security}/ssrf.js +0 -0
- /package/lib/{esm/utils → utils}/auth.js +0 -0
- /package/lib/{types/utils → utils}/chunks.d.ts +0 -0
|
@@ -1,69 +1,82 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { activityInfo, ApplicationFailure, log } from "@temporalio/activity";
|
|
3
|
-
import { VertesiaClient } from "@vertesia/client";
|
|
4
|
-
import { NodeStreamSource } from "@vertesia/client/node";
|
|
1
|
+
import { Readable } from 'node:stream';
|
|
5
2
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
type CompletionResult,
|
|
4
|
+
type HttpTimeoutOptions,
|
|
5
|
+
type JSONSchema,
|
|
6
|
+
LlumiverseError,
|
|
7
|
+
type ModelOptions,
|
|
8
|
+
} from '@llumiverse/common';
|
|
9
|
+
import { ApplicationFailure, activityInfo, log } from '@temporalio/activity';
|
|
10
|
+
import type { VertesiaClient } from '@vertesia/client';
|
|
11
|
+
import { NodeStreamSource } from '@vertesia/client/node';
|
|
12
|
+
import {
|
|
13
|
+
type DSLActivityExecutionPayload,
|
|
14
|
+
type DSLActivitySpec,
|
|
15
|
+
type ExecutionRun,
|
|
9
16
|
ExecutionRunStatus,
|
|
10
|
-
ExecutionRunWorkflow,
|
|
11
|
-
InteractionExecutionConfiguration,
|
|
12
|
-
RunSearchPayload,
|
|
13
|
-
} from
|
|
14
|
-
import { projectResult } from
|
|
15
|
-
import { setupActivity } from
|
|
16
|
-
import { ActivityParamInvalidError, ActivityParamNotFoundError, ResourceExhaustedError } from
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
17
|
+
type ExecutionRunWorkflow,
|
|
18
|
+
type InteractionExecutionConfiguration,
|
|
19
|
+
type RunSearchPayload,
|
|
20
|
+
} from '@vertesia/common';
|
|
21
|
+
import { projectResult } from '../dsl/projections.js';
|
|
22
|
+
import { setupActivity } from '../dsl/setup/ActivityContext.js';
|
|
23
|
+
import { ActivityParamInvalidError, ActivityParamNotFoundError, ResourceExhaustedError } from '../errors.js';
|
|
24
|
+
import { activityWorkflowExecution } from '../utils/activity-info.js';
|
|
25
|
+
import { type TruncateSpec, truncByMaxTokens } from '../utils/tokens.js';
|
|
19
26
|
|
|
20
27
|
//Example:
|
|
21
|
-
//@ts-
|
|
22
|
-
const
|
|
23
|
-
name:
|
|
24
|
-
import: [
|
|
28
|
+
//@ts-expect-error
|
|
29
|
+
const _JSON: DSLActivitySpec = {
|
|
30
|
+
name: 'executeInteraction',
|
|
31
|
+
import: ['defaultModel', 'guidlineId', 'docTypeId'],
|
|
25
32
|
params: {
|
|
26
|
-
defaultModel:
|
|
27
|
-
interactionName:
|
|
33
|
+
defaultModel: '${model}',
|
|
34
|
+
interactionName: 'GenerateSummary',
|
|
28
35
|
model: "${defaultModel ?? 'gpt4'}",
|
|
29
|
-
environment:
|
|
36
|
+
environment: '13456',
|
|
30
37
|
max_tokens: 100,
|
|
31
38
|
temperature: 0.5,
|
|
32
|
-
tags: [
|
|
33
|
-
result_schema:
|
|
39
|
+
tags: ['test'],
|
|
40
|
+
result_schema: '${docType.object_schema}',
|
|
34
41
|
prompt_data: {
|
|
35
|
-
documents:
|
|
36
|
-
guidline:
|
|
42
|
+
documents: '${documents}',
|
|
43
|
+
guidline: '${guidline.text}',
|
|
37
44
|
},
|
|
38
45
|
},
|
|
39
46
|
fetch: {
|
|
40
47
|
documents: {
|
|
41
|
-
type:
|
|
48
|
+
type: 'document',
|
|
42
49
|
query: {
|
|
43
|
-
id: { $in:
|
|
50
|
+
id: { $in: '${objectIds}' },
|
|
44
51
|
},
|
|
45
|
-
select:
|
|
52
|
+
select: '+text',
|
|
46
53
|
},
|
|
47
54
|
guidline: {
|
|
48
|
-
type:
|
|
55
|
+
type: 'document',
|
|
49
56
|
limit: 1,
|
|
50
57
|
query: {
|
|
51
|
-
id:
|
|
58
|
+
id: '${guidlineId}',
|
|
52
59
|
},
|
|
53
|
-
select:
|
|
54
|
-
on_not_found:
|
|
60
|
+
select: '+text',
|
|
61
|
+
on_not_found: 'throw',
|
|
55
62
|
},
|
|
56
63
|
docType: {
|
|
57
|
-
type:
|
|
64
|
+
type: 'document_type',
|
|
58
65
|
limit: 1,
|
|
59
66
|
query: {
|
|
60
|
-
id:
|
|
67
|
+
id: '${docTypeId}',
|
|
61
68
|
},
|
|
62
|
-
select:
|
|
69
|
+
select: '+object_schema',
|
|
63
70
|
},
|
|
64
71
|
},
|
|
65
72
|
};
|
|
66
73
|
export interface InteractionExecutionParams {
|
|
74
|
+
/**
|
|
75
|
+
* Execution configuration shared across workflow-driven interaction calls.
|
|
76
|
+
* Activity-level fields below override this object for backward compatibility.
|
|
77
|
+
*/
|
|
78
|
+
config?: InteractionExecutionConfiguration;
|
|
79
|
+
|
|
67
80
|
/**
|
|
68
81
|
* The environment to use. If not specified the project default environment will be used.
|
|
69
82
|
* If the latter is not specified an exception will be thrown.
|
|
@@ -79,7 +92,7 @@ export interface InteractionExecutionParams {
|
|
|
79
92
|
/**
|
|
80
93
|
* Request a JSON schema for the result
|
|
81
94
|
*/
|
|
82
|
-
result_schema?:
|
|
95
|
+
result_schema?: JSONSchema | null;
|
|
83
96
|
|
|
84
97
|
/** Wether to validate the result against the schema */
|
|
85
98
|
validate_result?: boolean;
|
|
@@ -99,6 +112,11 @@ export interface InteractionExecutionParams {
|
|
|
99
112
|
*/
|
|
100
113
|
model_options?: ModelOptions;
|
|
101
114
|
|
|
115
|
+
/**
|
|
116
|
+
* Per-run HTTP timeouts for upstream LLM-provider calls.
|
|
117
|
+
*/
|
|
118
|
+
http_timeout?: HttpTimeoutOptions;
|
|
119
|
+
|
|
102
120
|
/**
|
|
103
121
|
* activity won't be retried if it fails due to resource exhaustion (429)
|
|
104
122
|
*/
|
|
@@ -113,18 +131,18 @@ export interface InteractionExecutionParams {
|
|
|
113
131
|
export interface ExecuteInteractionParams extends InteractionExecutionParams {
|
|
114
132
|
//TODO rename to interaction as in InteractionAsyncExecutionPayload
|
|
115
133
|
interactionName: string;
|
|
116
|
-
prompt_data: Record<string,
|
|
134
|
+
prompt_data: Record<string, unknown>;
|
|
117
135
|
/**
|
|
118
136
|
* Additional prompt data passed by the workflow configuration. This will be merged with prompt_data if any.
|
|
119
137
|
* You should use `import: ["static_prompt_data"]` to import the workflow prompt data as static_prompt_data param.
|
|
120
138
|
* Otherwise the workflow prompt data will be ignored.
|
|
121
139
|
*/
|
|
122
|
-
static_prompt_data?: Record<string,
|
|
140
|
+
static_prompt_data?: Record<string, unknown>;
|
|
123
141
|
truncate?: Record<string, TruncateSpec>;
|
|
124
142
|
}
|
|
125
143
|
|
|
126
144
|
export interface ExecuteInteraction extends DSLActivitySpec<ExecuteInteractionParams> {
|
|
127
|
-
name:
|
|
145
|
+
name: 'executeInteraction';
|
|
128
146
|
}
|
|
129
147
|
|
|
130
148
|
export async function executeInteraction(payload: DSLActivityExecutionPayload<ExecuteInteractionParams>) {
|
|
@@ -136,14 +154,17 @@ export async function executeInteraction(payload: DSLActivityExecutionPayload<Ex
|
|
|
136
154
|
}
|
|
137
155
|
|
|
138
156
|
if (!interactionName) {
|
|
139
|
-
log.error(
|
|
140
|
-
throw new ActivityParamNotFoundError(
|
|
157
|
+
log.error('Missing interactionName', { params });
|
|
158
|
+
throw new ActivityParamNotFoundError('interactionName', payload.activity);
|
|
141
159
|
}
|
|
142
160
|
|
|
143
161
|
if (params.truncate) {
|
|
144
162
|
const truncate = params.truncate;
|
|
145
163
|
for (const [key, value] of Object.entries(truncate)) {
|
|
146
|
-
|
|
164
|
+
const promptValue = prompt_data[key];
|
|
165
|
+
if (typeof promptValue === 'string') {
|
|
166
|
+
prompt_data[key] = truncByMaxTokens(promptValue, value);
|
|
167
|
+
}
|
|
147
168
|
}
|
|
148
169
|
}
|
|
149
170
|
|
|
@@ -159,35 +180,31 @@ export async function executeInteraction(payload: DSLActivityExecutionPayload<Ex
|
|
|
159
180
|
let completionResult: CompletionResult[] = res.result;
|
|
160
181
|
|
|
161
182
|
// Handle image uploads if the result contains base64 images
|
|
162
|
-
const imageResults = completionResult.filter(r => r.type ===
|
|
183
|
+
const imageResults = completionResult.filter((r) => r.type === 'image');
|
|
163
184
|
if (imageResults.length > 0) {
|
|
164
185
|
const uploadedImages = await Promise.all(
|
|
165
186
|
completionResult.map(async (item, index) => {
|
|
166
|
-
if (item.type ===
|
|
187
|
+
if (item.type === 'image') {
|
|
167
188
|
const image = item.value;
|
|
168
189
|
// Extract base64 data and create buffer
|
|
169
|
-
const base64Data = image.replace(/^data:image\/[a-z]+;base64,/,
|
|
190
|
+
const base64Data = image.replace(/^data:image\/[a-z]+;base64,/, '');
|
|
170
191
|
const buffer = Buffer.from(base64Data, 'base64');
|
|
171
192
|
|
|
172
193
|
// Generate filename
|
|
173
|
-
const { runId } =
|
|
194
|
+
const { runId } = activityWorkflowExecution();
|
|
174
195
|
const { activityId } = activityInfo();
|
|
175
196
|
const filename = `generated-image-${runId}-${activityId}-${index}.png`;
|
|
176
197
|
|
|
177
198
|
// Create a readable stream from the buffer
|
|
178
199
|
const stream = Readable.from(buffer);
|
|
179
200
|
|
|
180
|
-
const source = new NodeStreamSource(
|
|
181
|
-
stream,
|
|
182
|
-
filename,
|
|
183
|
-
"image/png",
|
|
184
|
-
);
|
|
201
|
+
const source = new NodeStreamSource(stream, filename, 'image/png');
|
|
185
202
|
|
|
186
203
|
const file = await client.files.uploadFile(source);
|
|
187
|
-
return { type:
|
|
204
|
+
return { type: 'image', value: file } as CompletionResult;
|
|
188
205
|
}
|
|
189
206
|
return item;
|
|
190
|
-
})
|
|
207
|
+
}),
|
|
191
208
|
);
|
|
192
209
|
completionResult = uploadedImages;
|
|
193
210
|
}
|
|
@@ -197,51 +214,60 @@ export async function executeInteraction(payload: DSLActivityExecutionPayload<Ex
|
|
|
197
214
|
status: res.status,
|
|
198
215
|
result: completionResult,
|
|
199
216
|
});
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
log.error(`Failed to execute interaction ${interactionName}`, { error });
|
|
203
|
-
if (
|
|
204
|
-
throw new ResourceExhaustedError(
|
|
205
|
-
} else if (
|
|
206
|
-
// 4xx HTTP errors (except 429 rate-limit) are permanent client errors (e.g. model not found, invalid request).
|
|
207
|
-
// Errors explicitly marked as non-retryable (e.g. LlumiverseError) also fall here.
|
|
208
|
-
// They will not be resolved by retrying.
|
|
209
|
-
throw ApplicationFailure.create({
|
|
210
|
-
message: `Interaction Execution failed ${interactionName}: ${error.message}`,
|
|
211
|
-
nonRetryable: true,
|
|
212
|
-
});
|
|
213
|
-
} else if (error.message.includes("Failed to validate merged prompt schema")) {
|
|
217
|
+
} catch (error: unknown) {
|
|
218
|
+
const executionError = toExecutionError(error);
|
|
219
|
+
log.error(`Failed to execute interaction ${interactionName}`, { error: executionError });
|
|
220
|
+
if (executionError.statusCode === 429 && params.exit_on_resource_exhaustion) {
|
|
221
|
+
throw new ResourceExhaustedError(executionError.statusCode, 'Resource exhausted - rate limit exceeded');
|
|
222
|
+
} else if (executionError.message.includes('Failed to validate merged prompt schema')) {
|
|
214
223
|
//issue with the input data, don't retry
|
|
215
|
-
throw new ActivityParamInvalidError(
|
|
216
|
-
} else if (
|
|
224
|
+
throw new ActivityParamInvalidError('prompt_data', payload.activity, executionError.message);
|
|
225
|
+
} else if (executionError.message.includes('modelId: Path `modelId` is required')) {
|
|
217
226
|
//issue with the input data, don't retry
|
|
218
|
-
throw new ActivityParamInvalidError(
|
|
227
|
+
throw new ActivityParamInvalidError('model', payload.activity, executionError.message);
|
|
219
228
|
}
|
|
220
|
-
|
|
229
|
+
|
|
221
230
|
// Check retryability from error object (set by executeInteractionFromActivity)
|
|
222
231
|
// or from LlumiverseError instance (direct driver errors in some paths)
|
|
223
|
-
const isRetryable =
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
232
|
+
const isRetryable =
|
|
233
|
+
executionError.retryable !== undefined
|
|
234
|
+
? executionError.retryable
|
|
235
|
+
: error instanceof LlumiverseError
|
|
236
|
+
? error.retryable !== false
|
|
237
|
+
: undefined;
|
|
238
|
+
|
|
227
239
|
if (isRetryable !== undefined) {
|
|
228
240
|
if (isRetryable) {
|
|
229
|
-
log.debug('Marking error as retryable', { interactionName, errorCode:
|
|
241
|
+
log.debug('Marking error as retryable', { interactionName, errorCode: executionError.errorCode });
|
|
230
242
|
throw ApplicationFailure.create({
|
|
231
|
-
message: `Interaction Execution failed ${interactionName}: ${
|
|
243
|
+
message: `Interaction Execution failed ${interactionName}: ${executionError.message}`,
|
|
232
244
|
nonRetryable: false,
|
|
233
245
|
});
|
|
234
246
|
} else {
|
|
235
|
-
log.debug('Marking error as non-retryable', { interactionName, errorCode:
|
|
247
|
+
log.debug('Marking error as non-retryable', { interactionName, errorCode: executionError.errorCode });
|
|
236
248
|
throw ApplicationFailure.create({
|
|
237
|
-
message: `Non-retryable Interaction Execution failed ${interactionName}: ${
|
|
249
|
+
message: `Non-retryable Interaction Execution failed ${interactionName}: ${executionError.message}`,
|
|
238
250
|
nonRetryable: true,
|
|
239
251
|
});
|
|
240
252
|
}
|
|
241
253
|
}
|
|
242
|
-
|
|
254
|
+
|
|
255
|
+
if (
|
|
256
|
+
is4xxNonRetryable(executionError.status) ||
|
|
257
|
+
is4xxNonRetryable(executionError.statusCode) ||
|
|
258
|
+
is4xxNonRetryable(executionError.code)
|
|
259
|
+
) {
|
|
260
|
+
// 4xx HTTP errors (except retryable statuses) are permanent client errors
|
|
261
|
+
// (e.g. model not found, invalid request). The explicit retryability
|
|
262
|
+
// flag above wins when a provider marks a 4xx as transient.
|
|
263
|
+
throw ApplicationFailure.create({
|
|
264
|
+
message: `Interaction Execution failed ${interactionName}: ${executionError.message}`,
|
|
265
|
+
nonRetryable: true,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
|
|
243
269
|
// Unknown retryability - rethrow as generic error (Temporal will use default retry policy)
|
|
244
|
-
throw new Error(`Interaction Execution failed ${interactionName}: ${
|
|
270
|
+
throw new Error(`Interaction Execution failed ${interactionName}: ${executionError.message}`);
|
|
245
271
|
}
|
|
246
272
|
}
|
|
247
273
|
|
|
@@ -249,38 +275,39 @@ export async function executeInteractionFromActivity(
|
|
|
249
275
|
client: VertesiaClient,
|
|
250
276
|
interactionName: string,
|
|
251
277
|
params: InteractionExecutionParams,
|
|
252
|
-
prompt_data:
|
|
278
|
+
prompt_data: Record<string, unknown>,
|
|
253
279
|
debug?: boolean,
|
|
254
280
|
) {
|
|
255
281
|
const userTags = params.tags;
|
|
256
282
|
const info = activityInfo();
|
|
257
|
-
const
|
|
258
|
-
|
|
283
|
+
const execution = activityWorkflowExecution(info);
|
|
284
|
+
const runId = execution.runId;
|
|
285
|
+
let tags = ['workflow'];
|
|
259
286
|
if (userTags) {
|
|
260
287
|
tags = tags.concat(userTags);
|
|
261
288
|
}
|
|
262
289
|
const workflow: ExecutionRunWorkflow = {
|
|
263
|
-
run_id:
|
|
264
|
-
workflow_id:
|
|
290
|
+
run_id: execution.runId,
|
|
291
|
+
workflow_id: execution.workflowId,
|
|
265
292
|
activity_type: info.activityType,
|
|
266
293
|
};
|
|
267
294
|
|
|
268
|
-
let previousStudioExecutionRun: ExecutionRun | undefined
|
|
295
|
+
let previousStudioExecutionRun: ExecutionRun | undefined;
|
|
269
296
|
if (params.include_previous_error) {
|
|
270
297
|
//retrieve last failed run if any
|
|
271
298
|
if (info.attempt > 1) {
|
|
272
|
-
log.info(
|
|
299
|
+
log.info('Retrying, searching for previous run', { prev_run_id: runId });
|
|
273
300
|
const payload: RunSearchPayload = {
|
|
274
301
|
query: { workflow_run_ids: [runId] },
|
|
275
302
|
limit: 1,
|
|
276
303
|
};
|
|
277
304
|
const previousRun = await client.runs.search(payload).then((res) => {
|
|
278
|
-
log.info(
|
|
305
|
+
log.info('Search results', { results: res });
|
|
279
306
|
return res ? (res[0] ?? undefined) : undefined;
|
|
280
307
|
});
|
|
281
308
|
|
|
282
309
|
if (previousRun) {
|
|
283
|
-
log.info(
|
|
310
|
+
log.info('Found previous run', { previousRun });
|
|
284
311
|
previousStudioExecutionRun = await client.runs.retrieve(previousRun.id);
|
|
285
312
|
}
|
|
286
313
|
}
|
|
@@ -289,11 +316,14 @@ export async function executeInteractionFromActivity(
|
|
|
289
316
|
log.info(`Found previous run error`, { error: previousStudioExecutionRun?.error });
|
|
290
317
|
}
|
|
291
318
|
|
|
319
|
+
const configDefaults = params.config ?? {};
|
|
292
320
|
const config: InteractionExecutionConfiguration = {
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
321
|
+
...configDefaults,
|
|
322
|
+
environment: params.environment ?? configDefaults.environment,
|
|
323
|
+
model: params.model ?? configDefaults.model,
|
|
324
|
+
model_options: params.model_options ?? configDefaults.model_options,
|
|
325
|
+
http_timeout: params.http_timeout ?? configDefaults.http_timeout,
|
|
326
|
+
do_validate: params.validate_result ?? configDefaults.do_validate,
|
|
297
327
|
};
|
|
298
328
|
const data = {
|
|
299
329
|
...prompt_data,
|
|
@@ -324,15 +354,16 @@ export async function executeInteractionFromActivity(
|
|
|
324
354
|
|
|
325
355
|
if (res.error || res.status === ExecutionRunStatus.failed) {
|
|
326
356
|
log.error(`Error executing interaction ${interactionName}`, { error: res.error });
|
|
327
|
-
|
|
357
|
+
|
|
328
358
|
// Create error with retryability information
|
|
329
359
|
const errorMessage = `Interaction Execution failed ${interactionName}: ${res.error?.message || 'Unknown error'}`;
|
|
330
360
|
const error = new Error(errorMessage);
|
|
331
|
-
|
|
361
|
+
|
|
332
362
|
// Attach retryable property so the catch block can access it
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
363
|
+
const executionError = error as Error & { retryable?: boolean; errorCode?: string };
|
|
364
|
+
executionError.retryable = res.error?.retryable;
|
|
365
|
+
executionError.errorCode = res.error?.code;
|
|
366
|
+
|
|
336
367
|
throw error;
|
|
337
368
|
}
|
|
338
369
|
|
|
@@ -341,9 +372,25 @@ export async function executeInteractionFromActivity(
|
|
|
341
372
|
|
|
342
373
|
/**
|
|
343
374
|
* Returns true for 4xx status codes that indicate permanent client errors.
|
|
344
|
-
* 429 (Too Many Requests)
|
|
375
|
+
* 412 (Precondition Failed) and 429 (Too Many Requests) are excluded because
|
|
376
|
+
* they are retryable.
|
|
345
377
|
*/
|
|
346
378
|
function is4xxNonRetryable(code: number | undefined): boolean {
|
|
347
379
|
if (code === undefined || typeof code !== 'number') return false;
|
|
348
|
-
return code >= 400 && code < 500 && code !== 429;
|
|
380
|
+
return code >= 400 && code < 500 && code !== 412 && code !== 429;
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
interface ExecutionError extends Error {
|
|
384
|
+
status?: number;
|
|
385
|
+
statusCode?: number;
|
|
386
|
+
code?: number;
|
|
387
|
+
retryable?: boolean;
|
|
388
|
+
errorCode?: unknown;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
function toExecutionError(error: unknown): ExecutionError {
|
|
392
|
+
if (error instanceof Error) {
|
|
393
|
+
return error as ExecutionError;
|
|
394
|
+
}
|
|
395
|
+
return new Error(String(error)) as ExecutionError;
|
|
349
396
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { MockActivityEnvironment } from
|
|
2
|
-
import { ContentEventName, DSLActivityExecutionPayload } from
|
|
3
|
-
import { beforeAll, beforeEach, describe, expect, it, vi } from
|
|
4
|
-
import {
|
|
1
|
+
import { MockActivityEnvironment } from '@temporalio/testing';
|
|
2
|
+
import { ContentEventName, type DSLActivityExecutionPayload } from '@vertesia/common';
|
|
3
|
+
import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
+
import { type ExecuteRemoteActivityParams, executeRemoteActivity } from './executeRemoteActivity.js';
|
|
5
5
|
|
|
6
|
-
vi.stubGlobal(
|
|
6
|
+
vi.stubGlobal('fetch', vi.fn());
|
|
7
7
|
|
|
8
|
-
vi.mock(
|
|
8
|
+
vi.mock('../utils/client.js', () => ({
|
|
9
9
|
getVertesiaClient: vi.fn().mockReturnValue({
|
|
10
10
|
apps: {
|
|
11
11
|
validateUrl: vi.fn().mockResolvedValue({ valid: true }),
|
|
@@ -27,122 +27,116 @@ beforeEach(() => {
|
|
|
27
27
|
const createPayload = (
|
|
28
28
|
overrides: Partial<ExecuteRemoteActivityParams> = {},
|
|
29
29
|
): DSLActivityExecutionPayload<ExecuteRemoteActivityParams> => {
|
|
30
|
-
const params
|
|
31
|
-
url:
|
|
32
|
-
activity_name:
|
|
33
|
-
params: { text:
|
|
34
|
-
app_install_id:
|
|
35
|
-
app_name:
|
|
30
|
+
const params = {
|
|
31
|
+
url: 'https://tool-server.test/api/activities/nlp',
|
|
32
|
+
activity_name: 'analyze_sentiment',
|
|
33
|
+
params: { text: 'Hello world' },
|
|
34
|
+
app_install_id: 'install-123',
|
|
35
|
+
app_name: 'nlp-app',
|
|
36
36
|
...overrides,
|
|
37
|
-
};
|
|
37
|
+
} satisfies ExecuteRemoteActivityParams;
|
|
38
38
|
return {
|
|
39
|
-
auth_token:
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
auth_token:
|
|
40
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwOi8vbW9jay10b2tlbi1zZXJ2ZXIiLCJzdWIiOiJ0ZXN0In0.sig',
|
|
41
|
+
account_id: 'acc-123',
|
|
42
|
+
project_id: 'proj-456',
|
|
42
43
|
params,
|
|
43
44
|
config: {
|
|
44
|
-
studio_url:
|
|
45
|
-
store_url:
|
|
45
|
+
studio_url: 'http://mock-studio',
|
|
46
|
+
store_url: 'http://mock-store',
|
|
46
47
|
},
|
|
47
|
-
workflow_name:
|
|
48
|
+
workflow_name: 'TestWorkflow',
|
|
48
49
|
event: ContentEventName.create,
|
|
49
50
|
objectIds: [],
|
|
50
51
|
vars: {},
|
|
51
|
-
activity: { name:
|
|
52
|
+
activity: { name: 'executeRemoteActivity', params: params as unknown as Record<string, unknown> },
|
|
52
53
|
};
|
|
53
54
|
};
|
|
54
55
|
|
|
55
|
-
describe(
|
|
56
|
-
it(
|
|
56
|
+
describe('executeRemoteActivity', () => {
|
|
57
|
+
it('should post correct payload and return result on success', async () => {
|
|
57
58
|
mockFetch.mockResolvedValueOnce(
|
|
58
|
-
new Response(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
),
|
|
59
|
+
new Response(JSON.stringify({ result: { score: 0.95 }, is_error: false }), {
|
|
60
|
+
status: 200,
|
|
61
|
+
headers: { 'Content-Type': 'application/json' },
|
|
62
|
+
}),
|
|
62
63
|
);
|
|
63
64
|
|
|
64
|
-
const result = await testEnv.run(executeRemoteActivity, createPayload());
|
|
65
|
+
const result: unknown = await testEnv.run(executeRemoteActivity, createPayload());
|
|
65
66
|
expect(result).toEqual({ score: 0.95 });
|
|
66
67
|
|
|
67
68
|
expect(mockFetch).toHaveBeenCalledOnce();
|
|
68
69
|
const [url, opts] = mockFetch.mock.calls[0];
|
|
69
|
-
expect(url).toBe(
|
|
70
|
-
expect(opts?.method).toBe(
|
|
70
|
+
expect(url).toBe('https://tool-server.test/api/activities/nlp');
|
|
71
|
+
expect(opts?.method).toBe('POST');
|
|
71
72
|
expect(opts?.headers).toMatchObject({
|
|
72
|
-
|
|
73
|
-
Accept:
|
|
73
|
+
'Content-Type': 'application/json',
|
|
74
|
+
Accept: 'application/json',
|
|
74
75
|
});
|
|
75
76
|
// Verify the auth header is forwarded
|
|
76
|
-
expect((opts?.headers as Record<string, string>)
|
|
77
|
+
expect((opts?.headers as Record<string, string>).Authorization).toMatch(/^Bearer /);
|
|
77
78
|
|
|
78
79
|
// Verify the body structure
|
|
79
80
|
const body = JSON.parse(opts?.body as string);
|
|
80
|
-
expect(body.activity_name).toBe(
|
|
81
|
-
expect(body.params).toEqual({ text:
|
|
82
|
-
expect(body.metadata.app_install_id).toBe(
|
|
83
|
-
expect(body.metadata.endpoints).toEqual({ studio:
|
|
81
|
+
expect(body.activity_name).toBe('analyze_sentiment');
|
|
82
|
+
expect(body.params).toEqual({ text: 'Hello world' });
|
|
83
|
+
expect(body.metadata.app_install_id).toBe('install-123');
|
|
84
|
+
expect(body.metadata.endpoints).toEqual({ studio: 'http://mock-studio', store: 'http://mock-store' });
|
|
84
85
|
// auth_token should NOT be in the payload (it's in the Authorization header)
|
|
85
86
|
expect(body.auth_token).toBeUndefined();
|
|
86
87
|
});
|
|
87
88
|
|
|
88
|
-
it(
|
|
89
|
+
it('should throw on HTTP error (4xx/5xx)', async () => {
|
|
89
90
|
mockFetch.mockResolvedValueOnce(
|
|
90
|
-
new Response(
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
),
|
|
91
|
+
new Response(JSON.stringify({ error: 'Activity not found', is_error: true }), {
|
|
92
|
+
status: 404,
|
|
93
|
+
statusText: 'Not Found',
|
|
94
|
+
}),
|
|
94
95
|
);
|
|
95
96
|
|
|
96
97
|
await expect(testEnv.run(executeRemoteActivity, createPayload())).rejects.toThrow(
|
|
97
|
-
|
|
98
|
+
'Remote activity analyze_sentiment failed: Activity not found',
|
|
98
99
|
);
|
|
99
100
|
});
|
|
100
101
|
|
|
101
|
-
it(
|
|
102
|
-
mockFetch.mockRejectedValueOnce(new Error(
|
|
102
|
+
it('should throw on network error (for Temporal retry)', async () => {
|
|
103
|
+
mockFetch.mockRejectedValueOnce(new Error('Connection refused'));
|
|
103
104
|
|
|
104
105
|
await expect(testEnv.run(executeRemoteActivity, createPayload())).rejects.toThrow(
|
|
105
106
|
/Failed to reach remote activity endpoint/,
|
|
106
107
|
);
|
|
107
108
|
});
|
|
108
109
|
|
|
109
|
-
it(
|
|
110
|
-
mockFetch.mockResolvedValueOnce(
|
|
111
|
-
new Response("not json", { status: 200 }),
|
|
112
|
-
);
|
|
110
|
+
it('should throw on invalid JSON response', async () => {
|
|
111
|
+
mockFetch.mockResolvedValueOnce(new Response('not json', { status: 200 }));
|
|
113
112
|
|
|
114
|
-
await expect(testEnv.run(executeRemoteActivity, createPayload())).rejects.toThrow(
|
|
115
|
-
/returned invalid JSON/,
|
|
116
|
-
);
|
|
113
|
+
await expect(testEnv.run(executeRemoteActivity, createPayload())).rejects.toThrow(/returned invalid JSON/);
|
|
117
114
|
});
|
|
118
115
|
|
|
119
|
-
it(
|
|
116
|
+
it('should throw when response indicates is_error', async () => {
|
|
120
117
|
mockFetch.mockResolvedValueOnce(
|
|
121
|
-
new Response(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
),
|
|
118
|
+
new Response(JSON.stringify({ result: null, is_error: true, error: 'Something went wrong' }), {
|
|
119
|
+
status: 200,
|
|
120
|
+
headers: { 'Content-Type': 'application/json' },
|
|
121
|
+
}),
|
|
125
122
|
);
|
|
126
123
|
|
|
127
124
|
await expect(testEnv.run(executeRemoteActivity, createPayload())).rejects.toThrow(
|
|
128
|
-
|
|
125
|
+
'Remote activity analyze_sentiment: Something went wrong',
|
|
129
126
|
);
|
|
130
127
|
});
|
|
131
128
|
|
|
132
|
-
it(
|
|
129
|
+
it('should forward app_settings in metadata', async () => {
|
|
133
130
|
mockFetch.mockResolvedValueOnce(
|
|
134
|
-
new Response(
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
),
|
|
131
|
+
new Response(JSON.stringify({ result: 'ok', is_error: false }), {
|
|
132
|
+
status: 200,
|
|
133
|
+
headers: { 'Content-Type': 'application/json' },
|
|
134
|
+
}),
|
|
138
135
|
);
|
|
139
136
|
|
|
140
|
-
await testEnv.run(
|
|
141
|
-
executeRemoteActivity,
|
|
142
|
-
createPayload({ app_settings: { api_key: "secret" } }),
|
|
143
|
-
);
|
|
137
|
+
await testEnv.run(executeRemoteActivity, createPayload({ app_settings: { api_key: 'secret' } }));
|
|
144
138
|
|
|
145
139
|
const body = JSON.parse(mockFetch.mock.calls[0][1]?.body as string);
|
|
146
|
-
expect(body.metadata.app_settings).toEqual({ api_key:
|
|
140
|
+
expect(body.metadata.app_settings).toEqual({ api_key: 'secret' });
|
|
147
141
|
});
|
|
148
142
|
});
|