@pandi-coding-agent/pandi-typescript-lsp
v0.1.9
Published
Extensión de Pi para feedback de diagnósticos de TypeScript: ejecuta `tsc --noEmit` en el borde coherente (`agent_end`) sobre archivos tocados, más la herramienta `typescript_diagnostics` y el comando `/tsc`. No es un LSP completo (sin hover/go-to-def).
Maintainers
Readme
@pandi-coding-agent/pandi-typescript-lsp
Feedback de diagnósticos de TypeScript para Pi: después de un turno que escribió o editó TypeScript, ejecuta
tsc --noEmit sobre el/los proyecto(s) relevante(s) y reporta errores solo para los archivos que ese turno tocó. Usalo
cuando estés iterando TypeScript dentro de una sesión de Pi y quieras feedback del compilador sin salir del chat ni
correr tsc a mano.
En 30 segundos
pi install npm:@pandi-coding-agent/pandi-typescript-lspPor defecto, el chequeo corre automáticamente en agent_end, acotado a los archivos tocados por el turno. Si encuentra
algo, vas a ver el reporte en tu siguiente turno, sin hacer nada:
Diagnósticos de TypeScript (1):
src/foo.ts(12,5): error TS2322: Type 'string' is not assignable to type 'number'.Ese chequeo automático también limpia la lista de archivos tocados, así que si corrés /tsc run enseguida solo va a
decir "No se tocó ningún archivo TypeScript en este turno." — editá primero otro .ts y después lanzalo a demanda:
/tsc run
Diagnósticos de TypeScript (1):
src/foo.ts(12,5): error TS2322: Type 'string' is not assignable to type 'number'.Qué obtenés
- Feedback automático y no bloqueante en
agent_end— advisory por defecto, autofix opcional. typescript_diagnostics— herramienta de modelo para chequeos bajo demanda./tsc— comando slash para controlar y ejecutar chequeos vos mismo.
Instalación
Desde este repositorio:
pi install ./extensions/pandi-typescript-lsp # global (tu usuario)
pi install -l ./extensions/pandi-typescript-lsp # local al proyecto
pi --no-extensions -e ./extensions/pandi-typescript-lsp # prueba única, sin cargar nada másComandos
| Comando | Qué hace |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| /tsc o /tsc status | Muestra estado habilitado, modo, scope, autofix y máximo. |
| /tsc on / /tsc off | Habilita o deshabilita el feedback automático. |
| /tsc run | Ejecuta un chequeo ahora y reporta el resultado. |
| /tsc scope touched\|project | Define el scope por defecto (archivos tocados vs. proyecto completo). |
| /tsc autofix on\|off | Alterna entre entrega advisory y autofix. |
| /tsc max <n> | Limita cuántos diagnósticos se muestran. |
| typescript_diagnostics | Herramienta de modelo: ejecuta diagnósticos con scope opcional (touched por defecto, o project para <cwd>/tsconfig.json); devuelve un resumen textual y details estructurados. |
Cómo funciona
Los diagnósticos se disparan en agent_end — cuando termina todo el turno — y no después de cada escritura. A mitad del
turno, un archivo suele quedar a medio editar y eso reportaría errores transitorios; chequear una sola vez en el borde,
acotado a los archivos tocados, da señal honesta con ruido mínimo.
Elegí el modo de entrega con /tsc autofix on|off:
| Modo | Ante errores, agent_end... | Seguridad de loop |
| ---------------------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| advisory (default) | envía un mensaje no bloqueante en el siguiente turno | los reportes idénticos se deduplican y nunca se reinyectan |
| autofix (opt-in) | dispara un turno de seguimiento para que el agente los corrija ahora | limitado a 1 arreglo auto-disparado por prompt, más la misma deduplicación — nunca puede entrar en loop |
Limitaciones y notas de seguridad
- No es un LSP completo. Aunque el nombre diga eso, esto solo da diagnósticos — sin hover, sin go-to-definition, sin completions. Pensalo como: "¿mis ediciones de TypeScript siguen compilando?".
- No bloquea por diseño. Nunca bloquea una llamada a tool; si falta
tsconfigotsc, queda en un NO-OP silencioso con una única advertencia advisory, nunca en una sesión rota. tscsiempre se lanza con un array argv — nunca con un string de shell — así que las rutas no pueden inyectar comandos.- Una corrida que supera el presupuesto de timeout se muestra como inconclusa ("timed out"), nunca como chequeo limpio, y no altera el estado de dedupe advisory.
Detalles
Orden de resolución de tsc:
PI_TS_LSP_TSC— ruta absoluta a untsc.js, ejecutado con elnodeactual.- El
node_modules/typescript/bin/tscmás cercano, subiendo desde el directorio del tsconfig. - Respaldo:
npx tsc.
Variables de entorno:
| Variable | Predeterminado | Significado |
| ---------------------- | -------------- | ---------------------------------------------------------------- |
| PI_TS_LSP | on | on / off — habilita la extensión |
| PI_TS_LSP_MODE | advisory | advisory / autofix |
| PI_TS_LSP_MAX | 20 | Máximo de diagnósticos mostrados (entero positivo) |
| PI_TS_LSP_AUTOFIX | off | on / off — habilita turnos de autofix |
| PI_TS_LSP_TSC | (auto) | Ruta absoluta al tsc.js a ejecutar |
| PI_TS_LSP_TIMEOUT_MS | 60000 | Presupuesto de tiempo por corrida de tsc (entero positivo, ms) |
La entrega autofix necesita AMBAS configuraciones juntas — PI_TS_LSP_MODE=autofix solo sigue en advisory, porque el
código recién cambia a autofix cuando mode === "autofix" && autofix (PI_TS_LSP_AUTOFIX=on).
Relacionado
Para instalar el paquete completo de extensiones y skills, instalá la raíz del repositorio.
