Portsmith

Trae funciones enfocadas de JS/TS desde otros repositorios a tu aplicación mediante MCP, con verificaciones de comportamiento y un parche que puedes revisar.

Documentación

Portsmith

Mueve funciones de JS/TS entre repositorios, con comprobaciones de comportamiento y un parche revisable.

Tests npm alpha MIT license

Inicio rápido · Primera transferencia · Agentes de codificación · Ejemplos · Discusiones

¿Encontraste una función útil en otro código base? Portsmith rastrea sus archivos JS/TS, los prepara en una copia de tu aplicación y verifica la integración contra el comportamiento que declares. Usa tus propias ediciones, un agente de codificación o un modelo compatible con OpenAI. Tus repositorios originales permanecen sin cambios.

A recorded browser session: catalog search fails before the transfer and works afterward, with the declared checks passing.

Grabado desde la demostración fuente usando una propuesta incluida y redactada, no IA autónoma. El alfa publicado tiene el mismo comportamiento de ejemplo con un estilo de navegador más simple. Detalles de la demostración y reproducción · Imagen fija

Pruébalo ahora

Node 22.19+ (22.x) o 24.11+, además de Git. No se necesita clave API ni registro:

npx --yes --package=portsmith-workbench@alpha portsmith-demo

El ejemplo incluido mueve el filtrado de tablas a una aplicación de catálogo:

Source contract       5/5 passed
Destination before    1/5 passed
Destination after     5/5 passed
Existing tests        pass before and after
Output                a patch + verification report

Crea una carpeta .portsmith/demo-* nueva en tu directorio actual e imprime las rutas del parche y del informe. La propuesta está redactada para que puedas probar el flujo de trabajo sin un modelo.

Para uso continuo:

npm install -g portsmith-workbench@alpha
portsmith doctor --human
portsmith-demo --install-browser

El último comando descarga Chromium compatible y ejecuta comprobaciones de interacción del navegador. Más adelante usa portsmith-demo --browser. Los hosts Linux mínimos también pueden necesitar npx playwright@1.61.1 install-deps chromium. Instalación y solución de problemas →

¿Para qué puedo usarlo?

  • Reutilizar una función específica: mueve un filtro, analizador o transformación a otra aplicación JS/TS.
  • Revisar la integración de un agente: prueba el comportamiento propuesto, conserva las pruebas existentes y luego inspecciona el parche.
  • Verificar un flujo de trabajo del navegador: declara interacciones como búsqueda y restablecimiento, y conserva capturas de pantalla y trazas.

Comienza con una función pequeña cuyas entradas, salidas y pruebas de destino puedas nombrar. Recorre una transferencia completa →

Cómo funciona

Discover → Inspect → Declare behavior → Prepare a copy
                                             ↓
Review patch ← Export ← Verify ← Adapt the integration

La exportación requiere una fuente que pase, una brecha de destino demostrada, un candidato que pase, regresiones completadas, originales sin cambios y un parche nuevo que reproduzca el candidato verificado. Una falla, tiempo de espera agotado o prueba omitida bloquea la verificación. Reglas completas de verificación →

Trae tu agente de codificación

Portsmith incluye una CLI, servidor MCP y API de JavaScript tipada. Conecta un host MCP como Claude Code o Cursor, y luego pregunta:

Usa Portsmith para encontrar la función de búsqueda en /work/source y planifica una transferencia a /work/app. Muéstrame el contrato de comportamiento y las dependencias antes de ejecutar código. Conserva las pruebas existentes y exporta un parche que pueda revisar.

Configuraciones MCP copiables · Habilidad de flujo de trabajo para agentes · Referencia de API

Para la adaptación impulsada por modelos del propio Portsmith:

portsmith init --out ./portsmith-setup --model YOUR_MODEL_ID
# Copy portsmith-setup/.env.example to .env in that directory; add your key locally.

Luego sigue la guía de configuración del modelo. Tu clave permanece en el entorno; el uso del modelo envía código seleccionado a tu proveedor configurado. La demostración sin clave anterior no ejercita la adaptación autónoma.

Alcance de este alfa

Funciona dentro del alcance declaradoLímites a conocer
Rastreo de archivos JS/TS y descubrimiento de funcionesPistas léxicas, no prueba de ejecución ni división de funciones
Configuración npm/pnpm en copias nuevas, incluidos espacios de trabajoScripts deshabilitados; versiones desconocidas necesitan declaraciones revisadas
Capturas de alias estáticos y resolución explícita de Vite/pluginsImportaciones calculadas y activos arbitrarios de bundlers no son compatibles
Contratos de funciones, regresiones Node/Vitest, compilaciones declaradasSolo cuentan las comprobaciones declaradas completadas
Interacciones con Chromium, capturas de pantalla y trazasSin conversión general entre frameworks ni garantía de producción

Alfa público: 0.6.0-alpha.2. Revisa cada parche. La verificación ejecuta código del repositorio en tu máquina; no es un entorno aislado de seguridad. Usa código confiable y revisa las licencias de las fuentes. Una aprobación prueba los casos declarados, no la equivalencia general. Detalles de dependencias · Seguridad

Ejemplos y evidencia

Las transferencias controladas históricas incluyen IT-Tools, TodoMVC, drawDB y Mermaid Live Editor. Tienen límites redactados y limitaciones registradas; no son una tasa de éxito general ni una prueba de paridad con Rea. Explora los casos →

Rea es un adaptador de evidencia de análisis opcional. Sus hallazgos permanecen separados de las comprobaciones de comportamiento de Portsmith. Alcance del adaptador y comparación.

Documentación y contribuciones

Quiero…Empieza aquí
Instalar o diagnosticar la configuraciónConfiguración
Entender cada pasoPrimera transferencia
Usar un agente o un modeloConfiguración MCP / agente · Adaptación autónoma
Transferir una aplicación más grandeConfiguración de dependencias · Alias
Declarar comprobaciones del navegadorContratos de navegador
Encontrar comandos o tipos de APIReferencia CLI · API
Contribuir o reportar un problemaContribuciones · Problemas
git clone https://github.com/punsnprotons/portsmith.git
cd portsmith
npm ci --ignore-scripts
npm run browser:install
npm run check
npm run demo

Arquitectura · Validación · Comprobaciones de lanzamiento · Licencia MIT