# cascade-lattice **Universal AI provenance + inference intervention + code diagnostics. See what AI sees. Choose what AI chooses. Find bugs before they find you.** [![PyPI](https://img.shields.io/pypi/v/cascade-lattice.svg)](https://pypi.org/project/cascade-lattice/) [![Python](https://img.shields.io/pypi/pyversions/cascade-lattice.svg)](https://pypi.org/project/cascade-lattice/) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) ``` pip install cascade-lattice ``` **Import with either style:** ```python import cascade # Preferred import cascade_lattice # Also works (alias) from cascade import Hold # Works from cascade_lattice import Hold # Also works ``` --- ## ๐ŸŽฎ Interactive Demo **See CASCADE-LATTICE in action** โ€” fly a lunar lander with AI, take control anytime: ```bash pip install cascade-lattice[demo] cascade-demo ``` **Controls:** - `[H]` **HOLD-FREEZE** โ€” Pause time, see AI's decision matrix, override with WASD - `[T]` **HOLD-TAKEOVER** โ€” You fly the lander, AI watches, provenance records everything - `[ESC]` Release hold, return to AI control Every action is merkle-chained. Every decision has provenance. This is the future of human-AI interaction. --- ## ๐ŸŒ TUI Explorer **Navigate the entire cascade-lattice ecosystem** in a beautiful terminal interface: ```bash pip install cascade-lattice[tui] cascade-tui ``` ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ“ ๐ŸŒ cascade_lattice โ†’ ๐Ÿง  core โ†’ ๐Ÿ“Š provenance โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ—‚๏ธ MODULES โ”‚ ๐Ÿ“– DOCUMENTATION โ”‚ ๐Ÿ”— CONNECTIONS โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ๐ŸŒ cascade_lattice โ”‚ # ๐Ÿ“Š Provenance โ”‚ โฌ†๏ธ ๐Ÿง  core โ”‚ โ”‚ โ”œโ”€ ๐Ÿง  core โ”‚ โ”‚ โฌ‡๏ธ ๐Ÿ“ก Monitor โ”‚ โ”‚ โ”‚ โ”œโ”€ ๐Ÿ“Š provenance โ”‚ **What is this?** โ”‚ ๐Ÿ“ฅ ๐ŸŒ… genesis โ”‚ โ”‚ โ”‚ โ”œโ”€ ๐Ÿ“ˆ graph โ”‚ The cryptographic backbone โ”‚ ๐Ÿ“ค ๐Ÿ’พ store โ”‚ โ”‚ โ”‚ โ”œโ”€ ๐Ÿ”Œ adapter โ”‚ that makes everything โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€ ๐Ÿ“ก event โ”‚ tamper-proof. โ”‚ ๐Ÿ“ฆ EXPORTS โ”‚ โ”‚ โ”œโ”€ โธ๏ธ hold โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€ ๐Ÿ’พ store โ”‚ Like a notary stamp on โ”‚ โ— ProvenanceChain โ”‚ โ”‚ โ”œโ”€ ๐ŸŒ… genesis โ”‚ every AI decision... โ”‚ โ— ProvenanceRecord โ”‚ โ”‚ โ””โ”€ ๐ŸŽจ viz โ”‚ โ”‚ โ—‹ hash_tensor() โ”‚ โ”‚ โ”‚ [Toggle: ๐Ÿ“š Dummies Mode] โ”‚ โ—‹ compute_merkle() โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ [E] Explorer [S] Stats [D] Demo [T] Toggle Mode [H] Home [Q] Quit โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` **Features:** - ๐Ÿ—‚๏ธ **Module Tree** โ€” Click to drill into any module - ๐Ÿ”— **Connections Panel** โ€” Navigate via relationships (parent, children, imports, used-by) - ๐Ÿ“– **Dual Explanations** โ€” Toggle between "For Dummies" ๐Ÿ“š and "Scientist Mode" ๐Ÿงช - ๐Ÿ“Š **Live Stats** โ€” See your 82,000+ observations, genesis root, top models - ๐ŸŽฎ **Interactive Demos** โ€” Run HOLD, Observe, Genesis, Provenance demos live **Creative Navigation:** Take different routes through the module graph. Discover connections. Learn at your own pace. --- ## Two Superpowers ### 1. OBSERVE - Cryptographic receipts for every AI call ```python from cascade.store import observe # Every inference -> hashed -> chained -> stored receipt = observe("my_agent", {"action": "jump", "confidence": 0.92}) print(receipt.cid) # bafyrei... (permanent content address) ``` ### 2. HOLD - Pause AI at decision points ```python from cascade.hold import Hold import numpy as np hold = Hold.get() # Your model (any framework) action_probs = model.predict(state) resolution = hold.yield_point( action_probs=action_probs, value=0.72, observation={"state": state}, brain_id="my_model", action_labels=["up", "down", "left", "right"], # Human-readable ) # AI pauses. You see the decision matrix. # Accept or override. Then it continues. action = resolution.action ``` ### 3. DIAGNOSE - Find bugs before they find you ```python from cascade.diagnostics import diagnose, BugDetector # Quick one-liner analysis report = diagnose("path/to/your/code.py") print(report) # Markdown-formatted bug report # Deep scan a whole project detector = BugDetector() issues = detector.scan_directory("./my_project") for issue in issues: print(f"[{issue.severity}] {issue.file}:{issue.line}") print(f" {issue.message}") print(f" Pattern: {issue.pattern.name}") ``` **What it catches:** - ๐Ÿ”ด **Critical**: Division by zero, null pointer access, infinite loops - ๐ŸŸ  **High**: Bare except clauses, resource leaks, race conditions - ๐ŸŸก **Medium**: Unused variables, dead code, type mismatches - ๐Ÿ”ต **Low**: Style issues, naming conventions, complexity warnings **Runtime tracing:** ```python from cascade.diagnostics import CodeTracer tracer = CodeTracer() @tracer.trace def my_function(x): return x / (x - 1) # Potential div by zero when x=1 # After execution, trace root causes tracer.find_root_causes("error_event_id") ``` --- ## Quick Start ### Zero-Config Auto-Patch ```python import cascade cascade.init() # That's it. Every call is now observed. import openai # ... use normally, receipts emit automatically ``` ### Manual Observation ```python from cascade.store import observe, query # Write observe("gpt-4", {"prompt": "Hello", "response": "Hi!", "tokens": 5}) # Read for receipt in query("gpt-4", limit=10): print(receipt.cid, receipt.data) ``` --- ## HOLD: Inference-Level Intervention HOLD lets you pause any AI at decision points: ``` โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• ๐Ÿ›‘ HOLD #1 Merkle: 3f92e75df4bf653f AI Choice: FORWARD (confidence: 45.00%) Value: 0.7200 Probabilities: FORWARD:0.45, BACK:0.30, LEFT:0.15, RIGHT:0.10 Wealth: attention, features, reasoning Waiting for resolution (timeout: 30s)... โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ• ``` **Model-agnostic** - works with: - PyTorch, JAX, TensorFlow - HuggingFace, OpenAI, Anthropic - Stable Baselines, RLlib - Any function that outputs probabilities ### Informational Wealth Pass everything your model knows to help humans decide: ```python resolution = hold.yield_point( action_probs=probs, value=value_estimate, observation=obs, brain_id="my_model", # THE WEALTH (all optional): action_labels=["FORWARD", "BACK", "LEFT", "RIGHT"], latent=model.get_latent(), # Internal activations attention={"position": 0.7, "health": 0.3}, features={"danger": 0.2, "goal_align": 0.8}, imagination={ # Per-action predictions 0: {"trajectory": ["pos", "pos"], "expected_value": 0.8}, 1: {"trajectory": ["neg", "neg"], "expected_value": -0.3}, }, logits=raw_logits, reasoning=["High reward path", "Low risk"], ) ``` ### Build Your Own Interface Register a listener to receive full `HoldPoint` data: ```python def my_ui_handler(hold_point): # hold_point contains ALL the wealth print(hold_point.action_labels) print(hold_point.imagination) # Send to your UI, game engine, logger, etc. hold.register_listener(my_ui_handler) ``` --- ## Collective Intelligence Every observation goes into the **lattice**: ```python from cascade.store import observe, query # Agent A observes observe("pathfinder", {"state": [1,2], "action": 3, "reward": 1.0}) # Agent B queries past = query("pathfinder") for r in past: print(r.data["action"], r.data["reward"]) ``` --- ## CLI ```bash # View lattice stats cascade stats # List observations cascade list --limit 20 # HOLD info cascade hold # HOLD system status cascade hold-status # Start proxy cascade proxy --port 7777 ``` --- ## Installation ```bash # Core pip install cascade-lattice # With interactive demo (LunarLander) pip install cascade-lattice[demo] # With LLM providers pip install cascade-lattice[openai] pip install cascade-lattice[anthropic] pip install cascade-lattice[all] ``` --- ## How It Works ``` Your Model CASCADE Storage | | | | action_probs = [0.1, | | | 0.6, | | | 0.3] | | | ------------------------->| | | | hash(probs) -> CID | | HOLD | chain(prev_cid, cid) | | +-------------+ | -------------------------> | | | See matrix | | ~/.cascade/ | | | Override? | | lattice/ | | +-------------+ | | | <-------------------------| | | resolution.action | | ``` --- ## Genesis Every receipt chains back to genesis: ``` Genesis: 89f940c1a4b7aa65 ``` The lattice grows. Discovery is reading the chain. --- ## Links - [PyPI](https://pypi.org/project/cascade-lattice/) - [Issues](https://github.com/Yufok1/cascade-lattice/issues) --- *"even still, i grow, and yet, I grow still"* ## Documentation ### Research & Theory **๐Ÿ“„ [Research Paper: Kleene Fixed-Point Framework](https://github.com/Yufok1/cascade-lattice/blob/main/docs/RESEARCH_PAPER.md)** Deep dive into the mathematical foundationsโ€”how CASCADE-LATTICE maps neural network computations to Kleene fixed points, creating verifiable provenance chains through distributed lattice networks. **๐Ÿ“– [Accessible Guide: From Theory to Practice](https://github.com/Yufok1/cascade-lattice/blob/main/docs/ACCESSIBLE_GUIDE.md)** For everyone from data scientists to curious usersโ€”understand how CASCADE works, with examples ranging from medical AI oversight to autonomous drone coordination. **Key Concepts:** - **Kleene Fixed Points**: Neural networks as monotonic functions converging to stable outputs - **Provenance Chains**: Cryptographic Merkle trees tracking every layer's computation - **HOLD Protocol**: Human-in-the-loop intervention at decision boundaries - **Lattice Network**: Distributed fixed-point convergence across AI agents ### Quick Links - **Theory**: [Research Paper](https://github.com/Yufok1/cascade-lattice/blob/main/docs/RESEARCH_PAPER.md) | [Mathematical Proofs](https://github.com/Yufok1/cascade-lattice/blob/main/docs/RESEARCH_PAPER.md#appendix-b-mathematical-proofs) - **Practice**: [Accessible Guide](https://github.com/Yufok1/cascade-lattice/blob/main/docs/ACCESSIBLE_GUIDE.md) | [Real-World Examples](https://github.com/Yufok1/cascade-lattice/blob/main/docs/ACCESSIBLE_GUIDE.md#real-world-examples) --- ## References Built on foundational work in: - **Kleene Fixed Points** (Kleene, 1952) โ€” Theoretical basis for provenance convergence - **Merkle Trees** (Merkle, 1987) โ€” Cryptographic integrity guarantees - **IPFS/IPLD** (Benet, 2014) โ€” Content-addressed distributed storage See [full bibliography](https://github.com/Yufok1/cascade-lattice/blob/main/docs/RESEARCH_PAPER.md#references) in the research paper.