DeepSeek Harness Remote
DeepSeek Harness Remote 可将手机或另一台电脑与你运行 DeepSeek Harness 的电脑安全连接,随时随地继续你的工作,方便随时查看进度并继续工作。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗MVP de una plataforma web para informes técnicos interactivos con anotaciones contextuales, roles (RBAC) y un consolidador de observaciones para el flujo consultor ↔ revisor ministerial.
@tailwindcss/typography# 1. Instalar dependencias
npm install
# 2. Entorno (.env con DATABASE_URL local y un AUTH_SECRET)
# Ya viene un .env de desarrollo; para regenerar el secreto: npx auth secret
Levanta un PostgreSQL real en espacio de usuario. Deja esta terminal abierta (el proceso mantiene la base viva):
npm run db:local
El clúster se guarda en
~/.informes-pgdata(fuera del proyecto: la ruta con "Análisis" rompeinitdb). La baseinformesse crea en UTF-8 desdetemplate0para admitir caracteres como→. Se puede cambiar la ubicación con la variablePGDATA_DIR.
docker compose up -d
Ambas exponen la base en localhost:5432 con el mismo DATABASE_URL, así que
el resto no cambia.
npm run db:push # crea el esquema
npm run db:generate # genera el cliente Prisma
npm run db:seed # usuarios + informe de ejemplo
npm run dev # http://localhost:3000
| Rol | Correo | Clave |
|---|---|---|
| Consultor | [email protected] | demo1234 |
| Revisor | [email protected] | demo1234 |
src/
├─ app/
│ ├─ (app)/ # área autenticada (layout con cabecera)
│ │ └─ reports/
│ │ ├─ page.tsx # listado de informes
│ │ └─ [slug]/
│ │ ├─ page.tsx # VISOR del informe
│ │ └─ observaciones/page.tsx # CONSOLIDADOR de observaciones
│ ├─ actions/annotations.ts # Server Actions (crear/responder/estado) con RBAC
│ ├─ api/auth/[...nextauth]/route.ts # endpoints Auth.js
│ ├─ login/ # login (Server Action + formulario)
│ └─ layout.tsx / page.tsx / globals.css
├─ components/
│ ├─ report/ # ReportViewer, ChartBlock (render + selección)
│ └─ annotations/ # VoiceInput, ObservationPanel
├─ lib/ # db (Prisma), auth (NextAuth), rbac (permisos)
├─ types/ # tipos de contenido y de sesión
└─ middleware.ts # protección de rutas
prisma/
├─ schema.prisma # modelo relacional
└─ seed.ts # datos de demo
User → Report → Chapter → Section → Block (contenido estructurado). Cada Block
tiene un anchorKey estable. Las Annotation se anclan a un Block y,
opcionalmente, a un rango de texto (rangeStart/rangeEnd + quote para
re-anclar si el contenido cambia). AnnotationReply modela el hilo de
contrapropuestas. ReportAssignment controla el acceso por informe.
El consultor crea informes importando un .docx (/reports/importar):
src/lib/docx.ts usa mammoth (docx→HTML) + node-html-parser y mapea:
h1→Capítulo · h2→Sección · h3-h6→bloque HEADING · p→PARAGRAPH ·
table→TABLE · ul/ol→viñetas · img→IMAGE (placeholder de gráfico, sin
incrustar bytes)./reports/[slug]/editar): editar textos y
tablas, reordenar/eliminar bloques, y reemplazar cada gráfico estático por
uno interactivo pegando los datos (CSV → Recharts). Botón Publicar a
revisión cambia el estado a IN_REVIEW.src/app/actions/reports.ts, todas con RBAC de consultor.El visor (/reports/[slug]) — diseño editorial sobrio (Inter + Source Serif 4,
tarjetas blancas con sombras suaves, acento azul marino):
GlossaryTerm) e anotaciones (teclado y voz), con
panel bottom-sheet en móvil.Reproductor flotante 🎧 que narra el informe por capítulo:
eleven_multilingual_v2) con pronunciación de siglas vía
diccionario de ElevenLabs generado desde el glosario.AudioAsset + disco temporal. Sin clave, usa la voz del navegador.ReportAssignment.submittedAt)./instrucciones.El seed crea un informe demo; además, npx tsx scripts/import-talca.ts importa
el informe real Síntesis de Prediagnóstico — Talca (/reports/prediagnostico-talca,
15 capítulos) con su glosario.
Dashboard_Diagnostico_Talca.html) — ver BACKLOG.md.