@elqnt/kg 1.0.10 → 1.0.11
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/dist/index.js +13 -13
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -272,7 +272,8 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
272
272
|
"kg.query.graph",
|
|
273
273
|
query,
|
|
274
274
|
{
|
|
275
|
-
orgId
|
|
275
|
+
orgId,
|
|
276
|
+
graphId: _optionalChain([selectedGraph, 'optionalAccess', _4 => _4.id])
|
|
276
277
|
}
|
|
277
278
|
);
|
|
278
279
|
setIsLoading(false);
|
|
@@ -292,7 +293,7 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
292
293
|
const data = await request(
|
|
293
294
|
"kg.query.nodeById",
|
|
294
295
|
{ id },
|
|
295
|
-
{ orgId }
|
|
296
|
+
{ orgId, graphId: _optionalChain([selectedGraph, 'optionalAccess', _5 => _5.id]) }
|
|
296
297
|
);
|
|
297
298
|
if (data instanceof Error) {
|
|
298
299
|
console.error(data);
|
|
@@ -311,7 +312,7 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
311
312
|
const data = await request(
|
|
312
313
|
"kg.graph.labels",
|
|
313
314
|
{},
|
|
314
|
-
{ orgId }
|
|
315
|
+
{ orgId, graphId: _optionalChain([selectedGraph, 'optionalAccess', _6 => _6.id]) }
|
|
315
316
|
);
|
|
316
317
|
setIsLoading(false);
|
|
317
318
|
if (data instanceof Error) {
|
|
@@ -320,10 +321,15 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
320
321
|
}
|
|
321
322
|
if (!Array.isArray(data) && typeof data === "object") {
|
|
322
323
|
const err = data;
|
|
323
|
-
return new Error(_nullishCoalesce(_nullishCoalesce(_optionalChain([err, 'optionalAccess',
|
|
324
|
+
return new Error(_nullishCoalesce(_nullishCoalesce(_optionalChain([err, 'optionalAccess', _7 => _7.message]), () => ( _optionalChain([err, 'optionalAccess', _8 => _8.error]))), () => ( err)));
|
|
324
325
|
}
|
|
325
326
|
return data;
|
|
326
327
|
}
|
|
328
|
+
_react.useEffect.call(void 0, () => {
|
|
329
|
+
setLabels(void 0);
|
|
330
|
+
setSelectedLabel(void 0);
|
|
331
|
+
setQueryResult(void 0);
|
|
332
|
+
}, [_optionalChain([selectedGraph, 'optionalAccess', _9 => _9.id])]);
|
|
327
333
|
_react.useEffect.call(void 0, () => {
|
|
328
334
|
if (!natsConnected || !orgId) {
|
|
329
335
|
return;
|
|
@@ -337,21 +343,19 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
337
343
|
return data;
|
|
338
344
|
}
|
|
339
345
|
getLabels();
|
|
340
|
-
}, [natsConnected, orgId, stateTrigger]);
|
|
346
|
+
}, [natsConnected, orgId, _optionalChain([selectedGraph, 'optionalAccess', _10 => _10.id]), stateTrigger]);
|
|
341
347
|
_react.useEffect.call(void 0, () => {
|
|
342
348
|
if (!natsConnected || !orgId || !selectedLabel) {
|
|
343
349
|
return;
|
|
344
350
|
}
|
|
345
351
|
async function getGraphQueryResult() {
|
|
346
352
|
if (!selectedLabel) return;
|
|
347
|
-
console.log("will getGraphQueryResult", { orgId, selectedLabel });
|
|
348
353
|
const query = {
|
|
349
354
|
label: selectedLabel,
|
|
350
355
|
fields: [],
|
|
351
356
|
limit: 500,
|
|
352
357
|
sortBy: "",
|
|
353
358
|
sortOrder: "asc",
|
|
354
|
-
// edges: [{ label: "student of", direction: "outgoing" }],
|
|
355
359
|
depth: 2
|
|
356
360
|
};
|
|
357
361
|
const res = await queryGraph(query);
|
|
@@ -360,13 +364,9 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
360
364
|
return;
|
|
361
365
|
}
|
|
362
366
|
setQueryResult(res);
|
|
363
|
-
console.log("graph query response ", {
|
|
364
|
-
nodesCount: _optionalChain([res, 'access', _6 => _6.nodes, 'optionalAccess', _7 => _7.length]),
|
|
365
|
-
edgesCount: _optionalChain([res, 'access', _8 => _8.edges, 'optionalAccess', _9 => _9.length])
|
|
366
|
-
});
|
|
367
367
|
}
|
|
368
368
|
getGraphQueryResult();
|
|
369
|
-
}, [natsConnected, orgId, selectedLabel, stateTrigger]);
|
|
369
|
+
}, [natsConnected, orgId, _optionalChain([selectedGraph, 'optionalAccess', _11 => _11.id]), selectedLabel, stateTrigger]);
|
|
370
370
|
function refreshState() {
|
|
371
371
|
setStateTrigger(stateTrigger + 1);
|
|
372
372
|
}
|
|
@@ -392,7 +392,7 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
392
392
|
// Graph selection
|
|
393
393
|
graphs,
|
|
394
394
|
selectedGraph,
|
|
395
|
-
selectedGraphId: _optionalChain([selectedGraph, 'optionalAccess',
|
|
395
|
+
selectedGraphId: _optionalChain([selectedGraph, 'optionalAccess', _12 => _12.id]),
|
|
396
396
|
graphsLoading,
|
|
397
397
|
graphsError,
|
|
398
398
|
selectGraph,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/index.js","../consts.ts","../hooks/use-knowledge-graph.ts","../hooks/use-knowledge-graph-analytics.ts","../state/knowledge-graph-context.tsx"],"names":["labels","useUserContext","useState","useNatsContext"],"mappings":"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","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/index.js","sourcesContent":[null,"export const Test = \"hi\";","\"use client\";\n\nimport { useUserContext } from \"@elqnt/auth\";\nimport { DocsIngestionRequest } from \"@elqnt/docs\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport {\n Graph,\n KGLabelInfo,\n KGNode,\n KGNodeIngestRequest,\n KGQuery,\n KGQueryResult,\n ListGraphsResult,\n} from \"../models\";\nimport { KGGraphList } from \"../models/kg-designer\";\n\ntype Success = { success: boolean };\n\nexport type UseKnowledgeGraphType = {\n isLoading: boolean;\n ingestNode: (node: KGNodeIngestRequest) => Promise<Success | Error>;\n ingestNodes: (node: KGNodeIngestRequest[]) => Promise<Success | Error>;\n updateNode: (\n nodeId: string,\n label: string,\n fields: Record<string, any>\n ) => Promise<Success | Error>;\n ingestDocs: (\n urls: string[],\n mode: \"documents\" | \"entities\" | \"snippets\",\n brief: string,\n labels: string[]\n ) => Promise<Success | Error>;\n\n ingestText: (\n text: string,\n mode: \"entities\" | \"snippets\"\n ) => Promise<Success | Error>;\n\n ingestYT: (url: string) => Promise<Success | Error>;\n\n queryGraph: (query: KGQuery) => Promise<KGQueryResult>;\n getGraphLabels: () => Promise<KGLabelInfo[] | Error>;\n labels: KGLabelInfo[] | undefined;\n selectedLabel: string | undefined;\n setSelectedLabel: (label: string) => void;\n queryResult: KGQueryResult | undefined;\n setQueryResult: (res: KGQueryResult) => void;\n refreshState: () => void;\n selectedNodeId: string | undefined;\n setSelectedNodeId: (id: string | undefined) => void;\n getNodeById: (id: string) => Promise<KGNode | Error>;\n\n // Graph selection\n graphs: Graph[];\n selectedGraph: Graph | undefined;\n selectedGraphId: string | undefined;\n graphsLoading: boolean;\n graphsError: string | undefined;\n selectGraph: (graphId: string | undefined) => void;\n refreshGraphs: () => Promise<void>;\n};\n\nexport const useKnowledgeGraph = (\n overrideOrgId?: string\n): UseKnowledgeGraphType => {\n const { selectedOrgId } = useUserContext();\n const [isLoading, setIsLoading] = useState(false);\n const { natsConnected, request } = useNatsContext();\n const [selectedNodeId, setSelectedNodeId] = useState<string | undefined>(\n undefined\n );\n\n const orgId = overrideOrgId ?? selectedOrgId;\n\n const [labels, setLabels] = useState<KGLabelInfo[] | undefined>(undefined);\n const [selectedLabel, setSelectedLabel] = useState<string | undefined>(\n undefined\n );\n const [queryResult, setQueryResult] = useState<KGQueryResult | undefined>(\n undefined\n );\n\n const [stateTrigger, setStateTrigger] = useState(0);\n\n // --- Graph selection state ---\n const [graphs, setGraphs] = useState<Graph[]>([]);\n const [graphsLoading, setGraphsLoading] = useState(true);\n const [graphsError, setGraphsError] = useState<string | undefined>();\n const [selectedGraphId, setSelectedGraphId] = useState<string | undefined>();\n\n const selectedGraph = useMemo(() => {\n if (!selectedGraphId) {\n return graphs.find((g) => g.isDefault) || graphs[0];\n }\n return graphs.find((g) => g.id === selectedGraphId);\n }, [graphs, selectedGraphId]);\n\n function selectGraph(graphId: string | undefined) {\n setSelectedGraphId(graphId);\n }\n\n async function refreshGraphs() {\n if (!orgId || !natsConnected) return;\n\n setGraphsLoading(true);\n setGraphsError(undefined);\n\n const data = await request<{}, ListGraphsResult>(KGGraphList, {}, { orgId });\n\n if (data instanceof Error) {\n setGraphsError(data.message);\n setGraphsLoading(false);\n return;\n }\n\n if (data.success !== false) {\n const loadedGraphs = data.graphs || [];\n setGraphs(loadedGraphs);\n\n // Auto-select default graph only if nothing is selected\n setSelectedGraphId((prev) => {\n if (!prev && loadedGraphs.length) {\n const defaultGraph = loadedGraphs.find((g) => g.isDefault);\n return defaultGraph?.id || loadedGraphs[0]?.id;\n }\n return prev;\n });\n } else {\n setGraphsError(data.error || \"Failed to load graphs\");\n }\n\n setGraphsLoading(false);\n }\n\n // Load graphs when NATS connects or org changes\n useEffect(() => {\n if (!natsConnected || !orgId) return;\n setSelectedGraphId(undefined);\n refreshGraphs();\n }, [natsConnected, orgId]);\n\n async function ingestNode(\n node: KGNodeIngestRequest\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<KGNodeIngestRequest, Success>(\n \"kg.ingest.node\",\n node,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestNodes(\n nodes: KGNodeIngestRequest[]\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<KGNodeIngestRequest[], Success>(\n \"kg.ingest.nodes\",\n nodes,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function updateNode(\n nodeId: string,\n label: string,\n fields: Record<string, any>\n ): Promise<Success | Error> {\n const nodeRequest: KGNodeIngestRequest = {\n label,\n keyField: \"id\",\n fields: {\n ...fields,\n id: nodeId,\n },\n duplicatePolicy: \"replace\",\n };\n\n const result = await ingestNode(nodeRequest);\n\n // Optimize graph after successful update (non-blocking, with delay)\n if (!(result instanceof Error)) {\n // Wait 2 seconds to ensure node is fully written to ClickHouse\n setTimeout(() => {\n optimizeGraph().catch(err =>\n console.error(\"Failed to optimize graph after node update:\", err)\n );\n }, 2000);\n }\n\n return result;\n }\n\n async function optimizeGraph(): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n const data = await request<{}, Success>(\n \"kg.graph.optimize\",\n {},\n {\n orgId,\n }\n );\n\n if (data instanceof Error) {\n console.error(\"Graph optimization failed:\", data);\n return data;\n }\n\n console.log(\"Graph optimized successfully\");\n return data;\n }\n\n async function ingestDocs(\n urls: string[],\n mode: \"documents\" | \"entities\" | \"snippets\",\n brief: string,\n labels: string[]\n ): Promise<Success | Error> {\n // todo: implement\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<DocsIngestionRequest, Success>(\n \"docs.kg.ingest\",\n { urls, mode, brief, labels },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestText(\n text: string,\n mode: \"entities\" | \"snippets\"\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<any, Success>(\n \"docs.kg.ingestText\",\n { text, mode },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestYT(url: string): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<any, Success>(\n \"docs.kg.ingestYT\",\n { url },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function queryGraph(query: KGQuery): Promise<KGQueryResult> {\n if (!orgId) {\n throw new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n\n const data = await request<KGQuery, KGQueryResult>(\n \"kg.query.graph\",\n query,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function getNodeById(id: string): Promise<KGNode | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n const data = await request<any, KGNode>(\n \"kg.query.nodeById\",\n { id },\n { orgId }\n );\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function getGraphLabels(): Promise<KGLabelInfo[] | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n // console.log(\"getGraphLabels\", { orgId });\n\n setIsLoading(true);\n\n const data = await request<any, KGLabelInfo[]>(\n \"kg.graph.labels\",\n {},\n { orgId }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n // todo: global error\n if (!Array.isArray(data) && typeof data === \"object\") {\n const err = data as any;\n return new Error(err?.message ?? err?.error ?? err);\n }\n\n return data;\n }\n\n useEffect(() => {\n if (!natsConnected || !orgId) {\n return;\n }\n async function getLabels(): Promise<KGLabelInfo[] | Error> {\n const data = await getGraphLabels();\n if (data instanceof Error) {\n // console.error(data);\n return [];\n }\n setLabels(data);\n return data;\n }\n getLabels();\n }, [natsConnected, orgId, stateTrigger]);\n\n useEffect(() => {\n if (!natsConnected || !orgId || !selectedLabel) {\n return;\n }\n async function getGraphQueryResult() {\n if (!selectedLabel) return;\n\n console.log(\"will getGraphQueryResult\", { orgId, selectedLabel });\n\n const query: KGQuery = {\n label: selectedLabel,\n fields: [],\n limit: 5_00,\n sortBy: \"\",\n sortOrder: \"asc\",\n // edges: [{ label: \"student of\", direction: \"outgoing\" }],\n depth: 2,\n };\n\n const res = await queryGraph(query);\n\n if (res instanceof Error) {\n console.error(res);\n return;\n }\n setQueryResult(res);\n console.log(\"graph query response \", {\n nodesCount: res.nodes?.length,\n edgesCount: res.edges?.length,\n });\n }\n getGraphQueryResult();\n }, [natsConnected, orgId, selectedLabel, stateTrigger]);\n\n function refreshState() {\n setStateTrigger(stateTrigger + 1);\n }\n\n return {\n isLoading,\n ingestNode,\n ingestNodes,\n updateNode,\n queryGraph,\n getNodeById,\n getGraphLabels,\n labels,\n selectedLabel,\n setSelectedLabel,\n queryResult,\n setQueryResult,\n refreshState,\n ingestDocs,\n ingestText,\n selectedNodeId,\n setSelectedNodeId,\n ingestYT,\n\n // Graph selection\n graphs,\n selectedGraph,\n selectedGraphId: selectedGraph?.id,\n graphsLoading,\n graphsError,\n selectGraph,\n refreshGraphs,\n };\n};\n","\"use client\";\n\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useUserContext } from \"@elqnt/auth\";\nimport { useState } from \"react\";\nexport type UseKnowledgeGraphAnalyticsType = {\n isLoading: boolean;\n};\n\nexport const useKnowledgeGraphAnalytics = (\n overrideOrgId?: string\n): UseKnowledgeGraphAnalyticsType => {\n const { selectedOrgId } = useUserContext();\n const [isLoading, setIsLoading] = useState(false);\n const { natsConnected, request } = useNatsContext();\n\n return {\n isLoading,\n };\n};\n","\"use client\";\n\nimport { ReactNode, createContext, useContext } from \"react\";\nimport {\n UseKnowledgeGraphType,\n useKnowledgeGraph,\n} from \"../hooks/use-knowledge-graph\";\n\nexport const KnowledgeGraphContext = createContext<\n UseKnowledgeGraphType | undefined\n>(undefined);\n\nexport function KnowledgeGraphContextProvider(props: {\n children: ReactNode;\n overrideOrgId?: string;\n}) {\n const { children, overrideOrgId } = props;\n\n const useKG = useKnowledgeGraph(overrideOrgId);\n\n return (\n <KnowledgeGraphContext.Provider value={useKG}>\n {children}\n </KnowledgeGraphContext.Provider>\n );\n}\n\nexport const useKnowledgeGraphContext = () => {\n const context = useContext(KnowledgeGraphContext);\n if (context === undefined) {\n throw new Error(\n \"useKnowledgeGraphContext must be used within a KnowledgeGraphContextProvider\"\n );\n }\n return context;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/index.js","../consts.ts","../hooks/use-knowledge-graph.ts","../hooks/use-knowledge-graph-analytics.ts","../state/knowledge-graph-context.tsx"],"names":["labels","useUserContext","useState","useNatsContext"],"mappings":"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","file":"/home/runner/work/eloquent-packages/eloquent-packages/packages/kg/dist/index.js","sourcesContent":[null,"export const Test = \"hi\";","\"use client\";\n\nimport { useUserContext } from \"@elqnt/auth\";\nimport { DocsIngestionRequest } from \"@elqnt/docs\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport {\n Graph,\n KGLabelInfo,\n KGNode,\n KGNodeIngestRequest,\n KGQuery,\n KGQueryResult,\n ListGraphsResult,\n} from \"../models\";\nimport { KGGraphList } from \"../models/kg-designer\";\n\ntype Success = { success: boolean };\n\nexport type UseKnowledgeGraphType = {\n isLoading: boolean;\n ingestNode: (node: KGNodeIngestRequest) => Promise<Success | Error>;\n ingestNodes: (node: KGNodeIngestRequest[]) => Promise<Success | Error>;\n updateNode: (\n nodeId: string,\n label: string,\n fields: Record<string, any>\n ) => Promise<Success | Error>;\n ingestDocs: (\n urls: string[],\n mode: \"documents\" | \"entities\" | \"snippets\",\n brief: string,\n labels: string[]\n ) => Promise<Success | Error>;\n\n ingestText: (\n text: string,\n mode: \"entities\" | \"snippets\"\n ) => Promise<Success | Error>;\n\n ingestYT: (url: string) => Promise<Success | Error>;\n\n queryGraph: (query: KGQuery) => Promise<KGQueryResult>;\n getGraphLabels: () => Promise<KGLabelInfo[] | Error>;\n labels: KGLabelInfo[] | undefined;\n selectedLabel: string | undefined;\n setSelectedLabel: (label: string) => void;\n queryResult: KGQueryResult | undefined;\n setQueryResult: (res: KGQueryResult) => void;\n refreshState: () => void;\n selectedNodeId: string | undefined;\n setSelectedNodeId: (id: string | undefined) => void;\n getNodeById: (id: string) => Promise<KGNode | Error>;\n\n // Graph selection\n graphs: Graph[];\n selectedGraph: Graph | undefined;\n selectedGraphId: string | undefined;\n graphsLoading: boolean;\n graphsError: string | undefined;\n selectGraph: (graphId: string | undefined) => void;\n refreshGraphs: () => Promise<void>;\n};\n\nexport const useKnowledgeGraph = (\n overrideOrgId?: string\n): UseKnowledgeGraphType => {\n const { selectedOrgId } = useUserContext();\n const [isLoading, setIsLoading] = useState(false);\n const { natsConnected, request } = useNatsContext();\n const [selectedNodeId, setSelectedNodeId] = useState<string | undefined>(\n undefined\n );\n\n const orgId = overrideOrgId ?? selectedOrgId;\n\n const [labels, setLabels] = useState<KGLabelInfo[] | undefined>(undefined);\n const [selectedLabel, setSelectedLabel] = useState<string | undefined>(\n undefined\n );\n const [queryResult, setQueryResult] = useState<KGQueryResult | undefined>(\n undefined\n );\n\n const [stateTrigger, setStateTrigger] = useState(0);\n\n // --- Graph selection state ---\n const [graphs, setGraphs] = useState<Graph[]>([]);\n const [graphsLoading, setGraphsLoading] = useState(true);\n const [graphsError, setGraphsError] = useState<string | undefined>();\n const [selectedGraphId, setSelectedGraphId] = useState<string | undefined>();\n\n const selectedGraph = useMemo(() => {\n if (!selectedGraphId) {\n return graphs.find((g) => g.isDefault) || graphs[0];\n }\n return graphs.find((g) => g.id === selectedGraphId);\n }, [graphs, selectedGraphId]);\n\n function selectGraph(graphId: string | undefined) {\n setSelectedGraphId(graphId);\n }\n\n async function refreshGraphs() {\n if (!orgId || !natsConnected) return;\n\n setGraphsLoading(true);\n setGraphsError(undefined);\n\n const data = await request<{}, ListGraphsResult>(KGGraphList, {}, { orgId });\n\n if (data instanceof Error) {\n setGraphsError(data.message);\n setGraphsLoading(false);\n return;\n }\n\n if (data.success !== false) {\n const loadedGraphs = data.graphs || [];\n setGraphs(loadedGraphs);\n\n // Auto-select default graph only if nothing is selected\n setSelectedGraphId((prev) => {\n if (!prev && loadedGraphs.length) {\n const defaultGraph = loadedGraphs.find((g) => g.isDefault);\n return defaultGraph?.id || loadedGraphs[0]?.id;\n }\n return prev;\n });\n } else {\n setGraphsError(data.error || \"Failed to load graphs\");\n }\n\n setGraphsLoading(false);\n }\n\n // Load graphs when NATS connects or org changes\n useEffect(() => {\n if (!natsConnected || !orgId) return;\n setSelectedGraphId(undefined);\n refreshGraphs();\n }, [natsConnected, orgId]);\n\n async function ingestNode(\n node: KGNodeIngestRequest\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<KGNodeIngestRequest, Success>(\n \"kg.ingest.node\",\n node,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestNodes(\n nodes: KGNodeIngestRequest[]\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<KGNodeIngestRequest[], Success>(\n \"kg.ingest.nodes\",\n nodes,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function updateNode(\n nodeId: string,\n label: string,\n fields: Record<string, any>\n ): Promise<Success | Error> {\n const nodeRequest: KGNodeIngestRequest = {\n label,\n keyField: \"id\",\n fields: {\n ...fields,\n id: nodeId,\n },\n duplicatePolicy: \"replace\",\n };\n\n const result = await ingestNode(nodeRequest);\n\n // Optimize graph after successful update (non-blocking, with delay)\n if (!(result instanceof Error)) {\n // Wait 2 seconds to ensure node is fully written to ClickHouse\n setTimeout(() => {\n optimizeGraph().catch(err =>\n console.error(\"Failed to optimize graph after node update:\", err)\n );\n }, 2000);\n }\n\n return result;\n }\n\n async function optimizeGraph(): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n const data = await request<{}, Success>(\n \"kg.graph.optimize\",\n {},\n {\n orgId,\n }\n );\n\n if (data instanceof Error) {\n console.error(\"Graph optimization failed:\", data);\n return data;\n }\n\n console.log(\"Graph optimized successfully\");\n return data;\n }\n\n async function ingestDocs(\n urls: string[],\n mode: \"documents\" | \"entities\" | \"snippets\",\n brief: string,\n labels: string[]\n ): Promise<Success | Error> {\n // todo: implement\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<DocsIngestionRequest, Success>(\n \"docs.kg.ingest\",\n { urls, mode, brief, labels },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestText(\n text: string,\n mode: \"entities\" | \"snippets\"\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<any, Success>(\n \"docs.kg.ingestText\",\n { text, mode },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestYT(url: string): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<any, Success>(\n \"docs.kg.ingestYT\",\n { url },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function queryGraph(query: KGQuery): Promise<KGQueryResult> {\n if (!orgId) {\n throw new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n\n const data = await request<KGQuery, KGQueryResult>(\n \"kg.query.graph\",\n query,\n {\n orgId,\n graphId: selectedGraph?.id,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function getNodeById(id: string): Promise<KGNode | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n const data = await request<any, KGNode>(\n \"kg.query.nodeById\",\n { id },\n { orgId, graphId: selectedGraph?.id }\n );\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function getGraphLabels(): Promise<KGLabelInfo[] | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n // console.log(\"getGraphLabels\", { orgId });\n\n setIsLoading(true);\n\n const data = await request<any, KGLabelInfo[]>(\n \"kg.graph.labels\",\n {},\n { orgId, graphId: selectedGraph?.id }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n // todo: global error\n if (!Array.isArray(data) && typeof data === \"object\") {\n const err = data as any;\n return new Error(err?.message ?? err?.error ?? err);\n }\n\n return data;\n }\n\n // Reset labels and query state when graph changes\n useEffect(() => {\n setLabels(undefined);\n setSelectedLabel(undefined);\n setQueryResult(undefined);\n }, [selectedGraph?.id]);\n\n useEffect(() => {\n if (!natsConnected || !orgId) {\n return;\n }\n async function getLabels(): Promise<KGLabelInfo[] | Error> {\n const data = await getGraphLabels();\n if (data instanceof Error) {\n // console.error(data);\n return [];\n }\n setLabels(data);\n return data;\n }\n getLabels();\n }, [natsConnected, orgId, selectedGraph?.id, stateTrigger]);\n\n useEffect(() => {\n if (!natsConnected || !orgId || !selectedLabel) {\n return;\n }\n async function getGraphQueryResult() {\n if (!selectedLabel) return;\n\n const query: KGQuery = {\n label: selectedLabel,\n fields: [],\n limit: 5_00,\n sortBy: \"\",\n sortOrder: \"asc\",\n depth: 2,\n };\n\n const res = await queryGraph(query);\n\n if (res instanceof Error) {\n console.error(res);\n return;\n }\n setQueryResult(res);\n }\n getGraphQueryResult();\n }, [natsConnected, orgId, selectedGraph?.id, selectedLabel, stateTrigger]);\n\n function refreshState() {\n setStateTrigger(stateTrigger + 1);\n }\n\n return {\n isLoading,\n ingestNode,\n ingestNodes,\n updateNode,\n queryGraph,\n getNodeById,\n getGraphLabels,\n labels,\n selectedLabel,\n setSelectedLabel,\n queryResult,\n setQueryResult,\n refreshState,\n ingestDocs,\n ingestText,\n selectedNodeId,\n setSelectedNodeId,\n ingestYT,\n\n // Graph selection\n graphs,\n selectedGraph,\n selectedGraphId: selectedGraph?.id,\n graphsLoading,\n graphsError,\n selectGraph,\n refreshGraphs,\n };\n};\n","\"use client\";\n\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useUserContext } from \"@elqnt/auth\";\nimport { useState } from \"react\";\nexport type UseKnowledgeGraphAnalyticsType = {\n isLoading: boolean;\n};\n\nexport const useKnowledgeGraphAnalytics = (\n overrideOrgId?: string\n): UseKnowledgeGraphAnalyticsType => {\n const { selectedOrgId } = useUserContext();\n const [isLoading, setIsLoading] = useState(false);\n const { natsConnected, request } = useNatsContext();\n\n return {\n isLoading,\n };\n};\n","\"use client\";\n\nimport { ReactNode, createContext, useContext } from \"react\";\nimport {\n UseKnowledgeGraphType,\n useKnowledgeGraph,\n} from \"../hooks/use-knowledge-graph\";\n\nexport const KnowledgeGraphContext = createContext<\n UseKnowledgeGraphType | undefined\n>(undefined);\n\nexport function KnowledgeGraphContextProvider(props: {\n children: ReactNode;\n overrideOrgId?: string;\n}) {\n const { children, overrideOrgId } = props;\n\n const useKG = useKnowledgeGraph(overrideOrgId);\n\n return (\n <KnowledgeGraphContext.Provider value={useKG}>\n {children}\n </KnowledgeGraphContext.Provider>\n );\n}\n\nexport const useKnowledgeGraphContext = () => {\n const context = useContext(KnowledgeGraphContext);\n if (context === undefined) {\n throw new Error(\n \"useKnowledgeGraphContext must be used within a KnowledgeGraphContextProvider\"\n );\n }\n return context;\n};\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -272,7 +272,8 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
272
272
|
"kg.query.graph",
|
|
273
273
|
query,
|
|
274
274
|
{
|
|
275
|
-
orgId
|
|
275
|
+
orgId,
|
|
276
|
+
graphId: selectedGraph?.id
|
|
276
277
|
}
|
|
277
278
|
);
|
|
278
279
|
setIsLoading(false);
|
|
@@ -292,7 +293,7 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
292
293
|
const data = await request(
|
|
293
294
|
"kg.query.nodeById",
|
|
294
295
|
{ id },
|
|
295
|
-
{ orgId }
|
|
296
|
+
{ orgId, graphId: selectedGraph?.id }
|
|
296
297
|
);
|
|
297
298
|
if (data instanceof Error) {
|
|
298
299
|
console.error(data);
|
|
@@ -311,7 +312,7 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
311
312
|
const data = await request(
|
|
312
313
|
"kg.graph.labels",
|
|
313
314
|
{},
|
|
314
|
-
{ orgId }
|
|
315
|
+
{ orgId, graphId: selectedGraph?.id }
|
|
315
316
|
);
|
|
316
317
|
setIsLoading(false);
|
|
317
318
|
if (data instanceof Error) {
|
|
@@ -324,6 +325,11 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
324
325
|
}
|
|
325
326
|
return data;
|
|
326
327
|
}
|
|
328
|
+
useEffect(() => {
|
|
329
|
+
setLabels(void 0);
|
|
330
|
+
setSelectedLabel(void 0);
|
|
331
|
+
setQueryResult(void 0);
|
|
332
|
+
}, [selectedGraph?.id]);
|
|
327
333
|
useEffect(() => {
|
|
328
334
|
if (!natsConnected || !orgId) {
|
|
329
335
|
return;
|
|
@@ -337,21 +343,19 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
337
343
|
return data;
|
|
338
344
|
}
|
|
339
345
|
getLabels();
|
|
340
|
-
}, [natsConnected, orgId, stateTrigger]);
|
|
346
|
+
}, [natsConnected, orgId, selectedGraph?.id, stateTrigger]);
|
|
341
347
|
useEffect(() => {
|
|
342
348
|
if (!natsConnected || !orgId || !selectedLabel) {
|
|
343
349
|
return;
|
|
344
350
|
}
|
|
345
351
|
async function getGraphQueryResult() {
|
|
346
352
|
if (!selectedLabel) return;
|
|
347
|
-
console.log("will getGraphQueryResult", { orgId, selectedLabel });
|
|
348
353
|
const query = {
|
|
349
354
|
label: selectedLabel,
|
|
350
355
|
fields: [],
|
|
351
356
|
limit: 500,
|
|
352
357
|
sortBy: "",
|
|
353
358
|
sortOrder: "asc",
|
|
354
|
-
// edges: [{ label: "student of", direction: "outgoing" }],
|
|
355
359
|
depth: 2
|
|
356
360
|
};
|
|
357
361
|
const res = await queryGraph(query);
|
|
@@ -360,13 +364,9 @@ var useKnowledgeGraph = (overrideOrgId) => {
|
|
|
360
364
|
return;
|
|
361
365
|
}
|
|
362
366
|
setQueryResult(res);
|
|
363
|
-
console.log("graph query response ", {
|
|
364
|
-
nodesCount: res.nodes?.length,
|
|
365
|
-
edgesCount: res.edges?.length
|
|
366
|
-
});
|
|
367
367
|
}
|
|
368
368
|
getGraphQueryResult();
|
|
369
|
-
}, [natsConnected, orgId, selectedLabel, stateTrigger]);
|
|
369
|
+
}, [natsConnected, orgId, selectedGraph?.id, selectedLabel, stateTrigger]);
|
|
370
370
|
function refreshState() {
|
|
371
371
|
setStateTrigger(stateTrigger + 1);
|
|
372
372
|
}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../consts.ts","../hooks/use-knowledge-graph.ts","../hooks/use-knowledge-graph-analytics.ts","../state/knowledge-graph-context.tsx"],"sourcesContent":["export const Test = \"hi\";","\"use client\";\n\nimport { useUserContext } from \"@elqnt/auth\";\nimport { DocsIngestionRequest } from \"@elqnt/docs\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport {\n Graph,\n KGLabelInfo,\n KGNode,\n KGNodeIngestRequest,\n KGQuery,\n KGQueryResult,\n ListGraphsResult,\n} from \"../models\";\nimport { KGGraphList } from \"../models/kg-designer\";\n\ntype Success = { success: boolean };\n\nexport type UseKnowledgeGraphType = {\n isLoading: boolean;\n ingestNode: (node: KGNodeIngestRequest) => Promise<Success | Error>;\n ingestNodes: (node: KGNodeIngestRequest[]) => Promise<Success | Error>;\n updateNode: (\n nodeId: string,\n label: string,\n fields: Record<string, any>\n ) => Promise<Success | Error>;\n ingestDocs: (\n urls: string[],\n mode: \"documents\" | \"entities\" | \"snippets\",\n brief: string,\n labels: string[]\n ) => Promise<Success | Error>;\n\n ingestText: (\n text: string,\n mode: \"entities\" | \"snippets\"\n ) => Promise<Success | Error>;\n\n ingestYT: (url: string) => Promise<Success | Error>;\n\n queryGraph: (query: KGQuery) => Promise<KGQueryResult>;\n getGraphLabels: () => Promise<KGLabelInfo[] | Error>;\n labels: KGLabelInfo[] | undefined;\n selectedLabel: string | undefined;\n setSelectedLabel: (label: string) => void;\n queryResult: KGQueryResult | undefined;\n setQueryResult: (res: KGQueryResult) => void;\n refreshState: () => void;\n selectedNodeId: string | undefined;\n setSelectedNodeId: (id: string | undefined) => void;\n getNodeById: (id: string) => Promise<KGNode | Error>;\n\n // Graph selection\n graphs: Graph[];\n selectedGraph: Graph | undefined;\n selectedGraphId: string | undefined;\n graphsLoading: boolean;\n graphsError: string | undefined;\n selectGraph: (graphId: string | undefined) => void;\n refreshGraphs: () => Promise<void>;\n};\n\nexport const useKnowledgeGraph = (\n overrideOrgId?: string\n): UseKnowledgeGraphType => {\n const { selectedOrgId } = useUserContext();\n const [isLoading, setIsLoading] = useState(false);\n const { natsConnected, request } = useNatsContext();\n const [selectedNodeId, setSelectedNodeId] = useState<string | undefined>(\n undefined\n );\n\n const orgId = overrideOrgId ?? selectedOrgId;\n\n const [labels, setLabels] = useState<KGLabelInfo[] | undefined>(undefined);\n const [selectedLabel, setSelectedLabel] = useState<string | undefined>(\n undefined\n );\n const [queryResult, setQueryResult] = useState<KGQueryResult | undefined>(\n undefined\n );\n\n const [stateTrigger, setStateTrigger] = useState(0);\n\n // --- Graph selection state ---\n const [graphs, setGraphs] = useState<Graph[]>([]);\n const [graphsLoading, setGraphsLoading] = useState(true);\n const [graphsError, setGraphsError] = useState<string | undefined>();\n const [selectedGraphId, setSelectedGraphId] = useState<string | undefined>();\n\n const selectedGraph = useMemo(() => {\n if (!selectedGraphId) {\n return graphs.find((g) => g.isDefault) || graphs[0];\n }\n return graphs.find((g) => g.id === selectedGraphId);\n }, [graphs, selectedGraphId]);\n\n function selectGraph(graphId: string | undefined) {\n setSelectedGraphId(graphId);\n }\n\n async function refreshGraphs() {\n if (!orgId || !natsConnected) return;\n\n setGraphsLoading(true);\n setGraphsError(undefined);\n\n const data = await request<{}, ListGraphsResult>(KGGraphList, {}, { orgId });\n\n if (data instanceof Error) {\n setGraphsError(data.message);\n setGraphsLoading(false);\n return;\n }\n\n if (data.success !== false) {\n const loadedGraphs = data.graphs || [];\n setGraphs(loadedGraphs);\n\n // Auto-select default graph only if nothing is selected\n setSelectedGraphId((prev) => {\n if (!prev && loadedGraphs.length) {\n const defaultGraph = loadedGraphs.find((g) => g.isDefault);\n return defaultGraph?.id || loadedGraphs[0]?.id;\n }\n return prev;\n });\n } else {\n setGraphsError(data.error || \"Failed to load graphs\");\n }\n\n setGraphsLoading(false);\n }\n\n // Load graphs when NATS connects or org changes\n useEffect(() => {\n if (!natsConnected || !orgId) return;\n setSelectedGraphId(undefined);\n refreshGraphs();\n }, [natsConnected, orgId]);\n\n async function ingestNode(\n node: KGNodeIngestRequest\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<KGNodeIngestRequest, Success>(\n \"kg.ingest.node\",\n node,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestNodes(\n nodes: KGNodeIngestRequest[]\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<KGNodeIngestRequest[], Success>(\n \"kg.ingest.nodes\",\n nodes,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function updateNode(\n nodeId: string,\n label: string,\n fields: Record<string, any>\n ): Promise<Success | Error> {\n const nodeRequest: KGNodeIngestRequest = {\n label,\n keyField: \"id\",\n fields: {\n ...fields,\n id: nodeId,\n },\n duplicatePolicy: \"replace\",\n };\n\n const result = await ingestNode(nodeRequest);\n\n // Optimize graph after successful update (non-blocking, with delay)\n if (!(result instanceof Error)) {\n // Wait 2 seconds to ensure node is fully written to ClickHouse\n setTimeout(() => {\n optimizeGraph().catch(err =>\n console.error(\"Failed to optimize graph after node update:\", err)\n );\n }, 2000);\n }\n\n return result;\n }\n\n async function optimizeGraph(): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n const data = await request<{}, Success>(\n \"kg.graph.optimize\",\n {},\n {\n orgId,\n }\n );\n\n if (data instanceof Error) {\n console.error(\"Graph optimization failed:\", data);\n return data;\n }\n\n console.log(\"Graph optimized successfully\");\n return data;\n }\n\n async function ingestDocs(\n urls: string[],\n mode: \"documents\" | \"entities\" | \"snippets\",\n brief: string,\n labels: string[]\n ): Promise<Success | Error> {\n // todo: implement\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<DocsIngestionRequest, Success>(\n \"docs.kg.ingest\",\n { urls, mode, brief, labels },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestText(\n text: string,\n mode: \"entities\" | \"snippets\"\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<any, Success>(\n \"docs.kg.ingestText\",\n { text, mode },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestYT(url: string): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<any, Success>(\n \"docs.kg.ingestYT\",\n { url },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function queryGraph(query: KGQuery): Promise<KGQueryResult> {\n if (!orgId) {\n throw new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n\n const data = await request<KGQuery, KGQueryResult>(\n \"kg.query.graph\",\n query,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function getNodeById(id: string): Promise<KGNode | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n const data = await request<any, KGNode>(\n \"kg.query.nodeById\",\n { id },\n { orgId }\n );\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function getGraphLabels(): Promise<KGLabelInfo[] | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n // console.log(\"getGraphLabels\", { orgId });\n\n setIsLoading(true);\n\n const data = await request<any, KGLabelInfo[]>(\n \"kg.graph.labels\",\n {},\n { orgId }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n // todo: global error\n if (!Array.isArray(data) && typeof data === \"object\") {\n const err = data as any;\n return new Error(err?.message ?? err?.error ?? err);\n }\n\n return data;\n }\n\n useEffect(() => {\n if (!natsConnected || !orgId) {\n return;\n }\n async function getLabels(): Promise<KGLabelInfo[] | Error> {\n const data = await getGraphLabels();\n if (data instanceof Error) {\n // console.error(data);\n return [];\n }\n setLabels(data);\n return data;\n }\n getLabels();\n }, [natsConnected, orgId, stateTrigger]);\n\n useEffect(() => {\n if (!natsConnected || !orgId || !selectedLabel) {\n return;\n }\n async function getGraphQueryResult() {\n if (!selectedLabel) return;\n\n console.log(\"will getGraphQueryResult\", { orgId, selectedLabel });\n\n const query: KGQuery = {\n label: selectedLabel,\n fields: [],\n limit: 5_00,\n sortBy: \"\",\n sortOrder: \"asc\",\n // edges: [{ label: \"student of\", direction: \"outgoing\" }],\n depth: 2,\n };\n\n const res = await queryGraph(query);\n\n if (res instanceof Error) {\n console.error(res);\n return;\n }\n setQueryResult(res);\n console.log(\"graph query response \", {\n nodesCount: res.nodes?.length,\n edgesCount: res.edges?.length,\n });\n }\n getGraphQueryResult();\n }, [natsConnected, orgId, selectedLabel, stateTrigger]);\n\n function refreshState() {\n setStateTrigger(stateTrigger + 1);\n }\n\n return {\n isLoading,\n ingestNode,\n ingestNodes,\n updateNode,\n queryGraph,\n getNodeById,\n getGraphLabels,\n labels,\n selectedLabel,\n setSelectedLabel,\n queryResult,\n setQueryResult,\n refreshState,\n ingestDocs,\n ingestText,\n selectedNodeId,\n setSelectedNodeId,\n ingestYT,\n\n // Graph selection\n graphs,\n selectedGraph,\n selectedGraphId: selectedGraph?.id,\n graphsLoading,\n graphsError,\n selectGraph,\n refreshGraphs,\n };\n};\n","\"use client\";\n\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useUserContext } from \"@elqnt/auth\";\nimport { useState } from \"react\";\nexport type UseKnowledgeGraphAnalyticsType = {\n isLoading: boolean;\n};\n\nexport const useKnowledgeGraphAnalytics = (\n overrideOrgId?: string\n): UseKnowledgeGraphAnalyticsType => {\n const { selectedOrgId } = useUserContext();\n const [isLoading, setIsLoading] = useState(false);\n const { natsConnected, request } = useNatsContext();\n\n return {\n isLoading,\n };\n};\n","\"use client\";\n\nimport { ReactNode, createContext, useContext } from \"react\";\nimport {\n UseKnowledgeGraphType,\n useKnowledgeGraph,\n} from \"../hooks/use-knowledge-graph\";\n\nexport const KnowledgeGraphContext = createContext<\n UseKnowledgeGraphType | undefined\n>(undefined);\n\nexport function KnowledgeGraphContextProvider(props: {\n children: ReactNode;\n overrideOrgId?: string;\n}) {\n const { children, overrideOrgId } = props;\n\n const useKG = useKnowledgeGraph(overrideOrgId);\n\n return (\n <KnowledgeGraphContext.Provider value={useKG}>\n {children}\n </KnowledgeGraphContext.Provider>\n );\n}\n\nexport const useKnowledgeGraphContext = () => {\n const context = useContext(KnowledgeGraphContext);\n if (context === undefined) {\n throw new Error(\n \"useKnowledgeGraphContext must be used within a KnowledgeGraphContextProvider\"\n );\n }\n return context;\n};\n"],"mappings":"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","names":["labels","useNatsContext","useUserContext","useState"]}
|
|
1
|
+
{"version":3,"sources":["../consts.ts","../hooks/use-knowledge-graph.ts","../hooks/use-knowledge-graph-analytics.ts","../state/knowledge-graph-context.tsx"],"sourcesContent":["export const Test = \"hi\";","\"use client\";\n\nimport { useUserContext } from \"@elqnt/auth\";\nimport { DocsIngestionRequest } from \"@elqnt/docs\";\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport {\n Graph,\n KGLabelInfo,\n KGNode,\n KGNodeIngestRequest,\n KGQuery,\n KGQueryResult,\n ListGraphsResult,\n} from \"../models\";\nimport { KGGraphList } from \"../models/kg-designer\";\n\ntype Success = { success: boolean };\n\nexport type UseKnowledgeGraphType = {\n isLoading: boolean;\n ingestNode: (node: KGNodeIngestRequest) => Promise<Success | Error>;\n ingestNodes: (node: KGNodeIngestRequest[]) => Promise<Success | Error>;\n updateNode: (\n nodeId: string,\n label: string,\n fields: Record<string, any>\n ) => Promise<Success | Error>;\n ingestDocs: (\n urls: string[],\n mode: \"documents\" | \"entities\" | \"snippets\",\n brief: string,\n labels: string[]\n ) => Promise<Success | Error>;\n\n ingestText: (\n text: string,\n mode: \"entities\" | \"snippets\"\n ) => Promise<Success | Error>;\n\n ingestYT: (url: string) => Promise<Success | Error>;\n\n queryGraph: (query: KGQuery) => Promise<KGQueryResult>;\n getGraphLabels: () => Promise<KGLabelInfo[] | Error>;\n labels: KGLabelInfo[] | undefined;\n selectedLabel: string | undefined;\n setSelectedLabel: (label: string) => void;\n queryResult: KGQueryResult | undefined;\n setQueryResult: (res: KGQueryResult) => void;\n refreshState: () => void;\n selectedNodeId: string | undefined;\n setSelectedNodeId: (id: string | undefined) => void;\n getNodeById: (id: string) => Promise<KGNode | Error>;\n\n // Graph selection\n graphs: Graph[];\n selectedGraph: Graph | undefined;\n selectedGraphId: string | undefined;\n graphsLoading: boolean;\n graphsError: string | undefined;\n selectGraph: (graphId: string | undefined) => void;\n refreshGraphs: () => Promise<void>;\n};\n\nexport const useKnowledgeGraph = (\n overrideOrgId?: string\n): UseKnowledgeGraphType => {\n const { selectedOrgId } = useUserContext();\n const [isLoading, setIsLoading] = useState(false);\n const { natsConnected, request } = useNatsContext();\n const [selectedNodeId, setSelectedNodeId] = useState<string | undefined>(\n undefined\n );\n\n const orgId = overrideOrgId ?? selectedOrgId;\n\n const [labels, setLabels] = useState<KGLabelInfo[] | undefined>(undefined);\n const [selectedLabel, setSelectedLabel] = useState<string | undefined>(\n undefined\n );\n const [queryResult, setQueryResult] = useState<KGQueryResult | undefined>(\n undefined\n );\n\n const [stateTrigger, setStateTrigger] = useState(0);\n\n // --- Graph selection state ---\n const [graphs, setGraphs] = useState<Graph[]>([]);\n const [graphsLoading, setGraphsLoading] = useState(true);\n const [graphsError, setGraphsError] = useState<string | undefined>();\n const [selectedGraphId, setSelectedGraphId] = useState<string | undefined>();\n\n const selectedGraph = useMemo(() => {\n if (!selectedGraphId) {\n return graphs.find((g) => g.isDefault) || graphs[0];\n }\n return graphs.find((g) => g.id === selectedGraphId);\n }, [graphs, selectedGraphId]);\n\n function selectGraph(graphId: string | undefined) {\n setSelectedGraphId(graphId);\n }\n\n async function refreshGraphs() {\n if (!orgId || !natsConnected) return;\n\n setGraphsLoading(true);\n setGraphsError(undefined);\n\n const data = await request<{}, ListGraphsResult>(KGGraphList, {}, { orgId });\n\n if (data instanceof Error) {\n setGraphsError(data.message);\n setGraphsLoading(false);\n return;\n }\n\n if (data.success !== false) {\n const loadedGraphs = data.graphs || [];\n setGraphs(loadedGraphs);\n\n // Auto-select default graph only if nothing is selected\n setSelectedGraphId((prev) => {\n if (!prev && loadedGraphs.length) {\n const defaultGraph = loadedGraphs.find((g) => g.isDefault);\n return defaultGraph?.id || loadedGraphs[0]?.id;\n }\n return prev;\n });\n } else {\n setGraphsError(data.error || \"Failed to load graphs\");\n }\n\n setGraphsLoading(false);\n }\n\n // Load graphs when NATS connects or org changes\n useEffect(() => {\n if (!natsConnected || !orgId) return;\n setSelectedGraphId(undefined);\n refreshGraphs();\n }, [natsConnected, orgId]);\n\n async function ingestNode(\n node: KGNodeIngestRequest\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<KGNodeIngestRequest, Success>(\n \"kg.ingest.node\",\n node,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestNodes(\n nodes: KGNodeIngestRequest[]\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<KGNodeIngestRequest[], Success>(\n \"kg.ingest.nodes\",\n nodes,\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function updateNode(\n nodeId: string,\n label: string,\n fields: Record<string, any>\n ): Promise<Success | Error> {\n const nodeRequest: KGNodeIngestRequest = {\n label,\n keyField: \"id\",\n fields: {\n ...fields,\n id: nodeId,\n },\n duplicatePolicy: \"replace\",\n };\n\n const result = await ingestNode(nodeRequest);\n\n // Optimize graph after successful update (non-blocking, with delay)\n if (!(result instanceof Error)) {\n // Wait 2 seconds to ensure node is fully written to ClickHouse\n setTimeout(() => {\n optimizeGraph().catch(err =>\n console.error(\"Failed to optimize graph after node update:\", err)\n );\n }, 2000);\n }\n\n return result;\n }\n\n async function optimizeGraph(): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n const data = await request<{}, Success>(\n \"kg.graph.optimize\",\n {},\n {\n orgId,\n }\n );\n\n if (data instanceof Error) {\n console.error(\"Graph optimization failed:\", data);\n return data;\n }\n\n console.log(\"Graph optimized successfully\");\n return data;\n }\n\n async function ingestDocs(\n urls: string[],\n mode: \"documents\" | \"entities\" | \"snippets\",\n brief: string,\n labels: string[]\n ): Promise<Success | Error> {\n // todo: implement\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<DocsIngestionRequest, Success>(\n \"docs.kg.ingest\",\n { urls, mode, brief, labels },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestText(\n text: string,\n mode: \"entities\" | \"snippets\"\n ): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<any, Success>(\n \"docs.kg.ingestText\",\n { text, mode },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function ingestYT(url: string): Promise<Success | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n const data = await request<any, Success>(\n \"docs.kg.ingestYT\",\n { url },\n {\n orgId,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function queryGraph(query: KGQuery): Promise<KGQueryResult> {\n if (!orgId) {\n throw new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n throw new Error(\"Not connected to NATS\");\n }\n\n setIsLoading(true);\n\n const data = await request<KGQuery, KGQueryResult>(\n \"kg.query.graph\",\n query,\n {\n orgId,\n graphId: selectedGraph?.id,\n }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function getNodeById(id: string): Promise<KGNode | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n const data = await request<any, KGNode>(\n \"kg.query.nodeById\",\n { id },\n { orgId, graphId: selectedGraph?.id }\n );\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n return data;\n }\n\n async function getGraphLabels(): Promise<KGLabelInfo[] | Error> {\n if (!orgId) {\n return new Error(\"No orgId provided\");\n }\n\n if (!natsConnected) {\n return new Error(\"Not connected to NATS\");\n }\n\n // console.log(\"getGraphLabels\", { orgId });\n\n setIsLoading(true);\n\n const data = await request<any, KGLabelInfo[]>(\n \"kg.graph.labels\",\n {},\n { orgId, graphId: selectedGraph?.id }\n );\n\n setIsLoading(false);\n\n if (data instanceof Error) {\n console.error(data);\n return data;\n }\n\n // todo: global error\n if (!Array.isArray(data) && typeof data === \"object\") {\n const err = data as any;\n return new Error(err?.message ?? err?.error ?? err);\n }\n\n return data;\n }\n\n // Reset labels and query state when graph changes\n useEffect(() => {\n setLabels(undefined);\n setSelectedLabel(undefined);\n setQueryResult(undefined);\n }, [selectedGraph?.id]);\n\n useEffect(() => {\n if (!natsConnected || !orgId) {\n return;\n }\n async function getLabels(): Promise<KGLabelInfo[] | Error> {\n const data = await getGraphLabels();\n if (data instanceof Error) {\n // console.error(data);\n return [];\n }\n setLabels(data);\n return data;\n }\n getLabels();\n }, [natsConnected, orgId, selectedGraph?.id, stateTrigger]);\n\n useEffect(() => {\n if (!natsConnected || !orgId || !selectedLabel) {\n return;\n }\n async function getGraphQueryResult() {\n if (!selectedLabel) return;\n\n const query: KGQuery = {\n label: selectedLabel,\n fields: [],\n limit: 5_00,\n sortBy: \"\",\n sortOrder: \"asc\",\n depth: 2,\n };\n\n const res = await queryGraph(query);\n\n if (res instanceof Error) {\n console.error(res);\n return;\n }\n setQueryResult(res);\n }\n getGraphQueryResult();\n }, [natsConnected, orgId, selectedGraph?.id, selectedLabel, stateTrigger]);\n\n function refreshState() {\n setStateTrigger(stateTrigger + 1);\n }\n\n return {\n isLoading,\n ingestNode,\n ingestNodes,\n updateNode,\n queryGraph,\n getNodeById,\n getGraphLabels,\n labels,\n selectedLabel,\n setSelectedLabel,\n queryResult,\n setQueryResult,\n refreshState,\n ingestDocs,\n ingestText,\n selectedNodeId,\n setSelectedNodeId,\n ingestYT,\n\n // Graph selection\n graphs,\n selectedGraph,\n selectedGraphId: selectedGraph?.id,\n graphsLoading,\n graphsError,\n selectGraph,\n refreshGraphs,\n };\n};\n","\"use client\";\n\nimport { useNatsContext } from \"@elqnt/nats\";\nimport { useUserContext } from \"@elqnt/auth\";\nimport { useState } from \"react\";\nexport type UseKnowledgeGraphAnalyticsType = {\n isLoading: boolean;\n};\n\nexport const useKnowledgeGraphAnalytics = (\n overrideOrgId?: string\n): UseKnowledgeGraphAnalyticsType => {\n const { selectedOrgId } = useUserContext();\n const [isLoading, setIsLoading] = useState(false);\n const { natsConnected, request } = useNatsContext();\n\n return {\n isLoading,\n };\n};\n","\"use client\";\n\nimport { ReactNode, createContext, useContext } from \"react\";\nimport {\n UseKnowledgeGraphType,\n useKnowledgeGraph,\n} from \"../hooks/use-knowledge-graph\";\n\nexport const KnowledgeGraphContext = createContext<\n UseKnowledgeGraphType | undefined\n>(undefined);\n\nexport function KnowledgeGraphContextProvider(props: {\n children: ReactNode;\n overrideOrgId?: string;\n}) {\n const { children, overrideOrgId } = props;\n\n const useKG = useKnowledgeGraph(overrideOrgId);\n\n return (\n <KnowledgeGraphContext.Provider value={useKG}>\n {children}\n </KnowledgeGraphContext.Provider>\n );\n}\n\nexport const useKnowledgeGraphContext = () => {\n const context = useContext(KnowledgeGraphContext);\n if (context === undefined) {\n throw new Error(\n \"useKnowledgeGraphContext must be used within a KnowledgeGraphContextProvider\"\n );\n }\n return context;\n};\n"],"mappings":"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","names":["labels","useNatsContext","useUserContext","useState"]}
|