@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 +230 -3
- package/dist/{NeuronWebExplorer-lBM0Jcf9.d.ts → NeuronWebExplorer-OYEmP22R.d.cts} +19 -3
- package/dist/{NeuronWebExplorer-7sRtXdqa.d.cts → NeuronWebExplorer-XMtk_7z-.d.ts} +19 -3
- package/dist/api/index.d.cts +3 -3
- package/dist/api/index.d.ts +3 -3
- package/dist/{chunk-5SZ37JXQ.cjs → chunk-A5KXAYKG.cjs} +519 -9
- package/dist/chunk-A5KXAYKG.cjs.map +1 -0
- package/dist/{chunk-XSDOIONK.js → chunk-QSSXMXPT.js} +518 -10
- package/dist/chunk-QSSXMXPT.js.map +1 -0
- package/dist/{edge-U2Qgwg-K.d.cts → cluster-CU_pBUcK.d.cts} +123 -1
- package/dist/{edge-U2Qgwg-K.d.ts → cluster-CU_pBUcK.d.ts} +123 -1
- package/dist/index.cjs +655 -16
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +66 -7
- package/dist/index.d.ts +66 -7
- package/dist/index.js +641 -4
- package/dist/index.js.map +1 -1
- package/dist/{query-helpers-DMnkjfO0.d.cts → query-helpers-CA23s1ct.d.cts} +2 -102
- package/dist/{query-helpers-BpVwXZJk.d.ts → query-helpers-CdDGFiK3.d.ts} +2 -102
- package/dist/visualization/index.cjs +22 -14
- package/dist/visualization/index.d.cts +19 -6
- package/dist/visualization/index.d.ts +19 -6
- package/dist/visualization/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-5SZ37JXQ.cjs.map +0 -1
- package/dist/chunk-XSDOIONK.js.map +0 -1
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
|
|
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
|
|
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 };
|
package/dist/api/index.d.cts
CHANGED
|
@@ -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
|
|
2
|
-
export {
|
|
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 {
|
|
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>;
|
package/dist/api/index.d.ts
CHANGED
|
@@ -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
|
|
2
|
-
export {
|
|
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 {
|
|
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>;
|