import time import requests import json import os from logos.network.dissolution import DissolutionEngine class SensorAgent: """ Protocol 16: Signal Injector. Monitors data streams and dissolves them into tokens for the Manifold. """ def __init__(self, target_url="http://localhost:5000/ingest"): self.target_url = target_url def inject_text(self, text, throttle=0.05): """ Dissolves a string and injects its byte-tokens into the manifold. """ print(f"🌊 Dissolving Pulse Stream: {len(text)} chars...") # We use dissolve_bytes to get 0-255 range tokens # Or we can use the character ordinals for more diversity for char in text: token = ord(char) # Filter for the manifold's potentiality (1,3,7,9 or 2,5) # Actually, the manifold visualizer handles the filtering payload = { "value": token, "type": "DATA_PACKET", "timestamp": time.time() } try: requests.post(self.target_url, json=payload, timeout=0.1) except: pass # Silently drop if server is busy time.sleep(throttle) def watch_file(self, filepath, interval=1.0): """ Watches a file for changes and injects new content. """ print(f"👁️ Monitoring: {filepath}") last_mtime = 0 while True: try: mtime = os.path.getmtime(filepath) if mtime > last_mtime: with open(filepath, 'r') as f: content = f.read() self.inject_text(content) last_mtime = mtime except Exception as e: print(f"Error: {e}") time.sleep(interval) if __name__ == "__main__": injector = SensorAgent() # Test injection injector.inject_text("LOGOS MISSION CONTROL ACTIVATED - SIGNAL STABLE")