machinaos 0.0.1 → 0.0.7

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 (422) hide show
  1. package/.env.template +71 -71
  2. package/LICENSE +21 -21
  3. package/README.md +163 -87
  4. package/bin/cli.js +62 -106
  5. package/client/.dockerignore +45 -45
  6. package/client/Dockerfile +68 -68
  7. package/client/dist/assets/index-DFSC53FP.css +1 -0
  8. package/client/dist/assets/index-fJ-1gTf5.js +613 -0
  9. package/client/dist/index.html +14 -0
  10. package/client/eslint.config.js +34 -16
  11. package/client/nginx.conf +66 -66
  12. package/client/package.json +61 -48
  13. package/client/src/App.tsx +27 -27
  14. package/client/src/Dashboard.tsx +1200 -1172
  15. package/client/src/ParameterPanel.tsx +302 -300
  16. package/client/src/components/AIAgentNode.tsx +315 -321
  17. package/client/src/components/APIKeyValidator.tsx +117 -117
  18. package/client/src/components/ClaudeChatModelNode.tsx +17 -17
  19. package/client/src/components/CredentialsModal.tsx +1200 -306
  20. package/client/src/components/GeminiChatModelNode.tsx +17 -17
  21. package/client/src/components/GenericNode.tsx +356 -356
  22. package/client/src/components/LocationParameterPanel.tsx +153 -153
  23. package/client/src/components/ModelNode.tsx +285 -285
  24. package/client/src/components/OpenAIChatModelNode.tsx +17 -17
  25. package/client/src/components/OutputPanel.tsx +470 -470
  26. package/client/src/components/ParameterRenderer.tsx +1873 -1873
  27. package/client/src/components/SkillEditorModal.tsx +3 -3
  28. package/client/src/components/SquareNode.tsx +812 -796
  29. package/client/src/components/ToolkitNode.tsx +365 -365
  30. package/client/src/components/auth/LoginPage.tsx +247 -247
  31. package/client/src/components/auth/ProtectedRoute.tsx +59 -59
  32. package/client/src/components/base/BaseChatModelNode.tsx +270 -270
  33. package/client/src/components/icons/AIProviderIcons.tsx +50 -50
  34. package/client/src/components/maps/GoogleMapsPicker.tsx +136 -136
  35. package/client/src/components/maps/MapsPreviewPanel.tsx +109 -109
  36. package/client/src/components/maps/index.ts +25 -25
  37. package/client/src/components/parameterPanel/InputSection.tsx +1094 -1094
  38. package/client/src/components/parameterPanel/LocationPanelLayout.tsx +64 -64
  39. package/client/src/components/parameterPanel/MapsSection.tsx +91 -91
  40. package/client/src/components/parameterPanel/MiddleSection.tsx +867 -571
  41. package/client/src/components/parameterPanel/OutputSection.tsx +80 -80
  42. package/client/src/components/parameterPanel/ParameterPanelLayout.tsx +81 -81
  43. package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +436 -436
  44. package/client/src/components/parameterPanel/index.ts +41 -41
  45. package/client/src/components/shared/DataPanel.tsx +142 -142
  46. package/client/src/components/shared/JSONTreeRenderer.tsx +105 -105
  47. package/client/src/components/ui/AIResultModal.tsx +203 -203
  48. package/client/src/components/ui/ApiKeyInput.tsx +93 -0
  49. package/client/src/components/ui/CodeEditor.tsx +81 -81
  50. package/client/src/components/ui/CollapsibleSection.tsx +87 -87
  51. package/client/src/components/ui/ComponentItem.tsx +153 -153
  52. package/client/src/components/ui/ComponentPalette.tsx +320 -320
  53. package/client/src/components/ui/ConsolePanel.tsx +151 -43
  54. package/client/src/components/ui/ErrorBoundary.tsx +195 -195
  55. package/client/src/components/ui/InputNodesPanel.tsx +203 -203
  56. package/client/src/components/ui/MapSelector.tsx +313 -313
  57. package/client/src/components/ui/Modal.tsx +151 -148
  58. package/client/src/components/ui/NodeOutputPanel.tsx +1150 -1150
  59. package/client/src/components/ui/OutputDisplayPanel.tsx +381 -381
  60. package/client/src/components/ui/QRCodeDisplay.tsx +182 -0
  61. package/client/src/components/ui/TopToolbar.tsx +736 -736
  62. package/client/src/components/ui/WorkflowSidebar.tsx +293 -293
  63. package/client/src/config/antdTheme.ts +186 -186
  64. package/client/src/contexts/AuthContext.tsx +221 -221
  65. package/client/src/contexts/ThemeContext.tsx +42 -42
  66. package/client/src/contexts/WebSocketContext.tsx +2144 -1971
  67. package/client/src/factories/baseChatModelFactory.ts +255 -255
  68. package/client/src/hooks/useAndroidOperations.ts +118 -164
  69. package/client/src/hooks/useApiKeyValidation.ts +106 -106
  70. package/client/src/hooks/useApiKeys.ts +238 -238
  71. package/client/src/hooks/useAppTheme.ts +17 -17
  72. package/client/src/hooks/useComponentPalette.ts +50 -50
  73. package/client/src/hooks/useDragAndDrop.ts +123 -123
  74. package/client/src/hooks/useDragVariable.ts +88 -88
  75. package/client/src/hooks/useExecution.ts +319 -313
  76. package/client/src/hooks/useParameterPanel.ts +176 -176
  77. package/client/src/hooks/useReactFlowNodes.ts +188 -188
  78. package/client/src/hooks/useToolSchema.ts +209 -209
  79. package/client/src/hooks/useWhatsApp.ts +196 -196
  80. package/client/src/hooks/useWorkflowManagement.ts +45 -45
  81. package/client/src/index.css +314 -314
  82. package/client/src/nodeDefinitions/aiAgentNodes.ts +335 -335
  83. package/client/src/nodeDefinitions/aiModelNodes.ts +340 -340
  84. package/client/src/nodeDefinitions/androidServiceNodes.ts +383 -383
  85. package/client/src/nodeDefinitions/chatNodes.ts +135 -135
  86. package/client/src/nodeDefinitions/codeNodes.ts +54 -54
  87. package/client/src/nodeDefinitions/index.ts +14 -14
  88. package/client/src/nodeDefinitions/locationNodes.ts +462 -462
  89. package/client/src/nodeDefinitions/schedulerNodes.ts +220 -220
  90. package/client/src/nodeDefinitions/skillNodes.ts +17 -5
  91. package/client/src/nodeDefinitions/utilityNodes.ts +284 -284
  92. package/client/src/nodeDefinitions/whatsappNodes.ts +821 -865
  93. package/client/src/nodeDefinitions.ts +101 -103
  94. package/client/src/services/dynamicParameterService.ts +95 -95
  95. package/client/src/services/execution/aiAgentExecutionService.ts +34 -34
  96. package/client/src/services/executionService.ts +227 -231
  97. package/client/src/services/workflowApi.ts +91 -91
  98. package/client/src/store/useAppStore.ts +578 -581
  99. package/client/src/styles/theme.ts +513 -508
  100. package/client/src/styles/zIndex.ts +16 -16
  101. package/client/src/types/ComponentTypes.ts +38 -38
  102. package/client/src/types/INodeProperties.ts +287 -287
  103. package/client/src/types/NodeTypes.ts +27 -27
  104. package/client/src/utils/formatters.ts +32 -32
  105. package/client/src/utils/googleMapsLoader.ts +139 -139
  106. package/client/src/utils/locationUtils.ts +84 -84
  107. package/client/src/utils/nodeUtils.ts +30 -30
  108. package/client/src/utils/workflow.ts +29 -29
  109. package/client/src/vite-env.d.ts +12 -12
  110. package/client/tailwind.config.js +59 -59
  111. package/client/tsconfig.json +25 -25
  112. package/client/vite.config.js +35 -35
  113. package/install.ps1 +308 -0
  114. package/install.sh +343 -0
  115. package/package.json +81 -70
  116. package/scripts/build.js +174 -51
  117. package/scripts/clean.js +40 -40
  118. package/scripts/start.js +234 -210
  119. package/scripts/stop.js +301 -325
  120. package/server/.dockerignore +44 -44
  121. package/server/Dockerfile +45 -45
  122. package/server/constants.py +244 -249
  123. package/server/core/cache.py +460 -460
  124. package/server/core/config.py +127 -127
  125. package/server/core/container.py +98 -98
  126. package/server/core/database.py +1296 -1210
  127. package/server/core/logging.py +313 -313
  128. package/server/main.py +288 -288
  129. package/server/middleware/__init__.py +5 -5
  130. package/server/middleware/auth.py +89 -89
  131. package/server/models/auth.py +52 -52
  132. package/server/models/cache.py +24 -24
  133. package/server/models/database.py +235 -210
  134. package/server/models/nodes.py +435 -455
  135. package/server/pyproject.toml +75 -72
  136. package/server/requirements.txt +83 -83
  137. package/server/routers/android.py +294 -294
  138. package/server/routers/auth.py +203 -203
  139. package/server/routers/database.py +150 -150
  140. package/server/routers/maps.py +141 -141
  141. package/server/routers/nodejs_compat.py +288 -288
  142. package/server/routers/webhook.py +90 -90
  143. package/server/routers/websocket.py +2239 -2127
  144. package/server/routers/whatsapp.py +761 -761
  145. package/server/routers/workflow.py +199 -199
  146. package/server/services/ai.py +2444 -2414
  147. package/server/services/android_service.py +588 -588
  148. package/server/services/auth.py +130 -130
  149. package/server/services/chat_client.py +160 -160
  150. package/server/services/deployment/manager.py +706 -706
  151. package/server/services/event_waiter.py +675 -785
  152. package/server/services/execution/executor.py +1351 -1351
  153. package/server/services/execution/models.py +1 -1
  154. package/server/services/handlers/__init__.py +122 -126
  155. package/server/services/handlers/ai.py +390 -355
  156. package/server/services/handlers/android.py +69 -260
  157. package/server/services/handlers/code.py +278 -278
  158. package/server/services/handlers/http.py +193 -193
  159. package/server/services/handlers/tools.py +146 -32
  160. package/server/services/handlers/triggers.py +107 -107
  161. package/server/services/handlers/utility.py +822 -822
  162. package/server/services/handlers/whatsapp.py +423 -476
  163. package/server/services/maps.py +288 -288
  164. package/server/services/memory_store.py +103 -103
  165. package/server/services/node_executor.py +372 -375
  166. package/server/services/scheduler.py +155 -155
  167. package/server/services/skill_loader.py +1 -1
  168. package/server/services/status_broadcaster.py +834 -826
  169. package/server/services/temporal/__init__.py +23 -23
  170. package/server/services/temporal/activities.py +344 -344
  171. package/server/services/temporal/client.py +76 -76
  172. package/server/services/temporal/executor.py +147 -147
  173. package/server/services/temporal/worker.py +251 -251
  174. package/server/services/temporal/workflow.py +355 -355
  175. package/server/services/temporal/ws_client.py +236 -236
  176. package/server/services/text.py +110 -110
  177. package/server/services/user_auth.py +172 -172
  178. package/server/services/websocket_client.py +29 -29
  179. package/server/services/workflow.py +597 -597
  180. package/server/skills/android-skill/SKILL.md +4 -4
  181. package/server/skills/code-skill/SKILL.md +123 -89
  182. package/server/skills/maps-skill/SKILL.md +3 -3
  183. package/server/skills/memory-skill/SKILL.md +1 -1
  184. package/server/skills/web-search-skill/SKILL.md +154 -0
  185. package/server/skills/whatsapp-skill/SKILL.md +3 -3
  186. package/server/uv.lock +461 -100
  187. package/server/whatsapp-rpc/.dockerignore +30 -30
  188. package/server/whatsapp-rpc/Dockerfile +44 -44
  189. package/server/whatsapp-rpc/Dockerfile.web +17 -17
  190. package/server/whatsapp-rpc/README.md +139 -139
  191. package/server/whatsapp-rpc/bin/whatsapp-rpc-server +0 -0
  192. package/server/whatsapp-rpc/cli.js +95 -95
  193. package/server/whatsapp-rpc/configs/config.yaml +6 -6
  194. package/server/whatsapp-rpc/docker-compose.yml +35 -35
  195. package/server/whatsapp-rpc/docs/API.md +410 -410
  196. package/server/whatsapp-rpc/node_modules/.package-lock.json +259 -0
  197. package/server/whatsapp-rpc/node_modules/chalk/license +9 -0
  198. package/server/whatsapp-rpc/node_modules/chalk/package.json +83 -0
  199. package/server/whatsapp-rpc/node_modules/chalk/readme.md +297 -0
  200. package/server/whatsapp-rpc/node_modules/chalk/source/index.d.ts +325 -0
  201. package/server/whatsapp-rpc/node_modules/chalk/source/index.js +225 -0
  202. package/server/whatsapp-rpc/node_modules/chalk/source/utilities.js +33 -0
  203. package/server/whatsapp-rpc/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +236 -0
  204. package/server/whatsapp-rpc/node_modules/chalk/source/vendor/ansi-styles/index.js +223 -0
  205. package/server/whatsapp-rpc/node_modules/chalk/source/vendor/supports-color/browser.d.ts +1 -0
  206. package/server/whatsapp-rpc/node_modules/chalk/source/vendor/supports-color/browser.js +34 -0
  207. package/server/whatsapp-rpc/node_modules/chalk/source/vendor/supports-color/index.d.ts +55 -0
  208. package/server/whatsapp-rpc/node_modules/chalk/source/vendor/supports-color/index.js +190 -0
  209. package/server/whatsapp-rpc/node_modules/commander/LICENSE +22 -0
  210. package/server/whatsapp-rpc/node_modules/commander/Readme.md +1148 -0
  211. package/server/whatsapp-rpc/node_modules/commander/esm.mjs +16 -0
  212. package/server/whatsapp-rpc/node_modules/commander/index.js +26 -0
  213. package/server/whatsapp-rpc/node_modules/commander/lib/argument.js +145 -0
  214. package/server/whatsapp-rpc/node_modules/commander/lib/command.js +2179 -0
  215. package/server/whatsapp-rpc/node_modules/commander/lib/error.js +43 -0
  216. package/server/whatsapp-rpc/node_modules/commander/lib/help.js +462 -0
  217. package/server/whatsapp-rpc/node_modules/commander/lib/option.js +329 -0
  218. package/server/whatsapp-rpc/node_modules/commander/lib/suggestSimilar.js +100 -0
  219. package/server/whatsapp-rpc/node_modules/commander/package-support.json +16 -0
  220. package/server/whatsapp-rpc/node_modules/commander/package.json +80 -0
  221. package/server/whatsapp-rpc/node_modules/commander/typings/esm.d.mts +3 -0
  222. package/server/whatsapp-rpc/node_modules/commander/typings/index.d.ts +884 -0
  223. package/server/whatsapp-rpc/node_modules/cross-spawn/LICENSE +21 -0
  224. package/server/whatsapp-rpc/node_modules/cross-spawn/README.md +89 -0
  225. package/server/whatsapp-rpc/node_modules/cross-spawn/index.js +39 -0
  226. package/server/whatsapp-rpc/node_modules/cross-spawn/lib/enoent.js +59 -0
  227. package/server/whatsapp-rpc/node_modules/cross-spawn/lib/parse.js +91 -0
  228. package/server/whatsapp-rpc/node_modules/cross-spawn/lib/util/escape.js +47 -0
  229. package/server/whatsapp-rpc/node_modules/cross-spawn/lib/util/readShebang.js +23 -0
  230. package/server/whatsapp-rpc/node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0
  231. package/server/whatsapp-rpc/node_modules/cross-spawn/package.json +73 -0
  232. package/server/whatsapp-rpc/node_modules/execa/index.d.ts +955 -0
  233. package/server/whatsapp-rpc/node_modules/execa/index.js +309 -0
  234. package/server/whatsapp-rpc/node_modules/execa/lib/command.js +119 -0
  235. package/server/whatsapp-rpc/node_modules/execa/lib/error.js +87 -0
  236. package/server/whatsapp-rpc/node_modules/execa/lib/kill.js +102 -0
  237. package/server/whatsapp-rpc/node_modules/execa/lib/pipe.js +42 -0
  238. package/server/whatsapp-rpc/node_modules/execa/lib/promise.js +36 -0
  239. package/server/whatsapp-rpc/node_modules/execa/lib/stdio.js +49 -0
  240. package/server/whatsapp-rpc/node_modules/execa/lib/stream.js +133 -0
  241. package/server/whatsapp-rpc/node_modules/execa/lib/verbose.js +19 -0
  242. package/server/whatsapp-rpc/node_modules/execa/license +9 -0
  243. package/server/whatsapp-rpc/node_modules/execa/package.json +90 -0
  244. package/server/whatsapp-rpc/node_modules/execa/readme.md +822 -0
  245. package/server/whatsapp-rpc/node_modules/get-stream/license +9 -0
  246. package/server/whatsapp-rpc/node_modules/get-stream/package.json +53 -0
  247. package/server/whatsapp-rpc/node_modules/get-stream/readme.md +291 -0
  248. package/server/whatsapp-rpc/node_modules/get-stream/source/array-buffer.js +84 -0
  249. package/server/whatsapp-rpc/node_modules/get-stream/source/array.js +32 -0
  250. package/server/whatsapp-rpc/node_modules/get-stream/source/buffer.js +20 -0
  251. package/server/whatsapp-rpc/node_modules/get-stream/source/contents.js +101 -0
  252. package/server/whatsapp-rpc/node_modules/get-stream/source/index.d.ts +119 -0
  253. package/server/whatsapp-rpc/node_modules/get-stream/source/index.js +5 -0
  254. package/server/whatsapp-rpc/node_modules/get-stream/source/string.js +36 -0
  255. package/server/whatsapp-rpc/node_modules/get-stream/source/utils.js +11 -0
  256. package/server/whatsapp-rpc/node_modules/get-them-args/LICENSE +21 -0
  257. package/server/whatsapp-rpc/node_modules/get-them-args/README.md +95 -0
  258. package/server/whatsapp-rpc/node_modules/get-them-args/index.js +97 -0
  259. package/server/whatsapp-rpc/node_modules/get-them-args/package.json +36 -0
  260. package/server/whatsapp-rpc/node_modules/human-signals/LICENSE +201 -0
  261. package/server/whatsapp-rpc/node_modules/human-signals/README.md +168 -0
  262. package/server/whatsapp-rpc/node_modules/human-signals/build/src/core.js +273 -0
  263. package/server/whatsapp-rpc/node_modules/human-signals/build/src/main.d.ts +73 -0
  264. package/server/whatsapp-rpc/node_modules/human-signals/build/src/main.js +70 -0
  265. package/server/whatsapp-rpc/node_modules/human-signals/build/src/realtime.js +16 -0
  266. package/server/whatsapp-rpc/node_modules/human-signals/build/src/signals.js +34 -0
  267. package/server/whatsapp-rpc/node_modules/human-signals/package.json +61 -0
  268. package/server/whatsapp-rpc/node_modules/is-stream/index.d.ts +81 -0
  269. package/server/whatsapp-rpc/node_modules/is-stream/index.js +29 -0
  270. package/server/whatsapp-rpc/node_modules/is-stream/license +9 -0
  271. package/server/whatsapp-rpc/node_modules/is-stream/package.json +44 -0
  272. package/server/whatsapp-rpc/node_modules/is-stream/readme.md +60 -0
  273. package/server/whatsapp-rpc/node_modules/isexe/LICENSE +15 -0
  274. package/server/whatsapp-rpc/node_modules/isexe/README.md +51 -0
  275. package/server/whatsapp-rpc/node_modules/isexe/index.js +57 -0
  276. package/server/whatsapp-rpc/node_modules/isexe/mode.js +41 -0
  277. package/server/whatsapp-rpc/node_modules/isexe/package.json +31 -0
  278. package/server/whatsapp-rpc/node_modules/isexe/test/basic.js +221 -0
  279. package/server/whatsapp-rpc/node_modules/isexe/windows.js +42 -0
  280. package/server/whatsapp-rpc/node_modules/kill-port/.editorconfig +12 -0
  281. package/server/whatsapp-rpc/node_modules/kill-port/.gitattributes +1 -0
  282. package/server/whatsapp-rpc/node_modules/kill-port/LICENSE +21 -0
  283. package/server/whatsapp-rpc/node_modules/kill-port/README.md +140 -0
  284. package/server/whatsapp-rpc/node_modules/kill-port/cli.js +25 -0
  285. package/server/whatsapp-rpc/node_modules/kill-port/example.js +21 -0
  286. package/server/whatsapp-rpc/node_modules/kill-port/index.js +46 -0
  287. package/server/whatsapp-rpc/node_modules/kill-port/logo.png +0 -0
  288. package/server/whatsapp-rpc/node_modules/kill-port/package.json +41 -0
  289. package/server/whatsapp-rpc/node_modules/kill-port/pnpm-lock.yaml +4606 -0
  290. package/server/whatsapp-rpc/node_modules/kill-port/test.js +16 -0
  291. package/server/whatsapp-rpc/node_modules/merge-stream/LICENSE +21 -0
  292. package/server/whatsapp-rpc/node_modules/merge-stream/README.md +78 -0
  293. package/server/whatsapp-rpc/node_modules/merge-stream/index.js +41 -0
  294. package/server/whatsapp-rpc/node_modules/merge-stream/package.json +19 -0
  295. package/server/whatsapp-rpc/node_modules/mimic-fn/index.d.ts +52 -0
  296. package/server/whatsapp-rpc/node_modules/mimic-fn/index.js +71 -0
  297. package/server/whatsapp-rpc/node_modules/mimic-fn/license +9 -0
  298. package/server/whatsapp-rpc/node_modules/mimic-fn/package.json +45 -0
  299. package/server/whatsapp-rpc/node_modules/mimic-fn/readme.md +90 -0
  300. package/server/whatsapp-rpc/node_modules/npm-run-path/index.d.ts +90 -0
  301. package/server/whatsapp-rpc/node_modules/npm-run-path/index.js +52 -0
  302. package/server/whatsapp-rpc/node_modules/npm-run-path/license +9 -0
  303. package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/index.d.ts +31 -0
  304. package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/index.js +12 -0
  305. package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/license +9 -0
  306. package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/package.json +41 -0
  307. package/server/whatsapp-rpc/node_modules/npm-run-path/node_modules/path-key/readme.md +57 -0
  308. package/server/whatsapp-rpc/node_modules/npm-run-path/package.json +49 -0
  309. package/server/whatsapp-rpc/node_modules/npm-run-path/readme.md +104 -0
  310. package/server/whatsapp-rpc/node_modules/onetime/index.d.ts +59 -0
  311. package/server/whatsapp-rpc/node_modules/onetime/index.js +41 -0
  312. package/server/whatsapp-rpc/node_modules/onetime/license +9 -0
  313. package/server/whatsapp-rpc/node_modules/onetime/package.json +45 -0
  314. package/server/whatsapp-rpc/node_modules/onetime/readme.md +94 -0
  315. package/server/whatsapp-rpc/node_modules/path-key/index.d.ts +40 -0
  316. package/server/whatsapp-rpc/node_modules/path-key/index.js +16 -0
  317. package/server/whatsapp-rpc/node_modules/path-key/license +9 -0
  318. package/server/whatsapp-rpc/node_modules/path-key/package.json +39 -0
  319. package/server/whatsapp-rpc/node_modules/path-key/readme.md +61 -0
  320. package/server/whatsapp-rpc/node_modules/shebang-command/index.js +19 -0
  321. package/server/whatsapp-rpc/node_modules/shebang-command/license +9 -0
  322. package/server/whatsapp-rpc/node_modules/shebang-command/package.json +34 -0
  323. package/server/whatsapp-rpc/node_modules/shebang-command/readme.md +34 -0
  324. package/server/whatsapp-rpc/node_modules/shebang-regex/index.d.ts +22 -0
  325. package/server/whatsapp-rpc/node_modules/shebang-regex/index.js +2 -0
  326. package/server/whatsapp-rpc/node_modules/shebang-regex/license +9 -0
  327. package/server/whatsapp-rpc/node_modules/shebang-regex/package.json +35 -0
  328. package/server/whatsapp-rpc/node_modules/shebang-regex/readme.md +33 -0
  329. package/server/whatsapp-rpc/node_modules/shell-exec/LICENSE +21 -0
  330. package/server/whatsapp-rpc/node_modules/shell-exec/README.md +60 -0
  331. package/server/whatsapp-rpc/node_modules/shell-exec/index.js +47 -0
  332. package/server/whatsapp-rpc/node_modules/shell-exec/package.json +29 -0
  333. package/server/whatsapp-rpc/node_modules/signal-exit/LICENSE.txt +16 -0
  334. package/server/whatsapp-rpc/node_modules/signal-exit/README.md +74 -0
  335. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/browser.d.ts +12 -0
  336. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/browser.d.ts.map +1 -0
  337. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/browser.js +10 -0
  338. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/browser.js.map +1 -0
  339. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/index.d.ts +48 -0
  340. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/index.d.ts.map +1 -0
  341. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/index.js +279 -0
  342. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/index.js.map +1 -0
  343. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/package.json +3 -0
  344. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/signals.d.ts +29 -0
  345. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/signals.d.ts.map +1 -0
  346. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/signals.js +42 -0
  347. package/server/whatsapp-rpc/node_modules/signal-exit/dist/cjs/signals.js.map +1 -0
  348. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/browser.d.ts +12 -0
  349. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/browser.d.ts.map +1 -0
  350. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/browser.js +4 -0
  351. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/browser.js.map +1 -0
  352. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/index.d.ts +48 -0
  353. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/index.d.ts.map +1 -0
  354. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/index.js +275 -0
  355. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/index.js.map +1 -0
  356. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/package.json +3 -0
  357. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/signals.d.ts +29 -0
  358. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/signals.d.ts.map +1 -0
  359. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/signals.js +39 -0
  360. package/server/whatsapp-rpc/node_modules/signal-exit/dist/mjs/signals.js.map +1 -0
  361. package/server/whatsapp-rpc/node_modules/signal-exit/package.json +106 -0
  362. package/server/whatsapp-rpc/node_modules/strip-final-newline/index.js +14 -0
  363. package/server/whatsapp-rpc/node_modules/strip-final-newline/license +9 -0
  364. package/server/whatsapp-rpc/node_modules/strip-final-newline/package.json +43 -0
  365. package/server/whatsapp-rpc/node_modules/strip-final-newline/readme.md +35 -0
  366. package/server/whatsapp-rpc/node_modules/which/CHANGELOG.md +166 -0
  367. package/server/whatsapp-rpc/node_modules/which/LICENSE +15 -0
  368. package/server/whatsapp-rpc/node_modules/which/README.md +54 -0
  369. package/server/whatsapp-rpc/node_modules/which/bin/node-which +52 -0
  370. package/server/whatsapp-rpc/node_modules/which/package.json +43 -0
  371. package/server/whatsapp-rpc/node_modules/which/which.js +125 -0
  372. package/server/whatsapp-rpc/package-lock.json +272 -0
  373. package/server/whatsapp-rpc/package.json +30 -30
  374. package/server/whatsapp-rpc/schema.json +1294 -1294
  375. package/server/whatsapp-rpc/scripts/clean.cjs +66 -66
  376. package/server/whatsapp-rpc/scripts/cli.js +162 -162
  377. package/server/whatsapp-rpc/src/go/whatsapp/history.go +166 -166
  378. package/server/whatsapp-rpc/src/python/pyproject.toml +15 -15
  379. package/server/whatsapp-rpc/src/python/whatsapp_rpc/__init__.py +4 -4
  380. package/server/whatsapp-rpc/src/python/whatsapp_rpc/client.py +427 -427
  381. package/server/whatsapp-rpc/web/app.py +609 -609
  382. package/server/whatsapp-rpc/web/requirements.txt +6 -6
  383. package/server/whatsapp-rpc/web/rpc_client.py +427 -427
  384. package/server/whatsapp-rpc/web/static/openapi.yaml +59 -59
  385. package/server/whatsapp-rpc/web/templates/base.html +149 -149
  386. package/server/whatsapp-rpc/web/templates/contacts.html +240 -240
  387. package/server/whatsapp-rpc/web/templates/dashboard.html +319 -319
  388. package/server/whatsapp-rpc/web/templates/groups.html +328 -328
  389. package/server/whatsapp-rpc/web/templates/messages.html +465 -465
  390. package/server/whatsapp-rpc/web/templates/messaging.html +680 -680
  391. package/server/whatsapp-rpc/web/templates/send.html +258 -258
  392. package/server/whatsapp-rpc/web/templates/settings.html +459 -459
  393. package/client/src/components/ui/AndroidSettingsPanel.tsx +0 -401
  394. package/client/src/components/ui/WhatsAppSettingsPanel.tsx +0 -345
  395. package/client/src/nodeDefinitions/androidDeviceNodes.ts +0 -140
  396. package/docker-compose.prod.yml +0 -107
  397. package/docker-compose.yml +0 -104
  398. package/docs-MachinaOs/README.md +0 -85
  399. package/docs-MachinaOs/deployment/docker.mdx +0 -228
  400. package/docs-MachinaOs/deployment/production.mdx +0 -345
  401. package/docs-MachinaOs/docs.json +0 -75
  402. package/docs-MachinaOs/faq.mdx +0 -309
  403. package/docs-MachinaOs/favicon.svg +0 -5
  404. package/docs-MachinaOs/installation.mdx +0 -160
  405. package/docs-MachinaOs/introduction.mdx +0 -114
  406. package/docs-MachinaOs/logo/dark.svg +0 -6
  407. package/docs-MachinaOs/logo/light.svg +0 -6
  408. package/docs-MachinaOs/nodes/ai-agent.mdx +0 -216
  409. package/docs-MachinaOs/nodes/ai-models.mdx +0 -240
  410. package/docs-MachinaOs/nodes/android.mdx +0 -411
  411. package/docs-MachinaOs/nodes/overview.mdx +0 -181
  412. package/docs-MachinaOs/nodes/schedulers.mdx +0 -316
  413. package/docs-MachinaOs/nodes/webhooks.mdx +0 -330
  414. package/docs-MachinaOs/nodes/whatsapp.mdx +0 -305
  415. package/docs-MachinaOs/quickstart.mdx +0 -119
  416. package/docs-MachinaOs/tutorials/ai-agent-workflow.mdx +0 -177
  417. package/docs-MachinaOs/tutorials/android-automation.mdx +0 -242
  418. package/docs-MachinaOs/tutorials/first-workflow.mdx +0 -134
  419. package/docs-MachinaOs/tutorials/whatsapp-automation.mdx +0 -185
  420. package/nul +0 -0
  421. package/scripts/check-ports.ps1 +0 -33
  422. package/scripts/kill-port.ps1 +0 -154
package/scripts/build.js CHANGED
@@ -2,6 +2,11 @@
2
2
  /**
3
3
  * Cross-platform build script for MachinaOS.
4
4
  * Works on: Windows, macOS, Linux, WSL, Git Bash
5
+ *
6
+ * Automatically installs missing dependencies:
7
+ * - Python 3.11+ (via winget/brew/apt)
8
+ * - uv (Python package manager)
9
+ * - Go (for WhatsApp service)
5
10
  */
6
11
  import { execSync } from 'child_process';
7
12
  import { existsSync, copyFileSync } from 'fs';
@@ -11,6 +16,23 @@ import { fileURLToPath } from 'url';
11
16
  const __dirname = dirname(fileURLToPath(import.meta.url));
12
17
  const ROOT = resolve(__dirname, '..');
13
18
 
19
+ // Platform detection
20
+ const isWindows = process.platform === 'win32';
21
+ const isMac = process.platform === 'darwin';
22
+
23
+ // Environment detection
24
+ // - postinstall: npm already installed root deps, skip to avoid infinite loop
25
+ // - CI: GitHub Actions handles build separately, skip postinstall entirely
26
+ const isPostInstall = process.env.npm_lifecycle_event === 'postinstall';
27
+ const isCI = process.env.CI === 'true' || process.env.GITHUB_ACTIONS === 'true';
28
+
29
+ // Skip build entirely in CI (workflows handle this)
30
+ if (isCI && isPostInstall) {
31
+ console.log('CI environment detected, skipping postinstall build.');
32
+ process.exit(0);
33
+ }
34
+
35
+
14
36
  // Ensure Python UTF-8 encoding
15
37
  process.env.PYTHONUTF8 = '1';
16
38
 
@@ -18,7 +40,7 @@ function run(cmd, cwd = ROOT) {
18
40
  execSync(cmd, { cwd, stdio: 'inherit', shell: true });
19
41
  }
20
42
 
21
- function check(cmd) {
43
+ function runSilent(cmd) {
22
44
  try {
23
45
  execSync(cmd, { stdio: 'pipe', shell: true });
24
46
  return true;
@@ -40,79 +62,172 @@ function log(step, msg) {
40
62
  }
41
63
 
42
64
  function npmInstall(cwd = ROOT) {
43
- // Try npm ci first (fast), fall back to npm install if lock file out of sync
44
- try {
45
- execSync('npm ci', { cwd, stdio: 'pipe', shell: true });
46
- } catch {
47
- execSync('npm install', { cwd, stdio: 'inherit', shell: true });
65
+ // Use npm install directly with visible output
66
+ // npm ci requires package-lock.json which may not exist in all directories
67
+ execSync('npm install', { cwd, stdio: 'inherit', shell: true });
68
+ }
69
+
70
+ // ============================================================================
71
+ // Auto-install missing dependencies
72
+ // ============================================================================
73
+
74
+ function installPython() {
75
+ console.log(' Installing Python 3.11+...');
76
+ if (isWindows) {
77
+ // Try winget first, then choco
78
+ if (runSilent('winget --version')) {
79
+ run('winget install Python.Python.3.12 --accept-package-agreements --accept-source-agreements');
80
+ } else if (runSilent('choco --version')) {
81
+ run('choco install python312 -y');
82
+ } else {
83
+ console.error(' Error: Please install Python manually from https://python.org/');
84
+ console.error(' Or install winget/chocolatey first.');
85
+ process.exit(1);
86
+ }
87
+ } else if (isMac) {
88
+ if (runSilent('brew --version')) {
89
+ run('brew install python@3.12');
90
+ } else {
91
+ console.error(' Error: Please install Homebrew first: https://brew.sh/');
92
+ process.exit(1);
93
+ }
94
+ } else {
95
+ // Linux
96
+ if (runSilent('apt --version')) {
97
+ run('sudo apt update && sudo apt install -y python3.12 python3.12-venv');
98
+ } else if (runSilent('dnf --version')) {
99
+ run('sudo dnf install -y python3.12');
100
+ } else if (runSilent('pacman --version')) {
101
+ run('sudo pacman -S --noconfirm python');
102
+ } else {
103
+ console.error(' Error: Please install Python manually from https://python.org/');
104
+ process.exit(1);
105
+ }
106
+ }
107
+ }
108
+
109
+ function installUv() {
110
+ console.log(' Installing uv...');
111
+ if (isWindows) {
112
+ run('powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"');
113
+ } else {
114
+ run('curl -LsSf https://astral.sh/uv/install.sh | sh');
115
+ }
116
+ // Add to PATH for current session
117
+ if (isWindows) {
118
+ process.env.PATH = `${process.env.USERPROFILE}\\.local\\bin;${process.env.PATH}`;
119
+ } else {
120
+ process.env.PATH = `${process.env.HOME}/.local/bin:${process.env.PATH}`;
121
+ }
122
+ }
123
+
124
+ function installGo() {
125
+ console.log(' Installing Go...');
126
+ if (isWindows) {
127
+ if (runSilent('winget --version')) {
128
+ run('winget install GoLang.Go --accept-package-agreements --accept-source-agreements');
129
+ } else if (runSilent('choco --version')) {
130
+ run('choco install golang -y');
131
+ } else {
132
+ console.error(' Error: Please install Go manually from https://go.dev/dl/');
133
+ process.exit(1);
134
+ }
135
+ } else if (isMac) {
136
+ if (runSilent('brew --version')) {
137
+ run('brew install go');
138
+ } else {
139
+ console.error(' Error: Please install Homebrew first: https://brew.sh/');
140
+ process.exit(1);
141
+ }
142
+ } else {
143
+ if (runSilent('apt --version')) {
144
+ run('sudo apt update && sudo apt install -y golang-go');
145
+ } else if (runSilent('dnf --version')) {
146
+ run('sudo dnf install -y golang');
147
+ } else if (runSilent('pacman --version')) {
148
+ run('sudo pacman -S --noconfirm go');
149
+ } else {
150
+ console.error(' Error: Please install Go manually from https://go.dev/dl/');
151
+ process.exit(1);
152
+ }
48
153
  }
49
154
  }
50
155
 
51
156
  // ============================================================================
52
- // Check Dependencies
157
+ // Check and Install Dependencies
53
158
  // ============================================================================
54
159
 
55
160
  console.log('Checking dependencies...\n');
56
161
 
57
- const missing = [];
58
-
59
- // Node.js
162
+ // Node.js (must already be installed to run this script)
60
163
  const nodeVersion = getVersion('node --version');
61
- if (nodeVersion) {
62
- console.log(` Node.js: ${nodeVersion}`);
63
- } else {
64
- missing.push('Node.js - https://nodejs.org/');
65
- }
164
+ console.log(` Node.js: ${nodeVersion}`);
66
165
 
67
- // npm
68
166
  const npmVersion = getVersion('npm --version');
69
- if (npmVersion) {
70
- console.log(` npm: ${npmVersion}`);
71
- } else {
72
- missing.push('npm - comes with Node.js');
73
- }
167
+ console.log(` npm: ${npmVersion}`);
74
168
 
75
169
  // Python
76
170
  let pyCmd = null;
77
- if (check('python --version')) {
171
+ if (runSilent('python --version')) {
78
172
  pyCmd = 'python';
79
- } else if (check('python3 --version')) {
173
+ } else if (runSilent('python3 --version')) {
80
174
  pyCmd = 'python3';
81
175
  }
176
+
82
177
  if (pyCmd) {
83
178
  const pyVersion = getVersion(`${pyCmd} --version`);
84
- console.log(` ${pyVersion}`);
179
+ const match = pyVersion?.match(/Python (\d+)\.(\d+)/);
180
+ if (match) {
181
+ const [, major, minor] = match.map(Number);
182
+ if (major >= 3 && minor >= 11) {
183
+ console.log(` ${pyVersion}`);
184
+ } else {
185
+ console.log(` ${pyVersion} (too old, need 3.11+)`);
186
+ installPython();
187
+ }
188
+ }
85
189
  } else {
86
- missing.push('Python 3.11+ - https://python.org/');
190
+ installPython();
191
+ // Re-check
192
+ pyCmd = runSilent('python --version') ? 'python' : 'python3';
193
+ console.log(` ${getVersion(`${pyCmd} --version`)}`);
87
194
  }
88
195
 
89
- // uv (Python package manager)
90
- const uvVersion = getVersion('uv --version');
196
+ // uv
197
+ let uvVersion = getVersion('uv --version');
91
198
  if (uvVersion) {
92
199
  console.log(` uv: ${uvVersion}`);
93
200
  } else {
94
- missing.push('uv - https://docs.astral.sh/uv/getting-started/installation/');
201
+ installUv();
202
+ uvVersion = getVersion('uv --version');
203
+ if (uvVersion) {
204
+ console.log(` uv: ${uvVersion}`);
205
+ } else {
206
+ console.error(' Error: Failed to install uv. Please install manually.');
207
+ console.error(' https://docs.astral.sh/uv/getting-started/installation/');
208
+ process.exit(1);
209
+ }
95
210
  }
96
211
 
97
- // Go (required for WhatsApp server)
98
- const goVersionFull = getVersion('go version');
212
+ // Go
213
+ let goVersionFull = getVersion('go version');
99
214
  if (goVersionFull) {
100
215
  const goVersion = goVersionFull.match(/go\d+\.\d+(\.\d+)?/)?.[0] || 'go';
101
216
  console.log(` Go: ${goVersion}`);
102
217
  } else {
103
- missing.push('Go - https://go.dev/dl/');
104
- }
105
-
106
- if (missing.length > 0) {
107
- console.error('\nMissing required dependencies:\n');
108
- for (const dep of missing) {
109
- console.error(` - ${dep}`);
218
+ installGo();
219
+ goVersionFull = getVersion('go version');
220
+ if (goVersionFull) {
221
+ const goVersion = goVersionFull.match(/go\d+\.\d+(\.\d+)?/)?.[0] || 'go';
222
+ console.log(` Go: ${goVersion}`);
223
+ } else {
224
+ console.error(' Error: Failed to install Go. Please install manually.');
225
+ console.error(' https://go.dev/dl/');
226
+ process.exit(1);
110
227
  }
111
- console.error('\nPlease install the missing dependencies and try again.');
112
- process.exit(1);
113
228
  }
114
229
 
115
- console.log('\nAll dependencies found.\n');
230
+ console.log('\nAll dependencies ready.\n');
116
231
 
117
232
  // ============================================================================
118
233
  // Build
@@ -127,27 +242,35 @@ try {
127
242
  log('0/5', 'Created .env from template');
128
243
  }
129
244
 
130
- // Step 1: Install root dependencies
131
- log('1/5', 'Installing root dependencies...');
132
- npmInstall(ROOT);
245
+ // Step 1: Install root dependencies (skip if postinstall - npm already did this)
246
+ if (!isPostInstall) {
247
+ log('1/6', 'Installing root dependencies...');
248
+ npmInstall(ROOT);
249
+ } else {
250
+ log('1/6', 'Root dependencies already installed by npm');
251
+ }
252
+
253
+ // Step 2: Install client dependencies
254
+ log('2/6', 'Installing client dependencies...');
255
+ npmInstall(resolve(ROOT, 'client'));
133
256
 
134
- // Step 2: Build client
135
- log('2/5', 'Building client...');
257
+ // Step 3: Build client
258
+ log('3/6', 'Building client...');
136
259
  run('npm run build', resolve(ROOT, 'client'));
137
260
 
138
- // Step 3: Install Python dependencies
139
- log('3/5', 'Installing Python dependencies...');
261
+ // Step 4: Install Python dependencies
262
+ log('4/6', 'Installing Python dependencies...');
140
263
  const serverDir = resolve(ROOT, 'server');
141
264
  run('uv venv', serverDir);
142
265
  run('uv sync', serverDir);
143
266
 
144
- // Step 4: Install WhatsApp dependencies
145
- log('4/5', 'Installing WhatsApp dependencies...');
267
+ // Step 5: Install WhatsApp dependencies
268
+ log('5/6', 'Installing WhatsApp dependencies...');
146
269
  const whatsappDir = resolve(ROOT, 'server/whatsapp-rpc');
147
270
  npmInstall(whatsappDir);
148
271
 
149
- // Step 5: Build WhatsApp server (Go binary)
150
- log('5/5', 'Building WhatsApp server...');
272
+ // Step 6: Build WhatsApp server (Go binary)
273
+ log('6/6', 'Building WhatsApp server...');
151
274
  run('npm run build', whatsappDir);
152
275
 
153
276
  console.log('\nBuild complete.');
package/scripts/clean.js CHANGED
@@ -1,40 +1,40 @@
1
- #!/usr/bin/env node
2
- /**
3
- * Cross-platform clean script using Node.js native APIs.
4
- * Works on: Windows, macOS, Linux, WSL, Git Bash
5
- */
6
- import { rmSync, existsSync } from 'fs';
7
- import { resolve, dirname } from 'path';
8
- import { fileURLToPath } from 'url';
9
-
10
- const __dirname = dirname(fileURLToPath(import.meta.url));
11
- const ROOT = resolve(__dirname, '..');
12
-
13
- const targets = [
14
- 'node_modules',
15
- 'client/node_modules',
16
- 'client/dist',
17
- 'client/.vite',
18
- 'server/whatsapp-rpc/node_modules',
19
- 'server/whatsapp-rpc/bin',
20
- 'server/whatsapp-rpc/data',
21
- 'server/data',
22
- 'server/.venv',
23
- ];
24
-
25
- console.log('Cleaning...');
26
-
27
- for (const target of targets) {
28
- const fullPath = resolve(ROOT, target);
29
- if (existsSync(fullPath)) {
30
- console.log(` Removing: ${target}`);
31
- try {
32
- // Node.js native rmSync - works cross-platform
33
- rmSync(fullPath, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
34
- } catch (err) {
35
- console.log(` Warning: Could not remove ${target}: ${err.message}`);
36
- }
37
- }
38
- }
39
-
40
- console.log('Done.');
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Cross-platform clean script using Node.js native APIs.
4
+ * Works on: Windows, macOS, Linux, WSL, Git Bash
5
+ */
6
+ import { rmSync, existsSync } from 'fs';
7
+ import { resolve, dirname } from 'path';
8
+ import { fileURLToPath } from 'url';
9
+
10
+ const __dirname = dirname(fileURLToPath(import.meta.url));
11
+ const ROOT = resolve(__dirname, '..');
12
+
13
+ const targets = [
14
+ 'node_modules',
15
+ 'client/node_modules',
16
+ 'client/dist',
17
+ 'client/.vite',
18
+ 'server/whatsapp-rpc/node_modules',
19
+ 'server/whatsapp-rpc/bin',
20
+ 'server/whatsapp-rpc/data',
21
+ 'server/data',
22
+ 'server/.venv',
23
+ ];
24
+
25
+ console.log('Cleaning...');
26
+
27
+ for (const target of targets) {
28
+ const fullPath = resolve(ROOT, target);
29
+ if (existsSync(fullPath)) {
30
+ console.log(` Removing: ${target}`);
31
+ try {
32
+ // Node.js native rmSync - works cross-platform
33
+ rmSync(fullPath, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 });
34
+ } catch (err) {
35
+ console.log(` Warning: Could not remove ${target}: ${err.message}`);
36
+ }
37
+ }
38
+ }
39
+
40
+ console.log('Done.');