How kasturimaheshbabu2316-mc/whatsapp-on-cruise-control works
This repository is a WhatsApp conversation-personalization toolkit: it prepares conversation examples and persona signals, retrieves relationship-specific examples, and uses them to generate replies. A separate decision engine applies safety rules and classifies whether a message should be answered. The sampled code supports these capabilities, but does not establish an integrated WhatsApp listener or a caller connecting routing, safety decisions, and reply generation. The README is empty; unsampled subsystems are represented only where the tree or documented code supports them.
Main entry points: generator.py Generate reply · retrieval.py Retrieve examples · decision_engine.py Reply-or-ignore decision · parse_export.py Parse reply pairs
Components 17
Conversation preparation
- Parse reply pairs
ingestion/parse_export.py - Processed pairs
data/processed_pairs - Index conversation pairs
ingestion/embed_to_chroma.py - Conversation history
Persona signals
- WhatsApp style history
data/raw_export - Build style signals
persona/build_persona.py - Persona profiles
persona/persona.json - Style signals
persona/style_signals.json
Reply generation
- Resolve relationship
router.py - Relationship map
config/relationship_map.json - Retrieve examples
ingestion/retrieval.py - Generate reply
agent/generator.py
Reply safety
- Reply-or-ignore decision
agent/decision_engine.py - Decision log
logs/decision_log.jsonl
Other components
- WhatsApp exports
data/raw_export - Gemini API
- Incoming message
Connections 17
- WhatsApp exports → Parse reply pairs: reads exports
- Parse reply pairs → Processed pairs: writes pairs
- Processed pairs → Index conversation pairs: loads pairs
- Index conversation pairs → Conversation history: upserts embeddings
- WhatsApp style history → Build style signals: reads messages
- Build style signals → Style signals: writes signals
- Relationship map → Resolve relationship: maps sender
- Incoming message → Resolve relationship: resolves sender
- Incoming message → Generate reply: supplies text
- Generate reply → Retrieve examples: requests examples
- Retrieve examples → Conversation history: queries history
- Retrieve examples → Generate reply: returns examples
- Generate reply → Persona profiles: loads profile
- Generate reply → Gemini API: requests reply
- Incoming message → Reply-or-ignore decision: checks message
- Reply-or-ignore decision → Gemini API: classifies intent
- Reply-or-ignore decision → Decision log: appends decision