{
  "version": 1,
  "docs": [
    {
      "name": "mcp-http-howto.md",
      "path": "scripts/mcp-http-howto.md",
      "purpose": "HTTP MCP endpoints and usage notes for controlling imagej-elphel via MCP."
    },
    {
      "name": "email_send.py",
      "path": "scripts/email_send.py",
      "purpose": "Send email via SSH+sendmail on community.elphel.com by default (set ELPHEL_SEND_MODE=smtp to force SMTP)."
    },
    {
      "name": "email_fetch.py",
      "path": "scripts/email_fetch.py",
      "purpose": "Fetch email via IMAP (mail.elphel.com) and save messages to files."
    }
  ],
  "scripts": [
    {
      "name": "mcp_filter_list_by_model_version.py",
      "path": "scripts/mcp_filter_list_by_model_version.py",
      "purpose": "Filter a .list file to keep only sequences with an existing model version subdir.",
      "inputs": [
        "MCP server (http://127.0.0.1:48888)",
        "list file path (required)",
        "model version (from MCP dialog or CLI argument)"
      ],
      "outputs": [
        "Filtered .list file in the same directory as input (name suffixed with -<version>.list)"
      ],
      "example": "/home/elphel/git/imagej-elphel/scripts/mcp_filter_list_by_model_version.py /media/elphel/btrfs-data/lwir16-proc/NC/lists/nc_site.list v89",
      "tags": ["mcp", "list", "models", "filter"],
      "dependencies": ["MCP server", "-Delphel.mcp.allowed.configdir"],
      "owner": "codex",
      "created": "2026-02-03"
    },
    {
      "name": "field_calib_aggregate.py",
      "path": "scripts/field_calib_aggregate.py",
      "purpose": "Aggregate FIELD_CALIBRATION.corr-xml into CSV with per-sensor angles and noise metrics.",
      "inputs": [
        "Models root directory containing *-FIELD_CALIBRATION.corr-xml"
      ],
      "outputs": [
        "CSV file with per-sensor azimuth/tilt/roll columns and stats"
      ],
      "example": "/home/elphel/git/imagej-elphel/scripts/field_calib_aggregate.py /media/elphel/btrfs-data/lwir16-proc/NC/models/1763232117-1763234145 -o /home/elphel/CODEX/tmp/field_calib_1763232117-1763234145.csv",
      "tags": ["csv", "models", "aggregation", "plot"],
      "dependencies": [],
      "owner": "codex",
      "created": "2026-02-03"
    },
    {
      "name": "rag_index.py",
      "path": "scripts/rag_index.py",
      "purpose": "Build a local RAG index from attic/CODEX/rag_sources using fastembed + hnswlib.",
      "inputs": [
        "rag_sources root directory",
        "embedding model name (default: BAAI/bge-base-en-v1.5)"
      ],
      "outputs": [
        "index.bin",
        "meta.jsonl",
        "config.json"
      ],
      "example": "/home/elphel/git/imagej-elphel/scripts/rag_index.py --source /home/elphel/git/imagej-elphel/attic/CODEX/rag_sources --out /home/elphel/git/imagej-elphel/attic/CODEX/rag_index",
      "tags": ["rag", "index", "embedding"],
      "dependencies": [
        "fastembed",
        "hnswlib",
        "numpy"
      ],
      "owner": "codex",
      "created": "2026-02-04"
    },
    {
      "name": "rag_index.sh",
      "path": "scripts/rag_index.sh",
      "purpose": "Wrapper to run rag_index.py using the RAG venv.",
      "inputs": [
        "same args as rag_index.py"
      ],
      "outputs": [
        "index.bin",
        "meta.jsonl",
        "config.json"
      ],
      "example": "/home/elphel/git/imagej-elphel/scripts/rag_index.sh --source /home/elphel/git/imagej-elphel/attic/CODEX/rag_sources --out /home/elphel/git/imagej-elphel/attic/CODEX/rag_index",
      "tags": ["rag", "index", "wrapper"],
      "dependencies": [
        "rag_index.py",
        "rag venv"
      ],
      "owner": "codex",
      "created": "2026-02-04"
    },
    {
      "name": "rag_query.py",
      "path": "scripts/rag_query.py",
      "purpose": "Query a local RAG index built by rag_index.py.",
      "inputs": [
        "query string",
        "index directory (default: attic/CODEX/rag_index)"
      ],
      "outputs": [
        "Top-k matching chunks with file paths and snippets"
      ],
      "example": "/home/elphel/git/imagej-elphel/scripts/rag_query.py \"Explain differential rectification\"",
      "tags": ["rag", "query"],
      "dependencies": [
        "fastembed",
        "hnswlib",
        "numpy"
      ],
      "owner": "codex",
      "created": "2026-02-04"
    },
    {
      "name": "rag_query.sh",
      "path": "scripts/rag_query.sh",
      "purpose": "Wrapper to run rag_query.py using the RAG venv.",
      "inputs": [
        "query string",
        "index directory (default: attic/CODEX/rag_index)"
      ],
      "outputs": [
        "Top-k matching chunks with file paths and snippets"
      ],
      "example": "/home/elphel/git/imagej-elphel/scripts/rag_query.sh \"Explain differential rectification\"",
      "tags": ["rag", "query", "wrapper"],
      "dependencies": [
        "rag_query.py",
        "rag venv"
      ],
      "owner": "codex",
      "created": "2026-02-04"
    }
  ]
}
