LOGOS-SPCW-Matroska / logos /tools /context_oracle.py
GitHub Copilot
LOGOS v1.0: MTL Turing Complete, Genesis Kernel, SPCW Transceiver, Harmonizer
6d3aa82
"""
Protocol 29: Antigravity Context Oracle Tools
These tools allow Agents to interact with the Prime-Neuron Context Service.
"""
import requests
import json
from logos.config import SERVER_URL
def query_prime_context(query_text: str, prime_band: str = None) -> str:
"""
Semantic search over the Prime Manifold.
Args:
query_text: Natural language query
prime_band: "axioms" (0-1000), "mid" (1000-5000), "hitech" (5000+)
"""
url = f"{SERVER_URL}/v1/context/query"
filters = {}
if prime_band:
if prime_band == "axioms": filters["prime_range"] = [0, 1000]
elif prime_band == "mid": filters["prime_range"] = [1000, 5000]
elif prime_band == "hitech": filters["prime_range"] = [5000, 99999]
try:
resp = requests.post(url, json={"query_text": query_text, "filters": filters})
if resp.status_code == 200:
data = resp.json()
# Synthesize for Agent
summary = [f"Found {data['count']} neurons:"]
for n in data['results']:
summary.append(f"- [Prime {n.get('prime_index')}] {n.get('type')}: {str(n.get('payload'))[:50]}...")
return "\n".join(summary)
else:
return f"Error: {resp.text}"
except Exception as e:
return f"Connection Failed: {e}"
def upsert_prime_neuron(content: str, type: str = "text", prime_index: int = None) -> str:
"""
Writes a new concept to the Manifold.
"""
url = f"{SERVER_URL}/v1/context/neurons"
neuron = {
"type": type,
"payload": content
}
if prime_index:
neuron["prime_index"] = prime_index
try:
resp = requests.post(url, json={"neurons": [neuron]})
if resp.status_code == 200:
data = resp.json()
params = data['neurons'][0]
return f"Upserted Neuron: ID={params.get('id')} Prime={params.get('prime_index')}"
else:
return f"Error: {resp.text}"
except Exception as e:
return f"Connection Failed: {e}"
def parse_diagram_to_context(image_path: str, domain_context: str = "General") -> str:
"""
Ingests a diagram image, segments it, and stores nodes as neurons.
Currently a stub for Protocol 29 Step 3.
"""
if not image_path: return "Error: No image path provided."
# In a real implementation, this would:
# 1. Call Local Vision Model (Ollama/Llava) to describe image
# 2. Parse graph structure
# 3. Upsert nodes
# Simulating a mock upsert for the uploaded diagram
mock_neuron_text = f"Diagram Node from {image_path}: {domain_context}"
return upsert_prime_neuron(mock_neuron_text, "diagram_node")
if __name__ == "__main__":
# Test
print("Upserting...")
print(upsert_prime_neuron("The LOGOS System requires manifold constraints.", "axiom", 2))
print("Querying...")
print(query_prime_context("manifold"))