Skip to content

🛠️ Tools

Las herramientas (Tools) son las unidades de trabajo ejecutable en Fireflay. Se dividen principalmente en dos modos de operación.

🏃 Modo Run (TaskTool)

Las herramientas de tipo TaskTool están diseñadas para ejecutarse una sola vez y finalizar. Son ideales para:

  • Scaffolding de archivos.
  • Generación de reportes estáticos.
  • Validaciones puntuales de CI.
ts
import { TaskTool, FFMicroKernel } from '@fireflayjs/core'

export class MiHerramienta extends TaskTool {
  name = "MiHerramienta"

  async run(kernel: FFMicroKernel): Promise<void> {
    console.log("🚀 Ejecutando tarea...")
    // Lógica de la herramienta
  }
}

👁️ Modo Watch (WatcherTool)

Las herramientas de tipo WatcherTool permanecen activas y reaccionan a eventos del sistema. Son ideales para:

  • Observabilidad arquitectónica continua.
  • Feedback en tiempo real durante el desarrollo.
  • Detección de cambios prohibidos.
ts
import { WatcherTool, FFMicroKernel } from '@fireflayjs/core'

export class MiObservador extends WatcherTool {
  name = "MiObservador"

  async run(kernel: FFMicroKernel): Promise<void> {
    console.log("👁️ Escuchando cambios...")
    
    kernel.on('file:changed', (data) => {
      console.log(`Cambio detectado en: ${data.filename}`)
    })
  }
}

⚙️ Registro

Las herramientas se registran en el array tools del archivo de configuración fireflay.config.ts.

ts
import { MiHerramienta } from './tools/mi-herramienta'

export default defineConfig({
  tools: [
    new MiHerramienta()
  ]
})