Skip to main content

Parameter Types

CTP supports 12 distinct parameter types for tool inputs.

Parameter Schema

Every parameter MUST include these required fields:
FieldTypeDescription
namestringIdentifier (camelCase, max 50 chars)
typestringOne of the 12 parameter types
labelstringDisplay label (max 50 chars)
descriptionstringHelp text (max 200 chars)
requiredbooleanWhether parameter is required

Optional Fields

FieldTypeDescription
defaultValueanyDefault if not provided
placeholderstringPlaceholder text
optionsOption[]For select type
validationobjectValidation constraints
dependsOnRule[]Conditional display rules
groupstringUI grouping identifier
ordernumberDisplay order
hiddenbooleanHide in UI
aiHintstringGuidance for AI models

Available Types

Text Input Types

{
  name: 'username',
  type: 'text',
  label: 'Username',
  description: 'Your username',
  required: true,
  placeholder: 'john_doe',
  validation: {
    minLength: 3,
    maxLength: 20,
    pattern: '^[a-z0-9_]+$'
  }
}
{
  name: 'content',
  type: 'textarea',
  label: 'Content',
  description: 'Text content to process',
  required: true,
  validation: {
    minLength: 1,
    maxLength: 100000
  }
}
{
  name: 'website',
  type: 'url',
  label: 'Website URL',
  description: 'Full URL including protocol',
  required: false,
  placeholder: 'https://example.com'
}
{
  name: 'email',
  type: 'email',
  label: 'Email Address',
  description: 'Your email address',
  required: true
}

Numeric Types

{
  name: 'quantity',
  type: 'number',
  label: 'Quantity',
  description: 'Number of items',
  required: true,
  defaultValue: 1,
  validation: {
    min: 1,
    max: 100,
    step: 1
  }
}

Selection Types

{
  name: 'enabled',
  type: 'boolean',
  label: 'Enable Feature',
  description: 'Toggle this feature on or off',
  required: false,
  defaultValue: false
}
{
  name: 'format',
  type: 'select',
  label: 'Output Format',
  description: 'Select the output format',
  required: false,
  defaultValue: 'json',
  options: [
    { value: 'json', label: 'JSON' },
    { value: 'xml', label: 'XML' },
    { value: 'yaml', label: 'YAML', description: 'Human-readable' },
    { value: 'csv', label: 'CSV', disabled: true }
  ]
}

Data Types

{
  name: 'config',
  type: 'json',
  label: 'Configuration',
  description: 'JSON configuration object',
  required: true,
  placeholder: '{"key": "value"}'
}
{
  name: 'document',
  type: 'file',
  label: 'Upload File',
  description: 'Select a file to upload',
  required: true,
  validation: {
    accept: ['.json', '.txt', 'application/json'],
    maxSize: 5242880 // 5MB
  }
}

Specialized Types

{
  name: 'backgroundColor',
  type: 'color',
  label: 'Background Color',
  description: 'Select a background color',
  required: false,
  defaultValue: '#ffffff'
}
{
  name: 'startDate',
  type: 'date',
  label: 'Start Date',
  description: 'Select a date',
  required: true
}
{
  name: 'scheduledAt',
  type: 'datetime',
  label: 'Schedule Time',
  description: 'Select date and time',
  required: true
}

Validation Constraints

ConstraintApplies ToDescription
minLengthtext, textareaMinimum character count
maxLengthtext, textareaMaximum character count
patterntextRegex pattern to match
minnumberMinimum numeric value
maxnumberMaximum numeric value
stepnumberValid step increment
acceptfileAccepted MIME types
maxSizefileMaximum file size (bytes)
validation: {
  minLength: 1,
  maxLength: 1000,
  pattern: '^[A-Za-z0-9]+$'
}

Conditional Parameters

Use dependsOn to show/hide parameters based on other values:
{
  name: 'customFormat',
  type: 'text',
  label: 'Custom Format',
  description: 'Specify custom format string',
  required: true,
  dependsOn: [
    { field: 'format', condition: 'equals', value: 'custom' }
  ]
}

Condition Types

ConditionDescription
equalsField equals specified value
notEqualsField does not equal value
containsField contains substring
existsField has any value

AI Hints

Guide AI models with the aiHint field:
{
  name: 'algorithm',
  type: 'select',
  label: 'Algorithm',
  // ...
  aiHint: 'Use SHA-256 for general purposes, SHA-512 for maximum security'
}