From 4184a60706b96f9756fd22e6ca9fbd5b07f9001e Mon Sep 17 00:00:00 2001 From: dtoro Date: Thu, 12 Mar 2026 11:21:10 +0100 Subject: [PATCH] lint: change folder names --- frontend/src/app/canvas/CanvasPage.tsx | 18 +++++++------- .../src/app/canvas/ContextualZoomNode.tsx | 6 ++--- .../{base => graph}/AnimatedEdge.tsx | 4 ++-- .../components/{base => graph}/BaseNode.tsx | 2 +- .../{base => graph}/FlowKeyboardShortcuts.tsx | 10 ++++---- .../NodeFooterEdgeIndicators.tsx | 4 ++-- .../{base => graph}/NodeHandles.tsx | 2 +- .../{base => graph}/NodeHeaderTitle.tsx | 6 ++--- .../{base => graph}/NodeHelpPopover.tsx | 2 +- .../{base => graph}/NodeMenubar.tsx | 2 +- .../{base => graph}/NodeStatusIndicator.tsx | 0 .../src/components/nodes/agent/AgentNode.tsx | 18 +++++++------- .../src/components/nodes/agent/descriptor.tsx | 6 ++--- .../components/nodes/config/ConfigNode.tsx | 16 ++++++------- .../components/nodes/config/descriptor.tsx | 6 ++--- .../src/components/nodes/data/DataNode.tsx | 16 ++++++------- .../src/components/nodes/data/descriptor.tsx | 6 ++--- .../nodes/function/FunctionNode.tsx | 16 ++++++------- .../components/nodes/function/descriptor.tsx | 6 ++--- .../components/nodes/render/RenderingNode.tsx | 24 +++++++++---------- .../components/nodes/render/descriptor.tsx | 6 ++--- .../nodes/variable/VariableNode.tsx | 12 +++++----- .../components/nodes/variable/descriptor.tsx | 6 ++--- .../src/hooks/useGraphStateWithHistory.ts | 2 +- frontend/src/lib/{ => graph}/abstractNode.ts | 2 +- frontend/src/lib/{ => graph}/flowContext.tsx | 2 +- frontend/src/lib/{ => graph}/flowUtils.ts | 1 - frontend/src/lib/{ => graph}/graphPath.ts | 0 frontend/src/lib/{ => graph}/nodeHelp.tsx | 0 frontend/src/lib/{ => graph}/nodeLifecycle.ts | 0 frontend/src/lib/{ => graph}/nodeRegistry.ts | 4 ++-- .../src/lib/{ => graph}/nodeTypeBuilder.ts | 2 +- frontend/src/lib/{ => graph}/nodeTypes.ts | 0 .../lib/{ => graph}/registerBuiltinNodes.tsx | 0 frontend/src/main.tsx | 2 +- 35 files changed, 104 insertions(+), 105 deletions(-) rename frontend/src/components/{base => graph}/AnimatedEdge.tsx (96%) rename frontend/src/components/{base => graph}/BaseNode.tsx (99%) rename frontend/src/components/{base => graph}/FlowKeyboardShortcuts.tsx (95%) rename frontend/src/components/{base => graph}/NodeFooterEdgeIndicators.tsx (96%) rename frontend/src/components/{base => graph}/NodeHandles.tsx (97%) rename frontend/src/components/{base => graph}/NodeHeaderTitle.tsx (93%) rename frontend/src/components/{base => graph}/NodeHelpPopover.tsx (95%) rename frontend/src/components/{base => graph}/NodeMenubar.tsx (99%) rename frontend/src/components/{base => graph}/NodeStatusIndicator.tsx (100%) rename frontend/src/lib/{ => graph}/abstractNode.ts (99%) rename frontend/src/lib/{ => graph}/flowContext.tsx (98%) rename frontend/src/lib/{ => graph}/flowUtils.ts (99%) rename frontend/src/lib/{ => graph}/graphPath.ts (100%) rename frontend/src/lib/{ => graph}/nodeHelp.tsx (100%) rename frontend/src/lib/{ => graph}/nodeLifecycle.ts (100%) rename frontend/src/lib/{ => graph}/nodeRegistry.ts (97%) rename frontend/src/lib/{ => graph}/nodeTypeBuilder.ts (98%) rename frontend/src/lib/{ => graph}/nodeTypes.ts (100%) rename frontend/src/lib/{ => graph}/registerBuiltinNodes.tsx (100%) diff --git a/frontend/src/app/canvas/CanvasPage.tsx b/frontend/src/app/canvas/CanvasPage.tsx index c07896a..965fca4 100644 --- a/frontend/src/app/canvas/CanvasPage.tsx +++ b/frontend/src/app/canvas/CanvasPage.tsx @@ -22,8 +22,8 @@ import { type NodeChange, type EdgeChange, } from '@xyflow/react' -import { AnimatedEdge } from '@/components/base/AnimatedEdge' -import FlowContext from '@/lib/flowContext' +import { AnimatedEdge } from '@/components/graph/AnimatedEdge' +import FlowContext from '@/lib/graph/flowContext' import { useTheme } from '@/lib/themeContext' import { usePlatform } from '@/app/kosmos/KosmosContext' import { useGraphStateWithHistory } from '@/hooks/useGraphStateWithHistory' @@ -41,7 +41,7 @@ import { } from '@/components/ui/context-menu' import { CanvasMenubar } from '@/app/canvas/CanvasMenubar' import { createContextualNode } from '@/app/canvas/ContextualZoomNode' -import { FlowKeyboardShortcuts } from '@/components/base/FlowKeyboardShortcuts' +import { FlowKeyboardShortcuts } from '@/components/graph/FlowKeyboardShortcuts' import { Empty, EmptyContent, @@ -57,7 +57,7 @@ import { DialogTitle, } from '@/components/ui/dialog' import { ClipboardPaste, FolderOpen, FileStack, CircleDotDashed } from 'lucide-react' -import { DEFAULT_NODE_STYLE, getDefaultDataForType, getNextNodeId } from '@/lib/flowUtils' +import { DEFAULT_NODE_STYLE, getDefaultDataForType, getNextNodeId } from '@/lib/graph/flowUtils' import { getRegisteredNodeTypes, getRegisteredNodeTypesGroupedByClassification, @@ -65,9 +65,9 @@ import { getDefaultStyle, getNodeType, isConnectionAllowed, -} from '@/lib/nodeRegistry' -import { getPathNodeIds, getPausedSegmentNodeIds } from '@/lib/graphPath' -import type { AppNode, AppEdge } from '@/lib/nodeTypes' +} from '@/lib/graph/nodeRegistry' +import { getPathNodeIds, getPausedSegmentNodeIds } from '@/lib/graph/graphPath' +import type { AppNode, AppEdge } from '@/lib/graph/nodeTypes' import { toast } from 'sonner' import { loadGraphFromStorage, @@ -526,7 +526,7 @@ export function CanvasPage({ projectId }: CanvasPageProps) { 'title' in newNode.data && String(n.type) === 'config' ) { - ;(newNode.data as Record).title = `${newId}` + ; (newNode.data as Record).title = `${newId}` } toAdd.push(newNode) } @@ -544,7 +544,7 @@ export function CanvasPage({ projectId }: CanvasPageProps) { position: node.position, style: node.style, } - navigator.clipboard?.writeText(JSON.stringify(copy)).catch(() => {}) + navigator.clipboard?.writeText(JSON.stringify(copy)).catch(() => { }) }, [selectedNodes]) const handlePaste = useCallback(() => { diff --git a/frontend/src/app/canvas/ContextualZoomNode.tsx b/frontend/src/app/canvas/ContextualZoomNode.tsx index 558b2ee..3b1822e 100644 --- a/frontend/src/app/canvas/ContextualZoomNode.tsx +++ b/frontend/src/app/canvas/ContextualZoomNode.tsx @@ -6,8 +6,8 @@ import React from 'react' import { useViewport } from '@xyflow/react' -import { getNodeType, getDefaultStyle } from '@/lib/nodeRegistry' -import { InputHandle, OutputHandle } from '@/components/base/NodeHandles' +import { getNodeType, getDefaultStyle } from '@/lib/graph/nodeRegistry' +import { InputHandle, OutputHandle } from '@/components/graph/NodeHandles' import { cn } from '@/lib/utils' const MIN_ZOOM = 0.1 @@ -48,7 +48,7 @@ function CompactNodeView({ id, type, selected, width, height }: NodeProps) { 'flex flex-col rounded-md border bg-card text-card-foreground transition-[border-color,box-shadow] duration-200', 'border-input hover:ring-1', selected && - 'border-primary/50 shadow-[0_0_0_2px_hsl(var(--primary)_/_0.15)] dark:border-primary/35 dark:shadow-[0_0_0_2px_hsl(var(--primary)_/_0.1)]' + 'border-primary/50 shadow-[0_0_0_2px_hsl(var(--primary)_/_0.15)] dark:border-primary/35 dark:shadow-[0_0_0_2px_hsl(var(--primary)_/_0.1)]' )} style={{ width: w, diff --git a/frontend/src/components/base/AnimatedEdge.tsx b/frontend/src/components/graph/AnimatedEdge.tsx similarity index 96% rename from frontend/src/components/base/AnimatedEdge.tsx rename to frontend/src/components/graph/AnimatedEdge.tsx index 0117ee3..40a69fa 100644 --- a/frontend/src/components/base/AnimatedEdge.tsx +++ b/frontend/src/components/graph/AnimatedEdge.tsx @@ -4,9 +4,9 @@ import { getBezierPath, type EdgeProps, } from '@xyflow/react' -import FlowContext from '../../lib/flowContext' +import FlowContext from '../../lib/graph/flowContext' import { getConnectionStatus, CONNECTION_STATUS_CLASS } from '../../lib/connectionStatus' -import { getConnectionLabelForTarget } from '../../lib/nodeRegistry' +import { getConnectionLabelForTarget } from '../../lib/graph/nodeRegistry' const EDGE_STROKE_WIDTH = 2 const DOT_MARKER_R = 1.5 diff --git a/frontend/src/components/base/BaseNode.tsx b/frontend/src/components/graph/BaseNode.tsx similarity index 99% rename from frontend/src/components/base/BaseNode.tsx rename to frontend/src/components/graph/BaseNode.tsx index 602a1d7..e0f562a 100644 --- a/frontend/src/components/base/BaseNode.tsx +++ b/frontend/src/components/graph/BaseNode.tsx @@ -1,7 +1,7 @@ import type { ComponentProps, ReactNode } from "react"; import { NodeResizer } from "@xyflow/react"; -import { useConnectionPathRole } from "@/lib/flowContext"; +import { useConnectionPathRole } from "@/lib/graph/flowContext"; import { cn } from "@/lib/utils"; /** Default min size for resizable nodes (used by NodeResizer). */ diff --git a/frontend/src/components/base/FlowKeyboardShortcuts.tsx b/frontend/src/components/graph/FlowKeyboardShortcuts.tsx similarity index 95% rename from frontend/src/components/base/FlowKeyboardShortcuts.tsx rename to frontend/src/components/graph/FlowKeyboardShortcuts.tsx index 920f358..31b9075 100644 --- a/frontend/src/components/base/FlowKeyboardShortcuts.tsx +++ b/frontend/src/components/graph/FlowKeyboardShortcuts.tsx @@ -1,9 +1,9 @@ import React, { useCallback, useContext, useEffect } from 'react' import { useReactFlow } from '@xyflow/react' import type { Node } from '@xyflow/react' -import FlowContext from '@/lib/flowContext' -import { getNextNodeId, getDefaultDataForType } from '@/lib/flowUtils' -import { getDefaultStyle, getRegisteredNodeTypeIds } from '@/lib/nodeRegistry' +import FlowContext from '@/lib/graph/flowContext' +import { getNextNodeId, getDefaultDataForType } from '@/lib/graph/flowUtils' +import { getDefaultStyle, getRegisteredNodeTypeIds } from '@/lib/graph/nodeRegistry' const DUPLICATE_OFFSET = { x: 30, y: 30 } @@ -98,7 +98,7 @@ export function FlowKeyboardShortcuts() { position: node.position, style: node.style, } - navigator.clipboard?.writeText(JSON.stringify(copy)).catch(() => {}) + navigator.clipboard?.writeText(JSON.stringify(copy)).catch(() => { }) ev.preventDefault() } return @@ -132,7 +132,7 @@ export function FlowKeyboardShortcuts() { 'title' in newNode.data && String(n.type) === 'config' ) { - ;(newNode.data as Record).title = `${newId}` + ; (newNode.data as Record).title = `${newId}` } toAdd.push(newNode) } diff --git a/frontend/src/components/base/NodeFooterEdgeIndicators.tsx b/frontend/src/components/graph/NodeFooterEdgeIndicators.tsx similarity index 96% rename from frontend/src/components/base/NodeFooterEdgeIndicators.tsx rename to frontend/src/components/graph/NodeFooterEdgeIndicators.tsx index 8ed2cd6..29e3acd 100644 --- a/frontend/src/components/base/NodeFooterEdgeIndicators.tsx +++ b/frontend/src/components/graph/NodeFooterEdgeIndicators.tsx @@ -1,8 +1,8 @@ import React, { useContext, useMemo } from 'react' -import FlowContext from '../../lib/flowContext' +import FlowContext from '../../lib/graph/flowContext' import { ArrowDownLeft, ArrowUpRight } from 'lucide-react' import { NodeHelpPopover } from './NodeHelpPopover' -import { getNodeType, getNodeClassificationLabel } from '../../lib/nodeRegistry' +import { getNodeType, getNodeClassificationLabel } from '../../lib/graph/nodeRegistry' type Props = { nodeId: string diff --git a/frontend/src/components/base/NodeHandles.tsx b/frontend/src/components/graph/NodeHandles.tsx similarity index 97% rename from frontend/src/components/base/NodeHandles.tsx rename to frontend/src/components/graph/NodeHandles.tsx index e493113..0840f09 100644 --- a/frontend/src/components/base/NodeHandles.tsx +++ b/frontend/src/components/graph/NodeHandles.tsx @@ -1,7 +1,7 @@ import React, { useContext } from 'react' import { Handle, Position } from '@xyflow/react' import { ArrowDownLeft, ArrowUpRight } from 'lucide-react' -import FlowContext from '@/lib/flowContext' +import FlowContext from '@/lib/graph/flowContext' import { cn } from '@/lib/utils' type NodeHandleProps = { diff --git a/frontend/src/components/base/NodeHeaderTitle.tsx b/frontend/src/components/graph/NodeHeaderTitle.tsx similarity index 93% rename from frontend/src/components/base/NodeHeaderTitle.tsx rename to frontend/src/components/graph/NodeHeaderTitle.tsx index 5bdf195..b5b30a5 100644 --- a/frontend/src/components/base/NodeHeaderTitle.tsx +++ b/frontend/src/components/graph/NodeHeaderTitle.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useContext, useEffect, useRef, useState } from 'react' -import FlowContext from '../../lib/flowContext' -import type { AppNode } from '../../lib/nodeTypes' -import { replaceNodeIdInGraph } from '../../lib/flowUtils' +import FlowContext from '../../lib/graph/flowContext' +import type { AppNode } from '../../lib/graph/nodeTypes' +import { replaceNodeIdInGraph } from '../../lib/graph/flowUtils' type Props = { nodeId: string diff --git a/frontend/src/components/base/NodeHelpPopover.tsx b/frontend/src/components/graph/NodeHelpPopover.tsx similarity index 95% rename from frontend/src/components/base/NodeHelpPopover.tsx rename to frontend/src/components/graph/NodeHelpPopover.tsx index a4381fc..6cfe196 100644 --- a/frontend/src/components/base/NodeHelpPopover.tsx +++ b/frontend/src/components/graph/NodeHelpPopover.tsx @@ -1,7 +1,7 @@ import React from 'react' import { HelpCircle } from 'lucide-react' import { Popover, PopoverContent, PopoverTrigger } from '../ui/popover' -import { getNodeHelp } from '../../lib/nodeRegistry' +import { getNodeHelp } from '../../lib/graph/nodeRegistry' import { cn } from '../../lib/utils' type Props = { diff --git a/frontend/src/components/base/NodeMenubar.tsx b/frontend/src/components/graph/NodeMenubar.tsx similarity index 99% rename from frontend/src/components/base/NodeMenubar.tsx rename to frontend/src/components/graph/NodeMenubar.tsx index 7aa00cd..86a801f 100644 --- a/frontend/src/components/base/NodeMenubar.tsx +++ b/frontend/src/components/graph/NodeMenubar.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useContext } from 'react' -import FlowContext from '../../lib/flowContext' +import FlowContext from '../../lib/graph/flowContext' import { Menubar, MenubarContent, diff --git a/frontend/src/components/base/NodeStatusIndicator.tsx b/frontend/src/components/graph/NodeStatusIndicator.tsx similarity index 100% rename from frontend/src/components/base/NodeStatusIndicator.tsx rename to frontend/src/components/graph/NodeStatusIndicator.tsx diff --git a/frontend/src/components/nodes/agent/AgentNode.tsx b/frontend/src/components/nodes/agent/AgentNode.tsx index 5abb6f9..3488a78 100644 --- a/frontend/src/components/nodes/agent/AgentNode.tsx +++ b/frontend/src/components/nodes/agent/AgentNode.tsx @@ -3,21 +3,21 @@ import { AbstractNodeProps, createAbstractNodeComponent, useAbstractNode, -} from '@/lib/abstractNode' +} from '@/lib/graph/abstractNode' import { getConfigContent } from '@/lib/configTypes' import { BaseNode, BaseNodeContent, BaseNodeFooter, BaseNodeHeaderRow, -} from '@/components/base/BaseNode' -import { NodeMenubar } from '@/components/base/NodeMenubar' -import { NodeFooterEdgeIndicators } from '@/components/base/NodeFooterEdgeIndicators' -import { NodeHeaderTitle } from '@/components/base/NodeHeaderTitle' -import { InputHandle, OutputHandle } from '@/components/base/NodeHandles' -import FlowContext from '@/lib/flowContext' -import { useSyncConnectionStatus } from '@/lib/nodeLifecycle' -import { getNodeType } from '@/lib/nodeRegistry' +} from '@/components/graph/BaseNode' +import { NodeMenubar } from '@/components/graph/NodeMenubar' +import { NodeFooterEdgeIndicators } from '@/components/graph/NodeFooterEdgeIndicators' +import { NodeHeaderTitle } from '@/components/graph/NodeHeaderTitle' +import { InputHandle, OutputHandle } from '@/components/graph/NodeHandles' +import FlowContext from '@/lib/graph/flowContext' +import { useSyncConnectionStatus } from '@/lib/graph/nodeLifecycle' +import { getNodeType } from '@/lib/graph/nodeRegistry' import { Button } from '@/components/ui/button' import { usePlatform } from '@/app/kosmos/KosmosContext' import { Bot, Play, Loader2 } from 'lucide-react' diff --git a/frontend/src/components/nodes/agent/descriptor.tsx b/frontend/src/components/nodes/agent/descriptor.tsx index c3a595c..4aa5bd7 100644 --- a/frontend/src/components/nodes/agent/descriptor.tsx +++ b/frontend/src/components/nodes/agent/descriptor.tsx @@ -1,8 +1,8 @@ import React from 'react' import { Bot } from 'lucide-react' -import { createNodeTypeBuilder } from '@/lib/nodeTypeBuilder' -import { NODE_HELP } from '@/lib/nodeHelp' -import type { NodeTypeDescriptor } from '@/lib/nodeRegistry' +import { createNodeTypeBuilder } from '@/lib/graph/nodeTypeBuilder' +import { NODE_HELP } from '@/lib/graph/nodeHelp' +import type { NodeTypeDescriptor } from '@/lib/graph/nodeRegistry' import AgentNode from './AgentNode' import { agentRenderingLogic } from './renderingLogic' diff --git a/frontend/src/components/nodes/config/ConfigNode.tsx b/frontend/src/components/nodes/config/ConfigNode.tsx index 01493f3..3bc8881 100644 --- a/frontend/src/components/nodes/config/ConfigNode.tsx +++ b/frontend/src/components/nodes/config/ConfigNode.tsx @@ -8,7 +8,7 @@ import { createAbstractNodeComponent, useAbstractNode, type FlowNode, -} from '@/lib/abstractNode' +} from '@/lib/graph/abstractNode' import { useResizeHeight } from '@/hooks/useResizeHeight' import { nunjucksCompletionSource } from '@/lib/nunjucksAutocomplete' import { plantumlLanguage } from '@/lib/plantumlLanguage' @@ -26,7 +26,7 @@ import { BaseNodeContent, BaseNodeFooter, BaseNodeHeaderRow, -} from '@/components/base/BaseNode' +} from '@/components/graph/BaseNode' import { Code2, Database, ScrollText, Variable } from 'lucide-react' import { MenubarItem, @@ -38,12 +38,12 @@ import { } from '@/components/ui/menubar' import { Kbd } from '@/components/ui/kbd' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' -import { InputHandle, OutputHandle } from '@/components/base/NodeHandles' -import { NodeFooterEdgeIndicators } from '@/components/base/NodeFooterEdgeIndicators' -import { NodeHeaderTitle } from '@/components/base/NodeHeaderTitle' -import { NodeMenubar } from '@/components/base/NodeMenubar' -import FlowContext from '@/lib/flowContext' -import { getNodeType } from '@/lib/nodeRegistry' +import { InputHandle, OutputHandle } from '@/components/graph/NodeHandles' +import { NodeFooterEdgeIndicators } from '@/components/graph/NodeFooterEdgeIndicators' +import { NodeHeaderTitle } from '@/components/graph/NodeHeaderTitle' +import { NodeMenubar } from '@/components/graph/NodeMenubar' +import FlowContext from '@/lib/graph/flowContext' +import { getNodeType } from '@/lib/graph/nodeRegistry' export type ConfigNodeData = { configType?: ConfigTypeId; content?: string; title?: string; /** @deprecated use content */ plantuml?: string } diff --git a/frontend/src/components/nodes/config/descriptor.tsx b/frontend/src/components/nodes/config/descriptor.tsx index 9be5a0a..efaf043 100644 --- a/frontend/src/components/nodes/config/descriptor.tsx +++ b/frontend/src/components/nodes/config/descriptor.tsx @@ -1,9 +1,9 @@ import React from 'react' import { ScrollText } from 'lucide-react' -import { createNodeTypeBuilder } from '@/lib/nodeTypeBuilder' -import { NODE_HELP } from '@/lib/nodeHelp' +import { createNodeTypeBuilder } from '@/lib/graph/nodeTypeBuilder' +import { NODE_HELP } from '@/lib/graph/nodeHelp' import { getResolvedContentForConfig } from './renderingLogic' -import type { NodeTypeDescriptor } from '@/lib/nodeRegistry' +import type { NodeTypeDescriptor } from '@/lib/graph/nodeRegistry' import ConfigNode from './ConfigNode' const ICON_CLASS = 'mr-2 h-4 w-4' diff --git a/frontend/src/components/nodes/data/DataNode.tsx b/frontend/src/components/nodes/data/DataNode.tsx index eb44d22..e58f5e4 100644 --- a/frontend/src/components/nodes/data/DataNode.tsx +++ b/frontend/src/components/nodes/data/DataNode.tsx @@ -3,19 +3,19 @@ import { AbstractNodeProps, createAbstractNodeComponent, useAbstractNode, -} from '@/lib/abstractNode' +} from '@/lib/graph/abstractNode' import { BaseNode, BaseNodeContent, BaseNodeFooter, BaseNodeHeaderRow, -} from '@/components/base/BaseNode' -import { NodeFooterEdgeIndicators } from '@/components/base/NodeFooterEdgeIndicators' -import { NodeHeaderTitle } from '@/components/base/NodeHeaderTitle' -import { NodeMenubar } from '@/components/base/NodeMenubar' -import FlowContext from '@/lib/flowContext' -import { getNodeType } from '@/lib/nodeRegistry' -import { OutputHandle } from '@/components/base/NodeHandles' +} from '@/components/graph/BaseNode' +import { NodeFooterEdgeIndicators } from '@/components/graph/NodeFooterEdgeIndicators' +import { NodeHeaderTitle } from '@/components/graph/NodeHeaderTitle' +import { NodeMenubar } from '@/components/graph/NodeMenubar' +import FlowContext from '@/lib/graph/flowContext' +import { getNodeType } from '@/lib/graph/nodeRegistry' +import { OutputHandle } from '@/components/graph/NodeHandles' import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table' import { parseCsvToRows } from '@/lib/csvParse' import { ArrowDown, ArrowUp, ArrowUpDown, Database, FileUp } from 'lucide-react' diff --git a/frontend/src/components/nodes/data/descriptor.tsx b/frontend/src/components/nodes/data/descriptor.tsx index 5a26c25..12e0d4e 100644 --- a/frontend/src/components/nodes/data/descriptor.tsx +++ b/frontend/src/components/nodes/data/descriptor.tsx @@ -1,8 +1,8 @@ import React from 'react' import { Database } from 'lucide-react' -import { createNodeTypeBuilder } from '@/lib/nodeTypeBuilder' -import { NODE_HELP } from '@/lib/nodeHelp' -import type { NodeTypeDescriptor } from '@/lib/nodeRegistry' +import { createNodeTypeBuilder } from '@/lib/graph/nodeTypeBuilder' +import { NODE_HELP } from '@/lib/graph/nodeHelp' +import type { NodeTypeDescriptor } from '@/lib/graph/nodeRegistry' import DataNode from './DataNode' const ICON_CLASS = 'mr-2 h-4 w-4' diff --git a/frontend/src/components/nodes/function/FunctionNode.tsx b/frontend/src/components/nodes/function/FunctionNode.tsx index 5f0ec58..874f6d9 100644 --- a/frontend/src/components/nodes/function/FunctionNode.tsx +++ b/frontend/src/components/nodes/function/FunctionNode.tsx @@ -6,7 +6,7 @@ import { createAbstractNodeComponent, useAbstractNode, type FlowNode, -} from '@/lib/abstractNode' +} from '@/lib/graph/abstractNode' import { useResizeHeight } from '@/hooks/useResizeHeight' import { useTheme } from '@/lib/themeContext' import { @@ -14,13 +14,13 @@ import { BaseNodeContent, BaseNodeFooter, BaseNodeHeaderRow, -} from '@/components/base/BaseNode' -import { InputHandle, OutputHandle } from '@/components/base/NodeHandles' -import { NodeFooterEdgeIndicators } from '@/components/base/NodeFooterEdgeIndicators' -import { NodeHeaderTitle } from '@/components/base/NodeHeaderTitle' -import { NodeMenubar } from '@/components/base/NodeMenubar' -import FlowContext from '@/lib/flowContext' -import { getNodeType } from '@/lib/nodeRegistry' +} from '@/components/graph/BaseNode' +import { InputHandle, OutputHandle } from '@/components/graph/NodeHandles' +import { NodeFooterEdgeIndicators } from '@/components/graph/NodeFooterEdgeIndicators' +import { NodeHeaderTitle } from '@/components/graph/NodeHeaderTitle' +import { NodeMenubar } from '@/components/graph/NodeMenubar' +import FlowContext from '@/lib/graph/flowContext' +import { getNodeType } from '@/lib/graph/nodeRegistry' import { MenubarItem, MenubarShortcut } from '@/components/ui/menubar' import { Kbd } from '@/components/ui/kbd' import { Code2, Variable } from 'lucide-react' diff --git a/frontend/src/components/nodes/function/descriptor.tsx b/frontend/src/components/nodes/function/descriptor.tsx index 5315d49..6bac6cb 100644 --- a/frontend/src/components/nodes/function/descriptor.tsx +++ b/frontend/src/components/nodes/function/descriptor.tsx @@ -1,8 +1,8 @@ import React from 'react' import { Code2 } from 'lucide-react' -import { createNodeTypeBuilder } from '@/lib/nodeTypeBuilder' -import { NODE_HELP } from '@/lib/nodeHelp' -import type { NodeTypeDescriptor } from '@/lib/nodeRegistry' +import { createNodeTypeBuilder } from '@/lib/graph/nodeTypeBuilder' +import { NODE_HELP } from '@/lib/graph/nodeHelp' +import type { NodeTypeDescriptor } from '@/lib/graph/nodeRegistry' import FunctionNode from './FunctionNode' const ICON_CLASS = 'mr-2 h-4 w-4' diff --git a/frontend/src/components/nodes/render/RenderingNode.tsx b/frontend/src/components/nodes/render/RenderingNode.tsx index 14a6f95..de7143c 100644 --- a/frontend/src/components/nodes/render/RenderingNode.tsx +++ b/frontend/src/components/nodes/render/RenderingNode.tsx @@ -7,10 +7,10 @@ import { AbstractNodeProps, createAbstractNodeComponent, useAbstractNode, -} from '@/lib/abstractNode' +} from '@/lib/graph/abstractNode' import { getConfigContent, getConfigType, getConfigTypeId } from '@/lib/configTypes' import { getSourceRenderingLogic } from '@/lib/sourceRenderingLogic' -import { useSyncConnectionStatus } from '@/lib/nodeLifecycle' +import { useSyncConnectionStatus } from '@/lib/graph/nodeLifecycle' import { useResizeHeight } from '@/hooks/useResizeHeight' import { plantumlLanguage } from '@/lib/plantumlLanguage' import { Empty, EmptyHeader, EmptyTitle, EmptyDescription, EmptyContent, EmptyMedia } from '@/components/ui/empty' @@ -19,17 +19,17 @@ import { BaseNodeContent, BaseNodeFooter, BaseNodeHeaderRow, -} from '@/components/base/BaseNode' -import { getDefaultDataForType, getNextNodeId } from '@/lib/flowUtils' -import FlowContext from '@/lib/flowContext' -import { getDefaultStyle, getNodeType } from '@/lib/nodeRegistry' -import { NodeFooterEdgeIndicators } from '@/components/base/NodeFooterEdgeIndicators' -import { NodeHeaderTitle } from '@/components/base/NodeHeaderTitle' -import { NodeMenubar } from '@/components/base/NodeMenubar' -import { NodeStatusIndicator } from '@/components/base/NodeStatusIndicator' +} from '@/components/graph/BaseNode' +import { getDefaultDataForType, getNextNodeId } from '@/lib/graph/flowUtils' +import FlowContext from '@/lib/graph/flowContext' +import { getDefaultStyle, getNodeType } from '@/lib/graph/nodeRegistry' +import { NodeFooterEdgeIndicators } from '@/components/graph/NodeFooterEdgeIndicators' +import { NodeHeaderTitle } from '@/components/graph/NodeHeaderTitle' +import { NodeMenubar } from '@/components/graph/NodeMenubar' +import { NodeStatusIndicator } from '@/components/graph/NodeStatusIndicator' import { MenubarItem, MenubarSeparator, MenubarSub, MenubarSubContent, MenubarSubTrigger } from '@/components/ui/menubar' import { Sparkles, ZoomIn, ZoomOut, RotateCcw, RotateCw, Copy, Play, ChevronDown } from 'lucide-react' -import { InputHandle } from '@/components/base/NodeHandles' +import { InputHandle } from '@/components/graph/NodeHandles' import { TransformWrapper, TransformComponent } from 'react-zoom-pan-pinch' import { Input } from '@/components/ui/input' import { Button } from '@/components/ui/button' @@ -715,7 +715,7 @@ function RenderingNodeComponent({ id, data, width, height, selected }: Props) { onClick={() => { const text = rawDisplayContent if (text) { - navigator.clipboard?.writeText(text).then(() => toast.success('Copied to clipboard')).catch(() => {}) + navigator.clipboard?.writeText(text).then(() => toast.success('Copied to clipboard')).catch(() => { }) } }} disabled={!rawDisplayContent} diff --git a/frontend/src/components/nodes/render/descriptor.tsx b/frontend/src/components/nodes/render/descriptor.tsx index 1fe19de..e5d5202 100644 --- a/frontend/src/components/nodes/render/descriptor.tsx +++ b/frontend/src/components/nodes/render/descriptor.tsx @@ -1,8 +1,8 @@ import React from 'react' import { Sparkles } from 'lucide-react' -import { createNodeTypeBuilder } from '@/lib/nodeTypeBuilder' -import { NODE_HELP } from '@/lib/nodeHelp' -import type { NodeTypeDescriptor } from '@/lib/nodeRegistry' +import { createNodeTypeBuilder } from '@/lib/graph/nodeTypeBuilder' +import { NODE_HELP } from '@/lib/graph/nodeHelp' +import type { NodeTypeDescriptor } from '@/lib/graph/nodeRegistry' import RenderingNode from './RenderingNode' const ICON_CLASS = 'mr-2 h-4 w-4' diff --git a/frontend/src/components/nodes/variable/VariableNode.tsx b/frontend/src/components/nodes/variable/VariableNode.tsx index 6677718..fc9aa5f 100644 --- a/frontend/src/components/nodes/variable/VariableNode.tsx +++ b/frontend/src/components/nodes/variable/VariableNode.tsx @@ -3,20 +3,20 @@ import { AbstractNodeProps, createAbstractNodeComponent, useAbstractNode, -} from '@/lib/abstractNode' +} from '@/lib/graph/abstractNode' import { BaseNode, BaseNodeContent, BaseNodeFooter, BaseNodeHeaderRow, -} from '@/components/base/BaseNode' -import { NodeMenubar } from '@/components/base/NodeMenubar' +} from '@/components/graph/BaseNode' +import { NodeMenubar } from '@/components/graph/NodeMenubar' import { Input } from '@/components/ui/input' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select' import { Switch } from '@/components/ui/switch' -import { NodeFooterEdgeIndicators } from '@/components/base/NodeFooterEdgeIndicators' -import { NodeHeaderTitle } from '@/components/base/NodeHeaderTitle' -import { OutputHandle } from '@/components/base/NodeHandles' +import { NodeFooterEdgeIndicators } from '@/components/graph/NodeFooterEdgeIndicators' +import { NodeHeaderTitle } from '@/components/graph/NodeHeaderTitle' +import { OutputHandle } from '@/components/graph/NodeHandles' import { Variable } from 'lucide-react' export type ValueType = 'string' | 'number' | 'boolean' diff --git a/frontend/src/components/nodes/variable/descriptor.tsx b/frontend/src/components/nodes/variable/descriptor.tsx index 3a02824..3c9adb1 100644 --- a/frontend/src/components/nodes/variable/descriptor.tsx +++ b/frontend/src/components/nodes/variable/descriptor.tsx @@ -1,8 +1,8 @@ import React from 'react' import { Variable } from 'lucide-react' -import { createNodeTypeBuilder } from '@/lib/nodeTypeBuilder' -import { NODE_HELP } from '@/lib/nodeHelp' -import type { NodeTypeDescriptor } from '@/lib/nodeRegistry' +import { createNodeTypeBuilder } from '@/lib/graph/nodeTypeBuilder' +import { NODE_HELP } from '@/lib/graph/nodeHelp' +import type { NodeTypeDescriptor } from '@/lib/graph/nodeRegistry' import VariableNode from './VariableNode' const ICON_CLASS = 'mr-2 h-4 w-4' diff --git a/frontend/src/hooks/useGraphStateWithHistory.ts b/frontend/src/hooks/useGraphStateWithHistory.ts index 2f4f9fb..6f1c3aa 100644 --- a/frontend/src/hooks/useGraphStateWithHistory.ts +++ b/frontend/src/hooks/useGraphStateWithHistory.ts @@ -1,5 +1,5 @@ import { useCallback, useRef, useState } from 'react' -import type { AppNode, AppEdge } from '@/lib/nodeTypes' +import type { AppNode, AppEdge } from '@/lib/graph/nodeTypes' export type GraphState = { nodes: AppNode[]; edges: AppEdge[] } diff --git a/frontend/src/lib/abstractNode.ts b/frontend/src/lib/graph/abstractNode.ts similarity index 99% rename from frontend/src/lib/abstractNode.ts rename to frontend/src/lib/graph/abstractNode.ts index 3c7eca7..9a5bcf1 100644 --- a/frontend/src/lib/abstractNode.ts +++ b/frontend/src/lib/graph/abstractNode.ts @@ -8,7 +8,7 @@ * - **createAbstractNodeComponent(displayName, Component)** — Wraps with memo + nodePropsAreEqual. * * **Node lifecycle / connection status:** Nodes that can be updating, paused, or in error should - * call useSyncConnectionStatus(id, { updating, error, paused }) from @/lib/nodeLifecycle so edge + * call useSyncConnectionStatus(id, { updating, error, paused }) from @/lib/graph/nodeLifecycle so edge * colors and path animation stay correct. See nodeLifecycle.ts for the full contract. * * Example: define NodeData type, Props = AbstractNodeProps, use useAbstractNode in the diff --git a/frontend/src/lib/flowContext.tsx b/frontend/src/lib/graph/flowContext.tsx similarity index 98% rename from frontend/src/lib/flowContext.tsx rename to frontend/src/lib/graph/flowContext.tsx index d358c87..55f368f 100644 --- a/frontend/src/lib/flowContext.tsx +++ b/frontend/src/lib/graph/flowContext.tsx @@ -1,6 +1,6 @@ import React, { useMemo } from 'react' import type { Connection } from '@xyflow/react' -import type { AppNode, AppEdge } from '@/lib/nodeTypes' +import type { AppNode, AppEdge } from './nodeTypes' export type ConnectionFrom = { nodeId: string; sourceHandle?: string } | null diff --git a/frontend/src/lib/flowUtils.ts b/frontend/src/lib/graph/flowUtils.ts similarity index 99% rename from frontend/src/lib/flowUtils.ts rename to frontend/src/lib/graph/flowUtils.ts index de291a6..1f737b1 100644 --- a/frontend/src/lib/flowUtils.ts +++ b/frontend/src/lib/graph/flowUtils.ts @@ -83,4 +83,3 @@ export function getDefaultDataForType(type: string, newId?: string): any { export function getResetDataForType(type: string, nodeId?: string): any { return getResetDataFromRegistry(type, nodeId) } - diff --git a/frontend/src/lib/graphPath.ts b/frontend/src/lib/graph/graphPath.ts similarity index 100% rename from frontend/src/lib/graphPath.ts rename to frontend/src/lib/graph/graphPath.ts diff --git a/frontend/src/lib/nodeHelp.tsx b/frontend/src/lib/graph/nodeHelp.tsx similarity index 100% rename from frontend/src/lib/nodeHelp.tsx rename to frontend/src/lib/graph/nodeHelp.tsx diff --git a/frontend/src/lib/nodeLifecycle.ts b/frontend/src/lib/graph/nodeLifecycle.ts similarity index 100% rename from frontend/src/lib/nodeLifecycle.ts rename to frontend/src/lib/graph/nodeLifecycle.ts diff --git a/frontend/src/lib/nodeRegistry.ts b/frontend/src/lib/graph/nodeRegistry.ts similarity index 97% rename from frontend/src/lib/nodeRegistry.ts rename to frontend/src/lib/graph/nodeRegistry.ts index 432ab76..9a3fb3e 100644 --- a/frontend/src/lib/nodeRegistry.ts +++ b/frontend/src/lib/graph/nodeRegistry.ts @@ -5,8 +5,8 @@ */ import type React from 'react' -import { registerSourceRenderingLogic } from './sourceRenderingLogic' -import type { SourceRenderingLogic } from './sourceRenderingLogic' +import { registerSourceRenderingLogic } from '../sourceRenderingLogic' +import type { SourceRenderingLogic } from '../sourceRenderingLogic' /** Node classification for UI: Psyche, Pneuma, Physis, Archon (AI Agent). */ export type NodeClassification = 'psyche' | 'pneuma' | 'physis' | 'archon' diff --git a/frontend/src/lib/nodeTypeBuilder.ts b/frontend/src/lib/graph/nodeTypeBuilder.ts similarity index 98% rename from frontend/src/lib/nodeTypeBuilder.ts rename to frontend/src/lib/graph/nodeTypeBuilder.ts index a259eef..8f210a7 100644 --- a/frontend/src/lib/nodeTypeBuilder.ts +++ b/frontend/src/lib/graph/nodeTypeBuilder.ts @@ -19,7 +19,7 @@ import type React from 'react' import type { NodeTypeDescriptor, NodeClassification, NodeHelpEntry } from './nodeRegistry' -import type { SourceRenderingLogic } from './sourceRenderingLogic' +import type { SourceRenderingLogic } from '../sourceRenderingLogic' type OptionalDescriptor = Partial< Omit< diff --git a/frontend/src/lib/nodeTypes.ts b/frontend/src/lib/graph/nodeTypes.ts similarity index 100% rename from frontend/src/lib/nodeTypes.ts rename to frontend/src/lib/graph/nodeTypes.ts diff --git a/frontend/src/lib/registerBuiltinNodes.tsx b/frontend/src/lib/graph/registerBuiltinNodes.tsx similarity index 100% rename from frontend/src/lib/registerBuiltinNodes.tsx rename to frontend/src/lib/graph/registerBuiltinNodes.tsx diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx index 552753c..7906496 100644 --- a/frontend/src/main.tsx +++ b/frontend/src/main.tsx @@ -3,7 +3,7 @@ import { createRoot } from 'react-dom/client' import { BrowserRouter, Navigate, Route, Routes } from 'react-router-dom' import { Toaster } from 'sonner' import { ThemeProvider } from './lib/themeContext' -import { registerBuiltinNodes } from './lib/registerBuiltinNodes' +import { registerBuiltinNodes } from './lib/graph/registerBuiltinNodes' import { KosmosPage } from './app/kosmos/KosmosPage' import { ProjectsPage } from './app/pleroma/PleromaPage' import { KeromaPage } from './app/keroma/KeromaPage'