@vertesia/workflow 0.54.0 → 0.55.0

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 (357) hide show
  1. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js +32 -0
  2. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
  3. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +72 -0
  4. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
  5. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js +18 -0
  6. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
  7. package/lib/cjs/activities/chunkDocument.js +84 -0
  8. package/lib/cjs/activities/chunkDocument.js.map +1 -0
  9. package/lib/cjs/activities/createDocumentFromOther.js +64 -0
  10. package/lib/cjs/activities/createDocumentFromOther.js.map +1 -0
  11. package/lib/cjs/activities/executeInteraction.js +154 -0
  12. package/lib/cjs/activities/executeInteraction.js.map +1 -0
  13. package/lib/cjs/activities/extractDocumentText.js +156 -0
  14. package/lib/cjs/activities/extractDocumentText.js.map +1 -0
  15. package/lib/cjs/activities/generateDocumentProperties.js +77 -0
  16. package/lib/cjs/activities/generateDocumentProperties.js.map +1 -0
  17. package/lib/cjs/activities/generateEmbeddings.js +248 -0
  18. package/lib/cjs/activities/generateEmbeddings.js.map +1 -0
  19. package/lib/cjs/activities/generateImageRendition.js +167 -0
  20. package/lib/cjs/activities/generateImageRendition.js.map +1 -0
  21. package/lib/cjs/activities/generateOrAssignContentType.js +112 -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 +39 -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/processPdfWithTextract.js +102 -0
  32. package/lib/cjs/activities/media/processPdfWithTextract.js.map +1 -0
  33. package/lib/cjs/activities/media/transcribeMediaWithGladia.js +51 -0
  34. package/lib/cjs/activities/media/transcribeMediaWithGladia.js.map +1 -0
  35. package/lib/cjs/activities/notifyWebhook.js +34 -0
  36. package/lib/cjs/activities/notifyWebhook.js.map +1 -0
  37. package/lib/cjs/activities/setDocumentStatus.js +15 -0
  38. package/lib/cjs/activities/setDocumentStatus.js.map +1 -0
  39. package/lib/cjs/conversion/TextractProcessor.js +417 -0
  40. package/lib/cjs/conversion/TextractProcessor.js.map +1 -0
  41. package/lib/cjs/conversion/image.js +94 -0
  42. package/lib/cjs/conversion/image.js.map +1 -0
  43. package/lib/cjs/conversion/markitdown.js +42 -0
  44. package/lib/cjs/conversion/markitdown.js.map +1 -0
  45. package/lib/cjs/conversion/mutool.js +147 -0
  46. package/lib/cjs/conversion/mutool.js.map +1 -0
  47. package/lib/cjs/conversion/pandoc.js +39 -0
  48. package/lib/cjs/conversion/pandoc.js.map +1 -0
  49. package/lib/cjs/dsl/conditions.js +81 -0
  50. package/lib/cjs/dsl/conditions.js.map +1 -0
  51. package/lib/cjs/dsl/dsl-workflow.js +271 -0
  52. package/lib/cjs/dsl/dsl-workflow.js.map +1 -0
  53. package/lib/cjs/dsl/dslProxyActivities.js +23 -0
  54. package/lib/cjs/dsl/dslProxyActivities.js.map +1 -0
  55. package/lib/cjs/dsl/projections.js +59 -0
  56. package/lib/cjs/dsl/projections.js.map +1 -0
  57. package/lib/cjs/dsl/setup/ActivityContext.js +120 -0
  58. package/lib/cjs/dsl/setup/ActivityContext.js.map +1 -0
  59. package/lib/cjs/dsl/setup/fetch/DataProvider.js +51 -0
  60. package/lib/cjs/dsl/setup/fetch/DataProvider.js.map +1 -0
  61. package/lib/cjs/dsl/setup/fetch/index.js +16 -0
  62. package/lib/cjs/dsl/setup/fetch/index.js.map +1 -0
  63. package/lib/cjs/dsl/setup/fetch/providers.js +67 -0
  64. package/lib/cjs/dsl/setup/fetch/providers.js.map +1 -0
  65. package/lib/cjs/dsl/test/test-child-workflow.js +10 -0
  66. package/lib/cjs/dsl/test/test-child-workflow.js.map +1 -0
  67. package/lib/cjs/dsl/validation.js +122 -0
  68. package/lib/cjs/dsl/validation.js.map +1 -0
  69. package/lib/cjs/dsl/vars.js +341 -0
  70. package/lib/cjs/dsl/vars.js.map +1 -0
  71. package/lib/cjs/dsl/walk.js +100 -0
  72. package/lib/cjs/dsl/walk.js.map +1 -0
  73. package/lib/cjs/dsl.js +20 -0
  74. package/lib/cjs/dsl.js.map +1 -0
  75. package/lib/cjs/errors.js +48 -0
  76. package/lib/cjs/errors.js.map +1 -0
  77. package/lib/cjs/index.js +50 -0
  78. package/lib/cjs/index.js.map +1 -0
  79. package/lib/cjs/iterative-generation/activities/extractToc.js +47 -0
  80. package/lib/cjs/iterative-generation/activities/extractToc.js.map +1 -0
  81. package/lib/cjs/iterative-generation/activities/finalizeOutput.js +69 -0
  82. package/lib/cjs/iterative-generation/activities/finalizeOutput.js.map +1 -0
  83. package/lib/cjs/iterative-generation/activities/generatePart.js +73 -0
  84. package/lib/cjs/iterative-generation/activities/generatePart.js.map +1 -0
  85. package/lib/cjs/iterative-generation/activities/generateToc.js +91 -0
  86. package/lib/cjs/iterative-generation/activities/generateToc.js.map +1 -0
  87. package/lib/cjs/iterative-generation/activities/index.js +12 -0
  88. package/lib/cjs/iterative-generation/activities/index.js.map +1 -0
  89. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js +56 -0
  90. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
  91. package/lib/cjs/iterative-generation/types.js +5 -0
  92. package/lib/cjs/iterative-generation/types.js.map +1 -0
  93. package/lib/cjs/iterative-generation/utils.js +121 -0
  94. package/lib/cjs/iterative-generation/utils.js.map +1 -0
  95. package/lib/cjs/package.json +3 -0
  96. package/lib/cjs/result-types.js +10 -0
  97. package/lib/cjs/result-types.js.map +1 -0
  98. package/lib/cjs/system/notifyWebhookWorkflow.js +47 -0
  99. package/lib/cjs/system/notifyWebhookWorkflow.js.map +1 -0
  100. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js +28 -0
  101. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js.map +1 -0
  102. package/lib/cjs/utils/auth.js +15 -0
  103. package/lib/cjs/utils/auth.js.map +1 -0
  104. package/lib/cjs/utils/blobs.js +69 -0
  105. package/lib/cjs/utils/blobs.js.map +1 -0
  106. package/lib/cjs/utils/chunks.js +14 -0
  107. package/lib/cjs/utils/chunks.js.map +1 -0
  108. package/lib/cjs/utils/client.js +26 -0
  109. package/lib/cjs/utils/client.js.map +1 -0
  110. package/lib/cjs/utils/expand-vars.js +33 -0
  111. package/lib/cjs/utils/expand-vars.js.map +1 -0
  112. package/lib/cjs/utils/memory.js +65 -0
  113. package/lib/cjs/utils/memory.js.map +1 -0
  114. package/lib/cjs/utils/tokens.js +38 -0
  115. package/lib/cjs/utils/tokens.js.map +1 -0
  116. package/lib/cjs/vars.js +20 -0
  117. package/lib/cjs/vars.js.map +1 -0
  118. package/lib/cjs/workflows.js +15 -0
  119. package/lib/cjs/workflows.js.map +1 -0
  120. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js +29 -0
  121. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -0
  122. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +69 -0
  123. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -0
  124. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js +15 -0
  125. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -0
  126. package/lib/esm/activities/chunkDocument.js +81 -0
  127. package/lib/esm/activities/chunkDocument.js.map +1 -0
  128. package/lib/esm/activities/createDocumentFromOther.js +58 -0
  129. package/lib/esm/activities/createDocumentFromOther.js.map +1 -0
  130. package/lib/esm/activities/executeInteraction.js +150 -0
  131. package/lib/esm/activities/executeInteraction.js.map +1 -0
  132. package/lib/esm/activities/extractDocumentText.js +153 -0
  133. package/lib/esm/activities/extractDocumentText.js.map +1 -0
  134. package/lib/esm/activities/generateDocumentProperties.js +74 -0
  135. package/lib/esm/activities/generateDocumentProperties.js.map +1 -0
  136. package/lib/esm/activities/generateEmbeddings.js +245 -0
  137. package/lib/esm/activities/generateEmbeddings.js.map +1 -0
  138. package/lib/esm/activities/generateImageRendition.js +161 -0
  139. package/lib/esm/activities/generateImageRendition.js.map +1 -0
  140. package/lib/esm/activities/generateOrAssignContentType.js +109 -0
  141. package/lib/esm/activities/generateOrAssignContentType.js.map +1 -0
  142. package/lib/esm/activities/getObjectFromStore.js +17 -0
  143. package/lib/esm/activities/getObjectFromStore.js.map +1 -0
  144. package/lib/esm/activities/handleError.js +19 -0
  145. package/lib/esm/activities/handleError.js.map +1 -0
  146. package/lib/esm/activities/index-dsl.js +19 -0
  147. package/lib/esm/activities/index-dsl.js.map +1 -0
  148. package/lib/esm/activities/index.js +5 -0
  149. package/lib/esm/activities/index.js.map +1 -0
  150. package/lib/esm/activities/media/processPdfWithTextract.js +98 -0
  151. package/lib/esm/activities/media/processPdfWithTextract.js.map +1 -0
  152. package/lib/esm/activities/media/transcribeMediaWithGladia.js +48 -0
  153. package/lib/esm/activities/media/transcribeMediaWithGladia.js.map +1 -0
  154. package/lib/esm/activities/notifyWebhook.js +31 -0
  155. package/lib/esm/activities/notifyWebhook.js.map +1 -0
  156. package/lib/esm/activities/setDocumentStatus.js +12 -0
  157. package/lib/esm/activities/setDocumentStatus.js.map +1 -0
  158. package/lib/esm/conversion/TextractProcessor.js +410 -0
  159. package/lib/esm/conversion/TextractProcessor.js.map +1 -0
  160. package/lib/esm/conversion/image.js +88 -0
  161. package/lib/esm/conversion/image.js.map +1 -0
  162. package/lib/esm/conversion/markitdown.js +36 -0
  163. package/lib/esm/conversion/markitdown.js.map +1 -0
  164. package/lib/esm/conversion/mutool.js +139 -0
  165. package/lib/esm/conversion/mutool.js.map +1 -0
  166. package/lib/esm/conversion/pandoc.js +36 -0
  167. package/lib/esm/conversion/pandoc.js.map +1 -0
  168. package/lib/esm/dsl/conditions.js +75 -0
  169. package/lib/esm/dsl/conditions.js.map +1 -0
  170. package/lib/esm/dsl/dsl-workflow.js +264 -0
  171. package/lib/esm/dsl/dsl-workflow.js.map +1 -0
  172. package/lib/esm/dsl/dslProxyActivities.js +20 -0
  173. package/lib/esm/dsl/dslProxyActivities.js.map +1 -0
  174. package/lib/esm/dsl/projections.js +55 -0
  175. package/lib/esm/dsl/projections.js.map +1 -0
  176. package/lib/esm/dsl/setup/ActivityContext.js +115 -0
  177. package/lib/esm/dsl/setup/ActivityContext.js.map +1 -0
  178. package/lib/esm/dsl/setup/fetch/DataProvider.js +47 -0
  179. package/lib/esm/dsl/setup/fetch/DataProvider.js.map +1 -0
  180. package/lib/esm/dsl/setup/fetch/index.js +12 -0
  181. package/lib/esm/dsl/setup/fetch/index.js.map +1 -0
  182. package/lib/esm/dsl/setup/fetch/providers.js +61 -0
  183. package/lib/esm/dsl/setup/fetch/providers.js.map +1 -0
  184. package/lib/esm/dsl/test/test-child-workflow.js +5 -0
  185. package/lib/esm/dsl/test/test-child-workflow.js.map +1 -0
  186. package/lib/esm/dsl/validation.js +118 -0
  187. package/lib/esm/dsl/validation.js.map +1 -0
  188. package/lib/esm/dsl/vars.js +335 -0
  189. package/lib/esm/dsl/vars.js.map +1 -0
  190. package/lib/esm/dsl/walk.js +96 -0
  191. package/lib/esm/dsl/walk.js.map +1 -0
  192. package/lib/esm/dsl.js +4 -0
  193. package/lib/esm/dsl.js.map +1 -0
  194. package/lib/esm/errors.js +41 -0
  195. package/lib/esm/errors.js.map +1 -0
  196. package/lib/esm/index.js +32 -0
  197. package/lib/esm/index.js.map +1 -0
  198. package/lib/esm/iterative-generation/activities/extractToc.js +44 -0
  199. package/lib/esm/iterative-generation/activities/extractToc.js.map +1 -0
  200. package/lib/esm/iterative-generation/activities/finalizeOutput.js +66 -0
  201. package/lib/esm/iterative-generation/activities/finalizeOutput.js.map +1 -0
  202. package/lib/esm/iterative-generation/activities/generatePart.js +70 -0
  203. package/lib/esm/iterative-generation/activities/generatePart.js.map +1 -0
  204. package/lib/esm/iterative-generation/activities/generateToc.js +88 -0
  205. package/lib/esm/iterative-generation/activities/generateToc.js.map +1 -0
  206. package/lib/esm/iterative-generation/activities/index.js +5 -0
  207. package/lib/esm/iterative-generation/activities/index.js.map +1 -0
  208. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js +53 -0
  209. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js.map +1 -0
  210. package/lib/esm/iterative-generation/types.js +2 -0
  211. package/lib/esm/iterative-generation/types.js.map +1 -0
  212. package/lib/esm/iterative-generation/utils.js +112 -0
  213. package/lib/esm/iterative-generation/utils.js.map +1 -0
  214. package/lib/esm/result-types.js +7 -0
  215. package/lib/esm/result-types.js.map +1 -0
  216. package/lib/esm/system/notifyWebhookWorkflow.js +44 -0
  217. package/lib/esm/system/notifyWebhookWorkflow.js.map +1 -0
  218. package/lib/esm/system/recalculateEmbeddingsWorkflow.js +25 -0
  219. package/lib/esm/system/recalculateEmbeddingsWorkflow.js.map +1 -0
  220. package/lib/esm/utils/auth.js +8 -0
  221. package/lib/esm/utils/auth.js.map +1 -0
  222. package/lib/esm/utils/blobs.js +58 -0
  223. package/lib/esm/utils/blobs.js.map +1 -0
  224. package/lib/esm/utils/chunks.js +9 -0
  225. package/lib/esm/utils/chunks.js.map +1 -0
  226. package/lib/esm/utils/client.js +23 -0
  227. package/lib/esm/utils/client.js.map +1 -0
  228. package/lib/esm/utils/expand-vars.js +30 -0
  229. package/lib/esm/utils/expand-vars.js.map +1 -0
  230. package/lib/esm/utils/memory.js +55 -0
  231. package/lib/esm/utils/memory.js.map +1 -0
  232. package/lib/esm/utils/tokens.js +34 -0
  233. package/lib/esm/utils/tokens.js.map +1 -0
  234. package/lib/esm/vars.js +4 -0
  235. package/lib/esm/vars.js.map +1 -0
  236. package/lib/esm/workflows.js +8 -0
  237. package/lib/esm/workflows.js.map +1 -0
  238. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts +17 -0
  239. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +1 -0
  240. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts +39 -0
  241. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +1 -0
  242. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts +19 -0
  243. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +1 -0
  244. package/lib/types/activities/chunkDocument.d.ts +33 -0
  245. package/lib/types/activities/chunkDocument.d.ts.map +1 -0
  246. package/lib/types/activities/createDocumentFromOther.d.ts +21 -0
  247. package/lib/types/activities/createDocumentFromOther.d.ts.map +1 -0
  248. package/lib/types/activities/executeInteraction.d.ts +55 -0
  249. package/lib/types/activities/executeInteraction.d.ts.map +1 -0
  250. package/lib/types/activities/extractDocumentText.d.ts +10 -0
  251. package/lib/types/activities/extractDocumentText.d.ts.map +1 -0
  252. package/lib/types/activities/generateDocumentProperties.d.ts +32 -0
  253. package/lib/types/activities/generateDocumentProperties.d.ts.map +1 -0
  254. package/lib/types/activities/generateEmbeddings.d.ts +53 -0
  255. package/lib/types/activities/generateEmbeddings.d.ts.map +1 -0
  256. package/lib/types/activities/generateImageRendition.d.ts +15 -0
  257. package/lib/types/activities/generateImageRendition.d.ts.map +1 -0
  258. package/lib/types/activities/generateOrAssignContentType.d.ts +44 -0
  259. package/lib/types/activities/generateOrAssignContentType.d.ts.map +1 -0
  260. package/lib/types/activities/getObjectFromStore.d.ts +14 -0
  261. package/lib/types/activities/getObjectFromStore.d.ts.map +1 -0
  262. package/lib/types/activities/handleError.d.ts +6 -0
  263. package/lib/types/activities/handleError.d.ts.map +1 -0
  264. package/lib/types/activities/index-dsl.d.ts +18 -0
  265. package/lib/types/activities/index-dsl.d.ts.map +1 -0
  266. package/lib/types/activities/index.d.ts +5 -0
  267. package/lib/types/activities/index.d.ts.map +1 -0
  268. package/lib/types/activities/media/processPdfWithTextract.d.ts +26 -0
  269. package/lib/types/activities/media/processPdfWithTextract.d.ts.map +1 -0
  270. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts +14 -0
  271. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts.map +1 -0
  272. package/lib/types/activities/notifyWebhook.d.ts +16 -0
  273. package/lib/types/activities/notifyWebhook.d.ts.map +1 -0
  274. package/lib/types/activities/setDocumentStatus.d.ts +15 -0
  275. package/lib/types/activities/setDocumentStatus.d.ts.map +1 -0
  276. package/lib/types/conversion/TextractProcessor.d.ts +45 -0
  277. package/lib/types/conversion/TextractProcessor.d.ts.map +1 -0
  278. package/lib/types/conversion/image.d.ts +11 -0
  279. package/lib/types/conversion/image.d.ts.map +1 -0
  280. package/lib/types/conversion/markitdown.d.ts +2 -0
  281. package/lib/types/conversion/markitdown.d.ts.map +1 -0
  282. package/lib/types/conversion/mutool.d.ts +19 -0
  283. package/lib/types/conversion/mutool.d.ts.map +1 -0
  284. package/lib/types/conversion/pandoc.d.ts +2 -0
  285. package/lib/types/conversion/pandoc.d.ts.map +1 -0
  286. package/lib/types/dsl/conditions.d.ts +2 -0
  287. package/lib/types/dsl/conditions.d.ts.map +1 -0
  288. package/lib/types/dsl/dsl-workflow.d.ts +5 -0
  289. package/lib/types/dsl/dsl-workflow.d.ts.map +1 -0
  290. package/lib/types/dsl/dslProxyActivities.d.ts +10 -0
  291. package/lib/types/dsl/dslProxyActivities.d.ts.map +1 -0
  292. package/lib/types/dsl/projections.d.ts +4 -0
  293. package/lib/types/dsl/projections.d.ts.map +1 -0
  294. package/lib/types/dsl/setup/ActivityContext.d.ts +17 -0
  295. package/lib/types/dsl/setup/ActivityContext.d.ts.map +1 -0
  296. package/lib/types/dsl/setup/fetch/DataProvider.d.ts +9 -0
  297. package/lib/types/dsl/setup/fetch/DataProvider.d.ts.map +1 -0
  298. package/lib/types/dsl/setup/fetch/index.d.ts +6 -0
  299. package/lib/types/dsl/setup/fetch/index.d.ts.map +1 -0
  300. package/lib/types/dsl/setup/fetch/providers.d.ts +25 -0
  301. package/lib/types/dsl/setup/fetch/providers.d.ts.map +1 -0
  302. package/lib/types/dsl/test/test-child-workflow.d.ts +4 -0
  303. package/lib/types/dsl/test/test-child-workflow.d.ts.map +1 -0
  304. package/lib/types/dsl/validation.d.ts +4 -0
  305. package/lib/types/dsl/validation.d.ts.map +1 -0
  306. package/lib/types/dsl/vars.d.ts +48 -0
  307. package/lib/types/dsl/vars.d.ts.map +1 -0
  308. package/lib/types/dsl/walk.d.ts +18 -0
  309. package/lib/types/dsl/walk.d.ts.map +1 -0
  310. package/lib/types/dsl.d.ts +4 -0
  311. package/lib/types/dsl.d.ts.map +1 -0
  312. package/lib/types/errors.d.ts +22 -0
  313. package/lib/types/errors.d.ts.map +1 -0
  314. package/lib/types/index.d.ts +31 -0
  315. package/lib/types/index.d.ts.map +1 -0
  316. package/lib/types/iterative-generation/activities/extractToc.d.ts +10 -0
  317. package/lib/types/iterative-generation/activities/extractToc.d.ts.map +1 -0
  318. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts +3 -0
  319. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts.map +1 -0
  320. package/lib/types/iterative-generation/activities/generatePart.d.ts +3 -0
  321. package/lib/types/iterative-generation/activities/generatePart.d.ts.map +1 -0
  322. package/lib/types/iterative-generation/activities/generateToc.d.ts +4 -0
  323. package/lib/types/iterative-generation/activities/generateToc.d.ts.map +1 -0
  324. package/lib/types/iterative-generation/activities/index.d.ts +5 -0
  325. package/lib/types/iterative-generation/activities/index.d.ts.map +1 -0
  326. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts +3 -0
  327. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts.map +1 -0
  328. package/lib/types/iterative-generation/types.d.ts +79 -0
  329. package/lib/types/iterative-generation/types.d.ts.map +1 -0
  330. package/lib/types/iterative-generation/utils.d.ts +27 -0
  331. package/lib/types/iterative-generation/utils.d.ts.map +1 -0
  332. package/lib/types/result-types.d.ts +22 -0
  333. package/lib/types/result-types.d.ts.map +1 -0
  334. package/lib/types/system/notifyWebhookWorkflow.d.ts +3 -0
  335. package/lib/types/system/notifyWebhookWorkflow.d.ts.map +1 -0
  336. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts +25 -0
  337. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts.map +1 -0
  338. package/lib/types/utils/auth.d.ts +4 -0
  339. package/lib/types/utils/auth.d.ts.map +1 -0
  340. package/lib/types/utils/blobs.d.ts +8 -0
  341. package/lib/types/utils/blobs.d.ts.map +1 -0
  342. package/lib/types/utils/chunks.d.ts +9 -0
  343. package/lib/types/utils/chunks.d.ts.map +1 -0
  344. package/lib/types/utils/client.d.ts +7 -0
  345. package/lib/types/utils/client.d.ts.map +1 -0
  346. package/lib/types/utils/expand-vars.d.ts +8 -0
  347. package/lib/types/utils/expand-vars.d.ts.map +1 -0
  348. package/lib/types/utils/memory.d.ts +8 -0
  349. package/lib/types/utils/memory.d.ts.map +1 -0
  350. package/lib/types/utils/tokens.d.ts +11 -0
  351. package/lib/types/utils/tokens.d.ts.map +1 -0
  352. package/lib/types/vars.d.ts +3 -0
  353. package/lib/types/vars.d.ts.map +1 -0
  354. package/lib/types/workflows.d.ts +8 -0
  355. package/lib/types/workflows.d.ts.map +1 -0
  356. package/lib/workflows-bundle.js +20991 -0
  357. package/package.json +3 -3
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateDocumentProperties = generateDocumentProperties;
4
+ const activity_1 = require("@temporalio/activity");
5
+ const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
6
+ const executeInteraction_js_1 = require("./executeInteraction.js");
7
+ const INT_EXTRACT_INFORMATION = "sys:ExtractInformation";
8
+ async function generateDocumentProperties(payload) {
9
+ const context = await (0, ActivityContext_js_1.setupActivity)(payload);
10
+ const { params, client, objectId } = context;
11
+ const interactionName = params.interactionName ?? INT_EXTRACT_INFORMATION;
12
+ const project = await context.fetchProject();
13
+ const doc = await client.objects.retrieve(objectId, "+text");
14
+ const type = doc.type ? await client.types.retrieve(doc.type.id) : undefined;
15
+ if (!doc?.text && !params.use_vision && !doc?.content?.type?.startsWith("image/")) {
16
+ activity_1.log.warn(`Object ${objectId} not found or text is empty`);
17
+ return { status: "failed", error: "no-text" };
18
+ }
19
+ if (!type || !type.object_schema) {
20
+ activity_1.log.info(`Object ${objectId} has no schema`);
21
+ return { document: objectId, status: "skipped", message: "no schema defined on type" };
22
+ }
23
+ const getImageRef = () => {
24
+ if (doc.content?.type?.startsWith("image/")) {
25
+ return "store:" + doc.id;
26
+ }
27
+ if (params.use_vision && doc.content?.type?.startsWith("application/pdf")) {
28
+ return "store:" + doc.id;
29
+ }
30
+ activity_1.log.info(`Object ${objectId} is not an image or pdf`);
31
+ return undefined;
32
+ };
33
+ const promptData = {
34
+ content: doc.text ?? undefined,
35
+ image: getImageRef() ?? undefined,
36
+ human_context: project?.configuration?.human_context ?? undefined,
37
+ };
38
+ activity_1.log.info(` Extracting information from object ${objectId} with type ${type.name}`, payload.debug_mode ? { params } : undefined);
39
+ const infoRes = await (0, executeInteraction_js_1.executeInteractionFromActivity)(client, interactionName, {
40
+ ...params,
41
+ include_previous_error: true,
42
+ result_schema: type.object_schema,
43
+ }, promptData, payload.debug_mode ?? false);
44
+ const getText = () => {
45
+ if (doc.text) {
46
+ return undefined;
47
+ }
48
+ let text = "";
49
+ if (infoRes.result.title) {
50
+ text += infoRes.result.title + "\n";
51
+ }
52
+ if (infoRes.result.description) {
53
+ text += infoRes.result.description;
54
+ }
55
+ if (text) {
56
+ return text;
57
+ }
58
+ else {
59
+ return undefined;
60
+ }
61
+ };
62
+ activity_1.log.info(`Extracted information from object ${objectId} with type ${type.name}`, { runId: infoRes.id });
63
+ await client.objects.update(doc.id, {
64
+ properties: {
65
+ ...infoRes.result,
66
+ etag: doc.text_etag,
67
+ },
68
+ text: getText(),
69
+ generation_run_info: {
70
+ id: infoRes.id,
71
+ date: new Date().toISOString(),
72
+ model: infoRes.modelId,
73
+ },
74
+ });
75
+ return { status: "completed" };
76
+ }
77
+ //# sourceMappingURL=generateDocumentProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateDocumentProperties.js","sourceRoot":"","sources":["../../../src/activities/generateDocumentProperties.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateEmbeddings = generateEmbeddings;
4
+ const activity_1 = require("@temporalio/activity");
5
+ const common_1 = require("@vertesia/common");
6
+ const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
7
+ const errors_js_1 = require("../errors.js");
8
+ const blobs_js_1 = require("../utils/blobs.js");
9
+ const chunks_js_1 = require("../utils/chunks.js");
10
+ const tokens_js_1 = require("../utils/tokens.js");
11
+ async function generateEmbeddings(payload) {
12
+ const { params, client, objectId, fetchProject } = await (0, ActivityContext_js_1.setupActivity)(payload);
13
+ const { force, type } = params;
14
+ const projectData = await fetchProject();
15
+ const config = projectData?.configuration.embeddings[type];
16
+ if (!projectData) {
17
+ throw new errors_js_1.NoDocumentFound('Project not found', [payload.project_id]);
18
+ }
19
+ if (!config) {
20
+ throw new errors_js_1.NoDocumentFound('Embeddings configuration not found', [objectId]);
21
+ }
22
+ if (!projectData) {
23
+ throw new errors_js_1.NoDocumentFound('Project not found', [payload.project_id]);
24
+ }
25
+ if (!projectData?.configuration.embeddings[type]?.enabled) {
26
+ activity_1.log.info(`Embeddings generation disabled for type ${type} on project: ${projectData.name} (${projectData.namespace})`, { config });
27
+ return { id: objectId, status: "skipped", message: `Embeddings generation disabled for type ${type}` };
28
+ }
29
+ activity_1.log.info(`${type} embedding generation starting for object ${objectId}`, { force, config });
30
+ if (!config.environment) {
31
+ throw new Error('No environment found in project configuration. Set environment in project configuration to generate embeddings.');
32
+ }
33
+ const document = await client.objects.retrieve(objectId, "+text +parts +embeddings +tokens +properties");
34
+ if (!document) {
35
+ throw new errors_js_1.NoDocumentFound('Document not found', [objectId]);
36
+ }
37
+ if (!document.content) {
38
+ throw new errors_js_1.NoDocumentFound('Document content not found', [objectId]);
39
+ }
40
+ let res;
41
+ switch (type) {
42
+ case common_1.SupportedEmbeddingTypes.text:
43
+ res = await generateTextEmbeddings({
44
+ client,
45
+ config,
46
+ document,
47
+ type
48
+ });
49
+ break;
50
+ case common_1.SupportedEmbeddingTypes.properties:
51
+ res = await generateTextEmbeddings({
52
+ client,
53
+ config,
54
+ document,
55
+ type,
56
+ });
57
+ break;
58
+ case common_1.SupportedEmbeddingTypes.image:
59
+ res = await generateImageEmbeddings({
60
+ client,
61
+ config,
62
+ document,
63
+ type
64
+ });
65
+ break;
66
+ default:
67
+ res = { id: objectId, status: "failed", message: `unsupported embedding type: ${type}` };
68
+ }
69
+ return res;
70
+ }
71
+ async function generateTextEmbeddings({ document, client, type, config }, parts) {
72
+ // if (!force && document.embeddings[type]?.etag === (document.text_etag ?? md5(document.text))) {
73
+ // return { id: objectId, status: "skipped", message: "embeddings already generated" }
74
+ // }
75
+ if (!document) {
76
+ return { status: "error", message: "document is null or undefined" };
77
+ }
78
+ if (type !== common_1.SupportedEmbeddingTypes.text && type !== common_1.SupportedEmbeddingTypes.properties) {
79
+ return { id: document.id, status: "failed", message: `unsupported embedding type: ${type}` };
80
+ }
81
+ if (type === common_1.SupportedEmbeddingTypes.text && !document.text) {
82
+ return { id: document.id, status: "failed", message: "no text found" };
83
+ }
84
+ if (type === common_1.SupportedEmbeddingTypes.properties && !document?.properties) {
85
+ return { id: document.id, status: "failed", message: "no properties found" };
86
+ }
87
+ const { environment, model } = config;
88
+ const partDefinitions = parts ?? [];
89
+ // Count tokens if not already done
90
+ if (!document.tokens?.count && type === common_1.SupportedEmbeddingTypes.text) {
91
+ activity_1.log.debug('Updating token count for document: ' + document.id);
92
+ const tokensData = (0, tokens_js_1.countTokens)(document.text);
93
+ await client.objects.update(document.id, {
94
+ tokens: {
95
+ ...tokensData,
96
+ etag: document.text_etag ?? (0, blobs_js_1.md5)(document.text)
97
+ }
98
+ });
99
+ document.tokens = {
100
+ ...tokensData,
101
+ etag: document.text_etag ?? (0, blobs_js_1.md5)(document.text)
102
+ };
103
+ }
104
+ const maxTokens = config.max_tokens ?? 8000;
105
+ //generate embeddings for the main doc if document isn't too large
106
+ //if too large, we'll just generate embeddings for the parts
107
+ //then we can generate embeddings for the main document by averaging the tensors
108
+ activity_1.log.info(`Generating ${type} embeddings for document ${document.id}`);
109
+ if (type === common_1.SupportedEmbeddingTypes.text && document.tokens?.count && document.tokens?.count > maxTokens) {
110
+ activity_1.log.info('Document too large, generating embeddings for parts');
111
+ if (!document.text) {
112
+ return { id: document.id, status: "failed", message: "no text found" };
113
+ }
114
+ if (!partDefinitions || partDefinitions.length === 0) {
115
+ activity_1.log.info('No parts found for document, skipping embeddings generation');
116
+ return { id: document.id, status: "failed", message: "no parts found" };
117
+ }
118
+ activity_1.log.info('Generating embeddings for parts', { parts: partDefinitions, max_tokens: maxTokens });
119
+ const docParts = (0, chunks_js_1.getContentParts)(document.text, partDefinitions);
120
+ activity_1.log.info(`Retrieved ${docParts.length} parts`);
121
+ const start = new Date().getTime();
122
+ const generatePartEmbeddings = async (partContent, i) => {
123
+ const localStart = new Date().getTime();
124
+ try {
125
+ activity_1.log.info(`Generating embeddings for part ${i}`, { text_len: partContent.length });
126
+ if (!partContent) {
127
+ return { id: i, number: i, result: null, status: "skipped", message: "no text found" };
128
+ }
129
+ const e = await generateEmbeddingsFromStudio(partContent, environment, client, model).catch(e => {
130
+ activity_1.log.error('Error generating embeddings for part ' + i, { text_length: partContent.length, error: e });
131
+ return null;
132
+ });
133
+ if (!e || !e.values) {
134
+ return { id: i, number: i, result: null, message: "no embeddings generated" };
135
+ }
136
+ if (e.values.length === 0) {
137
+ return { id: i, number: i, result: null, message: "no embeddings generated" };
138
+ }
139
+ activity_1.log.info(`Generated embeddings for part ${i}`, { len: e.values.length, duration: new Date().getTime() - localStart });
140
+ return { number: i, result: e };
141
+ }
142
+ catch (err) {
143
+ activity_1.log.info(`Error generating ${type} embeddings for part ${i} of ${document.id}`, { error: err });
144
+ return { number: i, result: null, message: "error generating embeddings", error: err.message };
145
+ }
146
+ };
147
+ const partEmbeddings = await Promise.all(docParts.map((part, i) => generatePartEmbeddings(part, i)));
148
+ const validPartEmbeddings = partEmbeddings.filter(e => e.result !== null).map(e => e.result);
149
+ const averagedEmbedding = computeAttentionEmbedding(validPartEmbeddings.map(e => e.values));
150
+ activity_1.log.info(`Averaged embeddings for document ${document.id} in ${(new Date().getTime() - start) / 1000} seconds`, { len: averagedEmbedding.length, count: validPartEmbeddings.length, max_tokens: maxTokens });
151
+ await client.objects.setEmbedding(document.id, type, {
152
+ values: averagedEmbedding,
153
+ model: validPartEmbeddings[0].model,
154
+ etag: document.text_etag
155
+ });
156
+ activity_1.log.info(`Object ${document.id} embedding set`, { type, len: averagedEmbedding.length });
157
+ }
158
+ else {
159
+ activity_1.log.info(`Generating ${type} embeddings for document`);
160
+ const res = await generateEmbeddingsFromStudio(JSON.stringify(document[type]), environment, client);
161
+ if (!res || !res.values) {
162
+ return { id: document.id, status: "failed", message: "no embeddings generated" };
163
+ }
164
+ activity_1.log.info(`${type} embeddings generated for document ${document.id}`, { len: res.values.length });
165
+ await client.objects.setEmbedding(document.id, type, {
166
+ values: res.values,
167
+ model: res.model,
168
+ etag: document.text_etag
169
+ });
170
+ return { id: document.id, type, status: "completed", len: res.values.length };
171
+ }
172
+ }
173
+ async function generateImageEmbeddings({ document, client, type, config }) {
174
+ activity_1.log.info('Generating image embeddings for document ' + document.id, { content: document.content });
175
+ if (!document.content?.type?.startsWith('image/') && !document.content?.type?.includes('pdf')) {
176
+ return { id: document.id, type, status: "failed", message: "content is not an image" };
177
+ }
178
+ const { environment, model } = config;
179
+ const resRnd = await client.store.objects.getRendition(document.id, {
180
+ format: "image/png",
181
+ max_hw: 1024,
182
+ generate_if_missing: true
183
+ });
184
+ if (resRnd.status === 'generating') {
185
+ throw new Error("Rendition is generating, will retry later");
186
+ }
187
+ else if (resRnd.status === "failed" || !resRnd.rendition) {
188
+ throw new errors_js_1.NoDocumentFound("Rendition retrieval failed", [document.id]);
189
+ }
190
+ if (!resRnd.rendition.content.source) {
191
+ throw new errors_js_1.NoDocumentFound("No source found in rendition", [document.id]);
192
+ }
193
+ const image = await (0, blobs_js_1.fetchBlobAsBase64)(client, resRnd.rendition.content.source);
194
+ const res = await client.environments.embeddings(environment, {
195
+ image,
196
+ model
197
+ }).then(res => res).catch(e => {
198
+ activity_1.log.error('Error generating embeddings for image', { error: e });
199
+ throw e;
200
+ });
201
+ if (!res || !res.values) {
202
+ return { id: document.id, status: "failed", message: "no embeddings generated" };
203
+ }
204
+ await client.objects.setEmbedding(document.id, common_1.SupportedEmbeddingTypes.image, {
205
+ values: res.values,
206
+ model: res.model,
207
+ etag: document.text_etag
208
+ });
209
+ return { id: document.id, type, status: "completed", len: res.values.length };
210
+ }
211
+ async function generateEmbeddingsFromStudio(text, env, client, model) {
212
+ activity_1.log.info(`Generating embeddings for text of ${text.length} chars with environment ${env}`);
213
+ return client.environments.embeddings(env, {
214
+ text,
215
+ model
216
+ }).then(res => res).catch(e => {
217
+ activity_1.log.error('Error generating embeddings for text', { error: e });
218
+ throw e;
219
+ });
220
+ }
221
+ //Simplified attention mechanism
222
+ // This is a naive implementation and should be replaced with a more sophisticated
223
+ // using tensorflow in a specific package
224
+ function computeAttentionEmbedding(chunkEmbeddings) {
225
+ if (chunkEmbeddings.length === 0)
226
+ return [];
227
+ const start = new Date().getTime();
228
+ // Generate random attention weights
229
+ const attentionWeights = chunkEmbeddings.map(() => Math.random());
230
+ // Apply softmax to get attention scores
231
+ const expWeights = attentionWeights.map(w => Math.exp(w));
232
+ const sumExpWeights = expWeights.reduce((sum, val) => sum + val, 0);
233
+ const attentionScores = expWeights.map(w => w / sumExpWeights);
234
+ // Get embedding dimension
235
+ const embeddingDim = chunkEmbeddings[0].length;
236
+ // Initialize document embedding
237
+ const documentEmbedding = new Array(embeddingDim).fill(0);
238
+ // Weighted sum of embeddings
239
+ for (let i = 0; i < chunkEmbeddings.length; i++) {
240
+ for (let j = 0; j < embeddingDim; j++) {
241
+ documentEmbedding[j] += chunkEmbeddings[i][j] * attentionScores[i];
242
+ }
243
+ }
244
+ const duration = new Date().getTime() - start;
245
+ console.log(`Computed document embedding in ${duration}ms for ${chunkEmbeddings.length} chunks`);
246
+ return documentEmbedding;
247
+ }
248
+ //# sourceMappingURL=generateEmbeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateEmbeddings.js","sourceRoot":"","sources":["../../../src/activities/generateEmbeddings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generateImageRendition = generateImageRendition;
7
+ const activity_1 = require("@temporalio/activity");
8
+ const node_1 = require("@vertesia/client/node");
9
+ const fluent_ffmpeg_1 = __importDefault(require("fluent-ffmpeg"));
10
+ const fs_1 = __importDefault(require("fs"));
11
+ const os_1 = __importDefault(require("os"));
12
+ const path_1 = __importDefault(require("path"));
13
+ const image_js_1 = require("../conversion/image.js");
14
+ const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
15
+ const errors_js_1 = require("../errors.js");
16
+ const blobs_js_1 = require("../utils/blobs.js");
17
+ async function generateImageRendition(payload) {
18
+ const { client, objectId, params: originParams } = await (0, ActivityContext_js_1.setupActivity)(payload);
19
+ // Fix: Use maxHeightWidth if max_hw is not provided
20
+ const params = {
21
+ ...originParams,
22
+ max_hw: originParams.max_hw || originParams.maxHeightWidth || 1024, // Default to 1024 if both are missing
23
+ format: originParams.format || originParams.format_output || 'png' // Default to png if format is missing
24
+ };
25
+ activity_1.log.info(`Generating image rendition for ${objectId}`, { originParams, params });
26
+ const inputObject = await client.objects.retrieve(objectId).catch((err) => {
27
+ activity_1.log.error(`Failed to retrieve document ${objectId}`, { err });
28
+ if (err.message.includes("not found")) {
29
+ throw new errors_js_1.NoDocumentFound(`Document ${objectId} not found`, [objectId]);
30
+ }
31
+ throw err;
32
+ });
33
+ const renditionType = await client.types.getTypeByName("Rendition");
34
+ if (!params.format) {
35
+ activity_1.log.error(`Format not found`);
36
+ throw new errors_js_1.WorkflowParamNotFound(`format`);
37
+ }
38
+ if (!renditionType) {
39
+ activity_1.log.error(`Rendition type not found`);
40
+ throw new errors_js_1.NoDocumentFound(`Rendition type not found`, [objectId]);
41
+ }
42
+ if (!inputObject.content?.source) {
43
+ activity_1.log.error(`Document ${objectId} has no source`);
44
+ throw new errors_js_1.NoDocumentFound(`Document ${objectId} has no source`, [objectId]);
45
+ }
46
+ if (!inputObject.content.type || (!inputObject.content.type?.startsWith("image/") && !inputObject.content.type?.startsWith("video/"))) {
47
+ activity_1.log.error(`Document ${objectId} is not an image or a video: ${inputObject.content.type}`);
48
+ throw new errors_js_1.NoDocumentFound(`Document ${objectId} is not an image or a video: ${inputObject.content.type}`, [objectId]);
49
+ }
50
+ //array of rendition files to upload
51
+ let renditionPages = [];
52
+ if (inputObject.content.type.startsWith('image/')) {
53
+ const imageFile = await (0, blobs_js_1.saveBlobToTempFile)(client, inputObject.content.source);
54
+ activity_1.log.info(`Image ${objectId} copied to ${imageFile}`);
55
+ renditionPages.push(imageFile);
56
+ }
57
+ else if (inputObject.content.type.startsWith('video/')) {
58
+ const videoFile = await (0, blobs_js_1.saveBlobToTempFile)(client, inputObject.content.source);
59
+ const tempOutputDir = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'video-rendition-'));
60
+ const thumbnailPath = path_1.default.join(tempOutputDir, 'thumbnail.png');
61
+ try {
62
+ // Extract a frame at 10% of the video duration
63
+ await new Promise((resolve, reject) => {
64
+ fluent_ffmpeg_1.default.ffprobe(videoFile, (err, metadata) => {
65
+ if (err) {
66
+ activity_1.log.error(`Failed to probe video metadata: ${err.message}`);
67
+ return reject(err);
68
+ }
69
+ const duration = metadata.format.duration || 0;
70
+ const timestamp = Math.max(0.1 * duration, 1);
71
+ (0, fluent_ffmpeg_1.default)(videoFile)
72
+ .screenshots({
73
+ timestamps: [timestamp],
74
+ filename: 'thumbnail.png',
75
+ folder: tempOutputDir,
76
+ size: `${params.max_hw}x?`
77
+ })
78
+ .on('end', () => {
79
+ activity_1.log.info(`Video frame extraction complete for ${objectId}`);
80
+ resolve();
81
+ })
82
+ .on('error', (err) => {
83
+ activity_1.log.error(`Error extracting frame from video: ${err.message}`);
84
+ reject(err);
85
+ });
86
+ });
87
+ });
88
+ if (fs_1.default.existsSync(thumbnailPath)) {
89
+ renditionPages.push(thumbnailPath);
90
+ }
91
+ else {
92
+ throw new Error(`Failed to generate thumbnail for video ${objectId}`);
93
+ }
94
+ }
95
+ catch (error) {
96
+ activity_1.log.error(`Error generating image rendition for video: ${error instanceof Error ? error.message : 'Unknown error'}`);
97
+ throw new Error(`Failed to generate image rendition for video: ${objectId}`);
98
+ }
99
+ }
100
+ //generate rendition name, pass an index for multi parts
101
+ const getRenditionName = (index = 0) => {
102
+ const name = `renditions/${objectId}/${params.max_hw}/${index}.${params.format}`;
103
+ return name;
104
+ };
105
+ if (!renditionPages || !renditionPages.length) {
106
+ activity_1.log.error(`Failed to generate rendition for ${objectId}`);
107
+ throw new Error(`Failed to generate rendition for ${objectId}`);
108
+ }
109
+ activity_1.log.info(`Uploading rendition for ${objectId} with ${renditionPages.length} pages (max_hw: ${params.max_hw}, format: ${params.format})`, { renditionPages });
110
+ const uploads = renditionPages.map(async (page, i) => {
111
+ const pageId = getRenditionName(i);
112
+ let resizedImagePath = null;
113
+ try {
114
+ activity_1.log.info(`Resizing image for ${objectId} page ${i}`, { page, params });
115
+ // Resize the image using ImageMagick
116
+ resizedImagePath = await (0, image_js_1.imageResizer)(page, params.max_hw, params.format);
117
+ // Create a read stream from the resized image file
118
+ const fileStream = fs_1.default.createReadStream(resizedImagePath);
119
+ const format = "image/" + params.format;
120
+ const fileId = pageId.split("/").pop() ?? "0." + params.format;
121
+ const source = new node_1.NodeStreamSource(fileStream, fileId, format, pageId);
122
+ activity_1.log.info(`Uploading rendition for ${objectId} page ${i} with max_hw: ${params.max_hw} and format: ${params.format}`, {
123
+ resizedImagePath,
124
+ fileId,
125
+ format,
126
+ pageId,
127
+ });
128
+ const result = await client.objects.upload(source).catch((err) => {
129
+ activity_1.log.error(`Failed to upload rendition for ${objectId} page ${i}`, {
130
+ error: err,
131
+ errorMessage: err.message,
132
+ stack: err.stack
133
+ });
134
+ return Promise.reject(`Upload failed: ${err.message}`);
135
+ });
136
+ activity_1.log.info(`Rendition uploaded for ${objectId} page ${i}`, { result });
137
+ return result;
138
+ }
139
+ catch (error) {
140
+ activity_1.log.error(`Failed to process rendition for ${objectId} page ${i}`, { error });
141
+ return Promise.reject(error instanceof Error ? error.message : null);
142
+ }
143
+ });
144
+ const uploaded = await Promise.all(uploads);
145
+ if (!uploaded || !uploaded.length || !uploaded[0]) {
146
+ activity_1.log.error(`Failed to upload rendition for ${objectId}`, { uploaded });
147
+ throw new Error(`Failed to upload rendition for ${objectId} - upload object is empty`);
148
+ }
149
+ activity_1.log.info(`Creating rendition for ${objectId} with max_hw: ${params.max_hw} and format: ${params.format}`, {
150
+ uploaded,
151
+ });
152
+ const rendition = await client.objects.create({
153
+ name: inputObject.name + ` [Rendition ${params.max_hw}]`,
154
+ type: renditionType.id,
155
+ parent: inputObject.id,
156
+ content: uploaded[0],
157
+ properties: {
158
+ mime_type: "image/" + params.format,
159
+ source_etag: inputObject.content.source,
160
+ height: params.max_hw,
161
+ width: params.max_hw,
162
+ },
163
+ });
164
+ activity_1.log.info(`Rendition ${rendition.id} created for ${objectId}`, { rendition });
165
+ return { id: rendition.id, format: params.format, status: "success" };
166
+ }
167
+ //# sourceMappingURL=generateImageRendition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateImageRendition.js","sourceRoot":"","sources":["../../../src/activities/generateImageRendition.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateOrAssignContentType = generateOrAssignContentType;
4
+ const activity_1 = require("@temporalio/activity");
5
+ const ActivityContext_js_1 = require("../dsl/setup/ActivityContext.js");
6
+ const tokens_js_1 = require("../utils/tokens.js");
7
+ const executeInteraction_js_1 = require("./executeInteraction.js");
8
+ const INT_SELECT_DOCUMENT_TYPE = "sys:SelectDocumentType";
9
+ const INT_GENERATE_METADATA_MODEL = "sys:GenerateMetadataModel";
10
+ async function generateOrAssignContentType(payload) {
11
+ const context = await (0, ActivityContext_js_1.setupActivity)(payload);
12
+ const { params, client, objectId } = context;
13
+ const interactionName = params.interactionNames?.selectDocumentType ?? INT_SELECT_DOCUMENT_TYPE;
14
+ activity_1.log.info("SelectDocumentType for object: " + objectId, { payload });
15
+ const object = await client.objects.retrieve(objectId, "+text");
16
+ //Expects object.type to be null on first ingestion of content
17
+ //User initiated Content Type change via the Composable UI,
18
+ //sets object.type to null when they let Composable choose for them.
19
+ //sets object.type to chosen type (thus non-null) when user picks a type.
20
+ if (object.type) {
21
+ activity_1.log.warn(`Object ${objectId} has already a type. Skipping type creation.`);
22
+ return { status: "skipped", message: "Object already has a type: " + object.type.name };
23
+ }
24
+ if (!object ||
25
+ (!object.text &&
26
+ !object.content?.type?.startsWith("image/") &&
27
+ !object.content?.type?.startsWith("application/pdf"))) {
28
+ activity_1.log.info(`Object ${objectId} not found or text is empty and not an image`, { object });
29
+ return { status: "failed", error: "no-text" };
30
+ }
31
+ const types = await client.types.list(undefined, {
32
+ schema: true,
33
+ });
34
+ //make a list of all existing types, and add hints if any
35
+ const existing_types = types.filter((t) => !["DocumentPart", "Rendition"].includes(t.name));
36
+ const content = object.text ? (0, tokens_js_1.truncByMaxTokens)(object.text, params.truncate || 30000) : undefined;
37
+ const getImage = async () => {
38
+ if (object.content?.type?.includes("pdf") && object.text?.length && object.text?.length < 100) {
39
+ return "store:" + objectId;
40
+ }
41
+ if (!object.content?.type?.startsWith("image/")) {
42
+ return undefined;
43
+ }
44
+ const res = await client.objects.getRendition(objectId, {
45
+ max_hw: 1024,
46
+ format: "image/png",
47
+ generate_if_missing: true,
48
+ });
49
+ if (!res.rendition && res.status === "generating") {
50
+ //throw to try again
51
+ throw new Error(`Rendition for object ${objectId} is in progress`);
52
+ }
53
+ else if (res.rendition) {
54
+ return "store:" + objectId;
55
+ }
56
+ };
57
+ const fileRef = await getImage();
58
+ activity_1.log.info("Execute SelectDocumentType interaction on content with \nexisting types - passing full types: " +
59
+ existing_types.filter((t) => !t.tags?.includes("system")));
60
+ const res = await (0, executeInteraction_js_1.executeInteractionFromActivity)(client, interactionName, params, {
61
+ existing_types,
62
+ content,
63
+ image: fileRef,
64
+ });
65
+ activity_1.log.info("Selected Content Type Result: " + JSON.stringify(res.result));
66
+ //if type is not identified or not present in the database, generate a new type
67
+ let selectedType = undefined;
68
+ selectedType = types.find((t) => t.name === res.result.document_type);
69
+ if (!selectedType) {
70
+ activity_1.log.warn("Document type not identified: starting type generation");
71
+ const newType = await generateNewType(context, existing_types, content, fileRef);
72
+ selectedType = { id: newType.id, name: newType.name };
73
+ }
74
+ if (!selectedType) {
75
+ activity_1.log.error("Type not found: ", res.result);
76
+ throw new Error("Type not found: " + res.result.document_type);
77
+ }
78
+ //update object with selected type
79
+ await client.objects.update(objectId, {
80
+ type: selectedType.id,
81
+ });
82
+ return {
83
+ id: selectedType.id,
84
+ name: selectedType.name,
85
+ isNew: !types.find((t) => t.name === selectedType.name),
86
+ };
87
+ }
88
+ async function generateNewType(context, existing_types, content, fileRef) {
89
+ const { client, params } = context;
90
+ const project = await context.fetchProject();
91
+ const interactionName = params.interactionNames?.generateMetadataModel ?? INT_GENERATE_METADATA_MODEL;
92
+ const genTypeRes = await (0, executeInteraction_js_1.executeInteractionFromActivity)(client, interactionName, params, {
93
+ existing_types,
94
+ content: content,
95
+ human_context: project?.configuration?.human_context ?? undefined,
96
+ image: fileRef ? fileRef : undefined,
97
+ });
98
+ if (!genTypeRes.result.document_type) {
99
+ activity_1.log.error("No name generated for type", genTypeRes);
100
+ throw new Error("No name generated for type");
101
+ }
102
+ activity_1.log.info("Generated schema for type", genTypeRes.result.metadata_schema);
103
+ const typeData = {
104
+ name: genTypeRes.result.document_type,
105
+ object_schema: genTypeRes.result.metadata_schema,
106
+ is_chunkable: genTypeRes.result.is_chunkable,
107
+ table_layout: genTypeRes.result.table_layout,
108
+ };
109
+ const type = await client.types.create(typeData);
110
+ return type;
111
+ }
112
+ //# sourceMappingURL=generateOrAssignContentType.js.map