machinaos 0.0.76 → 0.0.78

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 (393) hide show
  1. package/README.md +143 -107
  2. package/client/dist/assets/ActionBar-Du2MSFSz.js +1 -0
  3. package/client/dist/assets/ApiKeyInput-k2LBmBjb.js +1 -0
  4. package/client/dist/assets/ApiKeyPanel-C_bV9U0X.js +1 -0
  5. package/client/dist/assets/ApiUsageSection-CmVfwZzL.js +1 -0
  6. package/client/dist/assets/EmailPanel-CeKIMGu-.js +1 -0
  7. package/client/dist/assets/OAuthPanel-KA3t3Q2K.js +1 -0
  8. package/client/dist/assets/QrPairingPanel-NgNpJNuk.js +1 -0
  9. package/client/dist/assets/RateLimitSection-Du5YNVIA.js +1 -0
  10. package/client/dist/assets/StatusCard-DNLyayXc.js +1 -0
  11. package/client/dist/assets/index-DQ0nwhec.js +257 -0
  12. package/client/dist/assets/index-DxmbVskS.css +1 -0
  13. package/client/dist/assets/vendor-flow-CZmBvHRo.js +1 -0
  14. package/client/dist/assets/vendor-icons-CVrPjN2Q.js +22 -0
  15. package/client/dist/assets/vendor-markdown-CRou3yQ5.js +62 -0
  16. package/client/dist/assets/vendor-misc-C4VxKHs5.js +1 -0
  17. package/client/dist/assets/vendor-query-SzWcOU0G.js +1 -0
  18. package/client/dist/assets/vendor-radix-Dnos29jG.js +56 -0
  19. package/client/dist/assets/vendor-react-DvWIbVx0.js +1 -0
  20. package/client/dist/index.html +37 -3
  21. package/client/index.html +28 -1
  22. package/client/package.json +44 -40
  23. package/client/src/App.tsx +2 -0
  24. package/client/src/Dashboard.tsx +157 -45
  25. package/client/src/ParameterPanel.tsx +3 -5
  26. package/client/src/adapters/nodeSpecToDescription.ts +1 -0
  27. package/client/src/assets/icons/NodeIcon.tsx +32 -0
  28. package/client/src/assets/icons/index.ts +4 -0
  29. package/client/src/assets/icons/stripe.svg +1 -0
  30. package/client/src/assets/icons/themedGlyphs.ts +404 -0
  31. package/client/src/components/AIAgentNode.tsx +77 -53
  32. package/client/src/components/GenericNode.tsx +34 -52
  33. package/client/src/components/OutputPanel.tsx +64 -147
  34. package/client/src/components/ParameterRenderer.tsx +5 -3
  35. package/client/src/components/SkillEditorModal.tsx +9 -18
  36. package/client/src/components/SquareNode.tsx +97 -115
  37. package/client/src/components/StartNode.tsx +32 -42
  38. package/client/src/components/SvgFilterDefs.tsx +54 -0
  39. package/client/src/components/TeamMonitorNode.tsx +12 -14
  40. package/client/src/components/ToolkitNode.tsx +35 -60
  41. package/client/src/components/TriggerNode.tsx +43 -77
  42. package/client/src/components/__tests__/CredentialsModal.test.tsx +49 -45
  43. package/client/src/components/credentials/CredentialsModal.tsx +98 -30
  44. package/client/src/components/credentials/CredentialsPalette.tsx +73 -5
  45. package/client/src/components/credentials/catalogueAdapter.ts +17 -1
  46. package/client/src/components/credentials/panels/ApiKeyPanel.tsx +102 -37
  47. package/client/src/components/credentials/panels/EmailPanel.tsx +7 -19
  48. package/client/src/components/credentials/panels/OAuthPanel.tsx +5 -1
  49. package/client/src/components/credentials/panels/QrPairingPanel.tsx +1 -3
  50. package/client/src/components/credentials/primitives/ActionBar.tsx +7 -11
  51. package/client/src/components/credentials/primitives/OAuthConnect.tsx +19 -28
  52. package/client/src/components/credentials/sections/ProviderDefaultsSection.tsx +24 -3
  53. package/client/src/components/credentials/types.ts +12 -2
  54. package/client/src/components/credentials/useCredentialPanel.ts +43 -19
  55. package/client/src/components/icons/AIProviderIcons.tsx +16 -0
  56. package/client/src/components/onboarding/OnboardingWizard.tsx +23 -63
  57. package/client/src/components/onboarding/nodeRoleClasses.ts +23 -0
  58. package/client/src/components/onboarding/steps/CanvasStep.tsx +15 -21
  59. package/client/src/components/onboarding/steps/ConceptsStep.tsx +2 -11
  60. package/client/src/components/onboarding/steps/GetStartedStep.tsx +2 -10
  61. package/client/src/components/parameterPanel/InputSection.tsx +9 -7
  62. package/client/src/components/parameterPanel/MasterSkillEditor.tsx +84 -198
  63. package/client/src/components/parameterPanel/MiddleSection.tsx +57 -80
  64. package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +31 -25
  65. package/client/src/components/parameterPanel/__tests__/InputSection.test.tsx +7 -2
  66. package/client/src/components/ui/AIResultModal.tsx +1 -1
  67. package/client/src/components/ui/CollapsibleSection.tsx +9 -5
  68. package/client/src/components/ui/CommandPalette.tsx +147 -0
  69. package/client/src/components/ui/CommandPaletteHost.tsx +189 -0
  70. package/client/src/components/ui/ComponentItem.tsx +13 -7
  71. package/client/src/components/ui/ComponentPalette.tsx +24 -13
  72. package/client/src/components/ui/ConsolePanel.tsx +19 -11
  73. package/client/src/components/ui/DropCap.tsx +28 -0
  74. package/client/src/components/ui/EditableNodeLabel.tsx +10 -2
  75. package/client/src/components/ui/InputNodesPanel.tsx +1 -1
  76. package/client/src/components/ui/Modal.tsx +38 -6
  77. package/client/src/components/ui/OutputDisplayPanel.tsx +1 -1
  78. package/client/src/components/ui/SettingsPanel.tsx +42 -13
  79. package/client/src/components/ui/StatusBar.tsx +108 -0
  80. package/client/src/components/ui/ThemeSwitcher.tsx +109 -0
  81. package/client/src/components/ui/TopToolbar.tsx +42 -25
  82. package/client/src/components/ui/WorkflowSidebar.tsx +32 -16
  83. package/client/src/components/ui/action-button.tsx +40 -15
  84. package/client/src/components/ui/button.tsx +24 -1
  85. package/client/src/components/ui/dropdown-menu.tsx +24 -2
  86. package/client/src/components/ui/input.tsx +19 -2
  87. package/client/src/components/ui/select.tsx +15 -0
  88. package/client/src/components/ui/textarea.tsx +15 -2
  89. package/client/src/contexts/AuthContext.tsx +148 -109
  90. package/client/src/contexts/ThemeContext.tsx +93 -17
  91. package/client/src/contexts/WebSocketContext.tsx +373 -206
  92. package/client/src/contexts/__tests__/AuthContext.test.tsx +221 -0
  93. package/client/src/hooks/__tests__/useDragVariable.test.ts +7 -1
  94. package/client/src/hooks/__tests__/useWorkflowOpsListener.test.ts +142 -0
  95. package/client/src/hooks/useAppTheme.ts +209 -7
  96. package/client/src/hooks/useAutoSkillEdges.ts +7 -2
  97. package/client/src/hooks/useCatalogueQuery.ts +67 -1
  98. package/client/src/hooks/useDragVariable.ts +1 -1
  99. package/client/src/hooks/useNodeAllowlist.ts +115 -8
  100. package/client/src/hooks/useOnboarding.ts +20 -8
  101. package/client/src/hooks/useParameterPanel.ts +2 -1
  102. package/client/src/hooks/useReactFlowNodes.ts +2 -1
  103. package/client/src/hooks/useSound.ts +185 -0
  104. package/client/src/hooks/useWorkflowManagement.ts +6 -8
  105. package/client/src/hooks/useWorkflowOpsListener.ts +90 -0
  106. package/client/src/index.css +65 -3
  107. package/client/src/lib/__tests__/connectionConfig.test.ts +91 -0
  108. package/client/src/lib/aiModelProviders.ts +8 -0
  109. package/client/src/lib/connectionConfig.ts +107 -0
  110. package/client/src/lib/queryPersist.ts +13 -5
  111. package/client/src/lib/sound.ts +393 -0
  112. package/client/src/main.tsx +20 -0
  113. package/client/src/store/useAppStore.ts +26 -0
  114. package/client/src/styles/canvasAnimations.ts +37 -36
  115. package/client/src/styles/theme.ts +36 -20
  116. package/client/src/test/setup.ts +1 -0
  117. package/client/src/themes/atomic.css +253 -0
  118. package/client/src/themes/base.css +373 -0
  119. package/client/src/themes/cyber.css +890 -0
  120. package/client/src/themes/dark.css +70 -0
  121. package/client/src/themes/edo.css +246 -0
  122. package/client/src/themes/greek.css +293 -0
  123. package/client/src/themes/light.css +78 -0
  124. package/client/src/themes/plague.css +253 -0
  125. package/client/src/themes/renaissance.css +727 -0
  126. package/client/src/themes/rot.css +249 -0
  127. package/client/src/themes/steampunk.css +272 -0
  128. package/client/src/themes/surveillance.css +289 -0
  129. package/client/src/themes/wasteland.css +250 -0
  130. package/client/src/types/INodeProperties.ts +5 -0
  131. package/client/src/types/NodeTypes.ts +11 -1
  132. package/client/src/types/__tests__/cloudEvents.test.ts +99 -0
  133. package/client/src/types/cloudEvents.ts +78 -0
  134. package/client/src/vite-env.d.ts +7 -0
  135. package/client/tsconfig.json +1 -1
  136. package/client/vite.config.js +62 -2
  137. package/install.ps1 +1 -1
  138. package/install.sh +1 -1
  139. package/machina/commands/build.py +51 -7
  140. package/machina/pyproject.toml +4 -0
  141. package/machina/supervisor.py +12 -2
  142. package/machina/tree.py +71 -21
  143. package/package.json +4 -4
  144. package/scripts/install.js +16 -1
  145. package/server/config/ai_cli_providers.json +54 -0
  146. package/server/config/credential_providers.json +109 -2
  147. package/server/config/llm_defaults.json +24 -0
  148. package/server/config/model_registry.json +338 -499
  149. package/server/config/node_allowlist.json +16 -1
  150. package/server/config/pricing.json +8 -0
  151. package/server/constants.py +38 -15
  152. package/server/core/container.py +2 -2
  153. package/server/core/credentials_database.py +35 -2
  154. package/server/core/logging.py +4 -3
  155. package/server/main.py +99 -13
  156. package/server/models/node_metadata.py +1 -0
  157. package/server/nodejs/package.json +8 -6
  158. package/server/nodejs/src/index.ts +22 -5
  159. package/server/nodes/README.md +31 -4
  160. package/server/nodes/agent/_inline.py +2 -0
  161. package/server/nodes/agent/_specialized.py +6 -3
  162. package/server/nodes/agent/ai_agent.py +13 -3
  163. package/server/nodes/agent/chat_agent.py +6 -3
  164. package/server/nodes/agent/claude_code_agent.py +287 -75
  165. package/server/nodes/agent/codex_agent.py +239 -0
  166. package/server/nodes/agent/deep_agent.py +3 -3
  167. package/server/nodes/agent/rlm_agent.py +3 -3
  168. package/server/nodes/android/__init__.py +31 -1
  169. package/server/nodes/android/_base.py +9 -5
  170. package/server/{services/android_service.py → nodes/android/_dispatcher.py} +2 -2
  171. package/server/nodes/android/_handlers.py +154 -0
  172. package/server/nodes/android/_option_loaders.py +44 -0
  173. package/server/nodes/android/_refresh.py +127 -0
  174. package/server/{services/android → nodes/android/_relay}/client.py +4 -4
  175. package/server/{routers/android.py → nodes/android/_router.py} +27 -8
  176. package/server/nodes/browser/browser.py +2 -2
  177. package/server/nodes/code/_base.py +6 -2
  178. package/server/nodes/code/_claude_code.py +134 -0
  179. package/server/nodes/document/embedding_generator.py +3 -3
  180. package/server/nodes/document/http_scraper.py +3 -3
  181. package/server/nodes/document/vector_store.py +5 -5
  182. package/server/nodes/email/__init__.py +11 -1
  183. package/server/nodes/email/_filters.py +21 -0
  184. package/server/{services/himalaya_service.py → nodes/email/_himalaya.py} +6 -10
  185. package/server/{services/email_service.py → nodes/email/_service.py} +9 -13
  186. package/server/nodes/email/email_read.py +1 -1
  187. package/server/nodes/email/email_receive.py +54 -5
  188. package/server/nodes/email/email_send.py +1 -1
  189. package/server/nodes/filesystem/shell.py +24 -1
  190. package/server/nodes/google/__init__.py +55 -1
  191. package/server/{services/handlers/google_auth.py → nodes/google/_auth_helper.py} +8 -5
  192. package/server/nodes/google/_base.py +2 -2
  193. package/server/nodes/google/_credentials.py +5 -5
  194. package/server/nodes/google/_filters.py +25 -0
  195. package/server/nodes/google/_handlers.py +57 -0
  196. package/server/{services/google_oauth.py → nodes/google/_oauth.py} +195 -162
  197. package/server/nodes/google/_option_loaders.py +107 -0
  198. package/server/nodes/google/_refresh.py +66 -0
  199. package/server/nodes/google/_router.py +131 -0
  200. package/server/nodes/google/gmail_receive.py +41 -4
  201. package/server/nodes/groups.py +1 -0
  202. package/server/nodes/location/_credentials.py +45 -1
  203. package/server/{services/maps.py → nodes/location/_service.py} +18 -3
  204. package/server/nodes/location/gmaps_create.py +4 -4
  205. package/server/nodes/location/gmaps_locations.py +4 -4
  206. package/server/nodes/location/gmaps_nearby_places.py +4 -4
  207. package/server/nodes/model/_base.py +8 -3
  208. package/server/nodes/model/_credentials.py +96 -8
  209. package/server/nodes/model/_local_validator.py +345 -0
  210. package/server/nodes/model/lmstudio_chat_model.py +23 -0
  211. package/server/nodes/model/ollama_chat_model.py +25 -0
  212. package/server/nodes/proxy/_usage.py +2 -2
  213. package/server/nodes/proxy/proxy_config.py +14 -14
  214. package/server/nodes/proxy/proxy_request.py +4 -4
  215. package/server/nodes/scraper/_credentials.py +29 -1
  216. package/server/nodes/scraper/apify_actor.py +9 -9
  217. package/server/nodes/scraper/crawlee_scraper.py +5 -5
  218. package/server/nodes/search/brave_search.py +4 -0
  219. package/server/nodes/search/perplexity_search.py +9 -0
  220. package/server/nodes/search/serper_search.py +3 -0
  221. package/server/nodes/skill/simple_memory.py +12 -0
  222. package/server/nodes/social/_base.py +2 -2
  223. package/server/nodes/stripe/__init__.py +46 -0
  224. package/server/nodes/stripe/_credentials.py +33 -0
  225. package/server/nodes/stripe/_handlers.py +270 -0
  226. package/server/nodes/stripe/_install.py +127 -0
  227. package/server/nodes/stripe/_source.py +174 -0
  228. package/server/nodes/stripe/stripe_action.py +81 -0
  229. package/server/nodes/stripe/stripe_receive.py +92 -0
  230. package/server/nodes/telegram/_credentials.py +52 -1
  231. package/server/nodes/telegram/_handlers.py +19 -18
  232. package/server/nodes/telegram/_service.py +134 -32
  233. package/server/nodes/telegram/telegram_send.py +5 -6
  234. package/server/nodes/text/file_handler.py +2 -2
  235. package/server/nodes/text/text_generator.py +2 -2
  236. package/server/nodes/tool/agent_builder.py +630 -0
  237. package/server/nodes/tool/task_manager.py +144 -2
  238. package/server/nodes/twitter/__init__.py +38 -1
  239. package/server/nodes/twitter/_base.py +7 -7
  240. package/server/nodes/twitter/_credentials.py +1 -1
  241. package/server/nodes/twitter/_filters.py +37 -0
  242. package/server/nodes/twitter/_handlers.py +77 -0
  243. package/server/nodes/twitter/_oauth.py +124 -0
  244. package/server/nodes/twitter/_refresh.py +78 -0
  245. package/server/nodes/twitter/_router.py +29 -0
  246. package/server/nodes/twitter/twitter_receive.py +4 -0
  247. package/server/nodes/visuals.json +64 -19
  248. package/server/nodes/whatsapp/__init__.py +45 -5
  249. package/server/nodes/whatsapp/_base.py +3 -3
  250. package/server/nodes/whatsapp/_filters.py +137 -0
  251. package/server/nodes/whatsapp/_handlers.py +167 -0
  252. package/server/nodes/whatsapp/_option_loaders.py +68 -0
  253. package/server/nodes/whatsapp/_refresh.py +62 -0
  254. package/server/nodes/whatsapp/_runtime.py +1 -1
  255. package/server/pyproject.toml +29 -7
  256. package/server/routers/schemas.py +2 -2
  257. package/server/routers/webhook.py +26 -9
  258. package/server/routers/websocket.py +149 -810
  259. package/server/services/ai.py +89 -8
  260. package/server/services/auth.py +220 -43
  261. package/server/services/claude_oauth.py +126 -100
  262. package/server/services/cli_agent/__init__.py +78 -0
  263. package/server/services/cli_agent/_handlers.py +237 -0
  264. package/server/services/cli_agent/config.py +112 -0
  265. package/server/services/cli_agent/factory.py +48 -0
  266. package/server/services/cli_agent/lockfile.py +141 -0
  267. package/server/services/cli_agent/mcp_server.py +482 -0
  268. package/server/services/cli_agent/protocol.py +173 -0
  269. package/server/services/cli_agent/providers/__init__.py +9 -0
  270. package/server/services/cli_agent/providers/anthropic_claude.py +419 -0
  271. package/server/services/cli_agent/providers/google_gemini.py +80 -0
  272. package/server/services/cli_agent/providers/openai_codex.py +310 -0
  273. package/server/services/cli_agent/service.py +607 -0
  274. package/server/services/cli_agent/session.py +618 -0
  275. package/server/services/cli_agent/types.py +227 -0
  276. package/server/services/cli_agent/workflow_tools.py +233 -0
  277. package/server/services/credential_registry.py +26 -1
  278. package/server/services/deployment/manager.py +26 -145
  279. package/server/services/deployment/poll_registry.py +59 -0
  280. package/server/services/event_waiter.py +76 -246
  281. package/server/services/events/__init__.py +54 -0
  282. package/server/services/events/cli.py +78 -0
  283. package/server/services/events/daemon.py +163 -0
  284. package/server/services/events/envelope.py +281 -0
  285. package/server/services/events/lifecycle.py +99 -0
  286. package/server/services/events/oauth_lifecycle.py +534 -0
  287. package/server/services/events/polling.py +60 -0
  288. package/server/services/events/push.py +36 -0
  289. package/server/services/events/source.py +63 -0
  290. package/server/services/events/triggers.py +118 -0
  291. package/server/services/events/verifiers/__init__.py +25 -0
  292. package/server/services/events/verifiers/base.py +28 -0
  293. package/server/services/events/verifiers/github.py +25 -0
  294. package/server/services/events/verifiers/hmac_basic.py +32 -0
  295. package/server/services/events/verifiers/standard_webhooks.py +47 -0
  296. package/server/services/events/verifiers/stripe.py +42 -0
  297. package/server/services/events/webhook.py +105 -0
  298. package/server/services/handlers/tools.py +28 -186
  299. package/server/services/llm/config.py +7 -0
  300. package/server/services/llm/factory.py +8 -2
  301. package/server/services/memory/__init__.py +52 -0
  302. package/server/services/memory/jsonl.py +80 -0
  303. package/server/services/memory/markdown.py +65 -0
  304. package/server/services/memory/state.py +112 -0
  305. package/server/services/memory/vector_store.py +40 -0
  306. package/server/services/model_registry.py +76 -0
  307. package/server/services/node_allowlist.py +71 -15
  308. package/server/services/node_executor.py +2 -2
  309. package/server/services/node_output_schemas.py +21 -10
  310. package/server/services/node_spec.py +1 -1
  311. package/server/services/oauth_utils.py +1 -1
  312. package/server/services/plugin/__init__.py +2 -0
  313. package/server/services/plugin/base.py +44 -2
  314. package/server/services/plugin/credential.py +288 -1
  315. package/server/services/plugin/deps.py +105 -0
  316. package/server/services/plugin/edge_walker.py +12 -4
  317. package/server/services/plugin/oauth.py +381 -0
  318. package/server/services/plugin/polling.py +247 -0
  319. package/server/services/plugin/registry.py +145 -0
  320. package/server/services/plugin/singleton.py +65 -0
  321. package/server/services/plugin/ws.py +81 -0
  322. package/server/services/process_service.py +31 -2
  323. package/server/services/status_broadcaster.py +155 -238
  324. package/server/services/temporal/workflow.py +7 -7
  325. package/server/services/workflow.py +21 -3
  326. package/server/services/ws_handler_registry.py +111 -28
  327. package/server/skills/GUIDE.md +16 -1
  328. package/server/skills/assistant/agent-builder-skill/SKILL.md +166 -0
  329. package/server/skills/payments_agent/stripe-skill/SKILL.md +306 -0
  330. package/server/tests/credentials/test_auth_service.py +16 -9
  331. package/server/tests/credentials/test_credential_broadcasts.py +219 -0
  332. package/server/tests/credentials/test_google_oauth.py +6 -6
  333. package/server/tests/credentials/test_oauth_utils.py +1 -1
  334. package/server/tests/credentials/test_twitter_oauth.py +2 -2
  335. package/server/tests/credentials/test_websocket_handlers.py +44 -20
  336. package/server/tests/llm/test_factory.py +1 -0
  337. package/server/tests/llm/test_wiring.py +5 -1
  338. package/server/tests/nodes/_compat.py +24 -24
  339. package/server/tests/nodes/test_agent_builder.py +439 -0
  340. package/server/tests/nodes/test_ai_tools.py +18 -14
  341. package/server/tests/nodes/test_code_fs_process.py +17 -8
  342. package/server/tests/nodes/test_email.py +10 -9
  343. package/server/tests/nodes/test_google_workspace.py +2 -2
  344. package/server/tests/nodes/test_specialized_agents.py +100 -53
  345. package/server/tests/nodes/test_stripe_plugin.py +293 -0
  346. package/server/tests/nodes/test_telegram_social.py +4 -4
  347. package/server/tests/nodes/test_twitter.py +1 -1
  348. package/server/tests/nodes/test_web_automation.py +2 -2
  349. package/server/tests/nodes/test_whatsapp.py +9 -9
  350. package/server/tests/services/cli_agent/__init__.py +0 -0
  351. package/server/tests/services/cli_agent/test_mcp_server.py +432 -0
  352. package/server/tests/services/cli_agent/test_providers.py +358 -0
  353. package/server/tests/services/cli_agent/test_service.py +298 -0
  354. package/server/tests/services/memory/__init__.py +0 -0
  355. package/server/tests/services/memory/test_jsonl.py +188 -0
  356. package/server/tests/services/test_events.py +333 -0
  357. package/server/tests/test_node_spec.py +56 -16
  358. package/server/tests/test_plugin_helpers.py +116 -0
  359. package/server/tests/test_plugin_self_containment.py +486 -0
  360. package/server/tests/test_status_broadcasts.py +425 -0
  361. package/workflows/{AI Assistant_workflow-1777421105154-0m4snkzjf.json → AI Assistant_workflow-1778504793388-ou1m1tz2x.json } +70 -266
  362. package/workflows/{AI Employee_workflow-1777720598005-u4cm858dv.json → AI Employee_example_workflow-1777720598005-u4cm858dv.json } +112 -112
  363. package/workflows/Claude Assistant_workflow-1778380124051-mdibn807c.json +709 -0
  364. package/client/dist/assets/ActionBar-vzPpSR77.js +0 -1
  365. package/client/dist/assets/ApiKeyInput-Ds7AKFe8.js +0 -1
  366. package/client/dist/assets/ApiKeyPanel-gfblELep.js +0 -1
  367. package/client/dist/assets/ApiUsageSection-BMNWTe2r.js +0 -1
  368. package/client/dist/assets/EmailPanel-B1Om64p5.js +0 -1
  369. package/client/dist/assets/OAuthPanel-CXyQYGBz.js +0 -1
  370. package/client/dist/assets/QrPairingPanel-BgNuI1we.js +0 -1
  371. package/client/dist/assets/RateLimitSection-YYK8sx1T.js +0 -1
  372. package/client/dist/assets/StatusCard-DuYA5hJR.js +0 -1
  373. package/client/dist/assets/index-D9tZfgvi.js +0 -363
  374. package/client/dist/assets/index-al7snTkG.css +0 -1
  375. package/client/src/components/credentials/providers.tsx +0 -177
  376. package/server/routers/google.py +0 -277
  377. package/server/routers/maps.py +0 -142
  378. package/server/routers/twitter.py +0 -365
  379. package/server/services/claude_code_service.py +0 -106
  380. package/server/services/memory.py +0 -159
  381. package/server/services/node_option_loaders/__init__.py +0 -77
  382. package/server/services/node_option_loaders/android_loaders.py +0 -55
  383. package/server/services/node_option_loaders/google_loaders.py +0 -97
  384. package/server/services/node_option_loaders/whatsapp_loaders.py +0 -69
  385. package/server/services/twitter_oauth.py +0 -411
  386. package/server/services/websocket_client.py +0 -29
  387. /package/server/{services/android → nodes/android/_relay}/__init__.py +0 -0
  388. /package/server/{services/android → nodes/android/_relay}/broadcaster.py +0 -0
  389. /package/server/{services/android → nodes/android/_relay}/manager.py +0 -0
  390. /package/server/{services/android → nodes/android/_relay}/protocol.py +0 -0
  391. /package/server/{services/browser_service.py → nodes/browser/_service.py} +0 -0
  392. /package/server/{services/whatsapp_service.py → nodes/whatsapp/_service.py} +0 -0
  393. /package/server/skills/{task_agent → assistant}/write-todos-skill/SKILL.md +0 -0
@@ -1,23 +1,33 @@
1
- // Unified theme system - consolidated design tokens and component styles
1
+ // Theme constants exported for the canvas + maps surface and the
2
+ // useAppTheme overlay map.
2
3
  //
3
- // PHASE-OUT NOTICE (Phase 3 of docs-internal/ui_migration_plan.md):
4
- // The single source of truth for color tokens is the :root / .dark
5
- // blocks in client/src/index.css. New components SHOULD prefer Tailwind
6
- // utility classes (e.g. `bg-dracula-green`, `text-foreground`,
7
- // `bg-dracula-orange/15`) over reading these TS exports.
4
+ // SCOPE (post-Wave-14):
5
+ // - `lightColors` / `darkColors` are the two BASE PACKS. The 10-way
6
+ // `THEME_OVERRIDES` map in `client/src/hooks/useAppTheme.ts` merges
7
+ // a per-theme overlay (primary, focus, action palette, edge stroke
8
+ // palette) on top of whichever base pack matches the active theme's
9
+ // dark / light family — see `theme_system.md` for the contract.
10
+ // - `dracula` / `solarized` raw palette constants stay for cases a
11
+ // Tailwind class can't express: SVG `fill=`, React Flow JS edge
12
+ // styles, prismjs token CSS strings, MapSelector / GoogleMaps SDK
13
+ // JS-side colors.
14
+ // - `spacing` / `fontSize` / `fontWeight` / `nodeSize` / `iconSize` /
15
+ // `buttonSize` / `layout` / `transitions` / `constants` stay too —
16
+ // these are not color tokens; they back the canvas-animation engine
17
+ // and a few non-color UI primitives.
8
18
  //
9
- // Migration cheatsheet:
10
- // theme.dracula.green -> className="text-dracula-green"
11
- // { backgroundColor: theme.dracula.X } -> className="bg-dracula-X"
12
- // { color: theme.colors.text } -> className="text-foreground"
13
- // { backgroundColor: theme.colors.X } -> className="bg-{token}"
14
- // theme.dracula.X + '25' -> className="bg-dracula-X/15"
19
+ // AUTHORITATIVE SOURCE for color tokens: the `:root[data-theme="..."]`
20
+ // blocks in `client/src/themes/<name>.css` (10 themes) plus the shadcn
21
+ // HSL-triplet bridge in `client/src/index.css`. New components consume
22
+ // those via Tailwind utilities (`bg-bg-app`, `text-fg-default`,
23
+ // `bg-action-run-soft`, `bg-node-agent-soft`) — never `theme.colors.X`
24
+ // directly except inside `useAppTheme` consumers (canvas + maps).
15
25
  //
16
- // The `dracula` and `solarized` constants stay for cases a Tailwind
17
- // class can't express (SVG `fill=`, react-flow JS edge styles, prismjs
18
- // token CSS strings). Spacing / fontSize / fontWeight / nodeSize /
19
- // iconSize / buttonSize / layout / transitions / constants stay too —
20
- // they are not color tokens.
26
+ // Migration cheatsheet for any remaining sites that read this file:
27
+ // theme.dracula.green -> className="text-dracula-green"
28
+ // { backgroundColor: theme.dracula.X } -> className="bg-dracula-X"
29
+ // { color: theme.colors.text } -> className="text-foreground" or "text-fg-default"
30
+ // { backgroundColor: theme.colors.X } -> className="bg-{token}" or "bg-bg-app"
21
31
 
22
32
  // ============================================================================
23
33
  // DRACULA COLOR PALETTE (vibrant action colors + dark theme backgrounds)
@@ -119,9 +129,12 @@ export const lightColors = {
119
129
  // Edge colors for light mode - MUCH darker for visibility
120
130
  edgeDefault: '#6b7280', // gray-500 - much more visible
121
131
  edgeSelected: '#7c3aed', // Violet
122
- edgeExecuting: '#7c3aed', // Violet
123
- edgeCompleted: '#059669', // Emerald-600
132
+ edgeExecuting: '#2563eb', // Blue-600 (executing state pop)
133
+ edgeCompleted: '#16a34a', // Green-600
124
134
  edgeError: '#dc2626', // Red-600
135
+ edgePending: '#6b7280', // gray-500 (same as default, dashed)
136
+ edgeMemoryActive: '#db2777', // Pink-600
137
+ edgeToolActive: '#ea580c', // Orange-600
125
138
  // Category colors for light mode (darker, more saturated)
126
139
  categoryWorkflow: '#ea580c', // Orange-600
127
140
  categoryTrigger: '#db2777', // Pink-600
@@ -190,9 +203,12 @@ export const darkColors = {
190
203
  // Edge colors for dark mode
191
204
  edgeDefault: dracula.cyan, // Cyan
192
205
  edgeSelected: dracula.purple, // Purple
193
- edgeExecuting: dracula.purple, // Purple
206
+ edgeExecuting: dracula.purple, // Purple (executing state pop)
194
207
  edgeCompleted: dracula.green, // Green
195
208
  edgeError: dracula.red, // Red
209
+ edgePending: dracula.cyan, // Cyan (same as default, dashed)
210
+ edgeMemoryActive: dracula.pink, // Pink
211
+ edgeToolActive: dracula.orange, // Orange
196
212
  // Category colors for dark mode (Dracula - vibrant)
197
213
  categoryWorkflow: dracula.orange,
198
214
  categoryTrigger: dracula.pink,
@@ -45,6 +45,7 @@ if (typeof globalThis.IntersectionObserver === 'undefined') {
45
45
  takeRecords() { return []; }
46
46
  root = null;
47
47
  rootMargin = '';
48
+ scrollMargin = '';
48
49
  thresholds = [];
49
50
  }
50
51
  // TS infers the assignment is fine now (target widened); kept only
@@ -0,0 +1,253 @@
1
+ /* ============================================================================
2
+ * themes/atomic.css — 1962 Eames optimism. Cream, atomic orange, turquoise,
3
+ * slate. Boomerangs and starbursts. Reads like a vintage NASA brochure.
4
+ * Ported from design_handoff_machinaos_themes/themes/atomic.css.
5
+ * ============================================================================ */
6
+
7
+ :root[data-theme="atomic"] {
8
+ --bg-app: #f0e6d2;
9
+ --bg-panel: #faf2dc;
10
+ --bg-canvas: #e8dcc0;
11
+ --bg-elevated: #ffffff;
12
+ --bg-input: #ffffff;
13
+ --bg-hover: rgba(232, 90, 38, 0.08);
14
+ --bg-active: rgba(232, 90, 38, 0.18);
15
+ --bg-overlay: rgba(40, 30, 20, 0.5);
16
+
17
+ --border-default: #c8b890;
18
+ --border-strong: #2a3a4a;
19
+ --border-focus: #e85a26;
20
+ --ornament-frame: none;
21
+
22
+ --fg-default: #2a3a4a;
23
+ --fg-muted: #5a6a7a;
24
+ --fg-faint: #8a9aaa;
25
+ --fg-on-accent: #faf2dc;
26
+ --fg-on-success: #faf2dc;
27
+ --fg-on-danger: #faf2dc;
28
+ --fg-on-warning: #2a3a4a;
29
+
30
+ --turquoise: #3a9aa0;
31
+ --mustard: #d8a838;
32
+ --slate: #2a3a4a;
33
+ --atomic-orange: #e85a26;
34
+
35
+ --font-display: 'Bevan', 'Alfa Slab One', serif;
36
+ --font-body: 'Lato', 'Helvetica Neue', sans-serif;
37
+ --font-mono: 'Space Mono', 'JetBrains Mono', monospace;
38
+ --type-scale-base: 14px;
39
+ --type-tracking-display: 0.06em;
40
+ --type-uppercase: uppercase;
41
+
42
+ --radius-sm: 0px;
43
+ --radius-md: 2px;
44
+ --radius-lg: 4px;
45
+ --radius-pill: 999px;
46
+
47
+ --dur-fast: 100ms;
48
+ --dur-default: 200ms;
49
+ --dur-slow: 380ms;
50
+ --ease-default: cubic-bezier(0.34, 1.6, 0.5, 1);
51
+ --ease-emphasis: cubic-bezier(0.34, 1.6, 0.5, 1);
52
+ --motion-style: bouncy;
53
+ --sound-pack: vibraphone;
54
+
55
+ /* Wave 30: turquoise pulse — matches the atomic accent + the
56
+ * boomerang selection halo. Reads against cardstock backgrounds. */
57
+ --node-pulse-color: hsl(var(--accent));
58
+
59
+ --cursor-default: auto;
60
+ --cursor-pointer: pointer;
61
+ --scrollbar-track: #f0e6d2;
62
+ --scrollbar-thumb: #2a3a4a;
63
+
64
+ /* Shadcn HSL bridge */
65
+ --background: 41 47% 88%;
66
+ --foreground: 213 27% 23%;
67
+ --card: 0 0% 100%;
68
+ --card-foreground: 213 27% 23%;
69
+ --popover: 0 0% 100%;
70
+ --popover-foreground: 213 27% 23%;
71
+
72
+ --primary: 14 81% 53%; /* atomic orange */
73
+ --primary-foreground: 41 80% 92%;
74
+ --secondary: 44 83% 92%;
75
+ --secondary-foreground: 213 27% 23%;
76
+ --muted: 44 83% 92%;
77
+ --muted-foreground: 211 14% 42%;
78
+ --accent: 184 46% 43%; /* turquoise */
79
+ --accent-foreground: 213 27% 23%;
80
+
81
+ --destructive: 14 81% 53%;
82
+ --destructive-foreground: 41 80% 92%;
83
+ --success: 120 21% 45%;
84
+ --warning: 41 67% 53%;
85
+ --info: 184 46% 43%;
86
+
87
+ --border: 213 27% 23%;
88
+ --input: 40 33% 67%;
89
+ --ring: 14 81% 53%;
90
+
91
+ /* Action role bridge.
92
+ * Wave 30.4: deepened text colors (raised saturation, dropped lightness)
93
+ * and bumped soft-fill opacity from 0.16 -> 0.40 so action buttons
94
+ * read clearly against ANY underlying panel surface — including the
95
+ * teal accent header where the previous low-saturation 16% tints
96
+ * disappeared into the background. */
97
+ --action-run: 130 60% 28%;
98
+ --action-run-soft: 130 60% 28% / 0.40;
99
+ --action-run-hover: 130 60% 28% / 0.55;
100
+ --action-run-border: 130 60% 28% / 0.75;
101
+
102
+ --action-stop: 14 90% 42%;
103
+ --action-stop-soft: 14 90% 42% / 0.40;
104
+ --action-stop-hover: 14 90% 42% / 0.55;
105
+ --action-stop-border: 14 90% 42% / 0.75;
106
+
107
+ --action-save: 14 90% 42%;
108
+ --action-save-soft: 14 90% 42% / 0.40;
109
+ --action-save-hover: 14 90% 42% / 0.55;
110
+ --action-save-border: 14 90% 42% / 0.75;
111
+
112
+ --action-config: 41 80% 38%;
113
+ --action-config-soft: 41 80% 38% / 0.40;
114
+ --action-config-hover: 41 80% 38% / 0.55;
115
+ --action-config-border: 41 80% 38% / 0.75;
116
+
117
+ --action-secret: 184 70% 30%;
118
+ --action-secret-soft: 184 70% 30% / 0.40;
119
+ --action-secret-hover: 184 70% 30% / 0.55;
120
+ --action-secret-border: 184 70% 30% / 0.75;
121
+
122
+ --action-tools: 184 70% 30%;
123
+ --action-tools-soft: 184 70% 30% / 0.40;
124
+ --action-tools-hover: 184 70% 30% / 0.55;
125
+ --action-tools-border: 184 70% 30% / 0.7;
126
+
127
+ --tint-soft: 14%;
128
+ --tint-border: 35%;
129
+
130
+ /* Canvas backplane — mid-century starburst on 160x160 tile */
131
+ --canvas-grid:
132
+ url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><g stroke='%232a3a4a' stroke-width='0.6' fill='none' opacity='0.18'><path d='M40 80 L120 80 M80 40 L80 120 M50 50 L110 110 M110 50 L50 110'/></g></svg>");
133
+ --canvas-grid-opacity: 1;
134
+ }
135
+
136
+ /* Body — clean cardstock; starburst lives on canvas in W2 wrapper */
137
+ :root[data-theme="atomic"] body {
138
+ background: var(--bg-app);
139
+ }
140
+
141
+ :root[data-theme="atomic"] ::selection {
142
+ background: rgba(232, 90, 38, 0.4);
143
+ color: #2a3a4a;
144
+ }
145
+
146
+ /* Atomic scrollbars — square corners (mid-century geometric) */
147
+ :root[data-theme="atomic"] ::-webkit-scrollbar {
148
+ width: 12px;
149
+ height: 12px;
150
+ }
151
+ :root[data-theme="atomic"] ::-webkit-scrollbar-track {
152
+ background: var(--scrollbar-track);
153
+ }
154
+ :root[data-theme="atomic"] ::-webkit-scrollbar-thumb {
155
+ background: var(--scrollbar-thumb);
156
+ border-radius: 0;
157
+ }
158
+ :root[data-theme="atomic"] ::-webkit-scrollbar-thumb:hover {
159
+ background: color-mix(in srgb, var(--scrollbar-thumb) 80%, white);
160
+ }
161
+
162
+ /* ── Per-component decorations (Wave 16 port from handoff) ─────────────── */
163
+
164
+ :root[data-theme="atomic"] .toolbar, :root[data-theme="atomic"] .sidebar,
165
+ :root[data-theme="atomic"] .palette, :root[data-theme="atomic"] .chat { background: var(--bg-panel); }
166
+ :root[data-theme="atomic"] .toolbar { border-bottom: 4px solid var(--slate); }
167
+ :root[data-theme="atomic"] .sidebar { border-right: 4px solid var(--slate); }
168
+ :root[data-theme="atomic"] .palette { border-left: 4px solid var(--slate); }
169
+ :root[data-theme="atomic"] .chat { border-top: 4px solid var(--slate); }
170
+
171
+ /* Canvas — atomic starburst pattern */
172
+ :root[data-theme="atomic"] .canvas {
173
+ background:
174
+ radial-gradient(circle at 12% 15%, hsl(var(--accent)) 0%, transparent 0.8%),
175
+ radial-gradient(circle at 88% 12%, var(--turquoise) 0%, transparent 0.6%),
176
+ radial-gradient(circle at 18% 88%, var(--mustard) 0%, transparent 0.7%),
177
+ radial-gradient(circle at 82% 90%, hsl(var(--accent)) 0%, transparent 0.5%),
178
+ radial-gradient(circle at 50% 50%, var(--turquoise) 0%, transparent 0.4%),
179
+ url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><g stroke='%232a3a4a' stroke-width='0.6' fill='none' opacity='0.18'><path d='M40 80 L120 80 M80 40 L80 120 M50 50 L110 110 M110 50 L50 110'/></g></svg>"),
180
+ var(--bg-canvas);
181
+ }
182
+
183
+ /* Typography */
184
+ :root[data-theme="atomic"] body { font-family: var(--font-body); color: var(--fg-default); }
185
+ :root[data-theme="atomic"] h1, :root[data-theme="atomic"] h2, :root[data-theme="atomic"] h3,
186
+ :root[data-theme="atomic"] .v-display {
187
+ font-family: var(--font-display); letter-spacing: 0.06em; text-transform: uppercase; color: var(--slate);
188
+ }
189
+
190
+ /* Square node — boomerang card */
191
+ :root[data-theme="atomic"] .sq-node-box {
192
+ background: var(--bg-elevated);
193
+ border: 3px solid var(--slate); border-radius: 14px 2px 14px 2px;
194
+ box-shadow: 4px 4px 0 var(--slate);
195
+ color: hsl(var(--accent));
196
+ }
197
+ :root[data-theme="atomic"] .sq-node.selected .sq-node-box {
198
+ background: hsl(var(--accent)); color: var(--bg-elevated);
199
+ box-shadow: 4px 4px 0 var(--slate), 0 0 0 4px hsl(var(--warning) / 0.25);
200
+ }
201
+ :root[data-theme="atomic"] .sq-node-pip { border: 1.5px solid var(--slate); }
202
+ :root[data-theme="atomic"] .sq-node-gear { background: var(--turquoise); color: var(--bg-elevated); border: 1px solid var(--slate); }
203
+ :root[data-theme="atomic"] .sq-node-handle { border: 2px solid var(--slate); background: var(--mustard); }
204
+ :root[data-theme="atomic"] .sq-node-handle.out { background: hsl(var(--accent)); }
205
+ :root[data-theme="atomic"] .sq-node-label { font-family: var(--font-display); letter-spacing: 0.08em; font-size: 11px; }
206
+
207
+ /* Actions — chunky stamps */
208
+ :root[data-theme="atomic"] .action-btn {
209
+ font-family: var(--font-display); letter-spacing: 0.08em; text-transform: uppercase;
210
+ border-radius: 0; border-width: 3px; box-shadow: 3px 3px 0 var(--slate);
211
+ }
212
+ :root[data-theme="atomic"] .action-btn:active { transform: translate(2px, 2px); box-shadow: 1px 1px 0 var(--slate); }
213
+ :root[data-theme="atomic"] .action-run { background: hsl(var(--success)); color: var(--bg-elevated); border-color: var(--slate); }
214
+ :root[data-theme="atomic"] .action-deploy { background: var(--turquoise); color: var(--bg-elevated); border-color: var(--slate); }
215
+ :root[data-theme="atomic"] .action-save { background: hsl(var(--accent)); color: var(--bg-elevated); border-color: var(--slate); }
216
+
217
+ /* Cards — boomerang corners */
218
+ :root[data-theme="atomic"] .wf-card,
219
+ :root[data-theme="atomic"] .cat,
220
+ :root[data-theme="atomic"] .comp,
221
+ :root[data-theme="atomic"] .settings-section,
222
+ :root[data-theme="atomic"] .cred-card {
223
+ background: var(--bg-elevated); border: 2px solid var(--slate); border-radius: 12px 2px 12px 2px;
224
+ box-shadow: 3px 3px 0 var(--slate);
225
+ }
226
+ :root[data-theme="atomic"] .wf-card.selected { background: hsl(var(--warning-soft)); border-color: hsl(var(--accent)); }
227
+ :root[data-theme="atomic"] .cat-tile { background: var(--mustard); border: 1.5px solid var(--slate); border-radius: 8px 0 8px 0; color: var(--slate); }
228
+ :root[data-theme="atomic"] .comp-ico { background: var(--turquoise); color: var(--bg-elevated); border-radius: 6px 0 6px 0; border: 1.5px solid var(--slate); }
229
+ :root[data-theme="atomic"] .cat-name, :root[data-theme="atomic"] .comp-name { font-family: var(--font-display); font-size: 12px; }
230
+
231
+ /* Chat */
232
+ :root[data-theme="atomic"] .chat-msg { border-radius: 14px 4px 14px 4px; border-width: 2px; }
233
+ :root[data-theme="atomic"] .chat-msg-user { background: var(--mustard); color: var(--slate); border-color: var(--slate); }
234
+ :root[data-theme="atomic"] .chat-msg-bot { background: var(--turquoise); color: var(--bg-elevated); border-color: var(--slate); }
235
+
236
+ /* Status bar */
237
+ :root[data-theme="atomic"] .statusbar {
238
+ background: var(--slate); color: var(--bg-elevated); border-top: 4px solid hsl(var(--accent));
239
+ font-family: var(--font-mono); letter-spacing: 0.06em;
240
+ }
241
+ :root[data-theme="atomic"] .statusbar .pip { background: hsl(var(--success)); }
242
+
243
+ /* Modal */
244
+ :root[data-theme="atomic"] .modal {
245
+ background: var(--bg-elevated); border: 4px solid var(--slate); border-radius: 24px 4px 24px 4px;
246
+ box-shadow: 8px 8px 0 var(--slate);
247
+ }
248
+ :root[data-theme="atomic"] .modal-head { border-bottom: 3px solid var(--slate); background: hsl(var(--accent)); color: var(--bg-elevated); }
249
+ :root[data-theme="atomic"] .modal-title { font-family: var(--font-display); color: var(--bg-elevated); letter-spacing: 0.10em; }
250
+
251
+ /* CMDK */
252
+ :root[data-theme="atomic"] .cmdk { background: var(--bg-elevated); border: 4px solid var(--slate); border-radius: 24px 4px 24px 4px; box-shadow: 8px 8px 0 var(--slate); }
253
+ :root[data-theme="atomic"] .cmdk-item.active { background: hsl(var(--accent)); color: var(--bg-elevated); }