@bubblelab/bubble-core 0.1.10 → 0.1.11

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 (298) hide show
  1. package/dist/bubble-bundle.d.ts +759 -350
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +125 -35
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubble-flow/bubble-flow-class.d.ts +5 -0
  6. package/dist/bubble-flow/bubble-flow-class.d.ts.map +1 -1
  7. package/dist/bubble-flow/bubble-flow-class.js +20 -0
  8. package/dist/bubble-flow/bubble-flow-class.js.map +1 -1
  9. package/dist/bubble-flow/sample/simplified-data-analysis.flow.d.ts.map +1 -1
  10. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js +6 -3
  11. package/dist/bubble-flow/sample/simplified-data-analysis.flow.js.map +1 -1
  12. package/dist/bubbles/service-bubble/agi-inc.d.ts +1121 -0
  13. package/dist/bubbles/service-bubble/agi-inc.d.ts.map +1 -0
  14. package/dist/bubbles/service-bubble/agi-inc.js +730 -0
  15. package/dist/bubbles/service-bubble/agi-inc.js.map +1 -0
  16. package/dist/bubbles/service-bubble/ai-agent.d.ts +277 -65
  17. package/dist/bubbles/service-bubble/ai-agent.d.ts.map +1 -1
  18. package/dist/bubbles/service-bubble/ai-agent.js +533 -399
  19. package/dist/bubbles/service-bubble/ai-agent.js.map +1 -1
  20. package/dist/bubbles/service-bubble/airtable.d.ts +1753 -0
  21. package/dist/bubbles/service-bubble/airtable.d.ts.map +1 -0
  22. package/dist/bubbles/service-bubble/airtable.js +1173 -0
  23. package/dist/bubbles/service-bubble/airtable.js.map +1 -0
  24. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts +240 -0
  25. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.d.ts.map +1 -0
  26. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js +119 -0
  27. package/dist/bubbles/service-bubble/apify/actors/google-maps-scraper.js.map +1 -0
  28. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +4 -4
  29. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +14 -14
  30. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +137 -0
  31. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts.map +1 -0
  32. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js +81 -0
  33. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.js.map +1 -0
  34. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +6 -6
  35. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +32 -32
  36. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +488 -0
  37. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts.map +1 -0
  38. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js +463 -0
  39. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.js.map +1 -0
  40. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +262 -0
  41. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts.map +1 -0
  42. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js +291 -0
  43. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.js.map +1 -0
  44. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  45. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +1301 -170
  46. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts.map +1 -1
  47. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js +32 -0
  48. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.js.map +1 -1
  49. package/dist/bubbles/service-bubble/apify/apify.d.ts +162 -17
  50. package/dist/bubbles/service-bubble/apify/apify.d.ts.map +1 -1
  51. package/dist/bubbles/service-bubble/apify/apify.js +205 -32
  52. package/dist/bubbles/service-bubble/apify/apify.js.map +1 -1
  53. package/dist/bubbles/service-bubble/eleven-labs.d.ts +421 -0
  54. package/dist/bubbles/service-bubble/eleven-labs.d.ts.map +1 -0
  55. package/dist/bubbles/service-bubble/eleven-labs.js +479 -0
  56. package/dist/bubbles/service-bubble/eleven-labs.js.map +1 -0
  57. package/dist/bubbles/service-bubble/firecrawl.d.ts +37748 -0
  58. package/dist/bubbles/service-bubble/firecrawl.d.ts.map +1 -0
  59. package/dist/bubbles/service-bubble/firecrawl.js +1489 -0
  60. package/dist/bubbles/service-bubble/firecrawl.js.map +1 -0
  61. package/dist/bubbles/service-bubble/followupboss.d.ts +6822 -0
  62. package/dist/bubbles/service-bubble/followupboss.d.ts.map +1 -0
  63. package/dist/bubbles/service-bubble/followupboss.js +1394 -0
  64. package/dist/bubbles/service-bubble/followupboss.js.map +1 -0
  65. package/dist/bubbles/service-bubble/github.d.ts +2399 -0
  66. package/dist/bubbles/service-bubble/github.d.ts.map +1 -0
  67. package/dist/bubbles/service-bubble/github.js +1052 -0
  68. package/dist/bubbles/service-bubble/github.js.map +1 -0
  69. package/dist/bubbles/service-bubble/gmail.d.ts +180 -180
  70. package/dist/bubbles/service-bubble/google-calendar.d.ts +60 -60
  71. package/dist/bubbles/service-bubble/google-drive.d.ts +37 -36
  72. package/dist/bubbles/service-bubble/google-drive.d.ts.map +1 -1
  73. package/dist/bubbles/service-bubble/google-drive.js +35 -3
  74. package/dist/bubbles/service-bubble/google-drive.js.map +1 -1
  75. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts +943 -0
  76. package/dist/bubbles/service-bubble/google-sheets/google-sheets.d.ts.map +1 -0
  77. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts +31 -0
  78. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.d.ts.map +1 -0
  79. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js +184 -0
  80. package/dist/bubbles/service-bubble/google-sheets/google-sheets.integration.flow.js.map +1 -0
  81. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js +401 -0
  82. package/dist/bubbles/service-bubble/google-sheets/google-sheets.js.map +1 -0
  83. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts +1024 -0
  84. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.d.ts.map +1 -0
  85. package/dist/bubbles/service-bubble/{google-sheets.js → google-sheets/google-sheets.schema.js} +45 -409
  86. package/dist/bubbles/service-bubble/google-sheets/google-sheets.schema.js.map +1 -0
  87. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts +38 -0
  88. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.d.ts.map +1 -0
  89. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js +183 -0
  90. package/dist/bubbles/service-bubble/google-sheets/google-sheets.utils.js.map +1 -0
  91. package/dist/bubbles/service-bubble/google-sheets/index.d.ts +4 -0
  92. package/dist/bubbles/service-bubble/google-sheets/index.d.ts.map +1 -0
  93. package/dist/bubbles/service-bubble/google-sheets/index.js +4 -0
  94. package/dist/bubbles/service-bubble/google-sheets/index.js.map +1 -0
  95. package/dist/bubbles/service-bubble/hello-world.d.ts +4 -4
  96. package/dist/bubbles/service-bubble/http.d.ts +4 -4
  97. package/dist/bubbles/service-bubble/http.d.ts.map +1 -1
  98. package/dist/bubbles/service-bubble/http.js +7 -1
  99. package/dist/bubbles/service-bubble/http.js.map +1 -1
  100. package/dist/bubbles/service-bubble/insforge-db.d.ts +140 -0
  101. package/dist/bubbles/service-bubble/insforge-db.d.ts.map +1 -0
  102. package/dist/bubbles/service-bubble/insforge-db.js +260 -0
  103. package/dist/bubbles/service-bubble/insforge-db.js.map +1 -0
  104. package/dist/bubbles/service-bubble/notion/index.d.ts +3 -0
  105. package/dist/bubbles/service-bubble/notion/index.d.ts.map +1 -0
  106. package/dist/bubbles/service-bubble/notion/index.js +3 -0
  107. package/dist/bubbles/service-bubble/notion/index.js.map +1 -0
  108. package/dist/bubbles/service-bubble/notion/notion.d.ts +35405 -0
  109. package/dist/bubbles/service-bubble/notion/notion.d.ts.map +1 -0
  110. package/dist/bubbles/service-bubble/notion/notion.js +1492 -0
  111. package/dist/bubbles/service-bubble/notion/notion.js.map +1 -0
  112. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +1148 -0
  113. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts.map +1 -0
  114. package/dist/bubbles/service-bubble/notion/property-schemas.js +341 -0
  115. package/dist/bubbles/service-bubble/notion/property-schemas.js.map +1 -0
  116. package/dist/bubbles/service-bubble/postgresql.d.ts +12 -12
  117. package/dist/bubbles/service-bubble/resend.d.ts +34 -13
  118. package/dist/bubbles/service-bubble/resend.d.ts.map +1 -1
  119. package/dist/bubbles/service-bubble/resend.js +133 -2
  120. package/dist/bubbles/service-bubble/resend.js.map +1 -1
  121. package/dist/bubbles/service-bubble/slack.d.ts +241 -241
  122. package/dist/bubbles/service-bubble/slack.d.ts.map +1 -1
  123. package/dist/bubbles/service-bubble/slack.js +2 -2
  124. package/dist/bubbles/service-bubble/slack.js.map +1 -1
  125. package/dist/bubbles/service-bubble/storage.d.ts +25 -21
  126. package/dist/bubbles/service-bubble/storage.d.ts.map +1 -1
  127. package/dist/bubbles/service-bubble/storage.js +43 -2
  128. package/dist/bubbles/service-bubble/storage.js.map +1 -1
  129. package/dist/bubbles/service-bubble/telegram.d.ts +7742 -0
  130. package/dist/bubbles/service-bubble/telegram.d.ts.map +1 -0
  131. package/dist/bubbles/service-bubble/telegram.js +1132 -0
  132. package/dist/bubbles/service-bubble/telegram.js.map +1 -0
  133. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +76 -20
  134. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts.map +1 -1
  135. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js +12 -0
  136. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.js.map +1 -1
  137. package/dist/bubbles/tool-bubble/chart-js-tool.d.ts +14 -14
  138. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts +188 -0
  139. package/dist/bubbles/tool-bubble/code-edit-tool.d.ts.map +1 -0
  140. package/dist/bubbles/tool-bubble/code-edit-tool.js +321 -0
  141. package/dist/bubbles/tool-bubble/code-edit-tool.js.map +1 -0
  142. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts +8 -4
  143. package/dist/bubbles/tool-bubble/get-bubble-details-tool.d.ts.map +1 -1
  144. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js +115 -10
  145. package/dist/bubbles/tool-bubble/get-bubble-details-tool.js.map +1 -1
  146. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts +455 -0
  147. package/dist/bubbles/tool-bubble/google-maps-tool.d.ts.map +1 -0
  148. package/dist/bubbles/tool-bubble/google-maps-tool.js +205 -0
  149. package/dist/bubbles/tool-bubble/google-maps-tool.js.map +1 -0
  150. package/dist/bubbles/tool-bubble/instagram-tool.d.ts +36 -36
  151. package/dist/bubbles/tool-bubble/instagram-tool.d.ts.map +1 -1
  152. package/dist/bubbles/tool-bubble/instagram-tool.js +2 -2
  153. package/dist/bubbles/tool-bubble/instagram-tool.js.map +1 -1
  154. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +824 -447
  155. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts.map +1 -1
  156. package/dist/bubbles/tool-bubble/linkedin-tool.js +232 -12
  157. package/dist/bubbles/tool-bubble/linkedin-tool.js.map +1 -1
  158. package/dist/bubbles/tool-bubble/list-bubbles-tool.d.ts +4 -4
  159. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +66 -66
  160. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +17 -16
  161. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts.map +1 -1
  162. package/dist/bubbles/tool-bubble/research-agent-tool.js +26 -16
  163. package/dist/bubbles/tool-bubble/research-agent-tool.js.map +1 -1
  164. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +8 -8
  165. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +485 -0
  166. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts.map +1 -0
  167. package/dist/bubbles/tool-bubble/tiktok-tool.js +226 -0
  168. package/dist/bubbles/tool-bubble/tiktok-tool.js.map +1 -0
  169. package/dist/bubbles/tool-bubble/tool-template.d.ts +8 -8
  170. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +947 -0
  171. package/dist/bubbles/tool-bubble/twitter-tool.d.ts.map +1 -0
  172. package/dist/bubbles/tool-bubble/twitter-tool.js +494 -0
  173. package/dist/bubbles/tool-bubble/twitter-tool.js.map +1 -0
  174. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts +22 -16
  175. package/dist/bubbles/tool-bubble/web-crawl-tool.d.ts.map +1 -1
  176. package/dist/bubbles/tool-bubble/web-crawl-tool.js +58 -59
  177. package/dist/bubbles/tool-bubble/web-crawl-tool.js.map +1 -1
  178. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts +8 -8
  179. package/dist/bubbles/tool-bubble/web-extract-tool.d.ts.map +1 -1
  180. package/dist/bubbles/tool-bubble/web-extract-tool.js +17 -17
  181. package/dist/bubbles/tool-bubble/web-extract-tool.js.map +1 -1
  182. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts +15 -107
  183. package/dist/bubbles/tool-bubble/web-scrape-tool.d.ts.map +1 -1
  184. package/dist/bubbles/tool-bubble/web-scrape-tool.js +51 -72
  185. package/dist/bubbles/tool-bubble/web-scrape-tool.js.map +1 -1
  186. package/dist/bubbles/tool-bubble/web-search-tool.d.ts +20 -9
  187. package/dist/bubbles/tool-bubble/web-search-tool.d.ts.map +1 -1
  188. package/dist/bubbles/tool-bubble/web-search-tool.js +45 -35
  189. package/dist/bubbles/tool-bubble/web-search-tool.js.map +1 -1
  190. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +25 -25
  191. package/dist/bubbles/tool-bubble/youtube-tool.d.ts.map +1 -1
  192. package/dist/bubbles/tool-bubble/youtube-tool.js +5 -5
  193. package/dist/bubbles/tool-bubble/youtube-tool.js.map +1 -1
  194. package/dist/bubbles/workflow-bubble/database-analyzer.workflow.d.ts +4 -4
  195. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +30 -30
  196. package/dist/bubbles/workflow-bubble/generate-document.workflow.js +1 -1
  197. package/dist/bubbles/workflow-bubble/parse-document.workflow.d.ts +22 -22
  198. package/dist/bubbles/workflow-bubble/parse-document.workflow.js +1 -1
  199. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +54 -54
  200. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts.map +1 -1
  201. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js +4 -4
  202. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.js.map +1 -1
  203. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.d.ts +36 -36
  204. package/dist/bubbles/workflow-bubble/pdf-ocr.workflow.js +1 -1
  205. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +14 -14
  206. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts.map +1 -1
  207. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js +6 -6
  208. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.js.map +1 -1
  209. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +26 -26
  210. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts.map +1 -1
  211. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js +24 -4
  212. package/dist/bubbles/workflow-bubble/slack-formatter-agent.js.map +1 -1
  213. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts +19 -19
  214. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.d.ts.map +1 -1
  215. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js +8 -8
  216. package/dist/bubbles/workflow-bubble/slack-notifier.workflow.js.map +1 -1
  217. package/dist/bubbles.json +220 -72
  218. package/dist/index.d.ts +23 -4
  219. package/dist/index.d.ts.map +1 -1
  220. package/dist/index.js +16 -3
  221. package/dist/index.js.map +1 -1
  222. package/dist/logging/BubbleLogger.d.ts +45 -16
  223. package/dist/logging/BubbleLogger.d.ts.map +1 -1
  224. package/dist/logging/BubbleLogger.js +178 -77
  225. package/dist/logging/BubbleLogger.js.map +1 -1
  226. package/dist/logging/StreamingBubbleLogger.d.ts +13 -1
  227. package/dist/logging/StreamingBubbleLogger.d.ts.map +1 -1
  228. package/dist/logging/StreamingBubbleLogger.js +51 -8
  229. package/dist/logging/StreamingBubbleLogger.js.map +1 -1
  230. package/dist/logging/WebhookStreamLogger.d.ts +66 -0
  231. package/dist/logging/WebhookStreamLogger.d.ts.map +1 -0
  232. package/dist/logging/WebhookStreamLogger.js +291 -0
  233. package/dist/logging/WebhookStreamLogger.js.map +1 -0
  234. package/dist/types/available-tools.d.ts +1 -1
  235. package/dist/types/available-tools.d.ts.map +1 -1
  236. package/dist/types/available-tools.js +1 -0
  237. package/dist/types/available-tools.js.map +1 -1
  238. package/dist/types/base-bubble-class.d.ts +6 -4
  239. package/dist/types/base-bubble-class.d.ts.map +1 -1
  240. package/dist/types/base-bubble-class.js +35 -20
  241. package/dist/types/base-bubble-class.js.map +1 -1
  242. package/dist/types/bubble.d.ts +2 -0
  243. package/dist/types/bubble.d.ts.map +1 -1
  244. package/dist/types/service-bubble-class.d.ts +1 -1
  245. package/dist/types/service-bubble-class.d.ts.map +1 -1
  246. package/dist/types/service-bubble-class.js +2 -2
  247. package/dist/types/service-bubble-class.js.map +1 -1
  248. package/dist/types/tool-bubble-class.d.ts +1 -1
  249. package/dist/types/tool-bubble-class.d.ts.map +1 -1
  250. package/dist/types/tool-bubble-class.js +2 -2
  251. package/dist/types/tool-bubble-class.js.map +1 -1
  252. package/dist/types/workflow-bubble-class.d.ts +1 -1
  253. package/dist/types/workflow-bubble-class.d.ts.map +1 -1
  254. package/dist/types/workflow-bubble-class.js +2 -2
  255. package/dist/types/workflow-bubble-class.js.map +1 -1
  256. package/dist/utils/agent-formatter.d.ts +14 -2
  257. package/dist/utils/agent-formatter.d.ts.map +1 -1
  258. package/dist/utils/agent-formatter.js +174 -26
  259. package/dist/utils/agent-formatter.js.map +1 -1
  260. package/dist/utils/bubbleflow-validation.d.ts +7 -0
  261. package/dist/utils/bubbleflow-validation.d.ts.map +1 -1
  262. package/dist/utils/bubbleflow-validation.js +171 -6
  263. package/dist/utils/bubbleflow-validation.js.map +1 -1
  264. package/dist/utils/json-parsing.d.ts.map +1 -1
  265. package/dist/utils/json-parsing.js +146 -0
  266. package/dist/utils/json-parsing.js.map +1 -1
  267. package/dist/utils/safe-gemini-chat.d.ts +31 -0
  268. package/dist/utils/safe-gemini-chat.d.ts.map +1 -0
  269. package/dist/utils/safe-gemini-chat.js +93 -0
  270. package/dist/utils/safe-gemini-chat.js.map +1 -0
  271. package/dist/utils/schema-comparison.d.ts +92 -0
  272. package/dist/utils/schema-comparison.d.ts.map +1 -0
  273. package/dist/utils/schema-comparison.js +716 -0
  274. package/dist/utils/schema-comparison.js.map +1 -0
  275. package/dist/utils/zod-schema.d.ts +24 -0
  276. package/dist/utils/zod-schema.d.ts.map +1 -0
  277. package/dist/utils/zod-schema.js +56 -0
  278. package/dist/utils/zod-schema.js.map +1 -0
  279. package/package.json +5 -4
  280. package/dist/bubbles/service-bubble/google-sheets.d.ts +0 -1811
  281. package/dist/bubbles/service-bubble/google-sheets.d.ts.map +0 -1
  282. package/dist/bubbles/service-bubble/google-sheets.js.map +0 -1
  283. package/dist/bubbles/service-bubble/x-twitter.d.ts +0 -814
  284. package/dist/bubbles/service-bubble/x-twitter.d.ts.map +0 -1
  285. package/dist/bubbles/service-bubble/x-twitter.js +0 -445
  286. package/dist/bubbles/service-bubble/x-twitter.js.map +0 -1
  287. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts +0 -125
  288. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.d.ts.map +0 -1
  289. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js +0 -808
  290. package/dist/bubbles/workflow-bubble/bubbleflow-generator.workflow.js.map +0 -1
  291. package/dist/test-gm.d.ts +0 -10
  292. package/dist/test-gm.d.ts.map +0 -1
  293. package/dist/test-gm.js +0 -95
  294. package/dist/test-gm.js.map +0 -1
  295. package/dist/utils/param-helper.d.ts +0 -2
  296. package/dist/utils/param-helper.d.ts.map +0 -1
  297. package/dist/utils/param-helper.js +0 -5
  298. package/dist/utils/param-helper.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -10,24 +10,41 @@ export { ToolBubble } from './types/tool-bubble-class.js';
10
10
  export { BubbleFlow } from './bubble-flow/bubble-flow-class.js';
11
11
  export type { BubbleTriggerEvent } from '@bubblelab/shared-schemas';
12
12
  export { HelloWorldBubble } from './bubbles/service-bubble/hello-world.js';
13
- export { AIAgentBubble, type StreamingCallback, type ToolHookContext, type ToolHookBefore, type ToolHookAfter, } from './bubbles/service-bubble/ai-agent.js';
13
+ export { AIAgentBubble, type StreamingCallback, type ToolHookContext, type ToolHookBefore, type ToolHookAfter, type AfterLLMCallContext, type AfterLLMCallHook, type ConversationMessage, } from './bubbles/service-bubble/ai-agent.js';
14
14
  export { PostgreSQLBubble } from './bubbles/service-bubble/postgresql.js';
15
15
  export { SlackBubble } from './bubbles/service-bubble/slack.js';
16
+ export { TelegramBubble } from './bubbles/service-bubble/telegram.js';
16
17
  export { ResendBubble } from './bubbles/service-bubble/resend.js';
17
18
  export { HttpBubble } from './bubbles/service-bubble/http.js';
18
19
  export { SlackFormatterAgentBubble } from './bubbles/workflow-bubble/slack-formatter-agent.js';
19
20
  export { StorageBubble } from './bubbles/service-bubble/storage.js';
20
21
  export { GoogleDriveBubble } from './bubbles/service-bubble/google-drive.js';
21
22
  export { GmailBubble } from './bubbles/service-bubble/gmail.js';
22
- export { GoogleSheetsBubble } from './bubbles/service-bubble/google-sheets.js';
23
+ export { GoogleSheetsBubble } from './bubbles/service-bubble/google-sheets/index.js';
23
24
  export { GoogleCalendarBubble } from './bubbles/service-bubble/google-calendar.js';
24
25
  export { ApifyBubble } from './bubbles/service-bubble/apify/apify.js';
26
+ export { FollowUpBossBubble } from './bubbles/service-bubble/followupboss.js';
27
+ export { TwitterTool } from './bubbles/tool-bubble/twitter-tool.js';
28
+ export { TikTokTool } from './bubbles/tool-bubble/tiktok-tool.js';
29
+ export { GoogleMapsTool } from './bubbles/tool-bubble/google-maps-tool.js';
25
30
  export type { ApifyParamsInput, ApifyActorInput, } from './bubbles/service-bubble/apify/apify.js';
26
31
  export type { ActorId, ActorInput, ActorOutput, ActorSchema, } from './bubbles/service-bubble/apify/types.js';
27
32
  export type { APIFY_ACTOR_SCHEMAS } from './bubbles/service-bubble/apify/apify-scraper.schema.js';
33
+ export { GithubBubble } from './bubbles/service-bubble/github.js';
34
+ export type { GithubParamsInput } from './bubbles/service-bubble/github.js';
35
+ export { ElevenLabsBubble } from './bubbles/service-bubble/eleven-labs.js';
36
+ export type { ElevenLabsParamsInput } from './bubbles/service-bubble/eleven-labs.js';
37
+ export { AGIIncBubble } from './bubbles/service-bubble/agi-inc.js';
38
+ export type { AGIIncParamsInput } from './bubbles/service-bubble/agi-inc.js';
39
+ export { AirtableBubble } from './bubbles/service-bubble/airtable.js';
40
+ export type { AirtableParamsInput } from './bubbles/service-bubble/airtable.js';
41
+ export { NotionBubble } from './bubbles/service-bubble/notion/notion.js';
42
+ export type { FirecrawlParamsInput } from './bubbles/service-bubble/firecrawl.js';
43
+ export { FirecrawlBubble } from './bubbles/service-bubble/firecrawl.js';
44
+ export { InsForgeDbBubble } from './bubbles/service-bubble/insforge-db.js';
45
+ export type { InsForgeDbParamsInput } from './bubbles/service-bubble/insforge-db.js';
28
46
  export { DatabaseAnalyzerWorkflowBubble } from './bubbles/workflow-bubble/database-analyzer.workflow.js';
29
47
  export { SlackNotifierWorkflowBubble } from './bubbles/workflow-bubble/slack-notifier.workflow.js';
30
- export { BubbleFlowGeneratorWorkflow } from './bubbles/workflow-bubble/bubbleflow-generator.workflow.js';
31
48
  export { SlackDataAssistantWorkflow } from './bubbles/workflow-bubble/slack-data-assistant.workflow.js';
32
49
  export { PDFFormOperationsWorkflow } from './bubbles/workflow-bubble/pdf-form-operations.workflow.js';
33
50
  export { PDFOcrWorkflow } from './bubbles/workflow-bubble/pdf-ocr.workflow.js';
@@ -37,6 +54,7 @@ export { ListBubblesTool } from './bubbles/tool-bubble/list-bubbles-tool.js';
37
54
  export { GetBubbleDetailsTool } from './bubbles/tool-bubble/get-bubble-details-tool.js';
38
55
  export { SQLQueryTool } from './bubbles/tool-bubble/sql-query-tool.js';
39
56
  export { BubbleFlowValidationTool } from './bubbles/tool-bubble/bubbleflow-validation-tool.js';
57
+ export { EditBubbleFlowTool } from './bubbles/tool-bubble/code-edit-tool.js';
40
58
  export { WebSearchTool } from './bubbles/tool-bubble/web-search-tool.js';
41
59
  export { WebScrapeTool } from './bubbles/tool-bubble/web-scrape-tool.js';
42
60
  export { WebCrawlTool } from './bubbles/tool-bubble/web-crawl-tool.js';
@@ -52,8 +70,9 @@ export type { YouTubeVideo, YouTubeTranscriptSegment, } from './bubbles/tool-bub
52
70
  export { BubbleFactory, type BubbleClassWithMetadata, } from './bubble-factory.js';
53
71
  export { BubbleLogger, LogLevel, type LogEntry, type LogMetadata, type LoggerConfig, } from './logging/BubbleLogger.js';
54
72
  export { StreamingBubbleLogger } from './logging/StreamingBubbleLogger.js';
73
+ export { WebhookStreamLogger } from './logging/WebhookStreamLogger.js';
55
74
  export { MockDataGenerator } from '@bubblelab/shared-schemas';
56
- export { HumanMessage, AIMessage } from '@langchain/core/messages';
75
+ export { HumanMessage, AIMessage, ToolMessage } from '@langchain/core/messages';
57
76
  export type { BaseMessage } from '@langchain/core/messages';
58
77
  export { parseJsonWithFallbacks } from './utils/json-parsing.js';
59
78
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAG3C,OAAO,EACL,WAAW,EACX,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAGhE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EACL,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AACtE,YAAY,EACV,gBAAgB,EAChB,eAAe,GAChB,MAAM,yCAAyC,CAAC;AAIjD,YAAY,EACV,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,yCAAyC,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAGlG,OAAO,EAAE,8BAA8B,EAAE,MAAM,yDAAyD,CAAC;AACzG,OAAO,EAAE,2BAA2B,EAAE,MAAM,sDAAsD,CAAC;AACnG,OAAO,EAAE,2BAA2B,EAAE,MAAM,4DAA4D,CAAC;AACzG,OAAO,EAAE,0BAA0B,EAAE,MAAM,4DAA4D,CAAC;AACxG,OAAO,EAAE,yBAAyB,EAAE,MAAM,2DAA2D,CAAC;AACtG,OAAO,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yDAAyD,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAG7F,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,YAAY,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,YAAY,EACV,YAAY,EACZ,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EACL,aAAa,EACb,KAAK,uBAAuB,GAC7B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,19 +15,30 @@ export { HelloWorldBubble } from './bubbles/service-bubble/hello-world.js';
15
15
  export { AIAgentBubble, } from './bubbles/service-bubble/ai-agent.js';
16
16
  export { PostgreSQLBubble } from './bubbles/service-bubble/postgresql.js';
17
17
  export { SlackBubble } from './bubbles/service-bubble/slack.js';
18
+ export { TelegramBubble } from './bubbles/service-bubble/telegram.js';
18
19
  export { ResendBubble } from './bubbles/service-bubble/resend.js';
19
20
  export { HttpBubble } from './bubbles/service-bubble/http.js';
20
21
  export { SlackFormatterAgentBubble } from './bubbles/workflow-bubble/slack-formatter-agent.js';
21
22
  export { StorageBubble } from './bubbles/service-bubble/storage.js';
22
23
  export { GoogleDriveBubble } from './bubbles/service-bubble/google-drive.js';
23
24
  export { GmailBubble } from './bubbles/service-bubble/gmail.js';
24
- export { GoogleSheetsBubble } from './bubbles/service-bubble/google-sheets.js';
25
+ export { GoogleSheetsBubble } from './bubbles/service-bubble/google-sheets/index.js';
25
26
  export { GoogleCalendarBubble } from './bubbles/service-bubble/google-calendar.js';
26
27
  export { ApifyBubble } from './bubbles/service-bubble/apify/apify.js';
28
+ export { FollowUpBossBubble } from './bubbles/service-bubble/followupboss.js';
29
+ export { TwitterTool } from './bubbles/tool-bubble/twitter-tool.js';
30
+ export { TikTokTool } from './bubbles/tool-bubble/tiktok-tool.js';
31
+ export { GoogleMapsTool } from './bubbles/tool-bubble/google-maps-tool.js';
32
+ export { GithubBubble } from './bubbles/service-bubble/github.js';
33
+ export { ElevenLabsBubble } from './bubbles/service-bubble/eleven-labs.js';
34
+ export { AGIIncBubble } from './bubbles/service-bubble/agi-inc.js';
35
+ export { AirtableBubble } from './bubbles/service-bubble/airtable.js';
36
+ export { NotionBubble } from './bubbles/service-bubble/notion/notion.js';
37
+ export { FirecrawlBubble } from './bubbles/service-bubble/firecrawl.js';
38
+ export { InsForgeDbBubble } from './bubbles/service-bubble/insforge-db.js';
27
39
  // Export workflow bubbles
28
40
  export { DatabaseAnalyzerWorkflowBubble } from './bubbles/workflow-bubble/database-analyzer.workflow.js';
29
41
  export { SlackNotifierWorkflowBubble } from './bubbles/workflow-bubble/slack-notifier.workflow.js';
30
- export { BubbleFlowGeneratorWorkflow } from './bubbles/workflow-bubble/bubbleflow-generator.workflow.js';
31
42
  export { SlackDataAssistantWorkflow } from './bubbles/workflow-bubble/slack-data-assistant.workflow.js';
32
43
  export { PDFFormOperationsWorkflow } from './bubbles/workflow-bubble/pdf-form-operations.workflow.js';
33
44
  export { PDFOcrWorkflow } from './bubbles/workflow-bubble/pdf-ocr.workflow.js';
@@ -38,6 +49,7 @@ export { ListBubblesTool } from './bubbles/tool-bubble/list-bubbles-tool.js';
38
49
  export { GetBubbleDetailsTool } from './bubbles/tool-bubble/get-bubble-details-tool.js';
39
50
  export { SQLQueryTool } from './bubbles/tool-bubble/sql-query-tool.js';
40
51
  export { BubbleFlowValidationTool } from './bubbles/tool-bubble/bubbleflow-validation-tool.js';
52
+ export { EditBubbleFlowTool } from './bubbles/tool-bubble/code-edit-tool.js';
41
53
  export { WebSearchTool } from './bubbles/tool-bubble/web-search-tool.js';
42
54
  export { WebScrapeTool } from './bubbles/tool-bubble/web-scrape-tool.js';
43
55
  export { WebCrawlTool } from './bubbles/tool-bubble/web-crawl-tool.js';
@@ -52,9 +64,10 @@ export { BubbleFactory, } from './bubble-factory.js';
52
64
  // Export logging utilities
53
65
  export { BubbleLogger, LogLevel, } from './logging/BubbleLogger.js';
54
66
  export { StreamingBubbleLogger } from './logging/StreamingBubbleLogger.js';
67
+ export { WebhookStreamLogger } from './logging/WebhookStreamLogger.js';
55
68
  // Re-export MockDataGenerator from shared-schemas for convenience
56
69
  export { MockDataGenerator } from '@bubblelab/shared-schemas';
57
70
  // Re-export langchain message types for use in API and other packages
58
- export { HumanMessage, AIMessage } from '@langchain/core/messages';
71
+ export { HumanMessage, AIMessage, ToolMessage } from '@langchain/core/messages';
59
72
  export { parseJsonWithFallbacks } from './utils/json-parsing.js';
60
73
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { BubbleError } from '../types/bubble-errors';
2
- import type { TokenUsage, ExecutionSummary } from '@bubblelab/shared-schemas';
2
+ import type { ExecutionSummary } from '@bubblelab/shared-schemas';
3
+ import { CredentialType } from '@bubblelab/shared-schemas';
3
4
  export declare enum LogLevel {
4
5
  TRACE = 0,
5
6
  DEBUG = 1,
@@ -16,6 +17,12 @@ export interface LogEntry {
16
17
  metadata: LogMetadata;
17
18
  duration?: number;
18
19
  }
20
+ export interface LogServiceUsage {
21
+ usage: number;
22
+ service: CredentialType;
23
+ unit: string;
24
+ subService?: string;
25
+ }
19
26
  export interface LogMetadata {
20
27
  flowName: string;
21
28
  variableId?: number;
@@ -23,11 +30,11 @@ export interface LogMetadata {
23
30
  functionName?: string;
24
31
  bubbleName?: string;
25
32
  variableName?: string;
26
- operationType?: 'bubble_instantiation' | 'bubble_execution' | 'variable_assignment' | 'condition' | 'loop_iteration' | 'script' | 'bubble_execution_complete';
33
+ operationType?: 'bubble_instantiation' | 'bubble_execution' | 'variable_assignment' | 'condition' | 'loop_iteration' | 'script' | 'bubble_execution_complete' | 'function_call';
27
34
  memoryUsage?: NodeJS.MemoryUsage;
28
35
  stackTrace?: string;
29
36
  additionalData?: Record<string, unknown>;
30
- tokenUsage?: TokenUsage;
37
+ serviceUsage?: LogServiceUsage;
31
38
  }
32
39
  export interface LoggerConfig {
33
40
  minLevel: LogLevel;
@@ -37,6 +44,11 @@ export interface LoggerConfig {
37
44
  maxLogEntries: number;
38
45
  bufferSize: number;
39
46
  flushInterval?: number;
47
+ pricingTable: Record<string, {
48
+ unit: string;
49
+ unitCost: number;
50
+ }>;
51
+ userCredentialMapping?: Map<number, Set<CredentialType>>;
40
52
  }
41
53
  export declare class BubbleLogger {
42
54
  private flowName;
@@ -50,9 +62,21 @@ export declare class BubbleLogger {
50
62
  private peakMemoryUsage?;
51
63
  private buffer;
52
64
  private flushTimer?;
53
- private cumulativeTokenUsageByModel;
65
+ cumulativeServiceUsageByService: Map<string, Map<number, {
66
+ usage: number;
67
+ service: CredentialType;
68
+ subService?: string;
69
+ unit: string;
70
+ }>>;
54
71
  private bubbleStartTimes;
55
- constructor(flowName: string, config?: Partial<LoggerConfig>);
72
+ private functionCallStartTimes;
73
+ private userCredentialMapping?;
74
+ constructor(flowName: string, config: Partial<Omit<LoggerConfig, 'pricingTable'>> & {
75
+ pricingTable: Record<string, {
76
+ unit: string;
77
+ unitCost: number;
78
+ }>;
79
+ });
56
80
  /**
57
81
  * Log execution at a specific line with timing information
58
82
  * Returns the message for backward compatibility, use shouldLogLine() to check if logging occurred
@@ -82,22 +106,15 @@ export declare class BubbleLogger {
82
106
  * Log control flow operations
83
107
  */
84
108
  logControlFlow(lineNumber: number, type: 'condition' | 'loop_iteration', condition: string, result?: boolean): void;
109
+ protected getServiceUsageKey(service: LogServiceUsage, unitCost?: number): string;
85
110
  /**
86
- * Add token usage to cumulative tracking per model
87
- */
88
- addTokenUsage(tokenUsage: TokenUsage): void;
89
- /**
90
- * Get current cumulative token usage (aggregated across all models)
111
+ * Add token usage to cumulative tracking per model and variable ID
91
112
  */
92
- getTokenUsage(): TokenUsage;
93
- /**
94
- * Get cumulative token usage broken down by model
95
- */
96
- getTokenUsageByModel(): Map<string, Omit<TokenUsage, 'modelName'>>;
113
+ addServiceUsage(serviceUsage: LogServiceUsage, variableId?: number): void;
97
114
  /**
98
115
  * Log token usage
99
116
  */
100
- logTokenUsage(tokenUsage: TokenUsage, message?: string, metadata?: Partial<LogMetadata>): string;
117
+ logTokenUsage(serviceUsage: LogServiceUsage, message?: string, metadata?: Partial<LogMetadata>): string;
101
118
  /**
102
119
  * Log AI agent tool call start
103
120
  */
@@ -106,6 +123,18 @@ export declare class BubbleLogger {
106
123
  * Log AI agent tool call completion
107
124
  */
108
125
  logToolCallComplete(toolCallId: string, toolName: string, toolInput: unknown, toolOutput: unknown, duration: number, message?: string): string;
126
+ /**
127
+ * Log transformation function call start
128
+ */
129
+ logFunctionCallStart(variableId: number, functionName: string, functionInput: unknown, lineNumber?: number): string;
130
+ /**
131
+ * Log transformation function call completion
132
+ */
133
+ logFunctionCallComplete(variableId: number, functionName: string, functionOutput: unknown, duration: number, lineNumber?: number): string;
134
+ /**
135
+ * Get execution time for a function call
136
+ */
137
+ protected getFunctionCallExecutionTime(variableId: number): number;
109
138
  /**
110
139
  * General logging method with different levels
111
140
  */
@@ -1 +1 @@
1
- {"version":3,"file":"BubbleLogger.d.ts","sourceRoot":"","sources":["../../src/logging/BubbleLogger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BubbleLogger.d.ts","sourceRoot":"","sources":["../../src/logging/BubbleLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,oBAAY,QAAQ;IAClB,KAAK,IAAI;IACT,KAAK,IAAI;IACT,IAAI,IAAI;IACR,IAAI,IAAI;IACR,KAAK,IAAI;IACT,KAAK,IAAI;CACV;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,WAAW,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EACV,sBAAsB,GACtB,kBAAkB,GAClB,qBAAqB,GACrB,WAAW,GACX,gBAAgB,GAChB,QAAQ,GACR,2BAA2B,GAC3B,eAAe,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEjE,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;CAC1D;AAED,qBAAa,YAAY;IAyCrB,OAAO,CAAC,QAAQ;IAxClB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAQL;IACd,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,eAAe,CAAC,CAAqB;IAC7C,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,UAAU,CAAC,CAAiB;IAG7B,+BAA+B,EAAE,GAAG,CACzC,MAAM,EACN,GAAG,CACD,MAAM,EACN;QACE,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,cAAc,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;KACd,CACF,CACF,CAAa;IAEd,OAAO,CAAC,gBAAgB,CAAkC;IAE1D,OAAO,CAAC,sBAAsB,CAAkC;IAEhE,OAAO,CAAC,qBAAqB,CAAC,CAAmC;gBAGvD,QAAQ,EAAE,MAAM,EACxB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,GAAG;QACpD,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClE;IA2BH;;;OAGG;IACH,OAAO,CACL,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvC,MAAM;IAuCT;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAMpD;;OAEG;IACH,sBAAsB,CACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM;IAcT;;OAEG;IACH,kBAAkB,CAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACnC,MAAM;IAkBT;;OAEG;IACH,0BAA0B,CACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,OAAO,GACf,MAAM;IAmBT;;OAEG;IACH,qBAAqB,CACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,OAAO,GACb,IAAI;IASP;;OAEG;IACH,cAAc,CACZ,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,WAAW,GAAG,gBAAgB,EACpC,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,OAAO,GACf,IAAI;IAQP,SAAS,CAAC,kBAAkB,CAC1B,OAAO,EAAE,eAAe,EACxB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;IAOT;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IA6BzE;;OAEG;IACH,aAAa,CACX,YAAY,EAAE,eAAe,EAC7B,OAAO,CAAC,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,MAAM;IA2CT;;OAEG;IACH,gBAAgB,CACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM;IAiBT;;OAEG;IACH,mBAAmB,CACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,OAAO,EACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,MAAM;IAoBT;;OAEG;IACH,oBAAoB,CAClB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,OAAO,EACtB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM;IAkBT;;OAEG;IACH,uBAAuB,CACrB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,OAAO,EACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM;IAoBT;;OAEG;IACH,SAAS,CAAC,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAQlE;;OAEG;IACH,GAAG,CACD,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,OAAO,CAAC,WAAW,CAAM,GAClC,IAAI;IA6CP;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAI7D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAI7D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAI5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAI5D,KAAK,CACH,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,IAAI;IAmBP,KAAK,CACH,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,WAAW,EACnB,QAAQ,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC9B,IAAI;IAmBP;;OAEG;IACH,KAAK,IAAI,IAAI;IAYb;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;IAyJvC;;OAEG;IACH,OAAO,IAAI,QAAQ,EAAE;IAKrB;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,EAAE;IAI3C;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,EAAE;IAM7C;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM;IA2CpD;;OAEG;IACH,OAAO,IAAI,IAAI;IAOf,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,aAAa;IA6BrB;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAI7D"}
@@ -1,3 +1,4 @@
1
+ const SHOULD_ENABLE_TOKEN_USAGE_LOGGING_IN_CONSOLE = false;
1
2
  export var LogLevel;
2
3
  (function (LogLevel) {
3
4
  LogLevel[LogLevel["TRACE"] = 0] = "TRACE";
@@ -19,12 +20,18 @@ export class BubbleLogger {
19
20
  peakMemoryUsage;
20
21
  buffer = [];
21
22
  flushTimer;
22
- // Track cumulative token usage per model
23
- cumulativeTokenUsageByModel = new Map();
23
+ // Track cumulative raw usage by service, then by variable ID
24
+ // Structure: serviceKey -> variableId -> usage data
25
+ cumulativeServiceUsageByService = new Map();
24
26
  // Track individual bubble execution times
25
27
  bubbleStartTimes = new Map();
26
- constructor(flowName, config = {}) {
28
+ // Track individual function call execution times
29
+ functionCallStartTimes = new Map();
30
+ // Store user credential mapping for cost calculation
31
+ userCredentialMapping;
32
+ constructor(flowName, config) {
27
33
  this.flowName = flowName;
34
+ const { pricingTable, userCredentialMapping, ...restConfig } = config;
28
35
  this.config = {
29
36
  minLevel: LogLevel.INFO,
30
37
  enableTiming: true,
@@ -33,8 +40,10 @@ export class BubbleLogger {
33
40
  maxLogEntries: 10000,
34
41
  bufferSize: 100,
35
42
  flushInterval: 1000,
36
- ...config,
43
+ ...restConfig,
44
+ pricingTable,
37
45
  };
46
+ this.userCredentialMapping = userCredentialMapping;
38
47
  this.startTime = Date.now();
39
48
  this.lastLogTime = this.startTime;
40
49
  this.executionId = `${flowName}-${this.startTime}-${Math.random().toString(36).substring(7)}`;
@@ -162,81 +171,74 @@ export class BubbleLogger {
162
171
  additionalData: { condition, result },
163
172
  });
164
173
  }
165
- /**
166
- * Add token usage to cumulative tracking per model
167
- */
168
- addTokenUsage(tokenUsage) {
169
- const modelName = tokenUsage.modelName || 'unknown';
170
- // Get or create entry for this model
171
- const existing = this.cumulativeTokenUsageByModel.get(modelName) || {
172
- inputTokens: 0,
173
- outputTokens: 0,
174
- totalTokens: 0,
175
- };
176
- // Add to the cumulative usage for this model
177
- existing.inputTokens += tokenUsage.inputTokens;
178
- existing.outputTokens += tokenUsage.outputTokens;
179
- existing.totalTokens += tokenUsage.totalTokens;
180
- this.cumulativeTokenUsageByModel.set(modelName, existing);
181
- }
182
- /**
183
- * Get current cumulative token usage (aggregated across all models)
184
- */
185
- getTokenUsage() {
186
- // Aggregate token usage across all models
187
- const aggregated = {
188
- inputTokens: 0,
189
- outputTokens: 0,
190
- totalTokens: 0,
191
- };
192
- for (const usage of this.cumulativeTokenUsageByModel.values()) {
193
- aggregated.inputTokens += usage.inputTokens;
194
- aggregated.outputTokens += usage.outputTokens;
195
- }
196
- // Recalculate total instead of summing reported totals
197
- // This ensures accuracy when models (like Gemini) report incorrect totalTokens
198
- aggregated.totalTokens = aggregated.inputTokens + aggregated.outputTokens;
199
- return aggregated;
174
+ getServiceUsageKey(service, unitCost) {
175
+ //Combine service, subservice and unit into a single string
176
+ //Optionally include unitCost to differentiate between user and system credentials
177
+ const baseKey = `${service.service}${service.subService ? `:${service.subService}` : ''}:${service.unit}`;
178
+ return unitCost !== undefined ? `${baseKey}:${unitCost}` : baseKey;
200
179
  }
201
180
  /**
202
- * Get cumulative token usage broken down by model
181
+ * Add token usage to cumulative tracking per model and variable ID
203
182
  */
204
- getTokenUsageByModel() {
205
- // Create a new map with recalculated totalTokens for each model
206
- const recalculated = new Map();
207
- for (const [modelName, usage,] of this.cumulativeTokenUsageByModel.entries()) {
208
- recalculated.set(modelName, {
209
- inputTokens: usage.inputTokens,
210
- outputTokens: usage.outputTokens,
211
- // Recalculate total for consistency
212
- totalTokens: usage.inputTokens + usage.outputTokens,
213
- });
183
+ addServiceUsage(serviceUsage, variableId) {
184
+ const serviceKey = this.getServiceUsageKey(serviceUsage);
185
+ // Get or create the service entry
186
+ if (!this.cumulativeServiceUsageByService.has(serviceKey)) {
187
+ this.cumulativeServiceUsageByService.set(serviceKey, new Map());
214
188
  }
215
- return recalculated;
189
+ const serviceMap = this.cumulativeServiceUsageByService.get(serviceKey);
190
+ // If variableId is provided, track per variable ID
191
+ // If not provided, use 0 as a fallback (for backward compatibility)
192
+ const varId = variableId ?? 0;
193
+ const existing = serviceMap.get(varId) || {
194
+ usage: 0,
195
+ service: serviceUsage.service,
196
+ subService: serviceUsage.subService,
197
+ unit: serviceUsage.unit,
198
+ };
199
+ serviceMap.set(varId, {
200
+ usage: existing.usage + serviceUsage.usage,
201
+ service: existing.service,
202
+ subService: existing.subService,
203
+ unit: existing.unit,
204
+ });
216
205
  }
217
206
  /**
218
207
  * Log token usage
219
208
  */
220
- logTokenUsage(tokenUsage, message, metadata) {
221
- const modelName = tokenUsage.modelName || 'unknown';
209
+ logTokenUsage(serviceUsage, message, metadata) {
222
210
  const logMessage = message ||
223
- `Token usage (${modelName}): ${tokenUsage.inputTokens} input + ${tokenUsage.outputTokens} output = ${tokenUsage.totalTokens} total`;
224
- // Add token usage to cumulative tracking per model
225
- this.addTokenUsage(tokenUsage);
226
- // Convert Map to object for logging
227
- const tokenUsageByModel = Object.fromEntries(this.cumulativeTokenUsageByModel.entries());
228
- this.info(logMessage, {
229
- ...metadata,
230
- tokenUsage,
231
- operationType: metadata?.operationType || 'bubble_execution',
232
- additionalData: {
233
- ...metadata?.additionalData,
234
- tokenUsage,
235
- variableId: metadata?.variableId,
236
- cumulativeTokenUsage: this.getTokenUsage(), // Aggregated total
237
- cumulativeTokenUsageByModel: tokenUsageByModel, // Per-model breakdown
238
- },
239
- });
211
+ `Service usage (${this.getServiceUsageKey(serviceUsage)}): ${serviceUsage.usage} units`;
212
+ // Add token usage to cumulative tracking per model and variable ID
213
+ this.addServiceUsage(serviceUsage, metadata?.variableId);
214
+ // Convert Map to object for logging (flattened for backward compatibility)
215
+ const serviceUsageByService = {};
216
+ for (const [serviceKey, varIdMap,] of this.cumulativeServiceUsageByService.entries()) {
217
+ // Aggregate usage across all variable IDs for display
218
+ let totalUsage = 0;
219
+ for (const usageData of varIdMap.values()) {
220
+ totalUsage += usageData.usage;
221
+ }
222
+ serviceUsageByService[serviceKey] = {
223
+ usage: totalUsage,
224
+ service: Array.from(varIdMap.values())[0]?.service,
225
+ subService: Array.from(varIdMap.values())[0]?.subService,
226
+ unit: Array.from(varIdMap.values())[0]?.unit,
227
+ };
228
+ }
229
+ if (SHOULD_ENABLE_TOKEN_USAGE_LOGGING_IN_CONSOLE) {
230
+ this.info(logMessage, {
231
+ ...metadata,
232
+ serviceUsage,
233
+ operationType: metadata?.operationType || 'bubble_execution',
234
+ additionalData: {
235
+ ...metadata?.additionalData,
236
+ serviceUsage,
237
+ variableId: metadata?.variableId,
238
+ cumulativeServiceUsageByService: serviceUsageByService, // Per-service breakdown
239
+ },
240
+ });
241
+ }
240
242
  return logMessage;
241
243
  }
242
244
  /**
@@ -275,6 +277,55 @@ export class BubbleLogger {
275
277
  });
276
278
  return logMessage;
277
279
  }
280
+ /**
281
+ * Log transformation function call start
282
+ */
283
+ logFunctionCallStart(variableId, functionName, functionInput, lineNumber) {
284
+ // Track start time for this function call
285
+ this.functionCallStartTimes.set(variableId, Date.now());
286
+ const logMessage = `Starting step: ${functionName}`;
287
+ this.log(LogLevel.DEBUG, logMessage, {
288
+ variableId,
289
+ lineNumber,
290
+ operationType: 'function_call',
291
+ additionalData: {
292
+ functionName,
293
+ functionInput,
294
+ phase: 'function_call_start',
295
+ },
296
+ });
297
+ return logMessage;
298
+ }
299
+ /**
300
+ * Log transformation function call completion
301
+ */
302
+ logFunctionCallComplete(variableId, functionName, functionOutput, duration, lineNumber) {
303
+ const logMessage = `Completed step: ${functionName}`;
304
+ this.log(LogLevel.DEBUG, logMessage, {
305
+ variableId,
306
+ lineNumber,
307
+ operationType: 'function_call',
308
+ additionalData: {
309
+ functionName,
310
+ functionOutput,
311
+ duration,
312
+ phase: 'function_call_complete',
313
+ },
314
+ });
315
+ // Clean up the start time for this function call
316
+ this.functionCallStartTimes.delete(variableId);
317
+ return logMessage;
318
+ }
319
+ /**
320
+ * Get execution time for a function call
321
+ */
322
+ getFunctionCallExecutionTime(variableId) {
323
+ const functionCallStartTime = this.functionCallStartTimes.get(variableId);
324
+ if (!functionCallStartTime) {
325
+ return 0;
326
+ }
327
+ return Date.now() - functionCallStartTime;
328
+ }
278
329
  /**
279
330
  * General logging method with different levels
280
331
  */
@@ -410,11 +461,6 @@ export class BubbleLogger {
410
461
  }
411
462
  }
412
463
  slowestLines.sort((a, b) => b.duration - a.duration);
413
- // Convert Map to plain object for tokenUsageByModel (with recalculated totals)
414
- const tokenUsageByModel = {};
415
- for (const [modelName, usage] of this.getTokenUsageByModel().entries()) {
416
- tokenUsageByModel[modelName] = usage;
417
- }
418
464
  // Extract errors and warnings with details
419
465
  const errors = errorLogs.map((log) => ({
420
466
  message: log.message,
@@ -432,12 +478,67 @@ export class BubbleLogger {
432
478
  lineNumber: log.metadata.lineNumber,
433
479
  additionalData: log.metadata.additionalData,
434
480
  }));
481
+ // If pricing table is empty or undefined, print a warning
482
+ if (!this.config.pricingTable ||
483
+ Object.keys(this.config.pricingTable).length === 0) {
484
+ console.warn('Pricing table is empty, no pricing data will be available. To track cost tracking, please set the pricing table in the logger config.');
485
+ }
486
+ const serviceUsage = [];
487
+ // Calculate service usage based on pricing table, per variable ID
488
+ // Create separate entries for user credentials (unitCost = 0) vs system credentials
489
+ // Key format: serviceKey:unitCost to differentiate between user and system credentials
490
+ const aggregatedServiceUsage = new Map();
491
+ for (const [serviceKey, varIdMap,] of this.cumulativeServiceUsageByService.entries()) {
492
+ // Use the full key (service:subService:unit) to look up pricing
493
+ // This matches the key format used in the pricing table
494
+ const pricingKey = serviceKey; // key is already in format "service:subService:unit"
495
+ const pricing = this.config.pricingTable[pricingKey];
496
+ const systemUnitCost = pricing?.unitCost || 0;
497
+ // Process each variable ID's usage separately
498
+ for (const [variableId, usageData] of varIdMap.entries()) {
499
+ // Check if this variable ID used a user credential for this service type
500
+ const userCredsForVarId = this.userCredentialMapping?.get(variableId);
501
+ const usedUserCredential = userCredsForVarId?.has(usageData.service) ?? false;
502
+ // Set unitCost to 0 if user credential was used, otherwise use pricing table
503
+ const unitCost = usedUserCredential ? 0 : systemUnitCost;
504
+ const costForThisVarId = usageData.usage * unitCost;
505
+ // Create a key that includes unitCost to separate user vs system credential usage
506
+ const usageKey = `${serviceKey}:${unitCost}`;
507
+ // Aggregate by usage key (serviceKey:unitCost)
508
+ const existing = aggregatedServiceUsage.get(usageKey);
509
+ if (existing) {
510
+ existing.usage += usageData.usage;
511
+ existing.totalCost += costForThisVarId;
512
+ }
513
+ else {
514
+ aggregatedServiceUsage.set(usageKey, {
515
+ service: usageData.service,
516
+ usage: usageData.usage,
517
+ subService: usageData.subService,
518
+ unit: usageData.unit,
519
+ unitCost: unitCost,
520
+ totalCost: costForThisVarId,
521
+ });
522
+ }
523
+ }
524
+ }
525
+ // Convert aggregated map to ServiceUsage array
526
+ for (const [, aggregated] of aggregatedServiceUsage.entries()) {
527
+ serviceUsage.push({
528
+ service: aggregated.service,
529
+ usage: aggregated.usage,
530
+ subService: aggregated.subService,
531
+ unit: aggregated.unit,
532
+ unitCost: aggregated.unitCost,
533
+ totalCost: aggregated.totalCost,
534
+ });
535
+ }
435
536
  return {
436
537
  totalDuration,
437
538
  errors,
438
539
  warnings,
439
- tokenUsage: this.getTokenUsage(), // Aggregated token usage across all models
440
- tokenUsageByModel, // Per-model breakdown
540
+ serviceUsage,
541
+ totalCost: serviceUsage.reduce((acc, curr) => acc + curr.totalCost, 0),
441
542
  };
442
543
  }
443
544
  /**