JSON Schema definitions and TypeScript types for VAT agent manifest format
npm install @vibe-agent-toolkit/agent-schemaJSON Schema definitions and TypeScript types for VAT agent manifest format.
``bash`
bun add @vibe-agent-toolkit/agent-schema
`typescript
import { AgentManifestSchema, type AgentManifest } from '@vibe-agent-toolkit/agent-schema';
// Validate agent.yaml data
const result = AgentManifestSchema.safeParse(data);
if (result.success) {
const agent: AgentManifest = result.data;
console.log('Valid agent:', agent.metadata.name);
} else {
console.error('Validation errors:', result.error.issues);
}
`
JSON Schema files are available in the schemas/ directory:
`typescript`
import agentManifestSchema from '@vibe-agent-toolkit/agent-schema/schemas/agent-manifest.json';
Available schemas:
- agent-manifest.json - Complete agent manifestagent-metadata.json
- - Agent metadatallm-config.json
- - LLM configurationagent-interface.json
- - Input/output interfacetool.json
- - Tool definitionsresource-registry.json
- - Resource registryvat-package-metadata.json
- - VAT package.json metadata (distribution standard)
- AgentManifestSchema - Complete agent.yaml structureAgentMetadataSchema
- - Agent metadata (name, version, etc.)AgentSpecSchema
- - Agent specification (LLM, tools, resources)VatPackageMetadataSchema
- - package.json vat field for distribution
- LLMConfigSchema - LLM configuration with alternativesToolSchema
- - Tool definitionsAgentInterfaceSchema
- - Input/output schemasResourceRegistrySchema
- - Resource registryPromptsConfigSchema
- - Prompt configurationCredentialsConfigSchema
- - Credentials requirements
- SchemaRefSchema - JSON Schema $ref formatToolAlternativeSchema
- - Tool alternativesBuildMetadataSchema
- - Build metadata
All schemas export corresponding TypeScript types:
`typescript`
import type {
AgentManifest,
AgentMetadata,
AgentSpec,
LLMConfig,
Tool,
AgentInterface,
} from '@vibe-agent-toolkit/agent-schema';
`typescript
import { AgentManifestSchema } from '@vibe-agent-toolkit/agent-schema';
import { readFileSync } from 'node:fs';
import YAML from 'yaml';
// Load agent.yaml
const content = readFileSync('agent.yaml', 'utf-8');
const data = YAML.parse(content);
// Validate
const result = AgentManifestSchema.safeParse(data);
if (!result.success) {
console.error('Validation failed:');
result.error.issues.forEach(issue => {
console.error(- ${issue.path.join('.')}: ${issue.message});
});
process.exit(1);
}
console.log('✅ Valid agent manifest');
`
`typescript
import { VatPackageMetadataSchema } from '@vibe-agent-toolkit/agent-schema';
import { readFileSync } from 'node:fs';
// Load package.json
const packageJson = JSON.parse(readFileSync('package.json', 'utf-8'));
// Validate vat field
if (packageJson.vat) {
const result = VatPackageMetadataSchema.safeParse(packageJson.vat);
if (!result.success) {
console.error('Invalid VAT metadata:');
result.error.issues.forEach(issue => {
console.error(- ${issue.path.join('.')}: ${issue.message});
});
process.exit(1);
}
console.log('✅ Valid VAT metadata');
}
`
JSON Schemas are automatically generated from Zod schemas during build:
`bash`
bun run generate:schemas
This ensures TypeScript types and JSON Schemas stay in sync.
Current API version: vat.dev/v1
Future versions will be released as:
- Breaking changes: vat.dev/v2v1`
- Non-breaking additions: Compatible within
MIT