ObjectStackObjectStack

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

PropertyTypeRequiredDescription
namestringTool unique identifier (snake_case)
labelstringTool display name
descriptionstringTool description for LLM function calling
categoryEnum<'data' | 'action' | 'flow' | 'integration' | 'vector_search' | 'analytics' | 'utility'>optionalTool category for grouping and filtering
parametersRecord<string, any>JSON Schema for tool parameters
outputSchemaRecord<string, any>optionalJSON Schema for tool output
objectNamestringoptionalTarget object name (snake_case)
requiresConfirmationbooleanRequire user confirmation before execution
permissionsstring[]optionalRequired permissions or roles
activebooleanWhether the tool is enabled
builtInbooleanPlatform built-in tool flag
protectionObjectoptionalPackage author protection block — lock policy for this tool.
_lockEnum<'none' | 'no-overlay' | 'no-delete' | 'full'>optionalItem-level lock — controls overlay & delete (ADR-0010).
_lockReasonstringoptionalHuman-readable reason shown when a write is refused by _lock.
_lockSourceEnum<'artifact' | 'package' | 'env-forced'>optionalLayer that set _lock (artifact
_provenanceEnum<'package' | 'org' | 'env-forced'>optionalOrigin of the item (package
_packageIdstringoptionalOwning package machine id.
_packageVersionstringoptionalOwning package version.
_lockDocsUrlstringoptionalOptional documentation link surfaced next to _lockReason.

ToolCategory

Tool operational category

Allowed Values

  • data
  • action
  • flow
  • integration
  • vector_search
  • analytics
  • utility

On this page