refactor(cli): remove obsolete workflow commands
This commit is contained in:
@@ -1,81 +1,5 @@
|
||||
from pathlib import Path
|
||||
|
||||
import typer
|
||||
|
||||
from tht.cli._guards import require_vector_write_allowed
|
||||
from tht.cli.config_cmd import CONFIG_OPT
|
||||
from tht.cli.schema_cmd import _load_config_or_exit
|
||||
|
||||
evidence_app = typer.Typer(help="Generazione e gestione delle evidence")
|
||||
|
||||
|
||||
def evidence_root(cfg) -> Path:
|
||||
return cfg.paths.artifacts / "evidence"
|
||||
|
||||
|
||||
def _require_evidence_cfg(cfg):
|
||||
if cfg.evidence is None:
|
||||
typer.secho(
|
||||
"ERRORE: sezione `evidence` mancante nel workspace yaml (serve `source_root`).",
|
||||
fg=typer.colors.RED, err=True,
|
||||
)
|
||||
raise typer.Exit(code=1)
|
||||
return cfg.evidence
|
||||
|
||||
|
||||
@evidence_app.command("extract")
|
||||
def extract_cmd(config: Path = CONFIG_OPT) -> None:
|
||||
"""Rispecchia la cartella curata dell'ETL in artifacts/evidence/.
|
||||
|
||||
artifacts/evidence/ e' un artefatto derivato e rigenerabile: viene riallineato a
|
||||
ogni estrazione (le evidence rimosse a monte spariscono anche qui). La gerarchia
|
||||
per dominio della cartella sorgente viene preservata.
|
||||
"""
|
||||
import shutil
|
||||
|
||||
from tht.evidence.extract import load_curated
|
||||
|
||||
cfg = _load_config_or_exit(config)
|
||||
sources = _require_evidence_cfg(cfg)
|
||||
out_dir = evidence_root(cfg)
|
||||
if out_dir.exists():
|
||||
shutil.rmtree(out_dir)
|
||||
written = 0
|
||||
for rel, doc in load_curated(sources):
|
||||
doc.save(out_dir / rel)
|
||||
written += 1
|
||||
if written == 0:
|
||||
typer.secho(
|
||||
f"ATTENZIONE: nessuna evidence trovata in "
|
||||
f"{sources.source_root / sources.evidence_dir}",
|
||||
fg=typer.colors.YELLOW, err=True,
|
||||
)
|
||||
raise typer.Exit(code=1)
|
||||
typer.secho(f"OK: {written} evidence rispecchiate in {out_dir}", fg=typer.colors.GREEN)
|
||||
|
||||
|
||||
@evidence_app.command("index")
|
||||
def index_cmd(config: Path = CONFIG_OPT) -> None:
|
||||
"""Embedda e sincronizza nel semantic store tutte le evidence presenti in artifacts/."""
|
||||
from tht.adapters.factory import build_vector_store
|
||||
from tht.cli.vector_cmd import (
|
||||
_print_stats,
|
||||
make_embedder,
|
||||
require_vector_cfg,
|
||||
sync_canonical_records,
|
||||
)
|
||||
from tht.evidence.model import load_evidence_dir
|
||||
from tht.vectorstore.records import evidence_records
|
||||
|
||||
cfg = _load_config_or_exit(config)
|
||||
require_vector_write_allowed(cfg, "evidence index")
|
||||
require_vector_cfg(cfg)
|
||||
docs = load_evidence_dir(evidence_root(cfg))
|
||||
records = evidence_records(docs, cfg.vector.max_chunk_chars)
|
||||
stats = sync_canonical_records(
|
||||
"evidence",
|
||||
records,
|
||||
store=build_vector_store(cfg, require_write=True),
|
||||
embedder=make_embedder(cfg.embeddings),
|
||||
)
|
||||
_print_stats(stats)
|
||||
|
||||
Reference in New Issue
Block a user