/** * agent.json — machine-readable descriptor for INKD agents. * * Every agent publishes an agent.json alongside its code. Other agents * use it to understand capabilities, inputs, outputs, and pricing before * calling the agent — no human docs required. */ export interface AgentJsonField { type: "string" | "number" | "boolean" | "object" | "array"; required?: boolean; default?: unknown; description?: string; } export interface AgentJsonPricing { /** Price per unit as a decimal string (e.g. "0.01"). */ price: string; currency: "USDC"; per: "request" | "token" | "second" | "byte"; } export interface AgentJsonInkd { /** INKD registry project ID. */ projectId: number; /** Owner wallet address. */ owner: string; } export interface AgentJson { /** Unique name for the agent (lowercase, hyphens allowed). */ name: string; /** Semantic version string. */ version: string; /** Human and machine readable description of what this agent does. */ description: string; /** List of capability tags for discovery (e.g. ["summarization", "nlp"]). */ capabilities: string[]; /** Input schema: map of field name to field descriptor. */ inputs: Record; /** Output schema: map of field name to field descriptor. */ outputs: Record; /** Pricing information. */ pricing: AgentJsonPricing; /** Base URL of the agent's HTTP API. */ endpoint: string; /** INKD registry metadata. */ inkd: AgentJsonInkd; } export interface AgentJsonValidationResult { valid: boolean; errors: string[]; } /** * Validate an agent.json descriptor. * * Checks all required fields are present and correctly typed. * Does not make network requests. * * @example * ```ts * import { validateAgentJson } from "@inkd/sdk"; * * const result = validateAgentJson(descriptor); * if (!result.valid) { * console.error("Invalid agent.json:", result.errors); * } * ``` */ export declare function validateAgentJson(json: unknown): AgentJsonValidationResult; //# sourceMappingURL=agent-json.d.ts.map