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.
Files changed (288) hide show
  1. package/.env.template +71 -0
  2. package/LICENSE +21 -0
  3. package/README.md +87 -0
  4. package/bin/cli.js +159 -0
  5. package/client/.dockerignore +45 -0
  6. package/client/Dockerfile +68 -0
  7. package/client/eslint.config.js +29 -0
  8. package/client/index.html +13 -0
  9. package/client/nginx.conf +66 -0
  10. package/client/package.json +48 -0
  11. package/client/src/App.tsx +27 -0
  12. package/client/src/Dashboard.tsx +1173 -0
  13. package/client/src/ParameterPanel.tsx +301 -0
  14. package/client/src/components/AIAgentNode.tsx +321 -0
  15. package/client/src/components/APIKeyValidator.tsx +118 -0
  16. package/client/src/components/ClaudeChatModelNode.tsx +18 -0
  17. package/client/src/components/ConditionalEdge.tsx +189 -0
  18. package/client/src/components/CredentialsModal.tsx +306 -0
  19. package/client/src/components/EdgeConditionEditor.tsx +443 -0
  20. package/client/src/components/GeminiChatModelNode.tsx +18 -0
  21. package/client/src/components/GenericNode.tsx +357 -0
  22. package/client/src/components/LocationParameterPanel.tsx +154 -0
  23. package/client/src/components/ModelNode.tsx +286 -0
  24. package/client/src/components/OpenAIChatModelNode.tsx +18 -0
  25. package/client/src/components/OutputPanel.tsx +471 -0
  26. package/client/src/components/ParameterRenderer.tsx +1874 -0
  27. package/client/src/components/SkillEditorModal.tsx +417 -0
  28. package/client/src/components/SquareNode.tsx +797 -0
  29. package/client/src/components/StartNode.tsx +250 -0
  30. package/client/src/components/ToolkitNode.tsx +365 -0
  31. package/client/src/components/TriggerNode.tsx +463 -0
  32. package/client/src/components/auth/LoginPage.tsx +247 -0
  33. package/client/src/components/auth/ProtectedRoute.tsx +59 -0
  34. package/client/src/components/base/BaseChatModelNode.tsx +271 -0
  35. package/client/src/components/icons/AIProviderIcons.tsx +50 -0
  36. package/client/src/components/maps/GoogleMapsPicker.tsx +137 -0
  37. package/client/src/components/maps/MapsPreviewPanel.tsx +110 -0
  38. package/client/src/components/maps/index.ts +26 -0
  39. package/client/src/components/parameterPanel/InputSection.tsx +1094 -0
  40. package/client/src/components/parameterPanel/LocationPanelLayout.tsx +65 -0
  41. package/client/src/components/parameterPanel/MapsSection.tsx +92 -0
  42. package/client/src/components/parameterPanel/MiddleSection.tsx +571 -0
  43. package/client/src/components/parameterPanel/OutputSection.tsx +81 -0
  44. package/client/src/components/parameterPanel/ParameterPanelLayout.tsx +82 -0
  45. package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +436 -0
  46. package/client/src/components/parameterPanel/index.ts +42 -0
  47. package/client/src/components/shared/DataPanel.tsx +142 -0
  48. package/client/src/components/shared/JSONTreeRenderer.tsx +106 -0
  49. package/client/src/components/ui/AIResultModal.tsx +204 -0
  50. package/client/src/components/ui/AndroidSettingsPanel.tsx +401 -0
  51. package/client/src/components/ui/CodeEditor.tsx +81 -0
  52. package/client/src/components/ui/CollapsibleSection.tsx +88 -0
  53. package/client/src/components/ui/ComponentItem.tsx +154 -0
  54. package/client/src/components/ui/ComponentPalette.tsx +321 -0
  55. package/client/src/components/ui/ConsolePanel.tsx +1074 -0
  56. package/client/src/components/ui/ErrorBoundary.tsx +196 -0
  57. package/client/src/components/ui/InputNodesPanel.tsx +204 -0
  58. package/client/src/components/ui/MapSelector.tsx +314 -0
  59. package/client/src/components/ui/Modal.tsx +149 -0
  60. package/client/src/components/ui/NodeContextMenu.tsx +192 -0
  61. package/client/src/components/ui/NodeOutputPanel.tsx +1150 -0
  62. package/client/src/components/ui/OutputDisplayPanel.tsx +381 -0
  63. package/client/src/components/ui/SettingsPanel.tsx +243 -0
  64. package/client/src/components/ui/TopToolbar.tsx +736 -0
  65. package/client/src/components/ui/WhatsAppSettingsPanel.tsx +345 -0
  66. package/client/src/components/ui/WorkflowSidebar.tsx +294 -0
  67. package/client/src/config/antdTheme.ts +186 -0
  68. package/client/src/config/api.ts +54 -0
  69. package/client/src/contexts/AuthContext.tsx +221 -0
  70. package/client/src/contexts/ThemeContext.tsx +42 -0
  71. package/client/src/contexts/WebSocketContext.tsx +1971 -0
  72. package/client/src/factories/baseChatModelFactory.ts +256 -0
  73. package/client/src/hooks/useAndroidOperations.ts +164 -0
  74. package/client/src/hooks/useApiKeyValidation.ts +107 -0
  75. package/client/src/hooks/useApiKeys.ts +238 -0
  76. package/client/src/hooks/useAppTheme.ts +17 -0
  77. package/client/src/hooks/useComponentPalette.ts +51 -0
  78. package/client/src/hooks/useCopyPaste.ts +155 -0
  79. package/client/src/hooks/useDragAndDrop.ts +124 -0
  80. package/client/src/hooks/useDragVariable.ts +88 -0
  81. package/client/src/hooks/useExecution.ts +313 -0
  82. package/client/src/hooks/useParameterPanel.ts +176 -0
  83. package/client/src/hooks/useReactFlowNodes.ts +189 -0
  84. package/client/src/hooks/useToolSchema.ts +209 -0
  85. package/client/src/hooks/useWhatsApp.ts +196 -0
  86. package/client/src/hooks/useWorkflowManagement.ts +46 -0
  87. package/client/src/index.css +315 -0
  88. package/client/src/main.tsx +19 -0
  89. package/client/src/nodeDefinitions/aiAgentNodes.ts +336 -0
  90. package/client/src/nodeDefinitions/aiModelNodes.ts +340 -0
  91. package/client/src/nodeDefinitions/androidDeviceNodes.ts +140 -0
  92. package/client/src/nodeDefinitions/androidServiceNodes.ts +383 -0
  93. package/client/src/nodeDefinitions/chatNodes.ts +135 -0
  94. package/client/src/nodeDefinitions/codeNodes.ts +54 -0
  95. package/client/src/nodeDefinitions/documentNodes.ts +379 -0
  96. package/client/src/nodeDefinitions/index.ts +15 -0
  97. package/client/src/nodeDefinitions/locationNodes.ts +463 -0
  98. package/client/src/nodeDefinitions/schedulerNodes.ts +220 -0
  99. package/client/src/nodeDefinitions/skillNodes.ts +211 -0
  100. package/client/src/nodeDefinitions/toolNodes.ts +198 -0
  101. package/client/src/nodeDefinitions/utilityNodes.ts +284 -0
  102. package/client/src/nodeDefinitions/whatsappNodes.ts +865 -0
  103. package/client/src/nodeDefinitions/workflowNodes.ts +41 -0
  104. package/client/src/nodeDefinitions.ts +104 -0
  105. package/client/src/schemas/workflowSchema.ts +264 -0
  106. package/client/src/services/dynamicParameterService.ts +96 -0
  107. package/client/src/services/execution/aiAgentExecutionService.ts +35 -0
  108. package/client/src/services/executionService.ts +232 -0
  109. package/client/src/services/workflowApi.ts +91 -0
  110. package/client/src/store/useAppStore.ts +582 -0
  111. package/client/src/styles/theme.ts +508 -0
  112. package/client/src/styles/zIndex.ts +17 -0
  113. package/client/src/types/ComponentTypes.ts +39 -0
  114. package/client/src/types/EdgeCondition.ts +231 -0
  115. package/client/src/types/INodeProperties.ts +288 -0
  116. package/client/src/types/NodeTypes.ts +28 -0
  117. package/client/src/utils/formatters.ts +33 -0
  118. package/client/src/utils/googleMapsLoader.ts +140 -0
  119. package/client/src/utils/locationUtils.ts +85 -0
  120. package/client/src/utils/nodeUtils.ts +31 -0
  121. package/client/src/utils/workflow.ts +30 -0
  122. package/client/src/utils/workflowExport.ts +120 -0
  123. package/client/src/vite-env.d.ts +12 -0
  124. package/client/tailwind.config.js +60 -0
  125. package/client/tsconfig.json +25 -0
  126. package/client/tsconfig.node.json +11 -0
  127. package/client/vite.config.js +35 -0
  128. package/docker-compose.prod.yml +107 -0
  129. package/docker-compose.yml +104 -0
  130. package/docs-MachinaOs/README.md +85 -0
  131. package/docs-MachinaOs/deployment/docker.mdx +228 -0
  132. package/docs-MachinaOs/deployment/production.mdx +345 -0
  133. package/docs-MachinaOs/docs.json +75 -0
  134. package/docs-MachinaOs/faq.mdx +309 -0
  135. package/docs-MachinaOs/favicon.svg +5 -0
  136. package/docs-MachinaOs/installation.mdx +160 -0
  137. package/docs-MachinaOs/introduction.mdx +114 -0
  138. package/docs-MachinaOs/logo/dark.svg +6 -0
  139. package/docs-MachinaOs/logo/light.svg +6 -0
  140. package/docs-MachinaOs/nodes/ai-agent.mdx +216 -0
  141. package/docs-MachinaOs/nodes/ai-models.mdx +240 -0
  142. package/docs-MachinaOs/nodes/android.mdx +411 -0
  143. package/docs-MachinaOs/nodes/overview.mdx +181 -0
  144. package/docs-MachinaOs/nodes/schedulers.mdx +316 -0
  145. package/docs-MachinaOs/nodes/webhooks.mdx +330 -0
  146. package/docs-MachinaOs/nodes/whatsapp.mdx +305 -0
  147. package/docs-MachinaOs/quickstart.mdx +119 -0
  148. package/docs-MachinaOs/tutorials/ai-agent-workflow.mdx +177 -0
  149. package/docs-MachinaOs/tutorials/android-automation.mdx +242 -0
  150. package/docs-MachinaOs/tutorials/first-workflow.mdx +134 -0
  151. package/docs-MachinaOs/tutorials/whatsapp-automation.mdx +185 -0
  152. package/nul +0 -0
  153. package/package.json +70 -0
  154. package/scripts/build.js +158 -0
  155. package/scripts/check-ports.ps1 +33 -0
  156. package/scripts/clean.js +40 -0
  157. package/scripts/docker.js +93 -0
  158. package/scripts/kill-port.ps1 +154 -0
  159. package/scripts/start.js +210 -0
  160. package/scripts/stop.js +325 -0
  161. package/server/.dockerignore +44 -0
  162. package/server/Dockerfile +45 -0
  163. package/server/constants.py +249 -0
  164. package/server/core/__init__.py +1 -0
  165. package/server/core/cache.py +461 -0
  166. package/server/core/config.py +128 -0
  167. package/server/core/container.py +99 -0
  168. package/server/core/database.py +1211 -0
  169. package/server/core/logging.py +314 -0
  170. package/server/main.py +289 -0
  171. package/server/middleware/__init__.py +5 -0
  172. package/server/middleware/auth.py +89 -0
  173. package/server/models/__init__.py +1 -0
  174. package/server/models/auth.py +52 -0
  175. package/server/models/cache.py +24 -0
  176. package/server/models/database.py +211 -0
  177. package/server/models/nodes.py +455 -0
  178. package/server/package.json +9 -0
  179. package/server/pyproject.toml +72 -0
  180. package/server/requirements.txt +83 -0
  181. package/server/routers/__init__.py +1 -0
  182. package/server/routers/android.py +294 -0
  183. package/server/routers/auth.py +203 -0
  184. package/server/routers/database.py +151 -0
  185. package/server/routers/maps.py +142 -0
  186. package/server/routers/nodejs_compat.py +289 -0
  187. package/server/routers/webhook.py +90 -0
  188. package/server/routers/websocket.py +2127 -0
  189. package/server/routers/whatsapp.py +761 -0
  190. package/server/routers/workflow.py +200 -0
  191. package/server/services/__init__.py +1 -0
  192. package/server/services/ai.py +2415 -0
  193. package/server/services/android/__init__.py +27 -0
  194. package/server/services/android/broadcaster.py +114 -0
  195. package/server/services/android/client.py +608 -0
  196. package/server/services/android/manager.py +78 -0
  197. package/server/services/android/protocol.py +165 -0
  198. package/server/services/android_service.py +588 -0
  199. package/server/services/auth.py +131 -0
  200. package/server/services/chat_client.py +160 -0
  201. package/server/services/deployment/__init__.py +12 -0
  202. package/server/services/deployment/manager.py +706 -0
  203. package/server/services/deployment/state.py +47 -0
  204. package/server/services/deployment/triggers.py +275 -0
  205. package/server/services/event_waiter.py +785 -0
  206. package/server/services/execution/__init__.py +77 -0
  207. package/server/services/execution/cache.py +769 -0
  208. package/server/services/execution/conditions.py +373 -0
  209. package/server/services/execution/dlq.py +132 -0
  210. package/server/services/execution/executor.py +1351 -0
  211. package/server/services/execution/models.py +531 -0
  212. package/server/services/execution/recovery.py +235 -0
  213. package/server/services/handlers/__init__.py +126 -0
  214. package/server/services/handlers/ai.py +355 -0
  215. package/server/services/handlers/android.py +260 -0
  216. package/server/services/handlers/code.py +278 -0
  217. package/server/services/handlers/document.py +598 -0
  218. package/server/services/handlers/http.py +193 -0
  219. package/server/services/handlers/polyglot.py +105 -0
  220. package/server/services/handlers/tools.py +845 -0
  221. package/server/services/handlers/triggers.py +107 -0
  222. package/server/services/handlers/utility.py +822 -0
  223. package/server/services/handlers/whatsapp.py +476 -0
  224. package/server/services/maps.py +289 -0
  225. package/server/services/memory_store.py +103 -0
  226. package/server/services/node_executor.py +375 -0
  227. package/server/services/parameter_resolver.py +218 -0
  228. package/server/services/polyglot_client.py +169 -0
  229. package/server/services/scheduler.py +155 -0
  230. package/server/services/skill_loader.py +417 -0
  231. package/server/services/status_broadcaster.py +826 -0
  232. package/server/services/temporal/__init__.py +23 -0
  233. package/server/services/temporal/activities.py +344 -0
  234. package/server/services/temporal/client.py +76 -0
  235. package/server/services/temporal/executor.py +147 -0
  236. package/server/services/temporal/worker.py +251 -0
  237. package/server/services/temporal/workflow.py +355 -0
  238. package/server/services/temporal/ws_client.py +236 -0
  239. package/server/services/text.py +111 -0
  240. package/server/services/user_auth.py +172 -0
  241. package/server/services/websocket_client.py +29 -0
  242. package/server/services/workflow.py +597 -0
  243. package/server/skills/android-skill/SKILL.md +82 -0
  244. package/server/skills/assistant-personality/SKILL.md +45 -0
  245. package/server/skills/code-skill/SKILL.md +140 -0
  246. package/server/skills/http-skill/SKILL.md +161 -0
  247. package/server/skills/maps-skill/SKILL.md +170 -0
  248. package/server/skills/memory-skill/SKILL.md +154 -0
  249. package/server/skills/scheduler-skill/SKILL.md +84 -0
  250. package/server/skills/whatsapp-skill/SKILL.md +283 -0
  251. package/server/uv.lock +2916 -0
  252. package/server/whatsapp-rpc/.dockerignore +30 -0
  253. package/server/whatsapp-rpc/Dockerfile +44 -0
  254. package/server/whatsapp-rpc/Dockerfile.web +17 -0
  255. package/server/whatsapp-rpc/README.md +139 -0
  256. package/server/whatsapp-rpc/cli.js +95 -0
  257. package/server/whatsapp-rpc/configs/config.yaml +7 -0
  258. package/server/whatsapp-rpc/docker-compose.yml +35 -0
  259. package/server/whatsapp-rpc/docs/API.md +410 -0
  260. package/server/whatsapp-rpc/go.mod +67 -0
  261. package/server/whatsapp-rpc/go.sum +203 -0
  262. package/server/whatsapp-rpc/package.json +30 -0
  263. package/server/whatsapp-rpc/schema.json +1294 -0
  264. package/server/whatsapp-rpc/scripts/clean.cjs +66 -0
  265. package/server/whatsapp-rpc/scripts/cli.js +162 -0
  266. package/server/whatsapp-rpc/src/go/cmd/server/main.go +91 -0
  267. package/server/whatsapp-rpc/src/go/config/config.go +49 -0
  268. package/server/whatsapp-rpc/src/go/rpc/rpc.go +446 -0
  269. package/server/whatsapp-rpc/src/go/rpc/server.go +112 -0
  270. package/server/whatsapp-rpc/src/go/whatsapp/history.go +166 -0
  271. package/server/whatsapp-rpc/src/go/whatsapp/messages.go +390 -0
  272. package/server/whatsapp-rpc/src/go/whatsapp/service.go +2130 -0
  273. package/server/whatsapp-rpc/src/go/whatsapp/types.go +261 -0
  274. package/server/whatsapp-rpc/src/python/pyproject.toml +15 -0
  275. package/server/whatsapp-rpc/src/python/whatsapp_rpc/__init__.py +4 -0
  276. package/server/whatsapp-rpc/src/python/whatsapp_rpc/client.py +427 -0
  277. package/server/whatsapp-rpc/web/app.py +609 -0
  278. package/server/whatsapp-rpc/web/requirements.txt +6 -0
  279. package/server/whatsapp-rpc/web/rpc_client.py +427 -0
  280. package/server/whatsapp-rpc/web/static/openapi.yaml +59 -0
  281. package/server/whatsapp-rpc/web/templates/base.html +150 -0
  282. package/server/whatsapp-rpc/web/templates/contacts.html +240 -0
  283. package/server/whatsapp-rpc/web/templates/dashboard.html +320 -0
  284. package/server/whatsapp-rpc/web/templates/groups.html +328 -0
  285. package/server/whatsapp-rpc/web/templates/messages.html +465 -0
  286. package/server/whatsapp-rpc/web/templates/messaging.html +681 -0
  287. package/server/whatsapp-rpc/web/templates/send.html +259 -0
  288. 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>