@omiron33/omi-neuron-web 0.2.21 → 0.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -12,6 +12,9 @@ If you are working inside this repo, also read `AGENTS.md` for execution rules,
12
12
  - A CLI that scaffolds configuration, Docker Postgres (pgvector), and Next.js route handlers.
13
13
  - A Node/Edge/Cluster data model, plus analysis and embeddings pipelines.
14
14
  - A React provider and hooks that wrap the API client.
15
+ - **Static mode** (`StaticDataProvider`) for authored graphs without API/database dependency.
16
+ - **Status-based node coloring** for workflow visualization (draft/active/complete/blocked/archived).
17
+ - **Static cluster rendering** with convex hull boundaries around explicit node groups.
15
18
 
16
19
  ## Package entry points
17
20
 
@@ -88,6 +91,7 @@ export type {
88
91
  NeuronWebTheme,
89
92
  NeuronLayoutOptions,
90
93
  NeuronLayoutMode,
94
+ TreeLayoutOptions,
91
95
  DensityOptions,
92
96
  DensityMode,
93
97
  ClickCardOptions,
@@ -99,6 +103,11 @@ export type {
99
103
  export * from './react/hooks';
100
104
  export { NeuronWebProvider } from './react/NeuronWebProvider';
101
105
 
106
+ // Static mode (no API/database required)
107
+ export { StaticDataProvider } from './react/StaticDataProvider';
108
+ export type { StaticDataProviderProps } from './react/StaticDataProvider';
109
+ export { StaticModeError } from './react/static/in-memory-api-client';
110
+
102
111
  // Version constant
103
112
  export { VERSION } from './version';
104
113
  ```
@@ -300,8 +309,17 @@ export default defineNeuronConfig({
300
309
  - analysis fields: `embedding`, `embeddingModel`, `embeddingGeneratedAt`, `clusterId`, `clusterSimilarity`
301
310
  - relationship counts: `connectionCount`, `inboundCount`, `outboundCount`
302
311
  - status: `analysisStatus`, `analysisError`
312
+ - workflow status: `status?: NodeStatus` (for status-based coloring)
303
313
  - visualization hints: `tier`, `visualPriority`, `positionOverride`
304
314
 
315
+ `NodeStatus` type (for workflow-based coloring):
316
+
317
+ ```ts
318
+ export type NodeStatus = 'default' | 'draft' | 'active' | 'complete' | 'blocked' | 'archived';
319
+ ```
320
+
321
+ When a node has a `status` set, it takes priority over domain-based coloring in visualization.
322
+
305
323
  Input types:
306
324
 
307
325
  - `NeuronNodeCreate` (minimal required fields: `label`; optional `slug`, `nodeType`, `domain`, `summary`, `description`, `content`, `metadata`, `tier`)
@@ -334,6 +352,21 @@ Visualization type: `NeuronVisualEdge` uses `from` and `to` slugs.
334
352
  - stats: `memberCount`, `avgSimilarity`, `cohesion`
335
353
  - metadata: `description`, `keywords`, `metadata`
336
354
 
355
+ `NeuronVisualCluster` (for static/authored cluster visualization):
356
+
357
+ ```ts
358
+ export interface NeuronVisualCluster {
359
+ id: string;
360
+ label: string;
361
+ nodeIds: string[]; // explicit node membership
362
+ color?: string; // optional cluster color
363
+ position?: { x: number; y: number; z: number }; // optional fixed center
364
+ metadata?: Record<string, unknown>;
365
+ }
366
+ ```
367
+
368
+ Visual clusters render as convex hull boundaries around their member nodes with labels at the centroid.
369
+
337
370
  ### Analysis
338
371
 
339
372
  `AnalysisRun`, `AnalysisRequest`, `AnalysisResponse`, `AnalysisPipelineConfig` are in `src/core/types/analysis.ts`.
@@ -686,6 +719,128 @@ Notes:
686
719
  - Keep secrets server-side. Do not pass `OPENAI_API_KEY` (or database URLs) into client components.
687
720
  - Configure OpenAI + database access in your Next.js route handlers (see `docs/secure-nextjs-setup.md`).
688
721
 
722
+ ### StaticDataProvider (Standalone Mode)
723
+
724
+ Use `StaticDataProvider` for static/authored graphs that don't require API or database connectivity. Perfect for:
725
+ - Quest/narrative authoring tools
726
+ - Documentation/knowledge graphs
727
+ - Workflow/pipeline visualizers
728
+ - Game skill trees
729
+ - Org charts and hierarchies
730
+
731
+ ```tsx
732
+ import { StaticDataProvider, NeuronWeb } from '@omiron33/omi-neuron-web';
733
+
734
+ const nodes = [
735
+ { id: 'q001', label: 'Start Quest', domain: 'quest', status: 'complete' },
736
+ { id: 'q002', label: 'Find Artifact', domain: 'quest', status: 'active' },
737
+ { id: 'q003', label: 'Return Home', domain: 'quest', status: 'draft' },
738
+ ];
739
+
740
+ const edges = [
741
+ { id: 'e1', from: 'q001', to: 'q002', relationshipType: 'leads_to' },
742
+ { id: 'e2', from: 'q002', to: 'q003', relationshipType: 'leads_to' },
743
+ ];
744
+
745
+ const clusters = [
746
+ { id: 'act1', label: 'Act 1', nodeIds: ['q001', 'q002'], color: '#4a5568' },
747
+ { id: 'act2', label: 'Act 2', nodeIds: ['q003'], color: '#2d3748' },
748
+ ];
749
+
750
+ export default function QuestGraph() {
751
+ return (
752
+ <StaticDataProvider
753
+ nodes={nodes}
754
+ edges={edges}
755
+ clusters={clusters}
756
+ mutableMode={false}
757
+ >
758
+ <NeuronWeb graphData={{ nodes, edges, clusters }} />
759
+ </StaticDataProvider>
760
+ );
761
+ }
762
+ ```
763
+
764
+ `StaticDataProviderProps`:
765
+
766
+ ```ts
767
+ interface StaticDataProviderProps {
768
+ children: React.ReactNode;
769
+ nodes: (NeuronNode | NeuronVisualNode)[];
770
+ edges: (NeuronEdge | NeuronVisualEdge)[];
771
+ clusters?: NeuronVisualCluster[];
772
+ settings?: Partial<NeuronSettings>;
773
+ mutableMode?: boolean; // if true, mutations modify in-memory store
774
+ onEvent?: (event: NeuronEvent) => void;
775
+ onError?: (error: Error, context: ErrorContext) => void;
776
+ }
777
+ ```
778
+
779
+ Behavior:
780
+ - All hooks (`useNeuronNodes`, `useNeuronGraph`, etc.) work unchanged
781
+ - Analysis and search methods throw `StaticModeError` (not available in static mode)
782
+ - Context provides `isStaticMode: true` flag
783
+ - Data updates via `updateData()` on the internal client or by passing new props
784
+
785
+ ### Status-based coloring
786
+
787
+ Nodes with a `status` field render with status colors that override domain colors:
788
+
789
+ ```ts
790
+ const DEFAULT_STATUS_COLORS = {
791
+ default: '#c0c5ff', // Same as defaultDomainColor
792
+ draft: '#9ca3af', // Gray
793
+ active: '#4ade80', // Green
794
+ complete: '#60a5fa', // Blue
795
+ blocked: '#f87171', // Red
796
+ archived: '#6b7280', // Dark gray
797
+ };
798
+ ```
799
+
800
+ Override via theme:
801
+
802
+ ```tsx
803
+ <NeuronWeb
804
+ graphData={graphData}
805
+ theme={{
806
+ colors: {
807
+ statusColors: {
808
+ default: '#c0c5ff',
809
+ draft: '#888888',
810
+ active: '#00ff00',
811
+ complete: '#0088ff',
812
+ blocked: '#ff0000',
813
+ archived: '#444444',
814
+ },
815
+ },
816
+ }}
817
+ />
818
+ ```
819
+
820
+ ### Static clusters (convex hull visualization)
821
+
822
+ Pass `clusters` in `graphData` to render convex hull boundaries around node groups:
823
+
824
+ ```tsx
825
+ <NeuronWeb
826
+ graphData={{
827
+ nodes,
828
+ edges,
829
+ clusters: [
830
+ { id: 'cluster1', label: 'Group A', nodeIds: ['n1', 'n2', 'n3'], color: '#4a5568' },
831
+ { id: 'cluster2', label: 'Group B', nodeIds: ['n4', 'n5'], color: '#2d3748' },
832
+ ],
833
+ }}
834
+ />
835
+ ```
836
+
837
+ Cluster rendering:
838
+ - Computes 2D convex hull from projected node positions (Graham scan algorithm)
839
+ - Renders semi-transparent mesh fill with border outline
840
+ - Displays label at cluster centroid
841
+ - Updates when node positions change (e.g., ambient motion)
842
+ - Requires 3+ nodes to show hull; fewer shows only the label
843
+
689
844
  ### Hooks
690
845
 
691
846
  - `useNeuronContext()` -> access provider context.
@@ -729,6 +884,7 @@ export interface NeuronWebProps {
729
884
  nodes: NeuronVisualNode[];
730
885
  edges: NeuronVisualEdge[];
731
886
  storyBeats?: NeuronStoryBeat[];
887
+ clusters?: NeuronVisualCluster[];
732
888
  };
733
889
  fullHeight?: boolean;
734
890
  isFullScreen?: boolean;
@@ -810,7 +966,7 @@ More detail:
810
966
 
811
967
  ### Layout modes
812
968
 
813
- `NeuronLayoutMode` = `'auto' | 'positioned' | 'fuzzy' | 'atlas'`.
969
+ `NeuronLayoutMode` = `'auto' | 'positioned' | 'fuzzy' | 'atlas' | 'tree'`.
814
970
 
815
971
  `applyFuzzyLayout()` behavior:
816
972
 
@@ -818,6 +974,7 @@ More detail:
818
974
  - `auto`: if any node lacks a `position`, run `atlas` layout; otherwise return nodes as-is.
819
975
  - `atlas`: sphere layout with built-in override map (`ATLAS_POSITION_OVERRIDES` in `src/visualization/layouts/fuzzy-layout.ts`).
820
976
  - `fuzzy`: deterministic pseudo-random scatter based on `seed` and node key.
977
+ - `tree`: hierarchical tree layout constrained to 2D plane (z=0), positions nodes based on parent/child relationships from edges.
821
978
 
822
979
  Layout options:
823
980
 
@@ -831,9 +988,77 @@ Layout options:
831
988
  seed?: string; // deterministic seed
832
989
  spread?: number; // global scale factor
833
990
  overrides?: Record<string, [number, number, number]>; // slug/id -> position
991
+ tree?: TreeLayoutOptions; // tree-specific options (used when mode is 'tree')
834
992
  }
835
993
  ```
836
994
 
995
+ ### Tree layout (storyboarding)
996
+
997
+ The `'tree'` layout mode renders nodes in a hierarchical tree structure, ideal for storyboarding or visualizing parent/child relationships. Nodes are constrained to a 2D plane (z=0).
998
+
999
+ ```ts
1000
+ interface TreeLayoutOptions {
1001
+ horizontalSpacing?: number; // spacing between siblings (default: 3)
1002
+ verticalSpacing?: number; // spacing between levels (default: 4)
1003
+ rootNodeId?: string; // force a specific root node (slug or id)
1004
+ direction?: 'down' | 'up' | 'left' | 'right'; // tree growth direction (default: 'down')
1005
+ }
1006
+ ```
1007
+
1008
+ **Direction options:**
1009
+ - `'down'`: root at top, children below (default)
1010
+ - `'up'`: root at bottom, children above
1011
+ - `'right'`: root on left, children to the right
1012
+ - `'left'`: root on right, children to the left
1013
+
1014
+ **Example: Vertical tree (top-down)**
1015
+ ```tsx
1016
+ <NeuronWeb
1017
+ graphData={{
1018
+ nodes: [
1019
+ { id: 'root', label: 'Root', slug: 'root' },
1020
+ { id: 'a', label: 'Child A', slug: 'child-a' },
1021
+ { id: 'b', label: 'Child B', slug: 'child-b' },
1022
+ { id: 'a1', label: 'Grandchild A1', slug: 'grandchild-a1' },
1023
+ ],
1024
+ edges: [
1025
+ { id: 'e1', from: 'root', to: 'child-a', relationshipType: 'parent_of', strength: 1 },
1026
+ { id: 'e2', from: 'root', to: 'child-b', relationshipType: 'parent_of', strength: 1 },
1027
+ { id: 'e3', from: 'child-a', to: 'grandchild-a1', relationshipType: 'parent_of', strength: 1 },
1028
+ ],
1029
+ }}
1030
+ layout={{
1031
+ mode: 'tree',
1032
+ tree: {
1033
+ direction: 'down',
1034
+ horizontalSpacing: 4,
1035
+ verticalSpacing: 5,
1036
+ },
1037
+ }}
1038
+ />
1039
+ ```
1040
+
1041
+ **Example: Horizontal tree (left-to-right)**
1042
+ ```tsx
1043
+ <NeuronWeb
1044
+ graphData={graphData}
1045
+ layout={{
1046
+ mode: 'tree',
1047
+ tree: {
1048
+ direction: 'right',
1049
+ horizontalSpacing: 3,
1050
+ verticalSpacing: 4,
1051
+ },
1052
+ }}
1053
+ />
1054
+ ```
1055
+
1056
+ The tree layout automatically:
1057
+ - Identifies root nodes (nodes with no incoming edges)
1058
+ - Positions children centered below/beside their parent
1059
+ - Handles multiple disconnected trees (multiple roots)
1060
+ - Places orphan nodes (not connected to any tree) in a separate row
1061
+
837
1062
  ### Camera auto-fit (center-third framing)
838
1063
 
839
1064
  Use `cameraFit` to center and zoom so all nodes sit inside a specific viewport fraction (default: 0.33 = center third).
@@ -1059,11 +1284,13 @@ Key behavior in `NeuronWeb`:
1059
1284
  Key internal modules:
1060
1285
 
1061
1286
  - `src/visualization/scene/scene-manager.ts` - sets up Three.js scene, camera, renderer, lights, starfield, labels.
1062
- - `src/visualization/scene/node-renderer.ts` - renders nodes, labels, hover/selection states.
1287
+ - `src/visualization/scene/node-renderer.ts` - renders nodes, labels, hover/selection states, status-based coloring.
1063
1288
  - `src/visualization/scene/edge-renderer.ts` - renders edges, flow animations.
1289
+ - `src/visualization/scene/cluster-renderer.ts` - renders convex hull boundaries around static clusters.
1064
1290
  - `src/visualization/interactions/interaction-manager.ts` - hover/click/double-click handling.
1065
1291
  - `src/visualization/animations/animation-controller.ts` - camera focus/transition animations.
1066
- - `src/visualization/layouts/fuzzy-layout.ts` - layout generation.
1292
+ - `src/visualization/layouts/fuzzy-layout.ts` - layout generation (fuzzy, atlas, positioned modes).
1293
+ - `src/visualization/layouts/tree-layout.ts` - hierarchical tree layout for storyboarding.
1067
1294
 
1068
1295
  ## Events
1069
1296
 
@@ -1,5 +1,5 @@
1
1
  import React__default from 'react';
2
- import { N as NeuronVisualNode, a as NeuronVisualEdge, b as NeuronNode, c as NeuronEdge, d as NodeTier } from './edge-U2Qgwg-K.js';
2
+ import { N as NeuronVisualNode, a as NeuronVisualEdge, b as NeuronVisualCluster, c as NeuronNode, d as NeuronEdge, e as NodeStatus, f as NodeTier } from './cluster-CU_pBUcK.cjs';
3
3
 
4
4
  interface NeuronStoryBeat {
5
5
  id: string;
@@ -36,6 +36,8 @@ interface NeuronWebTheme {
36
36
  background: string;
37
37
  domainColors: Record<string, string>;
38
38
  defaultDomainColor: string;
39
+ /** Status-based node colors for workflow visualization */
40
+ statusColors?: Record<NodeStatus, string>;
39
41
  edgeDefault: string;
40
42
  edgeActive: string;
41
43
  edgeSelected: string;
@@ -97,7 +99,17 @@ interface NeuronWebThemeOverride {
97
99
  effects?: Partial<NeuronWebTheme['effects']>;
98
100
  animation?: Partial<NeuronWebTheme['animation']>;
99
101
  }
100
- type NeuronLayoutMode = 'auto' | 'positioned' | 'fuzzy' | 'atlas';
102
+ type NeuronLayoutMode = 'auto' | 'positioned' | 'fuzzy' | 'atlas' | 'tree';
103
+ interface TreeLayoutOptions {
104
+ /** Horizontal spacing between sibling nodes (default: 3) */
105
+ horizontalSpacing?: number;
106
+ /** Vertical spacing between parent/child levels (default: 4) */
107
+ verticalSpacing?: number;
108
+ /** Root node ID or slug (if not specified, nodes with no incoming edges are roots) */
109
+ rootNodeId?: string;
110
+ /** Direction the tree grows: 'down'/'up' for vertical, 'left'/'right' for horizontal (default: 'down') */
111
+ direction?: 'down' | 'up' | 'left' | 'right';
112
+ }
101
113
  interface NeuronLayoutOptions {
102
114
  mode?: NeuronLayoutMode;
103
115
  radius?: number;
@@ -107,6 +119,8 @@ interface NeuronLayoutOptions {
107
119
  seed?: string;
108
120
  spread?: number;
109
121
  overrides?: Record<string, [number, number, number]>;
122
+ /** Tree layout specific options (used when mode is 'tree') */
123
+ tree?: TreeLayoutOptions;
110
124
  }
111
125
  type DensityMode = 'relaxed' | 'balanced' | 'compact';
112
126
  interface DensityOptions {
@@ -283,6 +297,8 @@ interface NeuronWebProps {
283
297
  nodes: NeuronVisualNode[];
284
298
  edges: NeuronVisualEdge[];
285
299
  storyBeats?: NeuronStoryBeat[];
300
+ /** Static cluster definitions for visual grouping */
301
+ clusters?: NeuronVisualCluster[];
286
302
  };
287
303
  fullHeight?: boolean;
288
304
  isFullScreen?: boolean;
@@ -393,4 +409,4 @@ declare function NeuronWeb({ graphData, className, style, fullHeight, isFullScre
393
409
 
394
410
  declare function NeuronWebExplorer(props: NeuronWebExplorerProps): React__default.ReactElement;
395
411
 
396
- export { type AnimationProfile as A, type CameraFitOptions as C, type DensityOptions as D, type EdgeRenderMode as E, type HoverCardOptions as H, type LabelOptions as L, type NeuronWebTheme as N, type RenderingOptions as R, type StudyPathRequest as S, type NeuronWebThemeOverride as a, type NeuronStoryBeat as b, type NeuronLayoutOptions as c, NeuronWeb as d, NeuronWebExplorer as e, type NeuronWebProps as f, type NeuronWebExplorerProps as g, type NeuronWebExplorerFilters as h, type NeuronWebExplorerResolvedFilters as i, type StudyPathStep as j, type NeuronLayoutMode as k, type DensityMode as l, type ClickCardOptions as m, type ClickZoomOptions as n, type CardsMode as o, type RenderingPreset as p, type AnimationOptions as q, type LabelTierRules as r, type LabelTierVisibility as s, type NodeRenderMode as t, type NodeStyleOptions as u, type EdgeStyleOptions as v, type NodeStyle as w, type EdgeStyle as x, type NodeStyleResolver as y, type EdgeStyleResolver as z };
412
+ export { type AnimationProfile as A, type CameraFitOptions as C, type DensityOptions as D, type EdgeRenderMode as E, type HoverCardOptions as H, type LabelOptions as L, type NeuronWebTheme as N, type RenderingOptions as R, type StudyPathRequest as S, type TreeLayoutOptions as T, type NeuronWebThemeOverride as a, type NeuronStoryBeat as b, type NeuronLayoutOptions as c, NeuronWeb as d, NeuronWebExplorer as e, type NeuronWebProps as f, type NeuronWebExplorerProps as g, type NeuronWebExplorerFilters as h, type NeuronWebExplorerResolvedFilters as i, type StudyPathStep as j, type NeuronLayoutMode as k, type DensityMode as l, type ClickCardOptions as m, type ClickZoomOptions as n, type CardsMode as o, type RenderingPreset as p, type AnimationOptions as q, type LabelTierRules as r, type LabelTierVisibility as s, type NodeRenderMode as t, type NodeStyleOptions as u, type EdgeStyleOptions as v, type NodeStyle as w, type EdgeStyle as x, type NodeStyleResolver as y, type EdgeStyleResolver as z };
@@ -1,5 +1,5 @@
1
1
  import React__default from 'react';
2
- import { N as NeuronVisualNode, a as NeuronVisualEdge, b as NeuronNode, c as NeuronEdge, d as NodeTier } from './edge-U2Qgwg-K.cjs';
2
+ import { N as NeuronVisualNode, a as NeuronVisualEdge, b as NeuronVisualCluster, c as NeuronNode, d as NeuronEdge, e as NodeStatus, f as NodeTier } from './cluster-CU_pBUcK.js';
3
3
 
4
4
  interface NeuronStoryBeat {
5
5
  id: string;
@@ -36,6 +36,8 @@ interface NeuronWebTheme {
36
36
  background: string;
37
37
  domainColors: Record<string, string>;
38
38
  defaultDomainColor: string;
39
+ /** Status-based node colors for workflow visualization */
40
+ statusColors?: Record<NodeStatus, string>;
39
41
  edgeDefault: string;
40
42
  edgeActive: string;
41
43
  edgeSelected: string;
@@ -97,7 +99,17 @@ interface NeuronWebThemeOverride {
97
99
  effects?: Partial<NeuronWebTheme['effects']>;
98
100
  animation?: Partial<NeuronWebTheme['animation']>;
99
101
  }
100
- type NeuronLayoutMode = 'auto' | 'positioned' | 'fuzzy' | 'atlas';
102
+ type NeuronLayoutMode = 'auto' | 'positioned' | 'fuzzy' | 'atlas' | 'tree';
103
+ interface TreeLayoutOptions {
104
+ /** Horizontal spacing between sibling nodes (default: 3) */
105
+ horizontalSpacing?: number;
106
+ /** Vertical spacing between parent/child levels (default: 4) */
107
+ verticalSpacing?: number;
108
+ /** Root node ID or slug (if not specified, nodes with no incoming edges are roots) */
109
+ rootNodeId?: string;
110
+ /** Direction the tree grows: 'down'/'up' for vertical, 'left'/'right' for horizontal (default: 'down') */
111
+ direction?: 'down' | 'up' | 'left' | 'right';
112
+ }
101
113
  interface NeuronLayoutOptions {
102
114
  mode?: NeuronLayoutMode;
103
115
  radius?: number;
@@ -107,6 +119,8 @@ interface NeuronLayoutOptions {
107
119
  seed?: string;
108
120
  spread?: number;
109
121
  overrides?: Record<string, [number, number, number]>;
122
+ /** Tree layout specific options (used when mode is 'tree') */
123
+ tree?: TreeLayoutOptions;
110
124
  }
111
125
  type DensityMode = 'relaxed' | 'balanced' | 'compact';
112
126
  interface DensityOptions {
@@ -283,6 +297,8 @@ interface NeuronWebProps {
283
297
  nodes: NeuronVisualNode[];
284
298
  edges: NeuronVisualEdge[];
285
299
  storyBeats?: NeuronStoryBeat[];
300
+ /** Static cluster definitions for visual grouping */
301
+ clusters?: NeuronVisualCluster[];
286
302
  };
287
303
  fullHeight?: boolean;
288
304
  isFullScreen?: boolean;
@@ -393,4 +409,4 @@ declare function NeuronWeb({ graphData, className, style, fullHeight, isFullScre
393
409
 
394
410
  declare function NeuronWebExplorer(props: NeuronWebExplorerProps): React__default.ReactElement;
395
411
 
396
- export { type AnimationProfile as A, type CameraFitOptions as C, type DensityOptions as D, type EdgeRenderMode as E, type HoverCardOptions as H, type LabelOptions as L, type NeuronWebTheme as N, type RenderingOptions as R, type StudyPathRequest as S, type NeuronWebThemeOverride as a, type NeuronStoryBeat as b, type NeuronLayoutOptions as c, NeuronWeb as d, NeuronWebExplorer as e, type NeuronWebProps as f, type NeuronWebExplorerProps as g, type NeuronWebExplorerFilters as h, type NeuronWebExplorerResolvedFilters as i, type StudyPathStep as j, type NeuronLayoutMode as k, type DensityMode as l, type ClickCardOptions as m, type ClickZoomOptions as n, type CardsMode as o, type RenderingPreset as p, type AnimationOptions as q, type LabelTierRules as r, type LabelTierVisibility as s, type NodeRenderMode as t, type NodeStyleOptions as u, type EdgeStyleOptions as v, type NodeStyle as w, type EdgeStyle as x, type NodeStyleResolver as y, type EdgeStyleResolver as z };
412
+ export { type AnimationProfile as A, type CameraFitOptions as C, type DensityOptions as D, type EdgeRenderMode as E, type HoverCardOptions as H, type LabelOptions as L, type NeuronWebTheme as N, type RenderingOptions as R, type StudyPathRequest as S, type TreeLayoutOptions as T, type NeuronWebThemeOverride as a, type NeuronStoryBeat as b, type NeuronLayoutOptions as c, NeuronWeb as d, NeuronWebExplorer as e, type NeuronWebProps as f, type NeuronWebExplorerProps as g, type NeuronWebExplorerFilters as h, type NeuronWebExplorerResolvedFilters as i, type StudyPathStep as j, type NeuronLayoutMode as k, type DensityMode as l, type ClickCardOptions as m, type ClickZoomOptions as n, type CardsMode as o, type RenderingPreset as p, type AnimationOptions as q, type LabelTierRules as r, type LabelTierVisibility as s, type NodeRenderMode as t, type NodeStyleOptions as u, type EdgeStyleOptions as v, type NodeStyle as w, type EdgeStyle as x, type NodeStyleResolver as y, type EdgeStyleResolver as z };
@@ -1,7 +1,7 @@
1
- import { G as GraphStoreContext, N as NeuronConfig, a as GraphStore, E as EmbeddingProvider, S as SelectOptions, W as WhereClause, b as NeuronCluster, c as NeuronSettings, d as NeuronSettingsUpdate, A as AnalysisRun, e as SuggestedEdge, f as SuggestedEdgeCreate, g as SuggestedEdgeListParams, C as ConnectorType, I as IngestionSource, h as IngestionSourceItem, i as IngestionSyncRun, j as SyncRunStatus, k as GetGraphParams, l as ExpandGraphRequest, F as FindPathRequest, m as GetGraphResponse, n as ExpandGraphResponse, o as FindPathResponse } from '../query-helpers-DMnkjfO0.cjs';
2
- export { p as AnalysisRequest, q as AnalysisResponse, ac as ApiErrorResponse, T as ApproveSuggestionResponse, V as BulkApproveSuggestionsRequest, X as BulkApproveSuggestionsResponse, _ as BulkRejectSuggestionsRequest, $ as BulkRejectSuggestionsResponse, O as CancelAnalysisResponse, B as CreateEdgesRequest, H as CreateEdgesResponse, v as CreateNodesRequest, w as CreateNodesResponse, K as DeleteEdgeResponse, D as DeleteNodeResponse, a5 as FindSimilarOptions, a4 as FindSimilarRequest, a6 as FindSimilarResponse, M as GetAnalysisJobResponse, x as GetNodeResponse, a7 as GetSettingsResponse, t as GraphFilters, ad as HealthCheckResponse, y as ListEdgesParams, z as ListEdgesResponse, L as ListNodesParams, u as ListNodesResponse, Q as ListSuggestionsParams, R as ListSuggestionsResponse, s as PaginationMeta, r as PaginationParams, P as PostgresGraphStore, Y as RejectSuggestionRequest, Z as RejectSuggestionResponse, aa as ResetSettingsRequest, ab as ResetSettingsResponse, a3 as SearchResult, a1 as SemanticSearchOptions, a0 as SemanticSearchRequest, a2 as SemanticSearchResponse, J as UpdateEdgeRequest, U as UpdateNodeRequest, a8 as UpdateSettingsRequest, a9 as UpdateSettingsResponse } from '../query-helpers-DMnkjfO0.cjs';
1
+ import { G as GraphStoreContext, N as NeuronConfig, a as GraphStore, E as EmbeddingProvider, S as SelectOptions, W as WhereClause, b as NeuronSettings, c as NeuronSettingsUpdate, A as AnalysisRun, d as SuggestedEdge, e as SuggestedEdgeCreate, f as SuggestedEdgeListParams, C as ConnectorType, I as IngestionSource, g as IngestionSourceItem, h as IngestionSyncRun, i as SyncRunStatus, j as GetGraphParams, k as ExpandGraphRequest, F as FindPathRequest, l as GetGraphResponse, m as ExpandGraphResponse, n as FindPathResponse } from '../query-helpers-CA23s1ct.cjs';
2
+ export { o as AnalysisRequest, p as AnalysisResponse, ab as ApiErrorResponse, R as ApproveSuggestionResponse, T as BulkApproveSuggestionsRequest, V as BulkApproveSuggestionsResponse, Z as BulkRejectSuggestionsRequest, _ as BulkRejectSuggestionsResponse, M as CancelAnalysisResponse, z as CreateEdgesRequest, B as CreateEdgesResponse, u as CreateNodesRequest, v as CreateNodesResponse, J as DeleteEdgeResponse, D as DeleteNodeResponse, a4 as FindSimilarOptions, a3 as FindSimilarRequest, a5 as FindSimilarResponse, K as GetAnalysisJobResponse, w as GetNodeResponse, a6 as GetSettingsResponse, s as GraphFilters, ac as HealthCheckResponse, x as ListEdgesParams, y as ListEdgesResponse, L as ListNodesParams, t as ListNodesResponse, O as ListSuggestionsParams, Q as ListSuggestionsResponse, r as PaginationMeta, q as PaginationParams, P as PostgresGraphStore, X as RejectSuggestionRequest, Y as RejectSuggestionResponse, a9 as ResetSettingsRequest, aa as ResetSettingsResponse, a2 as SearchResult, a0 as SemanticSearchOptions, $ as SemanticSearchRequest, a1 as SemanticSearchResponse, H as UpdateEdgeRequest, U as UpdateNodeRequest, a7 as UpdateSettingsRequest, a8 as UpdateSettingsResponse } from '../query-helpers-CA23s1ct.cjs';
3
3
  import { D as Database } from '../database-B0vplyA4.cjs';
4
- import { b as NeuronNode, e as NeuronNodeCreate, f as NeuronNodeUpdate, c as NeuronEdge, g as NeuronEdgeCreate, h as NeuronEdgeUpdate } from '../edge-U2Qgwg-K.cjs';
4
+ import { c as NeuronNode, g as NeuronNodeCreate, i as NeuronNodeUpdate, d as NeuronEdge, j as NeuronEdgeCreate, k as NeuronEdgeUpdate, h as NeuronCluster } from '../cluster-CU_pBUcK.cjs';
5
5
  import 'pg';
6
6
 
7
7
  type RouteHandler = (request: Request) => Promise<Response>;
@@ -1,7 +1,7 @@
1
- import { G as GraphStoreContext, N as NeuronConfig, a as GraphStore, E as EmbeddingProvider, S as SelectOptions, W as WhereClause, b as NeuronCluster, c as NeuronSettings, d as NeuronSettingsUpdate, A as AnalysisRun, e as SuggestedEdge, f as SuggestedEdgeCreate, g as SuggestedEdgeListParams, C as ConnectorType, I as IngestionSource, h as IngestionSourceItem, i as IngestionSyncRun, j as SyncRunStatus, k as GetGraphParams, l as ExpandGraphRequest, F as FindPathRequest, m as GetGraphResponse, n as ExpandGraphResponse, o as FindPathResponse } from '../query-helpers-BpVwXZJk.js';
2
- export { p as AnalysisRequest, q as AnalysisResponse, ac as ApiErrorResponse, T as ApproveSuggestionResponse, V as BulkApproveSuggestionsRequest, X as BulkApproveSuggestionsResponse, _ as BulkRejectSuggestionsRequest, $ as BulkRejectSuggestionsResponse, O as CancelAnalysisResponse, B as CreateEdgesRequest, H as CreateEdgesResponse, v as CreateNodesRequest, w as CreateNodesResponse, K as DeleteEdgeResponse, D as DeleteNodeResponse, a5 as FindSimilarOptions, a4 as FindSimilarRequest, a6 as FindSimilarResponse, M as GetAnalysisJobResponse, x as GetNodeResponse, a7 as GetSettingsResponse, t as GraphFilters, ad as HealthCheckResponse, y as ListEdgesParams, z as ListEdgesResponse, L as ListNodesParams, u as ListNodesResponse, Q as ListSuggestionsParams, R as ListSuggestionsResponse, s as PaginationMeta, r as PaginationParams, P as PostgresGraphStore, Y as RejectSuggestionRequest, Z as RejectSuggestionResponse, aa as ResetSettingsRequest, ab as ResetSettingsResponse, a3 as SearchResult, a1 as SemanticSearchOptions, a0 as SemanticSearchRequest, a2 as SemanticSearchResponse, J as UpdateEdgeRequest, U as UpdateNodeRequest, a8 as UpdateSettingsRequest, a9 as UpdateSettingsResponse } from '../query-helpers-BpVwXZJk.js';
1
+ import { G as GraphStoreContext, N as NeuronConfig, a as GraphStore, E as EmbeddingProvider, S as SelectOptions, W as WhereClause, b as NeuronSettings, c as NeuronSettingsUpdate, A as AnalysisRun, d as SuggestedEdge, e as SuggestedEdgeCreate, f as SuggestedEdgeListParams, C as ConnectorType, I as IngestionSource, g as IngestionSourceItem, h as IngestionSyncRun, i as SyncRunStatus, j as GetGraphParams, k as ExpandGraphRequest, F as FindPathRequest, l as GetGraphResponse, m as ExpandGraphResponse, n as FindPathResponse } from '../query-helpers-CdDGFiK3.js';
2
+ export { o as AnalysisRequest, p as AnalysisResponse, ab as ApiErrorResponse, R as ApproveSuggestionResponse, T as BulkApproveSuggestionsRequest, V as BulkApproveSuggestionsResponse, Z as BulkRejectSuggestionsRequest, _ as BulkRejectSuggestionsResponse, M as CancelAnalysisResponse, z as CreateEdgesRequest, B as CreateEdgesResponse, u as CreateNodesRequest, v as CreateNodesResponse, J as DeleteEdgeResponse, D as DeleteNodeResponse, a4 as FindSimilarOptions, a3 as FindSimilarRequest, a5 as FindSimilarResponse, K as GetAnalysisJobResponse, w as GetNodeResponse, a6 as GetSettingsResponse, s as GraphFilters, ac as HealthCheckResponse, x as ListEdgesParams, y as ListEdgesResponse, L as ListNodesParams, t as ListNodesResponse, O as ListSuggestionsParams, Q as ListSuggestionsResponse, r as PaginationMeta, q as PaginationParams, P as PostgresGraphStore, X as RejectSuggestionRequest, Y as RejectSuggestionResponse, a9 as ResetSettingsRequest, aa as ResetSettingsResponse, a2 as SearchResult, a0 as SemanticSearchOptions, $ as SemanticSearchRequest, a1 as SemanticSearchResponse, H as UpdateEdgeRequest, U as UpdateNodeRequest, a7 as UpdateSettingsRequest, a8 as UpdateSettingsResponse } from '../query-helpers-CdDGFiK3.js';
3
3
  import { D as Database } from '../database-B0vplyA4.js';
4
- import { b as NeuronNode, e as NeuronNodeCreate, f as NeuronNodeUpdate, c as NeuronEdge, g as NeuronEdgeCreate, h as NeuronEdgeUpdate } from '../edge-U2Qgwg-K.js';
4
+ import { c as NeuronNode, g as NeuronNodeCreate, i as NeuronNodeUpdate, d as NeuronEdge, j as NeuronEdgeCreate, k as NeuronEdgeUpdate, h as NeuronCluster } from '../cluster-CU_pBUcK.js';
5
5
  import 'pg';
6
6
 
7
7
  type RouteHandler = (request: Request) => Promise<Response>;