VITTO FEATURE SUMMARY

Documentation for Vitto

Vitto Platform: Feature Summary and Testing Guide

Session: 109-111 Last Updated: February 17, 2026 Status: Backend complete, Frontend UI in progress


Table of Contents

  1. Architecture Overview
  2. Backend Services Built
  3. Frontend Components Built
  4. Existing Components Being Leveraged
  5. API Endpoint Reference
  6. Testing Each Feature
  7. Per-App Feature Matrix
  8. Infrastructure and Configuration

Architecture Overview

flowchart TD
    subgraph frontends [Frontend Apps]
        GSpace[gograb-space :5200]
        GAdmin[gograb-admin :5100]
        GDev[gograb-dev :5300]
        SAdmin[space-admin :5500]
    end

    subgraph sharedLibs [Shared Libraries]
        SpaceAssistant["@libs-ai/vitto-hub"]
        VittoChat["@libs-ai/vitto-chat"]
        GoGrabAiLib["@libs-ai/gograb-ai-lib"]
        AgentOrch["@libs-ai/agent-orchestrator"]
        AgentMind["@libs-ai/agent-mind"]
    end

    subgraph vittoBackend [Vitto Engine - backend-vitto-api :3003]
        Engine[VittoEngineService]
        Skills[SkillManagerService]
        Channels[ChannelGatewayService]
        Webhooks[WebhookIngestionService]
        Scheduler[TaskSchedulerService]
        SubAgents[SubAgentService]
        Voice[VoiceService]
        Compliance[ComplianceService]
        SmartRouter[SmartRouterService]
        CostTracker[CostTrackerService]
        ToolSecurity[ToolSecurityService]
        Memory[VittoMemoryService]
        Ollama[OllamaProviderService]
    end

    subgraph otherBackends [Other Backends]
        BackendAPI[backend-api :3000]
        BackendAI[backend-ai-api :3001]
        BackendDocs[backend-docs-api :3002]
    end

    frontends --> sharedLibs
    sharedLibs --> vittoBackend
    sharedLibs --> otherBackends
    vittoBackend --> BackendAI

Backend Services Built

P0: Security, Cost, and Reliability

Service File Purpose Status
SmartRouterService apis/backend-vitto-api/src/app/llm/smart-router.service.ts Model failover (Claude -> OpenAI -> Gemini) + smart routing by task complexity Complete
CostTrackerService apis/backend-vitto-api/src/app/strategy/cost-tracker.service.ts Per-task cost estimation, per-user budgets, spending analytics Complete
ToolSecurityService apis/backend-vitto-api/src/app/tools/tool-security.service.ts Sandbox levels (safe/guarded/dangerous), command allowlists, approval gates Complete
CostGuardService apis/backend-vitto-api/src/app/strategy/cost-guard.service.ts Iteration/token/time limits per task complexity Complete

P1: Skills, Training, and Command Hub

Service File Purpose Status
SkillManagerService apis/backend-vitto-api/src/app/engine/skill-manager.service.ts CRUD + security vetting + publishing + rating for skills Complete
VittoMemoryService apis/backend-vitto-api/src/app/mind/vitto-memory.service.ts Tiered memory (hot cache + vector search + text search) + edit/delete/export Complete

P2: Channels, Voice, Webhooks, Scheduling

Service File Purpose Status
ChannelGatewayService apis/backend-vitto-api/src/app/connectivity/channel-gateway.service.ts Multi-channel message routing (web, Slack, Discord, WhatsApp, email, webhook) Complete
VoiceService apis/backend-vitto-api/src/app/connectivity/voice.service.ts Speech-to-Text (OpenAI Whisper) + Text-to-Speech (OpenAI TTS) Complete
WebhookIngestionService apis/backend-vitto-api/src/app/connectivity/webhook-ingestion.service.ts External webhook event processing + action triggering Complete
TaskSchedulerService apis/backend-vitto-api/src/app/engine/task-scheduler.service.ts Recurring task scheduling (once/hourly/daily/weekly/monthly/cron) Complete

P3: Sub-Agents and Enterprise

Service File Purpose Status
SubAgentService apis/backend-vitto-api/src/app/engine/sub-agent.service.ts Sub-agent spawning, monitoring, coordination, mesh state Complete
ComplianceService apis/backend-vitto-api/src/app/engine/compliance.service.ts Enterprise audit logging, compliance reporting, data retention Complete

P4: Local Models

Service File Purpose Status
OllamaProviderService apis/backend-vitto-api/src/app/llm/ollama.provider.ts Local model support via Ollama (zero API cost fallback) Complete

Frontend Components Built

New Components (Session 109)

Component Library File Purpose
VittoCommandHubComponent @libs-ai/vitto-hub libs/libs-ai/vitto-hub/src/lib/components/vitto-command-hub/ Tabbed interface: Chat, Skills, Channels, Webhooks, Schedules, Memory, Observatory
SkillStudioComponent @libs-ai/vitto-hub libs/libs-ai/vitto-hub/src/lib/components/skill-studio/ Skill marketplace, visual builder, test chat
VittoApiService @libs-ai/vitto-hub libs/libs-ai/vitto-hub/src/lib/services/vitto-api.service.ts 40+ API methods for all Vitto backend endpoints
AiErrorBoundaryComponent @libs-ai/vitto-hub libs/libs-ai/vitto-hub/src/lib/components/ai-error-boundary/ Graceful error handling with retry

Components Being Built (Session 111)

Component Purpose Existing Component Leveraged
ChannelManagerComponent Setup wizards for WhatsApp/Slack/Discord/Email/Webhook New (no existing channel UI)
WebhookBuilderComponent Visual webhook management + event history New
VisualSchedulerComponent Recurring tasks with visual frequency picker New
MemoryManagerComponent Browse, edit, delete, export memories Wraps existing MemoryBrowserComponent
CostDashboardComponent Spending overview, budgets, routing stats Extends existing BillingDashboardComponent
ApprovalCenterComponent Human-in-the-loop approval UI Consolidates existing approval patterns
SecurityAuditComponent Audit log viewer + compliance reports New

Existing Components Being Leveraged

These components were built in previous sessions and are being integrated into the Vitto Command Hub:

Memory System

Component/Service Library Purpose
MemoryBrowserComponent @libs-ai/gograb-ai-lib Browse/search agent memories with filters
MemoryClustersComponent @libs-ai/agent-mind Visualize memory clusters
AIMemoryService @libs-ai/gograb-ai-lib Semantic memory with embeddings, IndexedDB
HierarchicalMemoryService @libs-ai/gograb-ai-lib 4-tier memory (working -> short-term -> long-term -> crystallized)
AgentMemoryStorageService @libs-ai/agent-orchestrator Hybrid flash persistence + MongoDB sync

Agent and Intelligence

Component/Service Library Purpose
TrainingCenterComponent @libs-ai/ai-agents-training-center Agent training, pattern library, live testing
AgentMeshVisualizationComponent @libs-ai/gograb-ai-lib Real-time agent mesh graph
BillingDashboardComponent @libs-ai/gograb-ai-lib Subscription management, usage tracking
CommandCenterComponent @libs-ai/gograb-ai-lib Real-time command center with WebSocket
VittoChatShellComponent @libs-ai/vitto-chat Main chat interface with streaming

API Endpoint Reference

All endpoints are on backend-vitto-api at /engine/*.

Skills

Method Path Purpose
GET /engine/skills List skills (filter: category, status, trustLevel, search)
GET /engine/skills/stats Skill statistics
GET /engine/skills/:id Get single skill
POST /engine/skills Create skill
PUT /engine/skills/:id Update skill
DELETE /engine/skills/:id Delete skill
POST /engine/skills/:id/publish Publish skill
POST /engine/skills/:id/rate Rate skill (1-5)

Channels

Method Path Purpose
GET /engine/channels List channels (filter: userId)
GET /engine/channels/:id Get single channel
POST /engine/channels Create channel
PUT /engine/channels/:id Update channel
DELETE /engine/channels/:id Delete channel
POST /engine/channels/inbound Process inbound message

Webhooks

Method Path Purpose
GET /engine/webhooks List webhooks (requires userId)
GET /engine/webhooks/:webhookId Get webhook details
POST /engine/webhooks Create webhook
PUT /engine/webhooks/:webhookId Update webhook
DELETE /engine/webhooks/:webhookId Delete webhook
POST /engine/webhooks/:webhookId/ingest Ingest event payload
GET /engine/webhooks/:webhookId/events Get event history

Schedules

Method Path Purpose
GET /engine/schedules List schedules (requires userId)
GET /engine/schedules/:id Get schedule
POST /engine/schedules Create schedule
PUT /engine/schedules/:id Update schedule
DELETE /engine/schedules/:id Delete schedule

Memory

Method Path Purpose
GET /engine/memories/browse Browse memories (userId, spaceId, type, tags, minImportance)
GET /engine/memories/search Semantic search (query, userId, spaceId, type, limit)
GET /engine/memories/recent Recent memories (userId, spaceId, limit)
POST /engine/memories Create memory
PUT /engine/memories/:memoryId Edit memory
POST /engine/memories/:memoryId/forget Delete single memory
POST /engine/memories/bulk-delete Bulk delete (memoryIds[])
DELETE /engine/memories/user/:userId Delete ALL user memories
GET /engine/memories/export/:userId Export memories as JSON
GET /engine/memories/stats Memory statistics

Voice

Method Path Purpose
GET /engine/voice/status Check voice availability
POST /engine/voice/transcribe Audio -> text (Whisper STT)
POST /engine/voice/synthesize Text -> audio (OpenAI TTS)

Cost and Routing

Method Path Purpose
GET /engine/costs/stats Spending summary (days)
GET /engine/costs/estimate Estimate task cost (summary, complexity)
GET /engine/costs/budget/:userId Get user budget
PUT /engine/costs/budget/:userId Set user budget
GET /engine/routing/stats Routing statistics
GET /engine/routing/decisions Recent routing decisions

Security and Compliance

Method Path Purpose
GET /engine/security/audit Audit log (limit, toolName, success)
GET /engine/security/stats Security stats
GET /engine/security/policies Tool security policies
GET /engine/security/approvals Pending approval requests
POST /engine/security/approvals/:id Resolve approval (approved/rejected)
GET /engine/compliance/audit Compliance audit trail
GET /engine/compliance/report Generate compliance report

Sub-Agents

Method Path Purpose
POST /engine/agents/spawn Spawn sub-agent
GET /engine/agents/task/:taskId Get agents for task
GET /engine/agents/mesh/:taskId Get agent mesh state
POST /engine/agents/:agentId/cancel Cancel sub-agent
GET /engine/agents/stats Agent statistics

Local Models (Ollama)

Method Path Purpose
GET /engine/local-models/status Check Ollama health
POST /engine/local-models/pull Pull model from Ollama registry

Testing Each Feature via UI

Prerequisites

  1. Start backend: yarn serve:backend-ai (port 3001) and ensure backend-vitto-api is running (port 3003)
  2. Start frontend app: yarn serve:gograb-dev (port 5300) for full developer access
  3. MongoDB must be running (connection string in .env.local)
  4. Log in (required -- all Vitto features need authentication for userId resolution)

Testability Matrix

Feature Has UI? Route (gograb-dev) How to reach
Skills YES http://localhost:5300/vitto Sidebar: Vitto AI > Command Hub > Skills tab
Channels YES http://localhost:5300/vitto or /channels Sidebar: Vitto AI > Command Hub > Channels tab, OR Vitto AI > Channels
Webhooks YES http://localhost:5300/vitto Command Hub > Webhooks tab
Schedules YES http://localhost:5300/vitto Command Hub > Schedules tab
Memory YES http://localhost:5300/vitto Command Hub > Memory tab
Cost Dashboard YES http://localhost:5300/vitto Command Hub > Observatory tab > Costs sub-tab
Smart Routing Stats YES http://localhost:5300/vitto Command Hub > Observatory tab > Costs sub-tab > Routing sub-tab
Budget Controls YES http://localhost:5300/vitto Command Hub > Observatory tab > Costs sub-tab > Budget sub-tab
Approvals YES http://localhost:5300/vitto Command Hub > Observatory tab > Approvals sub-tab
Security Audit YES http://localhost:5300/vitto Command Hub > Observatory tab > Security Audit sub-tab (admin/dev only)
Voice (STT/TTS) NO API only No UI yet -- API-only via POST /engine/voice/transcribe
Sub-Agent Mesh PARTIAL http://localhost:5300/agents/control-center Sidebar: Agents > Control Center (existing, not in Command Hub)
Compliance Reports NO API only No UI yet -- API-only via GET /engine/compliance/report
Local Models (Ollama) NO API only No UI yet -- API-only via GET /engine/local-models/status
Chat (Vitto) PARTIAL http://localhost:5300/vitto Chat tab exists but needs VittoChatShell wiring via ng-content

Route Map by App

App Port Vitto Hub Route Channels Route Sidebar Link?
gograb-dev 5300 /vitto /channels YES (Vitto AI section)
gograb-admin 5100 /vitto /channels Depends on AppConfigService
gograb-space 5200 /space/:slug/vitto /space/:slug/channels Not yet in space-builder tools
space-admin 5500 /vitto /channels No sidebar yet

Step-by-Step UI Testing

Cost Management (Observatory > Costs)

  1. Open http://localhost:5300/vitto
  2. Click the Observatory tab (last tab, monitor icon)
  3. Click the Costs sub-tab
  4. You should see three sub-sections: Overview, Routing, Budget
  5. Overview: Shows total tasks, total tokens, estimated cost, and cost breakdown by model
  6. Routing: Shows total routed, failovers triggered, cache savings, and tasks by complexity
  7. Budget: Shows daily token limit, monthly budget, remaining. Click "Edit Budget" to set limits
  8. NOTE: If data is empty, submit some tasks via the Chat tab first to generate cost data

Skill Management (Skills tab)

  1. Open http://localhost:5300/vitto
  2. Click the Skills tab
  3. Click "Create Skill" to open the builder
  4. Fill in: name, description, category, triggers, system prompt
  5. Save and verify it appears in the marketplace grid
  6. Click a skill to see details; use the Test tab to test it
  7. Publish and rate (1-5 stars)

Channel Management (Channels tab)

  1. Open http://localhost:5300/vitto > Channels tab (or navigate to /channels)
  2. Click Add Channel
  3. Select a channel type (WhatsApp, Slack, Discord, Email, or Custom Webhook)
  4. Follow the step-by-step wizard: Configure > Test Connection > Save
  5. For WhatsApp: enter Twilio Account SID, Auth Token, and WhatsApp number
  6. For quick testing without credentials: use "Custom Webhook" type
  7. After saving, see the channel in the list with enable/disable toggle

Webhook Management (Webhooks tab)

  1. Open http://localhost:5300/vitto > Webhooks tab
  2. Click New Webhook
  3. Enter name, select source (GitHub/GitLab/Stripe/etc.), add event filters
  4. Choose action: Run a prompt, Trigger a skill, or Send notification
  5. Click Create. The webhook URL will be available in the list view (copy icon)
  6. Send a test payload to that URL and check the event history

Schedule Management (Schedules tab)

  1. Open http://localhost:5300/vitto > Schedules tab
  2. Click New Schedule
  3. Enter task name and describe what Vitto should do
  4. Pick frequency: One Time, Every Hour, Every Day, Every Week, Every Month
  5. Set time/day as needed. Click Create Schedule
  6. Verify the schedule appears with next run time and toggle to pause/resume

Memory Management (Memory tab)

  1. Open http://localhost:5300/vitto > Memory tab
  2. Browse memories with search and type filter
  3. Click edit (pencil icon) on any memory to inline-edit content and tags
  4. Click delete (trash icon) to remove a single memory
  5. Click "Select" to enter bulk mode, select multiple, click "Delete Selected"
  6. Click "Export" to download all memories as JSON

Approvals (Observatory > Approvals)

  1. Open http://localhost:5300/vitto > Observatory tab > Approvals sub-tab
  2. See pending approval requests for dangerous tool executions
  3. Click Approve or Reject for each request

Security Audit (Observatory > Security Audit, admin/dev only)

  1. Open http://localhost:5300/vitto > Observatory tab > Security Audit sub-tab
  2. View audit log of all tool executions
  3. Filter by tool name
  4. See sandbox level, approval status, success status, duration

Features Without UI (API-Only Testing)

These features have backend services but no dedicated frontend UI yet:

Voice (STT/TTS):

# Check voice availability
curl http://localhost:3003/engine/voice/status

# Transcribe audio (requires OPENAI_API_KEY)
curl -X POST http://localhost:3003/engine/voice/transcribe \
  -H "Content-Type: application/json" \
  -d '{"audioBase64": "...", "language": "en"}'

Compliance Reports:

curl "http://localhost:3003/engine/compliance/report?startDate=2026-01-01&endDate=2026-02-17"

Local Models (Ollama):

curl http://localhost:3003/engine/local-models/status
curl -X POST http://localhost:3003/engine/local-models/pull -H "Content-Type: application/json" -d '{"modelName": "llama3"}'

Sub-Agent Spawning:

curl -X POST http://localhost:3003/engine/agents/spawn \
  -H "Content-Type: application/json" \
  -d '{"taskId": "task-1", "role": "researcher", "goal": "Find best practices"}'

Per-App Feature Matrix

What's available and how to reach it

Feature gograb-dev (5300) gograb-admin (5100) gograb-space (5200) space-admin (5500)
Vitto Command Hub /vitto (sidebar link) /vitto (needs nav config) /space/:slug/vitto (needs tool filter) /vitto (needs sidebar)
Skill Studio Hub > Skills tab Hub > Skills tab Hub > Skills tab Hub > Skills tab
Channel Manager Hub > Channels tab, /channels Hub > Channels tab, /channels Hub > Channels tab, /space/:slug/channels Hub > Channels tab, /channels
Webhook Builder Hub > Webhooks tab Hub > Webhooks tab Hub > Webhooks tab Hub > Webhooks tab
Visual Scheduler Hub > Schedules tab Hub > Schedules tab Hub > Schedules tab Hub > Schedules tab
Memory Manager Hub > Memory tab Hub > Memory tab Hub > Memory tab Hub > Memory tab
Cost Dashboard Hub > Observatory > Costs Hub > Observatory > Costs Hub > Observatory > Costs Hub > Observatory > Costs
Approvals Hub > Observatory > Approvals Hub > Observatory > Approvals Hub > Observatory > Approvals Hub > Observatory > Approvals
Security Audit Hub > Observatory > Audit Hub > Observatory > Audit Hidden (builder role) Hidden (builder role)
Voice No UI No UI No UI No UI
Sub-Agent Mesh /agents/control-center /agents/mesh Not available Not available
Compliance Reports No UI No UI No UI No UI
Local Models (Ollama) No UI No UI No UI No UI

Navigation accessibility status

App Has sidebar link to /vitto? User can click to get there?
gograb-dev YES (Vitto AI section) YES
gograb-admin NO (needs AppConfigService update) No, must type URL
gograb-space NO (not in space-builder tools filter) No, must type URL
space-admin NO (no sidebar component exists) No, must type URL

Role mapping (auto-detected from AuthService)

Auth Role Hub Role What they see
admin admin Full access + Security Audit + budget editing
editor developer Full access + Security Audit
viewer builder Simplified wizards, no Security Audit, per-space scope
guest builder Simplified wizards (but most API calls will fail without userId)

Remaining navigation gaps (to fix)

  1. gograb-admin: Add "Vitto" to AppConfigService navigation config
  2. gograb-space: Add 'vitto' to SPACE_BUILDER_MODULE_IDS in MainLayoutComponent
  3. space-admin: Build a basic sidebar/nav component with Vitto link

Infrastructure and Configuration

Environment Variables Required

# In .env.local
BACKEND_VITTO_API_URL =http://localhost:3003/vitto-api     # Vitto backend
AI_API_URL=http://localhost:3001        # AI backend
API_BASE_URL=http://localhost:3000      # Main backend

# For voice features
OPENAI_API_KEY=sk-...

# For WhatsApp (Twilio)
TWILIO_ACCOUNT_SID=AC...
TWILIO_AUTH_TOKEN=...
TWILIO_NUMBER=+1...

# For local models
OLLAMA_HOST=http://localhost:11434

Shared Library Dependencies

@libs-ai/vitto-hub
  ├── VittoCommandHubComponent (container)
  │   ├── SkillStudioComponent
  │   ├── ChannelManagerComponent
  │   ├── WebhookBuilderComponent
  │   ├── VisualSchedulerComponent
  │   ├── MemoryManagerComponent (wraps MemoryBrowserComponent)
  │   ├── CostDashboardComponent (extends BillingDashboardComponent)
  │   ├── ApprovalCenterComponent
  │   └── SecurityAuditComponent
  └── VittoApiService (40+ methods)

@libs-ai/gograb-ai-lib
  ├── MemoryBrowserComponent (existing, reused)
  ├── BillingDashboardComponent (existing, extended)
  ├── AgentMeshVisualizationComponent (existing, reused)
  └── AIMemoryService (existing, reused)

@libs-ai/vitto-chat
  └── VittoChatShellComponent (existing, used in Chat tab)

Test Suite Status

Suite Tests Status
SmartRouterService 10 Pass
CostTrackerService 10 Pass
ToolSecurityService 10 Pass
SubAgentService 8 Pass
SkillManagerService 8 Pass
TaskSchedulerService 8 Pass
ChannelGatewayService 6 Pass
OllamaProviderService 6 Pass
AgentLoopService 12 Pass
PhaseExecutorService 20 Pass
VittoController 17 Pass
+ 15 other suites 199 Pass
Total 314 All Pass