#!/usr/bin/env bash # bin/edelweiss-pilot — Edelweiss-only 2dph brain (facts/info) set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" cd "$ROOT" export HF_HOME="${HF_HOME:-$ROOT/var/hf}" export PATH="$ROOT/.venv/bin:$PATH" mkdir -p "$HF_HOME" "$ROOT/var" # Corpus policy (Andriy 2026-08-12): # 1 cs-lexicon, 2 vendor kbs, 3 reports only (not raw STT), # 4/5/6 seeded via pairing (seed-edelweiss-facts.py), # 7 SCHEMA/ARCHITECTURE churn — do not promote to facts, # 9 glossary+subjects via docs/docs DOCS=( --corpus /home/devops/projects/docs/docs --corpus /home/devops/projects/edelweiss-curasoft/docs --corpus /home/devops/projects/edelweiss-ui/docs --corpus /home/devops/projects/edelweiss-curasoft/docs/lexicon --corpus /home/devops/projects/curasoft/docs/lexicon --corpus /home/devops/projects/curasoft/docs/curasoft-de/kbs --corpus /home/devops/projects/docs/docs/reports ) cmd="${1:-stats}"; shift || true case "$cmd" in # Write leafs without indexes → seed facts → ensure_indexes (FTS+HNSW). # Never upsert under live FTS; never DROP INDEX (ghost catalog). index) bin/kb/index --rebuild --skip-indexes "${DOCS[@]}" "$@" .venv/bin/python bin/seed-edelweiss-facts.py ;; search) exec bin/edelweiss-search "$@" ;; search-go) exec bin/kb/search "$@" ;; stats) exec bin/kb/stats "$@" ;; audit) exec bin/facts/audit "${1:-db}" "${@:2}" ;; seed) exec .venv/bin/python bin/seed-edelweiss-facts.py "$@" ;; *) echo "usage: $0 index|search|search-go|stats|audit|seed ..." >&2; exit 2 ;; esac