@vertesia/workflow 0.52.0 → 0.54.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 (379) hide show
  1. package/package.json +5 -4
  2. package/src/activities/createDocumentFromOther.ts +1 -1
  3. package/src/activities/executeInteraction.ts +66 -39
  4. package/src/activities/extractDocumentText.ts +67 -51
  5. package/src/activities/generateEmbeddings.ts +1 -1
  6. package/src/activities/generateImageRendition.ts +35 -14
  7. package/src/activities/generateOrAssignContentType.ts +52 -26
  8. package/src/activities/getObjectFromStore.ts +1 -1
  9. package/src/activities/handleError.ts +25 -0
  10. package/src/activities/index-dsl.ts +1 -0
  11. package/src/activities/index.ts +0 -1
  12. package/src/activities/media/processPdfWithTextract.ts +4 -4
  13. package/src/activities/media/transcribeMediaWithGladia.ts +1 -1
  14. package/src/activities/setDocumentStatus.ts +1 -1
  15. package/src/conversion/TextractProcessor.ts +9 -9
  16. package/src/conversion/image.ts +8 -2
  17. package/src/conversion/markitdown.ts +41 -0
  18. package/src/conversion/mutool.ts +1 -1
  19. package/src/conversion/pandoc.test.ts +2 -2
  20. package/src/conversion/pandoc.ts +38 -42
  21. package/src/dsl/dsl-workflow.ts +80 -12
  22. package/src/dsl/validation.test.ts +2 -2
  23. package/src/dsl/vars.test.ts +1 -1
  24. package/src/dsl/vars.ts +6 -6
  25. package/src/dsl/workflow-exec-child.test.ts +14 -4
  26. package/src/dsl/workflow-fetch.test.ts +1 -1
  27. package/src/dsl/workflow-import.test.ts +1 -1
  28. package/src/dsl/workflow.test.ts +12 -2
  29. package/src/index.ts +1 -1
  30. package/src/iterative-generation/activities/extractToc.ts +1 -1
  31. package/src/iterative-generation/activities/generatePart.ts +2 -2
  32. package/src/iterative-generation/activities/generateToc.ts +1 -1
  33. package/src/iterative-generation/iterativeGenerationWorkflow.ts +1 -1
  34. package/src/iterative-generation/types.ts +4 -4
  35. package/src/iterative-generation/utils.ts +4 -4
  36. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js +0 -32
  37. package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js.map +0 -1
  38. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +0 -72
  39. package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +0 -1
  40. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js +0 -18
  41. package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js.map +0 -1
  42. package/lib/cjs/activities/chunkDocument.js +0 -84
  43. package/lib/cjs/activities/chunkDocument.js.map +0 -1
  44. package/lib/cjs/activities/createDocumentFromOther.js +0 -64
  45. package/lib/cjs/activities/createDocumentFromOther.js.map +0 -1
  46. package/lib/cjs/activities/executeInteraction.js +0 -140
  47. package/lib/cjs/activities/executeInteraction.js.map +0 -1
  48. package/lib/cjs/activities/extractDocumentText.js +0 -153
  49. package/lib/cjs/activities/extractDocumentText.js.map +0 -1
  50. package/lib/cjs/activities/generateDocumentProperties.js +0 -77
  51. package/lib/cjs/activities/generateDocumentProperties.js.map +0 -1
  52. package/lib/cjs/activities/generateEmbeddings.js +0 -248
  53. package/lib/cjs/activities/generateEmbeddings.js.map +0 -1
  54. package/lib/cjs/activities/generateImageRendition.js +0 -147
  55. package/lib/cjs/activities/generateImageRendition.js.map +0 -1
  56. package/lib/cjs/activities/generateOrAssignContentType.js +0 -99
  57. package/lib/cjs/activities/generateOrAssignContentType.js.map +0 -1
  58. package/lib/cjs/activities/getObjectFromStore.js +0 -20
  59. package/lib/cjs/activities/getObjectFromStore.js.map +0 -1
  60. package/lib/cjs/activities/index-dsl.js +0 -37
  61. package/lib/cjs/activities/index-dsl.js.map +0 -1
  62. package/lib/cjs/activities/index.js +0 -22
  63. package/lib/cjs/activities/index.js.map +0 -1
  64. package/lib/cjs/activities/media/processPdfWithTextract.js +0 -102
  65. package/lib/cjs/activities/media/processPdfWithTextract.js.map +0 -1
  66. package/lib/cjs/activities/media/transcribeMediaWithGladia.js +0 -51
  67. package/lib/cjs/activities/media/transcribeMediaWithGladia.js.map +0 -1
  68. package/lib/cjs/activities/notifyWebhook.js +0 -34
  69. package/lib/cjs/activities/notifyWebhook.js.map +0 -1
  70. package/lib/cjs/activities/setDocumentStatus.js +0 -15
  71. package/lib/cjs/activities/setDocumentStatus.js.map +0 -1
  72. package/lib/cjs/conversion/TextractProcessor.js +0 -417
  73. package/lib/cjs/conversion/TextractProcessor.js.map +0 -1
  74. package/lib/cjs/conversion/image.js +0 -90
  75. package/lib/cjs/conversion/image.js.map +0 -1
  76. package/lib/cjs/conversion/mutool.js +0 -147
  77. package/lib/cjs/conversion/mutool.js.map +0 -1
  78. package/lib/cjs/conversion/pandoc.js +0 -39
  79. package/lib/cjs/conversion/pandoc.js.map +0 -1
  80. package/lib/cjs/dsl/conditions.js +0 -81
  81. package/lib/cjs/dsl/conditions.js.map +0 -1
  82. package/lib/cjs/dsl/dsl-workflow.js +0 -223
  83. package/lib/cjs/dsl/dsl-workflow.js.map +0 -1
  84. package/lib/cjs/dsl/dslProxyActivities.js +0 -23
  85. package/lib/cjs/dsl/dslProxyActivities.js.map +0 -1
  86. package/lib/cjs/dsl/projections.js +0 -59
  87. package/lib/cjs/dsl/projections.js.map +0 -1
  88. package/lib/cjs/dsl/setup/ActivityContext.js +0 -120
  89. package/lib/cjs/dsl/setup/ActivityContext.js.map +0 -1
  90. package/lib/cjs/dsl/setup/fetch/DataProvider.js +0 -51
  91. package/lib/cjs/dsl/setup/fetch/DataProvider.js.map +0 -1
  92. package/lib/cjs/dsl/setup/fetch/index.js +0 -16
  93. package/lib/cjs/dsl/setup/fetch/index.js.map +0 -1
  94. package/lib/cjs/dsl/setup/fetch/providers.js +0 -67
  95. package/lib/cjs/dsl/setup/fetch/providers.js.map +0 -1
  96. package/lib/cjs/dsl/test/test-child-workflow.js +0 -10
  97. package/lib/cjs/dsl/test/test-child-workflow.js.map +0 -1
  98. package/lib/cjs/dsl/validation.js +0 -122
  99. package/lib/cjs/dsl/validation.js.map +0 -1
  100. package/lib/cjs/dsl/vars.js +0 -341
  101. package/lib/cjs/dsl/vars.js.map +0 -1
  102. package/lib/cjs/dsl/walk.js +0 -100
  103. package/lib/cjs/dsl/walk.js.map +0 -1
  104. package/lib/cjs/dsl.js +0 -20
  105. package/lib/cjs/dsl.js.map +0 -1
  106. package/lib/cjs/errors.js +0 -48
  107. package/lib/cjs/errors.js.map +0 -1
  108. package/lib/cjs/index.js +0 -50
  109. package/lib/cjs/index.js.map +0 -1
  110. package/lib/cjs/iterative-generation/activities/extractToc.js +0 -47
  111. package/lib/cjs/iterative-generation/activities/extractToc.js.map +0 -1
  112. package/lib/cjs/iterative-generation/activities/finalizeOutput.js +0 -69
  113. package/lib/cjs/iterative-generation/activities/finalizeOutput.js.map +0 -1
  114. package/lib/cjs/iterative-generation/activities/generatePart.js +0 -73
  115. package/lib/cjs/iterative-generation/activities/generatePart.js.map +0 -1
  116. package/lib/cjs/iterative-generation/activities/generateToc.js +0 -91
  117. package/lib/cjs/iterative-generation/activities/generateToc.js.map +0 -1
  118. package/lib/cjs/iterative-generation/activities/index.js +0 -12
  119. package/lib/cjs/iterative-generation/activities/index.js.map +0 -1
  120. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js +0 -56
  121. package/lib/cjs/iterative-generation/iterativeGenerationWorkflow.js.map +0 -1
  122. package/lib/cjs/iterative-generation/types.js +0 -5
  123. package/lib/cjs/iterative-generation/types.js.map +0 -1
  124. package/lib/cjs/iterative-generation/utils.js +0 -121
  125. package/lib/cjs/iterative-generation/utils.js.map +0 -1
  126. package/lib/cjs/package.json +0 -3
  127. package/lib/cjs/result-types.js +0 -10
  128. package/lib/cjs/result-types.js.map +0 -1
  129. package/lib/cjs/system/notifyWebhookWorkflow.js +0 -47
  130. package/lib/cjs/system/notifyWebhookWorkflow.js.map +0 -1
  131. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js +0 -28
  132. package/lib/cjs/system/recalculateEmbeddingsWorkflow.js.map +0 -1
  133. package/lib/cjs/utils/auth.js +0 -15
  134. package/lib/cjs/utils/auth.js.map +0 -1
  135. package/lib/cjs/utils/blobs.js +0 -69
  136. package/lib/cjs/utils/blobs.js.map +0 -1
  137. package/lib/cjs/utils/chunks.js +0 -14
  138. package/lib/cjs/utils/chunks.js.map +0 -1
  139. package/lib/cjs/utils/client.js +0 -26
  140. package/lib/cjs/utils/client.js.map +0 -1
  141. package/lib/cjs/utils/expand-vars.js +0 -33
  142. package/lib/cjs/utils/expand-vars.js.map +0 -1
  143. package/lib/cjs/utils/memory.js +0 -65
  144. package/lib/cjs/utils/memory.js.map +0 -1
  145. package/lib/cjs/utils/tokens.js +0 -38
  146. package/lib/cjs/utils/tokens.js.map +0 -1
  147. package/lib/cjs/vars.js +0 -20
  148. package/lib/cjs/vars.js.map +0 -1
  149. package/lib/cjs/workflows.js +0 -15
  150. package/lib/cjs/workflows.js.map +0 -1
  151. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js +0 -29
  152. package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js.map +0 -1
  153. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +0 -69
  154. package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +0 -1
  155. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js +0 -15
  156. package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js.map +0 -1
  157. package/lib/esm/activities/chunkDocument.js +0 -81
  158. package/lib/esm/activities/chunkDocument.js.map +0 -1
  159. package/lib/esm/activities/createDocumentFromOther.js +0 -58
  160. package/lib/esm/activities/createDocumentFromOther.js.map +0 -1
  161. package/lib/esm/activities/executeInteraction.js +0 -136
  162. package/lib/esm/activities/executeInteraction.js.map +0 -1
  163. package/lib/esm/activities/extractDocumentText.js +0 -150
  164. package/lib/esm/activities/extractDocumentText.js.map +0 -1
  165. package/lib/esm/activities/generateDocumentProperties.js +0 -74
  166. package/lib/esm/activities/generateDocumentProperties.js.map +0 -1
  167. package/lib/esm/activities/generateEmbeddings.js +0 -245
  168. package/lib/esm/activities/generateEmbeddings.js.map +0 -1
  169. package/lib/esm/activities/generateImageRendition.js +0 -141
  170. package/lib/esm/activities/generateImageRendition.js.map +0 -1
  171. package/lib/esm/activities/generateOrAssignContentType.js +0 -96
  172. package/lib/esm/activities/generateOrAssignContentType.js.map +0 -1
  173. package/lib/esm/activities/getObjectFromStore.js +0 -17
  174. package/lib/esm/activities/getObjectFromStore.js.map +0 -1
  175. package/lib/esm/activities/index-dsl.js +0 -18
  176. package/lib/esm/activities/index-dsl.js.map +0 -1
  177. package/lib/esm/activities/index.js +0 -6
  178. package/lib/esm/activities/index.js.map +0 -1
  179. package/lib/esm/activities/media/processPdfWithTextract.js +0 -98
  180. package/lib/esm/activities/media/processPdfWithTextract.js.map +0 -1
  181. package/lib/esm/activities/media/transcribeMediaWithGladia.js +0 -48
  182. package/lib/esm/activities/media/transcribeMediaWithGladia.js.map +0 -1
  183. package/lib/esm/activities/notifyWebhook.js +0 -31
  184. package/lib/esm/activities/notifyWebhook.js.map +0 -1
  185. package/lib/esm/activities/setDocumentStatus.js +0 -12
  186. package/lib/esm/activities/setDocumentStatus.js.map +0 -1
  187. package/lib/esm/conversion/TextractProcessor.js +0 -410
  188. package/lib/esm/conversion/TextractProcessor.js.map +0 -1
  189. package/lib/esm/conversion/image.js +0 -84
  190. package/lib/esm/conversion/image.js.map +0 -1
  191. package/lib/esm/conversion/mutool.js +0 -139
  192. package/lib/esm/conversion/mutool.js.map +0 -1
  193. package/lib/esm/conversion/pandoc.js +0 -36
  194. package/lib/esm/conversion/pandoc.js.map +0 -1
  195. package/lib/esm/dsl/conditions.js +0 -75
  196. package/lib/esm/dsl/conditions.js.map +0 -1
  197. package/lib/esm/dsl/dsl-workflow.js +0 -216
  198. package/lib/esm/dsl/dsl-workflow.js.map +0 -1
  199. package/lib/esm/dsl/dslProxyActivities.js +0 -20
  200. package/lib/esm/dsl/dslProxyActivities.js.map +0 -1
  201. package/lib/esm/dsl/projections.js +0 -55
  202. package/lib/esm/dsl/projections.js.map +0 -1
  203. package/lib/esm/dsl/setup/ActivityContext.js +0 -115
  204. package/lib/esm/dsl/setup/ActivityContext.js.map +0 -1
  205. package/lib/esm/dsl/setup/fetch/DataProvider.js +0 -47
  206. package/lib/esm/dsl/setup/fetch/DataProvider.js.map +0 -1
  207. package/lib/esm/dsl/setup/fetch/index.js +0 -12
  208. package/lib/esm/dsl/setup/fetch/index.js.map +0 -1
  209. package/lib/esm/dsl/setup/fetch/providers.js +0 -61
  210. package/lib/esm/dsl/setup/fetch/providers.js.map +0 -1
  211. package/lib/esm/dsl/test/test-child-workflow.js +0 -5
  212. package/lib/esm/dsl/test/test-child-workflow.js.map +0 -1
  213. package/lib/esm/dsl/validation.js +0 -118
  214. package/lib/esm/dsl/validation.js.map +0 -1
  215. package/lib/esm/dsl/vars.js +0 -335
  216. package/lib/esm/dsl/vars.js.map +0 -1
  217. package/lib/esm/dsl/walk.js +0 -96
  218. package/lib/esm/dsl/walk.js.map +0 -1
  219. package/lib/esm/dsl.js +0 -4
  220. package/lib/esm/dsl.js.map +0 -1
  221. package/lib/esm/errors.js +0 -41
  222. package/lib/esm/errors.js.map +0 -1
  223. package/lib/esm/index.js +0 -32
  224. package/lib/esm/index.js.map +0 -1
  225. package/lib/esm/iterative-generation/activities/extractToc.js +0 -44
  226. package/lib/esm/iterative-generation/activities/extractToc.js.map +0 -1
  227. package/lib/esm/iterative-generation/activities/finalizeOutput.js +0 -66
  228. package/lib/esm/iterative-generation/activities/finalizeOutput.js.map +0 -1
  229. package/lib/esm/iterative-generation/activities/generatePart.js +0 -70
  230. package/lib/esm/iterative-generation/activities/generatePart.js.map +0 -1
  231. package/lib/esm/iterative-generation/activities/generateToc.js +0 -88
  232. package/lib/esm/iterative-generation/activities/generateToc.js.map +0 -1
  233. package/lib/esm/iterative-generation/activities/index.js +0 -5
  234. package/lib/esm/iterative-generation/activities/index.js.map +0 -1
  235. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js +0 -53
  236. package/lib/esm/iterative-generation/iterativeGenerationWorkflow.js.map +0 -1
  237. package/lib/esm/iterative-generation/types.js +0 -2
  238. package/lib/esm/iterative-generation/types.js.map +0 -1
  239. package/lib/esm/iterative-generation/utils.js +0 -112
  240. package/lib/esm/iterative-generation/utils.js.map +0 -1
  241. package/lib/esm/result-types.js +0 -7
  242. package/lib/esm/result-types.js.map +0 -1
  243. package/lib/esm/system/notifyWebhookWorkflow.js +0 -44
  244. package/lib/esm/system/notifyWebhookWorkflow.js.map +0 -1
  245. package/lib/esm/system/recalculateEmbeddingsWorkflow.js +0 -25
  246. package/lib/esm/system/recalculateEmbeddingsWorkflow.js.map +0 -1
  247. package/lib/esm/utils/auth.js +0 -8
  248. package/lib/esm/utils/auth.js.map +0 -1
  249. package/lib/esm/utils/blobs.js +0 -58
  250. package/lib/esm/utils/blobs.js.map +0 -1
  251. package/lib/esm/utils/chunks.js +0 -9
  252. package/lib/esm/utils/chunks.js.map +0 -1
  253. package/lib/esm/utils/client.js +0 -23
  254. package/lib/esm/utils/client.js.map +0 -1
  255. package/lib/esm/utils/expand-vars.js +0 -30
  256. package/lib/esm/utils/expand-vars.js.map +0 -1
  257. package/lib/esm/utils/memory.js +0 -55
  258. package/lib/esm/utils/memory.js.map +0 -1
  259. package/lib/esm/utils/tokens.js +0 -34
  260. package/lib/esm/utils/tokens.js.map +0 -1
  261. package/lib/esm/vars.js +0 -4
  262. package/lib/esm/vars.js.map +0 -1
  263. package/lib/esm/workflows.js +0 -8
  264. package/lib/esm/workflows.js.map +0 -1
  265. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts +0 -17
  266. package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +0 -1
  267. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts +0 -39
  268. package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +0 -1
  269. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts +0 -19
  270. package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +0 -1
  271. package/lib/types/activities/chunkDocument.d.ts +0 -33
  272. package/lib/types/activities/chunkDocument.d.ts.map +0 -1
  273. package/lib/types/activities/createDocumentFromOther.d.ts +0 -21
  274. package/lib/types/activities/createDocumentFromOther.d.ts.map +0 -1
  275. package/lib/types/activities/executeInteraction.d.ts +0 -55
  276. package/lib/types/activities/executeInteraction.d.ts.map +0 -1
  277. package/lib/types/activities/extractDocumentText.d.ts +0 -10
  278. package/lib/types/activities/extractDocumentText.d.ts.map +0 -1
  279. package/lib/types/activities/generateDocumentProperties.d.ts +0 -32
  280. package/lib/types/activities/generateDocumentProperties.d.ts.map +0 -1
  281. package/lib/types/activities/generateEmbeddings.d.ts +0 -53
  282. package/lib/types/activities/generateEmbeddings.d.ts.map +0 -1
  283. package/lib/types/activities/generateImageRendition.d.ts +0 -15
  284. package/lib/types/activities/generateImageRendition.d.ts.map +0 -1
  285. package/lib/types/activities/generateOrAssignContentType.d.ts +0 -44
  286. package/lib/types/activities/generateOrAssignContentType.d.ts.map +0 -1
  287. package/lib/types/activities/getObjectFromStore.d.ts +0 -14
  288. package/lib/types/activities/getObjectFromStore.d.ts.map +0 -1
  289. package/lib/types/activities/index-dsl.d.ts +0 -17
  290. package/lib/types/activities/index-dsl.d.ts.map +0 -1
  291. package/lib/types/activities/index.d.ts +0 -6
  292. package/lib/types/activities/index.d.ts.map +0 -1
  293. package/lib/types/activities/media/processPdfWithTextract.d.ts +0 -26
  294. package/lib/types/activities/media/processPdfWithTextract.d.ts.map +0 -1
  295. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts +0 -14
  296. package/lib/types/activities/media/transcribeMediaWithGladia.d.ts.map +0 -1
  297. package/lib/types/activities/notifyWebhook.d.ts +0 -16
  298. package/lib/types/activities/notifyWebhook.d.ts.map +0 -1
  299. package/lib/types/activities/setDocumentStatus.d.ts +0 -15
  300. package/lib/types/activities/setDocumentStatus.d.ts.map +0 -1
  301. package/lib/types/conversion/TextractProcessor.d.ts +0 -45
  302. package/lib/types/conversion/TextractProcessor.d.ts.map +0 -1
  303. package/lib/types/conversion/image.d.ts +0 -11
  304. package/lib/types/conversion/image.d.ts.map +0 -1
  305. package/lib/types/conversion/mutool.d.ts +0 -19
  306. package/lib/types/conversion/mutool.d.ts.map +0 -1
  307. package/lib/types/conversion/pandoc.d.ts +0 -2
  308. package/lib/types/conversion/pandoc.d.ts.map +0 -1
  309. package/lib/types/dsl/conditions.d.ts +0 -2
  310. package/lib/types/dsl/conditions.d.ts.map +0 -1
  311. package/lib/types/dsl/dsl-workflow.d.ts +0 -5
  312. package/lib/types/dsl/dsl-workflow.d.ts.map +0 -1
  313. package/lib/types/dsl/dslProxyActivities.d.ts +0 -10
  314. package/lib/types/dsl/dslProxyActivities.d.ts.map +0 -1
  315. package/lib/types/dsl/projections.d.ts +0 -4
  316. package/lib/types/dsl/projections.d.ts.map +0 -1
  317. package/lib/types/dsl/setup/ActivityContext.d.ts +0 -17
  318. package/lib/types/dsl/setup/ActivityContext.d.ts.map +0 -1
  319. package/lib/types/dsl/setup/fetch/DataProvider.d.ts +0 -9
  320. package/lib/types/dsl/setup/fetch/DataProvider.d.ts.map +0 -1
  321. package/lib/types/dsl/setup/fetch/index.d.ts +0 -6
  322. package/lib/types/dsl/setup/fetch/index.d.ts.map +0 -1
  323. package/lib/types/dsl/setup/fetch/providers.d.ts +0 -25
  324. package/lib/types/dsl/setup/fetch/providers.d.ts.map +0 -1
  325. package/lib/types/dsl/test/test-child-workflow.d.ts +0 -4
  326. package/lib/types/dsl/test/test-child-workflow.d.ts.map +0 -1
  327. package/lib/types/dsl/validation.d.ts +0 -4
  328. package/lib/types/dsl/validation.d.ts.map +0 -1
  329. package/lib/types/dsl/vars.d.ts +0 -48
  330. package/lib/types/dsl/vars.d.ts.map +0 -1
  331. package/lib/types/dsl/walk.d.ts +0 -18
  332. package/lib/types/dsl/walk.d.ts.map +0 -1
  333. package/lib/types/dsl.d.ts +0 -4
  334. package/lib/types/dsl.d.ts.map +0 -1
  335. package/lib/types/errors.d.ts +0 -22
  336. package/lib/types/errors.d.ts.map +0 -1
  337. package/lib/types/index.d.ts +0 -31
  338. package/lib/types/index.d.ts.map +0 -1
  339. package/lib/types/iterative-generation/activities/extractToc.d.ts +0 -10
  340. package/lib/types/iterative-generation/activities/extractToc.d.ts.map +0 -1
  341. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts +0 -3
  342. package/lib/types/iterative-generation/activities/finalizeOutput.d.ts.map +0 -1
  343. package/lib/types/iterative-generation/activities/generatePart.d.ts +0 -3
  344. package/lib/types/iterative-generation/activities/generatePart.d.ts.map +0 -1
  345. package/lib/types/iterative-generation/activities/generateToc.d.ts +0 -4
  346. package/lib/types/iterative-generation/activities/generateToc.d.ts.map +0 -1
  347. package/lib/types/iterative-generation/activities/index.d.ts +0 -5
  348. package/lib/types/iterative-generation/activities/index.d.ts.map +0 -1
  349. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts +0 -3
  350. package/lib/types/iterative-generation/iterativeGenerationWorkflow.d.ts.map +0 -1
  351. package/lib/types/iterative-generation/types.d.ts +0 -79
  352. package/lib/types/iterative-generation/types.d.ts.map +0 -1
  353. package/lib/types/iterative-generation/utils.d.ts +0 -27
  354. package/lib/types/iterative-generation/utils.d.ts.map +0 -1
  355. package/lib/types/result-types.d.ts +0 -22
  356. package/lib/types/result-types.d.ts.map +0 -1
  357. package/lib/types/system/notifyWebhookWorkflow.d.ts +0 -3
  358. package/lib/types/system/notifyWebhookWorkflow.d.ts.map +0 -1
  359. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts +0 -25
  360. package/lib/types/system/recalculateEmbeddingsWorkflow.d.ts.map +0 -1
  361. package/lib/types/utils/auth.d.ts +0 -4
  362. package/lib/types/utils/auth.d.ts.map +0 -1
  363. package/lib/types/utils/blobs.d.ts +0 -8
  364. package/lib/types/utils/blobs.d.ts.map +0 -1
  365. package/lib/types/utils/chunks.d.ts +0 -9
  366. package/lib/types/utils/chunks.d.ts.map +0 -1
  367. package/lib/types/utils/client.d.ts +0 -7
  368. package/lib/types/utils/client.d.ts.map +0 -1
  369. package/lib/types/utils/expand-vars.d.ts +0 -8
  370. package/lib/types/utils/expand-vars.d.ts.map +0 -1
  371. package/lib/types/utils/memory.d.ts +0 -8
  372. package/lib/types/utils/memory.d.ts.map +0 -1
  373. package/lib/types/utils/tokens.d.ts +0 -11
  374. package/lib/types/utils/tokens.d.ts.map +0 -1
  375. package/lib/types/vars.d.ts +0 -3
  376. package/lib/types/vars.d.ts.map +0 -1
  377. package/lib/types/workflows.d.ts +0 -8
  378. package/lib/types/workflows.d.ts.map +0 -1
  379. package/lib/workflows-bundle.js +0 -20689
@@ -1,417 +0,0 @@
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.TextractProcessor = void 0;
7
- const client_s3_1 = require("@aws-sdk/client-s3");
8
- const client_textract_1 = require("@aws-sdk/client-textract");
9
- const papaparse_1 = __importDefault(require("papaparse"));
10
- class TextractProcessor {
11
- textractClient;
12
- s3Client;
13
- fileKey;
14
- bucket;
15
- log;
16
- detectImages;
17
- /**
18
- * Whether or not to include confidence values in CSV output for tables.
19
- */
20
- includeConfidenceInTables;
21
- constructor({ fileKey, region, bucket, credentials, log, detectImages = false, includeConfidenceInTables = false // NEW default = false
22
- }) {
23
- this.fileKey = fileKey;
24
- this.bucket = bucket;
25
- this.log = log;
26
- this.detectImages = detectImages;
27
- this.includeConfidenceInTables = includeConfidenceInTables;
28
- this.textractClient = new client_textract_1.TextractClient({
29
- region,
30
- credentials
31
- });
32
- this.s3Client = new client_s3_1.S3Client({
33
- region,
34
- credentials
35
- });
36
- }
37
- getText(result, blocksMap) {
38
- let text = '';
39
- if (result.Relationships) {
40
- for (const relationship of result.Relationships) {
41
- if (relationship.Type === 'CHILD') {
42
- for (const childId of relationship.Ids || []) {
43
- const word = blocksMap[childId];
44
- if (word.BlockType === 'WORD') {
45
- const wordText = word.Text || '';
46
- // Example logic to quote numeric text with commas
47
- if (wordText.includes(',') &&
48
- wordText.replace(',', '').match(/^\d+$/)) {
49
- text += `"${wordText}" `;
50
- }
51
- else {
52
- text += `${wordText} `;
53
- }
54
- }
55
- if (word.BlockType === 'SELECTION_ELEMENT' &&
56
- word.SelectionStatus === 'SELECTED') {
57
- text += 'X ';
58
- }
59
- }
60
- }
61
- }
62
- }
63
- return text.trim();
64
- }
65
- isBlockInTable(block, blocksMap) {
66
- if (block.BlockType !== 'LINE') {
67
- return false;
68
- }
69
- if (block.Relationships) {
70
- for (const relationship of block.Relationships) {
71
- if (relationship.Type === 'CHILD') {
72
- for (const childId of relationship.Ids || []) {
73
- const wordBlock = blocksMap[childId];
74
- if (this.isWordInTableCell(wordBlock, blocksMap)) {
75
- return true;
76
- }
77
- }
78
- }
79
- }
80
- }
81
- return false;
82
- }
83
- isWordInTableCell(wordBlock, blocksMap) {
84
- // Check if the wordBlock is a descendant of any TABLE->CELL block
85
- for (const blockId in blocksMap) {
86
- const potentialTable = blocksMap[blockId];
87
- if (potentialTable.BlockType === 'TABLE' && potentialTable.Relationships) {
88
- for (const relationship of potentialTable.Relationships) {
89
- if (relationship.Type === 'CHILD') {
90
- for (const cellId of relationship.Ids || []) {
91
- const cell = blocksMap[cellId];
92
- if (cell.BlockType === 'CELL' && cell.Relationships) {
93
- for (const cellRel of cell.Relationships) {
94
- if (cellRel.Type === 'CHILD' &&
95
- cellRel.Ids?.includes(wordBlock.Id)) {
96
- return true;
97
- }
98
- }
99
- }
100
- }
101
- }
102
- }
103
- }
104
- }
105
- return false;
106
- }
107
- /**
108
- * NEW: Helper type to store row and column text along with confidence.
109
- */
110
- getRowsColumnsMap(tableResult, blocksMap) {
111
- const rows = [];
112
- tableResult.Relationships?.forEach(relationship => {
113
- if (relationship.Type === 'CHILD') {
114
- relationship.Ids?.forEach(childId => {
115
- const cell = blocksMap[childId];
116
- if (cell.BlockType === 'CELL') {
117
- const rowIndex = cell.RowIndex || 1;
118
- const colIndex = cell.ColumnIndex || 1;
119
- // Expand the array if needed
120
- if (!rows[rowIndex - 1]) {
121
- rows[rowIndex - 1] = [];
122
- }
123
- // Prepare cell text and confidence
124
- const text = this.getText(cell, blocksMap);
125
- const confidence = cell.Confidence || 0;
126
- // If there's a gap, fill it with placeholders
127
- // so that we can safely place text at colIndex - 1
128
- for (let i = rows[rowIndex - 1].length; i < colIndex - 1; i++) {
129
- rows[rowIndex - 1].push({ text: '', confidence: 0 });
130
- }
131
- rows[rowIndex - 1][colIndex - 1] = { text, confidence };
132
- }
133
- });
134
- }
135
- });
136
- return { rows };
137
- }
138
- generateTableCSV(tableResult, blocksMap, _tableIndex, _pageNumber) {
139
- const { rows } = this.getRowsColumnsMap(tableResult, blocksMap);
140
- let totalConfidence = 0;
141
- let cellCount = 0;
142
- // Prepare CSV data
143
- const csvData = [];
144
- for (const row of rows) {
145
- const rowData = [];
146
- for (const cell of row) {
147
- // Add to CSV
148
- rowData.push(cell.text.trim());
149
- // Accumulate confidence
150
- totalConfidence += cell.confidence;
151
- cellCount++;
152
- }
153
- csvData.push(rowData);
154
- }
155
- // Compute average confidence (or any other method you prefer)
156
- const tableConfidence = cellCount > 0 ? (totalConfidence / cellCount) : 0;
157
- // Convert to CSV
158
- const csv = papaparse_1.default.unparse(csvData, {
159
- delimiter: ',',
160
- quotes: true,
161
- quoteChar: '"',
162
- escapeChar: '"',
163
- header: false,
164
- newline: '\n',
165
- skipEmptyLines: false
166
- });
167
- return { csv, tableConfidence };
168
- }
169
- async upload(fileBuf) {
170
- this.log.info('Uploading file to S3', { fileKey: this.fileKey });
171
- const command = new client_s3_1.PutObjectCommand({
172
- Bucket: this.bucket,
173
- Key: this.fileKey,
174
- Body: fileBuf,
175
- });
176
- await this.s3Client.send(command);
177
- }
178
- async startAnalysis(s3Key) {
179
- const command = new client_textract_1.StartDocumentAnalysisCommand({
180
- DocumentLocation: {
181
- S3Object: {
182
- Bucket: this.bucket,
183
- Name: s3Key
184
- }
185
- },
186
- FeatureTypes: ["TABLES"]
187
- });
188
- const response = await this.textractClient.send(command);
189
- return response.JobId;
190
- }
191
- async checkJobStatus(jobId) {
192
- const command = new client_textract_1.GetDocumentAnalysisCommand({ JobId: jobId });
193
- const response = await this.textractClient.send(command);
194
- return response.JobStatus;
195
- }
196
- getImagePlaceholder(block) {
197
- const geometry = block.Geometry?.BoundingBox;
198
- if (!geometry)
199
- return '';
200
- const area = (geometry.Width || 0) * (geometry.Height || 0);
201
- if (area < 0.05)
202
- return ''; // skip small images
203
- const top = geometry.Top || 0;
204
- const left = geometry.Left || 0;
205
- let position = '';
206
- if (top < 0.3)
207
- position += 'TOP_';
208
- else if (top > 0.7)
209
- position += 'BOTTOM_';
210
- if (left < 0.3)
211
- position += 'LEFT';
212
- else if (left > 0.7)
213
- position += 'RIGHT';
214
- else
215
- position += 'CENTER';
216
- return `[IMAGE_${position}]\n`;
217
- }
218
- getIndentationLevel(block) {
219
- const left = block.Geometry?.BoundingBox?.Left || 0;
220
- if (left < 0.15)
221
- return 0;
222
- if (left < 0.25)
223
- return 1;
224
- return 2;
225
- }
226
- isLikelyHeader(block, prevBlock) {
227
- if (!prevBlock)
228
- return true;
229
- const gap = (block.Geometry?.BoundingBox?.Top || 0) -
230
- ((prevBlock.Geometry?.BoundingBox?.Top || 0) +
231
- (prevBlock.Geometry?.BoundingBox?.Height || 0));
232
- return gap > 0.03;
233
- }
234
- formatTextBlock(block, prevBlock) {
235
- const text = block.Text || '';
236
- const indentLevel = this.getIndentationLevel(block);
237
- const indent = ' '.repeat(indentLevel);
238
- if (this.isLikelyHeader(block, prevBlock)) {
239
- return `\n${indent}${text}\n`;
240
- }
241
- return `${indent}${text}\n`;
242
- }
243
- shouldMergeLines(prev, current) {
244
- const prevBottom = (prev.Geometry?.BoundingBox?.Top || 0)
245
- + (prev.Geometry?.BoundingBox?.Height || 0);
246
- const currentTop = current.Geometry?.BoundingBox?.Top || 0;
247
- const gap = currentTop - prevBottom;
248
- // For example, if gap < 0.02, treat them as contiguous
249
- if (gap < 0.02) {
250
- return true;
251
- }
252
- return false;
253
- }
254
- async processResults(jobId) {
255
- let nextToken;
256
- let allBlocks = [];
257
- do {
258
- const command = new client_textract_1.GetDocumentAnalysisCommand({
259
- JobId: jobId,
260
- NextToken: nextToken
261
- });
262
- const response = await this.textractClient.send(command);
263
- allBlocks = allBlocks.concat(response.Blocks || []);
264
- nextToken = response.NextToken;
265
- } while (nextToken);
266
- // Create blocks map
267
- const blocksMap = {};
268
- for (const block of allBlocks) {
269
- blocksMap[block.Id] = block;
270
- }
271
- // We'll store each page's content in sequence
272
- const pageContents = [];
273
- let currentPage = null;
274
- // We'll keep track of a "current text block" that we're building
275
- let currentTextContent = "";
276
- let prevLineBlock = null;
277
- // Sort by page and vertical position
278
- allBlocks.sort((a, b) => {
279
- if (a.Page !== b.Page)
280
- return (a.Page || 0) - (b.Page || 0);
281
- return (a.Geometry?.BoundingBox?.Top || 0) - (b.Geometry?.BoundingBox?.Top || 0);
282
- });
283
- for (const block of allBlocks) {
284
- if (block.BlockType === 'PAGE') {
285
- // If we were building a text block, push it before starting a new page
286
- if (currentTextContent.trim().length > 0 && currentPage) {
287
- currentPage.blocks.push({
288
- type: 'text',
289
- content: currentTextContent
290
- });
291
- }
292
- if (currentPage) {
293
- pageContents.push(currentPage);
294
- }
295
- currentPage = {
296
- pageNumber: block.Page || 0,
297
- blocks: []
298
- };
299
- currentTextContent = "";
300
- prevLineBlock = null;
301
- }
302
- else if (currentPage && block.Page === currentPage.pageNumber) {
303
- // TABLE handling
304
- if (block.BlockType === 'TABLE') {
305
- // If there's a pending text block, push it first
306
- if (currentTextContent.trim().length > 0) {
307
- currentPage.blocks.push({
308
- type: 'text',
309
- content: currentTextContent
310
- });
311
- currentTextContent = "";
312
- }
313
- const { csv, tableConfidence } = this.generateTableCSV(block, blocksMap, currentPage.blocks.filter(b => b.type === 'table').length + 1, currentPage.pageNumber);
314
- currentPage.blocks.push({
315
- type: 'table',
316
- content: csv,
317
- confidence: tableConfidence
318
- });
319
- prevLineBlock = null;
320
- }
321
- // LINE handling (merge or start new)
322
- else if (block.BlockType === 'LINE' && !this.isBlockInTable(block, blocksMap)) {
323
- if (prevLineBlock && this.shouldMergeLines(prevLineBlock, block)) {
324
- // If we consider this line to be part of the same paragraph,
325
- // just append the text. We'll call formatTextBlock to get
326
- // indentation/header logic, but we won't add a leading newline.
327
- const formatted = this.formatTextBlock(block, prevLineBlock);
328
- // formatTextBlock might include a leading newline if isLikelyHeader = true
329
- // so you can strip it out if you want them truly "merged" into one paragraph:
330
- const mergedText = formatted.replace(/^\s*\n/, " ");
331
- currentTextContent += " " + mergedText.trim();
332
- }
333
- else {
334
- // If there's an existing text block, push it
335
- if (currentTextContent.trim().length > 0) {
336
- currentPage.blocks.push({
337
- type: 'text',
338
- content: currentTextContent
339
- });
340
- }
341
- // Start a new text block
342
- currentTextContent = this.formatTextBlock(block, prevLineBlock).trim();
343
- }
344
- prevLineBlock = block;
345
- }
346
- // IMAGES (if detectImages)
347
- else if (this.detectImages) {
348
- const geometry = block.Geometry?.BoundingBox;
349
- if (geometry && geometry.Width && geometry.Height) {
350
- const imagePlaceholder = this.getImagePlaceholder(block);
351
- if (imagePlaceholder) {
352
- // If there's a pending text block, push it first
353
- if (currentTextContent.trim().length > 0) {
354
- currentPage.blocks.push({
355
- type: 'text',
356
- content: currentTextContent
357
- });
358
- currentTextContent = "";
359
- }
360
- currentPage.blocks.push({
361
- type: 'image',
362
- content: imagePlaceholder,
363
- left: geometry.Left,
364
- top: geometry.Top,
365
- width: geometry.Width,
366
- height: geometry.Height
367
- });
368
- }
369
- }
370
- // No line update to prevLineBlock here
371
- }
372
- }
373
- }
374
- // Handle last page
375
- if (currentPage) {
376
- if (currentTextContent.trim().length > 0) {
377
- currentPage.blocks.push({
378
- type: 'text',
379
- content: currentTextContent
380
- });
381
- }
382
- pageContents.push(currentPage);
383
- }
384
- // Build final output
385
- let fulltext = '';
386
- let imgNumber = 1;
387
- let tableNumber = 1;
388
- for (const page of pageContents) {
389
- fulltext += `<page number="${page.pageNumber}">\n`;
390
- for (const block of page.blocks) {
391
- if (block.type === 'text') {
392
- fulltext += `<text>\n${block.content}\n</text>\n\n`;
393
- }
394
- else if (block.type === 'table') {
395
- const confidenceAttr = block.confidence !== undefined && this.includeConfidenceInTables
396
- ? ` confidence="${block.confidence.toFixed(2)}"`
397
- : '';
398
- fulltext += `<table number=${tableNumber++} type="csv" ${confidenceAttr}>\n`;
399
- fulltext += `${block.content}\n`;
400
- fulltext += `</table>\n\n`;
401
- }
402
- else if (block.type === 'image') {
403
- // Include geometry if you like
404
- const leftAttr = block.left ? ` left="${block.left.toFixed(4)}"` : '';
405
- const topAttr = block.top ? ` top="${block.top.toFixed(4)}"` : '';
406
- const widthAttr = block.width ? ` width="${block.width.toFixed(4)}"` : '';
407
- const heightAttr = block.height ? ` height="${block.height.toFixed(4)}"` : '';
408
- fulltext += `<image id="${imgNumber++}" ${leftAttr}${topAttr}${widthAttr}${heightAttr}>\n${block.content.trim()}\n</image>\n\n`;
409
- }
410
- }
411
- fulltext += `</page>\n\n`;
412
- }
413
- return fulltext;
414
- }
415
- }
416
- exports.TextractProcessor = TextractProcessor;
417
- //# sourceMappingURL=TextractProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextractProcessor.js","sourceRoot":"","sources":["../../../src/conversion/TextractProcessor.ts"],"names":[],"mappings":"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"}
@@ -1,90 +0,0 @@
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.imageResizer = imageResizer;
7
- const activity_1 = require("@temporalio/activity");
8
- const child_process_1 = require("child_process");
9
- const fs_1 = __importDefault(require("fs"));
10
- const tmp_promise_1 = require("tmp-promise");
11
- const util_1 = require("util");
12
- const execFile = (0, util_1.promisify)(child_process_1.execFile);
13
- /**
14
- * Resizes an image to a maximum height or width using ImageMagick
15
- * with progressive loading when supported
16
- * @param inputPath Input file path
17
- * @param max_hw Maximum height or width
18
- * @param format Output format
19
- * @param progressive Enable progressive loading for supported formats (defaults to true)
20
- * @returns Path to the resized image
21
- */
22
- async function imageResizer(inputPath, max_hw, format, progressive = true) {
23
- const allowedFormats = ["jpg", "jpeg", "png", "webp"];
24
- if (!format || format.trim() === "") {
25
- throw new Error(`Invalid format: ${format}.Supported : ${allowedFormats.join(", ")}`);
26
- }
27
- //check that max_hw is valid
28
- if (!Number.isInteger(max_hw) || max_hw <= 0) {
29
- throw new Error(`Invalid max_hw value: ${max_hw}`);
30
- }
31
- //check that inputPath exists
32
- if (!fs_1.default.existsSync(inputPath)) {
33
- throw new Error(`Input file does not exist: ${inputPath}`);
34
- }
35
- // Create a temporary file
36
- const { path: outputPath, cleanup } = await (0, tmp_promise_1.file)({ postfix: `.${format}` });
37
- try {
38
- // Check if input file exists
39
- if (!fs_1.default.existsSync(inputPath)) {
40
- throw new Error(`Input file does not exist: ${inputPath}`);
41
- }
42
- // Validate max_hw
43
- if (!Number.isInteger(max_hw) || max_hw <= 0) {
44
- throw new Error(`Invalid max_hw value: ${max_hw}`);
45
- }
46
- // Progressive loading options
47
- let conversionOption = "";
48
- // Only add progressive option for formats that support it
49
- if (progressive) {
50
- // JPEG and some other formats support progressive loading
51
- const lowerFormat = format.toLowerCase();
52
- if (lowerFormat === "jpg" || lowerFormat === "jpeg") {
53
- conversionOption = "-interlace JPEG";
54
- activity_1.log.info(`Enabling interlaced ${lowerFormat.toUpperCase()} format`);
55
- }
56
- else if (lowerFormat === "png") {
57
- conversionOption = "-interlace PNG";
58
- activity_1.log.info(`Enabling interlaced ${lowerFormat.toUpperCase()} format`);
59
- }
60
- else if (lowerFormat === "gif") {
61
- conversionOption = "-interlace GIF";
62
- activity_1.log.info(`Enabling interlaced ${lowerFormat.toUpperCase()} format`);
63
- }
64
- }
65
- activity_1.log.info(`Resizing image using ImageMagick: ${inputPath} -> ${outputPath}`);
66
- const { stderr } = await execFile("convert", [
67
- inputPath,
68
- "-resize",
69
- `${max_hw}x${max_hw}>`,
70
- ...(conversionOption ? conversionOption.split(" ") : []),
71
- outputPath,
72
- ]);
73
- if (stderr) {
74
- activity_1.log.warn(`ImageMagick warning: ${stderr}`);
75
- }
76
- // Verify output exists and has content
77
- if (!fs_1.default.existsSync(outputPath) || fs_1.default.statSync(outputPath).size === 0) {
78
- throw new Error(`ImageMagick conversion failed: output file not created or empty`);
79
- }
80
- return outputPath;
81
- }
82
- catch (error) {
83
- // Clean up the temporary file
84
- await cleanup();
85
- const errorMessage = error instanceof Error ? error.message : String(error);
86
- activity_1.log.error(`Image conversion failed: ${errorMessage}`);
87
- throw new Error(`Image conversion failed: ${errorMessage}`);
88
- }
89
- }
90
- //# sourceMappingURL=image.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/conversion/image.ts"],"names":[],"mappings":"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"}