syncable_cli/agent/tools/mod.rs
1//! Agent tools using Rig's Tool trait
2//!
3//! These tools wrap existing CLI functionality for the agent to use.
4//!
5//! ## Available Tools
6//!
7//! ### File Operations
8//! - `ReadFileTool` - Read file contents
9//! - `WriteFileTool` - Write single files (Dockerfiles, Terraform, etc.)
10//! - `WriteFilesTool` - Write multiple files (Terraform modules, Helm charts)
11//! - `ListDirectoryTool` - List directory contents
12//!
13//! ### Analysis
14//! - `AnalyzeTool` - Analyze project architecture, dependencies, build commands
15//!
16//! ### Security
17//! - `SecurityScanTool` - Security vulnerability scanning
18//! - `VulnerabilitiesTool` - Dependency vulnerability checking
19//!
20//! ### Linting
21//! - `HadolintTool` - Native Dockerfile linting (best practices, security)
22//! - `DclintTool` - Native Docker Compose linting (best practices, style, security)
23//! - `HelmlintTool` - Native Helm chart structure/template linting
24//! - `KubelintTool` - Native Kubernetes manifest security/best practice linting
25//!
26//! ### Helm vs Kubernetes Linting
27//! - **HelmlintTool**: Use for Helm chart development - validates Chart.yaml, values.yaml,
28//! Go template syntax, and Helm-specific best practices. Works on chart directories.
29//! - **KubelintTool**: Use for K8s security - checks rendered manifests for privileged containers,
30//! missing probes, RBAC issues, resource limits. Works on YAML files, Helm charts (renders them),
31//! and Kustomize directories.
32//!
33//! ### Diagnostics
34//! - `DiagnosticsTool` - Check for code errors via IDE/LSP or language-specific commands
35//!
36//! ### Terraform
37//! - `TerraformFmtTool` - Format Terraform configuration files
38//! - `TerraformValidateTool` - Validate Terraform configurations
39//! - `TerraformInstallTool` - Install Terraform CLI (auto-detects OS)
40//!
41//! ### Shell
42//! - `ShellTool` - Execute validation commands (docker build, terraform validate, helm lint)
43//!
44//! ### Planning (Forge-style workflow)
45//! - `PlanCreateTool` - Create structured plan files with task checkboxes
46//! - `PlanNextTool` - Get next pending task and mark it in-progress
47//! - `PlanUpdateTool` - Update task status (done, failed)
48//! - `PlanListTool` - List all available plan files
49//!
50//! ### Web
51//! - `WebFetchTool` - Fetch content from URLs (converts HTML to markdown)
52//!
53mod analyze;
54mod dclint;
55mod diagnostics;
56mod fetch;
57mod file_ops;
58mod hadolint;
59mod helmlint;
60mod kubelint;
61mod plan;
62mod security;
63mod shell;
64mod terraform;
65mod truncation;
66
67pub use truncation::TruncationLimits;
68
69pub use analyze::AnalyzeTool;
70pub use dclint::DclintTool;
71pub use diagnostics::DiagnosticsTool;
72pub use fetch::WebFetchTool;
73pub use file_ops::{ListDirectoryTool, ReadFileTool, WriteFileTool, WriteFilesTool};
74pub use hadolint::HadolintTool;
75pub use helmlint::HelmlintTool;
76pub use kubelint::KubelintTool;
77pub use plan::{PlanCreateTool, PlanListTool, PlanNextTool, PlanUpdateTool};
78pub use security::{SecurityScanTool, VulnerabilitiesTool};
79pub use shell::ShellTool;
80pub use terraform::{TerraformFmtTool, TerraformInstallTool, TerraformValidateTool};