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.
- package/README.md +64 -0
- package/dist/Dockerfile +86 -0
- package/dist/GPU_DEPLOYMENT_README.md +324 -0
- package/dist/OPS_AGENT_README.md +174 -0
- package/dist/README-H100-VM.md +192 -0
- package/dist/README-worker-pools.md +231 -0
- package/dist/README.md +8 -0
- package/dist/WEB-ELEMENT-REQUESTS-README.md +302 -0
- package/dist/append.d.ts +3 -0
- package/dist/append.d.ts.map +1 -0
- package/dist/append.js +42 -0
- package/dist/append.js.map +1 -0
- package/dist/audioRoutes.d.ts +2 -0
- package/dist/audioRoutes.d.ts.map +1 -0
- package/dist/audioRoutes.js +97 -0
- package/dist/audioRoutes.js.map +1 -0
- package/dist/augment-parallel.d.ts +6 -0
- package/dist/augment-parallel.d.ts.map +1 -0
- package/dist/augment-parallel.js +128 -0
- package/dist/augment-parallel.js.map +1 -0
- package/dist/augment-worker.d.ts +2 -0
- package/dist/augment-worker.d.ts.map +1 -0
- package/dist/augment-worker.js +100 -0
- package/dist/augment-worker.js.map +1 -0
- package/dist/browerRoutes.d.ts +2 -0
- package/dist/browerRoutes.d.ts.map +1 -0
- package/dist/browerRoutes.js +323 -0
- package/dist/browerRoutes.js.map +1 -0
- package/dist/browser-utils/utils.d.ts +6 -0
- package/dist/browser-utils/utils.d.ts.map +1 -0
- package/dist/browser-utils/utils.js +133 -0
- package/dist/browser-utils/utils.js.map +1 -0
- package/dist/capture_training_data_endpoints.d.ts +158 -0
- package/dist/capture_training_data_endpoints.d.ts.map +1 -0
- package/dist/capture_training_data_endpoints.js +1812 -0
- package/dist/capture_training_data_endpoints.js.map +1 -0
- package/dist/config.json +28 -0
- package/dist/configEndpoints.d.ts +2 -0
- package/dist/configEndpoints.d.ts.map +1 -0
- package/dist/configEndpoints.js +459 -0
- package/dist/configEndpoints.js.map +1 -0
- package/dist/constants.d.ts +109 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +110 -0
- package/dist/constants.js.map +1 -0
- package/dist/docs/workflow_nodes.md +257 -0
- package/dist/download.d.ts +11 -0
- package/dist/download.d.ts.map +1 -0
- package/dist/download.js +31 -0
- package/dist/download.js.map +1 -0
- package/dist/download.py +61 -0
- package/dist/ecosystem.config.json +63 -0
- package/dist/email-body-extractor.d.ts +20 -0
- package/dist/email-body-extractor.d.ts.map +1 -0
- package/dist/email-body-extractor.js +103 -0
- package/dist/email-body-extractor.js.map +1 -0
- package/dist/express_util.d.ts +2 -0
- package/dist/express_util.d.ts.map +1 -0
- package/dist/express_util.js +30 -0
- package/dist/express_util.js.map +1 -0
- package/dist/extension/background.d.ts +2 -0
- package/dist/extension/background.d.ts.map +1 -0
- package/dist/extension/background.js +268 -0
- package/dist/extension/background.js.map +1 -0
- package/dist/extension/manifest.json +19 -0
- package/dist/extensionUtils.d.ts +2 -0
- package/dist/extensionUtils.d.ts.map +1 -0
- package/dist/extensionUtils.js +48 -0
- package/dist/extensionUtils.js.map +1 -0
- package/dist/filter-gmail-poller/README.md +320 -0
- package/dist/filter-gmail-poller/demo.d.ts +2 -0
- package/dist/filter-gmail-poller/demo.d.ts.map +1 -0
- package/dist/filter-gmail-poller/demo.js +79 -0
- package/dist/filter-gmail-poller/demo.js.map +1 -0
- package/dist/filter-gmail-poller/example-existing-app.d.ts +2 -0
- package/dist/filter-gmail-poller/example-existing-app.d.ts.map +1 -0
- package/dist/filter-gmail-poller/example-existing-app.js +72 -0
- package/dist/filter-gmail-poller/example-existing-app.js.map +1 -0
- package/dist/filter-gmail-poller/filter-gmail-poller.d.ts +160 -0
- package/dist/filter-gmail-poller/filter-gmail-poller.d.ts.map +1 -0
- package/dist/filter-gmail-poller/filter-gmail-poller.js +1048 -0
- package/dist/filter-gmail-poller/filter-gmail-poller.js.map +1 -0
- package/dist/filter-gmail-poller/index.d.ts +3 -0
- package/dist/filter-gmail-poller/index.d.ts.map +1 -0
- package/dist/filter-gmail-poller/index.js +18 -0
- package/dist/filter-gmail-poller/index.js.map +1 -0
- package/dist/filter-gmail-poller/manual-test.d.ts +2 -0
- package/dist/filter-gmail-poller/manual-test.d.ts.map +1 -0
- package/dist/filter-gmail-poller/manual-test.js +70 -0
- package/dist/filter-gmail-poller/manual-test.js.map +1 -0
- package/dist/filter-gmail-poller/poller-prompts.d.ts +12 -0
- package/dist/filter-gmail-poller/poller-prompts.d.ts.map +1 -0
- package/dist/filter-gmail-poller/poller-prompts.js +330 -0
- package/dist/filter-gmail-poller/poller-prompts.js.map +1 -0
- package/dist/filter-gmail-poller/test.js +69 -0
- package/dist/flowframe-auto-firebase-adminsdk.json +13 -0
- package/dist/gmail-poller/README-microsoft-email-poller.md +203 -0
- package/dist/gmail-poller/README.md +129 -0
- package/dist/gmail-poller/example.d.ts +5 -0
- package/dist/gmail-poller/example.d.ts.map +1 -0
- package/dist/gmail-poller/example.js +83 -0
- package/dist/gmail-poller/example.js.map +1 -0
- package/dist/gmail-poller/gmail-poller.d.ts +82 -0
- package/dist/gmail-poller/gmail-poller.d.ts.map +1 -0
- package/dist/gmail-poller/gmail-poller.js +455 -0
- package/dist/gmail-poller/gmail-poller.js.map +1 -0
- package/dist/gmail-poller/manual-test.d.ts +2 -0
- package/dist/gmail-poller/manual-test.d.ts.map +1 -0
- package/dist/gmail-poller/manual-test.js +37 -0
- package/dist/gmail-poller/manual-test.js.map +1 -0
- package/dist/gmail-poller/microsoft-email-example.d.ts +8 -0
- package/dist/gmail-poller/microsoft-email-example.d.ts.map +1 -0
- package/dist/gmail-poller/microsoft-email-example.js +58 -0
- package/dist/gmail-poller/microsoft-email-example.js.map +1 -0
- package/dist/gmail-poller/microsoft-email-poller.d.ts +73 -0
- package/dist/gmail-poller/microsoft-email-poller.d.ts.map +1 -0
- package/dist/gmail-poller/microsoft-email-poller.js +346 -0
- package/dist/gmail-poller/microsoft-email-poller.js.map +1 -0
- package/dist/gmail-poller/setup-auth.d.ts +3 -0
- package/dist/gmail-poller/setup-auth.d.ts.map +1 -0
- package/dist/gmail-poller/setup-auth.js +36 -0
- package/dist/gmail-poller/setup-auth.js.map +1 -0
- package/dist/gmail-poller/test.js +36 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/inference/augment_levels.d.ts +2 -0
- package/dist/inference/augment_levels.d.ts.map +1 -0
- package/dist/inference/augment_levels.js +1 -0
- package/dist/inference/augment_levels.js.map +1 -0
- package/dist/inference/capture-overlay.d.ts +13 -0
- package/dist/inference/capture-overlay.d.ts.map +1 -0
- package/dist/inference/capture-overlay.js +355 -0
- package/dist/inference/capture-overlay.js.map +1 -0
- package/dist/inference/capturescreenshot.d.ts +12 -0
- package/dist/inference/capturescreenshot.d.ts.map +1 -0
- package/dist/inference/capturescreenshot.js +157 -0
- package/dist/inference/capturescreenshot.js.map +1 -0
- package/dist/jsonHandler.d.ts +37 -0
- package/dist/jsonHandler.d.ts.map +1 -0
- package/dist/jsonHandler.js +191 -0
- package/dist/jsonHandler.js.map +1 -0
- package/dist/localStorage.json +11 -0
- package/dist/media_data_endpoints.d.ts +2 -0
- package/dist/media_data_endpoints.d.ts.map +1 -0
- package/dist/media_data_endpoints.js +102 -0
- package/dist/media_data_endpoints.js.map +1 -0
- package/dist/operations/blender-ops.d.ts +4 -0
- package/dist/operations/blender-ops.d.ts.map +1 -0
- package/dist/operations/blender-ops.js +55 -0
- package/dist/operations/blender-ops.js.map +1 -0
- package/dist/operations.d.ts +34 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +1514 -0
- package/dist/operations.js.map +1 -0
- package/dist/pdfRoutes.d.ts +2 -0
- package/dist/pdfRoutes.d.ts.map +1 -0
- package/dist/pdfRoutes.js +56 -0
- package/dist/pdfRoutes.js.map +1 -0
- package/dist/peers.d.ts +9 -0
- package/dist/peers.d.ts.map +1 -0
- package/dist/peers.js +70 -0
- package/dist/peers.js.map +1 -0
- package/dist/playparser.d.ts +2 -0
- package/dist/playparser.d.ts.map +1 -0
- package/dist/playparser.js +281 -0
- package/dist/playparser.js.map +1 -0
- package/dist/process.d.ts +4 -0
- package/dist/process.d.ts.map +1 -0
- package/dist/process.js +375 -0
- package/dist/process.js.map +1 -0
- package/dist/promptRoutes.d.ts +7 -0
- package/dist/promptRoutes.d.ts.map +1 -0
- package/dist/promptRoutes.js +68 -0
- package/dist/promptRoutes.js.map +1 -0
- package/dist/queueManager.d.ts +23 -0
- package/dist/queueManager.d.ts.map +1 -0
- package/dist/queueManager.js +96 -0
- package/dist/queueManager.js.map +1 -0
- package/dist/run-flow.d.ts +8 -0
- package/dist/run-flow.d.ts.map +1 -0
- package/dist/run-flow.js +220 -0
- package/dist/run-flow.js.map +1 -0
- package/dist/scraper.d.ts +2 -0
- package/dist/scraper.d.ts.map +1 -0
- package/dist/scraper.js +75 -0
- package/dist/scraper.js.map +1 -0
- package/dist/scraper_endpoints.d.ts +2 -0
- package/dist/scraper_endpoints.d.ts.map +1 -0
- package/dist/scraper_endpoints.js +40 -0
- package/dist/scraper_endpoints.js.map +1 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +528 -0
- package/dist/server.js.map +1 -0
- package/dist/services/ModelContext.d.ts +7 -0
- package/dist/services/ModelContext.d.ts.map +1 -0
- package/dist/services/ModelContext.js +7 -0
- package/dist/services/ModelContext.js.map +1 -0
- package/dist/services/agenticUiPlanner.d.ts +27 -0
- package/dist/services/agenticUiPlanner.d.ts.map +1 -0
- package/dist/services/agenticUiPlanner.js +161 -0
- package/dist/services/agenticUiPlanner.js.map +1 -0
- package/dist/services/apiKeyService.d.ts +3 -0
- package/dist/services/apiKeyService.d.ts.map +1 -0
- package/dist/services/apiKeyService.js +7 -0
- package/dist/services/apiKeyService.js.map +1 -0
- package/dist/services/audioService.d.ts +10 -0
- package/dist/services/audioService.d.ts.map +1 -0
- package/dist/services/audioService.js +140 -0
- package/dist/services/audioService.js.map +1 -0
- package/dist/services/autoPromptOptimizer.d.ts +44 -0
- package/dist/services/autoPromptOptimizer.d.ts.map +1 -0
- package/dist/services/autoPromptOptimizer.js +344 -0
- package/dist/services/autoPromptOptimizer.js.map +1 -0
- package/dist/services/autoPromptOptimizer.manual-test.d.ts +2 -0
- package/dist/services/autoPromptOptimizer.manual-test.d.ts.map +1 -0
- package/dist/services/autoPromptOptimizer.manual-test.js +27 -0
- package/dist/services/autoPromptOptimizer.manual-test.js.map +1 -0
- package/dist/services/chainExecutor.d.ts +26 -0
- package/dist/services/chainExecutor.d.ts.map +1 -0
- package/dist/services/chainExecutor.js +399 -0
- package/dist/services/chainExecutor.js.map +1 -0
- package/dist/services/classifyImageQuestion.d.ts +55 -0
- package/dist/services/classifyImageQuestion.d.ts.map +1 -0
- package/dist/services/classifyImageQuestion.js +428 -0
- package/dist/services/classifyImageQuestion.js.map +1 -0
- package/dist/services/configuration/executor.d.ts +3 -0
- package/dist/services/configuration/executor.d.ts.map +1 -0
- package/dist/services/configuration/executor.js +795 -0
- package/dist/services/configuration/executor.js.map +1 -0
- package/dist/services/error.d.ts +13 -0
- package/dist/services/error.d.ts.map +1 -0
- package/dist/services/error.js +34 -0
- package/dist/services/error.js.map +1 -0
- package/dist/services/executor.d.ts +11 -0
- package/dist/services/executor.d.ts.map +1 -0
- package/dist/services/executor.js +1587 -0
- package/dist/services/executor.js.map +1 -0
- package/dist/services/extractPdf.d.ts +26 -0
- package/dist/services/extractPdf.d.ts.map +1 -0
- package/dist/services/extractPdf.js +256 -0
- package/dist/services/extractPdf.js.map +1 -0
- package/dist/services/generateJsTransformFromPrompt.d.ts +11 -0
- package/dist/services/generateJsTransformFromPrompt.d.ts.map +1 -0
- package/dist/services/generateJsTransformFromPrompt.js +328 -0
- package/dist/services/generateJsTransformFromPrompt.js.map +1 -0
- package/dist/services/localizeFirebaseMedia.d.ts +20 -0
- package/dist/services/localizeFirebaseMedia.d.ts.map +1 -0
- package/dist/services/localizeFirebaseMedia.js +135 -0
- package/dist/services/localizeFirebaseMedia.js.map +1 -0
- package/dist/services/polyfill_canvas.d.ts +2 -0
- package/dist/services/polyfill_canvas.d.ts.map +1 -0
- package/dist/services/polyfill_canvas.js +19 -0
- package/dist/services/polyfill_canvas.js.map +1 -0
- package/dist/services/promptRoutes.d.ts +7 -0
- package/dist/services/promptRoutes.d.ts.map +1 -0
- package/dist/services/promptRoutes.js +70 -0
- package/dist/services/promptRoutes.js.map +1 -0
- package/dist/services/runPrompt.d.ts +29 -0
- package/dist/services/runPrompt.d.ts.map +1 -0
- package/dist/services/runPrompt.js +232 -0
- package/dist/services/runPrompt.js.map +1 -0
- package/dist/services/schemaInference.d.ts +2 -0
- package/dist/services/schemaInference.d.ts.map +1 -0
- package/dist/services/schemaInference.js +17 -0
- package/dist/services/schemaInference.js.map +1 -0
- package/dist/services/self-learning/api.d.ts +2 -0
- package/dist/services/self-learning/api.d.ts.map +1 -0
- package/dist/services/self-learning/api.js +84 -0
- package/dist/services/self-learning/api.js.map +1 -0
- package/dist/services/self-learning/autolearn.d.ts +23 -0
- package/dist/services/self-learning/autolearn.d.ts.map +1 -0
- package/dist/services/self-learning/autolearn.js +308 -0
- package/dist/services/self-learning/autolearn.js.map +1 -0
- package/dist/services/self-learning/discover.d.ts +11 -0
- package/dist/services/self-learning/discover.d.ts.map +1 -0
- package/dist/services/self-learning/discover.js +446 -0
- package/dist/services/self-learning/discover.js.map +1 -0
- package/dist/services/self-learning/image.d.ts +10 -0
- package/dist/services/self-learning/image.d.ts.map +1 -0
- package/dist/services/self-learning/image.js +38 -0
- package/dist/services/self-learning/image.js.map +1 -0
- package/dist/services/self-learning/injest.d.ts +25 -0
- package/dist/services/self-learning/injest.d.ts.map +1 -0
- package/dist/services/self-learning/injest.js +110 -0
- package/dist/services/self-learning/injest.js.map +1 -0
- package/dist/services/self-learning/learn.d.ts +2 -0
- package/dist/services/self-learning/learn.d.ts.map +1 -0
- package/dist/services/self-learning/learn.js +145 -0
- package/dist/services/self-learning/learn.js.map +1 -0
- package/dist/services/self-learning/matcher.d.ts +2 -0
- package/dist/services/self-learning/matcher.d.ts.map +1 -0
- package/dist/services/self-learning/matcher.js +38 -0
- package/dist/services/self-learning/matcher.js.map +1 -0
- package/dist/services/self-learning/openai.d.ts +8 -0
- package/dist/services/self-learning/openai.d.ts.map +1 -0
- package/dist/services/self-learning/openai.js +97 -0
- package/dist/services/self-learning/openai.js.map +1 -0
- package/dist/services/self-learning/phash.d.ts +5 -0
- package/dist/services/self-learning/phash.d.ts.map +1 -0
- package/dist/services/self-learning/phash.js +68 -0
- package/dist/services/self-learning/phash.js.map +1 -0
- package/dist/services/self-learning/recognize.d.ts +17 -0
- package/dist/services/self-learning/recognize.d.ts.map +1 -0
- package/dist/services/self-learning/recognize.js +116 -0
- package/dist/services/self-learning/recognize.js.map +1 -0
- package/dist/services/self-learning/record_transition.d.ts +8 -0
- package/dist/services/self-learning/record_transition.d.ts.map +1 -0
- package/dist/services/self-learning/record_transition.js +20 -0
- package/dist/services/self-learning/record_transition.js.map +1 -0
- package/dist/services/self-learning/registry.d.ts +4 -0
- package/dist/services/self-learning/registry.d.ts.map +1 -0
- package/dist/services/self-learning/registry.js +19 -0
- package/dist/services/self-learning/registry.js.map +1 -0
- package/dist/services/self-learning/schema.d.ts +114 -0
- package/dist/services/self-learning/schema.d.ts.map +1 -0
- package/dist/services/self-learning/schema.js +70 -0
- package/dist/services/self-learning/schema.js.map +1 -0
- package/dist/services/self-learning/schemaStrictify.d.ts +2 -0
- package/dist/services/self-learning/schemaStrictify.d.ts.map +1 -0
- package/dist/services/self-learning/schemaStrictify.js +34 -0
- package/dist/services/self-learning/schemaStrictify.js.map +1 -0
- package/dist/services/self-learning/transition_graph.d.ts +6 -0
- package/dist/services/self-learning/transition_graph.d.ts.map +1 -0
- package/dist/services/self-learning/transition_graph.js +83 -0
- package/dist/services/self-learning/transition_graph.js.map +1 -0
- package/dist/services/self-learning/transition_log.d.ts +3 -0
- package/dist/services/self-learning/transition_log.d.ts.map +1 -0
- package/dist/services/self-learning/transition_log.js +42 -0
- package/dist/services/self-learning/transition_log.js.map +1 -0
- package/dist/services/self-learning/util.d.ts +3 -0
- package/dist/services/self-learning/util.d.ts.map +1 -0
- package/dist/services/self-learning/util.js +11 -0
- package/dist/services/self-learning/util.js.map +1 -0
- package/dist/services/stepByStepAiPlanner.d.ts +39 -0
- package/dist/services/stepByStepAiPlanner.d.ts.map +1 -0
- package/dist/services/stepByStepAiPlanner.js +379 -0
- package/dist/services/stepByStepAiPlanner.js.map +1 -0
- package/dist/services/test-genjs.js +39 -0
- package/dist/services/test-genjs.manual-test.d.ts +2 -0
- package/dist/services/test-genjs.manual-test.d.ts.map +1 -0
- package/dist/services/test-genjs.manual-test.js +40 -0
- package/dist/services/test-genjs.manual-test.js.map +1 -0
- package/dist/services/uiMapPathFinder.d.ts +13 -0
- package/dist/services/uiMapPathFinder.d.ts.map +1 -0
- package/dist/services/uiMapPathFinder.js +79 -0
- package/dist/services/uiMapPathFinder.js.map +1 -0
- package/dist/services/uiMapService.d.ts +26 -0
- package/dist/services/uiMapService.d.ts.map +1 -0
- package/dist/services/uiMapService.js +275 -0
- package/dist/services/uiMapService.js.map +1 -0
- package/dist/services/uiPlanner.d.ts +54 -0
- package/dist/services/uiPlanner.d.ts.map +1 -0
- package/dist/services/uiPlanner.js +558 -0
- package/dist/services/uiPlanner.js.map +1 -0
- package/dist/services/utilityFunctions.d.ts +80 -0
- package/dist/services/utilityFunctions.d.ts.map +1 -0
- package/dist/services/utilityFunctions.js +352 -0
- package/dist/services/utilityFunctions.js.map +1 -0
- package/dist/services/variableGenerator.d.ts +39 -0
- package/dist/services/variableGenerator.d.ts.map +1 -0
- package/dist/services/variableGenerator.js +157 -0
- package/dist/services/variableGenerator.js.map +1 -0
- package/dist/services/workflow/build-workflow.d.ts +49 -0
- package/dist/services/workflow/build-workflow.d.ts.map +1 -0
- package/dist/services/workflow/build-workflow.js +119 -0
- package/dist/services/workflow/build-workflow.js.map +1 -0
- package/dist/standardRoutes.d.ts +2 -0
- package/dist/standardRoutes.d.ts.map +1 -0
- package/dist/standardRoutes.js +1495 -0
- package/dist/standardRoutes.js.map +1 -0
- package/dist/stepWorkflowRoutes.d.ts +2 -0
- package/dist/stepWorkflowRoutes.d.ts.map +1 -0
- package/dist/stepWorkflowRoutes.js +1007 -0
- package/dist/stepWorkflowRoutes.js.map +1 -0
- package/dist/storage.d.ts +19 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.docker.json +61 -0
- package/dist/storage.js +131 -0
- package/dist/storage.js.map +1 -0
- package/dist/storage.json +78 -0
- package/dist/storage_cache/boxes.json +48 -0
- package/dist/storage_cache/suno_state.json +3 -0
- package/dist/suno_download.d.ts +11 -0
- package/dist/suno_download.d.ts.map +1 -0
- package/dist/suno_download.js +33 -0
- package/dist/suno_download.js.map +1 -0
- package/dist/suno_download.py +119 -0
- package/dist/test-web-element-requests.d.ts +6 -0
- package/dist/test-web-element-requests.d.ts.map +1 -0
- package/dist/test-web-element-requests.js +114 -0
- package/dist/test-web-element-requests.js.map +1 -0
- package/dist/test_pdf_render.d.ts +2 -0
- package/dist/test_pdf_render.d.ts.map +1 -0
- package/dist/test_pdf_render.js +50 -0
- package/dist/test_pdf_render.js.map +1 -0
- package/dist/training_data_viewer_endpoints.d.ts +2 -0
- package/dist/training_data_viewer_endpoints.d.ts.map +1 -0
- package/dist/training_data_viewer_endpoints.js +141 -0
- package/dist/training_data_viewer_endpoints.js.map +1 -0
- package/dist/utils.d.ts +353 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +1517 -0
- package/dist/utils.js.map +1 -0
- package/dist/vm-h100.env.template +55 -0
- package/dist/web-element-requests.d.ts +102 -0
- package/dist/web-element-requests.d.ts.map +1 -0
- package/dist/web-element-requests.js +278 -0
- package/dist/web-element-requests.js.map +1 -0
- package/dist/workflowRoutes.d.ts +2 -0
- package/dist/workflowRoutes.d.ts.map +1 -0
- package/dist/workflowRoutes.js +441 -0
- package/dist/workflowRoutes.js.map +1 -0
- package/package.json +109 -0
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
// Add this above the executeFlow function in executor.js:
|
|
2
|
+
export const deepMerge = (target, source) => {
|
|
3
|
+
const result = { ...target };
|
|
4
|
+
for (const key in source) {
|
|
5
|
+
if (source[key] && typeof source[key] === 'object' && !Array.isArray(source[key])) {
|
|
6
|
+
result[key] = deepMerge(result[key] || {}, source[key]);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
result[key] = source[key];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Extracts JSON from a string or returns the object as-is
|
|
16
|
+
* @param {string|object} input - The input to process
|
|
17
|
+
* @returns {object|null} - The parsed JSON object or null if parsing fails
|
|
18
|
+
*/
|
|
19
|
+
export function extractJSON(input) {
|
|
20
|
+
// If input is already an object, return it as-is
|
|
21
|
+
if (typeof input === 'object' && input !== null) {
|
|
22
|
+
return input;
|
|
23
|
+
}
|
|
24
|
+
// If input is not a string, try to convert it
|
|
25
|
+
if (typeof input !== 'string') {
|
|
26
|
+
try {
|
|
27
|
+
return JSON.parse(String(input));
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.warn('Failed to parse non-string input:', error.message);
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
// Clean the string and extract JSON
|
|
35
|
+
try {
|
|
36
|
+
const cleaned = cleanJSONString(input);
|
|
37
|
+
return JSON.parse(cleaned);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.warn('Failed to extract JSON:', error.message);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Cleans a string to extract pure JSON
|
|
46
|
+
* @param {string} str - The string to clean
|
|
47
|
+
* @returns {string} - The cleaned JSON string
|
|
48
|
+
*/
|
|
49
|
+
function cleanJSONString(str, options) {
|
|
50
|
+
// Remove leading/trailing whitespace
|
|
51
|
+
str = str.trim();
|
|
52
|
+
// Pattern to match JSON wrapped in markdown code blocks
|
|
53
|
+
const markdownPatterns = [
|
|
54
|
+
/```json\s*\n?([\s\S]*?)\n?\s*```/i, // ```json ... ```
|
|
55
|
+
/```\s*\n?([\s\S]*?)\n?\s*```/i, // ``` ... ```
|
|
56
|
+
/`([^`]+)`/ // `...`
|
|
57
|
+
];
|
|
58
|
+
// Try to extract from markdown patterns
|
|
59
|
+
for (const pattern of markdownPatterns) {
|
|
60
|
+
const match = str.match(pattern);
|
|
61
|
+
if (match && match[1]) {
|
|
62
|
+
str = match[1].trim();
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Remove common text wrappers
|
|
67
|
+
const textWrappers = [
|
|
68
|
+
/^Here's the JSON:\s*/i,
|
|
69
|
+
/^JSON:\s*/i,
|
|
70
|
+
/^Response:\s*/i,
|
|
71
|
+
/^Result:\s*/i,
|
|
72
|
+
/^Output:\s*/i,
|
|
73
|
+
/\s*$/ // trailing whitespace
|
|
74
|
+
];
|
|
75
|
+
for (const wrapper of textWrappers) {
|
|
76
|
+
str = str.replace(wrapper, '');
|
|
77
|
+
}
|
|
78
|
+
// Find JSON object boundaries
|
|
79
|
+
const jsonStart = Math.max(str.indexOf('{'), str.indexOf('['));
|
|
80
|
+
const jsonEnd = Math.max(str.lastIndexOf('}'), str.lastIndexOf(']'));
|
|
81
|
+
if (jsonStart !== -1 && jsonEnd !== -1 && jsonEnd > jsonStart) {
|
|
82
|
+
str = str.substring(jsonStart, jsonEnd + 1);
|
|
83
|
+
}
|
|
84
|
+
// Clean up escaped characters and fix common issues
|
|
85
|
+
str = str
|
|
86
|
+
.replace(/\\\"/g, '"') // Fix escaped quotes
|
|
87
|
+
.replace(/\\\n/g, '\\n') // Fix escaped newlines
|
|
88
|
+
.replace(/\\\t/g, '\\t') // Fix escaped tabs
|
|
89
|
+
.replace(/\\\r/g, '\\r') // Fix escaped carriage returns
|
|
90
|
+
.replace(/\n\s*\n/g, '\\n') // Convert actual newlines to escaped
|
|
91
|
+
.replace(/\r\n/g, '\\n') // Convert CRLF to escaped newlines
|
|
92
|
+
.replace(/\r/g, '\\n') // Convert CR to escaped newlines
|
|
93
|
+
.replace(/\t/g, '\\t'); // Convert tabs to escaped tabs
|
|
94
|
+
return str.trim();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Safe JSON extraction with fallback options
|
|
98
|
+
* @param {string|object} input - The input to process
|
|
99
|
+
* @param {object} options - Options for extraction
|
|
100
|
+
* @returns {object} - The result object
|
|
101
|
+
*/
|
|
102
|
+
function safeExtractJSON(input, options = {}) {
|
|
103
|
+
const { returnOriginalOnFail = false, defaultValue = null, throwOnError = false } = options;
|
|
104
|
+
try {
|
|
105
|
+
const result = extractJSON(input);
|
|
106
|
+
if (result !== null) {
|
|
107
|
+
return result;
|
|
108
|
+
}
|
|
109
|
+
// If extraction failed, handle based on options
|
|
110
|
+
if (returnOriginalOnFail) {
|
|
111
|
+
return input;
|
|
112
|
+
}
|
|
113
|
+
if (throwOnError) {
|
|
114
|
+
throw new Error('Failed to extract valid JSON');
|
|
115
|
+
}
|
|
116
|
+
return defaultValue;
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
if (throwOnError) {
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
console.warn('JSON extraction failed:', error?.message || error);
|
|
123
|
+
if (returnOriginalOnFail) {
|
|
124
|
+
return input;
|
|
125
|
+
}
|
|
126
|
+
return defaultValue;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Validates if a string contains valid JSON
|
|
131
|
+
* @param {string} str - The string to validate
|
|
132
|
+
* @returns {boolean} - True if contains valid JSON
|
|
133
|
+
*/
|
|
134
|
+
function containsJSON(str, options) {
|
|
135
|
+
if (typeof str !== 'string') {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
try {
|
|
139
|
+
const cleaned = cleanJSONString(str);
|
|
140
|
+
JSON.parse(cleaned);
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Extracts multiple JSON objects from a string
|
|
149
|
+
* @param {string} str - The string to process
|
|
150
|
+
* @returns {array} - Array of JSON objects found
|
|
151
|
+
*/
|
|
152
|
+
function extractMultipleJSON(str) {
|
|
153
|
+
if (typeof str !== 'string') {
|
|
154
|
+
return [];
|
|
155
|
+
}
|
|
156
|
+
const results = [];
|
|
157
|
+
const jsonObjects = [];
|
|
158
|
+
// Find all potential JSON objects/arrays
|
|
159
|
+
let depth = 0;
|
|
160
|
+
let start = -1;
|
|
161
|
+
let inString = false;
|
|
162
|
+
let escaped = false;
|
|
163
|
+
for (let i = 0; i < str.length; i++) {
|
|
164
|
+
const char = str[i];
|
|
165
|
+
if (escaped) {
|
|
166
|
+
escaped = false;
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
if (char === '\\') {
|
|
170
|
+
escaped = true;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
if (char === '"') {
|
|
174
|
+
inString = !inString;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
if (inString) {
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
if (char === '{' || char === '[') {
|
|
181
|
+
if (depth === 0) {
|
|
182
|
+
start = i;
|
|
183
|
+
}
|
|
184
|
+
depth++;
|
|
185
|
+
}
|
|
186
|
+
else if (char === '}' || char === ']') {
|
|
187
|
+
depth--;
|
|
188
|
+
if (depth === 0 && start !== -1) {
|
|
189
|
+
const jsonStr = str.substring(start, i + 1);
|
|
190
|
+
try {
|
|
191
|
+
const parsed = JSON.parse(jsonStr);
|
|
192
|
+
results.push(parsed);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
// Invalid JSON, skip
|
|
196
|
+
}
|
|
197
|
+
start = -1;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return results;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Predefined utility functions available in ExecJSNode execution context
|
|
205
|
+
*/
|
|
206
|
+
export const getUtilityFunctions = () => {
|
|
207
|
+
return {
|
|
208
|
+
// String utilities
|
|
209
|
+
capitalize: (str) => str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(),
|
|
210
|
+
titleCase: (str) => str.replace(/\w\S*/g, (txt) => txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase()),
|
|
211
|
+
slugify: (str) => str
|
|
212
|
+
.toLowerCase()
|
|
213
|
+
.replace(/[^\w\s-]/g, '')
|
|
214
|
+
.replace(/[\s_-]+/g, '-')
|
|
215
|
+
.replace(/^-+|-+$/g, ''),
|
|
216
|
+
truncate: (str, length, suffix = '...') => str.length > length ? str.substring(0, length) + suffix : str,
|
|
217
|
+
// Array utilities
|
|
218
|
+
chunk: (array, size) => {
|
|
219
|
+
const chunks = [];
|
|
220
|
+
for (let i = 0; i < array.length; i += size) {
|
|
221
|
+
chunks.push(array.slice(i, i + size));
|
|
222
|
+
}
|
|
223
|
+
return chunks;
|
|
224
|
+
},
|
|
225
|
+
unique: (array) => [...new Set(array)],
|
|
226
|
+
flatten: (array) => array.flat(Infinity),
|
|
227
|
+
groupBy: (array, key) => {
|
|
228
|
+
return array.reduce((groups, item) => {
|
|
229
|
+
const group = item[key];
|
|
230
|
+
groups[group] = groups[group] || [];
|
|
231
|
+
groups[group].push(item);
|
|
232
|
+
return groups;
|
|
233
|
+
}, {});
|
|
234
|
+
},
|
|
235
|
+
// Object utilities
|
|
236
|
+
pick: (obj, keys) => {
|
|
237
|
+
return keys.reduce((result, key) => {
|
|
238
|
+
if (key in obj) {
|
|
239
|
+
result[key] = obj[key];
|
|
240
|
+
}
|
|
241
|
+
return result;
|
|
242
|
+
}, {});
|
|
243
|
+
},
|
|
244
|
+
omit: (obj, keys) => {
|
|
245
|
+
const result = { ...obj };
|
|
246
|
+
keys.forEach(key => delete result[key]);
|
|
247
|
+
return result;
|
|
248
|
+
},
|
|
249
|
+
// Date utilities
|
|
250
|
+
formatDate: (datestring, format = 'YYYY-MM-DD') => {
|
|
251
|
+
const d = new Date(datestring);
|
|
252
|
+
const formats = {
|
|
253
|
+
'YYYY': d.getFullYear(),
|
|
254
|
+
'MM': String(d.getMonth() + 1).padStart(2, '0'),
|
|
255
|
+
'DD': String(d.getDate()).padStart(2, '0'),
|
|
256
|
+
'HH': String(d.getHours()).padStart(2, '0'),
|
|
257
|
+
'mm': String(d.getMinutes()).padStart(2, '0'),
|
|
258
|
+
'ss': String(d.getSeconds()).padStart(2, '0')
|
|
259
|
+
};
|
|
260
|
+
return format.replace(/YYYY|MM|DD|HH|mm|ss/g, match => formats[match]);
|
|
261
|
+
},
|
|
262
|
+
extractJSON,
|
|
263
|
+
cleanJSONString,
|
|
264
|
+
safeExtractJSON,
|
|
265
|
+
containsJSON,
|
|
266
|
+
extractMultipleJSON,
|
|
267
|
+
timeAgo: (datestring) => {
|
|
268
|
+
const now = new Date();
|
|
269
|
+
const past = new Date(datestring);
|
|
270
|
+
const diffMs = now.getTime() - past.getTime();
|
|
271
|
+
const diffMins = Math.floor(diffMs / 60000);
|
|
272
|
+
const diffHours = Math.floor(diffMins / 60);
|
|
273
|
+
const diffDays = Math.floor(diffHours / 24);
|
|
274
|
+
if (diffMins < 1)
|
|
275
|
+
return 'just now';
|
|
276
|
+
if (diffMins < 60)
|
|
277
|
+
return `${diffMins}m ago`;
|
|
278
|
+
if (diffHours < 24)
|
|
279
|
+
return `${diffHours}h ago`;
|
|
280
|
+
return `${diffDays}d ago`;
|
|
281
|
+
},
|
|
282
|
+
// Number utilities
|
|
283
|
+
clamp: (num, min, max) => Math.min(Math.max(num, min), max),
|
|
284
|
+
round: (num, decimals = 0) => {
|
|
285
|
+
const factor = Math.pow(10, decimals);
|
|
286
|
+
return Math.round(num * factor) / factor;
|
|
287
|
+
},
|
|
288
|
+
deepMerge,
|
|
289
|
+
randomBetween: (min, max) => Math.random() * (max - min) + min,
|
|
290
|
+
formatNumber: (num, locale = 'en-US') => {
|
|
291
|
+
return new Intl.NumberFormat(locale).format(num);
|
|
292
|
+
},
|
|
293
|
+
// Validation utilities
|
|
294
|
+
isEmail: (str) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(str),
|
|
295
|
+
isUrl: (str) => {
|
|
296
|
+
try {
|
|
297
|
+
new URL(str);
|
|
298
|
+
return true;
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
},
|
|
304
|
+
isEmpty: (value) => {
|
|
305
|
+
if (value == null)
|
|
306
|
+
return true;
|
|
307
|
+
if (typeof value === 'string')
|
|
308
|
+
return value.trim().length === 0;
|
|
309
|
+
if (Array.isArray(value))
|
|
310
|
+
return value.length === 0;
|
|
311
|
+
if (typeof value === 'object')
|
|
312
|
+
return Object.keys(value).length === 0;
|
|
313
|
+
return false;
|
|
314
|
+
},
|
|
315
|
+
// HTTP utilities
|
|
316
|
+
fetchJSON: async (url, options = {}) => {
|
|
317
|
+
const response = await fetch(url, {
|
|
318
|
+
headers: { 'Content-Type': 'application/json', ...options.headers },
|
|
319
|
+
...options
|
|
320
|
+
});
|
|
321
|
+
return response.json();
|
|
322
|
+
},
|
|
323
|
+
// Async utilities
|
|
324
|
+
delay: (ms) => new Promise(resolve => setTimeout(resolve, ms)),
|
|
325
|
+
retry: async (fn, maxAttempts = 3, delayMs = 1000) => {
|
|
326
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
327
|
+
try {
|
|
328
|
+
return await fn();
|
|
329
|
+
}
|
|
330
|
+
catch (error) {
|
|
331
|
+
if (attempt === maxAttempts)
|
|
332
|
+
throw error;
|
|
333
|
+
await new Promise(resolve => setTimeout(resolve, delayMs));
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
},
|
|
337
|
+
// Template utilities
|
|
338
|
+
template: (str, data) => {
|
|
339
|
+
return str.replace(/\{\{(\w+)\}\}/g, (match, key) => data[key] || match);
|
|
340
|
+
},
|
|
341
|
+
// Debug utilities
|
|
342
|
+
log: (...args) => {
|
|
343
|
+
console.log('[ExecJS]', ...args);
|
|
344
|
+
return args.length === 1 ? args[0] : args;
|
|
345
|
+
},
|
|
346
|
+
inspect: (obj) => {
|
|
347
|
+
console.log('[ExecJS Inspect]', JSON.stringify(obj, null, 2));
|
|
348
|
+
return obj;
|
|
349
|
+
}
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
//# sourceMappingURL=utilityFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utilityFunctions.js","sourceRoot":"","sources":["../../src/services/utilityFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load stored pools (if file exists)
|
|
3
|
+
*/
|
|
4
|
+
export declare function loadPools(poolPath?: string): Promise<any>;
|
|
5
|
+
/**
|
|
6
|
+
* Save pools to disk
|
|
7
|
+
*/
|
|
8
|
+
export declare function savePools(pools: any, poolPath?: string): Promise<void>;
|
|
9
|
+
/**
|
|
10
|
+
* Seed initial values from the provided email's original entities
|
|
11
|
+
*/
|
|
12
|
+
export declare function seedPoolsFromEntities(entities: any, pools: any): void;
|
|
13
|
+
/**
|
|
14
|
+
* Generate one new value from the LLM
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateValueForEntity(entity: any, pools: any, options?: {}): Promise<any>;
|
|
17
|
+
/**
|
|
18
|
+
* Generate values for all entities, using pools + LLM
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateEntityValues(entities: any, options?: {
|
|
21
|
+
model?: string;
|
|
22
|
+
reuseProbability?: number;
|
|
23
|
+
poolPath?: string;
|
|
24
|
+
}): Promise<{
|
|
25
|
+
valuesByKey: {};
|
|
26
|
+
pools: any;
|
|
27
|
+
}>;
|
|
28
|
+
/**
|
|
29
|
+
* Replace {{KEY}} placeholders
|
|
30
|
+
*/
|
|
31
|
+
export declare function fillTemplate(template: any, valuesByKey: any): any;
|
|
32
|
+
/**
|
|
33
|
+
* Full pipeline
|
|
34
|
+
*/
|
|
35
|
+
export declare function generateTextFromTemplate(template: any, entities: any, options?: {}): Promise<{
|
|
36
|
+
email: any;
|
|
37
|
+
valuesByKey: {};
|
|
38
|
+
}>;
|
|
39
|
+
//# sourceMappingURL=variableGenerator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variableGenerator.d.ts","sourceRoot":"","sources":["../../src/services/variableGenerator.ts"],"names":[],"mappings":"AAgBA;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,SAAoB,gBAQ3D;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,KAAA,EAAE,QAAQ,SAAoB,iBAGlE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,KAAA,EAAE,KAAK,KAAA,QAQpD;AAMD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,KAAA,EAAE,KAAK,KAAA,EAAE,OAAO,KAAK,gBAoDvE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,QAAQ,KAAA,EACR,OAAO,GAAE;IACL,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAChB;;;GAkDT;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,KAAA,EAAE,WAAW,KAAA,OAIjD;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC1C,QAAQ,KAAA,EACR,QAAQ,KAAA,EACR,OAAO,KAAK;;;GASf"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// emailGenerator.js (ESM)
|
|
2
|
+
// Core logic for:
|
|
3
|
+
// - Reusing / generating entity values via LLM
|
|
4
|
+
// - Storing pools in a JSON file
|
|
5
|
+
// - Filling {{KEY}} placeholders in your email template
|
|
6
|
+
import { promises as fs } from "fs";
|
|
7
|
+
import path from "path";
|
|
8
|
+
// Import your runPrompt (must be an ESM export)
|
|
9
|
+
import { ensureDir, get } from "../utils.js";
|
|
10
|
+
import { KEYS } from "../constants.js";
|
|
11
|
+
import { runPrompt } from "./runPrompt.js";
|
|
12
|
+
const DEFAULT_POOL_PATH = path.join(process.cwd(), "entityPools.json");
|
|
13
|
+
/**
|
|
14
|
+
* Load stored pools (if file exists)
|
|
15
|
+
*/
|
|
16
|
+
export async function loadPools(poolPath = DEFAULT_POOL_PATH) {
|
|
17
|
+
try {
|
|
18
|
+
const raw = await fs.readFile(poolPath, "utf8");
|
|
19
|
+
return JSON.parse(raw);
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
if (err.code === "ENOENT")
|
|
23
|
+
return {};
|
|
24
|
+
throw err;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Save pools to disk
|
|
29
|
+
*/
|
|
30
|
+
export async function savePools(pools, poolPath = DEFAULT_POOL_PATH) {
|
|
31
|
+
const json = JSON.stringify(pools, null, 2);
|
|
32
|
+
await fs.writeFile(poolPath, json, "utf8");
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Seed initial values from the provided email's original entities
|
|
36
|
+
*/
|
|
37
|
+
export function seedPoolsFromEntities(entities, pools) {
|
|
38
|
+
for (const e of entities) {
|
|
39
|
+
const type = e.type || "other";
|
|
40
|
+
if (!pools[type])
|
|
41
|
+
pools[type] = [];
|
|
42
|
+
if (!pools[type].includes(e.original)) {
|
|
43
|
+
pools[type].push(e.original);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function pickRandom(arr) {
|
|
48
|
+
return arr[Math.floor(Math.random() * arr.length)];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Generate one new value from the LLM
|
|
52
|
+
*/
|
|
53
|
+
export async function generateValueForEntity(entity, pools, options = {}) {
|
|
54
|
+
const context = options.context ||
|
|
55
|
+
"business emails about vendor credentialing, insurance certificates, and property management workflows.";
|
|
56
|
+
const model = options.model || "gpt-5.2-2025-12-11";
|
|
57
|
+
const exampleValues = (pools[entity.type] || []).slice(0, 10);
|
|
58
|
+
const systemMsg = `
|
|
59
|
+
You generate realistic but fictional business data used in templated emails.
|
|
60
|
+
|
|
61
|
+
Rules:
|
|
62
|
+
- Output ONLY JSON.
|
|
63
|
+
- Make details realistic but fictional.
|
|
64
|
+
- Fit the entity's type: name, company, email, phone, date, address, etc.
|
|
65
|
+
- Fit the context provided.
|
|
66
|
+
`.trim();
|
|
67
|
+
const userMsg = `
|
|
68
|
+
Context:
|
|
69
|
+
${context}
|
|
70
|
+
|
|
71
|
+
Entity:
|
|
72
|
+
${JSON.stringify(entity, null, 2)}
|
|
73
|
+
|
|
74
|
+
Example values for this type:
|
|
75
|
+
${JSON.stringify(exampleValues, null, 2)}
|
|
76
|
+
|
|
77
|
+
Task:
|
|
78
|
+
Generate ONE NEW value of type "${entity.type}" appropriate for the context.
|
|
79
|
+
|
|
80
|
+
Return ONLY JSON:
|
|
81
|
+
{ "value": "..." }
|
|
82
|
+
`.trim();
|
|
83
|
+
const raw = await runPrompt([
|
|
84
|
+
{ role: "system", content: systemMsg },
|
|
85
|
+
{ role: "user", content: userMsg },
|
|
86
|
+
], model);
|
|
87
|
+
try {
|
|
88
|
+
const out = JSON.parse(raw);
|
|
89
|
+
if (out && typeof out.value === "string") {
|
|
90
|
+
return out.value.trim();
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (_) { }
|
|
94
|
+
return String(raw).trim();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Generate values for all entities, using pools + LLM
|
|
98
|
+
*/
|
|
99
|
+
export async function generateEntityValues(entities, options = {}) {
|
|
100
|
+
const model = options.model || "gpt-5.2-2025-12-11";
|
|
101
|
+
const reuseProbability = typeof options.reuseProbability === "number"
|
|
102
|
+
? options.reuseProbability
|
|
103
|
+
: 0.7;
|
|
104
|
+
const poolPath = options.poolPath || get(KEYS.VARIABLE_POOL_PATH) || DEFAULT_POOL_PATH;
|
|
105
|
+
try {
|
|
106
|
+
await ensureDir(path.dirname(poolPath));
|
|
107
|
+
if (!(await fs.stat(poolPath)).isFile()) {
|
|
108
|
+
await fs.writeFile(poolPath, JSON.stringify({}), "utf8");
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
await fs.writeFile(poolPath, JSON.stringify({}), "utf8");
|
|
113
|
+
}
|
|
114
|
+
const pools = await loadPools(poolPath);
|
|
115
|
+
seedPoolsFromEntities(entities, pools);
|
|
116
|
+
const valuesByKey = {};
|
|
117
|
+
for (const entity of entities) {
|
|
118
|
+
const type = entity.type || "other";
|
|
119
|
+
if (!pools[type])
|
|
120
|
+
pools[type] = [];
|
|
121
|
+
const pool = pools[type];
|
|
122
|
+
let value;
|
|
123
|
+
const shouldReuse = pool.length > 0 && Math.random() < reuseProbability;
|
|
124
|
+
if (shouldReuse) {
|
|
125
|
+
value = pickRandom(pool);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
value = await generateValueForEntity(entity, pools, options);
|
|
129
|
+
if (value && !pool.includes(value)) {
|
|
130
|
+
pool.push(value);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
valuesByKey[entity.key] = value;
|
|
134
|
+
}
|
|
135
|
+
await savePools(pools, poolPath);
|
|
136
|
+
return { valuesByKey, pools };
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Replace {{KEY}} placeholders
|
|
140
|
+
*/
|
|
141
|
+
export function fillTemplate(template, valuesByKey) {
|
|
142
|
+
return template.replace(/\{\{([A-Z0-9_]+)\}\}/g, (_, key) => {
|
|
143
|
+
return valuesByKey[key] ?? `{{${key}}}`;
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Full pipeline
|
|
148
|
+
*/
|
|
149
|
+
export async function generateTextFromTemplate(template, entities, options = {}) {
|
|
150
|
+
const { valuesByKey } = await generateEntityValues(entities, options);
|
|
151
|
+
const email = fillTemplate(template, valuesByKey);
|
|
152
|
+
return {
|
|
153
|
+
email,
|
|
154
|
+
valuesByKey,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=variableGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"variableGenerator.js","sourceRoot":"","sources":["../../src/services/variableGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds a directory structure from a JSON input containing file paths and contents.
|
|
3
|
+
*
|
|
4
|
+
* @param {string|object} jsonInput - The JSON string or object containing the files structure.
|
|
5
|
+
* Expected format: { "files": [ { "path": "...", "content": "..." }, ... ] }
|
|
6
|
+
* @param {string} targetDir - The root directory where files should be created.
|
|
7
|
+
* @returns {Promise<{success: boolean, count: number}>}
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildWorkflowDirectory(jsonInput: any, targetDir: any): Promise<{
|
|
10
|
+
success: boolean;
|
|
11
|
+
count: any;
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Executes the workflow CLI validator in the target directory.
|
|
15
|
+
*
|
|
16
|
+
* @param {string} targetDir - The directory where the project is built.
|
|
17
|
+
* @param {string} [workflowJsonPath] - The path to the workflow JSON file to validate (relative to targetDir or absolute).
|
|
18
|
+
* @param {object} [parameters={}] - Optional dictionary of named parameters to pass to the CLI.
|
|
19
|
+
* @returns {Promise<{stdout: string, stderr: string}>}
|
|
20
|
+
*/
|
|
21
|
+
export declare function runWorkflowCLI(targetDir: any, workflowJsonPath: any, parameters?: {}): Promise<{
|
|
22
|
+
stdout: string;
|
|
23
|
+
stderr: string;
|
|
24
|
+
error?: undefined;
|
|
25
|
+
code?: undefined;
|
|
26
|
+
} | {
|
|
27
|
+
stdout: any;
|
|
28
|
+
stderr: any;
|
|
29
|
+
error: any;
|
|
30
|
+
code: any;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Installs dependencies in the target directory using npm install.
|
|
34
|
+
*
|
|
35
|
+
* @param {string} targetDir - The directory where package.json is located.
|
|
36
|
+
* @returns {Promise<{stdout: string, stderr: string}>}
|
|
37
|
+
*/
|
|
38
|
+
export declare function installDependencies(targetDir: any): Promise<{
|
|
39
|
+
stdout: string;
|
|
40
|
+
stderr: string;
|
|
41
|
+
error?: undefined;
|
|
42
|
+
code?: undefined;
|
|
43
|
+
} | {
|
|
44
|
+
stdout: any;
|
|
45
|
+
stderr: any;
|
|
46
|
+
error: any;
|
|
47
|
+
code: any;
|
|
48
|
+
}>;
|
|
49
|
+
//# sourceMappingURL=build-workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-workflow.d.ts","sourceRoot":"","sources":["../../../src/services/workflow/build-workflow.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,KAAA,EAAE,SAAS,KAAA;;;GA0ChE;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,SAAS,KAAA,EAAE,gBAAgB,KAAA,EAAE,UAAU,KAAK;;;;;;;;;;GAoChF;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,SAAS,KAAA;;;;;;;;;;GAclD"}
|