@bubblelab/bubble-core 0.1.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 (275) hide show
  1. package/LICENSE.txt +202 -0
  2. package/dist/bubble-bundle.d.ts +2021 -0
  3. package/dist/bubble-factory.d.ts +161 -0
  4. package/dist/bubble-factory.d.ts.map +1 -0
  5. package/dist/bubble-factory.js +426 -0
  6. package/dist/bubble-factory.js.map +1 -0
  7. package/dist/bubble-flow/bubble-flow-class.d.ts +19 -0
  8. package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -0
  9. package/dist/bubble-flow/bubble-flow-class.js +23 -0
  10. package/dist/bubble-flow/bubble-flow-class.js.map +1 -0
  11. package/dist/bubble-flow/sample/data-analyst-flow.d.ts +15 -0
  12. package/dist/bubble-flow/sample/data-analyst-flow.d.ts.map +1 -0
  13. package/dist/bubble-flow/sample/data-analyst-flow.js +63 -0
  14. package/dist/bubble-flow/sample/data-analyst-flow.js.map +1 -0
  15. package/dist/bubble-flow/sample/error-ts.d.ts +23 -0
  16. package/dist/bubble-flow/sample/error-ts.d.ts.map +1 -0
  17. package/dist/bubble-flow/sample/error-ts.js +31 -0
  18. package/dist/bubble-flow/sample/error-ts.js.map +1 -0
  19. package/dist/bubble-flow/sample/sanitytest.d.ts +10 -0
  20. package/dist/bubble-flow/sample/sanitytest.d.ts.map +1 -0
  21. package/dist/bubble-flow/sample/sanitytest.js +13 -0
  22. package/dist/bubble-flow/sample/sanitytest.js.map +1 -0
  23. package/dist/bubble-flow/sample/simple-webhook-2.d.ts +19 -0
  24. package/dist/bubble-flow/sample/simple-webhook-2.d.ts.map +1 -0
  25. package/dist/bubble-flow/sample/simple-webhook-2.js +23 -0
  26. package/dist/bubble-flow/sample/simple-webhook-2.js.map +1 -0
  27. package/dist/bubble-flow/sample/simple-webhook.d.ts +10 -0
  28. package/dist/bubble-flow/sample/simple-webhook.d.ts.map +1 -0
  29. package/dist/bubble-flow/sample/simple-webhook.js +18 -0
  30. package/dist/bubble-flow/sample/simple-webhook.js.map +1 -0
  31. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts +29 -0
  32. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts.map +1 -0
  33. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js +150 -0
  34. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js.map +1 -0
  35. package/dist/bubble-flow/sample/slack-v0.1.d.ts +10 -0
  36. package/dist/bubble-flow/sample/slack-v0.1.d.ts.map +1 -0
  37. package/dist/bubble-flow/sample/slack-v0.1.js +59 -0
  38. package/dist/bubble-flow/sample/slack-v0.1.js.map +1 -0
  39. package/dist/bubble-flow/sample/slackagenttest.d.ts +10 -0
  40. package/dist/bubble-flow/sample/slackagenttest.d.ts.map +1 -0
  41. package/dist/bubble-flow/sample/slackagenttest.js +59 -0
  42. package/dist/bubble-flow/sample/slackagenttest.js.map +1 -0
  43. package/dist/bubble-trigger/index.d.ts +2 -0
  44. package/dist/bubble-trigger/index.d.ts.map +1 -0
  45. package/dist/bubble-trigger/index.js +2 -0
  46. package/dist/bubble-trigger/index.js.map +1 -0
  47. package/dist/bubble-trigger/types.d.ts +87 -0
  48. package/dist/bubble-trigger/types.d.ts.map +1 -0
  49. package/dist/bubble-trigger/types.js +14 -0
  50. package/dist/bubble-trigger/types.js.map +1 -0
  51. package/dist/bubbles/service-bubble/ai-agent.d.ts +428 -0
  52. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -0
  53. package/dist/bubbles/service-bubble/ai-agent.js +881 -0
  54. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -0
  55. package/dist/bubbles/service-bubble/gmail.d.ts +3073 -0
  56. package/dist/bubbles/service-bubble/gmail.d.ts.map +1 -0
  57. package/dist/bubbles/service-bubble/gmail.js +908 -0
  58. package/dist/bubbles/service-bubble/gmail.js.map +1 -0
  59. package/dist/bubbles/service-bubble/google-calendar.d.ts +3377 -0
  60. package/dist/bubbles/service-bubble/google-calendar.d.ts.map +1 -0
  61. package/dist/bubbles/service-bubble/google-calendar.js +527 -0
  62. package/dist/bubbles/service-bubble/google-calendar.js.map +1 -0
  63. package/dist/bubbles/service-bubble/google-drive.d.ts +1152 -0
  64. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -0
  65. package/dist/bubbles/service-bubble/google-drive.js +943 -0
  66. package/dist/bubbles/service-bubble/google-drive.js.map +1 -0
  67. package/dist/bubbles/service-bubble/google-sheets.d.ts +1811 -0
  68. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +1 -0
  69. package/dist/bubbles/service-bubble/google-sheets.js +904 -0
  70. package/dist/bubbles/service-bubble/google-sheets.js.map +1 -0
  71. package/dist/bubbles/service-bubble/hello-world.d.ts +74 -0
  72. package/dist/bubbles/service-bubble/hello-world.d.ts.map +1 -0
  73. package/dist/bubbles/service-bubble/hello-world.js +67 -0
  74. package/dist/bubbles/service-bubble/hello-world.js.map +1 -0
  75. package/dist/bubbles/service-bubble/http.d.ts +134 -0
  76. package/dist/bubbles/service-bubble/http.d.ts.map +1 -0
  77. package/dist/bubbles/service-bubble/http.js +184 -0
  78. package/dist/bubbles/service-bubble/http.js.map +1 -0
  79. package/dist/bubbles/service-bubble/postgresql.d.ts +180 -0
  80. package/dist/bubbles/service-bubble/postgresql.d.ts.map +1 -0
  81. package/dist/bubbles/service-bubble/postgresql.js +448 -0
  82. package/dist/bubbles/service-bubble/postgresql.js.map +1 -0
  83. package/dist/bubbles/service-bubble/resend.d.ts +301 -0
  84. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -0
  85. package/dist/bubbles/service-bubble/resend.js +253 -0
  86. package/dist/bubbles/service-bubble/resend.js.map +1 -0
  87. package/dist/bubbles/service-bubble/slack.d.ts +5869 -0
  88. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -0
  89. package/dist/bubbles/service-bubble/slack.js +1536 -0
  90. package/dist/bubbles/service-bubble/slack.js.map +1 -0
  91. package/dist/bubbles/service-bubble/storage.d.ts +571 -0
  92. package/dist/bubbles/service-bubble/storage.d.ts.map +1 -0
  93. package/dist/bubbles/service-bubble/storage.js +504 -0
  94. package/dist/bubbles/service-bubble/storage.js.map +1 -0
  95. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +308 -0
  96. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts.map +1 -0
  97. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js +285 -0
  98. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js.map +1 -0
  99. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +416 -0
  100. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts.map +1 -0
  101. package/dist/bubbles/tool-bubble/chart-js-tool.js +570 -0
  102. package/dist/bubbles/tool-bubble/chart-js-tool.js.map +1 -0
  103. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +99 -0
  104. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -0
  105. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +645 -0
  106. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -0
  107. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +112 -0
  108. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts.map +1 -0
  109. package/dist/bubbles/tool-bubble/list-bubbles-tool.js +82 -0
  110. package/dist/bubbles/tool-bubble/list-bubbles-tool.js.map +1 -0
  111. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +413 -0
  112. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts.map +1 -0
  113. package/dist/bubbles/tool-bubble/reddit-scrape-tool.js +327 -0
  114. package/dist/bubbles/tool-bubble/reddit-scrape-tool.js.map +1 -0
  115. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +122 -0
  116. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts.map +1 -0
  117. package/dist/bubbles/tool-bubble/research-agent-tool.js +343 -0
  118. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -0
  119. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +131 -0
  120. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts.map +1 -0
  121. package/dist/bubbles/tool-bubble/sql-query-tool.js +147 -0
  122. package/dist/bubbles/tool-bubble/sql-query-tool.js.map +1 -0
  123. package/dist/bubbles/tool-bubble/tool-template.d.ts +257 -0
  124. package/dist/bubbles/tool-bubble/tool-template.d.ts.map +1 -0
  125. package/dist/bubbles/tool-bubble/tool-template.js +238 -0
  126. package/dist/bubbles/tool-bubble/tool-template.js.map +1 -0
  127. package/dist/bubbles/tool-bubble/virtual-file-editor-example.d.ts +8 -0
  128. package/dist/bubbles/tool-bubble/virtual-file-editor-example.d.ts.map +1 -0
  129. package/dist/bubbles/tool-bubble/virtual-file-editor-example.js +65 -0
  130. package/dist/bubbles/tool-bubble/virtual-file-editor-example.js.map +1 -0
  131. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.d.ts +125 -0
  132. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.d.ts.map +1 -0
  133. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.js +169 -0
  134. package/dist/bubbles/tool-bubble/virtual-file-editor.tool.js.map +1 -0
  135. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +218 -0
  136. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts.map +1 -0
  137. package/dist/bubbles/tool-bubble/web-crawl-tool.js +255 -0
  138. package/dist/bubbles/tool-bubble/web-crawl-tool.js.map +1 -0
  139. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +134 -0
  140. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts.map +1 -0
  141. package/dist/bubbles/tool-bubble/web-extract-tool.js +175 -0
  142. package/dist/bubbles/tool-bubble/web-extract-tool.js.map +1 -0
  143. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +228 -0
  144. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts.map +1 -0
  145. package/dist/bubbles/tool-bubble/web-scrape-tool.js +214 -0
  146. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -0
  147. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +134 -0
  148. package/dist/bubbles/tool-bubble/web-search-tool.d.ts.map +1 -0
  149. package/dist/bubbles/tool-bubble/web-search-tool.js +155 -0
  150. package/dist/bubbles/tool-bubble/web-search-tool.js.map +1 -0
  151. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +114 -0
  152. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +1 -0
  153. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +777 -0
  154. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +1 -0
  155. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.d.ts +97 -0
  156. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.d.ts.map +1 -0
  157. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.js +327 -0
  158. package/dist/bubbles/workflow-bubble/bubblscript-generateor.workflow.js.map +1 -0
  159. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +303 -0
  160. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts.map +1 -0
  161. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.js +297 -0
  162. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.js.map +1 -0
  163. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.d.ts +157 -0
  164. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.d.ts.map +1 -0
  165. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.js +310 -0
  166. package/dist/bubbles/workflow-bubble/file-editor-agent.workflow.js.map +1 -0
  167. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +543 -0
  168. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts.map +1 -0
  169. package/dist/bubbles/workflow-bubble/generate-document.workflow.js +628 -0
  170. package/dist/bubbles/workflow-bubble/generate-document.workflow.js.map +1 -0
  171. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +679 -0
  172. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts.map +1 -0
  173. package/dist/bubbles/workflow-bubble/parse-document.workflow.js +604 -0
  174. package/dist/bubbles/workflow-bubble/parse-document.workflow.js.map +1 -0
  175. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +1011 -0
  176. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -0
  177. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +841 -0
  178. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -0
  179. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +883 -0
  180. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts.map +1 -0
  181. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +781 -0
  182. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js.map +1 -0
  183. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +300 -0
  184. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts.map +1 -0
  185. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +508 -0
  186. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -0
  187. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +731 -0
  188. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts.map +1 -0
  189. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +690 -0
  190. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -0
  191. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +401 -0
  192. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -0
  193. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +382 -0
  194. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -0
  195. package/dist/bubbles/workflow-bubble/workflow-template.d.ts +144 -0
  196. package/dist/bubbles/workflow-bubble/workflow-template.d.ts.map +1 -0
  197. package/dist/bubbles/workflow-bubble/workflow-template.js +124 -0
  198. package/dist/bubbles/workflow-bubble/workflow-template.js.map +1 -0
  199. package/dist/index.d.ts +46 -0
  200. package/dist/index.d.ts.map +1 -0
  201. package/dist/index.js +53 -0
  202. package/dist/index.js.map +1 -0
  203. package/dist/logging/BubbleLogger.d.ts +146 -0
  204. package/dist/logging/BubbleLogger.d.ts.map +1 -0
  205. package/dist/logging/BubbleLogger.js +472 -0
  206. package/dist/logging/BubbleLogger.js.map +1 -0
  207. package/dist/logging/StreamingBubbleLogger.d.ts +85 -0
  208. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -0
  209. package/dist/logging/StreamingBubbleLogger.js +340 -0
  210. package/dist/logging/StreamingBubbleLogger.js.map +1 -0
  211. package/dist/types/ai-models.d.ts +4 -0
  212. package/dist/types/ai-models.d.ts.map +1 -0
  213. package/dist/types/ai-models.js +14 -0
  214. package/dist/types/ai-models.js.map +1 -0
  215. package/dist/types/available-tools.d.ts +4 -0
  216. package/dist/types/available-tools.d.ts.map +1 -0
  217. package/dist/types/available-tools.js +19 -0
  218. package/dist/types/available-tools.js.map +1 -0
  219. package/dist/types/base-bubble-class.d.ts +47 -0
  220. package/dist/types/base-bubble-class.d.ts.map +1 -0
  221. package/dist/types/base-bubble-class.js +212 -0
  222. package/dist/types/base-bubble-class.js.map +1 -0
  223. package/dist/types/bubble-errors.d.ts +44 -0
  224. package/dist/types/bubble-errors.d.ts.map +1 -0
  225. package/dist/types/bubble-errors.js +51 -0
  226. package/dist/types/bubble-errors.js.map +1 -0
  227. package/dist/types/bubble.d.ts +73 -0
  228. package/dist/types/bubble.d.ts.map +1 -0
  229. package/dist/types/bubble.js +2 -0
  230. package/dist/types/bubble.js.map +1 -0
  231. package/dist/types/credentials.d.ts +6 -0
  232. package/dist/types/credentials.d.ts.map +1 -0
  233. package/dist/types/credentials.js +6 -0
  234. package/dist/types/credentials.js.map +1 -0
  235. package/dist/types/service-bubble-class.d.ts +31 -0
  236. package/dist/types/service-bubble-class.d.ts.map +1 -0
  237. package/dist/types/service-bubble-class.js +36 -0
  238. package/dist/types/service-bubble-class.js.map +1 -0
  239. package/dist/types/streaming-events.d.ts +18 -0
  240. package/dist/types/streaming-events.d.ts.map +1 -0
  241. package/dist/types/streaming-events.js +5 -0
  242. package/dist/types/streaming-events.js.map +1 -0
  243. package/dist/types/tool-bubble-class.d.ts +19 -0
  244. package/dist/types/tool-bubble-class.d.ts.map +1 -0
  245. package/dist/types/tool-bubble-class.js +48 -0
  246. package/dist/types/tool-bubble-class.js.map +1 -0
  247. package/dist/types/workflow-bubble-class.d.ts +25 -0
  248. package/dist/types/workflow-bubble-class.d.ts.map +1 -0
  249. package/dist/types/workflow-bubble-class.js +30 -0
  250. package/dist/types/workflow-bubble-class.js.map +1 -0
  251. package/dist/utils/bubbleflow-parser.d.ts +32 -0
  252. package/dist/utils/bubbleflow-parser.d.ts.map +1 -0
  253. package/dist/utils/bubbleflow-parser.js +332 -0
  254. package/dist/utils/bubbleflow-parser.js.map +1 -0
  255. package/dist/utils/bubbleflow-validation.d.ts +9 -0
  256. package/dist/utils/bubbleflow-validation.d.ts.map +1 -0
  257. package/dist/utils/bubbleflow-validation.js +116 -0
  258. package/dist/utils/bubbleflow-validation.js.map +1 -0
  259. package/dist/utils/json-parsing.d.ts +20 -0
  260. package/dist/utils/json-parsing.d.ts.map +1 -0
  261. package/dist/utils/json-parsing.js +394 -0
  262. package/dist/utils/json-parsing.js.map +1 -0
  263. package/dist/utils/mock-data-generator.d.ts +43 -0
  264. package/dist/utils/mock-data-generator.d.ts.map +1 -0
  265. package/dist/utils/mock-data-generator.js +312 -0
  266. package/dist/utils/mock-data-generator.js.map +1 -0
  267. package/dist/utils/param-helper.d.ts +2 -0
  268. package/dist/utils/param-helper.d.ts.map +1 -0
  269. package/dist/utils/param-helper.js +5 -0
  270. package/dist/utils/param-helper.js.map +1 -0
  271. package/dist/utils/source-bubble-parser.d.ts +31 -0
  272. package/dist/utils/source-bubble-parser.d.ts.map +1 -0
  273. package/dist/utils/source-bubble-parser.js +231 -0
  274. package/dist/utils/source-bubble-parser.js.map +1 -0
  275. package/package.json +63 -0
@@ -0,0 +1,604 @@
1
+ /**
2
+ * PARSE DOCUMENT WORKFLOW
3
+ *
4
+ * A comprehensive workflow that converts images and PDFs into structured markdown
5
+ * using AI vision analysis. Preserves document structure, describes charts and images
6
+ * numerically, and maintains formatting and layout information.
7
+ *
8
+ * This workflow combines:
9
+ * 1. PDF to images conversion using pdf-img-convert
10
+ * 2. AI vision analysis for content extraction and markdown generation
11
+ * 3. Structure preservation with table, chart, and image descriptions
12
+ *
13
+ * Returns clean markdown with preserved structure and detailed visual descriptions.
14
+ */
15
+ import { z } from 'zod';
16
+ import { WorkflowBubble } from '../../types/workflow-bubble-class.js';
17
+ import { CredentialType } from '@bubblelab/shared-schemas';
18
+ import { PDFFormOperationsWorkflow } from './pdf-form-operations.workflow.js';
19
+ import { AIAgentBubble } from '../service-bubble/ai-agent.js';
20
+ import { AvailableModels } from '../../types/ai-models.js';
21
+ /**
22
+ * System prompt for document parsing and markdown conversion
23
+ */
24
+ const DOCUMENT_PARSING_PROMPT = `Extract ONLY the most important information from this document. Focus on meaning and data, NOT text transcription.
25
+
26
+ CRITICAL LIMITS:
27
+ - Maximum response: 800 words
28
+ - NO full text transcription or OCR
29
+ - Extract MEANING and NUMBERS only
30
+ - Be concise and focused
31
+
32
+ EXTRACT ONLY:
33
+ 1. **Key Numbers**: amounts, percentages, dates, quantities, IDs, phone numbers
34
+ 2. **Important Names**: people, companies, locations, products
35
+ 3. **Critical Data**: totals, balances, scores, measurements
36
+ 4. **Document Type**: what kind of document this is
37
+ 5. **Main Purpose**: what this document is about in 1-2 sentences
38
+
39
+ IGNORE:
40
+ - Full sentences and paragraphs
41
+ - Boilerplate text
42
+ - Legal disclaimers
43
+ - Formatting details
44
+ - Complete transcription
45
+
46
+ FORMAT: Use bullet points. Be extremely concise. Focus on actionable data.
47
+
48
+ EXAMPLE OUTPUT:
49
+ • Document: Invoice
50
+ • Company: XYZ Corp
51
+ • Amount: $1,234.56
52
+ • Date: 2024-01-15
53
+ • Invoice #: INV-2024-001
54
+ • Purpose: Software licensing fees
55
+
56
+ STOP after extracting key data. Do not transcribe full text.`;
57
+ /**
58
+ * Parameters schema for Parse Document workflow
59
+ */
60
+ const ParseDocumentWorkflowParamsSchema = z.object({
61
+ documentData: z
62
+ .string()
63
+ .min(1, 'Document data is required')
64
+ .describe('Base64 encoded document data (PDF or image) OR R2 file URL starting with https://'),
65
+ documentType: z
66
+ .enum(['pdf', 'image'])
67
+ .default('pdf')
68
+ .describe('Type of document being processed'),
69
+ isFileUrl: z
70
+ .boolean()
71
+ .optional()
72
+ .default(false)
73
+ .describe('Set to true if documentData is an R2 file URL instead of base64'),
74
+ conversionOptions: z
75
+ .object({
76
+ preserveStructure: z
77
+ .boolean()
78
+ .default(true)
79
+ .describe('Maintain original document structure and hierarchy'),
80
+ includeVisualDescriptions: z
81
+ .boolean()
82
+ .default(true)
83
+ .describe('Include detailed descriptions of charts, images, and diagrams'),
84
+ extractNumericalData: z
85
+ .boolean()
86
+ .default(true)
87
+ .describe('Extract specific numerical values from charts and tables'),
88
+ combinePages: z
89
+ .boolean()
90
+ .default(false)
91
+ .describe('Deprecated: Pages are always kept separate with clear headers'),
92
+ })
93
+ .default({
94
+ preserveStructure: true,
95
+ includeVisualDescriptions: true,
96
+ extractNumericalData: true,
97
+ combinePages: false,
98
+ })
99
+ .describe('Options for document conversion and parsing'),
100
+ imageOptions: z
101
+ .object({
102
+ format: z
103
+ .enum(['png', 'jpeg'])
104
+ .default('png')
105
+ .describe('Output image format for PDF conversion'),
106
+ quality: z
107
+ .number()
108
+ .min(0.1)
109
+ .max(1.0)
110
+ .default(0.9)
111
+ .describe('Image quality (0.1-1.0, higher = better quality)'),
112
+ dpi: z
113
+ .number()
114
+ .min(150)
115
+ .max(300)
116
+ .default(200)
117
+ .describe('Output DPI for PDF conversion (higher = better quality)'),
118
+ pages: z
119
+ .array(z.number().positive())
120
+ .optional()
121
+ .describe('Specific page numbers to process (1-indexed)'),
122
+ })
123
+ .default({
124
+ format: 'png',
125
+ quality: 0.9,
126
+ dpi: 200,
127
+ })
128
+ .describe('Options for PDF to images conversion'),
129
+ aiOptions: z
130
+ .object({
131
+ model: AvailableModels.default('google/gemini-2.5-flash').describe('AI model to use for document analysis and conversion'),
132
+ temperature: z
133
+ .number()
134
+ .min(0)
135
+ .max(2)
136
+ .default(0.4)
137
+ .describe('Temperature for AI responses (balanced for accuracy vs recitation)'),
138
+ maxTokens: z
139
+ .number()
140
+ .positive()
141
+ .default(2000)
142
+ .describe('Maximum tokens for AI response'),
143
+ jsonMode: z
144
+ .boolean()
145
+ .default(false)
146
+ .describe('Use JSON mode for structured output'),
147
+ })
148
+ .default({
149
+ model: 'google/gemini-2.5-flash',
150
+ temperature: 0.4,
151
+ maxTokens: 9000,
152
+ jsonMode: false,
153
+ })
154
+ .describe('AI agent configuration options'),
155
+ storageOptions: z
156
+ .object({
157
+ uploadImages: z
158
+ .boolean()
159
+ .default(false)
160
+ .describe('Whether to upload converted page images to S3'),
161
+ bucketName: z
162
+ .string()
163
+ .optional()
164
+ .describe('S3 bucket name for image uploads'),
165
+ pageImageUrls: z
166
+ .array(z.object({
167
+ pageNumber: z.number(),
168
+ uploadUrl: z.string(),
169
+ fileName: z.string(),
170
+ }))
171
+ .optional()
172
+ .describe('Pre-generated upload URLs for page images'),
173
+ userId: z
174
+ .string()
175
+ .optional()
176
+ .describe('User ID for secure file isolation'),
177
+ })
178
+ .optional()
179
+ .describe('Storage options for uploading page images'),
180
+ credentials: z
181
+ .record(z.nativeEnum(CredentialType), z.string())
182
+ .optional()
183
+ .describe('Credentials for AI model access (GOOGLE_GEMINI_CRED, OPENAI_CRED, etc.)'),
184
+ });
185
+ /**
186
+ * Result schema for Parse Document workflow
187
+ */
188
+ const ParseDocumentWorkflowResultSchema = z.object({
189
+ markdown: z.string().describe('Generated markdown content from the document'),
190
+ pages: z
191
+ .array(z.object({
192
+ pageNumber: z.number().describe('Page number (1-indexed)'),
193
+ markdown: z.string().describe('Markdown content for this page'),
194
+ hasCharts: z
195
+ .boolean()
196
+ .describe('Whether this page contains charts or graphs'),
197
+ hasTables: z.boolean().describe('Whether this page contains tables'),
198
+ hasImages: z.boolean().describe('Whether this page contains images'),
199
+ }))
200
+ .describe('Per-page analysis results'),
201
+ metadata: z
202
+ .object({
203
+ totalPages: z.number().describe('Total number of pages processed'),
204
+ processedPages: z
205
+ .number()
206
+ .describe('Number of pages successfully processed'),
207
+ hasVisualElements: z
208
+ .boolean()
209
+ .describe('Whether document contains charts, tables, or images'),
210
+ processingTime: z
211
+ .number()
212
+ .describe('Total processing time in milliseconds'),
213
+ imageFormat: z.string().describe('Image format used for conversion'),
214
+ imageDpi: z.number().describe('DPI used for image conversion'),
215
+ })
216
+ .describe('Metadata about the parsing process'),
217
+ conversionSummary: z
218
+ .object({
219
+ totalCharacters: z
220
+ .number()
221
+ .describe('Total characters in generated markdown'),
222
+ tablesExtracted: z
223
+ .number()
224
+ .describe('Number of tables converted to markdown'),
225
+ chartsDescribed: z
226
+ .number()
227
+ .describe('Number of charts and graphs described'),
228
+ imagesDescribed: z.number().describe('Number of images described'),
229
+ })
230
+ .describe('Summary of conversion results'),
231
+ aiAnalysis: z
232
+ .object({
233
+ model: z.string().describe('AI model used for analysis'),
234
+ iterations: z.number().describe('Number of AI iterations'),
235
+ processingTime: z.number().describe('AI processing time in milliseconds'),
236
+ })
237
+ .describe('AI analysis metadata'),
238
+ uploadedImages: z
239
+ .array(z.object({
240
+ pageNumber: z.number(),
241
+ fileName: z.string(),
242
+ fileUrl: z.string().optional(),
243
+ uploaded: z.boolean(),
244
+ }))
245
+ .optional()
246
+ .describe('Information about uploaded page images'),
247
+ success: z.boolean().describe('Whether the workflow completed successfully'),
248
+ error: z.string().describe('Error message if workflow failed'),
249
+ });
250
+ /**
251
+ * Parse Document Workflow
252
+ * Converts PDFs and images to structured markdown using AI vision analysis
253
+ */
254
+ export class ParseDocumentWorkflow extends WorkflowBubble {
255
+ static type = 'workflow';
256
+ static bubbleName = 'parse-document-workflow';
257
+ static schema = ParseDocumentWorkflowParamsSchema;
258
+ static resultSchema = ParseDocumentWorkflowResultSchema;
259
+ static shortDescription = 'Parse Document workflow: convert PDFs/images to markdown using AI vision';
260
+ static longDescription = `
261
+ Comprehensive document parsing workflow that converts PDFs and images into structured markdown:
262
+
263
+ **Process:**
264
+ 1. Convert PDFs to high-quality images (if needed)
265
+ 2. Analyze images using AI vision models to extract content
266
+ 3. Generate clean, structured markdown preserving document layout
267
+ 4. Describe charts, tables, and images with numerical data when possible
268
+
269
+ **Features:**
270
+ - **PDF & Image Support**: Handles both PDF documents and image files
271
+ - **Structure Preservation**: Maintains headers, lists, paragraphs, and formatting
272
+ - **Visual Element Analysis**: Describes charts, graphs, tables, and images in detail
273
+ - **Numerical Data Extraction**: Extracts specific values from charts and tables
274
+ - **High-Quality Conversion**: Configurable DPI and quality settings
275
+ - **Per-Page Analysis**: Detailed breakdown of each page's content
276
+
277
+ **Visual Element Handling:**
278
+ - **Charts & Graphs**: Extract data points, trends, axis labels, percentages
279
+ - **Tables**: Convert to markdown tables with all visible data
280
+ - **Images & Diagrams**: Detailed descriptions including any visible text/numbers
281
+ - **Forms**: Structure field names and any filled values
282
+
283
+ **Output Options:**
284
+ - Combined markdown document or per-page breakdown
285
+ - Configurable structure preservation and visual descriptions
286
+ - Comprehensive metadata and conversion statistics
287
+
288
+ **Common Use Cases:**
289
+ - **Document Digitization**: Convert scanned PDFs to editable markdown
290
+ - **Report Analysis**: Extract data from business reports and charts
291
+ - **Academic Papers**: Preserve structure and extract figures/tables
292
+ - **Technical Documentation**: Maintain formatting and describe diagrams
293
+ - **Research Materials**: Extract and structure information from various documents
294
+
295
+ **Input**: PDF or image data + conversion preferences
296
+ **Output**: Clean markdown with preserved structure and visual descriptions
297
+ `;
298
+ static alias = 'parse-doc';
299
+ constructor(params, context) {
300
+ super(params, context);
301
+ }
302
+ async performAction(context) {
303
+ const startTime = Date.now();
304
+ console.log('[ParseDocumentWorkflow] Starting document parsing and conversion');
305
+ console.log('[ParseDocumentWorkflow] Document type:', this.params.documentType);
306
+ console.log('[ParseDocumentWorkflow] Document data length:', this.params.documentData.length);
307
+ try {
308
+ // Step 0: Download file from R2 if needed
309
+ let documentDataToProcess = this.params.documentData;
310
+ if (this.params.isFileUrl ||
311
+ this.params.documentData.startsWith('https://')) {
312
+ console.log('[ParseDocumentWorkflow] Step 0: Downloading file from R2...');
313
+ try {
314
+ const downloadResponse = await fetch(this.params.documentData);
315
+ if (!downloadResponse.ok) {
316
+ throw new Error(`Failed to download file: ${downloadResponse.status} ${downloadResponse.statusText}`);
317
+ }
318
+ const arrayBuffer = await downloadResponse.arrayBuffer();
319
+ documentDataToProcess = Buffer.from(arrayBuffer).toString('base64');
320
+ console.log(`[ParseDocumentWorkflow] Downloaded file successfully, size: ${arrayBuffer.byteLength} bytes`);
321
+ }
322
+ catch (downloadError) {
323
+ throw new Error(`Failed to download file from R2: ${downloadError instanceof Error ? downloadError.message : 'Unknown error'}`);
324
+ }
325
+ }
326
+ let imageData = [];
327
+ // Step 1: Convert to images (if needed)
328
+ if (this.params.documentType === 'pdf') {
329
+ console.log('[ParseDocumentWorkflow] Step 1: Converting PDF to images...');
330
+ const imageWorkflow = new PDFFormOperationsWorkflow({
331
+ operation: 'convert-to-images',
332
+ pdfData: documentDataToProcess,
333
+ format: this.params.storageOptions?.uploadImages
334
+ ? 'jpeg'
335
+ : this.params.imageOptions?.format || 'png',
336
+ quality: this.params.imageOptions?.quality || 0.9,
337
+ dpi: this.params.imageOptions?.dpi || 200,
338
+ pages: this.params.imageOptions?.pages,
339
+ credentials: this.params.credentials,
340
+ }, context);
341
+ const imageResult = await imageWorkflow.action();
342
+ if (!imageResult.success || !imageResult.data?.images) {
343
+ throw new Error(`PDF to images conversion failed: ${imageResult.error}`);
344
+ }
345
+ imageData = imageResult.data.images;
346
+ console.log(`[ParseDocumentWorkflow] Converted ${imageData.length} pages to images`);
347
+ }
348
+ else {
349
+ // For image input, create a single page entry
350
+ imageData = [
351
+ {
352
+ pageNumber: 1,
353
+ imageData: documentDataToProcess,
354
+ format: this.params.imageOptions?.format || 'png',
355
+ },
356
+ ];
357
+ console.log('[ParseDocumentWorkflow] Using provided image data');
358
+ }
359
+ // Step 1.5: Upload page images to S3 if enabled
360
+ const uploadedImages = [];
361
+ console.log('[ParseDocumentWorkflow] DEBUG - Storage options:', {
362
+ hasStorageOptions: !!this.params.storageOptions,
363
+ uploadImages: this.params.storageOptions?.uploadImages,
364
+ pageImageUrlsCount: this.params.storageOptions?.pageImageUrls?.length || 0,
365
+ pageImageUrls: this.params.storageOptions?.pageImageUrls,
366
+ });
367
+ if (this.params.storageOptions?.uploadImages &&
368
+ this.params.storageOptions?.pageImageUrls) {
369
+ console.log('[ParseDocumentWorkflow] Step 1.5: Uploading page images to S3...');
370
+ for (const pageData of imageData) {
371
+ const pageUploadInfo = this.params.storageOptions.pageImageUrls.find((info) => info.pageNumber === pageData.pageNumber);
372
+ if (pageUploadInfo) {
373
+ console.log(`[ParseDocumentWorkflow] Uploading page ${pageData.pageNumber} to S3...`);
374
+ try {
375
+ // Convert base64 to buffer
376
+ const imageBuffer = Buffer.from(pageData.imageData.replace(/^data:image\/[^;]+;base64,/, ''), 'base64');
377
+ // Upload to S3 using the pre-signed URL
378
+ const contentType = pageData.format === 'jpeg' ? 'image/jpeg' : 'image/png';
379
+ const uploadResponse = await fetch(pageUploadInfo.uploadUrl, {
380
+ method: 'PUT',
381
+ body: imageBuffer,
382
+ headers: {
383
+ 'Content-Type': contentType,
384
+ },
385
+ });
386
+ const uploaded = uploadResponse.ok;
387
+ // Get the proper download URL using StorageBubble
388
+ let finalImageUrl = undefined;
389
+ if (uploaded) {
390
+ try {
391
+ const { StorageBubble } = await import('../service-bubble/storage.js');
392
+ const downloadStorageBubble = new StorageBubble({
393
+ operation: 'getFile',
394
+ bucketName: this.params.storageOptions.bucketName ||
395
+ 'bubble-lab-bucket',
396
+ fileName: pageUploadInfo.fileName,
397
+ expirationMinutes: 1440, // 24 hours for page images
398
+ credentials: this.params.credentials,
399
+ }, this.context);
400
+ const downloadResult = await downloadStorageBubble.action();
401
+ console.log(`[ParseDocumentWorkflow] Download result for page ${pageData.pageNumber}:`, {
402
+ success: downloadResult.success,
403
+ error: downloadResult.error,
404
+ hasDownloadUrl: !!downloadResult.data?.downloadUrl,
405
+ downloadUrl: downloadResult.data?.downloadUrl,
406
+ });
407
+ if (downloadResult.success &&
408
+ downloadResult.data?.downloadUrl) {
409
+ finalImageUrl = downloadResult.data.downloadUrl;
410
+ }
411
+ }
412
+ catch (storageError) {
413
+ console.error(`[ParseDocumentWorkflow] Failed to get download URL for page ${pageData.pageNumber}:`, storageError);
414
+ }
415
+ }
416
+ uploadedImages.push({
417
+ pageNumber: pageData.pageNumber,
418
+ fileName: pageUploadInfo.fileName,
419
+ fileUrl: finalImageUrl, // Ready-to-use download URL from StorageBubble
420
+ uploaded,
421
+ });
422
+ console.log(`[ParseDocumentWorkflow] Page ${pageData.pageNumber} upload ${uploaded ? 'successful' : 'failed'}, finalImageUrl: ${finalImageUrl}`);
423
+ }
424
+ catch (error) {
425
+ console.error(`[ParseDocumentWorkflow] Failed to upload page ${pageData.pageNumber}:`, error);
426
+ uploadedImages.push({
427
+ pageNumber: pageData.pageNumber,
428
+ fileName: pageUploadInfo.fileName,
429
+ uploaded: false,
430
+ });
431
+ }
432
+ }
433
+ else {
434
+ console.log(`[ParseDocumentWorkflow] No upload URL found for page ${pageData.pageNumber}`);
435
+ }
436
+ }
437
+ }
438
+ // Step 2: Process pages with AI vision in parallel batches
439
+ console.log('[ParseDocumentWorkflow] Step 2: Analyzing pages with AI vision in parallel batches...');
440
+ const pageAnalyses = [];
441
+ const totalAiProcessingTime = 0;
442
+ let totalAiIterations = 0;
443
+ console.log(`[ParseDocumentWorkflow] Processing ALL ${imageData.length} pages in parallel...`);
444
+ console.log(`[ParseDocumentWorkflow] WARNING: Processing ${imageData.length} pages simultaneously may hit API rate limits for large documents`);
445
+ // Create AI agents for ALL pages at once (no batching)
446
+ const allPagePromises = imageData.map((page) => {
447
+ console.log(`[ParseDocumentWorkflow] Starting page ${page.pageNumber}...`);
448
+ const pagePrompt = DOCUMENT_PARSING_PROMPT;
449
+ // Create AI agent for this page
450
+ const aiAgent = new AIAgentBubble({
451
+ message: `Please extract all the data from the page.`,
452
+ images: [
453
+ {
454
+ type: 'base64',
455
+ data: page.imageData,
456
+ mimeType: page.format === 'png' ? 'image/png' : 'image/jpeg',
457
+ description: `Document page ${page.pageNumber} for markdown conversion`,
458
+ },
459
+ ],
460
+ systemPrompt: pagePrompt,
461
+ model: {
462
+ model: this.params.aiOptions?.model || 'google/gemini-2.5-flash',
463
+ temperature: this.params.aiOptions?.temperature || 0.4,
464
+ maxTokens: this.params.aiOptions?.maxTokens || 2000,
465
+ jsonMode: this.params.aiOptions?.jsonMode ?? false,
466
+ },
467
+ credentials: this.params.credentials,
468
+ tools: [],
469
+ maxIterations: 3,
470
+ }, this.context);
471
+ // Return the promise directly (don't await here - that's the key!)
472
+ return aiAgent
473
+ .action()
474
+ .then((aiResult) => {
475
+ if (!aiResult.success) {
476
+ console.warn(`[ParseDocumentWorkflow] AI analysis failed for page ${page.pageNumber}: ${aiResult.error}`);
477
+ return {
478
+ pageNumber: page.pageNumber,
479
+ markdown: `# Page ${page.pageNumber}\n\n*Error: Could not process this page*\n`,
480
+ hasCharts: false,
481
+ hasTables: false,
482
+ hasImages: false,
483
+ confidence: 0,
484
+ iterations: 0,
485
+ };
486
+ }
487
+ const markdown = aiResult.data?.response || '';
488
+ // Analyze the generated markdown to detect visual elements
489
+ const hasCharts = /chart|graph|figure|plot|axis|data|trend/i.test(markdown);
490
+ const hasTables = /\|.*\|.*\|/m.test(markdown); // Basic markdown table detection
491
+ const hasImages = /image|photo|picture|diagram|illustration/i.test(markdown);
492
+ console.log(`[ParseDocumentWorkflow] Page ${page.pageNumber} processed: ${markdown.length} characters`);
493
+ return {
494
+ pageNumber: page.pageNumber,
495
+ markdown,
496
+ hasCharts,
497
+ hasTables,
498
+ hasImages,
499
+ iterations: aiResult.data?.iterations || 0,
500
+ };
501
+ })
502
+ .catch((error) => {
503
+ console.error(`[ParseDocumentWorkflow] Error processing page ${page.pageNumber}:`, error);
504
+ return {
505
+ pageNumber: page.pageNumber,
506
+ markdown: `# Page ${page.pageNumber}\n\n*Error: Could not process this page*\n`,
507
+ hasCharts: false,
508
+ hasTables: false,
509
+ hasImages: false,
510
+ confidence: 0,
511
+ iterations: 0,
512
+ };
513
+ });
514
+ });
515
+ // Wait for ALL pages to complete in parallel
516
+ console.log(`[ParseDocumentWorkflow] Waiting for all ${imageData.length} pages to complete...`);
517
+ const allResults = await Promise.all(allPagePromises);
518
+ // Add results to our main array and accumulate iterations
519
+ for (const result of allResults) {
520
+ totalAiIterations += result.iterations;
521
+ pageAnalyses.push({
522
+ pageNumber: result.pageNumber,
523
+ markdown: result.markdown,
524
+ hasCharts: result.hasCharts,
525
+ hasTables: result.hasTables,
526
+ hasImages: result.hasImages,
527
+ });
528
+ }
529
+ console.log(`[ParseDocumentWorkflow] All ${allResults.length} pages completed in parallel!`);
530
+ // Step 3: Format pages with proper separation (never combine pages)
531
+ console.log('[ParseDocumentWorkflow] Step 3: Formatting results with page separation...');
532
+ // Sort pages by page number to ensure correct order
533
+ const sortedPages = pageAnalyses.sort((a, b) => a.pageNumber - b.pageNumber);
534
+ // Always separate pages with clear headers - never combine them
535
+ const finalMarkdown = sortedPages
536
+ .map((page) => `--- Page ${page.pageNumber} ---\n\n${page.markdown}`)
537
+ .join('\n\n');
538
+ // Step 4: Generate metadata and summary
539
+ const processingTime = Date.now() - startTime;
540
+ const conversionSummary = {
541
+ totalCharacters: finalMarkdown.length,
542
+ tablesExtracted: pageAnalyses.reduce((sum, page) => sum + (page.hasTables ? 1 : 0), 0),
543
+ chartsDescribed: pageAnalyses.reduce((sum, page) => sum + (page.hasCharts ? 1 : 0), 0),
544
+ imagesDescribed: pageAnalyses.reduce((sum, page) => sum + (page.hasImages ? 1 : 0), 0),
545
+ };
546
+ const metadata = {
547
+ totalPages: imageData.length,
548
+ processedPages: pageAnalyses.length,
549
+ hasVisualElements: pageAnalyses.some((page) => page.hasCharts || page.hasTables || page.hasImages),
550
+ processingTime,
551
+ imageFormat: this.params.imageOptions?.format || 'png',
552
+ imageDpi: this.params.imageOptions?.dpi || 200,
553
+ };
554
+ console.log(`[ParseDocumentWorkflow] Conversion completed successfully in ${processingTime}ms`);
555
+ console.log(`[ParseDocumentWorkflow] Generated ${finalMarkdown.length} characters of markdown`);
556
+ return {
557
+ markdown: finalMarkdown,
558
+ pages: pageAnalyses,
559
+ metadata,
560
+ conversionSummary,
561
+ aiAnalysis: {
562
+ model: this.params.aiOptions?.model || 'google/gemini-2.5-flash',
563
+ iterations: totalAiIterations,
564
+ processingTime: totalAiProcessingTime,
565
+ },
566
+ uploadedImages: uploadedImages.length > 0 ? uploadedImages : undefined,
567
+ success: true,
568
+ error: '',
569
+ };
570
+ }
571
+ catch (error) {
572
+ const processingTime = Date.now() - startTime;
573
+ console.error('[ParseDocumentWorkflow] Workflow failed:', error);
574
+ return {
575
+ markdown: '',
576
+ pages: [],
577
+ metadata: {
578
+ totalPages: 0,
579
+ processedPages: 0,
580
+ hasVisualElements: false,
581
+ processingTime,
582
+ imageFormat: this.params.imageOptions?.format || 'png',
583
+ imageDpi: this.params.imageOptions?.dpi || 200,
584
+ },
585
+ conversionSummary: {
586
+ totalCharacters: 0,
587
+ tablesExtracted: 0,
588
+ chartsDescribed: 0,
589
+ imagesDescribed: 0,
590
+ },
591
+ aiAnalysis: {
592
+ model: this.params.aiOptions?.model || 'google/gemini-2.5-flash',
593
+ iterations: 0,
594
+ processingTime,
595
+ },
596
+ success: false,
597
+ error: error instanceof Error
598
+ ? error.message
599
+ : 'Unknown error during document parsing workflow',
600
+ };
601
+ }
602
+ }
603
+ }
604
+ //# sourceMappingURL=parse-document.workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-document.workflow.js","sourceRoot":"","sources":["../../../src/bubbles/workflow-bubble/parse-document.workflow.ts"],"names":[],"mappings":"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"}