feat: enrichers, panel de ingest y menu contextual en el grafo

- Añade enricher.go + directorio enrichers/ para enriquecer entidades con fuentes externas.
- Nuevos componentes frontend: IngestPanel (panel de ingesta de datos) y NodeContextMenu (menu contextual sobre nodos del grafo).
- Retira SearchBar y lib/utils.ts; la busqueda se integra dentro de los paneles existentes.
- Ajusta tipos (types.go, types.ts, wailsjs/go) y theming (postcss + app.css + Mantine).
- Actualiza app.go y wails.json para exponer las nuevas capacidades.
- Añade directorio projects/ con estado inicial.
- Rebuild del frontend (dist actualizado).
This commit is contained in:
2026-04-13 23:32:55 +02:00
parent 23198eee0c
commit c9fd4aa84c
42 changed files with 2615 additions and 1543 deletions
+10
View File
@@ -23,6 +23,10 @@ export function EvalAssertions(arg1:string):Promise<Array<fn_operations.Assertio
export function GetCurrentProject():Promise<string>;
export function GetEnrichers():Promise<Array<main.EnricherDef>>;
export function GetEnrichersForEntity(arg1:string):Promise<Array<main.EnricherDef>>;
export function GetEntity(arg1:string):Promise<fn_operations.Entity>;
export function GetEntityNeighbors(arg1:string,arg2:number):Promise<main.GraphData>;
@@ -35,6 +39,10 @@ export function GetGraphData():Promise<main.GraphData>;
export function GetRelationPresets():Promise<Array<string>>;
export function IngestFile(arg1:string):Promise<string>;
export function IngestURL(arg1:string):Promise<string>;
export function ListAssertions(arg1:string):Promise<Array<fn_operations.Assertion>>;
export function ListEntities():Promise<Array<fn_operations.Entity>>;
@@ -43,6 +51,8 @@ export function ListProjects():Promise<Array<main.ProjectInfo>>;
export function ListRelations():Promise<Array<fn_operations.Relation>>;
export function RunEnricher(arg1:string,arg2:string):Promise<main.GraphData>;
export function SearchEntities(arg1:string):Promise<Array<fn_operations.Entity>>;
export function SearchGraph(arg1:string):Promise<main.GraphData>;
+20
View File
@@ -42,6 +42,14 @@ export function GetCurrentProject() {
return window['go']['main']['App']['GetCurrentProject']();
}
export function GetEnrichers() {
return window['go']['main']['App']['GetEnrichers']();
}
export function GetEnrichersForEntity(arg1) {
return window['go']['main']['App']['GetEnrichersForEntity'](arg1);
}
export function GetEntity(arg1) {
return window['go']['main']['App']['GetEntity'](arg1);
}
@@ -66,6 +74,14 @@ export function GetRelationPresets() {
return window['go']['main']['App']['GetRelationPresets']();
}
export function IngestFile(arg1) {
return window['go']['main']['App']['IngestFile'](arg1);
}
export function IngestURL(arg1) {
return window['go']['main']['App']['IngestURL'](arg1);
}
export function ListAssertions(arg1) {
return window['go']['main']['App']['ListAssertions'](arg1);
}
@@ -82,6 +98,10 @@ export function ListRelations() {
return window['go']['main']['App']['ListRelations']();
}
export function RunEnricher(arg1, arg2) {
return window['go']['main']['App']['RunEnricher'](arg1, arg2);
}
export function SearchEntities(arg1) {
return window['go']['main']['App']['SearchEntities'](arg1);
}
+22
View File
@@ -237,6 +237,28 @@ export namespace main {
this.description = source["description"];
}
}
export class EnricherDef {
id: string;
label: string;
description: string;
applies_to: string[];
script: string;
icon: string;
static createFrom(source: any = {}) {
return new EnricherDef(source);
}
constructor(source: any = {}) {
if ('string' === typeof source) source = JSON.parse(source);
this.id = source["id"];
this.label = source["label"];
this.description = source["description"];
this.applies_to = source["applies_to"];
this.script = source["script"];
this.icon = source["icon"];
}
}
export class EntityInput {
name: string;
type_ref: string;