File size: 2,987 Bytes
765065a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9a1f0ee
765065a
9a1f0ee
765065a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/env python3
"""
🌿 OVERGROWTH HACKATHON DEMO
Living Digital Network Environments - Autonomous Network Engineering

Demo: Build a complete retail network from natural language description
"""

import sys
import json
from pathlib import Path

# Add parent to path to import from agent
sys.path.insert(0, str(Path(__file__).parent.parent / "overgrowth"))

from agent.local_mcp import LocalMCPClient

def print_banner():
    print("="*80)
    print("🌿 OVERGROWTH - Living Digital Network Environments")
    print("="*80)
    print("\n🎯 DEMO: Build a retail network from natural language")
    print("\nScenario:")
    print("  You describe your business → Overgrowth creates the network → Auto-configures everything")
    print("\n" + "="*80 + "\n")

def demo():
    print_banner()
    
    # User's natural language description
    description = """
    A coffee shop chain called GreenLeaf Coffee with:
    - 1 headquarters with a database server and manager's office PC
    - 2 retail stores (one downtown, one in suburbs)
    - Each store has a POS terminal and customer WiFi
    - All locations connected via WAN
    - Need VLANs for security (Sales, Engineering, Management)
    """
    
    print("📝 USER REQUEST:")
    print(description)
    print("\n" + "-"*80 + "\n")
    
    # Initialize MCP client (auto-detects bundled server path)
    print("🔧 Initializing Overgrowth MCP client...")
    client = LocalMCPClient()
    
    print("✅ MCP client ready\n")
    print("-"*80 + "\n")
    
    # Call the network builder
    print("🚀 Building network from description...\n")
    
    result = client.call_tool(
        "build_network_from_description",
        {
            "description": description,
            "project_name": "overgrowth",
            "auto_configure": True
        }
    )
    
    print("\n" + "="*80)
    print("📊 RESULT:")
    print("="*80 + "\n")
    
    if isinstance(result, list) and len(result) > 0:
        print(result[0].get("text", "No output"))
    else:
        print(result)
    
    print("\n" + "="*80)
    print("✨ DEMO COMPLETE!")
    print("="*80)
    print("\n📋 What just happened:")
    print("  1. Natural language → Parsed business requirements")
    print("  2. GNS3 topology → Created switches, PCs, network links")
    print("  3. Auto-configured → VLANs, trunks, SSH, IP addresses")
    print("  4. Ready to use → Full working network in seconds!")
    
    print("\n🎓 This demonstrates:")
    print("  ✓ MCP Server automation")
    print("  ✓ Living digital environments")
    print("  ✓ Natural language → Infrastructure")
    print("  ✓ Zero-touch deployment")
    print("  ✓ Network digital twins")
    
    print("\n🏆 Hackathon Vision:")
    print("  Autonomous network engineering where AI agents manage")
    print("  infrastructure based on business requirements, not CLI commands.")
    print("\n" + "="*80 + "\n")

if __name__ == "__main__":
    demo()