@vertesia/workflow 1.0.0-dev.20260203.130115Z → 1.0.0-dev.20260225.024852Z
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/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js +33 -0
- package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
- package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +73 -0
- package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
- package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js +19 -0
- package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
- package/lib/cjs/activities/chunkDocument.js +87 -0
- package/lib/cjs/activities/chunkDocument.js.map +1 -0
- package/lib/cjs/activities/copyParentArtifacts.js +127 -0
- package/lib/cjs/activities/copyParentArtifacts.js.map +1 -0
- package/lib/cjs/activities/createDocumentFromOther.js +64 -0
- package/lib/cjs/activities/createDocumentFromOther.js.map +1 -0
- package/lib/cjs/activities/executeInteraction.js +194 -0
- package/lib/cjs/activities/executeInteraction.js.map +1 -0
- package/lib/cjs/activities/extractDocumentText.js +196 -0
- package/lib/cjs/activities/extractDocumentText.js.map +1 -0
- package/lib/cjs/activities/generateDocumentProperties.js +85 -0
- package/lib/cjs/activities/generateDocumentProperties.js.map +1 -0
- package/lib/cjs/activities/generateEmbeddings.js +267 -0
- package/lib/cjs/activities/generateEmbeddings.js.map +1 -0
- package/lib/cjs/activities/generateOrAssignContentType.js +125 -0
- package/lib/cjs/activities/generateOrAssignContentType.js.map +1 -0
- package/lib/cjs/activities/getObjectFromStore.js +20 -0
- package/lib/cjs/activities/getObjectFromStore.js.map +1 -0
- package/lib/cjs/activities/handleError.js +22 -0
- package/lib/cjs/activities/handleError.js.map +1 -0
- package/lib/cjs/activities/index-dsl.js +53 -0
- package/lib/cjs/activities/index-dsl.js.map +1 -0
- package/lib/cjs/activities/index.js +21 -0
- package/lib/cjs/activities/index.js.map +1 -0
- package/lib/cjs/activities/media/prepareAudio.js +239 -0
- package/lib/cjs/activities/media/prepareAudio.js.map +1 -0
- package/lib/cjs/activities/media/prepareVideo.js +429 -0
- package/lib/cjs/activities/media/prepareVideo.js.map +1 -0
- package/lib/cjs/activities/media/processPdfWithTextract.js +103 -0
- package/lib/cjs/activities/media/processPdfWithTextract.js.map +1 -0
- package/lib/cjs/activities/media/saveGladiaTranscription.js +95 -0
- package/lib/cjs/activities/media/saveGladiaTranscription.js.map +1 -0
- package/lib/cjs/activities/media/transcribeMediaWithGladia.js +99 -0
- package/lib/cjs/activities/media/transcribeMediaWithGladia.js.map +1 -0
- package/lib/cjs/activities/mergeChildArtifacts.js +150 -0
- package/lib/cjs/activities/mergeChildArtifacts.js.map +1 -0
- package/lib/cjs/activities/notifyWebhook.js +167 -0
- package/lib/cjs/activities/notifyWebhook.js.map +1 -0
- package/lib/cjs/activities/rateLimiter.js +30 -0
- package/lib/cjs/activities/rateLimiter.js.map +1 -0
- package/lib/cjs/activities/renditions/generateImageRendition.js +66 -0
- package/lib/cjs/activities/renditions/generateImageRendition.js.map +1 -0
- package/lib/cjs/activities/renditions/generateVideoRendition.js +200 -0
- package/lib/cjs/activities/renditions/generateVideoRendition.js.map +1 -0
- package/lib/cjs/activities/setDocumentStatus.js +26 -0
- package/lib/cjs/activities/setDocumentStatus.js.map +1 -0
- package/lib/cjs/conversion/TextractProcessor.js +417 -0
- package/lib/cjs/conversion/TextractProcessor.js.map +1 -0
- package/lib/cjs/conversion/image.js +149 -0
- package/lib/cjs/conversion/image.js.map +1 -0
- package/lib/cjs/conversion/markitdown.js +42 -0
- package/lib/cjs/conversion/markitdown.js.map +1 -0
- package/lib/cjs/conversion/mutool.js +147 -0
- package/lib/cjs/conversion/mutool.js.map +1 -0
- package/lib/cjs/conversion/pandoc.js +39 -0
- package/lib/cjs/conversion/pandoc.js.map +1 -0
- package/lib/cjs/dsl/conditions.js +81 -0
- package/lib/cjs/dsl/conditions.js.map +1 -0
- package/lib/cjs/dsl/dsl-workflow.js +380 -0
- package/lib/cjs/dsl/dsl-workflow.js.map +1 -0
- package/lib/cjs/dsl/dslProxyActivities.js +23 -0
- package/lib/cjs/dsl/dslProxyActivities.js.map +1 -0
- package/lib/cjs/dsl/projections.js +59 -0
- package/lib/cjs/dsl/projections.js.map +1 -0
- package/lib/cjs/dsl/setup/ActivityContext.js +178 -0
- package/lib/cjs/dsl/setup/ActivityContext.js.map +1 -0
- package/lib/cjs/dsl/setup/fetch/DataProvider.js +51 -0
- package/lib/cjs/dsl/setup/fetch/DataProvider.js.map +1 -0
- package/lib/cjs/dsl/setup/fetch/index.js +16 -0
- package/lib/cjs/dsl/setup/fetch/index.js.map +1 -0
- package/lib/cjs/dsl/setup/fetch/providers.js +67 -0
- package/lib/cjs/dsl/setup/fetch/providers.js.map +1 -0
- package/lib/cjs/dsl/test/test-child-workflow.js +10 -0
- package/lib/cjs/dsl/test/test-child-workflow.js.map +1 -0
- package/lib/cjs/dsl/validation.js +122 -0
- package/lib/cjs/dsl/validation.js.map +1 -0
- package/lib/cjs/dsl/vars.js +341 -0
- package/lib/cjs/dsl/vars.js.map +1 -0
- package/lib/cjs/dsl/walk.js +100 -0
- package/lib/cjs/dsl/walk.js.map +1 -0
- package/lib/cjs/dsl.js +20 -0
- package/lib/cjs/dsl.js.map +1 -0
- package/lib/cjs/errors.js +89 -0
- package/lib/cjs/errors.js.map +1 -0
- package/lib/cjs/index.js +57 -0
- package/lib/cjs/index.js.map +1 -0
- package/lib/cjs/iterative-generation/activities/extractToc.js +47 -0
- package/lib/cjs/iterative-generation/activities/extractToc.js.map +1 -0
- package/lib/cjs/iterative-generation/activities/finalizeOutput.js +72 -0
- package/lib/cjs/iterative-generation/activities/finalizeOutput.js.map +1 -0
- package/lib/cjs/iterative-generation/activities/generatePart.js +78 -0
- package/lib/cjs/iterative-generation/activities/generatePart.js.map +1 -0
- package/lib/cjs/iterative-generation/activities/generateToc.js +86 -0
- package/lib/cjs/iterative-generation/activities/generateToc.js.map +1 -0
- package/lib/cjs/iterative-generation/activities/index.js +12 -0
- package/lib/cjs/iterative-generation/activities/index.js.map +1 -0
- package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js +56 -0
- package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
- package/lib/cjs/iterative-generation/types.js +5 -0
- package/lib/cjs/iterative-generation/types.js.map +1 -0
- package/lib/cjs/iterative-generation/utils.js +121 -0
- package/lib/cjs/iterative-generation/utils.js.map +1 -0
- package/lib/cjs/package.json +3 -0
- package/lib/cjs/result-types.js +10 -0
- package/lib/cjs/result-types.js.map +1 -0
- package/lib/cjs/system/notifyWebhookWorkflow.js +53 -0
- package/lib/cjs/system/notifyWebhookWorkflow.js.map +1 -0
- package/lib/cjs/system/recalculateEmbeddingsWorkflow.js +33 -0
- package/lib/cjs/system/recalculateEmbeddingsWorkflow.js.map +1 -0
- package/lib/cjs/utils/auth.js +15 -0
- package/lib/cjs/utils/auth.js.map +1 -0
- package/lib/cjs/utils/blobs.js +64 -0
- package/lib/cjs/utils/blobs.js.map +1 -0
- package/lib/cjs/utils/chunks.js +14 -0
- package/lib/cjs/utils/chunks.js.map +1 -0
- package/lib/cjs/utils/client.js +31 -0
- package/lib/cjs/utils/client.js.map +1 -0
- package/lib/cjs/utils/expand-vars.js +33 -0
- package/lib/cjs/utils/expand-vars.js.map +1 -0
- package/lib/cjs/utils/memory.js +65 -0
- package/lib/cjs/utils/memory.js.map +1 -0
- package/lib/cjs/utils/renditions.js +92 -0
- package/lib/cjs/utils/renditions.js.map +1 -0
- package/lib/cjs/utils/storage.js +54 -0
- package/lib/cjs/utils/storage.js.map +1 -0
- package/lib/cjs/utils/text-preview-utils.js +43 -0
- package/lib/cjs/utils/text-preview-utils.js.map +1 -0
- package/lib/cjs/utils/tokens.js +38 -0
- package/lib/cjs/utils/tokens.js.map +1 -0
- package/lib/cjs/vars.js +20 -0
- package/lib/cjs/vars.js.map +1 -0
- package/lib/cjs/workflows.js +15 -0
- package/lib/cjs/workflows.js.map +1 -0
- package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js +30 -0
- package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
- package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +70 -0
- package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
- package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js +16 -0
- package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
- package/lib/esm/activities/chunkDocument.js +84 -0
- package/lib/esm/activities/chunkDocument.js.map +1 -0
- package/lib/esm/activities/copyParentArtifacts.js +124 -0
- package/lib/esm/activities/copyParentArtifacts.js.map +1 -0
- package/lib/esm/activities/createDocumentFromOther.js +58 -0
- package/lib/esm/activities/createDocumentFromOther.js.map +1 -0
- package/lib/esm/activities/executeInteraction.js +190 -0
- package/lib/esm/activities/executeInteraction.js.map +1 -0
- package/lib/esm/activities/extractDocumentText.js +193 -0
- package/lib/esm/activities/extractDocumentText.js.map +1 -0
- package/lib/esm/activities/generateDocumentProperties.js +82 -0
- package/lib/esm/activities/generateDocumentProperties.js.map +1 -0
- package/lib/esm/activities/generateEmbeddings.js +264 -0
- package/lib/esm/activities/generateEmbeddings.js.map +1 -0
- package/lib/esm/activities/generateOrAssignContentType.js +122 -0
- package/lib/esm/activities/generateOrAssignContentType.js.map +1 -0
- package/lib/esm/activities/getObjectFromStore.js +17 -0
- package/lib/esm/activities/getObjectFromStore.js.map +1 -0
- package/lib/esm/activities/handleError.js +19 -0
- package/lib/esm/activities/handleError.js.map +1 -0
- package/lib/esm/activities/index-dsl.js +26 -0
- package/lib/esm/activities/index-dsl.js.map +1 -0
- package/lib/esm/activities/index.js +5 -0
- package/lib/esm/activities/index.js.map +1 -0
- package/lib/esm/activities/media/prepareAudio.js +200 -0
- package/lib/esm/activities/media/prepareAudio.js.map +1 -0
- package/lib/esm/activities/media/prepareVideo.js +390 -0
- package/lib/esm/activities/media/prepareVideo.js.map +1 -0
- package/lib/esm/activities/media/processPdfWithTextract.js +99 -0
- package/lib/esm/activities/media/processPdfWithTextract.js.map +1 -0
- package/lib/esm/activities/media/saveGladiaTranscription.js +92 -0
- package/lib/esm/activities/media/saveGladiaTranscription.js.map +1 -0
- package/lib/esm/activities/media/transcribeMediaWithGladia.js +96 -0
- package/lib/esm/activities/media/transcribeMediaWithGladia.js.map +1 -0
- package/lib/esm/activities/mergeChildArtifacts.js +147 -0
- package/lib/esm/activities/mergeChildArtifacts.js.map +1 -0
- package/lib/esm/activities/notifyWebhook.js +164 -0
- package/lib/esm/activities/notifyWebhook.js.map +1 -0
- package/lib/esm/activities/rateLimiter.js +27 -0
- package/lib/esm/activities/rateLimiter.js.map +1 -0
- package/lib/esm/activities/renditions/generateImageRendition.js +63 -0
- package/lib/esm/activities/renditions/generateImageRendition.js.map +1 -0
- package/lib/esm/activities/renditions/generateVideoRendition.js +194 -0
- package/lib/esm/activities/renditions/generateVideoRendition.js.map +1 -0
- package/lib/esm/activities/setDocumentStatus.js +23 -0
- package/lib/esm/activities/setDocumentStatus.js.map +1 -0
- package/lib/esm/conversion/TextractProcessor.js +410 -0
- package/lib/esm/conversion/TextractProcessor.js.map +1 -0
- package/lib/esm/conversion/image.js +143 -0
- package/lib/esm/conversion/image.js.map +1 -0
- package/lib/esm/conversion/markitdown.js +36 -0
- package/lib/esm/conversion/markitdown.js.map +1 -0
- package/lib/esm/conversion/mutool.js +139 -0
- package/lib/esm/conversion/mutool.js.map +1 -0
- package/lib/esm/conversion/pandoc.js +36 -0
- package/lib/esm/conversion/pandoc.js.map +1 -0
- package/lib/esm/dsl/conditions.js +75 -0
- package/lib/esm/dsl/conditions.js.map +1 -0
- package/lib/esm/dsl/dsl-workflow.js +373 -0
- package/lib/esm/dsl/dsl-workflow.js.map +1 -0
- package/lib/esm/dsl/dslProxyActivities.js +20 -0
- package/lib/esm/dsl/dslProxyActivities.js.map +1 -0
- package/lib/esm/dsl/projections.js +55 -0
- package/lib/esm/dsl/projections.js.map +1 -0
- package/lib/esm/dsl/setup/ActivityContext.js +173 -0
- package/lib/esm/dsl/setup/ActivityContext.js.map +1 -0
- package/lib/esm/dsl/setup/fetch/DataProvider.js +47 -0
- package/lib/esm/dsl/setup/fetch/DataProvider.js.map +1 -0
- package/lib/esm/dsl/setup/fetch/index.js +12 -0
- package/lib/esm/dsl/setup/fetch/index.js.map +1 -0
- package/lib/esm/dsl/setup/fetch/providers.js +61 -0
- package/lib/esm/dsl/setup/fetch/providers.js.map +1 -0
- package/lib/esm/dsl/test/test-child-workflow.js +5 -0
- package/lib/esm/dsl/test/test-child-workflow.js.map +1 -0
- package/lib/esm/dsl/validation.js +118 -0
- package/lib/esm/dsl/validation.js.map +1 -0
- package/lib/esm/dsl/vars.js +335 -0
- package/lib/esm/dsl/vars.js.map +1 -0
- package/lib/esm/dsl/walk.js +96 -0
- package/lib/esm/dsl/walk.js.map +1 -0
- package/lib/esm/dsl.js +4 -0
- package/lib/esm/dsl.js.map +1 -0
- package/lib/esm/errors.js +78 -0
- package/lib/esm/errors.js.map +1 -0
- package/lib/esm/index.js +39 -0
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/iterative-generation/activities/extractToc.js +44 -0
- package/lib/esm/iterative-generation/activities/extractToc.js.map +1 -0
- package/lib/esm/iterative-generation/activities/finalizeOutput.js +69 -0
- package/lib/esm/iterative-generation/activities/finalizeOutput.js.map +1 -0
- package/lib/esm/iterative-generation/activities/generatePart.js +75 -0
- package/lib/esm/iterative-generation/activities/generatePart.js.map +1 -0
- package/lib/esm/iterative-generation/activities/generateToc.js +83 -0
- package/lib/esm/iterative-generation/activities/generateToc.js.map +1 -0
- package/lib/esm/iterative-generation/activities/index.js +5 -0
- package/lib/esm/iterative-generation/activities/index.js.map +1 -0
- package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js +53 -0
- package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
- package/lib/esm/iterative-generation/types.js +2 -0
- package/lib/esm/iterative-generation/types.js.map +1 -0
- package/lib/esm/iterative-generation/utils.js +112 -0
- package/lib/esm/iterative-generation/utils.js.map +1 -0
- package/lib/esm/result-types.js +7 -0
- package/lib/esm/result-types.js.map +1 -0
- package/lib/esm/system/notifyWebhookWorkflow.js +50 -0
- package/lib/esm/system/notifyWebhookWorkflow.js.map +1 -0
- package/lib/esm/system/recalculateEmbeddingsWorkflow.js +30 -0
- package/lib/esm/system/recalculateEmbeddingsWorkflow.js.map +1 -0
- package/lib/esm/utils/auth.js +8 -0
- package/lib/esm/utils/auth.js.map +1 -0
- package/lib/esm/utils/blobs.js +54 -0
- package/lib/esm/utils/blobs.js.map +1 -0
- package/lib/esm/utils/chunks.js +9 -0
- package/lib/esm/utils/chunks.js.map +1 -0
- package/lib/esm/utils/client.js +27 -0
- package/lib/esm/utils/client.js.map +1 -0
- package/lib/esm/utils/expand-vars.js +30 -0
- package/lib/esm/utils/expand-vars.js.map +1 -0
- package/lib/esm/utils/memory.js +55 -0
- package/lib/esm/utils/memory.js.map +1 -0
- package/lib/esm/utils/renditions.js +84 -0
- package/lib/esm/utils/renditions.js.map +1 -0
- package/lib/esm/utils/storage.js +45 -0
- package/lib/esm/utils/storage.js.map +1 -0
- package/lib/esm/utils/text-preview-utils.js +38 -0
- package/lib/esm/utils/text-preview-utils.js.map +1 -0
- package/lib/esm/utils/tokens.js +34 -0
- package/lib/esm/utils/tokens.js.map +1 -0
- package/lib/esm/vars.js +4 -0
- package/lib/esm/vars.js.map +1 -0
- package/lib/esm/workflows.js +8 -0
- package/lib/esm/workflows.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts +17 -0
- package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +1 -0
- package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts +39 -0
- package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +1 -0
- package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts +19 -0
- package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +1 -0
- package/lib/types/activities/chunkDocument.d.ts +33 -0
- package/lib/types/activities/chunkDocument.d.ts.map +1 -0
- package/lib/types/activities/copyParentArtifacts.d.ts +19 -0
- package/lib/types/activities/copyParentArtifacts.d.ts.map +1 -0
- package/lib/types/activities/createDocumentFromOther.d.ts +21 -0
- package/lib/types/activities/createDocumentFromOther.d.ts.map +1 -0
- package/lib/types/activities/executeInteraction.d.ts +61 -0
- package/lib/types/activities/executeInteraction.d.ts.map +1 -0
- package/lib/types/activities/extractDocumentText.d.ts +11 -0
- package/lib/types/activities/extractDocumentText.d.ts.map +1 -0
- package/lib/types/activities/generateDocumentProperties.d.ts +32 -0
- package/lib/types/activities/generateDocumentProperties.d.ts.map +1 -0
- package/lib/types/activities/generateEmbeddings.d.ts +53 -0
- package/lib/types/activities/generateEmbeddings.d.ts.map +1 -0
- package/lib/types/activities/generateOrAssignContentType.d.ts +44 -0
- package/lib/types/activities/generateOrAssignContentType.d.ts.map +1 -0
- package/lib/types/activities/getObjectFromStore.d.ts +14 -0
- package/lib/types/activities/getObjectFromStore.d.ts.map +1 -0
- package/lib/types/activities/handleError.d.ts +6 -0
- package/lib/types/activities/handleError.d.ts.map +1 -0
- package/lib/types/activities/index-dsl.d.ts +26 -0
- package/lib/types/activities/index-dsl.d.ts.map +1 -0
- package/lib/types/activities/index.d.ts +5 -0
- package/lib/types/activities/index.d.ts.map +1 -0
- package/lib/types/activities/media/prepareAudio.d.ts +25 -0
- package/lib/types/activities/media/prepareAudio.d.ts.map +1 -0
- package/lib/types/activities/media/prepareVideo.d.ts +30 -0
- package/lib/types/activities/media/prepareVideo.d.ts.map +1 -0
- package/lib/types/activities/media/processPdfWithTextract.d.ts +26 -0
- package/lib/types/activities/media/processPdfWithTextract.d.ts.map +1 -0
- package/lib/types/activities/media/saveGladiaTranscription.d.ts +15 -0
- package/lib/types/activities/media/saveGladiaTranscription.d.ts.map +1 -0
- package/lib/types/activities/media/transcribeMediaWithGladia.d.ts +20 -0
- package/lib/types/activities/media/transcribeMediaWithGladia.d.ts.map +1 -0
- package/lib/types/activities/mergeChildArtifacts.d.ts +24 -0
- package/lib/types/activities/mergeChildArtifacts.d.ts.map +1 -0
- package/lib/types/activities/notifyWebhook.d.ts +27 -0
- package/lib/types/activities/notifyWebhook.d.ts.map +1 -0
- package/lib/types/activities/rateLimiter.d.ts +11 -0
- package/lib/types/activities/rateLimiter.d.ts.map +1 -0
- package/lib/types/activities/renditions/generateImageRendition.d.ts +14 -0
- package/lib/types/activities/renditions/generateImageRendition.d.ts.map +1 -0
- package/lib/types/activities/renditions/generateVideoRendition.d.ts +15 -0
- package/lib/types/activities/renditions/generateVideoRendition.d.ts.map +1 -0
- package/lib/types/activities/setDocumentStatus.d.ts +15 -0
- package/lib/types/activities/setDocumentStatus.d.ts.map +1 -0
- package/lib/types/conversion/TextractProcessor.d.ts +45 -0
- package/lib/types/conversion/TextractProcessor.d.ts.map +1 -0
- package/lib/types/conversion/image.d.ts +13 -0
- package/lib/types/conversion/image.d.ts.map +1 -0
- package/lib/types/conversion/markitdown.d.ts +2 -0
- package/lib/types/conversion/markitdown.d.ts.map +1 -0
- package/lib/types/conversion/mutool.d.ts +19 -0
- package/lib/types/conversion/mutool.d.ts.map +1 -0
- package/lib/types/conversion/pandoc.d.ts +2 -0
- package/lib/types/conversion/pandoc.d.ts.map +1 -0
- package/lib/types/dsl/conditions.d.ts +2 -0
- package/lib/types/dsl/conditions.d.ts.map +1 -0
- package/lib/types/dsl/dsl-workflow.d.ts +5 -0
- package/lib/types/dsl/dsl-workflow.d.ts.map +1 -0
- package/lib/types/dsl/dslProxyActivities.d.ts +10 -0
- package/lib/types/dsl/dslProxyActivities.d.ts.map +1 -0
- package/lib/types/dsl/projections.d.ts +4 -0
- package/lib/types/dsl/projections.d.ts.map +1 -0
- package/lib/types/dsl/setup/ActivityContext.d.ts +47 -0
- package/lib/types/dsl/setup/ActivityContext.d.ts.map +1 -0
- package/lib/types/dsl/setup/fetch/DataProvider.d.ts +9 -0
- package/lib/types/dsl/setup/fetch/DataProvider.d.ts.map +1 -0
- package/lib/types/dsl/setup/fetch/index.d.ts +6 -0
- package/lib/types/dsl/setup/fetch/index.d.ts.map +1 -0
- package/lib/types/dsl/setup/fetch/providers.d.ts +25 -0
- package/lib/types/dsl/setup/fetch/providers.d.ts.map +1 -0
- package/lib/types/dsl/test/test-child-workflow.d.ts +4 -0
- package/lib/types/dsl/test/test-child-workflow.d.ts.map +1 -0
- package/lib/types/dsl/validation.d.ts +4 -0
- package/lib/types/dsl/validation.d.ts.map +1 -0
- package/lib/types/dsl/vars.d.ts +48 -0
- package/lib/types/dsl/vars.d.ts.map +1 -0
- package/lib/types/dsl/walk.d.ts +18 -0
- package/lib/types/dsl/walk.d.ts.map +1 -0
- package/lib/types/dsl.d.ts +4 -0
- package/lib/types/dsl.d.ts.map +1 -0
- package/lib/types/errors.d.ts +41 -0
- package/lib/types/errors.d.ts.map +1 -0
- package/lib/types/index.d.ts +38 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/iterative-generation/activities/extractToc.d.ts +10 -0
- package/lib/types/iterative-generation/activities/extractToc.d.ts.map +1 -0
- package/lib/types/iterative-generation/activities/finalizeOutput.d.ts +3 -0
- package/lib/types/iterative-generation/activities/finalizeOutput.d.ts.map +1 -0
- package/lib/types/iterative-generation/activities/generatePart.d.ts +3 -0
- package/lib/types/iterative-generation/activities/generatePart.d.ts.map +1 -0
- package/lib/types/iterative-generation/activities/generateToc.d.ts +4 -0
- package/lib/types/iterative-generation/activities/generateToc.d.ts.map +1 -0
- package/lib/types/iterative-generation/activities/index.d.ts +5 -0
- package/lib/types/iterative-generation/activities/index.d.ts.map +1 -0
- package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts +3 -0
- package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts.map +1 -0
- package/lib/types/iterative-generation/types.d.ts +79 -0
- package/lib/types/iterative-generation/types.d.ts.map +1 -0
- package/lib/types/iterative-generation/utils.d.ts +26 -0
- package/lib/types/iterative-generation/utils.d.ts.map +1 -0
- package/lib/types/result-types.d.ts +26 -0
- package/lib/types/result-types.d.ts.map +1 -0
- package/lib/types/system/notifyWebhookWorkflow.d.ts +8 -0
- package/lib/types/system/notifyWebhookWorkflow.d.ts.map +1 -0
- package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts +25 -0
- package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts.map +1 -0
- package/lib/types/utils/auth.d.ts +4 -0
- package/lib/types/utils/auth.d.ts.map +1 -0
- package/lib/types/utils/blobs.d.ts +7 -0
- package/lib/types/utils/blobs.d.ts.map +1 -0
- package/lib/types/utils/chunks.d.ts +9 -0
- package/lib/types/utils/chunks.d.ts.map +1 -0
- package/lib/types/utils/client.d.ts +8 -0
- package/lib/types/utils/client.d.ts.map +1 -0
- package/lib/types/utils/expand-vars.d.ts +8 -0
- package/lib/types/utils/expand-vars.d.ts.map +1 -0
- package/lib/types/utils/memory.d.ts +8 -0
- package/lib/types/utils/memory.d.ts.map +1 -0
- package/lib/types/utils/renditions.d.ts +25 -0
- package/lib/types/utils/renditions.d.ts.map +1 -0
- package/lib/types/utils/storage.d.ts +16 -0
- package/lib/types/utils/storage.d.ts.map +1 -0
- package/lib/types/utils/text-preview-utils.d.ts +15 -0
- package/lib/types/utils/text-preview-utils.d.ts.map +1 -0
- package/lib/types/utils/tokens.d.ts +11 -0
- package/lib/types/utils/tokens.d.ts.map +1 -0
- package/lib/types/vars.d.ts +3 -0
- package/lib/types/vars.d.ts.map +1 -0
- package/lib/types/workflows.d.ts +8 -0
- package/lib/types/workflows.d.ts.map +1 -0
- package/lib/workflows-bundle.js +17846 -0
- package/package.json +6 -7
- package/src/activities/advanced/createOrUpdateDocumentFromInteractionRun.ts +1 -1
- package/src/activities/chunkDocument.ts +3 -1
- package/src/activities/extractDocumentText.ts +84 -28
- package/src/activities/generateDocumentProperties.ts +4 -2
- package/src/activities/generateEmbeddings.ts +9 -9
- package/src/activities/generateOrAssignContentType.ts +2 -2
- package/src/activities/index-dsl.ts +4 -3
- package/src/activities/media/saveGladiaTranscription.test.ts +406 -0
- package/src/activities/media/saveGladiaTranscription.ts +41 -26
- package/src/activities/media/transcribeMediaWithGladia.test.ts +583 -0
- package/src/activities/media/transcribeMediaWithGladia.ts +46 -25
- package/src/activities/notifyWebhook.test.ts +121 -8
- package/src/activities/notifyWebhook.ts +10 -2
- package/src/activities/renditions/generateImageRendition.ts +2 -2
- package/src/conversion/image.test.ts +1 -0
- package/src/conversion/image.ts +10 -10
- package/src/dsl/dsl-workflow.ts +49 -9
- package/src/dsl/setup/ActivityContext.ts +73 -0
- package/src/dsl.ts +1 -0
- package/src/errors.ts +14 -0
- package/src/index.ts +6 -5
- package/src/result-types.ts +5 -1
- package/src/utils/renditions.ts +11 -5
- package/src/utils/text-preview-utils.ts +62 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateOrAssignContentType = generateOrAssignContentType;
|
|
4
|
+
const activity_1 = require("@temporalio/activity");
|
|
5
|
+
const common_1 = require("@vertesia/common");
|
|
6
|
+
const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
|
|
7
|
+
const tokens_js_1 = require("../utils/tokens.js");
|
|
8
|
+
const executeInteraction_js_1 = require("./executeInteraction.js");
|
|
9
|
+
const INT_SELECT_DOCUMENT_TYPE = "sys:SelectDocumentType";
|
|
10
|
+
const INT_GENERATE_METADATA_MODEL = "sys:GenerateMetadataModel";
|
|
11
|
+
async function generateOrAssignContentType(payload) {
|
|
12
|
+
const context = await (0, ActivityContext_js_1.setupActivity)(payload);
|
|
13
|
+
const { params, client, objectId } = context;
|
|
14
|
+
const interactionName = params.interactionNames?.selectDocumentType ?? INT_SELECT_DOCUMENT_TYPE;
|
|
15
|
+
activity_1.log.debug("SelectDocumentType for object: " + objectId, { payload });
|
|
16
|
+
const object = await client.objects.retrieve(objectId, "+text");
|
|
17
|
+
//Expects object.type to be null on first ingestion of content
|
|
18
|
+
//User initiated Content Type change via the Composable UI,
|
|
19
|
+
//sets object.type to null when they let Composable choose for them.
|
|
20
|
+
//sets object.type to chosen type (thus non-null) when user picks a type.
|
|
21
|
+
if (object.type) {
|
|
22
|
+
activity_1.log.warn(`Object ${objectId} has already a type. Skipping type creation.`);
|
|
23
|
+
return {
|
|
24
|
+
status: "skipped",
|
|
25
|
+
message: "Object already has a type: " + object.type.name,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (!object ||
|
|
29
|
+
(!object.text &&
|
|
30
|
+
!object.content?.type?.startsWith("image/") &&
|
|
31
|
+
!object.content?.type?.startsWith("application/pdf"))) {
|
|
32
|
+
activity_1.log.info(`Object ${objectId} not found or text is empty and not an image`, {
|
|
33
|
+
object,
|
|
34
|
+
});
|
|
35
|
+
return { status: "failed", error: "no-text" };
|
|
36
|
+
}
|
|
37
|
+
const types = await client.types.catalog.list({
|
|
38
|
+
schema: true,
|
|
39
|
+
});
|
|
40
|
+
//make a list of all existing types, and add hints if any
|
|
41
|
+
const existing_types = types.filter((t) => !["DocumentPart", "Rendition"].includes(t.name));
|
|
42
|
+
const content = object.text
|
|
43
|
+
? (0, tokens_js_1.truncByMaxTokens)(object.text, params.truncate || 30000)
|
|
44
|
+
: undefined;
|
|
45
|
+
const getImage = async () => {
|
|
46
|
+
if (object.content?.type?.includes("pdf") &&
|
|
47
|
+
object.text?.length &&
|
|
48
|
+
object.text?.length < 100) {
|
|
49
|
+
return "store:" + objectId;
|
|
50
|
+
}
|
|
51
|
+
if (!object.content?.type?.startsWith("image/")) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
const res = await client.objects.getRendition(objectId, {
|
|
55
|
+
format: common_1.ImageRenditionFormat.jpeg,
|
|
56
|
+
generate_if_missing: true,
|
|
57
|
+
});
|
|
58
|
+
if (!res.renditions?.length && res.status === "generating") {
|
|
59
|
+
//throw to try again
|
|
60
|
+
throw new Error(`Rendition for object ${objectId} is in progress`);
|
|
61
|
+
}
|
|
62
|
+
else if (res.renditions) {
|
|
63
|
+
return "store:" + objectId;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
const fileRef = await getImage();
|
|
67
|
+
activity_1.log.info("Execute SelectDocumentType interaction on content with \nexisting types - passing full types: " +
|
|
68
|
+
existing_types.filter((t) => !t.tags?.includes("system")));
|
|
69
|
+
const res = await (0, executeInteraction_js_1.executeInteractionFromActivity)(client, interactionName, params, {
|
|
70
|
+
existing_types,
|
|
71
|
+
content,
|
|
72
|
+
image: fileRef,
|
|
73
|
+
});
|
|
74
|
+
const jsonResult = res.result.object();
|
|
75
|
+
activity_1.log.info("Selected Content Type Result: " + JSON.stringify(jsonResult));
|
|
76
|
+
//if type is not identified or not present in the database, generate a new type
|
|
77
|
+
let selectedType = undefined;
|
|
78
|
+
selectedType = types.find((t) => t.name === jsonResult.document_type);
|
|
79
|
+
if (!selectedType) {
|
|
80
|
+
activity_1.log.warn("Document type not identified: starting type generation");
|
|
81
|
+
const newType = await generateNewType(context, existing_types, content, fileRef);
|
|
82
|
+
selectedType = { id: newType.id, name: newType.name };
|
|
83
|
+
}
|
|
84
|
+
if (!selectedType) {
|
|
85
|
+
activity_1.log.error("Type not found: ", res.result);
|
|
86
|
+
throw new Error("Type not found: " + jsonResult.document_type);
|
|
87
|
+
}
|
|
88
|
+
//update object with selected type
|
|
89
|
+
await client.objects.update(objectId, {
|
|
90
|
+
type: selectedType.id,
|
|
91
|
+
});
|
|
92
|
+
return {
|
|
93
|
+
id: selectedType.id,
|
|
94
|
+
name: selectedType.name,
|
|
95
|
+
isNew: !types.find((t) => t.name === selectedType.name),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
async function generateNewType(context, existing_types, content, fileRef) {
|
|
99
|
+
const { client, params } = context;
|
|
100
|
+
const project = await context.fetchProject();
|
|
101
|
+
const interactionName = params.interactionNames?.generateMetadataModel ??
|
|
102
|
+
INT_GENERATE_METADATA_MODEL;
|
|
103
|
+
const genTypeRes = await (0, executeInteraction_js_1.executeInteractionFromActivity)(client, interactionName, params, {
|
|
104
|
+
existing_types,
|
|
105
|
+
content: content,
|
|
106
|
+
human_context: project?.configuration?.human_context ?? undefined,
|
|
107
|
+
image: fileRef ? fileRef : undefined,
|
|
108
|
+
});
|
|
109
|
+
const jsonResult = genTypeRes.result.object();
|
|
110
|
+
if (!jsonResult.document_type) {
|
|
111
|
+
activity_1.log.error("No name generated for type", genTypeRes);
|
|
112
|
+
throw new Error("No name generated for type");
|
|
113
|
+
}
|
|
114
|
+
activity_1.log.info("Generated schema for type", jsonResult.metadata_schema);
|
|
115
|
+
const typeData = {
|
|
116
|
+
name: jsonResult.document_type,
|
|
117
|
+
description: jsonResult.document_type_description,
|
|
118
|
+
object_schema: jsonResult.metadata_schema,
|
|
119
|
+
is_chunkable: jsonResult.is_chunkable,
|
|
120
|
+
table_layout: jsonResult.table_layout,
|
|
121
|
+
};
|
|
122
|
+
const type = await client.types.create(typeData);
|
|
123
|
+
return type;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=generateOrAssignContentType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateOrAssignContentType.js","sourceRoot":"","sources":["../../../src/activities/generateOrAssignContentType.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getObjectFromStore = getObjectFromStore;
|
|
4
|
+
const projections_js_1 = require("../dsl/projections.js");
|
|
5
|
+
const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
|
|
6
|
+
/**
|
|
7
|
+
* We are using a union type for the status parameter since typescript enums breaks the workflow code generation
|
|
8
|
+
* @param objectId
|
|
9
|
+
* @param status
|
|
10
|
+
*/
|
|
11
|
+
async function getObjectFromStore(payload) {
|
|
12
|
+
const { client, params, objectId } = await (0, ActivityContext_js_1.setupActivity)(payload);
|
|
13
|
+
const obj = await client.objects.retrieve(objectId, params.select);
|
|
14
|
+
const projection = (0, projections_js_1.projectResult)(payload, params, obj, obj);
|
|
15
|
+
return {
|
|
16
|
+
...projection,
|
|
17
|
+
id: obj.id,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=getObjectFromStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getObjectFromStore.js","sourceRoot":"","sources":["../../../src/activities/getObjectFromStore.ts"],"names":[],"mappings":";;AAkBA,gDAYC;AA7BD,0DAAsD;AACtD,wEAAgE;AAWhE;;;;GAIG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAAqD;IAC1F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,kCAAa,EAAkB,OAAO,CAAC,CAAC;IAEnF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,IAAA,8BAAa,EAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5D,OAAO;QACH,GAAG,UAAU;QACb,EAAE,EAAE,GAAG,CAAC,EAAE;KACb,CAAA;AAEL,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleDslError = handleDslError;
|
|
4
|
+
const common_1 = require("@vertesia/common");
|
|
5
|
+
const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
|
|
6
|
+
const activity_1 = require("@temporalio/activity");
|
|
7
|
+
async function handleDslError(payload) {
|
|
8
|
+
const { client, params, objectId } = await (0, ActivityContext_js_1.setupActivity)(payload);
|
|
9
|
+
const isIntake = payload.workflow_name === "StandardDocumentIntake" || payload.workflow_name === "StandardImageIntake";
|
|
10
|
+
if (!isIntake) {
|
|
11
|
+
activity_1.log.warn(`Workflow execution failed, but no error handler registered for this workflow: ${payload.workflow_name}`, { error: params.errorMessage });
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
try {
|
|
15
|
+
await client.objects.update(objectId, { status: common_1.ContentObjectStatus.failed });
|
|
16
|
+
}
|
|
17
|
+
catch (e) {
|
|
18
|
+
activity_1.log.error("Failed to handle error", { error: e });
|
|
19
|
+
}
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=handleError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleError.js","sourceRoot":"","sources":["../../../src/activities/handleError.ts"],"names":[],"mappings":";;AAQA,wCAgBC;AAxBD,6CAAoF;AACpF,wEAAgE;AAChE,mDAA0C;AAMnC,KAAK,UAAU,cAAc,CAAC,OAA0D;IAC3F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,kCAAa,EAAuB,OAAO,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,KAAK,wBAAwB,IAAI,OAAO,CAAC,aAAa,KAAK,qBAAqB,CAAC;IACvH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,cAAG,CAAC,IAAI,CAAC,iFAAiF,OAAO,CAAC,aAAa,EAAE,EAC7G,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,CACjC,CAAC;QACF,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,4BAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,cAAG,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO;AACX,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setDocumentStatus = exports.generateVideoRendition = exports.generateImageRendition = exports.checkRateLimit = exports.notifyWebhook = exports.mergeChildArtifacts = exports.transcribeMedia = exports.saveGladiaTranscription = exports.convertPdfToStructuredText = exports.prepareVideo = exports.prepareAudio = exports.handleDslError = exports.getObjectFromStore = exports.generateOrAssignContentType = exports.generateEmbeddings = exports.generateDocumentProperties = exports.extractDocumentText = exports.executeInteraction = exports.createPdfDocumentFromSource = exports.copyParentArtifacts = exports.chunkDocument = exports.updateDocumentFromInteractionRun = exports.createOrUpdateDocumentFromInteractionRun = exports.createDocumentTypeFromInteractionRun = void 0;
|
|
4
|
+
// Export here DSL activities
|
|
5
|
+
var createDocumentTypeFromInteractionRun_js_1 = require("./advanced/createDocumentTypeFromInteractionRun.js");
|
|
6
|
+
Object.defineProperty(exports, "createDocumentTypeFromInteractionRun", { enumerable: true, get: function () { return createDocumentTypeFromInteractionRun_js_1.createDocumentTypeFromInteractionRun; } });
|
|
7
|
+
var createOrUpdateDocumentFromInteractionRun_js_1 = require("./advanced/createOrUpdateDocumentFromInteractionRun.js");
|
|
8
|
+
Object.defineProperty(exports, "createOrUpdateDocumentFromInteractionRun", { enumerable: true, get: function () { return createOrUpdateDocumentFromInteractionRun_js_1.createOrUpdateDocumentFromInteractionRun; } });
|
|
9
|
+
var updateDocumentFromInteractionRun_js_1 = require("./advanced/updateDocumentFromInteractionRun.js");
|
|
10
|
+
Object.defineProperty(exports, "updateDocumentFromInteractionRun", { enumerable: true, get: function () { return updateDocumentFromInteractionRun_js_1.updateDocumentFromInteractionRun; } });
|
|
11
|
+
var chunkDocument_js_1 = require("./chunkDocument.js");
|
|
12
|
+
Object.defineProperty(exports, "chunkDocument", { enumerable: true, get: function () { return chunkDocument_js_1.chunkDocument; } });
|
|
13
|
+
var copyParentArtifacts_js_1 = require("./copyParentArtifacts.js");
|
|
14
|
+
Object.defineProperty(exports, "copyParentArtifacts", { enumerable: true, get: function () { return copyParentArtifacts_js_1.copyParentArtifacts; } });
|
|
15
|
+
var createDocumentFromOther_js_1 = require("./createDocumentFromOther.js");
|
|
16
|
+
Object.defineProperty(exports, "createPdfDocumentFromSource", { enumerable: true, get: function () { return createDocumentFromOther_js_1.createPdfDocumentFromSource; } });
|
|
17
|
+
var executeInteraction_js_1 = require("./executeInteraction.js");
|
|
18
|
+
Object.defineProperty(exports, "executeInteraction", { enumerable: true, get: function () { return executeInteraction_js_1.executeInteraction; } });
|
|
19
|
+
var extractDocumentText_js_1 = require("./extractDocumentText.js");
|
|
20
|
+
Object.defineProperty(exports, "extractDocumentText", { enumerable: true, get: function () { return extractDocumentText_js_1.extractDocumentText; } });
|
|
21
|
+
var generateDocumentProperties_js_1 = require("./generateDocumentProperties.js");
|
|
22
|
+
Object.defineProperty(exports, "generateDocumentProperties", { enumerable: true, get: function () { return generateDocumentProperties_js_1.generateDocumentProperties; } });
|
|
23
|
+
var generateEmbeddings_js_1 = require("./generateEmbeddings.js");
|
|
24
|
+
Object.defineProperty(exports, "generateEmbeddings", { enumerable: true, get: function () { return generateEmbeddings_js_1.generateEmbeddings; } });
|
|
25
|
+
var generateOrAssignContentType_js_1 = require("./generateOrAssignContentType.js");
|
|
26
|
+
Object.defineProperty(exports, "generateOrAssignContentType", { enumerable: true, get: function () { return generateOrAssignContentType_js_1.generateOrAssignContentType; } });
|
|
27
|
+
var getObjectFromStore_js_1 = require("./getObjectFromStore.js");
|
|
28
|
+
Object.defineProperty(exports, "getObjectFromStore", { enumerable: true, get: function () { return getObjectFromStore_js_1.getObjectFromStore; } });
|
|
29
|
+
var handleError_js_1 = require("./handleError.js");
|
|
30
|
+
Object.defineProperty(exports, "handleDslError", { enumerable: true, get: function () { return handleError_js_1.handleDslError; } });
|
|
31
|
+
var prepareAudio_js_1 = require("./media/prepareAudio.js");
|
|
32
|
+
Object.defineProperty(exports, "prepareAudio", { enumerable: true, get: function () { return prepareAudio_js_1.prepareAudio; } });
|
|
33
|
+
var prepareVideo_js_1 = require("./media/prepareVideo.js");
|
|
34
|
+
Object.defineProperty(exports, "prepareVideo", { enumerable: true, get: function () { return prepareVideo_js_1.prepareVideo; } });
|
|
35
|
+
var processPdfWithTextract_js_1 = require("./media/processPdfWithTextract.js");
|
|
36
|
+
Object.defineProperty(exports, "convertPdfToStructuredText", { enumerable: true, get: function () { return processPdfWithTextract_js_1.convertPdfToStructuredText; } });
|
|
37
|
+
var saveGladiaTranscription_js_1 = require("./media/saveGladiaTranscription.js");
|
|
38
|
+
Object.defineProperty(exports, "saveGladiaTranscription", { enumerable: true, get: function () { return saveGladiaTranscription_js_1.saveGladiaTranscription; } });
|
|
39
|
+
var transcribeMediaWithGladia_js_1 = require("./media/transcribeMediaWithGladia.js");
|
|
40
|
+
Object.defineProperty(exports, "transcribeMedia", { enumerable: true, get: function () { return transcribeMediaWithGladia_js_1.transcribeMedia; } });
|
|
41
|
+
var mergeChildArtifacts_js_1 = require("./mergeChildArtifacts.js");
|
|
42
|
+
Object.defineProperty(exports, "mergeChildArtifacts", { enumerable: true, get: function () { return mergeChildArtifacts_js_1.mergeChildArtifacts; } });
|
|
43
|
+
var notifyWebhook_js_1 = require("./notifyWebhook.js");
|
|
44
|
+
Object.defineProperty(exports, "notifyWebhook", { enumerable: true, get: function () { return notifyWebhook_js_1.notifyWebhook; } });
|
|
45
|
+
var rateLimiter_js_1 = require("./rateLimiter.js");
|
|
46
|
+
Object.defineProperty(exports, "checkRateLimit", { enumerable: true, get: function () { return rateLimiter_js_1.checkRateLimit; } });
|
|
47
|
+
var generateImageRendition_js_1 = require("./renditions/generateImageRendition.js");
|
|
48
|
+
Object.defineProperty(exports, "generateImageRendition", { enumerable: true, get: function () { return generateImageRendition_js_1.generateImageRendition; } });
|
|
49
|
+
var generateVideoRendition_js_1 = require("./renditions/generateVideoRendition.js");
|
|
50
|
+
Object.defineProperty(exports, "generateVideoRendition", { enumerable: true, get: function () { return generateVideoRendition_js_1.generateVideoRendition; } });
|
|
51
|
+
var setDocumentStatus_js_1 = require("./setDocumentStatus.js");
|
|
52
|
+
Object.defineProperty(exports, "setDocumentStatus", { enumerable: true, get: function () { return setDocumentStatus_js_1.setDocumentStatus; } });
|
|
53
|
+
//# sourceMappingURL=index-dsl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-dsl.js","sourceRoot":"","sources":["../../../src/activities/index-dsl.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,8GAA0G;AAAjG,+JAAA,oCAAoC,OAAA;AAC7C,sHAAkH;AAAzG,uKAAA,wCAAwC,OAAA;AACjD,sGAAkG;AAAzF,uJAAA,gCAAgC,OAAA;AACzC,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,2EAA2E;AAAlE,yIAAA,2BAA2B,OAAA;AACpC,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA;AACnC,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,mFAA+E;AAAtE,6IAAA,2BAA2B,OAAA;AACpC,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2DAAuD;AAA9C,+GAAA,YAAY,OAAA;AACrB,2DAAuD;AAA9C,+GAAA,YAAY,OAAA;AACrB,+EAA+E;AAAtE,uIAAA,0BAA0B,OAAA;AACnC,iFAA6E;AAApE,qIAAA,uBAAuB,OAAA;AAChC,qFAAuE;AAA9D,+HAAA,eAAe,OAAA;AAExB,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,oFAAgF;AAAvE,mIAAA,sBAAsB,OAAA;AAC/B,oFAAgF;AAAvE,mIAAA,sBAAsB,OAAA;AAC/B,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* Here we export all activities to be registered with the temporal worker
|
|
19
|
+
*/
|
|
20
|
+
__exportStar(require("./index-dsl.js"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/activities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,iDAA+B"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.prepareAudio = prepareAudio;
|
|
40
|
+
const activity_1 = require("@temporalio/activity");
|
|
41
|
+
const common_1 = require("@vertesia/common");
|
|
42
|
+
const child_process_1 = require("child_process");
|
|
43
|
+
const fs_1 = __importDefault(require("fs"));
|
|
44
|
+
const os_1 = __importDefault(require("os"));
|
|
45
|
+
const path_1 = __importDefault(require("path"));
|
|
46
|
+
const util_1 = require("util");
|
|
47
|
+
const ActivityContext_js_1 = require("../../dsl/setup/ActivityContext.js");
|
|
48
|
+
const errors_js_1 = require("../../errors.js");
|
|
49
|
+
const blobs_js_1 = require("../../utils/blobs.js");
|
|
50
|
+
const api_fetch_client_1 = require("@vertesia/api-fetch-client");
|
|
51
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
52
|
+
// Default configuration constants
|
|
53
|
+
const DEFAULT_AUDIO_BITRATE = '128k'; // Default audio bitrate for AAC encoding
|
|
54
|
+
const FFMPEG_MAX_BUFFER = 1024 * 1024 * 10; // 10MB buffer for ffmpeg output
|
|
55
|
+
/**
|
|
56
|
+
* Extract comprehensive audio metadata using ffprobe
|
|
57
|
+
*/
|
|
58
|
+
async function getAudioMetadata(audioPath) {
|
|
59
|
+
try {
|
|
60
|
+
const command = `ffprobe -v quiet -print_format json -show_format -show_streams "${audioPath}"`;
|
|
61
|
+
const { stdout } = await execAsync(command);
|
|
62
|
+
const metadata = JSON.parse(stdout);
|
|
63
|
+
const audioStream = metadata.streams.find((stream) => stream.codec_type === 'audio');
|
|
64
|
+
if (!audioStream) {
|
|
65
|
+
throw new Error('No audio stream found in file');
|
|
66
|
+
}
|
|
67
|
+
const duration = parseFloat(metadata.format.duration ?? '0') || 0;
|
|
68
|
+
const codec = audioStream.codec_name || 'unknown';
|
|
69
|
+
const bitrate = parseInt(audioStream.bit_rate ?? metadata.format.bit_rate ?? '0', 10) || 0;
|
|
70
|
+
const sampleRate = parseInt(audioStream.sample_rate ?? '0', 10) || 0;
|
|
71
|
+
const channels = audioStream.channels || 0;
|
|
72
|
+
return { duration, codec, bitrate, sampleRate, channels };
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
activity_1.log.error(`Failed to get audio metadata: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
76
|
+
throw new Error(`Failed to probe audio metadata: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Generate a web-compatible audio rendition (AAC in M4A container)
|
|
81
|
+
* Ensures broad browser compatibility for HTML5 audio playback
|
|
82
|
+
*/
|
|
83
|
+
async function generateAudioRendition(audioPath, outputDir, audioBitrate) {
|
|
84
|
+
const outputFile = path_1.default.join(outputDir, 'audio.m4a');
|
|
85
|
+
const command = [
|
|
86
|
+
'ffmpeg',
|
|
87
|
+
'-y', // Overwrite output
|
|
88
|
+
'-i', `"${audioPath}"`,
|
|
89
|
+
'-c:a', 'aac', // AAC codec
|
|
90
|
+
'-b:a', audioBitrate, // Audio bitrate
|
|
91
|
+
'-movflags', '+faststart', // Enable streaming
|
|
92
|
+
`"${outputFile}"`,
|
|
93
|
+
].join(' ');
|
|
94
|
+
activity_1.log.info('Generating web audio rendition (AAC M4A)', { command, audioBitrate });
|
|
95
|
+
try {
|
|
96
|
+
const { stderr } = await execAsync(command, { maxBuffer: FFMPEG_MAX_BUFFER });
|
|
97
|
+
if (stderr && !stderr.includes('frame=')) {
|
|
98
|
+
activity_1.log.debug(`FFmpeg stderr for audio rendition: ${stderr}`);
|
|
99
|
+
}
|
|
100
|
+
// Verify output file was created
|
|
101
|
+
try {
|
|
102
|
+
await fs_1.default.promises.access(outputFile, fs_1.default.constants.F_OK);
|
|
103
|
+
activity_1.log.info(`Generated web audio rendition: ${outputFile}`);
|
|
104
|
+
return outputFile;
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
activity_1.log.warn('Audio rendition not generated');
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
activity_1.log.error(`Failed to generate audio rendition: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Upload a file to the storage and return its URI
|
|
118
|
+
*/
|
|
119
|
+
async function uploadFile(client, filePath, mimeType, fileName, storagePath) {
|
|
120
|
+
const { NodeStreamSource } = await Promise.resolve().then(() => __importStar(require('@vertesia/client/node')));
|
|
121
|
+
const fileStream = fs_1.default.createReadStream(filePath);
|
|
122
|
+
const source = new NodeStreamSource(fileStream, fileName, mimeType, storagePath);
|
|
123
|
+
const result = await client.files.uploadFile(source);
|
|
124
|
+
activity_1.log.info(`Uploaded file to ${storagePath}`, { result });
|
|
125
|
+
return result;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Upload audio file and create a rendition entry
|
|
129
|
+
*/
|
|
130
|
+
async function uploadAudioAsRendition(client, audioFile, renditionName, fileName, mimeType, etag) {
|
|
131
|
+
const storagePath = `renditions/${etag}/audio/${fileName}`;
|
|
132
|
+
const uri = await uploadFile(client, audioFile, mimeType, fileName, storagePath);
|
|
133
|
+
return {
|
|
134
|
+
name: renditionName,
|
|
135
|
+
content: {
|
|
136
|
+
source: uri,
|
|
137
|
+
type: mimeType,
|
|
138
|
+
name: fileName,
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Main activity: Prepare audio by extracting metadata and generating web rendition
|
|
144
|
+
*/
|
|
145
|
+
async function prepareAudio(payload) {
|
|
146
|
+
const { client, objectId, params, } = await (0, ActivityContext_js_1.setupActivity)(payload);
|
|
147
|
+
const audioBitrate = params.audioBitrate ?? DEFAULT_AUDIO_BITRATE;
|
|
148
|
+
activity_1.log.info(`Preparing audio for ${objectId}`, { audioBitrate });
|
|
149
|
+
// Retrieve the content object
|
|
150
|
+
const inputObject = await client.objects.retrieve(objectId).catch((err) => {
|
|
151
|
+
activity_1.log.error(`Failed to retrieve document ${objectId}`, { err });
|
|
152
|
+
if (err instanceof api_fetch_client_1.RequestError && err.status === 404) {
|
|
153
|
+
throw new errors_js_1.DocumentNotFoundError(`Document ${objectId} not found`, [objectId]);
|
|
154
|
+
}
|
|
155
|
+
throw err;
|
|
156
|
+
});
|
|
157
|
+
if (!inputObject.content?.source) {
|
|
158
|
+
activity_1.log.error(`Document ${objectId} has no source`);
|
|
159
|
+
throw new errors_js_1.DocumentNotFoundError(`Document ${objectId} has no source`, [objectId]);
|
|
160
|
+
}
|
|
161
|
+
if (!inputObject.content.type || !inputObject.content.type.startsWith('audio/')) {
|
|
162
|
+
activity_1.log.error(`Document ${objectId} is not an audio file: ${inputObject.content.type}`);
|
|
163
|
+
throw new errors_js_1.InvalidContentTypeError(objectId, 'audio/*', inputObject.content.type || 'unknown');
|
|
164
|
+
}
|
|
165
|
+
// Download audio to temp file
|
|
166
|
+
const audioFile = await (0, blobs_js_1.saveBlobToTempFile)(client, inputObject.content.source);
|
|
167
|
+
const tempOutputDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'prepare-audio-'));
|
|
168
|
+
try {
|
|
169
|
+
// Step 1: Extract audio metadata
|
|
170
|
+
activity_1.log.info('Extracting audio metadata');
|
|
171
|
+
const metadata = await getAudioMetadata(audioFile);
|
|
172
|
+
// Step 2: Generate web audio rendition (AAC M4A)
|
|
173
|
+
activity_1.log.info('Generating web audio rendition');
|
|
174
|
+
const renditionFile = await generateAudioRendition(audioFile, tempOutputDir, audioBitrate);
|
|
175
|
+
// Step 3: Upload generated rendition
|
|
176
|
+
const renditions = [];
|
|
177
|
+
const etag = inputObject.content.etag ?? inputObject.id;
|
|
178
|
+
if (renditionFile) {
|
|
179
|
+
const audioRendition = await uploadAudioAsRendition(client, renditionFile, common_1.AUDIO_RENDITION_NAME, 'audio.m4a', 'audio/mp4', etag);
|
|
180
|
+
renditions.push(audioRendition);
|
|
181
|
+
}
|
|
182
|
+
// Step 4: Update content object with metadata and renditions
|
|
183
|
+
const audioMetadata = {
|
|
184
|
+
type: common_1.ContentNature.Audio,
|
|
185
|
+
duration: metadata.duration,
|
|
186
|
+
renditions,
|
|
187
|
+
generation_runs: inputObject.metadata?.generation_runs || [],
|
|
188
|
+
};
|
|
189
|
+
await client.objects.update(objectId, {
|
|
190
|
+
metadata: audioMetadata,
|
|
191
|
+
});
|
|
192
|
+
activity_1.log.info(`Successfully prepared audio ${objectId}`, {
|
|
193
|
+
duration: metadata.duration,
|
|
194
|
+
codec: metadata.codec,
|
|
195
|
+
bitrate: metadata.bitrate,
|
|
196
|
+
sampleRate: metadata.sampleRate,
|
|
197
|
+
channels: metadata.channels,
|
|
198
|
+
renditionsGenerated: renditions.length,
|
|
199
|
+
});
|
|
200
|
+
return {
|
|
201
|
+
objectId,
|
|
202
|
+
metadata: {
|
|
203
|
+
duration: metadata.duration,
|
|
204
|
+
codec: metadata.codec,
|
|
205
|
+
bitrate: metadata.bitrate,
|
|
206
|
+
sampleRate: metadata.sampleRate,
|
|
207
|
+
channels: metadata.channels,
|
|
208
|
+
},
|
|
209
|
+
renditions: renditions,
|
|
210
|
+
status: 'success',
|
|
211
|
+
};
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
215
|
+
activity_1.log.error(`Error preparing audio: ${errorMessage}`, { error });
|
|
216
|
+
// Re-throw known errors as-is
|
|
217
|
+
if (error instanceof errors_js_1.DocumentNotFoundError || error instanceof errors_js_1.InvalidContentTypeError) {
|
|
218
|
+
throw error;
|
|
219
|
+
}
|
|
220
|
+
// Wrap unknown errors in Error
|
|
221
|
+
throw new Error(`Failed to prepare audio ${objectId}: ${errorMessage}`);
|
|
222
|
+
}
|
|
223
|
+
finally {
|
|
224
|
+
// Clean up temporary files
|
|
225
|
+
const cleanupPromises = [];
|
|
226
|
+
if (audioFile) {
|
|
227
|
+
cleanupPromises.push(fs_1.default.promises.unlink(audioFile).catch((err) => {
|
|
228
|
+
activity_1.log.warn(`Failed to cleanup audio file: ${audioFile}`, { err });
|
|
229
|
+
}));
|
|
230
|
+
}
|
|
231
|
+
if (tempOutputDir) {
|
|
232
|
+
cleanupPromises.push(fs_1.default.promises.rm(tempOutputDir, { recursive: true, force: true }).catch((err) => {
|
|
233
|
+
activity_1.log.warn(`Failed to cleanup temp directory: ${tempOutputDir}`, { err });
|
|
234
|
+
}));
|
|
235
|
+
}
|
|
236
|
+
await Promise.allSettled(cleanupPromises);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=prepareAudio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepareAudio.js","sourceRoot":"","sources":["../../../../src/activities/media/prepareAudio.ts"],"names":[],"mappings":"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"}
|