machinaos 0.0.1
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 -0
- package/LICENSE +21 -0
- package/README.md +87 -0
- package/bin/cli.js +159 -0
- package/client/.dockerignore +45 -0
- package/client/Dockerfile +68 -0
- package/client/eslint.config.js +29 -0
- package/client/index.html +13 -0
- package/client/nginx.conf +66 -0
- package/client/package.json +48 -0
- package/client/src/App.tsx +27 -0
- package/client/src/Dashboard.tsx +1173 -0
- package/client/src/ParameterPanel.tsx +301 -0
- package/client/src/components/AIAgentNode.tsx +321 -0
- package/client/src/components/APIKeyValidator.tsx +118 -0
- package/client/src/components/ClaudeChatModelNode.tsx +18 -0
- package/client/src/components/ConditionalEdge.tsx +189 -0
- package/client/src/components/CredentialsModal.tsx +306 -0
- package/client/src/components/EdgeConditionEditor.tsx +443 -0
- package/client/src/components/GeminiChatModelNode.tsx +18 -0
- package/client/src/components/GenericNode.tsx +357 -0
- package/client/src/components/LocationParameterPanel.tsx +154 -0
- package/client/src/components/ModelNode.tsx +286 -0
- package/client/src/components/OpenAIChatModelNode.tsx +18 -0
- package/client/src/components/OutputPanel.tsx +471 -0
- package/client/src/components/ParameterRenderer.tsx +1874 -0
- package/client/src/components/SkillEditorModal.tsx +417 -0
- package/client/src/components/SquareNode.tsx +797 -0
- package/client/src/components/StartNode.tsx +250 -0
- package/client/src/components/ToolkitNode.tsx +365 -0
- package/client/src/components/TriggerNode.tsx +463 -0
- package/client/src/components/auth/LoginPage.tsx +247 -0
- package/client/src/components/auth/ProtectedRoute.tsx +59 -0
- package/client/src/components/base/BaseChatModelNode.tsx +271 -0
- package/client/src/components/icons/AIProviderIcons.tsx +50 -0
- package/client/src/components/maps/GoogleMapsPicker.tsx +137 -0
- package/client/src/components/maps/MapsPreviewPanel.tsx +110 -0
- package/client/src/components/maps/index.ts +26 -0
- package/client/src/components/parameterPanel/InputSection.tsx +1094 -0
- package/client/src/components/parameterPanel/LocationPanelLayout.tsx +65 -0
- package/client/src/components/parameterPanel/MapsSection.tsx +92 -0
- package/client/src/components/parameterPanel/MiddleSection.tsx +571 -0
- package/client/src/components/parameterPanel/OutputSection.tsx +81 -0
- package/client/src/components/parameterPanel/ParameterPanelLayout.tsx +82 -0
- package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +436 -0
- package/client/src/components/parameterPanel/index.ts +42 -0
- package/client/src/components/shared/DataPanel.tsx +142 -0
- package/client/src/components/shared/JSONTreeRenderer.tsx +106 -0
- package/client/src/components/ui/AIResultModal.tsx +204 -0
- package/client/src/components/ui/AndroidSettingsPanel.tsx +401 -0
- package/client/src/components/ui/CodeEditor.tsx +81 -0
- package/client/src/components/ui/CollapsibleSection.tsx +88 -0
- package/client/src/components/ui/ComponentItem.tsx +154 -0
- package/client/src/components/ui/ComponentPalette.tsx +321 -0
- package/client/src/components/ui/ConsolePanel.tsx +1074 -0
- package/client/src/components/ui/ErrorBoundary.tsx +196 -0
- package/client/src/components/ui/InputNodesPanel.tsx +204 -0
- package/client/src/components/ui/MapSelector.tsx +314 -0
- package/client/src/components/ui/Modal.tsx +149 -0
- package/client/src/components/ui/NodeContextMenu.tsx +192 -0
- package/client/src/components/ui/NodeOutputPanel.tsx +1150 -0
- package/client/src/components/ui/OutputDisplayPanel.tsx +381 -0
- package/client/src/components/ui/SettingsPanel.tsx +243 -0
- package/client/src/components/ui/TopToolbar.tsx +736 -0
- package/client/src/components/ui/WhatsAppSettingsPanel.tsx +345 -0
- package/client/src/components/ui/WorkflowSidebar.tsx +294 -0
- package/client/src/config/antdTheme.ts +186 -0
- package/client/src/config/api.ts +54 -0
- package/client/src/contexts/AuthContext.tsx +221 -0
- package/client/src/contexts/ThemeContext.tsx +42 -0
- package/client/src/contexts/WebSocketContext.tsx +1971 -0
- package/client/src/factories/baseChatModelFactory.ts +256 -0
- package/client/src/hooks/useAndroidOperations.ts +164 -0
- package/client/src/hooks/useApiKeyValidation.ts +107 -0
- package/client/src/hooks/useApiKeys.ts +238 -0
- package/client/src/hooks/useAppTheme.ts +17 -0
- package/client/src/hooks/useComponentPalette.ts +51 -0
- package/client/src/hooks/useCopyPaste.ts +155 -0
- package/client/src/hooks/useDragAndDrop.ts +124 -0
- package/client/src/hooks/useDragVariable.ts +88 -0
- package/client/src/hooks/useExecution.ts +313 -0
- package/client/src/hooks/useParameterPanel.ts +176 -0
- package/client/src/hooks/useReactFlowNodes.ts +189 -0
- package/client/src/hooks/useToolSchema.ts +209 -0
- package/client/src/hooks/useWhatsApp.ts +196 -0
- package/client/src/hooks/useWorkflowManagement.ts +46 -0
- package/client/src/index.css +315 -0
- package/client/src/main.tsx +19 -0
- package/client/src/nodeDefinitions/aiAgentNodes.ts +336 -0
- package/client/src/nodeDefinitions/aiModelNodes.ts +340 -0
- package/client/src/nodeDefinitions/androidDeviceNodes.ts +140 -0
- package/client/src/nodeDefinitions/androidServiceNodes.ts +383 -0
- package/client/src/nodeDefinitions/chatNodes.ts +135 -0
- package/client/src/nodeDefinitions/codeNodes.ts +54 -0
- package/client/src/nodeDefinitions/documentNodes.ts +379 -0
- package/client/src/nodeDefinitions/index.ts +15 -0
- package/client/src/nodeDefinitions/locationNodes.ts +463 -0
- package/client/src/nodeDefinitions/schedulerNodes.ts +220 -0
- package/client/src/nodeDefinitions/skillNodes.ts +211 -0
- package/client/src/nodeDefinitions/toolNodes.ts +198 -0
- package/client/src/nodeDefinitions/utilityNodes.ts +284 -0
- package/client/src/nodeDefinitions/whatsappNodes.ts +865 -0
- package/client/src/nodeDefinitions/workflowNodes.ts +41 -0
- package/client/src/nodeDefinitions.ts +104 -0
- package/client/src/schemas/workflowSchema.ts +264 -0
- package/client/src/services/dynamicParameterService.ts +96 -0
- package/client/src/services/execution/aiAgentExecutionService.ts +35 -0
- package/client/src/services/executionService.ts +232 -0
- package/client/src/services/workflowApi.ts +91 -0
- package/client/src/store/useAppStore.ts +582 -0
- package/client/src/styles/theme.ts +508 -0
- package/client/src/styles/zIndex.ts +17 -0
- package/client/src/types/ComponentTypes.ts +39 -0
- package/client/src/types/EdgeCondition.ts +231 -0
- package/client/src/types/INodeProperties.ts +288 -0
- package/client/src/types/NodeTypes.ts +28 -0
- package/client/src/utils/formatters.ts +33 -0
- package/client/src/utils/googleMapsLoader.ts +140 -0
- package/client/src/utils/locationUtils.ts +85 -0
- package/client/src/utils/nodeUtils.ts +31 -0
- package/client/src/utils/workflow.ts +30 -0
- package/client/src/utils/workflowExport.ts +120 -0
- package/client/src/vite-env.d.ts +12 -0
- package/client/tailwind.config.js +60 -0
- package/client/tsconfig.json +25 -0
- package/client/tsconfig.node.json +11 -0
- package/client/vite.config.js +35 -0
- package/docker-compose.prod.yml +107 -0
- package/docker-compose.yml +104 -0
- package/docs-MachinaOs/README.md +85 -0
- package/docs-MachinaOs/deployment/docker.mdx +228 -0
- package/docs-MachinaOs/deployment/production.mdx +345 -0
- package/docs-MachinaOs/docs.json +75 -0
- package/docs-MachinaOs/faq.mdx +309 -0
- package/docs-MachinaOs/favicon.svg +5 -0
- package/docs-MachinaOs/installation.mdx +160 -0
- package/docs-MachinaOs/introduction.mdx +114 -0
- package/docs-MachinaOs/logo/dark.svg +6 -0
- package/docs-MachinaOs/logo/light.svg +6 -0
- package/docs-MachinaOs/nodes/ai-agent.mdx +216 -0
- package/docs-MachinaOs/nodes/ai-models.mdx +240 -0
- package/docs-MachinaOs/nodes/android.mdx +411 -0
- package/docs-MachinaOs/nodes/overview.mdx +181 -0
- package/docs-MachinaOs/nodes/schedulers.mdx +316 -0
- package/docs-MachinaOs/nodes/webhooks.mdx +330 -0
- package/docs-MachinaOs/nodes/whatsapp.mdx +305 -0
- package/docs-MachinaOs/quickstart.mdx +119 -0
- package/docs-MachinaOs/tutorials/ai-agent-workflow.mdx +177 -0
- package/docs-MachinaOs/tutorials/android-automation.mdx +242 -0
- package/docs-MachinaOs/tutorials/first-workflow.mdx +134 -0
- package/docs-MachinaOs/tutorials/whatsapp-automation.mdx +185 -0
- package/nul +0 -0
- package/package.json +70 -0
- package/scripts/build.js +158 -0
- package/scripts/check-ports.ps1 +33 -0
- package/scripts/clean.js +40 -0
- package/scripts/docker.js +93 -0
- package/scripts/kill-port.ps1 +154 -0
- package/scripts/start.js +210 -0
- package/scripts/stop.js +325 -0
- package/server/.dockerignore +44 -0
- package/server/Dockerfile +45 -0
- package/server/constants.py +249 -0
- package/server/core/__init__.py +1 -0
- package/server/core/cache.py +461 -0
- package/server/core/config.py +128 -0
- package/server/core/container.py +99 -0
- package/server/core/database.py +1211 -0
- package/server/core/logging.py +314 -0
- package/server/main.py +289 -0
- package/server/middleware/__init__.py +5 -0
- package/server/middleware/auth.py +89 -0
- package/server/models/__init__.py +1 -0
- package/server/models/auth.py +52 -0
- package/server/models/cache.py +24 -0
- package/server/models/database.py +211 -0
- package/server/models/nodes.py +455 -0
- package/server/package.json +9 -0
- package/server/pyproject.toml +72 -0
- package/server/requirements.txt +83 -0
- package/server/routers/__init__.py +1 -0
- package/server/routers/android.py +294 -0
- package/server/routers/auth.py +203 -0
- package/server/routers/database.py +151 -0
- package/server/routers/maps.py +142 -0
- package/server/routers/nodejs_compat.py +289 -0
- package/server/routers/webhook.py +90 -0
- package/server/routers/websocket.py +2127 -0
- package/server/routers/whatsapp.py +761 -0
- package/server/routers/workflow.py +200 -0
- package/server/services/__init__.py +1 -0
- package/server/services/ai.py +2415 -0
- package/server/services/android/__init__.py +27 -0
- package/server/services/android/broadcaster.py +114 -0
- package/server/services/android/client.py +608 -0
- package/server/services/android/manager.py +78 -0
- package/server/services/android/protocol.py +165 -0
- package/server/services/android_service.py +588 -0
- package/server/services/auth.py +131 -0
- package/server/services/chat_client.py +160 -0
- package/server/services/deployment/__init__.py +12 -0
- package/server/services/deployment/manager.py +706 -0
- package/server/services/deployment/state.py +47 -0
- package/server/services/deployment/triggers.py +275 -0
- package/server/services/event_waiter.py +785 -0
- package/server/services/execution/__init__.py +77 -0
- package/server/services/execution/cache.py +769 -0
- package/server/services/execution/conditions.py +373 -0
- package/server/services/execution/dlq.py +132 -0
- package/server/services/execution/executor.py +1351 -0
- package/server/services/execution/models.py +531 -0
- package/server/services/execution/recovery.py +235 -0
- package/server/services/handlers/__init__.py +126 -0
- package/server/services/handlers/ai.py +355 -0
- package/server/services/handlers/android.py +260 -0
- package/server/services/handlers/code.py +278 -0
- package/server/services/handlers/document.py +598 -0
- package/server/services/handlers/http.py +193 -0
- package/server/services/handlers/polyglot.py +105 -0
- package/server/services/handlers/tools.py +845 -0
- package/server/services/handlers/triggers.py +107 -0
- package/server/services/handlers/utility.py +822 -0
- package/server/services/handlers/whatsapp.py +476 -0
- package/server/services/maps.py +289 -0
- package/server/services/memory_store.py +103 -0
- package/server/services/node_executor.py +375 -0
- package/server/services/parameter_resolver.py +218 -0
- package/server/services/polyglot_client.py +169 -0
- package/server/services/scheduler.py +155 -0
- package/server/services/skill_loader.py +417 -0
- package/server/services/status_broadcaster.py +826 -0
- package/server/services/temporal/__init__.py +23 -0
- package/server/services/temporal/activities.py +344 -0
- package/server/services/temporal/client.py +76 -0
- package/server/services/temporal/executor.py +147 -0
- package/server/services/temporal/worker.py +251 -0
- package/server/services/temporal/workflow.py +355 -0
- package/server/services/temporal/ws_client.py +236 -0
- package/server/services/text.py +111 -0
- package/server/services/user_auth.py +172 -0
- package/server/services/websocket_client.py +29 -0
- package/server/services/workflow.py +597 -0
- package/server/skills/android-skill/SKILL.md +82 -0
- package/server/skills/assistant-personality/SKILL.md +45 -0
- package/server/skills/code-skill/SKILL.md +140 -0
- package/server/skills/http-skill/SKILL.md +161 -0
- package/server/skills/maps-skill/SKILL.md +170 -0
- package/server/skills/memory-skill/SKILL.md +154 -0
- package/server/skills/scheduler-skill/SKILL.md +84 -0
- package/server/skills/whatsapp-skill/SKILL.md +283 -0
- package/server/uv.lock +2916 -0
- package/server/whatsapp-rpc/.dockerignore +30 -0
- package/server/whatsapp-rpc/Dockerfile +44 -0
- package/server/whatsapp-rpc/Dockerfile.web +17 -0
- package/server/whatsapp-rpc/README.md +139 -0
- package/server/whatsapp-rpc/cli.js +95 -0
- package/server/whatsapp-rpc/configs/config.yaml +7 -0
- package/server/whatsapp-rpc/docker-compose.yml +35 -0
- package/server/whatsapp-rpc/docs/API.md +410 -0
- package/server/whatsapp-rpc/go.mod +67 -0
- package/server/whatsapp-rpc/go.sum +203 -0
- package/server/whatsapp-rpc/package.json +30 -0
- package/server/whatsapp-rpc/schema.json +1294 -0
- package/server/whatsapp-rpc/scripts/clean.cjs +66 -0
- package/server/whatsapp-rpc/scripts/cli.js +162 -0
- package/server/whatsapp-rpc/src/go/cmd/server/main.go +91 -0
- package/server/whatsapp-rpc/src/go/config/config.go +49 -0
- package/server/whatsapp-rpc/src/go/rpc/rpc.go +446 -0
- package/server/whatsapp-rpc/src/go/rpc/server.go +112 -0
- package/server/whatsapp-rpc/src/go/whatsapp/history.go +166 -0
- package/server/whatsapp-rpc/src/go/whatsapp/messages.go +390 -0
- package/server/whatsapp-rpc/src/go/whatsapp/service.go +2130 -0
- package/server/whatsapp-rpc/src/go/whatsapp/types.go +261 -0
- package/server/whatsapp-rpc/src/python/pyproject.toml +15 -0
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/__init__.py +4 -0
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/client.py +427 -0
- package/server/whatsapp-rpc/web/app.py +609 -0
- package/server/whatsapp-rpc/web/requirements.txt +6 -0
- package/server/whatsapp-rpc/web/rpc_client.py +427 -0
- package/server/whatsapp-rpc/web/static/openapi.yaml +59 -0
- package/server/whatsapp-rpc/web/templates/base.html +150 -0
- package/server/whatsapp-rpc/web/templates/contacts.html +240 -0
- package/server/whatsapp-rpc/web/templates/dashboard.html +320 -0
- package/server/whatsapp-rpc/web/templates/groups.html +328 -0
- package/server/whatsapp-rpc/web/templates/messages.html +465 -0
- package/server/whatsapp-rpc/web/templates/messaging.html +681 -0
- package/server/whatsapp-rpc/web/templates/send.html +259 -0
- package/server/whatsapp-rpc/web/templates/settings.html +459 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Android Nodes
|
|
3
|
+
description: 17 nodes for Android device automation
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Android Nodes
|
|
7
|
+
|
|
8
|
+
Control and monitor Android devices with 17 specialized nodes.
|
|
9
|
+
|
|
10
|
+
## Connection Setup
|
|
11
|
+
|
|
12
|
+
### Android Device Setup
|
|
13
|
+
|
|
14
|
+
Configure how MachinaOs connects to your device.
|
|
15
|
+
|
|
16
|
+
<ParamField path="connection_type" type="select" required>
|
|
17
|
+
Connection method: Local ADB Device or Remote WebSocket
|
|
18
|
+
</ParamField>
|
|
19
|
+
|
|
20
|
+
**Local ADB:**
|
|
21
|
+
<ParamField path="device_id" type="select">
|
|
22
|
+
Select from connected devices
|
|
23
|
+
</ParamField>
|
|
24
|
+
|
|
25
|
+
<ParamField path="auto_forward" type="boolean" default="true">
|
|
26
|
+
Automatically setup port forwarding
|
|
27
|
+
</ParamField>
|
|
28
|
+
|
|
29
|
+
<ParamField path="port" type="number" default="8888">
|
|
30
|
+
Port for ADB forwarding
|
|
31
|
+
</ParamField>
|
|
32
|
+
|
|
33
|
+
**Remote WebSocket:**
|
|
34
|
+
<ParamField path="websocket_url" type="string">
|
|
35
|
+
Relay server URL (configured in .env)
|
|
36
|
+
</ParamField>
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## System Monitoring (4 nodes)
|
|
41
|
+
|
|
42
|
+
### Battery Monitor
|
|
43
|
+
|
|
44
|
+
Monitor battery status and health.
|
|
45
|
+
|
|
46
|
+
**Actions:** get_status
|
|
47
|
+
|
|
48
|
+
**Output:**
|
|
49
|
+
```json
|
|
50
|
+
{
|
|
51
|
+
"level": 85,
|
|
52
|
+
"is_charging": true,
|
|
53
|
+
"status": "charging",
|
|
54
|
+
"plugged": "ac",
|
|
55
|
+
"temperature": 28.5,
|
|
56
|
+
"health": "good",
|
|
57
|
+
"technology": "Li-ion"
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Network Monitor
|
|
62
|
+
|
|
63
|
+
Check network connectivity.
|
|
64
|
+
|
|
65
|
+
**Actions:** get_status
|
|
66
|
+
|
|
67
|
+
**Output:**
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"is_connected": true,
|
|
71
|
+
"type": "wifi",
|
|
72
|
+
"wifi_ssid": "MyNetwork",
|
|
73
|
+
"is_internet_available": true,
|
|
74
|
+
"ip_address": "192.168.1.100",
|
|
75
|
+
"signal_strength": -45
|
|
76
|
+
}
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### System Info
|
|
80
|
+
|
|
81
|
+
Get device information.
|
|
82
|
+
|
|
83
|
+
**Actions:** get_info
|
|
84
|
+
|
|
85
|
+
**Output:**
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"device_model": "Pixel 7",
|
|
89
|
+
"manufacturer": "Google",
|
|
90
|
+
"android_version": "14",
|
|
91
|
+
"api_level": 34,
|
|
92
|
+
"total_memory": 8192,
|
|
93
|
+
"available_memory": 4096,
|
|
94
|
+
"total_storage": 128000,
|
|
95
|
+
"available_storage": 64000
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Location
|
|
100
|
+
|
|
101
|
+
Get GPS location.
|
|
102
|
+
|
|
103
|
+
**Actions:** get_location
|
|
104
|
+
|
|
105
|
+
**Output:**
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"latitude": 37.7749,
|
|
109
|
+
"longitude": -122.4194,
|
|
110
|
+
"accuracy": 10.5,
|
|
111
|
+
"altitude": 15.2,
|
|
112
|
+
"provider": "gps",
|
|
113
|
+
"timestamp": "2024-01-15T10:30:00Z"
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## App Management (2 nodes)
|
|
120
|
+
|
|
121
|
+
### App Launcher
|
|
122
|
+
|
|
123
|
+
Launch applications by package name.
|
|
124
|
+
|
|
125
|
+
<ParamField path="package_name" type="string" required>
|
|
126
|
+
App package name (e.g., com.spotify.music)
|
|
127
|
+
</ParamField>
|
|
128
|
+
|
|
129
|
+
**Output:**
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"success": true,
|
|
133
|
+
"package": "com.spotify.music",
|
|
134
|
+
"message": "App launched"
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Common Package Names:**
|
|
139
|
+
| App | Package |
|
|
140
|
+
|-----|---------|
|
|
141
|
+
| Chrome | com.android.chrome |
|
|
142
|
+
| YouTube | com.google.android.youtube |
|
|
143
|
+
| Spotify | com.spotify.music |
|
|
144
|
+
| WhatsApp | com.whatsapp |
|
|
145
|
+
| Gmail | com.google.android.gm |
|
|
146
|
+
|
|
147
|
+
### App List
|
|
148
|
+
|
|
149
|
+
Get installed applications.
|
|
150
|
+
|
|
151
|
+
**Output:**
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"apps": [
|
|
155
|
+
{
|
|
156
|
+
"name": "Chrome",
|
|
157
|
+
"package": "com.android.chrome",
|
|
158
|
+
"version": "120.0.6099.230"
|
|
159
|
+
}
|
|
160
|
+
],
|
|
161
|
+
"count": 150
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Automation (6 nodes)
|
|
168
|
+
|
|
169
|
+
### WiFi Automation
|
|
170
|
+
|
|
171
|
+
Control WiFi settings.
|
|
172
|
+
|
|
173
|
+
**Actions:** enable, disable, get_status, scan
|
|
174
|
+
|
|
175
|
+
**Output (scan):**
|
|
176
|
+
```json
|
|
177
|
+
{
|
|
178
|
+
"networks": [
|
|
179
|
+
{
|
|
180
|
+
"ssid": "MyNetwork",
|
|
181
|
+
"bssid": "00:11:22:33:44:55",
|
|
182
|
+
"signal": -45,
|
|
183
|
+
"security": "WPA2"
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Bluetooth Automation
|
|
190
|
+
|
|
191
|
+
Control Bluetooth settings.
|
|
192
|
+
|
|
193
|
+
**Actions:** enable, disable, get_status, get_paired_devices
|
|
194
|
+
|
|
195
|
+
**Output (paired devices):**
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"devices": [
|
|
199
|
+
{
|
|
200
|
+
"name": "AirPods Pro",
|
|
201
|
+
"address": "AA:BB:CC:DD:EE:FF",
|
|
202
|
+
"type": "audio"
|
|
203
|
+
}
|
|
204
|
+
]
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Audio Automation
|
|
209
|
+
|
|
210
|
+
Control volume and audio.
|
|
211
|
+
|
|
212
|
+
**Actions:** get_volume, set_volume, mute, unmute
|
|
213
|
+
|
|
214
|
+
<ParamField path="volume_level" type="slider">
|
|
215
|
+
Volume level 0-100 (for set_volume)
|
|
216
|
+
</ParamField>
|
|
217
|
+
|
|
218
|
+
<ParamField path="stream_type" type="select" default="media">
|
|
219
|
+
Stream: media, ringtone, notification, alarm
|
|
220
|
+
</ParamField>
|
|
221
|
+
|
|
222
|
+
### Device State Automation
|
|
223
|
+
|
|
224
|
+
Control device states.
|
|
225
|
+
|
|
226
|
+
**Actions:** get_state, set_airplane_mode, set_power_save
|
|
227
|
+
|
|
228
|
+
<ParamField path="enabled" type="boolean">
|
|
229
|
+
Enable or disable the feature
|
|
230
|
+
</ParamField>
|
|
231
|
+
|
|
232
|
+
### Screen Control Automation
|
|
233
|
+
|
|
234
|
+
Control display settings.
|
|
235
|
+
|
|
236
|
+
**Actions:** get_brightness, set_brightness, wake_screen, set_timeout
|
|
237
|
+
|
|
238
|
+
<ParamField path="brightness" type="slider">
|
|
239
|
+
Brightness level 0-255
|
|
240
|
+
</ParamField>
|
|
241
|
+
|
|
242
|
+
<ParamField path="auto_brightness" type="boolean">
|
|
243
|
+
Enable automatic brightness
|
|
244
|
+
</ParamField>
|
|
245
|
+
|
|
246
|
+
### Airplane Mode Control
|
|
247
|
+
|
|
248
|
+
Toggle airplane mode.
|
|
249
|
+
|
|
250
|
+
**Actions:** get_status, enable, disable
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Sensors (2 nodes)
|
|
255
|
+
|
|
256
|
+
### Motion Detection
|
|
257
|
+
|
|
258
|
+
Access motion sensors.
|
|
259
|
+
|
|
260
|
+
**Actions:** get_accelerometer, get_gyroscope, detect_shake
|
|
261
|
+
|
|
262
|
+
**Output (accelerometer):**
|
|
263
|
+
```json
|
|
264
|
+
{
|
|
265
|
+
"x": 0.15,
|
|
266
|
+
"y": 9.78,
|
|
267
|
+
"z": 0.23,
|
|
268
|
+
"timestamp": "2024-01-15T10:30:00Z"
|
|
269
|
+
}
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
### Environmental Sensors
|
|
273
|
+
|
|
274
|
+
Access environmental sensors.
|
|
275
|
+
|
|
276
|
+
**Actions:** get_light, get_pressure, get_temperature, get_humidity
|
|
277
|
+
|
|
278
|
+
**Output:**
|
|
279
|
+
```json
|
|
280
|
+
{
|
|
281
|
+
"light": 350,
|
|
282
|
+
"pressure": 1013.25,
|
|
283
|
+
"temperature": 22.5,
|
|
284
|
+
"humidity": 45
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
<Info>
|
|
289
|
+
Not all devices have all sensors. Output will indicate unavailable sensors.
|
|
290
|
+
</Info>
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## Media (2 nodes)
|
|
295
|
+
|
|
296
|
+
### Camera Control
|
|
297
|
+
|
|
298
|
+
Control camera functions.
|
|
299
|
+
|
|
300
|
+
**Actions:** get_info, take_photo
|
|
301
|
+
|
|
302
|
+
<ParamField path="camera_id" type="select" default="back">
|
|
303
|
+
Camera to use: back, front
|
|
304
|
+
</ParamField>
|
|
305
|
+
|
|
306
|
+
**Output (get_info):**
|
|
307
|
+
```json
|
|
308
|
+
{
|
|
309
|
+
"cameras": [
|
|
310
|
+
{
|
|
311
|
+
"id": "0",
|
|
312
|
+
"facing": "back",
|
|
313
|
+
"megapixels": 50
|
|
314
|
+
},
|
|
315
|
+
{
|
|
316
|
+
"id": "1",
|
|
317
|
+
"facing": "front",
|
|
318
|
+
"megapixels": 12
|
|
319
|
+
}
|
|
320
|
+
]
|
|
321
|
+
}
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### Media Control
|
|
325
|
+
|
|
326
|
+
Control media playback.
|
|
327
|
+
|
|
328
|
+
**Actions:** play, pause, next, previous, get_volume, set_volume
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Example Workflows
|
|
333
|
+
|
|
334
|
+
### Battery Alert
|
|
335
|
+
|
|
336
|
+
```
|
|
337
|
+
[Cron (hourly)] --> [Battery Monitor] --> [Python] --> [WhatsApp Send]
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Python:**
|
|
341
|
+
```python
|
|
342
|
+
level = input_data.get("level", 100)
|
|
343
|
+
if level < 20:
|
|
344
|
+
output = {"alert": True, "msg": f"Battery: {level}%"}
|
|
345
|
+
else:
|
|
346
|
+
output = {"alert": False}
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### WiFi Toggle via Webhook
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
[Webhook Trigger] --> [WiFi Automation]
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
**Webhook path:** `/wifi`
|
|
356
|
+
**WiFi Action:** `{{webhookTrigger.body.action}}`
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
curl -X POST http://localhost:3010/webhook/wifi \
|
|
360
|
+
-d '{"action": "enable"}'
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
### Morning Routine
|
|
364
|
+
|
|
365
|
+
```
|
|
366
|
+
[Cron (7:00 AM)] --> [WiFi Enable] --> [App Launcher (News)]
|
|
367
|
+
|
|
|
368
|
+
v
|
|
369
|
+
[Audio: Vol 50%]
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
## Troubleshooting
|
|
375
|
+
|
|
376
|
+
<Accordion title="Device not detected">
|
|
377
|
+
```bash
|
|
378
|
+
# Check ADB connection
|
|
379
|
+
adb devices
|
|
380
|
+
|
|
381
|
+
# Restart ADB
|
|
382
|
+
adb kill-server
|
|
383
|
+
adb start-server
|
|
384
|
+
```
|
|
385
|
+
</Accordion>
|
|
386
|
+
|
|
387
|
+
<Accordion title="Permission denied">
|
|
388
|
+
Some features require:
|
|
389
|
+
- USB debugging enabled
|
|
390
|
+
- Developer options enabled
|
|
391
|
+
- Specific app permissions
|
|
392
|
+
</Accordion>
|
|
393
|
+
|
|
394
|
+
<Accordion title="Remote relay issues">
|
|
395
|
+
- Verify relay URL in .env
|
|
396
|
+
- Check API key is valid
|
|
397
|
+
- Ensure companion app is running
|
|
398
|
+
</Accordion>
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
## Related
|
|
403
|
+
|
|
404
|
+
<CardGroup cols={2}>
|
|
405
|
+
<Card title="Android Tutorial" icon="mobile" href="/tutorials/android-automation">
|
|
406
|
+
Step-by-step guide
|
|
407
|
+
</Card>
|
|
408
|
+
<Card title="Webhooks" icon="webhook" href="/nodes/webhooks">
|
|
409
|
+
Trigger Android actions via HTTP
|
|
410
|
+
</Card>
|
|
411
|
+
</CardGroup>
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Node Overview
|
|
3
|
+
description: Understanding MachinaOs nodes and how they connect
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Node Overview
|
|
7
|
+
|
|
8
|
+
MachinaOs uses a visual node-based system for building workflows. Each node performs a specific function and passes data to connected nodes.
|
|
9
|
+
|
|
10
|
+
## Node Categories
|
|
11
|
+
|
|
12
|
+
| Category | Count | Description |
|
|
13
|
+
|----------|-------|-------------|
|
|
14
|
+
| [AI Models](/nodes/ai-models) | 3 | Chat models from OpenAI, Anthropic, Google |
|
|
15
|
+
| [AI Agents](/nodes/ai-agent) | 2 | Intelligent agents with memory |
|
|
16
|
+
| [WhatsApp](/nodes/whatsapp) | 3 | Messaging automation |
|
|
17
|
+
| [Android](/nodes/android) | 17 | Device control and monitoring |
|
|
18
|
+
| [Webhooks](/nodes/webhooks) | 3 | HTTP requests and webhook handling |
|
|
19
|
+
| [Schedulers](/nodes/schedulers) | 3 | Triggers and timing |
|
|
20
|
+
|
|
21
|
+
## Node Shapes
|
|
22
|
+
|
|
23
|
+
Different shapes indicate different node types:
|
|
24
|
+
|
|
25
|
+
| Shape | Type | Description |
|
|
26
|
+
|-------|------|-------------|
|
|
27
|
+
| Diamond | Trigger | Starts a workflow (no input handle) |
|
|
28
|
+
| Square | Action | Performs operations |
|
|
29
|
+
| Circle | Config | Provides configuration to other nodes |
|
|
30
|
+
|
|
31
|
+
## Handles
|
|
32
|
+
|
|
33
|
+
Handles are connection points on nodes:
|
|
34
|
+
|
|
35
|
+
### Input Handles (Left Side)
|
|
36
|
+
- **Main Input** - Receives data from upstream nodes
|
|
37
|
+
- **Config Inputs** - Diamond shapes for memory, model, etc.
|
|
38
|
+
|
|
39
|
+
### Output Handles (Right Side)
|
|
40
|
+
- **Main Output** - Sends data to downstream nodes
|
|
41
|
+
|
|
42
|
+
## Data Flow
|
|
43
|
+
|
|
44
|
+
Data flows from left to right through connections:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
[Trigger] --> [Process] --> [Action] --> [Response]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Template Variables
|
|
51
|
+
|
|
52
|
+
Access upstream data using template syntax:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
{{nodeName.fieldName}}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Examples:**
|
|
59
|
+
```
|
|
60
|
+
{{webhookTrigger.body}} // Webhook request body
|
|
61
|
+
{{openaiChatModel.response}} // AI model response
|
|
62
|
+
{{batteryMonitor.level}} // Battery percentage
|
|
63
|
+
{{whatsappReceive.text}} // Message content
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Nested Fields
|
|
67
|
+
|
|
68
|
+
Access nested objects with dot notation:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
{{whatsappReceive.group_info.sender_name}}
|
|
72
|
+
{{webhookTrigger.body.user.email}}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Node Configuration
|
|
76
|
+
|
|
77
|
+
### Opening Parameters
|
|
78
|
+
1. **Click** the node to select it
|
|
79
|
+
2. **Click gear icon** or **double-click** to open parameter panel
|
|
80
|
+
|
|
81
|
+
### Parameter Types
|
|
82
|
+
|
|
83
|
+
| Type | Description |
|
|
84
|
+
|------|-------------|
|
|
85
|
+
| Text | String input |
|
|
86
|
+
| Number | Numeric input |
|
|
87
|
+
| Boolean | Toggle on/off |
|
|
88
|
+
| Options | Dropdown selection |
|
|
89
|
+
| Slider | Range selection |
|
|
90
|
+
| Code | Multi-line code editor |
|
|
91
|
+
| JSON | JSON object input |
|
|
92
|
+
|
|
93
|
+
### Dynamic Options
|
|
94
|
+
|
|
95
|
+
Some parameters load options from the backend:
|
|
96
|
+
- Device lists (Android)
|
|
97
|
+
- AI models (based on API key)
|
|
98
|
+
- Groups and contacts (WhatsApp)
|
|
99
|
+
|
|
100
|
+
## Node States
|
|
101
|
+
|
|
102
|
+
During execution, nodes show their state:
|
|
103
|
+
|
|
104
|
+
| State | Indicator | Description |
|
|
105
|
+
|-------|-----------|-------------|
|
|
106
|
+
| Idle | Default | Not running |
|
|
107
|
+
| Waiting | Cyan | Trigger waiting for event |
|
|
108
|
+
| Running | Purple glow | Currently executing |
|
|
109
|
+
| Completed | Green | Finished successfully |
|
|
110
|
+
| Error | Red | Failed with error |
|
|
111
|
+
|
|
112
|
+
## Special Node Types
|
|
113
|
+
|
|
114
|
+
### Trigger Nodes
|
|
115
|
+
- No input handle
|
|
116
|
+
- Start workflow execution
|
|
117
|
+
- Wait for external events
|
|
118
|
+
|
|
119
|
+
**Examples:** Webhook Trigger, WhatsApp Receive, Cron Scheduler
|
|
120
|
+
|
|
121
|
+
### Config Nodes
|
|
122
|
+
- Connect to special config handles (diamonds)
|
|
123
|
+
- Provide settings to parent nodes
|
|
124
|
+
- Don't execute independently
|
|
125
|
+
|
|
126
|
+
**Examples:** Simple Memory, AI Models
|
|
127
|
+
|
|
128
|
+
## Renaming Nodes
|
|
129
|
+
|
|
130
|
+
Give nodes meaningful names:
|
|
131
|
+
1. Press **F2** with node selected
|
|
132
|
+
2. Or **double-click** the node label
|
|
133
|
+
3. Or **right-click** > Rename
|
|
134
|
+
|
|
135
|
+
## Copying Nodes
|
|
136
|
+
|
|
137
|
+
1. Select node(s)
|
|
138
|
+
2. Press **Ctrl+C** to copy
|
|
139
|
+
3. Press **Ctrl+V** to paste
|
|
140
|
+
|
|
141
|
+
## Deleting Nodes
|
|
142
|
+
|
|
143
|
+
1. Select node(s)
|
|
144
|
+
2. Press **Delete** or **Backspace**
|
|
145
|
+
|
|
146
|
+
## Best Practices
|
|
147
|
+
|
|
148
|
+
<Tip>
|
|
149
|
+
Name your nodes descriptively. "Process Order" is better than "AI Agent 1".
|
|
150
|
+
</Tip>
|
|
151
|
+
|
|
152
|
+
<Tip>
|
|
153
|
+
Test individual nodes with the **Run** button before deploying full workflows.
|
|
154
|
+
</Tip>
|
|
155
|
+
|
|
156
|
+
<Warning>
|
|
157
|
+
Config nodes (Memory, Models) connect to diamond handles, not main inputs.
|
|
158
|
+
</Warning>
|
|
159
|
+
|
|
160
|
+
## Node Reference
|
|
161
|
+
|
|
162
|
+
<CardGroup cols={2}>
|
|
163
|
+
<Card title="AI Models" icon="brain" href="/nodes/ai-models">
|
|
164
|
+
OpenAI, Claude, Gemini
|
|
165
|
+
</Card>
|
|
166
|
+
<Card title="AI Agents" icon="robot" href="/nodes/ai-agent">
|
|
167
|
+
Agent with memory and tools
|
|
168
|
+
</Card>
|
|
169
|
+
<Card title="WhatsApp" icon="whatsapp" href="/nodes/whatsapp">
|
|
170
|
+
Send and receive messages
|
|
171
|
+
</Card>
|
|
172
|
+
<Card title="Android" icon="mobile" href="/nodes/android">
|
|
173
|
+
17 device control nodes
|
|
174
|
+
</Card>
|
|
175
|
+
<Card title="Webhooks" icon="webhook" href="/nodes/webhooks">
|
|
176
|
+
HTTP and webhook handling
|
|
177
|
+
</Card>
|
|
178
|
+
<Card title="Schedulers" icon="clock" href="/nodes/schedulers">
|
|
179
|
+
Triggers and timers
|
|
180
|
+
</Card>
|
|
181
|
+
</CardGroup>
|