@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,399 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools de control del ordenador.
|
|
3
|
+
*
|
|
4
|
+
* El motor es nuestro fork de pi-computer-use (ver `motor/README.md`), pero el
|
|
5
|
+
* agente NO habla con él: habla con estas tools, y cada una pasa por
|
|
6
|
+
* `politica.ts` antes de mover nada. Registrar el motor directamente dejaría al
|
|
7
|
+
* modelo pulsando cualquier cosa en cualquier aplicación, y nuestra gobernanza
|
|
8
|
+
* no pintaría nada.
|
|
9
|
+
*
|
|
10
|
+
* Preferimos SIEMPRE actuar sobre el árbol de accesibilidad antes que sobre
|
|
11
|
+
* coordenadas. Pulsar "el botón Enviar" es verificable; pulsar en (840, 512) es
|
|
12
|
+
* una apuesta, y cuando falla no falla en el vacío: pulsa otra cosa.
|
|
13
|
+
*
|
|
14
|
+
* Desde el cambio de motor eso ya no es una preferencia: **para actuar hace
|
|
15
|
+
* falta el `lookId` de una observación previa**. El motor rechaza actuar sobre
|
|
16
|
+
* estado viejo, así que "lee antes de pulsar" pasó de consejo del prompt a
|
|
17
|
+
* requisito que no se puede saltar. El fallo que apareció contra TextEdit
|
|
18
|
+
* —escribir en una ventana que ya se había cerrado— dejó de ser posible.
|
|
19
|
+
*/
|
|
20
|
+
import { Type } from "typebox";
|
|
21
|
+
import { avisoSinNavegador, reglaDeEleccion } from "../prompt-eleccion.js";
|
|
22
|
+
import { capturarPantalla } from "./captura.js";
|
|
23
|
+
import { actuar, appEnPrimerPlano, esperar, leerTexto, listarApps, observar, pidDe, } from "./motor-ada.js";
|
|
24
|
+
import { CredencialError, esAppProhibida, exigirPermiso, pareceCredencial, techoDeCategoria, teclaPeligrosa, } from "./politica.js";
|
|
25
|
+
/**
|
|
26
|
+
* Lo que el agente necesita saber para usar esto bien.
|
|
27
|
+
*
|
|
28
|
+
* `promptSnippet` solo dice que la tool existe. Para una capacidad que mueve el
|
|
29
|
+
* ratón sobre el escritorio de verdad, saber que existe no es saber usarla.
|
|
30
|
+
*/
|
|
31
|
+
function guiaOrdenador(navegador) {
|
|
32
|
+
return [
|
|
33
|
+
reglaDeEleccion({ navegador, ordenador: true }),
|
|
34
|
+
...(navegador ? [] : [avisoSinNavegador()]),
|
|
35
|
+
"Ante la duda entre computer_* y cualquier otra, elige la otra: manejar una ventana es lo más frágil que puedes hacer y lo que más puede romper sin avisar.",
|
|
36
|
+
"Antes de controlar el ordenador, usa computer_apps: cada aplicación dice hasta dónde puedes llegar con ella.",
|
|
37
|
+
"computer_read te da un lookId y las referencias de los elementos; toda acción necesita ese lookId, y si la ventana cambió tendrás que volver a leer.",
|
|
38
|
+
"Cuando algo tarde en aparecer, usa computer_wait en vez de actuar y confiar: actuar sobre una ventana que no está lista falla en silencio.",
|
|
39
|
+
"Si lo que vas a pulsar envía, compra, publica, borra o acepta condiciones, pregunta al usuario ANTES de hacerlo.",
|
|
40
|
+
"No teclees contraseñas, tokens ni datos de tarjeta: pídeselo al usuario.",
|
|
41
|
+
];
|
|
42
|
+
}
|
|
43
|
+
function texto(t) {
|
|
44
|
+
return { content: [{ type: "text", text: t }], details: undefined };
|
|
45
|
+
}
|
|
46
|
+
function fallo(error) {
|
|
47
|
+
return texto(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
48
|
+
}
|
|
49
|
+
/** Los nombres, sueltos, para que `agent-session` los active sin construirlas. */
|
|
50
|
+
export const NOMBRES_COMPUTER_TOOLS = [
|
|
51
|
+
"computer_apps",
|
|
52
|
+
"computer_read",
|
|
53
|
+
"computer_screenshot",
|
|
54
|
+
"computer_click",
|
|
55
|
+
"computer_type",
|
|
56
|
+
"computer_key",
|
|
57
|
+
"computer_scroll",
|
|
58
|
+
"computer_wait",
|
|
59
|
+
"computer_text",
|
|
60
|
+
];
|
|
61
|
+
export function crearComputerTools(opciones = {}) {
|
|
62
|
+
// Sin tools de navegador, la política que redirige "esto es un navegador,
|
|
63
|
+
// usa browser_*" apuntaría al vacío. Se avisa antes en vez de después.
|
|
64
|
+
const guia = guiaOrdenador(opciones.navegador === true);
|
|
65
|
+
/**
|
|
66
|
+
* Observaciones vivas, por `lookId`.
|
|
67
|
+
*
|
|
68
|
+
* El agente recibe el `lookId` y lo devuelve en cada acción. Se guarda aquí
|
|
69
|
+
* el objeto completo porque el motor necesita también el pid, y hacer que el
|
|
70
|
+
* modelo arrastre dos identificadores sería pedirle que no se equivoque en
|
|
71
|
+
* algo que podemos recordar nosotros.
|
|
72
|
+
*/
|
|
73
|
+
const observaciones = new Map();
|
|
74
|
+
/** Puerta de permisos. Ver `politica.ts`. */
|
|
75
|
+
const guardia = (accion, app) => exigirPermiso(accion, app);
|
|
76
|
+
/** Resuelve el pid de una app aplicando la política antes de tocarla. */
|
|
77
|
+
const prepararApp = async (nombreApp, accion) => {
|
|
78
|
+
guardia(accion, nombreApp);
|
|
79
|
+
const pid = await pidDe(nombreApp);
|
|
80
|
+
if (pid === undefined) {
|
|
81
|
+
throw new Error(`No encuentro ninguna aplicación abierta llamada "${nombreApp}". Usa computer_apps para verlas.`);
|
|
82
|
+
}
|
|
83
|
+
return pid;
|
|
84
|
+
};
|
|
85
|
+
/** Recupera una observación. Actuar sin ella es actuar a ciegas. */
|
|
86
|
+
const observacionDe = (lookId) => {
|
|
87
|
+
const obs = observaciones.get(lookId);
|
|
88
|
+
if (!obs) {
|
|
89
|
+
throw new Error(`El lookId "${lookId}" no existe o ya caducó. Vuelve a leer la ventana con computer_read: ` +
|
|
90
|
+
`el motor no deja actuar sobre observaciones viejas, a propósito.`);
|
|
91
|
+
}
|
|
92
|
+
return obs;
|
|
93
|
+
};
|
|
94
|
+
const listar = {
|
|
95
|
+
name: "computer_apps",
|
|
96
|
+
label: "Listar aplicaciones",
|
|
97
|
+
promptGuidelines: guia,
|
|
98
|
+
description: "Lista las aplicaciones abiertas y hasta dónde puedes llegar con cada una. " +
|
|
99
|
+
"Úsalo antes de nada: cada una dice su límite.",
|
|
100
|
+
promptSnippet: "ver qué aplicaciones hay y hasta dónde puedo llegar con cada una",
|
|
101
|
+
parameters: Type.Object({}),
|
|
102
|
+
async execute() {
|
|
103
|
+
try {
|
|
104
|
+
const apps = await listarApps();
|
|
105
|
+
const frente = await appEnPrimerPlano().catch(() => null);
|
|
106
|
+
// El límite se anota por aplicación para que el modelo lo sepa ANTES
|
|
107
|
+
// de intentar algo, en vez de descubrirlo con un error.
|
|
108
|
+
const lineas = apps.map((a) => {
|
|
109
|
+
const marca = frente?.pid === a.pid ? " [primer plano]" : "";
|
|
110
|
+
if (esAppProhibida(a.nombre))
|
|
111
|
+
return `${a.nombre}${marca} → NUNCA (credenciales)`;
|
|
112
|
+
const techo = techoDeCategoria(a.nombre);
|
|
113
|
+
const nota = techo === "read"
|
|
114
|
+
? "solo ver — para manejarlo usa browser_*"
|
|
115
|
+
: techo === "click"
|
|
116
|
+
? "ver y pulsar — para ejecutar comandos usa bash"
|
|
117
|
+
: "control total";
|
|
118
|
+
return `${a.nombre}${marca} → ${nota}`;
|
|
119
|
+
});
|
|
120
|
+
return texto(lineas.join("\n"));
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
return fallo(error);
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
const leer = {
|
|
128
|
+
name: "computer_read",
|
|
129
|
+
label: "Leer la ventana",
|
|
130
|
+
description: "Observa una aplicación y devuelve su árbol de elementos junto a un lookId. " +
|
|
131
|
+
"TODA acción necesita ese lookId. Si la ventana cambia, vuelve a leer.",
|
|
132
|
+
promptSnippet: "leer los elementos de una ventana y obtener su lookId",
|
|
133
|
+
parameters: Type.Object({
|
|
134
|
+
app: Type.String({ description: "Nombre de la aplicación" }),
|
|
135
|
+
scopeRef: Type.Optional(Type.String({ description: "Referencia de un elemento, para mirar solo dentro de él" })),
|
|
136
|
+
}),
|
|
137
|
+
async execute(_id, input) {
|
|
138
|
+
try {
|
|
139
|
+
const nombreApp = String(input.app ?? "");
|
|
140
|
+
const pid = await prepararApp(nombreApp, "screenshot");
|
|
141
|
+
const obs = await observar(pid, { scopeRef: input.scopeRef ? String(input.scopeRef) : undefined });
|
|
142
|
+
observaciones.set(obs.lookId, obs);
|
|
143
|
+
return texto(`Ventana: ${obs.titulo ?? "(sin título)"} · ${obs.elementos} elementos\n` +
|
|
144
|
+
`lookId: ${obs.lookId}\n\n${obs.resumen}`);
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
return fallo(error);
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
const captura = {
|
|
152
|
+
name: "computer_screenshot",
|
|
153
|
+
label: "Captura de pantalla",
|
|
154
|
+
description: "Captura la pantalla. Para decidir dónde pulsar, prefiere computer_read.",
|
|
155
|
+
promptSnippet: "ver la pantalla",
|
|
156
|
+
parameters: Type.Object({}),
|
|
157
|
+
async execute() {
|
|
158
|
+
try {
|
|
159
|
+
const frente = await appEnPrimerPlano();
|
|
160
|
+
guardia("screenshot", frente.nombre);
|
|
161
|
+
// Primero, por el MOTOR. No es una preferencia estética: en macOS el
|
|
162
|
+
// permiso de Grabación de pantalla se concede a una aplicación, y el
|
|
163
|
+
// helper ya lo tiene. `screencapture` lo lanzaría NUESTRO proceso —
|
|
164
|
+
// node, dentro de la Terminal o del escritorio — que es otra identidad
|
|
165
|
+
// y necesitaría su propio permiso, uno por cada sitio desde el que se
|
|
166
|
+
// use Ada. Comprobado: con el helper autorizado, `screencapture -x`
|
|
167
|
+
// desde node seguía devolviendo "could not create image from display".
|
|
168
|
+
//
|
|
169
|
+
// Captura la VENTANA de delante, no la pantalla entera. Además de
|
|
170
|
+
// funcionar, es lo correcto: no arrastra al contexto lo que haya en
|
|
171
|
+
// otras ventanas del usuario.
|
|
172
|
+
if (frente.pid !== undefined) {
|
|
173
|
+
try {
|
|
174
|
+
const obs = await observar(frente.pid, { conImagen: true });
|
|
175
|
+
if (obs.imagen) {
|
|
176
|
+
return {
|
|
177
|
+
content: [
|
|
178
|
+
{ type: "text", text: `Ventana: ${obs.titulo ?? frente.nombre}` },
|
|
179
|
+
{ type: "image", data: obs.imagen.datos, mimeType: obs.imagen.mimeType },
|
|
180
|
+
],
|
|
181
|
+
details: undefined,
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
// Si el motor no puede, queda la captura del sistema.
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
const r = await capturarPantalla();
|
|
190
|
+
if (!r.imagen)
|
|
191
|
+
return texto(r.motivo ?? "No se pudo capturar la pantalla.");
|
|
192
|
+
return { content: [{ type: "image", data: r.imagen, mimeType: "image/png" }], details: undefined };
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
return fallo(error);
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
const pulsar = {
|
|
200
|
+
name: "computer_click",
|
|
201
|
+
label: "Pulsar",
|
|
202
|
+
promptGuidelines: guia,
|
|
203
|
+
description: "Pulsa un elemento por su referencia, usando el lookId de computer_read. " +
|
|
204
|
+
"Si lo que vas a pulsar envía, compra, publica o borra, pregunta al usuario ANTES.",
|
|
205
|
+
promptSnippet: "pulsar un elemento de la pantalla",
|
|
206
|
+
parameters: Type.Object({
|
|
207
|
+
lookId: Type.String(),
|
|
208
|
+
ref: Type.String({ description: "Referencia del elemento, de computer_read" }),
|
|
209
|
+
boton: Type.Optional(Type.String({ description: "left (por defecto), right, middle" })),
|
|
210
|
+
veces: Type.Optional(Type.Number({ description: "1 (por defecto), 2 para doble" })),
|
|
211
|
+
}),
|
|
212
|
+
async execute(_id, input) {
|
|
213
|
+
try {
|
|
214
|
+
const obs = observacionDe(String(input.lookId ?? ""));
|
|
215
|
+
const boton = String(input.boton ?? "left");
|
|
216
|
+
const veces = Number(input.veces ?? 1);
|
|
217
|
+
const accion = boton === "right"
|
|
218
|
+
? "right_click"
|
|
219
|
+
: boton === "middle"
|
|
220
|
+
? "middle_click"
|
|
221
|
+
: veces >= 3
|
|
222
|
+
? "triple_click"
|
|
223
|
+
: veces === 2
|
|
224
|
+
? "double_click"
|
|
225
|
+
: "left_click";
|
|
226
|
+
const frente = await appEnPrimerPlano();
|
|
227
|
+
guardia(accion, frente.nombre);
|
|
228
|
+
const r = await actuar(obs, { tipo: "click", ref: String(input.ref ?? ""), boton, veces });
|
|
229
|
+
return texto(r.ok ? `Pulsado.${r.detalle ? `\n${r.detalle}` : ""}` : `No se pudo pulsar: ${r.detalle}`);
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
return fallo(error);
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
const escribir = {
|
|
237
|
+
name: "computer_type",
|
|
238
|
+
label: "Escribir",
|
|
239
|
+
promptGuidelines: guia,
|
|
240
|
+
description: "Escribe texto en un elemento, usando el lookId de computer_read. " +
|
|
241
|
+
"No escribe credenciales: claves, tokens, tarjetas o IBAN los pone el usuario.",
|
|
242
|
+
promptSnippet: "escribir texto en un campo",
|
|
243
|
+
parameters: Type.Object({ lookId: Type.String(), ref: Type.String(), texto: Type.String() }),
|
|
244
|
+
async execute(_id, input) {
|
|
245
|
+
try {
|
|
246
|
+
const contenido = String(input.texto ?? "");
|
|
247
|
+
// Antes que el permiso: si es una credencial da igual qué app sea.
|
|
248
|
+
if (pareceCredencial(contenido))
|
|
249
|
+
return fallo(new CredencialError());
|
|
250
|
+
const obs = observacionDe(String(input.lookId ?? ""));
|
|
251
|
+
const frente = await appEnPrimerPlano();
|
|
252
|
+
guardia("type", frente.nombre);
|
|
253
|
+
const r = await actuar(obs, { tipo: "escribir", ref: String(input.ref ?? ""), texto: contenido });
|
|
254
|
+
if (!r.ok)
|
|
255
|
+
return texto(`No se pudo escribir: ${r.detalle}`);
|
|
256
|
+
// El motor devuelve el estado posterior, así que la comprobación que
|
|
257
|
+
// antes había que hacer a mano viene de serie.
|
|
258
|
+
return texto(`Escrito.${r.detalle ? `\n${r.detalle}` : ""}`);
|
|
259
|
+
}
|
|
260
|
+
catch (error) {
|
|
261
|
+
return fallo(error);
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
};
|
|
265
|
+
const tecla = {
|
|
266
|
+
name: "computer_key",
|
|
267
|
+
label: "Pulsar tecla",
|
|
268
|
+
description: "Pulsa una tecla o combinación ('cmd+s', 'return', 'tab'). " +
|
|
269
|
+
"Las que cierran o borran sin vuelta atrás necesitan que el usuario lo pida.",
|
|
270
|
+
promptSnippet: "pulsar una combinación de teclas",
|
|
271
|
+
parameters: Type.Object({
|
|
272
|
+
lookId: Type.String(),
|
|
273
|
+
tecla: Type.String(),
|
|
274
|
+
ref: Type.Optional(Type.String()),
|
|
275
|
+
confirmado: Type.Optional(Type.Boolean({ description: "El usuario ha pedido esta tecla peligrosa" })),
|
|
276
|
+
}),
|
|
277
|
+
async execute(_id, input) {
|
|
278
|
+
try {
|
|
279
|
+
const combinacion = String(input.tecla ?? "");
|
|
280
|
+
if (teclaPeligrosa(combinacion) && input.confirmado !== true) {
|
|
281
|
+
return texto(`'${combinacion}' cierra o borra sin vuelta atrás. Pregúntale al usuario y vuelve con confirmado: true.`);
|
|
282
|
+
}
|
|
283
|
+
const obs = observacionDe(String(input.lookId ?? ""));
|
|
284
|
+
const frente = await appEnPrimerPlano();
|
|
285
|
+
guardia("key", frente.nombre);
|
|
286
|
+
const r = await actuar(obs, {
|
|
287
|
+
tipo: "teclas",
|
|
288
|
+
ref: input.ref ? String(input.ref) : undefined,
|
|
289
|
+
teclas: combinacion.split("+").map((k) => k.trim()),
|
|
290
|
+
});
|
|
291
|
+
return texto(r.ok ? `Pulsado ${combinacion}.` : `No se pudo pulsar: ${r.detalle}`);
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
return fallo(error);
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
};
|
|
298
|
+
const desplazar = {
|
|
299
|
+
name: "computer_scroll",
|
|
300
|
+
label: "Desplazar",
|
|
301
|
+
description: "Desplaza el contenido de un elemento.",
|
|
302
|
+
promptSnippet: "desplazar la pantalla",
|
|
303
|
+
parameters: Type.Object({
|
|
304
|
+
lookId: Type.String(),
|
|
305
|
+
ref: Type.String(),
|
|
306
|
+
direccion: Type.String({ description: "up, down, left, right" }),
|
|
307
|
+
cantidad: Type.Optional(Type.Number()),
|
|
308
|
+
}),
|
|
309
|
+
async execute(_id, input) {
|
|
310
|
+
try {
|
|
311
|
+
const obs = observacionDe(String(input.lookId ?? ""));
|
|
312
|
+
const frente = await appEnPrimerPlano();
|
|
313
|
+
guardia("scroll", frente.nombre);
|
|
314
|
+
const paso = Number(input.cantidad ?? 3) * 100;
|
|
315
|
+
const dir = String(input.direccion ?? "down");
|
|
316
|
+
const r = await actuar(obs, {
|
|
317
|
+
tipo: "desplazar",
|
|
318
|
+
ref: String(input.ref ?? ""),
|
|
319
|
+
x: dir === "left" ? -paso : dir === "right" ? paso : 0,
|
|
320
|
+
y: dir === "up" ? -paso : dir === "down" ? paso : 0,
|
|
321
|
+
});
|
|
322
|
+
return texto(r.ok ? "Desplazado." : `No se pudo desplazar: ${r.detalle}`);
|
|
323
|
+
}
|
|
324
|
+
catch (error) {
|
|
325
|
+
return fallo(error);
|
|
326
|
+
}
|
|
327
|
+
},
|
|
328
|
+
};
|
|
329
|
+
const aguardar = {
|
|
330
|
+
name: "computer_wait",
|
|
331
|
+
label: "Esperar",
|
|
332
|
+
promptGuidelines: guia,
|
|
333
|
+
description: "Espera a que un texto o un tipo de control aparezca (o desaparezca) en una ventana. " +
|
|
334
|
+
"Úsalo cuando algo tarde: actuar sobre una ventana que no está lista falla en silencio.",
|
|
335
|
+
promptSnippet: "esperar a que la pantalla cambie",
|
|
336
|
+
parameters: Type.Object({
|
|
337
|
+
app: Type.String(),
|
|
338
|
+
texto: Type.Optional(Type.String({ description: "Texto que debe aparecer" })),
|
|
339
|
+
rol: Type.Optional(Type.String({ description: "Tipo de control, p. ej. button" })),
|
|
340
|
+
desaparezca: Type.Optional(Type.Boolean({ description: "Esperar a que DEJE de estar" })),
|
|
341
|
+
timeoutMs: Type.Optional(Type.Number({ description: "Por defecto 10000, máximo 60000" })),
|
|
342
|
+
}),
|
|
343
|
+
async execute(_id, input) {
|
|
344
|
+
try {
|
|
345
|
+
const pid = await prepararApp(String(input.app ?? ""), "screenshot");
|
|
346
|
+
const r = await esperar(pid, {
|
|
347
|
+
texto: input.texto ? String(input.texto) : undefined,
|
|
348
|
+
rol: input.rol ? String(input.rol) : undefined,
|
|
349
|
+
desaparezca: input.desaparezca === true,
|
|
350
|
+
timeoutMs: input.timeoutMs ? Number(input.timeoutMs) : undefined,
|
|
351
|
+
});
|
|
352
|
+
return texto(r.encontrado
|
|
353
|
+
? "Listo: lo que esperabas está. Vuelve a leer con computer_read para actuar."
|
|
354
|
+
: `No llegó a pasar (${r.detalle}). No actúes a ciegas: mira con computer_read qué hay.`);
|
|
355
|
+
}
|
|
356
|
+
catch (error) {
|
|
357
|
+
return fallo(error);
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
};
|
|
361
|
+
const textoDe = {
|
|
362
|
+
name: "computer_text",
|
|
363
|
+
label: "Leer texto",
|
|
364
|
+
description: "Lee el texto completo de un elemento, por trozos. " +
|
|
365
|
+
"Para contenidos largos que computer_read resume o recorta.",
|
|
366
|
+
promptSnippet: "leer el texto completo de un elemento",
|
|
367
|
+
parameters: Type.Object({
|
|
368
|
+
lookId: Type.String(),
|
|
369
|
+
ref: Type.String(),
|
|
370
|
+
desde: Type.Optional(Type.Number()),
|
|
371
|
+
limite: Type.Optional(Type.Number()),
|
|
372
|
+
}),
|
|
373
|
+
async execute(_id, input) {
|
|
374
|
+
try {
|
|
375
|
+
const obs = observacionDe(String(input.lookId ?? ""));
|
|
376
|
+
const r = await leerTexto(obs, String(input.ref ?? ""), {
|
|
377
|
+
offset: input.desde ? Number(input.desde) : 0,
|
|
378
|
+
limit: input.limite ? Number(input.limite) : undefined,
|
|
379
|
+
});
|
|
380
|
+
return texto(r.hayMas ? `${r.texto}\n\n[…quedan ${r.total - r.texto.length} caracteres]` : r.texto);
|
|
381
|
+
}
|
|
382
|
+
catch (error) {
|
|
383
|
+
return fallo(error);
|
|
384
|
+
}
|
|
385
|
+
},
|
|
386
|
+
};
|
|
387
|
+
return {
|
|
388
|
+
computer_apps: listar,
|
|
389
|
+
computer_read: leer,
|
|
390
|
+
computer_screenshot: captura,
|
|
391
|
+
computer_click: pulsar,
|
|
392
|
+
computer_type: escribir,
|
|
393
|
+
computer_key: tecla,
|
|
394
|
+
computer_scroll: desplazar,
|
|
395
|
+
computer_wait: aguardar,
|
|
396
|
+
computer_text: textoDe,
|
|
397
|
+
};
|
|
398
|
+
}
|
|
399
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/core/computer/tools.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tools de control del ordenador.\n *\n * El motor es nuestro fork de pi-computer-use (ver `motor/README.md`), pero el\n * agente NO habla con él: habla con estas tools, y cada una pasa por\n * `politica.ts` antes de mover nada. Registrar el motor directamente dejaría al\n * modelo pulsando cualquier cosa en cualquier aplicación, y nuestra gobernanza\n * no pintaría nada.\n *\n * Preferimos SIEMPRE actuar sobre el árbol de accesibilidad antes que sobre\n * coordenadas. Pulsar \"el botón Enviar\" es verificable; pulsar en (840, 512) es\n * una apuesta, y cuando falla no falla en el vacío: pulsa otra cosa.\n *\n * Desde el cambio de motor eso ya no es una preferencia: **para actuar hace\n * falta el `lookId` de una observación previa**. El motor rechaza actuar sobre\n * estado viejo, así que \"lee antes de pulsar\" pasó de consejo del prompt a\n * requisito que no se puede saltar. El fallo que apareció contra TextEdit\n * —escribir en una ventana que ya se había cerrado— dejó de ser posible.\n */\n\nimport { Type } from \"typebox\";\nimport type { AgentToolResult, ToolDefinition } from \"../extensions/types.ts\";\nimport { avisoSinNavegador, reglaDeEleccion } from \"../prompt-eleccion.ts\";\nimport { capturarPantalla } from \"./captura.ts\";\nimport {\n\tactuar,\n\tappEnPrimerPlano,\n\tesperar,\n\tleerTexto,\n\tlistarApps,\n\ttype Observacion,\n\tobservar,\n\tpidDe,\n} from \"./motor-ada.ts\";\nimport {\n\ttype Accion,\n\tCredencialError,\n\tesAppProhibida,\n\texigirPermiso,\n\tpareceCredencial,\n\ttechoDeCategoria,\n\tteclaPeligrosa,\n} from \"./politica.ts\";\n\n/**\n * Lo que el agente necesita saber para usar esto bien.\n *\n * `promptSnippet` solo dice que la tool existe. Para una capacidad que mueve el\n * ratón sobre el escritorio de verdad, saber que existe no es saber usarla.\n */\nfunction guiaOrdenador(navegador: boolean): string[] {\n\treturn [\n\t\treglaDeEleccion({ navegador, ordenador: true }),\n\t\t...(navegador ? [] : [avisoSinNavegador()]),\n\t\t\"Ante la duda entre computer_* y cualquier otra, elige la otra: manejar una ventana es lo más frágil que puedes hacer y lo que más puede romper sin avisar.\",\n\t\t\"Antes de controlar el ordenador, usa computer_apps: cada aplicación dice hasta dónde puedes llegar con ella.\",\n\t\t\"computer_read te da un lookId y las referencias de los elementos; toda acción necesita ese lookId, y si la ventana cambió tendrás que volver a leer.\",\n\t\t\"Cuando algo tarde en aparecer, usa computer_wait en vez de actuar y confiar: actuar sobre una ventana que no está lista falla en silencio.\",\n\t\t\"Si lo que vas a pulsar envía, compra, publica, borra o acepta condiciones, pregunta al usuario ANTES de hacerlo.\",\n\t\t\"No teclees contraseñas, tokens ni datos de tarjeta: pídeselo al usuario.\",\n\t];\n}\n\nfunction texto(t: string): AgentToolResult<unknown> {\n\treturn { content: [{ type: \"text\" as const, text: t }], details: undefined };\n}\n\nfunction fallo(error: unknown): AgentToolResult<unknown> {\n\treturn texto(`Error: ${error instanceof Error ? error.message : String(error)}`);\n}\n\n/** Los nombres, sueltos, para que `agent-session` los active sin construirlas. */\nexport const NOMBRES_COMPUTER_TOOLS = [\n\t\"computer_apps\",\n\t\"computer_read\",\n\t\"computer_screenshot\",\n\t\"computer_click\",\n\t\"computer_type\",\n\t\"computer_key\",\n\t\"computer_scroll\",\n\t\"computer_wait\",\n\t\"computer_text\",\n] as const;\n\nexport function crearComputerTools(opciones: { navegador?: boolean } = {}): Record<string, ToolDefinition> {\n\t// Sin tools de navegador, la política que redirige \"esto es un navegador,\n\t// usa browser_*\" apuntaría al vacío. Se avisa antes en vez de después.\n\tconst guia = guiaOrdenador(opciones.navegador === true);\n\t/**\n\t * Observaciones vivas, por `lookId`.\n\t *\n\t * El agente recibe el `lookId` y lo devuelve en cada acción. Se guarda aquí\n\t * el objeto completo porque el motor necesita también el pid, y hacer que el\n\t * modelo arrastre dos identificadores sería pedirle que no se equivoque en\n\t * algo que podemos recordar nosotros.\n\t */\n\tconst observaciones = new Map<string, Observacion>();\n\n\t/** Puerta de permisos. Ver `politica.ts`. */\n\tconst guardia = (accion: Accion, app: string): void => exigirPermiso(accion, app);\n\n\t/** Resuelve el pid de una app aplicando la política antes de tocarla. */\n\tconst prepararApp = async (nombreApp: string, accion: Accion): Promise<number> => {\n\t\tguardia(accion, nombreApp);\n\t\tconst pid = await pidDe(nombreApp);\n\t\tif (pid === undefined) {\n\t\t\tthrow new Error(\n\t\t\t\t`No encuentro ninguna aplicación abierta llamada \"${nombreApp}\". Usa computer_apps para verlas.`,\n\t\t\t);\n\t\t}\n\t\treturn pid;\n\t};\n\n\t/** Recupera una observación. Actuar sin ella es actuar a ciegas. */\n\tconst observacionDe = (lookId: string): Observacion => {\n\t\tconst obs = observaciones.get(lookId);\n\t\tif (!obs) {\n\t\t\tthrow new Error(\n\t\t\t\t`El lookId \"${lookId}\" no existe o ya caducó. Vuelve a leer la ventana con computer_read: ` +\n\t\t\t\t\t`el motor no deja actuar sobre observaciones viejas, a propósito.`,\n\t\t\t);\n\t\t}\n\t\treturn obs;\n\t};\n\n\tconst listar: ToolDefinition<ReturnType<typeof Type.Object>> = {\n\t\tname: \"computer_apps\",\n\t\tlabel: \"Listar aplicaciones\",\n\t\tpromptGuidelines: guia,\n\t\tdescription:\n\t\t\t\"Lista las aplicaciones abiertas y hasta dónde puedes llegar con cada una. \" +\n\t\t\t\"Úsalo antes de nada: cada una dice su límite.\",\n\t\tpromptSnippet: \"ver qué aplicaciones hay y hasta dónde puedo llegar con cada una\",\n\t\tparameters: Type.Object({}),\n\t\tasync execute(): Promise<AgentToolResult<unknown>> {\n\t\t\ttry {\n\t\t\t\tconst apps = await listarApps();\n\t\t\t\tconst frente = await appEnPrimerPlano().catch(() => null);\n\t\t\t\t// El límite se anota por aplicación para que el modelo lo sepa ANTES\n\t\t\t\t// de intentar algo, en vez de descubrirlo con un error.\n\t\t\t\tconst lineas = apps.map((a) => {\n\t\t\t\t\tconst marca = frente?.pid === a.pid ? \" [primer plano]\" : \"\";\n\t\t\t\t\tif (esAppProhibida(a.nombre)) return `${a.nombre}${marca} → NUNCA (credenciales)`;\n\t\t\t\t\tconst techo = techoDeCategoria(a.nombre);\n\t\t\t\t\tconst nota =\n\t\t\t\t\t\ttecho === \"read\"\n\t\t\t\t\t\t\t? \"solo ver — para manejarlo usa browser_*\"\n\t\t\t\t\t\t\t: techo === \"click\"\n\t\t\t\t\t\t\t\t? \"ver y pulsar — para ejecutar comandos usa bash\"\n\t\t\t\t\t\t\t\t: \"control total\";\n\t\t\t\t\treturn `${a.nombre}${marca} → ${nota}`;\n\t\t\t\t});\n\t\t\t\treturn texto(lineas.join(\"\\n\"));\n\t\t\t} catch (error) {\n\t\t\t\treturn fallo(error);\n\t\t\t}\n\t\t},\n\t};\n\n\tconst leer: ToolDefinition<ReturnType<typeof Type.Object>> = {\n\t\tname: \"computer_read\",\n\t\tlabel: \"Leer la ventana\",\n\t\tdescription:\n\t\t\t\"Observa una aplicación y devuelve su árbol de elementos junto a un lookId. \" +\n\t\t\t\"TODA acción necesita ese lookId. Si la ventana cambia, vuelve a leer.\",\n\t\tpromptSnippet: \"leer los elementos de una ventana y obtener su lookId\",\n\t\tparameters: Type.Object({\n\t\t\tapp: Type.String({ description: \"Nombre de la aplicación\" }),\n\t\t\tscopeRef: Type.Optional(\n\t\t\t\tType.String({ description: \"Referencia de un elemento, para mirar solo dentro de él\" }),\n\t\t\t),\n\t\t}),\n\t\tasync execute(_id, input): Promise<AgentToolResult<unknown>> {\n\t\t\ttry {\n\t\t\t\tconst nombreApp = String(input.app ?? \"\");\n\t\t\t\tconst pid = await prepararApp(nombreApp, \"screenshot\");\n\t\t\t\tconst obs = await observar(pid, { scopeRef: input.scopeRef ? String(input.scopeRef) : undefined });\n\t\t\t\tobservaciones.set(obs.lookId, obs);\n\t\t\t\treturn texto(\n\t\t\t\t\t`Ventana: ${obs.titulo ?? \"(sin título)\"} · ${obs.elementos} elementos\\n` +\n\t\t\t\t\t\t`lookId: ${obs.lookId}\\n\\n${obs.resumen}`,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\treturn fallo(error);\n\t\t\t}\n\t\t},\n\t};\n\n\tconst captura: ToolDefinition<ReturnType<typeof Type.Object>> = {\n\t\tname: \"computer_screenshot\",\n\t\tlabel: \"Captura de pantalla\",\n\t\tdescription: \"Captura la pantalla. Para decidir dónde pulsar, prefiere computer_read.\",\n\t\tpromptSnippet: \"ver la pantalla\",\n\t\tparameters: Type.Object({}),\n\t\tasync execute(): Promise<AgentToolResult<unknown>> {\n\t\t\ttry {\n\t\t\t\tconst frente = await appEnPrimerPlano();\n\t\t\t\tguardia(\"screenshot\", frente.nombre);\n\n\t\t\t\t// Primero, por el MOTOR. No es una preferencia estética: en macOS el\n\t\t\t\t// permiso de Grabación de pantalla se concede a una aplicación, y el\n\t\t\t\t// helper ya lo tiene. `screencapture` lo lanzaría NUESTRO proceso —\n\t\t\t\t// node, dentro de la Terminal o del escritorio — que es otra identidad\n\t\t\t\t// y necesitaría su propio permiso, uno por cada sitio desde el que se\n\t\t\t\t// use Ada. Comprobado: con el helper autorizado, `screencapture -x`\n\t\t\t\t// desde node seguía devolviendo \"could not create image from display\".\n\t\t\t\t//\n\t\t\t\t// Captura la VENTANA de delante, no la pantalla entera. Además de\n\t\t\t\t// funcionar, es lo correcto: no arrastra al contexto lo que haya en\n\t\t\t\t// otras ventanas del usuario.\n\t\t\t\tif (frente.pid !== undefined) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst obs = await observar(frente.pid, { conImagen: true });\n\t\t\t\t\t\tif (obs.imagen) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t\t\t{ type: \"text\" as const, text: `Ventana: ${obs.titulo ?? frente.nombre}` },\n\t\t\t\t\t\t\t\t\t{ type: \"image\" as const, data: obs.imagen.datos, mimeType: obs.imagen.mimeType },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tdetails: undefined,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Si el motor no puede, queda la captura del sistema.\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst r = await capturarPantalla();\n\t\t\t\tif (!r.imagen) return texto(r.motivo ?? \"No se pudo capturar la pantalla.\");\n\t\t\t\treturn { content: [{ type: \"image\" as const, data: r.imagen, mimeType: \"image/png\" }], details: undefined };\n\t\t\t} catch (error) {\n\t\t\t\treturn fallo(error);\n\t\t\t}\n\t\t},\n\t};\n\n\tconst pulsar: ToolDefinition<ReturnType<typeof Type.Object>> = {\n\t\tname: \"computer_click\",\n\t\tlabel: \"Pulsar\",\n\t\tpromptGuidelines: guia,\n\t\tdescription:\n\t\t\t\"Pulsa un elemento por su referencia, usando el lookId de computer_read. \" +\n\t\t\t\"Si lo que vas a pulsar envía, compra, publica o borra, pregunta al usuario ANTES.\",\n\t\tpromptSnippet: \"pulsar un elemento de la pantalla\",\n\t\tparameters: Type.Object({\n\t\t\tlookId: Type.String(),\n\t\t\tref: Type.String({ description: \"Referencia del elemento, de computer_read\" }),\n\t\t\tboton: Type.Optional(Type.String({ description: \"left (por defecto), right, middle\" })),\n\t\t\tveces: Type.Optional(Type.Number({ description: \"1 (por defecto), 2 para doble\" })),\n\t\t}),\n\t\tasync execute(_id, input): Promise<AgentToolResult<unknown>> {\n\t\t\ttry {\n\t\t\t\tconst obs = observacionDe(String(input.lookId ?? \"\"));\n\t\t\t\tconst boton = String(input.boton ?? \"left\") as \"left\" | \"right\" | \"middle\";\n\t\t\t\tconst veces = Number(input.veces ?? 1);\n\t\t\t\tconst accion: Accion =\n\t\t\t\t\tboton === \"right\"\n\t\t\t\t\t\t? \"right_click\"\n\t\t\t\t\t\t: boton === \"middle\"\n\t\t\t\t\t\t\t? \"middle_click\"\n\t\t\t\t\t\t\t: veces >= 3\n\t\t\t\t\t\t\t\t? \"triple_click\"\n\t\t\t\t\t\t\t\t: veces === 2\n\t\t\t\t\t\t\t\t\t? \"double_click\"\n\t\t\t\t\t\t\t\t\t: \"left_click\";\n\t\t\t\tconst frente = await appEnPrimerPlano();\n\t\t\t\tguardia(accion, frente.nombre);\n\t\t\t\tconst r = await actuar(obs, { tipo: \"click\", ref: String(input.ref ?? \"\"), boton, veces });\n\t\t\t\treturn texto(r.ok ? `Pulsado.${r.detalle ? `\\n${r.detalle}` : \"\"}` : `No se pudo pulsar: ${r.detalle}`);\n\t\t\t} catch (error) {\n\t\t\t\treturn fallo(error);\n\t\t\t}\n\t\t},\n\t};\n\n\tconst escribir: ToolDefinition<ReturnType<typeof Type.Object>> = {\n\t\tname: \"computer_type\",\n\t\tlabel: \"Escribir\",\n\t\tpromptGuidelines: guia,\n\t\tdescription:\n\t\t\t\"Escribe texto en un elemento, usando el lookId de computer_read. \" +\n\t\t\t\"No escribe credenciales: claves, tokens, tarjetas o IBAN los pone el usuario.\",\n\t\tpromptSnippet: \"escribir texto en un campo\",\n\t\tparameters: Type.Object({ lookId: Type.String(), ref: Type.String(), texto: Type.String() }),\n\t\tasync execute(_id, input): Promise<AgentToolResult<unknown>> {\n\t\t\ttry {\n\t\t\t\tconst contenido = String(input.texto ?? \"\");\n\t\t\t\t// Antes que el permiso: si es una credencial da igual qué app sea.\n\t\t\t\tif (pareceCredencial(contenido)) return fallo(new CredencialError());\n\t\t\t\tconst obs = observacionDe(String(input.lookId ?? \"\"));\n\t\t\t\tconst frente = await appEnPrimerPlano();\n\t\t\t\tguardia(\"type\", frente.nombre);\n\t\t\t\tconst r = await actuar(obs, { tipo: \"escribir\", ref: String(input.ref ?? \"\"), texto: contenido });\n\t\t\t\tif (!r.ok) return texto(`No se pudo escribir: ${r.detalle}`);\n\t\t\t\t// El motor devuelve el estado posterior, así que la comprobación que\n\t\t\t\t// antes había que hacer a mano viene de serie.\n\t\t\t\treturn texto(`Escrito.${r.detalle ? `\\n${r.detalle}` : \"\"}`);\n\t\t\t} catch (error) {\n\t\t\t\treturn fallo(error);\n\t\t\t}\n\t\t},\n\t};\n\n\tconst tecla: ToolDefinition<ReturnType<typeof Type.Object>> = {\n\t\tname: \"computer_key\",\n\t\tlabel: \"Pulsar tecla\",\n\t\tdescription:\n\t\t\t\"Pulsa una tecla o combinación ('cmd+s', 'return', 'tab'). \" +\n\t\t\t\"Las que cierran o borran sin vuelta atrás necesitan que el usuario lo pida.\",\n\t\tpromptSnippet: \"pulsar una combinación de teclas\",\n\t\tparameters: Type.Object({\n\t\t\tlookId: Type.String(),\n\t\t\ttecla: Type.String(),\n\t\t\tref: Type.Optional(Type.String()),\n\t\t\tconfirmado: Type.Optional(Type.Boolean({ description: \"El usuario ha pedido esta tecla peligrosa\" })),\n\t\t}),\n\t\tasync execute(_id, input): Promise<AgentToolResult<unknown>> {\n\t\t\ttry {\n\t\t\t\tconst combinacion = String(input.tecla ?? \"\");\n\t\t\t\tif (teclaPeligrosa(combinacion) && input.confirmado !== true) {\n\t\t\t\t\treturn texto(\n\t\t\t\t\t\t`'${combinacion}' cierra o borra sin vuelta atrás. Pregúntale al usuario y vuelve con confirmado: true.`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst obs = observacionDe(String(input.lookId ?? \"\"));\n\t\t\t\tconst frente = await appEnPrimerPlano();\n\t\t\t\tguardia(\"key\", frente.nombre);\n\t\t\t\tconst r = await actuar(obs, {\n\t\t\t\t\ttipo: \"teclas\",\n\t\t\t\t\tref: input.ref ? String(input.ref) : undefined,\n\t\t\t\t\tteclas: combinacion.split(\"+\").map((k) => k.trim()),\n\t\t\t\t});\n\t\t\t\treturn texto(r.ok ? `Pulsado ${combinacion}.` : `No se pudo pulsar: ${r.detalle}`);\n\t\t\t} catch (error) {\n\t\t\t\treturn fallo(error);\n\t\t\t}\n\t\t},\n\t};\n\n\tconst desplazar: ToolDefinition<ReturnType<typeof Type.Object>> = {\n\t\tname: \"computer_scroll\",\n\t\tlabel: \"Desplazar\",\n\t\tdescription: \"Desplaza el contenido de un elemento.\",\n\t\tpromptSnippet: \"desplazar la pantalla\",\n\t\tparameters: Type.Object({\n\t\t\tlookId: Type.String(),\n\t\t\tref: Type.String(),\n\t\t\tdireccion: Type.String({ description: \"up, down, left, right\" }),\n\t\t\tcantidad: Type.Optional(Type.Number()),\n\t\t}),\n\t\tasync execute(_id, input): Promise<AgentToolResult<unknown>> {\n\t\t\ttry {\n\t\t\t\tconst obs = observacionDe(String(input.lookId ?? \"\"));\n\t\t\t\tconst frente = await appEnPrimerPlano();\n\t\t\t\tguardia(\"scroll\", frente.nombre);\n\t\t\t\tconst paso = Number(input.cantidad ?? 3) * 100;\n\t\t\t\tconst dir = String(input.direccion ?? \"down\");\n\t\t\t\tconst r = await actuar(obs, {\n\t\t\t\t\ttipo: \"desplazar\",\n\t\t\t\t\tref: String(input.ref ?? \"\"),\n\t\t\t\t\tx: dir === \"left\" ? -paso : dir === \"right\" ? paso : 0,\n\t\t\t\t\ty: dir === \"up\" ? -paso : dir === \"down\" ? paso : 0,\n\t\t\t\t});\n\t\t\t\treturn texto(r.ok ? \"Desplazado.\" : `No se pudo desplazar: ${r.detalle}`);\n\t\t\t} catch (error) {\n\t\t\t\treturn fallo(error);\n\t\t\t}\n\t\t},\n\t};\n\n\tconst aguardar: ToolDefinition<ReturnType<typeof Type.Object>> = {\n\t\tname: \"computer_wait\",\n\t\tlabel: \"Esperar\",\n\t\tpromptGuidelines: guia,\n\t\tdescription:\n\t\t\t\"Espera a que un texto o un tipo de control aparezca (o desaparezca) en una ventana. \" +\n\t\t\t\"Úsalo cuando algo tarde: actuar sobre una ventana que no está lista falla en silencio.\",\n\t\tpromptSnippet: \"esperar a que la pantalla cambie\",\n\t\tparameters: Type.Object({\n\t\t\tapp: Type.String(),\n\t\t\ttexto: Type.Optional(Type.String({ description: \"Texto que debe aparecer\" })),\n\t\t\trol: Type.Optional(Type.String({ description: \"Tipo de control, p. ej. button\" })),\n\t\t\tdesaparezca: Type.Optional(Type.Boolean({ description: \"Esperar a que DEJE de estar\" })),\n\t\t\ttimeoutMs: Type.Optional(Type.Number({ description: \"Por defecto 10000, máximo 60000\" })),\n\t\t}),\n\t\tasync execute(_id, input): Promise<AgentToolResult<unknown>> {\n\t\t\ttry {\n\t\t\t\tconst pid = await prepararApp(String(input.app ?? \"\"), \"screenshot\");\n\t\t\t\tconst r = await esperar(pid, {\n\t\t\t\t\ttexto: input.texto ? String(input.texto) : undefined,\n\t\t\t\t\trol: input.rol ? String(input.rol) : undefined,\n\t\t\t\t\tdesaparezca: input.desaparezca === true,\n\t\t\t\t\ttimeoutMs: input.timeoutMs ? Number(input.timeoutMs) : undefined,\n\t\t\t\t});\n\t\t\t\treturn texto(\n\t\t\t\t\tr.encontrado\n\t\t\t\t\t\t? \"Listo: lo que esperabas está. Vuelve a leer con computer_read para actuar.\"\n\t\t\t\t\t\t: `No llegó a pasar (${r.detalle}). No actúes a ciegas: mira con computer_read qué hay.`,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\treturn fallo(error);\n\t\t\t}\n\t\t},\n\t};\n\n\tconst textoDe: ToolDefinition<ReturnType<typeof Type.Object>> = {\n\t\tname: \"computer_text\",\n\t\tlabel: \"Leer texto\",\n\t\tdescription:\n\t\t\t\"Lee el texto completo de un elemento, por trozos. \" +\n\t\t\t\"Para contenidos largos que computer_read resume o recorta.\",\n\t\tpromptSnippet: \"leer el texto completo de un elemento\",\n\t\tparameters: Type.Object({\n\t\t\tlookId: Type.String(),\n\t\t\tref: Type.String(),\n\t\t\tdesde: Type.Optional(Type.Number()),\n\t\t\tlimite: Type.Optional(Type.Number()),\n\t\t}),\n\t\tasync execute(_id, input): Promise<AgentToolResult<unknown>> {\n\t\t\ttry {\n\t\t\t\tconst obs = observacionDe(String(input.lookId ?? \"\"));\n\t\t\t\tconst r = await leerTexto(obs, String(input.ref ?? \"\"), {\n\t\t\t\t\toffset: input.desde ? Number(input.desde) : 0,\n\t\t\t\t\tlimit: input.limite ? Number(input.limite) : undefined,\n\t\t\t\t});\n\t\t\t\treturn texto(r.hayMas ? `${r.texto}\\n\\n[…quedan ${r.total - r.texto.length} caracteres]` : r.texto);\n\t\t\t} catch (error) {\n\t\t\t\treturn fallo(error);\n\t\t\t}\n\t\t},\n\t};\n\n\treturn {\n\t\tcomputer_apps: listar as ToolDefinition,\n\t\tcomputer_read: leer as ToolDefinition,\n\t\tcomputer_screenshot: captura as ToolDefinition,\n\t\tcomputer_click: pulsar as ToolDefinition,\n\t\tcomputer_type: escribir as ToolDefinition,\n\t\tcomputer_key: tecla as ToolDefinition,\n\t\tcomputer_scroll: desplazar as ToolDefinition,\n\t\tcomputer_wait: aguardar as ToolDefinition,\n\t\tcomputer_text: textoDe as ToolDefinition,\n\t};\n}\n"]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Desglose de qué está llenando la ventana de contexto.
|
|
3
|
+
*
|
|
4
|
+
* POR QUÉ IMPORTA AQUÍ MÁS QUE EN OTROS PRODUCTOS: con caché por prefijo, el
|
|
5
|
+
* coste de un cambio depende de su POSICIÓN, no de su tamaño. Saber que las
|
|
6
|
+
* definiciones de tools ocupan 11 K y van delante te dice que tocarlas invalida
|
|
7
|
+
* todo lo que viene detrás. Sin este desglose, optimizar la caché es a ciegas.
|
|
8
|
+
*
|
|
9
|
+
* HONESTIDAD DEL DATO — la parte que las referencias no resuelven:
|
|
10
|
+
*
|
|
11
|
+
* El único número REAL es el total, que lo da el proveedor en el `usage` de la
|
|
12
|
+
* última respuesta. Los trozos se estiman con `chars/4`, que es una heurística.
|
|
13
|
+
* Presentar estimaciones como si fueran medidas sería mentir con precisión
|
|
14
|
+
* falsa, así que:
|
|
15
|
+
*
|
|
16
|
+
* - Si hay total real, se REPARTE ese total según las proporciones estimadas.
|
|
17
|
+
* El total cuadra siempre y el reparto se marca como estimado.
|
|
18
|
+
* - Si no lo hay (recién compactado, antes de la primera respuesta), se
|
|
19
|
+
* devuelve la suma de estimaciones y se dice que TODO es estimado.
|
|
20
|
+
*/
|
|
21
|
+
/** Categorías. El orden es el del prompt: lo estable primero. */
|
|
22
|
+
export type CategoriaContexto = "systemPrompt" | "toolDefinitions" | "skills" | "mcpTools" | "contextFiles" | "memory" | "conversation";
|
|
23
|
+
export interface PiezaContexto {
|
|
24
|
+
categoria: CategoriaContexto;
|
|
25
|
+
/** Tokens atribuidos. Estimados salvo que `exacto` sea true. */
|
|
26
|
+
tokens: number;
|
|
27
|
+
/** Fracción del total, entre 0 y 1. */
|
|
28
|
+
fraccion: number;
|
|
29
|
+
}
|
|
30
|
+
export interface DesgloseContexto {
|
|
31
|
+
/** Total de tokens en contexto. Exacto si vino del proveedor. */
|
|
32
|
+
total: number;
|
|
33
|
+
contextWindow: number;
|
|
34
|
+
/** Fracción de la ventana ocupada, entre 0 y 1. */
|
|
35
|
+
ocupacion: number;
|
|
36
|
+
/**
|
|
37
|
+
* True cuando `total` viene del `usage` del proveedor. False significa que
|
|
38
|
+
* todo el desglose, total incluido, es una estimación.
|
|
39
|
+
*/
|
|
40
|
+
totalExacto: boolean;
|
|
41
|
+
piezas: PiezaContexto[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Estimación de tokens de un texto.
|
|
45
|
+
*
|
|
46
|
+
* `chars/4` es la misma heurística que ya usa la compactación
|
|
47
|
+
* (`compaction.ts:estimateTokens`). Se mantiene idéntica a propósito: dos
|
|
48
|
+
* estimadores distintos darían cifras que no cuadran entre la barra de contexto
|
|
49
|
+
* y el momento en que salta la compactación, y el usuario no tendría forma de
|
|
50
|
+
* saber cuál creer.
|
|
51
|
+
*/
|
|
52
|
+
export declare function estimarTokensTexto(texto: string): number;
|
|
53
|
+
export interface EntradaDesglose {
|
|
54
|
+
contextWindow: number;
|
|
55
|
+
/** Tokens reales del proveedor. `null` = desconocido (p. ej. tras compactar). */
|
|
56
|
+
tokensReales: number | null;
|
|
57
|
+
systemPrompt: string;
|
|
58
|
+
/** Nombre + descripción + esquema serializado de cada tool. */
|
|
59
|
+
toolDefinitions: string[];
|
|
60
|
+
/** Nombre + descripción de cada skill visible para el modelo. */
|
|
61
|
+
skills: string[];
|
|
62
|
+
/** Definiciones de tools MCP, aparte porque son las que más se disparan. */
|
|
63
|
+
mcpTools: string[];
|
|
64
|
+
/** Ficheros de contexto inyectados (AGENTS.md y compañía). */
|
|
65
|
+
contextFiles: string[];
|
|
66
|
+
/** Bloques de memoria inyectados. */
|
|
67
|
+
memory: string[];
|
|
68
|
+
/** Tokens de la conversación, ya estimados por el llamante. */
|
|
69
|
+
conversationTokens: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Construye el desglose.
|
|
73
|
+
*
|
|
74
|
+
* Las categorías con cero tokens se omiten: una lista con seis ceros no informa
|
|
75
|
+
* de nada y esconde las dos que sí pesan.
|
|
76
|
+
*/
|
|
77
|
+
export declare function construirDesglose(entrada: EntradaDesglose): DesgloseContexto;
|
|
78
|
+
/** Etiquetas legibles. La interfaz traduce; esto es el orden y el nombre canónico. */
|
|
79
|
+
export declare const ETIQUETAS_CONTEXTO: Record<CategoriaContexto, string>;
|
|
80
|
+
//# sourceMappingURL=context-breakdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-breakdown.d.ts","sourceRoot":"","sources":["../../src/core/context-breakdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,kEAAiE;AACjE,MAAM,MAAM,iBAAiB,GAC1B,cAAc,GACd,iBAAiB,GACjB,QAAQ,GACR,UAAU,GACV,cAAc,GACd,QAAQ,GACR,cAAc,CAAC;AAElB,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,wCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,MAAM,WAAW,eAAe;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,gEAA+D;IAC/D,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,kEAAiE;IACjE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,6EAA4E;IAC5E,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gEAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qCAAqC;IACrC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,gEAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAC;CAC3B;AAQD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,gBAAgB,CAmC5E;AAED,uFAAsF;AACtF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAQhE,CAAC","sourcesContent":["/**\n * Desglose de qué está llenando la ventana de contexto.\n *\n * POR QUÉ IMPORTA AQUÍ MÁS QUE EN OTROS PRODUCTOS: con caché por prefijo, el\n * coste de un cambio depende de su POSICIÓN, no de su tamaño. Saber que las\n * definiciones de tools ocupan 11 K y van delante te dice que tocarlas invalida\n * todo lo que viene detrás. Sin este desglose, optimizar la caché es a ciegas.\n *\n * HONESTIDAD DEL DATO — la parte que las referencias no resuelven:\n *\n * El único número REAL es el total, que lo da el proveedor en el `usage` de la\n * última respuesta. Los trozos se estiman con `chars/4`, que es una heurística.\n * Presentar estimaciones como si fueran medidas sería mentir con precisión\n * falsa, así que:\n *\n * - Si hay total real, se REPARTE ese total según las proporciones estimadas.\n * El total cuadra siempre y el reparto se marca como estimado.\n * - Si no lo hay (recién compactado, antes de la primera respuesta), se\n * devuelve la suma de estimaciones y se dice que TODO es estimado.\n */\n\n/** Categorías. El orden es el del prompt: lo estable primero. */\nexport type CategoriaContexto =\n\t| \"systemPrompt\"\n\t| \"toolDefinitions\"\n\t| \"skills\"\n\t| \"mcpTools\"\n\t| \"contextFiles\"\n\t| \"memory\"\n\t| \"conversation\";\n\nexport interface PiezaContexto {\n\tcategoria: CategoriaContexto;\n\t/** Tokens atribuidos. Estimados salvo que `exacto` sea true. */\n\ttokens: number;\n\t/** Fracción del total, entre 0 y 1. */\n\tfraccion: number;\n}\n\nexport interface DesgloseContexto {\n\t/** Total de tokens en contexto. Exacto si vino del proveedor. */\n\ttotal: number;\n\tcontextWindow: number;\n\t/** Fracción de la ventana ocupada, entre 0 y 1. */\n\tocupacion: number;\n\t/**\n\t * True cuando `total` viene del `usage` del proveedor. False significa que\n\t * todo el desglose, total incluido, es una estimación.\n\t */\n\ttotalExacto: boolean;\n\tpiezas: PiezaContexto[];\n}\n\n/**\n * Estimación de tokens de un texto.\n *\n * `chars/4` es la misma heurística que ya usa la compactación\n * (`compaction.ts:estimateTokens`). Se mantiene idéntica a propósito: dos\n * estimadores distintos darían cifras que no cuadran entre la barra de contexto\n * y el momento en que salta la compactación, y el usuario no tendría forma de\n * saber cuál creer.\n */\nexport function estimarTokensTexto(texto: string): number {\n\treturn Math.ceil(texto.length / 4);\n}\n\nexport interface EntradaDesglose {\n\tcontextWindow: number;\n\t/** Tokens reales del proveedor. `null` = desconocido (p. ej. tras compactar). */\n\ttokensReales: number | null;\n\tsystemPrompt: string;\n\t/** Nombre + descripción + esquema serializado de cada tool. */\n\ttoolDefinitions: string[];\n\t/** Nombre + descripción de cada skill visible para el modelo. */\n\tskills: string[];\n\t/** Definiciones de tools MCP, aparte porque son las que más se disparan. */\n\tmcpTools: string[];\n\t/** Ficheros de contexto inyectados (AGENTS.md y compañía). */\n\tcontextFiles: string[];\n\t/** Bloques de memoria inyectados. */\n\tmemory: string[];\n\t/** Tokens de la conversación, ya estimados por el llamante. */\n\tconversationTokens: number;\n}\n\nfunction sumar(textos: string[]): number {\n\tlet total = 0;\n\tfor (const t of textos) total += estimarTokensTexto(t);\n\treturn total;\n}\n\n/**\n * Construye el desglose.\n *\n * Las categorías con cero tokens se omiten: una lista con seis ceros no informa\n * de nada y esconde las dos que sí pesan.\n */\nexport function construirDesglose(entrada: EntradaDesglose): DesgloseContexto {\n\tconst crudos: Array<[CategoriaContexto, number]> = [\n\t\t[\"systemPrompt\", estimarTokensTexto(entrada.systemPrompt)],\n\t\t[\"toolDefinitions\", sumar(entrada.toolDefinitions)],\n\t\t[\"skills\", sumar(entrada.skills)],\n\t\t[\"mcpTools\", sumar(entrada.mcpTools)],\n\t\t[\"contextFiles\", sumar(entrada.contextFiles)],\n\t\t[\"memory\", sumar(entrada.memory)],\n\t\t[\"conversation\", Math.max(0, entrada.conversationTokens)],\n\t];\n\n\tconst sumaEstimada = crudos.reduce((s, [, n]) => s + n, 0);\n\tconst totalExacto = entrada.tokensReales !== null && entrada.tokensReales > 0;\n\tconst total = totalExacto ? (entrada.tokensReales as number) : sumaEstimada;\n\n\t// Reparto proporcional sobre el total real. Si la suma estimada es cero no se\n\t// puede repartir nada: se devuelven las piezas a cero en vez de dividir por\n\t// cero y producir NaN, que en la interfaz se vería como \"—\" o como 0 aleatorio.\n\tconst escala = totalExacto && sumaEstimada > 0 ? (entrada.tokensReales as number) / sumaEstimada : 1;\n\n\tconst piezas: PiezaContexto[] = crudos\n\t\t.filter(([, n]) => n > 0)\n\t\t.map(([categoria, n]) => {\n\t\t\tconst tokens = Math.round(n * escala);\n\t\t\treturn { categoria, tokens, fraccion: total > 0 ? tokens / total : 0 };\n\t\t})\n\t\t.sort((a, b) => b.tokens - a.tokens);\n\n\treturn {\n\t\ttotal,\n\t\tcontextWindow: entrada.contextWindow,\n\t\tocupacion: entrada.contextWindow > 0 ? Math.min(1, total / entrada.contextWindow) : 0,\n\t\ttotalExacto,\n\t\tpiezas,\n\t};\n}\n\n/** Etiquetas legibles. La interfaz traduce; esto es el orden y el nombre canónico. */\nexport const ETIQUETAS_CONTEXTO: Record<CategoriaContexto, string> = {\n\tsystemPrompt: \"System prompt\",\n\ttoolDefinitions: \"Tool definitions\",\n\tskills: \"Skills\",\n\tmcpTools: \"MCP tools\",\n\tcontextFiles: \"Context files\",\n\tmemory: \"Memory\",\n\tconversation: \"Conversation\",\n};\n"]}
|