"""Direct translation script - outputs verses for Claude to translate.""" import json from pathlib import Path from src.data.loader import DataLoader from src.context.builder import ContextBuilder from src.context.glossary import GlossaryManager from src.pipeline.prompt import PromptBuilder from src.models.verse import VerseReference def build_translation_request(book: str, chapter: int, verse: int) -> dict: """Build a translation request with full context.""" data_dir = Path("data") loader = DataLoader(data_dir) glossary = GlossaryManager(loader.load_glossary()) context_builder = ContextBuilder(loader, glossary) prompt_builder = PromptBuilder(glossary) ref = VerseReference(book=book, chapter=chapter, verse=verse) context = context_builder.build_context(ref) return { "reference": f"{book}:{chapter}:{verse}", "greek": context.target_verse.greek_text, "kjv": context.target_verse.english_kjv, "japanese_ref": context.target_verse.japanese_taisho, "glossary_terms": [ {"original": t.original, "japanese": t.japanese} for t in context.glossary_terms ], "chapter_summary": context.chapter_summary.summary if context.chapter_summary else None, "preceding": [ {"verse": v.reference.verse, "text": v.english_kjv} for v in context.preceding_verses ], "following": [ {"verse": v.reference.verse, "text": v.english_kjv} for v in context.following_verses ], } def get_chapter_verses(book: str, chapter: int) -> list[dict]: """Get all verses in a chapter with context.""" data_dir = Path("data") loader = DataLoader(data_dir) verses = loader.load_chapter_verses(book, chapter) requests = [] for verse in verses: req = build_translation_request(book, chapter, verse.reference.verse) requests.append(req) return requests if __name__ == "__main__": import sys book = sys.argv[1] if len(sys.argv) > 1 else "john" chapter = int(sys.argv[2]) if len(sys.argv) > 2 else 1 verses = get_chapter_verses(book, chapter) print(json.dumps(verses, ensure_ascii=False, indent=2))