@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,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* El libro de sesión convertido en un documento que un DPO puede archivar.
|
|
3
|
+
*
|
|
4
|
+
* El libro (`libro.ts`) es JSONL encadenado: perfecto para verificar, ilegible
|
|
5
|
+
* para quien tiene que responder a una inspección. Un delegado de protección de
|
|
6
|
+
* datos hace dos preguntas concretas y ninguna se contesta leyendo hashes:
|
|
7
|
+
*
|
|
8
|
+
* · ¿QUÉ FICHEROS se trataron? (art. 30 RGPD, registro de actividades)
|
|
9
|
+
* · ¿QUÉ SALIÓ DE LA MÁQUINA y hacia dónde? (art. 44 y siguientes)
|
|
10
|
+
*
|
|
11
|
+
* Sale Markdown y no JSON a propósito: el requisito es "un fichero que se pueda
|
|
12
|
+
* releer sin nuestro CLI", y un JSONL con hashes no lo cumple aunque
|
|
13
|
+
* técnicamente se pueda abrir. Texto plano, tablas, y las limitaciones escritas
|
|
14
|
+
* dentro del propio documento.
|
|
15
|
+
*
|
|
16
|
+
* Dos cosas que conviene no deshacer:
|
|
17
|
+
*
|
|
18
|
+
* 1. **Minimización.** Aquí no se reconstruye nada que el libro no guarde ya. El
|
|
19
|
+
* libro guarda del fichero su hash antes y después, nunca el texto, así que
|
|
20
|
+
* este informe tampoco puede tenerlo. Y por si acaso se vuelve a pasar
|
|
21
|
+
* `redactSensitive` sobre el documento entero: es el artefacto que SALE de la
|
|
22
|
+
* máquina y se archiva, y una entrada escrita antes de que existiera un patrón
|
|
23
|
+
* de redacción no puede convertirse en una fuga al exportarla.
|
|
24
|
+
* 2. **Tres estados, no dos.** "No hubo transferencias" y "no se pudo
|
|
25
|
+
* determinar" no son lo mismo, y un informe que saliera vacío en los dos casos
|
|
26
|
+
* haría pasar por limpia una sesión cuya cadena está rota. La ausencia de un
|
|
27
|
+
* registro solo prueba algo si el registro es completo y verificable: si la
|
|
28
|
+
* cadena no verifica, si el libro está vacío o si la lectura se topó con el
|
|
29
|
+
* tope, este informe dice que no lo sabe en vez de afirmar que no pasó nada.
|
|
30
|
+
*/
|
|
31
|
+
import type { EntradaDelLibro, Veredicto } from "./libro.ts";
|
|
32
|
+
/**
|
|
33
|
+
* ¿Podemos afirmar que algo NO ocurrió?
|
|
34
|
+
*
|
|
35
|
+
* Es el tipo que impide colapsar los tres estados en dos. Solo con
|
|
36
|
+
* `{ sabemos: true }` tiene sentido escribir "no hubo transferencias"; en los
|
|
37
|
+
* demás casos el informe dice qué le falta para saberlo.
|
|
38
|
+
*/
|
|
39
|
+
export type Certeza = {
|
|
40
|
+
sabemos: true;
|
|
41
|
+
} | {
|
|
42
|
+
sabemos: false;
|
|
43
|
+
porque: string;
|
|
44
|
+
};
|
|
45
|
+
export declare function certezaDe(veredicto: Veredicto, truncado: boolean): Certeza;
|
|
46
|
+
/**
|
|
47
|
+
* Rinde el informe.
|
|
48
|
+
*
|
|
49
|
+
* `entradas` debe venir de más antigua a más reciente (`libro.leer` las da al
|
|
50
|
+
* revés). `truncado` es true si la lectura se topó con su límite, porque
|
|
51
|
+
* entonces no se puede afirmar ninguna ausencia.
|
|
52
|
+
*/
|
|
53
|
+
export declare function informeParaDpo(entradas: EntradaDelLibro[], veredicto: Veredicto, truncado: boolean, ahora?: string): string;
|
|
54
|
+
//# sourceMappingURL=exportacion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportacion.d.ts","sourceRoot":"","sources":["../../../src/core/audit/exportacion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,wBAAgB,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAwB1E;AA+DD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,eAAe,EAAE,EAC3B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,OAAO,EACjB,KAAK,SAA2B,GAC9B,MAAM,CAiNR","sourcesContent":["/**\n * El libro de sesión convertido en un documento que un DPO puede archivar.\n *\n * El libro (`libro.ts`) es JSONL encadenado: perfecto para verificar, ilegible\n * para quien tiene que responder a una inspección. Un delegado de protección de\n * datos hace dos preguntas concretas y ninguna se contesta leyendo hashes:\n *\n * · ¿QUÉ FICHEROS se trataron? (art. 30 RGPD, registro de actividades)\n * · ¿QUÉ SALIÓ DE LA MÁQUINA y hacia dónde? (art. 44 y siguientes)\n *\n * Sale Markdown y no JSON a propósito: el requisito es \"un fichero que se pueda\n * releer sin nuestro CLI\", y un JSONL con hashes no lo cumple aunque\n * técnicamente se pueda abrir. Texto plano, tablas, y las limitaciones escritas\n * dentro del propio documento.\n *\n * Dos cosas que conviene no deshacer:\n *\n * 1. **Minimización.** Aquí no se reconstruye nada que el libro no guarde ya. El\n * libro guarda del fichero su hash antes y después, nunca el texto, así que\n * este informe tampoco puede tenerlo. Y por si acaso se vuelve a pasar\n * `redactSensitive` sobre el documento entero: es el artefacto que SALE de la\n * máquina y se archiva, y una entrada escrita antes de que existiera un patrón\n * de redacción no puede convertirse en una fuga al exportarla.\n * 2. **Tres estados, no dos.** \"No hubo transferencias\" y \"no se pudo\n * determinar\" no son lo mismo, y un informe que saliera vacío en los dos casos\n * haría pasar por limpia una sesión cuya cadena está rota. La ausencia de un\n * registro solo prueba algo si el registro es completo y verificable: si la\n * cadena no verifica, si el libro está vacío o si la lectura se topó con el\n * tope, este informe dice que no lo sabe en vez de afirmar que no pasó nada.\n */\n\nimport { redactSensitive } from \"../memory-engine/security.ts\";\nimport type { EntradaDelLibro, Veredicto } from \"./libro.ts\";\n\n/**\n * ¿Podemos afirmar que algo NO ocurrió?\n *\n * Es el tipo que impide colapsar los tres estados en dos. Solo con\n * `{ sabemos: true }` tiene sentido escribir \"no hubo transferencias\"; en los\n * demás casos el informe dice qué le falta para saberlo.\n */\nexport type Certeza = { sabemos: true } | { sabemos: false; porque: string };\n\nexport function certezaDe(veredicto: Veredicto, truncado: boolean): Certeza {\n\tif (truncado) {\n\t\treturn {\n\t\t\tsabemos: false,\n\t\t\tporque:\n\t\t\t\t\"la lectura del libro alcanzó su tope de entradas, así que hay registros anteriores que este informe no ha mirado.\",\n\t\t};\n\t}\n\tif (!veredicto.valido) {\n\t\treturn {\n\t\t\tsabemos: false,\n\t\t\tporque:\n\t\t\t\t`la cadena de hashes NO verifica${veredicto.alteradaEn ? ` (falla en la entrada del ${fecha(veredicto.alteradaEn)})` : \"\"}. ` +\n\t\t\t\t\"Sobre un libro alterado, la ausencia de un registro no prueba que el hecho no ocurriera: puede haberse borrado.\",\n\t\t};\n\t}\n\tif (veredicto.comprobadas === 0) {\n\t\treturn {\n\t\t\tsabemos: false,\n\t\t\tporque:\n\t\t\t\t\"el libro está vacío. No hay registro de actividad, que no es lo mismo que un registro de que no hubo actividad.\",\n\t\t};\n\t}\n\treturn { sabemos: true };\n}\n\n/** Escapa lo que va dentro de una celda para que no rompa la tabla. */\nfunction celda(valor: unknown): string {\n\tif (valor === null || valor === undefined || valor === \"\") return \"—\";\n\treturn String(valor)\n\t\t.replace(/\\|/g, \"\\\\|\")\n\t\t.replace(/[\\r\\n]+/g, \" \");\n}\n\nfunction tabla(cabeceras: string[], filas: string[][]): string {\n\treturn [\n\t\t`| ${cabeceras.join(\" | \")} |`,\n\t\t`| ${cabeceras.map(() => \"---\").join(\" | \")} |`,\n\t\t...filas.map((f) => `| ${f.map(celda).join(\" | \")} |`),\n\t].join(\"\\n\");\n}\n\n/**\n * Una sección con su tercer estado.\n *\n * `nadaOcurrio` es la frase afirmativa (\"No hubo transferencias\"); solo se\n * imprime cuando la certeza lo permite. Si no, se imprime por qué no se sabe.\n */\nfunction seccion(\n\ttitulo: string,\n\tbase: string,\n\tcabeceras: string[],\n\tfilas: string[][],\n\tnadaOcurrio: string,\n\tcerteza: Certeza,\n\t/**\n\t * Hasta dónde llega la observación de esta sección. Se rinde SIEMPRE.\n\t *\n\t * Antes el alcance viajaba dentro de `nadaOcurrio`, que solo se imprime\n\t * cuando la tabla está vacía. Es decir: la advertencia de «hay caminos que no\n\t * miro» desaparecía justo cuando había datos, y el DPO leía una tabla de\n\t * transferencias con pinta de completa y ninguna salvedad. La salvedad\n\t * importa MÁS con filas que sin ellas: sin filas se está afirmando una\n\t * ausencia, con filas se está insinuando una lista exhaustiva.\n\t */\n\talcance?: string,\n): string {\n\tconst cuerpo =\n\t\tfilas.length > 0\n\t\t\t? tabla(cabeceras, filas)\n\t\t\t: certeza.sabemos\n\t\t\t\t? `**${nadaOcurrio}.** El libro está completo y su cadena verifica, así que esta ausencia es un dato, no un hueco.`\n\t\t\t\t: `**No se pudo determinar.** No se puede afirmar que ${nadaOcurrio.toLowerCase()}: ${certeza.porque}`;\n\treturn `## ${titulo}\\n\\n_${base}_\\n\\n${cuerpo}${alcance ? `\\n\\n> **Alcance de esta sección.** ${alcance}` : \"\"}`;\n}\n\n/** Fecha y hora sin la parte de milisegundos, que a un DPO no le dice nada. */\nfunction fecha(ts: string): string {\n\treturn ts.replace(\"T\", \" \").replace(/\\.\\d+Z$/, \"Z\");\n}\n\ntype Suceso = Record<string, unknown>;\n\nfunction esTipo(e: EntradaDelLibro, tipo: string): boolean {\n\treturn e.suceso.tipo === tipo;\n}\n\n/**\n * Rinde el informe.\n *\n * `entradas` debe venir de más antigua a más reciente (`libro.leer` las da al\n * revés). `truncado` es true si la lectura se topó con su límite, porque\n * entonces no se puede afirmar ninguna ausencia.\n */\nexport function informeParaDpo(\n\tentradas: EntradaDelLibro[],\n\tveredicto: Veredicto,\n\ttruncado: boolean,\n\tahora = new Date().toISOString(),\n): string {\n\tconst certeza = certezaDe(veredicto, truncado);\n\tconst sesiones = [...new Set(entradas.map((e) => e.sesion))];\n\n\tconst integridad = veredicto.valido\n\t\t? `**Cadena de hashes ÍNTEGRA** — ${veredicto.comprobadas} entrada(s) reverificadas de punta a punta.`\n\t\t: `**CADENA ALTERADA** tras ${veredicto.comprobadas} entrada(s) correctas` +\n\t\t\t(veredicto.alteradaEn ? `, en la del ${fecha(veredicto.alteradaEn)}` : \"\") +\n\t\t\t(veredicto.ficheroAlterado ? ` (fichero \\`sesion/${veredicto.ficheroAlterado}\\`)` : \"\") +\n\t\t\t\". Las entradas anteriores a esa siguen siendo fiables; a partir de ahí, no.\";\n\n\tconst partes: string[] = [\n\t\t\"# Registro de actividades de tratamiento — Ada\",\n\t\t[\n\t\t\t`- **Generado:** ${fecha(ahora)}`,\n\t\t\t`- **Entradas del libro:** ${entradas.length}${truncado ? \" (lectura truncada por el tope)\" : \"\"}`,\n\t\t\t`- **Sesiones cubiertas:** ${sesiones.length > 0 ? sesiones.map((s) => `\\`${s}\\``).join(\", \") : \"ninguna\"}`,\n\t\t\t`- **Periodo:** ${entradas.length > 0 ? `${fecha(entradas[0].ts)} → ${fecha(entradas[entradas.length - 1].ts)}` : \"—\"}`,\n\t\t].join(\"\\n\"),\n\t\t`## Prueba de integridad\\n\\n${integridad}`,\n\n\t\tseccion(\n\t\t\t\"1. Ficheros tratados\",\n\t\t\t\"Art. 30 RGPD — registro de actividades de tratamiento. Del fichero consta su HASH antes y después, nunca su contenido.\",\n\t\t\t[\"Fecha\", \"Fichero\", \"Hash antes\", \"Hash después\", \"Vía\", \"Base\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"fichero\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [\n\t\t\t\t\t\tfecha(e.ts),\n\t\t\t\t\t\tString(s.ruta ?? \"\"),\n\t\t\t\t\t\ts.antes === null ? \"(no existía)\" : celda(s.antes),\n\t\t\t\t\t\ts.despues === null ? \"(borrado)\" : celda(s.despues),\n\t\t\t\t\t\tcelda(s.tool),\n\t\t\t\t\t\t\"ejecución solicitada por el usuario en la sesión\",\n\t\t\t\t\t];\n\t\t\t\t}),\n\t\t\t\"No se trató ningún fichero\",\n\t\t\tcerteza,\n\t\t),\n\n\t\tseccion(\n\t\t\t\"2. Transferencias de datos fuera de la máquina\",\n\t\t\t\"Art. 44 y ss. RGPD — destinatarios. Consta el DOMINIO de destino; nunca la ruta ni los parámetros, que es donde viajan los tokens.\",\n\t\t\t[\"Fecha\", \"Destino\", \"Resultado\", \"Motivo\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"red\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [fecha(e.ts), String(s.dominio ?? \"\"), s.permitido ? \"permitida\" : \"BLOQUEADA\", celda(s.motivo)];\n\t\t\t\t}),\n\t\t\t// La frase dice su ALCANCE, y no es un matiz de estilo.\n\t\t\t//\n\t\t\t// El `fetchImpl` vigilado que produce estos sucesos lo reciben el fetch\n\t\t\t// genérico, los scrapers y los proveedores de búsqueda — las tools web.\n\t\t\t// NO lo reciben (comprobado con `grep -c anotarRed`, cero en los tres):\n\t\t\t// el cliente MCP (`core/mcp/client.ts`, que sí acepta `fetchImpl` y hoy\n\t\t\t// no se le pasa), el broker de blobs y la API de Telegram.\n\t\t\t//\n\t\t\t// Un DPO estricto diría que hablar con un MCP remoto ES una\n\t\t\t// transferencia, y tendría razón. Escribir \"No hubo transferencias\" a\n\t\t\t// secas sería afirmar una ausencia que este registro no puede sostener:\n\t\t\t// «no lo he mirado» vendido como «no hay», en el documento donde eso se\n\t\t\t// paga más caro. Mientras la cobertura no sea completa, la frase nombra\n\t\t\t// lo que sí cubre y quien lea el informe puede juzgar el resto.\n\t\t\t// La frase sigue diciendo su ALCANCE, y sigue sin ser un matiz de estilo.\n\t\t\t//\n\t\t\t// Cubierto: el fetch genérico, los scrapers, los proveedores de búsqueda\n\t\t\t// y —desde `core/web/registro-red.ts`— el cliente MCP, que es el que un\n\t\t\t// DPO preguntaría primero porque habla con servidores de terceros.\n\t\t\t//\n\t\t\t// Fuera todavía, MEDIDO recorriendo cada `fetch(` del código y no\n\t\t\t// copiado del comentario anterior —que decía «el broker de ficheros\n\t\t\t// grandes y Telegram» y no era la lista real—:\n\t\t\t//\n\t\t\t// modes/interactive/interactive-mode.ts:1326 aviso a pi.dev\n\t\t\t// extensions/llama/huggingface.ts:76 descarga de modelos\n\t\t\t// extensions/llama/client.ts:171,216 servidor llama\n\t\t\t// core/credenciales/cliente.ts:62,79 broker de credenciales\n\t\t\t// cli/telemetria-command.ts colector OTLP (--enviar)\n\t\t\t//\n\t\t\t// (`computer/motor/{bridge,cdp}.ts` y `utils/management-http.ts` van a\n\t\t\t// 127.0.0.1: no salen de la máquina y no son transferencias.)\n\t\t\t//\n\t\t\t// Mientras queden caminos sin cubrir, la salvedad nombra lo que sí\n\t\t\t// sostiene, y se rinde TAMBIÉN cuando la tabla tiene filas: con datos\n\t\t\t// se está insinuando una lista exhaustiva, que es peor que declarar una\n\t\t\t// ausencia.\n\t\t\t\"No hubo transferencias por los caminos que este registro observa\",\n\t\t\tcerteza,\n\t\t\t\"esta tabla cubre las herramientas web (fetch, scrapers y buscadores) y los servidores \" +\n\t\t\t\t\"MCP. Quedan FUERA, medido recorriendo cada llamada a `fetch` del código: el aviso de \" +\n\t\t\t\t\"instalación a `pi.dev` (activado por defecto; se apaga con `PI_OFFLINE`, `PI_TELEMETRY=0` \" +\n\t\t\t\t\"o `enableInstallTelemetry: false`), las descargas de modelos de Hugging Face, el \" +\n\t\t\t\t\"servidor llama, el broker de credenciales y el envío al colector OTLP de \" +\n\t\t\t\t\"`ada-cli telemetria --enviar` (que manda forma y nunca contenido, pero sale igual de \" +\n\t\t\t\t\"esta máquina). Sobre esos caminos este informe no afirma \" +\n\t\t\t\t\"nada, ni que hubo transferencias ni que no las hubo. Una lista que parece exhaustiva y \" +\n\t\t\t\t\"no lo es engaña más que una ausencia declarada.\",\n\t\t),\n\n\t\tseccion(\n\t\t\t\"3. Modelos invocados (encargados del tratamiento)\",\n\t\t\t\"Art. 28 RGPD — cada llamada a un modelo remoto es un tratamiento por cuenta de un tercero. Consta el proveedor y el volumen, nunca el contenido del prompt.\",\n\t\t\t[\"Fecha\", \"Proveedor\", \"Modelo\", \"Tokens entrada\", \"Tokens salida\", \"Fin\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"modelo\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [\n\t\t\t\t\t\tfecha(e.ts),\n\t\t\t\t\t\tcelda(s.proveedor),\n\t\t\t\t\t\tcelda(s.modelo),\n\t\t\t\t\t\tcelda(s.entrada),\n\t\t\t\t\t\tcelda(s.salida),\n\t\t\t\t\t\tcelda(s.motivoParada),\n\t\t\t\t\t];\n\t\t\t\t}),\n\t\t\t\"No se invocó ningún modelo\",\n\t\t\tcerteza,\n\t\t),\n\n\t\tseccion(\n\t\t\t\"4. Comandos ejecutados\",\n\t\t\t\"Trazabilidad de la actuación automatizada. `origen` distingue lo que decidió el agente de lo que tecleó la persona.\",\n\t\t\t[\"Fecha\", \"Comando\", \"Código\", \"Origen\", \"Encierro\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"comando\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\tconst argv = Array.isArray(s.argv) ? s.argv.join(\" \") : \"\";\n\t\t\t\t\treturn [\n\t\t\t\t\t\tfecha(e.ts),\n\t\t\t\t\t\t`\\`${celda(argv.slice(0, 120))}\\``,\n\t\t\t\t\t\tcelda(s.codigo),\n\t\t\t\t\t\ts.origen === \"usuario\" ? \"usuario\" : \"agente\",\n\t\t\t\t\t\tcelda(s.sandbox),\n\t\t\t\t\t];\n\t\t\t\t}),\n\t\t\t\"No se ejecutó ningún comando\",\n\t\t\tcerteza,\n\t\t),\n\n\t\tseccion(\n\t\t\t\"5. Herramientas y decisiones de política\",\n\t\t\t\"Art. 12 AI Act — qué se permitió y con qué base. `Base` es la regla de la política de aprobación que dejó pasar la llamada.\",\n\t\t\t[\"Fecha\", \"Herramienta\", \"Resultado\", \"Decisión\", \"Base\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"tool\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [fecha(e.ts), celda(s.nombre), s.ok ? \"ok\" : \"ERROR\", celda(s.decision), celda(s.motivo)];\n\t\t\t\t}),\n\t\t\t\"No se ejecutó ninguna herramienta\",\n\t\t\tcerteza,\n\t\t),\n\n\t\tseccion(\n\t\t\t\"6. Credenciales utilizadas\",\n\t\t\t\"Quién usó qué cuenta y cuándo. Consta el identificador de la credencial, jamás su valor.\",\n\t\t\t[\"Fecha\", \"Acción\", \"Proveedor\", \"Credencial\", \"Resultado\", \"Cliente\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"credencial\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [\n\t\t\t\t\t\tfecha(e.ts),\n\t\t\t\t\t\tcelda(s.accion),\n\t\t\t\t\t\tcelda(s.proveedor),\n\t\t\t\t\t\ts.credencialId === null ? \"(ninguna activa)\" : celda(s.credencialId),\n\t\t\t\t\t\tcelda(s.resultado),\n\t\t\t\t\t\tcelda(s.cliente),\n\t\t\t\t\t];\n\t\t\t\t}),\n\t\t\t\"No se utilizó ninguna credencial\",\n\t\t\tcerteza,\n\t\t),\n\n\t\t[\n\t\t\t\"## Minimización de datos\",\n\t\t\t\"\",\n\t\t\t\"Este documento contiene la FORMA de lo que ocurrió, no su contenido. En concreto NO incluye:\",\n\t\t\t\"\",\n\t\t\t\"- el contenido de ningún fichero del usuario (solo el hash SHA-256 truncado de antes y después);\",\n\t\t\t\"- el texto de ningún prompt ni respuesta del modelo (solo el recuento de tokens);\",\n\t\t\t\"- ninguna credencial, clave ni token (solo el identificador de la credencial usada);\",\n\t\t\t\"- ninguna ruta ni parámetro de las URL a las que se salió (solo el dominio de destino).\",\n\t\t\t\"\",\n\t\t\t\"Un registro de cumplimiento que copiara los datos tratados sería un segundo almacén de justo\",\n\t\t\t\"aquello que el RGPD manda minimizar.\",\n\t\t].join(\"\\n\"),\n\n\t\t[\n\t\t\t\"## Qué NO prueba este documento\",\n\t\t\t\"\",\n\t\t\t\"- La cadena de hashes prueba **integridad interna** (que el libro no se editó ni reordenó), no **procedencia**:\",\n\t\t\t\" no acredita quién lo generó ni en qué máquina. Para no-repudio hace falta firma con clave gestionada (HSM).\",\n\t\t\t\"- Borrar el fichero de una sesión completa no lo detecta la cadena; sí detecta cualquier modificación dentro de una sesión.\",\n\t\t\t\"- El informe refleja lo que el agente registró. No es una auditoría independiente del código resultante.\",\n\t\t].join(\"\\n\"),\n\t];\n\n\t// Segunda pasada de redacción sobre el documento ya rendido. El libro ya\n\t// redacta al escribir, pero este es el artefacto que SALE de la máquina y se\n\t// archiva: una entrada anotada antes de que existiera un patrón no puede\n\t// convertirse en una fuga al exportarla. Sobre Markdown no hay nada que\n\t// romper, así que lo peor que puede pasar es que redacte de más.\n\treturn redactSensitive(`${partes.join(\"\\n\\n\")}\\n`, \"strict\");\n}\n"]}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* El libro de sesión convertido en un documento que un DPO puede archivar.
|
|
3
|
+
*
|
|
4
|
+
* El libro (`libro.ts`) es JSONL encadenado: perfecto para verificar, ilegible
|
|
5
|
+
* para quien tiene que responder a una inspección. Un delegado de protección de
|
|
6
|
+
* datos hace dos preguntas concretas y ninguna se contesta leyendo hashes:
|
|
7
|
+
*
|
|
8
|
+
* · ¿QUÉ FICHEROS se trataron? (art. 30 RGPD, registro de actividades)
|
|
9
|
+
* · ¿QUÉ SALIÓ DE LA MÁQUINA y hacia dónde? (art. 44 y siguientes)
|
|
10
|
+
*
|
|
11
|
+
* Sale Markdown y no JSON a propósito: el requisito es "un fichero que se pueda
|
|
12
|
+
* releer sin nuestro CLI", y un JSONL con hashes no lo cumple aunque
|
|
13
|
+
* técnicamente se pueda abrir. Texto plano, tablas, y las limitaciones escritas
|
|
14
|
+
* dentro del propio documento.
|
|
15
|
+
*
|
|
16
|
+
* Dos cosas que conviene no deshacer:
|
|
17
|
+
*
|
|
18
|
+
* 1. **Minimización.** Aquí no se reconstruye nada que el libro no guarde ya. El
|
|
19
|
+
* libro guarda del fichero su hash antes y después, nunca el texto, así que
|
|
20
|
+
* este informe tampoco puede tenerlo. Y por si acaso se vuelve a pasar
|
|
21
|
+
* `redactSensitive` sobre el documento entero: es el artefacto que SALE de la
|
|
22
|
+
* máquina y se archiva, y una entrada escrita antes de que existiera un patrón
|
|
23
|
+
* de redacción no puede convertirse en una fuga al exportarla.
|
|
24
|
+
* 2. **Tres estados, no dos.** "No hubo transferencias" y "no se pudo
|
|
25
|
+
* determinar" no son lo mismo, y un informe que saliera vacío en los dos casos
|
|
26
|
+
* haría pasar por limpia una sesión cuya cadena está rota. La ausencia de un
|
|
27
|
+
* registro solo prueba algo si el registro es completo y verificable: si la
|
|
28
|
+
* cadena no verifica, si el libro está vacío o si la lectura se topó con el
|
|
29
|
+
* tope, este informe dice que no lo sabe en vez de afirmar que no pasó nada.
|
|
30
|
+
*/
|
|
31
|
+
import { redactSensitive } from "../memory-engine/security.js";
|
|
32
|
+
export function certezaDe(veredicto, truncado) {
|
|
33
|
+
if (truncado) {
|
|
34
|
+
return {
|
|
35
|
+
sabemos: false,
|
|
36
|
+
porque: "la lectura del libro alcanzó su tope de entradas, así que hay registros anteriores que este informe no ha mirado.",
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
if (!veredicto.valido) {
|
|
40
|
+
return {
|
|
41
|
+
sabemos: false,
|
|
42
|
+
porque: `la cadena de hashes NO verifica${veredicto.alteradaEn ? ` (falla en la entrada del ${fecha(veredicto.alteradaEn)})` : ""}. ` +
|
|
43
|
+
"Sobre un libro alterado, la ausencia de un registro no prueba que el hecho no ocurriera: puede haberse borrado.",
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
if (veredicto.comprobadas === 0) {
|
|
47
|
+
return {
|
|
48
|
+
sabemos: false,
|
|
49
|
+
porque: "el libro está vacío. No hay registro de actividad, que no es lo mismo que un registro de que no hubo actividad.",
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return { sabemos: true };
|
|
53
|
+
}
|
|
54
|
+
/** Escapa lo que va dentro de una celda para que no rompa la tabla. */
|
|
55
|
+
function celda(valor) {
|
|
56
|
+
if (valor === null || valor === undefined || valor === "")
|
|
57
|
+
return "—";
|
|
58
|
+
return String(valor)
|
|
59
|
+
.replace(/\|/g, "\\|")
|
|
60
|
+
.replace(/[\r\n]+/g, " ");
|
|
61
|
+
}
|
|
62
|
+
function tabla(cabeceras, filas) {
|
|
63
|
+
return [
|
|
64
|
+
`| ${cabeceras.join(" | ")} |`,
|
|
65
|
+
`| ${cabeceras.map(() => "---").join(" | ")} |`,
|
|
66
|
+
...filas.map((f) => `| ${f.map(celda).join(" | ")} |`),
|
|
67
|
+
].join("\n");
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Una sección con su tercer estado.
|
|
71
|
+
*
|
|
72
|
+
* `nadaOcurrio` es la frase afirmativa ("No hubo transferencias"); solo se
|
|
73
|
+
* imprime cuando la certeza lo permite. Si no, se imprime por qué no se sabe.
|
|
74
|
+
*/
|
|
75
|
+
function seccion(titulo, base, cabeceras, filas, nadaOcurrio, certeza,
|
|
76
|
+
/**
|
|
77
|
+
* Hasta dónde llega la observación de esta sección. Se rinde SIEMPRE.
|
|
78
|
+
*
|
|
79
|
+
* Antes el alcance viajaba dentro de `nadaOcurrio`, que solo se imprime
|
|
80
|
+
* cuando la tabla está vacía. Es decir: la advertencia de «hay caminos que no
|
|
81
|
+
* miro» desaparecía justo cuando había datos, y el DPO leía una tabla de
|
|
82
|
+
* transferencias con pinta de completa y ninguna salvedad. La salvedad
|
|
83
|
+
* importa MÁS con filas que sin ellas: sin filas se está afirmando una
|
|
84
|
+
* ausencia, con filas se está insinuando una lista exhaustiva.
|
|
85
|
+
*/
|
|
86
|
+
alcance) {
|
|
87
|
+
const cuerpo = filas.length > 0
|
|
88
|
+
? tabla(cabeceras, filas)
|
|
89
|
+
: certeza.sabemos
|
|
90
|
+
? `**${nadaOcurrio}.** El libro está completo y su cadena verifica, así que esta ausencia es un dato, no un hueco.`
|
|
91
|
+
: `**No se pudo determinar.** No se puede afirmar que ${nadaOcurrio.toLowerCase()}: ${certeza.porque}`;
|
|
92
|
+
return `## ${titulo}\n\n_${base}_\n\n${cuerpo}${alcance ? `\n\n> **Alcance de esta sección.** ${alcance}` : ""}`;
|
|
93
|
+
}
|
|
94
|
+
/** Fecha y hora sin la parte de milisegundos, que a un DPO no le dice nada. */
|
|
95
|
+
function fecha(ts) {
|
|
96
|
+
return ts.replace("T", " ").replace(/\.\d+Z$/, "Z");
|
|
97
|
+
}
|
|
98
|
+
function esTipo(e, tipo) {
|
|
99
|
+
return e.suceso.tipo === tipo;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Rinde el informe.
|
|
103
|
+
*
|
|
104
|
+
* `entradas` debe venir de más antigua a más reciente (`libro.leer` las da al
|
|
105
|
+
* revés). `truncado` es true si la lectura se topó con su límite, porque
|
|
106
|
+
* entonces no se puede afirmar ninguna ausencia.
|
|
107
|
+
*/
|
|
108
|
+
export function informeParaDpo(entradas, veredicto, truncado, ahora = new Date().toISOString()) {
|
|
109
|
+
const certeza = certezaDe(veredicto, truncado);
|
|
110
|
+
const sesiones = [...new Set(entradas.map((e) => e.sesion))];
|
|
111
|
+
const integridad = veredicto.valido
|
|
112
|
+
? `**Cadena de hashes ÍNTEGRA** — ${veredicto.comprobadas} entrada(s) reverificadas de punta a punta.`
|
|
113
|
+
: `**CADENA ALTERADA** tras ${veredicto.comprobadas} entrada(s) correctas` +
|
|
114
|
+
(veredicto.alteradaEn ? `, en la del ${fecha(veredicto.alteradaEn)}` : "") +
|
|
115
|
+
(veredicto.ficheroAlterado ? ` (fichero \`sesion/${veredicto.ficheroAlterado}\`)` : "") +
|
|
116
|
+
". Las entradas anteriores a esa siguen siendo fiables; a partir de ahí, no.";
|
|
117
|
+
const partes = [
|
|
118
|
+
"# Registro de actividades de tratamiento — Ada",
|
|
119
|
+
[
|
|
120
|
+
`- **Generado:** ${fecha(ahora)}`,
|
|
121
|
+
`- **Entradas del libro:** ${entradas.length}${truncado ? " (lectura truncada por el tope)" : ""}`,
|
|
122
|
+
`- **Sesiones cubiertas:** ${sesiones.length > 0 ? sesiones.map((s) => `\`${s}\``).join(", ") : "ninguna"}`,
|
|
123
|
+
`- **Periodo:** ${entradas.length > 0 ? `${fecha(entradas[0].ts)} → ${fecha(entradas[entradas.length - 1].ts)}` : "—"}`,
|
|
124
|
+
].join("\n"),
|
|
125
|
+
`## Prueba de integridad\n\n${integridad}`,
|
|
126
|
+
seccion("1. Ficheros tratados", "Art. 30 RGPD — registro de actividades de tratamiento. Del fichero consta su HASH antes y después, nunca su contenido.", ["Fecha", "Fichero", "Hash antes", "Hash después", "Vía", "Base"], entradas
|
|
127
|
+
.filter((e) => esTipo(e, "fichero"))
|
|
128
|
+
.map((e) => {
|
|
129
|
+
const s = e.suceso;
|
|
130
|
+
return [
|
|
131
|
+
fecha(e.ts),
|
|
132
|
+
String(s.ruta ?? ""),
|
|
133
|
+
s.antes === null ? "(no existía)" : celda(s.antes),
|
|
134
|
+
s.despues === null ? "(borrado)" : celda(s.despues),
|
|
135
|
+
celda(s.tool),
|
|
136
|
+
"ejecución solicitada por el usuario en la sesión",
|
|
137
|
+
];
|
|
138
|
+
}), "No se trató ningún fichero", certeza),
|
|
139
|
+
seccion("2. Transferencias de datos fuera de la máquina", "Art. 44 y ss. RGPD — destinatarios. Consta el DOMINIO de destino; nunca la ruta ni los parámetros, que es donde viajan los tokens.", ["Fecha", "Destino", "Resultado", "Motivo"], entradas
|
|
140
|
+
.filter((e) => esTipo(e, "red"))
|
|
141
|
+
.map((e) => {
|
|
142
|
+
const s = e.suceso;
|
|
143
|
+
return [fecha(e.ts), String(s.dominio ?? ""), s.permitido ? "permitida" : "BLOQUEADA", celda(s.motivo)];
|
|
144
|
+
}),
|
|
145
|
+
// La frase dice su ALCANCE, y no es un matiz de estilo.
|
|
146
|
+
//
|
|
147
|
+
// El `fetchImpl` vigilado que produce estos sucesos lo reciben el fetch
|
|
148
|
+
// genérico, los scrapers y los proveedores de búsqueda — las tools web.
|
|
149
|
+
// NO lo reciben (comprobado con `grep -c anotarRed`, cero en los tres):
|
|
150
|
+
// el cliente MCP (`core/mcp/client.ts`, que sí acepta `fetchImpl` y hoy
|
|
151
|
+
// no se le pasa), el broker de blobs y la API de Telegram.
|
|
152
|
+
//
|
|
153
|
+
// Un DPO estricto diría que hablar con un MCP remoto ES una
|
|
154
|
+
// transferencia, y tendría razón. Escribir "No hubo transferencias" a
|
|
155
|
+
// secas sería afirmar una ausencia que este registro no puede sostener:
|
|
156
|
+
// «no lo he mirado» vendido como «no hay», en el documento donde eso se
|
|
157
|
+
// paga más caro. Mientras la cobertura no sea completa, la frase nombra
|
|
158
|
+
// lo que sí cubre y quien lea el informe puede juzgar el resto.
|
|
159
|
+
// La frase sigue diciendo su ALCANCE, y sigue sin ser un matiz de estilo.
|
|
160
|
+
//
|
|
161
|
+
// Cubierto: el fetch genérico, los scrapers, los proveedores de búsqueda
|
|
162
|
+
// y —desde `core/web/registro-red.ts`— el cliente MCP, que es el que un
|
|
163
|
+
// DPO preguntaría primero porque habla con servidores de terceros.
|
|
164
|
+
//
|
|
165
|
+
// Fuera todavía, MEDIDO recorriendo cada `fetch(` del código y no
|
|
166
|
+
// copiado del comentario anterior —que decía «el broker de ficheros
|
|
167
|
+
// grandes y Telegram» y no era la lista real—:
|
|
168
|
+
//
|
|
169
|
+
// modes/interactive/interactive-mode.ts:1326 aviso a pi.dev
|
|
170
|
+
// extensions/llama/huggingface.ts:76 descarga de modelos
|
|
171
|
+
// extensions/llama/client.ts:171,216 servidor llama
|
|
172
|
+
// core/credenciales/cliente.ts:62,79 broker de credenciales
|
|
173
|
+
// cli/telemetria-command.ts colector OTLP (--enviar)
|
|
174
|
+
//
|
|
175
|
+
// (`computer/motor/{bridge,cdp}.ts` y `utils/management-http.ts` van a
|
|
176
|
+
// 127.0.0.1: no salen de la máquina y no son transferencias.)
|
|
177
|
+
//
|
|
178
|
+
// Mientras queden caminos sin cubrir, la salvedad nombra lo que sí
|
|
179
|
+
// sostiene, y se rinde TAMBIÉN cuando la tabla tiene filas: con datos
|
|
180
|
+
// se está insinuando una lista exhaustiva, que es peor que declarar una
|
|
181
|
+
// ausencia.
|
|
182
|
+
"No hubo transferencias por los caminos que este registro observa", certeza, "esta tabla cubre las herramientas web (fetch, scrapers y buscadores) y los servidores " +
|
|
183
|
+
"MCP. Quedan FUERA, medido recorriendo cada llamada a `fetch` del código: el aviso de " +
|
|
184
|
+
"instalación a `pi.dev` (activado por defecto; se apaga con `PI_OFFLINE`, `PI_TELEMETRY=0` " +
|
|
185
|
+
"o `enableInstallTelemetry: false`), las descargas de modelos de Hugging Face, el " +
|
|
186
|
+
"servidor llama, el broker de credenciales y el envío al colector OTLP de " +
|
|
187
|
+
"`ada-cli telemetria --enviar` (que manda forma y nunca contenido, pero sale igual de " +
|
|
188
|
+
"esta máquina). Sobre esos caminos este informe no afirma " +
|
|
189
|
+
"nada, ni que hubo transferencias ni que no las hubo. Una lista que parece exhaustiva y " +
|
|
190
|
+
"no lo es engaña más que una ausencia declarada."),
|
|
191
|
+
seccion("3. Modelos invocados (encargados del tratamiento)", "Art. 28 RGPD — cada llamada a un modelo remoto es un tratamiento por cuenta de un tercero. Consta el proveedor y el volumen, nunca el contenido del prompt.", ["Fecha", "Proveedor", "Modelo", "Tokens entrada", "Tokens salida", "Fin"], entradas
|
|
192
|
+
.filter((e) => esTipo(e, "modelo"))
|
|
193
|
+
.map((e) => {
|
|
194
|
+
const s = e.suceso;
|
|
195
|
+
return [
|
|
196
|
+
fecha(e.ts),
|
|
197
|
+
celda(s.proveedor),
|
|
198
|
+
celda(s.modelo),
|
|
199
|
+
celda(s.entrada),
|
|
200
|
+
celda(s.salida),
|
|
201
|
+
celda(s.motivoParada),
|
|
202
|
+
];
|
|
203
|
+
}), "No se invocó ningún modelo", certeza),
|
|
204
|
+
seccion("4. Comandos ejecutados", "Trazabilidad de la actuación automatizada. `origen` distingue lo que decidió el agente de lo que tecleó la persona.", ["Fecha", "Comando", "Código", "Origen", "Encierro"], entradas
|
|
205
|
+
.filter((e) => esTipo(e, "comando"))
|
|
206
|
+
.map((e) => {
|
|
207
|
+
const s = e.suceso;
|
|
208
|
+
const argv = Array.isArray(s.argv) ? s.argv.join(" ") : "";
|
|
209
|
+
return [
|
|
210
|
+
fecha(e.ts),
|
|
211
|
+
`\`${celda(argv.slice(0, 120))}\``,
|
|
212
|
+
celda(s.codigo),
|
|
213
|
+
s.origen === "usuario" ? "usuario" : "agente",
|
|
214
|
+
celda(s.sandbox),
|
|
215
|
+
];
|
|
216
|
+
}), "No se ejecutó ningún comando", certeza),
|
|
217
|
+
seccion("5. Herramientas y decisiones de política", "Art. 12 AI Act — qué se permitió y con qué base. `Base` es la regla de la política de aprobación que dejó pasar la llamada.", ["Fecha", "Herramienta", "Resultado", "Decisión", "Base"], entradas
|
|
218
|
+
.filter((e) => esTipo(e, "tool"))
|
|
219
|
+
.map((e) => {
|
|
220
|
+
const s = e.suceso;
|
|
221
|
+
return [fecha(e.ts), celda(s.nombre), s.ok ? "ok" : "ERROR", celda(s.decision), celda(s.motivo)];
|
|
222
|
+
}), "No se ejecutó ninguna herramienta", certeza),
|
|
223
|
+
seccion("6. Credenciales utilizadas", "Quién usó qué cuenta y cuándo. Consta el identificador de la credencial, jamás su valor.", ["Fecha", "Acción", "Proveedor", "Credencial", "Resultado", "Cliente"], entradas
|
|
224
|
+
.filter((e) => esTipo(e, "credencial"))
|
|
225
|
+
.map((e) => {
|
|
226
|
+
const s = e.suceso;
|
|
227
|
+
return [
|
|
228
|
+
fecha(e.ts),
|
|
229
|
+
celda(s.accion),
|
|
230
|
+
celda(s.proveedor),
|
|
231
|
+
s.credencialId === null ? "(ninguna activa)" : celda(s.credencialId),
|
|
232
|
+
celda(s.resultado),
|
|
233
|
+
celda(s.cliente),
|
|
234
|
+
];
|
|
235
|
+
}), "No se utilizó ninguna credencial", certeza),
|
|
236
|
+
[
|
|
237
|
+
"## Minimización de datos",
|
|
238
|
+
"",
|
|
239
|
+
"Este documento contiene la FORMA de lo que ocurrió, no su contenido. En concreto NO incluye:",
|
|
240
|
+
"",
|
|
241
|
+
"- el contenido de ningún fichero del usuario (solo el hash SHA-256 truncado de antes y después);",
|
|
242
|
+
"- el texto de ningún prompt ni respuesta del modelo (solo el recuento de tokens);",
|
|
243
|
+
"- ninguna credencial, clave ni token (solo el identificador de la credencial usada);",
|
|
244
|
+
"- ninguna ruta ni parámetro de las URL a las que se salió (solo el dominio de destino).",
|
|
245
|
+
"",
|
|
246
|
+
"Un registro de cumplimiento que copiara los datos tratados sería un segundo almacén de justo",
|
|
247
|
+
"aquello que el RGPD manda minimizar.",
|
|
248
|
+
].join("\n"),
|
|
249
|
+
[
|
|
250
|
+
"## Qué NO prueba este documento",
|
|
251
|
+
"",
|
|
252
|
+
"- La cadena de hashes prueba **integridad interna** (que el libro no se editó ni reordenó), no **procedencia**:",
|
|
253
|
+
" no acredita quién lo generó ni en qué máquina. Para no-repudio hace falta firma con clave gestionada (HSM).",
|
|
254
|
+
"- Borrar el fichero de una sesión completa no lo detecta la cadena; sí detecta cualquier modificación dentro de una sesión.",
|
|
255
|
+
"- El informe refleja lo que el agente registró. No es una auditoría independiente del código resultante.",
|
|
256
|
+
].join("\n"),
|
|
257
|
+
];
|
|
258
|
+
// Segunda pasada de redacción sobre el documento ya rendido. El libro ya
|
|
259
|
+
// redacta al escribir, pero este es el artefacto que SALE de la máquina y se
|
|
260
|
+
// archiva: una entrada anotada antes de que existiera un patrón no puede
|
|
261
|
+
// convertirse en una fuga al exportarla. Sobre Markdown no hay nada que
|
|
262
|
+
// romper, así que lo peor que puede pasar es que redacte de más.
|
|
263
|
+
return redactSensitive(`${partes.join("\n\n")}\n`, "strict");
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=exportacion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportacion.js","sourceRoot":"","sources":["../../../src/core/audit/exportacion.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * El libro de sesión convertido en un documento que un DPO puede archivar.\n *\n * El libro (`libro.ts`) es JSONL encadenado: perfecto para verificar, ilegible\n * para quien tiene que responder a una inspección. Un delegado de protección de\n * datos hace dos preguntas concretas y ninguna se contesta leyendo hashes:\n *\n * · ¿QUÉ FICHEROS se trataron? (art. 30 RGPD, registro de actividades)\n * · ¿QUÉ SALIÓ DE LA MÁQUINA y hacia dónde? (art. 44 y siguientes)\n *\n * Sale Markdown y no JSON a propósito: el requisito es \"un fichero que se pueda\n * releer sin nuestro CLI\", y un JSONL con hashes no lo cumple aunque\n * técnicamente se pueda abrir. Texto plano, tablas, y las limitaciones escritas\n * dentro del propio documento.\n *\n * Dos cosas que conviene no deshacer:\n *\n * 1. **Minimización.** Aquí no se reconstruye nada que el libro no guarde ya. El\n * libro guarda del fichero su hash antes y después, nunca el texto, así que\n * este informe tampoco puede tenerlo. Y por si acaso se vuelve a pasar\n * `redactSensitive` sobre el documento entero: es el artefacto que SALE de la\n * máquina y se archiva, y una entrada escrita antes de que existiera un patrón\n * de redacción no puede convertirse en una fuga al exportarla.\n * 2. **Tres estados, no dos.** \"No hubo transferencias\" y \"no se pudo\n * determinar\" no son lo mismo, y un informe que saliera vacío en los dos casos\n * haría pasar por limpia una sesión cuya cadena está rota. La ausencia de un\n * registro solo prueba algo si el registro es completo y verificable: si la\n * cadena no verifica, si el libro está vacío o si la lectura se topó con el\n * tope, este informe dice que no lo sabe en vez de afirmar que no pasó nada.\n */\n\nimport { redactSensitive } from \"../memory-engine/security.ts\";\nimport type { EntradaDelLibro, Veredicto } from \"./libro.ts\";\n\n/**\n * ¿Podemos afirmar que algo NO ocurrió?\n *\n * Es el tipo que impide colapsar los tres estados en dos. Solo con\n * `{ sabemos: true }` tiene sentido escribir \"no hubo transferencias\"; en los\n * demás casos el informe dice qué le falta para saberlo.\n */\nexport type Certeza = { sabemos: true } | { sabemos: false; porque: string };\n\nexport function certezaDe(veredicto: Veredicto, truncado: boolean): Certeza {\n\tif (truncado) {\n\t\treturn {\n\t\t\tsabemos: false,\n\t\t\tporque:\n\t\t\t\t\"la lectura del libro alcanzó su tope de entradas, así que hay registros anteriores que este informe no ha mirado.\",\n\t\t};\n\t}\n\tif (!veredicto.valido) {\n\t\treturn {\n\t\t\tsabemos: false,\n\t\t\tporque:\n\t\t\t\t`la cadena de hashes NO verifica${veredicto.alteradaEn ? ` (falla en la entrada del ${fecha(veredicto.alteradaEn)})` : \"\"}. ` +\n\t\t\t\t\"Sobre un libro alterado, la ausencia de un registro no prueba que el hecho no ocurriera: puede haberse borrado.\",\n\t\t};\n\t}\n\tif (veredicto.comprobadas === 0) {\n\t\treturn {\n\t\t\tsabemos: false,\n\t\t\tporque:\n\t\t\t\t\"el libro está vacío. No hay registro de actividad, que no es lo mismo que un registro de que no hubo actividad.\",\n\t\t};\n\t}\n\treturn { sabemos: true };\n}\n\n/** Escapa lo que va dentro de una celda para que no rompa la tabla. */\nfunction celda(valor: unknown): string {\n\tif (valor === null || valor === undefined || valor === \"\") return \"—\";\n\treturn String(valor)\n\t\t.replace(/\\|/g, \"\\\\|\")\n\t\t.replace(/[\\r\\n]+/g, \" \");\n}\n\nfunction tabla(cabeceras: string[], filas: string[][]): string {\n\treturn [\n\t\t`| ${cabeceras.join(\" | \")} |`,\n\t\t`| ${cabeceras.map(() => \"---\").join(\" | \")} |`,\n\t\t...filas.map((f) => `| ${f.map(celda).join(\" | \")} |`),\n\t].join(\"\\n\");\n}\n\n/**\n * Una sección con su tercer estado.\n *\n * `nadaOcurrio` es la frase afirmativa (\"No hubo transferencias\"); solo se\n * imprime cuando la certeza lo permite. Si no, se imprime por qué no se sabe.\n */\nfunction seccion(\n\ttitulo: string,\n\tbase: string,\n\tcabeceras: string[],\n\tfilas: string[][],\n\tnadaOcurrio: string,\n\tcerteza: Certeza,\n\t/**\n\t * Hasta dónde llega la observación de esta sección. Se rinde SIEMPRE.\n\t *\n\t * Antes el alcance viajaba dentro de `nadaOcurrio`, que solo se imprime\n\t * cuando la tabla está vacía. Es decir: la advertencia de «hay caminos que no\n\t * miro» desaparecía justo cuando había datos, y el DPO leía una tabla de\n\t * transferencias con pinta de completa y ninguna salvedad. La salvedad\n\t * importa MÁS con filas que sin ellas: sin filas se está afirmando una\n\t * ausencia, con filas se está insinuando una lista exhaustiva.\n\t */\n\talcance?: string,\n): string {\n\tconst cuerpo =\n\t\tfilas.length > 0\n\t\t\t? tabla(cabeceras, filas)\n\t\t\t: certeza.sabemos\n\t\t\t\t? `**${nadaOcurrio}.** El libro está completo y su cadena verifica, así que esta ausencia es un dato, no un hueco.`\n\t\t\t\t: `**No se pudo determinar.** No se puede afirmar que ${nadaOcurrio.toLowerCase()}: ${certeza.porque}`;\n\treturn `## ${titulo}\\n\\n_${base}_\\n\\n${cuerpo}${alcance ? `\\n\\n> **Alcance de esta sección.** ${alcance}` : \"\"}`;\n}\n\n/** Fecha y hora sin la parte de milisegundos, que a un DPO no le dice nada. */\nfunction fecha(ts: string): string {\n\treturn ts.replace(\"T\", \" \").replace(/\\.\\d+Z$/, \"Z\");\n}\n\ntype Suceso = Record<string, unknown>;\n\nfunction esTipo(e: EntradaDelLibro, tipo: string): boolean {\n\treturn e.suceso.tipo === tipo;\n}\n\n/**\n * Rinde el informe.\n *\n * `entradas` debe venir de más antigua a más reciente (`libro.leer` las da al\n * revés). `truncado` es true si la lectura se topó con su límite, porque\n * entonces no se puede afirmar ninguna ausencia.\n */\nexport function informeParaDpo(\n\tentradas: EntradaDelLibro[],\n\tveredicto: Veredicto,\n\ttruncado: boolean,\n\tahora = new Date().toISOString(),\n): string {\n\tconst certeza = certezaDe(veredicto, truncado);\n\tconst sesiones = [...new Set(entradas.map((e) => e.sesion))];\n\n\tconst integridad = veredicto.valido\n\t\t? `**Cadena de hashes ÍNTEGRA** — ${veredicto.comprobadas} entrada(s) reverificadas de punta a punta.`\n\t\t: `**CADENA ALTERADA** tras ${veredicto.comprobadas} entrada(s) correctas` +\n\t\t\t(veredicto.alteradaEn ? `, en la del ${fecha(veredicto.alteradaEn)}` : \"\") +\n\t\t\t(veredicto.ficheroAlterado ? ` (fichero \\`sesion/${veredicto.ficheroAlterado}\\`)` : \"\") +\n\t\t\t\". Las entradas anteriores a esa siguen siendo fiables; a partir de ahí, no.\";\n\n\tconst partes: string[] = [\n\t\t\"# Registro de actividades de tratamiento — Ada\",\n\t\t[\n\t\t\t`- **Generado:** ${fecha(ahora)}`,\n\t\t\t`- **Entradas del libro:** ${entradas.length}${truncado ? \" (lectura truncada por el tope)\" : \"\"}`,\n\t\t\t`- **Sesiones cubiertas:** ${sesiones.length > 0 ? sesiones.map((s) => `\\`${s}\\``).join(\", \") : \"ninguna\"}`,\n\t\t\t`- **Periodo:** ${entradas.length > 0 ? `${fecha(entradas[0].ts)} → ${fecha(entradas[entradas.length - 1].ts)}` : \"—\"}`,\n\t\t].join(\"\\n\"),\n\t\t`## Prueba de integridad\\n\\n${integridad}`,\n\n\t\tseccion(\n\t\t\t\"1. Ficheros tratados\",\n\t\t\t\"Art. 30 RGPD — registro de actividades de tratamiento. Del fichero consta su HASH antes y después, nunca su contenido.\",\n\t\t\t[\"Fecha\", \"Fichero\", \"Hash antes\", \"Hash después\", \"Vía\", \"Base\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"fichero\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [\n\t\t\t\t\t\tfecha(e.ts),\n\t\t\t\t\t\tString(s.ruta ?? \"\"),\n\t\t\t\t\t\ts.antes === null ? \"(no existía)\" : celda(s.antes),\n\t\t\t\t\t\ts.despues === null ? \"(borrado)\" : celda(s.despues),\n\t\t\t\t\t\tcelda(s.tool),\n\t\t\t\t\t\t\"ejecución solicitada por el usuario en la sesión\",\n\t\t\t\t\t];\n\t\t\t\t}),\n\t\t\t\"No se trató ningún fichero\",\n\t\t\tcerteza,\n\t\t),\n\n\t\tseccion(\n\t\t\t\"2. Transferencias de datos fuera de la máquina\",\n\t\t\t\"Art. 44 y ss. RGPD — destinatarios. Consta el DOMINIO de destino; nunca la ruta ni los parámetros, que es donde viajan los tokens.\",\n\t\t\t[\"Fecha\", \"Destino\", \"Resultado\", \"Motivo\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"red\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [fecha(e.ts), String(s.dominio ?? \"\"), s.permitido ? \"permitida\" : \"BLOQUEADA\", celda(s.motivo)];\n\t\t\t\t}),\n\t\t\t// La frase dice su ALCANCE, y no es un matiz de estilo.\n\t\t\t//\n\t\t\t// El `fetchImpl` vigilado que produce estos sucesos lo reciben el fetch\n\t\t\t// genérico, los scrapers y los proveedores de búsqueda — las tools web.\n\t\t\t// NO lo reciben (comprobado con `grep -c anotarRed`, cero en los tres):\n\t\t\t// el cliente MCP (`core/mcp/client.ts`, que sí acepta `fetchImpl` y hoy\n\t\t\t// no se le pasa), el broker de blobs y la API de Telegram.\n\t\t\t//\n\t\t\t// Un DPO estricto diría que hablar con un MCP remoto ES una\n\t\t\t// transferencia, y tendría razón. Escribir \"No hubo transferencias\" a\n\t\t\t// secas sería afirmar una ausencia que este registro no puede sostener:\n\t\t\t// «no lo he mirado» vendido como «no hay», en el documento donde eso se\n\t\t\t// paga más caro. Mientras la cobertura no sea completa, la frase nombra\n\t\t\t// lo que sí cubre y quien lea el informe puede juzgar el resto.\n\t\t\t// La frase sigue diciendo su ALCANCE, y sigue sin ser un matiz de estilo.\n\t\t\t//\n\t\t\t// Cubierto: el fetch genérico, los scrapers, los proveedores de búsqueda\n\t\t\t// y —desde `core/web/registro-red.ts`— el cliente MCP, que es el que un\n\t\t\t// DPO preguntaría primero porque habla con servidores de terceros.\n\t\t\t//\n\t\t\t// Fuera todavía, MEDIDO recorriendo cada `fetch(` del código y no\n\t\t\t// copiado del comentario anterior —que decía «el broker de ficheros\n\t\t\t// grandes y Telegram» y no era la lista real—:\n\t\t\t//\n\t\t\t// modes/interactive/interactive-mode.ts:1326 aviso a pi.dev\n\t\t\t// extensions/llama/huggingface.ts:76 descarga de modelos\n\t\t\t// extensions/llama/client.ts:171,216 servidor llama\n\t\t\t// core/credenciales/cliente.ts:62,79 broker de credenciales\n\t\t\t// cli/telemetria-command.ts colector OTLP (--enviar)\n\t\t\t//\n\t\t\t// (`computer/motor/{bridge,cdp}.ts` y `utils/management-http.ts` van a\n\t\t\t// 127.0.0.1: no salen de la máquina y no son transferencias.)\n\t\t\t//\n\t\t\t// Mientras queden caminos sin cubrir, la salvedad nombra lo que sí\n\t\t\t// sostiene, y se rinde TAMBIÉN cuando la tabla tiene filas: con datos\n\t\t\t// se está insinuando una lista exhaustiva, que es peor que declarar una\n\t\t\t// ausencia.\n\t\t\t\"No hubo transferencias por los caminos que este registro observa\",\n\t\t\tcerteza,\n\t\t\t\"esta tabla cubre las herramientas web (fetch, scrapers y buscadores) y los servidores \" +\n\t\t\t\t\"MCP. Quedan FUERA, medido recorriendo cada llamada a `fetch` del código: el aviso de \" +\n\t\t\t\t\"instalación a `pi.dev` (activado por defecto; se apaga con `PI_OFFLINE`, `PI_TELEMETRY=0` \" +\n\t\t\t\t\"o `enableInstallTelemetry: false`), las descargas de modelos de Hugging Face, el \" +\n\t\t\t\t\"servidor llama, el broker de credenciales y el envío al colector OTLP de \" +\n\t\t\t\t\"`ada-cli telemetria --enviar` (que manda forma y nunca contenido, pero sale igual de \" +\n\t\t\t\t\"esta máquina). Sobre esos caminos este informe no afirma \" +\n\t\t\t\t\"nada, ni que hubo transferencias ni que no las hubo. Una lista que parece exhaustiva y \" +\n\t\t\t\t\"no lo es engaña más que una ausencia declarada.\",\n\t\t),\n\n\t\tseccion(\n\t\t\t\"3. Modelos invocados (encargados del tratamiento)\",\n\t\t\t\"Art. 28 RGPD — cada llamada a un modelo remoto es un tratamiento por cuenta de un tercero. Consta el proveedor y el volumen, nunca el contenido del prompt.\",\n\t\t\t[\"Fecha\", \"Proveedor\", \"Modelo\", \"Tokens entrada\", \"Tokens salida\", \"Fin\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"modelo\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [\n\t\t\t\t\t\tfecha(e.ts),\n\t\t\t\t\t\tcelda(s.proveedor),\n\t\t\t\t\t\tcelda(s.modelo),\n\t\t\t\t\t\tcelda(s.entrada),\n\t\t\t\t\t\tcelda(s.salida),\n\t\t\t\t\t\tcelda(s.motivoParada),\n\t\t\t\t\t];\n\t\t\t\t}),\n\t\t\t\"No se invocó ningún modelo\",\n\t\t\tcerteza,\n\t\t),\n\n\t\tseccion(\n\t\t\t\"4. Comandos ejecutados\",\n\t\t\t\"Trazabilidad de la actuación automatizada. `origen` distingue lo que decidió el agente de lo que tecleó la persona.\",\n\t\t\t[\"Fecha\", \"Comando\", \"Código\", \"Origen\", \"Encierro\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"comando\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\tconst argv = Array.isArray(s.argv) ? s.argv.join(\" \") : \"\";\n\t\t\t\t\treturn [\n\t\t\t\t\t\tfecha(e.ts),\n\t\t\t\t\t\t`\\`${celda(argv.slice(0, 120))}\\``,\n\t\t\t\t\t\tcelda(s.codigo),\n\t\t\t\t\t\ts.origen === \"usuario\" ? \"usuario\" : \"agente\",\n\t\t\t\t\t\tcelda(s.sandbox),\n\t\t\t\t\t];\n\t\t\t\t}),\n\t\t\t\"No se ejecutó ningún comando\",\n\t\t\tcerteza,\n\t\t),\n\n\t\tseccion(\n\t\t\t\"5. Herramientas y decisiones de política\",\n\t\t\t\"Art. 12 AI Act — qué se permitió y con qué base. `Base` es la regla de la política de aprobación que dejó pasar la llamada.\",\n\t\t\t[\"Fecha\", \"Herramienta\", \"Resultado\", \"Decisión\", \"Base\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"tool\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [fecha(e.ts), celda(s.nombre), s.ok ? \"ok\" : \"ERROR\", celda(s.decision), celda(s.motivo)];\n\t\t\t\t}),\n\t\t\t\"No se ejecutó ninguna herramienta\",\n\t\t\tcerteza,\n\t\t),\n\n\t\tseccion(\n\t\t\t\"6. Credenciales utilizadas\",\n\t\t\t\"Quién usó qué cuenta y cuándo. Consta el identificador de la credencial, jamás su valor.\",\n\t\t\t[\"Fecha\", \"Acción\", \"Proveedor\", \"Credencial\", \"Resultado\", \"Cliente\"],\n\t\t\tentradas\n\t\t\t\t.filter((e) => esTipo(e, \"credencial\"))\n\t\t\t\t.map((e) => {\n\t\t\t\t\tconst s = e.suceso as Suceso;\n\t\t\t\t\treturn [\n\t\t\t\t\t\tfecha(e.ts),\n\t\t\t\t\t\tcelda(s.accion),\n\t\t\t\t\t\tcelda(s.proveedor),\n\t\t\t\t\t\ts.credencialId === null ? \"(ninguna activa)\" : celda(s.credencialId),\n\t\t\t\t\t\tcelda(s.resultado),\n\t\t\t\t\t\tcelda(s.cliente),\n\t\t\t\t\t];\n\t\t\t\t}),\n\t\t\t\"No se utilizó ninguna credencial\",\n\t\t\tcerteza,\n\t\t),\n\n\t\t[\n\t\t\t\"## Minimización de datos\",\n\t\t\t\"\",\n\t\t\t\"Este documento contiene la FORMA de lo que ocurrió, no su contenido. En concreto NO incluye:\",\n\t\t\t\"\",\n\t\t\t\"- el contenido de ningún fichero del usuario (solo el hash SHA-256 truncado de antes y después);\",\n\t\t\t\"- el texto de ningún prompt ni respuesta del modelo (solo el recuento de tokens);\",\n\t\t\t\"- ninguna credencial, clave ni token (solo el identificador de la credencial usada);\",\n\t\t\t\"- ninguna ruta ni parámetro de las URL a las que se salió (solo el dominio de destino).\",\n\t\t\t\"\",\n\t\t\t\"Un registro de cumplimiento que copiara los datos tratados sería un segundo almacén de justo\",\n\t\t\t\"aquello que el RGPD manda minimizar.\",\n\t\t].join(\"\\n\"),\n\n\t\t[\n\t\t\t\"## Qué NO prueba este documento\",\n\t\t\t\"\",\n\t\t\t\"- La cadena de hashes prueba **integridad interna** (que el libro no se editó ni reordenó), no **procedencia**:\",\n\t\t\t\" no acredita quién lo generó ni en qué máquina. Para no-repudio hace falta firma con clave gestionada (HSM).\",\n\t\t\t\"- Borrar el fichero de una sesión completa no lo detecta la cadena; sí detecta cualquier modificación dentro de una sesión.\",\n\t\t\t\"- El informe refleja lo que el agente registró. No es una auditoría independiente del código resultante.\",\n\t\t].join(\"\\n\"),\n\t];\n\n\t// Segunda pasada de redacción sobre el documento ya rendido. El libro ya\n\t// redacta al escribir, pero este es el artefacto que SALE de la máquina y se\n\t// archiva: una entrada anotada antes de que existiera un patrón no puede\n\t// convertirse en una fuga al exportarla. Sobre Markdown no hay nada que\n\t// romper, así que lo peor que puede pasar es que redacte de más.\n\treturn redactSensitive(`${partes.join(\"\\n\\n\")}\\n`, \"strict\");\n}\n"]}
|