Initial commit: add .gitignore and README
Some checks failed
Tests / test (3.10) (push) Has been cancelled
Tests / test (3.11) (push) Has been cancelled
Tests / test (3.12) (push) Has been cancelled
Tests / lint (push) Has been cancelled
Tests / docker (push) Has been cancelled

This commit is contained in:
defiQUG
2026-02-09 21:51:42 -08:00
commit c052b07662
3146 changed files with 808305 additions and 0 deletions

View File

@@ -0,0 +1,139 @@
"""Example: Using the Admin Control Panel for FusionAGI management."""
from fusionagi import Orchestrator, EventBus, StateManager
from fusionagi.interfaces.admin_panel import AdminControlPanel
from fusionagi.interfaces.voice import VoiceLibrary, VoiceProfile
from fusionagi.interfaces.conversation import ConversationTuner, ConversationStyle
def main() -> None:
"""Demonstrate admin control panel usage."""
# Initialize core FusionAGI components
bus = EventBus()
state = StateManager()
orch = Orchestrator(event_bus=bus, state_manager=state)
# Create admin control panel
admin = AdminControlPanel(
orchestrator=orch,
event_bus=bus,
state_manager=state,
voice_library=VoiceLibrary(),
conversation_tuner=ConversationTuner(),
)
print("=== FusionAGI Admin Control Panel ===\n")
# ========== Voice Library Management ==========
print("1. Adding Voice Profiles...")
voices = [
VoiceProfile(
name="Professional Assistant",
language="en-US",
gender="neutral",
style="professional",
pitch=1.0,
speed=1.0,
),
VoiceProfile(
name="Friendly Guide",
language="en-US",
gender="female",
style="friendly",
pitch=1.1,
speed=1.05,
),
VoiceProfile(
name="Technical Expert",
language="en-US",
gender="male",
style="technical",
pitch=0.9,
speed=0.95,
),
]
for voice in voices:
voice_id = admin.add_voice_profile(voice)
print(f" ✓ Added voice: {voice.name} (ID: {voice_id[:8]}...)")
# Set default voice
admin.set_default_voice(voices[0].id)
print(f" ✓ Default voice set to: {voices[0].name}\n")
# List voices
all_voices = admin.list_voices()
print(f"Total voices in library: {len(all_voices)}\n")
# ========== Conversation Style Configuration ==========
print("2. Configuring Conversation Styles...")
styles = {
"customer_support": ConversationStyle(
formality="neutral",
verbosity="balanced",
empathy_level=0.9,
proactivity=0.8,
technical_depth=0.4,
humor_level=0.3,
),
"technical_expert": ConversationStyle(
formality="formal",
verbosity="detailed",
empathy_level=0.5,
proactivity=0.6,
technical_depth=0.9,
humor_level=0.1,
),
"casual_chat": ConversationStyle(
formality="casual",
verbosity="balanced",
empathy_level=0.8,
proactivity=0.5,
technical_depth=0.3,
humor_level=0.7,
),
}
for name, style in styles.items():
admin.register_conversation_style(name, style)
print(f" ✓ Registered style: {name}")
print()
# ========== System Monitoring ==========
print("3. System Status...")
status = admin.get_system_status()
print(f" Status: {status.status}")
print(f" Uptime: {status.uptime_seconds:.1f} seconds")
print(f" Active tasks: {status.active_tasks}")
print(f" Active agents: {status.active_agents}")
print()
# ========== Configuration Export ==========
print("4. Exporting Configuration...")
config = admin.export_configuration()
print(f" ✓ Exported configuration with:")
print(f" - {len(config['voices'])} voice profiles")
print(f" - {len(config['conversation_styles'])} conversation styles")
print(f" - {len(config['agent_configs'])} agent configurations")
print()
# ========== Task Statistics ==========
print("5. Task Statistics...")
stats = admin.get_task_statistics()
print(f" Total tasks: {stats['total_tasks']}")
print(f" By state: {stats['by_state']}")
print(f" By priority: {stats['by_priority']}")
print()
print("=== Admin Panel Demo Complete ===")
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,20 @@
"""Example: run Dvādaśa API with uvicorn."""
if __name__ == "__main__":
from fusionagi.api import create_app
from fusionagi.adapters import StubAdapter
# Use stub adapter for testing without API keys
stub = StubAdapter(structured_response={
"head_id": "logic",
"summary": "Stub analysis.",
"claims": [{"claim_text": "Test claim", "confidence": 0.9, "evidence": [], "assumptions": []}],
"risks": [],
"questions": [],
"recommended_actions": ["Proceed"],
"tone_guidance": "",
})
app = create_app(adapter=stub)
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)

View File

@@ -0,0 +1,147 @@
"""Example: Using the Multi-Modal User Interface."""
import asyncio
from fusionagi import Orchestrator, EventBus, StateManager
from fusionagi.interfaces.multimodal_ui import MultiModalUI
from fusionagi.interfaces.voice import VoiceInterface, VoiceLibrary, VoiceProfile
from fusionagi.interfaces.conversation import ConversationManager, ConversationTuner, ConversationStyle
from fusionagi.interfaces.base import ModalityType
async def main() -> None:
"""Demonstrate multi-modal UI usage."""
# Initialize core FusionAGI components
bus = EventBus()
state = StateManager()
orch = Orchestrator(event_bus=bus, state_manager=state)
# Set up voice interface
voice_library = VoiceLibrary()
voice_library.add_voice(VoiceProfile(
name="Assistant Voice",
language="en-US",
style="friendly",
))
voice_interface = VoiceInterface(
voice_library=voice_library,
stt_provider="whisper",
tts_provider="system",
)
# Set up conversation manager
tuner = ConversationTuner()
tuner.register_style("default", ConversationStyle(
formality="neutral",
verbosity="balanced",
empathy_level=0.7,
))
conv_manager = ConversationManager(tuner=tuner)
# Create multi-modal UI
ui = MultiModalUI(
orchestrator=orch,
conversation_manager=conv_manager,
voice_interface=voice_interface,
)
print("=== FusionAGI Multi-Modal User Interface ===\n")
# ========== Session Creation ==========
print("1. Creating User Session...")
session_id = ui.create_session(
user_id="demo_user",
preferred_modalities=[ModalityType.TEXT, ModalityType.VOICE],
accessibility_settings={
"high_contrast": False,
"screen_reader": False,
"large_text": False,
},
)
print(f" ✓ Session created: {session_id[:16]}...")
print(f" ✓ Active modalities: TEXT, VOICE\n")
# ========== Multi-Modal Output ==========
print("2. Sending Multi-Modal Messages...")
await ui.send_to_user(
session_id,
"Welcome to FusionAGI! I can interact with you through text and voice.",
modalities=[ModalityType.TEXT],
)
print(" ✓ Sent welcome message (TEXT)")
await ui.send_to_user(
session_id,
"How can I assist you today?",
modalities=[ModalityType.TEXT, ModalityType.VOICE],
)
print(" ✓ Sent greeting (TEXT + VOICE)\n")
# ========== Conversation ==========
print("3. Conversational Interaction...")
user_inputs = [
"What can you do?",
"Tell me about your capabilities",
"Can you help me with a task?",
]
for user_input in user_inputs:
print(f" User: {user_input}")
response = await ui.converse(session_id, user_input)
print(f" Agent: {response}\n")
# ========== Task Submission ==========
print("4. Interactive Task Submission...")
task_id = await ui.submit_task_interactive(
session_id,
goal="Analyze system performance and generate report",
constraints={"format": "markdown", "max_length": 1000},
)
print(f" ✓ Task submitted: {task_id[:8]}...")
print(" ✓ User will receive real-time updates\n")
# ========== Modality Management ==========
print("5. Managing Modalities...")
# Enable haptic feedback (if available)
success = ui.enable_modality(session_id, ModalityType.HAPTIC)
if success:
print(" ✓ Haptic modality enabled")
else:
print(" Haptic modality not available")
# Check available modalities
available = ui.get_available_modalities()
print(f" Available modalities: {[m.value for m in available]}\n")
# ========== Session Statistics ==========
print("6. Session Statistics...")
stats = ui.get_session_statistics(session_id)
print(f" Session ID: {stats['session_id'][:16]}...")
print(f" User ID: {stats['user_id']}")
print(f" Active modalities: {stats['active_modalities']}")
print(f" Conversation turns: {stats['conversation_turns']}")
print(f" Started at: {stats['started_at']}")
print()
# ========== Session Cleanup ==========
print("7. Ending Session...")
ui.end_session(session_id)
print(" ✓ Session ended\n")
print("=== Multi-Modal UI Demo Complete ===")
if __name__ == "__main__":
asyncio.run(main())