@vertesia/workflow 1.0.0-dev.20260203.130115Z → 1.0.0-dev.20260227.112605Z
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 +113 -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 +221 -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 +109 -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 +173 -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 +110 -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 +217 -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 +106 -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 +170 -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 +18083 -0
- package/package.json +6 -7
- package/src/activities/advanced/createOrUpdateDocumentFromInteractionRun.ts +1 -1
- package/src/activities/chunkDocument.ts +35 -6
- package/src/activities/executeInteraction.ts +37 -5
- package/src/activities/extractDocumentText.ts +84 -28
- package/src/activities/generateDocumentProperties.ts +42 -15
- package/src/activities/generateEmbeddings.ts +9 -9
- package/src/activities/generateOrAssignContentType.ts +74 -24
- 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/conversion/mutool.test.ts +1 -4
- package/src/conversion/pandoc.test.ts +1 -4
- package/src/dsl/dsl-workflow.ts +49 -9
- package/src/dsl/setup/ActivityContext.ts +73 -0
- package/src/dsl/workflow-exec-child.test.ts +12 -8
- package/src/dsl/workflow-fetch.test.ts +9 -6
- package/src/dsl/workflow-import.test.ts +10 -7
- package/src/dsl/workflow.test.ts +11 -8
- 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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vertesia/workflow",
|
|
3
|
-
"version": "1.0.0-dev.
|
|
3
|
+
"version": "1.0.0-dev.20260227.112605Z",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Vertesia workflow DSL",
|
|
6
6
|
"main": "./lib/esm/index.js",
|
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
"@aws-sdk/credential-providers": "^3.948.0",
|
|
31
31
|
"@temporalio/activity": "^1.11.5",
|
|
32
32
|
"@temporalio/workflow": "^1.11.5",
|
|
33
|
-
"@types/json-schema": "^7.0.15",
|
|
34
33
|
"fast-deep-equal": "^3.1.3",
|
|
35
34
|
"jsonwebtoken": "^9.0.3",
|
|
36
35
|
"mime": "^4.0.0",
|
|
@@ -44,11 +43,11 @@
|
|
|
44
43
|
"tmp": "^0.2.4",
|
|
45
44
|
"tmp-promise": "^3.0.3",
|
|
46
45
|
"yaml": "^2.6.0",
|
|
47
|
-
"@llumiverse/common": "1.0.0-dev.
|
|
48
|
-
"@vertesia/
|
|
49
|
-
"@vertesia/
|
|
50
|
-
"@vertesia/
|
|
51
|
-
"@vertesia/
|
|
46
|
+
"@llumiverse/common": "1.0.0-dev.20260224.234313Z",
|
|
47
|
+
"@vertesia/client": "1.0.0-dev.20260227.112605Z",
|
|
48
|
+
"@vertesia/common": "1.0.0-dev.20260227.112605Z",
|
|
49
|
+
"@vertesia/memory": "1.0.0-dev.20260227.112605Z",
|
|
50
|
+
"@vertesia/api-fetch-client": "1.0.0-dev.20260227.112605Z"
|
|
52
51
|
},
|
|
53
52
|
"ts_dual_module": {
|
|
54
53
|
"outDir": "lib",
|
|
@@ -90,7 +90,7 @@ export async function createOrUpdateDocumentFromInteractionRun(payload: DSLActiv
|
|
|
90
90
|
generation_run_info: {
|
|
91
91
|
id: run.id,
|
|
92
92
|
date: new Date().toISOString(),
|
|
93
|
-
model: run.modelId,
|
|
93
|
+
model: run.modelId ?? "",
|
|
94
94
|
target: jsonResult ? 'properties' : 'text'
|
|
95
95
|
}
|
|
96
96
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { log } from "@temporalio/activity";
|
|
1
|
+
import { ApplicationFailure, log } from "@temporalio/activity";
|
|
2
2
|
import { DSLActivityExecutionPayload, DSLActivitySpec } from "@vertesia/common";
|
|
3
3
|
import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
4
4
|
import { DocPart } from "../utils/chunks.js";
|
|
@@ -55,7 +55,9 @@ export async function chunkDocument(payload: DSLActivityExecutionPayload<ChunkDo
|
|
|
55
55
|
|
|
56
56
|
const document = await client.objects.retrieve(objectId, "+text");
|
|
57
57
|
|
|
58
|
-
const type = document.type
|
|
58
|
+
const type = document.type
|
|
59
|
+
? await client.types.catalog.resolve(document.type)
|
|
60
|
+
: undefined;
|
|
59
61
|
|
|
60
62
|
if (!type?.is_chunkable) {
|
|
61
63
|
log.warn('Type is not chunkable for object ID: ' + objectId);
|
|
@@ -77,10 +79,37 @@ export async function chunkDocument(payload: DSLActivityExecutionPayload<ChunkDo
|
|
|
77
79
|
const lines = document.text.split('\n')
|
|
78
80
|
const instrumented = lines.map((l, i) => `{%${i}%}${l}`).join('\n')
|
|
79
81
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
let res;
|
|
83
|
+
try {
|
|
84
|
+
res = await executeInteractionFromActivity(client, interactionName, params, {
|
|
85
|
+
objectId: objectId,
|
|
86
|
+
content: instrumented
|
|
87
|
+
});
|
|
88
|
+
} catch (error: any) {
|
|
89
|
+
log.error(`Failed to chunk document ${objectId}`, { error, retryable: error.retryable });
|
|
90
|
+
|
|
91
|
+
// Check retryability and convert to ApplicationFailure for Temporal
|
|
92
|
+
const isRetryable = error.retryable !== undefined
|
|
93
|
+
? error.retryable !== false
|
|
94
|
+
: undefined;
|
|
95
|
+
|
|
96
|
+
if (isRetryable !== undefined) {
|
|
97
|
+
if (isRetryable) {
|
|
98
|
+
throw ApplicationFailure.create({
|
|
99
|
+
message: `Document chunking failed for ${objectId}: ${error.message}`,
|
|
100
|
+
nonRetryable: false,
|
|
101
|
+
});
|
|
102
|
+
} else {
|
|
103
|
+
throw ApplicationFailure.create({
|
|
104
|
+
message: `Non-retryable document chunking failed for ${objectId}: ${error.message}`,
|
|
105
|
+
nonRetryable: true,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Unknown retryability - rethrow
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
84
113
|
|
|
85
114
|
const jsonResult = res.result.object();
|
|
86
115
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CompletionResult, ModelOptions } from "@llumiverse/common";
|
|
2
|
-
import { activityInfo, log } from "@temporalio/activity";
|
|
1
|
+
import { CompletionResult, ModelOptions, LlumiverseError } from "@llumiverse/common";
|
|
2
|
+
import { activityInfo, ApplicationFailure, log } from "@temporalio/activity";
|
|
3
3
|
import { VertesiaClient } from "@vertesia/client";
|
|
4
4
|
import { NodeStreamSource } from "@vertesia/client/node";
|
|
5
5
|
import {
|
|
@@ -208,9 +208,32 @@ export async function executeInteraction(payload: DSLActivityExecutionPayload<Ex
|
|
|
208
208
|
} else if (error.message.includes("modelId: Path `modelId` is required")) {
|
|
209
209
|
//issue with the input data, don't retry
|
|
210
210
|
throw new ActivityParamInvalidError("model", payload.activity, error.message);
|
|
211
|
-
} else {
|
|
212
|
-
throw new Error(`Interaction Execution failed ${interactionName}: ${error.message}`);
|
|
213
211
|
}
|
|
212
|
+
|
|
213
|
+
// Check retryability from error object (set by executeInteractionFromActivity)
|
|
214
|
+
// or from LlumiverseError instance (direct driver errors in some paths)
|
|
215
|
+
const isRetryable = error.retryable !== undefined
|
|
216
|
+
? error.retryable !== false // Treat undefined as retryable
|
|
217
|
+
: (error instanceof LlumiverseError ? error.retryable !== false : undefined);
|
|
218
|
+
|
|
219
|
+
if (isRetryable !== undefined) {
|
|
220
|
+
if (isRetryable) {
|
|
221
|
+
log.debug('Marking error as retryable', { interactionName, errorCode: error.errorCode });
|
|
222
|
+
throw ApplicationFailure.create({
|
|
223
|
+
message: `Interaction Execution failed ${interactionName}: ${error.message}`,
|
|
224
|
+
nonRetryable: false,
|
|
225
|
+
});
|
|
226
|
+
} else {
|
|
227
|
+
log.debug('Marking error as non-retryable', { interactionName, errorCode: error.errorCode });
|
|
228
|
+
throw ApplicationFailure.create({
|
|
229
|
+
message: `Non-retryable Interaction Execution failed ${interactionName}: ${error.message}`,
|
|
230
|
+
nonRetryable: true,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// Unknown retryability - rethrow as generic error (Temporal will use default retry policy)
|
|
236
|
+
throw new Error(`Interaction Execution failed ${interactionName}: ${error.message}`);
|
|
214
237
|
}
|
|
215
238
|
}
|
|
216
239
|
|
|
@@ -293,7 +316,16 @@ export async function executeInteractionFromActivity(
|
|
|
293
316
|
|
|
294
317
|
if (res.error || res.status === ExecutionRunStatus.failed) {
|
|
295
318
|
log.error(`Error executing interaction ${interactionName}`, { error: res.error });
|
|
296
|
-
|
|
319
|
+
|
|
320
|
+
// Create error with retryability information
|
|
321
|
+
const errorMessage = `Interaction Execution failed ${interactionName}: ${res.error?.message || 'Unknown error'}`;
|
|
322
|
+
const error = new Error(errorMessage);
|
|
323
|
+
|
|
324
|
+
// Attach retryable property so the catch block can access it
|
|
325
|
+
(error as any).retryable = res.error?.retryable;
|
|
326
|
+
(error as any).errorCode = res.error?.code;
|
|
327
|
+
|
|
328
|
+
throw error;
|
|
297
329
|
}
|
|
298
330
|
|
|
299
331
|
return res;
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
CreateContentObjectPayload,
|
|
5
5
|
DSLActivityExecutionPayload,
|
|
6
6
|
DSLActivitySpec,
|
|
7
|
+
WorkflowInputFile,
|
|
7
8
|
} from "@vertesia/common";
|
|
8
9
|
import { markdownWithMarkitdown } from "../conversion/markitdown.js";
|
|
9
10
|
import { mutoolPdfToText } from "../conversion/mutool.js";
|
|
@@ -12,6 +13,10 @@ import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
|
12
13
|
import { DocumentNotFoundError } from "../errors.js";
|
|
13
14
|
import { TextExtractionResult, TextExtractionStatus } from "../result-types.js";
|
|
14
15
|
import { fetchBlobAsBuffer, md5 } from "../utils/blobs.js";
|
|
16
|
+
import {
|
|
17
|
+
createFileSourceResult,
|
|
18
|
+
uploadTextPreviewToStorage
|
|
19
|
+
} from "../utils/text-preview-utils.js";
|
|
15
20
|
import { countTokens } from "../utils/tokens.js";
|
|
16
21
|
|
|
17
22
|
//@ts-ignore
|
|
@@ -19,8 +24,9 @@ const JSON: DSLActivitySpec = {
|
|
|
19
24
|
name: "extractDocumentText",
|
|
20
25
|
};
|
|
21
26
|
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
export interface ExtractDocumentTextParams {
|
|
28
|
+
output_storage_path?: string;
|
|
29
|
+
}
|
|
24
30
|
export interface ExtractDocumentText extends DSLActivitySpec<ExtractDocumentTextParams> {
|
|
25
31
|
name: "extractDocumentText";
|
|
26
32
|
projection?: never;
|
|
@@ -29,8 +35,27 @@ export interface ExtractDocumentText extends DSLActivitySpec<ExtractDocumentText
|
|
|
29
35
|
export async function extractDocumentText(
|
|
30
36
|
payload: DSLActivityExecutionPayload<ExtractDocumentTextParams>,
|
|
31
37
|
): Promise<TextExtractionResult> {
|
|
32
|
-
const
|
|
38
|
+
const context = await setupActivity(payload);
|
|
39
|
+
const { client, inputType, params } = context;
|
|
40
|
+
const { output_storage_path } = params;
|
|
41
|
+
|
|
42
|
+
if (inputType === 'files') {
|
|
43
|
+
// File mode: extract from file source
|
|
44
|
+
if (!output_storage_path) {
|
|
45
|
+
throw new Error('output_storage_path is required when extracting text from file sources');
|
|
46
|
+
}
|
|
47
|
+
return extractFromFileSource(client, context.file, output_storage_path);
|
|
48
|
+
} else {
|
|
49
|
+
// Object mode: fetch from object store
|
|
50
|
+
return extractFromObject(client, context.objectId, context.objectIds || []);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
33
53
|
|
|
54
|
+
async function extractFromObject(
|
|
55
|
+
client: any,
|
|
56
|
+
objectId: string,
|
|
57
|
+
objectIds: string[],
|
|
58
|
+
): Promise<TextExtractionResult> {
|
|
34
59
|
const r = await client.objects.find({
|
|
35
60
|
query: { _id: objectId },
|
|
36
61
|
limit: 1,
|
|
@@ -39,7 +64,7 @@ export async function extractDocumentText(
|
|
|
39
64
|
const doc = r[0] as ContentObject;
|
|
40
65
|
if (!doc) {
|
|
41
66
|
log.error(`Document ${objectId} not found`);
|
|
42
|
-
throw new DocumentNotFoundError(`Document ${objectId} not found`,
|
|
67
|
+
throw new DocumentNotFoundError(`Document ${objectId} not found`, objectIds);
|
|
43
68
|
}
|
|
44
69
|
|
|
45
70
|
log.info(`Extracting text for object ${doc.id}`);
|
|
@@ -65,10 +90,60 @@ export async function extractDocumentText(
|
|
|
65
90
|
return createResponse(doc, "", TextExtractionStatus.error, e.message);
|
|
66
91
|
}
|
|
67
92
|
|
|
68
|
-
|
|
93
|
+
const txt = await extractTextFromBuffer(fileBuffer, doc.content.type);
|
|
94
|
+
if (!txt) {
|
|
95
|
+
return createResponse(
|
|
96
|
+
doc,
|
|
97
|
+
doc.text ?? "",
|
|
98
|
+
TextExtractionStatus.skipped,
|
|
99
|
+
`Unsupported mime type: ${doc.content.type}`,
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const tokensData = countTokens(txt);
|
|
104
|
+
const etag = doc.content.etag ?? md5(txt);
|
|
105
|
+
|
|
106
|
+
const updateData: CreateContentObjectPayload = {
|
|
107
|
+
text: txt,
|
|
108
|
+
text_etag: etag,
|
|
109
|
+
tokens: {
|
|
110
|
+
...tokensData,
|
|
111
|
+
etag: etag,
|
|
112
|
+
},
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
await client.objects.update(doc.id, updateData);
|
|
116
|
+
|
|
117
|
+
return createResponse(doc, txt, TextExtractionStatus.success);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
async function extractFromFileSource(
|
|
121
|
+
client: any,
|
|
122
|
+
input_file: WorkflowInputFile,
|
|
123
|
+
output_storage_path: string
|
|
124
|
+
): Promise<TextExtractionResult> {
|
|
125
|
+
log.info(`Extracting text from ${input_file}`);
|
|
69
126
|
|
|
70
|
-
|
|
71
|
-
|
|
127
|
+
let fileBuffer: Buffer;
|
|
128
|
+
try {
|
|
129
|
+
fileBuffer = await fetchBlobAsBuffer(client, input_file.url);
|
|
130
|
+
} catch (e: any) {
|
|
131
|
+
log.error(`Error reading file: ${e}`);
|
|
132
|
+
return createFileSourceResult(input_file.url, output_storage_path, null);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
const txt = await extractTextFromBuffer(fileBuffer, input_file.mimetype);
|
|
136
|
+
|
|
137
|
+
// Upload extracted text to storage
|
|
138
|
+
if (txt && output_storage_path) {
|
|
139
|
+
await uploadTextPreviewToStorage(client, txt, output_storage_path, "Document");
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return createFileSourceResult(input_file.url, output_storage_path, txt);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
async function extractTextFromBuffer(fileBuffer: Buffer, mimeType: string): Promise<string | null> {
|
|
146
|
+
let txt: string;
|
|
72
147
|
|
|
73
148
|
switch (mimeType) {
|
|
74
149
|
case "application/pdf":
|
|
@@ -134,29 +209,10 @@ export async function extractDocumentText(
|
|
|
134
209
|
txt = fileBuffer.toString("utf8"); //TODO: add charset detection
|
|
135
210
|
break;
|
|
136
211
|
}
|
|
137
|
-
return
|
|
138
|
-
doc,
|
|
139
|
-
doc.text ?? "",
|
|
140
|
-
TextExtractionStatus.skipped,
|
|
141
|
-
`Unsupported mime type: ${doc.content.type}`,
|
|
142
|
-
);
|
|
212
|
+
return null;
|
|
143
213
|
}
|
|
144
214
|
|
|
145
|
-
|
|
146
|
-
const etag = doc.content.etag ?? md5(txt);
|
|
147
|
-
|
|
148
|
-
const updateData: CreateContentObjectPayload = {
|
|
149
|
-
text: txt,
|
|
150
|
-
text_etag: etag,
|
|
151
|
-
tokens: {
|
|
152
|
-
...tokensData,
|
|
153
|
-
etag: etag,
|
|
154
|
-
},
|
|
155
|
-
};
|
|
156
|
-
|
|
157
|
-
await client.objects.update(doc.id, updateData);
|
|
158
|
-
|
|
159
|
-
return createResponse(doc, txt, TextExtractionStatus.success);
|
|
215
|
+
return txt;
|
|
160
216
|
}
|
|
161
217
|
|
|
162
218
|
function createResponse(
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { log } from "@temporalio/activity";
|
|
1
|
+
import { ApplicationFailure, log } from "@temporalio/activity";
|
|
2
2
|
import { DSLActivityExecutionPayload, DSLActivitySpec } from "@vertesia/common";
|
|
3
3
|
import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
4
4
|
import { TruncateSpec, truncByMaxTokens } from "../utils/tokens.js";
|
|
@@ -30,7 +30,9 @@ export async function generateDocumentProperties(
|
|
|
30
30
|
const project = await context.fetchProject();
|
|
31
31
|
|
|
32
32
|
const doc = await client.objects.retrieve(objectId, "+text");
|
|
33
|
-
const type = doc.type
|
|
33
|
+
const type = doc.type
|
|
34
|
+
? await client.types.catalog.resolve(doc.type)
|
|
35
|
+
: undefined;
|
|
34
36
|
|
|
35
37
|
if (!doc?.text && !params.use_vision && !doc?.content?.type?.startsWith("image/")) {
|
|
36
38
|
log.warn(`Object ${objectId} not found or text is empty`);
|
|
@@ -70,18 +72,43 @@ export async function generateDocumentProperties(
|
|
|
70
72
|
payload.debug_mode ? { params } : undefined,
|
|
71
73
|
);
|
|
72
74
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
let infoRes;
|
|
76
|
+
try {
|
|
77
|
+
infoRes = await executeInteractionFromActivity(
|
|
78
|
+
client,
|
|
79
|
+
interactionName,
|
|
80
|
+
{
|
|
81
|
+
...params,
|
|
82
|
+
include_previous_error: true,
|
|
83
|
+
result_schema: type.object_schema,
|
|
84
|
+
validate_result: type.strict_mode,
|
|
85
|
+
},
|
|
86
|
+
promptData,
|
|
87
|
+
payload.debug_mode ?? false,
|
|
88
|
+
);
|
|
89
|
+
} catch (error: any) {
|
|
90
|
+
log.error(`Failed to extract document properties for ${objectId}`, { error, retryable: error.retryable });
|
|
91
|
+
|
|
92
|
+
const isRetryable = error.retryable !== undefined
|
|
93
|
+
? error.retryable !== false
|
|
94
|
+
: undefined;
|
|
95
|
+
|
|
96
|
+
if (isRetryable !== undefined) {
|
|
97
|
+
if (isRetryable) {
|
|
98
|
+
throw ApplicationFailure.create({
|
|
99
|
+
message: `Document property extraction failed for ${objectId}: ${error.message}`,
|
|
100
|
+
nonRetryable: false,
|
|
101
|
+
});
|
|
102
|
+
} else {
|
|
103
|
+
throw ApplicationFailure.create({
|
|
104
|
+
message: `Non-retryable document property extraction failed for ${objectId}: ${error.message}`,
|
|
105
|
+
nonRetryable: true,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
85
112
|
|
|
86
113
|
const getText = () => {
|
|
87
114
|
if (doc.text) {
|
|
@@ -112,7 +139,7 @@ export async function generateDocumentProperties(
|
|
|
112
139
|
generation_run_info: {
|
|
113
140
|
id: infoRes.id,
|
|
114
141
|
date: new Date().toISOString(),
|
|
115
|
-
model: infoRes.modelId,
|
|
142
|
+
model: infoRes.modelId ?? "",
|
|
116
143
|
},
|
|
117
144
|
}, { suppressWorkflows: true });
|
|
118
145
|
|
|
@@ -72,7 +72,7 @@ export async function generateEmbeddings(
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
if (!projectData?.configuration.embeddings[type]?.enabled) {
|
|
75
|
-
log.
|
|
75
|
+
log.debug(
|
|
76
76
|
`Embeddings generation disabled for type ${type} on project: ${projectData.name} (${projectData.namespace})`,
|
|
77
77
|
{ config },
|
|
78
78
|
);
|
|
@@ -83,7 +83,7 @@ export async function generateEmbeddings(
|
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
log.
|
|
86
|
+
log.debug(`${type} embedding generation starting for object ${objectId}`, {
|
|
87
87
|
force,
|
|
88
88
|
config,
|
|
89
89
|
});
|
|
@@ -203,7 +203,7 @@ async function generateTextEmbeddings(
|
|
|
203
203
|
// Skip if embeddings already exist with matching etag (unless force=true)
|
|
204
204
|
const existingEmbedding = document.embeddings?.[type];
|
|
205
205
|
if (!force && existingEmbedding?.etag && textEtag && existingEmbedding.etag === textEtag) {
|
|
206
|
-
log.
|
|
206
|
+
log.debug(`Skipping ${type} embeddings for document ${document.id} - etag unchanged`);
|
|
207
207
|
return {
|
|
208
208
|
id: document.id,
|
|
209
209
|
type,
|
|
@@ -221,7 +221,7 @@ async function generateTextEmbeddings(
|
|
|
221
221
|
const maxTokens = config.max_tokens ?? 8000;
|
|
222
222
|
|
|
223
223
|
//generate embeddings for the main doc if document isn't too large
|
|
224
|
-
log.
|
|
224
|
+
log.debug(`Generating ${type} embeddings for document ${document.id}`);
|
|
225
225
|
if (
|
|
226
226
|
type === SupportedEmbeddingTypes.text &&
|
|
227
227
|
tokenCount !== undefined &&
|
|
@@ -237,7 +237,7 @@ async function generateTextEmbeddings(
|
|
|
237
237
|
message: `${type} embeddings generation, skipped for large document (${tokenCount} tokens)`,
|
|
238
238
|
}
|
|
239
239
|
} else {
|
|
240
|
-
log.
|
|
240
|
+
log.debug(`Generating ${type} embeddings for document`);
|
|
241
241
|
|
|
242
242
|
const res = await generateEmbeddingsFromStudio(
|
|
243
243
|
JSON.stringify(document[type]),
|
|
@@ -252,7 +252,7 @@ async function generateTextEmbeddings(
|
|
|
252
252
|
};
|
|
253
253
|
}
|
|
254
254
|
|
|
255
|
-
log.
|
|
255
|
+
log.debug(`${type} embeddings generated for document ${document.id}`, {
|
|
256
256
|
len: res.values.length,
|
|
257
257
|
});
|
|
258
258
|
await client.objects.setEmbedding(document.id, type, {
|
|
@@ -277,7 +277,7 @@ async function generateImageEmbeddings({
|
|
|
277
277
|
config,
|
|
278
278
|
force,
|
|
279
279
|
}: ExecuteGenerateEmbeddingsParams) {
|
|
280
|
-
log.
|
|
280
|
+
log.debug("Generating image embeddings for document " + document.id, {
|
|
281
281
|
content: document.content,
|
|
282
282
|
});
|
|
283
283
|
if (
|
|
@@ -298,7 +298,7 @@ async function generateImageEmbeddings({
|
|
|
298
298
|
// Skip if embeddings already exist with matching etag (unless force=true)
|
|
299
299
|
const existingEmbedding = document.embeddings?.[type];
|
|
300
300
|
if (!force && existingEmbedding?.etag && contentEtag && existingEmbedding.etag === contentEtag) {
|
|
301
|
-
log.
|
|
301
|
+
log.debug(`Skipping ${type} embeddings for document ${document.id} - content etag unchanged`);
|
|
302
302
|
return {
|
|
303
303
|
id: document.id,
|
|
304
304
|
type,
|
|
@@ -378,7 +378,7 @@ async function generateEmbeddingsFromStudio(
|
|
|
378
378
|
client: VertesiaClient,
|
|
379
379
|
model?: string,
|
|
380
380
|
): Promise<EmbeddingsResult> {
|
|
381
|
-
log.
|
|
381
|
+
log.debug(
|
|
382
382
|
`Generating embeddings for text of ${text.length} chars with environment ${env}`,
|
|
383
383
|
);
|
|
384
384
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { log } from "@temporalio/activity";
|
|
1
|
+
import { ApplicationFailure, log } from "@temporalio/activity";
|
|
2
2
|
import {
|
|
3
3
|
ContentObjectTypeItem,
|
|
4
4
|
CreateContentObjectTypePayload,
|
|
@@ -52,7 +52,7 @@ export async function generateOrAssignContentType(
|
|
|
52
52
|
const interactionName =
|
|
53
53
|
params.interactionNames?.selectDocumentType ?? INT_SELECT_DOCUMENT_TYPE;
|
|
54
54
|
|
|
55
|
-
log.
|
|
55
|
+
log.debug("SelectDocumentType for object: " + objectId, { payload });
|
|
56
56
|
|
|
57
57
|
const object = await client.objects.retrieve(objectId, "+text");
|
|
58
58
|
|
|
@@ -80,7 +80,7 @@ export async function generateOrAssignContentType(
|
|
|
80
80
|
return { status: "failed", error: "no-text" };
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
const types = await client.types.list(
|
|
83
|
+
const types = await client.types.catalog.list({
|
|
84
84
|
schema: true,
|
|
85
85
|
});
|
|
86
86
|
|
|
@@ -122,16 +122,41 @@ export async function generateOrAssignContentType(
|
|
|
122
122
|
existing_types.filter((t) => !t.tags?.includes("system")),
|
|
123
123
|
);
|
|
124
124
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
125
|
+
let res;
|
|
126
|
+
try {
|
|
127
|
+
res = await executeInteractionFromActivity(
|
|
128
|
+
client,
|
|
129
|
+
interactionName,
|
|
130
|
+
params,
|
|
131
|
+
{
|
|
132
|
+
existing_types,
|
|
133
|
+
content,
|
|
134
|
+
image: fileRef,
|
|
135
|
+
},
|
|
136
|
+
);
|
|
137
|
+
} catch (error: any) {
|
|
138
|
+
log.error(`Failed to select document type`, { error, retryable: error.retryable });
|
|
139
|
+
|
|
140
|
+
const isRetryable = error.retryable !== undefined
|
|
141
|
+
? error.retryable !== false
|
|
142
|
+
: undefined;
|
|
143
|
+
|
|
144
|
+
if (isRetryable !== undefined) {
|
|
145
|
+
if (isRetryable) {
|
|
146
|
+
throw ApplicationFailure.create({
|
|
147
|
+
message: `Document type selection failed: ${error.message}`,
|
|
148
|
+
nonRetryable: false,
|
|
149
|
+
});
|
|
150
|
+
} else {
|
|
151
|
+
throw ApplicationFailure.create({
|
|
152
|
+
message: `Non-retryable document type selection failed: ${error.message}`,
|
|
153
|
+
nonRetryable: true,
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
throw error;
|
|
159
|
+
}
|
|
135
160
|
|
|
136
161
|
const jsonResult = res.result.object();
|
|
137
162
|
|
|
@@ -184,17 +209,42 @@ async function generateNewType(
|
|
|
184
209
|
params.interactionNames?.generateMetadataModel ??
|
|
185
210
|
INT_GENERATE_METADATA_MODEL;
|
|
186
211
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
212
|
+
let genTypeRes;
|
|
213
|
+
try {
|
|
214
|
+
genTypeRes = await executeInteractionFromActivity(
|
|
215
|
+
client,
|
|
216
|
+
interactionName,
|
|
217
|
+
params,
|
|
218
|
+
{
|
|
219
|
+
existing_types,
|
|
220
|
+
content: content,
|
|
221
|
+
human_context: project?.configuration?.human_context ?? undefined,
|
|
222
|
+
image: fileRef ? fileRef : undefined,
|
|
223
|
+
},
|
|
224
|
+
);
|
|
225
|
+
} catch (error: any) {
|
|
226
|
+
log.error(`Failed to generate new document type`, { error, retryable: error.retryable });
|
|
227
|
+
|
|
228
|
+
const isRetryable = error.retryable !== undefined
|
|
229
|
+
? error.retryable !== false
|
|
230
|
+
: undefined;
|
|
231
|
+
|
|
232
|
+
if (isRetryable !== undefined) {
|
|
233
|
+
if (isRetryable) {
|
|
234
|
+
throw ApplicationFailure.create({
|
|
235
|
+
message: `Document type generation failed: ${error.message}`,
|
|
236
|
+
nonRetryable: false,
|
|
237
|
+
});
|
|
238
|
+
} else {
|
|
239
|
+
throw ApplicationFailure.create({
|
|
240
|
+
message: `Non-retryable document type generation failed: ${error.message}`,
|
|
241
|
+
nonRetryable: true,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
throw error;
|
|
247
|
+
}
|
|
198
248
|
|
|
199
249
|
const jsonResult = genTypeRes.result.object();
|
|
200
250
|
|
|
@@ -3,6 +3,7 @@ export { createDocumentTypeFromInteractionRun } from "./advanced/createDocumentT
|
|
|
3
3
|
export { createOrUpdateDocumentFromInteractionRun } from "./advanced/createOrUpdateDocumentFromInteractionRun.js";
|
|
4
4
|
export { updateDocumentFromInteractionRun } from "./advanced/updateDocumentFromInteractionRun.js";
|
|
5
5
|
export { chunkDocument } from "./chunkDocument.js";
|
|
6
|
+
export { copyParentArtifacts } from "./copyParentArtifacts.js";
|
|
6
7
|
export { createPdfDocumentFromSource } from "./createDocumentFromOther.js";
|
|
7
8
|
export { executeInteraction } from "./executeInteraction.js";
|
|
8
9
|
export { extractDocumentText } from "./extractDocumentText.js";
|
|
@@ -11,16 +12,16 @@ export { generateEmbeddings } from "./generateEmbeddings.js";
|
|
|
11
12
|
export { generateOrAssignContentType } from "./generateOrAssignContentType.js";
|
|
12
13
|
export { getObjectFromStore } from "./getObjectFromStore.js";
|
|
13
14
|
export { handleDslError } from "./handleError.js";
|
|
14
|
-
export { prepareVideo } from "./media/prepareVideo.js";
|
|
15
15
|
export { prepareAudio } from "./media/prepareAudio.js";
|
|
16
|
+
export { prepareVideo } from "./media/prepareVideo.js";
|
|
16
17
|
export { convertPdfToStructuredText } from "./media/processPdfWithTextract.js";
|
|
17
18
|
export { saveGladiaTranscription } from "./media/saveGladiaTranscription.js";
|
|
18
19
|
export { transcribeMedia } from "./media/transcribeMediaWithGladia.js";
|
|
19
20
|
export type { TranscriptMediaResult } from "./media/transcribeMediaWithGladia.js";
|
|
21
|
+
export { mergeChildArtifacts } from "./mergeChildArtifacts.js";
|
|
20
22
|
export { notifyWebhook } from "./notifyWebhook.js";
|
|
21
23
|
export { checkRateLimit } from "./rateLimiter.js";
|
|
22
|
-
export { copyParentArtifacts } from "./copyParentArtifacts.js";
|
|
23
|
-
export { mergeChildArtifacts } from "./mergeChildArtifacts.js";
|
|
24
24
|
export { generateImageRendition } from "./renditions/generateImageRendition.js";
|
|
25
25
|
export { generateVideoRendition } from "./renditions/generateVideoRendition.js";
|
|
26
26
|
export { setDocumentStatus } from "./setDocumentStatus.js";
|
|
27
|
+
|