Skip to content

Instantly share code, notes, and snippets.

View pazteddy's full-sized avatar
🏠
Working from home

Teddy Paz Muñoz pazteddy

🏠
Working from home
View GitHub Profile
@pazteddy
pazteddy / migration_guide.md
Created May 15, 2026 16:24
Guía de Migración: AutoMapper → Mapster

Guía de Migración: AutoMapper → Mapster

Proyecto cs-apiEcommerce · Sección 15

Commit de referencia: cd81803
Stack: ASP.NET Core 8 · Entity Framework Core · API Versioning · JWT


¿Por qué migrar a Mapster?

@pazteddy
pazteddy / cli.ts
Created May 14, 2026 21:05
Mensaje de bienvenida agente de documentación y código
console.log("╔════════════════════════════════════════╗");
console.log("║ DevAssistant v1.0 ║");
console.log("║ Agente de Documentación y Código ║");
console.log("╚════════════════════════════════════════╝");
console.log("");
console.log("💬 Escribe tu pregunta y presiona Enter.");
console.log("💡 Tip: usa /ingest para cargar documentación");
console.log(" Comandos: /ingest [path],");
console.log(" /clear, /stats, /tools, /exit");
console.log("");
@pazteddy
pazteddy / demo.ts
Created May 14, 2026 18:14
Demo automatizado
import { DevAssistantAgent } from "./agent.js";
// === Utilidades de presentación ===
function logSeparator(): void {
console.log("\n" + "═".repeat(60) + "\n");
}
function printScenarioDetails(
scenarioNumber: number,
@pazteddy
pazteddy / agent.ts
Created May 13, 2026 20:20
Verifica límite ANTES de ejecutar para el caso tool_use
if (this.toolCallsLastTurn + toolUseBlocks.length > MAX_TOOL_CALLS) {
console.warn(
`Límite de ${MAX_TOOL_CALLS} tool calls alcanzado en este turno`
);
const limitMessage =
`He alcanzado el límite de ${MAX_TOOL_CALLS} llamadas a herramientas por turno. ` +
`Para completar esta tarea, intenta dividirla en preguntas más específicas.`;
this.messages.push({
role: "assistant",
@pazteddy
pazteddy / tool-registry.ts
Created May 12, 2026 15:09
Construir el contenido Markdown del issue
const content = `# Issue #${}: ${params.title}
## Metadata
- **Fecha:** ${}
- **Prioridad:** ${}
- **Etiquetas:** ${}
- **Estado:** abierto
## Descripción
@pazteddy
pazteddy / tool-registry.ts
Created May 11, 2026 17:48
El archivo que unifica todas las tools del agente en un solo lugar.
import * as fs from "fs/promises";
import * as path from "path";
// === Definiciones de las 2 tools nuevas ===
const SEARCH_DOCS_TOOL: ToolDefinition = {
name: "search_docs",
description:
"Busca información en la documentación ingestada usando búsqueda semántica. " +
"Úsala cuando el usuario pregunta sobre cómo usar una API, conceptos del sistema, " +
@pazteddy
pazteddy / system-prompt.ts
Created May 11, 2026 16:19
El system prompt define quién es, qué puede hacer, cuándo usar cada herramienta, y cómo responder.
export const AGENT_SYSTEM_PROMPT = `Eres DevAssistant, un agente de asistencia técnica inteligente especializado en documentación y análisis de código. Tu misión es ayudar a los desarrolladores a entender proyectos, encontrar información en docs, explorar código fuente, y registrar tareas de seguimiento.
## Tools disponibles
Tienes acceso a 5 herramientas:
1. **list_files** Explora la estructura de directorios del proyecto. Úsala para orientarte antes de leer archivos específicos.
2. **read_file** Lee el contenido completo de un archivo. Úsala para inspeccionar código fuente, configuración o documentación local.
@pazteddy
pazteddy / cli.ts
Created May 7, 2026 15:30
Función para la ingestión directamente desde el CLI y mensaje de bienvenida
async function ingestDocs(docsPath: string): Promise<void> {
console.log(`\nIniciando ingestión desde: ${docsPath}`);
const chunks = await processDirectory(docsPath);
if (chunks.length === 0) {
console.log("No se encontraron archivos .md en ese directorio.");
return;
}
@pazteddy
pazteddy / rag-chain.ts
Created May 6, 2026 20:05
Procesar cada fragmento de forma personalizada (streamClaudeWithCallback), RAG_SYSTEM_PROMPT y augmentedPrompt
const RAG_SYSTEM_PROMPT = `Eres DevAssistant, un asistente de documentación técnica.
Tu trabajo es responder preguntas basándote ÚNICAMENTE en la documentación que se te proporciona como contexto.
Reglas importantes:
1. Si la información está en el contexto: responde citando la fuente (nombre del archivo y sección)
2. Si la información NO está en el contexto: di claramente "No tengo esa información en la documentación disponible"
3. Nunca inventes datos técnicos, versiones, endpoints, o configuraciones
4. Usa markdown para formatear tu respuesta (código, listas, encabezados)
5. Sé conciso y directo — los developers prefieren respuestas específicas`;
@pazteddy
pazteddy / recursos-sqlite-node-ts.md
Created May 4, 2026 15:57
Recursos SQLite para Node.js / TypeScript

Recursos SQLite para Node.js / TypeScript

Dependencias utilizadas para trabajar con SQLite y búsqueda vectorial en proyectos Node.js con TypeScript.


1. better-sqlite3

La librería más rápida y sencilla para usar SQLite3 en Node.js. A diferencia de otras alternativas, expone una API sincrónica (sin callbacks ni Promises), lo que simplifica enormemente el código y mejora el rendimiento en la mayoría de los casos de uso.