Commit Graph
221 Commits
Author SHA1 Message Date
haikdc 2f0ff10d3f [Haik]: refactor: restructure Dashboard module boundaries — move ElementSelectionContext (split into ElementSelectionProvider, SelectedElement, useElementSelection), SelectionOverlay, domSelectorHelpers, and useDomElementSelector from global components/ into Dashboard/_shared/element_selection and Dashboard/hooks/useDomElementSelector; relocate types.ts and formatRelativeTime.ts into Dashboard/_shared; update imports in Dashboard.tsx, DashboardCanvas, CanvasControls, DashboardHeader, ViewEditor, useIframeElementSelector, dashboardClipboard, and all Dashboard hooks 2026-04-18 14:15:02 -07:00
haikdc 31e3d66436 [Haik]: refactor: restructure frontend component hierarchy — move CommandPicker, RichPromptEditor, and related hooks/types out of global components/ into Modes/ModeFormDialog/components/ with nested subdirectories; relocate ToolsSelector into ModeFormDialog/components/; extract getToolGroupIcon to pages/_shared/ for cross-page reuse; update imports in Modes.tsx and useCommands.tsx 2026-04-18 13:43:48 -07:00
haikdc 765cb733be [Haik]: renamed OpenSwarmComposer to ChatInput 2026-04-18 13:26:21 -07:00
haikdc b8ca2535b9 [Haik]: Remove legacy ChatInput component tree (ChatInput, AttachmentChips, ImageAttachments, useChatSubmit) and replace DashboardToolbar usage with OpenSwarmComposer via a new ToolbarComposer wrapper backed by useStandaloneComposerRuntime and AssistantRuntimeProvider; relocate ModelModeSelector and ContextRing into OpenSwarmComposer/components; move TabLocalState from shared Dashboard types to BrowserCard directory; add embedded prop to OpenSwarmComposer for borderless toolbar rendering 2026-04-18 13:23:57 -07:00
haikdc 5566eaa69d [Haik]: Move useCanvasControls and AppCard to proper directories 2026-04-18 13:04:58 -07:00
haikdc 4467a8b0c1 [Haik]: refactor: move AgentCard, BrowserCard, and DashboardViewCard from flat Dashboard/ locations into DashboardCanvas/cards/ subtree with AgentCard/, AppCard/, BrowserCard/, and shared/ subdirectories; rename DashboardViewCard to AppCard and Views/ViewCard to AppThumbnail; split useCanvasControls into useCanvasControls/ directory with utils/helpers.ts and utils/useCanvasInputs.ts; split useDashboardThumbnail into useDashboardThumbnail/ directory extracting captureDashboardThumbnail.ts; move useDashboardSelection into hooks/; relocate cardLayoutConstants and useOverlayScrollPassthrough into cards/shared/; update all import paths in Dashboard.tsx, DashboardCanvas.tsx, and Views.tsx 2026-04-18 12:59:55 -07:00
haikdc 0ee6fe7ccb [Haik]: refactor: restructure Dashboard page from flat file layout into nested component directories — move DashboardCanvas, DashboardHeader, DashboardHeaderParts, DashboardToolbar, ToolbarButtons, HistoryPanel, ViewPickerPanel, CanvasControls, and DashboardViewCard into DashboardCanvas/components/ subtree with dedicated folders for DashboardToolbar and DashboardHeader; consolidate shared types (CardType, CanvasActions, TetherInfo) from useDashboardSelection, useCanvasControls, and useTetherPaths into types/types.ts; extract duplicated formatRelativeTime into utils/formatRelativeTime.ts; update all import paths across hooks, shared modules, and DashboardCard 2026-04-18 12:39:05 -07:00
haikdc 6a9dd59eec [hAIk]: refactor AgentCard and BrowserCard into subdirectory modules, plumb dashboard_id from launch through Agent/AgentSnapshot, add on_done auto-persist callback, fix get_all_sessions to use GET query params, atomic PydanticStore writes, graceful backend shutdown in local.sh, and add mode config JSONs 2026-04-18 12:05:50 -07:00
haikdc 21a723a45b [Haik]: Pt.1 of Abstracting AgentChat folder for downward access 2026-04-18 10:41:15 -07:00
haikdc f98c56ab7e [hAIk]: Holy fucking shit the agent finally works in the frontend: align frontend/backend naming: rename AgentSession.id→session_id across agentsTypes, agentsReducers, agentsExtraReducers, AgentCard, BrowserAgentOverlay, DashboardCanvas, useAgentChat, useToolbarActions, useDashboardKeyboard, MessageActions, and backend-bridge agents/dashboards; rename CardPosition.zOrder→z_order in dashboardLayoutTypes, dashboardLayoutReducers, dashboardLayoutSlice, and DashboardCanvas; fix circular import between dashboards.py and agents.py by deferring imports; add NINE_ROUTER_MODEL_MAP for sonnet/opus/haiku alias resolution in launch_agent; make build_agent_toolkit async and pass load_dashboard/save_dashboard into browser delegation toolkit; fix PromptMsgDict to use TypedDict, fix zip type hint bug, and fix browser agent model reference (parent.model→parent.config.model); add p_on_task_done callback with traceback logging on Agent, capture stderr and full tracebacks in run_agent_loop; add unwrages helper in agentsExtraReducers to normalize nested message payloads; pipe frontend console-message events to Electron stdout; enable ws:true on Vite proxy; add diagnostic console.logs across WS handlers, session lifecycle, and dashboard updates 2026-04-18 10:26:51 -07:00
haikdc 563af6ff80 [Haik]: abstracted OpenSwarmComposer 2026-04-18 08:34:52 -07:00
haikdc 5439420fa9 [hAIk]: fix: create modelsSlice and register it in store to resolve ModelModeSelector TypeError on dashboard agent launch. Reuses SUBSCRIPTIONS_STATUS thunk instead of duplicating the fetch. 2026-04-18 08:28:54 -07:00
haikdc dde5c6de5c [Haik]: uncommented the mcpRegistrySlice to prevent crashes on actions page - still isnt implemented in backend tho 2026-04-18 08:14:57 -07:00
haikdc 93e1af8714 [hAIk]: migrate frontend from webpack to vite: replace webpack.config.js with vite.config.ts, move index.html to project root with module script entry, swap build/dev npm scripts to vite commands, remove webpack/swc/css-loader devDependencies in favor of vite and @vitejs/plugin-react-swc, and drop browserslist config 2026-04-18 08:10:34 -07:00
haikdc e91fe7f035 [hAIk]: optimize webpack config for faster dev builds: reorder resolve extensions from [.js, .jsx, .ts, .tsx] to [.tsx, .ts, .js] so TypeScript files resolve first, drop unused .jsx entry, and enable persistent filesystem caching in development mode to speed up rebuilds 2026-04-18 08:03:52 -07:00
haikdc 18a46d5d85 [hAIk]: Replace babel-loader with swc-loader and reduce shiki language bundles from 235 to 56 for faster builds. Swapped babel-loader for swc-loader (Rust-based transpiler), removed @babel/core, @babel/preset-env, @babel/preset-react, @babel/preset-typescript, and babel-loader (-106 packages). Changed code-block.tsx imports from bare shiki to shiki/bundle/web + shiki/engine/javascript. Added webpack resolve aliases to redirect @pierre/diffs nested shiki bundle-full.mjs to bundle-web.mjs and replaced its langs.mjs with a no-op shim. Switched devtool from source-map to eval-cheap-module-source-map. Results: build time ~31s to ~20s, cacheable modules 30.3 MiB to 22.6 MiB, vendor chunks 379+ to ~199. 2026-04-18 07:58:38 -07:00
haikdc d6d6bc2271 [hAIk]: added in debug statements instead of printing/logging 2026-04-18 07:43:31 -07:00
haikdc ca2ea81f82 [hAIk]: refactor backend settings and tools routes to use explicit endpoint names (/get_settings, /update_settings, /get_builtin_permissions, /update_builtin_permissions) with matching frontend updates; simplify base_routes.ts to relative /api path; add new appsSlice Redux slice and register in store; remove unused GET_HISTORY reducer; rename structlint to lint across CI workflow, local.sh, and publish.sh; strip ANSI escape codes from NineRouter forwarded output; add swarm-debug as backend dependency 2026-04-18 07:21:41 -07:00
haikdc ad8add82fd [hAIk]: replace HTTP file upload with native Electron showOpenDialog: remove uploadAndAttachFiles fetch-based upload in useChatSubmit and useComposerAttachments, add browseAndAttachFiles using window.openswarm.showOpenDialog with ContextPath-based attachment, declare showOpenDialog in electron.d.ts, remove hidden file input refs and upload spinner from ChatInput/ModelModeSelector/OpenSwarmComposer. Rename WebSocket from /ws/dashboard to /ws on backend and rename dashboardWs to agentsWs across WebSocketManager, useDashboardInit, and browserCommandHandler. Export AGENTS_WS_API from agents bridge. Disable modelsSlice (delete file, comment out store registration and fetchModels dispatches) and stub mcpRegistrySlice thunks with not-implemented errors, move clearDetail to local action creator in useToolsState 2026-04-18 06:52:50 -07:00
haikdc 0d3c515616 [hAIk]: migrate dashboard layout thunks to backend-bridge: replace legacy fetchLayout with GET_DASHBOARD and saveLayout with UPDATE_DASHBOARD, move browser-card tab normalization into slice extraReducers, extend Dashboard interface with layout type, remove dashboardLayoutThunks.ts and unused LayoutPayload/SaveLayoutPayload types. Also removed UsageStats and DiffViewer 2026-04-18 06:19:24 -07:00
haikdc 09ea76b12d [hAIk]: Replace custom DirectoryBrowser with native Electron file dialog; move ContextPath type to agentsTypes, remove BrowseResult, update all imports. Also removed unused Analytics page 2026-04-18 06:02:13 -07:00
haikdc e720f97444 [hAIk]: rewire toolsSlice to use tools.ts backend-bridge thunks, remove inline fetch logic, update useToolsState/useModes/useCommands/useCommandPickerItems/OpenSwarmMentionAdapter imports, replace raw OAuth disconnect fetch with OAUTH_DISCONNECT thunk 2026-04-18 05:43:20 -07:00
haikdc 216eb7018a [hAIk]: integrate subscriptions backend-bridge into frontend: replace all raw fetch calls to /subscriptions/* endpoints with dispatch(THUNK).unwrap() using SUBSCRIPTIONS_STATUS, SUBSCRIPTIONS_CONNECT, SUBSCRIPTIONS_POLL, and SUBSCRIPTIONS_DISCONNECT from the bridge layer — no Redux slice needed since state stays local 2026-04-18 05:33:16 -07:00
haikdc 09f4a22209 [hAIk]: integrate skills.ts bridge: add typed interfaces, rewrite skillsSlice and skillRegistrySlice to import thunks from bridge, replace raw fetch calls in useSkillBuilderSession with SEED/READ_SKILL_WORKSPACE, update type imports in UI components 2026-04-18 05:29:02 -07:00
haikdc 2b8e502bcb [hAIk]: integrate skills.ts bridge: add typed interfaces, rewrite skillsSlice and skillRegistrySlice to import thunks from bridge, replace raw fetch calls in useSkillBuilderSession with SEED/READ_SKILL_WORKSPACE, update type imports in UI components 2026-04-18 05:28:47 -07:00
haikdc a7f0ea520f [hAIk]: integrate settings backend-bridge into frontend: move AppSettings and CustomProvider interfaces into settings bridge with proper return types, switch Main.tsx to GET_SETTINGS, useSettings.ts to UPDATE_SETTINGS, GeneralTab.tsx to RESET_SYSTEM_PROMPT — all importing directly from the bridge 2026-04-18 05:15:16 -07:00
haikdc 825b59b875 [hAIk]: remove outputsSlice; migrate all 19 consumer files from state.outputs to state.apps; rewrite useViewWorkspace to use bridge thunks; remove all auto-run support 2026-04-18 05:10:05 -07:00
haikdc a0312deaf5 [hAIk]: integrate modes backend-bridge into frontend: add Mode type to bridge with proper typing, rewrite modesSlice to import thunks from backend-bridge (matching dashboards pattern), update useModes hook to use LIST_MODES/CREATE_MODE/UPDATE_MODE/RESET_MODE/DELETE_MODE, update useAgentChat/ModelModeSelector/useSettings to use LIST_MODES, remove legacy @/shared/config dependency from modes 2026-04-18 04:35:33 -07:00
haikdc 650c42077a [hAIk]: refactor: wire dashboardsSlice through backend-bridge, remove inline fetch calls from slice and update all 6 consumer files 2026-04-18 04:30:33 -07:00
haikdc 5c47a12181 [Haik]: migrate frontend thunks from agentsSlice to backend-bridge 2026-04-18 04:20:01 -07:00
haikdc c329c0f837 [Haik]: migrate launchAndSendFirstMessage and searchHistory from agentsSlice to backend-bridge thunks (META_LAUNCH_AND_SEND, GET_HISTORY); wire up new thunks in useAgentChat, useToolbarActions, useDashboardToolbar, agentsExtraReducers, and dashboardLayoutSlice; normalize backend response key from SESSIONS to sessions; remove dashboardId param from history search calls; replace any types with AgentSession, CardPosition, and AgentConfig; remove stale settingsApplied useEffect; split image payload into separate data and media_type arrays for SEND_MESSAGE 2026-04-18 04:04:44 -07:00
haikdc 1ba5f11591 [Haik]: migrate useAgentChat, agentsExtraReducer and useToolbarActions to backend-bridge thunks 2026-04-18 03:28:30 -07:00
haikdc 86a58258ac [Haik]: refactor agents extra reducers to use backend-bridge thunks and fix return types for update_system_prompt, delete_session, stop_agent, switch_branch, and close_session 2026-04-18 03:05:44 -07:00
haikdc bf313d42c2 [Haik]: fixed backend-bridge imports 2026-04-18 02:48:21 -07:00
haikdc 33cf18554c [Haik]: renamed shared/backend to shared/backend-bridge 2026-04-18 02:47:29 -07:00
haikdc 8ee84dac1e [hAIk]: fix agents.ts bridge to match backend response shapes and payload signatures 2026-04-18 02:40:44 -07:00
haikdc 6e3cb16aca [hAIk]: fix: collapse multi-param thunk payloads into single objects 2026-04-18 02:37:30 -07:00
haikdc e4f400962f [hAIk]: (add frontend bridge files for all backend sub-apps) (fix: collapse multi-param async thunk payloads into single objects) 2026-04-18 02:35:08 -07:00
haikdc 2a898f3f08 [Haik]: refactor: overhaul agents API contract and frontend backend layer — rename all backend agent routes from RESTful path-param style (e.g. /sessions/{id}/message) to flat action-named endpoints (e.g. /send_message), replace Pydantic BaseModel request classes (LaunchBody, MessageBody, etc.) with inline FastAPI Body() parameters, delete the scattered frontend shared/routes/ directory (11 files) and agentsThunks.ts, and replace them with a co-located shared/backend/apps/ structure where each backend app has its routes, fetch functions, and async thunks in a single file 2026-04-18 02:23:44 -07:00
haikdc f691ca1ff1 [Haik]: added lintignores 2026-04-18 00:20:44 -07:00
haikdc 4866e644e2 [hAIk]: add .lintignore sentinel files for per-folder lint suppression — drop a .lintignore in any directory to skip all checks, or .lintignore-{rule} to skip a specific one (max-file-lines, max-folder-items, no-nested-imports, vulture, eslint, knip, endpoints, classes). Adds collect_lintignores() and is_lintignored() to checks/init.py, wires filtering into lint.py and all sub-linter runners, and updates watch mode to detect .lintignore changes 2026-04-18 00:13:43 -07:00
haikdc c306a472d5 [Haik]: added unified shared/routes in the frontend, gonna start porting shit over to the new backend setup now 2026-04-17 23:59:44 -07:00
haikdc dbfa1a3c7d [Haik]: Fixed all pydantic instance attribute violations 2026-04-17 23:34:15 -07:00
haikdc e5ba3412f2 [Haik]: classes now extend basemodel and private vars properly dont start with an underscore 2026-04-05 21:17:03 -07:00
haikdc 2dec5b6283 [Haik]: created helper sub fulder and fixed imports 2026-04-05 21:13:18 -07:00
haikdc dd79b10e3c [Haik]: ckpt, made classes for NineRouterClient and NineRouterProcess, now gonna abstract the NineRouter dir a bit, then clean up the type specing/checking in all the classes 2026-04-05 21:10:07 -07:00
haikdc e835604a09 [Haik]: ckpt, initial version of NineRouter singelton 2026-04-05 20:58:44 -07:00
haikdc 28820c91eb [Haik]: ckpt, abstracted helpers within NineRouterProcess 2026-04-05 20:47:18 -07:00
haikdc aa250ce203 [Haik]: minor cleanup focussed around naming (especially the names starting with an underscore as this just nerfs all type checking/specing) also some logger removes, pulling out constants, etc. Now gonna pull out some helpers then maybe its singelton time again? 2026-04-05 20:33:40 -07:00
haikdc 961941bd38 [Haik]: ckpt, ai slop subscriptions subapp done, now time for janitor haik to come in 2026-04-05 20:19:27 -07:00