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,302 @@
1
+ # Web Element Requests System
2
+
3
+ A syste```javascript
4
+ const webElementRequests = new WebElementRequests({
5
+ onNewRequest: (url, query, type, callback) => {
6
+ // Called whenever a new element request is added
7
+ console.log(`New ${type} request: ${query} for ${url}`);
8
+ }
9
+ });
10
+ ```questing and```javascript
11
+ // Add a CSS selector request
12
+ webElementRequests.addElementRequest(
13
+ 'https://example.com',
14
+ 'button[data-testid="submit"]',
15
+ 'selector',
16
+ (position) => console.log('Button at:', position.left, position.top)
17
+ );
18
+
19
+ // Add a text search request
20
+ webElementRequests.addElementRequest(
21
+ 'https://example.com',
22
+ 'Submit Form',
23
+ 'text',
24
+ (position) => console.log('Text found at:', position.left, position.top)
25
+ );
26
+
27
+ // Later, retrieve positions
28
+ const buttonPos = webElementRequests.getElementPosition('https://example.com', 'button[data-testid="submit"]');
29
+ const textPos = webElementRequests.getElementPosition('https://example.com', 'Submit Form');
30
+ ```
31
+ // type: 'selector' or 'text'oring web element positions across different URLs, allowing elements on different pages to request their screen positions with text content.
32
+
33
+ ## Features
34
+
35
+ - **Cross-URL Element Tracking**: Request positions for elements on any website
36
+ - **Dual Query Types**: Support for both CSS selectors and text searches
37
+ - **Automatic Position Updates**: Browser extension automatically sends position updates via WebSocket
38
+ - **Persistent Storage**: Store and retrieve position data with timestamps
39
+ - **Callback System**: Register callbacks for when positions are updated
40
+ - **REST API**: Full HTTP API for external access and management
41
+ - **Export/Import**: Backup and restore system state
42
+
43
+ ## Architecture
44
+
45
+ ### Components
46
+
47
+ 1. **WebElementRequests Class** (`web-element-requests.js`)
48
+ - Core logic for managing requests and storing results
49
+ - In-memory storage with Map structures
50
+ - Callback system for position updates
51
+
52
+ 2. **Server Integration** (`server.js`)
53
+ - WebSocket message handling for position updates
54
+ - REST API endpoints for external access
55
+ - Integration with existing Midjourney server
56
+
57
+ 3. **Browser Extension** (`injected.js`)
58
+ - Automatic position calculation using `getBoundingClientRect()`
59
+ - WebSocket communication for real-time updates
60
+ - Periodic checking for new requests (every 10 seconds)
61
+
62
+ ## Constructor Options
63
+
64
+ ```javascript
65
+ const webElementRequests = new WebElementRequests({
66
+ onNewRequest: (url, selector, callback) => {
67
+ // Called whenever a new element request is added
68
+ console.log(`New request: ${selector} for ${url}`);
69
+ }
70
+ });
71
+ ```
72
+
73
+ ## API Reference
74
+
75
+ ### WebElementRequests Class
76
+
77
+ #### Constructor
78
+ ```javascript
79
+ new WebElementRequests(options?)
80
+ ```
81
+ - `options.onNewRequest(url, selector, callback)` - Callback fired when new requests are added
82
+
83
+ #### Methods
84
+
85
+ ```javascript
86
+ ```javascript
87
+ // Add an element to request positions for
88
+ const result = webElementRequests.addElementRequest(url, selector, callback?)
89
+ // Returns: { new: true } if new request, { new: false } if already exists
90
+ ```
91
+
92
+ // Remove an element request
93
+ webElementRequests.removeElementRequest(url, selector)
94
+
95
+ // Get selectors that need positions for a URL
96
+ webElementRequests.getSelectorsForUrl(url)
97
+
98
+ // Store position results for a URL
99
+ webElementRequests.storePositions(url, positions)
100
+
101
+ // Get stored position for a specific element
102
+ webElementRequests.getElementPosition(url, selector)
103
+
104
+ // Get all positions for a URL
105
+ webElementRequests.getAllPositionsForUrl(url)
106
+
107
+ // Check if we have recent position data
108
+ webElementRequests.hasRecentPosition(url, selector, maxAge?)
109
+
110
+ // Get all URLs with pending requests
111
+ webElementRequests.getUrlsWithRequests()
112
+
113
+ // Clear data for a specific URL
114
+ webElementRequests.clearUrlData(url)
115
+
116
+ // Clear all stored data
117
+ webElementRequests.clearAllData()
118
+
119
+ // Get system statistics
120
+ webElementRequests.getStats()
121
+
122
+ // Export data for backup
123
+ webElementRequests.export()
124
+
125
+ // Import data from backup
126
+ webElementRequests.import(data)
127
+ ```
128
+
129
+ ### REST API Endpoints
130
+
131
+ All endpoints are prefixed with `/api/web-elements/`
132
+
133
+ #### POST `/request`
134
+ Add an element request
135
+ ```json
136
+ {
137
+ "url": "https://example.com",
138
+ "query": "button.submit",
139
+ "type": "selector",
140
+ "callback": "optional_callback_function"
141
+ }
142
+ ```
143
+
144
+ #### DELETE `/request`
145
+ Remove an element request
146
+ ```json
147
+ {
148
+ "url": "https://example.com",
149
+ "query": "button.submit",
150
+ "type": "selector"
151
+ }
152
+ ```
153
+
154
+ #### GET `/requests/:url`
155
+ Get selectors to request for a URL
156
+ - Returns: `{ url, selectors: [] }`
157
+
158
+ #### GET `/position?url=&query=&type=`
159
+ Get position data for an element
160
+ - Query params: `url`, `query`, `type` (optional, defaults to 'selector')
161
+
162
+ #### GET `/positions/:url`
163
+ Get all positions for a URL
164
+ - Returns: `{ url, positions: {} }`
165
+
166
+ #### GET `/stats`
167
+ Get system statistics
168
+ - Returns: `{ urlsWithRequests, urlsWithResults, totalRequests, totalResults }`
169
+
170
+ #### DELETE `/clear/:url`
171
+ Clear data for a URL
172
+
173
+ #### DELETE `/clear`
174
+ Clear all data
175
+
176
+ #### GET `/export`
177
+ Export all data
178
+
179
+ #### POST `/import`
180
+ Import data from export
181
+
182
+ #### GET `/has-recent?url=&query=&type=&maxAge=`
183
+ Check if recent position data exists
184
+ - Query params: `url`, `query`, `type` (optional), `maxAge` (optional)
185
+
186
+ ## Usage Examples
187
+
188
+ ### Basic Usage
189
+
190
+ ```javascript
191
+ const webElementRequests = new WebElementRequests({
192
+ onNewRequest: (url, selector, callback) => {
193
+ console.log(`New request for ${selector} on ${url}`);
194
+ // Handle new request logic here
195
+ }
196
+ });
197
+
198
+ // Add a request for an element
199
+ webElementRequests.addElementRequest(
200
+ 'https://www.midjourney.com/app/',
201
+ 'button[data-testid="generate-button"]',
202
+ (position, timestamp) => {
203
+ console.log('Button moved to:', position.left, position.top);
204
+ }
205
+ );
206
+
207
+ // Later, retrieve the position
208
+ const position = webElementRequests.getElementPosition(
209
+ 'https://www.midjourney.com/app/',
210
+ 'button[data-testid="generate-button"]'
211
+ );
212
+
213
+ if (position) {
214
+ console.log('Button is at:', position.left, position.top);
215
+ }
216
+ ```
217
+
218
+ ### API Usage
219
+
220
+ ```javascript
221
+ // Add request via API
222
+ await fetch('http://localhost:3000/api/web-elements/request', {
223
+ method: 'POST',
224
+ headers: { 'Content-Type': 'application/json' },
225
+ body: JSON.stringify({
226
+ url: 'https://example.com',
227
+ selector: '.my-element'
228
+ })
229
+ });
230
+
231
+ // Get position via API
232
+ const response = await fetch(
233
+ 'http://localhost:3000/api/web-elements/position?url=https://example.com&selector=.my-element'
234
+ );
235
+ const data = await response.json();
236
+ ```
237
+
238
+ ### Browser Extension Integration
239
+
240
+ The browser extension automatically:
241
+ 1. Checks for new requests every 10 seconds
242
+ 2. Calculates positions using `getBoundingClientRect()`
243
+ 3. Sends updates via WebSocket to the server
244
+ 4. Stores results for later retrieval
245
+
246
+ ## Position Data Format
247
+
248
+ Position objects include:
249
+ ```javascript
250
+ // For CSS selectors:
251
+ {
252
+ top: 100, // Y coordinate relative to screen
253
+ left: 200, // X coordinate relative to screen
254
+ width: 120, // Element width
255
+ height: 40, // Element height
256
+ innerText: "...", // Element text content
257
+ type: 'selector', // Query type
258
+ timestamp: 1234567890, // When position was captured
259
+ url: "https://example.com" // Source URL
260
+ }
261
+
262
+ // For text searches:
263
+ {
264
+ top: 100, // Y coordinate relative to screen
265
+ left: 200, // X coordinate relative to screen
266
+ width: 120, // Element width
267
+ height: 40, // Element height
268
+ innerText: "...", // Element text content
269
+ type: 'text', // Query type
270
+ matchCount: 3, // Number of elements containing the text
271
+ timestamp: 1234567890, // When position was captured
272
+ url: "https://example.com" // Source URL
273
+ }
274
+ ```
275
+
276
+ ## Testing
277
+
278
+ Run the test file to see examples:
279
+ ```bash
280
+ node test-web-element-requests.js
281
+ ```
282
+
283
+ This will demonstrate:
284
+ - Adding element requests
285
+ - Simulating position storage
286
+ - Checking stored data
287
+ - Export/import functionality
288
+ - API calls (requires server running)
289
+
290
+ ## Integration Notes
291
+
292
+ - **WebSocket Required**: The system relies on WebSocket connections between browser extension and server
293
+ - **Server Dependency**: Requires the Midjourney server to be running on port 3000
294
+ - **Browser Extension**: Must be loaded in the browser for automatic position updates
295
+ - **CORS**: API endpoints include CORS headers for cross-origin requests
296
+
297
+ ## Performance Considerations
298
+
299
+ - Position checks run every 10 seconds per page
300
+ - Data is stored in memory (consider persistence for production)
301
+ - WebSocket messages are efficient JSON payloads
302
+ - Automatic cleanup of old position data may be needed
@@ -0,0 +1,3 @@
1
+ declare function appendObjectToJsonArray(filePath: any, newObj: any): Promise<void>;
2
+ export { appendObjectToJsonArray };
3
+ //# sourceMappingURL=append.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"append.d.ts","sourceRoot":"","sources":["../src/append.ts"],"names":[],"mappings":"AASA,iBAAe,uBAAuB,CAAC,QAAQ,KAAA,EAAE,MAAM,KAAA,iBAkCtD;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
package/dist/append.js ADDED
@@ -0,0 +1,42 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { promisify } from 'util';
4
+ const readFile = promisify(fs.readFile);
5
+ const writeFile = promisify(fs.writeFile);
6
+ const rename = promisify(fs.rename);
7
+ const access = promisify(fs.access);
8
+ async function appendObjectToJsonArray(filePath, newObj) {
9
+ const dir = path.dirname(filePath);
10
+ // ensure directory exists
11
+ await fs.promises.mkdir(dir, { recursive: true });
12
+ let arr;
13
+ try {
14
+ // does the file exist?
15
+ await access(filePath, fs.constants.F_OK);
16
+ // read & parse
17
+ const json = await readFile(filePath, 'utf8');
18
+ arr = JSON.parse(json);
19
+ if (!Array.isArray(arr)) {
20
+ throw new Error('Data is not a JSON array');
21
+ }
22
+ }
23
+ catch (err) {
24
+ if (err.code === 'ENOENT') {
25
+ // file missing → start a new array
26
+ arr = [];
27
+ }
28
+ else {
29
+ throw err;
30
+ }
31
+ }
32
+ // append your object
33
+ arr.push(newObj);
34
+ // write out atomically
35
+ const tmpPath = filePath + '.tmp';
36
+ const pretty = JSON.stringify(arr, null, 2);
37
+ await writeFile(tmpPath, pretty, 'utf8');
38
+ await rename(tmpPath, filePath);
39
+ console.log(`✔️ Appended to ${filePath}`);
40
+ }
41
+ export { appendObjectToJsonArray };
42
+ //# sourceMappingURL=append.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"append.js","sourceRoot":"","sources":["../src/append.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACxC,MAAM,SAAS,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AACpC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAEpC,KAAK,UAAU,uBAAuB,CAAC,QAAQ,EAAE,MAAM;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,0BAA0B;IAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAElD,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACD,uBAAuB;QACvB,MAAM,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1C,eAAe;QACf,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxB,mCAAmC;YACnC,GAAG,GAAG,EAAE,CAAC;QACb,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;IAED,qBAAqB;IACrB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEjB,uBAAuB;IACvB,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5C,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAEhC,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function registerAudioRoutes(app: any, api: any, KEYS: any): void;
2
+ //# sourceMappingURL=audioRoutes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioRoutes.d.ts","sourceRoot":"","sources":["../src/audioRoutes.ts"],"names":[],"mappings":"AAsDA,wBAAgB,mBAAmB,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,IAAI,KAAA,QAmDjD"}
@@ -0,0 +1,97 @@
1
+ // generateAudio.js
2
+ import fs from 'fs';
3
+ import path from 'path';
4
+ import { fileURLToPath } from 'url';
5
+ import dotenv from 'dotenv';
6
+ // Load environment variables
7
+ dotenv.config();
8
+ // Get __dirname equivalent for ES modules
9
+ const __filename = fileURLToPath(import.meta.url);
10
+ const __dirname = path.dirname(__filename);
11
+ function fetchApiKey() {
12
+ // Ensure your environment variables are set in a .env file or your environment.
13
+ const ELEVENLABS_API_KEY = process.env.ELEVENLABS_API_KEY;
14
+ const ELEVENLABS_VOICE_ID = process.env.ELEVENLABS_VOICE_ID || 'TX3LPaxmHKxFdv7VOQHJ';
15
+ if (!ELEVENLABS_API_KEY) {
16
+ console.error("Please set ELEVENLABS_API_KEY in your environment.");
17
+ process.exit(1);
18
+ }
19
+ return ELEVENLABS_API_KEY;
20
+ }
21
+ function fetchDefaultVoiceId() {
22
+ return process.env.ELEVENLABS_VOICE_ID || 'TX3LPaxmHKxFdv7VOQHJ';
23
+ }
24
+ // Function to call the ElevenLabs API using fetch and generate audio from text.
25
+ async function generateAudio(text, voiceId) {
26
+ const url = `https://api.elevenlabs.io/v1/text-to-speech/${voiceId}`;
27
+ try {
28
+ const response = await fetch(url, {
29
+ method: 'POST',
30
+ headers: {
31
+ 'xi-api-key': fetchApiKey(),
32
+ 'Content-Type': 'application/json'
33
+ },
34
+ body: JSON.stringify({ text })
35
+ });
36
+ if (!response.ok) {
37
+ throw new Error(`API error: ${response.status} ${response.statusText}`);
38
+ }
39
+ // Get the response as an ArrayBuffer and convert to a Node.js Buffer.
40
+ const arrayBuffer = await response.arrayBuffer();
41
+ return Buffer.from(arrayBuffer);
42
+ }
43
+ catch (err) {
44
+ console.error("Error generating audio:", err.message);
45
+ return null;
46
+ }
47
+ }
48
+ export function registerAudioRoutes(app, api, KEYS) {
49
+ app.post('/generateAudio', async (_req, res) => {
50
+ _req.body = _req.body || {};
51
+ // Check for missing parameters.
52
+ if (!_req.body.text || !_req.body.filePath) {
53
+ return res.status(400).json({
54
+ ok: false,
55
+ error: 'Missing required parameters: text and filePath are required.'
56
+ });
57
+ }
58
+ // Ensure the text is a string and filePath is a valid path.
59
+ if (typeof _req.body.text !== 'string' || typeof _req.body.filePath !== 'string') {
60
+ return res.status(400).json({
61
+ ok: false,
62
+ error: 'Invalid parameters: text must be a string and filePath must be a valid string.'
63
+ });
64
+ }
65
+ // Ensure the audio folder exists.
66
+ if (!fs.existsSync(api.get(KEYS.audio_folder))) {
67
+ fs.mkdirSync(api.get(KEYS.audio_folder), { recursive: true });
68
+ }
69
+ // Generate audio data.
70
+ if (!_req.body.voiceId) {
71
+ _req.body.voiceId = fetchDefaultVoiceId(); // Default voice ID
72
+ }
73
+ if (typeof _req.body.voiceId !== 'string') {
74
+ return res.status(400).json({
75
+ ok: false,
76
+ error: 'Invalid voiceId: voiceId must be a string.'
77
+ });
78
+ }
79
+ if (!fs.existsSync(path.join(api.get(KEYS.audio_folder), _req.body.filePath))) {
80
+ fs.mkdirSync(path.dirname(path.join(api.get(KEYS.audio_folder), _req.body.filePath)), { recursive: true });
81
+ }
82
+ // Generate audio data using ElevenLabs API.
83
+ console.log(`Generating audio for text: "${_req.body.text}" with voiceId: "${_req.body.voiceId}"`);
84
+ if (!_req.body.text || !_req.body.filePath) {
85
+ return res.status(400).json({
86
+ ok: false,
87
+ error: 'Missing required parameters: text and filePath are required.'
88
+ });
89
+ }
90
+ let audioData = await generateAudio(_req.body.text, _req.body.voiceId || ELEVENLABS_VOICE_ID);
91
+ fs.writeFileSync(path.join(api.get(KEYS.audio_folder), _req.body.filePath), audioData);
92
+ res.json({
93
+ ok: true
94
+ });
95
+ });
96
+ }
97
+ //# sourceMappingURL=audioRoutes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audioRoutes.js","sourceRoot":"","sources":["../src/audioRoutes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Parallel version using worker threads.
3
+ * Uses one task per image, up to os.cpus().length workers.
4
+ */
5
+ export declare function augmentLevelParallel(levelPath: any, countPerImage: any, axis: any, rngSeed: number, onProgress: any): Promise<void>;
6
+ //# sourceMappingURL=augment-parallel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"augment-parallel.d.ts","sourceRoot":"","sources":["../src/augment-parallel.ts"],"names":[],"mappings":"AAuDA;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,KAAA,EAAE,aAAa,KAAA,EAAE,IAAI,KAAA,EAAE,OAAO,QAAa,EAAE,UAAU,KAAA,iBAqE1G"}
@@ -0,0 +1,128 @@
1
+ // augment-parallel.mjs
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import fs from 'node:fs/promises';
5
+ import { Worker } from 'node:worker_threads';
6
+ import { round } from './inference/augment_levels.js';
7
+ function createPool(workerFile, size) {
8
+ const idle = [];
9
+ const queue = [];
10
+ const all = new Set();
11
+ function attach(w) {
12
+ w._current = null;
13
+ w.on('message', (msg) => {
14
+ const cur = w._current;
15
+ w._current = null;
16
+ cur?.resolve(msg);
17
+ // next task?
18
+ const next = queue.shift();
19
+ if (next)
20
+ run(w, next);
21
+ else
22
+ idle.push(w);
23
+ });
24
+ w.on('error', (err) => {
25
+ const cur = w._current;
26
+ w._current = null;
27
+ cur?.reject(err);
28
+ const next = queue.shift();
29
+ if (next)
30
+ run(w, next);
31
+ else
32
+ idle.push(w);
33
+ });
34
+ w.on('exit', (code) => { all.delete(w); /* optionally respawn if needed */ });
35
+ }
36
+ function run(w, job) { w._current = job; w.postMessage(job.payload); }
37
+ for (let i = 0; i < size; i++) {
38
+ const w = new Worker(workerFile);
39
+ all.add(w);
40
+ attach(w);
41
+ idle.push(w);
42
+ }
43
+ return {
44
+ exec(payload) {
45
+ return new Promise((resolve, reject) => {
46
+ const w = idle.pop();
47
+ if (w)
48
+ run(w, { payload, resolve, reject });
49
+ else
50
+ queue.push({ payload, resolve, reject });
51
+ });
52
+ },
53
+ async destroy() {
54
+ await Promise.all([...all].map(w => w.terminate()));
55
+ }
56
+ };
57
+ }
58
+ /**
59
+ * Parallel version using worker threads.
60
+ * Uses one task per image, up to os.cpus().length workers.
61
+ */
62
+ export async function augmentLevelParallel(levelPath, countPerImage, axis, rngSeed = Date.now(), onProgress) {
63
+ const imgsTrainDir = path.join(levelPath, 'images', 'train');
64
+ const lblsTrainDir = path.join(levelPath, 'labels', 'train');
65
+ const imgsValDir = path.join(levelPath, 'images', 'val');
66
+ const lblsValDir = path.join(levelPath, 'labels', 'val');
67
+ // Ensure directories exist (workers will write into them)
68
+ await Promise.all([
69
+ fs.mkdir(imgsTrainDir, { recursive: true }),
70
+ fs.mkdir(lblsTrainDir, { recursive: true }),
71
+ fs.mkdir(imgsValDir, { recursive: true }),
72
+ fs.mkdir(lblsValDir, { recursive: true }),
73
+ ]);
74
+ let allFiles;
75
+ try {
76
+ allFiles = await fs.readdir(imgsTrainDir);
77
+ }
78
+ catch {
79
+ console.warn(`Could not read directory ${imgsTrainDir}`);
80
+ return;
81
+ }
82
+ const imageFiles = allFiles.filter(n => /\.(png|jpg|jpeg)$/i.test(n)).sort();
83
+ // Filter to only those having labels
84
+ const hasLabel = await Promise.all(imageFiles.map(async (fname) => {
85
+ const base = fname.replace(/\.(png|jpg|jpeg)$/i, '');
86
+ try {
87
+ await fs.access(path.join(lblsTrainDir, base + '.txt'));
88
+ return true;
89
+ }
90
+ catch {
91
+ return false;
92
+ }
93
+ }));
94
+ const tasks = imageFiles.filter((_, i) => hasLabel[i]);
95
+ const levelName = path.basename(levelPath);
96
+ const poolSize = Math.max(1, Math.min(os.cpus().length, tasks.length));
97
+ const pool = createPool(new URL('./augment-worker.js', import.meta.url), poolSize);
98
+ let completed = 0;
99
+ try {
100
+ await Promise.all(tasks.map(async (fname, idx) => {
101
+ const result = await pool.exec({
102
+ levelPath, fname, axis, countPerImage, rngSeed: (rngSeed + idx) >>> 0,
103
+ imgsTrainDir, lblsTrainDir, imgsValDir, lblsValDir
104
+ });
105
+ completed++;
106
+ if (result.ok && !result.skipped) {
107
+ console.log(`[${levelName}] Augmented '${fname}' × ${countPerImage}`);
108
+ }
109
+ if (onProgress) {
110
+ await onProgress({
111
+ type: 'image_processed',
112
+ level: levelName,
113
+ filename: fname,
114
+ percentage: round((completed) / tasks.length * 100, 2),
115
+ augmentationCount: countPerImage,
116
+ message: `[${levelName}] Augmented '${fname}' × ${countPerImage}`
117
+ });
118
+ }
119
+ if (!result.ok) {
120
+ console.warn(`[${levelName}] Failed '${fname}': ${result.error}`);
121
+ }
122
+ }));
123
+ }
124
+ finally {
125
+ await pool.destroy();
126
+ }
127
+ }
128
+ //# sourceMappingURL=augment-parallel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"augment-parallel.js","sourceRoot":"","sources":["../src/augment-parallel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=augment-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"augment-worker.d.ts","sourceRoot":"","sources":["../src/augment-worker.ts"],"names":[],"mappings":""}