@vertesia/workflow 0.42.2

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 (406) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +24 -0
  3. package/bin/bundle-workflows.mjs +26 -0
  4. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js +32 -0
  5. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
  6. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +66 -0
  7. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
  8. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js +18 -0
  9. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
  10. package/lib/cjs/activities/chunkDocument.js +79 -0
  11. package/lib/cjs/activities/chunkDocument.js.map +1 -0
  12. package/lib/cjs/activities/createDocumentFromOther.js +64 -0
  13. package/lib/cjs/activities/createDocumentFromOther.js.map +1 -0
  14. package/lib/cjs/activities/executeInteraction.js +135 -0
  15. package/lib/cjs/activities/executeInteraction.js.map +1 -0
  16. package/lib/cjs/activities/extractDocumentText.js +140 -0
  17. package/lib/cjs/activities/extractDocumentText.js.map +1 -0
  18. package/lib/cjs/activities/generateDocumentProperties.js +59 -0
  19. package/lib/cjs/activities/generateDocumentProperties.js.map +1 -0
  20. package/lib/cjs/activities/generateEmbeddings.js +292 -0
  21. package/lib/cjs/activities/generateEmbeddings.js.map +1 -0
  22. package/lib/cjs/activities/generateImageRendition.js +104 -0
  23. package/lib/cjs/activities/generateImageRendition.js.map +1 -0
  24. package/lib/cjs/activities/generateOrAssignContentType.js +103 -0
  25. package/lib/cjs/activities/generateOrAssignContentType.js.map +1 -0
  26. package/lib/cjs/activities/getObjectFromStore.js +20 -0
  27. package/lib/cjs/activities/getObjectFromStore.js.map +1 -0
  28. package/lib/cjs/activities/index.js +54 -0
  29. package/lib/cjs/activities/index.js.map +1 -0
  30. package/lib/cjs/activities/media/processPdfWithTextract.js +102 -0
  31. package/lib/cjs/activities/media/processPdfWithTextract.js.map +1 -0
  32. package/lib/cjs/activities/media/transcribeMediaWithGladia.js +51 -0
  33. package/lib/cjs/activities/media/transcribeMediaWithGladia.js.map +1 -0
  34. package/lib/cjs/activities/notifyWebhook.js +34 -0
  35. package/lib/cjs/activities/notifyWebhook.js.map +1 -0
  36. package/lib/cjs/activities/setDocumentStatus.js +15 -0
  37. package/lib/cjs/activities/setDocumentStatus.js.map +1 -0
  38. package/lib/cjs/conversion/TextractProcessor.js +416 -0
  39. package/lib/cjs/conversion/TextractProcessor.js.map +1 -0
  40. package/lib/cjs/conversion/image.js +22 -0
  41. package/lib/cjs/conversion/image.js.map +1 -0
  42. package/lib/cjs/conversion/mutool.js +147 -0
  43. package/lib/cjs/conversion/mutool.js.map +1 -0
  44. package/lib/cjs/conversion/pandoc.js +39 -0
  45. package/lib/cjs/conversion/pandoc.js.map +1 -0
  46. package/lib/cjs/conversion/pdf.js +13 -0
  47. package/lib/cjs/conversion/pdf.js.map +1 -0
  48. package/lib/cjs/dsl/conditions.js +81 -0
  49. package/lib/cjs/dsl/conditions.js.map +1 -0
  50. package/lib/cjs/dsl/dsl-workflow.js +223 -0
  51. package/lib/cjs/dsl/dsl-workflow.js.map +1 -0
  52. package/lib/cjs/dsl/projections.js +59 -0
  53. package/lib/cjs/dsl/projections.js.map +1 -0
  54. package/lib/cjs/dsl/setup/ActivityContext.js +96 -0
  55. package/lib/cjs/dsl/setup/ActivityContext.js.map +1 -0
  56. package/lib/cjs/dsl/setup/fetch/DataProvider.js +51 -0
  57. package/lib/cjs/dsl/setup/fetch/DataProvider.js.map +1 -0
  58. package/lib/cjs/dsl/setup/fetch/index.js +16 -0
  59. package/lib/cjs/dsl/setup/fetch/index.js.map +1 -0
  60. package/lib/cjs/dsl/setup/fetch/providers.js +67 -0
  61. package/lib/cjs/dsl/setup/fetch/providers.js.map +1 -0
  62. package/lib/cjs/dsl/test/test-child-workflow.js +10 -0
  63. package/lib/cjs/dsl/test/test-child-workflow.js.map +1 -0
  64. package/lib/cjs/dsl/validation.js +122 -0
  65. package/lib/cjs/dsl/validation.js.map +1 -0
  66. package/lib/cjs/dsl/vars.js +341 -0
  67. package/lib/cjs/dsl/vars.js.map +1 -0
  68. package/lib/cjs/dsl/walk.js +100 -0
  69. package/lib/cjs/dsl/walk.js.map +1 -0
  70. package/lib/cjs/errors.js +36 -0
  71. package/lib/cjs/errors.js.map +1 -0
  72. package/lib/cjs/index.js +43 -0
  73. package/lib/cjs/index.js.map +1 -0
  74. package/lib/cjs/iterative-generation/activities/extractToc.js +47 -0
  75. package/lib/cjs/iterative-generation/activities/extractToc.js.map +1 -0
  76. package/lib/cjs/iterative-generation/activities/finalizeOutput.js +69 -0
  77. package/lib/cjs/iterative-generation/activities/finalizeOutput.js.map +1 -0
  78. package/lib/cjs/iterative-generation/activities/generatePart.js +73 -0
  79. package/lib/cjs/iterative-generation/activities/generatePart.js.map +1 -0
  80. package/lib/cjs/iterative-generation/activities/generateToc.js +91 -0
  81. package/lib/cjs/iterative-generation/activities/generateToc.js.map +1 -0
  82. package/lib/cjs/iterative-generation/activities/index.js +12 -0
  83. package/lib/cjs/iterative-generation/activities/index.js.map +1 -0
  84. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js +55 -0
  85. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
  86. package/lib/cjs/iterative-generation/types.js +5 -0
  87. package/lib/cjs/iterative-generation/types.js.map +1 -0
  88. package/lib/cjs/iterative-generation/utils.js +118 -0
  89. package/lib/cjs/iterative-generation/utils.js.map +1 -0
  90. package/lib/cjs/package.json +3 -0
  91. package/lib/cjs/result-types.js +10 -0
  92. package/lib/cjs/result-types.js.map +1 -0
  93. package/lib/cjs/system/generateObjectText.js +89 -0
  94. package/lib/cjs/system/generateObjectText.js.map +1 -0
  95. package/lib/cjs/system/notifyWebhookWorkflow.js +52 -0
  96. package/lib/cjs/system/notifyWebhookWorkflow.js.map +1 -0
  97. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js +37 -0
  98. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js.map +1 -0
  99. package/lib/cjs/utils/auth.js +15 -0
  100. package/lib/cjs/utils/auth.js.map +1 -0
  101. package/lib/cjs/utils/blobs.js +63 -0
  102. package/lib/cjs/utils/blobs.js.map +1 -0
  103. package/lib/cjs/utils/client.js +25 -0
  104. package/lib/cjs/utils/client.js.map +1 -0
  105. package/lib/cjs/utils/expand-vars.js +33 -0
  106. package/lib/cjs/utils/expand-vars.js.map +1 -0
  107. package/lib/cjs/utils/memory.js +72 -0
  108. package/lib/cjs/utils/memory.js.map +1 -0
  109. package/lib/cjs/utils/tokens.js +38 -0
  110. package/lib/cjs/utils/tokens.js.map +1 -0
  111. package/lib/cjs/vars.js +20 -0
  112. package/lib/cjs/vars.js.map +1 -0
  113. package/lib/cjs/workflows.js +17 -0
  114. package/lib/cjs/workflows.js.map +1 -0
  115. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js +29 -0
  116. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
  117. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +63 -0
  118. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
  119. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js +15 -0
  120. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
  121. package/lib/esm/activities/chunkDocument.js +76 -0
  122. package/lib/esm/activities/chunkDocument.js.map +1 -0
  123. package/lib/esm/activities/createDocumentFromOther.js +58 -0
  124. package/lib/esm/activities/createDocumentFromOther.js.map +1 -0
  125. package/lib/esm/activities/executeInteraction.js +131 -0
  126. package/lib/esm/activities/executeInteraction.js.map +1 -0
  127. package/lib/esm/activities/extractDocumentText.js +137 -0
  128. package/lib/esm/activities/extractDocumentText.js.map +1 -0
  129. package/lib/esm/activities/generateDocumentProperties.js +56 -0
  130. package/lib/esm/activities/generateDocumentProperties.js.map +1 -0
  131. package/lib/esm/activities/generateEmbeddings.js +256 -0
  132. package/lib/esm/activities/generateEmbeddings.js.map +1 -0
  133. package/lib/esm/activities/generateImageRendition.js +98 -0
  134. package/lib/esm/activities/generateImageRendition.js.map +1 -0
  135. package/lib/esm/activities/generateOrAssignContentType.js +100 -0
  136. package/lib/esm/activities/generateOrAssignContentType.js.map +1 -0
  137. package/lib/esm/activities/getObjectFromStore.js +17 -0
  138. package/lib/esm/activities/getObjectFromStore.js.map +1 -0
  139. package/lib/esm/activities/index.js +21 -0
  140. package/lib/esm/activities/index.js.map +1 -0
  141. package/lib/esm/activities/media/processPdfWithTextract.js +98 -0
  142. package/lib/esm/activities/media/processPdfWithTextract.js.map +1 -0
  143. package/lib/esm/activities/media/transcribeMediaWithGladia.js +48 -0
  144. package/lib/esm/activities/media/transcribeMediaWithGladia.js.map +1 -0
  145. package/lib/esm/activities/notifyWebhook.js +31 -0
  146. package/lib/esm/activities/notifyWebhook.js.map +1 -0
  147. package/lib/esm/activities/setDocumentStatus.js +12 -0
  148. package/lib/esm/activities/setDocumentStatus.js.map +1 -0
  149. package/lib/esm/conversion/TextractProcessor.js +409 -0
  150. package/lib/esm/conversion/TextractProcessor.js.map +1 -0
  151. package/lib/esm/conversion/image.js +16 -0
  152. package/lib/esm/conversion/image.js.map +1 -0
  153. package/lib/esm/conversion/mutool.js +139 -0
  154. package/lib/esm/conversion/mutool.js.map +1 -0
  155. package/lib/esm/conversion/pandoc.js +36 -0
  156. package/lib/esm/conversion/pandoc.js.map +1 -0
  157. package/lib/esm/conversion/pdf.js +7 -0
  158. package/lib/esm/conversion/pdf.js.map +1 -0
  159. package/lib/esm/dsl/conditions.js +75 -0
  160. package/lib/esm/dsl/conditions.js.map +1 -0
  161. package/lib/esm/dsl/dsl-workflow.js +216 -0
  162. package/lib/esm/dsl/dsl-workflow.js.map +1 -0
  163. package/lib/esm/dsl/projections.js +55 -0
  164. package/lib/esm/dsl/projections.js.map +1 -0
  165. package/lib/esm/dsl/setup/ActivityContext.js +91 -0
  166. package/lib/esm/dsl/setup/ActivityContext.js.map +1 -0
  167. package/lib/esm/dsl/setup/fetch/DataProvider.js +47 -0
  168. package/lib/esm/dsl/setup/fetch/DataProvider.js.map +1 -0
  169. package/lib/esm/dsl/setup/fetch/index.js +12 -0
  170. package/lib/esm/dsl/setup/fetch/index.js.map +1 -0
  171. package/lib/esm/dsl/setup/fetch/providers.js +61 -0
  172. package/lib/esm/dsl/setup/fetch/providers.js.map +1 -0
  173. package/lib/esm/dsl/test/test-child-workflow.js +5 -0
  174. package/lib/esm/dsl/test/test-child-workflow.js.map +1 -0
  175. package/lib/esm/dsl/validation.js +118 -0
  176. package/lib/esm/dsl/validation.js.map +1 -0
  177. package/lib/esm/dsl/vars.js +335 -0
  178. package/lib/esm/dsl/vars.js.map +1 -0
  179. package/lib/esm/dsl/walk.js +96 -0
  180. package/lib/esm/dsl/walk.js.map +1 -0
  181. package/lib/esm/errors.js +30 -0
  182. package/lib/esm/errors.js.map +1 -0
  183. package/lib/esm/index.js +25 -0
  184. package/lib/esm/index.js.map +1 -0
  185. package/lib/esm/iterative-generation/activities/extractToc.js +44 -0
  186. package/lib/esm/iterative-generation/activities/extractToc.js.map +1 -0
  187. package/lib/esm/iterative-generation/activities/finalizeOutput.js +66 -0
  188. package/lib/esm/iterative-generation/activities/finalizeOutput.js.map +1 -0
  189. package/lib/esm/iterative-generation/activities/generatePart.js +70 -0
  190. package/lib/esm/iterative-generation/activities/generatePart.js.map +1 -0
  191. package/lib/esm/iterative-generation/activities/generateToc.js +88 -0
  192. package/lib/esm/iterative-generation/activities/generateToc.js.map +1 -0
  193. package/lib/esm/iterative-generation/activities/index.js +5 -0
  194. package/lib/esm/iterative-generation/activities/index.js.map +1 -0
  195. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js +52 -0
  196. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
  197. package/lib/esm/iterative-generation/types.js +2 -0
  198. package/lib/esm/iterative-generation/types.js.map +1 -0
  199. package/lib/esm/iterative-generation/utils.js +109 -0
  200. package/lib/esm/iterative-generation/utils.js.map +1 -0
  201. package/lib/esm/result-types.js +7 -0
  202. package/lib/esm/result-types.js.map +1 -0
  203. package/lib/esm/system/generateObjectText.js +86 -0
  204. package/lib/esm/system/generateObjectText.js.map +1 -0
  205. package/lib/esm/system/notifyWebhookWorkflow.js +49 -0
  206. package/lib/esm/system/notifyWebhookWorkflow.js.map +1 -0
  207. package/lib/esm/system/recalculateEmbeddingsWorkflow.js +34 -0
  208. package/lib/esm/system/recalculateEmbeddingsWorkflow.js.map +1 -0
  209. package/lib/esm/utils/auth.js +8 -0
  210. package/lib/esm/utils/auth.js.map +1 -0
  211. package/lib/esm/utils/blobs.js +52 -0
  212. package/lib/esm/utils/blobs.js.map +1 -0
  213. package/lib/esm/utils/client.js +22 -0
  214. package/lib/esm/utils/client.js.map +1 -0
  215. package/lib/esm/utils/expand-vars.js +30 -0
  216. package/lib/esm/utils/expand-vars.js.map +1 -0
  217. package/lib/esm/utils/memory.js +60 -0
  218. package/lib/esm/utils/memory.js.map +1 -0
  219. package/lib/esm/utils/tokens.js +34 -0
  220. package/lib/esm/utils/tokens.js.map +1 -0
  221. package/lib/esm/vars.js +4 -0
  222. package/lib/esm/vars.js.map +1 -0
  223. package/lib/esm/workflows.js +9 -0
  224. package/lib/esm/workflows.js.map +1 -0
  225. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts +17 -0
  226. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +1 -0
  227. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts +29 -0
  228. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +1 -0
  229. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts +19 -0
  230. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +1 -0
  231. package/lib/types/activities/chunkDocument.d.ts +18 -0
  232. package/lib/types/activities/chunkDocument.d.ts.map +1 -0
  233. package/lib/types/activities/createDocumentFromOther.d.ts +21 -0
  234. package/lib/types/activities/createDocumentFromOther.d.ts.map +1 -0
  235. package/lib/types/activities/executeInteraction.d.ts +40 -0
  236. package/lib/types/activities/executeInteraction.d.ts.map +1 -0
  237. package/lib/types/activities/extractDocumentText.d.ts +9 -0
  238. package/lib/types/activities/extractDocumentText.d.ts.map +1 -0
  239. package/lib/types/activities/generateDocumentProperties.d.ts +32 -0
  240. package/lib/types/activities/generateDocumentProperties.d.ts.map +1 -0
  241. package/lib/types/activities/generateEmbeddings.d.ts +49 -0
  242. package/lib/types/activities/generateEmbeddings.d.ts.map +1 -0
  243. package/lib/types/activities/generateImageRendition.d.ts +17 -0
  244. package/lib/types/activities/generateImageRendition.d.ts.map +1 -0
  245. package/lib/types/activities/generateOrAssignContentType.d.ts +44 -0
  246. package/lib/types/activities/generateOrAssignContentType.d.ts.map +1 -0
  247. package/lib/types/activities/getObjectFromStore.d.ts +14 -0
  248. package/lib/types/activities/getObjectFromStore.d.ts.map +1 -0
  249. package/lib/types/activities/index.d.ts +21 -0
  250. package/lib/types/activities/index.d.ts.map +1 -0
  251. package/lib/types/activities/media/processPdfWithTextract.d.ts +26 -0
  252. package/lib/types/activities/media/processPdfWithTextract.d.ts.map +1 -0
  253. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts +14 -0
  254. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts.map +1 -0
  255. package/lib/types/activities/notifyWebhook.d.ts +17 -0
  256. package/lib/types/activities/notifyWebhook.d.ts.map +1 -0
  257. package/lib/types/activities/setDocumentStatus.d.ts +15 -0
  258. package/lib/types/activities/setDocumentStatus.d.ts.map +1 -0
  259. package/lib/types/conversion/TextractProcessor.d.ts +45 -0
  260. package/lib/types/conversion/TextractProcessor.d.ts.map +1 -0
  261. package/lib/types/conversion/image.d.ts +9 -0
  262. package/lib/types/conversion/image.d.ts.map +1 -0
  263. package/lib/types/conversion/mutool.d.ts +19 -0
  264. package/lib/types/conversion/mutool.d.ts.map +1 -0
  265. package/lib/types/conversion/pandoc.d.ts +2 -0
  266. package/lib/types/conversion/pandoc.d.ts.map +1 -0
  267. package/lib/types/conversion/pdf.d.ts +2 -0
  268. package/lib/types/conversion/pdf.d.ts.map +1 -0
  269. package/lib/types/dsl/conditions.d.ts +2 -0
  270. package/lib/types/dsl/conditions.d.ts.map +1 -0
  271. package/lib/types/dsl/dsl-workflow.d.ts +5 -0
  272. package/lib/types/dsl/dsl-workflow.d.ts.map +1 -0
  273. package/lib/types/dsl/projections.d.ts +4 -0
  274. package/lib/types/dsl/projections.d.ts.map +1 -0
  275. package/lib/types/dsl/setup/ActivityContext.d.ts +14 -0
  276. package/lib/types/dsl/setup/ActivityContext.d.ts.map +1 -0
  277. package/lib/types/dsl/setup/fetch/DataProvider.d.ts +9 -0
  278. package/lib/types/dsl/setup/fetch/DataProvider.d.ts.map +1 -0
  279. package/lib/types/dsl/setup/fetch/index.d.ts +6 -0
  280. package/lib/types/dsl/setup/fetch/index.d.ts.map +1 -0
  281. package/lib/types/dsl/setup/fetch/providers.d.ts +25 -0
  282. package/lib/types/dsl/setup/fetch/providers.d.ts.map +1 -0
  283. package/lib/types/dsl/test/test-child-workflow.d.ts +4 -0
  284. package/lib/types/dsl/test/test-child-workflow.d.ts.map +1 -0
  285. package/lib/types/dsl/validation.d.ts +4 -0
  286. package/lib/types/dsl/validation.d.ts.map +1 -0
  287. package/lib/types/dsl/vars.d.ts +48 -0
  288. package/lib/types/dsl/vars.d.ts.map +1 -0
  289. package/lib/types/dsl/walk.d.ts +18 -0
  290. package/lib/types/dsl/walk.d.ts.map +1 -0
  291. package/lib/types/errors.d.ts +16 -0
  292. package/lib/types/errors.d.ts.map +1 -0
  293. package/lib/types/index.d.ts +24 -0
  294. package/lib/types/index.d.ts.map +1 -0
  295. package/lib/types/iterative-generation/activities/extractToc.d.ts +10 -0
  296. package/lib/types/iterative-generation/activities/extractToc.d.ts.map +1 -0
  297. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts +3 -0
  298. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts.map +1 -0
  299. package/lib/types/iterative-generation/activities/generatePart.d.ts +3 -0
  300. package/lib/types/iterative-generation/activities/generatePart.d.ts.map +1 -0
  301. package/lib/types/iterative-generation/activities/generateToc.d.ts +4 -0
  302. package/lib/types/iterative-generation/activities/generateToc.d.ts.map +1 -0
  303. package/lib/types/iterative-generation/activities/index.d.ts +5 -0
  304. package/lib/types/iterative-generation/activities/index.d.ts.map +1 -0
  305. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts +3 -0
  306. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts.map +1 -0
  307. package/lib/types/iterative-generation/types.d.ts +79 -0
  308. package/lib/types/iterative-generation/types.d.ts.map +1 -0
  309. package/lib/types/iterative-generation/utils.d.ts +27 -0
  310. package/lib/types/iterative-generation/utils.d.ts.map +1 -0
  311. package/lib/types/result-types.d.ts +22 -0
  312. package/lib/types/result-types.d.ts.map +1 -0
  313. package/lib/types/system/generateObjectText.d.ts +4 -0
  314. package/lib/types/system/generateObjectText.d.ts.map +1 -0
  315. package/lib/types/system/notifyWebhookWorkflow.d.ts +6 -0
  316. package/lib/types/system/notifyWebhookWorkflow.d.ts.map +1 -0
  317. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts +40 -0
  318. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts.map +1 -0
  319. package/lib/types/utils/auth.d.ts +4 -0
  320. package/lib/types/utils/auth.d.ts.map +1 -0
  321. package/lib/types/utils/blobs.d.ts +8 -0
  322. package/lib/types/utils/blobs.d.ts.map +1 -0
  323. package/lib/types/utils/client.d.ts +7 -0
  324. package/lib/types/utils/client.d.ts.map +1 -0
  325. package/lib/types/utils/expand-vars.d.ts +8 -0
  326. package/lib/types/utils/expand-vars.d.ts.map +1 -0
  327. package/lib/types/utils/memory.d.ts +12 -0
  328. package/lib/types/utils/memory.d.ts.map +1 -0
  329. package/lib/types/utils/tokens.d.ts +11 -0
  330. package/lib/types/utils/tokens.d.ts.map +1 -0
  331. package/lib/types/vars.d.ts +3 -0
  332. package/lib/types/vars.d.ts.map +1 -0
  333. package/lib/types/workflows.d.ts +9 -0
  334. package/lib/types/workflows.d.ts.map +1 -0
  335. package/lib/workflows-bundle.js +18394 -0
  336. package/package.json +109 -0
  337. package/src/activities/advanced/createDocumentTypeFromInteractionRun.ts +54 -0
  338. package/src/activities/advanced/createOrUpdateDocumentFromInteractionRun.ts +97 -0
  339. package/src/activities/advanced/updateDocumentFromInteractionRun.ts +34 -0
  340. package/src/activities/chunkDocument.ts +124 -0
  341. package/src/activities/createDocumentFromOther.ts +92 -0
  342. package/src/activities/executeInteraction.ts +191 -0
  343. package/src/activities/extractDocumentText.ts +174 -0
  344. package/src/activities/generateDocumentProperties.ts +93 -0
  345. package/src/activities/generateEmbeddings.ts +345 -0
  346. package/src/activities/generateImageRendition.ts +134 -0
  347. package/src/activities/generateOrAssignContentType.ts +152 -0
  348. package/src/activities/getObjectFromStore.ts +31 -0
  349. package/src/activities/index.ts +21 -0
  350. package/src/activities/media/processPdfWithTextract.ts +141 -0
  351. package/src/activities/media/transcribeMediaWithGladia.ts +83 -0
  352. package/src/activities/notifyWebhook.test.ts +32 -0
  353. package/src/activities/notifyWebhook.ts +51 -0
  354. package/src/activities/setDocumentStatus.ts +25 -0
  355. package/src/conversion/TextractProcessor.ts +505 -0
  356. package/src/conversion/image.test.ts +26 -0
  357. package/src/conversion/image.ts +22 -0
  358. package/src/conversion/mutool.test.ts +74 -0
  359. package/src/conversion/mutool.ts +180 -0
  360. package/src/conversion/pandoc.test.ts +22 -0
  361. package/src/conversion/pandoc.ts +44 -0
  362. package/src/conversion/pdf.test.ts +35 -0
  363. package/src/conversion/pdf.ts +8 -0
  364. package/src/dsl/conditions.ts +76 -0
  365. package/src/dsl/dsl-workflow.test.ts +58 -0
  366. package/src/dsl/dsl-workflow.ts +235 -0
  367. package/src/dsl/ms.d.ts +11 -0
  368. package/src/dsl/projections.test.ts +159 -0
  369. package/src/dsl/projections.ts +72 -0
  370. package/src/dsl/setup/ActivityContext.ts +106 -0
  371. package/src/dsl/setup/fetch/DataProvider.ts +45 -0
  372. package/src/dsl/setup/fetch/index.ts +19 -0
  373. package/src/dsl/setup/fetch/providers.ts +67 -0
  374. package/src/dsl/test/test-child-workflow.ts +6 -0
  375. package/src/dsl/validation.test.ts +257 -0
  376. package/src/dsl/validation.ts +125 -0
  377. package/src/dsl/vars.test.ts +245 -0
  378. package/src/dsl/vars.ts +340 -0
  379. package/src/dsl/walk.test.ts +81 -0
  380. package/src/dsl/walk.ts +103 -0
  381. package/src/dsl/workflow-exec-child.test.ts +182 -0
  382. package/src/dsl/workflow-fetch.test.ts +135 -0
  383. package/src/dsl/workflow-import.test.ts +89 -0
  384. package/src/dsl/workflow.test.ts +110 -0
  385. package/src/errors.ts +24 -0
  386. package/src/index.ts +27 -0
  387. package/src/iterative-generation/activities/extractToc.ts +49 -0
  388. package/src/iterative-generation/activities/finalizeOutput.ts +77 -0
  389. package/src/iterative-generation/activities/generatePart.ts +82 -0
  390. package/src/iterative-generation/activities/generateToc.ts +98 -0
  391. package/src/iterative-generation/activities/index.ts +4 -0
  392. package/src/iterative-generation/iterativeGenerationWorkflow.ts +67 -0
  393. package/src/iterative-generation/types.ts +99 -0
  394. package/src/iterative-generation/utils.ts +123 -0
  395. package/src/result-types.ts +25 -0
  396. package/src/system/generateObjectText.ts +109 -0
  397. package/src/system/notifyWebhookWorkflow.ts +64 -0
  398. package/src/system/recalculateEmbeddingsWorkflow.ts +46 -0
  399. package/src/utils/auth.ts +10 -0
  400. package/src/utils/blobs.ts +58 -0
  401. package/src/utils/client.ts +31 -0
  402. package/src/utils/expand-vars.ts +31 -0
  403. package/src/utils/memory.ts +66 -0
  404. package/src/utils/tokens.ts +44 -0
  405. package/src/vars.ts +3 -0
  406. package/src/workflows.ts +9 -0
package/package.json ADDED
@@ -0,0 +1,109 @@
1
+ {
2
+ "name": "@vertesia/workflow",
3
+ "version": "0.42.2",
4
+ "type": "module",
5
+ "description": "Composable prompts workflow dsl",
6
+ "main": "./lib/esm/index.js",
7
+ "files": [
8
+ "lib",
9
+ "src"
10
+ ],
11
+ "bin": {
12
+ "bundle-workflows": "./bin/bundle-workflows.mjs"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/vertesia/composableai.git",
17
+ "directory": "zeno/workflow"
18
+ },
19
+ "license": "Apache-2.0",
20
+ "devDependencies": {
21
+ "@temporalio/testing": "^1.11.5",
22
+ "@temporalio/worker": "^1.11.5",
23
+ "@types/jsonwebtoken": "^9.0.7",
24
+ "@types/node": "^22.5.1",
25
+ "@types/papaparse": "^5.3.15",
26
+ "@types/tmp": "^0.2.6",
27
+ "ts-dual-module": "^0.6.3",
28
+ "vitest": "^2.1.6",
29
+ "@smithy/types": "^3.7.2"
30
+ },
31
+ "dependencies": {
32
+ "@aws-sdk/client-s3": "^3.693.0",
33
+ "@aws-sdk/client-textract": "^3.693.0",
34
+ "@aws-sdk/credential-providers": "^3.693.0",
35
+ "@becomposable/memory": "^0.43.0",
36
+ "@opendocsg/pdf2md": "0.2.0",
37
+ "@temporalio/activity": "^1.11.5",
38
+ "@temporalio/workflow": "^1.11.5",
39
+ "@tensorflow/tfjs-node": "^4.19.0",
40
+ "@types/json-schema": "^7.0.15",
41
+ "api-fetch-client": "^0.13.0",
42
+ "fast-deep-equal": "^3.1.3",
43
+ "jsonwebtoken": "^9.0.2",
44
+ "ms": "3.0.0-canary.1",
45
+ "node-web-stream-adapters": "^0.2.1",
46
+ "papaparse": "^5.4.1",
47
+ "seedrandom": "^3.0.5",
48
+ "sharp": "^0.33.4",
49
+ "tiktoken": "^1.0.15",
50
+ "tmp": "^0.2.3",
51
+ "yaml": "^2.6.0",
52
+ "@vertesia/common": "0.42.2",
53
+ "@llumiverse/core": "0.15.0",
54
+ "@vertesia/client": "0.42.2"
55
+ },
56
+ "ts_dual_module": {
57
+ "outDir": "lib",
58
+ "exports": {
59
+ "activities": "./activities",
60
+ "workflows": "./workflows",
61
+ "workflows-bundle": "./workflows-bundle.js",
62
+ "vars": "./vars"
63
+ }
64
+ },
65
+ "exports": {
66
+ ".": {
67
+ "types": "./lib/types/index.d.ts",
68
+ "import": "./lib/esm/index.js",
69
+ "require": "./lib/cjs/index.js"
70
+ },
71
+ "./vars": {
72
+ "types": "./lib/types/vars.d.ts",
73
+ "import": "./lib/esm/vars.js",
74
+ "require": "./lib/cjs/vars.js"
75
+ },
76
+ "./activities": {
77
+ "types": "./lib/types/activities/index.d.ts",
78
+ "import": "./lib/esm/activities/index.js",
79
+ "require": "./lib/cjs/activities/index.js"
80
+ },
81
+ "./workflows": {
82
+ "types": "./lib/types/workflows.d.ts",
83
+ "import": "./lib/esm/workflows.js",
84
+ "require": "./lib/cjs/workflows.js"
85
+ },
86
+ "./workflows-bundle": {
87
+ "import": "./lib/workflows-bundle.js"
88
+ }
89
+ },
90
+ "types": "./lib/types/index.d.ts",
91
+ "typesVersions": {
92
+ "*": {
93
+ "activities": [
94
+ "./lib/types/activities/index.d.ts"
95
+ ],
96
+ "workflows": [
97
+ "./lib/types/workflows.d.ts"
98
+ ],
99
+ "vars": [
100
+ "./lib/types/dsl/vars.d.ts"
101
+ ]
102
+ }
103
+ },
104
+ "scripts": {
105
+ "test": "vitest run",
106
+ "build": "pnpm exec tsmod build && node ./bin/bundle-workflows.mjs lib/esm/workflows.js lib/workflows-bundle.js",
107
+ "clean": "rm -rf ./lib tsconfig.tsbuildinfo"
108
+ }
109
+ }
@@ -0,0 +1,54 @@
1
+ import { CreateContentObjectTypePayload, DSLActivityExecutionPayload, DSLActivitySpec, ExecutionRun } from "@vertesia/common";
2
+ import { log } from "@temporalio/activity";
3
+ import { projectResult } from "../../dsl/projections.js";
4
+ import { setupActivity } from "../../dsl/setup/ActivityContext.js";
5
+ import { ActivityParamNotFound } from "../../errors.js";
6
+
7
+
8
+ export interface CreateDocumentTypeFromInteractionRunParams {
9
+ /**
10
+ * The execution run object to use. Required.
11
+ * Not required in params since it is usually fetched
12
+ */
13
+ run: ExecutionRun,
14
+ /**
15
+ * If defined then update the object type with the created type
16
+ */
17
+ updateObjectId?: string;
18
+ }
19
+
20
+ export interface CreateDocumentTypeFromInteractionRun extends DSLActivitySpec<CreateDocumentTypeFromInteractionRunParams> {
21
+ name: 'createDocumentTypeFromInteractionRun';
22
+ }
23
+
24
+ export async function createDocumentTypeFromInteractionRun(payload: DSLActivityExecutionPayload) {
25
+ const { params, client } = await setupActivity<CreateDocumentTypeFromInteractionRunParams>(payload);
26
+
27
+ if (!params.run) {
28
+ throw new ActivityParamNotFound("run", payload.activity);
29
+ }
30
+
31
+ const genTypeRes = params.run.result;
32
+
33
+ if (!genTypeRes.document_type) {
34
+ log.error("No name generated for type: " + JSON.stringify(genTypeRes), genTypeRes);
35
+ throw new Error("No name generated for type");
36
+ }
37
+
38
+ log.info("Generated schema for type", genTypeRes.metadata_schema);
39
+ const typeData: CreateContentObjectTypePayload = {
40
+ name: genTypeRes.document_type,
41
+ object_schema: genTypeRes.metadata_schema,
42
+ is_chunkable: !!genTypeRes.is_chunkable,
43
+ }
44
+
45
+ const type = await client.types.create(typeData);
46
+
47
+ if (params.updateObjectId) {
48
+ await client.objects.update(params.updateObjectId, {
49
+ type: type.id,
50
+ });
51
+ }
52
+
53
+ return projectResult(payload, params, type, { id: type.id, name: type.name });
54
+ }
@@ -0,0 +1,97 @@
1
+ import { ContentObjectStatus, DSLActivityExecutionPayload, DSLActivitySpec } from "@vertesia/common";
2
+ import { log } from "@temporalio/activity";
3
+ import { setupActivity } from "../../dsl/setup/ActivityContext.js";
4
+ import { ActivityParamNotFound, NoDocumentFound } from "../../errors.js";
5
+ interface CreateOrUpdateObjectFromInteractionRunParams {
6
+ /**
7
+ * The execution run object to use. Required.
8
+ * Not required in params since it is usually fetched
9
+ */
10
+ run_id?: string,
11
+ /**
12
+ * The document type to use. Required if update_existing_id is false.
13
+ * Not required in params since it is usually fetched
14
+ */
15
+ object_type?: string,
16
+
17
+ /**
18
+ * The id of the document to update. If not provided, a new document will be created
19
+ */
20
+ update_existing_id?: string,
21
+
22
+ fallback_name?: string, // a name to use if no one was generated by the interaction
23
+
24
+ parent?: string, // the parent object id
25
+ }
26
+
27
+ export interface CreateOrUpdateObjectFromInteractionRun extends DSLActivitySpec<CreateOrUpdateObjectFromInteractionRunParams> {
28
+ name: 'createOrUpdateDocumentFromInteractionRun';
29
+ }
30
+
31
+ export async function createOrUpdateDocumentFromInteractionRun(payload: DSLActivityExecutionPayload) {
32
+ const { params, client } = await setupActivity<CreateOrUpdateObjectFromInteractionRunParams>(payload);
33
+
34
+ const runId = params.run_id;
35
+ const objectTypeName = params.object_type;
36
+
37
+ if (!runId) {
38
+ throw new ActivityParamNotFound("run_id", payload.activity);
39
+ }
40
+ if (!objectTypeName && !params.update_existing_id) {
41
+ throw new ActivityParamNotFound("object_type", payload.activity);
42
+ }
43
+
44
+ log.info("Creating document from interaction result", { runId, objectTypeName });
45
+
46
+ const run = await client.runs.retrieve(runId).catch((e) => {
47
+ throw new NoDocumentFound(`Error fetching run ${runId}: ${e.message}`);
48
+ });
49
+
50
+ const type = objectTypeName ?
51
+ await client.types.getTypeByName(objectTypeName).catch((e) => {
52
+ throw new NoDocumentFound(`Error fetching type ${objectTypeName}: ${e.message}`);
53
+ })
54
+ : undefined;
55
+
56
+
57
+ const result = run.result;
58
+ const resultIsObject = typeof result === 'object';
59
+ const inputData = run.parameters;
60
+
61
+ let name: string;
62
+ if (resultIsObject) {
63
+ name = result['name'] || result["title"] || inputData['name'] || params.fallback_name || 'Untitled';
64
+ } else {
65
+ name = inputData['name'] || params.fallback_name || 'Untitled';
66
+ }
67
+
68
+ const docPayload = {
69
+ name,
70
+ parent: params.parent ?? undefined,
71
+ properties: resultIsObject ? result : {},
72
+ text: !resultIsObject ? result : undefined,
73
+ type: type?.id,
74
+ status: ContentObjectStatus.completed,
75
+ generation_run_info: {
76
+ id: run.id,
77
+ date: new Date().toISOString(),
78
+ model: run.modelId,
79
+ target: resultIsObject ? 'properties' : 'text'
80
+ }
81
+ };
82
+
83
+ //create or update the document
84
+ let newDoc: boolean = false;
85
+ let doc = undefined;
86
+ if (params.update_existing_id) {
87
+ log.info(`Updating existing document ${params.update_existing_id}`);
88
+ doc = await client.objects.update(params.update_existing_id, docPayload);
89
+ } else {
90
+ log.info(`Creating new document of type ${objectTypeName}`);
91
+ doc = await client.objects.create(docPayload);
92
+ newDoc = true;
93
+ }
94
+
95
+ log.info(`Document ${objectTypeName + ' '}${doc.id}(${doc.name}) ${newDoc ? 'created' : 'updated'}`);
96
+ return { id: doc.id, isNew: newDoc, type: name }
97
+ }
@@ -0,0 +1,34 @@
1
+ import { DSLActivityExecutionPayload, DSLActivitySpec, ExecutionRun } from "@vertesia/common";
2
+ import { setupActivity } from "../../dsl/setup/ActivityContext.js";
3
+ import { ActivityParamNotFound } from "../../errors.js";
4
+
5
+
6
+ export interface UpdateDocumentFromInteractionRunParams {
7
+ /**
8
+ * The execution run object to use. Required.
9
+ * Not required in params since it is usually fetched
10
+ */
11
+ run?: ExecutionRun,
12
+ }
13
+
14
+ export interface UpdateDocumentFromInteractionRun extends DSLActivitySpec<UpdateDocumentFromInteractionRunParams> {
15
+ name: 'updateDocumentFromInteractionRun';
16
+ }
17
+
18
+ export async function updateDocumentFromInteractionRun(payload: DSLActivityExecutionPayload) {
19
+ const { params, client, objectId } = await setupActivity<UpdateDocumentFromInteractionRunParams>(payload);
20
+
21
+ if (!params.run) {
22
+ throw new ActivityParamNotFound("run", payload.activity);
23
+ }
24
+
25
+ const docProps = params.run.result;
26
+
27
+ if (!docProps) {
28
+ return { status: "failed", error: "no-props" };
29
+ }
30
+
31
+ await client.objects.update(objectId, docProps);
32
+
33
+ return { status: "success" };
34
+ }
@@ -0,0 +1,124 @@
1
+ import { DSLActivityExecutionPayload, DSLActivitySpec } from "@vertesia/common";
2
+ import { log } from "@temporalio/activity";
3
+ import { setupActivity } from "../dsl/setup/ActivityContext.js";
4
+ import { InteractionExecutionParams, executeInteractionFromActivity } from "./executeInteraction.js";
5
+
6
+ const INT_CHUNK_DOCUMENT = "sys:ChunkDocument"
7
+
8
+ interface DocPart {
9
+
10
+ line_number_start: number
11
+ line_number_end: number
12
+ name: string
13
+ type: string
14
+
15
+ }
16
+
17
+ export interface ChunkDocumentResult {
18
+ id: string
19
+ status: "completed" | "failed" | "skipped"
20
+ parts?: string[]
21
+ message?: string
22
+ }
23
+
24
+ export interface ChunkDocumentParams extends InteractionExecutionParams {
25
+ force?: boolean;
26
+ interactionName?: string;
27
+ docPartType?: string;
28
+ }
29
+
30
+ export interface ChunkDocument extends DSLActivitySpec<ChunkDocumentParams> {
31
+ name: 'chunkDocument';
32
+ }
33
+
34
+
35
+ export async function chunkDocument(payload: DSLActivityExecutionPayload): Promise<ChunkDocumentResult> {
36
+ const { params, client, objectId } = await setupActivity<ChunkDocumentParams>(payload);
37
+
38
+ const { force } = params;
39
+ const interactionName = params.interactionName ?? INT_CHUNK_DOCUMENT;
40
+
41
+ log.info(`Object ${objectId} chunking started`);
42
+
43
+ const document = await client.objects.retrieve(objectId, "+text");
44
+
45
+ const type = document.type ? await client.types.retrieve(document.type.id) : undefined;
46
+
47
+ if (!type?.is_chunkable) {
48
+ log.warn('Type is not chunkable for object ID: ' + objectId);
49
+ return { id: objectId, status: "skipped", message: "type not chunkable" }
50
+ }
51
+
52
+ //check if text is present
53
+ if (!document.text) {
54
+ log.warn('No text found for object ID: ' + objectId);
55
+ return { id: objectId, status: "failed", message: "no text found" }
56
+ }
57
+
58
+ if (!force && document.parts && document.parts.length > 0 && document.parts_etag === document.text_etag) {
59
+ log.info('Document already chunked for object ID: ' + objectId);
60
+ return { id: objectId, status: "skipped", message: "document already chunked with correct etag" }
61
+ }
62
+
63
+ //instrument the text with line numbers
64
+ const lines = document.text.split('\n')
65
+ const instrumented = lines.map((l, i) => `{%${i}%}${l}`).join('\n')
66
+
67
+ const res = await executeInteractionFromActivity(client, interactionName, params, {
68
+ objectId: objectId,
69
+ content: instrumented
70
+ });
71
+
72
+ const parts = res.result.parts as DocPart[];
73
+ if (!parts || parts.length === 0) {
74
+ log.warn('No parts found for object ID: ' + objectId, res);
75
+ return { id: objectId, status: "failed", parts: [], message: "no parts found" }
76
+ }
77
+
78
+ const partDocs = await Promise.all(parts.map(async (part, i) => {
79
+
80
+ const text = lines.filter((_l, i) => i >= part.line_number_start && i <= part.line_number_end).join('\n');
81
+
82
+ const location = () => {
83
+ let location = document.location;
84
+ if (location.endsWith('/')) {
85
+ location += document.name + "/" + part.type
86
+ }
87
+ location += '/' + document.name + "/" + part.type;
88
+ return location;
89
+ }
90
+
91
+ const docPart = await client.objects.create({
92
+ name: part.name,
93
+ parent: objectId,
94
+ text: text,
95
+ location: location(),
96
+ properties: {
97
+ part_number: i + 1,
98
+ etag: document.text_etag,
99
+ source_line_start: part.line_number_start,
100
+ source_line_end: part.line_number_end,
101
+ title: part.name
102
+ }
103
+ });
104
+ return docPart;
105
+ }));
106
+
107
+ //delete previous parts
108
+ if (document.parts && document.parts.length > 0) {
109
+ log.info('Deleting previous parts for object ID: ' + objectId, { parts: document.parts });
110
+ await Promise.all(document.parts.map(async (partId) => {
111
+ await client.objects.delete(partId);
112
+ }));
113
+ }
114
+
115
+ await client.objects.update(objectId, {
116
+ parts: partDocs.map(p => p.id),
117
+ parts_etag: document.text_etag
118
+ });
119
+
120
+ log.info(`Object ${objectId} chunking completed`, { parts: document.parts });
121
+
122
+ return { id: objectId, status: "completed", parts: document.parts }
123
+
124
+ }
@@ -0,0 +1,92 @@
1
+ import { DSLActivityExecutionPayload, DSLActivitySpec } from "@vertesia/common";
2
+ import { log } from "@temporalio/activity";
3
+ import fs from 'fs';
4
+ import { pdfExtractPages } from "../conversion/mutool.js";
5
+ import { setupActivity } from "../dsl/setup/ActivityContext.js";
6
+ import { NoDocumentFound } from "../errors.js";
7
+ import { saveBlobToTempFile } from "../utils/blobs.js";
8
+ import { NodeStreamSource } from "../utils/memory.js";
9
+
10
+ interface CreatePdfDocumentFromSourceParams {
11
+
12
+ target_object_type: string; //type of the object to create
13
+ title: string; //title of the object to create
14
+ filename?: string; //filename of the object to create
15
+ pages: number[]; //pages to extract into the new document
16
+ parent?: string; //set the new document as child of the source document
17
+
18
+ }
19
+
20
+
21
+ export interface CreatePdfDocumentFromSource extends DSLActivitySpec<CreatePdfDocumentFromSourceParams> {
22
+ name: 'createPdfDocumentFromSource';
23
+ }
24
+
25
+
26
+ /**
27
+ * Create a new PDF by extrracting pages from a source PDF
28
+ * @returns
29
+ */
30
+ export async function createPdfDocumentFromSource(payload: DSLActivityExecutionPayload) {
31
+ const { client, objectId, params } = await setupActivity<CreatePdfDocumentFromSourceParams>(payload);
32
+ const inputObject = await client.objects.retrieve(objectId);
33
+
34
+ const { pages, filename, title } = params;
35
+ log.info(`Creating PDF from source`, { objectId, pages, filename, title });
36
+
37
+ if (!pages || pages.length === 0) {
38
+ log.error(`No pages provided`);
39
+ throw new Error(`No pages provided`);
40
+ }
41
+
42
+ if (!inputObject) {
43
+ log.error(`Document ${objectId} not found`);
44
+ throw new NoDocumentFound(`Document ${objectId} not found`, [objectId]);
45
+ }
46
+
47
+ if (!inputObject.content?.source) {
48
+ log.error(`Document ${objectId} has no source`);
49
+ throw new NoDocumentFound(`Document ${objectId} has no source`, [objectId]);
50
+ }
51
+
52
+ if (!inputObject.content.type || (!inputObject.content.type?.startsWith('application/pdf'))) {
53
+ log.error(`Document ${objectId} is not an image`);
54
+ throw new NoDocumentFound(`Document ${objectId} is not an image or pdf: ${inputObject.content.type}`, [objectId]);
55
+ }
56
+
57
+ const targetType = await client.types.getTypeByName(params.target_object_type);
58
+ if (!targetType) {
59
+ log.error(`Type ${params.target_object_type} not found`);
60
+ throw new NoDocumentFound(`Type ${params.target_object_type} not found`);
61
+ }
62
+
63
+ const tmpFile = await saveBlobToTempFile(client, inputObject.content.source, ".pdf");
64
+ const newPdf = await pdfExtractPages(tmpFile, pages);
65
+ log.info(`PDF created from pages ${pages.join(', ')} `, { newPdf });
66
+ const name = `pages-${pages.join('-')}.pdf`;
67
+
68
+ const sourceToUpload = new NodeStreamSource(
69
+ fs.createReadStream(newPdf),
70
+ name,
71
+ "application/pdf"
72
+ )
73
+
74
+ log.info(`Uploading file ${newPdf} `);
75
+ const upload = await client.objects.upload(sourceToUpload);
76
+ log.info(`File uploaded ${upload.source} `);
77
+
78
+ const newObject = await client.objects.create({
79
+ type: targetType.id,
80
+ name: title || targetType.name,
81
+ parent: objectId,
82
+ content: {
83
+ source: upload.source,
84
+ name: upload.name,
85
+ type: 'application/pdf'
86
+ }
87
+ });
88
+
89
+ return { newObjectId: newObject.id, uploadedFile: upload.name };
90
+
91
+
92
+ }