luplo.core.extract.pipeline =========================== .. py:module:: luplo.core.extract.pipeline .. autoapi-nested-parse:: Extraction pipeline — transcript text to structured items and glossary candidates. v0.5 implementation is a stub that returns empty results. The function signatures are the stable contract that the MCP tool ``luplo_save_decisions`` and the background worker will call. Post-v0.5, these will use the Claude API to parse transcripts into decisions, knowledge, and terminology. Functions --------- .. autoapisummary:: luplo.core.extract.pipeline.extract_decisions luplo.core.extract.pipeline.extract_glossary_candidates Module Contents --------------- .. py:function:: extract_decisions(text: str, *, project_id: str, actor_id: str, work_unit_id: str | None = None) -> list[luplo.core.models.ItemCreate] :async: Extract structured decisions from a conversation transcript. Scans *text* for decision-like statements and returns ``ItemCreate`` objects ready for insertion. The caller (MCP tool or worker) handles the actual ``create_item`` calls. :param text: Raw transcript or conversation text. :param project_id: Project to scope the extracted items to. :param actor_id: Actor who authored the transcript. :param work_unit_id: Optional work unit to attach items to. :returns: always returns ``[]``.** :rtype: List of ``ItemCreate`` objects. **v0.5 .. py:function:: extract_glossary_candidates(text: str, *, project_id: str) -> list[tuple[str, str]] :async: Extract glossary term candidates from text. Returns ``(surface_form, context_snippet)`` pairs. The worker feeds these into the glossary strict-first pipeline for normalisation, matching, and human curation. :param text: Source text to extract terms from. :param project_id: Project scope (for future filtering). :returns: always returns ``[]``.** :rtype: List of ``(surface, context)`` tuples. **v0.5