@hoilab/ada-cli 0.84.21 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -2
- package/README.es.md +174 -0
- package/README.md +203 -658
- package/dist/ada-publico.d.ts +35 -0
- package/dist/ada-publico.d.ts.map +1 -0
- package/dist/ada-publico.js +40 -0
- package/dist/ada-publico.js.map +1 -0
- package/dist/cli/args.d.ts +3 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +11 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/audit-command.d.ts +15 -0
- package/dist/cli/audit-command.d.ts.map +1 -0
- package/dist/cli/audit-command.js +280 -0
- package/dist/cli/audit-command.js.map +1 -0
- package/dist/cli/banco-command.d.ts +15 -0
- package/dist/cli/banco-command.d.ts.map +1 -0
- package/dist/cli/banco-command.js +213 -0
- package/dist/cli/banco-command.js.map +1 -0
- package/dist/cli/cleanse-command.d.ts +11 -0
- package/dist/cli/cleanse-command.d.ts.map +1 -0
- package/dist/cli/cleanse-command.js +101 -0
- package/dist/cli/cleanse-command.js.map +1 -0
- package/dist/cli/commit-command.d.ts +31 -0
- package/dist/cli/commit-command.d.ts.map +1 -0
- package/dist/cli/commit-command.js +158 -0
- package/dist/cli/commit-command.js.map +1 -0
- package/dist/cli/computer-command.d.ts +12 -0
- package/dist/cli/computer-command.d.ts.map +1 -0
- package/dist/cli/computer-command.js +141 -0
- package/dist/cli/computer-command.js.map +1 -0
- package/dist/cli/discover-command.d.ts +18 -0
- package/dist/cli/discover-command.d.ts.map +1 -0
- package/dist/cli/discover-command.js +108 -0
- package/dist/cli/discover-command.js.map +1 -0
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +2 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/hashline-command.d.ts +11 -0
- package/dist/cli/hashline-command.d.ts.map +1 -0
- package/dist/cli/hashline-command.js +106 -0
- package/dist/cli/hashline-command.js.map +1 -0
- package/dist/cli/home-screen.d.ts.map +1 -1
- package/dist/cli/home-screen.js +2 -2
- package/dist/cli/home-screen.js.map +1 -1
- package/dist/cli/import-command.d.ts +35 -0
- package/dist/cli/import-command.d.ts.map +1 -0
- package/dist/cli/import-command.js +164 -0
- package/dist/cli/import-command.js.map +1 -0
- package/dist/cli/politica-command.d.ts +20 -0
- package/dist/cli/politica-command.d.ts.map +1 -0
- package/dist/cli/politica-command.js +93 -0
- package/dist/cli/politica-command.js.map +1 -0
- package/dist/cli/refine-command.d.ts +18 -0
- package/dist/cli/refine-command.d.ts.map +1 -0
- package/dist/cli/refine-command.js +101 -0
- package/dist/cli/refine-command.js.map +1 -0
- package/dist/cli/review-command.d.ts +24 -0
- package/dist/cli/review-command.d.ts.map +1 -0
- package/dist/cli/review-command.js +168 -0
- package/dist/cli/review-command.js.map +1 -0
- package/dist/cli/schedule-command.d.ts +17 -0
- package/dist/cli/schedule-command.d.ts.map +1 -0
- package/dist/cli/schedule-command.js +117 -0
- package/dist/cli/schedule-command.js.map +1 -0
- package/dist/cli/serve-command.d.ts +72 -0
- package/dist/cli/serve-command.d.ts.map +1 -0
- package/dist/cli/serve-command.js +568 -0
- package/dist/cli/serve-command.js.map +1 -0
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +9 -3
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/cli/telegram-command.d.ts +18 -0
- package/dist/cli/telegram-command.d.ts.map +1 -0
- package/dist/cli/telegram-command.js +137 -0
- package/dist/cli/telegram-command.js.map +1 -0
- package/dist/cli/telemetria-command.d.ts +22 -0
- package/dist/cli/telemetria-command.d.ts.map +1 -0
- package/dist/cli/telemetria-command.js +127 -0
- package/dist/cli/telemetria-command.js.map +1 -0
- package/dist/cli/undo-command.d.ts +9 -0
- package/dist/cli/undo-command.d.ts.map +1 -0
- package/dist/cli/undo-command.js +56 -0
- package/dist/cli/undo-command.js.map +1 -0
- package/dist/cli/usage-command.d.ts +10 -0
- package/dist/cli/usage-command.d.ts.map +1 -0
- package/dist/cli/usage-command.js +209 -0
- package/dist/cli/usage-command.js.map +1 -0
- package/dist/cli/wiki-command.d.ts +9 -0
- package/dist/cli/wiki-command.d.ts.map +1 -0
- package/dist/cli/wiki-command.js +76 -0
- package/dist/cli/wiki-command.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +10 -11
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -2
- package/dist/config.js.map +1 -1
- package/dist/core/ada.d.ts +58 -0
- package/dist/core/ada.d.ts.map +1 -0
- package/dist/core/ada.js +61 -0
- package/dist/core/ada.js.map +1 -0
- package/dist/core/advisor/guarda.d.ts +66 -0
- package/dist/core/advisor/guarda.d.ts.map +1 -0
- package/dist/core/advisor/guarda.js +191 -0
- package/dist/core/advisor/guarda.js.map +1 -0
- package/dist/core/advisor/runtime.d.ts +66 -0
- package/dist/core/advisor/runtime.d.ts.map +1 -0
- package/dist/core/advisor/runtime.js +121 -0
- package/dist/core/advisor/runtime.js.map +1 -0
- package/dist/core/advisor/sesion.d.ts +109 -0
- package/dist/core/advisor/sesion.d.ts.map +1 -0
- package/dist/core/advisor/sesion.js +139 -0
- package/dist/core/advisor/sesion.js.map +1 -0
- package/dist/core/agent-session.d.ts +85 -7
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +862 -78
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/agents/loader.d.ts +77 -0
- package/dist/core/agents/loader.d.ts.map +1 -0
- package/dist/core/agents/loader.js +154 -0
- package/dist/core/agents/loader.js.map +1 -0
- package/dist/core/aprobacion/generados.d.ts +37 -0
- package/dist/core/aprobacion/generados.d.ts.map +1 -0
- package/dist/core/aprobacion/generados.js +85 -0
- package/dist/core/aprobacion/generados.js.map +1 -0
- package/dist/core/aprobacion/politica-de-maquina.d.ts +90 -0
- package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -0
- package/dist/core/aprobacion/politica-de-maquina.js +212 -0
- package/dist/core/aprobacion/politica-de-maquina.js.map +1 -0
- package/dist/core/aprobacion/politica.d.ts +90 -0
- package/dist/core/aprobacion/politica.d.ts.map +1 -0
- package/dist/core/aprobacion/politica.js +375 -0
- package/dist/core/aprobacion/politica.js.map +1 -0
- package/dist/core/arranque/atajos.d.ts +46 -0
- package/dist/core/arranque/atajos.d.ts.map +1 -0
- package/dist/core/arranque/atajos.js +113 -0
- package/dist/core/arranque/atajos.js.map +1 -0
- package/dist/core/audit/exportacion.d.ts +54 -0
- package/dist/core/audit/exportacion.d.ts.map +1 -0
- package/dist/core/audit/exportacion.js +265 -0
- package/dist/core/audit/exportacion.js.map +1 -0
- package/dist/core/audit/libro.d.ts +318 -0
- package/dist/core/audit/libro.d.ts.map +1 -0
- package/dist/core/audit/libro.js +508 -0
- package/dist/core/audit/libro.js.map +1 -0
- package/dist/core/audit/registro-sesion.d.ts +78 -0
- package/dist/core/audit/registro-sesion.d.ts.map +1 -0
- package/dist/core/audit/registro-sesion.js +202 -0
- package/dist/core/audit/registro-sesion.js.map +1 -0
- package/dist/core/audit/retencion.d.ts +82 -0
- package/dist/core/audit/retencion.d.ts.map +1 -0
- package/dist/core/audit/retencion.js +152 -0
- package/dist/core/audit/retencion.js.map +1 -0
- package/dist/core/audit/rutas.d.ts +23 -0
- package/dist/core/audit/rutas.d.ts.map +1 -0
- package/dist/core/audit/rutas.js +23 -0
- package/dist/core/audit/rutas.js.map +1 -0
- package/dist/core/auth-storage.d.ts +0 -3
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +21 -8
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/banco/almacenamiento.d.ts +18 -0
- package/dist/core/banco/almacenamiento.d.ts.map +1 -0
- package/dist/core/banco/almacenamiento.js +50 -0
- package/dist/core/banco/almacenamiento.js.map +1 -0
- package/dist/core/banco/analisis.d.ts +37 -0
- package/dist/core/banco/analisis.d.ts.map +1 -0
- package/dist/core/banco/analisis.js +164 -0
- package/dist/core/banco/analisis.js.map +1 -0
- package/dist/core/banco/bloques.d.ts +39 -0
- package/dist/core/banco/bloques.d.ts.map +1 -0
- package/dist/core/banco/bloques.js +84 -0
- package/dist/core/banco/bloques.js.map +1 -0
- package/dist/core/banco/cargas.d.ts +84 -0
- package/dist/core/banco/cargas.d.ts.map +1 -0
- package/dist/core/banco/cargas.js +520 -0
- package/dist/core/banco/cargas.js.map +1 -0
- package/dist/core/banco/comparar.d.ts +29 -0
- package/dist/core/banco/comparar.d.ts.map +1 -0
- package/dist/core/banco/comparar.js +28 -0
- package/dist/core/banco/comparar.js.map +1 -0
- package/dist/core/banco/ejecutar.d.ts +44 -0
- package/dist/core/banco/ejecutar.d.ts.map +1 -0
- package/dist/core/banco/ejecutar.js +183 -0
- package/dist/core/banco/ejecutar.js.map +1 -0
- package/dist/core/banco/generar.d.ts +24 -0
- package/dist/core/banco/generar.d.ts.map +1 -0
- package/dist/core/banco/generar.js +159 -0
- package/dist/core/banco/generar.js.map +1 -0
- package/dist/core/banco/mutaciones.d.ts +25 -0
- package/dist/core/banco/mutaciones.d.ts.map +1 -0
- package/dist/core/banco/mutaciones.js +215 -0
- package/dist/core/banco/mutaciones.js.map +1 -0
- package/dist/core/banco/tipos.d.ts +121 -0
- package/dist/core/banco/tipos.d.ts.map +1 -0
- package/dist/core/banco/tipos.js +16 -0
- package/dist/core/banco/tipos.js.map +1 -0
- package/dist/core/blobs/almacen.d.ts +81 -0
- package/dist/core/blobs/almacen.d.ts.map +1 -0
- package/dist/core/blobs/almacen.js +198 -0
- package/dist/core/blobs/almacen.js.map +1 -0
- package/dist/core/blobs/broker.d.ts +103 -0
- package/dist/core/blobs/broker.d.ts.map +1 -0
- package/dist/core/blobs/broker.js +204 -0
- package/dist/core/blobs/broker.js.map +1 -0
- package/dist/core/blobs/index.d.ts +70 -0
- package/dist/core/blobs/index.d.ts.map +1 -0
- package/dist/core/blobs/index.js +232 -0
- package/dist/core/blobs/index.js.map +1 -0
- package/dist/core/blobs/payload.d.ts +55 -0
- package/dist/core/blobs/payload.d.ts.map +1 -0
- package/dist/core/blobs/payload.js +255 -0
- package/dist/core/blobs/payload.js.map +1 -0
- package/dist/core/blobs/proveedor.d.ts +85 -0
- package/dist/core/blobs/proveedor.d.ts.map +1 -0
- package/dist/core/blobs/proveedor.js +196 -0
- package/dist/core/blobs/proveedor.js.map +1 -0
- package/dist/core/browser/cdp.d.ts +41 -0
- package/dist/core/browser/cdp.d.ts.map +1 -0
- package/dist/core/browser/cdp.js +119 -0
- package/dist/core/browser/cdp.js.map +1 -0
- package/dist/core/browser/politica.d.ts +51 -0
- package/dist/core/browser/politica.d.ts.map +1 -0
- package/dist/core/browser/politica.js +123 -0
- package/dist/core/browser/politica.js.map +1 -0
- package/dist/core/browser/sesion.d.ts +52 -0
- package/dist/core/browser/sesion.d.ts.map +1 -0
- package/dist/core/browser/sesion.js +176 -0
- package/dist/core/browser/sesion.js.map +1 -0
- package/dist/core/browser/tools.d.ts +16 -0
- package/dist/core/browser/tools.d.ts.map +1 -0
- package/dist/core/browser/tools.js +279 -0
- package/dist/core/browser/tools.js.map +1 -0
- package/dist/core/commit/diff.d.ts +56 -0
- package/dist/core/commit/diff.d.ts.map +1 -0
- package/dist/core/commit/diff.js +145 -0
- package/dist/core/commit/diff.js.map +1 -0
- package/dist/core/commit/mensaje.d.ts +80 -0
- package/dist/core/commit/mensaje.d.ts.map +1 -0
- package/dist/core/commit/mensaje.js +207 -0
- package/dist/core/commit/mensaje.js.map +1 -0
- package/dist/core/compactar/index.d.ts +52 -0
- package/dist/core/compactar/index.d.ts.map +1 -0
- package/dist/core/compactar/index.js +91 -0
- package/dist/core/compactar/index.js.map +1 -0
- package/dist/core/compactar/registro-denso.d.ts +160 -0
- package/dist/core/compactar/registro-denso.d.ts.map +1 -0
- package/dist/core/compactar/registro-denso.js +620 -0
- package/dist/core/compactar/registro-denso.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +3 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +4 -3
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +41 -32
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/computer/captura.d.ts +35 -0
- package/dist/core/computer/captura.d.ts.map +1 -0
- package/dist/core/computer/captura.js +140 -0
- package/dist/core/computer/captura.js.map +1 -0
- package/dist/core/computer/driver.d.ts +130 -0
- package/dist/core/computer/driver.d.ts.map +1 -0
- package/dist/core/computer/driver.js +206 -0
- package/dist/core/computer/driver.js.map +1 -0
- package/dist/core/computer/motor/actions.d.ts +109 -0
- package/dist/core/computer/motor/actions.d.ts.map +1 -0
- package/dist/core/computer/motor/actions.js +157 -0
- package/dist/core/computer/motor/actions.js.map +1 -0
- package/dist/core/computer/motor/bridge.d.ts +232 -0
- package/dist/core/computer/motor/bridge.d.ts.map +1 -0
- package/dist/core/computer/motor/bridge.js +2335 -0
- package/dist/core/computer/motor/bridge.js.map +1 -0
- package/dist/core/computer/motor/cdp.d.ts +107 -0
- package/dist/core/computer/motor/cdp.d.ts.map +1 -0
- package/dist/core/computer/motor/cdp.js +659 -0
- package/dist/core/computer/motor/cdp.js.map +1 -0
- package/dist/core/computer/motor/config.d.ts +23 -0
- package/dist/core/computer/motor/config.d.ts.map +1 -0
- package/dist/core/computer/motor/config.js +100 -0
- package/dist/core/computer/motor/config.js.map +1 -0
- package/dist/core/computer/motor/contract.d.ts +81 -0
- package/dist/core/computer/motor/contract.d.ts.map +1 -0
- package/dist/core/computer/motor/contract.js +14 -0
- package/dist/core/computer/motor/contract.js.map +1 -0
- package/dist/core/computer/motor/note.d.ts +37 -0
- package/dist/core/computer/motor/note.d.ts.map +1 -0
- package/dist/core/computer/motor/note.js +162 -0
- package/dist/core/computer/motor/note.js.map +1 -0
- package/dist/core/computer/motor/outline.d.ts +155 -0
- package/dist/core/computer/motor/outline.d.ts.map +1 -0
- package/dist/core/computer/motor/outline.js +590 -0
- package/dist/core/computer/motor/outline.js.map +1 -0
- package/dist/core/computer/motor/output.d.ts +18 -0
- package/dist/core/computer/motor/output.d.ts.map +1 -0
- package/dist/core/computer/motor/output.js +148 -0
- package/dist/core/computer/motor/output.js.map +1 -0
- package/dist/core/computer/motor/permissions.d.ts +41 -0
- package/dist/core/computer/motor/permissions.d.ts.map +1 -0
- package/dist/core/computer/motor/permissions.js +51 -0
- package/dist/core/computer/motor/permissions.js.map +1 -0
- package/dist/core/computer/motor/platform/architecture.d.ts +5 -0
- package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/architecture.js +21 -0
- package/dist/core/computer/motor/platform/architecture.js.map +1 -0
- package/dist/core/computer/motor/platform/coerce.d.ts +4 -0
- package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/coerce.js +17 -0
- package/dist/core/computer/motor/platform/coerce.js.map +1 -0
- package/dist/core/computer/motor/platform/index.d.ts +4 -0
- package/dist/core/computer/motor/platform/index.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/index.js +79 -0
- package/dist/core/computer/motor/platform/index.js.map +1 -0
- package/dist/core/computer/motor/platform/linux/backend.d.ts +3 -0
- package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/linux/backend.js +173 -0
- package/dist/core/computer/motor/platform/linux/backend.js.map +1 -0
- package/dist/core/computer/motor/platform/linux/helper.d.ts +29 -0
- package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/linux/helper.js +261 -0
- package/dist/core/computer/motor/platform/linux/helper.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/backend.d.ts +3 -0
- package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/backend.js +124 -0
- package/dist/core/computer/motor/platform/macos/backend.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/browser.d.ts +7 -0
- package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/browser.js +101 -0
- package/dist/core/computer/motor/platform/macos/browser.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/helper-path.mjs +34 -0
- package/dist/core/computer/motor/platform/macos/helper.d.ts +32 -0
- package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/helper.js +277 -0
- package/dist/core/computer/motor/platform/macos/helper.js.map +1 -0
- package/dist/core/computer/motor/platform/macos/permissions.d.ts +4 -0
- package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/macos/permissions.js +118 -0
- package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -0
- package/dist/core/computer/motor/platform/types.d.ts +263 -0
- package/dist/core/computer/motor/platform/types.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/types.js +2 -0
- package/dist/core/computer/motor/platform/types.js.map +1 -0
- package/dist/core/computer/motor/platform/windows/backend.d.ts +3 -0
- package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/windows/backend.js +163 -0
- package/dist/core/computer/motor/platform/windows/backend.js.map +1 -0
- package/dist/core/computer/motor/platform/windows/helper.d.ts +18 -0
- package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -0
- package/dist/core/computer/motor/platform/windows/helper.js +174 -0
- package/dist/core/computer/motor/platform/windows/helper.js.map +1 -0
- package/dist/core/computer/motor/root-selection.d.ts +6 -0
- package/dist/core/computer/motor/root-selection.d.ts.map +1 -0
- package/dist/core/computer/motor/root-selection.js +28 -0
- package/dist/core/computer/motor/root-selection.js.map +1 -0
- package/dist/core/computer/motor/runtime.d.ts +50 -0
- package/dist/core/computer/motor/runtime.d.ts.map +1 -0
- package/dist/core/computer/motor/runtime.js +119 -0
- package/dist/core/computer/motor/runtime.js.map +1 -0
- package/dist/core/computer/motor/state.d.ts +68 -0
- package/dist/core/computer/motor/state.d.ts.map +1 -0
- package/dist/core/computer/motor/state.js +100 -0
- package/dist/core/computer/motor/state.js.map +1 -0
- package/dist/core/computer/motor/view.d.ts +6 -0
- package/dist/core/computer/motor/view.d.ts.map +1 -0
- package/dist/core/computer/motor/view.js +185 -0
- package/dist/core/computer/motor/view.js.map +1 -0
- package/dist/core/computer/motor-ada.d.ts +159 -0
- package/dist/core/computer/motor-ada.d.ts.map +1 -0
- package/dist/core/computer/motor-ada.js +412 -0
- package/dist/core/computer/motor-ada.js.map +1 -0
- package/dist/core/computer/politica.d.ts +56 -0
- package/dist/core/computer/politica.d.ts.map +1 -0
- package/dist/core/computer/politica.js +163 -0
- package/dist/core/computer/politica.js.map +1 -0
- package/dist/core/computer/tools.d.ts +26 -0
- package/dist/core/computer/tools.d.ts.map +1 -0
- package/dist/core/computer/tools.js +399 -0
- package/dist/core/computer/tools.js.map +1 -0
- package/dist/core/context-breakdown.d.ts +80 -0
- package/dist/core/context-breakdown.d.ts.map +1 -0
- package/dist/core/context-breakdown.js +87 -0
- package/dist/core/context-breakdown.js.map +1 -0
- package/dist/core/credenciales/cliente.d.ts +60 -0
- package/dist/core/credenciales/cliente.d.ts.map +1 -0
- package/dist/core/credenciales/cliente.js +81 -0
- package/dist/core/credenciales/cliente.js.map +1 -0
- package/dist/core/credenciales/pool.d.ts +96 -0
- package/dist/core/credenciales/pool.d.ts.map +1 -0
- package/dist/core/credenciales/pool.js +128 -0
- package/dist/core/credenciales/pool.js.map +1 -0
- package/dist/core/credenciales/reposo.d.ts +93 -0
- package/dist/core/credenciales/reposo.d.ts.map +1 -0
- package/dist/core/credenciales/reposo.js +489 -0
- package/dist/core/credenciales/reposo.js.map +1 -0
- package/dist/core/credenciales/servidor.d.ts +55 -0
- package/dist/core/credenciales/servidor.d.ts.map +1 -0
- package/dist/core/credenciales/servidor.js +205 -0
- package/dist/core/credenciales/servidor.js.map +1 -0
- package/dist/core/defaults.d.ts +1 -0
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js +9 -0
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/descubrimiento/comandos.d.ts +30 -0
- package/dist/core/descubrimiento/comandos.d.ts.map +1 -0
- package/dist/core/descubrimiento/comandos.js +76 -0
- package/dist/core/descubrimiento/comandos.js.map +1 -0
- package/dist/core/descubrimiento/mcp.d.ts +42 -0
- package/dist/core/descubrimiento/mcp.d.ts.map +1 -0
- package/dist/core/descubrimiento/mcp.js +130 -0
- package/dist/core/descubrimiento/mcp.js.map +1 -0
- package/dist/core/descubrimiento/reglas.d.ts +61 -0
- package/dist/core/descubrimiento/reglas.d.ts.map +1 -0
- package/dist/core/descubrimiento/reglas.js +134 -0
- package/dist/core/descubrimiento/reglas.js.map +1 -0
- package/dist/core/descubrimiento/skills.d.ts +57 -0
- package/dist/core/descubrimiento/skills.d.ts.map +1 -0
- package/dist/core/descubrimiento/skills.js +113 -0
- package/dist/core/descubrimiento/skills.js.map +1 -0
- package/dist/core/dificultad/clasificador.d.ts +133 -0
- package/dist/core/dificultad/clasificador.d.ts.map +1 -0
- package/dist/core/dificultad/clasificador.js +288 -0
- package/dist/core/dificultad/clasificador.js.map +1 -0
- package/dist/core/edicion/diario.d.ts +37 -0
- package/dist/core/edicion/diario.d.ts.map +1 -0
- package/dist/core/edicion/diario.js +51 -0
- package/dist/core/edicion/diario.js.map +1 -0
- package/dist/core/edicion/hashline.d.ts +71 -0
- package/dist/core/edicion/hashline.d.ts.map +1 -0
- package/dist/core/edicion/hashline.js +111 -0
- package/dist/core/edicion/hashline.js.map +1 -0
- package/dist/core/edicion/hueco.d.ts +64 -0
- package/dist/core/edicion/hueco.d.ts.map +1 -0
- package/dist/core/edicion/hueco.js +162 -0
- package/dist/core/edicion/hueco.js.map +1 -0
- package/dist/core/edicion/limpiar-carga.d.ts +39 -0
- package/dist/core/edicion/limpiar-carga.d.ts.map +1 -0
- package/dist/core/edicion/limpiar-carga.js +121 -0
- package/dist/core/edicion/limpiar-carga.js.map +1 -0
- package/dist/core/edicion/observador.d.ts +80 -0
- package/dist/core/edicion/observador.d.ts.map +1 -0
- package/dist/core/edicion/observador.js +183 -0
- package/dist/core/edicion/observador.js.map +1 -0
- package/dist/core/edicion/parecido.d.ts +53 -0
- package/dist/core/edicion/parecido.d.ts.map +1 -0
- package/dist/core/edicion/parecido.js +145 -0
- package/dist/core/edicion/parecido.js.map +1 -0
- package/dist/core/edicion/parseo.d.ts +58 -0
- package/dist/core/edicion/parseo.d.ts.map +1 -0
- package/dist/core/edicion/parseo.js +124 -0
- package/dist/core/edicion/parseo.js.map +1 -0
- package/dist/core/edicion/reparacion.d.ts +67 -0
- package/dist/core/edicion/reparacion.d.ts.map +1 -0
- package/dist/core/edicion/reparacion.js +202 -0
- package/dist/core/edicion/reparacion.js.map +1 -0
- package/dist/core/edicion/sangria.d.ts +121 -0
- package/dist/core/edicion/sangria.d.ts.map +1 -0
- package/dist/core/edicion/sangria.js +341 -0
- package/dist/core/edicion/sangria.js.map +1 -0
- package/dist/core/edicion/tipos.d.ts +58 -0
- package/dist/core/edicion/tipos.d.ts.map +1 -0
- package/dist/core/edicion/tipos.js +160 -0
- package/dist/core/edicion/tipos.js.map +1 -0
- package/dist/core/engine-personality.d.ts +12 -0
- package/dist/core/engine-personality.d.ts.map +1 -0
- package/dist/core/engine-personality.js +53 -0
- package/dist/core/engine-personality.js.map +1 -0
- package/dist/core/errores/proveedor.d.ts +53 -0
- package/dist/core/errores/proveedor.d.ts.map +1 -0
- package/dist/core/errores/proveedor.js +191 -0
- package/dist/core/errores/proveedor.js.map +1 -0
- package/dist/core/estructural/buscar.d.ts +61 -0
- package/dist/core/estructural/buscar.d.ts.map +1 -0
- package/dist/core/estructural/buscar.js +261 -0
- package/dist/core/estructural/buscar.js.map +1 -0
- package/dist/core/estructural/editar.d.ts +36 -0
- package/dist/core/estructural/editar.d.ts.map +1 -0
- package/dist/core/estructural/editar.js +123 -0
- package/dist/core/estructural/editar.js.map +1 -0
- package/dist/core/estructural/tools.d.ts +11 -0
- package/dist/core/estructural/tools.d.ts.map +1 -0
- package/dist/core/estructural/tools.js +100 -0
- package/dist/core/estructural/tools.js.map +1 -0
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js +10 -1
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/extensiones/suplantacion.d.ts +49 -0
- package/dist/core/extensiones/suplantacion.d.ts.map +1 -0
- package/dist/core/extensiones/suplantacion.js +61 -0
- package/dist/core/extensiones/suplantacion.js.map +1 -0
- package/dist/core/extensiones/vigilancia.d.ts +54 -0
- package/dist/core/extensiones/vigilancia.d.ts.map +1 -0
- package/dist/core/extensiones/vigilancia.js +217 -0
- package/dist/core/extensiones/vigilancia.js.map +1 -0
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +21 -6
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/types.d.ts +23 -4
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/harness/fuentes-de-contexto.d.ts +29 -0
- package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -0
- package/dist/core/harness/fuentes-de-contexto.js +44 -0
- package/dist/core/harness/fuentes-de-contexto.js.map +1 -0
- package/dist/core/harness/refine.d.ts +40 -0
- package/dist/core/harness/refine.d.ts.map +1 -0
- package/dist/core/harness/refine.js +109 -0
- package/dist/core/harness/refine.js.map +1 -0
- package/dist/core/harness/store.d.ts +75 -0
- package/dist/core/harness/store.d.ts.map +1 -0
- package/dist/core/harness/store.js +149 -0
- package/dist/core/harness/store.js.map +1 -0
- package/dist/core/hooks/contract.d.ts +85 -0
- package/dist/core/hooks/contract.d.ts.map +1 -0
- package/dist/core/hooks/contract.js +140 -0
- package/dist/core/hooks/contract.js.map +1 -0
- package/dist/core/hooks/runner.d.ts +42 -0
- package/dist/core/hooks/runner.d.ts.map +1 -0
- package/dist/core/hooks/runner.js +85 -0
- package/dist/core/hooks/runner.js.map +1 -0
- package/dist/core/hooks/session-hooks.d.ts +62 -0
- package/dist/core/hooks/session-hooks.d.ts.map +1 -0
- package/dist/core/hooks/session-hooks.js +84 -0
- package/dist/core/hooks/session-hooks.js.map +1 -0
- package/dist/core/importar/formatos.d.ts +69 -0
- package/dist/core/importar/formatos.d.ts.map +1 -0
- package/dist/core/importar/formatos.js +235 -0
- package/dist/core/importar/formatos.js.map +1 -0
- package/dist/core/interactivo/deteccion.d.ts +44 -0
- package/dist/core/interactivo/deteccion.d.ts.map +1 -0
- package/dist/core/interactivo/deteccion.js +82 -0
- package/dist/core/interactivo/deteccion.js.map +1 -0
- package/dist/core/interactivo/sesion.d.ts +50 -0
- package/dist/core/interactivo/sesion.d.ts.map +1 -0
- package/dist/core/interactivo/sesion.js +156 -0
- package/dist/core/interactivo/sesion.js.map +1 -0
- package/dist/core/interactivo/tools.d.ts +21 -0
- package/dist/core/interactivo/tools.d.ts.map +1 -0
- package/dist/core/interactivo/tools.js +122 -0
- package/dist/core/interactivo/tools.js.map +1 -0
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +2 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/lectura/mapa.d.ts +70 -0
- package/dist/core/lectura/mapa.d.ts.map +1 -0
- package/dist/core/lectura/mapa.js +177 -0
- package/dist/core/lectura/mapa.js.map +1 -0
- package/dist/core/lectura/pdf.d.ts +49 -0
- package/dist/core/lectura/pdf.d.ts.map +1 -0
- package/dist/core/lectura/pdf.js +337 -0
- package/dist/core/lectura/pdf.js.map +1 -0
- package/dist/core/limpieza/comprobadores.d.ts +28 -0
- package/dist/core/limpieza/comprobadores.d.ts.map +1 -0
- package/dist/core/limpieza/comprobadores.js +311 -0
- package/dist/core/limpieza/comprobadores.js.map +1 -0
- package/dist/core/limpieza/parseo.d.ts +19 -0
- package/dist/core/limpieza/parseo.d.ts.map +1 -0
- package/dist/core/limpieza/parseo.js +124 -0
- package/dist/core/limpieza/parseo.js.map +1 -0
- package/dist/core/limpieza/reparacion.d.ts +77 -0
- package/dist/core/limpieza/reparacion.d.ts.map +1 -0
- package/dist/core/limpieza/reparacion.js +254 -0
- package/dist/core/limpieza/reparacion.js.map +1 -0
- package/dist/core/limpieza/tipos.d.ts +56 -0
- package/dist/core/limpieza/tipos.d.ts.map +1 -0
- package/dist/core/limpieza/tipos.js +9 -0
- package/dist/core/limpieza/tipos.js.map +1 -0
- package/dist/core/lsp/cliente.d.ts +52 -0
- package/dist/core/lsp/cliente.d.ts.map +1 -0
- package/dist/core/lsp/cliente.js +232 -0
- package/dist/core/lsp/cliente.js.map +1 -0
- package/dist/core/lsp/descubrimiento.d.ts +62 -0
- package/dist/core/lsp/descubrimiento.d.ts.map +1 -0
- package/dist/core/lsp/descubrimiento.js +152 -0
- package/dist/core/lsp/descubrimiento.js.map +1 -0
- package/dist/core/lsp/ediciones.d.ts +59 -0
- package/dist/core/lsp/ediciones.d.ts.map +1 -0
- package/dist/core/lsp/ediciones.js +89 -0
- package/dist/core/lsp/ediciones.js.map +1 -0
- package/dist/core/lsp/extension.d.ts +28 -0
- package/dist/core/lsp/extension.d.ts.map +1 -0
- package/dist/core/lsp/extension.js +34 -0
- package/dist/core/lsp/extension.js.map +1 -0
- package/dist/core/lsp/tools.d.ts +45 -0
- package/dist/core/lsp/tools.d.ts.map +1 -0
- package/dist/core/lsp/tools.js +265 -0
- package/dist/core/lsp/tools.js.map +1 -0
- package/dist/core/mcp/client.d.ts +60 -0
- package/dist/core/mcp/client.d.ts.map +1 -0
- package/dist/core/mcp/client.js +139 -0
- package/dist/core/mcp/client.js.map +1 -0
- package/dist/core/mcp/manager.d.ts +86 -0
- package/dist/core/mcp/manager.d.ts.map +1 -0
- package/dist/core/mcp/manager.js +124 -0
- package/dist/core/mcp/manager.js.map +1 -0
- package/dist/core/mcp/tools.d.ts +15 -0
- package/dist/core/mcp/tools.d.ts.map +1 -0
- package/dist/core/mcp/tools.js +84 -0
- package/dist/core/mcp/tools.js.map +1 -0
- package/dist/core/memory-engine/audit-export.d.ts +56 -0
- package/dist/core/memory-engine/audit-export.d.ts.map +1 -0
- package/dist/core/memory-engine/audit-export.js +100 -0
- package/dist/core/memory-engine/audit-export.js.map +1 -0
- package/dist/core/memory-engine/audit-indice.d.ts +153 -0
- package/dist/core/memory-engine/audit-indice.d.ts.map +1 -0
- package/dist/core/memory-engine/audit-indice.js +271 -0
- package/dist/core/memory-engine/audit-indice.js.map +1 -0
- package/dist/core/memory-engine/audit.d.ts +18 -6
- package/dist/core/memory-engine/audit.d.ts.map +1 -1
- package/dist/core/memory-engine/audit.js +32 -50
- package/dist/core/memory-engine/audit.js.map +1 -1
- package/dist/core/memory-engine/engine.d.ts +21 -4
- package/dist/core/memory-engine/engine.d.ts.map +1 -1
- package/dist/core/memory-engine/engine.js +219 -55
- package/dist/core/memory-engine/engine.js.map +1 -1
- package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
- package/dist/core/memory-engine/inverted-index.js +67 -10
- package/dist/core/memory-engine/inverted-index.js.map +1 -1
- package/dist/core/memory-engine/keychain.d.ts.map +1 -1
- package/dist/core/memory-engine/keychain.js +1 -6
- package/dist/core/memory-engine/keychain.js.map +1 -1
- package/dist/core/memory-engine/observation-store.d.ts +0 -1
- package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
- package/dist/core/memory-engine/observation-store.js +40 -12
- package/dist/core/memory-engine/observation-store.js.map +1 -1
- package/dist/core/memory-engine/refinements.d.ts +51 -0
- package/dist/core/memory-engine/refinements.d.ts.map +1 -0
- package/dist/core/memory-engine/refinements.js +99 -0
- package/dist/core/memory-engine/refinements.js.map +1 -0
- package/dist/core/memory-engine/scanner.d.ts.map +1 -1
- package/dist/core/memory-engine/scanner.js +25 -5
- package/dist/core/memory-engine/scanner.js.map +1 -1
- package/dist/core/memory-engine/security.d.ts.map +1 -1
- package/dist/core/memory-engine/security.js +131 -23
- package/dist/core/memory-engine/security.js.map +1 -1
- package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
- package/dist/core/memory-engine/session-indexer.js +8 -2
- package/dist/core/memory-engine/session-indexer.js.map +1 -1
- package/dist/core/memory-engine/tools.d.ts +2 -2
- package/dist/core/memory-engine/tools.d.ts.map +1 -1
- package/dist/core/memory-engine/tools.js +41 -8
- package/dist/core/memory-engine/tools.js.map +1 -1
- package/dist/core/memory-engine/types.d.ts +2 -0
- package/dist/core/memory-engine/types.d.ts.map +1 -1
- package/dist/core/memory-engine/types.js.map +1 -1
- package/dist/core/memory-engine/vault.d.ts.map +1 -1
- package/dist/core/memory-engine/vault.js +2 -2
- package/dist/core/memory-engine/vault.js.map +1 -1
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +2 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-resolver.d.ts +1 -0
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +19 -7
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +2 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/muestreo-restringido.d.ts +49 -0
- package/dist/core/muestreo-restringido.d.ts.map +1 -0
- package/dist/core/muestreo-restringido.js +65 -0
- package/dist/core/muestreo-restringido.js.map +1 -0
- package/dist/core/orphan-process-journal.d.ts +48 -0
- package/dist/core/orphan-process-journal.d.ts.map +1 -0
- package/dist/core/orphan-process-journal.js +116 -0
- package/dist/core/orphan-process-journal.js.map +1 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +11 -6
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts.map +1 -1
- package/dist/core/pi-manifest.js +2 -1
- package/dist/core/pi-manifest.js.map +1 -1
- package/dist/core/privacidad/categorias-especiales.d.ts +186 -0
- package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -0
- package/dist/core/privacidad/categorias-especiales.js +745 -0
- package/dist/core/privacidad/categorias-especiales.js.map +1 -0
- package/dist/core/privacidad/tapar.d.ts +48 -0
- package/dist/core/privacidad/tapar.d.ts.map +1 -0
- package/dist/core/privacidad/tapar.js +66 -0
- package/dist/core/privacidad/tapar.js.map +1 -0
- package/dist/core/prompt-cache/diagnostics.d.ts +33 -0
- package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -0
- package/dist/core/prompt-cache/diagnostics.js +100 -0
- package/dist/core/prompt-cache/diagnostics.js.map +1 -0
- package/dist/core/prompt-cache/index.d.ts +33 -0
- package/dist/core/prompt-cache/index.d.ts.map +1 -0
- package/dist/core/prompt-cache/index.js +189 -0
- package/dist/core/prompt-cache/index.js.map +1 -0
- package/dist/core/prompt-cache/payload.d.ts +58 -0
- package/dist/core/prompt-cache/payload.d.ts.map +1 -0
- package/dist/core/prompt-cache/payload.js +122 -0
- package/dist/core/prompt-cache/payload.js.map +1 -0
- package/dist/core/prompt-cache/stabilize.d.ts +65 -0
- package/dist/core/prompt-cache/stabilize.d.ts.map +1 -0
- package/dist/core/prompt-cache/stabilize.js +137 -0
- package/dist/core/prompt-cache/stabilize.js.map +1 -0
- package/dist/core/prompt-cache/stats.d.ts +55 -0
- package/dist/core/prompt-cache/stats.d.ts.map +1 -0
- package/dist/core/prompt-cache/stats.js +158 -0
- package/dist/core/prompt-cache/stats.js.map +1 -0
- package/dist/core/prompt-eleccion.d.ts +38 -0
- package/dist/core/prompt-eleccion.d.ts.map +1 -0
- package/dist/core/prompt-eleccion.js +46 -0
- package/dist/core/prompt-eleccion.js.map +1 -0
- package/dist/core/prompt-optimizer.d.ts +53 -0
- package/dist/core/prompt-optimizer.d.ts.map +1 -0
- package/dist/core/prompt-optimizer.js +138 -0
- package/dist/core/prompt-optimizer.js.map +1 -0
- package/dist/core/prompts/montar.d.ts +75 -0
- package/dist/core/prompts/montar.d.ts.map +1 -0
- package/dist/core/prompts/montar.js +146 -0
- package/dist/core/prompts/montar.js.map +1 -0
- package/dist/core/prompts/plantilla.d.ts +54 -0
- package/dist/core/prompts/plantilla.d.ts.map +1 -0
- package/dist/core/prompts/plantilla.js +153 -0
- package/dist/core/prompts/plantilla.js.map +1 -0
- package/dist/core/prompts/sistema.md +134 -0
- package/dist/core/provider-attribution.d.ts +24 -2
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js +24 -42
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/remoto/destino.d.ts +38 -0
- package/dist/core/remoto/destino.d.ts.map +1 -0
- package/dist/core/remoto/destino.js +105 -0
- package/dist/core/remoto/destino.js.map +1 -0
- package/dist/core/remoto/ejecutor.d.ts +59 -0
- package/dist/core/remoto/ejecutor.d.ts.map +1 -0
- package/dist/core/remoto/ejecutor.js +225 -0
- package/dist/core/remoto/ejecutor.js.map +1 -0
- package/dist/core/remoto/ficheros.d.ts +29 -0
- package/dist/core/remoto/ficheros.d.ts.map +1 -0
- package/dist/core/remoto/ficheros.js +90 -0
- package/dist/core/remoto/ficheros.js.map +1 -0
- package/dist/core/remoto/registro-extension.d.ts +15 -0
- package/dist/core/remoto/registro-extension.d.ts.map +1 -0
- package/dist/core/remoto/registro-extension.js +17 -0
- package/dist/core/remoto/registro-extension.js.map +1 -0
- package/dist/core/remoto/tools.d.ts +28 -0
- package/dist/core/remoto/tools.d.ts.map +1 -0
- package/dist/core/remoto/tools.js +31 -0
- package/dist/core/remoto/tools.js.map +1 -0
- package/dist/core/resource-loader.d.ts +58 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +326 -8
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/revision/hallazgo.d.ts +51 -0
- package/dist/core/revision/hallazgo.d.ts.map +1 -0
- package/dist/core/revision/hallazgo.js +73 -0
- package/dist/core/revision/hallazgo.js.map +1 -0
- package/dist/core/revision/revisor.d.ts +81 -0
- package/dist/core/revision/revisor.d.ts.map +1 -0
- package/dist/core/revision/revisor.js +132 -0
- package/dist/core/revision/revisor.js.map +1 -0
- package/dist/core/revision/sarif.d.ts +30 -0
- package/dist/core/revision/sarif.d.ts.map +1 -0
- package/dist/core/revision/sarif.js +83 -0
- package/dist/core/revision/sarif.js.map +1 -0
- package/dist/core/scheduler/scheduler.d.ts +87 -0
- package/dist/core/scheduler/scheduler.d.ts.map +1 -0
- package/dist/core/scheduler/scheduler.js +178 -0
- package/dist/core/scheduler/scheduler.js.map +1 -0
- package/dist/core/sdk.d.ts +8 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +11 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts +49 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.js +77 -0
- package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -0
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +2 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-diagnostics.d.ts +9 -0
- package/dist/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/core/settings-diagnostics.js +21 -0
- package/dist/core/settings-diagnostics.js.map +1 -0
- package/dist/core/settings-manager.d.ts +156 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +255 -10
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +2 -1
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts +17 -0
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +13 -5
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetria/otlp.d.ts +122 -0
- package/dist/core/telemetria/otlp.d.ts.map +1 -0
- package/dist/core/telemetria/otlp.js +373 -0
- package/dist/core/telemetria/otlp.js.map +1 -0
- package/dist/core/tools/coercion-argumentos.d.ts +48 -0
- package/dist/core/tools/coercion-argumentos.d.ts.map +1 -0
- package/dist/core/tools/coercion-argumentos.js +99 -0
- package/dist/core/tools/coercion-argumentos.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +0 -12
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +234 -12
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +28 -5
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/core/tools/file-mutation-queue.js +5 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +2 -2
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/json-tolerante.d.ts +30 -0
- package/dist/core/tools/json-tolerante.d.ts.map +1 -0
- package/dist/core/tools/json-tolerante.js +70 -0
- package/dist/core/tools/json-tolerante.js.map +1 -0
- package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
- package/dist/core/tools/project-memory-tool.js +4 -1
- package/dist/core/tools/project-memory-tool.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +17 -0
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js +17 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +2 -1
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/turno-vacio/detectar.d.ts +38 -0
- package/dist/core/turno-vacio/detectar.d.ts.map +1 -0
- package/dist/core/turno-vacio/detectar.js +66 -0
- package/dist/core/turno-vacio/detectar.js.map +1 -0
- package/dist/core/undo/journal.d.ts +57 -0
- package/dist/core/undo/journal.d.ts.map +1 -0
- package/dist/core/undo/journal.js +178 -0
- package/dist/core/undo/journal.js.map +1 -0
- package/dist/core/urls-internas/auditoria.d.ts +10 -0
- package/dist/core/urls-internas/auditoria.d.ts.map +1 -0
- package/dist/core/urls-internas/auditoria.js +42 -0
- package/dist/core/urls-internas/auditoria.js.map +1 -0
- package/dist/core/urls-internas/boveda.d.ts +13 -0
- package/dist/core/urls-internas/boveda.d.ts.map +1 -0
- package/dist/core/urls-internas/boveda.js +40 -0
- package/dist/core/urls-internas/boveda.js.map +1 -0
- package/dist/core/urls-internas/lector.d.ts +30 -0
- package/dist/core/urls-internas/lector.d.ts.map +1 -0
- package/dist/core/urls-internas/lector.js +56 -0
- package/dist/core/urls-internas/lector.js.map +1 -0
- package/dist/core/urls-internas/memoria.d.ts +11 -0
- package/dist/core/urls-internas/memoria.d.ts.map +1 -0
- package/dist/core/urls-internas/memoria.js +25 -0
- package/dist/core/urls-internas/memoria.js.map +1 -0
- package/dist/core/urls-internas/parse.d.ts +28 -0
- package/dist/core/urls-internas/parse.d.ts.map +1 -0
- package/dist/core/urls-internas/parse.js +32 -0
- package/dist/core/urls-internas/parse.js.map +1 -0
- package/dist/core/urls-internas/reglas.d.ts +10 -0
- package/dist/core/urls-internas/reglas.d.ts.map +1 -0
- package/dist/core/urls-internas/reglas.js +31 -0
- package/dist/core/urls-internas/reglas.js.map +1 -0
- package/dist/core/usage/aggregate.d.ts +68 -0
- package/dist/core/usage/aggregate.d.ts.map +1 -0
- package/dist/core/usage/aggregate.js +93 -0
- package/dist/core/usage/aggregate.js.map +1 -0
- package/dist/core/usage/cuota/anthropic.d.ts +10 -0
- package/dist/core/usage/cuota/anthropic.d.ts.map +1 -0
- package/dist/core/usage/cuota/anthropic.js +63 -0
- package/dist/core/usage/cuota/anthropic.js.map +1 -0
- package/dist/core/usage/cuota/cache.d.ts +20 -0
- package/dist/core/usage/cuota/cache.d.ts.map +1 -0
- package/dist/core/usage/cuota/cache.js +36 -0
- package/dist/core/usage/cuota/cache.js.map +1 -0
- package/dist/core/usage/cuota/github-copilot.d.ts +9 -0
- package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -0
- package/dist/core/usage/cuota/github-copilot.js +67 -0
- package/dist/core/usage/cuota/github-copilot.js.map +1 -0
- package/dist/core/usage/cuota/google-gemini.d.ts +9 -0
- package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -0
- package/dist/core/usage/cuota/google-gemini.js +72 -0
- package/dist/core/usage/cuota/google-gemini.js.map +1 -0
- package/dist/core/usage/cuota/index.d.ts +25 -0
- package/dist/core/usage/cuota/index.d.ts.map +1 -0
- package/dist/core/usage/cuota/index.js +50 -0
- package/dist/core/usage/cuota/index.js.map +1 -0
- package/dist/core/usage/cuota/openai-codex.d.ts +9 -0
- package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -0
- package/dist/core/usage/cuota/openai-codex.js +59 -0
- package/dist/core/usage/cuota/openai-codex.js.map +1 -0
- package/dist/core/usage/cuota/openrouter.d.ts +10 -0
- package/dist/core/usage/cuota/openrouter.d.ts.map +1 -0
- package/dist/core/usage/cuota/openrouter.js +47 -0
- package/dist/core/usage/cuota/openrouter.js.map +1 -0
- package/dist/core/usage/cuota/tipos.d.ts +50 -0
- package/dist/core/usage/cuota/tipos.d.ts.map +1 -0
- package/dist/core/usage/cuota/tipos.js +25 -0
- package/dist/core/usage/cuota/tipos.js.map +1 -0
- package/dist/core/web/busqueda-nativa.d.ts +82 -0
- package/dist/core/web/busqueda-nativa.d.ts.map +1 -0
- package/dist/core/web/busqueda-nativa.js +163 -0
- package/dist/core/web/busqueda-nativa.js.map +1 -0
- package/dist/core/web/destino.d.ts +58 -0
- package/dist/core/web/destino.d.ts.map +1 -0
- package/dist/core/web/destino.js +127 -0
- package/dist/core/web/destino.js.map +1 -0
- package/dist/core/web/proveedores/brave.d.ts +6 -0
- package/dist/core/web/proveedores/brave.d.ts.map +1 -0
- package/dist/core/web/proveedores/brave.js +20 -0
- package/dist/core/web/proveedores/brave.js.map +1 -0
- package/dist/core/web/proveedores/claves.d.ts +19 -0
- package/dist/core/web/proveedores/claves.d.ts.map +1 -0
- package/dist/core/web/proveedores/claves.js +36 -0
- package/dist/core/web/proveedores/claves.js.map +1 -0
- package/dist/core/web/proveedores/duckduckgo.d.ts +3 -0
- package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -0
- package/dist/core/web/proveedores/duckduckgo.js +109 -0
- package/dist/core/web/proveedores/duckduckgo.js.map +1 -0
- package/dist/core/web/proveedores/ecosia.d.ts +3 -0
- package/dist/core/web/proveedores/ecosia.d.ts.map +1 -0
- package/dist/core/web/proveedores/ecosia.js +72 -0
- package/dist/core/web/proveedores/ecosia.js.map +1 -0
- package/dist/core/web/proveedores/exa.d.ts +6 -0
- package/dist/core/web/proveedores/exa.d.ts.map +1 -0
- package/dist/core/web/proveedores/exa.js +24 -0
- package/dist/core/web/proveedores/exa.js.map +1 -0
- package/dist/core/web/proveedores/mojeek.d.ts +3 -0
- package/dist/core/web/proveedores/mojeek.d.ts.map +1 -0
- package/dist/core/web/proveedores/mojeek.js +65 -0
- package/dist/core/web/proveedores/mojeek.js.map +1 -0
- package/dist/core/web/proveedores/navegador.d.ts +10 -0
- package/dist/core/web/proveedores/navegador.d.ts.map +1 -0
- package/dist/core/web/proveedores/navegador.js +13 -0
- package/dist/core/web/proveedores/navegador.js.map +1 -0
- package/dist/core/web/proveedores/registro.d.ts +43 -0
- package/dist/core/web/proveedores/registro.d.ts.map +1 -0
- package/dist/core/web/proveedores/registro.js +49 -0
- package/dist/core/web/proveedores/registro.js.map +1 -0
- package/dist/core/web/proveedores/searxng.d.ts +9 -0
- package/dist/core/web/proveedores/searxng.d.ts.map +1 -0
- package/dist/core/web/proveedores/searxng.js +17 -0
- package/dist/core/web/proveedores/searxng.js.map +1 -0
- package/dist/core/web/proveedores/serper.d.ts +9 -0
- package/dist/core/web/proveedores/serper.d.ts.map +1 -0
- package/dist/core/web/proveedores/serper.js +19 -0
- package/dist/core/web/proveedores/serper.js.map +1 -0
- package/dist/core/web/proveedores/tavily.d.ts +6 -0
- package/dist/core/web/proveedores/tavily.d.ts.map +1 -0
- package/dist/core/web/proveedores/tavily.js +19 -0
- package/dist/core/web/proveedores/tavily.js.map +1 -0
- package/dist/core/web/proveedores/tipos.d.ts +36 -0
- package/dist/core/web/proveedores/tipos.d.ts.map +1 -0
- package/dist/core/web/proveedores/tipos.js +10 -0
- package/dist/core/web/proveedores/tipos.js.map +1 -0
- package/dist/core/web/registro-red.d.ts +43 -0
- package/dist/core/web/registro-red.d.ts.map +1 -0
- package/dist/core/web/registro-red.js +86 -0
- package/dist/core/web/registro-red.js.map +1 -0
- package/dist/core/web/scrapers/cisa-kev.d.ts +10 -0
- package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -0
- package/dist/core/web/scrapers/cisa-kev.js +38 -0
- package/dist/core/web/scrapers/cisa-kev.js.map +1 -0
- package/dist/core/web/scrapers/crates-io.d.ts +11 -0
- package/dist/core/web/scrapers/crates-io.d.ts.map +1 -0
- package/dist/core/web/scrapers/crates-io.js +29 -0
- package/dist/core/web/scrapers/crates-io.js.map +1 -0
- package/dist/core/web/scrapers/docs-rs.d.ts +10 -0
- package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -0
- package/dist/core/web/scrapers/docs-rs.js +35 -0
- package/dist/core/web/scrapers/docs-rs.js.map +1 -0
- package/dist/core/web/scrapers/github.d.ts +3 -0
- package/dist/core/web/scrapers/github.d.ts.map +1 -0
- package/dist/core/web/scrapers/github.js +72 -0
- package/dist/core/web/scrapers/github.js.map +1 -0
- package/dist/core/web/scrapers/go-pkg.d.ts +7 -0
- package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -0
- package/dist/core/web/scrapers/go-pkg.js +30 -0
- package/dist/core/web/scrapers/go-pkg.js.map +1 -0
- package/dist/core/web/scrapers/hex.d.ts +6 -0
- package/dist/core/web/scrapers/hex.d.ts.map +1 -0
- package/dist/core/web/scrapers/hex.js +27 -0
- package/dist/core/web/scrapers/hex.js.map +1 -0
- package/dist/core/web/scrapers/maven.d.ts +8 -0
- package/dist/core/web/scrapers/maven.d.ts.map +1 -0
- package/dist/core/web/scrapers/maven.js +41 -0
- package/dist/core/web/scrapers/maven.js.map +1 -0
- package/dist/core/web/scrapers/mdn.d.ts +6 -0
- package/dist/core/web/scrapers/mdn.d.ts.map +1 -0
- package/dist/core/web/scrapers/mdn.js +28 -0
- package/dist/core/web/scrapers/mdn.js.map +1 -0
- package/dist/core/web/scrapers/npm.d.ts +11 -0
- package/dist/core/web/scrapers/npm.d.ts.map +1 -0
- package/dist/core/web/scrapers/npm.js +57 -0
- package/dist/core/web/scrapers/npm.js.map +1 -0
- package/dist/core/web/scrapers/nuget.d.ts +8 -0
- package/dist/core/web/scrapers/nuget.d.ts.map +1 -0
- package/dist/core/web/scrapers/nuget.js +22 -0
- package/dist/core/web/scrapers/nuget.js.map +1 -0
- package/dist/core/web/scrapers/nvd.d.ts +7 -0
- package/dist/core/web/scrapers/nvd.d.ts.map +1 -0
- package/dist/core/web/scrapers/nvd.js +37 -0
- package/dist/core/web/scrapers/nvd.js.map +1 -0
- package/dist/core/web/scrapers/pypi.d.ts +6 -0
- package/dist/core/web/scrapers/pypi.d.ts.map +1 -0
- package/dist/core/web/scrapers/pypi.js +31 -0
- package/dist/core/web/scrapers/pypi.js.map +1 -0
- package/dist/core/web/scrapers/registro.d.ts +13 -0
- package/dist/core/web/scrapers/registro.d.ts.map +1 -0
- package/dist/core/web/scrapers/registro.js +65 -0
- package/dist/core/web/scrapers/registro.js.map +1 -0
- package/dist/core/web/scrapers/rubygems.d.ts +6 -0
- package/dist/core/web/scrapers/rubygems.d.ts.map +1 -0
- package/dist/core/web/scrapers/rubygems.js +23 -0
- package/dist/core/web/scrapers/rubygems.js.map +1 -0
- package/dist/core/web/scrapers/stackoverflow.d.ts +3 -0
- package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -0
- package/dist/core/web/scrapers/stackoverflow.js +46 -0
- package/dist/core/web/scrapers/stackoverflow.js.map +1 -0
- package/dist/core/web/scrapers/tipos.d.ts +42 -0
- package/dist/core/web/scrapers/tipos.d.ts.map +1 -0
- package/dist/core/web/scrapers/tipos.js +23 -0
- package/dist/core/web/scrapers/tipos.js.map +1 -0
- package/dist/core/web/texto.d.ts +10 -0
- package/dist/core/web/texto.d.ts.map +1 -0
- package/dist/core/web/texto.js +26 -0
- package/dist/core/web/texto.js.map +1 -0
- package/dist/core/web/tools.d.ts +91 -0
- package/dist/core/web/tools.d.ts.map +1 -0
- package/dist/core/web/tools.js +304 -0
- package/dist/core/web/tools.js.map +1 -0
- package/dist/core/wiki/almacen.d.ts +33 -0
- package/dist/core/wiki/almacen.d.ts.map +1 -0
- package/dist/core/wiki/almacen.js +93 -0
- package/dist/core/wiki/almacen.js.map +1 -0
- package/dist/core/wiki/citas.d.ts +111 -0
- package/dist/core/wiki/citas.d.ts.map +1 -0
- package/dist/core/wiki/citas.js +146 -0
- package/dist/core/wiki/citas.js.map +1 -0
- package/dist/core/workflows/agent-runner.d.ts +88 -0
- package/dist/core/workflows/agent-runner.d.ts.map +1 -0
- package/dist/core/workflows/agent-runner.js +312 -0
- package/dist/core/workflows/agent-runner.js.map +1 -0
- package/dist/core/workflows/builtins.d.ts +41 -0
- package/dist/core/workflows/builtins.d.ts.map +1 -0
- package/dist/core/workflows/builtins.js +283 -0
- package/dist/core/workflows/builtins.js.map +1 -0
- package/dist/core/workflows/contrato/esquema.d.ts +32 -0
- package/dist/core/workflows/contrato/esquema.d.ts.map +1 -0
- package/dist/core/workflows/contrato/esquema.js +25 -0
- package/dist/core/workflows/contrato/esquema.js.map +1 -0
- package/dist/core/workflows/contrato/reparar-argumentos.d.ts +69 -0
- package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -0
- package/dist/core/workflows/contrato/reparar-argumentos.js +117 -0
- package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -0
- package/dist/core/workflows/contrato/validador.d.ts +30 -0
- package/dist/core/workflows/contrato/validador.d.ts.map +1 -0
- package/dist/core/workflows/contrato/validador.js +56 -0
- package/dist/core/workflows/contrato/validador.js.map +1 -0
- package/dist/core/workflows/contrato/yield.d.ts +65 -0
- package/dist/core/workflows/contrato/yield.d.ts.map +1 -0
- package/dist/core/workflows/contrato/yield.js +80 -0
- package/dist/core/workflows/contrato/yield.js.map +1 -0
- package/dist/core/workflows/goal-engine/engine.d.ts +151 -0
- package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/engine.js +503 -0
- package/dist/core/workflows/goal-engine/engine.js.map +1 -0
- package/dist/core/workflows/goal-engine/errors.d.ts +7 -0
- package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/errors.js +9 -0
- package/dist/core/workflows/goal-engine/errors.js.map +1 -0
- package/dist/core/workflows/goal-engine/index.d.ts +13 -0
- package/dist/core/workflows/goal-engine/index.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/index.js +8 -0
- package/dist/core/workflows/goal-engine/index.js.map +1 -0
- package/dist/core/workflows/goal-engine/persistence.d.ts +31 -0
- package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/persistence.js +145 -0
- package/dist/core/workflows/goal-engine/persistence.js.map +1 -0
- package/dist/core/workflows/goal-engine/prompts.d.ts +37 -0
- package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/prompts.js +131 -0
- package/dist/core/workflows/goal-engine/prompts.js.map +1 -0
- package/dist/core/workflows/goal-engine/state.d.ts +41 -0
- package/dist/core/workflows/goal-engine/state.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/state.js +397 -0
- package/dist/core/workflows/goal-engine/state.js.map +1 -0
- package/dist/core/workflows/goal-engine/tools.d.ts +31 -0
- package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/tools.js +211 -0
- package/dist/core/workflows/goal-engine/tools.js.map +1 -0
- package/dist/core/workflows/goal-engine/types.d.ts +286 -0
- package/dist/core/workflows/goal-engine/types.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/types.js +17 -0
- package/dist/core/workflows/goal-engine/types.js.map +1 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts +23 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.js +72 -0
- package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -0
- package/dist/core/workflows/graph-sync.d.ts +67 -0
- package/dist/core/workflows/graph-sync.d.ts.map +1 -0
- package/dist/core/workflows/graph-sync.js +188 -0
- package/dist/core/workflows/graph-sync.js.map +1 -0
- package/dist/core/workflows/graph.d.ts +143 -0
- package/dist/core/workflows/graph.d.ts.map +1 -0
- package/dist/core/workflows/graph.js +319 -0
- package/dist/core/workflows/graph.js.map +1 -0
- package/dist/core/workflows/index.d.ts +26 -0
- package/dist/core/workflows/index.d.ts.map +1 -0
- package/dist/core/workflows/index.js +18 -0
- package/dist/core/workflows/index.js.map +1 -0
- package/dist/core/workflows/journal.d.ts +68 -0
- package/dist/core/workflows/journal.d.ts.map +1 -0
- package/dist/core/workflows/journal.js +83 -0
- package/dist/core/workflows/journal.js.map +1 -0
- package/dist/core/workflows/manager.d.ts +122 -0
- package/dist/core/workflows/manager.d.ts.map +1 -0
- package/dist/core/workflows/manager.js +351 -0
- package/dist/core/workflows/manager.js.map +1 -0
- package/dist/core/workflows/resolve-script.d.ts +35 -0
- package/dist/core/workflows/resolve-script.d.ts.map +1 -0
- package/dist/core/workflows/resolve-script.js +66 -0
- package/dist/core/workflows/resolve-script.js.map +1 -0
- package/dist/core/workflows/runtime.d.ts +62 -0
- package/dist/core/workflows/runtime.d.ts.map +1 -0
- package/dist/core/workflows/runtime.js +380 -0
- package/dist/core/workflows/runtime.js.map +1 -0
- package/dist/core/workflows/save-as-skill.d.ts +27 -0
- package/dist/core/workflows/save-as-skill.d.ts.map +1 -0
- package/dist/core/workflows/save-as-skill.js +54 -0
- package/dist/core/workflows/save-as-skill.js.map +1 -0
- package/dist/core/workflows/shared-store.d.ts +31 -0
- package/dist/core/workflows/shared-store.d.ts.map +1 -0
- package/dist/core/workflows/shared-store.js +80 -0
- package/dist/core/workflows/shared-store.js.map +1 -0
- package/dist/core/workflows/subagent-host.d.ts +50 -0
- package/dist/core/workflows/subagent-host.d.ts.map +1 -0
- package/dist/core/workflows/subagent-host.js +225 -0
- package/dist/core/workflows/subagent-host.js.map +1 -0
- package/dist/core/workflows/tool-workflow.d.ts +22 -0
- package/dist/core/workflows/tool-workflow.d.ts.map +1 -0
- package/dist/core/workflows/tool-workflow.js +120 -0
- package/dist/core/workflows/tool-workflow.js.map +1 -0
- package/dist/core/workflows/types.d.ts +191 -0
- package/dist/core/workflows/types.d.ts.map +1 -0
- package/dist/core/workflows/types.js +26 -0
- package/dist/core/workflows/types.js.map +1 -0
- package/dist/core/workflows/worktree.d.ts +42 -0
- package/dist/core/workflows/worktree.d.ts.map +1 -0
- package/dist/core/workflows/worktree.js +107 -0
- package/dist/core/workflows/worktree.js.map +1 -0
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +6 -2
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/remoto/index.d.ts +22 -0
- package/dist/extensions/remoto/index.d.ts.map +1 -0
- package/dist/extensions/remoto/index.js +54 -0
- package/dist/extensions/remoto/index.js.map +1 -0
- package/dist/index.d.ts +1 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -13
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +26 -15
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +4 -3
- package/dist/migrations.js.map +1 -1
- package/dist/modes/acp/acp-mode.d.ts +42 -0
- package/dist/modes/acp/acp-mode.d.ts.map +1 -0
- package/dist/modes/acp/acp-mode.js +190 -0
- package/dist/modes/acp/acp-mode.js.map +1 -0
- package/dist/modes/acp/events.d.ts +74 -0
- package/dist/modes/acp/events.d.ts.map +1 -0
- package/dist/modes/acp/events.js +116 -0
- package/dist/modes/acp/events.js.map +1 -0
- package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
- package/dist/modes/interactive/components/home-screen.js +2 -2
- package/dist/modes/interactive/components/home-screen.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +9 -3
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +56 -12
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/prompt-optimization.d.ts +16 -0
- package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -0
- package/dist/modes/interactive/components/prompt-optimization.js +46 -0
- package/dist/modes/interactive/components/prompt-optimization.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +19 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +180 -56
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-submenu.d.ts +72 -0
- package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-submenu.js +165 -0
- package/dist/modes/interactive/components/settings-submenu.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +15 -3
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +74 -17
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +21 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +709 -75
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +4 -3
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +16 -13
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js +20 -6
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +11 -0
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +173 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +29 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +27 -5
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/server/attach.d.ts +56 -0
- package/dist/server/attach.d.ts.map +1 -0
- package/dist/server/attach.js +130 -0
- package/dist/server/attach.js.map +1 -0
- package/dist/server/extension-ops.d.ts +40 -0
- package/dist/server/extension-ops.d.ts.map +1 -0
- package/dist/server/extension-ops.js +146 -0
- package/dist/server/extension-ops.js.map +1 -0
- package/dist/server/pi-server-service.d.ts +85 -0
- package/dist/server/pi-server-service.d.ts.map +1 -0
- package/dist/server/pi-server-service.js +213 -0
- package/dist/server/pi-server-service.js.map +1 -0
- package/dist/server/scheduler-tick.d.ts +32 -0
- package/dist/server/scheduler-tick.d.ts.map +1 -0
- package/dist/server/scheduler-tick.js +47 -0
- package/dist/server/scheduler-tick.js.map +1 -0
- package/dist/server/serve.d.ts +25 -0
- package/dist/server/serve.d.ts.map +1 -0
- package/dist/server/serve.js +83 -0
- package/dist/server/serve.js.map +1 -0
- package/dist/server/transcript.d.ts +38 -0
- package/dist/server/transcript.d.ts.map +1 -0
- package/dist/server/transcript.js +176 -0
- package/dist/server/transcript.js.map +1 -0
- package/dist/skills/ada-engine/SKILL.md +153 -0
- package/dist/skills/skill-creator/SKILL.md +90 -0
- package/dist/telegram/api.d.ts +75 -0
- package/dist/telegram/api.d.ts.map +1 -0
- package/dist/telegram/api.js +104 -0
- package/dist/telegram/api.js.map +1 -0
- package/dist/telegram/bridge.d.ts +85 -0
- package/dist/telegram/bridge.d.ts.map +1 -0
- package/dist/telegram/bridge.js +182 -0
- package/dist/telegram/bridge.js.map +1 -0
- package/dist/telegram/journal.d.ts +67 -0
- package/dist/telegram/journal.d.ts.map +1 -0
- package/dist/telegram/journal.js +119 -0
- package/dist/telegram/journal.js.map +1 -0
- package/dist/telegram/servidor.d.ts +15 -0
- package/dist/telegram/servidor.d.ts.map +1 -0
- package/dist/telegram/servidor.js +74 -0
- package/dist/telegram/servidor.js.map +1 -0
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +2 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/management-http.d.ts +5 -3
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +14 -10
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/shell.d.ts +11 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +11 -0
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/text.d.ts +8 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +9 -0
- package/dist/utils/text.js.map +1 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +29 -1
- package/dist/utils/version-check.js.map +1 -1
- package/docs/compaction.md +25 -10
- package/docs/compliance.md +241 -0
- package/docs/containerization.md +24 -24
- package/docs/custom-provider.md +15 -12
- package/docs/development.md +47 -10
- package/docs/docs.json +14 -2
- package/docs/environment-variables.md +20 -17
- package/docs/extensions.md +62 -51
- package/docs/index.md +15 -21
- package/docs/json.md +10 -5
- package/docs/keybindings.md +5 -5
- package/docs/llama-cpp.md +9 -7
- package/docs/models.md +18 -12
- package/docs/packages.md +45 -45
- package/docs/prompt-templates.md +5 -5
- package/docs/providers.md +12 -12
- package/docs/quickstart.md +39 -39
- package/docs/rpc.md +21 -15
- package/docs/sdk.md +38 -38
- package/docs/security.md +26 -21
- package/docs/session-format.md +7 -7
- package/docs/sessions.md +14 -14
- package/docs/settings.md +47 -22
- package/docs/shell-aliases.md +2 -2
- package/docs/skills.md +14 -13
- package/docs/terminal-setup.md +14 -14
- package/docs/termux.md +7 -7
- package/docs/themes.md +11 -11
- package/docs/tmux.md +4 -4
- package/docs/tui.md +3 -3
- package/docs/usage.md +54 -54
- package/docs/windows.md +2 -2
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/git-checkpoint.ts +2 -2
- package/examples/extensions/notify.ts +3 -1
- package/examples/extensions/subagent/README.md +1 -1
- package/examples/extensions/subagent/index.ts +6 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/06-extensions.ts +1 -1
- package/examples/sdk/12-full-control.ts +9 -0
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +35 -261
- package/package.json +9 -3
|
@@ -0,0 +1,745 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detectar las CATEGORÍAS ESPECIALES del artículo 9 del RGPD (y las condenas
|
|
3
|
+
* del artículo 10) en un texto, sin repetir el texto en el hallazgo.
|
|
4
|
+
*
|
|
5
|
+
* POR QUÉ EXISTE, medido antes de escribir nada. El escáner de
|
|
6
|
+
* `memory-engine/security.ts` tiene cinco patrones de datos personales
|
|
7
|
+
* (correo, teléfono, DNI/NIE, IBAN, fecha de nacimiento) y CERO del artículo 9.
|
|
8
|
+
* Sobre un corpus de 24 cadenas que sí deberían saltar, en nivel `strict`
|
|
9
|
+
* fallaban 20. Entre las 20: «baja por depresión», «afiliado a CCOO»,
|
|
10
|
+
* «HIV positive», «huella dactilar registrada», «tiene antecedentes penales».
|
|
11
|
+
* Ninguna de ellas tiene hoy categoría en `SensitiveCategory`, así que
|
|
12
|
+
* `redactSensitive` las devuelve idénticas, sin un solo bloque: hoy una
|
|
13
|
+
* categoría especial se escribe EN CLARO en el libro de auditoría
|
|
14
|
+
* (`audit/libro.ts`), en la exportación y en el diario de edición.
|
|
15
|
+
*
|
|
16
|
+
* El coste no es simétrico con el de un correo. Tratar datos de salud,
|
|
17
|
+
* afiliación sindical, origen étnico, religión, opinión política, vida sexual,
|
|
18
|
+
* biometría o genética está PROHIBIDO salvo excepción tasada (art. 9.1 y 9.2),
|
|
19
|
+
* y las condenas penales sólo pueden tratarse bajo control de la autoridad
|
|
20
|
+
* (art. 10). Filtrar uno de estos no es un incidente de privacidad: es un
|
|
21
|
+
* tratamiento ilícito.
|
|
22
|
+
*
|
|
23
|
+
* LAS DOS MITADES. Un detector de vocabulario ingenuo es peor que ninguno.
|
|
24
|
+
* «diagnóstico» sale de cualquier compilador, «union» de cualquier SQL,
|
|
25
|
+
* «race» de cualquier `race condition`, y un identificador interno de ocho
|
|
26
|
+
* cifras no es un DNI. Un detector que grita sobre todo se desactiva en una
|
|
27
|
+
* semana y entonces no protege de nada. Por eso aquí hay dos mecanismos, y
|
|
28
|
+
* los dos se miden contra el corpus benigno:
|
|
29
|
+
*
|
|
30
|
+
* 1. Los IDENTIFICADORES se VALIDAN, no se reconocen por su forma. DNI y NIE
|
|
31
|
+
* por la letra de control (módulo 23 sobre TRWAGMYFPDXBNJZSQVHLCKE), IBAN
|
|
32
|
+
* y número de la Seguridad Social por módulo 97. Esto no es sólo rigor:
|
|
33
|
+
* es lo que hace desaparecer el único falso positivo medido del escáner
|
|
34
|
+
* actual —el UUID `550e8400-e29b-41d4-a716-446655440000`, cuyo fragmento
|
|
35
|
+
* `446655440000` tiene forma de NSS pero da 56 donde debería dar 00—.
|
|
36
|
+
*
|
|
37
|
+
* 2. El VOCABULARIO ambiguo exige CO-OCURRENCIA con un marcador de persona.
|
|
38
|
+
* «diagnóstico» solo no dispara; «su diagnóstico» sí. Ver `VENTANA`.
|
|
39
|
+
*
|
|
40
|
+
* LA VENTANA es de 60 caracteres entre los bordes más cercanos del término y
|
|
41
|
+
* del marcador. Una oración simple en español ronda las 10-12 palabras, unos
|
|
42
|
+
* 60-70 caracteres; dentro de eso el marcador y el término suelen compartir
|
|
43
|
+
* sujeto. Más allá ya son dos frases distintas y la co-ocurrencia deja de
|
|
44
|
+
* significar nada: el marcador habla de una persona y el término, de otra cosa.
|
|
45
|
+
* Medido sobre el corpus: con 60 caracteres las 12 cadenas benignas salen
|
|
46
|
+
* limpias y las 19 sensibles por vocabulario salen todas.
|
|
47
|
+
*
|
|
48
|
+
* QUÉ NO HACE, y conviene que conste:
|
|
49
|
+
*
|
|
50
|
+
* · No entiende negación ni hipótesis. «no está de baja por depresión» y
|
|
51
|
+
* «si estuviera de baja por depresión» disparan igual. Es deliberado: en
|
|
52
|
+
* un detector de fugas el falso negativo se paga más caro que el falso
|
|
53
|
+
* positivo POR CADA CASO, y la negación en texto libre no se resuelve con
|
|
54
|
+
* una lista de palabras.
|
|
55
|
+
* · No cubre `fingerprint` ni `huella digital` como biometría, porque en
|
|
56
|
+
* este repositorio son la huella de un certificado o de un fichero. Sí
|
|
57
|
+
* cubre «huella dactilar», que no tiene lectura técnica.
|
|
58
|
+
* · La matrícula española no tiene dígito de control: es la única forma sin
|
|
59
|
+
* validar de las cinco. Se compensa exigiendo el alfabeto real de las
|
|
60
|
+
* placas (consonantes, sin vocales ni Ñ ni Q), que descarta casi cualquier
|
|
61
|
+
* token accidental de cuatro cifras y tres letras.
|
|
62
|
+
* · No sustituye a `classifySensitive`: es complementario. Aquí no hay
|
|
63
|
+
* correos, ni teléfonos, ni tarjetas.
|
|
64
|
+
*/
|
|
65
|
+
/**
|
|
66
|
+
* El tercer estado: «no he podido mirar».
|
|
67
|
+
*
|
|
68
|
+
* Una lista vacía significa «he mirado el texto entero y no hay nada». Si el
|
|
69
|
+
* módulo no puede analizar, devolver `[]` convertiría un fallo en un permiso:
|
|
70
|
+
* quien llama guardaría la nota creyendo que está limpia. Por eso se LANZA.
|
|
71
|
+
*
|
|
72
|
+
* Se lanza en dos casos, y sólo en dos:
|
|
73
|
+
* · `no-es-cadena`: llega algo que no es `string` (un `null` de una API, un
|
|
74
|
+
* objeto que alguien esperaba serializado).
|
|
75
|
+
* · `demasiado-largo`: por encima de `LIMITE_CARACTERES`. El barrido es
|
|
76
|
+
* lineal por patrón, pero son ~80 patrones y la búsqueda de marcadores es
|
|
77
|
+
* cuadrática en el número de coincidencias; con un volcado de megabytes el
|
|
78
|
+
* detector deja de responder y quien llama se queda colgado sin saber por
|
|
79
|
+
* qué. Falla rápido y explícito.
|
|
80
|
+
*/
|
|
81
|
+
export class TextoNoAnalizable extends Error {
|
|
82
|
+
motivo;
|
|
83
|
+
constructor(motivo, detalle) {
|
|
84
|
+
super(`No se pudo analizar el texto (${motivo}): ${detalle}`);
|
|
85
|
+
this.name = "TextoNoAnalizable";
|
|
86
|
+
this.motivo = motivo;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** 200.000 caracteres ≈ 200 KB. Una nota de memoria razonable no llega a 10 KB. */
|
|
90
|
+
export const LIMITE_CARACTERES = 200_000;
|
|
91
|
+
/** Caracteres de distancia máxima entre el término y su marcador de persona. */
|
|
92
|
+
export const VENTANA = 60;
|
|
93
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
94
|
+
// Plegado: quitar acentos y mayúsculas SIN mover ni un índice
|
|
95
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
96
|
+
/**
|
|
97
|
+
* `NFD` + quitar diacríticos cambiaría la longitud y con ella `desde`/`hasta`,
|
|
98
|
+
* que dejarían de servir para redactar el original. Aquí se mapea carácter a
|
|
99
|
+
* carácter, uno a uno, para que el texto plegado y el original compartan
|
|
100
|
+
* índices exactamente.
|
|
101
|
+
*/
|
|
102
|
+
const EQUIVALENTES = {
|
|
103
|
+
á: "a",
|
|
104
|
+
à: "a",
|
|
105
|
+
ä: "a",
|
|
106
|
+
â: "a",
|
|
107
|
+
é: "e",
|
|
108
|
+
è: "e",
|
|
109
|
+
ë: "e",
|
|
110
|
+
ê: "e",
|
|
111
|
+
í: "i",
|
|
112
|
+
ì: "i",
|
|
113
|
+
ï: "i",
|
|
114
|
+
î: "i",
|
|
115
|
+
ó: "o",
|
|
116
|
+
ò: "o",
|
|
117
|
+
ö: "o",
|
|
118
|
+
ô: "o",
|
|
119
|
+
ú: "u",
|
|
120
|
+
ù: "u",
|
|
121
|
+
ü: "u",
|
|
122
|
+
û: "u",
|
|
123
|
+
ñ: "n",
|
|
124
|
+
ç: "c",
|
|
125
|
+
Á: "a",
|
|
126
|
+
À: "a",
|
|
127
|
+
Ä: "a",
|
|
128
|
+
Â: "a",
|
|
129
|
+
É: "e",
|
|
130
|
+
È: "e",
|
|
131
|
+
Ë: "e",
|
|
132
|
+
Ê: "e",
|
|
133
|
+
Í: "i",
|
|
134
|
+
Ì: "i",
|
|
135
|
+
Ï: "i",
|
|
136
|
+
Î: "i",
|
|
137
|
+
Ó: "o",
|
|
138
|
+
Ò: "o",
|
|
139
|
+
Ö: "o",
|
|
140
|
+
Ô: "o",
|
|
141
|
+
Ú: "u",
|
|
142
|
+
Ù: "u",
|
|
143
|
+
Ü: "u",
|
|
144
|
+
Û: "u",
|
|
145
|
+
Ñ: "n",
|
|
146
|
+
Ç: "c",
|
|
147
|
+
};
|
|
148
|
+
/**
|
|
149
|
+
* Devuelve el texto en minúsculas, sin acentos y con TODO espacio en blanco
|
|
150
|
+
* convertido en un espacio simple, con la MISMA longitud.
|
|
151
|
+
*
|
|
152
|
+
* Lo del salto de línea no es cosmético y se midió: con el salto intacto,
|
|
153
|
+
* «perfil\ngenético» y «trade\nunion» salían LIMPIOS —los patrones de varias
|
|
154
|
+
* palabras llevan un espacio literal— y un dato de categoría especial partido
|
|
155
|
+
* por un ajuste de línea es exactamente lo que produce cualquier editor, todo
|
|
156
|
+
* correo citado y todo comentario de código. Se arregla aquí, en el plegado,
|
|
157
|
+
* y no patrón a patrón: son ~30 patrones de varias palabras y arreglar sólo
|
|
158
|
+
* los que uno recuerda deja el resto igual de ciegos.
|
|
159
|
+
*/
|
|
160
|
+
export function plegar(texto) {
|
|
161
|
+
let salida = "";
|
|
162
|
+
for (let i = 0; i < texto.length; i++) {
|
|
163
|
+
const c = texto[i];
|
|
164
|
+
if (c === "\n" || c === "\r" || c === "\t" || c === "\f" || c === "\v") {
|
|
165
|
+
salida += " ";
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
const equivalente = EQUIVALENTES[c];
|
|
169
|
+
if (equivalente !== undefined) {
|
|
170
|
+
salida += equivalente;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
const minuscula = c.toLowerCase();
|
|
174
|
+
// Hay caracteres cuya minúscula ocupa dos unidades ('İ' → 'i̇'). Ésos se
|
|
175
|
+
// dejan como están: mover un índice cuesta más que perder una coincidencia.
|
|
176
|
+
salida += minuscula.length === 1 ? minuscula : c;
|
|
177
|
+
}
|
|
178
|
+
return salida;
|
|
179
|
+
}
|
|
180
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
181
|
+
// Validación de identificadores
|
|
182
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
183
|
+
const LETRAS_DNI = "TRWAGMYFPDXBNJZSQVHLCKE";
|
|
184
|
+
/**
|
|
185
|
+
* Letra de control del DNI: módulo 23 sobre la tabla oficial.
|
|
186
|
+
*
|
|
187
|
+
* Acepta los puntos de millar («12.345.678»), que es como se imprime en la
|
|
188
|
+
* tarjeta y como lo teclea la mitad de la gente.
|
|
189
|
+
*/
|
|
190
|
+
export function dniValido(numero, letra) {
|
|
191
|
+
const digitos = numero.replace(/\./g, "");
|
|
192
|
+
if (!/^\d{8}$/.test(digitos))
|
|
193
|
+
return false;
|
|
194
|
+
return LETRAS_DNI[Number(digitos) % 23] === letra.toUpperCase();
|
|
195
|
+
}
|
|
196
|
+
/** NIE: la inicial X/Y/Z vale 0/1/2 y luego es el mismo módulo 23. */
|
|
197
|
+
export function nieValido(inicial, numero, letra) {
|
|
198
|
+
const prefijo = { X: "0", Y: "1", Z: "2" }[inicial.toUpperCase()];
|
|
199
|
+
if (prefijo === undefined)
|
|
200
|
+
return false;
|
|
201
|
+
return dniValido(prefijo + numero, letra);
|
|
202
|
+
}
|
|
203
|
+
/** Resto módulo 97 de una cadena de dígitos, sin desbordar el entero. */
|
|
204
|
+
function modulo97(digitos) {
|
|
205
|
+
let resto = 0;
|
|
206
|
+
for (const d of digitos)
|
|
207
|
+
resto = (resto * 10 + Number(d)) % 97;
|
|
208
|
+
return resto;
|
|
209
|
+
}
|
|
210
|
+
/** IBAN: mover los cuatro primeros al final, letra → número, y módulo 97 = 1. */
|
|
211
|
+
export function ibanValido(iban) {
|
|
212
|
+
const limpio = iban.replace(/\s/g, "").toUpperCase();
|
|
213
|
+
if (!/^[A-Z]{2}\d{2}[A-Z0-9]{10,30}$/.test(limpio))
|
|
214
|
+
return false;
|
|
215
|
+
const rotado = limpio.slice(4) + limpio.slice(0, 4);
|
|
216
|
+
let digitos = "";
|
|
217
|
+
for (const c of rotado) {
|
|
218
|
+
digitos += c >= "A" && c <= "Z" ? String(c.charCodeAt(0) - 55) : c;
|
|
219
|
+
}
|
|
220
|
+
return modulo97(digitos) === 1;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Número de la Seguridad Social: provincia (2) + número (8) + control (2),
|
|
224
|
+
* donde el control es el módulo 97 de los diez primeros dígitos.
|
|
225
|
+
*
|
|
226
|
+
* La excepción documentada: cuando el número de afiliación es menor que
|
|
227
|
+
* 10.000.000 —es decir, empieza por cero— el código de provincia se coloca
|
|
228
|
+
* DETRÁS. Se prueban las dos lecturas y basta con que una cuadre; probar sólo
|
|
229
|
+
* la principal perdería a todos los afiliados antiguos.
|
|
230
|
+
*/
|
|
231
|
+
export function nssValido(provincia, numero, control) {
|
|
232
|
+
const esperado = Number(control);
|
|
233
|
+
if (modulo97(provincia + numero) === esperado)
|
|
234
|
+
return true;
|
|
235
|
+
if (numero.startsWith("0"))
|
|
236
|
+
return modulo97(numero + provincia) === esperado;
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
240
|
+
// Marcadores de persona
|
|
241
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
242
|
+
/**
|
|
243
|
+
* Lo que sitúa un dato EN UNA PERSONA. Sin uno de éstos cerca, el vocabulario
|
|
244
|
+
* ambiguo no dispara.
|
|
245
|
+
*
|
|
246
|
+
* No están los artículos («el», «la», «los»): son tan frecuentes que
|
|
247
|
+
* convertirían la co-ocurrencia en un adorno —todo texto en español tiene un
|
|
248
|
+
* artículo a menos de 60 caracteres de cualquier cosa—. Sí están los posesivos
|
|
249
|
+
* y los pronombres, que es lo que atribuye el dato a alguien.
|
|
250
|
+
*
|
|
251
|
+
* «de baja» / «baja por» entran porque una baja es siempre de una persona; es
|
|
252
|
+
* el marcador que sostiene «baja por depresión», donde no hay ningún pronombre.
|
|
253
|
+
*/
|
|
254
|
+
const MARCADORES = [
|
|
255
|
+
/\b(?:yo|tu|ella|ellos|ellas|nosotros|nosotras|vosotros|usted|ustedes)\b/g,
|
|
256
|
+
// SIN `su` ni `sus`, y es una corrección medida. En español el posesivo de
|
|
257
|
+
// tercera persona vale para CUALQUIER antecedente, animado o no: «agrega sus
|
|
258
|
+
// diagnósticos» habla de un comprobador, no de un paciente. Con `su`/`sus`
|
|
259
|
+
// dentro, 7 de los 10 falsos positivos que quedaban sobre `src` venían de
|
|
260
|
+
// ahí. Los de primera y segunda persona sí implican a alguien.
|
|
261
|
+
/\b(?:mi|mis|tus|nuestro|nuestra|nuestros|nuestras)\b/g,
|
|
262
|
+
// SIN `i`: es la variable de bucle de todo el código escrito jamás, y sobre
|
|
263
|
+
// el plegado no hay forma de distinguirla del pronombre inglés.
|
|
264
|
+
/\b(?:he|she|they|we|my|his|her|their|our|your|him|them)\b/g,
|
|
265
|
+
/\b(?:paciente|pacientes|enfermo|enferma|empleado|empleada|empleados|empleadas)\b/g,
|
|
266
|
+
/\b(?:trabajador|trabajadora|trabajadores|usuario|usuaria|usuarios|cliente|clientes)\b/g,
|
|
267
|
+
/\b(?:candidato|candidata|afiliado|afiliada|socio|socia|miembro|companero|companera|colega)\b/g,
|
|
268
|
+
/\b(?:patient|employee|employees|worker|workers|user|users|customer|member|colleague)\b/g,
|
|
269
|
+
/\b(?:don|dona|sr|sra|senor|senora|mr|mrs|ms)\b/g,
|
|
270
|
+
/\bde baja\b|\bbaja por\b|\bsick leave\b|\bon leave\b/g,
|
|
271
|
+
];
|
|
272
|
+
/**
|
|
273
|
+
* Nombre y apellido SEGUIDOS: dos palabras capitalizadas pegadas, ni al
|
|
274
|
+
* principio del texto ni tras un punto.
|
|
275
|
+
*
|
|
276
|
+
* MEDIDO, y es la corrección más cara de este módulo. Antes bastaba UNA palabra
|
|
277
|
+
* capitalizada. Sobre los 469 ficheros `.ts` reales de `src` eso daba 20.272
|
|
278
|
+
* marcadores: en un repositorio documentado en español toda palabra que abre
|
|
279
|
+
* frase dentro de un bloque de documentación y todo nombre de tipo
|
|
280
|
+
* (`Comprobador`, `Deteccion`, `Diagnostico`) valía por «una persona». El
|
|
281
|
+
* resultado era que la co-ocurrencia no filtraba nada y el detector marcaba 51
|
|
282
|
+
* veces palabras como `diagnóstico` y `positivo` —la segunda dentro de la
|
|
283
|
+
* expresión «falso positivo», que es justo lo que este módulo intenta evitar—.
|
|
284
|
+
* Exigiendo las dos palabras seguidas quedan 351 candidatos sobre el mismo
|
|
285
|
+
* corpus, y ninguno acaba produciendo un hallazgo.
|
|
286
|
+
*
|
|
287
|
+
* Lo que se paga: «Ana padece esclerosis» ya no tiene marcador por el nombre.
|
|
288
|
+
* Se acepta a sabiendas —un nombre de pila suelto es indistinguible de un
|
|
289
|
+
* identificador de código— y se compensa con el vocabulario sin marcador.
|
|
290
|
+
*/
|
|
291
|
+
const NOMBRE_COMPLETO = /\b[A-ZÁÉÍÓÚÑ][a-záéíóúñ]{2,} [A-ZÁÉÍÓÚÑ][a-záéíóúñ]{2,}\b/g;
|
|
292
|
+
function marcadoresDe(plegado, original) {
|
|
293
|
+
const tramos = [];
|
|
294
|
+
for (const patron of MARCADORES) {
|
|
295
|
+
for (const m of plegado.matchAll(patron)) {
|
|
296
|
+
tramos.push({ desde: m.index, hasta: m.index + m[0].length });
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
for (const m of original.matchAll(NOMBRE_COMPLETO)) {
|
|
300
|
+
const antes = original.slice(0, m.index).trimEnd();
|
|
301
|
+
if (antes.length === 0)
|
|
302
|
+
continue; // primera palabra del texto
|
|
303
|
+
if (/[.!?¿¡:]$/.test(antes))
|
|
304
|
+
continue; // primera palabra de la oración
|
|
305
|
+
tramos.push({ desde: m.index, hasta: m.index + m[0].length });
|
|
306
|
+
}
|
|
307
|
+
return tramos;
|
|
308
|
+
}
|
|
309
|
+
/** ¿Hay algún marcador a menos de `VENTANA` del término, sin solaparlo? */
|
|
310
|
+
function tieneMarcadorCerca(termino, marcadores) {
|
|
311
|
+
for (const m of marcadores) {
|
|
312
|
+
if (m.desde < termino.hasta && termino.desde < m.hasta)
|
|
313
|
+
continue; // se solapan: es el propio término
|
|
314
|
+
const distancia = m.desde >= termino.hasta ? m.desde - termino.hasta : termino.desde - m.hasta;
|
|
315
|
+
if (distancia <= VENTANA)
|
|
316
|
+
return true;
|
|
317
|
+
}
|
|
318
|
+
return false;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Español e inglés en la misma tabla. Lo que entra sin marcador es lo que no
|
|
322
|
+
* tiene otra lectura en un repositorio de software: `diabetes` no sale de un
|
|
323
|
+
* compilador. Lo que exige marcador es lo que sí sale: `diagnostico`,
|
|
324
|
+
* `depresion`, `positivo`.
|
|
325
|
+
*
|
|
326
|
+
* Ausencias deliberadas, cada una por un falso positivo concreto:
|
|
327
|
+
* · `union` a secas → `union type`, `UNION ALL`. Sólo entra en locuciones
|
|
328
|
+
* («union member», «trade union»).
|
|
329
|
+
* · `race` a secas → `race condition`. Sólo entra «racial origin».
|
|
330
|
+
* · `podemos` como partido → es la primera persona del plural de «poder».
|
|
331
|
+
* Se cubre por la locución «votante de», que revela la opinión política
|
|
332
|
+
* sea cual sea el partido.
|
|
333
|
+
* · `master`, `slave`, `blacklist` → vocabulario técnico, no étnico.
|
|
334
|
+
*/
|
|
335
|
+
const TERMINOS = [
|
|
336
|
+
// ── Salud (art. 9) ──
|
|
337
|
+
{ categoria: "salud", patron: /\bdiabetes\b|\bdiabetic(?:o|a|os|as)?\b/g, exigeMarcador: false },
|
|
338
|
+
{
|
|
339
|
+
categoria: "salud",
|
|
340
|
+
patron: /\balergi(?:a|as)\b|\balergic(?:o|a)\b|\ballerg(?:y|ic|ies)\b/g,
|
|
341
|
+
exigeMarcador: false,
|
|
342
|
+
},
|
|
343
|
+
{ categoria: "salud", patron: /\b(?:vih|hiv|sida|aids|hepatitis|tuberculosis)\b/g, exigeMarcador: false },
|
|
344
|
+
{ categoria: "salud", patron: /\bcancer\b|\bleucemia\b|\bleukemia\b|\btumor(?:es)?\b/g, exigeMarcador: false },
|
|
345
|
+
{ categoria: "salud", patron: /\bgrupo sanguineo\b|\bblood (?:type|group)\b/g, exigeMarcador: false },
|
|
346
|
+
{
|
|
347
|
+
categoria: "salud",
|
|
348
|
+
patron: /\ben tratamiento (?:con|por|de)\b|\bunder treatment for\b|\bon medication\b/g,
|
|
349
|
+
exigeMarcador: false,
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
categoria: "salud",
|
|
353
|
+
patron: /\b(?:sertralina|fluoxetina|paroxetina|litio|insulina|metformina|antidepresiv(?:o|os)|antirretroviral(?:es)?|quimioterapia|chemotherapy)\b/g,
|
|
354
|
+
exigeMarcador: false,
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
categoria: "salud",
|
|
358
|
+
patron: /\bhistoria clinica\b|\bhistorial medico\b|\bmedical (?:record|history)\b|\binforme medico\b/g,
|
|
359
|
+
exigeMarcador: false,
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
categoria: "salud",
|
|
363
|
+
patron: /\bembarazad(?:a|as)\b|\bpregnan(?:t|cy)\b|\bdiscapacidad\b|\bminusvalia\b/g,
|
|
364
|
+
exigeMarcador: false,
|
|
365
|
+
},
|
|
366
|
+
// `diagnostico` PARTIDO EN DOS, y es la lección más cara del módulo. En un
|
|
367
|
+
// agente de programación «diagnóstico» es lo que escupe el compilador: sobre
|
|
368
|
+
// `src` aparece 46 veces y ninguna habla de la salud de nadie. La forma que
|
|
369
|
+
// sí es art. 9 no es la palabra suelta, es la CONSTRUCCIÓN: a alguien se le
|
|
370
|
+
// diagnostica ALGO. Ésa no exige marcador porque ya lo lleva dentro.
|
|
371
|
+
{
|
|
372
|
+
categoria: "salud",
|
|
373
|
+
patron: /\bdiagnosticad(?:o|a|os|as) (?:de|con)\b|\bdiagnos(?:ed with|is of)\b|\bdiagnostico (?:medico|clinico|psiquiatrico|psicologico|de cancer)\b|\bmedical diagnosis\b/g,
|
|
374
|
+
exigeMarcador: false,
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
categoria: "salud",
|
|
378
|
+
patron: /\bdiagnostic(?:o|os|ado|ada|ados|adas)\b|\bdiagnos(?:is|ed)\b/g,
|
|
379
|
+
exigeMarcador: true,
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
categoria: "salud",
|
|
383
|
+
patron: /\bdepresion\b|\bansiedad\b|\bdepression\b|\banxiety\b|\bburnout\b/g,
|
|
384
|
+
exigeMarcador: true,
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
categoria: "salud",
|
|
388
|
+
patron: /\benfermedad(?:es)?\b|\bdolencia\b|\billness\b|\bdisease\b|\bsintomas\b/g,
|
|
389
|
+
exigeMarcador: true,
|
|
390
|
+
},
|
|
391
|
+
// `positivo` va sin «falso» ni «false» delante: «falso positivo» es la
|
|
392
|
+
// expresión de oficio de este repositorio —medido, 5 hallazgos en `src`, uno
|
|
393
|
+
// de ellos en un comentario que explica cómo evitar falsos positivos— y no
|
|
394
|
+
// habla de la serología de nadie.
|
|
395
|
+
{
|
|
396
|
+
categoria: "salud",
|
|
397
|
+
patron: /(?<!\bfals[oa]s? )(?<!\bfalse )(?:\bpositiv(?:o|a)\b|\bpositive\b|\bseropositiv(?:o|a)\b)/g,
|
|
398
|
+
exigeMarcador: true,
|
|
399
|
+
},
|
|
400
|
+
// Patologías sin lectura técnica: no salen de un compilador, así que no
|
|
401
|
+
// exigen marcador. Coste medido sobre los 469 ficheros de `src` y sobre 200
|
|
402
|
+
// commits: CERO hallazgos.
|
|
403
|
+
{
|
|
404
|
+
categoria: "salud",
|
|
405
|
+
patron: /\besquizofrenia\b|\bbipolar\b|\bepilep(?:sia|tic(?:o|a))\b|\balzheimer\b|\bparkinson\b|\bdialisis\b|\besclerosis\b|\bfibromialgia\b|\bcelia(?:co|ca)\b|\basma\b|\bictus\b|\binfarto\b/g,
|
|
406
|
+
exigeMarcador: false,
|
|
407
|
+
},
|
|
408
|
+
{
|
|
409
|
+
categoria: "salud",
|
|
410
|
+
patron: /\bsuicidi(?:o|os|arse)\b|\bautolesion(?:es)?\b|\bsalud mental\b|\bmental health\b|\bingreso psiquiatric(?:o|a)\b|\bpsiquiatric(?:o|a)\b/g,
|
|
411
|
+
exigeMarcador: false,
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
categoria: "salud",
|
|
415
|
+
patron: /\badict(?:o|a) a\b|\balcoholi(?:co|ca|smo)\b|\bdrogodependien\w*\b|\bdesintoxicacion\b|\brehabilitacion\b|\btoxicoman\w*\b/g,
|
|
416
|
+
exigeMarcador: false,
|
|
417
|
+
},
|
|
418
|
+
{
|
|
419
|
+
categoria: "salud",
|
|
420
|
+
patron: /\bbaja medica\b|\bbaja laboral\b|\bincapacidad (?:temporal|permanente|laboral)\b|\bsick leave\b|\bmedical leave\b/g,
|
|
421
|
+
exigeMarcador: false,
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
categoria: "salud",
|
|
425
|
+
patron: /\babortion\b|\binterrupcion (?:voluntaria )?del embarazo\b|\btratamiento de fertilidad\b|\bmiscarriage\b/g,
|
|
426
|
+
exigeMarcador: false,
|
|
427
|
+
},
|
|
428
|
+
// Siglas clínicas, en mayúsculas y sobre el original. Sólo las que no
|
|
429
|
+
// colisionan con vocabulario técnico: fuera `IAM` (AWS), `ACV`, `TOC` (tabla
|
|
430
|
+
// de contenidos) y `SNS`, que en un repositorio son otra cosa.
|
|
431
|
+
{
|
|
432
|
+
categoria: "salud",
|
|
433
|
+
patron: /\b(?:TDAH|TEPT|EPOC|VHC|VHB)\b/g,
|
|
434
|
+
exigeMarcador: false,
|
|
435
|
+
sobreOriginal: true,
|
|
436
|
+
},
|
|
437
|
+
// ── Afiliación sindical (art. 9) ──
|
|
438
|
+
// EN MAYÚSCULAS y sobre el original: ver `sobreOriginal`. `uso`, `lab`, `cnt`
|
|
439
|
+
// y `ela` en minúsculas son palabras corrientes, no sindicatos.
|
|
440
|
+
{
|
|
441
|
+
categoria: "sindical",
|
|
442
|
+
patron: /\b(?:CCOO|UGT|CGT|CNT|USO|ELA|LAB|CIG|SATSE|CSIF)\b/g,
|
|
443
|
+
exigeMarcador: false,
|
|
444
|
+
sobreOriginal: true,
|
|
445
|
+
},
|
|
446
|
+
// `liberado sindical` y `seccion sindical` llevan la palabra dentro: no hay
|
|
447
|
+
// otra lectura. `huelga` sí la tiene —«huelga decir»— y además una huelga
|
|
448
|
+
// convocada no es un dato de nadie; lo que revela afiliación es que una
|
|
449
|
+
// PERSONA aparezca al lado. De ahí el marcador sólo en la segunda.
|
|
450
|
+
{
|
|
451
|
+
categoria: "sindical",
|
|
452
|
+
patron: /\bliberad(?:o|a) sindical\b|\bseccion sindical\b/g,
|
|
453
|
+
exigeMarcador: false,
|
|
454
|
+
},
|
|
455
|
+
{ categoria: "sindical", patron: /\bhuelga\b|\bpiquete\b/g, exigeMarcador: true },
|
|
456
|
+
{
|
|
457
|
+
categoria: "sindical",
|
|
458
|
+
patron: /\bsindicat(?:o|os)\b|\bsindicalista\b|\bafiliacion sindical\b|\bdelegad(?:o|a) sindical\b|\bcomite de empresa\b/g,
|
|
459
|
+
exigeMarcador: false,
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
categoria: "sindical",
|
|
463
|
+
patron: /\bunion member(?:ship)?\b|\btrade union\b|\blabou?r union\b|\bunioni[sz]ed\b|\bshop steward\b/g,
|
|
464
|
+
exigeMarcador: false,
|
|
465
|
+
},
|
|
466
|
+
// ── Origen étnico o racial (art. 9) ──
|
|
467
|
+
{
|
|
468
|
+
categoria: "origen-etnico",
|
|
469
|
+
patron: /\bde origen (?:marroqui|gitan(?:o|a)|magrebi|subsaharian(?:o|a)|arabe|bereber|judi(?:o|a)|latin(?:o|a)|rumen(?:o|a)|rumano|rumana|chin(?:o|a)|african(?:o|a)|asiatic(?:o|a)|indi(?:o|a)|turc(?:o|a)|paquistani|senegales|ecuatorian(?:o|a)|bolivian(?:o|a)|etnic(?:o|a))\b/g,
|
|
470
|
+
exigeMarcador: false,
|
|
471
|
+
},
|
|
472
|
+
{
|
|
473
|
+
categoria: "origen-etnico",
|
|
474
|
+
patron: /\betnia\b|\bgitan(?:o|a|os|as)\b|\bracial origin\b|\bethnic (?:origin|group|background|minority)\b|\bethnicity\b|\borigen racial\b|\bminoria etnica\b/g,
|
|
475
|
+
exigeMarcador: false,
|
|
476
|
+
},
|
|
477
|
+
// ── Religión o creencias (art. 9) ──
|
|
478
|
+
{
|
|
479
|
+
categoria: "religion",
|
|
480
|
+
patron: /\bmusulman(?:a|es|as)?\b|\bmuslim\b|\bislamic(?:o|a)?\b|\bcatolic(?:o|a|os|as)\b|\bcatholic\b|\bevangelic(?:o|a)\b|\bprotestante\b|\bjudi(?:o|a)\b|\bjewish\b|\bhindu\b|\bbudista\b|\bbuddhist\b|\btestigo de jehova\b|\bate(?:o|a)\b/g,
|
|
481
|
+
exigeMarcador: false,
|
|
482
|
+
},
|
|
483
|
+
// `agnostico` sale de la lista: medido, en `src` aparece una vez y es
|
|
484
|
+
// «agnóstico de proveedor». La creencia religiosa que hay que cazar es la
|
|
485
|
+
// que se declara, no la que se niega con una palabra que además es jerga.
|
|
486
|
+
{
|
|
487
|
+
categoria: "religion",
|
|
488
|
+
patron: /\bcreencias religiosas\b|\breligious belief(?:s)?\b|\bconviccion religiosa\b|\bpractica religiosa\b|\bmotivos religiosos\b|\bramadan\b|\bkosher\b|\bhalal\b|\bva a misa\b|\bbautizad(?:o|a)\b/g,
|
|
489
|
+
exigeMarcador: false,
|
|
490
|
+
},
|
|
491
|
+
// ── Opiniones políticas (art. 9) ──
|
|
492
|
+
{
|
|
493
|
+
categoria: "opinion-politica",
|
|
494
|
+
patron: /\bvotante de\b|\bvot(?:a|o|e) a\b|\bvoted for\b|\bmilitante de\b|\bsimpatizante de\b|\bafiliad(?:o|a) al partido\b/g,
|
|
495
|
+
exigeMarcador: false,
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
categoria: "opinion-politica",
|
|
499
|
+
patron: /\bpartido popular\b|\bpsoe\b|\bizquierda unida\b|\bpartido comunista\b|\bideologia politica\b|\bpolitical (?:opinion|affiliation|party)\b/g,
|
|
500
|
+
exigeMarcador: false,
|
|
501
|
+
},
|
|
502
|
+
// ── Vida sexual u orientación sexual (art. 9) ──
|
|
503
|
+
{
|
|
504
|
+
categoria: "vida-sexual",
|
|
505
|
+
patron: /\bgay\b|\blesbian(?:a|as)?\b|\bbisexual\b|\bhomosexual\b|\bheterosexual\b|\btransexual\b|\btransgener(?:o|a)\b|\btransgender\b|\bqueer\b/g,
|
|
506
|
+
exigeMarcador: false,
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
categoria: "vida-sexual",
|
|
510
|
+
patron: /\borientacion sexual\b|\bsexual orientation\b|\bidentidad de genero\b|\bgender identity\b|\bpareja de hecho\b|\bcivil partnership\b/g,
|
|
511
|
+
exigeMarcador: false,
|
|
512
|
+
},
|
|
513
|
+
// ── Datos biométricos (art. 9) ──
|
|
514
|
+
{
|
|
515
|
+
categoria: "biometrico",
|
|
516
|
+
patron: /\bhuella(?:s)? dactilar(?:es)?\b|\breconocimiento facial\b|\bfacial recognition\b|\bfingerprint scan(?:ner)?\b|\biris scan\b|\bescaneo de iris\b|\bvoiceprint\b|\bhuella de voz\b/g,
|
|
517
|
+
exigeMarcador: false,
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
categoria: "biometrico",
|
|
521
|
+
patron: /\bdatos biometricos\b|\bbiometric data\b|\bplantilla biometrica\b|\bbiometric template\b/g,
|
|
522
|
+
exigeMarcador: false,
|
|
523
|
+
},
|
|
524
|
+
// ── Datos genéticos (art. 9) ──
|
|
525
|
+
{
|
|
526
|
+
categoria: "genetico",
|
|
527
|
+
patron: /\bperfil genetic(?:o|a)\b|\bgenetic (?:profile|test|testing|data|marker)\b|\btest genetico\b|\bsecuenciacion (?:genetica|del genoma)\b|\bgenoma\b|\bcariotipo\b|\bbrca[12]\b/g,
|
|
528
|
+
exigeMarcador: false,
|
|
529
|
+
},
|
|
530
|
+
// ── Condenas e infracciones penales (art. 10) ──
|
|
531
|
+
{
|
|
532
|
+
categoria: "condenas",
|
|
533
|
+
patron: /\bantecedentes penales\b|\bcriminal record\b|\bcertificado de penales\b|\bregistro de delincuentes\b/g,
|
|
534
|
+
exigeMarcador: false,
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
categoria: "condenas",
|
|
538
|
+
patron: /\bcondenad(?:o|a) por\b|\bconvicted of\b|\bsentenciad(?:o|a) a\b|\bsentenced to\b|\bimputad(?:o|a) por\b|\bproceso penal\b|\ben prision por\b/g,
|
|
539
|
+
exigeMarcador: false,
|
|
540
|
+
},
|
|
541
|
+
// Las formas que faltaban, medidas: «cumplió condena por robo», «detenido
|
|
542
|
+
// por», «orden de alejamiento» y «violencia de género» salían LIMPIAS. Coste
|
|
543
|
+
// sobre los 469 ficheros de `src` y 200 commits: CERO.
|
|
544
|
+
{
|
|
545
|
+
categoria: "condenas",
|
|
546
|
+
patron: /\bcondena por\b|\bcumplio condena\b|\bdetenid(?:o|a) por\b|\borden de alejamiento\b|\bdelito de\b|\bviolencia de genero\b|\bjuicio penal\b|\barrested for\b|\bon probation\b|\bparole\b/g,
|
|
547
|
+
exigeMarcador: false,
|
|
548
|
+
},
|
|
549
|
+
];
|
|
550
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
551
|
+
// Identificadores
|
|
552
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
553
|
+
/**
|
|
554
|
+
* Van sobre el texto ORIGINAL, no sobre el plegado —el plegado ya no distingue
|
|
555
|
+
* `X` de `x`— pero SÍ aceptan minúsculas y los puntos de millar.
|
|
556
|
+
*
|
|
557
|
+
* MEDIDO, y era un agujero de los grandes: `dni 12345678z`, `nie z1234567r`,
|
|
558
|
+
* `es9121000418450200051332` y `DNI 12.345.678-Z` salían LIMPIOS. Las cuatro
|
|
559
|
+
* son formas que produce cualquiera: el punto de millar es como se imprime un
|
|
560
|
+
* DNI en España, y la minúscula es lo que sale de un `toLowerCase()` en
|
|
561
|
+
* cualquier campo de formulario, de un `JSON` normalizado o de una URL.
|
|
562
|
+
*
|
|
563
|
+
* El coste se midió, y no salió gratis: `/Users/31017423z/...` —un directorio
|
|
564
|
+
* de trabajo real, citado en dos ficheros de `src`— tiene ocho cifras y una
|
|
565
|
+
* letra, y PASA el módulo 23. De ahí el `(?<![/\\])` y el `(?![/\\])`: un token
|
|
566
|
+
* pegado a una barra es un segmento de ruta, no un documento. Con ese guardián
|
|
567
|
+
* la forma insensible a mayúsculas produce CERO hallazgos sobre los 469
|
|
568
|
+
* ficheros `.ts` de `src` y sobre 200 commits.
|
|
569
|
+
*/
|
|
570
|
+
const DNI = /(?<![/\\])\b(\d{2}\.?\d{3}\.?\d{3})[ .-]?([A-Za-z])\b(?![/\\])/g;
|
|
571
|
+
const NIE = /(?<![/\\])\b([XYZxyz])[ .-]?(\d{7})[ .-]?([A-Za-z])\b(?![/\\])/g;
|
|
572
|
+
const IBAN = /\b([A-Za-z]{2}\d{2}(?:[ ]?[A-Za-z0-9]{4}){3,7}[ ]?[A-Za-z0-9]{0,4})\b/g;
|
|
573
|
+
const NSS = /\b(\d{2})[ -]?(\d{8})[ -]?(\d{2})\b/g;
|
|
574
|
+
/** Matrícula española desde 2000: cuatro cifras y tres consonantes, sin Ñ ni Q. */
|
|
575
|
+
const MATRICULA = /\b\d{4}[ -]?[BCDFGHJKLMNPRSTVWXYZ]{3}\b/g;
|
|
576
|
+
const PORQUE_MODULO_23 = "identificador nacional con letra de control correcta (comprobada, modulo 23)";
|
|
577
|
+
const PORQUE_MODULO_97 = "identificador nacional con digito de control correcto (comprobado, modulo 97)";
|
|
578
|
+
const PORQUE_FORMA_PLACA = "identificador nacional con la forma exacta de una placa (cuatro cifras y tres consonantes; sin control que comprobar)";
|
|
579
|
+
const PORQUE_VOCABULARIO = "vocabulario de categoria especial sin otra lectura tecnica";
|
|
580
|
+
const PORQUE_CON_MARCADOR = `vocabulario ambiguo con un marcador de persona a menos de ${VENTANA} caracteres`;
|
|
581
|
+
function articuloDe(categoria) {
|
|
582
|
+
return categoria === "condenas" ? "10" : "9";
|
|
583
|
+
}
|
|
584
|
+
/**
|
|
585
|
+
* Funde los hallazgos de la MISMA categoría que se solapan.
|
|
586
|
+
*
|
|
587
|
+
* «afiliado al partido popular» dispara dos patrones políticos sobre tramos
|
|
588
|
+
* que se pisan; dos hallazgos para un solo dato inflan el informe del DPO y
|
|
589
|
+
* hacen que redactar sea redactar dos veces lo mismo.
|
|
590
|
+
*/
|
|
591
|
+
function fundir(hallazgos) {
|
|
592
|
+
const ordenados = [...hallazgos].sort((a, b) => a.desde - b.desde || a.hasta - b.hasta);
|
|
593
|
+
const salida = [];
|
|
594
|
+
for (const h of ordenados) {
|
|
595
|
+
const previo = salida.find((p) => p.categoria === h.categoria && h.desde < p.hasta && p.desde < h.hasta);
|
|
596
|
+
if (previo) {
|
|
597
|
+
previo.desde = Math.min(previo.desde, h.desde);
|
|
598
|
+
previo.hasta = Math.max(previo.hasta, h.hasta);
|
|
599
|
+
continue;
|
|
600
|
+
}
|
|
601
|
+
salida.push({ ...h });
|
|
602
|
+
}
|
|
603
|
+
return salida.sort((a, b) => a.desde - b.desde);
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* Busca categorías especiales del art. 9 y condenas del art. 10.
|
|
607
|
+
*
|
|
608
|
+
* TRES ESTADOS, no dos:
|
|
609
|
+
* · lista con hallazgos → hay datos de categoría especial;
|
|
610
|
+
* · lista vacía → he mirado el texto entero y no hay;
|
|
611
|
+
* · `TextoNoAnalizable` → no he podido mirar. Nunca se confunde con la vacía.
|
|
612
|
+
*
|
|
613
|
+
* Ningún campo del hallazgo lleva el texto detectado; sólo su posición y la
|
|
614
|
+
* forma que lo disparó.
|
|
615
|
+
*/
|
|
616
|
+
export function categoriasEspeciales(texto) {
|
|
617
|
+
if (typeof texto !== "string") {
|
|
618
|
+
throw new TextoNoAnalizable("no-es-cadena", `llego un ${texto === null ? "null" : typeof texto}`);
|
|
619
|
+
}
|
|
620
|
+
if (texto.length > LIMITE_CARACTERES) {
|
|
621
|
+
throw new TextoNoAnalizable("demasiado-largo", `${texto.length} caracteres, el limite es ${LIMITE_CARACTERES}`);
|
|
622
|
+
}
|
|
623
|
+
const hallazgos = [];
|
|
624
|
+
const plegado = plegar(texto);
|
|
625
|
+
const marcadores = marcadoresDe(plegado, texto);
|
|
626
|
+
for (const termino of TERMINOS) {
|
|
627
|
+
// Plegado y original tienen la MISMA longitud, así que los índices de uno
|
|
628
|
+
// sirven para el otro y para el cálculo de distancia al marcador.
|
|
629
|
+
const donde = termino.sobreOriginal ? texto : plegado;
|
|
630
|
+
for (const m of donde.matchAll(termino.patron)) {
|
|
631
|
+
const tramo = { desde: m.index, hasta: m.index + m[0].length };
|
|
632
|
+
if (termino.exigeMarcador && !tieneMarcadorCerca(tramo, marcadores))
|
|
633
|
+
continue;
|
|
634
|
+
hallazgos.push({
|
|
635
|
+
categoria: termino.categoria,
|
|
636
|
+
articulo: articuloDe(termino.categoria),
|
|
637
|
+
desde: tramo.desde,
|
|
638
|
+
hasta: tramo.hasta,
|
|
639
|
+
porque: termino.exigeMarcador ? PORQUE_CON_MARCADOR : PORQUE_VOCABULARIO,
|
|
640
|
+
});
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
// Identificadores: la forma sólo abre la puerta; entra el que valida.
|
|
644
|
+
for (const m of texto.matchAll(DNI)) {
|
|
645
|
+
if (!dniValido(m[1], m[2]))
|
|
646
|
+
continue;
|
|
647
|
+
hallazgos.push({
|
|
648
|
+
categoria: "identificador-nacional",
|
|
649
|
+
articulo: "9",
|
|
650
|
+
desde: m.index,
|
|
651
|
+
hasta: m.index + m[0].length,
|
|
652
|
+
porque: PORQUE_MODULO_23,
|
|
653
|
+
});
|
|
654
|
+
}
|
|
655
|
+
for (const m of texto.matchAll(NIE)) {
|
|
656
|
+
if (!nieValido(m[1], m[2], m[3]))
|
|
657
|
+
continue;
|
|
658
|
+
hallazgos.push({
|
|
659
|
+
categoria: "identificador-nacional",
|
|
660
|
+
articulo: "9",
|
|
661
|
+
desde: m.index,
|
|
662
|
+
hasta: m.index + m[0].length,
|
|
663
|
+
porque: PORQUE_MODULO_23,
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
for (const m of texto.matchAll(IBAN)) {
|
|
667
|
+
const candidato = m[1].trimEnd();
|
|
668
|
+
if (!ibanValido(candidato))
|
|
669
|
+
continue;
|
|
670
|
+
hallazgos.push({
|
|
671
|
+
categoria: "identificador-nacional",
|
|
672
|
+
articulo: "9",
|
|
673
|
+
desde: m.index,
|
|
674
|
+
hasta: m.index + candidato.length,
|
|
675
|
+
porque: PORQUE_MODULO_97,
|
|
676
|
+
});
|
|
677
|
+
}
|
|
678
|
+
for (const m of texto.matchAll(NSS)) {
|
|
679
|
+
if (!nssValido(m[1], m[2], m[3]))
|
|
680
|
+
continue;
|
|
681
|
+
hallazgos.push({
|
|
682
|
+
categoria: "identificador-nacional",
|
|
683
|
+
articulo: "9",
|
|
684
|
+
desde: m.index,
|
|
685
|
+
hasta: m.index + m[0].length,
|
|
686
|
+
porque: PORQUE_MODULO_97,
|
|
687
|
+
});
|
|
688
|
+
}
|
|
689
|
+
for (const m of texto.matchAll(MATRICULA)) {
|
|
690
|
+
hallazgos.push({
|
|
691
|
+
categoria: "identificador-nacional",
|
|
692
|
+
articulo: "9",
|
|
693
|
+
desde: m.index,
|
|
694
|
+
hasta: m.index + m[0].length,
|
|
695
|
+
porque: PORQUE_FORMA_PLACA,
|
|
696
|
+
});
|
|
697
|
+
}
|
|
698
|
+
return fundir(hallazgos);
|
|
699
|
+
}
|
|
700
|
+
/** Con lo que se sustituye cada tramo. El mismo bloque que usa `redactSensitive`. */
|
|
701
|
+
const BLOQUE = "█";
|
|
702
|
+
/**
|
|
703
|
+
* Devuelve el texto con los tramos hallados —y SÓLO ésos— sustituidos por
|
|
704
|
+
* bloques.
|
|
705
|
+
*
|
|
706
|
+
* Es lo que le falta hoy a `redactSensitive`: medido,
|
|
707
|
+
* `redactSensitive("baja por depresión, afiliado a CCOO, HIV positive",
|
|
708
|
+
* "strict")` devuelve la cadena idéntica, y esa función alimenta el libro de
|
|
709
|
+
* auditoría y el diario de edición.
|
|
710
|
+
*
|
|
711
|
+
* DOS DECISIONES, las dos deliberadas:
|
|
712
|
+
*
|
|
713
|
+
* · El bloque tiene la MISMA longitud que el tramo. Un texto tapado que
|
|
714
|
+
* encoge delata dónde estaba el dato al comparar con el original, y además
|
|
715
|
+
* rompe cualquier índice que alguien haya guardado sobre el texto.
|
|
716
|
+
* · No se escribe la categoría en el hueco. Poner «[salud]» taparía el dato y
|
|
717
|
+
* publicaría el diagnóstico: que hay información de salud sobre esta
|
|
718
|
+
* persona ya es, por sí solo, una categoría especial. La categoría va en el
|
|
719
|
+
* hallazgo, que es para el DPO; el texto tapado es para todos los demás.
|
|
720
|
+
*
|
|
721
|
+
* Un texto sin hallazgos sale idéntico byte a byte —se devuelve el mismo
|
|
722
|
+
* objeto—, y `TextoNoAnalizable` sube igual que en `categoriasEspeciales`:
|
|
723
|
+
* devolver aquí el texto sin tocar sería devolver el original en claro
|
|
724
|
+
* creyendo haberlo tapado.
|
|
725
|
+
*/
|
|
726
|
+
export function taparCategoriasEspeciales(texto) {
|
|
727
|
+
const hallazgos = categoriasEspeciales(texto);
|
|
728
|
+
if (hallazgos.length === 0)
|
|
729
|
+
return texto;
|
|
730
|
+
// Los hallazgos vienen ordenados por `desde`, pero `fundir` sólo une los de
|
|
731
|
+
// la MISMA categoría: dos categorías distintas pueden pisarse («judío» es
|
|
732
|
+
// origen étnico y religión a la vez). El cursor evita tapar dos veces el
|
|
733
|
+
// mismo trozo, que duplicaría bloques y alargaría el texto.
|
|
734
|
+
let salida = "";
|
|
735
|
+
let cursor = 0;
|
|
736
|
+
for (const h of hallazgos) {
|
|
737
|
+
if (h.hasta <= cursor)
|
|
738
|
+
continue;
|
|
739
|
+
const desde = Math.max(h.desde, cursor);
|
|
740
|
+
salida += texto.slice(cursor, desde) + BLOQUE.repeat(h.hasta - desde);
|
|
741
|
+
cursor = h.hasta;
|
|
742
|
+
}
|
|
743
|
+
return salida + texto.slice(cursor);
|
|
744
|
+
}
|
|
745
|
+
//# sourceMappingURL=categorias-especiales.js.map
|