@omiron33/omi-neuron-web 0.1.0 → 0.1.2
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 +6 -2
- package/dist/NeuronWeb-DG5ICk2K.d.cts +113 -0
- package/dist/NeuronWeb-DbcYoeQE.d.ts +113 -0
- package/dist/api/index.cjs +32 -32
- package/dist/api/index.js +1 -1
- package/dist/{chunk-XNR42GCJ.js → chunk-6LW4KNAU.js} +2 -2
- package/dist/{chunk-XNR42GCJ.js.map → chunk-6LW4KNAU.js.map} +1 -1
- package/dist/chunk-GPDX3O37.js +1194 -0
- package/dist/chunk-GPDX3O37.js.map +1 -0
- package/dist/chunk-KC7V76I3.cjs +1220 -0
- package/dist/chunk-KC7V76I3.cjs.map +1 -0
- package/dist/{chunk-RTSFO7BW.cjs → chunk-OBZGUYGW.cjs} +2 -2
- package/dist/{chunk-RTSFO7BW.cjs.map → chunk-OBZGUYGW.cjs.map} +1 -1
- package/dist/cli/index.cjs +4 -4
- package/dist/cli/index.cjs.map +1 -1
- package/dist/cli/index.js +4 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/index.cjs +51 -46
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/visualization/index.cjs +21 -478
- package/dist/visualization/index.cjs.map +1 -1
- package/dist/visualization/index.d.cts +29 -77
- package/dist/visualization/index.d.ts +29 -77
- package/dist/visualization/index.js +1 -458
- package/dist/visualization/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkKC7V76I3_cjs = require('./chunk-KC7V76I3.cjs');
|
|
4
|
+
var chunkOBZGUYGW_cjs = require('./chunk-OBZGUYGW.cjs');
|
|
4
5
|
var chunkFXKXMSLY_cjs = require('./chunk-FXKXMSLY.cjs');
|
|
5
6
|
var chunkCOO66N7H_cjs = require('./chunk-COO66N7H.cjs');
|
|
6
7
|
var chunkBSOSHBDR_cjs = require('./chunk-BSOSHBDR.cjs');
|
|
@@ -96,7 +97,7 @@ var DataProcessor = class {
|
|
|
96
97
|
content,
|
|
97
98
|
metadata
|
|
98
99
|
};
|
|
99
|
-
return
|
|
100
|
+
return chunkOBZGUYGW_cjs.nodeCreateSchema.parse(node);
|
|
100
101
|
}
|
|
101
102
|
processBatch(items) {
|
|
102
103
|
const nodes = [];
|
|
@@ -560,11 +561,11 @@ var NeuronApiClient = class {
|
|
|
560
561
|
var buildDefaultConfig = (overrides) => ({
|
|
561
562
|
instance: {
|
|
562
563
|
name: "default",
|
|
563
|
-
version: "0.1.
|
|
564
|
+
version: "0.1.1",
|
|
564
565
|
repoName: "omi-neuron-web"
|
|
565
566
|
},
|
|
566
|
-
visualization: { ...
|
|
567
|
-
analysis: { ...
|
|
567
|
+
visualization: { ...chunkOBZGUYGW_cjs.DEFAULT_VISUALIZATION_SETTINGS, ...overrides?.visualization ?? {} },
|
|
568
|
+
analysis: { ...chunkOBZGUYGW_cjs.DEFAULT_ANALYSIS_SETTINGS, ...overrides?.analysis ?? {} },
|
|
568
569
|
nodeTypes: overrides?.nodeTypes ?? [],
|
|
569
570
|
domains: overrides?.domains ?? [],
|
|
570
571
|
relationshipTypes: overrides?.relationshipTypes ?? [],
|
|
@@ -651,167 +652,171 @@ function NeuronWebProvider({ children, config }) {
|
|
|
651
652
|
}
|
|
652
653
|
|
|
653
654
|
// src/index.ts
|
|
654
|
-
var VERSION = "0.1.
|
|
655
|
+
var VERSION = "0.1.1";
|
|
655
656
|
|
|
657
|
+
Object.defineProperty(exports, "NeuronWeb", {
|
|
658
|
+
enumerable: true,
|
|
659
|
+
get: function () { return chunkKC7V76I3_cjs.NeuronWeb; }
|
|
660
|
+
});
|
|
656
661
|
Object.defineProperty(exports, "DEFAULT_ANALYSIS_SETTINGS", {
|
|
657
662
|
enumerable: true,
|
|
658
|
-
get: function () { return
|
|
663
|
+
get: function () { return chunkOBZGUYGW_cjs.DEFAULT_ANALYSIS_SETTINGS; }
|
|
659
664
|
});
|
|
660
665
|
Object.defineProperty(exports, "DEFAULT_VISUALIZATION_SETTINGS", {
|
|
661
666
|
enumerable: true,
|
|
662
|
-
get: function () { return
|
|
667
|
+
get: function () { return chunkOBZGUYGW_cjs.DEFAULT_VISUALIZATION_SETTINGS; }
|
|
663
668
|
});
|
|
664
669
|
Object.defineProperty(exports, "ScoringEngine", {
|
|
665
670
|
enumerable: true,
|
|
666
|
-
get: function () { return
|
|
671
|
+
get: function () { return chunkOBZGUYGW_cjs.ScoringEngine; }
|
|
667
672
|
});
|
|
668
673
|
Object.defineProperty(exports, "analysisOptionsSchema", {
|
|
669
674
|
enumerable: true,
|
|
670
|
-
get: function () { return
|
|
675
|
+
get: function () { return chunkOBZGUYGW_cjs.analysisOptionsSchema; }
|
|
671
676
|
});
|
|
672
677
|
Object.defineProperty(exports, "analysisRequestSchema", {
|
|
673
678
|
enumerable: true,
|
|
674
|
-
get: function () { return
|
|
679
|
+
get: function () { return chunkOBZGUYGW_cjs.analysisRequestSchema; }
|
|
675
680
|
});
|
|
676
681
|
Object.defineProperty(exports, "analysisSettingsSchema", {
|
|
677
682
|
enumerable: true,
|
|
678
|
-
get: function () { return
|
|
683
|
+
get: function () { return chunkOBZGUYGW_cjs.analysisSettingsSchema; }
|
|
679
684
|
});
|
|
680
685
|
Object.defineProperty(exports, "buildDelete", {
|
|
681
686
|
enumerable: true,
|
|
682
|
-
get: function () { return
|
|
687
|
+
get: function () { return chunkOBZGUYGW_cjs.buildDelete; }
|
|
683
688
|
});
|
|
684
689
|
Object.defineProperty(exports, "buildInsert", {
|
|
685
690
|
enumerable: true,
|
|
686
|
-
get: function () { return
|
|
691
|
+
get: function () { return chunkOBZGUYGW_cjs.buildInsert; }
|
|
687
692
|
});
|
|
688
693
|
Object.defineProperty(exports, "buildSelect", {
|
|
689
694
|
enumerable: true,
|
|
690
|
-
get: function () { return
|
|
695
|
+
get: function () { return chunkOBZGUYGW_cjs.buildSelect; }
|
|
691
696
|
});
|
|
692
697
|
Object.defineProperty(exports, "buildUpdate", {
|
|
693
698
|
enumerable: true,
|
|
694
|
-
get: function () { return
|
|
699
|
+
get: function () { return chunkOBZGUYGW_cjs.buildUpdate; }
|
|
695
700
|
});
|
|
696
701
|
Object.defineProperty(exports, "buildWhereClause", {
|
|
697
702
|
enumerable: true,
|
|
698
|
-
get: function () { return
|
|
703
|
+
get: function () { return chunkOBZGUYGW_cjs.buildWhereClause; }
|
|
699
704
|
});
|
|
700
705
|
Object.defineProperty(exports, "createDatabase", {
|
|
701
706
|
enumerable: true,
|
|
702
|
-
get: function () { return
|
|
707
|
+
get: function () { return chunkOBZGUYGW_cjs.createDatabase; }
|
|
703
708
|
});
|
|
704
709
|
Object.defineProperty(exports, "createDatabaseFromEnv", {
|
|
705
710
|
enumerable: true,
|
|
706
|
-
get: function () { return
|
|
711
|
+
get: function () { return chunkOBZGUYGW_cjs.createDatabaseFromEnv; }
|
|
707
712
|
});
|
|
708
713
|
Object.defineProperty(exports, "databaseSettingsSchema", {
|
|
709
714
|
enumerable: true,
|
|
710
|
-
get: function () { return
|
|
715
|
+
get: function () { return chunkOBZGUYGW_cjs.databaseSettingsSchema; }
|
|
711
716
|
});
|
|
712
717
|
Object.defineProperty(exports, "domainConfigSchema", {
|
|
713
718
|
enumerable: true,
|
|
714
|
-
get: function () { return
|
|
719
|
+
get: function () { return chunkOBZGUYGW_cjs.domainConfigSchema; }
|
|
715
720
|
});
|
|
716
721
|
Object.defineProperty(exports, "edgeCreateSchema", {
|
|
717
722
|
enumerable: true,
|
|
718
|
-
get: function () { return
|
|
723
|
+
get: function () { return chunkOBZGUYGW_cjs.edgeCreateSchema; }
|
|
719
724
|
});
|
|
720
725
|
Object.defineProperty(exports, "edgeEvidenceSchema", {
|
|
721
726
|
enumerable: true,
|
|
722
|
-
get: function () { return
|
|
727
|
+
get: function () { return chunkOBZGUYGW_cjs.edgeEvidenceSchema; }
|
|
723
728
|
});
|
|
724
729
|
Object.defineProperty(exports, "edgeFilterSchema", {
|
|
725
730
|
enumerable: true,
|
|
726
|
-
get: function () { return
|
|
731
|
+
get: function () { return chunkOBZGUYGW_cjs.edgeFilterSchema; }
|
|
727
732
|
});
|
|
728
733
|
Object.defineProperty(exports, "edgeUpdateSchema", {
|
|
729
734
|
enumerable: true,
|
|
730
|
-
get: function () { return
|
|
735
|
+
get: function () { return chunkOBZGUYGW_cjs.edgeUpdateSchema; }
|
|
731
736
|
});
|
|
732
737
|
Object.defineProperty(exports, "expandGraphRequestSchema", {
|
|
733
738
|
enumerable: true,
|
|
734
|
-
get: function () { return
|
|
739
|
+
get: function () { return chunkOBZGUYGW_cjs.expandGraphRequestSchema; }
|
|
735
740
|
});
|
|
736
741
|
Object.defineProperty(exports, "findPathRequestSchema", {
|
|
737
742
|
enumerable: true,
|
|
738
|
-
get: function () { return
|
|
743
|
+
get: function () { return chunkOBZGUYGW_cjs.findPathRequestSchema; }
|
|
739
744
|
});
|
|
740
745
|
Object.defineProperty(exports, "findSimilarRequestSchema", {
|
|
741
746
|
enumerable: true,
|
|
742
|
-
get: function () { return
|
|
747
|
+
get: function () { return chunkOBZGUYGW_cjs.findSimilarRequestSchema; }
|
|
743
748
|
});
|
|
744
749
|
Object.defineProperty(exports, "getDatabase", {
|
|
745
750
|
enumerable: true,
|
|
746
|
-
get: function () { return
|
|
751
|
+
get: function () { return chunkOBZGUYGW_cjs.getDatabase; }
|
|
747
752
|
});
|
|
748
753
|
Object.defineProperty(exports, "getGraphParamsSchema", {
|
|
749
754
|
enumerable: true,
|
|
750
|
-
get: function () { return
|
|
755
|
+
get: function () { return chunkOBZGUYGW_cjs.getGraphParamsSchema; }
|
|
751
756
|
});
|
|
752
757
|
Object.defineProperty(exports, "listEdgesParamsSchema", {
|
|
753
758
|
enumerable: true,
|
|
754
|
-
get: function () { return
|
|
759
|
+
get: function () { return chunkOBZGUYGW_cjs.listEdgesParamsSchema; }
|
|
755
760
|
});
|
|
756
761
|
Object.defineProperty(exports, "listNodesParamsSchema", {
|
|
757
762
|
enumerable: true,
|
|
758
|
-
get: function () { return
|
|
763
|
+
get: function () { return chunkOBZGUYGW_cjs.listNodesParamsSchema; }
|
|
759
764
|
});
|
|
760
765
|
Object.defineProperty(exports, "neuronConfigSchema", {
|
|
761
766
|
enumerable: true,
|
|
762
|
-
get: function () { return
|
|
767
|
+
get: function () { return chunkOBZGUYGW_cjs.neuronConfigSchema; }
|
|
763
768
|
});
|
|
764
769
|
Object.defineProperty(exports, "neuronSettingsSchema", {
|
|
765
770
|
enumerable: true,
|
|
766
|
-
get: function () { return
|
|
771
|
+
get: function () { return chunkOBZGUYGW_cjs.neuronSettingsSchema; }
|
|
767
772
|
});
|
|
768
773
|
Object.defineProperty(exports, "neuronSettingsUpdateSchema", {
|
|
769
774
|
enumerable: true,
|
|
770
|
-
get: function () { return
|
|
775
|
+
get: function () { return chunkOBZGUYGW_cjs.neuronSettingsUpdateSchema; }
|
|
771
776
|
});
|
|
772
777
|
Object.defineProperty(exports, "nodeBatchCreateSchema", {
|
|
773
778
|
enumerable: true,
|
|
774
|
-
get: function () { return
|
|
779
|
+
get: function () { return chunkOBZGUYGW_cjs.nodeBatchCreateSchema; }
|
|
775
780
|
});
|
|
776
781
|
Object.defineProperty(exports, "nodeCreateSchema", {
|
|
777
782
|
enumerable: true,
|
|
778
|
-
get: function () { return
|
|
783
|
+
get: function () { return chunkOBZGUYGW_cjs.nodeCreateSchema; }
|
|
779
784
|
});
|
|
780
785
|
Object.defineProperty(exports, "nodeFilterSchema", {
|
|
781
786
|
enumerable: true,
|
|
782
|
-
get: function () { return
|
|
787
|
+
get: function () { return chunkOBZGUYGW_cjs.nodeFilterSchema; }
|
|
783
788
|
});
|
|
784
789
|
Object.defineProperty(exports, "nodeTierSchema", {
|
|
785
790
|
enumerable: true,
|
|
786
|
-
get: function () { return
|
|
791
|
+
get: function () { return chunkOBZGUYGW_cjs.nodeTierSchema; }
|
|
787
792
|
});
|
|
788
793
|
Object.defineProperty(exports, "nodeTypeConfigSchema", {
|
|
789
794
|
enumerable: true,
|
|
790
|
-
get: function () { return
|
|
795
|
+
get: function () { return chunkOBZGUYGW_cjs.nodeTypeConfigSchema; }
|
|
791
796
|
});
|
|
792
797
|
Object.defineProperty(exports, "nodeUpdateSchema", {
|
|
793
798
|
enumerable: true,
|
|
794
|
-
get: function () { return
|
|
799
|
+
get: function () { return chunkOBZGUYGW_cjs.nodeUpdateSchema; }
|
|
795
800
|
});
|
|
796
801
|
Object.defineProperty(exports, "paginationSchema", {
|
|
797
802
|
enumerable: true,
|
|
798
|
-
get: function () { return
|
|
803
|
+
get: function () { return chunkOBZGUYGW_cjs.paginationSchema; }
|
|
799
804
|
});
|
|
800
805
|
Object.defineProperty(exports, "relationshipTypeConfigSchema", {
|
|
801
806
|
enumerable: true,
|
|
802
|
-
get: function () { return
|
|
807
|
+
get: function () { return chunkOBZGUYGW_cjs.relationshipTypeConfigSchema; }
|
|
803
808
|
});
|
|
804
809
|
Object.defineProperty(exports, "resetDatabaseSingleton", {
|
|
805
810
|
enumerable: true,
|
|
806
|
-
get: function () { return
|
|
811
|
+
get: function () { return chunkOBZGUYGW_cjs.resetDatabaseSingleton; }
|
|
807
812
|
});
|
|
808
813
|
Object.defineProperty(exports, "semanticSearchRequestSchema", {
|
|
809
814
|
enumerable: true,
|
|
810
|
-
get: function () { return
|
|
815
|
+
get: function () { return chunkOBZGUYGW_cjs.semanticSearchRequestSchema; }
|
|
811
816
|
});
|
|
812
817
|
Object.defineProperty(exports, "visualizationSettingsSchema", {
|
|
813
818
|
enumerable: true,
|
|
814
|
-
get: function () { return
|
|
819
|
+
get: function () { return chunkOBZGUYGW_cjs.visualizationSettingsSchema; }
|
|
815
820
|
});
|
|
816
821
|
Object.defineProperty(exports, "DockerManager", {
|
|
817
822
|
enumerable: true,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/schemas/cluster.ts","../src/core/events/helpers.ts","../src/core/events/middleware/logging.ts","../src/core/events/middleware/validation.ts","../src/core/analysis/data-processor.ts","../src/config/index.ts","../src/react/context.ts","../src/react/hooks/useNeuronContext.ts","../src/react/hooks/useNeuronGraph.ts","../src/react/hooks/useNeuronNodes.ts","../src/react/hooks/useNeuronAnalysis.ts","../src/react/hooks/useNeuronSettings.ts","../src/react/hooks/useNeuronSearch.ts","../src/react/hooks/useNeuronEvents.ts","../src/react/api-client.ts","../src/react/NeuronWebProvider.tsx","../src/index.ts"],"names":["z","createEvent","nodeCreateSchema","slugify","createContext","useContext","useState","useCallback","useEffect","DEFAULT_VISUALIZATION_SETTINGS","DEFAULT_ANALYSIS_SETTINGS","useMemo","EventBus"],"mappings":"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","file":"index.cjs","sourcesContent":["import { z } from 'zod';\n\nexport const clusteringConfigSchema = z.object({\n algorithm: z.enum(['kmeans', 'dbscan', 'hierarchical']),\n clusterCount: z.coerce.number().int().min(1).optional(),\n minClusterSize: z.coerce.number().int().min(1).optional(),\n similarityThreshold: z.coerce.number().min(0).max(1).optional(),\n epsilon: z.coerce.number().min(0).optional(),\n minSamples: z.coerce.number().int().min(1).optional(),\n});\n\nexport const clusterCreateSchema = z.object({\n label: z.string().min(1).max(255),\n clusterType: z.string().max(100).optional(),\n centroid: z.array(z.number()).optional(),\n memberCount: z.number().int().min(0).optional(),\n avgSimilarity: z.number().min(0).max(1).optional(),\n cohesion: z.number().min(0).max(1).optional(),\n description: z.string().optional(),\n keywords: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const clusterUpdateSchema = clusterCreateSchema.partial();\n\nexport type ClusteringConfigInput = z.infer<typeof clusteringConfigSchema>;\nexport type ClusterCreateInput = z.infer<typeof clusterCreateSchema>;\nexport type ClusterUpdateInput = z.infer<typeof clusterUpdateSchema>;\n","import type {\n AnalysisCompletedEventPayload,\n AnalysisFailedEventPayload,\n AnalysisProgressEventPayload,\n AnalysisStartedEventPayload,\n EdgeCreatedEventPayload,\n EdgeDeletedEventPayload,\n EdgeUpdatedEventPayload,\n EventSource,\n NeuronEvent,\n NeuronEventType,\n NodeBatchCreatedEventPayload,\n NodeCreatedEventPayload,\n NodeDeletedEventPayload,\n NodeUpdatedEventPayload,\n} from '../types/events';\nimport { createEvent } from './event-bus';\n\nexport const createNodeEvent = (\n type: 'node:created' | 'node:updated' | 'node:deleted' | 'node:batch_created',\n payload:\n | NodeCreatedEventPayload\n | NodeUpdatedEventPayload\n | NodeDeletedEventPayload\n | NodeBatchCreatedEventPayload,\n source: EventSource = 'system'\n): NeuronEvent => createEvent(type, payload, source);\n\nexport const createEdgeEvent = (\n type: 'edge:created' | 'edge:updated' | 'edge:deleted',\n payload: EdgeCreatedEventPayload | EdgeUpdatedEventPayload | EdgeDeletedEventPayload,\n source: EventSource = 'system'\n): NeuronEvent => createEvent(type, payload, source);\n\nexport const createAnalysisEvent = (\n type: 'analysis:started' | 'analysis:progress' | 'analysis:completed' | 'analysis:failed',\n payload:\n | AnalysisStartedEventPayload\n | AnalysisProgressEventPayload\n | AnalysisCompletedEventPayload\n | AnalysisFailedEventPayload,\n source: EventSource = 'analysis'\n): NeuronEvent => createEvent(type, payload, source);\n\nexport const createGenericEvent = <T>(\n type: NeuronEventType,\n payload: T,\n source: EventSource = 'system'\n): NeuronEvent<T> => createEvent(type, payload, source);\n","import type { EventMiddleware } from '../event-bus';\n\nexport const loggingMiddleware: EventMiddleware = (event, next) => {\n // eslint-disable-next-line no-console\n console.debug(`[omi-neuron:event] ${event.type}`, event);\n void next();\n};\n","import type { EventMiddleware } from '../event-bus';\n\nexport const validationMiddleware: EventMiddleware = (event, next) => {\n if (!event.type) {\n throw new Error('Event missing type');\n }\n if (!event.timestamp) {\n throw new Error('Event missing timestamp');\n }\n return next();\n};\n","import slugify from 'slugify';\nimport { nodeCreateSchema } from '../schemas/node';\nimport type { NeuronNodeCreate } from '../types/node';\n\nexport interface ProcessingOptions {\n skipDuplicates?: boolean;\n updateOnConflict?: boolean;\n defaultNodeType?: string;\n defaultDomain?: string;\n contentFields?: string[];\n labelField?: string;\n slugField?: string;\n metadataFields?: string[];\n}\n\nconst stripHtml = (value: string) => value.replace(/<[^>]+>/g, ' ');\n\nconst normalizeValue = (value: unknown): string | undefined => {\n if (value === null || value === undefined) return undefined;\n if (value instanceof Date) return value.toISOString();\n if (Array.isArray(value)) return value.map((item) => normalizeValue(item)).filter(Boolean).join(' ');\n if (typeof value === 'object') return JSON.stringify(value);\n return String(value);\n};\n\nconst flattenObject = (obj: Record<string, unknown>, prefix = ''): Record<string, unknown> => {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n const nextKey = prefix ? `${prefix}.${key}` : key;\n if (value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)) {\n Object.assign(result, flattenObject(value as Record<string, unknown>, nextKey));\n } else {\n result[nextKey] = value;\n }\n }\n return result;\n};\n\nexport class DataProcessor {\n constructor(private options: ProcessingOptions = {}) {}\n\n processItem(item: Record<string, unknown>): NeuronNodeCreate {\n const flattened = flattenObject(item);\n const labelField = this.options.labelField ?? 'label';\n const label = normalizeValue(flattened[labelField]) ?? 'Untitled';\n\n const slugField = this.options.slugField;\n const slug = slugField ? normalizeValue(flattened[slugField]) : undefined;\n\n const content = this.extractContent(flattened);\n const metadata = this.extractMetadata(flattened);\n\n const node: NeuronNodeCreate = {\n slug,\n label,\n nodeType: this.options.defaultNodeType,\n domain: this.options.defaultDomain,\n content,\n metadata,\n };\n\n return nodeCreateSchema.parse(node);\n }\n\n processBatch(items: Record<string, unknown>[]): {\n nodes: NeuronNodeCreate[];\n errors: Array<{ index: number; error: string }>;\n } {\n const nodes: NeuronNodeCreate[] = [];\n const errors: Array<{ index: number; error: string }> = [];\n\n items.forEach((item, index) => {\n try {\n nodes.push(this.processItem(item));\n } catch (error) {\n errors.push({\n index,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n });\n\n return { nodes, errors };\n }\n\n processJSON(json: string): NeuronNodeCreate[] {\n const parsed = JSON.parse(json);\n if (Array.isArray(parsed)) {\n return this.processBatch(parsed).nodes;\n }\n return [this.processItem(parsed)];\n }\n\n processCSV(csv: string): NeuronNodeCreate[] {\n const lines = csv.trim().split(/\\r?\\n/);\n if (lines.length === 0) return [];\n const headers = lines[0].split(',').map((h) => h.trim());\n const items = lines.slice(1).map((line) => {\n const values = line.split(',');\n const item: Record<string, unknown> = {};\n headers.forEach((header, idx) => {\n item[header] = values[idx]?.trim();\n });\n return item;\n });\n return this.processBatch(items).nodes;\n }\n\n generateSlug(label: string, existingSlugs: Set<string> = new Set()): string {\n const base = slugify(label, { lower: true, strict: true, trim: true }).slice(0, 255);\n if (!existingSlugs.has(base)) return base;\n let suffix = 1;\n let slug = `${base}-${suffix}`;\n while (existingSlugs.has(slug)) {\n suffix += 1;\n slug = `${base}-${suffix}`;\n }\n return slug;\n }\n\n extractContent(item: Record<string, unknown>): string {\n const fields = this.options.contentFields ?? ['label', 'summary', 'description', 'content'];\n const parts = fields\n .map((field) => normalizeValue(item[field]))\n .filter((value): value is string => Boolean(value));\n const joined = parts.join(' ');\n return stripHtml(joined).replace(/\\s+/g, ' ').trim();\n }\n\n detectDuplicates(nodes: NeuronNodeCreate[]): {\n unique: NeuronNodeCreate[];\n duplicates: Array<{ node: NeuronNodeCreate; reason: string }>;\n } {\n const seen = new Set<string>();\n const unique: NeuronNodeCreate[] = [];\n const duplicates: Array<{ node: NeuronNodeCreate; reason: string }> = [];\n\n nodes.forEach((node) => {\n const slug = node.slug ?? this.generateSlug(node.label, seen);\n if (seen.has(slug)) {\n duplicates.push({ node, reason: `Duplicate slug: ${slug}` });\n return;\n }\n seen.add(slug);\n unique.push({ ...node, slug });\n });\n\n return { unique, duplicates };\n }\n\n private extractMetadata(item: Record<string, unknown>): Record<string, unknown> | undefined {\n if (!this.options.metadataFields?.length) return undefined;\n const metadata: Record<string, unknown> = {};\n this.options.metadataFields.forEach((field) => {\n if (field in item) {\n metadata[field] = item[field];\n }\n });\n return Object.keys(metadata).length > 0 ? metadata : undefined;\n }\n}\n","import type { NeuronConfig } from '../core/types/settings';\n\nexport const defineNeuronConfig = (config: NeuronConfig): NeuronConfig => config;\n","import { createContext } from 'react';\nimport type { NeuronSettings, NeuronConfig } from '../core/types/settings';\nimport type { NeuronEvent } from '../core/types/events';\nimport type { EventBus } from '../core/events/event-bus';\nimport type { NeuronApiClient } from './api-client';\n\nexport interface ErrorContext {\n message: string;\n}\n\nexport interface NeuronContextValue {\n config: NeuronConfig;\n settings: NeuronSettings;\n api: NeuronApiClient;\n events: EventBus;\n isInitialized: boolean;\n error: Error | null;\n updateSettings: (settings: Partial<NeuronSettings>) => Promise<void>;\n resetSettings: () => Promise<void>;\n onEvent?: (event: NeuronEvent) => void;\n onError?: (error: Error, context: ErrorContext) => void;\n}\n\nexport const NeuronContext = createContext<NeuronContextValue | null>(null);\n","import { useContext } from 'react';\nimport { NeuronContext } from '../context';\n\nexport function useNeuronContext() {\n const context = useContext(NeuronContext);\n if (!context) {\n throw new Error('useNeuronContext must be used within NeuronWebProvider');\n }\n return context;\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport type {\n GraphFilters,\n NeuronVisualCluster,\n NeuronVisualEdge,\n NeuronVisualNode,\n} from '../../core/types';\nimport type { GetGraphParams, FindPathResponse } from '../../core/types/api';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport interface UseNeuronGraphOptions {\n domains?: string[];\n nodeTypes?: string[];\n minEdgeStrength?: number;\n autoRefresh?: boolean;\n refreshInterval?: number;\n}\n\nexport function useNeuronGraph(options?: UseNeuronGraphOptions) {\n const { api } = useNeuronContext();\n const [nodes, setNodes] = useState<NeuronVisualNode[]>([]);\n const [edges, setEdges] = useState<NeuronVisualEdge[]>([]);\n const [clusters, setClusters] = useState<NeuronVisualCluster[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [filters, setFilters] = useState<GraphFilters>({});\n const [selectedNode, setSelectedNode] = useState<string | null>(null);\n\n const fetchGraph = useCallback(async () => {\n setIsLoading(true);\n try {\n const params: GetGraphParams = {\n domains: options?.domains,\n nodeTypes: options?.nodeTypes,\n minEdgeStrength: options?.minEdgeStrength,\n };\n const response = await api.graph.get(params);\n setNodes(response.nodes);\n setEdges(response.edges);\n setClusters(response.clusters ?? []);\n setError(null);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsLoading(false);\n }\n }, [api, options]);\n\n useEffect(() => {\n void fetchGraph();\n }, [fetchGraph]);\n\n const expandFromNode = async (nodeId: string, depth = 1) => {\n const response = await api.graph.expand({ fromNodeIds: [nodeId], depth, direction: 'both' });\n setNodes(response.nodes);\n setEdges(response.edges);\n };\n\n const findPath = async (fromId: string, toId: string): Promise<FindPathResponse['paths'][number]> => {\n const response = await api.graph.findPath({ fromNodeId: fromId, toNodeId: toId });\n return response.paths[0];\n };\n\n return {\n nodes,\n edges,\n clusters,\n isLoading,\n error,\n filters,\n setFilters: (next: Partial<GraphFilters>) => setFilters((prev) => ({ ...prev, ...next })),\n clearFilters: () => setFilters({}),\n selectedNode: selectedNode ? nodes.find((node) => node.id === selectedNode) ?? null : null,\n selectNode: (nodeId: string | null) => setSelectedNode(nodeId),\n clearSelection: () => setSelectedNode(null),\n refetch: fetchGraph,\n expandFromNode,\n findPath,\n };\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport type { ListNodesParams, NeuronNode, NeuronNodeCreate, NeuronNodeUpdate } from '../../core/types';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport interface UseNeuronNodesOptions {\n initialFilters?: ListNodesParams;\n pageSize?: number;\n}\n\nexport function useNeuronNodes(options?: UseNeuronNodesOptions) {\n const { api } = useNeuronContext();\n const [nodes, setNodes] = useState<NeuronNode[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [page, setPage] = useState(1);\n const [totalPages, setTotalPages] = useState(1);\n\n const fetchNodes = useCallback(async () => {\n setIsLoading(true);\n try {\n const response = await api.nodes.list({\n ...options?.initialFilters,\n page,\n limit: options?.pageSize ?? 50,\n });\n setNodes(response.nodes);\n setTotalPages(response.pagination.totalPages ?? 1);\n setError(null);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsLoading(false);\n }\n }, [api, options, page]);\n\n useEffect(() => {\n void fetchNodes();\n }, [fetchNodes]);\n\n return {\n nodes,\n isLoading,\n error,\n createNode: async (data: NeuronNodeCreate) => {\n const response = await api.nodes.create({ nodes: [data] });\n await fetchNodes();\n return response.created[0];\n },\n updateNode: async (id: string, data: NeuronNodeUpdate) => {\n const updated = await api.nodes.update(id, data);\n await fetchNodes();\n return updated as NeuronNode;\n },\n deleteNode: async (id: string) => {\n await api.nodes.delete(id);\n await fetchNodes();\n },\n batchCreate: async (nodesInput: NeuronNodeCreate[]) => {\n const response = await api.nodes.create({ nodes: nodesInput });\n await fetchNodes();\n return response.created;\n },\n search: async (query: string) => {\n const response = await api.nodes.list({ search: query });\n setNodes(response.nodes);\n },\n pagination: {\n page,\n totalPages,\n hasNext: page < totalPages,\n hasPrev: page > 1,\n },\n setPage,\n nextPage: () => setPage((prev) => Math.min(prev + 1, totalPages)),\n prevPage: () => setPage((prev) => Math.max(prev - 1, 1)),\n };\n}\n","import { useState } from 'react';\nimport type { AnalysisRequest, AnalysisResponse, AnalysisRun } from '../../core/types';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport function useNeuronAnalysis() {\n const { api } = useNeuronContext();\n const [activeJobs, setActiveJobs] = useState<AnalysisRun[]>([]);\n const [jobHistory, setJobHistory] = useState<AnalysisRun[]>([]);\n const [isRunning, setIsRunning] = useState(false);\n const [currentProgress, setCurrentProgress] = useState<number | null>(null);\n\n const startAnalysis = async (request: AnalysisRequest): Promise<AnalysisResponse> => {\n setIsRunning(true);\n const response = await api.analyze.start(request);\n setActiveJobs((prev) => [...prev, { ...(response as unknown as AnalysisRun) }]);\n return response;\n };\n\n const cancelJob = async (jobId: string) => {\n await api.analyze.cancel(jobId);\n setActiveJobs((prev) => prev.filter((job) => job.id !== jobId));\n };\n\n const getJobStatus = async (jobId: string) => {\n const response = await api.analyze.getStatus(jobId);\n setJobHistory((prev) => [...prev, response.job]);\n setIsRunning(false);\n setCurrentProgress(response.job.progress ?? null);\n return response.job;\n };\n\n return {\n activeJobs,\n jobHistory,\n startAnalysis,\n cancelJob,\n getJobStatus,\n isRunning,\n currentProgress,\n };\n}\n","import { useState } from 'react';\nimport type { NeuronSettings, NeuronSettingsUpdate, VisualizationSettings } from '../../core/types';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport function useNeuronSettings() {\n const { settings, api, updateSettings } = useNeuronContext();\n const [isLoading] = useState(false);\n const [isUpdating, setIsUpdating] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const update = async (updates: NeuronSettingsUpdate) => {\n try {\n setIsUpdating(true);\n await updateSettings(updates as Partial<NeuronSettings>);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsUpdating(false);\n }\n };\n\n const reset = async (sections?: string[]) => {\n await api.settings.reset();\n if (sections?.length) {\n await update({});\n }\n };\n\n return {\n settings,\n isLoading,\n isUpdating,\n error,\n updateSettings: update,\n resetSettings: reset,\n setDomainColor: async (domain: string, color: string) => {\n await update({\n visualization: {\n ...(settings.visualization as VisualizationSettings),\n domainColors: { ...settings.visualization.domainColors, [domain]: color },\n },\n });\n },\n setVisualization: async (updates: Partial<VisualizationSettings>) => {\n await update({ visualization: updates });\n },\n };\n}\n","import { useState } from 'react';\nimport type { FindSimilarOptions, SearchResult, SemanticSearchOptions } from '../../core/types';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport function useNeuronSearch() {\n const { api } = useNeuronContext();\n const [results, setResults] = useState<SearchResult[]>([]);\n const [isSearching, setIsSearching] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const search = async (query: string, options?: SemanticSearchOptions) => {\n setIsSearching(true);\n try {\n const response = await api.search.semantic({ query, ...options });\n setResults(response.results as SearchResult[]);\n setError(null);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsSearching(false);\n }\n };\n\n const findSimilar = async (nodeId: string, options?: FindSimilarOptions) => {\n setIsSearching(true);\n try {\n const response = await api.search.similar({ nodeId, ...options });\n setResults(response.results as SearchResult[]);\n setError(null);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsSearching(false);\n }\n };\n\n return {\n results,\n isSearching,\n error,\n search,\n findSimilar,\n clearResults: () => setResults([]),\n };\n}\n","import { useEffect } from 'react';\nimport type { AnalysisRun, NeuronEventType, NeuronNode } from '../../core/types';\nimport type {\n AnalysisCompletedEventPayload,\n AnalysisFailedEventPayload,\n AnalysisProgressEventPayload,\n AnalysisStartedEventPayload,\n EventHandler,\n EventSubscription,\n NodeCreatedEventPayload,\n NodeDeletedEventPayload,\n NodeUpdatedEventPayload,\n} from '../../core/types/events';\nimport { useNeuronContext } from './useNeuronContext';\nimport { createEvent } from '../../core/events/event-bus';\n\nexport function useNeuronEvents() {\n const { events } = useNeuronContext();\n\n return {\n subscribe: <T>(type: NeuronEventType, handler: EventHandler<T>) => {\n useEffect(() => {\n const sub = events.subscribe(type, handler);\n return () => sub.unsubscribe();\n }, [type, handler]);\n },\n emit: <T>(type: NeuronEventType, payload: T) => {\n events.emit(createEvent(type, payload, 'ui'));\n },\n };\n}\n\nexport function useNodeEvents(handlers: {\n onCreated?: (node: NeuronNode) => void;\n onUpdated?: (node: NeuronNode) => void;\n onDeleted?: (nodeId: string) => void;\n}): void {\n const { events } = useNeuronContext();\n\n useEffect(() => {\n const subs: EventSubscription[] = [];\n if (handlers.onCreated) {\n subs.push(\n events.subscribe('node:created', (event) =>\n handlers.onCreated?.((event.payload as NodeCreatedEventPayload).node)\n )\n );\n }\n if (handlers.onUpdated) {\n subs.push(\n events.subscribe('node:updated', (event) =>\n handlers.onUpdated?.((event.payload as NodeUpdatedEventPayload).node)\n )\n );\n }\n if (handlers.onDeleted) {\n subs.push(\n events.subscribe('node:deleted', (event) =>\n handlers.onDeleted?.((event.payload as NodeDeletedEventPayload).nodeId)\n )\n );\n }\n return () => subs.forEach((sub) => sub.unsubscribe());\n }, [handlers]);\n}\n\nexport function useAnalysisEvents(handlers: {\n onStarted?: (jobId: string) => void;\n onProgress?: (jobId: string, progress: number) => void;\n onCompleted?: (job: AnalysisRun) => void;\n onFailed?: (jobId: string, error: string) => void;\n}): void {\n const { events } = useNeuronContext();\n\n useEffect(() => {\n const subs: EventSubscription[] = [];\n if (handlers.onStarted) {\n subs.push(\n events.subscribe('analysis:started', (event) =>\n handlers.onStarted?.((event.payload as AnalysisStartedEventPayload).jobId)\n )\n );\n }\n if (handlers.onProgress) {\n subs.push(\n events.subscribe('analysis:progress', (event) => {\n const payload = event.payload as AnalysisProgressEventPayload;\n return handlers.onProgress?.(payload.jobId, payload.progress);\n })\n );\n }\n if (handlers.onCompleted) {\n subs.push(\n events.subscribe('analysis:completed', (event) =>\n handlers.onCompleted?.((event.payload as AnalysisCompletedEventPayload).job)\n )\n );\n }\n if (handlers.onFailed) {\n subs.push(\n events.subscribe('analysis:failed', (event) => {\n const payload = event.payload as AnalysisFailedEventPayload;\n return handlers.onFailed?.(payload.jobId, payload.error);\n })\n );\n }\n return () => subs.forEach((sub) => sub.unsubscribe());\n }, [handlers]);\n}\n","import type {\n AnalysisRequest,\n AnalysisResponse,\n CancelAnalysisResponse,\n CreateEdgesRequest,\n CreateEdgesResponse,\n CreateNodesRequest,\n CreateNodesResponse,\n DeleteEdgeResponse,\n DeleteNodeResponse,\n ExpandGraphRequest,\n ExpandGraphResponse,\n FindPathRequest,\n FindPathResponse,\n FindSimilarRequest,\n FindSimilarResponse,\n GetAnalysisJobResponse,\n GetGraphParams,\n GetGraphResponse,\n GetNodeResponse,\n GetSettingsResponse,\n ListEdgesParams,\n ListEdgesResponse,\n ListNodesParams,\n ListNodesResponse,\n SemanticSearchRequest,\n SemanticSearchResponse,\n UpdateEdgeRequest,\n UpdateNodeRequest,\n UpdateSettingsRequest,\n UpdateSettingsResponse,\n ResetSettingsResponse,\n} from '../core/types/api';\n\nexport class NeuronApiClient {\n constructor(private basePath: string) {}\n\n private async request<T>(path: string, options?: RequestInit): Promise<T> {\n const response = await fetch(`${this.basePath}${path}`, {\n headers: { 'Content-Type': 'application/json' },\n ...options,\n });\n if (!response.ok) {\n throw new Error(`Request failed: ${response.status}`);\n }\n return response.json() as Promise<T>;\n }\n\n nodes = {\n list: (params?: ListNodesParams) =>\n this.request<ListNodesResponse>(`/nodes?${new URLSearchParams(params as Record<string, string>)}`),\n get: (id: string) => this.request<GetNodeResponse>(`/nodes/${id}`),\n create: (data: CreateNodesRequest) =>\n this.request<CreateNodesResponse>('/nodes', { method: 'POST', body: JSON.stringify(data) }),\n update: (id: string, data: UpdateNodeRequest) =>\n this.request(`/nodes/${id}`, { method: 'PATCH', body: JSON.stringify(data) }),\n delete: (id: string) => this.request<DeleteNodeResponse>(`/nodes/${id}`, { method: 'DELETE' }),\n };\n\n edges = {\n list: (params?: ListEdgesParams) =>\n this.request<ListEdgesResponse>(`/edges?${new URLSearchParams(params as Record<string, string>)}`),\n create: (data: CreateEdgesRequest) =>\n this.request<CreateEdgesResponse>('/edges', { method: 'POST', body: JSON.stringify(data) }),\n update: (id: string, data: UpdateEdgeRequest) =>\n this.request(`/edges/${id}`, { method: 'PATCH', body: JSON.stringify(data) }),\n delete: (id: string) => this.request<DeleteEdgeResponse>(`/edges/${id}`, { method: 'DELETE' }),\n };\n\n graph = {\n get: (params?: GetGraphParams) =>\n this.request<GetGraphResponse>(`/graph?${new URLSearchParams(params as Record<string, string>)}`),\n expand: (data: ExpandGraphRequest) =>\n this.request<ExpandGraphResponse>('/graph/expand', { method: 'POST', body: JSON.stringify(data) }),\n findPath: (data: FindPathRequest) =>\n this.request<FindPathResponse>('/graph/path', { method: 'POST', body: JSON.stringify(data) }),\n };\n\n analyze = {\n start: (data: AnalysisRequest) =>\n this.request<AnalysisResponse>('/analyze', { method: 'POST', body: JSON.stringify(data) }),\n getStatus: (jobId: string) => this.request<GetAnalysisJobResponse>(`/analyze/${jobId}`),\n cancel: (jobId: string) =>\n this.request<CancelAnalysisResponse>(`/analyze/${jobId}/cancel`, { method: 'POST' }),\n };\n\n settings = {\n get: () => this.request<GetSettingsResponse>('/settings'),\n update: (data: UpdateSettingsRequest) =>\n this.request<UpdateSettingsResponse>('/settings', { method: 'PATCH', body: JSON.stringify(data) }),\n reset: () => this.request<ResetSettingsResponse>('/settings/reset', { method: 'POST' }),\n };\n\n search = {\n semantic: (data: SemanticSearchRequest) =>\n this.request<SemanticSearchResponse>('/search', { method: 'POST', body: JSON.stringify(data) }),\n similar: (data: FindSimilarRequest) =>\n this.request<FindSimilarResponse>('/search/similar', { method: 'POST', body: JSON.stringify(data) }),\n };\n}\n","'use client';\n\nimport React, { useEffect, useMemo, useState } from 'react';\nimport type { NeuronSettings, NeuronConfig, NeuronSettingsUpdate } from '../core/types/settings';\nimport type { NeuronEvent } from '../core/types/events';\nimport { DEFAULT_ANALYSIS_SETTINGS, DEFAULT_VISUALIZATION_SETTINGS } from '../core/types/settings';\nimport { EventBus } from '../core/events/event-bus';\nimport { NeuronApiClient } from './api-client';\nimport { NeuronContext, type ErrorContext } from './context';\n\nexport interface NeuronWebProviderProps {\n children: React.ReactNode;\n config: {\n openaiApiKey?: string;\n databaseUrl?: string;\n settings?: Partial<NeuronSettings>;\n onEvent?: (event: NeuronEvent) => void;\n onError?: (error: Error, context: ErrorContext) => void;\n };\n}\n\nconst buildDefaultConfig = (overrides?: Partial<NeuronSettings>): NeuronConfig => ({\n instance: {\n name: 'default',\n version: '0.1.0',\n repoName: 'omi-neuron-web',\n },\n visualization: { ...DEFAULT_VISUALIZATION_SETTINGS, ...(overrides?.visualization ?? {}) },\n analysis: { ...DEFAULT_ANALYSIS_SETTINGS, ...(overrides?.analysis ?? {}) },\n nodeTypes: overrides?.nodeTypes ?? [],\n domains: overrides?.domains ?? [],\n relationshipTypes: overrides?.relationshipTypes ?? [],\n openai: {\n apiKey: '',\n },\n database: {\n mode: 'external',\n port: 5433,\n url: undefined,\n },\n api: {\n basePath: '/api/neuron',\n enableCors: false,\n },\n logging: {\n level: 'info',\n prettyPrint: true,\n },\n});\n\nexport function NeuronWebProvider({ children, config }: NeuronWebProviderProps): React.ReactElement {\n const [settings, setSettings] = useState<NeuronSettings>(() =>\n buildDefaultConfig(config.settings) as NeuronSettings\n );\n const [error, setError] = useState<Error | null>(null);\n const [isInitialized, setIsInitialized] = useState(false);\n\n const resolvedConfig = useMemo(() => {\n const base = buildDefaultConfig(config.settings);\n return {\n ...base,\n openai: {\n apiKey: config.openaiApiKey ?? base.openai.apiKey,\n },\n database: {\n ...base.database,\n url: config.databaseUrl ?? base.database.url,\n },\n } as NeuronConfig;\n }, [config]);\n\n const apiClient = useMemo(() => new NeuronApiClient(resolvedConfig.api.basePath), [resolvedConfig]);\n const eventBus = useMemo(() => new EventBus(), []);\n\n useEffect(() => {\n eventBus.subscribeAll((event) => config.onEvent?.(event));\n }, [eventBus, config]);\n\n useEffect(() => {\n let mounted = true;\n apiClient\n .settings.get()\n .then((response) => {\n if (mounted) {\n setSettings(response.settings as NeuronSettings);\n setIsInitialized(true);\n }\n })\n .catch((err) => {\n setError(err as Error);\n config.onError?.(err as Error, { message: 'Failed to load settings' });\n });\n return () => {\n mounted = false;\n };\n }, [apiClient]);\n\n const updateSettings = async (updates: Partial<NeuronSettings>) => {\n const response = await apiClient.settings.update(updates as NeuronSettingsUpdate);\n setSettings(response.settings as NeuronSettings);\n };\n\n const resetSettings = async () => {\n const response = await apiClient.settings.reset();\n setSettings(response.settings as NeuronSettings);\n };\n\n const contextValue = useMemo(\n () => ({\n config: resolvedConfig,\n settings,\n api: apiClient,\n events: eventBus,\n isInitialized,\n error,\n updateSettings,\n resetSettings,\n onEvent: config.onEvent,\n onError: config.onError,\n }),\n [resolvedConfig, settings, apiClient, eventBus, isInitialized, error, config]\n );\n\n return <NeuronContext.Provider value={contextValue}>{children}</NeuronContext.Provider>;\n}\n","/**\n * omi-neuron-web\n * A drop-in Next.js library for data analysis and 3D visualization\n */\n\n// Core types\nexport * from './core/types';\nexport * from './core/schemas';\nexport * from './core/events';\nexport { DataProcessor } from './core/analysis/data-processor';\nexport { EmbeddingsService } from './core/analysis/embeddings-service';\nexport { ClusteringEngine } from './core/analysis/clustering-engine';\nexport { RelationshipEngine } from './core/analysis/relationship-engine';\nexport { ScoringEngine } from './core/analysis/scoring-engine';\nexport { AnalysisPipeline } from './core/analysis/pipeline';\nexport * from './storage';\nexport * from './config';\n\n// Re-export visualization (when implemented)\n// export { NeuronWeb } from './visualization';\n\n// Re-export hooks (when implemented)\nexport * from './react/hooks';\n\n// Re-export provider (when implemented)\nexport { NeuronWebProvider } from './react/NeuronWebProvider';\n\n// Version\nexport const VERSION = '0.1.0';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/schemas/cluster.ts","../src/core/events/helpers.ts","../src/core/events/middleware/logging.ts","../src/core/events/middleware/validation.ts","../src/core/analysis/data-processor.ts","../src/config/index.ts","../src/react/context.ts","../src/react/hooks/useNeuronContext.ts","../src/react/hooks/useNeuronGraph.ts","../src/react/hooks/useNeuronNodes.ts","../src/react/hooks/useNeuronAnalysis.ts","../src/react/hooks/useNeuronSettings.ts","../src/react/hooks/useNeuronSearch.ts","../src/react/hooks/useNeuronEvents.ts","../src/react/api-client.ts","../src/react/NeuronWebProvider.tsx","../src/index.ts"],"names":["z","createEvent","nodeCreateSchema","slugify","createContext","useContext","useState","useCallback","useEffect","DEFAULT_VISUALIZATION_SETTINGS","DEFAULT_ANALYSIS_SETTINGS","useMemo","EventBus"],"mappings":"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","file":"index.cjs","sourcesContent":["import { z } from 'zod';\n\nexport const clusteringConfigSchema = z.object({\n algorithm: z.enum(['kmeans', 'dbscan', 'hierarchical']),\n clusterCount: z.coerce.number().int().min(1).optional(),\n minClusterSize: z.coerce.number().int().min(1).optional(),\n similarityThreshold: z.coerce.number().min(0).max(1).optional(),\n epsilon: z.coerce.number().min(0).optional(),\n minSamples: z.coerce.number().int().min(1).optional(),\n});\n\nexport const clusterCreateSchema = z.object({\n label: z.string().min(1).max(255),\n clusterType: z.string().max(100).optional(),\n centroid: z.array(z.number()).optional(),\n memberCount: z.number().int().min(0).optional(),\n avgSimilarity: z.number().min(0).max(1).optional(),\n cohesion: z.number().min(0).max(1).optional(),\n description: z.string().optional(),\n keywords: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const clusterUpdateSchema = clusterCreateSchema.partial();\n\nexport type ClusteringConfigInput = z.infer<typeof clusteringConfigSchema>;\nexport type ClusterCreateInput = z.infer<typeof clusterCreateSchema>;\nexport type ClusterUpdateInput = z.infer<typeof clusterUpdateSchema>;\n","import type {\n AnalysisCompletedEventPayload,\n AnalysisFailedEventPayload,\n AnalysisProgressEventPayload,\n AnalysisStartedEventPayload,\n EdgeCreatedEventPayload,\n EdgeDeletedEventPayload,\n EdgeUpdatedEventPayload,\n EventSource,\n NeuronEvent,\n NeuronEventType,\n NodeBatchCreatedEventPayload,\n NodeCreatedEventPayload,\n NodeDeletedEventPayload,\n NodeUpdatedEventPayload,\n} from '../types/events';\nimport { createEvent } from './event-bus';\n\nexport const createNodeEvent = (\n type: 'node:created' | 'node:updated' | 'node:deleted' | 'node:batch_created',\n payload:\n | NodeCreatedEventPayload\n | NodeUpdatedEventPayload\n | NodeDeletedEventPayload\n | NodeBatchCreatedEventPayload,\n source: EventSource = 'system'\n): NeuronEvent => createEvent(type, payload, source);\n\nexport const createEdgeEvent = (\n type: 'edge:created' | 'edge:updated' | 'edge:deleted',\n payload: EdgeCreatedEventPayload | EdgeUpdatedEventPayload | EdgeDeletedEventPayload,\n source: EventSource = 'system'\n): NeuronEvent => createEvent(type, payload, source);\n\nexport const createAnalysisEvent = (\n type: 'analysis:started' | 'analysis:progress' | 'analysis:completed' | 'analysis:failed',\n payload:\n | AnalysisStartedEventPayload\n | AnalysisProgressEventPayload\n | AnalysisCompletedEventPayload\n | AnalysisFailedEventPayload,\n source: EventSource = 'analysis'\n): NeuronEvent => createEvent(type, payload, source);\n\nexport const createGenericEvent = <T>(\n type: NeuronEventType,\n payload: T,\n source: EventSource = 'system'\n): NeuronEvent<T> => createEvent(type, payload, source);\n","import type { EventMiddleware } from '../event-bus';\n\nexport const loggingMiddleware: EventMiddleware = (event, next) => {\n // eslint-disable-next-line no-console\n console.debug(`[omi-neuron:event] ${event.type}`, event);\n void next();\n};\n","import type { EventMiddleware } from '../event-bus';\n\nexport const validationMiddleware: EventMiddleware = (event, next) => {\n if (!event.type) {\n throw new Error('Event missing type');\n }\n if (!event.timestamp) {\n throw new Error('Event missing timestamp');\n }\n return next();\n};\n","import slugify from 'slugify';\nimport { nodeCreateSchema } from '../schemas/node';\nimport type { NeuronNodeCreate } from '../types/node';\n\nexport interface ProcessingOptions {\n skipDuplicates?: boolean;\n updateOnConflict?: boolean;\n defaultNodeType?: string;\n defaultDomain?: string;\n contentFields?: string[];\n labelField?: string;\n slugField?: string;\n metadataFields?: string[];\n}\n\nconst stripHtml = (value: string) => value.replace(/<[^>]+>/g, ' ');\n\nconst normalizeValue = (value: unknown): string | undefined => {\n if (value === null || value === undefined) return undefined;\n if (value instanceof Date) return value.toISOString();\n if (Array.isArray(value)) return value.map((item) => normalizeValue(item)).filter(Boolean).join(' ');\n if (typeof value === 'object') return JSON.stringify(value);\n return String(value);\n};\n\nconst flattenObject = (obj: Record<string, unknown>, prefix = ''): Record<string, unknown> => {\n const result: Record<string, unknown> = {};\n for (const [key, value] of Object.entries(obj)) {\n const nextKey = prefix ? `${prefix}.${key}` : key;\n if (value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date)) {\n Object.assign(result, flattenObject(value as Record<string, unknown>, nextKey));\n } else {\n result[nextKey] = value;\n }\n }\n return result;\n};\n\nexport class DataProcessor {\n constructor(private options: ProcessingOptions = {}) {}\n\n processItem(item: Record<string, unknown>): NeuronNodeCreate {\n const flattened = flattenObject(item);\n const labelField = this.options.labelField ?? 'label';\n const label = normalizeValue(flattened[labelField]) ?? 'Untitled';\n\n const slugField = this.options.slugField;\n const slug = slugField ? normalizeValue(flattened[slugField]) : undefined;\n\n const content = this.extractContent(flattened);\n const metadata = this.extractMetadata(flattened);\n\n const node: NeuronNodeCreate = {\n slug,\n label,\n nodeType: this.options.defaultNodeType,\n domain: this.options.defaultDomain,\n content,\n metadata,\n };\n\n return nodeCreateSchema.parse(node);\n }\n\n processBatch(items: Record<string, unknown>[]): {\n nodes: NeuronNodeCreate[];\n errors: Array<{ index: number; error: string }>;\n } {\n const nodes: NeuronNodeCreate[] = [];\n const errors: Array<{ index: number; error: string }> = [];\n\n items.forEach((item, index) => {\n try {\n nodes.push(this.processItem(item));\n } catch (error) {\n errors.push({\n index,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n });\n\n return { nodes, errors };\n }\n\n processJSON(json: string): NeuronNodeCreate[] {\n const parsed = JSON.parse(json);\n if (Array.isArray(parsed)) {\n return this.processBatch(parsed).nodes;\n }\n return [this.processItem(parsed)];\n }\n\n processCSV(csv: string): NeuronNodeCreate[] {\n const lines = csv.trim().split(/\\r?\\n/);\n if (lines.length === 0) return [];\n const headers = lines[0].split(',').map((h) => h.trim());\n const items = lines.slice(1).map((line) => {\n const values = line.split(',');\n const item: Record<string, unknown> = {};\n headers.forEach((header, idx) => {\n item[header] = values[idx]?.trim();\n });\n return item;\n });\n return this.processBatch(items).nodes;\n }\n\n generateSlug(label: string, existingSlugs: Set<string> = new Set()): string {\n const base = slugify(label, { lower: true, strict: true, trim: true }).slice(0, 255);\n if (!existingSlugs.has(base)) return base;\n let suffix = 1;\n let slug = `${base}-${suffix}`;\n while (existingSlugs.has(slug)) {\n suffix += 1;\n slug = `${base}-${suffix}`;\n }\n return slug;\n }\n\n extractContent(item: Record<string, unknown>): string {\n const fields = this.options.contentFields ?? ['label', 'summary', 'description', 'content'];\n const parts = fields\n .map((field) => normalizeValue(item[field]))\n .filter((value): value is string => Boolean(value));\n const joined = parts.join(' ');\n return stripHtml(joined).replace(/\\s+/g, ' ').trim();\n }\n\n detectDuplicates(nodes: NeuronNodeCreate[]): {\n unique: NeuronNodeCreate[];\n duplicates: Array<{ node: NeuronNodeCreate; reason: string }>;\n } {\n const seen = new Set<string>();\n const unique: NeuronNodeCreate[] = [];\n const duplicates: Array<{ node: NeuronNodeCreate; reason: string }> = [];\n\n nodes.forEach((node) => {\n const slug = node.slug ?? this.generateSlug(node.label, seen);\n if (seen.has(slug)) {\n duplicates.push({ node, reason: `Duplicate slug: ${slug}` });\n return;\n }\n seen.add(slug);\n unique.push({ ...node, slug });\n });\n\n return { unique, duplicates };\n }\n\n private extractMetadata(item: Record<string, unknown>): Record<string, unknown> | undefined {\n if (!this.options.metadataFields?.length) return undefined;\n const metadata: Record<string, unknown> = {};\n this.options.metadataFields.forEach((field) => {\n if (field in item) {\n metadata[field] = item[field];\n }\n });\n return Object.keys(metadata).length > 0 ? metadata : undefined;\n }\n}\n","import type { NeuronConfig } from '../core/types/settings';\n\nexport const defineNeuronConfig = (config: NeuronConfig): NeuronConfig => config;\n","import { createContext } from 'react';\nimport type { NeuronSettings, NeuronConfig } from '../core/types/settings';\nimport type { NeuronEvent } from '../core/types/events';\nimport type { EventBus } from '../core/events/event-bus';\nimport type { NeuronApiClient } from './api-client';\n\nexport interface ErrorContext {\n message: string;\n}\n\nexport interface NeuronContextValue {\n config: NeuronConfig;\n settings: NeuronSettings;\n api: NeuronApiClient;\n events: EventBus;\n isInitialized: boolean;\n error: Error | null;\n updateSettings: (settings: Partial<NeuronSettings>) => Promise<void>;\n resetSettings: () => Promise<void>;\n onEvent?: (event: NeuronEvent) => void;\n onError?: (error: Error, context: ErrorContext) => void;\n}\n\nexport const NeuronContext = createContext<NeuronContextValue | null>(null);\n","import { useContext } from 'react';\nimport { NeuronContext } from '../context';\n\nexport function useNeuronContext() {\n const context = useContext(NeuronContext);\n if (!context) {\n throw new Error('useNeuronContext must be used within NeuronWebProvider');\n }\n return context;\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport type {\n GraphFilters,\n NeuronVisualCluster,\n NeuronVisualEdge,\n NeuronVisualNode,\n} from '../../core/types';\nimport type { GetGraphParams, FindPathResponse } from '../../core/types/api';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport interface UseNeuronGraphOptions {\n domains?: string[];\n nodeTypes?: string[];\n minEdgeStrength?: number;\n autoRefresh?: boolean;\n refreshInterval?: number;\n}\n\nexport function useNeuronGraph(options?: UseNeuronGraphOptions) {\n const { api } = useNeuronContext();\n const [nodes, setNodes] = useState<NeuronVisualNode[]>([]);\n const [edges, setEdges] = useState<NeuronVisualEdge[]>([]);\n const [clusters, setClusters] = useState<NeuronVisualCluster[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [filters, setFilters] = useState<GraphFilters>({});\n const [selectedNode, setSelectedNode] = useState<string | null>(null);\n\n const fetchGraph = useCallback(async () => {\n setIsLoading(true);\n try {\n const params: GetGraphParams = {\n domains: options?.domains,\n nodeTypes: options?.nodeTypes,\n minEdgeStrength: options?.minEdgeStrength,\n };\n const response = await api.graph.get(params);\n setNodes(response.nodes);\n setEdges(response.edges);\n setClusters(response.clusters ?? []);\n setError(null);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsLoading(false);\n }\n }, [api, options]);\n\n useEffect(() => {\n void fetchGraph();\n }, [fetchGraph]);\n\n const expandFromNode = async (nodeId: string, depth = 1) => {\n const response = await api.graph.expand({ fromNodeIds: [nodeId], depth, direction: 'both' });\n setNodes(response.nodes);\n setEdges(response.edges);\n };\n\n const findPath = async (fromId: string, toId: string): Promise<FindPathResponse['paths'][number]> => {\n const response = await api.graph.findPath({ fromNodeId: fromId, toNodeId: toId });\n return response.paths[0];\n };\n\n return {\n nodes,\n edges,\n clusters,\n isLoading,\n error,\n filters,\n setFilters: (next: Partial<GraphFilters>) => setFilters((prev) => ({ ...prev, ...next })),\n clearFilters: () => setFilters({}),\n selectedNode: selectedNode ? nodes.find((node) => node.id === selectedNode) ?? null : null,\n selectNode: (nodeId: string | null) => setSelectedNode(nodeId),\n clearSelection: () => setSelectedNode(null),\n refetch: fetchGraph,\n expandFromNode,\n findPath,\n };\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport type { ListNodesParams, NeuronNode, NeuronNodeCreate, NeuronNodeUpdate } from '../../core/types';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport interface UseNeuronNodesOptions {\n initialFilters?: ListNodesParams;\n pageSize?: number;\n}\n\nexport function useNeuronNodes(options?: UseNeuronNodesOptions) {\n const { api } = useNeuronContext();\n const [nodes, setNodes] = useState<NeuronNode[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [page, setPage] = useState(1);\n const [totalPages, setTotalPages] = useState(1);\n\n const fetchNodes = useCallback(async () => {\n setIsLoading(true);\n try {\n const response = await api.nodes.list({\n ...options?.initialFilters,\n page,\n limit: options?.pageSize ?? 50,\n });\n setNodes(response.nodes);\n setTotalPages(response.pagination.totalPages ?? 1);\n setError(null);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsLoading(false);\n }\n }, [api, options, page]);\n\n useEffect(() => {\n void fetchNodes();\n }, [fetchNodes]);\n\n return {\n nodes,\n isLoading,\n error,\n createNode: async (data: NeuronNodeCreate) => {\n const response = await api.nodes.create({ nodes: [data] });\n await fetchNodes();\n return response.created[0];\n },\n updateNode: async (id: string, data: NeuronNodeUpdate) => {\n const updated = await api.nodes.update(id, data);\n await fetchNodes();\n return updated as NeuronNode;\n },\n deleteNode: async (id: string) => {\n await api.nodes.delete(id);\n await fetchNodes();\n },\n batchCreate: async (nodesInput: NeuronNodeCreate[]) => {\n const response = await api.nodes.create({ nodes: nodesInput });\n await fetchNodes();\n return response.created;\n },\n search: async (query: string) => {\n const response = await api.nodes.list({ search: query });\n setNodes(response.nodes);\n },\n pagination: {\n page,\n totalPages,\n hasNext: page < totalPages,\n hasPrev: page > 1,\n },\n setPage,\n nextPage: () => setPage((prev) => Math.min(prev + 1, totalPages)),\n prevPage: () => setPage((prev) => Math.max(prev - 1, 1)),\n };\n}\n","import { useState } from 'react';\nimport type { AnalysisRequest, AnalysisResponse, AnalysisRun } from '../../core/types';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport function useNeuronAnalysis() {\n const { api } = useNeuronContext();\n const [activeJobs, setActiveJobs] = useState<AnalysisRun[]>([]);\n const [jobHistory, setJobHistory] = useState<AnalysisRun[]>([]);\n const [isRunning, setIsRunning] = useState(false);\n const [currentProgress, setCurrentProgress] = useState<number | null>(null);\n\n const startAnalysis = async (request: AnalysisRequest): Promise<AnalysisResponse> => {\n setIsRunning(true);\n const response = await api.analyze.start(request);\n setActiveJobs((prev) => [...prev, { ...(response as unknown as AnalysisRun) }]);\n return response;\n };\n\n const cancelJob = async (jobId: string) => {\n await api.analyze.cancel(jobId);\n setActiveJobs((prev) => prev.filter((job) => job.id !== jobId));\n };\n\n const getJobStatus = async (jobId: string) => {\n const response = await api.analyze.getStatus(jobId);\n setJobHistory((prev) => [...prev, response.job]);\n setIsRunning(false);\n setCurrentProgress(response.job.progress ?? null);\n return response.job;\n };\n\n return {\n activeJobs,\n jobHistory,\n startAnalysis,\n cancelJob,\n getJobStatus,\n isRunning,\n currentProgress,\n };\n}\n","import { useState } from 'react';\nimport type { NeuronSettings, NeuronSettingsUpdate, VisualizationSettings } from '../../core/types';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport function useNeuronSettings() {\n const { settings, api, updateSettings } = useNeuronContext();\n const [isLoading] = useState(false);\n const [isUpdating, setIsUpdating] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const update = async (updates: NeuronSettingsUpdate) => {\n try {\n setIsUpdating(true);\n await updateSettings(updates as Partial<NeuronSettings>);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsUpdating(false);\n }\n };\n\n const reset = async (sections?: string[]) => {\n await api.settings.reset();\n if (sections?.length) {\n await update({});\n }\n };\n\n return {\n settings,\n isLoading,\n isUpdating,\n error,\n updateSettings: update,\n resetSettings: reset,\n setDomainColor: async (domain: string, color: string) => {\n await update({\n visualization: {\n ...(settings.visualization as VisualizationSettings),\n domainColors: { ...settings.visualization.domainColors, [domain]: color },\n },\n });\n },\n setVisualization: async (updates: Partial<VisualizationSettings>) => {\n await update({ visualization: updates });\n },\n };\n}\n","import { useState } from 'react';\nimport type { FindSimilarOptions, SearchResult, SemanticSearchOptions } from '../../core/types';\nimport { useNeuronContext } from './useNeuronContext';\n\nexport function useNeuronSearch() {\n const { api } = useNeuronContext();\n const [results, setResults] = useState<SearchResult[]>([]);\n const [isSearching, setIsSearching] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n\n const search = async (query: string, options?: SemanticSearchOptions) => {\n setIsSearching(true);\n try {\n const response = await api.search.semantic({ query, ...options });\n setResults(response.results as SearchResult[]);\n setError(null);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsSearching(false);\n }\n };\n\n const findSimilar = async (nodeId: string, options?: FindSimilarOptions) => {\n setIsSearching(true);\n try {\n const response = await api.search.similar({ nodeId, ...options });\n setResults(response.results as SearchResult[]);\n setError(null);\n } catch (err) {\n setError(err as Error);\n } finally {\n setIsSearching(false);\n }\n };\n\n return {\n results,\n isSearching,\n error,\n search,\n findSimilar,\n clearResults: () => setResults([]),\n };\n}\n","import { useEffect } from 'react';\nimport type { AnalysisRun, NeuronEventType, NeuronNode } from '../../core/types';\nimport type {\n AnalysisCompletedEventPayload,\n AnalysisFailedEventPayload,\n AnalysisProgressEventPayload,\n AnalysisStartedEventPayload,\n EventHandler,\n EventSubscription,\n NodeCreatedEventPayload,\n NodeDeletedEventPayload,\n NodeUpdatedEventPayload,\n} from '../../core/types/events';\nimport { useNeuronContext } from './useNeuronContext';\nimport { createEvent } from '../../core/events/event-bus';\n\nexport function useNeuronEvents() {\n const { events } = useNeuronContext();\n\n return {\n subscribe: <T>(type: NeuronEventType, handler: EventHandler<T>) => {\n useEffect(() => {\n const sub = events.subscribe(type, handler);\n return () => sub.unsubscribe();\n }, [type, handler]);\n },\n emit: <T>(type: NeuronEventType, payload: T) => {\n events.emit(createEvent(type, payload, 'ui'));\n },\n };\n}\n\nexport function useNodeEvents(handlers: {\n onCreated?: (node: NeuronNode) => void;\n onUpdated?: (node: NeuronNode) => void;\n onDeleted?: (nodeId: string) => void;\n}): void {\n const { events } = useNeuronContext();\n\n useEffect(() => {\n const subs: EventSubscription[] = [];\n if (handlers.onCreated) {\n subs.push(\n events.subscribe('node:created', (event) =>\n handlers.onCreated?.((event.payload as NodeCreatedEventPayload).node)\n )\n );\n }\n if (handlers.onUpdated) {\n subs.push(\n events.subscribe('node:updated', (event) =>\n handlers.onUpdated?.((event.payload as NodeUpdatedEventPayload).node)\n )\n );\n }\n if (handlers.onDeleted) {\n subs.push(\n events.subscribe('node:deleted', (event) =>\n handlers.onDeleted?.((event.payload as NodeDeletedEventPayload).nodeId)\n )\n );\n }\n return () => subs.forEach((sub) => sub.unsubscribe());\n }, [handlers]);\n}\n\nexport function useAnalysisEvents(handlers: {\n onStarted?: (jobId: string) => void;\n onProgress?: (jobId: string, progress: number) => void;\n onCompleted?: (job: AnalysisRun) => void;\n onFailed?: (jobId: string, error: string) => void;\n}): void {\n const { events } = useNeuronContext();\n\n useEffect(() => {\n const subs: EventSubscription[] = [];\n if (handlers.onStarted) {\n subs.push(\n events.subscribe('analysis:started', (event) =>\n handlers.onStarted?.((event.payload as AnalysisStartedEventPayload).jobId)\n )\n );\n }\n if (handlers.onProgress) {\n subs.push(\n events.subscribe('analysis:progress', (event) => {\n const payload = event.payload as AnalysisProgressEventPayload;\n return handlers.onProgress?.(payload.jobId, payload.progress);\n })\n );\n }\n if (handlers.onCompleted) {\n subs.push(\n events.subscribe('analysis:completed', (event) =>\n handlers.onCompleted?.((event.payload as AnalysisCompletedEventPayload).job)\n )\n );\n }\n if (handlers.onFailed) {\n subs.push(\n events.subscribe('analysis:failed', (event) => {\n const payload = event.payload as AnalysisFailedEventPayload;\n return handlers.onFailed?.(payload.jobId, payload.error);\n })\n );\n }\n return () => subs.forEach((sub) => sub.unsubscribe());\n }, [handlers]);\n}\n","import type {\n AnalysisRequest,\n AnalysisResponse,\n CancelAnalysisResponse,\n CreateEdgesRequest,\n CreateEdgesResponse,\n CreateNodesRequest,\n CreateNodesResponse,\n DeleteEdgeResponse,\n DeleteNodeResponse,\n ExpandGraphRequest,\n ExpandGraphResponse,\n FindPathRequest,\n FindPathResponse,\n FindSimilarRequest,\n FindSimilarResponse,\n GetAnalysisJobResponse,\n GetGraphParams,\n GetGraphResponse,\n GetNodeResponse,\n GetSettingsResponse,\n ListEdgesParams,\n ListEdgesResponse,\n ListNodesParams,\n ListNodesResponse,\n SemanticSearchRequest,\n SemanticSearchResponse,\n UpdateEdgeRequest,\n UpdateNodeRequest,\n UpdateSettingsRequest,\n UpdateSettingsResponse,\n ResetSettingsResponse,\n} from '../core/types/api';\n\nexport class NeuronApiClient {\n constructor(private basePath: string) {}\n\n private async request<T>(path: string, options?: RequestInit): Promise<T> {\n const response = await fetch(`${this.basePath}${path}`, {\n headers: { 'Content-Type': 'application/json' },\n ...options,\n });\n if (!response.ok) {\n throw new Error(`Request failed: ${response.status}`);\n }\n return response.json() as Promise<T>;\n }\n\n nodes = {\n list: (params?: ListNodesParams) =>\n this.request<ListNodesResponse>(`/nodes?${new URLSearchParams(params as Record<string, string>)}`),\n get: (id: string) => this.request<GetNodeResponse>(`/nodes/${id}`),\n create: (data: CreateNodesRequest) =>\n this.request<CreateNodesResponse>('/nodes', { method: 'POST', body: JSON.stringify(data) }),\n update: (id: string, data: UpdateNodeRequest) =>\n this.request(`/nodes/${id}`, { method: 'PATCH', body: JSON.stringify(data) }),\n delete: (id: string) => this.request<DeleteNodeResponse>(`/nodes/${id}`, { method: 'DELETE' }),\n };\n\n edges = {\n list: (params?: ListEdgesParams) =>\n this.request<ListEdgesResponse>(`/edges?${new URLSearchParams(params as Record<string, string>)}`),\n create: (data: CreateEdgesRequest) =>\n this.request<CreateEdgesResponse>('/edges', { method: 'POST', body: JSON.stringify(data) }),\n update: (id: string, data: UpdateEdgeRequest) =>\n this.request(`/edges/${id}`, { method: 'PATCH', body: JSON.stringify(data) }),\n delete: (id: string) => this.request<DeleteEdgeResponse>(`/edges/${id}`, { method: 'DELETE' }),\n };\n\n graph = {\n get: (params?: GetGraphParams) =>\n this.request<GetGraphResponse>(`/graph?${new URLSearchParams(params as Record<string, string>)}`),\n expand: (data: ExpandGraphRequest) =>\n this.request<ExpandGraphResponse>('/graph/expand', { method: 'POST', body: JSON.stringify(data) }),\n findPath: (data: FindPathRequest) =>\n this.request<FindPathResponse>('/graph/path', { method: 'POST', body: JSON.stringify(data) }),\n };\n\n analyze = {\n start: (data: AnalysisRequest) =>\n this.request<AnalysisResponse>('/analyze', { method: 'POST', body: JSON.stringify(data) }),\n getStatus: (jobId: string) => this.request<GetAnalysisJobResponse>(`/analyze/${jobId}`),\n cancel: (jobId: string) =>\n this.request<CancelAnalysisResponse>(`/analyze/${jobId}/cancel`, { method: 'POST' }),\n };\n\n settings = {\n get: () => this.request<GetSettingsResponse>('/settings'),\n update: (data: UpdateSettingsRequest) =>\n this.request<UpdateSettingsResponse>('/settings', { method: 'PATCH', body: JSON.stringify(data) }),\n reset: () => this.request<ResetSettingsResponse>('/settings/reset', { method: 'POST' }),\n };\n\n search = {\n semantic: (data: SemanticSearchRequest) =>\n this.request<SemanticSearchResponse>('/search', { method: 'POST', body: JSON.stringify(data) }),\n similar: (data: FindSimilarRequest) =>\n this.request<FindSimilarResponse>('/search/similar', { method: 'POST', body: JSON.stringify(data) }),\n };\n}\n","'use client';\n\nimport React, { useEffect, useMemo, useState } from 'react';\nimport type { NeuronSettings, NeuronConfig, NeuronSettingsUpdate } from '../core/types/settings';\nimport type { NeuronEvent } from '../core/types/events';\nimport { DEFAULT_ANALYSIS_SETTINGS, DEFAULT_VISUALIZATION_SETTINGS } from '../core/types/settings';\nimport { EventBus } from '../core/events/event-bus';\nimport { NeuronApiClient } from './api-client';\nimport { NeuronContext, type ErrorContext } from './context';\n\nexport interface NeuronWebProviderProps {\n children: React.ReactNode;\n config: {\n openaiApiKey?: string;\n databaseUrl?: string;\n settings?: Partial<NeuronSettings>;\n onEvent?: (event: NeuronEvent) => void;\n onError?: (error: Error, context: ErrorContext) => void;\n };\n}\n\nconst buildDefaultConfig = (overrides?: Partial<NeuronSettings>): NeuronConfig => ({\n instance: {\n name: 'default',\n version: '0.1.1',\n repoName: 'omi-neuron-web',\n },\n visualization: { ...DEFAULT_VISUALIZATION_SETTINGS, ...(overrides?.visualization ?? {}) },\n analysis: { ...DEFAULT_ANALYSIS_SETTINGS, ...(overrides?.analysis ?? {}) },\n nodeTypes: overrides?.nodeTypes ?? [],\n domains: overrides?.domains ?? [],\n relationshipTypes: overrides?.relationshipTypes ?? [],\n openai: {\n apiKey: '',\n },\n database: {\n mode: 'external',\n port: 5433,\n url: undefined,\n },\n api: {\n basePath: '/api/neuron',\n enableCors: false,\n },\n logging: {\n level: 'info',\n prettyPrint: true,\n },\n});\n\nexport function NeuronWebProvider({ children, config }: NeuronWebProviderProps): React.ReactElement {\n const [settings, setSettings] = useState<NeuronSettings>(() =>\n buildDefaultConfig(config.settings) as NeuronSettings\n );\n const [error, setError] = useState<Error | null>(null);\n const [isInitialized, setIsInitialized] = useState(false);\n\n const resolvedConfig = useMemo(() => {\n const base = buildDefaultConfig(config.settings);\n return {\n ...base,\n openai: {\n apiKey: config.openaiApiKey ?? base.openai.apiKey,\n },\n database: {\n ...base.database,\n url: config.databaseUrl ?? base.database.url,\n },\n } as NeuronConfig;\n }, [config]);\n\n const apiClient = useMemo(() => new NeuronApiClient(resolvedConfig.api.basePath), [resolvedConfig]);\n const eventBus = useMemo(() => new EventBus(), []);\n\n useEffect(() => {\n eventBus.subscribeAll((event) => config.onEvent?.(event));\n }, [eventBus, config]);\n\n useEffect(() => {\n let mounted = true;\n apiClient\n .settings.get()\n .then((response) => {\n if (mounted) {\n setSettings(response.settings as NeuronSettings);\n setIsInitialized(true);\n }\n })\n .catch((err) => {\n setError(err as Error);\n config.onError?.(err as Error, { message: 'Failed to load settings' });\n });\n return () => {\n mounted = false;\n };\n }, [apiClient]);\n\n const updateSettings = async (updates: Partial<NeuronSettings>) => {\n const response = await apiClient.settings.update(updates as NeuronSettingsUpdate);\n setSettings(response.settings as NeuronSettings);\n };\n\n const resetSettings = async () => {\n const response = await apiClient.settings.reset();\n setSettings(response.settings as NeuronSettings);\n };\n\n const contextValue = useMemo(\n () => ({\n config: resolvedConfig,\n settings,\n api: apiClient,\n events: eventBus,\n isInitialized,\n error,\n updateSettings,\n resetSettings,\n onEvent: config.onEvent,\n onError: config.onError,\n }),\n [resolvedConfig, settings, apiClient, eventBus, isInitialized, error, config]\n );\n\n return <NeuronContext.Provider value={contextValue}>{children}</NeuronContext.Provider>;\n}\n","/**\n * omi-neuron-web\n * A drop-in Next.js library for data analysis and 3D visualization\n */\n\n// Core types\nexport * from './core/types';\nexport * from './core/schemas';\nexport * from './core/events';\nexport { DataProcessor } from './core/analysis/data-processor';\nexport { EmbeddingsService } from './core/analysis/embeddings-service';\nexport { ClusteringEngine } from './core/analysis/clustering-engine';\nexport { RelationshipEngine } from './core/analysis/relationship-engine';\nexport { ScoringEngine } from './core/analysis/scoring-engine';\nexport { AnalysisPipeline } from './core/analysis/pipeline';\nexport * from './storage';\nexport * from './config';\n\n// Visualization\nexport { NeuronWeb } from './visualization';\nexport type { NeuronWebProps, NeuronWebTheme, NeuronLayoutOptions, NeuronLayoutMode } from './visualization';\n\n// Re-export hooks (when implemented)\nexport * from './react/hooks';\n\n// Re-export provider (when implemented)\nexport { NeuronWebProvider } from './react/NeuronWebProvider';\n\n// Version\nexport const VERSION = '0.1.1';\n\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -6,6 +6,7 @@ import { z } from 'zod';
|
|
|
6
6
|
import { D as Database, a as DatabaseConfig } from './database-B0vplyA4.cjs';
|
|
7
7
|
export { P as PoolStats } from './database-B0vplyA4.cjs';
|
|
8
8
|
export { Migration, MigrationRunner, MigrationStatus, migration001, migration002, migration003, migration004, migrations } from './migration/index.cjs';
|
|
9
|
+
export { e as NeuronLayoutMode, b as NeuronLayoutOptions, c as NeuronWeb, d as NeuronWebProps, N as NeuronWebTheme } from './NeuronWeb-DG5ICk2K.cjs';
|
|
9
10
|
import * as React from 'react';
|
|
10
11
|
import React__default from 'react';
|
|
11
12
|
import 'pg';
|
|
@@ -1479,6 +1480,6 @@ declare function NeuronWebProvider({ children, config }: NeuronWebProviderProps)
|
|
|
1479
1480
|
* A drop-in Next.js library for data analysis and 3D visualization
|
|
1480
1481
|
*/
|
|
1481
1482
|
|
|
1482
|
-
declare const VERSION = "0.1.
|
|
1483
|
+
declare const VERSION = "0.1.1";
|
|
1483
1484
|
|
|
1484
1485
|
export { type AnalysisCancelledEventPayload, type AnalysisCompletedEventPayload, type AnalysisFailedEventPayload, type AnalysisOptionsInput, AnalysisPipeline, type AnalysisProgressEventPayload, AnalysisRequest, type AnalysisRequestInput, AnalysisResponse, AnalysisRun, type AnalysisSettingsInput, type AnalysisStartedEventPayload, CancelAnalysisResponse, type ClusterCreateInput, type ClusterCreatedEventPayload, ClusterMembership, type ClusterMembershipChangedEventPayload, type ClusterUpdateInput, type ClusterUpdatedEventPayload, ClusteringAlgorithm, type ClusteringConfigInput, ClusteringEngine, type ContainerStats, CreateEdgesRequest, CreateEdgesResponse, CreateNodesRequest, CreateNodesResponse, DataProcessor, Database, DatabaseConfig, type DatabaseSettingsInput, DeleteEdgeResponse, DeleteNodeResponse, type DockerConfig, DockerManager, type DomainConfigInput, type EdgeCreateInput, type EdgeCreatedEventPayload, type EdgeDeletedEventPayload, EdgeEvidence, type EdgeEvidenceInput, type EdgeFilterInput, type EdgeUpdateInput, type EdgeUpdatedEventPayload, EmbeddingsService, type EnsureOptions, EventBus, type EventFilterOptions, type EventHandler, type EventMiddleware, type EventSource, type EventSubscription, ExpandGraphRequest, type ExpandGraphRequestInput, ExpandGraphResponse, FindPathRequest, type FindPathRequestInput, FindPathResponse, FindSimilarOptions, FindSimilarRequest, type FindSimilarRequestInput, FindSimilarResponse, GetAnalysisJobResponse, GetGraphParams, type GetGraphParamsInput, GetGraphResponse, GetNodeResponse, GetSettingsResponse, GraphFilters, type HealthCheckResult, ListEdgesParams, type ListEdgesParamsInput, ListEdgesResponse, ListNodesParams, type ListNodesParamsInput, ListNodesResponse, type LogOptions, NeuronCluster, NeuronConfig, type NeuronConfigInput, NeuronEdge, type NeuronEvent, type NeuronEventEmitter, type NeuronEventType, NeuronNode, NeuronNodeCreate, NeuronNodeUpdate, NeuronSettings, type NeuronSettingsInput, NeuronSettingsUpdate, type NeuronSettingsUpdateInput, NeuronVisualCluster, NeuronVisualEdge, NeuronVisualNode, NeuronWebProvider, type NodeBatchCreateInput, type NodeBatchCreatedEventPayload, type NodeCreateInput, type NodeCreatedEventPayload, type NodeDeletedEventPayload, type NodeFilterInput, type NodeTypeConfigInput, type NodeUpdateInput, type NodeUpdatedEventPayload, type PaginationInput, RelationshipEngine, type RelationshipInferredEventPayload, type RelationshipRejectedEventPayload, RelationshipType, type RelationshipTypeConfigInput, ResetSettingsResponse, ScoringEngine, SearchResult, SemanticSearchOptions, SemanticSearchRequest, type SemanticSearchRequestInput, SemanticSearchResponse, type SettingsUpdatedEventPayload, type StartOptions, type StopOptions, UpdateEdgeRequest, UpdateNodeRequest, UpdateSettingsRequest, UpdateSettingsResponse, type UseNeuronGraphOptions, type UseNeuronNodesOptions, VERSION, VisualizationSettings, type VisualizationSettingsInput, type VizCameraChangedEventPayload, type VizFilterAppliedEventPayload, type VizNodeFocusedEventPayload, type VizNodeHoveredEventPayload, type VizNodeSelectedEventPayload, type VizPathCompletedEventPayload, type VizPathStartedEventPayload, analysisOptionsSchema, analysisRequestSchema, analysisSettingsSchema, clusterCreateSchema, clusterUpdateSchema, clusteringConfigSchema, createAnalysisEvent, createDatabase, createDatabaseFromEnv, createEdgeEvent, createEvent, createGenericEvent, createNodeEvent, databaseSettingsSchema, defineNeuronConfig, domainConfigSchema, edgeCreateSchema, edgeEvidenceSchema, edgeFilterSchema, edgeUpdateSchema, expandGraphRequestSchema, findPathRequestSchema, findSimilarRequestSchema, getDatabase, getGraphParamsSchema, listEdgesParamsSchema, listNodesParamsSchema, loggingMiddleware, neuronConfigSchema, neuronSettingsSchema, neuronSettingsUpdateSchema, nodeBatchCreateSchema, nodeCreateSchema, nodeFilterSchema, nodeTierSchema, nodeTypeConfigSchema, nodeUpdateSchema, paginationSchema, relationshipTypeConfigSchema, resetDatabaseSingleton, semanticSearchRequestSchema, useAnalysisEvents, useNeuronAnalysis, useNeuronContext, useNeuronEvents, useNeuronGraph, useNeuronNodes, useNeuronSearch, useNeuronSettings, useNodeEvents, validationMiddleware, visualizationSettingsSchema };
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { z } from 'zod';
|
|
|
6
6
|
import { D as Database, a as DatabaseConfig } from './database-B0vplyA4.js';
|
|
7
7
|
export { P as PoolStats } from './database-B0vplyA4.js';
|
|
8
8
|
export { Migration, MigrationRunner, MigrationStatus, migration001, migration002, migration003, migration004, migrations } from './migration/index.js';
|
|
9
|
+
export { e as NeuronLayoutMode, b as NeuronLayoutOptions, c as NeuronWeb, d as NeuronWebProps, N as NeuronWebTheme } from './NeuronWeb-DbcYoeQE.js';
|
|
9
10
|
import * as React from 'react';
|
|
10
11
|
import React__default from 'react';
|
|
11
12
|
import 'pg';
|
|
@@ -1479,6 +1480,6 @@ declare function NeuronWebProvider({ children, config }: NeuronWebProviderProps)
|
|
|
1479
1480
|
* A drop-in Next.js library for data analysis and 3D visualization
|
|
1480
1481
|
*/
|
|
1481
1482
|
|
|
1482
|
-
declare const VERSION = "0.1.
|
|
1483
|
+
declare const VERSION = "0.1.1";
|
|
1483
1484
|
|
|
1484
1485
|
export { type AnalysisCancelledEventPayload, type AnalysisCompletedEventPayload, type AnalysisFailedEventPayload, type AnalysisOptionsInput, AnalysisPipeline, type AnalysisProgressEventPayload, AnalysisRequest, type AnalysisRequestInput, AnalysisResponse, AnalysisRun, type AnalysisSettingsInput, type AnalysisStartedEventPayload, CancelAnalysisResponse, type ClusterCreateInput, type ClusterCreatedEventPayload, ClusterMembership, type ClusterMembershipChangedEventPayload, type ClusterUpdateInput, type ClusterUpdatedEventPayload, ClusteringAlgorithm, type ClusteringConfigInput, ClusteringEngine, type ContainerStats, CreateEdgesRequest, CreateEdgesResponse, CreateNodesRequest, CreateNodesResponse, DataProcessor, Database, DatabaseConfig, type DatabaseSettingsInput, DeleteEdgeResponse, DeleteNodeResponse, type DockerConfig, DockerManager, type DomainConfigInput, type EdgeCreateInput, type EdgeCreatedEventPayload, type EdgeDeletedEventPayload, EdgeEvidence, type EdgeEvidenceInput, type EdgeFilterInput, type EdgeUpdateInput, type EdgeUpdatedEventPayload, EmbeddingsService, type EnsureOptions, EventBus, type EventFilterOptions, type EventHandler, type EventMiddleware, type EventSource, type EventSubscription, ExpandGraphRequest, type ExpandGraphRequestInput, ExpandGraphResponse, FindPathRequest, type FindPathRequestInput, FindPathResponse, FindSimilarOptions, FindSimilarRequest, type FindSimilarRequestInput, FindSimilarResponse, GetAnalysisJobResponse, GetGraphParams, type GetGraphParamsInput, GetGraphResponse, GetNodeResponse, GetSettingsResponse, GraphFilters, type HealthCheckResult, ListEdgesParams, type ListEdgesParamsInput, ListEdgesResponse, ListNodesParams, type ListNodesParamsInput, ListNodesResponse, type LogOptions, NeuronCluster, NeuronConfig, type NeuronConfigInput, NeuronEdge, type NeuronEvent, type NeuronEventEmitter, type NeuronEventType, NeuronNode, NeuronNodeCreate, NeuronNodeUpdate, NeuronSettings, type NeuronSettingsInput, NeuronSettingsUpdate, type NeuronSettingsUpdateInput, NeuronVisualCluster, NeuronVisualEdge, NeuronVisualNode, NeuronWebProvider, type NodeBatchCreateInput, type NodeBatchCreatedEventPayload, type NodeCreateInput, type NodeCreatedEventPayload, type NodeDeletedEventPayload, type NodeFilterInput, type NodeTypeConfigInput, type NodeUpdateInput, type NodeUpdatedEventPayload, type PaginationInput, RelationshipEngine, type RelationshipInferredEventPayload, type RelationshipRejectedEventPayload, RelationshipType, type RelationshipTypeConfigInput, ResetSettingsResponse, ScoringEngine, SearchResult, SemanticSearchOptions, SemanticSearchRequest, type SemanticSearchRequestInput, SemanticSearchResponse, type SettingsUpdatedEventPayload, type StartOptions, type StopOptions, UpdateEdgeRequest, UpdateNodeRequest, UpdateSettingsRequest, UpdateSettingsResponse, type UseNeuronGraphOptions, type UseNeuronNodesOptions, VERSION, VisualizationSettings, type VisualizationSettingsInput, type VizCameraChangedEventPayload, type VizFilterAppliedEventPayload, type VizNodeFocusedEventPayload, type VizNodeHoveredEventPayload, type VizNodeSelectedEventPayload, type VizPathCompletedEventPayload, type VizPathStartedEventPayload, analysisOptionsSchema, analysisRequestSchema, analysisSettingsSchema, clusterCreateSchema, clusterUpdateSchema, clusteringConfigSchema, createAnalysisEvent, createDatabase, createDatabaseFromEnv, createEdgeEvent, createEvent, createGenericEvent, createNodeEvent, databaseSettingsSchema, defineNeuronConfig, domainConfigSchema, edgeCreateSchema, edgeEvidenceSchema, edgeFilterSchema, edgeUpdateSchema, expandGraphRequestSchema, findPathRequestSchema, findSimilarRequestSchema, getDatabase, getGraphParamsSchema, listEdgesParamsSchema, listNodesParamsSchema, loggingMiddleware, neuronConfigSchema, neuronSettingsSchema, neuronSettingsUpdateSchema, nodeBatchCreateSchema, nodeCreateSchema, nodeFilterSchema, nodeTierSchema, nodeTypeConfigSchema, nodeUpdateSchema, paginationSchema, relationshipTypeConfigSchema, resetDatabaseSingleton, semanticSearchRequestSchema, useAnalysisEvents, useNeuronAnalysis, useNeuronContext, useNeuronEvents, useNeuronGraph, useNeuronNodes, useNeuronSearch, useNeuronSettings, useNodeEvents, validationMiddleware, visualizationSettingsSchema };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export { NeuronWeb } from './chunk-GPDX3O37.js';
|
|
2
|
+
import { nodeCreateSchema, DEFAULT_ANALYSIS_SETTINGS, DEFAULT_VISUALIZATION_SETTINGS } from './chunk-6LW4KNAU.js';
|
|
3
|
+
export { DEFAULT_ANALYSIS_SETTINGS, DEFAULT_VISUALIZATION_SETTINGS, ScoringEngine, analysisOptionsSchema, analysisRequestSchema, analysisSettingsSchema, buildDelete, buildInsert, buildSelect, buildUpdate, buildWhereClause, createDatabase, createDatabaseFromEnv, databaseSettingsSchema, domainConfigSchema, edgeCreateSchema, edgeEvidenceSchema, edgeFilterSchema, edgeUpdateSchema, expandGraphRequestSchema, findPathRequestSchema, findSimilarRequestSchema, getDatabase, getGraphParamsSchema, listEdgesParamsSchema, listNodesParamsSchema, neuronConfigSchema, neuronSettingsSchema, neuronSettingsUpdateSchema, nodeBatchCreateSchema, nodeCreateSchema, nodeFilterSchema, nodeTierSchema, nodeTypeConfigSchema, nodeUpdateSchema, paginationSchema, relationshipTypeConfigSchema, resetDatabaseSingleton, semanticSearchRequestSchema, visualizationSettingsSchema } from './chunk-6LW4KNAU.js';
|
|
3
4
|
export { DockerManager } from './chunk-TFLMPBX7.js';
|
|
4
5
|
import { createEvent, EventBus } from './chunk-RQCGONPN.js';
|
|
5
6
|
export { AnalysisPipeline, ClusteringEngine, Database, EmbeddingsService, EventBus, RelationshipEngine, createEvent } from './chunk-RQCGONPN.js';
|
|
@@ -556,7 +557,7 @@ var NeuronApiClient = class {
|
|
|
556
557
|
var buildDefaultConfig = (overrides) => ({
|
|
557
558
|
instance: {
|
|
558
559
|
name: "default",
|
|
559
|
-
version: "0.1.
|
|
560
|
+
version: "0.1.1",
|
|
560
561
|
repoName: "omi-neuron-web"
|
|
561
562
|
},
|
|
562
563
|
visualization: { ...DEFAULT_VISUALIZATION_SETTINGS, ...overrides?.visualization ?? {} },
|
|
@@ -647,7 +648,7 @@ function NeuronWebProvider({ children, config }) {
|
|
|
647
648
|
}
|
|
648
649
|
|
|
649
650
|
// src/index.ts
|
|
650
|
-
var VERSION = "0.1.
|
|
651
|
+
var VERSION = "0.1.1";
|
|
651
652
|
|
|
652
653
|
export { DataProcessor, NeuronWebProvider, VERSION, clusterCreateSchema, clusterUpdateSchema, clusteringConfigSchema, createAnalysisEvent, createEdgeEvent, createGenericEvent, createNodeEvent, defineNeuronConfig, loggingMiddleware, useAnalysisEvents, useNeuronAnalysis, useNeuronContext, useNeuronEvents, useNeuronGraph, useNeuronNodes, useNeuronSearch, useNeuronSettings, useNodeEvents, validationMiddleware };
|
|
653
654
|
//# sourceMappingURL=index.js.map
|