Skip to content

wave-av/adk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

@wave-av/adk — Agent Developer Kit

npm version npm downloads license

The video layer for AI agents. Build agents that see, produce, and deliver video.

WAVE ADK is the complete toolkit for AI agents to interact with live video infrastructure. Like Stripe is for payments and Resend is for email — WAVE is for live streaming and video.

Quick start

npm install @wave-av/adk
import { StreamMonitorAgent } from '@wave-av/adk';

const monitor = new StreamMonitorAgent({
  apiKey: process.env.WAVE_AGENT_KEY,
  agentName: 'my-quality-monitor',
  streamIds: ['stream_abc123'],
  autoRemediate: true,
  onQualityDrop: async (alert) => {
    console.log(`Quality drop on ${alert.streamId}: ${alert.metric}`);
  },
});

await monitor.start();

Agent lifecycle

stateDiagram-v2
    [*] --> Init: new AgentRuntime(agent)
    Init --> Starting: runtime.start()
    Starting --> Running: agent registered + health server up
    Running --> Running: heartbeat every 30s
    Running --> Stopping: SIGTERM / SIGINT / runtime.stop()
    Stopping --> [*]: cleanup + flush logs

    state Running {
        [*] --> Healthy
        Healthy --> Degraded: quality drop
        Degraded --> Healthy: auto-remediate
        Healthy --> Processing: tool invoked
        Processing --> Healthy: result returned
    }
Loading

Endpoints while running:

  • GET /health — liveness probe ({ status: "healthy", uptime: 12345 })
  • GET /ready — readiness probe ({ ready: true })
  • GET /metrics — usage stats ({ totalCalls: 42, totalDurationMs: 1200 })

Agent templates

Template What It Does
StreamMonitorAgent Watches quality, auto-remediates degradation
AutoProducerAgent AI-powered live show direction (camera switching, graphics)
ClipFactoryAgent Detects highlights, auto-creates social clips
ModerationAgent AI content moderation for chat and video
CaptionAgent Real-time transcription and multi-language captions

MCP tools (10 tools)

import { AgentToolkit } from '@wave-av/adk/tools';

const toolkit = new AgentToolkit({ apiKey: process.env.WAVE_AGENT_KEY });

// Get MCP-compatible tool definitions
const tools = toolkit.toMCPTools();
// → wave_create_stream, wave_monitor_stream, wave_create_clip,
//   wave_switch_camera, wave_show_graphic, wave_moderate_chat,
//   wave_start_captions, wave_analyze_quality, wave_mark_highlight,
//   wave_control_camera

Agent runtime v2

Production-ready lifecycle with health endpoint, heartbeat, and structured logging:

import { StreamMonitorAgent, AgentRuntime } from '@wave-av/adk';

const agent = new StreamMonitorAgent({ /* config */ });
const runtime = new AgentRuntime(agent, {
  healthPort: 8080,           // GET /health, /ready, /metrics
  heartbeatIntervalMs: 30000, // Platform heartbeat
  logLevel: 'info',           // Structured JSON logs
});

await runtime.start(); // Handles SIGTERM/SIGINT gracefully

Subpath imports

Import only what you need for smaller bundles:

// Tools only
import { AgentToolkit, WaveToolError } from '@wave-av/adk/tools';

// Agents only
import { WaveAgent, AgentRuntime } from '@wave-av/adk/agents';

// Framework adapters only
import { createMastraTools } from '@wave-av/adk/adapters';

// Agent templates
import { StreamMonitorAgent, ClipFactoryAgent } from '@wave-av/adk/templates';

// Type definitions
import type { StreamQualityAlert, ClipHighlight } from '@wave-av/adk/types';

Framework adapters

// Mastra — native TypeScript, MCP-first
import { createMastraTools } from '@wave-av/adk/adapters';

// LangGraph — LangChain state machines
import { createLangGraphTools } from '@wave-av/adk/adapters';

// LiveKit Agents — real-time voice/video
import { createLiveKitWaveTools } from '@wave-av/adk/adapters';

// Kernel.sh — cloud browser automation
import { createKernelTools } from '@wave-av/adk/adapters';

Or use the MCP server with ANY framework:

{ "wave": { "command": "npx", "args": ["@wave-av/mcp-server"] } }

Why WAVE ADK?

  • 10 MCP tools — plug into Claude, Cursor, or any MCP client
  • 5 agent templates — start producing in minutes, not weeks
  • 6 subpath exports — tree-shake to only what you need
  • Real infrastructure — not a wrapper, actual video processing
  • Usage-based pricing — pay per API call, plans from $19/month
  • Enterprise-ready — multi-region architecture, designed for scale

Troubleshooting

Module not found with subpath imports

Ensure "moduleResolution": "node16" or "nodenext" in your tsconfig.json.

ESM required error

ADK is ESM-first. Add "type": "module" to your package.json, or use dynamic imports:

const { AgentToolkit } = await import("@wave-av/adk/tools");

CJS consumers can use require() — the package exports .cjs files via the require condition.

Related packages

Links

About

WAVE Agent Developer Kit — 10 MCP tools, 5 agent templates for AI video agents

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors