File size: 1,776 Bytes
c53b0cc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
"""
LegalSync Orchestrator Agent — main entry point.

Validated against the DataRobot Agentic AI framework (`MyAgent.invoke`
pattern): the agent wires the sub-processors and exposes a workflow router
consumed by workload_app.py. Runs over the DataRobot Workload API (any HTTP
container) with Groq / DataRobot LLM Gateway for any model calls (00-core).
"""
from services.omnipay_payment_processor import OmniPayProcessor
from services.oracle_trust_fund_processor import TrustFundProcessor
from services.whisper_bodycam_transcriber import BodycamTranscriber
from services.discovery_assembler import DiscoveryAssembler
from services.bond_recommendation_agent import BondRecommendationAgent


class LegalSyncAgent:
    def __init__(self):
        self.payments = OmniPayProcessor()
        self.trust = TrustFundProcessor()
        self.transcriber = BodycamTranscriber()
        self.discovery = DiscoveryAssembler()
        self.bond = BondRecommendationAgent()

    def run_workflow(self, workflow_type, payload):
        """Workflow router (MyAgent.invoke pattern)."""
        if workflow_type == "payment":
            return self.payments.process(**payload)
        elif workflow_type == "trust-fund":
            return self.trust.get_balance(payload.get("inmate_id"))
        elif workflow_type == "transcription":
            return self.transcriber.transcribe(payload.get("video_path"))
        elif workflow_type == "discovery":
            return self.discovery.assemble(payload.get("case_id"), payload.get("transcripts", []), payload.get("bodycams", []))
        elif workflow_type == "bond":
            return self.bond.recommend(payload)
        return {"status": "unknown workflow", "supported": ["payment", "trust-fund", "transcription", "discovery", "bond"]}