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
package/README.md
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Flow-Frame
|
|
2
|
+
|
|
3
|
+
**Flow-Frame** is an advanced automation platform designed to orchestrate complex workflows involving AI, media processing, browser interactions, and email management.
|
|
4
|
+
|
|
5
|
+
It acts as a central nervous system for automation, connecting LLMs (OpenAI) with real-world interfaces (Gmail, Chrome, File System) and heavy computation tasks (Image/Audio processing).
|
|
6
|
+
|
|
7
|
+
## 🚀 Quick Start
|
|
8
|
+
|
|
9
|
+
1. **Install Dependencies**:
|
|
10
|
+
```bash
|
|
11
|
+
npm install
|
|
12
|
+
```
|
|
13
|
+
2. **Setup Environment**:
|
|
14
|
+
Create a `.env` file with your API keys.
|
|
15
|
+
3. **Start Server**:
|
|
16
|
+
```bash
|
|
17
|
+
npm start
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 🧪 Testing
|
|
21
|
+
|
|
22
|
+
This project uses **Jest** for unit and integration testing.
|
|
23
|
+
|
|
24
|
+
### Running Tests
|
|
25
|
+
To run the automated test suite:
|
|
26
|
+
```bash
|
|
27
|
+
npm test
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Writing Tests
|
|
31
|
+
- Place unit tests alongside source files (e.g., `src/utils.test.ts`).
|
|
32
|
+
- Tests should use `import` syntax (ESM).
|
|
33
|
+
- Existing manual testing scripts (e.g. `*.manual-test.ts`) are excluded from the automated runner.
|
|
34
|
+
|
|
35
|
+
## 📚 Documentation
|
|
36
|
+
|
|
37
|
+
Detailed documentation is available in the `docs/` folder:
|
|
38
|
+
|
|
39
|
+
- **[Setup & Installation](docs/setup.md)**: Configuration including `src/config.json` and GCP.
|
|
40
|
+
- **[Architecture](docs/architecture.md)**: System design, services, and resiliency.
|
|
41
|
+
- **[API Reference](docs/api.md)**: Endpoints for workflows, config files, media.
|
|
42
|
+
- **[Browser Automation](docs/browser_automation.md)**: `robotjs` integration and extension details.
|
|
43
|
+
- **[Email Automation](docs/email_automation.md)**: Gmail polling and filtering.
|
|
44
|
+
- **[Workflows](docs/workflows.md)**: How to build and run workflows.
|
|
45
|
+
|
|
46
|
+
## 🌟 Key Features
|
|
47
|
+
|
|
48
|
+
- **Agentic UI Planning**: Deeply integrated AI that maps web pages and uses `robotjs` to simulate human clicks and typing.
|
|
49
|
+
- **Dynamic Workflows**: Can materialize file structures from JSON and execute them (`build-workflow.js`).
|
|
50
|
+
- **Production Resilience**: Global error handlers prevent server crashes (`server.js`).
|
|
51
|
+
- **Media Pipeline**: Native support for processing Audio, Images, and PDFs.
|
|
52
|
+
|
|
53
|
+
## 📂 Project Structure
|
|
54
|
+
|
|
55
|
+
- `src/server.js`: Main entry point with error handling.
|
|
56
|
+
- `src/operations.js`: Low-level OS automation (mouse/keyboard).
|
|
57
|
+
- `src/configEndpoints.js`: API for managing file-based configs.
|
|
58
|
+
- `src/services/`: Business logic and AI services.
|
|
59
|
+
- `src/extension/`: Chrome extension for browser integration.
|
|
60
|
+
- `src/gmail-poller/`: Email automation tools.
|
|
61
|
+
|
|
62
|
+
## License
|
|
63
|
+
|
|
64
|
+
Private / Proprietary.
|
package/dist/Dockerfile
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
###############################
|
|
2
|
+
# Base image with system libs #
|
|
3
|
+
###############################
|
|
4
|
+
FROM node:20-slim AS base
|
|
5
|
+
|
|
6
|
+
ENV DEBIAN_FRONTEND=noninteractive \
|
|
7
|
+
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true \
|
|
8
|
+
PYTHONUNBUFFERED=1
|
|
9
|
+
|
|
10
|
+
ARG WITH_ROBOTJS=0
|
|
11
|
+
# System packages for native deps (canvas, sharp, tesseract, etc.)
|
|
12
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
13
|
+
build-essential \
|
|
14
|
+
python3 \
|
|
15
|
+
python3-pip \
|
|
16
|
+
python3-venv \
|
|
17
|
+
git \
|
|
18
|
+
pkg-config \
|
|
19
|
+
libpixman-1-dev libcairo2-dev libpango1.0-dev libjpeg62-turbo-dev libgif-dev librsvg2-dev \
|
|
20
|
+
libvips42 \
|
|
21
|
+
tesseract-ocr \
|
|
22
|
+
libgl1 libglib2.0-0 libsm6 libxrender1 libxext6 \
|
|
23
|
+
ffmpeg \
|
|
24
|
+
${WITH_ROBOTJS:+libxtst-dev libx11-dev} \
|
|
25
|
+
&& ln -s /usr/bin/python3 /usr/bin/python \
|
|
26
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
27
|
+
|
|
28
|
+
# Torch channel can be: cpu | cu121 | cu124 | rocm6.2 (etc.)
|
|
29
|
+
ARG TORCH_CHANNEL=cu126
|
|
30
|
+
|
|
31
|
+
RUN python3 -m pip install --upgrade pip --break-system-packages && \
|
|
32
|
+
if [ "$TORCH_CHANNEL" = "cpu" ]; then \
|
|
33
|
+
python3 -m pip install --no-cache-dir --break-system-packages \
|
|
34
|
+
torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu ; \
|
|
35
|
+
else \
|
|
36
|
+
python3 -m pip install --no-cache-dir --break-system-packages \
|
|
37
|
+
torch torchvision torchaudio --index-url https://download.pytorch.org/whl/${TORCH_CHANNEL} ; \
|
|
38
|
+
fi && \
|
|
39
|
+
python3 -m pip install --no-cache-dir --break-system-packages ultralytics
|
|
40
|
+
|
|
41
|
+
# Copy and install trainer requirements
|
|
42
|
+
COPY trainer/requirements.txt /app/trainer/requirements.txt
|
|
43
|
+
RUN python3 -m pip install --no-cache-dir --break-system-packages -r /app/trainer/requirements.txt
|
|
44
|
+
|
|
45
|
+
WORKDIR /app
|
|
46
|
+
|
|
47
|
+
###############################
|
|
48
|
+
# Dev dependencies layer #
|
|
49
|
+
###############################
|
|
50
|
+
FROM base AS deps-dev
|
|
51
|
+
COPY package*.json ./
|
|
52
|
+
RUN npm install
|
|
53
|
+
|
|
54
|
+
###############################
|
|
55
|
+
# Production deps layer #
|
|
56
|
+
###############################
|
|
57
|
+
FROM base AS deps-prod
|
|
58
|
+
COPY package*.json ./
|
|
59
|
+
RUN npm install --omit=dev && npm cache clean --force
|
|
60
|
+
|
|
61
|
+
###############################
|
|
62
|
+
# Development image #
|
|
63
|
+
###############################
|
|
64
|
+
FROM base AS dev
|
|
65
|
+
ENV NODE_ENV=development PORT=8080
|
|
66
|
+
COPY --from=deps-dev /app/node_modules ./node_modules
|
|
67
|
+
COPY . .
|
|
68
|
+
EXPOSE 8080
|
|
69
|
+
# Use nodemon for autoreload (mounted volume will overlay source code)
|
|
70
|
+
CMD ["npm", "run", "dev"]
|
|
71
|
+
|
|
72
|
+
###############################
|
|
73
|
+
# Production build image #
|
|
74
|
+
###############################
|
|
75
|
+
FROM base AS prod
|
|
76
|
+
ENV NODE_ENV=production PORT=8080 NODE_OPTIONS="--max-old-space-size=4096"
|
|
77
|
+
COPY --from=deps-prod /app/node_modules ./node_modules
|
|
78
|
+
COPY . .
|
|
79
|
+
RUN chmod +x start.sh
|
|
80
|
+
EXPOSE 8080
|
|
81
|
+
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
82
|
+
CMD node -e 'fetch(`http://localhost:${process.env.PORT||8080}/health`).then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))' 2>/dev/null || exit 1
|
|
83
|
+
CMD ["./start.sh"]
|
|
84
|
+
|
|
85
|
+
# Default stage (can be overridden):
|
|
86
|
+
FROM prod AS default
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
# GPU-Enabled VM Deployment Documentation
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This documentation covers the deployment of a GPU-accelerated virtual machine on Google Cloud Platform with NVIDIA A100 GPU support for machine learning workloads, specifically optimized for YOLO training and computer vision tasks.
|
|
6
|
+
|
|
7
|
+
## Architecture
|
|
8
|
+
|
|
9
|
+
### Components
|
|
10
|
+
- **VM Instance**: `a2-highgpu-1g` (A100 GPU, 12 vCPUs, 85GB RAM)
|
|
11
|
+
- **OS**: Ubuntu 22.04 LTS
|
|
12
|
+
- **GPU**: NVIDIA A100-SXM4-40GB
|
|
13
|
+
- **Container Runtime**: Docker with NVIDIA Container Toolkit
|
|
14
|
+
- **Application**: midjourney-worker container with GPU acceleration
|
|
15
|
+
|
|
16
|
+
### Network Configuration
|
|
17
|
+
- **Zone**: us-central1-f
|
|
18
|
+
- **Project**: flowframe-auto
|
|
19
|
+
- **Container Registry**: us-central1-docker.pkg.dev/flowframe-auto/worker-images/midjourney-worker:latest
|
|
20
|
+
|
|
21
|
+
## Prerequisites
|
|
22
|
+
|
|
23
|
+
### Google Cloud Setup
|
|
24
|
+
1. **Project**: Ensure `flowframe-auto` project exists
|
|
25
|
+
2. **Billing**: GPU-enabled VMs require billing to be enabled
|
|
26
|
+
3. **APIs**: Enable Compute Engine API and Container Registry API
|
|
27
|
+
4. **Service Account**: Service account with appropriate permissions
|
|
28
|
+
5. **Authentication**: `gcloud auth login` and `gcloud config set project flowframe-auto`
|
|
29
|
+
|
|
30
|
+
### Local Environment
|
|
31
|
+
- **gcloud CLI**: Latest version installed
|
|
32
|
+
- **Docker**: For local testing (optional)
|
|
33
|
+
- **Node.js**: For running npm scripts
|
|
34
|
+
- **Git**: For repository access
|
|
35
|
+
|
|
36
|
+
## Quick Start
|
|
37
|
+
|
|
38
|
+
### Deploy GPU VM
|
|
39
|
+
```bash
|
|
40
|
+
npm run deploy-gpu-vm
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Check Status
|
|
44
|
+
```bash
|
|
45
|
+
npm run gpu-vm-status
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### SSH Access
|
|
49
|
+
```bash
|
|
50
|
+
npm run gpu-vm-ssh
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Available Commands
|
|
54
|
+
|
|
55
|
+
### Deployment Commands
|
|
56
|
+
```bash
|
|
57
|
+
# Deploy the GPU VM
|
|
58
|
+
npm run deploy-gpu-vm
|
|
59
|
+
|
|
60
|
+
# Build and deploy (combined)
|
|
61
|
+
npm run build-deploy
|
|
62
|
+
|
|
63
|
+
# Check VM status
|
|
64
|
+
npm run gpu-vm-status
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Management Commands
|
|
68
|
+
```bash
|
|
69
|
+
# SSH into the VM
|
|
70
|
+
npm run gpu-vm-ssh
|
|
71
|
+
|
|
72
|
+
# View startup logs
|
|
73
|
+
npm run gpu-vm-logs
|
|
74
|
+
|
|
75
|
+
# Stop the VM
|
|
76
|
+
npm run gpu-vm-stop
|
|
77
|
+
|
|
78
|
+
# Start the VM
|
|
79
|
+
npm run gpu-vm-start
|
|
80
|
+
|
|
81
|
+
# Delete the VM
|
|
82
|
+
npm run gpu-vm-delete
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Detailed Deployment Process
|
|
86
|
+
|
|
87
|
+
### 1. VM Creation
|
|
88
|
+
The deployment script creates an Ubuntu 22.04 VM with:
|
|
89
|
+
- A100 GPU attached
|
|
90
|
+
- 400GB boot disk
|
|
91
|
+
- NVIDIA GPU Cloud image
|
|
92
|
+
- Startup script for GPU driver installation
|
|
93
|
+
|
|
94
|
+
### 2. GPU Driver Installation
|
|
95
|
+
The startup script automatically:
|
|
96
|
+
- Updates the system
|
|
97
|
+
- Installs NVIDIA drivers (version 550)
|
|
98
|
+
- Configures Docker with NVIDIA Container Toolkit
|
|
99
|
+
- Sets up GPU runtime for containers
|
|
100
|
+
|
|
101
|
+
### 3. Container Deployment
|
|
102
|
+
Once the VM is ready:
|
|
103
|
+
- Docker daemon is configured for GPU access
|
|
104
|
+
- midjourney-worker container is pulled and started
|
|
105
|
+
- GPU acceleration is enabled via `--gpus all` flag
|
|
106
|
+
|
|
107
|
+
### 4. Service Configuration
|
|
108
|
+
The container runs with:
|
|
109
|
+
- Port 8080 exposed
|
|
110
|
+
- Automatic restart on failure
|
|
111
|
+
- GPU memory access
|
|
112
|
+
- CUDA runtime support
|
|
113
|
+
|
|
114
|
+
## Performance Specifications
|
|
115
|
+
|
|
116
|
+
### Hardware
|
|
117
|
+
- **GPU**: NVIDIA A100-SXM4-40GB
|
|
118
|
+
- **GPU Memory**: 40GB HBM2e
|
|
119
|
+
- **CUDA Cores**: 6,912
|
|
120
|
+
- **Tensor Cores**: 432
|
|
121
|
+
- **Memory Bandwidth**: 1,555 GB/s
|
|
122
|
+
- **CPU**: 12 vCPUs (AMD EPYC)
|
|
123
|
+
- **RAM**: 85GB
|
|
124
|
+
|
|
125
|
+
### Expected Performance
|
|
126
|
+
- **YOLO Training**: ~10-50x faster than CPU
|
|
127
|
+
- **Image Processing**: ~20-100x faster than CPU
|
|
128
|
+
- **Memory Usage**: 0-40GB depending on model size
|
|
129
|
+
- **Power Consumption**: 45-400W depending on load
|
|
130
|
+
|
|
131
|
+
## Monitoring and Troubleshooting
|
|
132
|
+
|
|
133
|
+
### Check GPU Status
|
|
134
|
+
```bash
|
|
135
|
+
# SSH into VM and run
|
|
136
|
+
nvidia-smi
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### View Container Logs
|
|
140
|
+
```bash
|
|
141
|
+
# From local machine
|
|
142
|
+
npm run gpu-vm-ssh
|
|
143
|
+
# Then inside VM
|
|
144
|
+
sudo docker logs midjourney-worker-gpu
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Common Issues
|
|
148
|
+
|
|
149
|
+
#### 1. Authentication Errors
|
|
150
|
+
```
|
|
151
|
+
Error: denied: Unauthenticated request
|
|
152
|
+
```
|
|
153
|
+
**Solution**: Ensure service account has Artifact Registry permissions
|
|
154
|
+
|
|
155
|
+
#### 2. GPU Not Detected
|
|
156
|
+
```
|
|
157
|
+
nvidia-smi: command not found
|
|
158
|
+
```
|
|
159
|
+
**Solution**: Wait for startup script completion (5-10 minutes)
|
|
160
|
+
|
|
161
|
+
#### 3. Container Won't Start
|
|
162
|
+
```
|
|
163
|
+
docker: Error response from daemon: could not select device driver
|
|
164
|
+
```
|
|
165
|
+
**Solution**: Restart Docker daemon after NVIDIA driver installation
|
|
166
|
+
|
|
167
|
+
#### 4. Out of Memory
|
|
168
|
+
```
|
|
169
|
+
CUDA out of memory
|
|
170
|
+
```
|
|
171
|
+
**Solution**: Reduce batch size or use mixed precision training
|
|
172
|
+
|
|
173
|
+
### Startup Script Logs
|
|
174
|
+
```bash
|
|
175
|
+
# View startup script progress
|
|
176
|
+
npm run gpu-vm-logs
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Cost Optimization
|
|
180
|
+
|
|
181
|
+
### VM Pricing (us-central1-f)
|
|
182
|
+
- **A100 GPU**: $2.93/hour
|
|
183
|
+
- **vCPUs**: $0.034/hour × 12 = $0.408/hour
|
|
184
|
+
- **RAM**: $0.0048/hour × 85GB = $0.408/hour
|
|
185
|
+
- **Disk**: $0.040/hour × 400GB = $0.016/hour
|
|
186
|
+
- **Total**: ~$3.75/hour
|
|
187
|
+
|
|
188
|
+
### Usage Tips
|
|
189
|
+
- Stop VM when not in use: `npm run gpu-vm-stop`
|
|
190
|
+
- Use preemptible instances for cost savings (if acceptable)
|
|
191
|
+
- Monitor usage with `nvidia-smi` to optimize workloads
|
|
192
|
+
|
|
193
|
+
## Security Considerations
|
|
194
|
+
|
|
195
|
+
### Network Security
|
|
196
|
+
- VM is accessible via SSH with gcloud authentication
|
|
197
|
+
- Container registry access requires service account authentication
|
|
198
|
+
- No public IP by default (access via gcloud proxy)
|
|
199
|
+
|
|
200
|
+
### Service Account Permissions
|
|
201
|
+
Required permissions:
|
|
202
|
+
- `compute.instances.*`
|
|
203
|
+
- `artifactregistry.repositories.downloadArtifacts`
|
|
204
|
+
- `storage.objects.get` (for data access)
|
|
205
|
+
|
|
206
|
+
## Advanced Configuration
|
|
207
|
+
|
|
208
|
+
### Custom Startup Script
|
|
209
|
+
Modify `gpu-startup.sh` for additional setup:
|
|
210
|
+
```bash
|
|
211
|
+
# Add custom packages
|
|
212
|
+
apt install -y python3-pip
|
|
213
|
+
pip install torch torchvision torchaudio
|
|
214
|
+
|
|
215
|
+
# Mount additional disks
|
|
216
|
+
# Configure monitoring
|
|
217
|
+
# Set up logging
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### Environment Variables
|
|
221
|
+
```bash
|
|
222
|
+
# Inside container
|
|
223
|
+
export CUDA_VISIBLE_DEVICES=0
|
|
224
|
+
export TORCH_USE_CUDA_DSA=1
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### GPU Memory Management
|
|
228
|
+
```python
|
|
229
|
+
# In Python code
|
|
230
|
+
torch.cuda.set_per_process_memory_fraction(0.8) # Use 80% of GPU memory
|
|
231
|
+
torch.cuda.empty_cache() # Clear cache when needed
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Integration with Existing Workflows
|
|
235
|
+
|
|
236
|
+
### YOLO Training Integration
|
|
237
|
+
The GPU VM is optimized for YOLO model training:
|
|
238
|
+
- Automatic GPU detection
|
|
239
|
+
- Mixed precision support
|
|
240
|
+
- Batch size optimization
|
|
241
|
+
- Multi-GPU support (if scaled)
|
|
242
|
+
|
|
243
|
+
### API Access
|
|
244
|
+
Once deployed, access the service at:
|
|
245
|
+
```
|
|
246
|
+
http://[VM_EXTERNAL_IP]:8080
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Data Pipeline
|
|
250
|
+
- Upload training data to Google Cloud Storage
|
|
251
|
+
- Mount GCS buckets in container
|
|
252
|
+
- Process data with GPU acceleration
|
|
253
|
+
|
|
254
|
+
## Support and Maintenance
|
|
255
|
+
|
|
256
|
+
### Regular Maintenance
|
|
257
|
+
```bash
|
|
258
|
+
# Update NVIDIA drivers
|
|
259
|
+
sudo ubuntu-drivers autoinstall
|
|
260
|
+
|
|
261
|
+
# Update Docker
|
|
262
|
+
sudo apt update && sudo apt upgrade docker-ce
|
|
263
|
+
|
|
264
|
+
# Restart services
|
|
265
|
+
sudo systemctl restart docker
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Backup Strategy
|
|
269
|
+
- Container images stored in Artifact Registry
|
|
270
|
+
- Training data in Cloud Storage
|
|
271
|
+
- VM disks can be snapshotted
|
|
272
|
+
|
|
273
|
+
### Monitoring
|
|
274
|
+
- Use `nvidia-smi` for GPU monitoring
|
|
275
|
+
- Docker stats for container performance
|
|
276
|
+
- Cloud Monitoring for VM metrics
|
|
277
|
+
|
|
278
|
+
## Troubleshooting Checklist
|
|
279
|
+
|
|
280
|
+
1. **VM won't start**: Check quota limits and billing
|
|
281
|
+
2. **GPU not available**: Wait for startup script completion
|
|
282
|
+
3. **Container fails**: Check authentication and image availability
|
|
283
|
+
4. **Performance issues**: Monitor GPU utilization and memory usage
|
|
284
|
+
5. **Network issues**: Verify firewall rules and service account permissions
|
|
285
|
+
|
|
286
|
+
## Future Enhancements
|
|
287
|
+
|
|
288
|
+
### Planned Features
|
|
289
|
+
- Auto-scaling based on workload
|
|
290
|
+
- Multi-GPU support
|
|
291
|
+
- Cost optimization with spot instances
|
|
292
|
+
- Integration with Vertex AI
|
|
293
|
+
- Automated backup and recovery
|
|
294
|
+
|
|
295
|
+
### Performance Optimizations
|
|
296
|
+
- TensorRT integration
|
|
297
|
+
- Mixed precision training
|
|
298
|
+
- GPU memory optimization
|
|
299
|
+
- Distributed training support
|
|
300
|
+
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
## Quick Reference
|
|
304
|
+
|
|
305
|
+
### Deploy Everything
|
|
306
|
+
```bash
|
|
307
|
+
npm run deploy-gpu-vm
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Check Everything is Working
|
|
311
|
+
```bash
|
|
312
|
+
npm run gpu-vm-status
|
|
313
|
+
npm run gpu-vm-ssh
|
|
314
|
+
nvidia-smi
|
|
315
|
+
sudo docker ps
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Clean Up
|
|
319
|
+
```bash
|
|
320
|
+
npm run gpu-vm-stop # When done
|
|
321
|
+
npm run gpu-vm-delete # When finished
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
For additional support, check the startup script logs or contact the development team.
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Google Cloud Ops Agent Integration
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
The Google Cloud Ops Agent has been integrated into your startup script (`start.sh`) to provide comprehensive monitoring and logging for your VM.
|
|
5
|
+
|
|
6
|
+
## What It Monitors
|
|
7
|
+
|
|
8
|
+
### System Metrics
|
|
9
|
+
- **CPU utilization** (per core and overall)
|
|
10
|
+
- **Memory usage** (RAM, swap)
|
|
11
|
+
- **Disk I/O** (read/write operations, latency)
|
|
12
|
+
- **Network traffic** (bytes in/out, packets)
|
|
13
|
+
- **GPU metrics** (if GPU present - utilization, memory, temperature)
|
|
14
|
+
|
|
15
|
+
### System Logs
|
|
16
|
+
- **Syslog** (`/var/log/syslog`)
|
|
17
|
+
- **Authentication logs** (`/var/log/auth.log`)
|
|
18
|
+
- **Kernel messages** (`/var/log/kern.log`)
|
|
19
|
+
- **Application logs** (configurable)
|
|
20
|
+
|
|
21
|
+
### Process Metrics
|
|
22
|
+
- **Process count and status**
|
|
23
|
+
- **Resource usage per process**
|
|
24
|
+
- **Custom application metrics** (can be added)
|
|
25
|
+
|
|
26
|
+
## Integration Details
|
|
27
|
+
|
|
28
|
+
### Automatic Installation Process
|
|
29
|
+
The Ops Agent installation in `start.sh` follows this robust logic:
|
|
30
|
+
|
|
31
|
+
1. **Check Status**: Verify if Ops Agent is already installed and running
|
|
32
|
+
2. **Start if Stopped**: If installed but not running, attempt to restart it
|
|
33
|
+
3. **Install if Missing**: If not installed, download and install the latest version
|
|
34
|
+
4. **Verify Installation**: Confirm the agent is working after installation
|
|
35
|
+
5. **Continue Always**: Your application starts regardless of Ops Agent status
|
|
36
|
+
|
|
37
|
+
### Benefits
|
|
38
|
+
- ✅ **Always Available**: Installs automatically every time your VM starts
|
|
39
|
+
- ✅ **Self-Healing**: Restarts the agent if it's stopped
|
|
40
|
+
- ✅ **Non-Blocking**: Your app continues even if monitoring fails
|
|
41
|
+
- ✅ **Latest Version**: Always installs the most recent Ops Agent
|
|
42
|
+
- ✅ **Cross-Platform**: Works on Ubuntu/Debian and CentOS/RHEL
|
|
43
|
+
|
|
44
|
+
### Error Handling
|
|
45
|
+
- Installation failures don't stop your application startup
|
|
46
|
+
- Graceful fallback if Ops Agent is unavailable
|
|
47
|
+
- Detailed logging of installation process
|
|
48
|
+
- Automatic retry mechanisms
|
|
49
|
+
|
|
50
|
+
## Verification
|
|
51
|
+
|
|
52
|
+
### Check Ops Agent Status
|
|
53
|
+
Run the verification script:
|
|
54
|
+
```bash
|
|
55
|
+
./check-ops-agent.sh
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
This will show:
|
|
59
|
+
- Service status
|
|
60
|
+
- Configuration files
|
|
61
|
+
- Recent log entries
|
|
62
|
+
- What metrics are being collected
|
|
63
|
+
|
|
64
|
+
### Cloud Monitoring Console
|
|
65
|
+
View metrics in Google Cloud Console:
|
|
66
|
+
1. Go to **Cloud Monitoring** > **Metrics Explorer**
|
|
67
|
+
2. Filter by your VM instance
|
|
68
|
+
3. Look for metrics like:
|
|
69
|
+
- `compute.googleapis.com/instance/cpu/utilization`
|
|
70
|
+
- `compute.googleapis.com/instance/memory/balloon/ram_used`
|
|
71
|
+
- `compute.googleapis.com/instance/disk/read_bytes_count`
|
|
72
|
+
|
|
73
|
+
## Manual Installation (If Needed)
|
|
74
|
+
|
|
75
|
+
If you need to manually install or reinstall the Ops Agent:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Run the manual installer (recommended)
|
|
79
|
+
./install-ops-agent.sh
|
|
80
|
+
|
|
81
|
+
# Or use the direct Google method
|
|
82
|
+
curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
|
|
83
|
+
sudo bash add-google-cloud-ops-agent-repo.sh --also-install
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The manual installer script (`install-ops-agent.sh`) provides:
|
|
87
|
+
- Interactive prompts and status checks
|
|
88
|
+
- Automatic OS detection
|
|
89
|
+
- Service restart capabilities
|
|
90
|
+
- Comprehensive verification
|
|
91
|
+
- Better error handling than the direct method
|
|
92
|
+
|
|
93
|
+
## Custom Configuration
|
|
94
|
+
|
|
95
|
+
### Adding Application Logs
|
|
96
|
+
Edit `/etc/google-cloud-ops-agent/config.yaml` to add custom log collection:
|
|
97
|
+
```yaml
|
|
98
|
+
logging:
|
|
99
|
+
receivers:
|
|
100
|
+
my-app:
|
|
101
|
+
type: files
|
|
102
|
+
include_paths:
|
|
103
|
+
- /var/log/app/*.log
|
|
104
|
+
record_log_file_path: true
|
|
105
|
+
service:
|
|
106
|
+
pipelines:
|
|
107
|
+
my-app-logs:
|
|
108
|
+
receivers: [my-app]
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Custom Metrics
|
|
112
|
+
Add Prometheus-style metrics collection:
|
|
113
|
+
```yaml
|
|
114
|
+
metrics:
|
|
115
|
+
receivers:
|
|
116
|
+
prometheus:
|
|
117
|
+
type: prometheus
|
|
118
|
+
config:
|
|
119
|
+
scrape_configs:
|
|
120
|
+
- job_name: 'my-app'
|
|
121
|
+
static_configs:
|
|
122
|
+
- targets: ['localhost:8080']
|
|
123
|
+
service:
|
|
124
|
+
pipelines:
|
|
125
|
+
prometheus:
|
|
126
|
+
receivers: [prometheus]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Troubleshooting
|
|
130
|
+
|
|
131
|
+
### Ops Agent Not Starting
|
|
132
|
+
```bash
|
|
133
|
+
# Check service status
|
|
134
|
+
sudo systemctl status google-cloud-ops-agent
|
|
135
|
+
|
|
136
|
+
# View logs
|
|
137
|
+
sudo journalctl -u google-cloud-ops-agent -f
|
|
138
|
+
|
|
139
|
+
# Restart service
|
|
140
|
+
sudo systemctl restart google-cloud-ops-agent
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Metrics Not Appearing
|
|
144
|
+
- Wait 5-10 minutes after installation
|
|
145
|
+
- Check VM has proper IAM permissions for Monitoring
|
|
146
|
+
- Verify Ops Agent service is running
|
|
147
|
+
- Check `/var/log/google-cloud-ops-agent/` for errors
|
|
148
|
+
|
|
149
|
+
### High Resource Usage
|
|
150
|
+
The Ops Agent is lightweight but you can adjust collection intervals in the config file if needed.
|
|
151
|
+
|
|
152
|
+
## Files Overview
|
|
153
|
+
|
|
154
|
+
- **`start.sh`**: Main startup script with automatic Ops Agent installation
|
|
155
|
+
- **`check-ops-agent.sh`**: Comprehensive verification script
|
|
156
|
+
- **`install-ops-agent.sh`**: Manual installation/reinstallation script
|
|
157
|
+
- **`/etc/google-cloud-ops-agent/config.yaml`**: Ops Agent configuration file
|
|
158
|
+
- **`/var/log/google-cloud-ops-agent/`**: Ops Agent log files
|
|
159
|
+
|
|
160
|
+
## Benefits
|
|
161
|
+
|
|
162
|
+
✅ **Automatic monitoring** - No manual setup required
|
|
163
|
+
✅ **Comprehensive coverage** - System, GPU, and application metrics
|
|
164
|
+
✅ **Cloud integration** - Direct integration with Cloud Monitoring
|
|
165
|
+
✅ **Alerting ready** - Set up alerts on metrics thresholds
|
|
166
|
+
✅ **Historical data** - Metrics retained for analysis
|
|
167
|
+
✅ **Multi-environment** - Works across dev, staging, and production
|
|
168
|
+
|
|
169
|
+
## Next Steps
|
|
170
|
+
|
|
171
|
+
1. **Set up alerts** in Cloud Monitoring for critical metrics
|
|
172
|
+
2. **Create dashboards** for your key performance indicators
|
|
173
|
+
3. **Configure log-based metrics** for application-specific monitoring
|
|
174
|
+
4. **Set up uptime checks** for your application endpoints
|