flow-frame-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 (416) hide show
  1. package/README.md +64 -0
  2. package/dist/Dockerfile +86 -0
  3. package/dist/GPU_DEPLOYMENT_README.md +324 -0
  4. package/dist/OPS_AGENT_README.md +174 -0
  5. package/dist/README-H100-VM.md +192 -0
  6. package/dist/README-worker-pools.md +231 -0
  7. package/dist/README.md +8 -0
  8. package/dist/WEB-ELEMENT-REQUESTS-README.md +302 -0
  9. package/dist/append.d.ts +3 -0
  10. package/dist/append.d.ts.map +1 -0
  11. package/dist/append.js +42 -0
  12. package/dist/append.js.map +1 -0
  13. package/dist/audioRoutes.d.ts +2 -0
  14. package/dist/audioRoutes.d.ts.map +1 -0
  15. package/dist/audioRoutes.js +97 -0
  16. package/dist/audioRoutes.js.map +1 -0
  17. package/dist/augment-parallel.d.ts +6 -0
  18. package/dist/augment-parallel.d.ts.map +1 -0
  19. package/dist/augment-parallel.js +128 -0
  20. package/dist/augment-parallel.js.map +1 -0
  21. package/dist/augment-worker.d.ts +2 -0
  22. package/dist/augment-worker.d.ts.map +1 -0
  23. package/dist/augment-worker.js +100 -0
  24. package/dist/augment-worker.js.map +1 -0
  25. package/dist/browerRoutes.d.ts +2 -0
  26. package/dist/browerRoutes.d.ts.map +1 -0
  27. package/dist/browerRoutes.js +323 -0
  28. package/dist/browerRoutes.js.map +1 -0
  29. package/dist/browser-utils/utils.d.ts +6 -0
  30. package/dist/browser-utils/utils.d.ts.map +1 -0
  31. package/dist/browser-utils/utils.js +133 -0
  32. package/dist/browser-utils/utils.js.map +1 -0
  33. package/dist/capture_training_data_endpoints.d.ts +158 -0
  34. package/dist/capture_training_data_endpoints.d.ts.map +1 -0
  35. package/dist/capture_training_data_endpoints.js +1812 -0
  36. package/dist/capture_training_data_endpoints.js.map +1 -0
  37. package/dist/config.json +28 -0
  38. package/dist/configEndpoints.d.ts +2 -0
  39. package/dist/configEndpoints.d.ts.map +1 -0
  40. package/dist/configEndpoints.js +459 -0
  41. package/dist/configEndpoints.js.map +1 -0
  42. package/dist/constants.d.ts +109 -0
  43. package/dist/constants.d.ts.map +1 -0
  44. package/dist/constants.js +110 -0
  45. package/dist/constants.js.map +1 -0
  46. package/dist/docs/workflow_nodes.md +257 -0
  47. package/dist/download.d.ts +11 -0
  48. package/dist/download.d.ts.map +1 -0
  49. package/dist/download.js +31 -0
  50. package/dist/download.js.map +1 -0
  51. package/dist/download.py +61 -0
  52. package/dist/ecosystem.config.json +63 -0
  53. package/dist/email-body-extractor.d.ts +20 -0
  54. package/dist/email-body-extractor.d.ts.map +1 -0
  55. package/dist/email-body-extractor.js +103 -0
  56. package/dist/email-body-extractor.js.map +1 -0
  57. package/dist/express_util.d.ts +2 -0
  58. package/dist/express_util.d.ts.map +1 -0
  59. package/dist/express_util.js +30 -0
  60. package/dist/express_util.js.map +1 -0
  61. package/dist/extension/background.d.ts +2 -0
  62. package/dist/extension/background.d.ts.map +1 -0
  63. package/dist/extension/background.js +268 -0
  64. package/dist/extension/background.js.map +1 -0
  65. package/dist/extension/manifest.json +19 -0
  66. package/dist/extensionUtils.d.ts +2 -0
  67. package/dist/extensionUtils.d.ts.map +1 -0
  68. package/dist/extensionUtils.js +48 -0
  69. package/dist/extensionUtils.js.map +1 -0
  70. package/dist/filter-gmail-poller/README.md +320 -0
  71. package/dist/filter-gmail-poller/demo.d.ts +2 -0
  72. package/dist/filter-gmail-poller/demo.d.ts.map +1 -0
  73. package/dist/filter-gmail-poller/demo.js +79 -0
  74. package/dist/filter-gmail-poller/demo.js.map +1 -0
  75. package/dist/filter-gmail-poller/example-existing-app.d.ts +2 -0
  76. package/dist/filter-gmail-poller/example-existing-app.d.ts.map +1 -0
  77. package/dist/filter-gmail-poller/example-existing-app.js +72 -0
  78. package/dist/filter-gmail-poller/example-existing-app.js.map +1 -0
  79. package/dist/filter-gmail-poller/filter-gmail-poller.d.ts +160 -0
  80. package/dist/filter-gmail-poller/filter-gmail-poller.d.ts.map +1 -0
  81. package/dist/filter-gmail-poller/filter-gmail-poller.js +1048 -0
  82. package/dist/filter-gmail-poller/filter-gmail-poller.js.map +1 -0
  83. package/dist/filter-gmail-poller/index.d.ts +3 -0
  84. package/dist/filter-gmail-poller/index.d.ts.map +1 -0
  85. package/dist/filter-gmail-poller/index.js +18 -0
  86. package/dist/filter-gmail-poller/index.js.map +1 -0
  87. package/dist/filter-gmail-poller/manual-test.d.ts +2 -0
  88. package/dist/filter-gmail-poller/manual-test.d.ts.map +1 -0
  89. package/dist/filter-gmail-poller/manual-test.js +70 -0
  90. package/dist/filter-gmail-poller/manual-test.js.map +1 -0
  91. package/dist/filter-gmail-poller/poller-prompts.d.ts +12 -0
  92. package/dist/filter-gmail-poller/poller-prompts.d.ts.map +1 -0
  93. package/dist/filter-gmail-poller/poller-prompts.js +330 -0
  94. package/dist/filter-gmail-poller/poller-prompts.js.map +1 -0
  95. package/dist/filter-gmail-poller/test.js +69 -0
  96. package/dist/flowframe-auto-firebase-adminsdk.json +13 -0
  97. package/dist/gmail-poller/README-microsoft-email-poller.md +203 -0
  98. package/dist/gmail-poller/README.md +129 -0
  99. package/dist/gmail-poller/example.d.ts +5 -0
  100. package/dist/gmail-poller/example.d.ts.map +1 -0
  101. package/dist/gmail-poller/example.js +83 -0
  102. package/dist/gmail-poller/example.js.map +1 -0
  103. package/dist/gmail-poller/gmail-poller.d.ts +82 -0
  104. package/dist/gmail-poller/gmail-poller.d.ts.map +1 -0
  105. package/dist/gmail-poller/gmail-poller.js +455 -0
  106. package/dist/gmail-poller/gmail-poller.js.map +1 -0
  107. package/dist/gmail-poller/manual-test.d.ts +2 -0
  108. package/dist/gmail-poller/manual-test.d.ts.map +1 -0
  109. package/dist/gmail-poller/manual-test.js +37 -0
  110. package/dist/gmail-poller/manual-test.js.map +1 -0
  111. package/dist/gmail-poller/microsoft-email-example.d.ts +8 -0
  112. package/dist/gmail-poller/microsoft-email-example.d.ts.map +1 -0
  113. package/dist/gmail-poller/microsoft-email-example.js +58 -0
  114. package/dist/gmail-poller/microsoft-email-example.js.map +1 -0
  115. package/dist/gmail-poller/microsoft-email-poller.d.ts +73 -0
  116. package/dist/gmail-poller/microsoft-email-poller.d.ts.map +1 -0
  117. package/dist/gmail-poller/microsoft-email-poller.js +346 -0
  118. package/dist/gmail-poller/microsoft-email-poller.js.map +1 -0
  119. package/dist/gmail-poller/setup-auth.d.ts +3 -0
  120. package/dist/gmail-poller/setup-auth.d.ts.map +1 -0
  121. package/dist/gmail-poller/setup-auth.js +36 -0
  122. package/dist/gmail-poller/setup-auth.js.map +1 -0
  123. package/dist/gmail-poller/test.js +36 -0
  124. package/dist/index.d.ts +10 -0
  125. package/dist/index.d.ts.map +1 -0
  126. package/dist/index.js +28 -0
  127. package/dist/index.js.map +1 -0
  128. package/dist/inference/augment_levels.d.ts +2 -0
  129. package/dist/inference/augment_levels.d.ts.map +1 -0
  130. package/dist/inference/augment_levels.js +1 -0
  131. package/dist/inference/augment_levels.js.map +1 -0
  132. package/dist/inference/capture-overlay.d.ts +13 -0
  133. package/dist/inference/capture-overlay.d.ts.map +1 -0
  134. package/dist/inference/capture-overlay.js +355 -0
  135. package/dist/inference/capture-overlay.js.map +1 -0
  136. package/dist/inference/capturescreenshot.d.ts +12 -0
  137. package/dist/inference/capturescreenshot.d.ts.map +1 -0
  138. package/dist/inference/capturescreenshot.js +157 -0
  139. package/dist/inference/capturescreenshot.js.map +1 -0
  140. package/dist/jsonHandler.d.ts +37 -0
  141. package/dist/jsonHandler.d.ts.map +1 -0
  142. package/dist/jsonHandler.js +191 -0
  143. package/dist/jsonHandler.js.map +1 -0
  144. package/dist/localStorage.json +11 -0
  145. package/dist/media_data_endpoints.d.ts +2 -0
  146. package/dist/media_data_endpoints.d.ts.map +1 -0
  147. package/dist/media_data_endpoints.js +102 -0
  148. package/dist/media_data_endpoints.js.map +1 -0
  149. package/dist/operations/blender-ops.d.ts +4 -0
  150. package/dist/operations/blender-ops.d.ts.map +1 -0
  151. package/dist/operations/blender-ops.js +55 -0
  152. package/dist/operations/blender-ops.js.map +1 -0
  153. package/dist/operations.d.ts +34 -0
  154. package/dist/operations.d.ts.map +1 -0
  155. package/dist/operations.js +1514 -0
  156. package/dist/operations.js.map +1 -0
  157. package/dist/pdfRoutes.d.ts +2 -0
  158. package/dist/pdfRoutes.d.ts.map +1 -0
  159. package/dist/pdfRoutes.js +56 -0
  160. package/dist/pdfRoutes.js.map +1 -0
  161. package/dist/peers.d.ts +9 -0
  162. package/dist/peers.d.ts.map +1 -0
  163. package/dist/peers.js +70 -0
  164. package/dist/peers.js.map +1 -0
  165. package/dist/playparser.d.ts +2 -0
  166. package/dist/playparser.d.ts.map +1 -0
  167. package/dist/playparser.js +281 -0
  168. package/dist/playparser.js.map +1 -0
  169. package/dist/process.d.ts +4 -0
  170. package/dist/process.d.ts.map +1 -0
  171. package/dist/process.js +375 -0
  172. package/dist/process.js.map +1 -0
  173. package/dist/promptRoutes.d.ts +7 -0
  174. package/dist/promptRoutes.d.ts.map +1 -0
  175. package/dist/promptRoutes.js +68 -0
  176. package/dist/promptRoutes.js.map +1 -0
  177. package/dist/queueManager.d.ts +23 -0
  178. package/dist/queueManager.d.ts.map +1 -0
  179. package/dist/queueManager.js +96 -0
  180. package/dist/queueManager.js.map +1 -0
  181. package/dist/run-flow.d.ts +8 -0
  182. package/dist/run-flow.d.ts.map +1 -0
  183. package/dist/run-flow.js +220 -0
  184. package/dist/run-flow.js.map +1 -0
  185. package/dist/scraper.d.ts +2 -0
  186. package/dist/scraper.d.ts.map +1 -0
  187. package/dist/scraper.js +75 -0
  188. package/dist/scraper.js.map +1 -0
  189. package/dist/scraper_endpoints.d.ts +2 -0
  190. package/dist/scraper_endpoints.d.ts.map +1 -0
  191. package/dist/scraper_endpoints.js +40 -0
  192. package/dist/scraper_endpoints.js.map +1 -0
  193. package/dist/server.d.ts +2 -0
  194. package/dist/server.d.ts.map +1 -0
  195. package/dist/server.js +528 -0
  196. package/dist/server.js.map +1 -0
  197. package/dist/services/ModelContext.d.ts +7 -0
  198. package/dist/services/ModelContext.d.ts.map +1 -0
  199. package/dist/services/ModelContext.js +7 -0
  200. package/dist/services/ModelContext.js.map +1 -0
  201. package/dist/services/agenticUiPlanner.d.ts +27 -0
  202. package/dist/services/agenticUiPlanner.d.ts.map +1 -0
  203. package/dist/services/agenticUiPlanner.js +161 -0
  204. package/dist/services/agenticUiPlanner.js.map +1 -0
  205. package/dist/services/apiKeyService.d.ts +3 -0
  206. package/dist/services/apiKeyService.d.ts.map +1 -0
  207. package/dist/services/apiKeyService.js +7 -0
  208. package/dist/services/apiKeyService.js.map +1 -0
  209. package/dist/services/audioService.d.ts +10 -0
  210. package/dist/services/audioService.d.ts.map +1 -0
  211. package/dist/services/audioService.js +140 -0
  212. package/dist/services/audioService.js.map +1 -0
  213. package/dist/services/autoPromptOptimizer.d.ts +44 -0
  214. package/dist/services/autoPromptOptimizer.d.ts.map +1 -0
  215. package/dist/services/autoPromptOptimizer.js +344 -0
  216. package/dist/services/autoPromptOptimizer.js.map +1 -0
  217. package/dist/services/autoPromptOptimizer.manual-test.d.ts +2 -0
  218. package/dist/services/autoPromptOptimizer.manual-test.d.ts.map +1 -0
  219. package/dist/services/autoPromptOptimizer.manual-test.js +27 -0
  220. package/dist/services/autoPromptOptimizer.manual-test.js.map +1 -0
  221. package/dist/services/chainExecutor.d.ts +26 -0
  222. package/dist/services/chainExecutor.d.ts.map +1 -0
  223. package/dist/services/chainExecutor.js +399 -0
  224. package/dist/services/chainExecutor.js.map +1 -0
  225. package/dist/services/classifyImageQuestion.d.ts +55 -0
  226. package/dist/services/classifyImageQuestion.d.ts.map +1 -0
  227. package/dist/services/classifyImageQuestion.js +428 -0
  228. package/dist/services/classifyImageQuestion.js.map +1 -0
  229. package/dist/services/configuration/executor.d.ts +3 -0
  230. package/dist/services/configuration/executor.d.ts.map +1 -0
  231. package/dist/services/configuration/executor.js +795 -0
  232. package/dist/services/configuration/executor.js.map +1 -0
  233. package/dist/services/error.d.ts +13 -0
  234. package/dist/services/error.d.ts.map +1 -0
  235. package/dist/services/error.js +34 -0
  236. package/dist/services/error.js.map +1 -0
  237. package/dist/services/executor.d.ts +11 -0
  238. package/dist/services/executor.d.ts.map +1 -0
  239. package/dist/services/executor.js +1587 -0
  240. package/dist/services/executor.js.map +1 -0
  241. package/dist/services/extractPdf.d.ts +26 -0
  242. package/dist/services/extractPdf.d.ts.map +1 -0
  243. package/dist/services/extractPdf.js +256 -0
  244. package/dist/services/extractPdf.js.map +1 -0
  245. package/dist/services/generateJsTransformFromPrompt.d.ts +11 -0
  246. package/dist/services/generateJsTransformFromPrompt.d.ts.map +1 -0
  247. package/dist/services/generateJsTransformFromPrompt.js +328 -0
  248. package/dist/services/generateJsTransformFromPrompt.js.map +1 -0
  249. package/dist/services/localizeFirebaseMedia.d.ts +20 -0
  250. package/dist/services/localizeFirebaseMedia.d.ts.map +1 -0
  251. package/dist/services/localizeFirebaseMedia.js +135 -0
  252. package/dist/services/localizeFirebaseMedia.js.map +1 -0
  253. package/dist/services/polyfill_canvas.d.ts +2 -0
  254. package/dist/services/polyfill_canvas.d.ts.map +1 -0
  255. package/dist/services/polyfill_canvas.js +19 -0
  256. package/dist/services/polyfill_canvas.js.map +1 -0
  257. package/dist/services/promptRoutes.d.ts +7 -0
  258. package/dist/services/promptRoutes.d.ts.map +1 -0
  259. package/dist/services/promptRoutes.js +70 -0
  260. package/dist/services/promptRoutes.js.map +1 -0
  261. package/dist/services/runPrompt.d.ts +29 -0
  262. package/dist/services/runPrompt.d.ts.map +1 -0
  263. package/dist/services/runPrompt.js +232 -0
  264. package/dist/services/runPrompt.js.map +1 -0
  265. package/dist/services/schemaInference.d.ts +2 -0
  266. package/dist/services/schemaInference.d.ts.map +1 -0
  267. package/dist/services/schemaInference.js +17 -0
  268. package/dist/services/schemaInference.js.map +1 -0
  269. package/dist/services/self-learning/api.d.ts +2 -0
  270. package/dist/services/self-learning/api.d.ts.map +1 -0
  271. package/dist/services/self-learning/api.js +84 -0
  272. package/dist/services/self-learning/api.js.map +1 -0
  273. package/dist/services/self-learning/autolearn.d.ts +23 -0
  274. package/dist/services/self-learning/autolearn.d.ts.map +1 -0
  275. package/dist/services/self-learning/autolearn.js +308 -0
  276. package/dist/services/self-learning/autolearn.js.map +1 -0
  277. package/dist/services/self-learning/discover.d.ts +11 -0
  278. package/dist/services/self-learning/discover.d.ts.map +1 -0
  279. package/dist/services/self-learning/discover.js +446 -0
  280. package/dist/services/self-learning/discover.js.map +1 -0
  281. package/dist/services/self-learning/image.d.ts +10 -0
  282. package/dist/services/self-learning/image.d.ts.map +1 -0
  283. package/dist/services/self-learning/image.js +38 -0
  284. package/dist/services/self-learning/image.js.map +1 -0
  285. package/dist/services/self-learning/injest.d.ts +25 -0
  286. package/dist/services/self-learning/injest.d.ts.map +1 -0
  287. package/dist/services/self-learning/injest.js +110 -0
  288. package/dist/services/self-learning/injest.js.map +1 -0
  289. package/dist/services/self-learning/learn.d.ts +2 -0
  290. package/dist/services/self-learning/learn.d.ts.map +1 -0
  291. package/dist/services/self-learning/learn.js +145 -0
  292. package/dist/services/self-learning/learn.js.map +1 -0
  293. package/dist/services/self-learning/matcher.d.ts +2 -0
  294. package/dist/services/self-learning/matcher.d.ts.map +1 -0
  295. package/dist/services/self-learning/matcher.js +38 -0
  296. package/dist/services/self-learning/matcher.js.map +1 -0
  297. package/dist/services/self-learning/openai.d.ts +8 -0
  298. package/dist/services/self-learning/openai.d.ts.map +1 -0
  299. package/dist/services/self-learning/openai.js +97 -0
  300. package/dist/services/self-learning/openai.js.map +1 -0
  301. package/dist/services/self-learning/phash.d.ts +5 -0
  302. package/dist/services/self-learning/phash.d.ts.map +1 -0
  303. package/dist/services/self-learning/phash.js +68 -0
  304. package/dist/services/self-learning/phash.js.map +1 -0
  305. package/dist/services/self-learning/recognize.d.ts +17 -0
  306. package/dist/services/self-learning/recognize.d.ts.map +1 -0
  307. package/dist/services/self-learning/recognize.js +116 -0
  308. package/dist/services/self-learning/recognize.js.map +1 -0
  309. package/dist/services/self-learning/record_transition.d.ts +8 -0
  310. package/dist/services/self-learning/record_transition.d.ts.map +1 -0
  311. package/dist/services/self-learning/record_transition.js +20 -0
  312. package/dist/services/self-learning/record_transition.js.map +1 -0
  313. package/dist/services/self-learning/registry.d.ts +4 -0
  314. package/dist/services/self-learning/registry.d.ts.map +1 -0
  315. package/dist/services/self-learning/registry.js +19 -0
  316. package/dist/services/self-learning/registry.js.map +1 -0
  317. package/dist/services/self-learning/schema.d.ts +114 -0
  318. package/dist/services/self-learning/schema.d.ts.map +1 -0
  319. package/dist/services/self-learning/schema.js +70 -0
  320. package/dist/services/self-learning/schema.js.map +1 -0
  321. package/dist/services/self-learning/schemaStrictify.d.ts +2 -0
  322. package/dist/services/self-learning/schemaStrictify.d.ts.map +1 -0
  323. package/dist/services/self-learning/schemaStrictify.js +34 -0
  324. package/dist/services/self-learning/schemaStrictify.js.map +1 -0
  325. package/dist/services/self-learning/transition_graph.d.ts +6 -0
  326. package/dist/services/self-learning/transition_graph.d.ts.map +1 -0
  327. package/dist/services/self-learning/transition_graph.js +83 -0
  328. package/dist/services/self-learning/transition_graph.js.map +1 -0
  329. package/dist/services/self-learning/transition_log.d.ts +3 -0
  330. package/dist/services/self-learning/transition_log.d.ts.map +1 -0
  331. package/dist/services/self-learning/transition_log.js +42 -0
  332. package/dist/services/self-learning/transition_log.js.map +1 -0
  333. package/dist/services/self-learning/util.d.ts +3 -0
  334. package/dist/services/self-learning/util.d.ts.map +1 -0
  335. package/dist/services/self-learning/util.js +11 -0
  336. package/dist/services/self-learning/util.js.map +1 -0
  337. package/dist/services/stepByStepAiPlanner.d.ts +39 -0
  338. package/dist/services/stepByStepAiPlanner.d.ts.map +1 -0
  339. package/dist/services/stepByStepAiPlanner.js +379 -0
  340. package/dist/services/stepByStepAiPlanner.js.map +1 -0
  341. package/dist/services/test-genjs.js +39 -0
  342. package/dist/services/test-genjs.manual-test.d.ts +2 -0
  343. package/dist/services/test-genjs.manual-test.d.ts.map +1 -0
  344. package/dist/services/test-genjs.manual-test.js +40 -0
  345. package/dist/services/test-genjs.manual-test.js.map +1 -0
  346. package/dist/services/uiMapPathFinder.d.ts +13 -0
  347. package/dist/services/uiMapPathFinder.d.ts.map +1 -0
  348. package/dist/services/uiMapPathFinder.js +79 -0
  349. package/dist/services/uiMapPathFinder.js.map +1 -0
  350. package/dist/services/uiMapService.d.ts +26 -0
  351. package/dist/services/uiMapService.d.ts.map +1 -0
  352. package/dist/services/uiMapService.js +275 -0
  353. package/dist/services/uiMapService.js.map +1 -0
  354. package/dist/services/uiPlanner.d.ts +54 -0
  355. package/dist/services/uiPlanner.d.ts.map +1 -0
  356. package/dist/services/uiPlanner.js +558 -0
  357. package/dist/services/uiPlanner.js.map +1 -0
  358. package/dist/services/utilityFunctions.d.ts +80 -0
  359. package/dist/services/utilityFunctions.d.ts.map +1 -0
  360. package/dist/services/utilityFunctions.js +352 -0
  361. package/dist/services/utilityFunctions.js.map +1 -0
  362. package/dist/services/variableGenerator.d.ts +39 -0
  363. package/dist/services/variableGenerator.d.ts.map +1 -0
  364. package/dist/services/variableGenerator.js +157 -0
  365. package/dist/services/variableGenerator.js.map +1 -0
  366. package/dist/services/workflow/build-workflow.d.ts +49 -0
  367. package/dist/services/workflow/build-workflow.d.ts.map +1 -0
  368. package/dist/services/workflow/build-workflow.js +119 -0
  369. package/dist/services/workflow/build-workflow.js.map +1 -0
  370. package/dist/standardRoutes.d.ts +2 -0
  371. package/dist/standardRoutes.d.ts.map +1 -0
  372. package/dist/standardRoutes.js +1495 -0
  373. package/dist/standardRoutes.js.map +1 -0
  374. package/dist/stepWorkflowRoutes.d.ts +2 -0
  375. package/dist/stepWorkflowRoutes.d.ts.map +1 -0
  376. package/dist/stepWorkflowRoutes.js +1007 -0
  377. package/dist/stepWorkflowRoutes.js.map +1 -0
  378. package/dist/storage.d.ts +19 -0
  379. package/dist/storage.d.ts.map +1 -0
  380. package/dist/storage.docker.json +61 -0
  381. package/dist/storage.js +131 -0
  382. package/dist/storage.js.map +1 -0
  383. package/dist/storage.json +78 -0
  384. package/dist/storage_cache/boxes.json +48 -0
  385. package/dist/storage_cache/suno_state.json +3 -0
  386. package/dist/suno_download.d.ts +11 -0
  387. package/dist/suno_download.d.ts.map +1 -0
  388. package/dist/suno_download.js +33 -0
  389. package/dist/suno_download.js.map +1 -0
  390. package/dist/suno_download.py +119 -0
  391. package/dist/test-web-element-requests.d.ts +6 -0
  392. package/dist/test-web-element-requests.d.ts.map +1 -0
  393. package/dist/test-web-element-requests.js +114 -0
  394. package/dist/test-web-element-requests.js.map +1 -0
  395. package/dist/test_pdf_render.d.ts +2 -0
  396. package/dist/test_pdf_render.d.ts.map +1 -0
  397. package/dist/test_pdf_render.js +50 -0
  398. package/dist/test_pdf_render.js.map +1 -0
  399. package/dist/training_data_viewer_endpoints.d.ts +2 -0
  400. package/dist/training_data_viewer_endpoints.d.ts.map +1 -0
  401. package/dist/training_data_viewer_endpoints.js +141 -0
  402. package/dist/training_data_viewer_endpoints.js.map +1 -0
  403. package/dist/utils.d.ts +353 -0
  404. package/dist/utils.d.ts.map +1 -0
  405. package/dist/utils.js +1517 -0
  406. package/dist/utils.js.map +1 -0
  407. package/dist/vm-h100.env.template +55 -0
  408. package/dist/web-element-requests.d.ts +102 -0
  409. package/dist/web-element-requests.d.ts.map +1 -0
  410. package/dist/web-element-requests.js +278 -0
  411. package/dist/web-element-requests.js.map +1 -0
  412. package/dist/workflowRoutes.d.ts +2 -0
  413. package/dist/workflowRoutes.d.ts.map +1 -0
  414. package/dist/workflowRoutes.js +441 -0
  415. package/dist/workflowRoutes.js.map +1 -0
  416. package/package.json +109 -0
@@ -0,0 +1,109 @@
1
+ export declare const SUNO_SELECTORS: {
2
+ title: string;
3
+ lyrics: string;
4
+ styles: string;
5
+ styles_tags: string;
6
+ createbtn: string;
7
+ };
8
+ export declare const YOUTUBE_SELECTORS: {
9
+ createtn: string;
10
+ uploadVideo: string;
11
+ uploadVideoPopup: string;
12
+ selectFilesButton: string;
13
+ titleInput: string;
14
+ descriptionInput: string;
15
+ notKidsRadioButton: string;
16
+ yesKidsRadioButton: string;
17
+ nextButton: string;
18
+ scheduleButton: string;
19
+ dateField: string;
20
+ scheduleNavButton: string;
21
+ closeButton: string;
22
+ };
23
+ export declare const MODES: {
24
+ MIDJOURNEY: string;
25
+ MIDJOURNEY_IMAGES_TO_VIDEO: string;
26
+ MIDJOURNEY_DOWNLOAD_MEDIA: string;
27
+ MIDJOURNEY_DOWNLOAD_PUBLIC_MEDIA: string;
28
+ CLEAR_MIDJOURNEY_IMAGES: string;
29
+ SUNO: string;
30
+ SUNO_FILM: string;
31
+ YOUTUBE: string;
32
+ FLOW_FRAME: string;
33
+ };
34
+ export declare const KEYS: {
35
+ VARIABLE_POOL_PATH: string;
36
+ is_in_house: string;
37
+ run_flow_folder: string;
38
+ LastMidjourneyToImages: string;
39
+ speed: string;
40
+ workflow_folder: string;
41
+ learning_dir: string;
42
+ extension_folders: string;
43
+ learning_context: string;
44
+ SETTINGS_FILE: string;
45
+ workflow_model_folder: string;
46
+ flow_frame_text_positions: string;
47
+ workflow_trained_model_folder: string;
48
+ media_folder: string;
49
+ boxes: string;
50
+ element_selectors: string;
51
+ pdf_folder_path: string;
52
+ sourceFile: string;
53
+ mode: string;
54
+ ui_map_folder: string;
55
+ prompt_lib_folder: string;
56
+ useratio: string;
57
+ procedure: string;
58
+ processing_types: string;
59
+ elements: string;
60
+ current_folder: string;
61
+ suno_film_audio_tracks_per: string;
62
+ jobs_folder: string;
63
+ renders_folder: string;
64
+ images_folder: string;
65
+ text_images_folder: string;
66
+ animation_folder: string;
67
+ screen_shot_folder: string;
68
+ annotations_folder: string;
69
+ yolo_training_data: string;
70
+ yolo_capture_data: string;
71
+ days_offset: string;
72
+ audio_folder: string;
73
+ video_folder: string;
74
+ suno_current_name: string;
75
+ sunoDescription: string;
76
+ sunoTitle: string;
77
+ publishPerDay: string;
78
+ sunofileName: string;
79
+ firstVideoForUpload: string;
80
+ sunoDownloadFolder: string;
81
+ music_folder: string;
82
+ current_song_name: string;
83
+ training_jobs_folder: string;
84
+ training_progress_folder: string;
85
+ training_results_folder: string;
86
+ song_list: string;
87
+ song_lyrics: string;
88
+ suno_state: string;
89
+ song_incoming: string;
90
+ midjourney_style: string;
91
+ idea_template: string;
92
+ ideas: string;
93
+ sunoPrompt: string;
94
+ project_names: string;
95
+ config_folder: string;
96
+ project_characters: string;
97
+ project_character: string;
98
+ ignoreCharacters: string;
99
+ ratio: string;
100
+ ignoreStyle: string;
101
+ videoResourceFolder: string;
102
+ topTenVideoHorizontal: string;
103
+ topTenVideoVertical: string;
104
+ topTenAnimationDescription: string;
105
+ "chrome-requests": string;
106
+ default_llm_model: string;
107
+ default_llm_multi_modal_model: string;
108
+ };
109
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;;CAM1B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC;AACF,eAAO,MAAM,KAAK;;;;;;;;;;CAUjB,CAAC;AACF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EhB,CAAC"}
@@ -0,0 +1,110 @@
1
+ // const input_bar = '[id="desktop_input_bar"]';
2
+ export const SUNO_SELECTORS = {
3
+ title: 'input[placeholder="Enter song title"]',
4
+ lyrics: 'textarea[placeholder="Add your own lyrics here"]',
5
+ styles: 'textarea[placeholder="Enter style description"]',
6
+ styles_tags: 'textarea[placeholder="Enter style tags"]',
7
+ createbtn: 'button||Create'
8
+ };
9
+ export const YOUTUBE_SELECTORS = {
10
+ createtn: "button||Create",
11
+ uploadVideo: '.right-container yt-formatted-string||Upload videos',
12
+ uploadVideoPopup: 'p||Drag and drop video files to upload',
13
+ selectFilesButton: 'button||Select files',
14
+ titleInput: '[id="input"]',
15
+ descriptionInput: '[id="description-textarea"]',
16
+ notKidsRadioButton: `[id="radioLabel"]||No, it's not made for kids`,
17
+ yesKidsRadioButton: `[id="radioLabel"]||^Yes, it's made for kids`,
18
+ nextButton: `button||Next`,
19
+ scheduleButton: `[id="visibility-title"]||Schedule`,
20
+ dateField: `.date-timezone-container`,
21
+ scheduleNavButton: `button||Schedule`,
22
+ closeButton: `[id="close-button"] button||Close`
23
+ };
24
+ export const MODES = {
25
+ MIDJOURNEY: 'MIDJOURNEY',
26
+ MIDJOURNEY_IMAGES_TO_VIDEO: 'MIDJOURNEY_IMAGES_TO_VIDEO',
27
+ MIDJOURNEY_DOWNLOAD_MEDIA: 'MIDJOURNEY_DOWNLOAD_MEDIA',
28
+ MIDJOURNEY_DOWNLOAD_PUBLIC_MEDIA: 'MIDJOURNEY_DOWNLOAD_PUBLIC_MEDIA',
29
+ CLEAR_MIDJOURNEY_IMAGES: 'CLEAR_MIDJOURNEY_IMAGES',
30
+ SUNO: 'SUNO',
31
+ SUNO_FILM: 'SUNO_FILM',
32
+ YOUTUBE: 'YOUTUBE',
33
+ FLOW_FRAME: 'FLOW_FRAME'
34
+ };
35
+ export const KEYS = {
36
+ VARIABLE_POOL_PATH: 'variable_pool_path',
37
+ is_in_house: 'is_in_house',
38
+ run_flow_folder: 'run_flow_folder',
39
+ LastMidjourneyToImages: 'LastMidjourneyToImages',
40
+ speed: 'speed',
41
+ workflow_folder: 'workflow_folder',
42
+ learning_dir: 'learning_dir',
43
+ extension_folders: 'extension_folders',
44
+ learning_context: 'learning_context',
45
+ SETTINGS_FILE: 'SETTINGS_FILE',
46
+ workflow_model_folder: 'workflow_model_folder',
47
+ flow_frame_text_positions: 'flow_frame_text_positions',
48
+ workflow_trained_model_folder: 'workflow_trained_model_folder',
49
+ media_folder: 'media_folder',
50
+ boxes: 'boxes',
51
+ element_selectors: 'element_selectors',
52
+ pdf_folder_path: 'pdf_folder_path',
53
+ sourceFile: 'sourceFile',
54
+ mode: 'mode',
55
+ ui_map_folder: 'ui_map_folder',
56
+ prompt_lib_folder: 'prompt_lib_folder',
57
+ useratio: 'useratio',
58
+ procedure: 'procedure',
59
+ processing_types: 'processing_types',
60
+ elements: 'elements',
61
+ current_folder: 'current_folder',
62
+ suno_film_audio_tracks_per: 'suno_film_audio_tracks_per',
63
+ jobs_folder: 'jobs_folder',
64
+ renders_folder: 'renders_folder',
65
+ images_folder: 'images_folder',
66
+ text_images_folder: 'text_images_folder',
67
+ animation_folder: 'animation_folder',
68
+ screen_shot_folder: 'screen_shot_folder',
69
+ annotations_folder: 'annotations_folder',
70
+ yolo_training_data: 'yolo_training_data',
71
+ yolo_capture_data: 'yolo_capture_data',
72
+ days_offset: 'days_offset',
73
+ audio_folder: 'audio_folder',
74
+ video_folder: 'video_folder',
75
+ suno_current_name: 'suno_current_name',
76
+ sunoDescription: 'sunoDescription',
77
+ sunoTitle: 'sunoTitle',
78
+ publishPerDay: 'publishPerDay',
79
+ sunofileName: 'sunofileName',
80
+ firstVideoForUpload: 'firstVideoForUpload',
81
+ sunoDownloadFolder: 'sunoDownloadFolder',
82
+ music_folder: 'music_folder',
83
+ current_song_name: 'current_song_name',
84
+ training_jobs_folder: 'training_jobs_folder',
85
+ training_progress_folder: 'training_progress_folder',
86
+ training_results_folder: 'training_results_folder',
87
+ song_list: 'song_list',
88
+ song_lyrics: 'song_lyrics',
89
+ suno_state: 'suno_state',
90
+ song_incoming: 'song_incoming',
91
+ midjourney_style: 'midjourney_style',
92
+ idea_template: 'idea_template',
93
+ ideas: 'ideas',
94
+ sunoPrompt: 'sunoPrompt',
95
+ project_names: 'project_names',
96
+ config_folder: 'config_folder',
97
+ project_characters: 'project_characters',
98
+ project_character: 'project_character',
99
+ ignoreCharacters: 'ignoreCharacters',
100
+ ratio: 'ratio',
101
+ ignoreStyle: 'ignoreStyle',
102
+ videoResourceFolder: 'videoResourceFolder',
103
+ topTenVideoHorizontal: 'topTenVideoHorizontal',
104
+ topTenVideoVertical: 'topTenVideoVertical',
105
+ topTenAnimationDescription: 'topten-animations-description',
106
+ ['chrome-requests']: 'chrome-requests',
107
+ default_llm_model: 'default_llm_model',
108
+ default_llm_multi_modal_model: 'default_llm_multi_modal_model'
109
+ };
110
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,257 @@
1
+ # Workflow Node Reference
2
+
3
+ This document describes the available node types in the workflow executor and their functionality. These nodes are used to construct workflows and automations.
4
+
5
+ ## General Concepts
6
+
7
+ ### Execution Context
8
+ - **Local Context (`ctx`)**: Data flows between nodes via a local context object. The output of a node is stored in `ctx[node.id]`. Downstream nodes access this data via connections (edges).
9
+ - **Global Context**: A shared state accessible across the entire workflow execution, including inside loops and sub-workflows. Use `globalNode` to set and `globalGetNode` to retrieve values.
10
+ - **Model Context**: System-level configuration and shared state, often used for server URLs or environment variables.
11
+
12
+ ### Input Resolution
13
+ Most nodes follow a standard pattern for resolving inputs:
14
+ 1. **Edge Connection**: If a handle is connected, the value from the source node is used.
15
+ 2. **Configuration**: If no edge is connected, the static value configured in the node's data is used.
16
+ 3. **Default**: If neither is present, a default value (or `undefined`) is used.
17
+
18
+ ## Core Logic Nodes
19
+
20
+ ### `setNode`
21
+ Sets a value in the shared `modelContext` and the local execution context.
22
+ - **Inputs**:
23
+ - `in`: The value to set (optional, can be provided via node data).
24
+ - **Configuration**:
25
+ - `key`: The key to set in the model context.
26
+ - `value`: Static value to set if no input is provided.
27
+ - **Behavior**: Updates `modelContext[key]` with the provided value.
28
+
29
+ ### `getNode`
30
+ Retrieves a value from the shared `modelContext`.
31
+ - **Configuration**:
32
+ - `selectedKey`: The key to retrieve from the model context.
33
+ - **Output**: The value associated with the key.
34
+
35
+ ### `switchNode`
36
+ Routes logic based on an input value matching defined cases.
37
+ - **Inputs**:
38
+ - `input`: The value to test.
39
+ - **Configuration**:
40
+ - `cases`: Array of cases, each with a `matchText` and an `id`.
41
+ - **Behavior**: Checks if `input` matches any case's `matchText`. If a match is found, it retrieves the value from the corresponding handle (`case-{id}`). If no match, it uses the `default` handle.
42
+
43
+ ### `ifNode`
44
+ Executes one of two embedded sub-graphs based on a condition.
45
+ - **Inputs**:
46
+ - `input`: Boolean condition.
47
+ - **Configuration**:
48
+ - `trueGraph`: The graph configuration to execute if input is truthy.
49
+ - `falseGraph`: The graph configuration to execute if input is falsy.
50
+ - **Behavior**: Iterates over the input (if array) or single item, executing the selected sub-graph.
51
+
52
+ ### `execJSNode`
53
+ Executes custom JavaScript code.
54
+ - **Inputs**:
55
+ - Dynamic inputs (e.g., `a`, `b`, `c`...) mapped to variables in the script.
56
+ - **Configuration**:
57
+ - `code`: The JavaScript code to execute.
58
+ - **Context**: Has access to a `utils` library (lodash functions, formatting, etc.) and `global` context.
59
+ - **Output**: The return value of the script.
60
+
61
+ ## Data Manipulation
62
+
63
+ ### `propertyNode`
64
+ Extracts a nested property from an object.
65
+ - **Inputs**:
66
+ - `input`: The source object.
67
+ - **Configuration**:
68
+ - `property`: Dot-notation path (e.g., `user.address.city`).
69
+ - **Output**: The value at the specified path.
70
+
71
+ ### `arrayItemNode`
72
+ Retrieves an item from an array at a specific index.
73
+ - **Inputs**:
74
+ - `input`: The array.
75
+ - **Configuration**:
76
+ - `index`: The numeric index to access.
77
+ - **Output**: The element at the index.
78
+
79
+ ### `inputArrayNode`
80
+ Parses or provides an array.
81
+ - **Configuration**:
82
+ - `parsed`: The array data.
83
+ - `raw`: JSON string representation (fallback).
84
+ - **Output**: The array.
85
+
86
+ ## AI & Prompts
87
+
88
+ ### `promptNode`
89
+ Executes an LLM prompt.
90
+ - **Inputs**:
91
+ - `system`: System prompt (optional override).
92
+ - `user`: User prompt (optional override).
93
+ - **Configuration**:
94
+ - `systemPrompt`: Default system prompt.
95
+ - `userPrompt`: Default user prompt.
96
+ - `model`: The LLM model to use.
97
+ - **Output**: The LLM response (attempts to parse as JSON, falls back to string).
98
+
99
+ ### `autoPromptOptimizerNode`
100
+ Optimizes a prompt for a specific task using iterative testing.
101
+ - **Inputs**:
102
+ - `name`, `taskDescription`, `dataset`, etc.
103
+ - **Configuration**:
104
+ - `maxIterations`, `promptsPerRound`, `model`.
105
+ - **Output**: Object containing `bestPrompt` and `allResults`.
106
+
107
+ ## Network & I/O
108
+
109
+ ### `fetchNode`
110
+ Performs an HTTP request.
111
+ - **Inputs**:
112
+ - `body`: Request body (optional).
113
+ - **Configuration**:
114
+ - `url`: Target URL.
115
+ - `method`: HTTP method (GET, POST, etc.).
116
+ - `responseType`: 'json' or 'text'.
117
+ - `timeoutMinutes`: Request timeout (default 10).
118
+ - **Output**: The response data.
119
+
120
+ ### `outputNode`
121
+ Sends data to an external endpoint (webhook).
122
+ - **Inputs**:
123
+ - `in`: The payload data.
124
+ - **Configuration**:
125
+ - `url`: Destination URL.
126
+ - `method`: HTTP method (default POST).
127
+ - **Behavior**: POSTs `{ ...nodeData, data: payload }` to the URL.
128
+
129
+ ### `gmailNode`
130
+ Fetches emails manually (mostly for testing).
131
+ - **Configuration**:
132
+ - `subjectPrefix`: Filter by subject.
133
+ - `labelNames`: Filter by labels.
134
+ - **Output**: Array of email objects `{ id, body, subject }`.
135
+
136
+ ### `pollerNode`
137
+ Advanced email processing node.
138
+ - **Configuration**:
139
+ - `enableContinuous`: Whether to loop continuously.
140
+ - `subjectPrefix`, `labelNames`: Filters.
141
+ - `inputs`: Mappings of letters (A, B, C...) to task descriptions and sub-graphs.
142
+ - **Behavior**:
143
+ 1. Polls emails.
144
+ 2. Uses LLM to match emails against task descriptions defined in `inputs`.
145
+ 3. Validates matches.
146
+ 4. Executes the specific sub-graph associated with the matched task.
147
+ 5. Optionally moves/deletes processed emails.
148
+
149
+ ## Flow Control & Sub-Workflows
150
+
151
+ ### `workflowNode`
152
+ Executes a separate, named workflow configuration.
153
+ - **Inputs**:
154
+ - `a`, `b`, `c`: Inputs passed to the sub-workflow.
155
+ - **Configuration**:
156
+ - `workflow` or `workflowName`: ID of the workflow to run.
157
+ - **Output**: The result of the sub-workflow.
158
+
159
+ ### `graphNode`
160
+ Loads and executes a dynamic graph configuration.
161
+ - **Inputs**:
162
+ - `input`: Item to process.
163
+ - **Configuration**:
164
+ - `graph`: Name of the configuration to load.
165
+ - **Behavior**: Executes the loaded graph for the input item.
166
+
167
+ ### `ifWorkflowNode`
168
+ Conditionally executes one of two named workflows.
169
+ - **Inputs**:
170
+ - `condition`: Boolean value.
171
+ - `in`: Input data for the workflow.
172
+ - **Configuration**:
173
+ - `trueWorkflow`: Workflow name if condition is true.
174
+ - `falseWorkflow`: Workflow name if condition is false.
175
+
176
+ ### `ifGraphNode`
177
+ Conditionally executes one of two named automations (graphs).
178
+ - **Inputs**:
179
+ - `condition`: Boolean value.
180
+ - `input`: Input data.
181
+ - **Configuration**:
182
+ - `trueAutomation`: Automation ID if true.
183
+ - `falseAutomation`: Automation ID if false.
184
+
185
+ ### `forEachNode`
186
+ Iterates over an array, executing a loaded graph for each item.
187
+ - **Inputs**:
188
+ - `input`: Array of items.
189
+ - **Configuration**:
190
+ - `graphNodeId`: Name of the graph configuration to load.
191
+ - `limitItems`, `limitCount`: Optional limits on iteration.
192
+ - **Output**: Array of results.
193
+
194
+ ### `forLoopNode`
195
+ Iterates over an array, executing an *embedded* sub-graph for each item.
196
+ - **Inputs**:
197
+ - `input`: Array of items.
198
+ - **Configuration**:
199
+ - `bodyGraph`: The embedded graph structure.
200
+ - **Output**: Array of results.
201
+
202
+ ## Context & Globals
203
+
204
+ ### `globalNode`
205
+ Updates the global execution context.
206
+ - **Inputs**:
207
+ - Dynamic inputs mapped to keys.
208
+ - **Configuration**:
209
+ - `pairs`: Array of `{ key, value, inputHandleId }`.
210
+ - **Behavior**: Merges values into `globalContext`.
211
+
212
+ ### `globalGetNode`
213
+ Retrieves a value from the global context.
214
+ - **Inputs**:
215
+ - `in`: Key to retrieve (optional override).
216
+ - `value`: Default value (optional override).
217
+ - **Configuration**:
218
+ - `key`: Dot-notation path to retrieve.
219
+ - `defaultValue`: Fallback value.
220
+ - **Output**: The retrieved value.
221
+
222
+ ### `inputNode`
223
+ Entry point for data within a sub-graph or loop.
224
+ - **Configuration**:
225
+ - `name`: The context key to read (e.g., 'item', 'index', 'array').
226
+ - `value`: Default value.
227
+ - **Output**: The value from context.
228
+
229
+ ### `resultNode`
230
+ Defines the output of a sub-graph or workflow.
231
+ - **Inputs**:
232
+ - `in`: The value to return.
233
+ - **Behavior**: Sets the result for the parent node.
234
+
235
+ ## Extensions
236
+
237
+ ### `extensionNode`
238
+ Executes an external extension capability.
239
+ - **Inputs**:
240
+ - Dynamic inputs defined by the extension capability.
241
+ - **Configuration**:
242
+ - `extensionPath`: Path to the extension.
243
+ - `capabilityId`: ID of the specific capability to execute.
244
+ - **Behavior**:
245
+ 1. Resolves extension path (checking `extension_folders`).
246
+ 2. Installs dependencies via `/installDependencies`.
247
+ 3. Executes the capability via `/runWorkflowCLI`.
248
+ 4. Returns the CLI output.
249
+
250
+ ## Utilities
251
+
252
+ ### `pauseNode`
253
+ Pauses execution.
254
+ - **Inputs**:
255
+ - `seconds`: Duration (optional override).
256
+ - **Configuration**:
257
+ - `seconds`: Duration in seconds.
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Download a single file via the Python helper.
3
+ *
4
+ * @param {string} url – remote file URL
5
+ * @param {string} targetDir – local folder to save into
6
+ * @param {string} [prepend=""] – optional string to prepend to the filename
7
+ * @returns {Promise<void>} – resolves if download succeeds
8
+ */
9
+ declare function downloadWithPython(url: any, targetDir: any, prepend?: string): Promise<unknown>;
10
+ export { downloadWithPython };
11
+ //# sourceMappingURL=download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,iBAAS,kBAAkB,CAAC,GAAG,KAAA,EAAE,SAAS,KAAA,EAAE,OAAO,SAAK,oBAkBvD;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { spawn } from "child_process";
2
+ import path from "path";
3
+ /**
4
+ * Download a single file via the Python helper.
5
+ *
6
+ * @param {string} url – remote file URL
7
+ * @param {string} targetDir – local folder to save into
8
+ * @param {string} [prepend=""] – optional string to prepend to the filename
9
+ * @returns {Promise<void>} – resolves if download succeeds
10
+ */
11
+ function downloadWithPython(url, targetDir, prepend = "") {
12
+ return new Promise((resolve, reject) => {
13
+ const script = path.resolve(__dirname, "download.py");
14
+ const args = [
15
+ script,
16
+ "--url", url,
17
+ "--target-dir", targetDir,
18
+ "--prepend", prepend
19
+ ];
20
+ const py = spawn("python", args, { stdio: "inherit" });
21
+ py.on("error", err => reject(err));
22
+ py.on("close", code => {
23
+ if (code === 0)
24
+ resolve();
25
+ else
26
+ reject(new Error(`download.py exited with code ${code}`));
27
+ });
28
+ });
29
+ }
30
+ export { downloadWithPython };
31
+ //# sourceMappingURL=download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;;;;;GAOG;AACH,SAAS,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE;IACpD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG;YACT,MAAM;YACN,OAAO,EAAE,GAAG;YACZ,cAAc,EAAE,SAAS;YACzB,WAAW,EAAE,OAAO;SACvB,CAAC;QAEF,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAEvD,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;YAClB,IAAI,IAAI,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;;gBACrB,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env python3
2
+ import argparse
3
+ import os
4
+ import requests
5
+ from pathlib import Path
6
+ from urllib.parse import urlparse
7
+
8
+ def parse_args():
9
+ p = argparse.ArgumentParser(
10
+ description="Download a single file from a URL into a target folder with an optional prepend."
11
+ )
12
+ p.add_argument(
13
+ "--url", "-u",
14
+ required=True,
15
+ help="The URL of the file to download."
16
+ )
17
+ p.add_argument(
18
+ "--target-dir", "-t",
19
+ type=Path,
20
+ default=Path("."),
21
+ help="Directory where the file will be saved (will be created if needed)."
22
+ )
23
+ p.add_argument(
24
+ "--prepend", "-p",
25
+ default="",
26
+ help="String to prepend to the downloaded filename."
27
+ )
28
+ return p.parse_args()
29
+
30
+ def main():
31
+ args = parse_args()
32
+ args.target_dir.mkdir(parents=True, exist_ok=True)
33
+
34
+ # Derive original filename
35
+ print(f"downloading: {args.url}")
36
+ parsed = urlparse(args.url)
37
+ orig = os.path.basename(parsed.path)
38
+ if not orig:
39
+ raise ValueError(f"Cannot determine filename from URL: {args.url}")
40
+
41
+ dest = os.path.join(args.target_dir, args.prepend, orig)
42
+
43
+ if os.path.exists(dest):
44
+ print(f"Skipping download, file already exists: {dest}")
45
+ return
46
+
47
+ target_path = os.path.join(args.target_dir, args.prepend)
48
+ if not os.path.isdir(target_path):
49
+ os.mkdir(target_path)
50
+
51
+ resp = requests.get(args.url, stream=True)
52
+ resp.raise_for_status()
53
+ with open(dest, "wb") as f:
54
+ for chunk in resp.iter_content(chunk_size=8192):
55
+ if chunk:
56
+ f.write(chunk)
57
+
58
+ print(f"Downloaded → {dest}")
59
+
60
+ if __name__ == "__main__":
61
+ main()
@@ -0,0 +1,63 @@
1
+ {
2
+ "apps": [
3
+ {
4
+ "name": "server",
5
+ "script": "server.js",
6
+ "args": "--port 8080 --docker true",
7
+ "env": {
8
+ "NODE_ENV": "production"
9
+ },
10
+ "instances": 1,
11
+ "autorestart": true,
12
+ "max_restarts": 10,
13
+ "min_uptime": "10s",
14
+ "max_memory_restart": "1G",
15
+ "restart_delay": 5000,
16
+ "error_log": "./logs/server-error.log",
17
+ "out_log": "./logs/server-out.log",
18
+ "log_log": "./logs/server-combined.log",
19
+ "merge_logs": true,
20
+ "time": true,
21
+ "env_production": {
22
+ "NODE_ENV": "production",
23
+ "PORT": 8080
24
+ },
25
+ "health_check": {
26
+ "enabled": true,
27
+ "url": "http://localhost:8080/health",
28
+ "interval": 30000,
29
+ "timeout": 5000,
30
+ "fails": 3
31
+ }
32
+ },
33
+ {
34
+ "name": "trainer",
35
+ "script": "trainer/yolo-job-processor.py",
36
+ "args": "--config_file=/app/storage.json",
37
+ "interpreter": "python",
38
+ "instances": 1,
39
+ "autorestart": true,
40
+ "max_restarts": 5,
41
+ "min_uptime": "30s",
42
+ "restart_delay": 10000,
43
+ "error_log": "./logs/trainer-error.log",
44
+ "out_log": "./logs/trainer-out.log",
45
+ "log_log": "./logs/trainer-combined.log",
46
+ "merge_logs": true,
47
+ "time": true,
48
+ "env": {
49
+ "PYTHONUNBUFFERED": "1"
50
+ }
51
+ }
52
+ ],
53
+ "deploy": {
54
+ "production": {
55
+ "user": "node",
56
+ "host": ["your-server.com"],
57
+ "ref": "origin/main",
58
+ "repo": "git@github.com:your-username/your-repo.git",
59
+ "path": "/var/www/production",
60
+ "post-deploy": "npm install && pm2 reload ecosystem.config.json --env production"
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Extracts readable text from email body parts
3
+ * @param {Array} parts - Array of email MIME parts
4
+ * @returns {string} - Readable text content
5
+ */
6
+ declare function extractEmailBodyText(parts: any): string;
7
+ /**
8
+ * Alternative function for Gmail API response format
9
+ * @param {Object} message - Gmail API message object
10
+ * @returns {string} - Readable text content
11
+ */
12
+ declare function extractGmailBodyText(message: any): string;
13
+ /**
14
+ * Function to decode base64url encoded strings (Gmail format)
15
+ * @param {string} base64url - Base64url encoded string
16
+ * @returns {string} - Decoded string
17
+ */
18
+ declare function decodeBase64Url(base64url: any): string;
19
+ export { extractEmailBodyText, extractGmailBodyText, decodeBase64Url };
20
+ //# sourceMappingURL=email-body-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-body-extractor.d.ts","sourceRoot":"","sources":["../src/email-body-extractor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,iBAAS,oBAAoB,CAAC,KAAK,KAAA,UA4DlC;AAED;;;;GAIG;AACH,iBAAS,oBAAoB,CAAC,OAAO,KAAA,UAMpC;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,SAAS,KAAA,UAWjC;AAaD,OAAO,EACH,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EAClB,CAAC"}