ViteHub is still experimental. Expect bugs and breaking changes.
Official capabilities
Use the official Capability catalog by agent ability, not by package boundary.
Official Capabilities are public factories exported from @vite-hub/agent/capabilities.
Use them when the Agent needs a named ability that ViteHub owns end to end, including requirements, runtime behavior, driver contributions, and inspection metadata.
server/agents/support.ts
import {
access,
blob,
chat,
chatSummary,
chatTitle,
db,
entry,
fetch,
git,
inputCommands,
kv,
llmGate,
llmRoute,
mcp,
memory,
rateLimit,
repositoryHost,
sandbox,
schedule,
skills,
subagents,
transcribe,
usageTelemetry,
webSearch,
workspaceShell,
} from '@vite-hub/agent/capabilities'
Catalog
| Ability | Capability | Use it when |
|---|---|---|
| Invocation access | access() | Trusted invocation identity should narrow chat admission or Workspace Scope before later Capabilities run. |
| Chat behavior | chat() | A chat surface should start Agent Invocations and manage Chat History behavior. |
| App-owned entry | entry() | A product event needs a named Agent Trigger without a full product-specific Capability. |
| Input commands | inputCommands() | Explicit user commands should transform or enrich input before the Agent runs. |
| Subagents | subagents() | A model-backed Agent should delegate bounded work to named Agent Definitions through model-facing tools. |
| Workspace files | workspaceShell() | The Agent should inspect or edit Workspace files through constrained Workspace tools. |
| Git source history | git() | The Agent needs bounded Git source-history inspection or local Workspace Session git state selection. |
| Repository host | repositoryHost() | The Agent needs provider-hosted repository, Change Request, issue, comment, check, or status data through a configured Repository Host client. |
| Skills file | skills() | The Agent requires a Workspace skill file at invocation time. |
| KV storage | kv() | The Agent needs scoped key-value read or edit tools. |
| Blob storage | blob() | The Agent needs scoped object read or edit tools. |
| Database | db() | The Agent needs guarded SQL query, schema, or mutation tools. |
| Sandbox execution | sandbox() | The Agent may run an allowlisted executable in an isolated runtime. |
| Schedules | schedule() | The Agent declares scheduled invocations or manages Runtime Schedules through tools. |
| MCP servers | mcp() | External MCP server tools should become model-facing Agent tools. |
| Web search | webSearch() | The Agent needs model web search or normalized web search/read tools. |
| Fetch tools | fetch() | The Agent needs named HTTP tools for developer-approved endpoints. |
| Transcription | transcribe() | Audio input parts should become text before model execution. |
| Durable memory | memory() | The Agent needs scoped durable records across invocations. |
| LLM routing | llmRoute() | A pre-invocation model decision should choose one developer-defined route. |
| LLM gate | llmGate() | A pre-invocation model decision should allow or reject the request. |
| Rate limit | rateLimit() | A trusted invocation budget should be checked or consumed before the Agent runs. |
| Chat title | chatTitle() | Chat streams and finish extensions should include a generated conversation title. |
| Chat summary | chatSummary() | A summary command should replace explicit input with a conversation summary. |
| Usage telemetry | usageTelemetry() | Agent Usage Records should be normalized, emitted, or attached to output. |
Read capability pages first
Each capability page starts with installation and configuration, then shows runtime behavior, requirements, driver support, options, inspection path, and related reference links. Avoid copying option shapes between Capabilities unless the public factory exposes the same type.