kowalski_tools/
lib.rs

1pub mod code;
2pub mod data;
3pub mod document;
4pub mod tool;
5pub mod web;
6
7pub use kowalski_core::tools::{Tool, ToolInput, ToolOutput, ToolParameter};
8
9/// Common types and utilities used across tools
10pub mod types {
11    use serde::{Deserialize, Serialize};
12
13    #[derive(Debug, Clone, Serialize, Deserialize)]
14    pub struct ToolMetadata {
15        pub name: String,
16        pub description: String,
17        pub parameters: Vec<ToolParameter>,
18    }
19
20    #[derive(Debug, Clone, Serialize, Deserialize)]
21    pub struct ToolParameter {
22        pub name: String,
23        pub description: String,
24        pub required: bool,
25        pub default_value: Option<String>,
26        pub parameter_type: ParameterType,
27    }
28
29    #[derive(Debug, Clone, Serialize, Deserialize)]
30    pub enum ParameterType {
31        String,
32        Number,
33        Boolean,
34        Array,
35        Object,
36    }
37}