Saltar al contenido

Estructura del proyecto

osint-ai-one/
├── src/
│ ├── config.py # Pydantic Settings — todas las variables de entorno
│ ├── cache.py # Capa de cache transparente para herramientas
│ ├── agent.py # Shim de compatibilidad → src/agent/
│ ├── logger.py # Configuracion de logging
│ ├── utils.py # Utilidades compartidas
│ │
│ ├── agent/ # Agente ReAct (LangGraph)
│ │ └── __init__.py # create_osint_agent(), SYSTEM_PROMPT
│ │
│ ├── tools/ # 19 herramientas OSINT async
│ │ ├── virustotal.py # ip_lookup, domain_lookup, hash_lookup
│ │ ├── abuseipdb.py # check_ip
│ │ ├── alienvault.py # ip_lookup
│ │ ├── shodan_tool.py # host_lookup
│ │ ├── ipinfo.py # lookup
│ │ ├── urlscan.py # lookup
│ │ ├── whois_tool.py # lookup (gratis)
│ │ ├── dns_tool.py # lookup (gratis)
│ │ ├── crtsh.py # lookup (gratis)
│ │ ├── threat_feeds.py # fetch_threat_feed (gratis)
│ │ ├── pivot.py # pivot_investigate
│ │ ├── history.py # search_history
│ │ ├── gdelt_tool.py # entity_search, topic_search, tone_analysis
│ │ ├── rss_monitor.py # news_search, financial_news, security_news
│ │ ├── financial_data.py # crypto_prices, economic_indicator, energy_prices
│ │ ├── threat_classifier.py # classify_threat_type
│ │ ├── acled_tool.py # conflict_events
│ │ ├── country_risk.py # get_country_risk_score
│ │ └── ais_tool.py # vessel_lookup, chokepoint_activity
│ │
│ ├── analysis/ # Modulos de analisis avanzado
│ │ ├── anomaly_detector.py # Deteccion de anomalias Welford
│ │ ├── market_correlation.py # Correlacion IOC ↔ senal de mercado
│ │ └── narrative_detector.py # Deteccion de clusters de narrativas
│ │
│ ├── investigation/ # Gestion de investigaciones
│ │ ├── manager.py # Crear / archivar / reactivar
│ │ ├── evidence.py # SHA-256 → extraer → chunk → embed
│ │ ├── entities.py # CRUD + dedup + normalizacion
│ │ ├── claims.py # Registrar / verificar / disputar
│ │ ├── normalize.py # Normalizacion espanola de entidades
│ │ ├── extract.py # Extraccion PDF / TXT / HTML / MD
│ │ └── alerts.py # Alertas programadas con deteccion de cambios
│ │
│ ├── vector/
│ │ └── store.py # ChromaDB: upsert / search / cross-search
│ │
│ ├── database/
│ │ ├── cache_db.py # Cache de resultados OSINT (SQLite)
│ │ └── investigation_db.py # Schema investigaciones — 8 tablas, 40+ metodos
│ │
│ ├── scoring/
│ │ └── dashboard.py # Scoring compuesto (0-100) y dashboard
│ │
│ ├── reporting/
│ │ ├── threat_report.py # Informes de threat intel por sesion
│ │ └── investigation_report.py # Informes de investigacion (9 secciones)
│ │
│ ├── services/
│ │ └── osint_service.py # Fachada unificada (OSINT + investigacion)
│ │
│ ├── mcp_server/
│ │ ├── server.py # FastMCP: 29 tools, 5 resources, 3 prompts
│ │ └── __main__.py # Entry point: osint-mcp
│ │
│ ├── a2a_server/
│ │ ├── server.py # Uvicorn launcher
│ │ ├── agent_card.py # A2A Agent Card (5 skills)
│ │ ├── executor.py # Task executor con streaming
│ │ └── __main__.py # Entry point: osint-a2a
│ │
│ └── cli/
│ └── main.py # CLI: interactivo, query unica, batch, investigacion
├── .claude/
│ ├── skills/ # 15 Claude Code skills
│ │ ├── _shared/scripts/ # Scripts compartidos (DB, vector, hash, normalize)
│ │ │ ├── puruto_db.py # 47 comandos CRUD de investigaciones
│ │ │ ├── puruto_vector.py # Operaciones ChromaDB
│ │ │ ├── puruto_hash.py # SHA-256
│ │ │ ├── puruto_normalize.py # Normalizacion entidades ES
│ │ │ └── puruto_alerts.py # Ejecucion de alertas
│ │ ├── investigation-init/
│ │ ├── evidence-ingest/
│ │ ├── entity-extract/
│ │ ├── osint-investigate/
│ │ ├── osint-recon/
│ │ └── ... # 10 skills mas
│ └── agents/ # 4 agentes especializados
├── tests/
│ ├── tools/ # 73 tests de herramientas OSINT (mocked con respx)
│ ├── investigation/ # 77 tests de la capa de investigacion
│ ├── integration/ # 17 tests de integracion (MCP, A2A)
│ └── *.py # 41 tests de cache, dashboard, sesion, etc.
├── data/ # Datos en tiempo de ejecucion (gitignored)
│ ├── osint_cache.db
│ ├── osint_ai.db
│ ├── chroma/
│ └── .active # Slug de la investigacion activa
├── investigaciones/ # Carpetas de investigacion (gitignored)
│ └── <slug>/
│ ├── evidencias/
│ ├── hallazgos/
│ └── informes/
├── reports/ # Informes de threat intelligence generados
├── docs/ # Documentacion HTML estatica (legacy)
├── Dockerfile
├── docker-compose.yml
├── pyproject.toml # Configuracion del paquete y entry points
├── CLAUDE.md # Contexto de Claude Code
├── AGENTS.md # Instrucciones para agentes IA
├── ontology-v1.md # Ontologia FTM completa
└── .env.example # Template de variables de entorno

Entry points (pyproject.toml)

[project.scripts]
osint-agent = "src.cli.main:main"
osint-mcp = "src.mcp_server.__main__:main"
osint-a2a = "src.a2a_server.__main__:main"

Tras pip install -e ., estos comandos quedan disponibles en el PATH del entorno virtual.