Tool
Tool protocol schemas
Tool Category
Classifies the tool by its operational domain.
Source: packages/spec/src/ai/tool.zod.ts
TypeScript Usage
import { Tool, ToolCategory } from '@objectstack/spec/ai';
import type { Tool, ToolCategory } from '@objectstack/spec/ai';
// Validate data
const result = Tool.parse(data);Tool
Properties
| Property | Type | Required | Description |
|---|---|---|---|
| name | string | ✅ | Tool unique identifier (snake_case) |
| label | string | ✅ | Tool display name |
| description | string | ✅ | Tool description for LLM function calling |
| category | Enum<'data' | 'action' | 'flow' | 'integration' | 'vector_search' | 'analytics' | 'utility'> | optional | Tool category for grouping and filtering |
| parameters | Record<string, any> | ✅ | JSON Schema for tool parameters |
| outputSchema | Record<string, any> | optional | JSON Schema for tool output |
| objectName | string | optional | Target object name (snake_case) |
| requiresConfirmation | boolean | ✅ | Require user confirmation before execution |
| permissions | string[] | optional | Required permissions or roles |
| active | boolean | ✅ | Whether the tool is enabled |
| builtIn | boolean | ✅ | Platform built-in tool flag |
ToolCategory
Tool operational category
Allowed Values
dataactionflowintegrationvector_searchanalyticsutility