@omiron33/omi-neuron-web 0.1.0
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 +55 -0
- package/dist/api/index.cjs +943 -0
- package/dist/api/index.cjs.map +1 -0
- package/dist/api/index.d.cts +140 -0
- package/dist/api/index.d.ts +140 -0
- package/dist/api/index.js +934 -0
- package/dist/api/index.js.map +1 -0
- package/dist/chunk-BSOSHBDR.cjs +300 -0
- package/dist/chunk-BSOSHBDR.cjs.map +1 -0
- package/dist/chunk-COO66N7H.cjs +950 -0
- package/dist/chunk-COO66N7H.cjs.map +1 -0
- package/dist/chunk-FXKXMSLY.cjs +270 -0
- package/dist/chunk-FXKXMSLY.cjs.map +1 -0
- package/dist/chunk-PSDVPB7Y.js +289 -0
- package/dist/chunk-PSDVPB7Y.js.map +1 -0
- package/dist/chunk-RQCGONPN.js +937 -0
- package/dist/chunk-RQCGONPN.js.map +1 -0
- package/dist/chunk-RTSFO7BW.cjs +592 -0
- package/dist/chunk-RTSFO7BW.cjs.map +1 -0
- package/dist/chunk-TFLMPBX7.js +262 -0
- package/dist/chunk-TFLMPBX7.js.map +1 -0
- package/dist/chunk-XNR42GCJ.js +547 -0
- package/dist/chunk-XNR42GCJ.js.map +1 -0
- package/dist/cli/index.cjs +571 -0
- package/dist/cli/index.cjs.map +1 -0
- package/dist/cli/index.d.cts +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +563 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/database-B0vplyA4.d.cts +41 -0
- package/dist/database-B0vplyA4.d.ts +41 -0
- package/dist/edge-BzsYe2Ed.d.cts +269 -0
- package/dist/edge-BzsYe2Ed.d.ts +269 -0
- package/dist/index.cjs +895 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1484 -0
- package/dist/index.d.ts +1484 -0
- package/dist/index.js +654 -0
- package/dist/index.js.map +1 -0
- package/dist/migration/index.cjs +32 -0
- package/dist/migration/index.cjs.map +1 -0
- package/dist/migration/index.d.cts +51 -0
- package/dist/migration/index.d.ts +51 -0
- package/dist/migration/index.js +3 -0
- package/dist/migration/index.js.map +1 -0
- package/dist/query-helpers-D8po5Mn-.d.cts +777 -0
- package/dist/query-helpers-DvQTA2_Z.d.ts +777 -0
- package/dist/visualization/index.cjs +485 -0
- package/dist/visualization/index.cjs.map +1 -0
- package/dist/visualization/index.d.cts +134 -0
- package/dist/visualization/index.d.ts +134 -0
- package/dist/visualization/index.js +460 -0
- package/dist/visualization/index.js.map +1 -0
- package/docker/docker-compose.template.yml +28 -0
- package/package.json +116 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { N as NeuronVisualNode, a as NeuronVisualEdge, b as NeuronNode, c as NeuronEdge } from '../edge-BzsYe2Ed.cjs';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
5
|
+
import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer.js';
|
|
6
|
+
|
|
7
|
+
interface NeuronStoryBeat {
|
|
8
|
+
id: string;
|
|
9
|
+
label: string;
|
|
10
|
+
nodeIds: string[];
|
|
11
|
+
}
|
|
12
|
+
interface StudyPathRequest {
|
|
13
|
+
fromNodeId: string;
|
|
14
|
+
toNodeId: string;
|
|
15
|
+
}
|
|
16
|
+
interface NeuronWebTheme {
|
|
17
|
+
colors: {
|
|
18
|
+
background: string;
|
|
19
|
+
domainColors: Record<string, string>;
|
|
20
|
+
defaultDomainColor: string;
|
|
21
|
+
edgeDefault: string;
|
|
22
|
+
edgeActive: string;
|
|
23
|
+
edgeSelected: string;
|
|
24
|
+
labelText: string;
|
|
25
|
+
labelBackground: string;
|
|
26
|
+
};
|
|
27
|
+
typography: {
|
|
28
|
+
labelFontFamily: string;
|
|
29
|
+
labelFontSize: number;
|
|
30
|
+
labelFontWeight: string;
|
|
31
|
+
};
|
|
32
|
+
effects: {
|
|
33
|
+
starfieldEnabled: boolean;
|
|
34
|
+
starfieldColor: string;
|
|
35
|
+
glowEnabled: boolean;
|
|
36
|
+
glowIntensity: number;
|
|
37
|
+
};
|
|
38
|
+
animation: {
|
|
39
|
+
focusDuration: number;
|
|
40
|
+
transitionDuration: number;
|
|
41
|
+
easing: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
interface NeuronWebProps {
|
|
45
|
+
graphData: {
|
|
46
|
+
nodes: NeuronVisualNode[];
|
|
47
|
+
edges: NeuronVisualEdge[];
|
|
48
|
+
storyBeats?: NeuronStoryBeat[];
|
|
49
|
+
};
|
|
50
|
+
fullHeight?: boolean;
|
|
51
|
+
isFullScreen?: boolean;
|
|
52
|
+
className?: string;
|
|
53
|
+
style?: React__default.CSSProperties;
|
|
54
|
+
isLoading?: boolean;
|
|
55
|
+
error?: string | null;
|
|
56
|
+
selectedNode?: NeuronNode | null;
|
|
57
|
+
focusNodeSlug?: string | null;
|
|
58
|
+
visibleNodeSlugs?: string[] | null;
|
|
59
|
+
onNodeClick?: (node: NeuronNode) => void;
|
|
60
|
+
onNodeDoubleClick?: (node: NeuronNode) => void;
|
|
61
|
+
onNodeHover?: (node: NeuronNode | null) => void;
|
|
62
|
+
onNodeFocused?: (node: NeuronNode) => void;
|
|
63
|
+
onEdgeClick?: (edge: NeuronEdge) => void;
|
|
64
|
+
onBackgroundClick?: () => void;
|
|
65
|
+
onCameraChange?: (position: [number, number, number]) => void;
|
|
66
|
+
studyPathRequest?: StudyPathRequest | null;
|
|
67
|
+
onStudyPathComplete?: () => void;
|
|
68
|
+
theme?: Partial<NeuronWebTheme>;
|
|
69
|
+
domainColors?: Record<string, string>;
|
|
70
|
+
renderNodeDetail?: (node: NeuronNode) => React__default.ReactNode;
|
|
71
|
+
renderEmptyState?: () => React__default.ReactNode;
|
|
72
|
+
renderLoadingState?: () => React__default.ReactNode;
|
|
73
|
+
performanceMode?: 'auto' | 'normal' | 'degraded' | 'fallback';
|
|
74
|
+
ariaLabel?: string;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
declare function NeuronWeb({ graphData, className, style, isLoading, error, renderEmptyState, renderLoadingState, ariaLabel, theme, }: NeuronWebProps): React__default.ReactElement;
|
|
78
|
+
|
|
79
|
+
interface SceneConfig {
|
|
80
|
+
backgroundColor: string;
|
|
81
|
+
cameraPosition: [number, number, number];
|
|
82
|
+
cameraTarget: [number, number, number];
|
|
83
|
+
minZoom: number;
|
|
84
|
+
maxZoom: number;
|
|
85
|
+
enableStarfield: boolean;
|
|
86
|
+
starfieldCount: number;
|
|
87
|
+
pixelRatioCap: number;
|
|
88
|
+
}
|
|
89
|
+
declare class SceneManager {
|
|
90
|
+
private container;
|
|
91
|
+
private config;
|
|
92
|
+
scene: THREE.Scene;
|
|
93
|
+
camera: THREE.PerspectiveCamera;
|
|
94
|
+
renderer: THREE.WebGLRenderer;
|
|
95
|
+
labelRenderer: CSS2DRenderer;
|
|
96
|
+
controls: OrbitControls;
|
|
97
|
+
private animationId;
|
|
98
|
+
constructor(container: HTMLElement, config: SceneConfig);
|
|
99
|
+
initialize(): void;
|
|
100
|
+
dispose(): void;
|
|
101
|
+
startAnimationLoop(): void;
|
|
102
|
+
stopAnimationLoop(): void;
|
|
103
|
+
render(): void;
|
|
104
|
+
resize: () => void;
|
|
105
|
+
updateBackground(color: string): void;
|
|
106
|
+
updateCamera(position: [number, number, number]): void;
|
|
107
|
+
getWorldPosition(screenX: number, screenY: number): THREE.Vector3;
|
|
108
|
+
screenToWorld(x: number, y: number): THREE.Vector3;
|
|
109
|
+
worldToScreen(position: THREE.Vector3): {
|
|
110
|
+
x: number;
|
|
111
|
+
y: number;
|
|
112
|
+
};
|
|
113
|
+
onContextLost: () => void;
|
|
114
|
+
onContextRestored: () => void;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
declare class ThemeEngine {
|
|
118
|
+
private theme;
|
|
119
|
+
onThemeChange: (theme: NeuronWebTheme) => void;
|
|
120
|
+
constructor(initialTheme?: Partial<NeuronWebTheme>);
|
|
121
|
+
getTheme(): NeuronWebTheme;
|
|
122
|
+
setTheme(theme: Partial<NeuronWebTheme>): void;
|
|
123
|
+
resetTheme(): void;
|
|
124
|
+
setDomainColor(domain: string, color: string): void;
|
|
125
|
+
setBackground(color: string): void;
|
|
126
|
+
setLabelStyle(style: Partial<NeuronWebTheme['typography']>): void;
|
|
127
|
+
applyPreset(preset: 'dark' | 'light' | 'custom'): void;
|
|
128
|
+
saveToStorage(): void;
|
|
129
|
+
loadFromStorage(): void;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
declare const DEFAULT_THEME: NeuronWebTheme;
|
|
133
|
+
|
|
134
|
+
export { DEFAULT_THEME, NeuronVisualEdge, NeuronVisualNode, NeuronWeb, type NeuronWebProps, type NeuronWebTheme, SceneManager, ThemeEngine };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import { N as NeuronVisualNode, a as NeuronVisualEdge, b as NeuronNode, c as NeuronEdge } from '../edge-BzsYe2Ed.js';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js';
|
|
5
|
+
import { CSS2DRenderer } from 'three/examples/jsm/renderers/CSS2DRenderer.js';
|
|
6
|
+
|
|
7
|
+
interface NeuronStoryBeat {
|
|
8
|
+
id: string;
|
|
9
|
+
label: string;
|
|
10
|
+
nodeIds: string[];
|
|
11
|
+
}
|
|
12
|
+
interface StudyPathRequest {
|
|
13
|
+
fromNodeId: string;
|
|
14
|
+
toNodeId: string;
|
|
15
|
+
}
|
|
16
|
+
interface NeuronWebTheme {
|
|
17
|
+
colors: {
|
|
18
|
+
background: string;
|
|
19
|
+
domainColors: Record<string, string>;
|
|
20
|
+
defaultDomainColor: string;
|
|
21
|
+
edgeDefault: string;
|
|
22
|
+
edgeActive: string;
|
|
23
|
+
edgeSelected: string;
|
|
24
|
+
labelText: string;
|
|
25
|
+
labelBackground: string;
|
|
26
|
+
};
|
|
27
|
+
typography: {
|
|
28
|
+
labelFontFamily: string;
|
|
29
|
+
labelFontSize: number;
|
|
30
|
+
labelFontWeight: string;
|
|
31
|
+
};
|
|
32
|
+
effects: {
|
|
33
|
+
starfieldEnabled: boolean;
|
|
34
|
+
starfieldColor: string;
|
|
35
|
+
glowEnabled: boolean;
|
|
36
|
+
glowIntensity: number;
|
|
37
|
+
};
|
|
38
|
+
animation: {
|
|
39
|
+
focusDuration: number;
|
|
40
|
+
transitionDuration: number;
|
|
41
|
+
easing: string;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
interface NeuronWebProps {
|
|
45
|
+
graphData: {
|
|
46
|
+
nodes: NeuronVisualNode[];
|
|
47
|
+
edges: NeuronVisualEdge[];
|
|
48
|
+
storyBeats?: NeuronStoryBeat[];
|
|
49
|
+
};
|
|
50
|
+
fullHeight?: boolean;
|
|
51
|
+
isFullScreen?: boolean;
|
|
52
|
+
className?: string;
|
|
53
|
+
style?: React__default.CSSProperties;
|
|
54
|
+
isLoading?: boolean;
|
|
55
|
+
error?: string | null;
|
|
56
|
+
selectedNode?: NeuronNode | null;
|
|
57
|
+
focusNodeSlug?: string | null;
|
|
58
|
+
visibleNodeSlugs?: string[] | null;
|
|
59
|
+
onNodeClick?: (node: NeuronNode) => void;
|
|
60
|
+
onNodeDoubleClick?: (node: NeuronNode) => void;
|
|
61
|
+
onNodeHover?: (node: NeuronNode | null) => void;
|
|
62
|
+
onNodeFocused?: (node: NeuronNode) => void;
|
|
63
|
+
onEdgeClick?: (edge: NeuronEdge) => void;
|
|
64
|
+
onBackgroundClick?: () => void;
|
|
65
|
+
onCameraChange?: (position: [number, number, number]) => void;
|
|
66
|
+
studyPathRequest?: StudyPathRequest | null;
|
|
67
|
+
onStudyPathComplete?: () => void;
|
|
68
|
+
theme?: Partial<NeuronWebTheme>;
|
|
69
|
+
domainColors?: Record<string, string>;
|
|
70
|
+
renderNodeDetail?: (node: NeuronNode) => React__default.ReactNode;
|
|
71
|
+
renderEmptyState?: () => React__default.ReactNode;
|
|
72
|
+
renderLoadingState?: () => React__default.ReactNode;
|
|
73
|
+
performanceMode?: 'auto' | 'normal' | 'degraded' | 'fallback';
|
|
74
|
+
ariaLabel?: string;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
declare function NeuronWeb({ graphData, className, style, isLoading, error, renderEmptyState, renderLoadingState, ariaLabel, theme, }: NeuronWebProps): React__default.ReactElement;
|
|
78
|
+
|
|
79
|
+
interface SceneConfig {
|
|
80
|
+
backgroundColor: string;
|
|
81
|
+
cameraPosition: [number, number, number];
|
|
82
|
+
cameraTarget: [number, number, number];
|
|
83
|
+
minZoom: number;
|
|
84
|
+
maxZoom: number;
|
|
85
|
+
enableStarfield: boolean;
|
|
86
|
+
starfieldCount: number;
|
|
87
|
+
pixelRatioCap: number;
|
|
88
|
+
}
|
|
89
|
+
declare class SceneManager {
|
|
90
|
+
private container;
|
|
91
|
+
private config;
|
|
92
|
+
scene: THREE.Scene;
|
|
93
|
+
camera: THREE.PerspectiveCamera;
|
|
94
|
+
renderer: THREE.WebGLRenderer;
|
|
95
|
+
labelRenderer: CSS2DRenderer;
|
|
96
|
+
controls: OrbitControls;
|
|
97
|
+
private animationId;
|
|
98
|
+
constructor(container: HTMLElement, config: SceneConfig);
|
|
99
|
+
initialize(): void;
|
|
100
|
+
dispose(): void;
|
|
101
|
+
startAnimationLoop(): void;
|
|
102
|
+
stopAnimationLoop(): void;
|
|
103
|
+
render(): void;
|
|
104
|
+
resize: () => void;
|
|
105
|
+
updateBackground(color: string): void;
|
|
106
|
+
updateCamera(position: [number, number, number]): void;
|
|
107
|
+
getWorldPosition(screenX: number, screenY: number): THREE.Vector3;
|
|
108
|
+
screenToWorld(x: number, y: number): THREE.Vector3;
|
|
109
|
+
worldToScreen(position: THREE.Vector3): {
|
|
110
|
+
x: number;
|
|
111
|
+
y: number;
|
|
112
|
+
};
|
|
113
|
+
onContextLost: () => void;
|
|
114
|
+
onContextRestored: () => void;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
declare class ThemeEngine {
|
|
118
|
+
private theme;
|
|
119
|
+
onThemeChange: (theme: NeuronWebTheme) => void;
|
|
120
|
+
constructor(initialTheme?: Partial<NeuronWebTheme>);
|
|
121
|
+
getTheme(): NeuronWebTheme;
|
|
122
|
+
setTheme(theme: Partial<NeuronWebTheme>): void;
|
|
123
|
+
resetTheme(): void;
|
|
124
|
+
setDomainColor(domain: string, color: string): void;
|
|
125
|
+
setBackground(color: string): void;
|
|
126
|
+
setLabelStyle(style: Partial<NeuronWebTheme['typography']>): void;
|
|
127
|
+
applyPreset(preset: 'dark' | 'light' | 'custom'): void;
|
|
128
|
+
saveToStorage(): void;
|
|
129
|
+
loadFromStorage(): void;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
declare const DEFAULT_THEME: NeuronWebTheme;
|
|
133
|
+
|
|
134
|
+
export { DEFAULT_THEME, NeuronVisualEdge, NeuronVisualNode, NeuronWeb, type NeuronWebProps, type NeuronWebTheme, SceneManager, ThemeEngine };
|