-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Summary
Establish a clear src/ code/package structure for the editor to enforce separation of concerns (core vs UI vs integrations) and provide documentation that helps contributors quickly understand where code should live.
Goals
- Define a maintainable module layout that scales as MVP features are added.
- Keep React Flow–specific UI concerns isolated from workflow parsing/graph logic.
- Provide contributor-friendly documentation on “where things go” and why.
Non-Goals
- Implement full feature logic inside these packages (this is structure + placeholders).
- Decide final publishing strategy for each sub-package (can evolve later).
- Perfect architecture forever — this is a baseline that can be iterated.
Description
Create a src/ folder layout (and placeholder modules) with the following intent:
-
src/core/
Domain concepts and pure logic (e.g., workflow model types, validation result types, shared utilities). No React, no React Flow. -
src/sdk/
Integration layer around the Typescript SDK. -
src/store/
State management and selectors (UI-agnostic where possible). Contains state shape, actions, reducers/slices, and state helpers. -
src/graph/
Graph representation and transformations (e.g. nodes/edges model) -
src/auto-layout/
Layout algorithms + adapters (ELK integration later). Must not depend on React components. -
src/diagram/
Diagram rendering layer (React components + React Flow specifics: node components, edge components, handles, viewport, etc.). Converts graph → React Flow nodes/edges.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status