How aicyraa/prompt-flow works
PromptFlow is a browser-based visual LLM workflow editor. Users create and connect Input, Prompt, Agent, Merge, and Output nodes, configure variables and models, then run the flow to stream results and inspect cost and per-step status. Saved flows, settings, history, reports, and editing tools support that workflow. The run store and execution engine form the central internal layer. Relationships below follow README workflow statements and SOURCE INDEX references; unsampled implementation details are not inferred.
Main entry points: runStore.ts Run Controller · graphStore.ts Graph State · LLMNode.tsx Agent Node · executeFlow.ts Flow Executor
Components 27
Canvas Editing
- Application Shell
src/App.tsx - Flow Canvas
src/components/Canvas.tsx - Input Node
src/components/nodes/InputNode.tsx - Prompt Node
src/components/nodes/PromptNode.tsx - Agent Node
src/components/nodes/LLMNode.tsx - Merge Node
src/components/nodes/MergeNode.tsx - Output Node
src/components/nodes/OutputNode.tsx
Run Execution
- Run Controller
src/store/runStore.ts - Run Preflight
src/engine/preflight.ts - Flow Executor
src/engine/executeFlow.ts - Cost Estimator
src/engine/estimate.ts - Retry Handler
src/engine/retry.ts
Models and Providers
- Provider Adapters
src/lib/providers - Streaming Client
src/lib/openrouter/client.ts - Model Picker
src/components/models/ModelPicker.tsx
Browser State
- Graph State
src/store/graphStore.ts - Saved Flows
src/store/flowLibraryStore.ts - User Settings
src/store/settingsStore.ts - Model Catalog
src/store/modelStore.ts - Run History
src/store/historyStore.ts
Workflow Tools
- Flow Import Export
src/components/topbar/useFlowFile.ts - Flow Variables
src/lib/variables.ts - Run Reports
src/lib/report.ts - Command Palette
src/components/palette/useCommands.ts
Other components
- User
- LLM Providers
- Browser Storage
Connections 37
- User → Application Shell: opens app
src/App.tsx - Application Shell → Flow Canvas: renders
src/App.tsx - User → Flow Canvas: edits flow
README.md - Flow Canvas → Graph State: updates graph
- Input Node → Prompt Node: provides text
README.md - Prompt Node → Agent Node: supplies prompt
README.md - Agent Node → Merge Node: feeds branches
README.md - Merge Node → Prompt Node: feeds text
README.md - Agent Node → Output Node: produces result
README.md - Agent Node → Graph State: reads node data
src/components/nodes/LLMNode.tsx - Agent Node → Model Picker: opens picker
src/components/nodes/LLMNode.tsx - Application Shell → Saved Flows: starts autosave
src/App.tsx - Saved Flows → Graph State: tracks canvas
src/store/flowLibraryStore.ts - Graph State → Browser Storage: persists state
src/store/graphStore.ts - Saved Flows → Browser Storage: persists flows
src/store/flowLibraryStore.ts - User Settings → Browser Storage: persists preferences
README.md - User → Run Controller: starts run
README.md - Run Controller → User Settings: reads credentials
src/store/runStore.ts - Run Controller → Model Catalog: reads catalog
src/store/runStore.ts - Run Controller → Graph State: reads flow
src/store/runStore.ts - Run Controller → Run Preflight: checks flow
src/store/runStore.ts - Run Controller → Flow Executor: executes flow
src/store/runStore.ts - Run Controller → Cost Estimator: estimates cost
src/store/runStore.ts - Flow Executor → Provider Adapters: generates text
src/engine/executeFlow.ts - Flow Executor → Retry Handler: retries failures
src/engine/executeFlow.ts - Provider Adapters → Streaming Client: uses client
src/lib/providers/client.ts - Streaming Client → LLM Providers: sends requests
src/lib/openrouter/client.ts - Run Controller → Run History: records runs
src/store/runStore.ts - Model Picker → Model Catalog: browses models
- Model Catalog → Provider Adapters: loads provider catalog
src/store/modelStore.ts - Flow Import Export → Graph State: imports flow
src/components/topbar/useFlowFile.ts - Flow Import Export → Browser Storage: downloads export
src/components/topbar/useFlowFile.ts - Flow Executor → Flow Variables: resolves placeholders
src/engine/executeFlow.ts - User → Command Palette: invokes actions
README.md - Command Palette → Run Controller: starts or stops run
src/components/palette/useCommands.ts - User → Run Reports: downloads report
README.md - Run Reports → Run History: formats history run
src/lib/report.ts