@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.
Files changed (442) hide show
  1. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js +33 -0
  2. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
  3. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +73 -0
  4. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
  5. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js +19 -0
  6. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
  7. package/lib/cjs/activities/chunkDocument.js +87 -0
  8. package/lib/cjs/activities/chunkDocument.js.map +1 -0
  9. package/lib/cjs/activities/copyParentArtifacts.js +127 -0
  10. package/lib/cjs/activities/copyParentArtifacts.js.map +1 -0
  11. package/lib/cjs/activities/createDocumentFromOther.js +64 -0
  12. package/lib/cjs/activities/createDocumentFromOther.js.map +1 -0
  13. package/lib/cjs/activities/executeInteraction.js +194 -0
  14. package/lib/cjs/activities/executeInteraction.js.map +1 -0
  15. package/lib/cjs/activities/extractDocumentText.js +196 -0
  16. package/lib/cjs/activities/extractDocumentText.js.map +1 -0
  17. package/lib/cjs/activities/generateDocumentProperties.js +85 -0
  18. package/lib/cjs/activities/generateDocumentProperties.js.map +1 -0
  19. package/lib/cjs/activities/generateEmbeddings.js +267 -0
  20. package/lib/cjs/activities/generateEmbeddings.js.map +1 -0
  21. package/lib/cjs/activities/generateOrAssignContentType.js +125 -0
  22. package/lib/cjs/activities/generateOrAssignContentType.js.map +1 -0
  23. package/lib/cjs/activities/getObjectFromStore.js +20 -0
  24. package/lib/cjs/activities/getObjectFromStore.js.map +1 -0
  25. package/lib/cjs/activities/handleError.js +22 -0
  26. package/lib/cjs/activities/handleError.js.map +1 -0
  27. package/lib/cjs/activities/index-dsl.js +53 -0
  28. package/lib/cjs/activities/index-dsl.js.map +1 -0
  29. package/lib/cjs/activities/index.js +21 -0
  30. package/lib/cjs/activities/index.js.map +1 -0
  31. package/lib/cjs/activities/media/prepareAudio.js +239 -0
  32. package/lib/cjs/activities/media/prepareAudio.js.map +1 -0
  33. package/lib/cjs/activities/media/prepareVideo.js +429 -0
  34. package/lib/cjs/activities/media/prepareVideo.js.map +1 -0
  35. package/lib/cjs/activities/media/processPdfWithTextract.js +103 -0
  36. package/lib/cjs/activities/media/processPdfWithTextract.js.map +1 -0
  37. package/lib/cjs/activities/media/saveGladiaTranscription.js +95 -0
  38. package/lib/cjs/activities/media/saveGladiaTranscription.js.map +1 -0
  39. package/lib/cjs/activities/media/transcribeMediaWithGladia.js +99 -0
  40. package/lib/cjs/activities/media/transcribeMediaWithGladia.js.map +1 -0
  41. package/lib/cjs/activities/mergeChildArtifacts.js +150 -0
  42. package/lib/cjs/activities/mergeChildArtifacts.js.map +1 -0
  43. package/lib/cjs/activities/notifyWebhook.js +167 -0
  44. package/lib/cjs/activities/notifyWebhook.js.map +1 -0
  45. package/lib/cjs/activities/rateLimiter.js +30 -0
  46. package/lib/cjs/activities/rateLimiter.js.map +1 -0
  47. package/lib/cjs/activities/renditions/generateImageRendition.js +66 -0
  48. package/lib/cjs/activities/renditions/generateImageRendition.js.map +1 -0
  49. package/lib/cjs/activities/renditions/generateVideoRendition.js +200 -0
  50. package/lib/cjs/activities/renditions/generateVideoRendition.js.map +1 -0
  51. package/lib/cjs/activities/setDocumentStatus.js +26 -0
  52. package/lib/cjs/activities/setDocumentStatus.js.map +1 -0
  53. package/lib/cjs/conversion/TextractProcessor.js +417 -0
  54. package/lib/cjs/conversion/TextractProcessor.js.map +1 -0
  55. package/lib/cjs/conversion/image.js +149 -0
  56. package/lib/cjs/conversion/image.js.map +1 -0
  57. package/lib/cjs/conversion/markitdown.js +42 -0
  58. package/lib/cjs/conversion/markitdown.js.map +1 -0
  59. package/lib/cjs/conversion/mutool.js +147 -0
  60. package/lib/cjs/conversion/mutool.js.map +1 -0
  61. package/lib/cjs/conversion/pandoc.js +39 -0
  62. package/lib/cjs/conversion/pandoc.js.map +1 -0
  63. package/lib/cjs/dsl/conditions.js +81 -0
  64. package/lib/cjs/dsl/conditions.js.map +1 -0
  65. package/lib/cjs/dsl/dsl-workflow.js +380 -0
  66. package/lib/cjs/dsl/dsl-workflow.js.map +1 -0
  67. package/lib/cjs/dsl/dslProxyActivities.js +23 -0
  68. package/lib/cjs/dsl/dslProxyActivities.js.map +1 -0
  69. package/lib/cjs/dsl/projections.js +59 -0
  70. package/lib/cjs/dsl/projections.js.map +1 -0
  71. package/lib/cjs/dsl/setup/ActivityContext.js +178 -0
  72. package/lib/cjs/dsl/setup/ActivityContext.js.map +1 -0
  73. package/lib/cjs/dsl/setup/fetch/DataProvider.js +51 -0
  74. package/lib/cjs/dsl/setup/fetch/DataProvider.js.map +1 -0
  75. package/lib/cjs/dsl/setup/fetch/index.js +16 -0
  76. package/lib/cjs/dsl/setup/fetch/index.js.map +1 -0
  77. package/lib/cjs/dsl/setup/fetch/providers.js +67 -0
  78. package/lib/cjs/dsl/setup/fetch/providers.js.map +1 -0
  79. package/lib/cjs/dsl/test/test-child-workflow.js +10 -0
  80. package/lib/cjs/dsl/test/test-child-workflow.js.map +1 -0
  81. package/lib/cjs/dsl/validation.js +122 -0
  82. package/lib/cjs/dsl/validation.js.map +1 -0
  83. package/lib/cjs/dsl/vars.js +341 -0
  84. package/lib/cjs/dsl/vars.js.map +1 -0
  85. package/lib/cjs/dsl/walk.js +100 -0
  86. package/lib/cjs/dsl/walk.js.map +1 -0
  87. package/lib/cjs/dsl.js +20 -0
  88. package/lib/cjs/dsl.js.map +1 -0
  89. package/lib/cjs/errors.js +89 -0
  90. package/lib/cjs/errors.js.map +1 -0
  91. package/lib/cjs/index.js +57 -0
  92. package/lib/cjs/index.js.map +1 -0
  93. package/lib/cjs/iterative-generation/activities/extractToc.js +47 -0
  94. package/lib/cjs/iterative-generation/activities/extractToc.js.map +1 -0
  95. package/lib/cjs/iterative-generation/activities/finalizeOutput.js +72 -0
  96. package/lib/cjs/iterative-generation/activities/finalizeOutput.js.map +1 -0
  97. package/lib/cjs/iterative-generation/activities/generatePart.js +78 -0
  98. package/lib/cjs/iterative-generation/activities/generatePart.js.map +1 -0
  99. package/lib/cjs/iterative-generation/activities/generateToc.js +86 -0
  100. package/lib/cjs/iterative-generation/activities/generateToc.js.map +1 -0
  101. package/lib/cjs/iterative-generation/activities/index.js +12 -0
  102. package/lib/cjs/iterative-generation/activities/index.js.map +1 -0
  103. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js +56 -0
  104. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
  105. package/lib/cjs/iterative-generation/types.js +5 -0
  106. package/lib/cjs/iterative-generation/types.js.map +1 -0
  107. package/lib/cjs/iterative-generation/utils.js +121 -0
  108. package/lib/cjs/iterative-generation/utils.js.map +1 -0
  109. package/lib/cjs/package.json +3 -0
  110. package/lib/cjs/result-types.js +10 -0
  111. package/lib/cjs/result-types.js.map +1 -0
  112. package/lib/cjs/system/notifyWebhookWorkflow.js +53 -0
  113. package/lib/cjs/system/notifyWebhookWorkflow.js.map +1 -0
  114. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js +33 -0
  115. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js.map +1 -0
  116. package/lib/cjs/utils/auth.js +15 -0
  117. package/lib/cjs/utils/auth.js.map +1 -0
  118. package/lib/cjs/utils/blobs.js +64 -0
  119. package/lib/cjs/utils/blobs.js.map +1 -0
  120. package/lib/cjs/utils/chunks.js +14 -0
  121. package/lib/cjs/utils/chunks.js.map +1 -0
  122. package/lib/cjs/utils/client.js +31 -0
  123. package/lib/cjs/utils/client.js.map +1 -0
  124. package/lib/cjs/utils/expand-vars.js +33 -0
  125. package/lib/cjs/utils/expand-vars.js.map +1 -0
  126. package/lib/cjs/utils/memory.js +65 -0
  127. package/lib/cjs/utils/memory.js.map +1 -0
  128. package/lib/cjs/utils/renditions.js +92 -0
  129. package/lib/cjs/utils/renditions.js.map +1 -0
  130. package/lib/cjs/utils/storage.js +54 -0
  131. package/lib/cjs/utils/storage.js.map +1 -0
  132. package/lib/cjs/utils/text-preview-utils.js +43 -0
  133. package/lib/cjs/utils/text-preview-utils.js.map +1 -0
  134. package/lib/cjs/utils/tokens.js +38 -0
  135. package/lib/cjs/utils/tokens.js.map +1 -0
  136. package/lib/cjs/vars.js +20 -0
  137. package/lib/cjs/vars.js.map +1 -0
  138. package/lib/cjs/workflows.js +15 -0
  139. package/lib/cjs/workflows.js.map +1 -0
  140. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js +30 -0
  141. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
  142. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +70 -0
  143. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
  144. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js +16 -0
  145. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
  146. package/lib/esm/activities/chunkDocument.js +84 -0
  147. package/lib/esm/activities/chunkDocument.js.map +1 -0
  148. package/lib/esm/activities/copyParentArtifacts.js +124 -0
  149. package/lib/esm/activities/copyParentArtifacts.js.map +1 -0
  150. package/lib/esm/activities/createDocumentFromOther.js +58 -0
  151. package/lib/esm/activities/createDocumentFromOther.js.map +1 -0
  152. package/lib/esm/activities/executeInteraction.js +190 -0
  153. package/lib/esm/activities/executeInteraction.js.map +1 -0
  154. package/lib/esm/activities/extractDocumentText.js +193 -0
  155. package/lib/esm/activities/extractDocumentText.js.map +1 -0
  156. package/lib/esm/activities/generateDocumentProperties.js +82 -0
  157. package/lib/esm/activities/generateDocumentProperties.js.map +1 -0
  158. package/lib/esm/activities/generateEmbeddings.js +264 -0
  159. package/lib/esm/activities/generateEmbeddings.js.map +1 -0
  160. package/lib/esm/activities/generateOrAssignContentType.js +122 -0
  161. package/lib/esm/activities/generateOrAssignContentType.js.map +1 -0
  162. package/lib/esm/activities/getObjectFromStore.js +17 -0
  163. package/lib/esm/activities/getObjectFromStore.js.map +1 -0
  164. package/lib/esm/activities/handleError.js +19 -0
  165. package/lib/esm/activities/handleError.js.map +1 -0
  166. package/lib/esm/activities/index-dsl.js +26 -0
  167. package/lib/esm/activities/index-dsl.js.map +1 -0
  168. package/lib/esm/activities/index.js +5 -0
  169. package/lib/esm/activities/index.js.map +1 -0
  170. package/lib/esm/activities/media/prepareAudio.js +200 -0
  171. package/lib/esm/activities/media/prepareAudio.js.map +1 -0
  172. package/lib/esm/activities/media/prepareVideo.js +390 -0
  173. package/lib/esm/activities/media/prepareVideo.js.map +1 -0
  174. package/lib/esm/activities/media/processPdfWithTextract.js +99 -0
  175. package/lib/esm/activities/media/processPdfWithTextract.js.map +1 -0
  176. package/lib/esm/activities/media/saveGladiaTranscription.js +92 -0
  177. package/lib/esm/activities/media/saveGladiaTranscription.js.map +1 -0
  178. package/lib/esm/activities/media/transcribeMediaWithGladia.js +96 -0
  179. package/lib/esm/activities/media/transcribeMediaWithGladia.js.map +1 -0
  180. package/lib/esm/activities/mergeChildArtifacts.js +147 -0
  181. package/lib/esm/activities/mergeChildArtifacts.js.map +1 -0
  182. package/lib/esm/activities/notifyWebhook.js +164 -0
  183. package/lib/esm/activities/notifyWebhook.js.map +1 -0
  184. package/lib/esm/activities/rateLimiter.js +27 -0
  185. package/lib/esm/activities/rateLimiter.js.map +1 -0
  186. package/lib/esm/activities/renditions/generateImageRendition.js +63 -0
  187. package/lib/esm/activities/renditions/generateImageRendition.js.map +1 -0
  188. package/lib/esm/activities/renditions/generateVideoRendition.js +194 -0
  189. package/lib/esm/activities/renditions/generateVideoRendition.js.map +1 -0
  190. package/lib/esm/activities/setDocumentStatus.js +23 -0
  191. package/lib/esm/activities/setDocumentStatus.js.map +1 -0
  192. package/lib/esm/conversion/TextractProcessor.js +410 -0
  193. package/lib/esm/conversion/TextractProcessor.js.map +1 -0
  194. package/lib/esm/conversion/image.js +143 -0
  195. package/lib/esm/conversion/image.js.map +1 -0
  196. package/lib/esm/conversion/markitdown.js +36 -0
  197. package/lib/esm/conversion/markitdown.js.map +1 -0
  198. package/lib/esm/conversion/mutool.js +139 -0
  199. package/lib/esm/conversion/mutool.js.map +1 -0
  200. package/lib/esm/conversion/pandoc.js +36 -0
  201. package/lib/esm/conversion/pandoc.js.map +1 -0
  202. package/lib/esm/dsl/conditions.js +75 -0
  203. package/lib/esm/dsl/conditions.js.map +1 -0
  204. package/lib/esm/dsl/dsl-workflow.js +373 -0
  205. package/lib/esm/dsl/dsl-workflow.js.map +1 -0
  206. package/lib/esm/dsl/dslProxyActivities.js +20 -0
  207. package/lib/esm/dsl/dslProxyActivities.js.map +1 -0
  208. package/lib/esm/dsl/projections.js +55 -0
  209. package/lib/esm/dsl/projections.js.map +1 -0
  210. package/lib/esm/dsl/setup/ActivityContext.js +173 -0
  211. package/lib/esm/dsl/setup/ActivityContext.js.map +1 -0
  212. package/lib/esm/dsl/setup/fetch/DataProvider.js +47 -0
  213. package/lib/esm/dsl/setup/fetch/DataProvider.js.map +1 -0
  214. package/lib/esm/dsl/setup/fetch/index.js +12 -0
  215. package/lib/esm/dsl/setup/fetch/index.js.map +1 -0
  216. package/lib/esm/dsl/setup/fetch/providers.js +61 -0
  217. package/lib/esm/dsl/setup/fetch/providers.js.map +1 -0
  218. package/lib/esm/dsl/test/test-child-workflow.js +5 -0
  219. package/lib/esm/dsl/test/test-child-workflow.js.map +1 -0
  220. package/lib/esm/dsl/validation.js +118 -0
  221. package/lib/esm/dsl/validation.js.map +1 -0
  222. package/lib/esm/dsl/vars.js +335 -0
  223. package/lib/esm/dsl/vars.js.map +1 -0
  224. package/lib/esm/dsl/walk.js +96 -0
  225. package/lib/esm/dsl/walk.js.map +1 -0
  226. package/lib/esm/dsl.js +4 -0
  227. package/lib/esm/dsl.js.map +1 -0
  228. package/lib/esm/errors.js +78 -0
  229. package/lib/esm/errors.js.map +1 -0
  230. package/lib/esm/index.js +39 -0
  231. package/lib/esm/index.js.map +1 -0
  232. package/lib/esm/iterative-generation/activities/extractToc.js +44 -0
  233. package/lib/esm/iterative-generation/activities/extractToc.js.map +1 -0
  234. package/lib/esm/iterative-generation/activities/finalizeOutput.js +69 -0
  235. package/lib/esm/iterative-generation/activities/finalizeOutput.js.map +1 -0
  236. package/lib/esm/iterative-generation/activities/generatePart.js +75 -0
  237. package/lib/esm/iterative-generation/activities/generatePart.js.map +1 -0
  238. package/lib/esm/iterative-generation/activities/generateToc.js +83 -0
  239. package/lib/esm/iterative-generation/activities/generateToc.js.map +1 -0
  240. package/lib/esm/iterative-generation/activities/index.js +5 -0
  241. package/lib/esm/iterative-generation/activities/index.js.map +1 -0
  242. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js +53 -0
  243. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
  244. package/lib/esm/iterative-generation/types.js +2 -0
  245. package/lib/esm/iterative-generation/types.js.map +1 -0
  246. package/lib/esm/iterative-generation/utils.js +112 -0
  247. package/lib/esm/iterative-generation/utils.js.map +1 -0
  248. package/lib/esm/result-types.js +7 -0
  249. package/lib/esm/result-types.js.map +1 -0
  250. package/lib/esm/system/notifyWebhookWorkflow.js +50 -0
  251. package/lib/esm/system/notifyWebhookWorkflow.js.map +1 -0
  252. package/lib/esm/system/recalculateEmbeddingsWorkflow.js +30 -0
  253. package/lib/esm/system/recalculateEmbeddingsWorkflow.js.map +1 -0
  254. package/lib/esm/utils/auth.js +8 -0
  255. package/lib/esm/utils/auth.js.map +1 -0
  256. package/lib/esm/utils/blobs.js +54 -0
  257. package/lib/esm/utils/blobs.js.map +1 -0
  258. package/lib/esm/utils/chunks.js +9 -0
  259. package/lib/esm/utils/chunks.js.map +1 -0
  260. package/lib/esm/utils/client.js +27 -0
  261. package/lib/esm/utils/client.js.map +1 -0
  262. package/lib/esm/utils/expand-vars.js +30 -0
  263. package/lib/esm/utils/expand-vars.js.map +1 -0
  264. package/lib/esm/utils/memory.js +55 -0
  265. package/lib/esm/utils/memory.js.map +1 -0
  266. package/lib/esm/utils/renditions.js +84 -0
  267. package/lib/esm/utils/renditions.js.map +1 -0
  268. package/lib/esm/utils/storage.js +45 -0
  269. package/lib/esm/utils/storage.js.map +1 -0
  270. package/lib/esm/utils/text-preview-utils.js +38 -0
  271. package/lib/esm/utils/text-preview-utils.js.map +1 -0
  272. package/lib/esm/utils/tokens.js +34 -0
  273. package/lib/esm/utils/tokens.js.map +1 -0
  274. package/lib/esm/vars.js +4 -0
  275. package/lib/esm/vars.js.map +1 -0
  276. package/lib/esm/workflows.js +8 -0
  277. package/lib/esm/workflows.js.map +1 -0
  278. package/lib/tsconfig.tsbuildinfo +1 -0
  279. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts +17 -0
  280. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +1 -0
  281. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts +39 -0
  282. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +1 -0
  283. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts +19 -0
  284. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +1 -0
  285. package/lib/types/activities/chunkDocument.d.ts +33 -0
  286. package/lib/types/activities/chunkDocument.d.ts.map +1 -0
  287. package/lib/types/activities/copyParentArtifacts.d.ts +19 -0
  288. package/lib/types/activities/copyParentArtifacts.d.ts.map +1 -0
  289. package/lib/types/activities/createDocumentFromOther.d.ts +21 -0
  290. package/lib/types/activities/createDocumentFromOther.d.ts.map +1 -0
  291. package/lib/types/activities/executeInteraction.d.ts +61 -0
  292. package/lib/types/activities/executeInteraction.d.ts.map +1 -0
  293. package/lib/types/activities/extractDocumentText.d.ts +11 -0
  294. package/lib/types/activities/extractDocumentText.d.ts.map +1 -0
  295. package/lib/types/activities/generateDocumentProperties.d.ts +32 -0
  296. package/lib/types/activities/generateDocumentProperties.d.ts.map +1 -0
  297. package/lib/types/activities/generateEmbeddings.d.ts +53 -0
  298. package/lib/types/activities/generateEmbeddings.d.ts.map +1 -0
  299. package/lib/types/activities/generateOrAssignContentType.d.ts +44 -0
  300. package/lib/types/activities/generateOrAssignContentType.d.ts.map +1 -0
  301. package/lib/types/activities/getObjectFromStore.d.ts +14 -0
  302. package/lib/types/activities/getObjectFromStore.d.ts.map +1 -0
  303. package/lib/types/activities/handleError.d.ts +6 -0
  304. package/lib/types/activities/handleError.d.ts.map +1 -0
  305. package/lib/types/activities/index-dsl.d.ts +26 -0
  306. package/lib/types/activities/index-dsl.d.ts.map +1 -0
  307. package/lib/types/activities/index.d.ts +5 -0
  308. package/lib/types/activities/index.d.ts.map +1 -0
  309. package/lib/types/activities/media/prepareAudio.d.ts +25 -0
  310. package/lib/types/activities/media/prepareAudio.d.ts.map +1 -0
  311. package/lib/types/activities/media/prepareVideo.d.ts +30 -0
  312. package/lib/types/activities/media/prepareVideo.d.ts.map +1 -0
  313. package/lib/types/activities/media/processPdfWithTextract.d.ts +26 -0
  314. package/lib/types/activities/media/processPdfWithTextract.d.ts.map +1 -0
  315. package/lib/types/activities/media/saveGladiaTranscription.d.ts +15 -0
  316. package/lib/types/activities/media/saveGladiaTranscription.d.ts.map +1 -0
  317. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts +20 -0
  318. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts.map +1 -0
  319. package/lib/types/activities/mergeChildArtifacts.d.ts +24 -0
  320. package/lib/types/activities/mergeChildArtifacts.d.ts.map +1 -0
  321. package/lib/types/activities/notifyWebhook.d.ts +27 -0
  322. package/lib/types/activities/notifyWebhook.d.ts.map +1 -0
  323. package/lib/types/activities/rateLimiter.d.ts +11 -0
  324. package/lib/types/activities/rateLimiter.d.ts.map +1 -0
  325. package/lib/types/activities/renditions/generateImageRendition.d.ts +14 -0
  326. package/lib/types/activities/renditions/generateImageRendition.d.ts.map +1 -0
  327. package/lib/types/activities/renditions/generateVideoRendition.d.ts +15 -0
  328. package/lib/types/activities/renditions/generateVideoRendition.d.ts.map +1 -0
  329. package/lib/types/activities/setDocumentStatus.d.ts +15 -0
  330. package/lib/types/activities/setDocumentStatus.d.ts.map +1 -0
  331. package/lib/types/conversion/TextractProcessor.d.ts +45 -0
  332. package/lib/types/conversion/TextractProcessor.d.ts.map +1 -0
  333. package/lib/types/conversion/image.d.ts +13 -0
  334. package/lib/types/conversion/image.d.ts.map +1 -0
  335. package/lib/types/conversion/markitdown.d.ts +2 -0
  336. package/lib/types/conversion/markitdown.d.ts.map +1 -0
  337. package/lib/types/conversion/mutool.d.ts +19 -0
  338. package/lib/types/conversion/mutool.d.ts.map +1 -0
  339. package/lib/types/conversion/pandoc.d.ts +2 -0
  340. package/lib/types/conversion/pandoc.d.ts.map +1 -0
  341. package/lib/types/dsl/conditions.d.ts +2 -0
  342. package/lib/types/dsl/conditions.d.ts.map +1 -0
  343. package/lib/types/dsl/dsl-workflow.d.ts +5 -0
  344. package/lib/types/dsl/dsl-workflow.d.ts.map +1 -0
  345. package/lib/types/dsl/dslProxyActivities.d.ts +10 -0
  346. package/lib/types/dsl/dslProxyActivities.d.ts.map +1 -0
  347. package/lib/types/dsl/projections.d.ts +4 -0
  348. package/lib/types/dsl/projections.d.ts.map +1 -0
  349. package/lib/types/dsl/setup/ActivityContext.d.ts +47 -0
  350. package/lib/types/dsl/setup/ActivityContext.d.ts.map +1 -0
  351. package/lib/types/dsl/setup/fetch/DataProvider.d.ts +9 -0
  352. package/lib/types/dsl/setup/fetch/DataProvider.d.ts.map +1 -0
  353. package/lib/types/dsl/setup/fetch/index.d.ts +6 -0
  354. package/lib/types/dsl/setup/fetch/index.d.ts.map +1 -0
  355. package/lib/types/dsl/setup/fetch/providers.d.ts +25 -0
  356. package/lib/types/dsl/setup/fetch/providers.d.ts.map +1 -0
  357. package/lib/types/dsl/test/test-child-workflow.d.ts +4 -0
  358. package/lib/types/dsl/test/test-child-workflow.d.ts.map +1 -0
  359. package/lib/types/dsl/validation.d.ts +4 -0
  360. package/lib/types/dsl/validation.d.ts.map +1 -0
  361. package/lib/types/dsl/vars.d.ts +48 -0
  362. package/lib/types/dsl/vars.d.ts.map +1 -0
  363. package/lib/types/dsl/walk.d.ts +18 -0
  364. package/lib/types/dsl/walk.d.ts.map +1 -0
  365. package/lib/types/dsl.d.ts +4 -0
  366. package/lib/types/dsl.d.ts.map +1 -0
  367. package/lib/types/errors.d.ts +41 -0
  368. package/lib/types/errors.d.ts.map +1 -0
  369. package/lib/types/index.d.ts +38 -0
  370. package/lib/types/index.d.ts.map +1 -0
  371. package/lib/types/iterative-generation/activities/extractToc.d.ts +10 -0
  372. package/lib/types/iterative-generation/activities/extractToc.d.ts.map +1 -0
  373. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts +3 -0
  374. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts.map +1 -0
  375. package/lib/types/iterative-generation/activities/generatePart.d.ts +3 -0
  376. package/lib/types/iterative-generation/activities/generatePart.d.ts.map +1 -0
  377. package/lib/types/iterative-generation/activities/generateToc.d.ts +4 -0
  378. package/lib/types/iterative-generation/activities/generateToc.d.ts.map +1 -0
  379. package/lib/types/iterative-generation/activities/index.d.ts +5 -0
  380. package/lib/types/iterative-generation/activities/index.d.ts.map +1 -0
  381. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts +3 -0
  382. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts.map +1 -0
  383. package/lib/types/iterative-generation/types.d.ts +79 -0
  384. package/lib/types/iterative-generation/types.d.ts.map +1 -0
  385. package/lib/types/iterative-generation/utils.d.ts +26 -0
  386. package/lib/types/iterative-generation/utils.d.ts.map +1 -0
  387. package/lib/types/result-types.d.ts +26 -0
  388. package/lib/types/result-types.d.ts.map +1 -0
  389. package/lib/types/system/notifyWebhookWorkflow.d.ts +8 -0
  390. package/lib/types/system/notifyWebhookWorkflow.d.ts.map +1 -0
  391. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts +25 -0
  392. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts.map +1 -0
  393. package/lib/types/utils/auth.d.ts +4 -0
  394. package/lib/types/utils/auth.d.ts.map +1 -0
  395. package/lib/types/utils/blobs.d.ts +7 -0
  396. package/lib/types/utils/blobs.d.ts.map +1 -0
  397. package/lib/types/utils/chunks.d.ts +9 -0
  398. package/lib/types/utils/chunks.d.ts.map +1 -0
  399. package/lib/types/utils/client.d.ts +8 -0
  400. package/lib/types/utils/client.d.ts.map +1 -0
  401. package/lib/types/utils/expand-vars.d.ts +8 -0
  402. package/lib/types/utils/expand-vars.d.ts.map +1 -0
  403. package/lib/types/utils/memory.d.ts +8 -0
  404. package/lib/types/utils/memory.d.ts.map +1 -0
  405. package/lib/types/utils/renditions.d.ts +25 -0
  406. package/lib/types/utils/renditions.d.ts.map +1 -0
  407. package/lib/types/utils/storage.d.ts +16 -0
  408. package/lib/types/utils/storage.d.ts.map +1 -0
  409. package/lib/types/utils/text-preview-utils.d.ts +15 -0
  410. package/lib/types/utils/text-preview-utils.d.ts.map +1 -0
  411. package/lib/types/utils/tokens.d.ts +11 -0
  412. package/lib/types/utils/tokens.d.ts.map +1 -0
  413. package/lib/types/vars.d.ts +3 -0
  414. package/lib/types/vars.d.ts.map +1 -0
  415. package/lib/types/workflows.d.ts +8 -0
  416. package/lib/types/workflows.d.ts.map +1 -0
  417. package/lib/workflows-bundle.js +17846 -0
  418. package/package.json +6 -7
  419. package/src/activities/advanced/createOrUpdateDocumentFromInteractionRun.ts +1 -1
  420. package/src/activities/chunkDocument.ts +3 -1
  421. package/src/activities/extractDocumentText.ts +84 -28
  422. package/src/activities/generateDocumentProperties.ts +4 -2
  423. package/src/activities/generateEmbeddings.ts +9 -9
  424. package/src/activities/generateOrAssignContentType.ts +2 -2
  425. package/src/activities/index-dsl.ts +4 -3
  426. package/src/activities/media/saveGladiaTranscription.test.ts +406 -0
  427. package/src/activities/media/saveGladiaTranscription.ts +41 -26
  428. package/src/activities/media/transcribeMediaWithGladia.test.ts +583 -0
  429. package/src/activities/media/transcribeMediaWithGladia.ts +46 -25
  430. package/src/activities/notifyWebhook.test.ts +121 -8
  431. package/src/activities/notifyWebhook.ts +10 -2
  432. package/src/activities/renditions/generateImageRendition.ts +2 -2
  433. package/src/conversion/image.test.ts +1 -0
  434. package/src/conversion/image.ts +10 -10
  435. package/src/dsl/dsl-workflow.ts +49 -9
  436. package/src/dsl/setup/ActivityContext.ts +73 -0
  437. package/src/dsl.ts +1 -0
  438. package/src/errors.ts +14 -0
  439. package/src/index.ts +6 -5
  440. package/src/result-types.ts +5 -1
  441. package/src/utils/renditions.ts +11 -5
  442. package/src/utils/text-preview-utils.ts +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saveGladiaTranscription.js","sourceRoot":"","sources":["../../../../src/activities/media/saveGladiaTranscription.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transcribeMedia = transcribeMedia;
4
+ const activity_1 = require("@temporalio/activity");
5
+ const api_fetch_client_1 = require("@vertesia/api-fetch-client");
6
+ const common_1 = require("@vertesia/common");
7
+ const ActivityContext_js_1 = require("../../dsl/setup/ActivityContext.js");
8
+ const errors_js_1 = require("../../errors.js");
9
+ const index_js_1 = require("../../index.js");
10
+ const GLADIA_URL = "https://api.gladia.io/v2";
11
+ async function transcribeMedia(payload) {
12
+ const context = await (0, ActivityContext_js_1.setupActivity)(payload);
13
+ const { params, client, inputType } = context;
14
+ const gladiaConfig = await client.projects.integrations.retrieve(payload.project_id, common_1.SupportedIntegrations.gladia);
15
+ if (!gladiaConfig || !gladiaConfig.enabled) {
16
+ return {
17
+ hasText: false,
18
+ objectId: inputType === 'objectIds' ? context.objectId : undefined,
19
+ status: index_js_1.TextExtractionStatus.error,
20
+ error: "Gladia integration not enabled",
21
+ };
22
+ }
23
+ const gladiaClient = new api_fetch_client_1.FetchClient(gladiaConfig.url ?? GLADIA_URL);
24
+ gladiaClient.withHeaders({ "x-gladia-key": gladiaConfig.api_key });
25
+ let mediaSource;
26
+ let storageId;
27
+ if (inputType === 'objectIds') {
28
+ // Object mode: fetch from object store
29
+ const objectId = context.objectId;
30
+ const object = await client.objects.retrieve(objectId, "+text");
31
+ if (object.text && !params.force) {
32
+ return { hasText: true, objectId, status: index_js_1.TextExtractionStatus.skipped, message: "text already present and force not enabled" };
33
+ }
34
+ if (!object.content?.source) {
35
+ throw new errors_js_1.DocumentNotFoundError(`No source found for object ${objectId}`);
36
+ }
37
+ // Check for audio rendition in video metadata (preferred for videos)
38
+ mediaSource = object.content.source;
39
+ if (object.metadata?.type === common_1.ContentNature.Video) {
40
+ const videoMetadata = object.metadata;
41
+ const audioRendition = videoMetadata.renditions?.find(r => r.name === common_1.AUDIO_RENDITION_NAME);
42
+ if (audioRendition?.content?.source) {
43
+ mediaSource = audioRendition.content.source;
44
+ activity_1.log.info(`Found audio rendition for video object ${objectId}`, { mediaSource });
45
+ }
46
+ }
47
+ storageId = objectId;
48
+ }
49
+ else {
50
+ // File mode: use file input
51
+ const file = context.file;
52
+ if (!params.output_storage_path) {
53
+ throw new errors_js_1.DocumentNotFoundError("output_storage_path is required when using file input");
54
+ }
55
+ mediaSource = file.url;
56
+ storageId = params.output_storage_path;
57
+ }
58
+ // Get download URL for the media source
59
+ const { url: mediaUrl } = await client.files.getDownloadUrl(mediaSource);
60
+ if (!mediaUrl) {
61
+ throw new errors_js_1.DocumentNotFoundError(`Error fetching media URL for ${mediaSource}`);
62
+ }
63
+ activity_1.log.info(`Using media URL for transcription`, { storageId, mediaUrl: mediaSource });
64
+ const taskToken = Buffer.from((0, activity_1.activityInfo)().taskToken).toString('base64url');
65
+ const callbackUrl = generateCallbackUrlForGladia(client.store.baseUrl, taskToken);
66
+ activity_1.log.info(`Transcribing media ${mediaUrl} with Gladia`, { storageId, callbackUrl });
67
+ try {
68
+ const res = await gladiaClient.post("/transcription", {
69
+ payload: {
70
+ audio_url: mediaUrl,
71
+ callback_url: callbackUrl,
72
+ diarization_enhanced: true,
73
+ enable_code_switching: true,
74
+ subtitles: true,
75
+ subtitles_config: {
76
+ formats: ["vtt"],
77
+ }
78
+ }
79
+ });
80
+ activity_1.log.info(`Transcription request sent to Gladia`, { storageId, res });
81
+ }
82
+ catch (error) {
83
+ if (error instanceof api_fetch_client_1.RequestError && error.status === 422) {
84
+ return {
85
+ hasText: false,
86
+ objectId: storageId,
87
+ status: index_js_1.TextExtractionStatus.error,
88
+ error: `Gladia transcription error: ${error.message}`,
89
+ };
90
+ }
91
+ activity_1.log.error(`Error sending transcription request to Gladia for storage ${storageId}`, { error });
92
+ throw error;
93
+ }
94
+ throw new activity_1.CompleteAsyncError();
95
+ }
96
+ function generateCallbackUrlForGladia(baseUrl, taskToken) {
97
+ return `${baseUrl}/webhooks/gladia?task_token=${taskToken}`;
98
+ }
99
+ //# sourceMappingURL=transcribeMediaWithGladia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribeMediaWithGladia.js","sourceRoot":"","sources":["../../../../src/activities/media/transcribeMediaWithGladia.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mergeChildArtifacts = mergeChildArtifacts;
4
+ const activity_1 = require("@temporalio/activity");
5
+ const node_1 = require("@vertesia/client/node");
6
+ const stream_1 = require("stream");
7
+ const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
8
+ /**
9
+ * Directories to merge from child to parent.
10
+ * Only out/ and files/ are merged to avoid overwriting parent's scripts/skills.
11
+ */
12
+ const MERGE_DIRECTORIES = ['out', 'files'];
13
+ /**
14
+ * Files that should never be merged.
15
+ */
16
+ const EXCLUDED_FILES = ['conversation.json', 'tools.json'];
17
+ /**
18
+ * Merge artifacts from child workflow's agent space to parent workflow's agent space.
19
+ *
20
+ * Files are namespaced by child run ID to avoid conflicts:
21
+ * - Child's `files/output.json` → Parent's `files/{childRunId}/output.json`
22
+ * - Child's `out/report.pdf` → Parent's `out/{childRunId}/report.pdf`
23
+ *
24
+ * Returns the list of merged paths in the parent's space for the model to access.
25
+ */
26
+ async function mergeChildArtifacts(payload) {
27
+ const { client, params } = await (0, ActivityContext_js_1.setupActivity)(payload);
28
+ const childRunId = params.child_run_id;
29
+ const parentRunId = params.parent_run_id;
30
+ const directories = params.directories || MERGE_DIRECTORIES;
31
+ activity_1.log.info(`Merging artifacts from child ${childRunId} to parent ${parentRunId}`, { directories });
32
+ // List all files in child's agent space
33
+ const childFiles = await client.files.listArtifacts(childRunId);
34
+ if (childFiles.length === 0) {
35
+ activity_1.log.info("No artifacts in child agent space");
36
+ return { merged: 0, files: [] };
37
+ }
38
+ const mergedFiles = [];
39
+ for (const fullPath of childFiles) {
40
+ const relativePath = extractRelativePath(fullPath, childRunId);
41
+ if (!relativePath)
42
+ continue;
43
+ // Only merge specified directories
44
+ const dir = relativePath.split('/')[0];
45
+ if (!directories.includes(dir))
46
+ continue;
47
+ // Skip excluded files
48
+ const fileName = relativePath.split('/').pop() || '';
49
+ if (EXCLUDED_FILES.includes(fileName))
50
+ continue;
51
+ try {
52
+ // Create namespaced path: files/output.json -> files/{childRunId}/output.json
53
+ const namespacedPath = createNamespacedPath(relativePath, childRunId);
54
+ await copyArtifact(client, childRunId, parentRunId, relativePath, namespacedPath);
55
+ mergedFiles.push(namespacedPath);
56
+ }
57
+ catch (err) {
58
+ activity_1.log.warn(`Failed to merge ${relativePath}: ${err.message}`);
59
+ }
60
+ }
61
+ activity_1.log.info(`Merged ${mergedFiles.length} artifacts from child to parent`, { files: mergedFiles });
62
+ return { merged: mergedFiles.length, files: mergedFiles };
63
+ }
64
+ /**
65
+ * Create a namespaced path by inserting the child run ID after the directory.
66
+ * files/output.json -> files/{childRunId}/output.json
67
+ * out/subdir/report.pdf -> out/{childRunId}/subdir/report.pdf
68
+ */
69
+ function createNamespacedPath(relativePath, childRunId) {
70
+ const parts = relativePath.split('/');
71
+ if (parts.length < 2) {
72
+ // Single file at root (shouldn't happen, but handle it)
73
+ return `${childRunId}/${relativePath}`;
74
+ }
75
+ // Insert childRunId after the first directory
76
+ const dir = parts[0];
77
+ const rest = parts.slice(1).join('/');
78
+ return `${dir}/${childRunId}/${rest}`;
79
+ }
80
+ /**
81
+ * Extract relative path from full artifact storage path.
82
+ * Storage paths can be: "store_xxx/agents/{runId}/..." or "agents/{runId}/..."
83
+ */
84
+ function extractRelativePath(fullPath, runId) {
85
+ // Look for the pattern: agents/{runId}/
86
+ const marker = `/agents/${runId}/`;
87
+ const idx = fullPath.lastIndexOf(marker);
88
+ if (idx >= 0) {
89
+ return fullPath.slice(idx + marker.length);
90
+ }
91
+ // Also try without leading slash
92
+ const legacyPrefix = `agents/${runId}/`;
93
+ if (fullPath.startsWith(legacyPrefix)) {
94
+ return fullPath.slice(legacyPrefix.length);
95
+ }
96
+ // If path contains the runId, try to extract after it
97
+ const runIdIdx = fullPath.indexOf(runId);
98
+ if (runIdIdx >= 0) {
99
+ const afterRunId = fullPath.slice(runIdIdx + runId.length);
100
+ if (afterRunId.startsWith('/')) {
101
+ return afterRunId.slice(1);
102
+ }
103
+ }
104
+ return null;
105
+ }
106
+ /**
107
+ * Copy a single artifact from child to parent agent space with a new path
108
+ */
109
+ async function copyArtifact(client, childRunId, parentRunId, sourcePath, destPath) {
110
+ // Download from child's agent space
111
+ const stream = await client.files.downloadArtifact(childRunId, sourcePath);
112
+ // Convert web stream to node stream for upload
113
+ const nodeStream = stream_1.Readable.fromWeb(stream);
114
+ // Determine mime type from extension
115
+ const mimeType = getMimeType(sourcePath);
116
+ const fileName = sourcePath.split('/').pop() || sourcePath;
117
+ // Upload to parent's agent space at the namespaced path
118
+ const source = new node_1.NodeStreamSource(nodeStream, fileName, mimeType);
119
+ await client.files.uploadArtifact(parentRunId, destPath, source);
120
+ }
121
+ /**
122
+ * Get mime type from file extension
123
+ */
124
+ function getMimeType(filePath) {
125
+ const ext = filePath.split('.').pop()?.toLowerCase();
126
+ const mimeTypes = {
127
+ 'json': 'application/json',
128
+ 'txt': 'text/plain',
129
+ 'md': 'text/markdown',
130
+ 'html': 'text/html',
131
+ 'csv': 'text/csv',
132
+ 'png': 'image/png',
133
+ 'jpg': 'image/jpeg',
134
+ 'jpeg': 'image/jpeg',
135
+ 'gif': 'image/gif',
136
+ 'svg': 'image/svg+xml',
137
+ 'pdf': 'application/pdf',
138
+ 'xml': 'application/xml',
139
+ 'zip': 'application/zip',
140
+ 'js': 'application/javascript',
141
+ 'ts': 'application/typescript',
142
+ 'py': 'text/x-python',
143
+ 'sh': 'text/x-shellscript',
144
+ 'bash': 'text/x-shellscript',
145
+ 'yaml': 'text/yaml',
146
+ 'yml': 'text/yaml',
147
+ };
148
+ return mimeTypes[ext || ''] || 'application/octet-stream';
149
+ }
150
+ //# sourceMappingURL=mergeChildArtifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeChildArtifacts.js","sourceRoot":"","sources":["../../../src/activities/mergeChildArtifacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.notifyWebhook = notifyWebhook;
4
+ const activity_1 = require("@temporalio/activity");
5
+ const client_1 = require("@vertesia/client");
6
+ const common_1 = require("@vertesia/common");
7
+ const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
8
+ const errors_js_1 = require("../errors.js");
9
+ const client_js_1 = require("../utils/client.js");
10
+ async function notifyWebhook(payload) {
11
+ const { params } = await (0, ActivityContext_js_1.setupActivity)(payload);
12
+ const { webhook, method, headers: defaultHeaders } = params;
13
+ // resolve the url and the api version of the webhook
14
+ let target_url, version;
15
+ if (typeof webhook === 'string') {
16
+ target_url = webhook;
17
+ }
18
+ else {
19
+ target_url = webhook.url;
20
+ version = webhook.version;
21
+ }
22
+ if (!target_url)
23
+ throw new errors_js_1.WorkflowParamNotFoundError('target_url');
24
+ const hasBody = method === 'POST'; //body is sent only for POST, always includes workflow info
25
+ const headers = {
26
+ ...defaultHeaders,
27
+ };
28
+ if (hasBody) {
29
+ headers['Content-Type'] = 'application/json';
30
+ }
31
+ const body = hasBody ? await createRequestBody(payload, params, version) : undefined;
32
+ activity_1.log.info(`Notifying webhook at ${target_url}`);
33
+ const res = await fetch(target_url, {
34
+ method,
35
+ body,
36
+ headers,
37
+ }).catch(err => {
38
+ activity_1.log.error(`An error occurred while notifying webhook at ${target_url}`, { err });
39
+ throw err;
40
+ });
41
+ if (!res.ok) {
42
+ activity_1.log.warn(`Webhook endpoint ${target_url} returned an error - ${res.status} ${res.statusText}`, { fetchResponse: res });
43
+ // Try to get response payload for error message
44
+ let errorMessage = `Webhook Notification to ${target_url} failed with status: ${res.status} ${res.statusText}`;
45
+ try {
46
+ const responseText = await res.text();
47
+ if (responseText) {
48
+ errorMessage += ` - Response: ${responseText}`;
49
+ }
50
+ }
51
+ catch (readError) {
52
+ // If we can't read the response, just use the basic error message
53
+ activity_1.log.debug('Could not read response body for error', { readError });
54
+ }
55
+ throw new Error(errorMessage);
56
+ }
57
+ return { status: res.status, message: res.statusText, url: res.url };
58
+ }
59
+ // --------------------------------------
60
+ // Data provider for webhooks
61
+ // this allows to customize the payload sent to the webhook depending on the
62
+ // type of workflow and the api version of the webhook
63
+ // --------------------------------------
64
+ function getWorkflowName(workflowType) {
65
+ // remove trailing Workflow or _Workflow case insensitive from the workflow type
66
+ return workflowType.replace(/_?workflow$/i, '');
67
+ }
68
+ async function createRequestBody(payload, params, api_version) {
69
+ if (api_version === undefined || Number(api_version) < common_1.ApiVersions.COMPLETION_RESULT_V1) {
70
+ return createOldRequestBody(payload, params);
71
+ }
72
+ else {
73
+ return createLatestRequestBody(payload, params, api_version);
74
+ }
75
+ }
76
+ async function createLatestRequestBody(payload, params, api_version) {
77
+ const data = await createEventData(payload, params, api_version);
78
+ return JSON.stringify({
79
+ workflow_id: params.workflow_id,
80
+ workflow_name: getWorkflowName(params.workflow_type),
81
+ workflow_run_id: params.workflow_run_id,
82
+ event_name: params.event_name,
83
+ detail: data,
84
+ });
85
+ }
86
+ async function createEventData(payload, params, api_version) {
87
+ const data = params.detail;
88
+ if (data && data.run_id && params.event_name === "workflow_completed" && params.workflow_type === 'ExecuteInteractionWorkflow') {
89
+ const client = getVersionedVertesiaClient(payload, api_version); //ensure client is initialized
90
+ // we replace the result property with the full execution run object
91
+ return await client.runs.retrieve(data.run_id);
92
+ }
93
+ return data;
94
+ }
95
+ function getVersionedVertesiaClient(payload, version) {
96
+ // set the api version header
97
+ return new client_1.VertesiaClient((0, client_js_1.getVertesiaClientOptions)(payload)).withApiVersion(version ? String(version) : null);
98
+ }
99
+ // ----------------- Compatibility code -----------------
100
+ /* Before 2025-10-08 the notifyWebhook POST body was in the format:
101
+
102
+ {
103
+ "workflowId": "generation:ExecuteInteractionWorkflow:WhatColor:ox8wu6t4",
104
+ "runId": "0199c2c6-818f-77eb-b931-c1ba8b9e5184",
105
+ "status": "completed",
106
+ "result": {
107
+ "run_id": "68e616274b0e9bb510462378",
108
+ "status": "completed",
109
+ "result": {"Color": "white"}
110
+ }
111
+ }
112
+
113
+ After Versions.COMPLETION_RESULT_V1 (20250925) when the completion result interface changed we improved the
114
+ payload to the current format:
115
+
116
+ {
117
+ "workflow_id": "generation:ExecuteInteractionWorkflow:WhatColor:bdedqjqj6",
118
+ "workflow_name": "ExecuteInteraction",
119
+ "workflow_run_id": "0199c2d4-6b1d-7cf2-a1e5-4cac6778091e",
120
+ "event_name": "workflow_completed",
121
+ "detail": ExecutionRun
122
+ }
123
+
124
+ where ExecutionRun contains a result property with the new completion result format.
125
+
126
+ "result": [
127
+ {
128
+ "type": "json",
129
+ "value": {
130
+ "Color": "white"
131
+ }
132
+ }
133
+ ],
134
+
135
+ */
136
+ //@ts-ignore
137
+ async function createOldRequestBody(payload, params) {
138
+ let data = params.detail;
139
+ if (data && data.run_id && params.event_name === "workflow_completed" && params.workflow_type === 'ExecuteInteractionWorkflow') {
140
+ const client = getVersionedVertesiaClient(payload, null); //ensure client is using no specific version
141
+ // Important Note: we cannot use client.runs.retrieve since it will transform the run result to the new format because of InteractionOutput
142
+ const run = await client.runs.get(data.run_id);
143
+ // since we use an unversioned client the run will be in old format so we don't need to tranform the result
144
+ const result = run.result;
145
+ data = {
146
+ workflowId: params.workflow_id,
147
+ runId: params.workflow_run_id,
148
+ status: params.event_name === 'workflow_completed' ? 'completed' : params.event_name,
149
+ result: {
150
+ run_id: run.id,
151
+ status: run.status,
152
+ result: result || null
153
+ }
154
+ };
155
+ }
156
+ else {
157
+ // Always include workflow metadata in old format, even when detail is undefined
158
+ data = {
159
+ workflowId: params.workflow_id,
160
+ runId: params.workflow_run_id,
161
+ status: params.event_name === 'workflow_completed' ? 'completed' : params.event_name,
162
+ result: data || null
163
+ };
164
+ }
165
+ return JSON.stringify(data);
166
+ }
167
+ //# sourceMappingURL=notifyWebhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifyWebhook.js","sourceRoot":"","sources":["../../../src/activities/notifyWebhook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkRateLimit = checkRateLimit;
4
+ const activity_1 = require("@temporalio/activity");
5
+ const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
6
+ async function checkRateLimit(payload) {
7
+ const { client, params } = await (0, ActivityContext_js_1.setupActivity)(payload);
8
+ const { environmentId, modelId } = params;
9
+ const result = {
10
+ delayMs: 0,
11
+ };
12
+ try {
13
+ // Call the studio-server endpoint to get rate limit delay using the Vertesia client
14
+ const info = (0, activity_1.activityInfo)();
15
+ const requestPayload = {
16
+ interaction: params.interactionIdOrEndpoint,
17
+ workflow_run_id: info.workflowExecution.runId,
18
+ environment_id: environmentId,
19
+ model_id: modelId,
20
+ };
21
+ const response = await client.interactions.requestSlot(requestPayload);
22
+ result.delayMs = response.delay_ms;
23
+ }
24
+ catch (error) {
25
+ activity_1.log.warn('Failed to call rate limit API:', { error });
26
+ throw error;
27
+ }
28
+ return result;
29
+ }
30
+ //# sourceMappingURL=rateLimiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../../src/activities/rateLimiter.ts"],"names":[],"mappings":";;AAcA,wCA0BC;AAvCD,mDAAyD;AACzD,wEAAgE;AAYzD,KAAK,UAAU,cAAc,CAAC,OAAqD;IACxF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,kCAAa,EAAkB,OAAO,CAAC,CAAC;IACzE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE1C,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,CAAC;KACX,CAAA;IAED,IAAI,CAAC;QACH,oFAAoF;QACpF,MAAM,IAAI,GAAG,IAAA,uBAAY,GAAE,CAAC;QAC5B,MAAM,cAAc,GAA4B;YAC9C,WAAW,EAAE,MAAM,CAAC,uBAAuB;YAC3C,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;YAC7C,cAAc,EAAE,aAAa;YAC7B,QAAQ,EAAE,OAAO;SAClB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,cAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateImageRendition = generateImageRendition;
4
+ const activity_1 = require("@temporalio/activity");
5
+ const ActivityContext_js_1 = require("../../dsl/setup/ActivityContext.js");
6
+ const errors_js_1 = require("../../errors.js");
7
+ const blobs_js_1 = require("../../utils/blobs.js");
8
+ const renditions_js_1 = require("../../utils/renditions.js");
9
+ async function generateImageRendition(payload) {
10
+ const { client, objectId, params: originParams, } = await (0, ActivityContext_js_1.setupActivity)(payload);
11
+ // Fix: Use maxHeightWidth if max_hw is not provided
12
+ const params = {
13
+ ...originParams,
14
+ max_hw: originParams.max_hw || originParams.maxHeightWidth || 1596, // Default to 1596 if both are missing
15
+ format: originParams.format || originParams.format_output || "png", // Default to png if format is missing
16
+ };
17
+ activity_1.log.debug(`Generating image rendition for ${objectId}`, {
18
+ originParams,
19
+ params,
20
+ });
21
+ const inputObject = await client.objects.retrieve(objectId).catch((err) => {
22
+ activity_1.log.error(`Failed to retrieve document ${objectId}`, { err });
23
+ if (err.message.includes("not found")) {
24
+ throw new errors_js_1.DocumentNotFoundError(`Document ${objectId} not found`, [objectId]);
25
+ }
26
+ throw err;
27
+ });
28
+ if (!inputObject) {
29
+ activity_1.log.error(`Document ${objectId} not found`);
30
+ throw new errors_js_1.DocumentNotFoundError(`Document ${objectId} not found`, [objectId]);
31
+ }
32
+ if (!params.format) {
33
+ activity_1.log.error(`Format not found`);
34
+ throw new errors_js_1.WorkflowParamNotFoundError(`format`);
35
+ }
36
+ if (!inputObject.content?.source) {
37
+ activity_1.log.error(`Document ${objectId} has no source`);
38
+ throw new errors_js_1.DocumentNotFoundError(`Document ${objectId} has no source`, [objectId]);
39
+ }
40
+ if (!inputObject.content.type ||
41
+ !inputObject.content.type?.startsWith("image/")) {
42
+ activity_1.log.error(`Document ${objectId} is not an image or a video: ${inputObject.content.type}`);
43
+ throw new errors_js_1.DocumentNotFoundError(`Document ${objectId} is not an image or a video: ${inputObject.content.type}`, [objectId]);
44
+ }
45
+ //array of rendition files to upload
46
+ let renditionPages = [];
47
+ const imageFile = await (0, blobs_js_1.saveBlobToTempFile)(client, inputObject.content.source);
48
+ activity_1.log.debug(`Image ${objectId} copied to ${imageFile}`);
49
+ renditionPages.push(imageFile);
50
+ //IF no etag, log and use use object id as etag
51
+ if (!inputObject.content.etag) {
52
+ activity_1.log.warn(`Document ${objectId} has no etag, using object id as etag`);
53
+ }
54
+ const contentEtag = inputObject.content.etag ?? inputObject.id;
55
+ const uploaded = await (0, renditions_js_1.uploadRenditionPages)(client, contentEtag, [imageFile], params);
56
+ if (!uploaded || !uploaded.length || !uploaded[0]) {
57
+ activity_1.log.error(`Failed to upload rendition for ${objectId}`, { uploaded });
58
+ throw new Error(`Failed to upload rendition for ${objectId} - upload object is empty`);
59
+ }
60
+ return {
61
+ uploads: uploaded.map((u) => u),
62
+ format: params.format,
63
+ status: "success",
64
+ };
65
+ }
66
+ //# sourceMappingURL=generateImageRendition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateImageRendition.js","sourceRoot":"","sources":["../../../../src/activities/renditions/generateImageRendition.ts"],"names":[],"mappings":";;AAiBA,wDA6FC;AA9GD,mDAA2C;AAE3C,2EAAmE;AACnE,+CAAoF;AACpF,mDAA0D;AAC1D,6DAGmC;AAS5B,KAAK,UAAU,sBAAsB,CACxC,OAAkE;IAElE,MAAM,EACF,MAAM,EACN,QAAQ,EACR,MAAM,EAAE,YAAY,GACvB,GAAG,MAAM,IAAA,kCAAa,EAA+B,OAAO,CAAC,CAAC;IAE/D,oDAAoD;IACpD,MAAM,MAAM,GAAG;QACX,GAAG,YAAY;QACf,MAAM,EAAE,YAAY,CAAC,MAAM,IAAK,YAAoB,CAAC,cAAc,IAAI,IAAI,EAAE,sCAAsC;QACnH,MAAM,EAAE,YAAY,CAAC,MAAM,IAAK,YAAoB,CAAC,aAAa,IAAI,KAAK,EAAE,sCAAsC;KACtH,CAAC;IAEF,cAAG,CAAC,KAAK,CAAC,kCAAkC,QAAQ,EAAE,EAAE;QACpD,YAAY;QACZ,MAAM;KACT,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACtE,cAAG,CAAC,KAAK,CAAC,+BAA+B,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9D,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,iCAAqB,CAAC,YAAY,QAAQ,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,MAAM,GAAG,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,cAAG,CAAC,KAAK,CAAC,YAAY,QAAQ,YAAY,CAAC,CAAC;QAC5C,MAAM,IAAI,iCAAqB,CAAC,YAAY,QAAQ,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACjB,cAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC9B,MAAM,IAAI,sCAA0B,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC/B,cAAG,CAAC,KAAK,CAAC,YAAY,QAAQ,gBAAgB,CAAC,CAAC;QAChD,MAAM,IAAI,iCAAqB,CAAC,YAAY,QAAQ,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtF,CAAC;IAED,IACI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI;QACzB,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC,EACjD,CAAC;QACC,cAAG,CAAC,KAAK,CACL,YAAY,QAAQ,gCAAgC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CACjF,CAAC;QACF,MAAM,IAAI,iCAAqB,CAC3B,YAAY,QAAQ,gCAAgC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAC9E,CAAC,QAAQ,CAAC,CACb,CAAC;IACN,CAAC;IAED,oCAAoC;IACpC,IAAI,cAAc,GAAa,EAAE,CAAC;IAElC,MAAM,SAAS,GAAG,MAAM,IAAA,6BAAkB,EACtC,MAAM,EACN,WAAW,CAAC,OAAO,CAAC,MAAM,CAC7B,CAAC;IACF,cAAG,CAAC,KAAK,CAAC,SAAS,QAAQ,cAAc,SAAS,EAAE,CAAC,CAAC;IACtD,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAG/B,+CAA+C;IAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,cAAG,CAAC,IAAI,CAAC,YAAY,QAAQ,uCAAuC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,EAAE,CAAC;IAE/D,MAAM,QAAQ,GAAG,MAAM,IAAA,oCAAoB,EACvC,MAAM,EACN,WAAW,EACX,CAAC,SAAS,CAAC,EACX,MAAM,CACT,CAAC;IAEF,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,cAAG,CAAC,KAAK,CAAC,kCAAkC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CACX,kCAAkC,QAAQ,2BAA2B,CACxE,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,SAAS;KACpB,CAAC;AACN,CAAC"}