machinaos 0.0.1 → 0.0.6
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/.env.template +71 -71
- package/LICENSE +21 -21
- package/README.md +145 -87
- package/bin/cli.js +62 -106
- package/client/.dockerignore +45 -45
- package/client/Dockerfile +68 -68
- package/client/dist/assets/index-DFSC53FP.css +1 -0
- package/client/dist/assets/index-fJ-1gTf5.js +613 -0
- package/client/dist/index.html +14 -0
- package/client/eslint.config.js +34 -16
- package/client/nginx.conf +66 -66
- package/client/package.json +61 -48
- package/client/src/App.tsx +27 -27
- package/client/src/Dashboard.tsx +1200 -1172
- package/client/src/ParameterPanel.tsx +302 -300
- package/client/src/components/AIAgentNode.tsx +315 -321
- package/client/src/components/APIKeyValidator.tsx +117 -117
- package/client/src/components/ClaudeChatModelNode.tsx +17 -17
- package/client/src/components/CredentialsModal.tsx +1200 -306
- package/client/src/components/GeminiChatModelNode.tsx +17 -17
- package/client/src/components/GenericNode.tsx +356 -356
- package/client/src/components/LocationParameterPanel.tsx +153 -153
- package/client/src/components/ModelNode.tsx +285 -285
- package/client/src/components/OpenAIChatModelNode.tsx +17 -17
- package/client/src/components/OutputPanel.tsx +470 -470
- package/client/src/components/ParameterRenderer.tsx +1873 -1873
- package/client/src/components/SkillEditorModal.tsx +3 -3
- package/client/src/components/SquareNode.tsx +812 -796
- package/client/src/components/ToolkitNode.tsx +365 -365
- package/client/src/components/auth/LoginPage.tsx +247 -247
- package/client/src/components/auth/ProtectedRoute.tsx +59 -59
- package/client/src/components/base/BaseChatModelNode.tsx +270 -270
- package/client/src/components/icons/AIProviderIcons.tsx +50 -50
- package/client/src/components/maps/GoogleMapsPicker.tsx +136 -136
- package/client/src/components/maps/MapsPreviewPanel.tsx +109 -109
- package/client/src/components/maps/index.ts +25 -25
- package/client/src/components/parameterPanel/InputSection.tsx +1094 -1094
- package/client/src/components/parameterPanel/LocationPanelLayout.tsx +64 -64
- package/client/src/components/parameterPanel/MapsSection.tsx +91 -91
- package/client/src/components/parameterPanel/MiddleSection.tsx +867 -571
- package/client/src/components/parameterPanel/OutputSection.tsx +80 -80
- package/client/src/components/parameterPanel/ParameterPanelLayout.tsx +81 -81
- package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +436 -436
- package/client/src/components/parameterPanel/index.ts +41 -41
- package/client/src/components/shared/DataPanel.tsx +142 -142
- package/client/src/components/shared/JSONTreeRenderer.tsx +105 -105
- package/client/src/components/ui/AIResultModal.tsx +203 -203
- package/client/src/components/ui/ApiKeyInput.tsx +93 -0
- package/client/src/components/ui/CodeEditor.tsx +81 -81
- package/client/src/components/ui/CollapsibleSection.tsx +87 -87
- package/client/src/components/ui/ComponentItem.tsx +153 -153
- package/client/src/components/ui/ComponentPalette.tsx +320 -320
- package/client/src/components/ui/ConsolePanel.tsx +151 -43
- package/client/src/components/ui/ErrorBoundary.tsx +195 -195
- package/client/src/components/ui/InputNodesPanel.tsx +203 -203
- package/client/src/components/ui/MapSelector.tsx +313 -313
- package/client/src/components/ui/Modal.tsx +151 -148
- package/client/src/components/ui/NodeOutputPanel.tsx +1150 -1150
- package/client/src/components/ui/OutputDisplayPanel.tsx +381 -381
- package/client/src/components/ui/QRCodeDisplay.tsx +182 -0
- package/client/src/components/ui/TopToolbar.tsx +736 -736
- package/client/src/components/ui/WorkflowSidebar.tsx +293 -293
- package/client/src/config/antdTheme.ts +186 -186
- package/client/src/contexts/AuthContext.tsx +221 -221
- package/client/src/contexts/ThemeContext.tsx +42 -42
- package/client/src/contexts/WebSocketContext.tsx +2144 -1971
- package/client/src/factories/baseChatModelFactory.ts +255 -255
- package/client/src/hooks/useAndroidOperations.ts +118 -164
- package/client/src/hooks/useApiKeyValidation.ts +106 -106
- package/client/src/hooks/useApiKeys.ts +238 -238
- package/client/src/hooks/useAppTheme.ts +17 -17
- package/client/src/hooks/useComponentPalette.ts +50 -50
- package/client/src/hooks/useDragAndDrop.ts +123 -123
- package/client/src/hooks/useDragVariable.ts +88 -88
- package/client/src/hooks/useExecution.ts +319 -313
- package/client/src/hooks/useParameterPanel.ts +176 -176
- package/client/src/hooks/useReactFlowNodes.ts +188 -188
- package/client/src/hooks/useToolSchema.ts +209 -209
- package/client/src/hooks/useWhatsApp.ts +196 -196
- package/client/src/hooks/useWorkflowManagement.ts +45 -45
- package/client/src/index.css +314 -314
- package/client/src/nodeDefinitions/aiAgentNodes.ts +335 -335
- package/client/src/nodeDefinitions/aiModelNodes.ts +340 -340
- package/client/src/nodeDefinitions/androidServiceNodes.ts +383 -383
- package/client/src/nodeDefinitions/chatNodes.ts +135 -135
- package/client/src/nodeDefinitions/codeNodes.ts +54 -54
- package/client/src/nodeDefinitions/index.ts +14 -14
- package/client/src/nodeDefinitions/locationNodes.ts +462 -462
- package/client/src/nodeDefinitions/schedulerNodes.ts +220 -220
- package/client/src/nodeDefinitions/skillNodes.ts +17 -5
- package/client/src/nodeDefinitions/utilityNodes.ts +284 -284
- package/client/src/nodeDefinitions/whatsappNodes.ts +821 -865
- package/client/src/nodeDefinitions.ts +101 -103
- package/client/src/services/dynamicParameterService.ts +95 -95
- package/client/src/services/execution/aiAgentExecutionService.ts +34 -34
- package/client/src/services/executionService.ts +227 -231
- package/client/src/services/workflowApi.ts +91 -91
- package/client/src/store/useAppStore.ts +578 -581
- package/client/src/styles/theme.ts +513 -508
- package/client/src/styles/zIndex.ts +16 -16
- package/client/src/types/ComponentTypes.ts +38 -38
- package/client/src/types/INodeProperties.ts +287 -287
- package/client/src/types/NodeTypes.ts +27 -27
- package/client/src/utils/formatters.ts +32 -32
- package/client/src/utils/googleMapsLoader.ts +139 -139
- package/client/src/utils/locationUtils.ts +84 -84
- package/client/src/utils/nodeUtils.ts +30 -30
- package/client/src/utils/workflow.ts +29 -29
- package/client/src/vite-env.d.ts +12 -12
- package/client/tailwind.config.js +59 -59
- package/client/tsconfig.json +25 -25
- package/client/vite.config.js +35 -35
- package/package.json +78 -70
- package/scripts/build.js +153 -45
- package/scripts/clean.js +40 -40
- package/scripts/start.js +234 -210
- package/scripts/stop.js +301 -325
- package/server/.dockerignore +44 -44
- package/server/Dockerfile +45 -45
- package/server/constants.py +244 -249
- package/server/core/cache.py +460 -460
- package/server/core/config.py +127 -127
- package/server/core/container.py +98 -98
- package/server/core/database.py +1296 -1210
- package/server/core/logging.py +313 -313
- package/server/main.py +288 -288
- package/server/middleware/__init__.py +5 -5
- package/server/middleware/auth.py +89 -89
- package/server/models/auth.py +52 -52
- package/server/models/cache.py +24 -24
- package/server/models/database.py +235 -210
- package/server/models/nodes.py +435 -455
- package/server/pyproject.toml +75 -72
- package/server/requirements.txt +83 -83
- package/server/routers/android.py +294 -294
- package/server/routers/auth.py +203 -203
- package/server/routers/database.py +150 -150
- package/server/routers/maps.py +141 -141
- package/server/routers/nodejs_compat.py +288 -288
- package/server/routers/webhook.py +90 -90
- package/server/routers/websocket.py +2239 -2127
- package/server/routers/whatsapp.py +761 -761
- package/server/routers/workflow.py +199 -199
- package/server/services/ai.py +2444 -2414
- package/server/services/android_service.py +588 -588
- package/server/services/auth.py +130 -130
- package/server/services/chat_client.py +160 -160
- package/server/services/deployment/manager.py +706 -706
- package/server/services/event_waiter.py +675 -785
- package/server/services/execution/executor.py +1351 -1351
- package/server/services/execution/models.py +1 -1
- package/server/services/handlers/__init__.py +122 -126
- package/server/services/handlers/ai.py +390 -355
- package/server/services/handlers/android.py +69 -260
- package/server/services/handlers/code.py +278 -278
- package/server/services/handlers/http.py +193 -193
- package/server/services/handlers/tools.py +146 -32
- package/server/services/handlers/triggers.py +107 -107
- package/server/services/handlers/utility.py +822 -822
- package/server/services/handlers/whatsapp.py +423 -476
- package/server/services/maps.py +288 -288
- package/server/services/memory_store.py +103 -103
- package/server/services/node_executor.py +372 -375
- package/server/services/scheduler.py +155 -155
- package/server/services/skill_loader.py +1 -1
- package/server/services/status_broadcaster.py +834 -826
- package/server/services/temporal/__init__.py +23 -23
- package/server/services/temporal/activities.py +344 -344
- package/server/services/temporal/client.py +76 -76
- package/server/services/temporal/executor.py +147 -147
- package/server/services/temporal/worker.py +251 -251
- package/server/services/temporal/workflow.py +355 -355
- package/server/services/temporal/ws_client.py +236 -236
- package/server/services/text.py +110 -110
- package/server/services/user_auth.py +172 -172
- package/server/services/websocket_client.py +29 -29
- package/server/services/workflow.py +597 -597
- package/server/skills/android-skill/SKILL.md +4 -4
- package/server/skills/code-skill/SKILL.md +123 -89
- package/server/skills/maps-skill/SKILL.md +3 -3
- package/server/skills/memory-skill/SKILL.md +1 -1
- package/server/skills/web-search-skill/SKILL.md +154 -0
- package/server/skills/whatsapp-skill/SKILL.md +3 -3
- package/server/uv.lock +461 -100
- package/server/whatsapp-rpc/.dockerignore +30 -30
- package/server/whatsapp-rpc/Dockerfile +44 -44
- package/server/whatsapp-rpc/Dockerfile.web +17 -17
- package/server/whatsapp-rpc/README.md +139 -139
- package/server/whatsapp-rpc/bin/whatsapp-rpc-server +0 -0
- package/server/whatsapp-rpc/cli.js +95 -95
- package/server/whatsapp-rpc/configs/config.yaml +6 -6
- package/server/whatsapp-rpc/docker-compose.yml +35 -35
- package/server/whatsapp-rpc/docs/API.md +410 -410
- package/server/whatsapp-rpc/node_modules/.package-lock.json +259 -0
- package/server/whatsapp-rpc/node_modules/chalk/license +9 -0
- package/server/whatsapp-rpc/node_modules/chalk/package.json +83 -0
- package/server/whatsapp-rpc/node_modules/chalk/readme.md +297 -0
- package/server/whatsapp-rpc/node_modules/chalk/source/index.d.ts +325 -0
- package/server/whatsapp-rpc/node_modules/chalk/source/index.js +225 -0
- package/server/whatsapp-rpc/node_modules/chalk/source/utilities.js +33 -0
- package/server/whatsapp-rpc/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
- package/server/whatsapp-rpc/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
- package/server/whatsapp-rpc/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
- package/server/whatsapp-rpc/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
- package/server/whatsapp-rpc/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
- package/server/whatsapp-rpc/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
- package/server/whatsapp-rpc/node_modules/commander/LICENSE +22 -0
- package/server/whatsapp-rpc/node_modules/commander/Readme.md +1148 -0
- package/server/whatsapp-rpc/node_modules/commander/esm.mjs +16 -0
- package/server/whatsapp-rpc/node_modules/commander/index.js +26 -0
- package/server/whatsapp-rpc/node_modules/commander/lib/argument.js +145 -0
- package/server/whatsapp-rpc/node_modules/commander/lib/command.js +2179 -0
- package/server/whatsapp-rpc/node_modules/commander/lib/error.js +43 -0
- package/server/whatsapp-rpc/node_modules/commander/lib/help.js +462 -0
- package/server/whatsapp-rpc/node_modules/commander/lib/option.js +329 -0
- package/server/whatsapp-rpc/node_modules/commander/lib/suggestSimilar.js +100 -0
- package/server/whatsapp-rpc/node_modules/commander/package-support.json +16 -0
- package/server/whatsapp-rpc/node_modules/commander/package.json +80 -0
- package/server/whatsapp-rpc/node_modules/commander/typings/esm.d.mts +3 -0
- package/server/whatsapp-rpc/node_modules/commander/typings/index.d.ts +884 -0
- package/server/whatsapp-rpc/node_modules/cross-spawn/LICENSE +21 -0
- package/server/whatsapp-rpc/node_modules/cross-spawn/README.md +89 -0
- package/server/whatsapp-rpc/node_modules/cross-spawn/index.js +39 -0
- package/server/whatsapp-rpc/node_modules/cross-spawn/lib/enoent.js +59 -0
- package/server/whatsapp-rpc/node_modules/cross-spawn/lib/parse.js +91 -0
- package/server/whatsapp-rpc/node_modules/cross-spawn/lib/util/escape.js +47 -0
- package/server/whatsapp-rpc/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
- package/server/whatsapp-rpc/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
- package/server/whatsapp-rpc/node_modules/cross-spawn/package.json +73 -0
- package/server/whatsapp-rpc/node_modules/execa/index.d.ts +955 -0
- package/server/whatsapp-rpc/node_modules/execa/index.js +309 -0
- package/server/whatsapp-rpc/node_modules/execa/lib/command.js +119 -0
- package/server/whatsapp-rpc/node_modules/execa/lib/error.js +87 -0
- package/server/whatsapp-rpc/node_modules/execa/lib/kill.js +102 -0
- package/server/whatsapp-rpc/node_modules/execa/lib/pipe.js +42 -0
- package/server/whatsapp-rpc/node_modules/execa/lib/promise.js +36 -0
- package/server/whatsapp-rpc/node_modules/execa/lib/stdio.js +49 -0
- package/server/whatsapp-rpc/node_modules/execa/lib/stream.js +133 -0
- package/server/whatsapp-rpc/node_modules/execa/lib/verbose.js +19 -0
- package/server/whatsapp-rpc/node_modules/execa/license +9 -0
- package/server/whatsapp-rpc/node_modules/execa/package.json +90 -0
- package/server/whatsapp-rpc/node_modules/execa/readme.md +822 -0
- package/server/whatsapp-rpc/node_modules/get-stream/license +9 -0
- package/server/whatsapp-rpc/node_modules/get-stream/package.json +53 -0
- package/server/whatsapp-rpc/node_modules/get-stream/readme.md +291 -0
- package/server/whatsapp-rpc/node_modules/get-stream/source/array-buffer.js +84 -0
- package/server/whatsapp-rpc/node_modules/get-stream/source/array.js +32 -0
- package/server/whatsapp-rpc/node_modules/get-stream/source/buffer.js +20 -0
- package/server/whatsapp-rpc/node_modules/get-stream/source/contents.js +101 -0
- package/server/whatsapp-rpc/node_modules/get-stream/source/index.d.ts +119 -0
- package/server/whatsapp-rpc/node_modules/get-stream/source/index.js +5 -0
- package/server/whatsapp-rpc/node_modules/get-stream/source/string.js +36 -0
- package/server/whatsapp-rpc/node_modules/get-stream/source/utils.js +11 -0
- package/server/whatsapp-rpc/node_modules/get-them-args/LICENSE +21 -0
- package/server/whatsapp-rpc/node_modules/get-them-args/README.md +95 -0
- package/server/whatsapp-rpc/node_modules/get-them-args/index.js +97 -0
- package/server/whatsapp-rpc/node_modules/get-them-args/package.json +36 -0
- package/server/whatsapp-rpc/node_modules/human-signals/LICENSE +201 -0
- package/server/whatsapp-rpc/node_modules/human-signals/README.md +168 -0
- package/server/whatsapp-rpc/node_modules/human-signals/build/src/core.js +273 -0
- package/server/whatsapp-rpc/node_modules/human-signals/build/src/main.d.ts +73 -0
- package/server/whatsapp-rpc/node_modules/human-signals/build/src/main.js +70 -0
- package/server/whatsapp-rpc/node_modules/human-signals/build/src/realtime.js +16 -0
- package/server/whatsapp-rpc/node_modules/human-signals/build/src/signals.js +34 -0
- package/server/whatsapp-rpc/node_modules/human-signals/package.json +61 -0
- package/server/whatsapp-rpc/node_modules/is-stream/index.d.ts +81 -0
- package/server/whatsapp-rpc/node_modules/is-stream/index.js +29 -0
- package/server/whatsapp-rpc/node_modules/is-stream/license +9 -0
- package/server/whatsapp-rpc/node_modules/is-stream/package.json +44 -0
- package/server/whatsapp-rpc/node_modules/is-stream/readme.md +60 -0
- package/server/whatsapp-rpc/node_modules/isexe/LICENSE +15 -0
- package/server/whatsapp-rpc/node_modules/isexe/README.md +51 -0
- package/server/whatsapp-rpc/node_modules/isexe/index.js +57 -0
- package/server/whatsapp-rpc/node_modules/isexe/mode.js +41 -0
- package/server/whatsapp-rpc/node_modules/isexe/package.json +31 -0
- package/server/whatsapp-rpc/node_modules/isexe/test/basic.js +221 -0
- package/server/whatsapp-rpc/node_modules/isexe/windows.js +42 -0
- package/server/whatsapp-rpc/node_modules/kill-port/.editorconfig +12 -0
- package/server/whatsapp-rpc/node_modules/kill-port/.gitattributes +1 -0
- package/server/whatsapp-rpc/node_modules/kill-port/LICENSE +21 -0
- package/server/whatsapp-rpc/node_modules/kill-port/README.md +140 -0
- package/server/whatsapp-rpc/node_modules/kill-port/cli.js +25 -0
- package/server/whatsapp-rpc/node_modules/kill-port/example.js +21 -0
- package/server/whatsapp-rpc/node_modules/kill-port/index.js +46 -0
- package/server/whatsapp-rpc/node_modules/kill-port/logo.png +0 -0
- package/server/whatsapp-rpc/node_modules/kill-port/package.json +41 -0
- package/server/whatsapp-rpc/node_modules/kill-port/pnpm-lock.yaml +4606 -0
- package/server/whatsapp-rpc/node_modules/kill-port/test.js +16 -0
- package/server/whatsapp-rpc/node_modules/merge-stream/LICENSE +21 -0
- package/server/whatsapp-rpc/node_modules/merge-stream/README.md +78 -0
- package/server/whatsapp-rpc/node_modules/merge-stream/index.js +41 -0
- package/server/whatsapp-rpc/node_modules/merge-stream/package.json +19 -0
- package/server/whatsapp-rpc/node_modules/mimic-fn/index.d.ts +52 -0
- package/server/whatsapp-rpc/node_modules/mimic-fn/index.js +71 -0
- package/server/whatsapp-rpc/node_modules/mimic-fn/license +9 -0
- package/server/whatsapp-rpc/node_modules/mimic-fn/package.json +45 -0
- package/server/whatsapp-rpc/node_modules/mimic-fn/readme.md +90 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/index.d.ts +90 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/index.js +52 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/license +9 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/index.d.ts +31 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/index.js +12 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/license +9 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/package.json +41 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/readme.md +57 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/package.json +49 -0
- package/server/whatsapp-rpc/node_modules/npm-run-path/readme.md +104 -0
- package/server/whatsapp-rpc/node_modules/onetime/index.d.ts +59 -0
- package/server/whatsapp-rpc/node_modules/onetime/index.js +41 -0
- package/server/whatsapp-rpc/node_modules/onetime/license +9 -0
- package/server/whatsapp-rpc/node_modules/onetime/package.json +45 -0
- package/server/whatsapp-rpc/node_modules/onetime/readme.md +94 -0
- package/server/whatsapp-rpc/node_modules/path-key/index.d.ts +40 -0
- package/server/whatsapp-rpc/node_modules/path-key/index.js +16 -0
- package/server/whatsapp-rpc/node_modules/path-key/license +9 -0
- package/server/whatsapp-rpc/node_modules/path-key/package.json +39 -0
- package/server/whatsapp-rpc/node_modules/path-key/readme.md +61 -0
- package/server/whatsapp-rpc/node_modules/shebang-command/index.js +19 -0
- package/server/whatsapp-rpc/node_modules/shebang-command/license +9 -0
- package/server/whatsapp-rpc/node_modules/shebang-command/package.json +34 -0
- package/server/whatsapp-rpc/node_modules/shebang-command/readme.md +34 -0
- package/server/whatsapp-rpc/node_modules/shebang-regex/index.d.ts +22 -0
- package/server/whatsapp-rpc/node_modules/shebang-regex/index.js +2 -0
- package/server/whatsapp-rpc/node_modules/shebang-regex/license +9 -0
- package/server/whatsapp-rpc/node_modules/shebang-regex/package.json +35 -0
- package/server/whatsapp-rpc/node_modules/shebang-regex/readme.md +33 -0
- package/server/whatsapp-rpc/node_modules/shell-exec/LICENSE +21 -0
- package/server/whatsapp-rpc/node_modules/shell-exec/README.md +60 -0
- package/server/whatsapp-rpc/node_modules/shell-exec/index.js +47 -0
- package/server/whatsapp-rpc/node_modules/shell-exec/package.json +29 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/LICENSE.txt +16 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/README.md +74 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/browser.d.ts +12 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/browser.js +10 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/index.d.ts +48 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/index.js +279 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/package.json +3 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/signals.d.ts +29 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/signals.js +42 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/browser.d.ts +12 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/browser.js +4 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/index.d.ts +48 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/index.js +275 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/package.json +3 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/signals.d.ts +29 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/signals.js +39 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
- package/server/whatsapp-rpc/node_modules/signal-exit/package.json +106 -0
- package/server/whatsapp-rpc/node_modules/strip-final-newline/index.js +14 -0
- package/server/whatsapp-rpc/node_modules/strip-final-newline/license +9 -0
- package/server/whatsapp-rpc/node_modules/strip-final-newline/package.json +43 -0
- package/server/whatsapp-rpc/node_modules/strip-final-newline/readme.md +35 -0
- package/server/whatsapp-rpc/node_modules/which/CHANGELOG.md +166 -0
- package/server/whatsapp-rpc/node_modules/which/LICENSE +15 -0
- package/server/whatsapp-rpc/node_modules/which/README.md +54 -0
- package/server/whatsapp-rpc/node_modules/which/bin/node-which +52 -0
- package/server/whatsapp-rpc/node_modules/which/package.json +43 -0
- package/server/whatsapp-rpc/node_modules/which/which.js +125 -0
- package/server/whatsapp-rpc/package-lock.json +272 -0
- package/server/whatsapp-rpc/package.json +30 -30
- package/server/whatsapp-rpc/schema.json +1294 -1294
- package/server/whatsapp-rpc/scripts/clean.cjs +66 -66
- package/server/whatsapp-rpc/scripts/cli.js +162 -162
- package/server/whatsapp-rpc/src/go/whatsapp/history.go +166 -166
- package/server/whatsapp-rpc/src/python/pyproject.toml +15 -15
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/__init__.py +4 -4
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/client.py +427 -427
- package/server/whatsapp-rpc/web/app.py +609 -609
- package/server/whatsapp-rpc/web/requirements.txt +6 -6
- package/server/whatsapp-rpc/web/rpc_client.py +427 -427
- package/server/whatsapp-rpc/web/static/openapi.yaml +59 -59
- package/server/whatsapp-rpc/web/templates/base.html +149 -149
- package/server/whatsapp-rpc/web/templates/contacts.html +240 -240
- package/server/whatsapp-rpc/web/templates/dashboard.html +319 -319
- package/server/whatsapp-rpc/web/templates/groups.html +328 -328
- package/server/whatsapp-rpc/web/templates/messages.html +465 -465
- package/server/whatsapp-rpc/web/templates/messaging.html +680 -680
- package/server/whatsapp-rpc/web/templates/send.html +258 -258
- package/server/whatsapp-rpc/web/templates/settings.html +459 -459
- package/client/src/components/ui/AndroidSettingsPanel.tsx +0 -401
- package/client/src/components/ui/WhatsAppSettingsPanel.tsx +0 -345
- package/client/src/nodeDefinitions/androidDeviceNodes.ts +0 -140
- package/docker-compose.prod.yml +0 -107
- package/docker-compose.yml +0 -104
- package/docs-MachinaOs/README.md +0 -85
- package/docs-MachinaOs/deployment/docker.mdx +0 -228
- package/docs-MachinaOs/deployment/production.mdx +0 -345
- package/docs-MachinaOs/docs.json +0 -75
- package/docs-MachinaOs/faq.mdx +0 -309
- package/docs-MachinaOs/favicon.svg +0 -5
- package/docs-MachinaOs/installation.mdx +0 -160
- package/docs-MachinaOs/introduction.mdx +0 -114
- package/docs-MachinaOs/logo/dark.svg +0 -6
- package/docs-MachinaOs/logo/light.svg +0 -6
- package/docs-MachinaOs/nodes/ai-agent.mdx +0 -216
- package/docs-MachinaOs/nodes/ai-models.mdx +0 -240
- package/docs-MachinaOs/nodes/android.mdx +0 -411
- package/docs-MachinaOs/nodes/overview.mdx +0 -181
- package/docs-MachinaOs/nodes/schedulers.mdx +0 -316
- package/docs-MachinaOs/nodes/webhooks.mdx +0 -330
- package/docs-MachinaOs/nodes/whatsapp.mdx +0 -305
- package/docs-MachinaOs/quickstart.mdx +0 -119
- package/docs-MachinaOs/tutorials/ai-agent-workflow.mdx +0 -177
- package/docs-MachinaOs/tutorials/android-automation.mdx +0 -242
- package/docs-MachinaOs/tutorials/first-workflow.mdx +0 -134
- package/docs-MachinaOs/tutorials/whatsapp-automation.mdx +0 -185
- package/nul +0 -0
- package/scripts/check-ports.ps1 +0 -33
- package/scripts/kill-port.ps1 +0 -154
|
@@ -1,316 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Schedulers & Triggers
|
|
3
|
-
description: Start workflows on schedules, timers, and manual triggers
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Schedulers & Triggers
|
|
7
|
-
|
|
8
|
-
Control when and how workflows start execution.
|
|
9
|
-
|
|
10
|
-
## Available Nodes
|
|
11
|
-
|
|
12
|
-
| Node | Type | Purpose |
|
|
13
|
-
|------|------|---------|
|
|
14
|
-
| Workflow Trigger | Trigger | Manual workflow start |
|
|
15
|
-
| Cron Scheduler | Trigger | Run on cron schedule |
|
|
16
|
-
| Timer | Action | Delay execution |
|
|
17
|
-
| Python Executor | Action | Run Python code |
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Workflow Trigger
|
|
22
|
-
|
|
23
|
-
Manually start a workflow with the Run button.
|
|
24
|
-
|
|
25
|
-
### Use Cases
|
|
26
|
-
|
|
27
|
-
- Testing workflows during development
|
|
28
|
-
- On-demand execution
|
|
29
|
-
- Entry point for manual processes
|
|
30
|
-
|
|
31
|
-
### Output
|
|
32
|
-
|
|
33
|
-
```json
|
|
34
|
-
{
|
|
35
|
-
"triggered_at": "2024-01-15T10:30:00Z",
|
|
36
|
-
"trigger_type": "manual"
|
|
37
|
-
}
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
<Info>
|
|
41
|
-
Every workflow needs at least one trigger node to start execution.
|
|
42
|
-
</Info>
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
|
|
46
|
-
## Cron Scheduler
|
|
47
|
-
|
|
48
|
-
Run workflows on a schedule using cron expressions.
|
|
49
|
-
|
|
50
|
-
### Parameters
|
|
51
|
-
|
|
52
|
-
<ParamField path="cronExpression" type="string" required>
|
|
53
|
-
Cron expression defining the schedule
|
|
54
|
-
</ParamField>
|
|
55
|
-
|
|
56
|
-
<ParamField path="timezone" type="string" default="UTC">
|
|
57
|
-
Timezone for schedule execution
|
|
58
|
-
</ParamField>
|
|
59
|
-
|
|
60
|
-
### Cron Expression Format
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
* * * * *
|
|
64
|
-
│ │ │ │ │
|
|
65
|
-
│ │ │ │ └── Day of week (0-7, Sun=0 or 7)
|
|
66
|
-
│ │ │ └──── Month (1-12)
|
|
67
|
-
│ │ └────── Day of month (1-31)
|
|
68
|
-
│ └──────── Hour (0-23)
|
|
69
|
-
└────────── Minute (0-59)
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Common Expressions
|
|
73
|
-
|
|
74
|
-
| Expression | Description |
|
|
75
|
-
|------------|-------------|
|
|
76
|
-
| `* * * * *` | Every minute |
|
|
77
|
-
| `*/5 * * * *` | Every 5 minutes |
|
|
78
|
-
| `0 * * * *` | Every hour |
|
|
79
|
-
| `0 0 * * *` | Daily at midnight |
|
|
80
|
-
| `0 9 * * 1-5` | Weekdays at 9am |
|
|
81
|
-
| `0 0 1 * *` | First day of month |
|
|
82
|
-
| `0 12 * * 0` | Sundays at noon |
|
|
83
|
-
|
|
84
|
-
### Output
|
|
85
|
-
|
|
86
|
-
```json
|
|
87
|
-
{
|
|
88
|
-
"triggered_at": "2024-01-15T09:00:00Z",
|
|
89
|
-
"trigger_type": "cron",
|
|
90
|
-
"expression": "0 9 * * *",
|
|
91
|
-
"next_run": "2024-01-16T09:00:00Z"
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Example: Daily Report
|
|
96
|
-
|
|
97
|
-
```
|
|
98
|
-
[Cron (0 9 * * *)] --> [HTTP Request] --> [AI Summary] --> [WhatsApp Send]
|
|
99
|
-
(fetch data) (send report)
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## Timer
|
|
105
|
-
|
|
106
|
-
Add a delay between nodes.
|
|
107
|
-
|
|
108
|
-
### Parameters
|
|
109
|
-
|
|
110
|
-
<ParamField path="delay" type="number" required>
|
|
111
|
-
Delay duration
|
|
112
|
-
</ParamField>
|
|
113
|
-
|
|
114
|
-
<ParamField path="unit" type="select" default="seconds">
|
|
115
|
-
Time unit: seconds, minutes, hours
|
|
116
|
-
</ParamField>
|
|
117
|
-
|
|
118
|
-
### Use Cases
|
|
119
|
-
|
|
120
|
-
- Rate limiting API calls
|
|
121
|
-
- Waiting for external processes
|
|
122
|
-
- Scheduling sequential actions
|
|
123
|
-
|
|
124
|
-
### Example: Rate-Limited API Calls
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
[For Each Item] --> [HTTP Request] --> [Timer (1s)] --> [Next Item]
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Output
|
|
131
|
-
|
|
132
|
-
```json
|
|
133
|
-
{
|
|
134
|
-
"delayed": true,
|
|
135
|
-
"duration_ms": 5000,
|
|
136
|
-
"completed_at": "2024-01-15T10:30:05Z"
|
|
137
|
-
}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## Python Executor
|
|
143
|
-
|
|
144
|
-
Run custom Python code within workflows.
|
|
145
|
-
|
|
146
|
-
### Parameters
|
|
147
|
-
|
|
148
|
-
<ParamField path="code" type="code" required>
|
|
149
|
-
Python code to execute
|
|
150
|
-
</ParamField>
|
|
151
|
-
|
|
152
|
-
### Available Variables
|
|
153
|
-
|
|
154
|
-
| Variable | Description |
|
|
155
|
-
|----------|-------------|
|
|
156
|
-
| `input_data` | Data from connected input node |
|
|
157
|
-
| `output` | Dictionary to set as node output |
|
|
158
|
-
|
|
159
|
-
### Example: Data Processing
|
|
160
|
-
|
|
161
|
-
```python
|
|
162
|
-
# Access input data
|
|
163
|
-
message = input_data.get("text", "")
|
|
164
|
-
|
|
165
|
-
# Process
|
|
166
|
-
word_count = len(message.split())
|
|
167
|
-
has_question = "?" in message
|
|
168
|
-
|
|
169
|
-
# Set output
|
|
170
|
-
output = {
|
|
171
|
-
"word_count": word_count,
|
|
172
|
-
"has_question": has_question,
|
|
173
|
-
"summary": f"Message has {word_count} words"
|
|
174
|
-
}
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
### Example: Conditional Logic
|
|
178
|
-
|
|
179
|
-
```python
|
|
180
|
-
level = input_data.get("battery_level", 100)
|
|
181
|
-
is_charging = input_data.get("is_charging", False)
|
|
182
|
-
|
|
183
|
-
if level < 20 and not is_charging:
|
|
184
|
-
output = {
|
|
185
|
-
"action": "alert",
|
|
186
|
-
"message": f"Low battery: {level}%"
|
|
187
|
-
}
|
|
188
|
-
else:
|
|
189
|
-
output = {
|
|
190
|
-
"action": "none"
|
|
191
|
-
}
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
### Example: API Response Formatting
|
|
195
|
-
|
|
196
|
-
```python
|
|
197
|
-
import json
|
|
198
|
-
|
|
199
|
-
# Parse response
|
|
200
|
-
data = input_data.get("data", {})
|
|
201
|
-
items = data.get("items", [])
|
|
202
|
-
|
|
203
|
-
# Format for output
|
|
204
|
-
formatted = []
|
|
205
|
-
for item in items:
|
|
206
|
-
formatted.append({
|
|
207
|
-
"name": item.get("name"),
|
|
208
|
-
"price": f"${item.get('price', 0):.2f}"
|
|
209
|
-
})
|
|
210
|
-
|
|
211
|
-
output = {
|
|
212
|
-
"count": len(formatted),
|
|
213
|
-
"items": formatted
|
|
214
|
-
}
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### Available Libraries
|
|
218
|
-
|
|
219
|
-
The Python executor includes common libraries:
|
|
220
|
-
- `json` - JSON parsing
|
|
221
|
-
- `datetime` - Date/time handling
|
|
222
|
-
- `re` - Regular expressions
|
|
223
|
-
- `math` - Mathematical functions
|
|
224
|
-
|
|
225
|
-
<Warning>
|
|
226
|
-
Code runs in a sandboxed environment. File system and network access are restricted.
|
|
227
|
-
</Warning>
|
|
228
|
-
|
|
229
|
-
---
|
|
230
|
-
|
|
231
|
-
## Combining Schedulers
|
|
232
|
-
|
|
233
|
-
### Schedule with Delay
|
|
234
|
-
|
|
235
|
-
```
|
|
236
|
-
[Cron (hourly)] --> [HTTP Request] --> [Timer (5s)] --> [HTTP Request #2]
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### Multiple Schedules
|
|
240
|
-
|
|
241
|
-
Deploy workflows with different schedules:
|
|
242
|
-
|
|
243
|
-
```
|
|
244
|
-
Workflow 1: [Cron (daily)] --> [Daily Report]
|
|
245
|
-
Workflow 2: [Cron (hourly)] --> [Hourly Check]
|
|
246
|
-
Workflow 3: [Webhook] --> [On-Demand Action]
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
---
|
|
250
|
-
|
|
251
|
-
## Workflow States
|
|
252
|
-
|
|
253
|
-
After deployment, trigger nodes show their state:
|
|
254
|
-
|
|
255
|
-
| State | Color | Description |
|
|
256
|
-
|-------|-------|-------------|
|
|
257
|
-
| Idle | Default | Waiting for next trigger |
|
|
258
|
-
| Waiting | Cyan | Actively waiting for event |
|
|
259
|
-
| Running | Purple | Workflow executing |
|
|
260
|
-
|
|
261
|
-
---
|
|
262
|
-
|
|
263
|
-
## Tips
|
|
264
|
-
|
|
265
|
-
<Tip>
|
|
266
|
-
Test cron expressions at [crontab.guru](https://crontab.guru) before deploying.
|
|
267
|
-
</Tip>
|
|
268
|
-
|
|
269
|
-
<Tip>
|
|
270
|
-
Use **Python Executor** for conditional logic instead of multiple workflow branches.
|
|
271
|
-
</Tip>
|
|
272
|
-
|
|
273
|
-
<Tip>
|
|
274
|
-
Add **Timer** nodes when calling rate-limited APIs repeatedly.
|
|
275
|
-
</Tip>
|
|
276
|
-
|
|
277
|
-
<Warning>
|
|
278
|
-
Cron schedules are in **UTC** by default. Set timezone if needed.
|
|
279
|
-
</Warning>
|
|
280
|
-
|
|
281
|
-
---
|
|
282
|
-
|
|
283
|
-
## Troubleshooting
|
|
284
|
-
|
|
285
|
-
<Accordion title="Cron not triggering">
|
|
286
|
-
- Verify workflow is **deployed** (not just saved)
|
|
287
|
-
- Check cron expression syntax
|
|
288
|
-
- Ensure timezone is correct
|
|
289
|
-
- Check server logs for errors
|
|
290
|
-
</Accordion>
|
|
291
|
-
|
|
292
|
-
<Accordion title="Python code fails">
|
|
293
|
-
- Check for syntax errors
|
|
294
|
-
- Verify `input_data` has expected fields
|
|
295
|
-
- Use `try/except` for error handling
|
|
296
|
-
- Print debug info with `print()` (shows in logs)
|
|
297
|
-
</Accordion>
|
|
298
|
-
|
|
299
|
-
<Accordion title="Timer not working">
|
|
300
|
-
- Ensure delay value is positive
|
|
301
|
-
- Check unit (seconds vs minutes)
|
|
302
|
-
- Verify node is connected properly
|
|
303
|
-
</Accordion>
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
## Related
|
|
308
|
-
|
|
309
|
-
<CardGroup cols={2}>
|
|
310
|
-
<Card title="Webhooks" icon="webhook" href="/nodes/webhooks">
|
|
311
|
-
Trigger workflows via HTTP
|
|
312
|
-
</Card>
|
|
313
|
-
<Card title="WhatsApp" icon="whatsapp" href="/nodes/whatsapp">
|
|
314
|
-
Message-triggered workflows
|
|
315
|
-
</Card>
|
|
316
|
-
</CardGroup>
|
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Webhooks & HTTP
|
|
3
|
-
description: HTTP requests and webhook handling nodes
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Webhooks & HTTP
|
|
7
|
-
|
|
8
|
-
Make HTTP requests to external APIs and receive incoming webhooks.
|
|
9
|
-
|
|
10
|
-
## Available Nodes
|
|
11
|
-
|
|
12
|
-
| Node | Type | Purpose |
|
|
13
|
-
|------|------|---------|
|
|
14
|
-
| HTTP Request | Action | Make outgoing HTTP calls |
|
|
15
|
-
| Webhook Trigger | Trigger | Receive incoming HTTP requests |
|
|
16
|
-
| Webhook Response | Action | Send custom response to webhook caller |
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## HTTP Request
|
|
21
|
-
|
|
22
|
-
Make HTTP requests to external APIs and services.
|
|
23
|
-
|
|
24
|
-
### Parameters
|
|
25
|
-
|
|
26
|
-
<ParamField path="url" type="string" required>
|
|
27
|
-
The URL to request. Supports template variables.
|
|
28
|
-
</ParamField>
|
|
29
|
-
|
|
30
|
-
<ParamField path="method" type="select" default="GET">
|
|
31
|
-
HTTP method: GET, POST, PUT, DELETE, PATCH
|
|
32
|
-
</ParamField>
|
|
33
|
-
|
|
34
|
-
<ParamField path="headers" type="json">
|
|
35
|
-
Request headers as JSON object
|
|
36
|
-
</ParamField>
|
|
37
|
-
|
|
38
|
-
<ParamField path="body" type="string">
|
|
39
|
-
Request body (for POST, PUT, PATCH)
|
|
40
|
-
</ParamField>
|
|
41
|
-
|
|
42
|
-
<ParamField path="timeout" type="number" default="30">
|
|
43
|
-
Request timeout in seconds
|
|
44
|
-
</ParamField>
|
|
45
|
-
|
|
46
|
-
### Output
|
|
47
|
-
|
|
48
|
-
```json
|
|
49
|
-
{
|
|
50
|
-
"status": 200,
|
|
51
|
-
"statusText": "OK",
|
|
52
|
-
"headers": {
|
|
53
|
-
"content-type": "application/json"
|
|
54
|
-
},
|
|
55
|
-
"data": {
|
|
56
|
-
"result": "response data"
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Examples
|
|
62
|
-
|
|
63
|
-
**GET Request:**
|
|
64
|
-
```
|
|
65
|
-
URL: https://api.example.com/users/{{input.user_id}}
|
|
66
|
-
Method: GET
|
|
67
|
-
Headers: {"Authorization": "Bearer {{input.token}}"}
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**POST Request:**
|
|
71
|
-
```
|
|
72
|
-
URL: https://api.example.com/orders
|
|
73
|
-
Method: POST
|
|
74
|
-
Headers: {"Content-Type": "application/json"}
|
|
75
|
-
Body: {"product": "{{input.product}}", "quantity": {{input.qty}}}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**External API Integration:**
|
|
79
|
-
```
|
|
80
|
-
URL: https://api.openweathermap.org/data/2.5/weather?q={{input.city}}&appid=YOUR_KEY
|
|
81
|
-
Method: GET
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Webhook Trigger
|
|
87
|
-
|
|
88
|
-
Receive incoming HTTP requests at a dynamic endpoint.
|
|
89
|
-
|
|
90
|
-
### Parameters
|
|
91
|
-
|
|
92
|
-
<ParamField path="path" type="string" required>
|
|
93
|
-
The webhook path (e.g., "orders" creates /webhook/orders)
|
|
94
|
-
</ParamField>
|
|
95
|
-
|
|
96
|
-
<ParamField path="method" type="select" default="POST">
|
|
97
|
-
HTTP method filter: GET, POST, PUT, DELETE, PATCH, or ANY
|
|
98
|
-
</ParamField>
|
|
99
|
-
|
|
100
|
-
<ParamField path="authentication" type="select" default="none">
|
|
101
|
-
Auth method: none, basic, bearer, api_key
|
|
102
|
-
</ParamField>
|
|
103
|
-
|
|
104
|
-
### Webhook URL
|
|
105
|
-
|
|
106
|
-
Your webhook will be available at:
|
|
107
|
-
```
|
|
108
|
-
http://localhost:3010/webhook/{path}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
For production:
|
|
112
|
-
```
|
|
113
|
-
https://your-domain.com/webhook/{path}
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Output
|
|
117
|
-
|
|
118
|
-
```json
|
|
119
|
-
{
|
|
120
|
-
"method": "POST",
|
|
121
|
-
"path": "/webhook/orders",
|
|
122
|
-
"headers": {
|
|
123
|
-
"content-type": "application/json",
|
|
124
|
-
"user-agent": "curl/7.68.0"
|
|
125
|
-
},
|
|
126
|
-
"query": {
|
|
127
|
-
"source": "website"
|
|
128
|
-
},
|
|
129
|
-
"body": {
|
|
130
|
-
"order_id": "12345",
|
|
131
|
-
"items": ["item1", "item2"]
|
|
132
|
-
},
|
|
133
|
-
"timestamp": "2024-01-15T10:30:00Z"
|
|
134
|
-
}
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### Authentication Options
|
|
138
|
-
|
|
139
|
-
| Type | Description | Header |
|
|
140
|
-
|------|-------------|--------|
|
|
141
|
-
| None | No authentication | - |
|
|
142
|
-
| Basic | Username:password base64 | `Authorization: Basic ...` |
|
|
143
|
-
| Bearer | Token authentication | `Authorization: Bearer ...` |
|
|
144
|
-
| API Key | Custom API key | `X-API-Key: ...` |
|
|
145
|
-
|
|
146
|
-
---
|
|
147
|
-
|
|
148
|
-
## Webhook Response
|
|
149
|
-
|
|
150
|
-
Send a custom response back to the webhook caller.
|
|
151
|
-
|
|
152
|
-
### Parameters
|
|
153
|
-
|
|
154
|
-
<ParamField path="statusCode" type="number" default="200">
|
|
155
|
-
HTTP status code to return
|
|
156
|
-
</ParamField>
|
|
157
|
-
|
|
158
|
-
<ParamField path="body" type="string">
|
|
159
|
-
Response body. Supports template variables.
|
|
160
|
-
</ParamField>
|
|
161
|
-
|
|
162
|
-
<ParamField path="contentType" type="select" default="application/json">
|
|
163
|
-
Content-Type header: application/json, text/plain, text/html
|
|
164
|
-
</ParamField>
|
|
165
|
-
|
|
166
|
-
### Example Responses
|
|
167
|
-
|
|
168
|
-
**Success Response:**
|
|
169
|
-
```
|
|
170
|
-
Status Code: 200
|
|
171
|
-
Body: {"success": true, "message": "Order received", "id": "{{generated.id}}"}
|
|
172
|
-
Content Type: application/json
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
**Error Response:**
|
|
176
|
-
```
|
|
177
|
-
Status Code: 400
|
|
178
|
-
Body: {"error": "Invalid request", "details": "{{validation.error}}"}
|
|
179
|
-
Content Type: application/json
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
**HTML Response:**
|
|
183
|
-
```
|
|
184
|
-
Status Code: 200
|
|
185
|
-
Body: <html><body><h1>Thank you!</h1></body></html>
|
|
186
|
-
Content Type: text/html
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
## Common Workflows
|
|
192
|
-
|
|
193
|
-
### API Endpoint
|
|
194
|
-
|
|
195
|
-
Create a simple API endpoint:
|
|
196
|
-
|
|
197
|
-
```
|
|
198
|
-
[Webhook Trigger] --> [Python Executor] --> [Webhook Response]
|
|
199
|
-
(path: api) (process data) (return result)
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**Test:**
|
|
203
|
-
```bash
|
|
204
|
-
curl -X POST http://localhost:3010/webhook/api \
|
|
205
|
-
-H "Content-Type: application/json" \
|
|
206
|
-
-d '{"action": "calculate", "value": 100}'
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### Third-Party Integration
|
|
210
|
-
|
|
211
|
-
Receive events from external services:
|
|
212
|
-
|
|
213
|
-
```
|
|
214
|
-
[Webhook Trigger] --> [HTTP Request] --> [WhatsApp Send]
|
|
215
|
-
(stripe/github) (fetch details) (notify admin)
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### Data Pipeline
|
|
219
|
-
|
|
220
|
-
Forward data to multiple destinations:
|
|
221
|
-
|
|
222
|
-
```
|
|
223
|
-
[Webhook Trigger] --> [HTTP Request #1] (Database API)
|
|
224
|
-
|
|
|
225
|
-
--> [HTTP Request #2] (Analytics)
|
|
226
|
-
|
|
|
227
|
-
--> [WhatsApp Send] (Notification)
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### AI-Powered API
|
|
231
|
-
|
|
232
|
-
Create an AI endpoint:
|
|
233
|
-
|
|
234
|
-
```
|
|
235
|
-
[Webhook Trigger] --> [OpenAI Chat] --> [Webhook Response]
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
**Prompt:** `{{webhookTrigger.body.prompt}}`
|
|
239
|
-
|
|
240
|
-
**Response:** `{{openaiChatModel.response}}`
|
|
241
|
-
|
|
242
|
-
---
|
|
243
|
-
|
|
244
|
-
## Testing Webhooks
|
|
245
|
-
|
|
246
|
-
### Using curl
|
|
247
|
-
|
|
248
|
-
```bash
|
|
249
|
-
# GET request
|
|
250
|
-
curl http://localhost:3010/webhook/test
|
|
251
|
-
|
|
252
|
-
# POST with JSON
|
|
253
|
-
curl -X POST http://localhost:3010/webhook/orders \
|
|
254
|
-
-H "Content-Type: application/json" \
|
|
255
|
-
-d '{"item": "Widget", "quantity": 5}'
|
|
256
|
-
|
|
257
|
-
# With authentication
|
|
258
|
-
curl -X POST http://localhost:3010/webhook/secure \
|
|
259
|
-
-H "Authorization: Bearer your-token" \
|
|
260
|
-
-d '{"data": "value"}'
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### Using HTTPie
|
|
264
|
-
|
|
265
|
-
```bash
|
|
266
|
-
http POST localhost:3010/webhook/test item=Widget quantity:=5
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
### External Testing
|
|
270
|
-
|
|
271
|
-
Use services like:
|
|
272
|
-
- [webhook.site](https://webhook.site) - Test outgoing webhooks
|
|
273
|
-
- [ngrok](https://ngrok.com) - Expose local webhooks publicly
|
|
274
|
-
|
|
275
|
-
---
|
|
276
|
-
|
|
277
|
-
## Tips
|
|
278
|
-
|
|
279
|
-
<Tip>
|
|
280
|
-
Use **meaningful paths** that describe the purpose: `/webhook/orders`, `/webhook/stripe-events`
|
|
281
|
-
</Tip>
|
|
282
|
-
|
|
283
|
-
<Tip>
|
|
284
|
-
Always **validate incoming data** before processing with Python Executor or similar.
|
|
285
|
-
</Tip>
|
|
286
|
-
|
|
287
|
-
<Tip>
|
|
288
|
-
Return **appropriate status codes**: 200 (success), 400 (bad request), 500 (server error)
|
|
289
|
-
</Tip>
|
|
290
|
-
|
|
291
|
-
<Warning>
|
|
292
|
-
In production, always enable authentication on webhooks that modify data.
|
|
293
|
-
</Warning>
|
|
294
|
-
|
|
295
|
-
---
|
|
296
|
-
|
|
297
|
-
## Troubleshooting
|
|
298
|
-
|
|
299
|
-
<Accordion title="Webhook not receiving requests">
|
|
300
|
-
- Verify workflow is **deployed** (not just saved)
|
|
301
|
-
- Check the path is correct (no leading slash)
|
|
302
|
-
- Ensure backend is running on correct port
|
|
303
|
-
- Check firewall/network settings
|
|
304
|
-
</Accordion>
|
|
305
|
-
|
|
306
|
-
<Accordion title="HTTP Request fails">
|
|
307
|
-
- Verify URL is correct and accessible
|
|
308
|
-
- Check headers (especially Content-Type)
|
|
309
|
-
- Look for CORS issues if calling from browser
|
|
310
|
-
- Check timeout setting for slow APIs
|
|
311
|
-
</Accordion>
|
|
312
|
-
|
|
313
|
-
<Accordion title="Response not sent">
|
|
314
|
-
- Ensure Webhook Response is connected to workflow
|
|
315
|
-
- Verify template variables resolve correctly
|
|
316
|
-
- Check status code is valid (100-599)
|
|
317
|
-
</Accordion>
|
|
318
|
-
|
|
319
|
-
---
|
|
320
|
-
|
|
321
|
-
## Related
|
|
322
|
-
|
|
323
|
-
<CardGroup cols={2}>
|
|
324
|
-
<Card title="Quick Start" icon="rocket" href="/quickstart">
|
|
325
|
-
Build a webhook workflow
|
|
326
|
-
</Card>
|
|
327
|
-
<Card title="Python Executor" icon="code" href="/nodes/schedulers">
|
|
328
|
-
Process webhook data
|
|
329
|
-
</Card>
|
|
330
|
-
</CardGroup>
|