plugins:
- name: "{{ plugin_name }}"
{% set class_parts = plugin_name.replace(' ', '_').replace('-','_').split('_') -%}
{% if class_parts|length > 1 -%}
{% set class_name = class_parts|map('capitalize')|join -%}
{% else -%}
{% set class_name = class_parts|join -%}
{% endif -%}
kind: "{{ plugin_name|lower|replace(' ', '_')|replace('-', '_') }}.plugin.{{ class_name }}"
description: "{{ description }}"
version: "{{ version }}"
author: "{{ author }}"
hooks: ["prompt_pre_fetch", "prompt_post_fetch", "tool_pre_invoke", "tool_post_invoke"]
tags: ["plugin"]
mode: "enforce" # enforce | permissive | disabled
priority: 150
conditions:
# Apply to specific tools/servers
- server_ids: [] # Apply to all servers
tenant_ids: [] # Apply to all tenants
config:
# Plugin config dict passed to the plugin constructor
# Plugin directories to scan
plugin_dirs:
- "{{ plugin_name|lower|replace(' ', '_')|replace('-', '_') }}"
# Global plugin settings
plugin_settings:
parallel_execution_within_band: true
plugin_timeout: 30
fail_on_plugin_error: false
enable_plugin_api: true
plugin_health_check_interval: 60