Status
- Fas 1 (AI-koppling) – klar. MCP-server (rpa/mcp_server.py),
NL-till-flöde (rpa/assist.py + "AI-assistent"-panelen i webui:t), och gemensamt stegschema (rpa/schema.py – auktoritativ källa som webui, MCP och assist alla använder). Se README-avsnittet "AI".
- Fas 2 (n8n-likt UI) – klar.
webui/frontend/(Vite + React +React Flow), byggd till
webui/static/(incheckad). Node-canvas, stegfält renderas från/api/step-schema. Hybrid: flödet lagras oförändrat som nästlad{steps}-lista;webui/frontend/src/lib/graph.tsär sömmen mot en framtida äkta-DAG (loop/if redigeras just nu inuti sin nod, inte som egna canvas-noder; fri kabeldragning saknas medvetet).layout-nyckeln i flödet = frivilliga nodpositioner. - Fas 3 (desktop-automation, Windows) – klar. rpa/desktop.py
(pywinauto UIA + pyautogui bild/koordinat, lat import), 12
desktop_*-steg i rpa/schema.py +flow_engine._DESKTOP_STEPS/_execute_desktop_step.run_flowhåller en latDesktopSessionvid sidan avpage; startade appar städas enligt close-mode. rpa/desktop_inspect.py för att hitta selectors. Syns i MCP/assist/UI via schemat. Se README "Desktop-automation".
Kör-parametrar / indata-variabler + värde-set– klart. Flödet kandeklarera
inputs(namn/etikett/default/options/beskrivning) och sparainput_sets(presets).RunDialog/InputsEditor-komponenter; ⚙-menyn har "Kör-parametrar / indata"; "Kör flöde" öppnar dialogen automatiskt om flödet har inputs/set.flow_engine.run_flow(..., initial_vars=...)seedar variabellagret. Stöds av MCP (run_flow(input_set=...)) och exporterade script (--set/--var).
Möjliga uppföljningar
– klar. Flöden utan webbläsarsteg startar ingenskip_browserwebbläsare (auto-detektering via
flow_engine._flow_needs_browser, eller tvingat via inställningenskip_browser).waitanvänder nutime.sleepi stället förpage.wait_for_timeout.Bild-verktyg för desktop– klart.rpa/desktop_capture.py(tkinter-overlay + PIL ImageGrab) + 📷 Fånga-knapp i
desktop_*_image-stegen (endpoints/api/desktop-images*,ImageField-komponenten).- **
UI: ⚙-meny, fönster-inspektör, palett med drag-and-drop, block-bibliotek– klart.** Headern bantad;
Menu/Palette/InspectDialog-komponenter;rpa/blocks.py(+blocks/-exempel,/api/blocks*, MCPlist_blocks/get_block);rpa/desktop_inspect.pyrefaktorerad tilllist_windows()/inspect_window()(+/api/desktop/windows|inspect); dra steg till canvasen eller in i loop/if-kropp (stepops.appendToContainer). Startkontroll i run_webui.py– klar. Vägrar starta om porten redananvänds (visar PID),
--forcedödar den gamla instansen och tar över,--port N.- Äkta grafmotor / fri kabeldragning i UI:t – sömmen finns i
webui/frontend/src/lib/graph.ts(se kommentaren där). - Fler desktop-steg vid behov – t.ex.
desktop_drag,desktop_menu_select,OCR-läsning. Lägg i
rpa/schema.py+flow_engine._execute_desktop_step. - Ta AI-funktionerna i bruk – ANTHROPIC_API_KEY är inte satt; assist +
MCP-servern är obeprövade mot en riktig modell.
- CI – kör
pytest+vitest+npm run buildvid push.
Ursprungliga TODO-punkter 2 (kör custom python mellan steg) och 3 (headless) är redan lösta av run_script-steget respektive headless-inställningen.