OlaiEdge / examples /desktop_app_example.py
SiddardhaShayini's picture
Upload folder using huggingface_hub
1aa277b verified
Raw History Blame Contribute Delete
3.92 kB
#!/usr/bin/env python3
"""
FastAgent Edge: Example Desktop Application Integration (Code Editor / Note App)
Demonstrates multi-tab slot caching, memory budget inspection, and grammar-constrained JSON.
"""
import time
from fast_agent import (
FastAgent,
MemoryBudgetManager,
SlotCacheManager,
GrammarEngine,
LicenseManager,
)
def main():
print("=" * 65)
print("[*] FastAgent Edge Engine: Desktop App Integration Showcase")
print("=" * 65)
# 1. License Check (Community or Commercial)
license_token = LicenseManager.generate_token(
licensee="DevCraft Studio IDE",
seat_count=25,
max_slots=16,
)
license = LicenseManager.verify_license(license_token)
print(f"\n[License] Active Tier: {license.tier} ({license.licensee})")
print(f" Max Active Tab Slots: {license.max_concurrent_slots}")
# 2. Memory Budget Manager (Protects 8GB consumer PCs from OOM)
memory_mgr = MemoryBudgetManager(budget_mb=2048)
snapshot = memory_mgr.get_system_snapshot()
print(f"\n[Memory] Total System RAM: {snapshot['total_system_ram_mb']} MB")
print(f" Available RAM: {snapshot['available_system_ram_mb']} MB")
print(f" Engine Budget: {snapshot['engine_budget_mb']} MB")
print(f" RAM Utilization: {snapshot['budget_utilization_percent']}%")
# 3. Multi-Tab Slot Caching (Simulating 3 Open Tabs in a Desktop Code Editor)
slot_mgr = SlotCacheManager(max_active_slots=license.max_concurrent_slots)
slot_mgr.set_pinned_system_prompt("System: You are an autonomous code refactoring edge engine.")
# Tab 1: utils.py
print("\n[Tab 1] Switching to 'src/utils.py' tab...")
tab1 = slot_mgr.get_or_create_slot("tab-utils-py")
tab1.add_user_turn("Refactor format_currency() to support EUR and GBP.")
tab1.append_agent_turn("Refactored format_currency with currency symbol mapping.")
# Tab 2: parser.py
print("[Tab 2] Switching to 'src/parser.py' tab...")
tab2 = slot_mgr.get_or_create_slot("tab-parser-py")
tab2.add_user_turn("Add AST error handling for unclosed brackets.")
tab2.append_agent_turn("Added SyntaxError catcher for bracket mismatch.")
# Tab 3: main.py
print("[Tab 3] Switching to 'src/main.py' tab...")
tab3 = slot_mgr.get_or_create_slot("tab-main-py")
tab3.add_user_turn("Wire up CLI argument flags.")
tab3.append_agent_turn("Integrated argparse with --budget and --slots flags.")
print(f"\n[Slot Manager] Active Document Tabs in Memory: {slot_mgr.active_slot_count()}")
for slot_info in slot_mgr.list_slots():
print(f" * {slot_info['session_id']}: {slot_info['turns_in_memory']} turns cached")
# 4. Grammar-Constrained JSON Extraction (Code Editor Patch)
print("\n[Grammar Engine] Enforcing strict AST Code Patch schema...")
patch_schema = GrammarEngine.get_desktop_schema("code_editor_patch")
gbnf_grammar = GrammarEngine.json_schema_to_gbnf(patch_schema)
print(f"Generated GBNF Grammar ({len(gbnf_grammar)} chars) to guarantee 100% syntactically valid edits.")
sample_llm_json = """{
"file_path": "src/utils.py",
"action": "replace",
"start_line": 15,
"end_line": 20,
"replacement_code": "def format_currency(val, symbol='$'): return f'{symbol}{val:.2f}'",
"commit_message": "Add EUR/GBP currency formatting"
}"""
valid, parsed_patch, err = GrammarEngine.validate_and_parse(sample_llm_json, patch_schema)
assert valid is True
print(f"[AST Patch Applied] File: {parsed_patch['file_path']} | Action: {parsed_patch['action']}")
print(f" Line: {parsed_patch['start_line']} | Message: {parsed_patch['commit_message']}")
print("\n" + "=" * 65)
print("[+] FastAgent Edge Engine is ready for drop-in desktop app deployment!")
print("=" * 65)
if __name__ == "__main__":
main()