"""Registry entries for the Data & Knowledge Pipelines layer (L7).

Auto-extracted from the monolithic ``defaults.py``.  Each entry
follows the standard registry schema:

- ``name``: human-readable tool name
- ``level``: 13-layer taxonomy level (1-13)
- ``layer``: this layer name
- ``role``: role within the layer
- ``category``: functional category
- ``installer``: installation method
- ``launcher``: process launcher specification
- ``deps``: list of required tool IDs
- ``description``: short description
- ``flags``: optional boolean flags

This module is consumed by
:mod:`ai_lsc.registry.loader`.
"""

TOOLS: dict[str, dict] = {
    'chromadb': {
    "name": "ChromaDB",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Memory / Senses",
    "category": "Vector Store",
    "installer": {
        "type": "uv",
        "pkg": "chromadb"
    },
    "launcher": {
        "type": "tmux",
        "cmd": "chroma run --path {models_root}/chroma --port {port}",
        "default_port": 8000
    },
    "deps": [],
    "description": "AI-native open-source vector database.",
    "license": 'Apache-2.0',
    "flags": {        "has_cli": False,
        "has_gui": False,
        "has_web": False,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'whisper': {
    "name": "Whisper",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Memory / Senses",
    "category": "Audio Parsing",
    "installer": {
        "type": "uv",
        "pkg": "openai-whisper"
    },
    "launcher": {
        "type": "tmux",
        "cmd": "whisper",
        "default_port": None
    },
    "deps": [],
    "description": "Robust Speech Recognition via Large-Scale Weak Supervision.",
    "license": 'MIT',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": False,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'docling': {
    "name": "Docling",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Memory / Senses",
    "category": "File Parsing",
    "installer": {
        "type": "uv",
        "pkg": "docling"
    },
    "launcher": {
        "type": "tmux",
        "cmd": "docling",
        "default_port": None
    },
    "deps": [],
    "description": "Advanced document parsing and chunking.",
    "license": 'MIT',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": False,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'lancedb': {
    "name": "LanceDB",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Memory / Senses",
    "category": "Vector Store",
    "installer": {
        "type": "uv",
        "pkg": "lancedb"
    },
    "launcher": {
        "type": "tmux",
        "cmd": "python3 -m lancedb serve --port {port}",
        "default_port": 8484
    },
    "deps": [],
    "description": "Serverless vector database for AI applications.",
    "license": 'Proprietary',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": True,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'neo4j': {
    "name": "Neo4j",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Memory / Senses",
    "category": "Graph Database",
    "installer": {
        "type": "pacman",
        "pkg": "neo4j"
    },
    "launcher": {
        "type": "systemd",
        "cmd": "neo4j",
        "default_port": 7474
    },
    "deps": [],
    "description": "Native graph database and knowledge graph engine.",
    "license": 'Proprietary',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": True,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'elasticsearch': {
    "name": "Elasticsearch",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Memory / Senses",
    "category": "Search Engine",
    "installer": {
        "type": "pacman",
        "pkg": "elasticsearch"
    },
    "launcher": {
        "type": "systemd",
        "cmd": "elasticsearch",
        "default_port": 9200
    },
    "deps": [],
    "description": "Distributed search and analytics engine.",
    "license": 'Apache-2.0',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": True,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'meilisearch': {
    "name": "Meilisearch",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Memory / Senses",
    "category": "Search Engine",
    "installer": {
        "type": "script",
        "cmd": "curl -L https://install.meilisearch.com | sh"
    },
    "launcher": {
        "type": "tmux",
        "cmd": "meilisearch --port {port}",
        "default_port": 7700
    },
    "deps": [],
    "description": "Fast, relevant, and typo-tolerant search engine.",
    "license": 'MIT',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": True,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'graphrag': {
    "name": "GraphRAG",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Knowledge Synthesis",
    "category": "Graph RAG",
    "installer": {
        "type": "uv",
        "pkg": "graphrag"
    },
    "launcher": {
        "type": "desktop",
        "cmd": "python3 -m graphrag init",
        "default_port": None
    },
    "deps": [],
    "description": "Microsoft GraphRAG for knowledge graph construction.",
    "license": 'MIT',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": False,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'crawl4ai': {
    "name": "Crawl4AI",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Data Harvesting",
    "category": "Web Crawler",
    "installer": {
        "type": "uv",
        "pkg": "crawl4ai"
    },
    "launcher": {
        "type": "desktop",
        "cmd": "crawl4ai https://example.com",
        "default_port": None
    },
    "deps": [],
    "description": "LLM-friendly web crawler and data extractor.",
    "license": 'Proprietary',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": False,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'markitdown': {
    "name": "MarkItDown",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "File Parsing",
    "category": "Document Converter",
    "installer": {
        "type": "uv",
        "pkg": "markitdown"
    },
    "launcher": {
        "type": "desktop",
        "cmd": "markitdown document.pdf",
        "default_port": None
    },
    "deps": [],
    "description": "Microsoft tool to convert files to Markdown.",
    "license": 'MIT',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": False,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'opendataloader': {
    "name": "OpenDataLoader",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Ingestion",
    "category": "Data Pipeline",
    "installer": {
        "type": "git",
        "pkg": "https://github.com/nicely-done/opendataloader"
    },
    "launcher": {
        "type": "desktop",
        "cmd": "python3 -m opendataloader --help",
        "default_port": None
    },
    "deps": [],
    "description": "Universal data loading and preprocessing pipeline.",
    "license": 'MIT',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": False,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'turbovec': {
    "name": "TurboVec",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Embedding",
    "category": "Vector Engine",
    "installer": {
        "type": "git",
        "pkg": "https://github.com/nicely-done/turbovec"
    },
    "launcher": {
        "type": "tmux",
        "cmd": "cd {tools_root}/turbovec && python3 serve.py --port {port}",
        "default_port": 8101
    },
    "deps": [
        "cuda"
    ],
    "description": "High-speed embedding generation and vector engine.",
    "license": 'MIT',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": True,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
    'airweave': {
    "name": "Airweave",
    "level": 7,
    "layer": "Data & Knowledge Pipelines",
    "role": "Integration",
    "category": "Data Sync",
    "installer": {
        "type": "git",
        "pkg": "https://github.com/nicely-done/airweave"
    },
    "launcher": {
        "type": "tmux",
        "cmd": "cd {tools_root}/airweave && python3 -m airweave serve --port {port}",
        "default_port": 8600
    },
    "deps": [],
    "description": "Real-time data synchronization and integration layer.",
    "license": 'MIT',
    "flags": {
        "has_cli": True,
        "has_gui": False,
        "has_web": True,
        "is_ollama": False,
        "is_docker": False,
        "is_passive": False,
        "is_mcp": False,
        "is_skills_collection": False
    }
},
}
